@huyooo/ui 0.5.5 → 0.5.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 (42) hide show
  1. package/dist/{AuthkitAuthModal-BjqMoIed.js → AuthkitAuthModal-DOB2R0lE.js} +4 -4
  2. package/dist/{AuthkitAuthorize-DWb0xKRa.js → AuthkitAuthorize-BLKbcsyH.js} +2 -2
  3. package/dist/Contact-DzUxcc2w.js +429 -0
  4. package/dist/{FeedbackItem-bPlL6uEE.js → FeedbackItem-TRyk9rcU.js} +3 -3
  5. package/dist/{FeedbackModal-DJx3R3rM.js → FeedbackModal-BJx5Bzas.js} +2 -2
  6. package/dist/LandingPageSectionHeader-CSOwusSK.js +688 -0
  7. package/dist/LandingPageSectionTabs-6Rrgvwqs.js +1144 -0
  8. package/dist/{MessageHandle-BJH_S-61.js → MessageHandle-DP9rvOy4.js} +2 -2
  9. package/dist/{PaySubscriptions-BGl9BQru.js → PaySubscriptions-DyHMXC_2.js} +1 -1
  10. package/dist/{ReferrerReferees-oi-zzWCo.js → ReferrerReferees-CxmerF3X.js} +2 -2
  11. package/dist/{Upload.vue_vue_type_script_setup_true_lang-CDyUt05d.js → Upload.vue_vue_type_script_setup_true_lang-CZ8Z-NG6.js} +2 -2
  12. package/dist/{UserAccountMenu-BD8F9vEK.js → UserAccountMenu-BEFQWt3O.js} +1 -1
  13. package/dist/{UserPanel-C6XusLxb.js → UserPanel-DgSdGhj5.js} +7 -7
  14. package/dist/{WidthContainer-uWfPyPEH.js → WidthContainer-3fyX6xI4.js} +79 -82
  15. package/dist/authkit.js +4 -4
  16. package/dist/common/globalConfig.d.ts +4 -0
  17. package/dist/common.js +1 -1
  18. package/dist/components/DefaultLayout.vue.d.ts +16 -1
  19. package/dist/components/PrivateCom/Contact.vue.d.ts +2 -0
  20. package/dist/composables.js +6 -6
  21. package/dist/feedback.js +2 -2
  22. package/dist/globalConfig-DKn-cF9c.js +17 -0
  23. package/dist/index.js +54 -53
  24. package/dist/landingPage.js +34 -34
  25. package/dist/message.js +2 -2
  26. package/dist/pay.js +1 -1
  27. package/dist/privateCom.d.ts +1 -0
  28. package/dist/privateCom.js +6 -5
  29. package/dist/referrer.js +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/upload.js +2 -2
  32. package/dist/{useAuthkitAppsAuthPageInfo-Dr5K7ULW.js → useAuthkitAppsAuthPageInfo-qWOtNCda.js} +1 -1
  33. package/dist/{useAuthkitUsersProfile-DNOB_Kuk.js → useAuthkitUsersProfile-a-kA3R2Y.js} +1 -1
  34. package/dist/{useMessageNotifications-DOH1MS61.js → useMessageNotifications-B5pXqPNh.js} +1 -1
  35. package/dist/{useRoutePermission-DuZZniIv.js → useRoutePermission-BKg7oQTj.js} +3 -3
  36. package/dist/{useUploadCos-B5P_PDcy.js → useUploadCos-yeMY5Xn0.js} +1 -1
  37. package/dist/user.js +2 -2
  38. package/package.json +1 -1
  39. package/dist/Introduce-e3nEDSRY.js +0 -390
  40. package/dist/LandingPageSectionHeader-Dlc5rL21.js +0 -463
  41. package/dist/LandingPageSectionTabs-CrFrtbqu.js +0 -1369
  42. package/dist/globalConfig-DZIhLe1R.js +0 -16
@@ -1,1369 +0,0 @@
1
- import { createElementBlock as o, openBlock as n, renderSlot as g, defineComponent as _, createVNode as p, withCtx as m, createElementVNode as e, normalizeStyle as w, Fragment as v, createTextVNode as h, ref as k, renderList as b, toDisplayString as l, normalizeClass as x, unref as L, withModifiers as M, createCommentVNode as S, withDirectives as T, vModelText as A, createBlock as P, computed as q, createStaticVNode as z, watch as B, vShow as j } from "vue";
2
- import { _ as u } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
- import { k as E, l as N, i as O, D as C, g as U } from "./LandingPageSectionHeader-Dlc5rL21.js";
4
- import { Icon as I } from "@iconify/vue";
5
- import { C as G, a as R } from "./CollapseItem-Cw1vcdLu.js";
6
- /* empty css */
7
- /* empty css */
8
- import { Tag as W } from "@arco-design/web-vue";
9
- const K = {}, J = {
10
- class: "SubTitle"
11
- };
12
- function Z(a, t) {
13
- return n(), o("div", J, [g(a.$slots, "default", {}, void 0, !0)]);
14
- }
15
- const V = /* @__PURE__ */ u(K, [["render", Z], ["__scopeId", "data-v-3decf2d4"]]), Q = {}, Y = {
16
- class: "Title"
17
- };
18
- function X(a, t) {
19
- return n(), o("h2", Y, [g(a.$slots, "default", {}, void 0, !0)]);
20
- }
21
- const D = /* @__PURE__ */ u(Q, [["render", X], ["__scopeId", "data-v-58078aa8"]]), ee = {
22
- class: "BlockHeader"
23
- }, te = /* @__PURE__ */ _({
24
- __name: "LandingPageBlockHeader",
25
- setup(a) {
26
- return (t, c) => (n(), o("div", ee, [p(D, {
27
- class: "BlockHeaderTitle"
28
- }, {
29
- default: m(() => [g(t.$slots, "title", {}, void 0, !0)]),
30
- _: 3
31
- }), p(V, {
32
- class: "BlockHeaderSubTitle"
33
- }, {
34
- default: m(() => [g(t.$slots, "subTitle", {}, void 0, !0)]),
35
- _: 3
36
- })]));
37
- }
38
- }), se = /* @__PURE__ */ u(te, [["__scopeId", "data-v-8d51bb3a"]]), ae = {
39
- class: "BlockLayout"
40
- }, ne = /* @__PURE__ */ _({
41
- __name: "LandingPageBlockLayout",
42
- props: {
43
- columns: {
44
- type: Number,
45
- default: 1
46
- },
47
- flexDirection: {
48
- type: String,
49
- default: "column"
50
- }
51
- },
52
- setup(a) {
53
- const t = a;
54
- return (c, i) => (n(), o("section", ae, [g(c.$slots, "BlockHeader", {}, void 0, !0), e("div", {
55
- class: "BlockBody",
56
- style: w({
57
- gridTemplateColumns: `repeat(${t.columns}, 1fr)`,
58
- flexDirection: t.flexDirection
59
- })
60
- }, [g(c.$slots, "BlockBody", {}, void 0, !0)], 4)]));
61
- }
62
- }), oe = /* @__PURE__ */ u(ne, [["__scopeId", "data-v-84ed1aaa"]]), ie = /* @__PURE__ */ _({
63
- __name: "LandingPageAbout",
64
- setup(a) {
65
- const t = [{
66
- data: {
67
- name: "Janette Lynch",
68
- title: "Senior Director",
69
- avatar: {
70
- src: "https://images.unsplash.com/photo-1580489944761-15a19d654956?&fit=crop&w=280",
71
- alt: "Janette Lynch"
72
- }
73
- }
74
- }, {
75
- data: {
76
- name: "Marcell Ziemann",
77
- title: "Principal Strategist",
78
- avatar: {
79
- src: "https://images.unsplash.com/photo-1633332755192-727a05c4013d?&fit=crop&w=280",
80
- alt: "Marcell Ziemann"
81
- }
82
- }
83
- }, {
84
- data: {
85
- name: "Robert Palmer",
86
- title: "Marketing Engineer",
87
- avatar: {
88
- src: "https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?&fit=crop&w=280",
89
- alt: "Robert Palmer"
90
- }
91
- }
92
- }, {
93
- data: {
94
- name: "Daniel Collins",
95
- title: "Chief Sales Officer",
96
- avatar: {
97
- src: "https://astroship-pro.web3templates.com/_astro/photo-1487309078313-fad80c3ec1e5_6PMfa.avif",
98
- alt: "Robert Palmer"
99
- }
100
- }
101
- }];
102
- return (c, i) => (n(), o(v, null, [p(oe, null, {
103
- BlockHeader: m(() => [p(se, null, {
104
- title: m(() => [...i[0] || (i[0] = [h("核心团队", -1)])]),
105
- subTitle: m(() => [...i[1] || (i[1] = [h("我们是一个充满激情的小团队。", -1)])]),
106
- _: 1
107
- })]),
108
- BlockBody: m(() => [p(E, {
109
- title: "Empowering the world with Astro.",
110
- description: "We're a multi-cultural team from around the world! We come from diverse backgrounds, bringing different personalities, experiences and skills to the job. This is what makes our team so special."
111
- }), p(N, {
112
- "published-team-members": t
113
- })]),
114
- _: 1
115
- }), p(O, {
116
- image: "https://astroship-pro.web3templates.com/_astro/employee.DPridi10_Z23eRat.avif",
117
- "image-alt": "Happy Team",
118
- title: "Mission",
119
- highlight: "Our ",
120
- description: "We're a multi-cultural team from around the world! ...",
121
- features: ["Intelligent Task Management", "Real-time Collaboration", "Data Security & Privacy"]
122
- })], 64));
123
- }
124
- }), ca = /* @__PURE__ */ u(ie, [["__scopeId", "data-v-a40e05a5"]]), ce = {
125
- class: "nav"
126
- }, le = {
127
- class: "section"
128
- }, re = ["href"], de = {
129
- class: "section"
130
- }, ue = ["href"], _e = /* @__PURE__ */ _({
131
- __name: "LandingPageAside",
132
- setup(a) {
133
- const t = k([{
134
- text: "Editor",
135
- href: "/docs/editor/getting-started/overview"
136
- }, {
137
- text: "Collaboration",
138
- href: "/docs/collaboration/getting-started/overview"
139
- }, {
140
- text: "Content AI",
141
- href: "/docs/content-ai/getting-started/overview"
142
- }, {
143
- text: "Comments",
144
- href: "/docs/comments/getting-started/overview"
145
- }, {
146
- text: "Documents",
147
- href: "/docs/collaboration/documents"
148
- }]), c = k([{
149
- text: "Guides",
150
- href: "/docs/guides"
151
- }, {
152
- text: "Examples",
153
- href: "/docs/examples"
154
- }, {
155
- text: "Contributing",
156
- href: "/docs/resources/contributing"
157
- }, {
158
- text: "Editor changelog",
159
- href: "/docs/resources/changelog"
160
- }, {
161
- text: "Pro license",
162
- href: "/docs/resources/pro-license"
163
- }]);
164
- return (i, s) => (n(), o("nav", ce, [s[2] || (s[2] = e("div", {
165
- class: "section"
166
- }, [e("div", {
167
- class: "section-title"
168
- }, "Getting started"), e("div", null, [e("a", {
169
- class: "link active",
170
- href: "/docs"
171
- }, "Overview")])], -1)), e("div", le, [s[0] || (s[0] = e("div", {
172
- class: "section-title"
173
- }, "Browse by feature", -1)), e("div", null, [(n(!0), o(v, null, b(t.value, (r) => (n(), o("a", {
174
- key: r.text,
175
- class: "link",
176
- href: r.href
177
- }, l(r.text), 9, re))), 128))])]), e("div", de, [s[1] || (s[1] = e("div", {
178
- class: "section-title"
179
- }, "Resources", -1)), e("div", null, [(n(!0), o(v, null, b(c.value, (r) => (n(), o("a", {
180
- key: r.text,
181
- class: "link",
182
- href: r.href
183
- }, l(r.text), 9, ue))), 128))])])]));
184
- }
185
- }), la = /* @__PURE__ */ u(_e, [["__scopeId", "data-v-b516bb75"]]), pe = /* @__PURE__ */ _({
186
- __name: "LandingPageButton",
187
- props: {
188
- type: {}
189
- },
190
- setup(a) {
191
- return (t, c) => (n(), o("div", {
192
- class: x(["heroButton", [a.type === "primary" ? "heroButtonPrimary" : "heroButtonSecondary"]])
193
- }, [g(t.$slots, "default", {}, void 0, !0)], 2));
194
- }
195
- }), me = /* @__PURE__ */ u(pe, [["__scopeId", "data-v-d26fdf8b"]]), fe = {}, he = {
196
- class: "Card"
197
- };
198
- function ge(a, t) {
199
- return n(), o("div", he, [g(a.$slots, "default", {}, void 0, !0)]);
200
- }
201
- const H = /* @__PURE__ */ u(fe, [["render", ge], ["__scopeId", "data-v-cdb3f77d"]]), ve = {
202
- class: "contact-container"
203
- }, $e = {
204
- class: "contact-info-section"
205
- }, be = {
206
- class: "contact-title"
207
- }, ye = {
208
- class: "contact-info"
209
- }, ke = {
210
- class: "contact-info-item"
211
- }, xe = {
212
- class: "contact-info-item"
213
- }, Pe = ["href"], Le = {
214
- class: "contact-info-item"
215
- }, we = ["href"], Ce = {
216
- class: "contact-form-section"
217
- }, Ie = /* @__PURE__ */ _({
218
- __name: "LandingPageContact",
219
- props: {
220
- title: {
221
- default: ""
222
- },
223
- subTitle: {
224
- default: ""
225
- },
226
- contact: {
227
- default: () => ({
228
- title: "联系我们",
229
- description: "有什么想说的吗?我们随时为您提供帮助。请填写表单或发送邮件或拨打电话。"
230
- })
231
- },
232
- address: {
233
- default: "北京市朝阳区建国门外大街1号"
234
- },
235
- email: {
236
- default: "hello@example.com"
237
- },
238
- phone: {
239
- default: "+86 138 0000 0000"
240
- },
241
- mapIcon: {
242
- default: "uil:map-marker"
243
- },
244
- emailIcon: {
245
- default: "uil:envelope"
246
- },
247
- phoneIcon: {
248
- default: "uil:phone"
249
- }
250
- },
251
- setup(a) {
252
- const t = a;
253
- return (c, i) => (n(), o("div", ve, [e("div", $e, [e("h2", be, l(t.contact.title), 1), p(C, null, {
254
- default: m(() => [h(l(t.contact.description), 1)]),
255
- _: 1
256
- }), e("div", ye, [e("div", ke, [p(L(I), {
257
- class: "contact-info-icon",
258
- icon: a.mapIcon
259
- }, null, 8, ["icon"]), e("span", null, l(t.address), 1)]), e("div", xe, [p(L(I), {
260
- class: "contact-info-icon",
261
- icon: t.emailIcon
262
- }, null, 8, ["icon"]), e("a", {
263
- href: `mailto:${a.email}`
264
- }, l(t.email), 9, Pe)]), e("div", Le, [p(L(I), {
265
- class: "contact-info-icon",
266
- icon: t.phoneIcon
267
- }, null, 8, ["icon"]), e("a", {
268
- href: `tel:${a.phone}`
269
- }, l(t.phone), 9, we)])])]), e("div", Ce, [g(c.$slots, "contact-form", {}, void 0, !0)])]));
270
- }
271
- }), ra = /* @__PURE__ */ u(Ie, [["__scopeId", "data-v-50d64cb9"]]), Se = ["value"], Te = ["value"], Ae = {
272
- class: "form-group"
273
- }, Be = {
274
- class: "form-group"
275
- }, qe = {
276
- class: "form-group"
277
- }, Ve = {
278
- type: "submit",
279
- class: "form-button"
280
- }, De = {
281
- key: 0,
282
- class: "button-content"
283
- }, He = {
284
- key: 1
285
- }, Fe = /* @__PURE__ */ _({
286
- __name: "LandingPageContactForm",
287
- props: {
288
- accessKey: {
289
- default: "YOUR_ACCESS_KEY_HERE"
290
- },
291
- to: {
292
- default: "support@huyooo.com"
293
- }
294
- },
295
- setup(a) {
296
- const t = a, c = k(!1), i = k(""), s = k(""), r = k({
297
- name: "",
298
- email: "",
299
- message: ""
300
- }), y = async ($) => {
301
- c.value = !0;
302
- const d = $.target;
303
- if (!d.checkValidity()) {
304
- d.querySelectorAll(":invalid")[0].focus();
305
- return;
306
- }
307
- i.value = "发送中...", s.value = "";
308
- try {
309
- const f = await fetch("https://api.web3forms.com/submit", {
310
- method: "POST",
311
- headers: {
312
- "Content-Type": "application/json",
313
- Accept: "application/json"
314
- },
315
- body: JSON.stringify({
316
- access_key: t.accessKey,
317
- to: t.to,
318
- name: r.value.name,
319
- email: r.value.email,
320
- message: r.value.message
321
- })
322
- });
323
- await f.json(), f.status === 200 ? (s.value = "text-green", i.value = "消息发送成功!我们会尽快回复您。") : (s.value = "text-red", i.value = "发送失败,请检查网络连接后重试。");
324
- } catch {
325
- s.value = "text-red", i.value = "发送失败,请稍后再试!";
326
- } finally {
327
- d.reset(), c.value = !1, setTimeout(() => {
328
- i.value = "";
329
- }, 5e3);
330
- }
331
- };
332
- return ($, d) => (n(), o("form", {
333
- id: "form",
334
- action: "https://api.web3forms.com/submit",
335
- method: "POST",
336
- class: x(["contact-form", {
337
- "was-validated": c.value
338
- }]),
339
- novalidate: "",
340
- onSubmit: M(y, ["prevent"])
341
- }, [e("input", {
342
- type: "hidden",
343
- name: "access_key",
344
- value: t.accessKey
345
- }, null, 8, Se), e("input", {
346
- type: "hidden",
347
- name: "to",
348
- value: t.to
349
- }, null, 8, Te), d[11] || (d[11] = e("input", {
350
- type: "checkbox",
351
- class: "hidden",
352
- style: {
353
- display: "none"
354
- },
355
- name: "botcheck"
356
- }, null, -1)), e("div", Ae, [d[3] || (d[3] = e("label", {
357
- for: "name",
358
- class: "form-label"
359
- }, [h(" 姓名 "), e("span", {
360
- class: "required"
361
- }, "*")], -1)), T(e("input", {
362
- id: "name",
363
- "onUpdate:modelValue": d[0] || (d[0] = (f) => r.value.name = f),
364
- type: "text",
365
- placeholder: "请输入您的姓名",
366
- required: "",
367
- class: "form-input",
368
- name: "name"
369
- }, null, 512), [[A, r.value.name]]), d[4] || (d[4] = e("div", {
370
- class: "empty-feedback invalid-feedback form-error"
371
- }, " 请输入您的姓名。 ", -1))]), e("div", Be, [d[5] || (d[5] = e("label", {
372
- for: "email_address",
373
- class: "form-label"
374
- }, [h(" 邮箱地址 "), e("span", {
375
- class: "required"
376
- }, "*")], -1)), T(e("input", {
377
- id: "email_address",
378
- "onUpdate:modelValue": d[1] || (d[1] = (f) => r.value.email = f),
379
- type: "email",
380
- placeholder: "请输入您的邮箱地址",
381
- name: "email",
382
- required: "",
383
- class: "form-input"
384
- }, null, 512), [[A, r.value.email]]), d[6] || (d[6] = e("div", {
385
- class: "empty-feedback form-error"
386
- }, " 请输入您的邮箱地址。 ", -1)), d[7] || (d[7] = e("div", {
387
- class: "invalid-feedback form-error"
388
- }, " 请输入有效的邮箱地址。 ", -1))]), e("div", qe, [d[8] || (d[8] = e("label", {
389
- for: "message",
390
- class: "form-label"
391
- }, [h(" 留言内容 "), e("span", {
392
- class: "required"
393
- }, "*")], -1)), T(e("textarea", {
394
- id: "message",
395
- "onUpdate:modelValue": d[2] || (d[2] = (f) => r.value.message = f),
396
- name: "message",
397
- required: "",
398
- placeholder: "请输入您的留言内容",
399
- class: "form-textarea",
400
- rows: "4"
401
- }, null, 512), [[A, r.value.message]]), d[9] || (d[9] = e("div", {
402
- class: "empty-feedback invalid-feedback form-error"
403
- }, " 请输入您的留言内容。 ", -1))]), e("button", Ve, [i.value === "发送中..." ? (n(), o("span", De, [...d[10] || (d[10] = [e("svg", {
404
- class: "spinner",
405
- xmlns: "http://www.w3.org/2000/svg",
406
- fill: "none",
407
- viewBox: "0 0 24 24"
408
- }, [e("circle", {
409
- class: "spinner-circle",
410
- cx: "12",
411
- cy: "12",
412
- r: "10",
413
- stroke: "currentColor",
414
- "stroke-width": "4"
415
- }), e("path", {
416
- class: "spinner-path",
417
- fill: "currentColor",
418
- 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"
419
- })], -1), h(" 发送中... ", -1)])])) : (n(), o("span", He, "发送信息"))]), i.value && i.value !== "发送中..." ? (n(), o("div", {
420
- key: 0,
421
- class: x(["form-result", s.value])
422
- }, l(i.value), 3)) : S("", !0)], 34));
423
- }
424
- }), da = /* @__PURE__ */ u(Fe, [["__scopeId", "data-v-bd2eaefb"]]), Me = /* @__PURE__ */ _({
425
- __name: "LandingPageContainer",
426
- props: {
427
- flexDirection: {
428
- default: "column"
429
- },
430
- gap: {
431
- default: "80px"
432
- },
433
- padding: {
434
- default: "0px"
435
- }
436
- },
437
- setup(a) {
438
- const t = a;
439
- return (c, i) => (n(), o("div", {
440
- class: "landing-page-container",
441
- style: w({
442
- flexDirection: t.flexDirection,
443
- gap: t.gap,
444
- padding: t.padding
445
- })
446
- }, [g(c.$slots, "default", {}, void 0, !0)], 4));
447
- }
448
- }), ua = /* @__PURE__ */ u(Me, [["__scopeId", "data-v-4566ee86"]]), ze = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1744'%20height='480'%20viewBox='0%200%201744%20480'%20fill='none'%3e%3cg%20style='mix-blend-mode:luminosity'%20opacity='0.5'%3e%3ccircle%20opacity='0.7'%20cx='861.225'%20cy='247.836'%20r='322.59'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.6'%20cx='861.225'%20cy='247.836'%20r='387.237'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.5'%20cx='861.226'%20cy='247.836'%20r='451.884'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.4'%20cx='861.225'%20cy='247.835'%20r='516.532'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.3'%20cx='861.225'%20cy='247.836'%20r='581.179'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.2'%20cx='861.225'%20cy='247.836'%20r='645.826'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.15'%20cx='861.225'%20cy='247.836'%20r='710.473'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.1'%20cx='861.225'%20cy='247.836'%20r='775.12'%20stroke='%2300000050'%20stroke-width='1.29295'%20/%3e%3ccircle%20opacity='0.1'%20cx='862.695'%20cy='238.041'%20r='842.161'%20stroke='%2300000050'%20stroke-width='1.40477'%20/%3e%3ccircle%20opacity='0.1'%20cx='872'%20cy='240'%20r='907.243'%20stroke='%2300000050'%20stroke-width='1.51333'%20/%3e%3c/g%3e%3c/svg%3e", je = {
449
- class: "cta-container"
450
- }, Ee = ["src"], Ne = {
451
- class: "cta-content"
452
- }, Oe = {
453
- class: "cta-title"
454
- }, Ue = {
455
- class: "cta-description"
456
- }, Ge = {
457
- class: "cta-actions"
458
- }, Re = /* @__PURE__ */ _({
459
- __name: "LandingPageCta",
460
- props: {
461
- title: {
462
- default: "迫不及待想使用翻译?"
463
- },
464
- description: {
465
- default: "立即开始您的翻译之旅"
466
- },
467
- backgroundUrl: {
468
- default: ze
469
- },
470
- backgroundSize: {
471
- default: "120%"
472
- }
473
- },
474
- setup(a) {
475
- const t = a;
476
- return (c, i) => (n(), o("div", je, [e("img", {
477
- src: t.backgroundUrl,
478
- class: "cta-background",
479
- alt: "background",
480
- style: w({
481
- width: t.backgroundSize,
482
- height: t.backgroundSize
483
- })
484
- }, null, 12, Ee), e("div", Ne, [e("h1", Oe, l(t.title), 1), e("div", Ue, l(t.description), 1), e("div", Ge, [g(c.$slots, "actions", {}, void 0, !0)])])]));
485
- }
486
- }), _a = /* @__PURE__ */ u(Re, [["__scopeId", "data-v-4a709ec3"]]), We = /* @__PURE__ */ _({
487
- __name: "LandingPageFAQ",
488
- props: {
489
- activeKeys: {
490
- default: () => []
491
- },
492
- faqItems: {
493
- default: () => [{
494
- question: "你们有免费试用吗?",
495
- answer: "我们提供1个月的免费试用"
496
- }, {
497
- question: "我可以申请退款吗?",
498
- answer: "不支持退款,但您可以随时取消订阅。取消订阅后将于下一个结算日的次日生效,在此之前您可以使用服务。为了避免被收取下一计费期的费用,请在下一个计费日期前至少 24 小时取消。"
499
- }, {
500
- question: "付费会员的配额什么时候会重置?会在月初吗?",
501
- answer: "配额重置发生在您订阅后一个月,并非基于日历月。例如,如果您在4月15日订阅,您的配额将在5月15日重置。"
502
- }, {
503
- question: "从月付费订阅升级至年付费订阅,费用和有效期是如何计算的?",
504
- answer: "从月度付费升级至年度付费时,会基于您剩余的月度付费价值计算差额。服务期从升级日起至次年同日。"
505
- }, {
506
- question: "你们提供技术支持吗?",
507
- answer: "是的,在付费期间我们提供全天候的技术支持,可以通过电子邮箱和微信联系我们。"
508
- }, {
509
- question: "使用期间有什么限制吗?",
510
- answer: "在使用期间如果发现开发者违反法律法规或在恶意应用程序中使用等任何不当使用行为,包括但不限于共享或出售订阅,都是被禁止的,可能会导致您的账户被终止且不予退款。我们有权终止服务,详情请参阅《付费服务协议》"
511
- }]
512
- }
513
- },
514
- setup(a) {
515
- const t = a;
516
- return (c, i) => (n(), P(G, {
517
- "active-keys": t.activeKeys
518
- }, {
519
- default: m(() => [(n(!0), o(v, null, b(t.faqItems, (s, r) => (n(), P(R, {
520
- key: r,
521
- index: r
522
- }, {
523
- header: m(() => [h(l(s.question), 1)]),
524
- default: m(() => [p(C, null, {
525
- default: m(() => [h(l(s.answer), 1)]),
526
- _: 2
527
- }, 1024)]),
528
- _: 2
529
- }, 1032, ["index"]))), 128))]),
530
- _: 1
531
- }, 8, ["active-keys"]));
532
- }
533
- }), pa = /* @__PURE__ */ u(We, [["__scopeId", "data-v-581e8f75"]]), Ke = {
534
- class: "Features"
535
- }, Je = {
536
- class: "feature-title"
537
- }, Ze = /* @__PURE__ */ _({
538
- __name: "LandingPageFeatures",
539
- props: {
540
- features: {
541
- default: () => [{
542
- title: "什么是ShipAny?",
543
- description: "ShipAny是一个无代码平台,帮助您在几小时内而不是几天内构建和发布AI产品。",
544
- icon: ""
545
- }, {
546
- title: "认证与支付",
547
- description: "内置认证和Stripe支付处理,开箱即用。",
548
- icon: ""
549
- }, {
550
- title: "数据基础设施",
551
- description: "为您的AI模型和用户数据提供安全且可扩展的数据库基础设施。",
552
- icon: ""
553
- }, {
554
- title: "实时部署",
555
- description: "持续部署工作流,确保您的AI创业公司始终保持最新状态。",
556
- icon: ""
557
- }, {
558
- title: "业务分析",
559
- description: "跟踪用户行为和业务指标,做出明智决策。",
560
- icon: ""
561
- }, {
562
- title: "AI模型集成",
563
- description: "轻松集成来自OpenAI、Anthropic等的最新AI模型。",
564
- icon: ""
565
- }]
566
- },
567
- iconColor: {
568
- default: "rgb(184, 154, 120)"
569
- },
570
- iconBorderColor: {
571
- default: "rgb(184, 154, 120)"
572
- }
573
- },
574
- setup(a) {
575
- const t = a;
576
- return (c, i) => (n(), o("div", Ke, [(n(!0), o(v, null, b(t.features, (s) => (n(), P(H, {
577
- key: s.title
578
- }, {
579
- default: m(() => [e("div", {
580
- class: "icon-container",
581
- style: w({
582
- color: t.iconColor,
583
- border: `1px solid ${t.iconBorderColor}`
584
- })
585
- }, [p(L(I), {
586
- class: "icon",
587
- icon: s.icon
588
- }, null, 8, ["icon"])], 4), e("h3", Je, l(s.title), 1), p(C, null, {
589
- default: m(() => [h(l(s.description), 1)]),
590
- _: 2
591
- }, 1024)]),
592
- _: 2
593
- }, 1024))), 128))]));
594
- }
595
- }), ma = /* @__PURE__ */ u(Ze, [["__scopeId", "data-v-1ee2db18"]]), Qe = {
596
- class: "tt-feature-list"
597
- }, Ye = {
598
- class: "tt-feature-content"
599
- }, Xe = {
600
- class: "heading-small"
601
- }, et = {
602
- class: "text-small"
603
- }, tt = /* @__PURE__ */ _({
604
- __name: "LandingPageFeatures2",
605
- props: {
606
- list: {
607
- type: Array,
608
- required: !0
609
- }
610
- },
611
- setup(a) {
612
- const t = a;
613
- return (c, i) => (n(), o("div", Qe, [(n(!0), o(v, null, b(t.list, (s, r) => (n(), o("div", {
614
- key: r,
615
- class: "tt-feature-item centered"
616
- }, [i[1] || (i[1] = e("div", {
617
- class: "tt-feature-icon"
618
- }, [e("img", {
619
- src: "https://cdn.prod.website-files.com/645a9acecda2e0594fac6126/66cda872417824f6aabdc2ad_check-highlight-badge.svg",
620
- loading: "lazy",
621
- class: "feature-media"
622
- })], -1)), e("div", Ye, [e("h3", Xe, l(s.title), 1), e("p", et, [h(l(s.descriptions) + " ", 1), i[0] || (i[0] = e("br", null, null, -1))])])]))), 128))]));
623
- }
624
- }), fa = /* @__PURE__ */ u(tt, [["__scopeId", "data-v-abd3c70a"]]), st = {
625
- class: "hero"
626
- }, at = {
627
- class: "heroContent"
628
- }, nt = {
629
- class: "heroHeading"
630
- }, ot = {
631
- class: "heroTitle"
632
- }, it = {
633
- class: "heroDescription"
634
- }, ct = {
635
- class: "heroActions"
636
- }, lt = {
637
- class: "heroImage"
638
- }, rt = /* @__PURE__ */ _({
639
- __name: "LandingPageHero",
640
- props: {
641
- title: {
642
- type: String,
643
- default: () => ""
644
- },
645
- description: {
646
- type: String,
647
- default: () => ""
648
- },
649
- heroSource: {
650
- type: String,
651
- default: () => ""
652
- }
653
- },
654
- setup(a) {
655
- const t = a;
656
- return (c, i) => (n(), o("main", st, [e("div", at, [e("div", nt, [e("h1", ot, [g(c.$slots, "title", {}, () => [h(l(t.title), 1)], !0)])]), e("div", it, [e("div", null, l(t.description), 1)]), e("div", ct, [g(c.$slots, "actions", {}, void 0, !0)])]), e("div", lt, [g(c.$slots, "heroSource", {}, void 0, !0)])]));
657
- }
658
- }), ha = /* @__PURE__ */ u(rt, [["__scopeId", "data-v-38f97a3c"]]), dt = {
659
- class: "logos-list"
660
- }, ut = /* @__PURE__ */ _({
661
- __name: "LandingPageLogos",
662
- props: {
663
- title: {
664
- default: "Works with your technologies"
665
- },
666
- subTitle: {
667
- default: ""
668
- },
669
- logos: {
670
- default: () => [{
671
- name: "simple-icons:react"
672
- }, {
673
- name: "simple-icons:svelte"
674
- }, {
675
- name: "simple-icons:astro"
676
- }, {
677
- name: "simple-icons:css3"
678
- }, {
679
- name: "simple-icons:alpinedotjs"
680
- }, {
681
- name: "simple-icons:vercel"
682
- }]
683
- }
684
- },
685
- setup(a) {
686
- const t = a;
687
- return (c, i) => (n(), o("div", dt, [(n(!0), o(v, null, b(t.logos, (s, r) => (n(), P(L(I), {
688
- key: r,
689
- icon: s.name,
690
- class: "logo-icon"
691
- }, null, 8, ["icon"]))), 128))]));
692
- }
693
- }), ga = /* @__PURE__ */ u(ut, [["__scopeId", "data-v-1a08e627"]]), _t = /* @__PURE__ */ _({
694
- __name: "LandingPagePageContent",
695
- props: {
696
- maxWidth: {
697
- default: "1380px"
698
- },
699
- center: {
700
- type: Boolean,
701
- default: !0
702
- },
703
- padding: {
704
- default: "0px 0px 40px 0px "
705
- },
706
- gap: {
707
- default: "90px"
708
- },
709
- flexDirection: {
710
- default: "column"
711
- }
712
- },
713
- setup(a) {
714
- const t = a, c = q(() => ({
715
- maxWidth: t.maxWidth,
716
- margin: t.center ? "0 auto" : void 0,
717
- width: "100%",
718
- padding: t.padding,
719
- display: "flex",
720
- flexDirection: t.flexDirection ?? "column",
721
- gap: t.gap
722
- }));
723
- return (i, s) => (n(), o("div", {
724
- class: "PageContent",
725
- style: w(c.value)
726
- }, [g(i.$slots, "default", {}, void 0, !0)], 4));
727
- }
728
- }), va = /* @__PURE__ */ u(_t, [["__scopeId", "data-v-00ec8180"]]), pt = {
729
- class: "Tabs"
730
- }, mt = {
731
- class: "tabs-root"
732
- }, ft = {
733
- role: "radiogroup",
734
- "aria-required": "false",
735
- dir: "ltr",
736
- class: "tabs-group",
737
- tabindex: "0"
738
- }, ht = ["id", "aria-checked", "data-state", "value", "tabindex", "onClick"], gt = {
739
- key: 0,
740
- "data-state": "checked",
741
- class: "tabs-radio-icon"
742
- }, vt = ["for"], $t = {
743
- key: 0,
744
- class: "tabs-badge"
745
- }, bt = /* @__PURE__ */ _({
746
- __name: "LandingPageTabs",
747
- props: {
748
- tabs: {
749
- type: Array,
750
- required: !0
751
- },
752
- modelValue: {
753
- type: String,
754
- required: !0
755
- }
756
- },
757
- emits: ["update:modelValue"],
758
- setup(a) {
759
- const t = a;
760
- return (c, i) => (n(), o("div", pt, [e("div", mt, [e("div", ft, [(n(!0), o(v, null, b(t.tabs, (s) => (n(), o("div", {
761
- key: s.value,
762
- class: x(["tabs-item", {
763
- "tabs-item-active": s.value === a.modelValue
764
- }])
765
- }, [e("button", {
766
- id: s.value,
767
- type: "button",
768
- role: "radio",
769
- "aria-checked": s.value === a.modelValue,
770
- "data-state": s.value === a.modelValue ? "checked" : "unchecked",
771
- value: s.value,
772
- class: "tabs-radio",
773
- tabindex: s.value === a.modelValue ? 0 : -1,
774
- onClick: (r) => c.$emit("update:modelValue", s.value)
775
- }, [s.value === a.modelValue ? (n(), o("span", gt)) : S("", !0)], 8, ht), e("label", {
776
- class: "tabs-label",
777
- for: s.value
778
- }, [e("span", null, l(s.label), 1), s.badge ? (n(), o("div", $t, l(s.badge), 1)) : S("", !0)], 8, vt)], 2))), 128))])])]));
779
- }
780
- }), yt = /* @__PURE__ */ u(bt, [["__scopeId", "data-v-9eb67a93"]]), kt = {
781
- class: "PriceGroup"
782
- }, xt = /* @__PURE__ */ _({
783
- __name: "LandingPagePriceGroup",
784
- setup(a) {
785
- const t = k("subscribe-monthly");
786
- return (c, i) => (n(), o("div", kt, [p(yt, {
787
- modelValue: t.value,
788
- "onUpdate:modelValue": i[0] || (i[0] = (s) => t.value = s),
789
- tabs: [{
790
- value: "subscribe-monthly",
791
- label: "按月订阅"
792
- }, {
793
- value: "subscribe-yearly",
794
- label: "按年订阅",
795
- badge: "节省17%"
796
- }, {
797
- value: "pay-as-you-go",
798
- label: "按需付费"
799
- }]
800
- }, null, 8, ["modelValue"]), g(c.$slots, "default", {}, void 0, !0)]));
801
- }
802
- }), $a = /* @__PURE__ */ u(xt, [["__scopeId", "data-v-43a35f55"]]), Pt = {
803
- class: "PricingCard"
804
- }, Lt = {
805
- class: "title"
806
- }, wt = {
807
- class: "titleText"
808
- }, Ct = {
809
- class: "description"
810
- }, It = {
811
- class: "priceAndDiscount"
812
- }, St = {
813
- class: "price"
814
- }, Tt = {
815
- class: "discount"
816
- }, At = {
817
- style: {
818
- position: "relative",
819
- top: "3px"
820
- }
821
- }, Bt = {
822
- key: 1,
823
- class: "priceNotDiscount"
824
- }, qt = {
825
- class: "cycle"
826
- }, Vt = {
827
- class: "features"
828
- }, Dt = /* @__PURE__ */ _({
829
- __name: "LandingPagePricingCard",
830
- props: {
831
- loading: {
832
- type: Boolean,
833
- required: !1,
834
- default: () => !1
835
- },
836
- title: {
837
- type: String,
838
- required: !0
839
- },
840
- description: {
841
- type: String,
842
- required: !0
843
- },
844
- price: {
845
- type: Number,
846
- required: !0
847
- },
848
- discount: {
849
- type: Number,
850
- required: !1,
851
- default: () => 99
852
- },
853
- unit: {
854
- type: String,
855
- required: !0
856
- },
857
- cycle: {
858
- type: String,
859
- required: !0
860
- },
861
- highlight: {
862
- type: Boolean,
863
- required: !0
864
- },
865
- badge: {
866
- type: Object,
867
- required: !0
868
- },
869
- button: {
870
- type: Object,
871
- required: !0
872
- },
873
- orientation: {
874
- type: String,
875
- required: !0
876
- },
877
- align: {
878
- type: String,
879
- required: !0
880
- },
881
- features: {
882
- type: Array,
883
- required: !0
884
- }
885
- },
886
- emits: ["toPay"],
887
- setup(a, {
888
- emit: t
889
- }) {
890
- const c = t, i = a;
891
- function s() {
892
- c("toPay");
893
- }
894
- return (r, y) => (n(), o("div", Pt, [e("div", null, [e("div", Lt, [e("span", wt, l(i.title), 1), i.badge.label ? (n(), P(L(W), {
895
- key: 0,
896
- color: "arcoblue"
897
- }, {
898
- default: m(() => [h(l(i.badge.label), 1)]),
899
- _: 1
900
- })) : S("", !0)]), e("div", Ct, l(i.description), 1)]), e("div", It, [i.discount !== null ? (n(), o(v, {
901
- key: 0
902
- }, [e("span", St, [e("span", null, l(i.price), 1), e("span", null, l(i.unit), 1)]), e("span", Tt, [e("span", At, l(i.discount), 1), e("span", null, l(i.unit), 1)])], 64)) : (n(), o("span", Bt, [e("span", null, l(i.price), 1), e("span", null, l(i.unit), 1)])), e("span", qt, l(i.cycle), 1)]), e("div", Vt, [(n(!0), o(v, null, b(i.features, ($, d) => (n(), P(U, {
903
- key: d,
904
- description: $.title
905
- }, null, 8, ["description"]))), 128))]), p(me, {
906
- class: "handle",
907
- type: "primary",
908
- loading: i.loading,
909
- disabled: !(i.discount || i.price),
910
- onClick: s
911
- }, {
912
- default: m(() => [h(l(i.button.label), 1)]),
913
- _: 1
914
- }, 8, ["loading", "disabled"])]));
915
- }
916
- }), ba = /* @__PURE__ */ u(Dt, [["__scopeId", "data-v-0b730439"]]), Ht = {}, Ft = {
917
- class: "PricingGrid"
918
- }, Mt = {
919
- class: "content"
920
- };
921
- function zt(a, t) {
922
- return n(), o("div", Ft, [e("div", Mt, [g(a.$slots, "default", {}, void 0, !0)])]);
923
- }
924
- const ya = /* @__PURE__ */ u(Ht, [["render", zt], ["__scopeId", "data-v-1f26d3ee"]]), jt = {
925
- class: "sections-container"
926
- }, Et = {
927
- class: "container"
928
- }, Nt = {
929
- class: "image-container"
930
- }, Ot = ["src", "alt"], Ut = {
931
- class: "text-container"
932
- }, Gt = {
933
- class: "header"
934
- }, Rt = {
935
- class: "features-list"
936
- }, Wt = {
937
- class: "content"
938
- }, Kt = {
939
- class: "feature-title"
940
- }, Jt = /* @__PURE__ */ _({
941
- __name: "LandingPageSections",
942
- props: {
943
- title: {
944
- default: "什么是ShipAny"
945
- },
946
- subTitle: {
947
- default: "ShipAny是一个用于构建AI优先创业公司的无代码框架。在几分钟内构建美观、生产就绪的AI应用程序。"
948
- },
949
- imageUrl: {
950
- default: "https://picsum.photos/600/400?random=6"
951
- },
952
- imageAlt: {
953
- default: "ShipAny平台截图"
954
- },
955
- features: {
956
- default: () => [{
957
- title: "即用型模板",
958
- description: "从数十个生产就绪的AI模板中选择,快速开始。",
959
- color: "green",
960
- iconPath: "M5 13l4 4L19 7"
961
- }, {
962
- title: "专业设计",
963
- description: "由专业人士精心打造的UI组件,遵循最佳实践。",
964
- color: "blue",
965
- iconPath: "M13 10V3L4 14h7v7l9-11h-7z"
966
- }, {
967
- title: "内置部署",
968
- description: "几分钟内将您的AI应用程序部署到生产环境。",
969
- color: "purple",
970
- iconPath: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"
971
- }]
972
- },
973
- reverse: {
974
- type: Boolean,
975
- default: !1
976
- }
977
- },
978
- setup(a) {
979
- const t = a;
980
- return (c, i) => (n(), o("section", jt, [e("div", Et, [e("div", {
981
- class: x(["content-wrapper", {
982
- reverse: t.reverse
983
- }])
984
- }, [e("div", Nt, [e("img", {
985
- src: t.imageUrl,
986
- alt: t.imageAlt,
987
- class: "image"
988
- }, null, 8, Ot)]), e("div", Ut, [e("div", Gt, [p(D, null, {
989
- default: m(() => [h(l(t.title), 1)]),
990
- _: 1
991
- }), p(V, null, {
992
- default: m(() => [h(l(t.subTitle), 1)]),
993
- _: 1
994
- })]), e("div", Rt, [(n(!0), o(v, null, b(t.features, (s, r) => (n(), o("div", {
995
- key: r,
996
- class: "feature-item"
997
- }, [e("div", {
998
- class: x(["icon-container", [`icon-${s.color}`]])
999
- }, [...i[0] || (i[0] = [e("div", {
1000
- class: "dot"
1001
- }, null, -1)])], 2), e("div", Wt, [e("div", Kt, l(s.title), 1), p(C, null, {
1002
- default: m(() => [h(l(s.description), 1)]),
1003
- _: 2
1004
- }, 1024)])]))), 128))])])], 2)])]));
1005
- }
1006
- }), ka = /* @__PURE__ */ u(Jt, [["__scopeId", "data-v-ac2b71bb"]]), Zt = {
1007
- class: "Showcase"
1008
- }, Qt = ["onClick"], Yt = ["src", "alt"], Xt = {
1009
- class: "card-content"
1010
- }, es = {
1011
- class: "card-title"
1012
- }, ts = /* @__PURE__ */ _({
1013
- __name: "LandingPageShowcase",
1014
- props: {
1015
- items: {},
1016
- showControls: {
1017
- type: Boolean,
1018
- default: !0
1019
- },
1020
- columns: {
1021
- default: 4
1022
- },
1023
- cardHeight: {
1024
- default: 160
1025
- },
1026
- objectFit: {
1027
- default: "cover"
1028
- }
1029
- },
1030
- emits: ["cardClick"],
1031
- setup(a, {
1032
- emit: t
1033
- }) {
1034
- const c = a, i = t;
1035
- function s(y) {
1036
- i("cardClick", y);
1037
- }
1038
- const r = q(() => ({
1039
- height: `${c.cardHeight}px`,
1040
- objectFit: c.objectFit
1041
- }));
1042
- return (y, $) => (n(), o("div", Zt, [(n(!0), o(v, null, b(c.items, (d, f) => (n(), o("div", {
1043
- key: f,
1044
- class: "showcase-card",
1045
- onClick: (F) => s(d)
1046
- }, [e("img", {
1047
- src: d.image,
1048
- alt: d.alt,
1049
- style: w(r.value)
1050
- }, null, 12, Yt), e("div", Xt, [e("div", es, l(d.title), 1), p(C, null, {
1051
- default: m(() => [h(l(d.description), 1)]),
1052
- _: 2
1053
- }, 1024)])], 8, Qt))), 128))]));
1054
- }
1055
- }), xa = /* @__PURE__ */ u(ts, [["__scopeId", "data-v-381ed6a6"]]), ss = {
1056
- class: "Stats"
1057
- }, as = {
1058
- key: 0,
1059
- class: "stats-label"
1060
- }, ns = {
1061
- class: "stats-number"
1062
- }, os = {
1063
- class: "stats-label"
1064
- }, is = /* @__PURE__ */ _({
1065
- __name: "LandingPageStats",
1066
- props: {
1067
- title: {
1068
- default: "用户喜爱ShipAny"
1069
- },
1070
- subTitle: {
1071
- default: "看看我们的客户怎么说"
1072
- },
1073
- stats: {
1074
- default: () => [{
1075
- title: "",
1076
- number: "250+",
1077
- label: "已启动的创业公司"
1078
- }, {
1079
- title: "",
1080
- number: "30+",
1081
- label: "AI模板"
1082
- }, {
1083
- title: "",
1084
- number: "5",
1085
- label: "星级评分"
1086
- }]
1087
- }
1088
- },
1089
- setup(a) {
1090
- const t = a;
1091
- return (c, i) => (n(), o("div", ss, [(n(!0), o(v, null, b(t.stats, (s, r) => (n(), o("div", {
1092
- key: r,
1093
- class: "stats-item"
1094
- }, [s.title ? (n(), o("div", as, l(s.title), 1)) : S("", !0), e("div", ns, l(s.number), 1), e("div", os, l(s.label), 1)]))), 128))]));
1095
- }
1096
- }), Pa = /* @__PURE__ */ u(is, [["__scopeId", "data-v-7aa9af80"]]), cs = {
1097
- class: "stepNumber"
1098
- }, ls = {
1099
- class: "count"
1100
- }, rs = {
1101
- class: "stepTitle"
1102
- }, ds = /* @__PURE__ */ _({
1103
- __name: "LandingPageSteps",
1104
- props: {
1105
- columns: {
1106
- type: Number,
1107
- default: 3
1108
- },
1109
- steps: {
1110
- type: Array,
1111
- default: () => [{
1112
- title: "选择您的项目",
1113
- description: "从我们的AI模板库中选择或使用我们的拖放构建器从头开始。"
1114
- }, {
1115
- title: "构建您的项目",
1116
- description: "使用我们的直观编辑器自定义您的项目。添加您的品牌、内容并配置AI模型。"
1117
- }, {
1118
- title: "部署到生产环境",
1119
- description: "一键将您的AI应用程序部署到我们的全球基础设施并开始服务客户。"
1120
- }]
1121
- }
1122
- },
1123
- setup(a) {
1124
- const t = a;
1125
- return (c, i) => (n(), o("div", {
1126
- class: "Steps",
1127
- style: w({
1128
- gridTemplateColumns: `repeat(${t.columns}, 1fr)`
1129
- // flexDirection: props.flexDirection,
1130
- })
1131
- }, [(n(!0), o(v, null, b(t.steps, (s, r) => (n(), o("div", {
1132
- key: r,
1133
- class: "stepItem"
1134
- }, [e("div", cs, [e("span", ls, l(r + 1), 1)]), e("h3", rs, l(s.title), 1), p(C, null, {
1135
- default: m(() => [h(l(s.description), 1)]),
1136
- _: 2
1137
- }, 1024)]))), 128))], 4));
1138
- }
1139
- }), La = /* @__PURE__ */ u(ds, [["__scopeId", "data-v-1ecd9597"]]), us = {
1140
- class: "Testimonial"
1141
- }, _s = {
1142
- class: "user-info"
1143
- }, ps = {
1144
- class: "user-avatar"
1145
- }, ms = ["src", "alt"], fs = {
1146
- class: "user-name"
1147
- }, hs = {
1148
- class: "user-title"
1149
- }, gs = /* @__PURE__ */ _({
1150
- __name: "LandingPageTestimonial",
1151
- props: {
1152
- testimonials: {
1153
- default: () => []
1154
- }
1155
- },
1156
- setup(a) {
1157
- const t = a;
1158
- return (c, i) => (n(), o("div", us, [(n(!0), o(v, null, b(t.testimonials, (s, r) => (n(), P(H, {
1159
- key: r
1160
- }, {
1161
- default: m(() => [e("div", null, [p(C, null, {
1162
- default: m(() => [h(l(`"${s.content}"`), 1)]),
1163
- _: 2
1164
- }, 1024)]), e("div", _s, [e("span", ps, [e("img", {
1165
- src: s.avatar,
1166
- alt: s.name
1167
- }, null, 8, ms)]), e("div", null, [e("div", fs, l(s.name), 1), e("div", hs, l(s.title), 1)])])]),
1168
- _: 2
1169
- }, 1024))), 128))]));
1170
- }
1171
- }), wa = /* @__PURE__ */ u(gs, [["__scopeId", "data-v-bc49d7bc"]]), vs = ["href"], $s = /* @__PURE__ */ _({
1172
- __name: "LandingPageTips",
1173
- props: {
1174
- href: {
1175
- type: String,
1176
- default: "/zh"
1177
- },
1178
- text: {
1179
- type: String,
1180
- default: "✨ 免费吉卜力AI艺术!立即注册获得3次免费创作!☝️"
1181
- }
1182
- },
1183
- setup(a) {
1184
- const t = a;
1185
- return (c, i) => (n(), o("a", {
1186
- href: t.href,
1187
- class: "tips-link"
1188
- }, l(t.text), 9, vs));
1189
- }
1190
- }), Ca = /* @__PURE__ */ u($s, [["__scopeId", "data-v-f5784dd1"]]), bs = {}, ys = {
1191
- class: "sidebar"
1192
- };
1193
- function ks(a, t) {
1194
- return n(), o("div", ys, [...t[0] || (t[0] = [z('<div data-v-251905ff><div class="sidebar-title" data-v-251905ff>On this page</div><a class="sidebar-link active" href="#page-title" data-v-251905ff>Introduction</a><a class="sidebar-link" href="#browse-by-feature" data-v-251905ff>Browse by feature</a><a class="sidebar-link" href="#implement-a-template" data-v-251905ff>Implement a template</a><a class="sidebar-link" href="#integrate-or-deploy-tiptap" data-v-251905ff>Integrate or deploy Tiptap</a><a class="sidebar-link" href="#manage-your-documents" data-v-251905ff>Manage your documents</a><a class="sidebar-link" href="#examples" data-v-251905ff>Examples</a><a class="sidebar-link" href="#guides" data-v-251905ff>Guides</a><a class="sidebar-link" href="#community" data-v-251905ff>Community</a></div>', 1)])]);
1195
- }
1196
- const Ia = /* @__PURE__ */ u(bs, [["render", ks], ["__scopeId", "data-v-251905ff"]]), xs = {
1197
- class: "feature-card"
1198
- }, Ps = {
1199
- class: "feature-image"
1200
- }, Ls = ["src", "alt"], ws = {
1201
- class: "feature-title"
1202
- }, Cs = {
1203
- class: "feature-description"
1204
- }, Is = {
1205
- class: "feature-platforms"
1206
- }, Ss = /* @__PURE__ */ _({
1207
- __name: "LandingPageFeatureCard",
1208
- props: {
1209
- feature: {}
1210
- },
1211
- setup(a) {
1212
- return (t, c) => (n(), o("div", xs, [e("div", Ps, [e("img", {
1213
- src: a.feature.image,
1214
- alt: a.feature.title,
1215
- loading: "lazy",
1216
- decoding: "async"
1217
- }, null, 8, Ls)]), e("h3", ws, l(a.feature.title), 1), e("p", Cs, l(a.feature.description), 1), e("div", Is, [(n(!0), o(v, null, b(a.feature.platforms, (i) => (n(), P(L(I), {
1218
- key: i.name,
1219
- icon: i.icon,
1220
- class: "platform-icon"
1221
- }, null, 8, ["icon"]))), 128))])]));
1222
- }
1223
- }), Sa = /* @__PURE__ */ u(Ss, [["__scopeId", "data-v-474acd19"]]), Ts = {
1224
- class: "feature-section-header"
1225
- }, As = {
1226
- class: "feature-section-title"
1227
- }, Bs = ["innerHTML"], qs = /* @__PURE__ */ _({
1228
- __name: "LandingPageFeatureSectionHeader",
1229
- props: {
1230
- title: {},
1231
- description: {}
1232
- },
1233
- setup(a) {
1234
- return (t, c) => (n(), o("div", Ts, [e("h2", As, l(a.title), 1), e("p", {
1235
- class: "feature-section-description",
1236
- innerHTML: a.description
1237
- }, null, 8, Bs)]));
1238
- }
1239
- }), Ta = /* @__PURE__ */ u(qs, [["__scopeId", "data-v-8fe145ad"]]), Vs = {}, Ds = {
1240
- class: "features-grid"
1241
- };
1242
- function Hs(a, t) {
1243
- return n(), o("div", Ds, [g(a.$slots, "default", {}, void 0, !0)]);
1244
- }
1245
- const Aa = /* @__PURE__ */ u(Vs, [["render", Hs], ["__scopeId", "data-v-392f636b"]]), Fs = {
1246
- class: "testimonials-container"
1247
- }, Ms = {
1248
- class: "testimonial-header"
1249
- }, zs = ["onClick"], js = {
1250
- class: "user-avatar"
1251
- }, Es = ["src", "alt"], Ns = {
1252
- class: "user-info"
1253
- }, Os = {
1254
- class: "user-name"
1255
- }, Us = {
1256
- class: "user-title"
1257
- }, Gs = {
1258
- class: "testimonial-content"
1259
- }, Rs = /* @__PURE__ */ _({
1260
- __name: "LandingPageTestimonialCard",
1261
- props: {
1262
- testimonials: {}
1263
- },
1264
- setup(a) {
1265
- function t(c) {
1266
- c.link && window.open(c.link, "_blank");
1267
- }
1268
- return (c, i) => (n(), o("div", Fs, [(n(!0), o(v, null, b(a.testimonials, (s) => (n(), o("div", {
1269
- key: s.name,
1270
- class: "testimonial-card"
1271
- }, [e("div", Ms, [e("div", {
1272
- class: x(["user-link", {
1273
- "no-link": !s.link
1274
- }]),
1275
- onClick: (r) => t(s)
1276
- }, [e("div", js, [e("img", {
1277
- src: s.avatar,
1278
- alt: s.name,
1279
- width: "260",
1280
- height: "260",
1281
- loading: "lazy",
1282
- decoding: "async",
1283
- class: "avatar-image"
1284
- }, null, 8, Es)]), e("div", Ns, [e("span", Os, l(s.name), 1), e("span", Us, l(s.title), 1)])], 10, zs)]), e("p", Gs, l(s.content), 1)]))), 128))]));
1285
- }
1286
- }), Ba = /* @__PURE__ */ u(Rs, [["__scopeId", "data-v-6e10d8a8"]]), Ws = {
1287
- class: "tabs"
1288
- }, Ks = {
1289
- class: "tabs-header"
1290
- }, Js = ["onClick"], Zs = {
1291
- class: "tab-label"
1292
- }, Qs = {
1293
- class: "tabs-content"
1294
- }, Ys = /* @__PURE__ */ _({
1295
- __name: "LandingPageSectionTabs",
1296
- props: {
1297
- tabs: {},
1298
- defaultActiveTab: {
1299
- default: ""
1300
- },
1301
- modelValue: {
1302
- default: ""
1303
- }
1304
- },
1305
- emits: ["update:modelValue", "tabChange"],
1306
- setup(a, {
1307
- emit: t
1308
- }) {
1309
- var y;
1310
- const c = a, i = t, s = k(c.modelValue || c.defaultActiveTab || ((y = c.tabs[0]) == null ? void 0 : y.id) || "");
1311
- function r($) {
1312
- s.value = $, i("update:modelValue", $), i("tabChange", $);
1313
- }
1314
- return B(() => c.modelValue, ($) => {
1315
- $ && (s.value = $);
1316
- }), B(() => c.defaultActiveTab, ($) => {
1317
- $ && !c.modelValue && (s.value = $);
1318
- }), ($, d) => (n(), o("div", Ws, [e("div", Ks, [(n(!0), o(v, null, b(a.tabs, (f) => (n(), o("div", {
1319
- key: f.id,
1320
- class: x(["tab-item", {
1321
- active: s.value === f.id
1322
- }]),
1323
- onClick: (F) => r(f.id)
1324
- }, [e("span", Zs, l(f.label), 1)], 10, Js))), 128))]), e("div", Qs, [(n(!0), o(v, null, b(a.tabs, (f) => T((n(), o("div", {
1325
- key: f.id,
1326
- class: "tab-panel"
1327
- }, [g($.$slots, f.id, {
1328
- tab: f
1329
- }, () => [g($.$slots, "default", {
1330
- tab: f
1331
- }, void 0, !0)], !0)])), [[j, s.value === f.id]])), 128))])]));
1332
- }
1333
- }), qa = /* @__PURE__ */ u(Ys, [["__scopeId", "data-v-22e880ae"]]);
1334
- export {
1335
- Aa as A,
1336
- me as B,
1337
- H as C,
1338
- Ba as D,
1339
- qa as E,
1340
- ca as L,
1341
- V as S,
1342
- yt as T,
1343
- la as a,
1344
- se as b,
1345
- oe as c,
1346
- ra as d,
1347
- da as e,
1348
- ua as f,
1349
- _a as g,
1350
- pa as h,
1351
- ma as i,
1352
- fa as j,
1353
- ha as k,
1354
- ga as l,
1355
- va as m,
1356
- $a as n,
1357
- ba as o,
1358
- ya as p,
1359
- ka as q,
1360
- xa as r,
1361
- Pa as s,
1362
- La as t,
1363
- wa as u,
1364
- Ca as v,
1365
- D as w,
1366
- Ia as x,
1367
- Sa as y,
1368
- Ta as z
1369
- };