@ncds/ui-admin 1.8.21-alpha.4 → 1.8.21-alpha.6

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 (75) hide show
  1. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +17 -6
  2. package/dist/cjs/assets/scripts/notification/MessageNotification.js +10 -48
  3. package/dist/cjs/assets/scripts/notification/const/classNames.js +3 -0
  4. package/dist/cjs/assets/scripts/notification/const/index.js +1 -1
  5. package/dist/cjs/assets/scripts/notification/const/sizes.js +4 -2
  6. package/dist/cjs/assets/scripts/notification/messageTemplate.js +106 -0
  7. package/dist/cjs/assets/scripts/notification/utils.js +40 -4
  8. package/dist/cjs/constant/notification.js +21 -0
  9. package/dist/cjs/src/components/overlays/notification/FullWidthNotification.js +3 -1
  10. package/dist/cjs/src/components/overlays/notification/MessageNotification.js +14 -54
  11. package/dist/cjs/src/components/overlays/notification/MessageNotificationParts.js +92 -0
  12. package/dist/cjs/src/components/overlays/notification/__tests__/MessageNotification.test.js +246 -0
  13. package/dist/cjs/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +209 -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 +12 -50
  17. package/dist/esm/assets/scripts/notification/const/classNames.js +3 -0
  18. package/dist/esm/assets/scripts/notification/const/index.js +3 -2
  19. package/dist/esm/assets/scripts/notification/const/sizes.js +4 -2
  20. package/dist/esm/assets/scripts/notification/messageTemplate.js +100 -0
  21. package/dist/esm/assets/scripts/notification/utils.js +39 -4
  22. package/dist/esm/constant/notification.js +15 -0
  23. package/dist/esm/src/components/overlays/notification/FullWidthNotification.js +3 -1
  24. package/dist/esm/src/components/overlays/notification/MessageNotification.js +15 -55
  25. package/dist/esm/src/components/overlays/notification/MessageNotificationParts.js +85 -0
  26. package/dist/esm/src/components/overlays/notification/__tests__/MessageNotification.test.js +243 -0
  27. package/dist/esm/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +206 -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.d.ts +0 -3
  32. package/dist/temp/assets/scripts/notification/MessageNotification.js +9 -44
  33. package/dist/temp/assets/scripts/notification/const/classNames.d.ts +1 -0
  34. package/dist/temp/assets/scripts/notification/const/classNames.js +3 -0
  35. package/dist/temp/assets/scripts/notification/const/index.d.ts +3 -3
  36. package/dist/temp/assets/scripts/notification/const/index.js +3 -2
  37. package/dist/temp/assets/scripts/notification/const/sizes.d.ts +2 -2
  38. package/dist/temp/assets/scripts/notification/const/sizes.js +4 -2
  39. package/dist/temp/assets/scripts/notification/const/types.d.ts +30 -2
  40. package/dist/temp/assets/scripts/notification/messageTemplate.d.ts +15 -0
  41. package/dist/temp/assets/scripts/notification/messageTemplate.js +79 -0
  42. package/dist/temp/assets/scripts/notification/utils.d.ts +19 -2
  43. package/dist/temp/assets/scripts/notification/utils.js +39 -5
  44. package/dist/temp/constant/notification.d.ts +15 -0
  45. package/dist/temp/constant/notification.js +15 -0
  46. package/dist/temp/src/components/overlays/notification/FullWidthNotification.d.ts +6 -0
  47. package/dist/temp/src/components/overlays/notification/FullWidthNotification.js +3 -2
  48. package/dist/temp/src/components/overlays/notification/MessageNotification.d.ts +6 -0
  49. package/dist/temp/src/components/overlays/notification/MessageNotification.js +4 -13
  50. package/dist/temp/src/components/overlays/notification/MessageNotificationParts.d.ts +28 -0
  51. package/dist/temp/src/components/overlays/notification/MessageNotificationParts.js +28 -0
  52. package/dist/temp/src/components/overlays/notification/Notification.d.ts +11 -2
  53. package/dist/temp/src/components/overlays/notification/__tests__/MessageNotification.test.d.ts +1 -0
  54. package/dist/temp/src/components/overlays/notification/__tests__/MessageNotification.test.js +190 -0
  55. package/dist/temp/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.d.ts +1 -0
  56. package/dist/temp/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.js +160 -0
  57. package/dist/temp/src/generated/scoped-css.js +1 -1
  58. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +6 -0
  59. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +0 -3
  60. package/dist/types/assets/scripts/notification/const/classNames.d.ts +1 -0
  61. package/dist/types/assets/scripts/notification/const/index.d.ts +3 -3
  62. package/dist/types/assets/scripts/notification/const/sizes.d.ts +2 -2
  63. package/dist/types/assets/scripts/notification/const/types.d.ts +30 -2
  64. package/dist/types/assets/scripts/notification/messageTemplate.d.ts +15 -0
  65. package/dist/types/assets/scripts/notification/utils.d.ts +19 -2
  66. package/dist/types/constant/notification.d.ts +15 -0
  67. package/dist/types/src/components/overlays/notification/FullWidthNotification.d.ts +6 -0
  68. package/dist/types/src/components/overlays/notification/MessageNotification.d.ts +6 -0
  69. package/dist/types/src/components/overlays/notification/MessageNotificationParts.d.ts +28 -0
  70. package/dist/types/src/components/overlays/notification/Notification.d.ts +11 -2
  71. package/dist/types/src/components/overlays/notification/__tests__/MessageNotification.test.d.ts +1 -0
  72. package/dist/types/src/components/overlays/notification/__tests__/hidePermanentlyLabel.test.d.ts +1 -0
  73. package/dist/ui-admin/assets/styles/style.css +21 -33
  74. package/dist/ui-admin/assets/styles/style.scoped.css +21 -33
  75. 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;
@@ -9,9 +9,6 @@ export declare class MessageNotification {
9
9
  private featuredIcon?;
10
10
  constructor(options: MessageNotificationOptions);
11
11
  private createElement;
12
- private buildTemplate;
13
- private renderHidePermanentlyButton;
14
- private renderCloseButton;
15
12
  private bindEvents;
16
13
  private setupAutoClose;
17
14
  getElement(): HTMLElement;
@@ -34,6 +34,7 @@ export declare const CLASS_NAMES: {
34
34
  readonly SUPPORTING_TEXT: "ncua-message-notification__supporting-text";
35
35
  readonly ACTIONS_CONTAINER: "ncua-message-notification__actions-container";
36
36
  readonly ACTIONS: "ncua-message-notification__actions";
37
+ readonly FOOTER_CONTAINER: "ncua-message-notification__footer-container";
37
38
  readonly HIDE_LINK: "ncua-message-notification__hide-link";
38
39
  readonly CLOSE_BUTTON: "ncua-message-notification__close-button";
39
40
  };
@@ -1,5 +1,5 @@
1
- export type { NotificationColor, NotificationHierarchy, NotificationAction, BaseNotificationOptions } from './types';
2
- export { SVG_ICONS, FLOATING_ICON_MAP, FULL_WIDTH_ICON_MAP, ICON_MAP } from './icons';
3
1
  export { CLASS_NAMES } from './classNames';
4
- export { FEATURED_ICON_SIZES, ICON_PIXEL_SIZES, CLOSE_BUTTON_SIZES, CLOSE_BUTTON_SVG_SIZES, FULL_WIDTH_SIZES, MESSAGE_SIZES, getSizes, } from './sizes';
2
+ export { FLOATING_ICON_MAP, FULL_WIDTH_ICON_MAP, ICON_MAP, SVG_ICONS } from './icons';
3
+ export { CLOSE_BUTTON_SIZES, CLOSE_BUTTON_SVG_SIZES, FEATURED_ICON_SIZES, FULL_WIDTH_SIZES, getSizes, ICON_PIXEL_SIZES, MESSAGE_SIZES, } from './sizes';
4
+ export type { BaseNotificationOptions, LegacyNotificationHierarchy, NotificationAction, NotificationActionButtonSize, NotificationColor, NotificationHierarchy, } from './types';
5
5
  export { MESSAGE_CLOSE_ICON_COLORS } from './types';
@@ -20,8 +20,8 @@ export declare const FULL_WIDTH_SIZES: {
20
20
  readonly CLOSE_BUTTON: "20";
21
21
  };
22
22
  export declare const MESSAGE_SIZES: {
23
- readonly FEATURED_ICON: "lg";
24
- readonly ICON_PIXEL: "24";
23
+ readonly FEATURED_ICON: "md";
24
+ readonly ICON_PIXEL: "20";
25
25
  readonly CLOSE_BUTTON: "20";
26
26
  };
27
27
  export declare const getSizes: {
@@ -1,9 +1,27 @@
1
1
  export type NotificationColor = 'neutral' | 'error' | 'warning' | 'success' | 'info';
2
- export type NotificationHierarchy = 'link' | 'link-gray';
2
+ /**
3
+ * 알림 액션 버튼(`ncua-btn`)의 색상 수식자.
4
+ * React `NotificationAction.hierarchy`와 동일한 어휘를 쓴다 — `ButtonTheme`의 부분집합이다.
5
+ */
6
+ export type NotificationHierarchy = 'secondary' | 'secondary-gray' | 'text' | 'text-gray';
7
+ /**
8
+ * Link 컴포넌트 색상 이름을 빌려 쓰던 구 어휘.
9
+ *
10
+ * @deprecated {@link NotificationHierarchy}를 사용한다.
11
+ * `'link'` → `'text'`, `'link-gray'` → `'text-gray'`로 런타임 매핑되므로 기존 CDN 사용처는
12
+ * 그대로 동작하지만, `'link'`는 대응하는 CSS가 존재한 적이 없다.
13
+ */
14
+ export type LegacyNotificationHierarchy = 'link' | 'link-gray';
15
+ /** 알림 액션 버튼(`ncua-btn`)의 사이즈 수식자. */
16
+ export type NotificationActionButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
17
  export interface NotificationAction {
4
18
  label: string;
5
19
  onClick: () => void;
6
- hierarchy?: NotificationHierarchy;
20
+ /**
21
+ * 액션 버튼 색상. 지정하지 않으면 `'text'`로 렌더된다.
22
+ * 구 어휘({@link LegacyNotificationHierarchy})도 하위호환을 위해 받는다.
23
+ */
24
+ hierarchy?: NotificationHierarchy | LegacyNotificationHierarchy;
7
25
  }
8
26
  export interface BaseNotificationOptions {
9
27
  title: string;
@@ -15,5 +33,15 @@ export interface BaseNotificationOptions {
15
33
  autoClose?: number;
16
34
  supportTextLink?: string;
17
35
  onHidePermanently?: () => void;
36
+ /**
37
+ * 다시보지 않기 버튼의 라벨. full-width, message 타입에서 사용 가능하며
38
+ * `onHidePermanently`를 지정했을 때만 렌더된다.
39
+ *
40
+ * 기본값은 타입별로 다르다 — message는 `'다시 보지 않기'`, full-width는 `'다시보지 않기'`.
41
+ * 표기가 통일되어 있지 않은 것은 현행 유지이며, 통일은 별도 결정 사항이다.
42
+ *
43
+ * 값은 HTML에 삽입되기 전 `sanitizeHtml`을 거친다.
44
+ */
45
+ hidePermanentlyLabel?: string;
18
46
  }
19
47
  export declare const MESSAGE_CLOSE_ICON_COLORS: Record<NotificationColor, string>;
@@ -0,0 +1,15 @@
1
+ import type { NotificationAction } from './const';
2
+ export interface MessageTemplateParams {
3
+ title: string;
4
+ supportingText?: string;
5
+ actions?: NotificationAction[];
6
+ onClose?: () => void;
7
+ onHidePermanently?: () => void;
8
+ hidePermanentlyLabel?: string;
9
+ }
10
+ /**
11
+ * Message Notification의 마크업을 만든다.
12
+ * React 구현(`src/components/overlays/notification/MessageNotification.tsx`)과
13
+ * 동일한 클래스 트리를 산출해야 한다 — SCSS 한 벌을 두 구현이 공유한다.
14
+ */
15
+ export declare function buildMessageTemplate(params: MessageTemplateParams): string;
@@ -1,8 +1,25 @@
1
- import type { NotificationAction, NotificationColor } from './const';
1
+ import type { LegacyNotificationHierarchy, NotificationAction, NotificationActionButtonSize, NotificationColor, NotificationHierarchy } from './const';
2
2
  export declare function createWrapperElement(baseClass: string, color: NotificationColor, className?: string): HTMLElement;
3
3
  export declare function buildClassName(baseClass: string, color: NotificationColor, className?: string): string;
4
4
  export declare function renderSupportingText(supportingText?: string, className?: string, supportTextLink?: string): string;
5
- export declare function renderActions(actions: NotificationAction[], wrapperClass: string): string;
5
+ /**
6
+ * 액션 버튼의 색상 수식자를 현행 어휘로 정규화한다.
7
+ *
8
+ * 구 어휘(`'link'` / `'link-gray'`)는 Link 컴포넌트의 색상 이름을 빌려 쓴 것이라
9
+ * `ncua-btn--link`에 대응하는 CSS가 존재하지 않았다. 기존 CDN 사용처를 깨지 않기 위해
10
+ * 타입에서 제거하는 대신 이 지점에서 실제 Button 테마로 매핑한다.
11
+ *
12
+ * 렌더(`renderActions`)와 이벤트 바인딩(`bindNotificationEvents`)이 이 함수를 함께 써야
13
+ * `data-action` 키가 어긋나지 않는다.
14
+ */
15
+ export declare function resolveActionHierarchy(hierarchy?: NotificationHierarchy | LegacyNotificationHierarchy): NotificationHierarchy;
16
+ /**
17
+ * 액션 버튼 그룹 HTML을 만든다.
18
+ *
19
+ * `size` 기본값 'sm'은 floating / full-width 타입의 기존 렌더링을 그대로 보존하기 위한 것이다.
20
+ * message 타입만 TO-BE 규격(28px)에 맞춰 'xs'를 넘긴다 — React `<Button size="xs">`와 동일.
21
+ */
22
+ export declare function renderActions(actions: NotificationAction[], wrapperClass: string, size?: NotificationActionButtonSize): string;
6
23
  export declare function bindNotificationEvents(element: HTMLElement, actions: NotificationAction[], onClose?: () => void, onRemove?: () => void): void;
7
24
  export declare function setupAutoClose(autoClose: number, onClose?: () => void, onRemove?: () => void): number | undefined;
8
25
  export declare const isMobile: () => boolean;
@@ -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
+ };
@@ -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 };
@@ -0,0 +1,28 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { SlotIconComponent } from '../../../types/side-slot';
3
+ import { type FeaturedIconColor } from '../../image-and-icons/featured-icon/FeaturedIcon';
4
+ import type { NotificationAction } from './Notification';
5
+ interface MessageNotificationContentProps {
6
+ title: ReactNode;
7
+ supportingText?: ReactNode;
8
+ icon?: SlotIconComponent;
9
+ iconColor: FeaturedIconColor;
10
+ showIcon: boolean;
11
+ }
12
+ /** 아이콘 + 제목/서포팅 텍스트 영역. */
13
+ declare const MessageNotificationContent: ({ title, supportingText, icon, iconColor, showIcon, }: MessageNotificationContentProps) => import("react/jsx-runtime").JSX.Element;
14
+ interface MessageNotificationActionsProps {
15
+ actions?: NotificationAction[];
16
+ onClose?: () => void;
17
+ onHidePermanently?: () => void;
18
+ hidePermanentlyLabel?: ReactNode;
19
+ closeIconColor: string;
20
+ }
21
+ /**
22
+ * 액션 버튼 그룹 + 닫기 그룹을 감싸는 우측 영역.
23
+ * 이 컨테이너의 gap(12px)이 두 그룹 사이 간격을 만든다.
24
+ * 표시할 요소가 하나도 없으면 빈 컨테이너를 남기지 않는다.
25
+ */
26
+ declare const MessageNotificationActions: ({ actions, onClose, onHidePermanently, hidePermanentlyLabel, closeIconColor, }: MessageNotificationActionsProps) => import("react/jsx-runtime").JSX.Element | null;
27
+ export type { MessageNotificationActionsProps, MessageNotificationContentProps };
28
+ export { MessageNotificationActions, MessageNotificationContent };
@@ -16,9 +16,10 @@ interface NotificationAction {
16
16
  */
17
17
  onClick?: () => void;
18
18
  /**
19
- * 액션 버튼 색상 (3가지만 지원)
19
+ * 액션 버튼 색상. `ButtonTheme` 중 알림에서 허용하는 4가지만 지원한다.
20
+ * @default 'text'
20
21
  */
21
- hierarchy?: Extract<ButtonTheme, 'text' | 'text-gray'>;
22
+ hierarchy?: Extract<ButtonTheme, 'secondary' | 'secondary-gray' | 'text' | 'text-gray'>;
22
23
  }
23
24
  interface NotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {
24
25
  /**
@@ -67,6 +68,14 @@ interface NotificationProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title
67
68
  * message, full-width 타입에서 사용 가능
68
69
  */
69
70
  onHidePermanently?: () => void;
71
+ /**
72
+ * 다시보지 않기 버튼의 라벨 (선택사항)
73
+ * message, full-width 타입에서 사용 가능하며 `onHidePermanently`를 지정했을 때만 렌더된다.
74
+ *
75
+ * 기본값은 타입별로 다르다 — message는 `'다시 보지 않기'`, full-width는 `'다시보지 않기'`.
76
+ * 표기가 통일되어 있지 않은 것은 현행 유지이며, 통일은 별도 결정 사항이다.
77
+ */
78
+ hidePermanentlyLabel?: ReactNode;
70
79
  /**
71
80
  * Portal 마운트 여부. `floating` 타입에서만 동작한다.
72
81
  *
@@ -2652,11 +2652,11 @@ button {
2652
2652
  align-items: center;
2653
2653
  flex-direction: column;
2654
2654
  width: 100%;
2655
- padding: 16px 24px;
2655
+ padding: 12px 16px 12px 24px;
2656
2656
  }
2657
2657
  @media (max-width: 768px) {
2658
2658
  .ncua-message-notification__container {
2659
- padding: 16px;
2659
+ padding: 12px 8px 12px 16px;
2660
2660
  }
2661
2661
  }
2662
2662
  .ncua-message-notification__content {
@@ -2690,20 +2690,21 @@ button {
2690
2690
  min-width: 0;
2691
2691
  }
2692
2692
  .ncua-message-notification__title {
2693
- font-size: var(--font-size-md);
2694
- line-height: var(--line-heights-md);
2693
+ font-size: var(--font-size-sm);
2694
+ line-height: var(--line-heights-sm);
2695
2695
  font-weight: var(--font-weights-commerce-sans-2);
2696
2696
  }
2697
2697
  .ncua-message-notification__supporting-text {
2698
- font-size: var(--font-size-sm);
2699
- line-height: var(--line-heights-sm);
2698
+ font-size: var(--font-size-xs);
2699
+ line-height: var(--line-heights-xs);
2700
2700
  font-weight: var(--font-weights-commerce-sans-0);
2701
2701
  }
2702
2702
  .ncua-message-notification__actions-container {
2703
2703
  display: flex;
2704
2704
  align-items: center;
2705
- gap: 8px;
2705
+ gap: 12px;
2706
2706
  flex-shrink: 0;
2707
+ flex-wrap: wrap;
2707
2708
  }
2708
2709
  @media (max-width: 768px) {
2709
2710
  .ncua-message-notification__actions-container {
@@ -2727,7 +2728,6 @@ button {
2727
2728
  cursor: pointer;
2728
2729
  font-size: var(--font-size-xs);
2729
2730
  line-height: var(--line-heights-xs);
2730
- font-weight: var(--font-weights-commerce-sans-0);
2731
2731
  }
2732
2732
  .ncua-message-notification__close-button {
2733
2733
  display: flex;
@@ -2736,23 +2736,22 @@ button {
2736
2736
  background: transparent;
2737
2737
  border: none;
2738
2738
  cursor: pointer;
2739
- border-radius: 8px;
2739
+ border-radius: 6px;
2740
2740
  padding: 8px;
2741
2741
  flex-shrink: 0;
2742
2742
  }
2743
2743
  .ncua-message-notification--neutral {
2744
2744
  color: var(--gray-600);
2745
2745
  background-color: var(--gray-50);
2746
- border-radius: 8px;
2746
+ border-radius: 12px;
2747
2747
  border: 1px solid var(--gray-300);
2748
- box-shadow: var(--shadow-lg);
2748
+ box-shadow: var(--shadow-md);
2749
2749
  }
2750
2750
  .ncua-message-notification--neutral .ncua-message-notification__title {
2751
2751
  color: var(--gray-600);
2752
2752
  }
2753
2753
  .ncua-message-notification--neutral .ncua-message-notification__supporting-text {
2754
2754
  color: var(--gray-500);
2755
- opacity: 0.8;
2756
2755
  }
2757
2756
  .ncua-message-notification--neutral .ncua-notification__action-button {
2758
2757
  color: var(--gray-500);
@@ -2760,22 +2759,18 @@ button {
2760
2759
  .ncua-message-notification--neutral .ncua-notification__action-button--text, .ncua-message-notification--neutral .ncua-notification__action-button--text-gray {
2761
2760
  color: var(--gray-600);
2762
2761
  }
2763
- .ncua-message-notification--neutral .ncua-message-notification__hide-link {
2764
- color: var(--gray-500);
2765
- }
2766
2762
  .ncua-message-notification--error {
2767
2763
  color: var(--primary-red-600);
2768
2764
  background-color: var(--primary-red-50);
2769
- border-radius: 8px;
2765
+ border-radius: 12px;
2770
2766
  border: 1px solid var(--primary-red-300);
2771
- box-shadow: var(--shadow-lg);
2767
+ box-shadow: var(--shadow-md);
2772
2768
  }
2773
2769
  .ncua-message-notification--error .ncua-message-notification__title {
2774
2770
  color: var(--primary-red-600);
2775
2771
  }
2776
2772
  .ncua-message-notification--error .ncua-message-notification__supporting-text {
2777
2773
  color: var(--gray-500);
2778
- opacity: 0.8;
2779
2774
  }
2780
2775
  .ncua-message-notification--error .ncua-notification__action-button {
2781
2776
  color: var(--primary-red-500);
@@ -2783,22 +2778,18 @@ button {
2783
2778
  .ncua-message-notification--error .ncua-notification__action-button--text, .ncua-message-notification--error .ncua-notification__action-button--text-gray {
2784
2779
  color: var(--primary-red-600);
2785
2780
  }
2786
- .ncua-message-notification--error .ncua-message-notification__hide-link {
2787
- color: var(--gray-500);
2788
- }
2789
2781
  .ncua-message-notification--warning {
2790
2782
  color: var(--orange-600);
2791
2783
  background-color: var(--orange-50);
2792
- border-radius: 8px;
2784
+ border-radius: 12px;
2793
2785
  border: 1px solid var(--orange-300);
2794
- box-shadow: var(--shadow-lg);
2786
+ box-shadow: var(--shadow-md);
2795
2787
  }
2796
2788
  .ncua-message-notification--warning .ncua-message-notification__title {
2797
2789
  color: var(--orange-600);
2798
2790
  }
2799
2791
  .ncua-message-notification--warning .ncua-message-notification__supporting-text {
2800
2792
  color: var(--gray-500);
2801
- opacity: 0.8;
2802
2793
  }
2803
2794
  .ncua-message-notification--warning .ncua-notification__action-button {
2804
2795
  color: var(--orange-500);
@@ -2806,22 +2797,18 @@ button {
2806
2797
  .ncua-message-notification--warning .ncua-notification__action-button--text, .ncua-message-notification--warning .ncua-notification__action-button--text-gray {
2807
2798
  color: var(--orange-600);
2808
2799
  }
2809
- .ncua-message-notification--warning .ncua-message-notification__hide-link {
2810
- color: var(--gray-500);
2811
- }
2812
2800
  .ncua-message-notification--success {
2813
2801
  color: var(--green-600);
2814
2802
  background-color: var(--green-50);
2815
- border-radius: 8px;
2803
+ border-radius: 12px;
2816
2804
  border: 1px solid var(--green-300);
2817
- box-shadow: var(--shadow-lg);
2805
+ box-shadow: var(--shadow-md);
2818
2806
  }
2819
2807
  .ncua-message-notification--success .ncua-message-notification__title {
2820
2808
  color: var(--green-600);
2821
2809
  }
2822
2810
  .ncua-message-notification--success .ncua-message-notification__supporting-text {
2823
2811
  color: var(--gray-500);
2824
- opacity: 0.8;
2825
2812
  }
2826
2813
  .ncua-message-notification--success .ncua-notification__action-button {
2827
2814
  color: var(--green-500);
@@ -2829,9 +2816,6 @@ button {
2829
2816
  .ncua-message-notification--success .ncua-notification__action-button--text, .ncua-message-notification--success .ncua-notification__action-button--text-gray {
2830
2817
  color: var(--green-600);
2831
2818
  }
2832
- .ncua-message-notification--success .ncua-message-notification__hide-link {
2833
- color: var(--gray-500);
2834
- }
2835
2819
  .ncua-message-notification .ncua-notification__action-button {
2836
2820
  background: transparent;
2837
2821
  border: none;
@@ -2844,6 +2828,10 @@ button {
2844
2828
  .ncua-message-notification .ncua-notification__action-button--text, .ncua-message-notification .ncua-notification__action-button--text-gray {
2845
2829
  font-weight: var(--font-weights-commerce-sans-1);
2846
2830
  }
2831
+ .ncua-message-notification .ncua-message-notification__hide-link.ncua-notification__action-button {
2832
+ color: var(--gray-500);
2833
+ font-weight: var(--font-weights-commerce-sans-1);
2834
+ }
2847
2835
 
2848
2836
  .ncua-callout-notification {
2849
2837
  display: flex;
@@ -2644,11 +2644,11 @@
2644
2644
  align-items: center;
2645
2645
  flex-direction: column;
2646
2646
  width: 100%;
2647
- padding: 16px 24px;
2647
+ padding: 12px 16px 12px 24px;
2648
2648
  }
2649
2649
  @media (max-width: 768px) {
2650
2650
  .ncua-message-notification__container {
2651
- padding: 16px;
2651
+ padding: 12px 8px 12px 16px;
2652
2652
  }
2653
2653
  }
2654
2654
  .ncua-message-notification__content {
@@ -2682,20 +2682,21 @@
2682
2682
  min-width: 0;
2683
2683
  }
2684
2684
  .ncua-message-notification__title {
2685
- font-size: var(--font-size-md);
2686
- line-height: var(--line-heights-md);
2685
+ font-size: var(--font-size-sm);
2686
+ line-height: var(--line-heights-sm);
2687
2687
  font-weight: var(--font-weights-commerce-sans-2);
2688
2688
  }
2689
2689
  .ncua-message-notification__supporting-text {
2690
- font-size: var(--font-size-sm);
2691
- line-height: var(--line-heights-sm);
2690
+ font-size: var(--font-size-xs);
2691
+ line-height: var(--line-heights-xs);
2692
2692
  font-weight: var(--font-weights-commerce-sans-0);
2693
2693
  }
2694
2694
  .ncua-message-notification__actions-container {
2695
2695
  display: flex;
2696
2696
  align-items: center;
2697
- gap: 8px;
2697
+ gap: 12px;
2698
2698
  flex-shrink: 0;
2699
+ flex-wrap: wrap;
2699
2700
  }
2700
2701
  @media (max-width: 768px) {
2701
2702
  .ncua-message-notification__actions-container {
@@ -2719,7 +2720,6 @@
2719
2720
  cursor: pointer;
2720
2721
  font-size: var(--font-size-xs);
2721
2722
  line-height: var(--line-heights-xs);
2722
- font-weight: var(--font-weights-commerce-sans-0);
2723
2723
  }
2724
2724
  .ncua-message-notification__close-button {
2725
2725
  display: flex;
@@ -2728,23 +2728,22 @@
2728
2728
  background: transparent;
2729
2729
  border: none;
2730
2730
  cursor: pointer;
2731
- border-radius: 8px;
2731
+ border-radius: 6px;
2732
2732
  padding: 8px;
2733
2733
  flex-shrink: 0;
2734
2734
  }
2735
2735
  .ncua-message-notification--neutral {
2736
2736
  color: var(--gray-600);
2737
2737
  background-color: var(--gray-50);
2738
- border-radius: 8px;
2738
+ border-radius: 12px;
2739
2739
  border: 1px solid var(--gray-300);
2740
- box-shadow: var(--shadow-lg);
2740
+ box-shadow: var(--shadow-md);
2741
2741
  }
2742
2742
  .ncua-message-notification--neutral .ncua-message-notification__title {
2743
2743
  color: var(--gray-600);
2744
2744
  }
2745
2745
  .ncua-message-notification--neutral .ncua-message-notification__supporting-text {
2746
2746
  color: var(--gray-500);
2747
- opacity: 0.8;
2748
2747
  }
2749
2748
  .ncua-message-notification--neutral .ncua-notification__action-button {
2750
2749
  color: var(--gray-500);
@@ -2752,22 +2751,18 @@
2752
2751
  .ncua-message-notification--neutral .ncua-notification__action-button--text, .ncua-message-notification--neutral .ncua-notification__action-button--text-gray {
2753
2752
  color: var(--gray-600);
2754
2753
  }
2755
- .ncua-message-notification--neutral .ncua-message-notification__hide-link {
2756
- color: var(--gray-500);
2757
- }
2758
2754
  .ncua-message-notification--error {
2759
2755
  color: var(--primary-red-600);
2760
2756
  background-color: var(--primary-red-50);
2761
- border-radius: 8px;
2757
+ border-radius: 12px;
2762
2758
  border: 1px solid var(--primary-red-300);
2763
- box-shadow: var(--shadow-lg);
2759
+ box-shadow: var(--shadow-md);
2764
2760
  }
2765
2761
  .ncua-message-notification--error .ncua-message-notification__title {
2766
2762
  color: var(--primary-red-600);
2767
2763
  }
2768
2764
  .ncua-message-notification--error .ncua-message-notification__supporting-text {
2769
2765
  color: var(--gray-500);
2770
- opacity: 0.8;
2771
2766
  }
2772
2767
  .ncua-message-notification--error .ncua-notification__action-button {
2773
2768
  color: var(--primary-red-500);
@@ -2775,22 +2770,18 @@
2775
2770
  .ncua-message-notification--error .ncua-notification__action-button--text, .ncua-message-notification--error .ncua-notification__action-button--text-gray {
2776
2771
  color: var(--primary-red-600);
2777
2772
  }
2778
- .ncua-message-notification--error .ncua-message-notification__hide-link {
2779
- color: var(--gray-500);
2780
- }
2781
2773
  .ncua-message-notification--warning {
2782
2774
  color: var(--orange-600);
2783
2775
  background-color: var(--orange-50);
2784
- border-radius: 8px;
2776
+ border-radius: 12px;
2785
2777
  border: 1px solid var(--orange-300);
2786
- box-shadow: var(--shadow-lg);
2778
+ box-shadow: var(--shadow-md);
2787
2779
  }
2788
2780
  .ncua-message-notification--warning .ncua-message-notification__title {
2789
2781
  color: var(--orange-600);
2790
2782
  }
2791
2783
  .ncua-message-notification--warning .ncua-message-notification__supporting-text {
2792
2784
  color: var(--gray-500);
2793
- opacity: 0.8;
2794
2785
  }
2795
2786
  .ncua-message-notification--warning .ncua-notification__action-button {
2796
2787
  color: var(--orange-500);
@@ -2798,22 +2789,18 @@
2798
2789
  .ncua-message-notification--warning .ncua-notification__action-button--text, .ncua-message-notification--warning .ncua-notification__action-button--text-gray {
2799
2790
  color: var(--orange-600);
2800
2791
  }
2801
- .ncua-message-notification--warning .ncua-message-notification__hide-link {
2802
- color: var(--gray-500);
2803
- }
2804
2792
  .ncua-message-notification--success {
2805
2793
  color: var(--green-600);
2806
2794
  background-color: var(--green-50);
2807
- border-radius: 8px;
2795
+ border-radius: 12px;
2808
2796
  border: 1px solid var(--green-300);
2809
- box-shadow: var(--shadow-lg);
2797
+ box-shadow: var(--shadow-md);
2810
2798
  }
2811
2799
  .ncua-message-notification--success .ncua-message-notification__title {
2812
2800
  color: var(--green-600);
2813
2801
  }
2814
2802
  .ncua-message-notification--success .ncua-message-notification__supporting-text {
2815
2803
  color: var(--gray-500);
2816
- opacity: 0.8;
2817
2804
  }
2818
2805
  .ncua-message-notification--success .ncua-notification__action-button {
2819
2806
  color: var(--green-500);
@@ -2821,9 +2808,6 @@
2821
2808
  .ncua-message-notification--success .ncua-notification__action-button--text, .ncua-message-notification--success .ncua-notification__action-button--text-gray {
2822
2809
  color: var(--green-600);
2823
2810
  }
2824
- .ncua-message-notification--success .ncua-message-notification__hide-link {
2825
- color: var(--gray-500);
2826
- }
2827
2811
  .ncua-message-notification .ncua-notification__action-button {
2828
2812
  background: transparent;
2829
2813
  border: none;
@@ -2836,6 +2820,10 @@
2836
2820
  .ncua-message-notification .ncua-notification__action-button--text, .ncua-message-notification .ncua-notification__action-button--text-gray {
2837
2821
  font-weight: var(--font-weights-commerce-sans-1);
2838
2822
  }
2823
+ .ncua-message-notification .ncua-message-notification__hide-link.ncua-notification__action-button {
2824
+ color: var(--gray-500);
2825
+ font-weight: var(--font-weights-commerce-sans-1);
2826
+ }
2839
2827
 
2840
2828
  .ncua-callout-notification {
2841
2829
  display: flex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncds/ui-admin",
3
- "version": "1.8.21-alpha.4",
3
+ "version": "1.8.21-alpha.6",
4
4
  "description": "nhn-commerce의 어드민 디자인 시스템입니다.",
5
5
  "scripts": {
6
6
  "barrel": "node barrel.js",