@solidxai/core-ui 0.1.7-beta.8 → 0.1.7
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/README.md +215 -0
- package/dist/components/auth/SolidLogin.js +1 -1
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +2 -2
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +79 -45
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +94 -45
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts +33 -7
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +132 -40
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +373 -55
- package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +2 -2
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +2 -1
- package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +3 -3
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
- package/dist/components/core/chatter/SolidMessageComposer.d.ts +2 -1
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +3 -1
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +3 -1
- package/dist/components/core/common/SolidViewLayoutManager.d.ts +17 -0
- package/dist/components/core/common/SolidViewLayoutManager.d.ts.map +1 -1
- package/dist/components/core/common/SolidViewLayoutManager.js +58 -1
- package/dist/components/core/common/SolidViewLayoutManager.js.map +1 -1
- package/dist/components/core/common/SolidViewLayoutManager.ts +43 -2
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js +10 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.tsx +21 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.tsx +27 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js +8 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.tsx +15 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +158 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +185 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts +17 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +52 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +83 -0
- package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -5
- package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +3 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +38 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +1 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +4 -3
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +13 -3
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +6 -5
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +6 -7
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +89 -35
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +291 -165
- package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -1
- package/dist/components/layout/SolidAiStudioLayout.js +123 -8
- package/dist/components/layout/SolidAiStudioLayout.js.map +1 -1
- package/dist/components/layout/SolidAiStudioLayout.tsx +70 -6
- package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +5 -5
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +6 -0
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +10 -6
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +11 -7
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +11 -0
- package/dist/redux/api/apiKeyApi.d.ts +8 -1
- package/dist/redux/api/apiKeyApi.d.ts.map +1 -1
- package/dist/redux/api/apiKeyApi.js +12 -1
- package/dist/redux/api/apiKeyApi.js.map +1 -1
- package/dist/redux/api/apiKeyApi.ts +9 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +16 -1
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +3 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +3 -1
- package/dist/routes/guards/GuestGuard.d.ts +2 -0
- package/dist/routes/guards/GuestGuard.d.ts.map +1 -0
- package/dist/routes/guards/GuestGuard.js +18 -0
- package/dist/routes/guards/GuestGuard.js.map +1 -0
- package/dist/routes/guards/GuestGuard.tsx +20 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -1
- package/dist/types/solid-core.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSettings.js","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport { useCallback, useEffect, useState } from 'react'\nimport { CancelButton } from './CancelButton';\nimport { SolidButton, SolidDivider, SolidInput, SolidSegmentedControl, SolidSwitch, SolidTabGroup, SolidTextarea } from '../shad-cn-ui';\nimport { usePathname } from \"../../hooks/usePathname\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenRightBackgroundImage from '../../resources/images/auth/solid-left-layout-bg.png';\nimport AuthScreenLeftBackgroundImage from '../../resources/images/auth/solid-right-layout-bg.png';\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { useDropzone } from 'react-dropzone';\nimport { SettingDropzoneActivePlaceholder } from './SolidSettings/SettingDropzoneActivePlaceholder';\nimport { SolidUploadedImage } from './SolidSettings/SolidUploadedImage';\nimport { SettingsImageRemoveButton } from './SolidSettings/SettingsImageRemoveButton';\nimport { AiModelConfigTab, ModelConfig } from './SolidSettings/LlmSettings/AiModelConfigTab';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ERROR_MESSAGES } from '../../constants/error-messages';\nimport { useBulkUpdateSolidSettingsMutation, useLazyGetSolidSettingsQuery } from '../../redux/api/solidSettingsApi';\nimport { env } from \"../../adapters/env\";\nimport { showToast } from '../../redux/features/toastSlice';\n\n\nexport const GeneralSettings = () => {\n const [appLogoPreview, setAppLogoPreview] = useState<string | null>(null);\n const [companyLogoPreview, setCompanyLogoPreview] = useState<string | null>(null);\n const [authScreenRightBackgroundImagePreview, setAuthScreenRightBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenLeftBackgroundImagePreview, setAuthScreenLeftBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenCenterBackgroundImagePreview, setAuthScreenCenterBackgroundImagePreview] = useState<string | null>(null);\n const dispatch = useDispatch()\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const pathname = usePathname();\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidSettingsMutation();\n const initialValues = {\n appLogo: solidSettingsData?.data?.appLogo ?? null,\n companylogo: solidSettingsData?.data?.companylogo ?? null,\n passwordlessRegistrationValidateWhat: solidSettingsData?.data?.passwordlessRegistrationValidateWhat ?? \"email\",\n passwordlessLoginValidateWhat: solidSettingsData?.data?.passwordlessLoginValidateWhat ?? \"email\",\n allowPublicRegistration: solidSettingsData?.data?.allowPublicRegistration ?? false,\n passwordBasedAuth: solidSettingsData?.data?.passwordBasedAuth ?? false,\n passwordLessAuth: solidSettingsData?.data?.passwordLessAuth ?? false,\n activateUserOnRegistration: solidSettingsData?.data?.activateUserOnRegistration ?? false,\n iamGoogleOAuthEnabled: solidSettingsData?.data?.iamGoogleOAuthEnabled ?? false,\n // shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,\n // shouldQueueSms: solidSettingsData?.data?.shouldQueueSms ?? false,\n authPagesTheme: solidSettingsData?.data?.authPagesTheme ?? \"light\",\n authPagesLayout: solidSettingsData?.data?.authPagesLayout ?? \"center\",\n defaultRole: solidSettingsData?.data?.defaultRole ?? \"Admin\",\n appLogoPosition: solidSettingsData?.data?.appLogoPosition ?? \"in_form_view\",\n showAuthContent: solidSettingsData?.data?.showAuthContent ?? false,\n appTitle: solidSettingsData?.data?.appTitle ?? \"SolidX\",\n appSubtitle: solidSettingsData?.data?.appSubtitle ?? \"Welcome To\",\n appDescription: solidSettingsData?.data?.appDescription ?? \"appDescription\",\n showLegalLinks: solidSettingsData?.data?.showLegalLinks ?? false,\n appTnc: solidSettingsData?.data?.appTnc ?? null,\n appPrivacyPolicy: solidSettingsData?.data?.appPrivacyPolicy ?? null,\n enableDarkMode: solidSettingsData?.data?.enableDarkMode ?? false,\n copyright: solidSettingsData?.data?.copyright ?? null,\n forceChangePasswordOnFirstLogin: solidSettingsData?.data?.forceChangePasswordOnFirstLogin ?? false,\n contactSupportEmail: solidSettingsData?.data?.contactSupportEmail ?? null,\n contactSupportDisplayName: solidSettingsData?.data?.contactSupportDisplayName ?? null,\n contactSupportIcon: solidSettingsData?.data?.contactSupportIcon ?? null,\n authScreenRightBackgroundImage: solidSettingsData?.data?.authScreenRightBackgroundImage ?? null,\n authScreenLeftBackgroundImage: solidSettingsData?.data?.authScreenLeftBackgroundImage ?? null,\n authScreenCenterBackgroundImage: solidSettingsData?.data?.authScreenCenterBackgroundImage ?? null,\n solidXGenAiCodeBuilderConfig: solidSettingsData?.data?.solidXGenAiCodeBuilderConfig ?? {\n fastModel: { provider: \"\", availableProviders: [] },\n defaultProvider: { provider: \"\", availableProviders: [] },\n }\n // llmProvider: solidSettingsData?.data?.llmProvider ?? null,\n // llModelName: solidSettingsData?.data?.llModelName ?? null,\n // llmProviderApiKey: solidSettingsData?.data?.llmProviderApiKey ?? null,\n // llmProviderBaseURL: solidSettingsData?.data?.llmProviderBaseURL ?? null,\n // llmModelIdentifier: solidSettingsData?.data?.llmModelIdentifier ?? null\n\n\n };\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n\n if (normalizedCurrent !== normalizedValue) {\n // If file, append to formData and use placeholder value in JSON\n if (value instanceof File) {\n formData.append(key, value);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value: typeof value === \"string\" ? value : JSON.stringify(value),\n type: \"system\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(showToast({ severity: \"success\", summary: \"No Changes\", detail: \"No settings were updated\" }));\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: \"Updated\", detail: \"Settings updated\" }));\n trigger(\"\")\n }\n\n } catch (error: any) {\n console.log(\"Error updating settings:\", error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n },\n });\n\n const showError = async () => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(errorMessages) ? errorMessages.join(', ') : errorMessages }));\n }\n }\n useEffect(() => {\n\n }, [pathname])\n\n const positionMap: Record<'left' | 'center' | 'right', string> = {\n left: 'The form will appear on the left side of the screen, while the banner will be positioned on the right side',\n center: 'The form will be centered in the middle of the screen for balanced alignment',\n right: 'The form will appear on the right side of the screen, and the banner will be positioned on the left side'\n };\n\n const onAppLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: \"File too large\", detail: \"Maximum file size is 2MB\" }));\n return;\n }\n formik.setFieldValue(\"appLogo\", file);\n setAppLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik]\n );\n\n const onCompanyLogoDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: \"File too large\", detail: \"Maximum file size is 2MB\" }));\n return;\n }\n formik.setFieldValue(\"companylogo\", file);\n setCompanyLogoPreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const {\n getRootProps: getAppLogoRootProps,\n getInputProps: getAppLogoInputProps,\n isDragActive: isAppLogoDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAppLogoDrop\n });\n const {\n getRootProps: getCompanyLogoRootProps,\n getInputProps: getCompanyLogoInputProps,\n isDragActive: isCompanyLogoDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onCompanyLogoDrop\n });\n\n const removeAppLogo = () => {\n formik.setFieldValue(\"appLogo\", null);\n if (appLogoPreview) {\n URL.revokeObjectURL(appLogoPreview);\n setAppLogoPreview(null);\n }\n };\n\n const removeCompanyLogo = () => {\n formik.setFieldValue(\"companylogo\", null);\n if (companyLogoPreview) {\n URL.revokeObjectURL(companyLogoPreview);\n setCompanyLogoPreview(null);\n }\n };\n\n\n const onAuthScreenRightBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenRightBackgroundImage\", file);\n setAuthScreenRightBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik]\n );\n\n const onAuthScreenLeftBackgroundImageDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", file);\n setAuthScreenLeftBackgroundImagePreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const onAuthScreenCenterBackgroundImageDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", file);\n setAuthScreenCenterBackgroundImagePreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const {\n getRootProps: getAuthScreenRightBackgroundImageRootProps,\n getInputProps: getAuthScreenRightBackgroundImageInputProps,\n isDragActive: isAuthScreenRightBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenRightBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenLeftBackgroundImageRootProps,\n getInputProps: getAuthScreenLeftBackgroundImageInputProps,\n isDragActive: isAuthScreenLeftBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenLeftBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenCenterBackgroundImageRootProps,\n getInputProps: getAuthScreenCenterBackgroundImageInputProps,\n isDragActive: isAuthScreenCenterBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenCenterBackgroundImageDrop\n });\n\n const removeAuthScreenRightBackgroundImage = () => {\n formik.setFieldValue(\"authScreenRightBackgroundImage\", null);\n if (authScreenRightBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenRightBackgroundImagePreview);\n setAuthScreenRightBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenLeftBackgroundImage = () => {\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", null);\n if (authScreenLeftBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenLeftBackgroundImagePreview);\n setAuthScreenLeftBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenCenterBackgroundImage = () => {\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", null);\n if (authScreenCenterBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenCenterBackgroundImagePreview);\n setAuthScreenCenterBackgroundImagePreview(null);\n }\n };\n\n\n\n const handleModelConfigChange = (modelType: \"fastModel\" | \"defaultProvider\", config: ModelConfig) => {\n formik.setFieldValue(\"solidXGenAiCodeBuilderConfig\", {\n ...formik.values.solidXGenAiCodeBuilderConfig,\n [modelType]: config,\n });\n };\n\n\n return (\n <div className=\"page-parent-wrapper\">\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"page-header secondary-border-bottom\">\n <div className=\"form-wrapper-title \">Settings</div>\n <div className=\"gap-3 flex\">\n {formik.dirty && (\n <SolidButton size=\"sm\" type=\"submit\" loading={formik.isSubmitting} onClick={() => showError()}>\n Save\n </SolidButton>\n )}\n {/* <CancelButton /> */}\n </div>\n </div>\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n {pathname.includes(\"app-settings\") &&\n <>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <p className=\"solid-settings-subheading\">App Logo</p>\n <div>\n <div {...getAppLogoRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAppLogoInputProps()} />\n {/* {isAppLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (SolidLogo as any).src || SolidLogo;\n\n let src = appLogoPreview\n ? appLogoPreview\n : formik.values.appLogo\n ? formik.values.appLogo\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} className='solid-app-logo' />\n );\n })()}\n </div>\n {formik.values.appLogo && (\n <SettingsImageRemoveButton onClick={removeAppLogo} />\n )}\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <p className=\"solid-settings-subheading\">Company Logo</p>\n <div>\n <div {...getCompanyLogoRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getCompanyLogoInputProps()} />\n {/* {isCompanyLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (SolidLogo as any).src || SolidLogo;\n\n let src = companyLogoPreview\n ? companyLogoPreview\n : formik.values.companylogo\n ? formik.values.companylogo\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return (\n <SolidUploadedImage src={src} className='solid-compony-logo' />\n );\n })()}\n </div>\n {formik.values.companylogo && (\n <SettingsImageRemoveButton onClick={removeCompanyLogo} />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n <p className=\"solid-settings-heading\">App Logo Position</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"flex\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.appLogoPosition}\n options={[\n { value: \"in_form_view\", label: \"In Form View\" },\n { value: \"in_image_view\", label: \"In Image View\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"appLogoPosition\", value)}\n />\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Title & Description Details</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Show Details on Authentication Screen</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"showAuthContent\"\n checked={formik.values.showAuthContent}\n onChange={(checked) => formik.setFieldValue(\"showAuthContent\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">App Title</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appTitle\"\n name=\"appTitle\"\n onChange={formik.handleChange}\n value={formik.values.appTitle ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">App Subtitle</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appSubtitle\"\n name=\"appSubtitle\"\n onChange={formik.handleChange}\n value={formik.values.appSubtitle ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-start\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Description</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidTextarea\n rows={3}\n id=\"appDescription\"\n name=\"appDescription\"\n onChange={formik.handleChange}\n value={formik.values.appDescription ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-start\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Copyright</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidTextarea\n rows={3}\n id=\"copyright\"\n name=\"copyright\"\n onChange={formik.handleChange}\n value={formik.values.copyright ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n\n <p className=\"solid-settings-heading\">Legal Links</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Show Legal Links</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"showLegalLinks\"\n checked={formik.values.showLegalLinks}\n onChange={(checked) => formik.setFieldValue(\"showLegalLinks\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 py-2 md:py-0\">\n <label className=\"form-field-label\">Terms and Conditions Link</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appTnc\"\n name=\"appTnc\"\n onChange={formik.handleChange}\n value={formik.values.appTnc ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Privacy Policy Link</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appPrivacyPolicy\"\n name=\"appPrivacyPolicy\"\n onChange={formik.handleChange}\n value={formik.values.appPrivacyPolicy ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Theme</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-10 lg:col-5\">\n <label className=\"form-field-label\">Enable Dark Mode</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"enableDarkMode\"\n checked={formik.values.enableDarkMode}\n onChange={(checked) => formik.setFieldValue(\"enableDarkMode\", checked)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n }\n {pathname.includes(\"authentication-settings\") &&\n <>\n <p className=\"solid-settings-heading\">User Authentication</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Public Registration</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"allowPublicRegistration\"\n checked={formik.values.allowPublicRegistration}\n onChange={(checked) => formik.setFieldValue(\"allowPublicRegistration\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Password Based Authentication</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"passwordBasedAuth\"\n checked={formik.values.passwordBasedAuth}\n onChange={(checked) => formik.setFieldValue(\"passwordBasedAuth\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Password Less Authentication</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"passwordLessAuth\"\n checked={formik.values.passwordLessAuth}\n onChange={(checked) => formik.setFieldValue(\"passwordLessAuth\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Auto Activate User on Registration </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"activateUserOnRegistration\"\n checked={formik.values.activateUserOnRegistration}\n onChange={(checked) => formik.setFieldValue(\"activateUserOnRegistration\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Allow Login/ Signup with Google </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamGoogleOAuthEnabled\"\n checked={formik.values.iamGoogleOAuthEnabled}\n onChange={(checked) => formik.setFieldValue(\"iamGoogleOAuthEnabled\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Force Password change on first Login </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"forceChangePasswordOnFirstLogin\"\n checked={formik.values.forceChangePasswordOnFirstLogin}\n onChange={(checked) => formik.setFieldValue(\"forceChangePasswordOnFirstLogin\", checked)}\n />\n </div>\n </div>\n </div>\n {formik.values.passwordLessAuth === true &&\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 sm:col-12 lg:col-5 xl:col-5\">\n <label className=\"form-field-label\">Password Less Registration Method</label>\n </div>\n <div className='col-12 sm:col-12 lg:col-6 xl:col-6'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-3 lg:mt-0\"\n value={formik.values.passwordlessRegistrationValidateWhat}\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"passwordlessRegistrationValidateWhat\", value)}\n />\n </div>\n </div>\n </div>\n }\n {formik.values.passwordLessAuth === true &&\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 sm:col-12 lg:col-5 xl:col-5\">\n <label className=\"form-field-label\">Password Less Login Method</label>\n </div>\n <div className='col-12 sm:col-12 lg:col-6 xl:col-6'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-3 lg:mt-0\"\n value={formik.values.passwordlessLoginValidateWhat}\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n { value: \"selectable\", label: \"Selectable\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"passwordlessLoginValidateWhat\", value)}\n />\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Authentication Screen Layout</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesLayout}\n options={[\n { value: \"left\", label: \"Left\" },\n { value: \"center\", label: \"Center\" },\n { value: \"right\", label: \"Right\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"authPagesLayout\", value)}\n />\n <p className=\"mt-3 text-sm font-bold\">Note : {positionMap[formik.values.authPagesLayout as 'left' | 'center' | 'right']}</p>\n </div>\n </div>\n {formik.values.authPagesLayout === \"center\" && <></>}\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-8 lg:col-6\">\n <p className=\"solid-settings-subheading\">\n {formik.values.authPagesLayout === \"center\" ? \"Background\" : \"Banner\"} Image\n </p>\n {formik.values.authPagesLayout === \"left\" &&\n <div>\n <div {...getAuthScreenLeftBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenLeftBackgroundImageInputProps()} />\n {/* {isAuthScreenLeftBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder note={\"Recommended: 724×724px | Aspect ratio: 1:1\"} />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenLeftBackgroundImage as any).src || AuthScreenLeftBackgroundImage;\n\n let src = authScreenLeftBackgroundImagePreview\n ? authScreenLeftBackgroundImagePreview\n : formik.values.authScreenLeftBackgroundImage\n ? formik.values.authScreenLeftBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={400} width={400} maxHeight={400} />\n );\n })()}\n </div>\n {formik.values.authScreenLeftBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenLeftBackgroundImage} />\n )}\n </div>\n }\n {formik.values.authPagesLayout === \"right\" &&\n <div>\n <div {...getAuthScreenRightBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenRightBackgroundImageInputProps()} />\n {/* {isAuthScreenRightBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder note={\"Recommended: 724×724px | Aspect ratio: 1:1\"} />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenRightBackgroundImage as any).src || AuthScreenRightBackgroundImage;\n\n let src = authScreenRightBackgroundImagePreview\n ? authScreenRightBackgroundImagePreview\n : formik.values.authScreenRightBackgroundImage\n ? formik.values.authScreenRightBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={400} width={400} maxHeight={400} />\n );\n })()}\n </div>\n {formik.values.authScreenRightBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenRightBackgroundImage} />\n )}\n </div>\n }\n {formik.values.authPagesLayout === \"center\" &&\n <div>\n <div {...getAuthScreenCenterBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenCenterBackgroundImageInputProps()} />\n <SettingDropzoneActivePlaceholder note={\"Recommended: 1440px × 724px | Aspect ratio: 2:1\"} />\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\n\n let src = authScreenCenterBackgroundImagePreview\n ? authScreenCenterBackgroundImagePreview\n : formik.values.authScreenCenterBackgroundImage\n ? formik.values.authScreenCenterBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={300} width={600} maxHeight={300} />\n );\n })()}\n </div>\n {formik.values.authScreenCenterBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenCenterBackgroundImage} />\n )}\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n {solidSettingsData?.data?.enableDarkMode === true &&\n <>\n <p className=\"solid-settings-heading\">Authentication Screen Theme</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesTheme}\n options={[\n { value: \"light\", label: \"Solid Light\" },\n { value: \"dark\", label: \"Solid Dark\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"authPagesTheme\", value)}\n />\n </div>\n </div>\n </>\n }\n </>\n }\n\n {pathname.includes(\"misc-settings\") &&\n <>\n {/* \n <p className='font-bold' style={{ fontSize: 16, color: 'var(--solid-setting-title)' }}>Misc Details</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6 pb-3 md:pb-0\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5 \">\n <label className=\"form-field-label\">Use queue for sending emails</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <InputSwitch\n name=\"shouldQueueEmails\"\n checked={formik.values.shouldQueueEmails}\n onChange={(e) => formik.setFieldValue(\"shouldQueueEmails\", e.value)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-5 pb-2\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Use queue for sending SMS</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <InputSwitch\n name=\"shouldQueueSms\"\n checked={formik.values.shouldQueueSms}\n onChange={(e) => formik.setFieldValue(\"shouldQueueSms\", e.value)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Divider />\n */}\n <p className=\"solid-settings-heading\">Contact Support</p>\n <div className='formgrid grid'>\n <div className=\"col-12 lg:col-10 xl:col-8\">\n <div className='formgrid grid'>\n <div className=\"col-12 md:col-6 pb-3 md:pb-0\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Contact Support Email</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportEmail\"\n name=\"contactSupportEmail\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportEmail ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Display Name</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportDisplayName\"\n name=\"contactSupportDisplayName\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportDisplayName ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n }\n {pathname.includes(\"ai-settings\") &&\n <AiSettingsSection\n fastModelConfig={formik.values.solidXGenAiCodeBuilderConfig.fastModel ?? { provider: \"\", availableProviders: [] }}\n intelligentModelConfig={formik.values.solidXGenAiCodeBuilderConfig.defaultProvider ?? { provider: \"\", availableProviders: [] }}\n onFastModelChange={(config) => handleModelConfigChange(\"fastModel\", config)}\n onIntelligentModelChange={(config) => handleModelConfigChange(\"defaultProvider\", config)}\n />\n }\n </div>\n </form>\n </div>\n </div>\n </div>\n )\n}\n\nconst AI_TABS = [\n { key: \"fastModel\" as const, label: \"Fast Model\", title: \"Fast Model\" },\n { key: \"defaultProvider\" as const, label: \"Intelligent Model\", title: \"Intelligent Model (Reasoning & tool use)\" },\n];\n\ninterface AiSettingsSectionProps {\n fastModelConfig: ModelConfig;\n intelligentModelConfig: ModelConfig;\n onFastModelChange: (config: ModelConfig) => void;\n onIntelligentModelChange: (config: ModelConfig) => void;\n}\n\nconst AiSettingsSection = ({ fastModelConfig, intelligentModelConfig, onFastModelChange, onIntelligentModelChange }: AiSettingsSectionProps) => {\n const [activeTab, setActiveTab] = useState<\"fastModel\" | \"defaultProvider\">(\"fastModel\");\n\n const tabItems = AI_TABS.map((tab) => {\n const config = tab.key === \"fastModel\" ? fastModelConfig : intelligentModelConfig;\n const onChange = tab.key === \"fastModel\" ? onFastModelChange : onIntelligentModelChange;\n return {\n value: tab.key,\n label: tab.label,\n content: (\n <div className=\"space-y-4\">\n <p className=\"solid-settings-subheading\">\n {tab.title}\n </p>\n <AiModelConfigTab config={config} onChange={onChange} />\n </div>\n ),\n };\n });\n\n return (\n <div className=\"space-y-4\">\n <p className=\"solid-settings-heading\">\n AI Model Configuration\n </p>\n <SolidTabGroup\n tabs={tabItems}\n value={activeTab}\n onValueChange={(value) => setActiveTab(value as \"fastModel\" | \"defaultProvider\")}\n tabPosition=\"left\"\n />\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"GeneralSettings.js","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport { useCallback, useEffect, useState } from 'react'\nimport { CancelButton } from './CancelButton';\nimport { ApiKeysTab } from '../core/users/ApiKeysTab';\nimport { useSession } from '../../hooks/useSession';\nimport { SolidButton, SolidDivider, SolidInput, SolidSegmentedControl, SolidSwitch, SolidTabGroup, SolidTextarea } from '../shad-cn-ui';\nimport { usePathname } from \"../../hooks/usePathname\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenRightBackgroundImage from '../../resources/images/auth/solid-left-layout-bg.png';\nimport AuthScreenLeftBackgroundImage from '../../resources/images/auth/solid-right-layout-bg.png';\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { useDropzone } from 'react-dropzone';\nimport { SettingDropzoneActivePlaceholder } from './SolidSettings/SettingDropzoneActivePlaceholder';\nimport { SolidUploadedImage } from './SolidSettings/SolidUploadedImage';\nimport { SettingsImageRemoveButton } from './SolidSettings/SettingsImageRemoveButton';\nimport { ModelConfigTab, ProvidersTab, ModelBehavior, ModelEntry, SolidAiConfig, ensureBuiltInProviders } from './SolidSettings/LlmSettings/AiModelConfigTab';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ERROR_MESSAGES } from '../../constants/error-messages';\nimport { useBulkUpdateSolidSettingsMutation, useLazyGetSolidSettingsQuery } from '../../redux/api/solidSettingsApi';\nimport { env } from \"../../adapters/env\";\nimport { showToast } from '../../redux/features/toastSlice';\n\n\nexport const GeneralSettings = () => {\n const { data: session } = useSession();\n const [appLogoPreview, setAppLogoPreview] = useState<string | null>(null);\n const [companyLogoPreview, setCompanyLogoPreview] = useState<string | null>(null);\n const [authScreenRightBackgroundImagePreview, setAuthScreenRightBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenLeftBackgroundImagePreview, setAuthScreenLeftBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenCenterBackgroundImagePreview, setAuthScreenCenterBackgroundImagePreview] = useState<string | null>(null);\n const dispatch = useDispatch()\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const pathname = usePathname();\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidSettingsMutation();\n const initialValues = {\n appLogo: solidSettingsData?.data?.appLogo ?? null,\n companylogo: solidSettingsData?.data?.companylogo ?? null,\n passwordlessRegistrationValidateWhat: solidSettingsData?.data?.passwordlessRegistrationValidateWhat ?? \"email\",\n passwordlessLoginValidateWhat: solidSettingsData?.data?.passwordlessLoginValidateWhat ?? \"email\",\n allowPublicRegistration: solidSettingsData?.data?.allowPublicRegistration ?? false,\n passwordBasedAuth: solidSettingsData?.data?.passwordBasedAuth ?? false,\n passwordLessAuth: solidSettingsData?.data?.passwordLessAuth ?? false,\n activateUserOnRegistration: solidSettingsData?.data?.activateUserOnRegistration ?? false,\n iamGoogleOAuthEnabled: solidSettingsData?.data?.iamGoogleOAuthEnabled ?? false,\n // shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,\n // shouldQueueSms: solidSettingsData?.data?.shouldQueueSms ?? false,\n authPagesTheme: solidSettingsData?.data?.authPagesTheme ?? \"light\",\n authPagesLayout: solidSettingsData?.data?.authPagesLayout ?? \"center\",\n defaultRole: solidSettingsData?.data?.defaultRole ?? \"Admin\",\n appLogoPosition: solidSettingsData?.data?.appLogoPosition ?? \"in_form_view\",\n showAuthContent: solidSettingsData?.data?.showAuthContent ?? false,\n appTitle: solidSettingsData?.data?.appTitle ?? \"SolidX\",\n appSubtitle: solidSettingsData?.data?.appSubtitle ?? \"Welcome To\",\n appDescription: solidSettingsData?.data?.appDescription ?? \"appDescription\",\n showLegalLinks: solidSettingsData?.data?.showLegalLinks ?? false,\n appTnc: solidSettingsData?.data?.appTnc ?? null,\n appPrivacyPolicy: solidSettingsData?.data?.appPrivacyPolicy ?? null,\n enableDarkMode: solidSettingsData?.data?.enableDarkMode ?? false,\n copyright: solidSettingsData?.data?.copyright ?? null,\n forceChangePasswordOnFirstLogin: solidSettingsData?.data?.forceChangePasswordOnFirstLogin ?? false,\n contactSupportEmail: solidSettingsData?.data?.contactSupportEmail ?? null,\n contactSupportDisplayName: solidSettingsData?.data?.contactSupportDisplayName ?? null,\n contactSupportIcon: solidSettingsData?.data?.contactSupportIcon ?? null,\n authScreenRightBackgroundImage: solidSettingsData?.data?.authScreenRightBackgroundImage ?? null,\n authScreenLeftBackgroundImage: solidSettingsData?.data?.authScreenLeftBackgroundImage ?? null,\n authScreenCenterBackgroundImage: solidSettingsData?.data?.authScreenCenterBackgroundImage ?? null,\n solidXGenAiCodeBuilderConfig: (() => {\n const defaultAiConfig: SolidAiConfig = {\n models: {\n default: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n fast: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n },\n providers: {},\n };\n const raw = solidSettingsData?.data?.solidXGenAiCodeBuilderConfig;\n if (!raw) return defaultAiConfig;\n try {\n const parsed = typeof raw === \"string\" ? JSON.parse(raw) : raw;\n return (parsed && typeof parsed === \"object\" ? parsed : defaultAiConfig) as SolidAiConfig;\n } catch {\n return defaultAiConfig;\n }\n })(),\n // llmProvider: solidSettingsData?.data?.llmProvider ?? null,\n // llModelName: solidSettingsData?.data?.llModelName ?? null,\n // llmProviderApiKey: solidSettingsData?.data?.llmProviderApiKey ?? null,\n // llmProviderBaseURL: solidSettingsData?.data?.llmProviderBaseURL ?? null,\n // llmModelIdentifier: solidSettingsData?.data?.llmModelIdentifier ?? null\n\n\n };\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n\n if (normalizedCurrent !== normalizedValue) {\n // If file, append to formData and use placeholder value in JSON\n if (value instanceof File) {\n formData.append(key, value);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value: typeof value === \"string\" ? value : JSON.stringify(value),\n type: \"system\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(showToast({ severity: \"success\", summary: \"No Changes\", detail: \"No settings were updated\" }));\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: \"Updated\", detail: \"Settings updated\" }));\n trigger(\"\")\n }\n\n } catch (error: any) {\n console.log(\"Error updating settings:\", error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n },\n });\n\n const showError = async () => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(errorMessages) ? errorMessages.join(', ') : errorMessages }));\n }\n }\n useEffect(() => {\n\n }, [pathname])\n\n const positionMap: Record<'left' | 'center' | 'right', string> = {\n left: 'The form will appear on the left side of the screen, while the banner will be positioned on the right side',\n center: 'The form will be centered in the middle of the screen for balanced alignment',\n right: 'The form will appear on the right side of the screen, and the banner will be positioned on the left side'\n };\n\n const onAppLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: \"File too large\", detail: \"Maximum file size is 2MB\" }));\n return;\n }\n formik.setFieldValue(\"appLogo\", file);\n setAppLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik]\n );\n\n const onCompanyLogoDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: \"File too large\", detail: \"Maximum file size is 2MB\" }));\n return;\n }\n formik.setFieldValue(\"companylogo\", file);\n setCompanyLogoPreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const {\n getRootProps: getAppLogoRootProps,\n getInputProps: getAppLogoInputProps,\n isDragActive: isAppLogoDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAppLogoDrop\n });\n const {\n getRootProps: getCompanyLogoRootProps,\n getInputProps: getCompanyLogoInputProps,\n isDragActive: isCompanyLogoDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onCompanyLogoDrop\n });\n\n const removeAppLogo = () => {\n formik.setFieldValue(\"appLogo\", null);\n if (appLogoPreview) {\n URL.revokeObjectURL(appLogoPreview);\n setAppLogoPreview(null);\n }\n };\n\n const removeCompanyLogo = () => {\n formik.setFieldValue(\"companylogo\", null);\n if (companyLogoPreview) {\n URL.revokeObjectURL(companyLogoPreview);\n setCompanyLogoPreview(null);\n }\n };\n\n\n const onAuthScreenRightBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenRightBackgroundImage\", file);\n setAuthScreenRightBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik]\n );\n\n const onAuthScreenLeftBackgroundImageDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", file);\n setAuthScreenLeftBackgroundImagePreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const onAuthScreenCenterBackgroundImageDrop = useCallback((acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FILE_LARGE, detail: ERROR_MESSAGES.MAX_FILE_SIZE }));\n return;\n }\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", file);\n setAuthScreenCenterBackgroundImagePreview(URL.createObjectURL(file));\n }\n }, [formik]);\n\n const {\n getRootProps: getAuthScreenRightBackgroundImageRootProps,\n getInputProps: getAuthScreenRightBackgroundImageInputProps,\n isDragActive: isAuthScreenRightBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenRightBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenLeftBackgroundImageRootProps,\n getInputProps: getAuthScreenLeftBackgroundImageInputProps,\n isDragActive: isAuthScreenLeftBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenLeftBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenCenterBackgroundImageRootProps,\n getInputProps: getAuthScreenCenterBackgroundImageInputProps,\n isDragActive: isAuthScreenCenterBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenCenterBackgroundImageDrop\n });\n\n const removeAuthScreenRightBackgroundImage = () => {\n formik.setFieldValue(\"authScreenRightBackgroundImage\", null);\n if (authScreenRightBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenRightBackgroundImagePreview);\n setAuthScreenRightBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenLeftBackgroundImage = () => {\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", null);\n if (authScreenLeftBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenLeftBackgroundImagePreview);\n setAuthScreenLeftBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenCenterBackgroundImage = () => {\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", null);\n if (authScreenCenterBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenCenterBackgroundImagePreview);\n setAuthScreenCenterBackgroundImagePreview(null);\n }\n };\n\n\n\n const handleAiConfigChange = (newConfig: SolidAiConfig) => {\n formik.setFieldValue(\"solidXGenAiCodeBuilderConfig\", newConfig);\n };\n\n\n return (\n <div className=\"page-parent-wrapper\">\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"page-header secondary-border-bottom\">\n <div className=\"form-wrapper-title \">Settings</div>\n <div className=\"gap-3 flex\">\n {formik.dirty && (\n <SolidButton size=\"sm\" type=\"submit\" loading={formik.isSubmitting} onClick={() => showError()}>\n Save\n </SolidButton>\n )}\n {/* <CancelButton /> */}\n </div>\n </div>\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n {pathname.includes(\"app-settings\") &&\n <>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <p className=\"solid-settings-subheading\">App Logo</p>\n <div>\n <div {...getAppLogoRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAppLogoInputProps()} />\n {/* {isAppLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (SolidLogo as any).src || SolidLogo;\n\n let src = appLogoPreview\n ? appLogoPreview\n : formik.values.appLogo\n ? formik.values.appLogo\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} className='solid-app-logo' />\n );\n })()}\n </div>\n {formik.values.appLogo && (\n <SettingsImageRemoveButton onClick={removeAppLogo} />\n )}\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <p className=\"solid-settings-subheading\">Company Logo</p>\n <div>\n <div {...getCompanyLogoRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getCompanyLogoInputProps()} />\n {/* {isCompanyLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (SolidLogo as any).src || SolidLogo;\n\n let src = companyLogoPreview\n ? companyLogoPreview\n : formik.values.companylogo\n ? formik.values.companylogo\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return (\n <SolidUploadedImage src={src} className='solid-compony-logo' />\n );\n })()}\n </div>\n {formik.values.companylogo && (\n <SettingsImageRemoveButton onClick={removeCompanyLogo} />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n <p className=\"solid-settings-heading\">App Logo Position</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"flex\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.appLogoPosition}\n options={[\n { value: \"in_form_view\", label: \"In Form View\" },\n { value: \"in_image_view\", label: \"In Image View\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"appLogoPosition\", value)}\n />\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Title & Description Details</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Show Details on Authentication Screen</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"showAuthContent\"\n checked={formik.values.showAuthContent}\n onChange={(checked) => formik.setFieldValue(\"showAuthContent\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">App Title</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appTitle\"\n name=\"appTitle\"\n onChange={formik.handleChange}\n value={formik.values.appTitle ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">App Subtitle</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appSubtitle\"\n name=\"appSubtitle\"\n onChange={formik.handleChange}\n value={formik.values.appSubtitle ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-start\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Description</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidTextarea\n rows={3}\n id=\"appDescription\"\n name=\"appDescription\"\n onChange={formik.handleChange}\n value={formik.values.appDescription ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-4\">\n <div className=\"formgrid grid align-items-start\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Copyright</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidTextarea\n rows={3}\n id=\"copyright\"\n name=\"copyright\"\n onChange={formik.handleChange}\n value={formik.values.copyright ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n\n <p className=\"solid-settings-heading\">Legal Links</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Show Legal Links</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"showLegalLinks\"\n checked={formik.values.showLegalLinks}\n onChange={(checked) => formik.setFieldValue(\"showLegalLinks\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 py-2 md:py-0\">\n <label className=\"form-field-label\">Terms and Conditions Link</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appTnc\"\n name=\"appTnc\"\n onChange={formik.handleChange}\n value={formik.values.appTnc ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Privacy Policy Link</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"appPrivacyPolicy\"\n name=\"appPrivacyPolicy\"\n onChange={formik.handleChange}\n value={formik.values.appPrivacyPolicy ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Theme</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-10 lg:col-5\">\n <label className=\"form-field-label\">Enable Dark Mode</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"enableDarkMode\"\n checked={formik.values.enableDarkMode}\n onChange={(checked) => formik.setFieldValue(\"enableDarkMode\", checked)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n }\n {pathname.includes(\"authentication-settings\") &&\n <>\n <p className=\"solid-settings-heading\">User Authentication</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Public Registration</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"allowPublicRegistration\"\n checked={formik.values.allowPublicRegistration}\n onChange={(checked) => formik.setFieldValue(\"allowPublicRegistration\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Password Based Authentication</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"passwordBasedAuth\"\n checked={formik.values.passwordBasedAuth}\n onChange={(checked) => formik.setFieldValue(\"passwordBasedAuth\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Password Less Authentication</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"passwordLessAuth\"\n checked={formik.values.passwordLessAuth}\n onChange={(checked) => formik.setFieldValue(\"passwordLessAuth\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Auto Activate User on Registration </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"activateUserOnRegistration\"\n checked={formik.values.activateUserOnRegistration}\n onChange={(checked) => formik.setFieldValue(\"activateUserOnRegistration\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Allow Login/ Signup with Google </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamGoogleOAuthEnabled\"\n checked={formik.values.iamGoogleOAuthEnabled}\n onChange={(checked) => formik.setFieldValue(\"iamGoogleOAuthEnabled\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Force Password change on first Login </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"forceChangePasswordOnFirstLogin\"\n checked={formik.values.forceChangePasswordOnFirstLogin}\n onChange={(checked) => formik.setFieldValue(\"forceChangePasswordOnFirstLogin\", checked)}\n />\n </div>\n </div>\n </div>\n {formik.values.passwordLessAuth === true &&\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 sm:col-12 lg:col-5 xl:col-5\">\n <label className=\"form-field-label\">Password Less Registration Method</label>\n </div>\n <div className='col-12 sm:col-12 lg:col-6 xl:col-6'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-3 lg:mt-0\"\n value={formik.values.passwordlessRegistrationValidateWhat}\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"passwordlessRegistrationValidateWhat\", value)}\n />\n </div>\n </div>\n </div>\n }\n {formik.values.passwordLessAuth === true &&\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 sm:col-12 lg:col-5 xl:col-5\">\n <label className=\"form-field-label\">Password Less Login Method</label>\n </div>\n <div className='col-12 sm:col-12 lg:col-6 xl:col-6'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-3 lg:mt-0\"\n value={formik.values.passwordlessLoginValidateWhat}\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n { value: \"selectable\", label: \"Selectable\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"passwordlessLoginValidateWhat\", value)}\n />\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n <p className=\"solid-settings-heading\">Authentication Screen Layout</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesLayout}\n options={[\n { value: \"left\", label: \"Left\" },\n { value: \"center\", label: \"Center\" },\n { value: \"right\", label: \"Right\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"authPagesLayout\", value)}\n />\n <p className=\"mt-3 text-sm font-bold\">Note : {positionMap[formik.values.authPagesLayout as 'left' | 'center' | 'right']}</p>\n </div>\n </div>\n {formik.values.authPagesLayout === \"center\" && <></>}\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-8 lg:col-6\">\n <p className=\"solid-settings-subheading\">\n {formik.values.authPagesLayout === \"center\" ? \"Background\" : \"Banner\"} Image\n </p>\n {formik.values.authPagesLayout === \"left\" &&\n <div>\n <div {...getAuthScreenLeftBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenLeftBackgroundImageInputProps()} />\n {/* {isAuthScreenLeftBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder note={\"Recommended: 724×724px | Aspect ratio: 1:1\"} />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenLeftBackgroundImage as any).src || AuthScreenLeftBackgroundImage;\n\n let src = authScreenLeftBackgroundImagePreview\n ? authScreenLeftBackgroundImagePreview\n : formik.values.authScreenLeftBackgroundImage\n ? formik.values.authScreenLeftBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={400} width={400} maxHeight={400} />\n );\n })()}\n </div>\n {formik.values.authScreenLeftBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenLeftBackgroundImage} />\n )}\n </div>\n }\n {formik.values.authPagesLayout === \"right\" &&\n <div>\n <div {...getAuthScreenRightBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenRightBackgroundImageInputProps()} />\n {/* {isAuthScreenRightBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder note={\"Recommended: 724×724px | Aspect ratio: 1:1\"} />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenRightBackgroundImage as any).src || AuthScreenRightBackgroundImage;\n\n let src = authScreenRightBackgroundImagePreview\n ? authScreenRightBackgroundImagePreview\n : formik.values.authScreenRightBackgroundImage\n ? formik.values.authScreenRightBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={400} width={400} maxHeight={400} />\n );\n })()}\n </div>\n {formik.values.authScreenRightBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenRightBackgroundImage} />\n )}\n </div>\n }\n {formik.values.authPagesLayout === \"center\" &&\n <div>\n <div {...getAuthScreenCenterBackgroundImageRootProps()} className=\"solid-dropzone-wrapper\" style={{ borderRadius: 8 }}>\n <input {...getAuthScreenCenterBackgroundImageInputProps()} />\n <SettingDropzoneActivePlaceholder note={\"Recommended: 1440px × 724px | Aspect ratio: 2:1\"} />\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc = (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\n\n let src = authScreenCenterBackgroundImagePreview\n ? authScreenCenterBackgroundImagePreview\n : formik.values.authScreenCenterBackgroundImage\n ? formik.values.authScreenCenterBackgroundImage\n : logoSrc\n\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={300} width={600} maxHeight={300} />\n );\n })()}\n </div>\n {formik.values.authScreenCenterBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenCenterBackgroundImage} />\n )}\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-4\" />\n {solidSettingsData?.data?.enableDarkMode === true &&\n <>\n <p className=\"solid-settings-heading\">Authentication Screen Theme</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesTheme}\n options={[\n { value: \"light\", label: \"Solid Light\" },\n { value: \"dark\", label: \"Solid Dark\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"authPagesTheme\", value)}\n />\n </div>\n </div>\n </>\n }\n </>\n }\n\n {pathname.includes(\"misc-settings\") &&\n <>\n {/* \n <p className='font-bold' style={{ fontSize: 16, color: 'var(--solid-setting-title)' }}>Misc Details</p>\n <div className='formgrid grid'>\n <div className='col-12 lg:col-10 xl:col-8'>\n <div className=\"formgrid grid\">\n <div className=\"col-12 md:col-6 pb-3 md:pb-0\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5 \">\n <label className=\"form-field-label\">Use queue for sending emails</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <InputSwitch\n name=\"shouldQueueEmails\"\n checked={formik.values.shouldQueueEmails}\n onChange={(e) => formik.setFieldValue(\"shouldQueueEmails\", e.value)}\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-5 pb-2\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">Use queue for sending SMS</label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <InputSwitch\n name=\"shouldQueueSms\"\n checked={formik.values.shouldQueueSms}\n onChange={(e) => formik.setFieldValue(\"shouldQueueSms\", e.value)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Divider />\n */}\n <p className=\"solid-settings-heading\">Contact Support</p>\n <div className='formgrid grid'>\n <div className=\"col-12 lg:col-10 xl:col-8\">\n <div className='formgrid grid'>\n <div className=\"col-12 md:col-6 pb-3 md:pb-0\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Contact Support Email</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportEmail\"\n name=\"contactSupportEmail\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportEmail ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-12 md:col-5 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Display Name</label>\n </div>\n <div className=\"col-12 md:col-7\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportDisplayName\"\n name=\"contactSupportDisplayName\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportDisplayName ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n }\n {pathname.includes(\"ai-settings\") &&\n <AiSettingsSection\n aiConfig={formik.values.solidXGenAiCodeBuilderConfig as SolidAiConfig}\n onAiConfigChange={handleAiConfigChange}\n />\n }\n {pathname.includes(\"api-keys\") && session?.user?.id &&\n <ApiKeysTab\n userId={session.user.id}\n canCreate={session?.user?.isAllowedToGenerateApiKeys ?? false}\n />\n }\n </div>\n </form>\n </div>\n </div>\n </div>\n )\n}\n\ninterface AiSettingsSectionProps {\n aiConfig: SolidAiConfig;\n onAiConfigChange: (config: SolidAiConfig) => void;\n}\n\nconst DEFAULT_BEHAVIOR: ModelBehavior = { streaming: false, custom: \"\" };\nconst DEFAULT_MODEL_ENTRY: ModelEntry = { providerId: \"\", model: \"\", behavior: DEFAULT_BEHAVIOR };\n\nconst AiSettingsSection = ({ aiConfig, onAiConfigChange }: AiSettingsSectionProps) => {\n const [activeTab, setActiveTab] = useState<\"providers\" | \"default\" | \"fast\">(\"providers\");\n const [showAddProvider, setShowAddProvider] = useState(false);\n\n const providers = ensureBuiltInProviders(aiConfig.providers ?? {});\n\n const tabItems = [\n {\n value: \"providers\" as const,\n label: \"Providers\",\n content: (\n <ProvidersTab\n providers={providers}\n onProvidersChange={(newProviders) => {\n onAiConfigChange({ ...aiConfig, providers: newProviders });\n }}\n showAddModal={showAddProvider}\n onAddModalClose={() => setShowAddProvider(false)}\n />\n ),\n },\n {\n value: \"default\" as const,\n label: \"Intelligent Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.default ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, default: entry } });\n }}\n />\n ),\n },\n {\n value: \"fast\" as const,\n label: \"Fast Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.fast ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, fast: entry } });\n }}\n />\n ),\n },\n ];\n\n return (\n <div>\n <p className=\"solid-settings-heading\" style={{ marginBottom: \"1rem\" }}>\n AI Model Configuration\n </p>\n <SolidTabGroup\n tabs={tabItems}\n value={activeTab}\n onValueChange={(value) => setActiveTab(value as \"providers\" | \"default\" | \"fast\")}\n tabPosition=\"left\"\n extra={\n activeTab === \"providers\" ? (\n <SolidButton size=\"sm\" onClick={() => setShowAddProvider(true)}>\n Add\n </SolidButton>\n ) : undefined\n }\n />\n </div>\n );\n};\n"]}
|