@huyooo/ui 0.11.2 → 0.11.5

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 (98) hide show
  1. package/dist/AuthkitAppSetting-CSHkDxQT.js +1914 -0
  2. package/dist/{Clipboard---tG2Zxz.js → Clipboard-CRZDADLE.js} +1 -1
  3. package/dist/{Contact-BEUbBGiB.js → Contact-Y0Yczmc9.js} +8 -7
  4. package/dist/{CustomTable-CVZ4mFzi.js → CustomTable-BUkwlbzN.js} +3 -2
  5. package/dist/{FeedbackItem-CN041vTm.js → FeedbackItem-D7MpOmoM.js} +3 -3
  6. package/dist/FeedbackModal-CvNF1D-5.js +1050 -0
  7. package/dist/LandingPageFAQ-CZJXvor9.js +80 -0
  8. package/dist/LandingPageLinkGroup-DDNRivMt.js +521 -0
  9. package/dist/LandingPageSectionHeader-D_74W4My.js +69 -0
  10. package/dist/{LandingPageSectionTabs-B6ZVxR47.js → LandingPageSectionTabs-Ce3_Rc2L.js} +354 -426
  11. package/dist/MessageHandle-B12koVQL.js +924 -0
  12. package/dist/MessageList-Bo6YCfRO.js +233 -0
  13. package/dist/{MessageNoticeNotificationsDetails.vue_vue_type_script_setup_true_lang-F6neJUg3.js → MessageNoticeNotificationsDetails.vue_vue_type_script_setup_true_lang-DxDn6Ok8.js} +2 -2
  14. package/dist/PaySubscriptions-B8jAtG5n.js +515 -0
  15. package/dist/PricingPlans-CO26OcbJ.js +210 -0
  16. package/dist/ReferrerReferees-D_Iiw9wZ.js +106 -0
  17. package/dist/{Upload.vue_vue_type_script_setup_true_lang-D_-oMTOo.js → Upload.vue_vue_type_script_setup_true_lang-CbVSY_vt.js} +1 -1
  18. package/dist/UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-DpVadjMH.js +508 -0
  19. package/dist/WidthContainer-B6d4xrGT.js +693 -0
  20. package/dist/{apiClients-9b4zNZ2S.js → apiClients-DVz12LeW.js} +81 -75
  21. package/dist/authkit.d.ts +7 -0
  22. package/dist/authkit.js +52 -45
  23. package/dist/common/globalConfig.d.ts +2 -2
  24. package/dist/common/userMenuModal.d.ts +1 -0
  25. package/dist/common.js +2 -2
  26. package/dist/components/Authkit/AppSetting/AuthkitOAuthBinding.vue.d.ts +31 -0
  27. package/dist/components/Authkit/AppSetting/AuthkitPhoneBinding.vue.d.ts +14 -0
  28. package/dist/components/Authkit/AppSetting/AuthkitPhoneVerify.vue.d.ts +66 -0
  29. package/dist/components/Authkit/Auth/AuthkitBindPhone.vue.d.ts +27 -0
  30. package/dist/components/Authkit/Auth/AuthkitEmailUpdate.vue.d.ts +11 -1
  31. package/dist/components/Authkit/Auth/AuthkitOauthCallback.vue.d.ts +2 -2
  32. package/dist/components/Authkit/Auth/AuthkitOauthItem.vue.d.ts +1 -1
  33. package/dist/components/Authkit/Auth/AuthkitPasswordAuth.vue.d.ts +11 -1
  34. package/dist/components/Authkit/Auth/AuthkitPhonePasswordUpdateAndVerify.vue.d.ts +68 -0
  35. package/dist/components/Authkit/Auth/AuthkitSignInEmailCode.vue.d.ts +68 -0
  36. package/dist/components/Authkit/Auth/AuthkitSwitchSignUpOrResetPassword.vue.d.ts +15 -3
  37. package/dist/components/Authkit/AuthkitOAuthCallbackProvider.vue.d.ts +11 -0
  38. package/dist/components/Authkit/AuthkitProvider.vue.d.ts +45 -0
  39. package/dist/components/Feedback/FeedbackBubbleEnd.vue.d.ts +9 -0
  40. package/dist/components/Feedback/FeedbackBubbleStart.vue.d.ts +11 -6
  41. package/dist/components/LandingPage/LandingPageSections.vue.d.ts +1 -1
  42. package/dist/components/Pay/PaySubscriptions.vue.d.ts +2 -1
  43. package/dist/components/Pay/PricingFAQ.vue.d.ts +17 -0
  44. package/dist/components/Pay/PricingPlans.vue.d.ts +12 -0
  45. package/dist/components/UserMenu/UserMenuModals.vue.d.ts +2 -2
  46. package/dist/components/UserMenu/parts/UserSubscriptionBaseInformation.vue.d.ts +8 -0
  47. package/dist/composables/Authkit/useAuthkitAppsAuthPageInfo.d.ts +26 -0
  48. package/dist/composables/Authkit/useAuthkitAuth.d.ts +21 -9
  49. package/dist/composables/Authkit/useEnsureAuthenticated.d.ts +26 -0
  50. package/dist/composables/Authkit/useOauth.d.ts +4 -1
  51. package/dist/composables/Billing/useBillingPlans.d.ts +201 -0
  52. package/dist/composables/Billing/useBillingSubscriptionSummary.d.ts +280 -0
  53. package/dist/composables/Billing/useSubscriptionCheckout.d.ts +12 -0
  54. package/dist/composables/UserMenu/useUserMenu.d.ts +5 -1
  55. package/dist/composables.d.ts +2 -0
  56. package/dist/composables.js +25 -22
  57. package/dist/feedback.js +3 -3
  58. package/dist/index-D3Kp6R4z.js +4 -0
  59. package/dist/landingPage.js +42 -40
  60. package/dist/main.js +285 -269
  61. package/dist/message.js +19 -18
  62. package/dist/pay.d.ts +5 -0
  63. package/dist/pay.js +9 -2
  64. package/dist/privateCom.js +1 -1
  65. package/dist/referrer.js +1 -1
  66. package/dist/style.css +1 -1
  67. package/dist/types/api/auth.generated.d.ts +103 -39
  68. package/dist/types/api/billing.generated.d.ts +61 -28
  69. package/dist/types/api.d.ts +1 -1
  70. package/dist/types/app.d.ts +14 -0
  71. package/dist/upload.js +2 -2
  72. package/dist/{useAuthkitAppsAuthPageInfo-494yLvsu.js → useAuthkitAppsAuthPageInfo-Du5d6VK-.js} +20 -7
  73. package/dist/{useAuthkitCreateAndUpdate-DyRtFxZS.js → useAuthkitCreateAndUpdate-Bc9D5C6R.js} +1 -1
  74. package/dist/useAuthkitUsersProfile-CQGyvL7g.js +201 -0
  75. package/dist/{useDownloads-DaeIY0E9.js → useDownloads-BFx1a-f9.js} +1 -1
  76. package/dist/useEnsureAuthenticated-Cc64hF1O.js +2247 -0
  77. package/dist/{useLegalLinks-CPbWqlu6.js → useLegalLinks-Deksq9h-.js} +2 -2
  78. package/dist/{useMessageNotifications-Dg5q-C_o.js → useMessageNotifications-DY5xKtif.js} +1 -1
  79. package/dist/{useSEO-CXX9dcBx.js → useSEO-CvfzTZA9.js} +2 -2
  80. package/dist/useSubscriptionCheckout-BgQJN61l.js +345 -0
  81. package/dist/{useTableHandle-Cjq4gcC0.js → useTableHandle-D71P3Ez_.js} +1 -1
  82. package/dist/{useUploadCos-DiJmmbRf.js → useUploadCos-N5pim6q1.js} +501 -515
  83. package/dist/useUserMenu-ClPBlvaM.js +44 -0
  84. package/dist/user.js +12 -13
  85. package/dist/utils/apiMiddlewares.d.ts +6 -0
  86. package/package.json +1 -1
  87. package/dist/AuthkitAppSetting-BCrLMpLg.js +0 -1322
  88. package/dist/AuthkitSignInPhone-DmCQ2fWs.js +0 -1721
  89. package/dist/FeedbackModal-aI28o-w5.js +0 -1053
  90. package/dist/LandingPageSectionHeader-Cs1x8i3q.js +0 -584
  91. package/dist/MessageHandle-BV1nKlxs.js +0 -1147
  92. package/dist/PaySubscriptions-B3gI1Eme.js +0 -408
  93. package/dist/ReferrerReferees-DJzPo7X5.js +0 -106
  94. package/dist/UserAccountMenu-CJ9KKVYa.js +0 -371
  95. package/dist/UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-ClAXNSgl.js +0 -81
  96. package/dist/WidthContainer-BG10rumn.js +0 -669
  97. package/dist/useAuthkitUsersProfile-lGlQP54m.js +0 -186
  98. package/dist/useUserMenu-B3HKZKJ4.js +0 -43
@@ -0,0 +1,80 @@
1
+ import { defineComponent as d, openBlock as o, createElementBlock as p, renderSlot as c, createElementVNode as _, normalizeStyle as y, createBlock as l, withCtx as t, Fragment as g, renderList as k, createVNode as B, createTextVNode as i, toDisplayString as u } from "vue";
2
+ import { _ as m } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
+ import { C as q, a as v } from "./CollapseItem-DUzZA6tx.js";
4
+ import { D as L } from "./LandingPageSectionHeader-D_74W4My.js";
5
+ const w = {
6
+ class: "BlockLayout"
7
+ }, x = /* @__PURE__ */ d({
8
+ __name: "LandingPageBlockLayout",
9
+ props: {
10
+ columns: {
11
+ type: Number,
12
+ default: 1
13
+ },
14
+ flexDirection: {
15
+ type: String,
16
+ default: "column"
17
+ }
18
+ },
19
+ setup(a) {
20
+ const e = a;
21
+ return (s, f) => (o(), p("section", w, [c(s.$slots, "BlockHeader", {}, void 0, !0), _("div", {
22
+ class: "BlockBody",
23
+ style: y({
24
+ gridTemplateColumns: `repeat(${e.columns}, 1fr)`,
25
+ flexDirection: e.flexDirection
26
+ })
27
+ }, [c(s.$slots, "BlockBody", {}, void 0, !0)], 4)]));
28
+ }
29
+ }), P = /* @__PURE__ */ m(x, [["__scopeId", "data-v-84ed1aaa"]]), C = /* @__PURE__ */ d({
30
+ __name: "LandingPageFAQ",
31
+ props: {
32
+ activeKeys: {
33
+ default: () => []
34
+ },
35
+ faqItems: {
36
+ default: () => [{
37
+ question: "你们有免费试用吗?",
38
+ answer: "我们提供1个月的免费试用"
39
+ }, {
40
+ question: "我可以申请退款吗?",
41
+ answer: "不支持退款,但您可以随时取消订阅。取消订阅后将于下一个结算日的次日生效,在此之前您可以使用服务。为了避免被收取下一计费期的费用,请在下一个计费日期前至少 24 小时取消。"
42
+ }, {
43
+ question: "付费会员的配额什么时候会重置?会在月初吗?",
44
+ answer: "配额重置发生在您订阅后一个月,并非基于日历月。例如,如果您在4月15日订阅,您的配额将在5月15日重置。"
45
+ }, {
46
+ question: "从月付费订阅升级至年付费订阅,费用和有效期是如何计算的?",
47
+ answer: "从月度付费升级至年度付费时,会基于您剩余的月度付费价值计算差额。服务期从升级日起至次年同日。"
48
+ }, {
49
+ question: "你们提供技术支持吗?",
50
+ answer: "是的,在付费期间我们提供全天候的技术支持,可以通过电子邮箱和微信联系我们。"
51
+ }, {
52
+ question: "使用期间有什么限制吗?",
53
+ answer: "在使用期间如果发现开发者违反法律法规或在恶意应用程序中使用等任何不当使用行为,包括但不限于共享或出售订阅,都是被禁止的,可能会导致您的账户被终止且不予退款。我们有权终止服务,详情请参阅《付费服务协议》"
54
+ }]
55
+ }
56
+ },
57
+ setup(a) {
58
+ const e = a;
59
+ return (s, f) => (o(), l(q, {
60
+ "active-keys": e.activeKeys
61
+ }, {
62
+ default: t(() => [(o(!0), p(g, null, k(e.faqItems, (n, r) => (o(), l(v, {
63
+ key: r,
64
+ index: r
65
+ }, {
66
+ header: t(() => [i(u(n.question), 1)]),
67
+ default: t(() => [B(L, null, {
68
+ default: t(() => [i(u(n.answer), 1)]),
69
+ _: 2
70
+ }, 1024)]),
71
+ _: 2
72
+ }, 1032, ["index"]))), 128))]),
73
+ _: 1
74
+ }, 8, ["active-keys"]));
75
+ }
76
+ }), S = /* @__PURE__ */ m(C, [["__scopeId", "data-v-581e8f75"]]);
77
+ export {
78
+ P as L,
79
+ S as a
80
+ };
@@ -0,0 +1,521 @@
1
+ import { defineComponent as u, openBlock as a, createElementBlock as o, createVNode as m, unref as h, createElementVNode as e, toDisplayString as l, Fragment as C, renderList as P, createBlock as k, normalizeClass as x, withCtx as w, createTextVNode as f, renderSlot as g, ref as $, withModifiers as T, withDirectives as b, vModelText as L, createCommentVNode as I, normalizeStyle as D } from "vue";
2
+ import { Icon as v } from "@iconify/vue";
3
+ import { _ as d } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
+ import { D as S } from "./LandingPageSectionHeader-D_74W4My.js";
5
+ import { L as V } from "./Logo-D7fyXyB-.js";
6
+ const B = {
7
+ description: "",
8
+ class: "mission-list-item"
9
+ }, F = {
10
+ class: "mission-list-text"
11
+ }, A = /* @__PURE__ */ u({
12
+ __name: "LandingPageListItem",
13
+ props: {
14
+ description: {
15
+ default: ""
16
+ }
17
+ },
18
+ setup(s) {
19
+ const t = s;
20
+ return (c, i) => (a(), o("div", B, [m(h(v), {
21
+ icon: "mingcute:check-circle-fill",
22
+ class: "mission-list-icon"
23
+ }), e("span", F, l(t.description), 1)]));
24
+ }
25
+ }), N = /* @__PURE__ */ d(A, [["__scopeId", "data-v-8659cb17"]]), U = {
26
+ class: "mission-container"
27
+ }, M = {
28
+ class: "mission-image-wrapper"
29
+ }, j = ["src", "alt"], K = {
30
+ class: "mission-content"
31
+ }, O = {
32
+ class: "mission-title"
33
+ }, G = {
34
+ class: "mission-title-highlight"
35
+ }, E = {
36
+ class: "mission-desc"
37
+ }, H = {
38
+ class: "mission-list"
39
+ }, R = {
40
+ style: {
41
+ display: "none"
42
+ }
43
+ }, Y = /* @__PURE__ */ u({
44
+ __name: "LandingPageMission",
45
+ props: {
46
+ image: {},
47
+ imageAlt: {},
48
+ title: {},
49
+ highlight: {},
50
+ description: {},
51
+ features: {}
52
+ },
53
+ setup(s) {
54
+ return (t, c) => (a(), o("div", U, [e("div", M, [c[0] || (c[0] = e("div", {
55
+ class: "mission-bg1"
56
+ }, null, -1)), e("img", {
57
+ src: s.image,
58
+ alt: s.imageAlt,
59
+ loading: "lazy",
60
+ width: "1270",
61
+ decoding: "async",
62
+ class: "mission-img"
63
+ }, null, 8, j)]), e("div", K, [e("h2", O, [e("span", G, l(s.highlight), 1), e("strong", null, l(s.title), 1)]), e("p", E, l(s.description), 1), e("div", H, [(a(!0), o(C, null, P(s.features, (i, p) => (a(), k(N, {
64
+ key: p,
65
+ description: i
66
+ }, null, 8, ["description"]))), 128))])]), (a(), o("svg", R, [...c[1] || (c[1] = [e("symbol", {
67
+ id: "ai:ph:check-circle-fill"
68
+ }, [e("path", {
69
+ fill: "currentColor",
70
+ d: "M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m45.66 85.66l-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 11.32"
71
+ })], -1)])]))]));
72
+ }
73
+ }), et = /* @__PURE__ */ d(Y, [["__scopeId", "data-v-8d215ca2"]]), J = {
74
+ class: "team-info-container"
75
+ }, Q = {
76
+ class: "team-info-title"
77
+ }, W = {
78
+ class: "team-info-desc"
79
+ }, X = /* @__PURE__ */ u({
80
+ __name: "LandingPageTeamInfo",
81
+ props: {
82
+ title: {},
83
+ description: {}
84
+ },
85
+ setup(s) {
86
+ const t = s;
87
+ return (c, i) => (a(), o("div", J, [e("div", Q, l(t.title), 1), e("p", W, l(t.description), 1)]));
88
+ }
89
+ }), tt = /* @__PURE__ */ d(X, [["__scopeId", "data-v-b6a418e6"]]), Z = {
90
+ class: "grid-container"
91
+ }, ee = {
92
+ class: "square"
93
+ }, te = ["src", "alt", "sizes", "width", "height"], se = {
94
+ class: "footer"
95
+ }, ne = {
96
+ class: "name"
97
+ }, ae = /* @__PURE__ */ u({
98
+ __name: "LandingPageTeamList",
99
+ props: {
100
+ publishedTeamMembers: {},
101
+ sizes: {},
102
+ width: {},
103
+ height: {},
104
+ pictureClass: {}
105
+ },
106
+ setup(s) {
107
+ return (t, c) => (a(), o("div", Z, [(a(!0), o(C, null, P(s.publishedTeamMembers, (i) => (a(), o("div", {
108
+ key: i.data.name,
109
+ class: "group"
110
+ }, [e("div", ee, [e("img", {
111
+ src: i.data.avatar.src,
112
+ alt: i.data.avatar.alt,
113
+ sizes: s.sizes,
114
+ width: s.width,
115
+ height: s.height,
116
+ class: x(s.pictureClass ? `${s.pictureClass} picture-img` : "picture-img")
117
+ }, null, 10, te)]), e("div", se, [e("h2", ne, l(i.data.name), 1), m(S, null, {
118
+ default: w(() => [f(l(i.data.title), 1)]),
119
+ _: 2
120
+ }, 1024)])]))), 128))]));
121
+ }
122
+ }), st = /* @__PURE__ */ d(ae, [["__scopeId", "data-v-89ca8f8c"]]), ie = {
123
+ class: "BrandInfo"
124
+ }, oe = /* @__PURE__ */ u({
125
+ __name: "LandingPageBrandInfo",
126
+ props: {
127
+ icon: {
128
+ type: String,
129
+ required: !0
130
+ },
131
+ name: {
132
+ type: String,
133
+ required: !0
134
+ },
135
+ description: {
136
+ type: String,
137
+ required: !0
138
+ },
139
+ /** 不传则 Logo 使用自身主题色 */
140
+ color: {
141
+ type: String,
142
+ default: ""
143
+ },
144
+ fontSize: {
145
+ type: String,
146
+ default: ""
147
+ },
148
+ iconSize: {
149
+ type: String,
150
+ default: "32px"
151
+ }
152
+ },
153
+ setup(s) {
154
+ const t = s;
155
+ return (c, i) => (a(), o("div", ie, [m(V, {
156
+ icon: t.icon,
157
+ name: t.name,
158
+ color: t.color,
159
+ "font-size": t.fontSize,
160
+ "icon-size": t.iconSize
161
+ }, null, 8, ["icon", "name", "color", "font-size", "icon-size"]), m(S, null, {
162
+ default: w(() => [f(l(t.description), 1)]),
163
+ _: 1
164
+ })]));
165
+ }
166
+ }), nt = /* @__PURE__ */ d(oe, [["__scopeId", "data-v-9f0b94b0"]]), ce = {
167
+ class: "contact-container"
168
+ }, le = {
169
+ class: "contact-info-section"
170
+ }, re = {
171
+ class: "contact-title"
172
+ }, de = {
173
+ class: "contact-info"
174
+ }, ue = {
175
+ class: "contact-info-item"
176
+ }, me = {
177
+ class: "contact-info-item"
178
+ }, pe = ["href"], _e = {
179
+ class: "contact-info-item"
180
+ }, fe = ["href"], ge = {
181
+ class: "contact-form-section"
182
+ }, he = /* @__PURE__ */ u({
183
+ __name: "LandingPageContact",
184
+ props: {
185
+ title: {
186
+ default: ""
187
+ },
188
+ subTitle: {
189
+ default: ""
190
+ },
191
+ contact: {
192
+ default: () => ({
193
+ title: "联系我们",
194
+ description: "有什么想说的吗?我们随时为您提供帮助。请填写表单或发送邮件或拨打电话。"
195
+ })
196
+ },
197
+ address: {
198
+ default: "北京市朝阳区建国门外大街1号"
199
+ },
200
+ email: {
201
+ default: "hello@example.com"
202
+ },
203
+ phone: {
204
+ default: "+86 138 0000 0000"
205
+ },
206
+ mapIcon: {
207
+ default: "uil:map-marker"
208
+ },
209
+ emailIcon: {
210
+ default: "uil:envelope"
211
+ },
212
+ phoneIcon: {
213
+ default: "uil:phone"
214
+ }
215
+ },
216
+ setup(s) {
217
+ const t = s;
218
+ return (c, i) => (a(), o("div", ce, [e("div", le, [e("h2", re, l(t.contact.title), 1), m(S, null, {
219
+ default: w(() => [f(l(t.contact.description), 1)]),
220
+ _: 1
221
+ }), e("div", de, [e("div", ue, [m(h(v), {
222
+ class: "contact-info-icon",
223
+ icon: s.mapIcon
224
+ }, null, 8, ["icon"]), e("span", null, l(t.address), 1)]), e("div", me, [m(h(v), {
225
+ class: "contact-info-icon",
226
+ icon: t.emailIcon
227
+ }, null, 8, ["icon"]), e("a", {
228
+ href: `mailto:${s.email}`
229
+ }, l(t.email), 9, pe)]), e("div", _e, [m(h(v), {
230
+ class: "contact-info-icon",
231
+ icon: t.phoneIcon
232
+ }, null, 8, ["icon"]), e("a", {
233
+ href: `tel:${s.phone}`
234
+ }, l(t.phone), 9, fe)])])]), e("div", ge, [g(c.$slots, "contact-form", {}, void 0, !0)])]));
235
+ }
236
+ }), at = /* @__PURE__ */ d(he, [["__scopeId", "data-v-d93fc680"]]), ve = ["value"], $e = ["value"], ye = {
237
+ class: "form-group"
238
+ }, be = {
239
+ class: "form-group"
240
+ }, Le = {
241
+ class: "form-group"
242
+ }, ke = {
243
+ type: "submit",
244
+ class: "form-button"
245
+ }, xe = {
246
+ key: 0,
247
+ class: "button-content"
248
+ }, Ie = {
249
+ key: 1
250
+ }, Ce = /* @__PURE__ */ u({
251
+ __name: "LandingPageContactForm",
252
+ props: {
253
+ accessKey: {
254
+ default: "YOUR_ACCESS_KEY_HERE"
255
+ },
256
+ to: {
257
+ default: "support@huyooo.com"
258
+ }
259
+ },
260
+ setup(s) {
261
+ const t = s, c = $(!1), i = $(""), p = $(""), r = $({
262
+ name: "",
263
+ email: "",
264
+ message: ""
265
+ }), y = async (z) => {
266
+ c.value = !0;
267
+ const n = z.target;
268
+ if (!n.checkValidity()) {
269
+ n.querySelectorAll(":invalid")[0].focus();
270
+ return;
271
+ }
272
+ i.value = "发送中...", p.value = "";
273
+ try {
274
+ const _ = await fetch("https://api.web3forms.com/submit", {
275
+ method: "POST",
276
+ headers: {
277
+ "Content-Type": "application/json",
278
+ Accept: "application/json"
279
+ },
280
+ body: JSON.stringify({
281
+ access_key: t.accessKey,
282
+ to: t.to,
283
+ name: r.value.name,
284
+ email: r.value.email,
285
+ message: r.value.message
286
+ })
287
+ });
288
+ await _.json(), _.status === 200 ? (p.value = "text-green", i.value = "消息发送成功!我们会尽快回复您。") : (p.value = "text-red", i.value = "发送失败,请检查网络连接后重试。");
289
+ } catch {
290
+ p.value = "text-red", i.value = "发送失败,请稍后再试!";
291
+ } finally {
292
+ n.reset(), c.value = !1, setTimeout(() => {
293
+ i.value = "";
294
+ }, 5e3);
295
+ }
296
+ };
297
+ return (z, n) => (a(), o("form", {
298
+ id: "form",
299
+ action: "https://api.web3forms.com/submit",
300
+ method: "POST",
301
+ class: x(["contact-form", {
302
+ "was-validated": c.value
303
+ }]),
304
+ novalidate: "",
305
+ onSubmit: T(y, ["prevent"])
306
+ }, [e("input", {
307
+ type: "hidden",
308
+ name: "access_key",
309
+ value: t.accessKey
310
+ }, null, 8, ve), e("input", {
311
+ type: "hidden",
312
+ name: "to",
313
+ value: t.to
314
+ }, null, 8, $e), n[11] || (n[11] = e("input", {
315
+ type: "checkbox",
316
+ class: "hidden",
317
+ style: {
318
+ display: "none"
319
+ },
320
+ name: "botcheck"
321
+ }, null, -1)), e("div", ye, [n[3] || (n[3] = e("label", {
322
+ for: "name",
323
+ class: "form-label"
324
+ }, [f(" 姓名 "), e("span", {
325
+ class: "required"
326
+ }, "*")], -1)), b(e("input", {
327
+ id: "name",
328
+ "onUpdate:modelValue": n[0] || (n[0] = (_) => r.value.name = _),
329
+ type: "text",
330
+ placeholder: "请输入您的姓名",
331
+ required: "",
332
+ class: "form-input",
333
+ name: "name"
334
+ }, null, 512), [[L, r.value.name]]), n[4] || (n[4] = e("div", {
335
+ class: "empty-feedback invalid-feedback form-error"
336
+ }, " 请输入您的姓名。 ", -1))]), e("div", be, [n[5] || (n[5] = e("label", {
337
+ for: "email_address",
338
+ class: "form-label"
339
+ }, [f(" 邮箱地址 "), e("span", {
340
+ class: "required"
341
+ }, "*")], -1)), b(e("input", {
342
+ id: "email_address",
343
+ "onUpdate:modelValue": n[1] || (n[1] = (_) => r.value.email = _),
344
+ type: "email",
345
+ placeholder: "请输入您的邮箱地址",
346
+ name: "email",
347
+ required: "",
348
+ class: "form-input"
349
+ }, null, 512), [[L, r.value.email]]), n[6] || (n[6] = e("div", {
350
+ class: "empty-feedback form-error"
351
+ }, " 请输入您的邮箱地址。 ", -1)), n[7] || (n[7] = e("div", {
352
+ class: "invalid-feedback form-error"
353
+ }, " 请输入有效的邮箱地址。 ", -1))]), e("div", Le, [n[8] || (n[8] = e("label", {
354
+ for: "message",
355
+ class: "form-label"
356
+ }, [f(" 留言内容 "), e("span", {
357
+ class: "required"
358
+ }, "*")], -1)), b(e("textarea", {
359
+ id: "message",
360
+ "onUpdate:modelValue": n[2] || (n[2] = (_) => r.value.message = _),
361
+ name: "message",
362
+ required: "",
363
+ placeholder: "请输入您的留言内容",
364
+ class: "form-textarea",
365
+ rows: "4"
366
+ }, null, 512), [[L, r.value.message]]), n[9] || (n[9] = e("div", {
367
+ class: "empty-feedback invalid-feedback form-error"
368
+ }, " 请输入您的留言内容。 ", -1))]), e("button", ke, [i.value === "发送中..." ? (a(), o("span", xe, [...n[10] || (n[10] = [e("svg", {
369
+ class: "spinner",
370
+ xmlns: "http://www.w3.org/2000/svg",
371
+ fill: "none",
372
+ viewBox: "0 0 24 24"
373
+ }, [e("circle", {
374
+ class: "spinner-circle",
375
+ cx: "12",
376
+ cy: "12",
377
+ r: "10",
378
+ stroke: "currentColor",
379
+ "stroke-width": "4"
380
+ }), e("path", {
381
+ class: "spinner-path",
382
+ fill: "currentColor",
383
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
384
+ })], -1), f(" 发送中... ", -1)])])) : (a(), o("span", Ie, "发送信息"))]), i.value && i.value !== "发送中..." ? (a(), o("div", {
385
+ key: 0,
386
+ class: x(["form-result", p.value])
387
+ }, l(i.value), 3)) : I("", !0)], 34));
388
+ }
389
+ }), it = /* @__PURE__ */ d(Ce, [["__scopeId", "data-v-ea3b8237"]]), Pe = /* @__PURE__ */ u({
390
+ __name: "LandingPageContainer",
391
+ props: {
392
+ flexDirection: {
393
+ default: "column"
394
+ },
395
+ gap: {
396
+ default: "120px"
397
+ },
398
+ padding: {
399
+ default: ""
400
+ }
401
+ },
402
+ setup(s) {
403
+ const t = s;
404
+ return (c, i) => (a(), o("div", {
405
+ class: "landing-page-container",
406
+ style: D({
407
+ flexDirection: t.flexDirection,
408
+ gap: t.gap,
409
+ ...t.padding ? {
410
+ padding: t.padding
411
+ } : {}
412
+ })
413
+ }, [g(c.$slots, "default", {}, void 0, !0)], 4));
414
+ }
415
+ }), ot = /* @__PURE__ */ d(Pe, [["__scopeId", "data-v-213b19a2"]]), we = {}, Se = {
416
+ role: "separator",
417
+ class: "divider divider-horizontal"
418
+ };
419
+ function ze(s, t) {
420
+ return a(), o("div", Se);
421
+ }
422
+ const q = /* @__PURE__ */ d(we, [["render", ze], ["__scopeId", "data-v-fc6caeb0"]]), qe = {
423
+ class: "bottom"
424
+ }, Te = {
425
+ class: "beian-number"
426
+ }, De = {
427
+ class: "copyright-text"
428
+ }, Ve = {
429
+ class: "socials"
430
+ }, Be = ["onClick"], Fe = /* @__PURE__ */ u({
431
+ __name: "LandingPageFooterContact",
432
+ props: {
433
+ beianNumber: {
434
+ type: String,
435
+ required: !0
436
+ },
437
+ copyrightText: {
438
+ type: String,
439
+ required: !0
440
+ },
441
+ beianUrl: {
442
+ type: String,
443
+ required: !0
444
+ },
445
+ links: {
446
+ type: Array,
447
+ required: !0
448
+ }
449
+ },
450
+ setup(s) {
451
+ const t = s;
452
+ function c() {
453
+ window.open(t.beianUrl);
454
+ }
455
+ return (i, p) => (a(), o("div", qe, [e("div", {
456
+ class: "beian-text-wrapper",
457
+ onClick: c
458
+ }, [e("span", Te, l(t.beianNumber), 1), e("span", De, l(t.copyrightText), 1)]), e("div", Ve, [(a(!0), o(C, null, P(s.links, (r, y) => (a(), o("div", {
459
+ key: y,
460
+ class: "socialItem",
461
+ onClick: r.select
462
+ }, [r.type === "text" ? (a(), k(h(v), {
463
+ key: 0,
464
+ icon: r.icon
465
+ }, null, 8, ["icon"])) : I("", !0), r.type === "image" ? (a(), k(h(v), {
466
+ key: 1,
467
+ icon: r.icon
468
+ }, null, 8, ["icon"])) : I("", !0)], 8, Be))), 128))])]));
469
+ }
470
+ }), ct = /* @__PURE__ */ d(Fe, [["__scopeId", "data-v-56c85ce5"]]), Ae = {
471
+ class: "FooterLayout"
472
+ }, Ne = {
473
+ class: "body"
474
+ }, Ue = {
475
+ class: "logo"
476
+ }, Me = {
477
+ class: "links"
478
+ }, je = /* @__PURE__ */ u({
479
+ __name: "LandingPageFooterLayout",
480
+ setup(s) {
481
+ return (t, c) => (a(), o("div", Ae, [m(q), e("div", Ne, [e("div", Ue, [g(t.$slots, "LandingPageBrandInfo", {}, void 0, !0)]), e("div", Me, [g(t.$slots, "LandingPageLinkGroup", {}, void 0, !0)])]), m(q), g(t.$slots, "LandingPageFooterContact", {}, void 0, !0)]));
482
+ }
483
+ }), lt = /* @__PURE__ */ d(je, [["__scopeId", "data-v-425841c7"]]), Ke = {}, Oe = {
484
+ class: "Description"
485
+ };
486
+ function Ge(s, t) {
487
+ return a(), o("div", Oe, [g(s.$slots, "default", {}, void 0, !0)]);
488
+ }
489
+ const rt = /* @__PURE__ */ d(Ke, [["render", Ge], ["__scopeId", "data-v-302e1437"]]), Ee = {
490
+ class: "list"
491
+ }, He = {
492
+ class: "title"
493
+ }, Re = {
494
+ class: "listItemContent"
495
+ }, Ye = /* @__PURE__ */ u({
496
+ __name: "LandingPageLinkGroup",
497
+ props: {
498
+ title: {
499
+ default: ""
500
+ }
501
+ },
502
+ setup(s) {
503
+ const t = s;
504
+ return (c, i) => (a(), o("div", Ee, [e("div", He, l(t.title), 1), e("div", Re, [g(c.$slots, "item", {}, void 0, !0)])]));
505
+ }
506
+ }), dt = /* @__PURE__ */ d(Ye, [["__scopeId", "data-v-4f6d9dca"]]);
507
+ export {
508
+ q as D,
509
+ nt as L,
510
+ at as a,
511
+ it as b,
512
+ ot as c,
513
+ ct as d,
514
+ lt as e,
515
+ rt as f,
516
+ dt as g,
517
+ N as h,
518
+ et as i,
519
+ tt as j,
520
+ st as k
521
+ };
@@ -0,0 +1,69 @@
1
+ import { openBlock as n, createElementBlock as c, renderSlot as a, defineComponent as o, createElementVNode as t, toDisplayString as s } from "vue";
2
+ import { _ as l } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
+ const d = {}, h = {
4
+ class: "Description"
5
+ };
6
+ function r(i, e) {
7
+ return n(), c("div", h, [a(i.$slots, "default", {}, void 0, !0)]);
8
+ }
9
+ const M = /* @__PURE__ */ l(d, [["render", r], ["__scopeId", "data-v-8b3dab7a"]]), C = "data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='40'%20height='40'%20rx='14'%20fill='url(%23paint0_linear_1212_46228)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17%2011C13.6863%2011%2011%2013.6863%2011%2017V23C11%2026.3137%2013.6863%2029%2017%2029H23C26.3137%2029%2029%2026.3137%2029%2023V17C29%2013.6863%2026.3137%2011%2023%2011H17ZM20.0002%2015.9091C20.4521%2015.9091%2020.8184%2016.2754%2020.8184%2016.7273V19.1818H23.2718C23.7237%2019.1818%2024.09%2019.5481%2024.09%2020C24.09%2020.4519%2023.7237%2020.8182%2023.2718%2020.8182H20.8184V23.2727C20.8184%2023.7246%2020.4521%2024.0909%2020.0002%2024.0909C19.5484%2024.0909%2019.182%2023.7246%2019.182%2023.2727V20.8182H16.7264C16.2745%2020.8182%2015.9082%2020.4519%2015.9082%2020C15.9082%2019.5481%2016.2745%2019.1818%2016.7264%2019.1818H19.182V16.7273C19.182%2016.2754%2019.5484%2015.9091%2020.0002%2015.9091Z'%20fill='white'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_1212_46228'%20x1='20'%20y1='0'%20x2='20'%20y2='40'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%235766F0'/%3e%3cstop%20offset='1'%20stop-color='%23591EFF'%20stop-opacity='0.81'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e", _ = "data:image/svg+xml,%3csvg%20width='72'%20height='48'%20viewBox='0%200%2072%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cmask%20id='mask0_1212_46227'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='72'%20height='48'%3e%3crect%20width='72'%20height='48'%20fill='%23D9D9D9'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1212_46227)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M16.3789%2010.0001C16.3789%209.10554%2017.1041%208.38037%2017.9986%208.38037C18.8932%208.38037%2019.6183%209.10554%2019.6183%2010.0001C19.6183%2011.0172%2019.6664%2011.9775%2019.7585%2012.8841C19.8489%2013.7741%2019.2007%2014.5688%2018.3107%2014.6592C17.4208%2014.7497%2016.626%2014.1015%2016.5356%2013.2115C16.4317%2012.1889%2016.3789%2011.1191%2016.3789%2010.0001ZM18.0425%2019.547C17.7074%2018.7176%2018.1082%2017.7736%2018.9377%2017.4385C19.7671%2017.1035%2020.7111%2017.5043%2021.0461%2018.3337C21.7781%2020.146%2022.7687%2021.655%2023.9669%2022.9209C24.5819%2023.5705%2024.5537%2024.5957%2023.9041%2025.2106C23.2544%2025.8256%2022.2293%2025.7975%2021.6143%2025.1478C20.1362%2023.5862%2018.9254%2021.7329%2018.0425%2019.547ZM26.9161%2029.0658C26.1211%2028.6558%2025.8089%2027.6789%2026.219%2026.8838C26.629%2026.0888%2027.6059%2025.7767%2028.4009%2026.1867C30.0125%2027.0178%2031.8088%2027.6689%2033.753%2028.1757C34.6186%2028.4013%2035.1374%2029.286%2034.9118%2030.1516C34.6861%2031.0172%2033.8015%2031.536%2032.9359%2031.3104C30.8126%2030.7569%2028.7832%2030.0287%2026.9161%2029.0658ZM39.1207%2032.4579C38.2329%2032.348%2037.6022%2031.5393%2037.7121%2030.6516C37.8219%2029.7638%2038.6306%2029.1331%2039.5183%2029.2429C41.4424%2029.4809%2043.4322%2029.6311%2045.4551%2029.7252C46.3487%2029.7668%2047.0394%2030.5249%2046.9978%2031.4185C46.9562%2032.312%2046.1981%2033.0027%2045.3045%2032.9611C43.2229%2032.8643%2041.1475%2032.7086%2039.1207%2032.4579ZM51.4468%2033.1103C50.5523%2033.1036%2049.8326%2032.373%2049.8393%2031.4785C49.846%2030.584%2050.5766%2029.8643%2051.4711%2029.871C51.8002%2029.8735%2052.129%2029.8753%2052.4574%2029.8767L49.0395%2026.4589C48.4537%2025.8731%2048.4537%2024.9233%2049.0395%2024.3376C49.6253%2023.7518%2050.5751%2023.7518%2051.1608%2024.3376L56.5556%2029.7323C57.5319%2030.7086%2057.5319%2032.2915%2056.5556%2033.2678L51.1608%2038.6626C50.5751%2039.2484%2049.6253%2039.2484%2049.0395%2038.6626C48.4537%2038.0768%2048.4537%2037.1271%2049.0395%2036.5413L52.4646%2033.1162C52.1261%2033.1148%2051.7868%2033.1129%2051.4468%2033.1103Z'%20fill='black'%20fill-opacity='0.9'/%3e%3c/g%3e%3c/svg%3e", g = {
10
+ class: "section-header"
11
+ }, p = {
12
+ class: "title-section"
13
+ }, f = {
14
+ class: "icon-title"
15
+ }, u = ["src", "width", "height"], m = {
16
+ class: "title"
17
+ }, v = {
18
+ class: "subtitle-section"
19
+ }, w = ["src", "width", "height"], x = {
20
+ class: "subtitle"
21
+ }, y = "图标", H = "装饰线条", k = /* @__PURE__ */ o({
22
+ __name: "LandingPageSectionHeader",
23
+ props: {
24
+ title: {},
25
+ subtitle: {},
26
+ icon: {
27
+ default: C
28
+ },
29
+ iconWidth: {
30
+ default: 40
31
+ },
32
+ iconHeight: {
33
+ default: 40
34
+ },
35
+ dashline: {
36
+ default: _
37
+ },
38
+ dashlineWidth: {
39
+ default: 72
40
+ },
41
+ dashlineHeight: {
42
+ default: 48
43
+ }
44
+ },
45
+ setup(i) {
46
+ const e = i;
47
+ return (S, b) => (n(), c("div", g, [t("div", p, [t("div", f, [t("img", {
48
+ src: e.icon,
49
+ alt: y,
50
+ width: e.iconWidth,
51
+ height: e.iconHeight,
52
+ loading: "lazy",
53
+ decoding: "async",
54
+ class: "icon"
55
+ }, null, 8, u), t("span", m, s(i.title), 1)]), t("div", v, [t("img", {
56
+ src: e.dashline,
57
+ alt: H,
58
+ width: e.dashlineWidth,
59
+ height: e.dashlineHeight,
60
+ loading: "lazy",
61
+ decoding: "async",
62
+ class: "dashline"
63
+ }, null, 8, w), t("span", x, s(i.subtitle), 1)])])]));
64
+ }
65
+ }), V = /* @__PURE__ */ l(k, [["__scopeId", "data-v-e1681a62"]]);
66
+ export {
67
+ M as D,
68
+ V as L
69
+ };