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
@@ -8200,12 +8200,70 @@ readers do not read off random characters that represent icons */
8200
8200
  /* Status colors */
8201
8201
  --color-success: #10b981;
8202
8202
  --color-success-light: #d1fae5;
8203
+ --color-success-hover: #059669;
8203
8204
  --color-danger: #ef4444;
8204
8205
  --color-danger-light: #fee2e2;
8206
+ --color-danger-hover: #dc2626;
8207
+ --color-danger-dark: #b91c1c;
8205
8208
  --color-warning: #f59e0b;
8206
8209
  --color-warning-light: #fef3c7;
8210
+ --color-warning-hover: #d97706;
8211
+ --color-warning-dark: #92400e;
8212
+ --color-warning-darker: #78350f;
8207
8213
  --color-info: #3b82f6;
8208
8214
  --color-info-light: #dbeafe;
8215
+ --color-info-hover: #2563eb;
8216
+
8217
+ /* Button primary colors (interactive elements) */
8218
+ --color-button-primary: #4a6cf7;
8219
+ --color-button-primary-hover: #3d5bd9;
8220
+ --color-button-secondary: #3498db;
8221
+ --color-button-secondary-hover: #2980b9;
8222
+ --color-button-secondary-light: #93c5fd;
8223
+
8224
+ /* Code editor colors */
8225
+ --color-code-bg: #282c34;
8226
+ --color-code-text: #abb2bf;
8227
+ --color-code-keyword: #f08d49;
8228
+ --color-code-string: #8ec07c;
8229
+ --color-code-function: #b8bb26;
8230
+
8231
+ /* Overlay/Modal colors */
8232
+ --color-overlay: rgba(0, 0, 0, 0.5);
8233
+ --color-overlay-dark: rgba(0, 0, 0, 0.7);
8234
+
8235
+ /* Brand provider colors */
8236
+ --color-brand-aws: #ff9900;
8237
+ --color-brand-microsoft: #0078d4;
8238
+
8239
+ /* Gradient decorative colors */
8240
+ --color-gradient-purple-start: #667eea;
8241
+ --color-gradient-purple-end: #764ba2;
8242
+ --color-gradient-canvas-1: #6f3381;
8243
+ --color-gradient-canvas-2: #81c7d4;
8244
+ --color-gradient-canvas-3: #fedfe1;
8245
+ --color-gradient-canvas-4: #fffffb;
8246
+
8247
+ /* Focus ring colors */
8248
+ --color-focus-ring: rgba(44, 116, 179, 0.1);
8249
+ --color-focus-ring-error: rgba(239, 68, 68, 0.1);
8250
+ --color-focus-ring-primary: rgba(0, 123, 255, 0.5);
8251
+ --color-focus-ring-accent: rgba(8, 145, 178, 0.15);
8252
+ --color-focus-ring-accent-strong: rgba(8, 145, 178, 0.25);
8253
+ --color-focus-ring-button: rgba(74, 108, 247, 0.1);
8254
+ --color-focus-ring-secondary: rgba(52, 152, 219, 0.3);
8255
+ --color-focus-ring-purple: rgba(102, 126, 234, 0.4);
8256
+ --color-focus-ring-purple-light: rgba(102, 126, 234, 0.1);
8257
+
8258
+ /* Utility transparent colors */
8259
+ --color-white-alpha-20: rgba(255, 255, 255, 0.2);
8260
+ --color-white-alpha-40: rgba(255, 255, 255, 0.4);
8261
+ --color-black-alpha-10: rgba(0, 0, 0, 0.1);
8262
+ --color-black-alpha-20: rgba(0, 0, 0, 0.2);
8263
+
8264
+ /* Node/Component specific */
8265
+ --color-node-error-bg: #ffcccc;
8266
+ --color-file-browser-bg: rgb(92, 92, 92);
8209
8267
 
8210
8268
  /* Gray scale */
8211
8269
  --color-gray-50: #f9fafb;
@@ -8298,6 +8356,9 @@ readers do not read off random characters that represent icons */
8298
8356
  --z-index-popover: 1075;
8299
8357
  --z-index-tooltip: 1100;
8300
8358
  --z-index-notification: 1200;
8359
+ /* Canvas-specific z-index values - must be high to appear above canvas panels */
8360
+ --z-index-canvas-dropdown: 100001; /* Above DraggableItem panels (100000) */
8361
+ --z-index-canvas-context-menu: 100002; /* Above dropdowns */
8301
8362
 
8302
8363
  /* ========== Component-Specific Tokens ========== */
8303
8364
  /* Table */
@@ -8589,8 +8650,8 @@ readers do not read off random characters that represent icons */
8589
8650
  }
8590
8651
 
8591
8652
  .btn-danger-filled:hover:not(:disabled) {
8592
- background-color: #dc2626;
8593
- border-color: #dc2626;
8653
+ background-color: var(--color-danger-hover);
8654
+ border-color: var(--color-danger-hover);
8594
8655
  box-shadow: var(--shadow-sm);
8595
8656
  }
8596
8657
 
@@ -8601,8 +8662,8 @@ readers do not read off random characters that represent icons */
8601
8662
  }
8602
8663
 
8603
8664
  .btn-success:hover:not(:disabled) {
8604
- background-color: #059669;
8605
- border-color: #059669;
8665
+ background-color: var(--color-success-hover);
8666
+ border-color: var(--color-success-hover);
8606
8667
  box-shadow: var(--shadow-sm);
8607
8668
  }
8608
8669
 
@@ -9096,7 +9157,7 @@ readers do not read off random characters that represent icons */
9096
9157
 
9097
9158
  .form-input:focus {
9098
9159
  border-color: var(--input-border-focus);
9099
- box-shadow: 0 0 0 3px rgba(44, 116, 179, 0.1);
9160
+ box-shadow: 0 0 0 3px var(--color-focus-ring);
9100
9161
  }
9101
9162
 
9102
9163
  .form-input:disabled {
@@ -9185,7 +9246,7 @@ readers do not read off random characters that represent icons */
9185
9246
  }
9186
9247
 
9187
9248
  .form-input.is-error:focus {
9188
- box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
9249
+ box-shadow: 0 0 0 3px var(--color-focus-ring-error);
9189
9250
  }
9190
9251
 
9191
9252
  .form-error {
@@ -9205,7 +9266,7 @@ readers do not read off random characters that represent icons */
9205
9266
  .modal-overlay {
9206
9267
  position: fixed;
9207
9268
  inset: 0;
9208
- background-color: rgba(0, 0, 0, 0.5);
9269
+ background-color: var(--color-overlay);
9209
9270
  backdrop-filter: blur(2px);
9210
9271
  display: flex;
9211
9272
  justify-content: center;
@@ -9526,6 +9587,163 @@ readers do not read off random characters that represent icons */
9526
9587
  visibility: visible;
9527
9588
  }
9528
9589
 
9590
+ /* ========== High Z-Index Dialogs ========== */
9591
+
9592
+ /* Ensure dialogs appear above all other UI elements (draggable items, context menus, etc.) */
9593
+
9594
+ .el-overlay:has(.high-z-index-dialog),
9595
+ .el-overlay:has(.overwrite-confirm-dialog) {
9596
+ z-index: 200000 !important;
9597
+ }
9598
+
9599
+ .high-z-index-dialog,
9600
+ .overwrite-confirm-dialog {
9601
+ z-index: 200001 !important;
9602
+ }
9603
+
9604
+ /* styles/components/_context-menu.css - Centralized Context Menu Styles */
9605
+
9606
+ /* Base context menu container */
9607
+
9608
+ .context-menu {
9609
+ position: fixed;
9610
+ min-width: 120px;
9611
+ background-color: var(--color-background-primary);
9612
+ border: 1px solid var(--color-border-primary);
9613
+ border-radius: var(--border-radius-md);
9614
+ box-shadow: var(--shadow-lg);
9615
+ z-index: var(--z-index-canvas-context-menu, 100002);
9616
+ overflow: hidden;
9617
+ user-select: none;
9618
+ }
9619
+
9620
+ /* Context menu with header variant */
9621
+
9622
+ .context-menu-header {
9623
+ padding: var(--spacing-2) var(--spacing-3);
9624
+ font-weight: var(--font-weight-semibold);
9625
+ background-color: var(--color-background-secondary);
9626
+ border-bottom: 1px solid var(--color-border-primary);
9627
+ font-size: var(--font-size-sm);
9628
+ color: var(--color-text-primary);
9629
+ }
9630
+
9631
+ /* Container for menu items */
9632
+
9633
+ .context-menu-items {
9634
+ max-height: 300px;
9635
+ overflow-y: auto;
9636
+ }
9637
+
9638
+ /* List-based context menu (ul/li pattern) */
9639
+
9640
+ .context-menu ul {
9641
+ list-style: none;
9642
+ padding: 0;
9643
+ margin: 0;
9644
+ }
9645
+
9646
+ .context-menu li {
9647
+ padding: var(--spacing-2) var(--spacing-4);
9648
+ cursor: pointer;
9649
+ font-size: var(--font-size-sm);
9650
+ color: var(--color-text-primary);
9651
+ transition: background-color var(--transition-fast);
9652
+ }
9653
+
9654
+ .context-menu li:hover:not(.disabled) {
9655
+ background-color: var(--color-background-tertiary);
9656
+ }
9657
+
9658
+ .context-menu li.disabled {
9659
+ color: var(--color-text-muted);
9660
+ cursor: not-allowed;
9661
+ }
9662
+
9663
+ /* Button-based context menu (button pattern) */
9664
+
9665
+ .context-menu button {
9666
+ display: block;
9667
+ width: 100%;
9668
+ padding: var(--spacing-2) var(--spacing-3);
9669
+ background: none;
9670
+ border: none;
9671
+ text-align: left;
9672
+ cursor: pointer;
9673
+ font-size: var(--font-size-sm);
9674
+ color: var(--color-text-primary);
9675
+ transition: background-color var(--transition-fast);
9676
+ }
9677
+
9678
+ .context-menu button:hover {
9679
+ background-color: var(--color-background-tertiary);
9680
+ }
9681
+
9682
+ .context-menu button:disabled {
9683
+ color: var(--color-text-muted);
9684
+ cursor: not-allowed;
9685
+ }
9686
+
9687
+ .context-menu button:disabled:hover {
9688
+ background-color: transparent;
9689
+ }
9690
+
9691
+ /* Individual menu item (div-based pattern) */
9692
+
9693
+ .context-menu-item {
9694
+ display: flex;
9695
+ align-items: center;
9696
+ padding: var(--spacing-2) var(--spacing-3);
9697
+ cursor: pointer;
9698
+ font-size: var(--font-size-sm);
9699
+ color: var(--color-text-primary);
9700
+ transition: background-color var(--transition-fast);
9701
+ }
9702
+
9703
+ .context-menu-item:hover {
9704
+ background-color: var(--color-background-tertiary);
9705
+ }
9706
+
9707
+ .context-menu-item.disabled {
9708
+ color: var(--color-text-muted);
9709
+ cursor: not-allowed;
9710
+ }
9711
+
9712
+ .context-menu-item.disabled:hover {
9713
+ background-color: transparent;
9714
+ }
9715
+
9716
+ /* Icon support for menu items */
9717
+
9718
+ .context-menu-icon {
9719
+ margin-right: var(--spacing-2);
9720
+ width: 20px;
9721
+ text-align: center;
9722
+ color: var(--color-text-secondary);
9723
+ }
9724
+
9725
+ /* Separator/divider between menu sections */
9726
+
9727
+ .context-menu-divider {
9728
+ height: 1px;
9729
+ margin: var(--spacing-1) 0;
9730
+ background-color: var(--color-border-primary);
9731
+ }
9732
+
9733
+ /* Danger/destructive action styling */
9734
+
9735
+ .context-menu-item.danger,
9736
+ .context-menu button.danger,
9737
+ .context-menu li.danger {
9738
+ color: var(--color-danger);
9739
+ }
9740
+
9741
+ .context-menu-item.danger:hover,
9742
+ .context-menu button.danger:hover,
9743
+ .context-menu li.danger:hover:not(.disabled) {
9744
+ background-color: var(--color-danger-light);
9745
+ }
9746
+
9529
9747
  .p-default {
9530
9748
  margin: var(--spacing-xs);
9531
9749
  margin-bottom: var(--spacing-sm);
@@ -10083,6 +10301,27 @@ button {
10083
10301
  color: var(--color-text-primary);
10084
10302
  }
10085
10303
 
10304
+ /* ========== Element Plus Popper Z-Index Fix ========== */
10305
+
10306
+ /* Fix for el-select dropdowns appearing behind dialogs and canvas elements.
10307
+ Element Plus poppers are teleported to body and need high z-index to appear above:
10308
+ - Canvas panels (DraggableItem panels at z-index 100000)
10309
+ - High z-index dialogs (at z-index 200001)
10310
+ Set to 200010 to ensure dropdowns always appear above modal dialogs */
10311
+
10312
+ .el-popper,
10313
+ .el-select-dropdown,
10314
+ .el-select__popper,
10315
+ .el-autocomplete-suggestion,
10316
+ .el-cascader__dropdown,
10317
+ .el-color-dropdown,
10318
+ .el-date-editor .el-picker-panel,
10319
+ .el-picker__popper,
10320
+ .el-tooltip__popper,
10321
+ .el-popover.el-popper {
10322
+ z-index: 200010 !important;
10323
+ }
10324
+
10086
10325
  /* ========== CodeMirror Dark Mode Styling ========== */
10087
10326
 
10088
10327
  /* These styles must be global because CodeMirror tooltips are rendered as portals */
@@ -10118,11 +10357,11 @@ button {
10118
10357
  }
10119
10358
 
10120
10359
  .cm-editor .cm-selectionBackground {
10121
- background-color: rgba(8, 145, 178, 0.15) !important;
10360
+ background-color: var(--color-focus-ring-accent) !important;
10122
10361
  }
10123
10362
 
10124
10363
  .cm-editor.cm-focused .cm-selectionBackground {
10125
- background-color: rgba(8, 145, 178, 0.25) !important;
10364
+ background-color: var(--color-focus-ring-accent-strong) !important;
10126
10365
  }
10127
10366
 
10128
10367
  /* Placeholder styling */
@@ -10160,7 +10399,7 @@ button {
10160
10399
  .cm-tooltip-autocomplete > ul > li[aria-selected],
10161
10400
  .cm-tooltip-autocomplete > ul > li[aria-selected="true"] {
10162
10401
  background-color: var(--color-accent) !important;
10163
- color: white !important;
10402
+ color: var(--color-text-inverse) !important;
10164
10403
  }
10165
10404
 
10166
10405
  /* Completion label and detail */
@@ -1,5 +1,5 @@
1
- import { ak as flowfileCorebaseURL, j as axios } from "./index-fb6493ae.js";
2
- import { e as Parser, N as NodeSet, f as NodeType, D as DefaultBufferLength, g as NodeProp, h as Tree, I as IterMode, s as styleTags, t as tags, L as LanguageSupport, j as syntaxTree, l as ifNotIn, m as LRLanguage, n as indentNodeProp, o as delimitedIndent, p as foldNodeProp, q as foldInside, r as completeFromList, u as NodeWeakMap, v as snippetCompletion, H as HighlightStyle, w as syntaxHighlighting, E as EditorView } from "./vue-codemirror.esm-0965f39f.js";
1
+ import { am as flowfileCorebaseURL, k as axios } from "./index-387a6f18.js";
2
+ import { e as Parser, N as NodeSet, f as NodeType, D as DefaultBufferLength, g as NodeProp, h as Tree, I as IterMode, s as styleTags, t as tags, L as LanguageSupport, j as syntaxTree, l as ifNotIn, m as LRLanguage, n as indentNodeProp, o as delimitedIndent, p as foldNodeProp, q as foldInside, r as completeFromList, u as NodeWeakMap, v as snippetCompletion, H as HighlightStyle, w as syntaxHighlighting, E as EditorView } from "./vue-codemirror.esm-31ba0e0b.js";
3
3
  const __vite_glob_0_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAACO0lEQVR4nN2Yz0vbYBjHv29NbZUy0B43QUG9zNPEHUT05NCTiu6o0NbDLk5a/RMERaonkSrO8zw4alFQtBsMBG96kJ5EUTcRh78QRGvsu4O8MSk1fdMmaeLnlL7p++ST53kfkjeADSCKX5GI4Ci+XQCl3uwzKXUkyYD4ZWjXKDnpUuxA+BbeBEij9hD0SgwMl+kplY5McoLmHEVMNYi06E/eNs4iEQf/zjEyonDRR9IAxMCQ5OYopIgawlz4gR1bVhKECJgPvwOsLAlAoIgAFpdMgXgAQFD704M/ZI4NAOf85IvnLJ1Jhi0kVcvNUCtFvvAsKVtk0haSXOU2s8sz8XoyqWfjsKpMJ3bQUVmNt6WerHNMzSQT/ByPYXDrJyq/z+Li/i7rPK5M6gET7NqIYvloXxovd7mzzjW1cdrXFrHx91BzXNPKnS6Y1HDjhjYOy1TnelQp6Aum7QDVMSyTTLAnHsPK8fMaTPqCIESLokGScsGlwz1pPBdBgLPciR4fd8CaN0+72871qDKD/pCmEsvhkmQX5qVtdRHxE2WT5CoI6Ng4/to6zDR9wlRiWymosUkyoduaHG1oBgAEt35JY7muwXR0eeJ4BCfKXW78Pn36iDH+sQXBuno9QgPglIy1dqme97pLAAA752eGvNZxSbZXVHEF+/r+Q14yL2GL90lbSKqW28hdohYsnUkCeglYXPKx2NkHyCQpJT8Kp5MJmkTv4A0gk3zsD3WnQMYKJyWHXouBYVehLV4f/wHit6c8llKODwAAAABJRU5ErkJggg==";
4
4
  const __vite_glob_0_1 = "/assets/airbyte-292aa232.png";
5
5
  const __vite_glob_0_2 = "/assets/cloud_storage_reader-aa1415d6.png";
@@ -0,0 +1,2 @@
1
+ import { r as ref } from "./index-387a6f18.js";
2
+ ref(null);
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, B as watch, o as openBlock, c as createElementBlock, b as createBaseVNode, m as createVNode, p as withCtx, F as Fragment, D as renderList, x as createBlock, s as unref, aw as ElOption, ax as ElSelect, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, r as ref, C as watch, o as openBlock, c as createElementBlock, a as createBaseVNode, p as createVNode, q as withCtx, G as Fragment, H as renderList, y as createBlock, x as unref, ay as ElOption, az as ElSelect, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "csv-table-settings" };
3
3
  const _hoisted_2 = { class: "input-group" };
4
4
  const _hoisted_3 = { class: "input-group" };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, B as watch, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, m as createVNode, f as createCommentVNode, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, r as ref, C as watch, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, p as createVNode, e as createCommentVNode, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "excel-table-settings" };
3
3
  const _hoisted_2 = { class: "mandatory-section" };
4
4
  const _hoisted_3 = {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, B as watch, o as openBlock, c as createElementBlock, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, r as ref, C as watch, o as openBlock, c as createElementBlock, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "parquet-table-settings" };
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "outputParquet",
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, B as watch, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, m as createVNode, p as withCtx, F as Fragment, D as renderList, x as createBlock, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, r as ref, C as watch, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, p as createVNode, q as withCtx, G as Fragment, H as renderList, y as createBlock, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "csv-table-settings" };
3
3
  const _hoisted_2 = { class: "row" };
4
4
  const _hoisted_3 = { class: "row" };
@@ -1,6 +1,6 @@
1
- import { j as axios, d as defineComponent, r as ref, A as computed, C as onMounted, B as watch, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, m as createVNode, p as withCtx, f as createCommentVNode, t as toDisplayString, g as withDirectives, v as vModelText, x as createBlock, s as unref, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { C as ColumnSelector } from "./dropDown-ac0fda9d.js";
3
- import { C as CodeLoader } from "./vue-content-loader.es-c506ad97.js";
1
+ import { k as axios, d as defineComponent, r as ref, B as computed, F as onMounted, C as watch, m as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, p as createVNode, q as withCtx, e as createCommentVNode, t as toDisplayString, i as withDirectives, v as vModelText, y as createBlock, x as unref, g as _export_sfc } from "./index-387a6f18.js";
2
+ import { C as ColumnSelector } from "./dropDown-2798a109.js";
3
+ import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
4
4
  const getXlsxSheetNamesForPath = async (path) => {
5
5
  const response = await axios.get(`/api/get_xlsx_sheet_names?path=${path}`);
6
6
  return response.data;
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, i as _export_sfc } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, g as _export_sfc } from "./index-387a6f18.js";
2
2
  const _hoisted_1 = { class: "parquet-table-settings" };
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "readParquet",
@@ -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 = "/secrets/secrets";
3
3
  class SecretsApi {
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, r as ref, a9 as watchEffect, A as computed, C as onMounted, k as onUnmounted, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, b as createBaseVNode, f as createCommentVNode, t as toDisplayString, Z as normalizeStyle, q as createTextVNode, F as Fragment, D as renderList, n as normalizeClass, w as withModifiers, p as withCtx, s as unref, x as createBlock, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
3
- import { u as unavailableField } from "./UnavailableFields-bdad6144.js";
1
+ import { d as defineComponent, r as ref, ab as watchEffect, B as computed, F as onMounted, l as onUnmounted, m as resolveComponent, o as openBlock, c as createElementBlock, p as createVNode, a as createBaseVNode, e as createCommentVNode, t as toDisplayString, a0 as normalizeStyle, f as createTextVNode, G as Fragment, H as renderList, n as normalizeClass, w as withModifiers, q as withCtx, x as unref, y as createBlock, g as _export_sfc } from "./index-387a6f18.js";
2
+ import { u as useNodeStore } from "./PopOver-862d7e28.js";
3
+ import { u as unavailableField } from "./UnavailableFields-b72a2c72.js";
4
4
  const _hoisted_1 = { key: 0 };
5
5
  const _hoisted_2 = {
6
6
  key: 1,
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, a2 as shallowRef, J as inject, A as computed, C as onMounted, B as watch, $ as onBeforeUnmount, a3 as h$1, aq as toRaw } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, a4 as shallowRef, L as inject, B as computed, F as onMounted, C as watch, a1 as onBeforeUnmount, a5 as h$1, as as toRaw } from "./index-387a6f18.js";
2
2
  let rangeFrom = [], rangeTo = [];
3
3
  (() => {
4
4
  let numbers = "lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((s) => s ? parseInt(s, 36) : 1);
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, m as createVNode, A as computed } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, p as createVNode, B as computed } from "./index-387a6f18.js";
2
2
  var uid = function() {
3
3
  return Math.random().toString(36).substring(2);
4
4
  };
@@ -12,8 +12,8 @@
12
12
 
13
13
  <!-- Material Icons -->
14
14
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
15
- <script type="module" crossorigin src="/assets/index-fb6493ae.js"></script>
16
- <link rel="stylesheet" href="/assets/index-e6289dd0.css">
15
+ <script type="module" crossorigin src="/assets/index-387a6f18.js"></script>
16
+ <link rel="stylesheet" href="/assets/index-e96ab018.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="app"></div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Flowfile
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: Project combining flowfile core (backend) and flowfile_worker (compute offloader) and flowfile_frame (api)
5
5
  License-File: LICENSE
6
6
  Author: Edward van Eechoud
@@ -33,7 +33,7 @@ Requires-Dist: polars (>=1.8.2,<1.32) ; sys_platform != "win32"
33
33
  Requires-Dist: polars (>=1.8.2,<=1.25.2) ; sys_platform == "win32"
34
34
  Requires-Dist: polars-distance (>=0.4.3,<0.5.0)
35
35
  Requires-Dist: polars-ds (>=0.6.0)
36
- Requires-Dist: polars-expr-transformer (>=0.4.9.0)
36
+ Requires-Dist: polars-expr-transformer (>=0.5.0)
37
37
  Requires-Dist: polars-grouper (>=0.3.0,<0.4.0)
38
38
  Requires-Dist: polars_simed (>=0.3.4,<0.4.0)
39
39
  Requires-Dist: pyarrow (>=18.0.0,<19.0.0)