@d34dman/flowdrop 0.0.43 → 0.0.45

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.
Files changed (97) hide show
  1. package/README.md +8 -8
  2. package/dist/api/enhanced-client.d.ts +3 -1
  3. package/dist/api/enhanced-client.js +35 -5
  4. package/dist/components/App.svelte +68 -34
  5. package/dist/components/ConfigForm.svelte +169 -142
  6. package/dist/components/ConfigForm.svelte.d.ts +4 -2
  7. package/dist/components/ConfigPanel.svelte +42 -15
  8. package/dist/components/LogsSidebar.svelte +20 -19
  9. package/dist/components/Navbar.svelte +150 -80
  10. package/dist/components/Navbar.svelte.d.ts +8 -0
  11. package/dist/components/NodeSidebar.svelte +334 -217
  12. package/dist/components/PipelineStatus.svelte +6 -1
  13. package/dist/components/ReadOnlyDetails.svelte +14 -14
  14. package/dist/components/SchemaForm.svelte +49 -30
  15. package/dist/components/SchemaForm.svelte.d.ts +11 -1
  16. package/dist/components/SettingsModal.svelte +279 -0
  17. package/dist/components/SettingsModal.svelte.d.ts +23 -0
  18. package/dist/components/SettingsPanel.svelte +615 -0
  19. package/dist/components/SettingsPanel.svelte.d.ts +21 -0
  20. package/dist/components/ThemeToggle.svelte +186 -0
  21. package/dist/components/ThemeToggle.svelte.d.ts +14 -0
  22. package/dist/components/WorkflowEditor.svelte +114 -38
  23. package/dist/components/form/FormArray.svelte +81 -81
  24. package/dist/components/form/FormAutocomplete.svelte +1014 -0
  25. package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
  26. package/dist/components/form/FormCheckboxGroup.svelte +16 -16
  27. package/dist/components/form/FormCodeEditor.svelte +26 -26
  28. package/dist/components/form/FormField.svelte +52 -21
  29. package/dist/components/form/FormFieldLight.svelte +19 -19
  30. package/dist/components/form/FormFieldWrapper.svelte +4 -4
  31. package/dist/components/form/FormMarkdownEditor.svelte +124 -57
  32. package/dist/components/form/FormNumberField.svelte +13 -13
  33. package/dist/components/form/FormRangeField.svelte +16 -16
  34. package/dist/components/form/FormSelect.svelte +15 -15
  35. package/dist/components/form/FormTemplateEditor.svelte +34 -34
  36. package/dist/components/form/FormTextField.svelte +13 -13
  37. package/dist/components/form/FormTextarea.svelte +13 -13
  38. package/dist/components/form/FormToggle.svelte +8 -8
  39. package/dist/components/form/index.d.ts +1 -0
  40. package/dist/components/form/index.js +1 -0
  41. package/dist/components/form/types.d.ts +133 -8
  42. package/dist/components/form/types.js +50 -1
  43. package/dist/components/interrupt/ChoicePrompt.svelte +45 -38
  44. package/dist/components/interrupt/ConfirmationPrompt.svelte +35 -35
  45. package/dist/components/interrupt/FormPrompt.svelte +27 -20
  46. package/dist/components/interrupt/InterruptBubble.svelte +50 -50
  47. package/dist/components/interrupt/TextInputPrompt.svelte +39 -32
  48. package/dist/components/layouts/MainLayout.svelte +233 -34
  49. package/dist/components/layouts/MainLayout.svelte.d.ts +12 -0
  50. package/dist/components/nodes/GatewayNode.svelte +175 -125
  51. package/dist/components/nodes/IdeaNode.svelte +70 -84
  52. package/dist/components/nodes/NotesNode.svelte +124 -88
  53. package/dist/components/nodes/SimpleNode.svelte +91 -69
  54. package/dist/components/nodes/SquareNode.svelte +102 -75
  55. package/dist/components/nodes/TerminalNode.svelte +127 -113
  56. package/dist/components/nodes/ToolNode.svelte +125 -76
  57. package/dist/components/nodes/WorkflowNode.svelte +164 -108
  58. package/dist/components/playground/ChatPanel.svelte +76 -76
  59. package/dist/components/playground/ExecutionLogs.svelte +71 -69
  60. package/dist/components/playground/InputCollector.svelte +59 -59
  61. package/dist/components/playground/MessageBubble.svelte +111 -112
  62. package/dist/components/playground/Playground.svelte +184 -138
  63. package/dist/components/playground/PlaygroundModal.svelte +18 -19
  64. package/dist/components/playground/SessionManager.svelte +68 -67
  65. package/dist/config/defaultPortConfig.js +22 -22
  66. package/dist/core/index.d.ts +2 -0
  67. package/dist/core/index.js +1 -0
  68. package/dist/form/fieldRegistry.d.ts +17 -1
  69. package/dist/form/fieldRegistry.js +18 -2
  70. package/dist/form/index.d.ts +20 -2
  71. package/dist/form/index.js +19 -1
  72. package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
  73. package/dist/helpers/nodeLayoutHelper.js +19 -0
  74. package/dist/helpers/workflowEditorHelper.js +23 -11
  75. package/dist/index.d.ts +5 -0
  76. package/dist/index.js +13 -0
  77. package/dist/services/autoSaveService.d.ts +112 -0
  78. package/dist/services/autoSaveService.js +223 -0
  79. package/dist/services/settingsService.d.ts +92 -0
  80. package/dist/services/settingsService.js +202 -0
  81. package/dist/services/toastService.d.ts +9 -0
  82. package/dist/services/toastService.js +30 -1
  83. package/dist/stores/settingsStore.d.ts +128 -0
  84. package/dist/stores/settingsStore.js +488 -0
  85. package/dist/stores/themeStore.d.ts +68 -0
  86. package/dist/stores/themeStore.js +215 -0
  87. package/dist/styles/base.css +338 -621
  88. package/dist/styles/toast.css +33 -0
  89. package/dist/styles/tokens.css +402 -0
  90. package/dist/types/index.d.ts +78 -0
  91. package/dist/types/index.js +2 -0
  92. package/dist/types/playground.d.ts +12 -0
  93. package/dist/types/settings.d.ts +185 -0
  94. package/dist/types/settings.js +101 -0
  95. package/dist/utils/colors.d.ts +100 -7
  96. package/dist/utils/colors.js +228 -67
  97. package/package.json +2 -2
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Theme Store for FlowDrop
3
+ *
4
+ * @deprecated This module is deprecated. Use `settingsStore` instead.
5
+ *
6
+ * The theme functionality has been moved to the unified settings system.
7
+ * Import from settingsStore for new code:
8
+ *
9
+ * ```typescript
10
+ * import { theme, resolvedTheme, setTheme, toggleTheme, cycleTheme } from "./settingsStore.js";
11
+ * ```
12
+ *
13
+ * This module re-exports from settingsStore for backward compatibility.
14
+ *
15
+ * Provides reactive theme state management with:
16
+ * - Three theme modes: 'light', 'dark', 'auto' (follows system preference)
17
+ * - localStorage persistence
18
+ * - System preference detection via matchMedia
19
+ * - Automatic data-theme attribute application
20
+ *
21
+ * @module stores/themeStore
22
+ */
23
+ import { writable, derived, get } from "svelte/store";
24
+ /** localStorage key for persisting theme preference */
25
+ const STORAGE_KEY = "flowdrop-theme";
26
+ /** Default theme preference when none is stored */
27
+ const DEFAULT_THEME = "auto";
28
+ // =========================================================================
29
+ // System Preference Detection
30
+ // =========================================================================
31
+ /**
32
+ * Get the system's color scheme preference
33
+ *
34
+ * @returns 'dark' if system prefers dark mode, 'light' otherwise
35
+ */
36
+ function getSystemTheme() {
37
+ if (typeof window === "undefined") {
38
+ return "light";
39
+ }
40
+ return window.matchMedia("(prefers-color-scheme: dark)").matches
41
+ ? "dark"
42
+ : "light";
43
+ }
44
+ /**
45
+ * Store for system theme preference
46
+ * Updates when system preference changes
47
+ */
48
+ const systemTheme = writable(typeof window !== "undefined" ? getSystemTheme() : "light");
49
+ // Listen for system theme changes
50
+ if (typeof window !== "undefined") {
51
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
52
+ /**
53
+ * Handler for system theme preference changes
54
+ */
55
+ const handleSystemThemeChange = (event) => {
56
+ systemTheme.set(event.matches ? "dark" : "light");
57
+ };
58
+ // Modern browsers use addEventListener
59
+ if (mediaQuery.addEventListener) {
60
+ mediaQuery.addEventListener("change", handleSystemThemeChange);
61
+ }
62
+ else {
63
+ // Fallback for older browsers
64
+ mediaQuery.addListener(handleSystemThemeChange);
65
+ }
66
+ }
67
+ // =========================================================================
68
+ // Theme Preference Store
69
+ // =========================================================================
70
+ /**
71
+ * Load saved theme preference from localStorage
72
+ *
73
+ * @returns Saved theme preference or default
74
+ */
75
+ function loadSavedTheme() {
76
+ if (typeof window === "undefined") {
77
+ return DEFAULT_THEME;
78
+ }
79
+ try {
80
+ const saved = localStorage.getItem(STORAGE_KEY);
81
+ if (saved === "light" || saved === "dark" || saved === "auto") {
82
+ return saved;
83
+ }
84
+ }
85
+ catch {
86
+ // localStorage may be unavailable (e.g., private browsing)
87
+ console.warn("Failed to load theme from localStorage");
88
+ }
89
+ return DEFAULT_THEME;
90
+ }
91
+ /**
92
+ * Save theme preference to localStorage
93
+ *
94
+ * @param theme - Theme preference to save
95
+ */
96
+ function saveTheme(theme) {
97
+ if (typeof window === "undefined") {
98
+ return;
99
+ }
100
+ try {
101
+ localStorage.setItem(STORAGE_KEY, theme);
102
+ }
103
+ catch {
104
+ // localStorage may be unavailable
105
+ console.warn("Failed to save theme to localStorage");
106
+ }
107
+ }
108
+ /**
109
+ * User's theme preference store
110
+ * Can be 'light', 'dark', or 'auto'
111
+ */
112
+ export const theme = writable(loadSavedTheme());
113
+ // =========================================================================
114
+ // Resolved Theme Store
115
+ // =========================================================================
116
+ /**
117
+ * Resolved theme store
118
+ * Always returns the actual theme being applied ('light' or 'dark')
119
+ * When theme is 'auto', this reflects the system preference
120
+ */
121
+ export const resolvedTheme = derived([theme, systemTheme], ([$theme, $systemTheme]) => {
122
+ if ($theme === "auto") {
123
+ return $systemTheme;
124
+ }
125
+ return $theme;
126
+ });
127
+ // =========================================================================
128
+ // Theme Actions
129
+ // =========================================================================
130
+ /**
131
+ * Apply theme to the document
132
+ * Sets the data-theme attribute on the document element
133
+ *
134
+ * @param resolved - The resolved theme to apply
135
+ */
136
+ function applyTheme(resolved) {
137
+ if (typeof document === "undefined") {
138
+ return;
139
+ }
140
+ document.documentElement.setAttribute("data-theme", resolved);
141
+ }
142
+ /**
143
+ * Set the theme preference
144
+ *
145
+ * @param newTheme - The new theme preference ('light', 'dark', or 'auto')
146
+ */
147
+ export function setTheme(newTheme) {
148
+ theme.set(newTheme);
149
+ saveTheme(newTheme);
150
+ }
151
+ /**
152
+ * Toggle between light and dark themes
153
+ * If currently 'auto', switches to the opposite of system preference
154
+ */
155
+ export function toggleTheme() {
156
+ const currentTheme = get(theme);
157
+ const currentResolved = get(resolvedTheme);
158
+ if (currentTheme === "auto") {
159
+ // Switch to opposite of system preference
160
+ setTheme(currentResolved === "dark" ? "light" : "dark");
161
+ }
162
+ else {
163
+ // Toggle between light and dark
164
+ setTheme(currentTheme === "dark" ? "light" : "dark");
165
+ }
166
+ }
167
+ /**
168
+ * Cycle through theme options: light -> dark -> auto -> light
169
+ */
170
+ export function cycleTheme() {
171
+ const currentTheme = get(theme);
172
+ switch (currentTheme) {
173
+ case "light":
174
+ setTheme("dark");
175
+ break;
176
+ case "dark":
177
+ setTheme("auto");
178
+ break;
179
+ case "auto":
180
+ setTheme("light");
181
+ break;
182
+ }
183
+ }
184
+ // =========================================================================
185
+ // Initialization
186
+ // =========================================================================
187
+ /**
188
+ * Initialize the theme system
189
+ * Should be called once on app startup
190
+ *
191
+ * This function:
192
+ * 1. Applies the current resolved theme to the document
193
+ * 2. Sets up reactivity to apply theme changes
194
+ */
195
+ export function initializeTheme() {
196
+ // Apply initial theme
197
+ const resolved = get(resolvedTheme);
198
+ applyTheme(resolved);
199
+ // Subscribe to resolved theme changes and apply them
200
+ resolvedTheme.subscribe((resolved) => {
201
+ applyTheme(resolved);
202
+ });
203
+ }
204
+ /**
205
+ * Check if theme system is initialized
206
+ * Useful for SSR scenarios
207
+ *
208
+ * @returns true if running in browser and theme is applied
209
+ */
210
+ export function isThemeInitialized() {
211
+ if (typeof document === "undefined") {
212
+ return false;
213
+ }
214
+ return document.documentElement.hasAttribute("data-theme");
215
+ }