@iblai/iblai-js 2.3.12 → 2.3.14
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.
|
@@ -54919,7 +54919,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
54919
54919
|
*/
|
|
54920
54920
|
|
|
54921
54921
|
|
|
54922
|
-
const __iconNode$
|
|
54922
|
+
const __iconNode$2l = [
|
|
54923
54923
|
[
|
|
54924
54924
|
"path",
|
|
54925
54925
|
{
|
|
@@ -54928,7 +54928,7 @@ const __iconNode$2m = [
|
|
|
54928
54928
|
}
|
|
54929
54929
|
]
|
|
54930
54930
|
];
|
|
54931
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
54931
|
+
const Activity = createLucideIcon("activity", __iconNode$2l);
|
|
54932
54932
|
|
|
54933
54933
|
/**
|
|
54934
54934
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54938,12 +54938,12 @@ const Activity = createLucideIcon("activity", __iconNode$2m);
|
|
|
54938
54938
|
*/
|
|
54939
54939
|
|
|
54940
54940
|
|
|
54941
|
-
const __iconNode$
|
|
54941
|
+
const __iconNode$2k = [
|
|
54942
54942
|
["path", { d: "M17 12H7", key: "16if0g" }],
|
|
54943
54943
|
["path", { d: "M19 18H5", key: "18s9l3" }],
|
|
54944
54944
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54945
54945
|
];
|
|
54946
|
-
const AlignCenter = createLucideIcon("align-center", __iconNode$
|
|
54946
|
+
const AlignCenter = createLucideIcon("align-center", __iconNode$2k);
|
|
54947
54947
|
|
|
54948
54948
|
/**
|
|
54949
54949
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54953,12 +54953,12 @@ const AlignCenter = createLucideIcon("align-center", __iconNode$2l);
|
|
|
54953
54953
|
*/
|
|
54954
54954
|
|
|
54955
54955
|
|
|
54956
|
-
const __iconNode$
|
|
54956
|
+
const __iconNode$2j = [
|
|
54957
54957
|
["path", { d: "M15 12H3", key: "6jk70r" }],
|
|
54958
54958
|
["path", { d: "M17 18H3", key: "1amg6g" }],
|
|
54959
54959
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54960
54960
|
];
|
|
54961
|
-
const AlignLeft = createLucideIcon("align-left", __iconNode$
|
|
54961
|
+
const AlignLeft = createLucideIcon("align-left", __iconNode$2j);
|
|
54962
54962
|
|
|
54963
54963
|
/**
|
|
54964
54964
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54968,12 +54968,12 @@ const AlignLeft = createLucideIcon("align-left", __iconNode$2k);
|
|
|
54968
54968
|
*/
|
|
54969
54969
|
|
|
54970
54970
|
|
|
54971
|
-
const __iconNode$
|
|
54971
|
+
const __iconNode$2i = [
|
|
54972
54972
|
["path", { d: "M21 12H9", key: "dn1m92" }],
|
|
54973
54973
|
["path", { d: "M21 18H7", key: "1ygte8" }],
|
|
54974
54974
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54975
54975
|
];
|
|
54976
|
-
const AlignRight = createLucideIcon("align-right", __iconNode$
|
|
54976
|
+
const AlignRight = createLucideIcon("align-right", __iconNode$2i);
|
|
54977
54977
|
|
|
54978
54978
|
/**
|
|
54979
54979
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54983,12 +54983,12 @@ const AlignRight = createLucideIcon("align-right", __iconNode$2j);
|
|
|
54983
54983
|
*/
|
|
54984
54984
|
|
|
54985
54985
|
|
|
54986
|
-
const __iconNode$
|
|
54986
|
+
const __iconNode$2h = [
|
|
54987
54987
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
54988
54988
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
54989
54989
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
54990
54990
|
];
|
|
54991
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
54991
|
+
const Archive = createLucideIcon("archive", __iconNode$2h);
|
|
54992
54992
|
|
|
54993
54993
|
/**
|
|
54994
54994
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54998,11 +54998,11 @@ const Archive = createLucideIcon("archive", __iconNode$2i);
|
|
|
54998
54998
|
*/
|
|
54999
54999
|
|
|
55000
55000
|
|
|
55001
|
-
const __iconNode$
|
|
55001
|
+
const __iconNode$2g = [
|
|
55002
55002
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
55003
55003
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
55004
55004
|
];
|
|
55005
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
55005
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$2g);
|
|
55006
55006
|
|
|
55007
55007
|
/**
|
|
55008
55008
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55012,11 +55012,11 @@ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2h);
|
|
|
55012
55012
|
*/
|
|
55013
55013
|
|
|
55014
55014
|
|
|
55015
|
-
const __iconNode$
|
|
55015
|
+
const __iconNode$2f = [
|
|
55016
55016
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
55017
55017
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
55018
55018
|
];
|
|
55019
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
55019
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2f);
|
|
55020
55020
|
|
|
55021
55021
|
/**
|
|
55022
55022
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55026,11 +55026,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2g);
|
|
|
55026
55026
|
*/
|
|
55027
55027
|
|
|
55028
55028
|
|
|
55029
|
-
const __iconNode$
|
|
55029
|
+
const __iconNode$2e = [
|
|
55030
55030
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
55031
55031
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
55032
55032
|
];
|
|
55033
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
55033
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$2e);
|
|
55034
55034
|
|
|
55035
55035
|
/**
|
|
55036
55036
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55040,11 +55040,11 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$2f);
|
|
|
55040
55040
|
*/
|
|
55041
55041
|
|
|
55042
55042
|
|
|
55043
|
-
const __iconNode$
|
|
55043
|
+
const __iconNode$2d = [
|
|
55044
55044
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
55045
55045
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
55046
55046
|
];
|
|
55047
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
55047
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$2d);
|
|
55048
55048
|
|
|
55049
55049
|
/**
|
|
55050
55050
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55054,7 +55054,7 @@ const ArrowUp = createLucideIcon("arrow-up", __iconNode$2e);
|
|
|
55054
55054
|
*/
|
|
55055
55055
|
|
|
55056
55056
|
|
|
55057
|
-
const __iconNode$
|
|
55057
|
+
const __iconNode$2c = [
|
|
55058
55058
|
[
|
|
55059
55059
|
"path",
|
|
55060
55060
|
{
|
|
@@ -55064,7 +55064,7 @@ const __iconNode$2d = [
|
|
|
55064
55064
|
],
|
|
55065
55065
|
["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
|
|
55066
55066
|
];
|
|
55067
|
-
const Award = createLucideIcon("award", __iconNode$
|
|
55067
|
+
const Award = createLucideIcon("award", __iconNode$2c);
|
|
55068
55068
|
|
|
55069
55069
|
/**
|
|
55070
55070
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55074,11 +55074,11 @@ const Award = createLucideIcon("award", __iconNode$2d);
|
|
|
55074
55074
|
*/
|
|
55075
55075
|
|
|
55076
55076
|
|
|
55077
|
-
const __iconNode$
|
|
55077
|
+
const __iconNode$2b = [
|
|
55078
55078
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
|
|
55079
55079
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
55080
55080
|
];
|
|
55081
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
55081
|
+
const Ban = createLucideIcon("ban", __iconNode$2b);
|
|
55082
55082
|
|
|
55083
55083
|
/**
|
|
55084
55084
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55088,12 +55088,12 @@ const Ban = createLucideIcon("ban", __iconNode$2c);
|
|
|
55088
55088
|
*/
|
|
55089
55089
|
|
|
55090
55090
|
|
|
55091
|
-
const __iconNode$
|
|
55091
|
+
const __iconNode$2a = [
|
|
55092
55092
|
["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
|
|
55093
55093
|
["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
|
|
55094
55094
|
["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
|
|
55095
55095
|
];
|
|
55096
|
-
const Banknote = createLucideIcon("banknote", __iconNode$
|
|
55096
|
+
const Banknote = createLucideIcon("banknote", __iconNode$2a);
|
|
55097
55097
|
|
|
55098
55098
|
/**
|
|
55099
55099
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55103,7 +55103,7 @@ const Banknote = createLucideIcon("banknote", __iconNode$2b);
|
|
|
55103
55103
|
*/
|
|
55104
55104
|
|
|
55105
55105
|
|
|
55106
|
-
const __iconNode$
|
|
55106
|
+
const __iconNode$29 = [
|
|
55107
55107
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
55108
55108
|
["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
|
|
55109
55109
|
[
|
|
@@ -55115,7 +55115,7 @@ const __iconNode$2a = [
|
|
|
55115
55115
|
],
|
|
55116
55116
|
["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
|
|
55117
55117
|
];
|
|
55118
|
-
const BellRing = createLucideIcon("bell-ring", __iconNode$
|
|
55118
|
+
const BellRing = createLucideIcon("bell-ring", __iconNode$29);
|
|
55119
55119
|
|
|
55120
55120
|
/**
|
|
55121
55121
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55125,7 +55125,7 @@ const BellRing = createLucideIcon("bell-ring", __iconNode$2a);
|
|
|
55125
55125
|
*/
|
|
55126
55126
|
|
|
55127
55127
|
|
|
55128
|
-
const __iconNode$
|
|
55128
|
+
const __iconNode$28 = [
|
|
55129
55129
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
55130
55130
|
[
|
|
55131
55131
|
"path",
|
|
@@ -55135,7 +55135,7 @@ const __iconNode$29 = [
|
|
|
55135
55135
|
}
|
|
55136
55136
|
]
|
|
55137
55137
|
];
|
|
55138
|
-
const Bell = createLucideIcon("bell", __iconNode$
|
|
55138
|
+
const Bell = createLucideIcon("bell", __iconNode$28);
|
|
55139
55139
|
|
|
55140
55140
|
/**
|
|
55141
55141
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55145,13 +55145,13 @@ const Bell = createLucideIcon("bell", __iconNode$29);
|
|
|
55145
55145
|
*/
|
|
55146
55146
|
|
|
55147
55147
|
|
|
55148
|
-
const __iconNode$
|
|
55148
|
+
const __iconNode$27 = [
|
|
55149
55149
|
[
|
|
55150
55150
|
"path",
|
|
55151
55151
|
{ 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" }
|
|
55152
55152
|
]
|
|
55153
55153
|
];
|
|
55154
|
-
const Bold$1 = createLucideIcon("bold", __iconNode$
|
|
55154
|
+
const Bold$1 = createLucideIcon("bold", __iconNode$27);
|
|
55155
55155
|
|
|
55156
55156
|
/**
|
|
55157
55157
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55161,7 +55161,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$28);
|
|
|
55161
55161
|
*/
|
|
55162
55162
|
|
|
55163
55163
|
|
|
55164
|
-
const __iconNode$
|
|
55164
|
+
const __iconNode$26 = [
|
|
55165
55165
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
55166
55166
|
[
|
|
55167
55167
|
"path",
|
|
@@ -55171,7 +55171,7 @@ const __iconNode$27 = [
|
|
|
55171
55171
|
}
|
|
55172
55172
|
]
|
|
55173
55173
|
];
|
|
55174
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
55174
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$26);
|
|
55175
55175
|
|
|
55176
55176
|
/**
|
|
55177
55177
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55181,7 +55181,7 @@ const BookOpen = createLucideIcon("book-open", __iconNode$27);
|
|
|
55181
55181
|
*/
|
|
55182
55182
|
|
|
55183
55183
|
|
|
55184
|
-
const __iconNode$
|
|
55184
|
+
const __iconNode$25 = [
|
|
55185
55185
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
55186
55186
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
55187
55187
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -55189,27 +55189,7 @@ const __iconNode$26 = [
|
|
|
55189
55189
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
55190
55190
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
55191
55191
|
];
|
|
55192
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
55193
|
-
|
|
55194
|
-
/**
|
|
55195
|
-
* @license lucide-react v0.528.0 - ISC
|
|
55196
|
-
*
|
|
55197
|
-
* This source code is licensed under the ISC license.
|
|
55198
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
55199
|
-
*/
|
|
55200
|
-
|
|
55201
|
-
|
|
55202
|
-
const __iconNode$25 = [
|
|
55203
|
-
["path", { d: "M12 18V5", key: "adv99a" }],
|
|
55204
|
-
["path", { d: "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", key: "1e3is1" }],
|
|
55205
|
-
["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", key: "1gqd8o" }],
|
|
55206
|
-
["path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77", key: "iwvgf7" }],
|
|
55207
|
-
["path", { d: "M18 18a4 4 0 0 0 2-7.464", key: "efp6ie" }],
|
|
55208
|
-
["path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517", key: "1gq6am" }],
|
|
55209
|
-
["path", { d: "M6 18a4 4 0 0 1-2-7.464", key: "k1g0md" }],
|
|
55210
|
-
["path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77", key: "q97ue3" }]
|
|
55211
|
-
];
|
|
55212
|
-
const Brain = createLucideIcon("brain", __iconNode$25);
|
|
55192
|
+
const Bot = createLucideIcon("bot", __iconNode$25);
|
|
55213
55193
|
|
|
55214
55194
|
/**
|
|
55215
55195
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -60597,7 +60577,6 @@ var analyticsAnalyticsAuditLogStats$3 = {
|
|
|
60597
60577
|
};
|
|
60598
60578
|
var analyticsAnalyticsCourseDetail$3 = {
|
|
60599
60579
|
goBackAriaLabel: "Go back to courses list",
|
|
60600
|
-
backToCourses: "Back to Courses",
|
|
60601
60580
|
activeEnrollments: "Active Enrollments",
|
|
60602
60581
|
completedEnrollments: "Completed Enrollments",
|
|
60603
60582
|
timeSpent: "Time Spent",
|
|
@@ -60619,7 +60598,11 @@ var analyticsAnalyticsCourseDetail$3 = {
|
|
|
60619
60598
|
paginationPreviousPage: "Go to previous page",
|
|
60620
60599
|
paginationGoToPage: "Go to page {page}",
|
|
60621
60600
|
paginationNextPage: "Go to next page",
|
|
60622
|
-
paginationLastPage: "Go to last page"
|
|
60601
|
+
paginationLastPage: "Go to last page",
|
|
60602
|
+
backToCourses: "Back to Courses",
|
|
60603
|
+
activeEnrollmentsDescription: "Learners enrolled in this course who have not finished it yet.",
|
|
60604
|
+
completedEnrollmentsDescription: "Learners who have finished every requirement of this course.",
|
|
60605
|
+
enrolledUsersDescription: "Every learner in this course with their progress, grade and last activity."
|
|
60623
60606
|
};
|
|
60624
60607
|
var analyticsAnalyticsCourses$3 = {
|
|
60625
60608
|
activeCourses: "Active Courses",
|
|
@@ -60644,7 +60627,13 @@ var analyticsAnalyticsCourses$3 = {
|
|
|
60644
60627
|
goToPage: "Go to page {page}",
|
|
60645
60628
|
goToNextPage: "Go to next page",
|
|
60646
60629
|
goToLastPage: "Go to last page",
|
|
60647
|
-
noCoursesAvailable: "No courses available"
|
|
60630
|
+
noCoursesAvailable: "No courses available",
|
|
60631
|
+
activeCoursesDescription: "Courses that currently have learners enrolled and progressing.",
|
|
60632
|
+
totalCoursesDescription: "All courses published on this tenant, active or not.",
|
|
60633
|
+
enrollmentsDescription: "Total enrollments recorded across every course.",
|
|
60634
|
+
totalLearnersDescription: "Distinct learners enrolled in at least one course.",
|
|
60635
|
+
courseOvertimeDescription: "Time learners spent in courses over the selected period.",
|
|
60636
|
+
coursesTableDescription: "Every course with its ID and enrollment count. Select a row to open its detail view."
|
|
60648
60637
|
};
|
|
60649
60638
|
var analyticsAnalyticsFinancialStats$3 = {
|
|
60650
60639
|
weeklyCosts: "Weekly Costs",
|
|
@@ -60672,7 +60661,14 @@ var analyticsAnalyticsFinancialStats$3 = {
|
|
|
60672
60661
|
goToPreviousPage: "Go to previous page",
|
|
60673
60662
|
goToNextPage: "Go to next page",
|
|
60674
60663
|
goToLastPage: "Go to last page",
|
|
60675
|
-
paginationShowing: "Showing {from} to {to} of {total} results"
|
|
60664
|
+
paginationShowing: "Showing {from} to {to} of {total} results",
|
|
60665
|
+
weeklyCostsDescription: "Model usage cost for the past week, compared with the week before.",
|
|
60666
|
+
monthlyCostsDescription: "Model usage cost for the past month, compared with the month before.",
|
|
60667
|
+
totalCostsDescription: "All model usage cost accumulated on this tenant to date.",
|
|
60668
|
+
costPerDayDescription: "Daily model spend, so you can see how cost tracks with usage.",
|
|
60669
|
+
costByProviderDescription: "How your spend is split across the model providers your agents use.",
|
|
60670
|
+
costByLLMDescription: "How your spend is split across individual models, showing which ones cost the most.",
|
|
60671
|
+
costPerUserDescription: "Spend attributed to each user, with their session count and last activity."
|
|
60676
60672
|
};
|
|
60677
60673
|
var analyticsAnalyticsMemoryStats$3 = {
|
|
60678
60674
|
noPermission: "You do not have permission to view user memories.",
|
|
@@ -60703,7 +60699,8 @@ var analyticsAnalyticsMemoryStats$3 = {
|
|
|
60703
60699
|
colMemory: "MEMORY",
|
|
60704
60700
|
colAgent: "AGENT",
|
|
60705
60701
|
colCategory: "CATEGORY",
|
|
60706
|
-
colCaptured: "CAPTURED"
|
|
60702
|
+
colCaptured: "CAPTURED",
|
|
60703
|
+
byCategoryDescription: "How captured memories are distributed across categories for the current filters."
|
|
60707
60704
|
};
|
|
60708
60705
|
var analyticsAnalyticsMonetizationStats$3 = {
|
|
60709
60706
|
totalRevenue: "Total Revenue",
|
|
@@ -60743,7 +60740,15 @@ var analyticsAnalyticsMonetizationStats$3 = {
|
|
|
60743
60740
|
activePricesCount: "{count} active",
|
|
60744
60741
|
statusActive: "Active",
|
|
60745
60742
|
statusDisabled: "Disabled",
|
|
60746
|
-
paywallCountTotal: "{count} item{plural} total"
|
|
60743
|
+
paywallCountTotal: "{count} item{plural} total",
|
|
60744
|
+
totalRevenueDescription: "Gross revenue collected from all completed sales.",
|
|
60745
|
+
totalSalesDescription: "Number of completed purchases across all paywalled items.",
|
|
60746
|
+
activePaywallsDescription: "Paywalls currently configured and enabled on this tenant.",
|
|
60747
|
+
totalSubscribersDescription: "People holding a subscription, counted across every status.",
|
|
60748
|
+
subscribersByStatusDescription: "How subscribers are split across active, trialing, canceled and past-due states.",
|
|
60749
|
+
paywallsByTypeDescription: "How your paywalls are split across the item types they protect, such as agents and courses.",
|
|
60750
|
+
subscribersTableDescription: "Every subscriber with the item, plan, amount and status of their subscription.",
|
|
60751
|
+
paywallsTableDescription: "Every configured paywall with its type, prices and whether it is currently active."
|
|
60747
60752
|
};
|
|
60748
60753
|
var analyticsAnalyticsOverview$3 = {
|
|
60749
60754
|
messages: "Messages",
|
|
@@ -60756,11 +60761,17 @@ var analyticsAnalyticsOverview$3 = {
|
|
|
60756
60761
|
topicDetailsFor: "Topic details for {label}",
|
|
60757
60762
|
messagesLabel: "Messages:",
|
|
60758
60763
|
activeUsersFor: "Active users for {label}",
|
|
60759
|
-
activeUsersLabel: "Active Users:"
|
|
60764
|
+
activeUsersLabel: "Active Users:",
|
|
60765
|
+
messagesDescription: "Total messages exchanged between users and your agents in the selected period.",
|
|
60766
|
+
activeUsersDescription: "Unique users who interacted with an agent in the selected period.",
|
|
60767
|
+
topicsDescription: "Distinct subjects your agents were asked about in the selected period.",
|
|
60768
|
+
conversationsDescription: "Number of separate conversation threads started in the selected period.",
|
|
60769
|
+
sessionsChartDescription: "Sessions started over time, so you can spot usage peaks and dips.",
|
|
60770
|
+
topicsChartDescription: "The most discussed topics, ranked by how many messages each one generated.",
|
|
60771
|
+
activeUsersChartDescription: "Unique active users per day, showing how engagement changes over time."
|
|
60760
60772
|
};
|
|
60761
60773
|
var analyticsAnalyticsProgramDetail$3 = {
|
|
60762
60774
|
backAriaLabel: "Go back to programs list",
|
|
60763
|
-
backButton: "Back to Programs",
|
|
60764
60775
|
statActiveUsers: "Active Users",
|
|
60765
60776
|
statEnrollments: "Enrollments",
|
|
60766
60777
|
statTimeSpent: "Time Spent",
|
|
@@ -60785,7 +60796,12 @@ var analyticsAnalyticsProgramDetail$3 = {
|
|
|
60785
60796
|
paginationPreviousPage: "Go to previous page",
|
|
60786
60797
|
paginationGoToPage: "Go to page {page}",
|
|
60787
60798
|
paginationNextPage: "Go to next page",
|
|
60788
|
-
paginationLastPage: "Go to last page"
|
|
60799
|
+
paginationLastPage: "Go to last page",
|
|
60800
|
+
backButton: "Back to Programs",
|
|
60801
|
+
statTotalEnrollmentsDescription: "All learners ever enrolled in this program.",
|
|
60802
|
+
statActiveEnrollmentsDescription: "Learners enrolled in this program who have not finished it yet.",
|
|
60803
|
+
statCompletedEnrollmentsDescription: "Learners who have finished every requirement of this program.",
|
|
60804
|
+
enrolledUsersDescription: "Every learner in this program with their progress, grade and last activity."
|
|
60789
60805
|
};
|
|
60790
60806
|
var analyticsAnalyticsPrograms$3 = {
|
|
60791
60807
|
activePrograms: "Active Programs",
|
|
@@ -60809,7 +60825,13 @@ var analyticsAnalyticsPrograms$3 = {
|
|
|
60809
60825
|
goToPage: "Go to page {page}",
|
|
60810
60826
|
goToNextPage: "Go to next page",
|
|
60811
60827
|
goToLastPage: "Go to last page",
|
|
60812
|
-
noProgramsAvailable: "No programs available"
|
|
60828
|
+
noProgramsAvailable: "No programs available",
|
|
60829
|
+
activeProgramsDescription: "Programs that currently have learners enrolled and progressing.",
|
|
60830
|
+
totalProgramsDescription: "All programs published on this tenant, active or not.",
|
|
60831
|
+
enrollmentsDescription: "Total enrollments recorded across every program.",
|
|
60832
|
+
totalLearnersDescription: "Distinct learners enrolled in at least one program.",
|
|
60833
|
+
programOvertimeDescription: "Time learners spent in programs over the selected period.",
|
|
60834
|
+
programsTableDescription: "Every program with its ID. Select a row to open its detail view."
|
|
60813
60835
|
};
|
|
60814
60836
|
var analyticsAnalyticsReports$3 = {
|
|
60815
60837
|
failedToLoadReportForEditing: "Failed to load report for editing. Opening download instead.",
|
|
@@ -60851,7 +60873,13 @@ var analyticsAnalyticsTopicsStats$3 = {
|
|
|
60851
60873
|
outOfFive: "/ 5",
|
|
60852
60874
|
topicsDetails: "Topics Details",
|
|
60853
60875
|
topicDetailsForLabel: "Topic details for {label}",
|
|
60854
|
-
messagesColon: "Messages:"
|
|
60876
|
+
messagesColon: "Messages:",
|
|
60877
|
+
topicsDescription: "Distinct subjects raised in conversations this month.",
|
|
60878
|
+
conversationsDescription: "Conversation threads started this month.",
|
|
60879
|
+
messagesDescription: "Messages exchanged this month across all conversations.",
|
|
60880
|
+
conversationsChartDescription: "Conversations started over time, so you can track engagement trends.",
|
|
60881
|
+
averageRatingDescription: "Average user rating of agent responses over time, on a scale of 1 to 5.",
|
|
60882
|
+
topicsDetailsDescription: "Topics ranked by message volume, showing what users ask about most."
|
|
60855
60883
|
};
|
|
60856
60884
|
var analyticsAnalyticsTranscriptsStats$3 = {
|
|
60857
60885
|
justNow: "Just now",
|
|
@@ -60906,7 +60934,10 @@ var analyticsAnalyticsTranscriptsStats$3 = {
|
|
|
60906
60934
|
srGoToLastPage: "Go to last page",
|
|
60907
60935
|
none: "none",
|
|
60908
60936
|
loading: "Loading...",
|
|
60909
|
-
paginationInfo: "Page {currentPage} of {totalPages} • {totalRecords} total records"
|
|
60937
|
+
paginationInfo: "Page {currentPage} of {totalPages} • {totalRecords} total records",
|
|
60938
|
+
avgMessagesPerConversationDescription: "How many messages a typical conversation contains, indicating how deep exchanges go.",
|
|
60939
|
+
avgCostPerConversationDescription: "What a typical conversation costs in model usage.",
|
|
60940
|
+
avgRatingDescription: "Average rating users gave their conversations, on a scale of 1 to 5."
|
|
60910
60941
|
};
|
|
60911
60942
|
var analyticsAnalyticsUsersStats$3 = {
|
|
60912
60943
|
usersLoggedInNow: "Users logged in right now",
|
|
@@ -60934,7 +60965,13 @@ var analyticsAnalyticsUsersStats$3 = {
|
|
|
60934
60965
|
justNow: "Just now",
|
|
60935
60966
|
minutesAgo: "{count} min ago",
|
|
60936
60967
|
hoursAgo: "{count} hours ago",
|
|
60937
|
-
daysAgo: "{count} days ago"
|
|
60968
|
+
daysAgo: "{count} days ago",
|
|
60969
|
+
usersLoggedInNowDescription: "Users with a session open right now.",
|
|
60970
|
+
usersLoggedInPast30DaysDescription: "Unique users who signed in at least once in the last 30 days.",
|
|
60971
|
+
totalRegisteredUsersDescription: "Every user account registered on this tenant, active or not.",
|
|
60972
|
+
activeUsersChartDescription: "Unique active users per day, showing how engagement changes over time.",
|
|
60973
|
+
accessTimesDescription: "When users are most active, broken down by day of the week and hour of the day.",
|
|
60974
|
+
userDetailsDescription: "Per-user breakdown of message volume and last activity. Search to find a specific user."
|
|
60938
60975
|
};
|
|
60939
60976
|
var analyticsGroupsFilterDropdown$3 = {
|
|
60940
60977
|
filterByGroups: "Filter by Groups",
|
|
@@ -61640,7 +61677,10 @@ var clawSandboxAgentSkills$3 = {
|
|
|
61640
61677
|
tabsAriaLabel: "Skills",
|
|
61641
61678
|
tabAgentSkills: "Agent Skills",
|
|
61642
61679
|
tabAvailableSkills: "Available Skills",
|
|
61643
|
-
addedBadge: "Added"
|
|
61680
|
+
addedBadge: "Added",
|
|
61681
|
+
effectiveHeading: "This agent's skills",
|
|
61682
|
+
catalogHeading: "Available skills",
|
|
61683
|
+
resourcesItemLabel: "resources"
|
|
61644
61684
|
};
|
|
61645
61685
|
var clawSandboxHelpers$3 = {
|
|
61646
61686
|
unknown: "Unknown",
|
|
@@ -66918,7 +66958,6 @@ var analyticsAnalyticsAuditLogStats$2 = {
|
|
|
66918
66958
|
};
|
|
66919
66959
|
var analyticsAnalyticsCourseDetail$2 = {
|
|
66920
66960
|
goBackAriaLabel: "Retour à la liste des cours",
|
|
66921
|
-
backToCourses: "Retour aux cours",
|
|
66922
66961
|
activeEnrollments: "Inscriptions actives",
|
|
66923
66962
|
completedEnrollments: "Inscriptions terminées",
|
|
66924
66963
|
timeSpent: "Temps passé",
|
|
@@ -66940,7 +66979,11 @@ var analyticsAnalyticsCourseDetail$2 = {
|
|
|
66940
66979
|
paginationPreviousPage: "Aller à la page précédente",
|
|
66941
66980
|
paginationGoToPage: "Aller à la page {page}",
|
|
66942
66981
|
paginationNextPage: "Aller à la page suivante",
|
|
66943
|
-
paginationLastPage: "Aller à la dernière page"
|
|
66982
|
+
paginationLastPage: "Aller à la dernière page",
|
|
66983
|
+
backToCourses: "Retour aux cours",
|
|
66984
|
+
activeEnrollmentsDescription: "Apprenants inscrits à ce cours qui ne l’ont pas encore terminé.",
|
|
66985
|
+
completedEnrollmentsDescription: "Apprenants ayant satisfait à toutes les exigences de ce cours.",
|
|
66986
|
+
enrolledUsersDescription: "Chaque apprenant de ce cours avec sa progression, sa note et sa dernière activité."
|
|
66944
66987
|
};
|
|
66945
66988
|
var analyticsAnalyticsCourses$2 = {
|
|
66946
66989
|
activeCourses: "Cours actifs",
|
|
@@ -66965,7 +67008,13 @@ var analyticsAnalyticsCourses$2 = {
|
|
|
66965
67008
|
goToPage: "Aller à la page {page}",
|
|
66966
67009
|
goToNextPage: "Aller à la page suivante",
|
|
66967
67010
|
goToLastPage: "Aller à la dernière page",
|
|
66968
|
-
noCoursesAvailable: "Aucun cours disponible"
|
|
67011
|
+
noCoursesAvailable: "Aucun cours disponible",
|
|
67012
|
+
activeCoursesDescription: "Cours ayant actuellement des apprenants inscrits et en progression.",
|
|
67013
|
+
totalCoursesDescription: "Tous les cours publiés sur ce tenant, actifs ou non.",
|
|
67014
|
+
enrollmentsDescription: "Nombre total d’inscriptions enregistrées sur l’ensemble des cours.",
|
|
67015
|
+
totalLearnersDescription: "Apprenants distincts inscrits à au moins un cours.",
|
|
67016
|
+
courseOvertimeDescription: "Temps passé par les apprenants dans les cours sur la période sélectionnée.",
|
|
67017
|
+
coursesTableDescription: "Chaque cours avec son ID et son nombre d’inscriptions. Sélectionnez une ligne pour ouvrir sa vue détaillée."
|
|
66969
67018
|
};
|
|
66970
67019
|
var analyticsAnalyticsFinancialStats$2 = {
|
|
66971
67020
|
weeklyCosts: "Coûts hebdomadaires",
|
|
@@ -66993,7 +67042,14 @@ var analyticsAnalyticsFinancialStats$2 = {
|
|
|
66993
67042
|
goToPreviousPage: "Aller à la page précédente",
|
|
66994
67043
|
goToNextPage: "Aller à la page suivante",
|
|
66995
67044
|
goToLastPage: "Aller à la dernière page",
|
|
66996
|
-
paginationShowing: "Affichage de {from} à {to} sur {total} résultats"
|
|
67045
|
+
paginationShowing: "Affichage de {from} à {to} sur {total} résultats",
|
|
67046
|
+
weeklyCostsDescription: "Coût d’utilisation des modèles sur la dernière semaine, comparé à la semaine précédente.",
|
|
67047
|
+
monthlyCostsDescription: "Coût d’utilisation des modèles sur le dernier mois, comparé au mois précédent.",
|
|
67048
|
+
totalCostsDescription: "Coût total d’utilisation des modèles cumulé sur ce tenant à ce jour.",
|
|
67049
|
+
costPerDayDescription: "Dépense quotidienne en modèles, pour voir comment le coût suit l’utilisation.",
|
|
67050
|
+
costByProviderDescription: "Répartition de votre dépense entre les fournisseurs de modèles utilisés par vos agents.",
|
|
67051
|
+
costByLLMDescription: "Répartition de votre dépense entre les différents modèles, pour identifier les plus coûteux.",
|
|
67052
|
+
costPerUserDescription: "Dépense attribuée à chaque utilisateur, avec son nombre de sessions et sa dernière activité."
|
|
66997
67053
|
};
|
|
66998
67054
|
var analyticsAnalyticsMemoryStats$2 = {
|
|
66999
67055
|
noPermission: "Vous n'avez pas l'autorisation de consulter les mémoires des utilisateurs.",
|
|
@@ -67024,7 +67080,8 @@ var analyticsAnalyticsMemoryStats$2 = {
|
|
|
67024
67080
|
colMemory: "MÉMOIRE",
|
|
67025
67081
|
colAgent: "AGENT",
|
|
67026
67082
|
colCategory: "CATÉGORIE",
|
|
67027
|
-
colCaptured: "CAPTURÉE"
|
|
67083
|
+
colCaptured: "CAPTURÉE",
|
|
67084
|
+
byCategoryDescription: "Répartition des mémoires capturées par catégorie selon les filtres actuels."
|
|
67028
67085
|
};
|
|
67029
67086
|
var analyticsAnalyticsMonetizationStats$2 = {
|
|
67030
67087
|
totalRevenue: "Revenu total",
|
|
@@ -67064,7 +67121,15 @@ var analyticsAnalyticsMonetizationStats$2 = {
|
|
|
67064
67121
|
activePricesCount: "{count} actif",
|
|
67065
67122
|
statusActive: "Actif",
|
|
67066
67123
|
statusDisabled: "Désactivé",
|
|
67067
|
-
paywallCountTotal: "{count} élément{plural} au total"
|
|
67124
|
+
paywallCountTotal: "{count} élément{plural} au total",
|
|
67125
|
+
totalRevenueDescription: "Chiffre d’affaires brut généré par toutes les ventes finalisées.",
|
|
67126
|
+
totalSalesDescription: "Nombre d’achats finalisés sur l’ensemble des contenus payants.",
|
|
67127
|
+
activePaywallsDescription: "Paywalls actuellement configurés et activés sur ce tenant.",
|
|
67128
|
+
totalSubscribersDescription: "Personnes détenant un abonnement, tous statuts confondus.",
|
|
67129
|
+
subscribersByStatusDescription: "Répartition des abonnés entre les statuts actif, essai, annulé et impayé.",
|
|
67130
|
+
paywallsByTypeDescription: "Répartition de vos paywalls selon le type de contenu protégé, par exemple agents et cours.",
|
|
67131
|
+
subscribersTableDescription: "Chaque abonné avec le contenu, le forfait, le montant et le statut de son abonnement.",
|
|
67132
|
+
paywallsTableDescription: "Chaque paywall configuré avec son type, ses tarifs et son état d’activation."
|
|
67068
67133
|
};
|
|
67069
67134
|
var analyticsAnalyticsOverview$2 = {
|
|
67070
67135
|
messages: "Messages",
|
|
@@ -67077,11 +67142,17 @@ var analyticsAnalyticsOverview$2 = {
|
|
|
67077
67142
|
topicDetailsFor: "Détails du sujet pour {label}",
|
|
67078
67143
|
messagesLabel: "Messages :",
|
|
67079
67144
|
activeUsersFor: "Utilisateurs actifs pour {label}",
|
|
67080
|
-
activeUsersLabel: "Utilisateurs actifs :"
|
|
67145
|
+
activeUsersLabel: "Utilisateurs actifs :",
|
|
67146
|
+
messagesDescription: "Nombre total de messages échangés entre les utilisateurs et vos agents sur la période sélectionnée.",
|
|
67147
|
+
activeUsersDescription: "Utilisateurs uniques ayant interagi avec un agent sur la période sélectionnée.",
|
|
67148
|
+
topicsDescription: "Sujets distincts abordés avec vos agents sur la période sélectionnée.",
|
|
67149
|
+
conversationsDescription: "Nombre de fils de conversation distincts démarrés sur la période sélectionnée.",
|
|
67150
|
+
sessionsChartDescription: "Sessions démarrées au fil du temps, pour repérer les pics et les creux d’utilisation.",
|
|
67151
|
+
topicsChartDescription: "Les sujets les plus abordés, classés selon le nombre de messages générés.",
|
|
67152
|
+
activeUsersChartDescription: "Utilisateurs actifs uniques par jour, pour suivre l’évolution de l’engagement."
|
|
67081
67153
|
};
|
|
67082
67154
|
var analyticsAnalyticsProgramDetail$2 = {
|
|
67083
67155
|
backAriaLabel: "Retour à la liste des programmes",
|
|
67084
|
-
backButton: "Retour aux programmes",
|
|
67085
67156
|
statActiveUsers: "Utilisateurs actifs",
|
|
67086
67157
|
statEnrollments: "Inscriptions",
|
|
67087
67158
|
statTimeSpent: "Temps passé",
|
|
@@ -67106,7 +67177,12 @@ var analyticsAnalyticsProgramDetail$2 = {
|
|
|
67106
67177
|
paginationPreviousPage: "Aller à la page précédente",
|
|
67107
67178
|
paginationGoToPage: "Aller à la page {page}",
|
|
67108
67179
|
paginationNextPage: "Aller à la page suivante",
|
|
67109
|
-
paginationLastPage: "Aller à la dernière page"
|
|
67180
|
+
paginationLastPage: "Aller à la dernière page",
|
|
67181
|
+
backButton: "Retour aux programmes",
|
|
67182
|
+
statTotalEnrollmentsDescription: "Tous les apprenants jamais inscrits à ce programme.",
|
|
67183
|
+
statActiveEnrollmentsDescription: "Apprenants inscrits à ce programme qui ne l’ont pas encore terminé.",
|
|
67184
|
+
statCompletedEnrollmentsDescription: "Apprenants ayant satisfait à toutes les exigences de ce programme.",
|
|
67185
|
+
enrolledUsersDescription: "Chaque apprenant de ce programme avec sa progression, sa note et sa dernière activité."
|
|
67110
67186
|
};
|
|
67111
67187
|
var analyticsAnalyticsPrograms$2 = {
|
|
67112
67188
|
activePrograms: "Programmes actifs",
|
|
@@ -67130,7 +67206,13 @@ var analyticsAnalyticsPrograms$2 = {
|
|
|
67130
67206
|
goToPage: "Aller à la page {page}",
|
|
67131
67207
|
goToNextPage: "Aller à la page suivante",
|
|
67132
67208
|
goToLastPage: "Aller à la dernière page",
|
|
67133
|
-
noProgramsAvailable: "Aucun programme disponible"
|
|
67209
|
+
noProgramsAvailable: "Aucun programme disponible",
|
|
67210
|
+
activeProgramsDescription: "Programmes ayant actuellement des apprenants inscrits et en progression.",
|
|
67211
|
+
totalProgramsDescription: "Tous les programmes publiés sur ce tenant, actifs ou non.",
|
|
67212
|
+
enrollmentsDescription: "Nombre total d’inscriptions enregistrées sur l’ensemble des programmes.",
|
|
67213
|
+
totalLearnersDescription: "Apprenants distincts inscrits à au moins un programme.",
|
|
67214
|
+
programOvertimeDescription: "Temps passé par les apprenants dans les programmes sur la période sélectionnée.",
|
|
67215
|
+
programsTableDescription: "Chaque programme avec son ID. Sélectionnez une ligne pour ouvrir sa vue détaillée."
|
|
67134
67216
|
};
|
|
67135
67217
|
var analyticsAnalyticsReports$2 = {
|
|
67136
67218
|
failedToLoadReportForEditing: "Impossible de charger le rapport pour modification. Téléchargement en cours.",
|
|
@@ -67172,7 +67254,13 @@ var analyticsAnalyticsTopicsStats$2 = {
|
|
|
67172
67254
|
outOfFive: "/ 5",
|
|
67173
67255
|
topicsDetails: "Détails des sujets",
|
|
67174
67256
|
topicDetailsForLabel: "Détails du sujet pour {label}",
|
|
67175
|
-
messagesColon: "Messages :"
|
|
67257
|
+
messagesColon: "Messages :",
|
|
67258
|
+
topicsDescription: "Sujets distincts abordés dans les conversations ce mois-ci.",
|
|
67259
|
+
conversationsDescription: "Fils de conversation démarrés ce mois-ci.",
|
|
67260
|
+
messagesDescription: "Messages échangés ce mois-ci, toutes conversations confondues.",
|
|
67261
|
+
conversationsChartDescription: "Conversations démarrées au fil du temps, pour suivre les tendances d’engagement.",
|
|
67262
|
+
averageRatingDescription: "Note moyenne attribuée par les utilisateurs aux réponses de l’agent au fil du temps, sur une échelle de 1 à 5.",
|
|
67263
|
+
topicsDetailsDescription: "Sujets classés par volume de messages, pour voir ce que les utilisateurs demandent le plus."
|
|
67176
67264
|
};
|
|
67177
67265
|
var analyticsAnalyticsTranscriptsStats$2 = {
|
|
67178
67266
|
justNow: "À l'instant",
|
|
@@ -67227,7 +67315,10 @@ var analyticsAnalyticsTranscriptsStats$2 = {
|
|
|
67227
67315
|
srGoToLastPage: "Aller à la dernière page",
|
|
67228
67316
|
none: "aucune",
|
|
67229
67317
|
loading: "Chargement...",
|
|
67230
|
-
paginationInfo: "Page {currentPage} sur {totalPages} • {totalRecords} enregistrements au total"
|
|
67318
|
+
paginationInfo: "Page {currentPage} sur {totalPages} • {totalRecords} enregistrements au total",
|
|
67319
|
+
avgMessagesPerConversationDescription: "Nombre de messages d’une conversation type, révélant la profondeur des échanges.",
|
|
67320
|
+
avgCostPerConversationDescription: "Coût d’utilisation des modèles pour une conversation type.",
|
|
67321
|
+
avgRatingDescription: "Note moyenne attribuée par les utilisateurs à leurs conversations, sur une échelle de 1 à 5."
|
|
67231
67322
|
};
|
|
67232
67323
|
var analyticsAnalyticsUsersStats$2 = {
|
|
67233
67324
|
usersLoggedInNow: "Utilisateurs connectés en ce moment",
|
|
@@ -67255,7 +67346,13 @@ var analyticsAnalyticsUsersStats$2 = {
|
|
|
67255
67346
|
justNow: "À l'instant",
|
|
67256
67347
|
minutesAgo: "il y a {count} min",
|
|
67257
67348
|
hoursAgo: "il y a {count} h",
|
|
67258
|
-
daysAgo: "il y a {count} j"
|
|
67349
|
+
daysAgo: "il y a {count} j",
|
|
67350
|
+
usersLoggedInNowDescription: "Utilisateurs ayant une session ouverte en ce moment.",
|
|
67351
|
+
usersLoggedInPast30DaysDescription: "Utilisateurs uniques s’étant connectés au moins une fois au cours des 30 derniers jours.",
|
|
67352
|
+
totalRegisteredUsersDescription: "Tous les comptes utilisateur enregistrés sur ce tenant, actifs ou non.",
|
|
67353
|
+
activeUsersChartDescription: "Utilisateurs actifs uniques par jour, pour suivre l’évolution de l’engagement.",
|
|
67354
|
+
accessTimesDescription: "Les moments où les utilisateurs sont les plus actifs, par jour de la semaine et par heure.",
|
|
67355
|
+
userDetailsDescription: "Détail par utilisateur du volume de messages et de la dernière activité. Recherchez pour trouver un utilisateur précis."
|
|
67259
67356
|
};
|
|
67260
67357
|
var analyticsGroupsFilterDropdown$2 = {
|
|
67261
67358
|
filterByGroups: "Filtrer par groupes",
|
|
@@ -68127,7 +68224,10 @@ var clawSandboxAgentSkills$2 = {
|
|
|
68127
68224
|
tabsAriaLabel: "Compétences",
|
|
68128
68225
|
tabAgentSkills: "Compétences de l'agent",
|
|
68129
68226
|
tabAvailableSkills: "Compétences disponibles",
|
|
68130
|
-
addedBadge: "Ajoutée"
|
|
68227
|
+
addedBadge: "Ajoutée",
|
|
68228
|
+
effectiveHeading: "Compétences de cet agent",
|
|
68229
|
+
catalogHeading: "Compétences disponibles",
|
|
68230
|
+
resourcesItemLabel: "ressources"
|
|
68131
68231
|
};
|
|
68132
68232
|
var clawSandboxHelpers$2 = {
|
|
68133
68233
|
unknown: "Inconnu",
|
|
@@ -73239,7 +73339,6 @@ var analyticsAnalyticsAuditLogStats$1 = {
|
|
|
73239
73339
|
};
|
|
73240
73340
|
var analyticsAnalyticsCourseDetail$1 = {
|
|
73241
73341
|
goBackAriaLabel: "Volver a la lista de cursos",
|
|
73242
|
-
backToCourses: "Volver a los cursos",
|
|
73243
73342
|
activeEnrollments: "Inscripciones activas",
|
|
73244
73343
|
completedEnrollments: "Inscripciones completadas",
|
|
73245
73344
|
timeSpent: "Tiempo invertido",
|
|
@@ -73261,7 +73360,11 @@ var analyticsAnalyticsCourseDetail$1 = {
|
|
|
73261
73360
|
paginationPreviousPage: "Ir a la página anterior",
|
|
73262
73361
|
paginationGoToPage: "Ir a la página {page}",
|
|
73263
73362
|
paginationNextPage: "Ir a la página siguiente",
|
|
73264
|
-
paginationLastPage: "Ir a la última página"
|
|
73363
|
+
paginationLastPage: "Ir a la última página",
|
|
73364
|
+
backToCourses: "Volver a los cursos",
|
|
73365
|
+
activeEnrollmentsDescription: "Estudiantes inscritos en este curso que aún no lo han terminado.",
|
|
73366
|
+
completedEnrollmentsDescription: "Estudiantes que han completado todos los requisitos de este curso.",
|
|
73367
|
+
enrolledUsersDescription: "Cada estudiante de este curso con su progreso, su calificación y su última actividad."
|
|
73265
73368
|
};
|
|
73266
73369
|
var analyticsAnalyticsCourses$1 = {
|
|
73267
73370
|
activeCourses: "Cursos activos",
|
|
@@ -73286,7 +73389,13 @@ var analyticsAnalyticsCourses$1 = {
|
|
|
73286
73389
|
goToPage: "Ir a la página {page}",
|
|
73287
73390
|
goToNextPage: "Ir a la página siguiente",
|
|
73288
73391
|
goToLastPage: "Ir a la última página",
|
|
73289
|
-
noCoursesAvailable: "No hay cursos disponibles"
|
|
73392
|
+
noCoursesAvailable: "No hay cursos disponibles",
|
|
73393
|
+
activeCoursesDescription: "Cursos que actualmente tienen estudiantes inscritos y avanzando.",
|
|
73394
|
+
totalCoursesDescription: "Todos los cursos publicados en este tenant, activos o no.",
|
|
73395
|
+
enrollmentsDescription: "Total de inscripciones registradas en todos los cursos.",
|
|
73396
|
+
totalLearnersDescription: "Estudiantes distintos inscritos en al menos un curso.",
|
|
73397
|
+
courseOvertimeDescription: "Tiempo que los estudiantes dedicaron a los cursos durante el periodo seleccionado.",
|
|
73398
|
+
coursesTableDescription: "Cada curso con su ID y su número de inscripciones. Selecciona una fila para abrir su vista de detalle."
|
|
73290
73399
|
};
|
|
73291
73400
|
var analyticsAnalyticsFinancialStats$1 = {
|
|
73292
73401
|
weeklyCosts: "Costos semanales",
|
|
@@ -73314,7 +73423,14 @@ var analyticsAnalyticsFinancialStats$1 = {
|
|
|
73314
73423
|
goToPreviousPage: "Ir a la página anterior",
|
|
73315
73424
|
goToNextPage: "Ir a la página siguiente",
|
|
73316
73425
|
goToLastPage: "Ir a la última página",
|
|
73317
|
-
paginationShowing: "Mostrando {from} a {to} de {total} resultados"
|
|
73426
|
+
paginationShowing: "Mostrando {from} a {to} de {total} resultados",
|
|
73427
|
+
weeklyCostsDescription: "Coste de uso de modelos de la última semana, comparado con la semana anterior.",
|
|
73428
|
+
monthlyCostsDescription: "Coste de uso de modelos del último mes, comparado con el mes anterior.",
|
|
73429
|
+
totalCostsDescription: "Todo el coste de uso de modelos acumulado en este tenant hasta la fecha.",
|
|
73430
|
+
costPerDayDescription: "Gasto diario en modelos, para ver cómo evoluciona el coste con el uso.",
|
|
73431
|
+
costByProviderDescription: "Cómo se reparte tu gasto entre los proveedores de modelos que usan tus agentes.",
|
|
73432
|
+
costByLLMDescription: "Cómo se reparte tu gasto entre modelos concretos, para ver cuáles cuestan más.",
|
|
73433
|
+
costPerUserDescription: "Gasto atribuido a cada usuario, con su número de sesiones y su última actividad."
|
|
73318
73434
|
};
|
|
73319
73435
|
var analyticsAnalyticsMemoryStats$1 = {
|
|
73320
73436
|
noPermission: "No tienes permiso para ver los recuerdos de los usuarios.",
|
|
@@ -73345,7 +73461,8 @@ var analyticsAnalyticsMemoryStats$1 = {
|
|
|
73345
73461
|
colMemory: "RECUERDO",
|
|
73346
73462
|
colAgent: "AGENTE",
|
|
73347
73463
|
colCategory: "CATEGORÍA",
|
|
73348
|
-
colCaptured: "CAPTURADO"
|
|
73464
|
+
colCaptured: "CAPTURADO",
|
|
73465
|
+
byCategoryDescription: "Cómo se distribuyen las memorias capturadas entre categorías según los filtros actuales."
|
|
73349
73466
|
};
|
|
73350
73467
|
var analyticsAnalyticsMonetizationStats$1 = {
|
|
73351
73468
|
totalRevenue: "Ingresos totales",
|
|
@@ -73385,7 +73502,15 @@ var analyticsAnalyticsMonetizationStats$1 = {
|
|
|
73385
73502
|
activePricesCount: "{count} activo",
|
|
73386
73503
|
statusActive: "Activo",
|
|
73387
73504
|
statusDisabled: "Deshabilitado",
|
|
73388
|
-
paywallCountTotal: "{count} elemento{plural} en total"
|
|
73505
|
+
paywallCountTotal: "{count} elemento{plural} en total",
|
|
73506
|
+
totalRevenueDescription: "Ingresos brutos obtenidos de todas las ventas completadas.",
|
|
73507
|
+
totalSalesDescription: "Número de compras completadas en todos los elementos de pago.",
|
|
73508
|
+
activePaywallsDescription: "Muros de pago configurados y activos actualmente en este tenant.",
|
|
73509
|
+
totalSubscribersDescription: "Personas con una suscripción, contadas en todos los estados.",
|
|
73510
|
+
subscribersByStatusDescription: "Cómo se reparten los suscriptores entre los estados activo, de prueba, cancelado y vencido.",
|
|
73511
|
+
paywallsByTypeDescription: "Cómo se reparten tus muros de pago entre los tipos de elementos que protegen, como agentes y cursos.",
|
|
73512
|
+
subscribersTableDescription: "Cada suscriptor con el elemento, el plan, el importe y el estado de su suscripción.",
|
|
73513
|
+
paywallsTableDescription: "Cada muro de pago configurado con su tipo, sus precios y si está activo actualmente."
|
|
73389
73514
|
};
|
|
73390
73515
|
var analyticsAnalyticsOverview$1 = {
|
|
73391
73516
|
messages: "Mensajes",
|
|
@@ -73398,11 +73523,17 @@ var analyticsAnalyticsOverview$1 = {
|
|
|
73398
73523
|
topicDetailsFor: "Detalles del tema para {label}",
|
|
73399
73524
|
messagesLabel: "Mensajes:",
|
|
73400
73525
|
activeUsersFor: "Usuarios activos para {label}",
|
|
73401
|
-
activeUsersLabel: "Usuarios activos:"
|
|
73526
|
+
activeUsersLabel: "Usuarios activos:",
|
|
73527
|
+
messagesDescription: "Total de mensajes intercambiados entre los usuarios y tus agentes en el periodo seleccionado.",
|
|
73528
|
+
activeUsersDescription: "Usuarios únicos que interactuaron con un agente en el periodo seleccionado.",
|
|
73529
|
+
topicsDescription: "Temas distintos sobre los que se consultó a tus agentes en el periodo seleccionado.",
|
|
73530
|
+
conversationsDescription: "Número de conversaciones independientes iniciadas en el periodo seleccionado.",
|
|
73531
|
+
sessionsChartDescription: "Sesiones iniciadas a lo largo del tiempo, para detectar picos y caídas de uso.",
|
|
73532
|
+
topicsChartDescription: "Los temas más tratados, ordenados por la cantidad de mensajes que generó cada uno.",
|
|
73533
|
+
activeUsersChartDescription: "Usuarios activos únicos por día, para ver cómo cambia la participación con el tiempo."
|
|
73402
73534
|
};
|
|
73403
73535
|
var analyticsAnalyticsProgramDetail$1 = {
|
|
73404
73536
|
backAriaLabel: "Volver a la lista de programas",
|
|
73405
|
-
backButton: "Volver a programas",
|
|
73406
73537
|
statActiveUsers: "Usuarios activos",
|
|
73407
73538
|
statEnrollments: "Inscripciones",
|
|
73408
73539
|
statTimeSpent: "Tiempo empleado",
|
|
@@ -73427,7 +73558,12 @@ var analyticsAnalyticsProgramDetail$1 = {
|
|
|
73427
73558
|
paginationPreviousPage: "Ir a la página anterior",
|
|
73428
73559
|
paginationGoToPage: "Ir a la página {page}",
|
|
73429
73560
|
paginationNextPage: "Ir a la página siguiente",
|
|
73430
|
-
paginationLastPage: "Ir a la última página"
|
|
73561
|
+
paginationLastPage: "Ir a la última página",
|
|
73562
|
+
backButton: "Volver a programas",
|
|
73563
|
+
statTotalEnrollmentsDescription: "Todos los estudiantes que se han inscrito alguna vez en este programa.",
|
|
73564
|
+
statActiveEnrollmentsDescription: "Estudiantes inscritos en este programa que aún no lo han terminado.",
|
|
73565
|
+
statCompletedEnrollmentsDescription: "Estudiantes que han completado todos los requisitos de este programa.",
|
|
73566
|
+
enrolledUsersDescription: "Cada estudiante de este programa con su progreso, su calificación y su última actividad."
|
|
73431
73567
|
};
|
|
73432
73568
|
var analyticsAnalyticsPrograms$1 = {
|
|
73433
73569
|
activePrograms: "Programas activos",
|
|
@@ -73451,7 +73587,13 @@ var analyticsAnalyticsPrograms$1 = {
|
|
|
73451
73587
|
goToPage: "Ir a la página {page}",
|
|
73452
73588
|
goToNextPage: "Ir a la página siguiente",
|
|
73453
73589
|
goToLastPage: "Ir a la última página",
|
|
73454
|
-
noProgramsAvailable: "No hay programas disponibles"
|
|
73590
|
+
noProgramsAvailable: "No hay programas disponibles",
|
|
73591
|
+
activeProgramsDescription: "Programas que actualmente tienen estudiantes inscritos y avanzando.",
|
|
73592
|
+
totalProgramsDescription: "Todos los programas publicados en este tenant, activos o no.",
|
|
73593
|
+
enrollmentsDescription: "Total de inscripciones registradas en todos los programas.",
|
|
73594
|
+
totalLearnersDescription: "Estudiantes distintos inscritos en al menos un programa.",
|
|
73595
|
+
programOvertimeDescription: "Tiempo que los estudiantes dedicaron a los programas durante el periodo seleccionado.",
|
|
73596
|
+
programsTableDescription: "Cada programa con su ID. Selecciona una fila para abrir su vista de detalle."
|
|
73455
73597
|
};
|
|
73456
73598
|
var analyticsAnalyticsReports$1 = {
|
|
73457
73599
|
failedToLoadReportForEditing: "No se pudo cargar el informe para editarlo. Abriendo descarga en su lugar.",
|
|
@@ -73493,7 +73635,13 @@ var analyticsAnalyticsTopicsStats$1 = {
|
|
|
73493
73635
|
outOfFive: "/ 5",
|
|
73494
73636
|
topicsDetails: "Detalles de temas",
|
|
73495
73637
|
topicDetailsForLabel: "Detalles del tema para {label}",
|
|
73496
|
-
messagesColon: "Mensajes:"
|
|
73638
|
+
messagesColon: "Mensajes:",
|
|
73639
|
+
topicsDescription: "Temas distintos planteados en las conversaciones de este mes.",
|
|
73640
|
+
conversationsDescription: "Conversaciones iniciadas este mes.",
|
|
73641
|
+
messagesDescription: "Mensajes intercambiados este mes en todas las conversaciones.",
|
|
73642
|
+
conversationsChartDescription: "Conversaciones iniciadas a lo largo del tiempo, para seguir las tendencias de participación.",
|
|
73643
|
+
averageRatingDescription: "Valoración media de los usuarios sobre las respuestas del agente a lo largo del tiempo, en una escala de 1 a 5.",
|
|
73644
|
+
topicsDetailsDescription: "Temas ordenados por volumen de mensajes, para ver qué consultan más los usuarios."
|
|
73497
73645
|
};
|
|
73498
73646
|
var analyticsAnalyticsTranscriptsStats$1 = {
|
|
73499
73647
|
justNow: "Ahora mismo",
|
|
@@ -73548,7 +73696,10 @@ var analyticsAnalyticsTranscriptsStats$1 = {
|
|
|
73548
73696
|
srGoToLastPage: "Ir a la última página",
|
|
73549
73697
|
none: "ninguna",
|
|
73550
73698
|
loading: "Cargando...",
|
|
73551
|
-
paginationInfo: "Página {currentPage} de {totalPages} • {totalRecords} registros en total"
|
|
73699
|
+
paginationInfo: "Página {currentPage} de {totalPages} • {totalRecords} registros en total",
|
|
73700
|
+
avgMessagesPerConversationDescription: "Cuántos mensajes contiene una conversación típica, lo que indica la profundidad de los intercambios.",
|
|
73701
|
+
avgCostPerConversationDescription: "Lo que cuesta una conversación típica en uso de modelos.",
|
|
73702
|
+
avgRatingDescription: "Valoración media que los usuarios dieron a sus conversaciones, en una escala de 1 a 5."
|
|
73552
73703
|
};
|
|
73553
73704
|
var analyticsAnalyticsUsersStats$1 = {
|
|
73554
73705
|
usersLoggedInNow: "Usuarios conectados ahora mismo",
|
|
@@ -73576,7 +73727,13 @@ var analyticsAnalyticsUsersStats$1 = {
|
|
|
73576
73727
|
justNow: "Ahora mismo",
|
|
73577
73728
|
minutesAgo: "hace {count} min",
|
|
73578
73729
|
hoursAgo: "hace {count} h",
|
|
73579
|
-
daysAgo: "hace {count} días"
|
|
73730
|
+
daysAgo: "hace {count} días",
|
|
73731
|
+
usersLoggedInNowDescription: "Usuarios con una sesión abierta en este momento.",
|
|
73732
|
+
usersLoggedInPast30DaysDescription: "Usuarios únicos que iniciaron sesión al menos una vez en los últimos 30 días.",
|
|
73733
|
+
totalRegisteredUsersDescription: "Todas las cuentas de usuario registradas en este tenant, activas o no.",
|
|
73734
|
+
activeUsersChartDescription: "Usuarios activos únicos por día, para ver cómo cambia la participación con el tiempo.",
|
|
73735
|
+
accessTimesDescription: "Cuándo son más activos los usuarios, desglosado por día de la semana y hora del día.",
|
|
73736
|
+
userDetailsDescription: "Desglose por usuario del volumen de mensajes y la última actividad. Busca para encontrar a un usuario concreto."
|
|
73580
73737
|
};
|
|
73581
73738
|
var analyticsGroupsFilterDropdown$1 = {
|
|
73582
73739
|
filterByGroups: "Filtrar por grupos",
|
|
@@ -74448,7 +74605,10 @@ var clawSandboxAgentSkills$1 = {
|
|
|
74448
74605
|
tabsAriaLabel: "Habilidades",
|
|
74449
74606
|
tabAgentSkills: "Habilidades del agente",
|
|
74450
74607
|
tabAvailableSkills: "Habilidades disponibles",
|
|
74451
|
-
addedBadge: "Añadida"
|
|
74608
|
+
addedBadge: "Añadida",
|
|
74609
|
+
effectiveHeading: "Habilidades de este agente",
|
|
74610
|
+
catalogHeading: "Habilidades disponibles",
|
|
74611
|
+
resourcesItemLabel: "recursos"
|
|
74452
74612
|
};
|
|
74453
74613
|
var clawSandboxHelpers$1 = {
|
|
74454
74614
|
unknown: "Desconocido",
|
|
@@ -79560,7 +79720,6 @@ var analyticsAnalyticsAuditLogStats = {
|
|
|
79560
79720
|
};
|
|
79561
79721
|
var analyticsAnalyticsCourseDetail = {
|
|
79562
79722
|
goBackAriaLabel: "返回课程列表",
|
|
79563
|
-
backToCourses: "返回课程",
|
|
79564
79723
|
activeEnrollments: "活跃注册",
|
|
79565
79724
|
completedEnrollments: "已完成注册",
|
|
79566
79725
|
timeSpent: "学习时长",
|
|
@@ -79582,7 +79741,11 @@ var analyticsAnalyticsCourseDetail = {
|
|
|
79582
79741
|
paginationPreviousPage: "转到上一页",
|
|
79583
79742
|
paginationGoToPage: "转到第 {page} 页",
|
|
79584
79743
|
paginationNextPage: "转到下一页",
|
|
79585
|
-
paginationLastPage: "转到最后一页"
|
|
79744
|
+
paginationLastPage: "转到最后一页",
|
|
79745
|
+
backToCourses: "返回课程",
|
|
79746
|
+
activeEnrollmentsDescription: "已报名本课程但尚未完成的学员数。",
|
|
79747
|
+
completedEnrollmentsDescription: "已完成本课程全部要求的学员数。",
|
|
79748
|
+
enrolledUsersDescription: "本课程的每位学员及其进度、成绩与最近活动。"
|
|
79586
79749
|
};
|
|
79587
79750
|
var analyticsAnalyticsCourses = {
|
|
79588
79751
|
activeCourses: "活跃课程",
|
|
@@ -79607,7 +79770,13 @@ var analyticsAnalyticsCourses = {
|
|
|
79607
79770
|
goToPage: "跳转到第 {page} 页",
|
|
79608
79771
|
goToNextPage: "跳转到下一页",
|
|
79609
79772
|
goToLastPage: "跳转到最后一页",
|
|
79610
|
-
noCoursesAvailable: "暂无课程"
|
|
79773
|
+
noCoursesAvailable: "暂无课程",
|
|
79774
|
+
activeCoursesDescription: "当前有学员在读并持续学习的课程数。",
|
|
79775
|
+
totalCoursesDescription: "该租户下发布的全部课程,无论是否活跃。",
|
|
79776
|
+
enrollmentsDescription: "所有课程累计的报名总数。",
|
|
79777
|
+
totalLearnersDescription: "至少报名过一门课程的独立学员数。",
|
|
79778
|
+
courseOvertimeDescription: "所选时间段内学员在课程上花费的时间。",
|
|
79779
|
+
coursesTableDescription: "每门课程及其 ID 与报名人数。点击某行可打开详情视图。"
|
|
79611
79780
|
};
|
|
79612
79781
|
var analyticsAnalyticsFinancialStats = {
|
|
79613
79782
|
weeklyCosts: "每周费用",
|
|
@@ -79635,7 +79804,14 @@ var analyticsAnalyticsFinancialStats = {
|
|
|
79635
79804
|
goToPreviousPage: "转到上一页",
|
|
79636
79805
|
goToNextPage: "转到下一页",
|
|
79637
79806
|
goToLastPage: "转到最后一页",
|
|
79638
|
-
paginationShowing: "显示第 {from} 至 {to} 条,共 {total} 条结果"
|
|
79807
|
+
paginationShowing: "显示第 {from} 至 {to} 条,共 {total} 条结果",
|
|
79808
|
+
weeklyCostsDescription: "过去一周的模型使用成本,并与前一周对比。",
|
|
79809
|
+
monthlyCostsDescription: "过去一个月的模型使用成本,并与前一个月对比。",
|
|
79810
|
+
totalCostsDescription: "该租户迄今累计的全部模型使用成本。",
|
|
79811
|
+
costPerDayDescription: "每日模型支出,便于了解成本与使用量的关系。",
|
|
79812
|
+
costByProviderDescription: "您的支出在各智能体所用模型供应商之间的分布。",
|
|
79813
|
+
costByLLMDescription: "您的支出在各个模型之间的分布,展示哪些模型花费最多。",
|
|
79814
|
+
costPerUserDescription: "归属到每位用户的支出,含其会话数与最近活动时间。"
|
|
79639
79815
|
};
|
|
79640
79816
|
var analyticsAnalyticsMemoryStats = {
|
|
79641
79817
|
noPermission: "您没有查看用户记忆的权限。",
|
|
@@ -79666,7 +79842,8 @@ var analyticsAnalyticsMemoryStats = {
|
|
|
79666
79842
|
colMemory: "记忆",
|
|
79667
79843
|
colAgent: "智能体",
|
|
79668
79844
|
colCategory: "类别",
|
|
79669
|
-
colCaptured: "捕获时间"
|
|
79845
|
+
colCaptured: "捕获时间",
|
|
79846
|
+
byCategoryDescription: "在当前筛选条件下,已捕获记忆在各类别间的分布。"
|
|
79670
79847
|
};
|
|
79671
79848
|
var analyticsAnalyticsMonetizationStats = {
|
|
79672
79849
|
totalRevenue: "总收入",
|
|
@@ -79706,7 +79883,15 @@ var analyticsAnalyticsMonetizationStats = {
|
|
|
79706
79883
|
activePricesCount: "{count} 个活跃",
|
|
79707
79884
|
statusActive: "活跃",
|
|
79708
79885
|
statusDisabled: "已禁用",
|
|
79709
|
-
paywallCountTotal: "共 {count} 个项目"
|
|
79886
|
+
paywallCountTotal: "共 {count} 个项目",
|
|
79887
|
+
totalRevenueDescription: "所有已完成交易带来的总收入。",
|
|
79888
|
+
totalSalesDescription: "所有付费内容上已完成的购买次数。",
|
|
79889
|
+
activePaywallsDescription: "该租户当前已配置并启用的付费墙数量。",
|
|
79890
|
+
totalSubscribersDescription: "持有订阅的人数,涵盖所有订阅状态。",
|
|
79891
|
+
subscribersByStatusDescription: "订阅者在活跃、试用、已取消和逾期各状态间的分布。",
|
|
79892
|
+
paywallsByTypeDescription: "付费墙按其保护的内容类型(如智能体和课程)的分布。",
|
|
79893
|
+
subscribersTableDescription: "每位订阅者及其订阅的内容、方案、金额与状态。",
|
|
79894
|
+
paywallsTableDescription: "每个已配置的付费墙及其类型、价格与当前是否启用。"
|
|
79710
79895
|
};
|
|
79711
79896
|
var analyticsAnalyticsOverview = {
|
|
79712
79897
|
messages: "消息",
|
|
@@ -79719,11 +79904,17 @@ var analyticsAnalyticsOverview = {
|
|
|
79719
79904
|
topicDetailsFor: "{label} 的话题详情",
|
|
79720
79905
|
messagesLabel: "消息:",
|
|
79721
79906
|
activeUsersFor: "{label} 的活跃用户",
|
|
79722
|
-
activeUsersLabel: "活跃用户:"
|
|
79907
|
+
activeUsersLabel: "活跃用户:",
|
|
79908
|
+
messagesDescription: "所选时间段内用户与您的智能体之间交换的消息总数。",
|
|
79909
|
+
activeUsersDescription: "所选时间段内与智能体互动过的独立用户数。",
|
|
79910
|
+
topicsDescription: "所选时间段内用户向智能体咨询的不同主题数。",
|
|
79911
|
+
conversationsDescription: "所选时间段内开启的独立对话数。",
|
|
79912
|
+
sessionsChartDescription: "一段时间内开启的会话数,便于发现使用高峰与低谷。",
|
|
79913
|
+
topicsChartDescription: "讨论最多的主题,按各自产生的消息数排序。",
|
|
79914
|
+
activeUsersChartDescription: "每日独立活跃用户数,展示参与度随时间的变化。"
|
|
79723
79915
|
};
|
|
79724
79916
|
var analyticsAnalyticsProgramDetail = {
|
|
79725
79917
|
backAriaLabel: "返回项目列表",
|
|
79726
|
-
backButton: "返回项目",
|
|
79727
79918
|
statActiveUsers: "活跃用户",
|
|
79728
79919
|
statEnrollments: "注册人数",
|
|
79729
79920
|
statTimeSpent: "花费时间",
|
|
@@ -79748,7 +79939,12 @@ var analyticsAnalyticsProgramDetail = {
|
|
|
79748
79939
|
paginationPreviousPage: "转到上一页",
|
|
79749
79940
|
paginationGoToPage: "转到第 {page} 页",
|
|
79750
79941
|
paginationNextPage: "转到下一页",
|
|
79751
|
-
paginationLastPage: "转到最后一页"
|
|
79942
|
+
paginationLastPage: "转到最后一页",
|
|
79943
|
+
backButton: "返回项目",
|
|
79944
|
+
statTotalEnrollmentsDescription: "曾报名本项目的全部学员数。",
|
|
79945
|
+
statActiveEnrollmentsDescription: "已报名本项目但尚未完成的学员数。",
|
|
79946
|
+
statCompletedEnrollmentsDescription: "已完成本项目全部要求的学员数。",
|
|
79947
|
+
enrolledUsersDescription: "本项目的每位学员及其进度、成绩与最近活动。"
|
|
79752
79948
|
};
|
|
79753
79949
|
var analyticsAnalyticsPrograms = {
|
|
79754
79950
|
activePrograms: "活跃项目",
|
|
@@ -79772,7 +79968,13 @@ var analyticsAnalyticsPrograms = {
|
|
|
79772
79968
|
goToPage: "跳至第 {page} 页",
|
|
79773
79969
|
goToNextPage: "跳至下一页",
|
|
79774
79970
|
goToLastPage: "跳至最后一页",
|
|
79775
|
-
noProgramsAvailable: "暂无可用项目"
|
|
79971
|
+
noProgramsAvailable: "暂无可用项目",
|
|
79972
|
+
activeProgramsDescription: "当前有学员在读并持续学习的项目数。",
|
|
79973
|
+
totalProgramsDescription: "该租户下发布的全部项目,无论是否活跃。",
|
|
79974
|
+
enrollmentsDescription: "所有项目累计的报名总数。",
|
|
79975
|
+
totalLearnersDescription: "至少报名过一个项目的独立学员数。",
|
|
79976
|
+
programOvertimeDescription: "所选时间段内学员在项目上花费的时间。",
|
|
79977
|
+
programsTableDescription: "每个项目及其 ID。点击某行可打开详情视图。"
|
|
79776
79978
|
};
|
|
79777
79979
|
var analyticsAnalyticsReports = {
|
|
79778
79980
|
failedToLoadReportForEditing: "无法加载报告进行编辑,正在打开下载。",
|
|
@@ -79814,7 +80016,13 @@ var analyticsAnalyticsTopicsStats = {
|
|
|
79814
80016
|
outOfFive: "/ 5",
|
|
79815
80017
|
topicsDetails: "主题详情",
|
|
79816
80018
|
topicDetailsForLabel: "{label} 的主题详情",
|
|
79817
|
-
messagesColon: "消息:"
|
|
80019
|
+
messagesColon: "消息:",
|
|
80020
|
+
topicsDescription: "本月对话中出现的不同主题数。",
|
|
80021
|
+
conversationsDescription: "本月开启的对话数。",
|
|
80022
|
+
messagesDescription: "本月所有对话中交换的消息数。",
|
|
80023
|
+
conversationsChartDescription: "一段时间内开启的对话数,便于跟踪参与度趋势。",
|
|
80024
|
+
averageRatingDescription: "用户对智能体回复的平均评分随时间的变化,满分 5 分。",
|
|
80025
|
+
topicsDetailsDescription: "按消息量排序的主题,展示用户最常咨询的内容。"
|
|
79818
80026
|
};
|
|
79819
80027
|
var analyticsAnalyticsTranscriptsStats = {
|
|
79820
80028
|
justNow: "刚刚",
|
|
@@ -79869,7 +80077,10 @@ var analyticsAnalyticsTranscriptsStats = {
|
|
|
79869
80077
|
srGoToLastPage: "跳转至最后一页",
|
|
79870
80078
|
none: "无",
|
|
79871
80079
|
loading: "加载中...",
|
|
79872
|
-
paginationInfo: "第 {currentPage} 页,共 {totalPages} 页 • 共 {totalRecords} 条记录"
|
|
80080
|
+
paginationInfo: "第 {currentPage} 页,共 {totalPages} 页 • 共 {totalRecords} 条记录",
|
|
80081
|
+
avgMessagesPerConversationDescription: "一次典型对话包含的消息数,反映交流的深入程度。",
|
|
80082
|
+
avgCostPerConversationDescription: "一次典型对话所产生的模型使用成本。",
|
|
80083
|
+
avgRatingDescription: "用户对其对话给出的平均评分,满分 5 分。"
|
|
79873
80084
|
};
|
|
79874
80085
|
var analyticsAnalyticsUsersStats = {
|
|
79875
80086
|
usersLoggedInNow: "当前在线用户",
|
|
@@ -79897,7 +80108,13 @@ var analyticsAnalyticsUsersStats = {
|
|
|
79897
80108
|
justNow: "刚刚",
|
|
79898
80109
|
minutesAgo: "{count} 分钟前",
|
|
79899
80110
|
hoursAgo: "{count} 小时前",
|
|
79900
|
-
daysAgo: "{count} 天前"
|
|
80111
|
+
daysAgo: "{count} 天前",
|
|
80112
|
+
usersLoggedInNowDescription: "当前处于登录状态的用户数。",
|
|
80113
|
+
usersLoggedInPast30DaysDescription: "过去 30 天内至少登录过一次的独立用户数。",
|
|
80114
|
+
totalRegisteredUsersDescription: "该租户下注册的全部用户账号,无论是否活跃。",
|
|
80115
|
+
activeUsersChartDescription: "每日独立活跃用户数,展示参与度随时间的变化。",
|
|
80116
|
+
accessTimesDescription: "用户最活跃的时段,按星期几和小时细分。",
|
|
80117
|
+
userDetailsDescription: "按用户列出的消息量与最近活动。可搜索以查找特定用户。"
|
|
79901
80118
|
};
|
|
79902
80119
|
var analyticsGroupsFilterDropdown = {
|
|
79903
80120
|
filterByGroups: "按组筛选",
|
|
@@ -80769,7 +80986,10 @@ var clawSandboxAgentSkills = {
|
|
|
80769
80986
|
tabsAriaLabel: "技能",
|
|
80770
80987
|
tabAgentSkills: "智能体技能",
|
|
80771
80988
|
tabAvailableSkills: "可用技能",
|
|
80772
|
-
addedBadge: "已添加"
|
|
80989
|
+
addedBadge: "已添加",
|
|
80990
|
+
effectiveHeading: "此智能体的技能",
|
|
80991
|
+
catalogHeading: "可用技能",
|
|
80992
|
+
resourcesItemLabel: "资源"
|
|
80773
80993
|
};
|
|
80774
80994
|
var clawSandboxHelpers = {
|
|
80775
80995
|
unknown: "未知",
|
|
@@ -114565,7 +114785,7 @@ function SubscriptionDetail({ subscription: initialSubscription, platformKey, on
|
|
|
114565
114785
|
}
|
|
114566
114786
|
return (jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "flex items-center gap-3", children: [jsxs(Button$1, { variant: "ghost", size: "sm", onClick: onBack, className: "cursor-pointer", children: [jsx(ChevronLeft, { className: "h-4 w-4 mr-1" }), t('purchasesPurchasesTab.back')] }), jsxs("div", { children: [jsx("h4", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: subscription.item_name || subscription.item_id }), jsx("span", { className: "text-xs text-gray-400 capitalize", children: subscription.item_type })] })] }), jsx(Card, { className: "shadow-sm border", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-6 space-y-5", children: [jsxs("div", { className: "flex items-center justify-between", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelStatus') }), jsx(Badge, { className: statusBadgeStyle$1(subscription.status), children: subscription.status })] }), jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelPlan') }), jsxs("div", { className: "text-right", children: [jsx("span", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100", children: (_b = subscription.price) === null || _b === void 0 ? void 0 : _b.name }), jsxs("span", { className: "text-sm text-gray-500 ml-2", children: [formatCurrency((_c = subscription.price) === null || _c === void 0 ? void 0 : _c.amount, (_d = subscription.price) === null || _d === void 0 ? void 0 : _d.currency), formatInterval((_e = subscription.price) === null || _e === void 0 ? void 0 : _e.interval)] })] })] }), jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelType') }), jsx(Badge, { variant: "secondary", className: "capitalize", children: subscription.item_type })] }), subscription.current_period_end && (jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: subscription.cancel_at_period_end
|
|
114567
114787
|
? t('purchasesPurchasesTab.labelAccessUntil')
|
|
114568
|
-
: t('purchasesPurchasesTab.labelRenewsOn') }), jsxs("span", { className: "text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1.5", children: [jsx(Calendar$1, { className: "h-3.5 w-3.5" }), new Date(subscription.current_period_end).toLocaleDateString()] })] })), subscription.created_at && (jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelSubscribedSince') }), jsxs("span", { className: "text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1.5", children: [jsx(Clock, { className: "h-3.5 w-3.5" }), new Date(subscription.created_at).toLocaleDateString()] })] })), subscription.is_grandfathered && (jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelLegacyAccess') }), jsxs(Badge, { className: "bg-amber-100 text-amber-700 border-amber-200 text-xs", children: [jsx(Shield, { className: "h-3 w-3 mr-1" }), t('purchasesPurchasesTab.badgeGrandfathered')] })] })), subscription.cancel_at_period_end && (jsxs("div", { className: "flex items-center gap-2 border-t pt-3 text-yellow-600", children: [jsx(TriangleAlert, { className: "h-4 w-4 flex-shrink-0" }), jsx("span", { className: "text-sm", children: t('purchasesPurchasesTab.warningWillNotRenew') })] }))] }) }), canCancel && !cancelResult && (jsx(Card, { className: "shadow-sm border border-blue-100", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-5 space-y-3", children: [jsx("h4", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.cancelSectionHeading') }), jsx("p", { className: "text-xs text-gray-500", children: t('purchasesPurchasesTab.cancelSectionDescription') }), jsxs("div", { className: "flex gap-2 items-end", children: [jsxs("div", { className: "flex-1", children: [jsxs("label", { className: "text-xs text-gray-500 mb-1 block", children: [t('purchasesPurchasesTab.cancelConfirmLabelPrefix'), ' ', jsx("span", { className: "font-mono font-bold", children: "cancel" }), ' ', t('purchasesPurchasesTab.cancelConfirmLabelSuffix')] }), jsx(Input, { value: confirmText, onChange: (e) => setConfirmText(e.target.value), placeholder: t('purchasesPurchasesTab.cancelConfirmPlaceholder') })] }), jsxs(Button$1, { onClick: handleCancel, disabled: confirmText !== 'cancel' || isCanceling, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] hover:opacity-90 text-white cursor-pointer", children: [isCanceling ? (jsx(LoaderCircle, { className: "h-4 w-4 mr-2 animate-spin" })) : (jsx(CircleX, { className: "h-4 w-4 mr-2" })), t('purchasesPurchasesTab.cancelButton')] })] })] }) })), (cancelResult === null || cancelResult === void 0 ? void 0 : cancelResult.canceled) && (jsx(Card, { className: "shadow-sm border border-green-200", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-5 text-center", children: [jsx(CircleX, { className: "h-8 w-8 text-gray-400 mx-auto mb-2" }), jsx("h4", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100 mb-1", children: t('purchasesPurchasesTab.canceledHeading') }), jsx("p", { className: "text-xs text-gray-500", children: t('purchasesPurchasesTab.canceledDescription') }), jsx(Button$1, { variant: "outline", onClick: onBack, className: "mt-3 cursor-pointer", children:
|
|
114788
|
+
: t('purchasesPurchasesTab.labelRenewsOn') }), jsxs("span", { className: "text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1.5", children: [jsx(Calendar$1, { className: "h-3.5 w-3.5" }), new Date(subscription.current_period_end).toLocaleDateString()] })] })), subscription.created_at && (jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelSubscribedSince') }), jsxs("span", { className: "text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1.5", children: [jsx(Clock, { className: "h-3.5 w-3.5" }), new Date(subscription.created_at).toLocaleDateString()] })] })), subscription.is_grandfathered && (jsxs("div", { className: "flex items-center justify-between border-t pt-3", children: [jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.labelLegacyAccess') }), jsxs(Badge, { className: "bg-amber-100 text-amber-700 border-amber-200 text-xs", children: [jsx(Shield, { className: "h-3 w-3 mr-1" }), t('purchasesPurchasesTab.badgeGrandfathered')] })] })), subscription.cancel_at_period_end && (jsxs("div", { className: "flex items-center gap-2 border-t pt-3 text-yellow-600", children: [jsx(TriangleAlert, { className: "h-4 w-4 flex-shrink-0" }), jsx("span", { className: "text-sm", children: t('purchasesPurchasesTab.warningWillNotRenew') })] }))] }) }), canCancel && !cancelResult && (jsx(Card, { className: "shadow-sm border border-blue-100", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-5 space-y-3", children: [jsx("h4", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t('purchasesPurchasesTab.cancelSectionHeading') }), jsx("p", { className: "text-xs text-gray-500", children: t('purchasesPurchasesTab.cancelSectionDescription') }), jsxs("div", { className: "flex gap-2 items-end", children: [jsxs("div", { className: "flex-1", children: [jsxs("label", { className: "text-xs text-gray-500 mb-1 block", children: [t('purchasesPurchasesTab.cancelConfirmLabelPrefix'), ' ', jsx("span", { className: "font-mono font-bold", children: "cancel" }), ' ', t('purchasesPurchasesTab.cancelConfirmLabelSuffix')] }), jsx(Input, { value: confirmText, onChange: (e) => setConfirmText(e.target.value), placeholder: t('purchasesPurchasesTab.cancelConfirmPlaceholder') })] }), jsxs(Button$1, { onClick: handleCancel, disabled: confirmText !== 'cancel' || isCanceling, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] hover:opacity-90 text-white cursor-pointer", children: [isCanceling ? (jsx(LoaderCircle, { className: "h-4 w-4 mr-2 animate-spin" })) : (jsx(CircleX, { className: "h-4 w-4 mr-2" })), t('purchasesPurchasesTab.cancelButton')] })] })] }) })), (cancelResult === null || cancelResult === void 0 ? void 0 : cancelResult.canceled) && (jsx(Card, { className: "shadow-sm border border-green-200", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-5 text-center", children: [jsx(CircleX, { className: "h-8 w-8 text-gray-400 mx-auto mb-2" }), jsx("h4", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100 mb-1", children: t('purchasesPurchasesTab.canceledHeading') }), jsx("p", { className: "text-xs text-gray-500", children: t('purchasesPurchasesTab.canceledDescription') }), jsx(Button$1, { variant: "outline", size: "icon", onClick: onBack, "aria-label": t('purchasesPurchasesTab.backToPurchases'), className: "mt-3 h-8 w-8 cursor-pointer rounded-full border-0 bg-gray-100 text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) })] }) })), (cancelResult === null || cancelResult === void 0 ? void 0 : cancelResult.portalUrl) && (jsx(Card, { className: "shadow-sm border border-blue-200", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-5 text-center", children: [jsx(ExternalLink, { className: "h-8 w-8 text-blue-400 mx-auto mb-2" }), jsx("h4", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100 mb-1", children: t('purchasesPurchasesTab.stripePortalHeading') }), jsx("p", { className: "text-xs text-gray-500 mb-3", children: t('purchasesPurchasesTab.stripePortalDescription') }), jsxs(Button$1, { onClick: () => window.open(cancelResult.portalUrl, '_blank'), className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] hover:opacity-90 text-white cursor-pointer", children: [jsx(ExternalLink, { className: "h-4 w-4 mr-2" }), t('purchasesPurchasesTab.openStripePortal')] })] }) }))] }));
|
|
114569
114789
|
}
|
|
114570
114790
|
// ── Subscription Card (List Item) ──
|
|
114571
114791
|
function SubscriptionCard({ sub, onClick }) {
|
|
@@ -146688,7 +146908,7 @@ function QuestionsEditor({ platformKey, onBack, initialFormId = null, startNew =
|
|
|
146688
146908
|
}
|
|
146689
146909
|
function BackButton$1({ onBack }) {
|
|
146690
146910
|
const t = useT();
|
|
146691
|
-
return (
|
|
146911
|
+
return (jsx("button", { type: "button", onClick: onBack, "aria-label": t('profileApplicationsQuestionsEditor.backToApplications'), className: "inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-100 text-gray-700 ring-offset-background transition-colors hover:bg-gray-200 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) }));
|
|
146692
146912
|
}
|
|
146693
146913
|
function SectionCard({ section, expanded, autoFocusTitle = false, onToggle, onChange, onRemove, onMove, onMakeCandidate, onEditField, onAddField, }) {
|
|
146694
146914
|
var _a;
|
|
@@ -147006,7 +147226,7 @@ function SubmissionDetail({ platformKey, submissionId, onBack, }) {
|
|
|
147006
147226
|
}
|
|
147007
147227
|
function BackButton({ onBack }) {
|
|
147008
147228
|
const t = useT();
|
|
147009
|
-
return (
|
|
147229
|
+
return (jsx("button", { type: "button", onClick: onBack, "aria-label": t('profileApplicationsTab.backToSubmissions'), className: "inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-100 text-gray-700 ring-offset-background transition-colors hover:bg-gray-200 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) }));
|
|
147010
147230
|
}
|
|
147011
147231
|
function MaskedNotice({ title }) {
|
|
147012
147232
|
const t = useT();
|
|
@@ -147507,7 +147727,7 @@ function BlocksView({ platformKey, onBack, }) {
|
|
|
147507
147727
|
toast.error(t('profileApplicationsTab.actionFailed'));
|
|
147508
147728
|
}
|
|
147509
147729
|
};
|
|
147510
|
-
return (jsxs("div", { className: "space-y-5 pt-4", children: [
|
|
147730
|
+
return (jsxs("div", { className: "space-y-5 pt-4", children: [jsx("button", { type: "button", onClick: onBack, "aria-label": t('profileApplicationsTab.backToForms'), className: "inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-100 text-gray-700 ring-offset-background transition-colors hover:bg-gray-200 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) }), jsxs("div", { className: "flex items-start gap-3", children: [jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-blue-100 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400", children: jsx(Ban, { className: "h-4 w-4" }) }), jsxs("div", { children: [jsx("h4", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100", children: t('profileApplicationsTab.blockedUsers') }), jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: t('profileApplicationsTab.blockedUsersDescription') })] })] }), jsx("div", { className: "overflow-x-auto rounded-xl border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900", children: jsxs("table", { className: "w-full text-sm", children: [jsx("thead", { children: jsxs("tr", { className: "border-b border-gray-200 bg-gray-50 text-left text-xs uppercase tracking-wide text-gray-500 dark:border-gray-700 dark:bg-gray-800/50", children: [jsx("th", { className: "px-4 py-2.5 font-medium", children: t('profileApplicationsTab.colUser') }), jsx("th", { className: "px-4 py-2.5 font-medium", children: t('profileApplicationsTab.colReason') }), jsx("th", { className: "px-4 py-2.5 font-medium", children: t('profileApplicationsTab.colBlockedBy') }), jsx("th", { className: "px-4 py-2.5 text-right font-medium", children: t('profileApplicationsTab.colActions') })] }) }), jsx("tbody", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: isLoading ? ([0, 1].map((i) => (jsx("tr", { children: [0, 1, 2, 3].map((j) => (jsx("td", { className: "px-4 py-3", children: jsx(Skeleton, { className: "h-4 w-full max-w-32" }) }, j))) }, i)))) : error ? (jsx("tr", { children: jsx("td", { colSpan: 4, className: "px-4 py-10 text-center text-red-600", children: t('profileApplicationsTab.loadError') }) })) : blocks.length === 0 ? (jsx("tr", { children: jsx("td", { colSpan: 4, className: "px-4 py-10 text-center text-gray-400", children: t('profileApplicationsTab.noBlockedUsers') }) })) : (blocks.map((block) => {
|
|
147511
147731
|
var _a, _b;
|
|
147512
147732
|
return (jsxs("tr", { className: "hover:bg-blue-50/40 dark:hover:bg-gray-800/40", children: [jsx("td", { className: "whitespace-nowrap px-4 py-3 font-medium text-gray-900 dark:text-gray-100", children: ((_a = block.user) === null || _a === void 0 ? void 0 : _a.username) || ((_b = block.user) === null || _b === void 0 ? void 0 : _b.email) || '—' }), jsx("td", { className: "px-4 py-3 text-gray-500", children: block.reason || '—' }), jsx("td", { className: "whitespace-nowrap px-4 py-3 text-gray-500", children: block.created_by || '—' }), jsx("td", { className: "whitespace-nowrap px-4 py-3 text-right", children: jsx(Button$1, { variant: "outline", className: "h-8 px-3 text-xs", disabled: deleting, onClick: () => handleUnblock(block.id), children: t('profileApplicationsTab.unblock') }) })] }, block.id));
|
|
147513
147733
|
})) })] }) })] }));
|
|
@@ -147674,7 +147894,7 @@ function SubmissionsPipeline({ platformKey, form, onBack, onOpen, }) {
|
|
|
147674
147894
|
const date = new Date(raw);
|
|
147675
147895
|
return Number.isNaN(date.getTime()) ? '—' : date.toLocaleDateString();
|
|
147676
147896
|
};
|
|
147677
|
-
return (jsxs("div", { className: "space-y-5 pt-4", children: [jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
|
|
147897
|
+
return (jsxs("div", { className: "space-y-5 pt-4", children: [jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [jsx("button", { type: "button", onClick: onBack, "aria-label": t('profileApplicationsTab.backToForms'), className: "inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-100 text-gray-700 ring-offset-background transition-colors hover:bg-gray-200 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) }), jsx("h4", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100", children: form
|
|
147678
147898
|
? t('profileApplicationsTab.submissionsFor', {
|
|
147679
147899
|
form: ((_a = form.schema) === null || _a === void 0 ? void 0 : _a.title) || form.name || t('profileApplicationsTab.untitledForm'),
|
|
147680
147900
|
})
|
|
@@ -156233,7 +156453,7 @@ function PaywallDetail({ platformKey, authURL, itemType, itemId, itemName, isCus
|
|
|
156233
156453
|
if (!isCustom && isLoading) {
|
|
156234
156454
|
return (jsxs("div", { className: "space-y-4", children: [jsx(Skeleton, { className: "h-8 w-48" }), jsx(Skeleton, { className: "h-64 w-full" })] }));
|
|
156235
156455
|
}
|
|
156236
|
-
return (jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "flex items-center gap-3", children: [
|
|
156456
|
+
return (jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "flex items-center gap-3", children: [jsx(Button$1, { variant: "ghost", size: "icon", onClick: onBack, "aria-label": t('monetizationPaywallDetail.back'), className: "h-8 w-8 cursor-pointer rounded-full bg-gray-100 text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) }), jsxs("div", { children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("h4", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: displayName }), paywallUniqueId && (jsx("button", { type: "button", onClick: handleCopyUrl, className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer", title: t('monetizationPaywallDetail.copyPaywallUrl'), children: copied ? (jsx(Check, { className: "h-4 w-4 text-green-500" })) : (jsx(Copy, { className: "h-4 w-4 text-gray-400" })) }))] }), !isCustom && (jsx("span", { className: "text-xs text-gray-400 capitalize", children: displayItemType(itemType) }))] })] }), jsx(WizardStepIndicator, { steps: wizardSteps, currentStep: currentStep, onStepClick: !isCustom
|
|
156237
156457
|
? setCurrentStep
|
|
156238
156458
|
: (step) => {
|
|
156239
156459
|
// During creation, only allow navigating back to already-completed steps
|
|
@@ -186902,7 +187122,20 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
|
|
|
186902
187122
|
className: "text-white font-semibold bg-gradient-to-r from-blue-600 to-blue-400 hover:from-blue-700 hover:to-blue-500 [text-shadow:0_1px_2px_rgba(0,0,0,0.35)] [&_svg]:[filter:drop-shadow(0_1px_1px_rgba(0,0,0,0.4))]", children: isDisablingChatHistory ? (jsxs(Fragment$1, { children: [jsx(LoaderCircle, { className: "mr-2 h-4 w-4 animate-spin" }), t('chatPrivacyChatPrivacyToggle.enabling')] })) : (t('chatPrivacyChatPrivacyToggle.enablePrivateMode')) })] })] }) })] }));
|
|
186903
187123
|
}
|
|
186904
187124
|
|
|
186905
|
-
|
|
187125
|
+
/**
|
|
187126
|
+
* The info icon that sits on every analytics card and, on hover or keyboard
|
|
187127
|
+
* focus, explains what the card measures. The description doubles as the
|
|
187128
|
+
* accessible name so screen readers get it without needing the hover.
|
|
187129
|
+
*
|
|
187130
|
+
* Uses the tooltip primitives directly rather than the shared `TooltipContent`
|
|
187131
|
+
* because analytics wants a light popover, while `TooltipContent` is the dark
|
|
187132
|
+
* `bg-primary` style the rest of the app relies on.
|
|
187133
|
+
*/
|
|
187134
|
+
function CardInfoIcon({ title, description, className }) {
|
|
187135
|
+
return (jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsx("button", { type: "button", "aria-label": description, className: cn('shrink-0 cursor-help rounded p-1 text-[#898989] transition-colors hover:bg-gray-100 hover:text-[#38A1E5] focus-visible:ring-2 focus-visible:ring-[#38A1E5] focus-visible:outline-none', className), children: jsx(Info$3, { className: "h-4 w-4", "aria-hidden": "true" }) }) }), jsx(Portal$2, { children: jsxs(Content2$4, { "data-slot": "tooltip-content", side: "top", align: "center", sideOffset: 6, collisionPadding: 12, className: "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 z-50 max-w-[260px] rounded-lg border border-[oklch(0.922_0_0)] bg-white p-3 shadow-lg", children: [title && (jsx("div", { "data-slot": "tooltip-title", className: "mb-1 text-sm font-semibold text-[#484848]", children: title })), jsx("p", { "data-slot": "tooltip-description", className: "text-sm leading-relaxed text-[#646464]", children: description })] }) })] }));
|
|
187136
|
+
}
|
|
187137
|
+
|
|
187138
|
+
function StatCard({ title, value, percentage, loading = false, showDollarSign = false, description, }) {
|
|
186906
187139
|
const t = useT();
|
|
186907
187140
|
let paragraph = jsx("p", { className: "text-sm text-[#898989]", children: t('analyticsStatCard.noChange') });
|
|
186908
187141
|
if (!percentage) {
|
|
@@ -186915,9 +187148,9 @@ function StatCard({ title, value, percentage, loading = false, showDollarSign =
|
|
|
186915
187148
|
paragraph = (jsxs("p", { className: "text-sm text-[#898989]", children: [jsxs("span", { className: "text-red-600 mr-1", children: [percentage, "%"] }), t('analyticsStatCard.comparedToLastMonth')] }));
|
|
186916
187149
|
}
|
|
186917
187150
|
if (loading) {
|
|
186918
|
-
return (jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsStatCard.ariaLabelLoading', { title }), children: [jsx(Skeleton, { className: "h-4 w-24
|
|
187151
|
+
return (jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsStatCard.ariaLabelLoading', { title }), children: [jsxs("div", { className: "flex items-start justify-between gap-2 mb-2", children: [jsx(Skeleton, { className: "h-4 w-24" }), jsx(Skeleton, { className: "h-6 w-6 rounded" })] }), jsx(Skeleton, { className: "h-8 w-16 mb-2" }), jsx(Skeleton, { className: "h-4 w-32" })] }) }));
|
|
186919
187152
|
}
|
|
186920
|
-
return (jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsStatCard.ariaLabel', { title }), children: [jsx("h3", { className: "text-sm font-medium text-[#898989]
|
|
187153
|
+
return (jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsStatCard.ariaLabel', { title }), children: [jsxs("div", { className: "flex items-start justify-between gap-2 mb-2", children: [jsx("h3", { className: "text-sm font-medium text-[#898989]", children: title }), description && (jsx(CardInfoIcon, { title: title, description: description, className: "-mt-1" }))] }), jsx("p", { className: "text-[28px] font-semibold text-[#484848] mb-2", "aria-label": t('analyticsStatCard.ariaLabelValue', { title }), children: showDollarSign ? `$${value}` : value }), paragraph] }) }));
|
|
186921
187154
|
}
|
|
186922
187155
|
|
|
186923
187156
|
const THEMES = { light: '', dark: '.dark' };
|
|
@@ -187117,8 +187350,8 @@ function TimeFilter() {
|
|
|
187117
187350
|
: 'text-gray-500 hover:text-gray-700 hover:bg-gray-50 border border-gray-100 bg-white'}`, children: "90D" }), jsx(CustomDateRangePicker, {})] }));
|
|
187118
187351
|
}
|
|
187119
187352
|
|
|
187120
|
-
function ChartCardWrapper({ title, label, children, filters, setOutsideFilters, overflowAuto, height, }) {
|
|
187121
|
-
return (jsx(ChartFiltersProvider, { initialFilters: filters, setOutsideFilters: setOutsideFilters, children: jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", children: jsxs(CardContent, { className: "p-4", "aria-label": `${title} chart card`, children: [jsx("div", { className: "mb-6", children: jsxs("div", { className: "flex items-center justify-between mb-2", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: title }), jsx(TimeFilter, {})] }) }), jsx("div", { className: "w-full", style: { height: height || '350px' }, children: jsx(ChartContainer, { title: title, config: {
|
|
187353
|
+
function ChartCardWrapper({ title, label, children, filters, setOutsideFilters, overflowAuto, height, description, }) {
|
|
187354
|
+
return (jsx(ChartFiltersProvider, { initialFilters: filters, setOutsideFilters: setOutsideFilters, children: jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", children: jsxs(CardContent, { className: "p-4", "aria-label": `${title} chart card`, children: [jsx("div", { className: "mb-6", children: jsxs("div", { className: "flex items-center justify-between mb-2", children: [jsxs("div", { className: "flex items-center gap-1", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: title }), description && jsx(CardInfoIcon, { title: title, description: description })] }), jsx(TimeFilter, {})] }) }), jsx("div", { className: "w-full", style: { height: height || '350px' }, children: jsx(ChartContainer, { title: title, config: {
|
|
187122
187355
|
value: {
|
|
187123
187356
|
label,
|
|
187124
187357
|
color: '#38A1E5', // Reverted to original color
|
|
@@ -187242,7 +187475,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
|
|
|
187242
187475
|
const t = useT();
|
|
187243
187476
|
const currentMentorId = selectedMentorId || mentorId;
|
|
187244
187477
|
const { messageStat, topicStat, conversationStat, sessionStats, isLoadingAllStats, isLoadingUsersStats, isLoadingSessionStats, isLoadingTopicsDetailsStats, isLoadingActiveUsersStats, setSessionStatsDateFilter, usersStats, sessionStatsDateFilter, topicsDetailsStats, setTopicsDetailsStatsDateFilter, topicsDetailsStatsDateFilter, activeUsersStats, setUsersStatsDateFilter, usersStatsDateFilter, } = useOverview({ tenantKey, mentorId: currentMentorId, usergroupIds });
|
|
187245
|
-
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.messages'), value: messageStat.stat, percentage: messageStat.percentage }), jsx(StatCard, { loading: isLoadingUsersStats, title: t('analyticsAnalyticsOverview.activeUsers'), value: (usersStats === null || usersStats === void 0 ? void 0 : usersStats.count) || 0, percentage: (usersStats === null || usersStats === void 0 ? void 0 : usersStats.percentage_change) || 0 }), jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.topics'), value: topicStat.stat, percentage: topicStat.percentage }), jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.conversations'), value: conversationStat.stat, percentage: conversationStat.percentage })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.sessions'), label: t('analyticsAnalyticsOverview.sessions'), setOutsideFilters: setSessionStatsDateFilter, filters: sessionStatsDateFilter, children: isLoadingSessionStats ? (jsx(ChartLoading, {})) : ((_a = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _a === void 0 ? void 0 : _a.length) && ((_b = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (jsxs(LineChart, { data: ((_c = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _c === void 0 ? void 0 : _c.map((point) => ({
|
|
187478
|
+
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.messages'), value: messageStat.stat, percentage: messageStat.percentage, description: t('analyticsAnalyticsOverview.messagesDescription') }), jsx(StatCard, { loading: isLoadingUsersStats, title: t('analyticsAnalyticsOverview.activeUsers'), value: (usersStats === null || usersStats === void 0 ? void 0 : usersStats.count) || 0, percentage: (usersStats === null || usersStats === void 0 ? void 0 : usersStats.percentage_change) || 0, description: t('analyticsAnalyticsOverview.activeUsersDescription') }), jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.topics'), value: topicStat.stat, percentage: topicStat.percentage, description: t('analyticsAnalyticsOverview.topicsDescription') }), jsx(StatCard, { loading: isLoadingAllStats, title: t('analyticsAnalyticsOverview.conversations'), value: conversationStat.stat, percentage: conversationStat.percentage, description: t('analyticsAnalyticsOverview.conversationsDescription') })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.sessions'), label: t('analyticsAnalyticsOverview.sessions'), setOutsideFilters: setSessionStatsDateFilter, filters: sessionStatsDateFilter, description: t('analyticsAnalyticsOverview.sessionsChartDescription'), children: isLoadingSessionStats ? (jsx(ChartLoading, {})) : ((_a = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _a === void 0 ? void 0 : _a.length) && ((_b = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (jsxs(LineChart, { data: ((_c = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _c === void 0 ? void 0 : _c.map((point) => ({
|
|
187246
187479
|
date: formatDateToShortFormat$2(point.date, sessionStatsDateFilter.activeFilter === 'today'),
|
|
187247
187480
|
value: point.value,
|
|
187248
187481
|
}))) || [], margin: { top: 5, right: 5, left: 0, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "#f0f0f0", vertical: false }), jsx(XAxis, { dataKey: "date", tick: { fontSize: 8, textAnchor: 'end' }, angle: -45, interval: Math.floor(Number((_d = sessionStats === null || sessionStats === void 0 ? void 0 : sessionStats.points) === null || _d === void 0 ? void 0 : _d.length) / 31) || 0 }), jsx(YAxis, { tick: { fontSize: 10 }, width: 30, allowDecimals: false }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187256,7 +187489,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
|
|
|
187256
187489
|
stroke: '#38A1E5',
|
|
187257
187490
|
strokeWidth: 2,
|
|
187258
187491
|
fill: 'white',
|
|
187259
|
-
} })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.topics'), label: t('analyticsAnalyticsOverview.topics'), filters: topicsDetailsStatsDateFilter, setOutsideFilters: setTopicsDetailsStatsDateFilter, children: isLoadingTopicsDetailsStats ? (jsx(ChartLoading, {})) : ((_e = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _e === void 0 ? void 0 : _e.length) && ((_f = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _f === void 0 ? void 0 : _f.length) > 0 ? (jsxs(BarChart, { data: (_g = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _g === void 0 ? void 0 : _g.map((result) => ({
|
|
187492
|
+
} })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.topics'), label: t('analyticsAnalyticsOverview.topics'), filters: topicsDetailsStatsDateFilter, setOutsideFilters: setTopicsDetailsStatsDateFilter, description: t('analyticsAnalyticsOverview.topicsChartDescription'), children: isLoadingTopicsDetailsStats ? (jsx(ChartLoading, {})) : ((_e = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _e === void 0 ? void 0 : _e.length) && ((_f = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _f === void 0 ? void 0 : _f.length) > 0 ? (jsxs(BarChart, { data: (_g = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _g === void 0 ? void 0 : _g.map((result) => ({
|
|
187260
187493
|
topic: result.name,
|
|
187261
187494
|
value: result.messages,
|
|
187262
187495
|
})), layout: "vertical", margin: { top: 5, right: 30, left: 20, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), jsx(XAxis, { type: "number", tick: { fontSize: 10 }, domain: [0, 'dataMax'], allowDecimals: false }), jsx(YAxis, { dataKey: "topic", type: "category", tick: { fontSize: 10 }, interval: 0, width: 80 }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187265,7 +187498,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
|
|
|
187265
187498
|
return null;
|
|
187266
187499
|
const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
|
|
187267
187500
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", role: "tooltip", "aria-label": t('analyticsAnalyticsOverview.topicDetailsFor', { label }), tabIndex: -1, style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base", children: label }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsOverview.messagesLabel') }), jsx("span", { className: "font-medium text-foreground", children: (_b = data === null || data === void 0 ? void 0 : data.value) === null || _b === void 0 ? void 0 : _b.toLocaleString() })] }) })] }));
|
|
187268
|
-
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", barSize: 20, radius: [0, 4, 4, 0] })] })) : (jsx(EmptyStats, {})) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.activeUsers'), label: t('analyticsAnalyticsOverview.activeUsers'), filters: usersStatsDateFilter, setOutsideFilters: setUsersStatsDateFilter, children: isLoadingActiveUsersStats ? (jsx(ChartLoading, {})) : ((_h = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _h === void 0 ? void 0 : _h.length) && ((_j = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _j === void 0 ? void 0 : _j.length) > 0 ? (jsxs(BarChart, { data: (_k = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _k === void 0 ? void 0 : _k.map((point) => ({
|
|
187501
|
+
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", barSize: 20, radius: [0, 4, 4, 0] })] })) : (jsx(EmptyStats, {})) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsOverview.activeUsers'), label: t('analyticsAnalyticsOverview.activeUsers'), filters: usersStatsDateFilter, setOutsideFilters: setUsersStatsDateFilter, description: t('analyticsAnalyticsOverview.activeUsersChartDescription'), children: isLoadingActiveUsersStats ? (jsx(ChartLoading, {})) : ((_h = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _h === void 0 ? void 0 : _h.length) && ((_j = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _j === void 0 ? void 0 : _j.length) > 0 ? (jsxs(BarChart, { data: (_k = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _k === void 0 ? void 0 : _k.map((point) => ({
|
|
187269
187502
|
date: formatDateToShortFormat$2(point.date, usersStatsDateFilter.activeFilter === 'today'),
|
|
187270
187503
|
value: point.value,
|
|
187271
187504
|
})), margin: { top: 5, right: 5, left: 0, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3" }), jsx(XAxis, { dataKey: "date", tick: { fontSize: 8, textAnchor: 'end' }, angle: -45, interval: Math.floor(Number((_l = activeUsersStats === null || activeUsersStats === void 0 ? void 0 : activeUsersStats.points) === null || _l === void 0 ? void 0 : _l.length) / 90) || 0 }), jsx(YAxis, { width: 30, domain: [0, 'dataMax'], allowDecimals: false }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187621,7 +187854,7 @@ function AnalyticsUsersStats({ tenantKey, mentorId, selectedMentorId, usergroupI
|
|
|
187621
187854
|
const t = useT();
|
|
187622
187855
|
const currentMentorId = selectedMentorId || mentorId;
|
|
187623
187856
|
const { registeredUsers, isLoadingRegisteredUsers, activeUsers, isLoadingActiveUsers, setActiveUsersStatsDateFilter, activeUsersStatsDateFilter, accessTimeHeatmap, isLoadingAccessTimeHeatmap, setAccessTimeHeatmapDateFilter, accessTimeHeatmapDateFilter, userDetailsStats, isLoadingUserDetailsStats, setUserDetailsStatsDateFilter, userDetailsStatsDateFilter, setUserDetailsStatsPage, userDetailsStatsSearch, handleSearchInputChange, currentlyActiveUsers, isLoadingCurrentlyActiveUsers, activeUsers30D, isLoadingActiveUsers30D, } = useUsers({ tenantKey, mentorId: currentMentorId, usergroupIds });
|
|
187624
|
-
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('analyticsAnalyticsUsersStats.usersLoggedInNow'), value: (currentlyActiveUsers === null || currentlyActiveUsers === void 0 ? void 0 : currentlyActiveUsers.count) || 0, loading: isLoadingCurrentlyActiveUsers }), jsx(StatCard, { title: t('analyticsAnalyticsUsersStats.usersLoggedInPast30Days'), value: (activeUsers30D === null || activeUsers30D === void 0 ? void 0 : activeUsers30D.count) || 0, loading: isLoadingActiveUsers30D }), jsx(StatCard, { title: t('analyticsAnalyticsUsersStats.totalRegisteredUsers'), value: (registeredUsers === null || registeredUsers === void 0 ? void 0 : registeredUsers.count) || 0, loading: isLoadingRegisteredUsers })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.activeUsersTitle'), label: t('analyticsAnalyticsUsersStats.activeUsersLabel'), filters: activeUsersStatsDateFilter, setOutsideFilters: setActiveUsersStatsDateFilter, children: isLoadingActiveUsers ? (jsx(ChartLoading, {})) : ((_a = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _a === void 0 ? void 0 : _a.length) && ((_b = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (jsxs(BarChart, { data: (_c = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _c === void 0 ? void 0 : _c.map((point) => ({
|
|
187857
|
+
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('analyticsAnalyticsUsersStats.usersLoggedInNow'), value: (currentlyActiveUsers === null || currentlyActiveUsers === void 0 ? void 0 : currentlyActiveUsers.count) || 0, loading: isLoadingCurrentlyActiveUsers, description: t('analyticsAnalyticsUsersStats.usersLoggedInNowDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsUsersStats.usersLoggedInPast30Days'), value: (activeUsers30D === null || activeUsers30D === void 0 ? void 0 : activeUsers30D.count) || 0, loading: isLoadingActiveUsers30D, description: t('analyticsAnalyticsUsersStats.usersLoggedInPast30DaysDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsUsersStats.totalRegisteredUsers'), value: (registeredUsers === null || registeredUsers === void 0 ? void 0 : registeredUsers.count) || 0, loading: isLoadingRegisteredUsers, description: t('analyticsAnalyticsUsersStats.totalRegisteredUsersDescription') })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.activeUsersTitle'), label: t('analyticsAnalyticsUsersStats.activeUsersLabel'), filters: activeUsersStatsDateFilter, setOutsideFilters: setActiveUsersStatsDateFilter, description: t('analyticsAnalyticsUsersStats.activeUsersChartDescription'), children: isLoadingActiveUsers ? (jsx(ChartLoading, {})) : ((_a = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _a === void 0 ? void 0 : _a.length) && ((_b = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (jsxs(BarChart, { data: (_c = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _c === void 0 ? void 0 : _c.map((point) => ({
|
|
187625
187858
|
date: formatDateToShortFormat$2(point.date, activeUsersStatsDateFilter.activeFilter === 'today'),
|
|
187626
187859
|
value: point.value,
|
|
187627
187860
|
})), margin: { top: 5, right: 5, left: 0, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3" }), jsx(XAxis, { dataKey: "date", tick: { fontSize: 8, textAnchor: 'end' }, angle: -45, interval: Math.floor(Number((_d = activeUsers === null || activeUsers === void 0 ? void 0 : activeUsers.points) === null || _d === void 0 ? void 0 : _d.length) / 31) || 0 }), jsx(YAxis, { width: 30, domain: [0, 'dataMax'], allowDecimals: false }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187630,7 +187863,7 @@ function AnalyticsUsersStats({ tenantKey, mentorId, selectedMentorId, usergroupI
|
|
|
187630
187863
|
return null;
|
|
187631
187864
|
const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
|
|
187632
187865
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", role: "tooltip", "aria-label": t('analyticsAnalyticsUsersStats.activeUsersAriaLabel', { label }), tabIndex: -1, style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base", children: label }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsUsersStats.activeUsersTooltipLabel') }), jsx("span", { className: "font-medium text-foreground", children: (_b = data === null || data === void 0 ? void 0 : data.value) === null || _b === void 0 ? void 0 : _b.toLocaleString() })] }) })] }));
|
|
187633
|
-
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [4, 4, 0, 0] })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.accessTimesTitle'), label: t('analyticsAnalyticsUsersStats.accessTimesLabel'), filters: accessTimeHeatmapDateFilter, setOutsideFilters: setAccessTimeHeatmapDateFilter, children: jsx(AccessTimeHeatmap, { loading: isLoadingAccessTimeHeatmap, accessTimeData: accessTimeHeatmap }) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.userDetailsTitle'), label: t('analyticsAnalyticsUsersStats.userDetailsLabel'), filters: userDetailsStatsDateFilter, setOutsideFilters: setUserDetailsStatsDateFilter, overflowAuto: true, height: "450px", children: jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-user", type: "text", placeholder: t('analyticsAnalyticsUsersStats.searchPlaceholder'), value: userDetailsStatsSearch, onChange: handleSearchInputChange, required: true, className: `pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11` })] }), jsx("div", { className: "rounded-md", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsUsersStats.tableHeaderUserEmail') }), jsx(TableHead, { className: "w-[200px]", children: t('analyticsAnalyticsUsersStats.tableHeaderUsername') }), jsx(TableHead, { children: t('analyticsAnalyticsUsersStats.tableHeaderMessages') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsUsersStats.tableHeaderLastActive') })] }) }), jsx(TableBody, { children: (_e = userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.results) === null || _e === void 0 ? void 0 : _e.map((user, index) => (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: jsx("div", { className: "flex items-center", children: user.email || t('analyticsAnalyticsUsersStats.anonymous') }) }), jsx(TableCell, { children: user.full_name || '' }), jsx(TableCell, { children: user.messages }), jsx(TableCell, { className: "text-right", children: user.last_activity ? formatRelativeTime$1(user.last_activity, t) : '-' })] }, index))) })] }) }), isLoadingUserDetailsStats && (jsx("div", { className: "flex items-center justify-center py-4", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsUsersStats.loading') }) })), !isLoadingUserDetailsStats &&
|
|
187866
|
+
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [4, 4, 0, 0] })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.accessTimesTitle'), label: t('analyticsAnalyticsUsersStats.accessTimesLabel'), filters: accessTimeHeatmapDateFilter, setOutsideFilters: setAccessTimeHeatmapDateFilter, description: t('analyticsAnalyticsUsersStats.accessTimesDescription'), children: jsx(AccessTimeHeatmap, { loading: isLoadingAccessTimeHeatmap, accessTimeData: accessTimeHeatmap }) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsUsersStats.userDetailsTitle'), label: t('analyticsAnalyticsUsersStats.userDetailsLabel'), filters: userDetailsStatsDateFilter, setOutsideFilters: setUserDetailsStatsDateFilter, overflowAuto: true, height: "450px", description: t('analyticsAnalyticsUsersStats.userDetailsDescription'), children: jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-user", type: "text", placeholder: t('analyticsAnalyticsUsersStats.searchPlaceholder'), value: userDetailsStatsSearch, onChange: handleSearchInputChange, required: true, className: `pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11` })] }), jsx("div", { className: "rounded-md", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsUsersStats.tableHeaderUserEmail') }), jsx(TableHead, { className: "w-[200px]", children: t('analyticsAnalyticsUsersStats.tableHeaderUsername') }), jsx(TableHead, { children: t('analyticsAnalyticsUsersStats.tableHeaderMessages') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsUsersStats.tableHeaderLastActive') })] }) }), jsx(TableBody, { children: (_e = userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.results) === null || _e === void 0 ? void 0 : _e.map((user, index) => (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: jsx("div", { className: "flex items-center", children: user.email || t('analyticsAnalyticsUsersStats.anonymous') }) }), jsx(TableCell, { children: user.full_name || '' }), jsx(TableCell, { children: user.messages }), jsx(TableCell, { className: "text-right", children: user.last_activity ? formatRelativeTime$1(user.last_activity, t) : '-' })] }, index))) })] }) }), isLoadingUserDetailsStats && (jsx("div", { className: "flex items-center justify-center py-4", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsUsersStats.loading') }) })), !isLoadingUserDetailsStats &&
|
|
187634
187867
|
(!((_f = userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.results) === null || _f === void 0 ? void 0 : _f.length) || ((_g = userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.results) === null || _g === void 0 ? void 0 : _g.length) === 0) && (jsx(EmptyStats, {})), (userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.pagination) && ((_h = userDetailsStats === null || userDetailsStats === void 0 ? void 0 : userDetailsStats.results) === null || _h === void 0 ? void 0 : _h.length) > 0 && (jsxs("div", { className: "flex items-center justify-center space-x-2 py-4", children: [jsxs(Button$1, { variant: "outline", size: "sm", className: "h-8 w-8 p-2 !w-auto !inline-flex bg-transparent", onClick: () => setUserDetailsStatsPage(1), disabled: !userDetailsStats.pagination.has_previous, children: [jsx("span", { className: "sr-only", children: t('analyticsAnalyticsUsersStats.goToFirstPage') }), jsx(ChevronsLeft, { className: "h-4 w-4" })] }), jsxs(Button$1, { variant: "outline", size: "sm", className: "h-8 w-8 p-2 !w-auto !inline-flex bg-transparent", onClick: () => setUserDetailsStatsPage(userDetailsStats.pagination.page - 1), disabled: !userDetailsStats.pagination.has_previous, children: [jsx("span", { className: "sr-only", children: t('analyticsAnalyticsUsersStats.goToPreviousPage') }), jsx(ChevronLeft, { className: "h-4 w-4" })] }), Array.from({ length: userDetailsStats.pagination.total_pages }, (_, i) => i + 1)
|
|
187635
187868
|
.filter((page) => {
|
|
187636
187869
|
const current = userDetailsStats.pagination.page;
|
|
@@ -187728,7 +187961,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
|
|
|
187728
187961
|
const currentMentorId = selectedMentorId || mentorId;
|
|
187729
187962
|
const { topicsStats, isLoadingTopicsStats, conversationsStats, isLoadingConversationsStats, conversationsStatsDateFilter, setConversationsStatsDateFilter, averageRatingStats, averageRatingDateFilter, setAverageRatingDateFilter, topicsDetailsStats, isLoadingTopicsDetailsStats, topicsDetailsDateFilter, setTopicsDetailsDateFilter, } = useTopics({ tenantKey, mentorId: currentMentorId, usergroupIds });
|
|
187730
187963
|
const averageRatingDisplayed = ((_a = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _a === void 0 ? void 0 : _a.length) && ((_b = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _b === void 0 ? void 0 : _b.length) > 0;
|
|
187731
|
-
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('analyticsAnalyticsTopicsStats.topics'), value: ((_c = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.topics) === null || _c === void 0 ? void 0 : _c.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_d = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.topics) === null || _d === void 0 ? void 0 : _d.percentage_change) || 0 }), jsx(StatCard, { title: t('analyticsAnalyticsTopicsStats.conversations'), value: ((_e = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.conversations) === null || _e === void 0 ? void 0 : _e.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_f = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.conversations) === null || _f === void 0 ? void 0 : _f.percentage_change) || 0 }), jsx(StatCard, { title: t('analyticsAnalyticsTopicsStats.messages'), value: ((_g = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.messages) === null || _g === void 0 ? void 0 : _g.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_h = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.messages) === null || _h === void 0 ? void 0 : _h.percentage_change) || 0 })] }), jsxs("div", { className: cn('grid grid-cols-1 lg:grid-cols-2 gap-5', !averageRatingDisplayed ? 'lg:grid-cols-1' : ''), children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.conversations'), label: t('analyticsAnalyticsTopicsStats.conversations'), filters: conversationsStatsDateFilter, setOutsideFilters: setConversationsStatsDateFilter, children: isLoadingConversationsStats ? (jsx(ChartLoading, {})) : ((_j = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _j === void 0 ? void 0 : _j.length) && ((_k = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _k === void 0 ? void 0 : _k.length) > 0 ? (jsxs(LineChart, { data: (_l = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _l === void 0 ? void 0 : _l.map((point) => ({
|
|
187964
|
+
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('analyticsAnalyticsTopicsStats.topics'), value: ((_c = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.topics) === null || _c === void 0 ? void 0 : _c.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_d = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.topics) === null || _d === void 0 ? void 0 : _d.percentage_change) || 0, description: t('analyticsAnalyticsTopicsStats.topicsDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTopicsStats.conversations'), value: ((_e = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.conversations) === null || _e === void 0 ? void 0 : _e.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_f = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.conversations) === null || _f === void 0 ? void 0 : _f.percentage_change) || 0, description: t('analyticsAnalyticsTopicsStats.conversationsDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTopicsStats.messages'), value: ((_g = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.messages) === null || _g === void 0 ? void 0 : _g.this_month) || 0, loading: isLoadingTopicsStats, percentage: ((_h = topicsStats === null || topicsStats === void 0 ? void 0 : topicsStats.messages) === null || _h === void 0 ? void 0 : _h.percentage_change) || 0, description: t('analyticsAnalyticsTopicsStats.messagesDescription') })] }), jsxs("div", { className: cn('grid grid-cols-1 lg:grid-cols-2 gap-5', !averageRatingDisplayed ? 'lg:grid-cols-1' : ''), children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.conversations'), label: t('analyticsAnalyticsTopicsStats.conversations'), filters: conversationsStatsDateFilter, setOutsideFilters: setConversationsStatsDateFilter, description: t('analyticsAnalyticsTopicsStats.conversationsChartDescription'), children: isLoadingConversationsStats ? (jsx(ChartLoading, {})) : ((_j = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _j === void 0 ? void 0 : _j.length) && ((_k = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _k === void 0 ? void 0 : _k.length) > 0 ? (jsxs(LineChart, { data: (_l = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _l === void 0 ? void 0 : _l.map((point) => ({
|
|
187732
187965
|
date: formatDateToShortFormat$2(point.date, conversationsStatsDateFilter.activeFilter === 'today'),
|
|
187733
187966
|
value: point.value,
|
|
187734
187967
|
})), margin: { top: 5, right: 5, left: 0, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "#f0f0f0", vertical: false }), jsx(XAxis, { dataKey: "date", tick: { fontSize: 8, textAnchor: 'end' }, angle: -45, interval: Math.floor(Number((_m = conversationsStats === null || conversationsStats === void 0 ? void 0 : conversationsStats.points) === null || _m === void 0 ? void 0 : _m.length) / 31) || 0 }), jsx(YAxis, { tick: { fontSize: 10 }, width: 30, allowDecimals: false }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187744,7 +187977,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
|
|
|
187744
187977
|
stroke: '#38A1E5',
|
|
187745
187978
|
strokeWidth: 2,
|
|
187746
187979
|
fill: 'white',
|
|
187747
|
-
} })] })) : (jsx(EmptyStats, {})) }), averageRatingDisplayed ? (jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.averageRating'), label: t('analyticsAnalyticsTopicsStats.rating'), filters: averageRatingDateFilter, setOutsideFilters: setAverageRatingDateFilter, children: ((_o = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _o === void 0 ? void 0 : _o.length) && ((_p = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _p === void 0 ? void 0 : _p.length) > 0 ? (jsxs(LineChart, { data: (_q = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _q === void 0 ? void 0 : _q.map((point) => ({
|
|
187980
|
+
} })] })) : (jsx(EmptyStats, {})) }), averageRatingDisplayed ? (jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.averageRating'), label: t('analyticsAnalyticsTopicsStats.rating'), filters: averageRatingDateFilter, setOutsideFilters: setAverageRatingDateFilter, description: t('analyticsAnalyticsTopicsStats.averageRatingDescription'), children: ((_o = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _o === void 0 ? void 0 : _o.length) && ((_p = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _p === void 0 ? void 0 : _p.length) > 0 ? (jsxs(LineChart, { data: (_q = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _q === void 0 ? void 0 : _q.map((point) => ({
|
|
187748
187981
|
date: formatDateToShortFormat$2(point.date, averageRatingDateFilter.activeFilter === 'today'),
|
|
187749
187982
|
value: point.value,
|
|
187750
187983
|
})), margin: { top: 5, right: 5, left: 0, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "#f0f0f0", vertical: false }), jsx(XAxis, { dataKey: "date", tick: { fontSize: 8, textAnchor: 'end' }, angle: -45, interval: Math.floor(Number((_r = averageRatingStats === null || averageRatingStats === void 0 ? void 0 : averageRatingStats.points) === null || _r === void 0 ? void 0 : _r.length) / 31) || 0 }), jsx(YAxis, { tick: { fontSize: 10 }, width: 30, domain: [0, 5], tickCount: 6 }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187758,7 +187991,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
|
|
|
187758
187991
|
stroke: '#38A1E5',
|
|
187759
187992
|
strokeWidth: 2,
|
|
187760
187993
|
fill: 'white',
|
|
187761
|
-
} })] })) : (jsx(EmptyStats, {})) })) : null] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.topicsDetails'), label: t('analyticsAnalyticsTopicsStats.messages'), filters: topicsDetailsDateFilter, setOutsideFilters: setTopicsDetailsDateFilter, children: isLoadingTopicsDetailsStats ? (jsx(ChartLoading, {})) : ((_s = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _s === void 0 ? void 0 : _s.length) && ((_t = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _t === void 0 ? void 0 : _t.length) > 0 ? (jsxs(BarChart, { data: (_u = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _u === void 0 ? void 0 : _u.map((result) => ({
|
|
187994
|
+
} })] })) : (jsx(EmptyStats, {})) })) : null] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsTopicsStats.topicsDetails'), label: t('analyticsAnalyticsTopicsStats.messages'), filters: topicsDetailsDateFilter, setOutsideFilters: setTopicsDetailsDateFilter, description: t('analyticsAnalyticsTopicsStats.topicsDetailsDescription'), children: isLoadingTopicsDetailsStats ? (jsx(ChartLoading, {})) : ((_s = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _s === void 0 ? void 0 : _s.length) && ((_t = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _t === void 0 ? void 0 : _t.length) > 0 ? (jsxs(BarChart, { data: (_u = topicsDetailsStats === null || topicsDetailsStats === void 0 ? void 0 : topicsDetailsStats.results) === null || _u === void 0 ? void 0 : _u.map((result) => ({
|
|
187762
187995
|
topic: result.name,
|
|
187763
187996
|
value: result.messages,
|
|
187764
187997
|
})), layout: "vertical", margin: { top: 5, right: 30, left: 20, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), jsx(XAxis, { type: "number", tick: { fontSize: 10 }, allowDecimals: false, domain: [0, 'dataMax'] }), jsx(YAxis, { dataKey: "topic", type: "category", tick: { fontSize: 10 }, interval: 0, width: 120 }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -187997,7 +188230,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
|
|
|
187997
188230
|
}
|
|
187998
188231
|
return pages;
|
|
187999
188232
|
};
|
|
188000
|
-
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, { loading: isLoadingWeeklyCostData, title: t('analyticsAnalyticsFinancialStats.weeklyCosts'), value: Number((weeklyCostData === null || weeklyCostData === void 0 ? void 0 : weeklyCostData.value) || 0).toFixed(2), percentage: (weeklyCostData === null || weeklyCostData === void 0 ? void 0 : weeklyCostData.percentage_change) || 0, showDollarSign: true }), jsx(StatCard, { loading: isLoadingMonthlyCostData, title: t('analyticsAnalyticsFinancialStats.monthlyCosts'), value: Number((monthlyCostData === null || monthlyCostData === void 0 ? void 0 : monthlyCostData.value) || 0).toFixed(2), percentage: (monthlyCostData === null || monthlyCostData === void 0 ? void 0 : monthlyCostData.percentage_change) || 0, showDollarSign: true }), jsx(StatCard, { loading: isLoadingTotalCostData, title: t('analyticsAnalyticsFinancialStats.totalCosts'), value: Number((totalCostData === null || totalCostData === void 0 ? void 0 : totalCostData.value) || 0).toFixed(2), percentage: totalCostData === null || totalCostData === void 0 ? void 0 : totalCostData.percentage_change, showDollarSign: true })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costPerDayTitle'), label: t('analyticsAnalyticsFinancialStats.costPerDayLabel'), filters: detailedCostPerDayFilters, setOutsideFilters: setDetailedCostPerDayFilters, children: isLoadingDetailedCostPerDayData ? (jsx(ChartLoading, {})) : ((_a = detailedCostPerDayData === null || detailedCostPerDayData === void 0 ? void 0 : detailedCostPerDayData.overtime) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
188233
|
+
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, { loading: isLoadingWeeklyCostData, title: t('analyticsAnalyticsFinancialStats.weeklyCosts'), value: Number((weeklyCostData === null || weeklyCostData === void 0 ? void 0 : weeklyCostData.value) || 0).toFixed(2), percentage: (weeklyCostData === null || weeklyCostData === void 0 ? void 0 : weeklyCostData.percentage_change) || 0, showDollarSign: true, description: t('analyticsAnalyticsFinancialStats.weeklyCostsDescription') }), jsx(StatCard, { loading: isLoadingMonthlyCostData, title: t('analyticsAnalyticsFinancialStats.monthlyCosts'), value: Number((monthlyCostData === null || monthlyCostData === void 0 ? void 0 : monthlyCostData.value) || 0).toFixed(2), percentage: (monthlyCostData === null || monthlyCostData === void 0 ? void 0 : monthlyCostData.percentage_change) || 0, showDollarSign: true, description: t('analyticsAnalyticsFinancialStats.monthlyCostsDescription') }), jsx(StatCard, { loading: isLoadingTotalCostData, title: t('analyticsAnalyticsFinancialStats.totalCosts'), value: Number((totalCostData === null || totalCostData === void 0 ? void 0 : totalCostData.value) || 0).toFixed(2), percentage: totalCostData === null || totalCostData === void 0 ? void 0 : totalCostData.percentage_change, showDollarSign: true, description: t('analyticsAnalyticsFinancialStats.totalCostsDescription') })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costPerDayTitle'), label: t('analyticsAnalyticsFinancialStats.costPerDayLabel'), filters: detailedCostPerDayFilters, setOutsideFilters: setDetailedCostPerDayFilters, description: t('analyticsAnalyticsFinancialStats.costPerDayDescription'), children: isLoadingDetailedCostPerDayData ? (jsx(ChartLoading, {})) : ((_a = detailedCostPerDayData === null || detailedCostPerDayData === void 0 ? void 0 : detailedCostPerDayData.overtime) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
188001
188234
|
((_b = detailedCostPerDayData === null || detailedCostPerDayData === void 0 ? void 0 : detailedCostPerDayData.overtime) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (jsxs(BarChart, { data: detailedCostPerDayData.overtime.map((item) => ({
|
|
188002
188235
|
date: formatDateToShortFormat$2(item.date, detailedCostPerDayFilters.activeFilter === 'today'),
|
|
188003
188236
|
value: item.value,
|
|
@@ -188009,7 +188242,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
|
|
|
188009
188242
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", style: { borderColor: 'oklch(.922 0 0)' }, role: "tooltip", "aria-label": t('analyticsAnalyticsFinancialStats.costDetailsAriaLabel', {
|
|
188010
188243
|
label,
|
|
188011
188244
|
}), tabIndex: -1, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base", children: label }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsFinancialStats.costTooltipLabel') }), jsxs("span", { className: "font-medium text-foreground", children: ["$", (Number(data === null || data === void 0 ? void 0 : data.value) || 0).toFixed(3)] })] }) })] }));
|
|
188012
|
-
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [5, 5, 5, 5], barSize: 30 })] })) : (jsx(EmptyStats, {})) }) }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costByProviderTitle'), label: t('analyticsAnalyticsFinancialStats.costByProviderLabel'), filters: detailedCostPerProviderFilters, setOutsideFilters: setDetailedCostPerProviderFilters, children: isLoadingDetailedCostPerProviderData ? (jsx(ChartLoading, {})) : ((_d = detailedCostPerProviderData === null || detailedCostPerProviderData === void 0 ? void 0 : detailedCostPerProviderData.rows) === null || _d === void 0 ? void 0 : _d.length) &&
|
|
188245
|
+
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [5, 5, 5, 5], barSize: 30 })] })) : (jsx(EmptyStats, {})) }) }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costByProviderTitle'), label: t('analyticsAnalyticsFinancialStats.costByProviderLabel'), filters: detailedCostPerProviderFilters, setOutsideFilters: setDetailedCostPerProviderFilters, description: t('analyticsAnalyticsFinancialStats.costByProviderDescription'), children: isLoadingDetailedCostPerProviderData ? (jsx(ChartLoading, {})) : ((_d = detailedCostPerProviderData === null || detailedCostPerProviderData === void 0 ? void 0 : detailedCostPerProviderData.rows) === null || _d === void 0 ? void 0 : _d.length) &&
|
|
188013
188246
|
((_e = detailedCostPerProviderData === null || detailedCostPerProviderData === void 0 ? void 0 : detailedCostPerProviderData.rows) === null || _e === void 0 ? void 0 : _e.length) > 0 ? (jsxs(PieChart, { children: [jsx(Pie, { data: (_f = detailedCostPerProviderData === null || detailedCostPerProviderData === void 0 ? void 0 : detailedCostPerProviderData.rows) === null || _f === void 0 ? void 0 : _f.map((item) => ({
|
|
188014
188247
|
name: item.provider,
|
|
188015
188248
|
value: item.total_cost,
|
|
@@ -188024,7 +188257,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
|
|
|
188024
188257
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-[99999999]", style: { borderColor: 'oklch(.922 0 0)' }, role: "tooltip", "aria-label": t('analyticsAnalyticsFinancialStats.providerCostDetailsAriaLabel', {
|
|
188025
188258
|
label,
|
|
188026
188259
|
}), tabIndex: -1, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base", children: label }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center", children: [jsxs("span", { className: "text-muted-foreground", children: [data === null || data === void 0 ? void 0 : data.name, ":"] }), jsxs("span", { className: "font-medium text-foreground", children: ["$", (_b = data === null || data === void 0 ? void 0 : data.value) === null || _b === void 0 ? void 0 : _b.toFixed(2)] })] }) })] }));
|
|
188027
|
-
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costByLLMTitle'), label: t('analyticsAnalyticsFinancialStats.costByLLMLabel'), filters: detailedLLMCostFilters, setOutsideFilters: setDetailedLLMCostFilters, children: isLoadingDetailedLLMCostData ? (jsx(ChartLoading, {})) : ((_h = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _h === void 0 ? void 0 : _h.length) && ((_j = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _j === void 0 ? void 0 : _j.length) > 0 ? (jsxs(BarChart, { data: (_k = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _k === void 0 ? void 0 : _k.map((item) => ({
|
|
188260
|
+
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }), jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costByLLMTitle'), label: t('analyticsAnalyticsFinancialStats.costByLLMLabel'), filters: detailedLLMCostFilters, setOutsideFilters: setDetailedLLMCostFilters, description: t('analyticsAnalyticsFinancialStats.costByLLMDescription'), children: isLoadingDetailedLLMCostData ? (jsx(ChartLoading, {})) : ((_h = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _h === void 0 ? void 0 : _h.length) && ((_j = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _j === void 0 ? void 0 : _j.length) > 0 ? (jsxs(BarChart, { data: (_k = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _k === void 0 ? void 0 : _k.map((item) => ({
|
|
188028
188261
|
name: item.llm_model,
|
|
188029
188262
|
value: item.total_cost,
|
|
188030
188263
|
})), margin: { top: 5, right: 5, left: 20, bottom: 5 }, children: [jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "#f0f0f0" }), jsx(XAxis, { dataKey: "name", tick: { fontSize: 9, textAnchor: 'end' }, angle: -45, height: 50, interval: Math.floor(Number((_l = detailedLLMCostData === null || detailedLLMCostData === void 0 ? void 0 : detailedLLMCostData.rows) === null || _l === void 0 ? void 0 : _l.length) / 31) || 0 }), jsx(YAxis, { tick: { fontSize: 10 }, width: 30, tickFormatter: (value) => `$${value.toFixed(3)}` }), jsx(Tooltip, { content: ({ active, payload, label }) => {
|
|
@@ -188035,7 +188268,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
|
|
|
188035
188268
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", style: { borderColor: 'oklch(.922 0 0)' }, role: "tooltip", "aria-label": t('analyticsAnalyticsFinancialStats.llmCostDetailsAriaLabel', {
|
|
188036
188269
|
label,
|
|
188037
188270
|
}), tabIndex: -1, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base", children: label }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsFinancialStats.totalCostTooltipLabel') }), jsxs("span", { className: "font-medium text-foreground", children: ["$", (_b = data === null || data === void 0 ? void 0 : data.value) === null || _b === void 0 ? void 0 : _b.toFixed(3)] })] }) })] }));
|
|
188038
|
-
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [5, 5, 5, 5], barSize: 25 })] })) : (jsx(EmptyStats, {})) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costPerUserTitle'), label: t('analyticsAnalyticsFinancialStats.costPerUserLabel'), filters: detailedCostPerUserFilters, setOutsideFilters: setDetailedCostPerUserFilters, overflowAuto: true, height: "450px", children: jsxs("div", { className: "space-y-4", children: [jsx("div", { className: "rounded-md", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsFinancialStats.tableHeaderUserEmail') }), jsx(TableHead, { className: "w-[120px]", children: t('analyticsAnalyticsFinancialStats.tableHeaderTotalCost') }), jsx(TableHead, { children: t('analyticsAnalyticsFinancialStats.tableHeaderSessions') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsFinancialStats.tableHeaderLastActive') })] }) }), jsx(TableBody, { children: (_m = detailedCostPerUserData === null || detailedCostPerUserData === void 0 ? void 0 : detailedCostPerUserData.rows) === null || _m === void 0 ? void 0 : _m.map((user, index) => (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: jsx("div", { className: "flex items-center", children: (user === null || user === void 0 ? void 0 : user.email) ||
|
|
188271
|
+
}, cursor: { fill: 'rgba(0, 0, 0, 0.05)' }, wrapperStyle: { outline: 'none' } }), jsx(Bar, { dataKey: "value", fill: "#38A1E5", radius: [5, 5, 5, 5], barSize: 25 })] })) : (jsx(EmptyStats, {})) })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsFinancialStats.costPerUserTitle'), label: t('analyticsAnalyticsFinancialStats.costPerUserLabel'), filters: detailedCostPerUserFilters, setOutsideFilters: setDetailedCostPerUserFilters, overflowAuto: true, height: "450px", description: t('analyticsAnalyticsFinancialStats.costPerUserDescription'), children: jsxs("div", { className: "space-y-4", children: [jsx("div", { className: "rounded-md", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsFinancialStats.tableHeaderUserEmail') }), jsx(TableHead, { className: "w-[120px]", children: t('analyticsAnalyticsFinancialStats.tableHeaderTotalCost') }), jsx(TableHead, { children: t('analyticsAnalyticsFinancialStats.tableHeaderSessions') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsFinancialStats.tableHeaderLastActive') })] }) }), jsx(TableBody, { children: (_m = detailedCostPerUserData === null || detailedCostPerUserData === void 0 ? void 0 : detailedCostPerUserData.rows) === null || _m === void 0 ? void 0 : _m.map((user, index) => (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: jsx("div", { className: "flex items-center", children: (user === null || user === void 0 ? void 0 : user.email) ||
|
|
188039
188272
|
(user === null || user === void 0 ? void 0 : user.username) ||
|
|
188040
188273
|
t('analyticsAnalyticsFinancialStats.anonymous') }) }), jsxs(TableCell, { className: "font-medium", children: ["$", Number(user.total_cost || 0).toFixed(2)] }), jsx(TableCell, { children: user.sessions }), jsx(TableCell, { className: "text-right", children: user.last_active ? formatRelativeTime$2(user.last_active) : '-' })] }, index))) })] }) }), isLoadingDetailedCostPerUserData && (jsx("div", { className: "h-[60px]", children: jsx(ChartLoading, {}) })), !isLoadingDetailedCostPerUserData &&
|
|
188041
188274
|
(!((_o = detailedCostPerUserData === null || detailedCostPerUserData === void 0 ? void 0 : detailedCostPerUserData.rows) === null || _o === void 0 ? void 0 : _o.length) ||
|
|
@@ -222757,8 +222990,8 @@ function AnalyticsTranscriptsStats({ tenantKey, mentorId, selectedMentorId, user
|
|
|
222757
222990
|
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: [jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelFullName'), ' ', ((_a = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _a === void 0 ? void 0 : _a.name) || '-'] }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelUsername'), ' ', ((_b = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _b === void 0 ? void 0 : _b.username) || '-'] }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelAgent'), ' ', ((_c = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _c === void 0 ? void 0 : _c.mentor) || '-'] }), jsxs("div", { children: [t('analyticsAnalyticsTranscriptsStats.labelModel'), ' ', ((_d = transcriptsMessagesDetailsData === null || transcriptsMessagesDetailsData === void 0 ? void 0 : transcriptsMessagesDetailsData.summary) === null || _d === void 0 ? void 0 : _d.model) || '-'] })] })] }), 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) => (jsxs(React__default.Fragment, { children: [(message === null || message === void 0 ? void 0 : message.human) && (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') }) }), jsx("p", { className: "text-sm", children: getMessageContent(message.human) })] }, `${index}-human`)), (message === null || message === void 0 ? void 0 : message.ai) && (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') }) }), jsx(Markdown, { children: getMessageContent(message.ai) })] }, `${index}-ai`))] }, index)))) : (jsx("div", { className: "text-center text-gray-500 py-8", children: jsx("p", { children: t('analyticsAnalyticsTranscriptsStats.noMessages') }) })) })] })) }));
|
|
222758
222991
|
};
|
|
222759
222992
|
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: ((_a = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_messages_per_conversation) === null || _a === void 0 ? void 0 : _a.value) || 0, percentage: ((_b = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_messages_per_conversation) === null || _b === void 0 ? void 0 : _b.percentage_change) ||
|
|
222760
|
-
undefined, loading: isLoadingTranscriptsConversationHeadlineData }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversation'), value: Number(((_c = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _c === void 0 ? void 0 : _c.value) || 0).toFixed(2), percentage: ((_d = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _d === void 0 ? void 0 : _d.percentage_change) ||
|
|
222761
|
-
undefined, showDollarSign: true, loading: isLoadingTranscriptsConversationHeadlineData }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgRating'), value: ((_e = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _e === void 0 ? void 0 : _e.value) || 0, percentage: ((_f = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _f === void 0 ? void 0 : _f.percentage_change) || undefined, loading: isLoadingTranscriptsConversationHeadlineData })] }), 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]" })] }), 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.placeholderUsers'), value: filters.userSearch, onChange: (e) => setFilters({ ...filters, userSearch: e.target.value }), className: "pl-10 w-[200px]" })] }), 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 ? (
|
|
222993
|
+
undefined, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgMessagesPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversation'), value: Number(((_c = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _c === void 0 ? void 0 : _c.value) || 0).toFixed(2), percentage: ((_d = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_cost_per_conversation) === null || _d === void 0 ? void 0 : _d.percentage_change) ||
|
|
222994
|
+
undefined, showDollarSign: true, loading: isLoadingTranscriptsConversationHeadlineData, description: t('analyticsAnalyticsTranscriptsStats.avgCostPerConversationDescription') }), jsx(StatCard, { title: t('analyticsAnalyticsTranscriptsStats.avgRating'), value: ((_e = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _e === void 0 ? void 0 : _e.value) || 0, percentage: ((_f = transcriptsConversationHeadlineData === null || transcriptsConversationHeadlineData === void 0 ? void 0 : transcriptsConversationHeadlineData.avg_rating) === null || _f === void 0 ? void 0 : _f.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]" })] }), 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.placeholderUsers'), value: filters.userSearch, onChange: (e) => setFilters({ ...filters, userSearch: e.target.value }), className: "pl-10 w-[200px]" })] }), 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 ? (
|
|
222762
222995
|
// Loading state
|
|
222763
222996
|
jsx("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, index) => (jsxs(Card, { 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 ? (
|
|
222764
222997
|
// Results
|
|
@@ -224018,7 +224251,9 @@ function AnalyticsCourses({ tenantKey, mentorId, selectedMentorId, basePath = ''
|
|
|
224018
224251
|
router.push(`${basePath}/courses/${courseId}`);
|
|
224019
224252
|
};
|
|
224020
224253
|
const hasEnrollmentStatsPoints = Number((_a = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
224021
|
-
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.activeCourses'), value: courseStats.active_courses, percentage: courseStats.active_courses_percentage }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.totalCourses'), value: courseStats.total_courses, percentage: courseStats.total_courses_percentage }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.enrollments'), value: courseStats.enrollments, percentage: courseStats.enrollments_percentage
|
|
224254
|
+
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.activeCourses'), value: courseStats.active_courses, percentage: courseStats.active_courses_percentage, description: t('analyticsAnalyticsCourses.activeCoursesDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.totalCourses'), value: courseStats.total_courses, percentage: courseStats.total_courses_percentage, description: t('analyticsAnalyticsCourses.totalCoursesDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.enrollments'), value: courseStats.enrollments, percentage: courseStats.enrollments_percentage, description: t('analyticsAnalyticsCourses.enrollmentsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.totalLearners'), value: courseStats.total_learners,
|
|
224255
|
+
//percentage={courseStats.enrollments_percentage}
|
|
224256
|
+
description: t('analyticsAnalyticsCourses.totalLearnersDescription') })] }), (isLoading || hasEnrollmentStatsPoints) && (jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsCourses.courseOvertime'), label: t('analyticsAnalyticsCourses.timeSpent'), filters: enrollmentStatsDateFilter, setOutsideFilters: setEnrollmentStatsDateFilter, description: t('analyticsAnalyticsCourses.courseOvertimeDescription'), children: isLoading ? (jsx(ChartLoading, {})) : (jsxs(LineChart, { data: ((_b = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _b === void 0 ? void 0 : _b.map((point) => ({
|
|
224022
224257
|
date: formatDateToShortFormat$1(point.date, enrollmentStatsDateFilter.activeFilter === 'today'),
|
|
224023
224258
|
value: formatSecondsToHours$1(point.value),
|
|
224024
224259
|
rawSeconds: point.value,
|
|
@@ -224033,7 +224268,7 @@ function AnalyticsCourses({ tenantKey, mentorId, selectedMentorId, basePath = ''
|
|
|
224033
224268
|
stroke: '#38A1E5',
|
|
224034
224269
|
strokeWidth: 2,
|
|
224035
224270
|
fill: 'white',
|
|
224036
|
-
} })] })) }) })), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsCourses.coursesTableAriaLabel'), children: [jsx("h3", { className: "text-base font-medium text-gray-700
|
|
224271
|
+
} })] })) }) })), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsCourses.coursesTableAriaLabel'), children: [jsxs("div", { className: "flex items-center gap-1 mb-4", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsCourses.coursesHeading') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsCourses.coursesHeading'), description: t('analyticsAnalyticsCourses.coursesTableDescription') })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-course", type: "text", placeholder: t('analyticsAnalyticsCourses.searchPlaceholder'), value: coursesListSearch, onChange: handleSearchInputChange, className: "pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11", "aria-label": t('analyticsAnalyticsCourses.searchAriaLabel') })] }), isLoading ? (jsx("div", { className: "flex items-center justify-center py-8", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsCourses.loading') }) })) : ((_d = coursesList === null || coursesList === void 0 ? void 0 : coursesList.courses) === null || _d === void 0 ? void 0 : _d.length) && coursesList.courses.length > 0 ? (jsxs(Fragment$1, { children: [jsx("div", { className: "rounded-md overflow-x-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsCourses.colCourseName') }), jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsCourses.colCourseId') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsCourses.colEnrollments') })] }) }), jsx(TableBody, { children: coursesList.courses.map((course, index) => (jsxs(TableRow, { className: `cursor-pointer hover:bg-muted/50 h-[48px] ${index % 2 === 0 ? 'bg-gray-50' : ''}`, onClick: () => handleCourseClick(course.id), role: "button", tabIndex: 0, onKeyDown: (e) => {
|
|
224037
224272
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
224038
224273
|
e.preventDefault();
|
|
224039
224274
|
handleCourseClick(course.id);
|
|
@@ -224071,7 +224306,7 @@ function AnalyticsCourseDetail({ tenantKey, mentorId, selectedMentorId, courseId
|
|
|
224071
224306
|
const [selectedEnrollment, setSelectedEnrollment] = useState(null);
|
|
224072
224307
|
const resolvedCourseName = courseName || (courseInfo === null || courseInfo === void 0 ? void 0 : courseInfo.name);
|
|
224073
224308
|
const showTitle = showCourseTitle && !!resolvedCourseName;
|
|
224074
|
-
return (jsxs("div", { className: "space-y-8", children: [(onBack || showTitle) && (jsxs("div", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-4", children: [jsx("div", { className: "flex flex-1 justify-start", children: onBack && (
|
|
224309
|
+
return (jsxs("div", { className: "space-y-8", children: [(onBack || showTitle) && (jsxs("div", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-4", children: [jsx("div", { className: "flex flex-1 justify-start", children: onBack && (jsx(Button$1, { variant: "ghost", size: "icon", onClick: onBack, "aria-label": t('analyticsAnalyticsCourseDetail.goBackAriaLabel'), className: "h-8 w-8 rounded-full bg-gray-100 text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) })) }), showTitle && (jsx("h2", { className: "flex-1 text-left text-2xl font-medium text-gray-700 sm:text-center", children: resolvedCourseName })), jsx("div", { className: "hidden flex-1 sm:block" })] })), jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourseDetail.activeEnrollments'), value: courseDetailStats.active_enrollments, percentage: courseDetailStats.active_enrollments_percentage, description: t('analyticsAnalyticsCourseDetail.activeEnrollmentsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourseDetail.completedEnrollments'), value: courseDetailStats.completed_enrollments, percentage: courseDetailStats.completed_enrollments_percentage, description: t('analyticsAnalyticsCourseDetail.completedEnrollmentsDescription') })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsCourseDetail.courseEnrollmentsTableAriaLabel'), children: [jsxs("div", { className: "flex items-center gap-1 mb-4", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsCourseDetail.enrolledUsers') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsCourseDetail.enrolledUsers'), description: t('analyticsAnalyticsCourseDetail.enrolledUsersDescription') })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-enrolled-user", type: "text", placeholder: t('analyticsAnalyticsCourseDetail.searchPlaceholder'), value: courseEnrollmentsSearch, onChange: handleCourseEnrollmentsSearchInputChange, className: "pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11", "aria-label": t('analyticsAnalyticsCourseDetail.searchAriaLabel') })] }), isLoading ? (jsx("div", { className: "flex items-center justify-center py-8", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsCourseDetail.loadingLabel') }) })) : ((_a = courseEnrollments === null || courseEnrollments === void 0 ? void 0 : courseEnrollments.enrollments) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
224075
224310
|
courseEnrollments.enrollments.length > 0 ? (jsxs(Fragment$1, { children: [jsx("div", { className: "rounded-md overflow-x-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsCourseDetail.columnName') }), jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsCourseDetail.columnEmail') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsCourseDetail.columnEnrollmentDate') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsCourseDetail.columnLastActiveOn') })] }) }), jsx(TableBody, { children: courseEnrollments.enrollments.map((enrollment, index) => (jsxs(TableRow, { className: `cursor-pointer hover:bg-muted/50 h-[48px] ${index % 2 === 0 ? 'bg-gray-50' : ''}`, onClick: () => setSelectedEnrollment(enrollment), role: "button", tabIndex: 0, onKeyDown: (e) => {
|
|
224076
224311
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
224077
224312
|
e.preventDefault();
|
|
@@ -224375,7 +224610,9 @@ function AnalyticsPrograms({ tenantKey, mentorId, selectedMentorId, basePath = '
|
|
|
224375
224610
|
router.push(`${basePath}/programs/${programId}`);
|
|
224376
224611
|
};
|
|
224377
224612
|
const hasEnrollmentStatsPoints = Number((_a = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
224378
|
-
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.activePrograms'), value: programStats.active_programs, percentage: programStats.active_programs_percentage }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.totalPrograms'), value: programStats.total_programs, percentage: programStats.total_programs_percentage }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.enrollments'), value: programStats.enrollments, percentage: programStats.enrollments_percentage
|
|
224613
|
+
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.activePrograms'), value: programStats.active_programs, percentage: programStats.active_programs_percentage, description: t('analyticsAnalyticsPrograms.activeProgramsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.totalPrograms'), value: programStats.total_programs, percentage: programStats.total_programs_percentage, description: t('analyticsAnalyticsPrograms.totalProgramsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.enrollments'), value: programStats.enrollments, percentage: programStats.enrollments_percentage, description: t('analyticsAnalyticsPrograms.enrollmentsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.totalLearners'), value: programStats.total_learners,
|
|
224614
|
+
//percentage={programStats.enrollments_percentage}
|
|
224615
|
+
description: t('analyticsAnalyticsPrograms.totalLearnersDescription') })] }), (isLoading || hasEnrollmentStatsPoints) && (jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(ChartCardWrapper, { title: t('analyticsAnalyticsPrograms.programOvertime'), label: t('analyticsAnalyticsPrograms.timeSpent'), filters: enrollmentStatsDateFilter, setOutsideFilters: setEnrollmentStatsDateFilter, description: t('analyticsAnalyticsPrograms.programOvertimeDescription'), children: isLoading ? (jsx(ChartLoading, {})) : (jsxs(LineChart, { data: ((_b = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _b === void 0 ? void 0 : _b.map((point) => ({
|
|
224379
224616
|
date: formatDateToShortFormat(point.date, enrollmentStatsDateFilter.activeFilter === 'today'),
|
|
224380
224617
|
value: formatSecondsToHours(point.value),
|
|
224381
224618
|
rawSeconds: point.value,
|
|
@@ -224390,7 +224627,7 @@ function AnalyticsPrograms({ tenantKey, mentorId, selectedMentorId, basePath = '
|
|
|
224390
224627
|
stroke: '#38A1E5',
|
|
224391
224628
|
strokeWidth: 2,
|
|
224392
224629
|
fill: 'white',
|
|
224393
|
-
} })] })) }) })), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsPrograms.programsTableAriaLabel'), children: [jsx("h3", { className: "text-base font-medium text-gray-700
|
|
224630
|
+
} })] })) }) })), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsPrograms.programsTableAriaLabel'), children: [jsxs("div", { className: "flex items-center gap-1 mb-4", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsPrograms.programs') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsPrograms.programs'), description: t('analyticsAnalyticsPrograms.programsTableDescription') })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-program", type: "text", placeholder: t('analyticsAnalyticsPrograms.searchPlaceholder'), value: programsListSearch, onChange: handleSearchInputChange, className: "pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11", "aria-label": t('analyticsAnalyticsPrograms.searchAriaLabel') })] }), isLoading ? (jsx("div", { className: "flex items-center justify-center py-8", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsPrograms.loading') }) })) : ((_d = programsList === null || programsList === void 0 ? void 0 : programsList.programs) === null || _d === void 0 ? void 0 : _d.length) && programsList.programs.length > 0 ? (jsxs(Fragment$1, { children: [jsx("div", { className: "rounded-md overflow-x-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsPrograms.programName') }), jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsPrograms.programId') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsPrograms.enrollments') })] }) }), jsx(TableBody, { children: programsList.programs.map((program, index) => (jsxs(TableRow, { className: `cursor-pointer hover:bg-muted/50 h-[48px] ${index % 2 === 0 ? 'bg-gray-50' : ''}`, onClick: () => handleProgramClick(program.id), role: "button", tabIndex: 0, onKeyDown: (e) => {
|
|
224394
224631
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
224395
224632
|
e.preventDefault();
|
|
224396
224633
|
handleProgramClick(program.id);
|
|
@@ -224427,7 +224664,7 @@ function AnalyticsProgramDetail({ tenantKey, mentorId, selectedMentorId, program
|
|
|
224427
224664
|
});
|
|
224428
224665
|
const [selectedEnrollment, setSelectedEnrollment] = useState(null);
|
|
224429
224666
|
const resolvedProgramName = programName || (programInfo === null || programInfo === void 0 ? void 0 : programInfo.name);
|
|
224430
|
-
return (jsxs("div", { className: "space-y-8", children: [(onBack || resolvedProgramName) && (jsxs("div", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-4", children: [jsx("div", { className: "flex flex-1 justify-start", children: onBack && (
|
|
224667
|
+
return (jsxs("div", { className: "space-y-8", children: [(onBack || resolvedProgramName) && (jsxs("div", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-4", children: [jsx("div", { className: "flex flex-1 justify-start", children: onBack && (jsx(Button$1, { variant: "ghost", size: "icon", onClick: onBack, "aria-label": t('analyticsAnalyticsProgramDetail.backAriaLabel'), className: "h-8 w-8 rounded-full bg-gray-100 text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700 dark:hover:text-white", children: jsx(ArrowLeft, { className: "h-4 w-4" }) })) }), resolvedProgramName && (jsx("h2", { className: "flex-1 truncate text-left text-2xl font-medium text-gray-700 sm:text-center", children: resolvedProgramName })), jsx("div", { className: "hidden flex-1 sm:block" })] })), jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-3 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsProgramDetail.statTotalEnrollments'), value: programDetailStats.enrollments, percentage: programDetailStats.enrollments_percentage, description: t('analyticsAnalyticsProgramDetail.statTotalEnrollmentsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsProgramDetail.statActiveEnrollments'), value: programDetailStats.active_enrollments, percentage: programDetailStats.active_enrollments_percentage, description: t('analyticsAnalyticsProgramDetail.statActiveEnrollmentsDescription') }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsProgramDetail.statCompletedEnrollments'), value: programDetailStats.completed_enrollments, percentage: programDetailStats.completed_enrollments_percentage, description: t('analyticsAnalyticsProgramDetail.statCompletedEnrollmentsDescription') })] }), jsx("div", { className: "grid grid-cols-1 gap-6", children: jsx(Card, { className: "w-full bg-white shadow-xs", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsProgramDetail.tableAriaLabel'), children: [jsxs("div", { className: "flex items-center gap-1 mb-4", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsProgramDetail.enrolledUsersHeading') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsProgramDetail.enrolledUsersHeading'), description: t('analyticsAnalyticsProgramDetail.enrolledUsersDescription') })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "relative flex-1 w-full", children: [jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), jsx(Input, { id: "search-enrolled-user", type: "text", placeholder: t('analyticsAnalyticsProgramDetail.searchPlaceholder'), value: programEnrollmentsSearch, onChange: handleProgramEnrollmentsSearchInputChange, className: "pl-9 border-gray-300 focus:bg-transparent focus:color-transparent h-11", "aria-label": t('analyticsAnalyticsProgramDetail.searchAriaLabel') })] }), isLoading ? (jsx("div", { className: "flex items-center justify-center py-8", children: jsx("div", { className: "text-sm text-gray-500", children: t('analyticsAnalyticsProgramDetail.loadingLabel') }) })) : ((_a = programEnrollments === null || programEnrollments === void 0 ? void 0 : programEnrollments.enrollments) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
224431
224668
|
programEnrollments.enrollments.length > 0 ? (jsxs(Fragment$1, { children: [jsx("div", { className: "rounded-md overflow-x-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsProgramDetail.colName') }), jsx(TableHead, { className: "text-left", children: t('analyticsAnalyticsProgramDetail.colEmail') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsProgramDetail.colEnrollmentDate') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsProgramDetail.colLastActiveOn') })] }) }), jsx(TableBody, { children: programEnrollments.enrollments.map((enrollment, index) => (jsxs(TableRow, { className: `cursor-pointer hover:bg-muted/50 h-[48px] ${index % 2 === 0 ? 'bg-gray-50' : ''}`, onClick: () => setSelectedEnrollment(enrollment), role: "button", tabIndex: 0, onKeyDown: (e) => {
|
|
224432
224669
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
224433
224670
|
e.preventDefault();
|
|
@@ -224607,10 +224844,10 @@ function statusBadgeStyle(status) {
|
|
|
224607
224844
|
}
|
|
224608
224845
|
}
|
|
224609
224846
|
function AnalyticsMonetizationStats({ tenantKey }) {
|
|
224610
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
224847
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
224611
224848
|
const t = useT();
|
|
224612
224849
|
const { revenueData, isLoadingRevenue, paywallsData, isLoadingPaywalls, subscribersData, isLoadingSubscribers, paywallTypeFilter, setPaywallTypeFilter, subscriberStatusFilter, setSubscriberStatusFilter, paywallPage, setPaywallPage, subscriberPage, setSubscriberPage, statusDistribution, itemTypeDistribution, statusColors, itemTypeColors, } = useMonetization({ tenantKey });
|
|
224613
|
-
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoadingRevenue, title: t('analyticsAnalyticsMonetizationStats.totalRevenue'), value: Number((revenueData === null || revenueData === void 0 ? void 0 : revenueData.sales_volume) || 0).toLocaleString(), showDollarSign: true }), jsx(StatCard, { loading: isLoadingRevenue, title: t('analyticsAnalyticsMonetizationStats.totalSales'), value: (_a = revenueData === null || revenueData === void 0 ? void 0 : revenueData.sales_count) !== null && _a !== void 0 ? _a : 0 }), jsx(StatCard, { loading: isLoadingPaywalls, title: t('analyticsAnalyticsMonetizationStats.activePaywalls'), value: (_b = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.count) !== null && _b !== void 0 ? _b : 0 }), jsx(StatCard, { loading: isLoadingSubscribers, title: t('analyticsAnalyticsMonetizationStats.totalSubscribers'), value: (_c = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.count) !== null && _c !== void 0 ? _c : 0 })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.subscriptionStatusChartCardAriaLabel'), children: [jsx("div", { className: "mb-6", children: jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.subscribersByStatus') }) }), jsx("div", { className: "w-full", style: { height: '350px' }, children: jsx(ChartContainer, { title: t('analyticsAnalyticsMonetizationStats.subscribersByStatus'), config: {
|
|
224850
|
+
return (jsxs("div", { className: "space-y-8", children: [jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [jsx(StatCard, { loading: isLoadingRevenue, title: t('analyticsAnalyticsMonetizationStats.totalRevenue'), value: Number((revenueData === null || revenueData === void 0 ? void 0 : revenueData.sales_volume) || 0).toLocaleString(), showDollarSign: true, description: t('analyticsAnalyticsMonetizationStats.totalRevenueDescription') }), jsx(StatCard, { loading: isLoadingRevenue, title: t('analyticsAnalyticsMonetizationStats.totalSales'), value: (_a = revenueData === null || revenueData === void 0 ? void 0 : revenueData.sales_count) !== null && _a !== void 0 ? _a : 0, description: t('analyticsAnalyticsMonetizationStats.totalSalesDescription') }), jsx(StatCard, { loading: isLoadingPaywalls, title: t('analyticsAnalyticsMonetizationStats.activePaywalls'), value: (_b = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.count) !== null && _b !== void 0 ? _b : 0, description: t('analyticsAnalyticsMonetizationStats.activePaywallsDescription') }), jsx(StatCard, { loading: isLoadingSubscribers, title: t('analyticsAnalyticsMonetizationStats.totalSubscribers'), value: (_c = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.count) !== null && _c !== void 0 ? _c : 0, description: t('analyticsAnalyticsMonetizationStats.totalSubscribersDescription') })] }), jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-5", children: [jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.subscriptionStatusChartCardAriaLabel'), children: [jsx("div", { className: "mb-6", children: jsxs("div", { className: "flex items-center gap-1", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.subscribersByStatus') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsMonetizationStats.subscribersByStatus'), description: t('analyticsAnalyticsMonetizationStats.subscribersByStatusDescription') })] }) }), jsx("div", { className: "w-full", style: { height: '350px' }, children: jsx(ChartContainer, { title: t('analyticsAnalyticsMonetizationStats.subscribersByStatus'), config: {
|
|
224614
224851
|
value: {
|
|
224615
224852
|
label: t('analyticsAnalyticsMonetizationStats.subscribersLabel'),
|
|
224616
224853
|
color: '#38A1E5',
|
|
@@ -224624,7 +224861,7 @@ function AnalyticsMonetizationStats({ tenantKey }) {
|
|
|
224624
224861
|
return null;
|
|
224625
224862
|
const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
|
|
224626
224863
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", style: { borderColor: 'oklch(.922 0 0)' }, role: "tooltip", tabIndex: -1, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base capitalize", children: data === null || data === void 0 ? void 0 : data.name }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center gap-4", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsMonetizationStats.subscribersTooltipLabel') }), jsx("span", { className: "font-medium text-foreground", children: data === null || data === void 0 ? void 0 : data.value })] }) })] }));
|
|
224627
|
-
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }) }) })] }) }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.paywallItemTypeChartCardAriaLabel'), children: [jsx("div", { className: "mb-6", children: jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.paywallsByType') }) }), jsx("div", { className: "w-full", style: { height: '350px' }, children: jsx(ChartContainer, { title: t('analyticsAnalyticsMonetizationStats.paywallsByType'), config: {
|
|
224864
|
+
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }) }) })] }) }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.paywallItemTypeChartCardAriaLabel'), children: [jsx("div", { className: "mb-6", children: jsxs("div", { className: "flex items-center gap-1", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.paywallsByType') }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsMonetizationStats.paywallsByType'), description: t('analyticsAnalyticsMonetizationStats.paywallsByTypeDescription') })] }) }), jsx("div", { className: "w-full", style: { height: '350px' }, children: jsx(ChartContainer, { title: t('analyticsAnalyticsMonetizationStats.paywallsByType'), config: {
|
|
224628
224865
|
value: {
|
|
224629
224866
|
label: t('analyticsAnalyticsMonetizationStats.paywallsLabel'),
|
|
224630
224867
|
color: '#38A1E5',
|
|
@@ -224638,28 +224875,32 @@ function AnalyticsMonetizationStats({ tenantKey }) {
|
|
|
224638
224875
|
return null;
|
|
224639
224876
|
const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
|
|
224640
224877
|
return (jsxs("div", { className: "bg-background border border-border rounded-md p-3 shadow-lg z-50", style: { borderColor: 'oklch(.922 0 0)' }, role: "tooltip", tabIndex: -1, children: [jsx("div", { className: "font-medium text-foreground mb-2 text-base capitalize", children: data === null || data === void 0 ? void 0 : data.name }), jsx("div", { className: "space-y-2 text-sm", children: jsxs("div", { className: "flex justify-between items-center gap-4", children: [jsx("span", { className: "text-muted-foreground", children: t('analyticsAnalyticsMonetizationStats.paywallsTooltipLabel') }), jsx("span", { className: "font-medium text-foreground", children: data === null || data === void 0 ? void 0 : data.value })] }) })] }));
|
|
224641
|
-
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }) }) })] }) })] }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.subscribersTableCardAriaLabel'), children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.subscribersSectionHeading', {
|
|
224642
|
-
|
|
224643
|
-
|
|
224878
|
+
}, wrapperStyle: { outline: 'none' } })] })) : (jsx(EmptyStats, {})) }) }) })] }) })] }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.subscribersTableCardAriaLabel'), children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex items-center gap-1", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.subscribersSectionHeading', {
|
|
224879
|
+
count: (_d = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.count) !== null && _d !== void 0 ? _d : 0,
|
|
224880
|
+
}) }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsMonetizationStats.subscribersSectionHeading', {
|
|
224881
|
+
count: (_e = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.count) !== null && _e !== void 0 ? _e : 0,
|
|
224882
|
+
}), description: t('analyticsAnalyticsMonetizationStats.subscribersTableDescription') })] }), jsxs(Select$1, { value: subscriberStatusFilter, onValueChange: (v) => {
|
|
224644
224883
|
setSubscriberStatusFilter(v);
|
|
224645
224884
|
setSubscriberPage(1);
|
|
224646
|
-
}, children: [jsx(SelectTrigger, { className: "w-[130px]", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "all", children: t('analyticsAnalyticsMonetizationStats.filterAll') }), jsx(SelectItem, { value: "active", children: t('analyticsAnalyticsMonetizationStats.filterActive') }), jsx(SelectItem, { value: "trialing", children: t('analyticsAnalyticsMonetizationStats.filterTrialing') }), jsx(SelectItem, { value: "canceled", children: t('analyticsAnalyticsMonetizationStats.filterCanceled') }), jsx(SelectItem, { value: "past_due", children: t('analyticsAnalyticsMonetizationStats.filterPastDue') })] })] })] }) }), jsx("div", { className: "rounded-md overflow-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadItem') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadType') }), jsx(TableHead, { className: "w-[120px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadPlan') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadAmount') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsMonetizationStats.tableHeadStatus') })] }) }), jsx(TableBody, { children: (
|
|
224885
|
+
}, children: [jsx(SelectTrigger, { className: "w-[130px]", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "all", children: t('analyticsAnalyticsMonetizationStats.filterAll') }), jsx(SelectItem, { value: "active", children: t('analyticsAnalyticsMonetizationStats.filterActive') }), jsx(SelectItem, { value: "trialing", children: t('analyticsAnalyticsMonetizationStats.filterTrialing') }), jsx(SelectItem, { value: "canceled", children: t('analyticsAnalyticsMonetizationStats.filterCanceled') }), jsx(SelectItem, { value: "past_due", children: t('analyticsAnalyticsMonetizationStats.filterPastDue') })] })] })] }) }), jsx("div", { className: "rounded-md overflow-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadItem') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadType') }), jsx(TableHead, { className: "w-[120px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadPlan') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadAmount') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsMonetizationStats.tableHeadStatus') })] }) }), jsx(TableBody, { children: (_f = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _f === void 0 ? void 0 : _f.map((sub, index) => {
|
|
224647
224886
|
var _a, _b, _c;
|
|
224648
224887
|
return (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: sub.item_name || sub.item_id }), jsx(TableCell, { children: jsx(Badge, { variant: "secondary", className: "text-xs capitalize", children: sub.item_type }) }), jsx(TableCell, { children: (_a = sub.price) === null || _a === void 0 ? void 0 : _a.name }), jsx(TableCell, { children: sub.status === 'grandfathered' ? null : (jsxs(Fragment$1, { children: ["$", (_b = sub.price) === null || _b === void 0 ? void 0 : _b.amount, ((_c = sub.price) === null || _c === void 0 ? void 0 : _c.interval) && sub.price.interval !== 'one_time'
|
|
224649
224888
|
? `/${sub.price.interval}`
|
|
224650
224889
|
: ''] })) }), jsx(TableCell, { className: "text-right", children: jsx(Badge, { className: statusBadgeStyle(sub.status), children: sub.status }) })] }, sub.unique_id));
|
|
224651
|
-
}) })] }) }), (!((
|
|
224890
|
+
}) })] }) }), (!((_g = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _g === void 0 ? void 0 : _g.length) || ((_h = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _h === void 0 ? void 0 : _h.length) === 0) && (jsx("div", { className: "h-[60px]", children: jsx(EmptyStats, {}) })), subscribersData &&
|
|
224652
224891
|
(subscribersData.previous_page !== null || subscribersData.next_page !== null) && (jsxs("div", { className: "flex items-center justify-between py-3", children: [jsx("div", { className: "text-sm text-gray-700", children: t('analyticsAnalyticsMonetizationStats.subscriberCountTotal', {
|
|
224653
224892
|
count: subscribersData.count,
|
|
224654
224893
|
plural: subscribersData.count !== 1 ? 's' : '',
|
|
224655
224894
|
}) }), jsxs("div", { className: "flex items-center space-x-2", children: [jsx(Button$1, { variant: "outline", size: "sm", className: "h-8 text-xs", disabled: subscribersData.previous_page === null, onClick: () => subscribersData.previous_page !== null &&
|
|
224656
224895
|
setSubscriberPage(subscribersData.previous_page), children: t('analyticsAnalyticsMonetizationStats.previous') }), jsx("span", { className: "text-xs text-gray-500", children: t('analyticsAnalyticsMonetizationStats.pageLabel', { page: subscriberPage }) }), jsx(Button$1, { variant: "outline", size: "sm", className: "h-8 text-xs", disabled: subscribersData.next_page === null, onClick: () => subscribersData.next_page !== null &&
|
|
224657
|
-
setSubscriberPage(subscribersData.next_page), children: t('analyticsAnalyticsMonetizationStats.next') })] })] }))] }) }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.paywallsTableCardAriaLabel'), children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.configuredPaywalls', {
|
|
224658
|
-
|
|
224659
|
-
|
|
224896
|
+
setSubscriberPage(subscribersData.next_page), children: t('analyticsAnalyticsMonetizationStats.next') })] })] }))] }) }), jsx(Card, { className: "w-full bg-white rounded-lg border border-gray-100 overflow-hidden shadow-sm", style: { borderColor: 'oklch(.922 0 0)' }, children: jsxs(CardContent, { className: "p-4", "aria-label": t('analyticsAnalyticsMonetizationStats.paywallsTableCardAriaLabel'), children: [jsx("div", { className: "mb-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex items-center gap-1", children: [jsx("h3", { className: "text-base font-medium text-gray-700", children: t('analyticsAnalyticsMonetizationStats.configuredPaywalls', {
|
|
224897
|
+
count: (_j = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.count) !== null && _j !== void 0 ? _j : 0,
|
|
224898
|
+
}) }), jsx(CardInfoIcon, { title: t('analyticsAnalyticsMonetizationStats.configuredPaywalls', {
|
|
224899
|
+
count: (_k = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.count) !== null && _k !== void 0 ? _k : 0,
|
|
224900
|
+
}), description: t('analyticsAnalyticsMonetizationStats.paywallsTableDescription') })] }), jsxs(Select$1, { value: paywallTypeFilter, onValueChange: (v) => {
|
|
224660
224901
|
setPaywallTypeFilter(v);
|
|
224661
224902
|
setPaywallPage(1);
|
|
224662
|
-
}, children: [jsx(SelectTrigger, { className: "w-[130px]", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "all", children: t('analyticsAnalyticsMonetizationStats.filterAllTypes') }), jsx(SelectItem, { value: "mentor", children: t('analyticsAnalyticsMonetizationStats.filterAgent') }), jsx(SelectItem, { value: "course", children: t('analyticsAnalyticsMonetizationStats.filterCourse') })] })] })] }) }), jsx("div", { className: "rounded-md overflow-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadItem') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadType') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadPrices') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsMonetizationStats.tableHeadStatus') })] }) }), jsx(TableBody, { children: (
|
|
224903
|
+
}, children: [jsx(SelectTrigger, { className: "w-[130px]", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "all", children: t('analyticsAnalyticsMonetizationStats.filterAllTypes') }), jsx(SelectItem, { value: "mentor", children: t('analyticsAnalyticsMonetizationStats.filterAgent') }), jsx(SelectItem, { value: "course", children: t('analyticsAnalyticsMonetizationStats.filterCourse') })] })] })] }) }), jsx("div", { className: "rounded-md overflow-auto", style: { borderColor: 'oklch(.922 0 0)', borderWidth: '1px' }, children: jsxs(Table, { children: [jsx(TableHeader, { children: jsxs(TableRow, { className: "h-[48px]", style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableHead, { className: "w-[250px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadItem') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadType') }), jsx(TableHead, { className: "w-[100px]", children: t('analyticsAnalyticsMonetizationStats.tableHeadPrices') }), jsx(TableHead, { className: "text-right", children: t('analyticsAnalyticsMonetizationStats.tableHeadStatus') })] }) }), jsx(TableBody, { children: (_l = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _l === void 0 ? void 0 : _l.map((pw, index) => {
|
|
224663
224904
|
var _a, _b;
|
|
224664
224905
|
return (jsxs(TableRow, { className: cn(index % 2 === 0 ? 'bg-gray-50' : '', 'h-[48px]'), style: { borderColor: 'oklch(.922 0 0)' }, children: [jsx(TableCell, { className: "font-medium", children: pw.item_name || pw.item_id }), jsx(TableCell, { children: jsx(Badge, { variant: "secondary", className: "text-xs capitalize", children: pw.item_type }) }), jsx(TableCell, { children: t('analyticsAnalyticsMonetizationStats.activePricesCount', {
|
|
224665
224906
|
count: (_b = (_a = pw.prices) === null || _a === void 0 ? void 0 : _a.filter((p) => p.is_active).length) !== null && _b !== void 0 ? _b : 0,
|
|
@@ -224668,7 +224909,7 @@ function AnalyticsMonetizationStats({ tenantKey }) {
|
|
|
224668
224909
|
: 'bg-gray-100 text-gray-500 border-gray-200 hover:bg-gray-100', children: pw.is_enabled
|
|
224669
224910
|
? t('analyticsAnalyticsMonetizationStats.statusActive')
|
|
224670
224911
|
: t('analyticsAnalyticsMonetizationStats.statusDisabled') }) })] }, `${pw.item_type}-${pw.item_id}`));
|
|
224671
|
-
}) })] }) }), (!((
|
|
224912
|
+
}) })] }) }), (!((_m = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _m === void 0 ? void 0 : _m.length) || ((_o = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _o === void 0 ? void 0 : _o.length) === 0) && (jsx("div", { className: "h-[60px]", children: jsx(EmptyStats, {}) })), paywallsData &&
|
|
224672
224913
|
(paywallsData.previous_page !== null || paywallsData.next_page !== null) && (jsxs("div", { className: "flex items-center justify-between py-3", children: [jsx("div", { className: "text-sm text-gray-700", children: t('analyticsAnalyticsMonetizationStats.paywallCountTotal', {
|
|
224673
224914
|
count: paywallsData.count,
|
|
224674
224915
|
plural: paywallsData.count !== 1 ? 's' : '',
|
|
@@ -225453,7 +225694,7 @@ function AnalyticsMemoryStats({ tenantKey, mentorId, userId, selectedMentorId, m
|
|
|
225453
225694
|
setContentFilter(contentInput.trim());
|
|
225454
225695
|
}, children: jsx(Input, { value: contentInput, onChange: (event) => setContentInput(event.target.value), onBlur: () => setContentFilter(contentInput.trim()), placeholder: t('analyticsAnalyticsMemoryStats.contentPlaceholder'), "aria-label": t('analyticsAnalyticsMemoryStats.contentPlaceholder'), className: "h-9 bg-white" }) })), jsxs(Popover, { modal: true, children: [jsx(PopoverTrigger, { asChild: true, children: jsxs(Button$1, { variant: "outline", className: "flex h-9 w-full items-center gap-2 bg-white font-normal whitespace-nowrap lg:w-auto", children: [jsx(Calendar$1, { className: "h-4 w-4" }), (dateRange === null || dateRange === void 0 ? void 0 : dateRange.from) && (dateRange === null || dateRange === void 0 ? void 0 : dateRange.to)
|
|
225455
225696
|
? `${format$1(dateRange.from, 'MMM dd')} - ${format$1(dateRange.to, 'MMM dd')}`
|
|
225456
|
-
: t('analyticsAnalyticsMemoryStats.pickDateRange')] }) }), jsx(PopoverContent, { "data-iblai-dialog-interaction-layer": true, className: "z-[60] w-auto p-0", align: "start", children: jsx(Calendar, { mode: "range", selected: dateRange, onSelect: (range) => setDateRange(range ? { from: range.from, to: range.to } : undefined), numberOfMonths: 2 }) })] }), showCategoryFilter && (jsx("div", { className: "min-w-[160px]", children: jsxs(Select$1, { value: categoryFilter, onValueChange: setCategoryFilter, children: [jsx(SelectTrigger, { className: "h-9 w-full bg-white font-normal", "aria-label": t('analyticsAnalyticsMemoryStats.allCategories'), children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: ALL_CATEGORIES, children: t('analyticsAnalyticsMemoryStats.allCategories') }), categories.map((category) => (jsx(SelectItem, { value: category.slug, children: category.name }, category.slug)))] })] }) }))] }) }), aggregates && aggregates.categories.length > 0 && (jsxs("div", { className: "rounded-lg border border-[oklch(0.922_0_0)] bg-white p-4", children: [jsxs("h3", { className: "mb-4 flex items-center gap-
|
|
225697
|
+
: t('analyticsAnalyticsMemoryStats.pickDateRange')] }) }), jsx(PopoverContent, { "data-iblai-dialog-interaction-layer": true, className: "z-[60] w-auto p-0", align: "start", children: jsx(Calendar, { mode: "range", selected: dateRange, onSelect: (range) => setDateRange(range ? { from: range.from, to: range.to } : undefined), numberOfMonths: 2 }) })] }), showCategoryFilter && (jsx("div", { className: "min-w-[160px]", children: jsxs(Select$1, { value: categoryFilter, onValueChange: setCategoryFilter, children: [jsx(SelectTrigger, { className: "h-9 w-full bg-white font-normal", "aria-label": t('analyticsAnalyticsMemoryStats.allCategories'), children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: ALL_CATEGORIES, children: t('analyticsAnalyticsMemoryStats.allCategories') }), categories.map((category) => (jsx(SelectItem, { value: category.slug, children: category.name }, category.slug)))] })] }) }))] }) }), aggregates && aggregates.categories.length > 0 && (jsxs("div", { className: "rounded-lg border border-[oklch(0.922_0_0)] bg-white p-4", children: [jsxs("h3", { className: "mb-4 flex items-center gap-1 text-sm font-medium text-[#484848]", children: [t('analyticsAnalyticsMemoryStats.byCategory'), jsx(CardInfoIcon, { title: t('analyticsAnalyticsMemoryStats.byCategory'), description: t('analyticsAnalyticsMemoryStats.byCategoryDescription') })] }), jsx("ul", { className: "space-y-3", children: aggregates.categories.map((category) => {
|
|
225457
225698
|
const percent = aggregates.totalMemories
|
|
225458
225699
|
? Math.round((category.count / aggregates.totalMemories) * 100)
|
|
225459
225700
|
: 0;
|
|
@@ -236276,5 +236517,5 @@ var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
|
|
|
236276
236517
|
TrainOrDeleteModal: TrainOrDeleteModal
|
|
236277
236518
|
});
|
|
236278
236519
|
|
|
236279
|
-
export { ACCESS_COURSE_LABEL, ALL_CATEGORIES, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentSkills, AlertsTab, AnalyticsAuditLogStats, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsLayout, AnalyticsMemoryStats, AnalyticsMonetizationStats, AnalyticsOverview, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, BUY_NOW_LABEL, BillingTab, CATALOGS, CREATE_AGENT_LABELS, CUA_DRIVER_REPO_URL, CUA_DRIVER_TAURI_COMMANDS, CUA_DRIVER_TAURI_EVENTS, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, 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, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, 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, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_MODELS, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, MEMORY_PAGE_SIZE, Markdown, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_SECTORS, OnboardingShell, OnboardingWizard, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RenameProjectModal, ResumeBox, ResumeTab, RichTextEditor, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, SlashSkillPicker, Spinner, StatCard, StepHeader, TAURI_COMMANDS, TAURI_EVENTS, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolDialogs, TopBanner, UpgradePackageModal, UserAvatar, Version, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, availablePlacementExams, findLastResumeBlock, findSequentialParent, flattenVerticalBlocks, getCatalog, getFirstAvailableUnit, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, inBrowserPrint, inIframe, initialCuaDriverInstallState, initialModelDownloadState, isCoworkEnabled, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isSlashCommandToken, isTauriApp, isValidLocale, components as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, resolveCreateAgentLabels, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, smallestCoworkModel, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useCuaDriver, useDiscover, useEdxIframe, useFinancial, useIframeMessageHandler, useLocalStorage, useMemory, useModelDownload, useMonetization, useOverview, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
236520
|
+
export { ACCESS_COURSE_LABEL, ALL_CATEGORIES, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentSkills, AlertsTab, AnalyticsAuditLogStats, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsLayout, AnalyticsMemoryStats, AnalyticsMonetizationStats, AnalyticsOverview, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, BUY_NOW_LABEL, BillingTab, CATALOGS, CREATE_AGENT_LABELS, CUA_DRIVER_REPO_URL, CUA_DRIVER_TAURI_COMMANDS, CUA_DRIVER_TAURI_EVENTS, CardInfoIcon, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, 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, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, 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, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_MODELS, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, MEMORY_PAGE_SIZE, Markdown, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_SECTORS, OnboardingShell, OnboardingWizard, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RenameProjectModal, ResumeBox, ResumeTab, RichTextEditor, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, SlashSkillPicker, Spinner, StatCard, StepHeader, TAURI_COMMANDS, TAURI_EVENTS, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolDialogs, TopBanner, UpgradePackageModal, UserAvatar, Version, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, availablePlacementExams, findLastResumeBlock, findSequentialParent, flattenVerticalBlocks, getCatalog, getFirstAvailableUnit, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, inBrowserPrint, inIframe, initialCuaDriverInstallState, initialModelDownloadState, isCoworkEnabled, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isSlashCommandToken, isTauriApp, isValidLocale, components as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, resolveCreateAgentLabels, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, smallestCoworkModel, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useCuaDriver, useDiscover, useEdxIframe, useFinancial, useIframeMessageHandler, useLocalStorage, useMemory, useModelDownload, useMonetization, useOverview, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useSlashSkillPicker, useSlashSkills, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
236280
236521
|
//# sourceMappingURL=index.esm.js.map
|