@carlonicora/nextjs-jsonapi 6.24.0 → 6.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/{BlockNoteEditor-MONT74RQ.js → BlockNoteEditor-JHXDOCS5.js} +28 -25
  2. package/dist/BlockNoteEditor-JHXDOCS5.js.map +1 -0
  3. package/dist/{BlockNoteEditor-ENDOVTAW.mjs → BlockNoteEditor-RVDSB6TF.mjs} +13 -10
  4. package/dist/{BlockNoteEditor-ENDOVTAW.mjs.map → BlockNoteEditor-RVDSB6TF.mjs.map} +1 -1
  5. package/dist/{BlockNoteViewer-2TJZ6JET.mjs → BlockNoteViewer-76CKL6W5.mjs} +8 -6
  6. package/dist/{BlockNoteViewer-2TJZ6JET.mjs.map → BlockNoteViewer-76CKL6W5.mjs.map} +1 -1
  7. package/dist/{BlockNoteViewer-K2HBF3IP.js → BlockNoteViewer-B25WKYQP.js} +9 -7
  8. package/dist/BlockNoteViewer-B25WKYQP.js.map +1 -0
  9. package/dist/JsonApiRequest-OKNQZLS6.js +26 -0
  10. package/dist/{JsonApiRequest-KC6DOHKT.js.map → JsonApiRequest-OKNQZLS6.js.map} +1 -1
  11. package/dist/{JsonApiRequest-ADLBJ5RX.mjs → JsonApiRequest-WNPDS356.mjs} +2 -2
  12. package/dist/billing/index.js +504 -517
  13. package/dist/billing/index.js.map +1 -1
  14. package/dist/billing/index.mjs +20 -33
  15. package/dist/billing/index.mjs.map +1 -1
  16. package/dist/{chunk-VNUT2D27.mjs → chunk-2PWYG2WJ.mjs} +2 -2
  17. package/dist/{chunk-W4ML6D2X.mjs → chunk-3U7YJ73T.mjs} +7 -7
  18. package/dist/{chunk-BQ2WAG4K.js → chunk-3VNDFKT7.js} +19 -19
  19. package/dist/{chunk-BQ2WAG4K.js.map → chunk-3VNDFKT7.js.map} +1 -1
  20. package/dist/{chunk-BE6UMM5X.mjs → chunk-47HNJQ7U.mjs} +3 -3
  21. package/dist/chunk-5T2AQMQ2.mjs +90 -0
  22. package/dist/chunk-5T2AQMQ2.mjs.map +1 -0
  23. package/dist/{chunk-A5M3MORY.js → chunk-5WM72MLE.js} +3 -3
  24. package/dist/{chunk-A5M3MORY.js.map → chunk-5WM72MLE.js.map} +1 -1
  25. package/dist/{chunk-OZADFYE7.mjs → chunk-64REWDSK.mjs} +308 -241
  26. package/dist/chunk-64REWDSK.mjs.map +1 -0
  27. package/dist/{chunk-S7SPAC6X.mjs → chunk-73NKUBMP.mjs} +3 -3
  28. package/dist/chunk-743M4TIB.mjs +76 -0
  29. package/dist/chunk-743M4TIB.mjs.map +1 -0
  30. package/dist/{chunk-HN7L6RRW.js → chunk-77JC2UCF.js} +903 -955
  31. package/dist/chunk-77JC2UCF.js.map +1 -0
  32. package/dist/{chunk-7OIWOPM5.mjs → chunk-7MGXQIEP.mjs} +4 -3
  33. package/dist/chunk-7MGXQIEP.mjs.map +1 -0
  34. package/dist/{chunk-YTDGYI62.mjs → chunk-DWPHHUMV.mjs} +3 -3
  35. package/dist/{chunk-SO3YUCL6.js → chunk-F3EVYBMA.js} +6 -5
  36. package/dist/chunk-F3EVYBMA.js.map +1 -0
  37. package/dist/{chunk-53SD4YRF.js → chunk-FBHUUPRV.js} +5 -5
  38. package/dist/{chunk-53SD4YRF.js.map → chunk-FBHUUPRV.js.map} +1 -1
  39. package/dist/{chunk-T6G2F2BK.mjs → chunk-FJUKLVVX.mjs} +16 -68
  40. package/dist/chunk-FJUKLVVX.mjs.map +1 -0
  41. package/dist/chunk-HROKKUBQ.js +156 -0
  42. package/dist/chunk-HROKKUBQ.js.map +1 -0
  43. package/dist/{chunk-BDWV4KYR.js → chunk-JE6QWCNE.js} +1386 -1319
  44. package/dist/chunk-JE6QWCNE.js.map +1 -0
  45. package/dist/{chunk-RCOKQ3R4.js → chunk-LNO2JLU3.js} +2 -2
  46. package/dist/{chunk-RCOKQ3R4.js.map → chunk-LNO2JLU3.js.map} +1 -1
  47. package/dist/{chunk-TMV7TL7O.mjs → chunk-M7YK5CCE.mjs} +8 -6
  48. package/dist/{chunk-TMV7TL7O.mjs.map → chunk-M7YK5CCE.mjs.map} +1 -1
  49. package/dist/{chunk-GMMDXINC.js → chunk-N3NQS7X6.js} +12 -12
  50. package/dist/{chunk-GMMDXINC.js.map → chunk-N3NQS7X6.js.map} +1 -1
  51. package/dist/chunk-NP3AFULU.js +76 -0
  52. package/dist/chunk-NP3AFULU.js.map +1 -0
  53. package/dist/{chunk-TNTCLVUR.js → chunk-ONU4WCDG.js} +17 -15
  54. package/dist/chunk-ONU4WCDG.js.map +1 -0
  55. package/dist/{chunk-YSE2Z4RB.js → chunk-PQQFOONG.js} +12 -12
  56. package/dist/{chunk-YSE2Z4RB.js.map → chunk-PQQFOONG.js.map} +1 -1
  57. package/dist/chunk-RW6XZGZG.mjs +156 -0
  58. package/dist/chunk-RW6XZGZG.mjs.map +1 -0
  59. package/dist/chunk-SYMI4IDW.js +90 -0
  60. package/dist/chunk-SYMI4IDW.js.map +1 -0
  61. package/dist/{chunk-N2BFT7KI.mjs → chunk-W7U6O3OE.mjs} +2 -71
  62. package/dist/chunk-W7U6O3OE.mjs.map +1 -0
  63. package/dist/{chunk-YMCL3JXZ.mjs → chunk-YPBIPE2B.mjs} +2 -2
  64. package/dist/{chunk-P7L6OFX5.js → chunk-Z6T2575A.js} +12 -81
  65. package/dist/chunk-Z6T2575A.js.map +1 -0
  66. package/dist/client/index.js +13 -10
  67. package/dist/client/index.js.map +1 -1
  68. package/dist/client/index.mjs +17 -14
  69. package/dist/components/forms/DatePickerPopover.d.ts.map +1 -1
  70. package/dist/components/forms/DateRangeSelector.d.ts.map +1 -1
  71. package/dist/components/forms/FormDate.d.ts.map +1 -1
  72. package/dist/components/forms/FormDateTime.d.ts.map +1 -1
  73. package/dist/components/forms/time-cycle.d.ts +14 -0
  74. package/dist/components/forms/time-cycle.d.ts.map +1 -0
  75. package/dist/components/index.js +11 -8
  76. package/dist/components/index.js.map +1 -1
  77. package/dist/components/index.mjs +10 -7
  78. package/dist/components/tables/cells/cell.date.d.ts.map +1 -1
  79. package/dist/components/tables/cells/cell.dateTime.d.ts.map +1 -1
  80. package/dist/contexts/DateLocaleContext.d.ts +56 -0
  81. package/dist/contexts/DateLocaleContext.d.ts.map +1 -0
  82. package/dist/contexts/index.d.ts +1 -0
  83. package/dist/contexts/index.d.ts.map +1 -1
  84. package/dist/contexts/index.js +24 -8
  85. package/dist/contexts/index.js.map +1 -1
  86. package/dist/contexts/index.mjs +23 -7
  87. package/dist/core/index.js +17 -6
  88. package/dist/core/index.js.map +1 -1
  89. package/dist/core/index.mjs +19 -8
  90. package/dist/date-locale/index.d.ts +2 -0
  91. package/dist/date-locale/index.d.ts.map +1 -0
  92. package/dist/date-locale/index.js +21 -0
  93. package/dist/date-locale/index.js.map +1 -0
  94. package/dist/date-locale/index.mjs +21 -0
  95. package/dist/email-automations/index.js +131 -123
  96. package/dist/email-automations/index.js.map +1 -1
  97. package/dist/email-automations/index.mjs +23 -15
  98. package/dist/email-automations/index.mjs.map +1 -1
  99. package/dist/features/account-deletion/components/AccountDeletionAdminTrigger.d.ts.map +1 -1
  100. package/dist/features/analytics/components/AnalyticsJourneyContainer.d.ts.map +1 -1
  101. package/dist/features/analytics/components/AnalyticsSessionsTable.d.ts.map +1 -1
  102. package/dist/features/analytics/index.js +154 -147
  103. package/dist/features/analytics/index.js.map +1 -1
  104. package/dist/features/analytics/index.mjs +32 -25
  105. package/dist/features/analytics/index.mjs.map +1 -1
  106. package/dist/features/analytics/server.js +11 -9
  107. package/dist/features/analytics/server.js.map +1 -1
  108. package/dist/features/analytics/server.mjs +9 -7
  109. package/dist/features/analytics/server.mjs.map +1 -1
  110. package/dist/features/billing/components/utils/date.d.ts +3 -3
  111. package/dist/features/billing/components/utils/format-options.d.ts +6 -4
  112. package/dist/features/billing/components/utils/format-options.d.ts.map +1 -1
  113. package/dist/features/billing/components/utils/useBillingFormatOptions.d.ts +5 -1
  114. package/dist/features/billing/components/utils/useBillingFormatOptions.d.ts.map +1 -1
  115. package/dist/features/billing/stripe-usage/components/details/UsageSummaryCard.d.ts.map +1 -1
  116. package/dist/features/billing/stripe-usage/components/lists/UsageHistoryTable.d.ts.map +1 -1
  117. package/dist/features/blog/components/admin/BlogTranslationStatus.d.ts.map +1 -1
  118. package/dist/features/blog/components/public/BlogPostMeta.d.ts.map +1 -1
  119. package/dist/features/blog/hooks/useBlogPostTableStructure.d.ts.map +1 -1
  120. package/dist/features/blog/index.js +168 -162
  121. package/dist/features/blog/index.js.map +1 -1
  122. package/dist/features/blog/index.mjs +25 -19
  123. package/dist/features/blog/index.mjs.map +1 -1
  124. package/dist/features/blog/server.js +29 -27
  125. package/dist/features/blog/server.js.map +1 -1
  126. package/dist/features/blog/server.mjs +8 -6
  127. package/dist/features/blog/server.mjs.map +1 -1
  128. package/dist/features/email-automation/hooks/useEmailAutomationEnrollmentTableStructure.d.ts.map +1 -1
  129. package/dist/features/handbook/components/parts/HandbookIndexStatus.d.ts.map +1 -1
  130. package/dist/features/help/components/HelpArticleBody.d.ts.map +1 -1
  131. package/dist/features/help/index.js +48 -43
  132. package/dist/features/help/index.js.map +1 -1
  133. package/dist/features/help/index.mjs +15 -10
  134. package/dist/features/help/index.mjs.map +1 -1
  135. package/dist/features/notification/components/notifications/Notification.d.ts +2 -1
  136. package/dist/features/notification/components/notifications/Notification.d.ts.map +1 -1
  137. package/dist/features/notification/contexts/NotificationContext.d.ts.map +1 -1
  138. package/dist/features/notification/hooks/useNotificationTableStructure.d.ts.map +1 -1
  139. package/dist/features/oauth/components/OAuthClientCard.d.ts.map +1 -1
  140. package/dist/features/oauth/components/OAuthClientDetail.d.ts.map +1 -1
  141. package/dist/features/tokenusage/index.js +133 -130
  142. package/dist/features/tokenusage/index.js.map +1 -1
  143. package/dist/features/tokenusage/index.mjs +10 -7
  144. package/dist/features/tokenusage/index.mjs.map +1 -1
  145. package/dist/features/tokenusage/lib/formatters.d.ts +6 -3
  146. package/dist/features/tokenusage/lib/formatters.d.ts.map +1 -1
  147. package/dist/index.js +19 -7
  148. package/dist/index.js.map +1 -1
  149. package/dist/index.mjs +23 -11
  150. package/dist/local-transport-AT4TE264.js +15 -0
  151. package/dist/{local-transport-MJPOKPTU.js.map → local-transport-AT4TE264.js.map} +1 -1
  152. package/dist/{local-transport-RVD4FZGA.mjs → local-transport-KWEUZ4GX.mjs} +5 -5
  153. package/dist/offline/index.js +56 -54
  154. package/dist/offline/index.js.map +1 -1
  155. package/dist/offline/index.mjs +23 -21
  156. package/dist/offline/index.mjs.map +1 -1
  157. package/dist/{request-4AWGPIGH.mjs → request-6GAIWWTG.mjs} +2 -2
  158. package/dist/{request-H5FZBZA2.js → request-BWO4Y434.js} +3 -3
  159. package/dist/{request-H5FZBZA2.js.map → request-BWO4Y434.js.map} +1 -1
  160. package/dist/server/ServerSession.d.ts +2 -0
  161. package/dist/server/ServerSession.d.ts.map +1 -1
  162. package/dist/server/index.js +10 -8
  163. package/dist/server/index.js.map +1 -1
  164. package/dist/server/index.mjs +9 -7
  165. package/dist/utils/date-formatter.d.ts +45 -4
  166. package/dist/utils/date-formatter.d.ts.map +1 -1
  167. package/dist/utils/index.d.ts +1 -1
  168. package/dist/utils/index.d.ts.map +1 -1
  169. package/dist/utils/toast.d.ts +2 -0
  170. package/dist/utils/toast.d.ts.map +1 -1
  171. package/dist/write-through-KNRI5L4V.mjs +15 -0
  172. package/dist/write-through-KNRI5L4V.mjs.map +1 -0
  173. package/dist/write-through-MYHQ6GJU.js +15 -0
  174. package/dist/{write-through-HE2QSOVI.js.map → write-through-MYHQ6GJU.js.map} +1 -1
  175. package/messages/en.json +1 -0
  176. package/messages/it.json +1 -0
  177. package/package.json +6 -1
  178. package/src/components/forms/DatePickerPopover.tsx +5 -3
  179. package/src/components/forms/DateRangeSelector.tsx +9 -7
  180. package/src/components/forms/FormDate.tsx +5 -3
  181. package/src/components/forms/FormDateTime.tsx +75 -39
  182. package/src/components/forms/__tests__/time-cycle.spec.ts +37 -0
  183. package/src/components/forms/time-cycle.ts +27 -0
  184. package/src/components/tables/cells/cell.date.tsx +3 -5
  185. package/src/components/tables/cells/cell.dateTime.tsx +3 -7
  186. package/src/contexts/DateLocaleContext.tsx +106 -0
  187. package/src/contexts/__tests__/DateLocaleContext.spec.tsx +175 -0
  188. package/src/contexts/index.ts +1 -0
  189. package/src/date-locale/index.ts +12 -0
  190. package/src/features/account-deletion/components/AccountDeletionAdminTrigger.tsx +3 -4
  191. package/src/features/analytics/components/AnalyticsJourneyContainer.tsx +8 -8
  192. package/src/features/analytics/components/AnalyticsSessionsTable.tsx +4 -6
  193. package/src/features/auth/components/two-factor/PasskeyList.tsx +3 -3
  194. package/src/features/auth/components/two-factor/TotpAuthenticatorList.tsx +3 -3
  195. package/src/features/billing/components/utils/__tests__/billing-formatters.spec.ts +14 -6
  196. package/src/features/billing/components/utils/date.ts +5 -5
  197. package/src/features/billing/components/utils/format-options.ts +6 -4
  198. package/src/features/billing/components/utils/useBillingFormatOptions.ts +8 -2
  199. package/src/features/billing/stripe-usage/components/details/UsageSummaryCard.tsx +4 -12
  200. package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +4 -17
  201. package/src/features/blog/components/admin/BlogTranslationStatus.tsx +3 -2
  202. package/src/features/blog/components/public/BlogPostMeta.tsx +5 -4
  203. package/src/features/blog/components/public/__tests__/BlogList.spec.tsx +1 -2
  204. package/src/features/blog/components/public/__tests__/BlogPostView.spec.tsx +2 -3
  205. package/src/features/blog/hooks/useBlogPostTableStructure.tsx +4 -8
  206. package/src/features/email-automation/hooks/useEmailAutomationEnrollmentTableStructure.tsx +11 -5
  207. package/src/features/email-blast/components/containers/EmailBlastContainer.tsx +3 -3
  208. package/src/features/email-blast/hooks/useEmailBlastTableStructure.tsx +4 -4
  209. package/src/features/handbook/components/parts/HandbookIndexStatus.tsx +4 -3
  210. package/src/features/help/components/HelpArticleBody.tsx +4 -3
  211. package/src/features/notification/components/notifications/Notification.tsx +38 -7
  212. package/src/features/notification/contexts/NotificationContext.tsx +6 -3
  213. package/src/features/notification/hooks/useNotificationTableStructure.tsx +6 -5
  214. package/src/features/oauth/components/OAuthClientCard.tsx +8 -5
  215. package/src/features/oauth/components/OAuthClientDetail.tsx +3 -6
  216. package/src/features/tokenusage/lib/__tests__/formatters.spec.ts +19 -0
  217. package/src/features/tokenusage/lib/formatters.ts +11 -6
  218. package/src/features/waitlist/hooks/useWaitlistTableStructure.tsx +5 -5
  219. package/src/server/ServerSession.ts +3 -0
  220. package/src/server/__tests__/ServerSession.read.spec.ts +18 -1
  221. package/src/utils/__tests__/date-formatter.spec.ts +134 -10
  222. package/src/utils/__tests__/toast.spec.ts +39 -0
  223. package/src/utils/date-formatter.ts +200 -44
  224. package/src/utils/index.ts +11 -1
  225. package/src/utils/toast.ts +2 -0
  226. package/dist/BlockNoteEditor-MONT74RQ.js.map +0 -1
  227. package/dist/BlockNoteViewer-K2HBF3IP.js.map +0 -1
  228. package/dist/JsonApiRequest-KC6DOHKT.js +0 -26
  229. package/dist/chunk-7OIWOPM5.mjs.map +0 -1
  230. package/dist/chunk-BDWV4KYR.js.map +0 -1
  231. package/dist/chunk-HN7L6RRW.js.map +0 -1
  232. package/dist/chunk-N2BFT7KI.mjs.map +0 -1
  233. package/dist/chunk-OZADFYE7.mjs.map +0 -1
  234. package/dist/chunk-P7L6OFX5.js.map +0 -1
  235. package/dist/chunk-SO3YUCL6.js.map +0 -1
  236. package/dist/chunk-T6G2F2BK.mjs.map +0 -1
  237. package/dist/chunk-TNTCLVUR.js.map +0 -1
  238. package/dist/local-transport-MJPOKPTU.js +0 -15
  239. package/dist/write-through-7I3LA2WN.mjs +0 -15
  240. package/dist/write-through-HE2QSOVI.js +0 -15
  241. /package/dist/{JsonApiRequest-ADLBJ5RX.mjs.map → JsonApiRequest-WNPDS356.mjs.map} +0 -0
  242. /package/dist/{chunk-VNUT2D27.mjs.map → chunk-2PWYG2WJ.mjs.map} +0 -0
  243. /package/dist/{chunk-W4ML6D2X.mjs.map → chunk-3U7YJ73T.mjs.map} +0 -0
  244. /package/dist/{chunk-BE6UMM5X.mjs.map → chunk-47HNJQ7U.mjs.map} +0 -0
  245. /package/dist/{chunk-S7SPAC6X.mjs.map → chunk-73NKUBMP.mjs.map} +0 -0
  246. /package/dist/{chunk-YTDGYI62.mjs.map → chunk-DWPHHUMV.mjs.map} +0 -0
  247. /package/dist/{chunk-YMCL3JXZ.mjs.map → chunk-YPBIPE2B.mjs.map} +0 -0
  248. /package/dist/{local-transport-RVD4FZGA.mjs.map → date-locale/index.mjs.map} +0 -0
  249. /package/dist/{request-4AWGPIGH.mjs.map → local-transport-KWEUZ4GX.mjs.map} +0 -0
  250. /package/dist/{write-through-7I3LA2WN.mjs.map → request-6GAIWWTG.mjs.map} +0 -0
@@ -39,9 +39,10 @@
39
39
 
40
40
 
41
41
 
42
- var _chunkBDWV4KYRjs = require('../../chunk-BDWV4KYR.js');
42
+ var _chunkJE6QWCNEjs = require('../../chunk-JE6QWCNE.js');
43
+ require('../../chunk-SYMI4IDW.js');
43
44
  require('../../chunk-3EPNHTMH.js');
44
- require('../../chunk-TNTCLVUR.js');
45
+ require('../../chunk-ONU4WCDG.js');
45
46
  require('../../chunk-G4JR3SFV.js');
46
47
 
47
48
 
@@ -58,17 +59,19 @@ require('../../chunk-G4JR3SFV.js');
58
59
 
59
60
 
60
61
 
61
- var _chunkHN7L6RRWjs = require('../../chunk-HN7L6RRW.js');
62
+ var _chunk77JC2UCFjs = require('../../chunk-77JC2UCF.js');
63
+ require('../../chunk-HROKKUBQ.js');
62
64
  require('../../chunk-DGN3PR2F.js');
63
65
 
64
66
 
65
67
 
66
- var _chunkP7L6OFX5js = require('../../chunk-P7L6OFX5.js');
67
- require('../../chunk-BQ2WAG4K.js');
68
- require('../../chunk-A5M3MORY.js');
68
+ var _chunkZ6T2575Ajs = require('../../chunk-Z6T2575A.js');
69
+ require('../../chunk-3VNDFKT7.js');
70
+ require('../../chunk-5WM72MLE.js');
69
71
  require('../../chunk-WUNSG3IN.js');
70
- require('../../chunk-RCOKQ3R4.js');
72
+ require('../../chunk-LNO2JLU3.js');
71
73
  require('../../chunk-LXKSUWAV.js');
74
+ require('../../chunk-NP3AFULU.js');
72
75
 
73
76
 
74
77
  var _chunk7QVYU63Ejs = require('../../chunk-7QVYU63E.js');
@@ -89,7 +92,7 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
89
92
  };
90
93
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
91
94
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-md:w-full max-md:[&_#date]:w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
92
- _chunkBDWV4KYRjs.DateRangeSelector,
95
+ _chunkJE6QWCNEjs.DateRangeSelector,
93
96
  {
94
97
  onDateChange: (range) => {
95
98
  if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
@@ -124,16 +127,16 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
124
127
  }
125
128
  ),
126
129
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
127
- _chunkBDWV4KYRjs.Select,
130
+ _chunkJE6QWCNEjs.Select,
128
131
  {
129
132
  items: companyItems,
130
133
  value: _nullishCoalesce(companyId, () => ( ALL_COMPANIES)),
131
134
  onValueChange: (value) => onChange({ companyId: !value || value === ALL_COMPANIES ? void 0 : value }),
132
135
  children: [
133
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectTrigger, { className: "w-56", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectValue, { placeholder: t("token_usage.admin.all_companies") }) }),
134
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.SelectContent, { children: [
135
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectItem, { value: ALL_COMPANIES, children: t("token_usage.admin.all_companies") }),
136
- companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectItem, { value: company.id, children: company.label }, company.id))
136
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectTrigger, { className: "w-56", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectValue, { placeholder: t("token_usage.admin.all_companies") }) }),
137
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.SelectContent, { children: [
138
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectItem, { value: ALL_COMPANIES, children: t("token_usage.admin.all_companies") }),
139
+ companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectItem, { value: company.id, children: company.label }, company.id))
137
140
  ] })
138
141
  ]
139
142
  }
@@ -156,13 +159,13 @@ function Segmented({
156
159
  children: options.map((option) => {
157
160
  const selected = option.value === value;
158
161
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
159
- _chunkBDWV4KYRjs.Button,
162
+ _chunkJE6QWCNEjs.Button,
160
163
  {
161
164
  type: "button",
162
165
  size: "sm",
163
166
  variant: selected ? "default" : "ghost",
164
167
  "aria-pressed": selected,
165
- className: _chunkHN7L6RRWjs.cn.call(void 0, !selected && "text-muted-foreground"),
168
+ className: _chunk77JC2UCFjs.cn.call(void 0, !selected && "text-muted-foreground"),
166
169
  onClick: () => onSelect(option.value),
167
170
  children: option.label
168
171
  },
@@ -182,36 +185,36 @@ function withFilters(endpoint, filters) {
182
185
  return endpoint;
183
186
  }
184
187
  _chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
185
- var TokenUsageAdminService = class extends _chunkHN7L6RRWjs.AbstractService {
188
+ var TokenUsageAdminService = class extends _chunk77JC2UCFjs.AbstractService {
186
189
  static {
187
190
  _chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageAdminService");
188
191
  }
189
192
  /** Six rows: {customer, platform, total} × {current, previous}. */
190
193
  static async getSummary(filters) {
191
- const endpoint = withFilters(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageAdminSummary }), filters);
194
+ const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageAdminSummary }), filters);
192
195
  return this.callApi({
193
- type: _chunkP7L6OFX5js.Modules.TokenUsageAdminSummary,
196
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageAdminSummary,
194
197
  method: "GET" /* GET */,
195
198
  endpoint: endpoint.generate()
196
199
  });
197
200
  }
198
201
  static async getTimeline(params) {
199
- const endpoint = withFilters(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageAdminTimeline }), params);
202
+ const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageAdminTimeline }), params);
200
203
  endpoint.addAdditionalParam("granularity", params.granularity);
201
204
  endpoint.addAdditionalParam("stackBy", params.stackBy);
202
205
  return this.callApi({
203
- type: _chunkP7L6OFX5js.Modules.TokenUsageAdminTimeline,
206
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageAdminTimeline,
204
207
  method: "GET" /* GET */,
205
208
  endpoint: endpoint.generate()
206
209
  });
207
210
  }
208
211
  static async getBreakdown(params) {
209
- const endpoint = withFilters(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageAdminBreakdown }), params);
212
+ const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageAdminBreakdown }), params);
210
213
  endpoint.addAdditionalParam("dimension", params.dimension);
211
214
  endpoint.addAdditionalParam("scope", params.scope);
212
215
  if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
213
216
  return this.callApi({
214
- type: _chunkP7L6OFX5js.Modules.TokenUsageAdminBreakdown,
217
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageAdminBreakdown,
215
218
  method: "GET" /* GET */,
216
219
  endpoint: endpoint.generate()
217
220
  });
@@ -348,7 +351,7 @@ var TokenUsageAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
348
351
  error
349
352
  ]
350
353
  );
351
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminContext.Provider, { value: contextValue, children }) });
354
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminContext.Provider, { value: contextValue, children }) });
352
355
  }, "TokenUsageAdminProvider");
353
356
  var useTokenUsageAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
354
357
  const ctx = _react.useContext.call(void 0, TokenUsageAdminContext);
@@ -369,7 +372,7 @@ var _lucidereact = require('lucide-react');
369
372
  var ZERO = { cost: 0, credits: 0, tokensIn: 0, tokensOut: 0, cached: 0, calls: 0 };
370
373
  function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
371
374
  const t = _nextintl.useTranslations.call(void 0, );
372
- const { decimal, metricValue: formatValue, currency, percent } = _chunkBDWV4KYRjs.useUsageFormatters.call(void 0, );
375
+ const { decimal, metricValue: formatValue, currency, percent } = _chunkJE6QWCNEjs.useUsageFormatters.call(void 0, );
373
376
  const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (scope, window) => _nullishCoalesce(summary.find((r) => r.scope === scope && r.window === window), () => ( ZERO)), "rowFor");
374
377
  const customerCurrent = rowFor("customer", "current");
375
378
  const customerPrevious = rowFor("customer", "previous");
@@ -378,16 +381,16 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
378
381
  const totalCurrent = rowFor("total", "current");
379
382
  const totalPrevious = rowFor("total", "previous");
380
383
  const averagePerCall = totalCurrent.calls ? totalCurrent.cost / totalCurrent.calls : 0;
381
- const cacheHit = _chunkBDWV4KYRjs.cacheHitPercentage.call(void 0, totalCurrent.cached, totalCurrent.tokensIn);
384
+ const cacheHit = _chunkJE6QWCNEjs.cacheHitPercentage.call(void 0, totalCurrent.cached, totalCurrent.tokensIn);
382
385
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
383
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkHN7L6RRWjs.cn.call(void 0, "grid gap-3", singleCustomerMode ? "sm:grid-cols-1" : "sm:grid-cols-2"), children: [
386
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk77JC2UCFjs.cn.call(void 0, "grid gap-3", singleCustomerMode ? "sm:grid-cols-1" : "sm:grid-cols-2"), children: [
384
387
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
385
388
  LeadTile,
386
389
  {
387
390
  testId: "tile-customer",
388
391
  label: t("token_usage.admin.customer_spend"),
389
- value: formatValue(_chunkBDWV4KYRjs.metricValue.call(void 0, customerCurrent, metric), metric),
390
- delta: _chunkBDWV4KYRjs.percentageDelta.call(void 0, _chunkBDWV4KYRjs.metricValue.call(void 0, customerCurrent, metric), _chunkBDWV4KYRjs.metricValue.call(void 0, customerPrevious, metric)),
392
+ value: formatValue(_chunkJE6QWCNEjs.metricValue.call(void 0, customerCurrent, metric), metric),
393
+ delta: _chunkJE6QWCNEjs.percentageDelta.call(void 0, _chunkJE6QWCNEjs.metricValue.call(void 0, customerCurrent, metric), _chunkJE6QWCNEjs.metricValue.call(void 0, customerPrevious, metric)),
391
394
  previousLabel: t("token_usage.admin.vs_previous"),
392
395
  decimal
393
396
  }
@@ -397,8 +400,8 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
397
400
  {
398
401
  testId: "tile-platform",
399
402
  label: t("token_usage.admin.platform_spend"),
400
- value: formatValue(_chunkBDWV4KYRjs.metricValue.call(void 0, platformCurrent, metric), metric),
401
- delta: _chunkBDWV4KYRjs.percentageDelta.call(void 0, _chunkBDWV4KYRjs.metricValue.call(void 0, platformCurrent, metric), _chunkBDWV4KYRjs.metricValue.call(void 0, platformPrevious, metric)),
403
+ value: formatValue(_chunkJE6QWCNEjs.metricValue.call(void 0, platformCurrent, metric), metric),
404
+ delta: _chunkJE6QWCNEjs.percentageDelta.call(void 0, _chunkJE6QWCNEjs.metricValue.call(void 0, platformCurrent, metric), _chunkJE6QWCNEjs.metricValue.call(void 0, platformPrevious, metric)),
402
405
  previousLabel: t("token_usage.admin.vs_previous"),
403
406
  decimal
404
407
  }
@@ -410,8 +413,8 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
410
413
  {
411
414
  testId: "tile-total",
412
415
  label: t("token_usage.admin.total_cost"),
413
- value: formatValue(_chunkBDWV4KYRjs.metricValue.call(void 0, totalCurrent, metric), metric),
414
- delta: _chunkBDWV4KYRjs.percentageDelta.call(void 0, _chunkBDWV4KYRjs.metricValue.call(void 0, totalCurrent, metric), _chunkBDWV4KYRjs.metricValue.call(void 0, totalPrevious, metric)),
416
+ value: formatValue(_chunkJE6QWCNEjs.metricValue.call(void 0, totalCurrent, metric), metric),
417
+ delta: _chunkJE6QWCNEjs.percentageDelta.call(void 0, _chunkJE6QWCNEjs.metricValue.call(void 0, totalCurrent, metric), _chunkJE6QWCNEjs.metricValue.call(void 0, totalPrevious, metric)),
415
418
  decimal
416
419
  }
417
420
  ),
@@ -445,7 +448,7 @@ function LeadTile({
445
448
  previousLabel,
446
449
  decimal
447
450
  }) {
448
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
451
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
449
452
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
450
453
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
451
454
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
@@ -462,7 +465,7 @@ function SupportingTile({
462
465
  delta,
463
466
  decimal
464
467
  }) {
465
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
468
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
466
469
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
467
470
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
468
471
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
@@ -485,7 +488,7 @@ function Delta({
485
488
  "span",
486
489
  {
487
490
  "data-testid": testId,
488
- className: _chunkHN7L6RRWjs.cn.call(void 0,
491
+ className: _chunk77JC2UCFjs.cn.call(void 0,
489
492
  "inline-flex items-center gap-0.5 text-xs tabular-nums",
490
493
  increased ? "text-success" : "text-destructive"
491
494
  ),
@@ -506,10 +509,10 @@ _chunk7QVYU63Ejs.__name.call(void 0, Delta, "Delta");
506
509
 
507
510
  function TokenUsageBreakdownTable({ rows, metric }) {
508
511
  const t = _nextintl.useTranslations.call(void 0, );
509
- const { decimal, metricValue: formatValue, percent, compare } = _chunkBDWV4KYRjs.useUsageFormatters.call(void 0, );
512
+ const { decimal, metricValue: formatValue, percent, compare } = _chunkJE6QWCNEjs.useUsageFormatters.call(void 0, );
510
513
  const [sort, setSort] = _react.useState.call(void 0, void 0);
511
514
  const showActiveUsers = rows.some((row) => row.activeUsers !== void 0);
512
- const total = _react.useMemo.call(void 0, () => rows.reduce((sum, row) => sum + _chunkBDWV4KYRjs.metricValue.call(void 0, row, metric), 0), [rows, metric]);
515
+ const total = _react.useMemo.call(void 0, () => rows.reduce((sum, row) => sum + _chunkJE6QWCNEjs.metricValue.call(void 0, row, metric), 0), [rows, metric]);
513
516
  const sortValue = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (row, key) => {
514
517
  switch (key) {
515
518
  case "label":
@@ -519,9 +522,9 @@ function TokenUsageBreakdownTable({ rows, metric }) {
519
522
  case "activeUsers":
520
523
  return _nullishCoalesce(row.activeUsers, () => ( 0));
521
524
  case "cacheHit":
522
- return _chunkBDWV4KYRjs.cacheHitPercentage.call(void 0, row.cached, row.tokensIn);
525
+ return _chunkJE6QWCNEjs.cacheHitPercentage.call(void 0, row.cached, row.tokensIn);
523
526
  case "share":
524
- return _chunkBDWV4KYRjs.metricValue.call(void 0, row, metric);
527
+ return _chunkJE6QWCNEjs.metricValue.call(void 0, row, metric);
525
528
  default:
526
529
  return row[key];
527
530
  }
@@ -559,13 +562,13 @@ function TokenUsageBreakdownTable({ rows, metric }) {
559
562
  // The package's <Table> wraps itself in an `overflow-x-clip` container, which
560
563
  // would swallow the overflow before this scroller ever saw it — hence the
561
564
  // child override. Wide metric tables must scroll, never widen the page.
562
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Table, { children: [
563
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableRow, { children: columns.map((column) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableHead, { className: _chunkHN7L6RRWjs.cn.call(void 0, column.numeric && "text-end"), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
565
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Table, { children: [
566
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableRow, { children: columns.map((column) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableHead, { className: _chunk77JC2UCFjs.cn.call(void 0, column.numeric && "text-end"), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
564
567
  "button",
565
568
  {
566
569
  type: "button",
567
570
  onClick: () => toggleSort(column.key),
568
- className: _chunkHN7L6RRWjs.cn.call(void 0,
571
+ className: _chunk77JC2UCFjs.cn.call(void 0,
569
572
  "hover:text-primary inline-flex items-center gap-1 text-xs font-medium",
570
573
  column.numeric && "flex-row-reverse"
571
574
  ),
@@ -575,20 +578,20 @@ function TokenUsageBreakdownTable({ rows, metric }) {
575
578
  ]
576
579
  }
577
580
  ) }, column.key)) }) }),
578
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableBody, { children: sortedRows.map((row) => {
579
- const value = _chunkBDWV4KYRjs.metricValue.call(void 0, row, metric);
581
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableBody, { children: sortedRows.map((row) => {
582
+ const value = _chunkJE6QWCNEjs.metricValue.call(void 0, row, metric);
580
583
  const share = total > 0 ? value / total * 100 : 0;
581
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.TableRow, { "data-testid": `breakdown-row-${row.id}`, children: [
582
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-xs", children: row.id === "other" ? t("token_usage.admin.other") : row.label }),
583
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-muted-foreground text-xs", children: _nullishCoalesce(row.sublabel, () => ( "")) }),
584
- showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: row.activeUsers === void 0 ? "" : decimal(row.activeUsers, 0) }),
585
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.calls, 0) }),
586
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensIn, 0) }),
587
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensOut, 0) }),
588
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(_chunkBDWV4KYRjs.cacheHitPercentage.call(void 0, row.cached, row.tokensIn)) }),
589
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.cost, "cost") }),
590
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.credits, "credits") }),
591
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(share) })
584
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.TableRow, { "data-testid": `breakdown-row-${row.id}`, children: [
585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-xs", children: row.id === "other" ? t("token_usage.admin.other") : row.label }),
586
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-muted-foreground text-xs", children: _nullishCoalesce(row.sublabel, () => ( "")) }),
587
+ showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: row.activeUsers === void 0 ? "" : decimal(row.activeUsers, 0) }),
588
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.calls, 0) }),
589
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensIn, 0) }),
590
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensOut, 0) }),
591
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(_chunkJE6QWCNEjs.cacheHitPercentage.call(void 0, row.cached, row.tokensIn)) }),
592
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.cost, "cost") }),
593
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.credits, "credits") }),
594
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(share) })
592
595
  ] }, row.id);
593
596
  }) })
594
597
  ] }) })
@@ -622,7 +625,7 @@ var operationDescription = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0,
622
625
 
623
626
  function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes = false }) {
624
627
  const t = _nextintl.useTranslations.call(void 0, );
625
- const { metricValue: formatValue, percent } = _chunkBDWV4KYRjs.useUsageFormatters.call(void 0, );
628
+ const { metricValue: formatValue, percent } = _chunkJE6QWCNEjs.useUsageFormatters.call(void 0, );
626
629
  const renderLabel = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (row) => {
627
630
  if (row.id === "other") return t("token_usage.admin.other");
628
631
  if (!labelsAreOperationTypes) return row.label;
@@ -644,9 +647,9 @@ function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes
644
647
  const label = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground truncate text-xs", children: renderLabel(row) });
645
648
  const description = renderDescription(row);
646
649
  if (!description) return label;
647
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Tooltip, { children: [
650
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Tooltip, { children: [
648
651
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
649
- _chunkBDWV4KYRjs.TooltipTrigger,
652
+ _chunkJE6QWCNEjs.TooltipTrigger,
650
653
  {
651
654
  "data-testid": `ranked-description-${row.id}`,
652
655
  className: "min-w-0 cursor-help justify-self-start truncate",
@@ -654,19 +657,19 @@ function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes
654
657
  children: label
655
658
  }
656
659
  ),
657
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.TooltipContent, { side: "top", className: "max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs", children: description }) })
660
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.TooltipContent, { side: "top", className: "max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs", children: description }) })
658
661
  ] });
659
662
  }, "renderLabelCell");
660
663
  if (rows.length === 0) {
661
664
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground py-6 text-center text-sm", children: emptyLabel });
662
665
  }
663
- const values = rows.map((row) => _chunkBDWV4KYRjs.metricValue.call(void 0, row, metric));
666
+ const values = rows.map((row) => _chunkJE6QWCNEjs.metricValue.call(void 0, row, metric));
664
667
  const total = values.reduce((sum, value) => sum + value, 0);
665
668
  const max = Math.max(...values, 0);
666
669
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-0.5", children: rows.map((row, index) => {
667
670
  const value = values[index];
668
671
  const isOther = row.id === "other";
669
- const step = isOther ? _chunkBDWV4KYRjs.SEQUENTIAL_RAMP.length - 1 : Math.min(index, _chunkBDWV4KYRjs.SEQUENTIAL_RAMP.length - 1);
672
+ const step = isOther ? _chunkJE6QWCNEjs.SEQUENTIAL_RAMP.length - 1 : Math.min(index, _chunkJE6QWCNEjs.SEQUENTIAL_RAMP.length - 1);
670
673
  const width = max > 0 ? value / max * 100 : 0;
671
674
  const share = total > 0 ? value / total * 100 : 0;
672
675
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-x-3 gap-y-0.5 py-0.5", children: [
@@ -678,7 +681,7 @@ function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes
678
681
  "data-testid": `ranked-fill-${row.id}`,
679
682
  "data-ramp-step": String(step),
680
683
  className: "h-full rounded-r-[4px]",
681
- style: { width: `${width}%`, backgroundColor: _chunkBDWV4KYRjs.SEQUENTIAL_RAMP[step] }
684
+ style: { width: `${width}%`, backgroundColor: _chunkJE6QWCNEjs.SEQUENTIAL_RAMP[step] }
682
685
  }
683
686
  ) })
684
687
  ] }),
@@ -728,7 +731,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
728
731
  }, "inferGranularity");
729
732
  function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
730
733
  const t = _nextintl.useTranslations.call(void 0, );
731
- const { compact, bucketDate, metricValue: formatValue } = _chunkBDWV4KYRjs.useUsageFormatters.call(void 0, );
734
+ const { compact, bucketDate, metricValue: formatValue } = _chunkJE6QWCNEjs.useUsageFormatters.call(void 0, );
732
735
  const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
733
736
  const mode = resolvedTheme === "dark" ? "dark" : "light";
734
737
  const { chartData, seriesKeys } = _react.useMemo.call(void 0, () => {
@@ -736,8 +739,8 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
736
739
  const totals = /* @__PURE__ */ new Map();
737
740
  for (const row of rows) totals.set(row.series, (_nullishCoalesce(totals.get(row.series), () => ( 0))) + metricValue2(row, metric));
738
741
  const ranked = [...totals.entries()].sort((a, b) => b[1] - a[1]).map(([series]) => series);
739
- const named = ranked.slice(0, _chunkBDWV4KYRjs.CATEGORICAL_CEILING);
740
- const folded = new Set(ranked.slice(_chunkBDWV4KYRjs.CATEGORICAL_CEILING));
742
+ const named = ranked.slice(0, _chunkJE6QWCNEjs.CATEGORICAL_CEILING);
743
+ const folded = new Set(ranked.slice(_chunkJE6QWCNEjs.CATEGORICAL_CEILING));
741
744
  const keys = folded.size > 0 ? [...named, OTHER_SERIES] : named;
742
745
  const byBucket = /* @__PURE__ */ new Map();
743
746
  for (const row of rows) {
@@ -777,7 +780,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
777
780
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: className ? `text-muted-foreground text-sm ${className}` : "text-muted-foreground text-sm", children: t.has(key) ? t(key) : "No data in the selected period" });
778
781
  }
779
782
  const granularity = inferGranularity(chartData.map((entry) => entry.bucket));
780
- const seriesColorFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (series, index) => series === OTHER_SERIES ? _chunkBDWV4KYRjs.OTHER_COLOR : _chunkBDWV4KYRjs.seriesColor.call(void 0, index, mode), "seriesColorFor");
783
+ const seriesColorFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (series, index) => series === OTHER_SERIES ? _chunkJE6QWCNEjs.OTHER_COLOR : _chunkJE6QWCNEjs.seriesColor.call(void 0, index, mode), "seriesColorFor");
781
784
  return (
782
785
  // The chart is a coordinate system, not prose: recharts lays the axes and the
783
786
  // stacked bars out left-to-right, so the whole chart stays an LTR island even
@@ -786,7 +789,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
786
789
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
787
790
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-data", children: JSON.stringify(chartData) }),
788
791
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-series", children: JSON.stringify(seriesKeys) }),
789
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.BarChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 8, bottom: 0, left: 0 }, children: [
792
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.BarChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 8, bottom: 0, left: 0 }, children: [
790
793
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
791
794
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
792
795
  _recharts.XAxis,
@@ -810,10 +813,10 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
810
813
  }
811
814
  ),
812
815
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
813
- _chunkBDWV4KYRjs.ChartTooltip,
816
+ _chunkJE6QWCNEjs.ChartTooltip,
814
817
  {
815
818
  content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
816
- _chunkBDWV4KYRjs.ChartTooltipContent,
819
+ _chunkJE6QWCNEjs.ChartTooltipContent,
817
820
  {
818
821
  labelFormatter: (value) => bucketDate(String(value), granularity),
819
822
  valueFormatter: (value) => formatValue(Number(value), metric),
@@ -822,7 +825,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
822
825
  )
823
826
  }
824
827
  ),
825
- seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.ChartLegendContent, {}) }) : null,
828
+ seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.ChartLegendContent, {}) }) : null,
826
829
  seriesKeys.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
827
830
  _recharts.Bar,
828
831
  {
@@ -874,19 +877,19 @@ function TokenUsageAdminContainer() {
874
877
  [t]
875
878
  );
876
879
  if (error) {
877
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { module: _chunkP7L6OFX5js.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
880
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
878
881
  }
879
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { module: _chunkP7L6OFX5js.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true });
882
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true });
880
883
  const emptyLabel = t("token_usage.admin.no_data");
881
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { module: _chunkP7L6OFX5js.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
884
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.TokenUsageAdminSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
882
885
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminTiles, { summary, metric: filters.metric, singleCustomerMode: hidePlatform }),
883
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
884
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: [
885
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.usage_over_time") }),
886
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardAction, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
886
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
887
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: [
888
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.usage_over_time") }),
889
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardAction, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
887
890
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.admin.stack_by") }),
888
891
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
889
- _chunkBDWV4KYRjs.Select,
892
+ _chunkJE6QWCNEjs.Select,
890
893
  {
891
894
  items: stackByItems,
892
895
  value: filters.stackBy,
@@ -894,29 +897,29 @@ function TokenUsageAdminContainer() {
894
897
  if (value) setFilters({ stackBy: value });
895
898
  },
896
899
  children: [
897
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectTrigger, { size: "sm", className: "w-36", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectValue, {}) }),
898
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectContent, { children: STACK_BY_VALUES.map((value) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SelectItem, { value, children: stackByItems[value] }, value)) })
900
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectTrigger, { size: "sm", className: "w-36", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectValue, {}) }),
901
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectContent, { children: STACK_BY_VALUES.map((value) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SelectItem, { value, children: stackByItems[value] }, value)) })
899
902
  ]
900
903
  }
901
904
  )
902
905
  ] }) })
903
906
  ] }),
904
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: filters.metric, stackBy: filters.stackBy }) })
907
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: filters.metric, stackBy: filters.stackBy }) })
905
908
  ] }),
906
909
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-4 md:grid-cols-2", children: [
907
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
908
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.by_company") }) }),
909
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byCompany, metric: filters.metric, emptyLabel }) })
910
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
911
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.by_company") }) }),
912
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byCompany, metric: filters.metric, emptyLabel }) })
910
913
  ] }),
911
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
912
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.by_user") }) }),
913
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byUser, metric: filters.metric, emptyLabel }) })
914
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
915
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.by_user") }) }),
916
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byUser, metric: filters.metric, emptyLabel }) })
914
917
  ] })
915
918
  ] }),
916
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkHN7L6RRWjs.cn.call(void 0, "grid gap-4", !hidePlatform && "md:grid-cols-2"), children: [
917
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
918
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.customer_by_operation") }) }),
919
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
919
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk77JC2UCFjs.cn.call(void 0, "grid gap-4", !hidePlatform && "md:grid-cols-2"), children: [
920
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
921
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.customer_by_operation") }) }),
922
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
920
923
  TokenUsageRankedBar,
921
924
  {
922
925
  rows: byCustomerOperation,
@@ -926,9 +929,9 @@ function TokenUsageAdminContainer() {
926
929
  }
927
930
  ) })
928
931
  ] }),
929
- !hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
930
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.platform_by_operation") }) }),
931
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
932
+ !hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
933
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.platform_by_operation") }) }),
934
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
932
935
  TokenUsageRankedBar,
933
936
  {
934
937
  rows: byOperation,
@@ -939,9 +942,9 @@ function TokenUsageAdminContainer() {
939
942
  ) })
940
943
  ] })
941
944
  ] }),
942
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
943
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.admin.detail") }) }),
944
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageBreakdownTable, { rows: byCompany, metric: filters.metric }) })
945
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
946
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.admin.detail") }) }),
947
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageBreakdownTable, { rows: byCompany, metric: filters.metric }) })
945
948
  ] })
946
949
  ] }) });
947
950
  }
@@ -954,36 +957,36 @@ function withFilters2(endpoint, filters) {
954
957
  return endpoint;
955
958
  }
956
959
  _chunk7QVYU63Ejs.__name.call(void 0, withFilters2, "withFilters");
957
- var TokenUsageReportService = class extends _chunkHN7L6RRWjs.AbstractService {
960
+ var TokenUsageReportService = class extends _chunk77JC2UCFjs.AbstractService {
958
961
  static {
959
962
  _chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageReportService");
960
963
  }
961
964
  /** Two rows: window "current" and "previous". */
962
965
  static async getSummary(filters) {
963
- const endpoint = withFilters2(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageReportSummary }), filters);
966
+ const endpoint = withFilters2(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageReportSummary }), filters);
964
967
  return this.callApi({
965
- type: _chunkP7L6OFX5js.Modules.TokenUsageReportSummary,
968
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageReportSummary,
966
969
  method: "GET" /* GET */,
967
970
  endpoint: endpoint.generate()
968
971
  });
969
972
  }
970
973
  static async getTimeline(params) {
971
- const endpoint = withFilters2(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageReportTimeline }), params);
974
+ const endpoint = withFilters2(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageReportTimeline }), params);
972
975
  endpoint.addAdditionalParam("granularity", params.granularity);
973
976
  return this.callApi({
974
- type: _chunkP7L6OFX5js.Modules.TokenUsageReportTimeline,
977
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageReportTimeline,
975
978
  method: "GET" /* GET */,
976
979
  endpoint: endpoint.generate()
977
980
  });
978
981
  }
979
982
  static async getBreakdown(params) {
980
- const endpoint = withFilters2(new (0, _chunkP7L6OFX5js.EndpointCreator)({ endpoint: _chunkP7L6OFX5js.Modules.TokenUsageReportBreakdown }), params);
983
+ const endpoint = withFilters2(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.TokenUsageReportBreakdown }), params);
981
984
  endpoint.addAdditionalParam("dimension", params.dimension);
982
985
  if (params.targetLabel) endpoint.addAdditionalParam("targetLabel", params.targetLabel);
983
986
  endpoint.addAdditionalParam("metric", params.metric);
984
987
  if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
985
988
  return this.callApi({
986
- type: _chunkP7L6OFX5js.Modules.TokenUsageReportBreakdown,
989
+ type: _chunkZ6T2575Ajs.Modules.TokenUsageReportBreakdown,
987
990
  method: "GET" /* GET */,
988
991
  endpoint: endpoint.generate()
989
992
  });
@@ -1062,7 +1065,7 @@ var TOKEN_USAGE_REPORT_I18N_KEYS = [
1062
1065
 
1063
1066
  function TokenUsageReportFilterBar({ onChange }) {
1064
1067
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-help": "tokenusage.filters", className: "flex flex-wrap items-center gap-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1065
- _chunkBDWV4KYRjs.DateRangeSelector,
1068
+ _chunkJE6QWCNEjs.DateRangeSelector,
1066
1069
  {
1067
1070
  onDateChange: (range) => {
1068
1071
  if (!_optionalChain([range, 'optionalAccess', _5 => _5.from]) || !_optionalChain([range, 'optionalAccess', _6 => _6.to])) return;
@@ -1095,7 +1098,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
1095
1098
  pageUrl = TOKEN_USAGE_REPORT_PAGE_URL
1096
1099
  }) => {
1097
1100
  const t = _nextintl.useTranslations.call(void 0, );
1098
- const generateUrl = _chunkBDWV4KYRjs.usePageUrlGenerator.call(void 0, );
1101
+ const generateUrl = _chunkJE6QWCNEjs.usePageUrlGenerator.call(void 0, );
1099
1102
  const [filters, setFilterState] = _react.useState.call(void 0, () => {
1100
1103
  const range = defaultRange2();
1101
1104
  return { from: _nullishCoalesce(initialFrom, () => ( range.from)), to: _nullishCoalesce(initialTo, () => ( range.to)) };
@@ -1159,7 +1162,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
1159
1162
  () => ({ summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error }),
1160
1163
  [summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error]
1161
1164
  );
1162
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportContext.Provider, { value: contextValue, children }) });
1165
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportContext.Provider, { value: contextValue, children }) });
1163
1166
  }, "TokenUsageReportProvider");
1164
1167
  var useTokenUsageReport = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
1165
1168
  const ctx = _react.useContext.call(void 0, TokenUsageReportContext);
@@ -1179,7 +1182,7 @@ var useTokenUsageReport = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (
1179
1182
  var ZERO2 = { cost: 0, credits: 0, tokensIn: 0, tokensOut: 0, cached: 0, calls: 0 };
1180
1183
  function TokenUsageReportTiles({ summary, metric, balances }) {
1181
1184
  const t = _nextintl.useTranslations.call(void 0, );
1182
- const { decimal, metricValue: formatValue } = _chunkBDWV4KYRjs.useUsageFormatters.call(void 0, );
1185
+ const { decimal, metricValue: formatValue } = _chunkJE6QWCNEjs.useUsageFormatters.call(void 0, );
1183
1186
  const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window) => _nullishCoalesce(summary.find((row) => row.window === window), () => ( ZERO2)), "rowFor");
1184
1187
  const current = rowFor("current");
1185
1188
  const previous = rowFor("previous");
@@ -1187,15 +1190,15 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
1187
1190
  const monthlyColor = monthlyPercentage > 75 ? "text-success" : monthlyPercentage >= 5 ? "text-warning" : "text-destructive";
1188
1191
  const whole = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (value) => decimal(Math.max(0, Math.floor(value)), 0), "whole");
1189
1192
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
1190
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": "tile-used", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
1193
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": "tile-used", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
1191
1194
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.used_in_period") }),
1192
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: formatValue(_chunkBDWV4KYRjs.metricValue.call(void 0, current, metric), metric) }),
1195
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: formatValue(_chunkJE6QWCNEjs.metricValue.call(void 0, current, metric), metric) }),
1193
1196
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
1194
1197
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1195
1198
  Delta2,
1196
1199
  {
1197
1200
  testId: "tile-used-delta",
1198
- delta: _chunkBDWV4KYRjs.percentageDelta.call(void 0, _chunkBDWV4KYRjs.metricValue.call(void 0, current, metric), _chunkBDWV4KYRjs.metricValue.call(void 0, previous, metric)),
1201
+ delta: _chunkJE6QWCNEjs.percentageDelta.call(void 0, _chunkJE6QWCNEjs.metricValue.call(void 0, current, metric), _chunkJE6QWCNEjs.metricValue.call(void 0, previous, metric)),
1199
1202
  decimal
1200
1203
  }
1201
1204
  ),
@@ -1203,21 +1206,21 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
1203
1206
  ] })
1204
1207
  ] }) }),
1205
1208
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
1206
- balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": "tile-monthly", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
1209
+ balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": "tile-monthly", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
1207
1210
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.monthly_left") }),
1208
1211
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-baseline gap-1", children: [
1209
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className: _chunkHN7L6RRWjs.cn.call(void 0, "text-sm font-medium tabular-nums", monthlyColor), children: whole(balances.availableMonthlyCredits) }),
1212
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className: _chunk77JC2UCFjs.cn.call(void 0, "text-sm font-medium tabular-nums", monthlyColor), children: whole(balances.availableMonthlyCredits) }),
1210
1213
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: [
1211
1214
  "/ ",
1212
1215
  whole(balances.monthlyCredits)
1213
1216
  ] })
1214
1217
  ] })
1215
1218
  ] }) }),
1216
- balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": "tile-extra", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
1219
+ balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": "tile-extra", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
1217
1220
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.extra_credits") }),
1218
1221
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: whole(balances.availableExtraCredits) })
1219
1222
  ] }) }),
1220
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { "data-testid": "tile-calls", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.CardContent, { className: "grid gap-1", children: [
1223
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { "data-testid": "tile-calls", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.CardContent, { className: "grid gap-1", children: [
1221
1224
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.calls") }),
1222
1225
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: decimal(current.calls, 0) })
1223
1226
  ] }) })
@@ -1239,7 +1242,7 @@ function Delta2({
1239
1242
  "span",
1240
1243
  {
1241
1244
  "data-testid": testId,
1242
- className: _chunkHN7L6RRWjs.cn.call(void 0,
1245
+ className: _chunk77JC2UCFjs.cn.call(void 0,
1243
1246
  "inline-flex items-center gap-0.5 text-xs tabular-nums",
1244
1247
  increased ? "text-warning" : "text-success"
1245
1248
  ),
@@ -1259,21 +1262,21 @@ function TokenUsageReportContainer({ balances = null }) {
1259
1262
  const t = _nextintl.useTranslations.call(void 0, );
1260
1263
  const { summary, timeline, byOperation, byTarget, isLoading, error, targetPanelTitleKey } = useTokenUsageReport();
1261
1264
  if (error) {
1262
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
1265
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
1263
1266
  }
1264
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
1267
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
1265
1268
  const emptyLabel = t("token_usage.report.no_data");
1266
1269
  const targetTitle = targetPanelTitleKey && byTarget.length > 0 ? t(targetPanelTitleKey) : void 0;
1267
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
1270
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
1268
1271
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportTiles, { summary, metric: "credits", balances }),
1269
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
1270
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.report.usage_over_time") }) }),
1271
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: "credits", stackBy: "type" }) })
1272
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
1273
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.report.usage_over_time") }) }),
1274
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: "credits", stackBy: "type" }) })
1272
1275
  ] }),
1273
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkHN7L6RRWjs.cn.call(void 0, "grid gap-4", targetTitle && "md:grid-cols-2"), children: [
1274
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
1275
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: t("token_usage.report.by_operation") }) }),
1276
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1276
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk77JC2UCFjs.cn.call(void 0, "grid gap-4", targetTitle && "md:grid-cols-2"), children: [
1277
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
1278
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: t("token_usage.report.by_operation") }) }),
1279
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1277
1280
  TokenUsageRankedBar,
1278
1281
  {
1279
1282
  rows: byOperation,
@@ -1283,9 +1286,9 @@ function TokenUsageReportContainer({ balances = null }) {
1283
1286
  }
1284
1287
  ) })
1285
1288
  ] }),
1286
- targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBDWV4KYRjs.Card, { children: [
1287
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardTitle, { children: targetTitle }) }),
1288
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBDWV4KYRjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byTarget, metric: "credits", emptyLabel }) })
1289
+ targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJE6QWCNEjs.Card, { children: [
1290
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardTitle, { children: targetTitle }) }),
1291
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJE6QWCNEjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byTarget, metric: "credits", emptyLabel }) })
1289
1292
  ] })
1290
1293
  ] })
1291
1294
  ] }) });
@@ -1325,5 +1328,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, TokenUsageReportContainer, "TokenUsageRepor
1325
1328
 
1326
1329
 
1327
1330
 
1328
- exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown = _chunkHN7L6RRWjs.TokenUsageAdminBreakdown; exports.TokenUsageAdminBreakdownModule = _chunkHN7L6RRWjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminContainer = TokenUsageAdminContainer; exports.TokenUsageAdminFilterBar = TokenUsageAdminFilterBar; exports.TokenUsageAdminProvider = TokenUsageAdminProvider; exports.TokenUsageAdminService = TokenUsageAdminService; exports.TokenUsageAdminSummary = _chunkHN7L6RRWjs.TokenUsageAdminSummary; exports.TokenUsageAdminSummaryModule = _chunkHN7L6RRWjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTiles = TokenUsageAdminTiles; exports.TokenUsageAdminTimeline = _chunkHN7L6RRWjs.TokenUsageAdminTimeline; exports.TokenUsageAdminTimelineModule = _chunkHN7L6RRWjs.TokenUsageAdminTimelineModule; exports.TokenUsageBreakdownTable = TokenUsageBreakdownTable; exports.TokenUsageRankedBar = TokenUsageRankedBar; exports.TokenUsageReportBreakdown = _chunkHN7L6RRWjs.TokenUsageReportBreakdown; exports.TokenUsageReportContainer = TokenUsageReportContainer; exports.TokenUsageReportFilterBar = TokenUsageReportFilterBar; exports.TokenUsageReportProvider = TokenUsageReportProvider; exports.TokenUsageReportService = TokenUsageReportService; exports.TokenUsageReportSummary = _chunkHN7L6RRWjs.TokenUsageReportSummary; exports.TokenUsageReportTiles = TokenUsageReportTiles; exports.TokenUsageReportTimeline = _chunkHN7L6RRWjs.TokenUsageReportTimeline; exports.TokenUsageTimelineChart = TokenUsageTimelineChart; exports.configureTokenUsage = _chunkHN7L6RRWjs.configureTokenUsage; exports.createUsageFormatters = _chunkBDWV4KYRjs.createUsageFormatters; exports.getTokenUsageCurrency = _chunkHN7L6RRWjs.getTokenUsageCurrency; exports.seriesColor = _chunkBDWV4KYRjs.seriesColor; exports.seriesTheme = _chunkBDWV4KYRjs.seriesTheme; exports.tokenUsageModules = _chunkHN7L6RRWjs.tokenUsageModules; exports.useTokenUsageAdmin = useTokenUsageAdmin; exports.useTokenUsageReport = useTokenUsageReport; exports.useUsageFormatters = _chunkBDWV4KYRjs.useUsageFormatters;
1331
+ exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown = _chunk77JC2UCFjs.TokenUsageAdminBreakdown; exports.TokenUsageAdminBreakdownModule = _chunk77JC2UCFjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminContainer = TokenUsageAdminContainer; exports.TokenUsageAdminFilterBar = TokenUsageAdminFilterBar; exports.TokenUsageAdminProvider = TokenUsageAdminProvider; exports.TokenUsageAdminService = TokenUsageAdminService; exports.TokenUsageAdminSummary = _chunk77JC2UCFjs.TokenUsageAdminSummary; exports.TokenUsageAdminSummaryModule = _chunk77JC2UCFjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTiles = TokenUsageAdminTiles; exports.TokenUsageAdminTimeline = _chunk77JC2UCFjs.TokenUsageAdminTimeline; exports.TokenUsageAdminTimelineModule = _chunk77JC2UCFjs.TokenUsageAdminTimelineModule; exports.TokenUsageBreakdownTable = TokenUsageBreakdownTable; exports.TokenUsageRankedBar = TokenUsageRankedBar; exports.TokenUsageReportBreakdown = _chunk77JC2UCFjs.TokenUsageReportBreakdown; exports.TokenUsageReportContainer = TokenUsageReportContainer; exports.TokenUsageReportFilterBar = TokenUsageReportFilterBar; exports.TokenUsageReportProvider = TokenUsageReportProvider; exports.TokenUsageReportService = TokenUsageReportService; exports.TokenUsageReportSummary = _chunk77JC2UCFjs.TokenUsageReportSummary; exports.TokenUsageReportTiles = TokenUsageReportTiles; exports.TokenUsageReportTimeline = _chunk77JC2UCFjs.TokenUsageReportTimeline; exports.TokenUsageTimelineChart = TokenUsageTimelineChart; exports.configureTokenUsage = _chunk77JC2UCFjs.configureTokenUsage; exports.createUsageFormatters = _chunkJE6QWCNEjs.createUsageFormatters; exports.getTokenUsageCurrency = _chunk77JC2UCFjs.getTokenUsageCurrency; exports.seriesColor = _chunkJE6QWCNEjs.seriesColor; exports.seriesTheme = _chunkJE6QWCNEjs.seriesTheme; exports.tokenUsageModules = _chunk77JC2UCFjs.tokenUsageModules; exports.useTokenUsageAdmin = useTokenUsageAdmin; exports.useTokenUsageReport = useTokenUsageReport; exports.useUsageFormatters = _chunkJE6QWCNEjs.useUsageFormatters;
1329
1332
  //# sourceMappingURL=index.js.map