@windrun-huaiin/third-ui 10.1.1 → 10.1.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/clerk/clerk-user-client.js +1 -1
- package/dist/clerk/clerk-user-client.mjs +1 -1
- package/dist/fuma/base/custom-header.d.ts +2 -2
- package/dist/fuma/base/custom-header.js +23 -4
- package/dist/fuma/base/custom-header.mjs +23 -4
- package/dist/main/credit/credit-nav-button.js +1 -1
- package/dist/main/credit/credit-nav-button.mjs +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ var server = require('@windrun-huaiin/base-ui/components/server');
|
|
|
7
7
|
var signupButtonWithFingerprintClient = require('./signup-button-with-fingerprint-client.js');
|
|
8
8
|
|
|
9
9
|
function ClerkUserClient({ data }) {
|
|
10
|
-
return (jsxRuntime.jsxs("div", { className: "flex items-center gap-2 h-10
|
|
10
|
+
return (jsxRuntime.jsxs("div", { className: "flex items-center gap-2 h-10 mr-3 sm:mr-2", children: [jsxRuntime.jsx(nextjs.ClerkLoading, { children: jsxRuntime.jsx("div", { className: "w-20 h-9 px-2 border border-gray-300 rounded-full hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-800 text-center text-sm" }) }), jsxRuntime.jsxs(nextjs.ClerkLoaded, { children: [jsxRuntime.jsxs(nextjs.SignedOut, { children: [jsxRuntime.jsx(nextjs.SignInButton, { mode: data.clerkAuthInModal ? 'modal' : 'redirect', children: jsxRuntime.jsx("button", { className: "w-16 sm:w-20 h-8 sm:h-9 px-1.5 sm:px-2 border border-gray-300 rounded-full hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-800 text-center text-xs sm:text-sm whitespace-nowrap", children: data.signIn }) }), data.showSignUp && (jsxRuntime.jsx(signupButtonWithFingerprintClient.SignUpButtonWithFingerprint, { mode: data.clerkAuthInModal ? 'modal' : 'redirect', signUp: data.signUp }))] }), jsxRuntime.jsx(nextjs.SignedIn, { children: jsxRuntime.jsx(nextjs.UserButton, { appearance: {
|
|
11
11
|
elements: {
|
|
12
12
|
userButtonAvatarBox: "w-8 h-8 border",
|
|
13
13
|
}
|
|
@@ -5,7 +5,7 @@ import { globalLucideIcons } from '@windrun-huaiin/base-ui/components/server';
|
|
|
5
5
|
import { SignUpButtonWithFingerprint } from './signup-button-with-fingerprint-client.mjs';
|
|
6
6
|
|
|
7
7
|
function ClerkUserClient({ data }) {
|
|
8
|
-
return (jsxs("div", { className: "flex items-center gap-2 h-10
|
|
8
|
+
return (jsxs("div", { className: "flex items-center gap-2 h-10 mr-3 sm:mr-2", children: [jsx(ClerkLoading, { children: jsx("div", { className: "w-20 h-9 px-2 border border-gray-300 rounded-full hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-800 text-center text-sm" }) }), jsxs(ClerkLoaded, { children: [jsxs(SignedOut, { children: [jsx(SignInButton, { mode: data.clerkAuthInModal ? 'modal' : 'redirect', children: jsx("button", { className: "w-16 sm:w-20 h-8 sm:h-9 px-1.5 sm:px-2 border border-gray-300 rounded-full hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-800 text-center text-xs sm:text-sm whitespace-nowrap", children: data.signIn }) }), data.showSignUp && (jsx(SignUpButtonWithFingerprint, { mode: data.clerkAuthInModal ? 'modal' : 'redirect', signUp: data.signUp }))] }), jsx(SignedIn, { children: jsx(UserButton, { appearance: {
|
|
9
9
|
elements: {
|
|
10
10
|
userButtonAvatarBox: "w-8 h-8 border",
|
|
11
11
|
}
|
|
@@ -47,7 +47,7 @@ export interface CustomHomeHeaderProps extends HomeLayoutProps {
|
|
|
47
47
|
*/
|
|
48
48
|
mobileMenuActionsOrder?: MobileMenuAction[];
|
|
49
49
|
}
|
|
50
|
-
export type DesktopAction = 'search' | 'theme' | 'i18n' | 'secondary';
|
|
50
|
+
export type DesktopAction = 'search' | 'theme' | 'i18n' | 'secondary' | 'github';
|
|
51
51
|
export type MobileBarAction = 'pinned' | 'search' | 'menu';
|
|
52
|
-
export type MobileMenuAction = 'secondary' | 'separator' | 'i18n' | 'theme';
|
|
52
|
+
export type MobileMenuAction = 'secondary' | 'github' | 'separator' | 'i18n' | 'theme';
|
|
53
53
|
export declare function CustomHomeHeader({ nav, i18n, links, githubUrl, themeSwitch, searchToggle, bannerHeight, headerHeight, maxContentWidth, navbarClassName, floating, desktopActionsOrder, mobileBarActionsOrder, mobileMenuActionsOrder, }: CustomHomeHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -45,6 +45,13 @@ function CustomHomeHeader({ nav = {}, i18n = false, links, githubUrl, themeSwitc
|
|
|
45
45
|
const primaryMenuItems = filteredMenuItems.filter((item) => !isSecondary(item));
|
|
46
46
|
const secondaryMenuItems = filteredMenuItems.filter(isSecondary);
|
|
47
47
|
const desktopSecondaryItems = navItems.filter(isSecondary);
|
|
48
|
+
const desktopActionsIncludeGithub = desktopActionsOrder.includes('github');
|
|
49
|
+
const githubDesktopItem = desktopActionsIncludeGithub
|
|
50
|
+
? desktopSecondaryItems.find((item) => isGithubItem(item, githubUrl))
|
|
51
|
+
: undefined;
|
|
52
|
+
const desktopSecondaryDisplayItems = desktopActionsIncludeGithub && githubDesktopItem
|
|
53
|
+
? desktopSecondaryItems.filter((item) => !isGithubItem(item, githubUrl))
|
|
54
|
+
: desktopSecondaryItems;
|
|
48
55
|
const desktopActionNodes = {
|
|
49
56
|
search: searchToggle$1.enabled !== false
|
|
50
57
|
? (_b = (_a = searchToggle$1.components) === null || _a === void 0 ? void 0 : _a.lg) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(searchToggle.LargeSearchToggle, { className: "w-full rounded-full ps-2.5 max-w-[240px]", hideIfDisabled: true }))
|
|
@@ -53,14 +60,23 @@ function CustomHomeHeader({ nav = {}, i18n = false, links, githubUrl, themeSwitc
|
|
|
53
60
|
? (_c = themeSwitch.component) !== null && _c !== void 0 ? _c : jsxRuntime.jsx(themeToggle.ThemeToggle, { mode: themeSwitch === null || themeSwitch === void 0 ? void 0 : themeSwitch.mode })
|
|
54
61
|
: null,
|
|
55
62
|
i18n: i18n ? (jsxRuntime.jsx(CompactLanguageToggle, { children: jsxRuntime.jsx(server.globalLucideIcons.Languages, { className: "size-5" }) })) : null,
|
|
56
|
-
secondary:
|
|
63
|
+
secondary: desktopSecondaryDisplayItems.length ? (jsxRuntime.jsx("ul", { className: "flex flex-row gap-2 items-center empty:hidden", children: desktopSecondaryDisplayItems.map((item, i) => (jsxRuntime.jsx(NavbarLinkItem, { item: item, className: cn.cn(item.type === 'icon' && [
|
|
57
64
|
'-mx-1',
|
|
58
65
|
i === 0 && 'ms-0',
|
|
59
|
-
i ===
|
|
66
|
+
i === desktopSecondaryDisplayItems.length - 1 && 'me-0',
|
|
60
67
|
]) }, i))) })) : null,
|
|
68
|
+
github: githubDesktopItem ? (jsxRuntime.jsx(NavbarLinkItem, { item: githubDesktopItem, className: cn.cn(githubDesktopItem.type === 'icon' && '-mx-1') })) : null,
|
|
61
69
|
};
|
|
70
|
+
const mobileMenuActionsIncludeGithub = mobileMenuActionsOrder.includes('github');
|
|
71
|
+
const githubMobileMenuItem = mobileMenuActionsIncludeGithub
|
|
72
|
+
? secondaryMenuItems.find((item) => isGithubItem(item, githubUrl))
|
|
73
|
+
: undefined;
|
|
74
|
+
const secondaryMenuDisplayItems = mobileMenuActionsIncludeGithub && githubMobileMenuItem
|
|
75
|
+
? secondaryMenuItems.filter((item) => !isGithubItem(item, githubUrl))
|
|
76
|
+
: secondaryMenuItems;
|
|
62
77
|
const mobileMenuActionNodes = {
|
|
63
|
-
secondary:
|
|
78
|
+
secondary: secondaryMenuDisplayItems.length ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: secondaryMenuDisplayItems.map((item, i) => (jsxRuntime.jsx(MenuLinkItem, { item: item, className: "-me-1.5" }, i))) })) : null,
|
|
79
|
+
github: githubMobileMenuItem ? (jsxRuntime.jsx(MenuLinkItem, { item: githubMobileMenuItem, className: "-me-1.5" })) : null,
|
|
64
80
|
separator: jsxRuntime.jsx("div", { role: "separator", className: "flex-1" }),
|
|
65
81
|
i18n: i18n ? (jsxRuntime.jsxs(CompactLanguageToggle, { children: [jsxRuntime.jsx(server.globalLucideIcons.Languages, { className: "size-5" }), jsxRuntime.jsx(languageToggle.LanguageToggleText, {}), jsxRuntime.jsx(server.globalLucideIcons.ChevronDown, { className: "size-3 text-fd-muted-foreground" })] })) : null,
|
|
66
82
|
theme: themeSwitch.enabled !== false
|
|
@@ -205,7 +221,7 @@ function CompactLanguageToggle(_a) {
|
|
|
205
221
|
throw new Error('Missing `<I18nProvider />`');
|
|
206
222
|
return (jsxRuntime.jsxs(popover.Popover, { children: [jsxRuntime.jsx(popover.PopoverTrigger, Object.assign({ "aria-label": context.text.chooseLanguage }, props, { className: cn.cn(button.buttonVariants({
|
|
207
223
|
color: 'ghost',
|
|
208
|
-
className: 'gap-1.5 py-1.5
|
|
224
|
+
className: 'gap-1.5 py-1.5 px-1',
|
|
209
225
|
}), props.className), children: props.children })), jsxRuntime.jsxs(popover.PopoverContent, { className: cn.cn('flex min-w-[150px] z-1001 flex-col overflow-x-hidden rounded-xl border bg-fd-popover/60 p-0 text-fd-popover-foreground backdrop-blur-lg', contentClassName), children: [jsxRuntime.jsx("p", { className: "mb-1 p-2 text-xs font-medium text-fd-muted-foreground", children: context.text.chooseLanguage }), context.locales.map((item) => (jsxRuntime.jsx("button", { type: "button", className: cn.cn('p-2 text-start text-sm', item.locale === context.locale
|
|
210
226
|
? 'bg-fd-primary/10 font-medium text-fd-primary'
|
|
211
227
|
: 'hover:bg-fd-accent hover:text-fd-accent-foreground'), onClick: () => {
|
|
@@ -213,6 +229,9 @@ function CompactLanguageToggle(_a) {
|
|
|
213
229
|
(_a = context.onChange) === null || _a === void 0 ? void 0 : _a.call(context, item.locale);
|
|
214
230
|
}, children: item.name }, item.locale)))] })] }));
|
|
215
231
|
}
|
|
232
|
+
function isGithubItem(item, githubUrl) {
|
|
233
|
+
return Boolean(githubUrl && item.type === 'icon' && item.url === githubUrl);
|
|
234
|
+
}
|
|
216
235
|
function isSecondary(item) {
|
|
217
236
|
if ('secondary' in item && item.secondary != null)
|
|
218
237
|
return item.secondary;
|
|
@@ -43,6 +43,13 @@ function CustomHomeHeader({ nav = {}, i18n = false, links, githubUrl, themeSwitc
|
|
|
43
43
|
const primaryMenuItems = filteredMenuItems.filter((item) => !isSecondary(item));
|
|
44
44
|
const secondaryMenuItems = filteredMenuItems.filter(isSecondary);
|
|
45
45
|
const desktopSecondaryItems = navItems.filter(isSecondary);
|
|
46
|
+
const desktopActionsIncludeGithub = desktopActionsOrder.includes('github');
|
|
47
|
+
const githubDesktopItem = desktopActionsIncludeGithub
|
|
48
|
+
? desktopSecondaryItems.find((item) => isGithubItem(item, githubUrl))
|
|
49
|
+
: undefined;
|
|
50
|
+
const desktopSecondaryDisplayItems = desktopActionsIncludeGithub && githubDesktopItem
|
|
51
|
+
? desktopSecondaryItems.filter((item) => !isGithubItem(item, githubUrl))
|
|
52
|
+
: desktopSecondaryItems;
|
|
46
53
|
const desktopActionNodes = {
|
|
47
54
|
search: searchToggle.enabled !== false
|
|
48
55
|
? (_b = (_a = searchToggle.components) === null || _a === void 0 ? void 0 : _a.lg) !== null && _b !== void 0 ? _b : (jsx(LargeSearchToggle, { className: "w-full rounded-full ps-2.5 max-w-[240px]", hideIfDisabled: true }))
|
|
@@ -51,14 +58,23 @@ function CustomHomeHeader({ nav = {}, i18n = false, links, githubUrl, themeSwitc
|
|
|
51
58
|
? (_c = themeSwitch.component) !== null && _c !== void 0 ? _c : jsx(ThemeToggle, { mode: themeSwitch === null || themeSwitch === void 0 ? void 0 : themeSwitch.mode })
|
|
52
59
|
: null,
|
|
53
60
|
i18n: i18n ? (jsx(CompactLanguageToggle, { children: jsx(globalLucideIcons.Languages, { className: "size-5" }) })) : null,
|
|
54
|
-
secondary:
|
|
61
|
+
secondary: desktopSecondaryDisplayItems.length ? (jsx("ul", { className: "flex flex-row gap-2 items-center empty:hidden", children: desktopSecondaryDisplayItems.map((item, i) => (jsx(NavbarLinkItem, { item: item, className: cn(item.type === 'icon' && [
|
|
55
62
|
'-mx-1',
|
|
56
63
|
i === 0 && 'ms-0',
|
|
57
|
-
i ===
|
|
64
|
+
i === desktopSecondaryDisplayItems.length - 1 && 'me-0',
|
|
58
65
|
]) }, i))) })) : null,
|
|
66
|
+
github: githubDesktopItem ? (jsx(NavbarLinkItem, { item: githubDesktopItem, className: cn(githubDesktopItem.type === 'icon' && '-mx-1') })) : null,
|
|
59
67
|
};
|
|
68
|
+
const mobileMenuActionsIncludeGithub = mobileMenuActionsOrder.includes('github');
|
|
69
|
+
const githubMobileMenuItem = mobileMenuActionsIncludeGithub
|
|
70
|
+
? secondaryMenuItems.find((item) => isGithubItem(item, githubUrl))
|
|
71
|
+
: undefined;
|
|
72
|
+
const secondaryMenuDisplayItems = mobileMenuActionsIncludeGithub && githubMobileMenuItem
|
|
73
|
+
? secondaryMenuItems.filter((item) => !isGithubItem(item, githubUrl))
|
|
74
|
+
: secondaryMenuItems;
|
|
60
75
|
const mobileMenuActionNodes = {
|
|
61
|
-
secondary:
|
|
76
|
+
secondary: secondaryMenuDisplayItems.length ? (jsx(Fragment, { children: secondaryMenuDisplayItems.map((item, i) => (jsx(MenuLinkItem, { item: item, className: "-me-1.5" }, i))) })) : null,
|
|
77
|
+
github: githubMobileMenuItem ? (jsx(MenuLinkItem, { item: githubMobileMenuItem, className: "-me-1.5" })) : null,
|
|
62
78
|
separator: jsx("div", { role: "separator", className: "flex-1" }),
|
|
63
79
|
i18n: i18n ? (jsxs(CompactLanguageToggle, { children: [jsx(globalLucideIcons.Languages, { className: "size-5" }), jsx(LanguageToggleText, {}), jsx(globalLucideIcons.ChevronDown, { className: "size-3 text-fd-muted-foreground" })] })) : null,
|
|
64
80
|
theme: themeSwitch.enabled !== false
|
|
@@ -203,7 +219,7 @@ function CompactLanguageToggle(_a) {
|
|
|
203
219
|
throw new Error('Missing `<I18nProvider />`');
|
|
204
220
|
return (jsxs(Popover, { children: [jsx(PopoverTrigger, Object.assign({ "aria-label": context.text.chooseLanguage }, props, { className: cn(buttonVariants({
|
|
205
221
|
color: 'ghost',
|
|
206
|
-
className: 'gap-1.5 py-1.5
|
|
222
|
+
className: 'gap-1.5 py-1.5 px-1',
|
|
207
223
|
}), props.className), children: props.children })), jsxs(PopoverContent, { className: cn('flex min-w-[150px] z-1001 flex-col overflow-x-hidden rounded-xl border bg-fd-popover/60 p-0 text-fd-popover-foreground backdrop-blur-lg', contentClassName), children: [jsx("p", { className: "mb-1 p-2 text-xs font-medium text-fd-muted-foreground", children: context.text.chooseLanguage }), context.locales.map((item) => (jsx("button", { type: "button", className: cn('p-2 text-start text-sm', item.locale === context.locale
|
|
208
224
|
? 'bg-fd-primary/10 font-medium text-fd-primary'
|
|
209
225
|
: 'hover:bg-fd-accent hover:text-fd-accent-foreground'), onClick: () => {
|
|
@@ -211,6 +227,9 @@ function CompactLanguageToggle(_a) {
|
|
|
211
227
|
(_a = context.onChange) === null || _a === void 0 ? void 0 : _a.call(context, item.locale);
|
|
212
228
|
}, children: item.name }, item.locale)))] })] }));
|
|
213
229
|
}
|
|
230
|
+
function isGithubItem(item, githubUrl) {
|
|
231
|
+
return Boolean(githubUrl && item.type === 'icon' && item.url === githubUrl);
|
|
232
|
+
}
|
|
214
233
|
function isSecondary(item) {
|
|
215
234
|
if ('secondary' in item && item.secondary != null)
|
|
216
235
|
return item.secondary;
|
|
@@ -106,7 +106,7 @@ function CreditNavButton({ locale, totalBalance, totalLabel, children, }) {
|
|
|
106
106
|
closePricingModal,
|
|
107
107
|
}), [closeMenu, isMobile, openPricingModal, closePricingModal]);
|
|
108
108
|
const isOnetimeModal = pricingModal.mode === 'onetime';
|
|
109
|
-
return (jsxRuntime.jsxs(CreditNavPopoverContext.Provider, { value: contextValue, children: [jsxRuntime.jsxs(ui.DropdownMenu, { modal: false, open: open, onOpenChange: setOpen, children: [jsxRuntime.jsx(ui.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsxs("button", { type: "button", "aria-label": `${formattedBalance} ${totalLabel}`, className: utils.cn('group
|
|
109
|
+
return (jsxRuntime.jsxs(CreditNavPopoverContext.Provider, { value: contextValue, children: [jsxRuntime.jsxs(ui.DropdownMenu, { modal: false, open: open, onOpenChange: setOpen, children: [jsxRuntime.jsx(ui.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsxs("button", { type: "button", "aria-label": `${formattedBalance} ${totalLabel}`, className: utils.cn('group mx-2 sm:mx-1 inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white pl-2 pr-4 py-1.5 text-sm font-semibold text-slate-700 shadow-sm transition-all dark:border-slate-700 dark:bg-slate-900 dark:text-slate-100', 'hover:border-transparent hover:bg-linear-to-r hover:from-purple-500/90 hover:to-pink-500/90 hover:text-white hover:shadow-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-purple-500 dark:hover:from-purple-500 dark:hover:to-pink-500'), ref: triggerRef, children: [jsxRuntime.jsx("span", { className: "flex h-6 w-6 items-center justify-center rounded-full bg-linear-to-br from-purple-400/20 to-pink-500/20 text-purple-600 transition-transform group-hover:scale-105 dark:text-purple-200", children: jsxRuntime.jsx(server.globalLucideIcons.Gem, { className: "h-3.5 w-3.5" }) }), jsxRuntime.jsxs("span", { className: "relative flex items-center", children: [jsxRuntime.jsx("span", { className: "text-base font-semibold leading-none", children: formattedBalance }), jsxRuntime.jsx("span", { className: "sr-only", children: ` ${totalLabel}` })] })] }) }), jsxRuntime.jsx(ui.DropdownMenuContent, { forceMount: true, sideOffset: 12, align: "end", className: "z-50 border-0 bg-transparent p-0 shadow-none mx-4 sm:mx-2 md:mx-1", children: jsxRuntime.jsx("div", { className: "w-[90vw] max-w-[90vw] max-h-[80vh] overflow-y-auto overflow-x-hidden rounded-3xl bg-transparent sm:w-[410px] sm:max-h-[90vh] sm:max-w-[95vw]", ref: contentRef, children: children }) })] }), pricingModal.modalMoneyPriceData && pricingModal.pricingContext ? (jsxRuntime.jsx(ui.AlertDialog, { open: pricingModal.open, onOpenChange: (open) => setPricingModal((prev) => (Object.assign(Object.assign({}, prev), { open }))), children: jsxRuntime.jsxs(ui.AlertDialogContent, { className: "mt-5 sm:mt-6 md:mt-10 lg:mt-15 w-[95vw] max-w-[1200px] overflow-hidden border border-slate-200 bg-white p-0 shadow-[0_32px_90px_rgba(15,23,42,0.25)] ring-1 ring-black/5 dark:border-white/12 dark:bg-[#0f1222] dark:shadow-[0_40px_120px_rgba(0,0,0,0.6)] dark:ring-white/10", children: [jsxRuntime.jsxs(ui.AlertDialogHeader, { className: "flex flex-row items-center justify-between border-b border-slate-200 px-6 pt-4 pb-1 dark:border-slate-800", children: [jsxRuntime.jsx(ui.AlertDialogTitle, { asChild: true, children: jsxRuntime.jsxs("div", { className: "flex flex-wrap items-baseline gap-3 text-slate-900 dark:text-white", children: [jsxRuntime.jsx("span", { className: "text-2xl font-semibold leading-tight", children: pricingModal.modalMoneyPriceData.title }), pricingModal.modalMoneyPriceData.subtitle ? (jsxRuntime.jsx("span", { className: "text-sm font-medium text-slate-500 dark:text-slate-300", children: pricingModal.modalMoneyPriceData.subtitle })) : null] }) }), jsxRuntime.jsx("button", { type: "button", className: "rounded-full p-2 text-gray-400 transition hover:bg-gray-400 hover:text-gray-400 dark:text-white/80 dark:hover:bg-white/80 dark:hover:text-white/80", onClick: closePricingModal, children: jsxRuntime.jsx(server.globalLucideIcons.X, { className: "h-6 w-6" }) })] }), jsxRuntime.jsx("div", { className: "max-h-[60vh] sm:max-h-[80vh] overflow-y-auto px-4 pt-2 pb-6", children: jsxRuntime.jsx("div", { className: "mx-auto w-full", children: jsxRuntime.jsx(moneyPriceInteractive.MoneyPriceInteractive, { data: pricingModal.modalMoneyPriceData, config: pricingModal.pricingContext.moneyPriceConfig, checkoutApiEndpoint: pricingModal.pricingContext.checkoutApiEndpoint, customerPortalApiEndpoint: pricingModal.pricingContext.customerPortalApiEndpoint, enableSubscriptionUpgrade: pricingModal.pricingContext.enableSubscriptionUpgrade, initialBillingType: isOnetimeModal ? 'onetime' : undefined, disableAutoDetectBilling: isOnetimeModal, initUserContext: pricingModal.pricingContext.initUserContext }, pricingModal.mode) }) })] }) })) : null] }));
|
|
110
110
|
}
|
|
111
111
|
const CreditNavPopoverContext = React.createContext(null);
|
|
112
112
|
function useCreditNavPopover() {
|
|
@@ -104,7 +104,7 @@ function CreditNavButton({ locale, totalBalance, totalLabel, children, }) {
|
|
|
104
104
|
closePricingModal,
|
|
105
105
|
}), [closeMenu, isMobile, openPricingModal, closePricingModal]);
|
|
106
106
|
const isOnetimeModal = pricingModal.mode === 'onetime';
|
|
107
|
-
return (jsxs(CreditNavPopoverContext.Provider, { value: contextValue, children: [jsxs(DropdownMenu, { modal: false, open: open, onOpenChange: setOpen, children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsxs("button", { type: "button", "aria-label": `${formattedBalance} ${totalLabel}`, className: cn('group
|
|
107
|
+
return (jsxs(CreditNavPopoverContext.Provider, { value: contextValue, children: [jsxs(DropdownMenu, { modal: false, open: open, onOpenChange: setOpen, children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsxs("button", { type: "button", "aria-label": `${formattedBalance} ${totalLabel}`, className: cn('group mx-2 sm:mx-1 inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white pl-2 pr-4 py-1.5 text-sm font-semibold text-slate-700 shadow-sm transition-all dark:border-slate-700 dark:bg-slate-900 dark:text-slate-100', 'hover:border-transparent hover:bg-linear-to-r hover:from-purple-500/90 hover:to-pink-500/90 hover:text-white hover:shadow-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-purple-500 dark:hover:from-purple-500 dark:hover:to-pink-500'), ref: triggerRef, children: [jsx("span", { className: "flex h-6 w-6 items-center justify-center rounded-full bg-linear-to-br from-purple-400/20 to-pink-500/20 text-purple-600 transition-transform group-hover:scale-105 dark:text-purple-200", children: jsx(globalLucideIcons.Gem, { className: "h-3.5 w-3.5" }) }), jsxs("span", { className: "relative flex items-center", children: [jsx("span", { className: "text-base font-semibold leading-none", children: formattedBalance }), jsx("span", { className: "sr-only", children: ` ${totalLabel}` })] })] }) }), jsx(DropdownMenuContent, { forceMount: true, sideOffset: 12, align: "end", className: "z-50 border-0 bg-transparent p-0 shadow-none mx-4 sm:mx-2 md:mx-1", children: jsx("div", { className: "w-[90vw] max-w-[90vw] max-h-[80vh] overflow-y-auto overflow-x-hidden rounded-3xl bg-transparent sm:w-[410px] sm:max-h-[90vh] sm:max-w-[95vw]", ref: contentRef, children: children }) })] }), pricingModal.modalMoneyPriceData && pricingModal.pricingContext ? (jsx(AlertDialog, { open: pricingModal.open, onOpenChange: (open) => setPricingModal((prev) => (Object.assign(Object.assign({}, prev), { open }))), children: jsxs(AlertDialogContent, { className: "mt-5 sm:mt-6 md:mt-10 lg:mt-15 w-[95vw] max-w-[1200px] overflow-hidden border border-slate-200 bg-white p-0 shadow-[0_32px_90px_rgba(15,23,42,0.25)] ring-1 ring-black/5 dark:border-white/12 dark:bg-[#0f1222] dark:shadow-[0_40px_120px_rgba(0,0,0,0.6)] dark:ring-white/10", children: [jsxs(AlertDialogHeader, { className: "flex flex-row items-center justify-between border-b border-slate-200 px-6 pt-4 pb-1 dark:border-slate-800", children: [jsx(AlertDialogTitle, { asChild: true, children: jsxs("div", { className: "flex flex-wrap items-baseline gap-3 text-slate-900 dark:text-white", children: [jsx("span", { className: "text-2xl font-semibold leading-tight", children: pricingModal.modalMoneyPriceData.title }), pricingModal.modalMoneyPriceData.subtitle ? (jsx("span", { className: "text-sm font-medium text-slate-500 dark:text-slate-300", children: pricingModal.modalMoneyPriceData.subtitle })) : null] }) }), jsx("button", { type: "button", className: "rounded-full p-2 text-gray-400 transition hover:bg-gray-400 hover:text-gray-400 dark:text-white/80 dark:hover:bg-white/80 dark:hover:text-white/80", onClick: closePricingModal, children: jsx(globalLucideIcons.X, { className: "h-6 w-6" }) })] }), jsx("div", { className: "max-h-[60vh] sm:max-h-[80vh] overflow-y-auto px-4 pt-2 pb-6", children: jsx("div", { className: "mx-auto w-full", children: jsx(MoneyPriceInteractive, { data: pricingModal.modalMoneyPriceData, config: pricingModal.pricingContext.moneyPriceConfig, checkoutApiEndpoint: pricingModal.pricingContext.checkoutApiEndpoint, customerPortalApiEndpoint: pricingModal.pricingContext.customerPortalApiEndpoint, enableSubscriptionUpgrade: pricingModal.pricingContext.enableSubscriptionUpgrade, initialBillingType: isOnetimeModal ? 'onetime' : undefined, disableAutoDetectBilling: isOnetimeModal, initUserContext: pricingModal.pricingContext.initUserContext }, pricingModal.mode) }) })] }) })) : null] }));
|
|
108
108
|
}
|
|
109
109
|
const CreditNavPopoverContext = createContext(null);
|
|
110
110
|
function useCreditNavPopover() {
|