@iblai/iblai-js 2.21.0 → 2.22.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.
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useState, useEffect, forwardRef, createElement as createElement$3, useLayoutEffect, createContext, useContext, useMemo, useReducer, useRef, useImperativeHandle, useCallback, isValidElement, Children, PureComponent, cloneElement, Component as Component$1, Fragment as Fragment$2, useId as useId$2, useDebugValue, lazy, Suspense } from 'react';
|
|
4
4
|
import * as dataLayer from '@iblai/data-layer';
|
|
5
|
-
import { 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, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useUpdateGlobalMemoryMutation, useUpdateMentorMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useGetAllMentorMemoriesQuery, useDeleteGlobalMemoryMutation, useDeleteMentorMemoryMutation, useGetAiSearchMentorsQuery, useStarMentorMutation, useUnstarMentorMutation, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmCostByService, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useGetLlmsQuery, 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, useGetCredentialsSchemaQuery, 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, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useUploadLightLogoMutation, useUploadDarkLogoMutation, useUpdatePlatformInfoMutation, LOGO_ENDPOINTS, useCreateEvalDatasetMutation, useAddEvalDatasetItemsMutation, useUploadEvalDatasetCsvMutation, useDeleteEvalDatasetItemMutation, useListEvalDatasetItemsQuery, evalTotalPages, useListEvalDatasetsQuery, useGetUserProjectsQuery, useCreateSessionIdMutation, useGetMentorCategoriesQuery, useGetTenantChatPrivacyConfigQuery as useGetTenantChatPrivacyConfigQuery$1, useGetCallConfigurationsQuery, useCreateCallConfigurationMutation, useUpdateCallConfigurationMutation, chatPrivacyApiSlice, useDeleteMentorMutation, useForkMentorMutation, useGetToolsQuery, useLazyGetMCPServersQuery, useOauthFindMutation, useLazyStartOAuthFlowQuery, useCreateMCPServerMutation, usePartialUpdateMCPServerMutation, useCreateMCPServerConnectionMutation, usePatchMCPServerConnectionMutation, useGetConnectedServicesQuery, useGetMCPServersQuery, useGetMCPServerConnectionsQuery, useUpdateMCPServerMutation, useDeleteMCPServerMutation, useEditMentorJsonMutation, useDisconnectServiceMutation, useGetPromptCategoriesQuery, PRIVACY_ACTIONS, PRIVACY_ENTITY_TYPES, useGetVoicesQuery, useGetVoiceQuery, isBaseAgentMentor, useGetGradeResultQuery, useOverrideGradeResultMutation, useGetChatHistoryFilterQuery, useListGradeResultsQuery, useGetMentorGraderConfigurationQuery, useListGraderCriteriaQuery, useCreateMentorGraderConfigurationMutation, useUpdateMentorGraderConfigurationMutation, useCreateGraderCriterionMutation, useUpdateGraderCriterionMutation, useDeleteGraderCriterionMutation, useGetSpendCapStatusQuery, useGetMentorPublicSettingsQuery, useGetChatHistoryQuery, useGetMentorSummariesQuery, useGetConversationMemoriesQuery, useGetSupportTicketsQuery, useGetSupportTicketMessagesQuery, useCreateSupportTicketMessageMutation, usePatchSupportTicketMutation, useCloseSupportTicketMutation, useCreateLtiMentorMutation, useUpdateLtiMentorMutation, useGetLtiMentorsQuery, useDeleteLtiMentorMutation, useCreateLtiKeyMutation, useUpdateLtiKeyMutation, useDeleteLtiKeyMutation, useGetLtiKeysQuery, useCreateLtiToolMutation, useUpdateLtiToolMutation, useGetLtiToolsQuery, useGetPlatformInfoQuery, useCreatePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useCreateRedirectTokenMutation, useGetShareableLinkQuery, useCreateShareableLinkMutation, useUpdateShareableLinkMutation, useCreateDisclaimerMutation, useUpdateDisclaimerMutation, useGetDisclaimersQuery, useUpdateRbacMentorAccessMutation, useGetRbacMentorAccessListQuery, useStartEvalRunMutation, useEvaluateEvalRunMutation, useGetEvalRunQuery, useDeleteEvalScoreMutation, useListEvalRunJudgesQuery, useCreateEvalScoreMutation, useDeleteEvalRunMutation, useExportEvalRunMutation, useListEvalRunsQuery, useLazyGetEvalRunQuery, evaluationsApiSlice, EVALUATIONS_TAGS, useGetPersonnalizedMentorsQuery, useCreateCallCredentialsMutation, useGetGuidedPromptsQuery, useUpdateChatSessionSharedMutation, useUpdateMessageFeedbackMutation, useLazyGetPromptsSearchQuery, useLazyGetGuidedPromptsQuery, useGetPublicMentorsQuery, useGetPeriodicAgentsQuery, useGetPeriodicAgentLogsListQuery, useCreatePeriodicAgentMutation, useDeletePeriodicAgentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useDeletePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation, useGetDisclaimerAgreementsQuery, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation } from '@iblai/data-layer';
|
|
5
|
+
import { 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, useGetAiSearchMentorsQuery, useStarMentorMutation, useUnstarMentorMutation, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmCostByService, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useGetLlmsQuery, 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, useGetCredentialsSchemaQuery, 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, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useUploadLightLogoMutation, useUploadDarkLogoMutation, useUpdatePlatformInfoMutation, LOGO_ENDPOINTS, useCreateEvalDatasetMutation, useAddEvalDatasetItemsMutation, useUploadEvalDatasetCsvMutation, useDeleteEvalDatasetItemMutation, useListEvalDatasetItemsQuery, evalTotalPages, useListEvalDatasetsQuery, useGetUserProjectsQuery, useCreateSessionIdMutation, useGetMentorCategoriesQuery, useGetTenantChatPrivacyConfigQuery as useGetTenantChatPrivacyConfigQuery$1, useGetCallConfigurationsQuery, useCreateCallConfigurationMutation, useUpdateCallConfigurationMutation, chatPrivacyApiSlice, useDeleteMentorMutation, useForkMentorMutation, useGetToolsQuery, useLazyGetMCPServersQuery, useOauthFindMutation, useLazyStartOAuthFlowQuery, useCreateMCPServerMutation, usePartialUpdateMCPServerMutation, useCreateMCPServerConnectionMutation, usePatchMCPServerConnectionMutation, useGetConnectedServicesQuery, useGetMCPServersQuery, useGetMCPServerConnectionsQuery, useUpdateMCPServerMutation, useDeleteMCPServerMutation, useEditMentorJsonMutation, useDisconnectServiceMutation, useGetPromptCategoriesQuery, PRIVACY_ACTIONS, PRIVACY_ENTITY_TYPES, useGetVoicesQuery, useGetVoiceQuery, isBaseAgentMentor, useGetGradeResultQuery, useOverrideGradeResultMutation, useGetChatHistoryFilterQuery, useListGradeResultsQuery, useGetMentorGraderConfigurationQuery, useListGraderCriteriaQuery, useCreateMentorGraderConfigurationMutation, useUpdateMentorGraderConfigurationMutation, useCreateGraderCriterionMutation, useUpdateGraderCriterionMutation, useDeleteGraderCriterionMutation, useGetSpendCapStatusQuery, useGetMentorPublicSettingsQuery, useGetChatHistoryQuery, useGetMentorSummariesQuery, useGetConversationMemoriesQuery, useGetSupportTicketsQuery, useGetSupportTicketMessagesQuery, useCreateSupportTicketMessageMutation, usePatchSupportTicketMutation, useCloseSupportTicketMutation, useCreateLtiMentorMutation, useUpdateLtiMentorMutation, useGetLtiMentorsQuery, useDeleteLtiMentorMutation, useCreateLtiKeyMutation, useUpdateLtiKeyMutation, useDeleteLtiKeyMutation, useGetLtiKeysQuery, useCreateLtiToolMutation, useUpdateLtiToolMutation, useGetLtiToolsQuery, useGetPlatformInfoQuery, useCreatePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useCreateRedirectTokenMutation, useGetShareableLinkQuery, useCreateShareableLinkMutation, useUpdateShareableLinkMutation, useCreateDisclaimerMutation, useUpdateDisclaimerMutation, useGetDisclaimersQuery, useUpdateRbacMentorAccessMutation, useGetRbacMentorAccessListQuery, useStartEvalRunMutation, useEvaluateEvalRunMutation, useGetEvalRunQuery, useDeleteEvalScoreMutation, useListEvalRunJudgesQuery, useCreateEvalScoreMutation, useDeleteEvalRunMutation, useExportEvalRunMutation, useListEvalRunsQuery, useLazyGetEvalRunQuery, evaluationsApiSlice, EVALUATIONS_TAGS, useGetPersonnalizedMentorsQuery, useCreateCallCredentialsMutation, useGetGuidedPromptsQuery, useUpdateChatSessionSharedMutation, useUpdateMessageFeedbackMutation, useLazyGetPromptsSearchQuery, useLazyGetGuidedPromptsQuery, useGetPublicMentorsQuery, useGetPeriodicAgentsQuery, useGetPeriodicAgentLogsListQuery, useCreatePeriodicAgentMutation, useDeletePeriodicAgentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useDeletePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation, useGetDisclaimerAgreementsQuery, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation } from '@iblai/data-layer';
|
|
6
6
|
import { removeAuthItem, setAuthItem, isTauriEmbeddedLLMHost, selectRbacPermissions, useCurrentTenant, canViewOtherUsersChatHistory, isPureWatcher, getInitials, useTenantMetadata, useUsername, selectStreaming, isLoggedIn, TOOL_NAME_MAP, WRITE_TODOS_TOOL, WithPermissions, canWriteField, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, selectNumberOfActiveChatMessages, TOOLS, hasRemoteAiConfig, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, removeFile, chatInputSliceActions, chatActions, WithFormPermissions, useTenantContext, TimeTracker, advancedTabsProperties, defaultSessionIds, pickWritableFields, ANONYMOUS_USERNAME as ANONYMOUS_USERNAME$3, redirectToAuthSpaJoinTenant, selectActiveTab, useAxdToken, useWelcomeMessage, markdownToPlainText, useCachedSessionId, use402ErrorCheck, use401TokenRefresh, selectTokenEnabled, selectToken, useServiceWorker, useUserAgreement, useAdvancedChat, sendMessageToParentWebsite, useMentorTools, useFileDragDrop, eventBus, RemoteEvents, selectEnableChatActionsPopup, advancedTabs, isInIframe, getAuthSpaJoinUrl, addMessage, clearFiles, MENTOR_VISIBILITY } from '@iblai/web-utils';
|
|
7
7
|
import { useDispatch, useSelector } from 'react-redux';
|
|
8
8
|
import { toast } from 'sonner';
|
|
@@ -96896,6 +96896,8 @@ var analyticsAnalyticsMonetizationStats$3 = {
|
|
|
96896
96896
|
tableHeadPlan: "Plan",
|
|
96897
96897
|
tableHeadAmount: "Amount",
|
|
96898
96898
|
tableHeadStatus: "Status",
|
|
96899
|
+
tableHeadUser: "User",
|
|
96900
|
+
tableHeadSubscribed: "Subscribed",
|
|
96899
96901
|
subscriberCountTotal: "{count} subscriber{plural} total",
|
|
96900
96902
|
previous: "Previous",
|
|
96901
96903
|
pageLabel: "Page {page}",
|
|
@@ -104217,6 +104219,8 @@ var analyticsAnalyticsMonetizationStats$2 = {
|
|
|
104217
104219
|
tableHeadPlan: "Plan",
|
|
104218
104220
|
tableHeadAmount: "Montant",
|
|
104219
104221
|
tableHeadStatus: "Statut",
|
|
104222
|
+
tableHeadUser: "Utilisateur",
|
|
104223
|
+
tableHeadSubscribed: "Abonné le",
|
|
104220
104224
|
subscriberCountTotal: "{count} abonné{plural} au total",
|
|
104221
104225
|
previous: "Précédent",
|
|
104222
104226
|
pageLabel: "Page {page}",
|
|
@@ -111538,6 +111542,8 @@ var analyticsAnalyticsMonetizationStats$1 = {
|
|
|
111538
111542
|
tableHeadPlan: "Plan",
|
|
111539
111543
|
tableHeadAmount: "Monto",
|
|
111540
111544
|
tableHeadStatus: "Estado",
|
|
111545
|
+
tableHeadUser: "Usuario",
|
|
111546
|
+
tableHeadSubscribed: "Suscrito el",
|
|
111541
111547
|
subscriberCountTotal: "{count} suscriptor{plural} en total",
|
|
111542
111548
|
previous: "Anterior",
|
|
111543
111549
|
pageLabel: "Página {page}",
|
|
@@ -118859,6 +118865,8 @@ var analyticsAnalyticsMonetizationStats = {
|
|
|
118859
118865
|
tableHeadPlan: "方案",
|
|
118860
118866
|
tableHeadAmount: "金额",
|
|
118861
118867
|
tableHeadStatus: "状态",
|
|
118868
|
+
tableHeadUser: "用户",
|
|
118869
|
+
tableHeadSubscribed: "订阅日期",
|
|
118862
118870
|
subscriberCountTotal: "共 {count} 位订阅者",
|
|
118863
118871
|
previous: "上一页",
|
|
118864
118872
|
pageLabel: "第 {page} 页",
|
|
@@ -179340,7 +179348,205 @@ const EmptyStats = ({ title = 'No data available' }) => {
|
|
|
179340
179348
|
return (jsx("div", { className: "flex justify-center items-center h-full", children: jsx("p", { className: "text-gray-500 text-sm", children: title }) }));
|
|
179341
179349
|
};
|
|
179342
179350
|
|
|
179343
|
-
|
|
179351
|
+
var COLLAPSIBLE_NAME = "Collapsible";
|
|
179352
|
+
var [createCollapsibleContext] = createContextScope$1(COLLAPSIBLE_NAME);
|
|
179353
|
+
var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
|
|
179354
|
+
var Collapsible$1 = React.forwardRef(
|
|
179355
|
+
(props, forwardedRef) => {
|
|
179356
|
+
const {
|
|
179357
|
+
__scopeCollapsible,
|
|
179358
|
+
open: openProp,
|
|
179359
|
+
defaultOpen,
|
|
179360
|
+
disabled,
|
|
179361
|
+
onOpenChange,
|
|
179362
|
+
...collapsibleProps
|
|
179363
|
+
} = props;
|
|
179364
|
+
const [open, setOpen] = useControllableState$1({
|
|
179365
|
+
prop: openProp,
|
|
179366
|
+
defaultProp: defaultOpen ?? false,
|
|
179367
|
+
onChange: onOpenChange,
|
|
179368
|
+
caller: COLLAPSIBLE_NAME
|
|
179369
|
+
});
|
|
179370
|
+
return /* @__PURE__ */ jsx(
|
|
179371
|
+
CollapsibleProvider,
|
|
179372
|
+
{
|
|
179373
|
+
scope: __scopeCollapsible,
|
|
179374
|
+
disabled,
|
|
179375
|
+
contentId: useId$1(),
|
|
179376
|
+
open,
|
|
179377
|
+
onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
179378
|
+
children: /* @__PURE__ */ jsx(
|
|
179379
|
+
Primitive$2.div,
|
|
179380
|
+
{
|
|
179381
|
+
"data-state": getState$3(open),
|
|
179382
|
+
"data-disabled": disabled ? "" : void 0,
|
|
179383
|
+
...collapsibleProps,
|
|
179384
|
+
ref: forwardedRef
|
|
179385
|
+
}
|
|
179386
|
+
)
|
|
179387
|
+
}
|
|
179388
|
+
);
|
|
179389
|
+
}
|
|
179390
|
+
);
|
|
179391
|
+
Collapsible$1.displayName = COLLAPSIBLE_NAME;
|
|
179392
|
+
var TRIGGER_NAME$3 = "CollapsibleTrigger";
|
|
179393
|
+
var CollapsibleTrigger$1 = React.forwardRef(
|
|
179394
|
+
(props, forwardedRef) => {
|
|
179395
|
+
const { __scopeCollapsible, ...triggerProps } = props;
|
|
179396
|
+
const context = useCollapsibleContext(TRIGGER_NAME$3, __scopeCollapsible);
|
|
179397
|
+
return /* @__PURE__ */ jsx(
|
|
179398
|
+
Primitive$2.button,
|
|
179399
|
+
{
|
|
179400
|
+
type: "button",
|
|
179401
|
+
"aria-controls": context.contentId,
|
|
179402
|
+
"aria-expanded": context.open || false,
|
|
179403
|
+
"data-state": getState$3(context.open),
|
|
179404
|
+
"data-disabled": context.disabled ? "" : void 0,
|
|
179405
|
+
disabled: context.disabled,
|
|
179406
|
+
...triggerProps,
|
|
179407
|
+
ref: forwardedRef,
|
|
179408
|
+
onClick: composeEventHandlers$1(props.onClick, context.onOpenToggle)
|
|
179409
|
+
}
|
|
179410
|
+
);
|
|
179411
|
+
}
|
|
179412
|
+
);
|
|
179413
|
+
CollapsibleTrigger$1.displayName = TRIGGER_NAME$3;
|
|
179414
|
+
var CONTENT_NAME$4 = "CollapsibleContent";
|
|
179415
|
+
var CollapsibleContent$1 = React.forwardRef(
|
|
179416
|
+
(props, forwardedRef) => {
|
|
179417
|
+
const { forceMount, ...contentProps } = props;
|
|
179418
|
+
const context = useCollapsibleContext(CONTENT_NAME$4, props.__scopeCollapsible);
|
|
179419
|
+
return /* @__PURE__ */ jsx(Presence$2, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
|
|
179420
|
+
}
|
|
179421
|
+
);
|
|
179422
|
+
CollapsibleContent$1.displayName = CONTENT_NAME$4;
|
|
179423
|
+
var CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
179424
|
+
const { __scopeCollapsible, present, children, ...contentProps } = props;
|
|
179425
|
+
const context = useCollapsibleContext(CONTENT_NAME$4, __scopeCollapsible);
|
|
179426
|
+
const [isPresent, setIsPresent] = React.useState(present);
|
|
179427
|
+
const ref = React.useRef(null);
|
|
179428
|
+
const composedRefs = useComposedRefs$1(forwardedRef, ref);
|
|
179429
|
+
const heightRef = React.useRef(0);
|
|
179430
|
+
const height = heightRef.current;
|
|
179431
|
+
const widthRef = React.useRef(0);
|
|
179432
|
+
const width = widthRef.current;
|
|
179433
|
+
const isOpen = context.open || isPresent;
|
|
179434
|
+
const isMountAnimationPreventedRef = React.useRef(isOpen);
|
|
179435
|
+
const originalStylesRef = React.useRef(void 0);
|
|
179436
|
+
React.useEffect(() => {
|
|
179437
|
+
const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
|
|
179438
|
+
return () => cancelAnimationFrame(rAF);
|
|
179439
|
+
}, []);
|
|
179440
|
+
useLayoutEffect2$1(() => {
|
|
179441
|
+
const node = ref.current;
|
|
179442
|
+
if (node) {
|
|
179443
|
+
originalStylesRef.current = originalStylesRef.current || {
|
|
179444
|
+
transitionDuration: node.style.transitionDuration,
|
|
179445
|
+
animationName: node.style.animationName
|
|
179446
|
+
};
|
|
179447
|
+
node.style.transitionDuration = "0s";
|
|
179448
|
+
node.style.animationName = "none";
|
|
179449
|
+
const rect = node.getBoundingClientRect();
|
|
179450
|
+
heightRef.current = rect.height;
|
|
179451
|
+
widthRef.current = rect.width;
|
|
179452
|
+
if (!isMountAnimationPreventedRef.current) {
|
|
179453
|
+
node.style.transitionDuration = originalStylesRef.current.transitionDuration;
|
|
179454
|
+
node.style.animationName = originalStylesRef.current.animationName;
|
|
179455
|
+
}
|
|
179456
|
+
setIsPresent(present);
|
|
179457
|
+
}
|
|
179458
|
+
}, [context.open, present]);
|
|
179459
|
+
return /* @__PURE__ */ jsx(
|
|
179460
|
+
Primitive$2.div,
|
|
179461
|
+
{
|
|
179462
|
+
"data-state": getState$3(context.open),
|
|
179463
|
+
"data-disabled": context.disabled ? "" : void 0,
|
|
179464
|
+
id: context.contentId,
|
|
179465
|
+
hidden: !isOpen,
|
|
179466
|
+
...contentProps,
|
|
179467
|
+
ref: composedRefs,
|
|
179468
|
+
style: {
|
|
179469
|
+
[`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,
|
|
179470
|
+
[`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,
|
|
179471
|
+
...props.style
|
|
179472
|
+
},
|
|
179473
|
+
children: isOpen && children
|
|
179474
|
+
}
|
|
179475
|
+
);
|
|
179476
|
+
});
|
|
179477
|
+
function getState$3(open) {
|
|
179478
|
+
return open ? "open" : "closed";
|
|
179479
|
+
}
|
|
179480
|
+
var Root$7 = Collapsible$1;
|
|
179481
|
+
|
|
179482
|
+
const Collapsible = Root$7;
|
|
179483
|
+
const CollapsibleTrigger = CollapsibleTrigger$1;
|
|
179484
|
+
const CollapsibleContent = CollapsibleContent$1;
|
|
179485
|
+
|
|
179486
|
+
const BAR_COLOR$1 = 'var(--color-amber-500, #f59e0b)';
|
|
179487
|
+
const ERROR_MESSAGES = {
|
|
179488
|
+
forbidden: 'Completion breakdown is not available for this learner.',
|
|
179489
|
+
not_enrolled: 'This learner is not enrolled in this course.',
|
|
179490
|
+
unavailable: 'Could not load the completion breakdown. Please try again later.',
|
|
179491
|
+
unauthorized: 'Completion breakdown is not available for this learner.',
|
|
179492
|
+
invalid_request: 'Completion breakdown is not available for this course.',
|
|
179493
|
+
unknown: 'Could not load the completion breakdown.',
|
|
179494
|
+
};
|
|
179495
|
+
// Backend values are already rounded to 2 decimals; show whole numbers
|
|
179496
|
+
// unless the value is fractional (e.g. 33.33).
|
|
179497
|
+
const formatPct = (value) => {
|
|
179498
|
+
const pct = value !== null && value !== void 0 ? value : 0;
|
|
179499
|
+
return `${Number.isInteger(pct) ? pct : pct.toFixed(2).replace(/\.?0+$/, '')}%`;
|
|
179500
|
+
};
|
|
179501
|
+
function CompletionBar({ value, label }) {
|
|
179502
|
+
const clamped = Math.min(Math.max(value, 0), 100);
|
|
179503
|
+
return (jsx("span", { className: "block h-1.5 w-full rounded-full bg-gray-200", role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": clamped, children: jsx("span", { className: "block h-1.5 rounded-full", style: { width: `${clamped}%`, backgroundColor: BAR_COLOR$1 } }) }));
|
|
179504
|
+
}
|
|
179505
|
+
function SubsectionRow({ block }) {
|
|
179506
|
+
return (jsxs("li", { className: "space-y-1 py-2", children: [jsxs("div", { className: "flex items-center justify-between gap-3", children: [jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-sm text-gray-700", children: [jsx("span", { className: "truncate", children: block.display_name }), block.special_exam_info ? (jsxs("span", { className: "inline-flex shrink-0 items-center gap-1 rounded-full bg-gray-100 px-2 py-0.5 text-[11px] text-gray-600", children: [jsx(Clock, { className: "h-3 w-3", "aria-hidden": "true" }), block.special_exam_info.short_description] })) : null] }), jsx("span", { className: "shrink-0 text-xs font-medium text-gray-600", children: formatPct(block.completion_percentage) })] }), jsx(CompletionBar, { value: block.completion_percentage, label: `${block.display_name} completion` })] }));
|
|
179507
|
+
}
|
|
179508
|
+
function SectionRow({ block }) {
|
|
179509
|
+
var _a;
|
|
179510
|
+
const [open, setOpen] = useState(false);
|
|
179511
|
+
const subsections = (_a = block.children) !== null && _a !== void 0 ? _a : [];
|
|
179512
|
+
return (jsx(Collapsible, { open: open, onOpenChange: setOpen, asChild: true, children: jsxs("li", { className: "py-2.5", children: [jsxs(CollapsibleTrigger, { className: "flex w-full items-center gap-2 rounded text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-500 disabled:cursor-default", disabled: subsections.length === 0, children: [jsx(ChevronRight, { className: `h-4 w-4 shrink-0 text-gray-400 transition-transform ${open ? 'rotate-90' : ''} ${subsections.length === 0 ? 'invisible' : ''}`, "aria-hidden": "true" }), jsxs("span", { className: "block min-w-0 flex-1 space-y-1.5", children: [jsxs("span", { className: "flex items-center justify-between gap-3", children: [jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-sm font-medium text-gray-900", children: [jsx("span", { className: "truncate", children: block.display_name }), block.complete ? (jsx(CircleCheck, { className: "h-4 w-4 shrink-0 text-green-600", "aria-label": "Complete" })) : null] }), jsx("span", { className: "shrink-0 text-sm font-semibold text-gray-700", children: formatPct(block.completion_percentage) })] }), jsx(CompletionBar, { value: block.completion_percentage, label: `${block.display_name} completion` })] })] }), subsections.length > 0 ? (jsx(CollapsibleContent, { children: jsx("ul", { className: "ml-6 mt-1 divide-y divide-gray-100", children: subsections.map((subsection) => (jsx(SubsectionRow, { block: subsection }, subsection.id))) }) })) : null] }) }));
|
|
179513
|
+
}
|
|
179514
|
+
/**
|
|
179515
|
+
* Per-section completion for one learner in one course, from the DM
|
|
179516
|
+
* completion outline. Percentages come from the backend as-is.
|
|
179517
|
+
*/
|
|
179518
|
+
function CourseCompletionBreakdown({ username, courseId, tenantKey, skip = false, }) {
|
|
179519
|
+
const { data, error, isLoading, isFetching, refetch } = useGetLearnerCourseOutlineQuery({ username, course_id: courseId, platform_key: tenantKey }, { skip: skip || !username || !courseId || !tenantKey });
|
|
179520
|
+
const sections = useMemo(() => (data ? getSections(data) : []), [data]);
|
|
179521
|
+
const resumePath = useMemo(() => {
|
|
179522
|
+
if (!data)
|
|
179523
|
+
return null;
|
|
179524
|
+
const resume = findResumeBlock(data);
|
|
179525
|
+
if (!resume || resume.id === data.id)
|
|
179526
|
+
return null;
|
|
179527
|
+
const entry = flattenOutline(data).find(({ block }) => block.id === resume.id);
|
|
179528
|
+
// Drop the course name; the modal header already shows it.
|
|
179529
|
+
return entry ? entry.path.slice(1).join(' › ') : null;
|
|
179530
|
+
}, [data]);
|
|
179531
|
+
const normalizedError = normalizeLearnerCompletionError(error);
|
|
179532
|
+
let body;
|
|
179533
|
+
if (isLoading || (isFetching && !data)) {
|
|
179534
|
+
body = jsx("p", { className: "py-4 text-sm text-gray-500", children: "Loading completion breakdown..." });
|
|
179535
|
+
}
|
|
179536
|
+
else if (normalizedError) {
|
|
179537
|
+
body = (jsxs("div", { className: "flex items-center justify-between gap-3 py-2", children: [jsx("p", { className: "text-sm text-gray-500", children: ERROR_MESSAGES[normalizedError.kind] }), normalizedError.retryable ? (jsx(Button$1, { variant: "outline", size: "sm", onClick: () => refetch(), disabled: isFetching, children: "Retry" })) : null] }));
|
|
179538
|
+
}
|
|
179539
|
+
else if (sections.length === 0) {
|
|
179540
|
+
body = jsx("p", { className: "py-2 text-sm text-gray-500", children: "No sections in this course yet." });
|
|
179541
|
+
}
|
|
179542
|
+
else {
|
|
179543
|
+
body = (jsxs(Fragment$1, { children: [resumePath ? (jsxs("p", { className: "text-xs text-gray-500", children: ["Last visited: ", jsx("span", { className: "font-medium text-gray-700", children: resumePath })] })) : null, jsx("ul", { className: "divide-y divide-[oklch(0.922_0_0)]", children: sections.map((section) => (jsx(SectionRow, { block: section.block }, section.id))) })] }));
|
|
179544
|
+
}
|
|
179545
|
+
return (jsxs("section", { className: "space-y-2 rounded-lg border p-4", style: { borderColor: 'oklch(.922 0 0)' }, "aria-labelledby": "completion-breakdown-heading", children: [jsxs("div", { children: [jsx("h4", { id: "completion-breakdown-heading", className: "text-sm font-semibold text-gray-900", children: "Completion breakdown" }), jsx("p", { className: "text-xs text-gray-500", children: "Progress through each section of this course." })] }), body] }));
|
|
179546
|
+
}
|
|
179547
|
+
|
|
179548
|
+
// Theme token (the same one bg-amber-500 resolves to), with Tailwind's default as fallback.
|
|
179549
|
+
const COMPLETED_COLOR = 'var(--color-amber-500, #f59e0b)';
|
|
179344
179550
|
const REMAINING_COLOR = '#E5E7EB';
|
|
179345
179551
|
const formatDate$1 = (value) => {
|
|
179346
179552
|
if (!value)
|
|
@@ -179446,7 +179652,7 @@ function EnrolledUserProgressModal({ open, onOpenChange, username, userName, ema
|
|
|
179446
179652
|
const passingPct = getPassingPct((_h = (_g = item === null || item === void 0 ? void 0 : item.edx_progress) === null || _g === void 0 ? void 0 : _g.grading_policy) === null || _h === void 0 ? void 0 : _h.grade_range);
|
|
179447
179653
|
return (jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: jsxs(DialogContent, { className: "max-w-2xl max-h-[85vh] overflow-y-auto", "aria-label": "Enrolled user progress", children: [jsxs(DialogHeader, { children: [jsx(DialogTitle, { children: userName || username || 'Learner progress' }), jsxs(DialogDescription, { children: [email ? `${email} · ` : '', resolvedName || (isProgram ? 'Program progress' : 'Course progress')] })] }), loading ? (jsx("div", { className: "flex items-center justify-center py-12", children: jsx("div", { className: "text-sm text-gray-500", children: "Loading..." }) })) : !item ? (jsx(EmptyStats, { title: "No progress data available" })) : (jsxs("div", { className: "space-y-6", children: [jsxs("div", { className: "relative mx-auto", style: { width: 220, height: 220 }, children: [jsx(ResponsiveContainer, { width: "100%", height: "100%", children: jsx(PieChart, { children: jsxs(Pie, { data: pieData, dataKey: "value", cx: "50%", cy: "50%", innerRadius: 75, outerRadius: 100, startAngle: 90, endAngle: -270, stroke: "none", isAnimationActive: false, children: [jsx(Cell, { fill: COMPLETED_COLOR }), jsx(Cell, { fill: REMAINING_COLOR })] }) }) }), jsxs("div", { className: "absolute inset-0 flex flex-col items-center justify-center pointer-events-none", children: [jsxs("span", { className: "text-3xl font-bold text-gray-700", children: [percentage, "%"] }), jsx("span", { className: "text-sm text-gray-500", children: "completed" })] })] }), jsxs("div", { className: "divide-y divide-[oklch(0.922_0_0)]", children: [jsx(DetailRow, { label: "Status", children: jsx("span", { className: `inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${((_j = item.completion) === null || _j === void 0 ? void 0 : _j.passed)
|
|
179448
179654
|
? 'bg-green-50 text-green-700'
|
|
179449
|
-
: 'bg-gray-100 text-gray-600'}`, children: ((_k = item.completion) === null || _k === void 0 ? void 0 : _k.passed) ? 'Passed' : 'Not passed' }) }), jsx(DetailRow, { label: "Passed on", children: formatDate$1((_l = item.completion) === null || _l === void 0 ? void 0 : _l.passed_date) }), jsx(DetailRow, { label: "Time spent", children: item.time_spent || '—' }), jsx(DetailRow, { label: "Enrollment date", children: formatDate$1((_o = (_m = item.enrollment) === null || _m === void 0 ? void 0 : _m.started) !== null && _o !== void 0 ? _o : (_p = item.enrollment) === null || _p === void 0 ? void 0 : _p.created) })] }), ((_s = (_r = (_q = item.edx_progress) === null || _q === void 0 ? void 0 : _q.grading_policy) === null || _r === void 0 ? void 0 : _r.assignment_policies) === null || _s === void 0 ? void 0 : _s.length) ? (jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "rounded-lg border p-4", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("h4", { className: "text-sm font-semibold text-gray-900", children: "Grades" }), jsx("p", { className: "text-xs text-gray-500", children: "This represents the weighted grade against the grade needed to pass this course." }), jsx(GradeBar, { currentPct: currentGradePct, passingPct: passingPct })] }), jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 px-4 py-3", children: [jsx(TriangleAlert, { className: "mt-0.5 h-4 w-4 shrink-0 text-amber-600" }), jsxs("span", { className: "text-sm font-medium text-gray-800", children: ["A weighted grade of ", passingPct, "% is required to pass in this course"] })] }), jsxs("div", { className: "rounded-lg border p-4 space-y-3", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("h4", { className: "text-sm font-semibold text-gray-900", children: "Grade summary" }), jsx("div", { className: "overflow-x-auto", children: jsxs("table", { className: "w-full border-collapse text-sm", children: [jsx("thead", { children: jsxs("tr", { className: "bg-amber-50 text-[11px] uppercase tracking-wide text-gray-600", children: [jsx("th", { className: "px-3 py-2 text-left font-medium", children: "Assignment type" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Weight" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Grade" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Weighted grade" })] }) }), jsxs("tbody", { children: [gradeSummary === null || gradeSummary === void 0 ? void 0 : gradeSummary.rows.map((row, index) => (jsxs("tr", { className: index % 2 === 0 ? '' : 'bg-gray-50', children: [jsxs("td", { className: "px-3 py-2 text-gray-800", children: [row.type, row.footnote ? (jsx("sup", { className: "ml-0.5 text-amber-500", children: row.footnote })) : null] }), jsxs("td", { className: "px-3 py-2 text-right text-gray-700", children: [row.weightPct, "%"] }), jsxs("td", { className: "px-3 py-2 text-right text-gray-700", children: [row.gradePct, "%"] }), jsxs("td", { className: "px-3 py-2 text-right font-semibold text-amber-600", children: [row.weightedGradePct, "%"] })] }, row.type))), jsxs("tr", { className: "border-l-2 border-amber-400 bg-amber-50", children: [jsx("td", { className: "px-3 py-2 font-medium text-gray-800", colSpan: 3, children: "Current weighted grade summary" }), jsxs("td", { className: "px-3 py-2 text-right font-bold text-amber-600", children: [currentGradePct, "%"] })] })] })] }) }), gradeSummary && gradeSummary.footnotes.length > 0 ? (jsx("div", { className: "space-y-1", children: gradeSummary.footnotes.map((note, index) => (jsxs("p", { className: "text-xs text-gray-500", children: [jsx("sup", { className: "text-amber-500", children: index + 1 }), " ", note] }, note))) })) : null] })] })) : null] }))] }) }));
|
|
179655
|
+
: 'bg-gray-100 text-gray-600'}`, children: ((_k = item.completion) === null || _k === void 0 ? void 0 : _k.passed) ? 'Passed' : 'Not passed' }) }), jsx(DetailRow, { label: "Passed on", children: formatDate$1((_l = item.completion) === null || _l === void 0 ? void 0 : _l.passed_date) }), jsx(DetailRow, { label: "Time spent", children: item.time_spent || '—' }), jsx(DetailRow, { label: "Enrollment date", children: formatDate$1((_o = (_m = item.enrollment) === null || _m === void 0 ? void 0 : _m.started) !== null && _o !== void 0 ? _o : (_p = item.enrollment) === null || _p === void 0 ? void 0 : _p.created) })] }), !isProgram ? (jsx(CourseCompletionBreakdown, { username: username, courseId: normalizedId, tenantKey: tenantKey, skip: !open })) : null, ((_s = (_r = (_q = item.edx_progress) === null || _q === void 0 ? void 0 : _q.grading_policy) === null || _r === void 0 ? void 0 : _r.assignment_policies) === null || _s === void 0 ? void 0 : _s.length) ? (jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "rounded-lg border p-4", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("h4", { className: "text-sm font-semibold text-gray-900", children: "Grades" }), jsx("p", { className: "text-xs text-gray-500", children: "This represents the weighted grade against the grade needed to pass this course." }), jsx(GradeBar, { currentPct: currentGradePct, passingPct: passingPct })] }), jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 px-4 py-3", children: [jsx(TriangleAlert, { className: "mt-0.5 h-4 w-4 shrink-0 text-amber-600" }), jsxs("span", { className: "text-sm font-medium text-gray-800", children: ["A weighted grade of ", passingPct, "% is required to pass in this course"] })] }), jsxs("div", { className: "rounded-lg border p-4 space-y-3", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("h4", { className: "text-sm font-semibold text-gray-900", children: "Grade summary" }), jsx("div", { className: "overflow-x-auto", children: jsxs("table", { className: "w-full border-collapse text-sm", children: [jsx("thead", { children: jsxs("tr", { className: "bg-amber-50 text-[11px] uppercase tracking-wide text-gray-600", children: [jsx("th", { className: "px-3 py-2 text-left font-medium", children: "Assignment type" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Weight" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Grade" }), jsx("th", { className: "px-3 py-2 text-right font-medium", children: "Weighted grade" })] }) }), jsxs("tbody", { children: [gradeSummary === null || gradeSummary === void 0 ? void 0 : gradeSummary.rows.map((row, index) => (jsxs("tr", { className: index % 2 === 0 ? '' : 'bg-gray-50', children: [jsxs("td", { className: "px-3 py-2 text-gray-800", children: [row.type, row.footnote ? (jsx("sup", { className: "ml-0.5 text-amber-500", children: row.footnote })) : null] }), jsxs("td", { className: "px-3 py-2 text-right text-gray-700", children: [row.weightPct, "%"] }), jsxs("td", { className: "px-3 py-2 text-right text-gray-700", children: [row.gradePct, "%"] }), jsxs("td", { className: "px-3 py-2 text-right font-semibold text-amber-600", children: [row.weightedGradePct, "%"] })] }, row.type))), jsxs("tr", { className: "border-l-2 border-amber-400 bg-amber-50", children: [jsx("td", { className: "px-3 py-2 font-medium text-gray-800", colSpan: 3, children: "Current weighted grade summary" }), jsxs("td", { className: "px-3 py-2 text-right font-bold text-amber-600", children: [currentGradePct, "%"] })] })] })] }) }), gradeSummary && gradeSummary.footnotes.length > 0 ? (jsx("div", { className: "space-y-1", children: gradeSummary.footnotes.map((note, index) => (jsxs("p", { className: "text-xs text-gray-500", children: [jsx("sup", { className: "text-amber-500", children: index + 1 }), " ", note] }, note))) })) : null] })] })) : null] }))] }) }));
|
|
179450
179656
|
}
|
|
179451
179657
|
function DetailRow({ label, children }) {
|
|
179452
179658
|
return (jsxs("div", { className: "flex items-center justify-between gap-4 py-2", children: [jsx("span", { className: "text-sm text-gray-500", children: label }), jsx("span", { className: "text-sm font-medium text-gray-900 text-right", children: children })] }));
|
|
@@ -181751,7 +181957,7 @@ function PreviousMonthButton(props) {
|
|
|
181751
181957
|
* @group Components
|
|
181752
181958
|
* @see https://daypicker.dev/guides/custom-components
|
|
181753
181959
|
*/
|
|
181754
|
-
function Root$
|
|
181960
|
+
function Root$6(props) {
|
|
181755
181961
|
const { rootRef, ...rest } = props;
|
|
181756
181962
|
return React__default.createElement("div", { ...rest, ref: rootRef });
|
|
181757
181963
|
}
|
|
@@ -181859,7 +182065,7 @@ var components$1 = /*#__PURE__*/Object.freeze({
|
|
|
181859
182065
|
NextMonthButton: NextMonthButton,
|
|
181860
182066
|
Option: Option,
|
|
181861
182067
|
PreviousMonthButton: PreviousMonthButton,
|
|
181862
|
-
Root: Root$
|
|
182068
|
+
Root: Root$6,
|
|
181863
182069
|
Select: Select,
|
|
181864
182070
|
Week: Week,
|
|
181865
182071
|
WeekNumber: WeekNumber,
|
|
@@ -183929,11 +184135,11 @@ var PopoverAnchor$1 = React.forwardRef(
|
|
|
183929
184135
|
}
|
|
183930
184136
|
);
|
|
183931
184137
|
PopoverAnchor$1.displayName = ANCHOR_NAME$1;
|
|
183932
|
-
var TRIGGER_NAME$
|
|
184138
|
+
var TRIGGER_NAME$2 = "PopoverTrigger";
|
|
183933
184139
|
var PopoverTrigger$1 = React.forwardRef(
|
|
183934
184140
|
(props, forwardedRef) => {
|
|
183935
184141
|
const { __scopePopover, ...triggerProps } = props;
|
|
183936
|
-
const context = usePopoverContext(TRIGGER_NAME$
|
|
184142
|
+
const context = usePopoverContext(TRIGGER_NAME$2, __scopePopover);
|
|
183937
184143
|
const popperScope = usePopperScope$1(__scopePopover);
|
|
183938
184144
|
const composedTriggerRef = useComposedRefs$1(forwardedRef, context.triggerRef);
|
|
183939
184145
|
const trigger = /* @__PURE__ */ jsx(
|
|
@@ -183943,7 +184149,7 @@ var PopoverTrigger$1 = React.forwardRef(
|
|
|
183943
184149
|
"aria-haspopup": "dialog",
|
|
183944
184150
|
"aria-expanded": context.open,
|
|
183945
184151
|
"aria-controls": context.contentId,
|
|
183946
|
-
"data-state": getState$
|
|
184152
|
+
"data-state": getState$2(context.open),
|
|
183947
184153
|
...triggerProps,
|
|
183948
184154
|
ref: composedTriggerRef,
|
|
183949
184155
|
onClick: composeEventHandlers$2(props.onClick, context.onOpenToggle)
|
|
@@ -183952,7 +184158,7 @@ var PopoverTrigger$1 = React.forwardRef(
|
|
|
183952
184158
|
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(Anchor$3, { asChild: true, ...popperScope, children: trigger });
|
|
183953
184159
|
}
|
|
183954
184160
|
);
|
|
183955
|
-
PopoverTrigger$1.displayName = TRIGGER_NAME$
|
|
184161
|
+
PopoverTrigger$1.displayName = TRIGGER_NAME$2;
|
|
183956
184162
|
var PORTAL_NAME$2 = "PopoverPortal";
|
|
183957
184163
|
var [PortalProvider$1, usePortalContext$1] = createPopoverContext(PORTAL_NAME$2, {
|
|
183958
184164
|
forceMount: void 0
|
|
@@ -183963,20 +184169,20 @@ var PopoverPortal = (props) => {
|
|
|
183963
184169
|
return /* @__PURE__ */ jsx(PortalProvider$1, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$7, { asChild: true, container, children }) }) });
|
|
183964
184170
|
};
|
|
183965
184171
|
PopoverPortal.displayName = PORTAL_NAME$2;
|
|
183966
|
-
var CONTENT_NAME$
|
|
184172
|
+
var CONTENT_NAME$3 = "PopoverContent";
|
|
183967
184173
|
var PopoverContent$1 = React.forwardRef(
|
|
183968
184174
|
(props, forwardedRef) => {
|
|
183969
|
-
const portalContext = usePortalContext$1(CONTENT_NAME$
|
|
184175
|
+
const portalContext = usePortalContext$1(CONTENT_NAME$3, props.__scopePopover);
|
|
183970
184176
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
183971
|
-
const context = usePopoverContext(CONTENT_NAME$
|
|
184177
|
+
const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
|
|
183972
184178
|
return /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
|
|
183973
184179
|
}
|
|
183974
184180
|
);
|
|
183975
|
-
PopoverContent$1.displayName = CONTENT_NAME$
|
|
184181
|
+
PopoverContent$1.displayName = CONTENT_NAME$3;
|
|
183976
184182
|
var Slot = createSlot$1("PopoverContent.RemoveScroll");
|
|
183977
184183
|
var PopoverContentModal = React.forwardRef(
|
|
183978
184184
|
(props, forwardedRef) => {
|
|
183979
|
-
const context = usePopoverContext(CONTENT_NAME$
|
|
184185
|
+
const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
|
|
183980
184186
|
const contentRef = React.useRef(null);
|
|
183981
184187
|
const composedRefs = useComposedRefs$1(forwardedRef, contentRef);
|
|
183982
184188
|
const isRightClickOutsideRef = React.useRef(false);
|
|
@@ -184016,7 +184222,7 @@ var PopoverContentModal = React.forwardRef(
|
|
|
184016
184222
|
);
|
|
184017
184223
|
var PopoverContentNonModal = React.forwardRef(
|
|
184018
184224
|
(props, forwardedRef) => {
|
|
184019
|
-
const context = usePopoverContext(CONTENT_NAME$
|
|
184225
|
+
const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
|
|
184020
184226
|
const hasInteractedOutsideRef = React.useRef(false);
|
|
184021
184227
|
const hasPointerDownOutsideRef = React.useRef(false);
|
|
184022
184228
|
return /* @__PURE__ */ jsx(
|
|
@@ -184068,7 +184274,7 @@ var PopoverContentImpl = React.forwardRef(
|
|
|
184068
184274
|
onInteractOutside,
|
|
184069
184275
|
...contentProps
|
|
184070
184276
|
} = props;
|
|
184071
|
-
const context = usePopoverContext(CONTENT_NAME$
|
|
184277
|
+
const context = usePopoverContext(CONTENT_NAME$3, __scopePopover);
|
|
184072
184278
|
const popperScope = usePopperScope$1(__scopePopover);
|
|
184073
184279
|
useFocusGuards();
|
|
184074
184280
|
return /* @__PURE__ */ jsx(
|
|
@@ -184092,7 +184298,7 @@ var PopoverContentImpl = React.forwardRef(
|
|
|
184092
184298
|
children: /* @__PURE__ */ jsx(
|
|
184093
184299
|
Content$3,
|
|
184094
184300
|
{
|
|
184095
|
-
"data-state": getState$
|
|
184301
|
+
"data-state": getState$2(context.open),
|
|
184096
184302
|
role: "dialog",
|
|
184097
184303
|
id: context.contentId,
|
|
184098
184304
|
...popperScope,
|
|
@@ -184143,7 +184349,7 @@ var PopoverArrow = React.forwardRef(
|
|
|
184143
184349
|
}
|
|
184144
184350
|
);
|
|
184145
184351
|
PopoverArrow.displayName = ARROW_NAME$2;
|
|
184146
|
-
function getState$
|
|
184352
|
+
function getState$2(open) {
|
|
184147
184353
|
return open ? "open" : "closed";
|
|
184148
184354
|
}
|
|
184149
184355
|
var Root2$4 = Popover$1;
|
|
@@ -220897,7 +221103,7 @@ var Checkbox$1 = React.forwardRef(
|
|
|
220897
221103
|
role: "checkbox",
|
|
220898
221104
|
"aria-checked": isIndeterminate(checked) ? "mixed" : checked,
|
|
220899
221105
|
"aria-required": required,
|
|
220900
|
-
"data-state": getState$
|
|
221106
|
+
"data-state": getState$1(checked),
|
|
220901
221107
|
"data-disabled": disabled ? "" : void 0,
|
|
220902
221108
|
disabled,
|
|
220903
221109
|
value,
|
|
@@ -220942,7 +221148,7 @@ var CheckboxIndicator = React.forwardRef(
|
|
|
220942
221148
|
return /* @__PURE__ */ jsx(Presence$1, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(
|
|
220943
221149
|
Primitive$3.span,
|
|
220944
221150
|
{
|
|
220945
|
-
"data-state": getState$
|
|
221151
|
+
"data-state": getState$1(context.state),
|
|
220946
221152
|
"data-disabled": context.disabled ? "" : void 0,
|
|
220947
221153
|
...indicatorProps,
|
|
220948
221154
|
ref: forwardedRef,
|
|
@@ -221008,14 +221214,14 @@ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
|
|
|
221008
221214
|
function isIndeterminate(checked) {
|
|
221009
221215
|
return checked === "indeterminate";
|
|
221010
221216
|
}
|
|
221011
|
-
function getState$
|
|
221217
|
+
function getState$1(checked) {
|
|
221012
221218
|
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
221013
221219
|
}
|
|
221014
|
-
var Root$
|
|
221220
|
+
var Root$5 = Checkbox$1;
|
|
221015
221221
|
var Indicator$1 = CheckboxIndicator;
|
|
221016
221222
|
|
|
221017
|
-
const Checkbox = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$
|
|
221018
|
-
Checkbox.displayName = Root$
|
|
221223
|
+
const Checkbox = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$5, { ref: ref, className: cn("peer border-primary focus-visible:ring-ring h-4 w-4 shrink-0 rounded-sm border shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-500 data-[state=checked]:text-white", className), ...props, children: jsx(Indicator$1, { className: cn("flex items-center justify-center text-current"), children: jsx(Check, { className: "h-4 w-4" }) }) })));
|
|
221224
|
+
Checkbox.displayName = Root$5.displayName;
|
|
221019
221225
|
|
|
221020
221226
|
function CoursesTab({ tenant, currentPage, itemsPerPage, hasManageUsersPermission = false, }) {
|
|
221021
221227
|
var _a;
|
|
@@ -221989,141 +222195,6 @@ function RetrievedDocumentsButton({ sessionId = '', documents, className, label,
|
|
|
221989
222195
|
}, "data-testid": "retrieved-documents-button", children: [jsx(FileText, { className: "h-4 w-4 text-blue-600" }), jsx("span", { children: label !== null && label !== void 0 ? label : t('retrievedDocumentsButton.title') })] }), jsx(Dialog, { open: isOpen, onOpenChange: setIsOpen, children: jsxs(DialogContent, { className: "flex max-h-[80vh] flex-col gap-0 p-0 sm:max-w-[425px] md:max-w-[600px]", children: [jsx(DialogHeader, { className: "border-b border-gray-200 px-4 py-2", children: jsxs(DialogTitle, { className: "flex items-center gap-2 text-base font-medium text-[#646464]", children: [jsx(FileText, { className: "h-5 w-5 text-blue-600" }), t('retrievedDocumentsButton.title')] }) }), jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", "data-testid": "retrieved-documents-scroll", children: jsx(DocumentSidebar, { isModal: true, sessionId: sessionId, documents: documents }) })] }) })] }));
|
|
221990
222196
|
}
|
|
221991
222197
|
|
|
221992
|
-
var COLLAPSIBLE_NAME = "Collapsible";
|
|
221993
|
-
var [createCollapsibleContext] = createContextScope$1(COLLAPSIBLE_NAME);
|
|
221994
|
-
var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
|
|
221995
|
-
var Collapsible$1 = React.forwardRef(
|
|
221996
|
-
(props, forwardedRef) => {
|
|
221997
|
-
const {
|
|
221998
|
-
__scopeCollapsible,
|
|
221999
|
-
open: openProp,
|
|
222000
|
-
defaultOpen,
|
|
222001
|
-
disabled,
|
|
222002
|
-
onOpenChange,
|
|
222003
|
-
...collapsibleProps
|
|
222004
|
-
} = props;
|
|
222005
|
-
const [open, setOpen] = useControllableState$1({
|
|
222006
|
-
prop: openProp,
|
|
222007
|
-
defaultProp: defaultOpen ?? false,
|
|
222008
|
-
onChange: onOpenChange,
|
|
222009
|
-
caller: COLLAPSIBLE_NAME
|
|
222010
|
-
});
|
|
222011
|
-
return /* @__PURE__ */ jsx(
|
|
222012
|
-
CollapsibleProvider,
|
|
222013
|
-
{
|
|
222014
|
-
scope: __scopeCollapsible,
|
|
222015
|
-
disabled,
|
|
222016
|
-
contentId: useId$1(),
|
|
222017
|
-
open,
|
|
222018
|
-
onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
222019
|
-
children: /* @__PURE__ */ jsx(
|
|
222020
|
-
Primitive$2.div,
|
|
222021
|
-
{
|
|
222022
|
-
"data-state": getState$1(open),
|
|
222023
|
-
"data-disabled": disabled ? "" : void 0,
|
|
222024
|
-
...collapsibleProps,
|
|
222025
|
-
ref: forwardedRef
|
|
222026
|
-
}
|
|
222027
|
-
)
|
|
222028
|
-
}
|
|
222029
|
-
);
|
|
222030
|
-
}
|
|
222031
|
-
);
|
|
222032
|
-
Collapsible$1.displayName = COLLAPSIBLE_NAME;
|
|
222033
|
-
var TRIGGER_NAME$2 = "CollapsibleTrigger";
|
|
222034
|
-
var CollapsibleTrigger$1 = React.forwardRef(
|
|
222035
|
-
(props, forwardedRef) => {
|
|
222036
|
-
const { __scopeCollapsible, ...triggerProps } = props;
|
|
222037
|
-
const context = useCollapsibleContext(TRIGGER_NAME$2, __scopeCollapsible);
|
|
222038
|
-
return /* @__PURE__ */ jsx(
|
|
222039
|
-
Primitive$2.button,
|
|
222040
|
-
{
|
|
222041
|
-
type: "button",
|
|
222042
|
-
"aria-controls": context.contentId,
|
|
222043
|
-
"aria-expanded": context.open || false,
|
|
222044
|
-
"data-state": getState$1(context.open),
|
|
222045
|
-
"data-disabled": context.disabled ? "" : void 0,
|
|
222046
|
-
disabled: context.disabled,
|
|
222047
|
-
...triggerProps,
|
|
222048
|
-
ref: forwardedRef,
|
|
222049
|
-
onClick: composeEventHandlers$1(props.onClick, context.onOpenToggle)
|
|
222050
|
-
}
|
|
222051
|
-
);
|
|
222052
|
-
}
|
|
222053
|
-
);
|
|
222054
|
-
CollapsibleTrigger$1.displayName = TRIGGER_NAME$2;
|
|
222055
|
-
var CONTENT_NAME$3 = "CollapsibleContent";
|
|
222056
|
-
var CollapsibleContent$1 = React.forwardRef(
|
|
222057
|
-
(props, forwardedRef) => {
|
|
222058
|
-
const { forceMount, ...contentProps } = props;
|
|
222059
|
-
const context = useCollapsibleContext(CONTENT_NAME$3, props.__scopeCollapsible);
|
|
222060
|
-
return /* @__PURE__ */ jsx(Presence$2, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
|
|
222061
|
-
}
|
|
222062
|
-
);
|
|
222063
|
-
CollapsibleContent$1.displayName = CONTENT_NAME$3;
|
|
222064
|
-
var CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
222065
|
-
const { __scopeCollapsible, present, children, ...contentProps } = props;
|
|
222066
|
-
const context = useCollapsibleContext(CONTENT_NAME$3, __scopeCollapsible);
|
|
222067
|
-
const [isPresent, setIsPresent] = React.useState(present);
|
|
222068
|
-
const ref = React.useRef(null);
|
|
222069
|
-
const composedRefs = useComposedRefs$1(forwardedRef, ref);
|
|
222070
|
-
const heightRef = React.useRef(0);
|
|
222071
|
-
const height = heightRef.current;
|
|
222072
|
-
const widthRef = React.useRef(0);
|
|
222073
|
-
const width = widthRef.current;
|
|
222074
|
-
const isOpen = context.open || isPresent;
|
|
222075
|
-
const isMountAnimationPreventedRef = React.useRef(isOpen);
|
|
222076
|
-
const originalStylesRef = React.useRef(void 0);
|
|
222077
|
-
React.useEffect(() => {
|
|
222078
|
-
const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
|
|
222079
|
-
return () => cancelAnimationFrame(rAF);
|
|
222080
|
-
}, []);
|
|
222081
|
-
useLayoutEffect2$1(() => {
|
|
222082
|
-
const node = ref.current;
|
|
222083
|
-
if (node) {
|
|
222084
|
-
originalStylesRef.current = originalStylesRef.current || {
|
|
222085
|
-
transitionDuration: node.style.transitionDuration,
|
|
222086
|
-
animationName: node.style.animationName
|
|
222087
|
-
};
|
|
222088
|
-
node.style.transitionDuration = "0s";
|
|
222089
|
-
node.style.animationName = "none";
|
|
222090
|
-
const rect = node.getBoundingClientRect();
|
|
222091
|
-
heightRef.current = rect.height;
|
|
222092
|
-
widthRef.current = rect.width;
|
|
222093
|
-
if (!isMountAnimationPreventedRef.current) {
|
|
222094
|
-
node.style.transitionDuration = originalStylesRef.current.transitionDuration;
|
|
222095
|
-
node.style.animationName = originalStylesRef.current.animationName;
|
|
222096
|
-
}
|
|
222097
|
-
setIsPresent(present);
|
|
222098
|
-
}
|
|
222099
|
-
}, [context.open, present]);
|
|
222100
|
-
return /* @__PURE__ */ jsx(
|
|
222101
|
-
Primitive$2.div,
|
|
222102
|
-
{
|
|
222103
|
-
"data-state": getState$1(context.open),
|
|
222104
|
-
"data-disabled": context.disabled ? "" : void 0,
|
|
222105
|
-
id: context.contentId,
|
|
222106
|
-
hidden: !isOpen,
|
|
222107
|
-
...contentProps,
|
|
222108
|
-
ref: composedRefs,
|
|
222109
|
-
style: {
|
|
222110
|
-
[`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,
|
|
222111
|
-
[`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,
|
|
222112
|
-
...props.style
|
|
222113
|
-
},
|
|
222114
|
-
children: isOpen && children
|
|
222115
|
-
}
|
|
222116
|
-
);
|
|
222117
|
-
});
|
|
222118
|
-
function getState$1(open) {
|
|
222119
|
-
return open ? "open" : "closed";
|
|
222120
|
-
}
|
|
222121
|
-
var Root$5 = Collapsible$1;
|
|
222122
|
-
|
|
222123
|
-
const Collapsible = Root$5;
|
|
222124
|
-
const CollapsibleTrigger = CollapsibleTrigger$1;
|
|
222125
|
-
const CollapsibleContent = CollapsibleContent$1;
|
|
222126
|
-
|
|
222127
222198
|
function getFriendlyToolName(toolName) {
|
|
222128
222199
|
if (TOOL_NAME_MAP === null || TOOL_NAME_MAP === void 0 ? void 0 : TOOL_NAME_MAP[toolName])
|
|
222129
222200
|
return TOOL_NAME_MAP[toolName];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iblai/iblai-js",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.22.0",
|
|
4
4
|
"description": "Unified JavaScript SDK for IBL.ai — re-exports data-layer, web-containers, and web-utils under a single package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -76,10 +76,10 @@
|
|
|
76
76
|
"axios": "1.13.6",
|
|
77
77
|
"dotenv": "16.6.1",
|
|
78
78
|
"winston": "3.19.0",
|
|
79
|
-
"@iblai/data-layer": "1.
|
|
80
|
-
"@iblai/web-containers": "1.
|
|
79
|
+
"@iblai/data-layer": "1.22.0",
|
|
80
|
+
"@iblai/web-containers": "1.29.0",
|
|
81
81
|
"@iblai/mcp": "1.19.0",
|
|
82
|
-
"@iblai/web-utils": "2.
|
|
82
|
+
"@iblai/web-utils": "2.6.0"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
85
|
"@iblai/iblai-api": "4.166.0-ai",
|