@tangle-network/sandbox-ui 0.130.0 → 0.131.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/assets.d.ts +16 -2
- package/dist/assets.js +138 -52
- package/dist/globals.css +47 -8
- package/dist/{index-WKvzhZvh.d.ts → index-B2nE9_FN.d.ts} +6 -1
- package/dist/{index-DPCnMr4b.d.ts → index-DGil6iqm.d.ts} +6 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/styles.css +47 -8
- package/dist/{tree-data-CmysecQF.js → tree-data-DtoCNNBJ.js} +6 -3
- package/dist/vault-tree.d.ts +1 -1
- package/dist/vault-tree.js +1 -1
- package/dist/{workspace-BLFYJ6gc.js → workspace-DRz3SoJc.js} +2 -1
- package/dist/workspace.d.ts +1 -1
- package/dist/workspace.js +1 -1
- package/package.json +1 -1
package/dist/assets.d.ts
CHANGED
|
@@ -189,11 +189,13 @@ interface ApprovalQueueProps {
|
|
|
189
189
|
onSave?: (spec: AssetSpec) => void;
|
|
190
190
|
onRevisionRequest?: (id: string, instruction: string) => void;
|
|
191
191
|
onRenderRequest?: (id: string) => void;
|
|
192
|
+
/** Opens one asset's detail view, with the ids the queue shows, in order, for previous and next. */
|
|
193
|
+
onOpen?: (id: string, visibleIds: string[]) => void;
|
|
192
194
|
renderingIds?: Set<string>;
|
|
193
195
|
previewUrls?: Record<string, string>;
|
|
194
196
|
className?: string;
|
|
195
197
|
}
|
|
196
|
-
export declare function ApprovalQueue({ assets, variantCounts, onApprove, onReject, onEdit, onSave, onRevisionRequest, onRenderRequest, renderingIds, previewUrls, className }: ApprovalQueueProps): React$1.JSX.Element;
|
|
198
|
+
export declare function ApprovalQueue({ assets, variantCounts, onApprove, onReject, onEdit, onSave, onRevisionRequest, onRenderRequest, onOpen, renderingIds, previewUrls, className }: ApprovalQueueProps): React$1.JSX.Element;
|
|
197
199
|
//#endregion
|
|
198
200
|
//#region src/assets/asset-card.d.ts
|
|
199
201
|
interface AssetCardProps {
|
|
@@ -202,9 +204,15 @@ interface AssetCardProps {
|
|
|
202
204
|
onApprove?: (id: string) => void;
|
|
203
205
|
onReject?: (id: string) => void;
|
|
204
206
|
onEdit?: (id: string) => void;
|
|
207
|
+
/** Opens the asset's detail view. When set, the thumbnail and card body are one click target. */
|
|
208
|
+
onOpen?: (id: string) => void;
|
|
205
209
|
className?: string;
|
|
206
210
|
}
|
|
207
|
-
|
|
211
|
+
/** The URL of an image slide that is one picture with nothing layered on it. */
|
|
212
|
+
export declare function imageOnlyUrl(content: ImageContent): string | null;
|
|
213
|
+
/** The still frame a video asset carries: its first image scene or image slide. */
|
|
214
|
+
export declare function videoPosterUrl(content: VideoContent): string | null;
|
|
215
|
+
export declare function AssetCard({ spec, variantCount, onApprove, onReject, onEdit, onOpen, className }: AssetCardProps): import("react").JSX.Element;
|
|
208
216
|
//#endregion
|
|
209
217
|
//#region src/assets/asset-editor.d.ts
|
|
210
218
|
interface AssetEditorProps {
|
|
@@ -218,6 +226,12 @@ interface AssetEditorProps {
|
|
|
218
226
|
}
|
|
219
227
|
export declare function AssetEditor({ spec, previewUrl, isRendering, onSave, onRenderRequest, onRevisionRequest, className }: AssetEditorProps): React$1.JSX.Element;
|
|
220
228
|
//#endregion
|
|
229
|
+
//#region src/assets/labels.d.ts
|
|
230
|
+
/** Reader-facing name for each asset format. */
|
|
231
|
+
export declare const ASSET_FORMAT_LABEL: Record<AssetFormat, string>;
|
|
232
|
+
/** Reader-facing name for each review status. */
|
|
233
|
+
export declare const ASSET_STATUS_LABEL: Record<AssetStatus, string>;
|
|
234
|
+
//#endregion
|
|
221
235
|
//#region src/assets/preview/copy-preview.d.ts
|
|
222
236
|
interface CopyPreviewProps {
|
|
223
237
|
content: CopyContent;
|
package/dist/assets.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Badge, Button, Input, Label, Textarea } from "@tangle-network/ui/primit
|
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
import { Fragment as Fragment$1 } from "react";
|
|
6
|
-
import { Check, CheckCheck, ChevronDown, ChevronLeft, ChevronRight, Film, GitBranch, Loader2, MessageSquare, Pencil, Play, Save, Search, X } from "lucide-react";
|
|
6
|
+
import { Check, CheckCheck, ChevronDown, ChevronLeft, ChevronRight, Film, GitBranch, Loader2, Maximize2, MessageSquare, Pencil, Play, Save, Search, X } from "lucide-react";
|
|
7
7
|
//#region src/assets/preview/image-preview.tsx
|
|
8
8
|
const ASPECT = {
|
|
9
9
|
feed: "aspect-square",
|
|
@@ -118,6 +118,29 @@ function ImagePreview({ content, brand, format = "feed", className }) {
|
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
//#endregion
|
|
121
|
+
//#region src/assets/labels.ts
|
|
122
|
+
/** Reader-facing name for each asset format. */
|
|
123
|
+
const ASSET_FORMAT_LABEL = {
|
|
124
|
+
email: "Email",
|
|
125
|
+
"image:feed": "Feed image",
|
|
126
|
+
"image:story": "Story",
|
|
127
|
+
"image:carousel": "Carousel",
|
|
128
|
+
"video:reel": "Reel",
|
|
129
|
+
"video:feed": "Feed video",
|
|
130
|
+
"copy:caption": "Caption",
|
|
131
|
+
"copy:headline": "Headline",
|
|
132
|
+
"copy:sms": "SMS"
|
|
133
|
+
};
|
|
134
|
+
/** Reader-facing name for each review status. */
|
|
135
|
+
const ASSET_STATUS_LABEL = {
|
|
136
|
+
draft: "Draft",
|
|
137
|
+
pending_review: "Pending review",
|
|
138
|
+
approved: "Approved",
|
|
139
|
+
rejected: "Rejected",
|
|
140
|
+
scheduled: "Scheduled",
|
|
141
|
+
published: "Published"
|
|
142
|
+
};
|
|
143
|
+
//#endregion
|
|
121
144
|
//#region src/assets/asset-card.tsx
|
|
122
145
|
const STATUS_VARIANT = {
|
|
123
146
|
draft: "secondary",
|
|
@@ -127,111 +150,173 @@ const STATUS_VARIANT = {
|
|
|
127
150
|
scheduled: "secondary",
|
|
128
151
|
published: "default"
|
|
129
152
|
};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
153
|
+
/** The URL of an image slide that is one picture with nothing layered on it. */
|
|
154
|
+
function imageOnlyUrl(content) {
|
|
155
|
+
const slide = content.slides[0];
|
|
156
|
+
return slide && slide.layers.length === 0 && slide.background.type === "image" ? slide.background.url : null;
|
|
157
|
+
}
|
|
158
|
+
/** The still frame a video asset carries: its first image scene or image slide. */
|
|
159
|
+
function videoPosterUrl(content) {
|
|
160
|
+
for (const scene of content.scenes) {
|
|
161
|
+
if (scene.type === "image-reveal") return scene.imageUrl;
|
|
162
|
+
if (scene.type === "slide" && scene.slide.background.type === "image") return scene.slide.background.url;
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
function formatDuration(seconds) {
|
|
167
|
+
const whole = Math.max(0, Math.round(seconds));
|
|
168
|
+
return `${Math.floor(whole / 60)}:${String(whole % 60).padStart(2, "0")}`;
|
|
169
|
+
}
|
|
170
|
+
/** A short phrase that tells one asset from another of the same format. */
|
|
171
|
+
function assetSummary(spec) {
|
|
172
|
+
if (spec.format === "email") return spec.content.subject || null;
|
|
173
|
+
if (spec.format.startsWith("copy:")) return spec.content.headline || null;
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
138
176
|
function Thumbnail({ spec }) {
|
|
139
177
|
const { format, brand, content } = spec;
|
|
140
178
|
if (format === "email") {
|
|
141
179
|
const ec = content;
|
|
142
180
|
return /* @__PURE__ */ jsxs("div", {
|
|
143
|
-
className: "
|
|
181
|
+
className: "flex h-full flex-col gap-1 p-3 text-sm",
|
|
144
182
|
children: [/* @__PURE__ */ jsx("div", {
|
|
145
|
-
className: "font-medium
|
|
183
|
+
className: "line-clamp-3 font-medium",
|
|
146
184
|
children: ec.subject
|
|
147
185
|
}), /* @__PURE__ */ jsxs("div", {
|
|
148
|
-
className: "text-muted-foreground
|
|
186
|
+
className: "text-xs text-muted-foreground",
|
|
149
187
|
children: [ec.sections.length, " sections"]
|
|
150
188
|
})]
|
|
151
189
|
});
|
|
152
190
|
}
|
|
153
|
-
if (format.startsWith("image:"))
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
191
|
+
if (format.startsWith("image:")) {
|
|
192
|
+
const ic = content;
|
|
193
|
+
const url = imageOnlyUrl(ic);
|
|
194
|
+
if (url) return /* @__PURE__ */ jsx("img", {
|
|
195
|
+
src: url,
|
|
196
|
+
alt: "",
|
|
197
|
+
loading: "lazy",
|
|
198
|
+
decoding: "async",
|
|
199
|
+
className: "h-full w-full object-contain"
|
|
200
|
+
});
|
|
201
|
+
return /* @__PURE__ */ jsx("div", {
|
|
202
|
+
className: "h-full overflow-hidden",
|
|
203
|
+
children: /* @__PURE__ */ jsx(ImagePreview, {
|
|
204
|
+
content: ic,
|
|
205
|
+
brand,
|
|
206
|
+
format: format === "image:story" ? "story" : "feed"
|
|
207
|
+
})
|
|
208
|
+
});
|
|
209
|
+
}
|
|
162
210
|
if (format.startsWith("video:")) {
|
|
163
211
|
const vc = content;
|
|
212
|
+
const poster = videoPosterUrl(vc);
|
|
164
213
|
return /* @__PURE__ */ jsxs("div", {
|
|
165
|
-
className: "
|
|
166
|
-
children: [
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
214
|
+
className: "relative h-full w-full",
|
|
215
|
+
children: [
|
|
216
|
+
poster ? /* @__PURE__ */ jsx("img", {
|
|
217
|
+
src: poster,
|
|
218
|
+
alt: "",
|
|
219
|
+
loading: "lazy",
|
|
220
|
+
decoding: "async",
|
|
221
|
+
className: "h-full w-full object-contain"
|
|
222
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
223
|
+
className: "flex h-full flex-col gap-1 p-3 text-sm",
|
|
224
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
225
|
+
className: "font-medium",
|
|
226
|
+
children: [vc.scenes.length, " scenes"]
|
|
227
|
+
})
|
|
228
|
+
}),
|
|
229
|
+
/* @__PURE__ */ jsx("span", {
|
|
230
|
+
className: "pointer-events-none absolute top-1/2 left-1/2 flex size-10 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-black/60 text-white",
|
|
231
|
+
children: /* @__PURE__ */ jsx(Play, {
|
|
232
|
+
size: 18,
|
|
233
|
+
className: "translate-x-px",
|
|
234
|
+
"aria-hidden": true
|
|
235
|
+
})
|
|
236
|
+
}),
|
|
237
|
+
/* @__PURE__ */ jsx("span", {
|
|
238
|
+
className: "pointer-events-none absolute right-2 bottom-2 rounded bg-black/70 px-1.5 py-0.5 text-xs text-white tabular-nums",
|
|
239
|
+
children: formatDuration(vc.durationSeconds)
|
|
240
|
+
})
|
|
241
|
+
]
|
|
173
242
|
});
|
|
174
243
|
}
|
|
175
244
|
if (format.startsWith("copy:")) {
|
|
176
245
|
const cc = content;
|
|
177
246
|
return /* @__PURE__ */ jsxs("div", {
|
|
178
|
-
className: "
|
|
247
|
+
className: "flex h-full flex-col gap-1 p-3 text-sm",
|
|
179
248
|
children: [/* @__PURE__ */ jsx("div", {
|
|
180
|
-
className: "font-medium
|
|
249
|
+
className: "line-clamp-2 font-medium",
|
|
181
250
|
children: cc.headline
|
|
182
251
|
}), /* @__PURE__ */ jsx("div", {
|
|
183
|
-
className: "
|
|
252
|
+
className: "line-clamp-4 text-xs text-muted-foreground",
|
|
184
253
|
children: cc.body
|
|
185
254
|
})]
|
|
186
255
|
});
|
|
187
256
|
}
|
|
188
257
|
return null;
|
|
189
258
|
}
|
|
190
|
-
function AssetCard({ spec, variantCount, onApprove, onReject, onEdit, className }) {
|
|
259
|
+
function AssetCard({ spec, variantCount, onApprove, onReject, onEdit, onOpen, className }) {
|
|
260
|
+
const formatLabel = ASSET_FORMAT_LABEL[spec.format] ?? spec.format;
|
|
261
|
+
const statusLabel = ASSET_STATUS_LABEL[spec.status] ?? spec.status;
|
|
262
|
+
const summary = assetSummary(spec);
|
|
263
|
+
const hasActions = Boolean(onEdit || spec.status === "pending_review" && (onReject || onApprove));
|
|
191
264
|
return /* @__PURE__ */ jsxs("div", {
|
|
192
|
-
|
|
265
|
+
"data-asset-id": spec.id,
|
|
266
|
+
className: cn("group relative flex flex-col overflow-hidden rounded-lg border border-border bg-card transition-[border-color,box-shadow]", onOpen && "hover:border-primary/60 hover:shadow-md", className),
|
|
193
267
|
children: [
|
|
194
|
-
/* @__PURE__ */ jsx("
|
|
195
|
-
|
|
196
|
-
|
|
268
|
+
onOpen && /* @__PURE__ */ jsx("button", {
|
|
269
|
+
type: "button",
|
|
270
|
+
"data-asset-open": "",
|
|
271
|
+
onClick: () => onOpen(spec.id),
|
|
272
|
+
"aria-label": `Open ${formatLabel.toLowerCase()}${summary ? `: ${summary}` : ""}, ${statusLabel.toLowerCase()}`,
|
|
273
|
+
className: "absolute inset-0 z-[1] cursor-pointer rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"
|
|
197
274
|
}),
|
|
198
275
|
/* @__PURE__ */ jsxs("div", {
|
|
199
|
-
className: "
|
|
276
|
+
className: "relative aspect-square overflow-hidden bg-muted/40",
|
|
277
|
+
children: [/* @__PURE__ */ jsx(Thumbnail, { spec }), onOpen && /* @__PURE__ */ jsx("span", {
|
|
278
|
+
"aria-hidden": true,
|
|
279
|
+
className: "pointer-events-none absolute top-2 right-2 flex size-7 items-center justify-center rounded-md bg-background/90 text-foreground opacity-0 shadow-sm transition-opacity group-hover:opacity-100 group-focus-within:opacity-100",
|
|
280
|
+
children: /* @__PURE__ */ jsx(Maximize2, { size: 14 })
|
|
281
|
+
})]
|
|
282
|
+
}),
|
|
283
|
+
/* @__PURE__ */ jsxs("div", {
|
|
284
|
+
className: "flex items-center gap-2 px-2.5 py-2",
|
|
200
285
|
children: [
|
|
201
286
|
/* @__PURE__ */ jsx("span", {
|
|
202
|
-
className: "text-
|
|
203
|
-
children:
|
|
287
|
+
className: "min-w-0 flex-1 truncate text-xs text-muted-foreground",
|
|
288
|
+
children: formatLabel
|
|
204
289
|
}),
|
|
205
290
|
/* @__PURE__ */ jsx(Badge, {
|
|
206
291
|
variant: STATUS_VARIANT[spec.status],
|
|
207
|
-
className: "
|
|
208
|
-
children:
|
|
292
|
+
className: "shrink-0 text-xs",
|
|
293
|
+
children: statusLabel
|
|
209
294
|
}),
|
|
210
295
|
variantCount !== void 0 && variantCount > 0 && /* @__PURE__ */ jsxs("span", {
|
|
211
|
-
className: "flex items-center gap-0.5 text-
|
|
212
|
-
children: [/* @__PURE__ */ jsx(GitBranch, { size:
|
|
296
|
+
className: "flex shrink-0 items-center gap-0.5 text-xs text-muted-foreground",
|
|
297
|
+
children: [/* @__PURE__ */ jsx(GitBranch, { size: 12 }), variantCount]
|
|
213
298
|
})
|
|
214
299
|
]
|
|
215
300
|
}),
|
|
216
|
-
/* @__PURE__ */ jsxs("div", {
|
|
217
|
-
className: "flex border-t border-border",
|
|
301
|
+
hasActions && /* @__PURE__ */ jsxs("div", {
|
|
302
|
+
className: "relative z-[2] flex border-t border-border bg-card",
|
|
218
303
|
children: [
|
|
219
304
|
onEdit && /* @__PURE__ */ jsxs("button", {
|
|
220
305
|
type: "button",
|
|
221
306
|
onClick: () => onEdit(spec.id),
|
|
222
|
-
className: "flex-1
|
|
307
|
+
className: "flex flex-1 items-center justify-center gap-1 py-2 text-xs text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground",
|
|
223
308
|
children: [/* @__PURE__ */ jsx(Pencil, { size: 12 }), "Edit"]
|
|
224
309
|
}),
|
|
225
310
|
onReject && spec.status === "pending_review" && /* @__PURE__ */ jsxs("button", {
|
|
226
311
|
type: "button",
|
|
227
312
|
onClick: () => onReject(spec.id),
|
|
228
|
-
className: "flex-1
|
|
313
|
+
className: "flex flex-1 items-center justify-center gap-1 border-l border-border py-2 text-xs text-muted-foreground transition-colors hover:bg-destructive/5 hover:text-destructive",
|
|
229
314
|
children: [/* @__PURE__ */ jsx(X, { size: 12 }), "Reject"]
|
|
230
315
|
}),
|
|
231
316
|
onApprove && spec.status === "pending_review" && /* @__PURE__ */ jsxs("button", {
|
|
232
317
|
type: "button",
|
|
233
318
|
onClick: () => onApprove(spec.id),
|
|
234
|
-
className: "flex-1
|
|
319
|
+
className: "flex flex-1 items-center justify-center gap-1 border-l border-border py-2 text-xs text-muted-foreground transition-colors hover:bg-green-600/5 hover:text-green-600",
|
|
235
320
|
children: [/* @__PURE__ */ jsx(Check, { size: 12 }), "Approve"]
|
|
236
321
|
})
|
|
237
322
|
]
|
|
@@ -886,7 +971,7 @@ const STATUS_OPTIONS = [
|
|
|
886
971
|
label: "Published"
|
|
887
972
|
}
|
|
888
973
|
];
|
|
889
|
-
function ApprovalQueue({ assets, variantCounts = {}, onApprove, onReject, onEdit, onSave, onRevisionRequest, onRenderRequest, renderingIds = /* @__PURE__ */ new Set(), previewUrls = {}, className }) {
|
|
974
|
+
function ApprovalQueue({ assets, variantCounts = {}, onApprove, onReject, onEdit, onSave, onRevisionRequest, onRenderRequest, onOpen, renderingIds = /* @__PURE__ */ new Set(), previewUrls = {}, className }) {
|
|
890
975
|
const [search, setSearch] = React$1.useState("");
|
|
891
976
|
const [formatFilter, setFormatFilter] = React$1.useState("all");
|
|
892
977
|
const [statusFilter, setStatusFilter] = React$1.useState("pending_review");
|
|
@@ -1013,10 +1098,11 @@ function ApprovalQueue({ assets, variantCounts = {}, onApprove, onReject, onEdit
|
|
|
1013
1098
|
variantCount: variantCounts[a.id],
|
|
1014
1099
|
onApprove,
|
|
1015
1100
|
onReject,
|
|
1016
|
-
onEdit: () => setEditingId(a.id)
|
|
1101
|
+
onEdit: () => setEditingId(a.id),
|
|
1102
|
+
onOpen: onOpen ? (id) => onOpen(id, filtered.map((asset) => asset.id)) : void 0
|
|
1017
1103
|
}, a.id))
|
|
1018
1104
|
})]
|
|
1019
1105
|
});
|
|
1020
1106
|
}
|
|
1021
1107
|
//#endregion
|
|
1022
|
-
export { ApprovalQueue, AssetCard, AssetEditor, CopyPreview, EmailPreview, ImagePreview, VideoPreview };
|
|
1108
|
+
export { ASSET_FORMAT_LABEL, ASSET_STATUS_LABEL, ApprovalQueue, AssetCard, AssetEditor, CopyPreview, EmailPreview, ImagePreview, VideoPreview, imageOnlyUrl, videoPosterUrl };
|
package/dist/globals.css
CHANGED
|
@@ -435,6 +435,12 @@
|
|
|
435
435
|
.z-50 {
|
|
436
436
|
z-index: 50;
|
|
437
437
|
}
|
|
438
|
+
.z-\[1\] {
|
|
439
|
+
z-index: 1;
|
|
440
|
+
}
|
|
441
|
+
.z-\[2\] {
|
|
442
|
+
z-index: 2;
|
|
443
|
+
}
|
|
438
444
|
.z-\[70\] {
|
|
439
445
|
z-index: 70;
|
|
440
446
|
}
|
|
@@ -736,6 +742,10 @@
|
|
|
736
742
|
width: calc(var(--spacing) * 6);
|
|
737
743
|
height: calc(var(--spacing) * 6);
|
|
738
744
|
}
|
|
745
|
+
.size-7 {
|
|
746
|
+
width: calc(var(--spacing) * 7);
|
|
747
|
+
height: calc(var(--spacing) * 7);
|
|
748
|
+
}
|
|
739
749
|
.size-8 {
|
|
740
750
|
width: calc(var(--spacing) * 8);
|
|
741
751
|
height: calc(var(--spacing) * 8);
|
|
@@ -1680,6 +1690,10 @@
|
|
|
1680
1690
|
--tw-translate-x: -50%;
|
|
1681
1691
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1682
1692
|
}
|
|
1693
|
+
.translate-x-px {
|
|
1694
|
+
--tw-translate-x: 1px;
|
|
1695
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1696
|
+
}
|
|
1683
1697
|
.-translate-y-1\/2 {
|
|
1684
1698
|
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
|
1685
1699
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -2659,6 +2673,12 @@
|
|
|
2659
2673
|
background-color: color-mix(in oklab, hsl(var(--background)) 80%, transparent);
|
|
2660
2674
|
}
|
|
2661
2675
|
}
|
|
2676
|
+
.bg-background\/90 {
|
|
2677
|
+
background-color: hsl(var(--background));
|
|
2678
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2679
|
+
background-color: color-mix(in oklab, hsl(var(--background)) 90%, transparent);
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2662
2682
|
.bg-black {
|
|
2663
2683
|
background-color: var(--color-black);
|
|
2664
2684
|
}
|
|
@@ -2674,6 +2694,18 @@
|
|
|
2674
2694
|
background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
|
|
2675
2695
|
}
|
|
2676
2696
|
}
|
|
2697
|
+
.bg-black\/60 {
|
|
2698
|
+
background-color: color-mix(in srgb, #000 60%, transparent);
|
|
2699
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2700
|
+
background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
|
|
2701
|
+
}
|
|
2702
|
+
}
|
|
2703
|
+
.bg-black\/70 {
|
|
2704
|
+
background-color: color-mix(in srgb, #000 70%, transparent);
|
|
2705
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2706
|
+
background-color: color-mix(in oklab, var(--color-black) 70%, transparent);
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2677
2709
|
.bg-black\/80 {
|
|
2678
2710
|
background-color: color-mix(in srgb, #000 80%, transparent);
|
|
2679
2711
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -4193,6 +4225,9 @@
|
|
|
4193
4225
|
.ring-inset {
|
|
4194
4226
|
--tw-ring-inset: inset;
|
|
4195
4227
|
}
|
|
4228
|
+
.group-focus-within\:opacity-100:is(:where(.group):focus-within *) {
|
|
4229
|
+
opacity: 100%;
|
|
4230
|
+
}
|
|
4196
4231
|
@media (hover: hover) {
|
|
4197
4232
|
.group-hover\:block:is(:where(.group):hover *) {
|
|
4198
4233
|
display: block;
|
|
@@ -4367,14 +4402,6 @@
|
|
|
4367
4402
|
border-color: color-mix(in oklab, hsl(var(--accent)) 50%, transparent);
|
|
4368
4403
|
}
|
|
4369
4404
|
}
|
|
4370
|
-
.hover\:border-border\/80:hover {
|
|
4371
|
-
border-color: hsl(var(--border));
|
|
4372
|
-
}
|
|
4373
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
4374
|
-
.hover\:border-border\/80:hover {
|
|
4375
|
-
border-color: color-mix(in oklab, hsl(var(--border)) 80%, transparent);
|
|
4376
|
-
}
|
|
4377
|
-
}
|
|
4378
4405
|
.hover\:border-destructive\/30:hover {
|
|
4379
4406
|
border-color: hsl(var(--destructive));
|
|
4380
4407
|
}
|
|
@@ -4434,6 +4461,14 @@
|
|
|
4434
4461
|
border-color: color-mix(in oklab, hsl(var(--primary)) 50%, transparent);
|
|
4435
4462
|
}
|
|
4436
4463
|
}
|
|
4464
|
+
.hover\:border-primary\/60:hover {
|
|
4465
|
+
border-color: hsl(var(--primary));
|
|
4466
|
+
}
|
|
4467
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4468
|
+
.hover\:border-primary\/60:hover {
|
|
4469
|
+
border-color: color-mix(in oklab, hsl(var(--primary)) 60%, transparent);
|
|
4470
|
+
}
|
|
4471
|
+
}
|
|
4437
4472
|
.hover\:\!bg-primary:hover {
|
|
4438
4473
|
background-color: hsl(var(--primary)) !important;
|
|
4439
4474
|
}
|
|
@@ -4738,6 +4773,10 @@
|
|
|
4738
4773
|
.hover\:opacity-100:hover {
|
|
4739
4774
|
opacity: 100%;
|
|
4740
4775
|
}
|
|
4776
|
+
.hover\:shadow-md:hover {
|
|
4777
|
+
--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
4778
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
4779
|
+
}
|
|
4741
4780
|
.hover\:shadow-sm:hover {
|
|
4742
4781
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
4743
4782
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -750,7 +750,12 @@ type WorkspaceFilesSource = {
|
|
|
750
750
|
type WorkspaceFilesPaneProps = WorkspaceFilesSource & {
|
|
751
751
|
/** The open file. Its row is selected and its folders are revealed when it changes. */
|
|
752
752
|
selectedPath?: string;
|
|
753
|
-
/**
|
|
753
|
+
/**
|
|
754
|
+
* Called when the reader opens a file, and on every folder row click (the
|
|
755
|
+
* folder also expands or collapses). A folder's path carries a trailing `/`,
|
|
756
|
+
* as it did when this pane rendered RichFileTree; check `node.type` to tell
|
|
757
|
+
* them apart.
|
|
758
|
+
*/
|
|
754
759
|
onSelect?: (path: string, node?: FileNode) => void;
|
|
755
760
|
preview?: WorkspaceFilesPreview;
|
|
756
761
|
onBack?: () => void;
|
|
@@ -13,6 +13,11 @@ interface VaultTreeProps {
|
|
|
13
13
|
onSelect: (path: string) => void;
|
|
14
14
|
/** Called after the reader expands or collapses a folder. */
|
|
15
15
|
onFolderToggle?: (path: string, expanded: boolean) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Called every time the reader activates a folder row (click, Enter or
|
|
18
|
+
* Space), whether or not that changes its expansion, as when filtering.
|
|
19
|
+
*/
|
|
20
|
+
onFolderSelect?: (path: string) => void;
|
|
16
21
|
/**
|
|
17
22
|
* Remembers folder expansion in this browser under this key, for example
|
|
18
23
|
* `${userId}:${workspaceId}`. Omit to keep expansion for the mounted tree only.
|
|
@@ -24,7 +29,7 @@ interface VaultTreeProps {
|
|
|
24
29
|
label?: string;
|
|
25
30
|
className?: string;
|
|
26
31
|
}
|
|
27
|
-
declare function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, storageKey, expandAll, label, className }: VaultTreeProps): import("react").JSX.Element;
|
|
32
|
+
declare function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, onFolderSelect, storageKey, expandAll, label, className }: VaultTreeProps): import("react").JSX.Element;
|
|
28
33
|
//#endregion
|
|
29
34
|
//#region src/vault-tree/tree-data.d.ts
|
|
30
35
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -10,12 +10,12 @@ import { t as Session } from "./sidecar-DgH_vQ6m.js";
|
|
|
10
10
|
import { d as useSessionStream, l as UseSessionStreamOptions, n as UseSidecarAuthOptions, o as SessionDegradation, r as useSidecarAuth, s as SessionInfo, t as SidecarAuth, u as UseSessionStreamResult } from "./use-sidecar-auth-CCTJcrq7.js";
|
|
11
11
|
import { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SandboxMetrics, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SidecarMetricsPayload, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSandboxMetricsOptions, UseSandboxMetricsResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useLiveTime, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessions, useToolCallStream } from "./hooks.js";
|
|
12
12
|
import { $ as ContextMenuShortcut, $n as TableProps, $t as PageShell, A as CardFooter, An as SheetPortal, Ar as badgeVariants, At as DropdownMenuSubTrigger, B as Collapsible, Bn as StatCardProps, Br as LogoProps, Bt as IconTile, C as BadgeProps, Cn as Sheet, Cr as Tooltip, Ct as DropdownMenuPortal, D as Card, Dn as SheetFooter, Dr as UploadFile, Dt as DropdownMenuShortcut, E as CATEGORY_TONES, En as SheetDescription, Er as TooltipTrigger, Et as DropdownMenuSeparator, F as Checkbox, Fn as Skeleton, Fr as useToast, Ft as FilterFieldProps, G as ContextMenuContent, Gn as TONE_CLASSES, Gt as InputProps, H as CollapsibleTrigger, Hn as StatusPillProps, Ht as InlineCode, I as Chip, In as SkeletonCard, Ir as HeadingProps, It as Heading, J as ContextMenuLabel, Jn as TableCaption, Jt as MetricProps, K as ContextMenuGroup, Kn as Table, Kt as Label, L as ChipProps, Ln as SkeletonTable, Lr as SectionTitle, Lt as HeadingVariant, M as CardTitle, Mn as SheetTrigger, Mr as initialsOf, Mt as EmptyState, N as CardTitleProps, Nn as SidebarDropZone, Nr as toneFor, Nt as EmptyStateProps, O as CardContent, On as SheetHeader, Or as UploadProgress, Ot as DropdownMenuSub, P as CategoryTone, Pn as SidebarDropZoneProps, Pr as useTheme, Pt as FilterField, Q as ContextMenuSeparator, Qn as TableHeader, Qt as PageHeaderProps, R as CodeBlock, Rn as Slider, Rr as SectionTitleProps, Rt as HelpText, S as Badge, Sn as Separator, Sr as ToolbarProps, St as DropdownMenuLabel, T as ButtonProps, Tn as SheetContent, Tr as TooltipProvider, Tt as DropdownMenuRadioItem, U as ContextMenu, Un as StatusTone, Ut as InlineCodeProps, V as CollapsibleContent, Vn as StatusPill, Vr as TangleKnot, Vt as IconTileProps, W as ContextMenuCheckboxItem, Wn as Switch, Wt as Input, X as ContextMenuRadioGroup, Xn as TableFooter, Xt as MetricStripProps, Y as ContextMenuPortal, Yn as TableCell, Yt as MetricStrip, Z as ContextMenuRadioItem, Zn as TableHead, Zt as PageHeader, _n as SelectScrollDownButton, _r as ToastContainer, _t as DropdownMenu, a as AlertDialogCancel, an as PopoverClose, ar as Tag, at as Dialog, b as AvatarFallback, bn as SelectTrigger, br as ToneClasses, bt as DropdownMenuGroup, c as AlertDialogFooter, cn as Progress, cr as TerminalDisplay, ct as DialogDescription, d as AlertDialogPortal, dn as SegmentedControlProps, dr as TextShimmer, dt as DialogOverlay, en as PageShellProps, er as TableRow, et as ContextMenuSub, f as AlertDialogTitle, fn as Select, fr as TextShimmerProps, ft as DialogPortal, g as AlertTone, gn as SelectLabel, gr as Toast, gt as DropZoneProps, h as AlertTitle, hn as SelectItem, hr as ThemeToggle, ht as DropZone, i as AlertDialogAction, in as PopoverAnchor, ir as TabsTrigger, it as CopyButton, j as CardHeader, jn as SheetTitle, jr as buttonVariants, jt as DropdownMenuTrigger, k as CardDescription, kn as SheetOverlay, kr as UploadProgressProps, kt as DropdownMenuSubContent, l as AlertDialogHeader, ln as SegmentedControl, lt as DialogFooter, m as AlertProps, mn as SelectGroup, mr as TextareaProps, mt as DialogTrigger, n as AlertDescription, nn as PaginationProps, nr as TabsContent, nt as ContextMenuSubTrigger, o as AlertDialogContent, on as PopoverContent, or as TagProps, ot as DialogClose, p as AlertDialogTrigger, pn as SelectContent, pr as Textarea, pt as DialogTitle, q as ContextMenuItem, qn as TableBody, qt as Metric, r as AlertDialog, rn as Popover, rr as TabsList, rt as ContextMenuTrigger, s as AlertDialogDescription, sn as PopoverTrigger, st as DialogContent, t as Alert, tn as Pagination, tr as Tabs, tt as ContextMenuSubContent, u as AlertDialogOverlay, un as SegmentedControlOption, ut as DialogHeader, vn as SelectScrollUpButton, vr as ToastProvider, vt as DropdownMenuCheckboxItem, w as Button, wn as SheetClose, wr as TooltipContent, wt as DropdownMenuRadioGroup, x as AvatarImage, xn as SelectValue, xr as Toolbar, xt as DropdownMenuItem, y as Avatar, yn as SelectSeparator, yr as Tone, yt as DropdownMenuContent, z as CodeBlockProps, zn as StatCard, zr as Logo, zt as HelpTextProps } from "./index-C6oItkj5.js";
|
|
13
|
-
import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-
|
|
13
|
+
import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-B2nE9_FN.js";
|
|
14
14
|
import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-DNClXEEe.js";
|
|
15
15
|
import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-B_vMTtJn.js";
|
|
16
16
|
import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISchemaIssue, OpenUISchemaValidation, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
|
|
17
17
|
import { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, RunRowShell, RunRowShellProps, RunRowStatus, RunRowStatusDot, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from "./run.js";
|
|
18
|
-
import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-
|
|
18
|
+
import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DGil6iqm.js";
|
|
19
19
|
import { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, ChatSession, RegisterActiveSessionOptions, SessionProjectKey, activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, connectSession, disconnectSession, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions } from "./stores.js";
|
|
20
20
|
import { AgentBranding, CustomToolRenderer, DisplayVariant, FinalTextPart, GroupedMessage, MessageRun, MessageUser, ReasoningPart, Run, RunStats, SessionMessage, SessionPart, TextPart, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime } from "./types.js";
|
|
21
21
|
import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText } from "./utils.js";
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-C2CzWiZU.js";
|
|
2
2
|
import { $ as DialogDescription, $n as Logo, $t as Sheet, A as CodeBlock, An as Tag, At as Metric, B as ContextMenuPortal, Bn as Toolbar, Bt as Progress, C as CardContent, Cn as TableHead, Ct as FilterField, D as CardTitle, Dn as TabsContent, Dt as InlineCode, E as CardHeader, En as Tabs, Et as IconTile, F as ContextMenuCheckboxItem, Fn as TextShimmer, Ft as Popover, G as ContextMenuSub, Gn as UploadProgress, Gt as SelectItem, H as ContextMenuRadioItem, Hn as TooltipContent, Ht as Select, I as ContextMenuContent, In as Textarea, It as PopoverAnchor, J as ContextMenuTrigger, Jn as initialsOf, Jt as SelectScrollUpButton, K as ContextMenuSubContent, Kn as badgeVariants, Kt as SelectLabel, L as ContextMenuGroup, Ln as ThemeToggle, Lt as PopoverClose, M as CollapsibleContent, Mn as TerminalDisplay, Mt as PageHeader, N as CollapsibleTrigger, Nt as PageShell, O as Checkbox, On as TabsList, Ot as Input, P as ContextMenu, Pt as Pagination, Q as DialogContent, Qn as SectionTitle, Qt as Separator, R as ContextMenuItem, Rn as ToastContainer, Rt as PopoverContent, S as Card, Sn as TableFooter, St as EmptyState, T as CardFooter, Tn as TableRow, Tt as HelpText, U as ContextMenuSeparator, Un as TooltipProvider, Ut as SelectContent, V as ContextMenuRadioGroup, Vn as Tooltip, Vt as SegmentedControl, W as ContextMenuShortcut, Wn as TooltipTrigger, Wt as SelectGroup, X as Dialog, Xn as useTheme, Xt as SelectTrigger, Y as CopyButton, Yn as toneFor, Yt as SelectSeparator, Z as DialogClose, Zn as useToast, Zt as SelectValue, _ as AvatarFallback, _n as TONE_CLASSES, _t as DropdownMenuShortcut, a as AlertDialogCancel, an as SheetOverlay, at as DialogTrigger, b as Button, bn as TableCaption, bt as DropdownMenuSubTrigger, c as AlertDialogFooter, cn as SheetTrigger, ct as DropdownMenuCheckboxItem, d as AlertDialogPortal, dn as SkeletonCard, dt as DropdownMenuItem, en as SheetClose, er as TangleKnot, et as DialogFooter, f as AlertDialogTitle, fn as SkeletonTable, ft as DropdownMenuLabel, g as Avatar, gn as Switch, gt as DropdownMenuSeparator, hn as StatusPill, ht as DropdownMenuRadioItem, i as AlertDialogAction, in as SheetHeader, it as DialogTitle, j as Collapsible, jt as MetricStrip, k as Chip, kn as TabsTrigger, kt as Label, l as AlertDialogHeader, ln as SidebarDropZone, lt as DropdownMenuContent, m as AlertTitle, mn as StatCard, mt as DropdownMenuRadioGroup, n as AlertDescription, nn as SheetDescription, nt as DialogOverlay, o as AlertDialogContent, on as SheetPortal, ot as DropZone, p as AlertDialogTrigger, pn as Slider, pt as DropdownMenuPortal, q as ContextMenuSubTrigger, qn as buttonVariants, qt as SelectScrollDownButton, r as AlertDialog, rn as SheetFooter, rt as DialogPortal, s as AlertDialogDescription, sn as SheetTitle, st as DropdownMenu, t as Alert, tn as SheetContent, tt as DialogHeader, u as AlertDialogOverlay, un as Skeleton, ut as DropdownMenuGroup, v as AvatarImage, vn as Table, vt as DropdownMenuSub, w as CardDescription, wn as TableHeader, wt as Heading, x as CATEGORY_TONES, xn as TableCell, xt as DropdownMenuTrigger, y as Badge, yn as TableBody, yt as DropdownMenuSubContent, z as ContextMenuLabel, zn as ToastProvider, zt as PopoverTrigger } from "./primitives-JjV1ruzp.js";
|
|
3
3
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
4
|
-
import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-
|
|
5
|
-
import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-
|
|
4
|
+
import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-DRz3SoJc.js";
|
|
5
|
+
import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
|
|
6
6
|
import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-BW-rPRwj.js";
|
|
7
7
|
import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
|
|
8
8
|
import { a as formatPrice, i as PricingPage, n as SandboxPageShell, o as BillingDashboard, r as UsageChart, t as DashboardPageHeader } from "./page-layout-2IRtfx51.js";
|
package/dist/styles.css
CHANGED
|
@@ -435,6 +435,12 @@
|
|
|
435
435
|
.z-50 {
|
|
436
436
|
z-index: 50;
|
|
437
437
|
}
|
|
438
|
+
.z-\[1\] {
|
|
439
|
+
z-index: 1;
|
|
440
|
+
}
|
|
441
|
+
.z-\[2\] {
|
|
442
|
+
z-index: 2;
|
|
443
|
+
}
|
|
438
444
|
.z-\[70\] {
|
|
439
445
|
z-index: 70;
|
|
440
446
|
}
|
|
@@ -736,6 +742,10 @@
|
|
|
736
742
|
width: calc(var(--spacing) * 6);
|
|
737
743
|
height: calc(var(--spacing) * 6);
|
|
738
744
|
}
|
|
745
|
+
.size-7 {
|
|
746
|
+
width: calc(var(--spacing) * 7);
|
|
747
|
+
height: calc(var(--spacing) * 7);
|
|
748
|
+
}
|
|
739
749
|
.size-8 {
|
|
740
750
|
width: calc(var(--spacing) * 8);
|
|
741
751
|
height: calc(var(--spacing) * 8);
|
|
@@ -1680,6 +1690,10 @@
|
|
|
1680
1690
|
--tw-translate-x: -50%;
|
|
1681
1691
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1682
1692
|
}
|
|
1693
|
+
.translate-x-px {
|
|
1694
|
+
--tw-translate-x: 1px;
|
|
1695
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1696
|
+
}
|
|
1683
1697
|
.-translate-y-1\/2 {
|
|
1684
1698
|
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
|
1685
1699
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -2659,6 +2673,12 @@
|
|
|
2659
2673
|
background-color: color-mix(in oklab, hsl(var(--background)) 80%, transparent);
|
|
2660
2674
|
}
|
|
2661
2675
|
}
|
|
2676
|
+
.bg-background\/90 {
|
|
2677
|
+
background-color: hsl(var(--background));
|
|
2678
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2679
|
+
background-color: color-mix(in oklab, hsl(var(--background)) 90%, transparent);
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2662
2682
|
.bg-black {
|
|
2663
2683
|
background-color: var(--color-black);
|
|
2664
2684
|
}
|
|
@@ -2674,6 +2694,18 @@
|
|
|
2674
2694
|
background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
|
|
2675
2695
|
}
|
|
2676
2696
|
}
|
|
2697
|
+
.bg-black\/60 {
|
|
2698
|
+
background-color: color-mix(in srgb, #000 60%, transparent);
|
|
2699
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2700
|
+
background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
|
|
2701
|
+
}
|
|
2702
|
+
}
|
|
2703
|
+
.bg-black\/70 {
|
|
2704
|
+
background-color: color-mix(in srgb, #000 70%, transparent);
|
|
2705
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2706
|
+
background-color: color-mix(in oklab, var(--color-black) 70%, transparent);
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2677
2709
|
.bg-black\/80 {
|
|
2678
2710
|
background-color: color-mix(in srgb, #000 80%, transparent);
|
|
2679
2711
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -4193,6 +4225,9 @@
|
|
|
4193
4225
|
.ring-inset {
|
|
4194
4226
|
--tw-ring-inset: inset;
|
|
4195
4227
|
}
|
|
4228
|
+
.group-focus-within\:opacity-100:is(:where(.group):focus-within *) {
|
|
4229
|
+
opacity: 100%;
|
|
4230
|
+
}
|
|
4196
4231
|
@media (hover: hover) {
|
|
4197
4232
|
.group-hover\:block:is(:where(.group):hover *) {
|
|
4198
4233
|
display: block;
|
|
@@ -4367,14 +4402,6 @@
|
|
|
4367
4402
|
border-color: color-mix(in oklab, hsl(var(--accent)) 50%, transparent);
|
|
4368
4403
|
}
|
|
4369
4404
|
}
|
|
4370
|
-
.hover\:border-border\/80:hover {
|
|
4371
|
-
border-color: hsl(var(--border));
|
|
4372
|
-
}
|
|
4373
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
4374
|
-
.hover\:border-border\/80:hover {
|
|
4375
|
-
border-color: color-mix(in oklab, hsl(var(--border)) 80%, transparent);
|
|
4376
|
-
}
|
|
4377
|
-
}
|
|
4378
4405
|
.hover\:border-destructive\/30:hover {
|
|
4379
4406
|
border-color: hsl(var(--destructive));
|
|
4380
4407
|
}
|
|
@@ -4434,6 +4461,14 @@
|
|
|
4434
4461
|
border-color: color-mix(in oklab, hsl(var(--primary)) 50%, transparent);
|
|
4435
4462
|
}
|
|
4436
4463
|
}
|
|
4464
|
+
.hover\:border-primary\/60:hover {
|
|
4465
|
+
border-color: hsl(var(--primary));
|
|
4466
|
+
}
|
|
4467
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4468
|
+
.hover\:border-primary\/60:hover {
|
|
4469
|
+
border-color: color-mix(in oklab, hsl(var(--primary)) 60%, transparent);
|
|
4470
|
+
}
|
|
4471
|
+
}
|
|
4437
4472
|
.hover\:\!bg-primary:hover {
|
|
4438
4473
|
background-color: hsl(var(--primary)) !important;
|
|
4439
4474
|
}
|
|
@@ -4738,6 +4773,10 @@
|
|
|
4738
4773
|
.hover\:opacity-100:hover {
|
|
4739
4774
|
opacity: 100%;
|
|
4740
4775
|
}
|
|
4776
|
+
.hover\:shadow-md:hover {
|
|
4777
|
+
--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
4778
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
4779
|
+
}
|
|
4741
4780
|
.hover\:shadow-sm:hover {
|
|
4742
4781
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
4743
4782
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -90,7 +90,7 @@ function fileIcon(name) {
|
|
|
90
90
|
const dot = name.lastIndexOf(".");
|
|
91
91
|
return dot > 0 && FILE_ICONS[name.slice(dot + 1).toLowerCase()] || File;
|
|
92
92
|
}
|
|
93
|
-
function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, storageKey, expandAll = false, label = "Files", className }) {
|
|
93
|
+
function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, onFolderSelect, storageKey, expandAll = false, label = "Files", className }) {
|
|
94
94
|
const [expansion, setExpansion] = useState(() => ({
|
|
95
95
|
key: storageKey,
|
|
96
96
|
expanded: readExpanded(storageKey)
|
|
@@ -221,11 +221,14 @@ function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle,
|
|
|
221
221
|
}, []);
|
|
222
222
|
const activate = useCallback((node) => {
|
|
223
223
|
setFocusedPath(node.path);
|
|
224
|
-
if (node.type === "directory")
|
|
225
|
-
|
|
224
|
+
if (node.type === "directory") {
|
|
225
|
+
setFolderOpen(node.path, !isOpen(node.path));
|
|
226
|
+
onFolderSelect?.(node.path);
|
|
227
|
+
} else onSelect(node.path);
|
|
226
228
|
}, [
|
|
227
229
|
isOpen,
|
|
228
230
|
onSelect,
|
|
231
|
+
onFolderSelect,
|
|
229
232
|
setFolderOpen
|
|
230
233
|
]);
|
|
231
234
|
const onKeyDown = useCallback((event, node) => {
|
package/dist/vault-tree.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-
|
|
1
|
+
import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DGil6iqm.js";
|
|
2
2
|
export { VAULT_TREE_CHILD_PAGE, VaultTree, type VaultTreeProps, fileTreeFromPaths, filterFileNodes };
|
package/dist/vault-tree.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-
|
|
1
|
+
import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
|
|
2
2
|
export { VAULT_TREE_CHILD_PAGE, VaultTree, fileTreeFromPaths, filterFileNodes };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-DzWbktWG.js";
|
|
2
2
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
3
3
|
import { t as MOTION_CONTROL } from "./motion-DkyBRJb9.js";
|
|
4
|
-
import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-
|
|
4
|
+
import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
|
|
5
5
|
import { ArtifactPane, ArtifactPane as ArtifactPane$1, EmptyState, Input } from "@tangle-network/ui/primitives";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Markdown } from "@tangle-network/ui/markdown";
|
|
@@ -2532,6 +2532,7 @@ function WorkspaceFilesPane({ root, paths, selectedPath, onSelect, preview, onBa
|
|
|
2532
2532
|
if (treeRef.current) returnFocusRef.current = activeElementWithin(treeRef.current);
|
|
2533
2533
|
onSelect?.(path, index.get(path));
|
|
2534
2534
|
},
|
|
2535
|
+
onFolderSelect: (path) => onSelect?.(`${path}/`, index.get(path)),
|
|
2535
2536
|
storageKey: expansionKey,
|
|
2536
2537
|
expandAll: query.trim().length > 0,
|
|
2537
2538
|
label
|
package/dist/workspace.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-
|
|
1
|
+
import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-B2nE9_FN.js";
|
|
2
2
|
export { type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceArtifactView, type WorkspaceArtifactViewProps, WorkspaceFilesPane, type WorkspaceFilesPaneProps, type WorkspaceFilesPreview, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
package/dist/workspace.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
2
|
-
import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-
|
|
2
|
+
import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-DRz3SoJc.js";
|
|
3
3
|
export { ApprovalQueue, ArtifactPane, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.131.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
6
6
|
"repository": {
|