@elevasis/ui 2.20.0 → 2.22.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.js +5 -5
- package/dist/charts/index.js +3 -3
- package/dist/{chunk-TO7QXDBX.js → chunk-3HEUGBOT.js} +3 -3
- package/dist/chunk-AXXTN44Z.js +26 -0
- package/dist/{chunk-FMFX4K6E.js → chunk-B4FHWKEF.js} +3390 -2929
- package/dist/{chunk-AL23U6C3.js → chunk-BIWHHWCJ.js} +1 -2
- package/dist/{chunk-MZFJWCPH.js → chunk-BSZRKBAW.js} +277 -92
- package/dist/{chunk-GP3AFJYG.js → chunk-COG4ABRI.js} +8 -13
- package/dist/chunk-DDZOHLHB.js +48 -0
- package/dist/{chunk-ZE2KQSHL.js → chunk-GJ7EIABJ.js} +4 -4
- package/dist/{chunk-YP6T426C.js → chunk-IBUYJXA3.js} +1326 -1110
- package/dist/{chunk-2CFOFSSG.js → chunk-IOTLB6ND.js} +8 -13
- package/dist/{chunk-GBMNCNHX.js → chunk-KVJ3LFH2.js} +3 -1
- package/dist/chunk-LJWV4TWV.js +335 -0
- package/dist/{chunk-PJVG3ISO.js → chunk-LKVBEE63.js} +7 -9
- package/dist/{chunk-JR5WNTLA.js → chunk-LVJGPE6H.js} +11 -24
- package/dist/{chunk-OUYH2SBS.js → chunk-LVUCBY7X.js} +2 -2
- package/dist/{chunk-TIIPYB2Z.js → chunk-QZJM3RYI.js} +1 -1
- package/dist/{chunk-OD7GWIZS.js → chunk-SGXXJE52.js} +1 -121
- package/dist/{chunk-7YQKVWSD.js → chunk-SQ5JGELM.js} +25 -5
- package/dist/{chunk-R7OJCNL3.js → chunk-T6INEVX6.js} +1 -1
- package/dist/{chunk-RX4UWZZR.js → chunk-TKAYX2SP.js} +8 -3
- package/dist/{chunk-CTTY6FUT.js → chunk-TSSKOQBX.js} +2 -2
- package/dist/{chunk-GTYUP7MB.js → chunk-WWJ6S2HQ.js} +10 -22
- package/dist/{chunk-Q5HC6ENG.js → chunk-XOTJNW4Q.js} +1 -1
- package/dist/{chunk-BHR7IV72.js → chunk-XUYBOO32.js} +1 -1
- package/dist/{chunk-M7W7CGPL.js → chunk-Z6FAH4XV.js} +1 -1
- package/dist/{chunk-Q4QJOSVS.js → chunk-ZBCTB5CA.js} +1 -1
- package/dist/components/index.css +85 -85
- package/dist/components/index.d.ts +970 -746
- package/dist/components/index.js +246 -39
- package/dist/components/navigation/index.css +589 -0
- package/dist/components/navigation/index.d.ts +1 -13
- package/dist/components/navigation/index.js +11 -1
- package/dist/execution/index.d.ts +27 -0
- package/dist/features/auth/index.css +2 -2
- package/dist/features/auth/index.d.ts +184 -3
- package/dist/features/crm/index.css +2 -2
- package/dist/features/crm/index.d.ts +201 -38
- package/dist/features/crm/index.js +15 -14
- package/dist/features/dashboard/index.css +2 -2
- package/dist/features/dashboard/index.d.ts +25 -27
- package/dist/features/dashboard/index.js +15 -14
- package/dist/features/delivery/index.css +85 -85
- package/dist/features/delivery/index.d.ts +201 -38
- package/dist/features/delivery/index.js +15 -14
- package/dist/features/lead-gen/index.css +2 -2
- package/dist/features/lead-gen/index.d.ts +19 -37
- package/dist/features/lead-gen/index.js +15 -14
- package/dist/features/monitoring/index.css +85 -85
- package/dist/features/monitoring/index.d.ts +18 -36
- package/dist/features/monitoring/index.js +17 -16
- package/dist/features/monitoring/requests/index.css +2 -2
- package/dist/features/monitoring/requests/index.d.ts +18 -36
- package/dist/features/monitoring/requests/index.js +15 -14
- package/dist/features/operations/index.css +2 -2
- package/dist/features/operations/index.d.ts +49 -67
- package/dist/features/operations/index.js +18 -17
- package/dist/features/seo/index.d.ts +17 -35
- package/dist/features/seo/index.js +1 -1
- package/dist/features/settings/index.css +2 -2
- package/dist/features/settings/index.d.ts +222 -44
- package/dist/features/settings/index.js +16 -15
- package/dist/graph/index.css +2 -2
- package/dist/hooks/delivery/index.css +2 -2
- package/dist/hooks/delivery/index.d.ts +184 -3
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.css +85 -85
- package/dist/hooks/index.d.ts +1862 -1582
- package/dist/hooks/index.js +13 -12
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +92 -121
- package/dist/hooks/published.css +85 -85
- package/dist/hooks/published.d.ts +1862 -1582
- package/dist/hooks/published.js +13 -12
- package/dist/index.css +12 -12
- package/dist/index.d.ts +689 -470
- package/dist/index.js +14 -13
- package/dist/initialization/index.d.ts +184 -3
- package/dist/layout/index.js +2 -2
- package/dist/organization/index.css +589 -0
- package/dist/organization/index.js +1 -1
- package/dist/profile/index.d.ts +184 -3
- package/dist/provider/index.css +384 -0
- package/dist/provider/index.d.ts +68 -125
- package/dist/provider/index.js +11 -10
- package/dist/provider/published.css +463 -0
- package/dist/provider/published.d.ts +68 -125
- package/dist/provider/published.js +8 -7
- package/dist/supabase/index.d.ts +359 -6
- package/dist/test-utils/index.d.ts +46 -2
- package/dist/test-utils/index.js +104 -3
- package/dist/theme/index.js +2 -2
- package/dist/types/index.d.ts +303 -141
- package/dist/utils/index.d.ts +26 -59
- package/dist/utils/index.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-LR5CRY5A.js +0 -514
- package/dist/chunk-MG3NF7QL.js +0 -63
- /package/dist/{chunk-6GUW5GGF.js → chunk-6Z3G4U2R.js} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -1,64 +1,66 @@
|
|
|
1
|
-
import { useBreadcrumbs } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-
|
|
4
|
-
export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-
|
|
5
|
-
export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-
|
|
1
|
+
import { useBreadcrumbs } from '../chunk-DDZOHLHB.js';
|
|
2
|
+
import '../chunk-6Z3G4U2R.js';
|
|
3
|
+
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-LVJGPE6H.js';
|
|
4
|
+
export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-COG4ABRI.js';
|
|
5
|
+
export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-IBUYJXA3.js';
|
|
6
6
|
import '../chunk-ROSMICXG.js';
|
|
7
7
|
import '../chunk-3JCMO7SD.js';
|
|
8
8
|
import '../chunk-ZTWA5H77.js';
|
|
9
|
-
import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-
|
|
10
|
-
export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, ZodFormRenderer, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-
|
|
9
|
+
import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-LKVBEE63.js';
|
|
10
|
+
export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, ZodFormRenderer, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-LKVBEE63.js';
|
|
11
11
|
import '../chunk-442LZPIR.js';
|
|
12
|
-
import { NotificationList } from '../chunk-
|
|
13
|
-
export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-
|
|
14
|
-
export { ResourceHealthPanel } from '../chunk-
|
|
12
|
+
import { NotificationList } from '../chunk-WWJ6S2HQ.js';
|
|
13
|
+
export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-WWJ6S2HQ.js';
|
|
14
|
+
export { ResourceHealthPanel } from '../chunk-GJ7EIABJ.js';
|
|
15
15
|
export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
|
|
16
|
-
import '../chunk-
|
|
17
|
-
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-
|
|
18
|
-
|
|
16
|
+
import '../chunk-TSSKOQBX.js';
|
|
17
|
+
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-BIWHHWCJ.js';
|
|
18
|
+
import { showAuthError } from '../chunk-BSZRKBAW.js';
|
|
19
|
+
export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest, showAuthError } from '../chunk-BSZRKBAW.js';
|
|
19
20
|
import { AppShellLoader } from '../chunk-M25JL54Z.js';
|
|
20
|
-
export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-
|
|
21
|
+
export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-IOTLB6ND.js';
|
|
21
22
|
import '../chunk-BZZCNLT6.js';
|
|
22
23
|
export { SortableHeader, TableSelectionToolbar } from '../chunk-TUMSNGTX.js';
|
|
23
24
|
import '../chunk-CEWTOKE7.js';
|
|
24
25
|
import '../chunk-IIMU5YAJ.js';
|
|
25
26
|
import { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
26
27
|
export { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
27
|
-
import { CustomModal } from '../chunk-
|
|
28
|
-
export { ConfirmationInputModal, ConfirmationModal, CustomModal } from '../chunk-
|
|
29
|
-
import '../chunk-
|
|
28
|
+
import { CustomModal } from '../chunk-KVJ3LFH2.js';
|
|
29
|
+
export { ConfirmationInputModal, ConfirmationModal, CustomModal } from '../chunk-KVJ3LFH2.js';
|
|
30
|
+
import '../chunk-QZJM3RYI.js';
|
|
30
31
|
export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-E4WQGJNS.js';
|
|
31
32
|
import '../chunk-7M2VOCYN.js';
|
|
32
|
-
import { useCommandViewLayout, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications } from '../chunk-
|
|
33
|
+
import { useCommandViewLayout, useOrganizationPermissions, useCreateOrgRole, usePermissionCatalog, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications } from '../chunk-B4FHWKEF.js';
|
|
33
34
|
import '../chunk-BRXELOHC.js';
|
|
34
35
|
import '../chunk-QSTH6T77.js';
|
|
35
|
-
import {
|
|
36
|
-
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-
|
|
36
|
+
import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-Z6FAH4XV.js';
|
|
37
|
+
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-Z6FAH4XV.js';
|
|
37
38
|
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS } from '../chunk-22UVE3RA.js';
|
|
38
39
|
export { Graph_module_css_default as graphStyles } from '../chunk-22UVE3RA.js';
|
|
39
40
|
import '../chunk-3ZMAGTWF.js';
|
|
40
|
-
import '../chunk-
|
|
41
|
-
import '../chunk-
|
|
42
|
-
import '../chunk-
|
|
41
|
+
import '../chunk-ZBCTB5CA.js';
|
|
42
|
+
import '../chunk-3HEUGBOT.js';
|
|
43
|
+
import '../chunk-XOTJNW4Q.js';
|
|
43
44
|
import '../chunk-WLOQ4IBG.js';
|
|
44
|
-
import '../chunk-
|
|
45
|
-
import '../chunk-
|
|
46
|
-
import
|
|
47
|
-
import {
|
|
48
|
-
|
|
45
|
+
import '../chunk-AXXTN44Z.js';
|
|
46
|
+
import '../chunk-LVUCBY7X.js';
|
|
47
|
+
import '../chunk-LJWV4TWV.js';
|
|
48
|
+
import { SubshellContentContainer } from '../chunk-TKAYX2SP.js';
|
|
49
|
+
import { ListSkeleton, EmptyState, PageTitleCaption, StatCard, CenteredErrorState, CardHeader, ActivityTimeline } from '../chunk-XUYBOO32.js';
|
|
50
|
+
export { APIErrorAlert, ActivityTimeline, CardHeader, CenteredErrorState, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition } from '../chunk-XUYBOO32.js';
|
|
49
51
|
export { ElevasisLoader } from '../chunk-SZHARWKU.js';
|
|
50
52
|
export { StyledMarkdown } from '../chunk-3KMDHCAR.js';
|
|
51
53
|
export { NavigationButton } from '../chunk-NYBEU5TE.js';
|
|
52
|
-
import '../chunk-
|
|
54
|
+
import '../chunk-T6INEVX6.js';
|
|
53
55
|
import '../chunk-2IFYDILW.js';
|
|
54
56
|
import { useRouterContext } from '../chunk-Q7DJKLEN.js';
|
|
55
|
-
|
|
57
|
+
export { RoleBadge } from '../chunk-SQ5JGELM.js';
|
|
56
58
|
import '../chunk-6IA2OMAE.js';
|
|
57
59
|
import { useAppearance } from '../chunk-QJ2KCHKX.js';
|
|
58
60
|
import '../chunk-HQ7M6PBW.js';
|
|
59
61
|
import '../chunk-DT3QYZVU.js';
|
|
60
62
|
import '../chunk-RNP5R5I3.js';
|
|
61
|
-
import { getResourceIcon, getResourceColor, formatDateTime, PAGE_SIZE_DEFAULT, formatTimeAgo } from '../chunk-
|
|
63
|
+
import { getResourceIcon, getResourceColor, formatDateTime, PAGE_SIZE_DEFAULT, formatTimeAgo } from '../chunk-SGXXJE52.js';
|
|
62
64
|
import '../chunk-KRWALB24.js';
|
|
63
65
|
import '../chunk-SLH2QLKV.js';
|
|
64
66
|
import { useInitialization } from '../chunk-DK2HVHCY.js';
|
|
@@ -67,14 +69,15 @@ import '../chunk-QHSW4WHM.js';
|
|
|
67
69
|
import { useElevasisServices } from '../chunk-IRW7JMQ4.js';
|
|
68
70
|
import '../chunk-BRJ3QZ4E.js';
|
|
69
71
|
import '../chunk-I2KLQ2HA.js';
|
|
70
|
-
import { Stack, Group, ThemeIcon, Text, Badge, Box, Title, TextInput, Alert, Button, Table, Tooltip, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Loader, Pagination, SegmentedControl, Switch, Select, Textarea, Divider, Card, Menu, Timeline, Tabs, ScrollArea, Breadcrumbs as Breadcrumbs$1, Drawer, Center, Popover, Indicator } from '@mantine/core';
|
|
71
|
-
import { useDisclosure } from '@mantine/hooks';
|
|
72
|
-
import { IconBrain, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconPencil, IconKey, IconCalendar, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconTag, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconBell } from '@tabler/icons-react';
|
|
73
|
-
import { useQueryClient, useQuery } from '@tanstack/react-query';
|
|
74
|
-
import { memo, forwardRef, useMemo, useImperativeHandle, useState, useEffect, useCallback, useRef } from 'react';
|
|
75
72
|
import * as runtime from 'react/jsx-runtime';
|
|
76
73
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
74
|
+
import { Stack, Group, ThemeIcon, Text, Badge, Box, Card, Title, Checkbox, Tooltip, Center, TextInput, Textarea, Loader, Alert, Button, Table, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Pagination, SegmentedControl, Switch, Select, Divider, Menu, Timeline, Tabs, ScrollArea, Breadcrumbs as Breadcrumbs$1, Drawer, Popover, Indicator } from '@mantine/core';
|
|
75
|
+
import { IconBrain, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconLock, IconPencil, IconKey, IconCalendar, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconTag, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconBell } from '@tabler/icons-react';
|
|
77
76
|
import { useForm } from '@mantine/form';
|
|
77
|
+
import { memo, forwardRef, useMemo, useImperativeHandle, useRef, useEffect, useState, useCallback } from 'react';
|
|
78
|
+
import { z } from 'zod';
|
|
79
|
+
import { useDisclosure } from '@mantine/hooks';
|
|
80
|
+
import { useQueryClient, useQuery } from '@tanstack/react-query';
|
|
78
81
|
import { useReactFlow, ReactFlow, ReactFlowProvider } from '@xyflow/react';
|
|
79
82
|
import '@xyflow/react/dist/style.css';
|
|
80
83
|
import { Link, RichTextEditor as RichTextEditor$1 } from '@mantine/tiptap';
|
|
@@ -84,6 +87,210 @@ import StarterKit from '@tiptap/starter-kit';
|
|
|
84
87
|
import { Prism } from 'react-syntax-highlighter';
|
|
85
88
|
import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
86
89
|
|
|
90
|
+
function Can({ permission, fallback = null, children }) {
|
|
91
|
+
const { hasPermission, isReady } = useOrganizationPermissions();
|
|
92
|
+
if (!isReady) return null;
|
|
93
|
+
return hasPermission(permission) ? /* @__PURE__ */ jsx(Fragment, { children }) : /* @__PURE__ */ jsx(Fragment, { children: fallback });
|
|
94
|
+
}
|
|
95
|
+
function groupByDomain(catalog) {
|
|
96
|
+
const groups = /* @__PURE__ */ new Map();
|
|
97
|
+
for (const row of catalog) {
|
|
98
|
+
const domain = row.key.split(".")[0] ?? row.key;
|
|
99
|
+
const existing = groups.get(domain);
|
|
100
|
+
if (existing) {
|
|
101
|
+
existing.push(row);
|
|
102
|
+
} else {
|
|
103
|
+
groups.set(domain, [row]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return groups;
|
|
107
|
+
}
|
|
108
|
+
var DOMAIN_LABELS = {
|
|
109
|
+
org: "Organization",
|
|
110
|
+
members: "Members",
|
|
111
|
+
roles: "Roles",
|
|
112
|
+
secrets: "Secrets",
|
|
113
|
+
operations: "Operations",
|
|
114
|
+
work: "Work"
|
|
115
|
+
};
|
|
116
|
+
function domainLabel(domain) {
|
|
117
|
+
return DOMAIN_LABELS[domain] ?? domain.charAt(0).toUpperCase() + domain.slice(1);
|
|
118
|
+
}
|
|
119
|
+
function PermissionMatrix({ catalog, selectedKeys, onChange, systemLocked }) {
|
|
120
|
+
const groups = groupByDomain(catalog);
|
|
121
|
+
const isDisplayOnly = !onChange || systemLocked;
|
|
122
|
+
function handleToggle(key, checked) {
|
|
123
|
+
if (!onChange || systemLocked) return;
|
|
124
|
+
if (checked) {
|
|
125
|
+
onChange([...selectedKeys, key]);
|
|
126
|
+
} else {
|
|
127
|
+
onChange(selectedKeys.filter((k) => k !== key));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return /* @__PURE__ */ jsx(Stack, { gap: "md", children: Array.from(groups.entries()).map(([domain, rows]) => /* @__PURE__ */ jsxs(Card, { withBorder: true, padding: "md", children: [
|
|
131
|
+
/* @__PURE__ */ jsx(Title, { order: 5, mb: "sm", style: { textTransform: "capitalize" }, children: domainLabel(domain) }),
|
|
132
|
+
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: rows.map((row) => {
|
|
133
|
+
const isLocked = !row.isOrgGrantable;
|
|
134
|
+
const isChecked = selectedKeys.includes(row.key);
|
|
135
|
+
const isDisabled = isDisplayOnly || isLocked;
|
|
136
|
+
const checkbox = /* @__PURE__ */ jsx(
|
|
137
|
+
Checkbox,
|
|
138
|
+
{
|
|
139
|
+
checked: isChecked,
|
|
140
|
+
disabled: isDisabled,
|
|
141
|
+
onChange: (e) => handleToggle(row.key, e.currentTarget.checked),
|
|
142
|
+
label: /* @__PURE__ */ jsxs(Group, { gap: 6, wrap: "nowrap", children: [
|
|
143
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", c: isLocked ? "var(--color-text-subtle)" : void 0, children: row.key }),
|
|
144
|
+
isLocked && /* @__PURE__ */ jsx(IconLock, { size: 14, style: { color: "var(--color-text-subtle)", flexShrink: 0 } }),
|
|
145
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: row.description })
|
|
146
|
+
] })
|
|
147
|
+
},
|
|
148
|
+
row.key
|
|
149
|
+
);
|
|
150
|
+
if (isLocked) {
|
|
151
|
+
return /* @__PURE__ */ jsx(Tooltip, { label: "Reserved for built-in roles", position: "right", children: /* @__PURE__ */ jsx("div", { children: checkbox }) }, row.key);
|
|
152
|
+
}
|
|
153
|
+
return checkbox;
|
|
154
|
+
}) })
|
|
155
|
+
] }, domain)) });
|
|
156
|
+
}
|
|
157
|
+
function NoAccessState() {
|
|
158
|
+
return /* @__PURE__ */ jsx(Center, { style: { flex: 1, minHeight: "100%", width: "100%", padding: 24 }, children: /* @__PURE__ */ jsxs(Stack, { align: "center", gap: "xs", style: { maxWidth: 480, textAlign: "center" }, children: [
|
|
159
|
+
/* @__PURE__ */ jsx(IconLock, { size: 44, stroke: 1.8, color: "var(--color-text-subtle)" }),
|
|
160
|
+
/* @__PURE__ */ jsx(Title, { order: 3, children: "Access restricted" }),
|
|
161
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "You don't have permission to view this page. Contact an org admin if you need access." })
|
|
162
|
+
] }) });
|
|
163
|
+
}
|
|
164
|
+
var CreateRoleFormSchema = z.object({
|
|
165
|
+
name: z.string().trim().min(2).max(50),
|
|
166
|
+
slug: z.string().regex(/^[a-z0-9-]+$/, "lowercase, numbers, dashes only").min(2).max(50),
|
|
167
|
+
description: z.string().max(200).optional(),
|
|
168
|
+
permissionKeys: z.array(z.string())
|
|
169
|
+
});
|
|
170
|
+
function toSlug(name) {
|
|
171
|
+
return name.toLowerCase().replace(/\s+/g, "-");
|
|
172
|
+
}
|
|
173
|
+
var nameSchema = CreateRoleFormSchema.shape.name;
|
|
174
|
+
var slugSchema = CreateRoleFormSchema.shape.slug;
|
|
175
|
+
var descriptionSchema = z.string().max(200);
|
|
176
|
+
function extractError(result) {
|
|
177
|
+
return result.error.issues[0]?.message ?? "Invalid value";
|
|
178
|
+
}
|
|
179
|
+
function CreateRoleModal({ opened, onClose, onCreated }) {
|
|
180
|
+
const createMutation = useCreateOrgRole();
|
|
181
|
+
const catalog = usePermissionCatalog();
|
|
182
|
+
const slugDirtyRef = useRef(false);
|
|
183
|
+
const form = useForm({
|
|
184
|
+
initialValues: {
|
|
185
|
+
name: "",
|
|
186
|
+
slug: "",
|
|
187
|
+
description: "",
|
|
188
|
+
permissionKeys: []
|
|
189
|
+
},
|
|
190
|
+
validate: {
|
|
191
|
+
name: (value) => {
|
|
192
|
+
const r = nameSchema.safeParse(value);
|
|
193
|
+
return r.success ? null : extractError(r);
|
|
194
|
+
},
|
|
195
|
+
slug: (value) => {
|
|
196
|
+
const r = slugSchema.safeParse(value);
|
|
197
|
+
return r.success ? null : extractError(r);
|
|
198
|
+
},
|
|
199
|
+
description: (value) => {
|
|
200
|
+
if (!value) return null;
|
|
201
|
+
const r = descriptionSchema.safeParse(value);
|
|
202
|
+
return r.success ? null : extractError(r);
|
|
203
|
+
},
|
|
204
|
+
permissionKeys: () => null
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
useEffect(() => {
|
|
208
|
+
if (!slugDirtyRef.current) {
|
|
209
|
+
form.setFieldValue("slug", toSlug(form.values.name));
|
|
210
|
+
}
|
|
211
|
+
}, [form.values.name]);
|
|
212
|
+
const handleSlugChange = (e) => {
|
|
213
|
+
slugDirtyRef.current = true;
|
|
214
|
+
form.setFieldValue("slug", e.currentTarget.value);
|
|
215
|
+
};
|
|
216
|
+
const handleClose = () => {
|
|
217
|
+
if (!createMutation.isPending) {
|
|
218
|
+
form.reset();
|
|
219
|
+
slugDirtyRef.current = false;
|
|
220
|
+
onClose();
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
const onSubmit = form.onSubmit(async (values) => {
|
|
224
|
+
try {
|
|
225
|
+
const role = await createMutation.mutateAsync({
|
|
226
|
+
name: values.name,
|
|
227
|
+
slug: values.slug,
|
|
228
|
+
description: values.description || void 0,
|
|
229
|
+
permissionKeys: values.permissionKeys
|
|
230
|
+
});
|
|
231
|
+
showSuccessNotification(`Role "${role.name}" created.`);
|
|
232
|
+
onCreated?.(role.id);
|
|
233
|
+
handleClose();
|
|
234
|
+
} catch (err) {
|
|
235
|
+
showAuthError(err);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
const grantableCatalog = (catalog.data?.permissions ?? []).filter((p) => p.isOrgGrantable);
|
|
239
|
+
return /* @__PURE__ */ jsx(CustomModal, { opened, onClose: handleClose, size: "lg", loading: createMutation.isPending, children: /* @__PURE__ */ jsx("form", { onSubmit, children: /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
|
|
240
|
+
/* @__PURE__ */ jsx(Title, { order: 4, children: "Create custom role" }),
|
|
241
|
+
/* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
242
|
+
/* @__PURE__ */ jsx(
|
|
243
|
+
TextInput,
|
|
244
|
+
{
|
|
245
|
+
label: "Display name",
|
|
246
|
+
placeholder: "e.g. Content Editor",
|
|
247
|
+
required: true,
|
|
248
|
+
disabled: createMutation.isPending,
|
|
249
|
+
...form.getInputProps("name")
|
|
250
|
+
}
|
|
251
|
+
),
|
|
252
|
+
/* @__PURE__ */ jsx(
|
|
253
|
+
TextInput,
|
|
254
|
+
{
|
|
255
|
+
label: "Slug",
|
|
256
|
+
placeholder: "e.g. content-editor",
|
|
257
|
+
description: "Lowercase letters, numbers, and dashes only",
|
|
258
|
+
required: true,
|
|
259
|
+
disabled: createMutation.isPending,
|
|
260
|
+
...form.getInputProps("slug"),
|
|
261
|
+
onChange: handleSlugChange
|
|
262
|
+
}
|
|
263
|
+
),
|
|
264
|
+
/* @__PURE__ */ jsx(
|
|
265
|
+
Textarea,
|
|
266
|
+
{
|
|
267
|
+
label: "Description",
|
|
268
|
+
placeholder: "Optional description",
|
|
269
|
+
minRows: 2,
|
|
270
|
+
disabled: createMutation.isPending,
|
|
271
|
+
...form.getInputProps("description")
|
|
272
|
+
}
|
|
273
|
+
)
|
|
274
|
+
] }),
|
|
275
|
+
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
276
|
+
/* @__PURE__ */ jsx(Title, { order: 5, children: "Permissions" }),
|
|
277
|
+
catalog.isLoading && /* @__PURE__ */ jsx(Loader, { size: "sm" }),
|
|
278
|
+
catalog.isError && /* @__PURE__ */ jsx(Alert, { color: "red", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: "Failed to load permission catalog. Please close and try again." }) }),
|
|
279
|
+
!catalog.isLoading && !catalog.isError && /* @__PURE__ */ jsx(
|
|
280
|
+
PermissionMatrix,
|
|
281
|
+
{
|
|
282
|
+
catalog: grantableCatalog,
|
|
283
|
+
selectedKeys: form.values.permissionKeys,
|
|
284
|
+
onChange: (keys) => form.setFieldValue("permissionKeys", keys)
|
|
285
|
+
}
|
|
286
|
+
)
|
|
287
|
+
] }),
|
|
288
|
+
/* @__PURE__ */ jsxs(Group, { justify: "flex-end", mt: "md", children: [
|
|
289
|
+
/* @__PURE__ */ jsx(Button, { variant: "default", onClick: handleClose, disabled: createMutation.isPending, children: "Cancel" }),
|
|
290
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", loading: createMutation.isPending, children: "Create role" })
|
|
291
|
+
] })
|
|
292
|
+
] }) }) });
|
|
293
|
+
}
|
|
87
294
|
function EditApiKeyModal({ apiKey, onClose }) {
|
|
88
295
|
const [name, setName] = useState("");
|
|
89
296
|
const [nameError, setNameError] = useState(null);
|
|
@@ -3034,9 +3241,9 @@ function MdxRenderer({ compiledSource }) {
|
|
|
3034
3241
|
if (!Content) return null;
|
|
3035
3242
|
return /* @__PURE__ */ jsx(Content, { components: mdxComponents });
|
|
3036
3243
|
}
|
|
3037
|
-
var Breadcrumbs = (
|
|
3244
|
+
var Breadcrumbs = (props) => {
|
|
3038
3245
|
const { Link: Link2 } = useRouterContext();
|
|
3039
|
-
const breadcrumbs = useBreadcrumbs(
|
|
3246
|
+
const breadcrumbs = useBreadcrumbs(props);
|
|
3040
3247
|
const items = breadcrumbs.map((item) => {
|
|
3041
3248
|
const isActive = item.isActive;
|
|
3042
3249
|
if (isActive) {
|
|
@@ -3488,4 +3695,4 @@ function NotificationBell({ unreadCount, onNavigate }) {
|
|
|
3488
3695
|
] });
|
|
3489
3696
|
}
|
|
3490
3697
|
|
|
3491
|
-
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDrawer, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, ErrorReportCard, KanbanBoard, MdxRenderer, NotificationBell, NotificationPanel, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, buildErrorReport, mdxComponents };
|
|
3698
|
+
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, Can, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateRoleModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDrawer, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, ErrorReportCard, KanbanBoard, MdxRenderer, NoAccessState, NotificationBell, NotificationPanel, PermissionMatrix, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, buildErrorReport, mdxComponents };
|