@iblai/iblai-js 2.27.0 → 2.28.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.
|
@@ -11,7 +11,6 @@ import ReactDOM__default from 'react-dom';
|
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { RemoveScroll } from 'react-remove-scroll';
|
|
13
13
|
import { skipToken } from '@reduxjs/toolkit/query';
|
|
14
|
-
import Link$2 from 'next/link';
|
|
15
14
|
import { useParams, useSearchParams, useRouter, usePathname } from 'next/navigation';
|
|
16
15
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
17
16
|
import { createDialogScope } from '@radix-ui/react-dialog';
|
|
@@ -226,7 +225,7 @@ function useLlmProviderCatalogue({ org, userId, mentorId }) {
|
|
|
226
225
|
};
|
|
227
226
|
}, [rowsByName, rowsByLooseName, rowForModel]);
|
|
228
227
|
}
|
|
229
|
-
const clean$
|
|
228
|
+
const clean$2 = (value) => (value === null || value === void 0 ? void 0 : value.trim()) || undefined;
|
|
230
229
|
/**
|
|
231
230
|
* The label to show for a model.
|
|
232
231
|
*
|
|
@@ -243,7 +242,7 @@ const clean$1 = (value) => (value === null || value === void 0 ? void 0 : value.
|
|
|
243
242
|
*/
|
|
244
243
|
function useLlmDisplayName({ llmName, llmConfig, org, userId, mentorId, }) {
|
|
245
244
|
var _a;
|
|
246
|
-
const fromConfig = clean$
|
|
245
|
+
const fromConfig = clean$2(llmConfig === null || llmConfig === void 0 ? void 0 : llmConfig.display_name);
|
|
247
246
|
const skip = Boolean(fromConfig) || !llmName || !org || !userId || !mentorId;
|
|
248
247
|
const { data: providers } = useGetLlmsQuery({
|
|
249
248
|
org: org !== null && org !== void 0 ? org : '',
|
|
@@ -258,7 +257,7 @@ function useLlmDisplayName({ llmName, llmConfig, org, userId, mentorId, }) {
|
|
|
258
257
|
const wanted = modelKey(llmName);
|
|
259
258
|
for (const provider of providers) {
|
|
260
259
|
const match = (_a = provider === null || provider === void 0 ? void 0 : provider.chat_models) === null || _a === void 0 ? void 0 : _a.find((model) => modelKey(model === null || model === void 0 ? void 0 : model.llm_name) === wanted || modelKey(model === null || model === void 0 ? void 0 : model.display_name) === wanted);
|
|
261
|
-
const label = clean$
|
|
260
|
+
const label = clean$2(match === null || match === void 0 ? void 0 : match.display_name);
|
|
262
261
|
if (label)
|
|
263
262
|
return label;
|
|
264
263
|
}
|
|
@@ -295,7 +294,7 @@ function useCredentialsSchemaLogos({ org, enabled }) {
|
|
|
295
294
|
return useCallback((displayName) => (displayName && logosByDisplayName.get(displayName)) || null, [logosByDisplayName]);
|
|
296
295
|
}
|
|
297
296
|
|
|
298
|
-
var _a;
|
|
297
|
+
var _a$1;
|
|
299
298
|
const dl$1 = dataLayer;
|
|
300
299
|
/**
|
|
301
300
|
* Read a named export, tolerating absence. In real ESM a missing export reads
|
|
@@ -328,7 +327,7 @@ const pick = (name, fallback) => { var _a; return ((_a = read(name)) !== null &&
|
|
|
328
327
|
/** Whether the resolved data-layer actually supports the chat-privacy feature. */
|
|
329
328
|
const CHAT_PRIVACY_SUPPORTED = !!read('ChatPrivacyModeEnum') && !!read('CHAT_PRIVACY_MODES');
|
|
330
329
|
const ChatPrivacyModeEnum = read('ChatPrivacyModeEnum');
|
|
331
|
-
const CHAT_PRIVACY_MODES = ((_a = read('CHAT_PRIVACY_MODES')) !== null && _a !== void 0 ? _a : []);
|
|
330
|
+
const CHAT_PRIVACY_MODES = ((_a$1 = read('CHAT_PRIVACY_MODES')) !== null && _a$1 !== void 0 ? _a$1 : []);
|
|
332
331
|
const chatPrivacyApiSlice = read('chatPrivacyApiSlice');
|
|
333
332
|
const useGetTenantChatPrivacyConfigQuery = pick('useGetTenantChatPrivacyConfigQuery', noopQuery);
|
|
334
333
|
const useUpdateTenantChatPrivacyConfigMutation = pick('useUpdateTenantChatPrivacyConfigMutation', noopMutation);
|
|
@@ -1816,7 +1815,11 @@ var advancedCustomDomain$3 = {
|
|
|
1816
1815
|
noProjects: "You have not deployed any apps yet. Deploy one first, then come back to give it a domain.",
|
|
1817
1816
|
customDomainLabel: "Domain",
|
|
1818
1817
|
domainHelpPlatform: "Without the scheme or a leading “www.” — for example, app.example.com.",
|
|
1819
|
-
domainHelpApp: "
|
|
1818
|
+
domainHelpApp: "A domain you own, without the scheme or a leading “www.” — for example, app.example.com. Leave it empty to use the subdomain above.",
|
|
1819
|
+
subdomainLabel: "Subdomain",
|
|
1820
|
+
subdomainHelp: "Lowercase letters, digits and hyphens, like a username. The app is served at <subdomain>.<the platform’s shared domain>, with no DNS records to set.",
|
|
1821
|
+
oneOfSubdomainOrDomain: "Fill in either the subdomain or a domain you own, not both.",
|
|
1822
|
+
subdomainInvalid: "A subdomain is 1–63 lowercase letters, digits and hyphens, and cannot start or end with a hyphen.",
|
|
1820
1823
|
cancel: "Cancel",
|
|
1821
1824
|
save: "Save",
|
|
1822
1825
|
expandAriaLabel: "Expand domains",
|
|
@@ -1838,6 +1841,9 @@ var advancedCustomDomain$3 = {
|
|
|
1838
1841
|
copyNameHostAriaLabel: "Copy name/host: {domain}",
|
|
1839
1842
|
copyValueAriaLabel: "Copy value/target",
|
|
1840
1843
|
noRecordsYet: "No records yet. Check the domain again to fetch them.",
|
|
1844
|
+
sharedDomainLine: "Runs on our shared domain — nothing to set up.",
|
|
1845
|
+
openSite: "Open {domain}",
|
|
1846
|
+
servesApp: "Serves {app}",
|
|
1841
1847
|
confirmRemoveTitle: "Remove this domain?",
|
|
1842
1848
|
confirmDeleteBody: "{domain} will stop signing users in to this organization.",
|
|
1843
1849
|
confirmDetachBody: "{domain} will stop serving the app, here and at the hosting provider.",
|
|
@@ -2295,6 +2301,9 @@ var analyticsAnalyticsFinancialStats$3 = {
|
|
|
2295
2301
|
viewTraces: "Traces →",
|
|
2296
2302
|
costByLLMFooter: "{shown} models · ranked by cost"
|
|
2297
2303
|
};
|
|
2304
|
+
var agentSettingsLink$3 = {
|
|
2305
|
+
openSettings: "Open settings for {name}"
|
|
2306
|
+
};
|
|
2298
2307
|
var analyticsAgentScopeLink$3 = {
|
|
2299
2308
|
scopeToAgent: "View analytics for {name}"
|
|
2300
2309
|
};
|
|
@@ -2516,6 +2525,8 @@ var analyticsAnalyticsTopicsStats$3 = {
|
|
|
2516
2525
|
topicsRankedFooter: "{shown} of {total} topics · ranked by message volume"
|
|
2517
2526
|
};
|
|
2518
2527
|
var analyticsAnalyticsTranscriptsStats$3 = {
|
|
2528
|
+
conversationFallbackTitle: "Conversation",
|
|
2529
|
+
labelEmail: "Email:",
|
|
2519
2530
|
anonymous: "Anonymous",
|
|
2520
2531
|
justNow: "Just now",
|
|
2521
2532
|
minutesAgo: "{count} min ago",
|
|
@@ -2960,6 +2971,7 @@ var careerEducationTab$3 = {
|
|
|
2960
2971
|
nothingToShow: "Nothing to show here."
|
|
2961
2972
|
};
|
|
2962
2973
|
var chatHistoryChatHistoryTab$3 = {
|
|
2974
|
+
userSentiment: "User Sentiment",
|
|
2963
2975
|
tabConversations: "Conversations",
|
|
2964
2976
|
tabExports: "Exports",
|
|
2965
2977
|
searchAgents: "Search Agents",
|
|
@@ -4004,6 +4016,10 @@ var disclaimersTabLabels$3 = {
|
|
|
4004
4016
|
}
|
|
4005
4017
|
};
|
|
4006
4018
|
var documentSidebar$3 = {
|
|
4019
|
+
relevance: "Relevance {percent}%",
|
|
4020
|
+
relevanceHint: "How closely this passage matched the question",
|
|
4021
|
+
preview: "Preview",
|
|
4022
|
+
openInNewTab: "Open {title} in a new tab",
|
|
4007
4023
|
retrievedDocuments: "Retrieved Documents"
|
|
4008
4024
|
};
|
|
4009
4025
|
var embedTabLabels$3 = {
|
|
@@ -4113,6 +4129,12 @@ var historyTabLabels$3 = {
|
|
|
4113
4129
|
outOf: "out of 5"
|
|
4114
4130
|
},
|
|
4115
4131
|
conversation: {
|
|
4132
|
+
sentiment: {
|
|
4133
|
+
positive: "Positive",
|
|
4134
|
+
neutral: "Neutral",
|
|
4135
|
+
negative: "Negative",
|
|
4136
|
+
userSentiment: "User Sentiment"
|
|
4137
|
+
},
|
|
4116
4138
|
title: "Conversation",
|
|
4117
4139
|
anonymous: "Anonymous",
|
|
4118
4140
|
noResponse: "No response available",
|
|
@@ -8793,6 +8815,7 @@ var en = {
|
|
|
8793
8815
|
analyticsAnalyticsCourseDetail: analyticsAnalyticsCourseDetail$3,
|
|
8794
8816
|
analyticsAnalyticsCourses: analyticsAnalyticsCourses$3,
|
|
8795
8817
|
analyticsAnalyticsFinancialStats: analyticsAnalyticsFinancialStats$3,
|
|
8818
|
+
agentSettingsLink: agentSettingsLink$3,
|
|
8796
8819
|
analyticsAgentScopeLink: analyticsAgentScopeLink$3,
|
|
8797
8820
|
analyticsAnalyticsMemoryStats: analyticsAnalyticsMemoryStats$3,
|
|
8798
8821
|
analyticsAnalyticsMonetizationStats: analyticsAnalyticsMonetizationStats$3,
|
|
@@ -9344,7 +9367,11 @@ var advancedCustomDomain$2 = {
|
|
|
9344
9367
|
noProjects: "Vous n’avez encore déployé aucune application. Déployez-en une, puis revenez lui donner un domaine.",
|
|
9345
9368
|
customDomainLabel: "Domaine",
|
|
9346
9369
|
domainHelpPlatform: "Sans le schéma ni un « www. » en tête — par exemple, app.example.com.",
|
|
9347
|
-
domainHelpApp: "
|
|
9370
|
+
domainHelpApp: "Un domaine qui vous appartient, sans le schéma ni un « www. » en tête — par exemple, app.example.com. Laissez ce champ vide pour utiliser le sous-domaine ci-dessus.",
|
|
9371
|
+
subdomainLabel: "Sous-domaine",
|
|
9372
|
+
subdomainHelp: "Lettres minuscules, chiffres et tirets, comme un nom d’utilisateur. L’application est servie à <sous-domaine>.<le domaine partagé de la plateforme>, sans aucun enregistrement DNS à créer.",
|
|
9373
|
+
oneOfSubdomainOrDomain: "Renseignez soit le sous-domaine, soit un domaine qui vous appartient, pas les deux.",
|
|
9374
|
+
subdomainInvalid: "Un sous-domaine compte de 1 à 63 lettres minuscules, chiffres et tirets, et ne peut ni commencer ni finir par un tiret.",
|
|
9348
9375
|
cancel: "Annuler",
|
|
9349
9376
|
save: "Enregistrer",
|
|
9350
9377
|
expandAriaLabel: "Déplier les domaines",
|
|
@@ -9366,6 +9393,9 @@ var advancedCustomDomain$2 = {
|
|
|
9366
9393
|
copyNameHostAriaLabel: "Copier le nom/hôte : {domain}",
|
|
9367
9394
|
copyValueAriaLabel: "Copier la valeur/cible",
|
|
9368
9395
|
noRecordsYet: "Aucun enregistrement pour l’instant. Vérifiez le domaine à nouveau pour les obtenir.",
|
|
9396
|
+
sharedDomainLine: "Fonctionne sur notre domaine partagé — rien à configurer.",
|
|
9397
|
+
openSite: "Ouvrir {domain}",
|
|
9398
|
+
servesApp: "Dessert {app}",
|
|
9369
9399
|
confirmRemoveTitle: "Supprimer ce domaine ?",
|
|
9370
9400
|
confirmDeleteBody: "{domain} ne permettra plus de se connecter à cette organisation.",
|
|
9371
9401
|
confirmDetachBody: "{domain} cessera de servir l’application, ici comme chez l’hébergeur.",
|
|
@@ -9823,6 +9853,9 @@ var analyticsAnalyticsFinancialStats$2 = {
|
|
|
9823
9853
|
viewTraces: "Traces →",
|
|
9824
9854
|
costByLLMFooter: "{shown} modèles · classés par coût"
|
|
9825
9855
|
};
|
|
9856
|
+
var agentSettingsLink$2 = {
|
|
9857
|
+
openSettings: "Ouvrir les paramètres de {name}"
|
|
9858
|
+
};
|
|
9826
9859
|
var analyticsAgentScopeLink$2 = {
|
|
9827
9860
|
scopeToAgent: "Voir les analyses de {name}"
|
|
9828
9861
|
};
|
|
@@ -10044,6 +10077,8 @@ var analyticsAnalyticsTopicsStats$2 = {
|
|
|
10044
10077
|
topicsRankedFooter: "{shown} sur {total} sujets · classés par volume de messages"
|
|
10045
10078
|
};
|
|
10046
10079
|
var analyticsAnalyticsTranscriptsStats$2 = {
|
|
10080
|
+
conversationFallbackTitle: "Conversation",
|
|
10081
|
+
labelEmail: "E-mail :",
|
|
10047
10082
|
anonymous: "Anonyme",
|
|
10048
10083
|
justNow: "À l'instant",
|
|
10049
10084
|
minutesAgo: "Il y a {count} min",
|
|
@@ -10488,6 +10523,7 @@ var careerEducationTab$2 = {
|
|
|
10488
10523
|
nothingToShow: "Rien à afficher ici."
|
|
10489
10524
|
};
|
|
10490
10525
|
var chatHistoryChatHistoryTab$2 = {
|
|
10526
|
+
userSentiment: "Sentiment de l'utilisateur",
|
|
10491
10527
|
tabConversations: "Conversations",
|
|
10492
10528
|
tabExports: "Exportations",
|
|
10493
10529
|
searchAgents: "Rechercher des agents",
|
|
@@ -11698,6 +11734,10 @@ var disclaimersTabLabels$2 = {
|
|
|
11698
11734
|
}
|
|
11699
11735
|
};
|
|
11700
11736
|
var documentSidebar$2 = {
|
|
11737
|
+
relevance: "Pertinence {percent}%",
|
|
11738
|
+
relevanceHint: "Dans quelle mesure ce passage correspond à la question",
|
|
11739
|
+
preview: "Aperçu",
|
|
11740
|
+
openInNewTab: "Ouvrir {title} dans un nouvel onglet",
|
|
11701
11741
|
retrievedDocuments: "Documents récupérés"
|
|
11702
11742
|
};
|
|
11703
11743
|
var embedTabLabels$2 = {
|
|
@@ -11807,6 +11847,12 @@ var historyTabLabels$2 = {
|
|
|
11807
11847
|
outOf: "sur 5"
|
|
11808
11848
|
},
|
|
11809
11849
|
conversation: {
|
|
11850
|
+
sentiment: {
|
|
11851
|
+
positive: "Positif",
|
|
11852
|
+
neutral: "Neutre",
|
|
11853
|
+
negative: "Négatif",
|
|
11854
|
+
userSentiment: "Sentiment de l'utilisateur"
|
|
11855
|
+
},
|
|
11810
11856
|
title: "Conversation",
|
|
11811
11857
|
anonymous: "Anonyme",
|
|
11812
11858
|
noResponse: "Aucune réponse disponible",
|
|
@@ -16321,6 +16367,7 @@ var fr = {
|
|
|
16321
16367
|
analyticsAnalyticsCourseDetail: analyticsAnalyticsCourseDetail$2,
|
|
16322
16368
|
analyticsAnalyticsCourses: analyticsAnalyticsCourses$2,
|
|
16323
16369
|
analyticsAnalyticsFinancialStats: analyticsAnalyticsFinancialStats$2,
|
|
16370
|
+
agentSettingsLink: agentSettingsLink$2,
|
|
16324
16371
|
analyticsAgentScopeLink: analyticsAgentScopeLink$2,
|
|
16325
16372
|
analyticsAnalyticsMemoryStats: analyticsAnalyticsMemoryStats$2,
|
|
16326
16373
|
analyticsAnalyticsMonetizationStats: analyticsAnalyticsMonetizationStats$2,
|
|
@@ -16872,7 +16919,11 @@ var advancedCustomDomain$1 = {
|
|
|
16872
16919
|
noProjects: "Todavía no has desplegado ninguna aplicación. Despliega una primero y vuelve para darle un dominio.",
|
|
16873
16920
|
customDomainLabel: "Dominio",
|
|
16874
16921
|
domainHelpPlatform: "Sin el esquema ni un “www.” inicial — por ejemplo, app.example.com.",
|
|
16875
|
-
domainHelpApp: "
|
|
16922
|
+
domainHelpApp: "Un dominio tuyo, sin el esquema ni un “www.” inicial — por ejemplo, app.example.com. Déjalo vacío para usar el subdominio de arriba.",
|
|
16923
|
+
subdomainLabel: "Subdominio",
|
|
16924
|
+
subdomainHelp: "Letras minúsculas, dígitos y guiones, como un nombre de usuario. La aplicación se sirve en <subdominio>.<el dominio compartido de la plataforma>, sin registros DNS que configurar.",
|
|
16925
|
+
oneOfSubdomainOrDomain: "Rellena el subdominio o un dominio tuyo, no ambos.",
|
|
16926
|
+
subdomainInvalid: "Un subdominio tiene entre 1 y 63 letras minúsculas, dígitos y guiones, y no puede empezar ni terminar con un guion.",
|
|
16876
16927
|
cancel: "Cancelar",
|
|
16877
16928
|
save: "Guardar",
|
|
16878
16929
|
expandAriaLabel: "Expandir dominios",
|
|
@@ -16894,6 +16945,9 @@ var advancedCustomDomain$1 = {
|
|
|
16894
16945
|
copyNameHostAriaLabel: "Copiar nombre/host: {domain}",
|
|
16895
16946
|
copyValueAriaLabel: "Copiar valor/destino",
|
|
16896
16947
|
noRecordsYet: "Aún no hay registros. Comprueba el dominio de nuevo para obtenerlos.",
|
|
16948
|
+
sharedDomainLine: "Funciona en nuestro dominio compartido — no hay nada que configurar.",
|
|
16949
|
+
openSite: "Abrir {domain}",
|
|
16950
|
+
servesApp: "Sirve {app}",
|
|
16897
16951
|
confirmRemoveTitle: "¿Eliminar este dominio?",
|
|
16898
16952
|
confirmDeleteBody: "{domain} dejará de permitir el inicio de sesión en esta organización.",
|
|
16899
16953
|
confirmDetachBody: "{domain} dejará de servir la aplicación, aquí y en el proveedor de alojamiento.",
|
|
@@ -17351,6 +17405,9 @@ var analyticsAnalyticsFinancialStats$1 = {
|
|
|
17351
17405
|
viewTraces: "Trazas →",
|
|
17352
17406
|
costByLLMFooter: "{shown} modelos · ordenados por costo"
|
|
17353
17407
|
};
|
|
17408
|
+
var agentSettingsLink$1 = {
|
|
17409
|
+
openSettings: "Abrir la configuración de {name}"
|
|
17410
|
+
};
|
|
17354
17411
|
var analyticsAgentScopeLink$1 = {
|
|
17355
17412
|
scopeToAgent: "Ver analíticas de {name}"
|
|
17356
17413
|
};
|
|
@@ -17572,6 +17629,8 @@ var analyticsAnalyticsTopicsStats$1 = {
|
|
|
17572
17629
|
topicsRankedFooter: "{shown} de {total} temas · ordenados por volumen de mensajes"
|
|
17573
17630
|
};
|
|
17574
17631
|
var analyticsAnalyticsTranscriptsStats$1 = {
|
|
17632
|
+
conversationFallbackTitle: "Conversación",
|
|
17633
|
+
labelEmail: "Correo electrónico:",
|
|
17575
17634
|
anonymous: "Anónimo",
|
|
17576
17635
|
justNow: "Ahora mismo",
|
|
17577
17636
|
minutesAgo: "Hace {count} min",
|
|
@@ -18016,6 +18075,7 @@ var careerEducationTab$1 = {
|
|
|
18016
18075
|
nothingToShow: "No hay nada que mostrar aquí."
|
|
18017
18076
|
};
|
|
18018
18077
|
var chatHistoryChatHistoryTab$1 = {
|
|
18078
|
+
userSentiment: "Sentimiento del usuario",
|
|
18019
18079
|
tabConversations: "Conversaciones",
|
|
18020
18080
|
tabExports: "Exportaciones",
|
|
18021
18081
|
searchAgents: "Buscar agentes",
|
|
@@ -19226,6 +19286,10 @@ var disclaimersTabLabels$1 = {
|
|
|
19226
19286
|
}
|
|
19227
19287
|
};
|
|
19228
19288
|
var documentSidebar$1 = {
|
|
19289
|
+
relevance: "Relevancia {percent}%",
|
|
19290
|
+
relevanceHint: "Cuánto coincide este fragmento con la pregunta",
|
|
19291
|
+
preview: "Vista previa",
|
|
19292
|
+
openInNewTab: "Abrir {title} en una pestaña nueva",
|
|
19229
19293
|
retrievedDocuments: "Documentos recuperados"
|
|
19230
19294
|
};
|
|
19231
19295
|
var embedTabLabels$1 = {
|
|
@@ -19335,6 +19399,12 @@ var historyTabLabels$1 = {
|
|
|
19335
19399
|
outOf: "de 5"
|
|
19336
19400
|
},
|
|
19337
19401
|
conversation: {
|
|
19402
|
+
sentiment: {
|
|
19403
|
+
positive: "Positivo",
|
|
19404
|
+
neutral: "Neutral",
|
|
19405
|
+
negative: "Negativo",
|
|
19406
|
+
userSentiment: "Sentimiento del usuario"
|
|
19407
|
+
},
|
|
19338
19408
|
title: "Conversación",
|
|
19339
19409
|
anonymous: "Anónimo",
|
|
19340
19410
|
noResponse: "No hay respuesta disponible",
|
|
@@ -23849,6 +23919,7 @@ var es = {
|
|
|
23849
23919
|
analyticsAnalyticsCourseDetail: analyticsAnalyticsCourseDetail$1,
|
|
23850
23920
|
analyticsAnalyticsCourses: analyticsAnalyticsCourses$1,
|
|
23851
23921
|
analyticsAnalyticsFinancialStats: analyticsAnalyticsFinancialStats$1,
|
|
23922
|
+
agentSettingsLink: agentSettingsLink$1,
|
|
23852
23923
|
analyticsAgentScopeLink: analyticsAgentScopeLink$1,
|
|
23853
23924
|
analyticsAnalyticsMemoryStats: analyticsAnalyticsMemoryStats$1,
|
|
23854
23925
|
analyticsAnalyticsMonetizationStats: analyticsAnalyticsMonetizationStats$1,
|
|
@@ -24400,7 +24471,11 @@ var advancedCustomDomain = {
|
|
|
24400
24471
|
noProjects: "你还没有部署任何应用。请先部署一个,然后回来为它设置域名。",
|
|
24401
24472
|
customDomainLabel: "域名",
|
|
24402
24473
|
domainHelpPlatform: "不要带协议前缀或开头的“www.”,例如 app.example.com。",
|
|
24403
|
-
domainHelpApp: "
|
|
24474
|
+
domainHelpApp: "你拥有的域名,不要带协议前缀或开头的“www.”,例如 app.example.com。留空则使用上方的子域名。",
|
|
24475
|
+
subdomainLabel: "子域名",
|
|
24476
|
+
subdomainHelp: "小写字母、数字和连字符,像用户名一样。应用将通过 <子域名>.<平台的共享域名> 提供服务,无需设置任何 DNS 记录。",
|
|
24477
|
+
oneOfSubdomainOrDomain: "请填写子域名或你拥有的域名,二者只填其一。",
|
|
24478
|
+
subdomainInvalid: "子域名为 1 到 63 个小写字母、数字和连字符,且不能以连字符开头或结尾。",
|
|
24404
24479
|
cancel: "取消",
|
|
24405
24480
|
save: "保存",
|
|
24406
24481
|
expandAriaLabel: "展开域名",
|
|
@@ -24422,6 +24497,9 @@ var advancedCustomDomain = {
|
|
|
24422
24497
|
copyNameHostAriaLabel: "复制名称/主机:{domain}",
|
|
24423
24498
|
copyValueAriaLabel: "复制值/目标",
|
|
24424
24499
|
noRecordsYet: "暂无记录。请重新检查该域名以获取记录。",
|
|
24500
|
+
sharedDomainLine: "运行在我们的共享域名上——无需任何设置。",
|
|
24501
|
+
openSite: "打开 {domain}",
|
|
24502
|
+
servesApp: "服务于 {app}",
|
|
24425
24503
|
confirmRemoveTitle: "要移除这个域名吗?",
|
|
24426
24504
|
confirmDeleteBody: "{domain} 将不再用于登录该组织。",
|
|
24427
24505
|
confirmDetachBody: "{domain} 将不再为该应用提供服务,本处和托管服务商处都会解除。",
|
|
@@ -24879,6 +24957,9 @@ var analyticsAnalyticsFinancialStats = {
|
|
|
24879
24957
|
viewTraces: "追踪 →",
|
|
24880
24958
|
costByLLMFooter: "{shown} 个模型 · 按成本排序"
|
|
24881
24959
|
};
|
|
24960
|
+
var agentSettingsLink = {
|
|
24961
|
+
openSettings: "打开 {name} 的设置"
|
|
24962
|
+
};
|
|
24882
24963
|
var analyticsAgentScopeLink = {
|
|
24883
24964
|
scopeToAgent: "查看 {name} 的分析"
|
|
24884
24965
|
};
|
|
@@ -25100,6 +25181,8 @@ var analyticsAnalyticsTopicsStats = {
|
|
|
25100
25181
|
topicsRankedFooter: "共 {total} 个主题,显示 {shown} 个 · 按消息量排序"
|
|
25101
25182
|
};
|
|
25102
25183
|
var analyticsAnalyticsTranscriptsStats = {
|
|
25184
|
+
conversationFallbackTitle: "对话",
|
|
25185
|
+
labelEmail: "邮箱:",
|
|
25103
25186
|
anonymous: "匿名",
|
|
25104
25187
|
justNow: "刚刚",
|
|
25105
25188
|
minutesAgo: "{count} 分钟前",
|
|
@@ -25544,6 +25627,7 @@ var careerEducationTab = {
|
|
|
25544
25627
|
nothingToShow: "暂无内容。"
|
|
25545
25628
|
};
|
|
25546
25629
|
var chatHistoryChatHistoryTab = {
|
|
25630
|
+
userSentiment: "用户情绪",
|
|
25547
25631
|
tabConversations: "对话",
|
|
25548
25632
|
tabExports: "导出",
|
|
25549
25633
|
searchAgents: "搜索代理",
|
|
@@ -26754,6 +26838,10 @@ var disclaimersTabLabels = {
|
|
|
26754
26838
|
}
|
|
26755
26839
|
};
|
|
26756
26840
|
var documentSidebar = {
|
|
26841
|
+
relevance: "相关度 {percent}%",
|
|
26842
|
+
relevanceHint: "该片段与问题的匹配程度",
|
|
26843
|
+
preview: "预览",
|
|
26844
|
+
openInNewTab: "在新标签页中打开 {title}",
|
|
26757
26845
|
retrievedDocuments: "检索到的文档"
|
|
26758
26846
|
};
|
|
26759
26847
|
var embedTabLabels = {
|
|
@@ -26863,6 +26951,12 @@ var historyTabLabels = {
|
|
|
26863
26951
|
outOf: "满分 5 分"
|
|
26864
26952
|
},
|
|
26865
26953
|
conversation: {
|
|
26954
|
+
sentiment: {
|
|
26955
|
+
positive: "积极",
|
|
26956
|
+
neutral: "中性",
|
|
26957
|
+
negative: "消极",
|
|
26958
|
+
userSentiment: "用户情绪"
|
|
26959
|
+
},
|
|
26866
26960
|
title: "对话",
|
|
26867
26961
|
anonymous: "匿名",
|
|
26868
26962
|
noResponse: "暂无回复",
|
|
@@ -31377,6 +31471,7 @@ var zh = {
|
|
|
31377
31471
|
analyticsAnalyticsCourseDetail: analyticsAnalyticsCourseDetail,
|
|
31378
31472
|
analyticsAnalyticsCourses: analyticsAnalyticsCourses,
|
|
31379
31473
|
analyticsAnalyticsFinancialStats: analyticsAnalyticsFinancialStats,
|
|
31474
|
+
agentSettingsLink: agentSettingsLink,
|
|
31380
31475
|
analyticsAgentScopeLink: analyticsAgentScopeLink,
|
|
31381
31476
|
analyticsAnalyticsMemoryStats: analyticsAnalyticsMemoryStats,
|
|
31382
31477
|
analyticsAnalyticsMonetizationStats: analyticsAnalyticsMonetizationStats,
|
|
@@ -80085,7 +80180,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
80085
80180
|
*/
|
|
80086
80181
|
|
|
80087
80182
|
|
|
80088
|
-
const __iconNode$
|
|
80183
|
+
const __iconNode$2u = [
|
|
80089
80184
|
[
|
|
80090
80185
|
"path",
|
|
80091
80186
|
{
|
|
@@ -80094,7 +80189,7 @@ const __iconNode$2t = [
|
|
|
80094
80189
|
}
|
|
80095
80190
|
]
|
|
80096
80191
|
];
|
|
80097
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
80192
|
+
const Activity = createLucideIcon("activity", __iconNode$2u);
|
|
80098
80193
|
|
|
80099
80194
|
/**
|
|
80100
80195
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80104,12 +80199,12 @@ const Activity = createLucideIcon("activity", __iconNode$2t);
|
|
|
80104
80199
|
*/
|
|
80105
80200
|
|
|
80106
80201
|
|
|
80107
|
-
const __iconNode$
|
|
80202
|
+
const __iconNode$2t = [
|
|
80108
80203
|
["path", { d: "M17 12H7", key: "16if0g" }],
|
|
80109
80204
|
["path", { d: "M19 18H5", key: "18s9l3" }],
|
|
80110
80205
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
80111
80206
|
];
|
|
80112
|
-
const AlignCenter = createLucideIcon("align-center", __iconNode$
|
|
80207
|
+
const AlignCenter = createLucideIcon("align-center", __iconNode$2t);
|
|
80113
80208
|
|
|
80114
80209
|
/**
|
|
80115
80210
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80119,12 +80214,12 @@ const AlignCenter = createLucideIcon("align-center", __iconNode$2s);
|
|
|
80119
80214
|
*/
|
|
80120
80215
|
|
|
80121
80216
|
|
|
80122
|
-
const __iconNode$
|
|
80217
|
+
const __iconNode$2s = [
|
|
80123
80218
|
["path", { d: "M15 12H3", key: "6jk70r" }],
|
|
80124
80219
|
["path", { d: "M17 18H3", key: "1amg6g" }],
|
|
80125
80220
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
80126
80221
|
];
|
|
80127
|
-
const AlignLeft = createLucideIcon("align-left", __iconNode$
|
|
80222
|
+
const AlignLeft = createLucideIcon("align-left", __iconNode$2s);
|
|
80128
80223
|
|
|
80129
80224
|
/**
|
|
80130
80225
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80134,12 +80229,12 @@ const AlignLeft = createLucideIcon("align-left", __iconNode$2r);
|
|
|
80134
80229
|
*/
|
|
80135
80230
|
|
|
80136
80231
|
|
|
80137
|
-
const __iconNode$
|
|
80232
|
+
const __iconNode$2r = [
|
|
80138
80233
|
["path", { d: "M21 12H9", key: "dn1m92" }],
|
|
80139
80234
|
["path", { d: "M21 18H7", key: "1ygte8" }],
|
|
80140
80235
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
80141
80236
|
];
|
|
80142
|
-
const AlignRight = createLucideIcon("align-right", __iconNode$
|
|
80237
|
+
const AlignRight = createLucideIcon("align-right", __iconNode$2r);
|
|
80143
80238
|
|
|
80144
80239
|
/**
|
|
80145
80240
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80149,12 +80244,12 @@ const AlignRight = createLucideIcon("align-right", __iconNode$2q);
|
|
|
80149
80244
|
*/
|
|
80150
80245
|
|
|
80151
80246
|
|
|
80152
|
-
const __iconNode$
|
|
80247
|
+
const __iconNode$2q = [
|
|
80153
80248
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
80154
80249
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
80155
80250
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
80156
80251
|
];
|
|
80157
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
80252
|
+
const Archive = createLucideIcon("archive", __iconNode$2q);
|
|
80158
80253
|
|
|
80159
80254
|
/**
|
|
80160
80255
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80164,11 +80259,11 @@ const Archive = createLucideIcon("archive", __iconNode$2p);
|
|
|
80164
80259
|
*/
|
|
80165
80260
|
|
|
80166
80261
|
|
|
80167
|
-
const __iconNode$
|
|
80262
|
+
const __iconNode$2p = [
|
|
80168
80263
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
80169
80264
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
80170
80265
|
];
|
|
80171
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
80266
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$2p);
|
|
80172
80267
|
|
|
80173
80268
|
/**
|
|
80174
80269
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80178,11 +80273,11 @@ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2o);
|
|
|
80178
80273
|
*/
|
|
80179
80274
|
|
|
80180
80275
|
|
|
80181
|
-
const __iconNode$
|
|
80276
|
+
const __iconNode$2o = [
|
|
80182
80277
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
80183
80278
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
80184
80279
|
];
|
|
80185
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
80280
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2o);
|
|
80186
80281
|
|
|
80187
80282
|
/**
|
|
80188
80283
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80192,11 +80287,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2n);
|
|
|
80192
80287
|
*/
|
|
80193
80288
|
|
|
80194
80289
|
|
|
80195
|
-
const __iconNode$
|
|
80290
|
+
const __iconNode$2n = [
|
|
80196
80291
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
80197
80292
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
80198
80293
|
];
|
|
80199
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
80294
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$2n);
|
|
80200
80295
|
|
|
80201
80296
|
/**
|
|
80202
80297
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80206,11 +80301,11 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$2m);
|
|
|
80206
80301
|
*/
|
|
80207
80302
|
|
|
80208
80303
|
|
|
80209
|
-
const __iconNode$
|
|
80304
|
+
const __iconNode$2m = [
|
|
80210
80305
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
80211
80306
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
80212
80307
|
];
|
|
80213
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
80308
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$2m);
|
|
80214
80309
|
|
|
80215
80310
|
/**
|
|
80216
80311
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80220,7 +80315,7 @@ const ArrowUp = createLucideIcon("arrow-up", __iconNode$2l);
|
|
|
80220
80315
|
*/
|
|
80221
80316
|
|
|
80222
80317
|
|
|
80223
|
-
const __iconNode$
|
|
80318
|
+
const __iconNode$2l = [
|
|
80224
80319
|
[
|
|
80225
80320
|
"path",
|
|
80226
80321
|
{
|
|
@@ -80230,7 +80325,7 @@ const __iconNode$2k = [
|
|
|
80230
80325
|
],
|
|
80231
80326
|
["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
|
|
80232
80327
|
];
|
|
80233
|
-
const Award = createLucideIcon("award", __iconNode$
|
|
80328
|
+
const Award = createLucideIcon("award", __iconNode$2l);
|
|
80234
80329
|
|
|
80235
80330
|
/**
|
|
80236
80331
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80240,11 +80335,11 @@ const Award = createLucideIcon("award", __iconNode$2k);
|
|
|
80240
80335
|
*/
|
|
80241
80336
|
|
|
80242
80337
|
|
|
80243
|
-
const __iconNode$
|
|
80338
|
+
const __iconNode$2k = [
|
|
80244
80339
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
|
|
80245
80340
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
80246
80341
|
];
|
|
80247
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
80342
|
+
const Ban = createLucideIcon("ban", __iconNode$2k);
|
|
80248
80343
|
|
|
80249
80344
|
/**
|
|
80250
80345
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80254,12 +80349,12 @@ const Ban = createLucideIcon("ban", __iconNode$2j);
|
|
|
80254
80349
|
*/
|
|
80255
80350
|
|
|
80256
80351
|
|
|
80257
|
-
const __iconNode$
|
|
80352
|
+
const __iconNode$2j = [
|
|
80258
80353
|
["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
|
|
80259
80354
|
["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
|
|
80260
80355
|
["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
|
|
80261
80356
|
];
|
|
80262
|
-
const Banknote = createLucideIcon("banknote", __iconNode$
|
|
80357
|
+
const Banknote = createLucideIcon("banknote", __iconNode$2j);
|
|
80263
80358
|
|
|
80264
80359
|
/**
|
|
80265
80360
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80269,7 +80364,7 @@ const Banknote = createLucideIcon("banknote", __iconNode$2i);
|
|
|
80269
80364
|
*/
|
|
80270
80365
|
|
|
80271
80366
|
|
|
80272
|
-
const __iconNode$
|
|
80367
|
+
const __iconNode$2i = [
|
|
80273
80368
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
80274
80369
|
["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
|
|
80275
80370
|
[
|
|
@@ -80281,7 +80376,7 @@ const __iconNode$2h = [
|
|
|
80281
80376
|
],
|
|
80282
80377
|
["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
|
|
80283
80378
|
];
|
|
80284
|
-
const BellRing = createLucideIcon("bell-ring", __iconNode$
|
|
80379
|
+
const BellRing = createLucideIcon("bell-ring", __iconNode$2i);
|
|
80285
80380
|
|
|
80286
80381
|
/**
|
|
80287
80382
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80291,7 +80386,7 @@ const BellRing = createLucideIcon("bell-ring", __iconNode$2h);
|
|
|
80291
80386
|
*/
|
|
80292
80387
|
|
|
80293
80388
|
|
|
80294
|
-
const __iconNode$
|
|
80389
|
+
const __iconNode$2h = [
|
|
80295
80390
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
80296
80391
|
[
|
|
80297
80392
|
"path",
|
|
@@ -80301,7 +80396,7 @@ const __iconNode$2g = [
|
|
|
80301
80396
|
}
|
|
80302
80397
|
]
|
|
80303
80398
|
];
|
|
80304
|
-
const Bell = createLucideIcon("bell", __iconNode$
|
|
80399
|
+
const Bell = createLucideIcon("bell", __iconNode$2h);
|
|
80305
80400
|
|
|
80306
80401
|
/**
|
|
80307
80402
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80311,13 +80406,13 @@ const Bell = createLucideIcon("bell", __iconNode$2g);
|
|
|
80311
80406
|
*/
|
|
80312
80407
|
|
|
80313
80408
|
|
|
80314
|
-
const __iconNode$
|
|
80409
|
+
const __iconNode$2g = [
|
|
80315
80410
|
[
|
|
80316
80411
|
"path",
|
|
80317
80412
|
{ 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" }
|
|
80318
80413
|
]
|
|
80319
80414
|
];
|
|
80320
|
-
const Bold$1 = createLucideIcon("bold", __iconNode$
|
|
80415
|
+
const Bold$1 = createLucideIcon("bold", __iconNode$2g);
|
|
80321
80416
|
|
|
80322
80417
|
/**
|
|
80323
80418
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80327,7 +80422,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$2f);
|
|
|
80327
80422
|
*/
|
|
80328
80423
|
|
|
80329
80424
|
|
|
80330
|
-
const __iconNode$
|
|
80425
|
+
const __iconNode$2f = [
|
|
80331
80426
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
80332
80427
|
[
|
|
80333
80428
|
"path",
|
|
@@ -80337,7 +80432,7 @@ const __iconNode$2e = [
|
|
|
80337
80432
|
}
|
|
80338
80433
|
]
|
|
80339
80434
|
];
|
|
80340
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
80435
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$2f);
|
|
80341
80436
|
|
|
80342
80437
|
/**
|
|
80343
80438
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80347,7 +80442,7 @@ const BookOpen = createLucideIcon("book-open", __iconNode$2e);
|
|
|
80347
80442
|
*/
|
|
80348
80443
|
|
|
80349
80444
|
|
|
80350
|
-
const __iconNode$
|
|
80445
|
+
const __iconNode$2e = [
|
|
80351
80446
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
80352
80447
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
80353
80448
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -80355,7 +80450,7 @@ const __iconNode$2d = [
|
|
|
80355
80450
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
80356
80451
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
80357
80452
|
];
|
|
80358
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
80453
|
+
const Bot = createLucideIcon("bot", __iconNode$2e);
|
|
80359
80454
|
|
|
80360
80455
|
/**
|
|
80361
80456
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80365,11 +80460,11 @@ const Bot = createLucideIcon("bot", __iconNode$2d);
|
|
|
80365
80460
|
*/
|
|
80366
80461
|
|
|
80367
80462
|
|
|
80368
|
-
const __iconNode$
|
|
80463
|
+
const __iconNode$2d = [
|
|
80369
80464
|
["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
|
|
80370
80465
|
["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
|
|
80371
80466
|
];
|
|
80372
|
-
const Briefcase = createLucideIcon("briefcase", __iconNode$
|
|
80467
|
+
const Briefcase = createLucideIcon("briefcase", __iconNode$2d);
|
|
80373
80468
|
|
|
80374
80469
|
/**
|
|
80375
80470
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80379,7 +80474,7 @@ const Briefcase = createLucideIcon("briefcase", __iconNode$2c);
|
|
|
80379
80474
|
*/
|
|
80380
80475
|
|
|
80381
80476
|
|
|
80382
|
-
const __iconNode$
|
|
80477
|
+
const __iconNode$2c = [
|
|
80383
80478
|
["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
|
|
80384
80479
|
["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
|
|
80385
80480
|
["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
|
|
@@ -80388,7 +80483,7 @@ const __iconNode$2b = [
|
|
|
80388
80483
|
["path", { d: "M10 14h4", key: "kelpxr" }],
|
|
80389
80484
|
["path", { d: "M10 18h4", key: "1ulq68" }]
|
|
80390
80485
|
];
|
|
80391
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
80486
|
+
const Building2 = createLucideIcon("building-2", __iconNode$2c);
|
|
80392
80487
|
|
|
80393
80488
|
/**
|
|
80394
80489
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80398,13 +80493,13 @@ const Building2 = createLucideIcon("building-2", __iconNode$2b);
|
|
|
80398
80493
|
*/
|
|
80399
80494
|
|
|
80400
80495
|
|
|
80401
|
-
const __iconNode$
|
|
80496
|
+
const __iconNode$2b = [
|
|
80402
80497
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
80403
80498
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
80404
80499
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
80405
80500
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
80406
80501
|
];
|
|
80407
|
-
const Calendar$1 = createLucideIcon("calendar", __iconNode$
|
|
80502
|
+
const Calendar$1 = createLucideIcon("calendar", __iconNode$2b);
|
|
80408
80503
|
|
|
80409
80504
|
/**
|
|
80410
80505
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80414,7 +80509,7 @@ const Calendar$1 = createLucideIcon("calendar", __iconNode$2a);
|
|
|
80414
80509
|
*/
|
|
80415
80510
|
|
|
80416
80511
|
|
|
80417
|
-
const __iconNode$
|
|
80512
|
+
const __iconNode$2a = [
|
|
80418
80513
|
[
|
|
80419
80514
|
"path",
|
|
80420
80515
|
{
|
|
@@ -80424,7 +80519,7 @@ const __iconNode$29 = [
|
|
|
80424
80519
|
],
|
|
80425
80520
|
["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
|
|
80426
80521
|
];
|
|
80427
|
-
const Camera = createLucideIcon("camera", __iconNode$
|
|
80522
|
+
const Camera = createLucideIcon("camera", __iconNode$2a);
|
|
80428
80523
|
|
|
80429
80524
|
/**
|
|
80430
80525
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80434,11 +80529,11 @@ const Camera = createLucideIcon("camera", __iconNode$29);
|
|
|
80434
80529
|
*/
|
|
80435
80530
|
|
|
80436
80531
|
|
|
80437
|
-
const __iconNode$
|
|
80532
|
+
const __iconNode$29 = [
|
|
80438
80533
|
["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
|
|
80439
80534
|
["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
|
|
80440
80535
|
];
|
|
80441
|
-
const CheckCheck = createLucideIcon("check-check", __iconNode$
|
|
80536
|
+
const CheckCheck = createLucideIcon("check-check", __iconNode$29);
|
|
80442
80537
|
|
|
80443
80538
|
/**
|
|
80444
80539
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80448,8 +80543,8 @@ const CheckCheck = createLucideIcon("check-check", __iconNode$28);
|
|
|
80448
80543
|
*/
|
|
80449
80544
|
|
|
80450
80545
|
|
|
80451
|
-
const __iconNode$
|
|
80452
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
80546
|
+
const __iconNode$28 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
80547
|
+
const Check = createLucideIcon("check", __iconNode$28);
|
|
80453
80548
|
|
|
80454
80549
|
/**
|
|
80455
80550
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80459,8 +80554,8 @@ const Check = createLucideIcon("check", __iconNode$27);
|
|
|
80459
80554
|
*/
|
|
80460
80555
|
|
|
80461
80556
|
|
|
80462
|
-
const __iconNode$
|
|
80463
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
80557
|
+
const __iconNode$27 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
80558
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$27);
|
|
80464
80559
|
|
|
80465
80560
|
/**
|
|
80466
80561
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80470,11 +80565,11 @@ const ChevronDown = createLucideIcon("chevron-down", __iconNode$26);
|
|
|
80470
80565
|
*/
|
|
80471
80566
|
|
|
80472
80567
|
|
|
80473
|
-
const __iconNode$
|
|
80568
|
+
const __iconNode$26 = [
|
|
80474
80569
|
["path", { d: "m17 18-6-6 6-6", key: "1yerx2" }],
|
|
80475
80570
|
["path", { d: "M7 6v12", key: "1p53r6" }]
|
|
80476
80571
|
];
|
|
80477
|
-
const ChevronFirst = createLucideIcon("chevron-first", __iconNode$
|
|
80572
|
+
const ChevronFirst = createLucideIcon("chevron-first", __iconNode$26);
|
|
80478
80573
|
|
|
80479
80574
|
/**
|
|
80480
80575
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80484,11 +80579,11 @@ const ChevronFirst = createLucideIcon("chevron-first", __iconNode$25);
|
|
|
80484
80579
|
*/
|
|
80485
80580
|
|
|
80486
80581
|
|
|
80487
|
-
const __iconNode$
|
|
80582
|
+
const __iconNode$25 = [
|
|
80488
80583
|
["path", { d: "m7 18 6-6-6-6", key: "lwmzdw" }],
|
|
80489
80584
|
["path", { d: "M17 6v12", key: "1o0aio" }]
|
|
80490
80585
|
];
|
|
80491
|
-
const ChevronLast = createLucideIcon("chevron-last", __iconNode$
|
|
80586
|
+
const ChevronLast = createLucideIcon("chevron-last", __iconNode$25);
|
|
80492
80587
|
|
|
80493
80588
|
/**
|
|
80494
80589
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80498,8 +80593,8 @@ const ChevronLast = createLucideIcon("chevron-last", __iconNode$24);
|
|
|
80498
80593
|
*/
|
|
80499
80594
|
|
|
80500
80595
|
|
|
80501
|
-
const __iconNode$
|
|
80502
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
80596
|
+
const __iconNode$24 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
80597
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$24);
|
|
80503
80598
|
|
|
80504
80599
|
/**
|
|
80505
80600
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80509,8 +80604,8 @@ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$23);
|
|
|
80509
80604
|
*/
|
|
80510
80605
|
|
|
80511
80606
|
|
|
80512
|
-
const __iconNode$
|
|
80513
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
80607
|
+
const __iconNode$23 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
80608
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$23);
|
|
80514
80609
|
|
|
80515
80610
|
/**
|
|
80516
80611
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80520,8 +80615,8 @@ const ChevronRight = createLucideIcon("chevron-right", __iconNode$22);
|
|
|
80520
80615
|
*/
|
|
80521
80616
|
|
|
80522
80617
|
|
|
80523
|
-
const __iconNode$
|
|
80524
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
80618
|
+
const __iconNode$22 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
80619
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$22);
|
|
80525
80620
|
|
|
80526
80621
|
/**
|
|
80527
80622
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80531,11 +80626,11 @@ const ChevronUp = createLucideIcon("chevron-up", __iconNode$21);
|
|
|
80531
80626
|
*/
|
|
80532
80627
|
|
|
80533
80628
|
|
|
80534
|
-
const __iconNode$
|
|
80629
|
+
const __iconNode$21 = [
|
|
80535
80630
|
["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
|
|
80536
80631
|
["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
|
|
80537
80632
|
];
|
|
80538
|
-
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$
|
|
80633
|
+
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$21);
|
|
80539
80634
|
|
|
80540
80635
|
/**
|
|
80541
80636
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80545,11 +80640,11 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$20);
|
|
|
80545
80640
|
*/
|
|
80546
80641
|
|
|
80547
80642
|
|
|
80548
|
-
const __iconNode$
|
|
80643
|
+
const __iconNode$20 = [
|
|
80549
80644
|
["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
|
|
80550
80645
|
["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
|
|
80551
80646
|
];
|
|
80552
|
-
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$
|
|
80647
|
+
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$20);
|
|
80553
80648
|
|
|
80554
80649
|
/**
|
|
80555
80650
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80559,11 +80654,11 @@ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$1$);
|
|
|
80559
80654
|
*/
|
|
80560
80655
|
|
|
80561
80656
|
|
|
80562
|
-
const __iconNode$
|
|
80657
|
+
const __iconNode$1$ = [
|
|
80563
80658
|
["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
|
|
80564
80659
|
["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
|
|
80565
80660
|
];
|
|
80566
|
-
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$
|
|
80661
|
+
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1$);
|
|
80567
80662
|
|
|
80568
80663
|
/**
|
|
80569
80664
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80573,12 +80668,12 @@ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1_);
|
|
|
80573
80668
|
*/
|
|
80574
80669
|
|
|
80575
80670
|
|
|
80576
|
-
const __iconNode$
|
|
80671
|
+
const __iconNode$1_ = [
|
|
80577
80672
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
80578
80673
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
80579
80674
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
80580
80675
|
];
|
|
80581
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
80676
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$1_);
|
|
80582
80677
|
|
|
80583
80678
|
/**
|
|
80584
80679
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80588,11 +80683,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$1Z);
|
|
|
80588
80683
|
*/
|
|
80589
80684
|
|
|
80590
80685
|
|
|
80591
|
-
const __iconNode$
|
|
80686
|
+
const __iconNode$1Z = [
|
|
80592
80687
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
80593
80688
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
80594
80689
|
];
|
|
80595
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
80690
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1Z);
|
|
80596
80691
|
|
|
80597
80692
|
/**
|
|
80598
80693
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80602,11 +80697,11 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1Y);
|
|
|
80602
80697
|
*/
|
|
80603
80698
|
|
|
80604
80699
|
|
|
80605
|
-
const __iconNode$
|
|
80700
|
+
const __iconNode$1Y = [
|
|
80606
80701
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
80607
80702
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
80608
80703
|
];
|
|
80609
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
80704
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$1Y);
|
|
80610
80705
|
|
|
80611
80706
|
/**
|
|
80612
80707
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80616,11 +80711,11 @@ const CircleCheck = createLucideIcon("circle-check", __iconNode$1X);
|
|
|
80616
80711
|
*/
|
|
80617
80712
|
|
|
80618
80713
|
|
|
80619
|
-
const __iconNode$
|
|
80714
|
+
const __iconNode$1X = [
|
|
80620
80715
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
80621
80716
|
["path", { d: "M8 12h8", key: "1wcyev" }]
|
|
80622
80717
|
];
|
|
80623
|
-
const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$
|
|
80718
|
+
const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$1X);
|
|
80624
80719
|
|
|
80625
80720
|
/**
|
|
80626
80721
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80630,11 +80725,11 @@ const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$1W);
|
|
|
80630
80725
|
*/
|
|
80631
80726
|
|
|
80632
80727
|
|
|
80633
|
-
const __iconNode$
|
|
80728
|
+
const __iconNode$1W = [
|
|
80634
80729
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
80635
80730
|
["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
|
|
80636
80731
|
];
|
|
80637
|
-
const CircleStop = createLucideIcon("circle-stop", __iconNode$
|
|
80732
|
+
const CircleStop = createLucideIcon("circle-stop", __iconNode$1W);
|
|
80638
80733
|
|
|
80639
80734
|
/**
|
|
80640
80735
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80644,12 +80739,12 @@ const CircleStop = createLucideIcon("circle-stop", __iconNode$1V);
|
|
|
80644
80739
|
*/
|
|
80645
80740
|
|
|
80646
80741
|
|
|
80647
|
-
const __iconNode$
|
|
80742
|
+
const __iconNode$1V = [
|
|
80648
80743
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
80649
80744
|
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
80650
80745
|
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
80651
80746
|
];
|
|
80652
|
-
const CircleX = createLucideIcon("circle-x", __iconNode$
|
|
80747
|
+
const CircleX = createLucideIcon("circle-x", __iconNode$1V);
|
|
80653
80748
|
|
|
80654
80749
|
/**
|
|
80655
80750
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80659,8 +80754,8 @@ const CircleX = createLucideIcon("circle-x", __iconNode$1U);
|
|
|
80659
80754
|
*/
|
|
80660
80755
|
|
|
80661
80756
|
|
|
80662
|
-
const __iconNode$
|
|
80663
|
-
const Circle = createLucideIcon("circle", __iconNode$
|
|
80757
|
+
const __iconNode$1U = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
|
|
80758
|
+
const Circle = createLucideIcon("circle", __iconNode$1U);
|
|
80664
80759
|
|
|
80665
80760
|
/**
|
|
80666
80761
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80670,7 +80765,7 @@ const Circle = createLucideIcon("circle", __iconNode$1T);
|
|
|
80670
80765
|
*/
|
|
80671
80766
|
|
|
80672
80767
|
|
|
80673
|
-
const __iconNode$
|
|
80768
|
+
const __iconNode$1T = [
|
|
80674
80769
|
["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
|
|
80675
80770
|
[
|
|
80676
80771
|
"path",
|
|
@@ -80684,7 +80779,7 @@ const __iconNode$1S = [
|
|
|
80684
80779
|
["path", { d: "M8 11h.01", key: "1dfujw" }],
|
|
80685
80780
|
["path", { d: "M8 16h.01", key: "18s6g9" }]
|
|
80686
80781
|
];
|
|
80687
|
-
const ClipboardList = createLucideIcon("clipboard-list", __iconNode$
|
|
80782
|
+
const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1T);
|
|
80688
80783
|
|
|
80689
80784
|
/**
|
|
80690
80785
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80694,11 +80789,11 @@ const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1S);
|
|
|
80694
80789
|
*/
|
|
80695
80790
|
|
|
80696
80791
|
|
|
80697
|
-
const __iconNode$
|
|
80792
|
+
const __iconNode$1S = [
|
|
80698
80793
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
|
|
80699
80794
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
80700
80795
|
];
|
|
80701
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
80796
|
+
const Clock = createLucideIcon("clock", __iconNode$1S);
|
|
80702
80797
|
|
|
80703
80798
|
/**
|
|
80704
80799
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80708,12 +80803,12 @@ const Clock = createLucideIcon("clock", __iconNode$1R);
|
|
|
80708
80803
|
*/
|
|
80709
80804
|
|
|
80710
80805
|
|
|
80711
|
-
const __iconNode$
|
|
80806
|
+
const __iconNode$1R = [
|
|
80712
80807
|
["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
|
|
80713
80808
|
["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
|
|
80714
80809
|
["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
|
|
80715
80810
|
];
|
|
80716
|
-
const CodeXml = createLucideIcon("code-xml", __iconNode$
|
|
80811
|
+
const CodeXml = createLucideIcon("code-xml", __iconNode$1R);
|
|
80717
80812
|
|
|
80718
80813
|
/**
|
|
80719
80814
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80723,11 +80818,11 @@ const CodeXml = createLucideIcon("code-xml", __iconNode$1Q);
|
|
|
80723
80818
|
*/
|
|
80724
80819
|
|
|
80725
80820
|
|
|
80726
|
-
const __iconNode$
|
|
80821
|
+
const __iconNode$1Q = [
|
|
80727
80822
|
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
80728
80823
|
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
80729
80824
|
];
|
|
80730
|
-
const Code$1 = createLucideIcon("code", __iconNode$
|
|
80825
|
+
const Code$1 = createLucideIcon("code", __iconNode$1Q);
|
|
80731
80826
|
|
|
80732
80827
|
/**
|
|
80733
80828
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80737,11 +80832,11 @@ const Code$1 = createLucideIcon("code", __iconNode$1P);
|
|
|
80737
80832
|
*/
|
|
80738
80833
|
|
|
80739
80834
|
|
|
80740
|
-
const __iconNode$
|
|
80835
|
+
const __iconNode$1P = [
|
|
80741
80836
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
80742
80837
|
["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" }]
|
|
80743
80838
|
];
|
|
80744
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
80839
|
+
const Copy = createLucideIcon("copy", __iconNode$1P);
|
|
80745
80840
|
|
|
80746
80841
|
/**
|
|
80747
80842
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80751,11 +80846,11 @@ const Copy = createLucideIcon("copy", __iconNode$1O);
|
|
|
80751
80846
|
*/
|
|
80752
80847
|
|
|
80753
80848
|
|
|
80754
|
-
const __iconNode$
|
|
80849
|
+
const __iconNode$1O = [
|
|
80755
80850
|
["rect", { width: "20", height: "14", x: "2", y: "5", rx: "2", key: "ynyp8z" }],
|
|
80756
80851
|
["line", { x1: "2", x2: "22", y1: "10", y2: "10", key: "1b3vmo" }]
|
|
80757
80852
|
];
|
|
80758
|
-
const CreditCard = createLucideIcon("credit-card", __iconNode$
|
|
80853
|
+
const CreditCard = createLucideIcon("credit-card", __iconNode$1O);
|
|
80759
80854
|
|
|
80760
80855
|
/**
|
|
80761
80856
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80765,12 +80860,12 @@ const CreditCard = createLucideIcon("credit-card", __iconNode$1N);
|
|
|
80765
80860
|
*/
|
|
80766
80861
|
|
|
80767
80862
|
|
|
80768
|
-
const __iconNode$
|
|
80863
|
+
const __iconNode$1N = [
|
|
80769
80864
|
["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
|
|
80770
80865
|
["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
|
|
80771
80866
|
["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
|
|
80772
80867
|
];
|
|
80773
|
-
const Database = createLucideIcon("database", __iconNode$
|
|
80868
|
+
const Database = createLucideIcon("database", __iconNode$1N);
|
|
80774
80869
|
|
|
80775
80870
|
/**
|
|
80776
80871
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80780,11 +80875,11 @@ const Database = createLucideIcon("database", __iconNode$1M);
|
|
|
80780
80875
|
*/
|
|
80781
80876
|
|
|
80782
80877
|
|
|
80783
|
-
const __iconNode$
|
|
80878
|
+
const __iconNode$1M = [
|
|
80784
80879
|
["line", { x1: "12", x2: "12", y1: "2", y2: "22", key: "7eqyqh" }],
|
|
80785
80880
|
["path", { d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6", key: "1b0p4s" }]
|
|
80786
80881
|
];
|
|
80787
|
-
const DollarSign = createLucideIcon("dollar-sign", __iconNode$
|
|
80882
|
+
const DollarSign = createLucideIcon("dollar-sign", __iconNode$1M);
|
|
80788
80883
|
|
|
80789
80884
|
/**
|
|
80790
80885
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80794,7 +80889,7 @@ const DollarSign = createLucideIcon("dollar-sign", __iconNode$1L);
|
|
|
80794
80889
|
*/
|
|
80795
80890
|
|
|
80796
80891
|
|
|
80797
|
-
const __iconNode$
|
|
80892
|
+
const __iconNode$1L = [
|
|
80798
80893
|
["path", { d: "M11 20H2", key: "nlcfvz" }],
|
|
80799
80894
|
[
|
|
80800
80895
|
"path",
|
|
@@ -80807,7 +80902,7 @@ const __iconNode$1K = [
|
|
|
80807
80902
|
["path", { d: "M14 12h.01", key: "1jfl7z" }],
|
|
80808
80903
|
["path", { d: "M22 20h-3", key: "vhrsz" }]
|
|
80809
80904
|
];
|
|
80810
|
-
const DoorOpen = createLucideIcon("door-open", __iconNode$
|
|
80905
|
+
const DoorOpen = createLucideIcon("door-open", __iconNode$1L);
|
|
80811
80906
|
|
|
80812
80907
|
/**
|
|
80813
80908
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80817,12 +80912,12 @@ const DoorOpen = createLucideIcon("door-open", __iconNode$1K);
|
|
|
80817
80912
|
*/
|
|
80818
80913
|
|
|
80819
80914
|
|
|
80820
|
-
const __iconNode$
|
|
80915
|
+
const __iconNode$1K = [
|
|
80821
80916
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
80822
80917
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
80823
80918
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
80824
80919
|
];
|
|
80825
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
80920
|
+
const Download = createLucideIcon("download", __iconNode$1K);
|
|
80826
80921
|
|
|
80827
80922
|
/**
|
|
80828
80923
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80832,12 +80927,12 @@ const Download = createLucideIcon("download", __iconNode$1J);
|
|
|
80832
80927
|
*/
|
|
80833
80928
|
|
|
80834
80929
|
|
|
80835
|
-
const __iconNode$
|
|
80930
|
+
const __iconNode$1J = [
|
|
80836
80931
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
80837
80932
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
80838
80933
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
80839
80934
|
];
|
|
80840
|
-
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$
|
|
80935
|
+
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1J);
|
|
80841
80936
|
|
|
80842
80937
|
/**
|
|
80843
80938
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80847,12 +80942,12 @@ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1I);
|
|
|
80847
80942
|
*/
|
|
80848
80943
|
|
|
80849
80944
|
|
|
80850
|
-
const __iconNode$
|
|
80945
|
+
const __iconNode$1I = [
|
|
80851
80946
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
80852
80947
|
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
80853
80948
|
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
80854
80949
|
];
|
|
80855
|
-
const Ellipsis = createLucideIcon("ellipsis", __iconNode$
|
|
80950
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$1I);
|
|
80856
80951
|
|
|
80857
80952
|
/**
|
|
80858
80953
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80862,12 +80957,12 @@ const Ellipsis = createLucideIcon("ellipsis", __iconNode$1H);
|
|
|
80862
80957
|
*/
|
|
80863
80958
|
|
|
80864
80959
|
|
|
80865
|
-
const __iconNode$
|
|
80960
|
+
const __iconNode$1H = [
|
|
80866
80961
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
80867
80962
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
80868
80963
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
80869
80964
|
];
|
|
80870
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
80965
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$1H);
|
|
80871
80966
|
|
|
80872
80967
|
/**
|
|
80873
80968
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80877,7 +80972,7 @@ const ExternalLink = createLucideIcon("external-link", __iconNode$1G);
|
|
|
80877
80972
|
*/
|
|
80878
80973
|
|
|
80879
80974
|
|
|
80880
|
-
const __iconNode$
|
|
80975
|
+
const __iconNode$1G = [
|
|
80881
80976
|
[
|
|
80882
80977
|
"path",
|
|
80883
80978
|
{
|
|
@@ -80895,7 +80990,7 @@ const __iconNode$1F = [
|
|
|
80895
80990
|
],
|
|
80896
80991
|
["path", { d: "m2 2 20 20", key: "1ooewy" }]
|
|
80897
80992
|
];
|
|
80898
|
-
const EyeOff = createLucideIcon("eye-off", __iconNode$
|
|
80993
|
+
const EyeOff = createLucideIcon("eye-off", __iconNode$1G);
|
|
80899
80994
|
|
|
80900
80995
|
/**
|
|
80901
80996
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80905,7 +81000,7 @@ const EyeOff = createLucideIcon("eye-off", __iconNode$1F);
|
|
|
80905
81000
|
*/
|
|
80906
81001
|
|
|
80907
81002
|
|
|
80908
|
-
const __iconNode$
|
|
81003
|
+
const __iconNode$1F = [
|
|
80909
81004
|
[
|
|
80910
81005
|
"path",
|
|
80911
81006
|
{
|
|
@@ -80915,7 +81010,7 @@ const __iconNode$1E = [
|
|
|
80915
81010
|
],
|
|
80916
81011
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
80917
81012
|
];
|
|
80918
|
-
const Eye = createLucideIcon("eye", __iconNode$
|
|
81013
|
+
const Eye = createLucideIcon("eye", __iconNode$1F);
|
|
80919
81014
|
|
|
80920
81015
|
/**
|
|
80921
81016
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80925,7 +81020,7 @@ const Eye = createLucideIcon("eye", __iconNode$1E);
|
|
|
80925
81020
|
*/
|
|
80926
81021
|
|
|
80927
81022
|
|
|
80928
|
-
const __iconNode$
|
|
81023
|
+
const __iconNode$1E = [
|
|
80929
81024
|
["path", { d: "M10 12v-1", key: "v7bkov" }],
|
|
80930
81025
|
["path", { d: "M10 18v-2", key: "1cjy8d" }],
|
|
80931
81026
|
["path", { d: "M10 7V6", key: "dljcrl" }],
|
|
@@ -80936,7 +81031,7 @@ const __iconNode$1D = [
|
|
|
80936
81031
|
],
|
|
80937
81032
|
["circle", { cx: "10", cy: "20", r: "2", key: "1xzdoj" }]
|
|
80938
81033
|
];
|
|
80939
|
-
const FileArchive = createLucideIcon("file-archive", __iconNode$
|
|
81034
|
+
const FileArchive = createLucideIcon("file-archive", __iconNode$1E);
|
|
80940
81035
|
|
|
80941
81036
|
/**
|
|
80942
81037
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80946,7 +81041,7 @@ const FileArchive = createLucideIcon("file-archive", __iconNode$1D);
|
|
|
80946
81041
|
*/
|
|
80947
81042
|
|
|
80948
81043
|
|
|
80949
|
-
const __iconNode$
|
|
81044
|
+
const __iconNode$1D = [
|
|
80950
81045
|
["path", { d: "M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3", key: "rslqgf" }],
|
|
80951
81046
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
80952
81047
|
[
|
|
@@ -80957,7 +81052,7 @@ const __iconNode$1C = [
|
|
|
80957
81052
|
}
|
|
80958
81053
|
]
|
|
80959
81054
|
];
|
|
80960
|
-
const FileAudio = createLucideIcon("file-audio", __iconNode$
|
|
81055
|
+
const FileAudio = createLucideIcon("file-audio", __iconNode$1D);
|
|
80961
81056
|
|
|
80962
81057
|
/**
|
|
80963
81058
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80967,13 +81062,13 @@ const FileAudio = createLucideIcon("file-audio", __iconNode$1C);
|
|
|
80967
81062
|
*/
|
|
80968
81063
|
|
|
80969
81064
|
|
|
80970
|
-
const __iconNode$
|
|
81065
|
+
const __iconNode$1C = [
|
|
80971
81066
|
["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
|
|
80972
81067
|
["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }],
|
|
80973
81068
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
80974
81069
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }]
|
|
80975
81070
|
];
|
|
80976
|
-
const FileCode = createLucideIcon("file-code", __iconNode$
|
|
81071
|
+
const FileCode = createLucideIcon("file-code", __iconNode$1C);
|
|
80977
81072
|
|
|
80978
81073
|
/**
|
|
80979
81074
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80983,13 +81078,13 @@ const FileCode = createLucideIcon("file-code", __iconNode$1B);
|
|
|
80983
81078
|
*/
|
|
80984
81079
|
|
|
80985
81080
|
|
|
80986
|
-
const __iconNode$
|
|
81081
|
+
const __iconNode$1B = [
|
|
80987
81082
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
80988
81083
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
80989
81084
|
["path", { d: "M12 18v-6", key: "17g6i2" }],
|
|
80990
81085
|
["path", { d: "m9 15 3 3 3-3", key: "1npd3o" }]
|
|
80991
81086
|
];
|
|
80992
|
-
const FileDown = createLucideIcon("file-down", __iconNode$
|
|
81087
|
+
const FileDown = createLucideIcon("file-down", __iconNode$1B);
|
|
80993
81088
|
|
|
80994
81089
|
/**
|
|
80995
81090
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -80999,13 +81094,13 @@ const FileDown = createLucideIcon("file-down", __iconNode$1A);
|
|
|
80999
81094
|
*/
|
|
81000
81095
|
|
|
81001
81096
|
|
|
81002
|
-
const __iconNode$
|
|
81097
|
+
const __iconNode$1A = [
|
|
81003
81098
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
81004
81099
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
81005
81100
|
["circle", { cx: "10", cy: "12", r: "2", key: "737tya" }],
|
|
81006
81101
|
["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22", key: "wt3hpn" }]
|
|
81007
81102
|
];
|
|
81008
|
-
const FileImage = createLucideIcon("file-image", __iconNode$
|
|
81103
|
+
const FileImage = createLucideIcon("file-image", __iconNode$1A);
|
|
81009
81104
|
|
|
81010
81105
|
/**
|
|
81011
81106
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81015,7 +81110,7 @@ const FileImage = createLucideIcon("file-image", __iconNode$1z);
|
|
|
81015
81110
|
*/
|
|
81016
81111
|
|
|
81017
81112
|
|
|
81018
|
-
const __iconNode$
|
|
81113
|
+
const __iconNode$1z = [
|
|
81019
81114
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
81020
81115
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }],
|
|
81021
81116
|
[
|
|
@@ -81026,7 +81121,7 @@ const __iconNode$1y = [
|
|
|
81026
81121
|
}
|
|
81027
81122
|
]
|
|
81028
81123
|
];
|
|
81029
|
-
const FilePlay = createLucideIcon("file-play", __iconNode$
|
|
81124
|
+
const FilePlay = createLucideIcon("file-play", __iconNode$1z);
|
|
81030
81125
|
|
|
81031
81126
|
/**
|
|
81032
81127
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81036,7 +81131,7 @@ const FilePlay = createLucideIcon("file-play", __iconNode$1y);
|
|
|
81036
81131
|
*/
|
|
81037
81132
|
|
|
81038
81133
|
|
|
81039
|
-
const __iconNode$
|
|
81134
|
+
const __iconNode$1y = [
|
|
81040
81135
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
81041
81136
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
81042
81137
|
["path", { d: "M8 13h2", key: "yr2amv" }],
|
|
@@ -81044,7 +81139,7 @@ const __iconNode$1x = [
|
|
|
81044
81139
|
["path", { d: "M8 17h2", key: "2yhykz" }],
|
|
81045
81140
|
["path", { d: "M14 17h2", key: "10kma7" }]
|
|
81046
81141
|
];
|
|
81047
|
-
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$
|
|
81142
|
+
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1y);
|
|
81048
81143
|
|
|
81049
81144
|
/**
|
|
81050
81145
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81054,14 +81149,14 @@ const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1x);
|
|
|
81054
81149
|
*/
|
|
81055
81150
|
|
|
81056
81151
|
|
|
81057
|
-
const __iconNode$
|
|
81152
|
+
const __iconNode$1x = [
|
|
81058
81153
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
81059
81154
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
81060
81155
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
81061
81156
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
81062
81157
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
81063
81158
|
];
|
|
81064
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
81159
|
+
const FileText = createLucideIcon("file-text", __iconNode$1x);
|
|
81065
81160
|
|
|
81066
81161
|
/**
|
|
81067
81162
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81071,11 +81166,11 @@ const FileText = createLucideIcon("file-text", __iconNode$1w);
|
|
|
81071
81166
|
*/
|
|
81072
81167
|
|
|
81073
81168
|
|
|
81074
|
-
const __iconNode$
|
|
81169
|
+
const __iconNode$1w = [
|
|
81075
81170
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
81076
81171
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
|
|
81077
81172
|
];
|
|
81078
|
-
const File$1 = createLucideIcon("file", __iconNode$
|
|
81173
|
+
const File$1 = createLucideIcon("file", __iconNode$1w);
|
|
81079
81174
|
|
|
81080
81175
|
/**
|
|
81081
81176
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81085,7 +81180,7 @@ const File$1 = createLucideIcon("file", __iconNode$1v);
|
|
|
81085
81180
|
*/
|
|
81086
81181
|
|
|
81087
81182
|
|
|
81088
|
-
const __iconNode$
|
|
81183
|
+
const __iconNode$1v = [
|
|
81089
81184
|
[
|
|
81090
81185
|
"path",
|
|
81091
81186
|
{
|
|
@@ -81103,7 +81198,7 @@ const __iconNode$1u = [
|
|
|
81103
81198
|
["path", { d: "M3 5a2 2 0 0 0 2 2h3", key: "f2jnh7" }],
|
|
81104
81199
|
["path", { d: "M3 3v13a2 2 0 0 0 2 2h3", key: "k8epm1" }]
|
|
81105
81200
|
];
|
|
81106
|
-
const FolderTree = createLucideIcon("folder-tree", __iconNode$
|
|
81201
|
+
const FolderTree = createLucideIcon("folder-tree", __iconNode$1v);
|
|
81107
81202
|
|
|
81108
81203
|
/**
|
|
81109
81204
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81113,11 +81208,11 @@ const FolderTree = createLucideIcon("folder-tree", __iconNode$1u);
|
|
|
81113
81208
|
*/
|
|
81114
81209
|
|
|
81115
81210
|
|
|
81116
|
-
const __iconNode$
|
|
81211
|
+
const __iconNode$1u = [
|
|
81117
81212
|
["path", { d: "m12 14 4-4", key: "9kzdfg" }],
|
|
81118
81213
|
["path", { d: "M3.34 19a10 10 0 1 1 17.32 0", key: "19p75a" }]
|
|
81119
81214
|
];
|
|
81120
|
-
const Gauge = createLucideIcon("gauge", __iconNode$
|
|
81215
|
+
const Gauge = createLucideIcon("gauge", __iconNode$1u);
|
|
81121
81216
|
|
|
81122
81217
|
/**
|
|
81123
81218
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81127,14 +81222,14 @@ const Gauge = createLucideIcon("gauge", __iconNode$1t);
|
|
|
81127
81222
|
*/
|
|
81128
81223
|
|
|
81129
81224
|
|
|
81130
|
-
const __iconNode$
|
|
81225
|
+
const __iconNode$1t = [
|
|
81131
81226
|
["path", { d: "m14.5 12.5-8 8a2.119 2.119 0 1 1-3-3l8-8", key: "15492f" }],
|
|
81132
81227
|
["path", { d: "m16 16 6-6", key: "vzrcl6" }],
|
|
81133
81228
|
["path", { d: "m8 8 6-6", key: "18bi4p" }],
|
|
81134
81229
|
["path", { d: "m9 7 8 8", key: "5jnvq1" }],
|
|
81135
81230
|
["path", { d: "m21 11-8-8", key: "z4y7zo" }]
|
|
81136
81231
|
];
|
|
81137
|
-
const Gavel = createLucideIcon("gavel", __iconNode$
|
|
81232
|
+
const Gavel = createLucideIcon("gavel", __iconNode$1t);
|
|
81138
81233
|
|
|
81139
81234
|
/**
|
|
81140
81235
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81144,13 +81239,13 @@ const Gavel = createLucideIcon("gavel", __iconNode$1s);
|
|
|
81144
81239
|
*/
|
|
81145
81240
|
|
|
81146
81241
|
|
|
81147
|
-
const __iconNode$
|
|
81242
|
+
const __iconNode$1s = [
|
|
81148
81243
|
["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
|
|
81149
81244
|
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
81150
81245
|
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
81151
81246
|
["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
|
|
81152
81247
|
];
|
|
81153
|
-
const GitBranch = createLucideIcon("git-branch", __iconNode$
|
|
81248
|
+
const GitBranch = createLucideIcon("git-branch", __iconNode$1s);
|
|
81154
81249
|
|
|
81155
81250
|
/**
|
|
81156
81251
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81160,12 +81255,12 @@ const GitBranch = createLucideIcon("git-branch", __iconNode$1r);
|
|
|
81160
81255
|
*/
|
|
81161
81256
|
|
|
81162
81257
|
|
|
81163
|
-
const __iconNode$
|
|
81258
|
+
const __iconNode$1r = [
|
|
81164
81259
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
81165
81260
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
81166
81261
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
81167
81262
|
];
|
|
81168
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
81263
|
+
const Globe = createLucideIcon("globe", __iconNode$1r);
|
|
81169
81264
|
|
|
81170
81265
|
/**
|
|
81171
81266
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81175,7 +81270,7 @@ const Globe = createLucideIcon("globe", __iconNode$1q);
|
|
|
81175
81270
|
*/
|
|
81176
81271
|
|
|
81177
81272
|
|
|
81178
|
-
const __iconNode$
|
|
81273
|
+
const __iconNode$1q = [
|
|
81179
81274
|
[
|
|
81180
81275
|
"path",
|
|
81181
81276
|
{
|
|
@@ -81186,7 +81281,7 @@ const __iconNode$1p = [
|
|
|
81186
81281
|
["path", { d: "M22 10v6", key: "1lu8f3" }],
|
|
81187
81282
|
["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
|
|
81188
81283
|
];
|
|
81189
|
-
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$
|
|
81284
|
+
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$1q);
|
|
81190
81285
|
|
|
81191
81286
|
/**
|
|
81192
81287
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81196,7 +81291,7 @@ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$1p);
|
|
|
81196
81291
|
*/
|
|
81197
81292
|
|
|
81198
81293
|
|
|
81199
|
-
const __iconNode$
|
|
81294
|
+
const __iconNode$1p = [
|
|
81200
81295
|
["path", { d: "M14 18a2 2 0 0 0-4 0", key: "1v8fkw" }],
|
|
81201
81296
|
[
|
|
81202
81297
|
"path",
|
|
@@ -81209,7 +81304,7 @@ const __iconNode$1o = [
|
|
|
81209
81304
|
["circle", { cx: "17", cy: "18", r: "3", key: "82mm0e" }],
|
|
81210
81305
|
["circle", { cx: "7", cy: "18", r: "3", key: "lvkj7j" }]
|
|
81211
81306
|
];
|
|
81212
|
-
const HatGlasses = createLucideIcon("hat-glasses", __iconNode$
|
|
81307
|
+
const HatGlasses = createLucideIcon("hat-glasses", __iconNode$1p);
|
|
81213
81308
|
|
|
81214
81309
|
/**
|
|
81215
81310
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81219,13 +81314,13 @@ const HatGlasses = createLucideIcon("hat-glasses", __iconNode$1o);
|
|
|
81219
81314
|
*/
|
|
81220
81315
|
|
|
81221
81316
|
|
|
81222
|
-
const __iconNode$
|
|
81317
|
+
const __iconNode$1o = [
|
|
81223
81318
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
81224
81319
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
81225
81320
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
81226
81321
|
["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
|
|
81227
81322
|
];
|
|
81228
|
-
const Heading1 = createLucideIcon("heading-1", __iconNode$
|
|
81323
|
+
const Heading1 = createLucideIcon("heading-1", __iconNode$1o);
|
|
81229
81324
|
|
|
81230
81325
|
/**
|
|
81231
81326
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81235,13 +81330,13 @@ const Heading1 = createLucideIcon("heading-1", __iconNode$1n);
|
|
|
81235
81330
|
*/
|
|
81236
81331
|
|
|
81237
81332
|
|
|
81238
|
-
const __iconNode$
|
|
81333
|
+
const __iconNode$1n = [
|
|
81239
81334
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
81240
81335
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
81241
81336
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
81242
81337
|
["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", key: "9jr5yi" }]
|
|
81243
81338
|
];
|
|
81244
|
-
const Heading2 = createLucideIcon("heading-2", __iconNode$
|
|
81339
|
+
const Heading2 = createLucideIcon("heading-2", __iconNode$1n);
|
|
81245
81340
|
|
|
81246
81341
|
/**
|
|
81247
81342
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81251,14 +81346,14 @@ const Heading2 = createLucideIcon("heading-2", __iconNode$1m);
|
|
|
81251
81346
|
*/
|
|
81252
81347
|
|
|
81253
81348
|
|
|
81254
|
-
const __iconNode$
|
|
81349
|
+
const __iconNode$1m = [
|
|
81255
81350
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
81256
81351
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
81257
81352
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
81258
81353
|
["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", key: "68ncm8" }],
|
|
81259
81354
|
["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", key: "1ejuhz" }]
|
|
81260
81355
|
];
|
|
81261
|
-
const Heading3 = createLucideIcon("heading-3", __iconNode$
|
|
81356
|
+
const Heading3 = createLucideIcon("heading-3", __iconNode$1m);
|
|
81262
81357
|
|
|
81263
81358
|
/**
|
|
81264
81359
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81268,12 +81363,12 @@ const Heading3 = createLucideIcon("heading-3", __iconNode$1l);
|
|
|
81268
81363
|
*/
|
|
81269
81364
|
|
|
81270
81365
|
|
|
81271
|
-
const __iconNode$
|
|
81366
|
+
const __iconNode$1l = [
|
|
81272
81367
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
81273
81368
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }],
|
|
81274
81369
|
["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
|
|
81275
81370
|
];
|
|
81276
|
-
const History = createLucideIcon("history", __iconNode$
|
|
81371
|
+
const History = createLucideIcon("history", __iconNode$1l);
|
|
81277
81372
|
|
|
81278
81373
|
/**
|
|
81279
81374
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81283,12 +81378,12 @@ const History = createLucideIcon("history", __iconNode$1k);
|
|
|
81283
81378
|
*/
|
|
81284
81379
|
|
|
81285
81380
|
|
|
81286
|
-
const __iconNode$
|
|
81381
|
+
const __iconNode$1k = [
|
|
81287
81382
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
81288
81383
|
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
81289
81384
|
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
81290
81385
|
];
|
|
81291
|
-
const Image$3 = createLucideIcon("image", __iconNode$
|
|
81386
|
+
const Image$3 = createLucideIcon("image", __iconNode$1k);
|
|
81292
81387
|
|
|
81293
81388
|
/**
|
|
81294
81389
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81298,7 +81393,7 @@ const Image$3 = createLucideIcon("image", __iconNode$1j);
|
|
|
81298
81393
|
*/
|
|
81299
81394
|
|
|
81300
81395
|
|
|
81301
|
-
const __iconNode$
|
|
81396
|
+
const __iconNode$1j = [
|
|
81302
81397
|
["polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12", key: "o97t9d" }],
|
|
81303
81398
|
[
|
|
81304
81399
|
"path",
|
|
@@ -81308,7 +81403,7 @@ const __iconNode$1i = [
|
|
|
81308
81403
|
}
|
|
81309
81404
|
]
|
|
81310
81405
|
];
|
|
81311
|
-
const Inbox = createLucideIcon("inbox", __iconNode$
|
|
81406
|
+
const Inbox = createLucideIcon("inbox", __iconNode$1j);
|
|
81312
81407
|
|
|
81313
81408
|
/**
|
|
81314
81409
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81318,12 +81413,12 @@ const Inbox = createLucideIcon("inbox", __iconNode$1i);
|
|
|
81318
81413
|
*/
|
|
81319
81414
|
|
|
81320
81415
|
|
|
81321
|
-
const __iconNode$
|
|
81416
|
+
const __iconNode$1i = [
|
|
81322
81417
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
81323
81418
|
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
81324
81419
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
81325
81420
|
];
|
|
81326
|
-
const Info$3 = createLucideIcon("info", __iconNode$
|
|
81421
|
+
const Info$3 = createLucideIcon("info", __iconNode$1i);
|
|
81327
81422
|
|
|
81328
81423
|
/**
|
|
81329
81424
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81333,12 +81428,12 @@ const Info$3 = createLucideIcon("info", __iconNode$1h);
|
|
|
81333
81428
|
*/
|
|
81334
81429
|
|
|
81335
81430
|
|
|
81336
|
-
const __iconNode$
|
|
81431
|
+
const __iconNode$1h = [
|
|
81337
81432
|
["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
|
|
81338
81433
|
["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
|
|
81339
81434
|
["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
|
|
81340
81435
|
];
|
|
81341
|
-
const Italic$1 = createLucideIcon("italic", __iconNode$
|
|
81436
|
+
const Italic$1 = createLucideIcon("italic", __iconNode$1h);
|
|
81342
81437
|
|
|
81343
81438
|
/**
|
|
81344
81439
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81348,7 +81443,7 @@ const Italic$1 = createLucideIcon("italic", __iconNode$1g);
|
|
|
81348
81443
|
*/
|
|
81349
81444
|
|
|
81350
81445
|
|
|
81351
|
-
const __iconNode$
|
|
81446
|
+
const __iconNode$1g = [
|
|
81352
81447
|
[
|
|
81353
81448
|
"path",
|
|
81354
81449
|
{
|
|
@@ -81358,7 +81453,7 @@ const __iconNode$1f = [
|
|
|
81358
81453
|
],
|
|
81359
81454
|
["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
|
|
81360
81455
|
];
|
|
81361
|
-
const KeyRound = createLucideIcon("key-round", __iconNode$
|
|
81456
|
+
const KeyRound = createLucideIcon("key-round", __iconNode$1g);
|
|
81362
81457
|
|
|
81363
81458
|
/**
|
|
81364
81459
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81368,7 +81463,7 @@ const KeyRound = createLucideIcon("key-round", __iconNode$1f);
|
|
|
81368
81463
|
*/
|
|
81369
81464
|
|
|
81370
81465
|
|
|
81371
|
-
const __iconNode$
|
|
81466
|
+
const __iconNode$1f = [
|
|
81372
81467
|
["path", { d: "M10 18v-7", key: "wt116b" }],
|
|
81373
81468
|
[
|
|
81374
81469
|
"path",
|
|
@@ -81382,7 +81477,7 @@ const __iconNode$1e = [
|
|
|
81382
81477
|
["path", { d: "M3 22h18", key: "8prr45" }],
|
|
81383
81478
|
["path", { d: "M6 18v-7", key: "1ivflk" }]
|
|
81384
81479
|
];
|
|
81385
|
-
const Landmark = createLucideIcon("landmark", __iconNode$
|
|
81480
|
+
const Landmark = createLucideIcon("landmark", __iconNode$1f);
|
|
81386
81481
|
|
|
81387
81482
|
/**
|
|
81388
81483
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81392,7 +81487,7 @@ const Landmark = createLucideIcon("landmark", __iconNode$1e);
|
|
|
81392
81487
|
*/
|
|
81393
81488
|
|
|
81394
81489
|
|
|
81395
|
-
const __iconNode$
|
|
81490
|
+
const __iconNode$1e = [
|
|
81396
81491
|
[
|
|
81397
81492
|
"path",
|
|
81398
81493
|
{
|
|
@@ -81415,7 +81510,7 @@ const __iconNode$1d = [
|
|
|
81415
81510
|
}
|
|
81416
81511
|
]
|
|
81417
81512
|
];
|
|
81418
|
-
const Layers = createLucideIcon("layers", __iconNode$
|
|
81513
|
+
const Layers = createLucideIcon("layers", __iconNode$1e);
|
|
81419
81514
|
|
|
81420
81515
|
/**
|
|
81421
81516
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81425,12 +81520,12 @@ const Layers = createLucideIcon("layers", __iconNode$1d);
|
|
|
81425
81520
|
*/
|
|
81426
81521
|
|
|
81427
81522
|
|
|
81428
|
-
const __iconNode$
|
|
81523
|
+
const __iconNode$1d = [
|
|
81429
81524
|
["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
|
|
81430
81525
|
["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
|
|
81431
81526
|
["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
|
|
81432
81527
|
];
|
|
81433
|
-
const Link2 = createLucideIcon("link-2", __iconNode$
|
|
81528
|
+
const Link2 = createLucideIcon("link-2", __iconNode$1d);
|
|
81434
81529
|
|
|
81435
81530
|
/**
|
|
81436
81531
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81440,11 +81535,11 @@ const Link2 = createLucideIcon("link-2", __iconNode$1c);
|
|
|
81440
81535
|
*/
|
|
81441
81536
|
|
|
81442
81537
|
|
|
81443
|
-
const __iconNode$
|
|
81538
|
+
const __iconNode$1c = [
|
|
81444
81539
|
["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" }],
|
|
81445
81540
|
["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" }]
|
|
81446
81541
|
];
|
|
81447
|
-
const Link$1 = createLucideIcon("link", __iconNode$
|
|
81542
|
+
const Link$1 = createLucideIcon("link", __iconNode$1c);
|
|
81448
81543
|
|
|
81449
81544
|
/**
|
|
81450
81545
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81454,7 +81549,7 @@ const Link$1 = createLucideIcon("link", __iconNode$1b);
|
|
|
81454
81549
|
*/
|
|
81455
81550
|
|
|
81456
81551
|
|
|
81457
|
-
const __iconNode$
|
|
81552
|
+
const __iconNode$1b = [
|
|
81458
81553
|
["path", { d: "M10 12h11", key: "6m4ad9" }],
|
|
81459
81554
|
["path", { d: "M10 18h11", key: "11hvi2" }],
|
|
81460
81555
|
["path", { d: "M10 6h11", key: "c7qv1k" }],
|
|
@@ -81462,7 +81557,7 @@ const __iconNode$1a = [
|
|
|
81462
81557
|
["path", { d: "M4 6h1v4", key: "cnovpq" }],
|
|
81463
81558
|
["path", { d: "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1", key: "m9a95d" }]
|
|
81464
81559
|
];
|
|
81465
|
-
const ListOrdered = createLucideIcon("list-ordered", __iconNode$
|
|
81560
|
+
const ListOrdered = createLucideIcon("list-ordered", __iconNode$1b);
|
|
81466
81561
|
|
|
81467
81562
|
/**
|
|
81468
81563
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81472,7 +81567,7 @@ const ListOrdered = createLucideIcon("list-ordered", __iconNode$1a);
|
|
|
81472
81567
|
*/
|
|
81473
81568
|
|
|
81474
81569
|
|
|
81475
|
-
const __iconNode$
|
|
81570
|
+
const __iconNode$1a = [
|
|
81476
81571
|
["path", { d: "M3 12h.01", key: "nlz23k" }],
|
|
81477
81572
|
["path", { d: "M3 18h.01", key: "1tta3j" }],
|
|
81478
81573
|
["path", { d: "M3 6h.01", key: "1rqtza" }],
|
|
@@ -81480,7 +81575,7 @@ const __iconNode$19 = [
|
|
|
81480
81575
|
["path", { d: "M8 18h13", key: "1lx6n3" }],
|
|
81481
81576
|
["path", { d: "M8 6h13", key: "ik3vkj" }]
|
|
81482
81577
|
];
|
|
81483
|
-
const List$1 = createLucideIcon("list", __iconNode$
|
|
81578
|
+
const List$1 = createLucideIcon("list", __iconNode$1a);
|
|
81484
81579
|
|
|
81485
81580
|
/**
|
|
81486
81581
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81490,8 +81585,8 @@ const List$1 = createLucideIcon("list", __iconNode$19);
|
|
|
81490
81585
|
*/
|
|
81491
81586
|
|
|
81492
81587
|
|
|
81493
|
-
const __iconNode$
|
|
81494
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
81588
|
+
const __iconNode$19 = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
81589
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$19);
|
|
81495
81590
|
|
|
81496
81591
|
/**
|
|
81497
81592
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81501,11 +81596,11 @@ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$18);
|
|
|
81501
81596
|
*/
|
|
81502
81597
|
|
|
81503
81598
|
|
|
81504
|
-
const __iconNode$
|
|
81599
|
+
const __iconNode$18 = [
|
|
81505
81600
|
["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
|
|
81506
81601
|
["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
|
|
81507
81602
|
];
|
|
81508
|
-
const Lock = createLucideIcon("lock", __iconNode$
|
|
81603
|
+
const Lock = createLucideIcon("lock", __iconNode$18);
|
|
81509
81604
|
|
|
81510
81605
|
/**
|
|
81511
81606
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81515,11 +81610,11 @@ const Lock = createLucideIcon("lock", __iconNode$17);
|
|
|
81515
81610
|
*/
|
|
81516
81611
|
|
|
81517
81612
|
|
|
81518
|
-
const __iconNode$
|
|
81613
|
+
const __iconNode$17 = [
|
|
81519
81614
|
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
81520
81615
|
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
81521
81616
|
];
|
|
81522
|
-
const Mail = createLucideIcon("mail", __iconNode$
|
|
81617
|
+
const Mail = createLucideIcon("mail", __iconNode$17);
|
|
81523
81618
|
|
|
81524
81619
|
/**
|
|
81525
81620
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81529,10 +81624,10 @@ const Mail = createLucideIcon("mail", __iconNode$16);
|
|
|
81529
81624
|
*/
|
|
81530
81625
|
|
|
81531
81626
|
|
|
81532
|
-
const __iconNode$
|
|
81627
|
+
const __iconNode$16 = [
|
|
81533
81628
|
["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" }]
|
|
81534
81629
|
];
|
|
81535
|
-
const MessageSquare = createLucideIcon("message-square", __iconNode$
|
|
81630
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$16);
|
|
81536
81631
|
|
|
81537
81632
|
/**
|
|
81538
81633
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81542,12 +81637,12 @@ const MessageSquare = createLucideIcon("message-square", __iconNode$15);
|
|
|
81542
81637
|
*/
|
|
81543
81638
|
|
|
81544
81639
|
|
|
81545
|
-
const __iconNode$
|
|
81640
|
+
const __iconNode$15 = [
|
|
81546
81641
|
["path", { d: "M12 19v3", key: "npa21l" }],
|
|
81547
81642
|
["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
|
|
81548
81643
|
["rect", { x: "9", y: "2", width: "6", height: "13", rx: "3", key: "s6n7sd" }]
|
|
81549
81644
|
];
|
|
81550
|
-
const Mic = createLucideIcon("mic", __iconNode$
|
|
81645
|
+
const Mic = createLucideIcon("mic", __iconNode$15);
|
|
81551
81646
|
|
|
81552
81647
|
/**
|
|
81553
81648
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81557,12 +81652,12 @@ const Mic = createLucideIcon("mic", __iconNode$14);
|
|
|
81557
81652
|
*/
|
|
81558
81653
|
|
|
81559
81654
|
|
|
81560
|
-
const __iconNode$
|
|
81655
|
+
const __iconNode$14 = [
|
|
81561
81656
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
81562
81657
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
81563
81658
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
81564
81659
|
];
|
|
81565
|
-
const Monitor = createLucideIcon("monitor", __iconNode$
|
|
81660
|
+
const Monitor = createLucideIcon("monitor", __iconNode$14);
|
|
81566
81661
|
|
|
81567
81662
|
/**
|
|
81568
81663
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81572,7 +81667,7 @@ const Monitor = createLucideIcon("monitor", __iconNode$13);
|
|
|
81572
81667
|
*/
|
|
81573
81668
|
|
|
81574
81669
|
|
|
81575
|
-
const __iconNode$
|
|
81670
|
+
const __iconNode$13 = [
|
|
81576
81671
|
[
|
|
81577
81672
|
"path",
|
|
81578
81673
|
{
|
|
@@ -81581,7 +81676,7 @@ const __iconNode$12 = [
|
|
|
81581
81676
|
}
|
|
81582
81677
|
]
|
|
81583
81678
|
];
|
|
81584
|
-
const Paperclip = createLucideIcon("paperclip", __iconNode$
|
|
81679
|
+
const Paperclip = createLucideIcon("paperclip", __iconNode$13);
|
|
81585
81680
|
|
|
81586
81681
|
/**
|
|
81587
81682
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81591,7 +81686,7 @@ const Paperclip = createLucideIcon("paperclip", __iconNode$12);
|
|
|
81591
81686
|
*/
|
|
81592
81687
|
|
|
81593
81688
|
|
|
81594
|
-
const __iconNode$
|
|
81689
|
+
const __iconNode$12 = [
|
|
81595
81690
|
["path", { d: "M13 21h8", key: "1jsn5i" }],
|
|
81596
81691
|
[
|
|
81597
81692
|
"path",
|
|
@@ -81601,7 +81696,7 @@ const __iconNode$11 = [
|
|
|
81601
81696
|
}
|
|
81602
81697
|
]
|
|
81603
81698
|
];
|
|
81604
|
-
const PenLine = createLucideIcon("pen-line", __iconNode$
|
|
81699
|
+
const PenLine = createLucideIcon("pen-line", __iconNode$12);
|
|
81605
81700
|
|
|
81606
81701
|
/**
|
|
81607
81702
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81611,7 +81706,7 @@ const PenLine = createLucideIcon("pen-line", __iconNode$11);
|
|
|
81611
81706
|
*/
|
|
81612
81707
|
|
|
81613
81708
|
|
|
81614
|
-
const __iconNode$
|
|
81709
|
+
const __iconNode$11 = [
|
|
81615
81710
|
[
|
|
81616
81711
|
"path",
|
|
81617
81712
|
{
|
|
@@ -81620,7 +81715,7 @@ const __iconNode$10 = [
|
|
|
81620
81715
|
}
|
|
81621
81716
|
]
|
|
81622
81717
|
];
|
|
81623
|
-
const Pen = createLucideIcon("pen", __iconNode$
|
|
81718
|
+
const Pen = createLucideIcon("pen", __iconNode$11);
|
|
81624
81719
|
|
|
81625
81720
|
/**
|
|
81626
81721
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81630,7 +81725,7 @@ const Pen = createLucideIcon("pen", __iconNode$10);
|
|
|
81630
81725
|
*/
|
|
81631
81726
|
|
|
81632
81727
|
|
|
81633
|
-
const __iconNode
|
|
81728
|
+
const __iconNode$10 = [
|
|
81634
81729
|
[
|
|
81635
81730
|
"path",
|
|
81636
81731
|
{
|
|
@@ -81640,7 +81735,7 @@ const __iconNode$$ = [
|
|
|
81640
81735
|
],
|
|
81641
81736
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
81642
81737
|
];
|
|
81643
|
-
const Pencil = createLucideIcon("pencil", __iconNode
|
|
81738
|
+
const Pencil = createLucideIcon("pencil", __iconNode$10);
|
|
81644
81739
|
|
|
81645
81740
|
/**
|
|
81646
81741
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81650,7 +81745,7 @@ const Pencil = createLucideIcon("pencil", __iconNode$$);
|
|
|
81650
81745
|
*/
|
|
81651
81746
|
|
|
81652
81747
|
|
|
81653
|
-
const __iconNode
|
|
81748
|
+
const __iconNode$$ = [
|
|
81654
81749
|
[
|
|
81655
81750
|
"path",
|
|
81656
81751
|
{
|
|
@@ -81659,7 +81754,7 @@ const __iconNode$_ = [
|
|
|
81659
81754
|
}
|
|
81660
81755
|
]
|
|
81661
81756
|
];
|
|
81662
|
-
const Play = createLucideIcon("play", __iconNode
|
|
81757
|
+
const Play = createLucideIcon("play", __iconNode$$);
|
|
81663
81758
|
|
|
81664
81759
|
/**
|
|
81665
81760
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81669,11 +81764,11 @@ const Play = createLucideIcon("play", __iconNode$_);
|
|
|
81669
81764
|
*/
|
|
81670
81765
|
|
|
81671
81766
|
|
|
81672
|
-
const __iconNode$
|
|
81767
|
+
const __iconNode$_ = [
|
|
81673
81768
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
81674
81769
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
81675
81770
|
];
|
|
81676
|
-
const Plus = createLucideIcon("plus", __iconNode$
|
|
81771
|
+
const Plus = createLucideIcon("plus", __iconNode$_);
|
|
81677
81772
|
|
|
81678
81773
|
/**
|
|
81679
81774
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81683,12 +81778,12 @@ const Plus = createLucideIcon("plus", __iconNode$Z);
|
|
|
81683
81778
|
*/
|
|
81684
81779
|
|
|
81685
81780
|
|
|
81686
|
-
const __iconNode$
|
|
81781
|
+
const __iconNode$Z = [
|
|
81687
81782
|
["path", { d: "M2 3h20", key: "91anmk" }],
|
|
81688
81783
|
["path", { d: "M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3", key: "2k9sn8" }],
|
|
81689
81784
|
["path", { d: "m7 21 5-5 5 5", key: "bip4we" }]
|
|
81690
81785
|
];
|
|
81691
|
-
const Presentation = createLucideIcon("presentation", __iconNode$
|
|
81786
|
+
const Presentation = createLucideIcon("presentation", __iconNode$Z);
|
|
81692
81787
|
|
|
81693
81788
|
/**
|
|
81694
81789
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81698,7 +81793,7 @@ const Presentation = createLucideIcon("presentation", __iconNode$Y);
|
|
|
81698
81793
|
*/
|
|
81699
81794
|
|
|
81700
81795
|
|
|
81701
|
-
const __iconNode$
|
|
81796
|
+
const __iconNode$Y = [
|
|
81702
81797
|
[
|
|
81703
81798
|
"path",
|
|
81704
81799
|
{
|
|
@@ -81707,7 +81802,7 @@ const __iconNode$X = [
|
|
|
81707
81802
|
}
|
|
81708
81803
|
]
|
|
81709
81804
|
];
|
|
81710
|
-
const Puzzle = createLucideIcon("puzzle", __iconNode$
|
|
81805
|
+
const Puzzle = createLucideIcon("puzzle", __iconNode$Y);
|
|
81711
81806
|
|
|
81712
81807
|
/**
|
|
81713
81808
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81717,7 +81812,7 @@ const Puzzle = createLucideIcon("puzzle", __iconNode$X);
|
|
|
81717
81812
|
*/
|
|
81718
81813
|
|
|
81719
81814
|
|
|
81720
|
-
const __iconNode$
|
|
81815
|
+
const __iconNode$X = [
|
|
81721
81816
|
[
|
|
81722
81817
|
"path",
|
|
81723
81818
|
{
|
|
@@ -81733,7 +81828,7 @@ const __iconNode$W = [
|
|
|
81733
81828
|
}
|
|
81734
81829
|
]
|
|
81735
81830
|
];
|
|
81736
|
-
const Quote = createLucideIcon("quote", __iconNode$
|
|
81831
|
+
const Quote = createLucideIcon("quote", __iconNode$X);
|
|
81737
81832
|
|
|
81738
81833
|
/**
|
|
81739
81834
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81743,14 +81838,14 @@ const Quote = createLucideIcon("quote", __iconNode$W);
|
|
|
81743
81838
|
*/
|
|
81744
81839
|
|
|
81745
81840
|
|
|
81746
|
-
const __iconNode$
|
|
81841
|
+
const __iconNode$W = [
|
|
81747
81842
|
["path", { d: "M16.247 7.761a6 6 0 0 1 0 8.478", key: "1fwjs5" }],
|
|
81748
81843
|
["path", { d: "M19.075 4.933a10 10 0 0 1 0 14.134", key: "ehdyv1" }],
|
|
81749
81844
|
["path", { d: "M4.925 19.067a10 10 0 0 1 0-14.134", key: "1q22gi" }],
|
|
81750
81845
|
["path", { d: "M7.753 16.239a6 6 0 0 1 0-8.478", key: "r2q7qm" }],
|
|
81751
81846
|
["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
|
|
81752
81847
|
];
|
|
81753
|
-
const Radio$1 = createLucideIcon("radio", __iconNode$
|
|
81848
|
+
const Radio$1 = createLucideIcon("radio", __iconNode$W);
|
|
81754
81849
|
|
|
81755
81850
|
/**
|
|
81756
81851
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81760,13 +81855,13 @@ const Radio$1 = createLucideIcon("radio", __iconNode$V);
|
|
|
81760
81855
|
*/
|
|
81761
81856
|
|
|
81762
81857
|
|
|
81763
|
-
const __iconNode$
|
|
81858
|
+
const __iconNode$V = [
|
|
81764
81859
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
81765
81860
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
81766
81861
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
81767
81862
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
81768
81863
|
];
|
|
81769
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
81864
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$V);
|
|
81770
81865
|
|
|
81771
81866
|
/**
|
|
81772
81867
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81776,13 +81871,13 @@ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$U);
|
|
|
81776
81871
|
*/
|
|
81777
81872
|
|
|
81778
81873
|
|
|
81779
|
-
const __iconNode$
|
|
81874
|
+
const __iconNode$U = [
|
|
81780
81875
|
["path", { d: "m17 2 4 4-4 4", key: "nntrym" }],
|
|
81781
81876
|
["path", { d: "M3 11v-1a4 4 0 0 1 4-4h14", key: "84bu3i" }],
|
|
81782
81877
|
["path", { d: "m7 22-4-4 4-4", key: "1wqhfi" }],
|
|
81783
81878
|
["path", { d: "M21 13v1a4 4 0 0 1-4 4H3", key: "1rx37r" }]
|
|
81784
81879
|
];
|
|
81785
|
-
const Repeat = createLucideIcon("repeat", __iconNode$
|
|
81880
|
+
const Repeat = createLucideIcon("repeat", __iconNode$U);
|
|
81786
81881
|
|
|
81787
81882
|
/**
|
|
81788
81883
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81792,11 +81887,11 @@ const Repeat = createLucideIcon("repeat", __iconNode$T);
|
|
|
81792
81887
|
*/
|
|
81793
81888
|
|
|
81794
81889
|
|
|
81795
|
-
const __iconNode$
|
|
81890
|
+
const __iconNode$T = [
|
|
81796
81891
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
81797
81892
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }]
|
|
81798
81893
|
];
|
|
81799
|
-
const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$
|
|
81894
|
+
const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$T);
|
|
81800
81895
|
|
|
81801
81896
|
/**
|
|
81802
81897
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81806,11 +81901,11 @@ const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$S);
|
|
|
81806
81901
|
*/
|
|
81807
81902
|
|
|
81808
81903
|
|
|
81809
|
-
const __iconNode$
|
|
81904
|
+
const __iconNode$S = [
|
|
81810
81905
|
["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
|
|
81811
81906
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }]
|
|
81812
81907
|
];
|
|
81813
|
-
const RotateCw = createLucideIcon("rotate-cw", __iconNode$
|
|
81908
|
+
const RotateCw = createLucideIcon("rotate-cw", __iconNode$S);
|
|
81814
81909
|
|
|
81815
81910
|
/**
|
|
81816
81911
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81820,12 +81915,12 @@ const RotateCw = createLucideIcon("rotate-cw", __iconNode$R);
|
|
|
81820
81915
|
*/
|
|
81821
81916
|
|
|
81822
81917
|
|
|
81823
|
-
const __iconNode$
|
|
81918
|
+
const __iconNode$R = [
|
|
81824
81919
|
["circle", { cx: "6", cy: "19", r: "3", key: "1kj8tv" }],
|
|
81825
81920
|
["path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15", key: "1d8sl" }],
|
|
81826
81921
|
["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }]
|
|
81827
81922
|
];
|
|
81828
|
-
const Route = createLucideIcon("route", __iconNode$
|
|
81923
|
+
const Route = createLucideIcon("route", __iconNode$R);
|
|
81829
81924
|
|
|
81830
81925
|
/**
|
|
81831
81926
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81835,7 +81930,7 @@ const Route = createLucideIcon("route", __iconNode$Q);
|
|
|
81835
81930
|
*/
|
|
81836
81931
|
|
|
81837
81932
|
|
|
81838
|
-
const __iconNode$
|
|
81933
|
+
const __iconNode$Q = [
|
|
81839
81934
|
[
|
|
81840
81935
|
"path",
|
|
81841
81936
|
{
|
|
@@ -81846,7 +81941,7 @@ const __iconNode$P = [
|
|
|
81846
81941
|
["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
|
|
81847
81942
|
["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
|
|
81848
81943
|
];
|
|
81849
|
-
const Save = createLucideIcon("save", __iconNode$
|
|
81944
|
+
const Save = createLucideIcon("save", __iconNode$Q);
|
|
81850
81945
|
|
|
81851
81946
|
/**
|
|
81852
81947
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81856,7 +81951,7 @@ const Save = createLucideIcon("save", __iconNode$P);
|
|
|
81856
81951
|
*/
|
|
81857
81952
|
|
|
81858
81953
|
|
|
81859
|
-
const __iconNode$
|
|
81954
|
+
const __iconNode$P = [
|
|
81860
81955
|
["path", { d: "M14 22v-4a2 2 0 1 0-4 0v4", key: "hhkicm" }],
|
|
81861
81956
|
[
|
|
81862
81957
|
"path",
|
|
@@ -81870,7 +81965,7 @@ const __iconNode$O = [
|
|
|
81870
81965
|
["path", { d: "M6 5v17", key: "1xfsm0" }],
|
|
81871
81966
|
["circle", { cx: "12", cy: "9", r: "2", key: "1092wv" }]
|
|
81872
81967
|
];
|
|
81873
|
-
const School = createLucideIcon("school", __iconNode$
|
|
81968
|
+
const School = createLucideIcon("school", __iconNode$P);
|
|
81874
81969
|
|
|
81875
81970
|
/**
|
|
81876
81971
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81880,14 +81975,14 @@ const School = createLucideIcon("school", __iconNode$O);
|
|
|
81880
81975
|
*/
|
|
81881
81976
|
|
|
81882
81977
|
|
|
81883
|
-
const __iconNode$
|
|
81978
|
+
const __iconNode$O = [
|
|
81884
81979
|
["path", { d: "M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3", key: "i8wdob" }],
|
|
81885
81980
|
["path", { d: "M8 21h8", key: "1ev6f3" }],
|
|
81886
81981
|
["path", { d: "M12 17v4", key: "1riwvh" }],
|
|
81887
81982
|
["path", { d: "m17 8 5-5", key: "fqif7o" }],
|
|
81888
81983
|
["path", { d: "M17 3h5v5", key: "1o3tu8" }]
|
|
81889
81984
|
];
|
|
81890
|
-
const ScreenShare = createLucideIcon("screen-share", __iconNode$
|
|
81985
|
+
const ScreenShare = createLucideIcon("screen-share", __iconNode$O);
|
|
81891
81986
|
|
|
81892
81987
|
/**
|
|
81893
81988
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81897,7 +81992,7 @@ const ScreenShare = createLucideIcon("screen-share", __iconNode$N);
|
|
|
81897
81992
|
*/
|
|
81898
81993
|
|
|
81899
81994
|
|
|
81900
|
-
const __iconNode$
|
|
81995
|
+
const __iconNode$N = [
|
|
81901
81996
|
["path", { d: "M15 12h-5", key: "r7krc0" }],
|
|
81902
81997
|
["path", { d: "M15 8h-5", key: "1khuty" }],
|
|
81903
81998
|
["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
|
|
@@ -81909,7 +82004,7 @@ const __iconNode$M = [
|
|
|
81909
82004
|
}
|
|
81910
82005
|
]
|
|
81911
82006
|
];
|
|
81912
|
-
const ScrollText = createLucideIcon("scroll-text", __iconNode$
|
|
82007
|
+
const ScrollText = createLucideIcon("scroll-text", __iconNode$N);
|
|
81913
82008
|
|
|
81914
82009
|
/**
|
|
81915
82010
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81919,11 +82014,11 @@ const ScrollText = createLucideIcon("scroll-text", __iconNode$M);
|
|
|
81919
82014
|
*/
|
|
81920
82015
|
|
|
81921
82016
|
|
|
81922
|
-
const __iconNode$
|
|
82017
|
+
const __iconNode$M = [
|
|
81923
82018
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
81924
82019
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
81925
82020
|
];
|
|
81926
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
82021
|
+
const Search = createLucideIcon("search", __iconNode$M);
|
|
81927
82022
|
|
|
81928
82023
|
/**
|
|
81929
82024
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81933,7 +82028,7 @@ const Search = createLucideIcon("search", __iconNode$L);
|
|
|
81933
82028
|
*/
|
|
81934
82029
|
|
|
81935
82030
|
|
|
81936
|
-
const __iconNode$
|
|
82031
|
+
const __iconNode$L = [
|
|
81937
82032
|
[
|
|
81938
82033
|
"path",
|
|
81939
82034
|
{
|
|
@@ -81943,7 +82038,7 @@ const __iconNode$K = [
|
|
|
81943
82038
|
],
|
|
81944
82039
|
["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
|
|
81945
82040
|
];
|
|
81946
|
-
const Send = createLucideIcon("send", __iconNode$
|
|
82041
|
+
const Send = createLucideIcon("send", __iconNode$L);
|
|
81947
82042
|
|
|
81948
82043
|
/**
|
|
81949
82044
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81953,13 +82048,13 @@ const Send = createLucideIcon("send", __iconNode$K);
|
|
|
81953
82048
|
*/
|
|
81954
82049
|
|
|
81955
82050
|
|
|
81956
|
-
const __iconNode$
|
|
82051
|
+
const __iconNode$K = [
|
|
81957
82052
|
["rect", { width: "20", height: "8", x: "2", y: "2", rx: "2", ry: "2", key: "ngkwjq" }],
|
|
81958
82053
|
["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", ry: "2", key: "iecqi9" }],
|
|
81959
82054
|
["line", { x1: "6", x2: "6.01", y1: "6", y2: "6", key: "16zg32" }],
|
|
81960
82055
|
["line", { x1: "6", x2: "6.01", y1: "18", y2: "18", key: "nzw8ys" }]
|
|
81961
82056
|
];
|
|
81962
|
-
const Server = createLucideIcon("server", __iconNode$
|
|
82057
|
+
const Server = createLucideIcon("server", __iconNode$K);
|
|
81963
82058
|
|
|
81964
82059
|
/**
|
|
81965
82060
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81969,13 +82064,13 @@ const Server = createLucideIcon("server", __iconNode$J);
|
|
|
81969
82064
|
*/
|
|
81970
82065
|
|
|
81971
82066
|
|
|
81972
|
-
const __iconNode$
|
|
82067
|
+
const __iconNode$J = [
|
|
81973
82068
|
["path", { d: "M14 17H5", key: "gfn3mx" }],
|
|
81974
82069
|
["path", { d: "M19 7h-9", key: "6i9tg" }],
|
|
81975
82070
|
["circle", { cx: "17", cy: "17", r: "3", key: "18b49y" }],
|
|
81976
82071
|
["circle", { cx: "7", cy: "7", r: "3", key: "dfmy0x" }]
|
|
81977
82072
|
];
|
|
81978
|
-
const Settings2 = createLucideIcon("settings-2", __iconNode$
|
|
82073
|
+
const Settings2 = createLucideIcon("settings-2", __iconNode$J);
|
|
81979
82074
|
|
|
81980
82075
|
/**
|
|
81981
82076
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -81985,7 +82080,7 @@ const Settings2 = createLucideIcon("settings-2", __iconNode$I);
|
|
|
81985
82080
|
*/
|
|
81986
82081
|
|
|
81987
82082
|
|
|
81988
|
-
const __iconNode$
|
|
82083
|
+
const __iconNode$I = [
|
|
81989
82084
|
[
|
|
81990
82085
|
"path",
|
|
81991
82086
|
{
|
|
@@ -81995,7 +82090,7 @@ const __iconNode$H = [
|
|
|
81995
82090
|
],
|
|
81996
82091
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
81997
82092
|
];
|
|
81998
|
-
const Settings = createLucideIcon("settings", __iconNode$
|
|
82093
|
+
const Settings = createLucideIcon("settings", __iconNode$I);
|
|
81999
82094
|
|
|
82000
82095
|
/**
|
|
82001
82096
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82005,14 +82100,14 @@ const Settings = createLucideIcon("settings", __iconNode$H);
|
|
|
82005
82100
|
*/
|
|
82006
82101
|
|
|
82007
82102
|
|
|
82008
|
-
const __iconNode$
|
|
82103
|
+
const __iconNode$H = [
|
|
82009
82104
|
["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
|
|
82010
82105
|
["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
|
|
82011
82106
|
["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
|
|
82012
82107
|
["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
|
|
82013
82108
|
["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
|
|
82014
82109
|
];
|
|
82015
|
-
const Share2 = createLucideIcon("share-2", __iconNode$
|
|
82110
|
+
const Share2 = createLucideIcon("share-2", __iconNode$H);
|
|
82016
82111
|
|
|
82017
82112
|
/**
|
|
82018
82113
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82022,7 +82117,7 @@ const Share2 = createLucideIcon("share-2", __iconNode$G);
|
|
|
82022
82117
|
*/
|
|
82023
82118
|
|
|
82024
82119
|
|
|
82025
|
-
const __iconNode$
|
|
82120
|
+
const __iconNode$G = [
|
|
82026
82121
|
[
|
|
82027
82122
|
"path",
|
|
82028
82123
|
{
|
|
@@ -82033,7 +82128,7 @@ const __iconNode$F = [
|
|
|
82033
82128
|
["path", { d: "M12 8v4", key: "1got3b" }],
|
|
82034
82129
|
["path", { d: "M12 16h.01", key: "1drbdi" }]
|
|
82035
82130
|
];
|
|
82036
|
-
const ShieldAlert = createLucideIcon("shield-alert", __iconNode$
|
|
82131
|
+
const ShieldAlert = createLucideIcon("shield-alert", __iconNode$G);
|
|
82037
82132
|
|
|
82038
82133
|
/**
|
|
82039
82134
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82043,7 +82138,7 @@ const ShieldAlert = createLucideIcon("shield-alert", __iconNode$F);
|
|
|
82043
82138
|
*/
|
|
82044
82139
|
|
|
82045
82140
|
|
|
82046
|
-
const __iconNode$
|
|
82141
|
+
const __iconNode$F = [
|
|
82047
82142
|
[
|
|
82048
82143
|
"path",
|
|
82049
82144
|
{
|
|
@@ -82053,7 +82148,7 @@ const __iconNode$E = [
|
|
|
82053
82148
|
],
|
|
82054
82149
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
82055
82150
|
];
|
|
82056
|
-
const ShieldCheck = createLucideIcon("shield-check", __iconNode$
|
|
82151
|
+
const ShieldCheck = createLucideIcon("shield-check", __iconNode$F);
|
|
82057
82152
|
|
|
82058
82153
|
/**
|
|
82059
82154
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82063,7 +82158,7 @@ const ShieldCheck = createLucideIcon("shield-check", __iconNode$E);
|
|
|
82063
82158
|
*/
|
|
82064
82159
|
|
|
82065
82160
|
|
|
82066
|
-
const __iconNode$
|
|
82161
|
+
const __iconNode$E = [
|
|
82067
82162
|
[
|
|
82068
82163
|
"path",
|
|
82069
82164
|
{
|
|
@@ -82072,7 +82167,7 @@ const __iconNode$D = [
|
|
|
82072
82167
|
}
|
|
82073
82168
|
]
|
|
82074
82169
|
];
|
|
82075
|
-
const Shield = createLucideIcon("shield", __iconNode$
|
|
82170
|
+
const Shield = createLucideIcon("shield", __iconNode$E);
|
|
82076
82171
|
|
|
82077
82172
|
/**
|
|
82078
82173
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82082,7 +82177,7 @@ const Shield = createLucideIcon("shield", __iconNode$D);
|
|
|
82082
82177
|
*/
|
|
82083
82178
|
|
|
82084
82179
|
|
|
82085
|
-
const __iconNode$
|
|
82180
|
+
const __iconNode$D = [
|
|
82086
82181
|
["path", { d: "M16 10a4 4 0 0 1-8 0", key: "1ltviw" }],
|
|
82087
82182
|
["path", { d: "M3.103 6.034h17.794", key: "awc11p" }],
|
|
82088
82183
|
[
|
|
@@ -82093,7 +82188,7 @@ const __iconNode$C = [
|
|
|
82093
82188
|
}
|
|
82094
82189
|
]
|
|
82095
82190
|
];
|
|
82096
|
-
const ShoppingBag = createLucideIcon("shopping-bag", __iconNode$
|
|
82191
|
+
const ShoppingBag = createLucideIcon("shopping-bag", __iconNode$D);
|
|
82097
82192
|
|
|
82098
82193
|
/**
|
|
82099
82194
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82103,14 +82198,14 @@ const ShoppingBag = createLucideIcon("shopping-bag", __iconNode$C);
|
|
|
82103
82198
|
*/
|
|
82104
82199
|
|
|
82105
82200
|
|
|
82106
|
-
const __iconNode$
|
|
82201
|
+
const __iconNode$C = [
|
|
82107
82202
|
["path", { d: "m18 14 4 4-4 4", key: "10pe0f" }],
|
|
82108
82203
|
["path", { d: "m18 2 4 4-4 4", key: "pucp1d" }],
|
|
82109
82204
|
["path", { d: "M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22", key: "1ailkh" }],
|
|
82110
82205
|
["path", { d: "M2 6h1.972a4 4 0 0 1 3.6 2.2", key: "km57vx" }],
|
|
82111
82206
|
["path", { d: "M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45", key: "os18l9" }]
|
|
82112
82207
|
];
|
|
82113
|
-
const Shuffle = createLucideIcon("shuffle", __iconNode$
|
|
82208
|
+
const Shuffle = createLucideIcon("shuffle", __iconNode$C);
|
|
82114
82209
|
|
|
82115
82210
|
/**
|
|
82116
82211
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82120,7 +82215,7 @@ const Shuffle = createLucideIcon("shuffle", __iconNode$B);
|
|
|
82120
82215
|
*/
|
|
82121
82216
|
|
|
82122
82217
|
|
|
82123
|
-
const __iconNode$
|
|
82218
|
+
const __iconNode$B = [
|
|
82124
82219
|
["line", { x1: "21", x2: "14", y1: "4", y2: "4", key: "obuewd" }],
|
|
82125
82220
|
["line", { x1: "10", x2: "3", y1: "4", y2: "4", key: "1q6298" }],
|
|
82126
82221
|
["line", { x1: "21", x2: "12", y1: "12", y2: "12", key: "1iu8h1" }],
|
|
@@ -82131,7 +82226,7 @@ const __iconNode$A = [
|
|
|
82131
82226
|
["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
|
|
82132
82227
|
["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
|
|
82133
82228
|
];
|
|
82134
|
-
const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$
|
|
82229
|
+
const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$B);
|
|
82135
82230
|
|
|
82136
82231
|
/**
|
|
82137
82232
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82141,11 +82236,11 @@ const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$A);
|
|
|
82141
82236
|
*/
|
|
82142
82237
|
|
|
82143
82238
|
|
|
82144
|
-
const __iconNode$
|
|
82239
|
+
const __iconNode$A = [
|
|
82145
82240
|
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
82146
82241
|
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
82147
82242
|
];
|
|
82148
|
-
const Smartphone = createLucideIcon("smartphone", __iconNode$
|
|
82243
|
+
const Smartphone = createLucideIcon("smartphone", __iconNode$A);
|
|
82149
82244
|
|
|
82150
82245
|
/**
|
|
82151
82246
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -82155,7 +82250,7 @@ const Smartphone = createLucideIcon("smartphone", __iconNode$z);
|
|
|
82155
82250
|
*/
|
|
82156
82251
|
|
|
82157
82252
|
|
|
82158
|
-
const __iconNode$
|
|
82253
|
+
const __iconNode$z = [
|
|
82159
82254
|
[
|
|
82160
82255
|
"path",
|
|
82161
82256
|
{
|
|
@@ -82167,7 +82262,22 @@ const __iconNode$y = [
|
|
|
82167
82262
|
["path", { d: "M22 4h-4", key: "gwowj6" }],
|
|
82168
82263
|
["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
|
|
82169
82264
|
];
|
|
82170
|
-
const Sparkles = createLucideIcon("sparkles", __iconNode$
|
|
82265
|
+
const Sparkles = createLucideIcon("sparkles", __iconNode$z);
|
|
82266
|
+
|
|
82267
|
+
/**
|
|
82268
|
+
* @license lucide-react v0.528.0 - ISC
|
|
82269
|
+
*
|
|
82270
|
+
* This source code is licensed under the ISC license.
|
|
82271
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
82272
|
+
*/
|
|
82273
|
+
|
|
82274
|
+
|
|
82275
|
+
const __iconNode$y = [
|
|
82276
|
+
["path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6", key: "y09zxi" }],
|
|
82277
|
+
["path", { d: "m21 3-9 9", key: "mpx6sq" }],
|
|
82278
|
+
["path", { d: "M15 3h6v6", key: "1q9fwt" }]
|
|
82279
|
+
];
|
|
82280
|
+
const SquareArrowOutUpRight = createLucideIcon("square-arrow-out-up-right", __iconNode$y);
|
|
82171
82281
|
|
|
82172
82282
|
/**
|
|
82173
82283
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -148919,6 +149029,151 @@ function ChatPrivacyTab({ org, username }) {
|
|
|
148919
149029
|
|
|
148920
149030
|
function c(e,u,c){var i=this,a=useRef(null),o=useRef(0),f=useRef(null),l=useRef([]),v=useRef(),m=useRef(),d=useRef(e),g=useRef(true);d.current=e;var p="undefined"!=typeof window,w=!u&&0!==u&&p;if("function"!=typeof e)throw new TypeError("Expected a function");u=+u||0;var s=!!(c=c||{}).leading,x=!("trailing"in c)||!!c.trailing,h="maxWait"in c,y="debounceOnServer"in c&&!!c.debounceOnServer,F=h?Math.max(+c.maxWait||0,u):null;useEffect(function(){return g.current=true,function(){g.current=false;}},[]);var A=useMemo(function(){var r=function(r){var n=l.current,t=v.current;return l.current=v.current=null,o.current=r,m.current=d.current.apply(t,n)},n=function(r,n){w&&cancelAnimationFrame(f.current),f.current=w?requestAnimationFrame(r):setTimeout(r,n);},t=function(r){if(!g.current)return false;var n=r-a.current;return !a.current||n>=u||n<0||h&&r-o.current>=F},e=function(n){return f.current=null,x&&l.current?r(n):(l.current=v.current=null,m.current)},c=function r(){var c=Date.now();if(t(c))return e(c);if(g.current){var i=u-(c-a.current),f=h?Math.min(i,F-(c-o.current)):i;n(r,f);}},A=function(){if(p||y){var e=Date.now(),d=t(e);if(l.current=[].slice.call(arguments),v.current=i,a.current=e,d){if(!f.current&&g.current)return o.current=a.current,n(c,u),s?r(a.current):m.current;if(h)return n(c,u),r(a.current)}return f.current||n(c,u),m.current}};return A.cancel=function(){f.current&&(w?cancelAnimationFrame(f.current):clearTimeout(f.current)),o.current=0,l.current=a.current=v.current=f.current=null;},A.isPending=function(){return !!f.current},A.flush=function(){return f.current?e(Date.now()):m.current},A},[s,h,u,F,x,w,p,y]);return A}function i$1(r,n){return r===n}function a(n,t,a){var o=i$1,f=useRef(n),l=useState({})[1],v=c(useCallback(function(r){f.current=r,l({});},[l]),t,a),m=useRef(n);return o(m.current,n)||(v(n),m.current=n),[f.current,v]}
|
|
148921
149031
|
|
|
149032
|
+
var _a;
|
|
149033
|
+
/**
|
|
149034
|
+
* One context object for every copy of this module. The SDK ships several
|
|
149035
|
+
* bundles (`index`, `next`, …) that each inline their own copy of this file,
|
|
149036
|
+
* so a host provider from one bundle would never reach a link rendered by
|
|
149037
|
+
* another (the profile modal comes from `next`; Transcripts from `index`).
|
|
149038
|
+
* Registering the context on `globalThis` under a well-known symbol makes
|
|
149039
|
+
* the copies share it — React is a single external instance, so the object
|
|
149040
|
+
* is interchangeable between them.
|
|
149041
|
+
*/
|
|
149042
|
+
const CONTEXT_KEY = Symbol.for('@iblai/web-containers/agent-settings-launcher');
|
|
149043
|
+
const registry = globalThis;
|
|
149044
|
+
const AgentSettingsLauncherContext = (_a = registry[CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (registry[CONTEXT_KEY] = React__default.createContext(null));
|
|
149045
|
+
/**
|
|
149046
|
+
* Lets a host say how an agent's settings open — the same dialog its nav bar
|
|
149047
|
+
* opens — so every SDK surface that names an agent (Transcripts, the profile
|
|
149048
|
+
* History tab) can link the name to it. Without a provider the names are
|
|
149049
|
+
* plain text, which is right for hosts with no agent settings at all.
|
|
149050
|
+
*/
|
|
149051
|
+
function AgentSettingsLauncherProvider({ value, children, }) {
|
|
149052
|
+
return (jsx(AgentSettingsLauncherContext.Provider, { value: value, children: children }));
|
|
149053
|
+
}
|
|
149054
|
+
function useAgentSettingsLauncher() {
|
|
149055
|
+
return React__default.useContext(AgentSettingsLauncherContext);
|
|
149056
|
+
}
|
|
149057
|
+
/**
|
|
149058
|
+
* An agent's name, linked to its settings where the host lets this viewer
|
|
149059
|
+
* open them; plain text otherwise. Truncates inside an `inline-flex` box so
|
|
149060
|
+
* it keeps the baseline of the label beside it, and neither its clicks nor
|
|
149061
|
+
* its key presses reach a clickable row around it.
|
|
149062
|
+
*/
|
|
149063
|
+
function AgentSettingsLink({ uniqueId, name, fallback = '-', className, testId, }) {
|
|
149064
|
+
var _a, _b;
|
|
149065
|
+
const t = useT();
|
|
149066
|
+
const launcher = useAgentSettingsLauncher();
|
|
149067
|
+
const display = name || uniqueId || fallback;
|
|
149068
|
+
const target = uniqueId ? { uniqueId, name: name || uniqueId } : null;
|
|
149069
|
+
const canOpen = !!launcher && !!target && ((_b = (_a = launcher.canOpenAgentSettings) === null || _a === void 0 ? void 0 : _a.call(launcher, target)) !== null && _b !== void 0 ? _b : true);
|
|
149070
|
+
if (!canOpen || !target) {
|
|
149071
|
+
return (jsx("span", { className: cn('inline-flex max-w-full', className), "data-testid": testId, children: jsx("span", { className: "min-w-0 truncate", children: display }) }));
|
|
149072
|
+
}
|
|
149073
|
+
return (jsx("button", { type: "button", onClick: (event) => {
|
|
149074
|
+
event.stopPropagation();
|
|
149075
|
+
launcher.openAgentSettings(target);
|
|
149076
|
+
},
|
|
149077
|
+
// Rows that open on Enter/Space would otherwise swallow the key press.
|
|
149078
|
+
onKeyDown: (event) => event.stopPropagation(), className: cn('inline-flex max-w-full cursor-pointer text-left hover:text-blue-600 hover:underline focus:text-blue-600 focus:outline-none', className), "aria-label": t('agentSettingsLink.openSettings', { name: display }), "data-testid": testId, children: jsx("span", { className: "min-w-0 truncate", children: display }) }));
|
|
149079
|
+
}
|
|
149080
|
+
|
|
149081
|
+
/**
|
|
149082
|
+
* A conversation's sentiment the way Analytics → Transcripts shows it: a
|
|
149083
|
+
* thumb and "<Sentiment> User Sentiment" — green when positive, blue when
|
|
149084
|
+
* negative, grey otherwise. Renders nothing when the record carries none.
|
|
149085
|
+
*/
|
|
149086
|
+
function ConversationSentiment({ sentiment, labels, className, compact = false, }) {
|
|
149087
|
+
const key = (sentiment !== null && sentiment !== void 0 ? sentiment : '').trim().toLowerCase();
|
|
149088
|
+
if (!key)
|
|
149089
|
+
return null;
|
|
149090
|
+
const Icon = key === 'negative' ? ThumbsDown : ThumbsUp;
|
|
149091
|
+
const tone = key === 'negative' ? 'text-blue-600' : key === 'positive' ? 'text-green-600' : 'text-gray-600';
|
|
149092
|
+
const word = key === 'negative'
|
|
149093
|
+
? labels.negative
|
|
149094
|
+
: key === 'positive'
|
|
149095
|
+
? labels.positive
|
|
149096
|
+
: key === 'neutral'
|
|
149097
|
+
? labels.neutral
|
|
149098
|
+
: key.charAt(0).toUpperCase() + key.slice(1);
|
|
149099
|
+
const text = `${word} ${labels.userSentiment}`;
|
|
149100
|
+
if (compact) {
|
|
149101
|
+
return (jsx(TooltipProvider, { children: jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsxs("span", { className: cn('inline-flex cursor-default items-center', tone, className), "data-testid": "conversation-sentiment", "data-sentiment": key, "data-compact": "true", tabIndex: 0, children: [jsx(Icon, { className: "h-4 w-4", "aria-hidden": "true" }), jsx("span", { className: "sr-only", children: text })] }) }), jsx(TooltipContent, { className: "ibl-tooltip-content", children: text })] }) }));
|
|
149102
|
+
}
|
|
149103
|
+
return (jsxs("div", { className: cn('flex items-center gap-1 text-sm', tone, className), "data-testid": "conversation-sentiment", "data-sentiment": key, children: [jsx(Icon, { className: "h-4 w-4", "aria-hidden": "true" }), jsxs("span", { children: [word, " ", labels.userSentiment] })] }));
|
|
149104
|
+
}
|
|
149105
|
+
|
|
149106
|
+
/**
|
|
149107
|
+
* A conversation's topic names, whatever shape the endpoint uses: analytics
|
|
149108
|
+
* returns `["Biology"]`, the chat-history endpoints `[{ name: "Biology" }]`.
|
|
149109
|
+
* Blank entries are dropped and repeats collapsed; order is kept.
|
|
149110
|
+
*/
|
|
149111
|
+
function conversationTopics(topics) {
|
|
149112
|
+
if (!Array.isArray(topics))
|
|
149113
|
+
return [];
|
|
149114
|
+
const names = [];
|
|
149115
|
+
for (const topic of topics) {
|
|
149116
|
+
const raw = typeof topic === 'string'
|
|
149117
|
+
? topic
|
|
149118
|
+
: topic && typeof topic === 'object'
|
|
149119
|
+
? topic.name
|
|
149120
|
+
: undefined;
|
|
149121
|
+
const name = typeof raw === 'string' ? raw.trim() : '';
|
|
149122
|
+
if (name && !names.includes(name))
|
|
149123
|
+
names.push(name);
|
|
149124
|
+
}
|
|
149125
|
+
return names;
|
|
149126
|
+
}
|
|
149127
|
+
|
|
149128
|
+
/** A conversation's topics as the chips Analytics → Transcripts draws. */
|
|
149129
|
+
function ConversationTopics({ topics, className, children, leading, }) {
|
|
149130
|
+
const names = conversationTopics(topics);
|
|
149131
|
+
if (names.length === 0 && !children && !leading)
|
|
149132
|
+
return null;
|
|
149133
|
+
return (jsxs("div", { className: cn('flex flex-wrap items-center gap-2', className), "data-testid": "conversation-topics", children: [leading, names.map((name) => (jsx("span", { className: "rounded-[5px] bg-gray-100 px-3 py-1 text-xs text-gray-600", children: name }, name))), children] }));
|
|
149134
|
+
}
|
|
149135
|
+
|
|
149136
|
+
const clean$1 = (value) => typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
149137
|
+
/** The first human turn of a conversation, from an array or its JSON string form. */
|
|
149138
|
+
function firstHumanMessage(messages) {
|
|
149139
|
+
let turns = messages;
|
|
149140
|
+
if (typeof turns === 'string') {
|
|
149141
|
+
try {
|
|
149142
|
+
turns = JSON.parse(turns);
|
|
149143
|
+
}
|
|
149144
|
+
catch (_a) {
|
|
149145
|
+
return undefined;
|
|
149146
|
+
}
|
|
149147
|
+
}
|
|
149148
|
+
if (!Array.isArray(turns))
|
|
149149
|
+
return undefined;
|
|
149150
|
+
const first = turns[0];
|
|
149151
|
+
return clean$1(first === null || first === void 0 ? void 0 : first.human);
|
|
149152
|
+
}
|
|
149153
|
+
/**
|
|
149154
|
+
* One title for a conversation, on every surface: the backend's `title` when
|
|
149155
|
+
* it has one, else `first_user_message`, else the first human turn, else the
|
|
149156
|
+
* caller's fallback label. Endpoints differ in which of these they return;
|
|
149157
|
+
* this keeps Transcripts and both History tabs naming a conversation alike.
|
|
149158
|
+
*/
|
|
149159
|
+
function conversationTitle(source, fallback) {
|
|
149160
|
+
var _a, _b, _c;
|
|
149161
|
+
return ((_c = (_b = (_a = clean$1(source === null || source === void 0 ? void 0 : source.title)) !== null && _a !== void 0 ? _a : clean$1(source === null || source === void 0 ? void 0 : source.first_user_message)) !== null && _b !== void 0 ? _b : firstHumanMessage(source === null || source === void 0 ? void 0 : source.messages)) !== null && _c !== void 0 ? _c : fallback);
|
|
149162
|
+
}
|
|
149163
|
+
|
|
149164
|
+
/**
|
|
149165
|
+
* A conversation's timestamp the way every history surface shows it:
|
|
149166
|
+
* "Sep 4, 2026, 3:56 PM · 21 days ago". Empty for a missing or invalid value.
|
|
149167
|
+
*/
|
|
149168
|
+
const formatSessionDate = (value) => {
|
|
149169
|
+
if (!value)
|
|
149170
|
+
return '';
|
|
149171
|
+
const date = new Date(value);
|
|
149172
|
+
if (Number.isNaN(date.getTime()))
|
|
149173
|
+
return '';
|
|
149174
|
+
return `${format$1(date, 'MMM d, yyyy, h:mm a')} · ${formatDistanceToNow(date, { addSuffix: true })}`;
|
|
149175
|
+
};
|
|
149176
|
+
|
|
148922
149177
|
const offsetFormatCache = {};
|
|
148923
149178
|
const offsetCache = {};
|
|
148924
149179
|
|
|
@@ -188019,14 +188274,6 @@ function stripMarkdown(text) {
|
|
|
188019
188274
|
* When a conversation happened: the calendar date and time, followed by the
|
|
188020
188275
|
* relative "x ago" so both the exact day and recency read at a glance.
|
|
188021
188276
|
*/
|
|
188022
|
-
const formatSessionDate = (value) => {
|
|
188023
|
-
if (!value)
|
|
188024
|
-
return '';
|
|
188025
|
-
const date = new Date(value);
|
|
188026
|
-
if (Number.isNaN(date.getTime()))
|
|
188027
|
-
return '';
|
|
188028
|
-
return `${format$1(date, 'MMM d, yyyy, h:mm a')} · ${formatDistanceToNow(date, { addSuffix: true })}`;
|
|
188029
|
-
};
|
|
188030
188277
|
/**
|
|
188031
188278
|
* The list endpoint may serialize `messages` as a JSON string while the detail
|
|
188032
188279
|
* endpoint returns a proper array; accept either shape.
|
|
@@ -188073,11 +188320,6 @@ function downloadTextFile(filename, content, mime) {
|
|
|
188073
188320
|
document.body.removeChild(link);
|
|
188074
188321
|
URL.revokeObjectURL(blobUrl);
|
|
188075
188322
|
}
|
|
188076
|
-
const SENTIMENT_CLASSES = {
|
|
188077
|
-
positive: 'bg-green-100 text-green-800 border-transparent',
|
|
188078
|
-
negative: 'bg-red-100 text-red-800 border-transparent',
|
|
188079
|
-
neutral: 'bg-gray-100 text-gray-600 border-transparent',
|
|
188080
|
-
};
|
|
188081
188323
|
/**
|
|
188082
188324
|
* Agent scope filter — the same inline searchable autocomplete the Billing
|
|
188083
188325
|
* tab's Agent Limits section and the Memory tab use (`SearchSelect`): type to
|
|
@@ -188141,7 +188383,7 @@ function ConversationMessages({ messages, username, agent, fallbackEmail, }) {
|
|
|
188141
188383
|
name: file.name,
|
|
188142
188384
|
contentType: file.content_type,
|
|
188143
188385
|
url: file.url,
|
|
188144
|
-
})) })] })] }), jsxs("div", { className: "flex items-start gap-3 border-t border-gray-200 pt-4", children: [jsx(AgentMessageAvatar, { agent: agent, fallback: t('chatHistoryChatHistoryTab.aiAvatarLabel') }), jsxs("div", { className: "min-w-0 flex-1 overflow-x-hidden", children: [jsx(
|
|
188386
|
+
})) })] })] }), jsxs("div", { className: "flex items-start gap-3 border-t border-gray-200 pt-4", children: [jsx(AgentMessageAvatar, { agent: agent, fallback: t('chatHistoryChatHistoryTab.aiAvatarLabel') }), jsxs("div", { className: "min-w-0 flex-1 overflow-x-hidden", children: [jsx(AgentSettingsLink, { uniqueId: agent.uniqueId, name: agent.name, className: "font-medium text-gray-700" }), jsx(Markdown, { className: "mt-1 text-sm text-gray-500", children: (_c = message.ai) !== null && _c !== void 0 ? _c : '' })] })] })] }, index));
|
|
188145
188387
|
}) }));
|
|
188146
188388
|
}
|
|
188147
188389
|
/**
|
|
@@ -188150,12 +188392,11 @@ function ConversationMessages({ messages, username, agent, fallbackEmail, }) {
|
|
|
188150
188392
|
* download of just this conversation.
|
|
188151
188393
|
*/
|
|
188152
188394
|
function ConversationPreview({ org, username, session, agent, }) {
|
|
188153
|
-
var _a;
|
|
188154
188395
|
const t = useT();
|
|
188155
188396
|
const inlineMessages = normalizeMessages(session.messages);
|
|
188156
188397
|
const { data: detail, isLoading } = useGetUserChatHistorySessionQuery({ org, userId: username, sessionId: session.id }, { skip: inlineMessages.length > 0 });
|
|
188157
188398
|
const messages = inlineMessages.length > 0 ? inlineMessages : normalizeMessages(detail === null || detail === void 0 ? void 0 : detail.messages);
|
|
188158
|
-
const title = stripMarkdown(session.title
|
|
188399
|
+
const title = stripMarkdown(conversationTitle({ title: session.title, first_user_message: session.first_user_message, messages }, t('chatHistoryChatHistoryTab.conversation')));
|
|
188159
188400
|
if (isLoading) {
|
|
188160
188401
|
return (jsx("div", { className: "flex items-center justify-center py-10", children: jsx(Spinner, {}) }));
|
|
188161
188402
|
}
|
|
@@ -188192,6 +188433,7 @@ function ChatHistoryTab({ org, username }) {
|
|
|
188192
188433
|
var _a;
|
|
188193
188434
|
const known = agentInfo[session.mentor];
|
|
188194
188435
|
return {
|
|
188436
|
+
uniqueId: session.mentor || undefined,
|
|
188195
188437
|
name: session.mentor_name ||
|
|
188196
188438
|
(known === null || known === void 0 ? void 0 : known.name) ||
|
|
188197
188439
|
((_a = filters.agent) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
@@ -188204,6 +188446,12 @@ function ChatHistoryTab({ org, username }) {
|
|
|
188204
188446
|
const sentimentOptions = ((_a = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.sentiment) === null || _a === void 0 ? void 0 : _a.length)
|
|
188205
188447
|
? filterOptions.sentiment
|
|
188206
188448
|
: DEFAULT_SENTIMENTS;
|
|
188449
|
+
const sentimentLabels = React__default.useMemo(() => ({
|
|
188450
|
+
positive: t('chatHistoryChatHistoryTab.positive'),
|
|
188451
|
+
neutral: t('chatHistoryChatHistoryTab.neutral'),
|
|
188452
|
+
negative: t('chatHistoryChatHistoryTab.negative'),
|
|
188453
|
+
userSentiment: t('chatHistoryChatHistoryTab.userSentiment'),
|
|
188454
|
+
}), [t]);
|
|
188207
188455
|
const sentimentLabel = React__default.useCallback((value) => {
|
|
188208
188456
|
const key = value.toLowerCase();
|
|
188209
188457
|
if (key === 'positive')
|
|
@@ -188227,22 +188475,18 @@ function ChatHistoryTab({ org, username }) {
|
|
|
188227
188475
|
: t('chatHistoryChatHistoryTab.export')] }) })] }) }), isLoading && (jsx("div", { className: "flex w-full flex-1 items-center justify-center py-10", children: jsx(Spinner, {}) })), isError && !isLoading && (jsx("div", { className: "flex flex-1 flex-col items-center justify-center py-6", children: jsx("p", { className: "text-sm text-gray-600", children: isForbidden
|
|
188228
188476
|
? t('chatHistoryChatHistoryTab.forbidden')
|
|
188229
188477
|
: t('chatHistoryChatHistoryTab.loadFailed') }) })), sessions.length === 0 && !isLoading && !isError && (jsx("div", { className: "flex flex-1 flex-col items-center justify-center py-6", children: jsx("p", { className: "text-sm text-gray-600", children: t('chatHistoryChatHistoryTab.noConversations') }) })), sessions.length > 0 && (jsxs("div", { className: "grid min-h-[320px] flex-1 grid-cols-1 gap-6 md:grid-cols-2", children: [jsxs("div", { className: "col-span-full flex min-h-0 flex-col gap-3 md:col-span-1", children: [jsx("div", { className: "scrollbar-hide min-h-0 flex-1 overflow-y-auto rounded-md border border-neutral-200", tabIndex: 0, role: "region", "aria-label": t('chatHistoryChatHistoryTab.conversationListLabel'), children: sessions.map((session) => {
|
|
188230
|
-
var _a
|
|
188478
|
+
var _a;
|
|
188231
188479
|
const firstMessage = normalizeMessages(session.messages)[0];
|
|
188232
|
-
const title = stripMarkdown(session.
|
|
188233
|
-
(firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.human) ||
|
|
188234
|
-
session.first_user_message ||
|
|
188235
|
-
t('chatHistoryChatHistoryTab.conversation'));
|
|
188480
|
+
const title = stripMarkdown(conversationTitle(session, t('chatHistoryChatHistoryTab.conversation')));
|
|
188236
188481
|
const preview = stripMarkdown((_a = firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.ai) !== null && _a !== void 0 ? _a : '');
|
|
188237
|
-
const sentiment = (_c = (_b = session.sentiment) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : '';
|
|
188238
188482
|
return (jsxs("div", { role: "button", tabIndex: 0, "data-testid": "history-conversation-row", "data-session-id": session.id, className: cn('flex cursor-pointer items-center justify-between border-b border-neutral-200 p-4 last:border-b-0', (selectedSession === null || selectedSession === void 0 ? void 0 : selectedSession.id) === session.id ? 'bg-gray-100' : 'hover:bg-gray-50'), onClick: () => handleConversationClick(session), onKeyDown: (event) => {
|
|
188239
188483
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
188240
188484
|
event.preventDefault();
|
|
188241
188485
|
handleConversationClick(session);
|
|
188242
188486
|
}
|
|
188243
|
-
}, children: [jsxs("div", { className: "w-full", children: [jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
188487
|
+
}, children: [jsxs("div", { className: "w-full", children: [jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [jsx("span", { className: "shrink-0 text-sm text-gray-600", children: formatSessionDate(session.inserted_at) }), jsx(AgentSettingsLink, { uniqueId: resolveAgent(session).uniqueId, name: resolveAgent(session).name, className: "min-w-0 text-right text-sm text-gray-900" })] }), jsx("div", { className: "font-medium text-gray-900", children: textTruncate(title, 50) }), jsx(ConversationTopics, { topics: session.topics, className: "mt-1", leading: jsx(ConversationSentiment, { sentiment: session.sentiment, labels: sentimentLabels, compact: true }) }), preview && (jsx("p", { className: "line-clamp-1 text-sm text-gray-600", children: textTruncate(preview, 60) }))] }), jsx("div", { className: "flex items-center gap-2 text-sm text-gray-600", children: jsx(ChevronRight, { className: "h-4 w-4" }) })] }, session.id));
|
|
188244
188488
|
}) }), totalPages > 1 && (jsx("div", { className: "flex-shrink-0", children: jsx(IblPagination, { currentPage: page, totalPages: totalPages, onPageChange: setPage, disabled: isFetching || isLoading, disableNumberedButtons: isMobile }) }))] }), jsx("div", { className: "scrollbar-hide hidden min-h-0 flex-col overflow-y-auto rounded-lg border border-neutral-200 bg-white p-6 shadow-sm md:flex", tabIndex: 0, role: "region", "aria-label": t('chatHistoryChatHistoryTab.conversationPreviewLabel'), children: selectedSession ? (jsx(ConversationPreview, { org: org, username: username, session: selectedSession, agent: resolveAgent(selectedSession) })) : (jsx("div", { className: "flex h-full items-center justify-center text-gray-500", children: t('chatHistoryChatHistoryTab.selectPrompt') })) })] })), jsx(Dialog, { open: isPreviewModalOpen, onOpenChange: setIsPreviewModalOpen, children: jsxs(DialogContent, { className: "scrollbar-hide mx-auto max-h-[80vh] max-w-[90vw] overflow-x-hidden overflow-y-auto", children: [jsx(DialogHeader, { children: jsx(DialogTitle, { className: "text-lg font-semibold text-gray-900", children: selectedSession
|
|
188245
|
-
? stripMarkdown(selectedSession
|
|
188489
|
+
? stripMarkdown(conversationTitle(selectedSession, t('chatHistoryChatHistoryTab.conversation')))
|
|
188246
188490
|
: t('chatHistoryChatHistoryTab.conversation') }) }), jsx("div", { className: "mx-auto max-w-full overflow-x-hidden", children: selectedSession && (jsx(ConversationPreview, { org: org, username: username, session: selectedSession, agent: resolveAgent(selectedSession) })) })] }) })] }), jsx(TabsContent, { value: "exports", className: "mt-0 min-h-0 flex-1 overflow-y-auto data-[state=inactive]:hidden", children: jsx(ReportHistory, { org: org, username: username, onDownload: downloadFromUrl }) })] }));
|
|
188247
188491
|
}
|
|
188248
188492
|
|
|
@@ -190626,6 +190870,201 @@ function InvitedUsersDialog({ tenant, onClose }) {
|
|
|
190626
190870
|
}, children: jsx(DialogPortal, { forceMount: true, children: jsxs(DialogContent, { "aria-label": t('profileInvitedUsers.dialogAriaLabel'), className: "max-w-sm rounded-2xl px-6 py-8 pointer-events-auto", "aria-describedby": "invited-users-dialog", children: [jsx(DialogHeader, { className: "relative flex-row justify-between", children: jsx(DialogTitle, { className: "text-blue-600 text-xl font-semibold", children: t('profileInvitedUsers.title') }) }), jsxs("div", { className: "mt-4 space-y-1", children: [jsx("p", { className: "text-gray-500 text-sm", children: t('profileInvitedUsers.pendingDescription') }), jsx("form", { children: jsx(Input, { value: query, onChange: (event) => setQuery(event.target.value), placeholder: t('profileInvitedUsers.searchPlaceholder'), className: "mt-2" }) })] }), jsxs("div", { children: [jsx("h2", { className: "text-md text-gray-600 font-semibold mb-4", children: t('profileInvitedUsers.emailHeading') }), invitedUsers === null || invitedUsers === void 0 ? void 0 : invitedUsers.results.map((user) => (jsx("div", { className: "border-b-gray-50 pb-2 mb-4 text-sm text-gray-600 dark:text-gray-400", children: user.email }, user.id))), (invitedUsers === null || invitedUsers === void 0 ? void 0 : invitedUsers.results.length) === 0 && (jsx("p", { className: "text-gray", children: t('profileInvitedUsers.noRecords') }))] })] }) }) }));
|
|
190627
190871
|
}
|
|
190628
190872
|
|
|
190873
|
+
/**
|
|
190874
|
+
* Whether, and how, a retrieved document can be shown inside the app.
|
|
190875
|
+
*
|
|
190876
|
+
* The Datasets tab accepts PDFs, Office files, CSV/TXT/Markdown, images,
|
|
190877
|
+
* audio, video, ZIPs, GitHub repos, YouTube videos, web pages and crawls, and
|
|
190878
|
+
* links to Google Drive, OneDrive and Dropbox. Only some of those a browser
|
|
190879
|
+
* can render on its own; the rest get no Preview button rather than a blank
|
|
190880
|
+
* frame. Decided from the source URL (extension and host) and, when the
|
|
190881
|
+
* backend sends one, the document's kind.
|
|
190882
|
+
*/
|
|
190883
|
+
const IMAGE = new Set(['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'bmp', 'avif']);
|
|
190884
|
+
const AUDIO = new Set(['mp3', 'wav', 'ogg', 'oga', 'm4a', 'aac', 'flac']);
|
|
190885
|
+
const VIDEO = new Set(['mp4', 'webm', 'ogv', 'mov', 'm4v']);
|
|
190886
|
+
/** Browsers cannot render these; a frame would only offer a download. */
|
|
190887
|
+
const NOT_VIEWABLE = new Set([
|
|
190888
|
+
'doc',
|
|
190889
|
+
'docx',
|
|
190890
|
+
'ppt',
|
|
190891
|
+
'pptx',
|
|
190892
|
+
'xls',
|
|
190893
|
+
'xlsx',
|
|
190894
|
+
'odt',
|
|
190895
|
+
'odp',
|
|
190896
|
+
'ods',
|
|
190897
|
+
'rtf',
|
|
190898
|
+
'zip',
|
|
190899
|
+
'rar',
|
|
190900
|
+
'7z',
|
|
190901
|
+
'tar',
|
|
190902
|
+
'gz',
|
|
190903
|
+
'tgz',
|
|
190904
|
+
]);
|
|
190905
|
+
/** Hosts that refuse to be framed, or need the viewer's own sign-in. */
|
|
190906
|
+
const UNFRAMEABLE_HOSTS = [
|
|
190907
|
+
'github.com',
|
|
190908
|
+
'dropbox.com',
|
|
190909
|
+
'onedrive.live.com',
|
|
190910
|
+
'1drv.ms',
|
|
190911
|
+
'sharepoint.com',
|
|
190912
|
+
];
|
|
190913
|
+
const hostMatches = (host, domain) => host === domain || host.endsWith(`.${domain}`);
|
|
190914
|
+
const extensionOf = (pathname) => {
|
|
190915
|
+
var _a;
|
|
190916
|
+
const last = (_a = pathname.split('/').pop()) !== null && _a !== void 0 ? _a : '';
|
|
190917
|
+
const dot = last.lastIndexOf('.');
|
|
190918
|
+
return dot > 0 ? last.slice(dot + 1).toLowerCase() : '';
|
|
190919
|
+
};
|
|
190920
|
+
const youtubeEmbed = (url) => {
|
|
190921
|
+
var _a;
|
|
190922
|
+
const host = url.hostname.toLowerCase().replace(/^(www|m)\./, '');
|
|
190923
|
+
let id = null;
|
|
190924
|
+
if (host === 'youtu.be')
|
|
190925
|
+
id = (_a = url.pathname.split('/')[1]) !== null && _a !== void 0 ? _a : null;
|
|
190926
|
+
else if (host === 'youtube.com' || host === 'youtube-nocookie.com') {
|
|
190927
|
+
const [, section, rest] = url.pathname.split('/');
|
|
190928
|
+
if (section === 'watch')
|
|
190929
|
+
id = url.searchParams.get('v');
|
|
190930
|
+
else if (section === 'embed' || section === 'shorts' || section === 'live' || section === 'v')
|
|
190931
|
+
id = rest !== null && rest !== void 0 ? rest : null;
|
|
190932
|
+
}
|
|
190933
|
+
return id && /^[\w-]{6,}$/.test(id) ? `https://www.youtube-nocookie.com/embed/${id}` : null;
|
|
190934
|
+
};
|
|
190935
|
+
const googleEmbed = (url) => {
|
|
190936
|
+
const host = url.hostname.toLowerCase();
|
|
190937
|
+
if (host === 'drive.google.com') {
|
|
190938
|
+
const file = url.pathname.match(/^\/file\/d\/([\w-]+)/);
|
|
190939
|
+
if (file)
|
|
190940
|
+
return `https://drive.google.com/file/d/${file[1]}/preview`;
|
|
190941
|
+
const open = url.pathname === '/open' && url.searchParams.get('id');
|
|
190942
|
+
if (open)
|
|
190943
|
+
return `https://drive.google.com/file/d/${open}/preview`;
|
|
190944
|
+
return null;
|
|
190945
|
+
}
|
|
190946
|
+
if (host === 'docs.google.com') {
|
|
190947
|
+
const doc = url.pathname.match(/^\/(document|spreadsheets|presentation)\/d\/([\w-]+)/);
|
|
190948
|
+
return doc ? `https://docs.google.com/${doc[1]}/d/${doc[2]}/preview` : null;
|
|
190949
|
+
}
|
|
190950
|
+
return null;
|
|
190951
|
+
};
|
|
190952
|
+
/** A kind the backend may name on the document, when it says one. */
|
|
190953
|
+
const kindFromHint = (hint) => {
|
|
190954
|
+
const h = (hint !== null && hint !== void 0 ? hint : '').toLowerCase();
|
|
190955
|
+
if (!h)
|
|
190956
|
+
return null;
|
|
190957
|
+
if (/image|photo|picture/.test(h))
|
|
190958
|
+
return 'image';
|
|
190959
|
+
if (/audio|podcast/.test(h))
|
|
190960
|
+
return 'audio';
|
|
190961
|
+
if (/video(?!.*youtube)/.test(h) && !/youtube/.test(h))
|
|
190962
|
+
return 'video';
|
|
190963
|
+
if (/docx|word|powerpoint|pptx|excel|xlsx|spreadsheet|zip|archive|course/.test(h))
|
|
190964
|
+
return 'none';
|
|
190965
|
+
return null;
|
|
190966
|
+
};
|
|
190967
|
+
/**
|
|
190968
|
+
* `null` when the document cannot be shown here: no URL, a host that refuses
|
|
190969
|
+
* framing, or a file type a browser cannot render (Office files, archives).
|
|
190970
|
+
*/
|
|
190971
|
+
function previewPlan(source, hint) {
|
|
190972
|
+
const raw = (source !== null && source !== void 0 ? source : '').trim();
|
|
190973
|
+
if (!/^https?:\/\//i.test(raw))
|
|
190974
|
+
return null;
|
|
190975
|
+
let url;
|
|
190976
|
+
try {
|
|
190977
|
+
url = new URL(raw);
|
|
190978
|
+
}
|
|
190979
|
+
catch (_a) {
|
|
190980
|
+
return null;
|
|
190981
|
+
}
|
|
190982
|
+
const host = url.hostname.toLowerCase();
|
|
190983
|
+
const yt = youtubeEmbed(url);
|
|
190984
|
+
if (yt)
|
|
190985
|
+
return { kind: 'frame', src: yt };
|
|
190986
|
+
// A YouTube page that is not a video (a channel, a playlist) cannot be framed.
|
|
190987
|
+
if (/(^|\.)(youtube\.com|youtu\.be|youtube-nocookie\.com)$/.test(host))
|
|
190988
|
+
return null;
|
|
190989
|
+
const google = googleEmbed(url);
|
|
190990
|
+
if (google)
|
|
190991
|
+
return { kind: 'frame', src: google };
|
|
190992
|
+
if (host === 'drive.google.com' || host === 'docs.google.com')
|
|
190993
|
+
return null;
|
|
190994
|
+
if (host === 'raw.githubusercontent.com')
|
|
190995
|
+
return { kind: 'frame', src: raw };
|
|
190996
|
+
if (UNFRAMEABLE_HOSTS.some((domain) => hostMatches(host, domain)))
|
|
190997
|
+
return null;
|
|
190998
|
+
const hinted = kindFromHint(hint);
|
|
190999
|
+
if (hinted === 'none')
|
|
191000
|
+
return null;
|
|
191001
|
+
if (hinted)
|
|
191002
|
+
return { kind: hinted, src: raw };
|
|
191003
|
+
const ext = extensionOf(url.pathname);
|
|
191004
|
+
if (IMAGE.has(ext))
|
|
191005
|
+
return { kind: 'image', src: raw };
|
|
191006
|
+
if (AUDIO.has(ext))
|
|
191007
|
+
return { kind: 'audio', src: raw };
|
|
191008
|
+
if (VIDEO.has(ext))
|
|
191009
|
+
return { kind: 'video', src: raw };
|
|
191010
|
+
if (NOT_VIEWABLE.has(ext))
|
|
191011
|
+
return null;
|
|
191012
|
+
// PDFs, text, CSV, Markdown, HTML, JSON and extension-less API URLs: the
|
|
191013
|
+
// browser renders these itself (its PDF viewer, or as text or a page).
|
|
191014
|
+
return { kind: 'frame', src: raw };
|
|
191015
|
+
}
|
|
191016
|
+
|
|
191017
|
+
/** The shape a retrieved document is listed by: the session query's `VectorResult`
|
|
191018
|
+
* and a transcript's `TranscriptRetrievedDocument` both satisfy it. */
|
|
191019
|
+
/** Only `http(s)` sources are links; a bare file name or dataset id is not. */
|
|
191020
|
+
const isHttpUrl = (value) => /^https?:\/\//i.test((value !== null && value !== void 0 ? value : '').trim());
|
|
191021
|
+
/** `0.7` → `70`; anything unusable → undefined. */
|
|
191022
|
+
const relevancePercent = (score) => typeof score === 'number' && Number.isFinite(score)
|
|
191023
|
+
? Math.round(Math.max(0, Math.min(1, score)) * 100)
|
|
191024
|
+
: undefined;
|
|
191025
|
+
/**
|
|
191026
|
+
* The document's URL with a text fragment for the matched passage's opening
|
|
191027
|
+
* words, so a browser that supports fragments (Chromium for HTML pages) opens
|
|
191028
|
+
* the page scrolled to, and highlighting, the passage. PDFs and other
|
|
191029
|
+
* viewers ignore it; a frame cannot honour it, so only new-tab links get it.
|
|
191030
|
+
*/
|
|
191031
|
+
const deepLink = (url, snippet) => {
|
|
191032
|
+
const words = (snippet !== null && snippet !== void 0 ? snippet : '').replace(/\s+/g, ' ').trim().split(' ').slice(0, 8).join(' ');
|
|
191033
|
+
const text = words.replace(/[\s.,;:!?"'”’)\]]+$/, '');
|
|
191034
|
+
if (text.length < 12)
|
|
191035
|
+
return url;
|
|
191036
|
+
return `${url.split('#')[0]}#:~:text=${encodeURIComponent(text)}`;
|
|
191037
|
+
};
|
|
191038
|
+
const hostOf = (value) => {
|
|
191039
|
+
try {
|
|
191040
|
+
return new URL(value).host;
|
|
191041
|
+
}
|
|
191042
|
+
catch (_a) {
|
|
191043
|
+
return '';
|
|
191044
|
+
}
|
|
191045
|
+
};
|
|
191046
|
+
/**
|
|
191047
|
+
* One retrieved document: its title (a new-tab link when the source is a
|
|
191048
|
+
* URL), its relevance, the matched passage, and — for URLs — a preview the
|
|
191049
|
+
* reader can open (the title link beside it still opens the source in a new
|
|
191050
|
+
* tab).
|
|
191051
|
+
*/
|
|
191052
|
+
function RetrievedDocumentRow({ doc }) {
|
|
191053
|
+
var _a, _b;
|
|
191054
|
+
const t = useT();
|
|
191055
|
+
const [previewOpen, setPreviewOpen] = React.useState(false);
|
|
191056
|
+
const source = ((_a = doc.source) !== null && _a !== void 0 ? _a : '').trim();
|
|
191057
|
+
const url = isHttpUrl(source) ? source : null;
|
|
191058
|
+
const title = doc.title || (url ? hostOf(url) : source);
|
|
191059
|
+
const relevance = relevancePercent(doc.score);
|
|
191060
|
+
const openHref = url ? deepLink(url, doc.snippet) : null;
|
|
191061
|
+
// Preview only what a browser can show; Office files, archives and
|
|
191062
|
+
// unframeable hosts get no button rather than a blank frame.
|
|
191063
|
+
const preview = previewPlan(source, doc.type);
|
|
191064
|
+
return (jsx("div", { className: "rounded-lg p-2 hover:bg-gray-50", "data-testid": "retrieved-document", children: jsxs("div", { className: "flex items-start gap-2", children: [jsx(Radio$1, { className: "mt-1 h-4 w-4 text-gray-400" }), jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [jsxs("div", { className: "flex items-start justify-between gap-2", children: [jsx("div", { className: "min-w-0", children: url ? (jsxs("a", { href: openHref !== null && openHref !== void 0 ? openHref : url, target: "_blank", rel: "noopener noreferrer", className: "inline-flex min-w-0 items-center gap-1 text-sm font-semibold text-[#646464] hover:text-blue-600", "aria-label": t('documentSidebar.openInNewTab', { title }), "data-testid": "retrieved-document-link", children: [jsx("span", { className: "min-w-0 break-words", children: title }), jsx(SquareArrowOutUpRight, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": "true" })] })) : (jsx("span", { className: "text-sm font-semibold break-words text-[#646464]", children: title })) }), relevance !== undefined && (jsx("span", { className: "shrink-0 rounded-[5px] bg-blue-50 px-2 py-0.5 text-xs text-blue-700", title: t('documentSidebar.relevanceHint'), "data-testid": "retrieved-document-relevance", children: t('documentSidebar.relevance', { percent: relevance }) }))] }), preview && (jsxs("div", { className: "pt-1", children: [jsxs(Button$1, { type: "button", variant: "outline", size: "sm", onClick: () => setPreviewOpen(true), className: "h-7 gap-1.5 px-2.5 text-xs", "data-testid": "retrieved-document-preview-toggle", children: [jsx(Eye, { className: "h-3.5 w-3.5", "aria-hidden": "true" }), t('documentSidebar.preview')] }), jsx(Dialog, { open: previewOpen, onOpenChange: setPreviewOpen, children: jsxs(DialogContent, { className: "flex flex-col gap-0 overflow-hidden rounded-lg p-0",
|
|
191065
|
+
// Inline: the size must not depend on a host's Tailwind scan.
|
|
191066
|
+
style: { width: '94vw', maxWidth: '94vw', height: '92vh' }, "data-testid": "retrieved-document-preview", children: [jsxs(DialogHeader, { className: "border-b border-gray-200 bg-white px-5 py-3 pr-12 text-left", children: [jsxs(DialogTitle, { className: "flex min-w-0 items-center gap-2 text-base font-semibold text-gray-800", children: [jsx("span", { className: "min-w-0 truncate", children: title }), jsx("a", { href: (_b = openHref !== null && openHref !== void 0 ? openHref : url) !== null && _b !== void 0 ? _b : undefined, target: "_blank", rel: "noopener noreferrer", className: "inline-flex shrink-0 items-center text-blue-600 hover:text-blue-700", "aria-label": t('documentSidebar.openInNewTab', { title }), children: jsx(SquareArrowOutUpRight, { className: "h-4 w-4", "aria-hidden": "true" }) })] }), jsx(DialogDescription, { className: "flex flex-wrap items-center gap-2 text-xs text-gray-500", children: relevance !== undefined && (jsx("span", { className: "rounded-[5px] bg-blue-50 px-2 py-0.5 text-blue-700", children: t('documentSidebar.relevance', { percent: relevance }) })) })] }), jsx("div", { className: "flex min-h-0 flex-1 items-center justify-center bg-gray-100", children: preview.kind === 'image' ? (jsx("img", { src: preview.src, alt: title, className: "h-full w-full object-contain" })) : preview.kind === 'audio' ? (jsx("audio", { src: preview.src, controls: true, className: "w-full max-w-2xl px-6" })) : preview.kind === 'video' ? (jsx("video", { src: preview.src, controls: true, className: "h-full w-full bg-black" })) : (jsx("iframe", { src: preview.src, title: title, referrerPolicy: "no-referrer", allow: "fullscreen; autoplay; encrypted-media; picture-in-picture", className: "h-full w-full border-0 bg-white" })) })] }) })] })), jsx("p", { className: "line-clamp-6 pt-[10px] text-[14px] text-gray-600", children: doc.snippet })] })] }) }));
|
|
191067
|
+
}
|
|
190629
191068
|
function DocumentSidebar({ isModal = false, sessionId = '', documents, }) {
|
|
190630
191069
|
const t = useT();
|
|
190631
191070
|
const [isCollapsed, setIsCollapsed] = React.useState(false);
|
|
@@ -190658,10 +191097,7 @@ function DocumentSidebar({ isModal = false, sessionId = '', documents, }) {
|
|
|
190658
191097
|
backgroundColor: isCollapsed && !isModal ? 'white' : '#F3F6FB',
|
|
190659
191098
|
// In the dialog the parent bounds the height; the rail caps itself.
|
|
190660
191099
|
maxHeight: isModal ? undefined : 'calc(100vh - 80px)',
|
|
190661
|
-
}, children: jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [!isModal && (jsxs("div", { className: cn('flex cursor-pointer items-center gap-2 border-b border-gray-200 p-4 transition-colors duration-200', isCollapsed && 'h-[80px] justify-center rounded-tl-[5px] rounded-bl-[5px] p-2', 'hover:bg-blue-100'), onClick: toggleCollapse, style: { backgroundColor: '#F3F6FB' }, children: [jsx(FileText, { className: "h-5 w-5 shrink-0 text-blue-600" }), !isCollapsed && (jsxs(Fragment$1, { children: [jsx("h2", { className: "text-base font-medium text-[#646464]", children: t('documentSidebar.retrievedDocuments') }), jsx(ChevronRight, { className: cn('ml-auto h-4 w-4 text-gray-400 transition-transform', isCollapsed ? 'rotate-180' : '') })] }))] })), (!isCollapsed || isModal) && (jsx(Fragment$1, { children: jsx("div", { className: "min-h-0 flex-1 overflow-auto", style: { backgroundColor: '#F3F6FB' }, children: jsx("div", { className: "mt-0 space-y-1 p-2", children: vectorDocuments.map((doc, index) => {
|
|
190662
|
-
var _a, _b;
|
|
190663
|
-
return (jsxs(React.Fragment, { children: [jsx("div", { className: "rounded-lg p-2 hover:bg-gray-50", children: jsxs("div", { className: "flex items-start gap-2", children: [jsx(Radio$1, { className: "mt-1 h-4 w-4 text-gray-400" }), jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [jsxs("div", { className: "flex items-center justify-between", children: [jsx(Link$2, { href: (_a = doc.source) !== null && _a !== void 0 ? _a : '', target: "_blank", className: "min-w-0", children: jsx("span", { className: "text-sm font-semibold break-words text-[#646464] hover:text-blue-600", children: doc.title }) }), jsx("div", { className: "flex items-center gap-2 self-center", children: jsx("span", { className: "text-xs text-gray-500", children: (_b = doc === null || doc === void 0 ? void 0 : doc.score) === null || _b === void 0 ? void 0 : _b.toFixed(2) }) })] }), jsx("p", { className: "line-clamp-6 pt-[10px] text-[14px] text-gray-600", children: doc.snippet })] })] }) }), index < vectorDocuments.length - 1 && (jsx("div", { className: "my-2 border-t border-gray-200" }))] }, index));
|
|
190664
|
-
}) }) }) }))] }) })) : null }));
|
|
191100
|
+
}, children: jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [!isModal && (jsxs("div", { className: cn('flex cursor-pointer items-center gap-2 border-b border-gray-200 p-4 transition-colors duration-200', isCollapsed && 'h-[80px] justify-center rounded-tl-[5px] rounded-bl-[5px] p-2', 'hover:bg-blue-100'), onClick: toggleCollapse, style: { backgroundColor: '#F3F6FB' }, children: [jsx(FileText, { className: "h-5 w-5 shrink-0 text-blue-600" }), !isCollapsed && (jsxs(Fragment$1, { children: [jsx("h2", { className: "text-base font-medium text-[#646464]", children: t('documentSidebar.retrievedDocuments') }), jsx(ChevronRight, { className: cn('ml-auto h-4 w-4 text-gray-400 transition-transform', isCollapsed ? 'rotate-180' : '') })] }))] })), (!isCollapsed || isModal) && (jsx(Fragment$1, { children: jsx("div", { className: "min-h-0 flex-1 overflow-auto", style: { backgroundColor: '#F3F6FB' }, children: jsx("div", { className: "mt-0 space-y-1 p-2", children: vectorDocuments.map((doc, index) => (jsxs(React.Fragment, { children: [jsx(RetrievedDocumentRow, { doc: doc }), index < vectorDocuments.length - 1 && (jsx("div", { className: "my-2 border-t border-gray-200" }))] }, index))) }) }) }))] }) })) : null }));
|
|
190665
191101
|
}
|
|
190666
191102
|
|
|
190667
191103
|
/**
|
|
@@ -197878,15 +198314,23 @@ const sanitizeDomain = (domain) => domain
|
|
|
197878
198314
|
.replace(/^https?:\/\//, '')
|
|
197879
198315
|
.replace(/\/.*$/, '')
|
|
197880
198316
|
.replace(/^www\./, '');
|
|
197881
|
-
|
|
198317
|
+
/** One label under the platform's shared domain — the backend's own rule. */
|
|
198318
|
+
const SUBDOMAIN_RE = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
198319
|
+
/** Typed like a username: only case and surrounding whitespace are forgiven. */
|
|
198320
|
+
const sanitizeSubdomain = (subdomain) => subdomain.trim().toLowerCase();
|
|
198321
|
+
const AddDomainDialog = ({ open, onOpenChange, canAddPlatformDomain, defaultMode = 'platform', projects, isLoadingProjects, isSubmitting, onSubmitPlatformDomain, onSubmitAppDomain, }) => {
|
|
198322
|
+
var _a;
|
|
197882
198323
|
const t = useT();
|
|
197883
|
-
const
|
|
198324
|
+
const initialMode = canAddPlatformDomain ? defaultMode : 'app';
|
|
198325
|
+
const [mode, setMode] = useState(initialMode);
|
|
197884
198326
|
const [domainValue, setDomainValue] = useState('');
|
|
198327
|
+
const [subdomainValue, setSubdomainValue] = useState('');
|
|
197885
198328
|
const [projectId, setProjectId] = useState('');
|
|
197886
198329
|
const reset = () => {
|
|
197887
198330
|
setDomainValue('');
|
|
198331
|
+
setSubdomainValue('');
|
|
197888
198332
|
setProjectId('');
|
|
197889
|
-
setMode(
|
|
198333
|
+
setMode(initialMode);
|
|
197890
198334
|
};
|
|
197891
198335
|
const close = () => {
|
|
197892
198336
|
reset();
|
|
@@ -197898,10 +198342,27 @@ const AddDomainDialog = ({ open, onOpenChange, canAddPlatformDomain, projects, i
|
|
|
197898
198342
|
await onSubmitPlatformDomain(sanitizeDomain(domainValue));
|
|
197899
198343
|
}
|
|
197900
198344
|
else {
|
|
197901
|
-
await onSubmitAppDomain(Number(projectId),
|
|
198345
|
+
await onSubmitAppDomain(Number(projectId), {
|
|
198346
|
+
domain: sanitizeDomain(domainValue),
|
|
198347
|
+
subdomain: sanitizeSubdomain(subdomainValue),
|
|
198348
|
+
});
|
|
197902
198349
|
}
|
|
197903
198350
|
};
|
|
197904
|
-
const
|
|
198351
|
+
const hasDomain = domainValue.trim().length > 0;
|
|
198352
|
+
const subdomain = sanitizeSubdomain(subdomainValue);
|
|
198353
|
+
const hasSubdomain = subdomain.length > 0;
|
|
198354
|
+
// An app is served at exactly one address, and a subdomain has to be one the
|
|
198355
|
+
// backend will take — say which rule is unmet, and only once something was
|
|
198356
|
+
// typed, so an untouched form stays quiet.
|
|
198357
|
+
const appAddressProblem = mode === 'app' && hasDomain && hasSubdomain
|
|
198358
|
+
? 'both'
|
|
198359
|
+
: mode === 'app' && hasSubdomain && !SUBDOMAIN_RE.test(subdomain)
|
|
198360
|
+
? 'invalid'
|
|
198361
|
+
: null;
|
|
198362
|
+
const canSubmit = mode === 'platform'
|
|
198363
|
+
? hasDomain
|
|
198364
|
+
: projectId.trim().length > 0 && (hasDomain || hasSubdomain) && appAddressProblem === null;
|
|
198365
|
+
const selectedProject = projects.find((project) => String(project.id) === projectId);
|
|
197905
198366
|
return (jsx(Dialog, { open: open, onOpenChange: (next) => {
|
|
197906
198367
|
if (!next) {
|
|
197907
198368
|
reset();
|
|
@@ -197910,9 +198371,11 @@ const AddDomainDialog = ({ open, onOpenChange, canAddPlatformDomain, projects, i
|
|
|
197910
198371
|
}, children: jsxs(DialogContent, { className: "sm:max-w-[480px]", children: [jsxs(DialogHeader, { children: [jsx(DialogTitle, { children: t('advancedCustomDomain.dialogTitle') }), jsx(DialogDescription, { children: t('advancedCustomDomain.dialogDescription') })] }), jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [jsxs("div", { className: "space-y-2", children: [jsx("label", { htmlFor: "add-domain-kind", className: "text-sm", children: t('advancedCustomDomain.kindLabel') }), jsxs(Select$1, { value: mode, onValueChange: (next) => setMode(next), children: [jsx(SelectTrigger, { id: "add-domain-kind", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [canAddPlatformDomain && (jsx(SelectItem, { value: "platform", children: t('advancedCustomDomain.kindPlatform') })), jsx(SelectItem, { value: "app", children: t('advancedCustomDomain.kindApp') })] })] })] }), mode === 'app' && (jsxs("div", { className: "space-y-2", children: [jsx("label", { htmlFor: "add-domain-project", className: "text-sm", children: t('advancedCustomDomain.projectLabel') }), isLoadingProjects ? (jsx("p", { className: "text-sm text-[#646464]", children: t('advancedCustomDomain.loading') })) : projects.length === 0 ? (
|
|
197911
198372
|
// The backend lists only the caller's own projects, so this is
|
|
197912
198373
|
// "you have not deployed anything", not "the platform has not".
|
|
197913
|
-
jsx("p", { className: "text-sm text-[#646464]", children: t('advancedCustomDomain.noProjects') })) : (jsxs(Select$1, { value: projectId, onValueChange: setProjectId, children: [jsx(SelectTrigger, { id: "add-domain-project", children: jsx(SelectValue, { placeholder: t('advancedCustomDomain.projectPlaceholder') }) }), jsx(SelectContent, { children: projects.map((project) => (jsx(SelectItem, { value: String(project.id), children: project.name }, project.id))) })] }))] })), jsxs("div", { className: "space-y-2", children: [jsx("label", { htmlFor: "add-domain-
|
|
198374
|
+
jsx("p", { className: "text-sm text-[#646464]", children: t('advancedCustomDomain.noProjects') })) : (jsxs(Select$1, { value: projectId, onValueChange: setProjectId, children: [jsx(SelectTrigger, { id: "add-domain-project", children: jsx(SelectValue, { placeholder: t('advancedCustomDomain.projectPlaceholder') }) }), jsx(SelectContent, { children: projects.map((project) => (jsx(SelectItem, { value: String(project.id), children: project.name }, project.id))) })] }))] })), mode === 'app' && (jsxs("div", { className: "space-y-2", children: [jsx("label", { htmlFor: "add-domain-subdomain", className: "text-sm", children: t('advancedCustomDomain.subdomainLabel') }), jsx(Input, { id: "add-domain-subdomain", value: subdomainValue, onChange: (event) => setSubdomainValue(event.target.value),
|
|
198375
|
+
// The app's own name is the suggestion the deploy skill makes.
|
|
198376
|
+
placeholder: (_a = selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.name) !== null && _a !== void 0 ? _a : '', className: "w-full" }), jsx("p", { className: "text-xs text-[#646464]", children: t('advancedCustomDomain.subdomainHelp') })] })), jsxs("div", { className: "space-y-2", children: [jsx("label", { htmlFor: "add-domain-name", className: "text-sm", children: t('advancedCustomDomain.customDomainLabel') }), jsx(Input, { id: "add-domain-name", value: domainValue, onChange: (event) => setDomainValue(event.target.value), placeholder: "example.com", className: "w-full", required: mode === 'platform' }), jsx("p", { className: "text-xs text-[#646464]", children: mode === 'app'
|
|
197914
198377
|
? t('advancedCustomDomain.domainHelpApp')
|
|
197915
|
-
: t('advancedCustomDomain.domainHelpPlatform') })] }), jsxs("div", { className: "flex justify-end gap-2", children: [jsx(Button$1, { type: "button", variant: "outline", onClick: close, children: t('advancedCustomDomain.cancel') }), jsxs(Button$1, { type: "submit", disabled: isSubmitting || !canSubmit, children: [isSubmitting && jsx(LoaderCircle, { className: "mr-2 h-4 w-4 animate-spin" }), t('advancedCustomDomain.save')] })] })] })] }) }));
|
|
198378
|
+
: t('advancedCustomDomain.domainHelpPlatform') }), appAddressProblem === 'both' && (jsx("p", { className: "text-xs text-[#646464]", role: "status", children: t('advancedCustomDomain.oneOfSubdomainOrDomain') })), appAddressProblem === 'invalid' && (jsx("p", { className: "text-xs text-[#646464]", role: "status", children: t('advancedCustomDomain.subdomainInvalid') }))] }), jsxs("div", { className: "flex justify-end gap-2", children: [jsx(Button$1, { type: "button", variant: "outline", onClick: close, children: t('advancedCustomDomain.cancel') }), jsxs(Button$1, { type: "submit", disabled: isSubmitting || !canSubmit, children: [isSubmitting && jsx(LoaderCircle, { className: "mr-2 h-4 w-4 animate-spin" }), t('advancedCustomDomain.save')] })] })] })] }) }));
|
|
197916
198379
|
};
|
|
197917
198380
|
|
|
197918
198381
|
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
@@ -198104,7 +198567,7 @@ const resolveCname = async (domain, target) => {
|
|
|
198104
198567
|
const body = await response.json();
|
|
198105
198568
|
return Boolean((_a = body === null || body === void 0 ? void 0 : body.Answer) === null || _a === void 0 ? void 0 : _a.some((answer) => { var _a; return ((_a = answer.data) !== null && _a !== void 0 ? _a : '').replace(/\.$/, '') === target; }));
|
|
198106
198569
|
};
|
|
198107
|
-
const DomainRow = ({ row, sslValue, onReverify, onRemove, isBusy, onStatusChange, }) => {
|
|
198570
|
+
const DomainRow = ({ row, sharedApp, sslValue, onReverify, onRemove, isBusy, onStatusChange, }) => {
|
|
198108
198571
|
var _a;
|
|
198109
198572
|
const t = useT();
|
|
198110
198573
|
const isHosted = row.spa === VERCEL_SPA;
|
|
@@ -198176,7 +198639,7 @@ const DomainRow = ({ row, sslValue, onReverify, onRemove, isBusy, onStatusChange
|
|
|
198176
198639
|
const statusBadge = (jsx("span", { className: status === 'verified'
|
|
198177
198640
|
? 'rounded bg-green-100 px-2 py-1 text-xs text-green-800'
|
|
198178
198641
|
: 'rounded bg-gray-100 px-2 py-1 text-xs text-gray-600', children: status === 'checking' ? (jsxs("span", { className: "flex items-center gap-1", children: [jsx(LoaderCircle, { className: "h-3 w-3 animate-spin" }), t('advancedCustomDomain.verifying')] })) : (statusLabel()) }));
|
|
198179
|
-
return (jsxs("div", { className: "space-y-3 rounded-lg border border-gray-200 p-3 dark:border-gray-700", children: [jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm", children: row.custom_domain }), jsx("span", { className: "text-xs text-[#646464]", children: isHosted ? t('advancedCustomDomain.kindApp') : t('advancedCustomDomain.kindPlatform') }), statusBadge] }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button$1, { variant: "outline", size: "sm", onClick: () => (isHosted ? void onReverify(row) : void checkSpaDomain()), disabled: isBusy || status === 'checking' || (!isHosted && !row.registered_with_dns_pro), "aria-label": t('advancedCustomDomain.reverifyAriaLabel', { domain: row.custom_domain }), children: isBusy || status === 'checking' ? (jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" })) : (jsxs(Fragment$1, { children: [jsx(RefreshCw, { className: "mr-1 h-4 w-4", "aria-hidden": "true" }), t('advancedCustomDomain.reverify')] })) }), jsx(Button$1, { variant: "outline", size: "sm", className: "text-red-600 hover:text-red-700", onClick: () => setConfirmOpen(true), disabled: isBusy, "aria-label": t('advancedCustomDomain.removeAriaLabel', { domain: row.custom_domain }), children: isHosted ? t('advancedCustomDomain.detach') : t('advancedCustomDomain.delete') })] })] }), records.length > 0 ? (jsxs(Table, { className: "table-fixed", children: [jsx(TableHeader, { children: jsxs(TableRow, { children: [jsx(TableHead, { className: "w-[90px]", children: t('advancedCustomDomain.tableType') }), jsx(TableHead, { className: "w-1/3", children: t('advancedCustomDomain.tableNameHost') }), jsx(TableHead, { children: t('advancedCustomDomain.tableValue') })] }) }), jsx(TableBody, { children: records.map((record, index) => (jsxs(TableRow, { children: [jsx(TableCell, { className: "text-sm", children: record.type }), jsx(TableCell, { children: jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm break-all", children: record.name }), jsx(Button$1, { type: "button", variant: "ghost", size: "icon", className: "h-6 w-6 shrink-0", onClick: () => handleCopy(record.name, `name-${index}`), "aria-label": t('advancedCustomDomain.copyNameHostAriaLabel', {
|
|
198642
|
+
return (jsxs("div", { className: "space-y-3 rounded-lg border border-gray-200 p-3 dark:border-gray-700", children: [jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm", children: row.custom_domain }), jsx("span", { className: "text-xs text-[#646464]", children: isHosted ? t('advancedCustomDomain.kindApp') : t('advancedCustomDomain.kindPlatform') }), statusBadge] }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button$1, { variant: "outline", size: "sm", onClick: () => (isHosted ? void onReverify(row) : void checkSpaDomain()), disabled: isBusy || status === 'checking' || (!isHosted && !row.registered_with_dns_pro), "aria-label": t('advancedCustomDomain.reverifyAriaLabel', { domain: row.custom_domain }), children: isBusy || status === 'checking' ? (jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" })) : (jsxs(Fragment$1, { children: [jsx(RefreshCw, { className: "mr-1 h-4 w-4", "aria-hidden": "true" }), t('advancedCustomDomain.reverify')] })) }), jsx(Button$1, { variant: "outline", size: "sm", className: "text-red-600 hover:text-red-700", onClick: () => setConfirmOpen(true), disabled: isBusy, "aria-label": t('advancedCustomDomain.removeAriaLabel', { domain: row.custom_domain }), children: isHosted ? t('advancedCustomDomain.detach') : t('advancedCustomDomain.delete') })] })] }), sharedApp ? (jsxs("div", { className: "space-y-1 text-sm text-[#646464]", children: [jsxs("p", { children: [t('advancedCustomDomain.sharedDomainLine'), ' ', jsx("a", { href: `https://${row.custom_domain}`, target: "_blank", rel: "noreferrer", className: "underline", children: t('advancedCustomDomain.openSite', { domain: row.custom_domain }) })] }), jsx("p", { className: "text-xs", children: t('advancedCustomDomain.servesApp', { app: sharedApp.name }) })] })) : records.length > 0 ? (jsxs(Table, { className: "table-fixed", children: [jsx(TableHeader, { children: jsxs(TableRow, { children: [jsx(TableHead, { className: "w-[90px]", children: t('advancedCustomDomain.tableType') }), jsx(TableHead, { className: "w-1/3", children: t('advancedCustomDomain.tableNameHost') }), jsx(TableHead, { children: t('advancedCustomDomain.tableValue') })] }) }), jsx(TableBody, { children: records.map((record, index) => (jsxs(TableRow, { children: [jsx(TableCell, { className: "text-sm", children: record.type }), jsx(TableCell, { children: jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm break-all", children: record.name }), jsx(Button$1, { type: "button", variant: "ghost", size: "icon", className: "h-6 w-6 shrink-0", onClick: () => handleCopy(record.name, `name-${index}`), "aria-label": t('advancedCustomDomain.copyNameHostAriaLabel', {
|
|
198180
198643
|
domain: record.name,
|
|
198181
198644
|
}), children: copiedKey === `name-${index}` ? (jsx(Check, { className: "h-4 w-4 text-blue-600", "aria-hidden": "true" })) : (jsx(Copy, { className: "h-4 w-4", "aria-hidden": "true" })) })] }) }), jsxs(TableCell, { children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm break-all", children: record.value }), jsx(Button$1, { type: "button", variant: "ghost", size: "icon", className: "h-6 w-6 shrink-0", onClick: () => handleCopy(record.value, `value-${index}`), "aria-label": t('advancedCustomDomain.copyValueAriaLabel'), children: copiedKey === `value-${index}` ? (jsx(Check, { className: "h-4 w-4 text-blue-600", "aria-hidden": "true" })) : (jsx(Copy, { className: "h-4 w-4", "aria-hidden": "true" })) })] }), record.reason && jsx("p", { className: "mt-1 text-xs text-[#646464]", children: record.reason })] })] }, `${record.type}-${record.name}-${record.value}`))) })] })) : (jsx("p", { className: "text-sm text-[#646464]", children: t('advancedCustomDomain.noRecordsYet') })), jsx(AlertDialog, { open: confirmOpen, onOpenChange: setConfirmOpen, children: jsxs(AlertDialogContent, { children: [jsxs(AlertDialogHeader, { children: [jsx(AlertDialogTitle, { children: t('advancedCustomDomain.confirmRemoveTitle') }), jsx(AlertDialogDescription, { children: isHosted
|
|
198182
198645
|
? t('advancedCustomDomain.confirmDetachBody', { domain: row.custom_domain })
|
|
@@ -198234,9 +198697,20 @@ const CustomDomainsContent = ({ platformKey, username, currentSPA, currentPlatfo
|
|
|
198234
198697
|
const { data, isLoading, isFetching, refetch } = useGetCustomDomainsQuery({
|
|
198235
198698
|
params: { platform_key: platformKey },
|
|
198236
198699
|
});
|
|
198237
|
-
// Only the caller's own deployed apps are listable
|
|
198238
|
-
//
|
|
198239
|
-
|
|
198700
|
+
// Only the caller's own deployed apps are listable. The Add dialog offers
|
|
198701
|
+
// them, and a row on the platform's shared domain names the app it serves
|
|
198702
|
+
// (`shared_domain` is that address), so the list is wanted from the start.
|
|
198703
|
+
const { data: projectData, isFetching: isLoadingProjects } = useGetHostingProjectsQuery({ org: platformKey, username }, { skip: !username });
|
|
198704
|
+
// The caller's app served at a shared-domain address, by that address. A
|
|
198705
|
+
// row without a match is an own domain (or another user's app): it keeps
|
|
198706
|
+
// its records.
|
|
198707
|
+
const sharedAppFor = (row) => {
|
|
198708
|
+
var _a;
|
|
198709
|
+
return row.spa === VERCEL_SPA
|
|
198710
|
+
? ((_a = projectData === null || projectData === void 0 ? void 0 : projectData.projects) !== null && _a !== void 0 ? _a : []).find((project) => !!project.shared_domain &&
|
|
198711
|
+
project.shared_domain.toLowerCase() === row.custom_domain.toLowerCase())
|
|
198712
|
+
: undefined;
|
|
198713
|
+
};
|
|
198240
198714
|
const [createCustomDomain, { isLoading: isCreating }] = useCreateCustomDomainMutation();
|
|
198241
198715
|
const [deleteCustomDomain] = useDeleteCustomDomainMutation();
|
|
198242
198716
|
const [createHostingProjectDomain, { isLoading: isAttaching }] = useCreateHostingProjectDomainMutation();
|
|
@@ -198265,10 +198739,15 @@ const CustomDomainsContent = ({ platformKey, username, currentSPA, currentPlatfo
|
|
|
198265
198739
|
: typeof window !== 'undefined'
|
|
198266
198740
|
? window.location.hostname.split('.').slice(-2).join('.')
|
|
198267
198741
|
: 'iblai.app'}`;
|
|
198268
|
-
//
|
|
198269
|
-
//
|
|
198270
|
-
|
|
198271
|
-
|
|
198742
|
+
// The Add dialog offers the sign-in kind whenever it knows which app to bind
|
|
198743
|
+
// the domain to. How many sign-in domains an app may have is the platform's
|
|
198744
|
+
// decision, not the panel's: a refusal comes back as the platform's own
|
|
198745
|
+
// message (`reportError` shows it), so no count is enforced here.
|
|
198746
|
+
const canAddPlatformDomain = Boolean(currentSPA);
|
|
198747
|
+
// The kind the dialog opens on: an app that already has a sign-in domain is
|
|
198748
|
+
// more often adding one for a deployed app; the sign-in kind stays one
|
|
198749
|
+
// click away either way.
|
|
198750
|
+
const hasPlatformDomain = useMemo(() => customDomains.some((domain) => { var _a; return domain.spa !== VERCEL_SPA && ((_a = domain.spa) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(currentSPA.toLowerCase())); }), [customDomains, currentSPA]);
|
|
198272
198751
|
/**
|
|
198273
198752
|
* The status decides what the user should do next, so it gets its own
|
|
198274
198753
|
* message. 409 shares 400's: both mean "not this domain, not here", and the
|
|
@@ -198293,10 +198772,10 @@ const CustomDomainsContent = ({ platformKey, username, currentSPA, currentPlatfo
|
|
|
198293
198772
|
};
|
|
198294
198773
|
const reportError = (error, fallback) => {
|
|
198295
198774
|
const status = error === null || error === void 0 ? void 0 : error.status;
|
|
198296
|
-
// The server's own words go underneath the headline
|
|
198297
|
-
//
|
|
198298
|
-
|
|
198299
|
-
toast.error(headlineForStatus(status, fallback), { description });
|
|
198775
|
+
// The server's own words go underneath the headline. A 409 body never
|
|
198776
|
+
// names the organization holding the domain — the backend keeps that out
|
|
198777
|
+
// on purpose — and for a taken subdomain it carries the way out.
|
|
198778
|
+
toast.error(headlineForStatus(status, fallback), { description: serverDetail(error) });
|
|
198300
198779
|
};
|
|
198301
198780
|
const handleAddPlatformDomain = async (domain) => {
|
|
198302
198781
|
if (!domain) {
|
|
@@ -198320,15 +198799,16 @@ const CustomDomainsContent = ({ platformKey, username, currentSPA, currentPlatfo
|
|
|
198320
198799
|
reportError(error, t('advancedCustomDomain.createError'));
|
|
198321
198800
|
}
|
|
198322
198801
|
};
|
|
198323
|
-
const handleAddAppDomain = async (project,
|
|
198802
|
+
const handleAddAppDomain = async (project, address) => {
|
|
198324
198803
|
try {
|
|
198325
|
-
//
|
|
198326
|
-
// reads
|
|
198804
|
+
// Only the address that was filled in is sent; the dialog guarantees
|
|
198805
|
+
// exactly one. The backend reads an absent key, never an empty string.
|
|
198327
198806
|
await createHostingProjectDomain({
|
|
198328
198807
|
org: platformKey,
|
|
198329
198808
|
username,
|
|
198330
198809
|
project,
|
|
198331
|
-
domain: domain || undefined,
|
|
198810
|
+
domain: address.domain || undefined,
|
|
198811
|
+
subdomain: address.subdomain || undefined,
|
|
198332
198812
|
}).unwrap();
|
|
198333
198813
|
await refetch();
|
|
198334
198814
|
toast.success(t('advancedCustomDomain.createSuccess'));
|
|
@@ -198393,7 +198873,7 @@ const CustomDomainsContent = ({ platformKey, username, currentSPA, currentPlatfo
|
|
|
198393
198873
|
setIsModalOpen(true);
|
|
198394
198874
|
}, children: [jsx(Plus, { className: "h-4 w-4", "aria-hidden": "true" }), t('advancedCustomDomain.add')] }), jsx("button", { onClick: () => setIsCollapsed((previous) => !previous), className: "rounded p-1 hover:bg-gray-100 focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 focus:outline-none dark:hover:bg-gray-800", "aria-label": isCollapsed
|
|
198395
198875
|
? t('advancedCustomDomain.expandAriaLabel')
|
|
198396
|
-
: t('advancedCustomDomain.collapseAriaLabel'), type: "button", children: isCollapsed ? (jsx(ChevronDown, { className: "h-5 w-5 text-gray-400", "aria-hidden": "true" })) : (jsx(ChevronUp, { className: "h-5 w-5 text-gray-400", "aria-hidden": "true" })) })] })] }), !isCollapsed && (jsx("div", { className: "mt-4", children: isLoading ? (jsx("div", { className: "p-4 text-gray-500", children: t('advancedCustomDomain.loading') })) : customDomains.length > 0 ? (jsx("div", { className: "space-y-3", children: sortedDomains.map((row) => (jsx(DomainRow, { row: row, sslValue: sslValue, onReverify: handleReverify, onRemove: handleRemove, isBusy: busyDomainId === row.id, onStatusChange: handleStatusChange }, row.id))) })) : (jsx("div", { className: "p-4 text-center text-sm text-gray-500", children: t('advancedCustomDomain.noDomainConfigured') })) })), jsx(AddDomainDialog, { open: isModalOpen, onOpenChange: setIsModalOpen, canAddPlatformDomain: canAddPlatformDomain, projects: (_a = projectData === null || projectData === void 0 ? void 0 : projectData.projects) !== null && _a !== void 0 ? _a : [], isLoadingProjects: isLoadingProjects, isSubmitting: isCreating || isAttaching, onSubmitPlatformDomain: handleAddPlatformDomain, onSubmitAppDomain: handleAddAppDomain })] }));
|
|
198876
|
+
: t('advancedCustomDomain.collapseAriaLabel'), type: "button", children: isCollapsed ? (jsx(ChevronDown, { className: "h-5 w-5 text-gray-400", "aria-hidden": "true" })) : (jsx(ChevronUp, { className: "h-5 w-5 text-gray-400", "aria-hidden": "true" })) })] })] }), !isCollapsed && (jsx("div", { className: "mt-4", children: isLoading ? (jsx("div", { className: "p-4 text-gray-500", children: t('advancedCustomDomain.loading') })) : customDomains.length > 0 ? (jsx("div", { className: "space-y-3", children: sortedDomains.map((row) => (jsx(DomainRow, { row: row, sharedApp: sharedAppFor(row), sslValue: sslValue, onReverify: handleReverify, onRemove: handleRemove, isBusy: busyDomainId === row.id, onStatusChange: handleStatusChange }, row.id))) })) : (jsx("div", { className: "p-4 text-center text-sm text-gray-500", children: t('advancedCustomDomain.noDomainConfigured') })) })), jsx(AddDomainDialog, { open: isModalOpen, onOpenChange: setIsModalOpen, canAddPlatformDomain: canAddPlatformDomain, defaultMode: hasPlatformDomain ? 'app' : 'platform', projects: (_a = projectData === null || projectData === void 0 ? void 0 : projectData.projects) !== null && _a !== void 0 ? _a : [], isLoadingProjects: isLoadingProjects, isSubmitting: isCreating || isAttaching, onSubmitPlatformDomain: handleAddPlatformDomain, onSubmitAppDomain: handleAddAppDomain })] }));
|
|
198397
198877
|
};
|
|
198398
198878
|
|
|
198399
198879
|
const StudentMentorCreationContent = ({ platformKey, }) => {
|
|
@@ -229463,7 +229943,9 @@ function SummerNoteTextEditor({ value, onChange, exportFormat = 'markdown', disa
|
|
|
229463
229943
|
isApplyingValueRef.current = false;
|
|
229464
229944
|
}
|
|
229465
229945
|
}, [value, isReady, toEditorHtml]);
|
|
229466
|
-
|
|
229946
|
+
// A layout effect: the loading node leaves in this same commit, so the editor
|
|
229947
|
+
// is never painted editable while disabled. The test helper waits on that node.
|
|
229948
|
+
React__default.useLayoutEffect(() => {
|
|
229467
229949
|
const instance = instanceRef.current;
|
|
229468
229950
|
if (!instance || !isReady) {
|
|
229469
229951
|
return;
|
|
@@ -229491,8 +229973,9 @@ function SummerNoteTextEditor({ value, onChange, exportFormat = 'markdown', disa
|
|
|
229491
229973
|
editable.style.maxHeight = `${Math.max(EDITOR_MAX_HEIGHT, minHeightPx)}px`;
|
|
229492
229974
|
}, [minHeightPx, isReady]);
|
|
229493
229975
|
// Summernote's editable region is a plain contenteditable div; describe it the
|
|
229494
|
-
// same way `RichTextEditor` describes its own.
|
|
229495
|
-
|
|
229976
|
+
// same way `RichTextEditor` describes its own. A layout effect, so the region
|
|
229977
|
+
// is never painted without its name.
|
|
229978
|
+
React__default.useLayoutEffect(() => {
|
|
229496
229979
|
const editable = editableRef.current;
|
|
229497
229980
|
if (!editable || !isReady) {
|
|
229498
229981
|
return;
|
|
@@ -235142,43 +235625,6 @@ const useTranscripts = ({ tenantKey, mentorId, usergroupIds, }) => {
|
|
|
235142
235625
|
};
|
|
235143
235626
|
};
|
|
235144
235627
|
|
|
235145
|
-
/**
|
|
235146
|
-
* An agent named in a stats row, clickable to re-scope the whole analytics
|
|
235147
|
-
* page to that agent — the same thing the control bar's picker does, reached
|
|
235148
|
-
* from the data instead of from a search box.
|
|
235149
|
-
*
|
|
235150
|
-
* It renders as plain text wherever re-scoping is impossible or pointless: on
|
|
235151
|
-
* per-agent pages (no picker, so nothing would visibly change), on rows whose
|
|
235152
|
-
* agent the payload identifies by name alone, and on rows of the agent the
|
|
235153
|
-
* page is already scoped to (every row, once the picker names one agent — a
|
|
235154
|
-
* blue link there promised something and delivered nothing). Safe inside
|
|
235155
|
-
* clickable rows and cards — neither its clicks nor its key presses reach
|
|
235156
|
-
* their handlers.
|
|
235157
|
-
*/
|
|
235158
|
-
function AgentScopeLink({ uniqueId, name, fallback = '-', onScoped, className, testId, }) {
|
|
235159
|
-
const t = useT();
|
|
235160
|
-
const setScopedMentor = useAnalyticsScopeSetter();
|
|
235161
|
-
const { scopedMentor } = useAnalyticsScope();
|
|
235162
|
-
const display = name || uniqueId || fallback;
|
|
235163
|
-
const isCurrent = !!uniqueId && (scopedMentor === null || scopedMentor === void 0 ? void 0 : scopedMentor.uniqueId) === uniqueId;
|
|
235164
|
-
if (!setScopedMentor || !uniqueId || isCurrent) {
|
|
235165
|
-
return (jsx("span", { className: className, "data-testid": testId, children: display }));
|
|
235166
|
-
}
|
|
235167
|
-
return (jsx("button", { type: "button", onClick: (event) => {
|
|
235168
|
-
event.stopPropagation();
|
|
235169
|
-
// No `dbId`: these payloads carry the `unique_id` only. AnalyticsLayout
|
|
235170
|
-
// resolves the rest before the scope reaches anyone — see
|
|
235171
|
-
// AnalyticsScopedMentor.
|
|
235172
|
-
setScopedMentor({ uniqueId, name: name || uniqueId });
|
|
235173
|
-
onScoped === null || onScoped === void 0 ? void 0 : onScoped();
|
|
235174
|
-
},
|
|
235175
|
-
// Rows that open on Enter/Space would otherwise swallow the key press.
|
|
235176
|
-
onKeyDown: (event) => event.stopPropagation(),
|
|
235177
|
-
// Truncates inside an `inline-flex` box so the name keeps the baseline
|
|
235178
|
-
// of the "Agent:" label beside it (see UserProfileLink).
|
|
235179
|
-
className: cn('inline-flex max-w-full cursor-pointer text-left hover:text-blue-600 hover:underline focus:text-blue-600 focus:outline-none', className), "aria-label": t('analyticsAgentScopeLink.scopeToAgent', { name: display }), "data-testid": testId, children: jsx("span", { className: "min-w-0 truncate", children: display }) }));
|
|
235180
|
-
}
|
|
235181
|
-
|
|
235182
235628
|
/**
|
|
235183
235629
|
* Attachments on a transcript turn. A turn can carry files with no text at
|
|
235184
235630
|
* all (an uploaded image and nothing else), so the bubble renders these even
|
|
@@ -235617,6 +236063,36 @@ const getMessageContent = (content) => {
|
|
|
235617
236063
|
}
|
|
235618
236064
|
return '';
|
|
235619
236065
|
};
|
|
236066
|
+
/**
|
|
236067
|
+
* The person behind a transcript, in the detail pane: who they are — their
|
|
236068
|
+
* full name when it is a real one, else their username — and their email,
|
|
236069
|
+
* each opening the shared profile viewer. Nobody at all reads "Anonymous".
|
|
236070
|
+
*/
|
|
236071
|
+
function TranscriptUserLines({ source, tenantKey, currentSPA, }) {
|
|
236072
|
+
const t = useT();
|
|
236073
|
+
const identity = resolveUserIdentity(source, {
|
|
236074
|
+
anonymousLabel: t('analyticsAnalyticsTranscriptsStats.anonymous'),
|
|
236075
|
+
});
|
|
236076
|
+
const realName = hasDistinctName(identity.name, identity.profileUsername, identity.username)
|
|
236077
|
+
? identity.name
|
|
236078
|
+
: undefined;
|
|
236079
|
+
const who = realName
|
|
236080
|
+
? { label: t('analyticsAnalyticsTranscriptsStats.labelFullName'), value: realName }
|
|
236081
|
+
: identity.username
|
|
236082
|
+
? {
|
|
236083
|
+
label: t('analyticsAnalyticsTranscriptsStats.labelUsername'),
|
|
236084
|
+
value: identity.username,
|
|
236085
|
+
}
|
|
236086
|
+
: null;
|
|
236087
|
+
const email = identity.email
|
|
236088
|
+
? { label: t('analyticsAnalyticsTranscriptsStats.labelEmail'), value: identity.email }
|
|
236089
|
+
: null;
|
|
236090
|
+
const link = (display) => (jsx(UserProfileLink, { currentSPA: currentSPA, tenantKey: tenantKey, username: identity.profileUsername, display: display }));
|
|
236091
|
+
if (!who && !email) {
|
|
236092
|
+
return (jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelUser'), " ", link(identity.label)] }));
|
|
236093
|
+
}
|
|
236094
|
+
return (jsxs(Fragment$1, { children: [who && (jsxs("div", { children: [who.label, " ", link(who.value)] })), email && (jsxs("div", { children: [email.label, " ", link(email.value)] }))] }));
|
|
236095
|
+
}
|
|
235620
236096
|
/**
|
|
235621
236097
|
* The model as the nav bar shows it (logo + display name); hosts may override
|
|
235622
236098
|
* via `turnDetails.renderModel`. The catalogue is read for the tenant and the
|
|
@@ -235659,14 +236135,14 @@ function TranscriptDocumentsButton({ detail, className, }) {
|
|
|
235659
236135
|
return (jsx(RetrievedDocumentsButton, { sessionId: sessionId, documents: documents.length > 0 ? documents : undefined, className: className }));
|
|
235660
236136
|
}
|
|
235661
236137
|
function AnalyticsTranscriptsStats({ tenantKey, currentSPA, mentorId, selectedMentorId, usergroupIds, turnDetails, }) {
|
|
235662
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
236138
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
235663
236139
|
const t = useT();
|
|
235664
|
-
|
|
235665
|
-
|
|
235666
|
-
|
|
235667
|
-
|
|
235668
|
-
|
|
235669
|
-
})
|
|
236140
|
+
const sentimentLabels = React__default.useMemo(() => ({
|
|
236141
|
+
positive: t('analyticsAnalyticsTranscriptsStats.sentimentPositive'),
|
|
236142
|
+
neutral: t('analyticsAnalyticsTranscriptsStats.sentimentNeutral'),
|
|
236143
|
+
negative: t('analyticsAnalyticsTranscriptsStats.sentimentNegative'),
|
|
236144
|
+
userSentiment: t('analyticsAnalyticsTranscriptsStats.userSentiment'),
|
|
236145
|
+
}), [t]);
|
|
235670
236146
|
const currentMentorId = useScopedMentorId(selectedMentorId, mentorId);
|
|
235671
236147
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
235672
236148
|
const searchParams = useSearchParams();
|
|
@@ -235677,6 +236153,13 @@ function AnalyticsTranscriptsStats({ tenantKey, currentSPA, mentorId, selectedMe
|
|
|
235677
236153
|
// badge. Hosts that browse across agents (the LMS analytics route) pass no
|
|
235678
236154
|
// mentorId, so the transcript's own agent is the only correct scope.
|
|
235679
236155
|
const detailMentorId = ((_a = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _a === void 0 ? void 0 : _a.mentor_unique_id) || currentMentorId;
|
|
236156
|
+
// The detail's model badge shows the model's own provider: the summary's
|
|
236157
|
+
// when the backend sends one, else the list row's for this session (the
|
|
236158
|
+
// source the cards use, so both columns agree), and only then the turns'
|
|
236159
|
+
// `metadata.llm_provider` — which for a routed model such as ibl.ai Pro
|
|
236160
|
+
// names the provider underneath (openai), not the model's own.
|
|
236161
|
+
const selectedRow = (_b = transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.results) === null || _b === void 0 ? void 0 : _b.find((row) => row.session === selectedTranscript);
|
|
236162
|
+
const detailProvider = (_d = (_c = providerOf(transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary)) !== null && _c !== void 0 ? _c : providerOf(selectedRow)) !== null && _d !== void 0 ? _d : providerOfTurns(transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.messages);
|
|
235680
236163
|
// Read session_id from URL on mount and select the transcript
|
|
235681
236164
|
useEffect(() => {
|
|
235682
236165
|
const sessionIdParam = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get('session_id');
|
|
@@ -235778,46 +236261,37 @@ function AnalyticsTranscriptsStats({ tenantKey, currentSPA, mentorId, selectedMe
|
|
|
235778
236261
|
};
|
|
235779
236262
|
// Transcript Detail Component (reusable for both desktop and mobile)
|
|
235780
236263
|
const TranscriptDetail = ({ className = '' }) => {
|
|
235781
|
-
var _a, _b, _c, _d, _e, _f
|
|
236264
|
+
var _a, _b, _c, _d, _e, _f;
|
|
235782
236265
|
return (jsx("div", { className: cn('h-full flex flex-col', className), children: !selectedTranscript ? (jsx("div", { className: "flex items-center justify-center h-full text-gray-400", children: jsxs("div", { className: "text-center", children: [jsx(ArrowLeft, { className: "h-6 w-6 mx-auto mb-2" }), jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.selectConversation') })] }) })) : isLoadingTranscriptsMessagesDetailsData ? (
|
|
235783
236266
|
/* Loading state */
|
|
235784
236267
|
jsx("div", { className: "flex items-center justify-center h-full text-gray-400", children: jsxs("div", { className: "text-center", children: [jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500 mx-auto mb-3", "aria-hidden": "true" }), jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.loadingTranscript') })] }) })) : isErrorTranscriptsMessagesDetailsData || !transcriptsMessagesDetailsData ? (
|
|
235785
236268
|
/* Error or no data state */
|
|
235786
236269
|
jsx("div", { className: "flex items-center justify-center h-full text-gray-400", children: jsxs("div", { className: "text-center", children: [jsx(X$1, { className: "h-6 w-6 mx-auto mb-2 text-red-400" }), jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.noTranscriptDetails') }), jsx("p", { className: "text-sm mt-1", children: t('analyticsAnalyticsTranscriptsStats.unableToLoadTranscript') })] }) })) : (
|
|
235787
236270
|
/* Data loaded successfully */
|
|
235788
|
-
jsxs(Fragment$1, { children: [jsxs("div", { className: "mb-4 flex-shrink-0", children: [jsx("h2", { className: "text-lg font-semibold mb-2", children: t('analyticsAnalyticsTranscriptsStats.conversationTranscript') }), jsxs("div", { className: "text-sm text-gray-500", children: [
|
|
235789
|
-
? ((
|
|
236271
|
+
jsxs(Fragment$1, { children: [jsxs("div", { className: "mb-4 flex-shrink-0", children: [jsx("h2", { className: "text-lg font-semibold mb-2", children: t('analyticsAnalyticsTranscriptsStats.conversationTranscript') }), jsxs("div", { className: "text-sm text-gray-500", children: [jsx(TranscriptUserLines, { source: transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary, tenantKey: tenantKey, currentSPA: currentSPA }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelAgent'), ' ', jsx(AgentSettingsLink, { uniqueId: (_a = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _a === void 0 ? void 0 : _a.mentor_unique_id, name: (_b = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _b === void 0 ? void 0 : _b.mentor })] }), jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [t('analyticsAnalyticsTranscriptsStats.labelModel'), ' ', ((_c = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _c === void 0 ? void 0 : _c.model)
|
|
236272
|
+
? ((_d = turnDetails === null || turnDetails === void 0 ? void 0 : turnDetails.renderModel) !== null && _d !== void 0 ? _d : renderModelBadge)({
|
|
235790
236273
|
model: transcriptsMessagesDetailsData.summary.model,
|
|
235791
|
-
provider:
|
|
236274
|
+
provider: detailProvider,
|
|
235792
236275
|
tenantKey,
|
|
235793
236276
|
mentorId: detailMentorId,
|
|
235794
236277
|
})
|
|
235795
|
-
: '-'] }), jsx(TranscriptDocumentsButton, { detail: transcriptsMessagesDetailsData, className: "mt-2" })] })] }), jsx("div", { className: "flex-1 overflow-y-auto space-y-4 min-h-0", children: ((
|
|
236278
|
+
: '-'] }), jsx(TranscriptDocumentsButton, { detail: transcriptsMessagesDetailsData, className: "mt-2" })] })] }), jsx("div", { className: "flex-1 overflow-y-auto space-y-4 min-h-0", children: ((_e = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.messages) === null || _e === void 0 ? void 0 : _e.length) > 0 ? ((_f = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.messages) === null || _f === void 0 ? void 0 : _f.map((message, index) => {
|
|
235796
236279
|
var _a, _b;
|
|
235797
236280
|
return (jsxs(React__default.Fragment, { children: [((message === null || message === void 0 ? void 0 : message.human) || !!((_a = message === null || message === void 0 ? void 0 : message.human_files) === null || _a === void 0 ? void 0 : _a.length)) && (jsxs("div", { className: `p-3 rounded-lg bg-blue-100 ml-4`, children: [jsx("div", { className: "flex justify-between items-start mb-1", children: jsx("span", { className: "font-medium text-sm", children: t('analyticsAnalyticsTranscriptsStats.roleUser') }) }), message.human && (jsx("p", { className: "text-sm", children: getMessageContent(message.human) })), jsx(TranscriptFiles, { files: message.human_files })] }, `${index}-human`)), ((message === null || message === void 0 ? void 0 : message.ai) || !!((_b = message === null || message === void 0 ? void 0 : message.ai_files) === null || _b === void 0 ? void 0 : _b.length)) && (jsxs("div", { className: `p-3 rounded-lg bg-white mr-4`, children: [jsx("div", { className: "flex justify-between items-start mb-1", children: jsx("span", { className: "font-medium text-sm", children: t('analyticsAnalyticsTranscriptsStats.roleAgent') }) }), message.ai && jsx(Markdown, { children: getMessageContent(message.ai) }), jsx(TranscriptFiles, { files: message.ai_files }), jsx(TranscriptTurnDetails, { turn: message, tenantKey: tenantKey, mentorId: detailMentorId, ...turnDetails })] }, `${index}-ai`))] }, index));
|
|
235798
236281
|
})) : (jsx("div", { className: "text-center text-gray-500 py-8", children: jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.noMessages') }) })) })] })) }));
|
|
235799
236282
|
};
|
|
235800
|
-
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-6", children: [jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgMessagesPerConversation'), value: ((
|
|
235801
|
-
undefined, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgMessagesPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversation'), value: Number(((
|
|
235802
|
-
undefined, showDollarSign: true, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgRating'), value: ((
|
|
236283
|
+
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-6", children: [jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgMessagesPerConversation'), value: ((_e = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_messages_per_conversation) === null || _e === void 0 ? void 0 : _e.value) || 0, percentage: ((_f = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_messages_per_conversation) === null || _f === void 0 ? void 0 : _f.percentage_change) ||
|
|
236284
|
+
undefined, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgMessagesPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversation'), value: Number(((_g = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _g === void 0 ? void 0 : _g.value) || 0).toFixed(2), percentage: ((_h = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _h === void 0 ? void 0 : _h.percentage_change) ||
|
|
236285
|
+
undefined, showDollarSign: true, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgRating'), value: ((_j = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _j === void 0 ? void 0 : _j.value) || 0, percentage: ((_k = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _k === void 0 ? void 0 : _k.percentage_change) || undefined, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgRatingDescription') })] }), jsxs("div", { className: "flex h-[calc(100vh-120px)]", children: [jsxs("div", { className: "w-full md:w-2/3 md:pr-6 overflow-y-auto md:border-r border-gray-200 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: [jsx("div", { className: "mb-6", children: jsxs("div", { className: "flex gap-2 mb-4 items-center", children: [jsxs("div", { className: "relative", children: [jsx(Search, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 h-4 w-4" }), jsx(Input, { placeholder: t('analyticsAnalyticsTranscriptsStats.placeholderTopics'), value: filters.topicSearch, onChange: (e) => setFilters({ ...filters, topicSearch: e.target.value }), className: "pl-10 w-[200px]" })] }), jsx("div", { className: "w-[200px]", children: jsx(UserFilterSelect, { tenantKey: tenantKey, value: filters.userSearch, onChange: (username) => setFilters({ ...filters, userSearch: username }), showSelfOption: false, className: "bg-transparent" }) }), isFetchingTranscriptsMessagesData && (filters.userSearch || filters.topicSearch) ? (jsx("div", { className: "animate-spin rounded-full h-5 w-5 border-b-2 border-blue-500 ml-2", "aria-hidden": "true" })) : (jsx(Button$1, { variant: "outline", onClick: handleClearFilters, className: "whitespace-nowrap", children: t('analyticsAnalyticsTranscriptsStats.clearAll') }))] }) }), jsxs("div", { className: "bg-gray-50 p-4 rounded-lg mb-6", children: [jsxs("div", { className: "flex flex-wrap gap-x-8 gap-y-2 text-sm text-gray-600", children: [jsxs("div", { "aria-label": t('analyticsAnalyticsTranscriptsStats.ariaTotalConversations'), children: [transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.summary.total_conversations, ' ', t('analyticsAnalyticsTranscriptsStats.conversations')] }), jsx("div", { children: "\u2022" }), jsxs("div", { children: [transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.summary.user_queries, ' ', t('analyticsAnalyticsTranscriptsStats.userQueries')] }), jsx("div", { children: "\u2022" }), jsxs("div", { children: [transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.summary.assistant_responses, ' ', t('analyticsAnalyticsTranscriptsStats.assistantResponses')] })] }), jsx("div", { className: "flex flex-wrap gap-x-8 gap-y-2 text-sm text-gray-600 mt-2", children: jsxs("div", { children: [transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.summary.average_sentiment_score, ' ', t('analyticsAnalyticsTranscriptsStats.averageSentimentScore')] }) })] }), jsx("div", { className: "flex flex-col gap-4", children: isLoadingTranscriptsMessagesData ? (
|
|
235803
236286
|
// Loading state
|
|
235804
236287
|
jsx("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, index) => (jsxs(Card$1, { className: "p-4 animate-pulse", children: [jsx("div", { className: "mb-3", children: jsx("div", { className: "h-4 bg-gray-200 rounded w-3/4" }) }), jsxs("div", { className: "flex flex-wrap gap-2 mb-3", children: [jsx("div", { className: "h-6 bg-gray-200 rounded w-16" }), jsx("div", { className: "h-6 bg-gray-200 rounded w-20" })] }), jsxs("div", { className: "flex flex-wrap gap-x-6 gap-y-2 mb-2", children: [jsx("div", { className: "h-4 bg-gray-200 rounded w-24" }), jsx("div", { className: "h-4 bg-gray-200 rounded w-20" })] }), jsxs("div", { className: "flex flex-wrap gap-x-6 gap-y-2", children: [jsx("div", { className: "h-4 bg-gray-200 rounded w-20" }), jsx("div", { className: "h-4 bg-gray-200 rounded w-24" })] })] }, index))) })) : (transcriptsMessagesData === null || transcriptsMessagesData === void 0 ? void 0 : transcriptsMessagesData.results) && transcriptsMessagesData.results.length > 0 ? (
|
|
235805
236288
|
// Results
|
|
235806
236289
|
transcriptsMessagesData.results.map((transcript) => {
|
|
235807
|
-
var _a
|
|
236290
|
+
var _a;
|
|
235808
236291
|
return (jsxs(Card$1, { className: cn(`p-4 hover:shadow-md transition-shadow cursor-pointer border ${selectedTranscript === transcript.session
|
|
235809
236292
|
? 'border-blue-500 bg-blue-50'
|
|
235810
|
-
: 'border-gray-200'}`), onClick: () => handleTranscriptSelect(transcript.session), children: [jsx("div", { className: "mb-3", children: jsx("p", { className: "text-gray-800", children: transcript.
|
|
235811
|
-
|
|
235812
|
-
? 'text-blue-600'
|
|
235813
|
-
: transcript.sentiment === 'positive'
|
|
235814
|
-
? 'text-green-600'
|
|
235815
|
-
: 'text-gray-600'), children: [transcript.sentiment === 'negative' ? (jsx(ThumbsDown, { className: "h-4 w-4" })) : (jsx(ThumbsUp, { className: "h-4 w-4" })), jsxs("span", { children: [transcript.sentiment === 'negative'
|
|
235816
|
-
? t('analyticsAnalyticsTranscriptsStats.sentimentNegative')
|
|
235817
|
-
: transcript.sentiment === 'positive'
|
|
235818
|
-
? t('analyticsAnalyticsTranscriptsStats.sentimentPositive')
|
|
235819
|
-
: t('analyticsAnalyticsTranscriptsStats.sentimentNeutral'), ' ', t('analyticsAnalyticsTranscriptsStats.userSentiment')] })] }) }), jsxs("div", { className: "flex flex-wrap items-baseline gap-x-6 gap-y-2 text-xs text-gray-500 mb-2", children: [jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelUser'), ' ', jsx(UserProfileLink, { currentSPA: currentSPA, tenantKey: tenantKey, username: transcript === null || transcript === void 0 ? void 0 : transcript.username, display: identifyUser(transcript) })] }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelAgent'), ' ', jsx(AgentScopeLink, { uniqueId: transcript === null || transcript === void 0 ? void 0 : transcript.mentor_unique_id, name: transcript === null || transcript === void 0 ? void 0 : transcript.mentor })] })] }), jsx("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-xs text-gray-500 mb-2", children: jsxs("div", { className: "inline-flex flex-wrap items-center gap-1.5", children: [t('analyticsAnalyticsTranscriptsStats.labelModelCard'), ' ', (transcript === null || transcript === void 0 ? void 0 : transcript.model)
|
|
235820
|
-
? ((_c = turnDetails === null || turnDetails === void 0 ? void 0 : turnDetails.renderModel) !== null && _c !== void 0 ? _c : renderModelBadge)({
|
|
236293
|
+
: 'border-gray-200'}`), onClick: () => handleTranscriptSelect(transcript.session), children: [jsx("div", { className: "mb-3", children: jsx("p", { className: "text-gray-800", children: conversationTitle(transcript, t('analyticsAnalyticsTranscriptsStats.conversationFallbackTitle')) }) }), jsx(ConversationTopics, { topics: transcript.topics, className: "mb-3", children: jsx(TranscriptRollupBadges, { documentsCount: transcript.documents_count, toolCallsCount: transcript.tool_calls_count }) }), jsx("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-2 text-sm mb-2", children: jsx(ConversationSentiment, { sentiment: transcript.sentiment || 'neutral', labels: sentimentLabels }) }), jsxs("div", { className: "flex flex-wrap items-baseline gap-x-6 gap-y-2 text-xs text-gray-500 mb-2", children: [jsx(TranscriptUserLines, { source: transcript, tenantKey: tenantKey, currentSPA: currentSPA }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelAgent'), ' ', jsx(AgentSettingsLink, { uniqueId: transcript === null || transcript === void 0 ? void 0 : transcript.mentor_unique_id, name: transcript === null || transcript === void 0 ? void 0 : transcript.mentor })] })] }), jsx("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-xs text-gray-500 mb-2", children: jsxs("div", { className: "inline-flex flex-wrap items-center gap-1.5", children: [t('analyticsAnalyticsTranscriptsStats.labelModelCard'), ' ', (transcript === null || transcript === void 0 ? void 0 : transcript.model)
|
|
236294
|
+
? ((_a = turnDetails === null || turnDetails === void 0 ? void 0 : turnDetails.renderModel) !== null && _a !== void 0 ? _a : renderModelBadge)({
|
|
235821
236295
|
model: transcript.model,
|
|
235822
236296
|
provider: providerOf(transcript),
|
|
235823
236297
|
tenantKey,
|
|
@@ -235859,14 +236333,14 @@ function AnalyticsTranscriptsStats({ tenantKey, currentSPA, mentorId, selectedMe
|
|
|
235859
236333
|
/* Error or no data state */
|
|
235860
236334
|
jsx("div", { className: "flex items-center justify-center h-full text-gray-400", children: jsxs("div", { className: "text-center", children: [jsx(X$1, { className: "h-6 w-6 mx-auto mb-2 text-red-400" }), jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.noTranscriptDetails') }), jsx("p", { className: "text-sm mt-1", children: t('analyticsAnalyticsTranscriptsStats.unableToLoadTranscript') })] }) })) : (
|
|
235861
236335
|
/* Data loaded successfully */
|
|
235862
|
-
jsxs("div", { className: "space-y-4", children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "text-sm text-gray-500 space-y-1", children: [
|
|
235863
|
-
? ((
|
|
236336
|
+
jsxs("div", { className: "space-y-4", children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "text-sm text-gray-500 space-y-1", children: [jsx(TranscriptUserLines, { source: transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary, tenantKey: tenantKey, currentSPA: currentSPA }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelAgent'), ' ', jsx(AgentSettingsLink, { uniqueId: (_l = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _l === void 0 ? void 0 : _l.mentor_unique_id, name: (_m = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _m === void 0 ? void 0 : _m.mentor })] }), jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [t('analyticsAnalyticsTranscriptsStats.labelModel'), ' ', ((_o = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _o === void 0 ? void 0 : _o.model)
|
|
236337
|
+
? ((_p = turnDetails === null || turnDetails === void 0 ? void 0 : turnDetails.renderModel) !== null && _p !== void 0 ? _p : renderModelBadge)({
|
|
235864
236338
|
model: transcriptsMessagesDetailsData.summary.model,
|
|
235865
|
-
provider:
|
|
236339
|
+
provider: detailProvider,
|
|
235866
236340
|
tenantKey,
|
|
235867
236341
|
mentorId: detailMentorId,
|
|
235868
236342
|
})
|
|
235869
|
-
: '-'] }), jsx(TranscriptDocumentsButton, { detail: transcriptsMessagesDetailsData, className: "mt-2" })] }) }), jsx("div", { className: "space-y-4 pb-4", children: ((
|
|
236343
|
+
: '-'] }), jsx(TranscriptDocumentsButton, { detail: transcriptsMessagesDetailsData, className: "mt-2" })] }) }), jsx("div", { className: "space-y-4 pb-4", children: ((_q = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.messages) === null || _q === void 0 ? void 0 : _q.length) > 0 ? ((_r = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.messages) === null || _r === void 0 ? void 0 : _r.map((message, index) => {
|
|
235870
236344
|
var _a, _b;
|
|
235871
236345
|
return (jsxs(React__default.Fragment, { children: [((message === null || message === void 0 ? void 0 : message.human) || !!((_a = message === null || message === void 0 ? void 0 : message.human_files) === null || _a === void 0 ? void 0 : _a.length)) && (jsxs("div", { className: "p-3 rounded-lg bg-blue-100 ml-4", children: [jsx("div", { className: "flex justify-between items-start mb-1", children: jsx("span", { className: "font-medium text-sm", children: t('analyticsAnalyticsTranscriptsStats.roleUser') }) }), message.human && (jsx("p", { className: "text-sm", children: getMessageContent(message.human) })), jsx(TranscriptFiles, { files: message.human_files })] })), ((message === null || message === void 0 ? void 0 : message.ai) || !!((_b = message === null || message === void 0 ? void 0 : message.ai_files) === null || _b === void 0 ? void 0 : _b.length)) && (jsxs("div", { className: "p-3 rounded-lg bg-white mr-4 border", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("div", { className: "flex justify-between items-start mb-1", children: jsx("span", { className: "font-medium text-sm", children: t('analyticsAnalyticsTranscriptsStats.roleAgent') }) }), message.ai && jsx(Markdown, { children: getMessageContent(message.ai) }), jsx(TranscriptFiles, { files: message.ai_files }), jsx(TranscriptTurnDetails, { turn: message, tenantKey: tenantKey, mentorId: detailMentorId, ...turnDetails })] }))] }, index));
|
|
235872
236346
|
})) : (jsx("div", { className: "text-center text-gray-500 py-8", children: jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.noMessages') }) })) })] })) })] }) }))] }));
|
|
@@ -238585,6 +239059,43 @@ function AnalyticsAuditLogStats({ tenantKey, currentSPA, mentorId, userId, selec
|
|
|
238585
239059
|
: t('analyticsAnalyticsAuditLogStats.scopePlatformHint') })] })), activeScope === 'platform' ? (jsx(AnalyticsPlatformAuditLog, { platformKey: tenantKey, timezone: timezone, currentSPA: currentSPA })) : (jsx(AgentAuditLogView, { tenantKey: tenantKey, currentSPA: currentSPA, mentorId: mentorId, userId: userId, selectedMentorId: selectedMentorId }))] }));
|
|
238586
239060
|
}
|
|
238587
239061
|
|
|
239062
|
+
/**
|
|
239063
|
+
* An agent named in a stats row, clickable to re-scope the whole analytics
|
|
239064
|
+
* page to that agent — the same thing the control bar's picker does, reached
|
|
239065
|
+
* from the data instead of from a search box.
|
|
239066
|
+
*
|
|
239067
|
+
* It renders as plain text wherever re-scoping is impossible or pointless: on
|
|
239068
|
+
* per-agent pages (no picker, so nothing would visibly change), on rows whose
|
|
239069
|
+
* agent the payload identifies by name alone, and on rows of the agent the
|
|
239070
|
+
* page is already scoped to (every row, once the picker names one agent — a
|
|
239071
|
+
* blue link there promised something and delivered nothing). Safe inside
|
|
239072
|
+
* clickable rows and cards — neither its clicks nor its key presses reach
|
|
239073
|
+
* their handlers.
|
|
239074
|
+
*/
|
|
239075
|
+
function AgentScopeLink({ uniqueId, name, fallback = '-', onScoped, className, testId, }) {
|
|
239076
|
+
const t = useT();
|
|
239077
|
+
const setScopedMentor = useAnalyticsScopeSetter();
|
|
239078
|
+
const { scopedMentor } = useAnalyticsScope();
|
|
239079
|
+
const display = name || uniqueId || fallback;
|
|
239080
|
+
const isCurrent = !!uniqueId && (scopedMentor === null || scopedMentor === void 0 ? void 0 : scopedMentor.uniqueId) === uniqueId;
|
|
239081
|
+
if (!setScopedMentor || !uniqueId || isCurrent) {
|
|
239082
|
+
return (jsx("span", { className: className, "data-testid": testId, children: display }));
|
|
239083
|
+
}
|
|
239084
|
+
return (jsx("button", { type: "button", onClick: (event) => {
|
|
239085
|
+
event.stopPropagation();
|
|
239086
|
+
// No `dbId`: these payloads carry the `unique_id` only. AnalyticsLayout
|
|
239087
|
+
// resolves the rest before the scope reaches anyone — see
|
|
239088
|
+
// AnalyticsScopedMentor.
|
|
239089
|
+
setScopedMentor({ uniqueId, name: name || uniqueId });
|
|
239090
|
+
onScoped === null || onScoped === void 0 ? void 0 : onScoped();
|
|
239091
|
+
},
|
|
239092
|
+
// Rows that open on Enter/Space would otherwise swallow the key press.
|
|
239093
|
+
onKeyDown: (event) => event.stopPropagation(),
|
|
239094
|
+
// Truncates inside an `inline-flex` box so the name keeps the baseline
|
|
239095
|
+
// of the "Agent:" label beside it (see UserProfileLink).
|
|
239096
|
+
className: cn('inline-flex max-w-full cursor-pointer text-left hover:text-blue-600 hover:underline focus:text-blue-600 focus:outline-none', className), "aria-label": t('analyticsAgentScopeLink.scopeToAgent', { name: display }), "data-testid": testId, children: jsx("span", { className: "min-w-0 truncate", children: display }) }));
|
|
239097
|
+
}
|
|
239098
|
+
|
|
238588
239099
|
/**
|
|
238589
239100
|
* The global and cross-mentor endpoints both cap `page_size` at 25 server-side,
|
|
238590
239101
|
* so we ask for a size every scope can honor rather than paginating
|
|
@@ -250621,5 +251132,5 @@ var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
|
|
|
250621
251132
|
TrainOrDeleteModal: TrainOrDeleteModal
|
|
250622
251133
|
});
|
|
250623
251134
|
|
|
250624
|
-
export { ACCESS_COURSE_LABEL, ALL_CATEGORIES, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentScopeLink, 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, CardInfoIcon, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, ChartTooltipCard, ChatContext, ChatPrivacyToggle, ChatProvider, CompanyDialog, ConnectorManagementDialog, 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, 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, conversationDocuments, emptyUserOnboardingForm, findLastResumeBlock, findOnboardingAgent, findSequentialParent, flattenVerticalBlocks, formatAuditTimestamp, formatCompactNumber, formatFileSize, formatLatencySeconds, formatResult, 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 as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, readUserOnboardingForm, readUserOnboardingSubmission, readUserOnboardingSubmissions, resolveAuditTimeZone, resolveCreateAgentLabels, resolveUserIdentity, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, smallestCoworkModel, summarizeTranscriptTurns, toFileReference, toRetrievedDocuments, toToolCallInfos, 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, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
251135
|
+
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, 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, 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, conversationDocuments, conversationTitle, conversationTopics, 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 as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, previewPlan, readUserOnboardingForm, readUserOnboardingSubmission, readUserOnboardingSubmissions, resolveAuditTimeZone, resolveCreateAgentLabels, resolveUserIdentity, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, 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, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
250625
251136
|
//# sourceMappingURL=index.esm.js.map
|