@motiadev/workbench 0.3.1-beta.83 → 0.3.1-beta.85
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 +1 -1
- package/dist/index.js +1 -1
- package/dist/src/components/endpoints/endpoint-call.js +2 -2
- package/dist/src/components/logs/log-console.js +1 -1
- package/dist/src/components/ui/button.d.ts +11 -0
- package/dist/src/components/ui/button.js +33 -0
- package/dist/src/components/ui/sidebar.js +1 -1
- package/dist/src/index.css +155 -1
- package/dist/src/routes/index.js +1 -1
- package/dist/src/views/flow/legend.js +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/tsconfig.node.tsbuildinfo +1 -1
- package/package.json +2 -3
package/dist/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export { BaseHandle } from './src/publicComponents/base-handle';
|
|
|
6
6
|
export { Position } from '@xyflow/react';
|
|
7
7
|
export type { EventNodeData, ApiNodeData } from './src/views/flow/nodes/nodes.types';
|
|
8
8
|
export type { ApiNodeProps, BaseNodeProps, CronNodeProps, EventNodeProps, NoopNodeProps, } from './src/publicComponents/node-props';
|
|
9
|
-
export { Button } from '
|
|
9
|
+
export { Button } from './src/components/ui/button';
|
package/dist/index.js
CHANGED
|
@@ -4,4 +4,4 @@ export { NoopNode } from './src/publicComponents/noop-node';
|
|
|
4
4
|
export { BaseNode } from './src/publicComponents/base-node';
|
|
5
5
|
export { BaseHandle } from './src/publicComponents/base-handle';
|
|
6
6
|
export { Position } from '@xyflow/react';
|
|
7
|
-
export { Button } from '
|
|
7
|
+
export { Button } from './src/components/ui/button';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useMemo, useState } from 'react';
|
|
3
3
|
import { Loader2, Play, X } from 'lucide-react';
|
|
4
|
-
import { Button } from '
|
|
4
|
+
import { Button } from '../ui/button';
|
|
5
5
|
import { Input } from '../ui/input';
|
|
6
6
|
import { Textarea } from '../ui/textarea';
|
|
7
7
|
import { EndpointBadge } from './endpoint-badge';
|
|
@@ -67,5 +67,5 @@ export const EndpointCall = ({ endpoint, onClose }) => {
|
|
|
67
67
|
setExecutionTime(executionTime);
|
|
68
68
|
setIsRequestLoading(false);
|
|
69
69
|
};
|
|
70
|
-
return (_jsxs("div", { className: "flex flex-col gap-2 overflow-y-auto", children: [_jsxs("div", { className: "text-xs flex flex-row gap-2 items-center justify-between w-full", children: [_jsx("span", { className: "font-bold", children: "Request" }), _jsx("div", { className: "flex flex-row gap-2 items-center hover:bg-white/10 rounded-md p-1", children: _jsx(X, { className: "cursor-pointer w-4 h-4", onClick: onClose }) })] }), _jsxs("div", { className: "flex flex-row gap-2 items-center", children: [_jsx(EndpointBadge, { variant: endpoint.method, children: endpoint.method.toUpperCase() }), _jsx("span", { className: "text-md font-bold", children: endpoint.path })] }), _jsx("span", { className: "text-xs text-muted-foreground", children: endpoint.description }), !!pathParams.length && (_jsxs("div", { className: "flex flex-col gap-2 p-4 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Path Params" }), _jsx("div", { className: "flex flex-col gap-4", children: pathParams.map((param) => (_jsxs("div", { className: "text-xs", children: [_jsx("div", { className: "font-bold mb-2", children: param }), _jsx(Input, { className: "w-full", value: pathParamsValues[param], onChange: (e) => onPathParamChange(param, e.target.value) })] }, param))) })] })), !!endpoint.queryParams?.length && (_jsxs("div", { className: "flex flex-col gap-2 p-4 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Query Params" }), _jsx("div", { className: "flex flex-col gap-4", children: endpoint.queryParams.map((param) => (_jsxs("div", { className: "text-xs", children: [_jsx("div", { className: "font-bold mb-2", children: param.name }), _jsx(Input, { className: "w-full", value: queryParamsValues[param.name], onChange: (e) => onQueryParamChange(param.name, e.target.value) })] }, param.name))) })] })), shouldHaveBody && (_jsxs("div", { className: "flex flex-col gap-2 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Body" }), _jsx(Textarea, { "data-testid": "endpoint-body-textarea", className: `w-full font-mono font-medium min-h-[200px] ${!isJsonValid ? 'border-red-500' : ''}`, value: body, onChange: handleBodyChange }), _jsx("span", { "data-testid": "endpoint-invalid-json-message", className: `text-xs text-red-500 ${isJsonValid ? 'invisible' : ''}`, children: "Invalid JSON" })] })), _jsxs(Button, { className: "w-fit", onClick: handleRequest, "data-testid": "endpoint-play-button", disabled: isRequestLoading || !isPlayEnabled, children: [isRequestLoading ? _jsx(Loader2, { className: "animate-spin
|
|
70
|
+
return (_jsxs("div", { className: "flex flex-col gap-2 overflow-y-auto", children: [_jsxs("div", { className: "text-xs flex flex-row gap-2 items-center justify-between w-full", children: [_jsx("span", { className: "font-bold", children: "Request" }), _jsx("div", { className: "flex flex-row gap-2 items-center hover:bg-white/10 rounded-md p-1", children: _jsx(X, { className: "cursor-pointer w-4 h-4", onClick: onClose }) })] }), _jsxs("div", { className: "flex flex-row gap-2 items-center", children: [_jsx(EndpointBadge, { variant: endpoint.method, children: endpoint.method.toUpperCase() }), _jsx("span", { className: "text-md font-bold", children: endpoint.path })] }), _jsx("span", { className: "text-xs text-muted-foreground", children: endpoint.description }), !!pathParams.length && (_jsxs("div", { className: "flex flex-col gap-2 p-4 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Path Params" }), _jsx("div", { className: "flex flex-col gap-4", children: pathParams.map((param) => (_jsxs("div", { className: "text-xs", children: [_jsx("div", { className: "font-bold mb-2", children: param }), _jsx(Input, { className: "w-full", value: pathParamsValues[param], onChange: (e) => onPathParamChange(param, e.target.value) })] }, param))) })] })), !!endpoint.queryParams?.length && (_jsxs("div", { className: "flex flex-col gap-2 p-4 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Query Params" }), _jsx("div", { className: "flex flex-col gap-4", children: endpoint.queryParams.map((param) => (_jsxs("div", { className: "text-xs", children: [_jsx("div", { className: "font-bold mb-2", children: param.name }), _jsx(Input, { className: "w-full", value: queryParamsValues[param.name], onChange: (e) => onQueryParamChange(param.name, e.target.value) })] }, param.name))) })] })), shouldHaveBody && (_jsxs("div", { className: "flex flex-col gap-2 rounded-lg bg-muted", children: [_jsx("span", { className: "text-xs font-bold", children: "Body" }), _jsx(Textarea, { "data-testid": "endpoint-body-textarea", className: `w-full font-mono font-medium min-h-[200px] ${!isJsonValid ? 'border-red-500' : ''}`, value: body, onChange: handleBodyChange }), _jsx("span", { "data-testid": "endpoint-invalid-json-message", className: `text-xs text-red-500 ${isJsonValid ? 'invisible' : ''}`, children: "Invalid JSON" })] })), _jsxs(Button, { className: "w-fit", onClick: handleRequest, "data-testid": "endpoint-play-button", disabled: isRequestLoading || !isPlayEnabled, children: [isRequestLoading ? _jsx(Loader2, { className: "animate-spin" }) : _jsx(Play, {}), " Play"] }), responseCode !== undefined && (_jsxs("div", { className: "flex flex-col gap-2 rounded-lg bg-muted", "data-testid": "endpoint-response-container", children: [_jsxs("span", { className: "text-xs font-bold", children: [_jsx(EndpointBadge, { variant: responseCode >= 400 ? 'DELETE' : 'GET', children: responseCode }), " Execution time: ", _jsxs("span", { className: "text-muted-foreground", children: [executionTime, "ms"] })] }), isStreamed && (_jsxs("span", { className: "flex flex-row items-center font-medium text-muted-foreground text-xs", children: [_jsxs("span", { className: "ml-1 inline-block w-2 h-2 rounded-full bg-green-500 mr-2 relative", children: [_jsx("span", { className: "absolute inset-0 rounded-full bg-green-500 animate-[ping_1.5s_ease-in-out_infinite]" }), _jsx("span", { className: "absolute inset-0 rounded-full bg-green-500" })] }), "Object is being streamed, this is not the actual response from the API Endpoint"] })), _jsx("span", { className: "text-xs font-mono font-bold dark:bg-black/50 bg-white/50 p-2 rounded-lg whitespace-pre-wrap", children: JSON.stringify(responseBodyData, null, 2) })] }))] }));
|
|
71
71
|
};
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useLogs } from '@/stores/use-logs';
|
|
3
3
|
import { ChevronDown, ChevronUp, Trash2 } from 'lucide-react';
|
|
4
4
|
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from '../ui/button';
|
|
6
6
|
import { cn } from '@/lib/utils';
|
|
7
7
|
import { Logs } from './logs';
|
|
8
8
|
const MIN_HEIGHT = 100;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "link" | "none" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { cn } from '@/lib/utils';
|
|
6
|
+
const buttonVariants = cva('inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
|
|
10
|
+
destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
|
|
11
|
+
outline: 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
|
|
12
|
+
secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
|
|
13
|
+
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
14
|
+
link: 'text-primary underline-offset-4 hover:underline',
|
|
15
|
+
none: '',
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
default: 'h-9 px-4 py-2',
|
|
19
|
+
sm: 'h-8 rounded-md px-3 text-xs',
|
|
20
|
+
lg: 'h-10 rounded-md px-8',
|
|
21
|
+
icon: 'h-9 w-9',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
variant: 'default',
|
|
26
|
+
size: 'default',
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
export const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
30
|
+
const Comp = asChild ? Slot : 'button';
|
|
31
|
+
return _jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props });
|
|
32
|
+
});
|
|
33
|
+
Button.displayName = 'Button';
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import { cn } from '@/lib/utils';
|
|
4
4
|
import { PanelLeftClose, PanelLeftOpen } from 'lucide-react';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from './button';
|
|
6
6
|
const SIDEBAR_COLLAPSED_KEY = 'sidebar-collapsed';
|
|
7
7
|
export const Sidebar = ({ children }) => {
|
|
8
8
|
const [isCollapsed, setIsCollapsed] = useState(() => {
|
package/dist/src/index.css
CHANGED
|
@@ -1,7 +1,152 @@
|
|
|
1
|
-
@import '
|
|
1
|
+
@import 'tailwindcss';
|
|
2
2
|
@import 'tw-animate-css';
|
|
3
3
|
@config "../tailwind.config.js";
|
|
4
4
|
|
|
5
|
+
@custom-variant dark (&:is(.dark *));
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
line-height: 1.5;
|
|
9
|
+
font-size: 16px;
|
|
10
|
+
|
|
11
|
+
color-scheme: light dark;
|
|
12
|
+
font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"), serif;
|
|
13
|
+
font-synthesis: none;
|
|
14
|
+
text-rendering: optimizeLegibility;
|
|
15
|
+
-webkit-font-smoothing: antialiased;
|
|
16
|
+
-moz-osx-font-smoothing: grayscale;
|
|
17
|
+
width: 100%;
|
|
18
|
+
font-optical-sizing: auto;
|
|
19
|
+
|
|
20
|
+
--radius: 0.625rem;
|
|
21
|
+
--background: oklch(1 0 0);
|
|
22
|
+
--foreground: oklch(0.145 0 0);
|
|
23
|
+
--card: oklch(0.98 0 0);
|
|
24
|
+
--card-foreground: oklch(0.145 0 0);
|
|
25
|
+
--popover: oklch(1 0 0);
|
|
26
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
27
|
+
--primary: oklch(0.205 0 0);
|
|
28
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
29
|
+
--secondary: oklch(0.97 0 0);
|
|
30
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
31
|
+
--muted: oklch(0.97 0 0);
|
|
32
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
33
|
+
--accent: oklch(0.97 0 0);
|
|
34
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
35
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
36
|
+
--border: oklch(0.922 0 0);
|
|
37
|
+
--input: oklch(0.922 0 0);
|
|
38
|
+
--ring: oklch(0.708 0 0);
|
|
39
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
40
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
41
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
42
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
43
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
44
|
+
--header: oklch(0.985 0 0);
|
|
45
|
+
--header-foreground: oklch(0.145 0 0);
|
|
46
|
+
--header-primary: oklch(0.205 0 0);
|
|
47
|
+
--header-primary-foreground: oklch(0.985 0 0);
|
|
48
|
+
--header-accent: oklch(0.97 0 0);
|
|
49
|
+
--header-accent-foreground: oklch(0.205 0 0);
|
|
50
|
+
--header-border: oklch(0.922 0 0);
|
|
51
|
+
--header-ring: oklch(0.708 0 0);
|
|
52
|
+
--sidebar: oklch(0.985 0 0);
|
|
53
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
54
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
55
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
56
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
57
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
58
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
59
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.dark {
|
|
63
|
+
--background: oklch(0.145 0 0);
|
|
64
|
+
--foreground: oklch(0.985 0 0);
|
|
65
|
+
--card: oklch(0.205 0 0);
|
|
66
|
+
--card-foreground: oklch(0.985 0 0);
|
|
67
|
+
--popover: oklch(0.205 0 0);
|
|
68
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
69
|
+
--primary: oklch(0.922 0 0);
|
|
70
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
71
|
+
--secondary: oklch(0.269 0 0);
|
|
72
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
73
|
+
--muted: oklch(0.269 0 0);
|
|
74
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
75
|
+
--accent: oklch(0.269 0 0);
|
|
76
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
77
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
78
|
+
--border: oklch(1 0 0 / 10%);
|
|
79
|
+
--input: oklch(1 0 0 / 15%);
|
|
80
|
+
--ring: oklch(0.556 0 0);
|
|
81
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
82
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
83
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
84
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
85
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
86
|
+
--header: oklch(0.205 0 0);
|
|
87
|
+
--header-foreground: oklch(0.985 0 0);
|
|
88
|
+
--header-primary: oklch(0.488 0.243 264.376);
|
|
89
|
+
--header-primary-foreground: oklch(0.985 0 0);
|
|
90
|
+
--header-accent: oklch(0.269 0 0);
|
|
91
|
+
--header-accent-foreground: oklch(0.985 0 0);
|
|
92
|
+
--header-border: oklch(1 0 0 / 10%);
|
|
93
|
+
--header-ring: oklch(0.556 0 0);
|
|
94
|
+
--sidebar: oklch(0.205 0 0);
|
|
95
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
96
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
97
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
98
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
99
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
100
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
101
|
+
--sidebar-ring: oklch(0.556 0 0);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@theme inline {
|
|
105
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
106
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
107
|
+
--radius-lg: var(--radius);
|
|
108
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
109
|
+
--color-background: var(--background);
|
|
110
|
+
--color-foreground: var(--foreground);
|
|
111
|
+
--color-card: var(--card);
|
|
112
|
+
--color-card-foreground: var(--card-foreground);
|
|
113
|
+
--color-popover: var(--popover);
|
|
114
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
115
|
+
--color-primary: var(--primary);
|
|
116
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
117
|
+
--color-secondary: var(--secondary);
|
|
118
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
119
|
+
--color-muted: var(--muted);
|
|
120
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
121
|
+
--color-accent: var(--accent);
|
|
122
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
123
|
+
--color-destructive: var(--destructive);
|
|
124
|
+
--color-border: var(--border);
|
|
125
|
+
--color-input: var(--input);
|
|
126
|
+
--color-ring: var(--ring);
|
|
127
|
+
--color-chart-1: var(--chart-1);
|
|
128
|
+
--color-chart-2: var(--chart-2);
|
|
129
|
+
--color-chart-3: var(--chart-3);
|
|
130
|
+
--color-chart-4: var(--chart-4);
|
|
131
|
+
--color-chart-5: var(--chart-5);
|
|
132
|
+
--color-header: var(--header);
|
|
133
|
+
--color-header-foreground: var(--header-foreground);
|
|
134
|
+
--color-header-primary: var(--header-primary);
|
|
135
|
+
--color-header-primary-foreground: var(--header-primary-foreground);
|
|
136
|
+
--color-header-accent: var(--header-accent);
|
|
137
|
+
--color-header-accent-foreground: var(--header-accent-foreground);
|
|
138
|
+
--color-header-border: var(--header-border);
|
|
139
|
+
--color-header-ring: var(--header-ring);
|
|
140
|
+
--color-sidebar: var(--sidebar);
|
|
141
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
142
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
143
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
144
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
145
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
146
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
147
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
148
|
+
}
|
|
149
|
+
|
|
5
150
|
body {
|
|
6
151
|
margin: 0;
|
|
7
152
|
place-items: center;
|
|
@@ -24,6 +169,15 @@ strong {
|
|
|
24
169
|
display: none;
|
|
25
170
|
}
|
|
26
171
|
|
|
172
|
+
@layer base {
|
|
173
|
+
* {
|
|
174
|
+
@apply border-border;
|
|
175
|
+
}
|
|
176
|
+
body {
|
|
177
|
+
@apply bg-background text-foreground;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
27
181
|
@keyframes flowDash {
|
|
28
182
|
0% {
|
|
29
183
|
stroke-dashoffset: 0;
|
package/dist/src/routes/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '
|
|
2
|
+
import { Button } from '@/components/ui/button';
|
|
3
3
|
export const Index = () => {
|
|
4
4
|
return (_jsxs("div", { className: "flex flex-col items-center justify-center w-full h-full gap-10 bg-gradient-to-r from-background via-background to-muted", children: [_jsx("h1", { className: "text-5xl font-extrabold max-w-[600px] text-center text-foreground", children: "Unified Backend Framework for APIs, Events and AI Agents" }), _jsx("div", { className: "max-w-[600px] text-center text-xl font-medium text-muted-foreground", children: "Write in any language. Automate anything. From AI agents to backend automation, Motia runs event-driven workflows with zero overhead." }), _jsx("div", { className: "p-[1px] min-w-[600px] rounded-lg shadow-lg border border-border", children: _jsx("div", { className: "rounded-lg bg-card p-8 font-semibold text-xl min-h-[100px] flex items-center", children: _jsxs("div", { className: "flex items-center gap-2 font-mono", children: [_jsx("span", { className: "text-primary", children: "$" }), _jsx("span", { className: "text-card-foreground", children: "npx motia generate step" })] }) }) }), _jsxs("div", { className: "flex flex-col gap-8 items-center", children: [_jsx("span", { className: "text-muted-foreground text-xl", children: "or" }), _jsx("a", { href: "https://motia.dev/docs", target: "_blank", children: _jsx(Button, { size: "lg", className: "text-xl py-6 px-8", children: "Read developer docs" }) })] })] }));
|
|
5
5
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '
|
|
2
|
+
import { Button } from '@/components/ui/button';
|
|
3
3
|
import { cn } from '@/lib/utils';
|
|
4
4
|
import { LayoutList, X } from 'lucide-react';
|
|
5
5
|
import { useState } from 'react';
|