@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Port Coordinate Store
|
|
2
|
+
* Port Coordinate Store (Svelte 5 Runes)
|
|
3
3
|
*
|
|
4
4
|
* General-purpose store that maintains absolute canvas-space coordinates
|
|
5
5
|
* for all port handles in the workflow. Built from SvelteFlow's internal
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
* which SvelteFlow already maintains for all node types. This avoids replicating
|
|
13
13
|
* CSS positioning logic and stays automatically accurate.
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { SvelteMap } from 'svelte/reactivity';
|
|
16
16
|
import { ProximityConnectHelper } from '../helpers/proximityConnect.js';
|
|
17
|
-
/**
|
|
18
|
-
|
|
17
|
+
/** Reactive state holding all port absolute coordinates, keyed by handleId */
|
|
18
|
+
let coordinates = $state(new SvelteMap());
|
|
19
19
|
/**
|
|
20
20
|
* Parse a handle ID to extract nodeId, direction, and portId.
|
|
21
21
|
* Handle ID format: ${nodeId}-${direction}-${portId}
|
|
@@ -37,7 +37,7 @@ function parseHandleId(handleId) {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Build a dataType lookup map from a node's ports.
|
|
40
|
-
* Maps portId
|
|
40
|
+
* Maps portId -> dataType for quick lookup when processing handle bounds.
|
|
41
41
|
*/
|
|
42
42
|
function buildPortDataTypeLookup(node) {
|
|
43
43
|
const lookup = new Map();
|
|
@@ -64,7 +64,7 @@ function computeNodePortCoordinates(node, internalNode) {
|
|
|
64
64
|
return [];
|
|
65
65
|
const posAbs = internalNode.internals.positionAbsolute;
|
|
66
66
|
const dataTypeLookup = buildPortDataTypeLookup(node);
|
|
67
|
-
const
|
|
67
|
+
const result = [];
|
|
68
68
|
const allHandles = [...(handleBounds.source ?? []), ...(handleBounds.target ?? [])];
|
|
69
69
|
for (const handle of allHandles) {
|
|
70
70
|
if (!handle.id)
|
|
@@ -76,7 +76,7 @@ function computeNodePortCoordinates(node, internalNode) {
|
|
|
76
76
|
const dataType = dataTypeLookup.get(lookupKey);
|
|
77
77
|
if (!dataType)
|
|
78
78
|
continue;
|
|
79
|
-
|
|
79
|
+
result.push({
|
|
80
80
|
x: posAbs.x + handle.x + handle.width / 2,
|
|
81
81
|
y: posAbs.y + handle.y + handle.height / 2,
|
|
82
82
|
handleId: handle.id,
|
|
@@ -85,7 +85,7 @@ function computeNodePortCoordinates(node, internalNode) {
|
|
|
85
85
|
dataType
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
|
-
return
|
|
88
|
+
return result;
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Rebuild coordinates for ALL nodes from SvelteFlow internals.
|
|
@@ -95,7 +95,7 @@ function computeNodePortCoordinates(node, internalNode) {
|
|
|
95
95
|
* @param getInternalNode - SvelteFlow's getInternalNode function
|
|
96
96
|
*/
|
|
97
97
|
export function rebuildAllPortCoordinates(nodes, getInternalNode) {
|
|
98
|
-
const map = new
|
|
98
|
+
const map = new SvelteMap();
|
|
99
99
|
for (const node of nodes) {
|
|
100
100
|
const internalNode = getInternalNode(node.id);
|
|
101
101
|
if (!internalNode)
|
|
@@ -105,7 +105,7 @@ export function rebuildAllPortCoordinates(nodes, getInternalNode) {
|
|
|
105
105
|
map.set(coord.handleId, coord);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
coordinates = map;
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
111
|
* Update coordinates for a single node (efficient for drag updates).
|
|
@@ -118,21 +118,17 @@ export function updateNodePortCoordinates(node, getInternalNode) {
|
|
|
118
118
|
const internalNode = getInternalNode(node.id);
|
|
119
119
|
if (!internalNode)
|
|
120
120
|
return;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
map.delete(key);
|
|
126
|
-
}
|
|
121
|
+
// Remove old entries for this node
|
|
122
|
+
for (const [key, coord] of coordinates) {
|
|
123
|
+
if (coord.nodeId === node.id) {
|
|
124
|
+
coordinates.delete(key);
|
|
127
125
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return new Map(map);
|
|
135
|
-
});
|
|
126
|
+
}
|
|
127
|
+
// Add new entries
|
|
128
|
+
const coords = computeNodePortCoordinates(node, internalNode);
|
|
129
|
+
for (const coord of coords) {
|
|
130
|
+
coordinates.set(coord.handleId, coord);
|
|
131
|
+
}
|
|
136
132
|
}
|
|
137
133
|
/**
|
|
138
134
|
* Remove all coordinates for a node (on node delete).
|
|
@@ -140,14 +136,11 @@ export function updateNodePortCoordinates(node, getInternalNode) {
|
|
|
140
136
|
* @param nodeId - ID of the node to remove
|
|
141
137
|
*/
|
|
142
138
|
export function removeNodePortCoordinates(nodeId) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
map.delete(key);
|
|
147
|
-
}
|
|
139
|
+
for (const [key, coord] of coordinates) {
|
|
140
|
+
if (coord.nodeId === nodeId) {
|
|
141
|
+
coordinates.delete(key);
|
|
148
142
|
}
|
|
149
|
-
|
|
150
|
-
});
|
|
143
|
+
}
|
|
151
144
|
}
|
|
152
145
|
/**
|
|
153
146
|
* Get coordinates for a specific handle.
|
|
@@ -156,7 +149,7 @@ export function removeNodePortCoordinates(nodeId) {
|
|
|
156
149
|
* @returns The port coordinate or undefined if not found
|
|
157
150
|
*/
|
|
158
151
|
export function getPortCoordinate(handleId) {
|
|
159
|
-
return
|
|
152
|
+
return coordinates.get(handleId);
|
|
160
153
|
}
|
|
161
154
|
/**
|
|
162
155
|
* Get all coordinates for a specific node.
|
|
@@ -166,7 +159,7 @@ export function getPortCoordinate(handleId) {
|
|
|
166
159
|
*/
|
|
167
160
|
export function getNodePortCoordinates(nodeId) {
|
|
168
161
|
const result = [];
|
|
169
|
-
for (const coord of
|
|
162
|
+
for (const coord of coordinates.values()) {
|
|
170
163
|
if (coord.nodeId === nodeId) {
|
|
171
164
|
result.push(coord);
|
|
172
165
|
}
|
|
@@ -174,10 +167,20 @@ export function getNodePortCoordinates(nodeId) {
|
|
|
174
167
|
return result;
|
|
175
168
|
}
|
|
176
169
|
/**
|
|
177
|
-
* Get the current snapshot of all port coordinates
|
|
170
|
+
* Get the current snapshot of all port coordinates.
|
|
171
|
+
* Returns the reactive SvelteMap directly.
|
|
178
172
|
*
|
|
179
173
|
* @returns Current port coordinate map
|
|
180
174
|
*/
|
|
181
175
|
export function getPortCoordinateSnapshot() {
|
|
182
|
-
return
|
|
176
|
+
return coordinates;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get the reactive port coordinates state.
|
|
180
|
+
* Useful for components that need to reactively read the coordinates.
|
|
181
|
+
*
|
|
182
|
+
* @returns The reactive port coordinate map
|
|
183
|
+
*/
|
|
184
|
+
export function getPortCoordinates() {
|
|
185
|
+
return coordinates;
|
|
183
186
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Settings Store for FlowDrop
|
|
2
|
+
* Settings Store for FlowDrop (Svelte 5 Runes)
|
|
3
3
|
*
|
|
4
4
|
* Provides unified state management for all user-configurable settings with:
|
|
5
5
|
* - Hybrid persistence (localStorage primary, optional API sync)
|
|
6
|
-
* - Category-specific
|
|
6
|
+
* - Category-specific getter functions for performance
|
|
7
7
|
* - Deep merge support for partial updates
|
|
8
8
|
* - Integrated theme system with system preference detection
|
|
9
9
|
*
|
|
@@ -12,47 +12,58 @@
|
|
|
12
12
|
import type { FlowDropSettings, ThemeSettings, EditorSettings, UISettings, BehaviorSettings, ApiSettings, PartialSettings, SyncStatus, ResolvedTheme, ThemePreference, SettingsChangeCallback, SettingsCategory } from '../types/settings.js';
|
|
13
13
|
export type { ThemePreference, ResolvedTheme } from '../types/settings.js';
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Get current settings (replaces settingsStore derived store)
|
|
16
16
|
*/
|
|
17
|
-
export declare
|
|
17
|
+
export declare function getSettings(): FlowDropSettings;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Get sync status (replaces syncStatusStore derived store)
|
|
20
20
|
*/
|
|
21
|
-
export declare
|
|
21
|
+
export declare function getSyncStatus(): {
|
|
22
22
|
status: SyncStatus;
|
|
23
|
-
lastSyncedAt: number;
|
|
24
|
-
error: string;
|
|
25
|
-
}
|
|
23
|
+
lastSyncedAt: number | null;
|
|
24
|
+
error: string | null;
|
|
25
|
+
};
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Get theme settings (replaces themeSettings derived store)
|
|
28
28
|
*/
|
|
29
|
-
export declare
|
|
29
|
+
export declare function getThemeSettings(): ThemeSettings;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* Get editor settings (replaces editorSettings derived store)
|
|
32
32
|
*/
|
|
33
|
-
export declare
|
|
33
|
+
export declare function getEditorSettings(): EditorSettings;
|
|
34
34
|
/**
|
|
35
|
-
* UI settings store
|
|
35
|
+
* Get UI settings (replaces uiSettings derived store)
|
|
36
36
|
*/
|
|
37
|
-
export declare
|
|
37
|
+
export declare function getUiSettings(): UISettings;
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Get behavior settings (replaces behaviorSettings derived store)
|
|
40
40
|
*/
|
|
41
|
-
export declare
|
|
41
|
+
export declare function getBehaviorSettings(): BehaviorSettings;
|
|
42
42
|
/**
|
|
43
|
-
* API settings store
|
|
43
|
+
* Get API settings (replaces apiSettings derived store)
|
|
44
44
|
*/
|
|
45
|
-
export declare
|
|
45
|
+
export declare function getApiSettings(): ApiSettings;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
48
|
-
* Derived from themeSettings for convenient access
|
|
47
|
+
* Get theme preference (replaces theme derived store)
|
|
49
48
|
*/
|
|
50
|
-
export declare
|
|
49
|
+
export declare function getTheme(): ThemePreference;
|
|
51
50
|
/**
|
|
52
|
-
*
|
|
51
|
+
* Get resolved theme - the actual theme applied ('light' or 'dark')
|
|
53
52
|
* When preference is 'auto', resolves based on system preference
|
|
53
|
+
* (replaces resolvedTheme derived store)
|
|
54
|
+
*/
|
|
55
|
+
export declare function getResolvedTheme(): ResolvedTheme;
|
|
56
|
+
/**
|
|
57
|
+
* Get system theme state (for internal use)
|
|
58
|
+
*/
|
|
59
|
+
export declare function getSystemThemeState(): ResolvedTheme;
|
|
60
|
+
/**
|
|
61
|
+
* Initialize the system theme change listener.
|
|
62
|
+
* Sets up a media query listener for the system color scheme preference.
|
|
63
|
+
*
|
|
64
|
+
* @returns Cleanup function that removes the listener
|
|
54
65
|
*/
|
|
55
|
-
export declare
|
|
66
|
+
export declare function initThemeListener(): () => void;
|
|
56
67
|
/**
|
|
57
68
|
* Update settings with partial values
|
|
58
69
|
*
|
|
@@ -65,10 +76,6 @@ export declare function updateSettings(partial: PartialSettings): void;
|
|
|
65
76
|
* @param categories - Optional categories to reset (all if not specified)
|
|
66
77
|
*/
|
|
67
78
|
export declare function resetSettings(categories?: SettingsCategory[]): void;
|
|
68
|
-
/**
|
|
69
|
-
* Get current settings synchronously
|
|
70
|
-
*/
|
|
71
|
-
export declare function getSettings(): FlowDropSettings;
|
|
72
79
|
/**
|
|
73
80
|
* Set the theme preference
|
|
74
81
|
*
|
|
@@ -84,6 +91,12 @@ export declare function toggleTheme(): void;
|
|
|
84
91
|
* Cycle through theme options: light -> dark -> auto -> light
|
|
85
92
|
*/
|
|
86
93
|
export declare function cycleTheme(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Clean up the theme subscription created by initializeTheme().
|
|
96
|
+
* Call this when tearing down the settings system (e.g., in tests or
|
|
97
|
+
* component cleanup) to prevent memory leaks.
|
|
98
|
+
*/
|
|
99
|
+
export declare function cleanupThemeSubscription(): void;
|
|
87
100
|
/**
|
|
88
101
|
* Initialize the theme system
|
|
89
102
|
* Should be called once on app startup
|
|
@@ -91,6 +104,10 @@ export declare function cycleTheme(): void;
|
|
|
91
104
|
* This function:
|
|
92
105
|
* 1. Applies the current resolved theme to the document
|
|
93
106
|
* 2. Sets up reactivity to apply theme changes
|
|
107
|
+
*
|
|
108
|
+
* Note: In Svelte 5, we use $effect for reactivity. Since $effect can only
|
|
109
|
+
* be used in component context or $effect.root, we use $effect.root here
|
|
110
|
+
* to create a standalone reactive scope.
|
|
94
111
|
*/
|
|
95
112
|
export declare function initializeTheme(): void;
|
|
96
113
|
/**
|