Flowfile 0.5.3__py3-none-any.whl → 0.5.4__py3-none-any.whl

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 (146) hide show
  1. flowfile/__init__.py +16 -0
  2. flowfile/web/static/assets/{AdminView-49392a9a.js → AdminView-f9847d67.js} +1 -1
  3. flowfile/web/static/assets/{CloudConnectionView-36bcd6df.css → CloudConnectionView-cf85f943.css} +17 -17
  4. flowfile/web/static/assets/{CloudConnectionView-f13f202b.js → CloudConnectionView-faace55b.js} +4 -4
  5. flowfile/web/static/assets/{CloudStorageReader-0023d4a5.js → CloudStorageReader-d86ecaa7.js} +8 -8
  6. flowfile/web/static/assets/{CloudStorageWriter-8e781e11.js → CloudStorageWriter-0f4d9a44.js} +8 -8
  7. flowfile/web/static/assets/ColumnActionInput-c44b7aee.css +159 -0
  8. flowfile/web/static/assets/ColumnActionInput-f4189ae0.js +330 -0
  9. flowfile/web/static/assets/{ColumnSelector-8ad68ea9.js → ColumnSelector-e66b33da.js} +1 -1
  10. flowfile/web/static/assets/ContextMenu-49463352.js +9 -0
  11. flowfile/web/static/assets/ContextMenu-dd5f3f25.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-f709b884.js +9 -0
  13. flowfile/web/static/assets/ContextMenu.vue_vue_type_script_setup_true_lang-a1bd6314.js +59 -0
  14. flowfile/web/static/assets/{CrossJoin-03df6938.js → CrossJoin-24694b8f.js} +9 -9
  15. flowfile/web/static/assets/{CustomNode-8479239b.js → CustomNode-569d45ff.js} +27 -20
  16. flowfile/web/static/assets/CustomNode-edb9b939.css +42 -0
  17. flowfile/web/static/assets/{DatabaseConnectionSettings-e91df89a.css → DatabaseConnectionSettings-c20a1e16.css} +22 -20
  18. flowfile/web/static/assets/{DatabaseConnectionSettings-869e3efd.js → DatabaseConnectionSettings-cfc08938.js} +4 -4
  19. flowfile/web/static/assets/{DatabaseReader-36898a00.css → DatabaseReader-5bf8c75b.css} +39 -44
  20. flowfile/web/static/assets/{DatabaseReader-c58b9552.js → DatabaseReader-701feabb.js} +13 -13
  21. flowfile/web/static/assets/{DatabaseView-d26a9140.js → DatabaseView-0482e5b5.js} +2 -2
  22. flowfile/web/static/assets/{DatabaseWriter-4d05ddc7.js → DatabaseWriter-16721989.js} +12 -12
  23. flowfile/web/static/assets/{DatabaseWriter-217a99f1.css → DatabaseWriter-bdcf2c8b.css} +27 -25
  24. flowfile/web/static/assets/{DesignerView-a6d0ee84.css → DesignerView-49abb835.css} +391 -339
  25. flowfile/web/static/assets/{DesignerView-e6f5c0e8.js → DesignerView-f64749fb.js} +220 -118
  26. flowfile/web/static/assets/{DocumentationView-2e78ef1b.js → DocumentationView-61bd2990.js} +3 -3
  27. flowfile/web/static/assets/{DocumentationView-fd46c656.css → DocumentationView-9ea6e871.css} +9 -9
  28. flowfile/web/static/assets/{ExploreData-7b54caca.js → ExploreData-e2735b13.js} +7 -7
  29. flowfile/web/static/assets/{ExternalSource-3fa399b2.js → ExternalSource-2535c3b2.js} +9 -9
  30. flowfile/web/static/assets/{ExternalSource-47ab05a3.css → ExternalSource-7ac7373f.css} +17 -17
  31. flowfile/web/static/assets/{Filter-8cbbdbf3.js → Filter-2cdbc93c.js} +9 -9
  32. flowfile/web/static/assets/{Formula-aac42b1e.js → Formula-fcda3c2c.js} +9 -9
  33. flowfile/web/static/assets/{FuzzyMatch-cd9bbfca.js → FuzzyMatch-f8d3b7d3.js} +10 -10
  34. flowfile/web/static/assets/{GraphSolver-c24dec17.css → GraphSolver-4b4d7db9.css} +4 -4
  35. flowfile/web/static/assets/{GraphSolver-c7e6780e.js → GraphSolver-72eaa695.js} +11 -11
  36. flowfile/web/static/assets/GroupBy-5792782d.css +9 -0
  37. flowfile/web/static/assets/{GroupBy-93c5d22b.js → GroupBy-8aa0598b.js} +9 -9
  38. flowfile/web/static/assets/{Join-a19b2de2.js → Join-e40f0ffa.js} +10 -10
  39. flowfile/web/static/assets/{LoginView-0df4ed0a.js → LoginView-5111c9ae.js} +1 -1
  40. flowfile/web/static/assets/{ManualInput-8d3374b2.js → ManualInput-9b6f3224.js} +6 -6
  41. flowfile/web/static/assets/{MultiSelect-ad1b6243.js → MultiSelect-ef28e19e.js} +2 -2
  42. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-e278950d.js → MultiSelect.vue_vue_type_script_setup_true_lang-83b3bbfd.js} +1 -1
  43. flowfile/web/static/assets/{NodeDesigner-5f53be3f.css → NodeDesigner-94cd4dd3.css} +190 -190
  44. flowfile/web/static/assets/{NodeDesigner-40b647c9.js → NodeDesigner-d2b7ee2b.js} +171 -69
  45. flowfile/web/static/assets/{NumericInput-7100234c.js → NumericInput-1d789794.js} +2 -2
  46. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-5130219f.js → NumericInput.vue_vue_type_script_setup_true_lang-7775f83e.js} +1 -1
  47. flowfile/web/static/assets/{Output-35e97000.css → Output-692dd25d.css} +10 -10
  48. flowfile/web/static/assets/{Output-f5efd2aa.js → Output-cefef801.js} +13 -12
  49. flowfile/web/static/assets/{Pivot-d981d23c.js → Pivot-bab1b75b.js} +10 -10
  50. flowfile/web/static/assets/{PivotValidation-63de1f73.js → PivotValidation-e7941f91.js} +1 -1
  51. flowfile/web/static/assets/{PivotValidation-39386e95.js → PivotValidation-fba09336.js} +1 -1
  52. flowfile/web/static/assets/{PolarsCode-f9d69217.js → PolarsCode-740e40fa.js} +7 -7
  53. flowfile/web/static/assets/{PopOver-b22f049e.js → PopOver-862d7e28.js} +1 -1
  54. flowfile/web/static/assets/{Read-aec2e377.js → Read-225cc63f.js} +15 -14
  55. flowfile/web/static/assets/{Read-36e7bd51.css → Read-90f366bc.css} +13 -13
  56. flowfile/web/static/assets/{RecordCount-78ed6845.js → RecordCount-ffc71eca.js} +6 -6
  57. flowfile/web/static/assets/{RecordId-2156e890.js → RecordId-a70bb8df.js} +9 -9
  58. flowfile/web/static/assets/{SQLQueryComponent-48c72f5b.js → SQLQueryComponent-15a421f5.js} +3 -3
  59. flowfile/web/static/assets/SQLQueryComponent-edb90b98.css +29 -0
  60. flowfile/web/static/assets/{Sample-1352ca74.js → Sample-6c26afc7.js} +6 -6
  61. flowfile/web/static/assets/{SecretSelector-22b5ff89.js → SecretSelector-ceed9496.js} +2 -2
  62. flowfile/web/static/assets/{SecretsView-17df66ee.js → SecretsView-214d255a.js} +2 -2
  63. flowfile/web/static/assets/{Select-0aee4c54.js → Select-8fc29999.js} +9 -9
  64. flowfile/web/static/assets/{SettingsSection-f2002a6d.js → SettingsSection-3f70e4c3.js} +1 -1
  65. flowfile/web/static/assets/{SettingsSection-0784e157.js → SettingsSection-83090218.js} +1 -1
  66. flowfile/web/static/assets/{SettingsSection-cd341bb6.js → SettingsSection-9f0d1725.js} +1 -1
  67. flowfile/web/static/assets/SetupView-3fa0aa03.js +160 -0
  68. flowfile/web/static/assets/SetupView-e2da3442.css +230 -0
  69. flowfile/web/static/assets/{SingleSelect-460cc0ea.js → SingleSelect-a4a568cb.js} +2 -2
  70. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-30741bb2.js → SingleSelect.vue_vue_type_script_setup_true_lang-c8ebdd33.js} +1 -1
  71. flowfile/web/static/assets/{SliderInput-5d926864.js → SliderInput-be533e71.js} +1 -1
  72. flowfile/web/static/assets/{Sort-3cdc971b.js → Sort-154dad81.js} +9 -9
  73. flowfile/web/static/assets/Sort-4abb7fae.css +9 -0
  74. flowfile/web/static/assets/{TextInput-a2d0bfbd.js → TextInput-454e2bda.js} +2 -2
  75. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-abad1ca2.js → TextInput.vue_vue_type_script_setup_true_lang-e86510d0.js} +1 -1
  76. flowfile/web/static/assets/{TextToRows-918945f7.js → TextToRows-ea73433d.js} +9 -9
  77. flowfile/web/static/assets/{ToggleSwitch-f0ef5196.js → ToggleSwitch-9d7b30f1.js} +2 -2
  78. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-5605c793.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-00f2580e.js} +1 -1
  79. flowfile/web/static/assets/{UnavailableFields-54d2f518.css → UnavailableFields-394a1f78.css} +13 -13
  80. flowfile/web/static/assets/{UnavailableFields-bdad6144.js → UnavailableFields-b72a2c72.js} +4 -4
  81. flowfile/web/static/assets/{Union-e8ab8c86.js → Union-1e44f263.js} +6 -6
  82. flowfile/web/static/assets/Unique-2b705521.css +3 -0
  83. flowfile/web/static/assets/{Unique-8cd4f976.js → Unique-a3bc6d0a.js} +12 -12
  84. flowfile/web/static/assets/{Unpivot-710a2948.css → Unpivot-b6ad6427.css} +6 -6
  85. flowfile/web/static/assets/{Unpivot-8da14095.js → Unpivot-e27935fc.js} +11 -11
  86. flowfile/web/static/assets/{UnpivotValidation-6f7d89ff.js → UnpivotValidation-72497680.js} +1 -1
  87. flowfile/web/static/assets/{VueGraphicWalker-3fb312e1.js → VueGraphicWalker-d9ab70a3.js} +1 -1
  88. flowfile/web/static/assets/{api-24483f0d.js → api-a2102880.js} +1 -1
  89. flowfile/web/static/assets/{api-8b81fa73.js → api-f75042b0.js} +1 -1
  90. flowfile/web/static/assets/{dropDown-3d8dc5fa.css → dropDown-1d6acbd9.css} +26 -26
  91. flowfile/web/static/assets/{dropDown-ac0fda9d.js → dropDown-2798a109.js} +3 -3
  92. flowfile/web/static/assets/{fullEditor-5497a84a.js → fullEditor-cf7d7d93.js} +3 -3
  93. flowfile/web/static/assets/{fullEditor-a0be62b3.css → fullEditor-fe9f7e18.css} +3 -3
  94. flowfile/web/static/assets/{genericNodeSettings-99014e1d.js → genericNodeSettings-14eac1c3.js} +3 -3
  95. flowfile/web/static/assets/{index-fb6493ae.js → index-387a6f18.js} +175 -86
  96. flowfile/web/static/assets/{index-07dda503.js → index-6b367bb5.js} +1 -1
  97. flowfile/web/static/assets/{index-e6289dd0.css → index-e96ab018.css} +249 -10
  98. flowfile/web/static/assets/{index-3ba44389.js → index-f0a6e5a5.js} +2 -2
  99. flowfile/web/static/assets/nodeInput-ed2ae8d7.js +2 -0
  100. flowfile/web/static/assets/{outputCsv-8f8ba42d.js → outputCsv-3c1757e8.js} +1 -1
  101. flowfile/web/static/assets/{outputExcel-393f4fef.js → outputExcel-686e1f48.js} +1 -1
  102. flowfile/web/static/assets/{outputParquet-07c81f65.js → outputParquet-df28faa7.js} +1 -1
  103. flowfile/web/static/assets/{readCsv-07f6d9ad.js → readCsv-e37eee21.js} +1 -1
  104. flowfile/web/static/assets/{readExcel-ed69bc8f.js → readExcel-a13f14bb.js} +3 -3
  105. flowfile/web/static/assets/{readParquet-e3ed4528.js → readParquet-344cf746.js} +1 -1
  106. flowfile/web/static/assets/{secrets.api-002e7d7e.js → secrets.api-ae198c5c.js} +1 -1
  107. flowfile/web/static/assets/{selectDynamic-80b92899.js → selectDynamic-6b4b0767.js} +3 -3
  108. flowfile/web/static/assets/{vue-codemirror.esm-0965f39f.js → vue-codemirror.esm-31ba0e0b.js} +1 -1
  109. flowfile/web/static/assets/{vue-content-loader.es-c506ad97.js → vue-content-loader.es-4469c8ff.js} +1 -1
  110. flowfile/web/static/index.html +2 -2
  111. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/METADATA +2 -2
  112. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/RECORD +134 -129
  113. flowfile_core/auth/secrets.py +56 -13
  114. flowfile_core/fileExplorer/funcs.py +26 -4
  115. flowfile_core/flowfile/code_generator/__init__.py +11 -0
  116. flowfile_core/flowfile/code_generator/code_generator.py +347 -2
  117. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +13 -1
  118. flowfile_core/flowfile/flow_graph.py +2 -0
  119. flowfile_core/flowfile/flow_node/flow_node.py +52 -28
  120. flowfile_core/flowfile/node_designer/__init__.py +4 -0
  121. flowfile_core/flowfile/node_designer/ui_components.py +144 -1
  122. flowfile_core/routes/public.py +43 -1
  123. flowfile_core/schemas/cloud_storage_schemas.py +39 -15
  124. flowfile_core/secret_manager/secret_manager.py +107 -6
  125. flowfile_frame/__init__.py +11 -0
  126. flowfile_frame/database/__init__.py +36 -0
  127. flowfile_frame/database/connection_manager.py +205 -0
  128. flowfile_frame/database/frame_helpers.py +249 -0
  129. flowfile_worker/configs.py +31 -15
  130. flowfile_worker/secrets.py +105 -15
  131. flowfile_worker/spawner.py +10 -6
  132. flowfile/web/static/assets/ContextMenu-26d4dd27.css +0 -26
  133. flowfile/web/static/assets/ContextMenu-31ee57f0.js +0 -41
  134. flowfile/web/static/assets/ContextMenu-69a74055.js +0 -41
  135. flowfile/web/static/assets/ContextMenu-8e2051c6.js +0 -41
  136. flowfile/web/static/assets/ContextMenu-8ec1729e.css +0 -26
  137. flowfile/web/static/assets/ContextMenu-9b310c60.css +0 -26
  138. flowfile/web/static/assets/CustomNode-59e99a86.css +0 -32
  139. flowfile/web/static/assets/GroupBy-be7ac0bf.css +0 -51
  140. flowfile/web/static/assets/SQLQueryComponent-1c2f26b4.css +0 -27
  141. flowfile/web/static/assets/Sort-8a871341.css +0 -51
  142. flowfile/web/static/assets/Unique-9fb2f567.css +0 -51
  143. flowfile/web/static/assets/nodeInput-0eb13f1a.js +0 -2
  144. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/WHEEL +0 -0
  145. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/entry_points.txt +0 -0
  146. {flowfile-0.5.3.dist-info → flowfile-0.5.4.dist-info}/licenses/LICENSE +0 -0
@@ -157,12 +157,12 @@
157
157
  margin-bottom: 0.25rem;
158
158
  }
159
159
 
160
- .property-form[data-v-7ea3df75] {
160
+ .property-form[data-v-30942683] {
161
161
  display: flex;
162
162
  flex-direction: column;
163
163
  gap: var(--spacing-4);
164
164
  }
165
- .component-type-badge[data-v-7ea3df75] {
165
+ .component-type-badge[data-v-30942683] {
166
166
  display: inline-flex;
167
167
  align-items: center;
168
168
  gap: 0.5rem;
@@ -173,22 +173,22 @@
173
173
  font-weight: var(--font-weight-medium, 500);
174
174
  color: var(--color-text-primary, #374151);
175
175
  }
176
- .component-type-badge i[data-v-7ea3df75] {
176
+ .component-type-badge i[data-v-30942683] {
177
177
  color: var(--color-text-secondary, #6b7280);
178
178
  font-size: 0.875rem;
179
179
  }
180
- .property-group[data-v-7ea3df75] {
180
+ .property-group[data-v-30942683] {
181
181
  display: flex;
182
182
  flex-direction: column;
183
183
  gap: var(--spacing-3, 0.75rem);
184
184
  }
185
- .property-editor[data-v-7ea3df75] {
185
+ .property-editor[data-v-30942683] {
186
186
  border: 1px solid var(--border-color, #e0e0e0);
187
187
  border-radius: 8px;
188
188
  padding: 1rem;
189
189
  background: var(--bg-secondary, #f8f9fa);
190
190
  }
191
- .property-group-title[data-v-7ea3df75] {
191
+ .property-group-title[data-v-30942683] {
192
192
  font-size: var(--font-size-xs, 0.75rem);
193
193
  font-weight: var(--font-weight-semibold, 600);
194
194
  color: var(--color-text-secondary, #6b7280);
@@ -197,25 +197,25 @@
197
197
  padding-bottom: var(--spacing-2, 0.5rem);
198
198
  border-bottom: 1px solid var(--color-border-light, #e5e7eb);
199
199
  }
200
- .property-row[data-v-7ea3df75] {
200
+ .property-row[data-v-30942683] {
201
201
  display: flex;
202
202
  flex-direction: column;
203
203
  gap: var(--spacing-1, 0.25rem);
204
204
  }
205
- .property-row.checkbox-row[data-v-7ea3df75] {
205
+ .property-row.checkbox-row[data-v-30942683] {
206
206
  flex-direction: row;
207
207
  align-items: center;
208
208
  justify-content: space-between;
209
209
  }
210
- .property-label[data-v-7ea3df75] {
210
+ .property-label[data-v-30942683] {
211
211
  font-size: var(--font-size-sm, 0.875rem);
212
212
  font-weight: var(--font-weight-medium, 500);
213
213
  color: var(--color-text-secondary, #6b7280);
214
214
  }
215
- .required[data-v-7ea3df75] {
215
+ .required[data-v-30942683] {
216
216
  color: var(--color-danger, #ef4444);
217
217
  }
218
- .property-input[data-v-7ea3df75] {
218
+ .property-input[data-v-30942683] {
219
219
  width: 100%;
220
220
  padding: var(--spacing-2, 0.5rem);
221
221
  font-size: var(--font-size-sm, 0.875rem);
@@ -225,17 +225,17 @@
225
225
  color: var(--color-text-primary, #374151);
226
226
  transition: border-color var(--transition-fast, 0.15s);
227
227
  }
228
- .property-input[data-v-7ea3df75]:focus {
228
+ .property-input[data-v-30942683]:focus {
229
229
  outline: none;
230
230
  border-color: var(--input-border-focus, #4a6cf7);
231
231
  }
232
- .property-checkbox[data-v-7ea3df75] {
232
+ .property-checkbox[data-v-30942683] {
233
233
  width: 18px;
234
234
  height: 18px;
235
235
  cursor: pointer;
236
236
  accent-color: var(--primary-color, #4a6cf7);
237
237
  }
238
- .no-selection[data-v-7ea3df75] {
238
+ .no-selection[data-v-30942683] {
239
239
  display: flex;
240
240
  flex-direction: column;
241
241
  align-items: center;
@@ -244,28 +244,28 @@
244
244
  color: var(--color-text-secondary, #6b7280);
245
245
  text-align: center;
246
246
  }
247
- .no-selection i[data-v-7ea3df75] {
247
+ .no-selection i[data-v-30942683] {
248
248
  font-size: 2rem;
249
249
  margin-bottom: 0.75rem;
250
250
  opacity: 0.5;
251
251
  }
252
- .no-selection p[data-v-7ea3df75] {
252
+ .no-selection p[data-v-30942683] {
253
253
  margin: 0;
254
254
  font-size: var(--font-size-sm, 0.875rem);
255
255
  }
256
- .field-hint[data-v-7ea3df75] {
256
+ .field-hint[data-v-30942683] {
257
257
  font-size: var(--font-size-xs, 0.75rem);
258
258
  color: var(--color-text-secondary, #6b7280);
259
259
  margin-top: 0.25rem;
260
260
  }
261
- .action-section[data-v-7ea3df75] {
261
+ .action-section[data-v-30942683] {
262
262
  display: flex;
263
263
  flex-direction: column;
264
264
  gap: 0.5rem;
265
265
  padding-top: var(--spacing-4, 1rem);
266
266
  border-top: 1px solid var(--color-border-light, #e5e7eb);
267
267
  }
268
- .action-btn[data-v-7ea3df75] {
268
+ .action-btn[data-v-30942683] {
269
269
  display: inline-flex;
270
270
  align-items: center;
271
271
  justify-content: center;
@@ -280,83 +280,83 @@
280
280
  cursor: pointer;
281
281
  transition: background var(--transition-fast, 0.15s);
282
282
  }
283
- .action-btn[data-v-7ea3df75]:hover {
283
+ .action-btn[data-v-30942683]:hover {
284
284
  background: var(--primary-color-hover, #3d5bd9);
285
285
  }
286
- .action-btn i[data-v-7ea3df75] {
286
+ .action-btn i[data-v-30942683] {
287
287
  font-size: 0.875rem;
288
288
  }
289
289
 
290
- .help-section[data-v-5991e8aa] {
290
+ .help-section[data-v-3a89a078] {
291
291
  margin-bottom: 1.5rem;
292
292
  }
293
- .help-section[data-v-5991e8aa]:last-child {
293
+ .help-section[data-v-3a89a078]:last-child {
294
294
  margin-bottom: 0;
295
295
  }
296
- .help-section h4[data-v-5991e8aa] {
296
+ .help-section h4[data-v-3a89a078] {
297
297
  margin: 0 0 0.75rem 0;
298
298
  font-size: 1rem;
299
299
  font-weight: 600;
300
300
  color: var(--text-primary, #1a1a2e);
301
301
  }
302
- .help-section h5[data-v-5991e8aa] {
302
+ .help-section h5[data-v-3a89a078] {
303
303
  margin: 0 0 0.5rem 0;
304
304
  font-size: 0.875rem;
305
305
  font-weight: 600;
306
306
  color: var(--text-primary, #1a1a2e);
307
307
  }
308
- .help-section p[data-v-5991e8aa] {
308
+ .help-section p[data-v-3a89a078] {
309
309
  margin: 0 0 0.75rem 0;
310
310
  color: var(--text-secondary, #6c757d);
311
311
  line-height: 1.6;
312
312
  font-size: 0.875rem;
313
313
  }
314
- .help-list[data-v-5991e8aa] {
314
+ .help-list[data-v-3a89a078] {
315
315
  margin: 0.5rem 0;
316
316
  padding-left: 1.5rem;
317
317
  color: var(--text-secondary, #6c757d);
318
318
  font-size: 0.875rem;
319
319
  }
320
- .help-list li[data-v-5991e8aa] {
320
+ .help-list li[data-v-3a89a078] {
321
321
  margin-bottom: 0.375rem;
322
322
  line-height: 1.5;
323
323
  }
324
- .help-list code[data-v-5991e8aa] {
324
+ .help-list code[data-v-3a89a078] {
325
325
  background: var(--bg-secondary, #f8f9fa);
326
326
  padding: 0.125rem 0.375rem;
327
327
  border-radius: 3px;
328
- font-family: "Fira Code", "Monaco", monospace;
328
+ font-family: var(--font-family-mono);
329
329
  font-size: 0.8125rem;
330
330
  }
331
- .help-code[data-v-5991e8aa] {
331
+ .help-code[data-v-3a89a078] {
332
332
  display: block;
333
- background: #282c34;
333
+ background: var(--color-code-bg);
334
334
  padding: 0.75rem 1rem;
335
335
  border-radius: 6px;
336
- font-family: "Fira Code", "Monaco", monospace;
336
+ font-family: var(--font-family-mono);
337
337
  font-size: 0.8125rem;
338
338
  overflow-x: auto;
339
339
  margin: 0.5rem 0;
340
340
  }
341
- .help-code code[data-v-5991e8aa] {
342
- color: #abb2bf;
341
+ .help-code code[data-v-3a89a078] {
342
+ color: var(--color-code-text);
343
343
  white-space: pre;
344
344
  }
345
- .help-code-small[data-v-5991e8aa] {
345
+ .help-code-small[data-v-3a89a078] {
346
346
  display: block;
347
- background: #282c34;
347
+ background: var(--color-code-bg);
348
348
  padding: 0.5rem 0.75rem;
349
349
  border-radius: 4px;
350
- font-family: "Fira Code", "Monaco", monospace;
350
+ font-family: var(--font-family-mono);
351
351
  font-size: 0.75rem;
352
352
  overflow-x: auto;
353
353
  margin: 0;
354
354
  }
355
- .help-code-small code[data-v-5991e8aa] {
356
- color: #abb2bf;
355
+ .help-code-small code[data-v-3a89a078] {
356
+ color: var(--color-code-text);
357
357
  white-space: pre;
358
358
  }
359
- .help-note[data-v-5991e8aa] {
359
+ .help-note[data-v-3a89a078] {
360
360
  display: flex;
361
361
  align-items: flex-start;
362
362
  gap: 0.5rem;
@@ -366,43 +366,43 @@
366
366
  border-left: 3px solid var(--color-accent, #0891b2);
367
367
  margin-top: 0.75rem !important;
368
368
  }
369
- .help-note i[data-v-5991e8aa] {
369
+ .help-note i[data-v-3a89a078] {
370
370
  color: var(--color-accent, #0891b2);
371
371
  flex-shrink: 0;
372
372
  margin-top: 0.125rem;
373
373
  }
374
- .help-note code[data-v-5991e8aa] {
375
- background: rgba(255, 255, 255, 0.5);
374
+ .help-note code[data-v-3a89a078] {
375
+ background: var(--color-white-alpha-40);
376
376
  padding: 0.125rem 0.375rem;
377
377
  border-radius: 3px;
378
- font-family: "Fira Code", "Monaco", monospace;
378
+ font-family: var(--font-family-mono);
379
379
  font-size: 0.8125rem;
380
380
  }
381
- .pattern-grid[data-v-5991e8aa] {
381
+ .pattern-grid[data-v-3a89a078] {
382
382
  display: grid;
383
383
  grid-template-columns: repeat(2, 1fr);
384
384
  gap: 1rem;
385
385
  margin-top: 0.75rem;
386
386
  }
387
- .pattern-item[data-v-5991e8aa] {
387
+ .pattern-item[data-v-3a89a078] {
388
388
  background: var(--bg-secondary, #f8f9fa);
389
389
  padding: 0.75rem;
390
390
  border-radius: 6px;
391
391
  border: 1px solid var(--border-color, #e0e0e0);
392
392
  }
393
- .shortcuts-grid[data-v-5991e8aa] {
393
+ .shortcuts-grid[data-v-3a89a078] {
394
394
  display: flex;
395
395
  flex-direction: column;
396
396
  gap: 0.5rem;
397
397
  }
398
- .shortcut[data-v-5991e8aa] {
398
+ .shortcut[data-v-3a89a078] {
399
399
  display: flex;
400
400
  align-items: center;
401
401
  gap: 0.75rem;
402
402
  font-size: 0.875rem;
403
403
  color: var(--text-secondary, #6c757d);
404
404
  }
405
- .shortcut kbd[data-v-5991e8aa] {
405
+ .shortcut kbd[data-v-3a89a078] {
406
406
  display: inline-flex;
407
407
  align-items: center;
408
408
  justify-content: center;
@@ -414,17 +414,17 @@
414
414
  font-family: inherit;
415
415
  font-size: 0.75rem;
416
416
  font-weight: 500;
417
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
417
+ box-shadow: var(--shadow-xs);
418
418
  }
419
419
 
420
420
  /* Dark mode adjustments */
421
- [data-theme="dark"] .help-note[data-v-5991e8aa] {
422
- background: rgba(8, 145, 178, 0.1);
421
+ [data-theme="dark"] .help-note[data-v-3a89a078] {
422
+ background: var(--color-focus-ring-accent);
423
423
  }
424
- [data-theme="dark"] .help-note code[data-v-5991e8aa] {
425
- background: rgba(0, 0, 0, 0.2);
424
+ [data-theme="dark"] .help-note code[data-v-3a89a078] {
425
+ background: var(--color-black-alpha-20);
426
426
  }
427
- [data-theme="dark"] .help-list code[data-v-5991e8aa] {
427
+ [data-theme="dark"] .help-list code[data-v-3a89a078] {
428
428
  background: var(--color-background-tertiary, #0f3460);
429
429
  }
430
430
 
@@ -489,42 +489,42 @@
489
489
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
490
490
  }
491
491
 
492
- .code-preview[data-v-9323159f] {
493
- background: #282c34;
494
- border-radius: 4px;
492
+ .code-preview[data-v-f74c8de3] {
493
+ background: var(--color-code-bg);
494
+ border-radius: var(--border-radius-sm);
495
495
  overflow-x: auto;
496
496
  }
497
- .code-preview pre[data-v-9323159f] {
497
+ .code-preview pre[data-v-f74c8de3] {
498
498
  margin: 0;
499
499
  padding: 1rem;
500
500
  }
501
- .code-preview code[data-v-9323159f] {
502
- font-family: "Fira Code", "Monaco", monospace;
501
+ .code-preview code[data-v-f74c8de3] {
502
+ font-family: var(--font-family-mono);
503
503
  font-size: 0.8125rem;
504
- color: #abb2bf;
504
+ color: var(--color-code-text);
505
505
  white-space: pre;
506
506
  }
507
507
 
508
- .modal-header-error[data-v-a56bfe3f] {
509
- background: #fef2f2;
510
- border-bottom-color: #fecaca;
508
+ .modal-header-error[data-v-bf9df753] {
509
+ background: var(--color-danger-light);
510
+ border-bottom-color: var(--color-danger);
511
511
  }
512
- .modal-header-error .modal-title[data-v-a56bfe3f] {
513
- color: #dc2626;
512
+ .modal-header-error .modal-title[data-v-bf9df753] {
513
+ color: var(--color-danger-hover);
514
514
  }
515
- .modal-header-error .modal-title i[data-v-a56bfe3f] {
515
+ .modal-header-error .modal-title i[data-v-bf9df753] {
516
516
  margin-right: 0.5rem;
517
517
  }
518
- .validation-intro[data-v-a56bfe3f] {
518
+ .validation-intro[data-v-bf9df753] {
519
519
  margin: 0 0 1rem 0;
520
520
  color: var(--text-secondary);
521
521
  }
522
- .validation-errors-list[data-v-a56bfe3f] {
522
+ .validation-errors-list[data-v-bf9df753] {
523
523
  list-style: none;
524
524
  padding: 0;
525
525
  margin: 0;
526
526
  }
527
- .validation-error-item[data-v-a56bfe3f] {
527
+ .validation-error-item[data-v-bf9df753] {
528
528
  display: flex;
529
529
  align-items: flex-start;
530
530
  gap: 0.5rem;
@@ -532,15 +532,15 @@
532
532
  border-bottom: 1px solid var(--border-color);
533
533
  color: var(--text-primary);
534
534
  }
535
- .validation-error-item[data-v-a56bfe3f]:last-child {
535
+ .validation-error-item[data-v-bf9df753]:last-child {
536
536
  border-bottom: none;
537
537
  }
538
- .validation-error-item i[data-v-a56bfe3f] {
539
- color: #dc2626;
538
+ .validation-error-item i[data-v-bf9df753] {
539
+ color: var(--color-danger-hover);
540
540
  margin-top: 0.125rem;
541
541
  }
542
542
 
543
- .loading-indicator[data-v-ab27c047] {
543
+ .loading-indicator[data-v-fca09e8f] {
544
544
  display: flex;
545
545
  align-items: center;
546
546
  justify-content: center;
@@ -548,32 +548,32 @@
548
548
  padding: 2rem;
549
549
  color: var(--text-secondary);
550
550
  }
551
- .loading-indicator i[data-v-ab27c047] {
551
+ .loading-indicator i[data-v-fca09e8f] {
552
552
  font-size: 1.25rem;
553
553
  }
554
- .empty-nodes[data-v-ab27c047] {
554
+ .empty-nodes[data-v-fca09e8f] {
555
555
  text-align: center;
556
556
  padding: 3rem;
557
557
  color: var(--text-secondary);
558
558
  }
559
- .empty-nodes i[data-v-ab27c047] {
559
+ .empty-nodes i[data-v-fca09e8f] {
560
560
  font-size: 3rem;
561
561
  margin-bottom: 1rem;
562
562
  opacity: 0.5;
563
563
  }
564
- .empty-nodes p[data-v-ab27c047] {
564
+ .empty-nodes p[data-v-fca09e8f] {
565
565
  margin: 0;
566
566
  }
567
- .empty-hint[data-v-ab27c047] {
567
+ .empty-hint[data-v-fca09e8f] {
568
568
  font-size: 0.8125rem;
569
569
  margin-top: 0.5rem !important;
570
570
  }
571
- .nodes-grid[data-v-ab27c047] {
571
+ .nodes-grid[data-v-fca09e8f] {
572
572
  display: grid;
573
573
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
574
574
  gap: 1rem;
575
575
  }
576
- .node-card[data-v-ab27c047] {
576
+ .node-card[data-v-fca09e8f] {
577
577
  background: var(--card-bg);
578
578
  border: 1px solid var(--border-color);
579
579
  border-radius: 8px;
@@ -581,12 +581,12 @@
581
581
  transition: all 0.2s;
582
582
  overflow: hidden;
583
583
  }
584
- .node-card[data-v-ab27c047]:hover {
584
+ .node-card[data-v-fca09e8f]:hover {
585
585
  border-color: var(--primary-color);
586
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
586
+ box-shadow: var(--shadow-md);
587
587
  transform: translateY(-2px);
588
588
  }
589
- .node-card-header[data-v-ab27c047] {
589
+ .node-card-header[data-v-fca09e8f] {
590
590
  display: flex;
591
591
  align-items: center;
592
592
  gap: 0.5rem;
@@ -594,69 +594,69 @@
594
594
  background: var(--bg-secondary);
595
595
  border-bottom: 1px solid var(--border-color);
596
596
  }
597
- .node-card-header i[data-v-ab27c047] {
597
+ .node-card-header i[data-v-fca09e8f] {
598
598
  color: var(--primary-color);
599
599
  }
600
- .node-name[data-v-ab27c047] {
600
+ .node-name[data-v-fca09e8f] {
601
601
  font-weight: 600;
602
602
  font-size: 0.9375rem;
603
603
  }
604
- .node-card-body[data-v-ab27c047] {
604
+ .node-card-body[data-v-fca09e8f] {
605
605
  padding: 0.75rem 1rem;
606
606
  }
607
- .node-category[data-v-ab27c047] {
607
+ .node-category[data-v-fca09e8f] {
608
608
  display: inline-block;
609
609
  font-size: 0.6875rem;
610
610
  font-weight: 500;
611
611
  text-transform: uppercase;
612
612
  padding: 0.125rem 0.5rem;
613
613
  background: var(--primary-color);
614
- color: white;
614
+ color: var(--color-text-inverse);
615
615
  border-radius: 3px;
616
616
  margin-bottom: 0.5rem;
617
617
  }
618
- .node-description[data-v-ab27c047] {
618
+ .node-description[data-v-fca09e8f] {
619
619
  margin: 0;
620
620
  font-size: 0.8125rem;
621
621
  color: var(--text-secondary);
622
622
  line-height: 1.4;
623
623
  }
624
- .node-card-footer[data-v-ab27c047] {
624
+ .node-card-footer[data-v-fca09e8f] {
625
625
  padding: 0.5rem 1rem;
626
626
  border-top: 1px solid var(--border-color);
627
627
  background: var(--bg-secondary);
628
628
  }
629
- .node-file[data-v-ab27c047] {
629
+ .node-file[data-v-fca09e8f] {
630
630
  font-size: 0.75rem;
631
631
  color: var(--text-secondary);
632
- font-family: "Fira Code", "Monaco", monospace;
632
+ font-family: var(--font-family-mono);
633
633
  }
634
- .node-code-view[data-v-ab27c047] {
634
+ .node-code-view[data-v-fca09e8f] {
635
635
  border-radius: 6px;
636
636
  overflow: hidden;
637
637
  border: 1px solid var(--border-color, #3a3a4a);
638
638
  }
639
- .modal-header-error[data-v-ab27c047] {
640
- background: #fef2f2;
641
- border-bottom-color: #fecaca;
639
+ .modal-header-error[data-v-fca09e8f] {
640
+ background: var(--color-danger-light);
641
+ border-bottom-color: var(--color-danger);
642
642
  }
643
- .modal-header-error .modal-title[data-v-ab27c047] {
644
- color: #dc2626;
643
+ .modal-header-error .modal-title[data-v-fca09e8f] {
644
+ color: var(--color-danger-hover);
645
645
  }
646
- .modal-header-error .modal-title i[data-v-ab27c047] {
646
+ .modal-header-error .modal-title i[data-v-fca09e8f] {
647
647
  margin-right: 0.5rem;
648
648
  }
649
- .delete-warning[data-v-ab27c047] {
650
- color: #dc2626;
649
+ .delete-warning[data-v-fca09e8f] {
650
+ color: var(--color-danger-hover);
651
651
  font-size: 0.875rem;
652
652
  margin-top: 0.5rem;
653
653
  }
654
- .btn-danger[data-v-ab27c047] {
655
- background: #dc2626;
656
- color: white;
654
+ .btn-danger[data-v-fca09e8f] {
655
+ background: var(--color-danger-hover);
656
+ color: var(--color-text-inverse);
657
657
  }
658
- .btn-danger[data-v-ab27c047]:hover:not(:disabled) {
659
- background: #b91c1c;
658
+ .btn-danger[data-v-fca09e8f]:hover:not(:disabled) {
659
+ background: var(--color-danger-dark);
660
660
  }
661
661
 
662
662
  .modal-xl[data-v-865a257f] {
@@ -962,20 +962,20 @@
962
962
  background: rgba(16, 185, 129, 0.1);
963
963
  }
964
964
 
965
- .icon-selector[data-v-5e08bde1] {
965
+ .icon-selector[data-v-638bee77] {
966
966
  position: relative;
967
967
  }
968
- .icon-label[data-v-5e08bde1] {
968
+ .icon-label[data-v-638bee77] {
969
969
  font-size: 0.75rem;
970
970
  font-weight: 500;
971
971
  color: var(--text-secondary, #6b7280);
972
972
  display: block;
973
973
  margin-bottom: 0.25rem;
974
974
  }
975
- .icon-selector-content[data-v-5e08bde1] {
975
+ .icon-selector-content[data-v-638bee77] {
976
976
  position: relative;
977
977
  }
978
- .current-icon[data-v-5e08bde1] {
978
+ .current-icon[data-v-638bee77] {
979
979
  display: flex;
980
980
  align-items: center;
981
981
  gap: 0.5rem;
@@ -986,15 +986,15 @@
986
986
  cursor: pointer;
987
987
  transition: border-color 0.2s;
988
988
  }
989
- .current-icon[data-v-5e08bde1]:hover {
989
+ .current-icon[data-v-638bee77]:hover {
990
990
  border-color: var(--primary-color, #4a6cf7);
991
991
  }
992
- .icon-preview[data-v-5e08bde1] {
992
+ .icon-preview[data-v-638bee77] {
993
993
  width: 24px;
994
994
  height: 24px;
995
995
  object-fit: contain;
996
996
  }
997
- .icon-name[data-v-5e08bde1] {
997
+ .icon-name[data-v-638bee77] {
998
998
  flex: 1;
999
999
  font-size: 0.875rem;
1000
1000
  color: var(--text-primary, #374151);
@@ -1002,11 +1002,11 @@
1002
1002
  text-overflow: ellipsis;
1003
1003
  white-space: nowrap;
1004
1004
  }
1005
- .dropdown-arrow[data-v-5e08bde1] {
1005
+ .dropdown-arrow[data-v-638bee77] {
1006
1006
  font-size: 0.75rem;
1007
1007
  color: var(--text-secondary, #6b7280);
1008
1008
  }
1009
- .icon-dropdown[data-v-5e08bde1] {
1009
+ .icon-dropdown[data-v-638bee77] {
1010
1010
  position: absolute;
1011
1011
  top: 100%;
1012
1012
  left: 0;
@@ -1015,16 +1015,16 @@
1015
1015
  background: var(--bg-primary, #ffffff);
1016
1016
  border: 1px solid var(--border-color, #d1d5db);
1017
1017
  border-radius: 8px;
1018
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1018
+ box-shadow: var(--shadow-lg);
1019
1019
  z-index: 1000;
1020
1020
  max-height: 300px;
1021
1021
  overflow-y: auto;
1022
1022
  }
1023
- .upload-section[data-v-5e08bde1] {
1023
+ .upload-section[data-v-638bee77] {
1024
1024
  padding: 0.75rem;
1025
1025
  border-bottom: 1px solid var(--border-color, #e5e7eb);
1026
1026
  }
1027
- .upload-btn[data-v-5e08bde1] {
1027
+ .upload-btn[data-v-638bee77] {
1028
1028
  display: flex;
1029
1029
  align-items: center;
1030
1030
  justify-content: center;
@@ -1039,15 +1039,15 @@
1039
1039
  cursor: pointer;
1040
1040
  transition: all 0.2s;
1041
1041
  }
1042
- .upload-btn[data-v-5e08bde1]:hover {
1042
+ .upload-btn[data-v-638bee77]:hover {
1043
1043
  background: var(--bg-tertiary, #e5e7eb);
1044
1044
  border-color: var(--primary-color, #4a6cf7);
1045
1045
  color: var(--primary-color, #4a6cf7);
1046
1046
  }
1047
- .icons-section[data-v-5e08bde1] {
1047
+ .icons-section[data-v-638bee77] {
1048
1048
  padding: 0.5rem;
1049
1049
  }
1050
- .section-title[data-v-5e08bde1] {
1050
+ .section-title[data-v-638bee77] {
1051
1051
  font-size: 0.75rem;
1052
1052
  font-weight: 600;
1053
1053
  color: var(--text-secondary, #6b7280);
@@ -1056,12 +1056,12 @@
1056
1056
  margin-bottom: 0.5rem;
1057
1057
  padding: 0 0.25rem;
1058
1058
  }
1059
- .icons-grid[data-v-5e08bde1] {
1059
+ .icons-grid[data-v-638bee77] {
1060
1060
  display: grid;
1061
1061
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
1062
1062
  gap: 0.5rem;
1063
1063
  }
1064
- .icon-option[data-v-5e08bde1] {
1064
+ .icon-option[data-v-638bee77] {
1065
1065
  position: relative;
1066
1066
  display: flex;
1067
1067
  flex-direction: column;
@@ -1073,19 +1073,19 @@
1073
1073
  cursor: pointer;
1074
1074
  transition: all 0.2s;
1075
1075
  }
1076
- .icon-option[data-v-5e08bde1]:hover {
1076
+ .icon-option[data-v-638bee77]:hover {
1077
1077
  background: var(--bg-secondary, #f3f4f6);
1078
1078
  }
1079
- .icon-option.selected[data-v-5e08bde1] {
1079
+ .icon-option.selected[data-v-638bee77] {
1080
1080
  border-color: var(--primary-color, #4a6cf7);
1081
- background: rgba(74, 108, 247, 0.1);
1081
+ background: var(--color-focus-ring-button);
1082
1082
  }
1083
- .icon-img[data-v-5e08bde1] {
1083
+ .icon-img[data-v-638bee77] {
1084
1084
  width: 32px;
1085
1085
  height: 32px;
1086
1086
  object-fit: contain;
1087
1087
  }
1088
- .icon-filename[data-v-5e08bde1] {
1088
+ .icon-filename[data-v-638bee77] {
1089
1089
  font-size: 0.625rem;
1090
1090
  color: var(--text-secondary, #6b7280);
1091
1091
  text-align: center;
@@ -1094,7 +1094,7 @@
1094
1094
  white-space: nowrap;
1095
1095
  max-width: 100%;
1096
1096
  }
1097
- .delete-icon-btn[data-v-5e08bde1] {
1097
+ .delete-icon-btn[data-v-638bee77] {
1098
1098
  position: absolute;
1099
1099
  top: 2px;
1100
1100
  right: 2px;
@@ -1103,8 +1103,8 @@
1103
1103
  padding: 0;
1104
1104
  border: none;
1105
1105
  border-radius: 50%;
1106
- background: var(--danger-color, #ef4444);
1107
- color: white;
1106
+ background: var(--color-danger);
1107
+ color: var(--color-text-inverse);
1108
1108
  font-size: 0.625rem;
1109
1109
  cursor: pointer;
1110
1110
  opacity: 0;
@@ -1113,13 +1113,13 @@
1113
1113
  align-items: center;
1114
1114
  justify-content: center;
1115
1115
  }
1116
- .icon-option:hover .delete-icon-btn[data-v-5e08bde1] {
1116
+ .icon-option:hover .delete-icon-btn[data-v-638bee77] {
1117
1117
  opacity: 1;
1118
1118
  }
1119
- .delete-icon-btn[data-v-5e08bde1]:hover {
1120
- background: var(--danger-color-hover, #dc2626);
1119
+ .delete-icon-btn[data-v-638bee77]:hover {
1120
+ background: var(--color-danger-hover);
1121
1121
  }
1122
- .backdrop[data-v-5e08bde1] {
1122
+ .backdrop[data-v-638bee77] {
1123
1123
  position: fixed;
1124
1124
  top: 0;
1125
1125
  left: 0;
@@ -1133,7 +1133,7 @@
1133
1133
  */
1134
1134
 
1135
1135
  /* Panel styles - specific to Node Designer */
1136
- .panel[data-v-1c613876] {
1136
+ .panel[data-v-3db2802e] {
1137
1137
  background: var(--card-bg);
1138
1138
  border: 1px solid var(--color-border-primary);
1139
1139
  border-radius: var(--border-radius-lg);
@@ -1142,13 +1142,13 @@
1142
1142
  overflow: hidden;
1143
1143
  min-height: 0;
1144
1144
  }
1145
- .panel-header[data-v-1c613876] {
1145
+ .panel-header[data-v-3db2802e] {
1146
1146
  padding: var(--spacing-3) var(--spacing-4);
1147
1147
  border-bottom: 1px solid var(--color-border-primary);
1148
1148
  flex-shrink: 0;
1149
1149
  background-color: var(--color-background-secondary);
1150
1150
  }
1151
- .panel-header h3[data-v-1c613876] {
1151
+ .panel-header h3[data-v-3db2802e] {
1152
1152
  margin: 0;
1153
1153
  font-size: var(--font-size-xs);
1154
1154
  font-weight: var(--font-weight-semibold);
@@ -1156,7 +1156,7 @@
1156
1156
  letter-spacing: 0.05em;
1157
1157
  color: var(--color-text-secondary);
1158
1158
  }
1159
- .panel-content[data-v-1c613876] {
1159
+ .panel-content[data-v-3db2802e] {
1160
1160
  padding: var(--spacing-4);
1161
1161
  overflow-y: auto;
1162
1162
  flex: 1;
@@ -1165,24 +1165,24 @@
1165
1165
  }
1166
1166
 
1167
1167
  /* Node Designer specific layout */
1168
- .node-designer-container[data-v-1c613876] {
1168
+ .node-designer-container[data-v-3db2802e] {
1169
1169
  display: flex;
1170
1170
  height: 100%;
1171
1171
  background-color: var(--color-background-secondary);
1172
1172
  }
1173
- .node-designer-sidebar[data-v-1c613876] {
1173
+ .node-designer-sidebar[data-v-3db2802e] {
1174
1174
  width: 280px;
1175
1175
  flex-shrink: 0;
1176
1176
  border-right: 1px solid var(--color-border-primary);
1177
1177
  background-color: var(--color-background-primary);
1178
1178
  overflow-y: auto;
1179
1179
  }
1180
- .node-designer-canvas[data-v-1c613876] {
1180
+ .node-designer-canvas[data-v-3db2802e] {
1181
1181
  flex: 1;
1182
1182
  min-width: 0;
1183
1183
  position: relative;
1184
1184
  }
1185
- .node-designer-properties[data-v-1c613876] {
1185
+ .node-designer-properties[data-v-3db2802e] {
1186
1186
  width: 320px;
1187
1187
  flex-shrink: 0;
1188
1188
  border-left: 1px solid var(--color-border-primary);
@@ -1192,12 +1192,12 @@
1192
1192
 
1193
1193
  /* Component list styles
1194
1194
  Note: .component-list is currently unused, .component-item is used. */
1195
- .component-list[data-v-1c613876] {
1195
+ .component-list[data-v-3db2802e] {
1196
1196
  list-style: none;
1197
1197
  padding: 0;
1198
1198
  margin: 0;
1199
1199
  }
1200
- .component-item[data-v-1c613876] {
1200
+ .component-item[data-v-3db2802e] {
1201
1201
  display: flex;
1202
1202
  align-items: center;
1203
1203
  gap: var(--spacing-2);
@@ -1208,13 +1208,13 @@
1208
1208
  color: var(--color-text-primary);
1209
1209
  transition: background-color var(--transition-fast);
1210
1210
  }
1211
- .component-item[data-v-1c613876]:hover {
1211
+ .component-item[data-v-3db2802e]:hover {
1212
1212
  background-color: var(--color-background-hover);
1213
1213
  }
1214
- .component-item[data-v-1c613876]:last-child {
1214
+ .component-item[data-v-3db2802e]:last-child {
1215
1215
  border-bottom: none;
1216
1216
  }
1217
- .component-icon[data-v-1c613876] {
1217
+ .component-icon[data-v-3db2802e] {
1218
1218
  width: 24px;
1219
1219
  height: 24px;
1220
1220
  display: flex;
@@ -1224,10 +1224,10 @@
1224
1224
  }
1225
1225
 
1226
1226
  /* Property editor styles */
1227
- .property-group[data-v-1c613876] {
1227
+ .property-group[data-v-3db2802e] {
1228
1228
  margin-bottom: var(--spacing-4);
1229
1229
  }
1230
- .property-group-title[data-v-1c613876] {
1230
+ .property-group-title[data-v-3db2802e] {
1231
1231
  font-size: var(--font-size-xs);
1232
1232
  font-weight: var(--font-weight-semibold);
1233
1233
  color: var(--color-text-secondary);
@@ -1237,18 +1237,18 @@
1237
1237
  padding-bottom: var(--spacing-1);
1238
1238
  border-bottom: 1px solid var(--color-border-light);
1239
1239
  }
1240
- .property-row[data-v-1c613876] {
1240
+ .property-row[data-v-3db2802e] {
1241
1241
  display: flex;
1242
1242
  flex-direction: column;
1243
1243
  gap: var(--spacing-1);
1244
1244
  margin-bottom: var(--spacing-3);
1245
1245
  }
1246
- .property-label[data-v-1c613876] {
1246
+ .property-label[data-v-3db2802e] {
1247
1247
  font-size: var(--font-size-sm);
1248
1248
  font-weight: var(--font-weight-medium);
1249
1249
  color: var(--color-text-secondary);
1250
1250
  }
1251
- .property-input[data-v-1c613876] {
1251
+ .property-input[data-v-3db2802e] {
1252
1252
  width: 100%;
1253
1253
  padding: var(--spacing-2);
1254
1254
  font-size: var(--font-size-sm);
@@ -1258,13 +1258,13 @@
1258
1258
  color: var(--color-text-primary);
1259
1259
  transition: border-color var(--transition-fast);
1260
1260
  }
1261
- .property-input[data-v-1c613876]:focus {
1261
+ .property-input[data-v-3db2802e]:focus {
1262
1262
  outline: none;
1263
1263
  border-color: var(--input-border-focus);
1264
1264
  }
1265
1265
 
1266
1266
  /* Validation message styles */
1267
- .validation-message[data-v-1c613876] {
1267
+ .validation-message[data-v-3db2802e] {
1268
1268
  display: flex;
1269
1269
  align-items: flex-start;
1270
1270
  gap: var(--spacing-2);
@@ -1273,22 +1273,22 @@
1273
1273
  font-size: var(--font-size-sm);
1274
1274
  margin-bottom: var(--spacing-2);
1275
1275
  }
1276
- .validation-message.is-error[data-v-1c613876] {
1276
+ .validation-message.is-error[data-v-3db2802e] {
1277
1277
  background-color: var(--color-danger-light);
1278
1278
  color: var(--color-danger);
1279
1279
  border: 1px solid var(--color-danger);
1280
1280
  }
1281
- .validation-message.is-warning[data-v-1c613876] {
1281
+ .validation-message.is-warning[data-v-3db2802e] {
1282
1282
  background-color: var(--color-warning-light);
1283
1283
  color: var(--color-warning);
1284
1284
  border: 1px solid var(--color-warning);
1285
1285
  }
1286
- .validation-message.is-success[data-v-1c613876] {
1286
+ .validation-message.is-success[data-v-3db2802e] {
1287
1287
  background-color: var(--color-success-light);
1288
1288
  color: var(--color-success);
1289
1289
  border: 1px solid var(--color-success);
1290
1290
  }
1291
- .node-designer-container[data-v-1c613876] {
1291
+ .node-designer-container[data-v-3db2802e] {
1292
1292
  padding: 1rem;
1293
1293
  height: 100vh;
1294
1294
  max-height: 100vh;
@@ -1297,32 +1297,32 @@
1297
1297
  overflow: hidden;
1298
1298
  box-sizing: border-box;
1299
1299
  }
1300
- .page-header[data-v-1c613876] {
1300
+ .page-header[data-v-3db2802e] {
1301
1301
  display: flex;
1302
1302
  justify-content: space-between;
1303
1303
  align-items: center;
1304
1304
  margin-bottom: 1rem;
1305
1305
  flex-shrink: 0;
1306
1306
  }
1307
- .header-left[data-v-1c613876] {
1307
+ .header-left[data-v-3db2802e] {
1308
1308
  display: flex;
1309
1309
  flex-direction: column;
1310
1310
  }
1311
- .page-title[data-v-1c613876] {
1311
+ .page-title[data-v-3db2802e] {
1312
1312
  margin: 0;
1313
1313
  font-size: 1.5rem;
1314
1314
  font-weight: 600;
1315
1315
  }
1316
- .page-description[data-v-1c613876] {
1316
+ .page-description[data-v-3db2802e] {
1317
1317
  margin: 0.25rem 0 0 0;
1318
1318
  color: var(--text-secondary);
1319
1319
  font-size: 0.875rem;
1320
1320
  }
1321
- .header-actions[data-v-1c613876] {
1321
+ .header-actions[data-v-3db2802e] {
1322
1322
  display: flex;
1323
1323
  gap: 0.5rem;
1324
1324
  }
1325
- .designer-layout[data-v-1c613876] {
1325
+ .designer-layout[data-v-3db2802e] {
1326
1326
  display: grid;
1327
1327
  grid-template-columns: 200px 1fr 280px;
1328
1328
  gap: 1rem;
@@ -1333,33 +1333,33 @@
1333
1333
  }
1334
1334
 
1335
1335
  /* Design Canvas */
1336
- .design-canvas .panel-content[data-v-1c613876] {
1336
+ .design-canvas .panel-content[data-v-3db2802e] {
1337
1337
  display: flex;
1338
1338
  flex-direction: column;
1339
1339
  gap: 1.5rem;
1340
1340
  padding-bottom: 3rem;
1341
1341
  }
1342
- .metadata-section h4[data-v-1c613876] {
1342
+ .metadata-section h4[data-v-3db2802e] {
1343
1343
  margin: 0 0 0.75rem 0;
1344
1344
  font-size: 0.9375rem;
1345
1345
  font-weight: 600;
1346
1346
  }
1347
- .form-grid[data-v-1c613876] {
1347
+ .form-grid[data-v-3db2802e] {
1348
1348
  display: grid;
1349
1349
  grid-template-columns: repeat(2, 1fr);
1350
1350
  gap: 0.75rem;
1351
1351
  }
1352
- .form-field[data-v-1c613876] {
1352
+ .form-field[data-v-3db2802e] {
1353
1353
  display: flex;
1354
1354
  flex-direction: column;
1355
1355
  gap: 0.25rem;
1356
1356
  }
1357
- .form-field label[data-v-1c613876] {
1357
+ .form-field label[data-v-3db2802e] {
1358
1358
  font-size: 0.75rem;
1359
1359
  font-weight: 500;
1360
1360
  color: var(--text-secondary);
1361
1361
  }
1362
- .form-input[data-v-1c613876] {
1362
+ .form-input[data-v-3db2802e] {
1363
1363
  padding: 0.5rem;
1364
1364
  border: 1px solid var(--border-color);
1365
1365
  border-radius: 4px;
@@ -1367,22 +1367,22 @@
1367
1367
  color: var(--text-primary);
1368
1368
  font-size: 0.875rem;
1369
1369
  }
1370
- .form-input[data-v-1c613876]:focus {
1370
+ .form-input[data-v-3db2802e]:focus {
1371
1371
  outline: none;
1372
1372
  border-color: var(--primary-color);
1373
1373
  }
1374
- .icon-field[data-v-1c613876] {
1374
+ .icon-field[data-v-3db2802e] {
1375
1375
  grid-column: span 2;
1376
1376
  }
1377
1377
 
1378
1378
  /* Sections */
1379
- .sections-area[data-v-1c613876] {
1379
+ .sections-area[data-v-3db2802e] {
1380
1380
  border: 1px solid var(--border-color, #e0e0e0);
1381
1381
  border-radius: 8px;
1382
1382
  padding: 1rem;
1383
1383
  background: var(--bg-secondary, #f8f9fa);
1384
1384
  }
1385
- .sections-header[data-v-1c613876] {
1385
+ .sections-header[data-v-3db2802e] {
1386
1386
  display: flex;
1387
1387
  justify-content: space-between;
1388
1388
  align-items: center;
@@ -1390,40 +1390,40 @@
1390
1390
  padding-bottom: 0.75rem;
1391
1391
  border-bottom: 1px solid var(--border-color, #e0e0e0);
1392
1392
  }
1393
- .sections-header h4[data-v-1c613876] {
1393
+ .sections-header h4[data-v-3db2802e] {
1394
1394
  margin: 0;
1395
1395
  font-size: 0.9375rem;
1396
1396
  font-weight: 600;
1397
1397
  }
1398
- .add-section-btn[data-v-1c613876] {
1398
+ .add-section-btn[data-v-3db2802e] {
1399
1399
  display: inline-flex;
1400
1400
  align-items: center;
1401
1401
  gap: 0.375rem;
1402
1402
  padding: 0.5rem 1rem;
1403
- background: #4a6cf7;
1404
- color: white;
1403
+ background: var(--color-button-primary);
1404
+ color: var(--color-text-inverse);
1405
1405
  border: none;
1406
- border-radius: 4px;
1406
+ border-radius: var(--border-radius-sm);
1407
1407
  font-size: 0.875rem;
1408
1408
  font-weight: 500;
1409
1409
  cursor: pointer;
1410
- transition: background 0.2s;
1410
+ transition: background var(--transition-fast);
1411
1411
  }
1412
- .add-section-btn[data-v-1c613876]:hover {
1413
- background: #3d5bd9;
1412
+ .add-section-btn[data-v-3db2802e]:hover {
1413
+ background: var(--color-button-primary-hover);
1414
1414
  }
1415
- .add-section-btn i[data-v-1c613876] {
1415
+ .add-section-btn i[data-v-3db2802e] {
1416
1416
  font-size: 0.75rem;
1417
1417
  }
1418
- .empty-sections[data-v-1c613876] {
1418
+ .empty-sections[data-v-3db2802e] {
1419
1419
  text-align: center;
1420
1420
  padding: 2rem;
1421
1421
  color: var(--text-secondary);
1422
1422
  }
1423
- .empty-sections i[data-v-1c613876] {
1423
+ .empty-sections i[data-v-3db2802e] {
1424
1424
  font-size: 2rem;
1425
1425
  margin-bottom: 0.5rem;
1426
1426
  }
1427
- .empty-sections p[data-v-1c613876] {
1427
+ .empty-sections p[data-v-3db2802e] {
1428
1428
  margin: 0;
1429
1429
  }