@elevasis/ui 2.17.2 → 2.19.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 (63) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.js +5 -5
  3. package/dist/charts/index.js +3 -3
  4. package/dist/chunk-3JCMO7SD.js +14 -0
  5. package/dist/{chunk-TP5NMF6K.js → chunk-46Z2VHY3.js} +4 -4
  6. package/dist/{chunk-FNWWVX5N.js → chunk-5SCVXZPM.js} +358 -188
  7. package/dist/{chunk-TTP62HWW.js → chunk-BHR7IV72.js} +10 -15
  8. package/dist/{chunk-MJ6YV2B5.js → chunk-CTTY6FUT.js} +2 -2
  9. package/dist/{chunk-P3TFNFZS.js → chunk-EUWBY43Z.js} +2 -2
  10. package/dist/{chunk-MDO4UCEJ.js → chunk-IBOX2M24.js} +47 -82
  11. package/dist/{chunk-HH3RNG2O.js → chunk-JEQM67SO.js} +307 -173
  12. package/dist/{chunk-2TDZBYXI.js → chunk-LR5CRY5A.js} +1 -1
  13. package/dist/{chunk-JU6UB4YA.js → chunk-LVCJ2H2T.js} +4 -4
  14. package/dist/{chunk-GRGRBWIO.js → chunk-M7W7CGPL.js} +1 -1
  15. package/dist/{chunk-34NQLV2W.js → chunk-MJAKU2WA.js} +3 -3
  16. package/dist/{chunk-OCCZRPER.js → chunk-Q4QJOSVS.js} +1 -1
  17. package/dist/{chunk-R73EHHPN.js → chunk-Q5HC6ENG.js} +18 -2
  18. package/dist/{chunk-VDM6DQES.js → chunk-R7OJCNL3.js} +1 -1
  19. package/dist/{chunk-6RWMRQN5.js → chunk-TIIPYB2Z.js} +1 -1
  20. package/dist/{chunk-ABUDMATM.js → chunk-TKEKYPZA.js} +6 -6
  21. package/dist/{chunk-R7GKX4HW.js → chunk-UU6PJ4EJ.js} +192 -82
  22. package/dist/{chunk-7L42RRHZ.js → chunk-Y7TDUZEH.js} +221 -514
  23. package/dist/{chunk-7GCWOUFT.js → chunk-YVAXWM3W.js} +73 -121
  24. package/dist/components/index.d.ts +219 -2810
  25. package/dist/components/index.js +41 -27
  26. package/dist/features/crm/index.d.ts +54 -53
  27. package/dist/features/crm/index.js +11 -11
  28. package/dist/features/dashboard/index.js +12 -12
  29. package/dist/features/delivery/index.d.ts +2642 -2605
  30. package/dist/features/delivery/index.js +11 -11
  31. package/dist/features/lead-gen/index.d.ts +152 -16
  32. package/dist/features/lead-gen/index.js +11 -22
  33. package/dist/features/monitoring/index.js +13 -13
  34. package/dist/features/monitoring/requests/index.d.ts +38 -27
  35. package/dist/features/monitoring/requests/index.js +212 -106
  36. package/dist/features/operations/index.d.ts +9 -26
  37. package/dist/features/operations/index.js +15 -15
  38. package/dist/features/settings/index.d.ts +36 -37
  39. package/dist/features/settings/index.js +12 -12
  40. package/dist/hooks/delivery/index.d.ts +2712 -2699
  41. package/dist/hooks/delivery/index.js +2 -2
  42. package/dist/hooks/index.d.ts +1997 -4627
  43. package/dist/hooks/index.js +10 -10
  44. package/dist/hooks/published.d.ts +1997 -4627
  45. package/dist/hooks/published.js +10 -10
  46. package/dist/index.d.ts +1124 -3673
  47. package/dist/index.js +11 -11
  48. package/dist/layout/index.d.ts +14 -2
  49. package/dist/layout/index.js +1 -1
  50. package/dist/provider/index.d.ts +320 -249
  51. package/dist/provider/index.js +8 -8
  52. package/dist/provider/published.d.ts +320 -249
  53. package/dist/provider/published.js +5 -5
  54. package/dist/sse/index.d.ts +1 -6
  55. package/dist/theme/index.js +2 -2
  56. package/dist/types/index.d.ts +1608 -2487
  57. package/dist/utils/index.d.ts +32 -1
  58. package/dist/utils/index.js +1 -1
  59. package/dist/zustand/index.d.ts +4 -8
  60. package/dist/zustand/index.js +2 -2
  61. package/package.json +4 -4
  62. package/dist/chunk-ADSSLKKP.js +0 -10
  63. /package/dist/{chunk-GCBWGGI6.js → chunk-OD7GWIZS.js} +0 -0
@@ -1,25 +1,25 @@
1
- import '../../../chunk-TUMSNGTX.js';
1
+ import { TableSelectionToolbar } from '../../../chunk-TUMSNGTX.js';
2
2
  import { FilterBar } from '../../../chunk-PDHTXPSF.js';
3
- import { ConfirmationModal } from '../../../chunk-GBMNCNHX.js';
3
+ import { ConfirmationModal, CustomModal } from '../../../chunk-GBMNCNHX.js';
4
4
  import '../../../chunk-7M2VOCYN.js';
5
- import { usePaginationState, useRequestsList, useUpdateRequestStatus, useRequest } from '../../../chunk-R7GKX4HW.js';
5
+ import { usePaginationState, useRequestsList, useUpdateRequestStatus, useDeleteRequest, useTableSelection, useRequest } from '../../../chunk-UU6PJ4EJ.js';
6
6
  import '../../../chunk-BRXELOHC.js';
7
7
  import '../../../chunk-QSTH6T77.js';
8
- import '../../../chunk-GRGRBWIO.js';
8
+ import '../../../chunk-M7W7CGPL.js';
9
9
  import '../../../chunk-22UVE3RA.js';
10
10
  import '../../../chunk-3ZMAGTWF.js';
11
- import '../../../chunk-OCCZRPER.js';
12
- import '../../../chunk-34NQLV2W.js';
13
- import '../../../chunk-R73EHHPN.js';
11
+ import '../../../chunk-Q4QJOSVS.js';
12
+ import '../../../chunk-MJAKU2WA.js';
13
+ import '../../../chunk-Q5HC6ENG.js';
14
14
  import '../../../chunk-WLOQ4IBG.js';
15
- import '../../../chunk-2TDZBYXI.js';
16
- import '../../../chunk-P3TFNFZS.js';
15
+ import '../../../chunk-LR5CRY5A.js';
16
+ import '../../../chunk-EUWBY43Z.js';
17
17
  import '../../../chunk-RX4UWZZR.js';
18
- import { PageTitleCaption, ContextViewer, JsonViewer } from '../../../chunk-TTP62HWW.js';
18
+ import { PageTitleCaption, CardHeader, ContextViewer, JsonViewer } from '../../../chunk-BHR7IV72.js';
19
19
  import '../../../chunk-SZHARWKU.js';
20
20
  import '../../../chunk-3KMDHCAR.js';
21
21
  import '../../../chunk-NYBEU5TE.js';
22
- import '../../../chunk-VDM6DQES.js';
22
+ import '../../../chunk-R7OJCNL3.js';
23
23
  import '../../../chunk-2IFYDILW.js';
24
24
  import '../../../chunk-Q7DJKLEN.js';
25
25
  import '../../../chunk-7YQKVWSD.js';
@@ -28,7 +28,7 @@ import '../../../chunk-QJ2KCHKX.js';
28
28
  import '../../../chunk-HQ7M6PBW.js';
29
29
  import '../../../chunk-DT3QYZVU.js';
30
30
  import '../../../chunk-RNP5R5I3.js';
31
- import { formatTimeAgo } from '../../../chunk-GCBWGGI6.js';
31
+ import { formatTimeAgo } from '../../../chunk-OD7GWIZS.js';
32
32
  import '../../../chunk-KRWALB24.js';
33
33
  import '../../../chunk-SLH2QLKV.js';
34
34
  import '../../../chunk-DK2HVHCY.js';
@@ -38,9 +38,9 @@ import '../../../chunk-IRW7JMQ4.js';
38
38
  import '../../../chunk-BRJ3QZ4E.js';
39
39
  import { useState } from 'react';
40
40
  import { useNavigate } from '@tanstack/react-router';
41
- import { Badge, Menu, Button, Stack, Paper, Select, Center, Loader, Text, Table, Group, Pagination, Skeleton, SimpleGrid, Title, SegmentedControl } from '@mantine/core';
41
+ import { Badge, Menu, Button, Stack, Paper, Select, Center, Loader, Text, Table, Checkbox, Group, Pagination, Title, Skeleton, SimpleGrid, CopyButton, Tooltip, ActionIcon, SegmentedControl } from '@mantine/core';
42
+ import { IconChevronDown, IconAlertTriangle, IconCheck, IconCopy, IconClipboardText, IconFileDescription, IconAlertCircle, IconInfoCircle, IconArrowLeft } from '@tabler/icons-react';
42
43
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
43
- import { IconChevronDown, IconAlertTriangle, IconArrowLeft } from '@tabler/icons-react';
44
44
  import { notifications } from '@mantine/notifications';
45
45
 
46
46
  // src/features/monitoring/requests/manifest.ts
@@ -165,6 +165,7 @@ function RequestsListPage({
165
165
  const [severityFilter, setSeverityFilter] = useState(severityProp);
166
166
  const [statusFilter, setStatusFilter] = useState(statusProp ?? "open");
167
167
  const [sourceFilter, setSourceFilter] = useState(sourceProp);
168
+ const [showBatchDelete, setShowBatchDelete] = useState(false);
168
169
  const { page, setPage, offset, totalPages } = usePaginationState(PAGE_SIZE, [
169
170
  typeFilter,
170
171
  severityFilter,
@@ -180,6 +181,8 @@ function RequestsListPage({
180
181
  offset
181
182
  });
182
183
  const { mutate: updateStatus } = useUpdateRequestStatus();
184
+ const deleteRequest = useDeleteRequest();
185
+ const selection = useTableSelection(requests);
183
186
  function pushSearchParam(patch) {
184
187
  navigate({
185
188
  // @ts-expect-error — search type is narrowed by each route wrapper
@@ -206,6 +209,11 @@ function RequestsListPage({
206
209
  setSourceFilter(next);
207
210
  pushSearchParam({ source: next });
208
211
  }
212
+ const handleDeleteSelected = async () => {
213
+ await Promise.all([...selection.selectedIds].map((id) => deleteRequest.mutateAsync(id)));
214
+ setShowBatchDelete(false);
215
+ selection.clear();
216
+ };
209
217
  const estimatedTotal = requests.length < PAGE_SIZE ? offset + requests.length : offset + PAGE_SIZE + 1;
210
218
  const pageCount = totalPages(estimatedTotal);
211
219
  return /* @__PURE__ */ jsxs(Stack, { children: [
@@ -217,79 +225,100 @@ function RequestsListPage({
217
225
  }
218
226
  ),
219
227
  /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsxs(Stack, { gap: 0, children: [
220
- /* @__PURE__ */ jsxs(FilterBar, { children: [
221
- /* @__PURE__ */ jsx(
222
- Select,
223
- {
224
- placeholder: "All types",
225
- value: typeFilter ?? null,
226
- onChange: handleTypeChange,
227
- data: [
228
- { value: "bug", label: "Bug" },
229
- { value: "feature", label: "Feature" },
230
- { value: "question", label: "Question" },
231
- { value: "other", label: "Other" }
232
- ],
233
- clearable: true,
234
- size: "sm",
235
- w: 150
236
- }
237
- ),
238
- /* @__PURE__ */ jsx(
239
- Select,
240
- {
241
- placeholder: "All severities",
242
- value: severityFilter ?? null,
243
- onChange: handleSeverityChange,
244
- data: [
245
- { value: "critical", label: "Critical" },
246
- { value: "warning", label: "Warning" },
247
- { value: "info", label: "Info" }
248
- ],
249
- clearable: true,
250
- size: "sm",
251
- w: 160
252
- }
253
- ),
254
- /* @__PURE__ */ jsx(
255
- Select,
256
- {
257
- placeholder: "All statuses",
258
- value: statusFilter ?? null,
259
- onChange: handleStatusChange,
260
- data: [
261
- { value: "open", label: "Open" },
262
- { value: "investigating", label: "Investigating" },
263
- { value: "resolved", label: "Resolved" },
264
- { value: "wont_fix", label: "Won't Fix" }
265
- ],
266
- clearable: true,
267
- size: "sm",
268
- w: 170
269
- }
270
- ),
271
- /* @__PURE__ */ jsx(
272
- Select,
273
- {
274
- placeholder: "All sources",
275
- value: sourceFilter ?? null,
276
- onChange: handleSourceChange,
277
- data: [
278
- { value: "agent", label: "Agent" },
279
- { value: "cli", label: "CLI" },
280
- { value: "api", label: "API" },
281
- { value: "webhook", label: "Webhook" },
282
- { value: "user", label: "User" },
283
- { value: "external", label: "External" }
284
- ],
285
- clearable: true,
286
- size: "sm",
287
- w: 150
288
- }
289
- )
290
- ] }),
228
+ /* @__PURE__ */ jsxs(
229
+ FilterBar,
230
+ {
231
+ actions: /* @__PURE__ */ jsx(
232
+ TableSelectionToolbar,
233
+ {
234
+ selectedCount: selection.selectedCount,
235
+ onDelete: () => setShowBatchDelete(true),
236
+ isDeleting: deleteRequest.isPending
237
+ }
238
+ ),
239
+ children: [
240
+ /* @__PURE__ */ jsx(
241
+ Select,
242
+ {
243
+ placeholder: "All types",
244
+ value: typeFilter ?? null,
245
+ onChange: handleTypeChange,
246
+ data: [
247
+ { value: "bug", label: "Bug" },
248
+ { value: "feature", label: "Feature" },
249
+ { value: "question", label: "Question" },
250
+ { value: "other", label: "Other" }
251
+ ],
252
+ clearable: true,
253
+ size: "sm",
254
+ w: 150
255
+ }
256
+ ),
257
+ /* @__PURE__ */ jsx(
258
+ Select,
259
+ {
260
+ placeholder: "All severities",
261
+ value: severityFilter ?? null,
262
+ onChange: handleSeverityChange,
263
+ data: [
264
+ { value: "critical", label: "Critical" },
265
+ { value: "warning", label: "Warning" },
266
+ { value: "info", label: "Info" }
267
+ ],
268
+ clearable: true,
269
+ size: "sm",
270
+ w: 160
271
+ }
272
+ ),
273
+ /* @__PURE__ */ jsx(
274
+ Select,
275
+ {
276
+ placeholder: "All statuses",
277
+ value: statusFilter ?? null,
278
+ onChange: handleStatusChange,
279
+ data: [
280
+ { value: "open", label: "Open" },
281
+ { value: "investigating", label: "Investigating" },
282
+ { value: "resolved", label: "Resolved" },
283
+ { value: "wont_fix", label: "Won't Fix" }
284
+ ],
285
+ clearable: true,
286
+ size: "sm",
287
+ w: 170
288
+ }
289
+ ),
290
+ /* @__PURE__ */ jsx(
291
+ Select,
292
+ {
293
+ placeholder: "All sources",
294
+ value: sourceFilter ?? null,
295
+ onChange: handleSourceChange,
296
+ data: [
297
+ { value: "agent", label: "Agent" },
298
+ { value: "cli", label: "CLI" },
299
+ { value: "api", label: "API" },
300
+ { value: "webhook", label: "Webhook" },
301
+ { value: "user", label: "User" },
302
+ { value: "external", label: "External" }
303
+ ],
304
+ clearable: true,
305
+ size: "sm",
306
+ w: 150
307
+ }
308
+ )
309
+ ]
310
+ }
311
+ ),
291
312
  isLoading ? /* @__PURE__ */ jsx(Center, { py: "xl", children: /* @__PURE__ */ jsx(Loader, { size: "md" }) }) : requests.length === 0 ? /* @__PURE__ */ jsx(Center, { py: "xl", children: /* @__PURE__ */ jsx(Text, { c: "dimmed", children: "No requests yet" }) }) : /* @__PURE__ */ jsxs(Table, { highlightOnHover: true, style: { cursor: "pointer" }, children: [
292
313
  /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
314
+ /* @__PURE__ */ jsx(Table.Th, { w: 40, children: /* @__PURE__ */ jsx(
315
+ Checkbox,
316
+ {
317
+ checked: selection.isPageAllSelected,
318
+ indeterminate: selection.isPagePartiallySelected,
319
+ onChange: selection.togglePage
320
+ }
321
+ ) }),
293
322
  /* @__PURE__ */ jsx(Table.Th, { children: "Type" }),
294
323
  /* @__PURE__ */ jsx(Table.Th, { children: "Severity" }),
295
324
  /* @__PURE__ */ jsx(Table.Th, { children: "Title" }),
@@ -299,6 +328,13 @@ function RequestsListPage({
299
328
  /* @__PURE__ */ jsx(Table.Th, { children: "Actions" })
300
329
  ] }) }),
301
330
  /* @__PURE__ */ jsx(Table.Tbody, { children: requests.map((request) => /* @__PURE__ */ jsxs(Table.Tr, { onClick: () => onNavigateToRequest?.(request.id), children: [
331
+ /* @__PURE__ */ jsx(Table.Td, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
332
+ Checkbox,
333
+ {
334
+ checked: selection.isSelected(request.id),
335
+ onChange: () => selection.toggle(request.id)
336
+ }
337
+ ) }),
302
338
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(RequestTypeBadge, { type: request.type }) }),
303
339
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(SeverityBadge, { severity: request.severity }) }),
304
340
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", lineClamp: 1, children: request.title }) }),
@@ -315,7 +351,38 @@ function RequestsListPage({
315
351
  ] }, request.id)) })
316
352
  ] }),
317
353
  pageCount > 1 && /* @__PURE__ */ jsx(Group, { justify: "flex-start", px: "md", pb: "md", children: /* @__PURE__ */ jsx(Pagination, { size: "sm", total: pageCount, value: page, onChange: setPage, boundaries: 1 }) })
318
- ] }) })
354
+ ] }) }),
355
+ /* @__PURE__ */ jsx(
356
+ CustomModal,
357
+ {
358
+ opened: showBatchDelete,
359
+ onClose: () => !deleteRequest.isPending && setShowBatchDelete(false),
360
+ size: "sm",
361
+ loading: deleteRequest.isPending,
362
+ children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
363
+ /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
364
+ /* @__PURE__ */ jsx(IconAlertTriangle, { size: 24, color: "var(--color-error)" }),
365
+ /* @__PURE__ */ jsxs(Title, { order: 4, children: [
366
+ "Delete ",
367
+ selection.selectedCount,
368
+ " Requests"
369
+ ] })
370
+ ] }),
371
+ /* @__PURE__ */ jsxs(Text, { size: "sm", children: [
372
+ "Are you sure you want to delete",
373
+ " ",
374
+ /* @__PURE__ */ jsx(Text, { span: true, fw: 600, children: selection.selectedCount }),
375
+ " ",
376
+ "selected requests?"
377
+ ] }),
378
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "This action cannot be undone." }),
379
+ /* @__PURE__ */ jsxs(Group, { justify: "flex-end", mt: "md", children: [
380
+ /* @__PURE__ */ jsx(Button, { variant: "light", onClick: () => setShowBatchDelete(false), disabled: deleteRequest.isPending, children: "Cancel" }),
381
+ /* @__PURE__ */ jsx(Button, { color: "red", loading: deleteRequest.isPending, onClick: () => void handleDeleteSelected(), children: "Delete" })
382
+ ] })
383
+ ] })
384
+ }
385
+ )
319
386
  ] });
320
387
  }
321
388
  function formatDateTime(isoString) {
@@ -331,24 +398,28 @@ function MetaField({ label, children }) {
331
398
  /* @__PURE__ */ jsx("div", { children })
332
399
  ] });
333
400
  }
334
- function JsonSection({ title, data, emptyLabel }) {
401
+ function JsonSection({ title, icon, data, emptyLabel }) {
335
402
  const [view, setView] = useState("formatted");
336
403
  return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
337
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "center", children: [
338
- /* @__PURE__ */ jsx(Title, { order: 3, children: title }),
339
- data !== null && data !== void 0 && /* @__PURE__ */ jsx(
340
- SegmentedControl,
341
- {
342
- value: view,
343
- onChange: (v) => setView(v),
344
- size: "xs",
345
- data: [
346
- { label: "Formatted", value: "formatted" },
347
- { label: "JSON", value: "json" }
348
- ]
349
- }
350
- )
351
- ] }),
404
+ /* @__PURE__ */ jsx(
405
+ CardHeader,
406
+ {
407
+ icon,
408
+ title,
409
+ rightSection: data !== null && data !== void 0 ? /* @__PURE__ */ jsx(
410
+ SegmentedControl,
411
+ {
412
+ value: view,
413
+ onChange: (v) => setView(v),
414
+ size: "xs",
415
+ data: [
416
+ { label: "Formatted", value: "formatted" },
417
+ { label: "JSON", value: "json" }
418
+ ]
419
+ }
420
+ ) : null
421
+ }
422
+ ),
352
423
  data === null || data === void 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", fs: "italic", children: emptyLabel }) : view === "formatted" ? /* @__PURE__ */ jsx(ContextViewer, { data }) : /* @__PURE__ */ jsx(JsonViewer, { data })
353
424
  ] }) });
354
425
  }
@@ -417,7 +488,26 @@ function RequestsDetailPage({ requestId, onNavigateBack }) {
417
488
  }
418
489
  ),
419
490
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
420
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Details" }),
491
+ /* @__PURE__ */ jsx(
492
+ CardHeader,
493
+ {
494
+ icon: /* @__PURE__ */ jsx(IconClipboardText, { size: 18 }),
495
+ title: "Details",
496
+ rightSection: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
497
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", c: "var(--color-text-subtle)", children: request.id }),
498
+ /* @__PURE__ */ jsx(CopyButton, { value: `/requests review ${request.id}`, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied!" : "Copy ID", withArrow: true, children: /* @__PURE__ */ jsx(
499
+ ActionIcon,
500
+ {
501
+ onClick: copy,
502
+ variant: "subtle",
503
+ size: "xs",
504
+ color: copied ? "green" : "var(--color-text-subtle)",
505
+ children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
506
+ }
507
+ ) }) })
508
+ ] })
509
+ }
510
+ ),
421
511
  /* @__PURE__ */ jsxs(SimpleGrid, { cols: 2, spacing: "md", children: [
422
512
  /* @__PURE__ */ jsxs(MetaField, { label: "Status", children: [
423
513
  /* @__PURE__ */ jsx(StatusBadge, { status: currentStatus }),
@@ -433,11 +523,27 @@ function RequestsDetailPage({ requestId, onNavigateBack }) {
433
523
  ] })
434
524
  ] }) }),
435
525
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
436
- /* @__PURE__ */ jsx(Title, { order: 3, children: "Description" }),
526
+ /* @__PURE__ */ jsx(CardHeader, { icon: /* @__PURE__ */ jsx(IconFileDescription, { size: 18 }), title: "Description" }),
437
527
  /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap" }, children: request.description })
438
528
  ] }) }),
439
- /* @__PURE__ */ jsx(JsonSection, { title: "Evidence", data: request.evidence, emptyLabel: "No evidence recorded." }),
440
- /* @__PURE__ */ jsx(JsonSection, { title: "Context", data: request.context, emptyLabel: "No context recorded." })
529
+ /* @__PURE__ */ jsx(
530
+ JsonSection,
531
+ {
532
+ title: "Evidence",
533
+ icon: /* @__PURE__ */ jsx(IconAlertCircle, { size: 18 }),
534
+ data: request.evidence,
535
+ emptyLabel: "No evidence recorded."
536
+ }
537
+ ),
538
+ /* @__PURE__ */ jsx(
539
+ JsonSection,
540
+ {
541
+ title: "Context",
542
+ icon: /* @__PURE__ */ jsx(IconInfoCircle, { size: 18 }),
543
+ data: request.context,
544
+ emptyLabel: "No context recorded."
545
+ }
546
+ )
441
547
  ] });
442
548
  }
443
549
 
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode, ComponentType } from 'react';
3
+ import { EventSourceMessage } from '@microsoft/fetch-event-source';
3
4
 
4
5
  /**
5
6
  * Shared form field types for dynamic form generation
@@ -328,7 +329,7 @@ type ResourceStatus = 'dev' | 'prod';
328
329
  * All resource types in the platform
329
330
  * Used as the discriminator field in ResourceDefinition
330
331
  */
331
- type ResourceType$1 = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
332
+ type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
332
333
  /**
333
334
  * Base interface for ALL platform resources
334
335
  * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
@@ -343,7 +344,7 @@ interface ResourceDefinition {
343
344
  /** Version for change tracking and evolution */
344
345
  version: string;
345
346
  /** Resource type discriminator */
346
- type: ResourceType$1;
347
+ type: ResourceType;
347
348
  /** Environment/deployment status */
348
349
  status: ResourceStatus;
349
350
  /** Domain tags for filtering and organization */
@@ -385,9 +386,9 @@ type ResourceDomain = (typeof DOMAINS)[keyof typeof DOMAINS];
385
386
 
386
387
  interface ResourcesPageProps {
387
388
  /** Initial filter type from the URL search param (caller-managed) */
388
- initialFilter?: ResourceType$1;
389
+ initialFilter?: ResourceType;
389
390
  /** Called when the user changes the tab filter — caller should update its URL */
390
- onTypeChange: (type: ResourceType$1 | undefined) => void;
391
+ onTypeChange: (type: ResourceType | undefined) => void;
391
392
  /** Current time range value — caller passes from its own store */
392
393
  timeRange: TimeRange;
393
394
  /** Called when the user clicks a resource row — caller handles navigation */
@@ -461,14 +462,14 @@ declare function ResourcesSidebar({ timeRange }: ResourcesSidebarProps): react_j
461
462
 
462
463
  interface ResourceDetailPageRenderExecutionPanelArgs {
463
464
  resourceId: string;
464
- resourceType: ResourceType$1;
465
+ resourceType: ResourceType;
465
466
  resourceName: string;
466
467
  resourceDefinition: AIResourceDefinition;
467
468
  onConnectionStatus: (connected: boolean, count: number) => void;
468
469
  }
469
470
  interface ResourceDetailPageProps {
470
471
  /** Resource type (workflow, agent, etc.) */
471
- type: ResourceType$1;
472
+ type: ResourceType;
472
473
  /** Resource identifier */
473
474
  resourceId: string;
474
475
  /** Current time range value — caller passes from its own store */
@@ -488,31 +489,12 @@ interface ResourceDetailPageProps {
488
489
  }
489
490
  declare function ResourceDetailPage({ type, resourceId, timeRange, renderExecutionPanel, onNavigateToResources, onNavigateToSessions, onNavigateBack }: ResourceDetailPageProps): react_jsx_runtime.JSX.Element;
490
491
 
491
- /**
492
- * Resource Registry type definitions
493
- */
494
-
495
-
496
-
497
- /**
498
- * All resource types in the platform
499
- * Used as the discriminator field in ResourceDefinition
500
- */
501
- type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human'
502
-
503
492
  interface ExecuteAsyncResult {
504
493
  executionId: string;
505
494
  status: string;
506
495
  resourceId: string;
507
496
  }
508
497
 
509
- interface EventSourceMessage {
510
- id: string;
511
- event: string;
512
- data: string;
513
- retry?: number;
514
- }
515
-
516
498
  interface FetchEventSourceWithTokenRefreshOptions {
517
499
  url: string;
518
500
  getToken: () => Promise<string | undefined>;
@@ -544,6 +526,7 @@ interface UseExecutionPanelStateOptions {
544
526
  */
545
527
  apiUrl: string;
546
528
  limit?: number;
529
+ offset?: number;
547
530
  onConnectionStatus?: (connected: boolean, runningCount: number) => void;
548
531
  selectedId?: string | null;
549
532
  onSelectedIdChange?: (id: string | null) => void;
@@ -656,7 +639,7 @@ declare function CommandViewSidebarContent({ timeRange }: CommandViewSidebarCont
656
639
  type ExecutionSelectionControlProps$2 = Pick<UseExecutionPanelStateOptions, 'selectedId' | 'onSelectedIdChange'>;
657
640
  interface ExecutionPanelProps extends ExecutionSelectionControlProps$2 {
658
641
  resourceId: string;
659
- resourceType: ResourceType$1;
642
+ resourceType: ResourceType;
660
643
  resourceName?: string;
661
644
  resourceDefinition: AIResourceDefinition;
662
645
  sseManager: SSEConnectionManagerLike;
@@ -1,36 +1,36 @@
1
- export { AgentExecutionPanel, AgentSessionGroup, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandViewPage, CommandViewSidebarContent, ExecuteWorkflowModal, ExecutionPanel, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationGraphPage, ResourceDetailPage, ResourceExecuteDialog, ResourceExecuteForm, ResourcesPage, ResourcesSidebar, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionsPage, SessionsSidebar, WorkflowExecutionPanel, operationsManifest } from '../../chunk-HH3RNG2O.js';
1
+ export { AgentExecutionPanel, AgentSessionGroup, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandViewPage, CommandViewSidebarContent, ExecuteWorkflowModal, ExecutionPanel, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationGraphPage, ResourceDetailPage, ResourceExecuteDialog, ResourceExecuteForm, ResourcesPage, ResourcesSidebar, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionsPage, SessionsSidebar, WorkflowExecutionPanel, operationsManifest } from '../../chunk-JEQM67SO.js';
2
2
  import '../../chunk-ROSMICXG.js';
3
- import '../../chunk-ADSSLKKP.js';
3
+ import '../../chunk-3JCMO7SD.js';
4
4
  import '../../chunk-ZTWA5H77.js';
5
- export { OperationsOverview } from '../../chunk-ABUDMATM.js';
5
+ export { OperationsOverview } from '../../chunk-TKEKYPZA.js';
6
6
  import '../../chunk-442LZPIR.js';
7
- import '../../chunk-JU6UB4YA.js';
7
+ import '../../chunk-LVCJ2H2T.js';
8
8
  import '../../chunk-LGKLC5MG.js';
9
- import '../../chunk-MJ6YV2B5.js';
9
+ import '../../chunk-CTTY6FUT.js';
10
10
  import '../../chunk-M25JL54Z.js';
11
11
  import '../../chunk-BZZCNLT6.js';
12
12
  import '../../chunk-IIMU5YAJ.js';
13
13
  import '../../chunk-GBMNCNHX.js';
14
14
  import '../../chunk-E4WQGJNS.js';
15
15
  import '../../chunk-7M2VOCYN.js';
16
- import '../../chunk-R7GKX4HW.js';
16
+ import '../../chunk-UU6PJ4EJ.js';
17
17
  import '../../chunk-BRXELOHC.js';
18
18
  import '../../chunk-QSTH6T77.js';
19
- import '../../chunk-GRGRBWIO.js';
19
+ import '../../chunk-M7W7CGPL.js';
20
20
  import '../../chunk-22UVE3RA.js';
21
21
  import '../../chunk-3ZMAGTWF.js';
22
- import '../../chunk-OCCZRPER.js';
23
- import '../../chunk-34NQLV2W.js';
24
- import '../../chunk-R73EHHPN.js';
22
+ import '../../chunk-Q4QJOSVS.js';
23
+ import '../../chunk-MJAKU2WA.js';
24
+ import '../../chunk-Q5HC6ENG.js';
25
25
  import '../../chunk-WLOQ4IBG.js';
26
- import '../../chunk-2TDZBYXI.js';
27
- import '../../chunk-P3TFNFZS.js';
26
+ import '../../chunk-LR5CRY5A.js';
27
+ import '../../chunk-EUWBY43Z.js';
28
28
  import '../../chunk-RX4UWZZR.js';
29
- import '../../chunk-TTP62HWW.js';
29
+ import '../../chunk-BHR7IV72.js';
30
30
  import '../../chunk-SZHARWKU.js';
31
31
  import '../../chunk-3KMDHCAR.js';
32
32
  import '../../chunk-NYBEU5TE.js';
33
- import '../../chunk-VDM6DQES.js';
33
+ import '../../chunk-R7OJCNL3.js';
34
34
  import '../../chunk-2IFYDILW.js';
35
35
  import '../../chunk-Q7DJKLEN.js';
36
36
  import '../../chunk-7YQKVWSD.js';
@@ -39,7 +39,7 @@ import '../../chunk-QJ2KCHKX.js';
39
39
  import '../../chunk-HQ7M6PBW.js';
40
40
  import '../../chunk-DT3QYZVU.js';
41
41
  import '../../chunk-RNP5R5I3.js';
42
- import '../../chunk-GCBWGGI6.js';
42
+ import '../../chunk-OD7GWIZS.js';
43
43
  import '../../chunk-KRWALB24.js';
44
44
  import '../../chunk-SLH2QLKV.js';
45
45
  import '../../chunk-DK2HVHCY.js';