@windrun-huaiin/third-ui 5.12.1 → 5.12.2
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 +285 -250
- package/dist/main/index.js.map +1 -1
- package/dist/main/index.mjs +227 -194
- 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/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
|
}
|
|
@@ -3621,14 +3654,14 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3621
3654
|
whiteSpace: "pre-line",
|
|
3622
3655
|
transform: "translateY(-50%)"
|
|
3623
3656
|
};
|
|
3624
|
-
return /* @__PURE__ */ (0,
|
|
3657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { style, children: content });
|
|
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 justify-center items-center gap-8 mb-12", children: [
|
|
3663
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-row-reverse items-center gap-2 w-[180px] justify-end", children: [
|
|
3664
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3632
3665
|
"button",
|
|
3633
3666
|
{
|
|
3634
3667
|
className: cn(
|
|
@@ -3644,8 +3677,8 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3644
3677
|
(() => {
|
|
3645
3678
|
const opt = billingSwitch.options.find((opt2) => opt2.key === "monthly");
|
|
3646
3679
|
const bOpt = billingOptions.find((opt2) => opt2.key === "monthly");
|
|
3647
|
-
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return /* @__PURE__ */ (0,
|
|
3648
|
-
return /* @__PURE__ */ (0,
|
|
3680
|
+
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "min-w-[80px] px-2 py-1 text-xs rounded invisible" });
|
|
3681
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: cn(
|
|
3649
3682
|
"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
3683
|
billingKey !== "monthly" && "invisible"
|
|
3651
3684
|
), children: opt.discountText.replace(
|
|
@@ -3654,8 +3687,8 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3654
3687
|
) });
|
|
3655
3688
|
})()
|
|
3656
3689
|
] }),
|
|
3657
|
-
/* @__PURE__ */ (0,
|
|
3658
|
-
/* @__PURE__ */ (0,
|
|
3690
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2 w-[180px] justify-start", children: [
|
|
3691
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3659
3692
|
"button",
|
|
3660
3693
|
{
|
|
3661
3694
|
className: cn(
|
|
@@ -3671,8 +3704,8 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3671
3704
|
(() => {
|
|
3672
3705
|
const opt = billingSwitch.options.find((opt2) => opt2.key === "yearly");
|
|
3673
3706
|
const bOpt = billingOptions.find((opt2) => opt2.key === "yearly");
|
|
3674
|
-
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return /* @__PURE__ */ (0,
|
|
3675
|
-
return /* @__PURE__ */ (0,
|
|
3707
|
+
if (!(opt && bOpt && opt.discountText && bOpt.discount !== 0)) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "min-w-[80px] px-2 py-1 text-xs rounded invisible" });
|
|
3708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: cn(
|
|
3676
3709
|
"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",
|
|
3677
3710
|
billingKey !== "yearly" && "invisible"
|
|
3678
3711
|
), children: opt.discountText.replace(
|
|
@@ -3682,9 +3715,9 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3682
3715
|
})()
|
|
3683
3716
|
] })
|
|
3684
3717
|
] }),
|
|
3685
|
-
/* @__PURE__ */ (0,
|
|
3718
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: plans.map((plan, _idx) => {
|
|
3686
3719
|
var _a2, _b2, _c;
|
|
3687
|
-
return /* @__PURE__ */ (0,
|
|
3720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
3688
3721
|
"div",
|
|
3689
3722
|
{
|
|
3690
3723
|
className: cn(
|
|
@@ -3694,17 +3727,17 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3694
3727
|
),
|
|
3695
3728
|
style: { minHeight: maxFeaturesCount * 100 },
|
|
3696
3729
|
children: [
|
|
3697
|
-
/* @__PURE__ */ (0,
|
|
3698
|
-
/* @__PURE__ */ (0,
|
|
3699
|
-
plan.titleTags && plan.titleTags.map((tag, i) => /* @__PURE__ */ (0,
|
|
3730
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
3731
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: plan.title }),
|
|
3732
|
+
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
3733
|
] }),
|
|
3701
3734
|
renderPrice(plan),
|
|
3702
|
-
/* @__PURE__ */ (0,
|
|
3703
|
-
feature ? /* @__PURE__ */ (0,
|
|
3704
|
-
feature && feature.tag && /* @__PURE__ */ (0,
|
|
3705
|
-
feature ? /* @__PURE__ */ (0,
|
|
3735
|
+
/* @__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: [
|
|
3736
|
+
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" }),
|
|
3737
|
+
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 }),
|
|
3738
|
+
feature ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "relative group cursor-pointer text-sm text-gray-800 dark:text-gray-200", children: [
|
|
3706
3739
|
feature.description,
|
|
3707
|
-
feature.tooltip && /* @__PURE__ */ (0,
|
|
3740
|
+
feature.tooltip && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3708
3741
|
"span",
|
|
3709
3742
|
{
|
|
3710
3743
|
className: "ml-1 align-middle inline-flex",
|
|
@@ -3720,13 +3753,13 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3720
3753
|
setTooltip((t2) => __spreadProps(__spreadValues({}, t2), { x: e.clientX, y: e.clientY }));
|
|
3721
3754
|
},
|
|
3722
3755
|
onMouseLeave: () => setTooltip((t2) => __spreadProps(__spreadValues({}, t2), { show: false })),
|
|
3723
|
-
children: /* @__PURE__ */ (0,
|
|
3756
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(globalLucideIcons.FAQ, { className: "w-4 h-4" })
|
|
3724
3757
|
}
|
|
3725
3758
|
)
|
|
3726
|
-
] }) : /* @__PURE__ */ (0,
|
|
3759
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: "\xA0" })
|
|
3727
3760
|
] }, i)) }),
|
|
3728
|
-
/* @__PURE__ */ (0,
|
|
3729
|
-
/* @__PURE__ */ (0,
|
|
3761
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex-1" }),
|
|
3762
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3730
3763
|
"button",
|
|
3731
3764
|
{
|
|
3732
3765
|
className: cn(
|
|
@@ -3749,7 +3782,7 @@ function PricePlan({ currency = "$", pricePlanConfig, sectionClassName }) {
|
|
|
3749
3782
|
plan.key
|
|
3750
3783
|
);
|
|
3751
3784
|
}) }),
|
|
3752
|
-
/* @__PURE__ */ (0,
|
|
3785
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Tooltip, __spreadValues({}, tooltip))
|
|
3753
3786
|
] });
|
|
3754
3787
|
}
|
|
3755
3788
|
|
|
@@ -3765,13 +3798,13 @@ var React58 = __toESM(require("react"), 1);
|
|
|
3765
3798
|
|
|
3766
3799
|
// ../../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
3800
|
var React38 = __toESM(require("react"), 1);
|
|
3768
|
-
var
|
|
3801
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3769
3802
|
function createContext2(rootComponentName, defaultContext) {
|
|
3770
3803
|
const Context = React38.createContext(defaultContext);
|
|
3771
3804
|
const Provider = (props) => {
|
|
3772
3805
|
const _a = props, { children } = _a, context = __objRest(_a, ["children"]);
|
|
3773
3806
|
const value = React38.useMemo(() => context, Object.values(context));
|
|
3774
|
-
return /* @__PURE__ */ (0,
|
|
3807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Context.Provider, { value, children });
|
|
3775
3808
|
};
|
|
3776
3809
|
Provider.displayName = rootComponentName + "Provider";
|
|
3777
3810
|
function useContext22(consumerName) {
|
|
@@ -3793,7 +3826,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
3793
3826
|
const _a = props, { scope, children } = _a, context = __objRest(_a, ["scope", "children"]);
|
|
3794
3827
|
const Context = ((_b = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _b[index]) || BaseContext;
|
|
3795
3828
|
const value = React38.useMemo(() => context, Object.values(context));
|
|
3796
|
-
return /* @__PURE__ */ (0,
|
|
3829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Context.Provider, { value, children });
|
|
3797
3830
|
};
|
|
3798
3831
|
Provider.displayName = rootComponentName + "Provider";
|
|
3799
3832
|
function useContext22(consumerName, scope) {
|
|
@@ -3951,7 +3984,7 @@ var React45 = __toESM(require("react"), 1);
|
|
|
3951
3984
|
// ../../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
3985
|
var React42 = __toESM(require("react"), 1);
|
|
3953
3986
|
var ReactDOM = __toESM(require("react-dom"), 1);
|
|
3954
|
-
var
|
|
3987
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3955
3988
|
var NODES = [
|
|
3956
3989
|
"a",
|
|
3957
3990
|
"button",
|
|
@@ -3979,7 +4012,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
3979
4012
|
if (typeof window !== "undefined") {
|
|
3980
4013
|
window[Symbol.for("radix-ui")] = true;
|
|
3981
4014
|
}
|
|
3982
|
-
return /* @__PURE__ */ (0,
|
|
4015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Comp, __spreadProps(__spreadValues({}, primitiveProps), { ref: forwardedRef }));
|
|
3983
4016
|
});
|
|
3984
4017
|
Node2.displayName = `Primitive.${node}`;
|
|
3985
4018
|
return __spreadProps(__spreadValues({}, primitive), { [node]: Node2 });
|
|
@@ -4017,7 +4050,7 @@ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis == nul
|
|
|
4017
4050
|
}
|
|
4018
4051
|
|
|
4019
4052
|
// ../../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
|
|
4053
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4021
4054
|
var DISMISSABLE_LAYER_NAME = "DismissableLayer";
|
|
4022
4055
|
var CONTEXT_UPDATE = "dismissableLayer.update";
|
|
4023
4056
|
var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
|
|
@@ -4112,7 +4145,7 @@ var DismissableLayer = React45.forwardRef(
|
|
|
4112
4145
|
document.addEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
4113
4146
|
return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
4114
4147
|
}, []);
|
|
4115
|
-
return /* @__PURE__ */ (0,
|
|
4148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4116
4149
|
Primitive.div,
|
|
4117
4150
|
__spreadProps(__spreadValues({}, layerProps), {
|
|
4118
4151
|
ref: composedRefs,
|
|
@@ -4144,7 +4177,7 @@ var DismissableLayerBranch = React45.forwardRef((props, forwardedRef) => {
|
|
|
4144
4177
|
};
|
|
4145
4178
|
}
|
|
4146
4179
|
}, [context.branches]);
|
|
4147
|
-
return /* @__PURE__ */ (0,
|
|
4180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Primitive.div, __spreadProps(__spreadValues({}, props), { ref: composedRefs }));
|
|
4148
4181
|
});
|
|
4149
4182
|
DismissableLayerBranch.displayName = BRANCH_NAME;
|
|
4150
4183
|
function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
|
|
@@ -4228,7 +4261,7 @@ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
|
|
|
4228
4261
|
|
|
4229
4262
|
// ../../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
4263
|
var React46 = __toESM(require("react"), 1);
|
|
4231
|
-
var
|
|
4264
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4232
4265
|
var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
4233
4266
|
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
4234
4267
|
var EVENT_OPTIONS = { bubbles: false, cancelable: true };
|
|
@@ -4351,7 +4384,7 @@ var FocusScope = React46.forwardRef((props, forwardedRef) => {
|
|
|
4351
4384
|
},
|
|
4352
4385
|
[loop, trapped, focusScope.paused]
|
|
4353
4386
|
);
|
|
4354
|
-
return /* @__PURE__ */ (0,
|
|
4387
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Primitive.div, __spreadProps(__spreadValues({ tabIndex: -1 }, scopeProps), { ref: composedRefs, onKeyDown: handleKeyDown }));
|
|
4355
4388
|
});
|
|
4356
4389
|
FocusScope.displayName = FOCUS_SCOPE_NAME;
|
|
4357
4390
|
function focusFirst(candidates, { select = false } = {}) {
|
|
@@ -4438,7 +4471,7 @@ function removeLinks(items) {
|
|
|
4438
4471
|
// ../../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
4472
|
var React47 = __toESM(require("react"), 1);
|
|
4440
4473
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
4441
|
-
var
|
|
4474
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4442
4475
|
var PORTAL_NAME = "Portal";
|
|
4443
4476
|
var Portal = React47.forwardRef((props, forwardedRef) => {
|
|
4444
4477
|
var _b;
|
|
@@ -4446,7 +4479,7 @@ var Portal = React47.forwardRef((props, forwardedRef) => {
|
|
|
4446
4479
|
const [mounted, setMounted] = React47.useState(false);
|
|
4447
4480
|
useLayoutEffect2(() => setMounted(true), []);
|
|
4448
4481
|
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,
|
|
4482
|
+
return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Primitive.div, __spreadProps(__spreadValues({}, portalProps), { ref: forwardedRef })), container) : null;
|
|
4450
4483
|
});
|
|
4451
4484
|
Portal.displayName = PORTAL_NAME;
|
|
4452
4485
|
|
|
@@ -5443,7 +5476,7 @@ var hideOthers = function(originalTarget, parentNode, markerName) {
|
|
|
5443
5476
|
};
|
|
5444
5477
|
|
|
5445
5478
|
// ../../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
|
|
5479
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
5447
5480
|
var DIALOG_NAME = "Dialog";
|
|
5448
5481
|
var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
|
|
5449
5482
|
var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
|
|
@@ -5464,7 +5497,7 @@ var Dialog = (props) => {
|
|
|
5464
5497
|
onChange: onOpenChange,
|
|
5465
5498
|
caller: DIALOG_NAME
|
|
5466
5499
|
});
|
|
5467
|
-
return /* @__PURE__ */ (0,
|
|
5500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5468
5501
|
DialogProvider,
|
|
5469
5502
|
{
|
|
5470
5503
|
scope: __scopeDialog,
|
|
@@ -5488,7 +5521,7 @@ var DialogTrigger = React57.forwardRef(
|
|
|
5488
5521
|
const _a = props, { __scopeDialog } = _a, triggerProps = __objRest(_a, ["__scopeDialog"]);
|
|
5489
5522
|
const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
|
|
5490
5523
|
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
5491
|
-
return /* @__PURE__ */ (0,
|
|
5524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5492
5525
|
Primitive.button,
|
|
5493
5526
|
__spreadProps(__spreadValues({
|
|
5494
5527
|
type: "button",
|
|
@@ -5511,7 +5544,7 @@ var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME2, {
|
|
|
5511
5544
|
var DialogPortal = (props) => {
|
|
5512
5545
|
const { __scopeDialog, forceMount, children, container } = props;
|
|
5513
5546
|
const context = useDialogContext(PORTAL_NAME2, __scopeDialog);
|
|
5514
|
-
return /* @__PURE__ */ (0,
|
|
5547
|
+
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
5548
|
};
|
|
5516
5549
|
DialogPortal.displayName = PORTAL_NAME2;
|
|
5517
5550
|
var OVERLAY_NAME = "DialogOverlay";
|
|
@@ -5520,7 +5553,7 @@ var DialogOverlay = React57.forwardRef(
|
|
|
5520
5553
|
const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
|
|
5521
5554
|
const _a = props, { forceMount = portalContext.forceMount } = _a, overlayProps = __objRest(_a, ["forceMount"]);
|
|
5522
5555
|
const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
|
|
5523
|
-
return context.modal ? /* @__PURE__ */ (0,
|
|
5556
|
+
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
5557
|
}
|
|
5525
5558
|
);
|
|
5526
5559
|
DialogOverlay.displayName = OVERLAY_NAME;
|
|
@@ -5532,7 +5565,7 @@ var DialogOverlayImpl = React57.forwardRef(
|
|
|
5532
5565
|
return (
|
|
5533
5566
|
// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
|
|
5534
5567
|
// ie. when `Overlay` and `Content` are siblings
|
|
5535
|
-
/* @__PURE__ */ (0,
|
|
5568
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5536
5569
|
Primitive.div,
|
|
5537
5570
|
__spreadProps(__spreadValues({
|
|
5538
5571
|
"data-state": getState(context.open)
|
|
@@ -5550,7 +5583,7 @@ var DialogContent = React57.forwardRef(
|
|
|
5550
5583
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
|
|
5551
5584
|
const _a = props, { forceMount = portalContext.forceMount } = _a, contentProps = __objRest(_a, ["forceMount"]);
|
|
5552
5585
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
5553
|
-
return /* @__PURE__ */ (0,
|
|
5586
|
+
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
5587
|
}
|
|
5555
5588
|
);
|
|
5556
5589
|
DialogContent.displayName = CONTENT_NAME;
|
|
@@ -5563,7 +5596,7 @@ var DialogContentModal = React57.forwardRef(
|
|
|
5563
5596
|
const content = contentRef.current;
|
|
5564
5597
|
if (content) return hideOthers(content);
|
|
5565
5598
|
}, []);
|
|
5566
|
-
return /* @__PURE__ */ (0,
|
|
5599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5567
5600
|
DialogContentImpl,
|
|
5568
5601
|
__spreadProps(__spreadValues({}, props), {
|
|
5569
5602
|
ref: composedRefs,
|
|
@@ -5593,7 +5626,7 @@ var DialogContentNonModal = React57.forwardRef(
|
|
|
5593
5626
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
5594
5627
|
const hasInteractedOutsideRef = React57.useRef(false);
|
|
5595
5628
|
const hasPointerDownOutsideRef = React57.useRef(false);
|
|
5596
|
-
return /* @__PURE__ */ (0,
|
|
5629
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5597
5630
|
DialogContentImpl,
|
|
5598
5631
|
__spreadProps(__spreadValues({}, props), {
|
|
5599
5632
|
ref: forwardedRef,
|
|
@@ -5636,8 +5669,8 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5636
5669
|
const contentRef = React57.useRef(null);
|
|
5637
5670
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
5638
5671
|
useFocusGuards();
|
|
5639
|
-
return /* @__PURE__ */ (0,
|
|
5640
|
-
/* @__PURE__ */ (0,
|
|
5672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
5673
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5641
5674
|
FocusScope,
|
|
5642
5675
|
{
|
|
5643
5676
|
asChild: true,
|
|
@@ -5645,7 +5678,7 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5645
5678
|
trapped: trapFocus,
|
|
5646
5679
|
onMountAutoFocus: onOpenAutoFocus,
|
|
5647
5680
|
onUnmountAutoFocus: onCloseAutoFocus,
|
|
5648
|
-
children: /* @__PURE__ */ (0,
|
|
5681
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5649
5682
|
DismissableLayer,
|
|
5650
5683
|
__spreadProps(__spreadValues({
|
|
5651
5684
|
role: "dialog",
|
|
@@ -5660,9 +5693,9 @@ var DialogContentImpl = React57.forwardRef(
|
|
|
5660
5693
|
)
|
|
5661
5694
|
}
|
|
5662
5695
|
),
|
|
5663
|
-
/* @__PURE__ */ (0,
|
|
5664
|
-
/* @__PURE__ */ (0,
|
|
5665
|
-
/* @__PURE__ */ (0,
|
|
5696
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
5697
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TitleWarning, { titleId: context.titleId }),
|
|
5698
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
|
|
5666
5699
|
] })
|
|
5667
5700
|
] });
|
|
5668
5701
|
}
|
|
@@ -5672,7 +5705,7 @@ var DialogTitle = React57.forwardRef(
|
|
|
5672
5705
|
(props, forwardedRef) => {
|
|
5673
5706
|
const _a = props, { __scopeDialog } = _a, titleProps = __objRest(_a, ["__scopeDialog"]);
|
|
5674
5707
|
const context = useDialogContext(TITLE_NAME, __scopeDialog);
|
|
5675
|
-
return /* @__PURE__ */ (0,
|
|
5708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Primitive.h2, __spreadProps(__spreadValues({ id: context.titleId }, titleProps), { ref: forwardedRef }));
|
|
5676
5709
|
}
|
|
5677
5710
|
);
|
|
5678
5711
|
DialogTitle.displayName = TITLE_NAME;
|
|
@@ -5681,7 +5714,7 @@ var DialogDescription = React57.forwardRef(
|
|
|
5681
5714
|
(props, forwardedRef) => {
|
|
5682
5715
|
const _a = props, { __scopeDialog } = _a, descriptionProps = __objRest(_a, ["__scopeDialog"]);
|
|
5683
5716
|
const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
|
|
5684
|
-
return /* @__PURE__ */ (0,
|
|
5717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Primitive.p, __spreadProps(__spreadValues({ id: context.descriptionId }, descriptionProps), { ref: forwardedRef }));
|
|
5685
5718
|
}
|
|
5686
5719
|
);
|
|
5687
5720
|
DialogDescription.displayName = DESCRIPTION_NAME;
|
|
@@ -5690,7 +5723,7 @@ var DialogClose = React57.forwardRef(
|
|
|
5690
5723
|
(props, forwardedRef) => {
|
|
5691
5724
|
const _a = props, { __scopeDialog } = _a, closeProps = __objRest(_a, ["__scopeDialog"]);
|
|
5692
5725
|
const context = useDialogContext(CLOSE_NAME, __scopeDialog);
|
|
5693
|
-
return /* @__PURE__ */ (0,
|
|
5726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5694
5727
|
Primitive.button,
|
|
5695
5728
|
__spreadProps(__spreadValues({
|
|
5696
5729
|
type: "button"
|
|
@@ -5750,7 +5783,7 @@ var Description = DialogDescription;
|
|
|
5750
5783
|
var Close = DialogClose;
|
|
5751
5784
|
|
|
5752
5785
|
// ../../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
|
|
5786
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
5754
5787
|
var ROOT_NAME = "AlertDialog";
|
|
5755
5788
|
var [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [
|
|
5756
5789
|
createDialogScope
|
|
@@ -5759,7 +5792,7 @@ var useDialogScope = createDialogScope();
|
|
|
5759
5792
|
var AlertDialog = (props) => {
|
|
5760
5793
|
const _a = props, { __scopeAlertDialog } = _a, alertDialogProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5761
5794
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5762
|
-
return /* @__PURE__ */ (0,
|
|
5795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Root, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), alertDialogProps), { modal: true }));
|
|
5763
5796
|
};
|
|
5764
5797
|
AlertDialog.displayName = ROOT_NAME;
|
|
5765
5798
|
var TRIGGER_NAME2 = "AlertDialogTrigger";
|
|
@@ -5767,7 +5800,7 @@ var AlertDialogTrigger = React58.forwardRef(
|
|
|
5767
5800
|
(props, forwardedRef) => {
|
|
5768
5801
|
const _a = props, { __scopeAlertDialog } = _a, triggerProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5769
5802
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5770
|
-
return /* @__PURE__ */ (0,
|
|
5803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), triggerProps), { ref: forwardedRef }));
|
|
5771
5804
|
}
|
|
5772
5805
|
);
|
|
5773
5806
|
AlertDialogTrigger.displayName = TRIGGER_NAME2;
|
|
@@ -5775,7 +5808,7 @@ var PORTAL_NAME3 = "AlertDialogPortal";
|
|
|
5775
5808
|
var AlertDialogPortal = (props) => {
|
|
5776
5809
|
const _a = props, { __scopeAlertDialog } = _a, portalProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5777
5810
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5778
|
-
return /* @__PURE__ */ (0,
|
|
5811
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Portal2, __spreadValues(__spreadValues({}, dialogScope), portalProps));
|
|
5779
5812
|
};
|
|
5780
5813
|
AlertDialogPortal.displayName = PORTAL_NAME3;
|
|
5781
5814
|
var OVERLAY_NAME2 = "AlertDialogOverlay";
|
|
@@ -5783,7 +5816,7 @@ var AlertDialogOverlay = React58.forwardRef(
|
|
|
5783
5816
|
(props, forwardedRef) => {
|
|
5784
5817
|
const _a = props, { __scopeAlertDialog } = _a, overlayProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5785
5818
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5786
|
-
return /* @__PURE__ */ (0,
|
|
5819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Overlay, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), overlayProps), { ref: forwardedRef }));
|
|
5787
5820
|
}
|
|
5788
5821
|
);
|
|
5789
5822
|
AlertDialogOverlay.displayName = OVERLAY_NAME2;
|
|
@@ -5797,13 +5830,13 @@ var AlertDialogContent = React58.forwardRef(
|
|
|
5797
5830
|
const contentRef = React58.useRef(null);
|
|
5798
5831
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
5799
5832
|
const cancelRef = React58.useRef(null);
|
|
5800
|
-
return /* @__PURE__ */ (0,
|
|
5833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
5801
5834
|
WarningProvider,
|
|
5802
5835
|
{
|
|
5803
5836
|
contentName: CONTENT_NAME2,
|
|
5804
5837
|
titleName: TITLE_NAME2,
|
|
5805
5838
|
docsSlug: "alert-dialog",
|
|
5806
|
-
children: /* @__PURE__ */ (0,
|
|
5839
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
5807
5840
|
Content,
|
|
5808
5841
|
__spreadProps(__spreadValues(__spreadValues({
|
|
5809
5842
|
role: "alertdialog"
|
|
@@ -5817,8 +5850,8 @@ var AlertDialogContent = React58.forwardRef(
|
|
|
5817
5850
|
onPointerDownOutside: (event) => event.preventDefault(),
|
|
5818
5851
|
onInteractOutside: (event) => event.preventDefault(),
|
|
5819
5852
|
children: [
|
|
5820
|
-
/* @__PURE__ */ (0,
|
|
5821
|
-
/* @__PURE__ */ (0,
|
|
5853
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Slottable, { children }),
|
|
5854
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DescriptionWarning2, { contentRef })
|
|
5822
5855
|
]
|
|
5823
5856
|
})
|
|
5824
5857
|
) })
|
|
@@ -5832,7 +5865,7 @@ var AlertDialogTitle = React58.forwardRef(
|
|
|
5832
5865
|
(props, forwardedRef) => {
|
|
5833
5866
|
const _a = props, { __scopeAlertDialog } = _a, titleProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5834
5867
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5835
|
-
return /* @__PURE__ */ (0,
|
|
5868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Title, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), titleProps), { ref: forwardedRef }));
|
|
5836
5869
|
}
|
|
5837
5870
|
);
|
|
5838
5871
|
AlertDialogTitle.displayName = TITLE_NAME2;
|
|
@@ -5840,7 +5873,7 @@ var DESCRIPTION_NAME2 = "AlertDialogDescription";
|
|
|
5840
5873
|
var AlertDialogDescription = React58.forwardRef((props, forwardedRef) => {
|
|
5841
5874
|
const _a = props, { __scopeAlertDialog } = _a, descriptionProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5842
5875
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5843
|
-
return /* @__PURE__ */ (0,
|
|
5876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Description, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), descriptionProps), { ref: forwardedRef }));
|
|
5844
5877
|
});
|
|
5845
5878
|
AlertDialogDescription.displayName = DESCRIPTION_NAME2;
|
|
5846
5879
|
var ACTION_NAME = "AlertDialogAction";
|
|
@@ -5848,7 +5881,7 @@ var AlertDialogAction = React58.forwardRef(
|
|
|
5848
5881
|
(props, forwardedRef) => {
|
|
5849
5882
|
const _a = props, { __scopeAlertDialog } = _a, actionProps = __objRest(_a, ["__scopeAlertDialog"]);
|
|
5850
5883
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5851
|
-
return /* @__PURE__ */ (0,
|
|
5884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Close, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), actionProps), { ref: forwardedRef }));
|
|
5852
5885
|
}
|
|
5853
5886
|
);
|
|
5854
5887
|
AlertDialogAction.displayName = ACTION_NAME;
|
|
@@ -5859,7 +5892,7 @@ var AlertDialogCancel = React58.forwardRef(
|
|
|
5859
5892
|
const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);
|
|
5860
5893
|
const dialogScope = useDialogScope(__scopeAlertDialog);
|
|
5861
5894
|
const ref = useComposedRefs(forwardedRef, cancelRef);
|
|
5862
|
-
return /* @__PURE__ */ (0,
|
|
5895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Close, __spreadProps(__spreadValues(__spreadValues({}, dialogScope), cancelProps), { ref }));
|
|
5863
5896
|
}
|
|
5864
5897
|
);
|
|
5865
5898
|
AlertDialogCancel.displayName = CANCEL_NAME;
|
|
@@ -5890,12 +5923,12 @@ var Title2 = AlertDialogTitle;
|
|
|
5890
5923
|
var Description2 = AlertDialogDescription;
|
|
5891
5924
|
|
|
5892
5925
|
// ../base-ui/src/ui/alert-dialog.tsx
|
|
5893
|
-
var
|
|
5926
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
5894
5927
|
var AlertDialog2 = Root2;
|
|
5895
5928
|
var AlertDialogPortal2 = Portal22;
|
|
5896
5929
|
var AlertDialogOverlay2 = React59.forwardRef((_a, ref) => {
|
|
5897
5930
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5898
|
-
return /* @__PURE__ */ (0,
|
|
5931
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5899
5932
|
Overlay2,
|
|
5900
5933
|
__spreadProps(__spreadValues({
|
|
5901
5934
|
className: cn(
|
|
@@ -5910,9 +5943,9 @@ var AlertDialogOverlay2 = React59.forwardRef((_a, ref) => {
|
|
|
5910
5943
|
AlertDialogOverlay2.displayName = Overlay2.displayName;
|
|
5911
5944
|
var AlertDialogContent2 = React59.forwardRef((_a, ref) => {
|
|
5912
5945
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5913
|
-
return /* @__PURE__ */ (0,
|
|
5914
|
-
/* @__PURE__ */ (0,
|
|
5915
|
-
/* @__PURE__ */ (0,
|
|
5946
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(AlertDialogPortal2, { children: [
|
|
5947
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AlertDialogOverlay2, {}),
|
|
5948
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5916
5949
|
Content2,
|
|
5917
5950
|
__spreadValues({
|
|
5918
5951
|
ref,
|
|
@@ -5931,7 +5964,7 @@ var AlertDialogHeader = (_a) => {
|
|
|
5931
5964
|
} = _b, props = __objRest(_b, [
|
|
5932
5965
|
"className"
|
|
5933
5966
|
]);
|
|
5934
|
-
return /* @__PURE__ */ (0,
|
|
5967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5935
5968
|
"div",
|
|
5936
5969
|
__spreadValues({
|
|
5937
5970
|
className: cn(
|
|
@@ -5948,7 +5981,7 @@ var AlertDialogFooter = (_a) => {
|
|
|
5948
5981
|
} = _b, props = __objRest(_b, [
|
|
5949
5982
|
"className"
|
|
5950
5983
|
]);
|
|
5951
|
-
return /* @__PURE__ */ (0,
|
|
5984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5952
5985
|
"div",
|
|
5953
5986
|
__spreadValues({
|
|
5954
5987
|
className: cn(
|
|
@@ -5961,7 +5994,7 @@ var AlertDialogFooter = (_a) => {
|
|
|
5961
5994
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
5962
5995
|
var AlertDialogTitle2 = React59.forwardRef((_a, ref) => {
|
|
5963
5996
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5964
|
-
return /* @__PURE__ */ (0,
|
|
5997
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5965
5998
|
Title2,
|
|
5966
5999
|
__spreadValues({
|
|
5967
6000
|
ref,
|
|
@@ -5972,7 +6005,7 @@ var AlertDialogTitle2 = React59.forwardRef((_a, ref) => {
|
|
|
5972
6005
|
AlertDialogTitle2.displayName = Title2.displayName;
|
|
5973
6006
|
var AlertDialogDescription2 = React59.forwardRef((_a, ref) => {
|
|
5974
6007
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5975
|
-
return /* @__PURE__ */ (0,
|
|
6008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5976
6009
|
Description2,
|
|
5977
6010
|
__spreadValues({
|
|
5978
6011
|
ref,
|
|
@@ -5983,7 +6016,7 @@ var AlertDialogDescription2 = React59.forwardRef((_a, ref) => {
|
|
|
5983
6016
|
AlertDialogDescription2.displayName = Description2.displayName;
|
|
5984
6017
|
var AlertDialogAction2 = React59.forwardRef((_a, ref) => {
|
|
5985
6018
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5986
|
-
return /* @__PURE__ */ (0,
|
|
6019
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5987
6020
|
Action,
|
|
5988
6021
|
__spreadValues({
|
|
5989
6022
|
ref,
|
|
@@ -5994,7 +6027,7 @@ var AlertDialogAction2 = React59.forwardRef((_a, ref) => {
|
|
|
5994
6027
|
AlertDialogAction2.displayName = Action.displayName;
|
|
5995
6028
|
var AlertDialogCancel2 = React59.forwardRef((_a, ref) => {
|
|
5996
6029
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5997
|
-
return /* @__PURE__ */ (0,
|
|
6030
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5998
6031
|
Cancel,
|
|
5999
6032
|
__spreadValues({
|
|
6000
6033
|
ref,
|
|
@@ -6009,7 +6042,7 @@ var AlertDialogCancel2 = React59.forwardRef((_a, ref) => {
|
|
|
6009
6042
|
AlertDialogCancel2.displayName = Cancel.displayName;
|
|
6010
6043
|
|
|
6011
6044
|
// src/main/ads-alert-dialog.tsx
|
|
6012
|
-
var
|
|
6045
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
6013
6046
|
function AdsAlertDialog({
|
|
6014
6047
|
open,
|
|
6015
6048
|
onOpenChange,
|
|
@@ -6023,32 +6056,32 @@ function AdsAlertDialog({
|
|
|
6023
6056
|
onConfirm
|
|
6024
6057
|
}) {
|
|
6025
6058
|
const [imgError, setImgError] = (0, import_react42.useState)(false);
|
|
6026
|
-
return /* @__PURE__ */ (0,
|
|
6059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AlertDialog2, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
6027
6060
|
AlertDialogContent2,
|
|
6028
6061
|
{
|
|
6029
6062
|
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
6063
|
children: [
|
|
6031
|
-
/* @__PURE__ */ (0,
|
|
6032
|
-
/* @__PURE__ */ (0,
|
|
6033
|
-
/* @__PURE__ */ (0,
|
|
6034
|
-
/* @__PURE__ */ (0,
|
|
6064
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center justify-between mb-2", children: [
|
|
6065
|
+
/* @__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: [
|
|
6066
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.Info, { className: "w-5 h-5" }),
|
|
6067
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "truncate", children: title })
|
|
6035
6068
|
] }) }),
|
|
6036
|
-
/* @__PURE__ */ (0,
|
|
6069
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6037
6070
|
"button",
|
|
6038
6071
|
{
|
|
6039
6072
|
className: "text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 text-xl ml-4",
|
|
6040
6073
|
onClick: () => onOpenChange(false),
|
|
6041
6074
|
"aria-label": "Close",
|
|
6042
6075
|
tabIndex: 0,
|
|
6043
|
-
children: /* @__PURE__ */ (0,
|
|
6076
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.X, { className: "w-5 h-5" })
|
|
6044
6077
|
}
|
|
6045
6078
|
)
|
|
6046
6079
|
] }),
|
|
6047
|
-
/* @__PURE__ */ (0,
|
|
6048
|
-
imgSrc && /* @__PURE__ */ (0,
|
|
6049
|
-
/* @__PURE__ */ (0,
|
|
6050
|
-
/* @__PURE__ */ (0,
|
|
6051
|
-
] }) : imgHref ? /* @__PURE__ */ (0,
|
|
6080
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AlertDialogDescription2, { className: "text-base font-medium text-neutral-800 dark:text-neutral-100 mb-2", children: description }),
|
|
6081
|
+
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: [
|
|
6082
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(globalLucideIcons.ImageOff, { className: "w-12 h-12 mb-2" }),
|
|
6083
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "Image loading failed" })
|
|
6084
|
+
] }) : 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
6085
|
import_image2.default,
|
|
6053
6086
|
{
|
|
6054
6087
|
src: imgSrc,
|
|
@@ -6061,7 +6094,7 @@ function AdsAlertDialog({
|
|
|
6061
6094
|
onError: () => setImgError(true),
|
|
6062
6095
|
sizes: "(max-width: 400px) 100vw, 400px"
|
|
6063
6096
|
}
|
|
6064
|
-
) }) : /* @__PURE__ */ (0,
|
|
6097
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6065
6098
|
import_image2.default,
|
|
6066
6099
|
{
|
|
6067
6100
|
src: imgSrc,
|
|
@@ -6075,8 +6108,8 @@ function AdsAlertDialog({
|
|
|
6075
6108
|
sizes: "(max-width: 400px) 100vw, 400px"
|
|
6076
6109
|
}
|
|
6077
6110
|
) }),
|
|
6078
|
-
(cancelText || confirmText) && /* @__PURE__ */ (0,
|
|
6079
|
-
cancelText && /* @__PURE__ */ (0,
|
|
6111
|
+
(cancelText || confirmText) && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex justify-end gap-2 mt-2", children: [
|
|
6112
|
+
cancelText && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6080
6113
|
"button",
|
|
6081
6114
|
{
|
|
6082
6115
|
onClick: () => {
|
|
@@ -6087,7 +6120,7 @@ function AdsAlertDialog({
|
|
|
6087
6120
|
children: cancelText
|
|
6088
6121
|
}
|
|
6089
6122
|
),
|
|
6090
|
-
confirmText && /* @__PURE__ */ (0,
|
|
6123
|
+
confirmText && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6091
6124
|
AlertDialogAction2,
|
|
6092
6125
|
{
|
|
6093
6126
|
onClick: () => {
|
|
@@ -6106,7 +6139,7 @@ function AdsAlertDialog({
|
|
|
6106
6139
|
|
|
6107
6140
|
// src/main/x-button.tsx
|
|
6108
6141
|
var import_react43 = require("react");
|
|
6109
|
-
var
|
|
6142
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
6110
6143
|
function XButton(props) {
|
|
6111
6144
|
var _a, _b;
|
|
6112
6145
|
const [isLoading, setIsLoading] = (0, import_react43.useState)(false);
|
|
@@ -6144,19 +6177,19 @@ function XButton(props) {
|
|
|
6144
6177
|
const { button, loadingText: loadingText2, minWidth = "min-w-[110px]", className: className2 = "" } = props;
|
|
6145
6178
|
const isDisabled = button.disabled || isLoading;
|
|
6146
6179
|
const actualLoadingText2 = loadingText2 || ((_a = button.text) == null ? void 0 : _a.trim()) || "Loading...";
|
|
6147
|
-
return /* @__PURE__ */ (0,
|
|
6180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6148
6181
|
"button",
|
|
6149
6182
|
{
|
|
6150
6183
|
onClick: () => handleButtonClick(button.onClick),
|
|
6151
6184
|
disabled: isDisabled,
|
|
6152
6185
|
className: `${minWidth} ${baseButtonClass} rounded-full ${isDisabled ? disabledClass : ""} ${className2}`,
|
|
6153
6186
|
title: button.text,
|
|
6154
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
6155
|
-
/* @__PURE__ */ (0,
|
|
6156
|
-
/* @__PURE__ */ (0,
|
|
6157
|
-
] }) : /* @__PURE__ */ (0,
|
|
6187
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6188
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.Loader2, { className: "w-5 h-5 mr-1 animate-spin" }),
|
|
6189
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: actualLoadingText2 })
|
|
6190
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6158
6191
|
button.icon,
|
|
6159
|
-
/* @__PURE__ */ (0,
|
|
6192
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: button.text })
|
|
6160
6193
|
] })
|
|
6161
6194
|
}
|
|
6162
6195
|
);
|
|
@@ -6164,8 +6197,8 @@ function XButton(props) {
|
|
|
6164
6197
|
const { mainButton, menuItems, loadingText, menuWidth = "w-40", className = "", mainButtonClassName = "", dropdownButtonClassName = "" } = props;
|
|
6165
6198
|
const isMainDisabled = mainButton.disabled || isLoading;
|
|
6166
6199
|
const actualLoadingText = loadingText || ((_b = mainButton.text) == null ? void 0 : _b.trim()) || "Loading...";
|
|
6167
|
-
return /* @__PURE__ */ (0,
|
|
6168
|
-
/* @__PURE__ */ (0,
|
|
6200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `relative flex bg-neutral-200 dark:bg-neutral-800 rounded-full ${className}`, children: [
|
|
6201
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6169
6202
|
"button",
|
|
6170
6203
|
{
|
|
6171
6204
|
onClick: () => handleButtonClick(mainButton.onClick),
|
|
@@ -6175,16 +6208,16 @@ function XButton(props) {
|
|
|
6175
6208
|
if (e.button === 2) e.preventDefault();
|
|
6176
6209
|
},
|
|
6177
6210
|
style: { borderTopRightRadius: 0, borderBottomRightRadius: 0 },
|
|
6178
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
6179
|
-
/* @__PURE__ */ (0,
|
|
6180
|
-
/* @__PURE__ */ (0,
|
|
6181
|
-
] }) : /* @__PURE__ */ (0,
|
|
6211
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6212
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.Loader2, { className: "w-5 h-5 mr-1 animate-spin" }),
|
|
6213
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: actualLoadingText })
|
|
6214
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
6182
6215
|
mainButton.icon,
|
|
6183
|
-
/* @__PURE__ */ (0,
|
|
6216
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: mainButton.text })
|
|
6184
6217
|
] })
|
|
6185
6218
|
}
|
|
6186
6219
|
),
|
|
6187
|
-
/* @__PURE__ */ (0,
|
|
6220
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6188
6221
|
"span",
|
|
6189
6222
|
{
|
|
6190
6223
|
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 +6227,15 @@ function XButton(props) {
|
|
|
6194
6227
|
},
|
|
6195
6228
|
tabIndex: 0,
|
|
6196
6229
|
style: { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 },
|
|
6197
|
-
children: /* @__PURE__ */ (0,
|
|
6230
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(globalLucideIcons.ChevronDown, { className: "w-6 h-6" })
|
|
6198
6231
|
}
|
|
6199
6232
|
),
|
|
6200
|
-
menuOpen && /* @__PURE__ */ (0,
|
|
6233
|
+
menuOpen && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6201
6234
|
"div",
|
|
6202
6235
|
{
|
|
6203
6236
|
ref: menuRef,
|
|
6204
6237
|
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,
|
|
6238
|
+
children: menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
6206
6239
|
"button",
|
|
6207
6240
|
{
|
|
6208
6241
|
onClick: () => {
|
|
@@ -6213,11 +6246,11 @@ function XButton(props) {
|
|
|
6213
6246
|
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
6247
|
style: item.splitTopBorder ? { borderTop: "1px solid #AC62FD" } : void 0,
|
|
6215
6248
|
children: [
|
|
6216
|
-
/* @__PURE__ */ (0,
|
|
6249
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "flex items-center", children: [
|
|
6217
6250
|
item.icon,
|
|
6218
|
-
/* @__PURE__ */ (0,
|
|
6251
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: item.text })
|
|
6219
6252
|
] }),
|
|
6220
|
-
item.tag && /* @__PURE__ */ (0,
|
|
6253
|
+
item.tag && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6221
6254
|
"span",
|
|
6222
6255
|
{
|
|
6223
6256
|
className: "absolute right-3 top-1 text-[10px] font-semibold",
|
|
@@ -6236,7 +6269,7 @@ function XButton(props) {
|
|
|
6236
6269
|
|
|
6237
6270
|
// src/main/ai-prompt-textarea.tsx
|
|
6238
6271
|
var import_react44 = require("react");
|
|
6239
|
-
var
|
|
6272
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
6240
6273
|
function AIPromptTextarea({
|
|
6241
6274
|
value,
|
|
6242
6275
|
onChange,
|
|
@@ -6324,12 +6357,12 @@ function AIPromptTextarea({
|
|
|
6324
6357
|
};
|
|
6325
6358
|
const renderTitle = () => {
|
|
6326
6359
|
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,
|
|
6360
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-1", children: [
|
|
6361
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold text-foreground", children: title }),
|
|
6362
|
+
(description == null ? void 0 : description.trim()) && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm text-gray-400 ml-2", children: description })
|
|
6330
6363
|
] });
|
|
6331
6364
|
};
|
|
6332
|
-
const renderTextarea = (isEmbedded = false) => /* @__PURE__ */ (0,
|
|
6365
|
+
const renderTextarea = (isEmbedded = false) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
6333
6366
|
"textarea",
|
|
6334
6367
|
{
|
|
6335
6368
|
ref: textareaRef,
|
|
@@ -6348,7 +6381,7 @@ function AIPromptTextarea({
|
|
|
6348
6381
|
);
|
|
6349
6382
|
const renderWordCount = () => {
|
|
6350
6383
|
if (!showWordCount) return null;
|
|
6351
|
-
return /* @__PURE__ */ (0,
|
|
6384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
6352
6385
|
"span",
|
|
6353
6386
|
{
|
|
6354
6387
|
className: `text-sm ${wordCount >= maxWords ? "text-red-500" : wordCount > maxWords * 0.75 ? "text-orange-500" : "text-muted-foreground"} ${isWordLimit ? "animate-bounce" : ""}`,
|
|
@@ -6364,16 +6397,16 @@ function AIPromptTextarea({
|
|
|
6364
6397
|
) });
|
|
6365
6398
|
};
|
|
6366
6399
|
if (embed && title) {
|
|
6367
|
-
return /* @__PURE__ */ (0,
|
|
6368
|
-
/* @__PURE__ */ (0,
|
|
6369
|
-
/* @__PURE__ */ (0,
|
|
6370
|
-
/* @__PURE__ */ (0,
|
|
6371
|
-
/* @__PURE__ */ (0,
|
|
6400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-2", children: [
|
|
6401
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "border-2 border-border rounded-lg bg-transparent", children: [
|
|
6402
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "p-4 pb-2", children: renderTitle() }),
|
|
6403
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("hr", { className: "border-t-1 border-border" }),
|
|
6404
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "p-1", children: renderTextarea(true) })
|
|
6372
6405
|
] }),
|
|
6373
6406
|
renderWordCount()
|
|
6374
6407
|
] });
|
|
6375
6408
|
}
|
|
6376
|
-
return /* @__PURE__ */ (0,
|
|
6409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "space-y-2", children: [
|
|
6377
6410
|
renderTitle(),
|
|
6378
6411
|
renderTextarea(),
|
|
6379
6412
|
renderWordCount()
|
|
@@ -6395,7 +6428,9 @@ function AIPromptTextarea({
|
|
|
6395
6428
|
SeoContent,
|
|
6396
6429
|
Tips,
|
|
6397
6430
|
Usage,
|
|
6398
|
-
XButton
|
|
6431
|
+
XButton,
|
|
6432
|
+
createRichTextRenderer,
|
|
6433
|
+
richText
|
|
6399
6434
|
});
|
|
6400
6435
|
/*! Bundled license information:
|
|
6401
6436
|
|