@ncds/ui-admin 1.8.21-alpha.5 → 1.8.21-alpha.7

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 (71) hide show
  1. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +17 -6
  2. package/dist/cjs/assets/scripts/notification/MessageNotification.js +4 -2
  3. package/dist/cjs/assets/scripts/notification/messageTemplate.js +37 -8
  4. package/dist/cjs/constant/notification.js +21 -0
  5. package/dist/cjs/src/components/forms-and-input/input-base/InputBase.js +20 -14
  6. package/dist/cjs/src/components/index.js +11 -0
  7. package/dist/cjs/src/components/overlays/notification/FullWidthNotification.js +3 -1
  8. package/dist/cjs/src/components/overlays/notification/MessageNotification.js +2 -0
  9. package/dist/cjs/src/components/overlays/notification/MessageNotificationParts.js +3 -1
  10. package/dist/cjs/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +209 -0
  11. package/dist/cjs/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +283 -0
  12. package/dist/cjs/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +566 -0
  13. package/dist/cjs/src/components/overlays/postcode-search-modal/index.js +16 -0
  14. package/dist/cjs/src/generated/scoped-css.js +1 -1
  15. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +17 -6
  16. package/dist/esm/assets/scripts/notification/MessageNotification.js +4 -2
  17. package/dist/esm/assets/scripts/notification/messageTemplate.js +37 -8
  18. package/dist/esm/constant/notification.js +15 -0
  19. package/dist/esm/src/components/forms-and-input/input-base/InputBase.js +20 -14
  20. package/dist/esm/src/components/index.js +1 -0
  21. package/dist/esm/src/components/overlays/notification/FullWidthNotification.js +3 -1
  22. package/dist/esm/src/components/overlays/notification/MessageNotification.js +2 -0
  23. package/dist/esm/src/components/overlays/notification/MessageNotificationParts.js +3 -1
  24. package/dist/esm/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +206 -0
  25. package/dist/esm/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +276 -0
  26. package/dist/esm/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +563 -0
  27. package/dist/esm/src/components/overlays/postcode-search-modal/index.js +1 -0
  28. package/dist/esm/src/generated/scoped-css.js +1 -1
  29. package/dist/temp/assets/scripts/notification/FullWidthNotification.d.ts +6 -0
  30. package/dist/temp/assets/scripts/notification/FullWidthNotification.js +14 -5
  31. package/dist/temp/assets/scripts/notification/MessageNotification.js +2 -1
  32. package/dist/temp/assets/scripts/notification/const/types.d.ts +10 -0
  33. package/dist/temp/assets/scripts/notification/messageTemplate.d.ts +1 -0
  34. package/dist/temp/assets/scripts/notification/messageTemplate.js +18 -8
  35. package/dist/temp/constant/notification.d.ts +15 -0
  36. package/dist/temp/constant/notification.js +15 -0
  37. package/dist/temp/src/components/forms-and-input/input-base/InputBase.js +18 -10
  38. package/dist/temp/src/components/index.d.ts +1 -0
  39. package/dist/temp/src/components/index.js +1 -0
  40. package/dist/temp/src/components/overlays/notification/FullWidthNotification.d.ts +6 -0
  41. package/dist/temp/src/components/overlays/notification/FullWidthNotification.js +3 -2
  42. package/dist/temp/src/components/overlays/notification/MessageNotification.d.ts +6 -0
  43. package/dist/temp/src/components/overlays/notification/MessageNotification.js +2 -2
  44. package/dist/temp/src/components/overlays/notification/MessageNotificationParts.d.ts +2 -1
  45. package/dist/temp/src/components/overlays/notification/MessageNotificationParts.js +3 -2
  46. package/dist/temp/src/components/overlays/notification/Notification.d.ts +8 -0
  47. package/dist/temp/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.d.ts +1 -0
  48. package/dist/temp/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +160 -0
  49. package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModal.d.ts +49 -0
  50. package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModal.js +118 -0
  51. package/dist/temp/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.d.ts +1 -0
  52. package/dist/temp/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.js +456 -0
  53. package/dist/temp/src/components/overlays/postcode-search-modal/index.d.ts +1 -0
  54. package/dist/temp/src/components/overlays/postcode-search-modal/index.js +1 -0
  55. package/dist/temp/src/generated/scoped-css.js +1 -1
  56. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +6 -0
  57. package/dist/types/assets/scripts/notification/const/types.d.ts +10 -0
  58. package/dist/types/assets/scripts/notification/messageTemplate.d.ts +1 -0
  59. package/dist/types/constant/notification.d.ts +15 -0
  60. package/dist/types/src/components/index.d.ts +1 -0
  61. package/dist/types/src/components/overlays/notification/FullWidthNotification.d.ts +6 -0
  62. package/dist/types/src/components/overlays/notification/MessageNotification.d.ts +6 -0
  63. package/dist/types/src/components/overlays/notification/MessageNotificationParts.d.ts +2 -1
  64. package/dist/types/src/components/overlays/notification/Notification.d.ts +8 -0
  65. package/dist/types/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.d.ts +1 -0
  66. package/dist/types/src/components/overlays/postcode-search-modal/PostcodeSearchModal.d.ts +49 -0
  67. package/dist/types/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.test.d.ts +1 -0
  68. package/dist/types/src/components/overlays/postcode-search-modal/index.d.ts +1 -0
  69. package/dist/ui-admin/assets/styles/style.css +188 -13
  70. package/dist/ui-admin/assets/styles/style.scoped.css +188 -13
  71. package/package.json +1 -1
@@ -9,6 +9,12 @@ export declare class FullWidthNotification {
9
9
  constructor(options: FullWidthNotificationOptions);
10
10
  private createElement;
11
11
  private buildTemplate;
12
+ /**
13
+ * 다시보지 않기 버튼.
14
+ *
15
+ * `label`은 이 함수의 반환값이 `wrapper.innerHTML`에 들어가기 전에 `sanitizeHtml`로
16
+ * 처리되므로 별도 이스케이프하지 않는다 — `renderSupportingText`와 같은 정책이다.
17
+ */
12
18
  private renderHidePermanentlyButton;
13
19
  private renderCloseButton;
14
20
  private bindEvents;
@@ -33,5 +33,15 @@ export interface BaseNotificationOptions {
33
33
  autoClose?: number;
34
34
  supportTextLink?: string;
35
35
  onHidePermanently?: () => void;
36
+ /**
37
+ * 다시보지 않기 버튼의 라벨. full-width, message 타입에서 사용 가능하며
38
+ * `onHidePermanently`를 지정했을 때만 렌더된다.
39
+ *
40
+ * 기본값은 타입별로 다르다 — message는 `'다시 보지 않기'`, full-width는 `'다시보지 않기'`.
41
+ * 표기가 통일되어 있지 않은 것은 현행 유지이며, 통일은 별도 결정 사항이다.
42
+ *
43
+ * 값은 HTML에 삽입되기 전 `sanitizeHtml`을 거친다.
44
+ */
45
+ hidePermanentlyLabel?: string;
36
46
  }
37
47
  export declare const MESSAGE_CLOSE_ICON_COLORS: Record<NotificationColor, string>;
@@ -5,6 +5,7 @@ export interface MessageTemplateParams {
5
5
  actions?: NotificationAction[];
6
6
  onClose?: () => void;
7
7
  onHidePermanently?: () => void;
8
+ hidePermanentlyLabel?: string;
8
9
  }
9
10
  /**
10
11
  * Message Notification의 마크업을 만든다.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 다시보지 않기 버튼의 타입별 기본 문구.
3
+ *
4
+ * `hidePermanentlyLabel`을 지정하지 않았을 때 쓰인다.
5
+ * React(`src/components/overlays/notification/`)와 Vanilla(`assets/scripts/notification/`)
6
+ * 두 구현이 이 상수를 함께 참조한다 — 문구가 하드코딩으로 흩어져 서로 어긋나던 문제(#460)를
7
+ * 막기 위한 단일 출처다.
8
+ *
9
+ * `message`와 `fullWidth`의 띄어쓰기가 다른 것은 오타가 아니라 현행 유지다.
10
+ * 표기 통일은 별도 결정 사항이며, 결정되면 이 파일 한 곳만 고치면 된다.
11
+ */
12
+ export declare const HIDE_PERMANENTLY_LABEL: {
13
+ readonly message: "다시 보지 않기";
14
+ readonly fullWidth: "다시보지 않기";
15
+ };
@@ -44,6 +44,7 @@ export * from './navigation/vertical-tab';
44
44
  export * from './overlays/dropdown';
45
45
  export * from './overlays/modal';
46
46
  export * from './overlays/notification';
47
+ export * from './overlays/postcode-search-modal';
47
48
  export * from './overlays/tooltip';
48
49
  export * from './select-dropdown';
49
50
  export * from './shared';
@@ -40,6 +40,12 @@ interface FullWidthNotificationProps extends Omit<ComponentPropsWithoutRef<'div'
40
40
  * 다시보지 않기 이벤트 핸들러 (선택사항)
41
41
  */
42
42
  onHidePermanently?: () => void;
43
+ /**
44
+ * 다시보지 않기 버튼의 라벨 (선택사항)
45
+ * `onHidePermanently`를 지정했을 때만 렌더된다.
46
+ * @default '다시보지 않기'
47
+ */
48
+ hidePermanentlyLabel?: ReactNode;
43
49
  }
44
50
  declare const FullWidthNotification: import("react").ForwardRefExoticComponent<FullWidthNotificationProps & import("react").RefAttributes<HTMLDivElement>>;
45
51
  export type { FullWidthNotificationProps };
@@ -35,6 +35,12 @@ interface MessageNotificationProps extends Omit<ComponentPropsWithoutRef<'div'>,
35
35
  * 다시보지 않기 이벤트 핸들러 (선택사항)
36
36
  */
37
37
  onHidePermanently?: () => void;
38
+ /**
39
+ * 다시보지 않기 버튼의 라벨 (선택사항)
40
+ * `onHidePermanently`를 지정했을 때만 렌더된다.
41
+ * @default '다시 보지 않기'
42
+ */
43
+ hidePermanentlyLabel?: ReactNode;
38
44
  }
39
45
  declare const MessageNotification: import("react").ForwardRefExoticComponent<MessageNotificationProps & import("react").RefAttributes<HTMLDivElement>>;
40
46
  export type { MessageNotificationProps };
@@ -15,6 +15,7 @@ interface MessageNotificationActionsProps {
15
15
  actions?: NotificationAction[];
16
16
  onClose?: () => void;
17
17
  onHidePermanently?: () => void;
18
+ hidePermanentlyLabel?: ReactNode;
18
19
  closeIconColor: string;
19
20
  }
20
21
  /**
@@ -22,6 +23,6 @@ interface MessageNotificationActionsProps {
22
23
  * 이 컨테이너의 gap(12px)이 두 그룹 사이 간격을 만든다.
23
24
  * 표시할 요소가 하나도 없으면 빈 컨테이너를 남기지 않는다.
24
25
  */
25
- declare const MessageNotificationActions: ({ actions, onClose, onHidePermanently, closeIconColor, }: MessageNotificationActionsProps) => import("react/jsx-runtime").JSX.Element | null;
26
+ declare const MessageNotificationActions: ({ actions, onClose, onHidePermanently, hidePermanentlyLabel, closeIconColor, }: MessageNotificationActionsProps) => import("react/jsx-runtime").JSX.Element | null;
26
27
  export type { MessageNotificationActionsProps, MessageNotificationContentProps };
27
28
  export { MessageNotificationActions, MessageNotificationContent };
@@ -68,6 +68,14 @@ interface NotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title
68
68
  * message, full-width 타입에서 사용 가능
69
69
  */
70
70
  onHidePermanently?: () => void;
71
+ /**
72
+ * 다시보지 않기 버튼의 라벨 (선택사항)
73
+ * message, full-width 타입에서 사용 가능하며 `onHidePermanently`를 지정했을 때만 렌더된다.
74
+ *
75
+ * 기본값은 타입별로 다르다 — message는 `'다시 보지 않기'`, full-width는 `'다시보지 않기'`.
76
+ * 표기가 통일되어 있지 않은 것은 현행 유지이며, 통일은 별도 결정 사항이다.
77
+ */
78
+ hidePermanentlyLabel?: ReactNode;
71
79
  /**
72
80
  * Portal 마운트 여부. `floating` 타입에서만 동작한다.
73
81
  *
@@ -0,0 +1,49 @@
1
+ /** 검색 결과 아이템 하나. */
2
+ interface PostcodeSearchResult {
3
+ /** 우편번호(5자리) */
4
+ zipCode: string;
5
+ /** 도로명주소(도로명 + 건물번호 + 참고항목 등) */
6
+ roadAddress: string;
7
+ /** 지번주소 */
8
+ jibunAddress: string;
9
+ }
10
+ /**
11
+ * 컴포넌트가 표시할 수 있는 에러코드(행정안전부 도로명주소 API 기준).
12
+ * 기획서에 직접 적힌 코드는 E0006·E0008·E0009·E0012·E0013 이고,
13
+ * E0010·E0011 은 기획서의 "E0009~E0013 통합" 범위 표기에서 채운 값이다.
14
+ */
15
+ type PostcodeSearchErrorCode = 'E0006' | 'E0008' | 'E0009' | 'E0010' | 'E0011' | 'E0012' | 'E0013';
16
+ interface PostcodeSearchModalProps {
17
+ open: boolean;
18
+ onClose: () => void;
19
+ zIndex?: number;
20
+ className?: string;
21
+ searchQuery: string;
22
+ onSearchQueryChange: (value: string) => void;
23
+ onSearch: () => void;
24
+ results: PostcodeSearchResult[];
25
+ totalCount: number;
26
+ currentPage: number;
27
+ onPageChange: (page: number) => void;
28
+ /** 페이지당 아이템 수. 기획서 기본값 15 */
29
+ pageSize?: number;
30
+ /** 검색 API 응답을 기다리는 중인지 여부. 응답 전에 "결과 없음" 이 먼저 뜨는 것을 막는다. */
31
+ loading?: boolean;
32
+ errorCode?: PostcodeSearchErrorCode;
33
+ onSelect: (result: PostcodeSearchResult) => void;
34
+ }
35
+ interface PostcodeSearchModalTipProps {
36
+ /** 압축 모드 여부. 결과 30건 초과일 때 true */
37
+ compact?: boolean;
38
+ className?: string;
39
+ }
40
+ declare const PostcodeSearchModal: {
41
+ ({ open, onClose, zIndex, className, searchQuery, onSearchQueryChange, onSearch, results, totalCount, currentPage, onPageChange, pageSize, loading, errorCode, onSelect, }: PostcodeSearchModalProps): import("react/jsx-runtime").JSX.Element;
42
+ displayName: string;
43
+ Tip: {
44
+ ({ compact, className }: PostcodeSearchModalTipProps): import("react/jsx-runtime").JSX.Element;
45
+ displayName: string;
46
+ };
47
+ };
48
+ export { PostcodeSearchModal };
49
+ export type { PostcodeSearchErrorCode, PostcodeSearchModalProps, PostcodeSearchModalTipProps, PostcodeSearchResult };
@@ -0,0 +1 @@
1
+ export * from './PostcodeSearchModal';
@@ -2246,6 +2246,192 @@ button {
2246
2246
  }
2247
2247
  }
2248
2248
 
2249
+ .ncua-modal:has(.ncua-postcode-search-modal) {
2250
+ padding-block-end: 0;
2251
+ height: 640px;
2252
+ }
2253
+ @media (max-width: 768px) {
2254
+ .ncua-modal:has(.ncua-postcode-search-modal) {
2255
+ height: 480px;
2256
+ }
2257
+ }
2258
+
2259
+ .ncua-modal__content:has(.ncua-postcode-search-modal) {
2260
+ display: flex;
2261
+ flex-direction: column;
2262
+ padding-block-end: 91px;
2263
+ }
2264
+
2265
+ .ncua-postcode-search-modal {
2266
+ display: flex;
2267
+ flex: 1;
2268
+ flex-direction: column;
2269
+ gap: var(--spacing-m);
2270
+ }
2271
+
2272
+ .ncua-postcode-search-modal__search {
2273
+ display: flex;
2274
+ align-items: flex-start;
2275
+ gap: var(--spacing-s);
2276
+ }
2277
+
2278
+ .ncua-postcode-search-modal__search-input {
2279
+ flex: 1;
2280
+ min-width: 0;
2281
+ }
2282
+
2283
+ .ncua-postcode-search-modal__search-button {
2284
+ flex-shrink: 0;
2285
+ }
2286
+
2287
+ .ncua-postcode-search-modal__count {
2288
+ color: var(--gray-700);
2289
+ font-size: var(--font-size-xs);
2290
+ font-weight: var(--font-weights-commerce-sans-2);
2291
+ line-height: var(--line-heights-xs);
2292
+ }
2293
+ .ncua-postcode-search-modal__count b {
2294
+ color: var(--primary-red-450);
2295
+ }
2296
+
2297
+ .ncua-postcode-search-modal__list {
2298
+ padding-left: 0;
2299
+ margin-bottom: 0;
2300
+ }
2301
+
2302
+ .ncua-postcode-search-modal__item {
2303
+ padding: 12px 16px;
2304
+ background-color: var(--base-white);
2305
+ border: 1px solid var(--gray-200);
2306
+ border-radius: 8px;
2307
+ }
2308
+ .ncua-postcode-search-modal__item .ncua-radio-field {
2309
+ align-items: center;
2310
+ width: 100%;
2311
+ }
2312
+ .ncua-postcode-search-modal__item .ncua-radio-field__input + span {
2313
+ flex: 1;
2314
+ }
2315
+ .ncua-postcode-search-modal__item + .ncua-postcode-search-modal__item {
2316
+ margin-block-start: 8px;
2317
+ }
2318
+ .ncua-postcode-search-modal__item:hover {
2319
+ box-shadow: var(--shadow-xs);
2320
+ background-color: var(--gray-50);
2321
+ }
2322
+ .ncua-postcode-search-modal__item:has(:checked) {
2323
+ border-color: var(--gray-400);
2324
+ }
2325
+
2326
+ .ncua-postcode-search-modal__addr-line {
2327
+ display: flex;
2328
+ align-items: flex-start;
2329
+ gap: var(--spacing-s);
2330
+ font-size: var(--font-size-xs);
2331
+ }
2332
+ .ncua-postcode-search-modal__addr-line + .ncua-postcode-search-modal__addr-line {
2333
+ margin-block-start: 8px;
2334
+ }
2335
+
2336
+ .ncua-postcode-search-modal__badge {
2337
+ padding: 1px 4px;
2338
+ width: 41px;
2339
+ height: 18px;
2340
+ border-radius: 4px;
2341
+ color: var(--gray-600);
2342
+ font-size: var(--font-size-xxs);
2343
+ line-height: var(--line-heights-xxs);
2344
+ text-align: center;
2345
+ background-color: var(--gray-100);
2346
+ }
2347
+
2348
+ .ncua-postcode-search-modal__item-road {
2349
+ flex: 1;
2350
+ word-break: break-all;
2351
+ }
2352
+
2353
+ .ncua-postcode-search-modal__item-zip {
2354
+ flex-shrink: 0;
2355
+ color: var(--gray-500);
2356
+ }
2357
+
2358
+ .ncua-postcode-search-modal__item-jibun {
2359
+ flex: 1;
2360
+ word-break: break-all;
2361
+ }
2362
+
2363
+ .ncua-postcode-search-modal__tip {
2364
+ color: var(--gray-500);
2365
+ font-size: var(--font-size-xxs);
2366
+ line-height: var(--line-heights-xxs);
2367
+ }
2368
+
2369
+ .ncua-postcode-search-modal__tip .ncua-postcode-search-modal__tip-label {
2370
+ display: flex;
2371
+ align-items: center;
2372
+ gap: var(--spacing-xs);
2373
+ margin-block-end: 12px;
2374
+ font-size: var(--font-size-xs);
2375
+ font-weight: var(--font-weights-commerce-sans-2);
2376
+ }
2377
+
2378
+ .ncua-postcode-search-modal__tip-icon {
2379
+ flex-shrink: 0;
2380
+ }
2381
+
2382
+ .ncua-postcode-search-modal__tip .ncua-postcode-search-modal__tip-title {
2383
+ margin: 0 0 4px;
2384
+ font-weight: var(--font-weights-commerce-sans-2);
2385
+ }
2386
+
2387
+ .ncua-postcode-search-modal__tip-list {
2388
+ display: flex;
2389
+ flex-direction: column;
2390
+ gap: var(--spacing-xs);
2391
+ margin: 0;
2392
+ list-style: disc;
2393
+ padding-left: 0;
2394
+ }
2395
+
2396
+ .ncua-postcode-search-modal__tip-item {
2397
+ position: relative;
2398
+ display: flex;
2399
+ flex-direction: column;
2400
+ padding-inline-start: 16px;
2401
+ }
2402
+ .ncua-postcode-search-modal__tip-item::before {
2403
+ content: "•";
2404
+ position: absolute;
2405
+ left: 0;
2406
+ }
2407
+
2408
+ .ncua-postcode-search-modal__tip-combination {
2409
+ color: var(--gray-700);
2410
+ }
2411
+
2412
+ .ncua-postcode-search-modal__tip-example {
2413
+ padding-left: var(--spacing-s);
2414
+ }
2415
+
2416
+ .ncua-postcode-search-modal__tip-compact-text {
2417
+ margin: 0;
2418
+ }
2419
+
2420
+ .ncua-postcode-search-modal__pagination {
2421
+ display: flex;
2422
+ justify-content: center;
2423
+ margin-top: auto;
2424
+ padding-top: var(--spacing-m);
2425
+ }
2426
+
2427
+ .ncua-postcode-search-modal__empty {
2428
+ display: flex;
2429
+ flex: 1;
2430
+ align-items: center;
2431
+ justify-content: center;
2432
+ padding: var(--spacing-xxl) 0;
2433
+ }
2434
+
2249
2435
  /* ------------------------------------------------------------------
2250
2436
  * Floating Notification Host
2251
2437
  *
@@ -2759,9 +2945,6 @@ button {
2759
2945
  .ncua-message-notification--neutral .ncua-notification__action-button--text, .ncua-message-notification--neutral .ncua-notification__action-button--text-gray {
2760
2946
  color: var(--gray-600);
2761
2947
  }
2762
- .ncua-message-notification--neutral .ncua-message-notification__hide-link {
2763
- color: var(--gray-500);
2764
- }
2765
2948
  .ncua-message-notification--error {
2766
2949
  color: var(--primary-red-600);
2767
2950
  background-color: var(--primary-red-50);
@@ -2781,9 +2964,6 @@ button {
2781
2964
  .ncua-message-notification--error .ncua-notification__action-button--text, .ncua-message-notification--error .ncua-notification__action-button--text-gray {
2782
2965
  color: var(--primary-red-600);
2783
2966
  }
2784
- .ncua-message-notification--error .ncua-message-notification__hide-link {
2785
- color: var(--gray-500);
2786
- }
2787
2967
  .ncua-message-notification--warning {
2788
2968
  color: var(--orange-600);
2789
2969
  background-color: var(--orange-50);
@@ -2803,9 +2983,6 @@ button {
2803
2983
  .ncua-message-notification--warning .ncua-notification__action-button--text, .ncua-message-notification--warning .ncua-notification__action-button--text-gray {
2804
2984
  color: var(--orange-600);
2805
2985
  }
2806
- .ncua-message-notification--warning .ncua-message-notification__hide-link {
2807
- color: var(--gray-500);
2808
- }
2809
2986
  .ncua-message-notification--success {
2810
2987
  color: var(--green-600);
2811
2988
  background-color: var(--green-50);
@@ -2825,9 +3002,6 @@ button {
2825
3002
  .ncua-message-notification--success .ncua-notification__action-button--text, .ncua-message-notification--success .ncua-notification__action-button--text-gray {
2826
3003
  color: var(--green-600);
2827
3004
  }
2828
- .ncua-message-notification--success .ncua-message-notification__hide-link {
2829
- color: var(--gray-500);
2830
- }
2831
3005
  .ncua-message-notification .ncua-notification__action-button {
2832
3006
  background: transparent;
2833
3007
  border: none;
@@ -2840,7 +3014,8 @@ button {
2840
3014
  .ncua-message-notification .ncua-notification__action-button--text, .ncua-message-notification .ncua-notification__action-button--text-gray {
2841
3015
  font-weight: var(--font-weights-commerce-sans-1);
2842
3016
  }
2843
- .ncua-message-notification__hide-link.ncua-notification__action-button {
3017
+ .ncua-message-notification .ncua-message-notification__hide-link.ncua-notification__action-button {
3018
+ color: var(--gray-500);
2844
3019
  font-weight: var(--font-weights-commerce-sans-1);
2845
3020
  }
2846
3021
 
@@ -2238,6 +2238,192 @@
2238
2238
  }
2239
2239
  }
2240
2240
 
2241
+ .ncua-modal:has(.ncua-postcode-search-modal) {
2242
+ padding-block-end: 0;
2243
+ height: 640px;
2244
+ }
2245
+ @media (max-width: 768px) {
2246
+ .ncua-modal:has(.ncua-postcode-search-modal) {
2247
+ height: 480px;
2248
+ }
2249
+ }
2250
+
2251
+ .ncua-modal__content:has(.ncua-postcode-search-modal) {
2252
+ display: flex;
2253
+ flex-direction: column;
2254
+ padding-block-end: 91px;
2255
+ }
2256
+
2257
+ .ncua-postcode-search-modal {
2258
+ display: flex;
2259
+ flex: 1;
2260
+ flex-direction: column;
2261
+ gap: var(--spacing-m);
2262
+ }
2263
+
2264
+ .ncua-postcode-search-modal__search {
2265
+ display: flex;
2266
+ align-items: flex-start;
2267
+ gap: var(--spacing-s);
2268
+ }
2269
+
2270
+ .ncua-postcode-search-modal__search-input {
2271
+ flex: 1;
2272
+ min-width: 0;
2273
+ }
2274
+
2275
+ .ncua-postcode-search-modal__search-button {
2276
+ flex-shrink: 0;
2277
+ }
2278
+
2279
+ .ncua-postcode-search-modal__count {
2280
+ color: var(--gray-700);
2281
+ font-size: var(--font-size-xs);
2282
+ font-weight: var(--font-weights-commerce-sans-2);
2283
+ line-height: var(--line-heights-xs);
2284
+ }
2285
+ .ncua-postcode-search-modal__count b {
2286
+ color: var(--primary-red-450);
2287
+ }
2288
+
2289
+ .ncua-postcode-search-modal__list {
2290
+ padding-left: 0;
2291
+ margin-bottom: 0;
2292
+ }
2293
+
2294
+ .ncua-postcode-search-modal__item {
2295
+ padding: 12px 16px;
2296
+ background-color: var(--base-white);
2297
+ border: 1px solid var(--gray-200);
2298
+ border-radius: 8px;
2299
+ }
2300
+ .ncua-postcode-search-modal__item .ncua-radio-field {
2301
+ align-items: center;
2302
+ width: 100%;
2303
+ }
2304
+ .ncua-postcode-search-modal__item .ncua-radio-field__input + span {
2305
+ flex: 1;
2306
+ }
2307
+ .ncua-postcode-search-modal__item + .ncua-postcode-search-modal__item {
2308
+ margin-block-start: 8px;
2309
+ }
2310
+ .ncua-postcode-search-modal__item:hover {
2311
+ box-shadow: var(--shadow-xs);
2312
+ background-color: var(--gray-50);
2313
+ }
2314
+ .ncua-postcode-search-modal__item:has(:checked) {
2315
+ border-color: var(--gray-400);
2316
+ }
2317
+
2318
+ .ncua-postcode-search-modal__addr-line {
2319
+ display: flex;
2320
+ align-items: flex-start;
2321
+ gap: var(--spacing-s);
2322
+ font-size: var(--font-size-xs);
2323
+ }
2324
+ .ncua-postcode-search-modal__addr-line + .ncua-postcode-search-modal__addr-line {
2325
+ margin-block-start: 8px;
2326
+ }
2327
+
2328
+ .ncua-postcode-search-modal__badge {
2329
+ padding: 1px 4px;
2330
+ width: 41px;
2331
+ height: 18px;
2332
+ border-radius: 4px;
2333
+ color: var(--gray-600);
2334
+ font-size: var(--font-size-xxs);
2335
+ line-height: var(--line-heights-xxs);
2336
+ text-align: center;
2337
+ background-color: var(--gray-100);
2338
+ }
2339
+
2340
+ .ncua-postcode-search-modal__item-road {
2341
+ flex: 1;
2342
+ word-break: break-all;
2343
+ }
2344
+
2345
+ .ncua-postcode-search-modal__item-zip {
2346
+ flex-shrink: 0;
2347
+ color: var(--gray-500);
2348
+ }
2349
+
2350
+ .ncua-postcode-search-modal__item-jibun {
2351
+ flex: 1;
2352
+ word-break: break-all;
2353
+ }
2354
+
2355
+ .ncua-postcode-search-modal__tip {
2356
+ color: var(--gray-500);
2357
+ font-size: var(--font-size-xxs);
2358
+ line-height: var(--line-heights-xxs);
2359
+ }
2360
+
2361
+ .ncua-postcode-search-modal__tip .ncua-postcode-search-modal__tip-label {
2362
+ display: flex;
2363
+ align-items: center;
2364
+ gap: var(--spacing-xs);
2365
+ margin-block-end: 12px;
2366
+ font-size: var(--font-size-xs);
2367
+ font-weight: var(--font-weights-commerce-sans-2);
2368
+ }
2369
+
2370
+ .ncua-postcode-search-modal__tip-icon {
2371
+ flex-shrink: 0;
2372
+ }
2373
+
2374
+ .ncua-postcode-search-modal__tip .ncua-postcode-search-modal__tip-title {
2375
+ margin: 0 0 4px;
2376
+ font-weight: var(--font-weights-commerce-sans-2);
2377
+ }
2378
+
2379
+ .ncua-postcode-search-modal__tip-list {
2380
+ display: flex;
2381
+ flex-direction: column;
2382
+ gap: var(--spacing-xs);
2383
+ margin: 0;
2384
+ list-style: disc;
2385
+ padding-left: 0;
2386
+ }
2387
+
2388
+ .ncua-postcode-search-modal__tip-item {
2389
+ position: relative;
2390
+ display: flex;
2391
+ flex-direction: column;
2392
+ padding-inline-start: 16px;
2393
+ }
2394
+ .ncua-postcode-search-modal__tip-item::before {
2395
+ content: "•";
2396
+ position: absolute;
2397
+ left: 0;
2398
+ }
2399
+
2400
+ .ncua-postcode-search-modal__tip-combination {
2401
+ color: var(--gray-700);
2402
+ }
2403
+
2404
+ .ncua-postcode-search-modal__tip-example {
2405
+ padding-left: var(--spacing-s);
2406
+ }
2407
+
2408
+ .ncua-postcode-search-modal__tip-compact-text {
2409
+ margin: 0;
2410
+ }
2411
+
2412
+ .ncua-postcode-search-modal__pagination {
2413
+ display: flex;
2414
+ justify-content: center;
2415
+ margin-top: auto;
2416
+ padding-top: var(--spacing-m);
2417
+ }
2418
+
2419
+ .ncua-postcode-search-modal__empty {
2420
+ display: flex;
2421
+ flex: 1;
2422
+ align-items: center;
2423
+ justify-content: center;
2424
+ padding: var(--spacing-xxl) 0;
2425
+ }
2426
+
2241
2427
  /* ------------------------------------------------------------------
2242
2428
  * Floating Notification Host
2243
2429
  *
@@ -2751,9 +2937,6 @@
2751
2937
  .ncua-message-notification--neutral .ncua-notification__action-button--text, .ncua-message-notification--neutral .ncua-notification__action-button--text-gray {
2752
2938
  color: var(--gray-600);
2753
2939
  }
2754
- .ncua-message-notification--neutral .ncua-message-notification__hide-link {
2755
- color: var(--gray-500);
2756
- }
2757
2940
  .ncua-message-notification--error {
2758
2941
  color: var(--primary-red-600);
2759
2942
  background-color: var(--primary-red-50);
@@ -2773,9 +2956,6 @@
2773
2956
  .ncua-message-notification--error .ncua-notification__action-button--text, .ncua-message-notification--error .ncua-notification__action-button--text-gray {
2774
2957
  color: var(--primary-red-600);
2775
2958
  }
2776
- .ncua-message-notification--error .ncua-message-notification__hide-link {
2777
- color: var(--gray-500);
2778
- }
2779
2959
  .ncua-message-notification--warning {
2780
2960
  color: var(--orange-600);
2781
2961
  background-color: var(--orange-50);
@@ -2795,9 +2975,6 @@
2795
2975
  .ncua-message-notification--warning .ncua-notification__action-button--text, .ncua-message-notification--warning .ncua-notification__action-button--text-gray {
2796
2976
  color: var(--orange-600);
2797
2977
  }
2798
- .ncua-message-notification--warning .ncua-message-notification__hide-link {
2799
- color: var(--gray-500);
2800
- }
2801
2978
  .ncua-message-notification--success {
2802
2979
  color: var(--green-600);
2803
2980
  background-color: var(--green-50);
@@ -2817,9 +2994,6 @@
2817
2994
  .ncua-message-notification--success .ncua-notification__action-button--text, .ncua-message-notification--success .ncua-notification__action-button--text-gray {
2818
2995
  color: var(--green-600);
2819
2996
  }
2820
- .ncua-message-notification--success .ncua-message-notification__hide-link {
2821
- color: var(--gray-500);
2822
- }
2823
2997
  .ncua-message-notification .ncua-notification__action-button {
2824
2998
  background: transparent;
2825
2999
  border: none;
@@ -2832,7 +3006,8 @@
2832
3006
  .ncua-message-notification .ncua-notification__action-button--text, .ncua-message-notification .ncua-notification__action-button--text-gray {
2833
3007
  font-weight: var(--font-weights-commerce-sans-1);
2834
3008
  }
2835
- .ncua-message-notification__hide-link.ncua-notification__action-button {
3009
+ .ncua-message-notification .ncua-message-notification__hide-link.ncua-notification__action-button {
3010
+ color: var(--gray-500);
2836
3011
  font-weight: var(--font-weights-commerce-sans-1);
2837
3012
  }
2838
3013
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncds/ui-admin",
3
- "version": "1.8.21-alpha.5",
3
+ "version": "1.8.21-alpha.7",
4
4
  "description": "nhn-commerce의 어드민 디자인 시스템입니다.",
5
5
  "scripts": {
6
6
  "barrel": "node barrel.js",