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
@@ -0,0 +1,230 @@
1
+
2
+ .setup-container[data-v-04875383] {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ min-height: 100vh;
7
+ background: linear-gradient(
8
+ 135deg,
9
+ var(--color-background-secondary) 0%,
10
+ var(--color-background-primary) 100%
11
+ );
12
+ padding: var(--spacing-4);
13
+ }
14
+ .setup-card[data-v-04875383] {
15
+ width: 100%;
16
+ max-width: 600px;
17
+ background-color: var(--color-background-primary);
18
+ border-radius: var(--border-radius-xl);
19
+ box-shadow: var(--shadow-xl);
20
+ padding: var(--spacing-8);
21
+ border: 1px solid var(--color-border-light);
22
+ }
23
+ .setup-header[data-v-04875383] {
24
+ text-align: center;
25
+ margin-bottom: var(--spacing-6);
26
+ }
27
+ .logo-container[data-v-04875383] {
28
+ display: flex;
29
+ justify-content: center;
30
+ margin-bottom: var(--spacing-4);
31
+ }
32
+ .logo[data-v-04875383] {
33
+ width: 80px;
34
+ height: 80px;
35
+ object-fit: contain;
36
+ }
37
+ .setup-title[data-v-04875383] {
38
+ font-size: var(--font-size-2xl);
39
+ font-weight: var(--font-weight-semibold);
40
+ color: var(--color-text-primary);
41
+ margin-bottom: var(--spacing-2);
42
+ }
43
+ .setup-subtitle[data-v-04875383] {
44
+ font-size: var(--font-size-sm);
45
+ color: var(--color-text-secondary);
46
+ margin: 0;
47
+ }
48
+ .setup-content[data-v-04875383] {
49
+ display: flex;
50
+ flex-direction: column;
51
+ gap: var(--spacing-4);
52
+ }
53
+ .info-box[data-v-04875383] {
54
+ display: flex;
55
+ gap: var(--spacing-3);
56
+ padding: var(--spacing-4);
57
+ background-color: var(--color-info-light);
58
+ border: 1px solid var(--color-info);
59
+ border-radius: var(--border-radius-md);
60
+ }
61
+ .info-icon[data-v-04875383] {
62
+ font-size: var(--font-size-xl);
63
+ color: var(--color-info);
64
+ flex-shrink: 0;
65
+ }
66
+ .info-text h3[data-v-04875383] {
67
+ margin: 0 0 var(--spacing-1) 0;
68
+ font-size: var(--font-size-base);
69
+ color: var(--color-text-primary);
70
+ }
71
+ .info-text p[data-v-04875383] {
72
+ margin: 0;
73
+ font-size: var(--font-size-sm);
74
+ color: var(--color-text-secondary);
75
+ }
76
+ .error-message[data-v-04875383] {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: var(--spacing-2);
80
+ padding: var(--spacing-3) var(--spacing-4);
81
+ background-color: var(--color-danger-light);
82
+ border: 1px solid var(--color-danger);
83
+ border-radius: var(--border-radius-md);
84
+ color: var(--color-danger);
85
+ font-size: var(--font-size-sm);
86
+ }
87
+ .generate-section[data-v-04875383] {
88
+ display: flex;
89
+ justify-content: center;
90
+ padding: var(--spacing-4) 0;
91
+ }
92
+ .generate-button[data-v-04875383] {
93
+ display: flex;
94
+ align-items: center;
95
+ gap: var(--spacing-2);
96
+ padding: var(--spacing-3) var(--spacing-6);
97
+ font-size: var(--font-size-base);
98
+ }
99
+ .key-result[data-v-04875383] {
100
+ display: flex;
101
+ flex-direction: column;
102
+ gap: var(--spacing-4);
103
+ }
104
+ .key-display[data-v-04875383] {
105
+ display: flex;
106
+ flex-direction: column;
107
+ gap: var(--spacing-2);
108
+ }
109
+ .key-label[data-v-04875383] {
110
+ font-size: var(--font-size-sm);
111
+ font-weight: var(--font-weight-medium);
112
+ color: var(--color-text-secondary);
113
+ }
114
+ .key-value-wrapper[data-v-04875383] {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: var(--spacing-2);
118
+ background-color: var(--color-background-secondary);
119
+ border: 1px solid var(--color-border-primary);
120
+ border-radius: var(--border-radius-md);
121
+ padding: var(--spacing-3);
122
+ }
123
+ .key-value[data-v-04875383] {
124
+ flex: 1;
125
+ font-family: var(--font-family-mono);
126
+ font-size: var(--font-size-sm);
127
+ word-break: break-all;
128
+ color: var(--color-text-primary);
129
+ }
130
+ .copy-button[data-v-04875383] {
131
+ background: none;
132
+ border: none;
133
+ color: var(--color-text-muted);
134
+ cursor: pointer;
135
+ padding: var(--spacing-2);
136
+ display: flex;
137
+ align-items: center;
138
+ justify-content: center;
139
+ transition: color var(--transition-fast);
140
+ border-radius: var(--border-radius-sm);
141
+ }
142
+ .copy-button[data-v-04875383]:hover {
143
+ color: var(--color-text-secondary);
144
+ background-color: var(--color-background-muted);
145
+ }
146
+ .copy-button.small[data-v-04875383] {
147
+ padding: var(--spacing-1);
148
+ }
149
+ .instructions-box[data-v-04875383] {
150
+ background-color: var(--color-background-secondary);
151
+ border: 1px solid var(--color-border-light);
152
+ border-radius: var(--border-radius-md);
153
+ padding: var(--spacing-4);
154
+ }
155
+ .instructions-box h4[data-v-04875383] {
156
+ margin: 0 0 var(--spacing-3) 0;
157
+ font-size: var(--font-size-sm);
158
+ font-weight: var(--font-weight-medium);
159
+ color: var(--color-text-primary);
160
+ }
161
+ .instruction-content p[data-v-04875383] {
162
+ margin: 0 0 var(--spacing-2) 0;
163
+ font-size: var(--font-size-sm);
164
+ color: var(--color-text-secondary);
165
+ }
166
+ .instruction-content code[data-v-04875383] {
167
+ background-color: var(--color-background-muted);
168
+ padding: var(--spacing-0-5) var(--spacing-1);
169
+ border-radius: var(--border-radius-sm);
170
+ font-size: var(--font-size-xs);
171
+ }
172
+ .instruction-content .hint[data-v-04875383] {
173
+ margin-top: var(--spacing-3);
174
+ color: var(--color-text-muted);
175
+ }
176
+ .code-block[data-v-04875383] {
177
+ display: flex;
178
+ align-items: center;
179
+ gap: var(--spacing-2);
180
+ background-color: var(--color-background-primary);
181
+ border: 1px solid var(--color-border-primary);
182
+ border-radius: var(--border-radius-md);
183
+ padding: var(--spacing-2) var(--spacing-3);
184
+ }
185
+ .code-block code[data-v-04875383] {
186
+ flex: 1;
187
+ font-family: var(--font-family-mono);
188
+ font-size: var(--font-size-xs);
189
+ word-break: break-all;
190
+ background: none;
191
+ padding: 0;
192
+ }
193
+ .warning-box[data-v-04875383] {
194
+ display: flex;
195
+ gap: var(--spacing-3);
196
+ padding: var(--spacing-3) var(--spacing-4);
197
+ background-color: var(--color-warning-light);
198
+ border: 1px solid var(--color-warning);
199
+ border-radius: var(--border-radius-md);
200
+ font-size: var(--font-size-sm);
201
+ color: var(--color-warning-dark);
202
+ }
203
+ .warning-box i[data-v-04875383] {
204
+ flex-shrink: 0;
205
+ color: var(--color-warning);
206
+ }
207
+ .setup-footer[data-v-04875383] {
208
+ text-align: center;
209
+ margin-top: var(--spacing-6);
210
+ padding-top: var(--spacing-4);
211
+ border-top: 1px solid var(--color-border-light);
212
+ }
213
+ .footer-text[data-v-04875383] {
214
+ font-size: var(--font-size-xs);
215
+ color: var(--color-text-muted);
216
+ margin: 0;
217
+ }
218
+ .loading-spinner[data-v-04875383] {
219
+ width: 18px;
220
+ height: 18px;
221
+ border: 2px solid transparent;
222
+ border-top-color: currentColor;
223
+ border-radius: 50%;
224
+ animation: spin-04875383 0.8s linear infinite;
225
+ }
226
+ @keyframes spin-04875383 {
227
+ to {
228
+ transform: rotate(360deg);
229
+ }
230
+ }
@@ -1,5 +1,5 @@
1
- import { _ as _sfc_main } from "./SingleSelect.vue_vue_type_script_setup_true_lang-30741bb2.js";
2
- import "./index-fb6493ae.js";
1
+ import { _ as _sfc_main } from "./SingleSelect.vue_vue_type_script_setup_true_lang-c8ebdd33.js";
2
+ import "./index-387a6f18.js";
3
3
  export {
4
4
  _sfc_main as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, A as computed, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, m as createVNode, p as withCtx, F as Fragment, D as renderList, x as createBlock } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, B as computed, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, p as createVNode, q as withCtx, G as Fragment, H as renderList, y as createBlock } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, m as createVNode, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, p as createVNode, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _hoisted_3 = { class: "slider-wrapper" };
@@ -1,10 +1,10 @@
1
- import { d as defineComponent, r as ref, A as computed, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, b as createBaseVNode, F as Fragment, D as renderList, n as normalizeClass, t as toDisplayString, f as createCommentVNode, Z as normalizeStyle, w as withModifiers, x as createBlock, s as unref, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
3
- import { C as CodeLoader } from "./vue-content-loader.es-c506ad97.js";
4
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
5
- import "./DesignerView-e6f5c0e8.js";
6
- import "./index-3ba44389.js";
7
- import "./vue-codemirror.esm-0965f39f.js";
1
+ import { d as defineComponent, r as ref, B as computed, m as resolveComponent, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, a as createBaseVNode, G as Fragment, H as renderList, n as normalizeClass, t as toDisplayString, e as createCommentVNode, a0 as normalizeStyle, w as withModifiers, y as createBlock, x as unref, g as _export_sfc } from "./index-387a6f18.js";
2
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
3
+ import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
4
+ import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
5
+ import "./DesignerView-f64749fb.js";
6
+ import "./index-f0a6e5a5.js";
7
+ import "./vue-codemirror.esm-31ba0e0b.js";
8
8
  const _hoisted_1 = {
9
9
  key: 0,
10
10
  class: "listbox-wrapper"
@@ -219,8 +219,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
219
219
  };
220
220
  }
221
221
  });
222
- const Sort_vue_vue_type_style_index_0_scoped_ada24624_lang = "";
223
- const Sort = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ada24624"]]);
222
+ const Sort_vue_vue_type_style_index_0_scoped_bcf69c5f_lang = "";
223
+ const Sort = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bcf69c5f"]]);
224
224
  export {
225
225
  Sort as default
226
226
  };
@@ -0,0 +1,9 @@
1
+
2
+ /* Context menu styles are now centralized in styles/components/_context-menu.css */
3
+ .table-wrapper[data-v-bcf69c5f] {
4
+ max-height: 300px;
5
+ box-shadow: var(--shadow-sm);
6
+ border-radius: var(--border-radius-lg);
7
+ overflow: auto;
8
+ margin: var(--spacing-1);
9
+ }
@@ -1,5 +1,5 @@
1
- import { _ as _sfc_main } from "./TextInput.vue_vue_type_script_setup_true_lang-abad1ca2.js";
2
- import "./index-fb6493ae.js";
1
+ import { _ as _sfc_main } from "./TextInput.vue_vue_type_script_setup_true_lang-e86510d0.js";
2
+ import "./index-387a6f18.js";
3
3
  export {
4
4
  _sfc_main as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, m as createVNode } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, p as createVNode } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,12 +1,12 @@
1
- import { d as defineComponent, r as ref, A as computed, C as onMounted, X as nextTick, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, b as createBaseVNode, q as createTextVNode, f as createCommentVNode, g as withDirectives, v as vModelText, x as createBlock, s as unref, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
3
- import { C as ColumnSelector } from "./dropDown-ac0fda9d.js";
4
- import { u as unavailableField } from "./UnavailableFields-bdad6144.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
6
- import { C as CodeLoader } from "./vue-content-loader.es-c506ad97.js";
7
- import "./DesignerView-e6f5c0e8.js";
8
- import "./index-3ba44389.js";
9
- import "./vue-codemirror.esm-0965f39f.js";
1
+ import { d as defineComponent, r as ref, B as computed, F as onMounted, Z as nextTick, m as resolveComponent, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, a as createBaseVNode, f as createTextVNode, e as createCommentVNode, i as withDirectives, v as vModelText, y as createBlock, x as unref, g as _export_sfc } from "./index-387a6f18.js";
2
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
3
+ import { C as ColumnSelector } from "./dropDown-2798a109.js";
4
+ import { u as unavailableField } from "./UnavailableFields-b72a2c72.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
6
+ import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
7
+ import "./DesignerView-f64749fb.js";
8
+ import "./index-f0a6e5a5.js";
9
+ import "./vue-codemirror.esm-31ba0e0b.js";
10
10
  const _hoisted_1 = {
11
11
  key: 0,
12
12
  class: "listbox-wrapper"
@@ -1,5 +1,5 @@
1
- import { _ as _sfc_main } from "./ToggleSwitch.vue_vue_type_script_setup_true_lang-5605c793.js";
2
- import "./index-fb6493ae.js";
1
+ import { _ as _sfc_main } from "./ToggleSwitch.vue_vue_type_script_setup_true_lang-00f2580e.js";
2
+ import "./index-387a6f18.js";
3
3
  export {
4
4
  _sfc_main as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, m as createVNode } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, p as createVNode } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,19 +1,19 @@
1
1
 
2
- .icon-wrapper[data-v-fa8da205] {
2
+ .icon-wrapper[data-v-ef412494] {
3
3
  position: relative;
4
4
  display: inline-block;
5
5
  }
6
- .unavailable-icon[data-v-fa8da205] {
6
+ .unavailable-icon[data-v-ef412494] {
7
7
  display: inline-block;
8
8
  width: 16px;
9
9
  height: 16px;
10
10
  line-height: 16px;
11
11
  text-align: center;
12
- background-color: #d9534f; /* Bootstrap danger color */
13
- color: white;
12
+ background-color: var(--color-danger);
13
+ color: var(--color-text-inverse);
14
14
  font-weight: bold;
15
15
  font-size: 1.2em;
16
- border-radius: 50%; /* Makes it round */
16
+ border-radius: 50%;
17
17
  margin-left: 8px;
18
18
  cursor: default;
19
19
  user-select: none;
@@ -22,28 +22,28 @@
22
22
  transform 0.3s;
23
23
  z-index: 1000;
24
24
  }
25
- .unavailable-icon[data-v-fa8da205]:hover {
26
- background-color: #c9302c; /* Darker red on hover */
27
- transform: scale(1.1); /* Slightly enlarges the icon */
25
+ .unavailable-icon[data-v-ef412494]:hover {
26
+ background-color: var(--color-danger-dark);
27
+ transform: scale(1.1);
28
28
  }
29
- .tooltip-text[data-v-fa8da205] {
29
+ .tooltip-text[data-v-ef412494] {
30
30
  visibility: hidden;
31
31
  background-color: var(--color-text-primary);
32
- color: #fff;
32
+ color: var(--color-text-inverse);
33
33
  text-align: center;
34
34
  border-radius: 4px;
35
35
  padding: 5px;
36
36
  position: absolute;
37
37
  z-index: 1;
38
- bottom: 125%; /* Position the tooltip above the icon */
38
+ bottom: 125%;
39
39
  left: 50%;
40
40
  transform: translateX(-50%);
41
41
  white-space: nowrap;
42
42
  opacity: 0;
43
43
  transition: opacity 0.3s;
44
44
  }
45
- .icon-wrapper:hover .tooltip-text[data-v-fa8da205] {
45
+ .icon-wrapper:hover .tooltip-text[data-v-ef412494] {
46
46
  visibility: visible;
47
47
  opacity: 1;
48
- z-index: 10000;
48
+ z-index: var(--z-index-canvas-dropdown, 100001);
49
49
  }
@@ -1,5 +1,5 @@
1
- import { P as PopOver } from "./PopOver-b22f049e.js";
2
- import { d as defineComponent, o as openBlock, x as createBlock, p as withCtx, b as createBaseVNode, t as toDisplayString, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { P as PopOver } from "./PopOver-862d7e28.js";
2
+ import { d as defineComponent, o as openBlock, y as createBlock, q as withCtx, a as createBaseVNode, t as toDisplayString, g as _export_sfc } from "./index-387a6f18.js";
3
3
  const _hoisted_1 = { class: "icon-wrapper" };
4
4
  const _hoisted_2 = { class: "unavailable-icon" };
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -29,8 +29,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
29
  };
30
30
  }
31
31
  });
32
- const UnavailableFields_vue_vue_type_style_index_0_scoped_fa8da205_lang = "";
33
- const unavailableField = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fa8da205"]]);
32
+ const UnavailableFields_vue_vue_type_style_index_0_scoped_ef412494_lang = "";
33
+ const unavailableField = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ef412494"]]);
34
34
  export {
35
35
  unavailableField as u
36
36
  };
@@ -1,9 +1,9 @@
1
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
2
- import { d as defineComponent, r as ref, C as onMounted, X as nextTick, k as onUnmounted, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, q as createTextVNode, f as createCommentVNode, i as _export_sfc } from "./index-fb6493ae.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
4
- import "./DesignerView-e6f5c0e8.js";
5
- import "./index-3ba44389.js";
6
- import "./vue-codemirror.esm-0965f39f.js";
1
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
2
+ import { d as defineComponent, r as ref, F as onMounted, Z as nextTick, l as onUnmounted, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, f as createTextVNode, e as createCommentVNode, g as _export_sfc } from "./index-387a6f18.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
4
+ import "./DesignerView-f64749fb.js";
5
+ import "./index-f0a6e5a5.js";
6
+ import "./vue-codemirror.esm-31ba0e0b.js";
7
7
  const _hoisted_1 = {
8
8
  key: 0,
9
9
  class: "listbox-wrapper"
@@ -0,0 +1,3 @@
1
+
2
+ /* Context menu styles are now centralized in styles/components/_context-menu.css */
3
+ /* No component-specific styles needed */
@@ -1,14 +1,14 @@
1
- import "./nodeInput-0eb13f1a.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-c506ad97.js";
3
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
4
- import { d as defineComponent, r as ref, A as computed, C as onMounted, X as nextTick, k as onUnmounted, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, x as createBlock, s as unref, i as _export_sfc } from "./index-fb6493ae.js";
5
- import { s as selectDynamic } from "./selectDynamic-80b92899.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
1
+ import "./nodeInput-ed2ae8d7.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
3
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
4
+ import { d as defineComponent, r as ref, B as computed, F as onMounted, Z as nextTick, l as onUnmounted, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, y as createBlock, x as unref, g as _export_sfc } from "./index-387a6f18.js";
5
+ import { s as selectDynamic } from "./selectDynamic-6b4b0767.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
7
7
  import { h as createSelectInputFromName } from "./node.types-2c15bb7e.js";
8
- import "./UnavailableFields-bdad6144.js";
9
- import "./DesignerView-e6f5c0e8.js";
10
- import "./index-3ba44389.js";
11
- import "./vue-codemirror.esm-0965f39f.js";
8
+ import "./UnavailableFields-b72a2c72.js";
9
+ import "./DesignerView-f64749fb.js";
10
+ import "./index-f0a6e5a5.js";
11
+ import "./vue-codemirror.esm-31ba0e0b.js";
12
12
  const _hoisted_1 = {
13
13
  key: 0,
14
14
  class: "listbox-wrapper"
@@ -188,8 +188,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
188
  };
189
189
  }
190
190
  });
191
- const Unique_vue_vue_type_style_index_0_scoped_6468a034_lang = "";
192
- const Unique = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6468a034"]]);
191
+ const Unique_vue_vue_type_style_index_0_scoped_7bd32dd9_lang = "";
192
+ const Unique = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7bd32dd9"]]);
193
193
  export {
194
194
  Unique as default
195
195
  };
@@ -1,5 +1,5 @@
1
1
 
2
- .context-menu[data-v-46c439e7] {
2
+ .context-menu[data-v-844381ed] {
3
3
  position: fixed;
4
4
  z-index: 1000;
5
5
  border: 1px solid #ccc;
@@ -8,23 +8,23 @@
8
8
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
9
9
  border-radius: 4px;
10
10
  }
11
- .context-menu ul[data-v-46c439e7] {
11
+ .context-menu ul[data-v-844381ed] {
12
12
  list-style: none;
13
13
  padding: 0;
14
14
  margin: 0;
15
15
  }
16
- .context-menu li[data-v-46c439e7] {
16
+ .context-menu li[data-v-844381ed] {
17
17
  padding: 8px 16px;
18
18
  cursor: pointer;
19
19
  }
20
- .context-menu li[data-v-46c439e7]:hover {
20
+ .context-menu li[data-v-844381ed]:hover {
21
21
  background-color: #f0f0f0;
22
22
  }
23
- .switch-container[data-v-46c439e7] {
23
+ .switch-container[data-v-844381ed] {
24
24
  display: flex;
25
25
  align-items: center;
26
26
  margin: 12px;
27
27
  }
28
- .switch-container span[data-v-46c439e7] {
28
+ .switch-container span[data-v-844381ed] {
29
29
  margin-right: 10px;
30
30
  }
@@ -1,11 +1,11 @@
1
- import { d as defineComponent, r as ref, C as onMounted, X as nextTick, k as onUnmounted, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, b as createBaseVNode, F as Fragment, D as renderList, n as normalizeClass, w as withModifiers, t as toDisplayString, x as createBlock, f as createCommentVNode, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
3
- import ContextMenu from "./ContextMenu-8e2051c6.js";
4
- import SettingsSection from "./SettingsSection-0784e157.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
6
- import "./DesignerView-e6f5c0e8.js";
7
- import "./index-3ba44389.js";
8
- import "./vue-codemirror.esm-0965f39f.js";
1
+ import { d as defineComponent, r as ref, F as onMounted, Z as nextTick, l as onUnmounted, m as resolveComponent, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, a as createBaseVNode, G as Fragment, H as renderList, n as normalizeClass, w as withModifiers, t as toDisplayString, y as createBlock, e as createCommentVNode, g as _export_sfc } from "./index-387a6f18.js";
2
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
3
+ import "./DesignerView-f64749fb.js";
4
+ import { _ as _sfc_main$1 } from "./ContextMenu.vue_vue_type_script_setup_true_lang-a1bd6314.js";
5
+ import SettingsSection from "./SettingsSection-83090218.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
7
+ import "./index-f0a6e5a5.js";
8
+ import "./vue-codemirror.esm-31ba0e0b.js";
9
9
  const _hoisted_1 = {
10
10
  key: 0,
11
11
  class: "listbox-wrapper"
@@ -205,7 +205,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
205
205
  }), 128))
206
206
  ])
207
207
  ]),
208
- showContextMenu.value ? (openBlock(), createBlock(ContextMenu, {
208
+ showContextMenu.value ? (openBlock(), createBlock(_sfc_main$1, {
209
209
  key: 0,
210
210
  id: "pivot-context-menu",
211
211
  ref_key: "contextMenuRef",
@@ -282,8 +282,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
282
282
  };
283
283
  }
284
284
  });
285
- const Unpivot_vue_vue_type_style_index_0_scoped_46c439e7_lang = "";
286
- const Unpivot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-46c439e7"]]);
285
+ const Unpivot_vue_vue_type_style_index_0_scoped_844381ed_lang = "";
286
+ const Unpivot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-844381ed"]]);
287
287
  export {
288
288
  Unpivot as default
289
289
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, A as computed, o as openBlock, x as createBlock, p as withCtx, m as createVNode, b as createBaseVNode, s as unref, au as ElIcon, c as createElementBlock, f as createCommentVNode, av as ElPopover, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, B as computed, o as openBlock, y as createBlock, q as withCtx, p as createVNode, a as createBaseVNode, x as unref, at as ElIcon, c as createElementBlock, e as createCommentVNode, ax as ElPopover, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "validation-wrapper" };
3
3
  const _hoisted_2 = {
4
4
  key: 0,
@@ -1,4 +1,4 @@
1
- import { z as getDefaultExportFromCjs, d as defineComponent, r as ref, C as onMounted, k as onUnmounted, o as openBlock, c as createElementBlock, aq as toRaw, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { A as getDefaultExportFromCjs, d as defineComponent, r as ref, F as onMounted, l as onUnmounted, o as openBlock, c as createElementBlock, as as toRaw, g as _export_sfc } from "./index-387a6f18.js";
2
2
  function _mergeNamespaces(n10, m10) {
3
3
  for (var i = 0; i < m10.length; i++) {
4
4
  const e19 = m10[i];
@@ -1,4 +1,4 @@
1
- import { j as axios } from "./index-fb6493ae.js";
1
+ import { k as axios } from "./index-387a6f18.js";
2
2
  const API_BASE_URL = "/db_connection_lib";
3
3
  const toPythonFormat = (connection) => {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { j as axios } from "./index-fb6493ae.js";
1
+ import { k as axios } from "./index-387a6f18.js";
2
2
  const API_BASE_URL = "/cloud_connections";
3
3
  const toPythonFormat = (connection) => {
4
4
  return {