@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.
Files changed (137) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/Badge-DcllBqFg.cjs +125 -0
  3. package/dist/Badge-DcllBqFg.cjs.map +1 -0
  4. package/dist/Badge-uGehUtus.js +123 -0
  5. package/dist/Badge-uGehUtus.js.map +1 -0
  6. package/dist/components/Badge.cjs.js +1 -1
  7. package/dist/components/Badge.es.js +1 -1
  8. package/dist/components/DataList.cjs.js +4 -4
  9. package/dist/components/DataList.es.js +4 -4
  10. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  11. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  12. package/dist/components/ItemList.cjs.js +59 -40
  13. package/dist/components/ItemList.cjs.js.map +1 -1
  14. package/dist/components/ItemList.es.js +58 -41
  15. package/dist/components/ItemList.es.js.map +1 -1
  16. package/dist/components/LogsDataList.cjs.js +2 -3
  17. package/dist/components/LogsDataList.cjs.js.map +1 -1
  18. package/dist/components/LogsDataList.es.js +2 -3
  19. package/dist/components/LogsDataList.es.js.map +1 -1
  20. package/dist/components/ai/ask-user.cjs.js +3 -3
  21. package/dist/components/ai/ask-user.cjs.js.map +1 -1
  22. package/dist/components/ai/ask-user.es.js +3 -3
  23. package/dist/components/ai/ask-user.es.js.map +1 -1
  24. package/dist/components/ai/plan.cjs.js +3 -3
  25. package/dist/components/ai/plan.cjs.js.map +1 -1
  26. package/dist/components/ai/plan.es.js +3 -3
  27. package/dist/components/ai/plan.es.js.map +1 -1
  28. package/dist/{data-list-BOI8fRuk.js → data-list-C3tjx5Vb.js} +2 -2
  29. package/dist/{data-list-BOI8fRuk.js.map → data-list-C3tjx5Vb.js.map} +1 -1
  30. package/dist/{data-list-CCacNODd.cjs → data-list-CRDewYj9.cjs} +2 -2
  31. package/dist/{data-list-CCacNODd.cjs.map → data-list-CRDewYj9.cjs.map} +1 -1
  32. package/dist/{data-list-skeleton-DDO_OE14.js → data-list-skeleton-BCrkk6wG.js} +2 -2
  33. package/dist/{data-list-skeleton-DDO_OE14.js.map → data-list-skeleton-BCrkk6wG.js.map} +1 -1
  34. package/dist/{data-list-skeleton-BHBSIQHN.cjs → data-list-skeleton-CONfqzH2.cjs} +2 -2
  35. package/dist/{data-list-skeleton-BHBSIQHN.cjs.map → data-list-skeleton-CONfqzH2.cjs.map} +1 -1
  36. package/dist/{data-list-top-cell-BOXO5s7I.cjs → data-list-top-cell-DAztx3m8.cjs} +6 -1
  37. package/dist/data-list-top-cell-DAztx3m8.cjs.map +1 -0
  38. package/dist/{data-list-top-cell-CC5jjv5s.js → data-list-top-cell-hNkk6S-Q.js} +6 -2
  39. package/dist/data-list-top-cell-hNkk6S-Q.js.map +1 -0
  40. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  41. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  42. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  43. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  44. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  45. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  46. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  47. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  48. package/dist/domains/traces/components/format-hierarchical-spans.cjs.js +2 -1
  49. package/dist/domains/traces/components/format-hierarchical-spans.cjs.js.map +1 -1
  50. package/dist/domains/traces/components/format-hierarchical-spans.es.js +2 -1
  51. package/dist/domains/traces/components/format-hierarchical-spans.es.js.map +1 -1
  52. package/dist/domains/traces/components/timeline-name-col.cjs.js +10 -1
  53. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  54. package/dist/domains/traces/components/timeline-name-col.es.js +10 -1
  55. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  56. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -4
  57. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  58. package/dist/domains/traces/components/trace-data-panel-view.es.js +12 -4
  59. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  60. package/dist/domains/traces/components/traces-list-view.cjs.js +7 -9
  61. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  62. package/dist/domains/traces/components/traces-list-view.es.js +7 -9
  63. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  64. package/dist/domains/traces/hooks/use-trace-search.cjs.js +10 -4
  65. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  66. package/dist/domains/traces/hooks/use-trace-search.es.js +10 -4
  67. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  68. package/dist/domains/traces/trace-list-columns.cjs.js +1 -1
  69. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  70. package/dist/domains/traces/trace-list-columns.es.js +1 -1
  71. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  72. package/dist/domains/traces/types.cjs.js.map +1 -1
  73. package/dist/domains/traces/types.es.js.map +1 -1
  74. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  75. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  76. package/dist/hooks/use-text-highlight.cjs.js +28 -2
  77. package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
  78. package/dist/hooks/use-text-highlight.es.js +28 -2
  79. package/dist/hooks/use-text-highlight.es.js.map +1 -1
  80. package/dist/{logs-data-list-Xayqbjw4.cjs → logs-data-list-D88JF2lo.cjs} +2 -2
  81. package/dist/{logs-data-list-Xayqbjw4.cjs.map → logs-data-list-D88JF2lo.cjs.map} +1 -1
  82. package/dist/{logs-data-list-DRXJ89IZ.js → logs-data-list-DnAXTwr7.js} +2 -2
  83. package/dist/{logs-data-list-DRXJ89IZ.js.map → logs-data-list-DnAXTwr7.js.map} +1 -1
  84. package/dist/src/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +2 -2
  85. package/dist/src/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +2 -2
  86. package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +2 -2
  87. package/dist/src/domains/traces/components/format-hierarchical-spans.d.ts +1 -0
  88. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +1 -1
  89. package/dist/src/domains/traces/hooks/use-trace-search.d.ts +7 -0
  90. package/dist/src/domains/traces/types.d.ts +5 -0
  91. package/dist/src/ds/components/Badge/Badge.d.ts +86 -12
  92. package/dist/src/ds/components/Badge/badge.stories.d.ts +3 -0
  93. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +2 -3
  94. package/dist/src/ds/components/DataList/data-list-cells.d.ts +5 -0
  95. package/dist/src/ds/components/ItemList/helpers.d.ts +8 -0
  96. package/dist/src/ds/components/ItemList/item-list-link-cell.d.ts +2 -1
  97. package/dist/src/ds/components/ItemList/item-list-row-button.d.ts +2 -1
  98. package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
  99. package/dist/src/hooks/use-text-highlight.d.ts +5 -0
  100. package/dist/src/test/highlight-api.d.ts +6 -4
  101. package/dist/style.css +364 -219
  102. package/dist/{traces-data-list-BLZgf-Es.cjs → traces-data-list-COksp2d4.cjs} +12 -13
  103. package/dist/traces-data-list-COksp2d4.cjs.map +1 -0
  104. package/dist/{traces-data-list-DmXGwe4Q.js → traces-data-list-c5I-8hwt.js} +12 -13
  105. package/dist/traces-data-list-c5I-8hwt.js.map +1 -0
  106. package/dist/use-text-highlight.css +8 -0
  107. package/package.json +7 -7
  108. package/theme.css +53 -0
  109. package/dist/Badge-BlJpI3fY.cjs +0 -57
  110. package/dist/Badge-BlJpI3fY.cjs.map +0 -1
  111. package/dist/Badge-woV6OD8k.js +0 -55
  112. package/dist/Badge-woV6OD8k.js.map +0 -1
  113. package/dist/chip-9P9t0dvN.cjs +0 -68
  114. package/dist/chip-9P9t0dvN.cjs.map +0 -1
  115. package/dist/chip-Bg0-95sX.js +0 -66
  116. package/dist/chip-Bg0-95sX.js.map +0 -1
  117. package/dist/components/Chip.cjs.js +0 -27
  118. package/dist/components/Chip.cjs.js.map +0 -1
  119. package/dist/components/Chip.d.ts +0 -2
  120. package/dist/components/Chip.es.js +0 -22
  121. package/dist/components/Chip.es.js.map +0 -1
  122. package/dist/components/StatusBadge.cjs.js +0 -76
  123. package/dist/components/StatusBadge.cjs.js.map +0 -1
  124. package/dist/components/StatusBadge.d.ts +0 -2
  125. package/dist/components/StatusBadge.es.js +0 -72
  126. package/dist/components/StatusBadge.es.js.map +0 -1
  127. package/dist/data-list-top-cell-BOXO5s7I.cjs.map +0 -1
  128. package/dist/data-list-top-cell-CC5jjv5s.js.map +0 -1
  129. package/dist/src/ds/components/Chip/chip.d.ts +0 -8
  130. package/dist/src/ds/components/Chip/chip.stories.d.ts +0 -11
  131. package/dist/src/ds/components/Chip/chips-group.d.ts +0 -2
  132. package/dist/src/ds/components/Chip/index.d.ts +0 -2
  133. package/dist/src/ds/components/StatusBadge/StatusBadge.d.ts +0 -13
  134. package/dist/src/ds/components/StatusBadge/index.d.ts +0 -2
  135. package/dist/src/ds/components/StatusBadge/status-badge.stories.d.ts +0 -8
  136. package/dist/traces-data-list-BLZgf-Es.cjs.map +0 -1
  137. 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":"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"}
@@ -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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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const Badge = require('../Badge-BlJpI3fY.cjs');
5
+ const Badge = require('../Badge-DcllBqFg.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { B as Badge } from '../Badge-woV6OD8k.js';
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-CCacNODd.cjs');
6
- const dataListSkeleton = require('../data-list-skeleton-BHBSIQHN.cjs');
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-BOXO5s7I.cjs');
8
+ const dataListTopCell = require('../data-list-top-cell-DAztx3m8.cjs');
9
9
  const dateFns = require('date-fns');
10
- const tracesDataList = require('../traces-data-list-BLZgf-Es.cjs');
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-BOI8fRuk.js';
2
- export { D as DataListSkeleton } from '../data-list-skeleton-DDO_OE14.js';
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-CC5jjv5s.js';
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-DmXGwe4Q.js';
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-CCacNODd.cjs');
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-BOI8fRuk.js';
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 tooltip = require('../tooltip-DMOZ2oaq.cjs');
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
- return /* @__PURE__ */ jsxRuntime.jsx(
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
- return /* @__PURE__ */ jsxRuntime.jsx(
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 text-neutral2 font-normal", children: date ? dateFns.format(new Date(date), "MMM d, yyyy HH:mm") : null })
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.jsxs(tooltip.Tooltip, { children: [
271
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chip.Chip, { color: "blue", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClockIcon, {}) }) }),
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
- function getToNextItemFn({ entries, id, update }) {
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