@idbrnd/design-system 4.5.1 → 4.7.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @idbrnd/design-system
2
2
 
3
- ![Version](https://img.shields.io/static/v1?label=version&message=4.5.1&color=blue&style=flat-square) <!-- x-release-please-version -->
3
+ ![Version](https://img.shields.io/static/v1?label=version&message=4.7.0&color=blue&style=flat-square) <!-- x-release-please-version -->
4
4
  ![React](https://img.shields.io/badge/React-18.3.1-61DAFB?style=flat-square&logo=react&logoColor=white)
5
5
  ![Vite](https://img.shields.io/badge/Vite-7.3.0-646CFF?style=flat-square&logo=vite&logoColor=white)
6
6
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.9.3-3178C6?style=flat-square&logo=typescript&logoColor=white)
@@ -618,6 +618,7 @@ import { showToast, dismissToast } from "@idbrnd/design-system";
618
618
  showToast({ variant: "positive", message: "저장되었습니다." });
619
619
  showToast({ variant: "negative", message: "오류가 발생했습니다." });
620
620
  showToast({ variant: "basic", message: "알림 메시지입니다." });
621
+ showToast({ variant: "basic", message: "읽을 내용이 긴 메시지입니다.", duration: 5000 });
621
622
 
622
623
  dismissToast();
623
624
  ```
@@ -628,6 +629,7 @@ dismissToast();
628
629
  | `variant` | `"basic"` \| `"positive"` \| `"negative"` | 색상 변형 (기본값 `"basic"`) |
629
630
  | `icon` | `ReactNode` | 사용자 지정 아이콘. 미지정 시 variant 기본 아이콘 사용 |
630
631
  | `customStyle` | `CSSProperties` | 추가 인라인 스타일 |
632
+ | `duration` | `number` | 자동 닫힘까지의 시간(밀리초) (기본값 `3000`) |
631
633
 
632
634
  ### Snackbar
633
635
 
@@ -2407,7 +2409,7 @@ import { Spinner, CustomSpinner, Clip, FadeSpinner } from "@idbrnd/design-system
2407
2409
 
2408
2410
  ## 아이콘
2409
2411
 
2410
- 피그마에서 추출한 SVG 아이콘이 React 컴포넌트로 제공됩니다. 현재 **194개** 아이콘이 포함되어 있습니다.
2412
+ 피그마에서 추출한 SVG 아이콘이 React 컴포넌트로 제공됩니다.
2411
2413
 
2412
2414
  ### 개별 컴포넌트 import (권장)
2413
2415
 
@@ -2462,11 +2464,11 @@ const icon: IconName = "search";
2462
2464
  | -------------------------------------- | ---------------------------------------- |
2463
2465
  | 단어 구분은 `-` | `chevron-down`, `circle-check-fill` |
2464
2466
  | fill 변형은 `-fill` 접미사 | `bell-fill`, `setting-fill` |
2465
- | 고정 색상 아이콘은 `dashboard-` 접두사 | `dashboard-map`, `dashboard-heart-pulse` |
2467
+ | 대시보드 아이콘은 `dashboard-` 접두사 | `dashboard-map`, `dashboard-heart-pulse` |
2466
2468
 
2467
- ### 고정 색상 아이콘 (dashboard-\*)
2469
+ ### 고정 색상 아이콘
2468
2470
 
2469
- 피그마 원본 색상(`#171719` + `#4A71FF`)이 하드코딩된 아이콘입니다. `color` prop을 넘겨도 색상이 바뀌지 않습니다.
2471
+ 피그마 원본 색상이 하드코딩된 아이콘입니다. `dashboard-*`는 `#171719`와 `#4A71FF`를, `ai-sparkle`과 `ai-sparkle-fill`은 `#4A71FF`에서 `#0099FF`로 이어지는 그라디언트를 사용합니다. `color` prop을 넘겨도 색상이 바뀌지 않습니다.
2470
2472
 
2471
2473
  | 아이콘 이름 | 컴포넌트명 |
2472
2474
  | ------------------------------ | ------------------------------- |
@@ -2481,6 +2483,9 @@ const icon: IconName = "search";
2481
2483
  | `dashboard-heart-pulse` | `DashboardHeartPulseIcon` |
2482
2484
  | `dashboard-live-monitor` | `DashboardLiveMonitorIcon` |
2483
2485
  | `dashboard-graph` | `DashboardGraphIcon` |
2486
+ | `dashboard-system` | `DashboardSystemIcon` |
2487
+ | `ai-sparkle` | `AiSparkleIcon` |
2488
+ | `ai-sparkle-fill` | `AiSparkleFillIcon` |
2484
2489
 
2485
2490
  ---
2486
2491
 
@@ -5,6 +5,8 @@ export interface ToastShowOptions {
5
5
  variant?: ToastVariant;
6
6
  customStyle?: CSSProperties;
7
7
  icon?: ReactNode;
8
+ /** 자동 닫힘까지의 시간(밀리초). 생략하면 기본 3초 */
9
+ duration?: number;
8
10
  }
9
- export declare function showToast({ message, variant, customStyle, icon }: ToastShowOptions): void;
11
+ export declare function showToast({ message, variant, customStyle, icon, duration }: ToastShowOptions): void;
10
12
  export declare function dismissToast(): void;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const AiSparkleFillIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default AiSparkleFillIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const AiSparkleIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default AiSparkleIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const ListFilterIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default ListFilterIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const OpenInPhoneIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default OpenInPhoneIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const PencilFillIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default PencilFillIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const PencilIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default PencilIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const SirenIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default SirenIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const SparkleFillIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default SparkleFillIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const SparkleIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default SparkleIcon;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "../Icon.types";
2
+ declare const TicketIcon: ({ size, color, style, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default TicketIcon;
@@ -1,5 +1,7 @@
1
1
  export { default as AiBrainFillIcon } from "./AiBrainFillIcon";
2
2
  export { default as AiBrainIcon } from "./AiBrainIcon";
3
+ export { default as AiSparkleFillIcon } from "./AiSparkleFillIcon";
4
+ export { default as AiSparkleIcon } from "./AiSparkleIcon";
3
5
  export { default as ArrowDownIcon } from "./ArrowDownIcon";
4
6
  export { default as ArrowDownThickIcon } from "./ArrowDownThickIcon";
5
7
  export { default as ArrowTurnDownRightIcon } from "./ArrowTurnDownRightIcon";
@@ -135,6 +137,7 @@ export { default as IntervalUpDownIcon } from "./IntervalUpDownIcon";
135
137
  export { default as LineHorizontalIcon } from "./LineHorizontalIcon";
136
138
  export { default as LineHorizontalThickIcon } from "./LineHorizontalThickIcon";
137
139
  export { default as LinkIcon } from "./LinkIcon";
140
+ export { default as ListFilterIcon } from "./ListFilterIcon";
138
141
  export { default as ListIcon } from "./ListIcon";
139
142
  export { default as LoadingIcon } from "./LoadingIcon";
140
143
  export { default as LockFillIcon } from "./LockFillIcon";
@@ -151,6 +154,9 @@ export { default as MoreVerticalIcon } from "./MoreVerticalIcon";
151
154
  export { default as MoreVerticalTightIcon } from "./MoreVerticalTightIcon";
152
155
  export { default as OctagonAlertFillIcon } from "./OctagonAlertFillIcon";
153
156
  export { default as OctagonAlertIcon } from "./OctagonAlertIcon";
157
+ export { default as OpenInPhoneIcon } from "./OpenInPhoneIcon";
158
+ export { default as PencilFillIcon } from "./PencilFillIcon";
159
+ export { default as PencilIcon } from "./PencilIcon";
154
160
  export { default as PersonContentFillIcon } from "./PersonContentFillIcon";
155
161
  export { default as PersonContentIcon } from "./PersonContentIcon";
156
162
  export { default as PersonFillIcon } from "./PersonFillIcon";
@@ -173,9 +179,12 @@ export { default as SettingFillIcon } from "./SettingFillIcon";
173
179
  export { default as SettingIcon } from "./SettingIcon";
174
180
  export { default as ShareFillIcon } from "./ShareFillIcon";
175
181
  export { default as ShareIcon } from "./ShareIcon";
182
+ export { default as SirenIcon } from "./SirenIcon";
176
183
  export { default as SmileFillIcon } from "./SmileFillIcon";
177
184
  export { default as SmileIcon } from "./SmileIcon";
178
185
  export { default as SoundIcon } from "./SoundIcon";
186
+ export { default as SparkleFillIcon } from "./SparkleFillIcon";
187
+ export { default as SparkleIcon } from "./SparkleIcon";
179
188
  export { default as SquareCheckIcon } from "./SquareCheckIcon";
180
189
  export { default as SquareMoreIcon } from "./SquareMoreIcon";
181
190
  export { default as TemplateFillIcon } from "./TemplateFillIcon";
@@ -183,6 +192,7 @@ export { default as TemplateIcon } from "./TemplateIcon";
183
192
  export { default as TextFormatIcon } from "./TextFormatIcon";
184
193
  export { default as ThermometerIcon } from "./ThermometerIcon";
185
194
  export { default as ThumbnailIcon } from "./ThumbnailIcon";
195
+ export { default as TicketIcon } from "./TicketIcon";
186
196
  export { default as TrashIcon } from "./TrashIcon";
187
197
  export { default as TriangleExclamationFillIcon } from "./TriangleExclamationFillIcon";
188
198
  export { default as TriangleExclamationIcon } from "./TriangleExclamationIcon";
@@ -1,6 +1,8 @@
1
1
  export declare const iconMap: {
2
2
  readonly "ai-brain-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
3
3
  readonly "ai-brain": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
4
+ readonly "ai-sparkle-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
5
+ readonly "ai-sparkle": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
4
6
  readonly "arrow-down": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
5
7
  readonly "arrow-down-thick": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
6
8
  readonly "arrow-turn-down-right": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
@@ -136,6 +138,7 @@ export declare const iconMap: {
136
138
  readonly "line-horizontal": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
137
139
  readonly "line-horizontal-thick": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
138
140
  readonly link: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
141
+ readonly "list-filter": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
139
142
  readonly list: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
140
143
  readonly loading: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
141
144
  readonly "lock-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
@@ -152,6 +155,9 @@ export declare const iconMap: {
152
155
  readonly "more-vertical-tight": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
153
156
  readonly "octagon-alert-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
154
157
  readonly "octagon-alert": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
158
+ readonly "open-in-phone": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
159
+ readonly "pencil-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
160
+ readonly pencil: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
155
161
  readonly "person-content-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
156
162
  readonly "person-content": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
157
163
  readonly "person-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
@@ -174,9 +180,12 @@ export declare const iconMap: {
174
180
  readonly setting: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
175
181
  readonly "share-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
176
182
  readonly share: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
183
+ readonly siren: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
177
184
  readonly "smile-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
178
185
  readonly smile: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
179
186
  readonly sound: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
187
+ readonly "sparkle-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
188
+ readonly sparkle: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
180
189
  readonly "square-check": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
181
190
  readonly "square-more": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
182
191
  readonly "template-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
@@ -184,6 +193,7 @@ export declare const iconMap: {
184
193
  readonly "text-format": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
185
194
  readonly thermometer: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
186
195
  readonly thumbnail: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
196
+ readonly ticket: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
187
197
  readonly trash: ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
188
198
  readonly "triangle-exclamation-fill": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
189
199
  readonly "triangle-exclamation": ({ size, color, style, ...props }: import("./Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;