@ncds/ui-admin 0.0.27 → 0.0.28
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.
- package/dist/cjs/src/components/badge/Badge.js +8 -1
- package/dist/cjs/src/components/button/Button.js +17 -4
- package/dist/cjs/src/components/button/ButtonGroup.js +18 -4
- package/dist/cjs/src/components/divider/Divider.js +6 -2
- package/dist/cjs/src/components/dot/Dot.js +41 -0
- package/dist/cjs/src/components/dot/index.js +16 -0
- package/dist/cjs/src/components/index.js +11 -0
- package/dist/cjs/src/components/modal/Modal.js +11 -8
- package/dist/cjs/src/components/tag/Tag.js +21 -9
- package/dist/esm/src/components/badge/Badge.js +8 -1
- package/dist/esm/src/components/button/Button.js +16 -3
- package/dist/esm/src/components/button/ButtonGroup.js +18 -4
- package/dist/esm/src/components/divider/Divider.js +6 -2
- package/dist/esm/src/components/dot/Dot.js +34 -0
- package/dist/esm/src/components/dot/index.js +1 -0
- package/dist/esm/src/components/index.js +1 -0
- package/dist/esm/src/components/modal/Modal.js +11 -8
- package/dist/esm/src/components/tag/Tag.js +21 -9
- package/dist/types/constant/color.d.ts +1 -0
- package/dist/types/src/components/badge/Badge.d.ts +3 -2
- package/dist/types/src/components/button/Button.d.ts +3 -13
- package/dist/types/src/components/button/ButtonGroup.d.ts +15 -26
- package/dist/types/src/components/divider/Divider.d.ts +5 -0
- package/dist/types/src/components/dot/Dot.d.ts +23 -0
- package/dist/types/src/components/dot/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/modal/Modal.d.ts +6 -6
- package/dist/types/src/components/tag/Tag.d.ts +5 -9
- package/dist/ui-admin/assets/styles/style.css +71 -28
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var _uiAdminIcon = _interopRequireDefault(require("@ncds/ui-admin-icon"));
|
|
|
9
9
|
var _button = require("../button");
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _color = require("../../../constant/color");
|
|
12
|
+
var _dot = require("../dot");
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
var __assign = void 0 && (void 0).__assign || function () {
|
|
14
15
|
__assign = Object.assign || function (t) {
|
|
@@ -32,7 +33,7 @@ var Badge = function (_a) {
|
|
|
32
33
|
_d = _a.size,
|
|
33
34
|
size = _d === void 0 ? 'sm' : _d;
|
|
34
35
|
var sideSlotRender = function (slot) {
|
|
35
|
-
var _a, _b;
|
|
36
|
+
var _a, _b, _c, _d;
|
|
36
37
|
if (slot.type === 'icon') {
|
|
37
38
|
return (0, _jsxRuntime.jsx)(_uiAdminIcon.default, {
|
|
38
39
|
name: slot.icon,
|
|
@@ -41,6 +42,12 @@ var Badge = function (_a) {
|
|
|
41
42
|
color: slot.color ? _color.COLOR[slot.color] : undefined
|
|
42
43
|
});
|
|
43
44
|
}
|
|
45
|
+
if (slot.type === 'dot') {
|
|
46
|
+
return (0, _jsxRuntime.jsx)(_dot.Dot, {
|
|
47
|
+
color: (_c = slot.color) !== null && _c !== void 0 ? _c : color,
|
|
48
|
+
size: (_d = slot.size) !== null && _d !== void 0 ? _d : 'sm'
|
|
49
|
+
});
|
|
50
|
+
}
|
|
44
51
|
return slot.children;
|
|
45
52
|
};
|
|
46
53
|
return (0, _jsxRuntime.jsxs)("span", __assign({
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.svgSize = exports.iconOnlySvgSize = exports.Button = void 0;
|
|
6
|
+
exports.svgSize = exports.iconOnlySvgSize = exports.dotSize = exports.Button = void 0;
|
|
7
7
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
8
|
var _react = require("react");
|
|
10
|
-
var
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
10
|
var _uiAdminIcon = _interopRequireDefault(require("@ncds/ui-admin-icon"));
|
|
11
|
+
var _color = require("../../../constant/color");
|
|
12
|
+
var _dot = require("../dot");
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
var __assign = void 0 && (void 0).__assign || function () {
|
|
14
15
|
__assign = Object.assign || function (t) {
|
|
@@ -40,6 +41,12 @@ var iconOnlySvgSize = exports.iconOnlySvgSize = {
|
|
|
40
41
|
sm: 20,
|
|
41
42
|
md: 20
|
|
42
43
|
};
|
|
44
|
+
var dotSize = exports.dotSize = {
|
|
45
|
+
xxs: 'sm',
|
|
46
|
+
xs: 'sm',
|
|
47
|
+
sm: 'md',
|
|
48
|
+
md: 'md'
|
|
49
|
+
};
|
|
43
50
|
var Button = exports.Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
44
51
|
// NOTE: 엘리먼트 종류에 따라 props의 타입이 달라지므로 분리
|
|
45
52
|
var _a = props.as,
|
|
@@ -78,7 +85,7 @@ var Button = exports.Button = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
|
78
85
|
}
|
|
79
86
|
};
|
|
80
87
|
var sideSlotRender = function (slot) {
|
|
81
|
-
var _a, _b;
|
|
88
|
+
var _a, _b, _c;
|
|
82
89
|
if (slot.type === 'icon') {
|
|
83
90
|
var iconSize = onlyIcon ? iconOnlySvgSize[size] : svgSize[size];
|
|
84
91
|
return (0, _jsxRuntime.jsx)(_uiAdminIcon.default, {
|
|
@@ -88,6 +95,12 @@ var Button = exports.Button = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
|
88
95
|
color: slot.color ? _color.COLOR[slot.color] : undefined
|
|
89
96
|
});
|
|
90
97
|
}
|
|
98
|
+
if (slot.type === 'dot') {
|
|
99
|
+
return (0, _jsxRuntime.jsx)(_dot.Dot, {
|
|
100
|
+
color: slot.color,
|
|
101
|
+
size: (_c = slot.size) !== null && _c !== void 0 ? _c : dotSize[size]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
91
104
|
return slot.children;
|
|
92
105
|
};
|
|
93
106
|
(0, _react.useEffect)(function () {
|
|
@@ -9,6 +9,7 @@ var _uiAdminIcon = _interopRequireDefault(require("@ncds/ui-admin-icon"));
|
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _color = require("../../../constant/color");
|
|
12
|
+
var _dot = require("../dot");
|
|
12
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -36,6 +37,12 @@ var svgSize = {
|
|
|
36
37
|
md: 16,
|
|
37
38
|
lg: 20
|
|
38
39
|
};
|
|
40
|
+
var dotSize = {
|
|
41
|
+
xs: 'sm',
|
|
42
|
+
sm: 'sm',
|
|
43
|
+
md: 'md',
|
|
44
|
+
lg: 'md'
|
|
45
|
+
};
|
|
39
46
|
var ButtonGroup = function (_a) {
|
|
40
47
|
var children = _a.children,
|
|
41
48
|
className = _a.className,
|
|
@@ -70,7 +77,8 @@ ButtonGroup.Item = function (_a) {
|
|
|
70
77
|
var _c = _a.as,
|
|
71
78
|
as = _c === void 0 ? 'button' : _c,
|
|
72
79
|
label = _a.label,
|
|
73
|
-
|
|
80
|
+
_d = _a.size,
|
|
81
|
+
size = _d === void 0 ? 'md' : _d,
|
|
74
82
|
onlyIcon = _a.onlyIcon,
|
|
75
83
|
icon = _a.icon,
|
|
76
84
|
disabled = _a.disabled,
|
|
@@ -78,16 +86,22 @@ ButtonGroup.Item = function (_a) {
|
|
|
78
86
|
isCurrent = _a.isCurrent,
|
|
79
87
|
props = __rest(_a, ["as", "label", "size", "onlyIcon", "icon", "disabled", "children", "isCurrent"]);
|
|
80
88
|
var renderIcon = function () {
|
|
81
|
-
var _a, _b;
|
|
89
|
+
var _a, _b, _c;
|
|
82
90
|
if (!icon) return null;
|
|
83
91
|
if (icon.type === 'icon') {
|
|
84
92
|
return (0, _jsxRuntime.jsx)(_uiAdminIcon.default, {
|
|
85
93
|
name: icon.icon,
|
|
86
|
-
width: (_a = icon.size) !== null && _a !== void 0 ? _a : svgSize[size
|
|
87
|
-
height: (_b = icon.size) !== null && _b !== void 0 ? _b : svgSize[size
|
|
94
|
+
width: (_a = icon.size) !== null && _a !== void 0 ? _a : svgSize[size],
|
|
95
|
+
height: (_b = icon.size) !== null && _b !== void 0 ? _b : svgSize[size],
|
|
88
96
|
color: icon.color ? _color.COLOR[icon.color] : 'currentColor'
|
|
89
97
|
});
|
|
90
98
|
}
|
|
99
|
+
if (icon.type === 'dot') {
|
|
100
|
+
return (0, _jsxRuntime.jsx)(_dot.Dot, {
|
|
101
|
+
color: icon.color,
|
|
102
|
+
size: (_c = icon.size) !== null && _c !== void 0 ? _c : dotSize[size]
|
|
103
|
+
});
|
|
104
|
+
}
|
|
91
105
|
return icon.children;
|
|
92
106
|
};
|
|
93
107
|
var position = (_b = icon === null || icon === void 0 ? void 0 : icon.position) !== null && _b !== void 0 ? _b : 'leading';
|
|
@@ -18,15 +18,19 @@ var __assign = void 0 && (void 0).__assign || function () {
|
|
|
18
18
|
};
|
|
19
19
|
return __assign.apply(this, arguments);
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* @param {DividerProps} props
|
|
23
|
+
* @param {ReactNode} props.children Button 컴포넌트는 xs로 ButtonGroup은 sm 사이즈로 추가하는 것이 권장됩니다.
|
|
24
|
+
* @returns {ReactNode}
|
|
25
|
+
*/
|
|
21
26
|
var Divider = exports.Divider = /*#__PURE__*/(0, _react.forwardRef)(function (_a, ref) {
|
|
22
27
|
var className = _a.className,
|
|
23
28
|
type = _a.type,
|
|
24
29
|
_b = _a.style,
|
|
25
30
|
style = _b === void 0 ? 'single-line' : _b,
|
|
26
31
|
children = _a.children;
|
|
27
|
-
var componentClassName = (0, _classnames.default)('ncua-divider', "ncua-divider--".concat(type), "ncua-divider--".concat(style), className);
|
|
28
32
|
return (0, _jsxRuntime.jsxs)("div", __assign({
|
|
29
|
-
className:
|
|
33
|
+
className: (0, _classnames.default)('ncua-divider', "ncua-divider--".concat(type), "ncua-divider--".concat(style), className),
|
|
30
34
|
ref: ref
|
|
31
35
|
}, {
|
|
32
36
|
children: [style === 'single-line' && (0, _jsxRuntime.jsx)("div", {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Dot = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
12
|
+
__assign = Object.assign || function (t) {
|
|
13
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
14
|
+
s = arguments[i];
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
};
|
|
19
|
+
return __assign.apply(this, arguments);
|
|
20
|
+
};
|
|
21
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
22
|
+
var t = {};
|
|
23
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
24
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
25
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
26
|
+
}
|
|
27
|
+
return t;
|
|
28
|
+
};
|
|
29
|
+
var Dot = exports.Dot = /*#__PURE__*/(0, _react.forwardRef)(function (_a, ref) {
|
|
30
|
+
var _b = _a.color,
|
|
31
|
+
color = _b === void 0 ? 'success' : _b,
|
|
32
|
+
_c = _a.size,
|
|
33
|
+
size = _c === void 0 ? 'md' : _c,
|
|
34
|
+
className = _a.className,
|
|
35
|
+
props = __rest(_a, ["color", "size", "className"]);
|
|
36
|
+
return (0, _jsxRuntime.jsx)("span", __assign({
|
|
37
|
+
ref: ref,
|
|
38
|
+
className: (0, _classnames.default)('ncua-dot', "ncua-dot--".concat(color), "ncua-dot--".concat(size), className)
|
|
39
|
+
}, props));
|
|
40
|
+
});
|
|
41
|
+
Dot.displayName = 'Dot';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Dot = require("./Dot");
|
|
7
|
+
Object.keys(_Dot).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Dot[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _Dot[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -80,6 +80,17 @@ Object.keys(_divider).forEach(function (key) {
|
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
|
+
var _dot = require("./dot");
|
|
84
|
+
Object.keys(_dot).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (key in exports && exports[key] === _dot[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return _dot[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
83
94
|
var _dropdown = require("./dropdown");
|
|
84
95
|
Object.keys(_dropdown).forEach(function (key) {
|
|
85
96
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -91,12 +91,15 @@ Modal.Header = function (_a) {
|
|
|
91
91
|
hideCloseButton = _d === void 0 ? false : _d;
|
|
92
92
|
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
93
93
|
children: [(0, _jsxRuntime.jsxs)("header", __assign({
|
|
94
|
-
className: (0, _classnames.default)('ncua-modal__header', "ncua-modal__header--".concat(align)
|
|
94
|
+
className: (0, _classnames.default)('ncua-modal__header', "ncua-modal__header--".concat(align), {
|
|
95
|
+
'ncua-modal__header--close-button': !hideCloseButton
|
|
96
|
+
})
|
|
95
97
|
}, {
|
|
96
98
|
children: [featuredIcon && (0, _jsxRuntime.jsx)(_featuredIcon.FeaturedIcon, {
|
|
97
99
|
name: featuredIcon.name,
|
|
98
100
|
color: featuredIcon.color,
|
|
99
|
-
theme: featuredIcon.theme
|
|
101
|
+
theme: featuredIcon.theme,
|
|
102
|
+
size: "sm"
|
|
100
103
|
}), (0, _jsxRuntime.jsxs)("div", __assign({
|
|
101
104
|
className: "ncua-modal__title"
|
|
102
105
|
}, {
|
|
@@ -137,14 +140,14 @@ Modal.Content = function (_a) {
|
|
|
137
140
|
*
|
|
138
141
|
* 1. Vertical layout (buttons stacked):
|
|
139
142
|
* <Modal.Actions layout="vertical" align="stretch">
|
|
140
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
141
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
143
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
144
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
142
145
|
* </Modal.Actions>
|
|
143
146
|
*
|
|
144
147
|
* 2. Horizontal layout (buttons side by side):
|
|
145
148
|
* <Modal.Actions layout="horizontal" align="stretch">
|
|
146
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
147
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
149
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
150
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
148
151
|
* </Modal.Actions>
|
|
149
152
|
*
|
|
150
153
|
* 3. Checkbox layout (checkbox on left, buttons on right):
|
|
@@ -154,8 +157,8 @@ Modal.Content = function (_a) {
|
|
|
154
157
|
* <a href="#">Settings</a>
|
|
155
158
|
* </>
|
|
156
159
|
* }>
|
|
157
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
158
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
160
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
161
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
159
162
|
* </Modal.Actions>
|
|
160
163
|
*/
|
|
161
164
|
Modal.Actions = function (_a) {
|
|
@@ -8,6 +8,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
8
8
|
var _uiAdminIcon = _interopRequireDefault(require("@ncds/ui-admin-icon"));
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _color = require("../../../constant/color");
|
|
11
|
+
var _dot = require("../dot");
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
13
|
var __assign = void 0 && (void 0).__assign || function () {
|
|
13
14
|
__assign = Object.assign || function (t) {
|
|
@@ -31,17 +32,28 @@ var Tag = function (_a) {
|
|
|
31
32
|
sm: 14,
|
|
32
33
|
md: 16
|
|
33
34
|
};
|
|
35
|
+
var sideSlotRender = function (slot) {
|
|
36
|
+
var _a;
|
|
37
|
+
if (slot.type === 'icon') {
|
|
38
|
+
return (0, _jsxRuntime.jsx)(_uiAdminIcon.default, {
|
|
39
|
+
name: slot.icon,
|
|
40
|
+
width: iconSize[size],
|
|
41
|
+
height: iconSize[size],
|
|
42
|
+
color: slot.color
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (slot.type === 'dot') {
|
|
46
|
+
return (0, _jsxRuntime.jsx)(_dot.Dot, {
|
|
47
|
+
color: slot.color,
|
|
48
|
+
size: (_a = slot.size) !== null && _a !== void 0 ? _a : 'sm'
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return slot.children;
|
|
52
|
+
};
|
|
34
53
|
return (0, _jsxRuntime.jsxs)("span", __assign({
|
|
35
|
-
className: (0, _classnames.default)('ncua-tag', "ncua-tag--".concat(size)
|
|
36
|
-
'ncua-tag--dot': (icon === null || icon === void 0 ? void 0 : icon.name) === 'dot'
|
|
37
|
-
})
|
|
54
|
+
className: (0, _classnames.default)('ncua-tag', "ncua-tag--".concat(size))
|
|
38
55
|
}, {
|
|
39
|
-
children: [icon && icon
|
|
40
|
-
name: icon.name,
|
|
41
|
-
width: iconSize[size],
|
|
42
|
-
height: iconSize[size],
|
|
43
|
-
color: icon.color
|
|
44
|
-
}), (0, _jsxRuntime.jsx)("span", __assign({
|
|
56
|
+
children: [icon && sideSlotRender(icon), (0, _jsxRuntime.jsx)("span", __assign({
|
|
45
57
|
className: "ncua-tag__text"
|
|
46
58
|
}, {
|
|
47
59
|
children: text
|
|
@@ -13,6 +13,7 @@ import Icon from '@ncds/ui-admin-icon';
|
|
|
13
13
|
import { svgSize } from '../button';
|
|
14
14
|
import classNames from 'classnames';
|
|
15
15
|
import { COLOR } from '../../../constant/color';
|
|
16
|
+
import { Dot } from '../dot';
|
|
16
17
|
export var Badge = function (_a) {
|
|
17
18
|
var label = _a.label,
|
|
18
19
|
_b = _a.type,
|
|
@@ -25,7 +26,7 @@ export var Badge = function (_a) {
|
|
|
25
26
|
_d = _a.size,
|
|
26
27
|
size = _d === void 0 ? 'sm' : _d;
|
|
27
28
|
var sideSlotRender = function (slot) {
|
|
28
|
-
var _a, _b;
|
|
29
|
+
var _a, _b, _c, _d;
|
|
29
30
|
if (slot.type === 'icon') {
|
|
30
31
|
return _jsx(Icon, {
|
|
31
32
|
name: slot.icon,
|
|
@@ -34,6 +35,12 @@ export var Badge = function (_a) {
|
|
|
34
35
|
color: slot.color ? COLOR[slot.color] : undefined
|
|
35
36
|
});
|
|
36
37
|
}
|
|
38
|
+
if (slot.type === 'dot') {
|
|
39
|
+
return _jsx(Dot, {
|
|
40
|
+
color: (_c = slot.color) !== null && _c !== void 0 ? _c : color,
|
|
41
|
+
size: (_d = slot.size) !== null && _d !== void 0 ? _d : 'sm'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
37
44
|
return slot.children;
|
|
38
45
|
};
|
|
39
46
|
return _jsxs("span", __assign({
|
|
@@ -17,10 +17,11 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
17
17
|
return t;
|
|
18
18
|
};
|
|
19
19
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
-
import classnames from 'classnames';
|
|
21
20
|
import { createElement, forwardRef, useEffect, useState } from 'react';
|
|
22
|
-
import
|
|
21
|
+
import classnames from 'classnames';
|
|
23
22
|
import Icon from '@ncds/ui-admin-icon';
|
|
23
|
+
import { COLOR } from '../../../constant/color';
|
|
24
|
+
import { Dot } from '../dot';
|
|
24
25
|
export var svgSize = {
|
|
25
26
|
xxs: 12,
|
|
26
27
|
xs: 14,
|
|
@@ -33,6 +34,12 @@ export var iconOnlySvgSize = {
|
|
|
33
34
|
sm: 20,
|
|
34
35
|
md: 20
|
|
35
36
|
};
|
|
37
|
+
export var dotSize = {
|
|
38
|
+
xxs: 'sm',
|
|
39
|
+
xs: 'sm',
|
|
40
|
+
sm: 'md',
|
|
41
|
+
md: 'md'
|
|
42
|
+
};
|
|
36
43
|
export var Button = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
37
44
|
// NOTE: 엘리먼트 종류에 따라 props의 타입이 달라지므로 분리
|
|
38
45
|
var _a = props.as,
|
|
@@ -71,7 +78,7 @@ export var Button = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
71
78
|
}
|
|
72
79
|
};
|
|
73
80
|
var sideSlotRender = function (slot) {
|
|
74
|
-
var _a, _b;
|
|
81
|
+
var _a, _b, _c;
|
|
75
82
|
if (slot.type === 'icon') {
|
|
76
83
|
var iconSize = onlyIcon ? iconOnlySvgSize[size] : svgSize[size];
|
|
77
84
|
return _jsx(Icon, {
|
|
@@ -81,6 +88,12 @@ export var Button = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
81
88
|
color: slot.color ? COLOR[slot.color] : undefined
|
|
82
89
|
});
|
|
83
90
|
}
|
|
91
|
+
if (slot.type === 'dot') {
|
|
92
|
+
return _jsx(Dot, {
|
|
93
|
+
color: slot.color,
|
|
94
|
+
size: (_c = slot.size) !== null && _c !== void 0 ? _c : dotSize[size]
|
|
95
|
+
});
|
|
96
|
+
}
|
|
84
97
|
return slot.children;
|
|
85
98
|
};
|
|
86
99
|
useEffect(function () {
|
|
@@ -21,12 +21,19 @@ import Icon from '@ncds/ui-admin-icon';
|
|
|
21
21
|
import classNames from 'classnames';
|
|
22
22
|
import React, { createElement } from 'react';
|
|
23
23
|
import { COLOR } from '../../../constant/color';
|
|
24
|
+
import { Dot } from '../dot';
|
|
24
25
|
var svgSize = {
|
|
25
26
|
xs: 12,
|
|
26
27
|
sm: 16,
|
|
27
28
|
md: 16,
|
|
28
29
|
lg: 20
|
|
29
30
|
};
|
|
31
|
+
var dotSize = {
|
|
32
|
+
xs: 'sm',
|
|
33
|
+
sm: 'sm',
|
|
34
|
+
md: 'md',
|
|
35
|
+
lg: 'md'
|
|
36
|
+
};
|
|
30
37
|
export var ButtonGroup = function (_a) {
|
|
31
38
|
var children = _a.children,
|
|
32
39
|
className = _a.className,
|
|
@@ -60,7 +67,8 @@ ButtonGroup.Item = function (_a) {
|
|
|
60
67
|
var _c = _a.as,
|
|
61
68
|
as = _c === void 0 ? 'button' : _c,
|
|
62
69
|
label = _a.label,
|
|
63
|
-
|
|
70
|
+
_d = _a.size,
|
|
71
|
+
size = _d === void 0 ? 'md' : _d,
|
|
64
72
|
onlyIcon = _a.onlyIcon,
|
|
65
73
|
icon = _a.icon,
|
|
66
74
|
disabled = _a.disabled,
|
|
@@ -68,16 +76,22 @@ ButtonGroup.Item = function (_a) {
|
|
|
68
76
|
isCurrent = _a.isCurrent,
|
|
69
77
|
props = __rest(_a, ["as", "label", "size", "onlyIcon", "icon", "disabled", "children", "isCurrent"]);
|
|
70
78
|
var renderIcon = function () {
|
|
71
|
-
var _a, _b;
|
|
79
|
+
var _a, _b, _c;
|
|
72
80
|
if (!icon) return null;
|
|
73
81
|
if (icon.type === 'icon') {
|
|
74
82
|
return _jsx(Icon, {
|
|
75
83
|
name: icon.icon,
|
|
76
|
-
width: (_a = icon.size) !== null && _a !== void 0 ? _a : svgSize[size
|
|
77
|
-
height: (_b = icon.size) !== null && _b !== void 0 ? _b : svgSize[size
|
|
84
|
+
width: (_a = icon.size) !== null && _a !== void 0 ? _a : svgSize[size],
|
|
85
|
+
height: (_b = icon.size) !== null && _b !== void 0 ? _b : svgSize[size],
|
|
78
86
|
color: icon.color ? COLOR[icon.color] : 'currentColor'
|
|
79
87
|
});
|
|
80
88
|
}
|
|
89
|
+
if (icon.type === 'dot') {
|
|
90
|
+
return _jsx(Dot, {
|
|
91
|
+
color: icon.color,
|
|
92
|
+
size: (_c = icon.size) !== null && _c !== void 0 ? _c : dotSize[size]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
81
95
|
return icon.children;
|
|
82
96
|
};
|
|
83
97
|
var position = (_b = icon === null || icon === void 0 ? void 0 : icon.position) !== null && _b !== void 0 ? _b : 'leading';
|
|
@@ -11,15 +11,19 @@ var __assign = this && this.__assign || function () {
|
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { forwardRef } from 'react';
|
|
13
13
|
import classNames from 'classnames';
|
|
14
|
+
/**
|
|
15
|
+
* @param {DividerProps} props
|
|
16
|
+
* @param {ReactNode} props.children Button 컴포넌트는 xs로 ButtonGroup은 sm 사이즈로 추가하는 것이 권장됩니다.
|
|
17
|
+
* @returns {ReactNode}
|
|
18
|
+
*/
|
|
14
19
|
export var Divider = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
15
20
|
var className = _a.className,
|
|
16
21
|
type = _a.type,
|
|
17
22
|
_b = _a.style,
|
|
18
23
|
style = _b === void 0 ? 'single-line' : _b,
|
|
19
24
|
children = _a.children;
|
|
20
|
-
var componentClassName = classNames('ncua-divider', "ncua-divider--".concat(type), "ncua-divider--".concat(style), className);
|
|
21
25
|
return _jsxs("div", __assign({
|
|
22
|
-
className:
|
|
26
|
+
className: classNames('ncua-divider', "ncua-divider--".concat(type), "ncua-divider--".concat(style), className),
|
|
23
27
|
ref: ref
|
|
24
28
|
}, {
|
|
25
29
|
children: [style === 'single-line' && _jsx("div", {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
6
|
+
}
|
|
7
|
+
return t;
|
|
8
|
+
};
|
|
9
|
+
return __assign.apply(this, arguments);
|
|
10
|
+
};
|
|
11
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
15
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
};
|
|
19
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
|
+
import { forwardRef } from 'react';
|
|
21
|
+
import classNames from 'classnames';
|
|
22
|
+
export var Dot = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
23
|
+
var _b = _a.color,
|
|
24
|
+
color = _b === void 0 ? 'success' : _b,
|
|
25
|
+
_c = _a.size,
|
|
26
|
+
size = _c === void 0 ? 'md' : _c,
|
|
27
|
+
className = _a.className,
|
|
28
|
+
props = __rest(_a, ["color", "size", "className"]);
|
|
29
|
+
return _jsx("span", __assign({
|
|
30
|
+
ref: ref,
|
|
31
|
+
className: classNames('ncua-dot', "ncua-dot--".concat(color), "ncua-dot--".concat(size), className)
|
|
32
|
+
}, props));
|
|
33
|
+
});
|
|
34
|
+
Dot.displayName = 'Dot';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Dot';
|
|
@@ -83,12 +83,15 @@ Modal.Header = function (_a) {
|
|
|
83
83
|
hideCloseButton = _d === void 0 ? false : _d;
|
|
84
84
|
return _jsxs(_Fragment, {
|
|
85
85
|
children: [_jsxs("header", __assign({
|
|
86
|
-
className: classnames('ncua-modal__header', "ncua-modal__header--".concat(align)
|
|
86
|
+
className: classnames('ncua-modal__header', "ncua-modal__header--".concat(align), {
|
|
87
|
+
'ncua-modal__header--close-button': !hideCloseButton
|
|
88
|
+
})
|
|
87
89
|
}, {
|
|
88
90
|
children: [featuredIcon && _jsx(FeaturedIcon, {
|
|
89
91
|
name: featuredIcon.name,
|
|
90
92
|
color: featuredIcon.color,
|
|
91
|
-
theme: featuredIcon.theme
|
|
93
|
+
theme: featuredIcon.theme,
|
|
94
|
+
size: "sm"
|
|
92
95
|
}), _jsxs("div", __assign({
|
|
93
96
|
className: "ncua-modal__title"
|
|
94
97
|
}, {
|
|
@@ -129,14 +132,14 @@ Modal.Content = function (_a) {
|
|
|
129
132
|
*
|
|
130
133
|
* 1. Vertical layout (buttons stacked):
|
|
131
134
|
* <Modal.Actions layout="vertical" align="stretch">
|
|
132
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
133
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
135
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
136
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
134
137
|
* </Modal.Actions>
|
|
135
138
|
*
|
|
136
139
|
* 2. Horizontal layout (buttons side by side):
|
|
137
140
|
* <Modal.Actions layout="horizontal" align="stretch">
|
|
138
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
139
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
141
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
142
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
140
143
|
* </Modal.Actions>
|
|
141
144
|
*
|
|
142
145
|
* 3. Checkbox layout (checkbox on left, buttons on right):
|
|
@@ -146,8 +149,8 @@ Modal.Content = function (_a) {
|
|
|
146
149
|
* <a href="#">Settings</a>
|
|
147
150
|
* </>
|
|
148
151
|
* }>
|
|
149
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
150
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
152
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
153
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
151
154
|
* </Modal.Actions>
|
|
152
155
|
*/
|
|
153
156
|
Modal.Actions = function (_a) {
|
|
@@ -12,6 +12,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
import Icon from '@ncds/ui-admin-icon';
|
|
13
13
|
import classNames from 'classnames';
|
|
14
14
|
import { COLOR } from '../../../constant/color';
|
|
15
|
+
import { Dot } from '../dot';
|
|
15
16
|
export var Tag = function (_a) {
|
|
16
17
|
var _b = _a.size,
|
|
17
18
|
size = _b === void 0 ? 'sm' : _b,
|
|
@@ -24,17 +25,28 @@ export var Tag = function (_a) {
|
|
|
24
25
|
sm: 14,
|
|
25
26
|
md: 16
|
|
26
27
|
};
|
|
28
|
+
var sideSlotRender = function (slot) {
|
|
29
|
+
var _a;
|
|
30
|
+
if (slot.type === 'icon') {
|
|
31
|
+
return _jsx(Icon, {
|
|
32
|
+
name: slot.icon,
|
|
33
|
+
width: iconSize[size],
|
|
34
|
+
height: iconSize[size],
|
|
35
|
+
color: slot.color
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (slot.type === 'dot') {
|
|
39
|
+
return _jsx(Dot, {
|
|
40
|
+
color: slot.color,
|
|
41
|
+
size: (_a = slot.size) !== null && _a !== void 0 ? _a : 'sm'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return slot.children;
|
|
45
|
+
};
|
|
27
46
|
return _jsxs("span", __assign({
|
|
28
|
-
className: classNames('ncua-tag', "ncua-tag--".concat(size)
|
|
29
|
-
'ncua-tag--dot': (icon === null || icon === void 0 ? void 0 : icon.name) === 'dot'
|
|
30
|
-
})
|
|
47
|
+
className: classNames('ncua-tag', "ncua-tag--".concat(size))
|
|
31
48
|
}, {
|
|
32
|
-
children: [icon && icon
|
|
33
|
-
name: icon.name,
|
|
34
|
-
width: iconSize[size],
|
|
35
|
-
height: iconSize[size],
|
|
36
|
-
color: icon.color
|
|
37
|
-
}), _jsx("span", __assign({
|
|
49
|
+
children: [icon && sideSlotRender(icon), _jsx("span", __assign({
|
|
38
50
|
className: "ncua-tag__text"
|
|
39
51
|
}, {
|
|
40
52
|
children: text
|
|
@@ -31,4 +31,5 @@ export declare const COLOR: {
|
|
|
31
31
|
'secondary-gray-blue-700': string;
|
|
32
32
|
};
|
|
33
33
|
export type ColorKeyType = keyof typeof COLOR;
|
|
34
|
+
export type ColorTone = 'neutral' | 'error' | 'warning' | 'success' | 'blue' | 'pink' | 'violet' | 'disabled';
|
|
34
35
|
//# sourceMappingURL=color.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ColorTone } from '../../../constant/color';
|
|
2
2
|
import { Size } from '../../../constant/size';
|
|
3
|
+
import { SideSlotType } from '../../types/side-slot';
|
|
3
4
|
export type BadgeType = 'pill-outline' | 'pill-dark-color';
|
|
4
|
-
export type BadgeColor = 'neutral' | 'error' | 'warning' | 'success' | 'blue' | 'pink' | 'disabled'
|
|
5
|
+
export type BadgeColor = Extract<ColorTone, 'neutral' | 'error' | 'warning' | 'success' | 'blue' | 'pink' | 'disabled'>;
|
|
5
6
|
export type BadgeSize = Extract<Size, 'xs' | 'sm' | 'md'>;
|
|
6
7
|
export type BadgeProps = {
|
|
7
8
|
label: string;
|
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
-
import { COLOR } from '../../../constant/color';
|
|
3
2
|
import { Size } from '../../../constant/size';
|
|
4
|
-
import {
|
|
3
|
+
import { SideSlotType } from '../../types/side-slot';
|
|
4
|
+
import { DotProps } from '../dot';
|
|
5
5
|
export type ButtonTheme = 'primary' | 'secondary' | 'secondary-gray' | 'tertiary-gray' | 'tertiary' | 'link' | 'destructive';
|
|
6
|
-
export type IconSlotType = {
|
|
7
|
-
type: 'icon';
|
|
8
|
-
icon: IconName;
|
|
9
|
-
color?: keyof typeof COLOR;
|
|
10
|
-
size?: number | string;
|
|
11
|
-
};
|
|
12
|
-
export type CustomSlotType = {
|
|
13
|
-
type: 'custom';
|
|
14
|
-
children: ReactNode;
|
|
15
|
-
};
|
|
16
|
-
export type SideSlotType = IconSlotType | CustomSlotType;
|
|
17
6
|
export type ButtonSize = Extract<Size, 'xxs' | 'xs' | 'sm' | 'md'>;
|
|
18
7
|
type CommonButtonProps<T extends keyof HTMLElementTagNameMap> = Omit<ComponentProps<T>, 'ref'> & {
|
|
19
8
|
label: string;
|
|
@@ -39,6 +28,7 @@ type AnchorElementProps = CommonButtonProps<'a'> & {
|
|
|
39
28
|
export type ButtonProps = ButtonElementProps | AnchorElementProps;
|
|
40
29
|
export declare const svgSize: Record<ButtonSize, number>;
|
|
41
30
|
export declare const iconOnlySvgSize: Record<ButtonSize, number>;
|
|
31
|
+
export declare const dotSize: Record<ButtonSize, DotProps['size']>;
|
|
42
32
|
export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
43
33
|
export {};
|
|
44
34
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1,26 +1,15 @@
|
|
|
1
|
-
import { IconName } from '@ncds/ui-admin-icon';
|
|
2
1
|
import React, { ComponentProps } from 'react';
|
|
3
|
-
import { ColorKeyType } from '../../../constant/color';
|
|
4
2
|
import { Size } from '../../../constant/size';
|
|
3
|
+
import { SideSlotType } from 'ui-admin/src/types/side-slot';
|
|
5
4
|
export type ButtonGroupSize = Extract<Size, 'xs' | 'sm' | 'md' | 'lg'>;
|
|
6
5
|
interface SideCommon {
|
|
7
6
|
position?: 'leading' | 'trailing';
|
|
8
7
|
}
|
|
9
|
-
|
|
10
|
-
type: 'icon';
|
|
11
|
-
icon: IconName;
|
|
12
|
-
size?: number;
|
|
13
|
-
color?: ColorKeyType;
|
|
14
|
-
}
|
|
15
|
-
interface SideCustom {
|
|
16
|
-
type: 'custom';
|
|
17
|
-
children: React.ReactNode;
|
|
18
|
-
}
|
|
19
|
-
type SideSlotType = SideCommon & (SideIcon | SideCustom);
|
|
8
|
+
type SideSlot = SideCommon & SideSlotType;
|
|
20
9
|
interface ButtonGroupItemCommonProps {
|
|
21
10
|
label?: string;
|
|
22
11
|
size?: ButtonGroupSize;
|
|
23
|
-
icon?:
|
|
12
|
+
icon?: SideSlot;
|
|
24
13
|
children?: React.ReactNode;
|
|
25
14
|
onlyIcon?: boolean;
|
|
26
15
|
disabled?: boolean;
|
|
@@ -68,7 +57,7 @@ export declare const ButtonGroup: {
|
|
|
68
57
|
contextMenu?: string | undefined;
|
|
69
58
|
dir?: string | undefined;
|
|
70
59
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
71
|
-
enterKeyHint?: "
|
|
60
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
72
61
|
hidden?: boolean | undefined;
|
|
73
62
|
id?: string | undefined;
|
|
74
63
|
lang?: string | undefined;
|
|
@@ -103,13 +92,13 @@ export declare const ButtonGroup: {
|
|
|
103
92
|
results?: number | undefined;
|
|
104
93
|
security?: string | undefined;
|
|
105
94
|
unselectable?: "off" | "on" | undefined;
|
|
106
|
-
inputMode?: "
|
|
95
|
+
inputMode?: "none" | "search" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
|
|
107
96
|
is?: string | undefined;
|
|
108
97
|
exportparts?: string | undefined;
|
|
109
98
|
part?: string | undefined;
|
|
110
99
|
"aria-activedescendant"?: string | undefined;
|
|
111
100
|
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
112
|
-
"aria-autocomplete"?: "
|
|
101
|
+
"aria-autocomplete"?: "none" | "list" | "inline" | "both" | undefined;
|
|
113
102
|
"aria-braillelabel"?: string | undefined;
|
|
114
103
|
"aria-brailleroledescription"?: string | undefined;
|
|
115
104
|
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
@@ -119,17 +108,17 @@ export declare const ButtonGroup: {
|
|
|
119
108
|
"aria-colindextext"?: string | undefined;
|
|
120
109
|
"aria-colspan"?: number | undefined;
|
|
121
110
|
"aria-controls"?: string | undefined;
|
|
122
|
-
"aria-current"?: boolean | "
|
|
111
|
+
"aria-current"?: boolean | "true" | "false" | "time" | "step" | "date" | "page" | "location" | undefined;
|
|
123
112
|
"aria-describedby"?: string | undefined;
|
|
124
113
|
"aria-description"?: string | undefined;
|
|
125
114
|
"aria-details"?: string | undefined;
|
|
126
115
|
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
127
|
-
"aria-dropeffect"?: "
|
|
116
|
+
"aria-dropeffect"?: "none" | "link" | "move" | "copy" | "execute" | "popup" | undefined;
|
|
128
117
|
"aria-errormessage"?: string | undefined;
|
|
129
118
|
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
130
119
|
"aria-flowto"?: string | undefined;
|
|
131
120
|
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
132
|
-
"aria-haspopup"?: boolean | "
|
|
121
|
+
"aria-haspopup"?: boolean | "true" | "false" | "dialog" | "grid" | "listbox" | "menu" | "tree" | undefined;
|
|
133
122
|
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
134
123
|
"aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
|
|
135
124
|
"aria-keyshortcuts"?: string | undefined;
|
|
@@ -347,7 +336,7 @@ export declare const ButtonGroup: {
|
|
|
347
336
|
contextMenu?: string | undefined;
|
|
348
337
|
dir?: string | undefined;
|
|
349
338
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
350
|
-
enterKeyHint?: "
|
|
339
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
351
340
|
hidden?: boolean | undefined;
|
|
352
341
|
id?: string | undefined;
|
|
353
342
|
lang?: string | undefined;
|
|
@@ -382,13 +371,13 @@ export declare const ButtonGroup: {
|
|
|
382
371
|
results?: number | undefined;
|
|
383
372
|
security?: string | undefined;
|
|
384
373
|
unselectable?: "off" | "on" | undefined;
|
|
385
|
-
inputMode?: "
|
|
374
|
+
inputMode?: "none" | "search" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
|
|
386
375
|
is?: string | undefined;
|
|
387
376
|
exportparts?: string | undefined;
|
|
388
377
|
part?: string | undefined;
|
|
389
378
|
"aria-activedescendant"?: string | undefined;
|
|
390
379
|
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
391
|
-
"aria-autocomplete"?: "
|
|
380
|
+
"aria-autocomplete"?: "none" | "list" | "inline" | "both" | undefined;
|
|
392
381
|
"aria-braillelabel"?: string | undefined;
|
|
393
382
|
"aria-brailleroledescription"?: string | undefined;
|
|
394
383
|
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
@@ -398,17 +387,17 @@ export declare const ButtonGroup: {
|
|
|
398
387
|
"aria-colindextext"?: string | undefined;
|
|
399
388
|
"aria-colspan"?: number | undefined;
|
|
400
389
|
"aria-controls"?: string | undefined;
|
|
401
|
-
"aria-current"?: boolean | "
|
|
390
|
+
"aria-current"?: boolean | "true" | "false" | "time" | "step" | "date" | "page" | "location" | undefined;
|
|
402
391
|
"aria-describedby"?: string | undefined;
|
|
403
392
|
"aria-description"?: string | undefined;
|
|
404
393
|
"aria-details"?: string | undefined;
|
|
405
394
|
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
406
|
-
"aria-dropeffect"?: "
|
|
395
|
+
"aria-dropeffect"?: "none" | "link" | "move" | "copy" | "execute" | "popup" | undefined;
|
|
407
396
|
"aria-errormessage"?: string | undefined;
|
|
408
397
|
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
409
398
|
"aria-flowto"?: string | undefined;
|
|
410
399
|
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
411
|
-
"aria-haspopup"?: boolean | "
|
|
400
|
+
"aria-haspopup"?: boolean | "true" | "false" | "dialog" | "grid" | "listbox" | "menu" | "tree" | undefined;
|
|
412
401
|
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
413
402
|
"aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
|
|
414
403
|
"aria-keyshortcuts"?: string | undefined;
|
|
@@ -7,5 +7,10 @@ export interface DividerProps {
|
|
|
7
7
|
style?: DividerStyle;
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @param {DividerProps} props
|
|
12
|
+
* @param {ReactNode} props.children Button 컴포넌트는 xs로 ButtonGroup은 sm 사이즈로 추가하는 것이 권장됩니다.
|
|
13
|
+
* @returns {ReactNode}
|
|
14
|
+
*/
|
|
10
15
|
export declare const Divider: import("react").ForwardRefExoticComponent<DividerProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
11
16
|
//# sourceMappingURL=Divider.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
import { Size } from '../../../constant/size';
|
|
3
|
+
import { ColorTone } from '../../../constant/color';
|
|
4
|
+
export type DotColor = ColorTone;
|
|
5
|
+
export type DotSize = Extract<Size, 'sm' | 'md' | 'lg'>;
|
|
6
|
+
export interface DotProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
7
|
+
/**
|
|
8
|
+
* The color of the dot
|
|
9
|
+
* @default 'success'
|
|
10
|
+
*/
|
|
11
|
+
color?: DotColor;
|
|
12
|
+
/**
|
|
13
|
+
* The size of the dot
|
|
14
|
+
* @default 'md'
|
|
15
|
+
*/
|
|
16
|
+
size?: DotSize;
|
|
17
|
+
/**
|
|
18
|
+
* Additional class names
|
|
19
|
+
*/
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const Dot: import("react").ForwardRefExoticComponent<DotProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
23
|
+
//# sourceMappingURL=Dot.d.ts.map
|
|
@@ -25,14 +25,14 @@ export declare const Modal: {
|
|
|
25
25
|
*
|
|
26
26
|
* 1. Vertical layout (buttons stacked):
|
|
27
27
|
* <Modal.Actions layout="vertical" align="stretch">
|
|
28
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
29
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
28
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
29
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
30
30
|
* </Modal.Actions>
|
|
31
31
|
*
|
|
32
32
|
* 2. Horizontal layout (buttons side by side):
|
|
33
33
|
* <Modal.Actions layout="horizontal" align="stretch">
|
|
34
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
35
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
34
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
35
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
36
36
|
* </Modal.Actions>
|
|
37
37
|
*
|
|
38
38
|
* 3. Checkbox layout (checkbox on left, buttons on right):
|
|
@@ -42,8 +42,8 @@ export declare const Modal: {
|
|
|
42
42
|
* <a href="#">Settings</a>
|
|
43
43
|
* </>
|
|
44
44
|
* }>
|
|
45
|
-
* <Button label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
46
|
-
* <Button label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
45
|
+
* <Button size="sm" label="Cancel" onClick={handleCancel} hierarchy="secondary-gray" />
|
|
46
|
+
* <Button size="sm" label="Confirm" onClick={handleConfirm} hierarchy="primary" />
|
|
47
47
|
* </Modal.Actions>
|
|
48
48
|
*/
|
|
49
49
|
Actions({ children, layout, showDivider, align, checkboxContent, }: ModalActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FC, MouseEventHandler } from 'react';
|
|
3
|
-
import { COLOR } from '../../../constant/color';
|
|
1
|
+
import { MouseEventHandler } from 'react';
|
|
4
2
|
import { Size } from '../../../constant/size';
|
|
5
|
-
|
|
6
|
-
name: IconName | 'dot';
|
|
7
|
-
color?: keyof typeof COLOR;
|
|
8
|
-
};
|
|
3
|
+
import { SideSlotType } from '../../types/side-slot';
|
|
9
4
|
interface TagProps {
|
|
10
5
|
size?: Extract<Size, 'sm' | 'md'>;
|
|
11
|
-
icon?:
|
|
6
|
+
icon?: SideSlotType;
|
|
12
7
|
text: string;
|
|
13
8
|
count?: string;
|
|
14
9
|
close?: boolean;
|
|
10
|
+
children?: React.ReactNode;
|
|
15
11
|
onButtonClick?: MouseEventHandler<HTMLButtonElement>;
|
|
16
12
|
}
|
|
17
|
-
export declare const Tag:
|
|
13
|
+
export declare const Tag: ({ size, icon, text, count, close, onButtonClick }: TagProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
14
|
export {};
|
|
19
15
|
//# sourceMappingURL=Tag.d.ts.map
|
|
@@ -51,6 +51,14 @@
|
|
|
51
51
|
--orange-500: #e4501e;
|
|
52
52
|
--orange-600: #b93815;
|
|
53
53
|
--orange-700: #772917;
|
|
54
|
+
--violet-50: #fbfaff;
|
|
55
|
+
--violet-100: #ece9fe;
|
|
56
|
+
--violet-200: #ddd6fe;
|
|
57
|
+
--violet-300: #c3b5fd;
|
|
58
|
+
--violet-400: #a48afb;
|
|
59
|
+
--violet-500: #6927da;
|
|
60
|
+
--violet-600: #5720b7;
|
|
61
|
+
--violet-700: #3e1486;
|
|
54
62
|
--focus-ring-4px-primary-100: 0px 0px 0px 3px #ffeaee;
|
|
55
63
|
--focus-ring-4px-gray-100: 0px 0px 0px 3px #f2f4f7;
|
|
56
64
|
--focus-ring-4px-error-100: 0px 0px 0px 3px #fee4e2;
|
|
@@ -917,9 +925,9 @@ button {
|
|
|
917
925
|
border-radius: 8px;
|
|
918
926
|
}
|
|
919
927
|
.ncua-divider--text {
|
|
920
|
-
font-size: var(--font-size-
|
|
928
|
+
font-size: var(--font-size-xs);
|
|
921
929
|
font-weight: var(--font-weights-commerce-sans-1);
|
|
922
|
-
line-height: var(--line-heights-
|
|
930
|
+
line-height: var(--line-heights-xs);
|
|
923
931
|
color: var(--gray-500);
|
|
924
932
|
}
|
|
925
933
|
.ncua-divider--heading {
|
|
@@ -929,6 +937,48 @@ button {
|
|
|
929
937
|
color: var(--gray-700);
|
|
930
938
|
}
|
|
931
939
|
|
|
940
|
+
.ncua-dot {
|
|
941
|
+
display: inline-block;
|
|
942
|
+
border-radius: 50%;
|
|
943
|
+
margin: 1px;
|
|
944
|
+
}
|
|
945
|
+
.ncua-dot--sm {
|
|
946
|
+
width: 6px;
|
|
947
|
+
height: 6px;
|
|
948
|
+
}
|
|
949
|
+
.ncua-dot--md {
|
|
950
|
+
width: 8px;
|
|
951
|
+
height: 8px;
|
|
952
|
+
}
|
|
953
|
+
.ncua-dot--lg {
|
|
954
|
+
width: 10px;
|
|
955
|
+
height: 10px;
|
|
956
|
+
}
|
|
957
|
+
.ncua-dot--neutral {
|
|
958
|
+
background-color: var(--gray-500);
|
|
959
|
+
}
|
|
960
|
+
.ncua-dot--error {
|
|
961
|
+
background-color: var(--primary-red-500);
|
|
962
|
+
}
|
|
963
|
+
.ncua-dot--warning {
|
|
964
|
+
background-color: var(--orange-500);
|
|
965
|
+
}
|
|
966
|
+
.ncua-dot--success {
|
|
967
|
+
background-color: var(--green-500);
|
|
968
|
+
}
|
|
969
|
+
.ncua-dot--blue {
|
|
970
|
+
background-color: var(--blue-500);
|
|
971
|
+
}
|
|
972
|
+
.ncua-dot--pink {
|
|
973
|
+
background-color: var(--pink-500);
|
|
974
|
+
}
|
|
975
|
+
.ncua-dot--violet {
|
|
976
|
+
background-color: var(--violet-500);
|
|
977
|
+
}
|
|
978
|
+
.ncua-dot--disabled {
|
|
979
|
+
background-color: var(--gray-300);
|
|
980
|
+
}
|
|
981
|
+
|
|
932
982
|
.ncua-dropdown {
|
|
933
983
|
position: relative;
|
|
934
984
|
display: inline-block;
|
|
@@ -1512,6 +1562,9 @@ button {
|
|
|
1512
1562
|
.ncua-modal__header--horizontal .ncua-modal__title {
|
|
1513
1563
|
flex: 1;
|
|
1514
1564
|
}
|
|
1565
|
+
.ncua-modal__header--close-button.ncua-modal__header--left {
|
|
1566
|
+
padding: 20px 56px 20px 16px;
|
|
1567
|
+
}
|
|
1515
1568
|
|
|
1516
1569
|
.ncua-modal__title {
|
|
1517
1570
|
display: flex;
|
|
@@ -1534,22 +1587,21 @@ button {
|
|
|
1534
1587
|
|
|
1535
1588
|
.ncua-modal__close-button {
|
|
1536
1589
|
position: absolute;
|
|
1537
|
-
top:
|
|
1538
|
-
right:
|
|
1539
|
-
width: 24px;
|
|
1540
|
-
height: 24px;
|
|
1590
|
+
top: 10px;
|
|
1591
|
+
right: 16px;
|
|
1541
1592
|
display: flex;
|
|
1542
1593
|
align-items: center;
|
|
1543
1594
|
justify-content: center;
|
|
1544
1595
|
background: transparent;
|
|
1545
1596
|
border: none;
|
|
1546
1597
|
cursor: pointer;
|
|
1547
|
-
padding:
|
|
1598
|
+
padding: 8px;
|
|
1548
1599
|
color: var(--gray-400);
|
|
1549
1600
|
border-radius: 8px;
|
|
1550
1601
|
}
|
|
1551
|
-
.ncua-modal__close-button
|
|
1552
|
-
|
|
1602
|
+
.ncua-modal__close-button svg {
|
|
1603
|
+
width: 20px;
|
|
1604
|
+
height: 20px;
|
|
1553
1605
|
}
|
|
1554
1606
|
|
|
1555
1607
|
.ncua-modal__content {
|
|
@@ -2093,24 +2145,9 @@ button {
|
|
|
2093
2145
|
white-space: nowrap;
|
|
2094
2146
|
word-wrap: break-word;
|
|
2095
2147
|
}
|
|
2096
|
-
.ncua-tag > svg {
|
|
2148
|
+
.ncua-tag > svg, .ncua-tag > .ncua-dot {
|
|
2097
2149
|
margin-right: 4px;
|
|
2098
2150
|
}
|
|
2099
|
-
.ncua-tag--dot .ncua-tag__text {
|
|
2100
|
-
position: relative;
|
|
2101
|
-
padding-left: 12px;
|
|
2102
|
-
}
|
|
2103
|
-
.ncua-tag--dot .ncua-tag__text::before {
|
|
2104
|
-
position: absolute;
|
|
2105
|
-
top: 50%;
|
|
2106
|
-
left: 0;
|
|
2107
|
-
content: "";
|
|
2108
|
-
transform: translateY(-50%);
|
|
2109
|
-
width: 6px;
|
|
2110
|
-
height: 6px;
|
|
2111
|
-
background-color: var(--primary-red-500);
|
|
2112
|
-
border-radius: 50%;
|
|
2113
|
-
}
|
|
2114
2151
|
.ncua-tag__count {
|
|
2115
2152
|
display: inline-flex;
|
|
2116
2153
|
align-items: center;
|
|
@@ -2758,7 +2795,7 @@ button {
|
|
|
2758
2795
|
display: inline-flex;
|
|
2759
2796
|
}
|
|
2760
2797
|
.ncua-date-picker .flatpickr-wrapper {
|
|
2761
|
-
|
|
2798
|
+
outline: 1px solid var(--gray-200);
|
|
2762
2799
|
border-radius: 6px;
|
|
2763
2800
|
font-weight: 400;
|
|
2764
2801
|
background: var(--base-white);
|
|
@@ -2891,15 +2928,21 @@ button {
|
|
|
2891
2928
|
.ncua-date-picker .flatpickr-day.today {
|
|
2892
2929
|
border-color: var(--gray-600);
|
|
2893
2930
|
}
|
|
2894
|
-
.ncua-date-picker--sm
|
|
2931
|
+
.ncua-date-picker--sm {
|
|
2895
2932
|
width: 138px;
|
|
2896
2933
|
height: 28px;
|
|
2934
|
+
}
|
|
2935
|
+
.ncua-date-picker--sm .flatpickr-wrapper {
|
|
2936
|
+
height: 100%;
|
|
2897
2937
|
padding: 5px 10px;
|
|
2898
2938
|
font-size: var(--font-size-xs);
|
|
2899
2939
|
}
|
|
2900
|
-
.ncua-date-picker--md
|
|
2940
|
+
.ncua-date-picker--md {
|
|
2901
2941
|
width: 156px;
|
|
2902
2942
|
height: 36px;
|
|
2943
|
+
}
|
|
2944
|
+
.ncua-date-picker--md .flatpickr-wrapper {
|
|
2945
|
+
height: 100%;
|
|
2903
2946
|
padding: 7px 12px;
|
|
2904
2947
|
font-size: var(--font-size-sm);
|
|
2905
2948
|
}
|