@xto/core 1.2.0 → 1.2.2

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.
@@ -0,0 +1,147 @@
1
+ import { ComputedRef } from 'vue';
2
+ import { NamespaceReturn, ClassName } from '../types';
3
+ /**
4
+ * 默认命名空间前缀
5
+ */
6
+ export declare const defaultNamespace = "x";
7
+ /**
8
+ * 生成块类名
9
+ * @param blockName 块名称
10
+ * @returns BEM 块类名
11
+ * @example block('button') // 'x-button'
12
+ */
13
+ export declare const block: (blockName: string) => string;
14
+ /**
15
+ * 块类名简写
16
+ */
17
+ export declare const b: (blockName: string) => string;
18
+ /**
19
+ * 生成元素类名
20
+ * @param blockName 块名称
21
+ * @param elementName 元素名称
22
+ * @returns BEM 元素类名
23
+ * @example element('button', 'icon') // 'x-button__icon'
24
+ */
25
+ export declare const element: (blockName: string, elementName: string) => string;
26
+ /**
27
+ * 元素类名简写
28
+ */
29
+ export declare const e: (blockName: string, elementName: string) => string;
30
+ /**
31
+ * 生成修饰符类名
32
+ * @param blockName 块名称
33
+ * @param elementName 元素名称(可选)
34
+ * @param modifierName 修饰符名称
35
+ * @returns BEM 修饰符类名
36
+ * @example modifier('button', '', 'primary') // 'x-button--primary'
37
+ * @example modifier('button', 'icon', 'large') // 'x-button__icon--large'
38
+ */
39
+ export declare const modifier: (blockName: string, elementName: string, modifierName: string) => string;
40
+ /**
41
+ * 修饰符类名简写
42
+ */
43
+ export declare const m: (blockName: string, elementName: string, modifierName: string) => string;
44
+ /**
45
+ * 生成状态类名
46
+ * @param stateName 状态名称
47
+ * @param condition 条件
48
+ * @returns 状态类名或空字符串
49
+ * @example state('disabled', true) // 'is-disabled'
50
+ */
51
+ export declare const state: (stateName: string, condition: boolean) => string;
52
+ /**
53
+ * 生成布尔状态类名
54
+ * @param name 状态名称
55
+ * @param condition 条件(默认为 true)
56
+ * @returns 状态类名或空字符串
57
+ * @example is('disabled') // 'is-disabled'
58
+ * @example is('loading', false) // ''
59
+ */
60
+ export declare const is: (name: string, condition?: boolean) => string;
61
+ /**
62
+ * 创建命名空间工厂
63
+ * @param name 组件名称
64
+ * @returns BEM 类名生成器
65
+ * @example
66
+ * const ns = createNamespace('button')
67
+ * ns.b() // 'x-button'
68
+ * ns.e('icon') // 'x-button__icon'
69
+ * ns.m('primary') // 'x-button--primary'
70
+ */
71
+ export declare function createNamespace(name: string): {
72
+ b: (blockName?: string) => string;
73
+ e: (elementName: string) => (blockName: string) => string;
74
+ m: (modifierName: string) => (blockName: string) => string;
75
+ em: (elementName: string, modifierName: string) => (blockName: string) => string;
76
+ is: (name: string, condition?: boolean) => string;
77
+ };
78
+ /**
79
+ * 命名空间 Hook
80
+ * 用于在组件中生成 BEM 类名
81
+ *
82
+ * @param componentName 组件名称
83
+ * @returns 命名空间工具对象
84
+ *
85
+ * @example
86
+ * ```vue
87
+ * <script setup>
88
+ * const ns = useNamespace('button')
89
+ * </script>
90
+ *
91
+ * <template>
92
+ * <button :class="ns.b()">
93
+ * <span :class="ns.e('icon')"></span>
94
+ * </button>
95
+ * </template>
96
+ * ```
97
+ *
98
+ * 输出:
99
+ * ```html
100
+ * <button class="x-button">
101
+ * <span class="x-button__icon"></span>
102
+ * </button>
103
+ * ```
104
+ */
105
+ export declare function useNamespace(componentName: string): NamespaceReturn;
106
+ /**
107
+ * 获取组件前缀
108
+ * @returns 组件前缀和名称
109
+ */
110
+ export declare function useComponentPrefix(): {
111
+ prefix: string;
112
+ name: string;
113
+ };
114
+ /**
115
+ * 类名生成 Hook 返回类型
116
+ */
117
+ export interface UseClassReturn {
118
+ /** 类名列表 */
119
+ classList: ComputedRef<string[]>;
120
+ }
121
+ /**
122
+ * 类名生成 Hook
123
+ * 根据组件 props 自动生成类名列表
124
+ *
125
+ * @param props 组件 props
126
+ * @param blockName 块名称(可选)
127
+ * @returns 类名列表
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * const { classList } = useClass(props, 'button')
132
+ * // 根据 props 自动生成类名
133
+ * // props.size -> 'x-button--large'
134
+ * // props.type -> 'x-button--primary'
135
+ * // props.disabled -> 'is-disabled'
136
+ * // props.loading -> 'is-loading'
137
+ * ```
138
+ */
139
+ export declare function useClass(props: Record<string, any>, blockName?: string): UseClassReturn;
140
+ /**
141
+ * 合并类名
142
+ * @param classes 类名列表
143
+ * @returns 合并后的类名字符串
144
+ * @example
145
+ * classNames('btn', { 'btn-active': true }, ['btn-large']) // 'btn btn-active btn-large'
146
+ */
147
+ export declare function classNames(...classes: ClassName[]): string;
@@ -0,0 +1,116 @@
1
+ import { ZIndex } from '../types';
2
+ /**
3
+ * Z-Index 管理 Hook
4
+ * @returns Z-Index 管理对象
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const zIndex = useZIndex()
9
+ * console.log(zIndex.current) // 2000
10
+ * console.log(zIndex.next()) // 2001
11
+ * zIndex.set(3000) // 设置为 3000
12
+ * ```
13
+ */
14
+ export declare const useZIndex: () => ZIndex;
15
+ /**
16
+ * Modal z-index 基准值
17
+ */
18
+ export declare const modalZIndex = 2000;
19
+ /**
20
+ * Message z-index 基准值
21
+ */
22
+ export declare const messageZIndex = 1990;
23
+ /**
24
+ * Loading z-index 基准值
25
+ */
26
+ export declare const loadingZIndex = 1999;
27
+ /**
28
+ * Popover z-index 基准值
29
+ */
30
+ export declare const popoverZIndex = 2000;
31
+ /**
32
+ * Drawer z-index 基准值
33
+ */
34
+ export declare const drawerZIndex = 2000;
35
+ /**
36
+ * Tooltip z-index 基准值
37
+ */
38
+ export declare const tooltipZIndex = 2000;
39
+ /**
40
+ * Select 下拉框 z-index 基准值
41
+ */
42
+ export declare const selectZIndex = 2000;
43
+ /**
44
+ * Dropdown 下拉菜单 z-index 基准值
45
+ */
46
+ export declare const dropdownZIndex = 2000;
47
+ /**
48
+ * 获取下一个 Modal z-index
49
+ * @returns z-index 值
50
+ */
51
+ export declare const nextModalZIndex: () => number;
52
+ /**
53
+ * 获取下一个 Message z-index
54
+ * @returns z-index 值
55
+ */
56
+ export declare const nextMessageZIndex: () => number;
57
+ /**
58
+ * 获取下一个 Loading z-index
59
+ * @returns z-index 值
60
+ */
61
+ export declare const nextLoadingZIndex: () => number;
62
+ /**
63
+ * 获取下一个 Popover z-index
64
+ * @returns z-index 值
65
+ */
66
+ export declare const nextPopoverZIndex: () => number;
67
+ /**
68
+ * 获取下一个 Drawer z-index
69
+ * @returns z-index 值
70
+ */
71
+ export declare const nextDrawerZIndex: () => number;
72
+ /**
73
+ * 获取下一个 Tooltip z-index
74
+ * @returns z-index 值
75
+ */
76
+ export declare const nextTooltipZIndex: () => number;
77
+ /**
78
+ * 获取下一个 Select z-index
79
+ * @returns z-index 值
80
+ */
81
+ export declare const nextSelectZIndex: () => number;
82
+ /**
83
+ * 获取下一个 Dropdown z-index
84
+ * @returns z-index 值
85
+ */
86
+ export declare const nextDropdownZIndex: () => number;
87
+ /**
88
+ * 弹出层管理器
89
+ */
90
+ export declare const popupManage: {
91
+ /** 当前 z-index */
92
+ zIndex: number;
93
+ /**
94
+ * 获取下一个 z-index
95
+ * @returns z-index 值
96
+ */
97
+ next(): number;
98
+ /**
99
+ * 重置 z-index
100
+ */
101
+ reset(): void;
102
+ };
103
+ /**
104
+ * 重置 z-index
105
+ */
106
+ export declare const resetZIndex: () => void;
107
+ /**
108
+ * 获取当前 z-index 列表
109
+ * @returns z-index 列表副本
110
+ */
111
+ export declare const getZIndexList: () => number[];
112
+ /**
113
+ * 获取当前 z-index
114
+ * @returns 当前 z-index 值
115
+ */
116
+ export declare const getCurrentZIndex: () => number;
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./theme/index.cjs"),e=require("./utils/index.cjs"),n=require("./hooks/index.cjs"),m=require("vue"),h={confirm:"确认",cancel:"取消",save:"保存",delete:"删除",edit:"编辑",add:"添加",search:"搜索",reset:"重置",submit:"提交",back:"返回",close:"关闭",loading:"加载中...",noData:"暂无数据",noResult:"无匹配结果",success:"操作成功",failed:"操作失败",warning:"警告",error:"错误",info:"提示",form:{required:"此项为必填项",invalid:"格式不正确",minLength:"最少输入 {0} 个字符",maxLength:"最多输入 {0} 个字符",min:"不能小于 {0}",max:"不能大于 {0}",email:"请输入有效的邮箱地址",phone:"请输入有效的手机号码",url:"请输入有效的网址",idCard:"请输入有效的身份证号码",password:"密码长度应为 6-20 个字符",confirmPassword:"两次输入的密码不一致"},table:{total:"共 {0} 条",pageSize:"{0} 条/页",goto:"跳至",page:"页",prevPage:"上一页",nextPage:"下一页",selectAll:"全选",sort:"排序",filter:"筛选",columnSettings:"列设置",expand:"展开",collapse:"收起"},datePicker:{year:"年",month:"月",week:"周",day:"日",today:"今天",thisWeek:"本周",thisMonth:"本月",thisYear:"今年",lastWeek:"上周",lastMonth:"上月",lastYear:"去年",last7Days:"最近 7 天",last30Days:"最近 30 天",last90Days:"最近 90 天",custom:"自定义",startPlaceholder:"开始日期",endPlaceholder:"结束日期",startTimePlaceholder:"开始时间",endTimePlaceholder:"结束时间",months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],weeks:["日","一","二","三","四","五","六"]},timePicker:{hour:"时",minute:"分",second:"秒",now:"此刻",confirm:"确定"},upload:{selectFile:"选择文件",dragTip:"将文件拖到此处,或",clickUpload:"点击上传",uploadSuccess:"上传成功",uploadFailed:"上传失败",fileSizeLimit:"文件大小不超过 {0}",fileTypeLimit:"文件格式不支持",fileCountLimit:"最多上传 {0} 个文件",deleteConfirm:"确定删除此文件?",preview:"预览",download:"下载",remove:"删除"},pagination:{total:"共 {total} 条",pageSize:"{size} 条/页",goto:"前往",page:"页"},transfer:{searchPlaceholder:"请输入搜索内容",noData:"暂无数据",noMatch:"无匹配数据",toRight:"移至右侧",toLeft:"移至左侧",selectAll:"全选",selected:"已选 {count} 项"},tree:{expandAll:"展开全部",collapseAll:"收起全部",searchPlaceholder:"搜索关键字",noData:"暂无数据"},modal:{confirm:"确认",cancel:"取消",close:"关闭"},message:{success:"操作成功",warning:"警告提示",error:"错误提示",info:"信息提示"},image:{zoomIn:"放大",zoomOut:"缩小",rotateLeft:"左旋转",rotateRight:"右旋转",originalSize:"原始大小",prev:"上一张",next:"下一张"},result:{success:"操作成功",failed:"操作失败",warning:"警告提示",info:"信息提示",backHome:"返回首页",retry:"重试"}},P={confirm:"Confirm",cancel:"Cancel",save:"Save",delete:"Delete",edit:"Edit",add:"Add",search:"Search",reset:"Reset",submit:"Submit",back:"Back",close:"Close",loading:"Loading...",noData:"No Data",noResult:"No Result",success:"Success",failed:"Failed",warning:"Warning",error:"Error",info:"Info",form:{required:"This field is required",invalid:"Invalid format",minLength:"Minimum {0} characters required",maxLength:"Maximum {0} characters allowed",min:"Must be at least {0}",max:"Must be at most {0}",email:"Please enter a valid email",phone:"Please enter a valid phone number",url:"Please enter a valid URL",idCard:"Please enter a valid ID card number",password:"Password must be 6-20 characters",confirmPassword:"Passwords do not match"},table:{total:"Total {0} items",pageSize:"{0} / page",goto:"Go to",page:"Page",prevPage:"Previous",nextPage:"Next",selectAll:"Select All",sort:"Sort",filter:"Filter",columnSettings:"Column Settings",expand:"Expand",collapse:"Collapse"},datePicker:{year:"Year",month:"Month",week:"Week",day:"Day",today:"Today",thisWeek:"This Week",thisMonth:"This Month",thisYear:"This Year",lastWeek:"Last Week",lastMonth:"Last Month",lastYear:"Last Year",last7Days:"Last 7 Days",last30Days:"Last 30 Days",last90Days:"Last 90 Days",custom:"Custom",startPlaceholder:"Start Date",endPlaceholder:"End Date",startTimePlaceholder:"Start Time",endTimePlaceholder:"End Time",months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weeks:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},timePicker:{hour:"Hour",minute:"Minute",second:"Second",now:"Now",confirm:"OK"},upload:{selectFile:"Select File",dragTip:"Drag file here, or",clickUpload:"Click to Upload",uploadSuccess:"Upload Success",uploadFailed:"Upload Failed",fileSizeLimit:"File size must not exceed {0}",fileTypeLimit:"File type not supported",fileCountLimit:"Maximum {0} files allowed",deleteConfirm:"Are you sure to delete this file?",preview:"Preview",download:"Download",remove:"Remove"},pagination:{total:"Total {total} items",pageSize:"{size} / page",goto:"Go to",page:"Page"},transfer:{searchPlaceholder:"Search",noData:"No Data",noMatch:"No Match",toRight:"Move to Right",toLeft:"Move to Left",selectAll:"Select All",selected:"{count} items selected"},tree:{expandAll:"Expand All",collapseAll:"Collapse All",searchPlaceholder:"Search",noData:"No Data"},modal:{confirm:"Confirm",cancel:"Cancel",close:"Close"},message:{success:"Success",warning:"Warning",error:"Error",info:"Info"},image:{zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateLeft:"Rotate Left",rotateRight:"Rotate Right",originalSize:"Original Size",prev:"Previous",next:"Next"},result:{success:"Success",failed:"Failed",warning:"Warning",info:"Info",backHome:"Back Home",retry:"Retry"}},v={confirm:"確認",cancel:"キャンセル",save:"保存",delete:"削除",edit:"編集",add:"追加",search:"検索",reset:"リセット",submit:"送信",back:"戻る",close:"閉じる",loading:"読み込み中...",noData:"データがありません",noResult:"結果がありません",success:"成功",failed:"失敗",warning:"警告",error:"エラー",info:"情報",form:{required:"この項目は必須です",invalid:"形式が正しくありません",minLength:"{0}文字以上で入力してください",maxLength:"{0}文字以内で入力してください",min:"{0}以上で入力してください",max:"{0}以下で入力してください",email:"有効なメールアドレスを入力してください",phone:"有効な電話番号を入力してください",url:"有効なURLを入力してください",idCard:"有効なID番号を入力してください",password:"パスワードは6-20文字で入力してください",confirmPassword:"パスワードが一致しません"},table:{total:"合計 {0} 件",pageSize:"{0} 件/ページ",goto:"移動",page:"ページ",prevPage:"前へ",nextPage:"次へ",selectAll:"全選択",sort:"並び替え",filter:"フィルター",columnSettings:"列設定",expand:"展開",collapse:"折りたたむ"},datePicker:{year:"年",month:"月",week:"週",day:"日",today:"今日",thisWeek:"今週",thisMonth:"今月",thisYear:"今年",lastWeek:"先週",lastMonth:"先月",lastYear:"昨年",last7Days:"過去7日間",last30Days:"過去30日間",last90Days:"過去90日間",custom:"カスタム",startPlaceholder:"開始日",endPlaceholder:"終了日",startTimePlaceholder:"開始時間",endTimePlaceholder:"終了時間",months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],weeks:["日","月","火","水","木","金","土"]},timePicker:{hour:"時",minute:"分",second:"秒",now:"現在",confirm:"確定"},upload:{selectFile:"ファイルを選択",dragTip:"ファイルをここにドラッグ、または",clickUpload:"クリックしてアップロード",uploadSuccess:"アップロード成功",uploadFailed:"アップロード失敗",fileSizeLimit:"ファイルサイズは{0}以下にしてください",fileTypeLimit:"サポートされていないファイル形式です",fileCountLimit:"最大{0}ファイルまでアップロードできます",deleteConfirm:"このファイルを削除しますか?",preview:"プレビュー",download:"ダウンロード",remove:"削除"},pagination:{total:"合計 {total} 件",pageSize:"{size} 件/ページ",goto:"移動",page:"ページ"},transfer:{searchPlaceholder:"検索",noData:"データがありません",noMatch:"一致するデータがありません",toRight:"右に移動",toLeft:"左に移動",selectAll:"全選択",selected:"{count}件選択済み"},tree:{expandAll:"すべて展開",collapseAll:"すべて折りたたむ",searchPlaceholder:"キーワード検索",noData:"データがありません"},modal:{confirm:"確認",cancel:"キャンセル",close:"閉じる"},message:{success:"成功",warning:"警告",error:"エラー",info:"情報"},image:{zoomIn:"拡大",zoomOut:"縮小",rotateLeft:"左に回転",rotateRight:"右に回転",originalSize:"元のサイズ",prev:"前へ",next:"次へ"},result:{success:"成功",failed:"失敗",warning:"警告",info:"情報",backHome:"ホームに戻る",retry:"再試行"}},y={confirm:"확인",cancel:"취소",save:"저장",delete:"삭제",edit:"편집",add:"추가",search:"검색",reset:"초기화",submit:"제출",back:"뒤로",close:"닫기",loading:"로딩 중...",noData:"데이터 없음",noResult:"결과 없음",success:"성공",failed:"실패",warning:"경고",error:"오류",info:"정보",form:{required:"필수 항목입니다",invalid:"형식이 올바르지 않습니다",minLength:"최소 {0}자 이상 입력하세요",maxLength:"최대 {0}자까지 입력 가능합니다",min:"{0} 이상이어야 합니다",max:"{0} 이하여야 합니다",email:"올바른 이메일을 입력하세요",phone:"올바른 전화번호를 입력하세요",url:"올바른 URL을 입력하세요",idCard:"올바른 ID 번호를 입력하세요",password:"비밀번호는 6-20자여야 합니다",confirmPassword:"비밀번호가 일치하지 않습니다"},table:{total:"총 {0}개",pageSize:"{0}개/페이지",goto:"이동",page:"페이지",prevPage:"이전",nextPage:"다음",selectAll:"전체 선택",sort:"정렬",filter:"필터",columnSettings:"열 설정",expand:"펼치기",collapse:"접기"},datePicker:{year:"년",month:"월",week:"주",day:"일",today:"오늘",thisWeek:"이번 주",thisMonth:"이번 달",thisYear:"올해",lastWeek:"지난 주",lastMonth:"지난 달",lastYear:"작년",last7Days:"최근 7일",last30Days:"최근 30일",last90Days:"최근 90일",custom:"사용자 지정",startPlaceholder:"시작일",endPlaceholder:"종료일",startTimePlaceholder:"시작 시간",endTimePlaceholder:"종료 시간",months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],weeks:["일","월","화","수","목","금","토"]},timePicker:{hour:"시",minute:"분",second:"초",now:"현재",confirm:"확인"},upload:{selectFile:"파일 선택",dragTip:"파일을 여기에 끌어오거나",clickUpload:"클릭하여 업로드",uploadSuccess:"업로드 성공",uploadFailed:"업로드 실패",fileSizeLimit:"파일 크기는 {0} 이하여야 합니다",fileTypeLimit:"지원하지 않는 파일 형식입니다",fileCountLimit:"최대 {0}개까지 업로드 가능합니다",deleteConfirm:"이 파일을 삭제하시겠습니까?",preview:"미리보기",download:"다운로드",remove:"삭제"},pagination:{total:"총 {total}개",pageSize:"{size}개/페이지",goto:"이동",page:"페이지"},transfer:{searchPlaceholder:"검색",noData:"데이터 없음",noMatch:"일치하는 데이터 없음",toRight:"오른쪽으로 이동",toLeft:"왼쪽으로 이동",selectAll:"전체 선택",selected:"{count}개 선택됨"},tree:{expandAll:"모두 펼치기",collapseAll:"모두 접기",searchPlaceholder:"키워드 검색",noData:"데이터 없음"},modal:{confirm:"확인",cancel:"취소",close:"닫기"},message:{success:"성공",warning:"경고",error:"오류",info:"정보"},image:{zoomIn:"확대",zoomOut:"축소",rotateLeft:"왼쪽 회전",rotateRight:"오른쪽 회전",originalSize:"원본 크기",prev:"이전",next:"다음"},result:{success:"성공",failed:"실패",warning:"경고",info:"정보",backHome:"홈으로",retry:"재시도"}},u={"zh-CN":h,"en-US":P,"ja-JP":v,"ko-KR":y},f={"zh-CN":"简体中文","en-US":"English","ja-JP":"日本語","ko-KR":"한국어"},g=Symbol("locale"),I=m.ref("zh-CN"),w=m.ref({...h});function x(t,o){const a=o.split(".");let i=t;for(const c of a)if(i&&typeof i=="object"&&c in i)i=i[c];else return;return typeof i=="string"?i:void 0}function S(t,o){return t.replace(/\{(\d+)\}/g,(a,i)=>{const c=parseInt(i,10);return o[c]!==void 0?String(o[c]):a})}function b(){const t=m.inject(g,null),o=(t==null?void 0:t.locale)||I,a=(t==null?void 0:t.messages)||w,i=(l,...p)=>{const d=x(a.value,l);return d===void 0?(console.warn(`[xto-i18n] Missing translation for key: ${l}`),l):p.length>0?S(d,p):d},c=l=>{u[l]?(o.value=l,a.value={...u[l]}):console.warn(`[xto-i18n] Unknown locale: ${l}`)},r=l=>{a.value={...a.value,...l}};return{locale:o,messages:m.computed(()=>a.value),t:i,setLocale:c,mergeMessages:r}}function D(){return Object.entries(f).map(([t,o])=>({code:t,name:o}))}function k(t="zh-CN"){const o=m.ref(t),a=m.ref({...u[t]});return{locale:o,messages:a,setLocale:r=>{u[r]&&(o.value=r,a.value={...u[r]})},mergeMessages:r=>{a.value={...a.value,...r}},install(r){r.provide(g,{locale:o,messages:a}),r.config.globalProperties.$t=(l,...p)=>{const d=x(a.value,l);return d===void 0?l:p.length>0?S(d,p):d},r.config.globalProperties.$locale=o}}}const C="1.0.0";exports.applyCSSVars=s.applyCSSVars;exports.applyDarkTheme=s.applyDarkTheme;exports.cssVarPrefix=s.cssVarPrefix;exports.darkCSSVars=s.darkCSSVars;exports.defaultThemeConfig=s.defaultThemeConfig;exports.generateCSSVars=s.generateCSSVars;exports.generateColorPalette=s.generateColorPalette;exports.getComponentSize=s.getComponentSize;exports.hexToRgb=s.hexToRgb;exports.mixColor=s.mixColor;exports.removeCSSVars=s.removeCSSVars;exports.removeDarkTheme=s.removeDarkTheme;exports.rgbToHex=s.rgbToHex;exports.sizeMap=s.sizeMap;exports.b=e.b;exports.block=e.block;exports.classNames=e.classNames;exports.coerceToArray=e.coerceToArray;exports.compose=e.compose;exports.constant=e.constant;exports.createNamespace=e.createNamespace;exports.debounce=e.debounce;exports.deepClone=e.deepClone;exports.deepMerge=e.deepMerge;exports.defaultNamespace=e.defaultNamespace;exports.defaultTo=e.defaultTo;exports.drawerZIndex=e.drawerZIndex;exports.dropdownZIndex=e.dropdownZIndex;exports.e=e.e;exports.element=e.element;exports.flatten=e.flatten;exports.get=e.get;exports.getCurrentZIndex=e.getCurrentZIndex;exports.getType=e.getType;exports.getZIndexList=e.getZIndexList;exports.identity=e.identity;exports.is=e.is;exports.isAndroid=e.isAndroid;exports.isArray=e.isArray;exports.isBoolean=e.isBoolean;exports.isBrowser=e.isBrowser;exports.isDate=e.isDate;exports.isDefined=e.isDefined;exports.isEmpty=e.isEmpty;exports.isFalse=e.isFalse;exports.isFunction=e.isFunction;exports.isIOS=e.isIOS;exports.isMobile=e.isMobile;exports.isNil=e.isNil;exports.isNull=e.isNull;exports.isNumber=e.isNumber;exports.isObject=e.isObject;exports.isPlainObject=e.isPlainObject;exports.isPromise=e.isPromise;exports.isRegExp=e.isRegExp;exports.isString=e.isString;exports.isSupportTouch=e.isSupportTouch;exports.isTrue=e.isTrue;exports.isType=e.isType;exports.isUndefined=e.isUndefined;exports.isWechat=e.isWechat;exports.loadingZIndex=e.loadingZIndex;exports.m=e.m;exports.messageZIndex=e.messageZIndex;exports.modalZIndex=e.modalZIndex;exports.modifier=e.modifier;exports.nextDrawerZIndex=e.nextDrawerZIndex;exports.nextDropdownZIndex=e.nextDropdownZIndex;exports.nextLoadingZIndex=e.nextLoadingZIndex;exports.nextMessageZIndex=e.nextMessageZIndex;exports.nextModalZIndex=e.nextModalZIndex;exports.nextPopoverZIndex=e.nextPopoverZIndex;exports.nextSelectZIndex=e.nextSelectZIndex;exports.nextTooltipZIndex=e.nextTooltipZIndex;exports.noop=e.noop;exports.once=e.once;exports.pipe=e.pipe;exports.popoverZIndex=e.popoverZIndex;exports.popupManage=e.popupManage;exports.resetZIndex=e.resetZIndex;exports.selectZIndex=e.selectZIndex;exports.set=e.set;exports.shortId=e.shortId;exports.state=e.state;exports.throttle=e.throttle;exports.tooltipZIndex=e.tooltipZIndex;exports.tryCatch=e.tryCatch;exports.unary=e.unary;exports.unique=e.unique;exports.useClass=e.useClass;exports.useComponentPrefix=e.useComponentPrefix;exports.useNamespace=e.useNamespace;exports.useZIndex=e.useZIndex;exports.uuid=e.uuid;exports.useClickOutside=n.useClickOutside;exports.useDOMObserver=n.useDOMObserver;exports.useDelayedAction=n.useDelayedAction;exports.useDisabled=n.useDisabled;exports.useEscape=n.useEscape;exports.useFocus=n.useFocus;exports.useIntersectionObserver=n.useIntersectionObserver;exports.useLoading=n.useLoading;exports.useModel=n.useModel;exports.useResize=n.useResize;exports.useScroll=n.useScroll;exports.useToggle=n.useToggle;exports.useVisible=n.useVisible;exports.createLocaleProvider=k;exports.getSupportedLocales=D;exports.localeInjectionKey=g;exports.localeNames=f;exports.locales=u;exports.useLocale=b;exports.version=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./theme/index.cjs"),e=require("./utils/index.cjs"),o=require("./hooks/index.cjs"),n=require("./locale/index.cjs"),t="1.0.0";exports.applyCSSVars=s.applyCSSVars;exports.applyDarkTheme=s.applyDarkTheme;exports.cssVarPrefix=s.cssVarPrefix;exports.darkCSSVars=s.darkCSSVars;exports.defaultThemeConfig=s.defaultThemeConfig;exports.generateCSSVars=s.generateCSSVars;exports.generateColorPalette=s.generateColorPalette;exports.getComponentSize=s.getComponentSize;exports.hexToRgb=s.hexToRgb;exports.mixColor=s.mixColor;exports.removeCSSVars=s.removeCSSVars;exports.removeDarkTheme=s.removeDarkTheme;exports.rgbToHex=s.rgbToHex;exports.sizeMap=s.sizeMap;exports.b=e.b;exports.block=e.block;exports.classNames=e.classNames;exports.coerceToArray=e.coerceToArray;exports.compose=e.compose;exports.constant=e.constant;exports.createNamespace=e.createNamespace;exports.debounce=e.debounce;exports.deepClone=e.deepClone;exports.deepMerge=e.deepMerge;exports.defaultNamespace=e.defaultNamespace;exports.defaultTo=e.defaultTo;exports.drawerZIndex=e.drawerZIndex;exports.dropdownZIndex=e.dropdownZIndex;exports.e=e.e;exports.element=e.element;exports.flatten=e.flatten;exports.get=e.get;exports.getCurrentZIndex=e.getCurrentZIndex;exports.getType=e.getType;exports.getZIndexList=e.getZIndexList;exports.identity=e.identity;exports.is=e.is;exports.isAndroid=e.isAndroid;exports.isArray=e.isArray;exports.isBoolean=e.isBoolean;exports.isBrowser=e.isBrowser;exports.isDate=e.isDate;exports.isDefined=e.isDefined;exports.isEmpty=e.isEmpty;exports.isFalse=e.isFalse;exports.isFunction=e.isFunction;exports.isIOS=e.isIOS;exports.isMobile=e.isMobile;exports.isNil=e.isNil;exports.isNull=e.isNull;exports.isNumber=e.isNumber;exports.isObject=e.isObject;exports.isPlainObject=e.isPlainObject;exports.isPromise=e.isPromise;exports.isRegExp=e.isRegExp;exports.isString=e.isString;exports.isSupportTouch=e.isSupportTouch;exports.isTrue=e.isTrue;exports.isType=e.isType;exports.isUndefined=e.isUndefined;exports.isWechat=e.isWechat;exports.loadingZIndex=e.loadingZIndex;exports.m=e.m;exports.messageZIndex=e.messageZIndex;exports.modalZIndex=e.modalZIndex;exports.modifier=e.modifier;exports.nextDrawerZIndex=e.nextDrawerZIndex;exports.nextDropdownZIndex=e.nextDropdownZIndex;exports.nextLoadingZIndex=e.nextLoadingZIndex;exports.nextMessageZIndex=e.nextMessageZIndex;exports.nextModalZIndex=e.nextModalZIndex;exports.nextPopoverZIndex=e.nextPopoverZIndex;exports.nextSelectZIndex=e.nextSelectZIndex;exports.nextTooltipZIndex=e.nextTooltipZIndex;exports.noop=e.noop;exports.once=e.once;exports.pipe=e.pipe;exports.popoverZIndex=e.popoverZIndex;exports.popupManage=e.popupManage;exports.resetZIndex=e.resetZIndex;exports.selectZIndex=e.selectZIndex;exports.set=e.set;exports.shortId=e.shortId;exports.state=e.state;exports.throttle=e.throttle;exports.tooltipZIndex=e.tooltipZIndex;exports.tryCatch=e.tryCatch;exports.unary=e.unary;exports.unique=e.unique;exports.useClass=e.useClass;exports.useComponentPrefix=e.useComponentPrefix;exports.useNamespace=e.useNamespace;exports.useZIndex=e.useZIndex;exports.uuid=e.uuid;exports.useClickOutside=o.useClickOutside;exports.useDOMObserver=o.useDOMObserver;exports.useDelayedAction=o.useDelayedAction;exports.useDisabled=o.useDisabled;exports.useEscape=o.useEscape;exports.useFocus=o.useFocus;exports.useIntersectionObserver=o.useIntersectionObserver;exports.useLoading=o.useLoading;exports.useModel=o.useModel;exports.useResize=o.useResize;exports.useScroll=o.useScroll;exports.useToggle=o.useToggle;exports.useVisible=o.useVisible;exports.createLocaleProvider=n.createLocaleProvider;exports.getSupportedLocales=n.getSupportedLocales;exports.localeInjectionKey=n.localeInjectionKey;exports.localeNames=n.localeNames;exports.locales=n.locales;exports.useLocale=n.useLocale;exports.version=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),u={confirm:"确认",cancel:"取消",save:"保存",delete:"删除",edit:"编辑",add:"添加",search:"搜索",reset:"重置",submit:"提交",back:"返回",close:"关闭",loading:"加载中...",noData:"暂无数据",noResult:"无匹配结果",success:"操作成功",failed:"操作失败",warning:"警告",error:"错误",info:"提示",form:{required:"此项为必填项",invalid:"格式不正确",minLength:"最少输入 {0} 个字符",maxLength:"最多输入 {0} 个字符",min:"不能小于 {0}",max:"不能大于 {0}",email:"请输入有效的邮箱地址",phone:"请输入有效的手机号码",url:"请输入有效的网址",idCard:"请输入有效的身份证号码",password:"密码长度应为 6-20 个字符",confirmPassword:"两次输入的密码不一致"},table:{total:"共 {0} 条",pageSize:"{0} 条/页",goto:"跳至",page:"页",prevPage:"上一页",nextPage:"下一页",selectAll:"全选",sort:"排序",filter:"筛选",columnSettings:"列设置",expand:"展开",collapse:"收起"},datePicker:{year:"年",month:"月",week:"周",day:"日",today:"今天",thisWeek:"本周",thisMonth:"本月",thisYear:"今年",lastWeek:"上周",lastMonth:"上月",lastYear:"去年",last7Days:"最近 7 天",last30Days:"最近 30 天",last90Days:"最近 90 天",custom:"自定义",startPlaceholder:"开始日期",endPlaceholder:"结束日期",startTimePlaceholder:"开始时间",endTimePlaceholder:"结束时间",months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],weeks:["日","一","二","三","四","五","六"]},timePicker:{hour:"时",minute:"分",second:"秒",now:"此刻",confirm:"确定"},upload:{selectFile:"选择文件",dragTip:"将文件拖到此处,或",clickUpload:"点击上传",uploadSuccess:"上传成功",uploadFailed:"上传失败",fileSizeLimit:"文件大小不超过 {0}",fileTypeLimit:"文件格式不支持",fileCountLimit:"最多上传 {0} 个文件",deleteConfirm:"确定删除此文件?",preview:"预览",download:"下载",remove:"删除"},pagination:{total:"共 {total} 条",pageSize:"{size} 条/页",goto:"前往",page:"页"},transfer:{searchPlaceholder:"请输入搜索内容",noData:"暂无数据",noMatch:"无匹配数据",toRight:"移至右侧",toLeft:"移至左侧",selectAll:"全选",selected:"已选 {count} 项"},tree:{expandAll:"展开全部",collapseAll:"收起全部",searchPlaceholder:"搜索关键字",noData:"暂无数据"},modal:{confirm:"确认",cancel:"取消",close:"关闭"},message:{success:"操作成功",warning:"警告提示",error:"错误提示",info:"信息提示"},image:{zoomIn:"放大",zoomOut:"缩小",rotateLeft:"左旋转",rotateRight:"右旋转",originalSize:"原始大小",prev:"上一张",next:"下一张"},result:{success:"操作成功",failed:"操作失败",warning:"警告提示",info:"信息提示",backHome:"返回首页",retry:"重试"}},f={confirm:"Confirm",cancel:"Cancel",save:"Save",delete:"Delete",edit:"Edit",add:"Add",search:"Search",reset:"Reset",submit:"Submit",back:"Back",close:"Close",loading:"Loading...",noData:"No Data",noResult:"No Result",success:"Success",failed:"Failed",warning:"Warning",error:"Error",info:"Info",form:{required:"This field is required",invalid:"Invalid format",minLength:"Minimum {0} characters required",maxLength:"Maximum {0} characters allowed",min:"Must be at least {0}",max:"Must be at most {0}",email:"Please enter a valid email",phone:"Please enter a valid phone number",url:"Please enter a valid URL",idCard:"Please enter a valid ID card number",password:"Password must be 6-20 characters",confirmPassword:"Passwords do not match"},table:{total:"Total {0} items",pageSize:"{0} / page",goto:"Go to",page:"Page",prevPage:"Previous",nextPage:"Next",selectAll:"Select All",sort:"Sort",filter:"Filter",columnSettings:"Column Settings",expand:"Expand",collapse:"Collapse"},datePicker:{year:"Year",month:"Month",week:"Week",day:"Day",today:"Today",thisWeek:"This Week",thisMonth:"This Month",thisYear:"This Year",lastWeek:"Last Week",lastMonth:"Last Month",lastYear:"Last Year",last7Days:"Last 7 Days",last30Days:"Last 30 Days",last90Days:"Last 90 Days",custom:"Custom",startPlaceholder:"Start Date",endPlaceholder:"End Date",startTimePlaceholder:"Start Time",endTimePlaceholder:"End Time",months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weeks:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},timePicker:{hour:"Hour",minute:"Minute",second:"Second",now:"Now",confirm:"OK"},upload:{selectFile:"Select File",dragTip:"Drag file here, or",clickUpload:"Click to Upload",uploadSuccess:"Upload Success",uploadFailed:"Upload Failed",fileSizeLimit:"File size must not exceed {0}",fileTypeLimit:"File type not supported",fileCountLimit:"Maximum {0} files allowed",deleteConfirm:"Are you sure to delete this file?",preview:"Preview",download:"Download",remove:"Remove"},pagination:{total:"Total {total} items",pageSize:"{size} / page",goto:"Go to",page:"Page"},transfer:{searchPlaceholder:"Search",noData:"No Data",noMatch:"No Match",toRight:"Move to Right",toLeft:"Move to Left",selectAll:"Select All",selected:"{count} items selected"},tree:{expandAll:"Expand All",collapseAll:"Collapse All",searchPlaceholder:"Search",noData:"No Data"},modal:{confirm:"Confirm",cancel:"Cancel",close:"Close"},message:{success:"Success",warning:"Warning",error:"Error",info:"Info"},image:{zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateLeft:"Rotate Left",rotateRight:"Rotate Right",originalSize:"Original Size",prev:"Previous",next:"Next"},result:{success:"Success",failed:"Failed",warning:"Warning",info:"Info",backHome:"Back Home",retry:"Retry"}},P={confirm:"確認",cancel:"キャンセル",save:"保存",delete:"削除",edit:"編集",add:"追加",search:"検索",reset:"リセット",submit:"送信",back:"戻る",close:"閉じる",loading:"読み込み中...",noData:"データがありません",noResult:"結果がありません",success:"成功",failed:"失敗",warning:"警告",error:"エラー",info:"情報",form:{required:"この項目は必須です",invalid:"形式が正しくありません",minLength:"{0}文字以上で入力してください",maxLength:"{0}文字以内で入力してください",min:"{0}以上で入力してください",max:"{0}以下で入力してください",email:"有効なメールアドレスを入力してください",phone:"有効な電話番号を入力してください",url:"有効なURLを入力してください",idCard:"有効なID番号を入力してください",password:"パスワードは6-20文字で入力してください",confirmPassword:"パスワードが一致しません"},table:{total:"合計 {0} 件",pageSize:"{0} 件/ページ",goto:"移動",page:"ページ",prevPage:"前へ",nextPage:"次へ",selectAll:"全選択",sort:"並び替え",filter:"フィルター",columnSettings:"列設定",expand:"展開",collapse:"折りたたむ"},datePicker:{year:"年",month:"月",week:"週",day:"日",today:"今日",thisWeek:"今週",thisMonth:"今月",thisYear:"今年",lastWeek:"先週",lastMonth:"先月",lastYear:"昨年",last7Days:"過去7日間",last30Days:"過去30日間",last90Days:"過去90日間",custom:"カスタム",startPlaceholder:"開始日",endPlaceholder:"終了日",startTimePlaceholder:"開始時間",endTimePlaceholder:"終了時間",months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],weeks:["日","月","火","水","木","金","土"]},timePicker:{hour:"時",minute:"分",second:"秒",now:"現在",confirm:"確定"},upload:{selectFile:"ファイルを選択",dragTip:"ファイルをここにドラッグ、または",clickUpload:"クリックしてアップロード",uploadSuccess:"アップロード成功",uploadFailed:"アップロード失敗",fileSizeLimit:"ファイルサイズは{0}以下にしてください",fileTypeLimit:"サポートされていないファイル形式です",fileCountLimit:"最大{0}ファイルまでアップロードできます",deleteConfirm:"このファイルを削除しますか?",preview:"プレビュー",download:"ダウンロード",remove:"削除"},pagination:{total:"合計 {total} 件",pageSize:"{size} 件/ページ",goto:"移動",page:"ページ"},transfer:{searchPlaceholder:"検索",noData:"データがありません",noMatch:"一致するデータがありません",toRight:"右に移動",toLeft:"左に移動",selectAll:"全選択",selected:"{count}件選択済み"},tree:{expandAll:"すべて展開",collapseAll:"すべて折りたたむ",searchPlaceholder:"キーワード検索",noData:"データがありません"},modal:{confirm:"確認",cancel:"キャンセル",close:"閉じる"},message:{success:"成功",warning:"警告",error:"エラー",info:"情報"},image:{zoomIn:"拡大",zoomOut:"縮小",rotateLeft:"左に回転",rotateRight:"右に回転",originalSize:"元のサイズ",prev:"前へ",next:"次へ"},result:{success:"成功",failed:"失敗",warning:"警告",info:"情報",backHome:"ホームに戻る",retry:"再試行"}},v={confirm:"확인",cancel:"취소",save:"저장",delete:"삭제",edit:"편집",add:"추가",search:"검색",reset:"초기화",submit:"제출",back:"뒤로",close:"닫기",loading:"로딩 중...",noData:"데이터 없음",noResult:"결과 없음",success:"성공",failed:"실패",warning:"경고",error:"오류",info:"정보",form:{required:"필수 항목입니다",invalid:"형식이 올바르지 않습니다",minLength:"최소 {0}자 이상 입력하세요",maxLength:"최대 {0}자까지 입력 가능합니다",min:"{0} 이상이어야 합니다",max:"{0} 이하여야 합니다",email:"올바른 이메일을 입력하세요",phone:"올바른 전화번호를 입력하세요",url:"올바른 URL을 입력하세요",idCard:"올바른 ID 번호를 입력하세요",password:"비밀번호는 6-20자여야 합니다",confirmPassword:"비밀번호가 일치하지 않습니다"},table:{total:"총 {0}개",pageSize:"{0}개/페이지",goto:"이동",page:"페이지",prevPage:"이전",nextPage:"다음",selectAll:"전체 선택",sort:"정렬",filter:"필터",columnSettings:"열 설정",expand:"펼치기",collapse:"접기"},datePicker:{year:"년",month:"월",week:"주",day:"일",today:"오늘",thisWeek:"이번 주",thisMonth:"이번 달",thisYear:"올해",lastWeek:"지난 주",lastMonth:"지난 달",lastYear:"작년",last7Days:"최근 7일",last30Days:"최근 30일",last90Days:"최근 90일",custom:"사용자 지정",startPlaceholder:"시작일",endPlaceholder:"종료일",startTimePlaceholder:"시작 시간",endTimePlaceholder:"종료 시간",months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],weeks:["일","월","화","수","목","금","토"]},timePicker:{hour:"시",minute:"분",second:"초",now:"현재",confirm:"확인"},upload:{selectFile:"파일 선택",dragTip:"파일을 여기에 끌어오거나",clickUpload:"클릭하여 업로드",uploadSuccess:"업로드 성공",uploadFailed:"업로드 실패",fileSizeLimit:"파일 크기는 {0} 이하여야 합니다",fileTypeLimit:"지원하지 않는 파일 형식입니다",fileCountLimit:"최대 {0}개까지 업로드 가능합니다",deleteConfirm:"이 파일을 삭제하시겠습니까?",preview:"미리보기",download:"다운로드",remove:"삭제"},pagination:{total:"총 {total}개",pageSize:"{size}개/페이지",goto:"이동",page:"페이지"},transfer:{searchPlaceholder:"검색",noData:"데이터 없음",noMatch:"일치하는 데이터 없음",toRight:"오른쪽으로 이동",toLeft:"왼쪽으로 이동",selectAll:"전체 선택",selected:"{count}개 선택됨"},tree:{expandAll:"모두 펼치기",collapseAll:"모두 접기",searchPlaceholder:"키워드 검색",noData:"데이터 없음"},modal:{confirm:"확인",cancel:"취소",close:"닫기"},message:{success:"성공",warning:"경고",error:"오류",info:"정보"},image:{zoomIn:"확대",zoomOut:"축소",rotateLeft:"왼쪽 회전",rotateRight:"오른쪽 회전",originalSize:"원본 크기",prev:"이전",next:"다음"},result:{success:"성공",failed:"실패",warning:"경고",info:"정보",backHome:"홈으로",retry:"재시도"}},n={"zh-CN":u,"en-US":f,"ja-JP":P,"ko-KR":v},g={"zh-CN":"简体中文","en-US":"English","ja-JP":"日本語","ko-KR":"한국어"},m=Symbol("locale"),S=c.ref("zh-CN"),w=c.ref({...u});function h(a,t){const e=t.split(".");let l=a;for(const r of e)if(l&&typeof l=="object"&&r in l)l=l[r];else return;return typeof l=="string"?l:void 0}function p(a,t){return a.replace(/\{(\d+)\}/g,(e,l)=>{const r=parseInt(l,10);return t[r]!==void 0?String(t[r]):e})}function L(){const a=c.inject(m,null),t=(a==null?void 0:a.locale)||S,e=(a==null?void 0:a.messages)||w,l=(o,...d)=>{const i=h(e.value,o);return i===void 0?(console.warn(`[xto-i18n] Missing translation for key: ${o}`),o):d.length>0?p(i,d):i},r=o=>{n[o]?(t.value=o,e.value={...n[o]}):console.warn(`[xto-i18n] Unknown locale: ${o}`)},s=o=>{e.value={...e.value,...o}};return{locale:t,messages:c.computed(()=>e.value),t:l,setLocale:r,mergeMessages:s}}function y(){return Object.entries(g).map(([a,t])=>({code:a,name:t}))}function k(a="zh-CN"){const t=c.ref(a),e=c.ref({...n[a]});return{locale:t,messages:e,setLocale:s=>{n[s]&&(t.value=s,e.value={...n[s]})},mergeMessages:s=>{e.value={...e.value,...s}},install(s){s.provide(m,{locale:t,messages:e}),s.config.globalProperties.$t=(o,...d)=>{const i=h(e.value,o);return i===void 0?o:d.length>0?p(i,d):i},s.config.globalProperties.$locale=t}}}exports.createLocaleProvider=k;exports.getSupportedLocales=y;exports.localeInjectionKey=m;exports.localeNames=g;exports.locales=n;exports.useLocale=L;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xto/core",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Xto Core - Theme, hooks, utils, i18n and types",
5
5
  "homepage": "https://jinguchu.github.io/xto-ui/",
6
6
  "repository": {
@@ -55,6 +55,7 @@
55
55
  "@xto/build": "workspace:*",
56
56
  "typescript": "^5.4.2",
57
57
  "vite": "^5.2.0",
58
+ "vite-plugin-dts": "^4.5.4",
58
59
  "vitest": "^1.4.0",
59
60
  "vue": "^3.4.21"
60
61
  }