@windrun-huaiin/third-ui 6.2.0 → 6.2.1

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.
@@ -104,121 +104,7 @@ function cn(...inputs) {
104
104
 
105
105
  // src/main/gallery.tsx
106
106
  var import_image = __toESM(require("next/image"));
107
-
108
- // src/main/gallery-interactive.tsx
109
- var import_react = require("react");
110
- function GalleryInteractive({ data }) {
111
- const [imageErrors, setImageErrors] = (0, import_react.useState)(/* @__PURE__ */ new Set());
112
- const [downloadingItems, setDownloadingItems] = (0, import_react.useState)(/* @__PURE__ */ new Set());
113
- const cdnProxyUrl = process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL;
114
- (0, import_react.useEffect)(() => {
115
- data.items.forEach((item, index) => {
116
- const downloadButton = document.querySelector(`[data-gallery-download="${item.id}"]`);
117
- const imageElement = document.querySelector(`[data-gallery-image="${item.id}"]`);
118
- if (downloadButton) {
119
- const handleDownload = () => __async(null, null, function* () {
120
- var _a;
121
- if (downloadingItems.has(item.id)) {
122
- return;
123
- }
124
- setDownloadingItems((prev) => new Set(prev).add(item.id));
125
- try {
126
- if (!cdnProxyUrl) {
127
- throw new Error("CDN proxy URL not configured");
128
- }
129
- const originalUrl = new URL(item.url);
130
- const filename = originalUrl.pathname.substring(1);
131
- const proxyUrl = `${cdnProxyUrl}/${encodeURIComponent(filename)}`;
132
- const urlExtension = (_a = item.url.split(".").pop()) == null ? void 0 : _a.toLowerCase();
133
- let extension = ".webp";
134
- if (urlExtension && ["jpg", "jpeg", "png", "gif", "webp", "svg"].includes(urlExtension)) {
135
- extension = `.${urlExtension}`;
136
- }
137
- const response = yield fetch(proxyUrl);
138
- if (!response.ok) {
139
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
140
- }
141
- const blob = yield response.blob();
142
- const blobUrl = URL.createObjectURL(blob);
143
- const a = document.createElement("a");
144
- a.href = blobUrl;
145
- a.download = `${data.downloadPrefix}-${index + 1}${extension}`;
146
- a.style.display = "none";
147
- document.body.appendChild(a);
148
- a.click();
149
- setTimeout(() => {
150
- document.body.removeChild(a);
151
- URL.revokeObjectURL(blobUrl);
152
- }, 100);
153
- } catch (error) {
154
- console.error("Download failed:", error);
155
- } finally {
156
- setDownloadingItems((prev) => {
157
- const newSet = new Set(prev);
158
- newSet.delete(item.id);
159
- return newSet;
160
- });
161
- }
162
- });
163
- downloadButton.addEventListener("click", handleDownload);
164
- }
165
- if (imageElement) {
166
- const handleImageError = () => {
167
- setImageErrors((prev) => new Set(prev).add(item.id));
168
- imageElement.src = data.defaultImgUrl;
169
- };
170
- imageElement.addEventListener("error", handleImageError);
171
- }
172
- });
173
- const updateDownloadStates = () => {
174
- data.items.forEach((item) => {
175
- const downloadButton = document.querySelector(`[data-gallery-download="${item.id}"]`);
176
- if (downloadButton) {
177
- const isDownloading = downloadingItems.has(item.id);
178
- if (isDownloading) {
179
- downloadButton.disabled = true;
180
- downloadButton.classList.add("bg-black/30", "text-white/50");
181
- downloadButton.classList.remove("bg-black/50", "hover:bg-black/70", "text-white/80", "hover:text-white");
182
- downloadButton.innerHTML = `
183
- <svg class="h-5 w-5 text-white animate-spin" fill="none" viewBox="0 0 24 24">
184
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
185
- <path class="opacity-75" fill="currentColor" 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"></path>
186
- </svg>
187
- `;
188
- } else {
189
- downloadButton.disabled = false;
190
- downloadButton.classList.remove("bg-black/30", "text-white/50");
191
- downloadButton.classList.add("bg-black/50", "hover:bg-black/70", "text-white/80", "hover:text-white");
192
- downloadButton.innerHTML = `
193
- <svg class="h-5 w-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
194
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="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" />
195
- </svg>
196
- `;
197
- }
198
- }
199
- });
200
- };
201
- updateDownloadStates();
202
- return () => {
203
- data.items.forEach((item) => {
204
- var _a, _b;
205
- const downloadButton = document.querySelector(`[data-gallery-download="${item.id}"]`);
206
- const imageElement = document.querySelector(`[data-gallery-image="${item.id}"]`);
207
- if (downloadButton) {
208
- const newButton = downloadButton.cloneNode(true);
209
- (_a = downloadButton.parentNode) == null ? void 0 : _a.replaceChild(newButton, downloadButton);
210
- }
211
- if (imageElement) {
212
- const newImage = imageElement.cloneNode(true);
213
- (_b = imageElement.parentNode) == null ? void 0 : _b.replaceChild(newImage, imageElement);
214
- }
215
- });
216
- };
217
- }, [data, downloadingItems, imageErrors, cdnProxyUrl]);
218
- return null;
219
- }
220
-
221
- // src/main/gallery.tsx
107
+ var import_main = require("@third-ui/main");
222
108
  var import_jsx_runtime = require("react/jsx-runtime");
223
109
  function Gallery(_0) {
224
110
  return __async(this, arguments, function* ({ locale, sectionClassName, button }) {
@@ -278,7 +164,7 @@ function Gallery(_0) {
278
164
  item.id
279
165
  )) }),
280
166
  button && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-center mt-12", children: button }),
281
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GalleryInteractive, { data })
167
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_main.GalleryInteractive, { data })
282
168
  ] });
283
169
  });
284
170
  }
@@ -287,7 +173,7 @@ function Gallery(_0) {
287
173
  var import_server3 = require("next-intl/server");
288
174
 
289
175
  // ../base-ui/src/assets/github.tsx
290
- var import_react2 = __toESM(require("react"), 1);
176
+ var import_react = __toESM(require("react"), 1);
291
177
 
292
178
  // ../base-ui/src/lib/theme-util.ts
293
179
  var themeIconColor = process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "text-purple-500";
@@ -296,7 +182,7 @@ var themeSvgIconSize = process.env.NEXT_PUBLIC_STYLE_SVG_ICON_SIZE || 18;
296
182
 
297
183
  // ../base-ui/src/assets/github.tsx
298
184
  var import_jsx_runtime2 = require("react/jsx-runtime");
299
- var GitHubIcon = import_react2.default.forwardRef(
185
+ var GitHubIcon = import_react.default.forwardRef(
300
186
  (_a, ref) => {
301
187
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
302
188
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -324,9 +210,9 @@ GitHubIcon.displayName = "GitHub";
324
210
  var github_default = GitHubIcon;
325
211
 
326
212
  // ../base-ui/src/assets/d8.tsx
327
- var import_react3 = __toESM(require("react"), 1);
213
+ var import_react2 = __toESM(require("react"), 1);
328
214
  var import_jsx_runtime3 = require("react/jsx-runtime");
329
- var D8Icon = import_react3.default.forwardRef(
215
+ var D8Icon = import_react2.default.forwardRef(
330
216
  (_a, ref) => {
331
217
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
332
218
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
@@ -369,9 +255,9 @@ D8Icon.displayName = "D8";
369
255
  var d8_default = D8Icon;
370
256
 
371
257
  // ../base-ui/src/assets/clerk.tsx
372
- var import_react4 = __toESM(require("react"), 1);
258
+ var import_react3 = __toESM(require("react"), 1);
373
259
  var import_jsx_runtime4 = require("react/jsx-runtime");
374
- var ClerkIcon = import_react4.default.forwardRef(
260
+ var ClerkIcon = import_react3.default.forwardRef(
375
261
  (_a, ref) => {
376
262
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
377
263
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
@@ -400,9 +286,9 @@ ClerkIcon.displayName = "Clerk";
400
286
  var clerk_default = ClerkIcon;
401
287
 
402
288
  // ../base-ui/src/assets/iterm.tsx
403
- var import_react5 = __toESM(require("react"), 1);
289
+ var import_react4 = __toESM(require("react"), 1);
404
290
  var import_jsx_runtime5 = require("react/jsx-runtime");
405
- var ItermIcon = import_react5.default.forwardRef(
291
+ var ItermIcon = import_react4.default.forwardRef(
406
292
  (_a, ref) => {
407
293
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
408
294
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
@@ -431,9 +317,9 @@ ItermIcon.displayName = "Iterm";
431
317
  var iterm_default = ItermIcon;
432
318
 
433
319
  // ../base-ui/src/assets/markdown.tsx
434
- var import_react6 = __toESM(require("react"), 1);
320
+ var import_react5 = __toESM(require("react"), 1);
435
321
  var import_jsx_runtime6 = require("react/jsx-runtime");
436
- var MarkdownIcon = import_react6.default.forwardRef(
322
+ var MarkdownIcon = import_react5.default.forwardRef(
437
323
  (_a, ref) => {
438
324
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
439
325
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -461,9 +347,9 @@ MarkdownIcon.displayName = "Markdown";
461
347
  var markdown_default = MarkdownIcon;
462
348
 
463
349
  // ../base-ui/src/assets/mdx.tsx
464
- var import_react7 = __toESM(require("react"), 1);
350
+ var import_react6 = __toESM(require("react"), 1);
465
351
  var import_jsx_runtime7 = require("react/jsx-runtime");
466
- var MDXIcon = import_react7.default.forwardRef(
352
+ var MDXIcon = import_react6.default.forwardRef(
467
353
  (_a, ref) => {
468
354
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
469
355
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
@@ -587,9 +473,9 @@ MDXIcon.displayName = "MDX";
587
473
  var mdx_default = MDXIcon;
588
474
 
589
475
  // ../base-ui/src/assets/html.tsx
590
- var import_react8 = __toESM(require("react"), 1);
476
+ var import_react7 = __toESM(require("react"), 1);
591
477
  var import_jsx_runtime8 = require("react/jsx-runtime");
592
- var HtmlIcon = import_react8.default.forwardRef(
478
+ var HtmlIcon = import_react7.default.forwardRef(
593
479
  (_a, ref) => {
594
480
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
595
481
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
@@ -616,9 +502,9 @@ HtmlIcon.displayName = "Html";
616
502
  var html_default = HtmlIcon;
617
503
 
618
504
  // ../base-ui/src/assets/json.tsx
619
- var import_react9 = __toESM(require("react"), 1);
505
+ var import_react8 = __toESM(require("react"), 1);
620
506
  var import_jsx_runtime9 = require("react/jsx-runtime");
621
- var JsonIcon = import_react9.default.forwardRef(
507
+ var JsonIcon = import_react8.default.forwardRef(
622
508
  (_a, ref) => {
623
509
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
624
510
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
@@ -645,9 +531,9 @@ JsonIcon.displayName = "Json";
645
531
  var json_default = JsonIcon;
646
532
 
647
533
  // ../base-ui/src/assets/xml.tsx
648
- var import_react10 = __toESM(require("react"), 1);
534
+ var import_react9 = __toESM(require("react"), 1);
649
535
  var import_jsx_runtime10 = require("react/jsx-runtime");
650
- var XMLIcon = import_react10.default.forwardRef(
536
+ var XMLIcon = import_react9.default.forwardRef(
651
537
  (_a, ref) => {
652
538
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
653
539
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
@@ -675,9 +561,9 @@ XMLIcon.displayName = "XML";
675
561
  var xml_default = XMLIcon;
676
562
 
677
563
  // ../base-ui/src/assets/yaml.tsx
678
- var import_react11 = __toESM(require("react"), 1);
564
+ var import_react10 = __toESM(require("react"), 1);
679
565
  var import_jsx_runtime11 = require("react/jsx-runtime");
680
- var YamlIcon = import_react11.default.forwardRef(
566
+ var YamlIcon = import_react10.default.forwardRef(
681
567
  (_a, ref) => {
682
568
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
683
569
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
@@ -705,9 +591,9 @@ YamlIcon.displayName = "Yaml";
705
591
  var yaml_default = YamlIcon;
706
592
 
707
593
  // ../base-ui/src/assets/csv.tsx
708
- var import_react12 = __toESM(require("react"), 1);
594
+ var import_react11 = __toESM(require("react"), 1);
709
595
  var import_jsx_runtime12 = require("react/jsx-runtime");
710
- var CSVIcon = import_react12.default.forwardRef(
596
+ var CSVIcon = import_react11.default.forwardRef(
711
597
  (_a, ref) => {
712
598
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
713
599
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
@@ -761,9 +647,9 @@ CSVIcon.displayName = "CSV";
761
647
  var csv_default = CSVIcon;
762
648
 
763
649
  // ../base-ui/src/assets/txt.tsx
764
- var import_react13 = __toESM(require("react"), 1);
650
+ var import_react12 = __toESM(require("react"), 1);
765
651
  var import_jsx_runtime13 = require("react/jsx-runtime");
766
- var TxtIcon = import_react13.default.forwardRef(
652
+ var TxtIcon = import_react12.default.forwardRef(
767
653
  (_a, ref) => {
768
654
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
769
655
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
@@ -791,9 +677,9 @@ TxtIcon.displayName = "Txt";
791
677
  var txt_default = TxtIcon;
792
678
 
793
679
  // ../base-ui/src/assets/java.tsx
794
- var import_react14 = __toESM(require("react"), 1);
680
+ var import_react13 = __toESM(require("react"), 1);
795
681
  var import_jsx_runtime14 = require("react/jsx-runtime");
796
- var JavaIcon = import_react14.default.forwardRef(
682
+ var JavaIcon = import_react13.default.forwardRef(
797
683
  (_a, ref) => {
798
684
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
799
685
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
@@ -822,9 +708,9 @@ JavaIcon.displayName = "Java";
822
708
  var java_default = JavaIcon;
823
709
 
824
710
  // ../base-ui/src/assets/sql.tsx
825
- var import_react15 = __toESM(require("react"), 1);
711
+ var import_react14 = __toESM(require("react"), 1);
826
712
  var import_jsx_runtime15 = require("react/jsx-runtime");
827
- var SQLIcon = import_react15.default.forwardRef(
713
+ var SQLIcon = import_react14.default.forwardRef(
828
714
  (_a, ref) => {
829
715
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
830
716
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
@@ -870,9 +756,9 @@ SQLIcon.displayName = "SQL";
870
756
  var sql_default = SQLIcon;
871
757
 
872
758
  // ../base-ui/src/assets/log.tsx
873
- var import_react16 = __toESM(require("react"), 1);
759
+ var import_react15 = __toESM(require("react"), 1);
874
760
  var import_jsx_runtime16 = require("react/jsx-runtime");
875
- var LogIcon = import_react16.default.forwardRef(
761
+ var LogIcon = import_react15.default.forwardRef(
876
762
  (_a, ref) => {
877
763
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
878
764
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
@@ -911,9 +797,9 @@ LogIcon.displayName = "Log";
911
797
  var log_default = LogIcon;
912
798
 
913
799
  // ../base-ui/src/assets/mac.tsx
914
- var import_react17 = __toESM(require("react"), 1);
800
+ var import_react16 = __toESM(require("react"), 1);
915
801
  var import_jsx_runtime17 = require("react/jsx-runtime");
916
- var MACIcon = import_react17.default.forwardRef(
802
+ var MACIcon = import_react16.default.forwardRef(
917
803
  (_a, ref) => {
918
804
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
919
805
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
@@ -942,9 +828,9 @@ MACIcon.displayName = "MAC";
942
828
  var mac_default = MACIcon;
943
829
 
944
830
  // ../base-ui/src/assets/bitcoin.tsx
945
- var import_react18 = __toESM(require("react"), 1);
831
+ var import_react17 = __toESM(require("react"), 1);
946
832
  var import_jsx_runtime18 = require("react/jsx-runtime");
947
- var BitcoinIcon = import_react18.default.forwardRef(
833
+ var BitcoinIcon = import_react17.default.forwardRef(
948
834
  (_a, ref) => {
949
835
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
950
836
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -973,9 +859,9 @@ BitcoinIcon.displayName = "BTC";
973
859
  var bitcoin_default = BitcoinIcon;
974
860
 
975
861
  // ../base-ui/src/assets/css.tsx
976
- var import_react19 = __toESM(require("react"), 1);
862
+ var import_react18 = __toESM(require("react"), 1);
977
863
  var import_jsx_runtime19 = require("react/jsx-runtime");
978
- var CSSIcon = import_react19.default.forwardRef(
864
+ var CSSIcon = import_react18.default.forwardRef(
979
865
  (_a, ref) => {
980
866
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
981
867
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
@@ -1002,9 +888,9 @@ CSSIcon.displayName = "CSS";
1002
888
  var css_default = CSSIcon;
1003
889
 
1004
890
  // ../base-ui/src/assets/mermaid.tsx
1005
- var import_react20 = __toESM(require("react"), 1);
891
+ var import_react19 = __toESM(require("react"), 1);
1006
892
  var import_jsx_runtime20 = require("react/jsx-runtime");
1007
- var MermaidIcon = import_react20.default.forwardRef(
893
+ var MermaidIcon = import_react19.default.forwardRef(
1008
894
  // Memmaid need special size for good view
1009
895
  (_a, ref) => {
1010
896
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
@@ -1034,9 +920,9 @@ MermaidIcon.displayName = "Mmd";
1034
920
  var mermaid_default = MermaidIcon;
1035
921
 
1036
922
  // ../base-ui/src/assets/last-updated.tsx
1037
- var import_react21 = __toESM(require("react"), 1);
923
+ var import_react20 = __toESM(require("react"), 1);
1038
924
  var import_jsx_runtime21 = require("react/jsx-runtime");
1039
- var LastUpdatedIcon = import_react21.default.forwardRef(
925
+ var LastUpdatedIcon = import_react20.default.forwardRef(
1040
926
  (_a, ref) => {
1041
927
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1042
928
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
@@ -1064,9 +950,9 @@ LastUpdatedIcon.displayName = "LastUpdated";
1064
950
  var last_updated_default = LastUpdatedIcon;
1065
951
 
1066
952
  // ../base-ui/src/assets/snippets.tsx
1067
- var import_react22 = __toESM(require("react"), 1);
953
+ var import_react21 = __toESM(require("react"), 1);
1068
954
  var import_jsx_runtime22 = require("react/jsx-runtime");
1069
- var SnippetsIcon = import_react22.default.forwardRef(
955
+ var SnippetsIcon = import_react21.default.forwardRef(
1070
956
  (_a, ref) => {
1071
957
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1072
958
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
@@ -1093,9 +979,9 @@ SnippetsIcon.displayName = "Snippets";
1093
979
  var snippets_default = SnippetsIcon;
1094
980
 
1095
981
  // ../base-ui/src/assets/test.tsx
1096
- var import_react23 = __toESM(require("react"), 1);
982
+ var import_react22 = __toESM(require("react"), 1);
1097
983
  var import_jsx_runtime23 = require("react/jsx-runtime");
1098
- var TestIcon = import_react23.default.forwardRef(
984
+ var TestIcon = import_react22.default.forwardRef(
1099
985
  (_a, ref) => {
1100
986
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1101
987
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
@@ -1123,9 +1009,9 @@ TestIcon.displayName = "Test";
1123
1009
  var test_default = TestIcon;
1124
1010
 
1125
1011
  // ../base-ui/src/assets/diff.tsx
1126
- var import_react24 = __toESM(require("react"), 1);
1012
+ var import_react23 = __toESM(require("react"), 1);
1127
1013
  var import_jsx_runtime24 = require("react/jsx-runtime");
1128
- var DiffIcon = import_react24.default.forwardRef(
1014
+ var DiffIcon = import_react23.default.forwardRef(
1129
1015
  (_a, ref) => {
1130
1016
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1131
1017
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
@@ -1155,9 +1041,9 @@ DiffIcon.displayName = "Diff";
1155
1041
  var diff_default = DiffIcon;
1156
1042
 
1157
1043
  // ../base-ui/src/assets/dpa.tsx
1158
- var import_react25 = __toESM(require("react"), 1);
1044
+ var import_react24 = __toESM(require("react"), 1);
1159
1045
  var import_jsx_runtime25 = require("react/jsx-runtime");
1160
- var DPAIcon = import_react25.default.forwardRef(
1046
+ var DPAIcon = import_react24.default.forwardRef(
1161
1047
  (_a, ref) => {
1162
1048
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1163
1049
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
@@ -1184,9 +1070,9 @@ DPAIcon.displayName = "DPA";
1184
1070
  var dpa_default = DPAIcon;
1185
1071
 
1186
1072
  // ../base-ui/src/assets/subp.tsx
1187
- var import_react26 = __toESM(require("react"), 1);
1073
+ var import_react25 = __toESM(require("react"), 1);
1188
1074
  var import_jsx_runtime26 = require("react/jsx-runtime");
1189
- var SubPIcon = import_react26.default.forwardRef(
1075
+ var SubPIcon = import_react25.default.forwardRef(
1190
1076
  (_a, ref) => {
1191
1077
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1192
1078
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
@@ -1215,9 +1101,9 @@ SubPIcon.displayName = "SubP";
1215
1101
  var subp_default = SubPIcon;
1216
1102
 
1217
1103
  // ../base-ui/src/assets/t3p.tsx
1218
- var import_react27 = __toESM(require("react"), 1);
1104
+ var import_react26 = __toESM(require("react"), 1);
1219
1105
  var import_jsx_runtime27 = require("react/jsx-runtime");
1220
- var T3PIcon = import_react27.default.forwardRef(
1106
+ var T3PIcon = import_react26.default.forwardRef(
1221
1107
  (_a, ref) => {
1222
1108
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1223
1109
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
@@ -1244,9 +1130,9 @@ T3PIcon.displayName = "T3P";
1244
1130
  var t3p_default = T3PIcon;
1245
1131
 
1246
1132
  // ../base-ui/src/assets/http.tsx
1247
- var import_react28 = __toESM(require("react"), 1);
1133
+ var import_react27 = __toESM(require("react"), 1);
1248
1134
  var import_jsx_runtime28 = require("react/jsx-runtime");
1249
- var HttpIcon = import_react28.default.forwardRef(
1135
+ var HttpIcon = import_react27.default.forwardRef(
1250
1136
  (_a, ref) => {
1251
1137
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1252
1138
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
@@ -1274,9 +1160,9 @@ HttpIcon.displayName = "Http";
1274
1160
  var http_default = HttpIcon;
1275
1161
 
1276
1162
  // ../base-ui/src/assets/scheme.tsx
1277
- var import_react29 = __toESM(require("react"), 1);
1163
+ var import_react28 = __toESM(require("react"), 1);
1278
1164
  var import_jsx_runtime29 = require("react/jsx-runtime");
1279
- var SchemeIcon = import_react29.default.forwardRef(
1165
+ var SchemeIcon = import_react28.default.forwardRef(
1280
1166
  (_a, ref) => {
1281
1167
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1282
1168
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
@@ -1303,9 +1189,9 @@ SchemeIcon.displayName = "Scheme";
1303
1189
  var scheme_default = SchemeIcon;
1304
1190
 
1305
1191
  // ../base-ui/src/assets/faq.tsx
1306
- var import_react30 = __toESM(require("react"), 1);
1192
+ var import_react29 = __toESM(require("react"), 1);
1307
1193
  var import_jsx_runtime30 = require("react/jsx-runtime");
1308
- var FAQIcon = import_react30.default.forwardRef(
1194
+ var FAQIcon = import_react29.default.forwardRef(
1309
1195
  (_a, ref) => {
1310
1196
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1311
1197
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
@@ -1334,9 +1220,9 @@ FAQIcon.displayName = "FAQ";
1334
1220
  var faq_default = FAQIcon;
1335
1221
 
1336
1222
  // ../base-ui/src/assets/faqb.tsx
1337
- var import_react31 = __toESM(require("react"), 1);
1223
+ var import_react30 = __toESM(require("react"), 1);
1338
1224
  var import_jsx_runtime31 = require("react/jsx-runtime");
1339
- var FAQBIcon = import_react31.default.forwardRef(
1225
+ var FAQBIcon = import_react30.default.forwardRef(
1340
1226
  (_a, ref) => {
1341
1227
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1342
1228
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
@@ -1372,9 +1258,9 @@ FAQBIcon.displayName = "FAQB";
1372
1258
  var faqb_default = FAQBIcon;
1373
1259
 
1374
1260
  // ../base-ui/src/assets/faqs.tsx
1375
- var import_react32 = __toESM(require("react"), 1);
1261
+ var import_react31 = __toESM(require("react"), 1);
1376
1262
  var import_jsx_runtime32 = require("react/jsx-runtime");
1377
- var FAQSIcon = import_react32.default.forwardRef(
1263
+ var FAQSIcon = import_react31.default.forwardRef(
1378
1264
  (_a, ref) => {
1379
1265
  var _b = _a, { color = "currentColor", className } = _b, props = __objRest(_b, ["color", "className"]);
1380
1266
  return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
@@ -1562,7 +1448,7 @@ __export(limited_lucide_icons_exports, {
1562
1448
  });
1563
1449
 
1564
1450
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/createLucideIcon.js
1565
- var import_react34 = require("react");
1451
+ var import_react33 = require("react");
1566
1452
 
1567
1453
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/shared/src/utils.js
1568
1454
  var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
@@ -1586,7 +1472,7 @@ var hasA11yProp = (props) => {
1586
1472
  };
1587
1473
 
1588
1474
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/Icon.js
1589
- var import_react33 = require("react");
1475
+ var import_react32 = require("react");
1590
1476
 
1591
1477
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/defaultAttributes.js
1592
1478
  var defaultAttributes = {
@@ -1602,7 +1488,7 @@ var defaultAttributes = {
1602
1488
  };
1603
1489
 
1604
1490
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/Icon.js
1605
- var Icon = (0, import_react33.forwardRef)(
1491
+ var Icon = (0, import_react32.forwardRef)(
1606
1492
  (_a, ref) => {
1607
1493
  var _b = _a, {
1608
1494
  color = "currentColor",
@@ -1621,7 +1507,7 @@ var Icon = (0, import_react33.forwardRef)(
1621
1507
  "children",
1622
1508
  "iconNode"
1623
1509
  ]);
1624
- return (0, import_react33.createElement)(
1510
+ return (0, import_react32.createElement)(
1625
1511
  "svg",
1626
1512
  __spreadValues(__spreadValues(__spreadProps(__spreadValues({
1627
1513
  ref
@@ -1633,7 +1519,7 @@ var Icon = (0, import_react33.forwardRef)(
1633
1519
  className: mergeClasses("lucide", className)
1634
1520
  }), !children && !hasA11yProp(rest) && { "aria-hidden": "true" }), rest),
1635
1521
  [
1636
- ...iconNode.map(([tag, attrs]) => (0, import_react33.createElement)(tag, attrs)),
1522
+ ...iconNode.map(([tag, attrs]) => (0, import_react32.createElement)(tag, attrs)),
1637
1523
  ...Array.isArray(children) ? children : [children]
1638
1524
  ]
1639
1525
  );
@@ -1642,10 +1528,10 @@ var Icon = (0, import_react33.forwardRef)(
1642
1528
 
1643
1529
  // ../../node_modules/.pnpm/lucide-react@0.525.0_react@19.1.0/node_modules/lucide-react/dist/esm/createLucideIcon.js
1644
1530
  var createLucideIcon = (iconName, iconNode) => {
1645
- const Component2 = (0, import_react34.forwardRef)(
1531
+ const Component2 = (0, import_react33.forwardRef)(
1646
1532
  (_a, ref) => {
1647
1533
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1648
- return (0, import_react34.createElement)(Icon, __spreadValues({
1534
+ return (0, import_react33.createElement)(Icon, __spreadValues({
1649
1535
  ref,
1650
1536
  iconNode,
1651
1537
  className: mergeClasses(
@@ -2872,7 +2758,7 @@ var __iconNode111 = [
2872
2758
  var Zap = createLucideIcon("zap", __iconNode111);
2873
2759
 
2874
2760
  // ../base-ui/src/components/global-icon.tsx
2875
- var import_react35 = __toESM(require("react"), 1);
2761
+ var import_react34 = __toESM(require("react"), 1);
2876
2762
  var import_jsx_runtime33 = require("react/jsx-runtime");
2877
2763
  var tempStyledLimitedIcons = {};
2878
2764
  for (const iconNameKey in limited_lucide_icons_exports) {
@@ -2942,44 +2828,19 @@ function getGlobalIcon(iconKey, createElement3) {
2942
2828
  }
2943
2829
  const FallbackIcon = globalLucideIcons[DEFAULT_FALLBACK_ICON];
2944
2830
  if (createElement3) {
2945
- return import_react35.default.createElement(FallbackIcon);
2831
+ return import_react34.default.createElement(FallbackIcon);
2946
2832
  }
2947
2833
  return FallbackIcon;
2948
2834
  }
2949
2835
  if (createElement3) {
2950
- return import_react35.default.createElement(Icon2);
2836
+ return import_react34.default.createElement(Icon2);
2951
2837
  }
2952
2838
  return Icon2;
2953
2839
  }
2954
2840
 
2955
- // src/main/rich-text-expert.tsx
2956
- var import_jsx_runtime34 = require("react/jsx-runtime");
2957
- var defaultTagRenderers = {
2958
- // text Stong
2959
- strong: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("strong", { children: chunks }),
2960
- // text Emphasis
2961
- em: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("em", { children: chunks }),
2962
- // text Underline
2963
- u: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("u", { children: chunks }),
2964
- // text Mark
2965
- mark: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("mark", { className: "bg-purple-300 dark:bg-purple-500 text-neutral-800 dark:text-neutral-300 px-1 rounded", children: chunks }),
2966
- // text Delete
2967
- del: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("del", { children: chunks }),
2968
- // text Subscript
2969
- sub: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("sub", { children: chunks }),
2970
- // text Superscript
2971
- sup: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("sup", { children: chunks })
2972
- };
2973
- function createRichTextRenderer(customRenderers) {
2974
- const renderers = __spreadValues(__spreadValues({}, defaultTagRenderers), customRenderers);
2975
- return function richText2(t, key) {
2976
- return t.rich(key, renderers);
2977
- };
2978
- }
2979
- var richText = createRichTextRenderer();
2980
-
2981
2841
  // src/main/usage.tsx
2982
- var import_jsx_runtime35 = require("react/jsx-runtime");
2842
+ var import_rich_text_expert = require("@third-ui/main/rich-text-expert");
2843
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2983
2844
  function Usage(_0) {
2984
2845
  return __async(this, arguments, function* ({
2985
2846
  locale,
@@ -2990,29 +2851,29 @@ function Usage(_0) {
2990
2851
  const data = {
2991
2852
  title: t("title"),
2992
2853
  eyesOn: t("eyesOn"),
2993
- description: richText(t, "description"),
2854
+ description: (0, import_rich_text_expert.richText)(t, "description"),
2994
2855
  steps: steps.map((step, index) => ({
2995
2856
  id: `usage-step-${index}`,
2996
2857
  title: step.title,
2997
- description: richText(t, `steps.${index}.description`),
2858
+ description: (0, import_rich_text_expert.richText)(t, `steps.${index}.description`),
2998
2859
  iconKey: step.iconKey,
2999
2860
  stepNumber: index + 1
3000
2861
  }))
3001
2862
  };
3002
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("section", { id: "usage", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
3003
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
2863
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("section", { id: "usage", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
2864
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
3004
2865
  data.title,
3005
2866
  " ",
3006
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
2867
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
3007
2868
  ] }),
3008
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("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 }),
3009
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("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__ */ (0, import_jsx_runtime35.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.steps.map((step) => {
2869
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("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 }),
2870
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("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__ */ (0, import_jsx_runtime34.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.steps.map((step) => {
3010
2871
  const Icon2 = getGlobalIcon(step.iconKey);
3011
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { "data-usage-step": step.id, className: "flex items-start", children: [
3012
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex-shrink-0 mr-4", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon2, { className: "w-8 h-8 text-purple-500" }) }),
3013
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
3014
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: `${step.stepNumber}. ${step.title}` }),
3015
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: step.description })
2872
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { "data-usage-step": step.id, className: "flex items-start", children: [
2873
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex-shrink-0 mr-4", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon2, { className: "w-8 h-8 text-purple-500" }) }),
2874
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { children: [
2875
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: `${step.stepNumber}. ${step.title}` }),
2876
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: step.description })
3016
2877
  ] })
3017
2878
  ] }, step.id);
3018
2879
  }) }) })
@@ -3022,7 +2883,8 @@ function Usage(_0) {
3022
2883
 
3023
2884
  // src/main/features.tsx
3024
2885
  var import_server4 = require("next-intl/server");
3025
- var import_jsx_runtime36 = require("react/jsx-runtime");
2886
+ var import_rich_text_expert2 = require("@third-ui/main/rich-text-expert");
2887
+ var import_jsx_runtime35 = require("react/jsx-runtime");
3026
2888
  function Features(_0) {
3027
2889
  return __async(this, arguments, function* ({
3028
2890
  locale,
@@ -3033,32 +2895,32 @@ function Features(_0) {
3033
2895
  const data = {
3034
2896
  title: t("title"),
3035
2897
  eyesOn: t("eyesOn"),
3036
- description: richText(t, "description"),
2898
+ description: (0, import_rich_text_expert2.richText)(t, "description"),
3037
2899
  items: featureItems.map((feature, index) => ({
3038
2900
  id: `feature-item-${index}`,
3039
2901
  title: feature.title,
3040
- description: richText(t, `items.${index}.description`),
2902
+ description: (0, import_rich_text_expert2.richText)(t, `items.${index}.description`),
3041
2903
  iconKey: feature.iconKey
3042
2904
  }))
3043
2905
  };
3044
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("section", { id: "features", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-18", sectionClassName), children: [
3045
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
2906
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("section", { id: "features", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-18", sectionClassName), children: [
2907
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
3046
2908
  data.title,
3047
2909
  " ",
3048
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
2910
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
3049
2911
  ] }),
3050
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("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 }),
3051
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.items.map((feature) => {
2912
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("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 }),
2913
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: data.items.map((feature) => {
3052
2914
  const Icon2 = getGlobalIcon(feature.iconKey);
3053
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2915
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
3054
2916
  "div",
3055
2917
  {
3056
2918
  "data-feature-id": feature.id,
3057
2919
  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",
3058
2920
  children: [
3059
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "text-4xl mb-4 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon2, { className: "w-8 h-8" }) }),
3060
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100", children: feature.title }),
3061
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: feature.description })
2921
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-4xl mb-4 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon2, { className: "w-8 h-8" }) }),
2922
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100", children: feature.title }),
2923
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: feature.description })
3062
2924
  ]
3063
2925
  },
3064
2926
  feature.id
@@ -3070,7 +2932,8 @@ function Features(_0) {
3070
2932
 
3071
2933
  // src/main/tips.tsx
3072
2934
  var import_server5 = require("next-intl/server");
3073
- var import_jsx_runtime37 = require("react/jsx-runtime");
2935
+ var import_rich_text_expert3 = require("@third-ui/main/rich-text-expert");
2936
+ var import_jsx_runtime36 = require("react/jsx-runtime");
3074
2937
  function Tips(_0) {
3075
2938
  return __async(this, arguments, function* ({
3076
2939
  locale,
@@ -3081,7 +2944,7 @@ function Tips(_0) {
3081
2944
  const processedSections = sections.map((section, index) => ({
3082
2945
  id: `tip-section-${index}`,
3083
2946
  title: section.title,
3084
- description: richText(t, `sections.${index}.description`)
2947
+ description: (0, import_rich_text_expert3.richText)(t, `sections.${index}.description`)
3085
2948
  }));
3086
2949
  const midPoint = Math.ceil(processedSections.length / 2);
3087
2950
  const leftColumn = processedSections.slice(0, midPoint);
@@ -3092,15 +2955,15 @@ function Tips(_0) {
3092
2955
  leftColumn,
3093
2956
  rightColumn
3094
2957
  };
3095
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { id: "tips", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
3096
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-16", children: [
2958
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("section", { id: "tips", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
2959
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-16", children: [
3097
2960
  data.title,
3098
2961
  " ",
3099
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
2962
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
3100
2963
  ] }),
3101
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("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__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-8", children: column.map((tip) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { "data-tip-id": tip.id, className: "space-y-4", children: [
3102
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "text-2xl font-semibold", children: tip.title }),
3103
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "", children: tip.description })
2964
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("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__ */ (0, import_jsx_runtime36.jsx)("div", { className: "space-y-8", children: column.map((tip) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { "data-tip-id": tip.id, className: "space-y-4", children: [
2965
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { className: "text-2xl font-semibold", children: tip.title }),
2966
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "", children: tip.description })
3104
2967
  ] }, tip.id)) }, colIndex)) })
3105
2968
  ] });
3106
2969
  });
@@ -3108,52 +2971,9 @@ function Tips(_0) {
3108
2971
 
3109
2972
  // src/main/faq.tsx
3110
2973
  var import_server6 = require("next-intl/server");
3111
-
3112
- // src/main/faq-interactive.tsx
3113
- var import_react36 = require("react");
3114
- function FAQInteractive({ data }) {
3115
- const [openStates, setOpenStates] = (0, import_react36.useState)({});
3116
- (0, import_react36.useEffect)(() => {
3117
- data.items.forEach((item) => {
3118
- const toggleButton = document.querySelector(`[data-faq-toggle="${item.id}"]`);
3119
- const contentDiv = document.querySelector(`[data-faq-content="${item.id}"]`);
3120
- const iconSvg = document.querySelector(`[data-faq-icon="${item.id}"]`);
3121
- if (toggleButton && contentDiv && iconSvg) {
3122
- const handleClick = () => {
3123
- const isOpen = openStates[item.id] || false;
3124
- const newOpenState = !isOpen;
3125
- setOpenStates((prev) => __spreadProps(__spreadValues({}, prev), {
3126
- [item.id]: newOpenState
3127
- }));
3128
- if (newOpenState) {
3129
- contentDiv.classList.remove("hidden");
3130
- toggleButton.setAttribute("aria-expanded", "true");
3131
- iconSvg.style.transform = "rotate(90deg)";
3132
- } else {
3133
- contentDiv.classList.add("hidden");
3134
- toggleButton.setAttribute("aria-expanded", "false");
3135
- iconSvg.style.transform = "rotate(0deg)";
3136
- }
3137
- };
3138
- toggleButton.addEventListener("click", handleClick);
3139
- }
3140
- });
3141
- return () => {
3142
- data.items.forEach((item) => {
3143
- var _a;
3144
- const toggleButton = document.querySelector(`[data-faq-toggle="${item.id}"]`);
3145
- if (toggleButton) {
3146
- const newButton = toggleButton.cloneNode(true);
3147
- (_a = toggleButton.parentNode) == null ? void 0 : _a.replaceChild(newButton, toggleButton);
3148
- }
3149
- });
3150
- };
3151
- }, [data, openStates]);
3152
- return null;
3153
- }
3154
-
3155
- // src/main/faq.tsx
3156
- var import_jsx_runtime38 = require("react/jsx-runtime");
2974
+ var import_rich_text_expert4 = require("@third-ui/main/rich-text-expert");
2975
+ var import_main2 = require("@third-ui/main");
2976
+ var import_jsx_runtime37 = require("react/jsx-runtime");
3157
2977
  function FAQ(_0) {
3158
2978
  return __async(this, arguments, function* ({
3159
2979
  locale,
@@ -3163,31 +2983,31 @@ function FAQ(_0) {
3163
2983
  const rawItems = t.raw("items");
3164
2984
  const data = {
3165
2985
  title: t("title"),
3166
- description: richText(t, "description"),
2986
+ description: (0, import_rich_text_expert4.richText)(t, "description"),
3167
2987
  items: rawItems.map((item, index) => ({
3168
2988
  id: `faq-item-${index}`,
3169
2989
  question: item.question,
3170
- answer: richText(t, `items.${index}.answer`)
2990
+ answer: (0, import_rich_text_expert4.richText)(t, `items.${index}.answer`)
3171
2991
  }))
3172
2992
  };
3173
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { id: "faq", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
3174
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: data.title }),
3175
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-base md:text-lg mx-auto", children: data.description }),
3176
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6", children: data.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2993
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { id: "faq", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
2994
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: data.title }),
2995
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-base md:text-lg mx-auto", children: data.description }),
2996
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-6", children: data.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3177
2997
  "div",
3178
2998
  {
3179
2999
  "data-faq-id": item.id,
3180
3000
  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",
3181
3001
  children: [
3182
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
3002
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3183
3003
  "button",
3184
3004
  {
3185
3005
  className: "w-full flex items-center justify-between text-left focus:outline-none",
3186
3006
  "data-faq-toggle": item.id,
3187
3007
  "aria-expanded": "false",
3188
3008
  children: [
3189
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: item.question }),
3190
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3009
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: item.question }),
3010
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3191
3011
  "svg",
3192
3012
  {
3193
3013
  className: "w-6 h-6 text-gray-400 ml-2 transition-transform duration-200",
@@ -3195,13 +3015,13 @@ function FAQ(_0) {
3195
3015
  fill: "none",
3196
3016
  stroke: "currentColor",
3197
3017
  viewBox: "0 0 24 24",
3198
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
3018
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
3199
3019
  }
3200
3020
  )
3201
3021
  ]
3202
3022
  }
3203
3023
  ),
3204
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3024
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3205
3025
  "div",
3206
3026
  {
3207
3027
  className: "mt-4 text-gray-700 dark:text-gray-300 text-base hidden",
@@ -3213,14 +3033,15 @@ function FAQ(_0) {
3213
3033
  },
3214
3034
  item.id
3215
3035
  )) }),
3216
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(FAQInteractive, { data })
3036
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_main2.FAQInteractive, { data })
3217
3037
  ] });
3218
3038
  });
3219
3039
  }
3220
3040
 
3221
3041
  // src/main/seo-content.tsx
3222
3042
  var import_server7 = require("next-intl/server");
3223
- var import_jsx_runtime39 = require("react/jsx-runtime");
3043
+ var import_rich_text_expert5 = require("@third-ui/main/rich-text-expert");
3044
+ var import_jsx_runtime38 = require("react/jsx-runtime");
3224
3045
  function SeoContent(_0) {
3225
3046
  return __async(this, arguments, function* ({
3226
3047
  locale,
@@ -3232,30 +3053,30 @@ function SeoContent(_0) {
3232
3053
  title: t("title"),
3233
3054
  eyesOn: t("eyesOn"),
3234
3055
  description: t("description"),
3235
- intro: richText(t, "intro"),
3056
+ intro: (0, import_rich_text_expert5.richText)(t, "intro"),
3236
3057
  sections: rawSections.map((section, index) => ({
3237
3058
  id: `seo-section-${index}`,
3238
3059
  title: section.title,
3239
- content: richText(t, `sections.${index}.content`)
3060
+ content: (0, import_rich_text_expert5.richText)(t, `sections.${index}.content`)
3240
3061
  })),
3241
- conclusion: richText(t, "conclusion")
3062
+ conclusion: (0, import_rich_text_expert5.richText)(t, "conclusion")
3242
3063
  };
3243
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { id: "seo", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
3244
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-8", children: [
3064
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { id: "seo", className: cn("px-16 py-10 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: [
3065
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-8", children: [
3245
3066
  data.title,
3246
3067
  " ",
3247
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
3068
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-purple-500", children: data.eyesOn })
3248
3069
  ] }),
3249
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h3", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-lg", children: data.description }),
3250
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("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: [
3251
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "space-y-10", children: [
3252
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-gray-600 dark:text-gray-400 text-lg", children: data.intro }),
3253
- data.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { "data-seo-section": section.id, children: [
3254
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h2", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: section.title }),
3255
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: section.content })
3070
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h3", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-lg", children: data.description }),
3071
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("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: [
3072
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "space-y-10", children: [
3073
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-gray-600 dark:text-gray-400 text-lg", children: data.intro }),
3074
+ data.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { "data-seo-section": section.id, children: [
3075
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100 flex items-center", children: section.title }),
3076
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: section.content })
3256
3077
  ] }, section.id))
3257
3078
  ] }),
3258
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "mt-10 text-gray-600 dark:text-gray-400 text-lg", children: data.conclusion })
3079
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "mt-10 text-gray-600 dark:text-gray-400 text-lg", children: data.conclusion })
3259
3080
  ] })
3260
3081
  ] });
3261
3082
  });
@@ -3263,306 +3084,9 @@ function SeoContent(_0) {
3263
3084
 
3264
3085
  // src/main/cta.tsx
3265
3086
  var import_server8 = require("next-intl/server");
3266
-
3267
- // ../base-ui/src/ui/button.tsx
3268
- var React35 = __toESM(require("react"), 1);
3269
-
3270
- // ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs
3271
- var React34 = __toESM(require("react"), 1);
3272
-
3273
- // ../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.2_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
3274
- var React33 = __toESM(require("react"), 1);
3275
- function setRef(ref, value) {
3276
- if (typeof ref === "function") {
3277
- return ref(value);
3278
- } else if (ref !== null && ref !== void 0) {
3279
- ref.current = value;
3280
- }
3281
- }
3282
- function composeRefs(...refs) {
3283
- return (node) => {
3284
- let hasCleanup = false;
3285
- const cleanups = refs.map((ref) => {
3286
- const cleanup = setRef(ref, node);
3287
- if (!hasCleanup && typeof cleanup == "function") {
3288
- hasCleanup = true;
3289
- }
3290
- return cleanup;
3291
- });
3292
- if (hasCleanup) {
3293
- return () => {
3294
- for (let i = 0; i < cleanups.length; i++) {
3295
- const cleanup = cleanups[i];
3296
- if (typeof cleanup == "function") {
3297
- cleanup();
3298
- } else {
3299
- setRef(refs[i], null);
3300
- }
3301
- }
3302
- };
3303
- }
3304
- };
3305
- }
3306
-
3307
- // ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs
3308
- var import_jsx_runtime40 = require("react/jsx-runtime");
3309
- // @__NO_SIDE_EFFECTS__
3310
- function createSlot(ownerName) {
3311
- const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
3312
- const Slot2 = React34.forwardRef((props, forwardedRef) => {
3313
- const _a = props, { children } = _a, slotProps = __objRest(_a, ["children"]);
3314
- const childrenArray = React34.Children.toArray(children);
3315
- const slottable = childrenArray.find(isSlottable);
3316
- if (slottable) {
3317
- const newElement = slottable.props.children;
3318
- const newChildren = childrenArray.map((child) => {
3319
- if (child === slottable) {
3320
- if (React34.Children.count(newElement) > 1) return React34.Children.only(null);
3321
- return React34.isValidElement(newElement) ? newElement.props.children : null;
3322
- } else {
3323
- return child;
3324
- }
3325
- });
3326
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SlotClone, __spreadProps(__spreadValues({}, slotProps), { ref: forwardedRef, children: React34.isValidElement(newElement) ? React34.cloneElement(newElement, void 0, newChildren) : null }));
3327
- }
3328
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SlotClone, __spreadProps(__spreadValues({}, slotProps), { ref: forwardedRef, children }));
3329
- });
3330
- Slot2.displayName = `${ownerName}.Slot`;
3331
- return Slot2;
3332
- }
3333
- var Slot = /* @__PURE__ */ createSlot("Slot");
3334
- // @__NO_SIDE_EFFECTS__
3335
- function createSlotClone(ownerName) {
3336
- const SlotClone = React34.forwardRef((props, forwardedRef) => {
3337
- const _a = props, { children } = _a, slotProps = __objRest(_a, ["children"]);
3338
- if (React34.isValidElement(children)) {
3339
- const childrenRef = getElementRef(children);
3340
- const props2 = mergeProps(slotProps, children.props);
3341
- if (children.type !== React34.Fragment) {
3342
- props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
3343
- }
3344
- return React34.cloneElement(children, props2);
3345
- }
3346
- return React34.Children.count(children) > 1 ? React34.Children.only(null) : null;
3347
- });
3348
- SlotClone.displayName = `${ownerName}.SlotClone`;
3349
- return SlotClone;
3350
- }
3351
- var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
3352
- function isSlottable(child) {
3353
- return React34.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
3354
- }
3355
- function mergeProps(slotProps, childProps) {
3356
- const overrideProps = __spreadValues({}, childProps);
3357
- for (const propName in childProps) {
3358
- const slotPropValue = slotProps[propName];
3359
- const childPropValue = childProps[propName];
3360
- const isHandler = /^on[A-Z]/.test(propName);
3361
- if (isHandler) {
3362
- if (slotPropValue && childPropValue) {
3363
- overrideProps[propName] = (...args) => {
3364
- const result = childPropValue(...args);
3365
- slotPropValue(...args);
3366
- return result;
3367
- };
3368
- } else if (slotPropValue) {
3369
- overrideProps[propName] = slotPropValue;
3370
- }
3371
- } else if (propName === "style") {
3372
- overrideProps[propName] = __spreadValues(__spreadValues({}, slotPropValue), childPropValue);
3373
- } else if (propName === "className") {
3374
- overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
3375
- }
3376
- }
3377
- return __spreadValues(__spreadValues({}, slotProps), overrideProps);
3378
- }
3379
- function getElementRef(element) {
3380
- var _a, _b;
3381
- let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
3382
- let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
3383
- if (mayWarn) {
3384
- return element.ref;
3385
- }
3386
- getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
3387
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
3388
- if (mayWarn) {
3389
- return element.props.ref;
3390
- }
3391
- return element.props.ref || element.ref;
3392
- }
3393
-
3394
- // ../base-ui/src/ui/button.tsx
3395
- var import_class_variance_authority = require("class-variance-authority");
3396
- var import_jsx_runtime41 = require("react/jsx-runtime");
3397
- var buttonVariants = (0, import_class_variance_authority.cva)(
3398
- "inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3399
- {
3400
- variants: {
3401
- variant: {
3402
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
3403
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
3404
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
3405
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
3406
- ghost: "hover:bg-accent hover:text-accent-foreground",
3407
- link: "text-primary underline-offset-4 hover:underline"
3408
- },
3409
- size: {
3410
- default: "h-10 px-4 py-2",
3411
- sm: "h-9 rounded-md px-3",
3412
- lg: "h-11 rounded-md px-8",
3413
- icon: "h-10 w-10"
3414
- }
3415
- },
3416
- defaultVariants: {
3417
- variant: "default",
3418
- size: "default"
3419
- }
3420
- }
3421
- );
3422
- var Button = React35.forwardRef(
3423
- (_a, ref) => {
3424
- var _b = _a, { className, variant, size, asChild = false, loading = false, children } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild", "loading", "children"]);
3425
- const Comp = asChild ? Slot : "button";
3426
- if (asChild) {
3427
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3428
- Comp,
3429
- __spreadProps(__spreadValues({
3430
- className: cn(buttonVariants({ variant, size, className })),
3431
- ref,
3432
- disabled: loading || props.disabled
3433
- }, props), {
3434
- children
3435
- })
3436
- );
3437
- }
3438
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
3439
- Comp,
3440
- __spreadProps(__spreadValues({
3441
- className: cn(buttonVariants({ variant, size, className })),
3442
- ref,
3443
- disabled: loading || props.disabled
3444
- }, props), {
3445
- children: [
3446
- children,
3447
- loading && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
3448
- ]
3449
- })
3450
- );
3451
- }
3452
- );
3453
- Button.displayName = "Button";
3454
-
3455
- // src/fuma/mdx/gradient-button.tsx
3456
- var import_link2 = __toESM(require("next/link"));
3457
- var import_react37 = __toESM(require("react"));
3458
- var import_jsx_runtime42 = require("react/jsx-runtime");
3459
- function GradientButton({
3460
- title,
3461
- icon,
3462
- align = "left",
3463
- disabled = false,
3464
- className = "",
3465
- href,
3466
- openInNewTab = true,
3467
- onClick,
3468
- loadingText,
3469
- preventDoubleClick = true
3470
- }) {
3471
- const [isLoading, setIsLoading] = (0, import_react37.useState)(false);
3472
- const actualLoadingText = loadingText || (title == null ? void 0 : title.toString().trim()) || "Loading...";
3473
- const getAlignmentClass = () => {
3474
- switch (align) {
3475
- case "center":
3476
- return "justify-center";
3477
- case "right":
3478
- return "justify-end";
3479
- default:
3480
- return "justify-start";
3481
- }
3482
- };
3483
- const handleClick = (e) => __async(null, null, function* () {
3484
- if (disabled || isLoading) {
3485
- e.preventDefault();
3486
- return;
3487
- }
3488
- if (onClick) {
3489
- e.preventDefault();
3490
- if (preventDoubleClick) {
3491
- setIsLoading(true);
3492
- }
3493
- try {
3494
- yield onClick();
3495
- } catch (error) {
3496
- console.error("GradientButton onClick error:", error);
3497
- } finally {
3498
- if (preventDoubleClick) {
3499
- setIsLoading(false);
3500
- }
3501
- }
3502
- }
3503
- });
3504
- const isDisabled = disabled || isLoading;
3505
- const displayTitle = isLoading ? actualLoadingText : title;
3506
- const displayIcon = isLoading ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(globalLucideIcons.Loader2, { className: "h-4 w-4 text-white animate-spin" }) : icon ? import_react37.default.cloneElement(icon, {
3507
- className: "h-4 w-4 text-white"
3508
- }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(globalLucideIcons.ArrowRight, { className: "h-4 w-4 text-white" });
3509
- const buttonContent = onClick ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
3510
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: displayIcon }),
3511
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-1", children: displayTitle })
3512
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
3513
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: displayTitle }),
3514
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-1", children: displayIcon })
3515
- ] });
3516
- const buttonClassName = `
3517
- bg-gradient-to-r
3518
- from-purple-400 to-pink-500
3519
- hover:from-purple-500 hover:to-pink-600
3520
- dark:from-purple-500 dark:to-pink-600
3521
- dark:hover:from-purple-600 dark:hover:to-pink-700
3522
- text-white text-base font-bold shadow-lg hover:shadow-xl
3523
- transition-all duration-300
3524
- rounded-full
3525
- ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}
3526
- ${className}
3527
- `;
3528
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: `flex flex-col sm:flex-row gap-3 ${getAlignmentClass()}`, children: onClick ? (
3529
- // for click
3530
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3531
- Button,
3532
- {
3533
- size: "lg",
3534
- className: buttonClassName,
3535
- onClick: handleClick,
3536
- disabled: isDisabled,
3537
- children: buttonContent
3538
- }
3539
- )
3540
- ) : (
3541
- // for Link
3542
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3543
- Button,
3544
- {
3545
- asChild: true,
3546
- size: "lg",
3547
- className: buttonClassName,
3548
- disabled: isDisabled,
3549
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3550
- import_link2.default,
3551
- __spreadProps(__spreadValues({
3552
- href: href || "#",
3553
- className: "no-underline hover:no-underline"
3554
- }, openInNewTab ? { target: "_blank", rel: "noopener noreferrer" } : {}), {
3555
- onClick: isDisabled ? (e) => e.preventDefault() : void 0,
3556
- children: buttonContent
3557
- })
3558
- )
3559
- }
3560
- )
3561
- ) });
3562
- }
3563
-
3564
- // src/main/cta.tsx
3565
- var import_jsx_runtime43 = require("react/jsx-runtime");
3087
+ var import_gradient_button = require("@third-ui/fuma/mdx/gradient-button");
3088
+ var import_rich_text_expert6 = require("@third-ui/main/rich-text-expert");
3089
+ var import_jsx_runtime39 = require("react/jsx-runtime");
3566
3090
  function CTA(_0) {
3567
3091
  return __async(this, arguments, function* ({
3568
3092
  locale,
@@ -3572,25 +3096,25 @@ function CTA(_0) {
3572
3096
  const data = {
3573
3097
  title: t("title"),
3574
3098
  eyesOn: t("eyesOn"),
3575
- description1: richText(t, "description1"),
3099
+ description1: (0, import_rich_text_expert6.richText)(t, "description1"),
3576
3100
  description2: t("description2"),
3577
3101
  button: t("button"),
3578
3102
  url: t("url")
3579
3103
  };
3580
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("section", { id: "cta", className: cn("px-16 py-20 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("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: [
3581
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: [
3104
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("section", { id: "cta", className: cn("px-16 py-20 mx-16 md:mx-32 scroll-mt-20", sectionClassName), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("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: [
3105
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: [
3582
3106
  data.title,
3583
3107
  " ",
3584
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-purple-400", children: data.eyesOn }),
3108
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-purple-400", children: data.eyesOn }),
3585
3109
  "?"
3586
3110
  ] }),
3587
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("p", { className: "text-2xl mx-auto mb-8", children: [
3111
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-2xl mx-auto mb-8", children: [
3588
3112
  data.description1,
3589
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("br", {}),
3590
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-purple-400", children: data.description2 })
3113
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("br", {}),
3114
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-purple-400", children: data.description2 })
3591
3115
  ] }),
3592
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3593
- GradientButton,
3116
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3117
+ import_gradient_button.GradientButton,
3594
3118
  {
3595
3119
  title: data.button,
3596
3120
  href: data.url,
@@ -3603,8 +3127,8 @@ function CTA(_0) {
3603
3127
 
3604
3128
  // src/main/footer.tsx
3605
3129
  var import_server9 = require("next-intl/server");
3606
- var import_link3 = __toESM(require("next/link"));
3607
- var import_jsx_runtime44 = require("react/jsx-runtime");
3130
+ var import_link2 = __toESM(require("next/link"));
3131
+ var import_jsx_runtime40 = require("react/jsx-runtime");
3608
3132
  function Footer(_0) {
3609
3133
  return __async(this, arguments, function* ({ locale }) {
3610
3134
  const tFooter = yield (0, import_server9.getTranslations)({ locale, namespace: "footer" });
@@ -3616,243 +3140,40 @@ function Footer(_0) {
3616
3140
  company: tFooter("company"),
3617
3141
  copyright: tFooter("copyright", { year: (/* @__PURE__ */ new Date()).getFullYear(), name: tFooter("company") })
3618
3142
  };
3619
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "mb-10 w-full mx-auto border-t-purple-700/80 border-t-1", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("footer", { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "w-full flex flex-col items-center justify-center px-4 py-8 space-y-3", children: [
3620
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center justify-center space-x-6 text-xs", children: [
3621
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_link3.default, { href: `/${locale}/legal/terms`, className: "flex items-center space-x-1 hover:underline", children: [
3622
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.ReceiptText, { className: "h-3.5 w-3.5" }),
3623
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: data.terms })
3143
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "mb-10 w-full mx-auto border-t-purple-700/80 border-t-1", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("footer", { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "w-full flex flex-col items-center justify-center px-4 py-8 space-y-3", children: [
3144
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center justify-center space-x-6 text-xs", children: [
3145
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_link2.default, { href: `/${locale}/legal/terms`, className: "flex items-center space-x-1 hover:underline", children: [
3146
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(globalLucideIcons.ReceiptText, { className: "h-3.5 w-3.5" }),
3147
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: data.terms })
3624
3148
  ] }),
3625
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_link3.default, { href: `/${locale}/legal/privacy`, className: "flex items-center space-x-1 hover:underline", children: [
3626
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.ShieldUser, { className: "h-3.5 w-3.5" }),
3627
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: data.privacy })
3149
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_link2.default, { href: `/${locale}/legal/privacy`, className: "flex items-center space-x-1 hover:underline", children: [
3150
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(globalLucideIcons.ShieldUser, { className: "h-3.5 w-3.5" }),
3151
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: data.privacy })
3628
3152
  ] }),
3629
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative group", children: [
3630
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("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 }),
3631
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
3153
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "relative group", children: [
3154
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("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 }),
3155
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
3632
3156
  "a",
3633
3157
  {
3634
3158
  href: `mailto:${data.email}`,
3635
3159
  className: "flex items-center space-x-1 underline cursor-pointer px-2",
3636
3160
  children: [
3637
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.Mail, { className: "h-3.5 w-3.5" }),
3638
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: data.contactUs })
3161
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(globalLucideIcons.Mail, { className: "h-3.5 w-3.5" }),
3162
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: data.contactUs })
3639
3163
  ]
3640
3164
  }
3641
3165
  )
3642
3166
  ] })
3643
3167
  ] }),
3644
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "text-xs text-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: data.copyright }) })
3168
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "text-xs text-center", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: data.copyright }) })
3645
3169
  ] }) }) });
3646
3170
  });
3647
3171
  }
3648
3172
 
3649
3173
  // src/main/price-plan.tsx
3650
3174
  var import_server10 = require("next-intl/server");
3651
-
3652
- // src/main/price-plan-interactive.tsx
3653
- var import_react38 = require("react");
3654
- var import_navigation = require("next/navigation");
3655
- var import_jsx_runtime45 = require("react/jsx-runtime");
3656
- function PricePlanInteractive({ data }) {
3657
- const [billingKey, setBillingKey] = (0, import_react38.useState)(data.billingSwitch.defaultKey);
3658
- const [tooltip, setTooltip] = (0, import_react38.useState)({ show: false, content: "", x: 0, y: 0 });
3659
- const router = (0, import_navigation.useRouter)();
3660
- (0, import_react38.useEffect)(() => {
3661
- const monthlyButton = document.querySelector('[data-billing-button="monthly"]');
3662
- const yearlyButton = document.querySelector('[data-billing-button="yearly"]');
3663
- const handleBillingSwitch = (newBillingKey) => {
3664
- setBillingKey(newBillingKey);
3665
- updatePrices(newBillingKey);
3666
- updateDiscountInfo(newBillingKey);
3667
- updateButtonStyles(newBillingKey);
3668
- };
3669
- if (monthlyButton) {
3670
- monthlyButton.addEventListener("click", () => handleBillingSwitch("monthly"));
3671
- }
3672
- if (yearlyButton) {
3673
- yearlyButton.addEventListener("click", () => handleBillingSwitch("yearly"));
3674
- }
3675
- data.plans.forEach((plan) => {
3676
- var _a;
3677
- (_a = plan.features) == null ? void 0 : _a.forEach((feature, i) => {
3678
- if (feature == null ? void 0 : feature.tooltip) {
3679
- const tooltipTrigger = document.querySelector(`[data-tooltip-trigger="${plan.key}-${i}"]`);
3680
- if (tooltipTrigger) {
3681
- const handleMouseEnter = (e) => {
3682
- setTooltip({
3683
- show: true,
3684
- content: feature.tooltip,
3685
- x: e.clientX,
3686
- y: e.clientY
3687
- });
3688
- };
3689
- const handleMouseMove = (e) => {
3690
- setTooltip((prev) => __spreadProps(__spreadValues({}, prev), { x: e.clientX, y: e.clientY }));
3691
- };
3692
- const handleMouseLeave = () => {
3693
- setTooltip((prev) => __spreadProps(__spreadValues({}, prev), { show: false }));
3694
- };
3695
- tooltipTrigger.addEventListener("mouseenter", handleMouseEnter);
3696
- tooltipTrigger.addEventListener("mousemove", handleMouseMove);
3697
- tooltipTrigger.addEventListener("mouseleave", handleMouseLeave);
3698
- }
3699
- }
3700
- });
3701
- });
3702
- data.plans.forEach((plan) => {
3703
- var _a;
3704
- const planButton = document.querySelector(`[data-plan-button="${plan.key}"]`);
3705
- if (planButton && !((_a = plan.button) == null ? void 0 : _a.disabled)) {
3706
- planButton.addEventListener("click", () => {
3707
- router.push("/");
3708
- });
3709
- }
3710
- });
3711
- return () => {
3712
- var _a, _b;
3713
- if (monthlyButton) {
3714
- const newButton = monthlyButton.cloneNode(true);
3715
- (_a = monthlyButton.parentNode) == null ? void 0 : _a.replaceChild(newButton, monthlyButton);
3716
- }
3717
- if (yearlyButton) {
3718
- const newButton = yearlyButton.cloneNode(true);
3719
- (_b = yearlyButton.parentNode) == null ? void 0 : _b.replaceChild(newButton, yearlyButton);
3720
- }
3721
- data.plans.forEach((plan) => {
3722
- var _a2;
3723
- (_a2 = plan.features) == null ? void 0 : _a2.forEach((_feature, i) => {
3724
- var _a3;
3725
- const tooltipTrigger = document.querySelector(`[data-tooltip-trigger="${plan.key}-${i}"]`);
3726
- if (tooltipTrigger) {
3727
- const newTrigger = tooltipTrigger.cloneNode(true);
3728
- (_a3 = tooltipTrigger.parentNode) == null ? void 0 : _a3.replaceChild(newTrigger, tooltipTrigger);
3729
- }
3730
- });
3731
- });
3732
- };
3733
- }, [data, router]);
3734
- const updatePrices = (newBillingKey) => {
3735
- const currentBilling = data.pricePlanConfig.billingOptions.find((opt) => opt.key === newBillingKey) || data.pricePlanConfig.billingOptions[0];
3736
- const currentBillingDisplay = data.billingSwitch.options.find((opt) => opt.key === newBillingKey) || data.billingSwitch.options[0];
3737
- data.plans.forEach((plan) => {
3738
- const priceContainer = document.querySelector(`[data-price-container="${plan.key}"]`);
3739
- const priceValue = data.pricePlanConfig.prices[plan.key];
3740
- if (priceContainer) {
3741
- const priceValueElement = document.querySelector(`[data-price-value="${plan.key}"]`);
3742
- const priceUnitElement = document.querySelector(`[data-price-unit="${plan.key}"]`);
3743
- const priceOriginalElement = document.querySelector(`[data-price-original="${plan.key}"]`);
3744
- const priceDiscountElement = document.querySelector(`[data-price-discount="${plan.key}"]`);
3745
- const priceSubtitleElement = document.querySelector(`[data-price-subtitle="${plan.key}"]`);
3746
- if (typeof priceValue !== "number" || isNaN(priceValue)) {
3747
- if (priceValueElement) priceValueElement.textContent = String(priceValue);
3748
- if (priceSubtitleElement) priceSubtitleElement.textContent = plan.showBillingSubTitle === false ? "" : (currentBillingDisplay == null ? void 0 : currentBillingDisplay.subTitle) || "";
3749
- } else {
3750
- const originValue = Number(priceValue);
3751
- const discount = currentBilling.discount;
3752
- const hasDiscount = discount !== 0;
3753
- const saleValue = originValue * (1 - discount);
3754
- const formatPrice = (v) => Number(v.toFixed(2)).toString();
3755
- const showNaN = saleValue < 0;
3756
- if (priceValueElement) {
3757
- priceValueElement.textContent = `${data.currency}${showNaN ? "NaN" : hasDiscount ? formatPrice(saleValue) : formatPrice(originValue)}`;
3758
- }
3759
- if (priceUnitElement) {
3760
- priceUnitElement.textContent = currentBillingDisplay.unit || "";
3761
- }
3762
- if (hasDiscount) {
3763
- if (priceOriginalElement) {
3764
- priceOriginalElement.textContent = `${data.currency}${showNaN ? "NaN" : formatPrice(originValue)}`;
3765
- priceOriginalElement.style.display = "inline";
3766
- }
3767
- if (priceDiscountElement && currentBillingDisplay.discountText) {
3768
- const discountText = currentBillingDisplay.discountText.replace("{percent}", String(Math.round(Math.abs(discount) * 100)));
3769
- priceDiscountElement.textContent = discountText;
3770
- priceDiscountElement.style.display = "inline";
3771
- }
3772
- } else {
3773
- if (priceOriginalElement) priceOriginalElement.style.display = "none";
3774
- if (priceDiscountElement) priceDiscountElement.style.display = "none";
3775
- }
3776
- if (priceSubtitleElement) {
3777
- priceSubtitleElement.textContent = plan.showBillingSubTitle === false ? "" : (currentBillingDisplay == null ? void 0 : currentBillingDisplay.subTitle) || "";
3778
- }
3779
- }
3780
- }
3781
- });
3782
- };
3783
- const updateDiscountInfo = (newBillingKey) => {
3784
- const discountInfoElement = document.querySelector("[data-discount-info]");
3785
- if (discountInfoElement) {
3786
- const opt = data.billingSwitch.options.find((opt2) => opt2.key === newBillingKey);
3787
- const bOpt = data.pricePlanConfig.billingOptions.find((opt2) => opt2.key === newBillingKey);
3788
- if (opt && bOpt && opt.discountText && bOpt.discount !== 0) {
3789
- const discountText = opt.discountText.replace("{percent}", String(Math.round(Math.abs(bOpt.discount) * 100)));
3790
- discountInfoElement.innerHTML = `
3791
- <span class="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">
3792
- ${discountText}
3793
- </span>
3794
- `;
3795
- } else {
3796
- discountInfoElement.innerHTML = "";
3797
- }
3798
- }
3799
- };
3800
- const updateButtonStyles = (newBillingKey) => {
3801
- const monthlyButton = document.querySelector('[data-billing-button="monthly"]');
3802
- const yearlyButton = document.querySelector('[data-billing-button="yearly"]');
3803
- if (monthlyButton) {
3804
- if (newBillingKey === "monthly") {
3805
- monthlyButton.className = cn(
3806
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
3807
- "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"
3808
- );
3809
- } else {
3810
- monthlyButton.className = cn(
3811
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
3812
- "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
3813
- );
3814
- }
3815
- }
3816
- if (yearlyButton) {
3817
- if (newBillingKey === "yearly") {
3818
- yearlyButton.className = cn(
3819
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
3820
- "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"
3821
- );
3822
- } else {
3823
- yearlyButton.className = cn(
3824
- "min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
3825
- "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
3826
- );
3827
- }
3828
- }
3829
- };
3830
- const Tooltip = ({ show, content, x, y }) => {
3831
- if (!show) return null;
3832
- const style = {
3833
- position: "fixed",
3834
- left: Math.max(8, x),
3835
- top: Math.max(8, y),
3836
- zIndex: 9999,
3837
- maxWidth: 200,
3838
- transform: "translateY(-50%)",
3839
- pointerEvents: "none",
3840
- whiteSpace: "pre-line"
3841
- };
3842
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3843
- "div",
3844
- {
3845
- style,
3846
- className: "bg-gray-700 dark:bg-gray-200 text-gray-100 dark:text-gray-800 text-xs leading-relaxed px-3 py-2 rounded-lg shadow-lg border border-gray-300 dark:border-gray-600 backdrop-blur-sm",
3847
- children: content
3848
- }
3849
- );
3850
- };
3851
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Tooltip, __spreadValues({}, tooltip));
3852
- }
3853
-
3854
- // src/main/price-plan.tsx
3855
- var import_jsx_runtime46 = require("react/jsx-runtime");
3175
+ var import_main3 = require("@third-ui/main");
3176
+ var import_jsx_runtime41 = require("react/jsx-runtime");
3856
3177
  function PricePlan(_0) {
3857
3178
  return __async(this, arguments, function* ({
3858
3179
  locale,
@@ -3894,9 +3215,9 @@ function PricePlan(_0) {
3894
3215
  const currentBillingDisplay = data.billingSwitch.options.find((opt) => opt.key === billingKey) || defaultBillingDisplay;
3895
3216
  const billingSubTitle = (currentBillingDisplay == null ? void 0 : currentBillingDisplay.subTitle) || "";
3896
3217
  if (typeof priceValue !== "number" || isNaN(priceValue)) {
3897
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
3898
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-end gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: priceValue }) }),
3899
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: cn("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 }) })
3218
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
3219
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-end gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: priceValue }) }),
3220
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: cn("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 }) })
3900
3221
  ] });
3901
3222
  }
3902
3223
  const originValue = Number(priceValue);
@@ -3910,32 +3231,32 @@ function PricePlan(_0) {
3910
3231
  discountText = currentBillingDisplay.discountText.replace("{percent}", String(Math.round(Math.abs(discount) * 100)));
3911
3232
  }
3912
3233
  const showNaN = saleValue < 0;
3913
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
3914
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-end gap-2", children: [
3915
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: [
3234
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col items-start w-full", "data-price-container": plan.key, children: [
3235
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-end gap-2", children: [
3236
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", "data-price-value": plan.key, children: [
3916
3237
  data.currency,
3917
3238
  showNaN ? "NaN" : hasDiscount ? formatPrice(saleValue) : formatPrice(originValue)
3918
3239
  ] }),
3919
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-lg text-gray-700 dark:text-gray-300 font-medium mb-1", "data-price-unit": plan.key, children: unit })
3240
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-lg text-gray-700 dark:text-gray-300 font-medium mb-1", "data-price-unit": plan.key, children: unit })
3920
3241
  ] }),
3921
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: [
3922
- hasDiscount && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
3923
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "text-base text-gray-400 line-through", "data-price-original": plan.key, children: [
3242
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: [
3243
+ hasDiscount && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
3244
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("span", { className: "text-base text-gray-400 line-through", "data-price-original": plan.key, children: [
3924
3245
  data.currency,
3925
3246
  showNaN ? "NaN" : formatPrice(originValue)
3926
3247
  ] }),
3927
- discountText && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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 })
3248
+ discountText && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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 })
3928
3249
  ] }),
3929
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: cn("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 })
3250
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: cn("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 })
3930
3251
  ] })
3931
3252
  ] });
3932
3253
  }
3933
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("section", { id: "pricing", className: cn("px-4 py-10 md:px-16 md:py-16 mx-auto max-w-7xl scroll-mt-10", sectionClassName), children: [
3934
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-3", children: data.title }),
3935
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400 mb-8 text-base md:text-lg mx-auto", children: data.subtitle }),
3936
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col items-center", children: [
3937
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-center relative mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("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: [
3938
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3254
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("section", { id: "pricing", className: cn("px-4 py-10 md:px-16 md:py-16 mx-auto max-w-7xl scroll-mt-10", sectionClassName), children: [
3255
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-3", children: data.title }),
3256
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400 mb-8 text-base md:text-lg mx-auto", children: data.subtitle }),
3257
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col items-center", children: [
3258
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-center relative mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("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: [
3259
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3939
3260
  "button",
3940
3261
  {
3941
3262
  className: cn(
@@ -3947,7 +3268,7 @@ function PricePlan(_0) {
3947
3268
  children: ((_a = data.billingSwitch.options.find((opt) => opt.key === "monthly")) == null ? void 0 : _a.name) || "Monthly"
3948
3269
  }
3949
3270
  ),
3950
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3271
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3951
3272
  "button",
3952
3273
  {
3953
3274
  className: cn(
@@ -3960,19 +3281,19 @@ function PricePlan(_0) {
3960
3281
  }
3961
3282
  )
3962
3283
  ] }) }),
3963
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "h-8 flex items-center justify-center mb-3", "data-discount-info": true, children: (() => {
3284
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "h-8 flex items-center justify-center mb-3", "data-discount-info": true, children: (() => {
3964
3285
  const opt = data.billingSwitch.options.find((opt2) => opt2.key === data.billingSwitch.defaultKey);
3965
3286
  const bOpt = billingOptions.find((opt2) => opt2.key === data.billingSwitch.defaultKey);
3966
3287
  if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return null;
3967
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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(
3288
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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(
3968
3289
  "{percent}",
3969
3290
  String(Math.round(Math.abs(bOpt.discount) * 100))
3970
3291
  ) });
3971
3292
  })() })
3972
3293
  ] }),
3973
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: data.plans.map((plan, _idx) => {
3294
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: data.plans.map((plan, _idx) => {
3974
3295
  var _a2, _b2, _c;
3975
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3296
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
3976
3297
  "div",
3977
3298
  {
3978
3299
  "data-price-plan": plan.key,
@@ -3983,29 +3304,29 @@ function PricePlan(_0) {
3983
3304
  ),
3984
3305
  style: { minHeight: maxFeaturesCount * 100 },
3985
3306
  children: [
3986
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
3987
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: plan.title }),
3988
- plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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))
3307
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
3308
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: plan.title }),
3309
+ plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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))
3989
3310
  ] }),
3990
3311
  renderPrice(plan),
3991
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("ul", { className: "flex-1 mb-6 mt-4", children: getFeatureRows(plan).map((feature, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("li", { className: "flex items-center gap-2 mb-2 min-h-[28px]", "data-feature-item": `${plan.key}-${i}`, children: [
3992
- feature ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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__ */ (0, import_jsx_runtime46.jsx)("span", { children: feature.icon }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "font-bold", children: "\u2713" }) }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "inline-flex items-center justify-center w-5 h-5 rounded-full mr-1", children: "\xA0" }),
3993
- feature && feature.tag && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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 }),
3994
- feature ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "relative group cursor-pointer text-sm text-gray-800 dark:text-gray-200", children: [
3312
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("ul", { className: "flex-1 mb-6 mt-4", children: getFeatureRows(plan).map((feature, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("li", { className: "flex items-center gap-2 mb-2 min-h-[28px]", "data-feature-item": `${plan.key}-${i}`, children: [
3313
+ feature ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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__ */ (0, import_jsx_runtime41.jsx)("span", { children: feature.icon }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "font-bold", children: "\u2713" }) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "inline-flex items-center justify-center w-5 h-5 rounded-full mr-1", children: "\xA0" }),
3314
+ feature && feature.tag && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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 }),
3315
+ feature ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("span", { className: "relative group cursor-pointer text-sm text-gray-800 dark:text-gray-200", children: [
3995
3316
  feature.description,
3996
- feature.tooltip && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3317
+ feature.tooltip && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3997
3318
  "span",
3998
3319
  {
3999
3320
  className: "ml-1 align-middle inline-flex",
4000
3321
  "data-tooltip-trigger": `${plan.key}-${i}`,
4001
3322
  "data-tooltip-content": feature.tooltip,
4002
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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" }) })
3323
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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" }) })
4003
3324
  }
4004
3325
  )
4005
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { children: "\xA0" })
3326
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { children: "\xA0" })
4006
3327
  ] }, i)) }),
4007
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-1" }),
4008
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3328
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex-1" }),
3329
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4009
3330
  "button",
4010
3331
  {
4011
3332
  className: cn(
@@ -4023,7 +3344,7 @@ function PricePlan(_0) {
4023
3344
  plan.key
4024
3345
  );
4025
3346
  }) }),
4026
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PricePlanInteractive, { data })
3347
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_main3.PricePlanInteractive, { data })
4027
3348
  ] });
4028
3349
  });
4029
3350
  }