@ncds/ui-admin 0.0.23 → 0.0.24

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.
@@ -49,8 +49,9 @@ var InputBase = exports.InputBase = /*#__PURE__*/(0, _react.forwardRef)(function
49
49
  destructive = _a.destructive,
50
50
  leadingElement = _a.leadingElement,
51
51
  trailingElement = _a.trailingElement,
52
- props = __rest(_a, ["size", "required", "label", "hintText", "disabled", "validation", "destructive", "leadingElement", "trailingElement"]);
53
- var renderOutsideSlot = function (slot, position) {
52
+ showHelpIcon = _a.showHelpIcon,
53
+ props = __rest(_a, ["size", "required", "label", "hintText", "disabled", "validation", "destructive", "leadingElement", "trailingElement", "showHelpIcon"]);
54
+ var renderOutsideSlot = function (slot) {
54
55
  if (slot.type === 'custom' && slot.placement !== 'outside') {
55
56
  return null;
56
57
  }
@@ -76,6 +77,7 @@ var InputBase = exports.InputBase = /*#__PURE__*/(0, _react.forwardRef)(function
76
77
  }
77
78
  };
78
79
  var renderInsideSlot = function (slot, position) {
80
+ var _a, _b;
79
81
  switch (slot.type) {
80
82
  case 'icon':
81
83
  return (0, _jsxRuntime.jsx)("div", __assign({
@@ -85,8 +87,8 @@ var InputBase = exports.InputBase = /*#__PURE__*/(0, _react.forwardRef)(function
85
87
  className: (0, _classnames.default)("ncua-input__".concat(position, "-icon"), slot.className),
86
88
  name: slot.icon,
87
89
  color: slot.color ? _color.COLOR[slot.color] : undefined,
88
- width: generalSvgSize[size],
89
- height: generalSvgSize[size]
90
+ width: (_a = slot.size) !== null && _a !== void 0 ? _a : generalSvgSize[size],
91
+ height: (_b = slot.size) !== null && _b !== void 0 ? _b : generalSvgSize[size]
90
92
  })
91
93
  }));
92
94
  case 'custom':
@@ -136,6 +138,22 @@ var InputBase = exports.InputBase = /*#__PURE__*/(0, _react.forwardRef)(function
136
138
  }
137
139
  return null;
138
140
  };
141
+ var renderLabel = function () {
142
+ if (!label) return null;
143
+ return (0, _jsxRuntime.jsxs)("div", __assign({
144
+ className: (0, _classnames.default)('ncua-input__label', "ncua-input__label--".concat(size))
145
+ }, {
146
+ children: [(0, _jsxRuntime.jsx)(_Label.Label, __assign({
147
+ isRequired: required,
148
+ htmlFor: props.id
149
+ }, {
150
+ children: label
151
+ })), showHelpIcon && (0, _jsxRuntime.jsx)(_uiAdminIcon.default, {
152
+ className: "ncua-input__help-icon",
153
+ name: "help-circle"
154
+ })]
155
+ }));
156
+ };
139
157
  return (0, _jsxRuntime.jsxs)("div", __assign({
140
158
  className: (0, _classnames.default)('ncua-input', "ncua-input--".concat(size), {
141
159
  destructive: destructive,
@@ -143,25 +161,20 @@ var InputBase = exports.InputBase = /*#__PURE__*/(0, _react.forwardRef)(function
143
161
  'ncua-input__trailing-button': (trailingElement === null || trailingElement === void 0 ? void 0 : trailingElement.type) === 'button'
144
162
  })
145
163
  }, {
146
- children: [label && (0, _jsxRuntime.jsx)(_Label.Label, __assign({
147
- isRequired: required,
148
- htmlFor: props.id,
149
- className: "ncua-input__label--".concat(size)
150
- }, {
151
- children: label
152
- })), (0, _jsxRuntime.jsxs)("div", __assign({
164
+ children: [renderLabel(), (0, _jsxRuntime.jsxs)("div", __assign({
153
165
  className: "ncua-input__content"
154
166
  }, {
155
- children: [leadingElement && renderOutsideSlot(leadingElement, 'left'), (0, _jsxRuntime.jsxs)("div", __assign({
156
- className: (0, _classnames.default)('ncua-input__field', "ncua-input--".concat(size))
167
+ children: [leadingElement && renderOutsideSlot(leadingElement), (0, _jsxRuntime.jsxs)("div", __assign({
168
+ className: (0, _classnames.default)('ncua-input__field', "ncua-input__field--".concat(size))
157
169
  }, {
158
170
  children: [leadingElement && renderInsideSlot(leadingElement, 'left'), (0, _jsxRuntime.jsx)("input", __assign({
159
171
  ref: ref,
160
172
  type: "text",
161
173
  disabled: disabled
162
174
  }, props)), trailingElement && renderInsideSlot(trailingElement, 'right'), renderClearButton(), renderStatusIcon()]
163
- })), trailingElement && renderOutsideSlot(trailingElement, 'right')]
175
+ })), trailingElement && renderOutsideSlot(trailingElement)]
164
176
  })), hintText && (0, _jsxRuntime.jsx)(_HintText.HintText, __assign({
177
+ className: "ncua-input__hint-text",
165
178
  destructive: destructive
166
179
  }, {
167
180
  children: hintText
@@ -42,8 +42,9 @@ export var InputBase = /*#__PURE__*/forwardRef(function (_a, ref) {
42
42
  destructive = _a.destructive,
43
43
  leadingElement = _a.leadingElement,
44
44
  trailingElement = _a.trailingElement,
45
- props = __rest(_a, ["size", "required", "label", "hintText", "disabled", "validation", "destructive", "leadingElement", "trailingElement"]);
46
- var renderOutsideSlot = function (slot, position) {
45
+ showHelpIcon = _a.showHelpIcon,
46
+ props = __rest(_a, ["size", "required", "label", "hintText", "disabled", "validation", "destructive", "leadingElement", "trailingElement", "showHelpIcon"]);
47
+ var renderOutsideSlot = function (slot) {
47
48
  if (slot.type === 'custom' && slot.placement !== 'outside') {
48
49
  return null;
49
50
  }
@@ -69,6 +70,7 @@ export var InputBase = /*#__PURE__*/forwardRef(function (_a, ref) {
69
70
  }
70
71
  };
71
72
  var renderInsideSlot = function (slot, position) {
73
+ var _a, _b;
72
74
  switch (slot.type) {
73
75
  case 'icon':
74
76
  return _jsx("div", __assign({
@@ -78,8 +80,8 @@ export var InputBase = /*#__PURE__*/forwardRef(function (_a, ref) {
78
80
  className: classNames("ncua-input__".concat(position, "-icon"), slot.className),
79
81
  name: slot.icon,
80
82
  color: slot.color ? COLOR[slot.color] : undefined,
81
- width: generalSvgSize[size],
82
- height: generalSvgSize[size]
83
+ width: (_a = slot.size) !== null && _a !== void 0 ? _a : generalSvgSize[size],
84
+ height: (_b = slot.size) !== null && _b !== void 0 ? _b : generalSvgSize[size]
83
85
  })
84
86
  }));
85
87
  case 'custom':
@@ -129,6 +131,22 @@ export var InputBase = /*#__PURE__*/forwardRef(function (_a, ref) {
129
131
  }
130
132
  return null;
131
133
  };
134
+ var renderLabel = function () {
135
+ if (!label) return null;
136
+ return _jsxs("div", __assign({
137
+ className: classNames('ncua-input__label', "ncua-input__label--".concat(size))
138
+ }, {
139
+ children: [_jsx(Label, __assign({
140
+ isRequired: required,
141
+ htmlFor: props.id
142
+ }, {
143
+ children: label
144
+ })), showHelpIcon && _jsx(Icon, {
145
+ className: "ncua-input__help-icon",
146
+ name: "help-circle"
147
+ })]
148
+ }));
149
+ };
132
150
  return _jsxs("div", __assign({
133
151
  className: classNames('ncua-input', "ncua-input--".concat(size), {
134
152
  destructive: destructive,
@@ -136,25 +154,20 @@ export var InputBase = /*#__PURE__*/forwardRef(function (_a, ref) {
136
154
  'ncua-input__trailing-button': (trailingElement === null || trailingElement === void 0 ? void 0 : trailingElement.type) === 'button'
137
155
  })
138
156
  }, {
139
- children: [label && _jsx(Label, __assign({
140
- isRequired: required,
141
- htmlFor: props.id,
142
- className: "ncua-input__label--".concat(size)
143
- }, {
144
- children: label
145
- })), _jsxs("div", __assign({
157
+ children: [renderLabel(), _jsxs("div", __assign({
146
158
  className: "ncua-input__content"
147
159
  }, {
148
- children: [leadingElement && renderOutsideSlot(leadingElement, 'left'), _jsxs("div", __assign({
149
- className: classNames('ncua-input__field', "ncua-input--".concat(size))
160
+ children: [leadingElement && renderOutsideSlot(leadingElement), _jsxs("div", __assign({
161
+ className: classNames('ncua-input__field', "ncua-input__field--".concat(size))
150
162
  }, {
151
163
  children: [leadingElement && renderInsideSlot(leadingElement, 'left'), _jsx("input", __assign({
152
164
  ref: ref,
153
165
  type: "text",
154
166
  disabled: disabled
155
167
  }, props)), trailingElement && renderInsideSlot(trailingElement, 'right'), renderClearButton(), renderStatusIcon()]
156
- })), trailingElement && renderOutsideSlot(trailingElement, 'right')]
168
+ })), trailingElement && renderOutsideSlot(trailingElement)]
157
169
  })), hintText && _jsx(HintText, __assign({
170
+ className: "ncua-input__hint-text",
158
171
  destructive: destructive
159
172
  }, {
160
173
  children: hintText
@@ -14,6 +14,7 @@ interface InputSideTextSlot {
14
14
  interface InputSideIconSlot {
15
15
  type: 'icon';
16
16
  icon: IconName;
17
+ size?: number | string;
17
18
  color?: keyof typeof COLOR;
18
19
  className?: string;
19
20
  }
@@ -34,6 +35,7 @@ interface InputBaseCommonProps extends Omit<React.InputHTMLAttributes<HTMLInputE
34
35
  destructive?: boolean;
35
36
  leadingElement?: InputLeadingSlotType;
36
37
  trailingElement?: InputTrailingSlotType;
38
+ showHelpIcon?: boolean;
37
39
  }
38
40
  interface NoneClearableInputBaseProps extends InputBaseCommonProps {
39
41
  clearText?: never;
@@ -79,11 +79,13 @@
79
79
  --line-heights-md: 24px;
80
80
  --line-heights-sm: 22px;
81
81
  --line-heights-xs: 18px;
82
- --line-heights-xxs: 14px;
82
+ --line-heights-xxs: 16px;
83
+ --line-heights-xxxs: 14px;
83
84
  --font-weights-commerce-sans-0: 400;
84
85
  --font-weights-commerce-sans-1: 500;
85
86
  --font-weights-commerce-sans-2: 700;
86
- --font-size-xxs: 11px;
87
+ --font-size-xxxs: 11px;
88
+ --font-size-xxs: 12px;
87
89
  --font-size-xs: 13px;
88
90
  --font-size-sm: 14px;
89
91
  --font-size-md: 16px;
@@ -395,10 +397,10 @@ button {
395
397
  padding: 5px 8px;
396
398
  gap: 4px;
397
399
  height: var(--button-height-xxs);
398
- font-size: var(--font-size-xxs);
400
+ font-size: var(--font-size-xxxs);
399
401
  border-radius: 4px;
400
402
  font-weight: var(--font-weights-commerce-sans-1);
401
- line-height: var(--line-heights-xxs);
403
+ line-height: var(--line-heights-xxxs);
402
404
  }
403
405
  .ncua-btn--xs {
404
406
  padding: 5px 10px;
@@ -577,7 +579,7 @@ button {
577
579
  padding: 9px 16px;
578
580
  }
579
581
  .ncua-button-group--xs .ncua-button-group__item {
580
- font-size: var(--font-size-xxs);
582
+ font-size: var(--font-size-xxxs);
581
583
  font-weight: var(--font-weights-commerce-sans-1);
582
584
  }
583
585
  .ncua-button-group--sm .ncua-button-group__item {
@@ -981,10 +983,10 @@ button {
981
983
  line-height: var(--line-heights-xs);
982
984
  }
983
985
  .ncua-dropdown__header-subtitle {
984
- font-size: var(--font-size-xxs);
986
+ font-size: var(--font-size-xxxs);
985
987
  font-weight: var(--font-weights-commerce-sans-0);
986
988
  color: var(--gray-500);
987
- line-height: var(--line-heights-xxs);
989
+ line-height: var(--line-heights-xxxs);
988
990
  }
989
991
  .ncua-dropdown__menu-items {
990
992
  display: flex;
@@ -1067,6 +1069,7 @@ button {
1067
1069
 
1068
1070
  .ncua-hint-text {
1069
1071
  color: var(--gray-400);
1072
+ margin-top: 0;
1070
1073
  }
1071
1074
  .ncua-hint-text.destructive {
1072
1075
  color: var(--primary-red-600);
@@ -1082,26 +1085,39 @@ button {
1082
1085
  margin-bottom: 0;
1083
1086
  }
1084
1087
  .ncua-input__label {
1085
- margin-bottom: 4px;
1088
+ display: flex;
1089
+ align-items: center;
1090
+ }
1091
+ .ncua-input__help-icon {
1092
+ margin-left: 2px;
1093
+ color: var(--gray-300);
1094
+ width: 14px;
1095
+ height: 14px;
1086
1096
  }
1087
1097
  .ncua-input__content {
1088
1098
  box-shadow: var(--shadow-xs);
1089
- border-radius: 8px;
1099
+ border-radius: 6px;
1090
1100
  }
1091
1101
  .ncua-input:where(:not([class*=textarea])) .ncua-input__content {
1092
1102
  display: flex;
1093
1103
  }
1094
1104
  .ncua-input__field {
1095
- flex: 1;
1096
- display: flex;
1097
- align-items: center;
1098
- justify-content: space-between;
1099
- line-height: 1;
1100
1105
  display: flex;
1101
1106
  align-items: center;
1102
1107
  background-color: var(--base-white);
1103
1108
  border: 1px solid var(--gray-200);
1104
1109
  position: relative;
1110
+ flex: 1;
1111
+ display: flex;
1112
+ align-items: center;
1113
+ justify-content: space-between;
1114
+ line-height: 1;
1115
+ }
1116
+ .ncua-input__field--xs {
1117
+ padding: 5px 10px;
1118
+ }
1119
+ .ncua-input__field--md {
1120
+ padding: 6px 12px;
1105
1121
  }
1106
1122
  .ncua-input:focus-within :where(.ncua-input__field) {
1107
1123
  border-color: var(--gray-400);
@@ -1115,7 +1131,7 @@ button {
1115
1131
  border: 0;
1116
1132
  color: var(--gray-700);
1117
1133
  font-size: var(--font-size-sm);
1118
- line-height: 1rem;
1134
+ line-height: var(--line-heights-sm);
1119
1135
  background-color: var(--base-white);
1120
1136
  }
1121
1137
  .ncua-input input::-webkit-input-placeholder,
@@ -1143,23 +1159,28 @@ button {
1143
1159
  .ncua-input textarea:focus {
1144
1160
  outline: none;
1145
1161
  }
1162
+ .ncua-input .ncua-input__field {
1163
+ border-radius: 6px;
1164
+ }
1146
1165
  .ncua-input--xs {
1147
1166
  gap: 4px;
1148
- padding: 5px 10px;
1149
- font-size: var(--font-size-xxs);
1150
- border-radius: 6px;
1151
1167
  }
1152
1168
  .ncua-input--xs input {
1153
1169
  font-size: var(--font-size-xs);
1170
+ line-height: var(--line-heights-xs);
1154
1171
  }
1155
1172
  .ncua-input--md {
1156
1173
  gap: 6px;
1157
- padding: 7px 12px;
1158
- font-size: var(--font-size-sm);
1159
- border-radius: 6px;
1160
1174
  }
1161
1175
  .ncua-input--md input {
1162
1176
  font-size: var(--font-size-sm);
1177
+ line-height: var(--line-heights-sm);
1178
+ }
1179
+ .ncua-input--xs {
1180
+ font-size: var(--font-size-xxs);
1181
+ }
1182
+ .ncua-input--md {
1183
+ font-size: var(--font-size-xs);
1163
1184
  }
1164
1185
  .ncua-input input:-webkit-autofill, .ncua-input input:-webkit-autofill:hover, .ncua-input input:-webkit-autofill:focus, .ncua-input input:-webkit-autofill:active {
1165
1186
  -webkit-box-shadow: 0 0 0 30px var(--base-white) inset !important;
@@ -1234,51 +1255,63 @@ button {
1234
1255
  }
1235
1256
 
1236
1257
  .ncua-input__leading-text {
1237
- border-radius: 6px 0 0 6px;
1238
- color: var(--gray-400);
1239
- font-size: var(--font-size-sm);
1240
- border-width: 1px 0 1px 1px;
1241
1258
  display: flex;
1242
1259
  align-items: center;
1243
1260
  background-color: var(--base-white);
1244
1261
  border: 1px solid var(--gray-200);
1262
+ border-radius: 6px 0 0 6px;
1263
+ color: var(--gray-400);
1264
+ font-size: var(--font-size-sm);
1265
+ border-width: 1px 0 1px 1px;
1245
1266
  }
1246
1267
  .ncua-input__leading-text--xs {
1247
1268
  padding: 5px 10px;
1248
1269
  }
1249
1270
  .ncua-input__leading-text--md {
1250
- padding: 7px 12px;
1271
+ padding: 6px 12px;
1251
1272
  }
1252
1273
  .ncua-input__leading-text + .ncua-input__field {
1253
1274
  border-radius: 0 6px 6px 0;
1254
1275
  }
1255
1276
 
1256
1277
  .ncua-input__trailing-button .ncua-input__button {
1257
- border-radius: 0 6px 6px 0;
1258
- border-left-width: 0;
1259
- color: var(--gray-700);
1260
- font-weight: var(--font-weight-commerce-sans-2);
1261
1278
  display: flex;
1262
1279
  align-items: center;
1263
1280
  background-color: var(--base-white);
1264
1281
  border: 1px solid var(--gray-200);
1282
+ border-radius: 0 6px 6px 0;
1283
+ border-left-width: 0;
1284
+ color: var(--gray-700);
1285
+ font-weight: var(--font-weight-commerce-sans-2);
1265
1286
  }
1266
1287
  .ncua-input__trailing-button .ncua-input__button--xs {
1267
1288
  padding: 5px 10px;
1268
1289
  }
1269
1290
  .ncua-input__trailing-button .ncua-input__button--md {
1270
- padding: 7px 12px;
1291
+ padding: 6px 12px;
1271
1292
  }
1272
1293
  .ncua-input__trailing-button .ncua-input__button:not(:disabled) {
1273
1294
  cursor: pointer;
1274
1295
  }
1296
+ .ncua-input__trailing-button .ncua-input__button--xs {
1297
+ padding: 5px 10px;
1298
+ font-size: var(--font-size-xs);
1299
+ line-height: var(--line-heights-xs);
1300
+ font-weight: var(--font-weights-commerce-sans-1);
1301
+ }
1302
+ .ncua-input__trailing-button .ncua-input__button--md {
1303
+ padding: 7px 14px;
1304
+ font-size: var(--font-size-sm);
1305
+ line-height: var(--line-heights-sm);
1306
+ font-weight: var(--font-weights-commerce-sans-2);
1307
+ }
1275
1308
  .ncua-input__trailing-button .ncua-input__field {
1276
1309
  border-top-right-radius: 0;
1277
1310
  border-bottom-right-radius: 0;
1278
1311
  }
1279
1312
 
1280
1313
  .ncua-input--textarea {
1281
- font-size: var(--font-size-xxs);
1314
+ font-size: var(--font-size-xxxs);
1282
1315
  gap: 4px;
1283
1316
  }
1284
1317
  .ncua-input--textarea .ncua-input__content {
@@ -1975,7 +2008,7 @@ button {
1975
2008
  overflow: hidden;
1976
2009
  }
1977
2010
  .ncua-tag--sm {
1978
- font-size: var(--font-size-xxs);
2011
+ font-size: var(--font-size-xxxs);
1979
2012
  padding: 2px 8px;
1980
2013
  line-height: 14px;
1981
2014
  }
@@ -2037,7 +2070,7 @@ button {
2037
2070
 
2038
2071
  .ncua-tooltip {
2039
2072
  position: relative;
2040
- font-size: 12px;
2073
+ font-size: var(--font-size-xxs);
2041
2074
  }
2042
2075
  .ncua-tooltip svg {
2043
2076
  cursor: pointer;
@@ -2295,7 +2328,7 @@ button {
2295
2328
  }
2296
2329
  .ncua-select .ncua-hint-text {
2297
2330
  margin-block-start: 6px;
2298
- font-size: var(--font-size-xxs);
2331
+ font-size: var(--font-size-xxxs);
2299
2332
  }
2300
2333
 
2301
2334
  .ncua-pagination {
@@ -2411,7 +2444,7 @@ button {
2411
2444
  top: calc(50% + 18px);
2412
2445
  left: 50%;
2413
2446
  transform: translate(-50%, 0);
2414
- font-size: var(--font-size-xxs);
2447
+ font-size: var(--font-size-xxxs);
2415
2448
  font-weight: var(--font-weights-commerce-sans-1);
2416
2449
  color: var(--gray-500);
2417
2450
  white-space: nowrap;
@@ -2423,7 +2456,7 @@ button {
2423
2456
  transform: translate(-50%, -100%);
2424
2457
  padding: 8px 12px;
2425
2458
  border-radius: 6px;
2426
- font-size: 12px;
2459
+ font-size: var(--font-size-xxs);
2427
2460
  border: 1px solid var(--gray-200);
2428
2461
  box-shadow: var(--shadow-lg);
2429
2462
  }
@@ -2961,10 +2994,10 @@ button {
2961
2994
  font-weight: 500;
2962
2995
  }
2963
2996
  .ncua-badge--xs {
2964
- font-size: var(--font-size-xxs);
2997
+ font-size: var(--font-size-xxxs);
2965
2998
  padding: 2px 8px;
2966
2999
  height: 18px;
2967
- line-height: var(--line-heights-xxs);
3000
+ line-height: var(--line-heights-xxxs);
2968
3001
  }
2969
3002
  .ncua-badge--sm {
2970
3003
  font-size: var(--font-size-xs);
@@ -3375,10 +3408,10 @@ button {
3375
3408
  line-height: 1.3;
3376
3409
  }
3377
3410
  .ncua-progress-circle-xs .ncua-progress-circle__label-text {
3378
- font-size: 12px;
3411
+ font-size: var(--font-size-xxs);
3379
3412
  }
3380
3413
  .ncua-progress-circle-xs .ncua-progress-circle__outside-label {
3381
- font-size: 12px;
3414
+ font-size: var(--font-size-xxs);
3382
3415
  }
3383
3416
  .ncua-progress-circle-sm {
3384
3417
  --size: 200px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncds/ui-admin",
3
- "version": "0.0.23",
3
+ "version": "0.0.24",
4
4
  "description": "nhn-commerce의 어드민 디자인 시스템입니다.",
5
5
  "scripts": {
6
6
  "barrel": "node barrel.js",