@mastra/playground-ui 51.3.1 → 51.4.0-alpha.1
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/CHANGELOG.md +57 -0
- package/dist/Badge-DcllBqFg.cjs +125 -0
- package/dist/Badge-DcllBqFg.cjs.map +1 -0
- package/dist/Badge-uGehUtus.js +123 -0
- package/dist/Badge-uGehUtus.js.map +1 -0
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/DataList.cjs.js +4 -4
- package/dist/components/DataList.es.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/ItemList.cjs.js +59 -40
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +58 -41
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -3
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -3
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/ai/ask-user.cjs.js +3 -3
- package/dist/components/ai/ask-user.cjs.js.map +1 -1
- package/dist/components/ai/ask-user.es.js +3 -3
- package/dist/components/ai/ask-user.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +3 -3
- package/dist/components/ai/plan.cjs.js.map +1 -1
- package/dist/components/ai/plan.es.js +3 -3
- package/dist/components/ai/plan.es.js.map +1 -1
- package/dist/{data-list-BOI8fRuk.js → data-list-C3tjx5Vb.js} +2 -2
- package/dist/{data-list-BOI8fRuk.js.map → data-list-C3tjx5Vb.js.map} +1 -1
- package/dist/{data-list-CCacNODd.cjs → data-list-CRDewYj9.cjs} +2 -2
- package/dist/{data-list-CCacNODd.cjs.map → data-list-CRDewYj9.cjs.map} +1 -1
- package/dist/{data-list-skeleton-DDO_OE14.js → data-list-skeleton-BCrkk6wG.js} +2 -2
- package/dist/{data-list-skeleton-DDO_OE14.js.map → data-list-skeleton-BCrkk6wG.js.map} +1 -1
- package/dist/{data-list-skeleton-BHBSIQHN.cjs → data-list-skeleton-CONfqzH2.cjs} +2 -2
- package/dist/{data-list-skeleton-BHBSIQHN.cjs.map → data-list-skeleton-CONfqzH2.cjs.map} +1 -1
- package/dist/{data-list-top-cell-BOXO5s7I.cjs → data-list-top-cell-DAztx3m8.cjs} +6 -1
- package/dist/data-list-top-cell-DAztx3m8.cjs.map +1 -0
- package/dist/{data-list-top-cell-CC5jjv5s.js → data-list-top-cell-hNkk6S-Q.js} +6 -2
- package/dist/data-list-top-cell-hNkk6S-Q.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js +2 -1
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/format-hierarchical-spans.es.js +2 -1
- package/dist/domains/traces/components/format-hierarchical-spans.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +10 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +10 -1
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -4
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +12 -4
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +7 -9
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +7 -9
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-search.cjs.js +10 -4
- package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-search.es.js +10 -4
- package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js +1 -1
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/types.cjs.js.map +1 -1
- package/dist/domains/traces/types.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/hooks/use-text-highlight.cjs.js +28 -2
- package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
- package/dist/hooks/use-text-highlight.es.js +28 -2
- package/dist/hooks/use-text-highlight.es.js.map +1 -1
- package/dist/{logs-data-list-Xayqbjw4.cjs → logs-data-list-D88JF2lo.cjs} +2 -2
- package/dist/{logs-data-list-Xayqbjw4.cjs.map → logs-data-list-D88JF2lo.cjs.map} +1 -1
- package/dist/{logs-data-list-DRXJ89IZ.js → logs-data-list-DnAXTwr7.js} +2 -2
- package/dist/{logs-data-list-DRXJ89IZ.js.map → logs-data-list-DnAXTwr7.js.map} +1 -1
- package/dist/src/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +2 -2
- package/dist/src/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +2 -2
- package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +2 -2
- package/dist/src/domains/traces/components/format-hierarchical-spans.d.ts +1 -0
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +1 -1
- package/dist/src/domains/traces/hooks/use-trace-search.d.ts +7 -0
- package/dist/src/domains/traces/types.d.ts +5 -0
- package/dist/src/ds/components/Badge/Badge.d.ts +86 -12
- package/dist/src/ds/components/Badge/badge.stories.d.ts +3 -0
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +2 -3
- package/dist/src/ds/components/DataList/data-list-cells.d.ts +5 -0
- package/dist/src/ds/components/ItemList/helpers.d.ts +8 -0
- package/dist/src/ds/components/ItemList/item-list-link-cell.d.ts +2 -1
- package/dist/src/ds/components/ItemList/item-list-row-button.d.ts +2 -1
- package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
- package/dist/src/hooks/use-text-highlight.d.ts +5 -0
- package/dist/src/test/highlight-api.d.ts +6 -4
- package/dist/style.css +364 -219
- package/dist/{traces-data-list-BLZgf-Es.cjs → traces-data-list-COksp2d4.cjs} +12 -13
- package/dist/traces-data-list-COksp2d4.cjs.map +1 -0
- package/dist/{traces-data-list-DmXGwe4Q.js → traces-data-list-c5I-8hwt.js} +12 -13
- package/dist/traces-data-list-c5I-8hwt.js.map +1 -0
- package/dist/use-text-highlight.css +8 -0
- package/package.json +7 -7
- package/theme.css +53 -0
- package/dist/Badge-BlJpI3fY.cjs +0 -57
- package/dist/Badge-BlJpI3fY.cjs.map +0 -1
- package/dist/Badge-woV6OD8k.js +0 -55
- package/dist/Badge-woV6OD8k.js.map +0 -1
- package/dist/chip-9P9t0dvN.cjs +0 -68
- package/dist/chip-9P9t0dvN.cjs.map +0 -1
- package/dist/chip-Bg0-95sX.js +0 -66
- package/dist/chip-Bg0-95sX.js.map +0 -1
- package/dist/components/Chip.cjs.js +0 -27
- package/dist/components/Chip.cjs.js.map +0 -1
- package/dist/components/Chip.d.ts +0 -2
- package/dist/components/Chip.es.js +0 -22
- package/dist/components/Chip.es.js.map +0 -1
- package/dist/components/StatusBadge.cjs.js +0 -76
- package/dist/components/StatusBadge.cjs.js.map +0 -1
- package/dist/components/StatusBadge.d.ts +0 -2
- package/dist/components/StatusBadge.es.js +0 -72
- package/dist/components/StatusBadge.es.js.map +0 -1
- package/dist/data-list-top-cell-BOXO5s7I.cjs.map +0 -1
- package/dist/data-list-top-cell-CC5jjv5s.js.map +0 -1
- package/dist/src/ds/components/Chip/chip.d.ts +0 -8
- package/dist/src/ds/components/Chip/chip.stories.d.ts +0 -11
- package/dist/src/ds/components/Chip/chips-group.d.ts +0 -2
- package/dist/src/ds/components/Chip/index.d.ts +0 -2
- package/dist/src/ds/components/StatusBadge/StatusBadge.d.ts +0 -13
- package/dist/src/ds/components/StatusBadge/index.d.ts +0 -2
- package/dist/src/ds/components/StatusBadge/status-badge.stories.d.ts +0 -8
- package/dist/traces-data-list-BLZgf-Es.cjs.map +0 -1
- package/dist/traces-data-list-DmXGwe4Q.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# @mastra/playground-ui
|
|
2
2
|
|
|
3
|
+
## 51.4.0-alpha.1
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Removed the separate `Chip`, `ChipsGroup`, and `StatusBadge` exports. `Badge` is now the single compact label and status primitive, with nine color-based variants, muted emphasis, sizes, icons, and dot or pulse indicators. Its variants are `neutral`, `green`, `red`, `blue`, `yellow`, `purple`, `orange`, `cyan`, and `pink`; omitting `variant` uses `neutral`. ([#22640](https://github.com/mastra-ai/mastra/pull/22640))
|
|
8
|
+
|
|
9
|
+
`ChipsGroup` has no direct replacement. Use a layout element appropriate to the surrounding UI around `Badge` instances.
|
|
10
|
+
|
|
11
|
+
`Badge` now renders an inline `<span>` instead of a `<div>`, and `BadgeProps` now extends `HTMLAttributes<HTMLSpanElement>` instead of `HTMLAttributes<HTMLDivElement>`. Update block-layout assumptions and div-specific refs or handlers when migrating.
|
|
12
|
+
|
|
13
|
+
Badges use soft corners and a subtle ring, with an inner shadow in light mode and an inner glow in dark mode.
|
|
14
|
+
|
|
15
|
+
Before:
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Chip, ChipsGroup } from '@mastra/playground-ui/components/Chip';
|
|
19
|
+
import { StatusBadge } from '@mastra/playground-ui/components/StatusBadge';
|
|
20
|
+
|
|
21
|
+
<ChipsGroup>
|
|
22
|
+
<Chip color="purple" intensity="muted">Baseline</Chip>
|
|
23
|
+
<Chip color="blue" intensity="muted">Candidate</Chip>
|
|
24
|
+
</ChipsGroup>
|
|
25
|
+
<StatusBadge variant="success" withDot>Connected</StatusBadge>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
After:
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { Badge } from '@mastra/playground-ui/components/Badge';
|
|
32
|
+
|
|
33
|
+
<div className="flex items-center gap-1">
|
|
34
|
+
<Badge variant="purple" emphasis="muted">Baseline</Badge>
|
|
35
|
+
<Badge variant="blue" emphasis="muted">Candidate</Badge>
|
|
36
|
+
</div>
|
|
37
|
+
<Badge variant="green" indicator="dot">Connected</Badge>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Improved trace search in Studio: when a span matches your search only through its metadata, attributes or error payload, its name in the timeline is now painted in a distinct color so you can see why the row is there without opening it. Spans matching by name keep the usual highlight. ([#22660](https://github.com/mastra-ai/mastra/pull/22660))
|
|
43
|
+
|
|
44
|
+
- Improved the Studio traces list: combined the Date and Time columns into a single Created column, capped the Input column width so other columns stay visible, rendered trace status as a colored badge, and made the list shrink to the viewport instead of scrolling horizontally. Renamed the trace panel action to "Add full trace to dataset". ([#22682](https://github.com/mastra-ai/mastra/pull/22682))
|
|
45
|
+
|
|
46
|
+
- Updated dependencies [[`a3606a0`](https://github.com/mastra-ai/mastra/commit/a3606a09f3deaeef17caf04b9c6a0d7cd6b80fe6), [`4095752`](https://github.com/mastra-ai/mastra/commit/40957529233d202446ebecab1f59c76e99910230), [`a3606a0`](https://github.com/mastra-ai/mastra/commit/a3606a09f3deaeef17caf04b9c6a0d7cd6b80fe6)]:
|
|
47
|
+
- @mastra/core@1.63.3-alpha.1
|
|
48
|
+
- @mastra/client-js@1.42.5-alpha.1
|
|
49
|
+
- @mastra/react@1.4.10-alpha.1
|
|
50
|
+
|
|
51
|
+
## 51.3.2-alpha.0
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- Updated dependencies [[`3910c77`](https://github.com/mastra-ai/mastra/commit/3910c77413a3058ab270c6dbc74a59bc3cdf67ea)]:
|
|
56
|
+
- @mastra/core@1.63.3-alpha.0
|
|
57
|
+
- @mastra/client-js@1.42.5-alpha.0
|
|
58
|
+
- @mastra/react@1.4.10-alpha.0
|
|
59
|
+
|
|
3
60
|
## 51.3.1
|
|
4
61
|
|
|
5
62
|
### Patch Changes
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const icons_Icon = require('./icons/Icon.cjs.js');
|
|
5
|
+
const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
6
|
+
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
7
|
+
|
|
8
|
+
const badgeToneStyles = {
|
|
9
|
+
neutral: {
|
|
10
|
+
default: "bg-neutral6/5 text-badge-neutral-fg",
|
|
11
|
+
muted: "bg-neutral6/[0.025] text-badge-neutral-fg",
|
|
12
|
+
indicator: "bg-neutral3"
|
|
13
|
+
},
|
|
14
|
+
green: {
|
|
15
|
+
default: "bg-badge-green/20 text-badge-green-fg",
|
|
16
|
+
muted: "bg-badge-green/10 text-badge-green-fg",
|
|
17
|
+
indicator: "bg-badge-green"
|
|
18
|
+
},
|
|
19
|
+
red: {
|
|
20
|
+
default: "bg-badge-red/20 text-badge-red-fg",
|
|
21
|
+
muted: "bg-badge-red/10 text-badge-red-fg",
|
|
22
|
+
indicator: "bg-badge-red"
|
|
23
|
+
},
|
|
24
|
+
blue: {
|
|
25
|
+
default: "bg-badge-blue/20 text-badge-blue-fg",
|
|
26
|
+
muted: "bg-badge-blue/10 text-badge-blue-fg",
|
|
27
|
+
indicator: "bg-badge-blue"
|
|
28
|
+
},
|
|
29
|
+
yellow: {
|
|
30
|
+
default: "bg-badge-yellow/20 text-badge-yellow-fg",
|
|
31
|
+
muted: "bg-badge-yellow/10 text-badge-yellow-fg",
|
|
32
|
+
indicator: "bg-badge-yellow"
|
|
33
|
+
},
|
|
34
|
+
purple: {
|
|
35
|
+
default: "bg-badge-purple/20 text-badge-purple-fg",
|
|
36
|
+
muted: "bg-badge-purple/10 text-badge-purple-fg",
|
|
37
|
+
indicator: "bg-badge-purple"
|
|
38
|
+
},
|
|
39
|
+
orange: {
|
|
40
|
+
default: "bg-badge-orange/20 text-badge-orange-fg",
|
|
41
|
+
muted: "bg-badge-orange/10 text-badge-orange-fg",
|
|
42
|
+
indicator: "bg-badge-orange"
|
|
43
|
+
},
|
|
44
|
+
cyan: {
|
|
45
|
+
default: "bg-badge-cyan/20 text-badge-cyan-fg",
|
|
46
|
+
muted: "bg-badge-cyan/10 text-badge-cyan-fg",
|
|
47
|
+
indicator: "bg-badge-cyan"
|
|
48
|
+
},
|
|
49
|
+
pink: {
|
|
50
|
+
default: "bg-badge-pink/20 text-badge-pink-fg",
|
|
51
|
+
muted: "bg-badge-pink/10 text-badge-pink-fg",
|
|
52
|
+
indicator: "bg-badge-pink"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const badgeSizeStyles = {
|
|
56
|
+
xs: {
|
|
57
|
+
badge: "h-[18px] gap-0.5 text-ui-xs",
|
|
58
|
+
withoutLeadingVisual: "px-1.5",
|
|
59
|
+
withLeadingVisual: "pl-1 pr-1.5",
|
|
60
|
+
indicator: "size-1"
|
|
61
|
+
},
|
|
62
|
+
sm: {
|
|
63
|
+
badge: "h-5 gap-1 text-ui-xs",
|
|
64
|
+
withoutLeadingVisual: "px-1.5",
|
|
65
|
+
withLeadingVisual: "px-1.5",
|
|
66
|
+
indicator: "size-1"
|
|
67
|
+
},
|
|
68
|
+
md: {
|
|
69
|
+
badge: "h-[22px] gap-1 text-ui-sm",
|
|
70
|
+
withoutLeadingVisual: "px-2",
|
|
71
|
+
withLeadingVisual: "pl-1.5 pr-2",
|
|
72
|
+
indicator: "size-1.5"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const Badge = ({
|
|
76
|
+
icon,
|
|
77
|
+
indicator,
|
|
78
|
+
variant = "neutral",
|
|
79
|
+
emphasis = "default",
|
|
80
|
+
size = "md",
|
|
81
|
+
className,
|
|
82
|
+
children,
|
|
83
|
+
...props
|
|
84
|
+
}) => {
|
|
85
|
+
const hasIcon = Boolean(icon);
|
|
86
|
+
const withLeadingVisual = hasIcon || indicator !== void 0;
|
|
87
|
+
const sizeStyles = badgeSizeStyles[size];
|
|
88
|
+
const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;
|
|
89
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
90
|
+
"span",
|
|
91
|
+
{
|
|
92
|
+
className: utils_cn.cn(
|
|
93
|
+
"inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium",
|
|
94
|
+
"inset-ring-1 inset-ring-current/5",
|
|
95
|
+
"inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7",
|
|
96
|
+
"dark:bg-linear-to-b dark:from-white/3 dark:to-white/0",
|
|
97
|
+
badgeToneStyles[variant][emphasis],
|
|
98
|
+
sizeStyles.badge,
|
|
99
|
+
paddingClass,
|
|
100
|
+
primitives_transitions.transitions.colors,
|
|
101
|
+
className
|
|
102
|
+
),
|
|
103
|
+
...props,
|
|
104
|
+
children: [
|
|
105
|
+
indicator !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
"span",
|
|
107
|
+
{
|
|
108
|
+
"aria-hidden": "true",
|
|
109
|
+
className: utils_cn.cn(
|
|
110
|
+
"shrink-0 rounded-full",
|
|
111
|
+
badgeToneStyles[variant].indicator,
|
|
112
|
+
sizeStyles.indicator,
|
|
113
|
+
indicator === "pulse" && "motion-safe:animate-pulse motion-reduce:animate-none"
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
) : null,
|
|
117
|
+
hasIcon ? /* @__PURE__ */ jsxRuntime.jsx(icons_Icon.Icon, { size: "sm", children: icon }) : null,
|
|
118
|
+
children
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
exports.Badge = Badge;
|
|
125
|
+
//# sourceMappingURL=Badge-DcllBqFg.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-DcllBqFg.cjs","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-neutral6/5 text-badge-neutral-fg',\n muted: 'bg-neutral6/[0.025] text-badge-neutral-fg',\n indicator: 'bg-neutral3',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-[22px] gap-1 text-ui-sm',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"sm\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":["jsxs","cn","transitions","jsx","Icon"],"mappings":";;;;;;;AAWA,MAAM,eAAA,GAAkB;AAAA,EACtB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,2CAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,uCAAA;AAAA,IACT,KAAA,EAAO,uCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,mCAAA;AAAA,IACT,KAAA,EAAO,mCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,qCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,yCAAA;AAAA,IACT,KAAA,EAAO,yCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,yCAAA;AAAA,IACT,KAAA,EAAO,yCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,yCAAA;AAAA,IACT,KAAA,EAAO,yCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,qCAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,qCAAA;AAAA,IACP,SAAA,EAAW;AAAA;AAEf,CAAA;AAIA,MAAM,eAAA,GAAkB;AAAA,EACtB,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,6BAAA;AAAA,IACP,oBAAA,EAAsB,QAAA;AAAA,IACtB,iBAAA,EAAmB,aAAA;AAAA,IACnB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,sBAAA;AAAA,IACP,oBAAA,EAAsB,QAAA;AAAA,IACtB,iBAAA,EAAmB,QAAA;AAAA,IACnB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,2BAAA;AAAA,IACP,oBAAA,EAAsB,MAAA;AAAA,IACtB,iBAAA,EAAmB,aAAA;AAAA,IACnB,SAAA,EAAW;AAAA;AAEf,CAAA;AAcO,MAAM,QAAQ,CAAC;AAAA,EACpB,IAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,QAAA,GAAW,SAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAkB;AAChB,EAAA,MAAM,OAAA,GAAU,QAAQ,IAAI,CAAA;AAC5B,EAAA,MAAM,iBAAA,GAAoB,WAAW,SAAA,KAAc,MAAA;AACnD,EAAA,MAAM,UAAA,GAAa,gBAAgB,IAAI,CAAA;AACvC,EAAA,MAAM,YAAA,GAAe,iBAAA,GAAoB,UAAA,CAAW,iBAAA,GAAoB,UAAA,CAAW,oBAAA;AAEnF,EAAA,uBACEA,eAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA;AAAA,QACT,8EAAA;AAAA,QACA,mCAAA;AAAA,QACA,0GAAA;AAAA,QACA,uDAAA;AAAA,QACA,eAAA,CAAgB,OAAO,CAAA,CAAE,QAAQ,CAAA;AAAA,QACjC,UAAA,CAAW,KAAA;AAAA,QACX,YAAA;AAAA,QACAC,kCAAA,CAAY,MAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,SAAA,KAAc,MAAA,mBACbC,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAWF,WAAA;AAAA,cACT,uBAAA;AAAA,cACA,eAAA,CAAgB,OAAO,CAAA,CAAE,SAAA;AAAA,cACzB,UAAA,CAAW,SAAA;AAAA,cACX,cAAc,OAAA,IAAW;AAAA;AAC3B;AAAA,SACF,GACE,IAAA;AAAA,QACH,0BAAUE,cAAA,CAACC,eAAA,EAAA,EAAK,IAAA,EAAK,IAAA,EAAM,gBAAK,CAAA,GAAU,IAAA;AAAA,QAC1C;AAAA;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Icon } from './icons/Icon.es.js';
|
|
3
|
+
import { transitions } from './primitives/transitions.es.js';
|
|
4
|
+
import { c as cn } from './cn-BakJzhuv.js';
|
|
5
|
+
|
|
6
|
+
const badgeToneStyles = {
|
|
7
|
+
neutral: {
|
|
8
|
+
default: "bg-neutral6/5 text-badge-neutral-fg",
|
|
9
|
+
muted: "bg-neutral6/[0.025] text-badge-neutral-fg",
|
|
10
|
+
indicator: "bg-neutral3"
|
|
11
|
+
},
|
|
12
|
+
green: {
|
|
13
|
+
default: "bg-badge-green/20 text-badge-green-fg",
|
|
14
|
+
muted: "bg-badge-green/10 text-badge-green-fg",
|
|
15
|
+
indicator: "bg-badge-green"
|
|
16
|
+
},
|
|
17
|
+
red: {
|
|
18
|
+
default: "bg-badge-red/20 text-badge-red-fg",
|
|
19
|
+
muted: "bg-badge-red/10 text-badge-red-fg",
|
|
20
|
+
indicator: "bg-badge-red"
|
|
21
|
+
},
|
|
22
|
+
blue: {
|
|
23
|
+
default: "bg-badge-blue/20 text-badge-blue-fg",
|
|
24
|
+
muted: "bg-badge-blue/10 text-badge-blue-fg",
|
|
25
|
+
indicator: "bg-badge-blue"
|
|
26
|
+
},
|
|
27
|
+
yellow: {
|
|
28
|
+
default: "bg-badge-yellow/20 text-badge-yellow-fg",
|
|
29
|
+
muted: "bg-badge-yellow/10 text-badge-yellow-fg",
|
|
30
|
+
indicator: "bg-badge-yellow"
|
|
31
|
+
},
|
|
32
|
+
purple: {
|
|
33
|
+
default: "bg-badge-purple/20 text-badge-purple-fg",
|
|
34
|
+
muted: "bg-badge-purple/10 text-badge-purple-fg",
|
|
35
|
+
indicator: "bg-badge-purple"
|
|
36
|
+
},
|
|
37
|
+
orange: {
|
|
38
|
+
default: "bg-badge-orange/20 text-badge-orange-fg",
|
|
39
|
+
muted: "bg-badge-orange/10 text-badge-orange-fg",
|
|
40
|
+
indicator: "bg-badge-orange"
|
|
41
|
+
},
|
|
42
|
+
cyan: {
|
|
43
|
+
default: "bg-badge-cyan/20 text-badge-cyan-fg",
|
|
44
|
+
muted: "bg-badge-cyan/10 text-badge-cyan-fg",
|
|
45
|
+
indicator: "bg-badge-cyan"
|
|
46
|
+
},
|
|
47
|
+
pink: {
|
|
48
|
+
default: "bg-badge-pink/20 text-badge-pink-fg",
|
|
49
|
+
muted: "bg-badge-pink/10 text-badge-pink-fg",
|
|
50
|
+
indicator: "bg-badge-pink"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const badgeSizeStyles = {
|
|
54
|
+
xs: {
|
|
55
|
+
badge: "h-[18px] gap-0.5 text-ui-xs",
|
|
56
|
+
withoutLeadingVisual: "px-1.5",
|
|
57
|
+
withLeadingVisual: "pl-1 pr-1.5",
|
|
58
|
+
indicator: "size-1"
|
|
59
|
+
},
|
|
60
|
+
sm: {
|
|
61
|
+
badge: "h-5 gap-1 text-ui-xs",
|
|
62
|
+
withoutLeadingVisual: "px-1.5",
|
|
63
|
+
withLeadingVisual: "px-1.5",
|
|
64
|
+
indicator: "size-1"
|
|
65
|
+
},
|
|
66
|
+
md: {
|
|
67
|
+
badge: "h-[22px] gap-1 text-ui-sm",
|
|
68
|
+
withoutLeadingVisual: "px-2",
|
|
69
|
+
withLeadingVisual: "pl-1.5 pr-2",
|
|
70
|
+
indicator: "size-1.5"
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const Badge = ({
|
|
74
|
+
icon,
|
|
75
|
+
indicator,
|
|
76
|
+
variant = "neutral",
|
|
77
|
+
emphasis = "default",
|
|
78
|
+
size = "md",
|
|
79
|
+
className,
|
|
80
|
+
children,
|
|
81
|
+
...props
|
|
82
|
+
}) => {
|
|
83
|
+
const hasIcon = Boolean(icon);
|
|
84
|
+
const withLeadingVisual = hasIcon || indicator !== void 0;
|
|
85
|
+
const sizeStyles = badgeSizeStyles[size];
|
|
86
|
+
const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;
|
|
87
|
+
return /* @__PURE__ */ jsxs(
|
|
88
|
+
"span",
|
|
89
|
+
{
|
|
90
|
+
className: cn(
|
|
91
|
+
"inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium",
|
|
92
|
+
"inset-ring-1 inset-ring-current/5",
|
|
93
|
+
"inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7",
|
|
94
|
+
"dark:bg-linear-to-b dark:from-white/3 dark:to-white/0",
|
|
95
|
+
badgeToneStyles[variant][emphasis],
|
|
96
|
+
sizeStyles.badge,
|
|
97
|
+
paddingClass,
|
|
98
|
+
transitions.colors,
|
|
99
|
+
className
|
|
100
|
+
),
|
|
101
|
+
...props,
|
|
102
|
+
children: [
|
|
103
|
+
indicator !== void 0 ? /* @__PURE__ */ jsx(
|
|
104
|
+
"span",
|
|
105
|
+
{
|
|
106
|
+
"aria-hidden": "true",
|
|
107
|
+
className: cn(
|
|
108
|
+
"shrink-0 rounded-full",
|
|
109
|
+
badgeToneStyles[variant].indicator,
|
|
110
|
+
sizeStyles.indicator,
|
|
111
|
+
indicator === "pulse" && "motion-safe:animate-pulse motion-reduce:animate-none"
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
) : null,
|
|
115
|
+
hasIcon ? /* @__PURE__ */ jsx(Icon, { size: "sm", children: icon }) : null,
|
|
116
|
+
children
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { Badge as B };
|
|
123
|
+
//# sourceMappingURL=Badge-uGehUtus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-uGehUtus.js","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-neutral6/5 text-badge-neutral-fg',\n muted: 'bg-neutral6/[0.025] text-badge-neutral-fg',\n indicator: 'bg-neutral3',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-[22px] gap-1 text-ui-sm',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"sm\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { B as Badge } from '../Badge-
|
|
1
|
+
export { B as Badge } from '../Badge-uGehUtus.js';
|
|
2
2
|
//# sourceMappingURL=Badge.es.js.map
|
|
@@ -2,12 +2,12 @@
|
|
|
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-CRDewYj9.cjs');
|
|
6
|
+
const dataListSkeleton = require('../data-list-skeleton-CONfqzH2.cjs');
|
|
7
7
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
const dataListTopCell = require('../data-list-top-cell-
|
|
8
|
+
const dataListTopCell = require('../data-list-top-cell-DAztx3m8.cjs');
|
|
9
9
|
const dateFns = require('date-fns');
|
|
10
|
-
const tracesDataList = require('../traces-data-list-
|
|
10
|
+
const tracesDataList = require('../traces-data-list-COksp2d4.cjs');
|
|
11
11
|
const useDataListKeyboard = require('../use-data-list-keyboard-k5D-WlNX.cjs');
|
|
12
12
|
|
|
13
13
|
function toDate(value) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { D as DataList } from '../data-list-
|
|
2
|
-
export { D as DataListSkeleton } from '../data-list-skeleton-
|
|
1
|
+
export { D as DataList } from '../data-list-C3tjx5Vb.js';
|
|
2
|
+
export { D as DataListSkeleton } from '../data-list-skeleton-BCrkk6wG.js';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
import { a as DataListCell, c as DataListNextPageLoading, g as DataListNoMatch, j as DataListRowButton, n as DataListTopCell, o as DataListTop, D as DataListRoot } from '../data-list-top-cell-
|
|
4
|
+
import { a as DataListCell, c as DataListNextPageLoading, g as DataListNoMatch, j as DataListRowButton, n as DataListTopCell, o as DataListTop, D as DataListRoot } from '../data-list-top-cell-hNkk6S-Q.js';
|
|
5
5
|
import { format, isToday } from 'date-fns';
|
|
6
|
-
export { T as TracesDataList } from '../traces-data-list-
|
|
6
|
+
export { T as TracesDataList } from '../traces-data-list-c5I-8hwt.js';
|
|
7
7
|
export { u as useDataListKeyboard } from '../use-data-list-keyboard-BzZmvqE_.js';
|
|
8
8
|
|
|
9
9
|
function toDate(value) {
|
|
@@ -10,7 +10,7 @@ const Button = require('../Button-DA5XLUon.cjs');
|
|
|
10
10
|
const Notice = require('../Notice-BoT3Qi4U.cjs');
|
|
11
11
|
const envFile = require('../env-file-BU2hStkm.cjs');
|
|
12
12
|
const Txt = require('../Txt-I5lK8zy7.cjs');
|
|
13
|
-
const dataList = require('../data-list-
|
|
13
|
+
const dataList = require('../data-list-CRDewYj9.cjs');
|
|
14
14
|
const hooks_useCopyToClipboard = require('../hooks/use-copy-to-clipboard.cjs.js');
|
|
15
15
|
const fieldBlock = require('../field-block-BcTR08I7.cjs');
|
|
16
16
|
const inputGroup = require('../input-group-4EQi2l7H.cjs');
|
|
@@ -6,7 +6,7 @@ import { B as Button } from '../Button-vr_I4iME.js';
|
|
|
6
6
|
import { N as Notice } from '../Notice-XR_HdGMF.js';
|
|
7
7
|
import { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '../env-file-BITYowCx.js';
|
|
8
8
|
import { T as Txt } from '../Txt-Df42XG5p.js';
|
|
9
|
-
import { D as DataList } from '../data-list-
|
|
9
|
+
import { D as DataList } from '../data-list-C3tjx5Vb.js';
|
|
10
10
|
import { useCopyToClipboard } from '../hooks/use-copy-to-clipboard.es.js';
|
|
11
11
|
import { F as FieldBlock } from '../field-block-B63CpA4d.js';
|
|
12
12
|
import { I as InputGroup, c as InputGroupInput, a as InputGroupAddon, b as InputGroupButton } from '../input-group-U2f3A4Ya.js';
|
|
@@ -8,10 +8,10 @@ const dateFns = require('date-fns');
|
|
|
8
8
|
const format = require('date-fns/format');
|
|
9
9
|
const isToday = require('date-fns/isToday');
|
|
10
10
|
const React = require('react');
|
|
11
|
+
const tooltip = require('../tooltip-DMOZ2oaq.cjs');
|
|
11
12
|
const primitives_transitions = require('../primitives/transitions.cjs.js');
|
|
12
13
|
const lucideReact = require('lucide-react');
|
|
13
|
-
const
|
|
14
|
-
const chip = require('../chip-9P9t0dvN.cjs');
|
|
14
|
+
const Badge = require('../Badge-DcllBqFg.cjs');
|
|
15
15
|
|
|
16
16
|
function ItemListCell({ children, className }) {
|
|
17
17
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("", className), children });
|
|
@@ -75,8 +75,8 @@ function ItemListLabelCell({ children, className }) {
|
|
|
75
75
|
return /* @__PURE__ */ jsxRuntime.jsx("label", { className: utils_cn.cn("flex h-full w-14 items-center justify-center rounded-lg hover:bg-surface5", className), children });
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
function ItemListLinkCell({ children, href, className, LinkComponent: Link }) {
|
|
79
|
-
|
|
78
|
+
function ItemListLinkCell({ children, href, className, LinkComponent: Link, tooltip: tooltip$1 }) {
|
|
79
|
+
const link = /* @__PURE__ */ jsxRuntime.jsx(
|
|
80
80
|
Link,
|
|
81
81
|
{
|
|
82
82
|
href,
|
|
@@ -90,6 +90,11 @@ function ItemListLinkCell({ children, href, className, LinkComponent: Link }) {
|
|
|
90
90
|
children
|
|
91
91
|
}
|
|
92
92
|
);
|
|
93
|
+
if (tooltip$1 == null) return link;
|
|
94
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
95
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { render: link }),
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: tooltip$1 })
|
|
97
|
+
] });
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
function ItemListMessage({ children, message, className, type }) {
|
|
@@ -195,12 +200,13 @@ function ItemListRowButton({
|
|
|
195
200
|
columns,
|
|
196
201
|
className,
|
|
197
202
|
disabled,
|
|
203
|
+
tooltip: tooltip$1,
|
|
198
204
|
...props
|
|
199
205
|
}) {
|
|
200
206
|
const handleClick = () => {
|
|
201
207
|
onClick?.(item?.id);
|
|
202
208
|
};
|
|
203
|
-
|
|
209
|
+
const button = /* @__PURE__ */ jsxRuntime.jsx(
|
|
204
210
|
"button",
|
|
205
211
|
{
|
|
206
212
|
...props,
|
|
@@ -211,7 +217,6 @@ function ItemListRowButton({
|
|
|
211
217
|
primitives_transitions.focusRing.visible,
|
|
212
218
|
{
|
|
213
219
|
"bg-surface4": isFeatured,
|
|
214
|
-
// hover effect only not for skeleton and featured
|
|
215
220
|
"hover:bg-surface4": item && !isFeatured && !disabled
|
|
216
221
|
},
|
|
217
222
|
className
|
|
@@ -221,6 +226,11 @@ function ItemListRowButton({
|
|
|
221
226
|
children
|
|
222
227
|
}
|
|
223
228
|
);
|
|
229
|
+
if (tooltip$1 == null) return button;
|
|
230
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
231
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { render: button }),
|
|
232
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: tooltip$1 })
|
|
233
|
+
] });
|
|
224
234
|
}
|
|
225
235
|
|
|
226
236
|
function capitalize(value) {
|
|
@@ -249,6 +259,44 @@ function ItemListTextCell({ children, isLoading, className }) {
|
|
|
249
259
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("truncate py-[0.6rem] text-ui-md text-neutral4", className), children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none" }) : children });
|
|
250
260
|
}
|
|
251
261
|
|
|
262
|
+
const ITEM_LIST_VERSION_STATUS_LABELS = {
|
|
263
|
+
latest: "Latest version",
|
|
264
|
+
deleted: "Deleted in this version"
|
|
265
|
+
};
|
|
266
|
+
function getItemListVersionStatusLabel({
|
|
267
|
+
isLatest,
|
|
268
|
+
isDeleted
|
|
269
|
+
}) {
|
|
270
|
+
const labels = [];
|
|
271
|
+
if (isLatest) labels.push(ITEM_LIST_VERSION_STATUS_LABELS.latest);
|
|
272
|
+
if (isDeleted) labels.push(ITEM_LIST_VERSION_STATUS_LABELS.deleted);
|
|
273
|
+
return labels.length > 0 ? labels.join(" · ") : void 0;
|
|
274
|
+
}
|
|
275
|
+
function getToNextItemFn({ entries, id, update }) {
|
|
276
|
+
const currentIndex = entries.findIndex((entry) => entry.id === id);
|
|
277
|
+
const thereIsNextItem = currentIndex < entries.length - 1;
|
|
278
|
+
if (thereIsNextItem) {
|
|
279
|
+
return () => {
|
|
280
|
+
const nextItem = entries[currentIndex + 1];
|
|
281
|
+
if (!nextItem) return;
|
|
282
|
+
update(nextItem.id);
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
return void 0;
|
|
286
|
+
}
|
|
287
|
+
function getToPreviousItemFn({ entries, id, update }) {
|
|
288
|
+
const currentIndex = entries.findIndex((entry) => entry.id === id);
|
|
289
|
+
const thereIsPreviousItem = currentIndex > 0;
|
|
290
|
+
if (thereIsPreviousItem) {
|
|
291
|
+
return () => {
|
|
292
|
+
const previousItem = entries[currentIndex - 1];
|
|
293
|
+
if (!previousItem) return;
|
|
294
|
+
update(previousItem.id);
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
return void 0;
|
|
298
|
+
}
|
|
299
|
+
|
|
252
300
|
function ItemListVersionCell({ version, date, isLatest, isDeleted }) {
|
|
253
301
|
return /* @__PURE__ */ jsxRuntime.jsxs(ItemListCell, { className: utils_cn.cn("grid grid-cols-[1fr_auto] pl-1"), children: [
|
|
254
302
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -262,19 +310,13 @@ function ItemListVersionCell({ version, date, isLatest, isDeleted }) {
|
|
|
262
310
|
"v. ",
|
|
263
311
|
version
|
|
264
312
|
] }),
|
|
265
|
-
/* @__PURE__ */ jsxRuntime.jsx("em", { className: "text-ui-sm
|
|
313
|
+
/* @__PURE__ */ jsxRuntime.jsx("em", { className: utils_cn.cn("text-ui-sm", "font-normal", "text-neutral2"), children: date ? dateFns.format(new Date(date), "MMM d, yyyy HH:mm") : null })
|
|
266
314
|
]
|
|
267
315
|
}
|
|
268
316
|
),
|
|
269
317
|
(isLatest || isDeleted) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
270
|
-
isLatest && /* @__PURE__ */ jsxRuntime.
|
|
271
|
-
|
|
272
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: "Latest version" })
|
|
273
|
-
] }),
|
|
274
|
-
isDeleted && /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
275
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chip.Chip, { color: "red", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BanIcon, {}) }) }),
|
|
276
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: "Deleted in this version" })
|
|
277
|
-
] })
|
|
318
|
+
isLatest && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", role: "img", "aria-label": ITEM_LIST_VERSION_STATUS_LABELS.latest, children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: "blue", size: "sm", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClockIcon, {}) }) }),
|
|
319
|
+
isDeleted && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", role: "img", "aria-label": ITEM_LIST_VERSION_STATUS_LABELS.deleted, children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: "red", size: "sm", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BanIcon, {}) }) })
|
|
278
320
|
] })
|
|
279
321
|
] });
|
|
280
322
|
}
|
|
@@ -325,34 +367,11 @@ function ItemListSkeleton({ columns, numberOfRows }) {
|
|
|
325
367
|
] });
|
|
326
368
|
}
|
|
327
369
|
|
|
328
|
-
|
|
329
|
-
const currentIndex = entries.findIndex((entry) => entry.id === id);
|
|
330
|
-
const thereIsNextItem = currentIndex < entries.length - 1;
|
|
331
|
-
if (thereIsNextItem) {
|
|
332
|
-
return () => {
|
|
333
|
-
const nextItem = entries[currentIndex + 1];
|
|
334
|
-
if (!nextItem) return;
|
|
335
|
-
update(nextItem.id);
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
return void 0;
|
|
339
|
-
}
|
|
340
|
-
function getToPreviousItemFn({ entries, id, update }) {
|
|
341
|
-
const currentIndex = entries.findIndex((entry) => entry.id === id);
|
|
342
|
-
const thereIsPreviousItem = currentIndex > 0;
|
|
343
|
-
if (thereIsPreviousItem) {
|
|
344
|
-
return () => {
|
|
345
|
-
const previousItem = entries[currentIndex - 1];
|
|
346
|
-
if (!previousItem) return;
|
|
347
|
-
update(previousItem.id);
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
return void 0;
|
|
351
|
-
}
|
|
352
|
-
|
|
370
|
+
exports.ITEM_LIST_VERSION_STATUS_LABELS = ITEM_LIST_VERSION_STATUS_LABELS;
|
|
353
371
|
exports.ItemList = ItemList;
|
|
354
372
|
exports.ItemListSkeleton = ItemListSkeleton;
|
|
355
373
|
exports.getItemListColumnTemplate = getItemListColumnTemplate;
|
|
374
|
+
exports.getItemListVersionStatusLabel = getItemListVersionStatusLabel;
|
|
356
375
|
exports.getToNextItemFn = getToNextItemFn;
|
|
357
376
|
exports.getToPreviousItemFn = getToPreviousItemFn;
|
|
358
377
|
//# sourceMappingURL=ItemList.cjs.js.map
|