@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
@@ -0,0 +1,1144 @@
1
+ import { createElementBlock as i, openBlock as a, renderSlot as p, defineComponent as u, createVNode as h, withCtx as _, createElementVNode as e, normalizeStyle as k, Fragment as f, createTextVNode as v, ref as w, renderList as g, toDisplayString as r, normalizeClass as x, createBlock as y, unref as C, computed as A, createCommentVNode as I, createStaticVNode as H, watch as T, withDirectives as F, vShow as M } from "vue";
2
+ import { _ as l } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
+ import { m as z, n as N, k as j, D as L, i as G } from "./LandingPageSectionHeader-CSOwusSK.js";
4
+ import { C as E, a as O } from "./CollapseItem-Cw1vcdLu.js";
5
+ import { Icon as S } from "@iconify/vue";
6
+ /* empty css */
7
+ /* empty css */
8
+ import { Tag as U } from "@arco-design/web-vue";
9
+ const W = {}, R = {
10
+ class: "SubTitle"
11
+ };
12
+ function Z(n, t) {
13
+ return a(), i("div", R, [p(n.$slots, "default", {}, void 0, !0)]);
14
+ }
15
+ const B = /* @__PURE__ */ l(W, [["render", Z], ["__scopeId", "data-v-3decf2d4"]]), J = {}, K = {
16
+ class: "Title"
17
+ };
18
+ function Q(n, t) {
19
+ return a(), i("h2", K, [p(n.$slots, "default", {}, void 0, !0)]);
20
+ }
21
+ const q = /* @__PURE__ */ l(J, [["render", Q], ["__scopeId", "data-v-58078aa8"]]), X = {
22
+ class: "BlockHeader"
23
+ }, Y = /* @__PURE__ */ u({
24
+ __name: "LandingPageBlockHeader",
25
+ setup(n) {
26
+ return (t, c) => (a(), i("div", X, [h(q, {
27
+ class: "BlockHeaderTitle"
28
+ }, {
29
+ default: _(() => [p(t.$slots, "title", {}, void 0, !0)]),
30
+ _: 3
31
+ }), h(B, {
32
+ class: "BlockHeaderSubTitle"
33
+ }, {
34
+ default: _(() => [p(t.$slots, "subTitle", {}, void 0, !0)]),
35
+ _: 3
36
+ })]));
37
+ }
38
+ }), ee = /* @__PURE__ */ l(Y, [["__scopeId", "data-v-8d51bb3a"]]), te = {
39
+ class: "BlockLayout"
40
+ }, se = /* @__PURE__ */ u({
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(n) {
53
+ const t = n;
54
+ return (c, o) => (a(), i("section", te, [p(c.$slots, "BlockHeader", {}, void 0, !0), e("div", {
55
+ class: "BlockBody",
56
+ style: k({
57
+ gridTemplateColumns: `repeat(${t.columns}, 1fr)`,
58
+ flexDirection: t.flexDirection
59
+ })
60
+ }, [p(c.$slots, "BlockBody", {}, void 0, !0)], 4)]));
61
+ }
62
+ }), ae = /* @__PURE__ */ l(se, [["__scopeId", "data-v-84ed1aaa"]]), ne = /* @__PURE__ */ u({
63
+ __name: "LandingPageAbout",
64
+ setup(n) {
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, o) => (a(), i(f, null, [h(ae, null, {
103
+ BlockHeader: _(() => [h(ee, null, {
104
+ title: _(() => [...o[0] || (o[0] = [v("核心团队", -1)])]),
105
+ subTitle: _(() => [...o[1] || (o[1] = [v("我们是一个充满激情的小团队。", -1)])]),
106
+ _: 1
107
+ })]),
108
+ BlockBody: _(() => [h(z, {
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
+ }), h(N, {
112
+ "published-team-members": t
113
+ })]),
114
+ _: 1
115
+ }), h(j, {
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
+ }), zs = /* @__PURE__ */ l(ne, [["__scopeId", "data-v-a40e05a5"]]), ie = {
125
+ class: "nav"
126
+ }, oe = {
127
+ class: "section"
128
+ }, ce = ["href"], re = {
129
+ class: "section"
130
+ }, le = ["href"], de = /* @__PURE__ */ u({
131
+ __name: "LandingPageAside",
132
+ setup(n) {
133
+ const t = w([{
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 = w([{
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 (o, s) => (a(), i("nav", ie, [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", oe, [s[0] || (s[0] = e("div", {
172
+ class: "section-title"
173
+ }, "Browse by feature", -1)), e("div", null, [(a(!0), i(f, null, g(t.value, (d) => (a(), i("a", {
174
+ key: d.text,
175
+ class: "link",
176
+ href: d.href
177
+ }, r(d.text), 9, ce))), 128))])]), e("div", re, [s[1] || (s[1] = e("div", {
178
+ class: "section-title"
179
+ }, "Resources", -1)), e("div", null, [(a(!0), i(f, null, g(c.value, (d) => (a(), i("a", {
180
+ key: d.text,
181
+ class: "link",
182
+ href: d.href
183
+ }, r(d.text), 9, le))), 128))])])]));
184
+ }
185
+ }), Ns = /* @__PURE__ */ l(de, [["__scopeId", "data-v-b516bb75"]]), ue = /* @__PURE__ */ u({
186
+ __name: "LandingPageButton",
187
+ props: {
188
+ type: {}
189
+ },
190
+ setup(n) {
191
+ return (t, c) => (a(), i("div", {
192
+ class: x(["heroButton", [n.type === "primary" ? "heroButtonPrimary" : "heroButtonSecondary"]])
193
+ }, [p(t.$slots, "default", {}, void 0, !0)], 2));
194
+ }
195
+ }), _e = /* @__PURE__ */ l(ue, [["__scopeId", "data-v-d26fdf8b"]]), pe = {}, fe = {
196
+ class: "Card"
197
+ };
198
+ function he(n, t) {
199
+ return a(), i("div", fe, [p(n.$slots, "default", {}, void 0, !0)]);
200
+ }
201
+ const D = /* @__PURE__ */ l(pe, [["render", he], ["__scopeId", "data-v-cdb3f77d"]]), ge = /* @__PURE__ */ u({
202
+ __name: "LandingPageContainer",
203
+ props: {
204
+ flexDirection: {
205
+ default: "column"
206
+ },
207
+ gap: {
208
+ default: "80px"
209
+ },
210
+ padding: {
211
+ default: "0px"
212
+ }
213
+ },
214
+ setup(n) {
215
+ const t = n;
216
+ return (c, o) => (a(), i("div", {
217
+ class: "landing-page-container",
218
+ style: k({
219
+ flexDirection: t.flexDirection,
220
+ gap: t.gap,
221
+ padding: t.padding
222
+ })
223
+ }, [p(c.$slots, "default", {}, void 0, !0)], 4));
224
+ }
225
+ }), js = /* @__PURE__ */ l(ge, [["__scopeId", "data-v-4566ee86"]]), me = "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", ve = {
226
+ class: "cta-container"
227
+ }, $e = ["src"], be = {
228
+ class: "cta-content"
229
+ }, ye = {
230
+ class: "cta-title"
231
+ }, ke = {
232
+ class: "cta-description"
233
+ }, Pe = {
234
+ class: "cta-actions"
235
+ }, xe = /* @__PURE__ */ u({
236
+ __name: "LandingPageCta",
237
+ props: {
238
+ title: {
239
+ default: "迫不及待想使用翻译?"
240
+ },
241
+ description: {
242
+ default: "立即开始您的翻译之旅"
243
+ },
244
+ backgroundUrl: {
245
+ default: me
246
+ },
247
+ backgroundSize: {
248
+ default: "120%"
249
+ }
250
+ },
251
+ setup(n) {
252
+ const t = n;
253
+ return (c, o) => (a(), i("div", ve, [e("img", {
254
+ src: t.backgroundUrl,
255
+ class: "cta-background",
256
+ alt: "background",
257
+ style: k({
258
+ width: t.backgroundSize,
259
+ height: t.backgroundSize
260
+ })
261
+ }, null, 12, $e), e("div", be, [e("h1", ye, r(t.title), 1), e("div", ke, r(t.description), 1), e("div", Pe, [p(c.$slots, "actions", {}, void 0, !0)])])]));
262
+ }
263
+ }), Gs = /* @__PURE__ */ l(xe, [["__scopeId", "data-v-4a709ec3"]]), Le = /* @__PURE__ */ u({
264
+ __name: "LandingPageFAQ",
265
+ props: {
266
+ activeKeys: {
267
+ default: () => []
268
+ },
269
+ faqItems: {
270
+ default: () => [{
271
+ question: "你们有免费试用吗?",
272
+ answer: "我们提供1个月的免费试用"
273
+ }, {
274
+ question: "我可以申请退款吗?",
275
+ answer: "不支持退款,但您可以随时取消订阅。取消订阅后将于下一个结算日的次日生效,在此之前您可以使用服务。为了避免被收取下一计费期的费用,请在下一个计费日期前至少 24 小时取消。"
276
+ }, {
277
+ question: "付费会员的配额什么时候会重置?会在月初吗?",
278
+ answer: "配额重置发生在您订阅后一个月,并非基于日历月。例如,如果您在4月15日订阅,您的配额将在5月15日重置。"
279
+ }, {
280
+ question: "从月付费订阅升级至年付费订阅,费用和有效期是如何计算的?",
281
+ answer: "从月度付费升级至年度付费时,会基于您剩余的月度付费价值计算差额。服务期从升级日起至次年同日。"
282
+ }, {
283
+ question: "你们提供技术支持吗?",
284
+ answer: "是的,在付费期间我们提供全天候的技术支持,可以通过电子邮箱和微信联系我们。"
285
+ }, {
286
+ question: "使用期间有什么限制吗?",
287
+ answer: "在使用期间如果发现开发者违反法律法规或在恶意应用程序中使用等任何不当使用行为,包括但不限于共享或出售订阅,都是被禁止的,可能会导致您的账户被终止且不予退款。我们有权终止服务,详情请参阅《付费服务协议》"
288
+ }]
289
+ }
290
+ },
291
+ setup(n) {
292
+ const t = n;
293
+ return (c, o) => (a(), y(E, {
294
+ "active-keys": t.activeKeys
295
+ }, {
296
+ default: _(() => [(a(!0), i(f, null, g(t.faqItems, (s, d) => (a(), y(O, {
297
+ key: d,
298
+ index: d
299
+ }, {
300
+ header: _(() => [v(r(s.question), 1)]),
301
+ default: _(() => [h(L, null, {
302
+ default: _(() => [v(r(s.answer), 1)]),
303
+ _: 2
304
+ }, 1024)]),
305
+ _: 2
306
+ }, 1032, ["index"]))), 128))]),
307
+ _: 1
308
+ }, 8, ["active-keys"]));
309
+ }
310
+ }), Es = /* @__PURE__ */ l(Le, [["__scopeId", "data-v-581e8f75"]]), we = {
311
+ class: "Features"
312
+ }, Ie = {
313
+ class: "feature-title"
314
+ }, Ce = /* @__PURE__ */ u({
315
+ __name: "LandingPageFeatures",
316
+ props: {
317
+ features: {
318
+ default: () => [{
319
+ title: "什么是ShipAny?",
320
+ description: "ShipAny是一个无代码平台,帮助您在几小时内而不是几天内构建和发布AI产品。",
321
+ icon: ""
322
+ }, {
323
+ title: "认证与支付",
324
+ description: "内置认证和Stripe支付处理,开箱即用。",
325
+ icon: ""
326
+ }, {
327
+ title: "数据基础设施",
328
+ description: "为您的AI模型和用户数据提供安全且可扩展的数据库基础设施。",
329
+ icon: ""
330
+ }, {
331
+ title: "实时部署",
332
+ description: "持续部署工作流,确保您的AI创业公司始终保持最新状态。",
333
+ icon: ""
334
+ }, {
335
+ title: "业务分析",
336
+ description: "跟踪用户行为和业务指标,做出明智决策。",
337
+ icon: ""
338
+ }, {
339
+ title: "AI模型集成",
340
+ description: "轻松集成来自OpenAI、Anthropic等的最新AI模型。",
341
+ icon: ""
342
+ }]
343
+ },
344
+ iconColor: {
345
+ default: "rgb(184, 154, 120)"
346
+ },
347
+ iconBorderColor: {
348
+ default: "rgb(184, 154, 120)"
349
+ }
350
+ },
351
+ setup(n) {
352
+ const t = n;
353
+ return (c, o) => (a(), i("div", we, [(a(!0), i(f, null, g(t.features, (s) => (a(), y(D, {
354
+ key: s.title
355
+ }, {
356
+ default: _(() => [e("div", {
357
+ class: "icon-container",
358
+ style: k({
359
+ color: t.iconColor,
360
+ border: `1px solid ${t.iconBorderColor}`
361
+ })
362
+ }, [h(C(S), {
363
+ class: "icon",
364
+ icon: s.icon
365
+ }, null, 8, ["icon"])], 4), e("h3", Ie, r(s.title), 1), h(L, null, {
366
+ default: _(() => [v(r(s.description), 1)]),
367
+ _: 2
368
+ }, 1024)]),
369
+ _: 2
370
+ }, 1024))), 128))]));
371
+ }
372
+ }), Os = /* @__PURE__ */ l(Ce, [["__scopeId", "data-v-1ee2db18"]]), Se = {
373
+ class: "tt-feature-list"
374
+ }, Te = {
375
+ class: "tt-feature-content"
376
+ }, Ae = {
377
+ class: "heading-small"
378
+ }, Be = {
379
+ class: "text-small"
380
+ }, qe = /* @__PURE__ */ u({
381
+ __name: "LandingPageFeatures2",
382
+ props: {
383
+ list: {
384
+ type: Array,
385
+ required: !0
386
+ }
387
+ },
388
+ setup(n) {
389
+ const t = n;
390
+ return (c, o) => (a(), i("div", Se, [(a(!0), i(f, null, g(t.list, (s, d) => (a(), i("div", {
391
+ key: d,
392
+ class: "tt-feature-item centered"
393
+ }, [o[1] || (o[1] = e("div", {
394
+ class: "tt-feature-icon"
395
+ }, [e("img", {
396
+ src: "https://cdn.prod.website-files.com/645a9acecda2e0594fac6126/66cda872417824f6aabdc2ad_check-highlight-badge.svg",
397
+ loading: "lazy",
398
+ class: "feature-media"
399
+ })], -1)), e("div", Te, [e("h3", Ae, r(s.title), 1), e("p", Be, [v(r(s.descriptions) + " ", 1), o[0] || (o[0] = e("br", null, null, -1))])])]))), 128))]));
400
+ }
401
+ }), Us = /* @__PURE__ */ l(qe, [["__scopeId", "data-v-abd3c70a"]]), De = {
402
+ class: "hero"
403
+ }, Ve = {
404
+ class: "heroContent"
405
+ }, He = {
406
+ class: "heroHeading"
407
+ }, Fe = {
408
+ class: "heroTitle"
409
+ }, Me = {
410
+ class: "heroDescription"
411
+ }, ze = {
412
+ class: "heroActions"
413
+ }, Ne = {
414
+ class: "heroImage"
415
+ }, je = /* @__PURE__ */ u({
416
+ __name: "LandingPageHero",
417
+ props: {
418
+ title: {
419
+ type: String,
420
+ default: () => ""
421
+ },
422
+ description: {
423
+ type: String,
424
+ default: () => ""
425
+ },
426
+ heroSource: {
427
+ type: String,
428
+ default: () => ""
429
+ }
430
+ },
431
+ setup(n) {
432
+ const t = n;
433
+ return (c, o) => (a(), i("main", De, [e("div", Ve, [e("div", He, [e("h1", Fe, [p(c.$slots, "title", {}, () => [v(r(t.title), 1)], !0)])]), e("div", Me, [e("div", null, r(t.description), 1)]), e("div", ze, [p(c.$slots, "actions", {}, void 0, !0)])]), e("div", Ne, [p(c.$slots, "heroSource", {}, void 0, !0)])]));
434
+ }
435
+ }), Ws = /* @__PURE__ */ l(je, [["__scopeId", "data-v-38f97a3c"]]), Ge = {
436
+ class: "logos-list"
437
+ }, Ee = /* @__PURE__ */ u({
438
+ __name: "LandingPageLogos",
439
+ props: {
440
+ title: {
441
+ default: "Works with your technologies"
442
+ },
443
+ subTitle: {
444
+ default: ""
445
+ },
446
+ logos: {
447
+ default: () => [{
448
+ name: "simple-icons:react"
449
+ }, {
450
+ name: "simple-icons:svelte"
451
+ }, {
452
+ name: "simple-icons:astro"
453
+ }, {
454
+ name: "simple-icons:css3"
455
+ }, {
456
+ name: "simple-icons:alpinedotjs"
457
+ }, {
458
+ name: "simple-icons:vercel"
459
+ }]
460
+ }
461
+ },
462
+ setup(n) {
463
+ const t = n;
464
+ return (c, o) => (a(), i("div", Ge, [(a(!0), i(f, null, g(t.logos, (s, d) => (a(), y(C(S), {
465
+ key: d,
466
+ icon: s.name,
467
+ class: "logo-icon"
468
+ }, null, 8, ["icon"]))), 128))]));
469
+ }
470
+ }), Rs = /* @__PURE__ */ l(Ee, [["__scopeId", "data-v-1a08e627"]]), Oe = /* @__PURE__ */ u({
471
+ __name: "LandingPagePageContent",
472
+ props: {
473
+ maxWidth: {
474
+ default: "1380px"
475
+ },
476
+ center: {
477
+ type: Boolean,
478
+ default: !0
479
+ },
480
+ padding: {
481
+ default: "0px 0px 40px 0px "
482
+ },
483
+ gap: {
484
+ default: "90px"
485
+ },
486
+ flexDirection: {
487
+ default: "column"
488
+ }
489
+ },
490
+ setup(n) {
491
+ const t = n, c = A(() => ({
492
+ maxWidth: t.maxWidth,
493
+ margin: t.center ? "0 auto" : void 0,
494
+ width: "100%",
495
+ padding: t.padding,
496
+ display: "flex",
497
+ flexDirection: t.flexDirection ?? "column",
498
+ gap: t.gap
499
+ }));
500
+ return (o, s) => (a(), i("div", {
501
+ class: "PageContent",
502
+ style: k(c.value)
503
+ }, [p(o.$slots, "default", {}, void 0, !0)], 4));
504
+ }
505
+ }), Zs = /* @__PURE__ */ l(Oe, [["__scopeId", "data-v-00ec8180"]]), Ue = {
506
+ class: "Tabs"
507
+ }, We = {
508
+ class: "tabs-root"
509
+ }, Re = {
510
+ role: "radiogroup",
511
+ "aria-required": "false",
512
+ dir: "ltr",
513
+ class: "tabs-group",
514
+ tabindex: "0"
515
+ }, Ze = ["id", "aria-checked", "data-state", "value", "tabindex", "onClick"], Je = {
516
+ key: 0,
517
+ "data-state": "checked",
518
+ class: "tabs-radio-icon"
519
+ }, Ke = ["for"], Qe = {
520
+ key: 0,
521
+ class: "tabs-badge"
522
+ }, Xe = /* @__PURE__ */ u({
523
+ __name: "LandingPageTabs",
524
+ props: {
525
+ tabs: {
526
+ type: Array,
527
+ required: !0
528
+ },
529
+ modelValue: {
530
+ type: String,
531
+ required: !0
532
+ }
533
+ },
534
+ emits: ["update:modelValue"],
535
+ setup(n) {
536
+ const t = n;
537
+ return (c, o) => (a(), i("div", Ue, [e("div", We, [e("div", Re, [(a(!0), i(f, null, g(t.tabs, (s) => (a(), i("div", {
538
+ key: s.value,
539
+ class: x(["tabs-item", {
540
+ "tabs-item-active": s.value === n.modelValue
541
+ }])
542
+ }, [e("button", {
543
+ id: s.value,
544
+ type: "button",
545
+ role: "radio",
546
+ "aria-checked": s.value === n.modelValue,
547
+ "data-state": s.value === n.modelValue ? "checked" : "unchecked",
548
+ value: s.value,
549
+ class: "tabs-radio",
550
+ tabindex: s.value === n.modelValue ? 0 : -1,
551
+ onClick: (d) => c.$emit("update:modelValue", s.value)
552
+ }, [s.value === n.modelValue ? (a(), i("span", Je)) : I("", !0)], 8, Ze), e("label", {
553
+ class: "tabs-label",
554
+ for: s.value
555
+ }, [e("span", null, r(s.label), 1), s.badge ? (a(), i("div", Qe, r(s.badge), 1)) : I("", !0)], 8, Ke)], 2))), 128))])])]));
556
+ }
557
+ }), Ye = /* @__PURE__ */ l(Xe, [["__scopeId", "data-v-9eb67a93"]]), et = {
558
+ class: "PriceGroup"
559
+ }, tt = /* @__PURE__ */ u({
560
+ __name: "LandingPagePriceGroup",
561
+ setup(n) {
562
+ const t = w("subscribe-monthly");
563
+ return (c, o) => (a(), i("div", et, [h(Ye, {
564
+ modelValue: t.value,
565
+ "onUpdate:modelValue": o[0] || (o[0] = (s) => t.value = s),
566
+ tabs: [{
567
+ value: "subscribe-monthly",
568
+ label: "按月订阅"
569
+ }, {
570
+ value: "subscribe-yearly",
571
+ label: "按年订阅",
572
+ badge: "节省17%"
573
+ }, {
574
+ value: "pay-as-you-go",
575
+ label: "按需付费"
576
+ }]
577
+ }, null, 8, ["modelValue"]), p(c.$slots, "default", {}, void 0, !0)]));
578
+ }
579
+ }), Js = /* @__PURE__ */ l(tt, [["__scopeId", "data-v-43a35f55"]]), st = {
580
+ class: "PricingCard"
581
+ }, at = {
582
+ class: "title"
583
+ }, nt = {
584
+ class: "titleText"
585
+ }, it = {
586
+ class: "description"
587
+ }, ot = {
588
+ class: "priceAndDiscount"
589
+ }, ct = {
590
+ class: "price"
591
+ }, rt = {
592
+ class: "discount"
593
+ }, lt = {
594
+ style: {
595
+ position: "relative",
596
+ top: "3px"
597
+ }
598
+ }, dt = {
599
+ key: 1,
600
+ class: "priceNotDiscount"
601
+ }, ut = {
602
+ class: "cycle"
603
+ }, _t = {
604
+ class: "features"
605
+ }, pt = /* @__PURE__ */ u({
606
+ __name: "LandingPagePricingCard",
607
+ props: {
608
+ loading: {
609
+ type: Boolean,
610
+ required: !1,
611
+ default: () => !1
612
+ },
613
+ title: {
614
+ type: String,
615
+ required: !0
616
+ },
617
+ description: {
618
+ type: String,
619
+ required: !0
620
+ },
621
+ price: {
622
+ type: Number,
623
+ required: !0
624
+ },
625
+ discount: {
626
+ type: Number,
627
+ required: !1,
628
+ default: () => 99
629
+ },
630
+ unit: {
631
+ type: String,
632
+ required: !0
633
+ },
634
+ cycle: {
635
+ type: String,
636
+ required: !0
637
+ },
638
+ highlight: {
639
+ type: Boolean,
640
+ required: !0
641
+ },
642
+ badge: {
643
+ type: Object,
644
+ required: !0
645
+ },
646
+ button: {
647
+ type: Object,
648
+ required: !0
649
+ },
650
+ orientation: {
651
+ type: String,
652
+ required: !0
653
+ },
654
+ align: {
655
+ type: String,
656
+ required: !0
657
+ },
658
+ features: {
659
+ type: Array,
660
+ required: !0
661
+ }
662
+ },
663
+ emits: ["toPay"],
664
+ setup(n, {
665
+ emit: t
666
+ }) {
667
+ const c = t, o = n;
668
+ function s() {
669
+ c("toPay");
670
+ }
671
+ return (d, P) => (a(), i("div", st, [e("div", null, [e("div", at, [e("span", nt, r(o.title), 1), o.badge.label ? (a(), y(C(U), {
672
+ key: 0,
673
+ color: "arcoblue"
674
+ }, {
675
+ default: _(() => [v(r(o.badge.label), 1)]),
676
+ _: 1
677
+ })) : I("", !0)]), e("div", it, r(o.description), 1)]), e("div", ot, [o.discount !== null ? (a(), i(f, {
678
+ key: 0
679
+ }, [e("span", ct, [e("span", null, r(o.price), 1), e("span", null, r(o.unit), 1)]), e("span", rt, [e("span", lt, r(o.discount), 1), e("span", null, r(o.unit), 1)])], 64)) : (a(), i("span", dt, [e("span", null, r(o.price), 1), e("span", null, r(o.unit), 1)])), e("span", ut, r(o.cycle), 1)]), e("div", _t, [(a(!0), i(f, null, g(o.features, (m, b) => (a(), y(G, {
680
+ key: b,
681
+ description: m.title
682
+ }, null, 8, ["description"]))), 128))]), h(_e, {
683
+ class: "handle",
684
+ type: "primary",
685
+ loading: o.loading,
686
+ disabled: !(o.discount || o.price),
687
+ onClick: s
688
+ }, {
689
+ default: _(() => [v(r(o.button.label), 1)]),
690
+ _: 1
691
+ }, 8, ["loading", "disabled"])]));
692
+ }
693
+ }), Ks = /* @__PURE__ */ l(pt, [["__scopeId", "data-v-0b730439"]]), ft = {}, ht = {
694
+ class: "PricingGrid"
695
+ }, gt = {
696
+ class: "content"
697
+ };
698
+ function mt(n, t) {
699
+ return a(), i("div", ht, [e("div", gt, [p(n.$slots, "default", {}, void 0, !0)])]);
700
+ }
701
+ const Qs = /* @__PURE__ */ l(ft, [["render", mt], ["__scopeId", "data-v-1f26d3ee"]]), vt = {
702
+ class: "sections-container"
703
+ }, $t = {
704
+ class: "container"
705
+ }, bt = {
706
+ class: "image-container"
707
+ }, yt = ["src", "alt"], kt = {
708
+ class: "text-container"
709
+ }, Pt = {
710
+ class: "header"
711
+ }, xt = {
712
+ class: "features-list"
713
+ }, Lt = {
714
+ class: "content"
715
+ }, wt = {
716
+ class: "feature-title"
717
+ }, It = /* @__PURE__ */ u({
718
+ __name: "LandingPageSections",
719
+ props: {
720
+ title: {
721
+ default: "什么是ShipAny"
722
+ },
723
+ subTitle: {
724
+ default: "ShipAny是一个用于构建AI优先创业公司的无代码框架。在几分钟内构建美观、生产就绪的AI应用程序。"
725
+ },
726
+ imageUrl: {
727
+ default: "https://picsum.photos/600/400?random=6"
728
+ },
729
+ imageAlt: {
730
+ default: "ShipAny平台截图"
731
+ },
732
+ features: {
733
+ default: () => [{
734
+ title: "即用型模板",
735
+ description: "从数十个生产就绪的AI模板中选择,快速开始。",
736
+ color: "green",
737
+ iconPath: "M5 13l4 4L19 7"
738
+ }, {
739
+ title: "专业设计",
740
+ description: "由专业人士精心打造的UI组件,遵循最佳实践。",
741
+ color: "blue",
742
+ iconPath: "M13 10V3L4 14h7v7l9-11h-7z"
743
+ }, {
744
+ title: "内置部署",
745
+ description: "几分钟内将您的AI应用程序部署到生产环境。",
746
+ color: "purple",
747
+ 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"
748
+ }]
749
+ },
750
+ reverse: {
751
+ type: Boolean,
752
+ default: !1
753
+ }
754
+ },
755
+ setup(n) {
756
+ const t = n;
757
+ return (c, o) => (a(), i("section", vt, [e("div", $t, [e("div", {
758
+ class: x(["content-wrapper", {
759
+ reverse: t.reverse
760
+ }])
761
+ }, [e("div", bt, [e("img", {
762
+ src: t.imageUrl,
763
+ alt: t.imageAlt,
764
+ class: "image"
765
+ }, null, 8, yt)]), e("div", kt, [e("div", Pt, [h(q, null, {
766
+ default: _(() => [v(r(t.title), 1)]),
767
+ _: 1
768
+ }), h(B, null, {
769
+ default: _(() => [v(r(t.subTitle), 1)]),
770
+ _: 1
771
+ })]), e("div", xt, [(a(!0), i(f, null, g(t.features, (s, d) => (a(), i("div", {
772
+ key: d,
773
+ class: "feature-item"
774
+ }, [e("div", {
775
+ class: x(["icon-container", [`icon-${s.color}`]])
776
+ }, [...o[0] || (o[0] = [e("div", {
777
+ class: "dot"
778
+ }, null, -1)])], 2), e("div", Lt, [e("div", wt, r(s.title), 1), h(L, null, {
779
+ default: _(() => [v(r(s.description), 1)]),
780
+ _: 2
781
+ }, 1024)])]))), 128))])])], 2)])]));
782
+ }
783
+ }), Xs = /* @__PURE__ */ l(It, [["__scopeId", "data-v-ac2b71bb"]]), Ct = {
784
+ class: "Showcase"
785
+ }, St = ["onClick"], Tt = ["src", "alt"], At = {
786
+ class: "card-content"
787
+ }, Bt = {
788
+ class: "card-title"
789
+ }, qt = /* @__PURE__ */ u({
790
+ __name: "LandingPageShowcase",
791
+ props: {
792
+ items: {},
793
+ showControls: {
794
+ type: Boolean,
795
+ default: !0
796
+ },
797
+ columns: {
798
+ default: 4
799
+ },
800
+ cardHeight: {
801
+ default: 160
802
+ },
803
+ objectFit: {
804
+ default: "cover"
805
+ }
806
+ },
807
+ emits: ["cardClick"],
808
+ setup(n, {
809
+ emit: t
810
+ }) {
811
+ const c = n, o = t;
812
+ function s(P) {
813
+ o("cardClick", P);
814
+ }
815
+ const d = A(() => ({
816
+ height: `${c.cardHeight}px`,
817
+ objectFit: c.objectFit
818
+ }));
819
+ return (P, m) => (a(), i("div", Ct, [(a(!0), i(f, null, g(c.items, (b, $) => (a(), i("div", {
820
+ key: $,
821
+ class: "showcase-card",
822
+ onClick: (V) => s(b)
823
+ }, [e("img", {
824
+ src: b.image,
825
+ alt: b.alt,
826
+ style: k(d.value)
827
+ }, null, 12, Tt), e("div", At, [e("div", Bt, r(b.title), 1), h(L, null, {
828
+ default: _(() => [v(r(b.description), 1)]),
829
+ _: 2
830
+ }, 1024)])], 8, St))), 128))]));
831
+ }
832
+ }), Ys = /* @__PURE__ */ l(qt, [["__scopeId", "data-v-381ed6a6"]]), Dt = {
833
+ class: "Stats"
834
+ }, Vt = {
835
+ key: 0,
836
+ class: "stats-label"
837
+ }, Ht = {
838
+ class: "stats-number"
839
+ }, Ft = {
840
+ class: "stats-label"
841
+ }, Mt = /* @__PURE__ */ u({
842
+ __name: "LandingPageStats",
843
+ props: {
844
+ title: {
845
+ default: "用户喜爱ShipAny"
846
+ },
847
+ subTitle: {
848
+ default: "看看我们的客户怎么说"
849
+ },
850
+ stats: {
851
+ default: () => [{
852
+ title: "",
853
+ number: "250+",
854
+ label: "已启动的创业公司"
855
+ }, {
856
+ title: "",
857
+ number: "30+",
858
+ label: "AI模板"
859
+ }, {
860
+ title: "",
861
+ number: "5",
862
+ label: "星级评分"
863
+ }]
864
+ }
865
+ },
866
+ setup(n) {
867
+ const t = n;
868
+ return (c, o) => (a(), i("div", Dt, [(a(!0), i(f, null, g(t.stats, (s, d) => (a(), i("div", {
869
+ key: d,
870
+ class: "stats-item"
871
+ }, [s.title ? (a(), i("div", Vt, r(s.title), 1)) : I("", !0), e("div", Ht, r(s.number), 1), e("div", Ft, r(s.label), 1)]))), 128))]));
872
+ }
873
+ }), ea = /* @__PURE__ */ l(Mt, [["__scopeId", "data-v-7aa9af80"]]), zt = {
874
+ class: "stepNumber"
875
+ }, Nt = {
876
+ class: "count"
877
+ }, jt = {
878
+ class: "stepTitle"
879
+ }, Gt = /* @__PURE__ */ u({
880
+ __name: "LandingPageSteps",
881
+ props: {
882
+ columns: {
883
+ type: Number,
884
+ default: 3
885
+ },
886
+ steps: {
887
+ type: Array,
888
+ default: () => [{
889
+ title: "选择您的项目",
890
+ description: "从我们的AI模板库中选择或使用我们的拖放构建器从头开始。"
891
+ }, {
892
+ title: "构建您的项目",
893
+ description: "使用我们的直观编辑器自定义您的项目。添加您的品牌、内容并配置AI模型。"
894
+ }, {
895
+ title: "部署到生产环境",
896
+ description: "一键将您的AI应用程序部署到我们的全球基础设施并开始服务客户。"
897
+ }]
898
+ }
899
+ },
900
+ setup(n) {
901
+ const t = n;
902
+ return (c, o) => (a(), i("div", {
903
+ class: "Steps",
904
+ style: k({
905
+ gridTemplateColumns: `repeat(${t.columns}, 1fr)`
906
+ // flexDirection: props.flexDirection,
907
+ })
908
+ }, [(a(!0), i(f, null, g(t.steps, (s, d) => (a(), i("div", {
909
+ key: d,
910
+ class: "stepItem"
911
+ }, [e("div", zt, [e("span", Nt, r(d + 1), 1)]), e("h3", jt, r(s.title), 1), h(L, null, {
912
+ default: _(() => [v(r(s.description), 1)]),
913
+ _: 2
914
+ }, 1024)]))), 128))], 4));
915
+ }
916
+ }), ta = /* @__PURE__ */ l(Gt, [["__scopeId", "data-v-1ecd9597"]]), Et = {
917
+ class: "Testimonial"
918
+ }, Ot = {
919
+ class: "user-info"
920
+ }, Ut = {
921
+ class: "user-avatar"
922
+ }, Wt = ["src", "alt"], Rt = {
923
+ class: "user-name"
924
+ }, Zt = {
925
+ class: "user-title"
926
+ }, Jt = /* @__PURE__ */ u({
927
+ __name: "LandingPageTestimonial",
928
+ props: {
929
+ testimonials: {
930
+ default: () => []
931
+ }
932
+ },
933
+ setup(n) {
934
+ const t = n;
935
+ return (c, o) => (a(), i("div", Et, [(a(!0), i(f, null, g(t.testimonials, (s, d) => (a(), y(D, {
936
+ key: d
937
+ }, {
938
+ default: _(() => [e("div", null, [h(L, null, {
939
+ default: _(() => [v(r(`"${s.content}"`), 1)]),
940
+ _: 2
941
+ }, 1024)]), e("div", Ot, [e("span", Ut, [e("img", {
942
+ src: s.avatar,
943
+ alt: s.name
944
+ }, null, 8, Wt)]), e("div", null, [e("div", Rt, r(s.name), 1), e("div", Zt, r(s.title), 1)])])]),
945
+ _: 2
946
+ }, 1024))), 128))]));
947
+ }
948
+ }), sa = /* @__PURE__ */ l(Jt, [["__scopeId", "data-v-bc49d7bc"]]), Kt = ["href"], Qt = /* @__PURE__ */ u({
949
+ __name: "LandingPageTips",
950
+ props: {
951
+ href: {
952
+ type: String,
953
+ default: "/zh"
954
+ },
955
+ text: {
956
+ type: String,
957
+ default: "✨ 免费吉卜力AI艺术!立即注册获得3次免费创作!☝️"
958
+ }
959
+ },
960
+ setup(n) {
961
+ const t = n;
962
+ return (c, o) => (a(), i("a", {
963
+ href: t.href,
964
+ class: "tips-link"
965
+ }, r(t.text), 9, Kt));
966
+ }
967
+ }), aa = /* @__PURE__ */ l(Qt, [["__scopeId", "data-v-f5784dd1"]]), Xt = {}, Yt = {
968
+ class: "sidebar"
969
+ };
970
+ function es(n, t) {
971
+ return a(), i("div", Yt, [...t[0] || (t[0] = [H('<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)])]);
972
+ }
973
+ const na = /* @__PURE__ */ l(Xt, [["render", es], ["__scopeId", "data-v-251905ff"]]), ts = {
974
+ class: "feature-card"
975
+ }, ss = {
976
+ class: "feature-image"
977
+ }, as = ["src", "alt"], ns = {
978
+ class: "feature-title"
979
+ }, is = {
980
+ class: "feature-description"
981
+ }, os = {
982
+ class: "feature-platforms"
983
+ }, cs = /* @__PURE__ */ u({
984
+ __name: "LandingPageFeatureCard",
985
+ props: {
986
+ feature: {}
987
+ },
988
+ setup(n) {
989
+ return (t, c) => (a(), i("div", ts, [e("div", ss, [e("img", {
990
+ src: n.feature.image,
991
+ alt: n.feature.title,
992
+ loading: "lazy",
993
+ decoding: "async"
994
+ }, null, 8, as)]), e("h3", ns, r(n.feature.title), 1), e("p", is, r(n.feature.description), 1), e("div", os, [(a(!0), i(f, null, g(n.feature.platforms, (o) => (a(), y(C(S), {
995
+ key: o.name,
996
+ icon: o.icon,
997
+ class: "platform-icon"
998
+ }, null, 8, ["icon"]))), 128))])]));
999
+ }
1000
+ }), ia = /* @__PURE__ */ l(cs, [["__scopeId", "data-v-474acd19"]]), rs = {
1001
+ class: "feature-section-header"
1002
+ }, ls = {
1003
+ class: "feature-section-title"
1004
+ }, ds = ["innerHTML"], us = /* @__PURE__ */ u({
1005
+ __name: "LandingPageFeatureSectionHeader",
1006
+ props: {
1007
+ title: {},
1008
+ description: {}
1009
+ },
1010
+ setup(n) {
1011
+ return (t, c) => (a(), i("div", rs, [e("h2", ls, r(n.title), 1), e("p", {
1012
+ class: "feature-section-description",
1013
+ innerHTML: n.description
1014
+ }, null, 8, ds)]));
1015
+ }
1016
+ }), oa = /* @__PURE__ */ l(us, [["__scopeId", "data-v-8fe145ad"]]), _s = {}, ps = {
1017
+ class: "features-grid"
1018
+ };
1019
+ function fs(n, t) {
1020
+ return a(), i("div", ps, [p(n.$slots, "default", {}, void 0, !0)]);
1021
+ }
1022
+ const ca = /* @__PURE__ */ l(_s, [["render", fs], ["__scopeId", "data-v-392f636b"]]), hs = {
1023
+ class: "testimonials-container"
1024
+ }, gs = {
1025
+ class: "testimonial-header"
1026
+ }, ms = ["onClick"], vs = {
1027
+ class: "user-avatar"
1028
+ }, $s = ["src", "alt"], bs = {
1029
+ class: "user-info"
1030
+ }, ys = {
1031
+ class: "user-name"
1032
+ }, ks = {
1033
+ class: "user-title"
1034
+ }, Ps = {
1035
+ class: "testimonial-content"
1036
+ }, xs = /* @__PURE__ */ u({
1037
+ __name: "LandingPageTestimonialCard",
1038
+ props: {
1039
+ testimonials: {}
1040
+ },
1041
+ setup(n) {
1042
+ function t(c) {
1043
+ c.link && window.open(c.link, "_blank");
1044
+ }
1045
+ return (c, o) => (a(), i("div", hs, [(a(!0), i(f, null, g(n.testimonials, (s) => (a(), i("div", {
1046
+ key: s.name,
1047
+ class: "testimonial-card"
1048
+ }, [e("div", gs, [e("div", {
1049
+ class: x(["user-link", {
1050
+ "no-link": !s.link
1051
+ }]),
1052
+ onClick: (d) => t(s)
1053
+ }, [e("div", vs, [e("img", {
1054
+ src: s.avatar,
1055
+ alt: s.name,
1056
+ width: "260",
1057
+ height: "260",
1058
+ loading: "lazy",
1059
+ decoding: "async",
1060
+ class: "avatar-image"
1061
+ }, null, 8, $s)]), e("div", bs, [e("span", ys, r(s.name), 1), e("span", ks, r(s.title), 1)])], 10, ms)]), e("p", Ps, r(s.content), 1)]))), 128))]));
1062
+ }
1063
+ }), ra = /* @__PURE__ */ l(xs, [["__scopeId", "data-v-6e10d8a8"]]), Ls = {
1064
+ class: "tabs"
1065
+ }, ws = {
1066
+ class: "tabs-header"
1067
+ }, Is = ["onClick"], Cs = {
1068
+ class: "tab-label"
1069
+ }, Ss = {
1070
+ class: "tabs-content"
1071
+ }, Ts = /* @__PURE__ */ u({
1072
+ __name: "LandingPageSectionTabs",
1073
+ props: {
1074
+ tabs: {},
1075
+ defaultActiveTab: {
1076
+ default: ""
1077
+ },
1078
+ modelValue: {
1079
+ default: ""
1080
+ }
1081
+ },
1082
+ emits: ["update:modelValue", "tabChange"],
1083
+ setup(n, {
1084
+ emit: t
1085
+ }) {
1086
+ var P;
1087
+ const c = n, o = t, s = w(c.modelValue || c.defaultActiveTab || ((P = c.tabs[0]) == null ? void 0 : P.id) || "");
1088
+ function d(m) {
1089
+ s.value = m, o("update:modelValue", m), o("tabChange", m);
1090
+ }
1091
+ return T(() => c.modelValue, (m) => {
1092
+ m && (s.value = m);
1093
+ }), T(() => c.defaultActiveTab, (m) => {
1094
+ m && !c.modelValue && (s.value = m);
1095
+ }), (m, b) => (a(), i("div", Ls, [e("div", ws, [(a(!0), i(f, null, g(n.tabs, ($) => (a(), i("div", {
1096
+ key: $.id,
1097
+ class: x(["tab-item", {
1098
+ active: s.value === $.id
1099
+ }]),
1100
+ onClick: (V) => d($.id)
1101
+ }, [e("span", Cs, r($.label), 1)], 10, Is))), 128))]), e("div", Ss, [(a(!0), i(f, null, g(n.tabs, ($) => F((a(), i("div", {
1102
+ key: $.id,
1103
+ class: "tab-panel"
1104
+ }, [p(m.$slots, $.id, {
1105
+ tab: $
1106
+ }, () => [p(m.$slots, "default", {
1107
+ tab: $
1108
+ }, void 0, !0)], !0)])), [[M, s.value === $.id]])), 128))])]));
1109
+ }
1110
+ }), la = /* @__PURE__ */ l(Ts, [["__scopeId", "data-v-22e880ae"]]);
1111
+ export {
1112
+ la as A,
1113
+ _e as B,
1114
+ D as C,
1115
+ zs as L,
1116
+ B as S,
1117
+ Ye as T,
1118
+ Ns as a,
1119
+ ee as b,
1120
+ ae as c,
1121
+ js as d,
1122
+ Gs as e,
1123
+ Es as f,
1124
+ Os as g,
1125
+ Us as h,
1126
+ Ws as i,
1127
+ Rs as j,
1128
+ Zs as k,
1129
+ Js as l,
1130
+ Ks as m,
1131
+ Qs as n,
1132
+ Xs as o,
1133
+ Ys as p,
1134
+ ea as q,
1135
+ ta as r,
1136
+ sa as s,
1137
+ aa as t,
1138
+ q as u,
1139
+ na as v,
1140
+ ia as w,
1141
+ oa as x,
1142
+ ca as y,
1143
+ ra as z
1144
+ };