@x-plat/design-system 0.8.3 → 0.9.0

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 (72) hide show
  1. package/dist/components/AutoResizeTextArea/index.cjs +140 -4
  2. package/dist/components/AutoResizeTextArea/index.css +38 -0
  3. package/dist/components/AutoResizeTextArea/index.d.cts +3 -0
  4. package/dist/components/AutoResizeTextArea/index.d.ts +3 -0
  5. package/dist/components/AutoResizeTextArea/index.js +140 -4
  6. package/dist/components/ChatInput/index.cjs +150 -9
  7. package/dist/components/ChatInput/index.css +38 -0
  8. package/dist/components/ChatInput/index.d.cts +3 -0
  9. package/dist/components/ChatInput/index.d.ts +3 -0
  10. package/dist/components/ChatInput/index.js +151 -10
  11. package/dist/components/CheckBox/index.cjs +132 -5
  12. package/dist/components/CheckBox/index.css +38 -0
  13. package/dist/components/CheckBox/index.d.cts +3 -0
  14. package/dist/components/CheckBox/index.d.ts +3 -0
  15. package/dist/components/CheckBox/index.js +132 -5
  16. package/dist/components/DatePicker/index.cjs +72 -59
  17. package/dist/components/DatePicker/index.css +38 -31
  18. package/dist/components/DatePicker/index.js +38 -25
  19. package/dist/components/FieldMessage/index.cjs +183 -0
  20. package/dist/components/FieldMessage/index.css +37 -0
  21. package/dist/components/FieldMessage/index.d.cts +37 -0
  22. package/dist/components/FieldMessage/index.d.ts +37 -0
  23. package/dist/components/FieldMessage/index.js +154 -0
  24. package/dist/components/FileUpload/index.cjs +135 -8
  25. package/dist/components/FileUpload/index.css +38 -0
  26. package/dist/components/FileUpload/index.d.cts +3 -0
  27. package/dist/components/FileUpload/index.d.ts +3 -0
  28. package/dist/components/FileUpload/index.js +135 -8
  29. package/dist/components/ImageSelector/index.cjs +153 -11
  30. package/dist/components/ImageSelector/index.css +38 -0
  31. package/dist/components/ImageSelector/index.d.cts +3 -0
  32. package/dist/components/ImageSelector/index.d.ts +3 -0
  33. package/dist/components/ImageSelector/index.js +153 -11
  34. package/dist/components/Input/index.cjs +38 -25
  35. package/dist/components/Input/index.css +38 -31
  36. package/dist/components/Input/index.d.cts +3 -8
  37. package/dist/components/Input/index.d.ts +3 -8
  38. package/dist/components/Input/index.js +36 -23
  39. package/dist/components/Radio/index.cjs +152 -8
  40. package/dist/components/Radio/index.css +38 -0
  41. package/dist/components/Radio/index.d.cts +3 -0
  42. package/dist/components/Radio/index.d.ts +3 -0
  43. package/dist/components/Radio/index.js +152 -8
  44. package/dist/components/Select/index.cjs +139 -13
  45. package/dist/components/Select/index.css +38 -0
  46. package/dist/components/Select/index.d.cts +3 -0
  47. package/dist/components/Select/index.d.ts +3 -0
  48. package/dist/components/Select/index.js +139 -13
  49. package/dist/components/Switch/index.cjs +140 -4
  50. package/dist/components/Switch/index.css +38 -0
  51. package/dist/components/Switch/index.d.cts +3 -0
  52. package/dist/components/Switch/index.d.ts +3 -0
  53. package/dist/components/Switch/index.js +140 -4
  54. package/dist/components/TextArea/index.cjs +138 -2
  55. package/dist/components/TextArea/index.css +38 -0
  56. package/dist/components/TextArea/index.d.cts +3 -0
  57. package/dist/components/TextArea/index.d.ts +3 -0
  58. package/dist/components/TextArea/index.js +138 -2
  59. package/dist/components/index.cjs +439 -385
  60. package/dist/components/index.css +38 -31
  61. package/dist/components/index.d.cts +2 -0
  62. package/dist/components/index.d.ts +2 -0
  63. package/dist/components/index.js +222 -171
  64. package/dist/index.cjs +444 -390
  65. package/dist/index.css +38 -31
  66. package/dist/index.d.cts +2 -0
  67. package/dist/index.d.ts +2 -0
  68. package/dist/index.js +224 -173
  69. package/dist/validation-Dqo1zqhT.d.cts +13 -0
  70. package/dist/validation-Dqo1zqhT.d.ts +13 -0
  71. package/guidelines/components/form.md +26 -0
  72. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 폼 컨트롤 공통 검증 타입.
3
+ *
4
+ * 모든 폼 컴포넌트가 같은 모양으로 에러·경고·안내를 받는다.
5
+ * 렌더는 `components/FieldMessage` 가 전담한다.
6
+ */
7
+ type ValidationStatus = "error" | "warning" | "success" | "default";
8
+ interface Validation {
9
+ status: ValidationStatus;
10
+ message: string;
11
+ }
12
+
13
+ export type { Validation as V };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 폼 컨트롤 공통 검증 타입.
3
+ *
4
+ * 모든 폼 컴포넌트가 같은 모양으로 에러·경고·안내를 받는다.
5
+ * 렌더는 `components/FieldMessage` 가 전담한다.
6
+ */
7
+ type ValidationStatus = "error" | "warning" | "success" | "default";
8
+ interface Validation {
9
+ status: ValidationStatus;
10
+ message: string;
11
+ }
12
+
13
+ export type { Validation as V };
@@ -1,5 +1,31 @@
1
1
  # 폼 컨트롤: CheckBox / Radio / Switch
2
2
 
3
+ ## 검증 메시지 — 모든 폼 컴포넌트 공통
4
+
5
+ 폼 컨트롤은 **전부 같은 `validations` prop** 으로 에러·경고·안내를 받는다.
6
+ 컴포넌트마다 다른 이름이나 모양을 쓰지 않는다.
7
+
8
+ ```tsx
9
+ <Input validations={[{ status: "error", message: "필수 항목입니다" }]} />
10
+ <Select validations={[{ status: "error", message: "선택해 주세요" }]}>…</Select>
11
+ <CheckBox label="동의" validations={[{ status: "error", message: "동의가 필요합니다" }]} />
12
+ ```
13
+
14
+ | | |
15
+ |---|---|
16
+ | 타입 | `{ status: "error" \| "warning" \| "success" \| "default"; message: string }[]` |
17
+ | 적용 | `Input` `PasswordInput` `TextArea` `AutoResizeTextArea` `Select` `CheckBox` `Radio` `Switch` `ChatInput` `FileUpload` `ImageSelector` |
18
+ | 렌더 | `FieldMessage` 가 전담 — 아이콘·색·간격이 한 곳에 모여 있다 |
19
+
20
+ - 배열이라 **여러 줄을 동시에** 보여줄 수 있다 (비밀번호 규칙 등).
21
+ - `status: "error"` 가 하나라도 있으면 내부 컨트롤에 **`aria-invalid` 가 자동으로** 붙는다.
22
+ - `validations` 를 주지 않으면 **DOM 이 전혀 바뀌지 않는다.** 래퍼도 생기지 않는다.
23
+
24
+ `Select` 의 `error?: boolean` 은 메시지 없이 테두리만 붉게 할 때를 위해 남아 있다.
25
+ `validations` 와 함께 쓰면 둘 중 하나만 참이어도 에러 스타일이 적용된다.
26
+
27
+ ---
28
+
3
29
  ## CheckBox
4
30
 
5
31
  ```tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x-plat/design-system",
3
- "version": "0.8.3",
3
+ "version": "0.9.0",
4
4
  "description": "XPLAT UI Design System",
5
5
  "author": "XPLAT WOONG",
6
6
  "main": "dist/index.cjs",