@tangle-network/sandbox-ui 0.63.0 → 0.64.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/{chunk-6OJUOEF4.js → chunk-G4YJYSFA.js} +1 -1
- package/dist/{chunk-DZA4UBXU.js → chunk-QSCCNGXZ.js} +35 -10
- package/dist/dashboard.d.ts +14 -0
- package/dist/dashboard.js +1 -1
- package/dist/globals.css +23 -46
- package/dist/index.js +2 -2
- package/dist/styles.css +23 -46
- package/dist/workbench.js +2 -2
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
DropdownMenuTrigger
|
|
23
23
|
} from "@tangle-network/ui/primitives";
|
|
24
24
|
import { Skeleton, useTheme } from "@tangle-network/ui/primitives";
|
|
25
|
-
import { Check, Monitor, PanelLeft } from "lucide-react";
|
|
25
|
+
import { Check, Monitor, MoreHorizontal, PanelLeft } from "lucide-react";
|
|
26
26
|
|
|
27
27
|
// src/dashboard/sidebar-context.tsx
|
|
28
28
|
import * as React from "react";
|
|
@@ -585,7 +585,7 @@ function RailExpandable({
|
|
|
585
585
|
const subLink = (item) => {
|
|
586
586
|
const FIcon = item.icon;
|
|
587
587
|
const active = activeSet.has(item.id);
|
|
588
|
-
|
|
588
|
+
const link = /* @__PURE__ */ jsxs2(
|
|
589
589
|
Link,
|
|
590
590
|
{
|
|
591
591
|
href: item.href,
|
|
@@ -593,8 +593,8 @@ function RailExpandable({
|
|
|
593
593
|
onClick: onNavigate,
|
|
594
594
|
...item.prefetch !== void 0 ? { prefetch: item.prefetch } : {},
|
|
595
595
|
className: cn(
|
|
596
|
-
"flex
|
|
597
|
-
active ? "bg-[var(--accent-surface-strong)] font-medium text-[var(--accent-text)]" : item.emphasis ? "font-
|
|
596
|
+
"flex min-w-0 flex-1 items-center gap-2 rounded-md px-2.5 text-[12px] transition-colors",
|
|
597
|
+
active ? "h-7 bg-[var(--accent-surface-strong)] font-medium text-[var(--accent-text)]" : item.emphasis ? "py-2 font-medium text-[var(--accent-text)] hover:underline" : "h-7 text-muted-foreground hover:bg-[var(--accent-surface-soft)] hover:text-foreground"
|
|
598
598
|
),
|
|
599
599
|
children: [
|
|
600
600
|
FIcon ? /* @__PURE__ */ jsx3(FIcon, { className: "h-4 w-4 shrink-0" }) : null,
|
|
@@ -605,16 +605,41 @@ function RailExpandable({
|
|
|
605
605
|
...item.isLoading ? { role: "status", "aria-label": "Agent responding" } : {},
|
|
606
606
|
children: item.label
|
|
607
607
|
}
|
|
608
|
-
)
|
|
609
|
-
item.isLoading ? /* @__PURE__ */ jsxs2("span", { className: "responding-ellipsis", "aria-hidden": "true", children: [
|
|
610
|
-
/* @__PURE__ */ jsx3("span", {}),
|
|
611
|
-
/* @__PURE__ */ jsx3("span", {}),
|
|
612
|
-
/* @__PURE__ */ jsx3("span", {})
|
|
613
|
-
] }) : null
|
|
608
|
+
)
|
|
614
609
|
]
|
|
615
610
|
},
|
|
616
611
|
item.id
|
|
617
612
|
);
|
|
613
|
+
if (!showLabel || !item.actions?.length) return link;
|
|
614
|
+
return /* @__PURE__ */ jsxs2("div", { className: "group/sub relative flex items-center", children: [
|
|
615
|
+
link,
|
|
616
|
+
/* @__PURE__ */ jsxs2(DropdownMenu, { children: [
|
|
617
|
+
/* @__PURE__ */ jsx3(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx3(
|
|
618
|
+
"button",
|
|
619
|
+
{
|
|
620
|
+
type: "button",
|
|
621
|
+
"aria-label": "Chat actions",
|
|
622
|
+
className: "absolute right-1 flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-[var(--accent-surface-soft)] text-muted-foreground opacity-0 transition hover:text-foreground focus-visible:opacity-100 group-hover/sub:opacity-100 data-[state=open]:bg-[var(--accent-surface-strong)] data-[state=open]:opacity-100",
|
|
623
|
+
children: /* @__PURE__ */ jsx3(MoreHorizontal, { className: "h-3.5 w-3.5" })
|
|
624
|
+
}
|
|
625
|
+
) }),
|
|
626
|
+
/* @__PURE__ */ jsx3(DropdownMenuContent, { align: "end", className: "w-40", children: item.actions.map((action) => /* @__PURE__ */ jsxs2(
|
|
627
|
+
DropdownMenuItem,
|
|
628
|
+
{
|
|
629
|
+
onSelect: action.onSelect,
|
|
630
|
+
className: cn(
|
|
631
|
+
"gap-2",
|
|
632
|
+
action.destructive && "text-destructive focus:text-destructive"
|
|
633
|
+
),
|
|
634
|
+
children: [
|
|
635
|
+
action.icon ? /* @__PURE__ */ jsx3(action.icon, { className: "h-3.5 w-3.5" }) : null,
|
|
636
|
+
action.label
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
action.id
|
|
640
|
+
)) })
|
|
641
|
+
] })
|
|
642
|
+
] }, item.id);
|
|
618
643
|
};
|
|
619
644
|
const list = loading ? /* @__PURE__ */ jsx3(SubItemsSkeleton, {}) : items && items.length > 0 ? items.map(subLink) : /* @__PURE__ */ jsx3("p", { className: "px-2.5 py-1.5 text-xs text-muted-foreground", children: emptyLabel });
|
|
620
645
|
if (!showLabel) {
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -174,6 +174,17 @@ interface RailFlyoutProps {
|
|
|
174
174
|
* related destinations without permanently spending rail height on them.
|
|
175
175
|
*/
|
|
176
176
|
declare function RailFlyout({ icon: Icon, label, isActive, showLabel, title, children, className, }: RailFlyoutProps): react_jsx_runtime.JSX.Element;
|
|
177
|
+
/** A single entry in a sub-item's hover actions menu (kebab). */
|
|
178
|
+
interface RailSubItemAction {
|
|
179
|
+
id: string;
|
|
180
|
+
label: string;
|
|
181
|
+
icon?: React.ComponentType<{
|
|
182
|
+
className?: string;
|
|
183
|
+
}>;
|
|
184
|
+
/** Style the item as a destructive action (e.g. delete). */
|
|
185
|
+
destructive?: boolean;
|
|
186
|
+
onSelect: () => void;
|
|
187
|
+
}
|
|
177
188
|
/** A sub-destination revealed by a {@link RailExpandable} item. */
|
|
178
189
|
interface RailExpandableSubItem {
|
|
179
190
|
id: string;
|
|
@@ -188,6 +199,9 @@ interface RailExpandableSubItem {
|
|
|
188
199
|
/** Render the row emphasized (bold + accent) so it stands out — e.g. a
|
|
189
200
|
* trailing "view all" action below a capped list. */
|
|
190
201
|
emphasis?: boolean;
|
|
202
|
+
/** Hover-revealed kebab actions (e.g. rename/delete). Rendered on the
|
|
203
|
+
* labeled rail only; ignored in the collapsed-rail flyout. */
|
|
204
|
+
actions?: RailSubItemAction[];
|
|
191
205
|
}
|
|
192
206
|
interface RailExpandableProps {
|
|
193
207
|
icon: React.ComponentType<{
|
package/dist/dashboard.js
CHANGED
package/dist/globals.css
CHANGED
|
@@ -3782,6 +3782,13 @@
|
|
|
3782
3782
|
}
|
|
3783
3783
|
}
|
|
3784
3784
|
}
|
|
3785
|
+
.group-hover\/sub\:opacity-100 {
|
|
3786
|
+
&:is(:where(.group\/sub):hover *) {
|
|
3787
|
+
@media (hover: hover) {
|
|
3788
|
+
opacity: 100%;
|
|
3789
|
+
}
|
|
3790
|
+
}
|
|
3791
|
+
}
|
|
3785
3792
|
.peer-disabled\:cursor-not-allowed {
|
|
3786
3793
|
&:is(:where(.peer):disabled ~ *) {
|
|
3787
3794
|
cursor: not-allowed;
|
|
@@ -4984,6 +4991,11 @@
|
|
|
4984
4991
|
border-color: var(--md3-outline-variant);
|
|
4985
4992
|
}
|
|
4986
4993
|
}
|
|
4994
|
+
.data-\[state\=open\]\:bg-\[var\(--accent-surface-strong\)\] {
|
|
4995
|
+
&[data-state="open"] {
|
|
4996
|
+
background-color: var(--accent-surface-strong);
|
|
4997
|
+
}
|
|
4998
|
+
}
|
|
4987
4999
|
.data-\[state\=open\]\:bg-accent {
|
|
4988
5000
|
&[data-state="open"] {
|
|
4989
5001
|
background-color: var(--color-accent);
|
|
@@ -5007,6 +5019,11 @@
|
|
|
5007
5019
|
color: var(--color-muted-foreground);
|
|
5008
5020
|
}
|
|
5009
5021
|
}
|
|
5022
|
+
.data-\[state\=open\]\:opacity-100 {
|
|
5023
|
+
&[data-state="open"] {
|
|
5024
|
+
opacity: 100%;
|
|
5025
|
+
}
|
|
5026
|
+
}
|
|
5010
5027
|
.data-\[state\=selected\]\:bg-muted\/50 {
|
|
5011
5028
|
&[data-state="selected"] {
|
|
5012
5029
|
background-color: color-mix(in srgb, hsl(var(--muted)) 50%, transparent);
|
|
@@ -6014,53 +6031,23 @@
|
|
|
6014
6031
|
.shimmer-text {
|
|
6015
6032
|
background-image: linear-gradient(
|
|
6016
6033
|
90deg,
|
|
6017
|
-
hsl(var(--muted-foreground)) 0%,
|
|
6018
|
-
hsl(var(--muted-foreground))
|
|
6019
|
-
var(--
|
|
6020
|
-
hsl(var(--muted-foreground))
|
|
6021
|
-
hsl(var(--muted-foreground)) 100%
|
|
6034
|
+
hsl(var(--muted-foreground) / 0.5) 0%,
|
|
6035
|
+
hsl(var(--muted-foreground) / 0.5) 40%,
|
|
6036
|
+
hsl(var(--primary)) 50%,
|
|
6037
|
+
hsl(var(--muted-foreground) / 0.5) 60%,
|
|
6038
|
+
hsl(var(--muted-foreground) / 0.5) 100%
|
|
6022
6039
|
);
|
|
6023
6040
|
background-size: 200% 100%;
|
|
6024
6041
|
-webkit-background-clip: text;
|
|
6025
6042
|
background-clip: text;
|
|
6026
6043
|
-webkit-text-fill-color: transparent;
|
|
6027
|
-
animation: shimmer 1.
|
|
6044
|
+
animation: shimmer 1.1s linear infinite;
|
|
6028
6045
|
}
|
|
6029
6046
|
@media (prefers-reduced-motion: reduce) {
|
|
6030
6047
|
.shimmer-text {
|
|
6031
6048
|
animation: none;
|
|
6032
6049
|
}
|
|
6033
6050
|
}
|
|
6034
|
-
.responding-ellipsis {
|
|
6035
|
-
display: inline-flex;
|
|
6036
|
-
width: 1.25rem;
|
|
6037
|
-
margin-left: auto;
|
|
6038
|
-
flex-shrink: 0;
|
|
6039
|
-
align-items: center;
|
|
6040
|
-
justify-content: center;
|
|
6041
|
-
gap: 0.1875rem;
|
|
6042
|
-
color: hsl(var(--primary));
|
|
6043
|
-
}
|
|
6044
|
-
.responding-ellipsis > span {
|
|
6045
|
-
width: 0.25rem;
|
|
6046
|
-
height: 0.25rem;
|
|
6047
|
-
border-radius: 9999px;
|
|
6048
|
-
background: currentColor;
|
|
6049
|
-
opacity: 0.6;
|
|
6050
|
-
animation: responding-ellipsis 0.8s ease-in-out infinite;
|
|
6051
|
-
}
|
|
6052
|
-
.responding-ellipsis > span:nth-child(2) {
|
|
6053
|
-
animation-delay: 0.15s;
|
|
6054
|
-
}
|
|
6055
|
-
.responding-ellipsis > span:nth-child(3) {
|
|
6056
|
-
animation-delay: 0.3s;
|
|
6057
|
-
}
|
|
6058
|
-
@media (prefers-reduced-motion: reduce) {
|
|
6059
|
-
.responding-ellipsis > span {
|
|
6060
|
-
animation: none;
|
|
6061
|
-
opacity: 0.8;
|
|
6062
|
-
}
|
|
6063
|
-
}
|
|
6064
6051
|
.animate-in {
|
|
6065
6052
|
animation: fade-in 0.25s ease-out;
|
|
6066
6053
|
}
|
|
@@ -6095,16 +6082,6 @@
|
|
|
6095
6082
|
background-position: 200% 0;
|
|
6096
6083
|
}
|
|
6097
6084
|
}
|
|
6098
|
-
@keyframes responding-ellipsis {
|
|
6099
|
-
0%, 80%, 100% {
|
|
6100
|
-
opacity: 0.6;
|
|
6101
|
-
transform: translateY(0);
|
|
6102
|
-
}
|
|
6103
|
-
40% {
|
|
6104
|
-
opacity: 1;
|
|
6105
|
-
transform: translateY(-1.5px);
|
|
6106
|
-
}
|
|
6107
|
-
}
|
|
6108
6085
|
@keyframes fade-in {
|
|
6109
6086
|
from {
|
|
6110
6087
|
opacity: 0;
|
package/dist/index.js
CHANGED
|
@@ -146,7 +146,7 @@ import {
|
|
|
146
146
|
buildUnifiedPatch,
|
|
147
147
|
computeDiffStats,
|
|
148
148
|
resolveLanguage
|
|
149
|
-
} from "./chunk-
|
|
149
|
+
} from "./chunk-G4YJYSFA.js";
|
|
150
150
|
import {
|
|
151
151
|
FileArtifactPane,
|
|
152
152
|
FilePreview,
|
|
@@ -211,7 +211,7 @@ import {
|
|
|
211
211
|
canAdminSandbox,
|
|
212
212
|
parseInsufficientBalance,
|
|
213
213
|
useSidebar
|
|
214
|
-
} from "./chunk-
|
|
214
|
+
} from "./chunk-QSCCNGXZ.js";
|
|
215
215
|
import "./chunk-VIREDUBF.js";
|
|
216
216
|
import {
|
|
217
217
|
usePtySession
|
package/dist/styles.css
CHANGED
|
@@ -3782,6 +3782,13 @@
|
|
|
3782
3782
|
}
|
|
3783
3783
|
}
|
|
3784
3784
|
}
|
|
3785
|
+
.group-hover\/sub\:opacity-100 {
|
|
3786
|
+
&:is(:where(.group\/sub):hover *) {
|
|
3787
|
+
@media (hover: hover) {
|
|
3788
|
+
opacity: 100%;
|
|
3789
|
+
}
|
|
3790
|
+
}
|
|
3791
|
+
}
|
|
3785
3792
|
.peer-disabled\:cursor-not-allowed {
|
|
3786
3793
|
&:is(:where(.peer):disabled ~ *) {
|
|
3787
3794
|
cursor: not-allowed;
|
|
@@ -4984,6 +4991,11 @@
|
|
|
4984
4991
|
border-color: var(--md3-outline-variant);
|
|
4985
4992
|
}
|
|
4986
4993
|
}
|
|
4994
|
+
.data-\[state\=open\]\:bg-\[var\(--accent-surface-strong\)\] {
|
|
4995
|
+
&[data-state="open"] {
|
|
4996
|
+
background-color: var(--accent-surface-strong);
|
|
4997
|
+
}
|
|
4998
|
+
}
|
|
4987
4999
|
.data-\[state\=open\]\:bg-accent {
|
|
4988
5000
|
&[data-state="open"] {
|
|
4989
5001
|
background-color: var(--color-accent);
|
|
@@ -5007,6 +5019,11 @@
|
|
|
5007
5019
|
color: var(--color-muted-foreground);
|
|
5008
5020
|
}
|
|
5009
5021
|
}
|
|
5022
|
+
.data-\[state\=open\]\:opacity-100 {
|
|
5023
|
+
&[data-state="open"] {
|
|
5024
|
+
opacity: 100%;
|
|
5025
|
+
}
|
|
5026
|
+
}
|
|
5010
5027
|
.data-\[state\=selected\]\:bg-muted\/50 {
|
|
5011
5028
|
&[data-state="selected"] {
|
|
5012
5029
|
background-color: color-mix(in srgb, hsl(var(--muted)) 50%, transparent);
|
|
@@ -6014,53 +6031,23 @@
|
|
|
6014
6031
|
.shimmer-text {
|
|
6015
6032
|
background-image: linear-gradient(
|
|
6016
6033
|
90deg,
|
|
6017
|
-
hsl(var(--muted-foreground)) 0%,
|
|
6018
|
-
hsl(var(--muted-foreground))
|
|
6019
|
-
var(--
|
|
6020
|
-
hsl(var(--muted-foreground))
|
|
6021
|
-
hsl(var(--muted-foreground)) 100%
|
|
6034
|
+
hsl(var(--muted-foreground) / 0.5) 0%,
|
|
6035
|
+
hsl(var(--muted-foreground) / 0.5) 40%,
|
|
6036
|
+
hsl(var(--primary)) 50%,
|
|
6037
|
+
hsl(var(--muted-foreground) / 0.5) 60%,
|
|
6038
|
+
hsl(var(--muted-foreground) / 0.5) 100%
|
|
6022
6039
|
);
|
|
6023
6040
|
background-size: 200% 100%;
|
|
6024
6041
|
-webkit-background-clip: text;
|
|
6025
6042
|
background-clip: text;
|
|
6026
6043
|
-webkit-text-fill-color: transparent;
|
|
6027
|
-
animation: shimmer 1.
|
|
6044
|
+
animation: shimmer 1.1s linear infinite;
|
|
6028
6045
|
}
|
|
6029
6046
|
@media (prefers-reduced-motion: reduce) {
|
|
6030
6047
|
.shimmer-text {
|
|
6031
6048
|
animation: none;
|
|
6032
6049
|
}
|
|
6033
6050
|
}
|
|
6034
|
-
.responding-ellipsis {
|
|
6035
|
-
display: inline-flex;
|
|
6036
|
-
width: 1.25rem;
|
|
6037
|
-
margin-left: auto;
|
|
6038
|
-
flex-shrink: 0;
|
|
6039
|
-
align-items: center;
|
|
6040
|
-
justify-content: center;
|
|
6041
|
-
gap: 0.1875rem;
|
|
6042
|
-
color: hsl(var(--primary));
|
|
6043
|
-
}
|
|
6044
|
-
.responding-ellipsis > span {
|
|
6045
|
-
width: 0.25rem;
|
|
6046
|
-
height: 0.25rem;
|
|
6047
|
-
border-radius: 9999px;
|
|
6048
|
-
background: currentColor;
|
|
6049
|
-
opacity: 0.6;
|
|
6050
|
-
animation: responding-ellipsis 0.8s ease-in-out infinite;
|
|
6051
|
-
}
|
|
6052
|
-
.responding-ellipsis > span:nth-child(2) {
|
|
6053
|
-
animation-delay: 0.15s;
|
|
6054
|
-
}
|
|
6055
|
-
.responding-ellipsis > span:nth-child(3) {
|
|
6056
|
-
animation-delay: 0.3s;
|
|
6057
|
-
}
|
|
6058
|
-
@media (prefers-reduced-motion: reduce) {
|
|
6059
|
-
.responding-ellipsis > span {
|
|
6060
|
-
animation: none;
|
|
6061
|
-
opacity: 0.8;
|
|
6062
|
-
}
|
|
6063
|
-
}
|
|
6064
6051
|
.animate-in {
|
|
6065
6052
|
animation: fade-in 0.25s ease-out;
|
|
6066
6053
|
}
|
|
@@ -6095,16 +6082,6 @@
|
|
|
6095
6082
|
background-position: 200% 0;
|
|
6096
6083
|
}
|
|
6097
6084
|
}
|
|
6098
|
-
@keyframes responding-ellipsis {
|
|
6099
|
-
0%, 80%, 100% {
|
|
6100
|
-
opacity: 0.6;
|
|
6101
|
-
transform: translateY(0);
|
|
6102
|
-
}
|
|
6103
|
-
40% {
|
|
6104
|
-
opacity: 1;
|
|
6105
|
-
transform: translateY(-1.5px);
|
|
6106
|
-
}
|
|
6107
|
-
}
|
|
6108
6085
|
@keyframes fade-in {
|
|
6109
6086
|
from {
|
|
6110
6087
|
opacity: 0;
|
package/dist/workbench.js
CHANGED
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
buildUnifiedPatch,
|
|
13
13
|
computeDiffStats,
|
|
14
14
|
resolveLanguage
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-G4YJYSFA.js";
|
|
16
16
|
import "./chunk-3J6FG3FJ.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QSCCNGXZ.js";
|
|
18
18
|
import "./chunk-VIREDUBF.js";
|
|
19
19
|
import "./chunk-77WVVJA4.js";
|
|
20
20
|
import "./chunk-OMUIPJQZ.js";
|
package/package.json
CHANGED