@togo-framework/ui 0.1.1 → 0.1.3
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/index.d.ts +84 -1
- package/dist/index.js +261 -2
- package/dist/index.js.map +1 -1
- package/dist/shadcn.css +11 -10
- package/dist/styles.css +11 -10
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3874,4 +3874,87 @@ declare const AgentSteps: {
|
|
|
3874
3874
|
displayName: string;
|
|
3875
3875
|
};
|
|
3876
3876
|
|
|
3877
|
-
|
|
3877
|
+
interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3878
|
+
icon?: LucideIcon;
|
|
3879
|
+
}
|
|
3880
|
+
declare function Eyebrow({ icon: Icon, className, children, ...rest }: EyebrowProps): React$1.JSX.Element;
|
|
3881
|
+
declare namespace Eyebrow {
|
|
3882
|
+
var displayName: string;
|
|
3883
|
+
}
|
|
3884
|
+
interface SectionHeadingProps {
|
|
3885
|
+
eyebrow?: React$1.ReactNode;
|
|
3886
|
+
eyebrowIcon?: LucideIcon;
|
|
3887
|
+
title: React$1.ReactNode;
|
|
3888
|
+
subtitle?: React$1.ReactNode;
|
|
3889
|
+
align?: "left" | "center";
|
|
3890
|
+
className?: string;
|
|
3891
|
+
}
|
|
3892
|
+
declare function SectionHeading({ eyebrow, eyebrowIcon, title, subtitle, align, className }: SectionHeadingProps): React$1.JSX.Element;
|
|
3893
|
+
declare namespace SectionHeading {
|
|
3894
|
+
var displayName: string;
|
|
3895
|
+
}
|
|
3896
|
+
interface FeatureCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
3897
|
+
icon?: LucideIcon;
|
|
3898
|
+
title: React$1.ReactNode;
|
|
3899
|
+
}
|
|
3900
|
+
declare function FeatureCard({ icon: Icon, title, children, className, ...rest }: FeatureCardProps): React$1.JSX.Element;
|
|
3901
|
+
declare namespace FeatureCard {
|
|
3902
|
+
var displayName: string;
|
|
3903
|
+
}
|
|
3904
|
+
interface CodeShowcaseTab {
|
|
3905
|
+
key: string;
|
|
3906
|
+
label: string;
|
|
3907
|
+
lang?: string;
|
|
3908
|
+
file?: string;
|
|
3909
|
+
code: string;
|
|
3910
|
+
}
|
|
3911
|
+
interface CodeShowcaseProps {
|
|
3912
|
+
tabs: CodeShowcaseTab[];
|
|
3913
|
+
className?: string;
|
|
3914
|
+
}
|
|
3915
|
+
declare function CodeShowcase({ tabs, className }: CodeShowcaseProps): React$1.JSX.Element;
|
|
3916
|
+
declare namespace CodeShowcase {
|
|
3917
|
+
var displayName: string;
|
|
3918
|
+
}
|
|
3919
|
+
|
|
3920
|
+
interface AuroraBackgroundProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3921
|
+
/** Dim the orbs (0–1). Default 1. */
|
|
3922
|
+
intensity?: number;
|
|
3923
|
+
}
|
|
3924
|
+
declare function AuroraBackground({ className, intensity, style, ...rest }: AuroraBackgroundProps): React$1.JSX.Element;
|
|
3925
|
+
declare namespace AuroraBackground {
|
|
3926
|
+
var displayName: string;
|
|
3927
|
+
}
|
|
3928
|
+
interface GlassCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3929
|
+
elevation?: "flat" | "raised" | "floating";
|
|
3930
|
+
hover?: boolean;
|
|
3931
|
+
}
|
|
3932
|
+
declare function GlassCard({ className, elevation, hover, children, ...rest }: GlassCardProps): React$1.JSX.Element;
|
|
3933
|
+
declare namespace GlassCard {
|
|
3934
|
+
var displayName: string;
|
|
3935
|
+
}
|
|
3936
|
+
interface RevealProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3937
|
+
delayMs?: number;
|
|
3938
|
+
as?: React$1.ElementType;
|
|
3939
|
+
}
|
|
3940
|
+
declare function Reveal({ className, delayMs, as: Tag, children, style, ...rest }: RevealProps): React$1.JSX.Element;
|
|
3941
|
+
declare namespace Reveal {
|
|
3942
|
+
var displayName: string;
|
|
3943
|
+
}
|
|
3944
|
+
interface MockupWindowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
3945
|
+
title?: React$1.ReactNode;
|
|
3946
|
+
}
|
|
3947
|
+
declare function MockupWindow({ className, title, children, ...rest }: MockupWindowProps): React$1.JSX.Element;
|
|
3948
|
+
declare namespace MockupWindow {
|
|
3949
|
+
var displayName: string;
|
|
3950
|
+
}
|
|
3951
|
+
interface PillButtonProps extends React$1.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
3952
|
+
variant?: "flow" | "glass";
|
|
3953
|
+
size?: "md" | "lg";
|
|
3954
|
+
}
|
|
3955
|
+
declare function PillButton({ className, variant, size, children, ...rest }: PillButtonProps): React$1.JSX.Element;
|
|
3956
|
+
declare namespace PillButton {
|
|
3957
|
+
var displayName: string;
|
|
3958
|
+
}
|
|
3959
|
+
|
|
3960
|
+
export { type A2UIActionItem, type A2UIActionsData, type A2UIArtifact$1 as A2UIArtifact, type A2UICardData, type A2UICardField, type A2UIChartData, type A2UIChartSeries, type A2UIClientCandidate, type A2UIClientCandidatesData, type A2UIClientDiffConfirmData, type A2UIClientDiffRow, type A2UIClientField, type A2UIClientFieldPickerData, type A2UIKind, type A2UIMarkdownData, type A2UIPersonaStarter, type A2UIPersonaStartersData, type A2UITableColumn, type A2UITableData, type ActivityBucket, AdminLayout, type AdminLayoutProps, type AdminSubNavItem, AgentSteps, type AlertMapItem, type AlertSeverity, type AppBrand, AppHeader, type AppHeaderProps, AppLayout, type AppLayoutProps, type AppNavGroup, type AppNavItem, AppPageShell, type AppPageShellProps, AppSidebar, type AppSidebarProps, type AppearanceMode, ArtifactActions, type ArtifactActionsProps, ArtifactCard, type ArtifactCardProps, ArtifactChart, type ArtifactChartProps, ArtifactClientCandidates, type ArtifactClientCandidatesProps, ArtifactClientDiffConfirm, type ArtifactClientDiffConfirmProps, ArtifactClientFieldPicker, type ArtifactClientFieldPickerProps, type ArtifactInteraction, ArtifactMarkdown, type ArtifactMarkdownProps, ArtifactPersonaStarters, type ArtifactPersonaStartersProps, ArtifactRenderer, type ArtifactRendererProps, ArtifactTable, type ArtifactTableProps, ArtifactViewer, AuroraBackground, type AuroraBackgroundProps, AuthCard, type AuthCardBrand, type AuthClient, AuthErrorAlert, AuthFlow, type AuthLayout, AuthStepHeader, type BarPoint, type CardFilter, CardGrid, type CardGridLabels, ChatThread, CodeBlock, CodeShowcase, type CodeShowcaseProps, type CodeShowcaseTab, ColorPicker, type ColorPickerProps, ContextualSkeleton, type CopilotClient, type CopilotEvent, CopilotLauncher, CopilotProvider, type CopilotQuickAction, type CopilotRequest, CopilotSelectionTrigger, type CopilotSelectionTriggerProps, DEFAULT_LAYERS, DEFAULT_LEGEND_GROUPS, DEFAULT_REGION_PRESETS, DataState, type DataStateLabels, type DataStateProps, DataTable, type DataTableBulkAction, type DataTableColumnFilter, type DataTableColumnMeta, type DataTableDensity, type DataTableFilterType, type DataTableLanguage, type DataTableProps, type DataTableSelectOption, type DataTableServerCallbacks, type DataTableServerState, type DockPosition, DynamicIcon, DynamicSection, type DynamicSectionProps, EmptyState, type EmptyStateProps, EntityNetworkGraph, type EntityNetworkGraphProps, type ErrorFilter, ErrorTrackingPage, type ErrorTrackingPageProps, EventMapPanel, type EventMapPanelProps, Eyebrow, type EyebrowProps, FeatureCard, type FeatureCardProps, type FeedbackAttachment, FeedbackButton, type FeedbackButtonProps, FeedbackHub, type FeedbackHubProps, type FeedbackItem, type FeedbackKind, FeedbackWidget, type FeedbackWidgetProps, ForgotForm, GlassCard, type GlassCardProps, type GraphLink, type GraphNode, IconPicker, type IconPickerProps, type Issue$1 as Issue, type IssueAssignee, type IssueBreadcrumb, IssueDetail, type IssueDetailProps, type IssueLevel, type IssueSort, type IssueTag, IssuesList, type IssuesListProps, LANG_COOKIE_NAME, type LanguageContextValue, LanguageProvider, type LanguageProviderProps, type LegendGroup, type LegendItem, type LegendShapeType, LockScreen, type LockScreenProps, type LockScreenUser, type LogLevel, LoginForm, type LoginResult, Logo, type LogoProps, type LogoTone, type LogoVariant, type LogsFilter, LogsView, type LogsViewProps, MARKER_COLORS, MARKER_LABELS, type MapLayer, MapLayersPanel, type MapLayersPanelProps, MapLegend, type MapLegendProps, type MapMarker$1 as MapMarker, type MapMarkerType, MapPanel, type MapPanelProps, type MapRegionPreset, MapView, type MapViewProps, MarkdownContent, MarkdownEditor, type MarkdownEditorProps, MarkdownRenderer, type MarkdownRendererProps, MarkdownTable, type MarkdownView, MiniBarChart, MockupWindow, type MockupWindowProps, type ModelOption, MotorFeedbackLauncher, type MotorFeedbackLauncherProps, NestedStepsEditor, type NestedStepsEditorProps, NetworkGraph, type NetworkGraphProps, type NewFeedback, OTPBoxGroup, type OtpResult, PIPELINE_STAGES, PageHeader, type PageHeaderProps, PasswordInput, PasswordLockScreen, type PasswordLockScreenProps, type PasswordLockScreenUser, type PasswordRule, PasswordStrengthMeter, type PickedLocation, PillButton, type PillButtonProps, type PipelineCard, type PipelineLane, type PipelineModel, type PluginActivitySummary, type PluginAppearanceFields, PluginAppearanceSection, type PluginAppearanceSectionProps, PluginCard, type PluginCatalogEntry, type PluginDetailIdentity, PluginDetailLayout, type PluginDetailLayoutProps, type PluginDetailTab, PluginHero, PluginHeroSkeleton, PluginPageHeader, PluginSectionCard, PluginSparkline, type ProfileSession, ProfileView, type ProfileViewProps, type RenderMapContext, ResetForm, type ResolvedIcon, Reveal, type RevealProps, RouteProgress, type RouteProgressProps, STEP_FIELD_REGISTRY, SectionBoard, type SectionBoardProps, SectionHeading, type SectionHeadingProps, type SectionModel, SectionSkeleton, SentraLoading, type ServiceLogRow, ServiceUnavailable, type ServiceUnavailableProps, SessionExpired, type SessionExpiredProps, SeverityChip, type SidebarConversation, type SidebarUser, SourceBadge, type SparklinePoint, type StackFrame, type StackFrameContextLine, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, type Step, type StepFieldDef, type StepFieldType, type StepMetrics7d, StepOptionsDialog, type StepOptionsDialogProps, StreamingMessage, type TestRunCallbacks, type TestRunCompletePayload, TestRunPanel, type TestRunPanelProps, type TestRunSavedItem, type TestRunStep, TwoFAForm, UnifiedCopilotDock, type UnlockCredentials, type Verify2FAResult, type View, ViewToggle, type ViewToggleProps, Wordmark, type WordmarkProps, Workflow, WorkflowEditor, type WorkflowEditorProps, type WorkflowPalette, WorkflowPipeline, type WorkflowPipelineProps, type WorkflowProps, type WorkflowSource, type WorkflowStep, type WorkflowStepLike, WorkflowStepNode, type WorkflowStepNodeProps, type WorkflowView, cn, computeRules, computeScore, feedbackButtonVariants, levelTone, resolveIcon, statValueVariants, statusBadgeVariants, useCopilot, useLanguage, useT };
|
package/dist/index.js
CHANGED
|
@@ -10914,7 +10914,60 @@ import ReactMarkdown from "react-markdown";
|
|
|
10914
10914
|
import remarkGfm from "remark-gfm";
|
|
10915
10915
|
import rehypeHighlight from "rehype-highlight";
|
|
10916
10916
|
import { Copy, Check as Check5, ImageDown } from "lucide-react";
|
|
10917
|
+
import hljs from "highlight.js/lib/core";
|
|
10918
|
+
import hlBash from "highlight.js/lib/languages/bash";
|
|
10919
|
+
import hlGo from "highlight.js/lib/languages/go";
|
|
10920
|
+
import hlTs from "highlight.js/lib/languages/typescript";
|
|
10921
|
+
import hlJs from "highlight.js/lib/languages/javascript";
|
|
10922
|
+
import hlJson from "highlight.js/lib/languages/json";
|
|
10923
|
+
import hlYaml from "highlight.js/lib/languages/yaml";
|
|
10924
|
+
import hlSql from "highlight.js/lib/languages/sql";
|
|
10925
|
+
import hlGraphql from "highlight.js/lib/languages/graphql";
|
|
10926
|
+
import hlPwsh from "highlight.js/lib/languages/powershell";
|
|
10927
|
+
import hlDockerfile from "highlight.js/lib/languages/dockerfile";
|
|
10917
10928
|
import { Fragment as Fragment18, jsx as jsx69, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
10929
|
+
var HL_LANGS = {
|
|
10930
|
+
bash: hlBash,
|
|
10931
|
+
go: hlGo,
|
|
10932
|
+
typescript: hlTs,
|
|
10933
|
+
javascript: hlJs,
|
|
10934
|
+
json: hlJson,
|
|
10935
|
+
yaml: hlYaml,
|
|
10936
|
+
sql: hlSql,
|
|
10937
|
+
graphql: hlGraphql,
|
|
10938
|
+
powershell: hlPwsh,
|
|
10939
|
+
dockerfile: hlDockerfile
|
|
10940
|
+
};
|
|
10941
|
+
for (const [name, def] of Object.entries(HL_LANGS)) {
|
|
10942
|
+
try {
|
|
10943
|
+
if (!hljs.getLanguage(name)) hljs.registerLanguage(name, def);
|
|
10944
|
+
} catch {
|
|
10945
|
+
}
|
|
10946
|
+
}
|
|
10947
|
+
var HL_ALIAS = {
|
|
10948
|
+
sh: "bash",
|
|
10949
|
+
shell: "bash",
|
|
10950
|
+
zsh: "bash",
|
|
10951
|
+
console: "bash",
|
|
10952
|
+
ts: "typescript",
|
|
10953
|
+
tsx: "typescript",
|
|
10954
|
+
js: "javascript",
|
|
10955
|
+
jsx: "javascript",
|
|
10956
|
+
mjs: "javascript",
|
|
10957
|
+
yml: "yaml",
|
|
10958
|
+
ps: "powershell",
|
|
10959
|
+
ps1: "powershell",
|
|
10960
|
+
gql: "graphql",
|
|
10961
|
+
docker: "dockerfile"
|
|
10962
|
+
};
|
|
10963
|
+
function highlightToHtml(code, lang) {
|
|
10964
|
+
const key = lang ? HL_ALIAS[lang] ?? lang : void 0;
|
|
10965
|
+
try {
|
|
10966
|
+
if (key && hljs.getLanguage(key)) return hljs.highlight(code, { language: key }).value;
|
|
10967
|
+
} catch {
|
|
10968
|
+
}
|
|
10969
|
+
return null;
|
|
10970
|
+
}
|
|
10918
10971
|
function hastText(node) {
|
|
10919
10972
|
if (!node) return "";
|
|
10920
10973
|
if (node.type === "text") return node.value ?? "";
|
|
@@ -10982,7 +11035,9 @@ function CodeBlock({ lang, children }) {
|
|
|
10982
11035
|
a.download = `code.${lang || "txt"}.png`;
|
|
10983
11036
|
a.click();
|
|
10984
11037
|
};
|
|
10985
|
-
|
|
11038
|
+
const raw = typeof children === "string" ? children : Array.isArray(children) && children.every((c) => typeof c === "string") ? children.join("") : null;
|
|
11039
|
+
const html = raw != null ? highlightToHtml(raw.replace(/\n$/, ""), lang) : null;
|
|
11040
|
+
return /* @__PURE__ */ jsxs60("div", { className: "tg-code my-3 overflow-hidden rounded-lg border border-border", children: [
|
|
10986
11041
|
/* @__PURE__ */ jsxs60("div", { className: "flex items-center justify-between border-b border-border bg-muted/60 px-3 py-1.5", children: [
|
|
10987
11042
|
/* @__PURE__ */ jsx69("span", { className: "font-mono text-xs text-muted-foreground", children: lang || "code" }),
|
|
10988
11043
|
/* @__PURE__ */ jsxs60("span", { className: "flex items-center gap-1", children: [
|
|
@@ -10996,7 +11051,7 @@ function CodeBlock({ lang, children }) {
|
|
|
10996
11051
|
] })
|
|
10997
11052
|
] })
|
|
10998
11053
|
] }),
|
|
10999
|
-
/* @__PURE__ */ jsx69("div", { ref: boxRef, className: "bg-muted/40 p-3", children: /* @__PURE__ */ jsx69("pre", { dir: "ltr", className: "overflow-x-auto text-[0.8rem] leading-relaxed [&>code]:bg-transparent [&>code]:p-0", children: /* @__PURE__ */ jsx69("code", { ref: codeRef, className: cn("hljs", lang && `language-${lang}`), children }) }) })
|
|
11054
|
+
/* @__PURE__ */ jsx69("div", { ref: boxRef, className: "bg-muted/40 p-3", children: /* @__PURE__ */ jsx69("pre", { dir: "ltr", className: "overflow-x-auto text-[0.8rem] leading-relaxed [&>code]:bg-transparent [&>code]:p-0", children: html != null ? /* @__PURE__ */ jsx69("code", { ref: codeRef, className: cn("hljs", lang && `language-${lang}`), dangerouslySetInnerHTML: { __html: html } }) : /* @__PURE__ */ jsx69("code", { ref: codeRef, className: cn("hljs", lang && `language-${lang}`), children }) }) })
|
|
11000
11055
|
] });
|
|
11001
11056
|
}
|
|
11002
11057
|
var _mermaidPromise = null;
|
|
@@ -15758,6 +15813,201 @@ var ChatThread = ({
|
|
|
15758
15813
|
};
|
|
15759
15814
|
ChatThread.displayName = "ChatThread";
|
|
15760
15815
|
var ChatThread_default = ChatThread;
|
|
15816
|
+
|
|
15817
|
+
// src/components/marketing/Marketing.tsx
|
|
15818
|
+
import * as React28 from "react";
|
|
15819
|
+
import { jsx as jsx97, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
15820
|
+
var DISPLAY = { fontFamily: '"Sora", var(--togo-font-body, ui-sans-serif, system-ui, sans-serif)' };
|
|
15821
|
+
function Eyebrow({ icon: Icon, className, children, ...rest }) {
|
|
15822
|
+
return /* @__PURE__ */ jsxs85(
|
|
15823
|
+
"div",
|
|
15824
|
+
{
|
|
15825
|
+
className: cn(
|
|
15826
|
+
"flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.18em] text-[hsl(var(--primary))]",
|
|
15827
|
+
className
|
|
15828
|
+
),
|
|
15829
|
+
...rest,
|
|
15830
|
+
children: [
|
|
15831
|
+
Icon ? /* @__PURE__ */ jsx97(Icon, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }) : null,
|
|
15832
|
+
/* @__PURE__ */ jsx97("span", { children })
|
|
15833
|
+
]
|
|
15834
|
+
}
|
|
15835
|
+
);
|
|
15836
|
+
}
|
|
15837
|
+
Eyebrow.displayName = "Eyebrow";
|
|
15838
|
+
function SectionHeading({ eyebrow, eyebrowIcon, title, subtitle, align = "center", className }) {
|
|
15839
|
+
const centered = align === "center";
|
|
15840
|
+
return /* @__PURE__ */ jsxs85("div", { className: cn("max-w-2xl", centered && "mx-auto text-center", className), children: [
|
|
15841
|
+
eyebrow ? /* @__PURE__ */ jsx97(Eyebrow, { icon: eyebrowIcon, className: cn("mb-3", centered && "justify-center"), children: eyebrow }) : null,
|
|
15842
|
+
/* @__PURE__ */ jsx97("h2", { style: DISPLAY, className: "text-3xl font-bold tracking-tight text-foreground sm:text-4xl", children: title }),
|
|
15843
|
+
subtitle ? /* @__PURE__ */ jsx97("p", { className: "mt-3 text-muted-foreground", children: subtitle }) : null
|
|
15844
|
+
] });
|
|
15845
|
+
}
|
|
15846
|
+
SectionHeading.displayName = "SectionHeading";
|
|
15847
|
+
function FeatureCard({ icon: Icon, title, children, className, ...rest }) {
|
|
15848
|
+
return /* @__PURE__ */ jsxs85(
|
|
15849
|
+
"div",
|
|
15850
|
+
{
|
|
15851
|
+
className: cn(
|
|
15852
|
+
"rounded-2xl border border-border bg-card p-6 transition duration-200 hover:-translate-y-1 hover:border-border/80",
|
|
15853
|
+
className
|
|
15854
|
+
),
|
|
15855
|
+
...rest,
|
|
15856
|
+
children: [
|
|
15857
|
+
Icon ? /* @__PURE__ */ jsx97("div", { className: "mb-4 inline-grid h-11 w-11 place-items-center rounded-xl border border-[hsl(var(--primary)/0.18)] bg-[hsl(var(--primary)/0.1)] text-[hsl(var(--primary))]", children: /* @__PURE__ */ jsx97(Icon, { className: "h-5 w-5", "aria-hidden": true }) }) : null,
|
|
15858
|
+
/* @__PURE__ */ jsx97("h3", { style: DISPLAY, className: "mb-2 text-[17px] font-bold text-foreground", children: title }),
|
|
15859
|
+
/* @__PURE__ */ jsx97("div", { className: "text-sm text-muted-foreground [&_b]:text-foreground [&_code]:rounded [&_code]:bg-muted [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[12.5px] [&_code]:text-foreground/80", children })
|
|
15860
|
+
]
|
|
15861
|
+
}
|
|
15862
|
+
);
|
|
15863
|
+
}
|
|
15864
|
+
FeatureCard.displayName = "FeatureCard";
|
|
15865
|
+
function CodeShowcase({ tabs, className }) {
|
|
15866
|
+
const [active, setActive] = React28.useState(tabs[0]?.key);
|
|
15867
|
+
const tab = tabs.find((t2) => t2.key === active) ?? tabs[0];
|
|
15868
|
+
return /* @__PURE__ */ jsxs85("div", { className: cn("overflow-hidden rounded-2xl border border-border bg-card", className), children: [
|
|
15869
|
+
/* @__PURE__ */ jsx97("div", { role: "tablist", className: "flex items-center gap-1 overflow-x-auto border-b border-border px-2", children: tabs.map((t2) => {
|
|
15870
|
+
const on = (active ?? tabs[0]?.key) === t2.key;
|
|
15871
|
+
return /* @__PURE__ */ jsxs85(
|
|
15872
|
+
"button",
|
|
15873
|
+
{
|
|
15874
|
+
role: "tab",
|
|
15875
|
+
"aria-selected": on,
|
|
15876
|
+
onClick: () => setActive(t2.key),
|
|
15877
|
+
className: cn(
|
|
15878
|
+
"relative px-3 py-2.5 text-sm transition",
|
|
15879
|
+
on ? "text-foreground" : "text-muted-foreground hover:text-foreground"
|
|
15880
|
+
),
|
|
15881
|
+
children: [
|
|
15882
|
+
t2.label,
|
|
15883
|
+
on ? /* @__PURE__ */ jsx97("span", { className: "absolute inset-x-2 -bottom-px h-0.5 rounded bg-[hsl(var(--primary))]" }) : null
|
|
15884
|
+
]
|
|
15885
|
+
},
|
|
15886
|
+
t2.key
|
|
15887
|
+
);
|
|
15888
|
+
}) }),
|
|
15889
|
+
tab?.file ? /* @__PURE__ */ jsx97("div", { className: "px-4 pt-3 font-mono text-[11px] text-muted-foreground", children: tab.file }) : null,
|
|
15890
|
+
/* @__PURE__ */ jsx97("div", { className: "px-3 pb-3 pt-1", children: /* @__PURE__ */ jsx97(CodeBlock, { lang: tab?.lang, children: tab?.code }) })
|
|
15891
|
+
] });
|
|
15892
|
+
}
|
|
15893
|
+
CodeShowcase.displayName = "CodeShowcase";
|
|
15894
|
+
|
|
15895
|
+
// src/components/marketing/Glass.tsx
|
|
15896
|
+
import * as React29 from "react";
|
|
15897
|
+
import { jsx as jsx98, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
15898
|
+
var DISPLAY2 = { fontFamily: '"Sora", var(--togo-font-body, ui-sans-serif, system-ui, sans-serif)' };
|
|
15899
|
+
function AuroraBackground({ className, intensity = 1, style, ...rest }) {
|
|
15900
|
+
return /* @__PURE__ */ jsxs86("div", { "aria-hidden": true, className: cn("pointer-events-none absolute inset-0 -z-10 overflow-hidden", className), style, ...rest, children: [
|
|
15901
|
+
/* @__PURE__ */ jsx98("style", { children: `
|
|
15902
|
+
@keyframes tg-aurora-a { 0%,100%{transform:translate3d(-6%,-4%,0) scale(1)} 50%{transform:translate3d(8%,6%,0) scale(1.15)} }
|
|
15903
|
+
@keyframes tg-aurora-b { 0%,100%{transform:translate3d(6%,8%,0) scale(1.1)} 50%{transform:translate3d(-8%,-6%,0) scale(.95)} }
|
|
15904
|
+
@keyframes tg-aurora-c { 0%,100%{transform:translate3d(0,0,0) scale(1.05)} 50%{transform:translate3d(-10%,4%,0) scale(1.2)} }
|
|
15905
|
+
.tg-orb{position:absolute;border-radius:9999px;filter:blur(70px);opacity:${0.5 * intensity};mix-blend-mode:screen}
|
|
15906
|
+
@media (prefers-reduced-motion: reduce){ .tg-orb{animation:none!important} }
|
|
15907
|
+
` }),
|
|
15908
|
+
/* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "46vw", height: "46vw", top: "-12%", left: "8%", background: "radial-gradient(circle, #1FC7DC, transparent 65%)", animation: "tg-aurora-a 22s ease-in-out infinite" } }),
|
|
15909
|
+
/* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "50vw", height: "50vw", top: "-18%", right: "2%", background: "radial-gradient(circle, #2D8CE6, transparent 65%)", animation: "tg-aurora-b 26s ease-in-out infinite" } }),
|
|
15910
|
+
/* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "42vw", height: "42vw", top: "20%", left: "30%", background: "radial-gradient(circle, #1659C8, transparent 68%)", animation: "tg-aurora-c 30s ease-in-out infinite" } }),
|
|
15911
|
+
/* @__PURE__ */ jsx98(
|
|
15912
|
+
"div",
|
|
15913
|
+
{
|
|
15914
|
+
className: "absolute inset-0 opacity-[0.35]",
|
|
15915
|
+
style: {
|
|
15916
|
+
backgroundImage: "linear-gradient(rgba(120,140,160,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(120,140,160,.10) 1px,transparent 1px)",
|
|
15917
|
+
backgroundSize: "56px 56px",
|
|
15918
|
+
maskImage: "radial-gradient(900px 600px at 50% 0%, #000, transparent 80%)",
|
|
15919
|
+
WebkitMaskImage: "radial-gradient(900px 600px at 50% 0%, #000, transparent 80%)"
|
|
15920
|
+
}
|
|
15921
|
+
}
|
|
15922
|
+
)
|
|
15923
|
+
] });
|
|
15924
|
+
}
|
|
15925
|
+
AuroraBackground.displayName = "AuroraBackground";
|
|
15926
|
+
function GlassCard({ className, elevation = "raised", hover = false, children, ...rest }) {
|
|
15927
|
+
const shadow = elevation === "floating" ? "shadow-[0_30px_80px_-30px_rgba(0,0,0,.7)]" : elevation === "raised" ? "shadow-[0_16px_50px_-24px_rgba(0,0,0,.6)]" : "";
|
|
15928
|
+
return /* @__PURE__ */ jsx98(
|
|
15929
|
+
"div",
|
|
15930
|
+
{
|
|
15931
|
+
className: cn(
|
|
15932
|
+
"relative rounded-2xl border border-white/10 bg-white/[0.04] backdrop-blur-xl",
|
|
15933
|
+
"before:pointer-events-none before:absolute before:inset-0 before:rounded-2xl before:p-px",
|
|
15934
|
+
"before:[background:linear-gradient(140deg,rgba(255,255,255,.18),rgba(255,255,255,0)_40%)]",
|
|
15935
|
+
"before:[mask:linear-gradient(#000,#000)_content-box,linear-gradient(#000,#000)] before:[mask-composite:exclude]",
|
|
15936
|
+
shadow,
|
|
15937
|
+
hover && "transition-transform duration-300 hover:-translate-y-1",
|
|
15938
|
+
className
|
|
15939
|
+
),
|
|
15940
|
+
...rest,
|
|
15941
|
+
children
|
|
15942
|
+
}
|
|
15943
|
+
);
|
|
15944
|
+
}
|
|
15945
|
+
GlassCard.displayName = "GlassCard";
|
|
15946
|
+
function Reveal({ className, delayMs = 0, as: Tag = "div", children, style, ...rest }) {
|
|
15947
|
+
const ref = React29.useRef(null);
|
|
15948
|
+
const [state, setState] = React29.useState("static");
|
|
15949
|
+
React29.useEffect(() => {
|
|
15950
|
+
const el = ref.current;
|
|
15951
|
+
if (!el) return;
|
|
15952
|
+
const noMotion = typeof window !== "undefined" && (navigator.webdriver || window.matchMedia?.("(prefers-reduced-motion: reduce)").matches || !("IntersectionObserver" in window));
|
|
15953
|
+
if (noMotion) return;
|
|
15954
|
+
const rect = el.getBoundingClientRect();
|
|
15955
|
+
if (rect.top < window.innerHeight * 0.92 && rect.bottom > 0) {
|
|
15956
|
+
setState("shown");
|
|
15957
|
+
return;
|
|
15958
|
+
}
|
|
15959
|
+
setState("hidden");
|
|
15960
|
+
const io = new IntersectionObserver(
|
|
15961
|
+
(entries) => entries.forEach((e) => {
|
|
15962
|
+
if (e.isIntersecting) {
|
|
15963
|
+
setState("shown");
|
|
15964
|
+
io.disconnect();
|
|
15965
|
+
}
|
|
15966
|
+
}),
|
|
15967
|
+
{ threshold: 0.12, rootMargin: "0px 0px -8% 0px" }
|
|
15968
|
+
);
|
|
15969
|
+
io.observe(el);
|
|
15970
|
+
return () => io.disconnect();
|
|
15971
|
+
}, []);
|
|
15972
|
+
const motion = state === "static" ? "" : state === "hidden" ? "opacity-0 translate-y-5" : "opacity-100 translate-y-0";
|
|
15973
|
+
return /* @__PURE__ */ jsx98(
|
|
15974
|
+
Tag,
|
|
15975
|
+
{
|
|
15976
|
+
ref,
|
|
15977
|
+
style: { transitionDelay: `${delayMs}ms`, ...style },
|
|
15978
|
+
className: cn("transition-all duration-[700ms] ease-out will-change-[opacity,transform]", motion, className),
|
|
15979
|
+
...rest,
|
|
15980
|
+
children
|
|
15981
|
+
}
|
|
15982
|
+
);
|
|
15983
|
+
}
|
|
15984
|
+
Reveal.displayName = "Reveal";
|
|
15985
|
+
function MockupWindow({ className, title, children, ...rest }) {
|
|
15986
|
+
return /* @__PURE__ */ jsxs86(GlassCard, { elevation: "floating", className: cn("overflow-hidden", className), ...rest, children: [
|
|
15987
|
+
/* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-2 px-4 py-3 border-b border-white/10 bg-white/[0.03]", children: [
|
|
15988
|
+
/* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#ff5f57]" }),
|
|
15989
|
+
/* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#febc2e]" }),
|
|
15990
|
+
/* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#28c840]" }),
|
|
15991
|
+
title ? /* @__PURE__ */ jsx98("span", { className: "ms-2 font-mono text-xs text-muted-foreground truncate", children: title }) : null
|
|
15992
|
+
] }),
|
|
15993
|
+
/* @__PURE__ */ jsx98("div", { className: "bg-[#080b0f]/80", children })
|
|
15994
|
+
] });
|
|
15995
|
+
}
|
|
15996
|
+
MockupWindow.displayName = "MockupWindow";
|
|
15997
|
+
function PillButton({ className, variant = "flow", size = "lg", children, ...rest }) {
|
|
15998
|
+
const sz = size === "lg" ? "h-[52px] px-7 text-base" : "h-11 px-5 text-sm";
|
|
15999
|
+
const look = variant === "flow" ? "text-white shadow-[0_12px_34px_-10px_rgba(22,89,200,.7)] hover:-translate-y-0.5" : "text-foreground border border-white/15 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.1]";
|
|
16000
|
+
return /* @__PURE__ */ jsx98(
|
|
16001
|
+
"a",
|
|
16002
|
+
{
|
|
16003
|
+
style: variant === "flow" ? { backgroundImage: "linear-gradient(110deg,#1FC7DC,#2D8CE6 50%,#1659C8)", ...DISPLAY2 } : DISPLAY2,
|
|
16004
|
+
className: cn("inline-flex items-center justify-center gap-2 rounded-full font-semibold transition-all duration-200", sz, look, className),
|
|
16005
|
+
...rest,
|
|
16006
|
+
children
|
|
16007
|
+
}
|
|
16008
|
+
);
|
|
16009
|
+
}
|
|
16010
|
+
PillButton.displayName = "PillButton";
|
|
15761
16011
|
export {
|
|
15762
16012
|
Accordion,
|
|
15763
16013
|
AccordionContent,
|
|
@@ -15795,6 +16045,7 @@ export {
|
|
|
15795
16045
|
ArtifactTable,
|
|
15796
16046
|
ArtifactViewer_default as ArtifactViewer,
|
|
15797
16047
|
AspectRatio,
|
|
16048
|
+
AuroraBackground,
|
|
15798
16049
|
AuthCard_default as AuthCard,
|
|
15799
16050
|
AuthErrorAlert_default as AuthErrorAlert,
|
|
15800
16051
|
AuthFlow_default as AuthFlow,
|
|
@@ -15834,6 +16085,7 @@ export {
|
|
|
15834
16085
|
ChatThread_default as ChatThread,
|
|
15835
16086
|
Checkbox,
|
|
15836
16087
|
CodeBlock,
|
|
16088
|
+
CodeShowcase,
|
|
15837
16089
|
Collapsible,
|
|
15838
16090
|
CollapsibleContent,
|
|
15839
16091
|
CollapsibleTrigger,
|
|
@@ -15914,6 +16166,8 @@ export {
|
|
|
15914
16166
|
EntityNetworkGraph,
|
|
15915
16167
|
ErrorTrackingPage,
|
|
15916
16168
|
EventMapPanel,
|
|
16169
|
+
Eyebrow,
|
|
16170
|
+
FeatureCard,
|
|
15917
16171
|
FeedbackButton,
|
|
15918
16172
|
FeedbackHub,
|
|
15919
16173
|
FeedbackWidget,
|
|
@@ -15925,6 +16179,7 @@ export {
|
|
|
15925
16179
|
FormItem,
|
|
15926
16180
|
FormLabel,
|
|
15927
16181
|
FormMessage,
|
|
16182
|
+
GlassCard,
|
|
15928
16183
|
HoverCard,
|
|
15929
16184
|
HoverCardContent,
|
|
15930
16185
|
HoverCardTrigger,
|
|
@@ -15971,6 +16226,7 @@ export {
|
|
|
15971
16226
|
MenubarSubTrigger,
|
|
15972
16227
|
MenubarTrigger,
|
|
15973
16228
|
MiniBarChart,
|
|
16229
|
+
MockupWindow,
|
|
15974
16230
|
MotorFeedbackLauncher,
|
|
15975
16231
|
NativeSelect,
|
|
15976
16232
|
NavigationMenu,
|
|
@@ -15996,6 +16252,7 @@ export {
|
|
|
15996
16252
|
PasswordInput_default as PasswordInput,
|
|
15997
16253
|
PasswordLockScreen_default as PasswordLockScreen,
|
|
15998
16254
|
PasswordStrengthMeter_default as PasswordStrengthMeter,
|
|
16255
|
+
PillButton,
|
|
15999
16256
|
PluginAppearanceSection,
|
|
16000
16257
|
PluginCard,
|
|
16001
16258
|
PluginDetailLayout,
|
|
@@ -16015,6 +16272,7 @@ export {
|
|
|
16015
16272
|
ResizableHandle,
|
|
16016
16273
|
ResizablePanel,
|
|
16017
16274
|
ResizablePanelGroup,
|
|
16275
|
+
Reveal,
|
|
16018
16276
|
RouteProgress,
|
|
16019
16277
|
SENTRA_BRAND,
|
|
16020
16278
|
STEP_FIELD_REGISTRY,
|
|
@@ -16022,6 +16280,7 @@ export {
|
|
|
16022
16280
|
ScrollArea,
|
|
16023
16281
|
ScrollBar,
|
|
16024
16282
|
SectionBoard,
|
|
16283
|
+
SectionHeading,
|
|
16025
16284
|
SectionSkeleton,
|
|
16026
16285
|
Select,
|
|
16027
16286
|
SelectContent,
|