@elevasis/ui 2.30.0 → 2.32.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.
- package/dist/api/index.js +2 -2
- package/dist/app/index.css +38 -0
- package/dist/app/index.d.ts +190 -9
- package/dist/app/index.js +7 -6
- package/dist/charts/index.js +4 -5
- package/dist/{chunk-HXZQWMKE.js → chunk-2RJMVWFJ.js} +1 -6
- package/dist/{chunk-4VQ2PXMI.js → chunk-3FV6HBXS.js} +4 -4
- package/dist/{chunk-CW3UNAF2.js → chunk-4DYOXEH6.js} +410 -5
- package/dist/{chunk-JKTPRYGV.js → chunk-4MFNGNHF.js} +123 -192
- package/dist/{chunk-HYLERWRO.js → chunk-4QK76KIF.js} +7 -7
- package/dist/chunk-5FJJ72HU.js +13 -0
- package/dist/chunk-5J4PDX26.js +112 -0
- package/dist/{chunk-4SY6BTVZ.js → chunk-6DWD423K.js} +12 -9
- package/dist/{chunk-3GV5NHSS.js → chunk-7KZINJLP.js} +78 -232
- package/dist/{chunk-6WXDE5LZ.js → chunk-EPTHX4VZ.js} +1 -1
- package/dist/{chunk-6EFVZV6X.js → chunk-GCOQ3TBG.js} +243 -254
- package/dist/{chunk-LRZFLK2F.js → chunk-IQHU7O5Y.js} +4 -4
- package/dist/{chunk-X2SUMO3P.js → chunk-IZWTVFJ2.js} +16 -3
- package/dist/{chunk-IKQ42WHU.js → chunk-JFL3GRD4.js} +1 -1
- package/dist/{chunk-4FZYEEPK.js → chunk-LLRXA7D7.js} +5 -6
- package/dist/chunk-MOY4VOHF.js +347 -0
- package/dist/{chunk-XQQEKWTL.js → chunk-N55DVMAG.js} +6 -2
- package/dist/{chunk-7E3FUTND.js → chunk-ND5TDV2J.js} +1 -1
- package/dist/{chunk-WF227UBV.js → chunk-QQHOKTJA.js} +4 -4
- package/dist/{chunk-A7B7HLDF.js → chunk-QTI3KC7D.js} +5884 -515
- package/dist/chunk-QXCDKE2O.js +486 -0
- package/dist/chunk-R2XR4FCV.js +48 -0
- package/dist/chunk-R66W5UDG.js +26 -0
- package/dist/{chunk-T5Z7G2J2.js → chunk-RQA2EVN3.js} +6 -16
- package/dist/{chunk-SKXXT3E2.js → chunk-RQTWIXJ5.js} +4 -4
- package/dist/chunk-T35FWDAB.js +4342 -0
- package/dist/{chunk-DWK2QIAK.js → chunk-TYRUKGGD.js} +1 -1
- package/dist/{chunk-CN2HC4D4.js → chunk-UFTM5SZZ.js} +2 -2
- package/dist/{chunk-JCGD4GM6.js → chunk-UROTM5OR.js} +14 -1
- package/dist/{chunk-6YT4IKJ7.js → chunk-VNAZTCHA.js} +15 -0
- package/dist/{chunk-KVJ3LFH2.js → chunk-VNFR57DF.js} +4 -24
- package/dist/{chunk-SBCIB5TZ.js → chunk-VRNMNB3O.js} +6 -7
- package/dist/chunk-WQPX44YM.js +1626 -0
- package/dist/{chunk-T2PAD63Y.js → chunk-XZGSCABI.js} +1 -1
- package/dist/chunk-YLQEVSOR.js +299 -0
- package/dist/{chunk-P5WYW2GI.js → chunk-ZQOKIGZP.js} +152 -306
- package/dist/components/index.css +38 -0
- package/dist/components/index.d.ts +334 -38
- package/dist/components/index.js +42 -42
- package/dist/components/navigation/index.css +38 -0
- package/dist/components/navigation/index.js +3 -2
- package/dist/execution/index.d.ts +9 -3
- package/dist/features/auth/index.css +38 -0
- package/dist/features/auth/index.d.ts +212 -14
- package/dist/features/auth/index.js +41 -9
- package/dist/features/clients/index.css +649 -0
- package/dist/features/clients/index.d.ts +86 -0
- package/dist/features/clients/index.js +720 -0
- package/dist/features/crm/index.css +38 -0
- package/dist/features/crm/index.d.ts +228 -20
- package/dist/features/crm/index.js +20 -17
- package/dist/features/dashboard/index.css +38 -0
- package/dist/features/dashboard/index.d.ts +78 -3
- package/dist/features/dashboard/index.js +16 -16
- package/dist/features/delivery/index.css +38 -0
- package/dist/features/delivery/index.d.ts +201 -18
- package/dist/features/delivery/index.js +20 -18
- package/dist/features/knowledge/index.css +38 -0
- package/dist/features/knowledge/index.d.ts +20 -18
- package/dist/features/knowledge/index.js +116 -578
- package/dist/features/lead-gen/index.css +38 -0
- package/dist/features/lead-gen/index.d.ts +59 -51
- package/dist/features/lead-gen/index.js +20 -18
- package/dist/features/monitoring/index.css +38 -0
- package/dist/features/monitoring/index.d.ts +20 -18
- package/dist/features/monitoring/index.js +19 -18
- package/dist/features/monitoring/requests/index.css +38 -0
- package/dist/features/monitoring/requests/index.d.ts +21 -19
- package/dist/features/monitoring/requests/index.js +17 -15
- package/dist/features/operations/index.css +38 -0
- package/dist/features/operations/index.d.ts +945 -45
- package/dist/features/operations/index.js +24 -26
- package/dist/features/seo/index.d.ts +20 -18
- package/dist/features/seo/index.js +1 -1
- package/dist/features/settings/index.css +38 -0
- package/dist/features/settings/index.d.ts +201 -18
- package/dist/features/settings/index.js +18 -16
- package/dist/hooks/delivery/index.css +38 -0
- package/dist/hooks/delivery/index.d.ts +200 -0
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.css +38 -0
- package/dist/hooks/index.d.ts +825 -47
- package/dist/hooks/index.js +14 -13
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +194 -3
- package/dist/hooks/published.css +38 -0
- package/dist/hooks/published.d.ts +825 -47
- package/dist/hooks/published.js +14 -13
- package/dist/index.css +38 -0
- package/dist/index.d.ts +1506 -1212
- package/dist/index.js +15 -14
- package/dist/initialization/index.d.ts +181 -0
- package/dist/knowledge/index.d.ts +813 -1068
- package/dist/knowledge/index.js +7370 -2869
- package/dist/{chunk-CLUP5H3C.js → knowledge-search-index-5KYPO746.js} +441 -963
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.js +4 -5
- package/dist/organization/index.css +38 -0
- package/dist/profile/index.d.ts +181 -0
- package/dist/provider/index.css +38 -0
- package/dist/provider/index.d.ts +909 -1156
- package/dist/provider/index.js +11 -10
- package/dist/provider/published.css +38 -0
- package/dist/provider/published.d.ts +906 -1153
- package/dist/provider/published.js +7 -6
- package/dist/supabase/index.d.ts +349 -0
- package/dist/test-utils/index.d.ts +16 -9
- package/dist/test-utils/index.js +39 -32
- package/dist/test-utils/setup.js +1 -1
- package/dist/theme/index.js +3 -3
- package/dist/theme/presets/index.js +1 -1
- package/dist/types/index.d.ts +378 -5
- package/dist/utils/index.d.ts +78 -3
- package/dist/utils/index.js +1 -1
- package/dist/vite/index.js +2 -2
- package/dist/vite-plugin-knowledge/index.js +1 -1
- package/package.json +47 -37
- package/src/provider/README.md +5 -5
- package/dist/chunk-2DIYILF7.js +0 -413
- package/dist/chunk-3MDNBHVB.js +0 -3868
- package/dist/chunk-6IXOKUBC.js +0 -347
- package/dist/chunk-AKOD52HS.js +0 -739
- package/dist/chunk-ECNNI3NT.js +0 -6
- package/dist/chunk-JDNEWB5F.js +0 -10
- package/dist/chunk-NITGGYH2.js +0 -476
- package/dist/chunk-OAVTMITG.js +0 -13
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { PROJECTS_VIEW_CAPABILITY_ID, PROJECTS_FEATURE_ID } from './chunk-ECNNI3NT.js';
|
|
2
|
-
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
3
|
-
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
4
1
|
import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
|
|
5
2
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
3
|
+
import { milestoneStatusColors, formatStatusLabel, taskTypeColors, taskStatusColors, projectStatusColors, calculateProgress, noteTypeColors } from './chunk-R2XR4FCV.js';
|
|
4
|
+
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
5
|
+
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
6
6
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
7
|
-
import { CustomModal } from './chunk-
|
|
8
|
-
import { useProjectRealtime, useTableSort, sortData, usePaginationState, useTableSelection, useProjectActivities } from './chunk-
|
|
9
|
-
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote, showApiErrorNotification, projectKeys } from './chunk-
|
|
10
|
-
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard, CardHeader } from './chunk-
|
|
7
|
+
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
8
|
+
import { useProjectRealtime, useTableSort, sortData, usePaginationState, useTableSelection, useProjectActivities } from './chunk-GCOQ3TBG.js';
|
|
9
|
+
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote, showApiErrorNotification, projectKeys } from './chunk-XZGSCABI.js';
|
|
10
|
+
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard, CardHeader } from './chunk-EPTHX4VZ.js';
|
|
11
11
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
12
|
+
import { PROJECTS_VIEW_ACTION_ID } from './chunk-T35FWDAB.js';
|
|
12
13
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
13
|
-
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-
|
|
14
|
+
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-2RJMVWFJ.js';
|
|
14
15
|
import { useElevasisServices } from './chunk-KJ3QUBNU.js';
|
|
15
16
|
import { useState, useMemo, useCallback } from 'react';
|
|
16
17
|
import { Stack, Text, Group, Checkbox, ActionIcon, TextInput, Button, Modal, Title, Textarea, Select, SimpleGrid, Card, ThemeIcon, RingProgress, Paper, Timeline, Badge, Collapse, Center, Loader, Table, Pagination, Alert, CopyButton, Tooltip, Space, Tabs, Divider, Anchor, Chip } from '@mantine/core';
|
|
@@ -312,53 +313,6 @@ function HealthStatusCard({
|
|
|
312
313
|
] }) })
|
|
313
314
|
] });
|
|
314
315
|
}
|
|
315
|
-
|
|
316
|
-
// src/features/delivery/_shared.ts
|
|
317
|
-
var projectStatusColors = {
|
|
318
|
-
active: "blue",
|
|
319
|
-
on_track: "green",
|
|
320
|
-
at_risk: "yellow",
|
|
321
|
-
blocked: "red",
|
|
322
|
-
completed: "teal",
|
|
323
|
-
paused: "gray"
|
|
324
|
-
};
|
|
325
|
-
var milestoneStatusColors = {
|
|
326
|
-
upcoming: "gray",
|
|
327
|
-
in_progress: "blue",
|
|
328
|
-
completed: "green",
|
|
329
|
-
overdue: "red",
|
|
330
|
-
blocked: "orange"
|
|
331
|
-
};
|
|
332
|
-
var taskStatusColors = {
|
|
333
|
-
pending: "gray",
|
|
334
|
-
planned: "gray",
|
|
335
|
-
in_progress: "blue",
|
|
336
|
-
submitted: "yellow",
|
|
337
|
-
approved: "green",
|
|
338
|
-
rejected: "red",
|
|
339
|
-
revision_requested: "orange"
|
|
340
|
-
};
|
|
341
|
-
var taskTypeColors = {
|
|
342
|
-
documentation: "blue",
|
|
343
|
-
code: "violet",
|
|
344
|
-
report: "cyan",
|
|
345
|
-
design: "pink",
|
|
346
|
-
other: "gray"
|
|
347
|
-
};
|
|
348
|
-
var noteTypeColors = {
|
|
349
|
-
call_note: "blue",
|
|
350
|
-
status_update: "green",
|
|
351
|
-
issue: "yellow",
|
|
352
|
-
blocker: "red",
|
|
353
|
-
agent_learning: "grape"
|
|
354
|
-
};
|
|
355
|
-
function formatStatusLabel(status) {
|
|
356
|
-
return status.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
357
|
-
}
|
|
358
|
-
function calculateProgress(completed, total) {
|
|
359
|
-
if (total === 0) return 0;
|
|
360
|
-
return Math.round(completed / total * 100);
|
|
361
|
-
}
|
|
362
316
|
var MILESTONE_ICONS = {
|
|
363
317
|
upcoming: IconClock,
|
|
364
318
|
in_progress: IconFlag,
|
|
@@ -544,10 +498,9 @@ var ProjectsSidebar = ({ children } = {}) => {
|
|
|
544
498
|
};
|
|
545
499
|
var deliveryManifest = {
|
|
546
500
|
key: "delivery",
|
|
547
|
-
|
|
548
|
-
capabilityIds: [
|
|
549
|
-
icon: IconBriefcase
|
|
550
|
-
sidebar: ProjectsSidebar
|
|
501
|
+
systemId: "projects",
|
|
502
|
+
capabilityIds: [PROJECTS_VIEW_ACTION_ID],
|
|
503
|
+
icon: IconBriefcase
|
|
551
504
|
};
|
|
552
505
|
function AllTasksPage() {
|
|
553
506
|
return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
|
|
@@ -1095,14 +1048,6 @@ function renderMilestoneBullet(status) {
|
|
|
1095
1048
|
}
|
|
1096
1049
|
);
|
|
1097
1050
|
}
|
|
1098
|
-
function getMilestoneSurfaceStyles(status) {
|
|
1099
|
-
const normalizedStatus = status ?? "upcoming";
|
|
1100
|
-
const accent = normalizedStatus === "completed" ? "var(--color-primary)" : normalizedStatus === "in_progress" ? "color-mix(in srgb, var(--color-primary) 72%, white)" : "color-mix(in srgb, var(--color-primary) 36%, var(--color-border))";
|
|
1101
|
-
return {
|
|
1102
|
-
accent,
|
|
1103
|
-
background: "transparent"
|
|
1104
|
-
};
|
|
1105
|
-
}
|
|
1106
1051
|
function MilestoneChecklist({ milestone }) {
|
|
1107
1052
|
const items = parseChecklist2(milestone);
|
|
1108
1053
|
const { mutate: updateMilestone } = useUpdateMilestone();
|
|
@@ -1440,19 +1385,18 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1440
1385
|
const milestoneTasks = tasks.filter((task) => task.milestone_id === milestone.id);
|
|
1441
1386
|
const checklistItems = parseChecklist2(milestone);
|
|
1442
1387
|
const completedChecklistItems = checklistItems.filter((item) => item.completed).length;
|
|
1443
|
-
const { accent, background } = getMilestoneSurfaceStyles(milestone.status);
|
|
1444
1388
|
return /* @__PURE__ */ jsx(
|
|
1445
1389
|
Timeline.Item,
|
|
1446
1390
|
{
|
|
1447
1391
|
bullet: renderMilestoneBullet(milestone.status),
|
|
1448
1392
|
title: /* @__PURE__ */ jsx("div", {}),
|
|
1449
|
-
children: /* @__PURE__ */
|
|
1393
|
+
children: /* @__PURE__ */ jsx(
|
|
1450
1394
|
Paper,
|
|
1451
1395
|
{
|
|
1452
1396
|
p: "lg",
|
|
1453
1397
|
radius: "md",
|
|
1454
1398
|
style: {
|
|
1455
|
-
background,
|
|
1399
|
+
background: "transparent",
|
|
1456
1400
|
border: "none",
|
|
1457
1401
|
borderTop: "1px solid var(--color-border)",
|
|
1458
1402
|
borderRight: "1px solid var(--color-border)",
|
|
@@ -1461,138 +1405,125 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1461
1405
|
position: "relative",
|
|
1462
1406
|
overflow: "hidden"
|
|
1463
1407
|
},
|
|
1464
|
-
children: [
|
|
1465
|
-
/* @__PURE__ */
|
|
1466
|
-
|
|
1467
|
-
{
|
|
1468
|
-
style: {
|
|
1469
|
-
position: "absolute",
|
|
1470
|
-
inset: "0 auto 0 0",
|
|
1471
|
-
width: 3,
|
|
1472
|
-
background: `linear-gradient(180deg, ${accent} 0%, color-mix(in srgb, ${accent} 30%, transparent) 100%)`
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
),
|
|
1476
|
-
/* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
1477
|
-
/* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", wrap: "wrap", children: [
|
|
1478
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 6, style: { flex: 1, minWidth: 260 }, children: [
|
|
1479
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
1480
|
-
/* @__PURE__ */ jsx(Text, { fw: 700, size: "lg", c: "var(--color-text)", children: milestone.name }),
|
|
1481
|
-
/* @__PURE__ */ jsx(
|
|
1482
|
-
Badge,
|
|
1483
|
-
{
|
|
1484
|
-
variant: "light",
|
|
1485
|
-
color: milestoneStatusColors[milestone.status || ""] || "gray",
|
|
1486
|
-
size: "sm",
|
|
1487
|
-
styles: {
|
|
1488
|
-
root: {
|
|
1489
|
-
letterSpacing: "0.02em"
|
|
1490
|
-
}
|
|
1491
|
-
},
|
|
1492
|
-
children: formatStatusLabel(milestone.status || "unknown")
|
|
1493
|
-
}
|
|
1494
|
-
)
|
|
1495
|
-
] }),
|
|
1496
|
-
milestone.description && /* @__PURE__ */ jsx(Text, { size: "sm", c: "var(--color-text-dimmed)", maw: 900, children: milestone.description })
|
|
1497
|
-
] }),
|
|
1408
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
1409
|
+
/* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", wrap: "wrap", children: [
|
|
1410
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 6, style: { flex: 1, minWidth: 260 }, children: [
|
|
1498
1411
|
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
1499
|
-
|
|
1412
|
+
/* @__PURE__ */ jsx(Text, { fw: 700, size: "lg", c: "var(--color-text)", children: milestone.name }),
|
|
1413
|
+
/* @__PURE__ */ jsx(
|
|
1500
1414
|
Badge,
|
|
1501
1415
|
{
|
|
1502
|
-
variant: "
|
|
1503
|
-
|
|
1416
|
+
variant: "light",
|
|
1417
|
+
color: milestoneStatusColors[milestone.status || ""] || "gray",
|
|
1418
|
+
size: "sm",
|
|
1504
1419
|
styles: {
|
|
1505
1420
|
root: {
|
|
1506
|
-
|
|
1507
|
-
backgroundColor: "var(--surface-primary-faint)"
|
|
1421
|
+
letterSpacing: "0.02em"
|
|
1508
1422
|
}
|
|
1509
1423
|
},
|
|
1510
|
-
children:
|
|
1511
|
-
"Due ",
|
|
1512
|
-
formatDate(milestone.due_date)
|
|
1513
|
-
]
|
|
1514
|
-
}
|
|
1515
|
-
),
|
|
1516
|
-
/* @__PURE__ */ jsxs(
|
|
1517
|
-
Badge,
|
|
1518
|
-
{
|
|
1519
|
-
variant: "outline",
|
|
1520
|
-
size: "md",
|
|
1521
|
-
styles: {
|
|
1522
|
-
root: {
|
|
1523
|
-
borderColor: "var(--border-primary-soft)",
|
|
1524
|
-
backgroundColor: "var(--color-surface)"
|
|
1525
|
-
}
|
|
1526
|
-
},
|
|
1527
|
-
children: [
|
|
1528
|
-
completedChecklistItems,
|
|
1529
|
-
"/",
|
|
1530
|
-
checklistItems.length,
|
|
1531
|
-
" complete"
|
|
1532
|
-
]
|
|
1533
|
-
}
|
|
1534
|
-
),
|
|
1535
|
-
milestoneTasks.length > 0 && /* @__PURE__ */ jsxs(
|
|
1536
|
-
Badge,
|
|
1537
|
-
{
|
|
1538
|
-
variant: "outline",
|
|
1539
|
-
size: "md",
|
|
1540
|
-
styles: {
|
|
1541
|
-
root: {
|
|
1542
|
-
borderColor: "var(--border-primary-soft)",
|
|
1543
|
-
backgroundColor: "var(--color-surface)"
|
|
1544
|
-
}
|
|
1545
|
-
},
|
|
1546
|
-
children: [
|
|
1547
|
-
milestoneTasks.length,
|
|
1548
|
-
" tasks"
|
|
1549
|
-
]
|
|
1424
|
+
children: formatStatusLabel(milestone.status || "unknown")
|
|
1550
1425
|
}
|
|
1551
1426
|
)
|
|
1552
|
-
] })
|
|
1427
|
+
] }),
|
|
1428
|
+
milestone.description && /* @__PURE__ */ jsx(Text, { size: "sm", c: "var(--color-text-dimmed)", maw: 900, children: milestone.description })
|
|
1553
1429
|
] }),
|
|
1554
|
-
/* @__PURE__ */
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
]
|
|
1589
|
-
|
|
1590
|
-
|
|
1430
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
1431
|
+
milestone.due_date && /* @__PURE__ */ jsxs(
|
|
1432
|
+
Badge,
|
|
1433
|
+
{
|
|
1434
|
+
variant: "outline",
|
|
1435
|
+
size: "md",
|
|
1436
|
+
styles: {
|
|
1437
|
+
root: {
|
|
1438
|
+
borderColor: "var(--border-primary-subtle)",
|
|
1439
|
+
backgroundColor: "var(--surface-primary-faint)"
|
|
1440
|
+
}
|
|
1441
|
+
},
|
|
1442
|
+
children: [
|
|
1443
|
+
"Due ",
|
|
1444
|
+
formatDate(milestone.due_date)
|
|
1445
|
+
]
|
|
1446
|
+
}
|
|
1447
|
+
),
|
|
1448
|
+
/* @__PURE__ */ jsxs(
|
|
1449
|
+
Badge,
|
|
1450
|
+
{
|
|
1451
|
+
variant: "outline",
|
|
1452
|
+
size: "md",
|
|
1453
|
+
styles: {
|
|
1454
|
+
root: {
|
|
1455
|
+
borderColor: "var(--border-primary-soft)",
|
|
1456
|
+
backgroundColor: "var(--color-surface)"
|
|
1457
|
+
}
|
|
1458
|
+
},
|
|
1459
|
+
children: [
|
|
1460
|
+
completedChecklistItems,
|
|
1461
|
+
"/",
|
|
1462
|
+
checklistItems.length,
|
|
1463
|
+
" complete"
|
|
1464
|
+
]
|
|
1465
|
+
}
|
|
1466
|
+
),
|
|
1467
|
+
milestoneTasks.length > 0 && /* @__PURE__ */ jsxs(
|
|
1468
|
+
Badge,
|
|
1469
|
+
{
|
|
1470
|
+
variant: "outline",
|
|
1471
|
+
size: "md",
|
|
1472
|
+
styles: {
|
|
1473
|
+
root: {
|
|
1474
|
+
borderColor: "var(--border-primary-soft)",
|
|
1475
|
+
backgroundColor: "var(--color-surface)"
|
|
1476
|
+
}
|
|
1477
|
+
},
|
|
1478
|
+
children: [
|
|
1479
|
+
milestoneTasks.length,
|
|
1480
|
+
" tasks"
|
|
1481
|
+
]
|
|
1482
|
+
}
|
|
1483
|
+
)
|
|
1484
|
+
] })
|
|
1485
|
+
] }),
|
|
1486
|
+
/* @__PURE__ */ jsx(MilestoneChecklist, { milestone }),
|
|
1487
|
+
milestoneTasks.length > 0 && /* @__PURE__ */ jsx(Stack, { gap: "sm", children: milestoneTasks.map((task) => /* @__PURE__ */ jsx(
|
|
1488
|
+
Card,
|
|
1489
|
+
{
|
|
1490
|
+
p: "sm",
|
|
1491
|
+
radius: "md",
|
|
1492
|
+
style: {
|
|
1493
|
+
border: "1px solid var(--border-primary-faint)",
|
|
1494
|
+
backgroundColor: "color-mix(in srgb, var(--color-surface-hover) 70%, var(--color-surface))",
|
|
1495
|
+
boxShadow: "var(--standard-box-shadow)"
|
|
1591
1496
|
},
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1497
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
1498
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "space-between", align: "flex-start", wrap: "wrap", children: [
|
|
1499
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "var(--color-text)", children: task.name }),
|
|
1500
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
1501
|
+
/* @__PURE__ */ jsx(
|
|
1502
|
+
Badge,
|
|
1503
|
+
{
|
|
1504
|
+
variant: "light",
|
|
1505
|
+
color: taskTypeColors[task.type || ""] || "gray",
|
|
1506
|
+
size: "xs",
|
|
1507
|
+
children: formatStatusLabel(task.type || "other")
|
|
1508
|
+
}
|
|
1509
|
+
),
|
|
1510
|
+
/* @__PURE__ */ jsx(
|
|
1511
|
+
Badge,
|
|
1512
|
+
{
|
|
1513
|
+
variant: "light",
|
|
1514
|
+
color: taskStatusColors[task.status || ""] || "gray",
|
|
1515
|
+
size: "xs",
|
|
1516
|
+
children: formatStatusLabel(task.status || "pending")
|
|
1517
|
+
}
|
|
1518
|
+
)
|
|
1519
|
+
] })
|
|
1520
|
+
] }),
|
|
1521
|
+
/* @__PURE__ */ jsx(InlineResumeContextEditor, { task, projectId })
|
|
1522
|
+
] })
|
|
1523
|
+
},
|
|
1524
|
+
task.id
|
|
1525
|
+
)) })
|
|
1526
|
+
] })
|
|
1596
1527
|
}
|
|
1597
1528
|
)
|
|
1598
1529
|
},
|
|
@@ -1659,4 +1590,4 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1659
1590
|
] }) }) });
|
|
1660
1591
|
}
|
|
1661
1592
|
|
|
1662
|
-
export { AllTasksPage, Checklist, CreateDeliveryEntityModal, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage,
|
|
1593
|
+
export { AllTasksPage, Checklist, CreateDeliveryEntityModal, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, deliveryManifest };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
2
2
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
3
|
-
import { CustomModal } from './chunk-
|
|
4
|
-
import { useAvailablePresets } from './chunk-
|
|
5
|
-
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-
|
|
6
|
-
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-
|
|
7
|
-
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-
|
|
3
|
+
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
4
|
+
import { useAvailablePresets } from './chunk-JFL3GRD4.js';
|
|
5
|
+
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-GCOQ3TBG.js';
|
|
6
|
+
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-XZGSCABI.js';
|
|
7
|
+
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-EPTHX4VZ.js';
|
|
8
8
|
import { RoleBadge } from './chunk-JA5ECJJB.js';
|
|
9
|
-
import { isAPIClientError, formatDateTime, OAUTH_FLOW_TIMEOUT } from './chunk-
|
|
9
|
+
import { isAPIClientError, formatDateTime, OAUTH_FLOW_TIMEOUT } from './chunk-2RJMVWFJ.js';
|
|
10
10
|
import { useInitialization } from './chunk-533DUEQY.js';
|
|
11
11
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
12
12
|
import { useElevasisServices } from './chunk-KJ3QUBNU.js';
|
|
@@ -2274,7 +2274,7 @@ function OAuthIntegrationsCard({ apiUrl }) {
|
|
|
2274
2274
|
}
|
|
2275
2275
|
var settingsManifest = {
|
|
2276
2276
|
key: "settings",
|
|
2277
|
-
|
|
2277
|
+
routePrefixes: ["/settings"],
|
|
2278
2278
|
icon: IconSettings
|
|
2279
2279
|
};
|
|
2280
2280
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ElevasisSystemsProvider } from './chunk-QXCDKE2O.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function createTestSystemsProvider({
|
|
5
|
+
organizationModel,
|
|
6
|
+
systems = []
|
|
7
|
+
} = {}) {
|
|
8
|
+
return function TestSystemsProvider({ children }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(ElevasisSystemsProvider, { systems, organizationModel, children });
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { createTestSystemsProvider };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// src/features/operations/organization-graph/types.ts
|
|
2
|
+
var ORGANIZATION_GRAPH_NODE_KIND_ORDER = [
|
|
3
|
+
"organization",
|
|
4
|
+
"system",
|
|
5
|
+
"role",
|
|
6
|
+
"action",
|
|
7
|
+
"entity",
|
|
8
|
+
"event",
|
|
9
|
+
"policy",
|
|
10
|
+
"stage",
|
|
11
|
+
"resource",
|
|
12
|
+
"knowledge",
|
|
13
|
+
"customer-segment",
|
|
14
|
+
"offering",
|
|
15
|
+
"goal",
|
|
16
|
+
"surface",
|
|
17
|
+
"navigation-group",
|
|
18
|
+
"content-node"
|
|
19
|
+
];
|
|
20
|
+
var ORGANIZATION_GRAPH_NODE_KIND_LABELS = {
|
|
21
|
+
organization: "Organization",
|
|
22
|
+
system: "System",
|
|
23
|
+
role: "Role",
|
|
24
|
+
action: "Action",
|
|
25
|
+
entity: "Entity",
|
|
26
|
+
event: "Event",
|
|
27
|
+
policy: "Policy",
|
|
28
|
+
stage: "Stage",
|
|
29
|
+
resource: "Resource",
|
|
30
|
+
knowledge: "Knowledge",
|
|
31
|
+
"customer-segment": "Customer segment",
|
|
32
|
+
offering: "Offering",
|
|
33
|
+
goal: "Goal",
|
|
34
|
+
surface: "Surface",
|
|
35
|
+
"navigation-group": "Navigation group",
|
|
36
|
+
"content-node": "Content node"
|
|
37
|
+
};
|
|
38
|
+
var ORGANIZATION_GRAPH_NODE_KIND_DETAIL_LABELS = {
|
|
39
|
+
organization: "Organization root",
|
|
40
|
+
system: "System",
|
|
41
|
+
role: "Role",
|
|
42
|
+
action: "Action",
|
|
43
|
+
entity: "Entity",
|
|
44
|
+
event: "Event",
|
|
45
|
+
policy: "Policy",
|
|
46
|
+
stage: "Stage",
|
|
47
|
+
resource: "Resource",
|
|
48
|
+
knowledge: "Knowledge",
|
|
49
|
+
"customer-segment": "Customer segment",
|
|
50
|
+
offering: "Offering",
|
|
51
|
+
goal: "Goal",
|
|
52
|
+
surface: "Surface",
|
|
53
|
+
"navigation-group": "Navigation group",
|
|
54
|
+
"content-node": "Content node"
|
|
55
|
+
};
|
|
56
|
+
var ORGANIZATION_GRAPH_NODE_KIND_MEANINGS = {
|
|
57
|
+
organization: "The root of the shared organization model and the parent for every derived node.",
|
|
58
|
+
system: "A canonical Organization Model system for ownership, routing, and governance.",
|
|
59
|
+
role: "An Organization Model role that owns responsibilities and may govern systems.",
|
|
60
|
+
action: "A reusable action that can be attached to a system.",
|
|
61
|
+
entity: "A modeled business object or stateful data domain owned by the organization model.",
|
|
62
|
+
event: "A derived domain or runtime event emitted by entities, resources, or actions.",
|
|
63
|
+
policy: "A governance rule that applies to targets and may trigger effects across the graph.",
|
|
64
|
+
stage: "A lifecycle stage that records progress for an entity through a build pipeline.",
|
|
65
|
+
resource: "A concrete command-view or mapped resource that bridges execution topology into the model.",
|
|
66
|
+
knowledge: "An operational knowledge node that documents a process, strategy, or runbook in the org model.",
|
|
67
|
+
"customer-segment": "A defined segment of customers or prospects that the organization targets or serves.",
|
|
68
|
+
offering: "A product, service, or value proposition the organization delivers to customer segments.",
|
|
69
|
+
goal: "A strategic or operational objective that guides priorities and measures progress.",
|
|
70
|
+
surface: "A navigation surface (page or view) that is exposed through the platform shell.",
|
|
71
|
+
"navigation-group": "A logical grouping of navigation surfaces within the platform shell.",
|
|
72
|
+
"content-node": "A system-scoped content node authored in system.content (schema, config, or tenant-defined kind)."
|
|
73
|
+
};
|
|
74
|
+
var ORGANIZATION_GRAPH_EDGE_KIND_LABELS = {
|
|
75
|
+
contains: "Containment",
|
|
76
|
+
references: "Reference",
|
|
77
|
+
maps_to: "Mapping",
|
|
78
|
+
uses: "Uses",
|
|
79
|
+
governs: "Governs",
|
|
80
|
+
links: "Links",
|
|
81
|
+
affects: "Affects",
|
|
82
|
+
emits: "Emits",
|
|
83
|
+
originates_from: "Originates from",
|
|
84
|
+
triggers: "Triggers",
|
|
85
|
+
applies_to: "Applies to",
|
|
86
|
+
effects: "Effects"
|
|
87
|
+
};
|
|
88
|
+
var ORGANIZATION_GRAPH_EDGE_KIND_MEANINGS = {
|
|
89
|
+
contains: "A hierarchy or ownership link inside the shared graph.",
|
|
90
|
+
references: "A semantic association or dependency between two graph nodes.",
|
|
91
|
+
maps_to: "An action is aligned to a concrete resource.",
|
|
92
|
+
uses: "A graph node depends on another node, resource, entity, or integration.",
|
|
93
|
+
governs: "A knowledge node, role, or policy provides authoritative guidance for another node.",
|
|
94
|
+
links: "Two modeled nodes are associated without stronger ownership or execution semantics.",
|
|
95
|
+
affects: "The source can influence the behavior, state, or outcome of the target.",
|
|
96
|
+
emits: "The source produces an event that can be inspected or traversed.",
|
|
97
|
+
originates_from: "The source is derived from or owned by the target origin.",
|
|
98
|
+
triggers: "The source can start or activate the target.",
|
|
99
|
+
applies_to: "A policy or rule targets the node it applies to.",
|
|
100
|
+
effects: "A policy or event produces the target effect."
|
|
101
|
+
};
|
|
102
|
+
var DEFAULT_ORGANIZATION_GRAPH_FILTERS = {
|
|
103
|
+
search: "",
|
|
104
|
+
nodeKinds: [],
|
|
105
|
+
topologyPresence: "all",
|
|
106
|
+
environmentStatus: "all",
|
|
107
|
+
resourceTypes: [],
|
|
108
|
+
showIntegrations: true,
|
|
109
|
+
domainFilters: {}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export { DEFAULT_ORGANIZATION_GRAPH_FILTERS, ORGANIZATION_GRAPH_EDGE_KIND_LABELS, ORGANIZATION_GRAPH_EDGE_KIND_MEANINGS, ORGANIZATION_GRAPH_NODE_KIND_DETAIL_LABELS, ORGANIZATION_GRAPH_NODE_KIND_LABELS, ORGANIZATION_GRAPH_NODE_KIND_MEANINGS, ORGANIZATION_GRAPH_NODE_KIND_ORDER };
|
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import { FeatureUnavailableState } from './chunk-
|
|
2
|
-
import {
|
|
1
|
+
import { FeatureUnavailableState } from './chunk-EPTHX4VZ.js';
|
|
2
|
+
import { useElevasisSystems } from './chunk-QXCDKE2O.js';
|
|
3
3
|
import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer } from './chunk-TKAYX2SP.js';
|
|
4
4
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
5
5
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
function
|
|
9
|
-
const { shellRuntime } =
|
|
7
|
+
var defaultSystemSidebarWidth = 250;
|
|
8
|
+
function SystemShell({ children }) {
|
|
9
|
+
const { shellRuntime } = useElevasisSystems();
|
|
10
10
|
const { currentPath } = useRouterContext();
|
|
11
11
|
const routeMatch = shellRuntime.resolveRoute(currentPath);
|
|
12
12
|
if (routeMatch.status === "hidden") {
|
|
13
13
|
return /* @__PURE__ */ jsx(FeatureUnavailableState, { path: currentPath });
|
|
14
14
|
}
|
|
15
|
-
if (routeMatch.status !== "matched" || !routeMatch.
|
|
15
|
+
if (routeMatch.status !== "matched" || !routeMatch.system?.sidebar) {
|
|
16
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
17
|
+
}
|
|
18
|
+
const SidebarComponent = routeMatch.system.sidebar;
|
|
19
|
+
const sidebarWidth = typeof routeMatch.system.sidebarWidth === "function" ? routeMatch.system.sidebarWidth({ currentPath }) : routeMatch.system.sidebarWidth ?? defaultSystemSidebarWidth;
|
|
20
|
+
if (sidebarWidth === 0) {
|
|
16
21
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
17
22
|
}
|
|
18
|
-
const SidebarComponent = routeMatch.feature.sidebar;
|
|
19
|
-
const sidebarWidth = typeof routeMatch.feature.sidebarWidth === "function" ? routeMatch.feature.sidebarWidth({ currentPath }) : routeMatch.feature.sidebarWidth ?? defaultFeatureSidebarWidth;
|
|
20
23
|
return /* @__PURE__ */ jsxs(SubshellContainer, { children: [
|
|
21
24
|
/* @__PURE__ */ jsx(SubshellSidebar, { width: sidebarWidth, children: /* @__PURE__ */ jsx(SidebarComponent, {}) }),
|
|
22
25
|
/* @__PURE__ */ jsx(SubshellRightSideContainer, { children })
|
|
23
26
|
] });
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
export {
|
|
29
|
+
export { SystemShell };
|