@krds.ui/vue 0.0.3 → 0.0.4

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.
@@ -38,6 +38,18 @@ export declare interface BaseFormProps extends BaseComponentProps {
38
38
  readonly?: boolean;
39
39
  }
40
40
 
41
+ /**
42
+ * 브레드크럼 아이템 인터페이스
43
+ */
44
+ export declare interface BreadcrumbItem {
45
+ /** 텍스트 */
46
+ text: string;
47
+ /** 링크 URL */
48
+ href?: string;
49
+ /** 클릭 핸들러 */
50
+ onClick?: (event: MouseEvent) => void;
51
+ }
52
+
41
53
  /**
42
54
  * 클래스명을 조합합니다.
43
55
  *
@@ -157,6 +169,37 @@ export declare interface KrdsBadgeProps extends BaseComponentProps {
157
169
  size?: 'large' | 'medium' | 'small';
158
170
  }
159
171
 
172
+ export declare const KrdsBreadcrumb: DefineComponent<KrdsBreadcrumbProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
173
+ "item-click": (item: BreadcrumbItem, event: MouseEvent) => any;
174
+ }, string, PublicProps, Readonly<KrdsBreadcrumbProps> & Readonly<{
175
+ "onItem-click"?: ((item: BreadcrumbItem, event: MouseEvent) => any) | undefined;
176
+ }>, {
177
+ id: string;
178
+ ariaLabel: string;
179
+ showHomeIcon: boolean;
180
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
181
+
182
+ /**
183
+ * KRDS Breadcrumb 컴포넌트 이벤트
184
+ */
185
+ export declare interface KrdsBreadcrumbEmits {
186
+ 'item-click': [item: BreadcrumbItem, event: MouseEvent];
187
+ }
188
+
189
+ /**
190
+ * KRDS Breadcrumb 컴포넌트 속성
191
+ */
192
+ export declare interface KrdsBreadcrumbProps {
193
+ /** 브레드크럼 아이템 배열 */
194
+ items: BreadcrumbItem[];
195
+ /** 엘리먼트 ID */
196
+ id?: string;
197
+ /** 접근성 라벨 */
198
+ ariaLabel?: string;
199
+ /** 홈 아이콘 표시 여부 */
200
+ showHomeIcon?: boolean;
201
+ }
202
+
160
203
  export declare const KrdsButton: DefineComponent<KrdsButtonProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
161
204
 
162
205
  /**
@@ -616,6 +659,33 @@ export declare interface KrdsIconProps extends BaseComponentProps {
616
659
  name: string;
617
660
  }
618
661
 
662
+ export declare const KrdsInPageNavigation: DefineComponent<KrdsInPageNavigationProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsInPageNavigationProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
663
+
664
+ /**
665
+ * KRDS InPageNavigation 컴포넌트 이벤트
666
+ */
667
+ export declare interface KrdsInPageNavigationEmits {
668
+ (e: 'itemClick', item: NavigationItem, event: MouseEvent | KeyboardEvent): void;
669
+ }
670
+
671
+ /**
672
+ * KRDS InPageNavigation 컴포넌트 속성
673
+ */
674
+ export declare interface KrdsInPageNavigationProps extends BaseComponentProps {
675
+ /** 네비게이션 제목 */
676
+ title?: string;
677
+ /** 네비게이션 캡션 */
678
+ caption?: string;
679
+ /** 네비게이션 아이템 목록 */
680
+ items?: NavigationItem[];
681
+ /** 스크롤에 따른 자동 활성화 여부 */
682
+ autoActive?: boolean;
683
+ /** 헤더 상단 영역 선택자 (기본값: '#krds-masthead') */
684
+ headerTopSelector?: string;
685
+ /** 헤더 내부 영역 선택자 (기본값: '#krds-header .header-in') */
686
+ headerInnerSelector?: string;
687
+ }
688
+
619
689
  export declare const KrdsInput: DefineComponent<KrdsInputProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsInputProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
620
690
 
621
691
  /**
@@ -663,6 +733,8 @@ export declare interface KrdsInputProps extends BaseFormProps {
663
733
  state?: 'default' | 'error' | 'success' | 'information';
664
734
  /** 아이콘 (있을 때 btn-ico-wrap 클래스 적용) */
665
735
  icon?: boolean;
736
+ /** 로딩 상태 */
737
+ loading?: boolean;
666
738
  }
667
739
 
668
740
  export declare const KrdsLink: DefineComponent<KrdsLinkProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsLinkProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
@@ -706,6 +778,171 @@ export declare const KrdsMasthead: DefineComponent<BaseComponentProps, {}, {}, {
706
778
  */
707
779
  export declare type KrdsMastheadProps = BaseComponentProps;
708
780
 
781
+ export declare const KrdsPagination: DefineComponent<KrdsPaginationProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
782
+ "update:modelValue": (value: number) => any;
783
+ }, string, PublicProps, Readonly<KrdsPaginationProps> & Readonly<{
784
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
785
+ }>, {
786
+ id: string;
787
+ modelValue: number;
788
+ min: number;
789
+ ariaLabel: string;
790
+ pageRange: number;
791
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
792
+
793
+ /**
794
+ * KRDS Pagination 컴포넌트 이벤트
795
+ */
796
+ export declare interface KrdsPaginationEmits {
797
+ /** v-model 업데이트 이벤트 */
798
+ 'update:modelValue': [value: number];
799
+ }
800
+
801
+ /**
802
+ * KRDS Pagination 컴포넌트 속성
803
+ */
804
+ export declare interface KrdsPaginationProps {
805
+ /** 현재 페이지 번호 (v-model) */
806
+ modelValue?: number;
807
+ /** 최소 페이지 번호 (기본값: 1, 최소값: 1) */
808
+ min?: number;
809
+ /** 최대 페이지 번호 (전체 페이지 수) */
810
+ max: number;
811
+ /** 엘리먼트 ID */
812
+ id?: string;
813
+ /** 접근성 라벨 */
814
+ ariaLabel?: string;
815
+ /** 표시할 페이지 범위 */
816
+ pageRange?: number;
817
+ }
818
+
819
+ /**
820
+ * KRDS SkipLink 컴포넌트
821
+ *
822
+ * 건너뛰기 링크는 웹사이트에서 웹 페이지의 주요 콘텐츠 섹션의 탐색을 도와주는 페이지 내부 링크입니다.
823
+ * 키보드나 가상 초점을 이용하여 콘텐츠를 탐색하는 사용자는 건너뛰기 링크를 이용하여
824
+ * 대부분의 페이지에서 반복되는 콘텐츠 영역을 건너뛰고 주요 콘텐츠로 빠르게 이동할 수 있습니다.
825
+ *
826
+ * @example
827
+ * ```vue
828
+ * <KrdsSkipLink href="#main-content">본문 바로가기</KrdsSkipLink>
829
+ * <KrdsSkipLink href="#breadcrumb">본문 바로가기</KrdsSkipLink>
830
+ * <KrdsSkipLink href="#gnb">메인메뉴 바로가기</KrdsSkipLink>
831
+ * ```
832
+ */
833
+ export declare const KrdsSkipLink: DefineComponent<ExtractPropTypes< {
834
+ /**
835
+ * 건너뛸 대상 요소의 ID
836
+ * @example '#main-content', '#breadcrumb'
837
+ */
838
+ href: {
839
+ type: StringConstructor;
840
+ required: true;
841
+ validator: (value: string) => boolean;
842
+ };
843
+ /**
844
+ * 추가 CSS 클래스
845
+ */
846
+ class: {
847
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
848
+ default: undefined;
849
+ };
850
+ /**
851
+ * 요소 ID
852
+ */
853
+ id: {
854
+ type: StringConstructor;
855
+ default: string;
856
+ };
857
+ }>, () => VNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
858
+ /**
859
+ * 건너뛸 대상 요소의 ID
860
+ * @example '#main-content', '#breadcrumb'
861
+ */
862
+ href: {
863
+ type: StringConstructor;
864
+ required: true;
865
+ validator: (value: string) => boolean;
866
+ };
867
+ /**
868
+ * 추가 CSS 클래스
869
+ */
870
+ class: {
871
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
872
+ default: undefined;
873
+ };
874
+ /**
875
+ * 요소 ID
876
+ */
877
+ id: {
878
+ type: StringConstructor;
879
+ default: string;
880
+ };
881
+ }>> & Readonly<{}>, {
882
+ class: string | unknown[] | Record<string, any>;
883
+ id: string;
884
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
885
+
886
+ /**
887
+ * KRDS SkipLink 컴포넌트 속성
888
+ */
889
+ export declare interface KrdsSkipLinkProps extends BaseComponentProps {
890
+ /** 건너뛸 대상 요소의 ID */
891
+ href: string;
892
+ }
893
+
894
+ export declare const KrdsSpinner: DefineComponent<ExtractPropTypes< {
895
+ label: {
896
+ type: StringConstructor;
897
+ default: undefined;
898
+ };
899
+ }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
900
+ label: {
901
+ type: StringConstructor;
902
+ default: undefined;
903
+ };
904
+ }>> & Readonly<{}>, {
905
+ label: string;
906
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
907
+
908
+ export declare const KrdsStep: DefineComponent<KrdsStepProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsStepProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
909
+
910
+ /**
911
+ * KRDS Step 컴포넌트 이벤트
912
+ */
913
+ export declare interface KrdsStepEmits {
914
+ (e: 'click', event: MouseEvent, step: string | number): void;
915
+ }
916
+
917
+ export declare const KrdsStepIndicator: DefineComponent<KrdsStepIndicatorProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsStepIndicatorProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
918
+
919
+ /**
920
+ * KRDS StepIndicator 컴포넌트 이벤트
921
+ */
922
+ export declare interface KrdsStepIndicatorEmits {
923
+ (e: 'update:modelValue', value: number): void;
924
+ }
925
+
926
+ /**
927
+ * KRDS StepIndicator 컴포넌트 속성
928
+ */
929
+ export declare interface KrdsStepIndicatorProps extends BaseComponentProps {
930
+ /** 현재 활성 단계 인덱스 (0부터 시작) - v-model */
931
+ modelValue?: number;
932
+ }
933
+
934
+ /**
935
+ * KRDS Step 컴포넌트 속성
936
+ */
937
+ export declare interface KrdsStepProps extends BaseComponentProps {
938
+ /** 단계 번호 */
939
+ step: string | number;
940
+ /** 단계 제목 */
941
+ title: string;
942
+ /** 단계 상태 강제 설정 (선택적) */
943
+ status?: 'done' | 'active' | 'pending';
944
+ }
945
+
709
946
  export declare const KrdsTag: DefineComponent<KrdsTagProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<KrdsTagProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
710
947
 
711
948
  /**
@@ -1001,6 +1238,18 @@ export declare interface LoadingProps {
1001
1238
  loadingText?: string;
1002
1239
  }
1003
1240
 
1241
+ /**
1242
+ * 네비게이션 아이템 인터페이스
1243
+ */
1244
+ export declare interface NavigationItem {
1245
+ /** 링크 URL (앵커 링크) */
1246
+ href: string;
1247
+ /** 표시될 텍스트 */
1248
+ text: string;
1249
+ /** 활성 상태 여부 */
1250
+ active?: boolean;
1251
+ }
1252
+
1004
1253
  /**
1005
1254
  * 유틸리티 타입들
1006
1255
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krds.ui/vue",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "KRDS Vue Design System - 한국 정부 디자인 시스템 Vue 컴포넌트 라이브러리",
5
5
  "keywords": [
6
6
  "krds",
@@ -44,25 +44,6 @@
44
44
  "files": [
45
45
  "dist"
46
46
  ],
47
- "scripts": {
48
- "dev": "vite",
49
- "build": "pnpm run type-check && pnpm run build:lib",
50
- "build:lib": "vite build && vue-tsc --declaration --emitDeclarationOnly --outDir dist/types",
51
- "preview": "vite preview",
52
- "test": "vitest",
53
- "test:coverage": "vitest --coverage",
54
- "type-check": "vue-tsc --noEmit",
55
- "lint": "eslint . --fix",
56
- "format": "prettier --write src/",
57
- "storybook": "storybook dev -p 6006",
58
- "build-storybook": "storybook build",
59
- "bundle-size": "bundlewatch",
60
- "release": "standard-version",
61
- "release:minor": "standard-version --release-as minor",
62
- "release:major": "standard-version --release-as major",
63
- "release:patch": "standard-version --release-as patch",
64
- "prepublishOnly": "pnpm run build"
65
- },
66
47
  "peerDependencies": {
67
48
  "vue": "^3.5.0"
68
49
  },
@@ -113,5 +94,49 @@
113
94
  "node": ">=20.0.0",
114
95
  "pnpm": ">=9.0.0"
115
96
  },
116
- "packageManager": "pnpm@9.15.2"
117
- }
97
+ "bundlewatch": {
98
+ "files": [
99
+ {
100
+ "path": "dist/krds-vue.es.js",
101
+ "maxSize": "50kb",
102
+ "compression": "gzip"
103
+ },
104
+ {
105
+ "path": "dist/krds-vue.umd.js",
106
+ "maxSize": "55kb",
107
+ "compression": "gzip"
108
+ },
109
+ {
110
+ "path": "dist/style.css",
111
+ "maxSize": "2mb",
112
+ "compression": "gzip"
113
+ }
114
+ ],
115
+ "ci": {
116
+ "repoBranchBase": "main",
117
+ "trackBranches": [
118
+ "main",
119
+ "develop"
120
+ ],
121
+ "commitStatusOverview": true
122
+ }
123
+ },
124
+ "scripts": {
125
+ "dev": "vite",
126
+ "build": "pnpm run type-check && pnpm run build:lib",
127
+ "build:lib": "vite build && vue-tsc --declaration --emitDeclarationOnly --outDir dist/types",
128
+ "preview": "vite preview",
129
+ "test": "vitest",
130
+ "test:coverage": "vitest --coverage",
131
+ "type-check": "vue-tsc --noEmit",
132
+ "lint": "eslint . --fix",
133
+ "format": "prettier --write src/",
134
+ "storybook": "storybook dev -p 6006",
135
+ "build-storybook": "storybook build",
136
+ "bundle-size": "bundlewatch",
137
+ "release": "standard-version",
138
+ "release:minor": "standard-version --release-as minor",
139
+ "release:major": "standard-version --release-as major",
140
+ "release:patch": "standard-version --release-as patch"
141
+ }
142
+ }