Flowfile 0.5.3__py3-none-any.whl → 0.5.6__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 (153) hide show
  1. flowfile/__init__.py +16 -0
  2. flowfile/__main__.py +94 -1
  3. flowfile/web/static/assets/{AdminView-49392a9a.js → AdminView-c2c7942b.js} +1 -1
  4. flowfile/web/static/assets/{CloudConnectionView-f13f202b.js → CloudConnectionView-7a3042c6.js} +4 -4
  5. flowfile/web/static/assets/{CloudConnectionView-36bcd6df.css → CloudConnectionView-cf85f943.css} +17 -17
  6. flowfile/web/static/assets/{CloudStorageReader-0023d4a5.js → CloudStorageReader-709c4037.js} +8 -8
  7. flowfile/web/static/assets/{CloudStorageWriter-8e781e11.js → CloudStorageWriter-604c51a8.js} +8 -8
  8. flowfile/web/static/assets/ColumnActionInput-c44b7aee.css +159 -0
  9. flowfile/web/static/assets/ColumnActionInput-d63d6746.js +330 -0
  10. flowfile/web/static/assets/{ColumnSelector-8ad68ea9.js → ColumnSelector-0c8cd1cd.js} +1 -1
  11. flowfile/web/static/assets/ContextMenu-366bf1b4.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-85cf5b44.js +9 -0
  13. flowfile/web/static/assets/ContextMenu-9d28ae6d.js +9 -0
  14. flowfile/web/static/assets/ContextMenu.vue_vue_type_script_setup_true_lang-774c517c.js +59 -0
  15. flowfile/web/static/assets/{CrossJoin-03df6938.js → CrossJoin-38e5b99a.js} +9 -9
  16. flowfile/web/static/assets/{CustomNode-8479239b.js → CustomNode-76e8f3f5.js} +27 -20
  17. flowfile/web/static/assets/CustomNode-edb9b939.css +42 -0
  18. flowfile/web/static/assets/{DatabaseConnectionSettings-869e3efd.js → DatabaseConnectionSettings-38155669.js} +4 -4
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-e91df89a.css → DatabaseConnectionSettings-c20a1e16.css} +22 -20
  20. flowfile/web/static/assets/{DatabaseReader-c58b9552.js → DatabaseReader-2e549c8f.js} +13 -13
  21. flowfile/web/static/assets/{DatabaseReader-36898a00.css → DatabaseReader-5bf8c75b.css} +39 -44
  22. flowfile/web/static/assets/{DatabaseView-d26a9140.js → DatabaseView-dc877c29.js} +2 -2
  23. flowfile/web/static/assets/{DatabaseWriter-217a99f1.css → DatabaseWriter-bdcf2c8b.css} +27 -25
  24. flowfile/web/static/assets/{DatabaseWriter-4d05ddc7.js → DatabaseWriter-ffb91864.js} +12 -12
  25. flowfile/web/static/assets/{DesignerView-a6d0ee84.css → DesignerView-71d4e9a1.css} +429 -376
  26. flowfile/web/static/assets/{DesignerView-e6f5c0e8.js → DesignerView-a4466dab.js} +338 -183
  27. flowfile/web/static/assets/{DocumentationView-2e78ef1b.js → DocumentationView-979afc84.js} +3 -3
  28. flowfile/web/static/assets/{DocumentationView-fd46c656.css → DocumentationView-9ea6e871.css} +9 -9
  29. flowfile/web/static/assets/{ExploreData-7b54caca.js → ExploreData-e4b92aaf.js} +7 -7
  30. flowfile/web/static/assets/{ExternalSource-47ab05a3.css → ExternalSource-7ac7373f.css} +17 -17
  31. flowfile/web/static/assets/{ExternalSource-3fa399b2.js → ExternalSource-d08e7227.js} +9 -9
  32. flowfile/web/static/assets/{Filter-8cbbdbf3.js → Filter-7add806d.js} +9 -9
  33. flowfile/web/static/assets/{Formula-aac42b1e.js → Formula-36ab24d2.js} +9 -9
  34. flowfile/web/static/assets/{FuzzyMatch-cd9bbfca.js → FuzzyMatch-cc01bb04.js} +10 -10
  35. flowfile/web/static/assets/{GraphSolver-c24dec17.css → GraphSolver-4b4d7db9.css} +4 -4
  36. flowfile/web/static/assets/{GraphSolver-c7e6780e.js → GraphSolver-4fb98f3b.js} +11 -11
  37. flowfile/web/static/assets/GroupBy-5792782d.css +9 -0
  38. flowfile/web/static/assets/{GroupBy-93c5d22b.js → GroupBy-b3c8f429.js} +9 -9
  39. flowfile/web/static/assets/{Join-a19b2de2.js → Join-096b7b26.js} +10 -10
  40. flowfile/web/static/assets/{LoginView-0df4ed0a.js → LoginView-c33a246a.js} +1 -1
  41. flowfile/web/static/assets/{ManualInput-3702e677.css → ManualInput-39111f19.css} +48 -48
  42. flowfile/web/static/assets/{ManualInput-8d3374b2.js → ManualInput-7307e9b1.js} +55 -13
  43. flowfile/web/static/assets/{MultiSelect-ad1b6243.js → MultiSelect-14822c48.js} +2 -2
  44. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-e278950d.js → MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js} +1 -1
  45. flowfile/web/static/assets/{NodeDesigner-40b647c9.js → NodeDesigner-5036c392.js} +171 -69
  46. flowfile/web/static/assets/{NodeDesigner-5f53be3f.css → NodeDesigner-94cd4dd3.css} +190 -190
  47. flowfile/web/static/assets/{NumericInput-7100234c.js → NumericInput-15cf3b72.js} +2 -2
  48. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-5130219f.js → NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js} +1 -1
  49. flowfile/web/static/assets/{Output-f5efd2aa.js → Output-1f8ed42c.js} +13 -12
  50. flowfile/web/static/assets/{Output-35e97000.css → Output-692dd25d.css} +10 -10
  51. flowfile/web/static/assets/{Pivot-d981d23c.js → Pivot-0e153f4e.js} +10 -10
  52. flowfile/web/static/assets/{PivotValidation-63de1f73.js → PivotValidation-5a4f7c79.js} +1 -1
  53. flowfile/web/static/assets/{PivotValidation-39386e95.js → PivotValidation-81ec2a33.js} +1 -1
  54. flowfile/web/static/assets/{PolarsCode-f9d69217.js → PolarsCode-a39f15ac.js} +7 -7
  55. flowfile/web/static/assets/PopOver-ddcfe4f6.js +138 -0
  56. flowfile/web/static/assets/{Read-aec2e377.js → Read-39b63932.js} +15 -14
  57. flowfile/web/static/assets/{Read-36e7bd51.css → Read-90f366bc.css} +13 -13
  58. flowfile/web/static/assets/{RecordCount-78ed6845.js → RecordCount-e9048ccd.js} +6 -6
  59. flowfile/web/static/assets/{RecordId-2156e890.js → RecordId-ad02521d.js} +9 -9
  60. flowfile/web/static/assets/{SQLQueryComponent-48c72f5b.js → SQLQueryComponent-2eeecf0b.js} +3 -3
  61. flowfile/web/static/assets/SQLQueryComponent-edb90b98.css +29 -0
  62. flowfile/web/static/assets/{Sample-1352ca74.js → Sample-9a68c23d.js} +6 -6
  63. flowfile/web/static/assets/{SecretSelector-22b5ff89.js → SecretSelector-2429f35a.js} +2 -2
  64. flowfile/web/static/assets/{SecretsView-17df66ee.js → SecretsView-c6afc915.js} +2 -2
  65. flowfile/web/static/assets/{Select-0aee4c54.js → Select-fcd002b6.js} +9 -9
  66. flowfile/web/static/assets/{SettingsSection-cd341bb6.js → SettingsSection-5ce15962.js} +1 -1
  67. flowfile/web/static/assets/{SettingsSection-0784e157.js → SettingsSection-c6b1362c.js} +1 -1
  68. flowfile/web/static/assets/{SettingsSection-f2002a6d.js → SettingsSection-cebb91d5.js} +1 -1
  69. flowfile/web/static/assets/SetupView-2d12e01f.js +160 -0
  70. flowfile/web/static/assets/SetupView-ec26f76a.css +230 -0
  71. flowfile/web/static/assets/{SingleSelect-460cc0ea.js → SingleSelect-b67de4eb.js} +2 -2
  72. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-30741bb2.js → SingleSelect.vue_vue_type_script_setup_true_lang-eedb70eb.js} +1 -1
  73. flowfile/web/static/assets/{SliderInput-5d926864.js → SliderInput-fd8134ac.js} +1 -1
  74. flowfile/web/static/assets/Sort-4abb7fae.css +9 -0
  75. flowfile/web/static/assets/{Sort-3cdc971b.js → Sort-c005a573.js} +9 -9
  76. flowfile/web/static/assets/{TextInput-a2d0bfbd.js → TextInput-1bb31dab.js} +2 -2
  77. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-abad1ca2.js → TextInput.vue_vue_type_script_setup_true_lang-a51fe730.js} +1 -1
  78. flowfile/web/static/assets/{TextToRows-918945f7.js → TextToRows-4f363753.js} +9 -9
  79. flowfile/web/static/assets/{ToggleSwitch-f0ef5196.js → ToggleSwitch-ca0f2e5e.js} +2 -2
  80. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-5605c793.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-49aa41d8.js} +1 -1
  81. flowfile/web/static/assets/{UnavailableFields-54d2f518.css → UnavailableFields-394a1f78.css} +13 -13
  82. flowfile/web/static/assets/{UnavailableFields-bdad6144.js → UnavailableFields-f6147968.js} +4 -4
  83. flowfile/web/static/assets/{Union-e8ab8c86.js → Union-c65f17b7.js} +6 -6
  84. flowfile/web/static/assets/Unique-2b705521.css +3 -0
  85. flowfile/web/static/assets/{Unique-8cd4f976.js → Unique-a1d96fb2.js} +12 -12
  86. flowfile/web/static/assets/{Unpivot-710a2948.css → Unpivot-b6ad6427.css} +6 -6
  87. flowfile/web/static/assets/{Unpivot-8da14095.js → Unpivot-c2657ff3.js} +11 -11
  88. flowfile/web/static/assets/{UnpivotValidation-6f7d89ff.js → UnpivotValidation-28e29a3b.js} +1 -1
  89. flowfile/web/static/assets/{VueGraphicWalker-3fb312e1.js → VueGraphicWalker-2fc3ddd4.js} +1 -1
  90. flowfile/web/static/assets/{api-24483f0d.js → api-df48ec50.js} +1 -1
  91. flowfile/web/static/assets/{api-8b81fa73.js → api-ee542cf7.js} +1 -1
  92. flowfile/web/static/assets/{dropDown-3d8dc5fa.css → dropDown-1d6acbd9.css} +26 -26
  93. flowfile/web/static/assets/{dropDown-ac0fda9d.js → dropDown-7576a76a.js} +3 -3
  94. flowfile/web/static/assets/{fullEditor-5497a84a.js → fullEditor-7583bef5.js} +3 -3
  95. flowfile/web/static/assets/{fullEditor-a0be62b3.css → fullEditor-fe9f7e18.css} +3 -3
  96. flowfile/web/static/assets/{genericNodeSettings-99014e1d.js → genericNodeSettings-0155288b.js} +2 -3
  97. flowfile/web/static/assets/{index-3ba44389.js → index-057d770d.js} +2 -2
  98. flowfile/web/static/assets/{index-07dda503.js → index-aeec439d.js} +1 -1
  99. flowfile/web/static/assets/{index-fb6493ae.js → index-ca6799de.js} +2293 -196
  100. flowfile/web/static/assets/{index-e6289dd0.css → index-d60c9dd4.css} +560 -10
  101. flowfile/web/static/assets/nodeInput-d478b9ac.js +2 -0
  102. flowfile/web/static/assets/{outputCsv-8f8ba42d.js → outputCsv-c492b15e.js} +3 -3
  103. flowfile/web/static/assets/outputCsv-cc84e09f.css +2499 -0
  104. flowfile/web/static/assets/{outputExcel-393f4fef.js → outputExcel-13bfa10f.js} +1 -1
  105. flowfile/web/static/assets/{outputParquet-07c81f65.js → outputParquet-9be1523a.js} +1 -1
  106. flowfile/web/static/assets/{readCsv-07f6d9ad.js → readCsv-5a49a8c9.js} +1 -1
  107. flowfile/web/static/assets/{readExcel-ed69bc8f.js → readExcel-27c30ad8.js} +3 -3
  108. flowfile/web/static/assets/{readParquet-e3ed4528.js → readParquet-446bde68.js} +1 -1
  109. flowfile/web/static/assets/{secrets.api-002e7d7e.js → secrets.api-34431884.js} +1 -1
  110. flowfile/web/static/assets/{selectDynamic-80b92899.js → selectDynamic-5754a2b1.js} +2 -3
  111. flowfile/web/static/assets/{vue-codemirror.esm-0965f39f.js → vue-codemirror.esm-8f46fb36.js} +1 -1
  112. flowfile/web/static/assets/{vue-content-loader.es-c506ad97.js → vue-content-loader.es-808fe33a.js} +1 -1
  113. flowfile/web/static/index.html +2 -2
  114. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/METADATA +2 -2
  115. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/RECORD +139 -134
  116. flowfile_core/auth/secrets.py +56 -13
  117. flowfile_core/fileExplorer/funcs.py +26 -4
  118. flowfile_core/flowfile/code_generator/__init__.py +11 -0
  119. flowfile_core/flowfile/code_generator/code_generator.py +347 -2
  120. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +13 -1
  121. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +12 -0
  122. flowfile_core/flowfile/flow_graph.py +2 -0
  123. flowfile_core/flowfile/flow_node/flow_node.py +52 -28
  124. flowfile_core/flowfile/node_designer/__init__.py +4 -0
  125. flowfile_core/flowfile/node_designer/ui_components.py +144 -1
  126. flowfile_core/main.py +2 -4
  127. flowfile_core/routes/public.py +43 -1
  128. flowfile_core/schemas/cloud_storage_schemas.py +39 -15
  129. flowfile_core/secret_manager/secret_manager.py +107 -6
  130. flowfile_frame/__init__.py +11 -0
  131. flowfile_frame/database/__init__.py +36 -0
  132. flowfile_frame/database/connection_manager.py +205 -0
  133. flowfile_frame/database/frame_helpers.py +249 -0
  134. flowfile_worker/configs.py +31 -15
  135. flowfile_worker/secrets.py +105 -15
  136. flowfile_worker/spawner.py +10 -6
  137. flowfile/web/static/assets/ContextMenu-26d4dd27.css +0 -26
  138. flowfile/web/static/assets/ContextMenu-31ee57f0.js +0 -41
  139. flowfile/web/static/assets/ContextMenu-69a74055.js +0 -41
  140. flowfile/web/static/assets/ContextMenu-8e2051c6.js +0 -41
  141. flowfile/web/static/assets/ContextMenu-8ec1729e.css +0 -26
  142. flowfile/web/static/assets/ContextMenu-9b310c60.css +0 -26
  143. flowfile/web/static/assets/CustomNode-59e99a86.css +0 -32
  144. flowfile/web/static/assets/GroupBy-be7ac0bf.css +0 -51
  145. flowfile/web/static/assets/PopOver-b22f049e.js +0 -939
  146. flowfile/web/static/assets/SQLQueryComponent-1c2f26b4.css +0 -27
  147. flowfile/web/static/assets/Sort-8a871341.css +0 -51
  148. flowfile/web/static/assets/Unique-9fb2f567.css +0 -51
  149. flowfile/web/static/assets/nodeInput-0eb13f1a.js +0 -2
  150. flowfile/web/static/assets/outputCsv-b9a072af.css +0 -2499
  151. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/WHEEL +0 -0
  152. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/entry_points.txt +0 -0
  153. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/licenses/LICENSE +0 -0
@@ -1,9 +1,9 @@
1
1
 
2
- .button-group[data-v-b6e5fd3a] {
2
+ .button-group[data-v-e214f6f3] {
3
3
  display: flex;
4
4
  gap: 10px;
5
5
  }
6
- .button-group .el-button[data-v-b6e5fd3a] {
6
+ .button-group .el-button[data-v-e214f6f3] {
7
7
  display: flex;
8
8
  align-items: center;
9
9
  gap: 6px;
@@ -15,51 +15,52 @@
15
15
  font-size: 13px;
16
16
  font-weight: 500 !important;
17
17
  letter-spacing: 0.01em;
18
- box-shadow: 0 1px 2px rgba(1, 5, 13, 0.08);
18
+ box-shadow: var(--shadow-xs);
19
19
  flex-shrink: 0;
20
20
  }
21
21
 
22
22
  /* Run button - normal state */
23
- .button-group .el-button[data-v-b6e5fd3a]:first-child:not([disabled]) {
24
- background-color: rgb(2, 27, 45) !important;
25
- border: 1px solid rgb(17, 64, 97) !important;
26
- color: white !important;
23
+ .button-group .el-button[data-v-e214f6f3]:first-child:not([disabled]) {
24
+ background-color: var(--primary-blue) !important;
25
+ border: 1px solid var(--primary-blue-light) !important;
26
+ color: var(--color-accent-subtle) !important;
27
27
  }
28
28
 
29
29
  /* Run button - hover state */
30
- .button-group .el-button[data-v-b6e5fd3a]:first-child:not([disabled]):hover {
31
- background-color: rgba(65, 55, 200, 0.95) !important;
32
- border-color: rgba(65, 55, 200, 1) !important;
30
+ .button-group .el-button[data-v-e214f6f3]:first-child:not([disabled]):hover {
31
+ background-color: var(--color-button-primary) !important;
32
+ border-color: var(--color-button-primary) !important;
33
33
  }
34
34
 
35
35
  /* Run button - disabled state */
36
- .button-group .el-button:first-child[disabled][data-v-b6e5fd3a] {
37
- background-color: rgba(16, 24, 40, 0.3) !important;
38
- border: 1px solid rgba(16, 24, 40, 0.2) !important;
39
- color: rgba(255, 255, 255, 0.8) !important;
36
+ .button-group .el-button:first-child[disabled][data-v-e214f6f3] {
37
+ background-color: var(--color-gray-400) !important;
38
+ border: 1px solid var(--color-gray-400) !important;
39
+ color: var(--color-accent-subtle) !important;
40
40
  cursor: not-allowed;
41
+ opacity: 0.7;
41
42
  }
42
43
 
43
44
  /* Cancel button */
44
- .button-group .el-button[data-v-b6e5fd3a]:nth-child(2) {
45
- background-color: rgba(220, 53, 69, 0.9) !important;
46
- border: 1px solid rgba(220, 53, 69, 0.95) !important;
47
- color: white !important;
45
+ .button-group .el-button[data-v-e214f6f3]:nth-child(2) {
46
+ background-color: var(--color-danger) !important;
47
+ border: 1px solid var(--color-danger) !important;
48
+ color: var(--color-accent-subtle) !important;
48
49
  }
49
50
 
50
51
  /* Cancel button - hover state */
51
- .button-group .el-button[data-v-b6e5fd3a]:nth-child(2):hover {
52
- background-color: rgba(200, 35, 51, 0.95) !important;
53
- border-color: rgba(200, 35, 51, 1) !important;
52
+ .button-group .el-button[data-v-e214f6f3]:nth-child(2):hover {
53
+ background-color: var(--color-danger-hover) !important;
54
+ border-color: var(--color-danger-hover) !important;
54
55
  }
55
56
 
56
57
  /* Active state for both buttons */
57
- .button-group .el-button[data-v-b6e5fd3a]:active {
58
+ .button-group .el-button[data-v-e214f6f3]:active {
58
59
  transform: translateY(1px);
59
60
  box-shadow: none;
60
61
  }
61
62
 
62
- .browser-title[data-v-d209bc3c] {
63
+ .browser-title[data-v-bcb824aa] {
63
64
  display: flex;
64
65
  align-items: center;
65
66
  gap: 8px;
@@ -68,104 +69,122 @@
68
69
  font-weight: 600;
69
70
  color: var(--color-text-primary);
70
71
  }
71
- .mode-selector[data-v-d209bc3c] {
72
+ .mode-selector[data-v-bcb824aa] {
72
73
  display: flex;
73
74
  justify-content: center;
74
75
  }
75
- .browser-content[data-v-d209bc3c] {
76
+ .browser-content[data-v-bcb824aa] {
76
77
  display: flex;
77
78
  flex-direction: column;
78
79
  height: calc(100% - 116px); /* Adjust based on header height */
79
80
  overflow: hidden;
80
81
  }
81
- .browser-toolbar[data-v-d209bc3c] {
82
+ .browser-toolbar[data-v-bcb824aa] {
82
83
  padding: 16px;
83
84
  background-color: var(--color-background-primary);
84
- border-bottom: 1px solid #e9ecef;
85
+ border-bottom: 1px solid var(--color-border-primary);
86
+ }
87
+ .browser-action-btn[data-v-bcb824aa] {
88
+ background-color: var(--color-file-browser-bg);
89
+ color: var(--color-text-inverse);
85
90
  }
86
- .path-navigation[data-v-d209bc3c] {
91
+ .path-navigation[data-v-bcb824aa] {
87
92
  display: flex;
88
93
  align-items: center;
89
94
  gap: 12px;
90
95
  margin-bottom: 12px;
91
96
  }
92
- .nav-button[data-v-d209bc3c] {
97
+ .nav-button[data-v-bcb824aa] {
93
98
  display: inline-flex;
94
99
  align-items: center;
95
100
  gap: 4px;
96
101
  padding: 8px 16px;
97
- border: 1px solid #dee2e6;
102
+ border: 1px solid var(--color-border-primary);
98
103
  border-radius: 4px;
99
104
  background-color: var(--color-background-primary);
100
- color: #495057;
105
+ color: var(--color-text-secondary);
101
106
  font-size: 14px;
102
107
  cursor: pointer;
103
108
  transition: all 0.2s ease;
104
109
  }
105
- .nav-button[data-v-d209bc3c]:hover:not(:disabled) {
106
- background-color: #f8f9fa;
107
- border-color: #ced4da;
110
+ .nav-button[data-v-bcb824aa]:hover:not(:disabled) {
111
+ background-color: var(--color-background-secondary);
112
+ border-color: var(--color-border-secondary);
108
113
  }
109
- .current-path[data-v-d209bc3c] {
114
+ .current-path[data-v-bcb824aa] {
110
115
  flex: 1;
111
116
  padding: 8px 12px;
112
- background-color: #f8f9fa;
113
- border: 1px solid #dee2e6;
117
+ background-color: var(--color-background-secondary);
118
+ border: 1px solid var(--color-border-primary);
114
119
  border-radius: 4px;
115
- font-family: monospace;
116
- color: #495057;
120
+ font-family: var(--font-family-mono);
121
+ color: var(--color-text-secondary);
117
122
  }
118
- .search-container[data-v-d209bc3c] {
123
+ .search-container[data-v-bcb824aa] {
119
124
  display: flex;
120
125
  align-items: center;
121
126
  gap: 16px;
122
127
  flex: 1;
123
128
  }
124
- .search-input[data-v-d209bc3c] {
129
+ .search-input[data-v-bcb824aa] {
125
130
  flex: 1;
126
131
  }
127
- .browser-main[data-v-d209bc3c] {
132
+ .browser-main[data-v-bcb824aa] {
128
133
  flex: 1;
129
134
  overflow-y: auto;
130
135
  padding: 16px;
131
136
  }
132
- .file-item[data-v-d209bc3c] {
133
- border: 1px solid #e9ecef;
137
+ .file-item[data-v-bcb824aa] {
138
+ border: 1px solid var(--color-border-primary);
134
139
  border-radius: 8px;
135
140
  overflow: hidden;
136
141
  transition: all 0.2s ease;
137
142
  }
138
- .file-item[data-v-d209bc3c]:hover {
143
+ .file-item[data-v-bcb824aa]:hover {
139
144
  transform: translateY(-2px);
140
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
145
+ box-shadow: var(--shadow-sm);
146
+ }
147
+ .file-item.selected[data-v-bcb824aa] {
148
+ border-color: var(--color-info);
149
+ border-width: 2px;
150
+ background-color: var(--color-background-selected);
151
+ box-shadow: var(--shadow-md);
152
+ position: relative;
141
153
  }
142
- .file-item.selected[data-v-d209bc3c] {
143
- border-color: #3b82f6;
144
- background-color: #eff6ff;
154
+ .file-item.selected[data-v-bcb824aa]::after {
155
+ content: "check_circle";
156
+ font-family: "Material Icons";
157
+ position: absolute;
158
+ top: 6px;
159
+ right: 6px;
160
+ color: var(--color-info);
161
+ font-size: 18px;
162
+ background: var(--color-background-primary);
163
+ border-radius: 50%;
145
164
  }
146
- .file-item-content[data-v-d209bc3c] {
165
+ .file-item-content[data-v-bcb824aa] {
147
166
  padding: 12px;
148
167
  display: flex;
149
168
  align-items: center;
150
169
  gap: 12px;
151
170
  }
152
- .file-icon-wrapper[data-v-d209bc3c] {
171
+ .file-icon-wrapper[data-v-bcb824aa] {
153
172
  display: flex;
154
173
  align-items: center;
155
174
  justify-content: center;
156
175
  width: 30px;
157
176
  height: 30px;
158
177
  }
159
- .file-icon[data-v-d209bc3c] {
178
+ .file-icon[data-v-bcb824aa] {
160
179
  width: 24px;
161
180
  height: 24px;
162
- color: #6b7280;
181
+ color: var(--color-text-tertiary);
163
182
  }
164
- .file-details[data-v-d209bc3c] {
183
+ .file-details[data-v-bcb824aa] {
165
184
  flex: 1;
166
185
  min-width: 0;
167
186
  }
168
- .file-name[data-v-d209bc3c] {
187
+ .file-name[data-v-bcb824aa] {
169
188
  font-weight: 500;
170
189
  color: var(--color-text-primary);
171
190
  margin-bottom: 4px;
@@ -173,11 +192,11 @@
173
192
  overflow: hidden;
174
193
  text-overflow: ellipsis;
175
194
  }
176
- .file-info[data-v-d209bc3c] {
195
+ .file-info[data-v-bcb824aa] {
177
196
  font-size: 12px;
178
197
  color: var(--color-text-secondary);
179
198
  }
180
- .browser-actions[data-v-d209bc3c] {
199
+ .browser-actions[data-v-bcb824aa] {
181
200
  padding: 16px;
182
201
  background-color: var(--color-background-secondary);
183
202
  border-top: 1px solid var(--color-border-primary);
@@ -188,46 +207,90 @@
188
207
  box-sizing: border-box;
189
208
  gap: 12px;
190
209
  }
191
- .selected-file[data-v-d209bc3c] {
210
+ .selected-file[data-v-bcb824aa] {
192
211
  color: var(--color-text-secondary);
193
212
  font-size: 14px;
194
213
  }
195
- .loading-state[data-v-d209bc3c],
196
- .error-state[data-v-d209bc3c] {
214
+ .loading-state[data-v-bcb824aa],
215
+ .error-state[data-v-bcb824aa],
216
+ .empty-state[data-v-bcb824aa] {
197
217
  display: flex;
198
218
  align-items: center;
199
219
  justify-content: center;
200
220
  height: 200px;
201
221
  color: var(--color-text-secondary);
202
222
  }
203
- .error-state[data-v-d209bc3c] {
223
+ .error-state[data-v-bcb824aa] {
204
224
  color: var(--color-danger);
205
225
  }
206
- .hidden-file[data-v-d209bc3c] {
226
+ .error-content[data-v-bcb824aa] {
227
+ display: flex;
228
+ flex-direction: column;
229
+ align-items: center;
230
+ gap: 12px;
231
+ text-align: center;
232
+ }
233
+ .error-icon[data-v-bcb824aa] {
234
+ font-size: 48px;
235
+ color: var(--color-danger, #ef4444);
236
+ }
237
+ .error-message[data-v-bcb824aa] {
238
+ max-width: 300px;
239
+ }
240
+ .empty-state[data-v-bcb824aa] {
241
+ flex-direction: column;
242
+ gap: 8px;
243
+ color: var(--color-text-secondary);
244
+ }
245
+ .empty-state .material-icons[data-v-bcb824aa] {
246
+ font-size: 48px;
247
+ opacity: 0.5;
248
+ }
249
+
250
+ /* Refresh button styling */
251
+ .refresh-button[data-v-bcb824aa] {
252
+ padding: 8px;
253
+ min-width: auto;
254
+ }
255
+ .refresh-button .material-icons[data-v-bcb824aa] {
256
+ transition: transform 0.3s ease;
257
+ }
258
+ .refresh-button .material-icons.spin[data-v-bcb824aa] {
259
+ animation: spin-bcb824aa 1s linear infinite;
260
+ }
261
+ @keyframes spin-bcb824aa {
262
+ from {
263
+ transform: rotate(0deg);
264
+ }
265
+ to {
266
+ transform: rotate(360deg);
267
+ }
268
+ }
269
+ .hidden-file[data-v-bcb824aa] {
207
270
  opacity: 0.5;
208
271
  }
209
- .file-browser[data-v-d209bc3c] {
272
+ .file-browser[data-v-bcb824aa] {
210
273
  display: flex;
211
274
  flex-direction: column;
212
275
  height: 70vh; /* Set to 70% of viewport height */
213
276
  background-color: var(--color-background-primary);
214
277
  border-radius: 8px;
215
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
278
+ box-shadow: var(--shadow-md);
216
279
  }
217
- .browser-content[data-v-d209bc3c] {
280
+ .browser-content[data-v-bcb824aa] {
218
281
  display: flex;
219
282
  flex-direction: column;
220
283
  flex: 1;
221
284
  min-height: 0; /* Enable proper flex child scrolling */
222
285
  overflow: hidden;
223
286
  }
224
- .browser-main[data-v-d209bc3c] {
287
+ .browser-main[data-v-bcb824aa] {
225
288
  flex: 1;
226
289
  overflow-y: auto; /* Make this section scrollable */
227
290
  padding: 16px;
228
291
  min-height: 0; /* Enable proper flex child scrolling */
229
292
  }
230
- .grid-container[data-v-d209bc3c] {
293
+ .grid-container[data-v-bcb824aa] {
231
294
  display: grid;
232
295
  grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
233
296
  gap: 16px;
@@ -235,25 +298,25 @@
235
298
  }
236
299
 
237
300
  /* Optional: if you want to maintain icon size consistency */
238
- .file-icon[data-v-d209bc3c] {
301
+ .file-icon[data-v-bcb824aa] {
239
302
  width: 24px;
240
303
  height: 24px;
241
304
  object-fit: contain;
242
305
  }
243
306
 
244
307
  /* Add new styles for sort controls */
245
- .search-and-sort-container[data-v-d209bc3c] {
308
+ .search-and-sort-container[data-v-bcb824aa] {
246
309
  display: flex;
247
310
  flex-direction: column;
248
311
  gap: 12px;
249
312
  }
250
- .sort-controls[data-v-d209bc3c] {
313
+ .sort-controls[data-v-bcb824aa] {
251
314
  display: flex;
252
315
  align-items: center;
253
316
  gap: 8px;
254
317
  min-width: 180px; /* Prevent select from being too narrow */
255
318
  }
256
- .sort-direction-button[data-v-d209bc3c] {
319
+ .sort-direction-button[data-v-bcb824aa] {
257
320
  display: inline-flex;
258
321
  align-items: center;
259
322
  justify-content: center;
@@ -261,37 +324,37 @@
261
324
  height: 32px;
262
325
  padding: 0;
263
326
  }
264
- .controls-row[data-v-d209bc3c] {
327
+ .controls-row[data-v-bcb824aa] {
265
328
  display: flex;
266
329
  align-items: center;
267
330
  gap: 16px;
268
331
  margin-top: 12px;
269
332
  }
270
- .form-hint[data-v-d209bc3c] {
333
+ .form-hint[data-v-bcb824aa] {
271
334
  font-size: 12px;
272
- color: #6b7280;
335
+ color: var(--color-text-tertiary);
273
336
  margin-top: 8px;
274
337
  display: flex;
275
338
  align-items: center;
276
339
  gap: 6px;
277
340
  flex-wrap: wrap;
278
341
  }
279
- .preview-label[data-v-d209bc3c] {
342
+ .preview-label[data-v-bcb824aa] {
280
343
  color: var(--color-text-secondary);
281
344
  }
282
- .form-hint code[data-v-d209bc3c] {
345
+ .form-hint code[data-v-bcb824aa] {
283
346
  background-color: var(--color-background-secondary);
284
347
  padding: 2px 6px;
285
348
  border-radius: 4px;
286
349
  font-family: monospace;
287
350
  color: var(--color-text-primary);
288
351
  }
289
- .auto-extension-hint[data-v-d209bc3c] {
352
+ .auto-extension-hint[data-v-bcb824aa] {
290
353
  color: var(--color-text-muted);
291
354
  font-style: italic;
292
355
  }
293
356
 
294
- .action-buttons[data-v-b6daebea] {
357
+ .action-buttons[data-v-f8281642] {
295
358
  padding-left: var(--spacing-5);
296
359
  display: flex;
297
360
  align-items: center;
@@ -299,7 +362,7 @@
299
362
  height: 50px;
300
363
  font-family: var(--font-family-base);
301
364
  }
302
- .action-btn[data-v-b6daebea] {
365
+ .action-btn[data-v-f8281642] {
303
366
  display: flex;
304
367
  align-items: center;
305
368
  gap: var(--spacing-1-5);
@@ -315,63 +378,63 @@
315
378
  font-weight: var(--font-weight-medium);
316
379
  box-shadow: var(--shadow-xs);
317
380
  }
318
- .action-btn[data-v-b6daebea]:hover {
381
+ .action-btn[data-v-f8281642]:hover {
319
382
  background-color: var(--color-background-tertiary);
320
383
  border-color: var(--color-border-secondary);
321
384
  }
322
- .action-btn[data-v-b6daebea]:active {
385
+ .action-btn[data-v-f8281642]:active {
323
386
  transform: translateY(1px);
324
387
  box-shadow: none;
325
388
  }
326
- .action-btn.active[data-v-b6daebea] {
389
+ .action-btn.active[data-v-f8281642] {
327
390
  background-color: var(--color-accent-subtle);
328
391
  border-color: var(--color-accent);
329
392
  color: var(--color-accent);
330
393
  }
331
- .btn-icon[data-v-b6daebea] {
394
+ .btn-icon[data-v-f8281642] {
332
395
  font-size: 18px;
333
396
  color: var(--color-text-secondary);
334
397
  -webkit-font-smoothing: antialiased;
335
398
  -moz-osx-font-smoothing: grayscale;
336
399
  text-rendering: optimizeLegibility;
337
400
  }
338
- .action-btn:hover .btn-icon[data-v-b6daebea] {
401
+ .action-btn:hover .btn-icon[data-v-f8281642] {
339
402
  color: var(--color-text-primary);
340
403
  }
341
- .action-btn.active .btn-icon[data-v-b6daebea] {
404
+ .action-btn.active .btn-icon[data-v-f8281642] {
342
405
  color: var(--color-accent);
343
406
  }
344
- .btn-text[data-v-b6daebea] {
407
+ .btn-text[data-v-f8281642] {
345
408
  white-space: nowrap;
346
409
  }
347
- .settings-modal-content[data-v-b6daebea] {
410
+ .settings-modal-content[data-v-f8281642] {
348
411
  padding: var(--spacing-4);
349
412
  font-family: var(--font-family-base);
350
413
  }
351
- .form-group[data-v-b6daebea] {
414
+ .form-group[data-v-f8281642] {
352
415
  margin-bottom: var(--spacing-4);
353
416
  }
354
- .form-group label[data-v-b6daebea] {
417
+ .form-group label[data-v-f8281642] {
355
418
  display: block;
356
419
  margin-bottom: var(--spacing-2);
357
420
  font-size: var(--font-size-sm);
358
421
  font-weight: var(--font-weight-medium);
359
422
  color: var(--color-text-primary);
360
423
  }
361
- .quick-create-modal[data-v-b6daebea] {
424
+ .quick-create-modal[data-v-f8281642] {
362
425
  padding: var(--spacing-4) 0;
363
426
  }
364
- .quick-create-modal .form-group[data-v-b6daebea] {
427
+ .quick-create-modal .form-group[data-v-f8281642] {
365
428
  margin-bottom: var(--spacing-5);
366
429
  }
367
- .quick-create-modal label[data-v-b6daebea] {
430
+ .quick-create-modal label[data-v-f8281642] {
368
431
  display: block;
369
432
  margin-bottom: var(--spacing-2);
370
433
  font-size: var(--font-size-sm);
371
434
  font-weight: var(--font-weight-medium);
372
435
  color: var(--color-text-primary);
373
436
  }
374
- .preview-text[data-v-b6daebea] {
437
+ .preview-text[data-v-f8281642] {
375
438
  padding: var(--spacing-3);
376
439
  background-color: var(--color-background-muted);
377
440
  border: 1px solid var(--color-border-light);
@@ -379,24 +442,24 @@
379
442
  font-size: var(--font-size-md);
380
443
  color: var(--color-text-secondary);
381
444
  }
382
- .preview-text code[data-v-b6daebea] {
445
+ .preview-text code[data-v-f8281642] {
383
446
  background-color: var(--color-background-tertiary);
384
447
  padding: 2px var(--spacing-1-5);
385
448
  border-radius: var(--border-radius-sm);
386
449
  font-family: var(--font-family-mono);
387
450
  font-size: var(--font-size-sm);
388
451
  }
389
- .dialog-footer[data-v-b6daebea] {
452
+ .dialog-footer[data-v-f8281642] {
390
453
  display: flex;
391
454
  gap: var(--spacing-2);
392
455
  }
393
456
 
394
- .status-wrapper[data-v-b959ca1b] {
457
+ .status-wrapper[data-v-0ee1952b] {
395
458
  display: flex;
396
459
  align-items: center;
397
460
  gap: 12px;
398
461
  }
399
- .flow-card[data-v-b959ca1b] {
462
+ .flow-card[data-v-0ee1952b] {
400
463
  position: relative;
401
464
  width: 40px;
402
465
  height: 40px;
@@ -405,22 +468,22 @@
405
468
  cursor: help;
406
469
  overflow: hidden;
407
470
  }
408
- .flow-card[data-v-b959ca1b]:hover {
471
+ .flow-card[data-v-0ee1952b]:hover {
409
472
  transform: translateY(-0.5px);
410
- box-shadow: 0 4px 16px rgba(159, 129, 228, 0.25);
473
+ box-shadow: var(--shadow-lg);
411
474
  }
412
- .flow-animation[data-v-b959ca1b] {
475
+ .flow-animation[data-v-0ee1952b] {
413
476
  width: 100%;
414
477
  height: 100%;
415
478
  }
416
479
 
417
480
  /* Flow Container */
418
- .flow-container[data-v-b959ca1b] {
481
+ .flow-container[data-v-0ee1952b] {
419
482
  fill: #8c8caa;
420
483
  }
421
484
 
422
485
  /* Extra Thick Flow Lines with Gradient */
423
- .flow-line[data-v-b959ca1b] {
486
+ .flow-line[data-v-0ee1952b] {
424
487
  fill: none;
425
488
  stroke: url(#lineGradient);
426
489
  stroke-width: 8; /* Extra thick lines */
@@ -430,35 +493,35 @@
430
493
  }
431
494
 
432
495
  /* Animation only when flowing */
433
- .is-flowing .flow-line[data-v-b959ca1b] {
434
- animation: flowMove-b959ca1b 3s infinite linear;
496
+ .is-flowing .flow-line[data-v-0ee1952b] {
497
+ animation: flowMove-0ee1952b 3s infinite linear;
435
498
  }
436
- .is-flowing .flow-line-2[data-v-b959ca1b] {
499
+ .is-flowing .flow-line-2[data-v-0ee1952b] {
437
500
  animation-delay: -1s;
438
501
  }
439
- .is-flowing .flow-line-3[data-v-b959ca1b] {
502
+ .is-flowing .flow-line-3[data-v-0ee1952b] {
440
503
  animation-delay: -2s;
441
504
  }
442
505
 
443
506
  /* Flow Particles - only visible when running */
444
- .flow-particle[data-v-b959ca1b] {
507
+ .flow-particle[data-v-0ee1952b] {
445
508
  fill: #5256c6;
446
509
  opacity: 0;
447
510
  }
448
- .is-flowing .flow-particle[data-v-b959ca1b] {
449
- animation: particleFlow-b959ca1b 3s infinite ease-in-out;
511
+ .is-flowing .flow-particle[data-v-0ee1952b] {
512
+ animation: particleFlow-0ee1952b 3s infinite ease-in-out;
450
513
  }
451
- .particle-1[data-v-b959ca1b] {
514
+ .particle-1[data-v-0ee1952b] {
452
515
  animation-delay: 0s;
453
516
  }
454
- .particle-2[data-v-b959ca1b] {
517
+ .particle-2[data-v-0ee1952b] {
455
518
  animation-delay: -1s;
456
519
  }
457
- .particle-3[data-v-b959ca1b] {
520
+ .particle-3[data-v-0ee1952b] {
458
521
  animation-delay: -2s;
459
522
  }
460
523
  /* Control Button */
461
- .control-button[data-v-b959ca1b] {
524
+ .control-button[data-v-0ee1952b] {
462
525
  display: flex;
463
526
  align-items: center;
464
527
  justify-content: center;
@@ -466,25 +529,25 @@
466
529
  height: 32px;
467
530
  border-radius: 50%;
468
531
  border: none;
469
- background: #8c8caa;
470
- color: #4834d4;
532
+ background: var(--color-gray-400);
533
+ color: var(--color-button-primary);
471
534
  cursor: pointer;
472
535
  transition: all 0.3s ease;
473
- box-shadow: 0 2px 8px rgba(76, 0, 255, 0.2);
536
+ box-shadow: var(--shadow-sm);
474
537
  }
475
- .control-button[data-v-b959ca1b]:hover {
476
- background: #4834d4;
477
- color: white;
538
+ .control-button[data-v-0ee1952b]:hover {
539
+ background: var(--color-button-primary);
540
+ color: var(--color-text-inverse);
478
541
  transform: translateY(-1px);
479
- box-shadow: 0 4px 16px rgba(76, 0, 255, 0.3);
542
+ box-shadow: var(--shadow-md);
480
543
  }
481
- .control-button.is-active[data-v-b959ca1b] {
482
- background: #4834d4;
483
- color: white;
544
+ .control-button.is-active[data-v-0ee1952b] {
545
+ background: var(--color-button-primary);
546
+ color: var(--color-text-inverse);
484
547
  }
485
548
 
486
549
  /* Animations */
487
- @keyframes flowMove-b959ca1b {
550
+ @keyframes flowMove-0ee1952b {
488
551
  0% {
489
552
  transform: translateX(0);
490
553
  }
@@ -492,7 +555,7 @@
492
555
  transform: translateX(-70px);
493
556
  }
494
557
  }
495
- @keyframes particleFlow-b959ca1b {
558
+ @keyframes particleFlow-0ee1952b {
496
559
  0% {
497
560
  opacity: 0;
498
561
  transform: translateX(-10px) scale(0.8);
@@ -511,37 +574,37 @@
511
574
  }
512
575
  }
513
576
 
514
- .status-indicator[data-v-5b62c397] {
577
+ .status-indicator[data-v-4064b904] {
515
578
  position: relative;
516
579
  display: flex;
517
580
  align-items: center;
518
581
  margin-right: 8px;
519
582
  }
520
- .status-indicator[data-v-5b62c397]::before {
583
+ .status-indicator[data-v-4064b904]::before {
521
584
  content: "";
522
585
  display: block;
523
586
  width: 10px;
524
587
  height: 10px;
525
588
  border-radius: 50%;
526
589
  }
527
- .status-indicator.success[data-v-5b62c397]::before {
590
+ .status-indicator.success[data-v-4064b904]::before {
528
591
  background-color: #4caf50;
529
592
  }
530
- .status-indicator.failure[data-v-5b62c397]::before {
593
+ .status-indicator.failure[data-v-4064b904]::before {
531
594
  background-color: #f44336;
532
595
  }
533
- .status-indicator.warning[data-v-5b62c397]::before {
596
+ .status-indicator.warning[data-v-4064b904]::before {
534
597
  background-color: #f09f5dd1;
535
598
  }
536
- .status-indicator.unknown[data-v-5b62c397]::before {
599
+ .status-indicator.unknown[data-v-4064b904]::before {
537
600
  background-color: var(--color-text-muted);
538
601
  }
539
- .status-indicator.running[data-v-5b62c397]::before {
602
+ .status-indicator.running[data-v-4064b904]::before {
540
603
  background-color: #0909ca;
541
- animation: pulse-5b62c397 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
604
+ animation: pulse-4064b904 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
542
605
  box-shadow: 0 0 10px #0909ca;
543
606
  }
544
- @keyframes pulse-5b62c397 {
607
+ @keyframes pulse-4064b904 {
545
608
  0% {
546
609
  transform: scale(1);
547
610
  opacity: 1;
@@ -558,7 +621,7 @@
558
621
  box-shadow: 0 0 5px #0909ca;
559
622
  }
560
623
  }
561
- .tooltip-text[data-v-5b62c397] {
624
+ .tooltip-text[data-v-4064b904] {
562
625
  visibility: hidden;
563
626
  width: 120px;
564
627
  background-color: var(--color-gray-800);
@@ -574,21 +637,21 @@
574
637
  opacity: 0;
575
638
  transition: opacity 0.3s;
576
639
  }
577
- .status-indicator:hover .tooltip-text[data-v-5b62c397] {
640
+ .status-indicator:hover .tooltip-text[data-v-4064b904] {
578
641
  visibility: visible;
579
642
  opacity: 1;
580
643
  }
581
- .description-input[data-v-5b62c397]:hover,
582
- .description-input[data-v-5b62c397]:focus {
644
+ .description-input[data-v-4064b904]:hover,
645
+ .description-input[data-v-4064b904]:focus {
583
646
  background-color: var(--color-background-tertiary);
584
647
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
585
648
  }
586
- .component-wrapper[data-v-5b62c397] {
649
+ .component-wrapper[data-v-4064b904] {
587
650
  position: relative; /* This makes the absolute positioning of the child relative to this container */
588
651
  max-width: 60px;
589
652
  overflow: visible; /* Allows children to visually overflow */
590
653
  }
591
- .description-display[data-v-5b62c397] {
654
+ .description-display[data-v-4064b904] {
592
655
  padding: 8px;
593
656
  width: 200px !important;
594
657
  max-height: 8px !important;
@@ -596,7 +659,7 @@
596
659
  border-radius: 4px;
597
660
  cursor: pointer;
598
661
  }
599
- .overlay[data-v-5b62c397] {
662
+ .overlay[data-v-4064b904] {
600
663
  position: fixed; /* This is key for viewport-level positioning */
601
664
  width: 200px; /* Or whatever width you prefer */
602
665
  height: 200px; /* Or whatever height you prefer */
@@ -606,17 +669,17 @@
606
669
  z-index: 1000; /* High enough to float above everything else */
607
670
  /* Your existing styles for background, padding, etc. */
608
671
  }
609
- .node-button[data-v-5b62c397] {
610
- background-color: var(--color-background-primary);
672
+ .node-button[data-v-4064b904] {
673
+ background-color: #dedede;
611
674
  border-radius: 10px;
612
675
  border-width: 0px;
613
676
  }
614
- .node-button[data-v-5b62c397]:hover {
677
+ .node-button[data-v-4064b904]:hover {
615
678
  background-color: var(--color-background-hover);
616
679
  transform: translateY(-1px);
617
680
  box-shadow: var(--shadow-sm);
618
681
  }
619
- .overlay-content[data-v-5b62c397] {
682
+ .overlay-content[data-v-4064b904] {
620
683
  padding: 20px;
621
684
  border-radius: 10px;
622
685
  box-shadow: var(--shadow-md);
@@ -624,12 +687,12 @@
624
687
  flex-direction: column;
625
688
  align-items: stretch;
626
689
  }
627
- .overlay-prompt[data-v-5b62c397] {
690
+ .overlay-prompt[data-v-4064b904] {
628
691
  margin-bottom: 10px;
629
692
  color: var(--color-text-primary);
630
693
  font-size: 16px;
631
694
  }
632
- .description-input[data-v-5b62c397] {
695
+ .description-input[data-v-4064b904] {
633
696
  margin-bottom: 10px;
634
697
  border: 1px solid var(--color-border-primary);
635
698
  border-radius: 4px;
@@ -639,31 +702,30 @@
639
702
  background-color: var(--color-background-primary);
640
703
  color: var(--color-text-primary);
641
704
  }
642
- .selected[data-v-5b62c397] {
705
+ .selected[data-v-4064b904] {
643
706
  border: 2px solid var(--color-accent);
644
707
  }
645
708
 
646
- .error-node[data-v-7132c328] {
709
+ .error-node[data-v-840d2e40] {
647
710
  padding: 8px;
648
- background: #ffcccc;
649
- border-radius: 4px;
711
+ background: var(--color-node-error-bg);
712
+ border-radius: var(--border-radius-sm);
650
713
  font-size: 12px;
651
714
  }
652
715
 
653
- .custom-node[data-v-e49586cb] {
716
+ .custom-node[data-v-e650ee69] {
654
717
  border-radius: 4px;
655
718
  padding: 1px;
656
719
  background-color: var(--color-background-primary);
657
- border: 1px solid var(--color-border-primary);
658
720
  display: flex;
659
721
  flex-direction: column;
660
722
  align-items: center;
661
723
  position: relative;
662
724
  }
663
- .selected[data-v-e49586cb] {
725
+ .selected[data-v-e650ee69] {
664
726
  border: 2px solid #409eff;
665
727
  }
666
- .custom-node-header[data-v-e49586cb] {
728
+ .custom-node-header[data-v-e650ee69] {
667
729
  font-weight: 100;
668
730
  font-size: small;
669
731
  width: 20px;
@@ -672,7 +734,7 @@
672
734
  text-overflow: ellipsis;
673
735
  font-family: var(--font-family-base);
674
736
  }
675
- .description-display[data-v-e49586cb] {
737
+ .description-display[data-v-e650ee69] {
676
738
  position: relative;
677
739
  white-space: normal;
678
740
  min-width: 100px;
@@ -688,7 +750,7 @@
688
750
  border-radius: 4px;
689
751
  color: var(--color-text-primary);
690
752
  }
691
- .edit-icon[data-v-e49586cb] {
753
+ .edit-icon[data-v-e650ee69] {
692
754
  opacity: 0;
693
755
  transition: opacity 0.2s;
694
756
  color: var(--color-accent);
@@ -697,27 +759,27 @@
697
759
  align-items: center;
698
760
  padding: 2px;
699
761
  }
700
- .description-display:hover .edit-icon[data-v-e49586cb] {
762
+ .description-display:hover .edit-icon[data-v-e650ee69] {
701
763
  opacity: 1;
702
764
  }
703
- .edit-icon[data-v-e49586cb]:hover {
765
+ .edit-icon[data-v-e650ee69]:hover {
704
766
  color: var(--color-accent-hover);
705
767
  }
706
- .description-text[data-v-e49586cb] {
768
+ .description-text[data-v-e650ee69] {
707
769
  margin: 0;
708
770
  white-space: pre-wrap;
709
771
  word-wrap: break-word;
710
772
  font-family: var(--font-family-base);
711
773
  font-size: var(--font-size-xs);
712
774
  }
713
- .edit-overlay[data-v-e49586cb] {
775
+ .edit-overlay[data-v-e650ee69] {
714
776
  position: fixed;
715
777
  z-index: 1000;
716
778
  background: var(--color-background-primary);
717
779
  border-radius: 4px;
718
780
  box-shadow: var(--shadow-lg);
719
781
  }
720
- .description-input[data-v-e49586cb] {
782
+ .description-input[data-v-e650ee69] {
721
783
  width: 200px;
722
784
  height: 75px;
723
785
  resize: both;
@@ -729,17 +791,17 @@
729
791
  background-color: var(--color-background-primary);
730
792
  color: var(--color-text-primary);
731
793
  }
732
- .handle-input[data-v-e49586cb] {
794
+ .handle-input[data-v-e650ee69] {
733
795
  position: absolute;
734
796
  left: -8px;
735
797
  }
736
- .handle-output[data-v-e49586cb] {
798
+ .handle-output[data-v-e650ee69] {
737
799
  position: absolute;
738
800
  right: -8px;
739
801
  }
740
- .context-menu[data-v-e49586cb] {
802
+ .context-menu[data-v-e650ee69] {
741
803
  position: fixed;
742
- z-index: 10000;
804
+ z-index: var(--z-index-canvas-context-menu, 100002);
743
805
  background-color: var(--color-background-primary);
744
806
  border: 1px solid var(--color-border-primary);
745
807
  border-radius: 4px;
@@ -748,7 +810,7 @@
748
810
  min-width: 120px;
749
811
  font-family: var(--font-family-base);
750
812
  }
751
- .context-menu-item[data-v-e49586cb] {
813
+ .context-menu-item[data-v-e650ee69] {
752
814
  padding: 8px 12px;
753
815
  display: flex;
754
816
  align-items: center;
@@ -759,86 +821,86 @@
759
821
  font-family: var(--font-family-base);
760
822
  color: var(--color-text-primary);
761
823
  }
762
- .context-menu-item[data-v-e49586cb]:hover {
824
+ .context-menu-item[data-v-e650ee69]:hover {
763
825
  background-color: var(--color-background-hover);
764
826
  }
765
- .context-menu-item svg[data-v-e49586cb] {
827
+ .context-menu-item svg[data-v-e650ee69] {
766
828
  color: var(--color-text-secondary);
767
829
  }
768
- .context-menu-item span[data-v-e49586cb] {
830
+ .context-menu-item span[data-v-e650ee69] {
769
831
  font-family: var(--font-family-base);
770
832
  }
771
- .context-menu-divider[data-v-e49586cb] {
833
+ .context-menu-divider[data-v-e650ee69] {
772
834
  height: 1px;
773
835
  background-color: var(--color-border-primary);
774
836
  margin: 4px 0;
775
837
  }
776
- .context-menu-item-danger[data-v-e49586cb] {
838
+ .context-menu-item-danger[data-v-e650ee69] {
777
839
  color: #dc3545;
778
840
  }
779
- .context-menu-item-danger[data-v-e49586cb]:hover {
841
+ .context-menu-item-danger[data-v-e650ee69]:hover {
780
842
  background-color: rgba(220, 53, 69, 0.1);
781
843
  }
782
- .context-menu-item-danger svg[data-v-e49586cb] {
844
+ .context-menu-item-danger svg[data-v-e650ee69] {
783
845
  color: #dc3545;
784
846
  }
785
847
 
786
- .code-container[data-v-3b81aa8c] {
848
+ .code-container[data-v-b36d237e] {
787
849
  max-width: 1200px;
788
850
  margin: 0 auto;
789
851
  padding: 20px;
790
852
  }
791
- .code-header[data-v-3b81aa8c] {
853
+ .code-header[data-v-b36d237e] {
792
854
  display: flex;
793
855
  justify-content: space-between;
794
856
  align-items: center;
795
857
  margin-bottom: 20px;
796
858
  }
797
- .code-header h4[data-v-3b81aa8c] {
859
+ .code-header h4[data-v-b36d237e] {
798
860
  margin: 0;
799
861
  }
800
- .header-actions[data-v-3b81aa8c] {
862
+ .header-actions[data-v-b36d237e] {
801
863
  display: flex;
802
864
  gap: 12px;
803
865
  }
804
- .export-button[data-v-3b81aa8c],
805
- .refresh-button[data-v-3b81aa8c] {
866
+ .export-button[data-v-b36d237e],
867
+ .refresh-button[data-v-b36d237e] {
806
868
  display: flex;
807
869
  align-items: center;
808
870
  gap: 8px;
809
871
  padding: 8px 16px;
810
- background: #007acc;
811
- color: white;
872
+ background: var(--color-accent);
873
+ color: var(--color-text-inverse);
812
874
  border: none;
813
- border-radius: 6px;
875
+ border-radius: var(--border-radius-md);
814
876
  cursor: pointer;
815
- font-size: 14px;
816
- transition: background 0.2s;
877
+ font-size: var(--font-size-base);
878
+ transition: background var(--transition-fast);
817
879
  }
818
- .export-button[data-v-3b81aa8c]:hover,
819
- .refresh-button[data-v-3b81aa8c]:hover:not(:disabled) {
820
- background: #005a9e;
880
+ .export-button[data-v-b36d237e]:hover,
881
+ .refresh-button[data-v-b36d237e]:hover:not(:disabled) {
882
+ background: var(--color-accent-hover);
821
883
  }
822
- .refresh-button[data-v-3b81aa8c]:disabled {
823
- background: #6c757d;
884
+ .refresh-button[data-v-b36d237e]:disabled {
885
+ background: var(--color-gray-500);
824
886
  cursor: not-allowed;
825
887
  }
826
- .spinner[data-v-3b81aa8c] {
888
+ .spinner[data-v-b36d237e] {
827
889
  display: inline-block;
828
890
  width: 14px;
829
891
  height: 14px;
830
- border: 2px solid #ffffff;
892
+ border: 2px solid var(--color-text-inverse);
831
893
  border-radius: 50%;
832
894
  border-top-color: transparent;
833
- animation: spin-3b81aa8c 0.8s linear infinite;
895
+ animation: spin-b36d237e 0.8s linear infinite;
834
896
  }
835
- @keyframes spin-3b81aa8c {
897
+ @keyframes spin-b36d237e {
836
898
  to {
837
899
  transform: rotate(360deg);
838
900
  }
839
901
  }
840
902
 
841
- .nodes-wrapper[data-v-0930336a] {
903
+ .nodes-wrapper[data-v-49354e27] {
842
904
  display: flex;
843
905
  flex-direction: column;
844
906
  gap: var(--spacing-1);
@@ -849,7 +911,7 @@ to {
849
911
  }
850
912
 
851
913
  /* Style for search input */
852
- .search-input[data-v-0930336a] {
914
+ .search-input[data-v-49354e27] {
853
915
  padding: var(--spacing-2) var(--spacing-4);
854
916
  color: var(--color-text-primary);
855
917
  margin-bottom: var(--spacing-2);
@@ -859,15 +921,15 @@ to {
859
921
  background-color: var(--color-background-primary);
860
922
  transition: border-color var(--transition-fast);
861
923
  }
862
- .search-input[data-v-0930336a]:focus {
924
+ .search-input[data-v-49354e27]:focus {
863
925
  outline: none;
864
926
  border-color: var(--input-border-focus);
865
927
  }
866
- .category-container[data-v-0930336a] {
928
+ .category-container[data-v-49354e27] {
867
929
  overflow: hidden;
868
930
  border-radius: var(--border-radius-sm);
869
931
  }
870
- .category-header[data-v-0930336a] {
932
+ .category-header[data-v-49354e27] {
871
933
  display: flex;
872
934
  align-items: center;
873
935
  justify-content: space-between;
@@ -879,25 +941,25 @@ to {
879
941
  transition: background-color var(--transition-fast);
880
942
  height: 32px;
881
943
  }
882
- .category-header[data-v-0930336a]:hover {
944
+ .category-header[data-v-49354e27]:hover {
883
945
  background-color: var(--color-background-tertiary);
884
946
  }
885
- .category-title[data-v-0930336a] {
947
+ .category-title[data-v-49354e27] {
886
948
  font-size: var(--font-size-xs);
887
949
  font-weight: var(--font-weight-normal);
888
950
  color: var(--color-text-primary);
889
951
  text-align: left;
890
952
  }
891
- .category-icon[data-v-0930336a] {
953
+ .category-icon[data-v-49354e27] {
892
954
  font-size: var(--font-size-sm);
893
955
  color: var(--color-text-secondary);
894
956
  }
895
- .category-content[data-v-0930336a] {
957
+ .category-content[data-v-49354e27] {
896
958
  display: flex;
897
959
  flex-direction: column;
898
960
  background-color: var(--color-background-primary);
899
961
  }
900
- .node-item[data-v-0930336a] {
962
+ .node-item[data-v-49354e27] {
901
963
  display: flex;
902
964
  align-items: center;
903
965
  padding: var(--spacing-2) var(--spacing-4);
@@ -907,34 +969,34 @@ to {
907
969
  border-bottom: 1px solid var(--color-border-light);
908
970
  height: 32px;
909
971
  }
910
- .node-item[data-v-0930336a]:last-child {
972
+ .node-item[data-v-49354e27]:last-child {
911
973
  border-bottom: none;
912
974
  }
913
- .node-item[data-v-0930336a]:hover {
975
+ .node-item[data-v-49354e27]:hover {
914
976
  background-color: var(--color-background-tertiary);
915
977
  }
916
- .node-image[data-v-0930336a] {
978
+ .node-image[data-v-49354e27] {
917
979
  width: 24px;
918
980
  height: 24px;
919
981
  margin-right: var(--spacing-2-5);
920
982
  }
921
- .node-name[data-v-0930336a] {
983
+ .node-name[data-v-49354e27] {
922
984
  font-size: var(--font-size-sm);
923
985
  color: var(--color-text-primary);
924
986
  }
925
987
 
926
988
  /* Custom scrollbar */
927
- .nodes-wrapper[data-v-0930336a]::-webkit-scrollbar {
989
+ .nodes-wrapper[data-v-49354e27]::-webkit-scrollbar {
928
990
  width: 6px;
929
991
  }
930
- .nodes-wrapper[data-v-0930336a]::-webkit-scrollbar-track {
992
+ .nodes-wrapper[data-v-49354e27]::-webkit-scrollbar-track {
931
993
  background: transparent;
932
994
  }
933
- .nodes-wrapper[data-v-0930336a]::-webkit-scrollbar-thumb {
995
+ .nodes-wrapper[data-v-49354e27]::-webkit-scrollbar-thumb {
934
996
  background-color: var(--color-gray-300);
935
997
  border-radius: var(--border-radius-full);
936
998
  }
937
- .nodes-wrapper[data-v-0930336a]::-webkit-scrollbar-thumb:hover {
999
+ .nodes-wrapper[data-v-49354e27]::-webkit-scrollbar-thumb:hover {
938
1000
  background-color: var(--color-gray-400);
939
1001
  }
940
1002
 
@@ -1136,17 +1198,21 @@ to {
1136
1198
  background-color: #2196f330;
1137
1199
  }
1138
1200
 
1139
- .layout-widget-wrapper[data-v-d23060a3] {
1201
+ .layout-widget-wrapper[data-v-d6625e59] {
1140
1202
  position: fixed;
1141
1203
  z-index: 20000;
1142
1204
  }
1143
- .trigger-btn[data-v-d23060a3] {
1205
+ .trigger-btn[data-v-d6625e59] {
1144
1206
  width: 45px;
1145
1207
  height: 45px;
1146
1208
  border-radius: 50%;
1147
1209
  border: none;
1148
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1149
- box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
1210
+ background: linear-gradient(
1211
+ 135deg,
1212
+ var(--color-gradient-purple-start) 0%,
1213
+ var(--color-gradient-purple-end) 100%
1214
+ );
1215
+ box-shadow: var(--shadow-md);
1150
1216
  cursor: move;
1151
1217
  display: flex;
1152
1218
  align-items: center;
@@ -1155,15 +1221,15 @@ to {
1155
1221
  position: relative;
1156
1222
  overflow: hidden;
1157
1223
  }
1158
- .trigger-btn[data-v-d23060a3]:hover {
1224
+ .trigger-btn[data-v-d6625e59]:hover {
1159
1225
  width: 55px;
1160
1226
  height: 55px;
1161
- box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
1227
+ box-shadow: var(--shadow-lg);
1162
1228
  }
1163
- .trigger-btn.is-open[data-v-d23060a3] {
1229
+ .trigger-btn.is-open[data-v-d6625e59] {
1164
1230
  cursor: pointer;
1165
1231
  }
1166
- .trigger-btn[data-v-d23060a3]::before {
1232
+ .trigger-btn[data-v-d6625e59]::before {
1167
1233
  content: "";
1168
1234
  position: absolute;
1169
1235
  top: 50%;
@@ -1171,28 +1237,28 @@ to {
1171
1237
  width: 0;
1172
1238
  height: 0;
1173
1239
  border-radius: 50%;
1174
- background: rgba(255, 255, 255, 0.2);
1240
+ background: var(--color-white-alpha-20);
1175
1241
  transform: translate(-50%, -50%);
1176
1242
  transition:
1177
1243
  width 0.6s,
1178
1244
  height 0.6s;
1179
1245
  }
1180
- .trigger-btn[data-v-d23060a3]:hover::before {
1246
+ .trigger-btn[data-v-d6625e59]:hover::before {
1181
1247
  width: 100px;
1182
1248
  height: 100px;
1183
1249
  }
1184
- .layout-icon[data-v-d23060a3] {
1185
- color: white;
1250
+ .layout-icon[data-v-d6625e59] {
1251
+ color: var(--color-text-inverse);
1186
1252
  transition: transform 0.3s ease;
1187
1253
  pointer-events: none;
1188
1254
  }
1189
- .trigger-btn:hover .layout-icon[data-v-d23060a3] {
1255
+ .trigger-btn:hover .layout-icon[data-v-d6625e59] {
1190
1256
  transform: scale(1.1);
1191
1257
  }
1192
- .trigger-btn.is-open .layout-icon[data-v-d23060a3] {
1258
+ .trigger-btn.is-open .layout-icon[data-v-d6625e59] {
1193
1259
  transform: rotate(90deg);
1194
1260
  }
1195
- .panel[data-v-d23060a3] {
1261
+ .panel[data-v-d6625e59] {
1196
1262
  position: absolute;
1197
1263
  width: 250px;
1198
1264
  background: var(--color-background-primary);
@@ -1204,7 +1270,7 @@ to {
1204
1270
  backdrop-filter: blur(10px);
1205
1271
  border: 1px solid var(--color-border-primary);
1206
1272
  }
1207
- .panel-header[data-v-d23060a3] {
1273
+ .panel-header[data-v-d6625e59] {
1208
1274
  display: flex;
1209
1275
  justify-content: space-between;
1210
1276
  align-items: center;
@@ -1212,13 +1278,13 @@ to {
1212
1278
  border-bottom: 1px solid var(--color-border-primary);
1213
1279
  background: var(--color-background-secondary);
1214
1280
  }
1215
- .panel-title[data-v-d23060a3] {
1281
+ .panel-title[data-v-d6625e59] {
1216
1282
  font-weight: 600;
1217
1283
  font-size: 16px;
1218
1284
  color: var(--color-text-primary);
1219
1285
  user-select: none;
1220
1286
  }
1221
- .close-btn[data-v-d23060a3] {
1287
+ .close-btn[data-v-d6625e59] {
1222
1288
  background: none;
1223
1289
  border: none;
1224
1290
  font-size: 20px;
@@ -1234,17 +1300,17 @@ to {
1234
1300
  border-radius: 4px;
1235
1301
  transition: all 0.2s;
1236
1302
  }
1237
- .close-btn[data-v-d23060a3]:hover {
1303
+ .close-btn[data-v-d6625e59]:hover {
1238
1304
  color: var(--color-text-primary);
1239
1305
  background: var(--color-background-hover);
1240
1306
  }
1241
- .panel-body[data-v-d23060a3] {
1307
+ .panel-body[data-v-d6625e59] {
1242
1308
  padding: 16px;
1243
1309
  display: flex;
1244
1310
  flex-direction: column;
1245
1311
  gap: 10px;
1246
1312
  }
1247
- .control-btn[data-v-d23060a3] {
1313
+ .control-btn[data-v-d6625e59] {
1248
1314
  background-color: var(--color-background-secondary);
1249
1315
  color: var(--color-text-primary);
1250
1316
  border: 1px solid var(--color-border-primary);
@@ -1261,49 +1327,62 @@ to {
1261
1327
  position: relative;
1262
1328
  overflow: hidden;
1263
1329
  }
1264
- .control-btn[data-v-d23060a3]::before {
1330
+ .control-btn[data-v-d6625e59]::before {
1265
1331
  content: "";
1266
1332
  position: absolute;
1267
1333
  top: 0;
1268
1334
  left: -100%;
1269
1335
  width: 100%;
1270
1336
  height: 100%;
1271
- background: linear-gradient(90deg, transparent, rgba(102, 126, 234, 0.1), transparent);
1337
+ background: linear-gradient(
1338
+ 90deg,
1339
+ transparent,
1340
+ var(--color-focus-ring-purple-light),
1341
+ transparent
1342
+ );
1272
1343
  transition: left 0.5s;
1273
1344
  }
1274
- .control-btn[data-v-d23060a3]:hover::before {
1345
+ .control-btn[data-v-d6625e59]:hover::before {
1275
1346
  left: 100%;
1276
1347
  }
1277
- .control-btn[data-v-d23060a3]:hover {
1348
+ .control-btn[data-v-d6625e59]:hover {
1278
1349
  background-color: var(--color-background-hover);
1279
1350
  border-color: var(--color-accent);
1280
1351
  transform: translateX(2px);
1281
1352
  }
1282
1353
 
1283
1354
  /* Accent button style for Reset Layout Graph */
1284
- .control-btn.accent[data-v-d23060a3] {
1285
- background: linear-gradient(135deg, #667eea15 0%, #764ba215 100%);
1286
- border-color: #764ba2;
1287
- }
1288
- .control-btn.accent[data-v-d23060a3]:hover {
1289
- background: linear-gradient(135deg, #667eea25 0%, #764ba225 100%);
1290
- border-color: #667eea;
1291
- }
1292
- .control-btn .icon[data-v-d23060a3] {
1355
+ .control-btn.accent[data-v-d6625e59] {
1356
+ background: linear-gradient(
1357
+ 135deg,
1358
+ var(--color-focus-ring-purple-light) 0%,
1359
+ var(--color-focus-ring-purple-light) 100%
1360
+ );
1361
+ border-color: var(--color-gradient-purple-end);
1362
+ }
1363
+ .control-btn.accent[data-v-d6625e59]:hover {
1364
+ background: linear-gradient(
1365
+ 135deg,
1366
+ var(--color-focus-ring-purple) 0%,
1367
+ var(--color-focus-ring-purple) 100%
1368
+ );
1369
+ border-color: var(--color-gradient-purple-start);
1370
+ }
1371
+ .control-btn .icon[data-v-d6625e59] {
1293
1372
  font-size: 16px;
1294
1373
  min-width: 20px;
1295
1374
  }
1296
1375
 
1297
1376
  /* Vue Transition Styles */
1298
- .panel-fade-enter-active[data-v-d23060a3],
1299
- .panel-fade-leave-active[data-v-d23060a3] {
1377
+ .panel-fade-enter-active[data-v-d6625e59],
1378
+ .panel-fade-leave-active[data-v-d6625e59] {
1300
1379
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
1301
1380
  }
1302
- .panel-fade-enter-from[data-v-d23060a3] {
1381
+ .panel-fade-enter-from[data-v-d6625e59] {
1303
1382
  opacity: 0;
1304
1383
  transform: translateY(10px) scale(0.95);
1305
1384
  }
1306
- .panel-fade-leave-to[data-v-d23060a3] {
1385
+ .panel-fade-leave-to[data-v-d6625e59] {
1307
1386
  opacity: 0;
1308
1387
  transform: translateY(-10px) scale(0.95);
1309
1388
  }
@@ -10343,7 +10422,7 @@ to {
10343
10422
  }
10344
10423
  .outdated-data-banner p {
10345
10424
  margin: 0;
10346
- color: #78350f;
10425
+ color: var(--color-warning-darker);
10347
10426
  font-weight: 500;
10348
10427
  display: flex;
10349
10428
  align-items: center;
@@ -10359,9 +10438,13 @@ to {
10359
10438
  animation: pulse 2s ease-in-out infinite;
10360
10439
  }
10361
10440
  .refresh-link-button {
10362
- background: linear-gradient(135deg, var(--color-background-primary) 0%, #fef3c7 100%);
10363
- border: 1px solid #f59e0b;
10364
- color: #92400e;
10441
+ background: linear-gradient(
10442
+ 135deg,
10443
+ var(--color-background-primary) 0%,
10444
+ var(--color-warning-light) 100%
10445
+ );
10446
+ border: 1px solid var(--color-warning);
10447
+ color: var(--color-warning-dark);
10365
10448
  border-radius: 6px;
10366
10449
  padding: 5px 14px;
10367
10450
  font-size: 13px;
@@ -10385,13 +10468,11 @@ to {
10385
10468
  transition: transform 0.3s ease;
10386
10469
  }
10387
10470
  .refresh-link-button:hover {
10388
- background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
10389
- color: white;
10390
- border-color: #d97706;
10471
+ background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-hover) 100%);
10472
+ color: var(--color-text-inverse);
10473
+ border-color: var(--color-warning-hover);
10391
10474
  transform: translateY(-1px);
10392
- box-shadow:
10393
- 0 4px 12px rgba(245, 158, 11, 0.3),
10394
- inset 0 1px 0 rgba(255, 255, 255, 0.2);
10475
+ box-shadow: var(--shadow-md);
10395
10476
  }
10396
10477
  .refresh-link-button:hover::before {
10397
10478
  transform: rotate(180deg);
@@ -10404,14 +10485,14 @@ to {
10404
10485
  }
10405
10486
  .dismiss-button {
10406
10487
  background: var(--color-background-primary);
10407
- border: 1px solid rgba(251, 191, 36, 0.3);
10488
+ border: 1px solid var(--color-warning);
10408
10489
  width: 24px;
10409
10490
  height: 24px;
10410
10491
  border-radius: 50%;
10411
10492
  font-size: 16px;
10412
10493
  line-height: 1;
10413
10494
  cursor: pointer;
10414
- color: #92400e;
10495
+ color: var(--color-warning-dark);
10415
10496
  display: flex;
10416
10497
  align-items: center;
10417
10498
  justify-content: center;
@@ -10423,10 +10504,10 @@ to {
10423
10504
  }
10424
10505
  .dismiss-button:hover {
10425
10506
  background: var(--color-background-hover);
10426
- border-color: #f59e0b;
10427
- color: #78350f;
10507
+ border-color: var(--color-warning);
10508
+ color: var(--color-warning-darker);
10428
10509
  transform: rotate(90deg) scale(1.1);
10429
- box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
10510
+ box-shadow: var(--shadow-sm);
10430
10511
  }
10431
10512
  .dismiss-button:active {
10432
10513
  transform: rotate(90deg) scale(0.95);
@@ -10447,8 +10528,8 @@ to {
10447
10528
  margin-bottom: 12px;
10448
10529
  }
10449
10530
  .fetch-data-button {
10450
- background-color: #3498db;
10451
- color: white;
10531
+ background-color: var(--color-button-secondary);
10532
+ color: var(--color-text-inverse);
10452
10533
  border: none;
10453
10534
  padding: 8px 20px;
10454
10535
  font-size: 14px;
@@ -10458,15 +10539,15 @@ to {
10458
10539
  position: relative;
10459
10540
  }
10460
10541
  .fetch-data-button:hover:not(:disabled) {
10461
- background-color: #2980b9;
10542
+ background-color: var(--color-button-secondary-hover);
10462
10543
  transform: translateY(-1px);
10463
- box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3);
10544
+ box-shadow: var(--shadow-md);
10464
10545
  }
10465
10546
  .fetch-data-button:active:not(:disabled) {
10466
10547
  transform: translateY(0);
10467
10548
  }
10468
10549
  .fetch-data-button:disabled {
10469
- background-color: #93c5fd;
10550
+ background-color: var(--color-button-secondary-light);
10470
10551
  cursor: not-allowed;
10471
10552
  opacity: 0.7;
10472
10553
  }
@@ -10487,30 +10568,30 @@ to {
10487
10568
  --ag-selected-row-background-color: var(--color-background-selected);
10488
10569
  }
10489
10570
 
10490
- .hide-results-button[data-v-2e3312f9] {
10571
+ .hide-results-button[data-v-469df264] {
10491
10572
  margin-bottom: 10px;
10492
10573
  }
10493
- .flow-summary[data-v-2e3312f9] {
10574
+ .flow-summary[data-v-469df264] {
10494
10575
  margin-left: 10px;
10495
10576
  font-weight: bold;
10496
10577
  color: var(--color-text-primary);
10497
10578
  }
10498
- .node-card[data-v-2e3312f9] {
10579
+ .node-card[data-v-469df264] {
10499
10580
  padding: 15px;
10500
10581
  }
10501
- .node-details p[data-v-2e3312f9] {
10582
+ .node-details p[data-v-469df264] {
10502
10583
  margin: 5px 0;
10503
10584
  }
10504
- .success[data-v-2e3312f9] {
10505
- color: green;
10585
+ .success[data-v-469df264] {
10586
+ color: var(--color-success);
10506
10587
  }
10507
- .failure[data-v-2e3312f9] {
10508
- color: red;
10588
+ .failure[data-v-469df264] {
10589
+ color: var(--color-danger);
10509
10590
  }
10510
- .running[data-v-2e3312f9] {
10511
- animation: pulse-2e3312f9 1.5s infinite;
10591
+ .running[data-v-469df264] {
10592
+ animation: pulse-469df264 1.5s infinite;
10512
10593
  }
10513
- @keyframes pulse-2e3312f9 {
10594
+ @keyframes pulse-469df264 {
10514
10595
  0% {
10515
10596
  opacity: 1;
10516
10597
  }
@@ -10521,18 +10602,18 @@ to {
10521
10602
  opacity: 1;
10522
10603
  }
10523
10604
  }
10524
- .node-info[data-v-2e3312f9] {
10605
+ .node-info[data-v-469df264] {
10525
10606
  display: flex;
10526
10607
  flex-direction: column;
10527
10608
  gap: 4px;
10528
10609
  }
10529
- .node-title[data-v-2e3312f9] {
10610
+ .node-title[data-v-469df264] {
10530
10611
  margin: 0;
10531
10612
  font-size: 16px;
10532
10613
  font-weight: 600;
10533
10614
  color: var(--color-text-primary);
10534
10615
  }
10535
- .node-description[data-v-2e3312f9] {
10616
+ .node-description[data-v-469df264] {
10536
10617
  margin: 0;
10537
10618
  font-size: 14px;
10538
10619
  color: var(--color-text-secondary);
@@ -10543,62 +10624,63 @@ to {
10543
10624
  -webkit-box-orient: vertical;
10544
10625
  }
10545
10626
 
10546
- .log-container[data-v-4eceb639] {
10627
+ .log-container[data-v-5497bec4] {
10547
10628
  height: 100%;
10548
10629
  display: flex;
10549
10630
  flex-direction: column;
10550
- background-color: #1e1e1e;
10551
- color: #d4d4d4;
10552
- font-family: "Consolas", "Monaco", "Courier New", monospace;
10631
+ background-color: var(--color-code-bg);
10632
+ color: var(--color-code-text);
10633
+ font-family: var(--font-family-mono);
10553
10634
  overflow-y: auto;
10554
10635
  }
10555
- .log-header[data-v-4eceb639] {
10636
+ .log-header[data-v-5497bec4] {
10556
10637
  display: flex;
10557
10638
  justify-content: space-between;
10558
10639
  align-items: center;
10559
10640
  padding: 8px;
10560
- background-color: #252526;
10561
- border-bottom: 1px solid #333;
10641
+ background-color: var(--color-gray-800);
10642
+ border-bottom: 1px solid var(--color-border-primary);
10643
+ opacity: 0.95;
10562
10644
  position: sticky;
10563
10645
  top: 0;
10564
10646
  z-index: 10; /* Ensures it stays above the logs */
10565
10647
  }
10566
- .log-status[data-v-4eceb639] {
10648
+ .log-status[data-v-5497bec4] {
10567
10649
  display: flex;
10568
10650
  align-items: center;
10569
10651
  gap: 8px;
10570
10652
  font-size: 0.9em;
10571
10653
  }
10572
- .status-indicator[data-v-4eceb639] {
10654
+ .status-indicator[data-v-5497bec4] {
10573
10655
  width: 8px;
10574
10656
  height: 8px;
10575
10657
  border-radius: 50%;
10576
- background-color: #666;
10658
+ background-color: var(--color-gray-500);
10577
10659
  }
10578
- .status-indicator.active[data-v-4eceb639] {
10579
- background-color: #4caf50;
10660
+ .status-indicator.active[data-v-5497bec4] {
10661
+ background-color: var(--color-success);
10580
10662
  }
10581
- .status-indicator.error[data-v-4eceb639] {
10582
- background-color: #f44336;
10663
+ .status-indicator.error[data-v-5497bec4] {
10664
+ background-color: var(--color-danger);
10583
10665
  }
10584
- .log-controls[data-v-4eceb639] {
10666
+ .log-controls[data-v-5497bec4] {
10585
10667
  display: flex;
10586
10668
  gap: 8px;
10587
10669
  }
10588
- .error-banner[data-v-4eceb639] {
10670
+ .error-banner[data-v-5497bec4] {
10589
10671
  padding: 8px 12px;
10590
- background-color: rgba(244, 67, 54, 0.2);
10591
- color: #f44336;
10672
+ background-color: var(--color-danger-light);
10673
+ color: var(--color-danger);
10592
10674
  font-size: 0.9em;
10593
- border-bottom: 1px solid #f44336;
10675
+ border-bottom: 1px solid var(--color-danger);
10594
10676
  }
10595
- .empty-state[data-v-4eceb639] {
10677
+ .empty-state[data-v-5497bec4] {
10596
10678
  padding: 16px;
10597
10679
  text-align: center;
10598
- color: #777;
10680
+ color: var(--color-text-muted);
10599
10681
  font-style: italic;
10600
10682
  }
10601
- .logs[data-v-4eceb639] {
10683
+ .logs[data-v-5497bec4] {
10602
10684
  flex-grow: 1;
10603
10685
  margin: 0;
10604
10686
  padding: 8px;
@@ -10608,67 +10690,32 @@ to {
10608
10690
  line-height: 1.8; /* Reduced line height */
10609
10691
  font-size: small;
10610
10692
  }
10611
- .logs.auto-scroll[data-v-4eceb639] {
10693
+ .logs.auto-scroll[data-v-5497bec4] {
10612
10694
  scroll-behavior: smooth;
10613
10695
  }
10614
- [data-v-4eceb639]::-webkit-scrollbar {
10696
+ [data-v-5497bec4]::-webkit-scrollbar {
10615
10697
  width: 12px;
10616
10698
  }
10617
- [data-v-4eceb639]::-webkit-scrollbar-track {
10618
- background: #1e1e1e;
10699
+ [data-v-5497bec4]::-webkit-scrollbar-track {
10700
+ background: var(--color-code-bg);
10619
10701
  }
10620
- [data-v-4eceb639]::-webkit-scrollbar-thumb {
10621
- background: #424242;
10702
+ [data-v-5497bec4]::-webkit-scrollbar-thumb {
10703
+ background: var(--color-gray-600);
10622
10704
  border-radius: 6px;
10623
- border: 3px solid #1e1e1e;
10705
+ border: 3px solid var(--color-code-bg);
10624
10706
  }
10625
- [data-v-4eceb639]::-webkit-scrollbar-thumb:hover {
10626
- background: #4f4f4f;
10707
+ [data-v-5497bec4]::-webkit-scrollbar-thumb:hover {
10708
+ background: var(--color-gray-500);
10627
10709
  }
10628
- .error-line[data-v-4eceb639] {
10629
- background-color: rgba(255, 0, 0, 0.2); /* Light red background */
10630
- color: #ffcdd2; /* Light red text for better readability */
10710
+ .error-line[data-v-5497bec4] {
10711
+ background-color: var(--color-danger-light);
10712
+ color: var(--color-danger);
10631
10713
  }
10632
10714
 
10633
- .context-menu[data-v-2d0cd6bf] {
10634
- position: fixed;
10715
+ /* Context menu styles are now centralized in styles/components/_context-menu.css */
10716
+ /* Component-specific overrides only */
10717
+ .context-menu[data-v-9260496a] {
10635
10718
  min-width: 200px;
10636
- background-color: var(--color-background-primary);
10637
- border-radius: var(--border-radius-md);
10638
- box-shadow: var(--shadow-lg);
10639
- z-index: 10000;
10640
- overflow: hidden;
10641
- border: 1px solid var(--color-border-primary);
10642
- }
10643
- .context-menu-header[data-v-2d0cd6bf] {
10644
- padding: var(--spacing-2) var(--spacing-3);
10645
- font-weight: var(--font-weight-semibold);
10646
- background-color: var(--color-background-secondary);
10647
- border-bottom: 1px solid var(--color-border-primary);
10648
- font-size: var(--font-size-sm);
10649
- color: var(--color-text-primary);
10650
- }
10651
- .context-menu-items[data-v-2d0cd6bf] {
10652
- max-height: 300px;
10653
- overflow-y: auto;
10654
- }
10655
- .context-menu-item[data-v-2d0cd6bf] {
10656
- display: flex;
10657
- align-items: center;
10658
- padding: var(--spacing-2) var(--spacing-3);
10659
- cursor: pointer;
10660
- transition: background-color var(--transition-fast);
10661
- font-size: var(--font-size-sm);
10662
- color: var(--color-text-primary);
10663
- }
10664
- .context-menu-item[data-v-2d0cd6bf]:hover {
10665
- background-color: var(--color-background-tertiary);
10666
- }
10667
- .context-menu-icon[data-v-2d0cd6bf] {
10668
- margin-right: var(--spacing-2);
10669
- width: 20px;
10670
- text-align: center;
10671
- color: var(--color-text-secondary);
10672
10719
  }
10673
10720
  .vue-flow {
10674
10721
  position: relative;
@@ -11159,7 +11206,13 @@ body,
11159
11206
  filter: invert(100%);
11160
11207
  }
11161
11208
  .animated-bg-gradient {
11162
- background: linear-gradient(122deg, #6f3381, #81c7d4, #fedfe1, #fffffb);
11209
+ background: linear-gradient(
11210
+ 122deg,
11211
+ var(--color-gradient-canvas-1),
11212
+ var(--color-gradient-canvas-2),
11213
+ var(--color-gradient-canvas-3),
11214
+ var(--color-gradient-canvas-4)
11215
+ );
11163
11216
  background-size: 800% 800%;
11164
11217
  -webkit-animation: gradient 4s ease infinite;
11165
11218
  -moz-animation: gradient 4s ease infinite;
@@ -11213,11 +11266,11 @@ main {
11213
11266
  gap: 10px;
11214
11267
  }
11215
11268
 
11216
- .flow-tabs-container[data-v-1d0bca1e] {
11269
+ .flow-tabs-container[data-v-5470f189] {
11217
11270
  width: 100%;
11218
11271
  font-family: var(--font-family-base);
11219
11272
  }
11220
- .flow-tabs[data-v-1d0bca1e] {
11273
+ .flow-tabs[data-v-5470f189] {
11221
11274
  display: flex;
11222
11275
  align-items: center;
11223
11276
  overflow-x: auto;
@@ -11227,17 +11280,17 @@ main {
11227
11280
  padding-left: var(--spacing-1);
11228
11281
  scrollbar-width: thin;
11229
11282
  }
11230
- .flow-tabs[data-v-1d0bca1e]::-webkit-scrollbar {
11283
+ .flow-tabs[data-v-5470f189]::-webkit-scrollbar {
11231
11284
  height: 4px;
11232
11285
  }
11233
- .flow-tabs[data-v-1d0bca1e]::-webkit-scrollbar-track {
11286
+ .flow-tabs[data-v-5470f189]::-webkit-scrollbar-track {
11234
11287
  background: transparent;
11235
11288
  }
11236
- .flow-tabs[data-v-1d0bca1e]::-webkit-scrollbar-thumb {
11289
+ .flow-tabs[data-v-5470f189]::-webkit-scrollbar-thumb {
11237
11290
  background-color: var(--color-gray-300);
11238
11291
  border-radius: var(--border-radius-full);
11239
11292
  }
11240
- .flow-tab[data-v-1d0bca1e] {
11293
+ .flow-tab[data-v-5470f189] {
11241
11294
  display: flex;
11242
11295
  align-items: center;
11243
11296
  padding: 0 var(--spacing-4);
@@ -11253,28 +11306,28 @@ main {
11253
11306
  margin-right: 1px;
11254
11307
  transition: all var(--transition-fast);
11255
11308
  }
11256
- .flow-tab.active[data-v-1d0bca1e] {
11309
+ .flow-tab.active[data-v-5470f189] {
11257
11310
  background-color: var(--color-background-primary);
11258
11311
  border-top: 2px solid var(--primary-blue);
11259
11312
  box-shadow: var(--shadow-xs);
11260
11313
  z-index: 1;
11261
11314
  }
11262
- .flow-tab[data-v-1d0bca1e]:not(.active):hover {
11315
+ .flow-tab[data-v-5470f189]:not(.active):hover {
11263
11316
  background-color: var(--color-background-hover);
11264
11317
  }
11265
- .tab-content[data-v-1d0bca1e] {
11318
+ .tab-content[data-v-5470f189] {
11266
11319
  display: flex;
11267
11320
  align-items: center;
11268
11321
  gap: var(--spacing-2);
11269
11322
  width: calc(100% - 20px);
11270
11323
  overflow: hidden;
11271
11324
  }
11272
- .tab-icon[data-v-1d0bca1e] {
11325
+ .tab-icon[data-v-5470f189] {
11273
11326
  font-size: var(--font-size-xl);
11274
- color: var(--primary-blue);
11327
+ color: var(--color-accent-subtle);
11275
11328
  flex-shrink: 0;
11276
11329
  }
11277
- .tab-name[data-v-1d0bca1e] {
11330
+ .tab-name[data-v-5470f189] {
11278
11331
  white-space: nowrap;
11279
11332
  overflow: hidden;
11280
11333
  text-overflow: ellipsis;
@@ -11283,10 +11336,10 @@ main {
11283
11336
  letter-spacing: 0.01em;
11284
11337
  color: var(--color-text-secondary);
11285
11338
  }
11286
- .active .tab-name[data-v-1d0bca1e] {
11339
+ .active .tab-name[data-v-5470f189] {
11287
11340
  color: var(--color-text-primary);
11288
11341
  }
11289
- .close-icon[data-v-1d0bca1e] {
11342
+ .close-icon[data-v-5470f189] {
11290
11343
  font-size: var(--font-size-lg);
11291
11344
  color: var(--color-text-muted);
11292
11345
  opacity: 0;
@@ -11297,21 +11350,21 @@ main {
11297
11350
  transition: all var(--transition-fast);
11298
11351
  transform: scale(0.9);
11299
11352
  }
11300
- .flow-tab:hover .close-icon[data-v-1d0bca1e] {
11353
+ .flow-tab:hover .close-icon[data-v-5470f189] {
11301
11354
  opacity: 1;
11302
11355
  }
11303
- .close-icon[data-v-1d0bca1e]:hover {
11356
+ .close-icon[data-v-5470f189]:hover {
11304
11357
  background-color: var(--color-background-tertiary);
11305
11358
  color: var(--color-text-secondary);
11306
11359
  transform: scale(1);
11307
11360
  }
11308
- .active .close-icon[data-v-1d0bca1e]:hover {
11361
+ .active .close-icon[data-v-5470f189]:hover {
11309
11362
  background-color: var(--color-background-hover);
11310
11363
  color: var(--color-primary);
11311
11364
  }
11312
11365
 
11313
11366
  /* New flow tab styling */
11314
- .new-flow-tab[data-v-1d0bca1e] {
11367
+ .new-flow-tab[data-v-5470f189] {
11315
11368
  min-width: 40px;
11316
11369
  max-width: 40px;
11317
11370
  display: flex;
@@ -11319,7 +11372,7 @@ main {
11319
11372
  align-items: center;
11320
11373
  color: var(--color-primary);
11321
11374
  }
11322
- .new-flow-tab[data-v-1d0bca1e]:hover {
11375
+ .new-flow-tab[data-v-5470f189]:hover {
11323
11376
  background-color: var(--color-background-hover);
11324
11377
  }
11325
11378