@oneuptime/common 11.4.0 → 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/Server/API/AIAgentTaskAPI.ts +10 -24
- package/Server/API/TelemetryAPI.ts +4 -3
- package/Server/Services/AIAgentTaskService.ts +62 -0
- package/Server/Services/AnalyticsDatabaseService.ts +27 -0
- package/Server/Services/LogAggregationService.ts +29 -11
- package/Server/Services/MetricService.ts +603 -13
- package/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.ts +1 -1
- package/Server/Utils/AI/Sentinel/README.md +10 -0
- package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +44 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +108 -2
- 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/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/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/Probe/ProbeMonitorResponse.ts +14 -0
- 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/Server/API/AIAgentTaskAPI.js +8 -23
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.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/AnalyticsDatabaseService.js +19 -0
- package/build/dist/Server/Services/AnalyticsDatabaseService.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/Sentinel/IncidentInvestigationRunner.js +1 -1
- 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/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/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
|
@@ -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
|
}}
|
|
@@ -37,8 +37,8 @@ const ComponentReturnValueViewer: FunctionComponent<ComponentProps> = (
|
|
|
37
37
|
gap: "0.625rem",
|
|
38
38
|
padding: "0.5rem 0.75rem",
|
|
39
39
|
borderRadius: "8px",
|
|
40
|
-
backgroundColor: "#f8fafc",
|
|
41
|
-
border: "1px solid #f1f5f9",
|
|
40
|
+
backgroundColor: "var(--ou-surface-secondary, #f8fafc)",
|
|
41
|
+
border: "1px solid var(--ou-border-subtle, #f1f5f9)",
|
|
42
42
|
marginBottom: "0.375rem",
|
|
43
43
|
}}
|
|
44
44
|
>
|
|
@@ -47,7 +47,7 @@ const ComponentReturnValueViewer: FunctionComponent<ComponentProps> = (
|
|
|
47
47
|
style={{
|
|
48
48
|
fontSize: "0.8125rem",
|
|
49
49
|
fontWeight: 500,
|
|
50
|
-
color: "#334155",
|
|
50
|
+
color: "var(--ou-text-secondary, #334155)",
|
|
51
51
|
margin: 0,
|
|
52
52
|
lineHeight: "1.25rem",
|
|
53
53
|
}}
|
|
@@ -55,7 +55,7 @@ const ComponentReturnValueViewer: FunctionComponent<ComponentProps> = (
|
|
|
55
55
|
{returnValue.name}
|
|
56
56
|
<span
|
|
57
57
|
style={{
|
|
58
|
-
color: "#94a3b8",
|
|
58
|
+
color: "var(--ou-text-subtle, #94a3b8)",
|
|
59
59
|
fontWeight: 400,
|
|
60
60
|
fontSize: "0.6875rem",
|
|
61
61
|
marginLeft: "0.375rem",
|
|
@@ -70,7 +70,7 @@ const ComponentReturnValueViewer: FunctionComponent<ComponentProps> = (
|
|
|
70
70
|
<p
|
|
71
71
|
style={{
|
|
72
72
|
fontSize: "0.75rem",
|
|
73
|
-
color: "#94a3b8",
|
|
73
|
+
color: "var(--ou-text-subtle, #94a3b8)",
|
|
74
74
|
margin: 0,
|
|
75
75
|
lineHeight: "1rem",
|
|
76
76
|
}}
|
|
@@ -83,12 +83,12 @@ const ComponentReturnValueViewer: FunctionComponent<ComponentProps> = (
|
|
|
83
83
|
style={{
|
|
84
84
|
fontSize: "0.6875rem",
|
|
85
85
|
fontWeight: 500,
|
|
86
|
-
color: "#6366f1",
|
|
87
|
-
backgroundColor: "#eef2ff",
|
|
86
|
+
color: "var(--ou-link, #6366f1)",
|
|
87
|
+
backgroundColor: "var(--ou-accent-soft, #eef2ff)",
|
|
88
88
|
padding: "0.125rem 0.5rem",
|
|
89
89
|
borderRadius: "100px",
|
|
90
90
|
whiteSpace: "nowrap",
|
|
91
|
-
border: "1px solid #e0e7ff",
|
|
91
|
+
border: "1px solid var(--ou-accent-muted, #e0e7ff)",
|
|
92
92
|
}}
|
|
93
93
|
>
|
|
94
94
|
{returnValue.type}
|
|
@@ -404,7 +404,8 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
404
404
|
style={{
|
|
405
405
|
width: "28px",
|
|
406
406
|
height: "28px",
|
|
407
|
-
backgroundColor:
|
|
407
|
+
backgroundColor:
|
|
408
|
+
"var(--ou-surface-tertiary, #f1f5f9)",
|
|
408
409
|
}}
|
|
409
410
|
>
|
|
410
411
|
<Icon
|
|
@@ -443,16 +444,16 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
443
444
|
borderRadius: "10px",
|
|
444
445
|
border: isSelected
|
|
445
446
|
? "2px solid #6366f1"
|
|
446
|
-
: "1px solid #e2e8f0",
|
|
447
|
+
: "1px solid var(--ou-border-default, #e2e8f0)",
|
|
447
448
|
backgroundColor: isSelected
|
|
448
|
-
? "#eef2ff"
|
|
449
|
-
: "#ffffff",
|
|
449
|
+
? "var(--ou-accent-soft, #eef2ff)"
|
|
450
|
+
: "var(--ou-surface-primary, #ffffff)",
|
|
450
451
|
display: "flex",
|
|
451
452
|
alignItems: "flex-start",
|
|
452
453
|
gap: "0.75rem",
|
|
453
454
|
boxShadow: isSelected
|
|
454
455
|
? "0 0 0 3px rgba(99, 102, 241, 0.1)"
|
|
455
|
-
: "0 1px 2px 0 rgba(0, 0, 0, 0.03)",
|
|
456
|
+
: "var(--ou-card-shadow, 0 1px 2px 0 rgba(0, 0, 0, 0.03))",
|
|
456
457
|
}}
|
|
457
458
|
>
|
|
458
459
|
{/* Icon */}
|
|
@@ -463,7 +464,7 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
463
464
|
borderRadius: "8px",
|
|
464
465
|
backgroundColor: isSelected
|
|
465
466
|
? "#6366f1"
|
|
466
|
-
: "#f1f5f9",
|
|
467
|
+
: "var(--ou-surface-tertiary, #f1f5f9)",
|
|
467
468
|
display: "flex",
|
|
468
469
|
alignItems: "center",
|
|
469
470
|
justifyContent: "center",
|
|
@@ -474,7 +475,9 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
474
475
|
<Icon
|
|
475
476
|
icon={componentMetadata.iconProp}
|
|
476
477
|
style={{
|
|
477
|
-
color: isSelected
|
|
478
|
+
color: isSelected
|
|
479
|
+
? "#ffffff"
|
|
480
|
+
: "var(--ou-text-muted, #64748b)",
|
|
478
481
|
width: "1rem",
|
|
479
482
|
height: "1rem",
|
|
480
483
|
}}
|
|
@@ -488,7 +491,9 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
488
491
|
style={{
|
|
489
492
|
fontSize: "0.8125rem",
|
|
490
493
|
fontWeight: 600,
|
|
491
|
-
color: isSelected
|
|
494
|
+
color: isSelected
|
|
495
|
+
? "var(--ou-accent-text, #4338ca)"
|
|
496
|
+
: "var(--ou-text-primary, #1e293b)",
|
|
492
497
|
margin: 0,
|
|
493
498
|
lineHeight: "1.25rem",
|
|
494
499
|
}}
|
|
@@ -521,7 +526,9 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
|
|
|
521
526
|
<p
|
|
522
527
|
style={{
|
|
523
528
|
fontSize: "0.75rem",
|
|
524
|
-
color: isSelected
|
|
529
|
+
color: isSelected
|
|
530
|
+
? "var(--ou-link, #6366f1)"
|
|
531
|
+
: "var(--ou-text-subtle, #94a3b8)",
|
|
525
532
|
margin: 0,
|
|
526
533
|
marginTop: "2px",
|
|
527
534
|
lineHeight: "1rem",
|
|
@@ -71,8 +71,8 @@ const nodeTypes: NodeTypes = {
|
|
|
71
71
|
|
|
72
72
|
const edgeStyle: React.CSSProperties = {
|
|
73
73
|
strokeWidth: "2px",
|
|
74
|
-
stroke: "#94a3b8",
|
|
75
|
-
color: "#94a3b8",
|
|
74
|
+
stroke: "var(--ou-chart-tick, #94a3b8)",
|
|
75
|
+
color: "var(--ou-chart-tick, #94a3b8)",
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
const selectedEdgeStyle: React.CSSProperties = {
|
|
@@ -411,31 +411,33 @@ const Workflow: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
411
411
|
minHeight: "600px",
|
|
412
412
|
borderRadius: "8px",
|
|
413
413
|
overflow: "hidden",
|
|
414
|
-
border: "1px solid #e2e8f0",
|
|
414
|
+
border: "1px solid var(--ou-border-default, #e2e8f0)",
|
|
415
415
|
}}
|
|
416
416
|
>
|
|
417
417
|
<style>
|
|
418
418
|
{`
|
|
419
419
|
.react-flow__minimap {
|
|
420
420
|
border-radius: 8px !important;
|
|
421
|
-
border: 1px solid #e2e8f0 !important;
|
|
421
|
+
border: 1px solid var(--ou-border-default, #e2e8f0) !important;
|
|
422
422
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07) !important;
|
|
423
423
|
overflow: hidden !important;
|
|
424
|
-
background: #ffffff !important;
|
|
424
|
+
background: var(--ou-surface-primary, #ffffff) !important;
|
|
425
425
|
}
|
|
426
426
|
.react-flow__controls {
|
|
427
427
|
border-radius: 8px !important;
|
|
428
|
-
border: 1px solid #e2e8f0 !important;
|
|
428
|
+
border: 1px solid var(--ou-border-default, #e2e8f0) !important;
|
|
429
429
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07) !important;
|
|
430
430
|
overflow: hidden !important;
|
|
431
431
|
}
|
|
432
432
|
.react-flow__controls-button {
|
|
433
|
-
border-bottom: 1px solid #f1f5f9 !important;
|
|
433
|
+
border-bottom: 1px solid var(--ou-border-subtle, #f1f5f9) !important;
|
|
434
|
+
background: var(--ou-surface-primary, #ffffff) !important;
|
|
435
|
+
color: var(--ou-text-secondary, #475569) !important;
|
|
434
436
|
width: 32px !important;
|
|
435
437
|
height: 32px !important;
|
|
436
438
|
}
|
|
437
439
|
.react-flow__controls-button:hover {
|
|
438
|
-
background: #f8fafc !important;
|
|
440
|
+
background: var(--ou-surface-secondary, #f8fafc) !important;
|
|
439
441
|
}
|
|
440
442
|
.react-flow__controls-button svg {
|
|
441
443
|
max-width: 14px !important;
|
|
@@ -507,9 +509,9 @@ const Workflow: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
507
509
|
}
|
|
508
510
|
return "#6366f1";
|
|
509
511
|
}}
|
|
510
|
-
maskColor="rgba(241, 245, 249, 0.7)"
|
|
512
|
+
maskColor="var(--ou-flow-mask, rgba(241, 245, 249, 0.7))"
|
|
511
513
|
style={{
|
|
512
|
-
backgroundColor: "#ffffff",
|
|
514
|
+
backgroundColor: "var(--ou-surface-primary, #ffffff)",
|
|
513
515
|
}}
|
|
514
516
|
/>
|
|
515
517
|
<Controls />
|
|
@@ -517,7 +519,7 @@ const Workflow: FunctionComponent<ComponentProps> = (props: ComponentProps) => {
|
|
|
517
519
|
variant={BackgroundVariant.Dots}
|
|
518
520
|
gap={20}
|
|
519
521
|
size={1}
|
|
520
|
-
color="#cbd5e1"
|
|
522
|
+
color="var(--ou-chart-grid, #cbd5e1)"
|
|
521
523
|
/>
|
|
522
524
|
</ReactFlow>
|
|
523
525
|
|