@tangle-network/sandbox-ui 0.60.0 → 0.61.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.
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3J6FG3FJ.js";
4
4
  import {
5
5
  PortsList
6
- } from "./chunk-D7JJLG4L.js";
6
+ } from "./chunk-OQZQFSWM.js";
7
7
  import {
8
8
  TerminalView
9
9
  } from "./chunk-VIREDUBF.js";
@@ -589,12 +589,24 @@ function RailExpandable({
589
589
  onClick: onNavigate,
590
590
  ...item.prefetch !== void 0 ? { prefetch: item.prefetch } : {},
591
591
  className: cn(
592
- "flex h-8 items-center gap-2 rounded-md px-2.5 text-[12px] transition-colors",
592
+ "flex h-8 min-w-0 items-center gap-2 rounded-md px-2.5 text-[12px] transition-colors",
593
593
  active ? "bg-[var(--accent-surface-strong)] font-medium text-[var(--accent-text)]" : "text-muted-foreground hover:bg-[var(--accent-surface-soft)] hover:text-foreground"
594
594
  ),
595
595
  children: [
596
596
  FIcon ? /* @__PURE__ */ jsx3(FIcon, { className: "h-4 w-4 shrink-0" }) : null,
597
- /* @__PURE__ */ jsx3("span", { className: "truncate", children: item.label })
597
+ /* @__PURE__ */ jsx3(
598
+ "span",
599
+ {
600
+ className: cn("min-w-0 flex-1 truncate", item.isLoading && "shimmer-text"),
601
+ ...item.isLoading ? { role: "status", "aria-label": "Agent responding" } : {},
602
+ children: item.label
603
+ }
604
+ ),
605
+ item.isLoading ? /* @__PURE__ */ jsxs2("span", { className: "responding-ellipsis", "aria-hidden": "true", children: [
606
+ /* @__PURE__ */ jsx3("span", {}),
607
+ /* @__PURE__ */ jsx3("span", {}),
608
+ /* @__PURE__ */ jsx3("span", {})
609
+ ] }) : null
598
610
  ]
599
611
  },
600
612
  item.id
@@ -183,6 +183,8 @@ interface RailExpandableSubItem {
183
183
  }>;
184
184
  href: string;
185
185
  prefetch?: "none" | "intent" | "render" | "viewport";
186
+ /** Show a live working indicator on the row while the item is busy. */
187
+ isLoading?: boolean;
186
188
  }
187
189
  interface RailExpandableProps {
188
190
  icon: React.ComponentType<{
package/dist/dashboard.js CHANGED
@@ -54,7 +54,7 @@ import {
54
54
  canAdminSandbox,
55
55
  parseInsufficientBalance,
56
56
  useSidebar
57
- } from "./chunk-D7JJLG4L.js";
57
+ } from "./chunk-OQZQFSWM.js";
58
58
  import {
59
59
  BillingDashboard,
60
60
  InfoPanel,
package/dist/globals.css CHANGED
@@ -6057,6 +6057,56 @@
6057
6057
  background-size: 200% 100%;
6058
6058
  animation: shimmer 2s infinite;
6059
6059
  }
6060
+ .shimmer-text {
6061
+ background-image: linear-gradient(
6062
+ 90deg,
6063
+ hsl(var(--muted-foreground)) 0%,
6064
+ hsl(var(--muted-foreground)) 28%,
6065
+ var(--accent-text) 50%,
6066
+ hsl(var(--muted-foreground)) 72%,
6067
+ hsl(var(--muted-foreground)) 100%
6068
+ );
6069
+ background-size: 200% 100%;
6070
+ -webkit-background-clip: text;
6071
+ background-clip: text;
6072
+ -webkit-text-fill-color: transparent;
6073
+ animation: shimmer 1.3s linear infinite;
6074
+ }
6075
+ @media (prefers-reduced-motion: reduce) {
6076
+ .shimmer-text {
6077
+ animation: none;
6078
+ }
6079
+ }
6080
+ .responding-ellipsis {
6081
+ display: inline-flex;
6082
+ width: 1.25rem;
6083
+ margin-left: auto;
6084
+ flex-shrink: 0;
6085
+ align-items: center;
6086
+ justify-content: center;
6087
+ gap: 0.1875rem;
6088
+ color: hsl(var(--primary));
6089
+ }
6090
+ .responding-ellipsis > span {
6091
+ width: 0.25rem;
6092
+ height: 0.25rem;
6093
+ border-radius: 9999px;
6094
+ background: currentColor;
6095
+ opacity: 0.6;
6096
+ animation: responding-ellipsis 0.8s ease-in-out infinite;
6097
+ }
6098
+ .responding-ellipsis > span:nth-child(2) {
6099
+ animation-delay: 0.15s;
6100
+ }
6101
+ .responding-ellipsis > span:nth-child(3) {
6102
+ animation-delay: 0.3s;
6103
+ }
6104
+ @media (prefers-reduced-motion: reduce) {
6105
+ .responding-ellipsis > span {
6106
+ animation: none;
6107
+ opacity: 0.8;
6108
+ }
6109
+ }
6060
6110
  .animate-in {
6061
6111
  animation: fade-in 0.25s ease-out;
6062
6112
  }
@@ -6091,6 +6141,16 @@
6091
6141
  background-position: 200% 0;
6092
6142
  }
6093
6143
  }
6144
+ @keyframes responding-ellipsis {
6145
+ 0%, 80%, 100% {
6146
+ opacity: 0.6;
6147
+ transform: translateY(0);
6148
+ }
6149
+ 40% {
6150
+ opacity: 1;
6151
+ transform: translateY(-1.5px);
6152
+ }
6153
+ }
6094
6154
  @keyframes fade-in {
6095
6155
  from {
6096
6156
  opacity: 0;
package/dist/index.js CHANGED
@@ -149,7 +149,7 @@ import {
149
149
  buildUnifiedPatch,
150
150
  computeDiffStats,
151
151
  resolveLanguage
152
- } from "./chunk-MKX3F55O.js";
152
+ } from "./chunk-J36F6LD2.js";
153
153
  import {
154
154
  FileArtifactPane,
155
155
  FilePreview,
@@ -214,7 +214,7 @@ import {
214
214
  canAdminSandbox,
215
215
  parseInsufficientBalance,
216
216
  useSidebar
217
- } from "./chunk-D7JJLG4L.js";
217
+ } from "./chunk-OQZQFSWM.js";
218
218
  import {
219
219
  BillingDashboard,
220
220
  InfoPanel,
package/dist/styles.css CHANGED
@@ -6057,6 +6057,56 @@
6057
6057
  background-size: 200% 100%;
6058
6058
  animation: shimmer 2s infinite;
6059
6059
  }
6060
+ .shimmer-text {
6061
+ background-image: linear-gradient(
6062
+ 90deg,
6063
+ hsl(var(--muted-foreground)) 0%,
6064
+ hsl(var(--muted-foreground)) 28%,
6065
+ var(--accent-text) 50%,
6066
+ hsl(var(--muted-foreground)) 72%,
6067
+ hsl(var(--muted-foreground)) 100%
6068
+ );
6069
+ background-size: 200% 100%;
6070
+ -webkit-background-clip: text;
6071
+ background-clip: text;
6072
+ -webkit-text-fill-color: transparent;
6073
+ animation: shimmer 1.3s linear infinite;
6074
+ }
6075
+ @media (prefers-reduced-motion: reduce) {
6076
+ .shimmer-text {
6077
+ animation: none;
6078
+ }
6079
+ }
6080
+ .responding-ellipsis {
6081
+ display: inline-flex;
6082
+ width: 1.25rem;
6083
+ margin-left: auto;
6084
+ flex-shrink: 0;
6085
+ align-items: center;
6086
+ justify-content: center;
6087
+ gap: 0.1875rem;
6088
+ color: hsl(var(--primary));
6089
+ }
6090
+ .responding-ellipsis > span {
6091
+ width: 0.25rem;
6092
+ height: 0.25rem;
6093
+ border-radius: 9999px;
6094
+ background: currentColor;
6095
+ opacity: 0.6;
6096
+ animation: responding-ellipsis 0.8s ease-in-out infinite;
6097
+ }
6098
+ .responding-ellipsis > span:nth-child(2) {
6099
+ animation-delay: 0.15s;
6100
+ }
6101
+ .responding-ellipsis > span:nth-child(3) {
6102
+ animation-delay: 0.3s;
6103
+ }
6104
+ @media (prefers-reduced-motion: reduce) {
6105
+ .responding-ellipsis > span {
6106
+ animation: none;
6107
+ opacity: 0.8;
6108
+ }
6109
+ }
6060
6110
  .animate-in {
6061
6111
  animation: fade-in 0.25s ease-out;
6062
6112
  }
@@ -6091,6 +6141,16 @@
6091
6141
  background-position: 200% 0;
6092
6142
  }
6093
6143
  }
6144
+ @keyframes responding-ellipsis {
6145
+ 0%, 80%, 100% {
6146
+ opacity: 0.6;
6147
+ transform: translateY(0);
6148
+ }
6149
+ 40% {
6150
+ opacity: 1;
6151
+ transform: translateY(-1.5px);
6152
+ }
6153
+ }
6094
6154
  @keyframes fade-in {
6095
6155
  from {
6096
6156
  opacity: 0;
package/dist/workbench.js CHANGED
@@ -12,9 +12,9 @@ import {
12
12
  buildUnifiedPatch,
13
13
  computeDiffStats,
14
14
  resolveLanguage
15
- } from "./chunk-MKX3F55O.js";
15
+ } from "./chunk-J36F6LD2.js";
16
16
  import "./chunk-3J6FG3FJ.js";
17
- import "./chunk-D7JJLG4L.js";
17
+ import "./chunk-OQZQFSWM.js";
18
18
  import "./chunk-OMUIPJQZ.js";
19
19
  import "./chunk-VIREDUBF.js";
20
20
  import "./chunk-77WVVJA4.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.60.0",
3
+ "version": "0.61.0",
4
4
  "description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
5
5
  "repository": {
6
6
  "type": "git",