@windrun-huaiin/third-ui 5.12.1 → 5.12.3
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.
- package/dist/main/index.d.mts +6 -1
- package/dist/main/index.d.ts +6 -1
- package/dist/main/index.js +304 -288
- package/dist/main/index.js.map +1 -1
- package/dist/main/index.mjs +249 -235
- package/dist/main/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/main/cta.tsx +2 -1
- package/src/main/faq.tsx +3 -2
- package/src/main/features.tsx +3 -2
- package/src/main/index.ts +2 -1
- package/src/main/price-plan.tsx +45 -65
- package/src/main/rich-text-expert.tsx +35 -0
- package/src/main/seo-content.tsx +6 -5
- package/src/main/tips.tsx +11 -6
- package/src/main/usage.tsx +3 -2
package/dist/main/index.js
CHANGED
|
@@ -94,7 +94,9 @@ __export(main_exports, {
|
|
|
94
94
|
SeoContent: () => SeoContent,
|
|
95
95
|
Tips: () => Tips,
|
|
96
96
|
Usage: () => Usage,
|
|
97
|
-
XButton: () => XButton
|
|
97
|
+
XButton: () => XButton,
|
|
98
|
+
createRichTextRenderer: () => createRichTextRenderer,
|
|
99
|
+
richText: () => richText
|
|
98
100
|
});
|
|
99
101
|
module.exports = __toCommonJS(main_exports);
|
|
100
102
|
|
|
@@ -2861,24 +2863,52 @@ function Gallery({ sectionClassName, button }) {
|
|
|
2861
2863
|
|
|
2862
2864
|
// src/main/usage.tsx
|
|
2863
2865
|
var import_next_intl2 = require("next-intl");
|
|
2866
|
+
|
|
2867
|
+
// src/main/rich-text-expert.tsx
|
|
2864
2868
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2869
|
+
var defaultTagRenderers = {
|
|
2870
|
+
// text Stong
|
|
2871
|
+
strong: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("strong", { children: chunks }),
|
|
2872
|
+
// text Emphasis
|
|
2873
|
+
em: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("em", { children: chunks }),
|
|
2874
|
+
// text Underline
|
|
2875
|
+
u: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("u", { children: chunks }),
|
|
2876
|
+
// text Mark
|
|
2877
|
+
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 }),
|
|
2878
|
+
// text Delete
|
|
2879
|
+
del: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("del", { children: chunks }),
|
|
2880
|
+
// text Subscript
|
|
2881
|
+
sub: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("sub", { children: chunks }),
|
|
2882
|
+
// text Superscript
|
|
2883
|
+
sup: (chunks) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("sup", { children: chunks })
|
|
2884
|
+
};
|
|
2885
|
+
function createRichTextRenderer(customRenderers) {
|
|
2886
|
+
const renderers = __spreadValues(__spreadValues({}, defaultTagRenderers), customRenderers);
|
|
2887
|
+
return function richText2(t, key) {
|
|
2888
|
+
return t.rich(key, renderers);
|
|
2889
|
+
};
|
|
2890
|
+
}
|
|
2891
|
+
var richText = createRichTextRenderer();
|
|
2892
|
+
|
|
2893
|
+
// src/main/usage.tsx
|
|
2894
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2865
2895
|
function Usage({ sectionClassName }) {
|
|
2866
2896
|
const t = (0, import_next_intl2.useTranslations)("usage");
|
|
2867
2897
|
const steps = t.raw("steps");
|
|
2868
|
-
return /* @__PURE__ */ (0,
|
|
2869
|
-
/* @__PURE__ */ (0,
|
|
2898
|
+
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: [
|
|
2899
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
|
|
2870
2900
|
t("title"),
|
|
2871
2901
|
" ",
|
|
2872
|
-
/* @__PURE__ */ (0,
|
|
2902
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-purple-500", children: t("eyesOn") })
|
|
2873
2903
|
] }),
|
|
2874
|
-
/* @__PURE__ */ (0,
|
|
2875
|
-
/* @__PURE__ */ (0,
|
|
2904
|
+
/* @__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: richText(t, "description") }),
|
|
2905
|
+
/* @__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: steps.map((step, idx) => {
|
|
2876
2906
|
const Icon2 = getGlobalIcon(step.iconKey);
|
|
2877
|
-
return /* @__PURE__ */ (0,
|
|
2878
|
-
/* @__PURE__ */ (0,
|
|
2879
|
-
/* @__PURE__ */ (0,
|
|
2880
|
-
/* @__PURE__ */ (0,
|
|
2881
|
-
/* @__PURE__ */ (0,
|
|
2907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-start", children: [
|
|
2908
|
+
/* @__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" }) }),
|
|
2909
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
|
|
2910
|
+
/* @__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: `${idx + 1}. ${step.title}` }),
|
|
2911
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: richText(t, `steps.${idx}.description`) })
|
|
2882
2912
|
] })
|
|
2883
2913
|
] }, idx);
|
|
2884
2914
|
}) }) })
|
|
@@ -2887,27 +2917,27 @@ function Usage({ sectionClassName }) {
|
|
|
2887
2917
|
|
|
2888
2918
|
// src/main/features.tsx
|
|
2889
2919
|
var import_next_intl3 = require("next-intl");
|
|
2890
|
-
var
|
|
2920
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2891
2921
|
function Features({ sectionClassName }) {
|
|
2892
2922
|
const t = (0, import_next_intl3.useTranslations)("features");
|
|
2893
2923
|
const featureItems = t.raw("items");
|
|
2894
|
-
return /* @__PURE__ */ (0,
|
|
2895
|
-
/* @__PURE__ */ (0,
|
|
2924
|
+
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: [
|
|
2925
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: [
|
|
2896
2926
|
t("title"),
|
|
2897
2927
|
" ",
|
|
2898
|
-
/* @__PURE__ */ (0,
|
|
2928
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-purple-500", children: t("eyesOn") })
|
|
2899
2929
|
] }),
|
|
2900
|
-
/* @__PURE__ */ (0,
|
|
2901
|
-
/* @__PURE__ */ (0,
|
|
2930
|
+
/* @__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: richText(t, "description") }),
|
|
2931
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 gap-y-12", children: featureItems.map((feature, index) => {
|
|
2902
2932
|
const Icon2 = getGlobalIcon(feature.iconKey);
|
|
2903
|
-
return /* @__PURE__ */ (0,
|
|
2933
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
2904
2934
|
"div",
|
|
2905
2935
|
{
|
|
2906
2936
|
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",
|
|
2907
2937
|
children: [
|
|
2908
|
-
/* @__PURE__ */ (0,
|
|
2909
|
-
/* @__PURE__ */ (0,
|
|
2910
|
-
/* @__PURE__ */ (0,
|
|
2938
|
+
/* @__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" }) }),
|
|
2939
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { className: "text-xl font-semibold mb-3 text-gray-900 dark:text-gray-100", children: feature.title }),
|
|
2940
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: richText(t, `items.${index}.description`) })
|
|
2911
2941
|
]
|
|
2912
2942
|
},
|
|
2913
2943
|
index
|
|
@@ -2918,30 +2948,33 @@ function Features({ sectionClassName }) {
|
|
|
2918
2948
|
|
|
2919
2949
|
// src/main/tips.tsx
|
|
2920
2950
|
var import_next_intl4 = require("next-intl");
|
|
2921
|
-
var
|
|
2951
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2922
2952
|
function Tips({ sectionClassName }) {
|
|
2923
2953
|
const t = (0, import_next_intl4.useTranslations)("tips");
|
|
2924
2954
|
const sections = t.raw("sections");
|
|
2925
2955
|
const midPoint = Math.ceil(sections.length / 2);
|
|
2926
2956
|
const leftColumn = sections.slice(0, midPoint);
|
|
2927
2957
|
const rightColumn = sections.slice(midPoint);
|
|
2928
|
-
return /* @__PURE__ */ (0,
|
|
2929
|
-
/* @__PURE__ */ (0,
|
|
2958
|
+
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: [
|
|
2959
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-16", children: [
|
|
2930
2960
|
t("title"),
|
|
2931
2961
|
" ",
|
|
2932
|
-
/* @__PURE__ */ (0,
|
|
2962
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-purple-500", children: t("eyesOn") })
|
|
2933
2963
|
] }),
|
|
2934
|
-
/* @__PURE__ */ (0,
|
|
2935
|
-
|
|
2936
|
-
/* @__PURE__ */ (0,
|
|
2937
|
-
|
|
2964
|
+
/* @__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: [leftColumn, rightColumn].map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-8", children: column.map((tip, tipIndex) => {
|
|
2965
|
+
const actualIndex = colIndex === 0 ? tipIndex : tipIndex + midPoint;
|
|
2966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "space-y-4", children: [
|
|
2967
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "text-2xl font-semibold", children: tip.title }),
|
|
2968
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "", children: richText(t, `sections.${actualIndex}.description`) })
|
|
2969
|
+
] }, tipIndex);
|
|
2970
|
+
}) }, colIndex)) })
|
|
2938
2971
|
] });
|
|
2939
2972
|
}
|
|
2940
2973
|
|
|
2941
2974
|
// src/main/faq.tsx
|
|
2942
2975
|
var import_react36 = require("react");
|
|
2943
2976
|
var import_next_intl5 = require("next-intl");
|
|
2944
|
-
var
|
|
2977
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2945
2978
|
function FAQ({ sectionClassName }) {
|
|
2946
2979
|
const t = (0, import_next_intl5.useTranslations)("faq");
|
|
2947
2980
|
const items = t.raw("items");
|
|
@@ -2953,30 +2986,30 @@ function FAQ({ sectionClassName }) {
|
|
|
2953
2986
|
return next;
|
|
2954
2987
|
});
|
|
2955
2988
|
};
|
|
2956
|
-
return /* @__PURE__ */ (0,
|
|
2957
|
-
/* @__PURE__ */ (0,
|
|
2958
|
-
/* @__PURE__ */ (0,
|
|
2959
|
-
/* @__PURE__ */ (0,
|
|
2989
|
+
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: [
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-4", children: t("title") }),
|
|
2991
|
+
/* @__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: richText(t, "description") }),
|
|
2992
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6", children: items.map((item, idx) => {
|
|
2960
2993
|
const isOpen = openArr[idx];
|
|
2961
2994
|
const Icon2 = isOpen ? globalLucideIcons.ChevronDown : globalLucideIcons.ChevronRight;
|
|
2962
|
-
return /* @__PURE__ */ (0,
|
|
2995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
2963
2996
|
"div",
|
|
2964
2997
|
{
|
|
2965
2998
|
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",
|
|
2966
2999
|
children: [
|
|
2967
|
-
/* @__PURE__ */ (0,
|
|
3000
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
2968
3001
|
"button",
|
|
2969
3002
|
{
|
|
2970
3003
|
className: "w-full flex items-center justify-between text-left focus:outline-none",
|
|
2971
3004
|
onClick: () => handleToggle(idx),
|
|
2972
3005
|
"aria-expanded": isOpen,
|
|
2973
3006
|
children: [
|
|
2974
|
-
/* @__PURE__ */ (0,
|
|
2975
|
-
/* @__PURE__ */ (0,
|
|
3007
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: item.question }),
|
|
3008
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon2, { className: "w-6 h-6 text-gray-400 ml-2 transition-transform duration-200" })
|
|
2976
3009
|
]
|
|
2977
3010
|
}
|
|
2978
3011
|
),
|
|
2979
|
-
isOpen && /* @__PURE__ */ (0,
|
|
3012
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "mt-4 text-gray-700 dark:text-gray-300 text-base", children: richText(t, `items.${idx}.answer`) })
|
|
2980
3013
|
]
|
|
2981
3014
|
},
|
|
2982
3015
|
idx
|
|
@@ -2987,25 +3020,25 @@ function FAQ({ sectionClassName }) {
|
|
|
2987
3020
|
|
|
2988
3021
|
// src/main/seo-content.tsx
|
|
2989
3022
|
var import_next_intl6 = require("next-intl");
|
|
2990
|
-
var
|
|
3023
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2991
3024
|
function SeoContent({ sectionClassName }) {
|
|
2992
3025
|
const t = (0, import_next_intl6.useTranslations)("seoContent");
|
|
2993
|
-
return /* @__PURE__ */ (0,
|
|
2994
|
-
/* @__PURE__ */ (0,
|
|
3026
|
+
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: [
|
|
3027
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-8", children: [
|
|
2995
3028
|
t("title"),
|
|
2996
3029
|
" ",
|
|
2997
|
-
/* @__PURE__ */ (0,
|
|
3030
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-purple-500", children: t("eyesOn") })
|
|
2998
3031
|
] }),
|
|
2999
|
-
/* @__PURE__ */ (0,
|
|
3000
|
-
/* @__PURE__ */ (0,
|
|
3001
|
-
/* @__PURE__ */ (0,
|
|
3002
|
-
/* @__PURE__ */ (0,
|
|
3003
|
-
t.raw("sections").map((section, index) => /* @__PURE__ */ (0,
|
|
3004
|
-
/* @__PURE__ */ (0,
|
|
3005
|
-
/* @__PURE__ */ (0,
|
|
3032
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h3", { className: "text-center text-gray-600 dark:text-gray-400 mb-12 text-lg", children: t("description") }),
|
|
3033
|
+
/* @__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: [
|
|
3034
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "space-y-10", children: [
|
|
3035
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-gray-600 dark:text-gray-400 text-lg", children: richText(t, "intro") }),
|
|
3036
|
+
t.raw("sections").map((section, index) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { children: [
|
|
3037
|
+
/* @__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 }),
|
|
3038
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-gray-700 dark:text-gray-300", children: richText(t, `sections.${index}.content`) })
|
|
3006
3039
|
] }, index))
|
|
3007
3040
|
] }),
|
|
3008
|
-
/* @__PURE__ */ (0,
|
|
3041
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "mt-10 text-gray-600 dark:text-gray-400 text-lg", children: richText(t, "conclusion") })
|
|
3009
3042
|
] })
|
|
3010
3043
|
] });
|
|
3011
3044
|
}
|
|
@@ -3054,7 +3087,7 @@ function useComposedRefs(...refs) {
|
|
|
3054
3087
|
}
|
|
3055
3088
|
|
|
3056
3089
|
// ../../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
|
|
3057
|
-
var
|
|
3090
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3058
3091
|
// @__NO_SIDE_EFFECTS__
|
|
3059
3092
|
function createSlot(ownerName) {
|
|
3060
3093
|
const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
|
|
@@ -3072,9 +3105,9 @@ function createSlot(ownerName) {
|
|
|
3072
3105
|
return child;
|
|
3073
3106
|
}
|
|
3074
3107
|
});
|
|
3075
|
-
return /* @__PURE__ */ (0,
|
|
3108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SlotClone, __spreadProps(__spreadValues({}, slotProps), { ref: forwardedRef, children: React34.isValidElement(newElement) ? React34.cloneElement(newElement, void 0, newChildren) : null }));
|
|
3076
3109
|
}
|
|
3077
|
-
return /* @__PURE__ */ (0,
|
|
3110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SlotClone, __spreadProps(__spreadValues({}, slotProps), { ref: forwardedRef, children }));
|
|
3078
3111
|
});
|
|
3079
3112
|
Slot22.displayName = `${ownerName}.Slot`;
|
|
3080
3113
|
return Slot22;
|
|
@@ -3101,7 +3134,7 @@ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
|
3101
3134
|
// @__NO_SIDE_EFFECTS__
|
|
3102
3135
|
function createSlottable(ownerName) {
|
|
3103
3136
|
const Slottable2 = ({ children }) => {
|
|
3104
|
-
return /* @__PURE__ */ (0,
|
|
3137
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children });
|
|
3105
3138
|
};
|
|
3106
3139
|
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
3107
3140
|
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
@@ -3151,7 +3184,7 @@ function getElementRef(element) {
|
|
|
3151
3184
|
|
|
3152
3185
|
// ../base-ui/src/ui/button.tsx
|
|
3153
3186
|
var import_class_variance_authority = require("class-variance-authority");
|
|
3154
|
-
var
|
|
3187
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3155
3188
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
3156
3189
|
"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",
|
|
3157
3190
|
{
|
|
@@ -3182,7 +3215,7 @@ var Button = React35.forwardRef(
|
|
|
3182
3215
|
var _b = _a, { className, variant, size, asChild = false, loading = false, children } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild", "loading", "children"]);
|
|
3183
3216
|
const Comp = asChild ? Slot : "button";
|
|
3184
3217
|
if (asChild) {
|
|
3185
|
-
return /* @__PURE__ */ (0,
|
|
3218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3186
3219
|
Comp,
|
|
3187
3220
|
__spreadProps(__spreadValues({
|
|
3188
3221
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -3193,7 +3226,7 @@ var Button = React35.forwardRef(
|
|
|
3193
3226
|
})
|
|
3194
3227
|
);
|
|
3195
3228
|
}
|
|
3196
|
-
return /* @__PURE__ */ (0,
|
|
3229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3197
3230
|
Comp,
|
|
3198
3231
|
__spreadProps(__spreadValues({
|
|
3199
3232
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -3202,7 +3235,7 @@ var Button = React35.forwardRef(
|
|
|
3202
3235
|
}, props), {
|
|
3203
3236
|
children: [
|
|
3204
3237
|
children,
|
|
3205
|
-
loading && /* @__PURE__ */ (0,
|
|
3238
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
|
|
3206
3239
|
]
|
|
3207
3240
|
})
|
|
3208
3241
|
);
|
|
@@ -3213,7 +3246,7 @@ Button.displayName = "Button";
|
|
|
3213
3246
|
// src/fuma/mdx/gradient-button.tsx
|
|
3214
3247
|
var import_link2 = __toESM(require("next/link"));
|
|
3215
3248
|
var import_react37 = __toESM(require("react"));
|
|
3216
|
-
var
|
|
3249
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3217
3250
|
function GradientButton({
|
|
3218
3251
|
title,
|
|
3219
3252
|
icon,
|
|
@@ -3261,15 +3294,15 @@ function GradientButton({
|
|
|
3261
3294
|
});
|
|
3262
3295
|
const isDisabled = disabled || isLoading;
|
|
3263
3296
|
const displayTitle = isLoading ? actualLoadingText : title;
|
|
3264
|
-
const displayIcon = isLoading ? /* @__PURE__ */ (0,
|
|
3297
|
+
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, {
|
|
3265
3298
|
className: "h-4 w-4 text-white"
|
|
3266
|
-
}) : /* @__PURE__ */ (0,
|
|
3267
|
-
const buttonContent = onClick ? /* @__PURE__ */ (0,
|
|
3268
|
-
/* @__PURE__ */ (0,
|
|
3269
|
-
/* @__PURE__ */ (0,
|
|
3270
|
-
] }) : /* @__PURE__ */ (0,
|
|
3271
|
-
/* @__PURE__ */ (0,
|
|
3272
|
-
/* @__PURE__ */ (0,
|
|
3299
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(globalLucideIcons.ArrowRight, { className: "h-4 w-4 text-white" });
|
|
3300
|
+
const buttonContent = onClick ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
3301
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: displayIcon }),
|
|
3302
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-1", children: displayTitle })
|
|
3303
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
3304
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: displayTitle }),
|
|
3305
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-1", children: displayIcon })
|
|
3273
3306
|
] });
|
|
3274
3307
|
const buttonClassName = `
|
|
3275
3308
|
bg-gradient-to-r
|
|
@@ -3283,9 +3316,9 @@ function GradientButton({
|
|
|
3283
3316
|
${isDisabled ? "opacity-50 cursor-not-allowed" : ""}
|
|
3284
3317
|
${className}
|
|
3285
3318
|
`;
|
|
3286
|
-
return /* @__PURE__ */ (0,
|
|
3319
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: `flex flex-col sm:flex-row gap-3 ${getAlignmentClass()}`, children: onClick ? (
|
|
3287
3320
|
// for click
|
|
3288
|
-
/* @__PURE__ */ (0,
|
|
3321
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3289
3322
|
Button,
|
|
3290
3323
|
{
|
|
3291
3324
|
size: "lg",
|
|
@@ -3297,14 +3330,14 @@ function GradientButton({
|
|
|
3297
3330
|
)
|
|
3298
3331
|
) : (
|
|
3299
3332
|
// for Link
|
|
3300
|
-
/* @__PURE__ */ (0,
|
|
3333
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3301
3334
|
Button,
|
|
3302
3335
|
{
|
|
3303
3336
|
asChild: true,
|
|
3304
3337
|
size: "lg",
|
|
3305
3338
|
className: buttonClassName,
|
|
3306
3339
|
disabled: isDisabled,
|
|
3307
|
-
children: /* @__PURE__ */ (0,
|
|
3340
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3308
3341
|
import_link2.default,
|
|
3309
3342
|
__spreadProps(__spreadValues({
|
|
3310
3343
|
href: href || "#",
|
|
@@ -3321,22 +3354,22 @@ function GradientButton({
|
|
|
3321
3354
|
|
|
3322
3355
|
// src/main/cta.tsx
|
|
3323
3356
|
var import_next_intl7 = require("next-intl");
|
|
3324
|
-
var
|
|
3357
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
3325
3358
|
function CTA({ sectionClassName }) {
|
|
3326
3359
|
const t = (0, import_next_intl7.useTranslations)("cta");
|
|
3327
|
-
return /* @__PURE__ */ (0,
|
|
3328
|
-
/* @__PURE__ */ (0,
|
|
3360
|
+
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: [
|
|
3361
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: [
|
|
3329
3362
|
t("title"),
|
|
3330
3363
|
" ",
|
|
3331
|
-
/* @__PURE__ */ (0,
|
|
3364
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-purple-400", children: t("eyesOn") }),
|
|
3332
3365
|
"?"
|
|
3333
3366
|
] }),
|
|
3334
|
-
/* @__PURE__ */ (0,
|
|
3335
|
-
t
|
|
3336
|
-
/* @__PURE__ */ (0,
|
|
3337
|
-
/* @__PURE__ */ (0,
|
|
3367
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("p", { className: "text-2xl mx-auto mb-8", children: [
|
|
3368
|
+
richText(t, "description1"),
|
|
3369
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("br", {}),
|
|
3370
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-purple-400", children: t("description2") })
|
|
3338
3371
|
] }),
|
|
3339
|
-
/* @__PURE__ */ (0,
|
|
3372
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
3340
3373
|
GradientButton,
|
|
3341
3374
|
{
|
|
3342
3375
|
title: t("button"),
|
|
@@ -3350,42 +3383,42 @@ function CTA({ sectionClassName }) {
|
|
|
3350
3383
|
// src/main/footer.tsx
|
|
3351
3384
|
var import_next_intl8 = require("next-intl");
|
|
3352
3385
|
var import_link3 = __toESM(require("next/link"));
|
|
3353
|
-
var
|
|
3386
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
3354
3387
|
function Footer() {
|
|
3355
3388
|
const tFooter = (0, import_next_intl8.useTranslations)("footer");
|
|
3356
3389
|
const locale = (0, import_next_intl8.useLocale)();
|
|
3357
|
-
return /* @__PURE__ */ (0,
|
|
3358
|
-
/* @__PURE__ */ (0,
|
|
3359
|
-
/* @__PURE__ */ (0,
|
|
3360
|
-
/* @__PURE__ */ (0,
|
|
3361
|
-
/* @__PURE__ */ (0,
|
|
3390
|
+
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: [
|
|
3391
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center justify-center space-x-6 text-xs", children: [
|
|
3392
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_link3.default, { href: `/${locale}/legal/terms`, className: "flex items-center space-x-1 hover:underline", children: [
|
|
3393
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.ReceiptText, { className: "h-3.5 w-3.5" }),
|
|
3394
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: tFooter("terms", { defaultValue: "Terms of Service" }) })
|
|
3362
3395
|
] }),
|
|
3363
|
-
/* @__PURE__ */ (0,
|
|
3364
|
-
/* @__PURE__ */ (0,
|
|
3365
|
-
/* @__PURE__ */ (0,
|
|
3396
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_link3.default, { href: `/${locale}/legal/privacy`, className: "flex items-center space-x-1 hover:underline", children: [
|
|
3397
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.ShieldUser, { className: "h-3.5 w-3.5" }),
|
|
3398
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: tFooter("privacy", { defaultValue: "Privacy Policy" }) })
|
|
3366
3399
|
] }),
|
|
3367
|
-
/* @__PURE__ */ (0,
|
|
3368
|
-
/* @__PURE__ */ (0,
|
|
3369
|
-
/* @__PURE__ */ (0,
|
|
3400
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative group", children: [
|
|
3401
|
+
/* @__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: tFooter("email") }),
|
|
3402
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
3370
3403
|
"a",
|
|
3371
3404
|
{
|
|
3372
3405
|
href: `mailto:${tFooter("email")}`,
|
|
3373
3406
|
className: "flex items-center space-x-1 underline cursor-pointer px-2",
|
|
3374
3407
|
children: [
|
|
3375
|
-
/* @__PURE__ */ (0,
|
|
3376
|
-
/* @__PURE__ */ (0,
|
|
3408
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.Mail, { className: "h-3.5 w-3.5" }),
|
|
3409
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: tFooter("contactUs", { defaultValue: "Contact Us" }) })
|
|
3377
3410
|
]
|
|
3378
3411
|
}
|
|
3379
3412
|
)
|
|
3380
3413
|
] })
|
|
3381
3414
|
] }),
|
|
3382
|
-
/* @__PURE__ */ (0,
|
|
3415
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "text-xs text-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: tFooter("copyright", { year: (/* @__PURE__ */ new Date()).getFullYear(), name: tFooter("company") }) }) })
|
|
3383
3416
|
] }) }) });
|
|
3384
3417
|
}
|
|
3385
3418
|
|
|
3386
3419
|
// src/main/go-to-top.tsx
|
|
3387
3420
|
var import_react38 = require("react");
|
|
3388
|
-
var
|
|
3421
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
3389
3422
|
function GoToTop() {
|
|
3390
3423
|
const [isVisible, setIsVisible] = (0, import_react38.useState)(false);
|
|
3391
3424
|
(0, import_react38.useEffect)(() => {
|
|
@@ -3405,19 +3438,19 @@ function GoToTop() {
|
|
|
3405
3438
|
behavior: "smooth"
|
|
3406
3439
|
});
|
|
3407
3440
|
};
|
|
3408
|
-
return /* @__PURE__ */ (0,
|
|
3441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: isVisible && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3409
3442
|
"button",
|
|
3410
3443
|
{
|
|
3411
3444
|
onClick: scrollToTop,
|
|
3412
3445
|
className: "fixed bottom-6 right-6 p-3 bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 dark:hover:to-pink-700 text-white rounded-full shadow-lg hover:shadow-xl transition-all duration-300 z-50",
|
|
3413
3446
|
"aria-label": "Go to top",
|
|
3414
|
-
children: /* @__PURE__ */ (0,
|
|
3447
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(globalLucideIcons.ArrowUp, { size: 20, className: "text-white" })
|
|
3415
3448
|
}
|
|
3416
3449
|
) });
|
|
3417
3450
|
}
|
|
3418
3451
|
|
|
3419
3452
|
// src/main/loading.tsx
|
|
3420
|
-
var
|
|
3453
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
3421
3454
|
var NUM_ROWS = 15;
|
|
3422
3455
|
var NUM_COLS = 15;
|
|
3423
3456
|
var DOT_SIZE = 6;
|
|
@@ -3462,7 +3495,7 @@ function Loading() {
|
|
|
3462
3495
|
}
|
|
3463
3496
|
const containerWidth = (NUM_COLS - 1) * SPACING + DOT_SIZE;
|
|
3464
3497
|
const containerHeight = (NUM_ROWS - 1) * SPACING + DOT_SIZE;
|
|
3465
|
-
return /* @__PURE__ */ (0,
|
|
3498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex flex-col items-center justify-center min-h-screen bg-neutral-900", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
3466
3499
|
"div",
|
|
3467
3500
|
{
|
|
3468
3501
|
style: {
|
|
@@ -3475,7 +3508,7 @@ function Loading() {
|
|
|
3475
3508
|
// Clip dots outside the circle
|
|
3476
3509
|
},
|
|
3477
3510
|
children: [
|
|
3478
|
-
dots.map((dot) => /* @__PURE__ */ (0,
|
|
3511
|
+
dots.map((dot) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
3479
3512
|
"div",
|
|
3480
3513
|
{
|
|
3481
3514
|
style: {
|
|
@@ -3497,12 +3530,12 @@ function Loading() {
|
|
|
3497
3530
|
},
|
|
3498
3531
|
dot.id
|
|
3499
3532
|
)),
|
|
3500
|
-
/* @__PURE__ */ (0,
|
|
3533
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
3501
3534
|
"div",
|
|
3502
3535
|
{
|
|
3503
3536
|
className: "absolute inset-0 flex items-center justify-center",
|
|
3504
3537
|
style: { pointerEvents: "none" },
|
|
3505
|
-
children: /* @__PURE__ */ (0,
|
|
3538
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { className: "text-xl font-semibold text-white", children: "Loading..." })
|
|
3506
3539
|
}
|
|
3507
3540
|
)
|
|
3508
3541
|
]
|
|
@@ -3534,7 +3567,7 @@ function NProgressBar() {
|
|
|
3534
3567
|
var import_react40 = require("react");
|
|
3535
3568
|
var import_next_intl9 = require("next-intl");
|
|
3536
3569
|
var import_navigation2 = require("next/navigation");
|
|
3537
|
-
var
|
|
3570
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
3538
3571
|
function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
3539
3572
|
var _a, _b;
|
|
3540
3573
|
const t = (0, import_next_intl9.useTranslations)("pricePlan");
|
|
@@ -3566,9 +3599,9 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3566
3599
|
const priceValue = prices[plan.key];
|
|
3567
3600
|
const billingSubTitle = ((_a2 = billingSwitch.options.find((opt) => opt.key === billingKey)) == null ? void 0 : _a2.subTitle) || "";
|
|
3568
3601
|
if (typeof priceValue !== "number" || isNaN(priceValue)) {
|
|
3569
|
-
return /* @__PURE__ */ (0,
|
|
3570
|
-
/* @__PURE__ */ (0,
|
|
3571
|
-
/* @__PURE__ */ (0,
|
|
3602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col items-start w-full", children: [
|
|
3603
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-end gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", children: priceValue }) }),
|
|
3604
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: cn("text-xs text-gray-700 dark:text-gray-300 font-medium", plan.showBillingSubTitle === false && "opacity-0 select-none"), children: plan.showBillingSubTitle === false ? "" : billingSubTitle }) })
|
|
3572
3605
|
] });
|
|
3573
3606
|
}
|
|
3574
3607
|
const originValue = Number(priceValue);
|
|
@@ -3582,23 +3615,23 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3582
3615
|
discountText = currentBillingDisplay.discountText.replace("{percent}", String(Math.round(Math.abs(discount) * 100)));
|
|
3583
3616
|
}
|
|
3584
3617
|
const showNaN = saleValue < 0;
|
|
3585
|
-
return /* @__PURE__ */ (0,
|
|
3586
|
-
/* @__PURE__ */ (0,
|
|
3587
|
-
/* @__PURE__ */ (0,
|
|
3618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col items-start w-full", children: [
|
|
3619
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-end gap-2", children: [
|
|
3620
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "text-4xl font-extrabold text-gray-900 dark:text-gray-100", children: [
|
|
3588
3621
|
currency,
|
|
3589
3622
|
showNaN ? "NaN" : hasDiscount ? formatPrice(saleValue) : formatPrice(originValue)
|
|
3590
3623
|
] }),
|
|
3591
|
-
/* @__PURE__ */ (0,
|
|
3624
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-lg text-gray-700 dark:text-gray-300 font-medium mb-1", children: unit })
|
|
3592
3625
|
] }),
|
|
3593
|
-
/* @__PURE__ */ (0,
|
|
3594
|
-
hasDiscount && /* @__PURE__ */ (0,
|
|
3595
|
-
/* @__PURE__ */ (0,
|
|
3626
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2 min-h-[24px] mt-1", children: [
|
|
3627
|
+
hasDiscount && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
|
|
3628
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "text-base text-gray-400 line-through", children: [
|
|
3596
3629
|
currency,
|
|
3597
3630
|
showNaN ? "NaN" : formatPrice(originValue)
|
|
3598
3631
|
] }),
|
|
3599
|
-
discountText && /* @__PURE__ */ (0,
|
|
3632
|
+
discountText && /* @__PURE__ */ (0, import_jsx_runtime47.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", children: discountText })
|
|
3600
3633
|
] }),
|
|
3601
|
-
/* @__PURE__ */ (0,
|
|
3634
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: cn("text-xs text-gray-700 dark:text-gray-300 font-medium", plan.showBillingSubTitle === false && "opacity-0 select-none"), children: plan.showBillingSubTitle === false ? "" : billingSubTitle })
|
|
3602
3635
|
] })
|
|
3603
3636
|
] });
|
|
3604
3637
|
}
|
|
@@ -3610,81 +3643,62 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3610
3643
|
top: Math.max(8, y),
|
|
3611
3644
|
zIndex: 9999,
|
|
3612
3645
|
maxWidth: 200,
|
|
3613
|
-
|
|
3614
|
-
color: "#fff",
|
|
3615
|
-
borderRadius: 10,
|
|
3616
|
-
padding: "16px",
|
|
3617
|
-
boxShadow: "0 4px 24px 0 rgba(0,0,0,0.25)",
|
|
3618
|
-
fontSize: 15,
|
|
3619
|
-
lineHeight: 1.6,
|
|
3646
|
+
transform: "translateY(-50%)",
|
|
3620
3647
|
pointerEvents: "none",
|
|
3621
|
-
whiteSpace: "pre-line"
|
|
3622
|
-
transform: "translateY(-50%)"
|
|
3648
|
+
whiteSpace: "pre-line"
|
|
3623
3649
|
};
|
|
3624
|
-
return /* @__PURE__ */ (0,
|
|
3650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3651
|
+
"div",
|
|
3652
|
+
{
|
|
3653
|
+
style,
|
|
3654
|
+
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",
|
|
3655
|
+
children: content
|
|
3656
|
+
}
|
|
3657
|
+
);
|
|
3625
3658
|
};
|
|
3626
|
-
return /* @__PURE__ */ (0,
|
|
3627
|
-
/* @__PURE__ */ (0,
|
|
3628
|
-
/* @__PURE__ */ (0,
|
|
3629
|
-
/* @__PURE__ */ (0,
|
|
3630
|
-
/* @__PURE__ */ (0,
|
|
3631
|
-
/* @__PURE__ */ (0,
|
|
3659
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.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: [
|
|
3660
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-3", children: t("title") }),
|
|
3661
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400 mb-8 text-base md:text-lg mx-auto", children: t("subtitle") }),
|
|
3662
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
3663
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center relative mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded-full p-1", children: [
|
|
3664
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3632
3665
|
"button",
|
|
3633
3666
|
{
|
|
3634
3667
|
className: cn(
|
|
3635
|
-
"min-w-[120px] px-6 py-2
|
|
3636
|
-
billingKey === "monthly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600
|
|
3637
|
-
"mr-4"
|
|
3668
|
+
"min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
|
|
3669
|
+
billingKey === "monthly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 rounded-full shadow-sm" : "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
|
|
3638
3670
|
),
|
|
3639
3671
|
onClick: () => setBillingKey("monthly"),
|
|
3640
3672
|
type: "button",
|
|
3641
3673
|
children: ((_a = billingSwitch.options.find((opt) => opt.key === "monthly")) == null ? void 0 : _a.name) || "Monthly"
|
|
3642
3674
|
}
|
|
3643
3675
|
),
|
|
3644
|
-
((
|
|
3645
|
-
const opt = billingSwitch.options.find((opt2) => opt2.key === "monthly");
|
|
3646
|
-
const bOpt = billingOptions.find((opt2) => opt2.key === "monthly");
|
|
3647
|
-
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "min-w-[80px] px-2 py-1 text-xs rounded invisible" });
|
|
3648
|
-
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: cn(
|
|
3649
|
-
"min-w-[80px] 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",
|
|
3650
|
-
billingKey !== "monthly" && "invisible"
|
|
3651
|
-
), children: opt.discountText.replace(
|
|
3652
|
-
"{percent}",
|
|
3653
|
-
String(Math.round(Math.abs(bOpt.discount) * 100))
|
|
3654
|
-
) });
|
|
3655
|
-
})()
|
|
3656
|
-
] }),
|
|
3657
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-2 w-[180px] justify-start", children: [
|
|
3658
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
3676
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3659
3677
|
"button",
|
|
3660
3678
|
{
|
|
3661
3679
|
className: cn(
|
|
3662
|
-
"min-w-[120px] px-6 py-2
|
|
3663
|
-
billingKey === "yearly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600
|
|
3664
|
-
"ml-4"
|
|
3680
|
+
"min-w-[120px] px-6 py-2 font-medium transition text-lg relative",
|
|
3681
|
+
billingKey === "yearly" ? "text-white bg-gradient-to-r from-purple-400 to-pink-500 hover:from-purple-500 hover:to-pink-600 dark:from-purple-500 dark:to-pink-600 dark:hover:from-purple-600 rounded-full shadow-sm" : "text-gray-800 dark:text-gray-200 hover:text-gray-900 dark:hover:text-gray-100 rounded-full"
|
|
3665
3682
|
),
|
|
3666
3683
|
onClick: () => setBillingKey("yearly"),
|
|
3667
3684
|
type: "button",
|
|
3668
3685
|
children: ((_b = billingSwitch.options.find((opt) => opt.key === "yearly")) == null ? void 0 : _b.name) || "Yearly"
|
|
3669
3686
|
}
|
|
3670
|
-
)
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
)
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
) });
|
|
3682
|
-
})()
|
|
3683
|
-
] })
|
|
3687
|
+
)
|
|
3688
|
+
] }) }),
|
|
3689
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "h-8 flex items-center justify-center mb-3", children: (() => {
|
|
3690
|
+
const opt = billingSwitch.options.find((opt2) => opt2.key === billingKey);
|
|
3691
|
+
const bOpt = billingOptions.find((opt2) => opt2.key === billingKey);
|
|
3692
|
+
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return null;
|
|
3693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.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(
|
|
3694
|
+
"{percent}",
|
|
3695
|
+
String(Math.round(Math.abs(bOpt.discount) * 100))
|
|
3696
|
+
) });
|
|
3697
|
+
})() })
|
|
3684
3698
|
] }),
|
|
3685
|
-
/* @__PURE__ */ (0,
|
|
3699
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: plans.map((plan, _idx) => {
|
|
3686
3700
|
var _a2, _b2, _c;
|
|
3687
|
-
return /* @__PURE__ */ (0,
|
|
3701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
3688
3702
|
"div",
|
|
3689
3703
|
{
|
|
3690
3704
|
className: cn(
|
|
@@ -3694,17 +3708,17 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3694
3708
|
),
|
|
3695
3709
|
style: { minHeight: maxFeaturesCount * 100 },
|
|
3696
3710
|
children: [
|
|
3697
|
-
/* @__PURE__ */ (0,
|
|
3698
|
-
/* @__PURE__ */ (0,
|
|
3699
|
-
plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ (0,
|
|
3711
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
3712
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: plan.title }),
|
|
3713
|
+
plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ (0, import_jsx_runtime47.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))
|
|
3700
3714
|
] }),
|
|
3701
3715
|
renderPrice(plan),
|
|
3702
|
-
/* @__PURE__ */ (0,
|
|
3703
|
-
feature ? /* @__PURE__ */ (0,
|
|
3704
|
-
feature && feature.tag && /* @__PURE__ */ (0,
|
|
3705
|
-
feature ? /* @__PURE__ */ (0,
|
|
3716
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("ul", { className: "flex-1 mb-6 mt-4", children: getFeatureRows(plan).map((feature, i) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("li", { className: "flex items-center gap-2 mb-2 min-h-[28px]", children: [
|
|
3717
|
+
feature ? /* @__PURE__ */ (0, import_jsx_runtime47.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_runtime47.jsx)("span", { children: feature.icon }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "font-bold", children: "\u2713" }) }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "inline-flex items-center justify-center w-5 h-5 rounded-full mr-1", children: "\xA0" }),
|
|
3718
|
+
feature && feature.tag && /* @__PURE__ */ (0, import_jsx_runtime47.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 }),
|
|
3719
|
+
feature ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "relative group cursor-pointer text-sm text-gray-800 dark:text-gray-200", children: [
|
|
3706
3720
|
feature.description,
|
|
3707
|
-
feature.tooltip && /* @__PURE__ */ (0,
|
|
3721
|
+
feature.tooltip && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3708
3722
|
"span",
|
|
3709
3723
|
{
|
|
3710
3724
|
className: "ml-1 align-middle inline-flex",
|
|
@@ -3720,13 +3734,13 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3720
3734
|
setTooltip((t2) => __spreadProps(__spreadValues({}, t2), { x: e.clientX, y: e.clientY }));
|
|
3721
3735
|
},
|
|
3722
3736
|
onMouseLeave: () => setTooltip((t2) => __spreadProps(__spreadValues({}, t2), { show: false })),
|
|
3723
|
-
children: /* @__PURE__ */ (0,
|
|
3737
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(globalLucideIcons.FAQ, { className: "w-4 h-4" })
|
|
3724
3738
|
}
|
|
3725
3739
|
)
|
|
3726
|
-
] }) : /* @__PURE__ */ (0,
|
|
3740
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: "\xA0" })
|
|
3727
3741
|
] }, i)) }),
|
|
3728
|
-
/* @__PURE__ */ (0,
|
|
3729
|
-
/* @__PURE__ */ (0,
|
|
3742
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex-1" }),
|
|
3743
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3730
3744
|
"button",
|
|
3731
3745
|
{
|
|
3732
3746
|
className: cn(
|
|
@@ -3749,7 +3763,7 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3749
3763
|
plan.key
|
|
3750
3764
|
);
|
|
3751
3765
|
}) }),
|
|
3752
|
-
/* @__PURE__ */ (0,
|
|
3766
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Tooltip, __spreadValues({}, tooltip))
|
|
3753
3767
|
] });
|
|
3754
3768
|
}
|
|
3755
3769
|
|
|
@@ -3765,13 +3779,13 @@ var React58 = __toESM(require("react"), 1);
|
|
|
3765
3779
|
|
|
3766
3780
|
// ../../node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-context/dist/index.mjs
|
|
3767
3781
|
var React38 = __toESM(require("react"), 1);
|
|
3768
|
-
var
|
|
3782
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3769
3783
|
function createContext2(rootComponentName, defaultContext) {
|
|
3770
3784
|
const Context = React38.createContext(defaultContext);
|
|
3771
3785
|
const Provider = (props) => {
|
|
3772
3786
|
const _a = props, { children } = _a, context = __objRest(_a, ["children"]);
|
|
3773
3787
|
const value = React38.useMemo(() => context, Object.values(context));
|
|
3774
|
-
return /* @__PURE__ */ (0,
|
|
3788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Context.Provider, { value, children });
|
|
3775
3789
|
};
|
|
3776
3790
|
Provider.displayName = rootComponentName + "Provider";
|
|
3777
3791
|
function useContext22(consumerName) {
|
|
@@ -3793,7 +3807,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
3793
3807
|
const _a = props, { scope, children } = _a, context = __objRest(_a, ["scope", "children"]);
|
|
3794
3808
|
const Context = ((_b = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _b[index]) || BaseContext;
|
|
3795
3809
|
const value = React38.useMemo(() => context, Object.values(context));
|
|
3796
|
-
return /* @__PURE__ */ (0,
|
|
3810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Context.Provider, { value, children });
|
|
3797
3811
|
};
|
|
3798
3812
|
Provider.displayName = rootComponentName + "Provider";
|
|
3799
3813
|
function useContext22(consumerName, scope) {
|
|
@@ -3951,7 +3965,7 @@ var React45 = __toESM(require("react"), 1);
|
|
|
3951
3965
|
// ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.1.3_@types+react@19.1.2__@types+rea_43250ccbc78c27b15284efcf829a65d5/node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
3952
3966
|
var React42 = __toESM(require("react"), 1);
|
|
3953
3967
|
var ReactDOM = __toESM(require("react-dom"), 1);
|
|
3954
|
-
var
|
|
3968
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3955
3969
|
var NODES = [
|
|
3956
3970
|
"a",
|
|
3957
3971
|
"button",
|
|
@@ -3979,7 +3993,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
3979
3993
|
if (typeof window !== "undefined") {
|
|
3980
3994
|
window[Symbol.for("radix-ui")] = true;
|
|
3981
3995
|
}
|
|
3982
|
-
return /* @__PURE__ */ (0,
|
|
3996
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Comp, __spreadProps(__spreadValues({}, primitiveProps), { ref: forwardedRef }));
|
|
3983
3997
|
});
|
|
3984
3998
|
Node2.displayName = `Primitive.${node}`;
|
|
3985
3999
|
return __spreadProps(__spreadValues({}, primitive), { [node]: Node2 });
|
|
@@ -4017,7 +4031,7 @@ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis == nul
|
|
|
4017
4031
|
}
|
|
4018
4032
|
|
|
4019
4033
|
// ../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.10_@types+react-dom@19.1.3_@types+react@19.1.2__@_048ea5800fbfacb7489e4b7d728b493c/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
|
|
4020
|
-
var
|
|
4034
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4021
4035
|
var DISMISSABLE_LAYER_NAME = "DismissableLayer";
|
|
4022
4036
|
var CONTEXT_UPDATE = "dismissableLayer.update";
|
|
4023
4037
|
var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
|
|
@@ -4112,7 +4126,7 @@ var DismissableLayer = React45.forwardRef(
|
|
|
4112
4126
|
document.addEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
4113
4127
|
return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
4114
4128
|
}, []);
|
|
4115
|
-
return /* @__PURE__ */ (0,
|
|
4129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4116
4130
|
Primitive.div,
|
|
4117
4131
|
__spreadProps(__spreadValues({}, layerProps), {
|
|
4118
4132
|
ref: composedRefs,
|
|
@@ -4144,7 +4158,7 @@ var DismissableLayerBranch = React45.forwardRef((props, forwardedRef) => {
|
|
|
4144
4158
|
};
|
|
4145
4159
|
}
|
|
4146
4160
|
}, [context.branches]);
|
|
4147
|
-
return /* @__PURE__ */ (0,
|
|
4161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Primitive.div, __spreadProps(__spreadValues({}, props), { ref: composedRefs }));
|
|
4148
4162
|
});
|
|
4149
4163
|
DismissableLayerBranch.displayName = BRANCH_NAME;
|
|
4150
4164
|
function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
|
|
@@ -4228,7 +4242,7 @@ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
|
|
|
4228
4242
|
|
|
4229
4243
|
// ../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.7_@types+react-dom@19.1.3_@types+react@19.1.2__@types+r_1ff7b04b7c975087a2da2b1568ac976e/node_modules/@radix-ui/react-focus-scope/dist/index.mjs
|
|
4230
4244
|
var React46 = __toESM(require("react"), 1);
|
|
4231
|
-
var
|
|
4245
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4232
4246
|
var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
4233
4247
|
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
4234
4248
|
var EVENT_OPTIONS = { bubbles: false, cancelable: true };
|
|
@@ -4351,7 +4365,7 @@ var FocusScope = React46.forwardRef((props, forwardedRef) => {
|
|
|
4351
4365
|
},
|
|
4352
4366
|
[loop, trapped, focusScope.paused]
|
|
4353
4367
|
);
|
|
4354
|
-
return /* @__PURE__ */ (0,
|
|
4368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Primitive.div, __spreadProps(__spreadValues({ tabIndex: -1 }, scopeProps), { ref: composedRefs, onKeyDown: handleKeyDown }));
|
|
4355
4369
|
});
|
|
4356
4370
|
FocusScope.displayName = FOCUS_SCOPE_NAME;
|
|
4357
4371
|
function focusFirst(candidates, { select = false } = {}) {
|
|
@@ -4438,7 +4452,7 @@ function removeLinks(items) {
|
|
|
4438
4452
|
// ../../node_modules/.pnpm/@radix-ui+react-portal@1.1.9_@types+react-dom@19.1.3_@types+react@19.1.2__@types+react@_a0745de0839b0b019298ec068509a840/node_modules/@radix-ui/react-portal/dist/index.mjs
|
|
4439
4453
|
var React47 = __toESM(require("react"), 1);
|
|
4440
4454
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
4441
|
-
var
|
|
4455
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4442
4456
|
var PORTAL_NAME = "Portal";
|
|
4443
4457
|
var Portal = React47.forwardRef((props, forwardedRef) => {
|
|
4444
4458
|
var _b;
|
|
@@ -4446,7 +4460,7 @@ var Portal = React47.forwardRef((props, forwardedRef) => {
|
|
|
4446
4460
|
const [mounted, setMounted] = React47.useState(false);
|
|
4447
4461
|
useLayoutEffect2(() => setMounted(true), []);
|
|
4448
4462
|
const container = containerProp || mounted && ((_b = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : _b.body);
|
|
4449
|
-
return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0,
|
|
4463
|
+
return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Primitive.div, __spreadProps(__spreadValues({}, portalProps), { ref: forwardedRef })), container) : null;
|
|
4450
4464
|
});
|
|
4451
4465
|
Portal.displayName = PORTAL_NAME;
|
|
4452
4466
|
|
|
@@ -5443,7 +5457,7 @@ var hideOthers = function(originalTarget, parentNode, markerName) {
|
|
|
5443
5457
|
};
|
|
5444
5458
|
|
|
5445
5459
|
// ../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.14_@types+react-dom@19.1.3_@types+react@19.1.2__@types+react_848f83211ce5e4d8275fe0d3e11a9387/node_modules/@radix-ui/react-dialog/dist/index.mjs
|
|
5446
|
-
var
|
|
5460
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
5447
5461
|
var DIALOG_NAME = "Dialog";
|
|
5448
5462
|
var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
|
|
5449
5463
|
var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
|
|
@@ -5464,7 +5478,7 @@ var Dialog = (props) => {
|
|
|
5464
5478
|
onChange: onOpenChange,
|
|
5465
5479
|
caller: DIALOG_NAME
|
|
5466
5480
|
});
|
|
5467
|
-
return /* @__PURE__ */ (0,
|
|
5481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5468
5482
|
DialogProvider,
|
|
5469
5483
|
{
|
|
5470
5484
|
scope: __scopeDialog,
|
|
@@ -5488,7 +5502,7 @@ var DialogTrigger = React57.forwardRef(
|
|
|
5488
5502
|
const _a = props, { __scopeDialog } = _a, triggerProps = __objRest(_a, ["__scopeDialog"]);
|
|
5489
5503
|
const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
|
|
5490
5504
|
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
5491
|
-
return /* @__PURE__ */ (0,
|
|
5505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5492
5506
|
Primitive.button,
|
|
5493
5507
|
__spreadProps(__spreadValues({
|
|
5494
5508
|
type: "button",
|
|
@@ -5511,7 +5525,7 @@ var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME2, {
|
|
|
5511
5525
|
var DialogPortal = (props) => {
|
|
5512
5526
|
const { __scopeDialog, forceMount, children, container } = props;
|
|
5513
5527
|
const context = useDialogContext(PORTAL_NAME2, __scopeDialog);
|
|
5514
|
-
return /* @__PURE__ */ (0,
|
|
5528
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React57.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Portal, { asChild: true, container, children: child }) })) });
|
|
5515
5529
|
};
|
|
5516
5530
|
DialogPortal.displayName = PORTAL_NAME2;
|
|
5517
5531
|
var OVERLAY_NAME = "DialogOverlay";
|
|
@@ -5520,7 +5534,7 @@ var DialogOverlay = React57.forwardRef(
|
|
|
5520
5534
|
const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
|
|
5521
5535
|
const _a = props, { forceMount = portalContext.forceMount } = _a, overlayProps = __objRest(_a, ["forceMount"]);
|
|
5522
5536
|
const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
|
|
5523
|
-
return context.modal ? /* @__PURE__ */ (0,
|
|
5537
|
+
return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogOverlayImpl, __spreadProps(__spreadValues({}, overlayProps), { ref: forwardedRef })) }) : null;
|
|
5524
5538
|
}
|
|
5525
5539
|
);
|
|
5526
5540
|
DialogOverlay.displayName = OVERLAY_NAME;
|
|
@@ -5532,7 +5546,7 @@ var DialogOverlayImpl = React57.forwardRef(
|
|
|
5532
5546
|
return (
|
|
5533
5547
|
// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
|
|
5534
5548
|
// ie. when `Overlay` and `Content` are siblings
|
|
5535
|
-
/* @__PURE__ */ (0,
|
|
5549
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5536
5550
|
Primitive.div,
|
|
5537
5551
|
__spreadProps(__spreadValues({
|
|
5538
5552
|
"data-state": getState(context.open)
|
|
@@ -5550,7 +5564,7 @@ var DialogContent = React57.forwardRef(
|
|
|
5550
5564
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
|
|
5551
5565
|
const _a = props, { forceMount = portalContext.forceMount } = _a, contentProps = __objRest(_a, ["forceMount"]);
|
|
5552
5566
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
5553
|
-
return /* @__PURE__ */ (0,
|
|
5567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentModal, __spreadProps(__spreadValues({}, contentProps), { ref: forwardedRef })) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentNonModal, __spreadProps(__spreadValues({}, contentProps), { ref: forwardedRef })) });
|
|
5554
5568
|
}
|
|
5555
5569
|
);
|
|
5556
5570
|
DialogContent.displayName = CONTENT_NAME;
|
|
@@ -5563,7 +5577,7 @@ var DialogContentModal = React57.forwardRef(
|
|
|
5563
5577
|
const content = contentRef.current;
|
|
5564
5578
|
if (content) return hideOthers(content);
|
|
5565
5579
|
}, []);
|
|
5566
|
-
return /* @__PURE__ */ (0,
|
|
5580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5567
5581
|
DialogContentImpl,
|
|
5568
5582
|
__spreadProps(__spreadValues({}, props), {
|
|
5569
5583
|
ref: composedRefs,
|
|
@@ -5593,7 +5607,7 @@ var DialogContentNonModal = React57.forwardRef(
|
|
|
5593
5607
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
5594
5608
|
const hasInteractedOutsideRef = React57.useRef(false);
|
|
5595
5609
|
const hasPointerDownOutsideRef = React57.useRef(false);
|
|
5596
|
-
return /* @__PURE__ */ (0,
|
|
5610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5597
5611
|
DialogContentImpl,
|
|
5598
5612
|
__spreadProps(__spreadValues({}, props), {
|
|
5599
5613
|
ref: forwardedRef,
|
|
@@ -5636,8 +5650,8 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5636
5650
|
const contentRef = React57.useRef(null);
|
|
5637
5651
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
5638
5652
|
useFocusGuards();
|
|
5639
|
-
return /* @__PURE__ */ (0,
|
|
5640
|
-
/* @__PURE__ */ (0,
|
|
5653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
5654
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5641
5655
|
FocusScope,
|
|
5642
5656
|
{
|
|
5643
5657
|
asChild: true,
|
|
@@ -5645,7 +5659,7 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5645
5659
|
trapped: trapFocus,
|
|
5646
5660
|
onMountAutoFocus: onOpenAutoFocus,
|
|
5647
5661
|
onUnmountAutoFocus: onCloseAutoFocus,
|
|
5648
|
-
children: /* @__PURE__ */ (0,
|
|
5662
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5649
5663
|
DismissableLayer,
|
|
5650
5664
|
__spreadProps(__spreadValues({
|
|
5651
5665
|
role: "dialog",
|
|
@@ -5660,9 +5674,9 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5660
5674
|
)
|
|
5661
5675
|
}
|
|
5662
5676
|
),
|
|
5663
|
-
/* @__PURE__ */ (0,
|
|
5664
|
-
/* @__PURE__ */ (0,
|
|
5665
|
-
/* @__PURE__ */ (0,
|
|
5677
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
5678
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TitleWarning, { titleId: context.titleId }),
|
|
5679
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
|
|
5666
5680
|
] })
|
|
5667
5681
|
] });
|
|
5668
5682
|
}
|
|
@@ -5672,7 +5686,7 @@ var DialogTitle = React57.forwardRef(
|
|
|
5672
5686
|
(props, forwardedRef) => {
|
|
5673
5687
|
const _a = props, { __scopeDialog } = _a, titleProps = __objRest(_a, ["__scopeDialog"]);
|
|
5674
5688
|
const context = useDialogContext(TITLE_NAME, __scopeDialog);
|
|
5675
|
-
return /* @__PURE__ */ (0,
|
|
5689
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Primitive.h2, __spreadProps(__spreadValues({ id: context.titleId }, titleProps), { ref: forwardedRef }));
|
|
5676
5690
|
}
|
|
5677
5691
|
);
|
|
5678
5692
|
DialogTitle.displayName = TITLE_NAME;
|
|
@@ -5681,7 +5695,7 @@ var DialogDescription = React57.forwardRef(
|
|
|
5681
5695
|
(props, forwardedRef) => {
|
|
5682
5696
|
const _a = props, { __scopeDialog } = _a, descriptionProps = __objRest(_a, ["__scopeDialog"]);
|
|
5683
5697
|
const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
|
|
5684
|
-
return /* @__PURE__ */ (0,
|
|
5698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Primitive.p, __spreadProps(__spreadValues({ id: context.descriptionId }, descriptionProps), { ref: forwardedRef }));
|
|
5685
5699
|
}
|
|
5686
5700
|
);
|
|
5687
5701
|
DialogDescription.displayName = DESCRIPTION_NAME;
|
|
@@ -5690,7 +5704,7 @@ var DialogClose = React57.forwardRef(
|
|
|
5690
5704
|
(props, forwardedRef) => {
|
|
5691
5705
|
const _a = props, { __scopeDialog } = _a, closeProps = __objRest(_a, ["__scopeDialog"]);
|
|
5692
5706
|
const context = useDialogContext(CLOSE_NAME, __scopeDialog);
|
|
5693
|
-
return /* @__PURE__ */ (0,
|
|
5707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5694
5708
|
Primitive.button,
|
|
5695
5709
|
__spreadProps(__spreadValues({
|
|
5696
5710
|
type: "button"
|
|
@@ -5750,7 +5764,7 @@ var Description = DialogDescription;
|
|
|
5750
5764
|
var Close = DialogClose;
|
|
5751
5765
|
|
|
5752
5766
|
// ../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.14_@types+react-dom@19.1.3_@types+react@19.1.2__@types_c6ff7006a888f63e36d2502e019661c3/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs
|
|
5753
|
-
var
|
|
5767
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
5754
5768
|
var ROOT_NAME = "AlertDialog";
|
|
5755
5769
|
var [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [
|
|
5756
5770
|
createDialogScope
|
|
@@ -5759,7 +5773,7 @@ var useDialogScope = createDialogScope();
|
|
|
5759
5773
|
var AlertDialog = (props) => {
|
|
5760
5774
|
const _a = props, { __scopeAlertDialog } = _a, alertDialogProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5761
5775
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5762
|
-
return /* @__PURE__ */ (0,
|
|
5776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Root, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), alertDialogProps), { modal: true }));
|
|
5763
5777
|
};
|
|
5764
5778
|
AlertDialog.displayName = ROOT_NAME;
|
|
5765
5779
|
var TRIGGER_NAME2 = "AlertDialogTrigger";
|
|
@@ -5767,7 +5781,7 @@ var AlertDialogTrigger = React58.forwardRef(
|
|
|
5767
5781
|
(props, forwardedRef) => {
|
|
5768
5782
|
const _a = props, { __scopeAlertDialog } = _a, triggerProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5769
5783
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5770
|
-
return /* @__PURE__ */ (0,
|
|
5784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), triggerProps), { ref: forwardedRef }));
|
|
5771
5785
|
}
|
|
5772
5786
|
);
|
|
5773
5787
|
AlertDialogTrigger.displayName = TRIGGER_NAME2;
|
|
@@ -5775,7 +5789,7 @@ var PORTAL_NAME3 = "AlertDialogPortal";
|
|
|
5775
5789
|
var AlertDialogPortal = (props) => {
|
|
5776
5790
|
const _a = props, { __scopeAlertDialog } = _a, portalProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5777
5791
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5778
|
-
return /* @__PURE__ */ (0,
|
|
5792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Portal2, __spreadValues(__spreadValues({}, dialogScope), portalProps));
|
|
5779
5793
|
};
|
|
5780
5794
|
AlertDialogPortal.displayName = PORTAL_NAME3;
|
|
5781
5795
|
var OVERLAY_NAME2 = "AlertDialogOverlay";
|
|
@@ -5783,7 +5797,7 @@ var AlertDialogOverlay = React58.forwardRef(
|
|
|
5783
5797
|
(props, forwardedRef) => {
|
|
5784
5798
|
const _a = props, { __scopeAlertDialog } = _a, overlayProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5785
5799
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5786
|
-
return /* @__PURE__ */ (0,
|
|
5800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Overlay, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), overlayProps), { ref: forwardedRef }));
|
|
5787
5801
|
}
|
|
5788
5802
|
);
|
|
5789
5803
|
AlertDialogOverlay.displayName = OVERLAY_NAME2;
|
|
@@ -5797,13 +5811,13 @@ var AlertDialogContent = React58.forwardRef(
|
|
|
5797
5811
|
const contentRef = React58.useRef(null);
|
|
5798
5812
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
5799
5813
|
const cancelRef = React58.useRef(null);
|
|
5800
|
-
return /* @__PURE__ */ (0,
|
|
5814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
5801
5815
|
WarningProvider,
|
|
5802
5816
|
{
|
|
5803
5817
|
contentName: CONTENT_NAME2,
|
|
5804
5818
|
titleName: TITLE_NAME2,
|
|
5805
5819
|
docsSlug: "alert-dialog",
|
|
5806
|
-
children: /* @__PURE__ */ (0,
|
|
5820
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
5807
5821
|
Content,
|
|
5808
5822
|
__spreadProps(__spreadValues(__spreadValues({
|
|
5809
5823
|
role: "alertdialog"
|
|
@@ -5817,8 +5831,8 @@ var AlertDialogContent = React58.forwardRef(
|
|
|
5817
5831
|
onPointerDownOutside: (event) => event.preventDefault(),
|
|
5818
5832
|
onInteractOutside: (event) => event.preventDefault(),
|
|
5819
5833
|
children: [
|
|
5820
|
-
/* @__PURE__ */ (0,
|
|
5821
|
-
/* @__PURE__ */ (0,
|
|
5834
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Slottable, { children }),
|
|
5835
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DescriptionWarning2, { contentRef })
|
|
5822
5836
|
]
|
|
5823
5837
|
})
|
|
5824
5838
|
) })
|
|
@@ -5832,7 +5846,7 @@ var AlertDialogTitle = React58.forwardRef(
|
|
|
5832
5846
|
(props, forwardedRef) => {
|
|
5833
5847
|
const _a = props, { __scopeAlertDialog } = _a, titleProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5834
5848
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5835
|
-
return /* @__PURE__ */ (0,
|
|
5849
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Title, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), titleProps), { ref: forwardedRef }));
|
|
5836
5850
|
}
|
|
5837
5851
|
);
|
|
5838
5852
|
AlertDialogTitle.displayName = TITLE_NAME2;
|
|
@@ -5840,7 +5854,7 @@ var DESCRIPTION_NAME2 = "AlertDialogDescription";
|
|
|
5840
5854
|
var AlertDialogDescription = React58.forwardRef((props, forwardedRef) => {
|
|
5841
5855
|
const _a = props, { __scopeAlertDialog } = _a, descriptionProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5842
5856
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5843
|
-
return /* @__PURE__ */ (0,
|
|
5857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Description, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), descriptionProps), { ref: forwardedRef }));
|
|
5844
5858
|
});
|
|
5845
5859
|
AlertDialogDescription.displayName = DESCRIPTION_NAME2;
|
|
5846
5860
|
var ACTION_NAME = "AlertDialogAction";
|
|
@@ -5848,7 +5862,7 @@ var AlertDialogAction = React58.forwardRef(
|
|
|
5848
5862
|
(props, forwardedRef) => {
|
|
5849
5863
|
const _a = props, { __scopeAlertDialog } = _a, actionProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5850
5864
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5851
|
-
return /* @__PURE__ */ (0,
|
|
5865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Close, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), actionProps), { ref: forwardedRef }));
|
|
5852
5866
|
}
|
|
5853
5867
|
);
|
|
5854
5868
|
AlertDialogAction.displayName = ACTION_NAME;
|
|
@@ -5859,7 +5873,7 @@ var AlertDialogCancel = React58.forwardRef(
|
|
|
5859
5873
|
const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);
|
|
5860
5874
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5861
5875
|
const ref = useComposedRefs(forwardedRef, cancelRef);
|
|
5862
|
-
return /* @__PURE__ */ (0,
|
|
5876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Close, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), cancelProps), { ref }));
|
|
5863
5877
|
}
|
|
5864
5878
|
);
|
|
5865
5879
|
AlertDialogCancel.displayName = CANCEL_NAME;
|
|
@@ -5890,12 +5904,12 @@ var Title2 = AlertDialogTitle;
|
|
|
5890
5904
|
var Description2 = AlertDialogDescription;
|
|
5891
5905
|
|
|
5892
5906
|
// ../base-ui/src/ui/alert-dialog.tsx
|
|
5893
|
-
var
|
|
5907
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
5894
5908
|
var AlertDialog2 = Root2;
|
|
5895
5909
|
var AlertDialogPortal2 = Portal22;
|
|
5896
5910
|
var AlertDialogOverlay2 = React59.forwardRef((_a, ref) => {
|
|
5897
5911
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5898
|
-
return /* @__PURE__ */ (0,
|
|
5912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5899
5913
|
Overlay2,
|
|
5900
5914
|
__spreadProps(__spreadValues({
|
|
5901
5915
|
className: cn(
|
|
@@ -5910,9 +5924,9 @@ var AlertDialogOverlay2 = React59.forwardRef((_a, ref) => {
|
|
|
5910
5924
|
AlertDialogOverlay2.displayName = Overlay2.displayName;
|
|
5911
5925
|
var AlertDialogContent2 = React59.forwardRef((_a, ref) => {
|
|
5912
5926
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5913
|
-
return /* @__PURE__ */ (0,
|
|
5914
|
-
/* @__PURE__ */ (0,
|
|
5915
|
-
/* @__PURE__ */ (0,
|
|
5927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(AlertDialogPortal2, { children: [
|
|
5928
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AlertDialogOverlay2, {}),
|
|
5929
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5916
5930
|
Content2,
|
|
5917
5931
|
__spreadValues({
|
|
5918
5932
|
ref,
|
|
@@ -5931,7 +5945,7 @@ var AlertDialogHeader = (_a) => {
|
|
|
5931
5945
|
} = _b, props = __objRest(_b, [
|
|
5932
5946
|
"className"
|
|
5933
5947
|
]);
|
|
5934
|
-
return /* @__PURE__ */ (0,
|
|
5948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5935
5949
|
"div",
|
|
5936
5950
|
__spreadValues({
|
|
5937
5951
|
className: cn(
|
|
@@ -5948,7 +5962,7 @@ var AlertDialogFooter = (_a) => {
|
|
|
5948
5962
|
} = _b, props = __objRest(_b, [
|
|
5949
5963
|
"className"
|
|
5950
5964
|
]);
|
|
5951
|
-
return /* @__PURE__ */ (0,
|
|
5965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5952
5966
|
"div",
|
|
5953
5967
|
__spreadValues({
|
|
5954
5968
|
className: cn(
|
|
@@ -5961,7 +5975,7 @@ var AlertDialogFooter = (_a) => {
|
|
|
5961
5975
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
5962
5976
|
var AlertDialogTitle2 = React59.forwardRef((_a, ref) => {
|
|
5963
5977
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5964
|
-
return /* @__PURE__ */ (0,
|
|
5978
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5965
5979
|
Title2,
|
|
5966
5980
|
__spreadValues({
|
|
5967
5981
|
ref,
|
|
@@ -5972,7 +5986,7 @@ var AlertDialogTitle2 = React59.forwardRef((_a, ref) => {
|
|
|
5972
5986
|
AlertDialogTitle2.displayName = Title2.displayName;
|
|
5973
5987
|
var AlertDialogDescription2 = React59.forwardRef((_a, ref) => {
|
|
5974
5988
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5975
|
-
return /* @__PURE__ */ (0,
|
|
5989
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5976
5990
|
Description2,
|
|
5977
5991
|
__spreadValues({
|
|
5978
5992
|
ref,
|
|
@@ -5983,7 +5997,7 @@ var AlertDialogDescription2 = React59.forwardRef((_a, ref) => {
|
|
|
5983
5997
|
AlertDialogDescription2.displayName = Description2.displayName;
|
|
5984
5998
|
var AlertDialogAction2 = React59.forwardRef((_a, ref) => {
|
|
5985
5999
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5986
|
-
return /* @__PURE__ */ (0,
|
|
6000
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5987
6001
|
Action,
|
|
5988
6002
|
__spreadValues({
|
|
5989
6003
|
ref,
|
|
@@ -5994,7 +6008,7 @@ var AlertDialogAction2 = React59.forwardRef((_a, ref) => {
|
|
|
5994
6008
|
AlertDialogAction2.displayName = Action.displayName;
|
|
5995
6009
|
var AlertDialogCancel2 = React59.forwardRef((_a, ref) => {
|
|
5996
6010
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5997
|
-
return /* @__PURE__ */ (0,
|
|
6011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5998
6012
|
Cancel,
|
|
5999
6013
|
__spreadValues({
|
|
6000
6014
|
ref,
|
|
@@ -6009,7 +6023,7 @@ var AlertDialogCancel2 = React59.forwardRef((_a, ref) => {
|
|
|
6009
6023
|
AlertDialogCancel2.displayName = Cancel.displayName;
|
|
6010
6024
|
|
|
6011
6025
|
// src/main/ads-alert-dialog.tsx
|
|
6012
|
-
var
|
|
6026
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
6013
6027
|
function AdsAlertDialog({
|
|
6014
6028
|
open,
|
|
6015
6029
|
onOpenChange,
|
|
@@ -6023,32 +6037,32 @@ function AdsAlertDialog({
|
|
|
6023
6037
|
onConfirm
|
|
6024
6038
|
}) {
|
|
6025
6039
|
const [imgError, setImgError] = (0, import_react42.useState)(false);
|
|
6026
|
-
return /* @__PURE__ */ (0,
|
|
6040
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AlertDialog2, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
6027
6041
|
AlertDialogContent2,
|
|
6028
6042
|
{
|
|
6029
6043
|
className: "fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 bg-white dark:bg-neutral-900 rounded-2xl shadow-2xl border border-neutral-200 dark:border-neutral-700 max-w-md w-full min-w-[320px] p-4 flex flex-col items-stretch",
|
|
6030
6044
|
children: [
|
|
6031
|
-
/* @__PURE__ */ (0,
|
|
6032
|
-
/* @__PURE__ */ (0,
|
|
6033
|
-
/* @__PURE__ */ (0,
|
|
6034
|
-
/* @__PURE__ */ (0,
|
|
6045
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center justify-between mb-2", children: [
|
|
6046
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AlertDialogTitle2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center gap-1 min-w-0 text-xl font-semibold", children: [
|
|
6047
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.Info, { className: "w-5 h-5" }),
|
|
6048
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "truncate", children: title })
|
|
6035
6049
|
] }) }),
|
|
6036
|
-
/* @__PURE__ */ (0,
|
|
6050
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6037
6051
|
"button",
|
|
6038
6052
|
{
|
|
6039
6053
|
className: "text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 text-xl ml-4",
|
|
6040
6054
|
onClick: () => onOpenChange(false),
|
|
6041
6055
|
"aria-label": "Close",
|
|
6042
6056
|
tabIndex: 0,
|
|
6043
|
-
children: /* @__PURE__ */ (0,
|
|
6057
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.X, { className: "w-5 h-5" })
|
|
6044
6058
|
}
|
|
6045
6059
|
)
|
|
6046
6060
|
] }),
|
|
6047
|
-
/* @__PURE__ */ (0,
|
|
6048
|
-
imgSrc && /* @__PURE__ */ (0,
|
|
6049
|
-
/* @__PURE__ */ (0,
|
|
6050
|
-
/* @__PURE__ */ (0,
|
|
6051
|
-
] }) : imgHref ? /* @__PURE__ */ (0,
|
|
6061
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AlertDialogDescription2, { className: "text-base font-medium text-neutral-800 dark:text-neutral-100 mb-2", children: description }),
|
|
6062
|
+
imgSrc && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full max-w-[400px] h-[220px] relative flex items-center justify-center mb-2", children: imgError ? /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-neutral-800 border border-dashed border-neutral-300 dark:border-neutral-700 rounded-lg text-neutral-400 text-sm", children: [
|
|
6063
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.ImageOff, { className: "w-12 h-12 mb-2" }),
|
|
6064
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "Image loading failed" })
|
|
6065
|
+
] }) : imgHref ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("a", { href: imgHref, target: "_blank", rel: "noopener noreferrer", className: "block w-full h-full", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6052
6066
|
import_image2.default,
|
|
6053
6067
|
{
|
|
6054
6068
|
src: imgSrc,
|
|
@@ -6061,7 +6075,7 @@ function AdsAlertDialog({
|
|
|
6061
6075
|
onError: () => setImgError(true),
|
|
6062
6076
|
sizes: "(max-width: 400px) 100vw, 400px"
|
|
6063
6077
|
}
|
|
6064
|
-
) }) : /* @__PURE__ */ (0,
|
|
6078
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6065
6079
|
import_image2.default,
|
|
6066
6080
|
{
|
|
6067
6081
|
src: imgSrc,
|
|
@@ -6075,8 +6089,8 @@ function AdsAlertDialog({
|
|
|
6075
6089
|
sizes: "(max-width: 400px) 100vw, 400px"
|
|
6076
6090
|
}
|
|
6077
6091
|
) }),
|
|
6078
|
-
(cancelText || confirmText) && /* @__PURE__ */ (0,
|
|
6079
|
-
cancelText && /* @__PURE__ */ (0,
|
|
6092
|
+
(cancelText || confirmText) && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex justify-end gap-2 mt-2", children: [
|
|
6093
|
+
cancelText && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6080
6094
|
"button",
|
|
6081
6095
|
{
|
|
6082
6096
|
onClick: () => {
|
|
@@ -6087,7 +6101,7 @@ function AdsAlertDialog({
|
|
|
6087
6101
|
children: cancelText
|
|
6088
6102
|
}
|
|
6089
6103
|
),
|
|
6090
|
-
confirmText && /* @__PURE__ */ (0,
|
|
6104
|
+
confirmText && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6091
6105
|
AlertDialogAction2,
|
|
6092
6106
|
{
|
|
6093
6107
|
onClick: () => {
|
|
@@ -6106,7 +6120,7 @@ function AdsAlertDialog({
|
|
|
6106
6120
|
|
|
6107
6121
|
// src/main/x-button.tsx
|
|
6108
6122
|
var import_react43 = require("react");
|
|
6109
|
-
var
|
|
6123
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
6110
6124
|
function XButton(props) {
|
|
6111
6125
|
var _a, _b;
|
|
6112
6126
|
const [isLoading, setIsLoading] = (0, import_react43.useState)(false);
|
|
@@ -6144,19 +6158,19 @@ function XButton(props) {
|
|
|
6144
6158
|
const { button, loadingText: loadingText2, minWidth = "min-w-[110px]", className: className2 = "" } = props;
|
|
6145
6159
|
const isDisabled = button.disabled || isLoading;
|
|
6146
6160
|
const actualLoadingText2 = loadingText2 || ((_a = button.text) == null ? void 0 : _a.trim()) || "Loading...";
|
|
6147
|
-
return /* @__PURE__ */ (0,
|
|
6161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6148
6162
|
"button",
|
|
6149
6163
|
{
|
|
6150
6164
|
onClick: () => handleButtonClick(button.onClick),
|
|
6151
6165
|
disabled: isDisabled,
|
|
6152
6166
|
className: `${minWidth} ${baseButtonClass} rounded-full ${isDisabled ? disabledClass : ""} ${className2}`,
|
|
6153
6167
|
title: button.text,
|
|
6154
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
6155
|
-
/* @__PURE__ */ (0,
|
|
6156
|
-
/* @__PURE__ */ (0,
|
|
6157
|
-
] }) : /* @__PURE__ */ (0,
|
|
6168
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6169
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.Loader2, { className: "w-5 h-5 mr-1 animate-spin" }),
|
|
6170
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: actualLoadingText2 })
|
|
6171
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6158
6172
|
button.icon,
|
|
6159
|
-
/* @__PURE__ */ (0,
|
|
6173
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: button.text })
|
|
6160
6174
|
] })
|
|
6161
6175
|
}
|
|
6162
6176
|
);
|
|
@@ -6164,8 +6178,8 @@ function XButton(props) {
|
|
|
6164
6178
|
const { mainButton, menuItems, loadingText, menuWidth = "w-40", className = "", mainButtonClassName = "", dropdownButtonClassName = "" } = props;
|
|
6165
6179
|
const isMainDisabled = mainButton.disabled || isLoading;
|
|
6166
6180
|
const actualLoadingText = loadingText || ((_b = mainButton.text) == null ? void 0 : _b.trim()) || "Loading...";
|
|
6167
|
-
return /* @__PURE__ */ (0,
|
|
6168
|
-
/* @__PURE__ */ (0,
|
|
6181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `relative flex bg-neutral-200 dark:bg-neutral-800 rounded-full ${className}`, children: [
|
|
6182
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6169
6183
|
"button",
|
|
6170
6184
|
{
|
|
6171
6185
|
onClick: () => handleButtonClick(mainButton.onClick),
|
|
@@ -6175,16 +6189,16 @@ function XButton(props) {
|
|
|
6175
6189
|
if (e.button === 2) e.preventDefault();
|
|
6176
6190
|
},
|
|
6177
6191
|
style: { borderTopRightRadius: 0, borderBottomRightRadius: 0 },
|
|
6178
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
6179
|
-
/* @__PURE__ */ (0,
|
|
6180
|
-
/* @__PURE__ */ (0,
|
|
6181
|
-
] }) : /* @__PURE__ */ (0,
|
|
6192
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6193
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.Loader2, { className: "w-5 h-5 mr-1 animate-spin" }),
|
|
6194
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: actualLoadingText })
|
|
6195
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6182
6196
|
mainButton.icon,
|
|
6183
|
-
/* @__PURE__ */ (0,
|
|
6197
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: mainButton.text })
|
|
6184
6198
|
] })
|
|
6185
6199
|
}
|
|
6186
6200
|
),
|
|
6187
|
-
/* @__PURE__ */ (0,
|
|
6201
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6188
6202
|
"span",
|
|
6189
6203
|
{
|
|
6190
6204
|
className: `flex items-center justify-center w-10 py-2 cursor-pointer transition hover:bg-neutral-300 dark:hover:bg-neutral-700 rounded-r-full ${dropdownButtonClassName}`,
|
|
@@ -6194,15 +6208,15 @@ function XButton(props) {
|
|
|
6194
6208
|
},
|
|
6195
6209
|
tabIndex: 0,
|
|
6196
6210
|
style: { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 },
|
|
6197
|
-
children: /* @__PURE__ */ (0,
|
|
6211
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.ChevronDown, { className: "w-6 h-6" })
|
|
6198
6212
|
}
|
|
6199
6213
|
),
|
|
6200
|
-
menuOpen && /* @__PURE__ */ (0,
|
|
6214
|
+
menuOpen && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6201
6215
|
"div",
|
|
6202
6216
|
{
|
|
6203
6217
|
ref: menuRef,
|
|
6204
6218
|
className: `absolute right-0 top-full ${menuWidth} bg-white dark:bg-neutral-800 text-neutral-800 dark:text-white text-sm rounded-xl shadow-lg z-50 border border-neutral-200 dark:border-neutral-700 overflow-hidden animate-fade-in`,
|
|
6205
|
-
children: menuItems.map((item, index) => /* @__PURE__ */ (0,
|
|
6219
|
+
children: menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
6206
6220
|
"button",
|
|
6207
6221
|
{
|
|
6208
6222
|
onClick: () => {
|
|
@@ -6213,11 +6227,11 @@ function XButton(props) {
|
|
|
6213
6227
|
className: `flex items-center w-full px-4 py-3 transition hover:bg-neutral-300 dark:hover:bg-neutral-600 text-left relative ${item.disabled ? disabledClass : ""}`,
|
|
6214
6228
|
style: item.splitTopBorder ? { borderTop: "1px solid #AC62FD" } : void 0,
|
|
6215
6229
|
children: [
|
|
6216
|
-
/* @__PURE__ */ (0,
|
|
6230
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "flex items-center", children: [
|
|
6217
6231
|
item.icon,
|
|
6218
|
-
/* @__PURE__ */ (0,
|
|
6232
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: item.text })
|
|
6219
6233
|
] }),
|
|
6220
|
-
item.tag && /* @__PURE__ */ (0,
|
|
6234
|
+
item.tag && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6221
6235
|
"span",
|
|
6222
6236
|
{
|
|
6223
6237
|
className: "absolute right-3 top-1 text-[10px] font-semibold",
|
|
@@ -6236,7 +6250,7 @@ function XButton(props) {
|
|
|
6236
6250
|
|
|
6237
6251
|
// src/main/ai-prompt-textarea.tsx
|
|
6238
6252
|
var import_react44 = require("react");
|
|
6239
|
-
var
|
|
6253
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
6240
6254
|
function AIPromptTextarea({
|
|
6241
6255
|
value,
|
|
6242
6256
|
onChange,
|
|
@@ -6324,12 +6338,12 @@ function AIPromptTextarea({
|
|
|
6324
6338
|
};
|
|
6325
6339
|
const renderTitle = () => {
|
|
6326
6340
|
if (!(title == null ? void 0 : title.trim())) return null;
|
|
6327
|
-
return /* @__PURE__ */ (0,
|
|
6328
|
-
title && /* @__PURE__ */ (0,
|
|
6329
|
-
(description == null ? void 0 : description.trim()) && /* @__PURE__ */ (0,
|
|
6341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-1", children: [
|
|
6342
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold text-foreground", children: title }),
|
|
6343
|
+
(description == null ? void 0 : description.trim()) && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm text-gray-400 ml-2", children: description })
|
|
6330
6344
|
] });
|
|
6331
6345
|
};
|
|
6332
|
-
const renderTextarea = (isEmbedded = false) => /* @__PURE__ */ (0,
|
|
6346
|
+
const renderTextarea = (isEmbedded = false) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
6333
6347
|
"textarea",
|
|
6334
6348
|
{
|
|
6335
6349
|
ref: textareaRef,
|
|
@@ -6348,7 +6362,7 @@ function AIPromptTextarea({
|
|
|
6348
6362
|
);
|
|
6349
6363
|
const renderWordCount = () => {
|
|
6350
6364
|
if (!showWordCount) return null;
|
|
6351
|
-
return /* @__PURE__ */ (0,
|
|
6365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
6352
6366
|
"span",
|
|
6353
6367
|
{
|
|
6354
6368
|
className: `text-sm ${wordCount >= maxWords ? "text-red-500" : wordCount > maxWords * 0.75 ? "text-orange-500" : "text-muted-foreground"} ${isWordLimit ? "animate-bounce" : ""}`,
|
|
@@ -6364,16 +6378,16 @@ function AIPromptTextarea({
|
|
|
6364
6378
|
) });
|
|
6365
6379
|
};
|
|
6366
6380
|
if (embed && title) {
|
|
6367
|
-
return /* @__PURE__ */ (0,
|
|
6368
|
-
/* @__PURE__ */ (0,
|
|
6369
|
-
/* @__PURE__ */ (0,
|
|
6370
|
-
/* @__PURE__ */ (0,
|
|
6371
|
-
/* @__PURE__ */ (0,
|
|
6381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-2", children: [
|
|
6382
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "border-2 border-border rounded-lg bg-transparent", children: [
|
|
6383
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "p-4 pb-2", children: renderTitle() }),
|
|
6384
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("hr", { className: "border-t-1 border-border" }),
|
|
6385
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "p-1", children: renderTextarea(true) })
|
|
6372
6386
|
] }),
|
|
6373
6387
|
renderWordCount()
|
|
6374
6388
|
] });
|
|
6375
6389
|
}
|
|
6376
|
-
return /* @__PURE__ */ (0,
|
|
6390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-2", children: [
|
|
6377
6391
|
renderTitle(),
|
|
6378
6392
|
renderTextarea(),
|
|
6379
6393
|
renderWordCount()
|
|
@@ -6395,7 +6409,9 @@ function AIPromptTextarea({
|
|
|
6395
6409
|
SeoContent,
|
|
6396
6410
|
Tips,
|
|
6397
6411
|
Usage,
|
|
6398
|
-
XButton
|
|
6412
|
+
XButton,
|
|
6413
|
+
createRichTextRenderer,
|
|
6414
|
+
richText
|
|
6399
6415
|
});
|
|
6400
6416
|
/*! Bundled license information:
|
|
6401
6417
|
|