@ncds/ui-admin 1.8.21-alpha.9 → 1.8.21

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 (45) hide show
  1. package/dist/cjs/src/components/feedback-and-status/badge/Badge.js +1 -1
  2. package/dist/cjs/src/components/forms-and-input/input-base/InputBase.js +13 -7
  3. package/dist/cjs/src/components/forms-and-input/input-base/__tests__/InputBase.test.js +16 -11
  4. package/dist/cjs/src/components/overlays/notification/CalloutNotification.js +6 -1
  5. package/dist/cjs/src/components/overlays/notification/Notification.js +22 -2
  6. package/dist/cjs/src/components/overlays/notification/__tests__/CalloutNotification.test.js +128 -0
  7. package/dist/cjs/src/components/overlays/notification/__tests__/Notification.test.js +83 -0
  8. package/dist/cjs/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +8 -2
  9. package/dist/cjs/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +1 -1
  10. package/dist/cjs/src/generated/scoped-css.js +1 -1
  11. package/dist/esm/src/components/feedback-and-status/badge/Badge.js +1 -1
  12. package/dist/esm/src/components/forms-and-input/input-base/InputBase.js +13 -7
  13. package/dist/esm/src/components/forms-and-input/input-base/__tests__/InputBase.test.js +16 -11
  14. package/dist/esm/src/components/overlays/notification/CalloutNotification.js +6 -1
  15. package/dist/esm/src/components/overlays/notification/Notification.js +22 -2
  16. package/dist/esm/src/components/overlays/notification/__tests__/CalloutNotification.test.js +125 -0
  17. package/dist/esm/src/components/overlays/notification/__tests__/Notification.test.js +80 -0
  18. package/dist/esm/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +9 -3
  19. package/dist/esm/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +1 -1
  20. package/dist/esm/src/generated/scoped-css.js +1 -1
  21. package/dist/temp/src/components/feedback-and-status/badge/Badge.d.ts +1 -1
  22. package/dist/temp/src/components/feedback-and-status/badge/Badge.js +1 -1
  23. package/dist/temp/src/components/forms-and-input/input-base/InputBase.js +10 -4
  24. package/dist/temp/src/components/forms-and-input/input-base/__tests__/InputBase.test.js +14 -12
  25. package/dist/temp/src/components/overlays/notification/CalloutNotification.d.ts +3 -1
  26. package/dist/temp/src/components/overlays/notification/CalloutNotification.js +5 -1
  27. package/dist/temp/src/components/overlays/notification/Notification.d.ts +12 -2
  28. package/dist/temp/src/components/overlays/notification/Notification.js +9 -4
  29. package/dist/temp/src/components/overlays/notification/__tests__/CalloutNotification.test.d.ts +1 -0
  30. package/dist/temp/src/components/overlays/notification/__tests__/CalloutNotification.test.js +108 -0
  31. package/dist/temp/src/components/overlays/notification/__tests__/Notification.test.d.ts +1 -0
  32. package/dist/temp/src/components/overlays/notification/__tests__/Notification.test.js +71 -0
  33. package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModal.d.ts +1 -1
  34. package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +6 -2
  35. package/dist/temp/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +1 -1
  36. package/dist/temp/src/generated/scoped-css.js +1 -1
  37. package/dist/types/src/components/feedback-and-status/badge/Badge.d.ts +1 -1
  38. package/dist/types/src/components/overlays/notification/CalloutNotification.d.ts +3 -1
  39. package/dist/types/src/components/overlays/notification/Notification.d.ts +12 -2
  40. package/dist/types/src/components/overlays/notification/__tests__/CalloutNotification.test.d.ts +1 -0
  41. package/dist/types/src/components/overlays/notification/__tests__/Notification.test.d.ts +1 -0
  42. package/dist/types/src/components/overlays/postcode-search-modal/PostcodeSearchModal.d.ts +1 -1
  43. package/dist/ui-admin/assets/styles/style.css +52 -32
  44. package/package.json +1 -1
  45. package/dist/ui-admin/assets/styles/style.scoped.css +0 -8595
@@ -16,4 +16,4 @@ type BadgeProps = {
16
16
  };
17
17
  declare const Badge: ({ label, type, color, className, leadingIcon, trailingIcon, size, }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export { Badge };
19
- export type { BadgeColor, BadgeProps, BadgeSize, BadgeType };
19
+ export type { BadgeType, BadgeColor, BadgeSize, BadgeProps };
@@ -1,9 +1,11 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
2
  import type { NotificationColor } from './Notification';
3
+ type CalloutNotificationWidth = 'full' | 'fit';
3
4
  interface CalloutNotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {
4
5
  color?: NotificationColor;
5
6
  title?: ReactNode;
7
+ width?: CalloutNotificationWidth;
6
8
  }
7
9
  declare const CalloutNotification: import("react").ForwardRefExoticComponent<CalloutNotificationProps & import("react").RefAttributes<HTMLDivElement>>;
8
- export type { CalloutNotificationProps };
10
+ export type { CalloutNotificationProps, CalloutNotificationWidth };
9
11
  export { CalloutNotification };
@@ -2,7 +2,7 @@ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
2
  import type { ColorTone } from '../../../../constant/color';
3
3
  import type { SlotIconComponent } from '../../../types/side-slot';
4
4
  import type { ButtonTheme } from '../../action/button';
5
- import { type CalloutNotificationProps } from './CalloutNotification';
5
+ import { type CalloutNotificationProps, type CalloutNotificationWidth } from './CalloutNotification';
6
6
  type NotificationType = 'floating' | 'full-width' | 'message' | 'callout';
7
7
  type NotificationColor = Extract<ColorTone, 'neutral' | 'error' | 'warning' | 'success' | 'info'>;
8
8
  type NotificationSize = 'desktop' | 'mobile';
@@ -76,6 +76,16 @@ interface NotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title
76
76
  * 표기가 통일되어 있지 않은 것은 현행 유지이며, 통일은 별도 결정 사항이다.
77
77
  */
78
78
  hidePermanentlyLabel?: ReactNode;
79
+ /**
80
+ * supportingText 에 연결할 링크 URL (선택사항)
81
+ * full-width 타입에서 사용 가능
82
+ */
83
+ supportTextLink?: string;
84
+ /**
85
+ * 너비 동작 (선택사항)
86
+ * callout 타입에서만 사용 가능. 미지정 시 부모 너비를 채운다(100%). 'fit' 은 콘텐츠 너비에 맞춘다
87
+ */
88
+ width?: CalloutNotificationWidth;
79
89
  /**
80
90
  * Portal 마운트 여부. `floating` 타입에서만 동작한다.
81
91
  *
@@ -92,5 +102,5 @@ interface NotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title
92
102
  }
93
103
  declare const Notification: import("react").ForwardRefExoticComponent<NotificationProps & import("react").RefAttributes<HTMLDivElement>>;
94
104
  export type { NotificationType, NotificationColor, NotificationSize, NotificationAction, NotificationProps };
95
- export type { CalloutNotificationProps };
105
+ export type { CalloutNotificationProps, CalloutNotificationWidth };
96
106
  export { Notification };
@@ -38,7 +38,7 @@ declare const PostcodeSearchModal: {
38
38
  displayName: string;
39
39
  Tip: {
40
40
  ({ className }: PostcodeSearchModalTipProps): import("react/jsx-runtime").JSX.Element;
41
- displayName: string; /** 반응형 전환 기준 — assets/styles/base/_variable.scss 의 $breakpoint 와 동일 */
41
+ displayName: string;
42
42
  };
43
43
  };
44
44
  export { PostcodeSearchModal };
@@ -67,6 +67,9 @@
67
67
  --shadow-xs-focused-3px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #ffeaee;
68
68
  --shadow-xs-focused-3px-gray-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #f2f4f7;
69
69
  --shadow-xs-focused-3px-error-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #fee4e2;
70
+ --shadow-xs-focused-4px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #ffeaee;
71
+ --shadow-xs-focused-4px-gray-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f2f4f7;
72
+ --shadow-xs-focused-4px-error-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #fee4e2;
70
73
  --shadow-sm: 0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f;
71
74
  --shadow-sm-focused-4px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #ffeaee;
72
75
  --shadow-sm-focused-4px-gray-100: 0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #f2f4f7;
@@ -323,7 +326,7 @@ button {
323
326
  background-color: var(--primary-red-450);
324
327
  border: 1px solid var(--primary-red-500);
325
328
  color: var(--base-white);
326
- box-shadow: var(--shadow-sm-focused-4px-primary-100);
329
+ box-shadow: var(--shadow-xs-focused-4px-primary-100);
327
330
  }
328
331
  .ncua-btn--primary:disabled, .ncua-btn--primary.is-disable {
329
332
  background-color: var(--primary-red-100);
@@ -369,7 +372,7 @@ button {
369
372
  background-color: var(--base-white);
370
373
  border: 1px solid var(--gray-200);
371
374
  color: var(--gray-700);
372
- box-shadow: var(--shadow-sm-focused-4px-gray-100);
375
+ box-shadow: var(--shadow-xs-focused-4px-gray-100);
373
376
  }
374
377
  .ncua-btn--secondary-gray:disabled, .ncua-btn--secondary-gray.is-disable {
375
378
  background-color: var(--base-white);
@@ -955,7 +958,7 @@ button {
955
958
  }
956
959
  .ncua-checkbox-input.destructive :where(input):focus {
957
960
  border-color: var(--primary-red-600);
958
- box-shadow: var(--shadow-sm-focused-4px-error-100);
961
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
959
962
  }
960
963
  .ncua-checkbox-input:hover {
961
964
  border-color: var(--gray-600);
@@ -1736,7 +1739,7 @@ button {
1736
1739
  border-color: var(--primary-red-600);
1737
1740
  }
1738
1741
  .ncua-input.destructive:where(:focus-within) .ncua-input__field {
1739
- box-shadow: var(--shadow-sm-focused-4px-error-100);
1742
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
1740
1743
  }
1741
1744
  .ncua-input.is-disabled .ncua-input__content > :not(button) {
1742
1745
  background-color: var(--gray-50);
@@ -1926,7 +1929,7 @@ button {
1926
1929
  border-color: var(--primary-red-600);
1927
1930
  }
1928
1931
  .ncua-input--textarea.destructive textarea:focus {
1929
- box-shadow: var(--shadow-sm-focused-4px-error-100);
1932
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
1930
1933
  }
1931
1934
 
1932
1935
  .ncua-input--textarea--xs textarea {
@@ -2257,33 +2260,35 @@ button {
2257
2260
  .ncua-modal:has(.ncua-postcode-search-modal) .ncua-postcode-search-modal__item .ncua-radio-input {
2258
2261
  display: none;
2259
2262
  }
2263
+ .ncua-modal:has(.ncua-postcode-search-modal) .ncua-modal__content {
2264
+ padding-block-end: 20px;
2265
+ }
2266
+ }
2267
+
2268
+ .ncua-modal:has(.ncua-postcode-search-modal) .ncua-modal__header-divider {
2269
+ margin: 0;
2260
2270
  }
2261
2271
 
2262
2272
  .ncua-modal__content:has(.ncua-postcode-search-modal) {
2263
2273
  display: flex;
2264
2274
  flex-direction: column;
2265
- padding-block-end: 91px;
2275
+ padding-block-end: 32px;
2266
2276
  padding-inline: 0;
2267
2277
  }
2268
2278
 
2269
2279
  .ncua-postcode-search-modal {
2270
2280
  --padding-inline: 20px;
2271
- display: flex;
2272
- flex: 1;
2273
- flex-direction: column;
2274
- gap: var(--spacing-m);
2275
2281
  }
2276
2282
 
2277
2283
  .ncua-postcode-search-modal__search-area {
2278
2284
  position: sticky;
2279
2285
  top: 0;
2280
2286
  z-index: 1;
2281
- padding-inline: var(--padding-inline);
2287
+ padding: 16px var(--padding-inline) 20px;
2282
2288
  display: flex;
2283
2289
  flex-direction: column;
2284
2290
  gap: var(--spacing-s);
2285
2291
  background-color: var(--base-white);
2286
- padding-block-end: 12px;
2287
2292
  }
2288
2293
  .ncua-postcode-search-modal__search-area.is-fixed {
2289
2294
  border-block-end: 1px solid var(--gray-200);
@@ -2292,7 +2297,7 @@ button {
2292
2297
  .ncua-postcode-search-modal__search {
2293
2298
  display: flex;
2294
2299
  align-items: flex-start;
2295
- gap: var(--spacing-s);
2300
+ gap: var(--spacing-xs);
2296
2301
  }
2297
2302
 
2298
2303
  .ncua-postcode-search-modal__search-area .ncua-postcode-search-modal__result-title {
@@ -2322,7 +2327,8 @@ button {
2322
2327
 
2323
2328
  .ncua-postcode-search-modal__count {
2324
2329
  padding-inline: var(--padding-inline);
2325
- color: var(--gray-700);
2330
+ margin-block-start: 12px;
2331
+ color: var(--gray-500);
2326
2332
  font-size: var(--font-size-xs);
2327
2333
  font-weight: var(--font-weights-commerce-sans-2);
2328
2334
  line-height: var(--line-heights-xs);
@@ -2333,7 +2339,7 @@ button {
2333
2339
 
2334
2340
  .ncua-postcode-search-modal__list {
2335
2341
  padding-inline: var(--padding-inline);
2336
- margin-bottom: 0;
2342
+ margin-block: 8px 0;
2337
2343
  }
2338
2344
 
2339
2345
  .ncua-postcode-search-modal__item {
@@ -2346,6 +2352,10 @@ button {
2346
2352
  align-items: center;
2347
2353
  width: 100%;
2348
2354
  }
2355
+ .ncua-postcode-search-modal__item .ncua-radio-field.has-text {
2356
+ gap: 16px;
2357
+ vertical-align: top;
2358
+ }
2349
2359
  .ncua-postcode-search-modal__item .ncua-radio-field__input + span {
2350
2360
  flex: 1;
2351
2361
  }
@@ -2398,6 +2408,7 @@ button {
2398
2408
  }
2399
2409
 
2400
2410
  .ncua-postcode-search-modal__tip {
2411
+ margin-inline-start: 6px;
2401
2412
  padding-inline: var(--padding-inline);
2402
2413
  color: var(--gray-500);
2403
2414
  font-size: var(--font-size-xxs);
@@ -2415,6 +2426,7 @@ button {
2415
2426
 
2416
2427
  .ncua-postcode-search-modal__tip-icon {
2417
2428
  flex-shrink: 0;
2429
+ color: var(--gray-400);
2418
2430
  }
2419
2431
 
2420
2432
  .ncua-postcode-search-modal__tip .ncua-postcode-search-modal__tip-title {
@@ -2444,18 +2456,17 @@ button {
2444
2456
  }
2445
2457
 
2446
2458
  .ncua-postcode-search-modal__tip-combination {
2447
- color: var(--gray-700);
2459
+ font-weight: var(--font-weights-commerce-sans-1);
2448
2460
  }
2449
2461
 
2450
2462
  .ncua-postcode-search-modal__tip-example {
2451
- padding-left: var(--spacing-s);
2463
+ font-weight: var(--font-weights-commerce-sans-0);
2452
2464
  }
2453
2465
 
2454
2466
  .ncua-postcode-search-modal__pagination {
2455
2467
  display: flex;
2456
2468
  justify-content: center;
2457
- margin-top: auto;
2458
- padding-top: var(--spacing-m);
2469
+ margin-top: 20px;
2459
2470
  padding-inline: var(--padding-inline);
2460
2471
  }
2461
2472
  .ncua-postcode-search-modal__pagination .ncua-pagination--mo {
@@ -2889,6 +2900,7 @@ button {
2889
2900
  align-items: center;
2890
2901
  justify-content: space-between;
2891
2902
  gap: 24px;
2903
+ flex-wrap: wrap;
2892
2904
  }
2893
2905
  @media (max-width: 768px) {
2894
2906
  .ncua-message-notification__content {
@@ -2902,7 +2914,7 @@ button {
2902
2914
  display: flex;
2903
2915
  align-items: center;
2904
2916
  gap: 12px;
2905
- min-width: 0;
2917
+ min-width: 160px;
2906
2918
  }
2907
2919
  .ncua-message-notification__icon {
2908
2920
  flex-shrink: 0;
@@ -2928,6 +2940,7 @@ button {
2928
2940
  align-items: center;
2929
2941
  gap: 12px;
2930
2942
  flex-shrink: 0;
2943
+ margin-left: auto;
2931
2944
  flex-wrap: wrap;
2932
2945
  }
2933
2946
  @media (max-width: 768px) {
@@ -3069,6 +3082,13 @@ button {
3069
3082
  line-height: var(--line-heights-md);
3070
3083
  font-weight: var(--font-weights-commerce-sans-0);
3071
3084
  }
3085
+ .ncua-callout-notification--full {
3086
+ width: 100%;
3087
+ }
3088
+ .ncua-callout-notification--fit {
3089
+ width: fit-content;
3090
+ max-width: 100%;
3091
+ }
3072
3092
  .ncua-callout-notification--info {
3073
3093
  background-color: var(--blue-50);
3074
3094
  border-color: var(--blue-200);
@@ -3163,7 +3183,7 @@ button {
3163
3183
  }
3164
3184
  .ncua-radio-input.destructive :where(input):focus {
3165
3185
  border-color: var(--primary-red-600);
3166
- box-shadow: var(--shadow-sm-focused-4px-error-100);
3186
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
3167
3187
  }
3168
3188
 
3169
3189
  .ncua-radio-field {
@@ -3665,7 +3685,7 @@ button {
3665
3685
  border-color: var(--primary-red-600);
3666
3686
  }
3667
3687
  .ncua-select.destructive .ncua-select__content:focus-within {
3668
- box-shadow: var(--shadow-sm-focused-4px-error-100);
3688
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
3669
3689
  }
3670
3690
  .ncua-select--xs .ncua-select__content {
3671
3691
  height: var(--select-height-xs);
@@ -3987,7 +4007,7 @@ button {
3987
4007
  border-color: var(--primary-red-600);
3988
4008
  }
3989
4009
  .ncua-selectbox.destructive .ncua-selectbox__content:focus {
3990
- box-shadow: var(--shadow-sm-focused-4px-error-100);
4010
+ box-shadow: var(--shadow-xs-focused-4px-error-100);
3991
4011
  }
3992
4012
  .ncua-selectbox--xs .ncua-selectbox__content {
3993
4013
  height: var(--select-height-xs);
@@ -4095,17 +4115,17 @@ button {
4095
4115
  list-style: none;
4096
4116
  }
4097
4117
  .ncua-pagination__item + .ncua-pagination__item {
4098
- margin-inline-start: 4px;
4118
+ margin-inline-start: 2px;
4099
4119
  margin-top: 0;
4100
4120
  }
4101
4121
  .ncua-pagination__page-num {
4102
- font-size: 14px;
4103
- font-weight: 500;
4122
+ font-size: var(--font-size-xs);
4123
+ font-weight: var(--font-weights-commerce-sans-1);
4104
4124
  display: inline-flex;
4105
4125
  justify-content: center;
4106
4126
  align-items: center;
4107
- padding-inline: 10px;
4108
- min-width: 32px;
4127
+ padding-inline: 0;
4128
+ width: 32px;
4109
4129
  height: 32px;
4110
4130
  border-radius: 8px;
4111
4131
  border: 0;
@@ -4152,6 +4172,7 @@ button {
4152
4172
  color: var(--gray-400);
4153
4173
  }
4154
4174
  .ncua-pagination--mo .ncua-pagination__current-num {
4175
+ margin-inline-end: 5px;
4155
4176
  font-style: normal;
4156
4177
  color: var(--gray-700);
4157
4178
  }
@@ -5279,16 +5300,15 @@ button {
5279
5300
  justify-content: center;
5280
5301
  color: var(--pink-600);
5281
5302
  background-color: var(--pink-200);
5303
+ border-radius: 5px;
5282
5304
  }
5283
5305
  .ncua-badge--new-badge-sm {
5284
5306
  width: 16px;
5285
5307
  height: 16px;
5286
- border-radius: 3px;
5287
5308
  }
5288
5309
  .ncua-badge--new-badge-md {
5289
5310
  width: 20px;
5290
5311
  height: 20px;
5291
- border-radius: 4px;
5292
5312
  }
5293
5313
 
5294
5314
  .ncua-badge-group {
@@ -6550,7 +6570,7 @@ button {
6550
6570
  bottom: 0;
6551
6571
  width: 3px;
6552
6572
  background: var(--base-black);
6553
- z-index: var(--z-index-1);
6573
+ z-index: 1;
6554
6574
  }
6555
6575
  .ncua-table__row--warning.ncua-table__row--selected:nth-child(n) {
6556
6576
  background: var(--orange-50);
@@ -6695,7 +6715,7 @@ button {
6695
6715
  .ncua-table--fixed-header .ncua-table__header-cell {
6696
6716
  position: sticky;
6697
6717
  top: 0;
6698
- z-index: var(--z-index-sticky);
6718
+ z-index: 10;
6699
6719
  padding: 0 var(--spacing-m);
6700
6720
  height: var(--ncua-table-header-height);
6701
6721
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncds/ui-admin",
3
- "version": "1.8.21-alpha.9",
3
+ "version": "1.8.21",
4
4
  "description": "nhn-commerce의 어드민 디자인 시스템입니다.",
5
5
  "scripts": {
6
6
  "barrel": "node barrel.js",