@krds.ui/vue 0.0.19 → 0.0.20

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.
@@ -18,6 +18,7 @@ export declare type AlertType = 'danger' | 'ok' | 'info';
18
18
 
19
19
  /**
20
20
  * 정렬 타입
21
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
21
22
  */
22
23
  export declare type Alignment = 'left' | 'center' | 'right' | 'justify';
23
24
 
@@ -244,6 +245,7 @@ declare namespace components {
244
245
 
245
246
  /**
246
247
  * 컴포넌트 슬롯 타입
248
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
247
249
  */
248
250
  export declare interface ComponentSlots {
249
251
  default?: () => unknown;
@@ -252,6 +254,7 @@ export declare interface ComponentSlots {
252
254
 
253
255
  /**
254
256
  * 컴포넌트 상태 타입
257
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
255
258
  */
256
259
  export declare type ComponentState = 'default' | 'hover' | 'active' | 'focus' | 'disabled';
257
260
 
@@ -259,11 +262,13 @@ declare type ContextualHelpPosition = 'top left' | 'top center' | 'top right' |
259
262
 
260
263
  /**
261
264
  * CSS 변수 타입
265
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
262
266
  */
263
267
  export declare type CSSCustomProperties = Record<`--${string}`, string | number>;
264
268
 
265
269
  /**
266
270
  * 방향 타입
271
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
267
272
  */
268
273
  export declare type Direction = 'horizontal' | 'vertical';
269
274
 
@@ -302,6 +307,7 @@ export declare interface FileInfo {
302
307
  *
303
308
  * @param prefix - ID 접두사
304
309
  * @returns 고유한 ID 문자열
310
+ * @deprecated 모듈 전역 카운터라 SSR에서 요청 간 값이 공유된다. Vue의 `useId()`를 사용. 다음 breaking 릴리스에서 제거 예정
305
311
  */
306
312
  export declare function generateId(prefix?: string): string;
307
313
 
@@ -310,11 +316,13 @@ export declare function generateId(prefix?: string): string;
310
316
  * 브라우저와 Node.js 환경에서 모두 작동합니다.
311
317
  *
312
318
  * @returns 7자리 랜덤 문자열
319
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
313
320
  */
314
321
  export declare function generateUid(): string;
315
322
 
316
323
  /**
317
324
  * 아이콘 속성
325
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
318
326
  */
319
327
  export declare interface IconProps {
320
328
  /** 아이콘 이름 */
@@ -327,6 +335,7 @@ export declare interface IconProps {
327
335
 
328
336
  /**
329
337
  * 입력 상태 타입
338
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
330
339
  */
331
340
  export declare type InputState = ComponentState | 'error' | 'success';
332
341
 
@@ -1271,6 +1280,7 @@ export declare interface KrdsCoachMarkProps extends BaseComponentProps {
1271
1280
 
1272
1281
  /**
1273
1282
  * KRDS 컴포넌트 타입
1283
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
1274
1284
  */
1275
1285
  export declare type KrdsComponent<Props = object, Slots = object, Emits = object> = Component & {
1276
1286
  __krdsComponent: true;
@@ -1317,9 +1327,9 @@ export declare const KrdsContextualHelp: DefineComponent<ExtractPropTypes<{
1317
1327
  default: string;
1318
1328
  };
1319
1329
  }>> & Readonly<{}>, {
1330
+ position: ContextualHelpPosition;
1320
1331
  tooltipTitle: string;
1321
1332
  helpIcon: boolean;
1322
- position: ContextualHelpPosition;
1323
1333
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1324
1334
 
1325
1335
  /**
@@ -1470,6 +1480,11 @@ export declare const KrdsDateInput: DefineComponent<ExtractPropTypes<{
1470
1480
  type: NumberConstructor;
1471
1481
  default: undefined;
1472
1482
  };
1483
+ /** 달력을 body에 렌더 (overflow로 잘리는 컨테이너 안에서 사용. 모달 안에서는 쓰지 않음) */
1484
+ teleport: {
1485
+ type: BooleanConstructor;
1486
+ default: boolean;
1487
+ };
1473
1488
  /** CSS 클래스 */
1474
1489
  class: {
1475
1490
  type: StringConstructor;
@@ -1549,6 +1564,11 @@ export declare const KrdsDateInput: DefineComponent<ExtractPropTypes<{
1549
1564
  type: NumberConstructor;
1550
1565
  default: undefined;
1551
1566
  };
1567
+ /** 달력을 body에 렌더 (overflow로 잘리는 컨테이너 안에서 사용. 모달 안에서는 쓰지 않음) */
1568
+ teleport: {
1569
+ type: BooleanConstructor;
1570
+ default: boolean;
1571
+ };
1552
1572
  /** CSS 클래스 */
1553
1573
  class: {
1554
1574
  type: StringConstructor;
@@ -1580,6 +1600,7 @@ export declare const KrdsDateInput: DefineComponent<ExtractPropTypes<{
1580
1600
  holidays: string[];
1581
1601
  initialYear: number;
1582
1602
  initialMonth: number;
1603
+ teleport: boolean;
1583
1604
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1584
1605
 
1585
1606
  /**
@@ -1617,6 +1638,8 @@ export declare interface KrdsDateInputProps extends BaseFormProps {
1617
1638
  initialYear?: number;
1618
1639
  /** 초기 표시 월 (기본: 현재 월) */
1619
1640
  initialMonth?: number;
1641
+ /** 달력을 body에 렌더 (overflow로 잘리는 컨테이너 안에서 사용. 모달 안에서는 쓰지 않음) */
1642
+ teleport?: boolean;
1620
1643
  }
1621
1644
 
1622
1645
  export declare const KrdsDisclosure: DefineComponent<ExtractPropTypes<{
@@ -3796,9 +3819,16 @@ export declare interface KrdsSideNavigationProps {
3796
3819
  *
3797
3820
  * @example
3798
3821
  * ```vue
3822
+ * <!-- 단일 링크 -->
3799
3823
  * <KrdsSkipLink href="#main-content">본문 바로가기</KrdsSkipLink>
3800
- * <KrdsSkipLink href="#breadcrumb">본문 바로가기</KrdsSkipLink>
3801
- * <KrdsSkipLink href="#gnb">메인메뉴 바로가기</KrdsSkipLink>
3824
+ *
3825
+ * <!-- 여러 링크: 컴포넌트를 나란히 두면 #krds-skip-link가 중복되므로 links 사용 -->
3826
+ * <KrdsSkipLink
3827
+ * :links="[
3828
+ * { href: '#main-content', label: '본문 바로가기' },
3829
+ * { href: '#gnb', label: '메인메뉴 바로가기' }
3830
+ * ]"
3831
+ * />
3802
3832
  * ```
3803
3833
  */
3804
3834
  export declare const KrdsSkipLink: DefineComponent<ExtractPropTypes<{
@@ -3808,9 +3838,22 @@ export declare const KrdsSkipLink: DefineComponent<ExtractPropTypes<{
3808
3838
  */
3809
3839
  href: {
3810
3840
  type: StringConstructor;
3811
- required: true;
3841
+ default: undefined;
3812
3842
  validator: (value: string) => boolean;
3813
3843
  };
3844
+ /**
3845
+ * 여러 건너뛰기 링크 (하나의 래퍼 안에 렌더링, 지정 시 href·기본 슬롯 대신 사용)
3846
+ */
3847
+ links: {
3848
+ type: PropType<{
3849
+ href: string;
3850
+ label: string;
3851
+ }[]>;
3852
+ default: undefined;
3853
+ validator: (value: {
3854
+ href: string;
3855
+ }[]) => boolean;
3856
+ };
3814
3857
  /**
3815
3858
  * 추가 CSS 클래스
3816
3859
  */
@@ -3832,9 +3875,22 @@ export declare const KrdsSkipLink: DefineComponent<ExtractPropTypes<{
3832
3875
  */
3833
3876
  href: {
3834
3877
  type: StringConstructor;
3835
- required: true;
3878
+ default: undefined;
3836
3879
  validator: (value: string) => boolean;
3837
3880
  };
3881
+ /**
3882
+ * 여러 건너뛰기 링크 (하나의 래퍼 안에 렌더링, 지정 시 href·기본 슬롯 대신 사용)
3883
+ */
3884
+ links: {
3885
+ type: PropType<{
3886
+ href: string;
3887
+ label: string;
3888
+ }[]>;
3889
+ default: undefined;
3890
+ validator: (value: {
3891
+ href: string;
3892
+ }[]) => boolean;
3893
+ };
3838
3894
  /**
3839
3895
  * 추가 CSS 클래스
3840
3896
  */
@@ -3851,15 +3907,25 @@ export declare const KrdsSkipLink: DefineComponent<ExtractPropTypes<{
3851
3907
  };
3852
3908
  }>> & Readonly<{}>, {
3853
3909
  class: string | unknown[] | Record<string, any>;
3910
+ href: string;
3854
3911
  id: string;
3912
+ links: {
3913
+ href: string;
3914
+ label: string;
3915
+ }[];
3855
3916
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3856
3917
 
3857
3918
  /**
3858
3919
  * KRDS SkipLink 컴포넌트 속성
3859
3920
  */
3860
3921
  export declare interface KrdsSkipLinkProps extends BaseComponentProps {
3861
- /** 건너뛸 대상 요소의 ID */
3862
- href: string;
3922
+ /** 건너뛸 대상 요소의 ID (단일 링크, 기본 슬롯이 링크 텍스트) */
3923
+ href?: string;
3924
+ /** 여러 건너뛰기 링크 (하나의 래퍼 안에 렌더링, 지정 시 href·기본 슬롯 대신 사용) */
3925
+ links?: {
3926
+ href: string;
3927
+ label: string;
3928
+ }[];
3863
3929
  }
3864
3930
 
3865
3931
  export declare const KrdsSpinner: DefineComponent<ExtractPropTypes<{
@@ -4981,6 +5047,7 @@ export declare interface LayoutSize {
4981
5047
 
4982
5048
  /**
4983
5049
  * 로딩 상태 속성
5050
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
4984
5051
  */
4985
5052
  export declare interface LoadingProps {
4986
5053
  /** 로딩 중 여부 */
@@ -5124,19 +5191,23 @@ export declare interface NavigationItem {
5124
5191
  /**
5125
5192
  * 유틸리티 타입들
5126
5193
  */
5194
+ /** @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정 */
5127
5195
  export declare type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
5128
5196
 
5129
5197
  /**
5130
5198
  * 위치 타입
5199
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
5131
5200
  */
5132
5201
  export declare type Position = 'top' | 'bottom' | 'left' | 'right';
5133
5202
 
5203
+ /** @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정 */
5134
5204
  export declare type RequiredKeys<T> = {
5135
5205
  [K in keyof T]-?: object extends Pick<T, K> ? never : K;
5136
5206
  }[keyof T];
5137
5207
 
5138
5208
  /**
5139
5209
  * 반응형 값 타입
5210
+ * @deprecated 라이브러리에서 쓰이지 않아 다음 breaking 릴리스에서 제거 예정
5140
5211
  */
5141
5212
  export declare type ResponsiveValue<T> = T | {
5142
5213
  mobile?: T;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krds.ui/vue",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "description": "KRDS Vue Design System - 한국 정부 디자인 시스템 Vue 컴포넌트 라이브러리",
5
5
  "keywords": [
6
6
  "krds",
@@ -50,31 +50,33 @@
50
50
  "vue": "^3.5.0"
51
51
  },
52
52
  "devDependencies": {
53
- "@microsoft/api-extractor": "^7.58.12",
54
- "@size-limit/file": "^14.0.0",
55
- "@storybook/addon-a11y": "^10.6.1",
56
- "@storybook/addon-docs": "^10.6.1",
57
- "@storybook/addon-vitest": "^10.6.1",
58
- "@storybook/vue3-vite": "^10.6.1",
59
- "@tsconfig/node24": "^24.0.4",
60
- "@types/node": "^26.2.0",
61
- "@vitejs/plugin-vue": "^6.0.8",
62
- "@vitest/browser": "^4.1.10",
63
- "@vitest/browser-playwright": "^4.1.10",
64
- "@vitest/coverage-v8": "^4.1.10",
53
+ "@microsoft/api-extractor": "^7.59.4",
54
+ "@size-limit/file": "^14.1.0",
55
+ "@size-limit/rolldown": "^14.1.0",
56
+ "@testing-library/jest-dom": "^7.0.1",
57
+ "@testing-library/user-event": "^14.6.7",
58
+ "@testing-library/vue": "^8.1.0",
59
+ "@tsconfig/node24": "^24.0.5",
60
+ "@types/node": "^26.6.4",
61
+ "@vitejs/plugin-vue": "^6.0.9",
62
+ "@vitest/browser": "^4.1.11",
63
+ "@vitest/browser-playwright": "^4.1.11",
64
+ "@vitest/coverage-v8": "^4.1.11",
65
+ "axe-core": "~4.13.0",
65
66
  "oxfmt": "^0.71.0",
66
- "oxlint": "^1.86.0",
67
- "playwright": "^1.62.1",
68
- "sass": "^1.102.0",
69
- "size-limit": "^14.0.0",
67
+ "oxlint": "^1.87.0",
68
+ "playwright": "^1.63.0",
69
+ "sass": "^1.105.1",
70
+ "size-limit": "^14.1.0",
70
71
  "source-map-explorer": "^2.5.3",
71
- "storybook": "^10.6.1",
72
72
  "typescript": "6.0.3",
73
73
  "typescript7": "npm:typescript@^7.0.2",
74
- "vite": "^8.2.1",
75
- "vite-plugin-dts": "^5.0.3",
76
- "vitest": "^4.1.10",
77
- "vue": "^3.5.41"
74
+ "vite": "^8.3.3",
75
+ "vite-plugin-dts": "^5.1.2",
76
+ "vitepress": "2.0.0-alpha.20",
77
+ "vitest": "^4.1.11",
78
+ "vue": "^3.5.43",
79
+ "vue-component-meta": "^3.3.12"
78
80
  },
79
81
  "publishConfig": {
80
82
  "access": "public",
@@ -87,25 +89,32 @@
87
89
  "size-limit": [
88
90
  {
89
91
  "path": "dist/krds-vue.es.js",
90
- "limit": "25 kB"
92
+ "limit": "25 kB",
93
+ "rolldown": false
91
94
  },
92
95
  {
93
96
  "path": "dist/style.css",
94
- "limit": "60 kB"
97
+ "limit": "60 kB",
98
+ "rolldown": false
99
+ },
100
+ {
101
+ "name": "tree-shaking: { KrdsButton }",
102
+ "path": "dist/krds-vue.es.js",
103
+ "import": "{ KrdsButton }",
104
+ "limit": "2 kB"
95
105
  }
96
106
  ],
97
107
  "scripts": {
98
- "dev": "vite",
99
108
  "build": "pnpm run type-check && pnpm run build:lib",
100
109
  "build:lib": "vite build",
101
- "preview": "vite preview",
102
110
  "test": "vitest",
103
111
  "test:coverage": "vitest --coverage",
104
112
  "type-check": "node node_modules/typescript7/bin/tsc --noEmit",
105
113
  "lint": "oxlint",
106
114
  "format": "oxfmt",
107
- "storybook": "storybook dev -p 6006",
108
- "build-storybook": "storybook build && node scripts/storybook-seo.mjs",
109
- "bundle-size": "size-limit"
115
+ "bundle-size": "size-limit",
116
+ "docs:dev": "vitepress dev docs",
117
+ "docs:build": "vitepress build docs",
118
+ "docs:preview": "vitepress preview docs"
110
119
  }
111
120
  }