@tangle-network/sandbox-ui 0.3.4 → 0.3.5

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/auth.d.ts CHANGED
@@ -53,4 +53,18 @@ interface AuthHeaderProps {
53
53
  }
54
54
  declare function AuthHeader({ user, loading, variant, apiBaseUrl, menuLinks, className, }: AuthHeaderProps): react_jsx_runtime.JSX.Element;
55
55
 
56
- export { AuthHeader, type AuthHeaderProps, GitHubLoginButton, type GitHubLoginButtonProps, type SessionUser, UserMenu, type UserMenuProps };
56
+ interface LoginLayoutProps {
57
+ brandName?: string;
58
+ tagline?: React.ReactNode;
59
+ subtitle?: string;
60
+ terminalLines?: string[];
61
+ footerLinks?: {
62
+ label: string;
63
+ href: string;
64
+ }[];
65
+ children: React.ReactNode;
66
+ className?: string;
67
+ }
68
+ declare function LoginLayout({ brandName, tagline, subtitle, terminalLines, footerLinks, children, className, }: LoginLayoutProps): react_jsx_runtime.JSX.Element;
69
+
70
+ export { AuthHeader, type AuthHeaderProps, GitHubLoginButton, type GitHubLoginButtonProps, LoginLayout, type LoginLayoutProps, type SessionUser, UserMenu, type UserMenuProps };
package/dist/auth.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  AuthHeader,
3
3
  GitHubLoginButton,
4
+ LoginLayout,
4
5
  UserMenu
5
- } from "./chunk-COCSO7FG.js";
6
+ } from "./chunk-PCTEG6HR.js";
6
7
  import "./chunk-B26TQ7SA.js";
7
8
  import "./chunk-MCGKDCOR.js";
8
9
  import "./chunk-HWLX5NME.js";
@@ -10,5 +11,6 @@ import "./chunk-RQHJBTEU.js";
10
11
  export {
11
12
  AuthHeader,
12
13
  GitHubLoginButton,
14
+ LoginLayout,
13
15
  UserMenu
14
16
  };
@@ -166,8 +166,76 @@ function AuthHeader({
166
166
  );
167
167
  }
168
168
 
169
+ // src/auth/login-layout.tsx
170
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
171
+ function MaterialIcon({ name, className }) {
172
+ return /* @__PURE__ */ jsx2("span", { className: cn("material-symbols-outlined", className), style: { fontVariationSettings: "'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24" }, children: name });
173
+ }
174
+ function LoginLayout({
175
+ brandName = "Tangle Sandbox",
176
+ tagline,
177
+ subtitle = "Step into the next generation of sandboxed cloud infrastructure. Precise, ethereal, and designed for high-performance development.",
178
+ terminalLines = [
179
+ "Initializing secure environment...",
180
+ "DONE Encrypted bridge established.",
181
+ "Awaiting user authentication..."
182
+ ],
183
+ footerLinks = [
184
+ { label: "Documentation", href: "/docs" },
185
+ { label: "Support", href: "/support" }
186
+ ],
187
+ children,
188
+ className
189
+ }) {
190
+ return /* @__PURE__ */ jsxs2("div", { className: cn("bg-surface text-on-surface font-sans overflow-hidden", className), children: [
191
+ /* @__PURE__ */ jsxs2("div", { className: "fixed inset-0 z-0 overflow-hidden", children: [
192
+ /* @__PURE__ */ jsx2("div", { className: "absolute top-[-10%] left-[-10%] w-[50%] h-[50%] bg-md3-primary/10 rounded-full blur-[120px]" }),
193
+ /* @__PURE__ */ jsx2("div", { className: "absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] bg-secondary-container/10 rounded-full blur-[100px]" }),
194
+ /* @__PURE__ */ jsx2("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full opacity-20 pointer-events-none", style: { backgroundImage: "radial-gradient(#4a4455 1px, transparent 1px)", backgroundSize: "40px 40px" } })
195
+ ] }),
196
+ /* @__PURE__ */ jsxs2("main", { className: "relative z-10 flex flex-col md:flex-row h-screen", children: [
197
+ /* @__PURE__ */ jsxs2("section", { className: "hidden md:flex flex-col justify-between p-12 lg:p-20 w-1/2 h-full", children: [
198
+ /* @__PURE__ */ jsx2("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
199
+ /* @__PURE__ */ jsx2("div", { className: "w-10 h-10 bg-gradient-to-br from-md3-primary to-primary-container rounded-lg flex items-center justify-center shadow-lg shadow-md3-primary/20", children: /* @__PURE__ */ jsx2(MaterialIcon, { name: "terminal", className: "text-on-primary text-2xl" }) }),
200
+ /* @__PURE__ */ jsx2("span", { className: "text-2xl font-extrabold tracking-tighter bg-gradient-to-br from-violet-300 to-violet-600 bg-clip-text text-transparent", children: brandName })
201
+ ] }) }),
202
+ /* @__PURE__ */ jsxs2("div", { className: "max-w-lg space-y-6", children: [
203
+ tagline ? /* @__PURE__ */ jsx2("div", { className: "text-5xl lg:text-7xl font-bold tracking-tight leading-none text-white", children: tagline }) : /* @__PURE__ */ jsxs2("h1", { className: "text-5xl lg:text-7xl font-bold tracking-tight leading-none text-white", children: [
204
+ "Orchestrate ",
205
+ /* @__PURE__ */ jsx2("br", {}),
206
+ /* @__PURE__ */ jsx2("span", { className: "text-primary-fixed-dim", children: "Agents" }),
207
+ " in Flow."
208
+ ] }),
209
+ /* @__PURE__ */ jsx2("p", { className: "text-on-surface-variant text-lg leading-relaxed font-light", children: subtitle }),
210
+ /* @__PURE__ */ jsxs2("div", { className: "mt-12 bg-surface-container-lowest rounded-xl border border-outline-variant/10 overflow-hidden shadow-2xl", children: [
211
+ /* @__PURE__ */ jsxs2("div", { className: "bg-surface-container-high px-4 py-2 flex items-center gap-2", children: [
212
+ /* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-error/40" }),
213
+ /* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-primary/40" }),
214
+ /* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-secondary/40" }),
215
+ /* @__PURE__ */ jsx2("span", { className: "ml-4 font-mono text-xs text-on-surface-variant/60", children: "tangle --init-node" })
216
+ ] }),
217
+ /* @__PURE__ */ jsx2("div", { className: "p-6 font-mono text-xs space-y-2", children: terminalLines.map((line, i) => /* @__PURE__ */ jsxs2("div", { className: "flex gap-4", children: [
218
+ /* @__PURE__ */ jsx2("span", { className: "text-md3-primary/60", children: String(i + 1).padStart(2, "0") }),
219
+ line.startsWith("DONE") ? /* @__PURE__ */ jsxs2(Fragment, { children: [
220
+ /* @__PURE__ */ jsx2("span", { className: "text-primary-fixed-dim", children: "DONE" }),
221
+ /* @__PURE__ */ jsx2("span", { className: "text-on-surface", children: line.replace("DONE ", "") })
222
+ ] }) : /* @__PURE__ */ jsx2("span", { className: "text-on-surface", children: line })
223
+ ] }, i)) })
224
+ ] })
225
+ ] }),
226
+ /* @__PURE__ */ jsx2("nav", { className: "flex gap-8 text-sm font-medium text-on-surface-variant", children: footerLinks.map((link) => /* @__PURE__ */ jsxs2("a", { href: link.href, className: "hover:text-md3-primary transition-colors flex items-center gap-2", children: [
227
+ /* @__PURE__ */ jsx2(MaterialIcon, { name: link.label === "Documentation" ? "menu_book" : "contact_support", className: "text-lg" }),
228
+ link.label
229
+ ] }, link.href)) })
230
+ ] }),
231
+ /* @__PURE__ */ jsx2("section", { className: "w-full md:w-1/2 flex items-center justify-center p-6 lg:p-24 relative", children: /* @__PURE__ */ jsx2("div", { className: "w-full max-w-md bg-surface-container/60 backdrop-blur-[20px] rounded-[2rem] p-8 lg:p-12 shadow-2xl border border-white/5", children }) })
232
+ ] })
233
+ ] });
234
+ }
235
+
169
236
  export {
170
237
  GitHubLoginButton,
171
238
  UserMenu,
172
- AuthHeader
239
+ AuthHeader,
240
+ LoginLayout
173
241
  };
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export { R as ReasoningPart, S as SessionMessage, a as SessionPart, T as TextPar
15
15
  export { FileArtifactPane, FileArtifactPaneProps, FilePreview, FilePreviewProps } from './files.js';
16
16
  export { A as AppSidebar, a as AppSidebarProps, B as Backend, b as BackendSelector, c as BackendSelectorProps, C as ClusterStatusBar, d as ClusterStatusBarProps, e as ClusterStatusItem, D as DashboardLayout, f as DashboardLayoutProps, g as DashboardUser, N as NavItem, h as NewSandboxCard, i as NewSandboxCardProps, P as ProfileComparison, j as ProfileComparisonProps, k as ProfileSelector, l as ProfileSelectorProps, R as ResourceMeter, m as ResourceMeterProps, S as SandboxCard, n as SandboxCardData, o as SandboxCardProps, p as SandboxStatus, q as SandboxTable, r as SandboxTableProps, s as SidebarNavItem, t as SidebarSandbox, T as TopNavLink, V as VariantList, u as VariantListProps } from './index-BOjBJwzD.js';
17
17
  export { c as BillingDashboard, d as BillingDashboardProps, e as PricingCards, f as PricingPageProps, g as UsageChart, h as UsageChartProps, U as UsageDataPoint } from './usage-chart-CY9xo3KX.js';
18
- export { AuthHeader, GitHubLoginButton, UserMenu } from './auth.js';
18
+ export { AuthHeader, GitHubLoginButton, LoginLayout, LoginLayoutProps, UserMenu } from './auth.js';
19
19
  export { CodeBlock, CopyButton, Markdown, MarkdownProps } from './markdown.js';
20
20
  export { AppendUserMessageOptions, ApplySdkEventOptions, BeginAssistantMessageOptions, CompleteAssistantMessageOptions, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, useAutoScroll, useDropdownMenu, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useSessionStream, useSidecarAuth, useToolCallStream } from './sdk-hooks.js';
21
21
  export { d as createAuthFetcher, u as useApiKey, e as useAuth, f as usePtySession } from './use-pty-session-DeZSxOCN.js';
package/dist/index.js CHANGED
@@ -5,8 +5,9 @@ import {
5
5
  import {
6
6
  AuthHeader,
7
7
  GitHubLoginButton,
8
+ LoginLayout,
8
9
  UserMenu
9
- } from "./chunk-COCSO7FG.js";
10
+ } from "./chunk-PCTEG6HR.js";
10
11
  import {
11
12
  createAuthFetcher,
12
13
  useApiKey,
@@ -372,6 +373,7 @@ export {
372
373
  InlineToolItem,
373
374
  Input,
374
375
  Label,
376
+ LoginLayout,
375
377
  Logo,
376
378
  Markdown,
377
379
  MessageList,
package/dist/pages.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { B as BillingSubscription, a as BillingBalance, b as BillingUsage, U as UsageDataPoint, P as PricingTier } from './usage-chart-CY9xo3KX.js';
3
+ import * as React from 'react';
3
4
 
4
5
  type ProductVariant$1 = "sandbox";
5
6
  interface BillingPageData {
@@ -20,6 +21,29 @@ interface BillingPageProps {
20
21
  }
21
22
  declare function BillingPage({ variant, initialData, apiBasePath, onManageSubscription, onAddCredits, onSelectTier, fetchBillingData, }: BillingPageProps): react_jsx_runtime.JSX.Element;
22
23
 
24
+ interface EnvironmentOption {
25
+ id: string;
26
+ name: string;
27
+ description: string;
28
+ icon: React.ReactNode;
29
+ color: string;
30
+ }
31
+ interface ProvisioningWizardProps {
32
+ environments?: EnvironmentOption[];
33
+ onSubmit?: (config: ProvisioningConfig) => void;
34
+ onBack?: () => void;
35
+ className?: string;
36
+ }
37
+ interface ProvisioningConfig {
38
+ environment: string;
39
+ cpuCores: number;
40
+ ramGB: number;
41
+ storageGB: number;
42
+ modelTier: string;
43
+ systemPrompt: string;
44
+ }
45
+ declare function ProvisioningWizard({ environments, onSubmit, onBack, className, }: ProvisioningWizardProps): react_jsx_runtime.JSX.Element;
46
+
23
47
  type ProductVariant = "sandbox";
24
48
  interface StandalonePricingPageProps {
25
49
  variant?: ProductVariant;
@@ -87,4 +111,4 @@ interface ProfilesPageProps {
87
111
  }
88
112
  declare function ProfilesPage({ apiClient, tier, maxProfiles, onCompareClick, title, }: ProfilesPageProps): react_jsx_runtime.JSX.Element;
89
113
 
90
- export { BillingPage, type BillingPageData, type BillingPageProps, type ProductVariant$1 as ProductVariant, type Profile, type ProfileFormData, type ProfileMetrics, ProfilesPage, type ProfilesPageProps, StandalonePricingPage, type StandalonePricingPageProps };
114
+ export { BillingPage, type BillingPageData, type BillingPageProps, type EnvironmentOption, type ProductVariant$1 as ProductVariant, type Profile, type ProfileFormData, type ProfileMetrics, ProfilesPage, type ProfilesPageProps, type ProvisioningConfig, ProvisioningWizard, type ProvisioningWizardProps, StandalonePricingPage, type StandalonePricingPageProps };