@carlonicora/nextjs-jsonapi 4.0.4 → 4.0.6
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.
- package/dist/{BlockNoteEditor-FGVQP35E.mjs → BlockNoteEditor-6CTF5DEV.mjs} +5 -5
- package/dist/{BlockNoteEditor-BXMTGKDV.js → BlockNoteEditor-JJ3S5COJ.js} +20 -20
- package/dist/{BlockNoteEditor-BXMTGKDV.js.map → BlockNoteEditor-JJ3S5COJ.js.map} +1 -1
- package/dist/{BlockNoteViewer-DQYT6IJW.mjs → BlockNoteViewer-4THJHQMK.mjs} +3 -3
- package/dist/{BlockNoteViewer-YH7G66PS.js → BlockNoteViewer-TEC7DN2N.js} +4 -4
- package/dist/{BlockNoteViewer-YH7G66PS.js.map → BlockNoteViewer-TEC7DN2N.js.map} +1 -1
- package/dist/{JsonApiRequest-MEP6AXDT.mjs → JsonApiRequest-A66XK5WT.mjs} +2 -2
- package/dist/JsonApiRequest-FZGPLNUF.js +26 -0
- package/dist/{JsonApiRequest-OB6WL4LA.js.map → JsonApiRequest-FZGPLNUF.js.map} +1 -1
- package/dist/billing/index.js +400 -400
- package/dist/billing/index.mjs +4 -4
- package/dist/{chunk-6OFANJTE.js → chunk-5PNDDYGL.js} +32 -32
- package/dist/{chunk-6OFANJTE.js.map → chunk-5PNDDYGL.js.map} +1 -1
- package/dist/{chunk-5W5MN7JP.js → chunk-7ZRQOLSV.js} +13 -13
- package/dist/{chunk-5W5MN7JP.js.map → chunk-7ZRQOLSV.js.map} +1 -1
- package/dist/{chunk-TWBZ2GSX.js → chunk-C2WQXUL5.js} +3 -3
- package/dist/{chunk-TWBZ2GSX.js.map → chunk-C2WQXUL5.js.map} +1 -1
- package/dist/{chunk-JEQ34Z5E.js → chunk-DYTKNSHY.js} +15 -15
- package/dist/{chunk-JEQ34Z5E.js.map → chunk-DYTKNSHY.js.map} +1 -1
- package/dist/{chunk-WGVNJXZO.js → chunk-GHE4VT2R.js} +12 -12
- package/dist/{chunk-WGVNJXZO.js.map → chunk-GHE4VT2R.js.map} +1 -1
- package/dist/{chunk-3CZ2GK5R.mjs → chunk-IOG22OAO.mjs} +3 -3
- package/dist/{chunk-R6ZYB4VN.mjs → chunk-RDI62FAT.mjs} +2 -2
- package/dist/{chunk-7SCREMTX.mjs → chunk-V5MI7RNB.mjs} +2 -2
- package/dist/chunk-V5MI7RNB.mjs.map +1 -0
- package/dist/{chunk-ADZSH3MG.mjs → chunk-XTOEN5GN.mjs} +3 -3
- package/dist/{chunk-NFCXUAE6.js → chunk-XUUHPYMM.js} +849 -847
- package/dist/chunk-XUUHPYMM.js.map +1 -0
- package/dist/{chunk-WJC4SYRL.mjs → chunk-Y2AWOWWH.mjs} +20 -18
- package/dist/chunk-Y2AWOWWH.mjs.map +1 -0
- package/dist/{chunk-AQZ3T4BR.mjs → chunk-Z3226FM6.mjs} +5 -5
- package/dist/client/index.js +5 -5
- package/dist/client/index.mjs +4 -4
- package/dist/components/index.js +5 -5
- package/dist/components/index.mjs +4 -4
- package/dist/contexts/index.js +5 -5
- package/dist/contexts/index.mjs +4 -4
- package/dist/core/index.js +3 -3
- package/dist/core/index.mjs +2 -2
- package/dist/features/analytics/index.js +123 -123
- package/dist/features/analytics/index.mjs +5 -5
- package/dist/features/analytics/server.js +5 -5
- package/dist/features/analytics/server.mjs +3 -3
- package/dist/features/help/index.js +38 -38
- package/dist/features/help/index.mjs +4 -4
- package/dist/features/tokenusage/index.js +126 -126
- package/dist/features/tokenusage/index.mjs +5 -5
- package/dist/index.js +4 -4
- package/dist/index.mjs +3 -3
- package/dist/server/index.js +4 -4
- package/dist/server/index.mjs +3 -3
- package/package.json +1 -1
- package/src/core/utils/__tests__/translateResponse.test.ts +17 -0
- package/src/core/utils/translateResponse.ts +7 -3
- package/src/shadcnui/ui/__tests__/sidebar.session.test.tsx +136 -0
- package/src/shadcnui/ui/sidebar.tsx +21 -13
- package/dist/JsonApiRequest-OB6WL4LA.js +0 -26
- package/dist/chunk-7SCREMTX.mjs.map +0 -1
- package/dist/chunk-NFCXUAE6.js.map +0 -1
- package/dist/chunk-WJC4SYRL.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-FGVQP35E.mjs.map → BlockNoteEditor-6CTF5DEV.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-DQYT6IJW.mjs.map → BlockNoteViewer-4THJHQMK.mjs.map} +0 -0
- /package/dist/{JsonApiRequest-MEP6AXDT.mjs.map → JsonApiRequest-A66XK5WT.mjs.map} +0 -0
- /package/dist/{chunk-3CZ2GK5R.mjs.map → chunk-IOG22OAO.mjs.map} +0 -0
- /package/dist/{chunk-R6ZYB4VN.mjs.map → chunk-RDI62FAT.mjs.map} +0 -0
- /package/dist/{chunk-ADZSH3MG.mjs.map → chunk-XTOEN5GN.mjs.map} +0 -0
- /package/dist/{chunk-AQZ3T4BR.mjs.map → chunk-Z3226FM6.mjs.map} +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkC2WQXUL5js = require('../../chunk-C2WQXUL5.js');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
@@ -37,8 +37,8 @@ var _chunkTWBZ2GSXjs = require('../../chunk-TWBZ2GSX.js');
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
var
|
|
41
|
-
require('../../chunk-
|
|
40
|
+
var _chunkXUUHPYMMjs = require('../../chunk-XUUHPYMM.js');
|
|
41
|
+
require('../../chunk-7ZRQOLSV.js');
|
|
42
42
|
require('../../chunk-G4JR3SFV.js');
|
|
43
43
|
|
|
44
44
|
|
|
@@ -57,10 +57,10 @@ require('../../chunk-G4JR3SFV.js');
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
var
|
|
60
|
+
var _chunk5PNDDYGLjs = require('../../chunk-5PNDDYGL.js');
|
|
61
61
|
require('../../chunk-LXKSUWAV.js');
|
|
62
62
|
require('../../chunk-JTPRJNT2.js');
|
|
63
|
-
require('../../chunk-
|
|
63
|
+
require('../../chunk-GHE4VT2R.js');
|
|
64
64
|
require('../../chunk-3EPNHTMH.js');
|
|
65
65
|
|
|
66
66
|
|
|
@@ -82,7 +82,7 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
|
|
|
82
82
|
};
|
|
83
83
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
84
84
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-md:w-full max-md:[&_#date]:w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
85
|
-
|
|
85
|
+
_chunkXUUHPYMMjs.DateRangeSelector,
|
|
86
86
|
{
|
|
87
87
|
onDateChange: (range) => {
|
|
88
88
|
if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
|
|
@@ -117,16 +117,16 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
|
|
|
117
117
|
}
|
|
118
118
|
),
|
|
119
119
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
120
|
-
|
|
120
|
+
_chunkXUUHPYMMjs.Select,
|
|
121
121
|
{
|
|
122
122
|
items: companyItems,
|
|
123
123
|
value: _nullishCoalesce(companyId, () => ( ALL_COMPANIES)),
|
|
124
124
|
onValueChange: (value) => onChange({ companyId: !value || value === ALL_COMPANIES ? void 0 : value }),
|
|
125
125
|
children: [
|
|
126
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
127
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
128
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
129
|
-
companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
126
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectTrigger, { className: "w-56", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectValue, { placeholder: t("token_usage.admin.all_companies") }) }),
|
|
127
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.SelectContent, { children: [
|
|
128
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectItem, { value: ALL_COMPANIES, children: t("token_usage.admin.all_companies") }),
|
|
129
|
+
companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectItem, { value: company.id, children: company.label }, company.id))
|
|
130
130
|
] })
|
|
131
131
|
]
|
|
132
132
|
}
|
|
@@ -149,13 +149,13 @@ function Segmented({
|
|
|
149
149
|
children: options.map((option) => {
|
|
150
150
|
const selected = option.value === value;
|
|
151
151
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
152
|
-
|
|
152
|
+
_chunkXUUHPYMMjs.Button,
|
|
153
153
|
{
|
|
154
154
|
type: "button",
|
|
155
155
|
size: "sm",
|
|
156
156
|
variant: selected ? "default" : "ghost",
|
|
157
157
|
"aria-pressed": selected,
|
|
158
|
-
className:
|
|
158
|
+
className: _chunk5PNDDYGLjs.cn.call(void 0, !selected && "text-muted-foreground"),
|
|
159
159
|
onClick: () => onSelect(option.value),
|
|
160
160
|
children: option.label
|
|
161
161
|
},
|
|
@@ -175,36 +175,36 @@ function withFilters(endpoint, filters) {
|
|
|
175
175
|
return endpoint;
|
|
176
176
|
}
|
|
177
177
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
|
|
178
|
-
var TokenUsageAdminService = class extends
|
|
178
|
+
var TokenUsageAdminService = class extends _chunk5PNDDYGLjs.AbstractService {
|
|
179
179
|
static {
|
|
180
180
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageAdminService");
|
|
181
181
|
}
|
|
182
182
|
/** Six rows: {customer, platform, total} × {current, previous}. */
|
|
183
183
|
static async getSummary(filters) {
|
|
184
|
-
const endpoint = withFilters(new (0,
|
|
184
|
+
const endpoint = withFilters(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageAdminSummary }), filters);
|
|
185
185
|
return this.callApi({
|
|
186
|
-
type:
|
|
186
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageAdminSummary,
|
|
187
187
|
method: "GET" /* GET */,
|
|
188
188
|
endpoint: endpoint.generate()
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
191
|
static async getTimeline(params) {
|
|
192
|
-
const endpoint = withFilters(new (0,
|
|
192
|
+
const endpoint = withFilters(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageAdminTimeline }), params);
|
|
193
193
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
194
194
|
endpoint.addAdditionalParam("stackBy", params.stackBy);
|
|
195
195
|
return this.callApi({
|
|
196
|
-
type:
|
|
196
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageAdminTimeline,
|
|
197
197
|
method: "GET" /* GET */,
|
|
198
198
|
endpoint: endpoint.generate()
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
static async getBreakdown(params) {
|
|
202
|
-
const endpoint = withFilters(new (0,
|
|
202
|
+
const endpoint = withFilters(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageAdminBreakdown }), params);
|
|
203
203
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
204
204
|
endpoint.addAdditionalParam("scope", params.scope);
|
|
205
205
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
206
206
|
return this.callApi({
|
|
207
|
-
type:
|
|
207
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageAdminBreakdown,
|
|
208
208
|
method: "GET" /* GET */,
|
|
209
209
|
endpoint: endpoint.generate()
|
|
210
210
|
});
|
|
@@ -231,7 +231,7 @@ var TokenUsageAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
231
231
|
pageUrl = TOKEN_USAGE_ADMIN_PAGE_URL
|
|
232
232
|
}) => {
|
|
233
233
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
234
|
-
const generateUrl =
|
|
234
|
+
const generateUrl = _chunkXUUHPYMMjs.usePageUrlGenerator.call(void 0, );
|
|
235
235
|
const [filters, setFilterState] = _react.useState.call(void 0, () => {
|
|
236
236
|
const range = defaultRange();
|
|
237
237
|
return {
|
|
@@ -349,7 +349,7 @@ var TokenUsageAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
349
349
|
error
|
|
350
350
|
]
|
|
351
351
|
);
|
|
352
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
352
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminContext.Provider, { value: contextValue, children }) });
|
|
353
353
|
}, "TokenUsageAdminProvider");
|
|
354
354
|
var useTokenUsageAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
355
355
|
const ctx = _react.useContext.call(void 0, TokenUsageAdminContext);
|
|
@@ -370,7 +370,7 @@ var _lucidereact = require('lucide-react');
|
|
|
370
370
|
var ZERO = { cost: 0, credits: 0, tokensIn: 0, tokensOut: 0, cached: 0, calls: 0 };
|
|
371
371
|
function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
|
|
372
372
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
373
|
-
const { decimal, metricValue: formatValue, currency, percent } =
|
|
373
|
+
const { decimal, metricValue: formatValue, currency, percent } = _chunkC2WQXUL5js.useUsageFormatters.call(void 0, );
|
|
374
374
|
const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (scope, window) => _nullishCoalesce(summary.find((r) => r.scope === scope && r.window === window), () => ( ZERO)), "rowFor");
|
|
375
375
|
const customerCurrent = rowFor("customer", "current");
|
|
376
376
|
const customerPrevious = rowFor("customer", "previous");
|
|
@@ -379,16 +379,16 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
|
|
|
379
379
|
const totalCurrent = rowFor("total", "current");
|
|
380
380
|
const totalPrevious = rowFor("total", "previous");
|
|
381
381
|
const averagePerCall = totalCurrent.calls ? totalCurrent.cost / totalCurrent.calls : 0;
|
|
382
|
-
const cacheHit =
|
|
382
|
+
const cacheHit = _chunkC2WQXUL5js.cacheHitPercentage.call(void 0, totalCurrent.cached, totalCurrent.tokensIn);
|
|
383
383
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
|
|
384
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
384
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk5PNDDYGLjs.cn.call(void 0, "grid gap-3", singleCustomerMode ? "sm:grid-cols-1" : "sm:grid-cols-2"), children: [
|
|
385
385
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
386
386
|
LeadTile,
|
|
387
387
|
{
|
|
388
388
|
testId: "tile-customer",
|
|
389
389
|
label: t("token_usage.admin.customer_spend"),
|
|
390
|
-
value: formatValue(
|
|
391
|
-
delta:
|
|
390
|
+
value: formatValue(_chunkC2WQXUL5js.metricValue.call(void 0, customerCurrent, metric), metric),
|
|
391
|
+
delta: _chunkC2WQXUL5js.percentageDelta.call(void 0, _chunkC2WQXUL5js.metricValue.call(void 0, customerCurrent, metric), _chunkC2WQXUL5js.metricValue.call(void 0, customerPrevious, metric)),
|
|
392
392
|
previousLabel: t("token_usage.admin.vs_previous"),
|
|
393
393
|
decimal
|
|
394
394
|
}
|
|
@@ -398,8 +398,8 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
|
|
|
398
398
|
{
|
|
399
399
|
testId: "tile-platform",
|
|
400
400
|
label: t("token_usage.admin.platform_spend"),
|
|
401
|
-
value: formatValue(
|
|
402
|
-
delta:
|
|
401
|
+
value: formatValue(_chunkC2WQXUL5js.metricValue.call(void 0, platformCurrent, metric), metric),
|
|
402
|
+
delta: _chunkC2WQXUL5js.percentageDelta.call(void 0, _chunkC2WQXUL5js.metricValue.call(void 0, platformCurrent, metric), _chunkC2WQXUL5js.metricValue.call(void 0, platformPrevious, metric)),
|
|
403
403
|
previousLabel: t("token_usage.admin.vs_previous"),
|
|
404
404
|
decimal
|
|
405
405
|
}
|
|
@@ -411,8 +411,8 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
|
|
|
411
411
|
{
|
|
412
412
|
testId: "tile-total",
|
|
413
413
|
label: t("token_usage.admin.total_cost"),
|
|
414
|
-
value: formatValue(
|
|
415
|
-
delta:
|
|
414
|
+
value: formatValue(_chunkC2WQXUL5js.metricValue.call(void 0, totalCurrent, metric), metric),
|
|
415
|
+
delta: _chunkC2WQXUL5js.percentageDelta.call(void 0, _chunkC2WQXUL5js.metricValue.call(void 0, totalCurrent, metric), _chunkC2WQXUL5js.metricValue.call(void 0, totalPrevious, metric)),
|
|
416
416
|
decimal
|
|
417
417
|
}
|
|
418
418
|
),
|
|
@@ -446,7 +446,7 @@ function LeadTile({
|
|
|
446
446
|
previousLabel,
|
|
447
447
|
decimal
|
|
448
448
|
}) {
|
|
449
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
449
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
450
450
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
|
|
451
451
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
|
|
452
452
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
@@ -463,7 +463,7 @@ function SupportingTile({
|
|
|
463
463
|
delta,
|
|
464
464
|
decimal
|
|
465
465
|
}) {
|
|
466
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
466
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
467
467
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
|
|
468
468
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
469
469
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
|
|
@@ -486,7 +486,7 @@ function Delta({
|
|
|
486
486
|
"span",
|
|
487
487
|
{
|
|
488
488
|
"data-testid": testId,
|
|
489
|
-
className:
|
|
489
|
+
className: _chunk5PNDDYGLjs.cn.call(void 0,
|
|
490
490
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
491
491
|
increased ? "text-success" : "text-destructive"
|
|
492
492
|
),
|
|
@@ -507,10 +507,10 @@ _chunk7QVYU63Ejs.__name.call(void 0, Delta, "Delta");
|
|
|
507
507
|
|
|
508
508
|
function TokenUsageBreakdownTable({ rows, metric }) {
|
|
509
509
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
510
|
-
const { decimal, metricValue: formatValue, percent, compare } =
|
|
510
|
+
const { decimal, metricValue: formatValue, percent, compare } = _chunkC2WQXUL5js.useUsageFormatters.call(void 0, );
|
|
511
511
|
const [sort, setSort] = _react.useState.call(void 0, void 0);
|
|
512
512
|
const showActiveUsers = rows.some((row) => row.activeUsers !== void 0);
|
|
513
|
-
const total = _react.useMemo.call(void 0, () => rows.reduce((sum, row) => sum +
|
|
513
|
+
const total = _react.useMemo.call(void 0, () => rows.reduce((sum, row) => sum + _chunkC2WQXUL5js.metricValue.call(void 0, row, metric), 0), [rows, metric]);
|
|
514
514
|
const sortValue = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (row, key) => {
|
|
515
515
|
switch (key) {
|
|
516
516
|
case "label":
|
|
@@ -520,9 +520,9 @@ function TokenUsageBreakdownTable({ rows, metric }) {
|
|
|
520
520
|
case "activeUsers":
|
|
521
521
|
return _nullishCoalesce(row.activeUsers, () => ( 0));
|
|
522
522
|
case "cacheHit":
|
|
523
|
-
return
|
|
523
|
+
return _chunkC2WQXUL5js.cacheHitPercentage.call(void 0, row.cached, row.tokensIn);
|
|
524
524
|
case "share":
|
|
525
|
-
return
|
|
525
|
+
return _chunkC2WQXUL5js.metricValue.call(void 0, row, metric);
|
|
526
526
|
default:
|
|
527
527
|
return row[key];
|
|
528
528
|
}
|
|
@@ -560,13 +560,13 @@ function TokenUsageBreakdownTable({ rows, metric }) {
|
|
|
560
560
|
// The package's <Table> wraps itself in an `overflow-x-clip` container, which
|
|
561
561
|
// would swallow the overflow before this scroller ever saw it — hence the
|
|
562
562
|
// child override. Wide metric tables must scroll, never widen the page.
|
|
563
|
-
/* @__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,
|
|
564
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
563
|
+
/* @__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, _chunkXUUHPYMMjs.Table, { children: [
|
|
564
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableRow, { children: columns.map((column) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableHead, { className: _chunk5PNDDYGLjs.cn.call(void 0, column.numeric && "text-end"), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
565
565
|
"button",
|
|
566
566
|
{
|
|
567
567
|
type: "button",
|
|
568
568
|
onClick: () => toggleSort(column.key),
|
|
569
|
-
className:
|
|
569
|
+
className: _chunk5PNDDYGLjs.cn.call(void 0,
|
|
570
570
|
"hover:text-primary inline-flex items-center gap-1 text-xs font-medium",
|
|
571
571
|
column.numeric && "flex-row-reverse"
|
|
572
572
|
),
|
|
@@ -576,20 +576,20 @@ function TokenUsageBreakdownTable({ rows, metric }) {
|
|
|
576
576
|
]
|
|
577
577
|
}
|
|
578
578
|
) }, column.key)) }) }),
|
|
579
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
580
|
-
const value =
|
|
579
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableBody, { children: sortedRows.map((row) => {
|
|
580
|
+
const value = _chunkC2WQXUL5js.metricValue.call(void 0, row, metric);
|
|
581
581
|
const share = total > 0 ? value / total * 100 : 0;
|
|
582
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
583
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
584
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
585
|
-
showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
586
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
587
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
588
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
589
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
590
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
591
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
592
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
582
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.TableRow, { "data-testid": `breakdown-row-${row.id}`, children: [
|
|
583
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-xs", children: row.id === "other" ? t("token_usage.admin.other") : row.label }),
|
|
584
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-muted-foreground text-xs", children: _nullishCoalesce(row.sublabel, () => ( "")) }),
|
|
585
|
+
showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: row.activeUsers === void 0 ? "" : decimal(row.activeUsers, 0) }),
|
|
586
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.calls, 0) }),
|
|
587
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensIn, 0) }),
|
|
588
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensOut, 0) }),
|
|
589
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(_chunkC2WQXUL5js.cacheHitPercentage.call(void 0, row.cached, row.tokensIn)) }),
|
|
590
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.cost, "cost") }),
|
|
591
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.credits, "credits") }),
|
|
592
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(share) })
|
|
593
593
|
] }, row.id);
|
|
594
594
|
}) })
|
|
595
595
|
] }) })
|
|
@@ -618,7 +618,7 @@ var operationLabel = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (type,
|
|
|
618
618
|
|
|
619
619
|
function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes = false }) {
|
|
620
620
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
621
|
-
const { metricValue: formatValue, percent } =
|
|
621
|
+
const { metricValue: formatValue, percent } = _chunkC2WQXUL5js.useUsageFormatters.call(void 0, );
|
|
622
622
|
const renderLabel = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (row) => {
|
|
623
623
|
if (row.id === "other") return t("token_usage.admin.other");
|
|
624
624
|
if (!labelsAreOperationTypes) return row.label;
|
|
@@ -631,13 +631,13 @@ function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes
|
|
|
631
631
|
if (rows.length === 0) {
|
|
632
632
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground py-6 text-center text-sm", children: emptyLabel });
|
|
633
633
|
}
|
|
634
|
-
const values = rows.map((row) =>
|
|
634
|
+
const values = rows.map((row) => _chunkC2WQXUL5js.metricValue.call(void 0, row, metric));
|
|
635
635
|
const total = values.reduce((sum, value) => sum + value, 0);
|
|
636
636
|
const max = Math.max(...values, 0);
|
|
637
637
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-0.5", children: rows.map((row, index) => {
|
|
638
638
|
const value = values[index];
|
|
639
639
|
const isOther = row.id === "other";
|
|
640
|
-
const step = isOther ?
|
|
640
|
+
const step = isOther ? _chunkC2WQXUL5js.SEQUENTIAL_RAMP.length - 1 : Math.min(index, _chunkC2WQXUL5js.SEQUENTIAL_RAMP.length - 1);
|
|
641
641
|
const width = max > 0 ? value / max * 100 : 0;
|
|
642
642
|
const share = total > 0 ? value / total * 100 : 0;
|
|
643
643
|
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: [
|
|
@@ -649,7 +649,7 @@ function TokenUsageRankedBar({ rows, metric, emptyLabel, labelsAreOperationTypes
|
|
|
649
649
|
"data-testid": `ranked-fill-${row.id}`,
|
|
650
650
|
"data-ramp-step": String(step),
|
|
651
651
|
className: "h-full rounded-r-[4px]",
|
|
652
|
-
style: { width: `${width}%`, backgroundColor:
|
|
652
|
+
style: { width: `${width}%`, backgroundColor: _chunkC2WQXUL5js.SEQUENTIAL_RAMP[step] }
|
|
653
653
|
}
|
|
654
654
|
) })
|
|
655
655
|
] }),
|
|
@@ -699,7 +699,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
|
|
|
699
699
|
}, "inferGranularity");
|
|
700
700
|
function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
701
701
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
702
|
-
const { compact, bucketDate, metricValue: formatValue } =
|
|
702
|
+
const { compact, bucketDate, metricValue: formatValue } = _chunkC2WQXUL5js.useUsageFormatters.call(void 0, );
|
|
703
703
|
const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
|
|
704
704
|
const mode = resolvedTheme === "dark" ? "dark" : "light";
|
|
705
705
|
const { chartData, seriesKeys } = _react.useMemo.call(void 0, () => {
|
|
@@ -707,8 +707,8 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
707
707
|
const totals = /* @__PURE__ */ new Map();
|
|
708
708
|
for (const row of rows) totals.set(row.series, (_nullishCoalesce(totals.get(row.series), () => ( 0))) + metricValue2(row, metric));
|
|
709
709
|
const ranked = [...totals.entries()].sort((a, b) => b[1] - a[1]).map(([series]) => series);
|
|
710
|
-
const named = ranked.slice(0,
|
|
711
|
-
const folded = new Set(ranked.slice(
|
|
710
|
+
const named = ranked.slice(0, _chunkC2WQXUL5js.CATEGORICAL_CEILING);
|
|
711
|
+
const folded = new Set(ranked.slice(_chunkC2WQXUL5js.CATEGORICAL_CEILING));
|
|
712
712
|
const keys = folded.size > 0 ? [...named, OTHER_SERIES] : named;
|
|
713
713
|
const byBucket = /* @__PURE__ */ new Map();
|
|
714
714
|
for (const row of rows) {
|
|
@@ -748,7 +748,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
748
748
|
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" });
|
|
749
749
|
}
|
|
750
750
|
const granularity = inferGranularity(chartData.map((entry) => entry.bucket));
|
|
751
|
-
const seriesColorFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (series, index) => series === OTHER_SERIES ?
|
|
751
|
+
const seriesColorFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (series, index) => series === OTHER_SERIES ? _chunkC2WQXUL5js.OTHER_COLOR : _chunkC2WQXUL5js.seriesColor.call(void 0, index, mode), "seriesColorFor");
|
|
752
752
|
return (
|
|
753
753
|
// The chart is a coordinate system, not prose: recharts lays the axes and the
|
|
754
754
|
// stacked bars out left-to-right, so the whole chart stays an LTR island even
|
|
@@ -757,7 +757,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
757
757
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
758
758
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-data", children: JSON.stringify(chartData) }),
|
|
759
759
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-series", children: JSON.stringify(seriesKeys) }),
|
|
760
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
760
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.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: [
|
|
761
761
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
762
762
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
763
763
|
_recharts.XAxis,
|
|
@@ -781,10 +781,10 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
781
781
|
}
|
|
782
782
|
),
|
|
783
783
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
784
|
-
|
|
784
|
+
_chunkXUUHPYMMjs.ChartTooltip,
|
|
785
785
|
{
|
|
786
786
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
787
|
-
|
|
787
|
+
_chunkXUUHPYMMjs.ChartTooltipContent,
|
|
788
788
|
{
|
|
789
789
|
labelFormatter: (value) => bucketDate(String(value), granularity),
|
|
790
790
|
valueFormatter: (value) => formatValue(Number(value), metric),
|
|
@@ -793,7 +793,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
793
793
|
)
|
|
794
794
|
}
|
|
795
795
|
),
|
|
796
|
-
seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
796
|
+
seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.ChartLegendContent, {}) }) : null,
|
|
797
797
|
seriesKeys.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
798
798
|
_recharts.Bar,
|
|
799
799
|
{
|
|
@@ -845,19 +845,19 @@ function TokenUsageAdminContainer() {
|
|
|
845
845
|
[t]
|
|
846
846
|
);
|
|
847
847
|
if (error) {
|
|
848
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
848
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
849
849
|
}
|
|
850
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
850
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
|
|
851
851
|
const emptyLabel = t("token_usage.admin.no_data");
|
|
852
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
852
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
853
853
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminTiles, { summary, metric: filters.metric, singleCustomerMode: hidePlatform }),
|
|
854
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
855
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
856
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
857
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
854
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
855
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: [
|
|
856
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.usage_over_time") }),
|
|
857
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardAction, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
858
858
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.admin.stack_by") }),
|
|
859
859
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
860
|
-
|
|
860
|
+
_chunkXUUHPYMMjs.Select,
|
|
861
861
|
{
|
|
862
862
|
items: stackByItems,
|
|
863
863
|
value: filters.stackBy,
|
|
@@ -865,29 +865,29 @@ function TokenUsageAdminContainer() {
|
|
|
865
865
|
if (value) setFilters({ stackBy: value });
|
|
866
866
|
},
|
|
867
867
|
children: [
|
|
868
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
869
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
868
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectTrigger, { size: "sm", className: "w-36", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectValue, {}) }),
|
|
869
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectContent, { children: STACK_BY_VALUES.map((value) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SelectItem, { value, children: stackByItems[value] }, value)) })
|
|
870
870
|
]
|
|
871
871
|
}
|
|
872
872
|
)
|
|
873
873
|
] }) })
|
|
874
874
|
] }),
|
|
875
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
875
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: filters.metric, stackBy: filters.stackBy }) })
|
|
876
876
|
] }),
|
|
877
877
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-4 md:grid-cols-2", children: [
|
|
878
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
879
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
880
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
878
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
879
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.by_company") }) }),
|
|
880
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byCompany, metric: filters.metric, emptyLabel }) })
|
|
881
881
|
] }),
|
|
882
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
883
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
884
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
882
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
883
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.by_user") }) }),
|
|
884
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byUser, metric: filters.metric, emptyLabel }) })
|
|
885
885
|
] })
|
|
886
886
|
] }),
|
|
887
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
888
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
889
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
890
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
887
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk5PNDDYGLjs.cn.call(void 0, "grid gap-4", !hidePlatform && "md:grid-cols-2"), children: [
|
|
888
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
889
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.customer_by_operation") }) }),
|
|
890
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
891
891
|
TokenUsageRankedBar,
|
|
892
892
|
{
|
|
893
893
|
rows: byCustomerOperation,
|
|
@@ -897,9 +897,9 @@ function TokenUsageAdminContainer() {
|
|
|
897
897
|
}
|
|
898
898
|
) })
|
|
899
899
|
] }),
|
|
900
|
-
!hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
901
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
902
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
900
|
+
!hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
901
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.platform_by_operation") }) }),
|
|
902
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
903
903
|
TokenUsageRankedBar,
|
|
904
904
|
{
|
|
905
905
|
rows: byOperation,
|
|
@@ -910,9 +910,9 @@ function TokenUsageAdminContainer() {
|
|
|
910
910
|
) })
|
|
911
911
|
] })
|
|
912
912
|
] }),
|
|
913
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
914
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
915
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
913
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
914
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.admin.detail") }) }),
|
|
915
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageBreakdownTable, { rows: byCompany, metric: filters.metric }) })
|
|
916
916
|
] })
|
|
917
917
|
] }) });
|
|
918
918
|
}
|
|
@@ -925,36 +925,36 @@ function withFilters2(endpoint, filters) {
|
|
|
925
925
|
return endpoint;
|
|
926
926
|
}
|
|
927
927
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters2, "withFilters");
|
|
928
|
-
var TokenUsageReportService = class extends
|
|
928
|
+
var TokenUsageReportService = class extends _chunk5PNDDYGLjs.AbstractService {
|
|
929
929
|
static {
|
|
930
930
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageReportService");
|
|
931
931
|
}
|
|
932
932
|
/** Two rows: window "current" and "previous". */
|
|
933
933
|
static async getSummary(filters) {
|
|
934
|
-
const endpoint = withFilters2(new (0,
|
|
934
|
+
const endpoint = withFilters2(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageReportSummary }), filters);
|
|
935
935
|
return this.callApi({
|
|
936
|
-
type:
|
|
936
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageReportSummary,
|
|
937
937
|
method: "GET" /* GET */,
|
|
938
938
|
endpoint: endpoint.generate()
|
|
939
939
|
});
|
|
940
940
|
}
|
|
941
941
|
static async getTimeline(params) {
|
|
942
|
-
const endpoint = withFilters2(new (0,
|
|
942
|
+
const endpoint = withFilters2(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageReportTimeline }), params);
|
|
943
943
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
944
944
|
return this.callApi({
|
|
945
|
-
type:
|
|
945
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageReportTimeline,
|
|
946
946
|
method: "GET" /* GET */,
|
|
947
947
|
endpoint: endpoint.generate()
|
|
948
948
|
});
|
|
949
949
|
}
|
|
950
950
|
static async getBreakdown(params) {
|
|
951
|
-
const endpoint = withFilters2(new (0,
|
|
951
|
+
const endpoint = withFilters2(new (0, _chunk5PNDDYGLjs.EndpointCreator)({ endpoint: _chunk5PNDDYGLjs.Modules.TokenUsageReportBreakdown }), params);
|
|
952
952
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
953
953
|
if (params.targetLabel) endpoint.addAdditionalParam("targetLabel", params.targetLabel);
|
|
954
954
|
endpoint.addAdditionalParam("metric", params.metric);
|
|
955
955
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
956
956
|
return this.callApi({
|
|
957
|
-
type:
|
|
957
|
+
type: _chunk5PNDDYGLjs.Modules.TokenUsageReportBreakdown,
|
|
958
958
|
method: "GET" /* GET */,
|
|
959
959
|
endpoint: endpoint.generate()
|
|
960
960
|
});
|
|
@@ -1033,7 +1033,7 @@ var TOKEN_USAGE_REPORT_I18N_KEYS = [
|
|
|
1033
1033
|
|
|
1034
1034
|
function TokenUsageReportFilterBar({ onChange }) {
|
|
1035
1035
|
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,
|
|
1036
|
-
|
|
1036
|
+
_chunkXUUHPYMMjs.DateRangeSelector,
|
|
1037
1037
|
{
|
|
1038
1038
|
onDateChange: (range) => {
|
|
1039
1039
|
if (!_optionalChain([range, 'optionalAccess', _5 => _5.from]) || !_optionalChain([range, 'optionalAccess', _6 => _6.to])) return;
|
|
@@ -1066,7 +1066,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
1066
1066
|
pageUrl = TOKEN_USAGE_REPORT_PAGE_URL
|
|
1067
1067
|
}) => {
|
|
1068
1068
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1069
|
-
const generateUrl =
|
|
1069
|
+
const generateUrl = _chunkXUUHPYMMjs.usePageUrlGenerator.call(void 0, );
|
|
1070
1070
|
const [filters, setFilterState] = _react.useState.call(void 0, () => {
|
|
1071
1071
|
const range = defaultRange2();
|
|
1072
1072
|
return { from: _nullishCoalesce(initialFrom, () => ( range.from)), to: _nullishCoalesce(initialTo, () => ( range.to)) };
|
|
@@ -1130,7 +1130,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
1130
1130
|
() => ({ summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error }),
|
|
1131
1131
|
[summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error]
|
|
1132
1132
|
);
|
|
1133
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1133
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportContext.Provider, { value: contextValue, children }) });
|
|
1134
1134
|
}, "TokenUsageReportProvider");
|
|
1135
1135
|
var useTokenUsageReport = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
1136
1136
|
const ctx = _react.useContext.call(void 0, TokenUsageReportContext);
|
|
@@ -1150,7 +1150,7 @@ var useTokenUsageReport = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (
|
|
|
1150
1150
|
var ZERO2 = { cost: 0, credits: 0, tokensIn: 0, tokensOut: 0, cached: 0, calls: 0 };
|
|
1151
1151
|
function TokenUsageReportTiles({ summary, metric, balances }) {
|
|
1152
1152
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1153
|
-
const { decimal, metricValue: formatValue } =
|
|
1153
|
+
const { decimal, metricValue: formatValue } = _chunkC2WQXUL5js.useUsageFormatters.call(void 0, );
|
|
1154
1154
|
const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window) => _nullishCoalesce(summary.find((row) => row.window === window), () => ( ZERO2)), "rowFor");
|
|
1155
1155
|
const current = rowFor("current");
|
|
1156
1156
|
const previous = rowFor("previous");
|
|
@@ -1158,15 +1158,15 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
|
|
|
1158
1158
|
const monthlyColor = monthlyPercentage > 75 ? "text-success" : monthlyPercentage >= 5 ? "text-warning" : "text-destructive";
|
|
1159
1159
|
const whole = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (value) => decimal(Math.max(0, Math.floor(value)), 0), "whole");
|
|
1160
1160
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
|
|
1161
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1161
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": "tile-used", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
1162
1162
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.used_in_period") }),
|
|
1163
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: formatValue(
|
|
1163
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: formatValue(_chunkC2WQXUL5js.metricValue.call(void 0, current, metric), metric) }),
|
|
1164
1164
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
1165
1165
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1166
1166
|
Delta2,
|
|
1167
1167
|
{
|
|
1168
1168
|
testId: "tile-used-delta",
|
|
1169
|
-
delta:
|
|
1169
|
+
delta: _chunkC2WQXUL5js.percentageDelta.call(void 0, _chunkC2WQXUL5js.metricValue.call(void 0, current, metric), _chunkC2WQXUL5js.metricValue.call(void 0, previous, metric)),
|
|
1170
1170
|
decimal
|
|
1171
1171
|
}
|
|
1172
1172
|
),
|
|
@@ -1174,21 +1174,21 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
|
|
|
1174
1174
|
] })
|
|
1175
1175
|
] }) }),
|
|
1176
1176
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
|
|
1177
|
-
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1177
|
+
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": "tile-monthly", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
1178
1178
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.monthly_left") }),
|
|
1179
1179
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-baseline gap-1", children: [
|
|
1180
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className:
|
|
1180
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className: _chunk5PNDDYGLjs.cn.call(void 0, "text-sm font-medium tabular-nums", monthlyColor), children: whole(balances.availableMonthlyCredits) }),
|
|
1181
1181
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: [
|
|
1182
1182
|
"/ ",
|
|
1183
1183
|
whole(balances.monthlyCredits)
|
|
1184
1184
|
] })
|
|
1185
1185
|
] })
|
|
1186
1186
|
] }) }),
|
|
1187
|
-
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1187
|
+
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": "tile-extra", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
1188
1188
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.extra_credits") }),
|
|
1189
1189
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: whole(balances.availableExtraCredits) })
|
|
1190
1190
|
] }) }),
|
|
1191
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1191
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { "data-testid": "tile-calls", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.CardContent, { className: "grid gap-1", children: [
|
|
1192
1192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.calls") }),
|
|
1193
1193
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: decimal(current.calls, 0) })
|
|
1194
1194
|
] }) })
|
|
@@ -1210,7 +1210,7 @@ function Delta2({
|
|
|
1210
1210
|
"span",
|
|
1211
1211
|
{
|
|
1212
1212
|
"data-testid": testId,
|
|
1213
|
-
className:
|
|
1213
|
+
className: _chunk5PNDDYGLjs.cn.call(void 0,
|
|
1214
1214
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
1215
1215
|
increased ? "text-warning" : "text-success"
|
|
1216
1216
|
),
|
|
@@ -1230,21 +1230,21 @@ function TokenUsageReportContainer({ balances = null }) {
|
|
|
1230
1230
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1231
1231
|
const { summary, timeline, byOperation, byTarget, isLoading, error, targetPanelTitleKey } = useTokenUsageReport();
|
|
1232
1232
|
if (error) {
|
|
1233
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1233
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
1234
1234
|
}
|
|
1235
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1235
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
|
|
1236
1236
|
const emptyLabel = t("token_usage.report.no_data");
|
|
1237
1237
|
const targetTitle = targetPanelTitleKey && byTarget.length > 0 ? t(targetPanelTitleKey) : void 0;
|
|
1238
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1238
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
1239
1239
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportTiles, { summary, metric: "credits", balances }),
|
|
1240
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1241
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1242
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1240
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
1241
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.report.usage_over_time") }) }),
|
|
1242
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: "credits", stackBy: "type" }) })
|
|
1243
1243
|
] }),
|
|
1244
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1245
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1246
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1247
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1244
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk5PNDDYGLjs.cn.call(void 0, "grid gap-4", targetTitle && "md:grid-cols-2"), children: [
|
|
1245
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
1246
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: t("token_usage.report.by_operation") }) }),
|
|
1247
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1248
1248
|
TokenUsageRankedBar,
|
|
1249
1249
|
{
|
|
1250
1250
|
rows: byOperation,
|
|
@@ -1254,9 +1254,9 @@ function TokenUsageReportContainer({ balances = null }) {
|
|
|
1254
1254
|
}
|
|
1255
1255
|
) })
|
|
1256
1256
|
] }),
|
|
1257
|
-
targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1258
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1259
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1257
|
+
targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXUUHPYMMjs.Card, { children: [
|
|
1258
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardTitle, { children: targetTitle }) }),
|
|
1259
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXUUHPYMMjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byTarget, metric: "credits", emptyLabel }) })
|
|
1260
1260
|
] })
|
|
1261
1261
|
] })
|
|
1262
1262
|
] }) });
|
|
@@ -1294,5 +1294,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, TokenUsageReportContainer, "TokenUsageRepor
|
|
|
1294
1294
|
|
|
1295
1295
|
|
|
1296
1296
|
|
|
1297
|
-
exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown =
|
|
1297
|
+
exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown = _chunk5PNDDYGLjs.TokenUsageAdminBreakdown; exports.TokenUsageAdminBreakdownModule = _chunk5PNDDYGLjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminContainer = TokenUsageAdminContainer; exports.TokenUsageAdminFilterBar = TokenUsageAdminFilterBar; exports.TokenUsageAdminProvider = TokenUsageAdminProvider; exports.TokenUsageAdminService = TokenUsageAdminService; exports.TokenUsageAdminSummary = _chunk5PNDDYGLjs.TokenUsageAdminSummary; exports.TokenUsageAdminSummaryModule = _chunk5PNDDYGLjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTiles = TokenUsageAdminTiles; exports.TokenUsageAdminTimeline = _chunk5PNDDYGLjs.TokenUsageAdminTimeline; exports.TokenUsageAdminTimelineModule = _chunk5PNDDYGLjs.TokenUsageAdminTimelineModule; exports.TokenUsageBreakdownTable = TokenUsageBreakdownTable; exports.TokenUsageRankedBar = TokenUsageRankedBar; exports.TokenUsageReportBreakdown = _chunk5PNDDYGLjs.TokenUsageReportBreakdown; exports.TokenUsageReportContainer = TokenUsageReportContainer; exports.TokenUsageReportFilterBar = TokenUsageReportFilterBar; exports.TokenUsageReportProvider = TokenUsageReportProvider; exports.TokenUsageReportService = TokenUsageReportService; exports.TokenUsageReportSummary = _chunk5PNDDYGLjs.TokenUsageReportSummary; exports.TokenUsageReportTiles = TokenUsageReportTiles; exports.TokenUsageReportTimeline = _chunk5PNDDYGLjs.TokenUsageReportTimeline; exports.TokenUsageTimelineChart = TokenUsageTimelineChart; exports.configureTokenUsage = _chunk5PNDDYGLjs.configureTokenUsage; exports.createUsageFormatters = _chunkC2WQXUL5js.createUsageFormatters; exports.getTokenUsageCurrency = _chunk5PNDDYGLjs.getTokenUsageCurrency; exports.tokenUsageModules = _chunk5PNDDYGLjs.tokenUsageModules; exports.useTokenUsageAdmin = useTokenUsageAdmin; exports.useTokenUsageReport = useTokenUsageReport; exports.useUsageFormatters = _chunkC2WQXUL5js.useUsageFormatters;
|
|
1298
1298
|
//# sourceMappingURL=index.js.map
|