@d34dman/flowdrop 0.0.42 → 0.0.44
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/README.md +8 -8
- package/dist/api/enhanced-client.d.ts +3 -1
- package/dist/api/enhanced-client.js +35 -5
- package/dist/components/App.svelte +68 -34
- package/dist/components/ConfigForm.svelte +169 -142
- package/dist/components/ConfigForm.svelte.d.ts +4 -2
- package/dist/components/ConfigPanel.svelte +42 -15
- package/dist/components/LogsSidebar.svelte +20 -19
- package/dist/components/Navbar.svelte +150 -80
- package/dist/components/Navbar.svelte.d.ts +8 -0
- package/dist/components/NodeSidebar.svelte +330 -217
- package/dist/components/PipelineStatus.svelte +6 -1
- package/dist/components/ReadOnlyDetails.svelte +14 -14
- package/dist/components/SchemaForm.svelte +49 -30
- package/dist/components/SchemaForm.svelte.d.ts +11 -1
- package/dist/components/SettingsModal.svelte +279 -0
- package/dist/components/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/SettingsPanel.svelte +615 -0
- package/dist/components/SettingsPanel.svelte.d.ts +21 -0
- package/dist/components/ThemeToggle.svelte +186 -0
- package/dist/components/ThemeToggle.svelte.d.ts +14 -0
- package/dist/components/WorkflowEditor.svelte +110 -36
- package/dist/components/form/FormArray.svelte +81 -81
- package/dist/components/form/FormAutocomplete.svelte +1014 -0
- package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
- package/dist/components/form/FormCheckboxGroup.svelte +16 -16
- package/dist/components/form/FormCodeEditor.svelte +26 -26
- package/dist/components/form/FormField.svelte +52 -21
- package/dist/components/form/FormFieldLight.svelte +19 -19
- package/dist/components/form/FormFieldWrapper.svelte +4 -4
- package/dist/components/form/FormMarkdownEditor.svelte +124 -57
- package/dist/components/form/FormNumberField.svelte +13 -13
- package/dist/components/form/FormRangeField.svelte +16 -16
- package/dist/components/form/FormSelect.svelte +15 -15
- package/dist/components/form/FormTemplateEditor.svelte +34 -34
- package/dist/components/form/FormTextField.svelte +13 -13
- package/dist/components/form/FormTextarea.svelte +13 -13
- package/dist/components/form/FormToggle.svelte +8 -8
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +133 -8
- package/dist/components/form/types.js +50 -1
- package/dist/components/interrupt/ChoicePrompt.svelte +45 -38
- package/dist/components/interrupt/ConfirmationPrompt.svelte +35 -35
- package/dist/components/interrupt/FormPrompt.svelte +27 -20
- package/dist/components/interrupt/InterruptBubble.svelte +50 -50
- package/dist/components/interrupt/TextInputPrompt.svelte +39 -32
- package/dist/components/layouts/MainLayout.svelte +233 -34
- package/dist/components/layouts/MainLayout.svelte.d.ts +12 -0
- package/dist/components/nodes/GatewayNode.svelte +102 -73
- package/dist/components/nodes/IdeaNode.svelte +53 -52
- package/dist/components/nodes/NotesNode.svelte +120 -88
- package/dist/components/nodes/SimpleNode.svelte +67 -47
- package/dist/components/nodes/SquareNode.svelte +86 -49
- package/dist/components/nodes/TerminalNode.svelte +122 -72
- package/dist/components/nodes/ToolNode.svelte +96 -65
- package/dist/components/nodes/WorkflowNode.svelte +91 -67
- package/dist/components/playground/ChatPanel.svelte +76 -76
- package/dist/components/playground/ExecutionLogs.svelte +71 -69
- package/dist/components/playground/InputCollector.svelte +59 -59
- package/dist/components/playground/MessageBubble.svelte +111 -112
- package/dist/components/playground/Playground.svelte +184 -138
- package/dist/components/playground/PlaygroundModal.svelte +18 -19
- package/dist/components/playground/SessionManager.svelte +68 -67
- package/dist/config/defaultPortConfig.js +22 -22
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +1 -0
- package/dist/form/fieldRegistry.d.ts +17 -1
- package/dist/form/fieldRegistry.js +18 -2
- package/dist/form/index.d.ts +20 -2
- package/dist/form/index.js +19 -1
- package/dist/helpers/workflowEditorHelper.js +23 -11
- package/dist/index.d.ts +5 -0
- package/dist/index.js +13 -0
- package/dist/services/autoSaveService.d.ts +112 -0
- package/dist/services/autoSaveService.js +223 -0
- package/dist/services/settingsService.d.ts +92 -0
- package/dist/services/settingsService.js +202 -0
- package/dist/services/toastService.d.ts +9 -0
- package/dist/services/toastService.js +30 -1
- package/dist/stores/settingsStore.d.ts +128 -0
- package/dist/stores/settingsStore.js +488 -0
- package/dist/stores/themeStore.d.ts +68 -0
- package/dist/stores/themeStore.js +215 -0
- package/dist/styles/base.css +298 -621
- package/dist/styles/toast.css +33 -0
- package/dist/styles/tokens.css +366 -0
- package/dist/types/index.d.ts +78 -0
- package/dist/types/index.js +2 -0
- package/dist/types/interrupt.d.ts +2 -0
- package/dist/types/interrupt.js +8 -2
- package/dist/types/playground.d.ts +12 -0
- package/dist/types/settings.d.ts +185 -0
- package/dist/types/settings.js +101 -0
- package/dist/utils/colors.d.ts +100 -7
- package/dist/utils/colors.js +228 -67
- package/package.json +3 -3
|
@@ -34,42 +34,27 @@
|
|
|
34
34
|
const noteTypes = {
|
|
35
35
|
info: {
|
|
36
36
|
name: 'Info',
|
|
37
|
-
|
|
38
|
-
borderColor: 'border-blue-200',
|
|
39
|
-
textColor: 'text-blue-800',
|
|
40
|
-
iconColor: 'text-blue-500',
|
|
37
|
+
typeClass: 'flowdrop-notes-node--info',
|
|
41
38
|
icon: 'mdi:information'
|
|
42
39
|
},
|
|
43
40
|
warning: {
|
|
44
41
|
name: 'Warning',
|
|
45
|
-
|
|
46
|
-
borderColor: 'border-yellow-200',
|
|
47
|
-
textColor: 'text-yellow-800',
|
|
48
|
-
iconColor: 'text-yellow-500',
|
|
42
|
+
typeClass: 'flowdrop-notes-node--warning',
|
|
49
43
|
icon: 'mdi:alert'
|
|
50
44
|
},
|
|
51
45
|
success: {
|
|
52
46
|
name: 'Success',
|
|
53
|
-
|
|
54
|
-
borderColor: 'border-green-200',
|
|
55
|
-
textColor: 'text-green-800',
|
|
56
|
-
iconColor: 'text-green-500',
|
|
47
|
+
typeClass: 'flowdrop-notes-node--success',
|
|
57
48
|
icon: 'mdi:check-circle'
|
|
58
49
|
},
|
|
59
50
|
error: {
|
|
60
51
|
name: 'Error',
|
|
61
|
-
|
|
62
|
-
borderColor: 'border-red-200',
|
|
63
|
-
textColor: 'text-red-800',
|
|
64
|
-
iconColor: 'text-red-500',
|
|
52
|
+
typeClass: 'flowdrop-notes-node--error',
|
|
65
53
|
icon: 'mdi:close-circle'
|
|
66
54
|
},
|
|
67
55
|
note: {
|
|
68
56
|
name: 'Note',
|
|
69
|
-
|
|
70
|
-
borderColor: 'border-gray-200',
|
|
71
|
-
textColor: 'text-gray-800',
|
|
72
|
-
iconColor: 'text-gray-500',
|
|
57
|
+
typeClass: 'flowdrop-notes-node--note',
|
|
73
58
|
icon: 'mdi:note-text'
|
|
74
59
|
}
|
|
75
60
|
};
|
|
@@ -111,21 +96,23 @@
|
|
|
111
96
|
</script>
|
|
112
97
|
|
|
113
98
|
<div
|
|
114
|
-
class="flowdrop-notes-node {currentType.
|
|
99
|
+
class="flowdrop-notes-node {currentType.typeClass}"
|
|
115
100
|
class:flowdrop-notes-node--selected={props.selected}
|
|
116
101
|
class:flowdrop-notes-node--processing={props.isProcessing}
|
|
117
|
-
class:flowdrop-notes-node--error={props.isError}
|
|
102
|
+
class:flowdrop-notes-node--has-error={props.isError}
|
|
118
103
|
ondblclick={handleDoubleClick}
|
|
119
104
|
onkeydown={handleKeydown}
|
|
120
105
|
role="button"
|
|
121
106
|
tabindex="0"
|
|
122
107
|
>
|
|
123
108
|
<!-- Display Mode -->
|
|
124
|
-
<div class="flowdrop-notes-node__content
|
|
109
|
+
<div class="flowdrop-notes-node__content">
|
|
125
110
|
<!-- Header with icon and type -->
|
|
126
111
|
<div class="flowdrop-notes-node__header">
|
|
127
112
|
<div class="flowdrop-notes-node__header-left">
|
|
128
|
-
<
|
|
113
|
+
<div class="flowdrop-notes-node__icon-wrapper">
|
|
114
|
+
<Icon icon={currentType.icon} class="flowdrop-notes-node__icon" />
|
|
115
|
+
</div>
|
|
129
116
|
<span class="flowdrop-notes-node__type">{currentType.name}</span>
|
|
130
117
|
</div>
|
|
131
118
|
</div>
|
|
@@ -145,7 +132,7 @@
|
|
|
145
132
|
|
|
146
133
|
<!-- Error indicator -->
|
|
147
134
|
{#if props.isError}
|
|
148
|
-
<div class="flowdrop-notes-node__error">
|
|
135
|
+
<div class="flowdrop-notes-node__error-indicator">
|
|
149
136
|
<Icon icon="mdi:alert-circle" class="flowdrop-notes-node__error-icon" />
|
|
150
137
|
<span>Error occurred</span>
|
|
151
138
|
</div>
|
|
@@ -164,67 +151,87 @@
|
|
|
164
151
|
|
|
165
152
|
<style>
|
|
166
153
|
.flowdrop-notes-node {
|
|
167
|
-
min-width: var(--notes-node-min-width);
|
|
168
|
-
max-width: var(--notes-node-max-width);
|
|
169
|
-
width: var(--notes-node-width);
|
|
170
|
-
border-radius: var(--
|
|
171
|
-
border:
|
|
172
|
-
background: var(--
|
|
173
|
-
backdrop-filter: var(--notes-node-backdrop-filter);
|
|
174
|
-
box-shadow: var(--
|
|
175
|
-
|
|
154
|
+
min-width: var(--fd-notes-node-min-width);
|
|
155
|
+
max-width: var(--fd-notes-node-max-width);
|
|
156
|
+
width: var(--fd-notes-node-width);
|
|
157
|
+
border-radius: var(--fd-radius-xl);
|
|
158
|
+
border: 1.5px solid var(--fd-node-border);
|
|
159
|
+
background: var(--fd-card);
|
|
160
|
+
backdrop-filter: var(--fd-notes-node-backdrop-filter);
|
|
161
|
+
box-shadow: var(--fd-shadow-md);
|
|
162
|
+
color: var(--fd-foreground);
|
|
163
|
+
transition: all var(--fd-transition-fast);
|
|
176
164
|
overflow: hidden;
|
|
177
165
|
z-index: 5;
|
|
178
166
|
}
|
|
179
167
|
|
|
180
|
-
/*
|
|
181
|
-
.flowdrop-notes-node
|
|
182
|
-
background-color: var(--
|
|
183
|
-
|
|
168
|
+
/* Note type: Info (blue) - subtle background tint, neutral border */
|
|
169
|
+
.flowdrop-notes-node--info {
|
|
170
|
+
background-color: var(--fd-info-muted);
|
|
171
|
+
--_notes-icon: var(--fd-primary);
|
|
184
172
|
}
|
|
185
173
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
174
|
+
/* Note type: Warning (yellow/amber) - subtle background tint */
|
|
175
|
+
.flowdrop-notes-node--warning {
|
|
176
|
+
background-color: var(--fd-warning-muted);
|
|
177
|
+
--_notes-icon: var(--fd-warning);
|
|
189
178
|
}
|
|
190
179
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
180
|
+
/* Note type: Success (green) - subtle background tint */
|
|
181
|
+
.flowdrop-notes-node--success {
|
|
182
|
+
background-color: var(--fd-success-muted);
|
|
183
|
+
--_notes-icon: var(--fd-success);
|
|
194
184
|
}
|
|
195
185
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
186
|
+
/* Note type: Error (red) - subtle background tint */
|
|
187
|
+
.flowdrop-notes-node--error {
|
|
188
|
+
background-color: var(--fd-error-muted);
|
|
189
|
+
--_notes-icon: var(--fd-error);
|
|
199
190
|
}
|
|
200
191
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
192
|
+
/* Note type: Note (gray/neutral) - subtle background tint */
|
|
193
|
+
.flowdrop-notes-node--note {
|
|
194
|
+
background-color: var(--fd-muted);
|
|
195
|
+
--_notes-icon: var(--fd-muted-foreground);
|
|
204
196
|
}
|
|
205
197
|
|
|
206
198
|
.flowdrop-notes-node:hover {
|
|
207
|
-
box-shadow: var(--
|
|
208
|
-
|
|
199
|
+
box-shadow: var(--fd-shadow-lg);
|
|
200
|
+
border-color: var(--fd-node-border-hover);
|
|
209
201
|
}
|
|
210
202
|
|
|
203
|
+
/* Selected state - matches other node components */
|
|
211
204
|
.flowdrop-notes-node--selected {
|
|
212
|
-
box-shadow:
|
|
205
|
+
box-shadow:
|
|
206
|
+
0 0 0 2px var(--fd-primary-muted),
|
|
207
|
+
var(--fd-shadow-lg);
|
|
208
|
+
border-color: var(--fd-primary);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.flowdrop-notes-node--selected:hover {
|
|
212
|
+
box-shadow:
|
|
213
|
+
0 0 0 2px var(--fd-primary-muted),
|
|
214
|
+
var(--fd-shadow-lg);
|
|
215
|
+
border-color: var(--fd-primary);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.flowdrop-notes-node:focus-visible {
|
|
219
|
+
outline: 2px solid var(--fd-ring);
|
|
220
|
+
outline-offset: 2px;
|
|
213
221
|
}
|
|
214
222
|
|
|
215
223
|
.flowdrop-notes-node--processing {
|
|
216
224
|
opacity: 0.7;
|
|
217
225
|
}
|
|
218
226
|
|
|
219
|
-
.flowdrop-notes-node--error {
|
|
220
|
-
border-color:
|
|
227
|
+
.flowdrop-notes-node--has-error {
|
|
228
|
+
border-color: var(--fd-error) !important;
|
|
229
|
+
background-color: var(--fd-error-muted) !important;
|
|
221
230
|
}
|
|
222
231
|
|
|
223
232
|
/* Display Mode Styles */
|
|
224
233
|
.flowdrop-notes-node__content {
|
|
225
|
-
padding: var(--
|
|
226
|
-
border-radius: var(--notes-node-border-radius);
|
|
227
|
-
border: 1px solid;
|
|
234
|
+
padding: var(--fd-space-4);
|
|
228
235
|
height: 100%;
|
|
229
236
|
display: flex;
|
|
230
237
|
flex-direction: column;
|
|
@@ -241,52 +248,77 @@
|
|
|
241
248
|
.flowdrop-notes-node__header-left {
|
|
242
249
|
display: flex;
|
|
243
250
|
align-items: center;
|
|
244
|
-
gap:
|
|
251
|
+
gap: var(--fd-space-3);
|
|
245
252
|
}
|
|
246
253
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
254
|
+
/* Squircle icon wrapper - Apple-style rounded square background */
|
|
255
|
+
.flowdrop-notes-node__icon-wrapper {
|
|
256
|
+
display: flex;
|
|
257
|
+
align-items: center;
|
|
258
|
+
justify-content: center;
|
|
259
|
+
width: 2.25rem;
|
|
260
|
+
height: 2.25rem;
|
|
261
|
+
border-radius: 0.5rem;
|
|
262
|
+
background: color-mix(in srgb, var(--_notes-icon) 15%, transparent);
|
|
250
263
|
flex-shrink: 0;
|
|
264
|
+
transition: all var(--fd-transition-normal);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.flowdrop-notes-node:hover .flowdrop-notes-node__icon-wrapper {
|
|
268
|
+
background: color-mix(in srgb, var(--_notes-icon) 22%, transparent);
|
|
269
|
+
transform: scale(1.05);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.flowdrop-notes-node__icon-wrapper :global(.flowdrop-notes-node__icon) {
|
|
273
|
+
width: 1.25rem;
|
|
274
|
+
height: 1.25rem;
|
|
275
|
+
color: var(--fd-node-icon);
|
|
251
276
|
}
|
|
252
277
|
|
|
253
278
|
.flowdrop-notes-node__type {
|
|
254
|
-
font-size:
|
|
255
|
-
font-weight:
|
|
279
|
+
font-size: var(--fd-text-sm);
|
|
280
|
+
font-weight: 500;
|
|
281
|
+
color: var(--fd-foreground);
|
|
256
282
|
}
|
|
257
283
|
|
|
258
284
|
.flowdrop-notes-node__body {
|
|
259
|
-
margin-bottom:
|
|
285
|
+
margin-bottom: var(--fd-space-2);
|
|
260
286
|
flex: 1;
|
|
261
287
|
overflow-y: auto;
|
|
288
|
+
color: var(--fd-muted-foreground);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/* Markdown content inherits foreground color for better readability */
|
|
292
|
+
.flowdrop-notes-node__body :global(.flowdrop-notes-node__markdown) {
|
|
293
|
+
color: var(--fd-foreground);
|
|
262
294
|
}
|
|
263
295
|
|
|
264
296
|
.flowdrop-notes-node__processing {
|
|
265
297
|
display: flex;
|
|
266
298
|
align-items: center;
|
|
267
|
-
gap:
|
|
268
|
-
font-size:
|
|
269
|
-
|
|
299
|
+
gap: var(--fd-space-2);
|
|
300
|
+
font-size: var(--fd-text-xs);
|
|
301
|
+
color: var(--fd-muted-foreground);
|
|
270
302
|
}
|
|
271
303
|
|
|
272
304
|
.flowdrop-notes-node__spinner {
|
|
273
305
|
width: 0.75rem;
|
|
274
306
|
height: 0.75rem;
|
|
275
|
-
border: 1px solid
|
|
276
|
-
border-top-color:
|
|
307
|
+
border: 1px solid color-mix(in srgb, var(--fd-foreground) 30%, transparent);
|
|
308
|
+
border-top-color: var(--fd-foreground);
|
|
277
309
|
border-radius: 50%;
|
|
278
310
|
animation: spin 1s linear infinite;
|
|
279
311
|
}
|
|
280
312
|
|
|
281
|
-
.flowdrop-notes-node__error {
|
|
313
|
+
.flowdrop-notes-node__error-indicator {
|
|
282
314
|
display: flex;
|
|
283
315
|
align-items: center;
|
|
284
|
-
gap:
|
|
285
|
-
font-size:
|
|
286
|
-
color:
|
|
316
|
+
gap: var(--fd-space-2);
|
|
317
|
+
font-size: var(--fd-text-xs);
|
|
318
|
+
color: var(--fd-error);
|
|
287
319
|
}
|
|
288
320
|
|
|
289
|
-
.flowdrop-notes-node__error-icon {
|
|
321
|
+
:global(.flowdrop-notes-node__error-icon) {
|
|
290
322
|
width: 0.75rem;
|
|
291
323
|
height: 0.75rem;
|
|
292
324
|
}
|
|
@@ -299,23 +331,23 @@
|
|
|
299
331
|
|
|
300
332
|
.flowdrop-notes-node__config-btn {
|
|
301
333
|
position: absolute;
|
|
302
|
-
top:
|
|
303
|
-
right:
|
|
334
|
+
top: var(--fd-space-2);
|
|
335
|
+
right: var(--fd-space-2);
|
|
304
336
|
width: 1.5rem;
|
|
305
337
|
height: 1.5rem;
|
|
306
|
-
background-color:
|
|
307
|
-
border: 1px solid
|
|
308
|
-
border-radius:
|
|
309
|
-
color:
|
|
338
|
+
background-color: var(--fd-backdrop);
|
|
339
|
+
border: 1px solid var(--fd-border);
|
|
340
|
+
border-radius: var(--fd-radius-sm);
|
|
341
|
+
color: var(--fd-muted-foreground);
|
|
310
342
|
cursor: pointer;
|
|
311
343
|
display: flex;
|
|
312
344
|
align-items: center;
|
|
313
345
|
justify-content: center;
|
|
314
346
|
opacity: 0;
|
|
315
|
-
transition: all
|
|
316
|
-
backdrop-filter: blur
|
|
347
|
+
transition: all var(--fd-transition-normal);
|
|
348
|
+
backdrop-filter: var(--fd-backdrop-blur);
|
|
317
349
|
z-index: 15;
|
|
318
|
-
font-size:
|
|
350
|
+
font-size: var(--fd-text-sm);
|
|
319
351
|
}
|
|
320
352
|
|
|
321
353
|
.flowdrop-notes-node:hover .flowdrop-notes-node__config-btn {
|
|
@@ -323,9 +355,9 @@
|
|
|
323
355
|
}
|
|
324
356
|
|
|
325
357
|
.flowdrop-notes-node__config-btn:hover {
|
|
326
|
-
background-color:
|
|
327
|
-
border-color:
|
|
328
|
-
color:
|
|
358
|
+
background-color: var(--fd-muted);
|
|
359
|
+
border-color: var(--fd-border-strong);
|
|
360
|
+
color: var(--fd-foreground);
|
|
329
361
|
}
|
|
330
362
|
|
|
331
363
|
/* Responsive design */
|
|
@@ -336,7 +368,7 @@
|
|
|
336
368
|
}
|
|
337
369
|
|
|
338
370
|
.flowdrop-notes-node__content {
|
|
339
|
-
padding:
|
|
371
|
+
padding: var(--fd-space-3);
|
|
340
372
|
}
|
|
341
373
|
}
|
|
342
374
|
</style>
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
position={Position.Left}
|
|
187
187
|
style="background-color: {getDataTypeColor(
|
|
188
188
|
port.dataType
|
|
189
|
-
)}; border-color:
|
|
189
|
+
)}; border-color: var(--fd-handle-border); top: {inputPorts.length > 1
|
|
190
190
|
? index === 0
|
|
191
191
|
? '25%'
|
|
192
192
|
: '75%'
|
|
@@ -209,8 +209,8 @@
|
|
|
209
209
|
>
|
|
210
210
|
<div class="flowdrop-simple-node__header">
|
|
211
211
|
<div class="flowdrop-simple-node__header-content">
|
|
212
|
-
<!-- Node Icon -->
|
|
213
|
-
<div class="flowdrop-simple-node__icon-
|
|
212
|
+
<!-- Node Icon with Squircle Background -->
|
|
213
|
+
<div class="flowdrop-simple-node__icon-wrapper" style="--_icon-color: {nodeColor}">
|
|
214
214
|
<Icon icon={nodeIcon} class="flowdrop-simple-node__icon" />
|
|
215
215
|
</div>
|
|
216
216
|
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
position={Position.Right}
|
|
259
259
|
style="background-color: {getDataTypeColor(
|
|
260
260
|
port.dataType
|
|
261
|
-
)}; border-color:
|
|
261
|
+
)}; border-color: var(--fd-handle-border); top: {outputPorts.length > 1
|
|
262
262
|
? index === 0
|
|
263
263
|
? '25%'
|
|
264
264
|
: '75%'
|
|
@@ -272,16 +272,17 @@
|
|
|
272
272
|
<style>
|
|
273
273
|
.flowdrop-simple-node {
|
|
274
274
|
position: relative;
|
|
275
|
-
background-color:
|
|
276
|
-
border:
|
|
277
|
-
border-radius:
|
|
275
|
+
background-color: var(--fd-card);
|
|
276
|
+
border: 1.5px solid var(--fd-node-border);
|
|
277
|
+
border-radius: var(--fd-radius-xl);
|
|
278
278
|
display: flex;
|
|
279
279
|
flex-direction: column;
|
|
280
280
|
cursor: pointer;
|
|
281
|
-
transition: all
|
|
282
|
-
box-shadow:
|
|
281
|
+
transition: all var(--fd-transition-fast);
|
|
282
|
+
box-shadow: var(--fd-shadow-md);
|
|
283
283
|
overflow: visible; /* Changed from hidden to visible to allow handles to be properly accessible */
|
|
284
284
|
z-index: 10;
|
|
285
|
+
color: var(--fd-foreground);
|
|
285
286
|
}
|
|
286
287
|
|
|
287
288
|
/* Normal layout (default) */
|
|
@@ -290,12 +291,23 @@
|
|
|
290
291
|
}
|
|
291
292
|
|
|
292
293
|
.flowdrop-simple-node:hover {
|
|
293
|
-
box-shadow:
|
|
294
|
+
box-shadow: var(--fd-shadow-lg);
|
|
295
|
+
border-color: var(--fd-node-border-hover);
|
|
294
296
|
}
|
|
295
297
|
|
|
296
298
|
.flowdrop-simple-node--selected {
|
|
297
|
-
box-shadow: 0
|
|
298
|
-
border:
|
|
299
|
+
box-shadow: 0 0 0 2px var(--fd-primary-muted), var(--fd-shadow-lg);
|
|
300
|
+
border-color: var(--fd-primary);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.flowdrop-simple-node--selected:hover {
|
|
304
|
+
box-shadow: 0 0 0 2px var(--fd-primary-muted), var(--fd-shadow-lg);
|
|
305
|
+
border-color: var(--fd-primary);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.flowdrop-simple-node:focus-visible {
|
|
309
|
+
outline: 2px solid var(--fd-ring);
|
|
310
|
+
outline-offset: 2px;
|
|
299
311
|
}
|
|
300
312
|
|
|
301
313
|
.flowdrop-simple-node--processing {
|
|
@@ -303,36 +315,44 @@
|
|
|
303
315
|
}
|
|
304
316
|
|
|
305
317
|
.flowdrop-simple-node--error {
|
|
306
|
-
border-color:
|
|
307
|
-
background-color:
|
|
318
|
+
border-color: var(--fd-error) !important;
|
|
319
|
+
background-color: var(--fd-error-muted) !important;
|
|
308
320
|
}
|
|
309
321
|
|
|
310
322
|
.flowdrop-simple-node__header {
|
|
311
|
-
padding:
|
|
312
|
-
background
|
|
313
|
-
border-radius:
|
|
323
|
+
padding: var(--fd-space-4);
|
|
324
|
+
background: var(--fd-header);
|
|
325
|
+
border-radius: var(--fd-radius-xl);
|
|
314
326
|
}
|
|
315
327
|
|
|
316
328
|
.flowdrop-simple-node__header-content {
|
|
317
329
|
display: flex;
|
|
318
330
|
align-items: center;
|
|
319
|
-
gap:
|
|
331
|
+
gap: var(--fd-space-3);
|
|
320
332
|
}
|
|
321
333
|
|
|
322
|
-
|
|
334
|
+
/* Squircle icon wrapper - Apple-style rounded square background */
|
|
335
|
+
.flowdrop-simple-node__icon-wrapper {
|
|
323
336
|
display: flex;
|
|
324
337
|
align-items: center;
|
|
325
338
|
justify-content: center;
|
|
326
|
-
width:
|
|
327
|
-
height:
|
|
328
|
-
border-radius: 0.
|
|
339
|
+
width: 2.25rem;
|
|
340
|
+
height: 2.25rem;
|
|
341
|
+
border-radius: 0.5rem;
|
|
342
|
+
background: color-mix(in srgb, var(--_icon-color) 15%, transparent);
|
|
329
343
|
flex-shrink: 0;
|
|
344
|
+
transition: all var(--fd-transition-normal);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.flowdrop-simple-node:hover .flowdrop-simple-node__icon-wrapper {
|
|
348
|
+
background: color-mix(in srgb, var(--_icon-color) 22%, transparent);
|
|
349
|
+
transform: scale(1.05);
|
|
330
350
|
}
|
|
331
351
|
|
|
332
352
|
.flowdrop-simple-node__title {
|
|
333
|
-
font-size:
|
|
353
|
+
font-size: var(--fd-text-sm);
|
|
334
354
|
font-weight: 500;
|
|
335
|
-
color:
|
|
355
|
+
color: var(--fd-foreground);
|
|
336
356
|
margin: 0;
|
|
337
357
|
flex: 1;
|
|
338
358
|
min-width: 0;
|
|
@@ -340,16 +360,16 @@
|
|
|
340
360
|
}
|
|
341
361
|
|
|
342
362
|
.flowdrop-simple-node__description {
|
|
343
|
-
font-size:
|
|
344
|
-
color:
|
|
345
|
-
margin:
|
|
363
|
+
font-size: var(--fd-text-xs);
|
|
364
|
+
color: var(--fd-muted-foreground);
|
|
365
|
+
margin: var(--fd-space-1) 0 0 0;
|
|
346
366
|
line-height: 1.3;
|
|
347
367
|
}
|
|
348
368
|
|
|
349
|
-
:global(.flowdrop-simple-node__icon) {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
369
|
+
.flowdrop-simple-node__icon-wrapper :global(.flowdrop-simple-node__icon) {
|
|
370
|
+
width: 1.25rem;
|
|
371
|
+
height: 1.25rem;
|
|
372
|
+
color: var(--fd-node-icon);
|
|
353
373
|
}
|
|
354
374
|
|
|
355
375
|
/* Label styling removed - now using header title */
|
|
@@ -363,8 +383,8 @@
|
|
|
363
383
|
.flowdrop-simple-node__spinner {
|
|
364
384
|
width: 12px;
|
|
365
385
|
height: 12px;
|
|
366
|
-
border: 1px solid
|
|
367
|
-
border-top: 1px solid
|
|
386
|
+
border: 1px solid color-mix(in srgb, var(--fd-foreground) 30%, transparent);
|
|
387
|
+
border-top: 1px solid var(--fd-foreground);
|
|
368
388
|
border-radius: 50%;
|
|
369
389
|
animation: spin 1s linear infinite;
|
|
370
390
|
}
|
|
@@ -373,7 +393,7 @@
|
|
|
373
393
|
position: absolute;
|
|
374
394
|
top: 4px;
|
|
375
395
|
right: 4px;
|
|
376
|
-
color:
|
|
396
|
+
color: var(--fd-error);
|
|
377
397
|
}
|
|
378
398
|
|
|
379
399
|
:global(.flowdrop-simple-node__error-icon) {
|
|
@@ -383,23 +403,23 @@
|
|
|
383
403
|
|
|
384
404
|
.flowdrop-simple-node__config-btn {
|
|
385
405
|
position: absolute;
|
|
386
|
-
top:
|
|
387
|
-
right:
|
|
406
|
+
top: var(--fd-space-2);
|
|
407
|
+
right: var(--fd-space-2);
|
|
388
408
|
width: 1.5rem;
|
|
389
409
|
height: 1.5rem;
|
|
390
|
-
background-color:
|
|
391
|
-
border: 1px solid
|
|
392
|
-
border-radius:
|
|
393
|
-
color:
|
|
410
|
+
background-color: var(--fd-backdrop);
|
|
411
|
+
border: 1px solid var(--fd-border);
|
|
412
|
+
border-radius: var(--fd-radius-sm);
|
|
413
|
+
color: var(--fd-muted-foreground);
|
|
394
414
|
cursor: pointer;
|
|
395
415
|
display: flex;
|
|
396
416
|
align-items: center;
|
|
397
417
|
justify-content: center;
|
|
398
418
|
opacity: 0;
|
|
399
|
-
transition: all
|
|
419
|
+
transition: all var(--fd-transition-normal);
|
|
400
420
|
backdrop-filter: blur(4px);
|
|
401
421
|
z-index: 15;
|
|
402
|
-
font-size:
|
|
422
|
+
font-size: var(--fd-text-sm);
|
|
403
423
|
}
|
|
404
424
|
|
|
405
425
|
.flowdrop-simple-node:hover .flowdrop-simple-node__config-btn {
|
|
@@ -407,9 +427,9 @@
|
|
|
407
427
|
}
|
|
408
428
|
|
|
409
429
|
.flowdrop-simple-node__config-btn:hover {
|
|
410
|
-
background-color:
|
|
411
|
-
border-color:
|
|
412
|
-
color:
|
|
430
|
+
background-color: var(--fd-muted);
|
|
431
|
+
border-color: var(--fd-border-strong);
|
|
432
|
+
color: var(--fd-foreground);
|
|
413
433
|
}
|
|
414
434
|
|
|
415
435
|
@keyframes spin {
|
|
@@ -423,7 +443,7 @@
|
|
|
423
443
|
width: 18px !important;
|
|
424
444
|
height: 18px !important;
|
|
425
445
|
border-radius: 50% !important;
|
|
426
|
-
transition: all
|
|
446
|
+
transition: all var(--fd-transition-normal) !important;
|
|
427
447
|
cursor: pointer !important;
|
|
428
448
|
z-index: 20 !important;
|
|
429
449
|
pointer-events: auto !important;
|
|
@@ -438,7 +458,7 @@
|
|
|
438
458
|
}
|
|
439
459
|
|
|
440
460
|
:global(.svelte-flow__node-simple .svelte-flow__handle:focus) {
|
|
441
|
-
outline: 2px solid
|
|
461
|
+
outline: 2px solid var(--fd-ring) !important;
|
|
442
462
|
outline-offset: 2px !important;
|
|
443
463
|
}
|
|
444
464
|
</style>
|