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