@owocow/saber-ui 0.0.2 → 0.0.3

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 (130) hide show
  1. package/README.md +206 -11
  2. package/dist/BadgeStatus.types.d.ts +1 -1
  3. package/dist/BadgeStatus.vue.d.ts +1 -1
  4. package/dist/SaberConfirmModal.vue_vue_type_script_setup_true_lang-Cqp9krYl.js +86 -0
  5. package/dist/SaberConfirmProvider.vue_vue_type_script_setup_true_lang-DUJ6ftNJ.js +30 -0
  6. package/dist/SaberDictCheckbox.vue_vue_type_script_setup_true_lang-DUbzy_C6.js +34 -0
  7. package/dist/SaberDictRadio.vue_vue_type_script_setup_true_lang-DR6-jSID.js +50 -0
  8. package/dist/SaberDictSelect.vue_vue_type_script_setup_true_lang-B8PTKNKX.js +35 -0
  9. package/dist/SaberDistrictSelect.vue_vue_type_script_setup_true_lang-BX8nLC35.js +257 -0
  10. package/dist/SaberInfo.vue_vue_type_script_setup_true_lang-B3W5VsGR.js +58 -0
  11. package/dist/SaberInfoProvider.vue_vue_type_script_setup_true_lang-3rF6bSCn.js +28 -0
  12. package/dist/SaberModal.vue_vue_type_script_setup_true_lang-DJno3jA3.js +71 -0
  13. package/dist/SaberModalWithMobile.vue_vue_type_script_setup_true_lang-aQlToncY.js +87 -0
  14. package/dist/SaberNoData.types.d.ts +11 -0
  15. package/dist/SaberNoData.vue.d.ts +24 -0
  16. package/dist/SaberPopSelect.vue_vue_type_script_setup_true_lang-BcS27NXI.js +125 -0
  17. package/dist/SaberStatus.vue_vue_type_script_setup_true_lang-D9aRVCow.js +38 -0
  18. package/dist/SaberSwitchBar.vue_vue_type_script_setup_true_lang-CDx3Dcas.js +47 -0
  19. package/dist/SaberUploadImage.vue_vue_type_script_setup_true_lang-CAwci2Vr.js +224 -0
  20. package/dist/colors.d.ts +1 -1
  21. package/dist/components/SaberConfirmModal.mjs +4 -0
  22. package/dist/components/SaberConfirmModal.vue.d.ts +28 -0
  23. package/dist/components/SaberConfirmProvider.mjs +4 -0
  24. package/dist/components/SaberConfirmProvider.vue.d.ts +2 -0
  25. package/dist/components/SaberInfo.mjs +4 -0
  26. package/dist/components/SaberInfo.types.d.ts +14 -0
  27. package/dist/components/SaberInfo.vue.d.ts +21 -0
  28. package/dist/components/SaberInfoProvider.mjs +4 -0
  29. package/dist/components/SaberInfoProvider.vue.d.ts +20 -0
  30. package/dist/components/SaberModalWithMobile.mjs +4 -0
  31. package/dist/components/SaberModalWithMobile.vue.d.ts +36 -0
  32. package/dist/components/SaberStatus.mjs +4 -0
  33. package/dist/components/SaberStatus.types.d.ts +1 -0
  34. package/dist/components/SaberStatus.vue.d.ts +8 -0
  35. package/dist/components/SaberSwitchBar.mjs +4 -0
  36. package/dist/components/SaberSwitchBar.types.d.ts +13 -0
  37. package/dist/components/SaberSwitchBar.vue.d.ts +18 -0
  38. package/dist/components/info-context.d.ts +3 -0
  39. package/dist/composables/index.d.ts +12 -0
  40. package/dist/composables/use-address-parse.d.ts +15 -0
  41. package/dist/composables/use-address-parse.mjs +20 -0
  42. package/dist/composables/use-boolean.d.ts +8 -0
  43. package/dist/composables/use-boolean.mjs +20 -0
  44. package/dist/composables/use-confirm.d.ts +34 -0
  45. package/dist/composables/use-confirm.mjs +28 -0
  46. package/dist/composables/use-delay-unmount.d.ts +7 -0
  47. package/dist/composables/use-delay-unmount.mjs +26 -0
  48. package/dist/composables/use-delete.d.ts +13 -0
  49. package/dist/composables/use-delete.mjs +19 -0
  50. package/dist/composables/use-loading.d.ts +6 -0
  51. package/dist/composables/use-loading.mjs +8 -0
  52. package/dist/composables/use-skeleton.d.ts +5 -0
  53. package/dist/composables/use-skeleton.mjs +23 -0
  54. package/dist/composables/use-table.d.ts +57 -0
  55. package/dist/composables/use-table.mjs +87 -0
  56. package/dist/composables.mjs +21 -0
  57. package/dist/district-service-cOu1tbQG.js +147 -0
  58. package/dist/district.d.ts +3 -0
  59. package/dist/district.mjs +8 -0
  60. package/dist/forms/components/SaberFilterBar.vue.d.ts +41 -0
  61. package/dist/forms/components/SaberFormModal.vue.d.ts +31 -0
  62. package/dist/forms/components/SaberModal.vue.d.ts +34 -0
  63. package/dist/forms/components/fields/SaberDictCheckbox.vue.d.ts +24 -0
  64. package/dist/forms/components/fields/SaberDictRadio.vue.d.ts +24 -0
  65. package/dist/forms/components/fields/SaberDictSelect.vue.d.ts +28 -0
  66. package/dist/forms/components/fields/SaberDistrictSelect.vue.d.ts +31 -0
  67. package/dist/forms/components/fields/SaberInput.vue.d.ts +16 -0
  68. package/dist/forms/components/fields/SaberInputNumber.vue.d.ts +11 -0
  69. package/dist/forms/components/fields/SaberPopSelect.vue.d.ts +25 -0
  70. package/dist/forms/components/fields/SaberRadioGroup.vue.d.ts +11 -0
  71. package/dist/forms/components/fields/SaberSelect.vue.d.ts +11 -0
  72. package/dist/forms/components/fields/SaberTextarea.vue.d.ts +11 -0
  73. package/dist/forms/components/fields/SaberUploadImage.vue.d.ts +113 -0
  74. package/dist/forms/dict-checkbox.mjs +4 -0
  75. package/dist/forms/dict-radio.mjs +4 -0
  76. package/dist/forms/dict-select.mjs +4 -0
  77. package/dist/forms/dict-source.d.ts +3 -0
  78. package/dist/forms/district-select.mjs +4 -0
  79. package/dist/forms/district-service.d.ts +46 -0
  80. package/dist/forms/filter-state.d.ts +4 -0
  81. package/dist/forms/index.d.ts +24 -0
  82. package/dist/forms/plugin.d.ts +20 -0
  83. package/dist/forms/pop-select.mjs +4 -0
  84. package/dist/forms/presets/basic.d.ts +5 -0
  85. package/dist/forms/registry.d.ts +15 -0
  86. package/dist/forms/types.d.ts +102 -0
  87. package/dist/forms/upload-image-source.d.ts +3 -0
  88. package/dist/forms/upload-image.mjs +4 -0
  89. package/dist/forms/use-dict-options.d.ts +8 -0
  90. package/dist/forms.mjs +45 -0
  91. package/dist/index.d.ts +62 -1
  92. package/dist/index.mjs +122 -33
  93. package/dist/info-context-MfOfJNDT.js +4 -0
  94. package/dist/plugin-Dr3z0YFg.js +396 -0
  95. package/dist/types/api.d.ts +30 -0
  96. package/dist/types/auth.d.ts +54 -0
  97. package/dist/types/common.d.ts +14 -0
  98. package/dist/types/index.d.ts +3 -0
  99. package/dist/types/index.mjs +1 -0
  100. package/dist/upload-image-source-On8NHgmx.js +4 -0
  101. package/dist/use-dict-options-DjtbYYIa.js +38 -0
  102. package/dist/utils/addressParse.d.ts +37 -0
  103. package/dist/utils/addressParse.mjs +623 -0
  104. package/dist/utils/crypto.d.ts +11 -0
  105. package/dist/utils/crypto.mjs +36 -0
  106. package/dist/utils/filter.d.ts +20 -0
  107. package/dist/utils/filter.mjs +11 -0
  108. package/dist/utils/format.d.ts +9 -0
  109. package/dist/utils/format.mjs +7 -0
  110. package/dist/utils/http.d.ts +45 -0
  111. package/dist/utils/http.mjs +147 -0
  112. package/dist/utils/index.d.ts +12 -0
  113. package/dist/utils/index.mjs +41 -0
  114. package/dist/utils/klona.d.ts +2 -0
  115. package/dist/utils/klona.mjs +4 -0
  116. package/dist/utils/nanoid.d.ts +2 -0
  117. package/dist/utils/nanoid.mjs +4 -0
  118. package/dist/utils/permission.d.ts +45 -0
  119. package/dist/utils/permission.mjs +38 -0
  120. package/dist/utils/rsa.d.ts +26 -0
  121. package/dist/utils/rsa.mjs +2073 -0
  122. package/dist/utils/storage.d.ts +29 -0
  123. package/dist/utils/storage.mjs +39 -0
  124. package/dist/utils/toast.d.ts +26 -0
  125. package/dist/utils/toast.mjs +17 -0
  126. package/dist/utils/tree.d.ts +20 -0
  127. package/dist/utils/tree.mjs +30 -0
  128. package/package.json +179 -9
  129. package/dist/index.cjs +0 -1
  130. package/dist/vite.cjs +0 -1
@@ -0,0 +1,29 @@
1
+ /**
2
+ * AES 加密 localStorage 模块
3
+ *
4
+ * 使用前需在 main.ts 中调用 setupStorage() 注入密钥与前缀:
5
+ *
6
+ * @example
7
+ * import { setupStorage } from '@owocow/saber-ui/utils/storage'
8
+ *
9
+ * setupStorage({
10
+ * secret: import.meta.env.VITE_STORAGE_SECRET,
11
+ * prefix: import.meta.env.VITE_STORAGE_PREFIX,
12
+ * })
13
+ *
14
+ * // 之后任意位置直接使用
15
+ * import { storage } from '@owocow/saber-ui/utils/storage'
16
+ * storage.set('key', value)
17
+ */
18
+ export interface StorageConfig {
19
+ secret: string;
20
+ prefix?: string;
21
+ }
22
+ /** 初始化加密存储模块 */
23
+ export declare function setupStorage(config: StorageConfig): void;
24
+ export declare const storage: {
25
+ set(key: string, value: unknown): void;
26
+ get<T>(key: string): T | null;
27
+ remove(key: string): void;
28
+ clear(): void;
29
+ };
@@ -0,0 +1,39 @@
1
+ import c from "crypto-js";
2
+ let t = "", a = "";
3
+ function p(e) {
4
+ t = e.secret, a = e.prefix ?? "";
5
+ }
6
+ const n = (e) => `${a}${e}`, g = {
7
+ set(e, r) {
8
+ if (!t)
9
+ throw new Error("[storage] 尚未初始化,请先调用 setupStorage({ secret, prefix })");
10
+ try {
11
+ const o = JSON.stringify(r), s = c.AES.encrypt(o, t).toString();
12
+ localStorage.setItem(n(e), s);
13
+ } catch (o) {
14
+ console.error("[storage.set] failed", e, o);
15
+ }
16
+ },
17
+ get(e) {
18
+ if (!t)
19
+ throw new Error("[storage] 尚未初始化,请先调用 setupStorage({ secret, prefix })");
20
+ const r = localStorage.getItem(n(e));
21
+ if (!r) return null;
22
+ try {
23
+ const s = c.AES.decrypt(r, t).toString(c.enc.Utf8);
24
+ return JSON.parse(s);
25
+ } catch {
26
+ return null;
27
+ }
28
+ },
29
+ remove(e) {
30
+ localStorage.removeItem(n(e));
31
+ },
32
+ clear() {
33
+ localStorage.clear();
34
+ }
35
+ };
36
+ export {
37
+ p as setupStorage,
38
+ g as storage
39
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Toast 依赖注入模块
3
+ *
4
+ * 由 App.vue setup 注入 toast 实例,非组件场景(如 http 拦截器)通过 getToast() 获取。
5
+ *
6
+ * @example
7
+ * // App.vue
8
+ * import { setToast } from '@owocow/saber-ui/utils/toast'
9
+ * setToast(useToast())
10
+ *
11
+ * // 任意位置
12
+ * import { getToast } from '@owocow/saber-ui/utils/toast'
13
+ * getToast().add({ title: '操作成功', color: 'success' })
14
+ */
15
+ export interface ToastInstance {
16
+ add: (options: {
17
+ title: string;
18
+ color?: string;
19
+ duration?: number;
20
+ }) => void;
21
+ clear: () => void;
22
+ }
23
+ export declare function setToast(instance: ToastInstance): void;
24
+ export declare function getToast(): ToastInstance;
25
+ /** 安全版本:未初始化时返回 null,适用于路由守卫等早于 App.vue 执行的场景 */
26
+ export declare function tryGetToast(): ToastInstance | null;
@@ -0,0 +1,17 @@
1
+ let t = null;
2
+ function e(o) {
3
+ t = o;
4
+ }
5
+ function n() {
6
+ if (!t)
7
+ throw new Error("[toast] 尚未初始化,请确认 App.vue 已调用 setToast(useToast())");
8
+ return t;
9
+ }
10
+ function r() {
11
+ return t;
12
+ }
13
+ export {
14
+ n as getToast,
15
+ e as setToast,
16
+ r as tryGetToast
17
+ };
@@ -0,0 +1,20 @@
1
+ export interface TreeConfig {
2
+ /** id 字段名 */
3
+ idField: string;
4
+ /** 父级 id 字段名,默认 'parentId' */
5
+ parentIdField?: string;
6
+ /** 子节点字段名,默认 'children' */
7
+ childrenField?: string;
8
+ /** 过滤函数 */
9
+ filterFn?: (node: any) => boolean;
10
+ /** 需要从节点中删除的字段 */
11
+ omitFields?: string[];
12
+ }
13
+ /**
14
+ * 扁平列表转树形结构
15
+ *
16
+ * @param data 数据源
17
+ * @param config 配置选项
18
+ * @returns 树形结构数据
19
+ */
20
+ export declare function createTreeFromList<T extends Record<string, any>>(data: T[], config: TreeConfig): T[];
@@ -0,0 +1,30 @@
1
+ function g(o, u) {
2
+ if (!(o != null && o.length))
3
+ return [];
4
+ const { idField: c, parentIdField: f = "parentId", childrenField: l = "children", filterFn: d = () => !0, omitFields: F = [] } = u, i = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), r = [];
5
+ for (const e of o) {
6
+ for (const s of F)
7
+ delete e[s];
8
+ const n = e[c], t = e[f];
9
+ p.set(n, e), i.has(t) || i.set(t, []), d(e) && i.get(t).push(e);
10
+ }
11
+ for (const e of o) {
12
+ const n = e[f];
13
+ !p.has(n) && d(e) && r.push(e);
14
+ }
15
+ const h = (e) => {
16
+ const n = e[c], t = i.get(n);
17
+ if (t != null && t.length) {
18
+ e[l] = t;
19
+ for (const s of t)
20
+ h(s);
21
+ } else
22
+ e[l] = void 0;
23
+ };
24
+ for (const e of r)
25
+ h(e);
26
+ return r;
27
+ }
28
+ export {
29
+ g as createTreeFromList
30
+ };
package/package.json CHANGED
@@ -1,21 +1,172 @@
1
1
  {
2
2
  "name": "@owocow/saber-ui",
3
- "version": "0.0.2",
4
- "description": "Vue 3 component library BadgeStatus and more, built on top of @nuxt/ui",
3
+ "version": "0.0.3",
4
+ "description": "Saber application foundation for Vue 3 projects built on Nuxt UI",
5
5
  "type": "module",
6
- "main": "./dist/index.cjs",
6
+ "sideEffects": false,
7
+ "main": "./dist/index.mjs",
7
8
  "module": "./dist/index.mjs",
8
9
  "types": "./dist/index.d.ts",
9
10
  "exports": {
10
11
  ".": {
11
12
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.mjs",
13
- "require": "./dist/index.cjs"
13
+ "import": "./dist/index.mjs"
14
14
  },
15
15
  "./vite": {
16
16
  "types": "./dist/vite.d.ts",
17
- "import": "./dist/vite.mjs",
18
- "require": "./dist/vite.cjs"
17
+ "import": "./dist/vite.mjs"
18
+ },
19
+ "./district": {
20
+ "types": "./dist/district.d.ts",
21
+ "import": "./dist/district.mjs"
22
+ },
23
+ "./forms": {
24
+ "types": "./dist/forms/index.d.ts",
25
+ "import": "./dist/forms.mjs"
26
+ },
27
+ "./forms/pop-select": {
28
+ "types": "./dist/forms/components/fields/SaberPopSelect.vue.d.ts",
29
+ "import": "./dist/forms/pop-select.mjs"
30
+ },
31
+ "./forms/district-select": {
32
+ "types": "./dist/forms/components/fields/SaberDistrictSelect.vue.d.ts",
33
+ "import": "./dist/forms/district-select.mjs"
34
+ },
35
+ "./forms/dict-checkbox": {
36
+ "types": "./dist/forms/components/fields/SaberDictCheckbox.vue.d.ts",
37
+ "import": "./dist/forms/dict-checkbox.mjs"
38
+ },
39
+ "./forms/dict-radio": {
40
+ "types": "./dist/forms/components/fields/SaberDictRadio.vue.d.ts",
41
+ "import": "./dist/forms/dict-radio.mjs"
42
+ },
43
+ "./forms/dict-select": {
44
+ "types": "./dist/forms/components/fields/SaberDictSelect.vue.d.ts",
45
+ "import": "./dist/forms/dict-select.mjs"
46
+ },
47
+ "./forms/upload-image": {
48
+ "types": "./dist/forms/components/fields/SaberUploadImage.vue.d.ts",
49
+ "import": "./dist/forms/upload-image.mjs"
50
+ },
51
+ "./composables": {
52
+ "types": "./dist/composables/index.d.ts",
53
+ "import": "./dist/composables.mjs"
54
+ },
55
+ "./composables/use-boolean": {
56
+ "types": "./dist/composables/use-boolean.d.ts",
57
+ "import": "./dist/composables/use-boolean.mjs"
58
+ },
59
+ "./composables/use-loading": {
60
+ "types": "./dist/composables/use-loading.d.ts",
61
+ "import": "./dist/composables/use-loading.mjs"
62
+ },
63
+ "./composables/use-confirm": {
64
+ "types": "./dist/composables/use-confirm.d.ts",
65
+ "import": "./dist/composables/use-confirm.mjs"
66
+ },
67
+ "./composables/use-delete": {
68
+ "types": "./dist/composables/use-delete.d.ts",
69
+ "import": "./dist/composables/use-delete.mjs"
70
+ },
71
+ "./composables/use-table": {
72
+ "types": "./dist/composables/use-table.d.ts",
73
+ "import": "./dist/composables/use-table.mjs"
74
+ },
75
+ "./composables/use-skeleton": {
76
+ "types": "./dist/composables/use-skeleton.d.ts",
77
+ "import": "./dist/composables/use-skeleton.mjs"
78
+ },
79
+ "./composables/use-delay-unmount": {
80
+ "types": "./dist/composables/use-delay-unmount.d.ts",
81
+ "import": "./dist/composables/use-delay-unmount.mjs"
82
+ },
83
+ "./composables/use-address-parse": {
84
+ "types": "./dist/composables/use-address-parse.d.ts",
85
+ "import": "./dist/composables/use-address-parse.mjs"
86
+ },
87
+ "./components/SaberInfo": {
88
+ "types": "./dist/components/SaberInfo.vue.d.ts",
89
+ "import": "./dist/components/SaberInfo.mjs"
90
+ },
91
+ "./components/SaberInfoProvider": {
92
+ "types": "./dist/components/SaberInfoProvider.vue.d.ts",
93
+ "import": "./dist/components/SaberInfoProvider.mjs"
94
+ },
95
+ "./components/SaberSwitchBar": {
96
+ "types": "./dist/components/SaberSwitchBar.vue.d.ts",
97
+ "import": "./dist/components/SaberSwitchBar.mjs"
98
+ },
99
+ "./components/SaberStatus": {
100
+ "types": "./dist/components/SaberStatus.vue.d.ts",
101
+ "import": "./dist/components/SaberStatus.mjs"
102
+ },
103
+ "./components/SaberConfirmModal": {
104
+ "types": "./dist/components/SaberConfirmModal.vue.d.ts",
105
+ "import": "./dist/components/SaberConfirmModal.mjs"
106
+ },
107
+ "./components/SaberConfirmProvider": {
108
+ "types": "./dist/components/SaberConfirmProvider.vue.d.ts",
109
+ "import": "./dist/components/SaberConfirmProvider.mjs"
110
+ },
111
+ "./components/SaberModalWithMobile": {
112
+ "types": "./dist/components/SaberModalWithMobile.vue.d.ts",
113
+ "import": "./dist/components/SaberModalWithMobile.mjs"
114
+ },
115
+ "./types": {
116
+ "types": "./dist/types/index.d.ts",
117
+ "import": "./dist/types/index.mjs"
118
+ },
119
+ "./utils": {
120
+ "types": "./dist/utils/index.d.ts",
121
+ "import": "./dist/utils/index.mjs"
122
+ },
123
+ "./utils/permission": {
124
+ "types": "./dist/utils/permission.d.ts",
125
+ "import": "./dist/utils/permission.mjs"
126
+ },
127
+ "./utils/format": {
128
+ "types": "./dist/utils/format.d.ts",
129
+ "import": "./dist/utils/format.mjs"
130
+ },
131
+ "./utils/filter": {
132
+ "types": "./dist/utils/filter.d.ts",
133
+ "import": "./dist/utils/filter.mjs"
134
+ },
135
+ "./utils/tree": {
136
+ "types": "./dist/utils/tree.d.ts",
137
+ "import": "./dist/utils/tree.mjs"
138
+ },
139
+ "./utils/crypto": {
140
+ "types": "./dist/utils/crypto.d.ts",
141
+ "import": "./dist/utils/crypto.mjs"
142
+ },
143
+ "./utils/toast": {
144
+ "types": "./dist/utils/toast.d.ts",
145
+ "import": "./dist/utils/toast.mjs"
146
+ },
147
+ "./utils/klona": {
148
+ "types": "./dist/utils/klona.d.ts",
149
+ "import": "./dist/utils/klona.mjs"
150
+ },
151
+ "./utils/nanoid": {
152
+ "types": "./dist/utils/nanoid.d.ts",
153
+ "import": "./dist/utils/nanoid.mjs"
154
+ },
155
+ "./utils/storage": {
156
+ "types": "./dist/utils/storage.d.ts",
157
+ "import": "./dist/utils/storage.mjs"
158
+ },
159
+ "./utils/rsa": {
160
+ "types": "./dist/utils/rsa.d.ts",
161
+ "import": "./dist/utils/rsa.mjs"
162
+ },
163
+ "./utils/http": {
164
+ "types": "./dist/utils/http.d.ts",
165
+ "import": "./dist/utils/http.mjs"
166
+ },
167
+ "./utils/addressParse": {
168
+ "types": "./dist/utils/addressParse.d.ts",
169
+ "import": "./dist/utils/addressParse.mjs"
19
170
  }
20
171
  },
21
172
  "files": [
@@ -23,19 +174,38 @@
23
174
  ],
24
175
  "scripts": {
25
176
  "build": "vite build",
177
+ "docs:dev": "vitepress dev docs",
178
+ "docs:typecheck": "tsc -p docs/tsconfig.json --noEmit",
179
+ "docs:build": "vitepress build docs",
180
+ "docs:preview": "vitepress preview docs",
181
+ "verify": "pnpm build && pnpm docs:typecheck && pnpm docs:build",
26
182
  "prepublishOnly": "npm run build"
27
183
  },
184
+ "dependencies": {
185
+ "crypto-js": "^4.2.0",
186
+ "jsencrypt": "^3.5.4",
187
+ "klona": "^2.0.6",
188
+ "nanoid": "^5.1.9",
189
+ "ofetch": "^1.5.1"
190
+ },
28
191
  "peerDependencies": {
29
192
  "@nuxt/ui": "^4",
30
193
  "vue": "^3"
31
194
  },
32
195
  "devDependencies": {
33
- "@nuxt/ui": "^4",
196
+ "@nuxt/ui": "4.8.0",
197
+ "@tailwindcss/vite": "^4.3.3",
198
+ "@types/crypto-js": "^4.2.2",
199
+ "@types/node": "^26.1.2",
34
200
  "@vitejs/plugin-vue": "^5",
201
+ "tailwindcss": "^4.3.3",
35
202
  "typescript": "^5",
203
+ "unplugin-vue-components": "^32",
36
204
  "vite": "^6",
37
205
  "vite-plugin-dts": "^4",
38
- "vue": "^3"
206
+ "vitepress": "2.0.0-alpha.19",
207
+ "vue": "^3.5.31",
208
+ "vue-router": "^4.6.4"
39
209
  },
40
210
  "keywords": [
41
211
  "vue",
package/dist/index.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("@nuxt/ui/components/Badge.vue"),l=require("vue"),s={red:{500:"#ef4444",600:"#dc2626"},orange:{500:"#f97316",600:"#ea580c"},amber:{500:"#f59e0b",600:"#d97706"},yellow:{500:"#eab308",600:"#ca8a04"},lime:{500:"#84cc16",600:"#65a30d"},green:{500:"#22c55e",600:"#16a34a"},emerald:{500:"#10b981",600:"#059669"},teal:{500:"#14b8a6",600:"#0d9488"},cyan:{500:"#06b6d4",600:"#0891b2"},sky:{500:"#0ea5e9",600:"#0284c7"},blue:{500:"#3b82f6",600:"#2563eb"},indigo:{500:"#6366f1",600:"#4f46e5"},violet:{500:"#8b5cf6",600:"#7c3aed"},purple:{500:"#a855f7",600:"#9333ea"},fuchsia:{500:"#d946ef",600:"#c026d3"},pink:{500:"#ec4899",600:"#db2777"},rose:{500:"#f43f5e",600:"#e11d48"},slate:{500:"#64748b",600:"#475569"},gray:{500:"#6b7280",600:"#4b5563"},zinc:{500:"#71717a",600:"#52525b"},neutral:{500:"#737373",600:"#525252"},stone:{500:"#78716c",600:"#57534e"}},g=s.gray;function u(e,t){var o,c;return((o=s[e])==null?void 0:o[t])??((c=s[e])==null?void 0:c[500])??g[500]}function p(e,t){const o=parseInt(e.slice(1,3),16),c=parseInt(e.slice(3,5),16),a=parseInt(e.slice(5,7),16);return`rgba(${o}, ${c}, ${a}, ${t/100})`}const d=l.defineComponent({__name:"BadgeStatus",props:{value:{},config:{},bgOpacity:{default:20},textColorWeight:{default:500}},setup(e){const t=e,o=l.computed(()=>{const a=String(t.value);for(const n of t.config){const[r,i,f]=n.split(":");if(i===a)return{label:r,color:f||"gray"}}return{label:a,color:"gray"}}),c=l.computed(()=>{const{color:a}=o.value,n=u(a,500),r=u(a,t.textColorWeight);return{backgroundColor:p(n,t.bgOpacity),color:r}});return(a,n)=>(l.openBlock(),l.createBlock(b,{style:l.normalizeStyle(c.value),variant:"soft",label:o.value.label,class:"rounded-full border-0 pt-0.75 pb-0.75 px-2"},null,8,["style","label"]))}}),y={install(e){e.component("UBadge",b),e.component("BadgeStatus",d)}};exports.BadgeStatus=d;exports.default=y;
package/dist/vite.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";const e=require("@nuxt/ui/vite");module.exports=e;