@oneuptime/common 11.3.28 → 11.4.1
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/Models/DatabaseModels/AIRun.ts +50 -0
- package/Models/DatabaseModels/Project.ts +60 -0
- package/Server/API/AIAgentTaskAPI.ts +10 -24
- package/Server/API/AIInvestigationAPI.ts +148 -0
- package/Server/API/TelemetryAPI.ts +4 -3
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.ts +33 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Services/AIAgentTaskService.ts +62 -0
- package/Server/Services/AlertService.ts +25 -0
- package/Server/Services/AnalyticsDatabaseService.ts +27 -0
- package/Server/Services/IncidentService.ts +25 -0
- package/Server/Services/IncidentStateTimelineService.ts +19 -0
- package/Server/Services/LogAggregationService.ts +29 -11
- package/Server/Services/MetricService.ts +603 -13
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +119 -11
- package/Server/Utils/AI/Sentinel/AlertInvestigationRunner.ts +141 -0
- package/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.ts +178 -0
- package/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.ts +105 -0
- package/Server/Utils/AI/Sentinel/README.md +10 -0
- package/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.ts +405 -0
- package/Server/Utils/AI/Sentinel/SentinelMemory.ts +167 -0
- package/Server/Utils/AI/Toolbox/Index.ts +11 -0
- package/Server/Utils/AI/Toolbox/SentinelActionTools.ts +577 -0
- package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +44 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +108 -2
- package/Tests/Server/API/BaseAPI.test.ts +1 -0
- package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +146 -0
- package/Tests/Server/Services/LogAggregationService.test.ts +22 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +194 -0
- package/Tests/Types/AI/AIAgentTaskStatus.test.ts +86 -0
- package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +127 -0
- package/Tests/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.test.ts +152 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtil.test.ts +260 -0
- package/Tests/Types/Trace/TraceRecordingRuleDefinition.test.ts +308 -0
- package/Tests/UI/Components/Dropdown.test.tsx +17 -0
- package/Tests/UI/Components/EntityDropdown.test.tsx +130 -0
- package/Tests/UI/Components/Modal.test.tsx +144 -2
- package/Tests/UI/Components/TelemetrySearchBar.test.tsx +90 -0
- package/Tests/UI/Utils/Theme.test.ts +161 -0
- package/Types/BaseDatabase/AggregateBy.ts +12 -0
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardLogChartComponent.ts +19 -0
- package/Types/Dashboard/DashboardTemplates.ts +9 -1
- package/Types/Date.ts +46 -0
- package/Types/Monitor/CriteriaFilter.ts +4 -0
- package/Types/Monitor/HttpPhaseTimings.ts +16 -0
- package/Types/Monitor/MonitorMetricType.ts +17 -0
- package/Types/Monitor/PingMonitor/PingMonitorResponse.ts +20 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +257 -0
- package/Types/Probe/ProbeMonitorResponse.ts +14 -0
- package/UI/Components/Calendar/Calendar.tsx +8 -2
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +5 -5
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +8 -5
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +4 -1
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +6 -3
- package/UI/Components/CodeBlock/CodeBlock.tsx +2 -1
- package/UI/Components/CodeEditor/CodeEditor.tsx +3 -0
- package/UI/Components/Divider/Divider.tsx +1 -1
- package/UI/Components/Dropdown/Dropdown.tsx +13 -4
- package/UI/Components/EntityDropdown/EntityDropdown.tsx +110 -2
- package/UI/Components/ErrorBoundary.tsx +2 -1
- package/UI/Components/EventItem/EventItem.tsx +2 -2
- package/UI/Components/GanttChart/Bar/Index.tsx +1 -1
- package/UI/Components/Graphs/UptimeBarTooltip.tsx +30 -23
- package/UI/Components/Header/Header.tsx +7 -0
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +2 -0
- package/UI/Components/Label/Label.tsx +2 -2
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +22 -10
- package/UI/Components/LogsViewer/components/LogsHistogram.tsx +9 -3
- package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +8 -8
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +44 -20
- package/UI/Components/Modal/ConfirmModal.tsx +1 -1
- package/UI/Components/Modal/Modal.tsx +213 -121
- package/UI/Components/Modal/ModalFooter.tsx +33 -22
- package/UI/Components/ModelTable/TableView.tsx +1 -1
- package/UI/Components/MonitorGraphs/UptimeBarDayModal.tsx +20 -12
- package/UI/Components/Pill/Pill.tsx +21 -13
- package/UI/Components/StatusBubble/StatusBubble.tsx +3 -3
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +7 -1
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +9 -3
- package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +62 -4
- package/UI/Components/Workflow/Component.tsx +53 -33
- package/UI/Components/Workflow/ComponentPortViewer.tsx +6 -6
- package/UI/Components/Workflow/ComponentReturnValueViewer.tsx +8 -8
- package/UI/Components/Workflow/ComponentsModal.tsx +16 -9
- package/UI/Components/Workflow/Workflow.tsx +13 -11
- package/UI/Utils/Theme.ts +140 -0
- package/Utils/Dashboard/Components/DashboardLogChartComponent.ts +104 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/Monitor/MonitorMetricType.ts +70 -2
- package/build/dist/Models/DatabaseModels/AIRun.js +52 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +62 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskAPI.js +8 -23
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +107 -0
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -0
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIAgentTaskService.js +59 -0
- package/build/dist/Server/Services/AIAgentTaskService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +24 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +19 -0
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +24 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +21 -7
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricService.js +449 -7
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +59 -11
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js +119 -0
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js +147 -0
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js +93 -0
- package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js +311 -0
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +1 -0
- package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js +143 -0
- package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +6 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js +451 -0
- package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +29 -0
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +86 -2
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogChartComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogChartComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +9 -1
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Date.js +32 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +4 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/HttpPhaseTimings.js +2 -0
- package/build/dist/Types/Monitor/HttpPhaseTimings.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js +15 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/PingMonitor/PingMonitorResponse.js +2 -0
- package/build/dist/Types/Monitor/PingMonitor/PingMonitorResponse.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +159 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -0
- package/build/dist/UI/Components/Calendar/Calendar.js +2 -2
- package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +7 -4
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +4 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +6 -3
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/CodeBlock/CodeBlock.js +1 -1
- package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js +3 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/dist/UI/Components/Divider/Divider.js +1 -1
- package/build/dist/UI/Components/Divider/Divider.js.map +1 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js +10 -4
- package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
- package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +76 -3
- package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
- package/build/dist/UI/Components/ErrorBoundary.js +2 -1
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/EventItem/EventItem.js +2 -2
- package/build/dist/UI/Components/EventItem/EventItem.js.map +1 -1
- package/build/dist/UI/Components/GanttChart/Bar/Index.js +1 -1
- package/build/dist/UI/Components/GanttChart/Bar/Index.js.map +1 -1
- package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js +29 -23
- package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js.map +1 -1
- package/build/dist/UI/Components/Header/Header.js +1 -0
- package/build/dist/UI/Components/Header/Header.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/Label/Label.js +2 -2
- package/build/dist/UI/Components/Label/Label.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +20 -8
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +8 -2
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +8 -8
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +40 -20
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +109 -51
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js +13 -10
- package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/TableView.js +1 -1
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js +17 -12
- package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js.map +1 -1
- package/build/dist/UI/Components/Pill/Pill.js +12 -13
- package/build/dist/UI/Components/Pill/Pill.js.map +1 -1
- package/build/dist/UI/Components/StatusBubble/StatusBubble.js +3 -3
- package/build/dist/UI/Components/StatusBubble/StatusBubble.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +8 -2
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +36 -6
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
- package/build/dist/UI/Components/Workflow/Component.js +43 -33
- package/build/dist/UI/Components/Workflow/Component.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentPortViewer.js +6 -6
- package/build/dist/UI/Components/Workflow/ComponentPortViewer.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js +8 -8
- package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentsModal.js +15 -9
- package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/Workflow.js +13 -11
- package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
- package/build/dist/UI/Utils/Theme.js +106 -0
- package/build/dist/UI/Utils/Theme.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardLogChartComponent.js +92 -0
- package/build/dist/Utils/Dashboard/Components/DashboardLogChartComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +70 -3
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,7 +41,8 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
41
41
|
width: "48px",
|
|
42
42
|
height: "48px",
|
|
43
43
|
borderRadius: "50%",
|
|
44
|
-
backgroundColor:
|
|
44
|
+
backgroundColor:
|
|
45
|
+
"color-mix(in srgb, #22c55e 14%, var(--ou-surface-primary, #ffffff))",
|
|
45
46
|
display: "flex",
|
|
46
47
|
alignItems: "center",
|
|
47
48
|
justifyContent: "center",
|
|
@@ -65,13 +66,18 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
65
66
|
style={{
|
|
66
67
|
fontSize: "14px",
|
|
67
68
|
fontWeight: 600,
|
|
68
|
-
color: "#111827",
|
|
69
|
+
color: "var(--ou-text-primary, #111827)",
|
|
69
70
|
marginBottom: "4px",
|
|
70
71
|
}}
|
|
71
72
|
>
|
|
72
73
|
No incidents
|
|
73
74
|
</div>
|
|
74
|
-
<div
|
|
75
|
+
<div
|
|
76
|
+
style={{
|
|
77
|
+
fontSize: "13px",
|
|
78
|
+
color: "var(--ou-text-muted, #6b7280)",
|
|
79
|
+
}}
|
|
80
|
+
>
|
|
75
81
|
No incidents were reported on this day.
|
|
76
82
|
</div>
|
|
77
83
|
</div>
|
|
@@ -91,20 +97,20 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
91
97
|
: undefined
|
|
92
98
|
}
|
|
93
99
|
style={{
|
|
94
|
-
border: "1px solid #e5e7eb",
|
|
100
|
+
border: "1px solid var(--ou-border-default, #e5e7eb)",
|
|
95
101
|
borderRadius: "10px",
|
|
96
102
|
padding: "14px 16px",
|
|
97
103
|
marginBottom: "10px",
|
|
98
104
|
cursor: isClickable ? "pointer" : "default",
|
|
99
105
|
transition: "all 0.15s ease",
|
|
100
|
-
backgroundColor: "#ffffff",
|
|
106
|
+
backgroundColor: "var(--ou-surface-primary, #ffffff)",
|
|
101
107
|
}}
|
|
102
108
|
onMouseEnter={(e: React.MouseEvent<HTMLDivElement>) => {
|
|
103
109
|
if (isClickable) {
|
|
104
110
|
(e.currentTarget as HTMLDivElement).style.backgroundColor =
|
|
105
|
-
"#f9fafb";
|
|
111
|
+
"var(--ou-surface-secondary, #f9fafb)";
|
|
106
112
|
(e.currentTarget as HTMLDivElement).style.borderColor =
|
|
107
|
-
"#d1d5db";
|
|
113
|
+
"var(--ou-border-strong, #d1d5db)";
|
|
108
114
|
(e.currentTarget as HTMLDivElement).style.boxShadow =
|
|
109
115
|
"0 1px 3px rgba(0,0,0,0.06)";
|
|
110
116
|
}
|
|
@@ -112,9 +118,9 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
112
118
|
onMouseLeave={(e: React.MouseEvent<HTMLDivElement>) => {
|
|
113
119
|
if (isClickable) {
|
|
114
120
|
(e.currentTarget as HTMLDivElement).style.backgroundColor =
|
|
115
|
-
"#ffffff";
|
|
121
|
+
"var(--ou-surface-primary, #ffffff)";
|
|
116
122
|
(e.currentTarget as HTMLDivElement).style.borderColor =
|
|
117
|
-
"#e5e7eb";
|
|
123
|
+
"var(--ou-border-default, #e5e7eb)";
|
|
118
124
|
(e.currentTarget as HTMLDivElement).style.boxShadow = "none";
|
|
119
125
|
}
|
|
120
126
|
}}
|
|
@@ -132,7 +138,9 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
132
138
|
style={{
|
|
133
139
|
fontSize: "14px",
|
|
134
140
|
fontWeight: 600,
|
|
135
|
-
color: isClickable
|
|
141
|
+
color: isClickable
|
|
142
|
+
? "var(--ou-link, #2563eb)"
|
|
143
|
+
: "var(--ou-text-primary, #111827)",
|
|
136
144
|
lineHeight: "1.4",
|
|
137
145
|
marginBottom: "4px",
|
|
138
146
|
}}
|
|
@@ -142,7 +150,7 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
142
150
|
<div
|
|
143
151
|
style={{
|
|
144
152
|
fontSize: "12px",
|
|
145
|
-
color: "#6b7280",
|
|
153
|
+
color: "var(--ou-text-muted, #6b7280)",
|
|
146
154
|
}}
|
|
147
155
|
>
|
|
148
156
|
Declared{" "}
|
|
@@ -162,7 +170,7 @@ const UptimeBarDayModal: FunctionComponent<ComponentProps> = (
|
|
|
162
170
|
>
|
|
163
171
|
<path
|
|
164
172
|
d="M6 3l5 5-5 5"
|
|
165
|
-
stroke="#9ca3af"
|
|
173
|
+
stroke="var(--ou-text-subtle, #9ca3af)"
|
|
166
174
|
strokeWidth="1.5"
|
|
167
175
|
strokeLinecap="round"
|
|
168
176
|
strokeLinejoin="round"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gray500 } from "../../../Types/BrandColors";
|
|
2
2
|
import Color from "../../../Types/Color";
|
|
3
3
|
import Icon, { SizeProp, ThickProp } from "../Icon/Icon";
|
|
4
4
|
import IconProp from "../../../Types/Icon/IconProp";
|
|
@@ -26,22 +26,32 @@ export interface ComponentProps {
|
|
|
26
26
|
const Pill: FunctionComponent<ComponentProps> = (
|
|
27
27
|
props: ComponentProps,
|
|
28
28
|
): ReactElement => {
|
|
29
|
+
const color: Color = props.color || Gray500;
|
|
30
|
+
const backgroundColor: string = color.toString();
|
|
31
|
+
|
|
29
32
|
if (props.isMinimal) {
|
|
30
33
|
return (
|
|
31
|
-
<span
|
|
34
|
+
<span
|
|
35
|
+
className="relative inline-flex items-center rounded-full border px-3 py-0.5 text-sm"
|
|
36
|
+
style={{
|
|
37
|
+
borderColor: "var(--ou-border-strong, #d1d5db)",
|
|
38
|
+
}}
|
|
39
|
+
>
|
|
32
40
|
<span className="absolute flex flex-shrink-0 items-center justify-center">
|
|
33
41
|
<span
|
|
34
42
|
className="h-1.5 w-1.5 rounded-full bg-rose-500"
|
|
35
43
|
style={{
|
|
36
|
-
backgroundColor:
|
|
37
|
-
props.style?.backgroundColor || props.color
|
|
38
|
-
? props.color.toString()
|
|
39
|
-
: Black.toString(),
|
|
44
|
+
backgroundColor: backgroundColor,
|
|
40
45
|
}}
|
|
41
46
|
aria-hidden="true"
|
|
42
47
|
></span>
|
|
43
48
|
</span>
|
|
44
|
-
<span
|
|
49
|
+
<span
|
|
50
|
+
className="ml-3.5 font-medium"
|
|
51
|
+
style={{ color: "var(--ou-text-primary, #111827)" }}
|
|
52
|
+
>
|
|
53
|
+
{props.text}
|
|
54
|
+
</span>
|
|
45
55
|
</span>
|
|
46
56
|
);
|
|
47
57
|
}
|
|
@@ -50,18 +60,16 @@ const Pill: FunctionComponent<ComponentProps> = (
|
|
|
50
60
|
return (
|
|
51
61
|
<span
|
|
52
62
|
data-testid="pill"
|
|
53
|
-
className="inline-flex items-center rounded-full p-1 pl-3 pr-3"
|
|
63
|
+
className="inline-flex items-center rounded-full border p-1 pl-3 pr-3"
|
|
54
64
|
style={{
|
|
55
65
|
// https://stackoverflow.com/questions/3942878/how-to-decide-font-color-in-white-or-black-depending-on-background-color
|
|
56
66
|
|
|
57
67
|
color:
|
|
58
|
-
props.style?.color || Color.shouldUseDarkText(
|
|
68
|
+
props.style?.color || Color.shouldUseDarkText(color)
|
|
59
69
|
? "#000000"
|
|
60
70
|
: "#ffffff",
|
|
61
|
-
backgroundColor:
|
|
62
|
-
|
|
63
|
-
? props.color.toString()
|
|
64
|
-
: Black.toString(),
|
|
71
|
+
backgroundColor: backgroundColor,
|
|
72
|
+
borderColor: "var(--ou-border-strong, #d1d5db)",
|
|
65
73
|
fontSize: props.size ? props.size.toString() : PillSize.Normal,
|
|
66
74
|
...props.style,
|
|
67
75
|
}}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Black } from "../../../Types/BrandColors";
|
|
2
1
|
import Color from "../../../Types/Color";
|
|
3
2
|
import React, { CSSProperties, FunctionComponent, ReactElement } from "react";
|
|
4
3
|
|
|
@@ -14,7 +13,7 @@ const Statusbubble: FunctionComponent<ComponentProps> = (
|
|
|
14
13
|
): ReactElement => {
|
|
15
14
|
const backgroundColor: string = props.color
|
|
16
15
|
? props.color.toString()
|
|
17
|
-
:
|
|
16
|
+
: "var(--ou-text-subtle, #9ca3af)";
|
|
18
17
|
|
|
19
18
|
return (
|
|
20
19
|
<div
|
|
@@ -37,6 +36,7 @@ const Statusbubble: FunctionComponent<ComponentProps> = (
|
|
|
37
36
|
className="relative inline-flex rounded-full h-3.5 w-3.5"
|
|
38
37
|
style={{
|
|
39
38
|
backgroundColor: backgroundColor,
|
|
39
|
+
boxShadow: "0 0 0 1px var(--ou-border-strong, #d1d5db)",
|
|
40
40
|
}}
|
|
41
41
|
></span>
|
|
42
42
|
</span>
|
|
@@ -44,7 +44,7 @@ const Statusbubble: FunctionComponent<ComponentProps> = (
|
|
|
44
44
|
<div
|
|
45
45
|
className="text-sm font-medium"
|
|
46
46
|
style={{
|
|
47
|
-
color:
|
|
47
|
+
color: "var(--ou-text-secondary, #4b5563)",
|
|
48
48
|
}}
|
|
49
49
|
>
|
|
50
50
|
{props.text}
|
|
@@ -45,8 +45,13 @@ export interface TelemetryViewerProps<T> {
|
|
|
45
45
|
searchAttributeSuggestions?: Array<string> | undefined;
|
|
46
46
|
searchValueSuggestions?: Record<string, Array<string>> | undefined;
|
|
47
47
|
searchFieldAliasMap?: Record<string, string> | undefined;
|
|
48
|
+
/*
|
|
49
|
+
* Return `false` when the field is filtered via the raw search string
|
|
50
|
+
* rather than a chip — the search bar then keeps the token in the input
|
|
51
|
+
* and submits the search instead of clearing the token.
|
|
52
|
+
*/
|
|
48
53
|
onSearchFieldValueSelect?:
|
|
49
|
-
| ((fieldKey: string, value: string) => void)
|
|
54
|
+
| ((fieldKey: string, value: string) => boolean | void)
|
|
50
55
|
| undefined;
|
|
51
56
|
searchHelpRows?: Array<SearchHelpRow> | undefined;
|
|
52
57
|
searchHelpCombinedExample?: string | undefined;
|
|
@@ -147,6 +152,7 @@ function TelemetryViewerInner<T>(props: TelemetryViewerProps<T>): ReactElement {
|
|
|
147
152
|
helpCombinedExample={props.searchHelpCombinedExample}
|
|
148
153
|
isAttributesLoading={props.searchAttributesLoading}
|
|
149
154
|
isValuesLoading={props.searchValuesLoading}
|
|
155
|
+
isLoading={props.isLoading}
|
|
150
156
|
/>
|
|
151
157
|
</div>
|
|
152
158
|
|
|
@@ -242,15 +242,21 @@ const TelemetryHistogram: FunctionComponent<TelemetryHistogramProps> = (
|
|
|
242
242
|
<XAxis
|
|
243
243
|
dataKey="time"
|
|
244
244
|
tickFormatter={formatTickTime}
|
|
245
|
-
tick={{
|
|
246
|
-
|
|
245
|
+
tick={{
|
|
246
|
+
fontSize: 10,
|
|
247
|
+
fill: "var(--ou-chart-tick, #9ca3af)",
|
|
248
|
+
}}
|
|
249
|
+
axisLine={{ stroke: "var(--ou-chart-grid, #e5e7eb)" }}
|
|
247
250
|
tickLine={false}
|
|
248
251
|
minTickGap={40}
|
|
249
252
|
dy={4}
|
|
250
253
|
interval="preserveStartEnd"
|
|
251
254
|
/>
|
|
252
255
|
<YAxis
|
|
253
|
-
tick={{
|
|
256
|
+
tick={{
|
|
257
|
+
fontSize: 10,
|
|
258
|
+
fill: "var(--ou-chart-tick, #9ca3af)",
|
|
259
|
+
}}
|
|
254
260
|
axisLine={false}
|
|
255
261
|
tickLine={false}
|
|
256
262
|
width={48}
|
|
@@ -31,8 +31,16 @@ export interface TelemetrySearchBarProps {
|
|
|
31
31
|
attributeSuggestions?: Array<string> | undefined;
|
|
32
32
|
// field → allowed value completions (resolved field keys).
|
|
33
33
|
valueSuggestions?: Record<string, Array<string>> | undefined;
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
/*
|
|
35
|
+
* Called when the user picks a concrete field:value chip from the dropdown.
|
|
36
|
+
* Return `false` when the field is NOT consumed as a chip (the parent
|
|
37
|
+
* filters it through the raw search string instead, e.g. `name:` in the
|
|
38
|
+
* metrics viewer) — the bar then keeps the token in the input and submits
|
|
39
|
+
* the search as-is rather than clearing the token.
|
|
40
|
+
*/
|
|
41
|
+
onFieldValueSelect?:
|
|
42
|
+
| ((fieldKey: string, value: string) => boolean | void)
|
|
43
|
+
| undefined;
|
|
36
44
|
// User-facing alias → backing field key (e.g. "service" -> "serviceId").
|
|
37
45
|
fieldAliasMap?: Record<string, string> | undefined;
|
|
38
46
|
placeholder?: string | undefined;
|
|
@@ -43,6 +51,8 @@ export interface TelemetrySearchBarProps {
|
|
|
43
51
|
isAttributesLoading?: boolean | undefined;
|
|
44
52
|
// Loading state for `@attribute:value` autocomplete (per-key value fetch).
|
|
45
53
|
isValuesLoading?: boolean | undefined;
|
|
54
|
+
// Loading state for the telemetry results shown by the parent viewer.
|
|
55
|
+
isLoading?: boolean | undefined;
|
|
46
56
|
}
|
|
47
57
|
|
|
48
58
|
export interface TelemetrySearchBarRef {
|
|
@@ -198,7 +208,24 @@ const TelemetrySearchBar: React.ForwardRefExoticComponent<
|
|
|
198
208
|
? filteredSuggestions[0]!
|
|
199
209
|
: partialValue);
|
|
200
210
|
|
|
201
|
-
props.onFieldValueSelect(
|
|
211
|
+
const consumed: boolean | void = props.onFieldValueSelect(
|
|
212
|
+
fieldPrefix,
|
|
213
|
+
resolvedMatch,
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
if (consumed === false) {
|
|
217
|
+
/*
|
|
218
|
+
* The parent filters this field through the raw search
|
|
219
|
+
* string. Keep the token in the input and submit — clearing
|
|
220
|
+
* it here would erase the filter the user just typed.
|
|
221
|
+
*/
|
|
222
|
+
props.onSubmit();
|
|
223
|
+
setShowSuggestions(false);
|
|
224
|
+
setShowHelp(false);
|
|
225
|
+
e.preventDefault();
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
|
|
202
229
|
const parts: Array<string> = props.value.split(/\s+/);
|
|
203
230
|
parts.pop();
|
|
204
231
|
const remaining: string = parts.join(" ");
|
|
@@ -256,12 +283,32 @@ const TelemetrySearchBar: React.ForwardRefExoticComponent<
|
|
|
256
283
|
const applySuggestion: (suggestion: string) => void = useCallback(
|
|
257
284
|
(suggestion: string): void => {
|
|
258
285
|
if (isValueMode) {
|
|
286
|
+
let consumed: boolean | void = undefined;
|
|
259
287
|
if (props.onFieldValueSelect) {
|
|
260
|
-
props.onFieldValueSelect(fieldPrefix, suggestion);
|
|
288
|
+
consumed = props.onFieldValueSelect(fieldPrefix, suggestion);
|
|
261
289
|
}
|
|
262
290
|
|
|
263
291
|
const parts: Array<string> = props.value.split(/\s+/);
|
|
264
292
|
parts.pop();
|
|
293
|
+
|
|
294
|
+
if (consumed === false) {
|
|
295
|
+
/*
|
|
296
|
+
* Not consumed as a chip — the parent filters this field via
|
|
297
|
+
* the raw search string, so complete the token in place
|
|
298
|
+
* instead of clearing it.
|
|
299
|
+
*/
|
|
300
|
+
const completedToken: string = `${hasAtPrefix ? "@" : ""}${fieldPrefix}:${suggestion}`;
|
|
301
|
+
props.onChange(
|
|
302
|
+
parts.length > 0
|
|
303
|
+
? `${parts.join(" ")} ${completedToken}`
|
|
304
|
+
: completedToken,
|
|
305
|
+
);
|
|
306
|
+
setShowSuggestions(false);
|
|
307
|
+
setShowHelp(false);
|
|
308
|
+
inputRef.current?.focus();
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
|
|
265
312
|
const remaining: string = parts.join(" ");
|
|
266
313
|
props.onChange(remaining ? remaining + " " : "");
|
|
267
314
|
setShowSuggestions(false);
|
|
@@ -337,6 +384,7 @@ const TelemetrySearchBar: React.ForwardRefExoticComponent<
|
|
|
337
384
|
? "border-indigo-400 ring-2 ring-indigo-100"
|
|
338
385
|
: "border-gray-200 hover:border-gray-300"
|
|
339
386
|
}`}
|
|
387
|
+
aria-busy={props.isLoading || false}
|
|
340
388
|
>
|
|
341
389
|
<Icon
|
|
342
390
|
icon={IconProp.Search}
|
|
@@ -367,6 +415,16 @@ const TelemetrySearchBar: React.ForwardRefExoticComponent<
|
|
|
367
415
|
spellCheck={false}
|
|
368
416
|
autoComplete="off"
|
|
369
417
|
/>
|
|
418
|
+
{props.isLoading && (
|
|
419
|
+
<div
|
|
420
|
+
className="flex-none text-indigo-500"
|
|
421
|
+
role="status"
|
|
422
|
+
aria-label="Loading results"
|
|
423
|
+
title="Loading results..."
|
|
424
|
+
>
|
|
425
|
+
<Icon icon={IconProp.Spinner} className="h-4 w-4 animate-spin" />
|
|
426
|
+
</div>
|
|
427
|
+
)}
|
|
370
428
|
{props.value.length > 0 && (
|
|
371
429
|
<button
|
|
372
430
|
type="button"
|
|
@@ -36,8 +36,9 @@ const getCategoryColors: (
|
|
|
36
36
|
): CategoryColorScheme => {
|
|
37
37
|
if (componentType === ComponentType.Trigger) {
|
|
38
38
|
return {
|
|
39
|
-
bg: "#
|
|
40
|
-
border:
|
|
39
|
+
bg: "color-mix(in srgb, #f59e0b 12%, var(--ou-surface-primary, #ffffff))",
|
|
40
|
+
border:
|
|
41
|
+
"color-mix(in srgb, #f59e0b 38%, var(--ou-border-default, #e5e7eb))",
|
|
41
42
|
headerBg: "linear-gradient(135deg, #f59e0b, #d97706)",
|
|
42
43
|
headerText: "#ffffff",
|
|
43
44
|
iconColor: "#ffffff",
|
|
@@ -52,8 +53,9 @@ const getCategoryColors: (
|
|
|
52
53
|
|
|
53
54
|
if (lowerCategory.includes("condition") || lowerCategory.includes("logic")) {
|
|
54
55
|
return {
|
|
55
|
-
bg: "#
|
|
56
|
-
border:
|
|
56
|
+
bg: "color-mix(in srgb, #a855f7 12%, var(--ou-surface-primary, #ffffff))",
|
|
57
|
+
border:
|
|
58
|
+
"color-mix(in srgb, #a855f7 38%, var(--ou-border-default, #e5e7eb))",
|
|
57
59
|
headerBg: "linear-gradient(135deg, #a855f7, #7c3aed)",
|
|
58
60
|
headerText: "#ffffff",
|
|
59
61
|
iconColor: "#ffffff",
|
|
@@ -66,8 +68,9 @@ const getCategoryColors: (
|
|
|
66
68
|
|
|
67
69
|
if (lowerCategory.includes("api") || lowerCategory.includes("webhook")) {
|
|
68
70
|
return {
|
|
69
|
-
bg: "#
|
|
70
|
-
border:
|
|
71
|
+
bg: "color-mix(in srgb, #3b82f6 12%, var(--ou-surface-primary, #ffffff))",
|
|
72
|
+
border:
|
|
73
|
+
"color-mix(in srgb, #3b82f6 38%, var(--ou-border-default, #e5e7eb))",
|
|
71
74
|
headerBg: "linear-gradient(135deg, #3b82f6, #2563eb)",
|
|
72
75
|
headerText: "#ffffff",
|
|
73
76
|
iconColor: "#ffffff",
|
|
@@ -87,8 +90,9 @@ const getCategoryColors: (
|
|
|
87
90
|
lowerCategory.includes("notification")
|
|
88
91
|
) {
|
|
89
92
|
return {
|
|
90
|
-
bg: "#
|
|
91
|
-
border:
|
|
93
|
+
bg: "color-mix(in srgb, #10b981 12%, var(--ou-surface-primary, #ffffff))",
|
|
94
|
+
border:
|
|
95
|
+
"color-mix(in srgb, #10b981 38%, var(--ou-border-default, #e5e7eb))",
|
|
92
96
|
headerBg: "linear-gradient(135deg, #10b981, #059669)",
|
|
93
97
|
headerText: "#ffffff",
|
|
94
98
|
iconColor: "#ffffff",
|
|
@@ -105,8 +109,9 @@ const getCategoryColors: (
|
|
|
105
109
|
lowerCategory.includes("custom")
|
|
106
110
|
) {
|
|
107
111
|
return {
|
|
108
|
-
bg: "#
|
|
109
|
-
border:
|
|
112
|
+
bg: "color-mix(in srgb, #ef4444 12%, var(--ou-surface-primary, #ffffff))",
|
|
113
|
+
border:
|
|
114
|
+
"color-mix(in srgb, #ef4444 38%, var(--ou-border-default, #e5e7eb))",
|
|
110
115
|
headerBg: "linear-gradient(135deg, #ef4444, #dc2626)",
|
|
111
116
|
headerText: "#ffffff",
|
|
112
117
|
iconColor: "#ffffff",
|
|
@@ -119,8 +124,9 @@ const getCategoryColors: (
|
|
|
119
124
|
|
|
120
125
|
if (lowerCategory.includes("json") || lowerCategory.includes("util")) {
|
|
121
126
|
return {
|
|
122
|
-
bg: "#
|
|
123
|
-
border:
|
|
127
|
+
bg: "color-mix(in srgb, #22c55e 12%, var(--ou-surface-primary, #ffffff))",
|
|
128
|
+
border:
|
|
129
|
+
"color-mix(in srgb, #22c55e 38%, var(--ou-border-default, #e5e7eb))",
|
|
124
130
|
headerBg: "linear-gradient(135deg, #22c55e, #16a34a)",
|
|
125
131
|
headerText: "#ffffff",
|
|
126
132
|
iconColor: "#ffffff",
|
|
@@ -137,8 +143,9 @@ const getCategoryColors: (
|
|
|
137
143
|
lowerCategory.includes("timer")
|
|
138
144
|
) {
|
|
139
145
|
return {
|
|
140
|
-
bg: "#
|
|
141
|
-
border:
|
|
146
|
+
bg: "color-mix(in srgb, #f97316 12%, var(--ou-surface-primary, #ffffff))",
|
|
147
|
+
border:
|
|
148
|
+
"color-mix(in srgb, #f97316 38%, var(--ou-border-default, #e5e7eb))",
|
|
142
149
|
headerBg: "linear-gradient(135deg, #f97316, #ea580c)",
|
|
143
150
|
headerText: "#ffffff",
|
|
144
151
|
iconColor: "#ffffff",
|
|
@@ -151,8 +158,8 @@ const getCategoryColors: (
|
|
|
151
158
|
|
|
152
159
|
// Default / database models
|
|
153
160
|
return {
|
|
154
|
-
bg: "#f8fafc",
|
|
155
|
-
border: "#e2e8f0",
|
|
161
|
+
bg: "var(--ou-surface-secondary, #f8fafc)",
|
|
162
|
+
border: "var(--ou-border-default, #e2e8f0)",
|
|
156
163
|
headerBg: "linear-gradient(135deg, #6366f1, #4f46e5)",
|
|
157
164
|
headerText: "#ffffff",
|
|
158
165
|
iconColor: "#ffffff",
|
|
@@ -223,8 +230,14 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
223
230
|
style={{
|
|
224
231
|
width: "16rem",
|
|
225
232
|
borderRadius: "12px",
|
|
226
|
-
border: `2px dashed ${
|
|
227
|
-
|
|
233
|
+
border: `2px dashed ${
|
|
234
|
+
isHovering
|
|
235
|
+
? "var(--ou-text-subtle, #94a3b8)"
|
|
236
|
+
: "var(--ou-border-strong, #cbd5e1)"
|
|
237
|
+
}`,
|
|
238
|
+
backgroundColor: isHovering
|
|
239
|
+
? "var(--ou-surface-secondary, #f8fafc)"
|
|
240
|
+
: "var(--ou-surface-primary, #ffffff)",
|
|
228
241
|
padding: "1.5rem",
|
|
229
242
|
display: "flex",
|
|
230
243
|
flexDirection: "column",
|
|
@@ -245,7 +258,9 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
245
258
|
width: "2.5rem",
|
|
246
259
|
height: "2.5rem",
|
|
247
260
|
borderRadius: "50%",
|
|
248
|
-
backgroundColor: isHovering
|
|
261
|
+
backgroundColor: isHovering
|
|
262
|
+
? "var(--ou-border-default, #e2e8f0)"
|
|
263
|
+
: "var(--ou-surface-tertiary, #f1f5f9)",
|
|
249
264
|
display: "flex",
|
|
250
265
|
alignItems: "center",
|
|
251
266
|
justifyContent: "center",
|
|
@@ -255,7 +270,9 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
255
270
|
<Icon
|
|
256
271
|
icon={IconProp.Add}
|
|
257
272
|
style={{
|
|
258
|
-
color: isHovering
|
|
273
|
+
color: isHovering
|
|
274
|
+
? "var(--ou-text-muted, #64748b)"
|
|
275
|
+
: "var(--ou-text-subtle, #94a3b8)",
|
|
259
276
|
width: "1.25rem",
|
|
260
277
|
height: "1.25rem",
|
|
261
278
|
transition: "all 0.2s ease",
|
|
@@ -264,7 +281,9 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
264
281
|
</div>
|
|
265
282
|
<p
|
|
266
283
|
style={{
|
|
267
|
-
color: isHovering
|
|
284
|
+
color: isHovering
|
|
285
|
+
? "var(--ou-text-muted, #64748b)"
|
|
286
|
+
: "var(--ou-text-subtle, #94a3b8)",
|
|
268
287
|
fontSize: "0.8125rem",
|
|
269
288
|
fontWeight: 500,
|
|
270
289
|
textAlign: "center",
|
|
@@ -302,13 +321,13 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
302
321
|
? colors.selectedBorder
|
|
303
322
|
: colors.border
|
|
304
323
|
}`,
|
|
305
|
-
backgroundColor: "#ffffff",
|
|
324
|
+
backgroundColor: "var(--ou-surface-primary, #ffffff)",
|
|
306
325
|
overflow: "visible",
|
|
307
326
|
boxShadow: props.selected
|
|
308
|
-
? colors.selectedShadow
|
|
327
|
+
? `var(--ou-card-shadow-selected, ${colors.selectedShadow})`
|
|
309
328
|
: isHovering
|
|
310
|
-
?
|
|
311
|
-
:
|
|
329
|
+
? "var(--ou-card-shadow-hover, 0 8px 25px -5px rgba(0, 0, 0, 0.1), 0 4px 10px -6px rgba(0, 0, 0, 0.05))"
|
|
330
|
+
: "var(--ou-card-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.07), 0 1px 2px -1px rgba(0, 0, 0, 0.05))",
|
|
312
331
|
transition: "all 0.2s ease",
|
|
313
332
|
transform: isHovering ? "translateY(-1px)" : "none",
|
|
314
333
|
position: "relative",
|
|
@@ -364,11 +383,12 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
364
383
|
width: "22px",
|
|
365
384
|
height: "22px",
|
|
366
385
|
borderRadius: "50%",
|
|
367
|
-
backgroundColor:
|
|
386
|
+
backgroundColor:
|
|
387
|
+
"color-mix(in srgb, #ef4444 15%, var(--ou-surface-primary, #ffffff))",
|
|
368
388
|
display: "flex",
|
|
369
389
|
alignItems: "center",
|
|
370
390
|
justifyContent: "center",
|
|
371
|
-
border: "1px solid
|
|
391
|
+
border: "1px solid rgb(248 113 113 / 45%)",
|
|
372
392
|
}}
|
|
373
393
|
>
|
|
374
394
|
<Icon
|
|
@@ -451,8 +471,8 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
451
471
|
style={{
|
|
452
472
|
display: "inline-flex",
|
|
453
473
|
alignItems: "center",
|
|
454
|
-
backgroundColor: "#ffffff",
|
|
455
|
-
border: "1px solid #e2e8f0",
|
|
474
|
+
backgroundColor: "var(--ou-surface-primary, #ffffff)",
|
|
475
|
+
border: "1px solid var(--ou-border-default, #e2e8f0)",
|
|
456
476
|
borderRadius: "6px",
|
|
457
477
|
padding: "0.125rem 0.5rem",
|
|
458
478
|
marginBottom: "0.5rem",
|
|
@@ -460,7 +480,7 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
460
480
|
>
|
|
461
481
|
<span
|
|
462
482
|
style={{
|
|
463
|
-
color: "#64748b",
|
|
483
|
+
color: "var(--ou-text-muted, #64748b)",
|
|
464
484
|
fontSize: "0.6875rem",
|
|
465
485
|
fontWeight: 500,
|
|
466
486
|
fontFamily:
|
|
@@ -475,7 +495,7 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
475
495
|
{/* Description */}
|
|
476
496
|
<p
|
|
477
497
|
style={{
|
|
478
|
-
color: "#64748b",
|
|
498
|
+
color: "var(--ou-text-muted, #64748b)",
|
|
479
499
|
fontSize: "0.75rem",
|
|
480
500
|
lineHeight: "1.125rem",
|
|
481
501
|
margin: 0,
|
|
@@ -504,7 +524,7 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
504
524
|
props.data.metadata.outPorts.length === 1
|
|
505
525
|
? "center"
|
|
506
526
|
: "space-between",
|
|
507
|
-
backgroundColor: "#ffffff",
|
|
527
|
+
backgroundColor: "var(--ou-surface-primary, #ffffff)",
|
|
508
528
|
borderRadius: "0 0 10px 10px",
|
|
509
529
|
}}
|
|
510
530
|
>
|
|
@@ -513,7 +533,7 @@ const Node: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
513
533
|
<Tooltip key={i} text={port.description || ""}>
|
|
514
534
|
<span
|
|
515
535
|
style={{
|
|
516
|
-
color: "#94a3b8",
|
|
536
|
+
color: "var(--ou-text-subtle, #94a3b8)",
|
|
517
537
|
fontSize: "0.6875rem",
|
|
518
538
|
fontWeight: 500,
|
|
519
539
|
}}
|
|
@@ -34,8 +34,8 @@ const ComponentPortViewer: FunctionComponent<ComponentProps> = (
|
|
|
34
34
|
gap: "0.625rem",
|
|
35
35
|
padding: "0.5rem 0.75rem",
|
|
36
36
|
borderRadius: "8px",
|
|
37
|
-
backgroundColor: "#f8fafc",
|
|
38
|
-
border: "1px solid #f1f5f9",
|
|
37
|
+
backgroundColor: "var(--ou-surface-secondary, #f8fafc)",
|
|
38
|
+
border: "1px solid var(--ou-border-subtle, #f1f5f9)",
|
|
39
39
|
marginBottom: "0.375rem",
|
|
40
40
|
}}
|
|
41
41
|
>
|
|
@@ -44,7 +44,7 @@ const ComponentPortViewer: FunctionComponent<ComponentProps> = (
|
|
|
44
44
|
width: "8px",
|
|
45
45
|
height: "8px",
|
|
46
46
|
borderRadius: "50%",
|
|
47
|
-
backgroundColor: "#94a3b8",
|
|
47
|
+
backgroundColor: "var(--ou-text-subtle, #94a3b8)",
|
|
48
48
|
flexShrink: 0,
|
|
49
49
|
}}
|
|
50
50
|
/>
|
|
@@ -53,7 +53,7 @@ const ComponentPortViewer: FunctionComponent<ComponentProps> = (
|
|
|
53
53
|
style={{
|
|
54
54
|
fontSize: "0.8125rem",
|
|
55
55
|
fontWeight: 500,
|
|
56
|
-
color: "#334155",
|
|
56
|
+
color: "var(--ou-text-secondary, #334155)",
|
|
57
57
|
margin: 0,
|
|
58
58
|
lineHeight: "1.25rem",
|
|
59
59
|
}}
|
|
@@ -61,7 +61,7 @@ const ComponentPortViewer: FunctionComponent<ComponentProps> = (
|
|
|
61
61
|
{port.title}
|
|
62
62
|
<span
|
|
63
63
|
style={{
|
|
64
|
-
color: "#94a3b8",
|
|
64
|
+
color: "var(--ou-text-subtle, #94a3b8)",
|
|
65
65
|
fontWeight: 400,
|
|
66
66
|
fontSize: "0.6875rem",
|
|
67
67
|
marginLeft: "0.375rem",
|
|
@@ -76,7 +76,7 @@ const ComponentPortViewer: FunctionComponent<ComponentProps> = (
|
|
|
76
76
|
<p
|
|
77
77
|
style={{
|
|
78
78
|
fontSize: "0.75rem",
|
|
79
|
-
color: "#94a3b8",
|
|
79
|
+
color: "var(--ou-text-subtle, #94a3b8)",
|
|
80
80
|
margin: 0,
|
|
81
81
|
lineHeight: "1rem",
|
|
82
82
|
}}
|