Flowfile 0.5.6__py3-none-any.whl → 0.6.1__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 (256) hide show
  1. flowfile/api.py +8 -6
  2. flowfile/web/static/assets/{AdminView-c2c7942b.js → AdminView-C4K1DdHI.js} +28 -33
  3. flowfile/web/static/assets/{CloudConnectionView-7a3042c6.js → CloudConnectionView-BZbPvPUL.js} +39 -50
  4. flowfile/web/static/assets/{CloudStorageReader-24c54524.css → CloudStorageReader-BDByiqPI.css} +25 -25
  5. flowfile/web/static/assets/{CloudStorageReader-709c4037.js → CloudStorageReader-DLVukNJ7.js} +30 -35
  6. flowfile/web/static/assets/{CloudStorageWriter-604c51a8.js → CloudStorageWriter-Bfi-C1QW.js} +32 -37
  7. flowfile/web/static/assets/{CloudStorageWriter-60547855.css → CloudStorageWriter-y8jL8yjG.css} +24 -24
  8. flowfile/web/static/assets/{ColumnActionInput-d63d6746.js → ColumnActionInput-BpiCApw9.js} +7 -12
  9. flowfile/web/static/assets/{ColumnSelector-0c8cd1cd.js → ColumnSelector-CEAwedI7.js} +1 -2
  10. flowfile/web/static/assets/ContextMenu-CdojQu0w.js +9 -0
  11. flowfile/web/static/assets/ContextMenu-D12mhsy1.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-EWUR98va.js +9 -0
  13. flowfile/web/static/assets/{ContextMenu.vue_vue_type_script_setup_true_lang-774c517c.js → ContextMenu.vue_vue_type_script_setup_true_lang-I4rXXd6G.js} +4 -5
  14. flowfile/web/static/assets/{CrossJoin-38e5b99a.js → CrossJoin-BOFfxkJO.js} +19 -18
  15. flowfile/web/static/assets/{CrossJoin-71b4cc10.css → CrossJoin-Cmbyt9im.css} +18 -18
  16. flowfile/web/static/assets/{CustomNode-76e8f3f5.js → CustomNode-Bhpezobq.js} +12 -17
  17. flowfile/web/static/assets/{DatabaseConnectionSettings-38155669.js → DatabaseConnectionSettings-Dw3bSJKB.js} +10 -11
  18. flowfile/web/static/assets/{DatabaseReader-5bf8c75b.css → DatabaseReader-D6pUNUCs.css} +21 -21
  19. flowfile/web/static/assets/{DatabaseReader-2e549c8f.js → DatabaseReader-m87ghlw0.js} +36 -34
  20. flowfile/web/static/assets/{DatabaseView-dc877c29.js → DatabaseView-CisSAtpe.js} +30 -38
  21. flowfile/web/static/assets/{DatabaseWriter-ffb91864.js → DatabaseWriter-Bbj9JLdL.js} +33 -35
  22. flowfile/web/static/assets/{DatabaseWriter-bdcf2c8b.css → DatabaseWriter-RBqdFLj8.css} +17 -17
  23. flowfile/web/static/assets/{DesignerView-a4466dab.js → DesignerView-DemDevTQ.js} +1752 -2054
  24. flowfile/web/static/assets/{DesignerView-71d4e9a1.css → DesignerView-Dm6OzlIc.css} +209 -168
  25. flowfile/web/static/assets/{DocumentationView-979afc84.js → DocumentationView-BrC1ZR3H.js} +3 -4
  26. flowfile/web/static/assets/{ExploreData-e4b92aaf.js → ExploreData-BMKcDuRb.js} +8 -10
  27. flowfile/web/static/assets/{ExternalSource-d08e7227.js → ExternalSource-BXrNNS-f.js} +40 -42
  28. flowfile/web/static/assets/{ExternalSource-7ac7373f.css → ExternalSource-NB6WVl5R.css} +14 -14
  29. flowfile/web/static/assets/{Filter-7add806d.js → Filter-C2MjsN6P.js} +36 -33
  30. flowfile/web/static/assets/{Filter-7494ea97.css → Filter-DCMGGuGC.css} +9 -9
  31. flowfile/web/static/assets/{Formula-53d58c43.css → Formula-BYafbDj8.css} +4 -4
  32. flowfile/web/static/assets/{Formula-36ab24d2.js → Formula-ufuy4mVD.js} +27 -26
  33. flowfile/web/static/assets/{FuzzyMatch-ad6361d6.css → FuzzyMatch-BGJAwgd0.css} +42 -42
  34. flowfile/web/static/assets/{FuzzyMatch-cc01bb04.js → FuzzyMatch-BOHODq3h.js} +36 -38
  35. flowfile/web/static/assets/{GraphSolver-4fb98f3b.js → GraphSolver-B6ZzpNGO.js} +23 -21
  36. flowfile/web/static/assets/{GraphSolver-4b4d7db9.css → GraphSolver-DFN83sj3.css} +4 -4
  37. flowfile/web/static/assets/{GroupBy-b3c8f429.js → GroupBy-B9BRNcfe.js} +30 -29
  38. flowfile/web/static/assets/{Sort-4abb7fae.css → GroupBy-x4ooP5np.css} +1 -1
  39. flowfile/web/static/assets/Join-Bx_g5bZz.css +118 -0
  40. flowfile/web/static/assets/{Join-096b7b26.js → Join-DsBEy1IH.js} +48 -43
  41. flowfile/web/static/assets/{LoginView-c33a246a.js → LoginView-Ct0rhdcO.js} +1 -2
  42. flowfile/web/static/assets/{ManualInput-39111f19.css → ManualInput-DlZmtMdt.css} +48 -48
  43. flowfile/web/static/assets/{ManualInput-7307e9b1.js → ManualInput-bC4BUgnG.js} +40 -41
  44. flowfile/web/static/assets/{MultiSelect-14822c48.js → MultiSelect-DIQ8PuTC.js} +2 -2
  45. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js → MultiSelect.vue_vue_type_script_setup_true_lang-BefHfqTI.js} +1 -1
  46. flowfile/web/static/assets/{NodeDesigner-5036c392.js → NodeDesigner-D39yzr2k.js} +178 -208
  47. flowfile/web/static/assets/{NodeDesigner-94cd4dd3.css → NodeDesigner-R0l6sYyY.css} +76 -76
  48. flowfile/web/static/assets/{NumericInput-15cf3b72.js → NumericInput-DMSX3oOr.js} +2 -2
  49. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js → NumericInput.vue_vue_type_script_setup_true_lang-d0YlVHAl.js} +1 -1
  50. flowfile/web/static/assets/{Output-1f8ed42c.js → Output-D0VoXGcW.js} +26 -34
  51. flowfile/web/static/assets/{Output-692dd25d.css → Output-DsmglIDy.css} +5 -5
  52. flowfile/web/static/assets/{Pivot-0e153f4e.js → Pivot-BnMB4sEe.js} +26 -26
  53. flowfile/web/static/assets/{Pivot-0eda81b4.css → Pivot-qKTyWxop.css} +4 -4
  54. flowfile/web/static/assets/{PivotValidation-81ec2a33.js → PivotValidation-B2lWvugt.js} +7 -9
  55. flowfile/web/static/assets/{PivotValidation-5a4f7c79.js → PivotValidation-BPlhRjpL.js} +7 -9
  56. flowfile/web/static/assets/{PolarsCode-a39f15ac.js → PolarsCode-5h0tHnWR.js} +22 -20
  57. flowfile/web/static/assets/{PopOver-ddcfe4f6.js → PopOver-BHpt5rsj.js} +5 -9
  58. flowfile/web/static/assets/{PopOver-d96599db.css → PopOver-CyYM4-rV.css} +1 -1
  59. flowfile/web/static/assets/{Read-90f366bc.css → Read-DJxkrTb_.css} +10 -10
  60. flowfile/web/static/assets/Read-TsLEFh3B.js +227 -0
  61. flowfile/web/static/assets/{RecordCount-e9048ccd.js → RecordCount-DkVixq9v.js} +18 -17
  62. flowfile/web/static/assets/{RecordId-ad02521d.js → RecordId-C2UEGlCf.js} +42 -39
  63. flowfile/web/static/assets/{SQLQueryComponent-2eeecf0b.js → SQLQueryComponent-Dr5KMoD3.js} +2 -3
  64. flowfile/web/static/assets/{Sample-9a68c23d.js → Sample-Cb3eQNmd.js} +30 -30
  65. flowfile/web/static/assets/{SecretSelector-2429f35a.js → SecretSelector-De2L2bSx.js} +3 -4
  66. flowfile/web/static/assets/{SecretsView-c6afc915.js → SecretsView-CheC9BPV.js} +13 -16
  67. flowfile/web/static/assets/{Select-fcd002b6.js → Select-CI8TloRs.js} +41 -36
  68. flowfile/web/static/assets/{SettingsSection-5ce15962.js → SettingsSection-B39ulIiI.js} +1 -2
  69. flowfile/web/static/assets/{SettingsSection-c6b1362c.js → SettingsSection-BiCc7S9h.js} +1 -2
  70. flowfile/web/static/assets/{SettingsSection-cebb91d5.js → SettingsSection-CITK_R7o.js} +2 -3
  71. flowfile/web/static/assets/{SettingsSection-26fe48d4.css → SettingsSection-D2GgY-Aq.css} +4 -4
  72. flowfile/web/static/assets/{SetupView-2d12e01f.js → SetupView-C1aXRDvp.js} +1 -2
  73. flowfile/web/static/assets/{SingleSelect-b67de4eb.js → SingleSelect-Kr_hz90m.js} +2 -2
  74. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-eedb70eb.js → SingleSelect.vue_vue_type_script_setup_true_lang-Rxht5Z5N.js} +1 -1
  75. flowfile/web/static/assets/{SliderInput-fd8134ac.js → SliderInput-CLqpCxCb.js} +1 -2
  76. flowfile/web/static/assets/{GroupBy-5792782d.css → Sort-BIt2kc_p.css} +1 -1
  77. flowfile/web/static/assets/{Sort-c005a573.js → Sort-Dnw_J6Qi.js} +25 -25
  78. flowfile/web/static/assets/{TextInput-1bb31dab.js → TextInput-wdlunIZC.js} +2 -2
  79. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-a51fe730.js → TextInput.vue_vue_type_script_setup_true_lang-Bcj3ywzv.js} +1 -1
  80. flowfile/web/static/assets/{TextToRows-4f363753.js → TextToRows-BhtyGWPq.js} +42 -49
  81. flowfile/web/static/assets/{TextToRows-12afb4f4.css → TextToRows-DivDOLDx.css} +9 -9
  82. flowfile/web/static/assets/{ToggleSwitch-ca0f2e5e.js → ToggleSwitch-B-6WzfFf.js} +2 -2
  83. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-49aa41d8.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-Cj8LqT-b.js} +1 -1
  84. flowfile/web/static/assets/{UnavailableFields-f6147968.js → UnavailableFields-Yf6XSqFB.js} +2 -3
  85. flowfile/web/static/assets/{Union-c65f17b7.js → Union-CwpjeKYC.js} +20 -23
  86. flowfile/web/static/assets/{Unpivot-b6ad6427.css → Union-DQJcpp3-.css} +6 -6
  87. flowfile/web/static/assets/{Unique-a1d96fb2.js → Unique-25v3urqH.js} +75 -74
  88. flowfile/web/static/assets/{Union-d6a8d7d5.css → Unpivot-Deqh1gtI.css} +6 -6
  89. flowfile/web/static/assets/{Unpivot-c2657ff3.js → Unpivot-sYcTTXrq.js} +34 -27
  90. flowfile/web/static/assets/{UnpivotValidation-28e29a3b.js → UnpivotValidation-C5DDEKY2.js} +5 -7
  91. flowfile/web/static/assets/VueGraphicWalker-B8l1_Z92.js +131 -0
  92. flowfile/web/static/assets/VueGraphicWalker-Da_1-3me.css +21 -0
  93. flowfile/web/static/assets/{api-df48ec50.js → api-C0LvF-0C.js} +1 -1
  94. flowfile/web/static/assets/{api-ee542cf7.js → api-DaC83EO_.js} +1 -1
  95. flowfile/web/static/assets/client-C8Ygr6Gb.js +42 -0
  96. flowfile/web/static/assets/{dropDown-7576a76a.js → dropDown-D5YXaPRR.js} +7 -12
  97. flowfile/web/static/assets/{fullEditor-7583bef5.js → fullEditor-BVYnWm05.js} +300 -18
  98. flowfile/web/static/assets/genericNodeSettings-2wAu-QKn.css +75 -0
  99. flowfile/web/static/assets/genericNodeSettings-BBtW_Cpz.js +590 -0
  100. flowfile/web/static/assets/{VueGraphicWalker-2fc3ddd4.js → graphic-walker.es-VrK6vdGE.js} +92305 -89751
  101. flowfile/web/static/assets/index-BCJxPfM5.js +6693 -0
  102. flowfile/web/static/assets/{index-057d770d.js → index-CHPMUR0d.js} +150 -170
  103. flowfile/web/static/assets/index-DPkoZWq8.js +32 -0
  104. flowfile/web/static/assets/index-DnW_KC_I.js +277 -0
  105. flowfile/web/static/assets/index-UFXyfirV.css +10797 -0
  106. flowfile/web/static/assets/index-bcuE0Z0p.js +87456 -0
  107. flowfile/web/static/assets/{node.types-2c15bb7e.js → node.types-Dl4gtSW9.js} +2 -2
  108. flowfile/web/static/assets/{outputCsv-c492b15e.js → outputCsv-BELuBiJZ.js} +1 -2
  109. flowfile/web/static/assets/outputCsv-CdGkv-fN.css +2581 -0
  110. flowfile/web/static/assets/{outputExcel-13bfa10f.js → outputExcel-D0TTNM79.js} +1 -2
  111. flowfile/web/static/assets/{outputParquet-9be1523a.js → outputParquet-Cz9EbRHj.js} +1 -2
  112. flowfile/web/static/assets/{readCsv-5a49a8c9.js → readCsv-7bd3kUMI.js} +1 -2
  113. flowfile/web/static/assets/{readExcel-27c30ad8.js → readExcel-Cq8CCwIv.js} +3 -4
  114. flowfile/web/static/assets/{readParquet-c5244ad5.css → readParquet-CRDmBrsp.css} +4 -4
  115. flowfile/web/static/assets/{readParquet-446bde68.js → readParquet-DjR4mRaj.js} +4 -5
  116. flowfile/web/static/assets/{secrets.api-34431884.js → secrets.api-C9o2KE5V.js} +1 -1
  117. flowfile/web/static/assets/{selectDynamic-5754a2b1.js → selectDynamic-Bl5FVsME.js} +5 -7
  118. flowfile/web/static/assets/useNodeSettings-dMS9zmh_.js +69 -0
  119. flowfile/web/static/assets/{vue-codemirror.esm-8f46fb36.js → vue-codemirror.esm-CwaYwln0.js} +3469 -3064
  120. flowfile/web/static/assets/{vue-content-loader.es-808fe33a.js → vue-content-loader.es-CMoRXo7N.js} +3 -3
  121. flowfile/web/static/index.html +2 -3
  122. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/METADATA +2 -1
  123. flowfile-0.6.1.dist-info/RECORD +417 -0
  124. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/WHEEL +1 -1
  125. flowfile_core/auth/password.py +1 -0
  126. flowfile_core/database/init_db.py +7 -5
  127. flowfile_core/fileExplorer/funcs.py +2 -2
  128. flowfile_core/flowfile/code_generator/code_generator.py +13 -11
  129. flowfile_core/flowfile/filter_expressions.py +327 -0
  130. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +61 -59
  131. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +3 -29
  132. flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +45 -14
  133. flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +20 -3
  134. flowfile_core/flowfile/flow_data_engine/subprocess_operations/streaming.py +206 -0
  135. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +146 -24
  136. flowfile_core/flowfile/flow_graph.py +504 -190
  137. flowfile_core/flowfile/flow_node/__init__.py +32 -0
  138. flowfile_core/flowfile/flow_node/executor.py +404 -0
  139. flowfile_core/flowfile/flow_node/flow_node.py +207 -106
  140. flowfile_core/flowfile/flow_node/models.py +40 -0
  141. flowfile_core/flowfile/flow_node/output_field_config_applier.py +217 -0
  142. flowfile_core/flowfile/flow_node/schema_utils.py +78 -0
  143. flowfile_core/flowfile/flow_node/state.py +155 -0
  144. flowfile_core/flowfile/history_manager.py +401 -0
  145. flowfile_core/flowfile/manage/compatibility_enhancements.py +9 -0
  146. flowfile_core/flowfile/manage/io_flowfile.py +3 -1
  147. flowfile_core/flowfile/sources/external_sources/sql_source/models.py +20 -4
  148. flowfile_core/flowfile/util/execution_orderer.py +89 -36
  149. flowfile_core/routes/auth.py +8 -9
  150. flowfile_core/routes/routes.py +320 -101
  151. flowfile_core/routes/user_defined_components.py +18 -16
  152. flowfile_core/schemas/history_schema.py +220 -0
  153. flowfile_core/schemas/input_schema.py +130 -6
  154. flowfile_core/schemas/schemas.py +9 -0
  155. flowfile_core/schemas/transform_schema.py +27 -5
  156. flowfile_core/schemas/yaml_types.py +23 -5
  157. flowfile_frame/adding_expr.py +18 -126
  158. flowfile_frame/callable_utils.py +261 -0
  159. flowfile_frame/database/connection_manager.py +0 -1
  160. flowfile_frame/expr.py +8 -4
  161. flowfile_frame/flow_frame.py +41 -41
  162. flowfile_frame/lazy.py +3 -12
  163. flowfile_frame/lazy_methods.py +5 -64
  164. flowfile_frame/utils.py +13 -32
  165. flowfile_worker/funcs.py +6 -4
  166. flowfile_worker/main.py +2 -0
  167. flowfile_worker/models.py +31 -11
  168. flowfile_worker/routes.py +60 -35
  169. flowfile_worker/spawner.py +7 -1
  170. flowfile_worker/streaming.py +335 -0
  171. flowfile/web/static/assets/ContextMenu-366bf1b4.js +0 -9
  172. flowfile/web/static/assets/ContextMenu-85cf5b44.js +0 -9
  173. flowfile/web/static/assets/ContextMenu-9d28ae6d.js +0 -9
  174. flowfile/web/static/assets/Join-28b5e18f.css +0 -109
  175. flowfile/web/static/assets/Read-39b63932.js +0 -222
  176. flowfile/web/static/assets/VueGraphicWalker-430f0b86.css +0 -6
  177. flowfile/web/static/assets/database_reader-ce1e55f3.svg +0 -24
  178. flowfile/web/static/assets/database_writer-b4ad0753.svg +0 -23
  179. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  180. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  181. flowfile/web/static/assets/genericNodeSettings-0155288b.js +0 -136
  182. flowfile/web/static/assets/genericNodeSettings-3b2507ea.css +0 -46
  183. flowfile/web/static/assets/index-aeec439d.js +0 -38
  184. flowfile/web/static/assets/index-ca6799de.js +0 -62760
  185. flowfile/web/static/assets/index-d60c9dd4.css +0 -10777
  186. flowfile/web/static/assets/nodeInput-d478b9ac.js +0 -2
  187. flowfile/web/static/assets/outputCsv-cc84e09f.css +0 -2499
  188. flowfile-0.5.6.dist-info/RECORD +0 -407
  189. /flowfile/web/static/assets/{AdminView-f53bad23.css → AdminView-B2Dthl3u.css} +0 -0
  190. /flowfile/web/static/assets/{CloudConnectionView-cf85f943.css → CloudConnectionView-BdFYGWV7.css} +0 -0
  191. /flowfile/web/static/assets/{ColumnActionInput-c44b7aee.css → ColumnActionInput-dCasSIC9.css} +0 -0
  192. /flowfile/web/static/assets/{ColumnSelector-371637fb.css → ColumnSelector-j6sEOjo1.css} +0 -0
  193. /flowfile/web/static/assets/{CustomNode-edb9b939.css → CustomNode-VPlajG0j.css} +0 -0
  194. /flowfile/web/static/assets/{DatabaseConnectionSettings-c20a1e16.css → DatabaseConnectionSettings-B78hXYgu.css} +0 -0
  195. /flowfile/web/static/assets/{DatabaseView-6655afd6.css → DatabaseView-B-_adk1s.css} +0 -0
  196. /flowfile/web/static/assets/{DocumentationView-9ea6e871.css → DocumentationView-CL7iipFL.css} +0 -0
  197. /flowfile/web/static/assets/{ExploreData-10c5acc8.css → ExploreData-DHjv0Plr.css} +0 -0
  198. /flowfile/web/static/assets/{LoginView-d325d632.css → LoginView-DN1BXY3e.css} +0 -0
  199. /flowfile/web/static/assets/{PivotValidation-0e905b1a.css → PivotValidation-DK-FARWe.css} +0 -0
  200. /flowfile/web/static/assets/{PivotValidation-41b57ad6.css → PivotValidation-FUa9F47u.css} +0 -0
  201. /flowfile/web/static/assets/{PolarsCode-2b1f1f23.css → PolarsCode-G-gRSrSc.css} +0 -0
  202. /flowfile/web/static/assets/{SQLQueryComponent-edb90b98.css → SQLQueryComponent-oAbWw0r-.css} +0 -0
  203. /flowfile/web/static/assets/{SecretSelector-6329f743.css → SecretSelector-CJSadIZx.css} +0 -0
  204. /flowfile/web/static/assets/{SecretsView-aa291340.css → SecretsView-DbzIRAba.css} +0 -0
  205. /flowfile/web/static/assets/{SettingsSection-8f980839.css → SettingsSection-BGcJnH6q.css} +0 -0
  206. /flowfile/web/static/assets/{SettingsSection-07fbbc39.css → SettingsSection-DDWn_EGW.css} +0 -0
  207. /flowfile/web/static/assets/{SetupView-ec26f76a.css → SetupView-CI1nd-5Z.css} +0 -0
  208. /flowfile/web/static/assets/{SliderInput-f2e4f23c.css → SliderInput-BRk-q_Dk.css} +0 -0
  209. /flowfile/web/static/assets/{UnavailableFields-394a1f78.css → UnavailableFields-DRKDImKe.css} +0 -0
  210. /flowfile/web/static/assets/{Unique-2b705521.css → Unique-Absb0aON.css} +0 -0
  211. /flowfile/web/static/assets/{UnpivotValidation-d5ca3b7b.css → UnpivotValidation-DSBkFgS-.css} +0 -0
  212. /flowfile/web/static/assets/{airbyte-292aa232.png → airbyte-W0xvIXwZ.png} +0 -0
  213. /flowfile/web/static/assets/{cloud_storage_reader-aa1415d6.png → cloud_storage_reader-3GpSCk90.png} +0 -0
  214. /flowfile/web/static/assets/{cross_join-d30c0290.png → cross_join-B0qpgYoV.png} +0 -0
  215. /flowfile/web/static/assets/{dropDown-1d6acbd9.css → dropDown-CE0VF5_P.css} +0 -0
  216. /flowfile/web/static/assets/{explore_data-8a0a2861.png → explore_data-tX6olPPL.png} +0 -0
  217. /flowfile/web/static/assets/{fa-brands-400-808443ae.ttf → fa-brands-400-D1LuMI3I.ttf} +0 -0
  218. /flowfile/web/static/assets/{fa-brands-400-d7236a19.woff2 → fa-brands-400-D_cYUPeE.woff2} +0 -0
  219. /flowfile/web/static/assets/{fa-regular-400-e3456d12.woff2 → fa-regular-400-BjRzuEpd.woff2} +0 -0
  220. /flowfile/web/static/assets/{fa-regular-400-54cf6086.ttf → fa-regular-400-DZaxPHgR.ttf} +0 -0
  221. /flowfile/web/static/assets/{fa-solid-900-aa759986.woff2 → fa-solid-900-CTAAxXor.woff2} +0 -0
  222. /flowfile/web/static/assets/{fa-solid-900-d2f05935.ttf → fa-solid-900-D0aA9rwL.ttf} +0 -0
  223. /flowfile/web/static/assets/{fa-v4compatibility-0ce9033c.woff2 → fa-v4compatibility-C9RhG_FT.woff2} +0 -0
  224. /flowfile/web/static/assets/{fa-v4compatibility-30f6abf6.ttf → fa-v4compatibility-CCth-dXg.ttf} +0 -0
  225. /flowfile/web/static/assets/{filter-d7708bda.png → filter-WRdZyUOw.png} +0 -0
  226. /flowfile/web/static/assets/{formula-eeeb1611.png → formula-CgM7uHVI.png} +0 -0
  227. /flowfile/web/static/assets/{fullEditor-fe9f7e18.css → fullEditor-CmDI7T9F.css} +0 -0
  228. /flowfile/web/static/assets/{fuzzy_match-40c161b2.png → fuzzy_match-Yon3k5Tc.png} +0 -0
  229. /flowfile/web/static/assets/{graph_solver-8b7888b8.png → graph_solver-BlMrBttD.png} +0 -0
  230. /flowfile/web/static/assets/{group_by-80561fc3.png → group_by-Gici0CSS.png} +0 -0
  231. /flowfile/web/static/assets/{input_data-ab2eb678.png → input_data-BRdGecLc.png} +0 -0
  232. /flowfile/web/static/assets/{join-349043ae.png → join-BITWRu73.png} +0 -0
  233. /flowfile/web/static/assets/{manual_input-ae98f31d.png → manual_input-CFvo_EUS.png} +0 -0
  234. /flowfile/web/static/assets/{old_join-5d0eb604.png → old_join-B9bkpPqv.png} +0 -0
  235. /flowfile/web/static/assets/{output-06ec0371.png → output-Dp7-ZpC4.png} +0 -0
  236. /flowfile/web/static/assets/{outputExcel-f5d272b2.css → outputExcel-CKgRe2iT.css} +0 -0
  237. /flowfile/web/static/assets/{outputParquet-54597c3c.css → outputParquet-d7j407cK.css} +0 -0
  238. /flowfile/web/static/assets/{pivot-9660df51.png → pivot-DSxKhNlD.png} +0 -0
  239. /flowfile/web/static/assets/{polars_code-05ce5dc6.png → polars_code-DxiztZ1c.png} +0 -0
  240. /flowfile/web/static/assets/{readCsv-3bfac4c3.css → readCsv-BG-1Jilp.css} +0 -0
  241. /flowfile/web/static/assets/{readExcel-3db6b763.css → readExcel-DBQXKPtC.css} +0 -0
  242. /flowfile/web/static/assets/{record_count-dab44eb5.png → record_count-DCeaLtpS.png} +0 -0
  243. /flowfile/web/static/assets/{record_id-0b15856b.png → record_id-FeUjyIFh.png} +0 -0
  244. /flowfile/web/static/assets/{sample-693a88b5.png → sample-DeqfRiB-.png} +0 -0
  245. /flowfile/web/static/assets/{select-b0d0437a.png → select-D4JjbdjS.png} +0 -0
  246. /flowfile/web/static/assets/{selectDynamic-f2fb394f.css → selectDynamic-CjeTPUUo.css} +0 -0
  247. /flowfile/web/static/assets/{sort-2aa579f0.png → sort-DGwUG9WS.png} +0 -0
  248. /flowfile/web/static/assets/{summarize-2a099231.png → summarize-DFaNHpfp.png} +0 -0
  249. /flowfile/web/static/assets/{text_to_rows-859b29ea.png → text_to_rows-BdiAewrN.png} +0 -0
  250. /flowfile/web/static/assets/{union-2d8609f4.png → union-DCK-LSMq.png} +0 -0
  251. /flowfile/web/static/assets/{unique-1958b98a.png → unique-CdP3zZIq.png} +0 -0
  252. /flowfile/web/static/assets/{unpivot-d3cb4b5b.png → unpivot-CHttrEt8.png} +0 -0
  253. /flowfile/web/static/assets/{user-defined-icon-0ae16c90.png → user-defined-icon-BcIp2Vzo.png} +0 -0
  254. /flowfile/web/static/assets/{view-7a0f0be1.png → view-DUSRwjvq.png} +0 -0
  255. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/entry_points.txt +0 -0
  256. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,9 +1,9 @@
1
1
 
2
- .button-group[data-v-e214f6f3] {
2
+ .button-group[data-v-3d73f4dc] {
3
3
  display: flex;
4
4
  gap: 10px;
5
5
  }
6
- .button-group .el-button[data-v-e214f6f3] {
6
+ .button-group .el-button[data-v-3d73f4dc] {
7
7
  display: flex;
8
8
  align-items: center;
9
9
  gap: 6px;
@@ -20,47 +20,47 @@
20
20
  }
21
21
 
22
22
  /* Run button - normal state */
23
- .button-group .el-button[data-v-e214f6f3]:first-child:not([disabled]) {
23
+ .button-group .el-button[data-v-3d73f4dc]:first-child:not([disabled]) {
24
24
  background-color: var(--primary-blue) !important;
25
25
  border: 1px solid var(--primary-blue-light) !important;
26
- color: var(--color-accent-subtle) !important;
26
+ color: #ffffff !important;
27
27
  }
28
28
 
29
29
  /* Run button - hover state */
30
- .button-group .el-button[data-v-e214f6f3]:first-child:not([disabled]):hover {
30
+ .button-group .el-button[data-v-3d73f4dc]:first-child:not([disabled]):hover {
31
31
  background-color: var(--color-button-primary) !important;
32
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-e214f6f3] {
36
+ .button-group .el-button:first-child[disabled][data-v-3d73f4dc] {
37
37
  background-color: var(--color-gray-400) !important;
38
38
  border: 1px solid var(--color-gray-400) !important;
39
- color: var(--color-accent-subtle) !important;
39
+ color: #ffffff !important;
40
40
  cursor: not-allowed;
41
41
  opacity: 0.7;
42
42
  }
43
43
 
44
44
  /* Cancel button */
45
- .button-group .el-button[data-v-e214f6f3]:nth-child(2) {
45
+ .button-group .el-button[data-v-3d73f4dc]:nth-child(2) {
46
46
  background-color: var(--color-danger) !important;
47
47
  border: 1px solid var(--color-danger) !important;
48
- color: var(--color-accent-subtle) !important;
48
+ color: #ffffff !important;
49
49
  }
50
50
 
51
51
  /* Cancel button - hover state */
52
- .button-group .el-button[data-v-e214f6f3]:nth-child(2):hover {
52
+ .button-group .el-button[data-v-3d73f4dc]:nth-child(2):hover {
53
53
  background-color: var(--color-danger-hover) !important;
54
54
  border-color: var(--color-danger-hover) !important;
55
55
  }
56
56
 
57
57
  /* Active state for both buttons */
58
- .button-group .el-button[data-v-e214f6f3]:active {
58
+ .button-group .el-button[data-v-3d73f4dc]:active {
59
59
  transform: translateY(1px);
60
60
  box-shadow: none;
61
61
  }
62
62
 
63
- .browser-title[data-v-bcb824aa] {
63
+ .browser-title[data-v-42889233] {
64
64
  display: flex;
65
65
  align-items: center;
66
66
  gap: 8px;
@@ -69,32 +69,32 @@
69
69
  font-weight: 600;
70
70
  color: var(--color-text-primary);
71
71
  }
72
- .mode-selector[data-v-bcb824aa] {
72
+ .mode-selector[data-v-42889233] {
73
73
  display: flex;
74
74
  justify-content: center;
75
75
  }
76
- .browser-content[data-v-bcb824aa] {
76
+ .browser-content[data-v-42889233] {
77
77
  display: flex;
78
78
  flex-direction: column;
79
79
  height: calc(100% - 116px); /* Adjust based on header height */
80
80
  overflow: hidden;
81
81
  }
82
- .browser-toolbar[data-v-bcb824aa] {
82
+ .browser-toolbar[data-v-42889233] {
83
83
  padding: 16px;
84
84
  background-color: var(--color-background-primary);
85
85
  border-bottom: 1px solid var(--color-border-primary);
86
86
  }
87
- .browser-action-btn[data-v-bcb824aa] {
87
+ .browser-action-btn[data-v-42889233] {
88
88
  background-color: var(--color-file-browser-bg);
89
89
  color: var(--color-text-inverse);
90
90
  }
91
- .path-navigation[data-v-bcb824aa] {
91
+ .path-navigation[data-v-42889233] {
92
92
  display: flex;
93
93
  align-items: center;
94
94
  gap: 12px;
95
95
  margin-bottom: 12px;
96
96
  }
97
- .nav-button[data-v-bcb824aa] {
97
+ .nav-button[data-v-42889233] {
98
98
  display: inline-flex;
99
99
  align-items: center;
100
100
  gap: 4px;
@@ -107,11 +107,11 @@
107
107
  cursor: pointer;
108
108
  transition: all 0.2s ease;
109
109
  }
110
- .nav-button[data-v-bcb824aa]:hover:not(:disabled) {
110
+ .nav-button[data-v-42889233]:hover:not(:disabled) {
111
111
  background-color: var(--color-background-secondary);
112
112
  border-color: var(--color-border-secondary);
113
113
  }
114
- .current-path[data-v-bcb824aa] {
114
+ .current-path[data-v-42889233] {
115
115
  flex: 1;
116
116
  padding: 8px 12px;
117
117
  background-color: var(--color-background-secondary);
@@ -120,38 +120,38 @@
120
120
  font-family: var(--font-family-mono);
121
121
  color: var(--color-text-secondary);
122
122
  }
123
- .search-container[data-v-bcb824aa] {
123
+ .search-container[data-v-42889233] {
124
124
  display: flex;
125
125
  align-items: center;
126
126
  gap: 16px;
127
127
  flex: 1;
128
128
  }
129
- .search-input[data-v-bcb824aa] {
129
+ .search-input[data-v-42889233] {
130
130
  flex: 1;
131
131
  }
132
- .browser-main[data-v-bcb824aa] {
132
+ .browser-main[data-v-42889233] {
133
133
  flex: 1;
134
134
  overflow-y: auto;
135
135
  padding: 16px;
136
136
  }
137
- .file-item[data-v-bcb824aa] {
137
+ .file-item[data-v-42889233] {
138
138
  border: 1px solid var(--color-border-primary);
139
139
  border-radius: 8px;
140
140
  overflow: hidden;
141
141
  transition: all 0.2s ease;
142
142
  }
143
- .file-item[data-v-bcb824aa]:hover {
143
+ .file-item[data-v-42889233]:hover {
144
144
  transform: translateY(-2px);
145
145
  box-shadow: var(--shadow-sm);
146
146
  }
147
- .file-item.selected[data-v-bcb824aa] {
147
+ .file-item.selected[data-v-42889233] {
148
148
  border-color: var(--color-info);
149
149
  border-width: 2px;
150
150
  background-color: var(--color-background-selected);
151
151
  box-shadow: var(--shadow-md);
152
152
  position: relative;
153
153
  }
154
- .file-item.selected[data-v-bcb824aa]::after {
154
+ .file-item.selected[data-v-42889233]::after {
155
155
  content: "check_circle";
156
156
  font-family: "Material Icons";
157
157
  position: absolute;
@@ -162,29 +162,29 @@
162
162
  background: var(--color-background-primary);
163
163
  border-radius: 50%;
164
164
  }
165
- .file-item-content[data-v-bcb824aa] {
165
+ .file-item-content[data-v-42889233] {
166
166
  padding: 12px;
167
167
  display: flex;
168
168
  align-items: center;
169
169
  gap: 12px;
170
170
  }
171
- .file-icon-wrapper[data-v-bcb824aa] {
171
+ .file-icon-wrapper[data-v-42889233] {
172
172
  display: flex;
173
173
  align-items: center;
174
174
  justify-content: center;
175
175
  width: 30px;
176
176
  height: 30px;
177
177
  }
178
- .file-icon[data-v-bcb824aa] {
178
+ .file-icon[data-v-42889233] {
179
179
  width: 24px;
180
180
  height: 24px;
181
181
  color: var(--color-text-tertiary);
182
182
  }
183
- .file-details[data-v-bcb824aa] {
183
+ .file-details[data-v-42889233] {
184
184
  flex: 1;
185
185
  min-width: 0;
186
186
  }
187
- .file-name[data-v-bcb824aa] {
187
+ .file-name[data-v-42889233] {
188
188
  font-weight: 500;
189
189
  color: var(--color-text-primary);
190
190
  margin-bottom: 4px;
@@ -192,11 +192,11 @@
192
192
  overflow: hidden;
193
193
  text-overflow: ellipsis;
194
194
  }
195
- .file-info[data-v-bcb824aa] {
195
+ .file-info[data-v-42889233] {
196
196
  font-size: 12px;
197
197
  color: var(--color-text-secondary);
198
198
  }
199
- .browser-actions[data-v-bcb824aa] {
199
+ .browser-actions[data-v-42889233] {
200
200
  padding: 16px;
201
201
  background-color: var(--color-background-secondary);
202
202
  border-top: 1px solid var(--color-border-primary);
@@ -207,58 +207,58 @@
207
207
  box-sizing: border-box;
208
208
  gap: 12px;
209
209
  }
210
- .selected-file[data-v-bcb824aa] {
210
+ .selected-file[data-v-42889233] {
211
211
  color: var(--color-text-secondary);
212
212
  font-size: 14px;
213
213
  }
214
- .loading-state[data-v-bcb824aa],
215
- .error-state[data-v-bcb824aa],
216
- .empty-state[data-v-bcb824aa] {
214
+ .loading-state[data-v-42889233],
215
+ .error-state[data-v-42889233],
216
+ .empty-state[data-v-42889233] {
217
217
  display: flex;
218
218
  align-items: center;
219
219
  justify-content: center;
220
220
  height: 200px;
221
221
  color: var(--color-text-secondary);
222
222
  }
223
- .error-state[data-v-bcb824aa] {
223
+ .error-state[data-v-42889233] {
224
224
  color: var(--color-danger);
225
225
  }
226
- .error-content[data-v-bcb824aa] {
226
+ .error-content[data-v-42889233] {
227
227
  display: flex;
228
228
  flex-direction: column;
229
229
  align-items: center;
230
230
  gap: 12px;
231
231
  text-align: center;
232
232
  }
233
- .error-icon[data-v-bcb824aa] {
233
+ .error-icon[data-v-42889233] {
234
234
  font-size: 48px;
235
235
  color: var(--color-danger, #ef4444);
236
236
  }
237
- .error-message[data-v-bcb824aa] {
237
+ .error-message[data-v-42889233] {
238
238
  max-width: 300px;
239
239
  }
240
- .empty-state[data-v-bcb824aa] {
240
+ .empty-state[data-v-42889233] {
241
241
  flex-direction: column;
242
242
  gap: 8px;
243
243
  color: var(--color-text-secondary);
244
244
  }
245
- .empty-state .material-icons[data-v-bcb824aa] {
245
+ .empty-state .material-icons[data-v-42889233] {
246
246
  font-size: 48px;
247
247
  opacity: 0.5;
248
248
  }
249
249
 
250
250
  /* Refresh button styling */
251
- .refresh-button[data-v-bcb824aa] {
251
+ .refresh-button[data-v-42889233] {
252
252
  padding: 8px;
253
253
  min-width: auto;
254
254
  }
255
- .refresh-button .material-icons[data-v-bcb824aa] {
255
+ .refresh-button .material-icons[data-v-42889233] {
256
256
  transition: transform 0.3s ease;
257
257
  }
258
- .refresh-button .material-icons.spin[data-v-bcb824aa] {
259
- animation: spin-bcb824aa 1s linear infinite;
258
+ .refresh-button .material-icons.spin[data-v-42889233] {
259
+ animation: spin-42889233 1s linear infinite;
260
260
  }
261
- @keyframes spin-bcb824aa {
261
+ @keyframes spin-42889233 {
262
262
  from {
263
263
  transform: rotate(0deg);
264
264
  }
@@ -266,10 +266,10 @@ to {
266
266
  transform: rotate(360deg);
267
267
  }
268
268
  }
269
- .hidden-file[data-v-bcb824aa] {
269
+ .hidden-file[data-v-42889233] {
270
270
  opacity: 0.5;
271
271
  }
272
- .file-browser[data-v-bcb824aa] {
272
+ .file-browser[data-v-42889233] {
273
273
  display: flex;
274
274
  flex-direction: column;
275
275
  height: 70vh; /* Set to 70% of viewport height */
@@ -277,20 +277,20 @@ to {
277
277
  border-radius: 8px;
278
278
  box-shadow: var(--shadow-md);
279
279
  }
280
- .browser-content[data-v-bcb824aa] {
280
+ .browser-content[data-v-42889233] {
281
281
  display: flex;
282
282
  flex-direction: column;
283
283
  flex: 1;
284
284
  min-height: 0; /* Enable proper flex child scrolling */
285
285
  overflow: hidden;
286
286
  }
287
- .browser-main[data-v-bcb824aa] {
287
+ .browser-main[data-v-42889233] {
288
288
  flex: 1;
289
289
  overflow-y: auto; /* Make this section scrollable */
290
290
  padding: 16px;
291
291
  min-height: 0; /* Enable proper flex child scrolling */
292
292
  }
293
- .grid-container[data-v-bcb824aa] {
293
+ .grid-container[data-v-42889233] {
294
294
  display: grid;
295
295
  grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
296
296
  gap: 16px;
@@ -298,25 +298,25 @@ to {
298
298
  }
299
299
 
300
300
  /* Optional: if you want to maintain icon size consistency */
301
- .file-icon[data-v-bcb824aa] {
301
+ .file-icon[data-v-42889233] {
302
302
  width: 24px;
303
303
  height: 24px;
304
304
  object-fit: contain;
305
305
  }
306
306
 
307
307
  /* Add new styles for sort controls */
308
- .search-and-sort-container[data-v-bcb824aa] {
308
+ .search-and-sort-container[data-v-42889233] {
309
309
  display: flex;
310
310
  flex-direction: column;
311
311
  gap: 12px;
312
312
  }
313
- .sort-controls[data-v-bcb824aa] {
313
+ .sort-controls[data-v-42889233] {
314
314
  display: flex;
315
315
  align-items: center;
316
316
  gap: 8px;
317
317
  min-width: 180px; /* Prevent select from being too narrow */
318
318
  }
319
- .sort-direction-button[data-v-bcb824aa] {
319
+ .sort-direction-button[data-v-42889233] {
320
320
  display: inline-flex;
321
321
  align-items: center;
322
322
  justify-content: center;
@@ -324,13 +324,13 @@ to {
324
324
  height: 32px;
325
325
  padding: 0;
326
326
  }
327
- .controls-row[data-v-bcb824aa] {
327
+ .controls-row[data-v-42889233] {
328
328
  display: flex;
329
329
  align-items: center;
330
330
  gap: 16px;
331
331
  margin-top: 12px;
332
332
  }
333
- .form-hint[data-v-bcb824aa] {
333
+ .form-hint[data-v-42889233] {
334
334
  font-size: 12px;
335
335
  color: var(--color-text-tertiary);
336
336
  margin-top: 8px;
@@ -339,22 +339,22 @@ to {
339
339
  gap: 6px;
340
340
  flex-wrap: wrap;
341
341
  }
342
- .preview-label[data-v-bcb824aa] {
342
+ .preview-label[data-v-42889233] {
343
343
  color: var(--color-text-secondary);
344
344
  }
345
- .form-hint code[data-v-bcb824aa] {
345
+ .form-hint code[data-v-42889233] {
346
346
  background-color: var(--color-background-secondary);
347
347
  padding: 2px 6px;
348
348
  border-radius: 4px;
349
349
  font-family: monospace;
350
350
  color: var(--color-text-primary);
351
351
  }
352
- .auto-extension-hint[data-v-bcb824aa] {
352
+ .auto-extension-hint[data-v-42889233] {
353
353
  color: var(--color-text-muted);
354
354
  font-style: italic;
355
355
  }
356
356
 
357
- .action-buttons[data-v-f8281642] {
357
+ .action-buttons[data-v-0e8c073f] {
358
358
  padding-left: var(--spacing-5);
359
359
  display: flex;
360
360
  align-items: center;
@@ -362,7 +362,7 @@ to {
362
362
  height: 50px;
363
363
  font-family: var(--font-family-base);
364
364
  }
365
- .action-btn[data-v-f8281642] {
365
+ .action-btn[data-v-0e8c073f] {
366
366
  display: flex;
367
367
  align-items: center;
368
368
  gap: var(--spacing-1-5);
@@ -378,63 +378,70 @@ to {
378
378
  font-weight: var(--font-weight-medium);
379
379
  box-shadow: var(--shadow-xs);
380
380
  }
381
- .action-btn[data-v-f8281642]:hover {
381
+ .action-btn[data-v-0e8c073f]:hover {
382
382
  background-color: var(--color-background-tertiary);
383
383
  border-color: var(--color-border-secondary);
384
384
  }
385
- .action-btn[data-v-f8281642]:active {
385
+ .action-btn[data-v-0e8c073f]:active {
386
386
  transform: translateY(1px);
387
387
  box-shadow: none;
388
388
  }
389
- .action-btn.active[data-v-f8281642] {
389
+ .action-btn.active[data-v-0e8c073f] {
390
390
  background-color: var(--color-accent-subtle);
391
391
  border-color: var(--color-accent);
392
392
  color: var(--color-accent);
393
393
  }
394
- .btn-icon[data-v-f8281642] {
394
+ .btn-icon[data-v-0e8c073f] {
395
395
  font-size: 18px;
396
396
  color: var(--color-text-secondary);
397
397
  -webkit-font-smoothing: antialiased;
398
398
  -moz-osx-font-smoothing: grayscale;
399
399
  text-rendering: optimizeLegibility;
400
400
  }
401
- .action-btn:hover .btn-icon[data-v-f8281642] {
401
+ .action-btn:hover .btn-icon[data-v-0e8c073f] {
402
402
  color: var(--color-text-primary);
403
403
  }
404
- .action-btn.active .btn-icon[data-v-f8281642] {
404
+ .action-btn.active .btn-icon[data-v-0e8c073f] {
405
405
  color: var(--color-accent);
406
406
  }
407
- .btn-text[data-v-f8281642] {
407
+ .btn-text[data-v-0e8c073f] {
408
408
  white-space: nowrap;
409
409
  }
410
- .settings-modal-content[data-v-f8281642] {
410
+ .settings-modal-content[data-v-0e8c073f] {
411
411
  padding: var(--spacing-4);
412
412
  font-family: var(--font-family-base);
413
413
  }
414
- .form-group[data-v-f8281642] {
414
+ .form-group[data-v-0e8c073f] {
415
415
  margin-bottom: var(--spacing-4);
416
416
  }
417
- .form-group label[data-v-f8281642] {
417
+ .form-group label[data-v-0e8c073f] {
418
418
  display: block;
419
419
  margin-bottom: var(--spacing-2);
420
420
  font-size: var(--font-size-sm);
421
421
  font-weight: var(--font-weight-medium);
422
422
  color: var(--color-text-primary);
423
423
  }
424
- .quick-create-modal[data-v-f8281642] {
424
+ .form-hint[data-v-0e8c073f] {
425
+ display: block;
426
+ margin-top: var(--spacing-1);
427
+ font-size: var(--font-size-xs, 11px);
428
+ color: var(--color-text-muted, #999);
429
+ line-height: 1.4;
430
+ }
431
+ .quick-create-modal[data-v-0e8c073f] {
425
432
  padding: var(--spacing-4) 0;
426
433
  }
427
- .quick-create-modal .form-group[data-v-f8281642] {
434
+ .quick-create-modal .form-group[data-v-0e8c073f] {
428
435
  margin-bottom: var(--spacing-5);
429
436
  }
430
- .quick-create-modal label[data-v-f8281642] {
437
+ .quick-create-modal label[data-v-0e8c073f] {
431
438
  display: block;
432
439
  margin-bottom: var(--spacing-2);
433
440
  font-size: var(--font-size-sm);
434
441
  font-weight: var(--font-weight-medium);
435
442
  color: var(--color-text-primary);
436
443
  }
437
- .preview-text[data-v-f8281642] {
444
+ .preview-text[data-v-0e8c073f] {
438
445
  padding: var(--spacing-3);
439
446
  background-color: var(--color-background-muted);
440
447
  border: 1px solid var(--color-border-light);
@@ -442,14 +449,14 @@ to {
442
449
  font-size: var(--font-size-md);
443
450
  color: var(--color-text-secondary);
444
451
  }
445
- .preview-text code[data-v-f8281642] {
452
+ .preview-text code[data-v-0e8c073f] {
446
453
  background-color: var(--color-background-tertiary);
447
454
  padding: 2px var(--spacing-1-5);
448
455
  border-radius: var(--border-radius-sm);
449
456
  font-family: var(--font-family-mono);
450
457
  font-size: var(--font-size-sm);
451
458
  }
452
- .dialog-footer[data-v-f8281642] {
459
+ .dialog-footer[data-v-0e8c073f] {
453
460
  display: flex;
454
461
  gap: var(--spacing-2);
455
462
  }
@@ -10717,6 +10724,47 @@ to {
10717
10724
  .context-menu[data-v-9260496a] {
10718
10725
  min-width: 200px;
10719
10726
  }
10727
+
10728
+ .undo-redo-controls[data-v-ef0e185f] {
10729
+ position: absolute;
10730
+ top: 12px;
10731
+ left: 192px; /* Position after the node list panel */
10732
+ display: flex;
10733
+ gap: 4px;
10734
+ z-index: 1000;
10735
+ background: var(--color-background-primary);
10736
+ border: 1px solid var(--color-border-light);
10737
+ border-radius: var(--border-radius-lg);
10738
+ padding: 4px;
10739
+ box-shadow: var(--shadow-md);
10740
+ }
10741
+ .control-btn[data-v-ef0e185f] {
10742
+ display: flex;
10743
+ align-items: center;
10744
+ justify-content: center;
10745
+ width: 32px;
10746
+ height: 32px;
10747
+ background: transparent;
10748
+ border: none;
10749
+ border-radius: var(--border-radius-md);
10750
+ cursor: pointer;
10751
+ color: var(--color-text-secondary);
10752
+ transition: all var(--transition-fast);
10753
+ }
10754
+ .control-btn[data-v-ef0e185f]:hover:not(:disabled) {
10755
+ background: var(--color-background-tertiary);
10756
+ color: var(--color-text-primary);
10757
+ }
10758
+ .control-btn[data-v-ef0e185f]:active:not(:disabled) {
10759
+ transform: scale(0.95);
10760
+ }
10761
+ .control-btn[data-v-ef0e185f]:disabled {
10762
+ opacity: 0.3;
10763
+ cursor: not-allowed;
10764
+ }
10765
+ .control-btn .material-icons[data-v-ef0e185f] {
10766
+ font-size: 20px;
10767
+ }
10720
10768
  .vue-flow {
10721
10769
  position: relative;
10722
10770
  width: 100%;
@@ -10736,10 +10784,10 @@ to {
10736
10784
  z-index: 1;
10737
10785
  }
10738
10786
  .vue-flow__pane.draggable {
10739
- cursor: grab;
10787
+ cursor: grab;
10740
10788
  }
10741
10789
  .vue-flow__pane.selection {
10742
- cursor: pointer;
10790
+ cursor: pointer;
10743
10791
  }
10744
10792
  .vue-flow__pane.dragging {
10745
10793
  cursor: grabbing;
@@ -10784,31 +10832,31 @@ to {
10784
10832
  cursor: pointer;
10785
10833
  }
10786
10834
  .vue-flow__edge.animated path {
10787
- stroke-dasharray: 5;
10788
- animation: dashdraw 0.5s linear infinite;
10835
+ stroke-dasharray: 5;
10836
+ animation: dashdraw 0.5s linear infinite;
10789
10837
  }
10790
10838
  .vue-flow__edge.animated path.vue-flow__edge-interaction {
10791
- stroke-dasharray: none;
10792
- animation: none;
10839
+ stroke-dasharray: none;
10840
+ animation: none;
10793
10841
  }
10794
10842
  .vue-flow__edge.inactive {
10795
- pointer-events: none;
10843
+ pointer-events: none;
10796
10844
  }
10797
10845
  .vue-flow__edge.selected,
10798
10846
  .vue-flow__edge:focus,
10799
10847
  .vue-flow__edge:focus-visible {
10800
- outline: none;
10848
+ outline: none;
10801
10849
  }
10802
10850
  .vue-flow__edge.selected .vue-flow__edge-path,
10803
10851
  .vue-flow__edge:focus .vue-flow__edge-path,
10804
10852
  .vue-flow__edge:focus-visible .vue-flow__edge-path {
10805
- stroke: #555;
10853
+ stroke: #555;
10806
10854
  }
10807
10855
  .vue-flow__edge-textwrapper {
10808
- pointer-events: all;
10856
+ pointer-events: all;
10809
10857
  }
10810
10858
  .vue-flow__edge-textbg {
10811
- fill: white;
10859
+ fill: white;
10812
10860
  }
10813
10861
  .vue-flow__edge-text {
10814
10862
  pointer-events: none;
@@ -10820,8 +10868,8 @@ to {
10820
10868
  pointer-events: none;
10821
10869
  }
10822
10870
  .vue-flow__connection .animated {
10823
- stroke-dasharray: 5;
10824
- animation: dashdraw 0.5s linear infinite;
10871
+ stroke-dasharray: 5;
10872
+ animation: dashdraw 0.5s linear infinite;
10825
10873
  }
10826
10874
  .vue-flow__connectionline {
10827
10875
  z-index: 1001;
@@ -10830,25 +10878,6 @@ to {
10830
10878
  pointer-events: none;
10831
10879
  transform-origin: 0 0;
10832
10880
  }
10833
- .vue-flow__node-default,
10834
- .vue-flow__node-input,
10835
- .vue-flow__node-output {
10836
- border-width: 1px;
10837
- border-style: solid;
10838
- border-color: #bbb;
10839
- }
10840
- .vue-flow__node-default.selected,
10841
- .vue-flow__node-default:focus,
10842
- .vue-flow__node-default:focus-visible,
10843
- .vue-flow__node-input.selected,
10844
- .vue-flow__node-input:focus,
10845
- .vue-flow__node-input:focus-visible,
10846
- .vue-flow__node-output.selected,
10847
- .vue-flow__node-output:focus,
10848
- .vue-flow__node-output:focus-visible {
10849
- outline: none;
10850
- border: 1px solid #555;
10851
- }
10852
10881
  .vue-flow__node {
10853
10882
  position: absolute;
10854
10883
  -webkit-user-select: none;
@@ -10872,12 +10901,12 @@ to {
10872
10901
  pointer-events: none;
10873
10902
  }
10874
10903
  .vue-flow__nodesselection-rect {
10875
- position: absolute;
10876
- pointer-events: all;
10877
- cursor: grab;
10904
+ position: absolute;
10905
+ pointer-events: all;
10906
+ cursor: grab;
10878
10907
  }
10879
10908
  .vue-flow__nodesselection-rect.dragging {
10880
- cursor: grabbing;
10909
+ cursor: grabbing;
10881
10910
  }
10882
10911
  .vue-flow__handle {
10883
10912
  position: absolute;
@@ -10886,28 +10915,28 @@ to {
10886
10915
  min-height: 5px;
10887
10916
  }
10888
10917
  .vue-flow__handle.connectable {
10889
- pointer-events: all;
10890
- cursor: crosshair;
10918
+ pointer-events: all;
10919
+ cursor: crosshair;
10891
10920
  }
10892
10921
  .vue-flow__handle-bottom {
10893
- left: 50%;
10894
- bottom: 0;
10895
- transform: translate(-50%, 50%);
10922
+ left: 50%;
10923
+ bottom: 0;
10924
+ transform: translate(-50%, 50%);
10896
10925
  }
10897
10926
  .vue-flow__handle-top {
10898
- left: 50%;
10899
- top: 0;
10900
- transform: translate(-50%, -50%);
10927
+ left: 50%;
10928
+ top: 0;
10929
+ transform: translate(-50%, -50%);
10901
10930
  }
10902
10931
  .vue-flow__handle-left {
10903
- top: 50%;
10904
- left: 0;
10905
- transform: translate(-50%, -50%);
10932
+ top: 50%;
10933
+ left: 0;
10934
+ transform: translate(-50%, -50%);
10906
10935
  }
10907
10936
  .vue-flow__handle-right {
10908
- top: 50%;
10909
- right: 0;
10910
- transform: translate(50%, -50%);
10937
+ top: 50%;
10938
+ right: 0;
10939
+ transform: translate(50%, -50%);
10911
10940
  }
10912
10941
  .vue-flow__edgeupdater {
10913
10942
  cursor: move;
@@ -10919,20 +10948,20 @@ to {
10919
10948
  margin: 15px;
10920
10949
  }
10921
10950
  .vue-flow__panel.top {
10922
- top: 0;
10951
+ top: 0;
10923
10952
  }
10924
10953
  .vue-flow__panel.bottom {
10925
- bottom: 0;
10954
+ bottom: 0;
10926
10955
  }
10927
10956
  .vue-flow__panel.left {
10928
- left: 0;
10957
+ left: 0;
10929
10958
  }
10930
10959
  .vue-flow__panel.right {
10931
- right: 0;
10960
+ right: 0;
10932
10961
  }
10933
10962
  .vue-flow__panel.center {
10934
- left: 50%;
10935
- transform: translateX(-50%);
10963
+ left: 50%;
10964
+ transform: translateX(-50%);
10936
10965
  }
10937
10966
  @keyframes dashdraw {
10938
10967
  from {
@@ -10942,7 +10971,7 @@ from {
10942
10971
  :root {
10943
10972
  --vf-node-bg: #fff;
10944
10973
  --vf-node-text: #222;
10945
- --vf-connection-path: #b1b1b7;
10974
+ --vf-connection-path: #b1b1b7;
10946
10975
  --vf-handle: #555;
10947
10976
  }
10948
10977
  .vue-flow__edge.updating .vue-flow__edge-path {
@@ -10962,7 +10991,7 @@ from {
10962
10991
  }
10963
10992
  .vue-flow__node.selectable:focus,
10964
10993
  .vue-flow__node.selectable:focus-visible {
10965
- outline: none;
10994
+ outline: none;
10966
10995
  }
10967
10996
  .vue-flow__node-default,
10968
10997
  .vue-flow__node-input,
@@ -10984,7 +11013,19 @@ from {
10984
11013
  .vue-flow__node-input.selected:hover,
10985
11014
  .vue-flow__node-output.selected,
10986
11015
  .vue-flow__node-output.selected:hover {
10987
- box-shadow: 0 0 0 0.5px var(--vf-box-shadow);
11016
+ box-shadow: 0 0 0 0.5px var(--vf-box-shadow);
11017
+ }
11018
+ .vue-flow__node-default.selected,
11019
+ .vue-flow__node-default:focus,
11020
+ .vue-flow__node-default:focus-visible,
11021
+ .vue-flow__node-input.selected,
11022
+ .vue-flow__node-input:focus,
11023
+ .vue-flow__node-input:focus-visible,
11024
+ .vue-flow__node-output.selected,
11025
+ .vue-flow__node-output:focus,
11026
+ .vue-flow__node-output:focus-visible {
11027
+ outline: none;
11028
+ border: 1px solid #555;
10988
11029
  }
10989
11030
  .vue-flow__node-default .vue-flow__handle, .vue-flow__node-input .vue-flow__handle, .vue-flow__node-output .vue-flow__handle {
10990
11031
  background: var(--vf-handle);
@@ -11003,8 +11044,8 @@ from {
11003
11044
  .vue-flow__node-input.selected,
11004
11045
  .vue-flow__node-input:focus,
11005
11046
  .vue-flow__node-input:focus-visible {
11006
- outline: none;
11007
- border: 1px solid var(--vf-node-color, #0041d0);
11047
+ outline: none;
11048
+ border: 1px solid var(--vf-node-color, #0041d0);
11008
11049
  }
11009
11050
  .vue-flow__node-default {
11010
11051
  --vf-handle: var(--vf-node-color, #1a192b);
@@ -11016,8 +11057,8 @@ from {
11016
11057
  .vue-flow__node-default.selected,
11017
11058
  .vue-flow__node-default:focus,
11018
11059
  .vue-flow__node-default:focus-visible {
11019
- outline: none;
11020
- border: 1px solid var(--vf-node-color, #1a192b);
11060
+ outline: none;
11061
+ border: 1px solid var(--vf-node-color, #1a192b);
11021
11062
  }
11022
11063
  .vue-flow__node-output {
11023
11064
  --vf-handle: var(--vf-node-color, #ff0072);
@@ -11029,8 +11070,8 @@ from {
11029
11070
  .vue-flow__node-output.selected,
11030
11071
  .vue-flow__node-output:focus,
11031
11072
  .vue-flow__node-output:focus-visible {
11032
- outline: none;
11033
- border: 1px solid var(--vf-node-color, #ff0072);
11073
+ outline: none;
11074
+ border: 1px solid var(--vf-node-color, #ff0072);
11034
11075
  }
11035
11076
  .vue-flow__nodesselection-rect,
11036
11077
  .vue-flow__selection {
@@ -11041,7 +11082,7 @@ from {
11041
11082
  .vue-flow__nodesselection-rect:focus-visible,
11042
11083
  .vue-flow__selection:focus,
11043
11084
  .vue-flow__selection:focus-visible {
11044
- outline: none;
11085
+ outline: none;
11045
11086
  }
11046
11087
  .vue-flow__handle {
11047
11088
  width: 6px;
@@ -11115,8 +11156,8 @@ from {
11115
11156
 
11116
11157
  /* handle styles */
11117
11158
  .vue-flow__resize-control.handle {
11118
- width: 4px;
11119
- height: 4px;
11159
+ width: 5px;
11160
+ height: 5px;
11120
11161
  border: 1px solid #fff;
11121
11162
  border-radius: 1px;
11122
11163
  background-color: #3367d9;
@@ -11266,11 +11307,11 @@ main {
11266
11307
  gap: 10px;
11267
11308
  }
11268
11309
 
11269
- .flow-tabs-container[data-v-5470f189] {
11310
+ .flow-tabs-container[data-v-6574f019] {
11270
11311
  width: 100%;
11271
11312
  font-family: var(--font-family-base);
11272
11313
  }
11273
- .flow-tabs[data-v-5470f189] {
11314
+ .flow-tabs[data-v-6574f019] {
11274
11315
  display: flex;
11275
11316
  align-items: center;
11276
11317
  overflow-x: auto;
@@ -11280,17 +11321,17 @@ main {
11280
11321
  padding-left: var(--spacing-1);
11281
11322
  scrollbar-width: thin;
11282
11323
  }
11283
- .flow-tabs[data-v-5470f189]::-webkit-scrollbar {
11324
+ .flow-tabs[data-v-6574f019]::-webkit-scrollbar {
11284
11325
  height: 4px;
11285
11326
  }
11286
- .flow-tabs[data-v-5470f189]::-webkit-scrollbar-track {
11327
+ .flow-tabs[data-v-6574f019]::-webkit-scrollbar-track {
11287
11328
  background: transparent;
11288
11329
  }
11289
- .flow-tabs[data-v-5470f189]::-webkit-scrollbar-thumb {
11330
+ .flow-tabs[data-v-6574f019]::-webkit-scrollbar-thumb {
11290
11331
  background-color: var(--color-gray-300);
11291
11332
  border-radius: var(--border-radius-full);
11292
11333
  }
11293
- .flow-tab[data-v-5470f189] {
11334
+ .flow-tab[data-v-6574f019] {
11294
11335
  display: flex;
11295
11336
  align-items: center;
11296
11337
  padding: 0 var(--spacing-4);
@@ -11306,28 +11347,28 @@ main {
11306
11347
  margin-right: 1px;
11307
11348
  transition: all var(--transition-fast);
11308
11349
  }
11309
- .flow-tab.active[data-v-5470f189] {
11350
+ .flow-tab.active[data-v-6574f019] {
11310
11351
  background-color: var(--color-background-primary);
11311
11352
  border-top: 2px solid var(--primary-blue);
11312
11353
  box-shadow: var(--shadow-xs);
11313
11354
  z-index: 1;
11314
11355
  }
11315
- .flow-tab[data-v-5470f189]:not(.active):hover {
11356
+ .flow-tab[data-v-6574f019]:not(.active):hover {
11316
11357
  background-color: var(--color-background-hover);
11317
11358
  }
11318
- .tab-content[data-v-5470f189] {
11359
+ .tab-content[data-v-6574f019] {
11319
11360
  display: flex;
11320
11361
  align-items: center;
11321
11362
  gap: var(--spacing-2);
11322
11363
  width: calc(100% - 20px);
11323
11364
  overflow: hidden;
11324
11365
  }
11325
- .tab-icon[data-v-5470f189] {
11366
+ .tab-icon[data-v-6574f019] {
11326
11367
  font-size: var(--font-size-xl);
11327
- color: var(--color-accent-subtle);
11368
+ color: var(--color-accent);
11328
11369
  flex-shrink: 0;
11329
11370
  }
11330
- .tab-name[data-v-5470f189] {
11371
+ .tab-name[data-v-6574f019] {
11331
11372
  white-space: nowrap;
11332
11373
  overflow: hidden;
11333
11374
  text-overflow: ellipsis;
@@ -11336,10 +11377,10 @@ main {
11336
11377
  letter-spacing: 0.01em;
11337
11378
  color: var(--color-text-secondary);
11338
11379
  }
11339
- .active .tab-name[data-v-5470f189] {
11380
+ .active .tab-name[data-v-6574f019] {
11340
11381
  color: var(--color-text-primary);
11341
11382
  }
11342
- .close-icon[data-v-5470f189] {
11383
+ .close-icon[data-v-6574f019] {
11343
11384
  font-size: var(--font-size-lg);
11344
11385
  color: var(--color-text-muted);
11345
11386
  opacity: 0;
@@ -11350,21 +11391,21 @@ main {
11350
11391
  transition: all var(--transition-fast);
11351
11392
  transform: scale(0.9);
11352
11393
  }
11353
- .flow-tab:hover .close-icon[data-v-5470f189] {
11394
+ .flow-tab:hover .close-icon[data-v-6574f019] {
11354
11395
  opacity: 1;
11355
11396
  }
11356
- .close-icon[data-v-5470f189]:hover {
11397
+ .close-icon[data-v-6574f019]:hover {
11357
11398
  background-color: var(--color-background-tertiary);
11358
11399
  color: var(--color-text-secondary);
11359
11400
  transform: scale(1);
11360
11401
  }
11361
- .active .close-icon[data-v-5470f189]:hover {
11402
+ .active .close-icon[data-v-6574f019]:hover {
11362
11403
  background-color: var(--color-background-hover);
11363
11404
  color: var(--color-primary);
11364
11405
  }
11365
11406
 
11366
11407
  /* New flow tab styling */
11367
- .new-flow-tab[data-v-5470f189] {
11408
+ .new-flow-tab[data-v-6574f019] {
11368
11409
  min-width: 40px;
11369
11410
  max-width: 40px;
11370
11411
  display: flex;
@@ -11372,7 +11413,7 @@ main {
11372
11413
  align-items: center;
11373
11414
  color: var(--color-primary);
11374
11415
  }
11375
- .new-flow-tab[data-v-5470f189]:hover {
11416
+ .new-flow-tab[data-v-6574f019]:hover {
11376
11417
  background-color: var(--color-background-hover);
11377
11418
  }
11378
11419