@tangle-network/sandbox-ui 0.45.0 → 0.46.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.
Files changed (44) hide show
  1. package/dist/{WorkflowGraph-7YYGIBNV.js → WorkflowGraph-6IKZYPST.js} +2 -1
  2. package/dist/assets.js +1 -0
  3. package/dist/assistant.js +2 -1
  4. package/dist/auth.js +1 -0
  5. package/dist/chat.js +4 -3
  6. package/dist/{chunk-6NDOA4SB.js → chunk-2ISY4R72.js} +112 -104
  7. package/dist/{chunk-KIRJZUX2.js → chunk-BR2LMUAE.js} +61 -34
  8. package/dist/{chunk-H7GMPMPB.js → chunk-CXV6X33U.js} +19 -1
  9. package/dist/{chunk-CUUUFJF5.js → chunk-KOUYJ6QP.js} +23 -23
  10. package/dist/{chunk-3RNYDTQ3.js → chunk-LQHTCM56.js} +21 -27
  11. package/dist/chunk-NXUSLH7H.js +7528 -0
  12. package/dist/{chunk-2XNT74ZX.js → chunk-OMUIPJQZ.js} +28 -20
  13. package/dist/{chunk-KCWIC3SJ.js → chunk-PZ62T5PM.js} +281 -214
  14. package/dist/chunk-U67V476Y.js +35 -0
  15. package/dist/chunk-VIREDUBF.js +215 -0
  16. package/dist/dashboard.d.ts +82 -66
  17. package/dist/dashboard.js +5 -4
  18. package/dist/editor.js +2 -0
  19. package/dist/files.d.ts +5 -0
  20. package/dist/files.js +1 -0
  21. package/dist/globals.css +1149 -48
  22. package/dist/hooks.js +1 -0
  23. package/dist/index.d.ts +3 -1
  24. package/dist/index.js +95 -65
  25. package/dist/integrations.js +2 -1
  26. package/dist/markdown.js +2 -0
  27. package/dist/openui.d.ts +0 -5
  28. package/dist/openui.js +1 -0
  29. package/dist/pages.d.ts +1 -1
  30. package/dist/pages.js +89 -88
  31. package/dist/ports-list-DfG0VfPt.d.ts +17 -0
  32. package/dist/primitives.js +1 -0
  33. package/dist/run.js +1 -0
  34. package/dist/sdk-hooks.js +1 -0
  35. package/dist/stores.js +1 -0
  36. package/dist/styles.css +1149 -48
  37. package/dist/terminal.js +5 -209
  38. package/dist/utils.js +1 -0
  39. package/dist/workbench.d.ts +227 -0
  40. package/dist/workbench.js +40 -0
  41. package/dist/workflows.js +2 -1
  42. package/dist/workspace.d.ts +6 -2
  43. package/dist/workspace.js +2 -1
  44. package/package.json +13 -7
@@ -268,7 +268,7 @@ function PricingPage({
268
268
  recommended: tier.recommended ?? (tiers.length === 3 && i === 1)
269
269
  }));
270
270
  return /* @__PURE__ */ jsxs2("div", { className: cn("w-full space-y-10", className), children: [
271
- /* @__PURE__ */ jsx2("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs2("div", { className: "inline-flex items-center rounded-full border border-border bg-muted/50 p-1", children: [
271
+ /* @__PURE__ */ jsx2("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs2("div", { className: "inline-flex items-center rounded-full border border-[var(--md3-outline-variant)] bg-surface-container-low p-1", children: [
272
272
  /* @__PURE__ */ jsx2(
273
273
  "button",
274
274
  {
@@ -276,7 +276,7 @@ function PricingPage({
276
276
  onClick: () => onBillingPeriodChange("monthly"),
277
277
  className: cn(
278
278
  "rounded-full px-5 py-2 text-sm font-medium transition-all",
279
- billingPeriod === "monthly" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
279
+ billingPeriod === "monthly" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
280
280
  ),
281
281
  children: "Monthly"
282
282
  }
@@ -288,7 +288,7 @@ function PricingPage({
288
288
  onClick: () => onBillingPeriodChange("yearly"),
289
289
  className: cn(
290
290
  "rounded-full px-5 py-2 text-sm font-medium transition-all",
291
- billingPeriod === "yearly" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
291
+ billingPeriod === "yearly" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
292
292
  ),
293
293
  children: [
294
294
  "Yearly",
@@ -307,15 +307,15 @@ function PricingPage({
307
307
  "div",
308
308
  {
309
309
  className: cn(
310
- "relative flex flex-col rounded-2xl border transition-all",
311
- isRecommended ? "border-primary shadow-[var(--shadow-glow)] scale-[1.02] z-10" : "border-border hover:border-primary/30"
310
+ "relative flex flex-col rounded-2xl border bg-surface-container transition-all",
311
+ isRecommended ? "border-primary shadow-[var(--shadow-glow)] scale-[1.02] z-10" : "border-[var(--md3-outline-variant)] hover:border-primary/30"
312
312
  ),
313
313
  children: [
314
314
  isRecommended && /* @__PURE__ */ jsx2("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsxs2("span", { className: "inline-flex items-center gap-1.5 rounded-full bg-primary px-4 py-1.5 text-xs font-bold text-primary-foreground shadow-sm", children: [
315
315
  /* @__PURE__ */ jsx2(Zap, { className: "h-3 w-3" }),
316
316
  "Most Popular"
317
317
  ] }) }),
318
- isCurrentTier && !isRecommended && /* @__PURE__ */ jsx2("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx2("span", { className: "inline-flex items-center rounded-full bg-muted border border-border px-4 py-1.5 text-xs font-bold text-foreground", children: "Current Plan" }) }),
318
+ isCurrentTier && !isRecommended && /* @__PURE__ */ jsx2("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx2("span", { className: "inline-flex items-center rounded-full bg-surface-container-high border border-[var(--md3-outline-variant)] px-4 py-1.5 text-xs font-bold text-foreground", children: "Current Plan" }) }),
319
319
  /* @__PURE__ */ jsxs2("div", { className: cn("flex flex-col p-8", isRecommended && "pt-10"), children: [
320
320
  /* @__PURE__ */ jsxs2("div", { className: "mb-6", children: [
321
321
  /* @__PURE__ */ jsx2("h3", { className: "text-lg font-bold text-foreground", children: tier.name }),
@@ -339,16 +339,16 @@ function PricingPage({
339
339
  disabled: isCurrentTier || loading,
340
340
  className: cn(
341
341
  "w-full rounded-xl py-3 text-sm font-bold transition-all active:scale-[0.98] disabled:opacity-50",
342
- isRecommended ? "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm" : isCurrentTier ? "bg-muted text-muted-foreground border border-border cursor-default" : "bg-card text-foreground border border-border hover:border-primary/50 hover:bg-muted"
342
+ isRecommended ? "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm" : isCurrentTier ? "bg-muted text-muted-foreground border border-[var(--md3-outline-variant)] cursor-default" : "bg-surface-container-high text-foreground border border-[var(--md3-outline-variant)] hover:border-primary/50 hover:bg-surface-container-highest"
343
343
  ),
344
344
  children: isCurrentTier ? "Current Plan" : isFree ? "Get Started" : "Subscribe"
345
345
  }
346
346
  ),
347
- /* @__PURE__ */ jsx2("div", { className: "my-8 border-t border-border" }),
347
+ /* @__PURE__ */ jsx2("div", { className: "my-8 border-t border-[var(--md3-outline-variant)]" }),
348
348
  /* @__PURE__ */ jsx2("ul", { className: "space-y-3.5 flex-1", children: tier.features.map((feature) => /* @__PURE__ */ jsxs2("li", { className: "flex items-start gap-3", children: [
349
349
  /* @__PURE__ */ jsx2("div", { className: cn(
350
350
  "mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full",
351
- isRecommended ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
351
+ isRecommended ? "bg-primary/10 text-primary" : "bg-surface-container-high text-muted-foreground"
352
352
  ), children: /* @__PURE__ */ jsx2(Check, { className: "h-3 w-3" }) }),
353
353
  /* @__PURE__ */ jsx2("span", { className: "text-sm text-foreground/80", children: feature })
354
354
  ] }, feature)) })
@@ -364,7 +364,7 @@ function PricingPage({
364
364
  // src/dashboard/usage-chart.tsx
365
365
  import * as React from "react";
366
366
  import { Card as Card2, CardContent as CardContent2, CardHeader as CardHeader2, CardTitle as CardTitle2 } from "@tangle-network/ui/primitives";
367
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
367
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
368
368
  var colors = {
369
369
  bar: "bg-[image:var(--accent-gradient-strong)]",
370
370
  barHover: "hover:brightness-110",
@@ -387,15 +387,23 @@ function UsageChart({ data, title, unit, className }) {
387
387
  const maxValue = Math.max(...data.map((d) => d.value), 1);
388
388
  const total = data.reduce((sum, d) => sum + d.value, 0);
389
389
  const [hoveredIndex, setHoveredIndex] = React.useState(null);
390
+ const isEmpty = data.length === 0 || total === 0;
390
391
  return /* @__PURE__ */ jsxs3(Card2, { className, children: [
391
- /* @__PURE__ */ jsxs3(CardHeader2, { className: "flex flex-row items-center justify-between pb-2", children: [
392
- /* @__PURE__ */ jsx3(CardTitle2, { className: "font-medium text-base", children: title }),
393
- /* @__PURE__ */ jsxs3("div", { className: "text-right", children: [
392
+ /* @__PURE__ */ jsxs3(CardHeader2, { className: "flex flex-row items-center justify-between gap-3 pb-2", children: [
393
+ /* @__PURE__ */ jsx3(CardTitle2, { className: "min-w-0 truncate font-medium text-base", children: title }),
394
+ /* @__PURE__ */ jsxs3("div", { className: "shrink-0 whitespace-nowrap text-right", children: [
394
395
  /* @__PURE__ */ jsx3("span", { className: cn("font-bold text-2xl", colors.text), children: formatValue(total) }),
395
396
  /* @__PURE__ */ jsx3("span", { className: "ml-1 text-muted-foreground text-sm", children: unit })
396
397
  ] })
397
398
  ] }),
398
- /* @__PURE__ */ jsxs3(CardContent2, { children: [
399
+ /* @__PURE__ */ jsx3(CardContent2, { children: isEmpty ? /* @__PURE__ */ jsxs3("div", { className: "flex h-48 flex-col items-center justify-center gap-1 text-center", children: [
400
+ /* @__PURE__ */ jsxs3("p", { className: "font-medium text-sm", children: [
401
+ "No ",
402
+ unit,
403
+ " recorded yet"
404
+ ] }),
405
+ /* @__PURE__ */ jsx3("p", { className: "text-muted-foreground text-xs", children: "Usage appears here once activity begins." })
406
+ ] }) : /* @__PURE__ */ jsxs3(Fragment2, { children: [
399
407
  /* @__PURE__ */ jsxs3("div", { className: "relative", children: [
400
408
  /* @__PURE__ */ jsxs3("div", { className: "absolute top-0 left-0 flex h-48 flex-col justify-between text-muted-foreground text-xs", children: [
401
409
  /* @__PURE__ */ jsx3("span", { children: formatValue(maxValue) }),
@@ -414,7 +422,7 @@ function UsageChart({ data, title, unit, className }) {
414
422
  onMouseEnter: () => setHoveredIndex(index),
415
423
  onMouseLeave: () => setHoveredIndex(null),
416
424
  children: [
417
- isHovered && /* @__PURE__ */ jsxs3("div", { className: "absolute -top-12 z-10 rounded-lg border border-border bg-popover px-3 py-1.5 text-sm shadow-[var(--shadow-dropdown)]", children: [
425
+ isHovered && /* @__PURE__ */ jsxs3("div", { className: "absolute -top-12 z-10 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-highest px-3 py-1.5 text-sm shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]", children: [
418
426
  /* @__PURE__ */ jsxs3("p", { className: "font-medium", children: [
419
427
  formatValue(point.value),
420
428
  " ",
@@ -452,7 +460,7 @@ function UsageChart({ data, title, unit, className }) {
452
460
  point.date
453
461
  )) })
454
462
  ] }),
455
- /* @__PURE__ */ jsxs3("div", { className: "mt-4 grid grid-cols-3 gap-4 border-border border-t pt-4", children: [
463
+ /* @__PURE__ */ jsxs3("div", { className: "mt-4 grid grid-cols-3 gap-4 border-[var(--md3-outline-variant)] border-t pt-4", children: [
456
464
  /* @__PURE__ */ jsxs3("div", { className: "text-center", children: [
457
465
  /* @__PURE__ */ jsx3("p", { className: "text-muted-foreground text-xs", children: "Average" }),
458
466
  /* @__PURE__ */ jsxs3("p", { className: "font-medium", children: [
@@ -478,7 +486,7 @@ function UsageChart({ data, title, unit, className }) {
478
486
  ] })
479
487
  ] })
480
488
  ] })
481
- ] })
489
+ ] }) })
482
490
  ] });
483
491
  }
484
492
 
@@ -490,18 +498,18 @@ function TemplateCard({ template, onUseTemplate, className }) {
490
498
  "div",
491
499
  {
492
500
  className: cn(
493
- "group relative flex flex-col justify-between rounded-xl border border-border bg-card p-6 transition-colors hover:border-[var(--border-accent)]",
501
+ "group relative flex flex-col justify-between rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-6 transition-colors hover:border-[var(--border-accent)]",
494
502
  className
495
503
  ),
496
504
  children: [
497
505
  /* @__PURE__ */ jsxs4("div", { children: [
498
- /* @__PURE__ */ jsx4("div", { className: "mb-4 flex h-12 w-12 items-center justify-center rounded-xl bg-muted border border-border", children: template.icon ?? /* @__PURE__ */ jsx4("span", { className: "text-lg font-bold text-primary", children: template.name.charAt(0).toUpperCase() }) }),
506
+ /* @__PURE__ */ jsx4("div", { className: "mb-4 flex h-12 w-12 items-center justify-center rounded-xl bg-surface-container-high border border-[var(--md3-outline-variant)]", children: template.icon ?? /* @__PURE__ */ jsx4("span", { className: "text-lg font-bold text-primary", children: template.name.charAt(0).toUpperCase() }) }),
499
507
  /* @__PURE__ */ jsx4("h3", { className: "mb-1 text-base font-bold text-foreground", children: template.name }),
500
508
  /* @__PURE__ */ jsx4("p", { className: "text-sm text-muted-foreground leading-relaxed line-clamp-2", children: template.description }),
501
509
  template.tags && template.tags.length > 0 && /* @__PURE__ */ jsx4("div", { className: "mt-3 flex flex-wrap gap-1.5", children: template.tags.map((tag, i) => /* @__PURE__ */ jsx4(
502
510
  "span",
503
511
  {
504
- className: "rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground",
512
+ className: "rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] font-medium text-muted-foreground",
505
513
  children: tag
506
514
  },
507
515
  `${tag}-${i}`