@d34dman/flowdrop 0.0.60 → 0.0.62
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 +6 -0
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/agentspec/AgentSpecAdapter.js +3 -1
- package/dist/api/client.d.ts +4 -0
- package/dist/api/client.js +6 -1
- package/dist/api/enhanced-client.js +7 -6
- package/dist/components/App.svelte +143 -219
- package/dist/components/CanvasBanner.stories.svelte +25 -0
- package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
- package/dist/components/CanvasBanner.svelte +2 -2
- package/dist/components/ConfigForm.svelte +37 -36
- package/dist/components/ConfigPanel.stories.svelte +38 -0
- package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
- package/dist/components/ConfigPanel.svelte +2 -2
- package/dist/components/ConnectionLine.svelte +2 -2
- package/dist/components/FlowDropZone.svelte +18 -2
- package/dist/components/FlowDropZone.svelte.d.ts +2 -0
- package/dist/components/LoadingSpinner.stories.svelte +30 -0
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.stories.svelte +22 -0
- package/dist/components/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.svelte +33 -13
- package/dist/components/Logo.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +21 -0
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
- package/dist/components/MarkdownDisplay.svelte +4 -3
- package/dist/components/Navbar.stories.svelte +41 -0
- package/dist/components/Navbar.stories.svelte.d.ts +27 -0
- package/dist/components/Navbar.svelte +4 -4
- package/dist/components/NodeSidebar.svelte +12 -12
- package/dist/components/NodeStatusOverlay.stories.svelte +74 -0
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
- package/dist/components/PipelineStatus.svelte +11 -4
- package/dist/components/PortCoordinateTracker.svelte +1 -1
- package/dist/components/SchemaForm.stories.svelte +101 -0
- package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
- package/dist/components/SchemaForm.svelte +17 -12
- package/dist/components/SettingsModal.svelte +3 -3
- package/dist/components/SettingsPanel.svelte +23 -22
- package/dist/components/StatusIcon.stories.svelte +60 -0
- package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
- package/dist/components/StatusIcon.svelte +7 -0
- package/dist/components/StatusLabel.stories.svelte +17 -0
- package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.stories.svelte +25 -0
- package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.svelte +8 -8
- package/dist/components/UniversalNode.svelte +1 -1
- package/dist/components/WorkflowEditor.svelte +298 -294
- package/dist/components/form/FormAutocomplete.svelte +20 -19
- package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormField.svelte +3 -3
- package/dist/components/form/FormFieldLight.svelte +2 -2
- package/dist/components/form/FormFieldWrapper.stories.svelte +31 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormFieldset.svelte +7 -7
- package/dist/components/form/FormNumberField.stories.svelte +33 -0
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormRangeField.stories.svelte +31 -0
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormSelect.stories.svelte +50 -0
- package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTemplateEditor.svelte +2 -1
- package/dist/components/form/FormTextField.stories.svelte +30 -0
- package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextarea.stories.svelte +31 -0
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormToggle.stories.svelte +30 -0
- package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormUISchemaRenderer.svelte +1 -1
- package/dist/components/form/types.d.ts +15 -47
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +43 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +24 -24
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +49 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +19 -19
- package/dist/components/interrupt/FormPrompt.svelte +15 -15
- package/dist/components/interrupt/InterruptBubble.svelte +202 -236
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +46 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ReviewPrompt.svelte +842 -0
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +34 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +21 -21
- package/dist/components/nodes/GatewayNode.stories.svelte +76 -0
- package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/GatewayNode.svelte +19 -17
- package/dist/components/nodes/IdeaNode.stories.svelte +48 -0
- package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/IdeaNode.svelte +10 -26
- package/dist/components/nodes/NotesNode.stories.svelte +69 -0
- package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/NotesNode.svelte +8 -8
- package/dist/components/nodes/SimpleNode.stories.svelte +101 -0
- package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SimpleNode.svelte +16 -24
- package/dist/components/nodes/SquareNode.stories.svelte +56 -0
- package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SquareNode.svelte +13 -21
- package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/TerminalNode.svelte +6 -6
- package/dist/components/nodes/ToolNode.stories.svelte +71 -0
- package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/ToolNode.svelte +7 -15
- package/dist/components/nodes/WorkflowNode.stories.svelte +50 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/WorkflowNode.svelte +13 -13
- package/dist/components/playground/ChatPanel.svelte +48 -48
- package/dist/components/playground/ExecutionLogs.svelte +23 -23
- package/dist/components/playground/InputCollector.svelte +24 -24
- package/dist/components/playground/MessageBubble.stories.svelte +49 -0
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
- package/dist/components/playground/MessageBubble.svelte +49 -46
- package/dist/components/playground/Playground.svelte +203 -172
- package/dist/components/playground/PlaygroundModal.svelte +5 -5
- package/dist/components/playground/SessionManager.svelte +26 -26
- package/dist/config/constants.d.ts +22 -0
- package/dist/config/constants.js +22 -0
- package/dist/config/endpoints.d.ts +19 -0
- package/dist/config/runtimeConfig.js +2 -1
- package/dist/core/index.d.ts +5 -2
- package/dist/core/index.js +9 -1
- package/dist/editor/index.d.ts +13 -9
- package/dist/editor/index.js +15 -11
- package/dist/form/code.d.ts +2 -1
- package/dist/form/code.js +1 -3
- package/dist/form/markdown.d.ts +2 -1
- package/dist/form/markdown.js +1 -3
- package/dist/helpers/workflowEditorHelper.js +13 -9
- package/dist/mocks/app-forms.js +1 -0
- package/dist/mocks/app-navigation.js +3 -1
- package/dist/mocks/app-stores.d.ts +4 -4
- package/dist/playground/index.d.ts +5 -4
- package/dist/playground/index.js +15 -11
- package/dist/playground/mount.d.ts +20 -1
- package/dist/playground/mount.js +24 -6
- package/dist/services/agentSpecExecutionService.js +2 -1
- package/dist/services/api.js +10 -18
- package/dist/services/apiVariableService.js +2 -1
- package/dist/services/autoSaveService.d.ts +3 -3
- package/dist/services/autoSaveService.js +21 -17
- package/dist/services/categoriesApi.js +13 -5
- package/dist/services/draftStorage.js +5 -4
- package/dist/services/dynamicSchemaService.js +4 -4
- package/dist/services/globalSave.d.ts +60 -11
- package/dist/services/globalSave.js +160 -83
- package/dist/services/historyService.d.ts +2 -1
- package/dist/services/historyService.js +7 -3
- package/dist/services/interruptService.js +9 -8
- package/dist/services/nodeExecutionService.js +14 -6
- package/dist/services/playgroundService.d.ts +3 -2
- package/dist/services/playgroundService.js +8 -7
- package/dist/services/portConfigApi.js +11 -7
- package/dist/services/toastService.d.ts +1 -1
- package/dist/services/toastService.js +6 -5
- package/dist/services/variableService.js +3 -2
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/stores/{categoriesStore.d.ts → categoriesStore.svelte.d.ts} +3 -3
- package/dist/stores/{categoriesStore.js → categoriesStore.svelte.js} +15 -18
- package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
- package/dist/stores/editorStateMachine.svelte.js +132 -0
- package/dist/stores/{historyStore.d.ts → historyStore.svelte.d.ts} +18 -15
- package/dist/stores/{historyStore.js → historyStore.svelte.js} +40 -21
- package/dist/stores/{interruptStore.d.ts → interruptStore.svelte.d.ts} +16 -15
- package/dist/stores/{interruptStore.js → interruptStore.svelte.js} +85 -94
- package/dist/stores/{playgroundStore.d.ts → playgroundStore.svelte.d.ts} +52 -34
- package/dist/stores/{playgroundStore.js → playgroundStore.svelte.js} +193 -100
- package/dist/stores/{portCoordinateStore.d.ts → portCoordinateStore.svelte.d.ts} +10 -4
- package/dist/stores/{portCoordinateStore.js → portCoordinateStore.svelte.js} +38 -35
- package/dist/stores/{settingsStore.d.ts → settingsStore.svelte.d.ts} +45 -28
- package/dist/stores/{settingsStore.js → settingsStore.svelte.js} +169 -128
- package/dist/stores/{workflowStore.d.ts → workflowStore.svelte.d.ts} +101 -65
- package/dist/stores/{workflowStore.js → workflowStore.svelte.js} +285 -239
- package/dist/stories/CanvasDecorator.svelte +50 -0
- package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
- package/dist/stories/NodeDecorator.svelte +74 -0
- package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
- package/dist/stories/utils.d.ts +93 -0
- package/dist/stories/utils.js +122 -0
- package/dist/styles/base.css +114 -61
- package/dist/styles/toast.css +2 -2
- package/dist/styles/tokens.css +250 -185
- package/dist/svelte-app.d.ts +0 -6
- package/dist/svelte-app.js +13 -31
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interrupt.d.ts +89 -5
- package/dist/types/interrupt.js +13 -1
- package/dist/types/playground.d.ts +42 -1
- package/dist/types/playground.js +38 -0
- package/dist/types/settings.js +1 -1
- package/dist/utils/colors.js +4 -4
- package/dist/utils/connections.js +33 -8
- package/dist/utils/icons.js +1 -1
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/nodeWrapper.js +1 -1
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.js +31 -0
- package/dist/utils/validation.d.ts +29 -0
- package/dist/utils/validation.js +39 -0
- package/package.json +243 -232
|
@@ -34,12 +34,13 @@
|
|
|
34
34
|
SETTINGS_CATEGORY_ICONS
|
|
35
35
|
} from '../types/settings.js';
|
|
36
36
|
import {
|
|
37
|
-
|
|
37
|
+
getSettings,
|
|
38
38
|
updateSettings,
|
|
39
39
|
resetSettings,
|
|
40
40
|
syncSettingsToApi,
|
|
41
|
-
|
|
42
|
-
} from '../stores/settingsStore.js';
|
|
41
|
+
getSyncStatus
|
|
42
|
+
} from '../stores/settingsStore.svelte.js';
|
|
43
|
+
import { logger } from '../utils/logger.js';
|
|
43
44
|
|
|
44
45
|
/**
|
|
45
46
|
* Props interface for SettingsPanel component
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
/**
|
|
77
78
|
* Whether sync is in progress
|
|
78
79
|
*/
|
|
79
|
-
let isSyncing = $derived(
|
|
80
|
+
let isSyncing = $derived(getSyncStatus().status === 'syncing');
|
|
80
81
|
|
|
81
82
|
/**
|
|
82
83
|
* JSON Schema definitions for each settings category
|
|
@@ -254,7 +255,7 @@
|
|
|
254
255
|
* Get current values for a category from the store
|
|
255
256
|
*/
|
|
256
257
|
function getCategoryValues(category: SettingsCategory): Record<string, unknown> {
|
|
257
|
-
const settings =
|
|
258
|
+
const settings = getSettings();
|
|
258
259
|
const categorySettings = settings[category];
|
|
259
260
|
// Convert to Record<string, unknown> for SchemaForm compatibility
|
|
260
261
|
return Object.fromEntries(Object.entries(categorySettings));
|
|
@@ -280,7 +281,7 @@
|
|
|
280
281
|
try {
|
|
281
282
|
await syncSettingsToApi();
|
|
282
283
|
} catch (error) {
|
|
283
|
-
|
|
284
|
+
logger.error('Failed to sync settings:', error);
|
|
284
285
|
}
|
|
285
286
|
}
|
|
286
287
|
|
|
@@ -433,15 +434,15 @@
|
|
|
433
434
|
</div>
|
|
434
435
|
|
|
435
436
|
<!-- Sync Status Indicator -->
|
|
436
|
-
{#if
|
|
437
|
+
{#if getSyncStatus().error}
|
|
437
438
|
<div class="flowdrop-settings-panel__error">
|
|
438
439
|
<Icon icon="mdi:alert-circle" />
|
|
439
|
-
<span>{
|
|
440
|
+
<span>{getSyncStatus().error}</span>
|
|
440
441
|
</div>
|
|
441
|
-
{:else if
|
|
442
|
+
{:else if getSyncStatus().status === 'synced' && getSyncStatus().lastSyncedAt}
|
|
442
443
|
<div class="flowdrop-settings-panel__synced">
|
|
443
444
|
<Icon icon="mdi:check-circle" />
|
|
444
|
-
<span>Synced {new Date(
|
|
445
|
+
<span>Synced {new Date(getSyncStatus().lastSyncedAt!).toLocaleTimeString()}</span>
|
|
445
446
|
</div>
|
|
446
447
|
{/if}
|
|
447
448
|
</div>
|
|
@@ -458,8 +459,8 @@
|
|
|
458
459
|
/* Tabs */
|
|
459
460
|
.flowdrop-settings-panel__tabs {
|
|
460
461
|
display: flex;
|
|
461
|
-
gap: var(--fd-space-
|
|
462
|
-
padding: var(--fd-space-
|
|
462
|
+
gap: var(--fd-space-3xs);
|
|
463
|
+
padding: var(--fd-space-md);
|
|
463
464
|
border-bottom: 1px solid var(--fd-border);
|
|
464
465
|
overflow-x: auto;
|
|
465
466
|
}
|
|
@@ -467,8 +468,8 @@
|
|
|
467
468
|
.flowdrop-settings-panel__tab {
|
|
468
469
|
display: flex;
|
|
469
470
|
align-items: center;
|
|
470
|
-
gap: var(--fd-space-
|
|
471
|
-
padding: var(--fd-space-
|
|
471
|
+
gap: var(--fd-space-xs);
|
|
472
|
+
padding: var(--fd-space-xs) var(--fd-space-md);
|
|
472
473
|
border: none;
|
|
473
474
|
border-radius: var(--fd-radius-md);
|
|
474
475
|
background-color: transparent;
|
|
@@ -508,7 +509,7 @@
|
|
|
508
509
|
.flowdrop-settings-panel__content {
|
|
509
510
|
flex: 1;
|
|
510
511
|
overflow-y: auto;
|
|
511
|
-
padding: var(--fd-space-
|
|
512
|
+
padding: var(--fd-space-xl);
|
|
512
513
|
}
|
|
513
514
|
|
|
514
515
|
.flowdrop-settings-panel__panel {
|
|
@@ -524,15 +525,15 @@
|
|
|
524
525
|
display: flex;
|
|
525
526
|
justify-content: space-between;
|
|
526
527
|
align-items: center;
|
|
527
|
-
padding: var(--fd-space-
|
|
528
|
+
padding: var(--fd-space-md) var(--fd-space-xl);
|
|
528
529
|
border-top: 1px solid var(--fd-border);
|
|
529
|
-
gap: var(--fd-space-
|
|
530
|
+
gap: var(--fd-space-md);
|
|
530
531
|
}
|
|
531
532
|
|
|
532
533
|
.flowdrop-settings-panel__footer-start,
|
|
533
534
|
.flowdrop-settings-panel__footer-end {
|
|
534
535
|
display: flex;
|
|
535
|
-
gap: var(--fd-space-
|
|
536
|
+
gap: var(--fd-space-xs);
|
|
536
537
|
align-items: center;
|
|
537
538
|
}
|
|
538
539
|
|
|
@@ -540,8 +541,8 @@
|
|
|
540
541
|
.flowdrop-settings-panel__btn {
|
|
541
542
|
display: inline-flex;
|
|
542
543
|
align-items: center;
|
|
543
|
-
gap: var(--fd-space-
|
|
544
|
-
padding: var(--fd-space-
|
|
544
|
+
gap: var(--fd-space-xs);
|
|
545
|
+
padding: var(--fd-space-xs) var(--fd-space-md);
|
|
545
546
|
border-radius: var(--fd-radius-md);
|
|
546
547
|
font-size: var(--fd-text-sm);
|
|
547
548
|
font-weight: 500;
|
|
@@ -601,8 +602,8 @@
|
|
|
601
602
|
.flowdrop-settings-panel__synced {
|
|
602
603
|
display: flex;
|
|
603
604
|
align-items: center;
|
|
604
|
-
gap: var(--fd-space-
|
|
605
|
-
padding: var(--fd-space-
|
|
605
|
+
gap: var(--fd-space-xs);
|
|
606
|
+
padding: var(--fd-space-xs) var(--fd-space-xl);
|
|
606
607
|
font-size: var(--fd-text-xs);
|
|
607
608
|
}
|
|
608
609
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import StatusIcon from "./StatusIcon.svelte";
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: "Display/StatusIcon",
|
|
7
|
+
component: StatusIcon,
|
|
8
|
+
tags: ["autodocs"],
|
|
9
|
+
argTypes: {
|
|
10
|
+
status: {
|
|
11
|
+
control: { type: "select" },
|
|
12
|
+
options: ["idle", "pending", "running", "completed", "failed", "cancelled", "skipped"],
|
|
13
|
+
},
|
|
14
|
+
size: {
|
|
15
|
+
control: { type: "select" },
|
|
16
|
+
options: ["sm", "md", "lg", "xl"],
|
|
17
|
+
},
|
|
18
|
+
showBackground: { control: "boolean" },
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<Story name="Idle" args={{ status: "idle" }} />
|
|
24
|
+
|
|
25
|
+
<Story name="Running" args={{ status: "running" }} />
|
|
26
|
+
|
|
27
|
+
<Story name="Completed" args={{ status: "completed" }} />
|
|
28
|
+
|
|
29
|
+
<Story name="Failed" args={{ status: "failed" }} />
|
|
30
|
+
|
|
31
|
+
<Story name="With Background" args={{ status: "completed", showBackground: true }} />
|
|
32
|
+
|
|
33
|
+
<Story name="All Statuses">
|
|
34
|
+
<div style="display: flex; flex-direction: column; gap: 1.5rem;">
|
|
35
|
+
<div>
|
|
36
|
+
<div style="margin-bottom: 0.5rem; font-weight: 600;">Icon Only</div>
|
|
37
|
+
<div style="display: flex; gap: 1rem; align-items: center;">
|
|
38
|
+
<StatusIcon status="idle" />
|
|
39
|
+
<StatusIcon status="pending" />
|
|
40
|
+
<StatusIcon status="running" />
|
|
41
|
+
<StatusIcon status="completed" />
|
|
42
|
+
<StatusIcon status="failed" />
|
|
43
|
+
<StatusIcon status="cancelled" />
|
|
44
|
+
<StatusIcon status="skipped" />
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<div>
|
|
48
|
+
<div style="margin-bottom: 0.5rem; font-weight: 600;">With Background</div>
|
|
49
|
+
<div style="display: flex; gap: 1rem; align-items: center;">
|
|
50
|
+
<StatusIcon status="idle" showBackground />
|
|
51
|
+
<StatusIcon status="pending" showBackground />
|
|
52
|
+
<StatusIcon status="running" showBackground />
|
|
53
|
+
<StatusIcon status="completed" showBackground />
|
|
54
|
+
<StatusIcon status="failed" showBackground />
|
|
55
|
+
<StatusIcon status="cancelled" showBackground />
|
|
56
|
+
<StatusIcon status="skipped" showBackground />
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</Story>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default StatusIcon;
|
|
2
|
+
type StatusIcon = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const StatusIcon: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import StatusIcon from "./StatusIcon.svelte";
|
|
15
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
@@ -84,11 +84,18 @@
|
|
|
84
84
|
width: var(--background-size);
|
|
85
85
|
height: var(--background-size);
|
|
86
86
|
background-color: var(--status-color);
|
|
87
|
+
color: #fff;
|
|
87
88
|
border-radius: var(--background-radius);
|
|
88
89
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
89
90
|
position: relative;
|
|
90
91
|
}
|
|
91
92
|
|
|
93
|
+
.status-icon--with-background :global(.status-icon__icon) {
|
|
94
|
+
width: var(--icon-size);
|
|
95
|
+
height: var(--icon-size);
|
|
96
|
+
font-size: var(--icon-size);
|
|
97
|
+
}
|
|
98
|
+
|
|
92
99
|
.status-icon--icon-only {
|
|
93
100
|
width: var(--icon-size);
|
|
94
101
|
height: var(--icon-size);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import StatusLabel from "./StatusLabel.svelte";
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: "Display/StatusLabel",
|
|
7
|
+
component: StatusLabel,
|
|
8
|
+
tags: ["autodocs"],
|
|
9
|
+
argTypes: {
|
|
10
|
+
label: { control: "text" },
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Story name="Default" args={{ label: "Ready" }} />
|
|
16
|
+
|
|
17
|
+
<Story name="Long Text" args={{ label: "Processing workflow execution..." }} />
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default StatusLabel;
|
|
2
|
+
type StatusLabel = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const StatusLabel: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import StatusLabel from "./StatusLabel.svelte";
|
|
15
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import ThemeToggle from "./ThemeToggle.svelte";
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: "Display/ThemeToggle",
|
|
7
|
+
component: ThemeToggle,
|
|
8
|
+
tags: ["autodocs"],
|
|
9
|
+
argTypes: {
|
|
10
|
+
size: {
|
|
11
|
+
control: { type: "select" },
|
|
12
|
+
options: ["sm", "md", "lg"],
|
|
13
|
+
},
|
|
14
|
+
showLabel: { control: "boolean" },
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Story name="Default" />
|
|
20
|
+
|
|
21
|
+
<Story name="Small" args={{ size: "sm" }} />
|
|
22
|
+
|
|
23
|
+
<Story name="Large" args={{ size: "lg" }} />
|
|
24
|
+
|
|
25
|
+
<Story name="With Label" args={{ showLabel: true }} />
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default ThemeToggle;
|
|
2
|
+
type ThemeToggle = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const ThemeToggle: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import ThemeToggle from "./ThemeToggle.svelte";
|
|
15
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<script lang="ts">
|
|
9
9
|
import Icon from '@iconify/svelte';
|
|
10
|
-
import {
|
|
10
|
+
import { getTheme, getResolvedTheme, cycleTheme } from '../stores/settingsStore.svelte.js';
|
|
11
11
|
import type { ThemePreference } from '../types/settings.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* - dark: moon icon
|
|
31
31
|
* - auto: computer/system icon
|
|
32
32
|
*/
|
|
33
|
-
const themeIcon = $derived(getThemeIcon(
|
|
33
|
+
const themeIcon = $derived(getThemeIcon(getTheme()));
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Get icon name based on theme preference
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
/**
|
|
50
50
|
* Get accessible label for the current theme
|
|
51
51
|
*/
|
|
52
|
-
const themeLabel = $derived(getThemeLabel(
|
|
52
|
+
const themeLabel = $derived(getThemeLabel(getTheme()));
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Get label text based on theme preference
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
/**
|
|
69
69
|
* Get tooltip text describing current state and next action
|
|
70
70
|
*/
|
|
71
|
-
const tooltipText = $derived(getTooltipText(
|
|
71
|
+
const tooltipText = $derived(getTooltipText(getTheme(), getResolvedTheme()));
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Get tooltip text based on theme preference
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
display: inline-flex;
|
|
121
121
|
align-items: center;
|
|
122
122
|
justify-content: center;
|
|
123
|
-
gap: var(--fd-space-
|
|
123
|
+
gap: var(--fd-space-xs);
|
|
124
124
|
border: 1px solid var(--fd-border);
|
|
125
125
|
border-radius: var(--fd-radius-md);
|
|
126
126
|
background-color: var(--fd-background);
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
|
|
147
147
|
/* Size variants */
|
|
148
148
|
.flowdrop-theme-toggle--sm {
|
|
149
|
-
padding: var(--fd-space-
|
|
149
|
+
padding: var(--fd-space-3xs) var(--fd-space-xs);
|
|
150
150
|
font-size: var(--fd-text-xs);
|
|
151
151
|
}
|
|
152
152
|
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
.flowdrop-theme-toggle--md {
|
|
158
|
-
padding: var(--fd-space-
|
|
158
|
+
padding: var(--fd-space-xs) var(--fd-space-md);
|
|
159
159
|
font-size: var(--fd-text-sm);
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
.flowdrop-theme-toggle--lg {
|
|
167
|
-
padding: var(--fd-space-
|
|
167
|
+
padding: var(--fd-space-md) var(--fd-space-xl);
|
|
168
168
|
font-size: var(--fd-text-base);
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
<div class="universal-node">
|
|
131
131
|
<!-- Render the node component dynamically (Svelte 5 dynamic component syntax) -->
|
|
132
132
|
{#if nodeComponent}
|
|
133
|
-
<!-- svelte-ignore binding_property_non_reactive -->
|
|
133
|
+
<!-- svelte-ignore binding_property_non_reactive — Svelte 5 dynamic component limitation; reactivity maintained via $derived -->
|
|
134
134
|
{@const NodeComponent = nodeComponent}
|
|
135
135
|
<NodeComponent {data} {selected} />
|
|
136
136
|
{/if}
|