@huyooo/ui 0.10.4 → 0.10.7

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 (65) hide show
  1. package/dist/AuthkitSignInPhone-BWPCpUie.js +3034 -0
  2. package/dist/{Clipboard-CMm8I4Rb.js → Clipboard-CK_nROjb.js} +1 -1
  3. package/dist/CollapseItem-DUzZA6tx.js +124 -0
  4. package/dist/{Contact-Dgn8_it4.js → Contact-CpHU1bJ7.js} +2 -2
  5. package/dist/{CustomTable-CVZ4mFzi.js → CustomTable-1W5byjgJ.js} +3 -2
  6. package/dist/FeedbackModal-qAJLL3V3.js +1535 -0
  7. package/dist/{LandingPageSectionTabs-Dv_xOLqR.js → LandingPageSectionTabs-B6ZVxR47.js} +1 -1
  8. package/dist/MessageNoticeNotificationsDetails.vue_vue_type_script_setup_true_lang-D109kT8_.js +1282 -0
  9. package/dist/{PaySubscriptions-W6GJ28uE.js → PaySubscriptions-C4Een__-.js} +17 -16
  10. package/dist/{ReferrerReferees-C5Sjn7aD.js → ReferrerReferees-DIassvGO.js} +8 -8
  11. package/dist/{Upload.vue_vue_type_script_setup_true_lang-C4-In_x4.js → Upload.vue_vue_type_script_setup_true_lang-DA8VZBrl.js} +1 -1
  12. package/dist/UserAccountMenu-BIRTtjLb.js +266 -0
  13. package/dist/UserSubscriptionBaseInformation-BUs3qiHd.js +60 -0
  14. package/dist/WidthContainer-TXsvW1ut.js +673 -0
  15. package/dist/{apiClients-DJchWBAG.js → apiClients-ANEApCyY.js} +84 -75
  16. package/dist/authkit.d.ts +5 -6
  17. package/dist/authkit.js +43 -43
  18. package/dist/common.js +3 -3
  19. package/dist/components/Authkit/Auth/AuthkitServiceAgreementAndPrivacyProtection.vue.d.ts +5 -5
  20. package/dist/components/Authkit/AuthkitAuthModal.vue.d.ts +13 -31
  21. package/dist/components/Feedback/FeedbackBubbleEnd.vue.d.ts +1 -1
  22. package/dist/components/Feedback/FeedbackBubbleStart.vue.d.ts +1 -1
  23. package/dist/components/User/UserButton.vue.d.ts +1 -36
  24. package/dist/components/User/UserPanel.vue.d.ts +26 -201
  25. package/dist/components/User/UserPanelItem.vue.d.ts +38 -0
  26. package/dist/composables/Authkit/useAuthkitAuth.d.ts +34 -10
  27. package/dist/composables/Authkit/useAuthkitAuthModal.d.ts +22 -3
  28. package/dist/composables/Authkit/useLegalLinks.d.ts +34 -0
  29. package/dist/composables/Authkit/useOauth.d.ts +0 -1
  30. package/dist/composables.d.ts +3 -2
  31. package/dist/composables.js +27 -25
  32. package/dist/{useUploadCos-BO3W_uqs.js → cos-js-sdk-v5-BJ5AlBRu.js} +2232 -2469
  33. package/dist/feedback.js +15 -16
  34. package/dist/landingPage.js +1 -1
  35. package/dist/main.js +177 -177
  36. package/dist/message.js +9 -10
  37. package/dist/pay.js +1 -1
  38. package/dist/privateCom.js +1 -1
  39. package/dist/referrer.js +1 -1
  40. package/dist/style.css +1 -1
  41. package/dist/upload.js +2 -2
  42. package/dist/{useAuthkitAppsAuthPageInfo-C3EHOtlk.js → useAuthkitAppsAuthPageInfo-Da2yJTT-.js} +1 -1
  43. package/dist/{useAuthkitCreateAndUpdate-CPkogY7K.js → useAuthkitCreateAndUpdate-BLs5vQOu.js} +1 -1
  44. package/dist/useAuthkitUsersProfile-Cx8NXjlt.js +186 -0
  45. package/dist/{useDownloads-COXmopbe.js → useDownloads-DT5W2af6.js} +1 -1
  46. package/dist/useLegalLinks-BIF45kUt.js +60 -0
  47. package/dist/{useMessageNotifications-SIM85vdb.js → useMessageNotifications-CavBmgO7.js} +1 -1
  48. package/dist/{useSEO-DeAU9YEc.js → useSEO-MPXQf0dn.js} +2 -2
  49. package/dist/{useTableHandle-CWu0LbeI.js → useTableHandle--NSbZ-57.js} +1 -1
  50. package/dist/useUploadCos-D6y0INvP.js +242 -0
  51. package/dist/user.d.ts +1 -0
  52. package/dist/user.js +9 -7
  53. package/dist/utils/legalLinks.d.ts +22 -0
  54. package/package.json +1 -1
  55. package/dist/AuthkitAuthModal-De0eEWOC.js +0 -2112
  56. package/dist/AuthkitSignInPhone-DEUVn3Rq.js +0 -920
  57. package/dist/CollapseItem-BAuejDBZ.js +0 -57
  58. package/dist/FeedbackItem-CRiLkWMh.js +0 -495
  59. package/dist/FeedbackModal-B8WLPCy_.js +0 -1053
  60. package/dist/MessageHandle-DpIUeQ7U.js +0 -1147
  61. package/dist/MessageNoticeNotificationsDetails.vue_vue_type_script_setup_true_lang-BbtfWRUD.js +0 -142
  62. package/dist/UserAccountMenu-OdwonGFa.js +0 -633
  63. package/dist/WidthContainer-Cpdc67hQ.js +0 -652
  64. package/dist/index-CUfrjRxu.js +0 -73
  65. package/dist/useAuthkitUsersProfile-BqW74gfs.js +0 -172
@@ -1,57 +0,0 @@
1
- import { defineComponent as x, ref as n, provide as v, onMounted as I, watch as h, openBlock as r, createElementBlock as d, renderSlot as p, inject as m, computed as f, normalizeClass as _, createElementVNode as c, createVNode as y, unref as k, createCommentVNode as g } from "vue";
2
- import { _ as C } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
- import { I as $ } from "./index-CUfrjRxu.js";
4
- const w = /* @__PURE__ */ x({
5
- __name: "Collapse",
6
- props: {
7
- activeKeys: {
8
- type: Array,
9
- required: !0
10
- }
11
- },
12
- setup(l) {
13
- const e = l, o = n(), t = n(new Set(e.activeKeys));
14
- v("expandedIndexes", t);
15
- const a = n(0);
16
- return v("slotsCount", a), I(() => {
17
- a.value = o.value.children.length;
18
- }), h(() => e.activeKeys, (s) => {
19
- t.value = new Set(s);
20
- }), (s, i) => (r(), d("div", {
21
- ref_key: "collapseRef",
22
- ref: o,
23
- class: "collapse-container"
24
- }, [p(s.$slots, "default", {}, void 0, !0)], 512));
25
- }
26
- }), A = /* @__PURE__ */ C(w, [["__scopeId", "data-v-c44cc3c1"]]), K = {
27
- key: 0,
28
- class: "collapse-content"
29
- }, N = /* @__PURE__ */ x({
30
- __name: "CollapseItem",
31
- props: {
32
- index: {
33
- default: 0
34
- }
35
- },
36
- setup(l) {
37
- const e = l, o = m("slotsCount", n(0)), t = m("expandedIndexes"), a = f(() => e.index === o.value - 1), s = f(() => t.value.has(e.index)), i = () => {
38
- t && (s.value ? t.value.delete(e.index) : t.value.add(e.index));
39
- };
40
- return (u, R) => (r(), d("div", {
41
- class: _(["collapse-item", {
42
- "no-border": a.value
43
- }])
44
- }, [c("button", {
45
- class: "collapse-header",
46
- onClick: i
47
- }, [c("span", null, [p(u.$slots, "header", {}, void 0, !0)]), c("span", {
48
- class: _(["collapse-icon", {
49
- rotated: s.value
50
- }])
51
- }, [y(k($))], 2)]), s.value ? (r(), d("div", K, [p(u.$slots, "default", {}, void 0, !0)])) : g("", !0)], 2));
52
- }
53
- }), B = /* @__PURE__ */ C(N, [["__scopeId", "data-v-f60df4aa"]]);
54
- export {
55
- A as C,
56
- B as a
57
- };
@@ -1,495 +0,0 @@
1
- /* empty css */
2
- /* empty css */
3
- import { defineComponent as f, computed as m, openBlock as c, createElementBlock as d, normalizeStyle as w, normalizeClass as _, createElementVNode as l, withDirectives as j, createVNode as b, unref as y, vShow as N, ref as q, createBlock as V, withCtx as B, toDisplayString as h, renderSlot as M, Fragment as R, renderList as U, onMounted as D, onBeforeUnmount as E, createCommentVNode as W } from "vue";
4
- import { Popover as O, Upload as T } from "@arco-design/web-vue";
5
- import { _ as I, g as F, i as L } from "./plugin-vue_export-helper-LjDO2Zua.js";
6
- import { _ as g } from "./_plugin-vue_export-helper-CHgC5LLL.js";
7
- /* empty css */
8
- /* empty css */
9
- /* empty css */
10
- /* empty css */
11
- import { u as Z } from "./useUploadCos-BO3W_uqs.js";
12
- import { g as A } from "./apiClients-DJchWBAG.js";
13
- import "./FeedbackModal-B8WLPCy_.js";
14
- import { Icon as Y } from "@iconify/vue";
15
- const H = f({
16
- name: "IconDown",
17
- props: {
18
- size: {
19
- type: [Number, String]
20
- },
21
- strokeWidth: {
22
- type: Number,
23
- default: 4
24
- },
25
- strokeLinecap: {
26
- type: String,
27
- default: "butt",
28
- validator: (e) => ["butt", "round", "square"].includes(e)
29
- },
30
- strokeLinejoin: {
31
- type: String,
32
- default: "miter",
33
- validator: (e) => ["arcs", "bevel", "miter", "miter-clip", "round"].includes(e)
34
- },
35
- rotate: Number,
36
- spin: Boolean
37
- },
38
- emits: {
39
- click: (e) => !0
40
- },
41
- setup(e, {
42
- emit: t
43
- }) {
44
- const n = F("icon"), o = m(() => [n, `${n}-down`, {
45
- [`${n}-spin`]: e.spin
46
- }]), s = m(() => {
47
- const i = {};
48
- return e.size && (i.fontSize = L(e.size) ? `${e.size}px` : e.size), e.rotate && (i.transform = `rotate(${e.rotate}deg)`), i;
49
- });
50
- return {
51
- cls: o,
52
- innerStyle: s,
53
- onClick: (i) => {
54
- t("click", i);
55
- }
56
- };
57
- }
58
- }), K = ["stroke-width", "stroke-linecap", "stroke-linejoin"];
59
- function X(e, t, n, o, s, a) {
60
- return c(), d("svg", {
61
- viewBox: "0 0 48 48",
62
- fill: "none",
63
- xmlns: "http://www.w3.org/2000/svg",
64
- stroke: "currentColor",
65
- class: _(e.cls),
66
- style: w(e.innerStyle),
67
- "stroke-width": e.strokeWidth,
68
- "stroke-linecap": e.strokeLinecap,
69
- "stroke-linejoin": e.strokeLinejoin,
70
- onClick: t[0] || (t[0] = (...i) => e.onClick && e.onClick(...i))
71
- }, t[1] || (t[1] = [l("path", {
72
- d: "M39.6 17.443 24.043 33 8.487 17.443"
73
- }, null, -1)]), 14, K);
74
- }
75
- var S = /* @__PURE__ */ I(H, [["render", X]]);
76
- const G = Object.assign(S, {
77
- install: (e, t) => {
78
- var n;
79
- const o = (n = t == null ? void 0 : t.iconPrefix) != null ? n : "";
80
- e.component(o + S.name, S);
81
- }
82
- }), J = f({
83
- name: "IconClose",
84
- props: {
85
- size: {
86
- type: [Number, String]
87
- },
88
- strokeWidth: {
89
- type: Number,
90
- default: 4
91
- },
92
- strokeLinecap: {
93
- type: String,
94
- default: "butt",
95
- validator: (e) => ["butt", "round", "square"].includes(e)
96
- },
97
- strokeLinejoin: {
98
- type: String,
99
- default: "miter",
100
- validator: (e) => ["arcs", "bevel", "miter", "miter-clip", "round"].includes(e)
101
- },
102
- rotate: Number,
103
- spin: Boolean
104
- },
105
- emits: {
106
- click: (e) => !0
107
- },
108
- setup(e, {
109
- emit: t
110
- }) {
111
- const n = F("icon"), o = m(() => [n, `${n}-close`, {
112
- [`${n}-spin`]: e.spin
113
- }]), s = m(() => {
114
- const i = {};
115
- return e.size && (i.fontSize = L(e.size) ? `${e.size}px` : e.size), e.rotate && (i.transform = `rotate(${e.rotate}deg)`), i;
116
- });
117
- return {
118
- cls: o,
119
- innerStyle: s,
120
- onClick: (i) => {
121
- t("click", i);
122
- }
123
- };
124
- }
125
- }), Q = ["stroke-width", "stroke-linecap", "stroke-linejoin"];
126
- function ee(e, t, n, o, s, a) {
127
- return c(), d("svg", {
128
- viewBox: "0 0 48 48",
129
- fill: "none",
130
- xmlns: "http://www.w3.org/2000/svg",
131
- stroke: "currentColor",
132
- class: _(e.cls),
133
- style: w(e.innerStyle),
134
- "stroke-width": e.strokeWidth,
135
- "stroke-linecap": e.strokeLinecap,
136
- "stroke-linejoin": e.strokeLinejoin,
137
- onClick: t[0] || (t[0] = (...i) => e.onClick && e.onClick(...i))
138
- }, t[1] || (t[1] = [l("path", {
139
- d: "M9.857 9.858 24 24m0 0 14.142 14.142M24 24 38.142 9.858M24 24 9.857 38.142"
140
- }, null, -1)]), 14, Q);
141
- }
142
- var z = /* @__PURE__ */ I(J, [["render", ee]]);
143
- const te = Object.assign(z, {
144
- install: (e, t) => {
145
- var n;
146
- const o = (n = t == null ? void 0 : t.iconPrefix) != null ? n : "";
147
- e.component(o + z.name, z);
148
- }
149
- }), ne = f({
150
- name: "IconRobot",
151
- props: {
152
- size: {
153
- type: [Number, String]
154
- },
155
- strokeWidth: {
156
- type: Number,
157
- default: 4
158
- },
159
- strokeLinecap: {
160
- type: String,
161
- default: "butt",
162
- validator: (e) => ["butt", "round", "square"].includes(e)
163
- },
164
- strokeLinejoin: {
165
- type: String,
166
- default: "miter",
167
- validator: (e) => ["arcs", "bevel", "miter", "miter-clip", "round"].includes(e)
168
- },
169
- rotate: Number,
170
- spin: Boolean
171
- },
172
- emits: {
173
- click: (e) => !0
174
- },
175
- setup(e, {
176
- emit: t
177
- }) {
178
- const n = F("icon"), o = m(() => [n, `${n}-robot`, {
179
- [`${n}-spin`]: e.spin
180
- }]), s = m(() => {
181
- const i = {};
182
- return e.size && (i.fontSize = L(e.size) ? `${e.size}px` : e.size), e.rotate && (i.transform = `rotate(${e.rotate}deg)`), i;
183
- });
184
- return {
185
- cls: o,
186
- innerStyle: s,
187
- onClick: (i) => {
188
- t("click", i);
189
- }
190
- };
191
- }
192
- }), oe = ["stroke-width", "stroke-linecap", "stroke-linejoin"];
193
- function ie(e, t, n, o, s, a) {
194
- return c(), d("svg", {
195
- viewBox: "0 0 48 48",
196
- fill: "none",
197
- xmlns: "http://www.w3.org/2000/svg",
198
- stroke: "currentColor",
199
- class: _(e.cls),
200
- style: w(e.innerStyle),
201
- "stroke-width": e.strokeWidth,
202
- "stroke-linecap": e.strokeLinecap,
203
- "stroke-linejoin": e.strokeLinejoin,
204
- onClick: t[0] || (t[0] = (...i) => e.onClick && e.onClick(...i))
205
- }, t[1] || (t[1] = [l("path", {
206
- d: "M18 26h1v1h-1v-1ZM29 26h1v1h-1v-1Z",
207
- fill: "currentColor",
208
- stroke: "none"
209
- }, null, -1), l("path", {
210
- d: "M24 7v6m0-6h5m-5 0h-5M3 21v11m36 8H9V13h30v29m6-21v11m-27-6h1v1h-1v-1Zm11 0h1v1h-1v-1Z"
211
- }, null, -1)]), 14, oe);
212
- }
213
- var x = /* @__PURE__ */ I(ne, [["render", ie]]);
214
- const se = Object.assign(x, {
215
- install: (e, t) => {
216
- var n;
217
- const o = (n = t == null ? void 0 : t.iconPrefix) != null ? n : "";
218
- e.component(o + x.name, x);
219
- }
220
- }), re = /* @__PURE__ */ f({
221
- __name: "FeedbackFloatButton",
222
- props: {
223
- active: {
224
- type: Boolean,
225
- required: !0,
226
- default: !0
227
- },
228
- offsetX: {
229
- type: Number,
230
- default: 20
231
- },
232
- offsetY: {
233
- type: Number,
234
- default: 20
235
- },
236
- iconSize: {
237
- type: Number,
238
- default: 18
239
- }
240
- },
241
- setup(e) {
242
- const t = e, n = m(() => ({
243
- bottom: `${t.offsetY}px`,
244
- right: `${t.offsetY}px`,
245
- fontSize: `${t.iconSize}px`
246
- }));
247
- return (o, s) => (c(), d("div", {
248
- class: _(["float-button", {
249
- active: e.active
250
- }]),
251
- style: w(n.value)
252
- }, [j(b(y(se), {
253
- name: "Feedback/Help",
254
- filled: "",
255
- size: 18
256
- }, null, 512), [[N, !e.active]]), j(b(y(G), {
257
- name: "Feedback/Close",
258
- filled: "",
259
- size: 18
260
- }, null, 512), [[N, e.active]])], 6));
261
- }
262
- }), le = /* @__PURE__ */ g(re, [["__scopeId", "data-v-f7b06b6d"]]), ae = {
263
- class: "card"
264
- }, ce = {
265
- class: "content"
266
- }, ue = {
267
- class: "header"
268
- }, de = {
269
- class: "title"
270
- }, pe = {
271
- class: "description"
272
- }, me = {
273
- class: "body"
274
- }, fe = /* @__PURE__ */ f({
275
- __name: "FeedbackContainer",
276
- props: {
277
- title: {
278
- type: String,
279
- required: !0
280
- },
281
- description: {
282
- type: String,
283
- required: !0
284
- },
285
- appId: {
286
- type: String,
287
- required: !0
288
- }
289
- },
290
- setup(e, {
291
- expose: t
292
- }) {
293
- const n = e, o = q(!1), s = m(() => ({
294
- padding: 0,
295
- marginTop: 0,
296
- "border-radius": "14px",
297
- background: "var(--huyooo-feedback-panel-gradient)",
298
- backgroundSize: "100% 505px",
299
- backgroundRepeat: "no-repeat",
300
- border: "0px solid"
301
- }));
302
- function a() {
303
- o.value = !0;
304
- }
305
- function i(k) {
306
- }
307
- function p() {
308
- o.value = !1;
309
- }
310
- return t({
311
- show: o
312
- }), (k, r) => (c(), V(y(O), {
313
- "popup-visible": o.value,
314
- "onUpdate:popupVisible": r[0] || (r[0] = (u) => o.value = u),
315
- trigger: "click",
316
- "content-style": s.value,
317
- "arrow-style": {
318
- display: "none"
319
- },
320
- position: "tr",
321
- onPopupVisibleChange: i
322
- }, {
323
- content: B(() => [l("div", ae, [l("div", ce, [l("div", ue, [l("div", {
324
- class: "headerCancel",
325
- onClick: p
326
- }, [b(y(te))]), l("div", de, h(n.title), 1), l("div", pe, h(n.description), 1)]), l("div", me, [M(k.$slots, "default", {}, void 0, !0)])])])]),
327
- default: B(() => [b(le, {
328
- active: o.value,
329
- onClick: a
330
- }, null, 8, ["active"])]),
331
- _: 3
332
- }, 8, ["popup-visible", "content-style"]));
333
- }
334
- }), We = /* @__PURE__ */ g(fe, [["__scopeId", "data-v-99bf36fb"]]), ke = {
335
- style: {
336
- "margin-bottom": "10px",
337
- display: "flex",
338
- gap: "10px"
339
- }
340
- }, ve = ["onClick"], be = /* @__PURE__ */ f({
341
- __name: "FeedbackCustomTabs",
342
- props: {
343
- modelValue: {
344
- type: String,
345
- default: "1"
346
- },
347
- tabs: {
348
- type: Array,
349
- default: () => [{
350
- label: "未读消息",
351
- key: "1"
352
- }, {
353
- label: "已读消息",
354
- key: "2"
355
- }]
356
- }
357
- },
358
- emits: ["update:modelValue", "change"],
359
- setup(e, {
360
- emit: t
361
- }) {
362
- const n = e, o = t;
363
- function s(a) {
364
- a !== n.modelValue && (o("update:modelValue", a), o("change", a));
365
- }
366
- return (a, i) => (c(), d("div", ke, [(c(!0), d(R, null, U(e.tabs, (p) => (c(), d("span", {
367
- key: p.key,
368
- class: _(["custom-tab", [{
369
- active: e.modelValue === p.key
370
- }]]),
371
- onClick: (k) => s(p.key)
372
- }, h(p.label), 11, ve))), 128))]));
373
- }
374
- }), Oe = /* @__PURE__ */ g(be, [["__scopeId", "data-v-c10f714b"]]), ye = {
375
- class: "screenshots-upload"
376
- }, he = /* @__PURE__ */ f({
377
- __name: "FeedbackScreenshots",
378
- props: {
379
- urls: {
380
- type: Array,
381
- required: !0
382
- }
383
- },
384
- emits: ["change"],
385
- setup(e, {
386
- emit: t
387
- }) {
388
- const n = e, o = t, s = q(null), a = m(() => n.urls.map((r) => ({
389
- uid: r,
390
- name: r.split("/").pop() || r,
391
- url: r,
392
- status: "done",
393
- response: {
394
- url: r
395
- }
396
- })));
397
- function i(r) {
398
- return new Promise((u, v) => {
399
- const {
400
- uploadFile: $
401
- } = Z();
402
- $({
403
- bucketId: A.feedbackBucketId,
404
- file: r,
405
- onFileFinish(C, xe, P) {
406
- u(P.Key);
407
- },
408
- onError(C) {
409
- v(new Error("上传截图失败"));
410
- }
411
- });
412
- });
413
- }
414
- async function p(r) {
415
- const u = r.fileItem.file, v = await i(u);
416
- o("change", {
417
- key: v,
418
- localUrl: URL.createObjectURL(u)
419
- });
420
- }
421
- function k(r) {
422
- var v;
423
- const u = (v = r.clipboardData) == null ? void 0 : v.items;
424
- if (u) {
425
- for (const $ of u)
426
- if ($.type.indexOf("image") !== -1) {
427
- const C = $.getAsFile();
428
- C && p({
429
- fileItem: {
430
- file: C
431
- }
432
- });
433
- }
434
- }
435
- }
436
- return D(() => {
437
- window.addEventListener("paste", k);
438
- }), E(() => {
439
- window.removeEventListener("paste", k);
440
- }), (r, u) => (c(), d("div", ye, [b(y(T), {
441
- ref_key: "uploadRef",
442
- ref: s,
443
- "list-type": "picture",
444
- "file-list": a.value,
445
- "show-upload-list": !0,
446
- "show-file-list": !0,
447
- "image-preview": !0,
448
- accept: "image/*",
449
- "custom-request": p
450
- }, null, 8, ["file-list"])]));
451
- }
452
- }), Te = /* @__PURE__ */ g(he, [["__scopeId", "data-v-8e764d8f"]]), _e = {
453
- class: "operate-wrapper"
454
- }, ge = {
455
- class: "operate-item"
456
- }, $e = {
457
- class: "icon"
458
- }, Ce = {
459
- class: "title"
460
- }, we = {
461
- class: "feedback-info"
462
- }, Se = {
463
- key: 0,
464
- class: "feedback-count"
465
- }, ze = /* @__PURE__ */ f({
466
- __name: "FeedbackItem",
467
- props: {
468
- title: {
469
- type: String,
470
- required: !0
471
- },
472
- icon: {
473
- type: String,
474
- required: !0
475
- },
476
- extra: {
477
- type: String,
478
- required: !1,
479
- default: () => ""
480
- }
481
- },
482
- setup(e) {
483
- const t = e;
484
- return (n, o) => (c(), d("div", _e, [l("div", ge, [l("div", $e, [b(y(Y), {
485
- icon: t.icon
486
- }, null, 8, ["icon"])]), l("p", Ce, h(t.title), 1)]), l("div", we, [e.extra ? (c(), d("span", Se, h(e.extra), 1)) : W("", !0)])]));
487
- }
488
- }), Ze = /* @__PURE__ */ g(ze, [["__scopeId", "data-v-28e45887"]]);
489
- export {
490
- We as F,
491
- Oe as a,
492
- le as b,
493
- Ze as c,
494
- Te as d
495
- };