@uipath/apollo-wind 0.8.0 → 0.9.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 (40) hide show
  1. package/dist/archived-ui-path.svg +3 -0
  2. package/dist/components/ui/index.cjs +10 -10
  3. package/dist/components/ui/input.cjs +1 -1
  4. package/dist/components/ui/input.js +1 -1
  5. package/dist/components/ui/select.cjs +1 -1
  6. package/dist/components/ui/select.js +1 -1
  7. package/dist/components/ui/textarea.cjs +1 -1
  8. package/dist/components/ui/textarea.js +1 -1
  9. package/dist/examples/admin-layout-example.cjs +490 -0
  10. package/dist/examples/admin-layout-example.js +411 -0
  11. package/dist/examples/app-shell-example.cjs +452 -0
  12. package/dist/examples/app-shell-example.js +418 -0
  13. package/dist/examples/dashboard-example.cjs +590 -0
  14. package/dist/examples/dashboard-example.js +556 -0
  15. package/dist/examples/data-management-example.cjs +584 -0
  16. package/dist/examples/data-management-example.js +550 -0
  17. package/dist/examples/flow-editor-layout-example.cjs +309 -0
  18. package/dist/examples/flow-editor-layout-example.js +269 -0
  19. package/dist/examples/flow-start-example.cjs +467 -0
  20. package/dist/examples/flow-start-example.js +433 -0
  21. package/dist/examples/form-builder-example.cjs +674 -0
  22. package/dist/examples/form-builder-example.js +640 -0
  23. package/dist/examples/new-project-example.cjs +550 -0
  24. package/dist/examples/new-project-example.js +516 -0
  25. package/dist/examples/settings-example.cjs +864 -0
  26. package/dist/examples/settings-example.js +830 -0
  27. package/dist/examples/vscode-example.cjs +340 -0
  28. package/dist/examples/vscode-example.js +270 -0
  29. package/dist/templates/admin-layout-example.d.ts +92 -0
  30. package/dist/templates/app-shell-example.d.ts +52 -0
  31. package/dist/templates/dashboard-example.d.ts +11 -0
  32. package/dist/templates/data-management-example.d.ts +1 -0
  33. package/dist/templates/flow-editor-layout-example.d.ts +22 -0
  34. package/dist/templates/flow-start-example.d.ts +30 -0
  35. package/dist/templates/form-builder-example.d.ts +1 -0
  36. package/dist/templates/new-project-example.d.ts +30 -0
  37. package/dist/templates/settings-example.d.ts +1 -0
  38. package/dist/templates/vscode-example.d.ts +80 -0
  39. package/dist/ui-path.svg +11 -0
  40. package/package.json +1 -1
@@ -0,0 +1,433 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Blocks, Bot, FolderKanban, GitBranch, LayoutGrid, List, MoreHorizontal } from "lucide-react";
3
+ import { useMemo, useState } from "react";
4
+ import { Badge } from "../components/ui/badge.js";
5
+ import { Button } from "../components/ui/button.js";
6
+ import { ButtonGroup } from "../components/ui/button-group.js";
7
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/card.js";
8
+ import { DataTable, DataTableColumnHeader } from "../components/ui/data-table.js";
9
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../components/ui/dropdown-menu.js";
10
+ import { Skeleton } from "../components/ui/skeleton.js";
11
+ import { Column, Grid, Row } from "../components/ui/layout/index.js";
12
+ import { cn } from "../lib/index.js";
13
+ function ProcessOptionCard({ option, isSelected, onSelect }) {
14
+ return /*#__PURE__*/ jsxs(Card, {
15
+ className: cn('group relative cursor-pointer transition-all duration-200 hover:border-primary/50 hover:shadow-md', isSelected && 'border-primary ring-2 ring-primary/20'),
16
+ onClick: onSelect,
17
+ children: [
18
+ option.badge && /*#__PURE__*/ jsx(Badge, {
19
+ variant: option.badgeVariant,
20
+ className: "absolute -top-2 right-4 text-[10px] px-2 py-0.5",
21
+ children: option.badge
22
+ }),
23
+ /*#__PURE__*/ jsx(CardHeader, {
24
+ className: "pb-3",
25
+ children: /*#__PURE__*/ jsx(Row, {
26
+ gap: 3,
27
+ align: "center",
28
+ children: /*#__PURE__*/ jsx("div", {
29
+ className: "flex h-10 w-10 items-center justify-center rounded-lg bg-muted text-muted-foreground transition-colors group-hover:bg-primary/10 group-hover:text-primary",
30
+ children: option.icon
31
+ })
32
+ })
33
+ }),
34
+ /*#__PURE__*/ jsxs(CardContent, {
35
+ className: "pt-0",
36
+ children: [
37
+ /*#__PURE__*/ jsx(CardTitle, {
38
+ className: "text-base mb-2",
39
+ children: option.title
40
+ }),
41
+ /*#__PURE__*/ jsx(CardDescription, {
42
+ className: "text-sm leading-relaxed",
43
+ children: option.description
44
+ })
45
+ ]
46
+ })
47
+ ]
48
+ });
49
+ }
50
+ function getTypeIcon(type) {
51
+ switch(type){
52
+ case 'flow':
53
+ return /*#__PURE__*/ jsx(GitBranch, {
54
+ className: "h-4 w-4"
55
+ });
56
+ case 'bpmn':
57
+ return /*#__PURE__*/ jsx(Blocks, {
58
+ className: "h-4 w-4"
59
+ });
60
+ case 'case':
61
+ return /*#__PURE__*/ jsx(FolderKanban, {
62
+ className: "h-4 w-4"
63
+ });
64
+ case 'autopilot':
65
+ return /*#__PURE__*/ jsx(Bot, {
66
+ className: "h-4 w-4"
67
+ });
68
+ }
69
+ }
70
+ function getTypeLabel(type) {
71
+ switch(type){
72
+ case 'flow':
73
+ return 'Flow';
74
+ case 'bpmn':
75
+ return 'BPMN';
76
+ case 'case':
77
+ return 'Case Management';
78
+ case 'autopilot':
79
+ return 'Autopilot';
80
+ }
81
+ }
82
+ function getStatusVariant(status) {
83
+ switch(status){
84
+ case 'published':
85
+ return 'default';
86
+ case 'draft':
87
+ return 'secondary';
88
+ case 'archived':
89
+ return 'outline';
90
+ default:
91
+ return 'secondary';
92
+ }
93
+ }
94
+ function RecentProjectCard({ project, onSelect }) {
95
+ return /*#__PURE__*/ jsx(Card, {
96
+ className: "group cursor-pointer transition-all duration-200 hover:border-primary/50 hover:shadow-sm",
97
+ onClick: onSelect,
98
+ children: /*#__PURE__*/ jsx(CardContent, {
99
+ className: "p-4",
100
+ children: /*#__PURE__*/ jsxs(Row, {
101
+ gap: 3,
102
+ align: "start",
103
+ children: [
104
+ /*#__PURE__*/ jsx("div", {
105
+ className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",
106
+ children: getTypeIcon(project.type)
107
+ }),
108
+ /*#__PURE__*/ jsxs(Column, {
109
+ gap: 1,
110
+ flex: 1,
111
+ className: "min-w-0",
112
+ children: [
113
+ /*#__PURE__*/ jsxs(Row, {
114
+ justify: "between",
115
+ align: "center",
116
+ gap: 2,
117
+ children: [
118
+ /*#__PURE__*/ jsx("span", {
119
+ className: "truncate font-medium text-sm",
120
+ children: project.name
121
+ }),
122
+ project.status && /*#__PURE__*/ jsx(Badge, {
123
+ variant: getStatusVariant(project.status),
124
+ className: "shrink-0 text-[10px]",
125
+ children: project.status
126
+ })
127
+ ]
128
+ }),
129
+ /*#__PURE__*/ jsx("span", {
130
+ className: "text-xs text-muted-foreground",
131
+ children: project.lastModified
132
+ })
133
+ ]
134
+ })
135
+ ]
136
+ })
137
+ })
138
+ });
139
+ }
140
+ function SkeletonSection() {
141
+ return /*#__PURE__*/ jsxs(Column, {
142
+ gap: 4,
143
+ children: [
144
+ /*#__PURE__*/ jsx(Skeleton, {
145
+ className: "h-5 w-32"
146
+ }),
147
+ /*#__PURE__*/ jsxs(Column, {
148
+ gap: 3,
149
+ children: [
150
+ /*#__PURE__*/ jsx(Row, {
151
+ gap: 2,
152
+ children: /*#__PURE__*/ jsx(Skeleton, {
153
+ className: "h-4 flex-1 max-w-[280px]"
154
+ })
155
+ }),
156
+ /*#__PURE__*/ jsx(Row, {
157
+ gap: 2,
158
+ children: /*#__PURE__*/ jsx(Skeleton, {
159
+ className: "h-4 flex-1 max-w-[240px]"
160
+ })
161
+ }),
162
+ /*#__PURE__*/ jsx(Row, {
163
+ gap: 2,
164
+ children: /*#__PURE__*/ jsx(Skeleton, {
165
+ className: "h-4 flex-1 max-w-[320px]"
166
+ })
167
+ }),
168
+ /*#__PURE__*/ jsx(Row, {
169
+ gap: 2,
170
+ children: /*#__PURE__*/ jsx(Skeleton, {
171
+ className: "h-4 flex-1 max-w-[200px]"
172
+ })
173
+ }),
174
+ /*#__PURE__*/ jsx(Row, {
175
+ gap: 2,
176
+ children: /*#__PURE__*/ jsx(Skeleton, {
177
+ className: "h-4 flex-1 max-w-[260px]"
178
+ })
179
+ })
180
+ ]
181
+ })
182
+ ]
183
+ });
184
+ }
185
+ function createProjectColumns(onProjectSelect) {
186
+ return [
187
+ {
188
+ accessorKey: 'name',
189
+ header: ({ column })=>/*#__PURE__*/ jsx(DataTableColumnHeader, {
190
+ column: column,
191
+ title: "Name"
192
+ }),
193
+ cell: ({ row })=>/*#__PURE__*/ jsxs(Row, {
194
+ gap: 2,
195
+ align: "center",
196
+ children: [
197
+ /*#__PURE__*/ jsx("div", {
198
+ className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",
199
+ children: getTypeIcon(row.original.type)
200
+ }),
201
+ /*#__PURE__*/ jsx("span", {
202
+ className: "font-medium",
203
+ children: row.original.name
204
+ })
205
+ ]
206
+ })
207
+ },
208
+ {
209
+ accessorKey: 'type',
210
+ header: ({ column })=>/*#__PURE__*/ jsx(DataTableColumnHeader, {
211
+ column: column,
212
+ title: "Type"
213
+ }),
214
+ cell: ({ row })=>/*#__PURE__*/ jsx("span", {
215
+ className: "text-muted-foreground",
216
+ children: getTypeLabel(row.original.type)
217
+ })
218
+ },
219
+ {
220
+ accessorKey: 'status',
221
+ header: ({ column })=>/*#__PURE__*/ jsx(DataTableColumnHeader, {
222
+ column: column,
223
+ title: "Status"
224
+ }),
225
+ cell: ({ row })=>{
226
+ const status = row.original.status;
227
+ return status ? /*#__PURE__*/ jsx(Badge, {
228
+ variant: getStatusVariant(status),
229
+ className: "capitalize",
230
+ children: status
231
+ }) : null;
232
+ }
233
+ },
234
+ {
235
+ accessorKey: 'lastModified',
236
+ header: ({ column })=>/*#__PURE__*/ jsx(DataTableColumnHeader, {
237
+ column: column,
238
+ title: "Last Modified"
239
+ }),
240
+ cell: ({ row })=>/*#__PURE__*/ jsx("span", {
241
+ className: "text-muted-foreground",
242
+ children: row.original.lastModified
243
+ })
244
+ },
245
+ {
246
+ id: 'actions',
247
+ cell: ({ row })=>/*#__PURE__*/ jsxs(DropdownMenu, {
248
+ children: [
249
+ /*#__PURE__*/ jsx(DropdownMenuTrigger, {
250
+ asChild: true,
251
+ children: /*#__PURE__*/ jsx(Button, {
252
+ variant: "ghost",
253
+ size: "icon",
254
+ className: "h-8 w-8",
255
+ children: /*#__PURE__*/ jsx(MoreHorizontal, {
256
+ className: "h-4 w-4"
257
+ })
258
+ })
259
+ }),
260
+ /*#__PURE__*/ jsxs(DropdownMenuContent, {
261
+ align: "end",
262
+ children: [
263
+ /*#__PURE__*/ jsx(DropdownMenuItem, {
264
+ onClick: ()=>onProjectSelect?.(row.original.id),
265
+ children: "Open"
266
+ }),
267
+ /*#__PURE__*/ jsx(DropdownMenuItem, {
268
+ children: "Duplicate"
269
+ }),
270
+ /*#__PURE__*/ jsx(DropdownMenuItem, {
271
+ children: "Archive"
272
+ })
273
+ ]
274
+ })
275
+ ]
276
+ })
277
+ }
278
+ ];
279
+ }
280
+ function FlowStartExample({ className, title = 'BUILD YOUR FIRST AGENTIC PROCESS', subtitle = 'What would you like to start with?', processOptions = [], recentProjects = [], showSkeleton = false, defaultViewMode = 'cards', onOptionSelect, onProjectSelect }) {
281
+ const [selectedOption, setSelectedOption] = useState(null);
282
+ const [viewMode, setViewMode] = useState(defaultViewMode);
283
+ const handleOptionSelect = (optionId)=>{
284
+ setSelectedOption(optionId);
285
+ onOptionSelect?.(optionId);
286
+ };
287
+ const columns = useMemo(()=>createProjectColumns(onProjectSelect), [
288
+ onProjectSelect
289
+ ]);
290
+ return /*#__PURE__*/ jsxs(Column, {
291
+ minH: "screen",
292
+ className: className,
293
+ children: [
294
+ /*#__PURE__*/ jsxs("div", {
295
+ className: "bg-muted/40",
296
+ children: [
297
+ /*#__PURE__*/ jsx("header", {
298
+ className: "border-b border-border/50 ",
299
+ children: /*#__PURE__*/ jsxs(Row, {
300
+ justify: "between",
301
+ align: "center",
302
+ className: "h-14 px-6",
303
+ children: [
304
+ /*#__PURE__*/ jsx("span", {
305
+ className: "font-semibold text-lg",
306
+ children: "UiPath Maestro"
307
+ }),
308
+ /*#__PURE__*/ jsx(Skeleton, {
309
+ className: "h-8 w-8 rounded-full"
310
+ })
311
+ ]
312
+ })
313
+ }),
314
+ /*#__PURE__*/ jsxs(Column, {
315
+ className: "px-8 py-16 md:px-16",
316
+ children: [
317
+ /*#__PURE__*/ jsxs(Column, {
318
+ gap: 3,
319
+ align: "center",
320
+ className: "mb-12 text-center",
321
+ children: [
322
+ /*#__PURE__*/ jsx("h1", {
323
+ className: "text-3xl md:text-4xl font-bold tracking-tight uppercase",
324
+ children: title
325
+ }),
326
+ /*#__PURE__*/ jsx("p", {
327
+ className: "text-muted-foreground text-lg",
328
+ children: subtitle
329
+ })
330
+ ]
331
+ }),
332
+ /*#__PURE__*/ jsx(Grid, {
333
+ cols: 1,
334
+ gap: 4,
335
+ className: "sm:grid-cols-2 lg:grid-cols-4 max-w-6xl mx-auto w-full",
336
+ children: processOptions.map((option)=>/*#__PURE__*/ jsx(ProcessOptionCard, {
337
+ option: option,
338
+ isSelected: selectedOption === option.id,
339
+ onSelect: ()=>handleOptionSelect(option.id)
340
+ }, option.id))
341
+ }),
342
+ showSkeleton && /*#__PURE__*/ jsx(Column, {
343
+ gap: 12,
344
+ className: "max-w-6xl mx-auto w-full mt-16",
345
+ children: /*#__PURE__*/ jsxs(Grid, {
346
+ cols: 1,
347
+ gap: 8,
348
+ className: "lg:grid-cols-3",
349
+ children: [
350
+ /*#__PURE__*/ jsx(SkeletonSection, {}),
351
+ /*#__PURE__*/ jsx(SkeletonSection, {}),
352
+ /*#__PURE__*/ jsx(SkeletonSection, {})
353
+ ]
354
+ })
355
+ })
356
+ ]
357
+ })
358
+ ]
359
+ }),
360
+ recentProjects.length > 0 && !showSkeleton && /*#__PURE__*/ jsx(Column, {
361
+ flex: 1,
362
+ className: "px-8 py-12 md:px-16",
363
+ children: /*#__PURE__*/ jsxs(Column, {
364
+ gap: 6,
365
+ className: "max-w-6xl mx-auto w-full",
366
+ children: [
367
+ /*#__PURE__*/ jsxs(Row, {
368
+ justify: "between",
369
+ align: "center",
370
+ children: [
371
+ /*#__PURE__*/ jsx("h2", {
372
+ className: "text-xl font-semibold",
373
+ children: "Recent Projects"
374
+ }),
375
+ /*#__PURE__*/ jsxs(ButtonGroup, {
376
+ children: [
377
+ /*#__PURE__*/ jsx(Button, {
378
+ variant: 'cards' === viewMode ? 'secondary' : 'outline',
379
+ size: "icon",
380
+ onClick: ()=>setViewMode('cards'),
381
+ "aria-label": "Card view",
382
+ children: /*#__PURE__*/ jsx(LayoutGrid, {
383
+ className: "h-4 w-4"
384
+ })
385
+ }),
386
+ /*#__PURE__*/ jsx(Button, {
387
+ variant: 'table' === viewMode ? 'secondary' : 'outline',
388
+ size: "icon",
389
+ onClick: ()=>setViewMode('table'),
390
+ "aria-label": "Table view",
391
+ children: /*#__PURE__*/ jsx(List, {
392
+ className: "h-4 w-4"
393
+ })
394
+ })
395
+ ]
396
+ })
397
+ ]
398
+ }),
399
+ 'cards' === viewMode && /*#__PURE__*/ jsx(Grid, {
400
+ cols: 1,
401
+ gap: 4,
402
+ className: "sm:grid-cols-2 lg:grid-cols-4",
403
+ children: recentProjects.map((project)=>/*#__PURE__*/ jsx(RecentProjectCard, {
404
+ project: project,
405
+ onSelect: ()=>onProjectSelect?.(project.id)
406
+ }, project.id))
407
+ }),
408
+ 'table' === viewMode && /*#__PURE__*/ jsx(DataTable, {
409
+ columns: columns,
410
+ data: recentProjects,
411
+ searchKey: "name",
412
+ searchPlaceholder: "Search projects...",
413
+ showColumnToggle: false,
414
+ showPagination: recentProjects.length > 10,
415
+ compact: true
416
+ })
417
+ ]
418
+ })
419
+ }),
420
+ showSkeleton && /*#__PURE__*/ jsx("div", {
421
+ className: "bg-background border-t flex-1",
422
+ children: /*#__PURE__*/ jsx(Row, {
423
+ justify: "center",
424
+ className: "px-8 py-8",
425
+ children: /*#__PURE__*/ jsx(Skeleton, {
426
+ className: "h-24 w-full max-w-4xl rounded-lg"
427
+ })
428
+ })
429
+ })
430
+ ]
431
+ });
432
+ }
433
+ export { FlowStartExample };