@iblai/iblai-js 2.3.13 → 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$2m = [
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$2m);
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$2l = [
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$2l);
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$2k = [
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$2k);
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$2j = [
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$2j);
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$2i = [
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$2i);
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$2h = [
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$2h);
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$2g = [
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$2g);
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$2f = [
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$2f);
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$2e = [
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$2e);
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$2d = [
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$2d);
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$2c = [
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$2c);
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$2b = [
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$2b);
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$2a = [
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$2a);
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$29 = [
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$29);
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$28 = [
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$28);
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$27 = [
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$27);
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$26 = [
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$26);
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
@@ -60618,7 +60598,11 @@ var analyticsAnalyticsCourseDetail$3 = {
60618
60598
  paginationPreviousPage: "Go to previous page",
60619
60599
  paginationGoToPage: "Go to page {page}",
60620
60600
  paginationNextPage: "Go to next page",
60621
- 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."
60622
60606
  };
60623
60607
  var analyticsAnalyticsCourses$3 = {
60624
60608
  activeCourses: "Active Courses",
@@ -60643,7 +60627,13 @@ var analyticsAnalyticsCourses$3 = {
60643
60627
  goToPage: "Go to page {page}",
60644
60628
  goToNextPage: "Go to next page",
60645
60629
  goToLastPage: "Go to last page",
60646
- 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."
60647
60637
  };
60648
60638
  var analyticsAnalyticsFinancialStats$3 = {
60649
60639
  weeklyCosts: "Weekly Costs",
@@ -60671,7 +60661,14 @@ var analyticsAnalyticsFinancialStats$3 = {
60671
60661
  goToPreviousPage: "Go to previous page",
60672
60662
  goToNextPage: "Go to next page",
60673
60663
  goToLastPage: "Go to last page",
60674
- 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."
60675
60672
  };
60676
60673
  var analyticsAnalyticsMemoryStats$3 = {
60677
60674
  noPermission: "You do not have permission to view user memories.",
@@ -60702,7 +60699,8 @@ var analyticsAnalyticsMemoryStats$3 = {
60702
60699
  colMemory: "MEMORY",
60703
60700
  colAgent: "AGENT",
60704
60701
  colCategory: "CATEGORY",
60705
- colCaptured: "CAPTURED"
60702
+ colCaptured: "CAPTURED",
60703
+ byCategoryDescription: "How captured memories are distributed across categories for the current filters."
60706
60704
  };
60707
60705
  var analyticsAnalyticsMonetizationStats$3 = {
60708
60706
  totalRevenue: "Total Revenue",
@@ -60742,7 +60740,15 @@ var analyticsAnalyticsMonetizationStats$3 = {
60742
60740
  activePricesCount: "{count} active",
60743
60741
  statusActive: "Active",
60744
60742
  statusDisabled: "Disabled",
60745
- 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."
60746
60752
  };
60747
60753
  var analyticsAnalyticsOverview$3 = {
60748
60754
  messages: "Messages",
@@ -60755,7 +60761,14 @@ var analyticsAnalyticsOverview$3 = {
60755
60761
  topicDetailsFor: "Topic details for {label}",
60756
60762
  messagesLabel: "Messages:",
60757
60763
  activeUsersFor: "Active users for {label}",
60758
- 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."
60759
60772
  };
60760
60773
  var analyticsAnalyticsProgramDetail$3 = {
60761
60774
  backAriaLabel: "Go back to programs list",
@@ -60783,7 +60796,12 @@ var analyticsAnalyticsProgramDetail$3 = {
60783
60796
  paginationPreviousPage: "Go to previous page",
60784
60797
  paginationGoToPage: "Go to page {page}",
60785
60798
  paginationNextPage: "Go to next page",
60786
- 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."
60787
60805
  };
60788
60806
  var analyticsAnalyticsPrograms$3 = {
60789
60807
  activePrograms: "Active Programs",
@@ -60807,7 +60825,13 @@ var analyticsAnalyticsPrograms$3 = {
60807
60825
  goToPage: "Go to page {page}",
60808
60826
  goToNextPage: "Go to next page",
60809
60827
  goToLastPage: "Go to last page",
60810
- 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."
60811
60835
  };
60812
60836
  var analyticsAnalyticsReports$3 = {
60813
60837
  failedToLoadReportForEditing: "Failed to load report for editing. Opening download instead.",
@@ -60849,7 +60873,13 @@ var analyticsAnalyticsTopicsStats$3 = {
60849
60873
  outOfFive: "/ 5",
60850
60874
  topicsDetails: "Topics Details",
60851
60875
  topicDetailsForLabel: "Topic details for {label}",
60852
- 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."
60853
60883
  };
60854
60884
  var analyticsAnalyticsTranscriptsStats$3 = {
60855
60885
  justNow: "Just now",
@@ -60904,7 +60934,10 @@ var analyticsAnalyticsTranscriptsStats$3 = {
60904
60934
  srGoToLastPage: "Go to last page",
60905
60935
  none: "none",
60906
60936
  loading: "Loading...",
60907
- 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."
60908
60941
  };
60909
60942
  var analyticsAnalyticsUsersStats$3 = {
60910
60943
  usersLoggedInNow: "Users logged in right now",
@@ -60932,7 +60965,13 @@ var analyticsAnalyticsUsersStats$3 = {
60932
60965
  justNow: "Just now",
60933
60966
  minutesAgo: "{count} min ago",
60934
60967
  hoursAgo: "{count} hours ago",
60935
- 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."
60936
60975
  };
60937
60976
  var analyticsGroupsFilterDropdown$3 = {
60938
60977
  filterByGroups: "Filter by Groups",
@@ -61638,7 +61677,10 @@ var clawSandboxAgentSkills$3 = {
61638
61677
  tabsAriaLabel: "Skills",
61639
61678
  tabAgentSkills: "Agent Skills",
61640
61679
  tabAvailableSkills: "Available Skills",
61641
- addedBadge: "Added"
61680
+ addedBadge: "Added",
61681
+ effectiveHeading: "This agent's skills",
61682
+ catalogHeading: "Available skills",
61683
+ resourcesItemLabel: "resources"
61642
61684
  };
61643
61685
  var clawSandboxHelpers$3 = {
61644
61686
  unknown: "Unknown",
@@ -66937,7 +66979,11 @@ var analyticsAnalyticsCourseDetail$2 = {
66937
66979
  paginationPreviousPage: "Aller à la page précédente",
66938
66980
  paginationGoToPage: "Aller à la page {page}",
66939
66981
  paginationNextPage: "Aller à la page suivante",
66940
- 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é."
66941
66987
  };
66942
66988
  var analyticsAnalyticsCourses$2 = {
66943
66989
  activeCourses: "Cours actifs",
@@ -66962,7 +67008,13 @@ var analyticsAnalyticsCourses$2 = {
66962
67008
  goToPage: "Aller à la page {page}",
66963
67009
  goToNextPage: "Aller à la page suivante",
66964
67010
  goToLastPage: "Aller à la dernière page",
66965
- 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."
66966
67018
  };
66967
67019
  var analyticsAnalyticsFinancialStats$2 = {
66968
67020
  weeklyCosts: "Coûts hebdomadaires",
@@ -66990,7 +67042,14 @@ var analyticsAnalyticsFinancialStats$2 = {
66990
67042
  goToPreviousPage: "Aller à la page précédente",
66991
67043
  goToNextPage: "Aller à la page suivante",
66992
67044
  goToLastPage: "Aller à la dernière page",
66993
- 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é."
66994
67053
  };
66995
67054
  var analyticsAnalyticsMemoryStats$2 = {
66996
67055
  noPermission: "Vous n'avez pas l'autorisation de consulter les mémoires des utilisateurs.",
@@ -67021,7 +67080,8 @@ var analyticsAnalyticsMemoryStats$2 = {
67021
67080
  colMemory: "MÉMOIRE",
67022
67081
  colAgent: "AGENT",
67023
67082
  colCategory: "CATÉGORIE",
67024
- colCaptured: "CAPTURÉE"
67083
+ colCaptured: "CAPTURÉE",
67084
+ byCategoryDescription: "Répartition des mémoires capturées par catégorie selon les filtres actuels."
67025
67085
  };
67026
67086
  var analyticsAnalyticsMonetizationStats$2 = {
67027
67087
  totalRevenue: "Revenu total",
@@ -67061,7 +67121,15 @@ var analyticsAnalyticsMonetizationStats$2 = {
67061
67121
  activePricesCount: "{count} actif",
67062
67122
  statusActive: "Actif",
67063
67123
  statusDisabled: "Désactivé",
67064
- 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."
67065
67133
  };
67066
67134
  var analyticsAnalyticsOverview$2 = {
67067
67135
  messages: "Messages",
@@ -67074,7 +67142,14 @@ var analyticsAnalyticsOverview$2 = {
67074
67142
  topicDetailsFor: "Détails du sujet pour {label}",
67075
67143
  messagesLabel: "Messages :",
67076
67144
  activeUsersFor: "Utilisateurs actifs pour {label}",
67077
- 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."
67078
67153
  };
67079
67154
  var analyticsAnalyticsProgramDetail$2 = {
67080
67155
  backAriaLabel: "Retour à la liste des programmes",
@@ -67102,7 +67177,12 @@ var analyticsAnalyticsProgramDetail$2 = {
67102
67177
  paginationPreviousPage: "Aller à la page précédente",
67103
67178
  paginationGoToPage: "Aller à la page {page}",
67104
67179
  paginationNextPage: "Aller à la page suivante",
67105
- 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é."
67106
67186
  };
67107
67187
  var analyticsAnalyticsPrograms$2 = {
67108
67188
  activePrograms: "Programmes actifs",
@@ -67126,7 +67206,13 @@ var analyticsAnalyticsPrograms$2 = {
67126
67206
  goToPage: "Aller à la page {page}",
67127
67207
  goToNextPage: "Aller à la page suivante",
67128
67208
  goToLastPage: "Aller à la dernière page",
67129
- 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."
67130
67216
  };
67131
67217
  var analyticsAnalyticsReports$2 = {
67132
67218
  failedToLoadReportForEditing: "Impossible de charger le rapport pour modification. Téléchargement en cours.",
@@ -67168,7 +67254,13 @@ var analyticsAnalyticsTopicsStats$2 = {
67168
67254
  outOfFive: "/ 5",
67169
67255
  topicsDetails: "Détails des sujets",
67170
67256
  topicDetailsForLabel: "Détails du sujet pour {label}",
67171
- 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."
67172
67264
  };
67173
67265
  var analyticsAnalyticsTranscriptsStats$2 = {
67174
67266
  justNow: "À l'instant",
@@ -67223,7 +67315,10 @@ var analyticsAnalyticsTranscriptsStats$2 = {
67223
67315
  srGoToLastPage: "Aller à la dernière page",
67224
67316
  none: "aucune",
67225
67317
  loading: "Chargement...",
67226
- 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."
67227
67322
  };
67228
67323
  var analyticsAnalyticsUsersStats$2 = {
67229
67324
  usersLoggedInNow: "Utilisateurs connectés en ce moment",
@@ -67251,7 +67346,13 @@ var analyticsAnalyticsUsersStats$2 = {
67251
67346
  justNow: "À l'instant",
67252
67347
  minutesAgo: "il y a {count} min",
67253
67348
  hoursAgo: "il y a {count} h",
67254
- 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."
67255
67356
  };
67256
67357
  var analyticsGroupsFilterDropdown$2 = {
67257
67358
  filterByGroups: "Filtrer par groupes",
@@ -68123,7 +68224,10 @@ var clawSandboxAgentSkills$2 = {
68123
68224
  tabsAriaLabel: "Compétences",
68124
68225
  tabAgentSkills: "Compétences de l'agent",
68125
68226
  tabAvailableSkills: "Compétences disponibles",
68126
- addedBadge: "Ajoutée"
68227
+ addedBadge: "Ajoutée",
68228
+ effectiveHeading: "Compétences de cet agent",
68229
+ catalogHeading: "Compétences disponibles",
68230
+ resourcesItemLabel: "ressources"
68127
68231
  };
68128
68232
  var clawSandboxHelpers$2 = {
68129
68233
  unknown: "Inconnu",
@@ -73256,7 +73360,11 @@ var analyticsAnalyticsCourseDetail$1 = {
73256
73360
  paginationPreviousPage: "Ir a la página anterior",
73257
73361
  paginationGoToPage: "Ir a la página {page}",
73258
73362
  paginationNextPage: "Ir a la página siguiente",
73259
- 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."
73260
73368
  };
73261
73369
  var analyticsAnalyticsCourses$1 = {
73262
73370
  activeCourses: "Cursos activos",
@@ -73281,7 +73389,13 @@ var analyticsAnalyticsCourses$1 = {
73281
73389
  goToPage: "Ir a la página {page}",
73282
73390
  goToNextPage: "Ir a la página siguiente",
73283
73391
  goToLastPage: "Ir a la última página",
73284
- 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."
73285
73399
  };
73286
73400
  var analyticsAnalyticsFinancialStats$1 = {
73287
73401
  weeklyCosts: "Costos semanales",
@@ -73309,7 +73423,14 @@ var analyticsAnalyticsFinancialStats$1 = {
73309
73423
  goToPreviousPage: "Ir a la página anterior",
73310
73424
  goToNextPage: "Ir a la página siguiente",
73311
73425
  goToLastPage: "Ir a la última página",
73312
- 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."
73313
73434
  };
73314
73435
  var analyticsAnalyticsMemoryStats$1 = {
73315
73436
  noPermission: "No tienes permiso para ver los recuerdos de los usuarios.",
@@ -73340,7 +73461,8 @@ var analyticsAnalyticsMemoryStats$1 = {
73340
73461
  colMemory: "RECUERDO",
73341
73462
  colAgent: "AGENTE",
73342
73463
  colCategory: "CATEGORÍA",
73343
- colCaptured: "CAPTURADO"
73464
+ colCaptured: "CAPTURADO",
73465
+ byCategoryDescription: "Cómo se distribuyen las memorias capturadas entre categorías según los filtros actuales."
73344
73466
  };
73345
73467
  var analyticsAnalyticsMonetizationStats$1 = {
73346
73468
  totalRevenue: "Ingresos totales",
@@ -73380,7 +73502,15 @@ var analyticsAnalyticsMonetizationStats$1 = {
73380
73502
  activePricesCount: "{count} activo",
73381
73503
  statusActive: "Activo",
73382
73504
  statusDisabled: "Deshabilitado",
73383
- 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."
73384
73514
  };
73385
73515
  var analyticsAnalyticsOverview$1 = {
73386
73516
  messages: "Mensajes",
@@ -73393,7 +73523,14 @@ var analyticsAnalyticsOverview$1 = {
73393
73523
  topicDetailsFor: "Detalles del tema para {label}",
73394
73524
  messagesLabel: "Mensajes:",
73395
73525
  activeUsersFor: "Usuarios activos para {label}",
73396
- 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."
73397
73534
  };
73398
73535
  var analyticsAnalyticsProgramDetail$1 = {
73399
73536
  backAriaLabel: "Volver a la lista de programas",
@@ -73421,7 +73558,12 @@ var analyticsAnalyticsProgramDetail$1 = {
73421
73558
  paginationPreviousPage: "Ir a la página anterior",
73422
73559
  paginationGoToPage: "Ir a la página {page}",
73423
73560
  paginationNextPage: "Ir a la página siguiente",
73424
- 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."
73425
73567
  };
73426
73568
  var analyticsAnalyticsPrograms$1 = {
73427
73569
  activePrograms: "Programas activos",
@@ -73445,7 +73587,13 @@ var analyticsAnalyticsPrograms$1 = {
73445
73587
  goToPage: "Ir a la página {page}",
73446
73588
  goToNextPage: "Ir a la página siguiente",
73447
73589
  goToLastPage: "Ir a la última página",
73448
- 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."
73449
73597
  };
73450
73598
  var analyticsAnalyticsReports$1 = {
73451
73599
  failedToLoadReportForEditing: "No se pudo cargar el informe para editarlo. Abriendo descarga en su lugar.",
@@ -73487,7 +73635,13 @@ var analyticsAnalyticsTopicsStats$1 = {
73487
73635
  outOfFive: "/ 5",
73488
73636
  topicsDetails: "Detalles de temas",
73489
73637
  topicDetailsForLabel: "Detalles del tema para {label}",
73490
- 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."
73491
73645
  };
73492
73646
  var analyticsAnalyticsTranscriptsStats$1 = {
73493
73647
  justNow: "Ahora mismo",
@@ -73542,7 +73696,10 @@ var analyticsAnalyticsTranscriptsStats$1 = {
73542
73696
  srGoToLastPage: "Ir a la última página",
73543
73697
  none: "ninguna",
73544
73698
  loading: "Cargando...",
73545
- 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."
73546
73703
  };
73547
73704
  var analyticsAnalyticsUsersStats$1 = {
73548
73705
  usersLoggedInNow: "Usuarios conectados ahora mismo",
@@ -73570,7 +73727,13 @@ var analyticsAnalyticsUsersStats$1 = {
73570
73727
  justNow: "Ahora mismo",
73571
73728
  minutesAgo: "hace {count} min",
73572
73729
  hoursAgo: "hace {count} h",
73573
- 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."
73574
73737
  };
73575
73738
  var analyticsGroupsFilterDropdown$1 = {
73576
73739
  filterByGroups: "Filtrar por grupos",
@@ -74442,7 +74605,10 @@ var clawSandboxAgentSkills$1 = {
74442
74605
  tabsAriaLabel: "Habilidades",
74443
74606
  tabAgentSkills: "Habilidades del agente",
74444
74607
  tabAvailableSkills: "Habilidades disponibles",
74445
- addedBadge: "Añadida"
74608
+ addedBadge: "Añadida",
74609
+ effectiveHeading: "Habilidades de este agente",
74610
+ catalogHeading: "Habilidades disponibles",
74611
+ resourcesItemLabel: "recursos"
74446
74612
  };
74447
74613
  var clawSandboxHelpers$1 = {
74448
74614
  unknown: "Desconocido",
@@ -79575,7 +79741,11 @@ var analyticsAnalyticsCourseDetail = {
79575
79741
  paginationPreviousPage: "转到上一页",
79576
79742
  paginationGoToPage: "转到第 {page} 页",
79577
79743
  paginationNextPage: "转到下一页",
79578
- paginationLastPage: "转到最后一页"
79744
+ paginationLastPage: "转到最后一页",
79745
+ backToCourses: "返回课程",
79746
+ activeEnrollmentsDescription: "已报名本课程但尚未完成的学员数。",
79747
+ completedEnrollmentsDescription: "已完成本课程全部要求的学员数。",
79748
+ enrolledUsersDescription: "本课程的每位学员及其进度、成绩与最近活动。"
79579
79749
  };
79580
79750
  var analyticsAnalyticsCourses = {
79581
79751
  activeCourses: "活跃课程",
@@ -79600,7 +79770,13 @@ var analyticsAnalyticsCourses = {
79600
79770
  goToPage: "跳转到第 {page} 页",
79601
79771
  goToNextPage: "跳转到下一页",
79602
79772
  goToLastPage: "跳转到最后一页",
79603
- noCoursesAvailable: "暂无课程"
79773
+ noCoursesAvailable: "暂无课程",
79774
+ activeCoursesDescription: "当前有学员在读并持续学习的课程数。",
79775
+ totalCoursesDescription: "该租户下发布的全部课程,无论是否活跃。",
79776
+ enrollmentsDescription: "所有课程累计的报名总数。",
79777
+ totalLearnersDescription: "至少报名过一门课程的独立学员数。",
79778
+ courseOvertimeDescription: "所选时间段内学员在课程上花费的时间。",
79779
+ coursesTableDescription: "每门课程及其 ID 与报名人数。点击某行可打开详情视图。"
79604
79780
  };
79605
79781
  var analyticsAnalyticsFinancialStats = {
79606
79782
  weeklyCosts: "每周费用",
@@ -79628,7 +79804,14 @@ var analyticsAnalyticsFinancialStats = {
79628
79804
  goToPreviousPage: "转到上一页",
79629
79805
  goToNextPage: "转到下一页",
79630
79806
  goToLastPage: "转到最后一页",
79631
- paginationShowing: "显示第 {from} 至 {to} 条,共 {total} 条结果"
79807
+ paginationShowing: "显示第 {from} 至 {to} 条,共 {total} 条结果",
79808
+ weeklyCostsDescription: "过去一周的模型使用成本,并与前一周对比。",
79809
+ monthlyCostsDescription: "过去一个月的模型使用成本,并与前一个月对比。",
79810
+ totalCostsDescription: "该租户迄今累计的全部模型使用成本。",
79811
+ costPerDayDescription: "每日模型支出,便于了解成本与使用量的关系。",
79812
+ costByProviderDescription: "您的支出在各智能体所用模型供应商之间的分布。",
79813
+ costByLLMDescription: "您的支出在各个模型之间的分布,展示哪些模型花费最多。",
79814
+ costPerUserDescription: "归属到每位用户的支出,含其会话数与最近活动时间。"
79632
79815
  };
79633
79816
  var analyticsAnalyticsMemoryStats = {
79634
79817
  noPermission: "您没有查看用户记忆的权限。",
@@ -79659,7 +79842,8 @@ var analyticsAnalyticsMemoryStats = {
79659
79842
  colMemory: "记忆",
79660
79843
  colAgent: "智能体",
79661
79844
  colCategory: "类别",
79662
- colCaptured: "捕获时间"
79845
+ colCaptured: "捕获时间",
79846
+ byCategoryDescription: "在当前筛选条件下,已捕获记忆在各类别间的分布。"
79663
79847
  };
79664
79848
  var analyticsAnalyticsMonetizationStats = {
79665
79849
  totalRevenue: "总收入",
@@ -79699,7 +79883,15 @@ var analyticsAnalyticsMonetizationStats = {
79699
79883
  activePricesCount: "{count} 个活跃",
79700
79884
  statusActive: "活跃",
79701
79885
  statusDisabled: "已禁用",
79702
- paywallCountTotal: "共 {count} 个项目"
79886
+ paywallCountTotal: "共 {count} 个项目",
79887
+ totalRevenueDescription: "所有已完成交易带来的总收入。",
79888
+ totalSalesDescription: "所有付费内容上已完成的购买次数。",
79889
+ activePaywallsDescription: "该租户当前已配置并启用的付费墙数量。",
79890
+ totalSubscribersDescription: "持有订阅的人数,涵盖所有订阅状态。",
79891
+ subscribersByStatusDescription: "订阅者在活跃、试用、已取消和逾期各状态间的分布。",
79892
+ paywallsByTypeDescription: "付费墙按其保护的内容类型(如智能体和课程)的分布。",
79893
+ subscribersTableDescription: "每位订阅者及其订阅的内容、方案、金额与状态。",
79894
+ paywallsTableDescription: "每个已配置的付费墙及其类型、价格与当前是否启用。"
79703
79895
  };
79704
79896
  var analyticsAnalyticsOverview = {
79705
79897
  messages: "消息",
@@ -79712,7 +79904,14 @@ var analyticsAnalyticsOverview = {
79712
79904
  topicDetailsFor: "{label} 的话题详情",
79713
79905
  messagesLabel: "消息:",
79714
79906
  activeUsersFor: "{label} 的活跃用户",
79715
- activeUsersLabel: "活跃用户:"
79907
+ activeUsersLabel: "活跃用户:",
79908
+ messagesDescription: "所选时间段内用户与您的智能体之间交换的消息总数。",
79909
+ activeUsersDescription: "所选时间段内与智能体互动过的独立用户数。",
79910
+ topicsDescription: "所选时间段内用户向智能体咨询的不同主题数。",
79911
+ conversationsDescription: "所选时间段内开启的独立对话数。",
79912
+ sessionsChartDescription: "一段时间内开启的会话数,便于发现使用高峰与低谷。",
79913
+ topicsChartDescription: "讨论最多的主题,按各自产生的消息数排序。",
79914
+ activeUsersChartDescription: "每日独立活跃用户数,展示参与度随时间的变化。"
79716
79915
  };
79717
79916
  var analyticsAnalyticsProgramDetail = {
79718
79917
  backAriaLabel: "返回项目列表",
@@ -79740,7 +79939,12 @@ var analyticsAnalyticsProgramDetail = {
79740
79939
  paginationPreviousPage: "转到上一页",
79741
79940
  paginationGoToPage: "转到第 {page} 页",
79742
79941
  paginationNextPage: "转到下一页",
79743
- paginationLastPage: "转到最后一页"
79942
+ paginationLastPage: "转到最后一页",
79943
+ backButton: "返回项目",
79944
+ statTotalEnrollmentsDescription: "曾报名本项目的全部学员数。",
79945
+ statActiveEnrollmentsDescription: "已报名本项目但尚未完成的学员数。",
79946
+ statCompletedEnrollmentsDescription: "已完成本项目全部要求的学员数。",
79947
+ enrolledUsersDescription: "本项目的每位学员及其进度、成绩与最近活动。"
79744
79948
  };
79745
79949
  var analyticsAnalyticsPrograms = {
79746
79950
  activePrograms: "活跃项目",
@@ -79764,7 +79968,13 @@ var analyticsAnalyticsPrograms = {
79764
79968
  goToPage: "跳至第 {page} 页",
79765
79969
  goToNextPage: "跳至下一页",
79766
79970
  goToLastPage: "跳至最后一页",
79767
- noProgramsAvailable: "暂无可用项目"
79971
+ noProgramsAvailable: "暂无可用项目",
79972
+ activeProgramsDescription: "当前有学员在读并持续学习的项目数。",
79973
+ totalProgramsDescription: "该租户下发布的全部项目,无论是否活跃。",
79974
+ enrollmentsDescription: "所有项目累计的报名总数。",
79975
+ totalLearnersDescription: "至少报名过一个项目的独立学员数。",
79976
+ programOvertimeDescription: "所选时间段内学员在项目上花费的时间。",
79977
+ programsTableDescription: "每个项目及其 ID。点击某行可打开详情视图。"
79768
79978
  };
79769
79979
  var analyticsAnalyticsReports = {
79770
79980
  failedToLoadReportForEditing: "无法加载报告进行编辑,正在打开下载。",
@@ -79806,7 +80016,13 @@ var analyticsAnalyticsTopicsStats = {
79806
80016
  outOfFive: "/ 5",
79807
80017
  topicsDetails: "主题详情",
79808
80018
  topicDetailsForLabel: "{label} 的主题详情",
79809
- messagesColon: "消息:"
80019
+ messagesColon: "消息:",
80020
+ topicsDescription: "本月对话中出现的不同主题数。",
80021
+ conversationsDescription: "本月开启的对话数。",
80022
+ messagesDescription: "本月所有对话中交换的消息数。",
80023
+ conversationsChartDescription: "一段时间内开启的对话数,便于跟踪参与度趋势。",
80024
+ averageRatingDescription: "用户对智能体回复的平均评分随时间的变化,满分 5 分。",
80025
+ topicsDetailsDescription: "按消息量排序的主题,展示用户最常咨询的内容。"
79810
80026
  };
79811
80027
  var analyticsAnalyticsTranscriptsStats = {
79812
80028
  justNow: "刚刚",
@@ -79861,7 +80077,10 @@ var analyticsAnalyticsTranscriptsStats = {
79861
80077
  srGoToLastPage: "跳转至最后一页",
79862
80078
  none: "无",
79863
80079
  loading: "加载中...",
79864
- paginationInfo: "第 {currentPage} 页,共 {totalPages} 页 • 共 {totalRecords} 条记录"
80080
+ paginationInfo: "第 {currentPage} 页,共 {totalPages} 页 • 共 {totalRecords} 条记录",
80081
+ avgMessagesPerConversationDescription: "一次典型对话包含的消息数,反映交流的深入程度。",
80082
+ avgCostPerConversationDescription: "一次典型对话所产生的模型使用成本。",
80083
+ avgRatingDescription: "用户对其对话给出的平均评分,满分 5 分。"
79865
80084
  };
79866
80085
  var analyticsAnalyticsUsersStats = {
79867
80086
  usersLoggedInNow: "当前在线用户",
@@ -79889,7 +80108,13 @@ var analyticsAnalyticsUsersStats = {
79889
80108
  justNow: "刚刚",
79890
80109
  minutesAgo: "{count} 分钟前",
79891
80110
  hoursAgo: "{count} 小时前",
79892
- daysAgo: "{count} 天前"
80111
+ daysAgo: "{count} 天前",
80112
+ usersLoggedInNowDescription: "当前处于登录状态的用户数。",
80113
+ usersLoggedInPast30DaysDescription: "过去 30 天内至少登录过一次的独立用户数。",
80114
+ totalRegisteredUsersDescription: "该租户下注册的全部用户账号,无论是否活跃。",
80115
+ activeUsersChartDescription: "每日独立活跃用户数,展示参与度随时间的变化。",
80116
+ accessTimesDescription: "用户最活跃的时段,按星期几和小时细分。",
80117
+ userDetailsDescription: "按用户列出的消息量与最近活动。可搜索以查找特定用户。"
79893
80118
  };
79894
80119
  var analyticsGroupsFilterDropdown = {
79895
80120
  filterByGroups: "按组筛选",
@@ -80761,7 +80986,10 @@ var clawSandboxAgentSkills = {
80761
80986
  tabsAriaLabel: "技能",
80762
80987
  tabAgentSkills: "智能体技能",
80763
80988
  tabAvailableSkills: "可用技能",
80764
- addedBadge: "已添加"
80989
+ addedBadge: "已添加",
80990
+ effectiveHeading: "此智能体的技能",
80991
+ catalogHeading: "可用技能",
80992
+ resourcesItemLabel: "资源"
80765
80993
  };
80766
80994
  var clawSandboxHelpers = {
80767
80995
  unknown: "未知",
@@ -186894,7 +187122,20 @@ function ChatPrivacyToggle({ org, userId, mentor, className }) {
186894
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')) })] })] }) })] }));
186895
187123
  }
186896
187124
 
186897
- function StatCard({ title, value, percentage, loading = false, showDollarSign = false, }) {
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, }) {
186898
187139
  const t = useT();
186899
187140
  let paragraph = jsx("p", { className: "text-sm text-[#898989]", children: t('analyticsStatCard.noChange') });
186900
187141
  if (!percentage) {
@@ -186907,9 +187148,9 @@ function StatCard({ title, value, percentage, loading = false, showDollarSign =
186907
187148
  paragraph = (jsxs("p", { className: "text-sm text-[#898989]", children: [jsxs("span", { className: "text-red-600 mr-1", children: [percentage, "%"] }), t('analyticsStatCard.comparedToLastMonth')] }));
186908
187149
  }
186909
187150
  if (loading) {
186910
- 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 mb-2" }), jsx(Skeleton, { className: "h-8 w-16 mb-2" }), jsx(Skeleton, { className: "h-4 w-32" })] }) }));
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" })] }) }));
186911
187152
  }
186912
- 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] mb-2", children: title }), jsx("p", { className: "text-[28px] font-semibold text-[#484848] mb-2", "aria-label": t('analyticsStatCard.ariaLabelValue', { title }), children: showDollarSign ? `$${value}` : value }), paragraph] }) }));
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] }) }));
186913
187154
  }
186914
187155
 
186915
187156
  const THEMES = { light: '', dark: '.dark' };
@@ -187109,8 +187350,8 @@ function TimeFilter() {
187109
187350
  : 'text-gray-500 hover:text-gray-700 hover:bg-gray-50 border border-gray-100 bg-white'}`, children: "90D" }), jsx(CustomDateRangePicker, {})] }));
187110
187351
  }
187111
187352
 
187112
- function ChartCardWrapper({ title, label, children, filters, setOutsideFilters, overflowAuto, height, }) {
187113
- 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: {
187114
187355
  value: {
187115
187356
  label,
187116
187357
  color: '#38A1E5', // Reverted to original color
@@ -187234,7 +187475,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
187234
187475
  const t = useT();
187235
187476
  const currentMentorId = selectedMentorId || mentorId;
187236
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 });
187237
- 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) => ({
187238
187479
  date: formatDateToShortFormat$2(point.date, sessionStatsDateFilter.activeFilter === 'today'),
187239
187480
  value: point.value,
187240
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 }) => {
@@ -187248,7 +187489,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
187248
187489
  stroke: '#38A1E5',
187249
187490
  strokeWidth: 2,
187250
187491
  fill: 'white',
187251
- } })] })) : (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) => ({
187252
187493
  topic: result.name,
187253
187494
  value: result.messages,
187254
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 }) => {
@@ -187257,7 +187498,7 @@ function AnalyticsOverview({ tenantKey, mentorId, selectedMentorId, usergroupIds
187257
187498
  return null;
187258
187499
  const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
187259
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() })] }) })] }));
187260
- }, 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) => ({
187261
187502
  date: formatDateToShortFormat$2(point.date, usersStatsDateFilter.activeFilter === 'today'),
187262
187503
  value: point.value,
187263
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 }) => {
@@ -187613,7 +187854,7 @@ function AnalyticsUsersStats({ tenantKey, mentorId, selectedMentorId, usergroupI
187613
187854
  const t = useT();
187614
187855
  const currentMentorId = selectedMentorId || mentorId;
187615
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 });
187616
- 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) => ({
187617
187858
  date: formatDateToShortFormat$2(point.date, activeUsersStatsDateFilter.activeFilter === 'today'),
187618
187859
  value: point.value,
187619
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 }) => {
@@ -187622,7 +187863,7 @@ function AnalyticsUsersStats({ tenantKey, mentorId, selectedMentorId, usergroupI
187622
187863
  return null;
187623
187864
  const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
187624
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() })] }) })] }));
187625
- }, 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 &&
187626
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)
187627
187868
  .filter((page) => {
187628
187869
  const current = userDetailsStats.pagination.page;
@@ -187720,7 +187961,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
187720
187961
  const currentMentorId = selectedMentorId || mentorId;
187721
187962
  const { topicsStats, isLoadingTopicsStats, conversationsStats, isLoadingConversationsStats, conversationsStatsDateFilter, setConversationsStatsDateFilter, averageRatingStats, averageRatingDateFilter, setAverageRatingDateFilter, topicsDetailsStats, isLoadingTopicsDetailsStats, topicsDetailsDateFilter, setTopicsDetailsDateFilter, } = useTopics({ tenantKey, mentorId: currentMentorId, usergroupIds });
187722
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;
187723
- 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) => ({
187724
187965
  date: formatDateToShortFormat$2(point.date, conversationsStatsDateFilter.activeFilter === 'today'),
187725
187966
  value: point.value,
187726
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 }) => {
@@ -187736,7 +187977,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
187736
187977
  stroke: '#38A1E5',
187737
187978
  strokeWidth: 2,
187738
187979
  fill: 'white',
187739
- } })] })) : (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) => ({
187740
187981
  date: formatDateToShortFormat$2(point.date, averageRatingDateFilter.activeFilter === 'today'),
187741
187982
  value: point.value,
187742
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 }) => {
@@ -187750,7 +187991,7 @@ function AnalyticsTopicsStats({ tenantKey, mentorId, selectedMentorId, usergroup
187750
187991
  stroke: '#38A1E5',
187751
187992
  strokeWidth: 2,
187752
187993
  fill: 'white',
187753
- } })] })) : (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) => ({
187754
187995
  topic: result.name,
187755
187996
  value: result.messages,
187756
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 }) => {
@@ -187989,7 +188230,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
187989
188230
  }
187990
188231
  return pages;
187991
188232
  };
187992
- 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) &&
187993
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) => ({
187994
188235
  date: formatDateToShortFormat$2(item.date, detailedCostPerDayFilters.activeFilter === 'today'),
187995
188236
  value: item.value,
@@ -188001,7 +188242,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
188001
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', {
188002
188243
  label,
188003
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)] })] }) })] }));
188004
- }, 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) &&
188005
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) => ({
188006
188247
  name: item.provider,
188007
188248
  value: item.total_cost,
@@ -188016,7 +188257,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
188016
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', {
188017
188258
  label,
188018
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)] })] }) })] }));
188019
- }, 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) => ({
188020
188261
  name: item.llm_model,
188021
188262
  value: item.total_cost,
188022
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 }) => {
@@ -188027,7 +188268,7 @@ function AnalyticsFinancialStats({ tenantKey, mentorId, selectedMentorId, usergr
188027
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', {
188028
188269
  label,
188029
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)] })] }) })] }));
188030
- }, 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) ||
188031
188272
  (user === null || user === void 0 ? void 0 : user.username) ||
188032
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 &&
188033
188274
  (!((_o = detailedCostPerUserData === null || detailedCostPerUserData === void 0 ? void 0 : detailedCostPerUserData.rows) === null || _o === void 0 ? void 0 : _o.length) ||
@@ -222749,8 +222990,8 @@ function AnalyticsTranscriptsStats({ tenantKey, mentorId, selectedMentorId, user
222749
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') }) })) })] })) }));
222750
222991
  };
222751
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) ||
222752
- 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) ||
222753
- 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 ? (
222754
222995
  // Loading state
222755
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 ? (
222756
222997
  // Results
@@ -224010,7 +224251,9 @@ function AnalyticsCourses({ tenantKey, mentorId, selectedMentorId, basePath = ''
224010
224251
  router.push(`${basePath}/courses/${courseId}`);
224011
224252
  };
224012
224253
  const hasEnrollmentStatsPoints = Number((_a = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _a === void 0 ? void 0 : _a.length) > 0;
224013
- 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 }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourses.totalLearners'), value: courseStats.total_learners })] }), (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, 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) => ({
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) => ({
224014
224257
  date: formatDateToShortFormat$1(point.date, enrollmentStatsDateFilter.activeFilter === 'today'),
224015
224258
  value: formatSecondsToHours$1(point.value),
224016
224259
  rawSeconds: point.value,
@@ -224025,7 +224268,7 @@ function AnalyticsCourses({ tenantKey, mentorId, selectedMentorId, basePath = ''
224025
224268
  stroke: '#38A1E5',
224026
224269
  strokeWidth: 2,
224027
224270
  fill: 'white',
224028
- } })] })) }) })), 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 mb-4", children: t('analyticsAnalyticsCourses.coursesHeading') }), 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) => {
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) => {
224029
224272
  if (e.key === 'Enter' || e.key === ' ') {
224030
224273
  e.preventDefault();
224031
224274
  handleCourseClick(course.id);
@@ -224063,7 +224306,7 @@ function AnalyticsCourseDetail({ tenantKey, mentorId, selectedMentorId, courseId
224063
224306
  const [selectedEnrollment, setSelectedEnrollment] = useState(null);
224064
224307
  const resolvedCourseName = courseName || (courseInfo === null || courseInfo === void 0 ? void 0 : courseInfo.name);
224065
224308
  const showTitle = showCourseTitle && !!resolvedCourseName;
224066
- 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 }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsCourseDetail.completedEnrollments'), value: courseDetailStats.completed_enrollments, percentage: courseDetailStats.completed_enrollments_percentage })] }), 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: [jsx("h3", { className: "text-base font-medium text-gray-700 mb-4", children: t('analyticsAnalyticsCourseDetail.enrolledUsers') }), 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) &&
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) &&
224067
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) => {
224068
224311
  if (e.key === 'Enter' || e.key === ' ') {
224069
224312
  e.preventDefault();
@@ -224367,7 +224610,9 @@ function AnalyticsPrograms({ tenantKey, mentorId, selectedMentorId, basePath = '
224367
224610
  router.push(`${basePath}/programs/${programId}`);
224368
224611
  };
224369
224612
  const hasEnrollmentStatsPoints = Number((_a = enrollmentStats === null || enrollmentStats === void 0 ? void 0 : enrollmentStats.points) === null || _a === void 0 ? void 0 : _a.length) > 0;
224370
- 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 }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsPrograms.totalLearners'), value: programStats.total_learners })] }), (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, 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) => ({
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) => ({
224371
224616
  date: formatDateToShortFormat(point.date, enrollmentStatsDateFilter.activeFilter === 'today'),
224372
224617
  value: formatSecondsToHours(point.value),
224373
224618
  rawSeconds: point.value,
@@ -224382,7 +224627,7 @@ function AnalyticsPrograms({ tenantKey, mentorId, selectedMentorId, basePath = '
224382
224627
  stroke: '#38A1E5',
224383
224628
  strokeWidth: 2,
224384
224629
  fill: 'white',
224385
- } })] })) }) })), 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 mb-4", children: t('analyticsAnalyticsPrograms.programs') }), 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) => {
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) => {
224386
224631
  if (e.key === 'Enter' || e.key === ' ') {
224387
224632
  e.preventDefault();
224388
224633
  handleProgramClick(program.id);
@@ -224419,7 +224664,7 @@ function AnalyticsProgramDetail({ tenantKey, mentorId, selectedMentorId, program
224419
224664
  });
224420
224665
  const [selectedEnrollment, setSelectedEnrollment] = useState(null);
224421
224666
  const resolvedProgramName = programName || (programInfo === null || programInfo === void 0 ? void 0 : programInfo.name);
224422
- 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 }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsProgramDetail.statActiveEnrollments'), value: programDetailStats.active_enrollments, percentage: programDetailStats.active_enrollments_percentage }), jsx(StatCard, { loading: isLoading, title: t('analyticsAnalyticsProgramDetail.statCompletedEnrollments'), value: programDetailStats.completed_enrollments, percentage: programDetailStats.completed_enrollments_percentage })] }), 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: [jsx("h3", { className: "text-base font-medium text-gray-700 mb-4", children: t('analyticsAnalyticsProgramDetail.enrolledUsersHeading') }), 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) &&
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) &&
224423
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) => {
224424
224669
  if (e.key === 'Enter' || e.key === ' ') {
224425
224670
  e.preventDefault();
@@ -224599,10 +224844,10 @@ function statusBadgeStyle(status) {
224599
224844
  }
224600
224845
  }
224601
224846
  function AnalyticsMonetizationStats({ tenantKey }) {
224602
- 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;
224603
224848
  const t = useT();
224604
224849
  const { revenueData, isLoadingRevenue, paywallsData, isLoadingPaywalls, subscribersData, isLoadingSubscribers, paywallTypeFilter, setPaywallTypeFilter, subscriberStatusFilter, setSubscriberStatusFilter, paywallPage, setPaywallPage, subscriberPage, setSubscriberPage, statusDistribution, itemTypeDistribution, statusColors, itemTypeColors, } = useMonetization({ tenantKey });
224605
- 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: {
224606
224851
  value: {
224607
224852
  label: t('analyticsAnalyticsMonetizationStats.subscribersLabel'),
224608
224853
  color: '#38A1E5',
@@ -224616,7 +224861,7 @@ function AnalyticsMonetizationStats({ tenantKey }) {
224616
224861
  return null;
224617
224862
  const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
224618
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 })] }) })] }));
224619
- }, 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: {
224620
224865
  value: {
224621
224866
  label: t('analyticsAnalyticsMonetizationStats.paywallsLabel'),
224622
224867
  color: '#38A1E5',
@@ -224630,28 +224875,32 @@ function AnalyticsMonetizationStats({ tenantKey }) {
224630
224875
  return null;
224631
224876
  const data = (_a = payload[0]) === null || _a === void 0 ? void 0 : _a.payload;
224632
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 })] }) })] }));
224633
- }, 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', {
224634
- count: (_d = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.count) !== null && _d !== void 0 ? _d : 0,
224635
- }) }), jsxs(Select$1, { value: subscriberStatusFilter, onValueChange: (v) => {
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) => {
224636
224883
  setSubscriberStatusFilter(v);
224637
224884
  setSubscriberPage(1);
224638
- }, 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: (_e = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _e === void 0 ? void 0 : _e.map((sub, index) => {
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) => {
224639
224886
  var _a, _b, _c;
224640
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'
224641
224888
  ? `/${sub.price.interval}`
224642
224889
  : ''] })) }), jsx(TableCell, { className: "text-right", children: jsx(Badge, { className: statusBadgeStyle(sub.status), children: sub.status }) })] }, sub.unique_id));
224643
- }) })] }) }), (!((_f = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _f === void 0 ? void 0 : _f.length) || ((_g = subscribersData === null || subscribersData === void 0 ? void 0 : subscribersData.results) === null || _g === void 0 ? void 0 : _g.length) === 0) && (jsx("div", { className: "h-[60px]", children: jsx(EmptyStats, {}) })), subscribersData &&
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 &&
224644
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', {
224645
224892
  count: subscribersData.count,
224646
224893
  plural: subscribersData.count !== 1 ? 's' : '',
224647
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 &&
224648
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 &&
224649
- 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', {
224650
- count: (_h = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.count) !== null && _h !== void 0 ? _h : 0,
224651
- }) }), jsxs(Select$1, { value: paywallTypeFilter, onValueChange: (v) => {
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) => {
224652
224901
  setPaywallTypeFilter(v);
224653
224902
  setPaywallPage(1);
224654
- }, 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: (_j = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _j === void 0 ? void 0 : _j.map((pw, index) => {
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) => {
224655
224904
  var _a, _b;
224656
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', {
224657
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,
@@ -224660,7 +224909,7 @@ function AnalyticsMonetizationStats({ tenantKey }) {
224660
224909
  : 'bg-gray-100 text-gray-500 border-gray-200 hover:bg-gray-100', children: pw.is_enabled
224661
224910
  ? t('analyticsAnalyticsMonetizationStats.statusActive')
224662
224911
  : t('analyticsAnalyticsMonetizationStats.statusDisabled') }) })] }, `${pw.item_type}-${pw.item_id}`));
224663
- }) })] }) }), (!((_k = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _k === void 0 ? void 0 : _k.length) || ((_l = paywallsData === null || paywallsData === void 0 ? void 0 : paywallsData.results) === null || _l === void 0 ? void 0 : _l.length) === 0) && (jsx("div", { className: "h-[60px]", children: jsx(EmptyStats, {}) })), paywallsData &&
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 &&
224664
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', {
224665
224914
  count: paywallsData.count,
224666
224915
  plural: paywallsData.count !== 1 ? 's' : '',
@@ -225445,7 +225694,7 @@ function AnalyticsMemoryStats({ tenantKey, mentorId, userId, selectedMentorId, m
225445
225694
  setContentFilter(contentInput.trim());
225446
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)
225447
225696
  ? `${format$1(dateRange.from, 'MMM dd')} - ${format$1(dateRange.to, 'MMM dd')}`
225448
- : 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-2 text-sm font-medium text-[#484848]", children: [jsx(Brain, { className: "h-4 w-4 text-blue-600" }), t('analyticsAnalyticsMemoryStats.byCategory')] }), jsx("ul", { className: "space-y-3", children: aggregates.categories.map((category) => {
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) => {
225449
225698
  const percent = aggregates.totalMemories
225450
225699
  ? Math.round((category.count / aggregates.totalMemories) * 100)
225451
225700
  : 0;
@@ -236268,5 +236517,5 @@ var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
236268
236517
  TrainOrDeleteModal: TrainOrDeleteModal
236269
236518
  });
236270
236519
 
236271
- 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 };
236272
236521
  //# sourceMappingURL=index.esm.js.map