atomsystem 0.1.47 → 0.1.49

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.
Files changed (62) hide show
  1. package/README.md +153 -55
  2. package/atom.design.md +155 -0
  3. package/atom.uxPattern.md +431 -0
  4. package/components/ui/Badge.tsx +20 -0
  5. package/components/ui/Button.tsx +33 -0
  6. package/components/ui/Card.tsx +20 -0
  7. package/components/ui/Input.tsx +35 -0
  8. package/components/ui/Modal.tsx +54 -0
  9. package/components/ui/index.ts +5 -0
  10. package/css/atom-ui.css +216 -0
  11. package/dist/cli.cjs +105 -0
  12. package/dist/cli.cjs.map +1 -0
  13. package/dist/cli.d.cts +1 -0
  14. package/dist/cli.d.ts +1 -0
  15. package/dist/cli.js +97 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/index.cjs +7897 -0
  18. package/dist/index.cjs.map +1 -0
  19. package/dist/index.d.cts +218 -0
  20. package/dist/index.d.ts +218 -0
  21. package/dist/index.js +7845 -447
  22. package/dist/index.js.map +1 -0
  23. package/package.json +120 -81
  24. package/presets/default.design.md +155 -0
  25. package/presets/uxPattern.md +431 -0
  26. package/skills/atomsystem.skill.md +104 -0
  27. package/tokens/token.json +319 -0
  28. package/tokens/tokens.json +318 -976
  29. package/app/templates/Animations/Animation.tsx +0 -282
  30. package/app/templates/Badge/Badge.tsx +0 -28
  31. package/app/templates/Badge/badge.css +0 -28
  32. package/app/templates/Button/Button.tsx +0 -31
  33. package/app/templates/Button/button.css +0 -135
  34. package/app/templates/Card/Card.tsx +0 -50
  35. package/app/templates/Card/card.css +0 -17
  36. package/app/templates/CodeBlock/CodeBlock.tsx +0 -68
  37. package/app/templates/Collapse/Collapse.tsx +0 -207
  38. package/app/templates/Collapse/collapse.css +0 -24
  39. package/app/templates/Dropdown/Dropdown.css +0 -112
  40. package/app/templates/Dropdown/Dropdown.tsx +0 -103
  41. package/app/templates/Form/Form.tsx +0 -289
  42. package/app/templates/Form/form.css +0 -115
  43. package/app/templates/Modal/Modal.tsx +0 -71
  44. package/app/templates/Modal/modal.css +0 -98
  45. package/app/templates/Navigation/Navigation.tsx +0 -169
  46. package/app/templates/Navigation/navigation.css +0 -59
  47. package/app/templates/Pagination/Pagination.tsx +0 -104
  48. package/app/templates/Pagination/pagination.css +0 -66
  49. package/app/templates/Sidebar/Sidebar.tsx +0 -139
  50. package/app/templates/Sidebar/sidebar.css +0 -4
  51. package/app/templates/TOC/TOC.tsx +0 -165
  52. package/app/templates/Tab/Tab.tsx +0 -117
  53. package/app/templates/Tab/tab.css +0 -56
  54. package/app/templates/Table/Table.tsx +0 -54
  55. package/app/templates/Table/table.css +0 -58
  56. package/app/templates/Theme/Theme.tsx +0 -121
  57. package/app/templates/Toast/Toast.tsx +0 -106
  58. package/app/templates/Toast/toast.css +0 -69
  59. package/build/build-tokens.js +0 -223
  60. package/build/css/_variables.css +0 -251
  61. package/build/typescript/theme.ts +0 -6
  62. package/css/text.css +0 -18
@@ -0,0 +1,218 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ type TokenCategory = 'color' | 'typography' | 'radius' | 'spacing' | 'shadow';
4
+ interface BrandPreset {
5
+ id: string;
6
+ name: string;
7
+ brandColor: string;
8
+ radius: string;
9
+ description: string;
10
+ }
11
+ interface ColorToken {
12
+ name: string;
13
+ variable: string;
14
+ value: string;
15
+ description: string;
16
+ category: 'brand' | 'surface' | 'text' | 'border' | 'status';
17
+ }
18
+ interface TypographyToken {
19
+ name: string;
20
+ variable: string;
21
+ fontSize: string;
22
+ lineHeight: string;
23
+ weight: string;
24
+ sample: string;
25
+ }
26
+ interface RadiusToken {
27
+ name: string;
28
+ variable: string;
29
+ value: string;
30
+ description: string;
31
+ }
32
+ interface SpacingToken {
33
+ name: string;
34
+ variable: string;
35
+ value: string;
36
+ px: number;
37
+ }
38
+ interface ShadowToken {
39
+ name: string;
40
+ variable: string;
41
+ value: string;
42
+ description: string;
43
+ }
44
+ declare const BRAND_PRESETS: BrandPreset[];
45
+ declare const BASE_COLOR_TOKENS: ColorToken[];
46
+ declare const TYPOGRAPHY_TOKENS: TypographyToken[];
47
+ declare const RADIUS_TOKENS: RadiusToken[];
48
+ declare const SPACING_TOKENS: SpacingToken[];
49
+ declare const SHADOW_TOKENS: ShadowToken[];
50
+
51
+ type ComponentCategory = 'all' | 'form' | 'feedback' | 'navigation' | 'data';
52
+ interface PropItem {
53
+ name: string;
54
+ type: string;
55
+ defaultValue: string;
56
+ description: string;
57
+ }
58
+ interface DosAndDont {
59
+ do: string;
60
+ dont: string;
61
+ }
62
+ interface GalleryComponent {
63
+ id: string;
64
+ name: string;
65
+ category: ComponentCategory;
66
+ source: string;
67
+ description: string;
68
+ htmlSnippet: string;
69
+ reactSnippet: string;
70
+ vueSnippet?: string;
71
+ callout?: {
72
+ type: 'note' | 'tip' | 'warning';
73
+ title: string;
74
+ text: string;
75
+ };
76
+ propsSpec?: PropItem[];
77
+ useCases: string[];
78
+ usagePatterns: string[];
79
+ dosAndDonts: DosAndDont[];
80
+ relatedPatternIds: string[];
81
+ }
82
+ declare const GALLERY_COMPONENTS: GalleryComponent[];
83
+
84
+ interface PatternVariant {
85
+ id: string;
86
+ name: string;
87
+ description: string;
88
+ checklist: string[];
89
+ antiPatterns: string[];
90
+ markdown: string;
91
+ }
92
+ type PatternPlatform = 'web' | 'mobile';
93
+ interface PatternItem {
94
+ id: string;
95
+ title: string;
96
+ categoryName: string;
97
+ badge: string;
98
+ platform: PatternPlatform;
99
+ wireframeType: string;
100
+ iconName: 'dashboard' | 'chat' | 'onboarding' | 'uploader' | 'kyc' | 'blog' | 'map' | 'flight' | 'fintech' | 'commerce' | 'search' | 'docs' | 'settings';
101
+ summary: string;
102
+ recommendedComponentIds: string[];
103
+ checklist: string[];
104
+ antiPatterns: string[];
105
+ variants: PatternVariant[];
106
+ }
107
+ declare const PATTERNS_COLLECTION: PatternItem[];
108
+
109
+ interface TypographyLevelConfig {
110
+ fontSize: number;
111
+ lineHeight: number;
112
+ fontWeight: number;
113
+ letterSpacing: string;
114
+ }
115
+ interface TypographyConfig {
116
+ fontFamily: string;
117
+ h1: TypographyLevelConfig;
118
+ h2: TypographyLevelConfig;
119
+ h3: TypographyLevelConfig;
120
+ h4: TypographyLevelConfig;
121
+ h5: TypographyLevelConfig;
122
+ h6: TypographyLevelConfig;
123
+ body: TypographyLevelConfig;
124
+ sm: TypographyLevelConfig;
125
+ xs: TypographyLevelConfig;
126
+ }
127
+ interface ColorConfig {
128
+ primary: string;
129
+ primaryHover: string;
130
+ primaryLight: string;
131
+ bgPrimary: string;
132
+ bgSecondary: string;
133
+ textPrimary: string;
134
+ textSecondary: string;
135
+ textMuted: string;
136
+ borderSubtle: string;
137
+ borderStrong: string;
138
+ statusSuccess: string;
139
+ statusDanger: string;
140
+ statusWarning: string;
141
+ }
142
+ interface ThemeConfig {
143
+ color: ColorConfig;
144
+ typography: TypographyConfig;
145
+ borderRadius: string;
146
+ }
147
+ interface ColorPreset {
148
+ id: string;
149
+ name: string;
150
+ description: string;
151
+ colors: ColorConfig;
152
+ borderRadius: string;
153
+ }
154
+ declare const DEFAULT_THEME_CONFIG: ThemeConfig;
155
+ declare const COLOR_PRESETS: ColorPreset[];
156
+ declare const FONT_FAMILY_PRESETS: {
157
+ name: string;
158
+ value: string;
159
+ }[];
160
+
161
+ interface AwesomeDesignMdTheme {
162
+ id: string;
163
+ name: string;
164
+ category: string;
165
+ description: string;
166
+ designMdPath: string;
167
+ color: ThemeConfig['color'];
168
+ typography: ThemeConfig['typography'];
169
+ borderRadius: string;
170
+ }
171
+ declare const AWESOME_DESIGN_MD_THEMES: AwesomeDesignMdTheme[];
172
+ declare const AWESOME_CATEGORIES: readonly ["All", "AI & LLM", "Developer Tools", "Fintech & Web3", "Tech & Lifestyle", "Automotive & Luxury"];
173
+
174
+ /**
175
+ * ThemeConfig를 받아 전역에 적용될 동적 CSS 문자열을 생성합니다.
176
+ */
177
+ declare function generateThemeCSS(theme: ThemeConfig): string;
178
+ /**
179
+ * Hex 색상의 명도(Luminance)를 계산하여 다크 테마 여부를 판별합니다.
180
+ */
181
+ declare function isDarkColor(hexColor: string): boolean;
182
+ /**
183
+ * DOM에 실시간 스타일 태그를 주입하거나 갱신합니다.
184
+ * 다크/라이트 테마에 따라 html 태그의 dark 클래스 및 data-theme 속성을 자동 동기화합니다.
185
+ */
186
+ declare function applyThemeToDOM(theme: ThemeConfig): void;
187
+ /**
188
+ * 순수 CSS 복사용 코드 생성
189
+ */
190
+ declare function exportToCSS(theme: ThemeConfig): string;
191
+ /**
192
+ * Tailwind Config 확장 객체 코드 생성
193
+ */
194
+ declare function exportToTailwind(theme: ThemeConfig): string;
195
+ /**
196
+ * W3C Design Token Community Group (DTCG) 호환 tokens.json 생성
197
+ */
198
+ declare function exportToTokensJson(theme: ThemeConfig): string;
199
+
200
+ /**
201
+ * Combines multiple class names using clsx and merges Tailwind classes
202
+ * to handle conflicts (e.g., 'px-2 px-4' becomes 'px-4').
203
+ */
204
+ declare function cn(...inputs: ClassValue[]): string;
205
+
206
+ /**
207
+ * AtomSystem / AtomDesignToken Public API
208
+ * Universal Design Token & UI Library
209
+ */
210
+
211
+ declare const ATOM_UI_CSS_PATH = "atomsystem/css/atom-ui.css";
212
+ /**
213
+ * CLI Banner & Metadata
214
+ */
215
+ declare const ATOM_VERSION = "0.1.48";
216
+ declare const ATOM_LIB_NAME = "atomsystem";
217
+
218
+ export { ATOM_LIB_NAME, ATOM_UI_CSS_PATH, ATOM_VERSION, AWESOME_CATEGORIES, AWESOME_DESIGN_MD_THEMES, type AwesomeDesignMdTheme, BASE_COLOR_TOKENS, BRAND_PRESETS, type BrandPreset, COLOR_PRESETS, type ColorConfig, type ColorPreset, type ColorToken, type ComponentCategory, DEFAULT_THEME_CONFIG, type DosAndDont, FONT_FAMILY_PRESETS, GALLERY_COMPONENTS, type GalleryComponent, PATTERNS_COLLECTION, type PatternItem, type PatternPlatform, type PatternVariant, type PropItem, RADIUS_TOKENS, type RadiusToken, SHADOW_TOKENS, SPACING_TOKENS, type ShadowToken, type SpacingToken, TYPOGRAPHY_TOKENS, type ThemeConfig, type TokenCategory, type TypographyConfig, type TypographyLevelConfig, type TypographyToken, applyThemeToDOM, cn, exportToCSS, exportToTailwind, exportToTokensJson, generateThemeCSS, isDarkColor };
@@ -0,0 +1,218 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ type TokenCategory = 'color' | 'typography' | 'radius' | 'spacing' | 'shadow';
4
+ interface BrandPreset {
5
+ id: string;
6
+ name: string;
7
+ brandColor: string;
8
+ radius: string;
9
+ description: string;
10
+ }
11
+ interface ColorToken {
12
+ name: string;
13
+ variable: string;
14
+ value: string;
15
+ description: string;
16
+ category: 'brand' | 'surface' | 'text' | 'border' | 'status';
17
+ }
18
+ interface TypographyToken {
19
+ name: string;
20
+ variable: string;
21
+ fontSize: string;
22
+ lineHeight: string;
23
+ weight: string;
24
+ sample: string;
25
+ }
26
+ interface RadiusToken {
27
+ name: string;
28
+ variable: string;
29
+ value: string;
30
+ description: string;
31
+ }
32
+ interface SpacingToken {
33
+ name: string;
34
+ variable: string;
35
+ value: string;
36
+ px: number;
37
+ }
38
+ interface ShadowToken {
39
+ name: string;
40
+ variable: string;
41
+ value: string;
42
+ description: string;
43
+ }
44
+ declare const BRAND_PRESETS: BrandPreset[];
45
+ declare const BASE_COLOR_TOKENS: ColorToken[];
46
+ declare const TYPOGRAPHY_TOKENS: TypographyToken[];
47
+ declare const RADIUS_TOKENS: RadiusToken[];
48
+ declare const SPACING_TOKENS: SpacingToken[];
49
+ declare const SHADOW_TOKENS: ShadowToken[];
50
+
51
+ type ComponentCategory = 'all' | 'form' | 'feedback' | 'navigation' | 'data';
52
+ interface PropItem {
53
+ name: string;
54
+ type: string;
55
+ defaultValue: string;
56
+ description: string;
57
+ }
58
+ interface DosAndDont {
59
+ do: string;
60
+ dont: string;
61
+ }
62
+ interface GalleryComponent {
63
+ id: string;
64
+ name: string;
65
+ category: ComponentCategory;
66
+ source: string;
67
+ description: string;
68
+ htmlSnippet: string;
69
+ reactSnippet: string;
70
+ vueSnippet?: string;
71
+ callout?: {
72
+ type: 'note' | 'tip' | 'warning';
73
+ title: string;
74
+ text: string;
75
+ };
76
+ propsSpec?: PropItem[];
77
+ useCases: string[];
78
+ usagePatterns: string[];
79
+ dosAndDonts: DosAndDont[];
80
+ relatedPatternIds: string[];
81
+ }
82
+ declare const GALLERY_COMPONENTS: GalleryComponent[];
83
+
84
+ interface PatternVariant {
85
+ id: string;
86
+ name: string;
87
+ description: string;
88
+ checklist: string[];
89
+ antiPatterns: string[];
90
+ markdown: string;
91
+ }
92
+ type PatternPlatform = 'web' | 'mobile';
93
+ interface PatternItem {
94
+ id: string;
95
+ title: string;
96
+ categoryName: string;
97
+ badge: string;
98
+ platform: PatternPlatform;
99
+ wireframeType: string;
100
+ iconName: 'dashboard' | 'chat' | 'onboarding' | 'uploader' | 'kyc' | 'blog' | 'map' | 'flight' | 'fintech' | 'commerce' | 'search' | 'docs' | 'settings';
101
+ summary: string;
102
+ recommendedComponentIds: string[];
103
+ checklist: string[];
104
+ antiPatterns: string[];
105
+ variants: PatternVariant[];
106
+ }
107
+ declare const PATTERNS_COLLECTION: PatternItem[];
108
+
109
+ interface TypographyLevelConfig {
110
+ fontSize: number;
111
+ lineHeight: number;
112
+ fontWeight: number;
113
+ letterSpacing: string;
114
+ }
115
+ interface TypographyConfig {
116
+ fontFamily: string;
117
+ h1: TypographyLevelConfig;
118
+ h2: TypographyLevelConfig;
119
+ h3: TypographyLevelConfig;
120
+ h4: TypographyLevelConfig;
121
+ h5: TypographyLevelConfig;
122
+ h6: TypographyLevelConfig;
123
+ body: TypographyLevelConfig;
124
+ sm: TypographyLevelConfig;
125
+ xs: TypographyLevelConfig;
126
+ }
127
+ interface ColorConfig {
128
+ primary: string;
129
+ primaryHover: string;
130
+ primaryLight: string;
131
+ bgPrimary: string;
132
+ bgSecondary: string;
133
+ textPrimary: string;
134
+ textSecondary: string;
135
+ textMuted: string;
136
+ borderSubtle: string;
137
+ borderStrong: string;
138
+ statusSuccess: string;
139
+ statusDanger: string;
140
+ statusWarning: string;
141
+ }
142
+ interface ThemeConfig {
143
+ color: ColorConfig;
144
+ typography: TypographyConfig;
145
+ borderRadius: string;
146
+ }
147
+ interface ColorPreset {
148
+ id: string;
149
+ name: string;
150
+ description: string;
151
+ colors: ColorConfig;
152
+ borderRadius: string;
153
+ }
154
+ declare const DEFAULT_THEME_CONFIG: ThemeConfig;
155
+ declare const COLOR_PRESETS: ColorPreset[];
156
+ declare const FONT_FAMILY_PRESETS: {
157
+ name: string;
158
+ value: string;
159
+ }[];
160
+
161
+ interface AwesomeDesignMdTheme {
162
+ id: string;
163
+ name: string;
164
+ category: string;
165
+ description: string;
166
+ designMdPath: string;
167
+ color: ThemeConfig['color'];
168
+ typography: ThemeConfig['typography'];
169
+ borderRadius: string;
170
+ }
171
+ declare const AWESOME_DESIGN_MD_THEMES: AwesomeDesignMdTheme[];
172
+ declare const AWESOME_CATEGORIES: readonly ["All", "AI & LLM", "Developer Tools", "Fintech & Web3", "Tech & Lifestyle", "Automotive & Luxury"];
173
+
174
+ /**
175
+ * ThemeConfig를 받아 전역에 적용될 동적 CSS 문자열을 생성합니다.
176
+ */
177
+ declare function generateThemeCSS(theme: ThemeConfig): string;
178
+ /**
179
+ * Hex 색상의 명도(Luminance)를 계산하여 다크 테마 여부를 판별합니다.
180
+ */
181
+ declare function isDarkColor(hexColor: string): boolean;
182
+ /**
183
+ * DOM에 실시간 스타일 태그를 주입하거나 갱신합니다.
184
+ * 다크/라이트 테마에 따라 html 태그의 dark 클래스 및 data-theme 속성을 자동 동기화합니다.
185
+ */
186
+ declare function applyThemeToDOM(theme: ThemeConfig): void;
187
+ /**
188
+ * 순수 CSS 복사용 코드 생성
189
+ */
190
+ declare function exportToCSS(theme: ThemeConfig): string;
191
+ /**
192
+ * Tailwind Config 확장 객체 코드 생성
193
+ */
194
+ declare function exportToTailwind(theme: ThemeConfig): string;
195
+ /**
196
+ * W3C Design Token Community Group (DTCG) 호환 tokens.json 생성
197
+ */
198
+ declare function exportToTokensJson(theme: ThemeConfig): string;
199
+
200
+ /**
201
+ * Combines multiple class names using clsx and merges Tailwind classes
202
+ * to handle conflicts (e.g., 'px-2 px-4' becomes 'px-4').
203
+ */
204
+ declare function cn(...inputs: ClassValue[]): string;
205
+
206
+ /**
207
+ * AtomSystem / AtomDesignToken Public API
208
+ * Universal Design Token & UI Library
209
+ */
210
+
211
+ declare const ATOM_UI_CSS_PATH = "atomsystem/css/atom-ui.css";
212
+ /**
213
+ * CLI Banner & Metadata
214
+ */
215
+ declare const ATOM_VERSION = "0.1.48";
216
+ declare const ATOM_LIB_NAME = "atomsystem";
217
+
218
+ export { ATOM_LIB_NAME, ATOM_UI_CSS_PATH, ATOM_VERSION, AWESOME_CATEGORIES, AWESOME_DESIGN_MD_THEMES, type AwesomeDesignMdTheme, BASE_COLOR_TOKENS, BRAND_PRESETS, type BrandPreset, COLOR_PRESETS, type ColorConfig, type ColorPreset, type ColorToken, type ComponentCategory, DEFAULT_THEME_CONFIG, type DosAndDont, FONT_FAMILY_PRESETS, GALLERY_COMPONENTS, type GalleryComponent, PATTERNS_COLLECTION, type PatternItem, type PatternPlatform, type PatternVariant, type PropItem, RADIUS_TOKENS, type RadiusToken, SHADOW_TOKENS, SPACING_TOKENS, type ShadowToken, type SpacingToken, TYPOGRAPHY_TOKENS, type ThemeConfig, type TokenCategory, type TypographyConfig, type TypographyLevelConfig, type TypographyToken, applyThemeToDOM, cn, exportToCSS, exportToTailwind, exportToTokensJson, generateThemeCSS, isDarkColor };