@iblai/iblai-js 2.30.0 → 2.32.0

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.
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { useRef, useEffect, useMemo, useCallback, useState, createContext, useContext, forwardRef, createElement as createElement$1, useLayoutEffect, useReducer, useImperativeHandle, isValidElement, Children, PureComponent, cloneElement, Component, useDebugValue, Fragment as Fragment$2, useId as useId$2, lazy, Suspense } from 'react';
3
3
  import * as dataLayer from '@iblai/data-layer';
4
- import { useGetCredentialsSchemaQuery, useGetLlmsQuery, useCreateSessionIdMutation, useTimeTrackingMutation, useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useGetUserProfileSummaryQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerCourseOutlineQuery, getSections, findResumeBlock, flattenOutline, normalizeLearnerCompletionError, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useUpdateGlobalMemoryMutation, useUpdateMentorMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useGetAllMentorMemoriesQuery, useDeleteGlobalMemoryMutation, useDeleteMentorMemoryMutation, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation, useListArtifactsQuery, useLazyGetSessionIdQuery, useGetAiSearchMentorsQuery, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, useGetAccessibleUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useGetTenantMetadataQuery, useUpdateTenantMetadataMutation, useLazyGetTenantMetadataQuery, useDeleteApiKeyMutation, useGetApiKeyQuery, useGetApiKeyFieldPermissionsQuery, useUpdateApiKeyMutation, useGetApiKeysQuery, unwrapApiTokenList, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetMaskedLLMCredentialsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useGetAgentSpendCapQuery, useGetTenantSpendCapQuery, useListAgentUserSpendCapsQuery, useUpsertAgentSpendCapMutation, useDeleteAgentSpendCapMutation, useUpsertTenantSpendCapMutation, useDeleteTenantSpendCapMutation, useUpsertUserSpendCapMutation, useDeleteUserSpendCapMutation, useGetLlmUsageMetricsQuery, useListAgentSpendCapsQuery, useGetCreditTransactionsQuery, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, VERCEL_SPA, useGetCustomDomainsQuery, useGetHostingProjectsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useCreateHostingProjectDomainMutation, useUpdateHostingDomainMutation, useDeleteHostingDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useCreateMentorMemoryMutation, splitHostPortInput, validateHostPort, useCreateVirtualMachineNetworkPolicyMutation, useUpdateVirtualMachineNetworkPolicyMutation, VIRTUAL_MACHINE_MAX_POLICY_HOSTS, getVirtualMachineApiError, useDeleteVirtualMachineNetworkPolicyMutation, extractBoundMentorIds, useCreateVirtualMachineSecretMutation, useUpdateVirtualMachineSecretMutation, VIRTUAL_MACHINE_SECRET_VALUE_MIN_LENGTH, VIRTUAL_MACHINE_ENV_VAR_PATTERN, useDeleteVirtualMachineSecretMutation, useGetIntegrationCredentialsQuery, useListVirtualMachineNetworkPoliciesQuery, useListVirtualMachineSecretsQuery, getVirtualMachineErrorStatus, useGetNotificationsCountQuery, useLazyGetNotificationsQuery, useMarkAllAsReadMutation, useCreateNotificationPreviewMutation, useSendNotificationMutation, USER_PROGRESS_DATA_POINTS, useResetTemplateMutation, useSendTestTemplateEmailMutation, useUpdateTemplateMutation, useGetTemplateDetailsQuery, USER_PROGRESS_SUMMARY_TYPE, useGetTemplatesQuery, useLazyGetTemplateDetailsQuery, useToggleTemplateMutation, useGetLlmUsageTracesQuery, useGetLlmUsageObservationsQuery, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetTranscriptsConversationHeadlineQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetAverageRatingQuery, useGetModelCostsQuery, useGetPerUserCostsQuery, useGetTenantCostQuery, useGetAgentCostQuery, useGetTranscriptsMessagesDetailsQuery, useGetTranscriptsMessagesQuery, useGetReportDetailQuery, useGetMentorPublicSettingsQuery, useGetReportsQuery, useCreateReportMutation, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetRevenueQuery, useListSubscribersQuery, useGetAuditLogsQuery, useGetPlatformAuditLogsQuery, PLATFORM_AUDIT_EVENT_TYPES, PLATFORM_AUDIT_ACTION_CODES, useGetMentorMemoriesQuery, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetUserEnrolledCoursesQuery, useLazyGetUserAssignedCoursesQuery, useLazyGetUserCredentialsQuery, useLazyGetOverTimeActivityQuery, useLazyGetCatalogSearchQuery, useCreateOrUpdateUserReportedSkillMutation, useCreateOrUpdateUserDesiredSkillMutation, useLazyGetPathwayListQuery, useLazyGetUserAssignedPathwaysQuery, useLazyGetUserEnrolledPathwaysQuery, useLazyGetPathwayCompletionQuery, useLazyGetProgramListQuery, useLazyGetProgramCompletionQuery, useLazyGetUserEnrolledProgramsQuery, useLazyGetAssignedProgramsQuery, useLazyGetUserSkillsPointsQuery, useLazyGetUserReportedSkillsQuery, useLazyGetUserDesiredSkillsQuery, useLazyGetUserCatalogPathwaysQuery, useLazyGetPerLearnerInfoQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useLazyGetPersonnalizedSearchQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetMentorSettingsQuery, useEditMentorJsonMutation, isVirtualMachineEgressNetworked, findUncoveredSecretHosts, VIRTUAL_MACHINE_MAX_SECRETS_PER_MENTOR, VIRTUAL_MACHINE_DEFAULT_BILLING, VIRTUAL_MACHINE_EGRESS_PROFILES, useEditMentorMutation, useGetClawMentorConfigQuery, useGetClawInstancesQuery, useGetAgentConfigQuery, useUpdateClawMentorConfigMutation, useCreateClawMentorConfigMutation, useDeleteClawMentorConfigMutation, usePushClawConfigMutation, useCreateClawInstanceMutation, useDeleteClawInstanceMutation, useUpdateAgentConfigMutation, useHealthCheckClawInstanceMutation, useTestConnectivityClawInstanceMutation, useUpdateClawInstanceMutation, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useCreateCheckoutMutation, useGetUserProjectsQuery, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorCategoriesQuery, useCreateMentorMutation, useUpdateUserPlatformMetadataMutation, useGetApplicationStatusQuery, useListOwnApplicationsQuery, useGetApplicationFormQuery, useWithdrawApplicationMutation, useRenewApplicationMutation, useCreateApplicationDraftMutation, useSubmitApplicationMutation, useUpdateApplicationMutation, useUploadApplicationAttachmentMutation, useDeleteApplicationAttachmentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useGetPromptCategoriesQuery, useCreatePromptMutation, useDeletePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation } from '@iblai/data-layer';
4
+ import { useGetCredentialsSchemaQuery, useGetLlmsQuery, useGetMentorPublicSettingsQuery, useCreateSessionIdMutation, useTimeTrackingMutation, useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useGetUserProfileSummaryQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerCourseOutlineQuery, getSections, findResumeBlock, flattenOutline, normalizeLearnerCompletionError, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useUpdateGlobalMemoryMutation, useUpdateMentorMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useGetAllMentorMemoriesQuery, useDeleteGlobalMemoryMutation, useDeleteMentorMemoryMutation, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation, useListArtifactsQuery, useLazyGetSessionIdQuery, useGetAiSearchMentorsQuery, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, useGetAccessibleUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useGetTenantMetadataQuery, useUpdateTenantMetadataMutation, useLazyGetTenantMetadataQuery, useDeleteApiKeyMutation, useGetApiKeyQuery, useGetApiKeyFieldPermissionsQuery, useUpdateApiKeyMutation, useGetApiKeysQuery, unwrapApiTokenList, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetMaskedLLMCredentialsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useGetAgentSpendCapQuery, useGetTenantSpendCapQuery, useListAgentUserSpendCapsQuery, useUpsertAgentSpendCapMutation, useDeleteAgentSpendCapMutation, useUpsertTenantSpendCapMutation, useDeleteTenantSpendCapMutation, useUpsertUserSpendCapMutation, useDeleteUserSpendCapMutation, useGetLlmUsageMetricsQuery, useListAgentSpendCapsQuery, useGetCreditTransactionsQuery, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, VERCEL_SPA, useGetCustomDomainsQuery, useGetHostingProjectsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useCreateHostingProjectDomainMutation, useUpdateHostingDomainMutation, useDeleteHostingDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useCreateMentorMemoryMutation, splitHostPortInput, validateHostPort, useCreateVirtualMachineNetworkPolicyMutation, useUpdateVirtualMachineNetworkPolicyMutation, VIRTUAL_MACHINE_MAX_POLICY_HOSTS, getVirtualMachineApiError, useDeleteVirtualMachineNetworkPolicyMutation, extractBoundMentorIds, useCreateVirtualMachineSecretMutation, useUpdateVirtualMachineSecretMutation, VIRTUAL_MACHINE_SECRET_VALUE_MIN_LENGTH, VIRTUAL_MACHINE_ENV_VAR_PATTERN, useDeleteVirtualMachineSecretMutation, useGetIntegrationCredentialsQuery, useListVirtualMachineNetworkPoliciesQuery, useListVirtualMachineSecretsQuery, getVirtualMachineErrorStatus, useGetNotificationsCountQuery, useLazyGetNotificationsQuery, useMarkAllAsReadMutation, useCreateNotificationPreviewMutation, useSendNotificationMutation, USER_PROGRESS_DATA_POINTS, useResetTemplateMutation, useSendTestTemplateEmailMutation, useUpdateTemplateMutation, useGetTemplateDetailsQuery, USER_PROGRESS_SUMMARY_TYPE, useGetTemplatesQuery, useLazyGetTemplateDetailsQuery, useToggleTemplateMutation, useGetLlmUsageTracesQuery, useGetLlmUsageObservationsQuery, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetTranscriptsConversationHeadlineQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetAverageRatingQuery, useGetModelCostsQuery, useGetPerUserCostsQuery, useGetTenantCostQuery, useGetAgentCostQuery, useGetTranscriptsMessagesDetailsQuery, useGetTranscriptsMessagesQuery, useGetReportDetailQuery, useGetReportsQuery, useCreateReportMutation, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetRevenueQuery, useListSubscribersQuery, useGetAuditLogsQuery, useGetPlatformAuditLogsQuery, PLATFORM_AUDIT_EVENT_TYPES, PLATFORM_AUDIT_ACTION_CODES, useGetMentorMemoriesQuery, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetUserEnrolledCoursesQuery, useLazyGetUserAssignedCoursesQuery, useLazyGetUserCredentialsQuery, useLazyGetOverTimeActivityQuery, useLazyGetCatalogSearchQuery, useCreateOrUpdateUserReportedSkillMutation, useCreateOrUpdateUserDesiredSkillMutation, useLazyGetPathwayListQuery, useLazyGetUserAssignedPathwaysQuery, useLazyGetUserEnrolledPathwaysQuery, useLazyGetPathwayCompletionQuery, useLazyGetProgramListQuery, useLazyGetProgramCompletionQuery, useLazyGetUserEnrolledProgramsQuery, useLazyGetAssignedProgramsQuery, useLazyGetUserSkillsPointsQuery, useLazyGetUserReportedSkillsQuery, useLazyGetUserDesiredSkillsQuery, useLazyGetUserCatalogPathwaysQuery, useLazyGetPerLearnerInfoQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useLazyGetPersonnalizedSearchQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetMentorSettingsQuery, useEditMentorJsonMutation, isVirtualMachineEgressNetworked, findUncoveredSecretHosts, VIRTUAL_MACHINE_MAX_SECRETS_PER_MENTOR, VIRTUAL_MACHINE_DEFAULT_BILLING, VIRTUAL_MACHINE_EGRESS_PROFILES, useEditMentorMutation, useGetClawMentorConfigQuery, useGetClawInstancesQuery, useGetAgentConfigQuery, useUpdateClawMentorConfigMutation, useCreateClawMentorConfigMutation, useDeleteClawMentorConfigMutation, usePushClawConfigMutation, useCreateClawInstanceMutation, useDeleteClawInstanceMutation, useUpdateAgentConfigMutation, useHealthCheckClawInstanceMutation, useTestConnectivityClawInstanceMutation, useUpdateClawInstanceMutation, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useCreateCheckoutMutation, useGetUserProjectsQuery, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorCategoriesQuery, useCreateMentorMutation, useUpdateUserPlatformMetadataMutation, useGetApplicationStatusQuery, useListOwnApplicationsQuery, useGetApplicationFormQuery, useWithdrawApplicationMutation, useRenewApplicationMutation, useCreateApplicationDraftMutation, useSubmitApplicationMutation, useUpdateApplicationMutation, useUploadApplicationAttachmentMutation, useDeleteApplicationAttachmentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useGetPromptCategoriesQuery, useCreatePromptMutation, useDeletePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation } from '@iblai/data-layer';
5
5
  import { useDispatch, useSelector } from 'react-redux';
6
6
  import { selectSessionId, selectActiveChatMessages, useCachedSessionId, chatActions, LOCAL_STORAGE_KEYS, TimeTracker, selectRbacPermissions, useCurrentTenant, canViewOtherUsersChatHistory, isPureWatcher, getInitials, useTenantMetadata, useUsername, selectStreaming, isLoggedIn, TOOL_NAME_MAP, WRITE_TODOS_TOOL, WithPermissions, canWriteField, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, getTimeAgo, REQUIRED_ACTIONS_FOR_GROUPS, getVisibleAnalyticsTabs, canViewMonetizationAnalytics, getUserName as getUserName$2, formatRelativeTime as formatRelativeTime$2, ANONYMOUS_USERNAME, combineCSVData, WATCHER_HIDDEN_REPORTS, canViewPlatformAuditLogs, redirectToAuthSpaJoinTenant, redirectToAuthSpa, getAuthSpaJoinUrl, useOS, selectNumberOfActiveChatMessages, TOOLS, hasRemoteAiConfig, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, chatInputSliceActions, removeFile, WithFormPermissions, MENTOR_VISIBILITY } from '@iblai/web-utils';
7
7
  import { toast } from 'sonner';
@@ -341,6 +341,36 @@ const DEFAULT_EFFECTIVE = {
341
341
  source: 'default',
342
342
  is_locked: false,
343
343
  };
344
+ const firstString = (value) => {
345
+ if (typeof value === 'string' && value.trim())
346
+ return value;
347
+ if (Array.isArray(value))
348
+ return value.find((v) => typeof v === 'string' && v.trim());
349
+ return undefined;
350
+ };
351
+ /**
352
+ * Reads the status and the backend's reason out of an RTK Query rejection.
353
+ * DRF sends a refusal as `{ detail }` (403) and a validation error keyed by
354
+ * field (`{ disable_chathistory: ["…one-way…"] }`, 400).
355
+ */
356
+ function toChatPrivacyActionError(action, error) {
357
+ var _a, _b, _c;
358
+ if (!error || typeof error !== 'object')
359
+ return { action };
360
+ const { status, data } = error;
361
+ const result = { action };
362
+ if (typeof status === 'number')
363
+ result.status = status;
364
+ if (typeof data === 'string' && data.trim()) {
365
+ result.message = data;
366
+ }
367
+ else if (data && typeof data === 'object') {
368
+ const body = data;
369
+ result.message =
370
+ (_c = (_b = (_a = firstString(body.detail)) !== null && _a !== void 0 ? _a : firstString(body.error)) !== null && _b !== void 0 ? _b : firstString(body.message)) !== null && _c !== void 0 ? _c : Object.values(body).map(firstString).find(Boolean);
371
+ }
372
+ return result;
373
+ }
344
374
  /**
345
375
  * Convenience wrapper around the chat-privacy data-layer slice. Centralises
346
376
  * the four moving parts the toggle component needs:
@@ -358,7 +388,7 @@ const DEFAULT_EFFECTIVE = {
358
388
  * is read from the shared chat slice so the hook can target whichever
359
389
  * session the rest of the SDK is currently driving.
360
390
  */
361
- function useChatPrivacy({ org, userId, mentor }) {
391
+ function useChatPrivacy({ org, userId, mentor, onActionError, }) {
362
392
  const dispatch = useDispatch();
363
393
  const sessionId = useSelector(selectSessionId);
364
394
  // Count USER messages only — assistant proactive prompts ("Hi, how can
@@ -388,21 +418,42 @@ function useChatPrivacy({ org, userId, mentor }) {
388
418
  mentor,
389
419
  session: sessionId,
390
420
  }, { skip: skipIdentity });
421
+ // The lock has to come from the mentor record: the effective read only
422
+ // reports `is_locked` when the mentor actually clamped this user's mode
423
+ // (see `ChatPrivacyEffective`). Same args as the chat page's own public-
424
+ // settings query, so RTK Query serves it from that cache entry.
425
+ const skipPublicSettings = skipIdentity || !mentor;
426
+ const { data: publicSettings, isUninitialized: publicSettingsIsUninitialized, isLoading: publicSettingsIsLoading, } = useGetMentorPublicSettingsQuery({
427
+ mentor: mentor !== null && mentor !== void 0 ? mentor : '',
428
+ org: org !== null && org !== void 0 ? org : '',
429
+ // @ts-expect-error userId is missing from the published generated args type; the URL needs it
430
+ userId: userId !== null && userId !== void 0 ? userId : '',
431
+ }, { skip: skipPublicSettings });
432
+ const mentorDisablesPrivacyMode = (publicSettings === null || publicSettings === void 0 ? void 0 : publicSettings.disable_privacy_mode) === true;
433
+ const lockedOutOfPrivate = !!(effective === null || effective === void 0 ? void 0 : effective.is_locked) && effective.mode !== 'disabled';
434
+ const privacyModeDisabled = mentorDisablesPrivacyMode || lockedOutOfPrivate;
391
435
  // `isEffectiveReady` flips true the first time RTK Query lands data
392
- // for the effective query. While it's false the toggle component
393
- // should treat its derived `messageCount` / `effective.mode` as not
394
- // yet trustworthy (initial mount race vs the chat-history hydration
395
- // in useAdvancedChat — see the consumer's `handleClick` guard).
396
- const isEffectiveReady = !effectiveIsUninitialized && !effectiveIsLoading;
436
+ // for the effective query and for the mentor's public settings. While
437
+ // it's false the toggle component should treat its derived
438
+ // `messageCount` / `effective.mode` / `privacyModeDisabled` as not yet
439
+ // trustworthy (initial mount race vs the chat-history hydration in
440
+ // useAdvancedChat — see the consumer's `handleClick` guard).
441
+ const isEffectiveReady = !effectiveIsUninitialized &&
442
+ !effectiveIsLoading &&
443
+ (skipPublicSettings || (!publicSettingsIsUninitialized && !publicSettingsIsLoading));
397
444
  const [createSession, { isLoading: isStartingPrivateChat }] = useCreateSessionIdMutation();
398
445
  const [updateSessionDisable, { isLoading: isDisablingChatHistory }] = useUpdateSessionDisableChathistoryMutation();
446
+ const reportActionError = (action, error) => {
447
+ console.error(`${action} failed`, error);
448
+ onActionError === null || onActionError === void 0 ? void 0 : onActionError(toChatPrivacyActionError(action, error));
449
+ };
399
450
  // Internal: create a fresh session with the given `disable_chathistory`
400
451
  // value and propagate the new id into the chat slice + localStorage
401
452
  // cache the rest of the SDK reads from. Used by both startPrivateChat
402
453
  // (disable=true) and startNormalChat (disable=false — the exit
403
454
  // affordance from the empty-private state, since the backend rejects
404
455
  // flipping an existing session from true → false).
405
- const createSessionWithFlag = async (disableChathistory, label) => {
456
+ const createSessionWithFlag = async (disableChathistory, action) => {
406
457
  var _a, _b;
407
458
  if (!org || !userId || !mentor)
408
459
  return undefined;
@@ -437,10 +488,13 @@ function useChatPrivacy({ org, userId, mentor }) {
437
488
  dispatch(chatPrivacyApiSlice.util.invalidateTags(['ChatPrivacyEffective']));
438
489
  }
439
490
  }
491
+ else {
492
+ onActionError === null || onActionError === void 0 ? void 0 : onActionError({ action });
493
+ }
440
494
  return newSessionId;
441
495
  }
442
496
  catch (error) {
443
- console.error(`${label} failed`, error);
497
+ reportActionError(action, error);
444
498
  return undefined;
445
499
  }
446
500
  };
@@ -460,12 +514,13 @@ function useChatPrivacy({ org, userId, mentor }) {
460
514
  return true;
461
515
  }
462
516
  catch (error) {
463
- console.error('disableChatHistory failed', error);
517
+ reportActionError('disableChatHistory', error);
464
518
  return false;
465
519
  }
466
520
  };
467
521
  return {
468
522
  featureEnabled,
523
+ privacyModeDisabled,
469
524
  effective: effective !== null && effective !== void 0 ? effective : DEFAULT_EFFECTIVE,
470
525
  isEffectiveReady,
471
526
  startNormalChat,
@@ -3293,33 +3348,33 @@ var chatInputFormVoiceChatButton$3 = {
3293
3348
  voiceRecord: "Voice Record"
3294
3349
  };
3295
3350
  var chatPrivacyChatPrivacyToggle$3 = {
3296
- toastPrivateModeOff: "Private Mode is off.",
3297
- toastCouldNotTurnOff: "Could not turn Private Mode off. Please try again.",
3298
- toastPrivateModeOnNoHistory: "Private Mode is on. This chat won't be saved to history or used for memory.",
3299
- toastCouldNotEnable: "Could not enable Private Mode. Please try again.",
3300
- toastPrivateModeOnRemovedHistory: "Private Mode is on. This conversation has been removed from your history.",
3301
- toastFailedToEnable: "Failed to enable Private Mode. Please try again.",
3351
+ toastPrivateModeOff: "Incognito is off.",
3352
+ toastCouldNotTurnOff: "Could not turn Incognito off. Please try again.",
3353
+ toastPrivateModeOnNoHistory: "Incognito is on. This chat won't be saved to history or used for memory.",
3354
+ toastCouldNotEnable: "Could not enable Incognito. Please try again.",
3355
+ toastPrivateModeOnRemovedHistory: "Incognito is on. This conversation has been removed from your history.",
3356
+ toastFailedToEnable: "Failed to enable Incognito. Please try again.",
3302
3357
  working: "Working…",
3303
- ariaLockedByAgent: "Private Mode is locked on by this agent. No chat history is recorded.",
3304
- ariaPrivateOnForConversation: "Private Mode is on for this conversation. This chat isn't saved or used for memory.",
3305
- ariaTurnOffPrivateMode: "Turn off Private Mode for this chat.",
3306
- ariaTurnOnMidConversation: "Turn on Private Mode for this conversation. This cannot be undone.",
3307
- ariaTurnOnEmpty: "Turn on Private Mode. This chat won't be saved to history or used for memory.",
3308
- tooltipLockedByMentor: "This agent always runs in Private Mode — no chat history or memory is kept for conversations with it.",
3309
- tooltipLockedByTenant: "Your organization has Private Mode enabled by default — no chat history or memory is kept.",
3310
- tooltipLockedGeneric: "Private Mode is locked on — no chat history or memory is kept.",
3311
- tooltipPrivateOnPostSend: "Private Mode is on for this conversation — this chat isn't saved or used for memory. Start a new chat to leave Private Mode.",
3312
- tooltipTurnOff: "Turn off Private Mode — your next chat will be saved to history again.",
3313
- tooltipTurnOnMidConversation: "Turn on Private Mode for the rest of this conversation. Once on, you can't turn it off — start a new chat to resume saving history.",
3314
- tooltipTurnOnEmpty: "Turn on Private Mode — this chat won't be saved to history or used for memory.",
3315
- privateMode: "Private Mode",
3316
- dialogTitle: "Enable Private Mode for this chat?",
3358
+ ariaLockedByAgent: "Incognito is locked on by this agent. No chat history is recorded.",
3359
+ ariaPrivateOnForConversation: "Incognito is on for this conversation. This chat isn't saved or used for memory.",
3360
+ ariaTurnOffPrivateMode: "Turn off Incognito for this chat.",
3361
+ ariaTurnOnMidConversation: "Turn on Incognito for this conversation. This cannot be undone.",
3362
+ ariaTurnOnEmpty: "Turn on Incognito. This chat won't be saved to history or used for memory.",
3363
+ tooltipLockedByMentor: "This agent always runs in Incognito — no chat history or memory is kept for conversations with it.",
3364
+ tooltipLockedByTenant: "Your organization has Incognito enabled by default — no chat history or memory is kept.",
3365
+ tooltipLockedGeneric: "Incognito is locked on — no chat history or memory is kept.",
3366
+ tooltipPrivateOnPostSend: "Incognito is on for this conversation — this chat isn't saved or used for memory. Start a new chat to leave Incognito.",
3367
+ tooltipTurnOff: "Turn off Incognito — your next chat will be saved to history again.",
3368
+ tooltipTurnOnMidConversation: "Turn on Incognito for the rest of this conversation. Once on, you can't turn it off — start a new chat to resume saving history.",
3369
+ tooltipTurnOnEmpty: "Turn on Incognito — this chat won't be saved to history or used for memory.",
3370
+ privateMode: "Incognito",
3371
+ dialogTitle: "Enable Incognito for this chat?",
3317
3372
  dialogDescription: "This conversation will be removed from your history and the assistant will stop using earlier turns from it.",
3318
- dialogDescriptionBold: "Once on, you can't turn Private Mode off for this chat",
3373
+ dialogDescriptionBold: "Once on, you can't turn Incognito off for this chat",
3319
3374
  dialogDescriptionSuffix: "start a new conversation if you want history saved again.",
3320
3375
  cancel: "Cancel",
3321
3376
  enabling: "Enabling…",
3322
- enablePrivateMode: "Enable Private Mode"
3377
+ enablePrivateMode: "Enable Incognito"
3323
3378
  };
3324
3379
  var chatStopStreamingButton$3 = {
3325
3380
  stopStreaming: "Stop streaming"
@@ -5204,7 +5259,7 @@ var pipChat$3 = {
5204
5259
  var privacyTabLabels$3 = {
5205
5260
  header: {
5206
5261
  title: "Privacy",
5207
- description: "Detect and filter personally identifiable information from chat messages."
5262
+ description: "Control what personal information the agent sees and how Incognito works for its conversations."
5208
5263
  },
5209
5264
  capability: {
5210
5265
  title: "PII filtering",
@@ -5261,6 +5316,29 @@ var privacyTabLabels$3 = {
5261
5316
  tooltip: "Scrub PII from AI-generated responses. May add slight latency to streamed responses."
5262
5317
  }
5263
5318
  },
5319
+ subTabs: {
5320
+ piiFiltering: "PII Filtering",
5321
+ incognito: "Incognito"
5322
+ },
5323
+ incognito: {
5324
+ description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
5325
+ groupAriaLabel: "Incognito policy",
5326
+ options: {
5327
+ users: {
5328
+ title: "Users Decide",
5329
+ description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
5330
+ },
5331
+ always: {
5332
+ title: "Always Incognito",
5333
+ description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
5334
+ },
5335
+ never: {
5336
+ title: "Never Incognito",
5337
+ description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
5338
+ }
5339
+ }
5340
+ },
5341
+ noAccess: "You don't have permission to view this agent's privacy settings.",
5264
5342
  toasts: {
5265
5343
  updateSuccess: "Privacy settings updated",
5266
5344
  updateError: "Failed to update privacy settings"
@@ -5422,16 +5500,16 @@ var profileCatalogInviteModal$3 = {
5422
5500
  sendInvitationsFailed: "Failed to send invitations. Please try again."
5423
5501
  };
5424
5502
  var profileChatPrivacyTab$3 = {
5425
- sectionHeading: "Default Private Mode",
5426
- sectionDescription: "Choose how conversations with AI agents are recorded by default. You can switch any individual chat into Private Mode from the chat header — and an agent or your organization can override this for specific conversations.",
5503
+ sectionHeading: "Default Incognito Setting",
5504
+ sectionDescription: "Choose how conversations with AI agents are recorded by default. You can switch any individual chat into Incognito from the chat header — and an agent or your organization can override this for specific conversations.",
5427
5505
  modeNormalLabel: "Normal",
5428
5506
  modeNormalDescription: "Conversations are saved to your history and linked to your account. Agents use prior turns in the same conversation for context.",
5429
5507
  modeAnonymizedLabel: "Anonymized",
5430
5508
  modeAnonymizedDescription: "Conversations are saved for AI context but stripped of identifying account info. Agents still use prior turns in the same conversation.",
5431
- modeDisabledLabel: "Disabled",
5509
+ modeDisabledLabel: "Incognito",
5432
5510
  modeDisabledDescription: "Nothing is recorded. Every message is a single-turn Q&A — agents can't reference earlier messages, even within the same conversation.",
5433
- toastUpdated: "Default Private Mode updated",
5434
- toastFailed: "Failed to update default Private Mode"
5511
+ toastUpdated: "Default Incognito Setting updated",
5512
+ toastFailed: "Failed to update default Incognito setting"
5435
5513
  };
5436
5514
  var profileCsvEditor$3 = {
5437
5515
  title: "Edit CSV Data",
@@ -5461,7 +5539,7 @@ var profileIndex$3 = {
5461
5539
  descResume: "Upload and preview your most recent resume.",
5462
5540
  descPurchases: "View and manage your subscriptions and purchases.",
5463
5541
  descMemory: "Manage what the AI remembers about you.",
5464
- descPrivacy: "Set your default Private Mode and review what each option does to your conversations with AI agents.",
5542
+ descPrivacy: "Set your default Incognito setting and review what each option does to your conversations with AI agents.",
5465
5543
  descChatHistory: "Review and export your conversations with AI agents.",
5466
5544
  descSecurity: "Update your security settings and password.",
5467
5545
  descAdvanced: "Manage your advanced settings.",
@@ -5509,7 +5587,7 @@ var profileIndex$3 = {
5509
5587
  descExperiencePreview: "Professional experience.",
5510
5588
  descPurchasesPreview: "Subscriptions and purchases.",
5511
5589
  descMemoryPreview: "What the AI remembers.",
5512
- descPrivacyPreview: "Private Mode and what each option does for conversations with AI agents.",
5590
+ descPrivacyPreview: "Incognito and what each option does for conversations with AI agents.",
5513
5591
  descChatHistoryPreview: "Conversations with AI agents.",
5514
5592
  ariaAddEducation: "Add education",
5515
5593
  ariaAddExperience: "Add experience",
@@ -6072,7 +6150,7 @@ var settingsTabLabels$3 = {
6072
6150
  tooltip: "Feature this agent to highlight it in listings."
6073
6151
  },
6074
6152
  showExploreMentors: {
6075
- label: "Show additional agents",
6153
+ label: "Show Additional Agents",
6076
6154
  tooltip: "Shows the additional agents section on this agent's welcome screen."
6077
6155
  },
6078
6156
  showAttachment: {
@@ -6088,13 +6166,13 @@ var settingsTabLabels$3 = {
6088
6166
  tooltip: "Lets people start a live voice call with the agent. Each surface has its own switch: In-app chat covers conversations hosted in the app, Embed widget covers the widget on your own site."
6089
6167
  },
6090
6168
  embedShowAttachment: {
6091
- label: "Show Attachment (embed widget)"
6169
+ label: "Show Attachment (Embed Widget)"
6092
6170
  },
6093
6171
  embedShowVoiceRecord: {
6094
- label: "Show Voice Record (embed widget)"
6172
+ label: "Show Voice Record (Embed Widget)"
6095
6173
  },
6096
6174
  embedShowVoiceCall: {
6097
- label: "Show Voice Call (embed widget)"
6175
+ label: "Show Voice Call (Embed Widget)"
6098
6176
  },
6099
6177
  allowCopies: {
6100
6178
  label: "Allow Copies",
@@ -6111,19 +6189,15 @@ var settingsTabLabels$3 = {
6111
6189
  removeAriaLabel: "Remove image"
6112
6190
  },
6113
6191
  enhancedDocRetrieval: {
6114
- label: "Enhanced document retrieval",
6192
+ label: "Enhanced Document Retrieval",
6115
6193
  tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
6116
6194
  },
6117
6195
  promptCaching: {
6118
- label: "Prompt caching",
6196
+ label: "Prompt Caching",
6119
6197
  tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
6120
6198
  },
6121
- privateMode: {
6122
- label: "Enable private mode",
6123
- tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
6124
- },
6125
6199
  smartDocRetrieval: {
6126
- label: "Smart document retrieval",
6200
+ label: "Smart Document Retrieval",
6127
6201
  tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
6128
6202
  }
6129
6203
  },
@@ -6171,14 +6245,14 @@ var settingsTabLabels$3 = {
6171
6245
  capabilities: "Capabilities"
6172
6246
  },
6173
6247
  sections: {
6174
- chatExperience: "Chat experience",
6248
+ chatExperience: "Chat Experience",
6175
6249
  advanced: "Advanced",
6176
6250
  perSurface: "Surface Capabilities",
6177
6251
  globalSettings: "Global Capabilities"
6178
6252
  },
6179
6253
  surfaces: {
6180
- inAppChat: "In-app chat",
6181
- embedWidget: "Embed widget"
6254
+ inAppChat: "In-App Chat",
6255
+ embedWidget: "Embed Widget"
6182
6256
  },
6183
6257
  notes: {
6184
6258
  perSurface: "Set independently for in-app chat and the embed widget.",
@@ -6818,6 +6892,7 @@ var tabsPoliciestab$3 = {
6818
6892
  browseResourcesLabel: "Browse resources"
6819
6893
  };
6820
6894
  var tabsPrivacyTab$3 = {
6895
+ subTabsAriaLabel: "Privacy sub-categories",
6821
6896
  moreInfo: "More info",
6822
6897
  outputFilterAriaLabelEnabled: "Output filter enabled",
6823
6898
  outputFilterAriaLabelDisabled: "Output filter disabled"
@@ -6906,7 +6981,6 @@ var tabsSettingsTab$3 = {
6906
6981
  settingsSubCategoriesAriaLabel: "Settings sub-categories",
6907
6982
  enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
6908
6983
  promptCachingTooltipAriaLabel: "More info about prompt caching",
6909
- privateModeTooltipAriaLabel: "More info about enable private mode",
6910
6984
  smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
6911
6985
  toggleAriaLabel: "{label} {state}"
6912
6986
  };
@@ -8888,6 +8962,54 @@ var virtualMachineNetworkSection$3 = {
8888
8962
  manageTitle: "Virtual Machine Settings",
8889
8963
  manageDescription: "Network policies and VM secrets are shared by every agent in your organization."
8890
8964
  };
8965
+ var accessibility$3 = {
8966
+ toolbar: {
8967
+ accessibilityMenu: "Accessibility Menu",
8968
+ contrastPlus: "Contrast +",
8969
+ highlightLinks: "Highlight Links",
8970
+ biggerText: "Bigger Text",
8971
+ textSpacing: "Text Spacing",
8972
+ pauseAnimations: "Pause Animations",
8973
+ hideImages: "Hide Images",
8974
+ dyslexiaFriendly: "Dyslexia Friendly",
8975
+ cursor: "Cursor",
8976
+ tooltips: "Tooltips",
8977
+ lineHeight: "Line Height",
8978
+ textAlign: "Text Align",
8979
+ saturation: "Saturation",
8980
+ resetAllAccessibilitySettings: "Reset All Accessibility Settings",
8981
+ contrastInvertColors: "Invert Colors",
8982
+ contrastDark: "Dark Contrast",
8983
+ contrastLight: "Light Contrast",
8984
+ textSizeNormal: "Normal Text",
8985
+ textSizeLarge: "Large Text",
8986
+ textSizeLarger: "Larger Text",
8987
+ spacingLight: "Light Spacing",
8988
+ spacingModerate: "Moderate Spacing",
8989
+ spacingHeavy: "Heavy Spacing",
8990
+ dyslexiaFont: "Dyslexia Font",
8991
+ legibleFont: "Legible Font",
8992
+ alignLeft: "Align Left",
8993
+ alignCenter: "Align Center",
8994
+ alignRight: "Align Right",
8995
+ justify: "Justify",
8996
+ saturationNormal: "Normal Saturation",
8997
+ saturationHigh: "High Saturation",
8998
+ saturationLow: "Low Saturation",
8999
+ resetButtonPosition: "Reset Button Position",
9000
+ moveButtonToCorner: "Move button to corner",
9001
+ moveButtonTopLeft: "Move button to top left corner",
9002
+ moveButtonTopRight: "Move button to top right corner",
9003
+ moveButtonBottomLeft: "Move button to bottom left corner",
9004
+ moveButtonBottomRight: "Move button to bottom right corner"
9005
+ },
9006
+ button: {
9007
+ openAccessibilityMenu: "Open Accessibility Menu",
9008
+ accessibilityIconAlt: "Accessibility",
9009
+ moveHint: "Use the up and down arrow keys to move this button, and the left and right arrow keys to switch sides. Hold Shift to move it faster.",
9010
+ positionAnnouncement: "Accessibility button moved to the {side, select, left {left} other {right}} edge, {bottom} pixels from the bottom."
9011
+ }
9012
+ };
8891
9013
  var en = {
8892
9014
  accessTabAddAccess: accessTabAddAccess$3,
8893
9015
  accessTabLabels: accessTabLabels$3,
@@ -9183,7 +9305,8 @@ var en = {
9183
9305
  virtualMachineAdminTab: virtualMachineAdminTab$3,
9184
9306
  virtualMachineNetworkPolicies: virtualMachineNetworkPolicies$3,
9185
9307
  virtualMachineSecrets: virtualMachineSecrets$3,
9186
- virtualMachineNetworkSection: virtualMachineNetworkSection$3
9308
+ virtualMachineNetworkSection: virtualMachineNetworkSection$3,
9309
+ accessibility: accessibility$3
9187
9310
  };
9188
9311
 
9189
9312
  var accessTabAddAccess$2 = {
@@ -11115,33 +11238,33 @@ var chatInputFormVoiceChatButton$2 = {
11115
11238
  voiceRecord: "Enregistrement vocal"
11116
11239
  };
11117
11240
  var chatPrivacyChatPrivacyToggle$2 = {
11118
- toastPrivateModeOff: "Le mode privé est désactivé.",
11119
- toastCouldNotTurnOff: "Impossible de désactiver le mode privé. Veuillez réessayer.",
11120
- toastPrivateModeOnNoHistory: "Le mode privé est activé. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11121
- toastCouldNotEnable: "Impossible d'activer le mode privé. Veuillez réessayer.",
11122
- toastPrivateModeOnRemovedHistory: "Le mode privé est activé. Cette conversation a été supprimée de votre historique.",
11123
- toastFailedToEnable: "Échec de l'activation du mode privé. Veuillez réessayer.",
11241
+ toastPrivateModeOff: "Le mode incognito est désactivé.",
11242
+ toastCouldNotTurnOff: "Impossible de désactiver le mode incognito. Veuillez réessayer.",
11243
+ toastPrivateModeOnNoHistory: "Le mode incognito est activé. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11244
+ toastCouldNotEnable: "Impossible d'activer le mode incognito. Veuillez réessayer.",
11245
+ toastPrivateModeOnRemovedHistory: "Le mode incognito est activé. Cette conversation a été supprimée de votre historique.",
11246
+ toastFailedToEnable: "Échec de l'activation du mode incognito. Veuillez réessayer.",
11124
11247
  working: "En cours…",
11125
- ariaLockedByAgent: "Le mode privé est verrouillé par cet agent. Aucun historique de conversation n'est enregistré.",
11126
- ariaPrivateOnForConversation: "Le mode privé est activé pour cette conversation. Cette discussion n'est pas enregistrée ni utilisée pour la mémoire.",
11127
- ariaTurnOffPrivateMode: "Désactiver le mode privé pour cette conversation.",
11128
- ariaTurnOnMidConversation: "Activer le mode privé pour cette conversation. Cette action est irréversible.",
11129
- ariaTurnOnEmpty: "Activer le mode privé. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11130
- tooltipLockedByMentor: "Cet agent fonctionne toujours en mode privé — aucun historique ni mémoire n'est conservé pour les conversations avec lui.",
11131
- tooltipLockedByTenant: "Votre organisation a activé le mode privé par défaut — aucun historique ni mémoire n'est conservé.",
11132
- tooltipLockedGeneric: "Le mode privé est verrouillé — aucun historique ni mémoire n'est conservé.",
11133
- tooltipPrivateOnPostSend: "Le mode privé est activé pour cette conversation — cette discussion n'est pas enregistrée ni utilisée pour la mémoire. Démarrez une nouvelle conversation pour quitter le mode privé.",
11134
- tooltipTurnOff: "Désactiver le mode privé — votre prochaine conversation sera de nouveau enregistrée dans l'historique.",
11135
- tooltipTurnOnMidConversation: "Activer le mode privé pour le reste de cette conversation. Une fois activé, vous ne pouvez pas le désactiver — démarrez une nouvelle conversation pour reprendre l'enregistrement de l'historique.",
11136
- tooltipTurnOnEmpty: "Activer le mode privé — cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11137
- privateMode: "Mode privé",
11138
- dialogTitle: "Activer le mode privé pour cette conversation ?",
11248
+ ariaLockedByAgent: "Le mode incognito est verrouillé par cet agent. Aucun historique de conversation n'est enregistré.",
11249
+ ariaPrivateOnForConversation: "Le mode incognito est activé pour cette conversation. Cette discussion n'est pas enregistrée ni utilisée pour la mémoire.",
11250
+ ariaTurnOffPrivateMode: "Désactiver le mode incognito pour cette conversation.",
11251
+ ariaTurnOnMidConversation: "Activer le mode incognito pour cette conversation. Cette action est irréversible.",
11252
+ ariaTurnOnEmpty: "Activer le mode incognito. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11253
+ tooltipLockedByMentor: "Cet agent fonctionne toujours en mode incognito — aucun historique ni mémoire n'est conservé pour les conversations avec lui.",
11254
+ tooltipLockedByTenant: "Votre organisation a activé le mode incognito par défaut — aucun historique ni mémoire n'est conservé.",
11255
+ tooltipLockedGeneric: "Le mode incognito est verrouillé — aucun historique ni mémoire n'est conservé.",
11256
+ tooltipPrivateOnPostSend: "Le mode incognito est activé pour cette conversation — cette discussion n'est pas enregistrée ni utilisée pour la mémoire. Démarrez une nouvelle conversation pour quitter le mode incognito.",
11257
+ tooltipTurnOff: "Désactiver le mode incognito — votre prochaine conversation sera de nouveau enregistrée dans l'historique.",
11258
+ tooltipTurnOnMidConversation: "Activer le mode incognito pour le reste de cette conversation. Une fois activé, vous ne pouvez pas le désactiver — démarrez une nouvelle conversation pour reprendre l'enregistrement de l'historique.",
11259
+ tooltipTurnOnEmpty: "Activer le mode incognito — cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
11260
+ privateMode: "Mode incognito",
11261
+ dialogTitle: "Activer le mode incognito pour cette conversation ?",
11139
11262
  dialogDescription: "Cette conversation sera supprimée de votre historique et l'assistant cessera d'utiliser les échanges précédents.",
11140
- dialogDescriptionBold: "Une fois activé, vous ne pouvez pas désactiver le mode privé pour cette conversation",
11263
+ dialogDescriptionBold: "Une fois activé, vous ne pouvez pas désactiver le mode incognito pour cette conversation",
11141
11264
  dialogDescriptionSuffix: "démarrez une nouvelle conversation si vous souhaitez que l'historique soit de nouveau enregistré.",
11142
11265
  cancel: "Annuler",
11143
11266
  enabling: "Activation…",
11144
- enablePrivateMode: "Activer le mode privé"
11267
+ enablePrivateMode: "Activer le mode incognito"
11145
11268
  };
11146
11269
  var chatStopStreamingButton$2 = {
11147
11270
  stopStreaming: "Arrêter la diffusion"
@@ -13083,6 +13206,29 @@ var privacyTabLabels$2 = {
13083
13206
  tooltip: "Supprimer les PII des réponses générées par l'IA. Peut ajouter une légère latence aux réponses en streaming."
13084
13207
  }
13085
13208
  },
13209
+ subTabs: {
13210
+ piiFiltering: "PII Filtering",
13211
+ incognito: "Incognito"
13212
+ },
13213
+ incognito: {
13214
+ description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
13215
+ groupAriaLabel: "Incognito policy",
13216
+ options: {
13217
+ users: {
13218
+ title: "Users Decide",
13219
+ description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
13220
+ },
13221
+ always: {
13222
+ title: "Always Incognito",
13223
+ description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
13224
+ },
13225
+ never: {
13226
+ title: "Never Incognito",
13227
+ description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
13228
+ }
13229
+ }
13230
+ },
13231
+ noAccess: "You don't have permission to view this agent's privacy settings.",
13086
13232
  toasts: {
13087
13233
  updateSuccess: "Paramètres de confidentialité mis à jour",
13088
13234
  updateError: "Échec de la mise à jour des paramètres de confidentialité"
@@ -13244,16 +13390,16 @@ var profileCatalogInviteModal$2 = {
13244
13390
  sendInvitationsFailed: "Échec de l'envoi des invitations. Veuillez réessayer."
13245
13391
  };
13246
13392
  var profileChatPrivacyTab$2 = {
13247
- sectionHeading: "Mode privé par défaut",
13248
- sectionDescription: "Choisissez comment les conversations avec les agents IA sont enregistrées par défaut. Vous pouvez basculer n'importe quelle conversation en mode privé depuis l'en-tête du chat — et un agent ou votre organisation peut remplacer ce paramètre pour des conversations spécifiques.",
13393
+ sectionHeading: "Mode incognito par défaut",
13394
+ sectionDescription: "Choisissez comment les conversations avec les agents IA sont enregistrées par défaut. Vous pouvez basculer n'importe quelle conversation en mode incognito depuis l'en-tête du chat — et un agent ou votre organisation peut remplacer ce paramètre pour des conversations spécifiques.",
13249
13395
  modeNormalLabel: "Normal",
13250
13396
  modeNormalDescription: "Les conversations sont enregistrées dans votre historique et liées à votre compte. Les agents utilisent les échanges précédents de la même conversation comme contexte.",
13251
13397
  modeAnonymizedLabel: "Anonymisé",
13252
13398
  modeAnonymizedDescription: "Les conversations sont enregistrées pour le contexte IA, mais les informations d'identification du compte sont supprimées. Les agents utilisent toujours les échanges précédents de la même conversation.",
13253
- modeDisabledLabel: "Désactivé",
13399
+ modeDisabledLabel: "Incognito",
13254
13400
  modeDisabledDescription: "Rien n'est enregistré. Chaque message est une question-réponse à tour unique — les agents ne peuvent pas référencer les messages précédents, même au sein de la même conversation.",
13255
- toastUpdated: "Mode privé par défaut mis à jour",
13256
- toastFailed: "Échec de la mise à jour du mode privé par défaut"
13401
+ toastUpdated: "Mode incognito par défaut mis à jour",
13402
+ toastFailed: "Échec de la mise à jour du mode incognito par défaut"
13257
13403
  };
13258
13404
  var profileCsvEditor$2 = {
13259
13405
  title: "Modifier les données CSV",
@@ -13283,7 +13429,7 @@ var profileIndex$2 = {
13283
13429
  descResume: "Téléversez et prévisualisez votre CV le plus récent.",
13284
13430
  descPurchases: "Consultez et gérez vos abonnements et achats.",
13285
13431
  descMemory: "Gérez ce que l'IA se souvient de vous.",
13286
- descPrivacy: "Définissez votre mode privé par défaut et découvrez l'effet de chaque option sur vos conversations avec les agents IA.",
13432
+ descPrivacy: "Définissez votre mode incognito par défaut et découvrez l'effet de chaque option sur vos conversations avec les agents IA.",
13287
13433
  descChatHistory: "Consultez et exportez vos conversations avec les agents IA.",
13288
13434
  descSecurity: "Mettez à jour vos paramètres de sécurité et votre mot de passe.",
13289
13435
  descAdvanced: "Gérez vos paramètres avancés.",
@@ -13331,7 +13477,7 @@ var profileIndex$2 = {
13331
13477
  descExperiencePreview: "Expérience professionnelle.",
13332
13478
  descPurchasesPreview: "Abonnements et achats.",
13333
13479
  descMemoryPreview: "Ce dont l'IA se souvient.",
13334
- descPrivacyPreview: "Mode privé et effet de chaque option sur les conversations avec les agents IA.",
13480
+ descPrivacyPreview: "Mode incognito et effet de chaque option sur les conversations avec les agents IA.",
13335
13481
  descChatHistoryPreview: "Conversations avec les agents IA.",
13336
13482
  ariaAddEducation: "Ajouter une formation",
13337
13483
  ariaAddExperience: "Ajouter une expérience",
@@ -13933,19 +14079,15 @@ var settingsTabLabels$2 = {
13933
14079
  removeAriaLabel: "Supprimer l'image"
13934
14080
  },
13935
14081
  enhancedDocRetrieval: {
13936
- label: "Enhanced document retrieval",
14082
+ label: "Enhanced Document Retrieval",
13937
14083
  tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
13938
14084
  },
13939
14085
  promptCaching: {
13940
- label: "Prompt caching",
14086
+ label: "Prompt Caching",
13941
14087
  tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
13942
14088
  },
13943
- privateMode: {
13944
- label: "Enable private mode",
13945
- tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
13946
- },
13947
14089
  smartDocRetrieval: {
13948
- label: "Smart document retrieval",
14090
+ label: "Smart Document Retrieval",
13949
14091
  tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
13950
14092
  }
13951
14093
  },
@@ -13993,14 +14135,14 @@ var settingsTabLabels$2 = {
13993
14135
  capabilities: "Capabilities"
13994
14136
  },
13995
14137
  sections: {
13996
- chatExperience: "Chat experience",
14138
+ chatExperience: "Chat Experience",
13997
14139
  advanced: "Advanced",
13998
14140
  perSurface: "Capacites par surface",
13999
14141
  globalSettings: "Capacites globales"
14000
14142
  },
14001
14143
  surfaces: {
14002
- inAppChat: "In-app chat",
14003
- embedWidget: "Embed widget"
14144
+ inAppChat: "In-App Chat",
14145
+ embedWidget: "Embed Widget"
14004
14146
  },
14005
14147
  notes: {
14006
14148
  perSurface: "A configurer independamment pour le chat dans l'application et le widget integre.",
@@ -14640,6 +14782,7 @@ var tabsPoliciestab$2 = {
14640
14782
  browseResourcesLabel: "Parcourir les ressources"
14641
14783
  };
14642
14784
  var tabsPrivacyTab$2 = {
14785
+ subTabsAriaLabel: "Privacy sub-categories",
14643
14786
  moreInfo: "Plus d'informations",
14644
14787
  outputFilterAriaLabelEnabled: "Filtre de sortie activé",
14645
14788
  outputFilterAriaLabelDisabled: "Filtre de sortie désactivé"
@@ -14728,7 +14871,6 @@ var tabsSettingsTab$2 = {
14728
14871
  settingsSubCategoriesAriaLabel: "Settings sub-categories",
14729
14872
  enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
14730
14873
  promptCachingTooltipAriaLabel: "More info about prompt caching",
14731
- privateModeTooltipAriaLabel: "More info about enable private mode",
14732
14874
  smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
14733
14875
  toggleAriaLabel: "{label} {state}"
14734
14876
  };
@@ -16544,6 +16686,54 @@ var virtualMachineNetworkSection$2 = {
16544
16686
  manageTitle: "Paramètres de la machine virtuelle",
16545
16687
  manageDescription: "Les politiques réseau et les secrets de VM sont partagés par tous les agents de votre organisation."
16546
16688
  };
16689
+ var accessibility$2 = {
16690
+ toolbar: {
16691
+ accessibilityMenu: "Menu d'accessibilité",
16692
+ contrastPlus: "Contraste +",
16693
+ highlightLinks: "Mettre les liens en évidence",
16694
+ biggerText: "Texte plus grand",
16695
+ textSpacing: "Espacement du texte",
16696
+ pauseAnimations: "Mettre les animations en pause",
16697
+ hideImages: "Masquer les images",
16698
+ dyslexiaFriendly: "Adapté à la dyslexie",
16699
+ cursor: "Curseur",
16700
+ tooltips: "Infobulles",
16701
+ lineHeight: "Hauteur de ligne",
16702
+ textAlign: "Alignement du texte",
16703
+ saturation: "Saturation",
16704
+ resetAllAccessibilitySettings: "Réinitialiser tous les paramètres d'accessibilité",
16705
+ contrastInvertColors: "Inverser les couleurs",
16706
+ contrastDark: "Contraste sombre",
16707
+ contrastLight: "Contraste clair",
16708
+ textSizeNormal: "Texte normal",
16709
+ textSizeLarge: "Grand texte",
16710
+ textSizeLarger: "Texte très grand",
16711
+ spacingLight: "Espacement léger",
16712
+ spacingModerate: "Espacement modéré",
16713
+ spacingHeavy: "Espacement important",
16714
+ dyslexiaFont: "Police dyslexie",
16715
+ legibleFont: "Police lisible",
16716
+ alignLeft: "Aligner à gauche",
16717
+ alignCenter: "Centrer",
16718
+ alignRight: "Aligner à droite",
16719
+ justify: "Justifier",
16720
+ saturationNormal: "Saturation normale",
16721
+ saturationHigh: "Haute saturation",
16722
+ saturationLow: "Faible saturation",
16723
+ resetButtonPosition: "Réinitialiser la position du bouton",
16724
+ moveButtonToCorner: "Déplacer le bouton dans un coin",
16725
+ moveButtonTopLeft: "Déplacer le bouton dans le coin supérieur gauche",
16726
+ moveButtonTopRight: "Déplacer le bouton dans le coin supérieur droit",
16727
+ moveButtonBottomLeft: "Déplacer le bouton dans le coin inférieur gauche",
16728
+ moveButtonBottomRight: "Déplacer le bouton dans le coin inférieur droit"
16729
+ },
16730
+ button: {
16731
+ openAccessibilityMenu: "Ouvrir le menu d'accessibilité",
16732
+ accessibilityIconAlt: "Accessibilité",
16733
+ moveHint: "Utilisez les flèches haut et bas pour déplacer ce bouton, et les flèches gauche et droite pour changer de côté. Maintenez Maj enfoncée pour le déplacer plus vite.",
16734
+ positionAnnouncement: "Bouton d'accessibilité déplacé vers le bord {side, select, left {gauche} other {droit}}, à {bottom} pixels du bas."
16735
+ }
16736
+ };
16547
16737
  var fr = {
16548
16738
  accessTabAddAccess: accessTabAddAccess$2,
16549
16739
  accessTabLabels: accessTabLabels$2,
@@ -16839,7 +17029,8 @@ var fr = {
16839
17029
  virtualMachineAdminTab: virtualMachineAdminTab$2,
16840
17030
  virtualMachineNetworkPolicies: virtualMachineNetworkPolicies$2,
16841
17031
  virtualMachineSecrets: virtualMachineSecrets$2,
16842
- virtualMachineNetworkSection: virtualMachineNetworkSection$2
17032
+ virtualMachineNetworkSection: virtualMachineNetworkSection$2,
17033
+ accessibility: accessibility$2
16843
17034
  };
16844
17035
 
16845
17036
  var accessTabAddAccess$1 = {
@@ -18771,33 +18962,33 @@ var chatInputFormVoiceChatButton$1 = {
18771
18962
  voiceRecord: "Grabación de voz"
18772
18963
  };
18773
18964
  var chatPrivacyChatPrivacyToggle$1 = {
18774
- toastPrivateModeOff: "El modo privado está desactivado.",
18775
- toastCouldNotTurnOff: "No se pudo desactivar el modo privado. Por favor, inténtelo de nuevo.",
18776
- toastPrivateModeOnNoHistory: "El modo privado está activado. Esta conversación no se guardará en el historial ni se usará para la memoria.",
18777
- toastCouldNotEnable: "No se pudo activar el modo privado. Por favor, inténtelo de nuevo.",
18778
- toastPrivateModeOnRemovedHistory: "El modo privado está activado. Esta conversación ha sido eliminada de su historial.",
18779
- toastFailedToEnable: "No se pudo habilitar el modo privado. Por favor, inténtelo de nuevo.",
18965
+ toastPrivateModeOff: "El modo incógnito está desactivado.",
18966
+ toastCouldNotTurnOff: "No se pudo desactivar el modo incógnito. Por favor, inténtelo de nuevo.",
18967
+ toastPrivateModeOnNoHistory: "El modo incógnito está activado. Esta conversación no se guardará en el historial ni se usará para la memoria.",
18968
+ toastCouldNotEnable: "No se pudo activar el modo incógnito. Por favor, inténtelo de nuevo.",
18969
+ toastPrivateModeOnRemovedHistory: "El modo incógnito está activado. Esta conversación ha sido eliminada de su historial.",
18970
+ toastFailedToEnable: "No se pudo habilitar el modo incógnito. Por favor, inténtelo de nuevo.",
18780
18971
  working: "Procesando…",
18781
- ariaLockedByAgent: "El modo privado está bloqueado por este agente. No se registra ningún historial de conversación.",
18782
- ariaPrivateOnForConversation: "El modo privado está activado para esta conversación. Este chat no se guarda ni se usa para la memoria.",
18783
- ariaTurnOffPrivateMode: "Desactivar el modo privado para este chat.",
18784
- ariaTurnOnMidConversation: "Activar el modo privado para esta conversación. Esta acción no se puede deshacer.",
18785
- ariaTurnOnEmpty: "Activar el modo privado. Este chat no se guardará en el historial ni se usará para la memoria.",
18786
- tooltipLockedByMentor: "Este agente siempre funciona en modo privado — no se conserva ningún historial ni memoria de las conversaciones con él.",
18787
- tooltipLockedByTenant: "Su organización tiene el modo privado habilitado de forma predeterminada — no se conserva ningún historial ni memoria.",
18788
- tooltipLockedGeneric: "El modo privado está bloqueado — no se conserva ningún historial ni memoria.",
18789
- tooltipPrivateOnPostSend: "El modo privado está activado para esta conversación — este chat no se guarda ni se usa para la memoria. Inicie una nueva conversación para salir del modo privado.",
18790
- tooltipTurnOff: "Desactivar el modo privado — su próximo chat se guardará en el historial nuevamente.",
18791
- tooltipTurnOnMidConversation: "Activar el modo privado para el resto de esta conversación. Una vez activado, no puede desactivarlo — inicie una nueva conversación para reanudar el guardado del historial.",
18792
- tooltipTurnOnEmpty: "Activar el modo privado — este chat no se guardará en el historial ni se usará para la memoria.",
18793
- privateMode: "Modo privado",
18794
- dialogTitle: "¿Activar el modo privado para este chat?",
18972
+ ariaLockedByAgent: "El modo incógnito está bloqueado por este agente. No se registra ningún historial de conversación.",
18973
+ ariaPrivateOnForConversation: "El modo incógnito está activado para esta conversación. Este chat no se guarda ni se usa para la memoria.",
18974
+ ariaTurnOffPrivateMode: "Desactivar el modo incógnito para este chat.",
18975
+ ariaTurnOnMidConversation: "Activar el modo incógnito para esta conversación. Esta acción no se puede deshacer.",
18976
+ ariaTurnOnEmpty: "Activar el modo incógnito. Este chat no se guardará en el historial ni se usará para la memoria.",
18977
+ tooltipLockedByMentor: "Este agente siempre funciona en modo incógnito — no se conserva ningún historial ni memoria de las conversaciones con él.",
18978
+ tooltipLockedByTenant: "Su organización tiene el modo incógnito habilitado de forma predeterminada — no se conserva ningún historial ni memoria.",
18979
+ tooltipLockedGeneric: "El modo incógnito está bloqueado — no se conserva ningún historial ni memoria.",
18980
+ tooltipPrivateOnPostSend: "El modo incógnito está activado para esta conversación — este chat no se guarda ni se usa para la memoria. Inicie una nueva conversación para salir del modo incógnito.",
18981
+ tooltipTurnOff: "Desactivar el modo incógnito — su próximo chat se guardará en el historial nuevamente.",
18982
+ tooltipTurnOnMidConversation: "Activar el modo incógnito para el resto de esta conversación. Una vez activado, no puede desactivarlo — inicie una nueva conversación para reanudar el guardado del historial.",
18983
+ tooltipTurnOnEmpty: "Activar el modo incógnito — este chat no se guardará en el historial ni se usará para la memoria.",
18984
+ privateMode: "Modo incógnito",
18985
+ dialogTitle: "¿Activar el modo incógnito para este chat?",
18795
18986
  dialogDescription: "Esta conversación se eliminará de su historial y el asistente dejará de usar los turnos anteriores.",
18796
- dialogDescriptionBold: "Una vez activado, no puede desactivar el modo privado para este chat",
18987
+ dialogDescriptionBold: "Una vez activado, no puede desactivar el modo incógnito para este chat",
18797
18988
  dialogDescriptionSuffix: "inicie una nueva conversación si desea que el historial se guarde nuevamente.",
18798
18989
  cancel: "Cancelar",
18799
18990
  enabling: "Activando…",
18800
- enablePrivateMode: "Activar el modo privado"
18991
+ enablePrivateMode: "Activar el modo incógnito"
18801
18992
  };
18802
18993
  var chatStopStreamingButton$1 = {
18803
18994
  stopStreaming: "Detener transmisión"
@@ -20739,6 +20930,29 @@ var privacyTabLabels$1 = {
20739
20930
  tooltip: "Eliminar PII de las respuestas generadas por la IA. Puede añadir una ligera latencia a las respuestas en streaming."
20740
20931
  }
20741
20932
  },
20933
+ subTabs: {
20934
+ piiFiltering: "PII Filtering",
20935
+ incognito: "Incognito"
20936
+ },
20937
+ incognito: {
20938
+ description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
20939
+ groupAriaLabel: "Incognito policy",
20940
+ options: {
20941
+ users: {
20942
+ title: "Users Decide",
20943
+ description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
20944
+ },
20945
+ always: {
20946
+ title: "Always Incognito",
20947
+ description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
20948
+ },
20949
+ never: {
20950
+ title: "Never Incognito",
20951
+ description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
20952
+ }
20953
+ }
20954
+ },
20955
+ noAccess: "You don't have permission to view this agent's privacy settings.",
20742
20956
  toasts: {
20743
20957
  updateSuccess: "Configuración de privacidad actualizada",
20744
20958
  updateError: "Error al actualizar la configuración de privacidad"
@@ -20900,16 +21114,16 @@ var profileCatalogInviteModal$1 = {
20900
21114
  sendInvitationsFailed: "Error al enviar las invitaciones. Por favor, inténtalo de nuevo."
20901
21115
  };
20902
21116
  var profileChatPrivacyTab$1 = {
20903
- sectionHeading: "Modo privado predeterminado",
20904
- sectionDescription: "Elija cómo se registran por defecto las conversaciones con los agentes de IA. Puede cambiar cualquier chat individual al modo privado desde el encabezado del chat — y un agente o su organización puede anular esto para conversaciones específicas.",
21117
+ sectionHeading: "Modo incógnito predeterminado",
21118
+ sectionDescription: "Elija cómo se registran por defecto las conversaciones con los agentes de IA. Puede cambiar cualquier chat individual al modo incógnito desde el encabezado del chat — y un agente o su organización puede anular esto para conversaciones específicas.",
20905
21119
  modeNormalLabel: "Normal",
20906
21120
  modeNormalDescription: "Las conversaciones se guardan en su historial y se vinculan a su cuenta. Los agentes usan los turnos anteriores de la misma conversación como contexto.",
20907
21121
  modeAnonymizedLabel: "Anonimizado",
20908
21122
  modeAnonymizedDescription: "Las conversaciones se guardan para el contexto de IA, pero se eliminan los datos de identificación de la cuenta. Los agentes siguen usando los turnos anteriores de la misma conversación.",
20909
- modeDisabledLabel: "Desactivado",
21123
+ modeDisabledLabel: "Incógnito",
20910
21124
  modeDisabledDescription: "No se registra nada. Cada mensaje es una pregunta-respuesta de un solo turno — los agentes no pueden hacer referencia a mensajes anteriores, ni siquiera dentro de la misma conversación.",
20911
- toastUpdated: "Modo privado predeterminado actualizado",
20912
- toastFailed: "Error al actualizar el modo privado predeterminado"
21125
+ toastUpdated: "Modo incógnito predeterminado actualizado",
21126
+ toastFailed: "Error al actualizar el modo incógnito predeterminado"
20913
21127
  };
20914
21128
  var profileCsvEditor$1 = {
20915
21129
  title: "Editar datos CSV",
@@ -20939,7 +21153,7 @@ var profileIndex$1 = {
20939
21153
  descResume: "Sube y previsualiza tu currículum más reciente.",
20940
21154
  descPurchases: "Consulta y administra tus suscripciones y compras.",
20941
21155
  descMemory: "Administra lo que la IA recuerda sobre ti.",
20942
- descPrivacy: "Establece tu Modo Privado predeterminado y revisa qué efecto tiene cada opción en tus conversaciones con agentes de IA.",
21156
+ descPrivacy: "Establece tu Modo incógnito predeterminado y revisa qué efecto tiene cada opción en tus conversaciones con agentes de IA.",
20943
21157
  descChatHistory: "Revisa y exporta tus conversaciones con agentes de IA.",
20944
21158
  descSecurity: "Actualiza tu configuración de seguridad y contraseña.",
20945
21159
  descAdvanced: "Administra tu configuración avanzada.",
@@ -20987,7 +21201,7 @@ var profileIndex$1 = {
20987
21201
  descExperiencePreview: "Experiencia profesional.",
20988
21202
  descPurchasesPreview: "Suscripciones y compras.",
20989
21203
  descMemoryPreview: "Lo que la IA recuerda.",
20990
- descPrivacyPreview: "Modo Privado y qué hace cada opción en las conversaciones con agentes de IA.",
21204
+ descPrivacyPreview: "Modo incógnito y qué hace cada opción en las conversaciones con agentes de IA.",
20991
21205
  descChatHistoryPreview: "Conversaciones con agentes de IA.",
20992
21206
  ariaAddEducation: "Añadir educación",
20993
21207
  ariaAddExperience: "Añadir experiencia",
@@ -21589,19 +21803,15 @@ var settingsTabLabels$1 = {
21589
21803
  removeAriaLabel: "Eliminar imagen"
21590
21804
  },
21591
21805
  enhancedDocRetrieval: {
21592
- label: "Enhanced document retrieval",
21806
+ label: "Enhanced Document Retrieval",
21593
21807
  tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
21594
21808
  },
21595
21809
  promptCaching: {
21596
- label: "Prompt caching",
21810
+ label: "Prompt Caching",
21597
21811
  tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
21598
21812
  },
21599
- privateMode: {
21600
- label: "Enable private mode",
21601
- tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
21602
- },
21603
21813
  smartDocRetrieval: {
21604
- label: "Smart document retrieval",
21814
+ label: "Smart Document Retrieval",
21605
21815
  tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
21606
21816
  }
21607
21817
  },
@@ -21649,14 +21859,14 @@ var settingsTabLabels$1 = {
21649
21859
  capabilities: "Capabilities"
21650
21860
  },
21651
21861
  sections: {
21652
- chatExperience: "Chat experience",
21862
+ chatExperience: "Chat Experience",
21653
21863
  advanced: "Advanced",
21654
21864
  perSurface: "Capacidades por superficie",
21655
21865
  globalSettings: "Capacidades globales"
21656
21866
  },
21657
21867
  surfaces: {
21658
- inAppChat: "In-app chat",
21659
- embedWidget: "Embed widget"
21868
+ inAppChat: "In-App Chat",
21869
+ embedWidget: "Embed Widget"
21660
21870
  },
21661
21871
  notes: {
21662
21872
  perSurface: "Se configuran de forma independiente para el chat en la aplicacion y el widget incrustado.",
@@ -22296,6 +22506,7 @@ var tabsPoliciestab$1 = {
22296
22506
  browseResourcesLabel: "Explorar recursos"
22297
22507
  };
22298
22508
  var tabsPrivacyTab$1 = {
22509
+ subTabsAriaLabel: "Privacy sub-categories",
22299
22510
  moreInfo: "Más información",
22300
22511
  outputFilterAriaLabelEnabled: "Filtro de salida activado",
22301
22512
  outputFilterAriaLabelDisabled: "Filtro de salida desactivado"
@@ -22384,7 +22595,6 @@ var tabsSettingsTab$1 = {
22384
22595
  settingsSubCategoriesAriaLabel: "Settings sub-categories",
22385
22596
  enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
22386
22597
  promptCachingTooltipAriaLabel: "More info about prompt caching",
22387
- privateModeTooltipAriaLabel: "More info about enable private mode",
22388
22598
  smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
22389
22599
  toggleAriaLabel: "{label} {state}"
22390
22600
  };
@@ -24200,6 +24410,54 @@ var virtualMachineNetworkSection$1 = {
24200
24410
  manageTitle: "Configuración de la máquina virtual",
24201
24411
  manageDescription: "Las políticas de red y los secretos de VM son compartidos por todos los agentes de tu organización."
24202
24412
  };
24413
+ var accessibility$1 = {
24414
+ toolbar: {
24415
+ accessibilityMenu: "Menú de accesibilidad",
24416
+ contrastPlus: "Contraste +",
24417
+ highlightLinks: "Resaltar enlaces",
24418
+ biggerText: "Texto más grande",
24419
+ textSpacing: "Espaciado del texto",
24420
+ pauseAnimations: "Pausar animaciones",
24421
+ hideImages: "Ocultar imágenes",
24422
+ dyslexiaFriendly: "Apto para dislexia",
24423
+ cursor: "Cursor",
24424
+ tooltips: "Tooltips",
24425
+ lineHeight: "Altura de línea",
24426
+ textAlign: "Alineación del texto",
24427
+ saturation: "Saturación",
24428
+ resetAllAccessibilitySettings: "Restablecer todos los ajustes de accesibilidad",
24429
+ contrastInvertColors: "Invertir colores",
24430
+ contrastDark: "Contraste oscuro",
24431
+ contrastLight: "Contraste claro",
24432
+ textSizeNormal: "Texto normal",
24433
+ textSizeLarge: "Texto grande",
24434
+ textSizeLarger: "Texto más grande",
24435
+ spacingLight: "Espaciado ligero",
24436
+ spacingModerate: "Espaciado moderado",
24437
+ spacingHeavy: "Espaciado amplio",
24438
+ dyslexiaFont: "Fuente para dislexia",
24439
+ legibleFont: "Fuente legible",
24440
+ alignLeft: "Alinear a la izquierda",
24441
+ alignCenter: "Centrar",
24442
+ alignRight: "Alinear a la derecha",
24443
+ justify: "Justificar",
24444
+ saturationNormal: "Saturación normal",
24445
+ saturationHigh: "Alta saturación",
24446
+ saturationLow: "Baja saturación",
24447
+ resetButtonPosition: "Restablecer posición del botón",
24448
+ moveButtonToCorner: "Mover el botón a una esquina",
24449
+ moveButtonTopLeft: "Mover el botón a la esquina superior izquierda",
24450
+ moveButtonTopRight: "Mover el botón a la esquina superior derecha",
24451
+ moveButtonBottomLeft: "Mover el botón a la esquina inferior izquierda",
24452
+ moveButtonBottomRight: "Mover el botón a la esquina inferior derecha"
24453
+ },
24454
+ button: {
24455
+ openAccessibilityMenu: "Abrir el menú de accesibilidad",
24456
+ accessibilityIconAlt: "Accesibilidad",
24457
+ moveHint: "Usa las flechas arriba y abajo para mover este botón, y las flechas izquierda y derecha para cambiarlo de lado. Mantén pulsada Mayús para moverlo más rápido.",
24458
+ positionAnnouncement: "Botón de accesibilidad movido al borde {side, select, left {izquierdo} other {derecho}}, a {bottom} píxeles de la parte inferior."
24459
+ }
24460
+ };
24203
24461
  var es = {
24204
24462
  accessTabAddAccess: accessTabAddAccess$1,
24205
24463
  accessTabLabels: accessTabLabels$1,
@@ -24495,7 +24753,8 @@ var es = {
24495
24753
  virtualMachineAdminTab: virtualMachineAdminTab$1,
24496
24754
  virtualMachineNetworkPolicies: virtualMachineNetworkPolicies$1,
24497
24755
  virtualMachineSecrets: virtualMachineSecrets$1,
24498
- virtualMachineNetworkSection: virtualMachineNetworkSection$1
24756
+ virtualMachineNetworkSection: virtualMachineNetworkSection$1,
24757
+ accessibility: accessibility$1
24499
24758
  };
24500
24759
 
24501
24760
  var accessTabAddAccess = {
@@ -26427,33 +26686,33 @@ var chatInputFormVoiceChatButton = {
26427
26686
  voiceRecord: "语音录制"
26428
26687
  };
26429
26688
  var chatPrivacyChatPrivacyToggle = {
26430
- toastPrivateModeOff: "私密模式已关闭。",
26431
- toastCouldNotTurnOff: "无法关闭私密模式,请重试。",
26432
- toastPrivateModeOnNoHistory: "私密模式已开启。此对话不会保存到历史记录,也不会用于记忆。",
26433
- toastCouldNotEnable: "无法启用私密模式,请重试。",
26434
- toastPrivateModeOnRemovedHistory: "私密模式已开启。此对话已从您的历史记录中移除。",
26435
- toastFailedToEnable: "启用私密模式失败,请重试。",
26689
+ toastPrivateModeOff: "无痕模式已关闭。",
26690
+ toastCouldNotTurnOff: "无法关闭无痕模式,请重试。",
26691
+ toastPrivateModeOnNoHistory: "无痕模式已开启。此对话不会保存到历史记录,也不会用于记忆。",
26692
+ toastCouldNotEnable: "无法启用无痕模式,请重试。",
26693
+ toastPrivateModeOnRemovedHistory: "无痕模式已开启。此对话已从您的历史记录中移除。",
26694
+ toastFailedToEnable: "启用无痕模式失败,请重试。",
26436
26695
  working: "处理中…",
26437
- ariaLockedByAgent: "私密模式已被此助手锁定开启,不记录任何对话历史。",
26438
- ariaPrivateOnForConversation: "此对话已开启私密模式,聊天内容不会被保存或用于记忆。",
26439
- ariaTurnOffPrivateMode: "关闭此对话的私密模式。",
26440
- ariaTurnOnMidConversation: "为此对话开启私密模式,此操作不可撤销。",
26441
- ariaTurnOnEmpty: "开启私密模式,此对话不会保存到历史记录或用于记忆。",
26442
- tooltipLockedByMentor: "此助手始终以私密模式运行——与其进行的对话不保留任何历史记录或记忆。",
26443
- tooltipLockedByTenant: "您的组织已默认启用私密模式——不保留任何历史记录或记忆。",
26444
- tooltipLockedGeneric: "私密模式已锁定开启——不保留任何历史记录或记忆。",
26445
- tooltipPrivateOnPostSend: "此对话已开启私密模式——聊天内容不会被保存或用于记忆。开始新对话以退出私密模式。",
26446
- tooltipTurnOff: "关闭私密模式——您的下一次对话将再次保存到历史记录。",
26447
- tooltipTurnOnMidConversation: "为本次对话的剩余部分开启私密模式。一旦开启将无法关闭——开始新对话以恢复历史记录保存。",
26448
- tooltipTurnOnEmpty: "开启私密模式——此对话不会保存到历史记录或用于记忆。",
26449
- privateMode: "私密模式",
26450
- dialogTitle: "为此对话启用私密模式?",
26696
+ ariaLockedByAgent: "无痕模式已被此助手锁定开启,不记录任何对话历史。",
26697
+ ariaPrivateOnForConversation: "此对话已开启无痕模式,聊天内容不会被保存或用于记忆。",
26698
+ ariaTurnOffPrivateMode: "关闭此对话的无痕模式。",
26699
+ ariaTurnOnMidConversation: "为此对话开启无痕模式,此操作不可撤销。",
26700
+ ariaTurnOnEmpty: "开启无痕模式,此对话不会保存到历史记录或用于记忆。",
26701
+ tooltipLockedByMentor: "此助手始终以无痕模式运行——与其进行的对话不保留任何历史记录或记忆。",
26702
+ tooltipLockedByTenant: "您的组织已默认启用无痕模式——不保留任何历史记录或记忆。",
26703
+ tooltipLockedGeneric: "无痕模式已锁定开启——不保留任何历史记录或记忆。",
26704
+ tooltipPrivateOnPostSend: "此对话已开启无痕模式——聊天内容不会被保存或用于记忆。开始新对话以退出无痕模式。",
26705
+ tooltipTurnOff: "关闭无痕模式——您的下一次对话将再次保存到历史记录。",
26706
+ tooltipTurnOnMidConversation: "为本次对话的剩余部分开启无痕模式。一旦开启将无法关闭——开始新对话以恢复历史记录保存。",
26707
+ tooltipTurnOnEmpty: "开启无痕模式——此对话不会保存到历史记录或用于记忆。",
26708
+ privateMode: "无痕模式",
26709
+ dialogTitle: "为此对话启用无痕模式?",
26451
26710
  dialogDescription: "此对话将从您的历史记录中移除,助手也将停止使用其中的早期内容。",
26452
- dialogDescriptionBold: "一旦开启,您将无法为此对话关闭私密模式",
26711
+ dialogDescriptionBold: "一旦开启,您将无法为此对话关闭无痕模式",
26453
26712
  dialogDescriptionSuffix: "如需再次保存历史记录,请开始新的对话。",
26454
26713
  cancel: "取消",
26455
26714
  enabling: "启用中…",
26456
- enablePrivateMode: "启用私密模式"
26715
+ enablePrivateMode: "启用无痕模式"
26457
26716
  };
26458
26717
  var chatStopStreamingButton = {
26459
26718
  stopStreaming: "停止流式输出"
@@ -28395,6 +28654,29 @@ var privacyTabLabels = {
28395
28654
  tooltip: "从 AI 生成的回复中删除 PII。可能会为流式回复增加轻微延迟。"
28396
28655
  }
28397
28656
  },
28657
+ subTabs: {
28658
+ piiFiltering: "PII Filtering",
28659
+ incognito: "Incognito"
28660
+ },
28661
+ incognito: {
28662
+ description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
28663
+ groupAriaLabel: "Incognito policy",
28664
+ options: {
28665
+ users: {
28666
+ title: "Users Decide",
28667
+ description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
28668
+ },
28669
+ always: {
28670
+ title: "Always Incognito",
28671
+ description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
28672
+ },
28673
+ never: {
28674
+ title: "Never Incognito",
28675
+ description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
28676
+ }
28677
+ }
28678
+ },
28679
+ noAccess: "You don't have permission to view this agent's privacy settings.",
28398
28680
  toasts: {
28399
28681
  updateSuccess: "隐私设置已更新",
28400
28682
  updateError: "更新隐私设置失败"
@@ -28556,16 +28838,16 @@ var profileCatalogInviteModal = {
28556
28838
  sendInvitationsFailed: "发送邀请失败,请重试。"
28557
28839
  };
28558
28840
  var profileChatPrivacyTab = {
28559
- sectionHeading: "默认私密模式",
28560
- sectionDescription: "选择与 AI 代理的对话默认如何记录。您可以在聊天标题中将任何单独的对话切换为私密模式——代理或您的组织也可以针对特定对话覆盖此设置。",
28841
+ sectionHeading: "默认无痕模式",
28842
+ sectionDescription: "选择与 AI 代理的对话默认如何记录。您可以在聊天标题中将任何单独的对话切换为无痕模式——代理或您的组织也可以针对特定对话覆盖此设置。",
28561
28843
  modeNormalLabel: "普通",
28562
28844
  modeNormalDescription: "对话会保存到您的历史记录并与您的账户关联。代理在同一对话中使用先前的轮次作为上下文。",
28563
28845
  modeAnonymizedLabel: "匿名",
28564
28846
  modeAnonymizedDescription: "对话会为 AI 上下文而保存,但会去除账户身份识别信息。代理仍会使用同一对话中的先前轮次。",
28565
- modeDisabledLabel: "禁用",
28847
+ modeDisabledLabel: "无痕",
28566
28848
  modeDisabledDescription: "不记录任何内容。每条消息都是单轮问答——代理无法引用之前的消息,即使在同一对话中也不例外。",
28567
- toastUpdated: "默认私密模式已更新",
28568
- toastFailed: "更新默认私密模式失败"
28849
+ toastUpdated: "默认无痕模式已更新",
28850
+ toastFailed: "更新默认无痕模式失败"
28569
28851
  };
28570
28852
  var profileCsvEditor = {
28571
28853
  title: "编辑 CSV 数据",
@@ -29245,19 +29527,15 @@ var settingsTabLabels = {
29245
29527
  removeAriaLabel: "移除图片"
29246
29528
  },
29247
29529
  enhancedDocRetrieval: {
29248
- label: "Enhanced document retrieval",
29530
+ label: "Enhanced Document Retrieval",
29249
29531
  tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
29250
29532
  },
29251
29533
  promptCaching: {
29252
- label: "Prompt caching",
29534
+ label: "Prompt Caching",
29253
29535
  tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
29254
29536
  },
29255
- privateMode: {
29256
- label: "Enable private mode",
29257
- tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
29258
- },
29259
29537
  smartDocRetrieval: {
29260
- label: "Smart document retrieval",
29538
+ label: "Smart Document Retrieval",
29261
29539
  tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
29262
29540
  }
29263
29541
  },
@@ -29305,14 +29583,14 @@ var settingsTabLabels = {
29305
29583
  capabilities: "Capabilities"
29306
29584
  },
29307
29585
  sections: {
29308
- chatExperience: "Chat experience",
29586
+ chatExperience: "Chat Experience",
29309
29587
  advanced: "Advanced",
29310
29588
  perSurface: "按界面功能",
29311
29589
  globalSettings: "全局功能"
29312
29590
  },
29313
29591
  surfaces: {
29314
- inAppChat: "In-app chat",
29315
- embedWidget: "Embed widget"
29592
+ inAppChat: "In-App Chat",
29593
+ embedWidget: "Embed Widget"
29316
29594
  },
29317
29595
  notes: {
29318
29596
  perSurface: "分别为应用内聊天和嵌入式挂件单独设置。",
@@ -29952,6 +30230,7 @@ var tabsPoliciestab = {
29952
30230
  browseResourcesLabel: "浏览资源"
29953
30231
  };
29954
30232
  var tabsPrivacyTab = {
30233
+ subTabsAriaLabel: "Privacy sub-categories",
29955
30234
  moreInfo: "更多信息",
29956
30235
  outputFilterAriaLabelEnabled: "输出过滤器已启用",
29957
30236
  outputFilterAriaLabelDisabled: "输出过滤器已禁用"
@@ -30040,7 +30319,6 @@ var tabsSettingsTab = {
30040
30319
  settingsSubCategoriesAriaLabel: "Settings sub-categories",
30041
30320
  enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
30042
30321
  promptCachingTooltipAriaLabel: "More info about prompt caching",
30043
- privateModeTooltipAriaLabel: "More info about enable private mode",
30044
30322
  smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
30045
30323
  toggleAriaLabel: "{label} {state}"
30046
30324
  };
@@ -31856,6 +32134,54 @@ var virtualMachineNetworkSection = {
31856
32134
  manageTitle: "虚拟机设置",
31857
32135
  manageDescription: "网络策略和虚拟机密钥由您组织中的所有智能体共享。"
31858
32136
  };
32137
+ var accessibility = {
32138
+ toolbar: {
32139
+ accessibilityMenu: "无障碍菜单",
32140
+ contrastPlus: "对比度 +",
32141
+ highlightLinks: "高亮链接",
32142
+ biggerText: "放大文字",
32143
+ textSpacing: "文字间距",
32144
+ pauseAnimations: "暂停动画",
32145
+ hideImages: "隐藏图片",
32146
+ dyslexiaFriendly: "阅读障碍友好",
32147
+ cursor: "光标",
32148
+ tooltips: "工具提示",
32149
+ lineHeight: "行高",
32150
+ textAlign: "文字对齐",
32151
+ saturation: "饱和度",
32152
+ resetAllAccessibilitySettings: "重置所有无障碍设置",
32153
+ contrastInvertColors: "反转颜色",
32154
+ contrastDark: "深色对比",
32155
+ contrastLight: "浅色对比",
32156
+ textSizeNormal: "正常文字",
32157
+ textSizeLarge: "大号文字",
32158
+ textSizeLarger: "更大文字",
32159
+ spacingLight: "轻度间距",
32160
+ spacingModerate: "适中间距",
32161
+ spacingHeavy: "宽松间距",
32162
+ dyslexiaFont: "阅读障碍字体",
32163
+ legibleFont: "易读字体",
32164
+ alignLeft: "左对齐",
32165
+ alignCenter: "居中对齐",
32166
+ alignRight: "右对齐",
32167
+ justify: "两端对齐",
32168
+ saturationNormal: "正常饱和度",
32169
+ saturationHigh: "高饱和度",
32170
+ saturationLow: "低饱和度",
32171
+ resetButtonPosition: "重置按钮位置",
32172
+ moveButtonToCorner: "将按钮移到角落",
32173
+ moveButtonTopLeft: "将按钮移到左上角",
32174
+ moveButtonTopRight: "将按钮移到右上角",
32175
+ moveButtonBottomLeft: "将按钮移到左下角",
32176
+ moveButtonBottomRight: "将按钮移到右下角"
32177
+ },
32178
+ button: {
32179
+ openAccessibilityMenu: "打开无障碍菜单",
32180
+ accessibilityIconAlt: "无障碍",
32181
+ moveHint: "使用上下方向键移动此按钮,使用左右方向键切换到另一侧。按住 Shift 键可更快移动。",
32182
+ positionAnnouncement: "无障碍按钮已移到{side, select, left {左} other {右}}边缘,距底部 {bottom} 像素。"
32183
+ }
32184
+ };
31859
32185
  var zh = {
31860
32186
  accessTabAddAccess: accessTabAddAccess,
31861
32187
  accessTabLabels: accessTabLabels,
@@ -32151,7 +32477,8 @@ var zh = {
32151
32477
  virtualMachineAdminTab: virtualMachineAdminTab,
32152
32478
  virtualMachineNetworkPolicies: virtualMachineNetworkPolicies,
32153
32479
  virtualMachineSecrets: virtualMachineSecrets,
32154
- virtualMachineNetworkSection: virtualMachineNetworkSection
32480
+ virtualMachineNetworkSection: virtualMachineNetworkSection,
32481
+ accessibility: accessibility
32155
32482
  };
32156
32483
 
32157
32484
  /**
@@ -80596,7 +80923,7 @@ const createLucideIcon = (iconName, iconNode) => {
80596
80923
  */
80597
80924
 
80598
80925
 
80599
- const __iconNode$2B = [
80926
+ const __iconNode$2L = [
80600
80927
  [
80601
80928
  "path",
80602
80929
  {
@@ -80605,7 +80932,7 @@ const __iconNode$2B = [
80605
80932
  }
80606
80933
  ]
80607
80934
  ];
80608
- const Activity = createLucideIcon("activity", __iconNode$2B);
80935
+ const Activity = createLucideIcon("activity", __iconNode$2L);
80609
80936
 
80610
80937
  /**
80611
80938
  * @license lucide-react v0.528.0 - ISC
@@ -80615,12 +80942,12 @@ const Activity = createLucideIcon("activity", __iconNode$2B);
80615
80942
  */
80616
80943
 
80617
80944
 
80618
- const __iconNode$2A = [
80945
+ const __iconNode$2K = [
80619
80946
  ["path", { d: "M17 12H7", key: "16if0g" }],
80620
80947
  ["path", { d: "M19 18H5", key: "18s9l3" }],
80621
80948
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
80622
80949
  ];
80623
- const AlignCenter = createLucideIcon("align-center", __iconNode$2A);
80950
+ const AlignCenter = createLucideIcon("align-center", __iconNode$2K);
80624
80951
 
80625
80952
  /**
80626
80953
  * @license lucide-react v0.528.0 - ISC
@@ -80630,12 +80957,27 @@ const AlignCenter = createLucideIcon("align-center", __iconNode$2A);
80630
80957
  */
80631
80958
 
80632
80959
 
80633
- const __iconNode$2z = [
80960
+ const __iconNode$2J = [
80961
+ ["path", { d: "M3 12h18", key: "1i2n21" }],
80962
+ ["path", { d: "M3 18h18", key: "1h113x" }],
80963
+ ["path", { d: "M3 6h18", key: "d0wm0j" }]
80964
+ ];
80965
+ const AlignJustify = createLucideIcon("align-justify", __iconNode$2J);
80966
+
80967
+ /**
80968
+ * @license lucide-react v0.528.0 - ISC
80969
+ *
80970
+ * This source code is licensed under the ISC license.
80971
+ * See the LICENSE file in the root directory of this source tree.
80972
+ */
80973
+
80974
+
80975
+ const __iconNode$2I = [
80634
80976
  ["path", { d: "M15 12H3", key: "6jk70r" }],
80635
80977
  ["path", { d: "M17 18H3", key: "1amg6g" }],
80636
80978
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
80637
80979
  ];
80638
- const AlignLeft = createLucideIcon("align-left", __iconNode$2z);
80980
+ const AlignLeft = createLucideIcon("align-left", __iconNode$2I);
80639
80981
 
80640
80982
  /**
80641
80983
  * @license lucide-react v0.528.0 - ISC
@@ -80645,12 +80987,12 @@ const AlignLeft = createLucideIcon("align-left", __iconNode$2z);
80645
80987
  */
80646
80988
 
80647
80989
 
80648
- const __iconNode$2y = [
80990
+ const __iconNode$2H = [
80649
80991
  ["path", { d: "M21 12H9", key: "dn1m92" }],
80650
80992
  ["path", { d: "M21 18H7", key: "1ygte8" }],
80651
80993
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
80652
80994
  ];
80653
- const AlignRight = createLucideIcon("align-right", __iconNode$2y);
80995
+ const AlignRight = createLucideIcon("align-right", __iconNode$2H);
80654
80996
 
80655
80997
  /**
80656
80998
  * @license lucide-react v0.528.0 - ISC
@@ -80660,12 +81002,12 @@ const AlignRight = createLucideIcon("align-right", __iconNode$2y);
80660
81002
  */
80661
81003
 
80662
81004
 
80663
- const __iconNode$2x = [
81005
+ const __iconNode$2G = [
80664
81006
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
80665
81007
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
80666
81008
  ["path", { d: "M10 12h4", key: "a56b0p" }]
80667
81009
  ];
80668
- const Archive = createLucideIcon("archive", __iconNode$2x);
81010
+ const Archive = createLucideIcon("archive", __iconNode$2G);
80669
81011
 
80670
81012
  /**
80671
81013
  * @license lucide-react v0.528.0 - ISC
@@ -80675,11 +81017,39 @@ const Archive = createLucideIcon("archive", __iconNode$2x);
80675
81017
  */
80676
81018
 
80677
81019
 
80678
- const __iconNode$2w = [
81020
+ const __iconNode$2F = [
81021
+ ["path", { d: "M17 7 7 17", key: "15tmo1" }],
81022
+ ["path", { d: "M17 17H7V7", key: "1org7z" }]
81023
+ ];
81024
+ const ArrowDownLeft = createLucideIcon("arrow-down-left", __iconNode$2F);
81025
+
81026
+ /**
81027
+ * @license lucide-react v0.528.0 - ISC
81028
+ *
81029
+ * This source code is licensed under the ISC license.
81030
+ * See the LICENSE file in the root directory of this source tree.
81031
+ */
81032
+
81033
+
81034
+ const __iconNode$2E = [
81035
+ ["path", { d: "m7 7 10 10", key: "1fmybs" }],
81036
+ ["path", { d: "M17 7v10H7", key: "6fjiku" }]
81037
+ ];
81038
+ const ArrowDownRight = createLucideIcon("arrow-down-right", __iconNode$2E);
81039
+
81040
+ /**
81041
+ * @license lucide-react v0.528.0 - ISC
81042
+ *
81043
+ * This source code is licensed under the ISC license.
81044
+ * See the LICENSE file in the root directory of this source tree.
81045
+ */
81046
+
81047
+
81048
+ const __iconNode$2D = [
80679
81049
  ["path", { d: "M12 5v14", key: "s699le" }],
80680
81050
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
80681
81051
  ];
80682
- const ArrowDown = createLucideIcon("arrow-down", __iconNode$2w);
81052
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2D);
80683
81053
 
80684
81054
  /**
80685
81055
  * @license lucide-react v0.528.0 - ISC
@@ -80689,11 +81059,11 @@ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2w);
80689
81059
  */
80690
81060
 
80691
81061
 
80692
- const __iconNode$2v = [
81062
+ const __iconNode$2C = [
80693
81063
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
80694
81064
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
80695
81065
  ];
80696
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2v);
81066
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2C);
80697
81067
 
80698
81068
  /**
80699
81069
  * @license lucide-react v0.528.0 - ISC
@@ -80703,11 +81073,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2v);
80703
81073
  */
80704
81074
 
80705
81075
 
80706
- const __iconNode$2u = [
81076
+ const __iconNode$2B = [
80707
81077
  ["path", { d: "M5 12h14", key: "1ays0h" }],
80708
81078
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
80709
81079
  ];
80710
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$2u);
81080
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$2B);
80711
81081
 
80712
81082
  /**
80713
81083
  * @license lucide-react v0.528.0 - ISC
@@ -80717,13 +81087,13 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$2u);
80717
81087
  */
80718
81088
 
80719
81089
 
80720
- const __iconNode$2t = [
81090
+ const __iconNode$2A = [
80721
81091
  ["path", { d: "m21 16-4 4-4-4", key: "f6ql7i" }],
80722
81092
  ["path", { d: "M17 20V4", key: "1ejh1v" }],
80723
81093
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
80724
81094
  ["path", { d: "M7 4v16", key: "1glfcx" }]
80725
81095
  ];
80726
- const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$2t);
81096
+ const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$2A);
80727
81097
 
80728
81098
  /**
80729
81099
  * @license lucide-react v0.528.0 - ISC
@@ -80733,11 +81103,39 @@ const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$2t);
80733
81103
  */
80734
81104
 
80735
81105
 
80736
- const __iconNode$2s = [
81106
+ const __iconNode$2z = [
81107
+ ["path", { d: "M7 17V7h10", key: "11bw93" }],
81108
+ ["path", { d: "M17 17 7 7", key: "2786uv" }]
81109
+ ];
81110
+ const ArrowUpLeft = createLucideIcon("arrow-up-left", __iconNode$2z);
81111
+
81112
+ /**
81113
+ * @license lucide-react v0.528.0 - ISC
81114
+ *
81115
+ * This source code is licensed under the ISC license.
81116
+ * See the LICENSE file in the root directory of this source tree.
81117
+ */
81118
+
81119
+
81120
+ const __iconNode$2y = [
81121
+ ["path", { d: "M7 7h10v10", key: "1tivn9" }],
81122
+ ["path", { d: "M7 17 17 7", key: "1vkiza" }]
81123
+ ];
81124
+ const ArrowUpRight = createLucideIcon("arrow-up-right", __iconNode$2y);
81125
+
81126
+ /**
81127
+ * @license lucide-react v0.528.0 - ISC
81128
+ *
81129
+ * This source code is licensed under the ISC license.
81130
+ * See the LICENSE file in the root directory of this source tree.
81131
+ */
81132
+
81133
+
81134
+ const __iconNode$2x = [
80737
81135
  ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
80738
81136
  ["path", { d: "M12 19V5", key: "x0mq9r" }]
80739
81137
  ];
80740
- const ArrowUp = createLucideIcon("arrow-up", __iconNode$2s);
81138
+ const ArrowUp = createLucideIcon("arrow-up", __iconNode$2x);
80741
81139
 
80742
81140
  /**
80743
81141
  * @license lucide-react v0.528.0 - ISC
@@ -80747,7 +81145,7 @@ const ArrowUp = createLucideIcon("arrow-up", __iconNode$2s);
80747
81145
  */
80748
81146
 
80749
81147
 
80750
- const __iconNode$2r = [
81148
+ const __iconNode$2w = [
80751
81149
  [
80752
81150
  "path",
80753
81151
  {
@@ -80757,7 +81155,7 @@ const __iconNode$2r = [
80757
81155
  ],
80758
81156
  ["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
80759
81157
  ];
80760
- const Award = createLucideIcon("award", __iconNode$2r);
81158
+ const Award = createLucideIcon("award", __iconNode$2w);
80761
81159
 
80762
81160
  /**
80763
81161
  * @license lucide-react v0.528.0 - ISC
@@ -80767,11 +81165,11 @@ const Award = createLucideIcon("award", __iconNode$2r);
80767
81165
  */
80768
81166
 
80769
81167
 
80770
- const __iconNode$2q = [
81168
+ const __iconNode$2v = [
80771
81169
  ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
80772
81170
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
80773
81171
  ];
80774
- const Ban = createLucideIcon("ban", __iconNode$2q);
81172
+ const Ban = createLucideIcon("ban", __iconNode$2v);
80775
81173
 
80776
81174
  /**
80777
81175
  * @license lucide-react v0.528.0 - ISC
@@ -80781,12 +81179,12 @@ const Ban = createLucideIcon("ban", __iconNode$2q);
80781
81179
  */
80782
81180
 
80783
81181
 
80784
- const __iconNode$2p = [
81182
+ const __iconNode$2u = [
80785
81183
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
80786
81184
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
80787
81185
  ["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
80788
81186
  ];
80789
- const Banknote = createLucideIcon("banknote", __iconNode$2p);
81187
+ const Banknote = createLucideIcon("banknote", __iconNode$2u);
80790
81188
 
80791
81189
  /**
80792
81190
  * @license lucide-react v0.528.0 - ISC
@@ -80796,7 +81194,7 @@ const Banknote = createLucideIcon("banknote", __iconNode$2p);
80796
81194
  */
80797
81195
 
80798
81196
 
80799
- const __iconNode$2o = [
81197
+ const __iconNode$2t = [
80800
81198
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
80801
81199
  ["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
80802
81200
  [
@@ -80808,7 +81206,7 @@ const __iconNode$2o = [
80808
81206
  ],
80809
81207
  ["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
80810
81208
  ];
80811
- const BellRing = createLucideIcon("bell-ring", __iconNode$2o);
81209
+ const BellRing = createLucideIcon("bell-ring", __iconNode$2t);
80812
81210
 
80813
81211
  /**
80814
81212
  * @license lucide-react v0.528.0 - ISC
@@ -80818,7 +81216,7 @@ const BellRing = createLucideIcon("bell-ring", __iconNode$2o);
80818
81216
  */
80819
81217
 
80820
81218
 
80821
- const __iconNode$2n = [
81219
+ const __iconNode$2s = [
80822
81220
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
80823
81221
  [
80824
81222
  "path",
@@ -80828,7 +81226,7 @@ const __iconNode$2n = [
80828
81226
  }
80829
81227
  ]
80830
81228
  ];
80831
- const Bell = createLucideIcon("bell", __iconNode$2n);
81229
+ const Bell = createLucideIcon("bell", __iconNode$2s);
80832
81230
 
80833
81231
  /**
80834
81232
  * @license lucide-react v0.528.0 - ISC
@@ -80838,13 +81236,13 @@ const Bell = createLucideIcon("bell", __iconNode$2n);
80838
81236
  */
80839
81237
 
80840
81238
 
80841
- const __iconNode$2m = [
81239
+ const __iconNode$2r = [
80842
81240
  [
80843
81241
  "path",
80844
81242
  { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
80845
81243
  ]
80846
81244
  ];
80847
- const Bold$1 = createLucideIcon("bold", __iconNode$2m);
81245
+ const Bold$1 = createLucideIcon("bold", __iconNode$2r);
80848
81246
 
80849
81247
  /**
80850
81248
  * @license lucide-react v0.528.0 - ISC
@@ -80854,7 +81252,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$2m);
80854
81252
  */
80855
81253
 
80856
81254
 
80857
- const __iconNode$2l = [
81255
+ const __iconNode$2q = [
80858
81256
  ["path", { d: "M12 7v14", key: "1akyts" }],
80859
81257
  [
80860
81258
  "path",
@@ -80864,7 +81262,7 @@ const __iconNode$2l = [
80864
81262
  }
80865
81263
  ]
80866
81264
  ];
80867
- const BookOpen = createLucideIcon("book-open", __iconNode$2l);
81265
+ const BookOpen = createLucideIcon("book-open", __iconNode$2q);
80868
81266
 
80869
81267
  /**
80870
81268
  * @license lucide-react v0.528.0 - ISC
@@ -80874,7 +81272,7 @@ const BookOpen = createLucideIcon("book-open", __iconNode$2l);
80874
81272
  */
80875
81273
 
80876
81274
 
80877
- const __iconNode$2k = [
81275
+ const __iconNode$2p = [
80878
81276
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
80879
81277
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
80880
81278
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -80882,7 +81280,7 @@ const __iconNode$2k = [
80882
81280
  ["path", { d: "M15 13v2", key: "1xurst" }],
80883
81281
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
80884
81282
  ];
80885
- const Bot = createLucideIcon("bot", __iconNode$2k);
81283
+ const Bot = createLucideIcon("bot", __iconNode$2p);
80886
81284
 
80887
81285
  /**
80888
81286
  * @license lucide-react v0.528.0 - ISC
@@ -80892,11 +81290,11 @@ const Bot = createLucideIcon("bot", __iconNode$2k);
80892
81290
  */
80893
81291
 
80894
81292
 
80895
- const __iconNode$2j = [
81293
+ const __iconNode$2o = [
80896
81294
  ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
80897
81295
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
80898
81296
  ];
80899
- const Briefcase = createLucideIcon("briefcase", __iconNode$2j);
81297
+ const Briefcase = createLucideIcon("briefcase", __iconNode$2o);
80900
81298
 
80901
81299
  /**
80902
81300
  * @license lucide-react v0.528.0 - ISC
@@ -80906,7 +81304,7 @@ const Briefcase = createLucideIcon("briefcase", __iconNode$2j);
80906
81304
  */
80907
81305
 
80908
81306
 
80909
- const __iconNode$2i = [
81307
+ const __iconNode$2n = [
80910
81308
  ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
80911
81309
  ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
80912
81310
  ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
@@ -80915,7 +81313,7 @@ const __iconNode$2i = [
80915
81313
  ["path", { d: "M10 14h4", key: "kelpxr" }],
80916
81314
  ["path", { d: "M10 18h4", key: "1ulq68" }]
80917
81315
  ];
80918
- const Building2 = createLucideIcon("building-2", __iconNode$2i);
81316
+ const Building2 = createLucideIcon("building-2", __iconNode$2n);
80919
81317
 
80920
81318
  /**
80921
81319
  * @license lucide-react v0.528.0 - ISC
@@ -80925,13 +81323,13 @@ const Building2 = createLucideIcon("building-2", __iconNode$2i);
80925
81323
  */
80926
81324
 
80927
81325
 
80928
- const __iconNode$2h = [
81326
+ const __iconNode$2m = [
80929
81327
  ["path", { d: "M8 2v4", key: "1cmpym" }],
80930
81328
  ["path", { d: "M16 2v4", key: "4m81vk" }],
80931
81329
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
80932
81330
  ["path", { d: "M3 10h18", key: "8toen8" }]
80933
81331
  ];
80934
- const Calendar$1 = createLucideIcon("calendar", __iconNode$2h);
81332
+ const Calendar$1 = createLucideIcon("calendar", __iconNode$2m);
80935
81333
 
80936
81334
  /**
80937
81335
  * @license lucide-react v0.528.0 - ISC
@@ -80941,7 +81339,7 @@ const Calendar$1 = createLucideIcon("calendar", __iconNode$2h);
80941
81339
  */
80942
81340
 
80943
81341
 
80944
- const __iconNode$2g = [
81342
+ const __iconNode$2l = [
80945
81343
  [
80946
81344
  "path",
80947
81345
  {
@@ -80951,7 +81349,7 @@ const __iconNode$2g = [
80951
81349
  ],
80952
81350
  ["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
80953
81351
  ];
80954
- const Camera = createLucideIcon("camera", __iconNode$2g);
81352
+ const Camera = createLucideIcon("camera", __iconNode$2l);
80955
81353
 
80956
81354
  /**
80957
81355
  * @license lucide-react v0.528.0 - ISC
@@ -80961,11 +81359,11 @@ const Camera = createLucideIcon("camera", __iconNode$2g);
80961
81359
  */
80962
81360
 
80963
81361
 
80964
- const __iconNode$2f = [
81362
+ const __iconNode$2k = [
80965
81363
  ["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
80966
81364
  ["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
80967
81365
  ];
80968
- const CheckCheck = createLucideIcon("check-check", __iconNode$2f);
81366
+ const CheckCheck = createLucideIcon("check-check", __iconNode$2k);
80969
81367
 
80970
81368
  /**
80971
81369
  * @license lucide-react v0.528.0 - ISC
@@ -80975,8 +81373,8 @@ const CheckCheck = createLucideIcon("check-check", __iconNode$2f);
80975
81373
  */
80976
81374
 
80977
81375
 
80978
- const __iconNode$2e = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
80979
- const Check = createLucideIcon("check", __iconNode$2e);
81376
+ const __iconNode$2j = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
81377
+ const Check = createLucideIcon("check", __iconNode$2j);
80980
81378
 
80981
81379
  /**
80982
81380
  * @license lucide-react v0.528.0 - ISC
@@ -80986,8 +81384,8 @@ const Check = createLucideIcon("check", __iconNode$2e);
80986
81384
  */
80987
81385
 
80988
81386
 
80989
- const __iconNode$2d = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
80990
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$2d);
81387
+ const __iconNode$2i = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
81388
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$2i);
80991
81389
 
80992
81390
  /**
80993
81391
  * @license lucide-react v0.528.0 - ISC
@@ -80997,11 +81395,11 @@ const ChevronDown = createLucideIcon("chevron-down", __iconNode$2d);
80997
81395
  */
80998
81396
 
80999
81397
 
81000
- const __iconNode$2c = [
81398
+ const __iconNode$2h = [
81001
81399
  ["path", { d: "m17 18-6-6 6-6", key: "1yerx2" }],
81002
81400
  ["path", { d: "M7 6v12", key: "1p53r6" }]
81003
81401
  ];
81004
- const ChevronFirst = createLucideIcon("chevron-first", __iconNode$2c);
81402
+ const ChevronFirst = createLucideIcon("chevron-first", __iconNode$2h);
81005
81403
 
81006
81404
  /**
81007
81405
  * @license lucide-react v0.528.0 - ISC
@@ -81011,11 +81409,11 @@ const ChevronFirst = createLucideIcon("chevron-first", __iconNode$2c);
81011
81409
  */
81012
81410
 
81013
81411
 
81014
- const __iconNode$2b = [
81412
+ const __iconNode$2g = [
81015
81413
  ["path", { d: "m7 18 6-6-6-6", key: "lwmzdw" }],
81016
81414
  ["path", { d: "M17 6v12", key: "1o0aio" }]
81017
81415
  ];
81018
- const ChevronLast = createLucideIcon("chevron-last", __iconNode$2b);
81416
+ const ChevronLast = createLucideIcon("chevron-last", __iconNode$2g);
81019
81417
 
81020
81418
  /**
81021
81419
  * @license lucide-react v0.528.0 - ISC
@@ -81025,8 +81423,8 @@ const ChevronLast = createLucideIcon("chevron-last", __iconNode$2b);
81025
81423
  */
81026
81424
 
81027
81425
 
81028
- const __iconNode$2a = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
81029
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$2a);
81426
+ const __iconNode$2f = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
81427
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$2f);
81030
81428
 
81031
81429
  /**
81032
81430
  * @license lucide-react v0.528.0 - ISC
@@ -81036,8 +81434,8 @@ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$2a);
81036
81434
  */
81037
81435
 
81038
81436
 
81039
- const __iconNode$29 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
81040
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$29);
81437
+ const __iconNode$2e = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
81438
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$2e);
81041
81439
 
81042
81440
  /**
81043
81441
  * @license lucide-react v0.528.0 - ISC
@@ -81047,8 +81445,8 @@ const ChevronRight = createLucideIcon("chevron-right", __iconNode$29);
81047
81445
  */
81048
81446
 
81049
81447
 
81050
- const __iconNode$28 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
81051
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$28);
81448
+ const __iconNode$2d = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
81449
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$2d);
81052
81450
 
81053
81451
  /**
81054
81452
  * @license lucide-react v0.528.0 - ISC
@@ -81058,11 +81456,11 @@ const ChevronUp = createLucideIcon("chevron-up", __iconNode$28);
81058
81456
  */
81059
81457
 
81060
81458
 
81061
- const __iconNode$27 = [
81459
+ const __iconNode$2c = [
81062
81460
  ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
81063
81461
  ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
81064
81462
  ];
81065
- const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$27);
81463
+ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$2c);
81066
81464
 
81067
81465
  /**
81068
81466
  * @license lucide-react v0.528.0 - ISC
@@ -81072,11 +81470,11 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$27);
81072
81470
  */
81073
81471
 
81074
81472
 
81075
- const __iconNode$26 = [
81473
+ const __iconNode$2b = [
81076
81474
  ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
81077
81475
  ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
81078
81476
  ];
81079
- const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$26);
81477
+ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$2b);
81080
81478
 
81081
81479
  /**
81082
81480
  * @license lucide-react v0.528.0 - ISC
@@ -81086,11 +81484,11 @@ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$26);
81086
81484
  */
81087
81485
 
81088
81486
 
81089
- const __iconNode$25 = [
81487
+ const __iconNode$2a = [
81090
81488
  ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
81091
81489
  ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
81092
81490
  ];
81093
- const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$25);
81491
+ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$2a);
81094
81492
 
81095
81493
  /**
81096
81494
  * @license lucide-react v0.528.0 - ISC
@@ -81100,12 +81498,12 @@ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$25);
81100
81498
  */
81101
81499
 
81102
81500
 
81103
- const __iconNode$24 = [
81501
+ const __iconNode$29 = [
81104
81502
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81105
81503
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
81106
81504
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
81107
81505
  ];
81108
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$24);
81506
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$29);
81109
81507
 
81110
81508
  /**
81111
81509
  * @license lucide-react v0.528.0 - ISC
@@ -81115,11 +81513,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$24);
81115
81513
  */
81116
81514
 
81117
81515
 
81118
- const __iconNode$23 = [
81516
+ const __iconNode$28 = [
81119
81517
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
81120
81518
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
81121
81519
  ];
81122
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$23);
81520
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$28);
81123
81521
 
81124
81522
  /**
81125
81523
  * @license lucide-react v0.528.0 - ISC
@@ -81129,11 +81527,11 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$23);
81129
81527
  */
81130
81528
 
81131
81529
 
81132
- const __iconNode$22 = [
81530
+ const __iconNode$27 = [
81133
81531
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81134
81532
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
81135
81533
  ];
81136
- const CircleCheck = createLucideIcon("circle-check", __iconNode$22);
81534
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$27);
81137
81535
 
81138
81536
  /**
81139
81537
  * @license lucide-react v0.528.0 - ISC
@@ -81143,11 +81541,11 @@ const CircleCheck = createLucideIcon("circle-check", __iconNode$22);
81143
81541
  */
81144
81542
 
81145
81543
 
81146
- const __iconNode$21 = [
81544
+ const __iconNode$26 = [
81147
81545
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81148
81546
  ["path", { d: "M8 12h8", key: "1wcyev" }]
81149
81547
  ];
81150
- const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$21);
81548
+ const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$26);
81151
81549
 
81152
81550
  /**
81153
81551
  * @license lucide-react v0.528.0 - ISC
@@ -81157,11 +81555,11 @@ const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$21);
81157
81555
  */
81158
81556
 
81159
81557
 
81160
- const __iconNode$20 = [
81558
+ const __iconNode$25 = [
81161
81559
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81162
81560
  ["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
81163
81561
  ];
81164
- const CircleStop = createLucideIcon("circle-stop", __iconNode$20);
81562
+ const CircleStop = createLucideIcon("circle-stop", __iconNode$25);
81165
81563
 
81166
81564
  /**
81167
81565
  * @license lucide-react v0.528.0 - ISC
@@ -81171,12 +81569,12 @@ const CircleStop = createLucideIcon("circle-stop", __iconNode$20);
81171
81569
  */
81172
81570
 
81173
81571
 
81174
- const __iconNode$1$ = [
81572
+ const __iconNode$24 = [
81175
81573
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81176
81574
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
81177
81575
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
81178
81576
  ];
81179
- const CircleX = createLucideIcon("circle-x", __iconNode$1$);
81577
+ const CircleX = createLucideIcon("circle-x", __iconNode$24);
81180
81578
 
81181
81579
  /**
81182
81580
  * @license lucide-react v0.528.0 - ISC
@@ -81186,8 +81584,8 @@ const CircleX = createLucideIcon("circle-x", __iconNode$1$);
81186
81584
  */
81187
81585
 
81188
81586
 
81189
- const __iconNode$1_ = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
81190
- const Circle = createLucideIcon("circle", __iconNode$1_);
81587
+ const __iconNode$23 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
81588
+ const Circle = createLucideIcon("circle", __iconNode$23);
81191
81589
 
81192
81590
  /**
81193
81591
  * @license lucide-react v0.528.0 - ISC
@@ -81197,7 +81595,7 @@ const Circle = createLucideIcon("circle", __iconNode$1_);
81197
81595
  */
81198
81596
 
81199
81597
 
81200
- const __iconNode$1Z = [
81598
+ const __iconNode$22 = [
81201
81599
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
81202
81600
  [
81203
81601
  "path",
@@ -81211,7 +81609,7 @@ const __iconNode$1Z = [
81211
81609
  ["path", { d: "M8 11h.01", key: "1dfujw" }],
81212
81610
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
81213
81611
  ];
81214
- const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1Z);
81612
+ const ClipboardList = createLucideIcon("clipboard-list", __iconNode$22);
81215
81613
 
81216
81614
  /**
81217
81615
  * @license lucide-react v0.528.0 - ISC
@@ -81221,11 +81619,11 @@ const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1Z);
81221
81619
  */
81222
81620
 
81223
81621
 
81224
- const __iconNode$1Y = [
81622
+ const __iconNode$21 = [
81225
81623
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
81226
81624
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
81227
81625
  ];
81228
- const Clock = createLucideIcon("clock", __iconNode$1Y);
81626
+ const Clock = createLucideIcon("clock", __iconNode$21);
81229
81627
 
81230
81628
  /**
81231
81629
  * @license lucide-react v0.528.0 - ISC
@@ -81235,12 +81633,12 @@ const Clock = createLucideIcon("clock", __iconNode$1Y);
81235
81633
  */
81236
81634
 
81237
81635
 
81238
- const __iconNode$1X = [
81636
+ const __iconNode$20 = [
81239
81637
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
81240
81638
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
81241
81639
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
81242
81640
  ];
81243
- const CodeXml = createLucideIcon("code-xml", __iconNode$1X);
81641
+ const CodeXml = createLucideIcon("code-xml", __iconNode$20);
81244
81642
 
81245
81643
  /**
81246
81644
  * @license lucide-react v0.528.0 - ISC
@@ -81250,11 +81648,11 @@ const CodeXml = createLucideIcon("code-xml", __iconNode$1X);
81250
81648
  */
81251
81649
 
81252
81650
 
81253
- const __iconNode$1W = [
81651
+ const __iconNode$1$ = [
81254
81652
  ["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
81255
81653
  ["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
81256
81654
  ];
81257
- const Code$1 = createLucideIcon("code", __iconNode$1W);
81655
+ const Code$1 = createLucideIcon("code", __iconNode$1$);
81258
81656
 
81259
81657
  /**
81260
81658
  * @license lucide-react v0.528.0 - ISC
@@ -81264,13 +81662,13 @@ const Code$1 = createLucideIcon("code", __iconNode$1W);
81264
81662
  */
81265
81663
 
81266
81664
 
81267
- const __iconNode$1V = [
81665
+ const __iconNode$1_ = [
81268
81666
  ["circle", { cx: "8", cy: "8", r: "6", key: "3yglwk" }],
81269
81667
  ["path", { d: "M18.09 10.37A6 6 0 1 1 10.34 18", key: "t5s6rm" }],
81270
81668
  ["path", { d: "M7 6h1v4", key: "1obek4" }],
81271
81669
  ["path", { d: "m16.71 13.88.7.71-2.82 2.82", key: "1rbuyh" }]
81272
81670
  ];
81273
- const Coins = createLucideIcon("coins", __iconNode$1V);
81671
+ const Coins = createLucideIcon("coins", __iconNode$1_);
81274
81672
 
81275
81673
  /**
81276
81674
  * @license lucide-react v0.528.0 - ISC
@@ -81280,11 +81678,11 @@ const Coins = createLucideIcon("coins", __iconNode$1V);
81280
81678
  */
81281
81679
 
81282
81680
 
81283
- const __iconNode$1U = [
81681
+ const __iconNode$1Z = [
81284
81682
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
81285
81683
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
81286
81684
  ];
81287
- const Copy = createLucideIcon("copy", __iconNode$1U);
81685
+ const Copy = createLucideIcon("copy", __iconNode$1Z);
81288
81686
 
81289
81687
  /**
81290
81688
  * @license lucide-react v0.528.0 - ISC
@@ -81294,11 +81692,11 @@ const Copy = createLucideIcon("copy", __iconNode$1U);
81294
81692
  */
81295
81693
 
81296
81694
 
81297
- const __iconNode$1T = [
81695
+ const __iconNode$1Y = [
81298
81696
  ["rect", { width: "20", height: "14", x: "2", y: "5", rx: "2", key: "ynyp8z" }],
81299
81697
  ["line", { x1: "2", x2: "22", y1: "10", y2: "10", key: "1b3vmo" }]
81300
81698
  ];
81301
- const CreditCard = createLucideIcon("credit-card", __iconNode$1T);
81699
+ const CreditCard = createLucideIcon("credit-card", __iconNode$1Y);
81302
81700
 
81303
81701
  /**
81304
81702
  * @license lucide-react v0.528.0 - ISC
@@ -81308,12 +81706,12 @@ const CreditCard = createLucideIcon("credit-card", __iconNode$1T);
81308
81706
  */
81309
81707
 
81310
81708
 
81311
- const __iconNode$1S = [
81709
+ const __iconNode$1X = [
81312
81710
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
81313
81711
  ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
81314
81712
  ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
81315
81713
  ];
81316
- const Database = createLucideIcon("database", __iconNode$1S);
81714
+ const Database = createLucideIcon("database", __iconNode$1X);
81317
81715
 
81318
81716
  /**
81319
81717
  * @license lucide-react v0.528.0 - ISC
@@ -81323,11 +81721,11 @@ const Database = createLucideIcon("database", __iconNode$1S);
81323
81721
  */
81324
81722
 
81325
81723
 
81326
- const __iconNode$1R = [
81724
+ const __iconNode$1W = [
81327
81725
  ["line", { x1: "12", x2: "12", y1: "2", y2: "22", key: "7eqyqh" }],
81328
81726
  ["path", { d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6", key: "1b0p4s" }]
81329
81727
  ];
81330
- const DollarSign = createLucideIcon("dollar-sign", __iconNode$1R);
81728
+ const DollarSign = createLucideIcon("dollar-sign", __iconNode$1W);
81331
81729
 
81332
81730
  /**
81333
81731
  * @license lucide-react v0.528.0 - ISC
@@ -81337,7 +81735,7 @@ const DollarSign = createLucideIcon("dollar-sign", __iconNode$1R);
81337
81735
  */
81338
81736
 
81339
81737
 
81340
- const __iconNode$1Q = [
81738
+ const __iconNode$1V = [
81341
81739
  ["path", { d: "M11 20H2", key: "nlcfvz" }],
81342
81740
  [
81343
81741
  "path",
@@ -81350,7 +81748,7 @@ const __iconNode$1Q = [
81350
81748
  ["path", { d: "M14 12h.01", key: "1jfl7z" }],
81351
81749
  ["path", { d: "M22 20h-3", key: "vhrsz" }]
81352
81750
  ];
81353
- const DoorOpen = createLucideIcon("door-open", __iconNode$1Q);
81751
+ const DoorOpen = createLucideIcon("door-open", __iconNode$1V);
81354
81752
 
81355
81753
  /**
81356
81754
  * @license lucide-react v0.528.0 - ISC
@@ -81360,12 +81758,12 @@ const DoorOpen = createLucideIcon("door-open", __iconNode$1Q);
81360
81758
  */
81361
81759
 
81362
81760
 
81363
- const __iconNode$1P = [
81761
+ const __iconNode$1U = [
81364
81762
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
81365
81763
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
81366
81764
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
81367
81765
  ];
81368
- const Download = createLucideIcon("download", __iconNode$1P);
81766
+ const Download = createLucideIcon("download", __iconNode$1U);
81369
81767
 
81370
81768
  /**
81371
81769
  * @license lucide-react v0.528.0 - ISC
@@ -81375,12 +81773,38 @@ const Download = createLucideIcon("download", __iconNode$1P);
81375
81773
  */
81376
81774
 
81377
81775
 
81378
- const __iconNode$1O = [
81776
+ const __iconNode$1T = [
81777
+ [
81778
+ "path",
81779
+ {
81780
+ d: "M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",
81781
+ key: "1ptgy4"
81782
+ }
81783
+ ],
81784
+ [
81785
+ "path",
81786
+ {
81787
+ d: "M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",
81788
+ key: "1sl1rz"
81789
+ }
81790
+ ]
81791
+ ];
81792
+ const Droplets = createLucideIcon("droplets", __iconNode$1T);
81793
+
81794
+ /**
81795
+ * @license lucide-react v0.528.0 - ISC
81796
+ *
81797
+ * This source code is licensed under the ISC license.
81798
+ * See the LICENSE file in the root directory of this source tree.
81799
+ */
81800
+
81801
+
81802
+ const __iconNode$1S = [
81379
81803
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
81380
81804
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
81381
81805
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
81382
81806
  ];
81383
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1O);
81807
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1S);
81384
81808
 
81385
81809
  /**
81386
81810
  * @license lucide-react v0.528.0 - ISC
@@ -81390,12 +81814,12 @@ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1O);
81390
81814
  */
81391
81815
 
81392
81816
 
81393
- const __iconNode$1N = [
81817
+ const __iconNode$1R = [
81394
81818
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
81395
81819
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
81396
81820
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
81397
81821
  ];
81398
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$1N);
81822
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$1R);
81399
81823
 
81400
81824
  /**
81401
81825
  * @license lucide-react v0.528.0 - ISC
@@ -81405,12 +81829,12 @@ const Ellipsis = createLucideIcon("ellipsis", __iconNode$1N);
81405
81829
  */
81406
81830
 
81407
81831
 
81408
- const __iconNode$1M = [
81832
+ const __iconNode$1Q = [
81409
81833
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
81410
81834
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
81411
81835
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
81412
81836
  ];
81413
- const ExternalLink = createLucideIcon("external-link", __iconNode$1M);
81837
+ const ExternalLink = createLucideIcon("external-link", __iconNode$1Q);
81414
81838
 
81415
81839
  /**
81416
81840
  * @license lucide-react v0.528.0 - ISC
@@ -81420,7 +81844,7 @@ const ExternalLink = createLucideIcon("external-link", __iconNode$1M);
81420
81844
  */
81421
81845
 
81422
81846
 
81423
- const __iconNode$1L = [
81847
+ const __iconNode$1P = [
81424
81848
  [
81425
81849
  "path",
81426
81850
  {
@@ -81438,7 +81862,7 @@ const __iconNode$1L = [
81438
81862
  ],
81439
81863
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
81440
81864
  ];
81441
- const EyeOff = createLucideIcon("eye-off", __iconNode$1L);
81865
+ const EyeOff = createLucideIcon("eye-off", __iconNode$1P);
81442
81866
 
81443
81867
  /**
81444
81868
  * @license lucide-react v0.528.0 - ISC
@@ -81448,7 +81872,7 @@ const EyeOff = createLucideIcon("eye-off", __iconNode$1L);
81448
81872
  */
81449
81873
 
81450
81874
 
81451
- const __iconNode$1K = [
81875
+ const __iconNode$1O = [
81452
81876
  [
81453
81877
  "path",
81454
81878
  {
@@ -81458,7 +81882,7 @@ const __iconNode$1K = [
81458
81882
  ],
81459
81883
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
81460
81884
  ];
81461
- const Eye = createLucideIcon("eye", __iconNode$1K);
81885
+ const Eye = createLucideIcon("eye", __iconNode$1O);
81462
81886
 
81463
81887
  /**
81464
81888
  * @license lucide-react v0.528.0 - ISC
@@ -81468,7 +81892,7 @@ const Eye = createLucideIcon("eye", __iconNode$1K);
81468
81892
  */
81469
81893
 
81470
81894
 
81471
- const __iconNode$1J = [
81895
+ const __iconNode$1N = [
81472
81896
  ["path", { d: "M10 12v-1", key: "v7bkov" }],
81473
81897
  ["path", { d: "M10 18v-2", key: "1cjy8d" }],
81474
81898
  ["path", { d: "M10 7V6", key: "dljcrl" }],
@@ -81479,7 +81903,7 @@ const __iconNode$1J = [
81479
81903
  ],
81480
81904
  ["circle", { cx: "10", cy: "20", r: "2", key: "1xzdoj" }]
81481
81905
  ];
81482
- const FileArchive = createLucideIcon("file-archive", __iconNode$1J);
81906
+ const FileArchive = createLucideIcon("file-archive", __iconNode$1N);
81483
81907
 
81484
81908
  /**
81485
81909
  * @license lucide-react v0.528.0 - ISC
@@ -81489,7 +81913,7 @@ const FileArchive = createLucideIcon("file-archive", __iconNode$1J);
81489
81913
  */
81490
81914
 
81491
81915
 
81492
- const __iconNode$1I = [
81916
+ const __iconNode$1M = [
81493
81917
  ["path", { d: "M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3", key: "rslqgf" }],
81494
81918
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81495
81919
  [
@@ -81500,7 +81924,7 @@ const __iconNode$1I = [
81500
81924
  }
81501
81925
  ]
81502
81926
  ];
81503
- const FileAudio = createLucideIcon("file-audio", __iconNode$1I);
81927
+ const FileAudio = createLucideIcon("file-audio", __iconNode$1M);
81504
81928
 
81505
81929
  /**
81506
81930
  * @license lucide-react v0.528.0 - ISC
@@ -81510,13 +81934,13 @@ const FileAudio = createLucideIcon("file-audio", __iconNode$1I);
81510
81934
  */
81511
81935
 
81512
81936
 
81513
- const __iconNode$1H = [
81937
+ const __iconNode$1L = [
81514
81938
  ["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
81515
81939
  ["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }],
81516
81940
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81517
81941
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }]
81518
81942
  ];
81519
- const FileCode = createLucideIcon("file-code", __iconNode$1H);
81943
+ const FileCode = createLucideIcon("file-code", __iconNode$1L);
81520
81944
 
81521
81945
  /**
81522
81946
  * @license lucide-react v0.528.0 - ISC
@@ -81526,13 +81950,13 @@ const FileCode = createLucideIcon("file-code", __iconNode$1H);
81526
81950
  */
81527
81951
 
81528
81952
 
81529
- const __iconNode$1G = [
81953
+ const __iconNode$1K = [
81530
81954
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
81531
81955
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81532
81956
  ["path", { d: "M12 18v-6", key: "17g6i2" }],
81533
81957
  ["path", { d: "m9 15 3 3 3-3", key: "1npd3o" }]
81534
81958
  ];
81535
- const FileDown = createLucideIcon("file-down", __iconNode$1G);
81959
+ const FileDown = createLucideIcon("file-down", __iconNode$1K);
81536
81960
 
81537
81961
  /**
81538
81962
  * @license lucide-react v0.528.0 - ISC
@@ -81542,13 +81966,13 @@ const FileDown = createLucideIcon("file-down", __iconNode$1G);
81542
81966
  */
81543
81967
 
81544
81968
 
81545
- const __iconNode$1F = [
81969
+ const __iconNode$1J = [
81546
81970
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
81547
81971
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81548
81972
  ["circle", { cx: "10", cy: "12", r: "2", key: "737tya" }],
81549
81973
  ["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22", key: "wt3hpn" }]
81550
81974
  ];
81551
- const FileImage = createLucideIcon("file-image", __iconNode$1F);
81975
+ const FileImage = createLucideIcon("file-image", __iconNode$1J);
81552
81976
 
81553
81977
  /**
81554
81978
  * @license lucide-react v0.528.0 - ISC
@@ -81558,7 +81982,7 @@ const FileImage = createLucideIcon("file-image", __iconNode$1F);
81558
81982
  */
81559
81983
 
81560
81984
 
81561
- const __iconNode$1E = [
81985
+ const __iconNode$1I = [
81562
81986
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81563
81987
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }],
81564
81988
  [
@@ -81569,7 +81993,7 @@ const __iconNode$1E = [
81569
81993
  }
81570
81994
  ]
81571
81995
  ];
81572
- const FilePlay = createLucideIcon("file-play", __iconNode$1E);
81996
+ const FilePlay = createLucideIcon("file-play", __iconNode$1I);
81573
81997
 
81574
81998
  /**
81575
81999
  * @license lucide-react v0.528.0 - ISC
@@ -81579,7 +82003,7 @@ const FilePlay = createLucideIcon("file-play", __iconNode$1E);
81579
82003
  */
81580
82004
 
81581
82005
 
81582
- const __iconNode$1D = [
82006
+ const __iconNode$1H = [
81583
82007
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
81584
82008
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81585
82009
  ["path", { d: "M8 13h2", key: "yr2amv" }],
@@ -81587,7 +82011,7 @@ const __iconNode$1D = [
81587
82011
  ["path", { d: "M8 17h2", key: "2yhykz" }],
81588
82012
  ["path", { d: "M14 17h2", key: "10kma7" }]
81589
82013
  ];
81590
- const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1D);
82014
+ const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1H);
81591
82015
 
81592
82016
  /**
81593
82017
  * @license lucide-react v0.528.0 - ISC
@@ -81597,14 +82021,14 @@ const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1D);
81597
82021
  */
81598
82022
 
81599
82023
 
81600
- const __iconNode$1C = [
82024
+ const __iconNode$1G = [
81601
82025
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
81602
82026
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
81603
82027
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
81604
82028
  ["path", { d: "M16 13H8", key: "t4e002" }],
81605
82029
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
81606
82030
  ];
81607
- const FileText = createLucideIcon("file-text", __iconNode$1C);
82031
+ const FileText = createLucideIcon("file-text", __iconNode$1G);
81608
82032
 
81609
82033
  /**
81610
82034
  * @license lucide-react v0.528.0 - ISC
@@ -81614,11 +82038,11 @@ const FileText = createLucideIcon("file-text", __iconNode$1C);
81614
82038
  */
81615
82039
 
81616
82040
 
81617
- const __iconNode$1B = [
82041
+ const __iconNode$1F = [
81618
82042
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
81619
82043
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
81620
82044
  ];
81621
- const File$1 = createLucideIcon("file", __iconNode$1B);
82045
+ const File$1 = createLucideIcon("file", __iconNode$1F);
81622
82046
 
81623
82047
  /**
81624
82048
  * @license lucide-react v0.528.0 - ISC
@@ -81628,7 +82052,7 @@ const File$1 = createLucideIcon("file", __iconNode$1B);
81628
82052
  */
81629
82053
 
81630
82054
 
81631
- const __iconNode$1A = [
82055
+ const __iconNode$1E = [
81632
82056
  [
81633
82057
  "path",
81634
82058
  {
@@ -81646,7 +82070,7 @@ const __iconNode$1A = [
81646
82070
  ["path", { d: "M3 5a2 2 0 0 0 2 2h3", key: "f2jnh7" }],
81647
82071
  ["path", { d: "M3 3v13a2 2 0 0 0 2 2h3", key: "k8epm1" }]
81648
82072
  ];
81649
- const FolderTree = createLucideIcon("folder-tree", __iconNode$1A);
82073
+ const FolderTree = createLucideIcon("folder-tree", __iconNode$1E);
81650
82074
 
81651
82075
  /**
81652
82076
  * @license lucide-react v0.528.0 - ISC
@@ -81656,11 +82080,11 @@ const FolderTree = createLucideIcon("folder-tree", __iconNode$1A);
81656
82080
  */
81657
82081
 
81658
82082
 
81659
- const __iconNode$1z = [
82083
+ const __iconNode$1D = [
81660
82084
  ["path", { d: "m12 14 4-4", key: "9kzdfg" }],
81661
82085
  ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0", key: "19p75a" }]
81662
82086
  ];
81663
- const Gauge = createLucideIcon("gauge", __iconNode$1z);
82087
+ const Gauge = createLucideIcon("gauge", __iconNode$1D);
81664
82088
 
81665
82089
  /**
81666
82090
  * @license lucide-react v0.528.0 - ISC
@@ -81670,14 +82094,14 @@ const Gauge = createLucideIcon("gauge", __iconNode$1z);
81670
82094
  */
81671
82095
 
81672
82096
 
81673
- const __iconNode$1y = [
82097
+ const __iconNode$1C = [
81674
82098
  ["path", { d: "m14.5 12.5-8 8a2.119 2.119 0 1 1-3-3l8-8", key: "15492f" }],
81675
82099
  ["path", { d: "m16 16 6-6", key: "vzrcl6" }],
81676
82100
  ["path", { d: "m8 8 6-6", key: "18bi4p" }],
81677
82101
  ["path", { d: "m9 7 8 8", key: "5jnvq1" }],
81678
82102
  ["path", { d: "m21 11-8-8", key: "z4y7zo" }]
81679
82103
  ];
81680
- const Gavel = createLucideIcon("gavel", __iconNode$1y);
82104
+ const Gavel = createLucideIcon("gavel", __iconNode$1C);
81681
82105
 
81682
82106
  /**
81683
82107
  * @license lucide-react v0.528.0 - ISC
@@ -81687,13 +82111,13 @@ const Gavel = createLucideIcon("gavel", __iconNode$1y);
81687
82111
  */
81688
82112
 
81689
82113
 
81690
- const __iconNode$1x = [
82114
+ const __iconNode$1B = [
81691
82115
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
81692
82116
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
81693
82117
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
81694
82118
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
81695
82119
  ];
81696
- const GitBranch = createLucideIcon("git-branch", __iconNode$1x);
82120
+ const GitBranch = createLucideIcon("git-branch", __iconNode$1B);
81697
82121
 
81698
82122
  /**
81699
82123
  * @license lucide-react v0.528.0 - ISC
@@ -81703,12 +82127,12 @@ const GitBranch = createLucideIcon("git-branch", __iconNode$1x);
81703
82127
  */
81704
82128
 
81705
82129
 
81706
- const __iconNode$1w = [
82130
+ const __iconNode$1A = [
81707
82131
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81708
82132
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
81709
82133
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
81710
82134
  ];
81711
- const Globe = createLucideIcon("globe", __iconNode$1w);
82135
+ const Globe = createLucideIcon("globe", __iconNode$1A);
81712
82136
 
81713
82137
  /**
81714
82138
  * @license lucide-react v0.528.0 - ISC
@@ -81718,7 +82142,7 @@ const Globe = createLucideIcon("globe", __iconNode$1w);
81718
82142
  */
81719
82143
 
81720
82144
 
81721
- const __iconNode$1v = [
82145
+ const __iconNode$1z = [
81722
82146
  [
81723
82147
  "path",
81724
82148
  {
@@ -81729,7 +82153,7 @@ const __iconNode$1v = [
81729
82153
  ["path", { d: "M22 10v6", key: "1lu8f3" }],
81730
82154
  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
81731
82155
  ];
81732
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$1v);
82156
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$1z);
81733
82157
 
81734
82158
  /**
81735
82159
  * @license lucide-react v0.528.0 - ISC
@@ -81739,7 +82163,7 @@ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$1v);
81739
82163
  */
81740
82164
 
81741
82165
 
81742
- const __iconNode$1u = [
82166
+ const __iconNode$1y = [
81743
82167
  ["path", { d: "M14 18a2 2 0 0 0-4 0", key: "1v8fkw" }],
81744
82168
  [
81745
82169
  "path",
@@ -81752,7 +82176,7 @@ const __iconNode$1u = [
81752
82176
  ["circle", { cx: "17", cy: "18", r: "3", key: "82mm0e" }],
81753
82177
  ["circle", { cx: "7", cy: "18", r: "3", key: "lvkj7j" }]
81754
82178
  ];
81755
- const HatGlasses = createLucideIcon("hat-glasses", __iconNode$1u);
82179
+ const HatGlasses = createLucideIcon("hat-glasses", __iconNode$1y);
81756
82180
 
81757
82181
  /**
81758
82182
  * @license lucide-react v0.528.0 - ISC
@@ -81762,13 +82186,13 @@ const HatGlasses = createLucideIcon("hat-glasses", __iconNode$1u);
81762
82186
  */
81763
82187
 
81764
82188
 
81765
- const __iconNode$1t = [
82189
+ const __iconNode$1x = [
81766
82190
  ["path", { d: "M4 12h8", key: "17cfdx" }],
81767
82191
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
81768
82192
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
81769
82193
  ["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
81770
82194
  ];
81771
- const Heading1 = createLucideIcon("heading-1", __iconNode$1t);
82195
+ const Heading1 = createLucideIcon("heading-1", __iconNode$1x);
81772
82196
 
81773
82197
  /**
81774
82198
  * @license lucide-react v0.528.0 - ISC
@@ -81778,13 +82202,13 @@ const Heading1 = createLucideIcon("heading-1", __iconNode$1t);
81778
82202
  */
81779
82203
 
81780
82204
 
81781
- const __iconNode$1s = [
82205
+ const __iconNode$1w = [
81782
82206
  ["path", { d: "M4 12h8", key: "17cfdx" }],
81783
82207
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
81784
82208
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
81785
82209
  ["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", key: "9jr5yi" }]
81786
82210
  ];
81787
- const Heading2 = createLucideIcon("heading-2", __iconNode$1s);
82211
+ const Heading2 = createLucideIcon("heading-2", __iconNode$1w);
81788
82212
 
81789
82213
  /**
81790
82214
  * @license lucide-react v0.528.0 - ISC
@@ -81794,14 +82218,14 @@ const Heading2 = createLucideIcon("heading-2", __iconNode$1s);
81794
82218
  */
81795
82219
 
81796
82220
 
81797
- const __iconNode$1r = [
82221
+ const __iconNode$1v = [
81798
82222
  ["path", { d: "M4 12h8", key: "17cfdx" }],
81799
82223
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
81800
82224
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
81801
82225
  ["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", key: "68ncm8" }],
81802
82226
  ["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", key: "1ejuhz" }]
81803
82227
  ];
81804
- const Heading3 = createLucideIcon("heading-3", __iconNode$1r);
82228
+ const Heading3 = createLucideIcon("heading-3", __iconNode$1v);
81805
82229
 
81806
82230
  /**
81807
82231
  * @license lucide-react v0.528.0 - ISC
@@ -81811,12 +82235,12 @@ const Heading3 = createLucideIcon("heading-3", __iconNode$1r);
81811
82235
  */
81812
82236
 
81813
82237
 
81814
- const __iconNode$1q = [
82238
+ const __iconNode$1u = [
81815
82239
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
81816
82240
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
81817
82241
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
81818
82242
  ];
81819
- const History = createLucideIcon("history", __iconNode$1q);
82243
+ const History = createLucideIcon("history", __iconNode$1u);
81820
82244
 
81821
82245
  /**
81822
82246
  * @license lucide-react v0.528.0 - ISC
@@ -81826,12 +82250,36 @@ const History = createLucideIcon("history", __iconNode$1q);
81826
82250
  */
81827
82251
 
81828
82252
 
81829
- const __iconNode$1p = [
82253
+ const __iconNode$1t = [
82254
+ ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }],
82255
+ ["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", key: "1bzlo9" }],
82256
+ ["line", { x1: "13.5", x2: "6", y1: "13.5", y2: "21", key: "1q0aeu" }],
82257
+ ["line", { x1: "18", x2: "21", y1: "12", y2: "15", key: "5mozeu" }],
82258
+ [
82259
+ "path",
82260
+ {
82261
+ d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",
82262
+ key: "mmje98"
82263
+ }
82264
+ ],
82265
+ ["path", { d: "M21 15V5a2 2 0 0 0-2-2H9", key: "43el77" }]
82266
+ ];
82267
+ const ImageOff = createLucideIcon("image-off", __iconNode$1t);
82268
+
82269
+ /**
82270
+ * @license lucide-react v0.528.0 - ISC
82271
+ *
82272
+ * This source code is licensed under the ISC license.
82273
+ * See the LICENSE file in the root directory of this source tree.
82274
+ */
82275
+
82276
+
82277
+ const __iconNode$1s = [
81830
82278
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
81831
82279
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
81832
82280
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
81833
82281
  ];
81834
- const Image$3 = createLucideIcon("image", __iconNode$1p);
82282
+ const Image$3 = createLucideIcon("image", __iconNode$1s);
81835
82283
 
81836
82284
  /**
81837
82285
  * @license lucide-react v0.528.0 - ISC
@@ -81841,7 +82289,7 @@ const Image$3 = createLucideIcon("image", __iconNode$1p);
81841
82289
  */
81842
82290
 
81843
82291
 
81844
- const __iconNode$1o = [
82292
+ const __iconNode$1r = [
81845
82293
  ["polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12", key: "o97t9d" }],
81846
82294
  [
81847
82295
  "path",
@@ -81851,7 +82299,7 @@ const __iconNode$1o = [
81851
82299
  }
81852
82300
  ]
81853
82301
  ];
81854
- const Inbox = createLucideIcon("inbox", __iconNode$1o);
82302
+ const Inbox = createLucideIcon("inbox", __iconNode$1r);
81855
82303
 
81856
82304
  /**
81857
82305
  * @license lucide-react v0.528.0 - ISC
@@ -81861,12 +82309,12 @@ const Inbox = createLucideIcon("inbox", __iconNode$1o);
81861
82309
  */
81862
82310
 
81863
82311
 
81864
- const __iconNode$1n = [
82312
+ const __iconNode$1q = [
81865
82313
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
81866
82314
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
81867
82315
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
81868
82316
  ];
81869
- const Info$3 = createLucideIcon("info", __iconNode$1n);
82317
+ const Info$3 = createLucideIcon("info", __iconNode$1q);
81870
82318
 
81871
82319
  /**
81872
82320
  * @license lucide-react v0.528.0 - ISC
@@ -81876,12 +82324,12 @@ const Info$3 = createLucideIcon("info", __iconNode$1n);
81876
82324
  */
81877
82325
 
81878
82326
 
81879
- const __iconNode$1m = [
82327
+ const __iconNode$1p = [
81880
82328
  ["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
81881
82329
  ["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
81882
82330
  ["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
81883
82331
  ];
81884
- const Italic$1 = createLucideIcon("italic", __iconNode$1m);
82332
+ const Italic$1 = createLucideIcon("italic", __iconNode$1p);
81885
82333
 
81886
82334
  /**
81887
82335
  * @license lucide-react v0.528.0 - ISC
@@ -81891,7 +82339,7 @@ const Italic$1 = createLucideIcon("italic", __iconNode$1m);
81891
82339
  */
81892
82340
 
81893
82341
 
81894
- const __iconNode$1l = [
82342
+ const __iconNode$1o = [
81895
82343
  [
81896
82344
  "path",
81897
82345
  {
@@ -81901,7 +82349,7 @@ const __iconNode$1l = [
81901
82349
  ],
81902
82350
  ["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
81903
82351
  ];
81904
- const KeyRound = createLucideIcon("key-round", __iconNode$1l);
82352
+ const KeyRound = createLucideIcon("key-round", __iconNode$1o);
81905
82353
 
81906
82354
  /**
81907
82355
  * @license lucide-react v0.528.0 - ISC
@@ -81911,7 +82359,7 @@ const KeyRound = createLucideIcon("key-round", __iconNode$1l);
81911
82359
  */
81912
82360
 
81913
82361
 
81914
- const __iconNode$1k = [
82362
+ const __iconNode$1n = [
81915
82363
  ["path", { d: "M10 18v-7", key: "wt116b" }],
81916
82364
  [
81917
82365
  "path",
@@ -81925,7 +82373,7 @@ const __iconNode$1k = [
81925
82373
  ["path", { d: "M3 22h18", key: "8prr45" }],
81926
82374
  ["path", { d: "M6 18v-7", key: "1ivflk" }]
81927
82375
  ];
81928
- const Landmark = createLucideIcon("landmark", __iconNode$1k);
82376
+ const Landmark = createLucideIcon("landmark", __iconNode$1n);
81929
82377
 
81930
82378
  /**
81931
82379
  * @license lucide-react v0.528.0 - ISC
@@ -81935,7 +82383,7 @@ const Landmark = createLucideIcon("landmark", __iconNode$1k);
81935
82383
  */
81936
82384
 
81937
82385
 
81938
- const __iconNode$1j = [
82386
+ const __iconNode$1m = [
81939
82387
  [
81940
82388
  "path",
81941
82389
  {
@@ -81958,7 +82406,7 @@ const __iconNode$1j = [
81958
82406
  }
81959
82407
  ]
81960
82408
  ];
81961
- const Layers = createLucideIcon("layers", __iconNode$1j);
82409
+ const Layers = createLucideIcon("layers", __iconNode$1m);
81962
82410
 
81963
82411
  /**
81964
82412
  * @license lucide-react v0.528.0 - ISC
@@ -81968,13 +82416,13 @@ const Layers = createLucideIcon("layers", __iconNode$1j);
81968
82416
  */
81969
82417
 
81970
82418
 
81971
- const __iconNode$1i = [
82419
+ const __iconNode$1l = [
81972
82420
  ["rect", { width: "7", height: "9", x: "3", y: "3", rx: "1", key: "10lvy0" }],
81973
82421
  ["rect", { width: "7", height: "5", x: "14", y: "3", rx: "1", key: "16une8" }],
81974
82422
  ["rect", { width: "7", height: "9", x: "14", y: "12", rx: "1", key: "1hutg5" }],
81975
82423
  ["rect", { width: "7", height: "5", x: "3", y: "16", rx: "1", key: "ldoo1y" }]
81976
82424
  ];
81977
- const LayoutDashboard = createLucideIcon("layout-dashboard", __iconNode$1i);
82425
+ const LayoutDashboard = createLucideIcon("layout-dashboard", __iconNode$1l);
81978
82426
 
81979
82427
  /**
81980
82428
  * @license lucide-react v0.528.0 - ISC
@@ -81984,12 +82432,12 @@ const LayoutDashboard = createLucideIcon("layout-dashboard", __iconNode$1i);
81984
82432
  */
81985
82433
 
81986
82434
 
81987
- const __iconNode$1h = [
82435
+ const __iconNode$1k = [
81988
82436
  ["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
81989
82437
  ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
81990
82438
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
81991
82439
  ];
81992
- const Link2 = createLucideIcon("link-2", __iconNode$1h);
82440
+ const Link2 = createLucideIcon("link-2", __iconNode$1k);
81993
82441
 
81994
82442
  /**
81995
82443
  * @license lucide-react v0.528.0 - ISC
@@ -81999,11 +82447,11 @@ const Link2 = createLucideIcon("link-2", __iconNode$1h);
81999
82447
  */
82000
82448
 
82001
82449
 
82002
- const __iconNode$1g = [
82450
+ const __iconNode$1j = [
82003
82451
  ["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
82004
82452
  ["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
82005
82453
  ];
82006
- const Link$1 = createLucideIcon("link", __iconNode$1g);
82454
+ const Link$1 = createLucideIcon("link", __iconNode$1j);
82007
82455
 
82008
82456
  /**
82009
82457
  * @license lucide-react v0.528.0 - ISC
@@ -82013,7 +82461,7 @@ const Link$1 = createLucideIcon("link", __iconNode$1g);
82013
82461
  */
82014
82462
 
82015
82463
 
82016
- const __iconNode$1f = [
82464
+ const __iconNode$1i = [
82017
82465
  ["path", { d: "M10 12h11", key: "6m4ad9" }],
82018
82466
  ["path", { d: "M10 18h11", key: "11hvi2" }],
82019
82467
  ["path", { d: "M10 6h11", key: "c7qv1k" }],
@@ -82021,7 +82469,7 @@ const __iconNode$1f = [
82021
82469
  ["path", { d: "M4 6h1v4", key: "cnovpq" }],
82022
82470
  ["path", { d: "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1", key: "m9a95d" }]
82023
82471
  ];
82024
- const ListOrdered = createLucideIcon("list-ordered", __iconNode$1f);
82472
+ const ListOrdered = createLucideIcon("list-ordered", __iconNode$1i);
82025
82473
 
82026
82474
  /**
82027
82475
  * @license lucide-react v0.528.0 - ISC
@@ -82031,7 +82479,7 @@ const ListOrdered = createLucideIcon("list-ordered", __iconNode$1f);
82031
82479
  */
82032
82480
 
82033
82481
 
82034
- const __iconNode$1e = [
82482
+ const __iconNode$1h = [
82035
82483
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
82036
82484
  ["path", { d: "M3 18h.01", key: "1tta3j" }],
82037
82485
  ["path", { d: "M3 6h.01", key: "1rqtza" }],
@@ -82039,7 +82487,7 @@ const __iconNode$1e = [
82039
82487
  ["path", { d: "M8 18h13", key: "1lx6n3" }],
82040
82488
  ["path", { d: "M8 6h13", key: "ik3vkj" }]
82041
82489
  ];
82042
- const List$1 = createLucideIcon("list", __iconNode$1e);
82490
+ const List$1 = createLucideIcon("list", __iconNode$1h);
82043
82491
 
82044
82492
  /**
82045
82493
  * @license lucide-react v0.528.0 - ISC
@@ -82049,8 +82497,8 @@ const List$1 = createLucideIcon("list", __iconNode$1e);
82049
82497
  */
82050
82498
 
82051
82499
 
82052
- const __iconNode$1d = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
82053
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$1d);
82500
+ const __iconNode$1g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
82501
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$1g);
82054
82502
 
82055
82503
  /**
82056
82504
  * @license lucide-react v0.528.0 - ISC
@@ -82060,11 +82508,11 @@ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$1d);
82060
82508
  */
82061
82509
 
82062
82510
 
82063
- const __iconNode$1c = [
82511
+ const __iconNode$1f = [
82064
82512
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
82065
82513
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
82066
82514
  ];
82067
- const Lock = createLucideIcon("lock", __iconNode$1c);
82515
+ const Lock = createLucideIcon("lock", __iconNode$1f);
82068
82516
 
82069
82517
  /**
82070
82518
  * @license lucide-react v0.528.0 - ISC
@@ -82074,11 +82522,11 @@ const Lock = createLucideIcon("lock", __iconNode$1c);
82074
82522
  */
82075
82523
 
82076
82524
 
82077
- const __iconNode$1b = [
82525
+ const __iconNode$1e = [
82078
82526
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
82079
82527
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
82080
82528
  ];
82081
- const Mail = createLucideIcon("mail", __iconNode$1b);
82529
+ const Mail = createLucideIcon("mail", __iconNode$1e);
82082
82530
 
82083
82531
  /**
82084
82532
  * @license lucide-react v0.528.0 - ISC
@@ -82088,10 +82536,10 @@ const Mail = createLucideIcon("mail", __iconNode$1b);
82088
82536
  */
82089
82537
 
82090
82538
 
82091
- const __iconNode$1a = [
82539
+ const __iconNode$1d = [
82092
82540
  ["path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z", key: "1lielz" }]
82093
82541
  ];
82094
- const MessageSquare = createLucideIcon("message-square", __iconNode$1a);
82542
+ const MessageSquare = createLucideIcon("message-square", __iconNode$1d);
82095
82543
 
82096
82544
  /**
82097
82545
  * @license lucide-react v0.528.0 - ISC
@@ -82101,12 +82549,12 @@ const MessageSquare = createLucideIcon("message-square", __iconNode$1a);
82101
82549
  */
82102
82550
 
82103
82551
 
82104
- const __iconNode$19 = [
82552
+ const __iconNode$1c = [
82105
82553
  ["path", { d: "M12 19v3", key: "npa21l" }],
82106
82554
  ["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
82107
82555
  ["rect", { x: "9", y: "2", width: "6", height: "13", rx: "3", key: "s6n7sd" }]
82108
82556
  ];
82109
- const Mic = createLucideIcon("mic", __iconNode$19);
82557
+ const Mic = createLucideIcon("mic", __iconNode$1c);
82110
82558
 
82111
82559
  /**
82112
82560
  * @license lucide-react v0.528.0 - ISC
@@ -82116,12 +82564,23 @@ const Mic = createLucideIcon("mic", __iconNode$19);
82116
82564
  */
82117
82565
 
82118
82566
 
82119
- const __iconNode$18 = [
82567
+ const __iconNode$1b = [["path", { d: "M5 12h14", key: "1ays0h" }]];
82568
+ const Minus = createLucideIcon("minus", __iconNode$1b);
82569
+
82570
+ /**
82571
+ * @license lucide-react v0.528.0 - ISC
82572
+ *
82573
+ * This source code is licensed under the ISC license.
82574
+ * See the LICENSE file in the root directory of this source tree.
82575
+ */
82576
+
82577
+
82578
+ const __iconNode$1a = [
82120
82579
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
82121
82580
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
82122
82581
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
82123
82582
  ];
82124
- const Monitor = createLucideIcon("monitor", __iconNode$18);
82583
+ const Monitor = createLucideIcon("monitor", __iconNode$1a);
82125
82584
 
82126
82585
  /**
82127
82586
  * @license lucide-react v0.528.0 - ISC
@@ -82131,12 +82590,32 @@ const Monitor = createLucideIcon("monitor", __iconNode$18);
82131
82590
  */
82132
82591
 
82133
82592
 
82134
- const __iconNode$17 = [
82593
+ const __iconNode$19 = [
82594
+ ["path", { d: "M12.586 12.586 19 19", key: "ea5xo7" }],
82595
+ [
82596
+ "path",
82597
+ {
82598
+ d: "M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",
82599
+ key: "277e5u"
82600
+ }
82601
+ ]
82602
+ ];
82603
+ const MousePointer = createLucideIcon("mouse-pointer", __iconNode$19);
82604
+
82605
+ /**
82606
+ * @license lucide-react v0.528.0 - ISC
82607
+ *
82608
+ * This source code is licensed under the ISC license.
82609
+ * See the LICENSE file in the root directory of this source tree.
82610
+ */
82611
+
82612
+
82613
+ const __iconNode$18 = [
82135
82614
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
82136
82615
  ["path", { d: "M3 9h18", key: "1pudct" }],
82137
82616
  ["path", { d: "M9 21V9", key: "1oto5p" }]
82138
82617
  ];
82139
- const PanelsTopLeft = createLucideIcon("panels-top-left", __iconNode$17);
82618
+ const PanelsTopLeft = createLucideIcon("panels-top-left", __iconNode$18);
82140
82619
 
82141
82620
  /**
82142
82621
  * @license lucide-react v0.528.0 - ISC
@@ -82146,7 +82625,7 @@ const PanelsTopLeft = createLucideIcon("panels-top-left", __iconNode$17);
82146
82625
  */
82147
82626
 
82148
82627
 
82149
- const __iconNode$16 = [
82628
+ const __iconNode$17 = [
82150
82629
  [
82151
82630
  "path",
82152
82631
  {
@@ -82155,7 +82634,21 @@ const __iconNode$16 = [
82155
82634
  }
82156
82635
  ]
82157
82636
  ];
82158
- const Paperclip = createLucideIcon("paperclip", __iconNode$16);
82637
+ const Paperclip = createLucideIcon("paperclip", __iconNode$17);
82638
+
82639
+ /**
82640
+ * @license lucide-react v0.528.0 - ISC
82641
+ *
82642
+ * This source code is licensed under the ISC license.
82643
+ * See the LICENSE file in the root directory of this source tree.
82644
+ */
82645
+
82646
+
82647
+ const __iconNode$16 = [
82648
+ ["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
82649
+ ["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
82650
+ ];
82651
+ const Pause = createLucideIcon("pause", __iconNode$16);
82159
82652
 
82160
82653
  /**
82161
82654
  * @license lucide-react v0.528.0 - ISC
@@ -83533,7 +84026,7 @@ const cva = (base, config)=>(props)=>{
83533
84026
  return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
83534
84027
  };
83535
84028
 
83536
- const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
84029
+ const buttonVariants$1 = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
83537
84030
  variants: {
83538
84031
  variant: {
83539
84032
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
@@ -83557,7 +84050,7 @@ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whites
83557
84050
  });
83558
84051
  const Button$1 = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
83559
84052
  const Comp = asChild ? Slot$4 : "button";
83560
- return (jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props }));
84053
+ return (jsx(Comp, { className: cn(buttonVariants$1({ variant, size, className })), ref: ref, ...props }));
83561
84054
  });
83562
84055
  Button$1.displayName = "Button";
83563
84056
 
@@ -90326,6 +90819,258 @@ function useCuaDriver() {
90326
90819
  };
90327
90820
  }
90328
90821
 
90822
+ const DRAGGABLE_SNAP_TRANSITION = 'right 350ms cubic-bezier(0.34, 1.56, 0.64, 1), bottom 350ms cubic-bezier(0.34, 1.56, 0.64, 1)';
90823
+ const VERTICAL_KEYS = { ArrowUp: 1, ArrowDown: -1 };
90824
+ const SIDE_KEYS = {
90825
+ ArrowLeft: 'left',
90826
+ ArrowRight: 'right',
90827
+ };
90828
+ function isAnchor(value) {
90829
+ if (!value || typeof value !== 'object')
90830
+ return false;
90831
+ const { side, bottom } = value;
90832
+ return ((side === 'left' || side === 'right') && typeof bottom === 'number' && Number.isFinite(bottom));
90833
+ }
90834
+ function readStored(storageKey) {
90835
+ try {
90836
+ const raw = window.localStorage.getItem(storageKey);
90837
+ if (!raw)
90838
+ return null;
90839
+ const parsed = JSON.parse(raw);
90840
+ return isAnchor(parsed) ? { side: parsed.side, bottom: parsed.bottom } : null;
90841
+ }
90842
+ catch (_a) {
90843
+ return null;
90844
+ }
90845
+ }
90846
+ function writeStored(storageKey, value) {
90847
+ try {
90848
+ if (value)
90849
+ window.localStorage.setItem(storageKey, JSON.stringify(value));
90850
+ else
90851
+ window.localStorage.removeItem(storageKey);
90852
+ }
90853
+ catch (_a) {
90854
+ // Storage unavailable (private mode, quota, blocked): keep it in memory.
90855
+ }
90856
+ }
90857
+ function prefersReducedMotion() {
90858
+ return (typeof window.matchMedia === 'function' &&
90859
+ window.matchMedia('(prefers-reduced-motion: reduce)').matches);
90860
+ }
90861
+ function viewportSize() {
90862
+ var _a, _b;
90863
+ const vv = window.visualViewport;
90864
+ return {
90865
+ width: (_a = vv === null || vv === void 0 ? void 0 : vv.width) !== null && _a !== void 0 ? _a : window.innerWidth,
90866
+ height: (_b = vv === null || vv === void 0 ? void 0 : vv.height) !== null && _b !== void 0 ? _b : window.innerHeight,
90867
+ };
90868
+ }
90869
+ function useDraggablePosition({ storageKey, threshold = 5, margin = 8, step = 16, }) {
90870
+ const ref = useRef(null);
90871
+ // Viewport changes only re-derive `position` from `stored`, so the element
90872
+ // stays on its side and rotating back restores its height.
90873
+ const [stored, setStored] = useState(null);
90874
+ const [position, setPosition] = useState(null);
90875
+ const [announcement, setAnnouncement] = useState(null);
90876
+ // Never animate while dragging (must track the pointer 1:1) nor on the
90877
+ // initial restore.
90878
+ const [animate, setAnimate] = useState(false);
90879
+ const storedRef = useRef(null);
90880
+ const positionRef = useRef(null);
90881
+ const pressRef = useRef(null);
90882
+ const suppressClickRef = useRef(false);
90883
+ const clamp = useCallback((p) => {
90884
+ var _a, _b, _c;
90885
+ const rect = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
90886
+ const { width, height } = viewportSize();
90887
+ const maxRight = width - ((_b = rect === null || rect === void 0 ? void 0 : rect.width) !== null && _b !== void 0 ? _b : 0) - margin;
90888
+ const maxBottom = height - ((_c = rect === null || rect === void 0 ? void 0 : rect.height) !== null && _c !== void 0 ? _c : 0) - margin;
90889
+ return {
90890
+ right: Math.max(margin, Math.min(p.right, maxRight)),
90891
+ bottom: Math.max(margin, Math.min(p.bottom, maxBottom)),
90892
+ };
90893
+ }, [margin]);
90894
+ const resolve = useCallback((a) => {
90895
+ var _a, _b;
90896
+ const width = (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) !== null && _b !== void 0 ? _b : 0;
90897
+ return clamp({
90898
+ right: a.side === 'right' ? margin : viewportSize().width - width - margin,
90899
+ bottom: a.bottom,
90900
+ });
90901
+ }, [clamp, margin]);
90902
+ const render = useCallback((p) => {
90903
+ positionRef.current = p;
90904
+ setPosition(p);
90905
+ }, []);
90906
+ const commit = useCallback((a) => {
90907
+ storedRef.current = a;
90908
+ setStored(a);
90909
+ writeStored(storageKey, a);
90910
+ }, [storageKey]);
90911
+ const currentPosition = useCallback(() => {
90912
+ var _a, _b, _c;
90913
+ if (positionRef.current)
90914
+ return positionRef.current;
90915
+ const rect = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
90916
+ const { width, height } = viewportSize();
90917
+ return {
90918
+ right: width - ((_b = rect === null || rect === void 0 ? void 0 : rect.right) !== null && _b !== void 0 ? _b : width),
90919
+ bottom: height - ((_c = rect === null || rect === void 0 ? void 0 : rect.bottom) !== null && _c !== void 0 ? _c : height),
90920
+ };
90921
+ }, []);
90922
+ // An exact tie goes right, the default side.
90923
+ const nearestSide = useCallback((p) => {
90924
+ var _a, _b;
90925
+ const width = (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) !== null && _b !== void 0 ? _b : 0;
90926
+ const viewportWidth = viewportSize().width;
90927
+ const centre = viewportWidth - p.right - width / 2;
90928
+ return centre < viewportWidth / 2 ? 'left' : 'right';
90929
+ }, []);
90930
+ const settle = useCallback((a) => {
90931
+ const next = resolve(a);
90932
+ const anchor = { side: a.side, bottom: next.bottom };
90933
+ setAnimate(true);
90934
+ render(next);
90935
+ commit(anchor);
90936
+ return anchor;
90937
+ }, [commit, render, resolve]);
90938
+ const place = useCallback((a) => setAnnouncement(settle(a)), [settle]);
90939
+ useEffect(() => {
90940
+ const saved = readStored(storageKey);
90941
+ storedRef.current = saved;
90942
+ setStored(saved);
90943
+ render(saved && resolve(saved));
90944
+ const reclamp = () => {
90945
+ if (storedRef.current)
90946
+ render(resolve(storedRef.current));
90947
+ };
90948
+ const vv = window.visualViewport;
90949
+ window.addEventListener('resize', reclamp);
90950
+ window.addEventListener('orientationchange', reclamp);
90951
+ vv === null || vv === void 0 ? void 0 : vv.addEventListener('resize', reclamp);
90952
+ return () => {
90953
+ window.removeEventListener('resize', reclamp);
90954
+ window.removeEventListener('orientationchange', reclamp);
90955
+ vv === null || vv === void 0 ? void 0 : vv.removeEventListener('resize', reclamp);
90956
+ };
90957
+ }, [storageKey, resolve, render]);
90958
+ const onPointerDown = useCallback((e) => {
90959
+ if (!e.isPrimary || e.button !== 0)
90960
+ return;
90961
+ suppressClickRef.current = false;
90962
+ pressRef.current = {
90963
+ pointerId: e.pointerId,
90964
+ x: e.clientX,
90965
+ y: e.clientY,
90966
+ origin: currentPosition(),
90967
+ dragging: false,
90968
+ };
90969
+ }, [currentPosition]);
90970
+ const onPointerMove = useCallback((e) => {
90971
+ const press = pressRef.current;
90972
+ if (!press || press.pointerId !== e.pointerId)
90973
+ return;
90974
+ const dx = e.clientX - press.x;
90975
+ const dy = e.clientY - press.y;
90976
+ if (!press.dragging) {
90977
+ if (Math.hypot(dx, dy) < threshold)
90978
+ return;
90979
+ press.dragging = true;
90980
+ suppressClickRef.current = true;
90981
+ setAnimate(false);
90982
+ // Capture only once it is a real drag: capturing on pointerdown would
90983
+ // retarget a plain tap's click away from the button inside.
90984
+ try {
90985
+ e.currentTarget.setPointerCapture(e.pointerId);
90986
+ }
90987
+ catch (_a) {
90988
+ // Pointer already released; the drag still follows in-element moves.
90989
+ }
90990
+ }
90991
+ render(clamp({
90992
+ right: press.origin.right - dx,
90993
+ bottom: press.origin.bottom - dy,
90994
+ }));
90995
+ }, [clamp, render, threshold]);
90996
+ const endPress = useCallback((e) => {
90997
+ const press = pressRef.current;
90998
+ if (!press || press.pointerId !== e.pointerId)
90999
+ return;
91000
+ pressRef.current = null;
91001
+ if (!press.dragging)
91002
+ return;
91003
+ const released = positionRef.current;
91004
+ settle({ side: nearestSide(released), bottom: released.bottom });
91005
+ // A touch drag may never produce a click; don't let the flag swallow the
91006
+ // next genuine activation (e.g. Enter). Click, if any, fires before this.
91007
+ setTimeout(() => {
91008
+ suppressClickRef.current = false;
91009
+ }, 0);
91010
+ }, [nearestSide, settle]);
91011
+ const onClickCapture = useCallback((e) => {
91012
+ if (!suppressClickRef.current)
91013
+ return;
91014
+ suppressClickRef.current = false;
91015
+ e.preventDefault();
91016
+ e.stopPropagation();
91017
+ }, []);
91018
+ // A mouse press on a native-draggable child (e.g. an <img>) starts
91019
+ // HTML drag-and-drop, which fires pointercancel and kills our drag.
91020
+ const onDragStart = useCallback((e) => {
91021
+ e.preventDefault();
91022
+ }, []);
91023
+ const onKeyDown = useCallback((e) => {
91024
+ var _a, _b;
91025
+ const vertical = VERTICAL_KEYS[e.key];
91026
+ const side = SIDE_KEYS[e.key];
91027
+ if ((!vertical && !side) || e.altKey || e.ctrlKey || e.metaKey)
91028
+ return;
91029
+ e.preventDefault();
91030
+ const from = currentPosition();
91031
+ const distance = e.shiftKey ? step * 4 : step;
91032
+ place({
91033
+ side: (_b = side !== null && side !== void 0 ? side : (_a = storedRef.current) === null || _a === void 0 ? void 0 : _a.side) !== null && _b !== void 0 ? _b : nearestSide(from),
91034
+ bottom: from.bottom + (vertical !== null && vertical !== void 0 ? vertical : 0) * distance,
91035
+ });
91036
+ }, [currentPosition, nearestSide, place, step]);
91037
+ const moveToCorner = useCallback((corner) => {
91038
+ var _a, _b;
91039
+ const height = (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().height) !== null && _b !== void 0 ? _b : 0;
91040
+ place({
91041
+ side: corner.endsWith('right') ? 'right' : 'left',
91042
+ bottom: corner.startsWith('bottom') ? margin : viewportSize().height - height - margin,
91043
+ });
91044
+ }, [margin, place]);
91045
+ const reset = useCallback(() => {
91046
+ pressRef.current = null;
91047
+ setAnimate(false);
91048
+ render(null);
91049
+ commit(null);
91050
+ setAnnouncement(null);
91051
+ }, [commit, render]);
91052
+ return {
91053
+ ref,
91054
+ position,
91055
+ isCustom: stored !== null,
91056
+ announcement,
91057
+ /** CSS `transition` for the rendered offsets; undefined while dragging,
91058
+ * before any user move, and under prefers-reduced-motion. */
91059
+ transition: animate && position && !prefersReducedMotion() ? DRAGGABLE_SNAP_TRANSITION : undefined,
91060
+ reset,
91061
+ moveToCorner,
91062
+ handlers: {
91063
+ onPointerDown,
91064
+ onPointerMove,
91065
+ onPointerUp: endPress,
91066
+ onPointerCancel: endPress,
91067
+ onClickCapture,
91068
+ onDragStart,
91069
+ onKeyDown,
91070
+ },
91071
+ };
91072
+ }
91073
+
90329
91074
  const Input = React.forwardRef(({ className, type, ...props }, ref) => {
90330
91075
  return (jsx("input", { type: type, className: cn("border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ref: ref, ...props }));
90331
91076
  });
@@ -149231,7 +149976,7 @@ const PaginationContent = React.forwardRef(({ className, ...props }, ref) => (js
149231
149976
  PaginationContent.displayName = 'PaginationContent';
149232
149977
  const PaginationItem = React.forwardRef(({ className, ...props }, ref) => jsx("li", { ref: ref, className: cn('', className), ...props }));
149233
149978
  PaginationItem.displayName = 'PaginationItem';
149234
- const PaginationLink = ({ className, isActive, size = 'icon', ...props }) => (jsx("a", { "aria-current": isActive ? 'page' : undefined, className: cn(buttonVariants({
149979
+ const PaginationLink = ({ className, isActive, size = 'icon', ...props }) => (jsx("a", { "aria-current": isActive ? 'page' : undefined, className: cn(buttonVariants$1({
149235
149980
  variant: isActive ? 'outline' : 'ghost',
149236
149981
  size,
149237
149982
  }), className), ...props }));
@@ -149539,15 +150284,15 @@ function ChatPrivacyTab({ org, username }) {
149539
150284
  return (jsxs("div", { className: "space-y-4", "data-testid": "chat-privacy-tab-body", children: [jsxs("div", { children: [jsx("h4", { className: "text-sm font-semibold text-gray-700 dark:text-gray-300 tracking-wide", children: t('profileChatPrivacyTab.sectionHeading') }), jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: t('profileChatPrivacyTab.sectionDescription') })] }), jsx("div", { className: "space-y-3", children: CHAT_PRIVACY_MODES.map((mode) => {
149540
150285
  const { labelKey, descriptionKey, icon: Icon } = MODE_COPY[mode];
149541
150286
  const isSelected = pending === mode;
149542
- return (jsxs("button", { type: "button", "aria-pressed": isSelected, "data-testid": `chat-privacy-mode-${mode}`, "data-state": isSelected ? 'selected' : 'unselected', onClick: () => void handleSelect(mode), disabled: isUpdating || isPreview, className: cn('w-full flex items-start gap-3 rounded-lg border px-5 py-4 text-left transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-60', isSelected
150287
+ return (jsxs("button", { type: "button", "aria-pressed": isSelected, "data-testid": `chat-privacy-mode-${mode}`, "data-state": isSelected ? 'selected' : 'unselected', onClick: () => void handleSelect(mode), disabled: isUpdating || isPreview, className: cn('w-full flex flex-col gap-1 rounded-lg border px-5 py-4 text-left transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-60', isSelected
149543
150288
  ? 'border-blue-500 bg-blue-50/40 dark:bg-blue-950/20'
149544
- : 'border-gray-200 hover:bg-gray-50 dark:border-gray-800 dark:hover:bg-gray-800/40'), children: [jsx(Icon, { className: cn('h-5 w-5 mt-0.5 flex-shrink-0', isSelected
149545
- ? 'text-blue-600 dark:text-blue-400'
149546
- : 'text-gray-400 dark:text-gray-500'), "aria-hidden": "true" }), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { className: "flex items-center gap-2", children: jsx("span", { className: cn('text-sm font-medium', isSelected
149547
- ? 'text-blue-900 dark:text-blue-100'
149548
- : 'text-gray-900 dark:text-gray-100'), children: t(labelKey) }) }), jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: t(descriptionKey) })] }), jsx("span", { "aria-hidden": "true", className: cn('h-5 w-5 flex items-center justify-center rounded-full border-2 flex-shrink-0 mt-0.5 transition-colors', isSelected
149549
- ? 'border-blue-500 bg-blue-500'
149550
- : 'border-gray-300 dark:border-gray-600'), children: isSelected && jsx(Check, { className: "h-3 w-3 text-white", strokeWidth: 3 }) })] }, mode));
150289
+ : 'border-gray-200 hover:bg-gray-50 dark:border-gray-800 dark:hover:bg-gray-800/40'), children: [jsxs("span", { className: "flex w-full items-center gap-3", children: [jsx(Icon, { className: cn('h-4 w-4 flex-shrink-0', isSelected
150290
+ ? 'text-blue-600 dark:text-blue-400'
150291
+ : 'text-gray-400 dark:text-gray-500'), "aria-hidden": "true" }), jsx("span", { className: cn('min-w-0 flex-1 text-sm font-medium', isSelected
150292
+ ? 'text-blue-900 dark:text-blue-100'
150293
+ : 'text-gray-900 dark:text-gray-100'), children: t(labelKey) }), jsx("span", { "aria-hidden": "true", className: cn('h-5 w-5 flex items-center justify-center rounded-full border-2 flex-shrink-0 transition-colors', isSelected
150294
+ ? 'border-blue-500 bg-blue-500'
150295
+ : 'border-gray-300 dark:border-gray-600'), children: isSelected && jsx(Check, { className: "h-3 w-3 text-white", strokeWidth: 3 }) })] }), jsx("p", { className: "pl-7 pr-8 text-xs text-gray-500 dark:text-gray-400", children: t(descriptionKey) })] }, mode));
149551
150296
  }) })] }));
149552
150297
  }
149553
150298
 
@@ -239336,8 +240081,8 @@ function Calendar({ className, classNames, showOutsideDays = true, captionLayout
239336
240081
  months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),
239337
240082
  month: cn('flex flex-col w-full gap-4', defaultClassNames.month),
239338
240083
  nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),
239339
- button_previous: cn(buttonVariants({ variant: buttonVariant }), 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', defaultClassNames.button_previous),
239340
- button_next: cn(buttonVariants({ variant: buttonVariant }), 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', defaultClassNames.button_next),
240084
+ button_previous: cn(buttonVariants$1({ variant: buttonVariant }), 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', defaultClassNames.button_previous),
240085
+ button_next: cn(buttonVariants$1({ variant: buttonVariant }), 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', defaultClassNames.button_next),
239341
240086
  month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),
239342
240087
  dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),
239343
240088
  dropdown_root: cn('relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md', defaultClassNames.dropdown_root),
@@ -241756,7 +242501,7 @@ function Profile({ tenant, username, tenants, onClose, customization = {}, isAdm
241756
242501
  const { data: memsearchStatus, isError: isMemsearchStatusError } = useGetMemsearchStatusQuery({ org: tenant, userId: username }, { skip: !enableMemoryTab });
241757
242502
  // Show memory tab if enabled for this platform AND memsearch is enabled (or status API is unavailable)
241758
242503
  const isMemoryEnabled = enableMemoryTab && (isMemsearchStatusError || ((_a = memsearchStatus === null || memsearchStatus === void 0 ? void 0 : memsearchStatus.enable_memsearch) !== null && _a !== void 0 ? _a : false));
241759
- // The Private Mode tab only appears when the tenant has opted into user-controlled
242504
+ // The Privacy tab only appears when the tenant has opted into user-controlled
241760
242505
  // chat privacy. Backend returns { allow_user_chat_privacy_control: boolean }.
241761
242506
  const { data: chatPrivacyConfig } = useGetTenantChatPrivacyConfigQuery({ org: tenant, userId: username }, { skip: !tenant || !username });
241762
242507
  const isChatPrivacyEnabled = !!(chatPrivacyConfig === null || chatPrivacyConfig === void 0 ? void 0 : chatPrivacyConfig.allow_user_chat_privacy_control);
@@ -241838,7 +242583,7 @@ function Profile({ tenant, username, tenants, onClose, customization = {}, isAdm
241838
242583
  // id stays as 'privacy' so callers passing `targetTab='privacy'` and
241839
242584
  // any test selectors targeting #panel-privacy keep working. The
241840
242585
  // user-visible `label` is "Privacy"; the chat-privacy feature itself
241841
- // is still called "Private Mode" within the tab's content. It sits with
242586
+ // is still called "Incognito" within the tab's content. It sits with
241842
242587
  // the account controls, just above Security.
241843
242588
  ...(isChatPrivacyEnabled
241844
242589
  ? [
@@ -251202,9 +251947,9 @@ const AlertDialogTitle = React.forwardRef(({ className, ...props }, ref) => (jsx
251202
251947
  AlertDialogTitle.displayName = Title2.displayName;
251203
251948
  const AlertDialogDescription = React.forwardRef(({ className, ...props }, ref) => (jsx(Description2, { ref: ref, className: cn('text-muted-foreground text-sm', className), ...props })));
251204
251949
  AlertDialogDescription.displayName = Description2.displayName;
251205
- const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => (jsx(Action, { ref: ref, className: cn(buttonVariants(), className), ...props })));
251950
+ const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => (jsx(Action, { ref: ref, className: cn(buttonVariants$1(), className), ...props })));
251206
251951
  AlertDialogAction.displayName = Action.displayName;
251207
- const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => (jsx(Cancel, { ref: ref, className: cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className), ...props })));
251952
+ const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => (jsx(Cancel, { ref: ref, className: cn(buttonVariants$1({ variant: 'outline' }), 'mt-2 sm:mt-0', className), ...props })));
251208
251953
  AlertDialogCancel.displayName = Cancel.displayName;
251209
251954
 
251210
251955
  const hostedDomainStatus = (row) => {
@@ -259176,12 +259921,17 @@ function NotificationDisplay({ org, userId, isAdmin = false, selectedNotificatio
259176
259921
  } }), jsx(Dialog, { open: isMobileModalOpen, onOpenChange: setIsMobileModalOpen, children: jsx(DialogContent, { className: "max-h-[85vh] overflow-y-auto max-w-[95vw]", children: selectedNotification && (jsxs(Fragment$1, { children: [jsxs(DialogHeader, { children: [jsx(DialogTitle, { className: "text-xl font-semibold text-gray-900 pr-6 break-words", children: selectedNotification.title }), jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-500 pt-2", children: [jsx(Clock, { className: "h-4 w-4", "aria-hidden": "true" }), jsx("time", { dateTime: selectedNotification.timestamp.toISOString(), children: format$1(selectedNotification.timestamp, "MMMM d, yyyy 'at' h:mm a") })] })] }), jsx("div", { className: cn(notificationBodyClasses, 'mt-4'), dangerouslySetInnerHTML: { __html: sanitizeHtml(selectedNotification.body) }, "aria-labelledby": "mobile-notification-title", "data-testid": "notification-details-body-mobile" })] })) }) })] }));
259177
259922
  }
259178
259923
 
259924
+ const FALLBACK_ERROR_KEY = {
259925
+ startPrivateChat: 'chatPrivacyChatPrivacyToggle.toastCouldNotEnable',
259926
+ startNormalChat: 'chatPrivacyChatPrivacyToggle.toastCouldNotTurnOff',
259927
+ disableChatHistory: 'chatPrivacyChatPrivacyToggle.toastFailedToEnable',
259928
+ };
259179
259929
  /**
259180
- * **Private mode** toggle for the platform nav-bar. A single pill that
259930
+ * **Incognito** toggle for the platform nav-bar. A single pill that
259181
259931
  * collapses to an icon-only chip when off, and expands with a cool
259182
- * animation to icon + "Private Mode" label when on. Per the chat-
259932
+ * animation to icon + "Incognito" label when on. Per the chat-
259183
259933
  * privacy spec the toggle is *one-way*: enabling cannot be undone for
259184
- * the active session — to leave Private Mode the user starts a fresh
259934
+ * the active session — to leave Incognito the user starts a fresh
259185
259935
  * conversation.
259186
259936
  *
259187
259937
  * Three click paths cover every enable scenario:
@@ -259193,18 +259943,26 @@ function NotificationDisplay({ org, userId, isAdmin = false, selectedNotificatio
259193
259943
  * one-way nature → on confirm, `POST /sessions/{id}/disable-chathistory/`.
259194
259944
  * The session is removed from the user's history list and the
259195
259945
  * button morphs into the locked pill.
259196
- * 3. Already in Private Mode (any source — user-initiated, session,
259946
+ * 3. Already in Incognito (any source — user-initiated, session,
259197
259947
  * agent kill-switch, tenant gate) — button is rendered as the
259198
- * locked pill. No click action. To leave Private Mode the user
259948
+ * locked pill. No click action. To leave Incognito the user
259199
259949
  * opens a new conversation (handled outside this component).
259200
259950
  *
259201
259951
  * Source-aware tooltip explains *why* the pill is locked when the
259202
259952
  * lock comes from a tier above the user (mentor / tenant), so the
259203
259953
  * user understands the affordance rather than seeing a dead button.
259954
+ *
259955
+ * A mentor with `disable_privacy_mode` on has no privacy controls at all:
259956
+ * the toggle renders nothing unless the current session is already
259957
+ * private (started before the lock), in which case the pill still
259958
+ * reports the real state. A failed action toasts the backend's reason
259959
+ * when it sent one — the 403 a locked mentor answers with — else the
259960
+ * generic message for that action.
259204
259961
  */
259205
259962
  function ChatPrivacyToggle({ org, userId, mentor, className }) {
259206
259963
  const t = useT();
259207
259964
  const [confirmOpen, setConfirmOpen] = React__default.useState(false);
259965
+ const onActionError = React__default.useCallback((error) => { var _a; return toast.error((_a = error.message) !== null && _a !== void 0 ? _a : t(FALLBACK_ERROR_KEY[error.action])); }, [t]);
259208
259966
  // Symmetric optimistic flags bridging the window between a mutation
259209
259967
  // succeeding and `effective.mode` flipping server-side. Without
259210
259968
  // them the button briefly snaps back to the stale server value —
@@ -259226,11 +259984,11 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259226
259984
  // false, the other true), so sharing a single ref is safe and keeps
259227
259985
  // the click handler from queueing two POSTs in a double-tap.
259228
259986
  // `confirmInFlightRef` covers the AlertDialog confirm separately so a
259229
- // double-click on "Enable Private Mode" can't queue two
259987
+ // double-click on "Enable Incognito" can't queue two
259230
259988
  // disable-chathistory POSTs.
259231
259989
  const clickInFlightRef = React__default.useRef(false);
259232
259990
  const confirmInFlightRef = React__default.useRef(false);
259233
- const { featureEnabled, effective, isEffectiveReady, messageCount, startPrivateChat, startNormalChat, disableChatHistory, isStartingPrivateChat, isDisablingChatHistory, } = useChatPrivacy({ org, userId, mentor });
259991
+ const { featureEnabled, privacyModeDisabled, effective, isEffectiveReady, messageCount, startPrivateChat, startNormalChat, disableChatHistory, isStartingPrivateChat, isDisablingChatHistory, } = useChatPrivacy({ org, userId, mentor, onActionError });
259234
259992
  const serverPrivate = effective.mode === 'disabled';
259235
259993
  // `optimisticNormal` wins over a stale `serverPrivate` so a fast
259236
259994
  // re-tap after exit sees the right state. `optimisticPrivate` wins
@@ -259246,7 +260004,7 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259246
260004
  // a fast click doesn't start a brand-new private session on top of
259247
260005
  // the in-flight load.
259248
260006
  const isReady = isEffectiveReady;
259249
- // Once the server confirms Private Mode, drop optimisticPrivate so
260007
+ // Once the server confirms Incognito, drop optimisticPrivate so
259250
260008
  // we're not double-driving the UI from two sources.
259251
260009
  React__default.useEffect(() => {
259252
260010
  if (serverPrivate && optimisticPrivate)
@@ -259259,7 +260017,7 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259259
260017
  setOptimisticNormal(false);
259260
260018
  }, [serverPrivate, optimisticNormal]);
259261
260019
  // Belt-and-braces: clear both flags whenever the agent changes. If
259262
- // we mounted in Private Mode for one agent then navigate to another,
260020
+ // we mounted in Incognito for one agent then navigate to another,
259263
260021
  // neither optimistic state should bleed across.
259264
260022
  React__default.useEffect(() => {
259265
260023
  setOptimisticPrivate(false);
@@ -259283,18 +260041,20 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259283
260041
  return () => clearTimeout(id);
259284
260042
  }, [optimisticNormal]);
259285
260043
  // Render gate: hide when identity is missing, and when the tenant gate
259286
- // is off AND we're not currently in Private Mode. If the gate flips
259287
- // off while the user is mid-private-chat we keep showing the locked
259288
- // pill — the session is still private at the backend, so the status
259289
- // indicator should stay visible until they leave the conversation.
260044
+ // is off or the mentor has privacy mode disabled AND we're not currently
260045
+ // in Incognito. If either flips while the user is mid-private-chat we
260046
+ // keep showing the locked pill — the session is still private at the
260047
+ // backend, so the status indicator should stay visible until they leave
260048
+ // the conversation. A mentor-clamped `anonymized` mode is not private:
260049
+ // the conversation is recorded, only without identity, so no pill.
259290
260050
  if (!org || !mentor || !userId)
259291
260051
  return null;
259292
- if (!featureEnabled && !isPrivate)
260052
+ if ((!featureEnabled || privacyModeDisabled) && !isPrivate)
259293
260053
  return null;
259294
260054
  // State machine — `messageCount` counts USER-AUTHORED messages only, so a
259295
260055
  // proactive greeting from the agent doesn't push the user into the
259296
260056
  // mid-conversation branch.
259297
- // 1. NORMAL + no user messages → tap enables Private Mode by
260057
+ // 1. NORMAL + no user messages → tap enables Incognito by
259298
260058
  // creating a fresh private session. No modal.
259299
260059
  // 2. PRIVATE + no user messages → tap exits by creating a fresh
259300
260060
  // *normal* session (the backend's one-way door rejects flipping
@@ -259330,7 +260090,6 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259330
260090
  }
259331
260091
  else {
259332
260092
  setOptimisticNormal(false);
259333
- toast.error(t('chatPrivacyChatPrivacyToggle.toastCouldNotTurnOff'));
259334
260093
  }
259335
260094
  }
259336
260095
  finally {
@@ -259353,7 +260112,6 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259353
260112
  }
259354
260113
  else {
259355
260114
  setOptimisticPrivate(false);
259356
- toast.error(t('chatPrivacyChatPrivacyToggle.toastCouldNotEnable'));
259357
260115
  }
259358
260116
  }
259359
260117
  finally {
@@ -259384,7 +260142,6 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259384
260142
  }
259385
260143
  else {
259386
260144
  setOptimisticPrivate(false);
259387
- toast.error(t('chatPrivacyChatPrivacyToggle.toastFailedToEnable'));
259388
260145
  }
259389
260146
  }
259390
260147
  finally {
@@ -259441,7 +260198,7 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259441
260198
  // the locked pill so the source-aware tooltip can render.
259442
260199
  disabled: isBusy, "aria-disabled": ariaDisabled || undefined, "aria-label": ariaLabel, "aria-pressed": isPrivate, "data-testid": "chat-privacy-toggle", "data-state": isPrivate ? 'on' : 'off', "data-source": effective.source, className: cn(
259443
260200
  // `min-w-10` keeps the off state a 40×40 square matching
259444
- // Bell + CreditCard. When Private Mode turns on, the
260201
+ // Bell + CreditCard. When Incognito turns on, the
259445
260202
  // label content pushes the button past the minimum so it
259446
260203
  // grows smoothly into the labeled pill — transitions on
259447
260204
  // background, color, padding, gap, AND the inner span's
@@ -259473,7 +260230,7 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
259473
260230
  }, disabled: isDisablingChatHistory, "data-testid": "chat-privacy-confirm-action",
259474
260231
  // Same brand gradient + same `text-shadow` / icon
259475
260232
  // `drop-shadow` a11y treatment as the active pill, for
259476
- // visual continuity AND so the white "Enable Private Mode"
260233
+ // visual continuity AND so the white "Enable Incognito"
259477
260234
  // label survives the gradient's light end at AA contrast.
259478
260235
  // Hover deepens the gradient one stop (not opacity-dim) so
259479
260236
  // text readability improves under the cursor.
@@ -277175,6 +277932,316 @@ function PlatformNavbar({ left, modeSwitcher, search, privacyToggle, placements,
277175
277932
  return (jsxs("nav", { className: cn('z-10 mb-4 flex h-16 items-center border-b border-[#D0E0FF] bg-white pr-4', className), children: [jsx("div", { className: "flex min-w-0 items-center overflow-hidden", children: left }), jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-0 xl:gap-6", children: [search && (jsx("div", { className: "mr-2 flex items-center xl:mr-0", children: jsx(PlatformNavbarSearch, { ...search }) })), modeSwitcher && jsx("div", { className: "hidden items-center gap-2 xl:flex", children: modeSwitcher }), jsxs("div", { className: "flex items-center gap-2", children: [privacyToggle && visibleToLoggedInUsersOnly && (jsx(ChatPrivacyToggle, { org: privacyToggle.org, userId: privacyToggle.userId, mentor: privacyToggle.mentor, className: (_a = privacyToggle.className) !== null && _a !== void 0 ? _a : 'inline-flex max-md:[&>span]:hidden' })), placements && visibleToLoggedInUsersOnly && (jsx(PlacementExamsDropdown, { platformKey: placements.platformKey, onOpenPlacement: placements.onOpenPlacement, className: placements.className })), showCreditBalance && creditBalance && (jsx(CreditBalance, { tenant: creditBalance.tenantKey, enabled: true, redirectUrl: (_b = creditBalance.redirectUrl) !== null && _b !== void 0 ? _b : window.location.origin, mainPlatformKey: creditBalance.mainPlatformKey, currentUserEmail: creditBalance.currentUserEmail, username: creditBalance.username })), notifications && visibleToLoggedInUsersOnly && (jsx(NotificationDropdown, { org: notifications.org, userId: notifications.userId, isAdmin: notifications.isAdmin, onViewNotifications: notifications.onViewNotifications })), visibleToLoggedInUsersOnly && profile] }), !loggedIn && onLoginClick && (jsxs("div", { className: "flex gap-x-2", children: [jsx(Button$1, { className: "ibl-button-primary", onClick: onLoginClick, children: t('platformNavbar.logIn') }), jsx(Button$1, { onClick: onLoginClick, variant: "outline", children: t('platformNavbar.signUpForFree') })] }))] })] }));
277176
277933
  }
277177
277934
 
277935
+ const defaultSettings = {
277936
+ invertColors: false,
277937
+ highlightLinks: false,
277938
+ textSize: 'normal',
277939
+ textSpacing: 'none',
277940
+ pauseAnimations: false,
277941
+ hideImages: false,
277942
+ dyslexiaFont: 'normal',
277943
+ customCursor: false,
277944
+ tooltips: false,
277945
+ lineHeight: false,
277946
+ textAlign: 'normal',
277947
+ saturation: 'normal',
277948
+ contrastMode: 'normal',
277949
+ };
277950
+ const AccessibilityContext = createContext(undefined);
277951
+ // localStorage throws in sandboxed iframes and when site data is blocked; settings then live in memory.
277952
+ function storeSettings(settings) {
277953
+ try {
277954
+ if (settings)
277955
+ localStorage.setItem('accessibility-settings', JSON.stringify(settings));
277956
+ else
277957
+ localStorage.removeItem('accessibility-settings');
277958
+ }
277959
+ catch (_a) { }
277960
+ }
277961
+ function AccessibilityProvider({ children }) {
277962
+ const [settings, setSettings] = useState(defaultSettings);
277963
+ const [isToolbarOpen, setIsToolbarOpen] = useState(false);
277964
+ useEffect(() => {
277965
+ setSettings(defaultSettings);
277966
+ storeSettings(null);
277967
+ }, []);
277968
+ useEffect(() => {
277969
+ const root = document.documentElement;
277970
+ if (settings.contrastMode === 'invert') {
277971
+ root.style.setProperty('--accessibility-invert', 'invert(1)');
277972
+ document.body.classList.add('accessibility-invert');
277973
+ }
277974
+ else {
277975
+ root.style.setProperty('--accessibility-invert', 'invert(0)');
277976
+ document.body.classList.remove('accessibility-invert');
277977
+ }
277978
+ const fontSizeMap = {
277979
+ normal: '1',
277980
+ large: '1.2',
277981
+ larger: '1.4',
277982
+ };
277983
+ root.style.setProperty('--accessibility-font-size', fontSizeMap[settings.textSize]);
277984
+ document.body.classList.toggle('accessibility-text-size', settings.textSize !== 'normal');
277985
+ const spacingMap = {
277986
+ none: { letter: 'normal', word: 'normal' },
277987
+ light: { letter: '0.05em', word: '0.1em' },
277988
+ moderate: { letter: '0.1em', word: '0.2em' },
277989
+ heavy: { letter: '0.15em', word: '0.3em' },
277990
+ };
277991
+ const spacing = spacingMap[settings.textSpacing];
277992
+ root.style.setProperty('--accessibility-letter-spacing', spacing.letter);
277993
+ root.style.setProperty('--accessibility-word-spacing', spacing.word);
277994
+ document.body.classList.toggle('accessibility-text-spacing', settings.textSpacing !== 'none');
277995
+ if (settings.pauseAnimations) {
277996
+ document.body.classList.add('accessibility-pause-animations');
277997
+ }
277998
+ else {
277999
+ document.body.classList.remove('accessibility-pause-animations');
278000
+ }
278001
+ if (settings.lineHeight) {
278002
+ root.style.setProperty('--accessibility-line-height', '1.8');
278003
+ document.body.classList.add('accessibility-line-height');
278004
+ }
278005
+ else {
278006
+ root.style.setProperty('--accessibility-line-height', '1.5');
278007
+ document.body.classList.remove('accessibility-line-height');
278008
+ }
278009
+ const saturationMap = {
278010
+ normal: 'saturate(1)',
278011
+ high: 'saturate(1.8)',
278012
+ low: 'saturate(0.3)',
278013
+ };
278014
+ root.style.setProperty('--accessibility-saturation', saturationMap[settings.saturation]);
278015
+ document.body.classList.toggle('accessibility-saturation', settings.saturation !== 'normal');
278016
+ document.body.classList.toggle('accessibility-custom-cursor', settings.customCursor);
278017
+ const body = document.body;
278018
+ body.classList.toggle('accessibility-highlight-links', settings.highlightLinks);
278019
+ body.classList.toggle('accessibility-hide-images', settings.hideImages);
278020
+ body.classList.toggle('accessibility-dyslexia-friendly', settings.dyslexiaFont === 'dyslexia');
278021
+ body.classList.toggle('accessibility-legible-font', settings.dyslexiaFont === 'legible');
278022
+ body.classList.toggle('accessibility-pause-animations', settings.pauseAnimations);
278023
+ body.classList.toggle('accessibility-tooltips', settings.tooltips);
278024
+ body.classList.remove('accessibility-text-left', 'accessibility-text-center', 'accessibility-text-right', 'accessibility-text-justify');
278025
+ if (settings.textAlign !== 'normal') {
278026
+ body.classList.add(`accessibility-text-${settings.textAlign}`);
278027
+ }
278028
+ body.classList.remove('accessibility-high-contrast', 'accessibility-dark-contrast', 'accessibility-light-contrast');
278029
+ if (settings.contrastMode === 'dark') {
278030
+ body.classList.add('accessibility-dark-contrast');
278031
+ }
278032
+ else if (settings.contrastMode === 'light') {
278033
+ body.classList.add('accessibility-light-contrast');
278034
+ }
278035
+ }, [settings]);
278036
+ const updateSetting = (key, value) => {
278037
+ const newSettings = { ...settings, [key]: value };
278038
+ setSettings(newSettings);
278039
+ storeSettings(newSettings);
278040
+ };
278041
+ const resetSettings = () => {
278042
+ setSettings(defaultSettings);
278043
+ storeSettings(null);
278044
+ };
278045
+ return (jsx(AccessibilityContext.Provider, { value: {
278046
+ settings,
278047
+ updateSetting,
278048
+ resetSettings,
278049
+ isToolbarOpen,
278050
+ setIsToolbarOpen,
278051
+ }, children: children }));
278052
+ }
278053
+ function useAccessibility() {
278054
+ const context = useContext(AccessibilityContext);
278055
+ if (context === undefined) {
278056
+ throw new Error('useAccessibility must be used within an AccessibilityProvider');
278057
+ }
278058
+ return context;
278059
+ }
278060
+
278061
+ // Mirrors the host app's shadcn v4 button rather than ../ui/button so the
278062
+ // menu keeps its exact look: ../ui/button's `[&_svg]:size-4` would shrink the
278063
+ // h-5 icons and the 44px accessibility icon.
278064
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
278065
+ variants: {
278066
+ variant: {
278067
+ default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',
278068
+ outline: 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
278069
+ ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
278070
+ },
278071
+ size: {
278072
+ default: 'h-9 px-4 py-2 has-[>svg]:px-3',
278073
+ icon: 'size-9',
278074
+ },
278075
+ },
278076
+ defaultVariants: {
278077
+ variant: 'default',
278078
+ size: 'default',
278079
+ },
278080
+ });
278081
+ function AccessibilityButton({ className, variant, size, ...props }) {
278082
+ return (jsx("button", { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
278083
+ }
278084
+
278085
+ function AccessibilityOption({ icon, label, isActive, onClick, subtext, options, activeIndex, }) {
278086
+ return (jsxs(AccessibilityButton, { onClick: onClick, variant: isActive ? 'default' : 'outline', className: `relative flex h-24 w-full flex-col items-center justify-center gap-1 text-xs font-medium ${isActive
278087
+ ? 'border-[#38A1E5] bg-[#38A1E5] text-white hover:bg-[#D0E0FF] hover:text-gray-800'
278088
+ : 'border-gray-200 bg-white text-gray-700 hover:bg-gray-50'}`, children: [isActive && (jsx("div", { className: "absolute top-2 right-2 flex h-4 w-4 items-center justify-center rounded-full bg-[#38A1E5]", children: jsx("div", { className: "h-2 w-2 rounded-full bg-white" }) })), jsx("div", { className: "text-lg", children: icon }), jsx("span", { className: "text-center leading-tight", children: label }), isActive && subtext && (jsxs(Fragment$1, { children: [jsx("span", { className: "text-xs font-medium text-[#38A1E5]", children: subtext }), options && options.length > 0 && (jsx("div", { className: "mt-1 flex gap-1", children: options.map((_, index) => (jsx("div", { className: `h-1 w-3 rounded-full ${index === activeIndex ? 'bg-[#38A1E5]' : 'bg-gray-300'}` }, index))) }))] }))] }));
278089
+ }
278090
+ const BUTTON_CORNERS = [
278091
+ { corner: 'top-left', labelKey: 'accessibility.toolbar.moveButtonTopLeft', Icon: ArrowUpLeft },
278092
+ { corner: 'top-right', labelKey: 'accessibility.toolbar.moveButtonTopRight', Icon: ArrowUpRight },
278093
+ {
278094
+ corner: 'bottom-left',
278095
+ labelKey: 'accessibility.toolbar.moveButtonBottomLeft',
278096
+ Icon: ArrowDownLeft,
278097
+ },
278098
+ {
278099
+ corner: 'bottom-right',
278100
+ labelKey: 'accessibility.toolbar.moveButtonBottomRight',
278101
+ Icon: ArrowDownRight,
278102
+ },
278103
+ ];
278104
+ function AccessibilityToolbar({ isButtonPositionCustom = false, onResetButtonPosition, onMoveButtonToCorner, } = {}) {
278105
+ const t = useT();
278106
+ const { settings, updateSetting, resetSettings, isToolbarOpen, setIsToolbarOpen } = useAccessibility();
278107
+ if (!isToolbarOpen)
278108
+ return null;
278109
+ const cycleContrastMode = () => {
278110
+ const modes = ['normal', 'invert', 'dark', 'light'];
278111
+ const currentIndex = modes.indexOf(settings.contrastMode);
278112
+ const nextIndex = (currentIndex + 1) % modes.length;
278113
+ updateSetting('contrastMode', modes[nextIndex]);
278114
+ };
278115
+ const cycleTextSize = () => {
278116
+ const sizes = ['normal', 'large', 'larger'];
278117
+ const currentIndex = sizes.indexOf(settings.textSize);
278118
+ const nextIndex = (currentIndex + 1) % sizes.length;
278119
+ updateSetting('textSize', sizes[nextIndex]);
278120
+ };
278121
+ const cycleTextSpacing = () => {
278122
+ const spacings = ['none', 'light', 'moderate', 'heavy'];
278123
+ const currentIndex = spacings.indexOf(settings.textSpacing);
278124
+ const nextIndex = (currentIndex + 1) % spacings.length;
278125
+ updateSetting('textSpacing', spacings[nextIndex]);
278126
+ };
278127
+ const cycleDyslexiaFont = () => {
278128
+ const fonts = ['normal', 'dyslexia', 'legible'];
278129
+ const currentIndex = fonts.indexOf(settings.dyslexiaFont);
278130
+ const nextIndex = (currentIndex + 1) % fonts.length;
278131
+ updateSetting('dyslexiaFont', fonts[nextIndex]);
278132
+ };
278133
+ const cycleTextAlign = () => {
278134
+ const aligns = ['normal', 'left', 'center', 'right', 'justify'];
278135
+ const currentIndex = aligns.indexOf(settings.textAlign);
278136
+ const nextIndex = (currentIndex + 1) % aligns.length;
278137
+ updateSetting('textAlign', aligns[nextIndex]);
278138
+ };
278139
+ const cycleSaturation = () => {
278140
+ const saturations = ['normal', 'high', 'low'];
278141
+ const currentIndex = saturations.indexOf(settings.saturation);
278142
+ const nextIndex = (currentIndex + 1) % saturations.length;
278143
+ updateSetting('saturation', saturations[nextIndex]);
278144
+ };
278145
+ const getContrastLabel = () => {
278146
+ const labels = {
278147
+ normal: t('accessibility.toolbar.contrastPlus'),
278148
+ invert: t('accessibility.toolbar.contrastInvertColors'),
278149
+ dark: t('accessibility.toolbar.contrastDark'),
278150
+ light: t('accessibility.toolbar.contrastLight'),
278151
+ };
278152
+ return labels[settings.contrastMode];
278153
+ };
278154
+ const getTextSizeLabel = () => {
278155
+ const labels = {
278156
+ normal: t('accessibility.toolbar.textSizeNormal'),
278157
+ large: t('accessibility.toolbar.textSizeLarge'),
278158
+ larger: t('accessibility.toolbar.textSizeLarger'),
278159
+ };
278160
+ return labels[settings.textSize];
278161
+ };
278162
+ const getTextSpacingLabel = () => {
278163
+ const labels = {
278164
+ none: t('accessibility.toolbar.textSpacing'),
278165
+ light: t('accessibility.toolbar.spacingLight'),
278166
+ moderate: t('accessibility.toolbar.spacingModerate'),
278167
+ heavy: t('accessibility.toolbar.spacingHeavy'),
278168
+ };
278169
+ return labels[settings.textSpacing];
278170
+ };
278171
+ const getDyslexiaLabel = () => {
278172
+ const labels = {
278173
+ normal: t('accessibility.toolbar.dyslexiaFriendly'),
278174
+ dyslexia: t('accessibility.toolbar.dyslexiaFont'),
278175
+ legible: t('accessibility.toolbar.legibleFont'),
278176
+ };
278177
+ return labels[settings.dyslexiaFont];
278178
+ };
278179
+ const getTextAlignLabel = () => {
278180
+ const labels = {
278181
+ normal: t('accessibility.toolbar.textAlign'),
278182
+ left: t('accessibility.toolbar.alignLeft'),
278183
+ center: t('accessibility.toolbar.alignCenter'),
278184
+ right: t('accessibility.toolbar.alignRight'),
278185
+ justify: t('accessibility.toolbar.justify'),
278186
+ };
278187
+ return labels[settings.textAlign];
278188
+ };
278189
+ const getSaturationLabel = () => {
278190
+ const labels = {
278191
+ normal: t('accessibility.toolbar.saturationNormal'),
278192
+ high: t('accessibility.toolbar.saturationHigh'),
278193
+ low: t('accessibility.toolbar.saturationLow'),
278194
+ };
278195
+ return labels[settings.saturation];
278196
+ };
278197
+ const getTextAlignIcon = () => {
278198
+ const icons = {
278199
+ normal: jsx(AlignLeft, { className: "h-5 w-5" }),
278200
+ left: jsx(AlignLeft, { className: "h-5 w-5" }),
278201
+ center: jsx(AlignCenter, { className: "h-5 w-5" }),
278202
+ right: jsx(AlignRight, { className: "h-5 w-5" }),
278203
+ justify: jsx(AlignJustify, { className: "h-5 w-5" }),
278204
+ };
278205
+ return icons[settings.textAlign];
278206
+ };
278207
+ const toggleTooltips = () => {
278208
+ updateSetting('tooltips', !settings.tooltips);
278209
+ };
278210
+ const toggleCustomCursor = () => {
278211
+ updateSetting('customCursor', !settings.customCursor);
278212
+ };
278213
+ return (jsx(Fragment$1, { children: jsxs("div", { className: "fixed top-0 right-0 z-50 flex h-full w-80 flex-col bg-white shadow-2xl", children: [jsxs("div", { className: "flex flex-shrink-0 items-center justify-between bg-gradient-to-r from-[#38A1E5] to-[#7284FF] p-4 text-white", children: [jsx("h2", { className: "text-lg font-semibold", children: t('accessibility.toolbar.accessibilityMenu') }), jsx(AccessibilityButton, { onClick: () => setIsToolbarOpen(false), variant: "ghost", size: "icon", className: "text-white hover:bg-transparent hover:text-white", children: jsx(X$1, { className: "h-5 w-5" }) })] }), jsxs("div", { className: "flex flex-1 flex-col overflow-y-auto bg-white p-4", onClick: (e) => e.stopPropagation(), children: [jsxs("div", { className: "grid flex-1 grid-cols-2 gap-3", children: [jsx(AccessibilityOption, { icon: jsx(Circle, { className: "h-5 w-5" }), label: t('accessibility.toolbar.contrastPlus'), isActive: settings.contrastMode !== 'normal', onClick: cycleContrastMode, subtext: settings.contrastMode !== 'normal' ? getContrastLabel() : undefined, options: ['normal', 'invert', 'dark', 'light'], activeIndex: ['normal', 'invert', 'dark', 'light'].indexOf(settings.contrastMode) }), jsx(AccessibilityOption, { icon: jsx(Link$1, { className: "h-5 w-5" }), label: t('accessibility.toolbar.highlightLinks'), isActive: settings.highlightLinks, onClick: () => updateSetting('highlightLinks', !settings.highlightLinks) }), jsx(AccessibilityOption, { icon: jsx(Type, { className: "h-5 w-5" }), label: t('accessibility.toolbar.biggerText'), isActive: settings.textSize !== 'normal', onClick: cycleTextSize, subtext: settings.textSize !== 'normal' ? getTextSizeLabel() : undefined, options: ['normal', 'large', 'larger'], activeIndex: ['normal', 'large', 'larger'].indexOf(settings.textSize) }), jsx(AccessibilityOption, { icon: jsx(Minus, { className: "h-5 w-5 rotate-90" }), label: t('accessibility.toolbar.textSpacing'), isActive: settings.textSpacing !== 'none', onClick: cycleTextSpacing, subtext: settings.textSpacing !== 'none' ? getTextSpacingLabel() : undefined, options: ['none', 'light', 'moderate', 'heavy'], activeIndex: ['none', 'light', 'moderate', 'heavy'].indexOf(settings.textSpacing) }), jsx(AccessibilityOption, { icon: jsx(Pause, { className: "h-5 w-5" }), label: t('accessibility.toolbar.pauseAnimations'), isActive: settings.pauseAnimations, onClick: () => updateSetting('pauseAnimations', !settings.pauseAnimations) }), jsx(AccessibilityOption, { icon: jsx(ImageOff, { className: "h-5 w-5" }), label: t('accessibility.toolbar.hideImages'), isActive: settings.hideImages, onClick: () => updateSetting('hideImages', !settings.hideImages) }), jsx(AccessibilityOption, { icon: jsx("span", { className: "text-sm font-bold", children: "Df" }), label: t('accessibility.toolbar.dyslexiaFriendly'), isActive: settings.dyslexiaFont !== 'normal', onClick: cycleDyslexiaFont, subtext: settings.dyslexiaFont !== 'normal' ? getDyslexiaLabel() : undefined, options: ['normal', 'dyslexia', 'legible'], activeIndex: ['normal', 'dyslexia', 'legible'].indexOf(settings.dyslexiaFont) }), jsx(AccessibilityOption, { icon: jsx(MousePointer, { className: "h-5 w-5" }), label: t('accessibility.toolbar.cursor'), isActive: settings.customCursor, onClick: toggleCustomCursor }), jsx(AccessibilityOption, { icon: jsx(MessageSquare, { className: "h-5 w-5" }), label: t('accessibility.toolbar.tooltips'), isActive: settings.tooltips, onClick: toggleTooltips }), jsx(AccessibilityOption, { icon: jsxs("div", { className: "flex flex-col gap-0.5", children: [jsx("div", { className: "h-0.5 w-4 bg-current" }), jsx("div", { className: "h-0.5 w-4 bg-current" }), jsx("div", { className: "h-0.5 w-4 bg-current" })] }), label: t('accessibility.toolbar.lineHeight'), isActive: settings.lineHeight, onClick: () => updateSetting('lineHeight', !settings.lineHeight) }), jsx(AccessibilityOption, { icon: getTextAlignIcon(), label: t('accessibility.toolbar.textAlign'), isActive: settings.textAlign !== 'normal', onClick: cycleTextAlign, subtext: settings.textAlign !== 'normal' ? getTextAlignLabel() : undefined, options: ['normal', 'left', 'center', 'right', 'justify'], activeIndex: ['normal', 'left', 'center', 'right', 'justify'].indexOf(settings.textAlign) }), jsx(AccessibilityOption, { icon: jsx(Droplets, { className: "h-5 w-5" }), label: t('accessibility.toolbar.saturation'), isActive: settings.saturation !== 'normal', onClick: cycleSaturation, subtext: settings.saturation !== 'normal' ? getSaturationLabel() : undefined, options: ['normal', 'high', 'low'], activeIndex: ['normal', 'high', 'low'].indexOf(settings.saturation) })] }), onMoveButtonToCorner && (jsxs("div", { role: "group", "aria-labelledby": "accessibility-move-button-label", className: "mt-4 flex flex-shrink-0 items-center justify-between gap-2", children: [jsx("span", { id: "accessibility-move-button-label", className: "text-xs font-medium text-gray-700", children: t('accessibility.toolbar.moveButtonToCorner') }), jsx("div", { className: "flex gap-1", children: BUTTON_CORNERS.map(({ corner, labelKey, Icon }) => (jsx(AccessibilityButton, { onClick: () => onMoveButtonToCorner(corner), variant: "outline", size: "icon", "aria-label": t(labelKey), title: t(labelKey), className: "h-8 w-8 border-gray-200 bg-white text-gray-700 hover:bg-gray-50", children: jsx(Icon, { className: "h-4 w-4" }) }, corner))) })] })), isButtonPositionCustom && onResetButtonPosition && (jsxs(AccessibilityButton, { onClick: onResetButtonPosition, variant: "outline", className: "mt-4 w-full flex-shrink-0 border-gray-200 bg-white py-3 text-gray-700 hover:bg-gray-50", children: [jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), t('accessibility.toolbar.resetButtonPosition')] })), jsxs(AccessibilityButton, { onClick: () => {
278214
+ resetSettings();
278215
+ onResetButtonPosition === null || onResetButtonPosition === void 0 ? void 0 : onResetButtonPosition();
278216
+ }, className: "mt-4 w-full flex-shrink-0 bg-gradient-to-r from-[#38A1E5] to-[#7284FF] py-3 text-white shadow-lg hover:from-[#2E8BC7] hover:to-[#0066DD]", children: [jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), t('accessibility.toolbar.resetAllAccessibilitySettings')] })] })] }) }));
278217
+ }
278218
+
278219
+ function AccessibilityIcon({ className, title }) {
278220
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 44, height: 44, viewBox: "0 0 60 60", fill: "none", role: "img", "aria-label": title, className: className, children: jsx("path", { d: "M30,4.42857143 C44.12271,4.42857143 55.5714286,15.87729 55.5714286,30 C55.5714286,44.12271 44.12271,55.5714286 30,55.5714286 C15.87729,55.5714286 4.42857143,44.12271 4.42857143,30 C4.42857143,15.87729 15.87729,4.42857143 30,4.42857143 Z M30,6.42857143 C16.9818595,6.42857143 6.42857143,16.9818595 6.42857143,30 C6.42857143,43.0181405 16.9818595,53.5714286 30,53.5714286 C43.0181405,53.5714286 53.5714286,43.0181405 53.5714286,30 C53.5714286,16.9818595 43.0181405,6.42857143 30,6.42857143 Z M40.5936329,24.636146 C40.8208154,24.6942382 41.032297,24.8027599 41.212927,24.9537151 C41.3927444,25.1040671 41.5372605,25.2927156 41.6362456,25.506032 C41.7348561,25.7185411 41.7857143,25.9504498 41.7857143,26.1964545 C41.7780029,26.5779794 41.6395197,26.9452414 41.3935596,27.2352841 C41.1463511,27.5267988 40.8059352,27.7221149 40.4376358,27.7856619 C38.1921773,28.2017648 35.924387,28.4827808 33.6481064,28.6271294 C33.504948,28.636723 33.3651112,28.6758744 33.236922,28.7423749 C33.1082304,28.8090766 32.9940039,28.9018917 32.9011681,29.0153772 C32.8079332,29.1293505 32.7382931,29.2617886 32.6966918,29.404413 C32.6758615,29.4759144 32.6622539,29.5492793 32.6556797,29.6151616 L32.6510699,29.707205 L32.6598659,29.8496307 L32.8523035,31.5976067 C33.0926408,33.748446 33.5345387,35.8701755 34.1700609,37.9296172 L34.4174424,38.6989233 L34.6845982,39.467246 L35.9271291,42.8464114 C35.9992453,43.0440742 36.0318055,43.2541674 36.0229684,43.4645736 C36.0141278,43.6750654 35.9640303,43.8817121 35.8754594,44.0726551 C35.7867069,44.2638976 35.6611068,44.435479 35.5058759,44.5773262 C35.3501721,44.7195962 35.1677426,44.8289881 34.990022,44.8912207 C34.813373,44.9615763 34.6253467,44.9984764 34.4204191,45 C34.1147901,44.9943164 33.8175473,44.8987335 33.5650597,44.7252745 C33.4238771,44.6283171 33.2997507,44.5091367 33.1890431,44.3580526 L33.0826737,44.1959755 L33.0074053,44.0456077 L32.6901551,43.3562659 C31.8320879,41.4806152 31.0484874,39.6428286 30.3335907,37.8221303 L30.0024971,36.9627165 L29.5751047,38.0696169 C29.3403684,38.6636654 29.0998399,39.2560704 28.8536693,39.8464776 L28.4802005,40.730546 L27.9043756,42.0504488 L27.3109116,43.3600706 L27.0273167,43.9425803 C26.8810403,44.3389204 26.5849764,44.6608321 26.2034873,44.8369557 C25.8203243,45.0138521 25.3831542,45.0287926 24.9891662,44.8783588 C24.596572,44.7285499 24.2795594,44.4271943 24.1072539,44.0414047 C23.9885793,43.7756939 23.9446874,43.4836867 23.9834048,43.1768668 L24.016611,42.9910892 L24.0667666,42.8262042 L25.307875,39.4507095 C26.0439275,37.4198431 26.5851782,35.3222044 26.9239335,33.1916604 L27.0414597,32.3912301 L27.141282,31.5772235 L27.3403361,29.8381618 C27.3581635,29.6889408 27.3459492,29.5375642 27.3045081,29.3935084 C27.2630999,29.2497044 27.1934915,29.1162414 27.1000261,29.0011883 C27.0070148,28.8866944 26.8923305,28.7928596 26.7631114,28.7253145 C26.6343439,28.6580256 26.4937323,28.6181655 26.35351,28.6082966 C24.0561093,28.4626746 21.7692364,28.17737 19.5069975,27.7542651 C19.3015835,27.7165557 19.1057712,27.6379419 18.9308258,27.5230481 C18.7563857,27.408486 18.6063103,27.2602422 18.4889941,27.0867756 C18.3721069,26.9139017 18.2901967,26.7194847 18.2478998,26.5149205 C18.2055002,26.3103882 18.2034637,26.0993152 18.2403615,25.9020167 C18.2758029,25.695193 18.3515339,25.4974971 18.4633288,25.3201771 C18.5754166,25.1425366 18.7215515,24.9891682 18.8933065,24.8690391 C19.0655425,24.7486376 19.2599761,24.6643395 19.4651939,24.6211361 C19.6706526,24.577882 19.8826185,24.5767675 20.0822706,24.6166765 C26.6343689,25.8477827 33.3528511,25.8477827 39.8979716,24.6180222 C40.1283133,24.5717053 40.3659882,24.5779122 40.5936329,24.636146 Z M32.8056386,16.182956 C34.3520224,17.7551666 34.3520224,20.3006423 32.80563,21.8728616 C31.2542658,23.450066 28.7353061,23.450066 27.1840106,21.8728616 C25.6375563,20.3006489 25.6375563,17.7551599 27.1839933,16.1829647 C28.7352993,14.6056799 31.2542726,14.6056799 32.8056386,16.182956 Z", fill: "#FFFFFF", fillRule: "nonzero" }) }));
278221
+ }
278222
+
278223
+ function FloatingAccessibilityButton() {
278224
+ const t = useT();
278225
+ const { isToolbarOpen, setIsToolbarOpen } = useAccessibility();
278226
+ return (jsx(AccessibilityButton, { onClick: () => setIsToolbarOpen(!isToolbarOpen), className: "h-14 w-14 rounded-full bg-[#38A1E5] shadow-lg transition-all duration-200 hover:scale-105 hover:bg-[#2E8BC7]", size: "icon", "aria-label": t('accessibility.button.openAccessibilityMenu'), children: jsx(AccessibilityIcon, { title: t('accessibility.button.accessibilityIconAlt'), className: "size-11 text-white" }) }));
278227
+ }
278228
+
278229
+ /**
278230
+ * Draggable floating accessibility button plus its menu. Must be rendered
278231
+ * inside an `AccessibilityProvider`.
278232
+ */
278233
+ function AccessibilityFab({ defaultPositionClassName = 'bottom-4', storageKey = 'accessibility-fab-position:v2', 'data-testid': testId = 'accessibility-fab', }) {
278234
+ const t = useT();
278235
+ const hintId = useId$2();
278236
+ const { ref, position, isCustom, announcement, transition, reset, moveToCorner, handlers } = useDraggablePosition({ storageKey });
278237
+ return (jsxs(Fragment$1, { children: [jsx("div", { ref: ref, role: "group", "aria-describedby": hintId, className: cn('fixed right-4 z-50 flex touch-none flex-col gap-3', !position && defaultPositionClassName), style: position ? { right: position.right, bottom: position.bottom, transition } : undefined, "data-testid": testId, ...handlers, children: jsx(FloatingAccessibilityButton, {}) }), jsx("span", { id: hintId, className: "sr-only", children: t('accessibility.button.moveHint') }), jsx("div", { role: "status", "aria-live": "polite", className: "sr-only", children: announcement
278238
+ ? t('accessibility.button.positionAnnouncement', {
278239
+ side: announcement.side,
278240
+ bottom: Math.round(announcement.bottom),
278241
+ })
278242
+ : '' }), jsx(AccessibilityToolbar, { isButtonPositionCustom: isCustom, onResetButtonPosition: reset, onMoveButtonToCorner: moveToCorner })] }));
278243
+ }
278244
+
277178
278245
  function EditMemoryModal({ open, onOpenChange, editContent, editCategory, onContentChange, onCategoryChange, onSave, onCancel, categories, isSaving, }) {
277179
278246
  const t = useT();
277180
278247
  return (jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: jsxs(DialogContent, { className: "mx-4 max-w-2xl sm:mx-auto", children: [jsx(DialogHeader, { children: jsx(DialogTitle, { className: "text-gray-700", children: t('memoryTabEditMemoryModal.editMemory') }) }), jsxs("div", { className: "mt-4 space-y-4", children: [jsxs("div", { children: [jsx("label", { className: "text-sm font-medium text-gray-600", children: t('memoryTabEditMemoryModal.category') }), jsxs(Select$1, { value: editCategory, onValueChange: onCategoryChange, children: [jsx(SelectTrigger, { className: "mt-1", children: jsx(SelectValue, { placeholder: t('memoryTabEditMemoryModal.selectCategory') }) }), jsx(SelectContent, { children: categories
@@ -277717,5 +278784,5 @@ var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
277717
278784
  TrainOrDeleteModal: TrainOrDeleteModal
277718
278785
  });
277719
278786
 
277720
- export { ACCESS_COURSE_LABEL, ALL_CATEGORIES, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentScopeLink, AgentSettingsLauncherProvider, AgentSettingsLink, AgentSkills, AlertsTab, AnalyticsAgentPicker, AnalyticsAreaChart, AnalyticsAuditLogStats, AnalyticsBarChart, AnalyticsControlBar, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsGlobalFiltersProvider, AnalyticsLayout, AnalyticsLlmUsageStats, AnalyticsMemoryStats, AnalyticsMonetizationStats, AnalyticsNotice, AnalyticsOverview, AnalyticsPlatformAuditLog, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsScopeProvider, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTraces, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, AuditLogChangesView, AuditLogJsonView, BUY_NOW_LABEL, BillingTab, CATALOGS, CHART_ORDINAL_RAMP, CHART_SERIES_COLORS, CHART_SINGLE_SERIES_COLOR, CREATE_AGENT_LABELS, CUA_DRIVER_REPO_URL, CUA_DRIVER_TAURI_COMMANDS, CUA_DRIVER_TAURI_EVENTS, CanvasDialog, CanvasView, CardInfoIcon, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, ChartTooltipCard, ChatContext, ChatPrivacyToggle, ChatProvider, CompanyDialog, ConnectorManagementDialog, ConversationSentiment, ConversationTopics, CopyButtonIcon, CourseAccessGuard, CourseCardSkeleton, CourseContentLoading, CourseOutline, CourseOutlineContext, CourseOutlineDrawer, CreateAgentForm, CreateAgentModal, CreateProjectModal, CreateWorkflowModal, CredentialBox, CredentialMiniBoxSkeleton, CredentialsList, CreditBalance, CustomDateRangePicker, CustomTooltip, DEFAULT_COWORK_REQUIRED_SIZE_GB, DEFAULT_LOCALE, DEFAULT_USER_IDENTITY_ORDER, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, DocumentSidebar, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ENROLL_NOW_COURSE_STARTING_SOON_LABEL, ENROLL_NOW_LABEL, EditAlertDialog, EducationBox, EducationDialog, EducationTab, EdxIframeContext, EmptyStats, ExperienceBox, ExperienceDialog, ExperienceTab, FacetFilterContext, Footer, GradebookTab, GroupsFilterDropdown, HostPortChipInput, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_LLM_CHANGED_EVENT, LOCAL_MODELS, LlmModelBadge, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, MEMORY_PAGE_SIZE, Markdown, MemoryAdminTab, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_FIELD_TYPES, ONBOARDING_SECTORS, OnboardingField, OnboardingShell, OnboardingWizard, PLATFORM_AUDIT_DEEP_PAGING_THRESHOLD, PLATFORM_AUDIT_PAGE_SIZE, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformAuditLogDetailSheet, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RankedBars, RenameProjectModal, ResumeBox, ResumeTab, RetrievedDocumentsButton, RichTextEditor, SERVICE_COLOR_ORDER, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SessionCanvasCards, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, SlashSkillPicker, SourceChip, Spinner, StatCard, StepHeader, SummerNoteTextEditor, TAURI_COMMANDS, TAURI_EVENTS, TRACES_PAGE_SIZE, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolCallIndicator, ToolDialogs, TopBanner, TranscriptFileCards, TranscriptRollupBadges, TranscriptTurnDetails, TrendSparkline, USER_ONBOARDING_FORM_SLUG, USER_ONBOARDING_FORM_VERSION, USER_ONBOARDING_SUBMISSION_SLUG, UpgradePackageModal, UserAvatar, UserOnboardingWizard, UserProfileDialog, UserProfileLink, Version, VirtualMachineAdminTab, VirtualMachineNetworkSection, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, areChartFiltersEqual, availablePlacementExams, buildOnboardingAgentPath, buildUserOnboardingFormMetadata, buildUserOnboardingSubmissionMetadata, coerceOnboardingAgent, coerceOnboardingAgents, coerceUserOnboardingForm, colorForRank, colorForSeries, configureCanvasMarkdown, conversationDocuments, conversationTitle, conversationTopics, downloadBlob, emptyUserOnboardingForm, findLastResumeBlock, findOnboardingAgent, findSequentialParent, firstHumanMessage, flattenVerticalBlocks, formatAuditTimestamp, formatCompactNumber, formatFileSize, formatLatencySeconds, formatResult, formatSessionDate, formatTimeZoneLabel, getCatalog, getFirstAvailableUnit, getFriendlyToolName, getLLMModelDisplayName, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getQueryLabel, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, granularityForFilter, hasDistinctName, hasOnboardingContent, humanizeAuditToken, humanizeFieldName, inBrowserPrint, inIframe, inferProviderKeysFromModel, initialCuaDriverInstallState, initialModelDownloadState, isCoworkEnabled, isEmailLike, isFileReference, isLlmUsageForbidden, isLlmUsageUnavailable, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isSlashCommandToken, isTauriApp, isValidLocale, isValidTimeZone, llmUsageDateArgs, components$1 as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, previewPlan, readUserOnboardingForm, readUserOnboardingSubmission, readUserOnboardingSubmissions, resolveAuditTimeZone, resolveBinaryMimeType, resolveCreateAgentLabels, resolveEffectiveFileExtension, resolveUserIdentity, sanitizeCss, sanitizeFilename, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, shouldUseBinaryCanvas, smallestCoworkModel, summarizeTranscriptTurns, toFileReference, toRetrievedDocuments, toToolCallInfos, useAgentSettingsLauncher, useAnalyticsGlobalFilters, useAnalyticsScope, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useCredentialsSchemaLogos, useCuaDriver, useDiscover, useEdxIframe, useFinancial, useIframeMessageHandler, useLlmDisplayName, useLlmProviderCatalogue, useLlmTraces, useLlmUsage, useLocalStorage, useMemory, useModelDownload, useMonetization, useOverview, usePlatformAuditLabels, usePlatformAuditLog, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useScopedMentorDbId, useScopedMentorId, useSelectedLocalModel, useSessionCanvases, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
278787
+ export { ACCESS_COURSE_LABEL, ALL_CATEGORIES, AccessTimeHeatmap, AccessibilityFab, AccessibilityProvider, AccessibilityToolbar, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentScopeLink, AgentSettingsLauncherProvider, AgentSettingsLink, AgentSkills, AlertsTab, AnalyticsAgentPicker, AnalyticsAreaChart, AnalyticsAuditLogStats, AnalyticsBarChart, AnalyticsControlBar, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsGlobalFiltersProvider, AnalyticsLayout, AnalyticsLlmUsageStats, AnalyticsMemoryStats, AnalyticsMonetizationStats, AnalyticsNotice, AnalyticsOverview, AnalyticsPlatformAuditLog, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsScopeProvider, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTraces, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, AuditLogChangesView, AuditLogJsonView, BUY_NOW_LABEL, BillingTab, CATALOGS, CHART_ORDINAL_RAMP, CHART_SERIES_COLORS, CHART_SINGLE_SERIES_COLOR, CREATE_AGENT_LABELS, CUA_DRIVER_REPO_URL, CUA_DRIVER_TAURI_COMMANDS, CUA_DRIVER_TAURI_EVENTS, CanvasDialog, CanvasView, CardInfoIcon, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, ChartTooltipCard, ChatContext, ChatPrivacyToggle, ChatProvider, CompanyDialog, ConnectorManagementDialog, ConversationSentiment, ConversationTopics, CopyButtonIcon, CourseAccessGuard, CourseCardSkeleton, CourseContentLoading, CourseOutline, CourseOutlineContext, CourseOutlineDrawer, CreateAgentForm, CreateAgentModal, CreateProjectModal, CreateWorkflowModal, CredentialBox, CredentialMiniBoxSkeleton, CredentialsList, CreditBalance, CustomDateRangePicker, CustomTooltip, DEFAULT_COWORK_REQUIRED_SIZE_GB, DEFAULT_LOCALE, DEFAULT_USER_IDENTITY_ORDER, DRAGGABLE_SNAP_TRANSITION, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, DocumentSidebar, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ENROLL_NOW_COURSE_STARTING_SOON_LABEL, ENROLL_NOW_LABEL, EditAlertDialog, EducationBox, EducationDialog, EducationTab, EdxIframeContext, EmptyStats, ExperienceBox, ExperienceDialog, ExperienceTab, FacetFilterContext, FloatingAccessibilityButton, Footer, GradebookTab, GroupsFilterDropdown, HostPortChipInput, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_LLM_CHANGED_EVENT, LOCAL_MODELS, LlmModelBadge, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, MEMORY_PAGE_SIZE, Markdown, MemoryAdminTab, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_FIELD_TYPES, ONBOARDING_SECTORS, OnboardingField, OnboardingShell, OnboardingWizard, PLATFORM_AUDIT_DEEP_PAGING_THRESHOLD, PLATFORM_AUDIT_PAGE_SIZE, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformAuditLogDetailSheet, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RankedBars, RenameProjectModal, ResumeBox, ResumeTab, RetrievedDocumentsButton, RichTextEditor, SERVICE_COLOR_ORDER, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SessionCanvasCards, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, SlashSkillPicker, SourceChip, Spinner, StatCard, StepHeader, SummerNoteTextEditor, TAURI_COMMANDS, TAURI_EVENTS, TRACES_PAGE_SIZE, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolCallIndicator, ToolDialogs, TopBanner, TranscriptFileCards, TranscriptRollupBadges, TranscriptTurnDetails, TrendSparkline, USER_ONBOARDING_FORM_SLUG, USER_ONBOARDING_FORM_VERSION, USER_ONBOARDING_SUBMISSION_SLUG, UpgradePackageModal, UserAvatar, UserOnboardingWizard, UserProfileDialog, UserProfileLink, Version, VirtualMachineAdminTab, VirtualMachineNetworkSection, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, areChartFiltersEqual, availablePlacementExams, buildOnboardingAgentPath, buildUserOnboardingFormMetadata, buildUserOnboardingSubmissionMetadata, coerceOnboardingAgent, coerceOnboardingAgents, coerceUserOnboardingForm, colorForRank, colorForSeries, configureCanvasMarkdown, conversationDocuments, conversationTitle, conversationTopics, downloadBlob, emptyUserOnboardingForm, findLastResumeBlock, findOnboardingAgent, findSequentialParent, firstHumanMessage, flattenVerticalBlocks, formatAuditTimestamp, formatCompactNumber, formatFileSize, formatLatencySeconds, formatResult, formatSessionDate, formatTimeZoneLabel, getCatalog, getFirstAvailableUnit, getFriendlyToolName, getLLMModelDisplayName, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getQueryLabel, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, granularityForFilter, hasDistinctName, hasOnboardingContent, humanizeAuditToken, humanizeFieldName, inBrowserPrint, inIframe, inferProviderKeysFromModel, initialCuaDriverInstallState, initialModelDownloadState, isCoworkEnabled, isEmailLike, isFileReference, isLlmUsageForbidden, isLlmUsageUnavailable, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isSlashCommandToken, isTauriApp, isValidLocale, isValidTimeZone, llmUsageDateArgs, components$1 as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, previewPlan, readUserOnboardingForm, readUserOnboardingSubmission, readUserOnboardingSubmissions, resolveAuditTimeZone, resolveBinaryMimeType, resolveCreateAgentLabels, resolveEffectiveFileExtension, resolveUserIdentity, sanitizeCss, sanitizeFilename, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, shouldUseBinaryCanvas, smallestCoworkModel, summarizeTranscriptTurns, toChatPrivacyActionError, toFileReference, toRetrievedDocuments, toToolCallInfos, useAccessibility, useAgentSettingsLauncher, useAnalyticsGlobalFilters, useAnalyticsScope, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useCredentialsSchemaLogos, useCuaDriver, useDiscover, useDraggablePosition, useEdxIframe, useFinancial, useIframeMessageHandler, useLlmDisplayName, useLlmProviderCatalogue, useLlmTraces, useLlmUsage, useLocalStorage, useMemory, useModelDownload, useMonetization, useOverview, usePlatformAuditLabels, usePlatformAuditLog, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useScopedMentorDbId, useScopedMentorId, useSelectedLocalModel, useSessionCanvases, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
277721
278788
  //# sourceMappingURL=index.esm.js.map