@solidxai/core-ui 0.1.8-beta.19 → 0.1.8-beta.20
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/adapters/auth/getSession.d.ts.map +1 -1
- package/dist/adapters/auth/getSession.js +1 -1
- package/dist/adapters/auth/getSession.js.map +1 -1
- package/dist/adapters/auth/getSession.ts +1 -0
- package/dist/adapters/auth/helper.d.ts.map +1 -1
- package/dist/adapters/auth/helper.js +1 -0
- package/dist/adapters/auth/helper.js.map +1 -1
- package/dist/adapters/auth/helper.ts +3 -1
- package/dist/adapters/auth/signIn.d.ts.map +1 -1
- package/dist/adapters/auth/signIn.js +1 -0
- package/dist/adapters/auth/signIn.js.map +1 -1
- package/dist/adapters/auth/signIn.ts +3 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
- package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
- package/dist/adapters/auth/signOut.d.ts.map +1 -1
- package/dist/adapters/auth/signOut.js +7 -1
- package/dist/adapters/auth/signOut.js.map +1 -1
- package/dist/adapters/auth/signOut.ts +7 -1
- package/dist/adapters/auth/types.d.ts +1 -0
- package/dist/adapters/auth/types.d.ts.map +1 -1
- package/dist/adapters/auth/types.js.map +1 -1
- package/dist/adapters/auth/types.ts +1 -0
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +2 -1
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +2 -1
- package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
- package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/FacebookAuthChecking.js +103 -0
- package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
- package/dist/components/auth/FacebookAuthChecking.tsx +64 -0
- package/dist/components/auth/GoogleAuthChecking.js +0 -1
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +1 -1
- package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
- package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/MicrosoftAuthChecking.js +103 -0
- package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
- package/dist/components/auth/MicrosoftAuthChecking.tsx +64 -0
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +28 -12
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +26 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +15 -3
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +48 -17
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +87 -30
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +228 -146
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +1103 -772
- package/dist/components/common/SettingsComponent.d.ts +2 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -0
- package/dist/components/common/SettingsComponent.js +351 -0
- package/dist/components/common/SettingsComponent.js.map +1 -0
- package/dist/components/common/SettingsComponent.module.css +421 -0
- package/dist/components/common/SettingsComponent.tsx +582 -0
- package/dist/components/common/SocialMediaLogin.d.ts +8 -1
- package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +6 -13
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +120 -58
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +1 -1
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +2 -1
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +2 -1
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +2 -1
- package/dist/components/common/solid-export.css +26 -0
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +24 -25
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +22 -27
- package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +39 -9
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +42 -7
- package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
- package/dist/components/core/chatter/chatter.module.css +0 -3
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
- package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +5 -3
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +67 -27
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +54 -7
- package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
- package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
- package/dist/components/core/form/fields/SolidComputedField.js +128 -0
- package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
- package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +11 -3
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +13 -4
- package/dist/components/core/kanban/KanbanBoard.js +1 -1
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +216 -102
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.js +22 -0
- package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +58 -61
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +42 -46
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +15 -14
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.tsx +8 -6
- package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
- package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
- package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
- package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
- 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 +2 -2
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
- package/dist/components/solid-ui/SolidButton.d.ts +14 -0
- package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidButton.js +36 -0
- package/dist/components/solid-ui/SolidButton.js.map +1 -0
- package/dist/components/solid-ui/SolidButton.tsx +54 -0
- package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
- package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidTabs.js +22 -0
- package/dist/components/solid-ui/SolidTabs.js.map +1 -0
- package/dist/components/solid-ui/SolidTabs.tsx +73 -0
- package/dist/components/solid-ui/index.d.ts +3 -0
- package/dist/components/solid-ui/index.d.ts.map +1 -0
- package/dist/components/solid-ui/index.js +3 -0
- package/dist/components/solid-ui/index.js.map +1 -0
- package/dist/components/solid-ui/index.ts +2 -0
- package/dist/helpers/registry.d.ts +2 -2
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +4 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +5 -3
- package/dist/helpers/settingsPayload.d.ts +32 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -0
- package/dist/helpers/settingsPayload.js +72 -0
- package/dist/helpers/settingsPayload.js.map +1 -0
- package/dist/helpers/settingsPayload.ts +125 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
- package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.js +11 -1
- package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.ts +10 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/resources/globals.css +5 -1
- package/dist/resources/shadcn-base.css +242 -81
- package/dist/resources/solid-responsive.css +22 -4
- package/dist/routes/AppEventListener.js +1 -1
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +1 -1
- package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
- package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
- package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +5 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +5 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +2 -0
- package/dist/types/extension-registry.d.ts +1 -0
- package/dist/types/extension-registry.d.ts.map +1 -1
- package/dist/types/extension-registry.js +1 -0
- package/dist/types/extension-registry.js.map +1 -1
- package/dist/types/extension-registry.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/solid-core.d.ts +10 -0
- package/package.json +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
- package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
- package/dist/components/auth/SolidOTPVerify.js +0 -67
- package/dist/components/auth/SolidOTPVerify.js.map +0 -1
- package/dist/components/auth/SolidOTPVerify.tsx +0 -133
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
- package/dist/nextAuth/authProviders.d.ts +0 -4
- package/dist/nextAuth/authProviders.d.ts.map +0 -1
- package/dist/nextAuth/authProviders.js +0 -198
- package/dist/nextAuth/authProviders.js.map +0 -1
- package/dist/nextAuth/authProviders.tsx +0 -232
- package/dist/nextAuth/handleLogout.d.ts +0 -2
- package/dist/nextAuth/handleLogout.d.ts.map +0 -1
- package/dist/nextAuth/handleLogout.js +0 -36
- package/dist/nextAuth/handleLogout.js.map +0 -1
- package/dist/nextAuth/handleLogout.tsx +0 -39
- package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
- package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
- package/dist/nextAuth/refreshAccessToken.js +0 -24
- package/dist/nextAuth/refreshAccessToken.js.map +0 -1
- package/dist/nextAuth/refreshAccessToken.tsx +0 -28
- package/dist/redux/features/settingsSlice.d.ts +0 -20
- package/dist/redux/features/settingsSlice.d.ts.map +0 -1
- package/dist/redux/features/settingsSlice.js +0 -39
- package/dist/redux/features/settingsSlice.js.map +0 -1
- package/dist/redux/features/settingsSlice.ts +0 -60
|
@@ -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 { 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 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?.data || {};\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 wasCleared = currentValue != null && currentValue !== \"\" && (value === null || value === \"\");\n const isFile = value instanceof File;\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n const changed = isFile || wasCleared || normalizedCurrent !== normalizedValue;\n\n if (changed) {\n if (isFile) {\n formData.append(key, value as File);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value: value === null || value === undefined ? \"\" : (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 </>\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"]}
|
|
1
|
+
{"version":3,"file":"GeneralSettings.js","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxI,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,uCAAuC,CAAA;AAC7D,OAAO,8BAA8B,MAAM,sDAAsD,CAAC;AAClG,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,+BAA+B,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,YAAY,EAA4C,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC9J,OAAO,EAAE,WAAW,EAAe,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACpH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,MAAM,CAAC,IAAM,eAAe,GAAG;;IACnB,IAAM,OAAO,GAAK,UAAU,EAAE,KAAjB,CAAkB;IACjC,IAAA,MAAsC,QAAQ,CAAgB,IAAI,CAAC,EAAlE,cAAc,SAAA,EAAE,iBAAiB,SAAiC,CAAC;IACpE,IAAA,MAA8C,QAAQ,CAAgB,IAAI,CAAC,EAA1E,kBAAkB,SAAA,EAAE,qBAAqB,SAAiC,CAAC;IAC5E,IAAA,MAAoF,QAAQ,CAAgB,IAAI,CAAC,EAAhH,qCAAqC,SAAA,EAAE,wCAAwC,SAAiC,CAAC;IAClH,IAAA,MAAkF,QAAQ,CAAgB,IAAI,CAAC,EAA9G,oCAAoC,SAAA,EAAE,uCAAuC,SAAiC,CAAC;IAChH,IAAA,MAAsF,QAAQ,CAAgB,IAAI,CAAC,EAAlH,sCAAsC,SAAA,EAAE,yCAAyC,SAAiC,CAAC;IAC1H,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE1B,IAAA,MAAyC,4BAA4B,EAAE,EAAtE,OAAO,SAAA,EAAU,iBAAiB,cAAoC,CAAC;IAE5E,SAAS,CAAC;QACN,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC,0BAA0B;IAC1C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACb,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACxB,IAAA,uBAAuB,GAAI,kCAAkC,EAAE,GAAxC,CAAyC;IACvE,IAAM,aAAa,GAAG;QAClB,OAAO,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,OAAO,mCAAI,IAAI;QACjD,WAAW,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,WAAW,mCAAI,IAAI;QACzD,oCAAoC,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,oCAAoC,mCAAI,OAAO;QAC9G,6BAA6B,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,6BAA6B,mCAAI,OAAO;QAChG,uBAAuB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,uBAAuB,mCAAI,KAAK;QAClF,iBAAiB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,iBAAiB,mCAAI,KAAK;QACtE,gBAAgB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,gBAAgB,mCAAI,KAAK;QACpE,0BAA0B,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,0BAA0B,mCAAI,KAAK;QACxF,qBAAqB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,qBAAqB,mCAAI,KAAK;QAC9E,wBAAwB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,wBAAwB,mCAAI,KAAK;QACpF,uBAAuB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,uBAAuB,mCAAI,KAAK;QAClF,oBAAoB,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,oBAAoB,mCAAI,KAAK;QAC5E,0EAA0E;QAC1E,oEAAoE;QACpE,eAAe,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,mCAAI,QAAQ;QACrE,WAAW,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,WAAW,mCAAI,OAAO;QAC5D,eAAe,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,mCAAI,cAAc;QAC3E,eAAe,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,mCAAI,KAAK;QAClE,QAAQ,EAAE,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,QAAQ,mCAAI,QAAQ;QACvD,WAAW,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,WAAW,qCAAI,YAAY;QACjE,cAAc,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,cAAc,qCAAI,gBAAgB;QAC3E,cAAc,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,cAAc,qCAAI,KAAK;QAChE,MAAM,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,MAAM,qCAAI,IAAI;QAC/C,gBAAgB,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,gBAAgB,qCAAI,IAAI;QACnE,cAAc,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,cAAc,qCAAI,KAAK;QAChE,SAAS,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,SAAS,qCAAI,IAAI;QACrD,+BAA+B,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,+BAA+B,qCAAI,KAAK;QAClG,mBAAmB,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,mBAAmB,qCAAI,IAAI;QACzE,yBAAyB,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,yBAAyB,qCAAI,IAAI;QACrF,kBAAkB,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,kBAAkB,qCAAI,IAAI;QACvE,8BAA8B,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,8BAA8B,qCAAI,IAAI;QAC/F,6BAA6B,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,6BAA6B,qCAAI,IAAI;QAC7F,+BAA+B,EAAE,OAAA,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,4CAAE,+BAA+B,qCAAI,IAAI;QACjG,4BAA4B,EAAE,CAAC;;YAC3B,IAAM,eAAe,GAAkB;gBACnC,MAAM,EAAE;oBACJ,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;oBAClF,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;iBAClF;gBACD,SAAS,EAAE,EAAE;aAChB,CAAC;YACF,IAAM,GAAG,GAAG,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,4BAA4B,CAAC;YAClE,IAAI,CAAC,GAAG;gBAAE,OAAO,eAAe,CAAC;YACjC,IAAI;gBACA,IAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/D,OAAO,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAkB,CAAC;aAC7F;YAAC,WAAM;gBACJ,OAAO,eAAe,CAAC;aAC1B;QACL,CAAC,CAAC,EAAE;QACJ,6DAA6D;QAC7D,6DAA6D;QAC7D,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;KAG7E,CAAC;IACF,IAAM,MAAM,GAAG,SAAS,CAAC;QACrB,aAAa,EAAE,aAAa;QAC5B,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,UAAO,MAAM;;;;;;;wBAGT,yBAA4E,EAAE,CAAC;wBAC/E,oBAAkB,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,KAAI,EAAE,CAAC;wBAExD,aAAW,IAAI,QAAQ,EAAE,CAAC;wBAEhC,yBAAyB;wBACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gCAAX,GAAG,QAAA,EAAE,KAAK,QAAA;4BACzC,IAAM,YAAY,GAAG,iBAAe,CAAC,GAAG,CAAC,CAAC;4BAEhC,IAAM,UAAU,GAAG,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;4BACnG,IAAM,MAAM,GAAG,KAAK,YAAY,IAAI,CAAC;4BAC/C,IAAM,iBAAiB,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC;4BAC7C,IAAM,eAAe,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;4BACpC,IAAM,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,iBAAiB,KAAK,eAAe,CAAC;4BAEhF,IAAI,OAAO,EAAE;gCACT,IAAI,MAAM,EAAE;oCACV,UAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAa,CAAC,CAAC;oCACpC,sBAAoB,CAAC,IAAI,CAAC;wCACxB,GAAG,KAAA;wCACH,KAAK,EAAE,EAAE;wCACT,IAAI,EAAE,QAAQ;qCACf,CAAC,CAAC;iCACJ;qCAAM;oCACL,sBAAoB,CAAC,IAAI,CAAC;wCACxB,GAAG,KAAA;wCACH,KAAK,EACH,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wCAC1G,IAAI,EAAE,QAAQ;qCACf,CAAC,CAAC;iCACJ;6BACF;wBACH,CAAC,CAAC,CAAC;wBAEH,IAAI,sBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;4BACrC,QAAQ,CACN,SAAS,CAAC;gCACR,QAAQ,EAAE,SAAS;gCACnB,OAAO,EAAE,YAAY;gCACrB,MAAM,EAAE,0BAA0B;6BACnC,CAAC,CACH,CAAC;4BACF,sBAAO;yBACR;wBAED,oCAAoC;wBACpC,UAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAoB,CAAC,CAAC,CAAC;wBAGjD,qBAAM,uBAAuB,CAAC;gCAC7C,IAAI,EAAE,UAAQ;6BACf,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAFL,QAAQ,GAAG,SAEN;wBAEX,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;4BAC/B,QAAQ,CACN,SAAS,CAAC;gCACR,QAAQ,EAAE,SAAS;gCACnB,OAAO,EAAE,SAAS;gCAClB,MAAM,EAAE,kBAAkB;6BAC3B,CAAC,CACH,CAAC;4BACF,OAAO,CAAC,EAAE,CAAC,CAAC;yBACb;;;;wBAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAK,CAAC,CAAC;wBAC/C,QAAQ,CACN,SAAS,CAAC;4BACR,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,cAAc,CAAC,MAAM;4BAC9B,MAAM,EAAE,CAAA,MAAA,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,IAAI,0CAAE,OAAO,KAAI,cAAc,CAAC,eAAe;yBAC/D,CAAC,CACH,CAAC;;;;;aAEL;KACF,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG;;;;wBACD,qBAAM,MAAM,CAAC,YAAY,EAAE,EAAA;;oBAApC,MAAM,GAAG,SAA2B;oBACpC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAE5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,QAAQ,CACN,SAAS,CAAC;4BACR,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,OAAO;4BAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;gCAClC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gCAC1B,CAAC,CAAC,aAAa;yBAClB,CAAC,CACH,CAAC;qBACH;;;;SACF,CAAC;IACF,SAAS,CAAC,cAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhC,IAAM,WAAW,GAAgD;QAC/D,IAAI,EAAE,4GAA4G;QAClH,MAAM,EACJ,8EAA8E;QAChF,KAAK,EACH,0GAA0G;KAC7G,CAAC;IAEF,IAAM,aAAa,GAAG,WAAW,CAC/B,UAAC,aAAqB;QACpB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;gBAC/B,QAAQ,CACN,SAAS,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,gBAAgB;oBACzB,MAAM,EAAE,0BAA0B;iBACnC,CAAC,CACH,CAAC;gBACF,OAAO;aACR;YACD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9C;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,iBAAiB,GAAG,WAAW,CACnC,UAAC,aAAqB;QACpB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;gBAC/B,QAAQ,CACN,SAAS,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,gBAAgB;oBACzB,MAAM,EAAE,0BAA0B;iBACnC,CAAC,CACH,CAAC;gBACF,OAAO;aACR;YACD,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC1C,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SAClD;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEI,IAAA,MAIF,WAAW,CAAC;QACd,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,YAAY,EAAE,CAAC,OAAO,CAAC;SACxB;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,aAAa;KACtB,CAAC,EAZc,mBAAmB,mBAAA,EAClB,oBAAoB,oBAAA,EACrB,mBAAmB,mBAUjC,CAAC;IACG,IAAA,MAIF,WAAW,CAAC;QACd,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,YAAY,EAAE,CAAC,OAAO,CAAC;SACxB;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,iBAAiB;KAC1B,CAAC,EAZc,uBAAuB,mBAAA,EACtB,wBAAwB,oBAAA,EACzB,uBAAuB,mBAUrC,CAAC;IAEH,IAAM,aAAa,GAAG;QACpB,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,cAAc,EAAE;YAClB,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACpC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG;QACxB,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,kBAAkB,EAAE;YACtB,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACxC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC;IAEF,IAAM,oCAAoC,GAAG,WAAW,CACtD,UAAC,aAAqB;QACpB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;gBAC/B,QAAQ,CACN,SAAS,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,cAAc,CAAC,UAAU;oBAClC,MAAM,EAAE,cAAc,CAAC,aAAa;iBACrC,CAAC,CACH,CAAC;gBACF,OAAO;aACR;YACD,MAAM,CAAC,aAAa,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;YAC7D,wCAAwC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SACrE;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,mCAAmC,GAAG,WAAW,CACrD,UAAC,aAAqB;QACpB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;gBAC/B,QAAQ,CACN,SAAS,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,cAAc,CAAC,UAAU;oBAClC,MAAM,EAAE,cAAc,CAAC,aAAa;iBACrC,CAAC,CACH,CAAC;gBACF,OAAO;aACR;YACD,MAAM,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;YAC5D,uCAAuC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SACpE;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,qCAAqC,GAAG,WAAW,CACvD,UAAC,aAAqB;QACpB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;gBAC/B,QAAQ,CACN,SAAS,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,cAAc,CAAC,UAAU;oBAClC,MAAM,EAAE,cAAc,CAAC,aAAa;iBACrC,CAAC,CACH,CAAC;gBACF,OAAO;aACR;YACD,MAAM,CAAC,aAAa,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;YAC9D,yCAAyC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SACtE;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEI,IAAA,MAIF,WAAW,CAAC;QACd,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,YAAY,EAAE,CAAC,OAAO,CAAC;SACxB;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,oCAAoC;KAC7C,CAAC,EAZc,0CAA0C,mBAAA,EACzC,2CAA2C,oBAAA,EAC5C,0CAA0C,mBAUxD,CAAC;IAEG,IAAA,MAIF,WAAW,CAAC;QACd,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,YAAY,EAAE,CAAC,OAAO,CAAC;SACxB;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,mCAAmC;KAC5C,CAAC,EAZc,yCAAyC,mBAAA,EACxC,0CAA0C,oBAAA,EAC3C,yCAAyC,mBAUvD,CAAC;IAEG,IAAA,MAIF,WAAW,CAAC;QACd,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC/B,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,YAAY,EAAE,CAAC,OAAO,CAAC;SACxB;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,qCAAqC;KAC9C,CAAC,EAZc,2CAA2C,mBAAA,EAC1C,4CAA4C,oBAAA,EAC7C,2CAA2C,mBAUzD,CAAC;IAEH,IAAM,oCAAoC,GAAG;QAC3C,MAAM,CAAC,aAAa,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,qCAAqC,EAAE;YACzC,GAAG,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAC;YAC3D,wCAAwC,CAAC,IAAI,CAAC,CAAC;SAChD;IACH,CAAC,CAAC;IAEF,IAAM,mCAAmC,GAAG;QAC1C,MAAM,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,oCAAoC,EAAE;YACxC,GAAG,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YAC1D,uCAAuC,CAAC,IAAI,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC;IAEF,IAAM,qCAAqC,GAAG;QAC5C,MAAM,CAAC,aAAa,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,sCAAsC,EAAE;YAC1C,GAAG,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;YAC5D,yCAAyC,CAAC,IAAI,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,UAAC,SAAwB;QACpD,MAAM,CAAC,aAAa,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,qBAAqB,YAClC,cAAK,SAAS,EAAC,oBAAoB,YACjC,cAAK,SAAS,EAAC,oBAAoB,YACjC,gBAAM,QAAQ,EAAE,MAAM,CAAC,YAAY,aACjC,eAAK,SAAS,EAAC,qCAAqC,aAClD,cAAK,SAAS,EAAC,qBAAqB,yBAAe,EACnD,cAAK,SAAS,EAAC,YAAY,YACxB,MAAM,CAAC,KAAK,IAAI,CACf,KAAC,WAAW,IACV,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,CAAC,YAAY,EAC5B,OAAO,EAAE,cAAM,OAAA,SAAS,EAAE,EAAX,CAAW,qBAGd,CACf,GAEG,IACF,EACN,eAAK,SAAS,EAAC,qCAAqC,aACjD,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CACpC,8BACE,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,eAAK,SAAS,EAAC,eAAe,aAC5B,eAAK,SAAS,EAAC,iBAAiB,aAC9B,YAAG,SAAS,EAAC,2BAA2B,yBAAa,EACrD,0BACE,0BACM,mBAAmB,EAAE,IACzB,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAE1B,2BAAW,oBAAoB,EAAE,EAAI,EAErC,KAAC,gCAAgC,KAAG,KAEhC,EACN,cAAK,SAAS,EAAC,MAAM,YAClB,CAAC;gFACA,IAAM,OAAO,GACV,SAAiB,CAAC,GAAG,IAAI,SAAS,CAAC;gFAEtC,IAAI,GAAG,GAAG,cAAc;oFACtB,CAAC,CAAC,cAAc;oFAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;wFACrB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;wFACvB,CAAC,CAAC,OAAO,CAAC;gFAEd,IAAM,gBAAgB,GACpB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC;qFACxB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;gFAE1B,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oFAC7C,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;iFAClC;gFACD,OAAO,CACL,KAAC,kBAAkB,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,gBAAgB,GAC1B,CACH,CAAC;4EACJ,CAAC,CAAC,EAAE,GACA,EACL,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CACxB,KAAC,yBAAyB,IACxB,OAAO,EAAE,aAAa,GACtB,CACH,IACG,IACF,EACN,eAAK,SAAS,EAAC,iBAAiB,aAC9B,YAAG,SAAS,EAAC,2BAA2B,6BAEpC,EACJ,0BACE,0BACM,uBAAuB,EAAE,IAC7B,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAE1B,2BAAW,wBAAwB,EAAE,EAAI,EAEzC,KAAC,gCAAgC,KAAG,KAEhC,EACN,cAAK,SAAS,EAAC,MAAM,YAClB,CAAC;gFACA,IAAM,OAAO,GACV,SAAiB,CAAC,GAAG,IAAI,SAAS,CAAC;gFAEtC,IAAI,GAAG,GAAG,kBAAkB;oFAC1B,CAAC,CAAC,kBAAkB;oFACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW;wFACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW;wFAC3B,CAAC,CAAC,OAAO,CAAC;gFAEd,IAAM,gBAAgB,GACpB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC;qFACxB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;gFAE1B,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oFAC7C,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;iFAClC;gFAED,OAAO,CACL,KAAC,kBAAkB,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,oBAAoB,GAC9B,CACH,CAAC;4EACJ,CAAC,CAAC,EAAE,GACA,EACL,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,CAC5B,KAAC,yBAAyB,IACxB,OAAO,EAAE,iBAAiB,GAC1B,CACH,IACG,IACF,IACF,GACF,GACF,EACN,YAAG,SAAS,EAAC,wBAAwB,kCAAsB,EAC3D,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,qBAAqB,IACpB,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EACpC,OAAO,EAAE;4DACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;4DAChD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;yDACnD,EACD,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAA9C,CAA8C,GACnE,GACE,GACF,GACF,EACN,KAAC,YAAY,IAAC,SAAS,EAAC,MAAM,GAAG,EACjC,YAAG,SAAS,EAAC,wBAAwB,4CAAgC,EACnD,cAAK,SAAS,EAAC,eAAe,YAC1B,cAAK,SAAS,EAAC,2BAA2B,YAC5D,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,uCAAuC,YACtB,gBAAO,SAAS,EAAC,kBAAkB,sDAA8C,GAC3G,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EACtC,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,iBAAiB,EACjB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,0BAE3B,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,UAAU,IACT,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,qCAAI,EAAE,EACnC,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,6BAE3B,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,UAAU,IACT,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,aAAa,EAClB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,WAAW,qCAAI,EAAE,EACtC,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,4BAE3B,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,aAAa,IACZ,IAAI,EAAE,CAAC,EACP,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAC,gBAAgB,EACrB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,cAAc,qCAAI,EAAE,EACzC,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,0BAAkB,GACjD,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,aAAa,IACZ,IAAI,EAAE,CAAC,EACP,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,WAAW,EAChB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,SAAS,qCAAI,EAAE,EACpC,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,IACF,GACF,GACF,EACN,KAAC,YAAY,IAAC,SAAS,EAAC,MAAM,GAAG,EAEjC,YAAG,SAAS,EAAC,wBAAwB,4BAAgB,EACrD,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,gBAAO,SAAS,EAAC,kBAAkB,iCAAyB,GACxD,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EACrC,QAAQ,EAAE,UAAC,OAAO,IAAK,OAAA,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAA/C,CAA+C,GACtE,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,0CAE3B,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,UAAU,IACT,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,QAAQ,EACX,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,MAAM,qCAAI,EAAE,EACjC,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,gBAAO,SAAS,EAAC,kBAAkB,oCAE3B,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,UAAU,IACT,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,kBAAkB,EACrB,IAAI,EAAC,kBAAkB,EACvB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,gBAAgB,qCAAI,EAAE,EAC3C,SAAS,EAAC,QAAQ,GAClB,GACE,IACF,GACF,IACF,GACF,GACF,EACN,KAAC,YAAY,IAAC,SAAS,EAAC,MAAM,GAAG,EACjC,YAAG,SAAS,EAAC,wBAAwB,sBAAU,EAC/C,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,2BAA2B,YACxC,gBAAO,SAAS,EAAC,kBAAkB,iCAE3B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EACrC,QAAQ,EAAE,UAAC,OAAO,IAAK,OAAA,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAC,OAAO,CAAC,EAA9C,CAA8C,GACrE,GACE,IACF,GACF,GACF,GACF,GACF,IACL,CACJ,EACA,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAC/C,8BACE,YAAG,SAAS,EAAC,wBAAwB,oCAAwB,EAC7D,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,QAAQ,YACrB,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,gBAAO,SAAS,EAAC,kBAAkB,oCAE3B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,yBAAyB,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAC9C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,yBAAyB,EACzB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,gBAAO,SAAS,EAAC,kBAAkB,8CAE3B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EACxC,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,mBAAmB,EACnB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,gBAAO,SAAS,EAAC,kBAAkB,6CAE3B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EACvC,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,kBAAkB,EAClB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,mDACE,GAAG,IAChC,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,4BAA4B,EACjC,OAAO,EACL,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAE1C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,4BAA4B,EAC5B,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,gDACD,GAAG,IAC7B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,uBAAuB,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC5C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,uBAAuB,EACvB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,mDACE,GAAG,IAChC,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,0BAA0B,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAC/C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,0BAA0B,EAC1B,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,kDACC,GAAG,IAC/B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,yBAAyB,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAC9C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,yBAAyB,EACzB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,+CACF,GAAG,IAC5B,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,sBAAsB,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAC3C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,sBAAsB,EACtB,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACN,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,0BAA0B,YACvC,iBAAO,SAAS,EAAC,kBAAkB,qDACI,GAAG,IAClC,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,WAAW,IACV,IAAI,EAAC,iCAAiC,EACtC,OAAO,EACL,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAE/C,QAAQ,EAAE,UAAC,OAAO;gFAChB,OAAA,MAAM,CAAC,aAAa,CAClB,iCAAiC,EACjC,OAAO,CACR;4EAHD,CAGC,GAEH,GACE,IACF,GACF,EACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAC1C,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,oCAAoC,YACjD,gBAAO,SAAS,EAAC,kBAAkB,kDAE3B,GACJ,EACN,cAAK,SAAS,EAAC,oCAAoC,YACjD,KAAC,qBAAqB,IACpB,SAAS,EAAC,uCAAuC,EACjD,KAAK,EACH,MAAM,CAAC,MAAM;iFACV,oCAAoC,EAEzC,OAAO,EAAE;gFACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gFAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;6EACrC,EACD,QAAQ,EAAE,UAAC,KAAK;gFACd,OAAA,MAAM,CAAC,aAAa,CAClB,sCAAsC,EACtC,KAAK,CACN;4EAHD,CAGC,GAEH,GACE,IACF,GACF,CACP,EACA,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAC1C,cAAK,SAAS,EAAC,aAAa,YAC1B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,oCAAoC,YACjD,gBAAO,SAAS,EAAC,kBAAkB,2CAE3B,GACJ,EACN,cAAK,SAAS,EAAC,oCAAoC,YACjD,KAAC,qBAAqB,IACpB,SAAS,EAAC,uCAAuC,EACjD,KAAK,EACH,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAE7C,OAAO,EAAE;gFACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gFAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gFACpC;oFACE,KAAK,EAAE,YAAY;oFACnB,KAAK,EAAE,YAAY;iFACpB;6EACF,EACD,QAAQ,EAAE,UAAC,KAAK;gFACd,OAAA,MAAM,CAAC,aAAa,CAClB,+BAA+B,EAC/B,KAAK,CACN;4EAHD,CAGC,GAEH,GACE,IACF,GACF,CACP,IACG,GACF,GACF,EACN,KAAC,YAAY,IAAC,SAAS,EAAC,MAAM,GAAG,EACjC,YAAG,SAAS,EAAC,wBAAwB,6CAEjC,EACJ,cAAK,SAAS,EAAC,eAAe,YAC5B,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,qBAAqB,IACpB,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EACpC,OAAO,EAAE;4DACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4DAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;4DACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;yDACnC,EACD,QAAQ,EAAE,UAAC,KAAK;4DACd,OAAA,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC;wDAA9C,CAA8C,GAEhD,EACF,aAAG,SAAS,EAAC,wBAAwB,uBAC5B,GAAG,EAER,WAAW,CACT,MAAM,CAAC,MAAM,CAAC,eAGH,CACZ,IAED,IACA,GACF,EACL,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,mBAAK,EACpD,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,2BAA2B,YACxC,cAAK,SAAS,EAAC,eAAe,YAC5B,eAAK,SAAS,EAAC,0BAA0B,aACvC,aAAG,SAAS,EAAC,2BAA2B,aACrC,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,QAAQ;wEACzC,CAAC,CAAC,YAAY;wEACd,CAAC,CAAC,QAAQ,EAAE,GAAG,aAEf,EACH,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,MAAM,IAAI,CAC3C,0BACE,0BACM,yCAAyC,EAAE,IAC/C,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAE1B,2BACM,0CAA0C,EAAE,EAChD,EAEF,KAAC,gCAAgC,IAC/B,IAAI,EACF,4CAA4C,GAE9C,KAEE,EACN,cAAK,SAAS,EAAC,MAAM,YAClB,CAAC;4EACA,IAAM,OAAO,GACV,6BAAqC;iFACnC,GAAG,IAAI,6BAA6B,CAAC;4EAE1C,IAAI,GAAG,GAAG,oCAAoC;gFAC5C,CAAC,CAAC,oCAAoC;gFACtC,CAAC,CAAC,MAAM,CAAC,MAAM;qFACR,6BAA6B;oFAClC,CAAC,CAAC,MAAM,CAAC,MAAM;yFACV,6BAA6B;oFAClC,CAAC,CAAC,OAAO,CAAC;4EAEd,IAAM,gBAAgB,GACpB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC;iFACxB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;4EAE1B,IACE,CAAC,gBAAgB;gFACjB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACpB;gFACA,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;6EAClC;4EACD,OAAO,CACL,KAAC,kBAAkB,IACjB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,GAAG,GACd,CACH,CAAC;wEACJ,CAAC,CAAC,EAAE,GACA,EACL,MAAM,CAAC,MAAM,CAAC,6BAA6B,IAAI,CAC9C,KAAC,yBAAyB,IACxB,OAAO,EAAE,mCAAmC,GAC5C,CACH,IACG,CACP,EACA,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,IAAI,CAC5C,0BACE,0BACM,0CAA0C,EAAE,IAChD,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAE1B,2BACM,2CAA2C,EAAE,EACjD,EAEF,KAAC,gCAAgC,IAC/B,IAAI,EACF,4CAA4C,GAE9C,KAEE,EACN,cAAK,SAAS,EAAC,MAAM,YAClB,CAAC;4EACA,IAAM,OAAO,GACV,8BAAsC;iFACpC,GAAG,IAAI,8BAA8B,CAAC;4EAE3C,IAAI,GAAG,GACL,qCAAqC;gFACnC,CAAC,CAAC,qCAAqC;gFACvC,CAAC,CAAC,MAAM,CAAC,MAAM;qFACR,8BAA8B;oFACnC,CAAC,CAAC,MAAM,CAAC,MAAM;yFACV,8BAA8B;oFACnC,CAAC,CAAC,OAAO,CAAC;4EAEhB,IAAM,gBAAgB,GACpB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC;iFACxB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;4EAE1B,IACE,CAAC,gBAAgB;gFACjB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACpB;gFACA,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;6EAClC;4EACD,OAAO,CACL,KAAC,kBAAkB,IACjB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,GAAG,GACd,CACH,CAAC;wEACJ,CAAC,CAAC,EAAE,GACA,EACL,MAAM,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAC/C,KAAC,yBAAyB,IACxB,OAAO,EAAE,oCAAoC,GAC7C,CACH,IACG,CACP,EACA,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,CAC7C,0BACE,0BACM,2CAA2C,EAAE,IACjD,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAE1B,2BACM,4CAA4C,EAAE,EAClD,EACF,KAAC,gCAAgC,IAC/B,IAAI,EACF,iDAAiD,GAEnD,KACE,EACN,cAAK,SAAS,EAAC,MAAM,YAClB,CAAC;4EACA,IAAM,OAAO,GACV,+BAAuC;iFACrC,GAAG,IAAI,+BAA+B,CAAC;4EAE5C,IAAI,GAAG,GACL,sCAAsC;gFACpC,CAAC,CAAC,sCAAsC;gFACxC,CAAC,CAAC,MAAM,CAAC,MAAM;qFACR,+BAA+B;oFACpC,CAAC,CAAC,MAAM,CAAC,MAAM;yFACV,+BAA+B;oFACpC,CAAC,CAAC,OAAO,CAAC;4EAEhB,IAAM,gBAAgB,GACpB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,OAAO,CAAC;iFACxB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC;4EAEQ,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gFAC3C,GAAG,GAAG,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;6EACpC;4EACD,OAAO,CACH,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAI,CAC5E,CAAC;wEACN,CAAC,CAAC,EAAE,GACF,EACL,MAAM,CAAC,MAAM,CAAC,+BAA+B,IAAI,CAC9C,KAAC,yBAAyB,IAAC,OAAO,EAAE,qCAAqC,GAAI,CAChF,IACC,CACT,IACC,GACJ,GACJ,GACJ,EACN,KAAC,YAAY,IAAC,SAAS,EAAC,MAAM,GAAG,IAClC,CACN,EAEd,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CACrC,8BAuCoB,YAAG,SAAS,EAAC,wBAAwB,gCAAoB,EACzD,cAAK,SAAS,EAAC,eAAe,YAC1B,cAAK,SAAS,EAAC,2BAA2B,YACtC,eAAK,SAAS,EAAC,eAAe,aAC1B,cAAK,SAAS,EAAC,8BAA8B,YACzC,eAAK,SAAS,EAAC,kCAAkC,aAC7C,cAAK,SAAS,EAAC,8BAA8B,YACzC,gBAAO,SAAS,EAAC,kBAAkB,sCAA8B,GAC/D,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC5B,KAAC,UAAU,IACP,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,qBAAqB,EACxB,IAAI,EAAC,qBAAqB,EAC1B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,mBAAmB,qCAAI,EAAE,EAC9C,SAAS,EAAC,QAAQ,GACpB,GACA,IACJ,GACJ,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC5B,eAAK,SAAS,EAAC,kCAAkC,aAC7C,cAAK,SAAS,EAAC,8BAA8B,YACzC,gBAAO,SAAS,EAAC,kBAAkB,6BAAqB,GACtD,EACN,cAAK,SAAS,EAAC,iBAAiB,YAC5B,KAAC,UAAU,IACP,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,2BAA2B,EAC9B,IAAI,EAAC,2BAA2B,EAChC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,OAAA,MAAM,CAAC,MAAM,CAAC,yBAAyB,qCAAI,EAAE,EACpD,SAAS,EAAC,QAAQ,GACpB,GACA,IACJ,GACJ,IACJ,GACJ,GACJ,IACP,CACN,EACA,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;oCAC7B,KAAC,iBAAiB,IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA6C,EACrE,gBAAgB,EAAE,oBAAoB,GACxC,EAEL,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAI,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,4CAAE,EAAE,CAAA;oCAC/C,KAAC,UAAU,IACP,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EACvB,SAAS,EAAE,OAAA,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,4CAAE,0BAA0B,qCAAI,KAAK,GAC/D,IAEJ,IACH,GACL,GACJ,GACJ,CACT,CAAA;AACL,CAAC,CAAA;AAOD,IAAM,gBAAgB,GAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACzE,IAAM,mBAAmB,GAAe,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAElG,IAAM,iBAAiB,GAAG,UAAC,EAAsD;;QAApD,QAAQ,cAAA,EAAE,gBAAgB,sBAAA;IAC7C,IAAA,KAA4B,QAAQ,CAAmC,WAAW,CAAC,EAAlF,SAAS,QAAA,EAAE,YAAY,QAA2D,CAAC;IACpF,IAAA,KAAwC,QAAQ,CAAC,KAAK,CAAC,EAAtD,eAAe,QAAA,EAAE,kBAAkB,QAAmB,CAAC;IAE9D,IAAM,SAAS,GAAG,sBAAsB,CAAC,MAAA,QAAQ,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC;IAEnE,IAAM,QAAQ,GAAG;QACb;YACI,KAAK,EAAE,WAAoB;YAC3B,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,CACL,KAAC,YAAY,IACT,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,UAAC,YAAY;oBAC5B,gBAAgB,uBAAM,QAAQ,KAAE,SAAS,EAAE,YAAY,IAAG,CAAC;gBAC/D,CAAC,EACD,YAAY,EAAE,eAAe,EAC7B,eAAe,EAAE,cAAM,OAAA,kBAAkB,CAAC,KAAK,CAAC,EAAzB,CAAyB,GAClD,CACL;SACJ;QACD;YACI,KAAK,EAAE,SAAkB;YACzB,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,CACL,KAAC,cAAc,IACX,UAAU,EAAE,MAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,OAAO,mCAAI,mBAAmB,EAC3D,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,UAAC,KAAK;oBACtB,gBAAgB,uBAAM,QAAQ,KAAE,MAAM,wBAAO,QAAQ,CAAC,MAAM,KAAE,OAAO,EAAE,KAAK,OAAK,CAAC;gBACtF,CAAC,GACH,CACL;SACJ;QACD;YACI,KAAK,EAAE,MAAe;YACtB,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,CACL,KAAC,cAAc,IACX,UAAU,EAAE,MAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,IAAI,mCAAI,mBAAmB,EACxD,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,UAAC,KAAK;oBACtB,gBAAgB,uBAAM,QAAQ,KAAE,MAAM,wBAAO,QAAQ,CAAC,MAAM,KAAE,IAAI,EAAE,KAAK,OAAK,CAAC;gBACnF,CAAC,GACH,CACL;SACJ;KACJ,CAAC;IAEF,OAAO,CACH,0BACI,YAAG,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,uCAEjE,EACJ,KAAC,aAAa,IACV,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,KAAyC,CAAC,EAAvD,CAAuD,EACjF,WAAW,EAAC,MAAM,EAClB,KAAK,EACD,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,CACxB,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,kBAAkB,CAAC,IAAI,CAAC,EAAxB,CAAwB,oBAEhD,CACjB,CAAC,CAAC,CAAC,SAAS,GAEnB,IACA,CACT,CAAC;AACN,CAAC,CAAC","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\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 iamMicrosoftOAuthEnabled: solidSettingsData?.data?.iamMicrosoftOAuthEnabled ?? false,\n iamFacebookOAuthEnabled: solidSettingsData?.data?.iamFacebookOAuthEnabled ?? false,\n iamAppleOAuthEnabled: solidSettingsData?.data?.iamAppleOAuthEnabled ?? false,\n // shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,\n // shouldQueueSms: solidSettingsData?.data?.shouldQueueSms ?? false,\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?.data || {};\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 wasCleared = currentValue != null && currentValue !== \"\" && (value === null || value === \"\");\n const isFile = value instanceof File;\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n const changed = isFile || wasCleared || normalizedCurrent !== normalizedValue;\n\n if (changed) {\n if (isFile) {\n formData.append(key, value as File);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value:\n value === null || value === undefined ? \"\" : (typeof value === \"string\" ? value : JSON.stringify(value)),\n type: \"system\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"No Changes\",\n detail: \"No settings were updated\",\n }),\n );\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({\n data: formData,\n }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Updated\",\n detail: \"Settings updated\",\n }),\n );\n trigger(\"\");\n }\n } catch (error: any) {\n console.log(\"Error updating settings:\", error);\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FAILED,\n detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG,\n }),\n );\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(\n showToast({\n severity: \"error\",\n summary: \"Error\",\n detail: Array.isArray(errorMessages)\n ? errorMessages.join(\", \")\n : errorMessages,\n }),\n );\n }\n };\n useEffect(() => {}, [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:\n \"The form will be centered in the middle of the screen for balanced alignment\",\n right:\n \"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(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"appLogo\", file);\n setAppLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onCompanyLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"companylogo\", file);\n setCompanyLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\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 const onAuthScreenRightBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenRightBackgroundImage\", file);\n setAuthScreenRightBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenLeftBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", file);\n setAuthScreenLeftBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenCenterBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", file);\n setAuthScreenCenterBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\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 const handleAiConfigChange = (newConfig: SolidAiConfig) => {\n formik.setFieldValue(\"solidXGenAiCodeBuilderConfig\", newConfig);\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\n size=\"sm\"\n type=\"submit\"\n loading={formik.isSubmitting}\n onClick={() => showError()}\n >\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\n {...getAppLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getAppLogoInputProps()} />\n {/* {isAppLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (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 =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-app-logo\"\n />\n );\n })()}\n </div>\n {formik.values.appLogo && (\n <SettingsImageRemoveButton\n onClick={removeAppLogo}\n />\n )}\n </div>\n </div>\n <div className=\"col-12 md:col-6\">\n <p className=\"solid-settings-subheading\">\n Company Logo\n </p>\n <div>\n <div\n {...getCompanyLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getCompanyLogoInputProps()} />\n {/* {isCompanyLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (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 =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-compony-logo\"\n />\n );\n })()}\n </div>\n {formik.values.companylogo && (\n <SettingsImageRemoveButton\n onClick={removeCompanyLogo}\n />\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) =>\n formik.setFieldValue(\n \"showAuthContent\",\n checked,\n )\n }\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\">\n App Title\n </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\">\n App Subtitle\n </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\">\n Description\n </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\">\n Terms and Conditions Link\n </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\">\n Privacy Policy Link\n </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\">\n Enable Dark Mode\n </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\">\n Public Registration\n </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) =>\n formik.setFieldValue(\n \"allowPublicRegistration\",\n checked,\n )\n }\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\">\n Password Based Authentication\n </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) =>\n formik.setFieldValue(\n \"passwordBasedAuth\",\n checked,\n )\n }\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\">\n Password Less Authentication\n </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) =>\n formik.setFieldValue(\n \"passwordLessAuth\",\n checked,\n )\n }\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\">\n Auto Activate User on Registration{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"activateUserOnRegistration\"\n checked={\n formik.values.activateUserOnRegistration\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"activateUserOnRegistration\",\n checked,\n )\n }\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\">\n Allow Login/ Signup with Google{\" \"}\n </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) =>\n formik.setFieldValue(\n \"iamGoogleOAuthEnabled\",\n checked,\n )\n }\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\">\n Allow Login/ Signup with Microsoft{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamMicrosoftOAuthEnabled\"\n checked={formik.values.iamMicrosoftOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamMicrosoftOAuthEnabled\",\n checked,\n )\n }\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\">\n Allow Login/ Signup with Facebook{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamFacebookOAuthEnabled\"\n checked={formik.values.iamFacebookOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamFacebookOAuthEnabled\",\n checked,\n )\n }\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\">\n Allow Login/ Signup with Apple{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamAppleOAuthEnabled\"\n checked={formik.values.iamAppleOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamAppleOAuthEnabled\",\n checked,\n )\n }\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\">\n Force Password change on first Login{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"forceChangePasswordOnFirstLogin\"\n checked={\n formik.values.forceChangePasswordOnFirstLogin\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"forceChangePasswordOnFirstLogin\",\n checked,\n )\n }\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\">\n Password Less Registration Method\n </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={\n formik.values\n .passwordlessRegistrationValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessRegistrationValidateWhat\",\n value,\n )\n }\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\">\n Password Less Login Method\n </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={\n formik.values.passwordlessLoginValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n {\n value: \"selectable\",\n label: \"Selectable\",\n },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessLoginValidateWhat\",\n value,\n )\n }\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\">\n Authentication Screen Layout\n </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) =>\n formik.setFieldValue(\"authPagesLayout\", value)\n }\n />\n <p className=\"mt-3 text-sm font-bold\">\n Note :{\" \"}\n {\n positionMap[\n formik.values.authPagesLayout as\n | \"left\"\n | \"center\"\n | \"right\"\n ]\n }\n </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\"\n ? \"Background\"\n : \"Banner\"}{\" \"}\n Image\n </p>\n {formik.values.authPagesLayout === \"left\" && (\n <div>\n <div\n {...getAuthScreenLeftBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenLeftBackgroundImageInputProps()}\n />\n {/* {isAuthScreenLeftBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenLeftBackgroundImage as any)\n .src || AuthScreenLeftBackgroundImage;\n\n let src = authScreenLeftBackgroundImagePreview\n ? authScreenLeftBackgroundImagePreview\n : formik.values\n .authScreenLeftBackgroundImage\n ? formik.values\n .authScreenLeftBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenLeftBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenLeftBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"right\" && (\n <div>\n <div\n {...getAuthScreenRightBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenRightBackgroundImageInputProps()}\n />\n {/* {isAuthScreenRightBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenRightBackgroundImage as any)\n .src || AuthScreenRightBackgroundImage;\n\n let src =\n authScreenRightBackgroundImagePreview\n ? authScreenRightBackgroundImagePreview\n : formik.values\n .authScreenRightBackgroundImage\n ? formik.values\n .authScreenRightBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenRightBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenRightBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"center\" && (\n <div>\n <div\n {...getAuthScreenCenterBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenCenterBackgroundImageInputProps()}\n />\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 1440px × 724px | Aspect ratio: 2:1\"\n }\n />\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenCenterBackgroundImage as any)\n .src || AuthScreenCenterBackgroundImage;\n\n let src =\n authScreenCenterBackgroundImagePreview\n ? authScreenCenterBackgroundImagePreview\n : formik.values\n .authScreenCenterBackgroundImage\n ? formik.values\n .authScreenCenterBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n 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 </>\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"]}
|