@nexus-cross/design-system 1.0.0 → 1.0.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.
Files changed (82) hide show
  1. package/cursor-rules/nexus-project-setup.mdc +150 -150
  2. package/cursor-rules/nexus-ui-api.mdc +659 -316
  3. package/cursor-rules/nexus-ui-components.mdc +162 -96
  4. package/dist/chunks/chunk-55IEEVNR.js +7 -0
  5. package/dist/chunks/{chunk-D6FII7HW.js → chunk-BBLBTOP4.js} +8 -5
  6. package/dist/chunks/{chunk-5JHN4FCY.mjs → chunk-K2TBLM3F.mjs} +1 -4
  7. package/dist/chunks/{chunk-MTX7GD3H.js → chunk-PEIEVKD5.js} +1 -4
  8. package/dist/chunks/{chunk-54RBL7J4.mjs → chunk-UKRU46PH.mjs} +8 -5
  9. package/dist/chunks/chunk-XMG7ZEYY.mjs +5 -0
  10. package/dist/data-list.js +2 -2
  11. package/dist/data-list.mjs +1 -1
  12. package/dist/error-boundary.d.mts +1 -1
  13. package/dist/error-boundary.d.ts +1 -1
  14. package/dist/index.js +5 -5
  15. package/dist/index.mjs +2 -2
  16. package/dist/schemas/_all.json +870 -373
  17. package/dist/schemas/accordion.json +12 -12
  18. package/dist/schemas/avatar.json +9 -9
  19. package/dist/schemas/button.json +27 -9
  20. package/dist/schemas/carousel.json +6 -6
  21. package/dist/schemas/carouselButton.json +3 -3
  22. package/dist/schemas/carouselDots.json +2 -2
  23. package/dist/schemas/carouselSlide.json +3 -3
  24. package/dist/schemas/checkBox.json +28 -10
  25. package/dist/schemas/chip.json +13 -7
  26. package/dist/schemas/clientOnly.json +3 -3
  27. package/dist/schemas/countdown.json +8 -8
  28. package/dist/schemas/counter.json +13 -10
  29. package/dist/schemas/dataList.json +10 -10
  30. package/dist/schemas/divider.json +8 -5
  31. package/dist/schemas/drawer.json +22 -3
  32. package/dist/schemas/drawerClose.json +24 -0
  33. package/dist/schemas/drawerContent.json +7 -7
  34. package/dist/schemas/drawerDescription.json +20 -0
  35. package/dist/schemas/drawerTitle.json +20 -0
  36. package/dist/schemas/drawerTrigger.json +24 -0
  37. package/dist/schemas/ellipsis.json +9 -9
  38. package/dist/schemas/errorBoundary.json +4 -4
  39. package/dist/schemas/infiniteScroll.json +12 -12
  40. package/dist/schemas/marquee.json +10 -7
  41. package/dist/schemas/modalCall.json +81 -3
  42. package/dist/schemas/modalTemplate.json +28 -25
  43. package/dist/schemas/numberInput.json +32 -14
  44. package/dist/schemas/pagination.json +8 -8
  45. package/dist/schemas/popover.json +12 -12
  46. package/dist/schemas/radioGroup.json +17 -10
  47. package/dist/schemas/radioItem.json +12 -5
  48. package/dist/schemas/select.json +11 -11
  49. package/dist/schemas/selectItem.json +5 -5
  50. package/dist/schemas/skeleton.json +10 -7
  51. package/dist/schemas/spinner.json +11 -4
  52. package/dist/schemas/switch.json +18 -7
  53. package/dist/schemas/tab.json +15 -15
  54. package/dist/schemas/table.json +14 -14
  55. package/dist/schemas/tableRow.json +5 -5
  56. package/dist/schemas/tdColumn.json +17 -17
  57. package/dist/schemas/textArea.json +42 -9
  58. package/dist/schemas/textInput.json +55 -15
  59. package/dist/schemas/themeProvider.json +10 -10
  60. package/dist/schemas/toastOptions.json +81 -0
  61. package/dist/schemas/toaster.json +48 -3
  62. package/dist/schemas/tooltip.json +10 -10
  63. package/dist/schemas/virtualGrid.json +19 -16
  64. package/dist/schemas/virtualList.json +12 -9
  65. package/dist/schemas.d.mts +420 -56
  66. package/dist/schemas.d.ts +420 -56
  67. package/dist/schemas.js +502 -367
  68. package/dist/schemas.mjs +498 -368
  69. package/dist/styles/layer.js +2 -2
  70. package/dist/styles/layer.mjs +1 -1
  71. package/dist/styles.css +56 -45
  72. package/dist/styles.js +2 -2
  73. package/dist/styles.layered.css +56 -45
  74. package/dist/styles.mjs +1 -1
  75. package/dist/text-input.d.mts +1 -1
  76. package/dist/text-input.d.ts +1 -1
  77. package/dist/text-input.js +3 -3
  78. package/dist/text-input.mjs +1 -1
  79. package/package.json +8 -6
  80. package/scripts/setup-cursor-rules.cjs +6 -6
  81. package/dist/chunks/chunk-7AISZYWL.js +0 -7
  82. package/dist/chunks/chunk-V5OTJP6H.mjs +0 -5
@@ -13,18 +13,18 @@
13
13
  "type": "null"
14
14
  }
15
15
  ],
16
- "description": "데이터 배열. null/undefined이면 로딩 상태 (필수)"
16
+ "description": "Data array. null/undefined = loading state (required)"
17
17
  },
18
18
  "children": {
19
- "description": " 렌더 함수 ({ item, index }) => ReactNode (필수)"
19
+ "description": "Row render function ({ item, index }) => ReactNode (required)"
20
20
  },
21
21
  "hideThead": {
22
22
  "type": "boolean",
23
- "description": "테이블 헤더 숨김"
23
+ "description": "Hide table header"
24
24
  },
25
25
  "loading": {
26
26
  "type": "boolean",
27
- "description": "로딩 상태 강제"
27
+ "description": "Force loading state"
28
28
  },
29
29
  "loadingType": {
30
30
  "type": "string",
@@ -33,42 +33,42 @@
33
33
  "skeleton"
34
34
  ],
35
35
  "default": "skeleton",
36
- "description": "로딩 표시 방식"
36
+ "description": "Loading display type"
37
37
  },
38
38
  "loadingElement": {
39
- "description": "커스텀 로딩 요소 (ReactElement)"
39
+ "description": "Custom loading element (ReactElement)"
40
40
  },
41
41
  "skeletonCount": {
42
42
  "type": "number",
43
43
  "default": 10,
44
- "description": "스켈레톤 "
44
+ "description": "Skeleton row count"
45
45
  },
46
46
  "noDataMsg": {
47
- "description": "데이터 없을 메시지 (ReactElement | string)"
47
+ "description": "No data message (ReactElement | string)"
48
48
  },
49
49
  "notification": {
50
- "description": "테이블 상단 알림 영역 (ReactNode)"
50
+ "description": "Table top notification area (ReactNode)"
51
51
  },
52
52
  "sortUpElement": {
53
- "description": "오름차순 정렬 아이콘 (ReactElement)"
53
+ "description": "Ascending sort icon (ReactElement)"
54
54
  },
55
55
  "sortDownElement": {
56
- "description": "내림차순 정렬 아이콘 (ReactElement)"
56
+ "description": "Descending sort icon (ReactElement)"
57
57
  },
58
58
  "className": {
59
59
  "type": "string",
60
- "description": "테이블 래퍼 스타일"
60
+ "description": "Table wrapper style"
61
61
  },
62
62
  "theadClassName": {
63
63
  "type": "string",
64
- "description": "헤더 스타일"
64
+ "description": "Header row style"
65
65
  }
66
66
  },
67
67
  "required": [
68
68
  "list"
69
69
  ],
70
70
  "additionalProperties": false,
71
- "description": "테이블. TdColumn으로 컬럼 정의, TableRow 래핑. 정렬/스켈레톤 로딩 내장."
71
+ "description": "Table. Column definitions via TdColumn, row wrapping via TableRow. Built-in sorting/skeleton loading."
72
72
  }
73
73
  },
74
74
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -11,21 +11,21 @@
11
11
  "accent"
12
12
  ],
13
13
  "default": "default",
14
- "description": " 스타일"
14
+ "description": "Row style"
15
15
  },
16
16
  "className": {
17
17
  "type": "string",
18
- "description": "스타일 오버라이드"
18
+ "description": "Style override"
19
19
  },
20
20
  "children": {
21
- "description": "TdColumn 목록 (ReactNode, 필수)"
21
+ "description": "TdColumn list (ReactNode, required)"
22
22
  },
23
23
  "onClick": {
24
- "description": " 클릭 콜백 (e: MouseEvent) => void"
24
+ "description": "Row click callback (e: MouseEvent) => void"
25
25
  }
26
26
  },
27
27
  "additionalProperties": false,
28
- "description": "테이블 행. Table 내부에서 사용."
28
+ "description": "Table row. Used inside Table."
29
29
  }
30
30
  },
31
31
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -5,21 +5,21 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "label": {
8
- "description": "헤더 라벨 (ReactElement | string)"
8
+ "description": "Header label (ReactElement | string)"
9
9
  },
10
10
  "fieldId": {
11
11
  "type": [
12
12
  "string",
13
13
  "null"
14
14
  ],
15
- "description": "컬럼 식별자 (정렬 키, 필수)"
15
+ "description": "Column identifier (sort key, required)"
16
16
  },
17
17
  "size": {
18
18
  "type": [
19
19
  "number",
20
20
  "string"
21
21
  ],
22
- "description": "컬럼 너비 (number → px, string → CSS)"
22
+ "description": "Column width (number → px, string → CSS value)"
23
23
  },
24
24
  "align": {
25
25
  "type": "string",
@@ -29,7 +29,7 @@
29
29
  "right"
30
30
  ],
31
31
  "default": "left",
32
- "description": "텍스트 정렬"
32
+ "description": "Text alignment"
33
33
  },
34
34
  "textOverflow": {
35
35
  "type": "string",
@@ -40,34 +40,34 @@
40
40
  "break-all"
41
41
  ],
42
42
  "default": "truncate",
43
- "description": "텍스트 넘침 처리"
43
+ "description": "Text overflow handling"
44
44
  },
45
45
  "highlightKey": {
46
46
  "type": [
47
47
  "string",
48
48
  "null"
49
49
  ],
50
- "description": "호버 하이라이트 그룹 "
50
+ "description": "Hover highlight group key"
51
51
  },
52
52
  "colSpan": {
53
53
  "type": "number",
54
- "description": " 병합"
54
+ "description": "Column span"
55
55
  },
56
56
  "rowSpan": {
57
57
  "type": "number",
58
- "description": " 병합"
58
+ "description": "Row span"
59
59
  },
60
60
  "thColSpan": {
61
61
  "type": "number",
62
- "description": "헤더 colSpan (<th>)"
62
+ "description": "Header colSpan (<th>)"
63
63
  },
64
64
  "thRowSpan": {
65
65
  "type": "number",
66
- "description": "헤더 rowSpan (<th>)"
66
+ "description": "Header rowSpan (<th>)"
67
67
  },
68
68
  "enableSorting": {
69
69
  "type": "boolean",
70
- "description": "정렬 활성화"
70
+ "description": "Enable sorting"
71
71
  },
72
72
  "order": {
73
73
  "type": "string",
@@ -76,31 +76,31 @@
76
76
  "asc",
77
77
  ""
78
78
  ],
79
- "description": "현재 정렬 방향"
79
+ "description": "Current sort direction"
80
80
  },
81
81
  "sortValue": {
82
82
  "type": [
83
83
  "string",
84
84
  "number"
85
85
  ],
86
- "description": "정렬 기준 "
86
+ "description": "Sort criterion value"
87
87
  },
88
88
  "handleClickSort": {
89
- "description": "정렬 클릭 콜백 ({ index, fieldId, order }) => void"
89
+ "description": "Sort click callback ({ index, fieldId, order }) => void"
90
90
  },
91
91
  "children": {
92
- "description": " 내용 (ReactNode, 필수)"
92
+ "description": "Cell content (ReactNode, required)"
93
93
  },
94
94
  "className": {
95
95
  "type": "string",
96
- "description": "스타일 오버라이드"
96
+ "description": "Style override"
97
97
  }
98
98
  },
99
99
  "required": [
100
100
  "fieldId"
101
101
  ],
102
102
  "additionalProperties": false,
103
- "description": "테이블 셀/컬럼 정의. TableRow 내부에서 사용."
103
+ "description": "Table cell/column definition. Used inside TableRow."
104
104
  }
105
105
  },
106
106
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -6,38 +6,71 @@
6
6
  "properties": {
7
7
  "error": {
8
8
  "type": "boolean",
9
- "description": "에러 상태 (aria-invalid 자동)"
9
+ "description": "Error state (auto aria-invalid)"
10
10
  },
11
11
  "showCount": {
12
12
  "type": "boolean",
13
- "description": "글자 표시 (maxLength 필요)"
13
+ "description": "Show character count (requires maxLength)"
14
14
  },
15
15
  "maxLength": {
16
16
  "type": "number",
17
- "description": "최대 글자 "
17
+ "description": "Maximum character count"
18
18
  },
19
19
  "placeholder": {
20
20
  "type": "string",
21
- "description": "플레이스홀더"
21
+ "description": "Placeholder"
22
22
  },
23
23
  "rows": {
24
24
  "type": "number",
25
- "description": "표시 "
25
+ "description": "Visible row count"
26
26
  },
27
27
  "disabled": {
28
28
  "type": "boolean",
29
- "description": "비활성"
29
+ "description": "Disabled"
30
+ },
31
+ "readOnly": {
32
+ "type": "boolean",
33
+ "description": "Read-only"
34
+ },
35
+ "value": {
36
+ "type": "string",
37
+ "description": "Input value (controlled mode)"
38
+ },
39
+ "defaultValue": {
40
+ "type": "string",
41
+ "description": "Initial value (uncontrolled mode)"
42
+ },
43
+ "name": {
44
+ "type": "string",
45
+ "description": "Form field name"
46
+ },
47
+ "id": {
48
+ "type": "string",
49
+ "description": "Element ID"
50
+ },
51
+ "autoFocus": {
52
+ "type": "boolean",
53
+ "description": "Auto focus"
30
54
  },
31
55
  "onValueChange": {
32
- "description": " 변경 콜백 (value: string) => void"
56
+ "description": "Value change callback (value: string) => void"
57
+ },
58
+ "onChange": {
59
+ "description": "Native change event handler"
60
+ },
61
+ "onBlur": {
62
+ "description": "Blur callback"
63
+ },
64
+ "onFocus": {
65
+ "description": "Focus callback"
33
66
  },
34
67
  "className": {
35
68
  "type": "string",
36
- "description": "스타일 오버라이드"
69
+ "description": "Style override"
37
70
  }
38
71
  },
39
72
  "additionalProperties": false,
40
- "description": "여러 텍스트 입력. 글자 수 카운터 내장."
73
+ "description": "Multi-line text input. Built-in character counter."
41
74
  }
42
75
  },
43
76
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -7,60 +7,100 @@
7
7
  "size": {
8
8
  "type": "string",
9
9
  "enum": [
10
- "sm",
11
10
  "md",
12
11
  "lg",
13
12
  "xl"
14
13
  ],
15
14
  "default": "md",
16
- "description": "크기"
15
+ "description": "Size"
17
16
  },
18
17
  "error": {
19
18
  "type": "boolean",
20
- "description": "에러 상태 (aria-invalid 자동)"
19
+ "description": "Error state (auto aria-invalid)"
21
20
  },
22
21
  "prefixIcon": {
23
- "description": "앞쪽 아이콘 (ReactNode)"
22
+ "description": "Prefix icon (ReactNode)"
24
23
  },
25
24
  "suffixIcon": {
26
- "description": "뒤쪽 아이콘 (ReactNode)"
25
+ "description": "Suffix icon (ReactNode)"
27
26
  },
28
27
  "label": {
29
- "description": "입력 필드 라벨 (ReactNode)"
28
+ "description": "Label above input field (ReactNode)"
30
29
  },
31
30
  "description": {
32
- "description": "입력 필드 아래 설명 텍스트 (ReactNode, error 빨간색)"
31
+ "description": "Description below input field (ReactNode, red on error)"
33
32
  },
34
33
  "showCount": {
35
34
  "type": "boolean",
36
- "description": "글자 카운트 표시 (maxLength 필요)"
35
+ "description": "Show character count (requires maxLength)"
37
36
  },
38
37
  "maxLength": {
39
38
  "type": "number",
40
- "description": "최대 글자 "
39
+ "description": "Maximum character count"
41
40
  },
42
41
  "clearable": {
43
42
  "type": "boolean",
44
- "description": "X 버튼으로 입력값 초기화"
43
+ "description": "Clear input via X button"
45
44
  },
46
45
  "placeholder": {
47
46
  "type": "string",
48
- "description": "플레이스홀더"
47
+ "description": "Placeholder"
49
48
  },
50
49
  "disabled": {
51
50
  "type": "boolean",
52
- "description": "비활성"
51
+ "description": "Disabled"
52
+ },
53
+ "readOnly": {
54
+ "type": "boolean",
55
+ "description": "Read-only"
56
+ },
57
+ "value": {
58
+ "type": "string",
59
+ "description": "Input value (controlled mode)"
60
+ },
61
+ "defaultValue": {
62
+ "type": "string",
63
+ "description": "Initial value (uncontrolled mode)"
64
+ },
65
+ "type": {
66
+ "type": "string",
67
+ "description": "Input type (text, password, email, url, etc.)"
68
+ },
69
+ "name": {
70
+ "type": "string",
71
+ "description": "Form field name"
72
+ },
73
+ "id": {
74
+ "type": "string",
75
+ "description": "Element ID (for label htmlFor binding)"
76
+ },
77
+ "autoFocus": {
78
+ "type": "boolean",
79
+ "description": "Auto focus"
80
+ },
81
+ "autoComplete": {
82
+ "type": "string",
83
+ "description": "Autocomplete hint (on, off, email, etc.)"
53
84
  },
54
85
  "onValueChange": {
55
- "description": " 변경 콜백 (value: string) => void"
86
+ "description": "Value change callback (value: string) => void"
87
+ },
88
+ "onChange": {
89
+ "description": "Native change event handler"
90
+ },
91
+ "onBlur": {
92
+ "description": "Blur callback"
93
+ },
94
+ "onFocus": {
95
+ "description": "Focus callback"
56
96
  },
57
97
  "className": {
58
98
  "type": "string",
59
- "description": "스타일 오버라이드"
99
+ "description": "Style override"
60
100
  }
61
101
  },
62
102
  "additionalProperties": false,
63
- "description": "텍스트 입력 필드. label, description, prefix/suffix 아이콘, clearable, 글자 수 카운트 지원."
103
+ "description": "Text input field. Supports label, description, prefix/suffix icons, clearable, character counter."
64
104
  }
65
105
  },
66
106
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -5,22 +5,22 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "children": {
8
- "description": " 루트 요소 (ReactNode, 필수)"
8
+ "description": "App root element (ReactNode, required)"
9
9
  },
10
10
  "defaultTheme": {
11
11
  "type": "string",
12
- "description": "기본 테마 (예: \"dark\", \"light\")"
12
+ "description": "Default theme (e.g. \"dark\", \"light\")"
13
13
  },
14
14
  "storageKey": {
15
15
  "type": "string",
16
- "description": "localStorage 저장 (기본: \"theme\")"
16
+ "description": "localStorage storage key (default: \"theme\")"
17
17
  },
18
18
  "themes": {
19
19
  "type": "array",
20
20
  "items": {
21
21
  "type": "string"
22
22
  },
23
- "description": "사용 가능한 테마 목록 (기본: [\"light\", \"dark\"])"
23
+ "description": "Available theme list (default: [\"light\", \"dark\"])"
24
24
  },
25
25
  "attribute": {
26
26
  "anyOf": [
@@ -34,23 +34,23 @@
34
34
  }
35
35
  }
36
36
  ],
37
- "description": "테마 적용 HTML 속성 (기본: \"data-theme\")"
37
+ "description": "Theme HTML attribute (default: \"data-theme\")"
38
38
  },
39
39
  "enableSystem": {
40
40
  "type": "boolean",
41
- "description": "시스템 테마 감지 활성화"
41
+ "description": "Enable system theme detection"
42
42
  },
43
43
  "disableTransitionOnChange": {
44
44
  "type": "boolean",
45
- "description": "테마 전환 트랜지션 비활성화"
45
+ "description": "Disable transitions on theme change"
46
46
  },
47
47
  "forcedTheme": {
48
48
  "type": "string",
49
- "description": "강제 테마 (사용자 변경 불가)"
49
+ "description": "Forced theme (user cannot change)"
50
50
  },
51
51
  "enableColorScheme": {
52
52
  "type": "boolean",
53
- "description": "color-scheme CSS 속성 자동 설정"
53
+ "description": "Auto-set color-scheme CSS property"
54
54
  },
55
55
  "nonce": {
56
56
  "type": "string",
@@ -58,7 +58,7 @@
58
58
  }
59
59
  },
60
60
  "additionalProperties": false,
61
- "description": "테마 제공자. next-themes 기반. useTheme() 훅으로 테마 상태 접근."
61
+ "description": "Theme provider. Based on next-themes. Access theme state via useTheme() hook."
62
62
  }
63
63
  },
64
64
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -0,0 +1,81 @@
1
+ {
2
+ "$ref": "#/definitions/toastOptionsSchema",
3
+ "definitions": {
4
+ "toastOptionsSchema": {
5
+ "type": "object",
6
+ "properties": {
7
+ "description": {
8
+ "description": "Toast subtitle (ReactNode)"
9
+ },
10
+ "duration": {
11
+ "type": "number",
12
+ "description": "Auto-dismiss duration (ms). Default 4000"
13
+ },
14
+ "icon": {
15
+ "description": "Custom icon (ReactNode)"
16
+ },
17
+ "action": {
18
+ "description": "Action button. { label: ReactNode, onClick: () => void }"
19
+ },
20
+ "cancel": {
21
+ "description": "Cancel button. { label: ReactNode, onClick: () => void }"
22
+ },
23
+ "closeButton": {
24
+ "type": "boolean",
25
+ "description": "Show close (X) button"
26
+ },
27
+ "dismissible": {
28
+ "type": "boolean",
29
+ "description": "Allow dismiss via swipe/click"
30
+ },
31
+ "richColors": {
32
+ "type": "boolean",
33
+ "description": "Apply strong colors for success/error/warning/info"
34
+ },
35
+ "invert": {
36
+ "type": "boolean",
37
+ "description": "Invert colors (dark↔light)"
38
+ },
39
+ "position": {
40
+ "type": "string",
41
+ "enum": [
42
+ "top-left",
43
+ "top-center",
44
+ "top-right",
45
+ "bottom-left",
46
+ "bottom-center",
47
+ "bottom-right"
48
+ ],
49
+ "description": "Individual position for this toast"
50
+ },
51
+ "onDismiss": {
52
+ "description": "Dismiss callback (toast: ToastT) => void"
53
+ },
54
+ "onAutoClose": {
55
+ "description": "Auto-close callback (toast: ToastT) => void"
56
+ },
57
+ "className": {
58
+ "type": "string",
59
+ "description": "Toast custom class"
60
+ },
61
+ "style": {
62
+ "description": "Toast inline style (CSSProperties)"
63
+ },
64
+ "unstyled": {
65
+ "type": "boolean",
66
+ "description": "Remove default styles (for custom styling)"
67
+ },
68
+ "id": {
69
+ "type": [
70
+ "string",
71
+ "number"
72
+ ],
73
+ "description": "Toast ID (for deduplication or updates)"
74
+ }
75
+ },
76
+ "additionalProperties": false,
77
+ "description": "toast() call options. Used as toast(message, options). Fully customizable via toast.custom(jsx)."
78
+ }
79
+ },
80
+ "$schema": "http://json-schema.org/draft-07/schema#"
81
+ }
@@ -15,16 +15,61 @@
15
15
  "bottom-right"
16
16
  ],
17
17
  "default": "top-center",
18
- "description": "토스트 위치"
18
+ "description": "Default toast position"
19
19
  },
20
20
  "unstyled": {
21
21
  "type": "boolean",
22
22
  "default": false,
23
- "description": "기본 스타일 제거 (커스텀 스타일링 )"
23
+ "description": "Remove default styles (for custom styling)"
24
+ },
25
+ "theme": {
26
+ "type": "string",
27
+ "enum": [
28
+ "light",
29
+ "dark",
30
+ "system"
31
+ ],
32
+ "description": "Theme setting"
33
+ },
34
+ "richColors": {
35
+ "type": "boolean",
36
+ "description": "Apply strong colors for success/error/warning/info"
37
+ },
38
+ "expand": {
39
+ "type": "boolean",
40
+ "description": "Always show toasts in expanded state"
41
+ },
42
+ "duration": {
43
+ "type": "number",
44
+ "description": "Global auto-dismiss duration (ms). Default 4000"
45
+ },
46
+ "visibleToasts": {
47
+ "type": "number",
48
+ "description": "Maximum visible toasts at once"
49
+ },
50
+ "closeButton": {
51
+ "type": "boolean",
52
+ "description": "Show close button on all toasts"
53
+ },
54
+ "gap": {
55
+ "type": "number",
56
+ "description": "Gap between toasts (px)"
57
+ },
58
+ "offset": {
59
+ "description": "Offset from screen edge. string | number | { top, right, bottom, left }"
60
+ },
61
+ "dir": {
62
+ "type": "string",
63
+ "enum": [
64
+ "ltr",
65
+ "rtl",
66
+ "auto"
67
+ ],
68
+ "description": "Text direction"
24
69
  }
25
70
  },
26
71
  "additionalProperties": false,
27
- "description": "Toaster 설정. 루트에 배치. toast() 함수로 알림 표시. sonner 기반."
72
+ "description": "Toaster config. Place once at app root. Display notifications via toast(). Based on sonner."
28
73
  }
29
74
  },
30
75
  "$schema": "http://json-schema.org/draft-07/schema#"