@huyooo/ui 0.5.4 → 0.5.6

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 (44) hide show
  1. package/dist/{AuthkitAuthModal-MWWzynTx.js → AuthkitAuthModal-DOB2R0lE.js} +10 -8
  2. package/dist/AuthkitAuthModal.vue_vue_type_style_index_1_lang-BpOmabWi.js +10 -0
  3. package/dist/{AuthkitAuthorize-D3vma2FV.js → AuthkitAuthorize-BLKbcsyH.js} +3 -3
  4. package/dist/Contact-DzUxcc2w.js +429 -0
  5. package/dist/{FeedbackItem-C1TqPuuy.js → FeedbackItem-TRyk9rcU.js} +14 -13
  6. package/dist/{FeedbackModal-CdBaCw5j.js → FeedbackModal-BJx5Bzas.js} +5 -4
  7. package/dist/LandingPageSectionHeader-CSOwusSK.js +688 -0
  8. package/dist/LandingPageSectionTabs-6Rrgvwqs.js +1144 -0
  9. package/dist/{MessageHandle-JzX9UY1a.js → MessageHandle-DP9rvOy4.js} +18 -17
  10. package/dist/{PaySubscriptions-Bak0mpKh.js → PaySubscriptions-DyHMXC_2.js} +9 -8
  11. package/dist/{ReferrerReferees-Cuw4uhVu.js → ReferrerReferees-CxmerF3X.js} +18 -17
  12. package/dist/{Upload.vue_vue_type_script_setup_true_lang-DQPtXtJ0.js → Upload.vue_vue_type_script_setup_true_lang-CZ8Z-NG6.js} +10 -9
  13. package/dist/{UserAccountMenu-DD3zoOBd.js → UserAccountMenu-BEFQWt3O.js} +1 -1
  14. package/dist/{UserPanel-BBB9cA2b.js → UserPanel-DgSdGhj5.js} +11 -10
  15. package/dist/{WidthContainer-Co60dOmv.js → WidthContainer-DEGjQQMM.js} +17 -16
  16. package/dist/authkit.js +12 -11
  17. package/dist/common/globalConfig.d.ts +4 -0
  18. package/dist/common.js +1 -1
  19. package/dist/components/PrivateCom/BodyAndFooterLayout.vue.d.ts +17 -0
  20. package/dist/components/PrivateCom/Contact.vue.d.ts +2 -0
  21. package/dist/components/PrivateCom/Footer.vue.d.ts +2 -0
  22. package/dist/components/PrivateCom/Introduce.vue.d.ts +2 -0
  23. package/dist/composables.js +26 -25
  24. package/dist/feedback.js +2 -2
  25. package/dist/globalConfig-DKn-cF9c.js +17 -0
  26. package/dist/index.js +196 -187
  27. package/dist/landingPage.js +46 -45
  28. package/dist/main.d.ts +1 -0
  29. package/dist/message.js +2 -2
  30. package/dist/pay.js +1 -1
  31. package/dist/privateCom.d.ts +5 -0
  32. package/dist/privateCom.js +9 -0
  33. package/dist/referrer.js +1 -1
  34. package/dist/style.css +1 -1
  35. package/dist/upload.js +2 -2
  36. package/dist/{AuthkitAuthModal.vue_vue_type_style_index_1_lang-B-QKS_BT.js → useAuthkitAppsAuthPageInfo-qWOtNCda.js} +16 -23
  37. package/dist/{useAuthkitUsersProfile-D2UZf7n0.js → useAuthkitUsersProfile-a-kA3R2Y.js} +1 -1
  38. package/dist/{useMessageNotifications-BahKMcby.js → useMessageNotifications-B5pXqPNh.js} +1 -1
  39. package/dist/{useRoutePermission-DWJ-2G10.js → useRoutePermission-BKg7oQTj.js} +17 -16
  40. package/dist/{useUploadCos-BdIk3m1E.js → useUploadCos-yeMY5Xn0.js} +1 -1
  41. package/dist/user.js +2 -2
  42. package/package.json +5 -1
  43. package/dist/LandingPageSectionTabs-uO4kXpj7.js +0 -1825
  44. package/dist/index-DZIhLe1R.js +0 -16
@@ -1,1825 +0,0 @@
1
- import { createElementBlock as n, openBlock as a, renderSlot as h, defineComponent as f, createVNode as u, withCtx as _, createElementVNode as e, normalizeStyle as w, unref as L, toDisplayString as l, Fragment as v, renderList as y, createBlock as C, normalizeClass as I, createTextVNode as g, ref as k, createCommentVNode as T, withModifiers as E, withDirectives as A, vModelText as q, computed as H, createStaticVNode as O, watch as z, vShow as N } from "vue";
2
- import { _ as d } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
- import { Icon as P } from "@iconify/vue";
4
- import { C as W, a as Z } from "./CollapseItem-Cw1vcdLu.js";
5
- import { c as R } from "./index-Bb-d5pBq.js";
6
- /* empty css */
7
- /* empty css */
8
- import { Tag as K } from "@arco-design/web-vue";
9
- const J = {}, Q = {
10
- class: "SubTitle"
11
- };
12
- function Y(s, t) {
13
- return a(), n("div", Q, [h(s.$slots, "default", {}, void 0, !0)]);
14
- }
15
- const D = /* @__PURE__ */ d(J, [["render", Y], ["__scopeId", "data-v-3decf2d4"]]), X = {}, ee = {
16
- class: "Title"
17
- };
18
- function te(s, t) {
19
- return a(), n("h2", ee, [h(s.$slots, "default", {}, void 0, !0)]);
20
- }
21
- const M = /* @__PURE__ */ d(X, [["render", te], ["__scopeId", "data-v-58078aa8"]]), se = {
22
- class: "BlockHeader"
23
- }, ae = /* @__PURE__ */ f({
24
- __name: "LandingPageBlockHeader",
25
- setup(s) {
26
- return (t, c) => (a(), n("div", se, [u(M, {
27
- class: "BlockHeaderTitle"
28
- }, {
29
- default: _(() => [h(t.$slots, "title", {}, void 0, !0)]),
30
- _: 3
31
- }), u(D, {
32
- class: "BlockHeaderSubTitle"
33
- }, {
34
- default: _(() => [h(t.$slots, "subTitle", {}, void 0, !0)]),
35
- _: 3
36
- })]));
37
- }
38
- }), ne = /* @__PURE__ */ d(ae, [["__scopeId", "data-v-8d51bb3a"]]), ie = {
39
- class: "BlockLayout"
40
- }, oe = /* @__PURE__ */ f({
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(s) {
53
- const t = s;
54
- return (c, i) => (a(), n("section", ie, [h(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
- }, [h(c.$slots, "BlockBody", {}, void 0, !0)], 4)]));
61
- }
62
- }), ce = /* @__PURE__ */ d(oe, [["__scopeId", "data-v-84ed1aaa"]]), le = {
63
- description: "",
64
- class: "mission-list-item"
65
- }, re = {
66
- class: "mission-list-text"
67
- }, de = /* @__PURE__ */ f({
68
- __name: "LandingPageListItem",
69
- props: {
70
- description: {
71
- default: ""
72
- }
73
- },
74
- setup(s) {
75
- const t = s;
76
- return (c, i) => (a(), n("div", le, [u(L(P), {
77
- icon: "mingcute:check-circle-fill",
78
- class: "mission-list-icon"
79
- }), e("span", re, l(t.description), 1)]));
80
- }
81
- }), U = /* @__PURE__ */ d(de, [["__scopeId", "data-v-4973c791"]]), ue = {
82
- class: "mission-container"
83
- }, _e = {
84
- class: "mission-image-wrapper"
85
- }, pe = ["src", "alt"], fe = {
86
- class: "mission-content"
87
- }, me = {
88
- class: "mission-title"
89
- }, ge = {
90
- class: "mission-title-highlight"
91
- }, he = {
92
- class: "mission-desc"
93
- }, ve = {
94
- class: "mission-list"
95
- }, $e = {
96
- style: {
97
- display: "none"
98
- }
99
- }, ye = /* @__PURE__ */ f({
100
- __name: "LandingPageMission",
101
- props: {
102
- image: {},
103
- imageAlt: {},
104
- title: {},
105
- highlight: {},
106
- description: {},
107
- features: {}
108
- },
109
- setup(s) {
110
- return (t, c) => (a(), n("div", ue, [e("div", _e, [c[0] || (c[0] = e("div", {
111
- class: "mission-bg1"
112
- }, null, -1)), e("img", {
113
- src: s.image,
114
- alt: s.imageAlt,
115
- loading: "lazy",
116
- width: "1270",
117
- decoding: "async",
118
- class: "mission-img"
119
- }, null, 8, pe)]), e("div", fe, [e("h2", me, [e("span", ge, l(s.highlight), 1), e("strong", null, l(s.title), 1)]), e("p", he, l(s.description), 1), e("div", ve, [(a(!0), n(v, null, y(s.features, (i, o) => (a(), C(U, {
120
- key: o,
121
- description: i
122
- }, null, 8, ["description"]))), 128))])]), (a(), n("svg", $e, [...c[1] || (c[1] = [e("symbol", {
123
- id: "ai:ph:check-circle-fill"
124
- }, [e("path", {
125
- fill: "currentColor",
126
- 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"
127
- })], -1)])]))]));
128
- }
129
- }), be = /* @__PURE__ */ d(ye, [["__scopeId", "data-v-511c032f"]]), ke = {
130
- class: "team-info-container"
131
- }, Ce = {
132
- class: "team-info-title"
133
- }, xe = {
134
- class: "team-info-desc"
135
- }, Le = /* @__PURE__ */ f({
136
- __name: "LandingPageTeamInfo",
137
- props: {
138
- title: {},
139
- description: {}
140
- },
141
- setup(s) {
142
- const t = s;
143
- return (c, i) => (a(), n("div", ke, [e("div", Ce, l(t.title), 1), e("p", xe, l(t.description), 1)]));
144
- }
145
- }), Pe = /* @__PURE__ */ d(Le, [["__scopeId", "data-v-2074e0d7"]]), we = {}, Ie = {
146
- class: "Description"
147
- };
148
- function Se(s, t) {
149
- return a(), n("div", Ie, [h(s.$slots, "default", {}, void 0, !0)]);
150
- }
151
- const S = /* @__PURE__ */ d(we, [["render", Se], ["__scopeId", "data-v-501deb41"]]), Te = {
152
- class: "grid-container"
153
- }, Ae = {
154
- class: "square"
155
- }, qe = ["src", "alt", "sizes", "width", "height"], Be = {
156
- class: "footer"
157
- }, ze = {
158
- class: "name"
159
- }, Fe = /* @__PURE__ */ f({
160
- __name: "LandingPageTeamList",
161
- props: {
162
- publishedTeamMembers: {},
163
- sizes: {},
164
- width: {},
165
- height: {},
166
- pictureClass: {}
167
- },
168
- setup(s) {
169
- return (t, c) => (a(), n("div", Te, [(a(!0), n(v, null, y(s.publishedTeamMembers, (i) => (a(), n("div", {
170
- key: i.data.name,
171
- class: "group"
172
- }, [e("div", Ae, [e("img", {
173
- src: i.data.avatar.src,
174
- alt: i.data.avatar.alt,
175
- sizes: s.sizes,
176
- width: s.width,
177
- height: s.height,
178
- class: I(s.pictureClass ? `${s.pictureClass} picture-img` : "picture-img")
179
- }, null, 10, qe)]), e("div", Be, [e("h2", ze, l(i.data.name), 1), u(S, null, {
180
- default: _(() => [g(l(i.data.title), 1)]),
181
- _: 2
182
- }, 1024)])]))), 128))]));
183
- }
184
- }), Ve = /* @__PURE__ */ d(Fe, [["__scopeId", "data-v-aae1a797"]]), He = /* @__PURE__ */ f({
185
- __name: "LandingPageAbout",
186
- setup(s) {
187
- const t = [{
188
- data: {
189
- name: "Janette Lynch",
190
- title: "Senior Director",
191
- avatar: {
192
- src: "https://images.unsplash.com/photo-1580489944761-15a19d654956?&fit=crop&w=280",
193
- alt: "Janette Lynch"
194
- }
195
- }
196
- }, {
197
- data: {
198
- name: "Marcell Ziemann",
199
- title: "Principal Strategist",
200
- avatar: {
201
- src: "https://images.unsplash.com/photo-1633332755192-727a05c4013d?&fit=crop&w=280",
202
- alt: "Marcell Ziemann"
203
- }
204
- }
205
- }, {
206
- data: {
207
- name: "Robert Palmer",
208
- title: "Marketing Engineer",
209
- avatar: {
210
- src: "https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?&fit=crop&w=280",
211
- alt: "Robert Palmer"
212
- }
213
- }
214
- }, {
215
- data: {
216
- name: "Daniel Collins",
217
- title: "Chief Sales Officer",
218
- avatar: {
219
- src: "https://astroship-pro.web3templates.com/_astro/photo-1487309078313-fad80c3ec1e5_6PMfa.avif",
220
- alt: "Robert Palmer"
221
- }
222
- }
223
- }];
224
- return (c, i) => (a(), n(v, null, [u(ce, null, {
225
- BlockHeader: _(() => [u(ne, null, {
226
- title: _(() => [...i[0] || (i[0] = [g("核心团队", -1)])]),
227
- subTitle: _(() => [...i[1] || (i[1] = [g("我们是一个充满激情的小团队。", -1)])]),
228
- _: 1
229
- })]),
230
- BlockBody: _(() => [u(Pe, {
231
- title: "Empowering the world with Astro.",
232
- 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."
233
- }), u(Ve, {
234
- "published-team-members": t
235
- })]),
236
- _: 1
237
- }), u(be, {
238
- image: "https://astroship-pro.web3templates.com/_astro/employee.DPridi10_Z23eRat.avif",
239
- "image-alt": "Happy Team",
240
- title: "Mission",
241
- highlight: "Our ",
242
- description: "We're a multi-cultural team from around the world! ...",
243
- features: ["Intelligent Task Management", "Real-time Collaboration", "Data Security & Privacy"]
244
- })], 64));
245
- }
246
- }), wn = /* @__PURE__ */ d(He, [["__scopeId", "data-v-a40e05a5"]]), De = {
247
- class: "nav"
248
- }, Me = {
249
- class: "section"
250
- }, Ue = ["href"], Ge = {
251
- class: "section"
252
- }, je = ["href"], Ee = /* @__PURE__ */ f({
253
- __name: "LandingPageAside",
254
- setup(s) {
255
- const t = k([{
256
- text: "Editor",
257
- href: "/docs/editor/getting-started/overview"
258
- }, {
259
- text: "Collaboration",
260
- href: "/docs/collaboration/getting-started/overview"
261
- }, {
262
- text: "Content AI",
263
- href: "/docs/content-ai/getting-started/overview"
264
- }, {
265
- text: "Comments",
266
- href: "/docs/comments/getting-started/overview"
267
- }, {
268
- text: "Documents",
269
- href: "/docs/collaboration/documents"
270
- }]), c = k([{
271
- text: "Guides",
272
- href: "/docs/guides"
273
- }, {
274
- text: "Examples",
275
- href: "/docs/examples"
276
- }, {
277
- text: "Contributing",
278
- href: "/docs/resources/contributing"
279
- }, {
280
- text: "Editor changelog",
281
- href: "/docs/resources/changelog"
282
- }, {
283
- text: "Pro license",
284
- href: "/docs/resources/pro-license"
285
- }]);
286
- return (i, o) => (a(), n("nav", De, [o[2] || (o[2] = e("div", {
287
- class: "section"
288
- }, [e("div", {
289
- class: "section-title"
290
- }, "Getting started"), e("div", null, [e("a", {
291
- class: "link active",
292
- href: "/docs"
293
- }, "Overview")])], -1)), e("div", Me, [o[0] || (o[0] = e("div", {
294
- class: "section-title"
295
- }, "Browse by feature", -1)), e("div", null, [(a(!0), n(v, null, y(t.value, (r) => (a(), n("a", {
296
- key: r.text,
297
- class: "link",
298
- href: r.href
299
- }, l(r.text), 9, Ue))), 128))])]), e("div", Ge, [o[1] || (o[1] = e("div", {
300
- class: "section-title"
301
- }, "Resources", -1)), e("div", null, [(a(!0), n(v, null, y(c.value, (r) => (a(), n("a", {
302
- key: r.text,
303
- class: "link",
304
- href: r.href
305
- }, l(r.text), 9, je))), 128))])])]));
306
- }
307
- }), In = /* @__PURE__ */ d(Ee, [["__scopeId", "data-v-b516bb75"]]), Oe = ["src"], Ne = /* @__PURE__ */ f({
308
- __name: "LandingPageLogo",
309
- props: {
310
- name: {
311
- type: String,
312
- required: !1,
313
- default: () => "#2d2d2d"
314
- },
315
- icon: {
316
- type: String,
317
- required: !1,
318
- default: () => ""
319
- },
320
- color: {
321
- type: String,
322
- required: !1,
323
- default: () => "#2d2d2d"
324
- },
325
- fontSize: {
326
- type: String,
327
- required: !1,
328
- default: () => "16px"
329
- },
330
- iconSize: {
331
- type: String,
332
- required: !1,
333
- default: () => "42px"
334
- }
335
- },
336
- emits: ["to"],
337
- setup(s, {
338
- emit: t
339
- }) {
340
- const c = s, i = t;
341
- function o() {
342
- i("to");
343
- }
344
- return (r, m) => (a(), n("div", {
345
- class: "Logo",
346
- onClick: o
347
- }, [s.icon ? (a(), n("img", {
348
- key: 0,
349
- class: "icon",
350
- src: s.icon,
351
- alt: "logo",
352
- style: w({
353
- width: c.iconSize,
354
- height: c.iconSize
355
- })
356
- }, null, 12, Oe)) : T("", !0), e("div", {
357
- class: "text",
358
- style: w({
359
- color: c.color,
360
- fontSize: c.fontSize
361
- })
362
- }, l(s.name), 5)]));
363
- }
364
- }), We = /* @__PURE__ */ d(Ne, [["__scopeId", "data-v-f259564c"]]), Ze = {
365
- class: "BrandInfo"
366
- }, Re = /* @__PURE__ */ f({
367
- __name: "LandingPageBrandInfo",
368
- props: {
369
- icon: {
370
- type: String,
371
- required: !0
372
- },
373
- name: {
374
- type: String,
375
- required: !0
376
- },
377
- description: {
378
- type: String,
379
- required: !0
380
- },
381
- color: {
382
- type: String,
383
- default: "#2d2d2d"
384
- },
385
- fontSize: {
386
- type: String,
387
- default: "14px"
388
- },
389
- iconSize: {
390
- type: String,
391
- default: "32px"
392
- }
393
- },
394
- setup(s) {
395
- const t = s;
396
- return (c, i) => (a(), n("div", Ze, [u(We, {
397
- icon: t.icon,
398
- name: t.name,
399
- color: t.color,
400
- "font-size": t.fontSize,
401
- "icon-size": t.iconSize
402
- }, null, 8, ["icon", "name", "color", "font-size", "icon-size"]), u(S, null, {
403
- default: _(() => [g(l(t.description), 1)]),
404
- _: 1
405
- })]));
406
- }
407
- }), Ke = /* @__PURE__ */ d(Re, [["__scopeId", "data-v-03121641"]]), Je = /* @__PURE__ */ f({
408
- __name: "LandingPageButton",
409
- props: {
410
- type: {}
411
- },
412
- setup(s) {
413
- return (t, c) => (a(), n("div", {
414
- class: I(["heroButton", [s.type === "primary" ? "heroButtonPrimary" : "heroButtonSecondary"]])
415
- }, [h(t.$slots, "default", {}, void 0, !0)], 2));
416
- }
417
- }), Qe = /* @__PURE__ */ d(Je, [["__scopeId", "data-v-d26fdf8b"]]), Ye = {}, Xe = {
418
- class: "Card"
419
- };
420
- function et(s, t) {
421
- return a(), n("div", Xe, [h(s.$slots, "default", {}, void 0, !0)]);
422
- }
423
- const G = /* @__PURE__ */ d(Ye, [["render", et], ["__scopeId", "data-v-cdb3f77d"]]), tt = {
424
- class: "contact-container"
425
- }, st = {
426
- class: "contact-info-section"
427
- }, at = {
428
- class: "contact-title"
429
- }, nt = {
430
- class: "contact-info"
431
- }, it = {
432
- class: "contact-info-item"
433
- }, ot = {
434
- class: "contact-info-item"
435
- }, ct = ["href"], lt = {
436
- class: "contact-info-item"
437
- }, rt = ["href"], dt = {
438
- class: "contact-form-section"
439
- }, ut = /* @__PURE__ */ f({
440
- __name: "LandingPageContact",
441
- props: {
442
- title: {
443
- default: ""
444
- },
445
- subTitle: {
446
- default: ""
447
- },
448
- contact: {
449
- default: () => ({
450
- title: "联系我们",
451
- description: "有什么想说的吗?我们随时为您提供帮助。请填写表单或发送邮件或拨打电话。"
452
- })
453
- },
454
- address: {
455
- default: "北京市朝阳区建国门外大街1号"
456
- },
457
- email: {
458
- default: "hello@example.com"
459
- },
460
- phone: {
461
- default: "+86 138 0000 0000"
462
- },
463
- mapIcon: {
464
- default: "uil:map-marker"
465
- },
466
- emailIcon: {
467
- default: "uil:envelope"
468
- },
469
- phoneIcon: {
470
- default: "uil:phone"
471
- }
472
- },
473
- setup(s) {
474
- const t = s;
475
- return (c, i) => (a(), n("div", tt, [e("div", st, [e("h2", at, l(t.contact.title), 1), u(S, null, {
476
- default: _(() => [g(l(t.contact.description), 1)]),
477
- _: 1
478
- }), e("div", nt, [e("div", it, [u(L(P), {
479
- class: "contact-info-icon",
480
- icon: s.mapIcon
481
- }, null, 8, ["icon"]), e("span", null, l(t.address), 1)]), e("div", ot, [u(L(P), {
482
- class: "contact-info-icon",
483
- icon: t.emailIcon
484
- }, null, 8, ["icon"]), e("a", {
485
- href: `mailto:${s.email}`
486
- }, l(t.email), 9, ct)]), e("div", lt, [u(L(P), {
487
- class: "contact-info-icon",
488
- icon: t.phoneIcon
489
- }, null, 8, ["icon"]), e("a", {
490
- href: `tel:${s.phone}`
491
- }, l(t.phone), 9, rt)])])]), e("div", dt, [h(c.$slots, "contact-form", {}, void 0, !0)])]));
492
- }
493
- }), Sn = /* @__PURE__ */ d(ut, [["__scopeId", "data-v-50d64cb9"]]), _t = ["value"], pt = ["value"], ft = {
494
- class: "form-group"
495
- }, mt = {
496
- class: "form-group"
497
- }, gt = {
498
- class: "form-group"
499
- }, ht = {
500
- type: "submit",
501
- class: "form-button"
502
- }, vt = {
503
- key: 0,
504
- class: "button-content"
505
- }, $t = {
506
- key: 1
507
- }, yt = /* @__PURE__ */ f({
508
- __name: "LandingPageContactForm",
509
- props: {
510
- accessKey: {
511
- default: "YOUR_ACCESS_KEY_HERE"
512
- },
513
- to: {
514
- default: "support@huyooo.com"
515
- }
516
- },
517
- setup(s) {
518
- const t = s, c = k(!1), i = k(""), o = k(""), r = k({
519
- name: "",
520
- email: "",
521
- message: ""
522
- }), m = async (b) => {
523
- c.value = !0;
524
- const p = b.target;
525
- if (!p.checkValidity()) {
526
- p.querySelectorAll(":invalid")[0].focus();
527
- return;
528
- }
529
- i.value = "发送中...", o.value = "";
530
- try {
531
- const $ = await fetch("https://api.web3forms.com/submit", {
532
- method: "POST",
533
- headers: {
534
- "Content-Type": "application/json",
535
- Accept: "application/json"
536
- },
537
- body: JSON.stringify({
538
- access_key: t.accessKey,
539
- to: t.to,
540
- name: r.value.name,
541
- email: r.value.email,
542
- message: r.value.message
543
- })
544
- });
545
- await $.json(), $.status === 200 ? (o.value = "text-green", i.value = "消息发送成功!我们会尽快回复您。") : (o.value = "text-red", i.value = "发送失败,请检查网络连接后重试。");
546
- } catch {
547
- o.value = "text-red", i.value = "发送失败,请稍后再试!";
548
- } finally {
549
- p.reset(), c.value = !1, setTimeout(() => {
550
- i.value = "";
551
- }, 5e3);
552
- }
553
- };
554
- return (b, p) => (a(), n("form", {
555
- id: "form",
556
- action: "https://api.web3forms.com/submit",
557
- method: "POST",
558
- class: I(["contact-form", {
559
- "was-validated": c.value
560
- }]),
561
- novalidate: "",
562
- onSubmit: E(m, ["prevent"])
563
- }, [e("input", {
564
- type: "hidden",
565
- name: "access_key",
566
- value: t.accessKey
567
- }, null, 8, _t), e("input", {
568
- type: "hidden",
569
- name: "to",
570
- value: t.to
571
- }, null, 8, pt), p[11] || (p[11] = e("input", {
572
- type: "checkbox",
573
- class: "hidden",
574
- style: {
575
- display: "none"
576
- },
577
- name: "botcheck"
578
- }, null, -1)), e("div", ft, [p[3] || (p[3] = e("label", {
579
- for: "name",
580
- class: "form-label"
581
- }, [g(" 姓名 "), e("span", {
582
- class: "required"
583
- }, "*")], -1)), A(e("input", {
584
- id: "name",
585
- "onUpdate:modelValue": p[0] || (p[0] = ($) => r.value.name = $),
586
- type: "text",
587
- placeholder: "请输入您的姓名",
588
- required: "",
589
- class: "form-input",
590
- name: "name"
591
- }, null, 512), [[q, r.value.name]]), p[4] || (p[4] = e("div", {
592
- class: "empty-feedback invalid-feedback form-error"
593
- }, " 请输入您的姓名。 ", -1))]), e("div", mt, [p[5] || (p[5] = e("label", {
594
- for: "email_address",
595
- class: "form-label"
596
- }, [g(" 邮箱地址 "), e("span", {
597
- class: "required"
598
- }, "*")], -1)), A(e("input", {
599
- id: "email_address",
600
- "onUpdate:modelValue": p[1] || (p[1] = ($) => r.value.email = $),
601
- type: "email",
602
- placeholder: "请输入您的邮箱地址",
603
- name: "email",
604
- required: "",
605
- class: "form-input"
606
- }, null, 512), [[q, r.value.email]]), p[6] || (p[6] = e("div", {
607
- class: "empty-feedback form-error"
608
- }, " 请输入您的邮箱地址。 ", -1)), p[7] || (p[7] = e("div", {
609
- class: "invalid-feedback form-error"
610
- }, " 请输入有效的邮箱地址。 ", -1))]), e("div", gt, [p[8] || (p[8] = e("label", {
611
- for: "message",
612
- class: "form-label"
613
- }, [g(" 留言内容 "), e("span", {
614
- class: "required"
615
- }, "*")], -1)), A(e("textarea", {
616
- id: "message",
617
- "onUpdate:modelValue": p[2] || (p[2] = ($) => r.value.message = $),
618
- name: "message",
619
- required: "",
620
- placeholder: "请输入您的留言内容",
621
- class: "form-textarea",
622
- rows: "4"
623
- }, null, 512), [[q, r.value.message]]), p[9] || (p[9] = e("div", {
624
- class: "empty-feedback invalid-feedback form-error"
625
- }, " 请输入您的留言内容。 ", -1))]), e("button", ht, [i.value === "发送中..." ? (a(), n("span", vt, [...p[10] || (p[10] = [e("svg", {
626
- class: "spinner",
627
- xmlns: "http://www.w3.org/2000/svg",
628
- fill: "none",
629
- viewBox: "0 0 24 24"
630
- }, [e("circle", {
631
- class: "spinner-circle",
632
- cx: "12",
633
- cy: "12",
634
- r: "10",
635
- stroke: "currentColor",
636
- "stroke-width": "4"
637
- }), e("path", {
638
- class: "spinner-path",
639
- fill: "currentColor",
640
- 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"
641
- })], -1), g(" 发送中... ", -1)])])) : (a(), n("span", $t, "发送信息"))]), i.value && i.value !== "发送中..." ? (a(), n("div", {
642
- key: 0,
643
- class: I(["form-result", o.value])
644
- }, l(i.value), 3)) : T("", !0)], 34));
645
- }
646
- }), Tn = /* @__PURE__ */ d(yt, [["__scopeId", "data-v-bd2eaefb"]]), bt = /* @__PURE__ */ f({
647
- __name: "LandingPageContainer",
648
- props: {
649
- flexDirection: {
650
- default: "column"
651
- },
652
- gap: {
653
- default: "80px"
654
- },
655
- padding: {
656
- default: "0px"
657
- }
658
- },
659
- setup(s) {
660
- const t = s;
661
- return (c, i) => (a(), n("div", {
662
- class: "landing-page-container",
663
- style: w({
664
- flexDirection: t.flexDirection,
665
- gap: t.gap,
666
- padding: t.padding
667
- })
668
- }, [h(c.$slots, "default", {}, void 0, !0)], 4));
669
- }
670
- }), An = /* @__PURE__ */ d(bt, [["__scopeId", "data-v-4566ee86"]]), kt = "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", Ct = {
671
- class: "cta-container"
672
- }, xt = ["src"], Lt = {
673
- class: "cta-content"
674
- }, Pt = {
675
- class: "cta-title"
676
- }, wt = {
677
- class: "cta-description"
678
- }, It = {
679
- class: "cta-actions"
680
- }, St = /* @__PURE__ */ f({
681
- __name: "LandingPageCta",
682
- props: {
683
- title: {
684
- default: "迫不及待想使用翻译?"
685
- },
686
- description: {
687
- default: "立即开始您的翻译之旅"
688
- },
689
- backgroundUrl: {
690
- default: kt
691
- },
692
- backgroundSize: {
693
- default: "120%"
694
- }
695
- },
696
- setup(s) {
697
- const t = s;
698
- return (c, i) => (a(), n("div", Ct, [e("img", {
699
- src: t.backgroundUrl,
700
- class: "cta-background",
701
- alt: "background",
702
- style: w({
703
- width: t.backgroundSize,
704
- height: t.backgroundSize
705
- })
706
- }, null, 12, xt), e("div", Lt, [e("h1", Pt, l(t.title), 1), e("div", wt, l(t.description), 1), e("div", It, [h(c.$slots, "actions", {}, void 0, !0)])])]));
707
- }
708
- }), qn = /* @__PURE__ */ d(St, [["__scopeId", "data-v-4a709ec3"]]), Tt = {}, At = {
709
- role: "separator",
710
- class: "divider divider-horizontal"
711
- };
712
- function qt(s, t) {
713
- return a(), n("div", At);
714
- }
715
- const F = /* @__PURE__ */ d(Tt, [["render", qt], ["__scopeId", "data-v-997fc2a4"]]), Bt = /* @__PURE__ */ f({
716
- __name: "LandingPageFAQ",
717
- props: {
718
- activeKeys: {
719
- default: () => []
720
- },
721
- faqItems: {
722
- default: () => [{
723
- question: "你们有免费试用吗?",
724
- answer: "我们提供1个月的免费试用"
725
- }, {
726
- question: "我可以申请退款吗?",
727
- answer: "不支持退款,但您可以随时取消订阅。取消订阅后将于下一个结算日的次日生效,在此之前您可以使用服务。为了避免被收取下一计费期的费用,请在下一个计费日期前至少 24 小时取消。"
728
- }, {
729
- question: "付费会员的配额什么时候会重置?会在月初吗?",
730
- answer: "配额重置发生在您订阅后一个月,并非基于日历月。例如,如果您在4月15日订阅,您的配额将在5月15日重置。"
731
- }, {
732
- question: "从月付费订阅升级至年付费订阅,费用和有效期是如何计算的?",
733
- answer: "从月度付费升级至年度付费时,会基于您剩余的月度付费价值计算差额。服务期从升级日起至次年同日。"
734
- }, {
735
- question: "你们提供技术支持吗?",
736
- answer: "是的,在付费期间我们提供全天候的技术支持,可以通过电子邮箱和微信联系我们。"
737
- }, {
738
- question: "使用期间有什么限制吗?",
739
- answer: "在使用期间如果发现开发者违反法律法规或在恶意应用程序中使用等任何不当使用行为,包括但不限于共享或出售订阅,都是被禁止的,可能会导致您的账户被终止且不予退款。我们有权终止服务,详情请参阅《付费服务协议》"
740
- }]
741
- }
742
- },
743
- setup(s) {
744
- const t = s;
745
- return (c, i) => (a(), C(W, {
746
- "active-keys": t.activeKeys
747
- }, {
748
- default: _(() => [(a(!0), n(v, null, y(t.faqItems, (o, r) => (a(), C(Z, {
749
- key: r,
750
- index: r
751
- }, {
752
- header: _(() => [g(l(o.question), 1)]),
753
- default: _(() => [u(S, null, {
754
- default: _(() => [g(l(o.answer), 1)]),
755
- _: 2
756
- }, 1024)]),
757
- _: 2
758
- }, 1032, ["index"]))), 128))]),
759
- _: 1
760
- }, 8, ["active-keys"]));
761
- }
762
- }), Bn = /* @__PURE__ */ d(Bt, [["__scopeId", "data-v-581e8f75"]]), zt = {
763
- class: "Features"
764
- }, Ft = {
765
- class: "feature-title"
766
- }, Vt = /* @__PURE__ */ f({
767
- __name: "LandingPageFeatures",
768
- props: {
769
- features: {
770
- default: () => [{
771
- title: "什么是ShipAny?",
772
- description: "ShipAny是一个无代码平台,帮助您在几小时内而不是几天内构建和发布AI产品。",
773
- icon: ""
774
- }, {
775
- title: "认证与支付",
776
- description: "内置认证和Stripe支付处理,开箱即用。",
777
- icon: ""
778
- }, {
779
- title: "数据基础设施",
780
- description: "为您的AI模型和用户数据提供安全且可扩展的数据库基础设施。",
781
- icon: ""
782
- }, {
783
- title: "实时部署",
784
- description: "持续部署工作流,确保您的AI创业公司始终保持最新状态。",
785
- icon: ""
786
- }, {
787
- title: "业务分析",
788
- description: "跟踪用户行为和业务指标,做出明智决策。",
789
- icon: ""
790
- }, {
791
- title: "AI模型集成",
792
- description: "轻松集成来自OpenAI、Anthropic等的最新AI模型。",
793
- icon: ""
794
- }]
795
- },
796
- iconColor: {
797
- default: "rgb(184, 154, 120)"
798
- },
799
- iconBorderColor: {
800
- default: "rgb(184, 154, 120)"
801
- }
802
- },
803
- setup(s) {
804
- const t = s;
805
- return (c, i) => (a(), n("div", zt, [(a(!0), n(v, null, y(t.features, (o) => (a(), C(G, {
806
- key: o.title
807
- }, {
808
- default: _(() => [e("div", {
809
- class: "icon-container",
810
- style: w({
811
- color: t.iconColor,
812
- border: `1px solid ${t.iconBorderColor}`
813
- })
814
- }, [u(L(P), {
815
- class: "icon",
816
- icon: o.icon
817
- }, null, 8, ["icon"])], 4), e("h3", Ft, l(o.title), 1), u(S, null, {
818
- default: _(() => [g(l(o.description), 1)]),
819
- _: 2
820
- }, 1024)]),
821
- _: 2
822
- }, 1024))), 128))]));
823
- }
824
- }), zn = /* @__PURE__ */ d(Vt, [["__scopeId", "data-v-1ee2db18"]]), Ht = {
825
- class: "tt-feature-list"
826
- }, Dt = {
827
- class: "tt-feature-content"
828
- }, Mt = {
829
- class: "heading-small"
830
- }, Ut = {
831
- class: "text-small"
832
- }, Gt = /* @__PURE__ */ f({
833
- __name: "LandingPageFeatures2",
834
- props: {
835
- list: {
836
- type: Array,
837
- required: !0
838
- }
839
- },
840
- setup(s) {
841
- const t = s;
842
- return (c, i) => (a(), n("div", Ht, [(a(!0), n(v, null, y(t.list, (o, r) => (a(), n("div", {
843
- key: r,
844
- class: "tt-feature-item centered"
845
- }, [i[1] || (i[1] = e("div", {
846
- class: "tt-feature-icon"
847
- }, [e("img", {
848
- src: "https://cdn.prod.website-files.com/645a9acecda2e0594fac6126/66cda872417824f6aabdc2ad_check-highlight-badge.svg",
849
- loading: "lazy",
850
- class: "feature-media"
851
- })], -1)), e("div", Dt, [e("h3", Mt, l(o.title), 1), e("p", Ut, [g(l(o.descriptions) + " ", 1), i[0] || (i[0] = e("br", null, null, -1))])])]))), 128))]));
852
- }
853
- }), Fn = /* @__PURE__ */ d(Gt, [["__scopeId", "data-v-abd3c70a"]]), jt = {
854
- class: "bottom"
855
- }, Et = {
856
- class: "socials"
857
- }, Ot = ["onClick"], Nt = /* @__PURE__ */ f({
858
- __name: "LandingPageFooterContact",
859
- props: {
860
- beianText: {
861
- type: String,
862
- required: !0
863
- },
864
- beianUrl: {
865
- type: String,
866
- required: !0
867
- },
868
- links: {
869
- type: Array,
870
- required: !0
871
- }
872
- },
873
- setup(s) {
874
- const t = s;
875
- function c() {
876
- window.open(t.beianUrl);
877
- }
878
- return (i, o) => (a(), n("div", jt, [e("span", {
879
- onClick: c
880
- }, l(t.beianText), 1), e("div", Et, [(a(!0), n(v, null, y(s.links, (r, m) => (a(), n("div", {
881
- key: m,
882
- class: "socialItem",
883
- onClick: r.select
884
- }, [r.type === "text" ? (a(), C(L(P), {
885
- key: 0,
886
- icon: r.icon
887
- }, null, 8, ["icon"])) : T("", !0), r.type === "image" ? (a(), C(L(P), {
888
- key: 1,
889
- icon: r.icon
890
- }, null, 8, ["icon"])) : T("", !0)], 8, Ot))), 128))])]));
891
- }
892
- }), Wt = /* @__PURE__ */ d(Nt, [["__scopeId", "data-v-ff6210b9"]]), Zt = {
893
- class: "FooterLayout"
894
- }, Rt = {
895
- class: "body"
896
- }, Kt = {
897
- class: "logo"
898
- }, Jt = {
899
- class: "links"
900
- }, Qt = /* @__PURE__ */ f({
901
- __name: "LandingPageFooterLayout",
902
- setup(s) {
903
- return (t, c) => (a(), n("div", Zt, [u(F), e("div", Rt, [e("div", Kt, [h(t.$slots, "LandingPageBrandInfo", {}, void 0, !0)]), e("div", Jt, [h(t.$slots, "LandingPageLinkGroup", {}, void 0, !0)])]), u(F), h(t.$slots, "LandingPageFooterContact", {}, void 0, !0)]));
904
- }
905
- }), Yt = /* @__PURE__ */ d(Qt, [["__scopeId", "data-v-425841c7"]]), Xt = {}, es = {
906
- class: "Description"
907
- };
908
- function ts(s, t) {
909
- return a(), n("div", es, [h(s.$slots, "default", {}, void 0, !0)]);
910
- }
911
- const x = /* @__PURE__ */ d(Xt, [["render", ts], ["__scopeId", "data-v-ea9ec649"]]), ss = {
912
- class: "list"
913
- }, as = {
914
- class: "title"
915
- }, ns = {
916
- class: "listItemContent"
917
- }, is = /* @__PURE__ */ f({
918
- __name: "LandingPageLinkGroup",
919
- props: {
920
- title: {
921
- default: ""
922
- }
923
- },
924
- setup(s) {
925
- const t = s;
926
- return (c, i) => (a(), n("div", ss, [e("div", as, l(t.title), 1), e("div", ns, [h(c.$slots, "item", {}, void 0, !0)])]));
927
- }
928
- }), B = /* @__PURE__ */ d(is, [["__scopeId", "data-v-0809a48c"]]), os = {
929
- class: "Footer"
930
- }, V = "support@huyooo.com", cs = /* @__PURE__ */ f({
931
- __name: "LandingPageFooter",
932
- setup(s) {
933
- const t = k("京ICP备2024077422号 Copyright © 2024-2024 北京忽柚科技有限公司"), c = k("https://beian.miit.gov.cn/#/Integrated/index");
934
- function i() {
935
- const p = R(V, "", "");
936
- window.location.href = p;
937
- }
938
- const o = k([{
939
- type: "text",
940
- icon: "ic:baseline-email",
941
- content: V,
942
- select: i
943
- }, {
944
- type: "image",
945
- icon: "ic:baseline-wechat",
946
- content: "https://beian.miit.gov.cn/#/Integrated/index",
947
- select() {
948
- }
949
- }]);
950
- return (r, m) => (a(), n("div", os, [u(Yt, null, {
951
- LandingPageBrandInfo: _(() => [u(Ke, {
952
- icon: "https://ghibliaigenerator.app/logo.png",
953
- name: "ONES",
954
- description: "几小时内构建和发布AI产品,无需数日。"
955
- })]),
956
- LandingPageLinkGroup: _(() => [u(B, {
957
- title: "产品"
958
- }, {
959
- item: _(() => [u(x, null, {
960
- default: _(() => [...m[0] || (m[0] = [g("功能", -1)])]),
961
- _: 1
962
- }), u(x, null, {
963
- default: _(() => [...m[1] || (m[1] = [g("展示", -1)])]),
964
- _: 1
965
- }), u(x, null, {
966
- default: _(() => [...m[2] || (m[2] = [g("价格", -1)])]),
967
- _: 1
968
- })]),
969
- _: 1
970
- }), u(B, {
971
- title: "资源"
972
- }, {
973
- item: _(() => [u(x, null, {
974
- default: _(() => [...m[3] || (m[3] = [g("安全性与合规性", -1)])]),
975
- _: 1
976
- })]),
977
- _: 1
978
- }), u(B, {
979
- title: "公司"
980
- }, {
981
- item: _(() => [u(x, null, {
982
- default: _(() => [...m[4] || (m[4] = [g("博客", -1)])]),
983
- _: 1
984
- }), u(x, null, {
985
- default: _(() => [...m[5] || (m[5] = [g("公司简介", -1)])]),
986
- _: 1
987
- }), u(x, null, {
988
- default: _(() => [...m[6] || (m[6] = [g("个人信息收集清单", -1)])]),
989
- _: 1
990
- }), u(x, null, {
991
- default: _(() => [...m[7] || (m[7] = [g("第三方信息共享清单", -1)])]),
992
- _: 1
993
- }), u(x, null, {
994
- default: _(() => [...m[8] || (m[8] = [g("用户服务协议", -1)])]),
995
- _: 1
996
- }), u(x, null, {
997
- default: _(() => [...m[9] || (m[9] = [g("隐私协议", -1)])]),
998
- _: 1
999
- })]),
1000
- _: 1
1001
- })]),
1002
- LandingPageFooterContact: _(() => [u(Wt, {
1003
- "beian-text": t.value,
1004
- "beian-url": c.value,
1005
- links: o.value
1006
- }, null, 8, ["beian-text", "beian-url", "links"])]),
1007
- _: 1
1008
- })]));
1009
- }
1010
- }), Vn = /* @__PURE__ */ d(cs, [["__scopeId", "data-v-619d1298"]]), ls = {
1011
- class: "hero"
1012
- }, rs = {
1013
- class: "heroContent"
1014
- }, ds = {
1015
- class: "heroHeading"
1016
- }, us = {
1017
- class: "heroTitle"
1018
- }, _s = {
1019
- class: "heroDescription"
1020
- }, ps = {
1021
- class: "heroActions"
1022
- }, fs = {
1023
- class: "heroImage"
1024
- }, ms = /* @__PURE__ */ f({
1025
- __name: "LandingPageHero",
1026
- props: {
1027
- title: {
1028
- type: String,
1029
- default: () => ""
1030
- },
1031
- description: {
1032
- type: String,
1033
- default: () => ""
1034
- },
1035
- heroSource: {
1036
- type: String,
1037
- default: () => ""
1038
- }
1039
- },
1040
- setup(s) {
1041
- const t = s;
1042
- return (c, i) => (a(), n("main", ls, [e("div", rs, [e("div", ds, [e("h1", us, [h(c.$slots, "title", {}, () => [g(l(t.title), 1)], !0)])]), e("div", _s, [e("div", null, l(t.description), 1)]), e("div", ps, [h(c.$slots, "actions", {}, void 0, !0)])]), e("div", fs, [h(c.$slots, "heroSource", {}, void 0, !0)])]));
1043
- }
1044
- }), Hn = /* @__PURE__ */ d(ms, [["__scopeId", "data-v-38f97a3c"]]), gs = {
1045
- class: "logos-list"
1046
- }, hs = /* @__PURE__ */ f({
1047
- __name: "LandingPageLogos",
1048
- props: {
1049
- title: {
1050
- default: "Works with your technologies"
1051
- },
1052
- subTitle: {
1053
- default: ""
1054
- },
1055
- logos: {
1056
- default: () => [{
1057
- name: "simple-icons:react"
1058
- }, {
1059
- name: "simple-icons:svelte"
1060
- }, {
1061
- name: "simple-icons:astro"
1062
- }, {
1063
- name: "simple-icons:css3"
1064
- }, {
1065
- name: "simple-icons:alpinedotjs"
1066
- }, {
1067
- name: "simple-icons:vercel"
1068
- }]
1069
- }
1070
- },
1071
- setup(s) {
1072
- const t = s;
1073
- return (c, i) => (a(), n("div", gs, [(a(!0), n(v, null, y(t.logos, (o, r) => (a(), C(L(P), {
1074
- key: r,
1075
- icon: o.name,
1076
- class: "logo-icon"
1077
- }, null, 8, ["icon"]))), 128))]));
1078
- }
1079
- }), Dn = /* @__PURE__ */ d(hs, [["__scopeId", "data-v-1a08e627"]]), vs = /* @__PURE__ */ f({
1080
- __name: "LandingPagePageContent",
1081
- props: {
1082
- maxWidth: {
1083
- default: "1380px"
1084
- },
1085
- center: {
1086
- type: Boolean,
1087
- default: !0
1088
- },
1089
- padding: {
1090
- default: "0px 0px 40px 0px "
1091
- },
1092
- gap: {
1093
- default: "90px"
1094
- },
1095
- flexDirection: {
1096
- default: "column"
1097
- }
1098
- },
1099
- setup(s) {
1100
- const t = s, c = H(() => ({
1101
- maxWidth: t.maxWidth,
1102
- margin: t.center ? "0 auto" : void 0,
1103
- width: "100%",
1104
- padding: t.padding,
1105
- display: "flex",
1106
- flexDirection: t.flexDirection ?? "column",
1107
- gap: t.gap
1108
- }));
1109
- return (i, o) => (a(), n("div", {
1110
- class: "PageContent",
1111
- style: w(c.value)
1112
- }, [h(i.$slots, "default", {}, void 0, !0)], 4));
1113
- }
1114
- }), Mn = /* @__PURE__ */ d(vs, [["__scopeId", "data-v-00ec8180"]]), $s = {
1115
- class: "Tabs"
1116
- }, ys = {
1117
- class: "tabs-root"
1118
- }, bs = {
1119
- role: "radiogroup",
1120
- "aria-required": "false",
1121
- dir: "ltr",
1122
- class: "tabs-group",
1123
- tabindex: "0"
1124
- }, ks = ["id", "aria-checked", "data-state", "value", "tabindex", "onClick"], Cs = {
1125
- key: 0,
1126
- "data-state": "checked",
1127
- class: "tabs-radio-icon"
1128
- }, xs = ["for"], Ls = {
1129
- key: 0,
1130
- class: "tabs-badge"
1131
- }, Ps = /* @__PURE__ */ f({
1132
- __name: "LandingPageTabs",
1133
- props: {
1134
- tabs: {
1135
- type: Array,
1136
- required: !0
1137
- },
1138
- modelValue: {
1139
- type: String,
1140
- required: !0
1141
- }
1142
- },
1143
- emits: ["update:modelValue"],
1144
- setup(s) {
1145
- const t = s;
1146
- return (c, i) => (a(), n("div", $s, [e("div", ys, [e("div", bs, [(a(!0), n(v, null, y(t.tabs, (o) => (a(), n("div", {
1147
- key: o.value,
1148
- class: I(["tabs-item", {
1149
- "tabs-item-active": o.value === s.modelValue
1150
- }])
1151
- }, [e("button", {
1152
- id: o.value,
1153
- type: "button",
1154
- role: "radio",
1155
- "aria-checked": o.value === s.modelValue,
1156
- "data-state": o.value === s.modelValue ? "checked" : "unchecked",
1157
- value: o.value,
1158
- class: "tabs-radio",
1159
- tabindex: o.value === s.modelValue ? 0 : -1,
1160
- onClick: (r) => c.$emit("update:modelValue", o.value)
1161
- }, [o.value === s.modelValue ? (a(), n("span", Cs)) : T("", !0)], 8, ks), e("label", {
1162
- class: "tabs-label",
1163
- for: o.value
1164
- }, [e("span", null, l(o.label), 1), o.badge ? (a(), n("div", Ls, l(o.badge), 1)) : T("", !0)], 8, xs)], 2))), 128))])])]));
1165
- }
1166
- }), ws = /* @__PURE__ */ d(Ps, [["__scopeId", "data-v-9eb67a93"]]), Is = {
1167
- class: "PriceGroup"
1168
- }, Ss = /* @__PURE__ */ f({
1169
- __name: "LandingPagePriceGroup",
1170
- setup(s) {
1171
- const t = k("subscribe-monthly");
1172
- return (c, i) => (a(), n("div", Is, [u(ws, {
1173
- modelValue: t.value,
1174
- "onUpdate:modelValue": i[0] || (i[0] = (o) => t.value = o),
1175
- tabs: [{
1176
- value: "subscribe-monthly",
1177
- label: "按月订阅"
1178
- }, {
1179
- value: "subscribe-yearly",
1180
- label: "按年订阅",
1181
- badge: "节省17%"
1182
- }, {
1183
- value: "pay-as-you-go",
1184
- label: "按需付费"
1185
- }]
1186
- }, null, 8, ["modelValue"]), h(c.$slots, "default", {}, void 0, !0)]));
1187
- }
1188
- }), Un = /* @__PURE__ */ d(Ss, [["__scopeId", "data-v-43a35f55"]]), Ts = {
1189
- class: "PricingCard"
1190
- }, As = {
1191
- class: "title"
1192
- }, qs = {
1193
- class: "titleText"
1194
- }, Bs = {
1195
- class: "description"
1196
- }, zs = {
1197
- class: "priceAndDiscount"
1198
- }, Fs = {
1199
- class: "price"
1200
- }, Vs = {
1201
- class: "discount"
1202
- }, Hs = {
1203
- style: {
1204
- position: "relative",
1205
- top: "3px"
1206
- }
1207
- }, Ds = {
1208
- key: 1,
1209
- class: "priceNotDiscount"
1210
- }, Ms = {
1211
- class: "cycle"
1212
- }, Us = {
1213
- class: "features"
1214
- }, Gs = /* @__PURE__ */ f({
1215
- __name: "LandingPagePricingCard",
1216
- props: {
1217
- loading: {
1218
- type: Boolean,
1219
- required: !1,
1220
- default: () => !1
1221
- },
1222
- title: {
1223
- type: String,
1224
- required: !0
1225
- },
1226
- description: {
1227
- type: String,
1228
- required: !0
1229
- },
1230
- price: {
1231
- type: Number,
1232
- required: !0
1233
- },
1234
- discount: {
1235
- type: Number,
1236
- required: !1,
1237
- default: () => 99
1238
- },
1239
- unit: {
1240
- type: String,
1241
- required: !0
1242
- },
1243
- cycle: {
1244
- type: String,
1245
- required: !0
1246
- },
1247
- highlight: {
1248
- type: Boolean,
1249
- required: !0
1250
- },
1251
- badge: {
1252
- type: Object,
1253
- required: !0
1254
- },
1255
- button: {
1256
- type: Object,
1257
- required: !0
1258
- },
1259
- orientation: {
1260
- type: String,
1261
- required: !0
1262
- },
1263
- align: {
1264
- type: String,
1265
- required: !0
1266
- },
1267
- features: {
1268
- type: Array,
1269
- required: !0
1270
- }
1271
- },
1272
- emits: ["toPay"],
1273
- setup(s, {
1274
- emit: t
1275
- }) {
1276
- const c = t, i = s;
1277
- function o() {
1278
- c("toPay");
1279
- }
1280
- return (r, m) => (a(), n("div", Ts, [e("div", null, [e("div", As, [e("span", qs, l(i.title), 1), i.badge.label ? (a(), C(L(K), {
1281
- key: 0,
1282
- color: "arcoblue"
1283
- }, {
1284
- default: _(() => [g(l(i.badge.label), 1)]),
1285
- _: 1
1286
- })) : T("", !0)]), e("div", Bs, l(i.description), 1)]), e("div", zs, [i.discount !== null ? (a(), n(v, {
1287
- key: 0
1288
- }, [e("span", Fs, [e("span", null, l(i.price), 1), e("span", null, l(i.unit), 1)]), e("span", Vs, [e("span", Hs, l(i.discount), 1), e("span", null, l(i.unit), 1)])], 64)) : (a(), n("span", Ds, [e("span", null, l(i.price), 1), e("span", null, l(i.unit), 1)])), e("span", Ms, l(i.cycle), 1)]), e("div", Us, [(a(!0), n(v, null, y(i.features, (b, p) => (a(), C(U, {
1289
- key: p,
1290
- description: b.title
1291
- }, null, 8, ["description"]))), 128))]), u(Qe, {
1292
- class: "handle",
1293
- type: "primary",
1294
- loading: i.loading,
1295
- disabled: !(i.discount || i.price),
1296
- onClick: o
1297
- }, {
1298
- default: _(() => [g(l(i.button.label), 1)]),
1299
- _: 1
1300
- }, 8, ["loading", "disabled"])]));
1301
- }
1302
- }), Gn = /* @__PURE__ */ d(Gs, [["__scopeId", "data-v-0b730439"]]), js = {}, Es = {
1303
- class: "PricingGrid"
1304
- }, Os = {
1305
- class: "content"
1306
- };
1307
- function Ns(s, t) {
1308
- return a(), n("div", Es, [e("div", Os, [h(s.$slots, "default", {}, void 0, !0)])]);
1309
- }
1310
- const jn = /* @__PURE__ */ d(js, [["render", Ns], ["__scopeId", "data-v-1f26d3ee"]]), Ws = "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", Zs = "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", Rs = {
1311
- class: "section-header"
1312
- }, Ks = {
1313
- class: "title-section"
1314
- }, Js = {
1315
- class: "icon-title"
1316
- }, Qs = ["src", "width", "height"], Ys = {
1317
- class: "title"
1318
- }, Xs = {
1319
- class: "subtitle-section"
1320
- }, ea = ["src", "width", "height"], ta = {
1321
- class: "subtitle"
1322
- }, sa = "图标", aa = "装饰线条", na = /* @__PURE__ */ f({
1323
- __name: "LandingPageSectionHeader",
1324
- props: {
1325
- title: {},
1326
- subtitle: {},
1327
- icon: {
1328
- default: Ws
1329
- },
1330
- iconWidth: {
1331
- default: 40
1332
- },
1333
- iconHeight: {
1334
- default: 40
1335
- },
1336
- dashline: {
1337
- default: Zs
1338
- },
1339
- dashlineWidth: {
1340
- default: 72
1341
- },
1342
- dashlineHeight: {
1343
- default: 48
1344
- }
1345
- },
1346
- setup(s) {
1347
- const t = s;
1348
- return (c, i) => (a(), n("div", Rs, [e("div", Ks, [e("div", Js, [e("img", {
1349
- src: t.icon,
1350
- alt: sa,
1351
- width: t.iconWidth,
1352
- height: t.iconHeight,
1353
- loading: "lazy",
1354
- decoding: "async",
1355
- class: "icon"
1356
- }, null, 8, Qs), e("span", Ys, l(s.title), 1)]), e("div", Xs, [e("img", {
1357
- src: t.dashline,
1358
- alt: aa,
1359
- width: t.dashlineWidth,
1360
- height: t.dashlineHeight,
1361
- loading: "lazy",
1362
- decoding: "async",
1363
- class: "dashline"
1364
- }, null, 8, ea), e("span", ta, l(s.subtitle), 1)])])]));
1365
- }
1366
- }), En = /* @__PURE__ */ d(na, [["__scopeId", "data-v-83ea7b70"]]), ia = {
1367
- class: "sections-container"
1368
- }, oa = {
1369
- class: "container"
1370
- }, ca = {
1371
- class: "image-container"
1372
- }, la = ["src", "alt"], ra = {
1373
- class: "text-container"
1374
- }, da = {
1375
- class: "header"
1376
- }, ua = {
1377
- class: "features-list"
1378
- }, _a = {
1379
- class: "content"
1380
- }, pa = {
1381
- class: "feature-title"
1382
- }, fa = /* @__PURE__ */ f({
1383
- __name: "LandingPageSections",
1384
- props: {
1385
- title: {
1386
- default: "什么是ShipAny"
1387
- },
1388
- subTitle: {
1389
- default: "ShipAny是一个用于构建AI优先创业公司的无代码框架。在几分钟内构建美观、生产就绪的AI应用程序。"
1390
- },
1391
- imageUrl: {
1392
- default: "https://picsum.photos/600/400?random=6"
1393
- },
1394
- imageAlt: {
1395
- default: "ShipAny平台截图"
1396
- },
1397
- features: {
1398
- default: () => [{
1399
- title: "即用型模板",
1400
- description: "从数十个生产就绪的AI模板中选择,快速开始。",
1401
- color: "green",
1402
- iconPath: "M5 13l4 4L19 7"
1403
- }, {
1404
- title: "专业设计",
1405
- description: "由专业人士精心打造的UI组件,遵循最佳实践。",
1406
- color: "blue",
1407
- iconPath: "M13 10V3L4 14h7v7l9-11h-7z"
1408
- }, {
1409
- title: "内置部署",
1410
- description: "几分钟内将您的AI应用程序部署到生产环境。",
1411
- color: "purple",
1412
- 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"
1413
- }]
1414
- },
1415
- reverse: {
1416
- type: Boolean,
1417
- default: !1
1418
- }
1419
- },
1420
- setup(s) {
1421
- const t = s;
1422
- return (c, i) => (a(), n("section", ia, [e("div", oa, [e("div", {
1423
- class: I(["content-wrapper", {
1424
- reverse: t.reverse
1425
- }])
1426
- }, [e("div", ca, [e("img", {
1427
- src: t.imageUrl,
1428
- alt: t.imageAlt,
1429
- class: "image"
1430
- }, null, 8, la)]), e("div", ra, [e("div", da, [u(M, null, {
1431
- default: _(() => [g(l(t.title), 1)]),
1432
- _: 1
1433
- }), u(D, null, {
1434
- default: _(() => [g(l(t.subTitle), 1)]),
1435
- _: 1
1436
- })]), e("div", ua, [(a(!0), n(v, null, y(t.features, (o, r) => (a(), n("div", {
1437
- key: r,
1438
- class: "feature-item"
1439
- }, [e("div", {
1440
- class: I(["icon-container", [`icon-${o.color}`]])
1441
- }, [...i[0] || (i[0] = [e("div", {
1442
- class: "dot"
1443
- }, null, -1)])], 2), e("div", _a, [e("div", pa, l(o.title), 1), u(S, null, {
1444
- default: _(() => [g(l(o.description), 1)]),
1445
- _: 2
1446
- }, 1024)])]))), 128))])])], 2)])]));
1447
- }
1448
- }), On = /* @__PURE__ */ d(fa, [["__scopeId", "data-v-ac2b71bb"]]), ma = {
1449
- class: "Showcase"
1450
- }, ga = ["onClick"], ha = ["src", "alt"], va = {
1451
- class: "card-content"
1452
- }, $a = {
1453
- class: "card-title"
1454
- }, ya = /* @__PURE__ */ f({
1455
- __name: "LandingPageShowcase",
1456
- props: {
1457
- items: {},
1458
- showControls: {
1459
- type: Boolean,
1460
- default: !0
1461
- },
1462
- columns: {
1463
- default: 4
1464
- },
1465
- cardHeight: {
1466
- default: 160
1467
- },
1468
- objectFit: {
1469
- default: "cover"
1470
- }
1471
- },
1472
- emits: ["cardClick"],
1473
- setup(s, {
1474
- emit: t
1475
- }) {
1476
- const c = s, i = t;
1477
- function o(m) {
1478
- i("cardClick", m);
1479
- }
1480
- const r = H(() => ({
1481
- height: `${c.cardHeight}px`,
1482
- objectFit: c.objectFit
1483
- }));
1484
- return (m, b) => (a(), n("div", ma, [(a(!0), n(v, null, y(c.items, (p, $) => (a(), n("div", {
1485
- key: $,
1486
- class: "showcase-card",
1487
- onClick: (j) => o(p)
1488
- }, [e("img", {
1489
- src: p.image,
1490
- alt: p.alt,
1491
- style: w(r.value)
1492
- }, null, 12, ha), e("div", va, [e("div", $a, l(p.title), 1), u(S, null, {
1493
- default: _(() => [g(l(p.description), 1)]),
1494
- _: 2
1495
- }, 1024)])], 8, ga))), 128))]));
1496
- }
1497
- }), Nn = /* @__PURE__ */ d(ya, [["__scopeId", "data-v-381ed6a6"]]), ba = {
1498
- class: "Stats"
1499
- }, ka = {
1500
- key: 0,
1501
- class: "stats-label"
1502
- }, Ca = {
1503
- class: "stats-number"
1504
- }, xa = {
1505
- class: "stats-label"
1506
- }, La = /* @__PURE__ */ f({
1507
- __name: "LandingPageStats",
1508
- props: {
1509
- title: {
1510
- default: "用户喜爱ShipAny"
1511
- },
1512
- subTitle: {
1513
- default: "看看我们的客户怎么说"
1514
- },
1515
- stats: {
1516
- default: () => [{
1517
- title: "",
1518
- number: "250+",
1519
- label: "已启动的创业公司"
1520
- }, {
1521
- title: "",
1522
- number: "30+",
1523
- label: "AI模板"
1524
- }, {
1525
- title: "",
1526
- number: "5",
1527
- label: "星级评分"
1528
- }]
1529
- }
1530
- },
1531
- setup(s) {
1532
- const t = s;
1533
- return (c, i) => (a(), n("div", ba, [(a(!0), n(v, null, y(t.stats, (o, r) => (a(), n("div", {
1534
- key: r,
1535
- class: "stats-item"
1536
- }, [o.title ? (a(), n("div", ka, l(o.title), 1)) : T("", !0), e("div", Ca, l(o.number), 1), e("div", xa, l(o.label), 1)]))), 128))]));
1537
- }
1538
- }), Wn = /* @__PURE__ */ d(La, [["__scopeId", "data-v-7aa9af80"]]), Pa = {
1539
- class: "stepNumber"
1540
- }, wa = {
1541
- class: "count"
1542
- }, Ia = {
1543
- class: "stepTitle"
1544
- }, Sa = /* @__PURE__ */ f({
1545
- __name: "LandingPageSteps",
1546
- props: {
1547
- columns: {
1548
- type: Number,
1549
- default: 3
1550
- },
1551
- steps: {
1552
- type: Array,
1553
- default: () => [{
1554
- title: "选择您的项目",
1555
- description: "从我们的AI模板库中选择或使用我们的拖放构建器从头开始。"
1556
- }, {
1557
- title: "构建您的项目",
1558
- description: "使用我们的直观编辑器自定义您的项目。添加您的品牌、内容并配置AI模型。"
1559
- }, {
1560
- title: "部署到生产环境",
1561
- description: "一键将您的AI应用程序部署到我们的全球基础设施并开始服务客户。"
1562
- }]
1563
- }
1564
- },
1565
- setup(s) {
1566
- const t = s;
1567
- return (c, i) => (a(), n("div", {
1568
- class: "Steps",
1569
- style: w({
1570
- gridTemplateColumns: `repeat(${t.columns}, 1fr)`
1571
- // flexDirection: props.flexDirection,
1572
- })
1573
- }, [(a(!0), n(v, null, y(t.steps, (o, r) => (a(), n("div", {
1574
- key: r,
1575
- class: "stepItem"
1576
- }, [e("div", Pa, [e("span", wa, l(r + 1), 1)]), e("h3", Ia, l(o.title), 1), u(S, null, {
1577
- default: _(() => [g(l(o.description), 1)]),
1578
- _: 2
1579
- }, 1024)]))), 128))], 4));
1580
- }
1581
- }), Zn = /* @__PURE__ */ d(Sa, [["__scopeId", "data-v-1ecd9597"]]), Ta = {
1582
- class: "Testimonial"
1583
- }, Aa = {
1584
- class: "user-info"
1585
- }, qa = {
1586
- class: "user-avatar"
1587
- }, Ba = ["src", "alt"], za = {
1588
- class: "user-name"
1589
- }, Fa = {
1590
- class: "user-title"
1591
- }, Va = /* @__PURE__ */ f({
1592
- __name: "LandingPageTestimonial",
1593
- props: {
1594
- testimonials: {
1595
- default: () => []
1596
- }
1597
- },
1598
- setup(s) {
1599
- const t = s;
1600
- return (c, i) => (a(), n("div", Ta, [(a(!0), n(v, null, y(t.testimonials, (o, r) => (a(), C(G, {
1601
- key: r
1602
- }, {
1603
- default: _(() => [e("div", null, [u(S, null, {
1604
- default: _(() => [g(l(`"${o.content}"`), 1)]),
1605
- _: 2
1606
- }, 1024)]), e("div", Aa, [e("span", qa, [e("img", {
1607
- src: o.avatar,
1608
- alt: o.name
1609
- }, null, 8, Ba)]), e("div", null, [e("div", za, l(o.name), 1), e("div", Fa, l(o.title), 1)])])]),
1610
- _: 2
1611
- }, 1024))), 128))]));
1612
- }
1613
- }), Rn = /* @__PURE__ */ d(Va, [["__scopeId", "data-v-bc49d7bc"]]), Ha = ["href"], Da = /* @__PURE__ */ f({
1614
- __name: "LandingPageTips",
1615
- props: {
1616
- href: {
1617
- type: String,
1618
- default: "/zh"
1619
- },
1620
- text: {
1621
- type: String,
1622
- default: "✨ 免费吉卜力AI艺术!立即注册获得3次免费创作!☝️"
1623
- }
1624
- },
1625
- setup(s) {
1626
- const t = s;
1627
- return (c, i) => (a(), n("a", {
1628
- href: t.href,
1629
- class: "tips-link"
1630
- }, l(t.text), 9, Ha));
1631
- }
1632
- }), Kn = /* @__PURE__ */ d(Da, [["__scopeId", "data-v-f5784dd1"]]), Ma = {}, Ua = {
1633
- class: "sidebar"
1634
- };
1635
- function Ga(s, t) {
1636
- return a(), n("div", Ua, [...t[0] || (t[0] = [O('<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)])]);
1637
- }
1638
- const Jn = /* @__PURE__ */ d(Ma, [["render", Ga], ["__scopeId", "data-v-251905ff"]]), ja = {
1639
- class: "feature-card"
1640
- }, Ea = {
1641
- class: "feature-image"
1642
- }, Oa = ["src", "alt"], Na = {
1643
- class: "feature-title"
1644
- }, Wa = {
1645
- class: "feature-description"
1646
- }, Za = {
1647
- class: "feature-platforms"
1648
- }, Ra = /* @__PURE__ */ f({
1649
- __name: "LandingPageFeatureCard",
1650
- props: {
1651
- feature: {}
1652
- },
1653
- setup(s) {
1654
- return (t, c) => (a(), n("div", ja, [e("div", Ea, [e("img", {
1655
- src: s.feature.image,
1656
- alt: s.feature.title,
1657
- loading: "lazy",
1658
- decoding: "async"
1659
- }, null, 8, Oa)]), e("h3", Na, l(s.feature.title), 1), e("p", Wa, l(s.feature.description), 1), e("div", Za, [(a(!0), n(v, null, y(s.feature.platforms, (i) => (a(), C(L(P), {
1660
- key: i.name,
1661
- icon: i.icon,
1662
- class: "platform-icon"
1663
- }, null, 8, ["icon"]))), 128))])]));
1664
- }
1665
- }), Qn = /* @__PURE__ */ d(Ra, [["__scopeId", "data-v-474acd19"]]), Ka = {
1666
- class: "feature-section-header"
1667
- }, Ja = {
1668
- class: "feature-section-title"
1669
- }, Qa = ["innerHTML"], Ya = /* @__PURE__ */ f({
1670
- __name: "LandingPageFeatureSectionHeader",
1671
- props: {
1672
- title: {},
1673
- description: {}
1674
- },
1675
- setup(s) {
1676
- return (t, c) => (a(), n("div", Ka, [e("h2", Ja, l(s.title), 1), e("p", {
1677
- class: "feature-section-description",
1678
- innerHTML: s.description
1679
- }, null, 8, Qa)]));
1680
- }
1681
- }), Yn = /* @__PURE__ */ d(Ya, [["__scopeId", "data-v-8fe145ad"]]), Xa = {}, en = {
1682
- class: "features-grid"
1683
- };
1684
- function tn(s, t) {
1685
- return a(), n("div", en, [h(s.$slots, "default", {}, void 0, !0)]);
1686
- }
1687
- const Xn = /* @__PURE__ */ d(Xa, [["render", tn], ["__scopeId", "data-v-392f636b"]]), sn = {
1688
- class: "testimonials-container"
1689
- }, an = {
1690
- class: "testimonial-header"
1691
- }, nn = ["onClick"], on = {
1692
- class: "user-avatar"
1693
- }, cn = ["src", "alt"], ln = {
1694
- class: "user-info"
1695
- }, rn = {
1696
- class: "user-name"
1697
- }, dn = {
1698
- class: "user-title"
1699
- }, un = {
1700
- class: "testimonial-content"
1701
- }, _n = /* @__PURE__ */ f({
1702
- __name: "LandingPageTestimonialCard",
1703
- props: {
1704
- testimonials: {}
1705
- },
1706
- setup(s) {
1707
- function t(c) {
1708
- c.link && window.open(c.link, "_blank");
1709
- }
1710
- return (c, i) => (a(), n("div", sn, [(a(!0), n(v, null, y(s.testimonials, (o) => (a(), n("div", {
1711
- key: o.name,
1712
- class: "testimonial-card"
1713
- }, [e("div", an, [e("div", {
1714
- class: I(["user-link", {
1715
- "no-link": !o.link
1716
- }]),
1717
- onClick: (r) => t(o)
1718
- }, [e("div", on, [e("img", {
1719
- src: o.avatar,
1720
- alt: o.name,
1721
- width: "260",
1722
- height: "260",
1723
- loading: "lazy",
1724
- decoding: "async",
1725
- class: "avatar-image"
1726
- }, null, 8, cn)]), e("div", ln, [e("span", rn, l(o.name), 1), e("span", dn, l(o.title), 1)])], 10, nn)]), e("p", un, l(o.content), 1)]))), 128))]));
1727
- }
1728
- }), ei = /* @__PURE__ */ d(_n, [["__scopeId", "data-v-6e10d8a8"]]), pn = {
1729
- class: "tabs"
1730
- }, fn = {
1731
- class: "tabs-header"
1732
- }, mn = ["onClick"], gn = {
1733
- class: "tab-label"
1734
- }, hn = {
1735
- class: "tabs-content"
1736
- }, vn = /* @__PURE__ */ f({
1737
- __name: "LandingPageSectionTabs",
1738
- props: {
1739
- tabs: {},
1740
- defaultActiveTab: {
1741
- default: ""
1742
- },
1743
- modelValue: {
1744
- default: ""
1745
- }
1746
- },
1747
- emits: ["update:modelValue", "tabChange"],
1748
- setup(s, {
1749
- emit: t
1750
- }) {
1751
- var m;
1752
- const c = s, i = t, o = k(c.modelValue || c.defaultActiveTab || ((m = c.tabs[0]) == null ? void 0 : m.id) || "");
1753
- function r(b) {
1754
- o.value = b, i("update:modelValue", b), i("tabChange", b);
1755
- }
1756
- return z(() => c.modelValue, (b) => {
1757
- b && (o.value = b);
1758
- }), z(() => c.defaultActiveTab, (b) => {
1759
- b && !c.modelValue && (o.value = b);
1760
- }), (b, p) => (a(), n("div", pn, [e("div", fn, [(a(!0), n(v, null, y(s.tabs, ($) => (a(), n("div", {
1761
- key: $.id,
1762
- class: I(["tab-item", {
1763
- active: o.value === $.id
1764
- }]),
1765
- onClick: (j) => r($.id)
1766
- }, [e("span", gn, l($.label), 1)], 10, mn))), 128))]), e("div", hn, [(a(!0), n(v, null, y(s.tabs, ($) => A((a(), n("div", {
1767
- key: $.id,
1768
- class: "tab-panel"
1769
- }, [h(b.$slots, $.id, {
1770
- tab: $
1771
- }, () => [h(b.$slots, "default", {
1772
- tab: $
1773
- }, void 0, !0)], !0)])), [[N, o.value === $.id]])), 128))])]));
1774
- }
1775
- }), ti = /* @__PURE__ */ d(vn, [["__scopeId", "data-v-22e880ae"]]);
1776
- export {
1777
- En as A,
1778
- Qe as B,
1779
- G as C,
1780
- S as D,
1781
- On as E,
1782
- Nn as F,
1783
- Wn as G,
1784
- Zn as H,
1785
- Pe as I,
1786
- Ve as J,
1787
- Rn as K,
1788
- wn as L,
1789
- Kn as M,
1790
- M as N,
1791
- Jn as O,
1792
- Qn as P,
1793
- Yn as Q,
1794
- Xn as R,
1795
- D as S,
1796
- ws as T,
1797
- ei as U,
1798
- ti as V,
1799
- In as a,
1800
- ne as b,
1801
- ce as c,
1802
- Ke as d,
1803
- Sn as e,
1804
- Tn as f,
1805
- An as g,
1806
- qn as h,
1807
- F as i,
1808
- Bn as j,
1809
- zn as k,
1810
- Fn as l,
1811
- Vn as m,
1812
- Wt as n,
1813
- Yt as o,
1814
- Hn as p,
1815
- x as q,
1816
- B as r,
1817
- U as s,
1818
- We as t,
1819
- Dn as u,
1820
- be as v,
1821
- Mn as w,
1822
- Un as x,
1823
- Gn as y,
1824
- jn as z
1825
- };