@iblai/web-utils 1.3.2 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-layer/src/features/billing/types.d.ts +1 -0
- package/dist/index.d.ts +21 -6
- package/dist/index.esm.js +361 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +360 -0
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/web-utils/src/hooks/index.d.ts +1 -0
- package/dist/web-utils/src/hooks/stripe/__tests__/use-stripe-upgrade.test.d.ts +1 -0
- package/dist/web-utils/src/hooks/stripe/use-stripe-upgrade.d.ts +14 -0
- package/dist/web-utils/src/types/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -814,7 +814,7 @@ declare const isWeb: () => boolean;
|
|
|
814
814
|
declare const isNode: () => string | false;
|
|
815
815
|
declare const isExpo: () => any;
|
|
816
816
|
declare const isTauri: () => boolean;
|
|
817
|
-
declare const getPlatform: () => "
|
|
817
|
+
declare const getPlatform: () => "web" | "react-native" | "node" | "unknown";
|
|
818
818
|
declare const safeRequire: (moduleName: string) => any;
|
|
819
819
|
declare const getNextNavigation: () => any;
|
|
820
820
|
|
|
@@ -1209,6 +1209,7 @@ interface Tenant {
|
|
|
1209
1209
|
platform_name: string;
|
|
1210
1210
|
is_advertising?: boolean;
|
|
1211
1211
|
is_enterprise?: boolean;
|
|
1212
|
+
show_paywall?: boolean;
|
|
1212
1213
|
}
|
|
1213
1214
|
|
|
1214
1215
|
type Props$5 = {
|
|
@@ -1467,6 +1468,20 @@ type UseMentorSettingsReturn = {
|
|
|
1467
1468
|
};
|
|
1468
1469
|
declare function useMentorSettings({ mentorId, tenantKey, username, isPublicRoute, }: Props$3): UseMentorSettingsReturn;
|
|
1469
1470
|
|
|
1471
|
+
interface UseStripeUpgradeArgs {
|
|
1472
|
+
redirectUrl: string;
|
|
1473
|
+
sourcePlatformKey: string;
|
|
1474
|
+
mainPlatformKey: string;
|
|
1475
|
+
currentUserEmail: string;
|
|
1476
|
+
}
|
|
1477
|
+
type StripeUpgradePlan = "free" | "premium";
|
|
1478
|
+
declare const useStripeUpgrade: ({ redirectUrl, sourcePlatformKey, mainPlatformKey, currentUserEmail, }: UseStripeUpgradeArgs) => {
|
|
1479
|
+
isLoading: boolean;
|
|
1480
|
+
freeUrl: string | null;
|
|
1481
|
+
premiumUrl: string | null;
|
|
1482
|
+
handleUpgrade: (redirectPlan?: StripeUpgradePlan) => Promise<void>;
|
|
1483
|
+
};
|
|
1484
|
+
|
|
1470
1485
|
/**
|
|
1471
1486
|
* Sync authentication state to cookies (web only)
|
|
1472
1487
|
* Should be called on login, logout, and tenant switch
|
|
@@ -1542,7 +1557,7 @@ type Props$2 = {
|
|
|
1542
1557
|
* 4. Handles redirects to auth SPA when needed
|
|
1543
1558
|
* 5. Manages public route access state
|
|
1544
1559
|
*/
|
|
1545
|
-
declare function AuthProvider({ children, fallback, middleware, onAuthSuccess, onAuthFailure, redirectToAuthSpa, hasNonExpiredAuthToken, username, pathname, skipAuthCheck, storageService, token, enableStorageSync, skip, }: Props$2): string | number | bigint | boolean |
|
|
1560
|
+
declare function AuthProvider({ children, fallback, middleware, onAuthSuccess, onAuthFailure, redirectToAuthSpa, hasNonExpiredAuthToken, username, pathname, skipAuthCheck, storageService, token, enableStorageSync, skip, }: Props$2): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
1546
1561
|
|
|
1547
1562
|
/**
|
|
1548
1563
|
* Props for the MentorProvider component
|
|
@@ -1575,7 +1590,7 @@ type Props$1 = {
|
|
|
1575
1590
|
* 3. Manages redirection based on mentor availability
|
|
1576
1591
|
* 4. Integrates with tenant context for access control
|
|
1577
1592
|
*/
|
|
1578
|
-
declare function MentorProvider({ children, fallback, onAuthSuccess, onAuthFailure, redirectToAuthSpa, redirectToMentor, onLoadMentorsPermissions, redirectToNoMentorsPage, redirectToCreateMentor, username, isAdmin, mainTenantKey, requestedMentorId, handleMentorNotFound, forceDetermineMentor, onComplete, skip, }: Props$1): string | number | bigint | boolean |
|
|
1593
|
+
declare function MentorProvider({ children, fallback, onAuthSuccess, onAuthFailure, redirectToAuthSpa, redirectToMentor, onLoadMentorsPermissions, redirectToNoMentorsPage, redirectToCreateMentor, username, isAdmin, mainTenantKey, requestedMentorId, handleMentorNotFound, forceDetermineMentor, onComplete, skip, }: Props$1): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
1579
1594
|
|
|
1580
1595
|
/**
|
|
1581
1596
|
* Type definition for the tenant context
|
|
@@ -1638,7 +1653,7 @@ type Props = {
|
|
|
1638
1653
|
* 4. Handles tenant-specific domain redirects
|
|
1639
1654
|
* 5. Maintains tenant access state
|
|
1640
1655
|
*/
|
|
1641
|
-
declare function TenantProvider({ children, fallback, onAuthSuccess, onAuthFailure, currentTenant, requestedTenant, saveCurrentTenant, saveUserTenants, handleTenantSwitch, saveVisitingTenant, removeVisitingTenant, saveUserTokens, saveTenant, onAutoJoinUserToTenant, redirectToAuthSpa, username, isIframed, setUseMentorProvider, skip, onLoadPlatformPermissions, skipCustomDomainCheck, }: Props): string | number | bigint | boolean |
|
|
1656
|
+
declare function TenantProvider({ children, fallback, onAuthSuccess, onAuthFailure, currentTenant, requestedTenant, saveCurrentTenant, saveUserTenants, handleTenantSwitch, saveVisitingTenant, removeVisitingTenant, saveUserTokens, saveTenant, onAutoJoinUserToTenant, redirectToAuthSpa, username, isIframed, setUseMentorProvider, skip, onLoadPlatformPermissions, skipCustomDomainCheck, }: Props): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
1642
1657
|
|
|
1643
1658
|
/**
|
|
1644
1659
|
* Chat area size constants
|
|
@@ -1752,5 +1767,5 @@ declare const WithPermissions: ({ rbacResource, rbacPermissions, children, }: Wi
|
|
|
1752
1767
|
*/
|
|
1753
1768
|
declare const checkRbacPermission: (rbacPermissions: object, rbacResource: string, enableRBAC?: boolean) => boolean;
|
|
1754
1769
|
|
|
1755
|
-
export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, REQUIRED_ACTIONS_FOR_GROUPS, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative, isTauri, isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectMetadata, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
|
|
1756
|
-
export type { AdvancedTab, ArtifactData, ArtifactPayload, ArtifactVersion, AttachedFile, AuthContextType, ChatMode, ChatSliceState, ChatState, ChatStatus, CreateStripeCustomerPortalRequest, Error402MessageData, FileAttachment, FileInfo, FileProcessingEvent, FileReference, FileUploadState, FilesState, HandleLogoutOptions, Message, MessageAction, MonetizationState, OAuthRequiredData, OAuthResolvedData, OllamaChatRequest, OllamaChatStreamResponse, OllamaMessage, OllamaStreamCallbacks, PricingModalData, Prompt, RedirectToAuthSpaOptions, SendMessageOptions, SessionIds, StreamingArtifact, StreamingMessage, SubscriptionFlowConfig, SubscriptionFlowConfigV2, Tenant, TenantContextType, TenantKeyMentorIdParams, TenantMetadata, TimeTrackerConfig, TimeTrackerState, TopTrialBannerProps, UploadProgressCallback, UseChatProps, UseChatReturn, UseExternalPricingProps, UseProfileImageUploadOptions, UseProfileImageUploadReturn, UseTimeTrackerConfig, UseTimeTrackerNativeConfig, UseTimeTrackerNativeReturn, UseTimeTrackerReturn, UseUserProfileUpdateResult, UserProfileUpdateData };
|
|
1770
|
+
export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, REQUIRED_ACTIONS_FOR_GROUPS, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative, isTauri, isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectMetadata, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useStripeUpgrade, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
|
|
1771
|
+
export type { AdvancedTab, ArtifactData, ArtifactPayload, ArtifactVersion, AttachedFile, AuthContextType, ChatMode, ChatSliceState, ChatState, ChatStatus, CreateStripeCustomerPortalRequest, Error402MessageData, FileAttachment, FileInfo, FileProcessingEvent, FileReference, FileUploadState, FilesState, HandleLogoutOptions, Message, MessageAction, MonetizationState, OAuthRequiredData, OAuthResolvedData, OllamaChatRequest, OllamaChatStreamResponse, OllamaMessage, OllamaStreamCallbacks, PricingModalData, Prompt, RedirectToAuthSpaOptions, SendMessageOptions, SessionIds, StreamingArtifact, StreamingMessage, StripeUpgradePlan, SubscriptionFlowConfig, SubscriptionFlowConfigV2, Tenant, TenantContextType, TenantKeyMentorIdParams, TenantMetadata, TimeTrackerConfig, TimeTrackerState, TopTrialBannerProps, UploadProgressCallback, UseChatProps, UseChatReturn, UseExternalPricingProps, UseProfileImageUploadOptions, UseProfileImageUploadReturn, UseTimeTrackerConfig, UseTimeTrackerNativeConfig, UseTimeTrackerNativeReturn, UseTimeTrackerReturn, UseUserProfileUpdateResult, UserProfileUpdateData };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { useState, useRef, useEffect, createContext, useContext, useCallback, useDebugValue, useMemo, useLayoutEffect } from 'react';
|
|
3
|
-
import { useRenewSubscriptionMutation, useLazyGetUserAppsQuery, useCreateStripeCustomerPortalMutation, useLazyGetFreeUsageCountQuery, useGetTenantMetadataQuery, useLazyGetStripeContextQuery, useUpdateUserTrialStatusMutation, useLazyGetAccountBillingInfoQuery, useLazyRefreshJwtTokenQuery, useLazyGetUserTenantsQuery, useJoinTenantMutation, useLazyGetTenantMetadataQuery, useGetAppTokensMutation, useGetCustomDomainsQuery, useGetRbacPermissionsMutation, useLazyGetMentorsQuery, useLazySeedMentorsQuery, useLazyGetMentorPublicSettingsQuery, useLazyGetRecentlyAccessedMentorsQuery, useCreateSessionIdMutation, useLazyGetSessionIdQuery, useLazyGetSharedSessionIdQuery, useEditSessionMutation, useGetToolsQuery, useGetPromptsSearchQuery, useUpdateUserAccountMutation, useGetUserMetadataQuery, useUploadProfileImageMutation, useRemoveProfileImageMutation } from '@iblai/data-layer';
|
|
3
|
+
import { useRenewSubscriptionMutation, useLazyGetUserAppsQuery, useCreateStripeCustomerPortalMutation, useLazyGetFreeUsageCountQuery, useGetTenantMetadataQuery, useLazyGetStripeContextQuery, useUpdateUserTrialStatusMutation, useLazyGetAccountBillingInfoQuery, useLazyRefreshJwtTokenQuery, useLazyGetUserTenantsQuery, useJoinTenantMutation, useLazyGetTenantMetadataQuery, useGetAppTokensMutation, useGetCustomDomainsQuery, useGetRbacPermissionsMutation, useLazyGetMentorsQuery, useLazySeedMentorsQuery, useLazyGetMentorPublicSettingsQuery, useLazyGetRecentlyAccessedMentorsQuery, useCreateSessionIdMutation, useLazyGetSessionIdQuery, useLazyGetSharedSessionIdQuery, useEditSessionMutation, useGetToolsQuery, useGetPromptsSearchQuery, useUpdateUserAccountMutation, useGetUserMetadataQuery, useUploadProfileImageMutation, useRemoveProfileImageMutation, useLazyGetStripePricingPageSessionQuery } from '@iblai/data-layer';
|
|
4
4
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { OpenAPI, CoreService, ReportsService, AiAnalyticsService, AiMentorService, SearchService, AiPromptService, AiIndexService, CatalogService, SkillsService, AiAccountService, CredentialsService, FeaturesService, CommerceService, NotificationsService, MentorVisibilityEnum } from '@iblai/iblai-api';
|
|
6
|
+
import 'react-dom';
|
|
6
7
|
import axios from 'axios';
|
|
7
8
|
|
|
8
9
|
const SUBSCRIPTION_TRIGGERS = {
|
|
@@ -532,6 +533,13 @@ const MENTOR_AI_CONFIG = {
|
|
|
532
533
|
description: "Display the accessibility menu in the mentor platform.",
|
|
533
534
|
type: "boolean",
|
|
534
535
|
},
|
|
536
|
+
{
|
|
537
|
+
slug: "persistent_chat_input_label",
|
|
538
|
+
label: "Persistent Chat Input Label",
|
|
539
|
+
defaultValue: false,
|
|
540
|
+
description: "Show a visible, persistent label above the chat input. When off, the label is available to screen readers only.",
|
|
541
|
+
type: "boolean",
|
|
542
|
+
},
|
|
535
543
|
{
|
|
536
544
|
slug: "mentor_include_community_mentors",
|
|
537
545
|
label: "Community Mentors",
|
|
@@ -3493,6 +3501,7 @@ function TenantProvider({ children, fallback, onAuthSuccess, onAuthFailure, curr
|
|
|
3493
3501
|
platform_name: tenant.platform_name,
|
|
3494
3502
|
is_advertising: !!((_d = tenantMetadata === null || tenantMetadata === void 0 ? void 0 : tenantMetadata.metadata) === null || _d === void 0 ? void 0 : _d.is_advertising),
|
|
3495
3503
|
is_enterprise: tenant.is_enterprise,
|
|
3504
|
+
show_paywall: tenant.show_paywall,
|
|
3496
3505
|
});
|
|
3497
3506
|
const rbacPermissions = await loadPlatformPermissions(tenant.key);
|
|
3498
3507
|
onLoadPlatformPermissions === null || onLoadPlatformPermissions === void 0 ? void 0 : onLoadPlatformPermissions(rbacPermissions);
|
|
@@ -18962,6 +18971,356 @@ function useProfileImageUpload(options = {}) {
|
|
|
18962
18971
|
// This will be deprecated in favor of the new configuration system
|
|
18963
18972
|
const METADATAS = loadMetadataConfig();
|
|
18964
18973
|
|
|
18974
|
+
function __insertCSS(code) {
|
|
18975
|
+
if (typeof document == 'undefined') return
|
|
18976
|
+
let head = document.head || document.getElementsByTagName('head')[0];
|
|
18977
|
+
let style = document.createElement('style');
|
|
18978
|
+
style.type = 'text/css';
|
|
18979
|
+
head.appendChild(style)
|
|
18980
|
+
;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code));
|
|
18981
|
+
}
|
|
18982
|
+
Array(12).fill(0);
|
|
18983
|
+
|
|
18984
|
+
let toastsCounter = 1;
|
|
18985
|
+
class Observer {
|
|
18986
|
+
constructor(){
|
|
18987
|
+
// We use arrow functions to maintain the correct `this` reference
|
|
18988
|
+
this.subscribe = (subscriber)=>{
|
|
18989
|
+
this.subscribers.push(subscriber);
|
|
18990
|
+
return ()=>{
|
|
18991
|
+
const index = this.subscribers.indexOf(subscriber);
|
|
18992
|
+
this.subscribers.splice(index, 1);
|
|
18993
|
+
};
|
|
18994
|
+
};
|
|
18995
|
+
this.publish = (data)=>{
|
|
18996
|
+
this.subscribers.forEach((subscriber)=>subscriber(data));
|
|
18997
|
+
};
|
|
18998
|
+
this.addToast = (data)=>{
|
|
18999
|
+
this.publish(data);
|
|
19000
|
+
this.toasts = [
|
|
19001
|
+
...this.toasts,
|
|
19002
|
+
data
|
|
19003
|
+
];
|
|
19004
|
+
};
|
|
19005
|
+
this.create = (data)=>{
|
|
19006
|
+
var _data_id;
|
|
19007
|
+
const { message, ...rest } = data;
|
|
19008
|
+
const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;
|
|
19009
|
+
const alreadyExists = this.toasts.find((toast)=>{
|
|
19010
|
+
return toast.id === id;
|
|
19011
|
+
});
|
|
19012
|
+
const dismissible = data.dismissible === undefined ? true : data.dismissible;
|
|
19013
|
+
if (this.dismissedToasts.has(id)) {
|
|
19014
|
+
this.dismissedToasts.delete(id);
|
|
19015
|
+
}
|
|
19016
|
+
if (alreadyExists) {
|
|
19017
|
+
this.toasts = this.toasts.map((toast)=>{
|
|
19018
|
+
if (toast.id === id) {
|
|
19019
|
+
this.publish({
|
|
19020
|
+
...toast,
|
|
19021
|
+
...data,
|
|
19022
|
+
id,
|
|
19023
|
+
title: message
|
|
19024
|
+
});
|
|
19025
|
+
return {
|
|
19026
|
+
...toast,
|
|
19027
|
+
...data,
|
|
19028
|
+
id,
|
|
19029
|
+
dismissible,
|
|
19030
|
+
title: message
|
|
19031
|
+
};
|
|
19032
|
+
}
|
|
19033
|
+
return toast;
|
|
19034
|
+
});
|
|
19035
|
+
} else {
|
|
19036
|
+
this.addToast({
|
|
19037
|
+
title: message,
|
|
19038
|
+
...rest,
|
|
19039
|
+
dismissible,
|
|
19040
|
+
id
|
|
19041
|
+
});
|
|
19042
|
+
}
|
|
19043
|
+
return id;
|
|
19044
|
+
};
|
|
19045
|
+
this.dismiss = (id)=>{
|
|
19046
|
+
if (id) {
|
|
19047
|
+
this.dismissedToasts.add(id);
|
|
19048
|
+
requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({
|
|
19049
|
+
id,
|
|
19050
|
+
dismiss: true
|
|
19051
|
+
})));
|
|
19052
|
+
} else {
|
|
19053
|
+
this.toasts.forEach((toast)=>{
|
|
19054
|
+
this.subscribers.forEach((subscriber)=>subscriber({
|
|
19055
|
+
id: toast.id,
|
|
19056
|
+
dismiss: true
|
|
19057
|
+
}));
|
|
19058
|
+
});
|
|
19059
|
+
}
|
|
19060
|
+
return id;
|
|
19061
|
+
};
|
|
19062
|
+
this.message = (message, data)=>{
|
|
19063
|
+
return this.create({
|
|
19064
|
+
...data,
|
|
19065
|
+
message
|
|
19066
|
+
});
|
|
19067
|
+
};
|
|
19068
|
+
this.error = (message, data)=>{
|
|
19069
|
+
return this.create({
|
|
19070
|
+
...data,
|
|
19071
|
+
message,
|
|
19072
|
+
type: 'error'
|
|
19073
|
+
});
|
|
19074
|
+
};
|
|
19075
|
+
this.success = (message, data)=>{
|
|
19076
|
+
return this.create({
|
|
19077
|
+
...data,
|
|
19078
|
+
type: 'success',
|
|
19079
|
+
message
|
|
19080
|
+
});
|
|
19081
|
+
};
|
|
19082
|
+
this.info = (message, data)=>{
|
|
19083
|
+
return this.create({
|
|
19084
|
+
...data,
|
|
19085
|
+
type: 'info',
|
|
19086
|
+
message
|
|
19087
|
+
});
|
|
19088
|
+
};
|
|
19089
|
+
this.warning = (message, data)=>{
|
|
19090
|
+
return this.create({
|
|
19091
|
+
...data,
|
|
19092
|
+
type: 'warning',
|
|
19093
|
+
message
|
|
19094
|
+
});
|
|
19095
|
+
};
|
|
19096
|
+
this.loading = (message, data)=>{
|
|
19097
|
+
return this.create({
|
|
19098
|
+
...data,
|
|
19099
|
+
type: 'loading',
|
|
19100
|
+
message
|
|
19101
|
+
});
|
|
19102
|
+
};
|
|
19103
|
+
this.promise = (promise, data)=>{
|
|
19104
|
+
if (!data) {
|
|
19105
|
+
// Nothing to show
|
|
19106
|
+
return;
|
|
19107
|
+
}
|
|
19108
|
+
let id = undefined;
|
|
19109
|
+
if (data.loading !== undefined) {
|
|
19110
|
+
id = this.create({
|
|
19111
|
+
...data,
|
|
19112
|
+
promise,
|
|
19113
|
+
type: 'loading',
|
|
19114
|
+
message: data.loading,
|
|
19115
|
+
description: typeof data.description !== 'function' ? data.description : undefined
|
|
19116
|
+
});
|
|
19117
|
+
}
|
|
19118
|
+
const p = Promise.resolve(promise instanceof Function ? promise() : promise);
|
|
19119
|
+
let shouldDismiss = id !== undefined;
|
|
19120
|
+
let result;
|
|
19121
|
+
const originalPromise = p.then(async (response)=>{
|
|
19122
|
+
result = [
|
|
19123
|
+
'resolve',
|
|
19124
|
+
response
|
|
19125
|
+
];
|
|
19126
|
+
const isReactElementResponse = React__default.isValidElement(response);
|
|
19127
|
+
if (isReactElementResponse) {
|
|
19128
|
+
shouldDismiss = false;
|
|
19129
|
+
this.create({
|
|
19130
|
+
id,
|
|
19131
|
+
type: 'default',
|
|
19132
|
+
message: response
|
|
19133
|
+
});
|
|
19134
|
+
} else if (isHttpResponse(response) && !response.ok) {
|
|
19135
|
+
shouldDismiss = false;
|
|
19136
|
+
const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;
|
|
19137
|
+
const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;
|
|
19138
|
+
const isExtendedResult = typeof promiseData === 'object' && !React__default.isValidElement(promiseData);
|
|
19139
|
+
const toastSettings = isExtendedResult ? promiseData : {
|
|
19140
|
+
message: promiseData
|
|
19141
|
+
};
|
|
19142
|
+
this.create({
|
|
19143
|
+
id,
|
|
19144
|
+
type: 'error',
|
|
19145
|
+
description,
|
|
19146
|
+
...toastSettings
|
|
19147
|
+
});
|
|
19148
|
+
} else if (response instanceof Error) {
|
|
19149
|
+
shouldDismiss = false;
|
|
19150
|
+
const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;
|
|
19151
|
+
const description = typeof data.description === 'function' ? await data.description(response) : data.description;
|
|
19152
|
+
const isExtendedResult = typeof promiseData === 'object' && !React__default.isValidElement(promiseData);
|
|
19153
|
+
const toastSettings = isExtendedResult ? promiseData : {
|
|
19154
|
+
message: promiseData
|
|
19155
|
+
};
|
|
19156
|
+
this.create({
|
|
19157
|
+
id,
|
|
19158
|
+
type: 'error',
|
|
19159
|
+
description,
|
|
19160
|
+
...toastSettings
|
|
19161
|
+
});
|
|
19162
|
+
} else if (data.success !== undefined) {
|
|
19163
|
+
shouldDismiss = false;
|
|
19164
|
+
const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;
|
|
19165
|
+
const description = typeof data.description === 'function' ? await data.description(response) : data.description;
|
|
19166
|
+
const isExtendedResult = typeof promiseData === 'object' && !React__default.isValidElement(promiseData);
|
|
19167
|
+
const toastSettings = isExtendedResult ? promiseData : {
|
|
19168
|
+
message: promiseData
|
|
19169
|
+
};
|
|
19170
|
+
this.create({
|
|
19171
|
+
id,
|
|
19172
|
+
type: 'success',
|
|
19173
|
+
description,
|
|
19174
|
+
...toastSettings
|
|
19175
|
+
});
|
|
19176
|
+
}
|
|
19177
|
+
}).catch(async (error)=>{
|
|
19178
|
+
result = [
|
|
19179
|
+
'reject',
|
|
19180
|
+
error
|
|
19181
|
+
];
|
|
19182
|
+
if (data.error !== undefined) {
|
|
19183
|
+
shouldDismiss = false;
|
|
19184
|
+
const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;
|
|
19185
|
+
const description = typeof data.description === 'function' ? await data.description(error) : data.description;
|
|
19186
|
+
const isExtendedResult = typeof promiseData === 'object' && !React__default.isValidElement(promiseData);
|
|
19187
|
+
const toastSettings = isExtendedResult ? promiseData : {
|
|
19188
|
+
message: promiseData
|
|
19189
|
+
};
|
|
19190
|
+
this.create({
|
|
19191
|
+
id,
|
|
19192
|
+
type: 'error',
|
|
19193
|
+
description,
|
|
19194
|
+
...toastSettings
|
|
19195
|
+
});
|
|
19196
|
+
}
|
|
19197
|
+
}).finally(()=>{
|
|
19198
|
+
if (shouldDismiss) {
|
|
19199
|
+
// Toast is still in load state (and will be indefinitely — dismiss it)
|
|
19200
|
+
this.dismiss(id);
|
|
19201
|
+
id = undefined;
|
|
19202
|
+
}
|
|
19203
|
+
data.finally == null ? void 0 : data.finally.call(data);
|
|
19204
|
+
});
|
|
19205
|
+
const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));
|
|
19206
|
+
if (typeof id !== 'string' && typeof id !== 'number') {
|
|
19207
|
+
// cannot Object.assign on undefined
|
|
19208
|
+
return {
|
|
19209
|
+
unwrap
|
|
19210
|
+
};
|
|
19211
|
+
} else {
|
|
19212
|
+
return Object.assign(id, {
|
|
19213
|
+
unwrap
|
|
19214
|
+
});
|
|
19215
|
+
}
|
|
19216
|
+
};
|
|
19217
|
+
this.custom = (jsx, data)=>{
|
|
19218
|
+
const id = (data == null ? void 0 : data.id) || toastsCounter++;
|
|
19219
|
+
this.create({
|
|
19220
|
+
jsx: jsx(id),
|
|
19221
|
+
id,
|
|
19222
|
+
...data
|
|
19223
|
+
});
|
|
19224
|
+
return id;
|
|
19225
|
+
};
|
|
19226
|
+
this.getActiveToasts = ()=>{
|
|
19227
|
+
return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));
|
|
19228
|
+
};
|
|
19229
|
+
this.subscribers = [];
|
|
19230
|
+
this.toasts = [];
|
|
19231
|
+
this.dismissedToasts = new Set();
|
|
19232
|
+
}
|
|
19233
|
+
}
|
|
19234
|
+
const ToastState = new Observer();
|
|
19235
|
+
// bind this to the toast function
|
|
19236
|
+
const toastFunction = (message, data)=>{
|
|
19237
|
+
const id = (data == null ? void 0 : data.id) || toastsCounter++;
|
|
19238
|
+
ToastState.addToast({
|
|
19239
|
+
title: message,
|
|
19240
|
+
...data,
|
|
19241
|
+
id
|
|
19242
|
+
});
|
|
19243
|
+
return id;
|
|
19244
|
+
};
|
|
19245
|
+
const isHttpResponse = (data)=>{
|
|
19246
|
+
return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';
|
|
19247
|
+
};
|
|
19248
|
+
const basicToast = toastFunction;
|
|
19249
|
+
const getHistory = ()=>ToastState.toasts;
|
|
19250
|
+
const getToasts = ()=>ToastState.getActiveToasts();
|
|
19251
|
+
// We use `Object.assign` to maintain the correct types as we would lose them otherwise
|
|
19252
|
+
const toast = Object.assign(basicToast, {
|
|
19253
|
+
success: ToastState.success,
|
|
19254
|
+
info: ToastState.info,
|
|
19255
|
+
warning: ToastState.warning,
|
|
19256
|
+
error: ToastState.error,
|
|
19257
|
+
custom: ToastState.custom,
|
|
19258
|
+
message: ToastState.message,
|
|
19259
|
+
promise: ToastState.promise,
|
|
19260
|
+
dismiss: ToastState.dismiss,
|
|
19261
|
+
loading: ToastState.loading
|
|
19262
|
+
}, {
|
|
19263
|
+
getHistory,
|
|
19264
|
+
getToasts
|
|
19265
|
+
});
|
|
19266
|
+
|
|
19267
|
+
__insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
|
|
19268
|
+
|
|
19269
|
+
function buildCheckoutUrl(baseUrl, email, clientReferenceId) {
|
|
19270
|
+
const separator = baseUrl.includes("?") ? "&" : "?";
|
|
19271
|
+
return `${baseUrl}${separator}locked_prefilled_email=${encodeURIComponent(email)}&client_reference_id=${encodeURIComponent(clientReferenceId)}`;
|
|
19272
|
+
}
|
|
19273
|
+
const useStripeUpgrade = ({ redirectUrl, sourcePlatformKey, mainPlatformKey, currentUserEmail, }) => {
|
|
19274
|
+
const [triggerGetSession] = useLazyGetStripePricingPageSessionQuery();
|
|
19275
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
19276
|
+
const [freeUrl, setFreeUrl] = useState(null);
|
|
19277
|
+
const [premiumUrl, setPremiumUrl] = useState(null);
|
|
19278
|
+
const handleUpgrade = async (redirectPlan) => {
|
|
19279
|
+
setIsLoading(true);
|
|
19280
|
+
try {
|
|
19281
|
+
const result = await triggerGetSession({
|
|
19282
|
+
platform_key: mainPlatformKey,
|
|
19283
|
+
params: {
|
|
19284
|
+
redirect_url: redirectUrl,
|
|
19285
|
+
source_platform_key: sourcePlatformKey,
|
|
19286
|
+
},
|
|
19287
|
+
}).unwrap();
|
|
19288
|
+
const { payment_link_url, client_reference_id } = result;
|
|
19289
|
+
if (!payment_link_url || !isJSON(payment_link_url)) {
|
|
19290
|
+
return;
|
|
19291
|
+
}
|
|
19292
|
+
const links = JSON.parse(payment_link_url);
|
|
19293
|
+
const referenceId = client_reference_id !== null && client_reference_id !== void 0 ? client_reference_id : "";
|
|
19294
|
+
const resolvedFreeUrl = links.free
|
|
19295
|
+
? buildCheckoutUrl(links.free, currentUserEmail, referenceId)
|
|
19296
|
+
: null;
|
|
19297
|
+
const resolvedPremiumUrl = links.premium
|
|
19298
|
+
? buildCheckoutUrl(links.premium, currentUserEmail, referenceId)
|
|
19299
|
+
: null;
|
|
19300
|
+
setFreeUrl(resolvedFreeUrl);
|
|
19301
|
+
setPremiumUrl(resolvedPremiumUrl);
|
|
19302
|
+
if (!redirectPlan)
|
|
19303
|
+
return;
|
|
19304
|
+
const target = redirectPlan === "free" ? resolvedFreeUrl : resolvedPremiumUrl;
|
|
19305
|
+
if (target) {
|
|
19306
|
+
window.location.href = target;
|
|
19307
|
+
}
|
|
19308
|
+
}
|
|
19309
|
+
catch (_a) {
|
|
19310
|
+
toast.error("Failed to load upgrade options. Please try again.");
|
|
19311
|
+
}
|
|
19312
|
+
finally {
|
|
19313
|
+
setIsLoading(false);
|
|
19314
|
+
}
|
|
19315
|
+
};
|
|
19316
|
+
return {
|
|
19317
|
+
isLoading,
|
|
19318
|
+
freeUrl,
|
|
19319
|
+
premiumUrl,
|
|
19320
|
+
handleUpgrade,
|
|
19321
|
+
};
|
|
19322
|
+
};
|
|
19323
|
+
|
|
18965
19324
|
var util;
|
|
18966
19325
|
(function (util) {
|
|
18967
19326
|
util.assertEqual = (val) => val;
|
|
@@ -23594,5 +23953,5 @@ const checkRbacPermission = (rbacPermissions, rbacResource, enableRBAC = true) =
|
|
|
23594
23953
|
return checkRbacPermissionInternal(rbacPermissions, rbacResource);
|
|
23595
23954
|
};
|
|
23596
23955
|
|
|
23597
|
-
export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, REQUIRED_ACTIONS_FOR_GROUPS, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative$1 as isReactNative, isTauri, isWeb$2 as isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectMetadata, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
|
|
23956
|
+
export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, REQUIRED_ACTIONS_FOR_GROUPS, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative$1 as isReactNative, isTauri, isWeb$2 as isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectMetadata, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useStripeUpgrade, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
|
|
23598
23957
|
//# sourceMappingURL=index.esm.js.map
|