@nurihaus/web-design-system 3.8.0 → 3.9.0

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 (36) hide show
  1. package/README.md +1 -1
  2. package/dist/ai/components.md +44 -4
  3. package/dist/ai/motion.md +2 -0
  4. package/dist/ai/tokens.md +3 -0
  5. package/dist/chunk-1176.js +24 -0
  6. package/dist/chunk-910.js +15 -13
  7. package/dist/components/bottom-bar/bottom-bar.stories.d.ts +6 -6
  8. package/dist/components/empty-state/empty-state.stories.d.ts +8 -8
  9. package/dist/components/icon/icon.stories.d.ts +1 -1
  10. package/dist/components/icon-button/base-icon-button.d.ts +3 -0
  11. package/dist/components/icon-button/icon-button-props.d.ts +12 -0
  12. package/dist/components/icon-button/icon-button-type.d.ts +16 -0
  13. package/dist/components/icon-button/icon-button.d.ts +5 -0
  14. package/dist/components/icon-button/icon-button.stories.d.ts +31 -0
  15. package/dist/components/list/list-row.stories.d.ts +10 -10
  16. package/dist/components/message/message.stories.d.ts +10 -10
  17. package/dist/components/message-composer/message-composer-type.d.ts +4 -0
  18. package/dist/components/message-composer/message-composer.stories.d.ts +2 -0
  19. package/dist/components/notice/notice-type.d.ts +2 -0
  20. package/dist/components/notice/notice.stories.d.ts +7 -7
  21. package/dist/components/skeleton/skeleton.stories.d.ts +7 -7
  22. package/dist/components/toast/toast.stories.d.ts +12 -12
  23. package/dist/components.css +96 -0
  24. package/dist/cta-button.js +20 -16
  25. package/dist/helpers/utils/fillLinkChild.d.ts +6 -0
  26. package/dist/icon-button.js +338 -0
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +216 -26
  29. package/dist/list-row.js +19 -13
  30. package/dist/message-composer.js +5 -1
  31. package/dist/modal-with-double-button.js +8 -6
  32. package/dist/notice.js +9 -5
  33. package/dist/styles.css +83 -0
  34. package/dist/toast.js +8 -6
  35. package/dist/tokens.css +5 -0
  36. package/package.json +5 -1
package/dist/index.js CHANGED
@@ -1105,11 +1105,12 @@ var ctaButtonProps = {
1105
1105
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __nuri_require__(1041);
1106
1106
  /* harmony import */ var _helpers_hooks_useTrack__WEBPACK_IMPORTED_MODULE_2__ = __nuri_require__(4560);
1107
1107
  /* harmony import */ var _helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__ = __nuri_require__(3274);
1108
- /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(7335);
1109
- /* harmony import */ var _callout_callout__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(1163);
1110
- /* harmony import */ var _loading_spinner_spinner__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(6302);
1111
- /* harmony import */ var _base_button__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(8933);
1112
- /* harmony import */ var _button_props__WEBPACK_IMPORTED_MODULE_8__ = __nuri_require__(9976);
1108
+ /* harmony import */ var _helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(1176);
1109
+ /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(7335);
1110
+ /* harmony import */ var _callout_callout__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(1163);
1111
+ /* harmony import */ var _loading_spinner_spinner__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(6302);
1112
+ /* harmony import */ var _base_button__WEBPACK_IMPORTED_MODULE_8__ = __nuri_require__(8933);
1113
+ /* harmony import */ var _button_props__WEBPACK_IMPORTED_MODULE_9__ = __nuri_require__(9976);
1113
1114
  var __assign = undefined && undefined.__assign || function () {
1114
1115
  __assign = Object.assign || function (t) {
1115
1116
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -1137,8 +1138,9 @@ var __rest = undefined && undefined.__rest || function (s, e) {
1137
1138
 
1138
1139
 
1139
1140
 
1141
+
1140
1142
  var CTAButton = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
1141
- var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__/* .getMergedProps */ .p)(props, _button_props__WEBPACK_IMPORTED_MODULE_8__/* .ctaButtonProps */ .Lr),
1143
+ var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__/* .getMergedProps */ .p)(props, _button_props__WEBPACK_IMPORTED_MODULE_9__/* .ctaButtonProps */ .Lr),
1142
1144
  className = _a.className,
1143
1145
  text = _a.text,
1144
1146
  leftIcon = _a.leftIcon,
@@ -1156,26 +1158,26 @@ var CTAButton = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(f
1156
1158
  trackProps: trackProps
1157
1159
  });
1158
1160
  var content = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1159
- children: [leftIcon, text, rightIcon, callout ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_callout_callout__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
1161
+ children: [leftIcon, text, rightIcon, callout ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_callout_callout__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, {
1160
1162
  className: 'cta-button-callout',
1161
1163
  text: callout
1162
1164
  }) : null]
1163
1165
  });
1164
1166
  // asChild 면 넘겨받은 링크 요소 안에 버튼 글자를 넣고, 그 요소가 버튼 클래스·핸들러를 받는다
1165
- var linkChild = asChild && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children) ? children : null;
1166
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, __assign({
1167
+ var link = (0,_helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__/* .fillLinkChild */ .Q)(asChild, children, content);
1168
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_button__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A, __assign({
1167
1169
  ref: ref,
1168
1170
  className: (0,_helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__/* .classNames */ .x)(className, 'cta-button', callout ? 'with-callout' : undefined),
1169
- loadingComponent: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_loading_spinner_spinner__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, {}),
1170
- asChild: linkChild !== null,
1171
+ loadingComponent: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_loading_spinner_spinner__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {}),
1172
+ asChild: link !== null,
1171
1173
  // 링크는 로딩을 그리지 않는다. 그리면 Spinner 가 링크 자리를 차지한다
1172
- loading: linkChild ? undefined : loading,
1174
+ loading: link ? undefined : loading,
1173
1175
  onClick: function onClick(event) {
1174
1176
  emit('click');
1175
1177
  _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
1176
1178
  }
1177
1179
  }, restProps, {
1178
- children: linkChild ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(linkChild, undefined, content) : content
1180
+ children: link !== null && link !== void 0 ? link : content
1179
1181
  }));
1180
1182
  });
1181
1183
  CTAButton.displayName = 'CTAButton';
@@ -2905,6 +2907,162 @@ EmptyState.displayName = 'EmptyState';
2905
2907
 
2906
2908
  /***/ },
2907
2909
 
2910
+ /***/ 8173
2911
+ (__unused_webpack_module, __webpack_exports__, __nuri_require__) {
2912
+
2913
+
2914
+ // EXPORTS
2915
+ __nuri_require__.d(__webpack_exports__, {
2916
+ A: () => (/* binding */ icon_button)
2917
+ });
2918
+
2919
+ // EXTERNAL MODULE: external {"root":"jsx-runtime","commonjs2":"react/jsx-runtime","commonjs":"react/jsx-runtime","amd":"react/jsx-runtime","module":"react/jsx-runtime"}
2920
+ var jsx_runtime_ = __nuri_require__(612);
2921
+ // EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react","module":"react"}
2922
+ var external_root_React_commonjs2_react_commonjs_react_amd_react_module_react_ = __nuri_require__(1041);
2923
+ // EXTERNAL MODULE: ./helpers/hooks/useTrack.ts
2924
+ var useTrack = __nuri_require__(4560);
2925
+ // EXTERNAL MODULE: ./helpers/utils/classNames.js
2926
+ var classNames = __nuri_require__(3274);
2927
+ // EXTERNAL MODULE: ./helpers/utils/fillLinkChild.ts
2928
+ var fillLinkChild = __nuri_require__(1176);
2929
+ // EXTERNAL MODULE: ./helpers/utils/getMergedProps.ts
2930
+ var getMergedProps = __nuri_require__(7335);
2931
+ // EXTERNAL MODULE: ./components/icon/icon.tsx
2932
+ var icon_icon = __nuri_require__(3547);
2933
+ // EXTERNAL MODULE: ./components/core/composer/index.tsx
2934
+ var composer = __nuri_require__(2777);
2935
+ ;// ./components/icon-button/base-icon-button.tsx
2936
+ var __assign = undefined && undefined.__assign || function () {
2937
+ __assign = Object.assign || function (t) {
2938
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2939
+ s = arguments[i];
2940
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2941
+ }
2942
+ return t;
2943
+ };
2944
+ return __assign.apply(this, arguments);
2945
+ };
2946
+ var __rest = undefined && undefined.__rest || function (s, e) {
2947
+ var t = {};
2948
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
2949
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2950
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
2951
+ }
2952
+ return t;
2953
+ };
2954
+
2955
+
2956
+
2957
+
2958
+ var BaseIconButton = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_amd_react_module_react_.forwardRef)(function (props, ref) {
2959
+ var _a = props.asChild,
2960
+ asChild = _a === void 0 ? false : _a,
2961
+ className = props.className,
2962
+ disabled = props.disabled,
2963
+ restProps = __rest(props, ["asChild", "className", "disabled"]);
2964
+ var Comp = asChild ? composer/* default */.A : 'button';
2965
+ return (0,jsx_runtime_.jsx)(Comp, __assign({
2966
+ ref: ref,
2967
+ className: (0,classNames/* classNames */.x)('nuri-theme base-icon-button', className),
2968
+ type: asChild ? undefined : 'button',
2969
+ disabled: disabled,
2970
+ "data-disabled": disabled || undefined
2971
+ }, restProps));
2972
+ });
2973
+ BaseIconButton.displayName = 'BaseIconButton';
2974
+ /* harmony default export */ const base_icon_button = (BaseIconButton);
2975
+ // EXTERNAL MODULE: ./helpers/props/common-props.ts
2976
+ var common_props = __nuri_require__(7298);
2977
+ ;// ./components/icon-button/icon-button-props.ts
2978
+
2979
+ var variant = ['ghost', 'secondary', 'primary'];
2980
+ var sizes = ['s', 'm', 'l'];
2981
+ // 아이콘 크기도 이 값으로 고르므로 기본 크기를 한 곳에 둔다
2982
+ var defaultSize = 'm';
2983
+ var iconButtonProps = {
2984
+ variant: {
2985
+ type: 'className',
2986
+ className: 'variant',
2987
+ values: variant,
2988
+ "default": 'ghost'
2989
+ },
2990
+ size: (0,common_props/* sizeProp */.lw)(sizes, defaultSize)
2991
+ };
2992
+ ;// ./components/icon-button/icon-button.tsx
2993
+ var icon_button_assign = undefined && undefined.__assign || function () {
2994
+ icon_button_assign = Object.assign || function (t) {
2995
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2996
+ s = arguments[i];
2997
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2998
+ }
2999
+ return t;
3000
+ };
3001
+ return icon_button_assign.apply(this, arguments);
3002
+ };
3003
+ var icon_button_rest = undefined && undefined.__rest || function (s, e) {
3004
+ var t = {};
3005
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
3006
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
3007
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
3008
+ }
3009
+ return t;
3010
+ };
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+
3020
+ // 버튼 크기마다 아이콘 크기. 버튼 지름은 size.css 의 --icon-button-size-*
3021
+ var ICON_SIZE = {
3022
+ s: 's',
3023
+ m: 'l',
3024
+ l: 'xl'
3025
+ };
3026
+ /** 아이콘 하나뿐인 버튼. 누르는 자리는 늘 터치 44 이상이다 */
3027
+ var IconButton = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_amd_react_module_react_.forwardRef)(function (props, ref) {
3028
+ var _a;
3029
+ var _b = (0,getMergedProps/* getMergedProps */.p)(props, iconButtonProps),
3030
+ className = _b.className,
3031
+ icon = _b.icon,
3032
+ label = _b.label,
3033
+ asChild = _b.asChild,
3034
+ children = _b.children,
3035
+ _onClick = _b.onClick,
3036
+ track = _b.track,
3037
+ trackProps = _b.trackProps,
3038
+ restProps = icon_button_rest(_b, ["className", "icon", "label", "asChild", "children", "onClick", "track", "trackProps"]);
3039
+ var emit = (0,useTrack/* useTrack */.n)('IconButton', {
3040
+ track: track,
3041
+ trackProps: trackProps
3042
+ });
3043
+ var content = (0,jsx_runtime_.jsx)(icon_icon/* default */.A, {
3044
+ name: icon,
3045
+ size: ICON_SIZE[(_a = props.size) !== null && _a !== void 0 ? _a : defaultSize]
3046
+ });
3047
+ var link = (0,fillLinkChild/* fillLinkChild */.Q)(asChild, children, content);
3048
+ return (0,jsx_runtime_.jsx)(base_icon_button, icon_button_assign({
3049
+ ref: ref,
3050
+ className: (0,classNames/* classNames */.x)(className, 'icon-button'),
3051
+ "aria-label": label,
3052
+ asChild: link !== null,
3053
+ onClick: function onClick(event) {
3054
+ emit('click');
3055
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
3056
+ }
3057
+ }, restProps, {
3058
+ children: link !== null && link !== void 0 ? link : content
3059
+ }));
3060
+ });
3061
+ IconButton.displayName = 'IconButton';
3062
+ /* harmony default export */ const icon_button = (IconButton);
3063
+
3064
+ /***/ },
3065
+
2908
3066
  /***/ 9896
2909
3067
  (__unused_webpack_module, __webpack_exports__, __nuri_require__) {
2910
3068
 
@@ -3402,10 +3560,11 @@ var listRowProps = {};
3402
3560
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __nuri_require__(1041);
3403
3561
  /* harmony import */ var _helpers_hooks_useTrack__WEBPACK_IMPORTED_MODULE_2__ = __nuri_require__(4560);
3404
3562
  /* harmony import */ var _helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__ = __nuri_require__(3274);
3405
- /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(7335);
3406
- /* harmony import */ var _icon_icon__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(3547);
3407
- /* harmony import */ var _base_list__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(9497);
3408
- /* harmony import */ var _list_props__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(1212);
3563
+ /* harmony import */ var _helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(1176);
3564
+ /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(7335);
3565
+ /* harmony import */ var _icon_icon__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(3547);
3566
+ /* harmony import */ var _base_list__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(9497);
3567
+ /* harmony import */ var _list_props__WEBPACK_IMPORTED_MODULE_8__ = __nuri_require__(1212);
3409
3568
  var __assign = undefined && undefined.__assign || function () {
3410
3569
  __assign = Object.assign || function (t) {
3411
3570
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -3432,9 +3591,10 @@ var __rest = undefined && undefined.__rest || function (s, e) {
3432
3591
 
3433
3592
 
3434
3593
 
3594
+
3435
3595
  /** 목록 한 줄. onClick 이면 button, asChild 면 넘긴 링크가 행이 된다. 둘 다 없으면 div 다 */
3436
3596
  var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
3437
- var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__/* .getMergedProps */ .p)(props, _list_props__WEBPACK_IMPORTED_MODULE_7__/* .listRowProps */ .R),
3597
+ var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__/* .getMergedProps */ .p)(props, _list_props__WEBPACK_IMPORTED_MODULE_8__/* .listRowProps */ .R),
3438
3598
  className = _a.className,
3439
3599
  label = _a.label,
3440
3600
  description = _a.description,
@@ -3451,8 +3611,9 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
3451
3611
  track: track,
3452
3612
  trackProps: trackProps
3453
3613
  });
3454
- var linkChild = asChild && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children) ? children : null;
3455
- var showChevron = chevron !== null && chevron !== void 0 ? chevron : linkChild !== null || onClick !== undefined;
3614
+ // 링크 요소를 받았을 때만 링크 행이다. 아니면 div 로 그리고 화살표도 없다
3615
+ var isLink = asChild === true && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children);
3616
+ var showChevron = chevron !== null && chevron !== void 0 ? chevron : isLink || onClick !== undefined;
3456
3617
  var content = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
3457
3618
  children: [leading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
3458
3619
  className: 'list-row-leading',
@@ -3469,7 +3630,7 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
3469
3630
  }), trailing ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
3470
3631
  className: 'list-row-trailing',
3471
3632
  children: trailing
3472
- }) : null, showChevron ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_icon_icon__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
3633
+ }) : null, showChevron ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_icon_icon__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, {
3473
3634
  className: 'list-row-chevron',
3474
3635
  name: 'caret-right',
3475
3636
  size: 's'
@@ -3480,14 +3641,15 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
3480
3641
  type: 'button',
3481
3642
  children: content
3482
3643
  }) : null;
3483
- var rowElement = linkChild ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(linkChild, undefined, content) : buttonRow;
3484
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_list__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.Row, __assign({
3644
+ var link = (0,_helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__/* .fillLinkChild */ .Q)(asChild, children, content);
3645
+ var rowElement = link !== null && link !== void 0 ? link : buttonRow;
3646
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_list__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.Row, __assign({
3485
3647
  ref: ref,
3486
3648
  className: (0,_helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__/* .classNames */ .x)(className, 'list-row'),
3487
3649
  asChild: rowElement !== null,
3488
3650
  // 링크 행은 다른 화면으로 옮기고 버튼 행은 그 자리에서 동작한다. 보기만 하는 행은 보내지 않는다
3489
3651
  onClick: rowElement ? function (event) {
3490
- emit(linkChild ? 'navigate' : 'click');
3652
+ emit(link ? 'navigate' : 'click');
3491
3653
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
3492
3654
  } : undefined
3493
3655
  }, restProps, {
@@ -4126,9 +4288,11 @@ var MessageComposer = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
4126
4288
  leading = _a.leading,
4127
4289
  attachments = _a.attachments,
4128
4290
  disabled = _a.disabled,
4291
+ autoFocus = _a.autoFocus,
4292
+ maxLength = _a.maxLength,
4129
4293
  track = _a.track,
4130
4294
  trackProps = _a.trackProps,
4131
- restProps = message_composer_rest(_a, ["className", "value", "defaultValue", "onValueChange", "onSend", "canSend", "loading", "placeholder", "label", "sendLabel", "leading", "attachments", "disabled", "track", "trackProps"]);
4295
+ restProps = message_composer_rest(_a, ["className", "value", "defaultValue", "onValueChange", "onSend", "canSend", "loading", "placeholder", "label", "sendLabel", "leading", "attachments", "disabled", "autoFocus", "maxLength", "track", "trackProps"]);
4132
4296
  var _b = (0,useExternalState/* useExternalState */.C)({
4133
4297
  prop: valueProp,
4134
4298
  handler: onValueChange,
@@ -4167,6 +4331,8 @@ var MessageComposer = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
4167
4331
  "aria-label": label,
4168
4332
  placeholder: placeholder,
4169
4333
  disabled: disabled,
4334
+ autoFocus: autoFocus,
4335
+ maxLength: maxLength,
4170
4336
  value: value,
4171
4337
  onChange: function onChange(e) {
4172
4338
  return setValue(e.target.value);
@@ -4997,7 +5163,9 @@ var Notice = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_
4997
5163
  size: 'xs',
4998
5164
  variant: 'neutral',
4999
5165
  text: action.label,
5000
- onClick: action.onClick,
5166
+ // CTAButton 은 loading 중에도 누름을 받으므로 처리 중에는 다시 부르지 않는다
5167
+ onClick: action.loading ? undefined : action.onClick,
5168
+ loading: action.loading,
5001
5169
  track: action.track,
5002
5170
  trackProps: action.trackProps
5003
5171
  })]
@@ -7688,6 +7856,24 @@ var widthProp = function widthProp(defaultValue) {
7688
7856
 
7689
7857
  /***/ },
7690
7858
 
7859
+ /***/ 1176
7860
+ (__unused_webpack_module, __webpack_exports__, __nuri_require__) {
7861
+
7862
+ /* harmony export */ __nuri_require__.d(__webpack_exports__, {
7863
+ /* harmony export */ Q: () => (/* binding */ fillLinkChild)
7864
+ /* harmony export */ });
7865
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __nuri_require__(1041);
7866
+
7867
+ /**
7868
+ * asChild 로 받은 요소 하나(`<a>`·라우터 Link)에 컴포넌트의 내용을 채운다.
7869
+ * 요소가 아니면 null — 쓰는 쪽은 null 이면 자기 기본 요소를 그린다.
7870
+ */
7871
+ var fillLinkChild = function fillLinkChild(asChild, children, content) {
7872
+ return asChild && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(children) ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(children, undefined, content) : null;
7873
+ };
7874
+
7875
+ /***/ },
7876
+
7691
7877
  /***/ 7335
7692
7878
  (__unused_webpack_module, __webpack_exports__, __nuri_require__) {
7693
7879
 
@@ -8008,6 +8194,8 @@ var __webpack_exports__ = {};
8008
8194
  var avatar = __nuri_require__(5468);
8009
8195
  // EXTERNAL MODULE: ./components/button/cta-button.tsx
8010
8196
  var cta_button = __nuri_require__(910);
8197
+ // EXTERNAL MODULE: ./components/icon-button/icon-button.tsx + 2 modules
8198
+ var icon_button = __nuri_require__(8173);
8011
8199
  // EXTERNAL MODULE: ./components/callout/callout.tsx
8012
8200
  var callout = __nuri_require__(1163);
8013
8201
  // EXTERNAL MODULE: ./components/badge/option-badge.tsx
@@ -8881,6 +9069,7 @@ var colors = __nuri_require__(7232);
8881
9069
 
8882
9070
 
8883
9071
 
9072
+
8884
9073
 
8885
9074
 
8886
9075
  const __webpack_exports__colors = colors/* colors */.T;
@@ -8901,6 +9090,7 @@ export const Drawer = drawer/* default */.A;
8901
9090
  export const DropDown = drop_down/* default */.A;
8902
9091
  export const EmptyState = empty_state/* default */.A;
8903
9092
  export const Icon = icon/* default */.A;
9093
+ export const IconButton = icon_button/* default */.A;
8904
9094
  export const IconTextBadge = icon_text_badge/* default */.A;
8905
9095
  export const IconTextOptionBadge = icon_text_option_badge/* default */.A;
8906
9096
  export const ListGroup = list_group/* default */.A;
package/dist/list-row.js CHANGED
@@ -26,10 +26,11 @@ var listRowProps = {};
26
26
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __nuri_require__(1041);
27
27
  /* harmony import */ var _helpers_hooks_useTrack__WEBPACK_IMPORTED_MODULE_2__ = __nuri_require__(4560);
28
28
  /* harmony import */ var _helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__ = __nuri_require__(3274);
29
- /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(7335);
30
- /* harmony import */ var _icon_icon__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(3547);
31
- /* harmony import */ var _base_list__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(9497);
32
- /* harmony import */ var _list_props__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(1212);
29
+ /* harmony import */ var _helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__ = __nuri_require__(1176);
30
+ /* harmony import */ var _helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__ = __nuri_require__(7335);
31
+ /* harmony import */ var _icon_icon__WEBPACK_IMPORTED_MODULE_6__ = __nuri_require__(3547);
32
+ /* harmony import */ var _base_list__WEBPACK_IMPORTED_MODULE_7__ = __nuri_require__(9497);
33
+ /* harmony import */ var _list_props__WEBPACK_IMPORTED_MODULE_8__ = __nuri_require__(1212);
33
34
  var __assign = undefined && undefined.__assign || function () {
34
35
  __assign = Object.assign || function (t) {
35
36
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -56,9 +57,10 @@ var __rest = undefined && undefined.__rest || function (s, e) {
56
57
 
57
58
 
58
59
 
60
+
59
61
  /** 목록 한 줄. onClick 이면 button, asChild 면 넘긴 링크가 행이 된다. 둘 다 없으면 div 다 */
60
62
  var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
61
- var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_4__/* .getMergedProps */ .p)(props, _list_props__WEBPACK_IMPORTED_MODULE_7__/* .listRowProps */ .R),
63
+ var _a = (0,_helpers_utils_getMergedProps__WEBPACK_IMPORTED_MODULE_5__/* .getMergedProps */ .p)(props, _list_props__WEBPACK_IMPORTED_MODULE_8__/* .listRowProps */ .R),
62
64
  className = _a.className,
63
65
  label = _a.label,
64
66
  description = _a.description,
@@ -75,8 +77,9 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
75
77
  track: track,
76
78
  trackProps: trackProps
77
79
  });
78
- var linkChild = asChild && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children) ? children : null;
79
- var showChevron = chevron !== null && chevron !== void 0 ? chevron : linkChild !== null || onClick !== undefined;
80
+ // 링크 요소를 받았을 때만 링크 행이다. 아니면 div 로 그리고 화살표도 없다
81
+ var isLink = asChild === true && /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children);
82
+ var showChevron = chevron !== null && chevron !== void 0 ? chevron : isLink || onClick !== undefined;
80
83
  var content = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
81
84
  children: [leading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
82
85
  className: 'list-row-leading',
@@ -93,7 +96,7 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
93
96
  }), trailing ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
94
97
  className: 'list-row-trailing',
95
98
  children: trailing
96
- }) : null, showChevron ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_icon_icon__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
99
+ }) : null, showChevron ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_icon_icon__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, {
97
100
  className: 'list-row-chevron',
98
101
  name: 'caret-right',
99
102
  size: 's'
@@ -104,14 +107,15 @@ var ListRow = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(fun
104
107
  type: 'button',
105
108
  children: content
106
109
  }) : null;
107
- var rowElement = linkChild ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(linkChild, undefined, content) : buttonRow;
108
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_list__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.Row, __assign({
110
+ var link = (0,_helpers_utils_fillLinkChild__WEBPACK_IMPORTED_MODULE_4__/* .fillLinkChild */ .Q)(asChild, children, content);
111
+ var rowElement = link !== null && link !== void 0 ? link : buttonRow;
112
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base_list__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.Row, __assign({
109
113
  ref: ref,
110
114
  className: (0,_helpers_utils_classNames__WEBPACK_IMPORTED_MODULE_3__/* .classNames */ .x)(className, 'list-row'),
111
115
  asChild: rowElement !== null,
112
116
  // 링크 행은 다른 화면으로 옮기고 버튼 행은 그 자리에서 동작한다. 보기만 하는 행은 보내지 않는다
113
117
  onClick: rowElement ? function (event) {
114
- emit(linkChild ? 'navigate' : 'click');
118
+ emit(link ? 'navigate' : 'click');
115
119
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
116
120
  } : undefined
117
121
  }, restProps, {
@@ -289,13 +293,15 @@ module.exports = x({ ["Fragment"]: () => (__WEBPACK_EXTERNAL_MODULE_react_jsx_ru
289
293
  /******/ __nuri_require__.C(__webpack_chunk_6__);
290
294
  /******/ import * as __webpack_chunk_7__ from "./chunk-3547.js";
291
295
  /******/ __nuri_require__.C(__webpack_chunk_7__);
292
- /******/ import * as __webpack_chunk_8__ from "./chunk-9497.js";
296
+ /******/ import * as __webpack_chunk_8__ from "./chunk-1176.js";
293
297
  /******/ __nuri_require__.C(__webpack_chunk_8__);
298
+ /******/ import * as __webpack_chunk_9__ from "./chunk-9497.js";
299
+ /******/ __nuri_require__.C(__webpack_chunk_9__);
294
300
  /******/
295
301
  /******/ // startup
296
302
  /******/ // Load entry module and return exports
297
303
  /******/ // This entry module depends on other loaded chunks and execution need to be delayed
298
- /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,7653,3547,9497], () => (__nuri_require__(2082)))
304
+ /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,7653,3547,1176,9497], () => (__nuri_require__(2082)))
299
305
  /******/ __webpack_exports__ = __nuri_require__.O(__webpack_exports__);
300
306
  /******/ const __webpack_exports__default = __webpack_exports__.A;
301
307
  /******/ export { __webpack_exports__default as default };
@@ -141,9 +141,11 @@ var MessageComposer = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
141
141
  leading = _a.leading,
142
142
  attachments = _a.attachments,
143
143
  disabled = _a.disabled,
144
+ autoFocus = _a.autoFocus,
145
+ maxLength = _a.maxLength,
144
146
  track = _a.track,
145
147
  trackProps = _a.trackProps,
146
- restProps = message_composer_rest(_a, ["className", "value", "defaultValue", "onValueChange", "onSend", "canSend", "loading", "placeholder", "label", "sendLabel", "leading", "attachments", "disabled", "track", "trackProps"]);
148
+ restProps = message_composer_rest(_a, ["className", "value", "defaultValue", "onValueChange", "onSend", "canSend", "loading", "placeholder", "label", "sendLabel", "leading", "attachments", "disabled", "autoFocus", "maxLength", "track", "trackProps"]);
147
149
  var _b = (0,useExternalState/* useExternalState */.C)({
148
150
  prop: valueProp,
149
151
  handler: onValueChange,
@@ -182,6 +184,8 @@ var MessageComposer = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
182
184
  "aria-label": label,
183
185
  placeholder: placeholder,
184
186
  disabled: disabled,
187
+ autoFocus: autoFocus,
188
+ maxLength: maxLength,
185
189
  value: value,
186
190
  onChange: function onChange(e) {
187
191
  return setValue(e.target.value);
@@ -352,21 +352,23 @@ module.exports = x({ ["Fragment"]: () => (__WEBPACK_EXTERNAL_MODULE_react_jsx_ru
352
352
  /******/ __nuri_require__.C(__webpack_chunk_6__);
353
353
  /******/ import * as __webpack_chunk_7__ from "./chunk-8933.js";
354
354
  /******/ __nuri_require__.C(__webpack_chunk_7__);
355
- /******/ import * as __webpack_chunk_8__ from "./chunk-2496.js";
355
+ /******/ import * as __webpack_chunk_8__ from "./chunk-1176.js";
356
356
  /******/ __nuri_require__.C(__webpack_chunk_8__);
357
- /******/ import * as __webpack_chunk_9__ from "./chunk-5226.js";
357
+ /******/ import * as __webpack_chunk_9__ from "./chunk-2496.js";
358
358
  /******/ __nuri_require__.C(__webpack_chunk_9__);
359
- /******/ import * as __webpack_chunk_10__ from "./chunk-6713.js";
359
+ /******/ import * as __webpack_chunk_10__ from "./chunk-5226.js";
360
360
  /******/ __nuri_require__.C(__webpack_chunk_10__);
361
- /******/ import * as __webpack_chunk_11__ from "./chunk-910.js";
361
+ /******/ import * as __webpack_chunk_11__ from "./chunk-6713.js";
362
362
  /******/ __nuri_require__.C(__webpack_chunk_11__);
363
- /******/ import * as __webpack_chunk_12__ from "./chunk-1657.js";
363
+ /******/ import * as __webpack_chunk_12__ from "./chunk-910.js";
364
364
  /******/ __nuri_require__.C(__webpack_chunk_12__);
365
+ /******/ import * as __webpack_chunk_13__ from "./chunk-1657.js";
366
+ /******/ __nuri_require__.C(__webpack_chunk_13__);
365
367
  /******/
366
368
  /******/ // startup
367
369
  /******/ // Load entry module and return exports
368
370
  /******/ // This entry module depends on other loaded chunks and execution need to be delayed
369
- /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,6302,8933,2496,5226,6713,910,1657], () => (__nuri_require__(8949)))
371
+ /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,6302,8933,1176,2496,5226,6713,910,1657], () => (__nuri_require__(8949)))
370
372
  /******/ __webpack_exports__ = __nuri_require__.O(__webpack_exports__);
371
373
  /******/ const __webpack_exports__default = __webpack_exports__.A;
372
374
  /******/ export { __webpack_exports__default as default };
package/dist/notice.js CHANGED
@@ -143,7 +143,9 @@ var Notice = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_
143
143
  size: 'xs',
144
144
  variant: 'neutral',
145
145
  text: action.label,
146
- onClick: action.onClick,
146
+ // CTAButton 은 loading 중에도 누름을 받으므로 처리 중에는 다시 부르지 않는다
147
+ onClick: action.loading ? undefined : action.onClick,
148
+ loading: action.loading,
147
149
  track: action.track,
148
150
  trackProps: action.trackProps
149
151
  })]
@@ -325,17 +327,19 @@ module.exports = x({ ["Fragment"]: () => (__WEBPACK_EXTERNAL_MODULE_react_jsx_ru
325
327
  /******/ __nuri_require__.C(__webpack_chunk_8__);
326
328
  /******/ import * as __webpack_chunk_9__ from "./chunk-8933.js";
327
329
  /******/ __nuri_require__.C(__webpack_chunk_9__);
328
- /******/ import * as __webpack_chunk_10__ from "./chunk-2496.js";
330
+ /******/ import * as __webpack_chunk_10__ from "./chunk-1176.js";
329
331
  /******/ __nuri_require__.C(__webpack_chunk_10__);
330
- /******/ import * as __webpack_chunk_11__ from "./chunk-5226.js";
332
+ /******/ import * as __webpack_chunk_11__ from "./chunk-2496.js";
331
333
  /******/ __nuri_require__.C(__webpack_chunk_11__);
332
- /******/ import * as __webpack_chunk_12__ from "./chunk-910.js";
334
+ /******/ import * as __webpack_chunk_12__ from "./chunk-5226.js";
333
335
  /******/ __nuri_require__.C(__webpack_chunk_12__);
336
+ /******/ import * as __webpack_chunk_13__ from "./chunk-910.js";
337
+ /******/ __nuri_require__.C(__webpack_chunk_13__);
334
338
  /******/
335
339
  /******/ // startup
336
340
  /******/ // Load entry module and return exports
337
341
  /******/ // This entry module depends on other loaded chunks and execution need to be delayed
338
- /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,7653,3547,6302,8933,2496,5226,910], () => (__nuri_require__(2980)))
342
+ /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,7653,3547,6302,8933,1176,2496,5226,910], () => (__nuri_require__(2980)))
339
343
  /******/ __webpack_exports__ = __nuri_require__.O(__webpack_exports__);
340
344
  /******/ const __webpack_exports__default = __webpack_exports__.A;
341
345
  /******/ export { __webpack_exports__default as default };
package/dist/styles.css CHANGED
@@ -302,6 +302,11 @@
302
302
  --composer-send-size: 36px;
303
303
  --composer-max-height: 132px;
304
304
 
305
+ /* 아이콘 버튼: icon-button. 보이는 원의 지름. 누르는 자리는 --touch-target 이상 */
306
+ --icon-button-size-s: 36px;
307
+ --icon-button-size-m: 44px;
308
+ --icon-button-size-l: 56px;
309
+
305
310
  /* 빈 화면: empty-state 아이콘 원 */
306
311
  --empty-state-icon-box: 64px;
307
312
 
@@ -2554,6 +2559,84 @@ p {
2554
2559
  width: var(--icon-size-xl);
2555
2560
  height: var(--icon-size-xl);
2556
2561
  }
2562
+ .base-icon-button {
2563
+ position: relative;
2564
+ flex: none;
2565
+ display: inline-flex;
2566
+ align-items: center;
2567
+ justify-content: center;
2568
+ padding: 0;
2569
+ border: none;
2570
+ cursor: var(--cursor-button);
2571
+
2572
+ /* 보이는 크기가 작아도(s 36) 누르는 자리는 터치 44 */
2573
+ }
2574
+ .base-icon-button::after {
2575
+ content: '';
2576
+ position: absolute;
2577
+ top: 50%;
2578
+ left: 50%;
2579
+ width: var(--touch-target);
2580
+ height: var(--touch-target);
2581
+ transform: translate(-50%, -50%);
2582
+ }
2583
+ .base-icon-button[data-disabled] {
2584
+ cursor: var(--cursor-disabled);
2585
+ }
2586
+ /***************************************************************************************************
2587
+ * *
2588
+ * icon-button *
2589
+ * *
2590
+ ***************************************************************************************************/
2591
+ .icon-button {
2592
+ border-radius: var(--radius-full);
2593
+ transition:
2594
+ transform var(--motion-press-duration) var(--motion-press-ease),
2595
+ background-color var(--motion-press-duration) var(--motion-press-ease);
2596
+ }
2597
+ .icon-button:active:not([data-disabled]) {
2598
+ transform: scale(var(--motion-press-scale));
2599
+ }
2600
+ .icon-button:focus-visible {
2601
+ outline: var(--hairline) solid var(--color-purple-600);
2602
+ outline-offset: var(--spacing-2);
2603
+ }
2604
+ .icon-button.size-s {
2605
+ width: var(--icon-button-size-s);
2606
+ height: var(--icon-button-size-s);
2607
+ }
2608
+ .icon-button.size-m {
2609
+ width: var(--icon-button-size-m);
2610
+ height: var(--icon-button-size-m);
2611
+ }
2612
+ .icon-button.size-l {
2613
+ width: var(--icon-button-size-l);
2614
+ height: var(--icon-button-size-l);
2615
+ }
2616
+ /* 바탕 없이 아이콘만. 누르는 동안 회색 원이 보인다 */
2617
+ .icon-button.variant-ghost {
2618
+ background-color: transparent;
2619
+ color: var(--color-grey-scale-700);
2620
+ }
2621
+ .icon-button.variant-ghost:active:not([data-disabled]) {
2622
+ background-color: var(--color-grey-scale-100);
2623
+ }
2624
+ /* CTAButton secondary 와 같은 연보라 */
2625
+ .icon-button.variant-secondary {
2626
+ background-color: var(--color-purple-50);
2627
+ color: var(--color-purple-900);
2628
+ }
2629
+ .icon-button.variant-primary {
2630
+ background-color: var(--color-purple-900);
2631
+ color: var(--color-white);
2632
+ }
2633
+ .icon-button[data-disabled] {
2634
+ color: var(--color-grey-scale-300);
2635
+ }
2636
+ .icon-button[data-disabled]:is(.variant-secondary,.variant-primary) {
2637
+ background-color: var(--color-grey-scale-200);
2638
+ color: var(--color-white);
2639
+ }
2557
2640
  .base-list:where(.group) {
2558
2641
  display: flex;
2559
2642
  flex-direction: column;