@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,121 @@
1
+ {
2
+ "name": "badge-group",
3
+ "exportName": "BadgeGroup",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "feedback",
7
+ "description": "BadgeGroup은 Badge 컴포넌트를 그룹화하여 표시하는 컴포넌트입니다. 주로 Badge와 함께 추가적인 라벨과 아이콘을 표시하여 액션유도할 수 있는 아이템으로 활용할 수 있습니다.",
8
+ "aliases": [
9
+ "BadgeGroup",
10
+ "배지그룹",
11
+ "뱃지그룹",
12
+ "Badge",
13
+ "groupLabel",
14
+ "groupIcon",
15
+ "pill",
16
+ "액션유도",
17
+ "링크",
18
+ "상태표시",
19
+ "NCDS"
20
+ ],
21
+ "hasChildren": false,
22
+ "whenToUse": [
23
+ "Badge + groupLabel + groupIcon을 조합하여 상태 정보와 함께 추가 설명 및 액션을 유도",
24
+ "Badge(읽기 전용)와 달리 Hover 상태와 링크 기능을 지원"
25
+ ],
26
+ "forbiddenRules": [
27
+ "의미 없는 그룹 사용 금지(groupLabel 없이 Badge만 사용할 경우 Badge 직접 사용)",
28
+ "과도한 groupLabel 금지(간결한 한 문장)",
29
+ "컬러 의미 혼용 금지",
30
+ "커스텀 아이콘 금지(SideSlotType 정의에 따른 구조체만 사용)",
31
+ "과도한 중첩 금지",
32
+ "이미지 삽입 금지"
33
+ ],
34
+ "seeAlso": [
35
+ "badge",
36
+ "horizontal-tab",
37
+ "vertical-tab"
38
+ ],
39
+ "props": {
40
+ "className": {
41
+ "type": "string",
42
+ "required": false
43
+ },
44
+ "color": {
45
+ "type": "enum",
46
+ "required": false,
47
+ "values": [
48
+ "error",
49
+ "neutral",
50
+ "success",
51
+ "warning"
52
+ ],
53
+ "default": "neutral"
54
+ },
55
+ "groupClassName": {
56
+ "type": "string",
57
+ "required": false
58
+ },
59
+ "groupIcon": {
60
+ "type": "object",
61
+ "required": false
62
+ },
63
+ "groupLabel": {
64
+ "type": "string",
65
+ "required": true
66
+ },
67
+ "href": {
68
+ "type": "string",
69
+ "required": false
70
+ },
71
+ "label": {
72
+ "type": "string",
73
+ "required": true
74
+ },
75
+ "leadingIcon": {
76
+ "type": "object",
77
+ "required": false
78
+ },
79
+ "size": {
80
+ "type": "enum",
81
+ "required": false,
82
+ "values": [
83
+ "sm",
84
+ "xs"
85
+ ],
86
+ "default": "sm"
87
+ },
88
+ "target": {
89
+ "type": "string",
90
+ "required": false,
91
+ "default": "_blank"
92
+ },
93
+ "trailingIcon": {
94
+ "type": "object",
95
+ "required": false
96
+ }
97
+ },
98
+ "html": {},
99
+ "bemClasses": [
100
+ "ncua-badge-group",
101
+ "ncua-badge-group--error",
102
+ "ncua-badge-group--neutral",
103
+ "ncua-badge-group--sm",
104
+ "ncua-badge-group--success",
105
+ "ncua-badge-group--warning",
106
+ "ncua-badge-group--xs",
107
+ "ncua-badge-group__label"
108
+ ],
109
+ "usage": {
110
+ "import": "import { BadgeGroup } from '@ncds/ui-admin';",
111
+ "react": {
112
+ "default": "<BadgeGroup groupLabel=\"\" label=\"\" />",
113
+ "color:error": "<BadgeGroup color=\"error\" groupLabel=\"\" label=\"\" />",
114
+ "color:neutral": "<BadgeGroup color=\"neutral\" groupLabel=\"\" label=\"\" />",
115
+ "color:success": "<BadgeGroup color=\"success\" groupLabel=\"\" label=\"\" />",
116
+ "color:warning": "<BadgeGroup color=\"warning\" groupLabel=\"\" label=\"\" />",
117
+ "size:sm": "<BadgeGroup size=\"sm\" groupLabel=\"\" label=\"\" />",
118
+ "size:xs": "<BadgeGroup size=\"xs\" groupLabel=\"\" label=\"\" />"
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "name": "badge",
3
+ "exportName": "Badge",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "feedback",
7
+ "description": "Badge는 상태나 중요성 및 이벤트 강조를 나타내는 레이블이며 빠른 인식을 제공해야 합니다.",
8
+ "aliases": [
9
+ "Badge",
10
+ "뱃지",
11
+ "배지",
12
+ "라벨",
13
+ "상태표시",
14
+ "pill-outline",
15
+ "pill-dark-color",
16
+ "leadingIcon",
17
+ "trailingIcon",
18
+ "SideSlotType",
19
+ "dot",
20
+ "강조",
21
+ "읽기전용",
22
+ "NCDS"
23
+ ],
24
+ "hasChildren": false,
25
+ "whenToUse": [
26
+ "읽기 전용 상태 표시 레이블",
27
+ "정보의 상태/중요도/이벤트를 시각적으로 빠르게 전달"
28
+ ],
29
+ "forbiddenRules": [
30
+ "클릭 액션 부여 금지",
31
+ "과도한 컬러 남용 금지",
32
+ "의미 없는 Badge 사용 금지",
33
+ "텍스트 과다 금지(2~4자 권장)",
34
+ "이미지 삽입 금지",
35
+ "임의 아이콘 금지(SideSlotType 구조체만 사용)",
36
+ "컬러 의미 혼용 금지"
37
+ ],
38
+ "seeAlso": [
39
+ "horizontal-tab",
40
+ "vertical-tab",
41
+ "badge-group",
42
+ "tag"
43
+ ],
44
+ "props": {
45
+ "className": {
46
+ "type": "string",
47
+ "required": false
48
+ },
49
+ "color": {
50
+ "type": "enum",
51
+ "required": false,
52
+ "values": [
53
+ "blue",
54
+ "disabled",
55
+ "error",
56
+ "neutral",
57
+ "pink",
58
+ "success",
59
+ "warning"
60
+ ],
61
+ "default": "neutral"
62
+ },
63
+ "label": {
64
+ "type": "string",
65
+ "required": true
66
+ },
67
+ "leadingIcon": {
68
+ "type": "object",
69
+ "required": false
70
+ },
71
+ "size": {
72
+ "type": "enum",
73
+ "required": false,
74
+ "values": [
75
+ "md",
76
+ "sm",
77
+ "xs"
78
+ ],
79
+ "default": "sm"
80
+ },
81
+ "trailingIcon": {
82
+ "type": "object",
83
+ "required": false
84
+ },
85
+ "type": {
86
+ "type": "enum",
87
+ "required": false,
88
+ "values": [
89
+ "pill-dark-color",
90
+ "pill-outline"
91
+ ],
92
+ "default": "pill-outline"
93
+ }
94
+ },
95
+ "html": {},
96
+ "bemClasses": [
97
+ "ncua-badge",
98
+ "ncua-badge--blue",
99
+ "ncua-badge--disabled",
100
+ "ncua-badge--error",
101
+ "ncua-badge--md",
102
+ "ncua-badge--neutral",
103
+ "ncua-badge--pill-dark-color",
104
+ "ncua-badge--pill-outline",
105
+ "ncua-badge--pink",
106
+ "ncua-badge--sm",
107
+ "ncua-badge--success",
108
+ "ncua-badge--warning",
109
+ "ncua-badge--xs",
110
+ "ncua-badge__label"
111
+ ],
112
+ "usage": {
113
+ "import": "import { Badge } from '@ncds/ui-admin';",
114
+ "react": {
115
+ "default": "<Badge label=\"\" />",
116
+ "color:blue": "<Badge color=\"blue\" label=\"\" />",
117
+ "color:disabled": "<Badge color=\"disabled\" label=\"\" />",
118
+ "color:error": "<Badge color=\"error\" label=\"\" />",
119
+ "color:neutral": "<Badge color=\"neutral\" label=\"\" />",
120
+ "color:pink": "<Badge color=\"pink\" label=\"\" />",
121
+ "color:success": "<Badge color=\"success\" label=\"\" />",
122
+ "color:warning": "<Badge color=\"warning\" label=\"\" />",
123
+ "size:md": "<Badge size=\"md\" label=\"\" />",
124
+ "size:sm": "<Badge size=\"sm\" label=\"\" />",
125
+ "size:xs": "<Badge size=\"xs\" label=\"\" />",
126
+ "type:pill-dark-color": "<Badge type=\"pill-dark-color\" label=\"\" />",
127
+ "type:pill-outline": "<Badge type=\"pill-outline\" label=\"\" />"
128
+ }
129
+ }
130
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "bread-crumb",
3
+ "exportName": "BreadCrumb",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "navigation",
7
+ "description": "BreadCrumb은 현재 사용자의 위치를 상위 구조 기준으로 알려주는 계층 네비게이션 경로(보조) UI 컴포넌트입니다.",
8
+ "aliases": [
9
+ "BreadCrumb",
10
+ "브레드크럼",
11
+ "경로탐색",
12
+ "계층구조",
13
+ "Depth",
14
+ "네비게이션",
15
+ "Home",
16
+ "축약",
17
+ "구분자",
18
+ "GNB",
19
+ "페이지위치",
20
+ "NCDS"
21
+ ],
22
+ "hasChildren": false,
23
+ "whenToUse": [
24
+ "페이지 계층 구조를 한눈에 파악하고 상위 메뉴로 빠르게 이동할 수 있도록 보조하는 네비게이션",
25
+ "과도한 Depth 노출이나 불필요한 강조는 지양"
26
+ ],
27
+ "forbiddenRules": [
28
+ "5 Depth 이상 그대로 노출 금지",
29
+ "마지막(Current) 항목 클릭 허용 금지",
30
+ "모든 Depth를 버튼처럼 동일 강조 금지",
31
+ "BreadCrumb을 필수 네비게이션으로 오해하게 만들지 않음"
32
+ ],
33
+ "seeAlso": [
34
+ "icon"
35
+ ],
36
+ "props": {},
37
+ "html": {},
38
+ "bemClasses": [
39
+ "ncua-breadcrumb",
40
+ "ncua-breadcrumb__item",
41
+ "ncua-breadcrumb__list",
42
+ "ncua-breadcrumb__list-item",
43
+ "ncua-breadcrumb__list-item--active"
44
+ ],
45
+ "usage": {
46
+ "import": "import { BreadCrumb } from '@ncds/ui-admin';",
47
+ "react": {
48
+ "default": "<BreadCrumb />"
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "button-group",
3
+ "exportName": "ButtonGroup",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "action",
7
+ "description": "ButtonGroup은 관련된 버튼을 하나의 그룹으로 묶어 통합된 UI 구조를 제공하는 컴포넌트입니다",
8
+ "aliases": [
9
+ "버튼그룹",
10
+ "ButtonGroup",
11
+ "컴포넌트",
12
+ "Toolset",
13
+ "Default",
14
+ "선택형",
15
+ "도구형",
16
+ "isCurrent",
17
+ "hasBorder",
18
+ "onlyIcon",
19
+ "그룹",
20
+ "NCDS"
21
+ ],
22
+ "hasChildren": true,
23
+ "whenToUse": [
24
+ "그룹의 성격(도구형 vs 선택형)에 따라 타입이 결정되는 상황",
25
+ "사용자가 그룹의 인터랙션 패턴과 현재 상태를 즉시 이해해야 하는 상황"
26
+ ],
27
+ "forbiddenRules": [
28
+ "그룹 내 혼합 사이즈 사용",
29
+ "Toolset(v1)에서 선택 상태 유지 사용",
30
+ "Default(v2)에서 다중 선택 허용",
31
+ "의미적으로 관련 없는 버튼 그룹화 (최대 6개 이내 권장)",
32
+ "그룹 내 서로 다른 콘텐츠 구성(Text/Icon) 혼용",
33
+ "NCDS 기준 외 임의 스타일 변경"
34
+ ],
35
+ "seeAlso": [
36
+ "button"
37
+ ],
38
+ "htmlElement": "button",
39
+ "props": {
40
+ "children": {
41
+ "type": "ReactNode",
42
+ "required": true
43
+ },
44
+ "className": {
45
+ "type": "string",
46
+ "required": false
47
+ },
48
+ "disabled": {
49
+ "type": "boolean",
50
+ "required": false,
51
+ "default": false
52
+ },
53
+ "hasBorder": {
54
+ "type": "boolean",
55
+ "required": false,
56
+ "default": true
57
+ },
58
+ "onlyIcon": {
59
+ "type": "boolean",
60
+ "required": false,
61
+ "default": false
62
+ },
63
+ "size": {
64
+ "type": "enum",
65
+ "required": false,
66
+ "values": [
67
+ "md",
68
+ "sm",
69
+ "xs",
70
+ "xxs"
71
+ ],
72
+ "default": "xs"
73
+ }
74
+ },
75
+ "html": {},
76
+ "bemClasses": [
77
+ "ncua-button-group",
78
+ "ncua-button-group--md",
79
+ "ncua-button-group--sm",
80
+ "ncua-button-group--xs",
81
+ "ncua-button-group--xxs",
82
+ "ncua-button-group__item"
83
+ ],
84
+ "usage": {
85
+ "import": "import { ButtonGroup } from '@ncds/ui-admin';",
86
+ "react": {
87
+ "default": "<ButtonGroup children=\"예시\" />",
88
+ "size:md": "<ButtonGroup size=\"md\" children=\"예시\" />",
89
+ "size:sm": "<ButtonGroup size=\"sm\" children=\"예시\" />",
90
+ "size:xs": "<ButtonGroup size=\"xs\" children=\"예시\" />",
91
+ "size:xxs": "<ButtonGroup size=\"xxs\" children=\"예시\" />"
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,143 @@
1
+ {
2
+ "name": "button",
3
+ "exportName": "Button",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "action",
7
+ "description": "버튼은 사용자의 명시적 실행 의도를 수행하는 핵심 Action 컴포넌트입니다",
8
+ "aliases": [
9
+ "버튼",
10
+ "Button",
11
+ "컴포넌트",
12
+ "hierarchy",
13
+ "Primary",
14
+ "Secondary",
15
+ "Destructive",
16
+ "Text버튼",
17
+ "사이즈",
18
+ "아이콘",
19
+ "disabled",
20
+ "Loading",
21
+ "Focused",
22
+ "Hover",
23
+ "Confirm",
24
+ "NCDS",
25
+ "액션"
26
+ ],
27
+ "hasChildren": true,
28
+ "whenToUse": [
29
+ "역할과 중요도에 따라 계층(hierarchy)이 결정되는 상황",
30
+ "페이지 내 시각적 우선순위를 명확히 전달해야 하는 상황"
31
+ ],
32
+ "forbiddenRules": [
33
+ "Primary 버튼 복수 사용 (페이지당 1개)",
34
+ "버튼 사이즈 혼용 (같은 영역 내)",
35
+ "네비게이션 용도로 버튼 사용",
36
+ "NCDS 기준 외 임의 색상, radius, padding, 인터랙션 변경",
37
+ "Disabled 상태에서 시각적 강조나 인터랙션 하이라이트 추가",
38
+ "아이콘을 꾸밈 요소로만 사용",
39
+ "Destructive 외 Variant에서 Red 600/700 계열 색상 사용"
40
+ ],
41
+ "seeAlso": [
42
+ "button-group"
43
+ ],
44
+ "htmlElement": "button",
45
+ "props": {
46
+ "children": {
47
+ "type": "ReactNode",
48
+ "required": false
49
+ },
50
+ "className": {
51
+ "type": "string",
52
+ "required": false
53
+ },
54
+ "disabled": {
55
+ "type": "boolean",
56
+ "required": false
57
+ },
58
+ "hierarchy": {
59
+ "type": "enum",
60
+ "required": false,
61
+ "values": [
62
+ "destructive",
63
+ "primary",
64
+ "secondary",
65
+ "secondary-gray",
66
+ "tertiary",
67
+ "tertiary-gray",
68
+ "text",
69
+ "text-gray",
70
+ "text-red"
71
+ ]
72
+ },
73
+ "label": {
74
+ "type": "ReactNode",
75
+ "required": true
76
+ },
77
+ "leadingIcon": {
78
+ "type": "object",
79
+ "required": false
80
+ },
81
+ "onlyIcon": {
82
+ "type": "boolean",
83
+ "required": false
84
+ },
85
+ "size": {
86
+ "type": "enum",
87
+ "required": false,
88
+ "values": [
89
+ "md",
90
+ "sm",
91
+ "xs",
92
+ "xxs"
93
+ ]
94
+ },
95
+ "trailingIcon": {
96
+ "type": "object",
97
+ "required": false
98
+ },
99
+ "underline": {
100
+ "type": "boolean",
101
+ "required": false
102
+ }
103
+ },
104
+ "html": {},
105
+ "bemClasses": [
106
+ "ncua-btn",
107
+ "ncua-btn--destructive",
108
+ "ncua-btn--md",
109
+ "ncua-btn--primary",
110
+ "ncua-btn--secondary",
111
+ "ncua-btn--secondary-gray",
112
+ "ncua-btn--sm",
113
+ "ncua-btn--tertiary",
114
+ "ncua-btn--tertiary-gray",
115
+ "ncua-btn--text",
116
+ "ncua-btn--text-gray",
117
+ "ncua-btn--text-red",
118
+ "ncua-btn--xs",
119
+ "ncua-btn--xxs",
120
+ "ncua-btn__label",
121
+ "ncua-button-close-x",
122
+ "ncua-button-stepper"
123
+ ],
124
+ "usage": {
125
+ "import": "import { Button } from '@ncds/ui-admin';",
126
+ "react": {
127
+ "default": "<Button label=\"예시\" />",
128
+ "hierarchy:destructive": "<Button hierarchy=\"destructive\" label=\"예시\" />",
129
+ "hierarchy:primary": "<Button hierarchy=\"primary\" label=\"예시\" />",
130
+ "hierarchy:secondary": "<Button hierarchy=\"secondary\" label=\"예시\" />",
131
+ "hierarchy:secondary-gray": "<Button hierarchy=\"secondary-gray\" label=\"예시\" />",
132
+ "hierarchy:tertiary": "<Button hierarchy=\"tertiary\" label=\"예시\" />",
133
+ "hierarchy:tertiary-gray": "<Button hierarchy=\"tertiary-gray\" label=\"예시\" />",
134
+ "hierarchy:text": "<Button hierarchy=\"text\" label=\"예시\" />",
135
+ "hierarchy:text-gray": "<Button hierarchy=\"text-gray\" label=\"예시\" />",
136
+ "hierarchy:text-red": "<Button hierarchy=\"text-red\" label=\"예시\" />",
137
+ "size:md": "<Button size=\"md\" label=\"예시\" />",
138
+ "size:sm": "<Button size=\"sm\" label=\"예시\" />",
139
+ "size:xs": "<Button size=\"xs\" label=\"예시\" />",
140
+ "size:xxs": "<Button size=\"xxs\" label=\"예시\" />"
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "carousel-arrow",
3
+ "exportName": "CarouselArrow",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": false,
6
+ "category": "feedback",
7
+ "description": "CarouselArrow는 캐러셀의 이전/다음 페이지로 이동할 수 있는 화살표 버튼 컴포넌트입니다.",
8
+ "aliases": [
9
+ "CarouselArrow",
10
+ "캐러셀",
11
+ "화살표",
12
+ "캐러셀화살표",
13
+ "chevron",
14
+ "이전",
15
+ "다음",
16
+ "페이지이동",
17
+ "Default",
18
+ "Line",
19
+ "네비게이션",
20
+ "NCDS"
21
+ ],
22
+ "hasChildren": false,
23
+ "whenToUse": [
24
+ "캐러셀 내비게이션 전용 버튼",
25
+ "좌/우 방향 화살표를 통해 콘텐츠 페이지 간 이동을 직관적으로 유도"
26
+ ],
27
+ "forbiddenRules": [
28
+ "단일 방향만 사용 금지(left/right 쌍 필수)",
29
+ "캐러셀 외 용도 금지",
30
+ "커스텀 아이콘 금지",
31
+ "크기 임의 변경 금지"
32
+ ],
33
+ "seeAlso": [
34
+ "carousel-number-group"
35
+ ],
36
+ "props": {
37
+ "chevron": {
38
+ "type": "enum",
39
+ "required": true,
40
+ "values": [
41
+ "left",
42
+ "right"
43
+ ]
44
+ },
45
+ "className": {
46
+ "type": "string",
47
+ "required": false
48
+ },
49
+ "onClick": {
50
+ "type": "function",
51
+ "required": false
52
+ },
53
+ "size": {
54
+ "type": "string",
55
+ "required": true,
56
+ "rawType": "\"md\""
57
+ },
58
+ "type": {
59
+ "type": "enum",
60
+ "required": false,
61
+ "values": [
62
+ "default",
63
+ "line"
64
+ ],
65
+ "default": "default"
66
+ }
67
+ },
68
+ "html": {},
69
+ "bemClasses": [
70
+ "ncua-carousel-arrow",
71
+ "ncua-carousel-arrow--default",
72
+ "ncua-carousel-arrow--left",
73
+ "ncua-carousel-arrow--line",
74
+ "ncua-carousel-arrow--right",
75
+ "ncua-carousel-arrow__icon"
76
+ ],
77
+ "usage": {
78
+ "import": "import { CarouselArrow } from '@ncds/ui-admin';",
79
+ "react": {
80
+ "default": "<CarouselArrow chevron=\"left\" size=\"\" />",
81
+ "chevron:left": "<CarouselArrow chevron=\"left\" size=\"\" />",
82
+ "chevron:right": "<CarouselArrow chevron=\"right\" size=\"\" />",
83
+ "type:default": "<CarouselArrow type=\"default\" chevron=\"left\" size=\"\" />",
84
+ "type:line": "<CarouselArrow type=\"line\" chevron=\"left\" size=\"\" />"
85
+ }
86
+ }
87
+ }