@mastra/playground-ui 64.0.0-alpha.9 → 64.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DataList.cjs.js +17 -15
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +5 -4
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -5
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -5
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/Meter.cjs.js +172 -0
- package/dist/components/Meter.cjs.js.map +1 -0
- package/dist/components/Meter.d.ts +2 -0
- package/dist/components/Meter.es.js +167 -0
- package/dist/components/Meter.es.js.map +1 -0
- package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/Table.cjs.js +11 -1
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +11 -1
- package/dist/components/Table.es.js.map +1 -1
- package/dist/data-list-DUfXIhyC.cjs +142 -0
- package/dist/data-list-DUfXIhyC.cjs.map +1 -0
- package/dist/data-list-DXQY_iQW.js +138 -0
- package/dist/data-list-DXQY_iQW.js.map +1 -0
- package/dist/{data-list-skeleton-CGKlcoiI.js → data-list-skeleton-B_SXAeE0.js} +2 -2
- package/dist/{data-list-skeleton-CGKlcoiI.js.map → data-list-skeleton-B_SXAeE0.js.map} +1 -1
- package/dist/{data-list-skeleton-DGMTqeNP.cjs → data-list-skeleton-BqC9Gggi.cjs} +6 -6
- package/dist/{data-list-skeleton-DGMTqeNP.cjs.map → data-list-skeleton-BqC9Gggi.cjs.map} +1 -1
- package/dist/data-list-spacer-ByA4ce2a.js +209 -0
- package/dist/data-list-spacer-ByA4ce2a.js.map +1 -0
- package/dist/data-list-spacer-tQaBaum4.cjs +218 -0
- package/dist/data-list-spacer-tQaBaum4.cjs.map +1 -0
- package/dist/{data-list-ecHsw-zr.cjs → data-list-top-ByT2Mo77.cjs} +13 -339
- package/dist/data-list-top-ByT2Mo77.cjs.map +1 -0
- package/dist/{data-list-DdCZZctL.js → data-list-top-DSr_ocKA.js} +5 -332
- package/dist/data-list-top-DSr_ocKA.js.map +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +0 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +0 -3
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -3
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +2 -3
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +9 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +9 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +0 -3
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +0 -3
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +2 -0
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.es.js +2 -0
- package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +14 -4
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +13 -3
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -4
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -4
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js +12 -4
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js +12 -4
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -3
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/{logs-data-list-DBJINzIL.js → logs-data-list-CoER2Hst.js} +3 -2
- package/dist/{logs-data-list-DBJINzIL.js.map → logs-data-list-CoER2Hst.js.map} +1 -1
- package/dist/{logs-data-list-IWZgMCKG.cjs → logs-data-list-DRR6cMgl.cjs} +22 -21
- package/dist/{logs-data-list-IWZgMCKG.cjs.map → logs-data-list-DRR6cMgl.cjs.map} +1 -1
- package/dist/{metrics-stacked-bar-chart-BijHfnOd.cjs → metrics-stacked-bar-chart-BofJ8NDc.cjs} +45 -3
- package/dist/metrics-stacked-bar-chart-BofJ8NDc.cjs.map +1 -0
- package/dist/{metrics-stacked-bar-chart-CdcENBLD.js → metrics-stacked-bar-chart-DcxHznKw.js} +47 -5
- package/dist/metrics-stacked-bar-chart-DcxHznKw.js.map +1 -0
- package/dist/src/domains/traces/components/traces-list-view.d.ts +4 -0
- package/dist/src/domains/traces/trace-list-columns.d.ts +1 -1
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +7 -0
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +2 -1
- package/dist/src/ds/components/Meter/index.d.ts +2 -0
- package/dist/src/ds/components/Meter/meter-context.d.ts +6 -0
- package/dist/src/ds/components/Meter/meter-key-row.d.ts +6 -0
- package/dist/src/ds/components/Meter/meter-root.d.ts +14 -0
- package/dist/src/ds/components/Meter/meter-segment.d.ts +5 -0
- package/dist/src/ds/components/Meter/meter-source.d.ts +6 -0
- package/dist/src/ds/components/Meter/meter.d.ts +6 -0
- package/dist/src/ds/components/MetricsStackedBarChart/metrics-stacked-bar-chart.d.ts +1 -0
- package/dist/src/ds/components/Table/Table.d.ts +4 -2
- package/dist/style.css +117 -1
- package/dist/{traces-data-list-CHREkLv0.cjs → traces-data-list-BgjeB-BF.cjs} +25 -17
- package/dist/traces-data-list-BgjeB-BF.cjs.map +1 -0
- package/dist/{traces-data-list-BgloVIVi.js → traces-data-list-Zoai0OW_.js} +10 -2
- package/dist/traces-data-list-Zoai0OW_.js.map +1 -0
- package/package.json +11 -11
- package/dist/data-list-DdCZZctL.js.map +0 -1
- package/dist/data-list-ecHsw-zr.cjs.map +0 -1
- package/dist/metrics-stacked-bar-chart-BijHfnOd.cjs.map +0 -1
- package/dist/metrics-stacked-bar-chart-CdcENBLD.js.map +0 -1
- package/dist/traces-data-list-BgloVIVi.js.map +0 -1
- package/dist/traces-data-list-CHREkLv0.cjs.map +0 -1
|
@@ -2,24 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const dataList = require('../data-list-
|
|
6
|
-
const dataListSkeleton = require('../data-list-skeleton-
|
|
5
|
+
const dataList = require('../data-list-DUfXIhyC.cjs');
|
|
6
|
+
const dataListSkeleton = require('../data-list-skeleton-BqC9Gggi.cjs');
|
|
7
7
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
const dataListSpacer = require('../data-list-spacer-tQaBaum4.cjs');
|
|
9
|
+
const dataListTop = require('../data-list-top-ByT2Mo77.cjs');
|
|
8
10
|
const Txt = require('../Txt-CIS2G5Jx.cjs');
|
|
9
11
|
const utils_dateFormat = require('../utils/date-format.cjs.js');
|
|
10
|
-
const tracesDataList = require('../traces-data-list-
|
|
12
|
+
const tracesDataList = require('../traces-data-list-BgjeB-BF.cjs');
|
|
11
13
|
const useDataListKeyboard = require('../use-data-list-keyboard-DF3tLe10.cjs');
|
|
12
14
|
const layout_tabbedContainer = require('../layout/tabbed-container.cjs.js');
|
|
13
15
|
|
|
14
16
|
function ScoresDataListDateCell({ timestamp }) {
|
|
15
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { className: "text-muted-foreground", children: utils_dateFormat.formatDate(timestamp, "date") ?? "-" });
|
|
16
18
|
}
|
|
17
19
|
function ScoresDataListTimeCell({ timestamp }) {
|
|
18
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { className: "text-body-sm text-muted-foreground", children: utils_dateFormat.formatDate(timestamp, "time") ?? "-" });
|
|
19
21
|
}
|
|
20
22
|
function ScoresDataListInputCell({ input }) {
|
|
21
23
|
const display = input != null ? JSON.stringify(input) : "-";
|
|
22
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
23
25
|
Txt.Txt,
|
|
24
26
|
{
|
|
25
27
|
as: "span",
|
|
@@ -34,11 +36,11 @@ function ScoresDataListInputCell({ input }) {
|
|
|
34
36
|
}
|
|
35
37
|
function ScoresDataListEntityCell({ entityId }) {
|
|
36
38
|
const display = entityId || "-";
|
|
37
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
39
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "body-sm", className: "block max-w-full min-w-0 truncate", title: display, children: display }) });
|
|
38
40
|
}
|
|
39
41
|
function ScoresDataListScoreCell({ score }) {
|
|
40
42
|
const display = score == null ? "-" : typeof score === "object" ? JSON.stringify(score) : String(score);
|
|
41
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
43
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
44
|
Txt.Txt,
|
|
43
45
|
{
|
|
44
46
|
as: "span",
|
|
@@ -53,15 +55,15 @@ function ScoresDataListScoreCell({ score }) {
|
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
function ScoresDataListRoot(props) {
|
|
56
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
58
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListRoot, { ...props });
|
|
57
59
|
}
|
|
58
60
|
const ScoresDataList = Object.assign(ScoresDataListRoot, {
|
|
59
|
-
Top:
|
|
60
|
-
TopCell:
|
|
61
|
-
SortableTopCell:
|
|
62
|
-
RowButton:
|
|
63
|
-
NoMatch:
|
|
64
|
-
NextPageLoading:
|
|
61
|
+
Top: dataListTop.DataListTop,
|
|
62
|
+
TopCell: dataListTop.DataListTopCell,
|
|
63
|
+
SortableTopCell: dataListSpacer.DataListSortableTopCell,
|
|
64
|
+
RowButton: dataListSpacer.DataListRowButton,
|
|
65
|
+
NoMatch: dataListSpacer.DataListNoMatch,
|
|
66
|
+
NextPageLoading: dataListSpacer.DataListNextPageLoading,
|
|
65
67
|
DateCell: ScoresDataListDateCell,
|
|
66
68
|
TimeCell: ScoresDataListTimeCell,
|
|
67
69
|
InputCell: ScoresDataListInputCell,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataList.cjs.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":["jsx","DataListCell","Txt","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListRowButton","DataListNoMatch","DataListNextPageLoading"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataList.cjs.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":["jsx","DataListCell","Txt","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListRowButton","DataListNoMatch","DataListNextPageLoading"],"mappings":";;;;;;;;;;;;;;;AAgBO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,uBAAOA,cAAA,CAACC,4BAAa,SAAA,EAAU,uBAAA,EAAyB,sCAAW,SAAA,EAAW,MAAM,KAAK,GAAA,EAAI,CAAA;AAC/F;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,uBACED,cAAA,CAACC,4BAAa,SAAA,EAAU,oCAAA,EAAsC,sCAAW,SAAA,EAAW,MAAM,KAAK,GAAA,EAAI,CAAA;AAEvG;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,sCACGA,wBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA;AAAA,IAACE,OAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAK,OAAA;AAAA,MACL,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAU,mCAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MAEN,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACEF,cAAA,CAACC,wBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,OAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAAA,EAAoC,KAAA,EAAO,OAAA,EACnF,mBACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,sCACGD,wBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA;AAAA,IAACE,OAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAK,OAAA;AAAA,MACL,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAU,mCAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MAEN,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;;ACrFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAOF,cAAA,CAACG,wBAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAKC,uBAAA;AAAA,EACL,OAAA,EAASC,2BAAA;AAAA,EACT,eAAA,EAAiBC,sCAAA;AAAA,EACjB,SAAA,EAAWC,gCAAA;AAAA,EACX,OAAA,EAASC,8BAAA;AAAA,EACT,eAAA,EAAiBC,sCAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;;;;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export { D as DataListSkeleton, a as DataListSkeletonRows } from '../data-list-skeleton-CGKlcoiI.js';
|
|
1
|
+
export { D as DataList } from '../data-list-DXQY_iQW.js';
|
|
2
|
+
export { D as DataListSkeleton, a as DataListSkeletonRows } from '../data-list-skeleton-B_SXAeE0.js';
|
|
4
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
import { D as DataListNextPageLoading, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from '../data-list-spacer-ByA4ce2a.js';
|
|
5
|
+
import { c as DataListCell, b as DataListTopCell, a as DataListTop, D as DataListRoot } from '../data-list-top-DSr_ocKA.js';
|
|
5
6
|
import { T as Txt } from '../Txt-BtIGLRk1.js';
|
|
6
7
|
import { formatDate } from '../utils/date-format.es.js';
|
|
7
|
-
export { T as TracesDataList } from '../traces-data-list-
|
|
8
|
+
export { T as TracesDataList } from '../traces-data-list-Zoai0OW_.js';
|
|
8
9
|
export { u as useDataListKeyboard } from '../use-data-list-keyboard-DFQr4t38.js';
|
|
9
10
|
export { TabbedContainer } from '../layout/tabbed-container.es.js';
|
|
10
11
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataList.es.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataList.es.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":[],"mappings":";;;;;;;;;;;AAgBO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,uBAAO,GAAA,CAAC,gBAAa,SAAA,EAAU,uBAAA,EAAyB,qBAAW,SAAA,EAAW,MAAM,KAAK,GAAA,EAAI,CAAA;AAC/F;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,uBACE,GAAA,CAAC,gBAAa,SAAA,EAAU,oCAAA,EAAsC,qBAAW,SAAA,EAAW,MAAM,KAAK,GAAA,EAAI,CAAA;AAEvG;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,2BACG,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAK,OAAA;AAAA,MACL,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAU,mCAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MAEN,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAAA,EAAoC,KAAA,EAAO,OAAA,EACnF,mBACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,2BACG,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAK,OAAA;AAAA,MACL,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAU,mCAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MAEN,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;;ACrFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAK,WAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;"}
|
|
@@ -10,7 +10,7 @@ const Button = require('../Button-DH1aTzbs.cjs');
|
|
|
10
10
|
const Notice = require('../Notice-DYgIy4FO.cjs');
|
|
11
11
|
const envFile = require('../env-file-BU2hStkm.cjs');
|
|
12
12
|
const Txt = require('../Txt-CIS2G5Jx.cjs');
|
|
13
|
-
const dataList = require('../data-list-
|
|
13
|
+
const dataList = require('../data-list-DUfXIhyC.cjs');
|
|
14
14
|
const hooks_useCopyToClipboard = require('../hooks/use-copy-to-clipboard.cjs.js');
|
|
15
15
|
const field = require('../field-BCU5ZtWV.cjs');
|
|
16
16
|
require('../field-control-aria-WzMGs0A4.cjs');
|
|
@@ -6,7 +6,7 @@ import { B as Button } from '../Button-EGoajBQY.js';
|
|
|
6
6
|
import { N as Notice } from '../Notice-BioYTS4b.js';
|
|
7
7
|
import { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '../env-file-BITYowCx.js';
|
|
8
8
|
import { T as Txt } from '../Txt-BtIGLRk1.js';
|
|
9
|
-
import {
|
|
9
|
+
import { D as DataList } from '../data-list-DXQY_iQW.js';
|
|
10
10
|
import { useCopyToClipboard } from '../hooks/use-copy-to-clipboard.es.js';
|
|
11
11
|
import { F as Field, e as FieldLabel, c as FieldError } from '../field-Dl1zeXTv.js';
|
|
12
12
|
import '../field-control-aria-DB6y41tQ.js';
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const logsDataList = require('../logs-data-list-
|
|
6
|
-
require('../data-list-
|
|
7
|
-
const dataListSkeleton = require('../data-list-skeleton-DGMTqeNP.cjs');
|
|
8
|
-
require('react');
|
|
9
|
-
require('../keyboard/keyboard-shortcuts-context.cjs.js');
|
|
5
|
+
const logsDataList = require('../logs-data-list-DRR6cMgl.cjs');
|
|
6
|
+
const dataListSkeleton = require('../data-list-skeleton-BqC9Gggi.cjs');
|
|
10
7
|
|
|
11
8
|
|
|
12
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { L as LogsDataList } from '../logs-data-list-
|
|
2
|
-
|
|
3
|
-
export { D as LogsDataListSkeleton } from '../data-list-skeleton-CGKlcoiI.js';
|
|
4
|
-
import 'react';
|
|
5
|
-
import '../keyboard/keyboard-shortcuts-context.es.js';
|
|
1
|
+
export { L as LogsDataList } from '../logs-data-list-CoER2Hst.js';
|
|
2
|
+
export { D as LogsDataListSkeleton } from '../data-list-skeleton-B_SXAeE0.js';
|
|
6
3
|
//# sourceMappingURL=LogsDataList.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
const React = require('react');
|
|
7
|
+
const utils_cost = require('../utils/cost.cjs.js');
|
|
8
|
+
const Txt = require('../Txt-CIS2G5Jx.cjs');
|
|
9
|
+
const utils_cn = require('../cn-DlOJCxrS.cjs');
|
|
10
|
+
const tooltip = require('../tooltip-BppwIf6Y.cjs');
|
|
11
|
+
const primitives_transitions = require('../primitives/transitions.cjs.js');
|
|
12
|
+
|
|
13
|
+
const MeterPartContext = React.createContext({
|
|
14
|
+
part: "bar",
|
|
15
|
+
format: utils_cost.formatFullNumber
|
|
16
|
+
});
|
|
17
|
+
const sourceColorClassName = [
|
|
18
|
+
"[&>:nth-child(5n+1)]:[--meter-source:var(--chart-share-1)]",
|
|
19
|
+
"[&>:nth-child(5n+2)]:[--meter-source:var(--chart-share-2)]",
|
|
20
|
+
"[&>:nth-child(5n+3)]:[--meter-source:var(--chart-share-3)]",
|
|
21
|
+
"[&>:nth-child(5n+4)]:[--meter-source:var(--chart-share-4)]",
|
|
22
|
+
"[&>:nth-child(5n)]:[--meter-source:var(--chart-share-5)]"
|
|
23
|
+
].join(" ");
|
|
24
|
+
|
|
25
|
+
function MeterKeyRow({ swatch, label, amount }) {
|
|
26
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "meter-key-row", className: "flex items-center gap-2", children: [
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: utils_cn.cn("size-2 rounded-xs", swatch) }),
|
|
28
|
+
/* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "caption", tone: "muted", className: "max-w-48 min-w-0 flex-1 truncate", children: label }),
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pl-4 text-foreground tabular-nums", children: amount })
|
|
30
|
+
] });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function MeterSegment({ slot, grow, className }) {
|
|
34
|
+
const style = { "--meter-share": grow };
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36
|
+
"span",
|
|
37
|
+
{
|
|
38
|
+
"data-slot": slot,
|
|
39
|
+
className: utils_cn.cn("min-w-1 grow-(--meter-share) basis-0 rounded-full", className),
|
|
40
|
+
style
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function readingOf(value, max) {
|
|
46
|
+
const used = Math.max(0, value);
|
|
47
|
+
const allowance = Math.max(0, max);
|
|
48
|
+
const over = Math.max(0, used - allowance);
|
|
49
|
+
const within = used - over;
|
|
50
|
+
return { used, allowance, over, within, rest: allowance - within };
|
|
51
|
+
}
|
|
52
|
+
function overAllowanceText({ used, allowance, over }, format) {
|
|
53
|
+
if (over <= 0) return void 0;
|
|
54
|
+
return `${format(used)} of ${format(allowance)}, ${format(over)} over`;
|
|
55
|
+
}
|
|
56
|
+
function MeterRoot({ value, max, children, format = utils_cost.formatFullNumber, className, ...props }) {
|
|
57
|
+
const reading = readingOf(value, max);
|
|
58
|
+
const meterProps = {
|
|
59
|
+
role: "meter",
|
|
60
|
+
"aria-valuemin": 0,
|
|
61
|
+
"aria-valuemax": reading.allowance,
|
|
62
|
+
"aria-valuenow": reading.within,
|
|
63
|
+
"aria-valuetext": overAllowanceText(reading, format),
|
|
64
|
+
"data-over": reading.over > 0 || void 0,
|
|
65
|
+
className: utils_cn.cn("group/meter relative flex h-1 w-full min-w-0", className),
|
|
66
|
+
...props
|
|
67
|
+
};
|
|
68
|
+
if (children === void 0) {
|
|
69
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...meterProps, children: /* @__PURE__ */ jsxRuntime.jsx(AllowanceBar, { reading }) });
|
|
70
|
+
}
|
|
71
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SourcesMeter, { reading, format, meterProps, children });
|
|
72
|
+
}
|
|
73
|
+
function SourcesMeter({
|
|
74
|
+
reading,
|
|
75
|
+
format,
|
|
76
|
+
meterProps,
|
|
77
|
+
children
|
|
78
|
+
}) {
|
|
79
|
+
const keyId = React.useId();
|
|
80
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
81
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
82
|
+
tooltip.TooltipTrigger,
|
|
83
|
+
{
|
|
84
|
+
delay: 0,
|
|
85
|
+
render: /* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
+
"span",
|
|
87
|
+
{
|
|
88
|
+
...meterProps,
|
|
89
|
+
tabIndex: 0,
|
|
90
|
+
"aria-describedby": keyId,
|
|
91
|
+
className: utils_cn.cn(
|
|
92
|
+
meterProps.className,
|
|
93
|
+
"rounded-full before:absolute before:inset-x-0 before:-inset-y-2",
|
|
94
|
+
primitives_transitions.focusRing
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
),
|
|
98
|
+
children: [
|
|
99
|
+
/* @__PURE__ */ jsxRuntime.jsx(AllowanceBar, { reading, className: utils_cn.cn(fadeOut, primitives_transitions.transitions.opacity, "motion-reduce:transition-none") }),
|
|
100
|
+
/* @__PURE__ */ jsxRuntime.jsx(SourceBar, { reading, format, children })
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
),
|
|
104
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { keepMounted: true, id: keyId, children: /* @__PURE__ */ jsxRuntime.jsx(MeterKey, { reading, format, children }) })
|
|
105
|
+
] });
|
|
106
|
+
}
|
|
107
|
+
const fadeOut = "group-hover/meter:opacity-0 group-focus-visible/meter:opacity-0";
|
|
108
|
+
const fadeIn = "opacity-0 group-hover/meter:opacity-100 group-focus-visible/meter:opacity-100";
|
|
109
|
+
function AllowanceBar({ reading, className }) {
|
|
110
|
+
const { used, over, within, rest } = reading;
|
|
111
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { "data-slot": "meter-bar", className: utils_cn.cn("flex size-full gap-0.5", className), children: [
|
|
112
|
+
within > 0 && /* @__PURE__ */ jsxRuntime.jsx(MeterSegment, { slot: "meter-used", grow: within, className: "bg-foreground" }),
|
|
113
|
+
over > 0 && /* @__PURE__ */ jsxRuntime.jsx(MeterSegment, { slot: "meter-over", grow: over, className: "bg-destructive-indicator" }),
|
|
114
|
+
(rest > 0 || used === 0) && /* @__PURE__ */ jsxRuntime.jsx(MeterSegment, { slot: "meter-rest", grow: rest || 1, className: "bg-fill-strong" })
|
|
115
|
+
] });
|
|
116
|
+
}
|
|
117
|
+
function SourceBar({
|
|
118
|
+
reading,
|
|
119
|
+
format,
|
|
120
|
+
children
|
|
121
|
+
}) {
|
|
122
|
+
const { used, over, rest } = reading;
|
|
123
|
+
const overShare = used > 0 ? over / used : 0;
|
|
124
|
+
const overStyle = { "--meter-over": `${overShare * 100}%` };
|
|
125
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
126
|
+
"span",
|
|
127
|
+
{
|
|
128
|
+
"aria-hidden": true,
|
|
129
|
+
"data-slot": "meter-sources",
|
|
130
|
+
style: overStyle,
|
|
131
|
+
className: utils_cn.cn(
|
|
132
|
+
"absolute inset-0 flex gap-0.5",
|
|
133
|
+
fadeIn,
|
|
134
|
+
primitives_transitions.transitions.opacity,
|
|
135
|
+
"motion-reduce:transition-none",
|
|
136
|
+
sourceColorClassName
|
|
137
|
+
),
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ jsxRuntime.jsx(MeterPartContext, { value: { part: "bar", format }, children }),
|
|
140
|
+
rest > 0 && /* @__PURE__ */ jsxRuntime.jsx(MeterSegment, { slot: "meter-rest", grow: rest, className: "bg-fill-strong" }),
|
|
141
|
+
over > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inset-y-0 right-0 w-(--meter-over) rounded-r-full bg-destructive-indicator" }),
|
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -inset-y-1 right-(--meter-over) w-0.5 rounded-full bg-foreground" })
|
|
144
|
+
] })
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
function MeterKey({
|
|
150
|
+
reading,
|
|
151
|
+
format,
|
|
152
|
+
children
|
|
153
|
+
}) {
|
|
154
|
+
const { over, rest } = reading;
|
|
155
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "meter-key", className: utils_cn.cn("flex min-w-40 flex-col gap-1", sourceColorClassName), children: [
|
|
156
|
+
/* @__PURE__ */ jsxRuntime.jsx(MeterPartContext, { value: { part: "key", format }, children }),
|
|
157
|
+
rest > 0 && /* @__PURE__ */ jsxRuntime.jsx(MeterKeyRow, { swatch: "bg-fill-strong", label: "Remaining", amount: format(rest) }),
|
|
158
|
+
over > 0 && /* @__PURE__ */ jsxRuntime.jsx(MeterKeyRow, { swatch: "bg-destructive-indicator", label: "Over allowance", amount: format(over) })
|
|
159
|
+
] });
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function MeterSource({ label, value }) {
|
|
163
|
+
const { part, format } = React.use(MeterPartContext);
|
|
164
|
+
if (part === "key") return /* @__PURE__ */ jsxRuntime.jsx(MeterKeyRow, { swatch: "bg-(--meter-source)", label, amount: format(value) });
|
|
165
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MeterSegment, { slot: "meter-source", grow: Math.max(0, value), className: "bg-(--meter-source)" });
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const Meter = Object.assign(MeterRoot, { Source: MeterSource });
|
|
169
|
+
|
|
170
|
+
exports.Meter = Meter;
|
|
171
|
+
exports.MeterSource = MeterSource;
|
|
172
|
+
//# sourceMappingURL=Meter.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meter.cjs.js","sources":["../../src/ds/components/Meter/meter-context.ts","../../src/ds/components/Meter/meter-key-row.tsx","../../src/ds/components/Meter/meter-segment.tsx","../../src/ds/components/Meter/meter-root.tsx","../../src/ds/components/Meter/meter-source.tsx","../../src/ds/components/Meter/meter.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport { formatFullNumber } from '@/lib/cost';\n\nexport type MeterPart = 'bar' | 'key';\n\nexport const MeterPartContext = createContext<{ part: MeterPart; format: (value: number) => string }>({\n part: 'bar',\n format: formatFullNumber,\n});\n\nexport const sourceColorClassName = [\n '[&>:nth-child(5n+1)]:[--meter-source:var(--chart-share-1)]',\n '[&>:nth-child(5n+2)]:[--meter-source:var(--chart-share-2)]',\n '[&>:nth-child(5n+3)]:[--meter-source:var(--chart-share-3)]',\n '[&>:nth-child(5n+4)]:[--meter-source:var(--chart-share-4)]',\n '[&>:nth-child(5n)]:[--meter-source:var(--chart-share-5)]',\n].join(' ');\n","import type { ReactNode } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MeterKeyRow({ swatch, label, amount }: { swatch: string; label: ReactNode; amount: string }) {\n return (\n <div data-slot=\"meter-key-row\" className=\"flex items-center gap-2\">\n <span aria-hidden className={cn('size-2 rounded-xs', swatch)} />\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"max-w-48 min-w-0 flex-1 truncate\">\n {label}\n </Txt>\n <span className=\"ml-auto pl-4 text-foreground tabular-nums\">{amount}</span>\n </div>\n );\n}\n","import type { CSSProperties } from 'react';\nimport { cn } from '@/lib/utils';\n\ninterface SegmentStyle extends CSSProperties {\n '--meter-share': number;\n}\n\nexport function MeterSegment({ slot, grow, className }: { slot: string; grow: number; className: string }) {\n const style: SegmentStyle = { '--meter-share': grow };\n return (\n <span\n data-slot={slot}\n className={cn('min-w-1 grow-(--meter-share) basis-0 rounded-full', className)}\n style={style}\n />\n );\n}\n","import { useId } from 'react';\nimport type { CSSProperties, ComponentProps, ReactNode } from 'react';\nimport { MeterPartContext, sourceColorClassName } from './meter-context';\nimport { MeterKeyRow } from './meter-key-row';\nimport { MeterSegment } from './meter-segment';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip/tooltip';\nimport { focusRing, transitions } from '@/ds/primitives/transitions';\nimport { formatFullNumber } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\n\nexport type MeterProps = Omit<ComponentProps<'span'>, 'children'> & {\n value: number;\n max: number;\n children?: ReactNode;\n format?: (value: number) => string;\n} & ({ 'aria-label': string; 'aria-labelledby'?: never } | { 'aria-label'?: never; 'aria-labelledby': string });\n\ntype Reading = { used: number; allowance: number; over: number; within: number; rest: number };\n\nfunction readingOf(value: number, max: number): Reading {\n const used = Math.max(0, value);\n const allowance = Math.max(0, max);\n const over = Math.max(0, used - allowance);\n const within = used - over;\n return { used, allowance, over, within, rest: allowance - within };\n}\n\nfunction overAllowanceText({ used, allowance, over }: Reading, format: (value: number) => string) {\n if (over <= 0) return undefined;\n return `${format(used)} of ${format(allowance)}, ${format(over)} over`;\n}\n\nexport function MeterRoot({ value, max, children, format = formatFullNumber, className, ...props }: MeterProps) {\n const reading = readingOf(value, max);\n const meterProps = {\n role: 'meter',\n 'aria-valuemin': 0,\n 'aria-valuemax': reading.allowance,\n 'aria-valuenow': reading.within,\n 'aria-valuetext': overAllowanceText(reading, format),\n 'data-over': reading.over > 0 || undefined,\n className: cn('group/meter relative flex h-1 w-full min-w-0', className),\n ...props,\n };\n\n if (children === undefined) {\n return (\n <span {...meterProps}>\n <AllowanceBar reading={reading} />\n </span>\n );\n }\n\n return (\n <SourcesMeter reading={reading} format={format} meterProps={meterProps}>\n {children}\n </SourcesMeter>\n );\n}\n\nfunction SourcesMeter({\n reading,\n format,\n meterProps,\n children,\n}: {\n reading: Reading;\n format: (value: number) => string;\n meterProps: ComponentProps<'span'>;\n children: ReactNode;\n}) {\n const keyId = useId();\n return (\n <Tooltip>\n <TooltipTrigger\n delay={0}\n render={\n <span\n {...meterProps}\n tabIndex={0}\n aria-describedby={keyId}\n className={cn(\n meterProps.className,\n 'rounded-full before:absolute before:inset-x-0 before:-inset-y-2',\n focusRing,\n )}\n />\n }\n >\n <AllowanceBar reading={reading} className={cn(fadeOut, transitions.opacity, 'motion-reduce:transition-none')} />\n <SourceBar reading={reading} format={format}>\n {children}\n </SourceBar>\n </TooltipTrigger>\n <TooltipContent keepMounted id={keyId}>\n <MeterKey reading={reading} format={format}>\n {children}\n </MeterKey>\n </TooltipContent>\n </Tooltip>\n );\n}\n\nconst fadeOut = 'group-hover/meter:opacity-0 group-focus-visible/meter:opacity-0';\nconst fadeIn = 'opacity-0 group-hover/meter:opacity-100 group-focus-visible/meter:opacity-100';\n\nfunction AllowanceBar({ reading, className }: { reading: Reading; className?: string }) {\n const { used, over, within, rest } = reading;\n return (\n <span data-slot=\"meter-bar\" className={cn('flex size-full gap-0.5', className)}>\n {within > 0 && <MeterSegment slot=\"meter-used\" grow={within} className=\"bg-foreground\" />}\n {over > 0 && <MeterSegment slot=\"meter-over\" grow={over} className=\"bg-destructive-indicator\" />}\n {(rest > 0 || used === 0) && <MeterSegment slot=\"meter-rest\" grow={rest || 1} className=\"bg-fill-strong\" />}\n </span>\n );\n}\n\ninterface OverStyle extends CSSProperties {\n '--meter-over': string;\n}\n\nfunction SourceBar({\n reading,\n format,\n children,\n}: {\n reading: Reading;\n format: (value: number) => string;\n children: ReactNode;\n}) {\n const { used, over, rest } = reading;\n const overShare = used > 0 ? over / used : 0;\n const overStyle: OverStyle = { '--meter-over': `${overShare * 100}%` };\n return (\n <span\n aria-hidden\n data-slot=\"meter-sources\"\n style={overStyle}\n className={cn(\n 'absolute inset-0 flex gap-0.5',\n fadeIn,\n transitions.opacity,\n 'motion-reduce:transition-none',\n sourceColorClassName,\n )}\n >\n <MeterPartContext value={{ part: 'bar', format }}>{children}</MeterPartContext>\n {rest > 0 && <MeterSegment slot=\"meter-rest\" grow={rest} className=\"bg-fill-strong\" />}\n {over > 0 && (\n <>\n <span className=\"absolute inset-y-0 right-0 w-(--meter-over) rounded-r-full bg-destructive-indicator\" />\n <span className=\"absolute -inset-y-1 right-(--meter-over) w-0.5 rounded-full bg-foreground\" />\n </>\n )}\n </span>\n );\n}\n\nfunction MeterKey({\n reading,\n format,\n children,\n}: {\n reading: Reading;\n format: (value: number) => string;\n children: ReactNode;\n}) {\n const { over, rest } = reading;\n return (\n <div data-slot=\"meter-key\" className={cn('flex min-w-40 flex-col gap-1', sourceColorClassName)}>\n <MeterPartContext value={{ part: 'key', format }}>{children}</MeterPartContext>\n {rest > 0 && <MeterKeyRow swatch=\"bg-fill-strong\" label=\"Remaining\" amount={format(rest)} />}\n {over > 0 && <MeterKeyRow swatch=\"bg-destructive-indicator\" label=\"Over allowance\" amount={format(over)} />}\n </div>\n );\n}\n","import { use } from 'react';\nimport type { ReactNode } from 'react';\nimport { MeterPartContext } from './meter-context';\nimport { MeterKeyRow } from './meter-key-row';\nimport { MeterSegment } from './meter-segment';\n\nexport type MeterSourceProps = {\n label: ReactNode;\n value: number;\n};\n\nexport function MeterSource({ label, value }: MeterSourceProps) {\n const { part, format } = use(MeterPartContext);\n if (part === 'key') return <MeterKeyRow swatch=\"bg-(--meter-source)\" label={label} amount={format(value)} />;\n return <MeterSegment slot=\"meter-source\" grow={Math.max(0, value)} className=\"bg-(--meter-source)\" />;\n}\n","import { MeterRoot } from './meter-root';\nimport { MeterSource } from './meter-source';\n\nexport type { MeterProps } from './meter-root';\n\nexport const Meter = Object.assign(MeterRoot, { Source: MeterSource });\n"],"names":["createContext","formatFullNumber","jsxs","jsx","cn","Txt","useId","Tooltip","TooltipTrigger","focusRing","transitions","TooltipContent","Fragment","use"],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useId, use } from 'react';
|
|
3
|
+
import { formatFullNumber } from '../utils/cost.es.js';
|
|
4
|
+
import { T as Txt } from '../Txt-BtIGLRk1.js';
|
|
5
|
+
import { c as cn } from '../cn-CQUhN5Jx.js';
|
|
6
|
+
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-DrsXZDAj.js';
|
|
7
|
+
import { transitions, focusRing } from '../primitives/transitions.es.js';
|
|
8
|
+
|
|
9
|
+
const MeterPartContext = createContext({
|
|
10
|
+
part: "bar",
|
|
11
|
+
format: formatFullNumber
|
|
12
|
+
});
|
|
13
|
+
const sourceColorClassName = [
|
|
14
|
+
"[&>:nth-child(5n+1)]:[--meter-source:var(--chart-share-1)]",
|
|
15
|
+
"[&>:nth-child(5n+2)]:[--meter-source:var(--chart-share-2)]",
|
|
16
|
+
"[&>:nth-child(5n+3)]:[--meter-source:var(--chart-share-3)]",
|
|
17
|
+
"[&>:nth-child(5n+4)]:[--meter-source:var(--chart-share-4)]",
|
|
18
|
+
"[&>:nth-child(5n)]:[--meter-source:var(--chart-share-5)]"
|
|
19
|
+
].join(" ");
|
|
20
|
+
|
|
21
|
+
function MeterKeyRow({ swatch, label, amount }) {
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "meter-key-row", className: "flex items-center gap-2", children: [
|
|
23
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cn("size-2 rounded-xs", swatch) }),
|
|
24
|
+
/* @__PURE__ */ jsx(Txt, { as: "span", variant: "caption", tone: "muted", className: "max-w-48 min-w-0 flex-1 truncate", children: label }),
|
|
25
|
+
/* @__PURE__ */ jsx("span", { className: "ml-auto pl-4 text-foreground tabular-nums", children: amount })
|
|
26
|
+
] });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function MeterSegment({ slot, grow, className }) {
|
|
30
|
+
const style = { "--meter-share": grow };
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
"data-slot": slot,
|
|
35
|
+
className: cn("min-w-1 grow-(--meter-share) basis-0 rounded-full", className),
|
|
36
|
+
style
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function readingOf(value, max) {
|
|
42
|
+
const used = Math.max(0, value);
|
|
43
|
+
const allowance = Math.max(0, max);
|
|
44
|
+
const over = Math.max(0, used - allowance);
|
|
45
|
+
const within = used - over;
|
|
46
|
+
return { used, allowance, over, within, rest: allowance - within };
|
|
47
|
+
}
|
|
48
|
+
function overAllowanceText({ used, allowance, over }, format) {
|
|
49
|
+
if (over <= 0) return void 0;
|
|
50
|
+
return `${format(used)} of ${format(allowance)}, ${format(over)} over`;
|
|
51
|
+
}
|
|
52
|
+
function MeterRoot({ value, max, children, format = formatFullNumber, className, ...props }) {
|
|
53
|
+
const reading = readingOf(value, max);
|
|
54
|
+
const meterProps = {
|
|
55
|
+
role: "meter",
|
|
56
|
+
"aria-valuemin": 0,
|
|
57
|
+
"aria-valuemax": reading.allowance,
|
|
58
|
+
"aria-valuenow": reading.within,
|
|
59
|
+
"aria-valuetext": overAllowanceText(reading, format),
|
|
60
|
+
"data-over": reading.over > 0 || void 0,
|
|
61
|
+
className: cn("group/meter relative flex h-1 w-full min-w-0", className),
|
|
62
|
+
...props
|
|
63
|
+
};
|
|
64
|
+
if (children === void 0) {
|
|
65
|
+
return /* @__PURE__ */ jsx("span", { ...meterProps, children: /* @__PURE__ */ jsx(AllowanceBar, { reading }) });
|
|
66
|
+
}
|
|
67
|
+
return /* @__PURE__ */ jsx(SourcesMeter, { reading, format, meterProps, children });
|
|
68
|
+
}
|
|
69
|
+
function SourcesMeter({
|
|
70
|
+
reading,
|
|
71
|
+
format,
|
|
72
|
+
meterProps,
|
|
73
|
+
children
|
|
74
|
+
}) {
|
|
75
|
+
const keyId = useId();
|
|
76
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
77
|
+
/* @__PURE__ */ jsxs(
|
|
78
|
+
TooltipTrigger,
|
|
79
|
+
{
|
|
80
|
+
delay: 0,
|
|
81
|
+
render: /* @__PURE__ */ jsx(
|
|
82
|
+
"span",
|
|
83
|
+
{
|
|
84
|
+
...meterProps,
|
|
85
|
+
tabIndex: 0,
|
|
86
|
+
"aria-describedby": keyId,
|
|
87
|
+
className: cn(
|
|
88
|
+
meterProps.className,
|
|
89
|
+
"rounded-full before:absolute before:inset-x-0 before:-inset-y-2",
|
|
90
|
+
focusRing
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
children: [
|
|
95
|
+
/* @__PURE__ */ jsx(AllowanceBar, { reading, className: cn(fadeOut, transitions.opacity, "motion-reduce:transition-none") }),
|
|
96
|
+
/* @__PURE__ */ jsx(SourceBar, { reading, format, children })
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
),
|
|
100
|
+
/* @__PURE__ */ jsx(TooltipContent, { keepMounted: true, id: keyId, children: /* @__PURE__ */ jsx(MeterKey, { reading, format, children }) })
|
|
101
|
+
] });
|
|
102
|
+
}
|
|
103
|
+
const fadeOut = "group-hover/meter:opacity-0 group-focus-visible/meter:opacity-0";
|
|
104
|
+
const fadeIn = "opacity-0 group-hover/meter:opacity-100 group-focus-visible/meter:opacity-100";
|
|
105
|
+
function AllowanceBar({ reading, className }) {
|
|
106
|
+
const { used, over, within, rest } = reading;
|
|
107
|
+
return /* @__PURE__ */ jsxs("span", { "data-slot": "meter-bar", className: cn("flex size-full gap-0.5", className), children: [
|
|
108
|
+
within > 0 && /* @__PURE__ */ jsx(MeterSegment, { slot: "meter-used", grow: within, className: "bg-foreground" }),
|
|
109
|
+
over > 0 && /* @__PURE__ */ jsx(MeterSegment, { slot: "meter-over", grow: over, className: "bg-destructive-indicator" }),
|
|
110
|
+
(rest > 0 || used === 0) && /* @__PURE__ */ jsx(MeterSegment, { slot: "meter-rest", grow: rest || 1, className: "bg-fill-strong" })
|
|
111
|
+
] });
|
|
112
|
+
}
|
|
113
|
+
function SourceBar({
|
|
114
|
+
reading,
|
|
115
|
+
format,
|
|
116
|
+
children
|
|
117
|
+
}) {
|
|
118
|
+
const { used, over, rest } = reading;
|
|
119
|
+
const overShare = used > 0 ? over / used : 0;
|
|
120
|
+
const overStyle = { "--meter-over": `${overShare * 100}%` };
|
|
121
|
+
return /* @__PURE__ */ jsxs(
|
|
122
|
+
"span",
|
|
123
|
+
{
|
|
124
|
+
"aria-hidden": true,
|
|
125
|
+
"data-slot": "meter-sources",
|
|
126
|
+
style: overStyle,
|
|
127
|
+
className: cn(
|
|
128
|
+
"absolute inset-0 flex gap-0.5",
|
|
129
|
+
fadeIn,
|
|
130
|
+
transitions.opacity,
|
|
131
|
+
"motion-reduce:transition-none",
|
|
132
|
+
sourceColorClassName
|
|
133
|
+
),
|
|
134
|
+
children: [
|
|
135
|
+
/* @__PURE__ */ jsx(MeterPartContext, { value: { part: "bar", format }, children }),
|
|
136
|
+
rest > 0 && /* @__PURE__ */ jsx(MeterSegment, { slot: "meter-rest", grow: rest, className: "bg-fill-strong" }),
|
|
137
|
+
over > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
138
|
+
/* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 right-0 w-(--meter-over) rounded-r-full bg-destructive-indicator" }),
|
|
139
|
+
/* @__PURE__ */ jsx("span", { className: "absolute -inset-y-1 right-(--meter-over) w-0.5 rounded-full bg-foreground" })
|
|
140
|
+
] })
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
function MeterKey({
|
|
146
|
+
reading,
|
|
147
|
+
format,
|
|
148
|
+
children
|
|
149
|
+
}) {
|
|
150
|
+
const { over, rest } = reading;
|
|
151
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "meter-key", className: cn("flex min-w-40 flex-col gap-1", sourceColorClassName), children: [
|
|
152
|
+
/* @__PURE__ */ jsx(MeterPartContext, { value: { part: "key", format }, children }),
|
|
153
|
+
rest > 0 && /* @__PURE__ */ jsx(MeterKeyRow, { swatch: "bg-fill-strong", label: "Remaining", amount: format(rest) }),
|
|
154
|
+
over > 0 && /* @__PURE__ */ jsx(MeterKeyRow, { swatch: "bg-destructive-indicator", label: "Over allowance", amount: format(over) })
|
|
155
|
+
] });
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function MeterSource({ label, value }) {
|
|
159
|
+
const { part, format } = use(MeterPartContext);
|
|
160
|
+
if (part === "key") return /* @__PURE__ */ jsx(MeterKeyRow, { swatch: "bg-(--meter-source)", label, amount: format(value) });
|
|
161
|
+
return /* @__PURE__ */ jsx(MeterSegment, { slot: "meter-source", grow: Math.max(0, value), className: "bg-(--meter-source)" });
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const Meter = Object.assign(MeterRoot, { Source: MeterSource });
|
|
165
|
+
|
|
166
|
+
export { Meter, MeterSource };
|
|
167
|
+
//# sourceMappingURL=Meter.es.js.map
|