@windrun-huaiin/third-ui 6.3.0 → 7.0.0

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 (76) hide show
  1. package/package.json +15 -46
  2. package/dist/chunk-52YUUCKV.js +0 -3190
  3. package/dist/chunk-52YUUCKV.js.map +0 -1
  4. package/dist/chunk-6MM7HLNX.js +0 -226
  5. package/dist/chunk-6MM7HLNX.js.map +0 -1
  6. package/dist/chunk-6PW67OXW.js +0 -967
  7. package/dist/chunk-6PW67OXW.js.map +0 -1
  8. package/dist/chunk-BZLOMDT7.mjs +0 -90
  9. package/dist/chunk-BZLOMDT7.mjs.map +0 -1
  10. package/dist/chunk-C3MW5ZUN.mjs +0 -967
  11. package/dist/chunk-C3MW5ZUN.mjs.map +0 -1
  12. package/dist/chunk-FOMCGWDM.mjs +0 -17
  13. package/dist/chunk-FOMCGWDM.mjs.map +0 -1
  14. package/dist/chunk-ICXWQI2S.mjs +0 -126
  15. package/dist/chunk-ICXWQI2S.mjs.map +0 -1
  16. package/dist/chunk-IOUCFIRG.mjs +0 -3190
  17. package/dist/chunk-IOUCFIRG.mjs.map +0 -1
  18. package/dist/chunk-J26XFRUS.js +0 -17
  19. package/dist/chunk-J26XFRUS.js.map +0 -1
  20. package/dist/chunk-LZLW5WCC.js +0 -90
  21. package/dist/chunk-LZLW5WCC.js.map +0 -1
  22. package/dist/chunk-NV3UQTCW.mjs +0 -226
  23. package/dist/chunk-NV3UQTCW.mjs.map +0 -1
  24. package/dist/chunk-TBXDOQXP.js +0 -126
  25. package/dist/chunk-TBXDOQXP.js.map +0 -1
  26. package/dist/chunk-TKLIIDBR.mjs +0 -2804
  27. package/dist/chunk-TKLIIDBR.mjs.map +0 -1
  28. package/dist/chunk-W7K5Y2WR.js +0 -2804
  29. package/dist/chunk-W7K5Y2WR.js.map +0 -1
  30. package/dist/clerk/index.d.mts +0 -15
  31. package/dist/clerk/index.d.ts +0 -15
  32. package/dist/clerk/index.js +0 -47
  33. package/dist/clerk/index.js.map +0 -1
  34. package/dist/clerk/index.mjs +0 -47
  35. package/dist/clerk/index.mjs.map +0 -1
  36. package/dist/clerk/server.d.mts +0 -28
  37. package/dist/clerk/server.d.ts +0 -28
  38. package/dist/clerk/server.js +0 -179
  39. package/dist/clerk/server.js.map +0 -1
  40. package/dist/clerk/server.mjs +0 -179
  41. package/dist/clerk/server.mjs.map +0 -1
  42. package/dist/cta.css +0 -16
  43. package/dist/fuma/mdx/index.d.mts +0 -133
  44. package/dist/fuma/mdx/index.d.ts +0 -133
  45. package/dist/fuma/mdx/index.js +0 -40
  46. package/dist/fuma/mdx/index.js.map +0 -1
  47. package/dist/fuma/mdx/index.mjs +0 -40
  48. package/dist/fuma/mdx/index.mjs.map +0 -1
  49. package/dist/fuma/server.d.mts +0 -77
  50. package/dist/fuma/server.d.ts +0 -77
  51. package/dist/fuma/server.js +0 -27041
  52. package/dist/fuma/server.js.map +0 -1
  53. package/dist/fuma/server.mjs +0 -27041
  54. package/dist/fuma/server.mjs.map +0 -1
  55. package/dist/fuma.css +0 -106
  56. package/dist/lib/server.d.mts +0 -4670
  57. package/dist/lib/server.d.ts +0 -4670
  58. package/dist/lib/server.js +0 -144
  59. package/dist/lib/server.js.map +0 -1
  60. package/dist/lib/server.mjs +0 -144
  61. package/dist/lib/server.mjs.map +0 -1
  62. package/dist/main/index.d.mts +0 -198
  63. package/dist/main/index.d.ts +0 -198
  64. package/dist/main/index.js +0 -32
  65. package/dist/main/index.js.map +0 -1
  66. package/dist/main/index.mjs +0 -32
  67. package/dist/main/index.mjs.map +0 -1
  68. package/dist/main/server.d.mts +0 -64
  69. package/dist/main/server.d.ts +0 -64
  70. package/dist/main/server.js +0 -602
  71. package/dist/main/server.js.map +0 -1
  72. package/dist/main/server.mjs +0 -602
  73. package/dist/main/server.mjs.map +0 -1
  74. package/dist/third-ui.css +0 -66
  75. package/dist/toc-base-BC7kXpDU.d.mts +0 -15
  76. package/dist/toc-base-BC7kXpDU.d.ts +0 -15
@@ -1,602 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }/* eslint-disable */
2
-
3
-
4
-
5
-
6
-
7
- var _chunk52YUUCKVjs = require('../chunk-52YUUCKV.js');
8
-
9
-
10
- var _chunkTBXDOQXPjs = require('../chunk-TBXDOQXP.js');
11
-
12
-
13
- var _chunk6MM7HLNXjs = require('../chunk-6MM7HLNX.js');
14
-
15
-
16
-
17
- var _chunkW7K5Y2WRjs = require('../chunk-W7K5Y2WR.js');
18
-
19
-
20
- var _chunkLZLW5WCCjs = require('../chunk-LZLW5WCC.js');
21
-
22
- // src/main/gallery.tsx
23
- var _server = require('next-intl/server');
24
- var _image = require('next/image'); var _image2 = _interopRequireDefault(_image);
25
- var _jsxruntime = require('react/jsx-runtime');
26
- function Gallery(_0) {
27
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({ locale, sectionClassName, button }) {
28
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "gallery" });
29
- const galleryItems = t.raw("prompts");
30
- const data = {
31
- titleL: t("titleL"),
32
- eyesOn: t("eyesOn"),
33
- titleR: t("titleR"),
34
- description: t("description"),
35
- items: galleryItems.map((item, index) => ({
36
- id: `gallery-item-${index}`,
37
- url: item.url,
38
- altMsg: item.altMsg
39
- })),
40
- defaultImgUrl: t.raw("defaultImgUrl"),
41
- downloadPrefix: t("downloadPrefix")
42
- };
43
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "gallery", className: _chunk6MM7HLNXjs.cn.call(void 0, "container mx-auto px-4 py-20 scroll-mt-20", sectionClassName), children: [
44
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-6", children: [
45
- data.titleL,
46
- " ",
47
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-500", children: data.eyesOn }),
48
- " ",
49
- data.titleR
50
- ] }),
51
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center max-w-2xl mx-auto mb-16", children: data.description }),
52
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", children: data.items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
53
- "div",
54
- {
55
- className: "group relative overflow-hidden rounded-xl",
56
- "data-gallery-item": item.id,
57
- "data-gallery-index": index,
58
- children: [
59
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60
- _image2.default,
61
- {
62
- src: item.url,
63
- alt: item.altMsg,
64
- width: 600,
65
- height: 600,
66
- className: "w-full h-80 object-cover transition duration-300 group-hover:scale-105",
67
- "data-gallery-image": item.id
68
- }
69
- ),
70
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-end justify-end p-4 opacity-0 group-hover:opacity-100 transition duration-300", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
71
- "button",
72
- {
73
- className: "p-2 rounded-full bg-black/50 hover:bg-black/70 text-white/80 hover:text-white transition-all duration-300",
74
- "data-gallery-download": item.id,
75
- "aria-label": `Download ${item.altMsg}`,
76
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "h-5 w-5 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) })
77
- }
78
- ) })
79
- ]
80
- },
81
- item.id
82
- )) }),
83
- button && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-center mt-12", children: button }),
84
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk52YUUCKVjs.GalleryInteractive, { data })
85
- ] });
86
- });
87
- }
88
-
89
- // src/main/usage.tsx
90
-
91
-
92
- function Usage(_0) {
93
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
94
- locale,
95
- sectionClassName
96
- }) {
97
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "usage" });
98
- const steps = t.raw("steps");
99
- const data = {
100
- title: t("title"),
101
- eyesOn: t("eyesOn"),
102
- description: _chunk52YUUCKVjs.richText.call(void 0, t, "description"),
103
- steps: steps.map((step, index) => ({
104
- id: `usage-step-${index}`,
105
- title: step.title,
106
- description: _chunk52YUUCKVjs.richText.call(void 0, t, `steps.${index}.description`),
107
- iconKey: step.iconKey,
108
- stepNumber: index + 1
109
- }))
110
- };
111
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "usage", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
112
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
113
- data.title,
114
- " ",
115
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-500", children: data.eyesOn })
116
- ] }),
117
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-base md:text-lg mx-auto whitespace-nowrap", children: data.description }),
118
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-gray-50 dark:bg-gray-800/60 border border-gray-200 dark:border-gray-700 rounded-2xl p-8 md:p-12 shadow-sm dark:shadow-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.steps.map((step) => {
119
- const Icon = _chunkW7K5Y2WRjs.getGlobalIcon.call(void 0, step.iconKey);
120
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-usage-step": step.id, className: "flex items-start", children: [
121
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "w-8 h-8 text-purple-500" }) }),
122
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
123
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: `${step.stepNumber}. ${step.title}` }),
124
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-gray-700 dark:text-gray-300", children: step.description })
125
- ] })
126
- ] }, step.id);
127
- }) }) })
128
- ] });
129
- });
130
- }
131
-
132
- // src/main/features.tsx
133
-
134
-
135
- function Features(_0) {
136
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
137
- locale,
138
- sectionClassName
139
- }) {
140
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "features" });
141
- const featureItems = t.raw("items");
142
- const data = {
143
- title: t("title"),
144
- eyesOn: t("eyesOn"),
145
- description: _chunk52YUUCKVjs.richText.call(void 0, t, "description"),
146
- items: featureItems.map((feature, index) => ({
147
- id: `feature-item-${index}`,
148
- title: feature.title,
149
- description: _chunk52YUUCKVjs.richText.call(void 0, t, `items.${index}.description`),
150
- iconKey: feature.iconKey
151
- }))
152
- };
153
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "features", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-10 mx-16 md:mx-32 scroll-mt-18", sectionClassName), children: [
154
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
155
- data.title,
156
- " ",
157
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-500", children: data.eyesOn })
158
- ] }),
159
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-base md:text-lg mx-auto whitespace-nowrap", children: data.description }),
160
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.items.map((feature) => {
161
- const Icon = _chunkW7K5Y2WRjs.getGlobalIcon.call(void 0, feature.iconKey);
162
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
163
- "div",
164
- {
165
- "data-feature-id": feature.id,
166
- className: "bg-white dark:bg-gray-800/60 p-8 rounded-xl border border-gray-200 dark:border-gray-700 hover:border-purple-300 dark:hover:border-purple-500/50 transition shadow-sm dark:shadow-none",
167
- children: [
168
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-4xl mb-4 flex items-center justify-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "w-8 h-8" }) }),
169
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100", children: feature.title }),
170
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-gray-700 dark:text-gray-300", children: feature.description })
171
- ]
172
- },
173
- feature.id
174
- );
175
- }) })
176
- ] });
177
- });
178
- }
179
-
180
- // src/main/tips.tsx
181
-
182
-
183
- function Tips(_0) {
184
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
185
- locale,
186
- sectionClassName
187
- }) {
188
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "tips" });
189
- const sections = t.raw("sections");
190
- const processedSections = sections.map((section, index) => ({
191
- id: `tip-section-${index}`,
192
- title: section.title,
193
- description: _chunk52YUUCKVjs.richText.call(void 0, t, `sections.${index}.description`)
194
- }));
195
- const midPoint = Math.ceil(processedSections.length / 2);
196
- const leftColumn = processedSections.slice(0, midPoint);
197
- const rightColumn = processedSections.slice(midPoint);
198
- const data = {
199
- title: t("title"),
200
- eyesOn: t("eyesOn"),
201
- leftColumn,
202
- rightColumn
203
- };
204
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "tips", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
205
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-16", children: [
206
- data.title,
207
- " ",
208
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-500", children: data.eyesOn })
209
- ] }),
210
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-2 gap-12 bg-gray-50 dark:bg-gray-800/60 border border-gray-200 dark:border-gray-700 rounded-2xl p-8 md:p-12 shadow-sm dark:shadow-none", children: [data.leftColumn, data.rightColumn].map((column, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-8", children: column.map((tip) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-tip-id": tip.id, className: "space-y-4", children: [
211
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-2xl font-semibold", children: tip.title }),
212
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "", children: tip.description })
213
- ] }, tip.id)) }, colIndex)) })
214
- ] });
215
- });
216
- }
217
-
218
- // src/main/faq.tsx
219
-
220
-
221
- function FAQ(_0) {
222
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
223
- locale,
224
- sectionClassName
225
- }) {
226
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "faq" });
227
- const rawItems = t.raw("items");
228
- const data = {
229
- title: t("title"),
230
- description: _chunk52YUUCKVjs.richText.call(void 0, t, "description"),
231
- items: rawItems.map((item, index) => ({
232
- id: `faq-item-${index}`,
233
- question: item.question,
234
- answer: _chunk52YUUCKVjs.richText.call(void 0, t, `items.${index}.answer`)
235
- }))
236
- };
237
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "faq", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
238
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: data.title }),
239
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-base md:text-lg mx-auto", children: data.description }),
240
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: data.items.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
241
- "div",
242
- {
243
- "data-faq-id": item.id,
244
- className: "bg-white dark:bg-gray-800/60 p-6 rounded-xl border border-gray-200 dark:border-gray-700 hover:border-purple-300 dark:hover:border-purple-500/50 transition shadow-sm dark:shadow-none",
245
- children: [
246
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
247
- "button",
248
- {
249
- className: "w-full flex items-center justify-between text-left focus:outline-none",
250
- "data-faq-toggle": item.id,
251
- "aria-expanded": "false",
252
- children: [
253
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: item.question }),
254
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
255
- "svg",
256
- {
257
- className: "w-6 h-6 text-gray-400 ml-2 transition-transform duration-200",
258
- "data-faq-icon": item.id,
259
- fill: "none",
260
- stroke: "currentColor",
261
- viewBox: "0 0 24 24",
262
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
263
- }
264
- )
265
- ]
266
- }
267
- ),
268
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
269
- "div",
270
- {
271
- className: "mt-4 text-gray-700 dark:text-gray-300 text-base hidden",
272
- "data-faq-content": item.id,
273
- children: item.answer
274
- }
275
- )
276
- ]
277
- },
278
- item.id
279
- )) }),
280
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk52YUUCKVjs.FAQInteractive, { data })
281
- ] });
282
- });
283
- }
284
-
285
- // src/main/seo-content.tsx
286
-
287
-
288
- function SeoContent(_0) {
289
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
290
- locale,
291
- sectionClassName
292
- }) {
293
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "seoContent" });
294
- const rawSections = t.raw("sections");
295
- const data = {
296
- title: t("title"),
297
- eyesOn: t("eyesOn"),
298
- description: t("description"),
299
- intro: _chunk52YUUCKVjs.richText.call(void 0, t, "intro"),
300
- sections: rawSections.map((section, index) => ({
301
- id: `seo-section-${index}`,
302
- title: section.title,
303
- content: _chunk52YUUCKVjs.richText.call(void 0, t, `sections.${index}.content`)
304
- })),
305
- conclusion: _chunk52YUUCKVjs.richText.call(void 0, t, "conclusion")
306
- };
307
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "seo", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
308
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-8", children: [
309
- data.title,
310
- " ",
311
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-500", children: data.eyesOn })
312
- ] }),
313
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-lg", children: data.description }),
314
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-gray-50 dark:bg-gray-800/60 border border-gray-200 dark:border-gray-700 rounded-2xl p-8 md:p-12 shadow-sm dark:shadow-none", children: [
315
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-10", children: [
316
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-gray-600 dark:text-gray-400 text-lg", children: data.intro }),
317
- data.sections.map((section) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-seo-section": section.id, children: [
318
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: section.title }),
319
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-gray-700 dark:text-gray-300", children: section.content })
320
- ] }, section.id))
321
- ] }),
322
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-10 text-gray-600 dark:text-gray-400 text-lg", children: data.conclusion })
323
- ] })
324
- ] });
325
- });
326
- }
327
-
328
- // src/main/cta.tsx
329
-
330
-
331
- function CTA(_0) {
332
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
333
- locale,
334
- sectionClassName
335
- }) {
336
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "cta" });
337
- const data = {
338
- title: t("title"),
339
- eyesOn: t("eyesOn"),
340
- description1: _chunk52YUUCKVjs.richText.call(void 0, t, "description1"),
341
- description2: t("description2"),
342
- button: t("button"),
343
- url: t("url")
344
- };
345
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "section", { id: "cta", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-16 py-20 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "\n bg-gradient-to-r from-[#f7f8fa] via-[#e0c3fc] to-[#b2fefa]\n dark:bg-gradient-to-r dark:from-[#2d0b4e] dark:via-[#6a3fa0] dark:to-[#3a185a]\n rounded-2xl p-12 text-center\n bg-[length:200%_auto] animate-cta-gradient-wave\n ", children: [
346
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: [
347
- data.title,
348
- " ",
349
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-400", children: data.eyesOn }),
350
- "?"
351
- ] }),
352
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-2xl mx-auto mb-8", children: [
353
- data.description1,
354
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "br", {}),
355
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-purple-400", children: data.description2 })
356
- ] }),
357
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
358
- _chunkTBXDOQXPjs.GradientButton,
359
- {
360
- title: data.button,
361
- href: data.url,
362
- align: "center"
363
- }
364
- )
365
- ] }) });
366
- });
367
- }
368
-
369
- // src/main/footer.tsx
370
-
371
- var _link = require('next/link'); var _link2 = _interopRequireDefault(_link);
372
-
373
- function Footer(_0) {
374
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({ locale }) {
375
- const tFooter = yield _server.getTranslations.call(void 0, { locale, namespace: "footer" });
376
- const data = {
377
- terms: tFooter("terms", { defaultValue: "Terms of Service" }),
378
- privacy: tFooter("privacy", { defaultValue: "Privacy Policy" }),
379
- contactUs: tFooter("contactUs", { defaultValue: "Contact Us" }),
380
- email: tFooter("email"),
381
- company: tFooter("company"),
382
- copyright: tFooter("copyright", { year: (/* @__PURE__ */ new Date()).getFullYear(), name: tFooter("company") })
383
- };
384
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 w-full mx-auto border-t-purple-700/80 border-t-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "footer", { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col items-center justify-center px-4 py-8 space-y-3", children: [
385
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-center space-x-6 text-xs", children: [
386
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _link2.default, { href: `/${locale}/legal/terms`, className: "flex items-center space-x-1 hover:underline", children: [
387
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7K5Y2WRjs.globalLucideIcons.ReceiptText, { className: "h-3.5 w-3.5" }),
388
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: data.terms })
389
- ] }),
390
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _link2.default, { href: `/${locale}/legal/privacy`, className: "flex items-center space-x-1 hover:underline", children: [
391
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7K5Y2WRjs.globalLucideIcons.ShieldUser, { className: "h-3.5 w-3.5" }),
392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: data.privacy })
393
- ] }),
394
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative group", children: [
395
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute left-2/3 -translate-x-1/4 bottom-full mb-1 hidden group-hover:block bg-zinc-600 text-white text-xs rounded px-3 py-1 whitespace-nowrap z-10 shadow-lg", children: data.email }),
396
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
397
- "a",
398
- {
399
- href: `mailto:${data.email}`,
400
- className: "flex items-center space-x-1 underline cursor-pointer px-2",
401
- children: [
402
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7K5Y2WRjs.globalLucideIcons.Mail, { className: "h-3.5 w-3.5" }),
403
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: data.contactUs })
404
- ]
405
- }
406
- )
407
- ] })
408
- ] }),
409
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-xs text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: data.copyright }) })
410
- ] }) }) });
411
- });
412
- }
413
-
414
- // src/main/price-plan.tsx
415
-
416
-
417
- function PricePlan(_0) {
418
- return _chunkLZLW5WCCjs.__async.call(void 0, this, arguments, function* ({
419
- locale,
420
- currency = "$",
421
- pricePlanConfig,
422
- sectionClassName
423
- }) {
424
- var _a, _b;
425
- const t = yield _server.getTranslations.call(void 0, { locale, namespace: "pricePlan" });
426
- const data = {
427
- title: t("title"),
428
- subtitle: t("subtitle"),
429
- billingSwitch: t.raw("billingSwitch"),
430
- plans: t.raw("plans"),
431
- currency,
432
- pricePlanConfig
433
- };
434
- const billingOptions = data.pricePlanConfig.billingOptions;
435
- const prices = data.pricePlanConfig.prices;
436
- const minPlanFeaturesCount = data.pricePlanConfig.minPlanFeaturesCount;
437
- const defaultBilling = billingOptions.find((opt) => opt.key === data.billingSwitch.defaultKey) || billingOptions[0];
438
- const defaultBillingDisplay = data.billingSwitch.options.find((opt) => opt.key === data.billingSwitch.defaultKey) || data.billingSwitch.options[0];
439
- const maxFeaturesCount = Math.max(
440
- ...data.plans.map((plan) => {
441
- var _a2;
442
- return ((_a2 = plan.features) == null ? void 0 : _a2.length) || 0;
443
- }),
444
- minPlanFeaturesCount || 0
445
- );
446
- const getFeatureRows = (plan) => {
447
- const features = plan.features || [];
448
- const filled = [...features];
449
- while (filled.length < maxFeaturesCount) filled.push(null);
450
- return filled;
451
- };
452
- function renderPrice(plan, billingKey = data.billingSwitch.defaultKey) {
453
- const priceValue = prices[plan.key];
454
- const currentBilling = billingOptions.find((opt) => opt.key === billingKey) || defaultBilling;
455
- const currentBillingDisplay = data.billingSwitch.options.find((opt) => opt.key === billingKey) || defaultBillingDisplay;
456
- const billingSubTitle = (currentBillingDisplay == null ? void 0 : currentBillingDisplay.subTitle) || "";
457
- if (typeof priceValue !== "number" || isNaN(priceValue)) {
458
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
459
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-end gap-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: priceValue }) }),
460
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk6MM7HLNXjs.cn.call(void 0, "text-xs text-gray-700 dark:text-gray-300 font-medium", plan.showBillingSubTitle === false && "opacity-0 select-none"), "data-price-subtitle": plan.key, children: plan.showBillingSubTitle === false ? "" : billingSubTitle }) })
461
- ] });
462
- }
463
- const originValue = Number(priceValue);
464
- const discount = currentBilling.discount;
465
- const hasDiscount = discount !== 0;
466
- const saleValue = originValue * (1 - discount);
467
- const formatPrice = (v) => Number(v.toFixed(2)).toString();
468
- const unit = currentBillingDisplay.unit || "";
469
- let discountText = "";
470
- if (hasDiscount && currentBillingDisplay.discountText) {
471
- discountText = currentBillingDisplay.discountText.replace("{percent}", String(Math.round(Math.abs(discount) * 100)));
472
- }
473
- const showNaN = saleValue < 0;
474
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
475
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end gap-2", children: [
476
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: [
477
- data.currency,
478
- showNaN ? "NaN" : hasDiscount ? formatPrice(saleValue) : formatPrice(originValue)
479
- ] }),
480
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-lg text-gray-700 dark:text-gray-300 font-medium mb-1", "data-price-unit": plan.key, children: unit })
481
- ] }),
482
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: [
483
- hasDiscount && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
484
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-base text-gray-400 line-through", "data-price-original": plan.key, children: [
485
- data.currency,
486
- showNaN ? "NaN" : formatPrice(originValue)
487
- ] }),
488
- discountText && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "px-2 py-0.5 text-xs rounded bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200 font-semibold align-middle", "data-price-discount": plan.key, children: discountText })
489
- ] }),
490
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk6MM7HLNXjs.cn.call(void 0, "text-xs text-gray-700 dark:text-gray-300 font-medium", plan.showBillingSubTitle === false && "opacity-0 select-none"), "data-price-subtitle": plan.key, children: plan.showBillingSubTitle === false ? "" : billingSubTitle })
491
- ] })
492
- ] });
493
- }
494
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: "pricing", className: _chunk6MM7HLNXjs.cn.call(void 0, "px-4 py-10 md:px-16 md:py-16 mx-auto max-w-7xl scroll-mt-10", sectionClassName), children: [
495
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-3xl md:text-4xl font-bold text-center mb-3", children: data.title }),
496
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-gray-600 dark:text-gray-400 mb-8 text-base md:text-lg mx-auto", children: data.subtitle }),
497
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center", children: [
498
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center relative mb-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded-full p-1", "data-billing-switch": true, children: [
499
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
500
- "button",
501
- {
502
- className: _chunk6MM7HLNXjs.cn.call(void 0,
503
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
504
- data.billingSwitch.defaultKey === "monthly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 rounded-full shadow-sm" : "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
505
- ),
506
- "data-billing-button": "monthly",
507
- type: "button",
508
- children: ((_a = data.billingSwitch.options.find((opt) => opt.key === "monthly")) == null ? void 0 : _a.name) || "Monthly"
509
- }
510
- ),
511
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
512
- "button",
513
- {
514
- className: _chunk6MM7HLNXjs.cn.call(void 0,
515
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
516
- data.billingSwitch.defaultKey === "yearly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 rounded-full shadow-sm" : "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
517
- ),
518
- "data-billing-button": "yearly",
519
- type: "button",
520
- children: ((_b = data.billingSwitch.options.find((opt) => opt.key === "yearly")) == null ? void 0 : _b.name) || "Yearly"
521
- }
522
- )
523
- ] }) }),
524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 flex items-center justify-center mb-3", "data-discount-info": true, children: (() => {
525
- const opt = data.billingSwitch.options.find((opt2) => opt2.key === data.billingSwitch.defaultKey);
526
- const bOpt = billingOptions.find((opt2) => opt2.key === data.billingSwitch.defaultKey);
527
- if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return null;
528
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "px-2 py-1 text-xs rounded bg-yellow-100 text-yellow-800 font-semibold align-middle text-center inline-flex items-center justify-center whitespace-nowrap", children: opt.discountText.replace(
529
- "{percent}",
530
- String(Math.round(Math.abs(bOpt.discount) * 100))
531
- ) });
532
- })() })
533
- ] }),
534
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: data.plans.map((plan, _idx) => {
535
- var _a2, _b2, _c;
536
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
537
- "div",
538
- {
539
- "data-price-plan": plan.key,
540
- className: _chunk6MM7HLNXjs.cn.call(void 0,
541
- "flex flex-col bg-white dark:bg-gray-800/60 rounded-2xl border border-gray-300 dark:border-[#7c3aed40] transition p-8 h-full shadow-sm dark:shadow-none",
542
- "hover:border-2 hover:border-purple-500",
543
- "focus-within:border-2 focus-within:border-purple-500"
544
- ),
545
- style: { minHeight: maxFeaturesCount * 100 },
546
- children: [
547
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 mb-2", children: [
548
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: plan.title }),
549
- plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "px-2 py-0.5 text-xs rounded bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200 font-semibold align-middle", children: tag }, i))
550
- ] }),
551
- renderPrice(plan),
552
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex-1 mb-6 mt-4", children: getFeatureRows(plan).map((feature, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "flex items-center gap-2 mb-2 min-h-[28px]", "data-feature-item": `${plan.key}-${i}`, children: [
553
- feature ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center justify-center w-5 h-5 rounded-full bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-200 mr-1", children: feature.icon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: feature.icon }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-bold", children: "\u2713" }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center justify-center w-5 h-5 rounded-full mr-1", children: "\xA0" }),
554
- feature && feature.tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "px-1 py-0.5 text-[6px] rounded bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 font-semibold align-middle", children: feature.tag }),
555
- feature ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative group cursor-pointer text-sm text-gray-800 dark:text-gray-200", children: [
556
- feature.description,
557
- feature.tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
558
- "span",
559
- {
560
- className: "ml-1 align-middle inline-flex",
561
- "data-tooltip-trigger": `${plan.key}-${i}`,
562
- "data-tooltip-content": feature.tooltip,
563
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) })
564
- }
565
- )
566
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "\xA0" })
567
- ] }, i)) }),
568
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
569
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
570
- "button",
571
- {
572
- className: _chunk6MM7HLNXjs.cn.call(void 0,
573
- "w-full py-2 mt-auto text-white text-base font-bold shadow-lg hover:shadow-xl transition-all duration-300 rounded-full",
574
- ((_a2 = plan.button) == null ? void 0 : _a2.disabled) ? "bg-gray-400 cursor-not-allowed" : "bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 dark:hover:to-pink-700"
575
- ),
576
- disabled: (_b2 = plan.button) == null ? void 0 : _b2.disabled,
577
- type: "button",
578
- "data-plan-button": plan.key,
579
- children: ((_c = plan.button) == null ? void 0 : _c.text) || "--"
580
- }
581
- )
582
- ]
583
- },
584
- plan.key
585
- );
586
- }) }),
587
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk52YUUCKVjs.PricePlanInteractive, { data })
588
- ] });
589
- });
590
- }
591
-
592
-
593
-
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
- exports.CTA = CTA; exports.FAQ = FAQ; exports.Features = Features; exports.Footer = Footer; exports.Gallery = Gallery; exports.PricePlan = PricePlan; exports.SeoContent = SeoContent; exports.Tips = Tips; exports.Usage = Usage;
602
- //# sourceMappingURL=server.js.map