@carlonicora/nextjs-jsonapi 3.5.9 → 3.5.10
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-5AQQQQY3.mjs → BlockNoteEditor-5MOYLQXK.mjs} +5 -5
- package/dist/{BlockNoteEditor-EWMWY4SK.js → BlockNoteEditor-5UUTCRSX.js} +20 -20
- package/dist/{BlockNoteEditor-EWMWY4SK.js.map → BlockNoteEditor-5UUTCRSX.js.map} +1 -1
- package/dist/{JsonApiRequest-ADNIGXTP.mjs → JsonApiRequest-7AEQWMLJ.mjs} +2 -2
- package/dist/JsonApiRequest-E4PZPH3N.js +26 -0
- package/dist/{JsonApiRequest-WWGSGV2I.js.map → JsonApiRequest-E4PZPH3N.js.map} +1 -1
- package/dist/billing/index.js +399 -399
- package/dist/billing/index.mjs +4 -4
- package/dist/{chunk-DK5ZOPVF.mjs → chunk-2D4MFVDV.mjs} +3 -3
- package/dist/{chunk-RVASYIQG.mjs → chunk-BMVA2IM5.mjs} +2 -5
- package/dist/chunk-BMVA2IM5.mjs.map +1 -0
- package/dist/{chunk-H37WRSBU.mjs → chunk-HDZ2BL6D.mjs} +5 -5
- package/dist/{chunk-W42MYR3Y.js → chunk-LU7DJ4QF.js} +2 -5
- package/dist/chunk-LU7DJ4QF.js.map +1 -0
- package/dist/{chunk-EJIWXCXI.js → chunk-P7XPRUQI.js} +773 -773
- package/dist/{chunk-EJIWXCXI.js.map → chunk-P7XPRUQI.js.map} +1 -1
- package/dist/{chunk-OE2WEAPU.mjs → chunk-T4PD3Z6G.mjs} +7 -7
- package/dist/{chunk-B2OB3HQO.js → chunk-TULJCLZA.js} +13 -13
- package/dist/{chunk-B2OB3HQO.js.map → chunk-TULJCLZA.js.map} +1 -1
- package/dist/{chunk-PGA2VC3S.js → chunk-UYLS3LJW.js} +32 -32
- package/dist/{chunk-PGA2VC3S.js.map → chunk-UYLS3LJW.js.map} +1 -1
- 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/help/index.js +38 -38
- package/dist/features/help/index.mjs +4 -4
- package/dist/features/tokenusage/index.js +102 -102
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.js +4 -4
- package/dist/index.mjs +3 -3
- package/dist/server/index.js +14 -14
- package/dist/server/index.mjs +2 -2
- package/package.json +1 -1
- package/src/core/registry/DataClassRegistry.ts +7 -4
- package/src/core/registry/__tests__/DataClassRegistry.test.ts +14 -0
- package/dist/JsonApiRequest-WWGSGV2I.js +0 -26
- package/dist/chunk-RVASYIQG.mjs.map +0 -1
- package/dist/chunk-W42MYR3Y.js.map +0 -1
- /package/dist/{BlockNoteEditor-5AQQQQY3.mjs.map → BlockNoteEditor-5MOYLQXK.mjs.map} +0 -0
- /package/dist/{JsonApiRequest-ADNIGXTP.mjs.map → JsonApiRequest-7AEQWMLJ.mjs.map} +0 -0
- /package/dist/{chunk-DK5ZOPVF.mjs.map → chunk-2D4MFVDV.mjs.map} +0 -0
- /package/dist/{chunk-H37WRSBU.mjs.map → chunk-HDZ2BL6D.mjs.map} +0 -0
- /package/dist/{chunk-OE2WEAPU.mjs.map → chunk-T4PD3Z6G.mjs.map} +0 -0
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
30
|
-
require('../../chunk-
|
|
29
|
+
var _chunkP7XPRUQIjs = require('../../chunk-P7XPRUQI.js');
|
|
30
|
+
require('../../chunk-TULJCLZA.js');
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
@@ -45,10 +45,10 @@ require('../../chunk-B2OB3HQO.js');
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunkUYLS3LJWjs = require('../../chunk-UYLS3LJW.js');
|
|
49
49
|
require('../../chunk-LXKSUWAV.js');
|
|
50
50
|
require('../../chunk-IBS6NI7D.js');
|
|
51
|
-
require('../../chunk-
|
|
51
|
+
require('../../chunk-LU7DJ4QF.js');
|
|
52
52
|
require('../../chunk-3EPNHTMH.js');
|
|
53
53
|
|
|
54
54
|
|
|
@@ -70,7 +70,7 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
|
|
|
70
70
|
};
|
|
71
71
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
72
72
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
73
|
-
|
|
73
|
+
_chunkP7XPRUQIjs.DateRangeSelector,
|
|
74
74
|
{
|
|
75
75
|
onDateChange: (range) => {
|
|
76
76
|
if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
|
|
@@ -105,16 +105,16 @@ function TokenUsageAdminFilterBar({ granularity, companyId, metric, companies, o
|
|
|
105
105
|
}
|
|
106
106
|
),
|
|
107
107
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
108
|
-
|
|
108
|
+
_chunkP7XPRUQIjs.Select,
|
|
109
109
|
{
|
|
110
110
|
items: companyItems,
|
|
111
111
|
value: _nullishCoalesce(companyId, () => ( ALL_COMPANIES)),
|
|
112
112
|
onValueChange: (value) => onChange({ companyId: !value || value === ALL_COMPANIES ? void 0 : value }),
|
|
113
113
|
children: [
|
|
114
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
115
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
116
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
117
|
-
companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
114
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectTrigger, { className: "w-56", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectValue, { placeholder: t("token_usage.admin.all_companies") }) }),
|
|
115
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.SelectContent, { children: [
|
|
116
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectItem, { value: ALL_COMPANIES, children: t("token_usage.admin.all_companies") }),
|
|
117
|
+
companies.map((company) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectItem, { value: company.id, children: company.label }, company.id))
|
|
118
118
|
] })
|
|
119
119
|
]
|
|
120
120
|
}
|
|
@@ -137,13 +137,13 @@ function Segmented({
|
|
|
137
137
|
children: options.map((option) => {
|
|
138
138
|
const selected = option.value === value;
|
|
139
139
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
140
|
-
|
|
140
|
+
_chunkP7XPRUQIjs.Button,
|
|
141
141
|
{
|
|
142
142
|
type: "button",
|
|
143
143
|
size: "sm",
|
|
144
144
|
variant: selected ? "default" : "ghost",
|
|
145
145
|
"aria-pressed": selected,
|
|
146
|
-
className:
|
|
146
|
+
className: _chunkUYLS3LJWjs.cn.call(void 0, !selected && "text-muted-foreground"),
|
|
147
147
|
onClick: () => onSelect(option.value),
|
|
148
148
|
children: option.label
|
|
149
149
|
},
|
|
@@ -163,36 +163,36 @@ function withFilters(endpoint, filters) {
|
|
|
163
163
|
return endpoint;
|
|
164
164
|
}
|
|
165
165
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
|
|
166
|
-
var TokenUsageAdminService = class extends
|
|
166
|
+
var TokenUsageAdminService = class extends _chunkUYLS3LJWjs.AbstractService {
|
|
167
167
|
static {
|
|
168
168
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageAdminService");
|
|
169
169
|
}
|
|
170
170
|
/** Six rows: {customer, platform, total} × {current, previous}. */
|
|
171
171
|
static async getSummary(filters) {
|
|
172
|
-
const endpoint = withFilters(new (0,
|
|
172
|
+
const endpoint = withFilters(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageAdminSummary }), filters);
|
|
173
173
|
return this.callApi({
|
|
174
|
-
type:
|
|
174
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageAdminSummary,
|
|
175
175
|
method: "GET" /* GET */,
|
|
176
176
|
endpoint: endpoint.generate()
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
179
|
static async getTimeline(params) {
|
|
180
|
-
const endpoint = withFilters(new (0,
|
|
180
|
+
const endpoint = withFilters(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageAdminTimeline }), params);
|
|
181
181
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
182
182
|
endpoint.addAdditionalParam("stackBy", params.stackBy);
|
|
183
183
|
return this.callApi({
|
|
184
|
-
type:
|
|
184
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageAdminTimeline,
|
|
185
185
|
method: "GET" /* GET */,
|
|
186
186
|
endpoint: endpoint.generate()
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
static async getBreakdown(params) {
|
|
190
|
-
const endpoint = withFilters(new (0,
|
|
190
|
+
const endpoint = withFilters(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageAdminBreakdown }), params);
|
|
191
191
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
192
192
|
endpoint.addAdditionalParam("scope", params.scope);
|
|
193
193
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
194
194
|
return this.callApi({
|
|
195
|
-
type:
|
|
195
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageAdminBreakdown,
|
|
196
196
|
method: "GET" /* GET */,
|
|
197
197
|
endpoint: endpoint.generate()
|
|
198
198
|
});
|
|
@@ -219,7 +219,7 @@ var TokenUsageAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
219
219
|
pageUrl = TOKEN_USAGE_ADMIN_PAGE_URL
|
|
220
220
|
}) => {
|
|
221
221
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
222
|
-
const generateUrl =
|
|
222
|
+
const generateUrl = _chunkP7XPRUQIjs.usePageUrlGenerator.call(void 0, );
|
|
223
223
|
const [filters, setFilterState] = _react.useState.call(void 0, () => {
|
|
224
224
|
const range = defaultRange();
|
|
225
225
|
return {
|
|
@@ -337,7 +337,7 @@ var TokenUsageAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
337
337
|
error
|
|
338
338
|
]
|
|
339
339
|
);
|
|
340
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
340
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminContext.Provider, { value: contextValue, children }) });
|
|
341
341
|
}, "TokenUsageAdminProvider");
|
|
342
342
|
var useTokenUsageAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
343
343
|
const ctx = _react.useContext.call(void 0, TokenUsageAdminContext);
|
|
@@ -393,7 +393,7 @@ function createUsageFormatters(locale, currency) {
|
|
|
393
393
|
_chunk7QVYU63Ejs.__name.call(void 0, createUsageFormatters, "createUsageFormatters");
|
|
394
394
|
function useUsageFormatters() {
|
|
395
395
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
396
|
-
const currency =
|
|
396
|
+
const currency = _chunkUYLS3LJWjs.getTokenUsageCurrency.call(void 0, );
|
|
397
397
|
return _react.useMemo.call(void 0, () => createUsageFormatters(locale, currency), [locale, currency]);
|
|
398
398
|
}
|
|
399
399
|
_chunk7QVYU63Ejs.__name.call(void 0, useUsageFormatters, "useUsageFormatters");
|
|
@@ -432,7 +432,7 @@ function TokenUsageAdminTiles({ summary, metric, singleCustomerMode }) {
|
|
|
432
432
|
const averagePerCall = totalCurrent.calls ? totalCurrent.cost / totalCurrent.calls : 0;
|
|
433
433
|
const cacheHit = cacheHitPercentage(totalCurrent.cached, totalCurrent.tokensIn);
|
|
434
434
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
|
|
435
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
435
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUYLS3LJWjs.cn.call(void 0, "grid gap-3", singleCustomerMode ? "sm:grid-cols-1" : "sm:grid-cols-2"), children: [
|
|
436
436
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
437
437
|
LeadTile,
|
|
438
438
|
{
|
|
@@ -497,7 +497,7 @@ function LeadTile({
|
|
|
497
497
|
previousLabel,
|
|
498
498
|
decimal
|
|
499
499
|
}) {
|
|
500
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
500
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
501
501
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
|
|
502
502
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
|
|
503
503
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
@@ -514,7 +514,7 @@ function SupportingTile({
|
|
|
514
514
|
delta,
|
|
515
515
|
decimal
|
|
516
516
|
}) {
|
|
517
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
517
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
518
518
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: label }),
|
|
519
519
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
520
520
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
|
|
@@ -537,7 +537,7 @@ function Delta({
|
|
|
537
537
|
"span",
|
|
538
538
|
{
|
|
539
539
|
"data-testid": testId,
|
|
540
|
-
className:
|
|
540
|
+
className: _chunkUYLS3LJWjs.cn.call(void 0,
|
|
541
541
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
542
542
|
increased ? "text-success" : "text-destructive"
|
|
543
543
|
),
|
|
@@ -611,13 +611,13 @@ function TokenUsageBreakdownTable({ rows, metric }) {
|
|
|
611
611
|
// The package's <Table> wraps itself in an `overflow-x-clip` container, which
|
|
612
612
|
// would swallow the overflow before this scroller ever saw it — hence the
|
|
613
613
|
// child override. Wide metric tables must scroll, never widen the page.
|
|
614
|
-
/* @__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,
|
|
615
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
614
|
+
/* @__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, _chunkP7XPRUQIjs.Table, { children: [
|
|
615
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableRow, { children: columns.map((column) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableHead, { className: _chunkUYLS3LJWjs.cn.call(void 0, column.numeric && "text-end"), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
616
616
|
"button",
|
|
617
617
|
{
|
|
618
618
|
type: "button",
|
|
619
619
|
onClick: () => toggleSort(column.key),
|
|
620
|
-
className:
|
|
620
|
+
className: _chunkUYLS3LJWjs.cn.call(void 0,
|
|
621
621
|
"hover:text-primary inline-flex items-center gap-1 text-xs font-medium",
|
|
622
622
|
column.numeric && "flex-row-reverse"
|
|
623
623
|
),
|
|
@@ -627,20 +627,20 @@ function TokenUsageBreakdownTable({ rows, metric }) {
|
|
|
627
627
|
]
|
|
628
628
|
}
|
|
629
629
|
) }, column.key)) }) }),
|
|
630
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
630
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableBody, { children: sortedRows.map((row) => {
|
|
631
631
|
const value = metricValue(row, metric);
|
|
632
632
|
const share = total > 0 ? value / total * 100 : 0;
|
|
633
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
634
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
635
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
636
|
-
showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
637
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
638
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
639
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
640
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
641
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
642
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
643
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
633
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.TableRow, { "data-testid": `breakdown-row-${row.id}`, children: [
|
|
634
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-xs", children: row.id === "other" ? t("token_usage.admin.other") : row.label }),
|
|
635
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-muted-foreground text-xs", children: _nullishCoalesce(row.sublabel, () => ( "")) }),
|
|
636
|
+
showActiveUsers && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: row.activeUsers === void 0 ? "" : decimal(row.activeUsers, 0) }),
|
|
637
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.calls, 0) }),
|
|
638
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensIn, 0) }),
|
|
639
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.tokensOut, 0) }),
|
|
640
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(cacheHitPercentage(row.cached, row.tokensIn)) }),
|
|
641
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.cost, "cost") }),
|
|
642
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: formatValue(row.credits, "credits") }),
|
|
643
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.TableCell, { className: "text-end text-xs tabular-nums", children: percent(share) })
|
|
644
644
|
] }, row.id);
|
|
645
645
|
}) })
|
|
646
646
|
] }) })
|
|
@@ -838,7 +838,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
838
838
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
839
839
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-data", children: JSON.stringify(chartData) }),
|
|
840
840
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "timeline-series", children: JSON.stringify(seriesKeys) }),
|
|
841
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
841
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.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: [
|
|
842
842
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
843
843
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
844
844
|
_recharts.XAxis,
|
|
@@ -862,10 +862,10 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
862
862
|
}
|
|
863
863
|
),
|
|
864
864
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
865
|
-
|
|
865
|
+
_chunkP7XPRUQIjs.ChartTooltip,
|
|
866
866
|
{
|
|
867
867
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
868
|
-
|
|
868
|
+
_chunkP7XPRUQIjs.ChartTooltipContent,
|
|
869
869
|
{
|
|
870
870
|
labelFormatter: (value) => bucketDate(String(value), granularity),
|
|
871
871
|
valueFormatter: (value) => formatValue(Number(value), metric),
|
|
@@ -874,7 +874,7 @@ function TokenUsageTimelineChart({ rows, metric, stackBy, className }) {
|
|
|
874
874
|
)
|
|
875
875
|
}
|
|
876
876
|
),
|
|
877
|
-
seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
877
|
+
seriesKeys.length >= 2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.ChartLegendContent, {}) }) : null,
|
|
878
878
|
seriesKeys.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
879
879
|
_recharts.Bar,
|
|
880
880
|
{
|
|
@@ -926,19 +926,19 @@ function TokenUsageAdminContainer() {
|
|
|
926
926
|
[t]
|
|
927
927
|
);
|
|
928
928
|
if (error) {
|
|
929
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
929
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
930
930
|
}
|
|
931
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
931
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
|
|
932
932
|
const emptyLabel = t("token_usage.admin.no_data");
|
|
933
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
933
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
934
934
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageAdminTiles, { summary, metric: filters.metric, singleCustomerMode: hidePlatform }),
|
|
935
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
936
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
937
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
938
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
935
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
936
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: [
|
|
937
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.usage_over_time") }),
|
|
938
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardAction, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
939
939
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.admin.stack_by") }),
|
|
940
940
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
941
|
-
|
|
941
|
+
_chunkP7XPRUQIjs.Select,
|
|
942
942
|
{
|
|
943
943
|
items: stackByItems,
|
|
944
944
|
value: filters.stackBy,
|
|
@@ -946,29 +946,29 @@ function TokenUsageAdminContainer() {
|
|
|
946
946
|
if (value) setFilters({ stackBy: value });
|
|
947
947
|
},
|
|
948
948
|
children: [
|
|
949
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
950
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
949
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectTrigger, { size: "sm", className: "w-36", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectValue, {}) }),
|
|
950
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectContent, { children: STACK_BY_VALUES.map((value) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SelectItem, { value, children: stackByItems[value] }, value)) })
|
|
951
951
|
]
|
|
952
952
|
}
|
|
953
953
|
)
|
|
954
954
|
] }) })
|
|
955
955
|
] }),
|
|
956
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
956
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: filters.metric, stackBy: filters.stackBy }) })
|
|
957
957
|
] }),
|
|
958
958
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-4 md:grid-cols-2", children: [
|
|
959
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
960
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
961
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
959
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
960
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.by_company") }) }),
|
|
961
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byCompany, metric: filters.metric, emptyLabel }) })
|
|
962
962
|
] }),
|
|
963
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
964
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
965
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
963
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
964
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.by_user") }) }),
|
|
965
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byUser, metric: filters.metric, emptyLabel }) })
|
|
966
966
|
] })
|
|
967
967
|
] }),
|
|
968
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
969
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
970
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
971
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
968
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUYLS3LJWjs.cn.call(void 0, "grid gap-4", !hidePlatform && "md:grid-cols-2"), children: [
|
|
969
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
970
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.customer_by_operation") }) }),
|
|
971
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
972
972
|
TokenUsageRankedBar,
|
|
973
973
|
{
|
|
974
974
|
rows: byCustomerOperation,
|
|
@@ -978,9 +978,9 @@ function TokenUsageAdminContainer() {
|
|
|
978
978
|
}
|
|
979
979
|
) })
|
|
980
980
|
] }),
|
|
981
|
-
!hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
982
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
981
|
+
!hidePlatform && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
982
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.platform_by_operation") }) }),
|
|
983
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
984
984
|
TokenUsageRankedBar,
|
|
985
985
|
{
|
|
986
986
|
rows: byOperation,
|
|
@@ -991,9 +991,9 @@ function TokenUsageAdminContainer() {
|
|
|
991
991
|
) })
|
|
992
992
|
] })
|
|
993
993
|
] }),
|
|
994
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
995
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
996
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
994
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
995
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.admin.detail") }) }),
|
|
996
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageBreakdownTable, { rows: byCompany, metric: filters.metric }) })
|
|
997
997
|
] })
|
|
998
998
|
] }) });
|
|
999
999
|
}
|
|
@@ -1006,36 +1006,36 @@ function withFilters2(endpoint, filters) {
|
|
|
1006
1006
|
return endpoint;
|
|
1007
1007
|
}
|
|
1008
1008
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters2, "withFilters");
|
|
1009
|
-
var TokenUsageReportService = class extends
|
|
1009
|
+
var TokenUsageReportService = class extends _chunkUYLS3LJWjs.AbstractService {
|
|
1010
1010
|
static {
|
|
1011
1011
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "TokenUsageReportService");
|
|
1012
1012
|
}
|
|
1013
1013
|
/** Two rows: window "current" and "previous". */
|
|
1014
1014
|
static async getSummary(filters) {
|
|
1015
|
-
const endpoint = withFilters2(new (0,
|
|
1015
|
+
const endpoint = withFilters2(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageReportSummary }), filters);
|
|
1016
1016
|
return this.callApi({
|
|
1017
|
-
type:
|
|
1017
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageReportSummary,
|
|
1018
1018
|
method: "GET" /* GET */,
|
|
1019
1019
|
endpoint: endpoint.generate()
|
|
1020
1020
|
});
|
|
1021
1021
|
}
|
|
1022
1022
|
static async getTimeline(params) {
|
|
1023
|
-
const endpoint = withFilters2(new (0,
|
|
1023
|
+
const endpoint = withFilters2(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageReportTimeline }), params);
|
|
1024
1024
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
1025
1025
|
return this.callApi({
|
|
1026
|
-
type:
|
|
1026
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageReportTimeline,
|
|
1027
1027
|
method: "GET" /* GET */,
|
|
1028
1028
|
endpoint: endpoint.generate()
|
|
1029
1029
|
});
|
|
1030
1030
|
}
|
|
1031
1031
|
static async getBreakdown(params) {
|
|
1032
|
-
const endpoint = withFilters2(new (0,
|
|
1032
|
+
const endpoint = withFilters2(new (0, _chunkUYLS3LJWjs.EndpointCreator)({ endpoint: _chunkUYLS3LJWjs.Modules.TokenUsageReportBreakdown }), params);
|
|
1033
1033
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
1034
1034
|
if (params.targetLabel) endpoint.addAdditionalParam("targetLabel", params.targetLabel);
|
|
1035
1035
|
endpoint.addAdditionalParam("metric", params.metric);
|
|
1036
1036
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
1037
1037
|
return this.callApi({
|
|
1038
|
-
type:
|
|
1038
|
+
type: _chunkUYLS3LJWjs.Modules.TokenUsageReportBreakdown,
|
|
1039
1039
|
method: "GET" /* GET */,
|
|
1040
1040
|
endpoint: endpoint.generate()
|
|
1041
1041
|
});
|
|
@@ -1114,7 +1114,7 @@ var TOKEN_USAGE_REPORT_I18N_KEYS = [
|
|
|
1114
1114
|
|
|
1115
1115
|
function TokenUsageReportFilterBar({ onChange }) {
|
|
1116
1116
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1117
|
-
|
|
1117
|
+
_chunkP7XPRUQIjs.DateRangeSelector,
|
|
1118
1118
|
{
|
|
1119
1119
|
onDateChange: (range) => {
|
|
1120
1120
|
if (!_optionalChain([range, 'optionalAccess', _10 => _10.from]) || !_optionalChain([range, 'optionalAccess', _11 => _11.to])) return;
|
|
@@ -1147,7 +1147,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
1147
1147
|
pageUrl = TOKEN_USAGE_REPORT_PAGE_URL
|
|
1148
1148
|
}) => {
|
|
1149
1149
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1150
|
-
const generateUrl =
|
|
1150
|
+
const generateUrl = _chunkP7XPRUQIjs.usePageUrlGenerator.call(void 0, );
|
|
1151
1151
|
const [filters, setFilterState] = _react.useState.call(void 0, () => {
|
|
1152
1152
|
const range = defaultRange2();
|
|
1153
1153
|
return { from: _nullishCoalesce(initialFrom, () => ( range.from)), to: _nullishCoalesce(initialTo, () => ( range.to)) };
|
|
@@ -1211,7 +1211,7 @@ var TokenUsageReportProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void
|
|
|
1211
1211
|
() => ({ summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error }),
|
|
1212
1212
|
[summary, timeline, byOperation, byTarget, targetPanelTitleKey, filters, setFilters, isLoading, error]
|
|
1213
1213
|
);
|
|
1214
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1214
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportContext.Provider, { value: contextValue, children }) });
|
|
1215
1215
|
}, "TokenUsageReportProvider");
|
|
1216
1216
|
var useTokenUsageReport = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
1217
1217
|
const ctx = _react.useContext.call(void 0, TokenUsageReportContext);
|
|
@@ -1239,7 +1239,7 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
|
|
|
1239
1239
|
const monthlyColor = monthlyPercentage > 75 ? "text-success" : monthlyPercentage >= 5 ? "text-warning" : "text-destructive";
|
|
1240
1240
|
const whole = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (value) => decimal(Math.max(0, Math.floor(value)), 0), "whole");
|
|
1241
1241
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3", children: [
|
|
1242
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1242
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": "tile-used", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
1243
1243
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.used_in_period") }),
|
|
1244
1244
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: formatValue(metricValue(current, metric), metric) }),
|
|
1245
1245
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
@@ -1255,21 +1255,21 @@ function TokenUsageReportTiles({ summary, metric, balances }) {
|
|
|
1255
1255
|
] })
|
|
1256
1256
|
] }) }),
|
|
1257
1257
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
|
|
1258
|
-
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1258
|
+
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": "tile-monthly", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
1259
1259
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.monthly_left") }),
|
|
1260
1260
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-baseline gap-1", children: [
|
|
1261
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className:
|
|
1261
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-testid": "tile-monthly-value", className: _chunkUYLS3LJWjs.cn.call(void 0, "text-sm font-medium tabular-nums", monthlyColor), children: whole(balances.availableMonthlyCredits) }),
|
|
1262
1262
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: [
|
|
1263
1263
|
"/ ",
|
|
1264
1264
|
whole(balances.monthlyCredits)
|
|
1265
1265
|
] })
|
|
1266
1266
|
] })
|
|
1267
1267
|
] }) }),
|
|
1268
|
-
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1268
|
+
balances && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": "tile-extra", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
1269
1269
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.extra_credits") }),
|
|
1270
1270
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: whole(balances.availableExtraCredits) })
|
|
1271
1271
|
] }) }),
|
|
1272
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1272
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { "data-testid": "tile-calls", size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.CardContent, { className: "grid gap-1", children: [
|
|
1273
1273
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("token_usage.report.calls") }),
|
|
1274
1274
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: decimal(current.calls, 0) })
|
|
1275
1275
|
] }) })
|
|
@@ -1291,7 +1291,7 @@ function Delta2({
|
|
|
1291
1291
|
"span",
|
|
1292
1292
|
{
|
|
1293
1293
|
"data-testid": testId,
|
|
1294
|
-
className:
|
|
1294
|
+
className: _chunkUYLS3LJWjs.cn.call(void 0,
|
|
1295
1295
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
1296
1296
|
increased ? "text-warning" : "text-success"
|
|
1297
1297
|
),
|
|
@@ -1311,21 +1311,21 @@ function TokenUsageReportContainer({ balances = null }) {
|
|
|
1311
1311
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1312
1312
|
const { summary, timeline, byOperation, byTarget, isLoading, error, targetPanelTitleKey } = useTokenUsageReport();
|
|
1313
1313
|
if (error) {
|
|
1314
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1314
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
1315
1315
|
}
|
|
1316
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1316
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
|
|
1317
1317
|
const emptyLabel = t("token_usage.report.no_data");
|
|
1318
1318
|
const targetTitle = targetPanelTitleKey && byTarget.length > 0 ? t(targetPanelTitleKey) : void 0;
|
|
1319
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1319
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
1320
1320
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageReportTiles, { summary, metric: "credits", balances }),
|
|
1321
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1322
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1323
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1321
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
1322
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.report.usage_over_time") }) }),
|
|
1323
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageTimelineChart, { rows: timeline, metric: "credits", stackBy: "type" }) })
|
|
1324
1324
|
] }),
|
|
1325
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1326
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1327
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1328
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1325
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUYLS3LJWjs.cn.call(void 0, "grid gap-4", targetTitle && "md:grid-cols-2"), children: [
|
|
1326
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
1327
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: t("token_usage.report.by_operation") }) }),
|
|
1328
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1329
1329
|
TokenUsageRankedBar,
|
|
1330
1330
|
{
|
|
1331
1331
|
rows: byOperation,
|
|
@@ -1335,9 +1335,9 @@ function TokenUsageReportContainer({ balances = null }) {
|
|
|
1335
1335
|
}
|
|
1336
1336
|
) })
|
|
1337
1337
|
] }),
|
|
1338
|
-
targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1339
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1340
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1338
|
+
targetTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7XPRUQIjs.Card, { children: [
|
|
1339
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardTitle, { children: targetTitle }) }),
|
|
1340
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7XPRUQIjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TokenUsageRankedBar, { rows: byTarget, metric: "credits", emptyLabel }) })
|
|
1341
1341
|
] })
|
|
1342
1342
|
] })
|
|
1343
1343
|
] }) });
|
|
@@ -1375,5 +1375,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, TokenUsageReportContainer, "TokenUsageRepor
|
|
|
1375
1375
|
|
|
1376
1376
|
|
|
1377
1377
|
|
|
1378
|
-
exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown =
|
|
1378
|
+
exports.TOKEN_USAGE_ADMIN_I18N_KEYS = TOKEN_USAGE_ADMIN_I18N_KEYS; exports.TOKEN_USAGE_REPORT_I18N_KEYS = TOKEN_USAGE_REPORT_I18N_KEYS; exports.TokenUsageAdminBreakdown = _chunkUYLS3LJWjs.TokenUsageAdminBreakdown; exports.TokenUsageAdminBreakdownModule = _chunkUYLS3LJWjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminContainer = TokenUsageAdminContainer; exports.TokenUsageAdminFilterBar = TokenUsageAdminFilterBar; exports.TokenUsageAdminProvider = TokenUsageAdminProvider; exports.TokenUsageAdminService = TokenUsageAdminService; exports.TokenUsageAdminSummary = _chunkUYLS3LJWjs.TokenUsageAdminSummary; exports.TokenUsageAdminSummaryModule = _chunkUYLS3LJWjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTiles = TokenUsageAdminTiles; exports.TokenUsageAdminTimeline = _chunkUYLS3LJWjs.TokenUsageAdminTimeline; exports.TokenUsageAdminTimelineModule = _chunkUYLS3LJWjs.TokenUsageAdminTimelineModule; exports.TokenUsageBreakdownTable = TokenUsageBreakdownTable; exports.TokenUsageRankedBar = TokenUsageRankedBar; exports.TokenUsageReportBreakdown = _chunkUYLS3LJWjs.TokenUsageReportBreakdown; exports.TokenUsageReportContainer = TokenUsageReportContainer; exports.TokenUsageReportFilterBar = TokenUsageReportFilterBar; exports.TokenUsageReportProvider = TokenUsageReportProvider; exports.TokenUsageReportService = TokenUsageReportService; exports.TokenUsageReportSummary = _chunkUYLS3LJWjs.TokenUsageReportSummary; exports.TokenUsageReportTiles = TokenUsageReportTiles; exports.TokenUsageReportTimeline = _chunkUYLS3LJWjs.TokenUsageReportTimeline; exports.TokenUsageTimelineChart = TokenUsageTimelineChart; exports.configureTokenUsage = _chunkUYLS3LJWjs.configureTokenUsage; exports.createUsageFormatters = createUsageFormatters; exports.getTokenUsageCurrency = _chunkUYLS3LJWjs.getTokenUsageCurrency; exports.tokenUsageModules = _chunkUYLS3LJWjs.tokenUsageModules; exports.useTokenUsageAdmin = useTokenUsageAdmin; exports.useTokenUsageReport = useTokenUsageReport; exports.useUsageFormatters = useUsageFormatters;
|
|
1379
1379
|
//# sourceMappingURL=index.js.map
|
|
@@ -26,8 +26,8 @@ import {
|
|
|
26
26
|
TableHeader,
|
|
27
27
|
TableRow,
|
|
28
28
|
usePageUrlGenerator
|
|
29
|
-
} from "../../chunk-
|
|
30
|
-
import "../../chunk-
|
|
29
|
+
} from "../../chunk-T4PD3Z6G.mjs";
|
|
30
|
+
import "../../chunk-2D4MFVDV.mjs";
|
|
31
31
|
import {
|
|
32
32
|
AbstractService,
|
|
33
33
|
EndpointCreator,
|
|
@@ -45,10 +45,10 @@ import {
|
|
|
45
45
|
configureTokenUsage,
|
|
46
46
|
getTokenUsageCurrency,
|
|
47
47
|
tokenUsageModules
|
|
48
|
-
} from "../../chunk-
|
|
48
|
+
} from "../../chunk-HDZ2BL6D.mjs";
|
|
49
49
|
import "../../chunk-AUXK7QSA.mjs";
|
|
50
50
|
import "../../chunk-C7C7VY4F.mjs";
|
|
51
|
-
import "../../chunk-
|
|
51
|
+
import "../../chunk-BMVA2IM5.mjs";
|
|
52
52
|
import "../../chunk-VOXD3ZLY.mjs";
|
|
53
53
|
import {
|
|
54
54
|
__name
|