@ncds/ui-admin-mcp 1.0.0-alpha.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 (97) hide show
  1. package/README.md +113 -0
  2. package/bin/components.bundle.js +21 -0
  3. package/bin/definitions/compliance-rules.json +64 -0
  4. package/bin/definitions/instructions.md +96 -0
  5. package/bin/definitions/rules.json +57 -0
  6. package/bin/definitions/token-descriptions.json +27 -0
  7. package/bin/definitions/tool-definitions.json +42 -0
  8. package/bin/instructions.d.ts +1 -0
  9. package/bin/instructions.js +14 -0
  10. package/bin/server.d.ts +1 -0
  11. package/bin/server.js +164 -0
  12. package/bin/server.mjs +8 -0
  13. package/bin/tools/getComponentHtml.d.ts +3 -0
  14. package/bin/tools/getComponentHtml.js +30 -0
  15. package/bin/tools/getComponentProps.d.ts +4 -0
  16. package/bin/tools/getComponentProps.js +17 -0
  17. package/bin/tools/getDesignTokens.d.ts +13 -0
  18. package/bin/tools/getDesignTokens.js +20 -0
  19. package/bin/tools/listComponents.d.ts +16 -0
  20. package/bin/tools/listComponents.js +24 -0
  21. package/bin/tools/listIcons.d.ts +22 -0
  22. package/bin/tools/listIcons.js +23 -0
  23. package/bin/tools/ping.d.ts +17 -0
  24. package/bin/tools/ping.js +20 -0
  25. package/bin/tools/renderToHtml.d.ts +21 -0
  26. package/bin/tools/renderToHtml.js +177 -0
  27. package/bin/tools/searchComponent.d.ts +4 -0
  28. package/bin/tools/searchComponent.js +33 -0
  29. package/bin/tools/searchIcon.d.ts +7 -0
  30. package/bin/tools/searchIcon.js +19 -0
  31. package/bin/tools/validateHtml.d.ts +18 -0
  32. package/bin/tools/validateHtml.js +85 -0
  33. package/bin/types.d.ts +111 -0
  34. package/bin/types.js +5 -0
  35. package/bin/utils/bemValidator.d.ts +36 -0
  36. package/bin/utils/bemValidator.js +198 -0
  37. package/bin/utils/compliance.d.ts +52 -0
  38. package/bin/utils/compliance.js +199 -0
  39. package/bin/utils/dataLoader.d.ts +33 -0
  40. package/bin/utils/dataLoader.js +174 -0
  41. package/bin/utils/domEnvironment.d.ts +9 -0
  42. package/bin/utils/domEnvironment.js +25 -0
  43. package/bin/utils/fuzzyMatch.d.ts +21 -0
  44. package/bin/utils/fuzzyMatch.js +110 -0
  45. package/bin/utils/logger.d.ts +18 -0
  46. package/bin/utils/logger.js +27 -0
  47. package/bin/utils/response.d.ts +26 -0
  48. package/bin/utils/response.js +28 -0
  49. package/bin/utils/tokenValidator.d.ts +24 -0
  50. package/bin/utils/tokenValidator.js +162 -0
  51. package/bin/version.d.ts +4 -0
  52. package/bin/version.js +7 -0
  53. package/data/_icons.json +12361 -0
  54. package/data/_meta.json +12 -0
  55. package/data/_tokens.json +661 -0
  56. package/data/badge-group.json +121 -0
  57. package/data/badge.json +130 -0
  58. package/data/bread-crumb.json +51 -0
  59. package/data/button-group.json +94 -0
  60. package/data/button.json +143 -0
  61. package/data/carousel-arrow.json +87 -0
  62. package/data/carousel-number-group.json +87 -0
  63. package/data/checkbox.json +99 -0
  64. package/data/combo-box.json +157 -0
  65. package/data/date-picker.json +109 -0
  66. package/data/divider.json +91 -0
  67. package/data/dot.json +103 -0
  68. package/data/dropdown.json +123 -0
  69. package/data/empty-state.json +64 -0
  70. package/data/featured-icon.json +125 -0
  71. package/data/file-input.json +161 -0
  72. package/data/horizontal-tab.json +114 -0
  73. package/data/image-file-input.json +185 -0
  74. package/data/input-base.json +145 -0
  75. package/data/modal.json +131 -0
  76. package/data/notification.json +176 -0
  77. package/data/number-input.json +141 -0
  78. package/data/pagination.json +101 -0
  79. package/data/password-input.json +45 -0
  80. package/data/progress-bar.json +90 -0
  81. package/data/progress-circle.json +96 -0
  82. package/data/radio.json +86 -0
  83. package/data/range-date-picker-with-buttons.json +101 -0
  84. package/data/range-date-picker.json +87 -0
  85. package/data/select-box.json +177 -0
  86. package/data/select.json +116 -0
  87. package/data/slider.json +100 -0
  88. package/data/spinner.json +94 -0
  89. package/data/switch.json +109 -0
  90. package/data/tag.json +101 -0
  91. package/data/textarea.json +96 -0
  92. package/data/toggle.json +102 -0
  93. package/data/tooltip.json +185 -0
  94. package/data/vertical-tab.json +99 -0
  95. package/package.json +71 -0
  96. package/templates/.mcp.json.example +8 -0
  97. package/templates/README.md +30 -0
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "carousel-number-group",
3
+ "exportName": "CarouselNumberGroup",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "feedback",
7
+ "description": "CarouselNumberGroup은 캐러셀의 현재 페이지와 전체 페이지 수를 표시하는 컴포넌트입니다.",
8
+ "aliases": [
9
+ "CarouselNumberGroup",
10
+ "캐러셀",
11
+ "숫자그룹",
12
+ "페이지번호",
13
+ "현재페이지",
14
+ "전체페이지",
15
+ "슬래시",
16
+ "페이지인디케이터",
17
+ "Dark",
18
+ "Light",
19
+ "Framed",
20
+ "NCDS"
21
+ ],
22
+ "hasChildren": false,
23
+ "whenToUse": [
24
+ "캐러셀 페이지 인디케이터 전용",
25
+ "슬래시(/)로 구분된 형태로 현재 페이지와 전체 페이지 수를 직관적으로 표시"
26
+ ],
27
+ "forbiddenRules": [
28
+ "캐러셀 외 용도 금지",
29
+ "currentPage/totalPage 누락 금지",
30
+ "currentPage가 totalPage 초과 금지",
31
+ "크기 임의 변경 금지",
32
+ "슬래시(/) 구분 형식 변경 금지"
33
+ ],
34
+ "seeAlso": [
35
+ "carousel-arrow"
36
+ ],
37
+ "props": {
38
+ "color": {
39
+ "type": "enum",
40
+ "required": false,
41
+ "values": [
42
+ "dark",
43
+ "light"
44
+ ],
45
+ "default": "light"
46
+ },
47
+ "currentPage": {
48
+ "type": "number",
49
+ "required": true
50
+ },
51
+ "framed": {
52
+ "type": "boolean",
53
+ "required": false,
54
+ "default": true
55
+ },
56
+ "size": {
57
+ "type": "enum",
58
+ "required": false,
59
+ "values": [
60
+ "sm"
61
+ ],
62
+ "default": "sm"
63
+ },
64
+ "totalPage": {
65
+ "type": "number",
66
+ "required": true
67
+ }
68
+ },
69
+ "html": {},
70
+ "bemClasses": [
71
+ "ncua-carousel-number-group",
72
+ "ncua-carousel-number-group--dark",
73
+ "ncua-carousel-number-group--light",
74
+ "ncua-carousel-number-group--sm",
75
+ "ncua-carousel-number-group__number",
76
+ "ncua-carousel-number-group__total"
77
+ ],
78
+ "usage": {
79
+ "import": "import { CarouselNumberGroup } from '@ncds/ui-admin';",
80
+ "react": {
81
+ "default": "<CarouselNumberGroup currentPage={0} totalPage={0} />",
82
+ "color:dark": "<CarouselNumberGroup color=\"dark\" currentPage={0} totalPage={0} />",
83
+ "color:light": "<CarouselNumberGroup color=\"light\" currentPage={0} totalPage={0} />",
84
+ "size:sm": "<CarouselNumberGroup size=\"sm\" currentPage={0} totalPage={0} />"
85
+ }
86
+ }
87
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "name": "checkbox",
3
+ "exportName": "Checkbox",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "input",
7
+ "description": "체크박스는 사용자가 목록에서 하나 이상의 항목을 선택하거나 옵션을 활성화/비활성화할 때 사용하는 핵심 Selection 컴포넌트입니다.",
8
+ "aliases": [
9
+ "체크박스",
10
+ "Checkbox",
11
+ "컴포넌트",
12
+ "선택",
13
+ "다중선택",
14
+ "indeterminate",
15
+ "부분선택",
16
+ "checked",
17
+ "disabled",
18
+ "destructive",
19
+ "supportText",
20
+ "Focused",
21
+ "Hover",
22
+ "NCDS",
23
+ "폼",
24
+ "Form"
25
+ ],
26
+ "hasChildren": false,
27
+ "whenToUse": [
28
+ "체크박스는 다중 선택 전용 Selection 컴포넌트이며, 선택 상태(Checked/Unchecked/Indeterminate)와 인터랙션 상태가 시각적으로 즉시 구분되어야 한다"
29
+ ],
30
+ "forbiddenRules": [
31
+ "단일 선택 용도로 체크박스 사용",
32
+ "레이블 없이 체크박스만 단독 배치 (테이블 행 선택 제외)",
33
+ "레이블을 체크박스 좌측에 배치",
34
+ "체크박스로 즉시 실행 동작 트리거",
35
+ "Indeterminate 상태를 사용자 직접 조작으로 진입",
36
+ "NCDS 기준 외 임의 색상, radius, 크기 변경",
37
+ "Disabled 상태에서 시각적 강조나 인터랙션 하이라이트 추가",
38
+ "가로 정렬 시 5개 이상의 체크박스 나열",
39
+ "supportText를 에러 메시지 용도로 사용",
40
+ "on/off 토글 용도로 체크박스 사용"
41
+ ],
42
+ "seeAlso": [
43
+ "radio",
44
+ "toggle",
45
+ "button"
46
+ ],
47
+ "htmlElement": "input",
48
+ "props": {
49
+ "destructive": {
50
+ "type": "boolean",
51
+ "required": false,
52
+ "default": false
53
+ },
54
+ "indeterminate": {
55
+ "type": "boolean",
56
+ "required": false,
57
+ "default": false
58
+ },
59
+ "onChange": {
60
+ "type": "function",
61
+ "required": false
62
+ },
63
+ "size": {
64
+ "type": "enum",
65
+ "required": false,
66
+ "values": [
67
+ "sm",
68
+ "xs"
69
+ ],
70
+ "default": "xs"
71
+ },
72
+ "supportText": {
73
+ "type": "string",
74
+ "required": false
75
+ },
76
+ "text": {
77
+ "type": "ReactNode",
78
+ "required": false
79
+ }
80
+ },
81
+ "html": {},
82
+ "bemClasses": [
83
+ "ncua-checkbox-field",
84
+ "ncua-checkbox-field--sm",
85
+ "ncua-checkbox-field--xs",
86
+ "ncua-checkbox-field__input",
87
+ "ncua-checkbox-field__support-text",
88
+ "ncua-checkbox-field__text",
89
+ "ncua-checkbox-input"
90
+ ],
91
+ "usage": {
92
+ "import": "import { Checkbox } from '@ncds/ui-admin';",
93
+ "react": {
94
+ "default": "<Checkbox />",
95
+ "size:sm": "<Checkbox size=\"sm\" />",
96
+ "size:xs": "<Checkbox size=\"xs\" />"
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,157 @@
1
+ {
2
+ "name": "combo-box",
3
+ "exportName": "ComboBox",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": true,
6
+ "category": "input",
7
+ "description": "ComboBox는 여러 개의 데이터에서 검색(입력)하거나 리스트에서 옵션을 골라 빠르게 선택하는 복합 선택 컴포넌트입니다.",
8
+ "aliases": [
9
+ "콤보박스",
10
+ "ComboBox",
11
+ "컴포넌트",
12
+ "검색",
13
+ "선택",
14
+ "Single",
15
+ "Multi",
16
+ "Chip",
17
+ "Dropdown",
18
+ "Filter",
19
+ "Like검색",
20
+ "옵션",
21
+ "Placeholder",
22
+ "Filled",
23
+ "Focused",
24
+ "Open",
25
+ "Destructive",
26
+ "전체선택",
27
+ "선택완료",
28
+ "Clear",
29
+ "NCDS"
30
+ ],
31
+ "hasChildren": true,
32
+ "whenToUse": [
33
+ "ComboBox는 검색 입력 + 드롭다운 선택이 결합된 복합 선택 컴포넌트로, 5~500개 옵션 범위에서 사용하며, 멀티 선택 시 반드시 \"선택 완료\" 버튼으로 확정해야 합니다"
34
+ ],
35
+ "forbiddenRules": [
36
+ "5개 이하 옵션에서 Search ComboBox 남용 금지",
37
+ "500개 초과 옵션을 단일 레이어로 제공 금지",
38
+ "검색 결과 없음 메시지 미제공 금지",
39
+ "멀티 선택에서 자동 확정 UX 사용 금지",
40
+ "Clear 버튼 없이 입력 유지 강제 금지"
41
+ ],
42
+ "seeAlso": [
43
+ "selectbox",
44
+ "select"
45
+ ],
46
+ "htmlElement": "div",
47
+ "props": {
48
+ "children": {
49
+ "type": "ReactNode",
50
+ "required": false
51
+ },
52
+ "destructive": {
53
+ "type": "boolean",
54
+ "required": false,
55
+ "default": false
56
+ },
57
+ "disabled": {
58
+ "type": "boolean",
59
+ "required": false,
60
+ "default": false
61
+ },
62
+ "hintText": {
63
+ "type": "string",
64
+ "required": false
65
+ },
66
+ "label": {
67
+ "type": "string",
68
+ "required": false
69
+ },
70
+ "maxHeight": {
71
+ "type": "number",
72
+ "required": false,
73
+ "default": "defaultMaxHeight"
74
+ },
75
+ "multiple": {
76
+ "type": "boolean",
77
+ "required": false,
78
+ "default": false
79
+ },
80
+ "onChange": {
81
+ "type": "function",
82
+ "required": false
83
+ },
84
+ "onEdit": {
85
+ "type": "function",
86
+ "required": false
87
+ },
88
+ "onSearch": {
89
+ "type": "function",
90
+ "required": false
91
+ },
92
+ "optionItems": {
93
+ "type": "string",
94
+ "required": false,
95
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
96
+ "default": "[]"
97
+ },
98
+ "placeholder": {
99
+ "type": "string",
100
+ "required": false,
101
+ "default": "검색하세요"
102
+ },
103
+ "register": {
104
+ "type": "object",
105
+ "required": false
106
+ },
107
+ "required": {
108
+ "type": "boolean",
109
+ "required": false,
110
+ "default": false
111
+ },
112
+ "searchValue": {
113
+ "type": "string",
114
+ "required": false,
115
+ "default": ""
116
+ },
117
+ "showFooterButtons": {
118
+ "type": "boolean",
119
+ "required": false,
120
+ "default": false
121
+ },
122
+ "size": {
123
+ "type": "enum",
124
+ "required": false,
125
+ "values": [
126
+ "sm",
127
+ "xs"
128
+ ],
129
+ "default": "xs"
130
+ },
131
+ "value": {
132
+ "type": "string",
133
+ "required": false,
134
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/dropdown/option\").OptionValue | undefined"
135
+ }
136
+ },
137
+ "html": {},
138
+ "bemClasses": [
139
+ "ncua-combobox",
140
+ "ncua-combobox--disabled",
141
+ "ncua-combobox--open",
142
+ "ncua-combobox--sm",
143
+ "ncua-combobox--xs",
144
+ "ncua-combobox__content",
145
+ "ncua-combobox__tags",
146
+ "ncua-input__icon-wrap ncua-input__right-icon",
147
+ "ncua-select-dropdown__no-results"
148
+ ],
149
+ "usage": {
150
+ "import": "import { ComboBox } from '@ncds/ui-admin';",
151
+ "react": {
152
+ "default": "<ComboBox />",
153
+ "size:sm": "<ComboBox size=\"sm\" />",
154
+ "size:xs": "<ComboBox size=\"xs\" />"
155
+ }
156
+ }
157
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "date-picker",
3
+ "exportName": "DatePicker",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": true,
6
+ "category": "input",
7
+ "description": "DatePicker는 등록일, 노출일, 검색 기간 등 날짜 또는 시간 설정이 필요한 경우 사용하는 선택 위젯입니다.",
8
+ "aliases": [
9
+ "날짜선택위젯",
10
+ "DatePicker",
11
+ "컴포넌트",
12
+ "날짜",
13
+ "시간",
14
+ "캘린더",
15
+ "flatpickr",
16
+ "destructive",
17
+ "currentDate",
18
+ "isEndDate",
19
+ "datePickerOptions",
20
+ "enableTime",
21
+ "NCDS"
22
+ ],
23
+ "hasChildren": false,
24
+ "whenToUse": [
25
+ "날짜/시간/날짜+시간 3가지 변형으로 제공하며 텍스트 직접 입력을 항상 허용",
26
+ "Variant별 고정 Width(날짜 138px / 날짜+시간 177px)를 유지"
27
+ ],
28
+ "forbiddenRules": [
29
+ "초 단위 불필요 영역에 노출 금지",
30
+ "같은 Variant 내 사이즈 불일치 금지",
31
+ "기간 옵션 3개 이하 또는 8개 이상 구성 금지",
32
+ "조회 화면에서 Disabled Field 사용 금지",
33
+ "텍스트 입력 불가 UX 금지",
34
+ "NCDS Icon 외 임의 아이콘/이미지 사용 금지"
35
+ ],
36
+ "seeAlso": [
37
+ "range-date-picker"
38
+ ],
39
+ "htmlElement": "input",
40
+ "props": {
41
+ "className": {
42
+ "type": "string",
43
+ "required": false
44
+ },
45
+ "currentDate": {
46
+ "type": "string",
47
+ "required": true
48
+ },
49
+ "datePickerOptions": {
50
+ "type": "object",
51
+ "required": false
52
+ },
53
+ "destructive": {
54
+ "type": "string",
55
+ "required": false
56
+ },
57
+ "isEndDate": {
58
+ "type": "boolean",
59
+ "required": false,
60
+ "default": false
61
+ },
62
+ "onChangeDate": {
63
+ "type": "function",
64
+ "required": true
65
+ },
66
+ "onValidationError": {
67
+ "type": "function",
68
+ "required": false
69
+ },
70
+ "placeholder": {
71
+ "type": "string",
72
+ "required": false
73
+ },
74
+ "shouldFocus": {
75
+ "type": "boolean",
76
+ "required": false,
77
+ "default": true
78
+ },
79
+ "size": {
80
+ "type": "enum",
81
+ "required": false,
82
+ "values": [
83
+ "sm",
84
+ "xs"
85
+ ],
86
+ "default": "xs"
87
+ }
88
+ },
89
+ "html": {},
90
+ "bemClasses": [
91
+ "ncua-date-picker",
92
+ "ncua-date-picker--destructive",
93
+ "ncua-date-picker--disabled",
94
+ "ncua-date-picker--has-time",
95
+ "ncua-date-picker--sm",
96
+ "ncua-date-picker--xs",
97
+ "ncua-date-picker__destructive",
98
+ "ncua-date-picker__ico",
99
+ "ncua-date-picker__input"
100
+ ],
101
+ "usage": {
102
+ "import": "import { DatePicker } from '@ncds/ui-admin';",
103
+ "react": {
104
+ "default": "<DatePicker currentDate=\"\" onChangeDate=\"\" />",
105
+ "size:sm": "<DatePicker size=\"sm\" currentDate=\"\" onChangeDate=\"\" />",
106
+ "size:xs": "<DatePicker size=\"xs\" currentDate=\"\" onChangeDate=\"\" />"
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "divider",
3
+ "exportName": "Divider",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "data-display",
7
+ "description": "콘텐츠 영역을 시각적으로 구분하는 수평 또는 수직 구분선 컴포넌트입니다.",
8
+ "aliases": [
9
+ "Divider",
10
+ "구분선",
11
+ "경계선",
12
+ "separator",
13
+ "hr",
14
+ "수평선",
15
+ "수직선",
16
+ "구분",
17
+ "경계",
18
+ "레이아웃구분"
19
+ ],
20
+ "hasChildren": true,
21
+ "whenToUse": [
22
+ "콘텐츠 영역 간 시각적 경계가 필요할 때"
23
+ ],
24
+ "forbiddenRules": [
25
+ "장식 목적으로 과도한 사용 금지",
26
+ "콘텐츠 없이 시각적 장식으로만 사용 금지",
27
+ "동일 영역에 과도한 반복 사용 금지"
28
+ ],
29
+ "seeAlso": [
30
+ "empty-state"
31
+ ],
32
+ "props": {
33
+ "children": {
34
+ "type": "ReactNode",
35
+ "required": true
36
+ },
37
+ "className": {
38
+ "type": "string",
39
+ "required": false
40
+ },
41
+ "style": {
42
+ "type": "enum",
43
+ "required": false,
44
+ "values": [
45
+ "background-fill",
46
+ "single-line"
47
+ ],
48
+ "default": "single-line"
49
+ },
50
+ "type": {
51
+ "type": "enum",
52
+ "required": true,
53
+ "values": [
54
+ "button",
55
+ "button-group",
56
+ "button-group-icon",
57
+ "button-icon",
58
+ "heading",
59
+ "text"
60
+ ]
61
+ }
62
+ },
63
+ "html": {},
64
+ "bemClasses": [
65
+ "ncua-divider",
66
+ "ncua-divider--background-fill",
67
+ "ncua-divider--button",
68
+ "ncua-divider--button-group",
69
+ "ncua-divider--button-group-icon",
70
+ "ncua-divider--button-icon",
71
+ "ncua-divider--heading",
72
+ "ncua-divider--single-line",
73
+ "ncua-divider--text",
74
+ "ncua-divider__content",
75
+ "ncua-divider__line"
76
+ ],
77
+ "usage": {
78
+ "import": "import { Divider } from '@ncds/ui-admin';",
79
+ "react": {
80
+ "default": "<Divider children=\"예시\" type=\"button\" />",
81
+ "style:background-fill": "<Divider style=\"background-fill\" children=\"예시\" type=\"button\" />",
82
+ "style:single-line": "<Divider style=\"single-line\" children=\"예시\" type=\"button\" />",
83
+ "type:button": "<Divider type=\"button\" children=\"예시\" />",
84
+ "type:button-group": "<Divider type=\"button-group\" children=\"예시\" />",
85
+ "type:button-group-icon": "<Divider type=\"button-group-icon\" children=\"예시\" />",
86
+ "type:button-icon": "<Divider type=\"button-icon\" children=\"예시\" />",
87
+ "type:heading": "<Divider type=\"heading\" children=\"예시\" />",
88
+ "type:text": "<Divider type=\"text\" children=\"예시\" />"
89
+ }
90
+ }
91
+ }
package/data/dot.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "dot",
3
+ "exportName": "Dot",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "icon",
7
+ "description": "Dot 컴포넌트는 상태나 알림을 시각적으로 표시하기 위한 작은 원형 표시기입니다",
8
+ "aliases": [
9
+ "Dot",
10
+ "닷",
11
+ "점",
12
+ "인디케이터",
13
+ "상태표시",
14
+ "베이스컴포넌트",
15
+ "neutral",
16
+ "error",
17
+ "warning",
18
+ "success",
19
+ "info",
20
+ "blue",
21
+ "pink",
22
+ "disabled",
23
+ "Badge",
24
+ "NCDS"
25
+ ],
26
+ "hasChildren": false,
27
+ "whenToUse": [
28
+ "상태 뱃지 내 인디케이터",
29
+ "알림 뱃지 내 표시",
30
+ "항목 상태 분류"
31
+ ],
32
+ "forbiddenRules": [
33
+ "Dot 단독 사용 금지",
34
+ "일반 텍스트와 직접 조합 금지",
35
+ "커스텀 색상 사용 금지",
36
+ "의미와 맞지 않는 색상 사용 금지",
37
+ "같은 레벨 내 Size 혼용 금지"
38
+ ],
39
+ "seeAlso": [
40
+ "badge"
41
+ ],
42
+ "htmlElement": "span",
43
+ "props": {
44
+ "className": {
45
+ "type": "string",
46
+ "required": false
47
+ },
48
+ "color": {
49
+ "type": "enum",
50
+ "required": false,
51
+ "values": [
52
+ "blue",
53
+ "disabled",
54
+ "error",
55
+ "neutral",
56
+ "pink",
57
+ "success",
58
+ "warning"
59
+ ],
60
+ "default": "success"
61
+ },
62
+ "size": {
63
+ "type": "enum",
64
+ "required": false,
65
+ "values": [
66
+ "lg",
67
+ "md",
68
+ "sm"
69
+ ],
70
+ "default": "md"
71
+ }
72
+ },
73
+ "html": {},
74
+ "bemClasses": [
75
+ "ncua-dot",
76
+ "ncua-dot--blue",
77
+ "ncua-dot--disabled",
78
+ "ncua-dot--error",
79
+ "ncua-dot--lg",
80
+ "ncua-dot--md",
81
+ "ncua-dot--neutral",
82
+ "ncua-dot--pink",
83
+ "ncua-dot--sm",
84
+ "ncua-dot--success",
85
+ "ncua-dot--warning"
86
+ ],
87
+ "usage": {
88
+ "import": "import { Dot } from '@ncds/ui-admin';",
89
+ "react": {
90
+ "default": "<Dot />",
91
+ "color:blue": "<Dot color=\"blue\" />",
92
+ "color:disabled": "<Dot color=\"disabled\" />",
93
+ "color:error": "<Dot color=\"error\" />",
94
+ "color:neutral": "<Dot color=\"neutral\" />",
95
+ "color:pink": "<Dot color=\"pink\" />",
96
+ "color:success": "<Dot color=\"success\" />",
97
+ "color:warning": "<Dot color=\"warning\" />",
98
+ "size:lg": "<Dot size=\"lg\" />",
99
+ "size:md": "<Dot size=\"md\" />",
100
+ "size:sm": "<Dot size=\"sm\" />"
101
+ }
102
+ }
103
+ }