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,6 +1,6 @@
1
- import { d as defineComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, K as Fragment, L as renderList, n as normalizeClass, t as toDisplayString, B as unref, g as _export_sfc, w as withModifiers, e as createCommentVNode, r as ref, f as createTextVNode, b as createStaticVNode, z as createVNode, J as onMounted, k as axios, Y as reactive, G as computed, H as watch, i as withDirectives, v as vModelText, $ as isRef, C as createBlock } from "./index-ca6799de.js";
2
- import { T, k as keymap, a as acceptCompletion, i as indentMore, b as indentLess, c as EditorState, d as autocompletion, P as Prec, E as EditorView } from "./vue-codemirror.esm-8f46fb36.js";
3
- import { g as getImageUrl, _ as __vite_glob_0_0, a as __vite_glob_0_1, b as __vite_glob_0_2, c as __vite_glob_0_3, d as __vite_glob_0_4, e as __vite_glob_0_5, h as __vite_glob_0_6, i as __vite_glob_0_7, j as __vite_glob_0_8, k as __vite_glob_0_9, l as __vite_glob_0_10, m as __vite_glob_0_11, n as __vite_glob_0_12, q as __vite_glob_0_13, r as __vite_glob_0_14, s as __vite_glob_0_15, t as __vite_glob_0_16, u as __vite_glob_0_17, v as __vite_glob_0_18, w as __vite_glob_0_19, x as __vite_glob_0_20, y as __vite_glob_0_21, z as __vite_glob_0_22, A as __vite_glob_0_23, B as __vite_glob_0_24, C as __vite_glob_0_25, D as __vite_glob_0_26, E as __vite_glob_0_27, F as __vite_glob_0_28, G as __vite_glob_0_29, H as __vite_glob_0_30, I as __vite_glob_0_31, J as __vite_glob_0_32, K as __vite_glob_0_33, L as getDefaultIconUrl, M as getCustomIconUrl, p as python, o as oneDark } from "./index-057d770d.js";
1
+ import { d as defineComponent, c as createElementBlock, a as createBaseVNode, K as Fragment, L as renderList, A as unref, n as normalizeClass, t as toDisplayString, o as openBlock, g as _export_sfc, w as withModifiers, e as createCommentVNode, r as ref, f as createTextVNode, b as createStaticVNode, z as createVNode, J as onMounted, k as axios, G as computed, a5 as reactive, H as watch, h as withDirectives, v as vModelText, a6 as isRef, C as createBlock } from "./index-bcuE0Z0p.js";
2
+ import { T, k as keymap, a as acceptCompletion, i as indentMore, b as indentLess, c as EditorState, d as autocompletion, P as Prec, E as EditorView } from "./vue-codemirror.esm-CwaYwln0.js";
3
+ import { g as getImageUrl, _ as __vite_glob_0_33, a as __vite_glob_0_32, b as __vite_glob_0_31, c as __vite_glob_0_30, d as __vite_glob_0_29, e as __vite_glob_0_28, h as __vite_glob_0_27, i as __vite_glob_0_26, j as __vite_glob_0_25, k as __vite_glob_0_24, l as __vite_glob_0_23, m as __vite_glob_0_22, n as __vite_glob_0_21, q as __vite_glob_0_20, r as __vite_glob_0_19, s as __vite_glob_0_18, t as __vite_glob_0_17, u as __vite_glob_0_16, v as __vite_glob_0_15, w as __vite_glob_0_14, x as __vite_glob_0_13, y as __vite_glob_0_12, z as __vite_glob_0_11, A as __vite_glob_0_10, B as __vite_glob_0_9, C as __vite_glob_0_8, D as __vite_glob_0_7, E as __vite_glob_0_6, F as __vite_glob_0_5, G as __vite_glob_0_4, H as __vite_glob_0_3, I as __vite_glob_0_2, J as __vite_glob_0_1, K as __vite_glob_0_0, L as getDefaultIconUrl, M as getCustomIconUrl, o as oneDark, p as python } from "./index-CHPMUR0d.js";
4
4
  const STORAGE_KEY = "nodeDesigner_state";
5
5
  const availableComponents = [
6
6
  { type: "TextInput", label: "Text Input", icon: "fa-solid fa-font" },
@@ -71,7 +71,6 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
71
71
  };
72
72
  }
73
73
  });
74
- const ComponentPalette_vue_vue_type_style_index_0_scoped_7eeb4ea6_lang = "";
75
74
  const ComponentPalette = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-7eeb4ea6"]]);
76
75
  const _hoisted_1$9 = { class: "section-header" };
77
76
  const _hoisted_2$9 = { class: "section-fields" };
@@ -111,7 +110,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
111
110
  }
112
111
  return (_ctx, _cache) => {
113
112
  return openBlock(), createElementBlock("div", {
114
- class: normalizeClass(["section-card", { selected: _ctx.isSelected }]),
113
+ class: normalizeClass(["section-card", { selected: __props.isSelected }]),
115
114
  onClick: _cache[4] || (_cache[4] = ($event) => emit("select"))
116
115
  }, [
117
116
  createBaseVNode("div", _hoisted_1$9, [
@@ -119,7 +118,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
119
118
  createBaseVNode("div", _hoisted_3$8, [
120
119
  _cache[5] || (_cache[5] = createBaseVNode("label", null, "Variable Name", -1)),
121
120
  createBaseVNode("input", {
122
- value: _ctx.section.name,
121
+ value: __props.section.name,
123
122
  type: "text",
124
123
  class: "section-name-input",
125
124
  placeholder: "section_name",
@@ -131,7 +130,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
131
130
  createBaseVNode("div", _hoisted_5$5, [
132
131
  _cache[6] || (_cache[6] = createBaseVNode("label", null, "Display Title", -1)),
133
132
  createBaseVNode("input", {
134
- value: _ctx.section.title,
133
+ value: __props.section.title,
135
134
  type: "text",
136
135
  class: "section-title-input",
137
136
  placeholder: "Section Title",
@@ -144,9 +143,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
144
143
  createBaseVNode("button", {
145
144
  class: "btn-icon",
146
145
  onClick: _cache[2] || (_cache[2] = withModifiers(($event) => emit("remove"), ["stop"]))
147
- }, _cache[7] || (_cache[7] = [
146
+ }, [..._cache[7] || (_cache[7] = [
148
147
  createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1)
149
- ]))
148
+ ])])
150
149
  ]),
151
150
  createBaseVNode("div", {
152
151
  class: "section-components",
@@ -154,10 +153,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
154
153
  }, ["prevent"])),
155
154
  onDrop: handleDrop
156
155
  }, [
157
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.section.components, (component, compIndex) => {
156
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.section.components, (component, compIndex) => {
158
157
  return openBlock(), createElementBlock("div", {
159
158
  key: compIndex,
160
- class: normalizeClass(["component-card", { selected: _ctx.isSelected && _ctx.selectedComponentIndex === compIndex }]),
159
+ class: normalizeClass(["component-card", { selected: __props.isSelected && __props.selectedComponentIndex === compIndex }]),
161
160
  onClick: withModifiers(($event) => emit("selectComponent", compIndex), ["stop"])
162
161
  }, [
163
162
  createBaseVNode("div", _hoisted_8$5, [
@@ -170,21 +169,20 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
170
169
  createBaseVNode("button", {
171
170
  class: "btn-icon btn-remove",
172
171
  onClick: withModifiers(($event) => emit("removeComponent", compIndex), ["stop"])
173
- }, _cache[8] || (_cache[8] = [
172
+ }, [..._cache[8] || (_cache[8] = [
174
173
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
175
- ]), 8, _hoisted_11$5)
174
+ ])], 8, _hoisted_11$5)
176
175
  ], 10, _hoisted_7$5);
177
176
  }), 128)),
178
- _ctx.section.components.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12$4, _cache[9] || (_cache[9] = [
177
+ __props.section.components.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12$4, [..._cache[9] || (_cache[9] = [
179
178
  createBaseVNode("i", { class: "fa-solid fa-plus" }, null, -1),
180
179
  createBaseVNode("span", null, "Drop components here", -1)
181
- ]))) : createCommentVNode("", true)
180
+ ])])) : createCommentVNode("", true)
182
181
  ], 32)
183
182
  ], 2);
184
183
  };
185
184
  }
186
185
  });
187
- const SectionCard_vue_vue_type_style_index_0_scoped_17318956_lang = "";
188
186
  const SectionCard = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-17318956"]]);
189
187
  function toSnakeCase(str) {
190
188
  return str.replace(/\s+/g, "_").replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase().replace(/[^a-z0-9_]/g, "");
@@ -228,15 +226,12 @@ function useCodeGeneration() {
228
226
  sectionsCode += ` label="${comp.label || fieldName}",
229
227
  `;
230
228
  if (comp.component_type === "TextInput") {
231
- if (comp.default)
232
- sectionsCode += ` default="${comp.default}",
229
+ if (comp.default) sectionsCode += ` default="${comp.default}",
233
230
  `;
234
- if (comp.placeholder)
235
- sectionsCode += ` placeholder="${comp.placeholder}",
231
+ if (comp.placeholder) sectionsCode += ` placeholder="${comp.placeholder}",
236
232
  `;
237
233
  } else if (comp.component_type === "NumericInput") {
238
- if (comp.default !== void 0)
239
- sectionsCode += ` default=${comp.default},
234
+ if (comp.default !== void 0) sectionsCode += ` default=${comp.default},
240
235
  `;
241
236
  if (comp.min_value !== void 0)
242
237
  sectionsCode += ` min_value=${comp.min_value},
@@ -247,8 +242,7 @@ function useCodeGeneration() {
247
242
  } else if (comp.component_type === "ToggleSwitch") {
248
243
  sectionsCode += ` default=${comp.default ? "True" : "False"},
249
244
  `;
250
- if (comp.description)
251
- sectionsCode += ` description="${comp.description}",
245
+ if (comp.description) sectionsCode += ` description="${comp.description}",
252
246
  `;
253
247
  } else if (comp.component_type === "SingleSelect" || comp.component_type === "MultiSelect") {
254
248
  if (comp.options_source === "incoming_columns") {
@@ -260,11 +254,9 @@ function useCodeGeneration() {
260
254
  `;
261
255
  }
262
256
  } else if (comp.component_type === "ColumnSelector") {
263
- if (comp.required)
264
- sectionsCode += ` required=True,
257
+ if (comp.required) sectionsCode += ` required=True,
265
258
  `;
266
- if (comp.multiple)
267
- sectionsCode += ` multiple=True,
259
+ if (comp.multiple) sectionsCode += ` multiple=True,
268
260
  `;
269
261
  if (comp.data_types && comp.data_types !== "ALL") {
270
262
  sectionsCode += ` data_types="${comp.data_types}",
@@ -275,18 +267,14 @@ function useCodeGeneration() {
275
267
  `;
276
268
  sectionsCode += ` max_value=${comp.max_value ?? 100},
277
269
  `;
278
- if (comp.step)
279
- sectionsCode += ` step=${comp.step},
270
+ if (comp.step) sectionsCode += ` step=${comp.step},
280
271
  `;
281
272
  } else if (comp.component_type === "SecretSelector") {
282
- if (comp.required)
283
- sectionsCode += ` required=True,
273
+ if (comp.required) sectionsCode += ` required=True,
284
274
  `;
285
- if (comp.description)
286
- sectionsCode += ` description="${comp.description}",
275
+ if (comp.description) sectionsCode += ` description="${comp.description}",
287
276
  `;
288
- if (comp.name_prefix)
289
- sectionsCode += ` name_prefix="${comp.name_prefix}",
277
+ if (comp.name_prefix) sectionsCode += ` name_prefix="${comp.name_prefix}",
290
278
  `;
291
279
  } else if (comp.component_type === "ColumnActionInput") {
292
280
  if (comp.actions_string) {
@@ -298,11 +286,9 @@ function useCodeGeneration() {
298
286
  sectionsCode += ` output_name_template="${comp.output_name_template}",
299
287
  `;
300
288
  }
301
- if (comp.show_group_by)
302
- sectionsCode += ` show_group_by=True,
289
+ if (comp.show_group_by) sectionsCode += ` show_group_by=True,
303
290
  `;
304
- if (comp.show_order_by)
305
- sectionsCode += ` show_order_by=True,
291
+ if (comp.show_order_by) sectionsCode += ` show_order_by=True,
306
292
  `;
307
293
  if (comp.data_types && comp.data_types !== "ALL") {
308
294
  sectionsCode += ` data_types="${comp.data_types}",
@@ -544,8 +530,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
544
530
  }
545
531
  }
546
532
  function insertVariable() {
547
- if (!props.component || !props.sectionName)
548
- return;
533
+ if (!props.component || !props.sectionName) return;
549
534
  const fieldName = toSnakeCase(props.component.field_name);
550
535
  const sectionName = toSnakeCase(props.sectionName);
551
536
  const pyType = getTypeForComponent(props.component.component_type, props.component.multiple);
@@ -563,12 +548,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
563
548
  createBaseVNode("h3", null, "Properties")
564
549
  ], -1)),
565
550
  createBaseVNode("div", _hoisted_2$8, [
566
- _ctx.component ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
551
+ __props.component ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
567
552
  createBaseVNode("div", _hoisted_4$6, [
568
553
  createBaseVNode("i", {
569
- class: normalizeClass(unref(getComponentIcon)(_ctx.component.component_type))
554
+ class: normalizeClass(unref(getComponentIcon)(__props.component.component_type))
570
555
  }, null, 2),
571
- createBaseVNode("span", null, toDisplayString(_ctx.component.component_type), 1)
556
+ createBaseVNode("span", null, toDisplayString(__props.component.component_type), 1)
572
557
  ]),
573
558
  createBaseVNode("div", _hoisted_5$4, [
574
559
  _cache[29] || (_cache[29] = createBaseVNode("div", { class: "property-group-title" }, "Basic", -1)),
@@ -578,7 +563,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
578
563
  createBaseVNode("span", { class: "required" }, "*")
579
564
  ], -1)),
580
565
  createBaseVNode("input", {
581
- value: _ctx.component.field_name,
566
+ value: __props.component.field_name,
582
567
  type: "text",
583
568
  class: "property-input",
584
569
  placeholder: "field_name",
@@ -588,7 +573,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
588
573
  createBaseVNode("div", _hoisted_8$4, [
589
574
  _cache[28] || (_cache[28] = createBaseVNode("label", { class: "property-label" }, "Label", -1)),
590
575
  createBaseVNode("input", {
591
- value: _ctx.component.label,
576
+ value: __props.component.label,
592
577
  type: "text",
593
578
  class: "property-input",
594
579
  placeholder: "Display Label",
@@ -596,12 +581,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
596
581
  }, null, 40, _hoisted_9$4)
597
582
  ])
598
583
  ]),
599
- _ctx.component.component_type === "TextInput" ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
584
+ __props.component.component_type === "TextInput" ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
600
585
  _cache[32] || (_cache[32] = createBaseVNode("div", { class: "property-group-title" }, "Text Options", -1)),
601
586
  createBaseVNode("div", _hoisted_11$4, [
602
587
  _cache[30] || (_cache[30] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
603
588
  createBaseVNode("input", {
604
- value: _ctx.component.default,
589
+ value: __props.component.default,
605
590
  type: "text",
606
591
  class: "property-input",
607
592
  placeholder: "Default value",
@@ -611,7 +596,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
611
596
  createBaseVNode("div", _hoisted_13$3, [
612
597
  _cache[31] || (_cache[31] = createBaseVNode("label", { class: "property-label" }, "Placeholder", -1)),
613
598
  createBaseVNode("input", {
614
- value: _ctx.component.placeholder,
599
+ value: __props.component.placeholder,
615
600
  type: "text",
616
601
  class: "property-input",
617
602
  placeholder: "Placeholder text",
@@ -619,12 +604,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
619
604
  }, null, 40, _hoisted_14$3)
620
605
  ])
621
606
  ])) : createCommentVNode("", true),
622
- _ctx.component.component_type === "NumericInput" ? (openBlock(), createElementBlock("div", _hoisted_15$3, [
607
+ __props.component.component_type === "NumericInput" ? (openBlock(), createElementBlock("div", _hoisted_15$3, [
623
608
  _cache[36] || (_cache[36] = createBaseVNode("div", { class: "property-group-title" }, "Number Options", -1)),
624
609
  createBaseVNode("div", _hoisted_16$3, [
625
610
  _cache[33] || (_cache[33] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
626
611
  createBaseVNode("input", {
627
- value: _ctx.component.default,
612
+ value: __props.component.default,
628
613
  type: "number",
629
614
  class: "property-input",
630
615
  onInput: _cache[4] || (_cache[4] = ($event) => updateField("default", Number($event.target.value)))
@@ -633,7 +618,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
633
618
  createBaseVNode("div", _hoisted_18$2, [
634
619
  _cache[34] || (_cache[34] = createBaseVNode("label", { class: "property-label" }, "Min Value", -1)),
635
620
  createBaseVNode("input", {
636
- value: _ctx.component.min_value,
621
+ value: __props.component.min_value,
637
622
  type: "number",
638
623
  class: "property-input",
639
624
  onInput: _cache[5] || (_cache[5] = ($event) => updateField("min_value", Number($event.target.value)))
@@ -642,19 +627,19 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
642
627
  createBaseVNode("div", _hoisted_20, [
643
628
  _cache[35] || (_cache[35] = createBaseVNode("label", { class: "property-label" }, "Max Value", -1)),
644
629
  createBaseVNode("input", {
645
- value: _ctx.component.max_value,
630
+ value: __props.component.max_value,
646
631
  type: "number",
647
632
  class: "property-input",
648
633
  onInput: _cache[6] || (_cache[6] = ($event) => updateField("max_value", Number($event.target.value)))
649
634
  }, null, 40, _hoisted_21)
650
635
  ])
651
636
  ])) : createCommentVNode("", true),
652
- _ctx.component.component_type === "ToggleSwitch" ? (openBlock(), createElementBlock("div", _hoisted_22, [
637
+ __props.component.component_type === "ToggleSwitch" ? (openBlock(), createElementBlock("div", _hoisted_22, [
653
638
  _cache[39] || (_cache[39] = createBaseVNode("div", { class: "property-group-title" }, "Toggle Options", -1)),
654
639
  createBaseVNode("div", _hoisted_23, [
655
640
  _cache[37] || (_cache[37] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
656
641
  createBaseVNode("input", {
657
- checked: _ctx.component.default,
642
+ checked: __props.component.default,
658
643
  type: "checkbox",
659
644
  class: "property-checkbox",
660
645
  onChange: _cache[7] || (_cache[7] = ($event) => updateField("default", $event.target.checked))
@@ -663,7 +648,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
663
648
  createBaseVNode("div", _hoisted_25, [
664
649
  _cache[38] || (_cache[38] = createBaseVNode("label", { class: "property-label" }, "Description", -1)),
665
650
  createBaseVNode("input", {
666
- value: _ctx.component.description,
651
+ value: __props.component.description,
667
652
  type: "text",
668
653
  class: "property-input",
669
654
  placeholder: "Toggle description",
@@ -671,23 +656,23 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
671
656
  }, null, 40, _hoisted_26)
672
657
  ])
673
658
  ])) : createCommentVNode("", true),
674
- _ctx.component.component_type === "SingleSelect" ? (openBlock(), createElementBlock("div", _hoisted_27, [
659
+ __props.component.component_type === "SingleSelect" ? (openBlock(), createElementBlock("div", _hoisted_27, [
675
660
  _cache[43] || (_cache[43] = createBaseVNode("div", { class: "property-group-title" }, "Select Options", -1)),
676
661
  createBaseVNode("div", _hoisted_28, [
677
662
  _cache[41] || (_cache[41] = createBaseVNode("label", { class: "property-label" }, "Options Source", -1)),
678
663
  createBaseVNode("select", {
679
- value: _ctx.component.options_source,
664
+ value: __props.component.options_source,
680
665
  class: "property-input",
681
666
  onChange: _cache[9] || (_cache[9] = ($event) => updateField("options_source", $event.target.value))
682
- }, _cache[40] || (_cache[40] = [
667
+ }, [..._cache[40] || (_cache[40] = [
683
668
  createBaseVNode("option", { value: "static" }, "Static Options", -1),
684
669
  createBaseVNode("option", { value: "incoming_columns" }, "Incoming Columns", -1)
685
- ]), 40, _hoisted_29)
670
+ ])], 40, _hoisted_29)
686
671
  ]),
687
- _ctx.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_30, [
672
+ __props.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_30, [
688
673
  _cache[42] || (_cache[42] = createBaseVNode("label", { class: "property-label" }, "Options (comma-separated)", -1)),
689
674
  createBaseVNode("input", {
690
- value: _ctx.component.options_string,
675
+ value: __props.component.options_string,
691
676
  type: "text",
692
677
  class: "property-input",
693
678
  placeholder: "option1, option2, option3",
@@ -695,23 +680,23 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
695
680
  }, null, 40, _hoisted_31)
696
681
  ])) : createCommentVNode("", true)
697
682
  ])) : createCommentVNode("", true),
698
- _ctx.component.component_type === "MultiSelect" ? (openBlock(), createElementBlock("div", _hoisted_32, [
683
+ __props.component.component_type === "MultiSelect" ? (openBlock(), createElementBlock("div", _hoisted_32, [
699
684
  _cache[47] || (_cache[47] = createBaseVNode("div", { class: "property-group-title" }, "Select Options", -1)),
700
685
  createBaseVNode("div", _hoisted_33, [
701
686
  _cache[45] || (_cache[45] = createBaseVNode("label", { class: "property-label" }, "Options Source", -1)),
702
687
  createBaseVNode("select", {
703
- value: _ctx.component.options_source,
688
+ value: __props.component.options_source,
704
689
  class: "property-input",
705
690
  onChange: _cache[11] || (_cache[11] = ($event) => updateField("options_source", $event.target.value))
706
- }, _cache[44] || (_cache[44] = [
691
+ }, [..._cache[44] || (_cache[44] = [
707
692
  createBaseVNode("option", { value: "static" }, "Static Options", -1),
708
693
  createBaseVNode("option", { value: "incoming_columns" }, "Incoming Columns", -1)
709
- ]), 40, _hoisted_34)
694
+ ])], 40, _hoisted_34)
710
695
  ]),
711
- _ctx.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_35, [
696
+ __props.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_35, [
712
697
  _cache[46] || (_cache[46] = createBaseVNode("label", { class: "property-label" }, "Options (comma-separated)", -1)),
713
698
  createBaseVNode("input", {
714
- value: _ctx.component.options_string,
699
+ value: __props.component.options_string,
715
700
  type: "text",
716
701
  class: "property-input",
717
702
  placeholder: "option1, option2, option3",
@@ -719,12 +704,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
719
704
  }, null, 40, _hoisted_36)
720
705
  ])) : createCommentVNode("", true)
721
706
  ])) : createCommentVNode("", true),
722
- _ctx.component.component_type === "ColumnSelector" ? (openBlock(), createElementBlock("div", _hoisted_37, [
707
+ __props.component.component_type === "ColumnSelector" ? (openBlock(), createElementBlock("div", _hoisted_37, [
723
708
  _cache[52] || (_cache[52] = createBaseVNode("div", { class: "property-group-title" }, "Column Options", -1)),
724
709
  createBaseVNode("div", _hoisted_38, [
725
710
  _cache[48] || (_cache[48] = createBaseVNode("label", { class: "property-label" }, "Required", -1)),
726
711
  createBaseVNode("input", {
727
- checked: _ctx.component.required,
712
+ checked: __props.component.required,
728
713
  type: "checkbox",
729
714
  class: "property-checkbox",
730
715
  onChange: _cache[13] || (_cache[13] = ($event) => updateField("required", $event.target.checked))
@@ -733,7 +718,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
733
718
  createBaseVNode("div", _hoisted_40, [
734
719
  _cache[49] || (_cache[49] = createBaseVNode("label", { class: "property-label" }, "Multiple Selection", -1)),
735
720
  createBaseVNode("input", {
736
- checked: _ctx.component.multiple,
721
+ checked: __props.component.multiple,
737
722
  type: "checkbox",
738
723
  class: "property-checkbox",
739
724
  onChange: _cache[14] || (_cache[14] = ($event) => updateField("multiple", $event.target.checked))
@@ -742,18 +727,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
742
727
  createBaseVNode("div", _hoisted_42, [
743
728
  _cache[51] || (_cache[51] = createBaseVNode("label", { class: "property-label" }, "Data Types Filter", -1)),
744
729
  createBaseVNode("select", {
745
- value: _ctx.component.data_types,
730
+ value: __props.component.data_types,
746
731
  class: "property-input",
747
732
  onChange: _cache[15] || (_cache[15] = ($event) => updateField("data_types", $event.target.value))
748
- }, _cache[50] || (_cache[50] = [
733
+ }, [..._cache[50] || (_cache[50] = [
749
734
  createBaseVNode("option", { value: "ALL" }, "All Types", -1),
750
735
  createBaseVNode("option", { value: "numeric" }, "Numeric", -1),
751
736
  createBaseVNode("option", { value: "string" }, "String", -1),
752
737
  createBaseVNode("option", { value: "temporal" }, "Temporal", -1)
753
- ]), 40, _hoisted_43)
738
+ ])], 40, _hoisted_43)
754
739
  ])
755
740
  ])) : createCommentVNode("", true),
756
- _ctx.component.component_type === "SliderInput" ? (openBlock(), createElementBlock("div", _hoisted_44, [
741
+ __props.component.component_type === "SliderInput" ? (openBlock(), createElementBlock("div", _hoisted_44, [
757
742
  _cache[56] || (_cache[56] = createBaseVNode("div", { class: "property-group-title" }, "Slider Options", -1)),
758
743
  createBaseVNode("div", _hoisted_45, [
759
744
  _cache[53] || (_cache[53] = createBaseVNode("label", { class: "property-label" }, [
@@ -761,7 +746,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
761
746
  createBaseVNode("span", { class: "required" }, "*")
762
747
  ], -1)),
763
748
  createBaseVNode("input", {
764
- value: _ctx.component.min_value,
749
+ value: __props.component.min_value,
765
750
  type: "number",
766
751
  class: "property-input",
767
752
  onInput: _cache[16] || (_cache[16] = ($event) => updateField("min_value", Number($event.target.value)))
@@ -773,7 +758,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
773
758
  createBaseVNode("span", { class: "required" }, "*")
774
759
  ], -1)),
775
760
  createBaseVNode("input", {
776
- value: _ctx.component.max_value,
761
+ value: __props.component.max_value,
777
762
  type: "number",
778
763
  class: "property-input",
779
764
  onInput: _cache[17] || (_cache[17] = ($event) => updateField("max_value", Number($event.target.value)))
@@ -782,14 +767,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
782
767
  createBaseVNode("div", _hoisted_49, [
783
768
  _cache[55] || (_cache[55] = createBaseVNode("label", { class: "property-label" }, "Step", -1)),
784
769
  createBaseVNode("input", {
785
- value: _ctx.component.step,
770
+ value: __props.component.step,
786
771
  type: "number",
787
772
  class: "property-input",
788
773
  onInput: _cache[18] || (_cache[18] = ($event) => updateField("step", Number($event.target.value)))
789
774
  }, null, 40, _hoisted_50)
790
775
  ])
791
776
  ])) : createCommentVNode("", true),
792
- _ctx.component.component_type === "ColumnActionInput" ? (openBlock(), createElementBlock("div", _hoisted_51, [
777
+ __props.component.component_type === "ColumnActionInput" ? (openBlock(), createElementBlock("div", _hoisted_51, [
793
778
  _cache[65] || (_cache[65] = createBaseVNode("div", { class: "property-group-title" }, "Column Action Options", -1)),
794
779
  createBaseVNode("div", _hoisted_52, [
795
780
  _cache[57] || (_cache[57] = createBaseVNode("label", { class: "property-label" }, [
@@ -797,7 +782,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
797
782
  createBaseVNode("span", { class: "required" }, "*")
798
783
  ], -1)),
799
784
  createBaseVNode("input", {
800
- value: _ctx.component.actions_string,
785
+ value: __props.component.actions_string,
801
786
  type: "text",
802
787
  class: "property-input",
803
788
  placeholder: "sum, mean, min, max",
@@ -808,7 +793,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
808
793
  createBaseVNode("div", _hoisted_54, [
809
794
  _cache[59] || (_cache[59] = createBaseVNode("label", { class: "property-label" }, "Output Name Template", -1)),
810
795
  createBaseVNode("input", {
811
- value: _ctx.component.output_name_template,
796
+ value: __props.component.output_name_template,
812
797
  type: "text",
813
798
  class: "property-input",
814
799
  placeholder: "{column}_{action}",
@@ -819,20 +804,20 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
819
804
  createBaseVNode("div", _hoisted_56, [
820
805
  _cache[62] || (_cache[62] = createBaseVNode("label", { class: "property-label" }, "Data Types Filter", -1)),
821
806
  createBaseVNode("select", {
822
- value: _ctx.component.data_types,
807
+ value: __props.component.data_types,
823
808
  class: "property-input",
824
809
  onChange: _cache[21] || (_cache[21] = ($event) => updateField("data_types", $event.target.value))
825
- }, _cache[61] || (_cache[61] = [
810
+ }, [..._cache[61] || (_cache[61] = [
826
811
  createBaseVNode("option", { value: "ALL" }, "All Types", -1),
827
812
  createBaseVNode("option", { value: "Numeric" }, "Numeric", -1),
828
813
  createBaseVNode("option", { value: "String" }, "String", -1),
829
814
  createBaseVNode("option", { value: "Date" }, "Date/Time", -1)
830
- ]), 40, _hoisted_57)
815
+ ])], 40, _hoisted_57)
831
816
  ]),
832
817
  createBaseVNode("div", _hoisted_58, [
833
818
  _cache[63] || (_cache[63] = createBaseVNode("label", { class: "property-label" }, "Show Group By", -1)),
834
819
  createBaseVNode("input", {
835
- checked: _ctx.component.show_group_by,
820
+ checked: __props.component.show_group_by,
836
821
  type: "checkbox",
837
822
  class: "property-checkbox",
838
823
  onChange: _cache[22] || (_cache[22] = ($event) => updateField("show_group_by", $event.target.checked))
@@ -841,19 +826,19 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
841
826
  createBaseVNode("div", _hoisted_60, [
842
827
  _cache[64] || (_cache[64] = createBaseVNode("label", { class: "property-label" }, "Show Order By", -1)),
843
828
  createBaseVNode("input", {
844
- checked: _ctx.component.show_order_by,
829
+ checked: __props.component.show_order_by,
845
830
  type: "checkbox",
846
831
  class: "property-checkbox",
847
832
  onChange: _cache[23] || (_cache[23] = ($event) => updateField("show_order_by", $event.target.checked))
848
833
  }, null, 40, _hoisted_61)
849
834
  ])
850
835
  ])) : createCommentVNode("", true),
851
- _ctx.component.component_type === "SecretSelector" ? (openBlock(), createElementBlock("div", _hoisted_62, [
836
+ __props.component.component_type === "SecretSelector" ? (openBlock(), createElementBlock("div", _hoisted_62, [
852
837
  _cache[70] || (_cache[70] = createBaseVNode("div", { class: "property-group-title" }, "Secret Options", -1)),
853
838
  createBaseVNode("div", _hoisted_63, [
854
839
  _cache[66] || (_cache[66] = createBaseVNode("label", { class: "property-label" }, "Required", -1)),
855
840
  createBaseVNode("input", {
856
- checked: _ctx.component.required,
841
+ checked: __props.component.required,
857
842
  type: "checkbox",
858
843
  class: "property-checkbox",
859
844
  onChange: _cache[24] || (_cache[24] = ($event) => updateField("required", $event.target.checked))
@@ -862,7 +847,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
862
847
  createBaseVNode("div", _hoisted_65, [
863
848
  _cache[67] || (_cache[67] = createBaseVNode("label", { class: "property-label" }, "Description", -1)),
864
849
  createBaseVNode("input", {
865
- value: _ctx.component.description,
850
+ value: __props.component.description,
866
851
  type: "text",
867
852
  class: "property-input",
868
853
  placeholder: "Help text for the user",
@@ -872,7 +857,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
872
857
  createBaseVNode("div", _hoisted_67, [
873
858
  _cache[68] || (_cache[68] = createBaseVNode("label", { class: "property-label" }, "Name Prefix Filter", -1)),
874
859
  createBaseVNode("input", {
875
- value: _ctx.component.name_prefix,
860
+ value: __props.component.name_prefix,
876
861
  type: "text",
877
862
  class: "property-input",
878
863
  placeholder: "e.g. API_KEY_",
@@ -885,22 +870,21 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
885
870
  createBaseVNode("button", {
886
871
  class: "action-btn",
887
872
  onClick: insertVariable
888
- }, _cache[71] || (_cache[71] = [
873
+ }, [..._cache[71] || (_cache[71] = [
889
874
  createBaseVNode("i", { class: "fa-solid fa-code" }, null, -1),
890
- createTextVNode(" Insert Variable ")
891
- ])),
875
+ createTextVNode(" Insert Variable ", -1)
876
+ ])]),
892
877
  _cache[72] || (_cache[72] = createBaseVNode("span", { class: "field-hint" }, "Add typed variable to process method", -1))
893
878
  ])
894
- ])) : (openBlock(), createElementBlock("div", _hoisted_69, _cache[73] || (_cache[73] = [
879
+ ])) : (openBlock(), createElementBlock("div", _hoisted_69, [..._cache[73] || (_cache[73] = [
895
880
  createBaseVNode("i", { class: "fa-solid fa-mouse-pointer" }, null, -1),
896
881
  createBaseVNode("p", null, "Select a component to edit its properties", -1)
897
- ])))
882
+ ])]))
898
883
  ])
899
884
  ]);
900
885
  };
901
886
  }
902
887
  });
903
- const PropertyEditor_vue_vue_type_style_index_0_scoped_30942683_lang = "";
904
888
  const PropertyEditor = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-30942683"]]);
905
889
  const _hoisted_1$7 = { class: "modal-header" };
906
890
  const _hoisted_2$7 = { class: "modal-actions" };
@@ -913,7 +897,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
913
897
  setup(__props, { emit: __emit }) {
914
898
  const emit = __emit;
915
899
  return (_ctx, _cache) => {
916
- return _ctx.show ? (openBlock(), createElementBlock("div", {
900
+ return __props.show ? (openBlock(), createElementBlock("div", {
917
901
  key: 0,
918
902
  class: "modal-overlay",
919
903
  onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
@@ -931,9 +915,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
931
915
  createBaseVNode("button", {
932
916
  class: "modal-close",
933
917
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
934
- }, _cache[4] || (_cache[4] = [
918
+ }, [..._cache[4] || (_cache[4] = [
935
919
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
936
- ]))
920
+ ])])
937
921
  ]),
938
922
  _cache[6] || (_cache[6] = createStaticVNode('<div class="modal-content" data-v-3a89a078><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Overview</h4><p data-v-3a89a078> The process method is where you write your data transformation logic. It receives input LazyFrames from connected nodes and returns a transformed LazyFrame. </p></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Method Signature</h4><pre class="help-code" data-v-3a89a078><code data-v-3a89a078>def process(self, *inputs: pl.LazyFrame) -&gt; pl.LazyFrame:</code></pre><ul class="help-list" data-v-3a89a078><li data-v-3a89a078><code data-v-3a89a078>inputs</code> - Tuple of input LazyFrames from connected nodes</li><li data-v-3a89a078><code data-v-3a89a078>inputs[0]</code> - First input (most common)</li><li data-v-3a89a078><code data-v-3a89a078>inputs[1]</code> - Second input (for joins, etc.)</li></ul></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Accessing Settings</h4><p data-v-3a89a078>Access user-configured values from your UI components:</p><pre class="help-code" data-v-3a89a078><code data-v-3a89a078>self.settings_schema.section_name.component_name.value</code></pre><p class="help-note" data-v-3a89a078><i class="fa-solid fa-lightbulb" data-v-3a89a078></i> Use autocomplete by typing <code data-v-3a89a078>self.</code> to navigate the settings schema. </p></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Working with Secrets</h4><p data-v-3a89a078>For SecretSelector components, access the decrypted value:</p><pre class="help-code" data-v-3a89a078><code data-v-3a89a078># Get the SecretStr object\nsecret = self.settings_schema.section.api_key.secret_value\n\n# Get the actual decrypted string value\napi_key = secret.get_secret_value()</code></pre></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Common Patterns</h4><div class="pattern-grid" data-v-3a89a078><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Filter Rows</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.filter(pl.col(&quot;column&quot;) &gt; 10)</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Select Columns</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.select([&quot;col1&quot;, &quot;col2&quot;])</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Add New Column</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.with_columns(\n pl.col(&quot;a&quot;).alias(&quot;new_col&quot;)\n)</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Group &amp; Aggregate</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.group_by(&quot;category&quot;).agg(\n pl.col(&quot;value&quot;).sum()\n)</code></pre></div></div></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Using Settings in Code</h4><pre class="help-code" data-v-3a89a078><code data-v-3a89a078># Example: Using a TextInput value\ncolumn_name = self.settings_schema.options.column_name.value\nlf = inputs[0]\nreturn lf.select(pl.col(column_name))\n\n# Example: Using a ColumnSelector value\nselected_columns = self.settings_schema.columns.selected.value\nreturn lf.select(selected_columns)</code></pre></div></div>', 1)),
939
923
  createBaseVNode("div", _hoisted_2$7, [
@@ -947,7 +931,6 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
947
931
  };
948
932
  }
949
933
  });
950
- const ProcessCodeHelpModal_vue_vue_type_style_index_0_scoped_3a89a078_lang = "";
951
934
  const ProcessCodeHelpModal = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-3a89a078"]]);
952
935
  const _hoisted_1$6 = { class: "code-editor-section" };
953
936
  const _hoisted_2$6 = { class: "code-editor-header" };
@@ -970,10 +953,10 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
970
953
  class: "help-btn",
971
954
  title: "Show help",
972
955
  onClick: _cache[0] || (_cache[0] = ($event) => showHelp.value = true)
973
- }, _cache[3] || (_cache[3] = [
956
+ }, [..._cache[3] || (_cache[3] = [
974
957
  createBaseVNode("i", { class: "fa-solid fa-circle-question" }, null, -1),
975
958
  createBaseVNode("span", null, "Help", -1)
976
- ]))
959
+ ])])
977
960
  ]),
978
961
  _cache[5] || (_cache[5] = createBaseVNode("p", { class: "code-hint" }, [
979
962
  createTextVNode(" Write your data transformation logic. Access settings via "),
@@ -981,13 +964,13 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
981
964
  ], -1)),
982
965
  createBaseVNode("div", _hoisted_3$6, [
983
966
  createVNode(unref(T), {
984
- "model-value": _ctx.modelValue,
967
+ "model-value": __props.modelValue,
985
968
  placeholder: "# Write your process logic here...",
986
969
  style: { height: "300px" },
987
970
  autofocus: false,
988
971
  "indent-with-tab": false,
989
972
  "tab-size": 4,
990
- extensions: _ctx.extensions,
973
+ extensions: __props.extensions,
991
974
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => emit("update:modelValue", $event))
992
975
  }, null, 8, ["model-value", "extensions"])
993
976
  ]),
@@ -999,7 +982,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
999
982
  };
1000
983
  }
1001
984
  });
1002
- const ProcessCodeEditor_vue_vue_type_style_index_0_scoped_7bd9927f_lang = "";
1003
985
  const ProcessCodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-7bd9927f"]]);
1004
986
  const _hoisted_1$5 = { class: "modal-header" };
1005
987
  const _hoisted_2$5 = { class: "modal-content" };
@@ -1019,7 +1001,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1019
1001
  alert("Code copied to clipboard!");
1020
1002
  }
1021
1003
  return (_ctx, _cache) => {
1022
- return _ctx.show ? (openBlock(), createElementBlock("div", {
1004
+ return __props.show ? (openBlock(), createElementBlock("div", {
1023
1005
  key: 0,
1024
1006
  class: "modal-overlay",
1025
1007
  onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
@@ -1034,14 +1016,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1034
1016
  createBaseVNode("button", {
1035
1017
  class: "modal-close",
1036
1018
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
1037
- }, _cache[4] || (_cache[4] = [
1019
+ }, [..._cache[4] || (_cache[4] = [
1038
1020
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1039
- ]))
1021
+ ])])
1040
1022
  ]),
1041
1023
  createBaseVNode("div", _hoisted_2$5, [
1042
1024
  createBaseVNode("div", _hoisted_3$5, [
1043
1025
  createBaseVNode("pre", null, [
1044
- createBaseVNode("code", null, toDisplayString(_ctx.code), 1)
1026
+ createBaseVNode("code", null, toDisplayString(__props.code), 1)
1045
1027
  ])
1046
1028
  ])
1047
1029
  ]),
@@ -1049,10 +1031,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1049
1031
  createBaseVNode("button", {
1050
1032
  class: "btn btn-secondary",
1051
1033
  onClick: copyCode
1052
- }, _cache[6] || (_cache[6] = [
1034
+ }, [..._cache[6] || (_cache[6] = [
1053
1035
  createBaseVNode("i", { class: "fa-solid fa-copy" }, null, -1),
1054
- createTextVNode(" Copy Code ")
1055
- ])),
1036
+ createTextVNode(" Copy Code ", -1)
1037
+ ])]),
1056
1038
  createBaseVNode("button", {
1057
1039
  class: "btn btn-primary",
1058
1040
  onClick: _cache[1] || (_cache[1] = ($event) => emit("close"))
@@ -1063,7 +1045,6 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1063
1045
  };
1064
1046
  }
1065
1047
  });
1066
- const CodePreviewModal_vue_vue_type_style_index_0_scoped_f74c8de3_lang = "";
1067
1048
  const CodePreviewModal = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-f74c8de3"]]);
1068
1049
  const _hoisted_1$4 = { class: "modal-header modal-header-error" };
1069
1050
  const _hoisted_2$4 = { class: "modal-content" };
@@ -1079,7 +1060,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1079
1060
  setup(__props, { emit: __emit }) {
1080
1061
  const emit = __emit;
1081
1062
  return (_ctx, _cache) => {
1082
- return _ctx.show ? (openBlock(), createElementBlock("div", {
1063
+ return __props.show ? (openBlock(), createElementBlock("div", {
1083
1064
  key: 0,
1084
1065
  class: "modal-overlay",
1085
1066
  onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
@@ -1097,14 +1078,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1097
1078
  createBaseVNode("button", {
1098
1079
  class: "modal-close",
1099
1080
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
1100
- }, _cache[4] || (_cache[4] = [
1081
+ }, [..._cache[4] || (_cache[4] = [
1101
1082
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1102
- ]))
1083
+ ])])
1103
1084
  ]),
1104
1085
  createBaseVNode("div", _hoisted_2$4, [
1105
1086
  _cache[7] || (_cache[7] = createBaseVNode("p", { class: "validation-intro" }, "Please fix the following issues before saving:", -1)),
1106
1087
  createBaseVNode("ul", _hoisted_3$4, [
1107
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.errors, (error, index) => {
1088
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.errors, (error, index) => {
1108
1089
  return openBlock(), createElementBlock("li", {
1109
1090
  key: index,
1110
1091
  class: "validation-error-item"
@@ -1126,7 +1107,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1126
1107
  };
1127
1108
  }
1128
1109
  });
1129
- const ValidationModal_vue_vue_type_style_index_0_scoped_bf9df753_lang = "";
1130
1110
  const ValidationModal = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bf9df753"]]);
1131
1111
  const _hoisted_1$3 = { class: "modal-header" };
1132
1112
  const _hoisted_2$3 = { class: "modal-title" };
@@ -1175,7 +1155,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1175
1155
  const emit = __emit;
1176
1156
  return (_ctx, _cache) => {
1177
1157
  return openBlock(), createElementBlock(Fragment, null, [
1178
- _ctx.show ? (openBlock(), createElementBlock("div", {
1158
+ __props.show ? (openBlock(), createElementBlock("div", {
1179
1159
  key: 0,
1180
1160
  class: "modal-overlay",
1181
1161
  onClick: _cache[5] || (_cache[5] = ($event) => emit("close"))
@@ -1188,35 +1168,35 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1188
1168
  createBaseVNode("div", _hoisted_1$3, [
1189
1169
  createBaseVNode("h3", _hoisted_2$3, [
1190
1170
  _cache[11] || (_cache[11] = createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1)),
1191
- createTextVNode(" " + toDisplayString(_ctx.viewingNodeCode ? _ctx.viewingNodeName : "Browse Custom Nodes"), 1)
1171
+ createTextVNode(" " + toDisplayString(__props.viewingNodeCode ? __props.viewingNodeName : "Browse Custom Nodes"), 1)
1192
1172
  ]),
1193
1173
  createBaseVNode("button", {
1194
1174
  class: "modal-close",
1195
1175
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
1196
- }, _cache[12] || (_cache[12] = [
1176
+ }, [..._cache[12] || (_cache[12] = [
1197
1177
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1198
- ]))
1178
+ ])])
1199
1179
  ]),
1200
1180
  createBaseVNode("div", _hoisted_3$3, [
1201
- _ctx.viewingNodeCode ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
1181
+ __props.viewingNodeCode ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
1202
1182
  createVNode(unref(T), {
1203
- "model-value": _ctx.viewingNodeCode,
1183
+ "model-value": __props.viewingNodeCode,
1204
1184
  style: { height: "auto", maxHeight: "calc(80vh - 180px)" },
1205
1185
  autofocus: false,
1206
1186
  "indent-with-tab": false,
1207
1187
  "tab-size": 4,
1208
- extensions: _ctx.readOnlyExtensions
1188
+ extensions: __props.readOnlyExtensions
1209
1189
  }, null, 8, ["model-value", "extensions"])
1210
1190
  ])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1211
- _ctx.loading ? (openBlock(), createElementBlock("div", _hoisted_5$3, _cache[13] || (_cache[13] = [
1191
+ __props.loading ? (openBlock(), createElementBlock("div", _hoisted_5$3, [..._cache[13] || (_cache[13] = [
1212
1192
  createBaseVNode("i", { class: "fa-solid fa-spinner fa-spin" }, null, -1),
1213
- createTextVNode(" Loading custom nodes... ")
1214
- ]))) : _ctx.nodes.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_6$3, _cache[14] || (_cache[14] = [
1193
+ createTextVNode(" Loading custom nodes... ", -1)
1194
+ ])])) : __props.nodes.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_6$3, [..._cache[14] || (_cache[14] = [
1215
1195
  createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1),
1216
1196
  createBaseVNode("p", null, "No custom nodes found", -1),
1217
1197
  createBaseVNode("p", { class: "empty-hint" }, "Save a node to see it here", -1)
1218
- ]))) : (openBlock(), createElementBlock("div", _hoisted_7$3, [
1219
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.nodes, (node) => {
1198
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_7$3, [
1199
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.nodes, (node) => {
1220
1200
  return openBlock(), createElementBlock("div", {
1221
1201
  key: node.file_name,
1222
1202
  class: "node-card",
@@ -1239,30 +1219,30 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1239
1219
  ], 64))
1240
1220
  ]),
1241
1221
  createBaseVNode("div", _hoisted_16$2, [
1242
- _ctx.viewingNodeCode ? (openBlock(), createElementBlock("button", {
1222
+ __props.viewingNodeCode ? (openBlock(), createElementBlock("button", {
1243
1223
  key: 0,
1244
1224
  class: "btn btn-secondary",
1245
1225
  onClick: _cache[1] || (_cache[1] = ($event) => emit("back"))
1246
- }, _cache[16] || (_cache[16] = [
1226
+ }, [..._cache[16] || (_cache[16] = [
1247
1227
  createBaseVNode("i", { class: "fa-solid fa-arrow-left" }, null, -1),
1248
- createTextVNode(" Back ")
1249
- ]))) : createCommentVNode("", true),
1250
- _ctx.viewingNodeCode ? (openBlock(), createElementBlock("button", {
1228
+ createTextVNode(" Back ", -1)
1229
+ ])])) : createCommentVNode("", true),
1230
+ __props.viewingNodeCode ? (openBlock(), createElementBlock("button", {
1251
1231
  key: 1,
1252
1232
  class: "btn btn-danger",
1253
1233
  onClick: _cache[2] || (_cache[2] = ($event) => emit("confirmDelete"))
1254
- }, _cache[17] || (_cache[17] = [
1234
+ }, [..._cache[17] || (_cache[17] = [
1255
1235
  createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1),
1256
- createTextVNode(" Delete ")
1257
- ]))) : createCommentVNode("", true),
1236
+ createTextVNode(" Delete ", -1)
1237
+ ])])) : createCommentVNode("", true),
1258
1238
  createBaseVNode("button", {
1259
1239
  class: "btn btn-secondary",
1260
1240
  onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
1261
- }, toDisplayString(_ctx.viewingNodeCode ? "Close" : "Cancel"), 1)
1241
+ }, toDisplayString(__props.viewingNodeCode ? "Close" : "Cancel"), 1)
1262
1242
  ])
1263
1243
  ])
1264
1244
  ])) : createCommentVNode("", true),
1265
- _ctx.showDeleteConfirm ? (openBlock(), createElementBlock("div", {
1245
+ __props.showDeleteConfirm ? (openBlock(), createElementBlock("div", {
1266
1246
  key: 1,
1267
1247
  class: "modal-overlay",
1268
1248
  onClick: _cache[10] || (_cache[10] = ($event) => emit("cancelDelete"))
@@ -1280,15 +1260,15 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1280
1260
  createBaseVNode("button", {
1281
1261
  class: "modal-close",
1282
1262
  onClick: _cache[6] || (_cache[6] = ($event) => emit("cancelDelete"))
1283
- }, _cache[18] || (_cache[18] = [
1263
+ }, [..._cache[18] || (_cache[18] = [
1284
1264
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1285
- ]))
1265
+ ])])
1286
1266
  ]),
1287
1267
  createBaseVNode("div", _hoisted_18$1, [
1288
1268
  createBaseVNode("p", null, [
1289
- _cache[20] || (_cache[20] = createTextVNode(" Are you sure you want to delete ")),
1290
- createBaseVNode("strong", null, toDisplayString(_ctx.viewingNodeName), 1),
1291
- _cache[21] || (_cache[21] = createTextVNode("? "))
1269
+ _cache[20] || (_cache[20] = createTextVNode(" Are you sure you want to delete ", -1)),
1270
+ createBaseVNode("strong", null, toDisplayString(__props.viewingNodeName), 1),
1271
+ _cache[21] || (_cache[21] = createTextVNode("? ", -1))
1292
1272
  ]),
1293
1273
  _cache[22] || (_cache[22] = createBaseVNode("p", { class: "delete-warning" }, "This action cannot be undone.", -1))
1294
1274
  ]),
@@ -1300,10 +1280,10 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1300
1280
  createBaseVNode("button", {
1301
1281
  class: "btn btn-danger",
1302
1282
  onClick: _cache[8] || (_cache[8] = ($event) => emit("delete"))
1303
- }, _cache[23] || (_cache[23] = [
1283
+ }, [..._cache[23] || (_cache[23] = [
1304
1284
  createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1),
1305
- createTextVNode(" Delete ")
1306
- ]))
1285
+ createTextVNode(" Delete ", -1)
1286
+ ])])
1307
1287
  ])
1308
1288
  ])
1309
1289
  ])) : createCommentVNode("", true)
@@ -1311,7 +1291,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1311
1291
  };
1312
1292
  }
1313
1293
  });
1314
- const NodeBrowserModal_vue_vue_type_style_index_0_scoped_fca09e8f_lang = "";
1315
1294
  const NodeBrowserModal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-fca09e8f"]]);
1316
1295
  const _hoisted_1$2 = { class: "modal-header" };
1317
1296
  const _hoisted_2$2 = { class: "modal-content" };
@@ -1356,7 +1335,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1356
1335
  { id: "tips", label: "Tips", icon: "fa-solid fa-lightbulb" }
1357
1336
  ];
1358
1337
  return (_ctx, _cache) => {
1359
- return _ctx.show ? (openBlock(), createElementBlock("div", {
1338
+ return __props.show ? (openBlock(), createElementBlock("div", {
1360
1339
  key: 0,
1361
1340
  class: "modal-overlay",
1362
1341
  onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
@@ -1374,9 +1353,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1374
1353
  createBaseVNode("button", {
1375
1354
  class: "modal-close",
1376
1355
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
1377
- }, _cache[4] || (_cache[4] = [
1356
+ }, [..._cache[4] || (_cache[4] = [
1378
1357
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1379
- ]))
1358
+ ])])
1380
1359
  ]),
1381
1360
  createBaseVNode("div", _hoisted_2$2, [
1382
1361
  createBaseVNode("div", _hoisted_3$2, [
@@ -1394,21 +1373,21 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1394
1373
  }), 64))
1395
1374
  ]),
1396
1375
  createBaseVNode("div", _hoisted_5$2, [
1397
- activeTab.value === "overview" ? (openBlock(), createElementBlock("div", _hoisted_6$2, _cache[6] || (_cache[6] = [
1376
+ activeTab.value === "overview" ? (openBlock(), createElementBlock("div", _hoisted_6$2, [..._cache[6] || (_cache[6] = [
1398
1377
  createStaticVNode('<h4 data-v-865a257f>What is the Node Designer?</h4><p data-v-865a257f> The Node Designer allows you to create custom data transformation nodes without writing boilerplate code. Design your node&#39;s UI visually, then write only the transformation logic. </p><div class="feature-grid" data-v-865a257f><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-palette" data-v-865a257f></i></div><h5 data-v-865a257f>Visual UI Design</h5><p data-v-865a257f>Drag and drop components to create your node&#39;s settings interface</p></div><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-code" data-v-865a257f></i></div><h5 data-v-865a257f>Python Processing</h5><p data-v-865a257f>Write Polars transformation code with full autocomplete support</p></div><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-plug" data-v-865a257f></i></div><h5 data-v-865a257f>Instant Integration</h5><p data-v-865a257f>Your custom nodes appear immediately in the flow editor</p></div></div><h4 data-v-865a257f>Quick Start</h4><ol class="steps-list" data-v-865a257f><li data-v-865a257f><strong data-v-865a257f>Set metadata</strong> - Name your node and choose a category</li><li data-v-865a257f><strong data-v-865a257f>Add sections</strong> - Create UI sections to organize your settings</li><li data-v-865a257f><strong data-v-865a257f>Add components</strong> - Drag components from the palette into sections </li><li data-v-865a257f><strong data-v-865a257f>Configure properties</strong> - Select a component to edit its properties </li><li data-v-865a257f><strong data-v-865a257f>Write process code</strong> - Implement your transformation logic</li><li data-v-865a257f><strong data-v-865a257f>Save</strong> - Your node is ready to use!</li></ol>', 5)
1399
- ]))) : createCommentVNode("", true),
1400
- activeTab.value === "layout" ? (openBlock(), createElementBlock("div", _hoisted_7$2, _cache[7] || (_cache[7] = [
1378
+ ])])) : createCommentVNode("", true),
1379
+ activeTab.value === "layout" ? (openBlock(), createElementBlock("div", _hoisted_7$2, [..._cache[7] || (_cache[7] = [
1401
1380
  createStaticVNode('<h4 data-v-865a257f>Page Layout</h4><div class="layout-diagram" data-v-865a257f><div class="layout-box palette" data-v-865a257f><span class="layout-label" data-v-865a257f>Component Palette</span><p data-v-865a257f>Drag components from here</p></div><div class="layout-box canvas" data-v-865a257f><span class="layout-label" data-v-865a257f>Design Canvas</span><p data-v-865a257f>Build your node UI here</p></div><div class="layout-box properties" data-v-865a257f><span class="layout-label" data-v-865a257f>Properties</span><p data-v-865a257f>Edit selected component</p></div></div><h4 data-v-865a257f>Component Palette (Left)</h4><p data-v-865a257f> Contains all available UI components. Drag them into a section on the Design Canvas to add them to your node. </p><h4 data-v-865a257f>Design Canvas (Center)</h4><ul class="help-list" data-v-865a257f><li data-v-865a257f><strong data-v-865a257f>Node Metadata</strong> - Set your node&#39;s name, category, title, description, and number of inputs/outputs </li><li data-v-865a257f><strong data-v-865a257f>UI Sections</strong> - Organize your components into collapsible sections </li><li data-v-865a257f><strong data-v-865a257f>Process Method</strong> - Write your Python transformation code</li></ul><h4 data-v-865a257f>Property Editor (Right)</h4><p data-v-865a257f> When you select a component, its properties appear here. Configure labels, defaults, validation rules, and more. </p>', 8)
1402
- ]))) : createCommentVNode("", true),
1403
- activeTab.value === "components" ? (openBlock(), createElementBlock("div", _hoisted_8$2, _cache[8] || (_cache[8] = [
1381
+ ])])) : createCommentVNode("", true),
1382
+ activeTab.value === "components" ? (openBlock(), createElementBlock("div", _hoisted_8$2, [..._cache[8] || (_cache[8] = [
1404
1383
  createStaticVNode('<h4 data-v-865a257f>Available Components</h4><div class="component-list" data-v-865a257f><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-font" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Text Input</h5><p data-v-865a257f>Single-line text entry for strings, names, or patterns</p><code data-v-865a257f>value: str</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-hashtag" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Numeric Input</h5><p data-v-865a257f>Number entry with optional min/max validation</p><code data-v-865a257f>value: int | float</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-toggle-on" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Toggle Switch</h5><p data-v-865a257f>Boolean on/off switch for feature flags</p><code data-v-865a257f>value: bool</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-list" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Single Select</h5><p data-v-865a257f>Dropdown to select one option from a list</p><code data-v-865a257f>value: str</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-list-check" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Multi Select</h5><p data-v-865a257f>Select multiple options from a list</p><code data-v-865a257f>value: list[str]</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-table-columns" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Column Selector</h5><p data-v-865a257f>Select columns from input data (single or multiple)</p><code data-v-865a257f>value: str | list[str]</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-sliders" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Slider</h5><p data-v-865a257f>Numeric slider with min/max/step</p><code data-v-865a257f>value: int | float</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-key" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Secret Selector</h5><p data-v-865a257f>Securely access stored secrets (API keys, passwords)</p><code data-v-865a257f>secret_value: SecretStr</code></div></div></div>', 2)
1405
- ]))) : createCommentVNode("", true),
1406
- activeTab.value === "code" ? (openBlock(), createElementBlock("div", _hoisted_9$2, _cache[9] || (_cache[9] = [
1384
+ ])])) : createCommentVNode("", true),
1385
+ activeTab.value === "code" ? (openBlock(), createElementBlock("div", _hoisted_9$2, [..._cache[9] || (_cache[9] = [
1407
1386
  createStaticVNode('<h4 data-v-865a257f>Process Method</h4><p data-v-865a257f>The process method receives input data and returns transformed output:</p><pre class="help-code" data-v-865a257f><code data-v-865a257f>def process(self, *inputs: pl.LazyFrame) -&gt; pl.LazyFrame:\n lf = inputs[0] # First input\n # Your transformation logic here\n return lf</code></pre><h4 data-v-865a257f>Accessing Settings</h4><p data-v-865a257f>Access user-configured values from your UI components:</p><pre class="help-code" data-v-865a257f><code data-v-865a257f># Pattern: self.settings_schema.section_name.component_name.value\ncolumn = self.settings_schema.options.column_name.value\nthreshold = self.settings_schema.filters.min_value.value</code></pre><h4 data-v-865a257f>Working with Secrets</h4><pre class="help-code" data-v-865a257f><code data-v-865a257f># Get SecretStr, then extract the actual value\napi_key: SecretStr = self.settings_schema.auth.api_key.secret_value\nactual_key = api_key.get_secret_value()</code></pre><h4 data-v-865a257f>Keyboard Shortcuts</h4><div class="shortcuts-grid" data-v-865a257f><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Tab</kbd><span data-v-865a257f>Accept autocomplete / Indent</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Tab</kbd><span data-v-865a257f>Outdent selected lines</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Arrow Up/Down</kbd><span data-v-865a257f>Navigate autocomplete suggestions</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Escape</kbd><span data-v-865a257f>Close autocomplete menu</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Arrow</kbd><span data-v-865a257f>Extend selection</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Ctrl</kbd>+<kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Arrow</kbd><span data-v-865a257f>Select by word</span></div></div>', 10)
1408
- ]))) : createCommentVNode("", true),
1409
- activeTab.value === "tips" ? (openBlock(), createElementBlock("div", _hoisted_10$2, _cache[10] || (_cache[10] = [
1387
+ ])])) : createCommentVNode("", true),
1388
+ activeTab.value === "tips" ? (openBlock(), createElementBlock("div", _hoisted_10$2, [..._cache[10] || (_cache[10] = [
1410
1389
  createStaticVNode('<h4 data-v-865a257f>Best Practices</h4><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use descriptive names</h5><p data-v-865a257f> Choose clear variable names in sections (e.g., &quot;filters&quot;, &quot;options&quot;) and components (e.g., &quot;column_name&quot;, &quot;threshold&quot;) </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Group related settings</h5><p data-v-865a257f> Use sections to organize related components together. This creates a better user experience. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use Column Selector for dynamic columns</h5><p data-v-865a257f> Instead of hardcoding column names, use ColumnSelector to let users pick columns from their data. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon warning" data-v-865a257f><i class="fa-solid fa-exclamation" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Keep process code simple</h5><p data-v-865a257f> Focus on transformation logic. Complex operations should be broken into multiple nodes. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon warning" data-v-865a257f><i class="fa-solid fa-exclamation" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use secrets for sensitive data</h5><p data-v-865a257f> Never hardcode API keys or passwords. Use the Secret Selector component for secure credential access. </p></div></div><h4 data-v-865a257f>Common Patterns</h4><pre class="help-code" data-v-865a257f><code data-v-865a257f># Filter rows\nreturn lf.filter(pl.col(column) &gt; threshold)\n\n# Select and rename\nreturn lf.select([\n pl.col(old_name).alias(new_name)\n])\n\n# Add computed column\nreturn lf.with_columns(\n (pl.col(&quot;a&quot;) + pl.col(&quot;b&quot;)).alias(&quot;sum&quot;)\n)\n\n# Group and aggregate\nreturn lf.group_by(group_col).agg(\n pl.col(value_col).sum().alias(&quot;total&quot;)\n)</code></pre>', 8)
1411
- ]))) : createCommentVNode("", true)
1390
+ ])])) : createCommentVNode("", true)
1412
1391
  ])
1413
1392
  ]),
1414
1393
  createBaseVNode("div", _hoisted_11$2, [
@@ -1422,7 +1401,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1422
1401
  };
1423
1402
  }
1424
1403
  });
1425
- const NodeDesignerHelpModal_vue_vue_type_style_index_0_scoped_865a257f_lang = "";
1426
1404
  const NodeDesignerHelpModal = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-865a257f"]]);
1427
1405
  const _hoisted_1$1 = { class: "icon-selector" };
1428
1406
  const _hoisted_2$1 = { class: "icon-selector-content" };
@@ -1483,8 +1461,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1483
1461
  var _a, _b, _c;
1484
1462
  const target = event.target;
1485
1463
  const file = (_a = target.files) == null ? void 0 : _a[0];
1486
- if (!file)
1487
- return;
1464
+ if (!file) return;
1488
1465
  const formData = new FormData();
1489
1466
  formData.append("file", file);
1490
1467
  try {
@@ -1503,8 +1480,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1503
1480
  }
1504
1481
  async function deleteIcon(iconName) {
1505
1482
  var _a, _b;
1506
- if (!confirm(`Are you sure you want to delete "${iconName}"?`))
1507
- return;
1483
+ if (!confirm(`Are you sure you want to delete "${iconName}"?`)) return;
1508
1484
  try {
1509
1485
  await axios.delete(`/user_defined_components/delete-icon/${iconName}`);
1510
1486
  if (props.modelValue === iconName) {
@@ -1523,7 +1499,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1523
1499
  return getCustomIconUrl(iconName);
1524
1500
  }
1525
1501
  function getBuiltinIconUrl(iconName) {
1526
- return new URL((/* @__PURE__ */ Object.assign({ "../../features/designer/assets/icons/Output2.png": __vite_glob_0_0, "../../features/designer/assets/icons/airbyte.png": __vite_glob_0_1, "../../features/designer/assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "../../features/designer/assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "../../features/designer/assets/icons/cross_join.png": __vite_glob_0_4, "../../features/designer/assets/icons/database_reader.svg": __vite_glob_0_5, "../../features/designer/assets/icons/database_writer.svg": __vite_glob_0_6, "../../features/designer/assets/icons/explore_data.png": __vite_glob_0_7, "../../features/designer/assets/icons/external_source.png": __vite_glob_0_8, "../../features/designer/assets/icons/filter.png": __vite_glob_0_9, "../../features/designer/assets/icons/formula.png": __vite_glob_0_10, "../../features/designer/assets/icons/fuzzy_match.png": __vite_glob_0_11, "../../features/designer/assets/icons/google_sheet.png": __vite_glob_0_12, "../../features/designer/assets/icons/graph_solver.png": __vite_glob_0_13, "../../features/designer/assets/icons/group_by.png": __vite_glob_0_14, "../../features/designer/assets/icons/input_data.png": __vite_glob_0_15, "../../features/designer/assets/icons/join.png": __vite_glob_0_16, "../../features/designer/assets/icons/manual_input.png": __vite_glob_0_17, "../../features/designer/assets/icons/old_join.png": __vite_glob_0_18, "../../features/designer/assets/icons/output.png": __vite_glob_0_19, "../../features/designer/assets/icons/pivot.png": __vite_glob_0_20, "../../features/designer/assets/icons/polars_code.png": __vite_glob_0_21, "../../features/designer/assets/icons/record_count.png": __vite_glob_0_22, "../../features/designer/assets/icons/record_id.png": __vite_glob_0_23, "../../features/designer/assets/icons/sample.png": __vite_glob_0_24, "../../features/designer/assets/icons/select.png": __vite_glob_0_25, "../../features/designer/assets/icons/sort.png": __vite_glob_0_26, "../../features/designer/assets/icons/summarize.png": __vite_glob_0_27, "../../features/designer/assets/icons/text_to_rows.png": __vite_glob_0_28, "../../features/designer/assets/icons/union.png": __vite_glob_0_29, "../../features/designer/assets/icons/unique.png": __vite_glob_0_30, "../../features/designer/assets/icons/unpivot.png": __vite_glob_0_31, "../../features/designer/assets/icons/user-defined-icon.png": __vite_glob_0_32, "../../features/designer/assets/icons/view.png": __vite_glob_0_33 }))[`../../features/designer/assets/icons/${iconName}`], self.location).href;
1502
+ return new URL((/* @__PURE__ */ Object.assign({ "../../features/designer/assets/icons/Output2.png": __vite_glob_0_0, "../../features/designer/assets/icons/airbyte.png": __vite_glob_0_1, "../../features/designer/assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "../../features/designer/assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "../../features/designer/assets/icons/cross_join.png": __vite_glob_0_4, "../../features/designer/assets/icons/database_reader.svg": __vite_glob_0_5, "../../features/designer/assets/icons/database_writer.svg": __vite_glob_0_6, "../../features/designer/assets/icons/explore_data.png": __vite_glob_0_7, "../../features/designer/assets/icons/external_source.png": __vite_glob_0_8, "../../features/designer/assets/icons/filter.png": __vite_glob_0_9, "../../features/designer/assets/icons/formula.png": __vite_glob_0_10, "../../features/designer/assets/icons/fuzzy_match.png": __vite_glob_0_11, "../../features/designer/assets/icons/google_sheet.png": __vite_glob_0_12, "../../features/designer/assets/icons/graph_solver.png": __vite_glob_0_13, "../../features/designer/assets/icons/group_by.png": __vite_glob_0_14, "../../features/designer/assets/icons/input_data.png": __vite_glob_0_15, "../../features/designer/assets/icons/join.png": __vite_glob_0_16, "../../features/designer/assets/icons/manual_input.png": __vite_glob_0_17, "../../features/designer/assets/icons/old_join.png": __vite_glob_0_18, "../../features/designer/assets/icons/output.png": __vite_glob_0_19, "../../features/designer/assets/icons/pivot.png": __vite_glob_0_20, "../../features/designer/assets/icons/polars_code.png": __vite_glob_0_21, "../../features/designer/assets/icons/record_count.png": __vite_glob_0_22, "../../features/designer/assets/icons/record_id.png": __vite_glob_0_23, "../../features/designer/assets/icons/sample.png": __vite_glob_0_24, "../../features/designer/assets/icons/select.png": __vite_glob_0_25, "../../features/designer/assets/icons/sort.png": __vite_glob_0_26, "../../features/designer/assets/icons/summarize.png": __vite_glob_0_27, "../../features/designer/assets/icons/text_to_rows.png": __vite_glob_0_28, "../../features/designer/assets/icons/union.png": __vite_glob_0_29, "../../features/designer/assets/icons/unique.png": __vite_glob_0_30, "../../features/designer/assets/icons/unpivot.png": __vite_glob_0_31, "../../features/designer/assets/icons/user-defined-icon.png": __vite_glob_0_32, "../../features/designer/assets/icons/view.png": __vite_glob_0_33 }))[`../../features/designer/assets/icons/${iconName}`], import.meta.url).href;
1527
1503
  }
1528
1504
  function handleImageError(event) {
1529
1505
  const img = event.target;
@@ -1541,19 +1517,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1541
1517
  onClick: toggleDropdown
1542
1518
  }, [
1543
1519
  createBaseVNode("img", {
1544
- src: getDisplayUrl(_ctx.modelValue),
1545
- alt: _ctx.modelValue,
1520
+ src: getDisplayUrl(__props.modelValue),
1521
+ alt: __props.modelValue,
1546
1522
  class: "icon-preview",
1547
1523
  onError: handleImageError
1548
1524
  }, null, 40, _hoisted_3$1),
1549
- createBaseVNode("span", _hoisted_4$1, toDisplayString(_ctx.modelValue || "Select icon..."), 1),
1525
+ createBaseVNode("span", _hoisted_4$1, toDisplayString(__props.modelValue || "Select icon..."), 1),
1550
1526
  _cache[2] || (_cache[2] = createBaseVNode("i", { class: "fa-solid fa-chevron-down dropdown-arrow" }, null, -1))
1551
1527
  ]),
1552
1528
  showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
1553
1529
  createBaseVNode("div", _hoisted_6$1, [
1554
1530
  createBaseVNode("label", _hoisted_7$1, [
1555
1531
  _cache[3] || (_cache[3] = createBaseVNode("i", { class: "fa-solid fa-upload" }, null, -1)),
1556
- _cache[4] || (_cache[4] = createTextVNode(" Upload Icon ")),
1532
+ _cache[4] || (_cache[4] = createTextVNode(" Upload Icon ", -1)),
1557
1533
  createBaseVNode("input", {
1558
1534
  type: "file",
1559
1535
  accept: ".png,.jpg,.jpeg,.svg,.gif,.webp",
@@ -1568,7 +1544,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1568
1544
  (openBlock(true), createElementBlock(Fragment, null, renderList(customIcons.value, (icon) => {
1569
1545
  return openBlock(), createElementBlock("div", {
1570
1546
  key: icon.file_name,
1571
- class: normalizeClass(["icon-option", { selected: _ctx.modelValue === icon.file_name }]),
1547
+ class: normalizeClass(["icon-option", { selected: __props.modelValue === icon.file_name }]),
1572
1548
  onClick: ($event) => selectIcon(icon.file_name)
1573
1549
  }, [
1574
1550
  createBaseVNode("img", {
@@ -1582,9 +1558,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1582
1558
  class: "delete-icon-btn",
1583
1559
  title: "Delete icon",
1584
1560
  onClick: withModifiers(($event) => deleteIcon(icon.file_name), ["stop"])
1585
- }, _cache[5] || (_cache[5] = [
1561
+ }, [..._cache[5] || (_cache[5] = [
1586
1562
  createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
1587
- ]), 8, _hoisted_13$1)
1563
+ ])], 8, _hoisted_13$1)
1588
1564
  ], 10, _hoisted_10$1);
1589
1565
  }), 128))
1590
1566
  ])
@@ -1593,7 +1569,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1593
1569
  _cache[8] || (_cache[8] = createBaseVNode("div", { class: "section-title" }, "Default", -1)),
1594
1570
  createBaseVNode("div", _hoisted_15$1, [
1595
1571
  createBaseVNode("div", {
1596
- class: normalizeClass(["icon-option", { selected: _ctx.modelValue === "user-defined-icon.png" }]),
1572
+ class: normalizeClass(["icon-option", { selected: __props.modelValue === "user-defined-icon.png" }]),
1597
1573
  onClick: _cache[0] || (_cache[0] = ($event) => selectIcon("user-defined-icon.png"))
1598
1574
  }, [
1599
1575
  createBaseVNode("img", {
@@ -1616,8 +1592,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1616
1592
  };
1617
1593
  }
1618
1594
  });
1619
- const IconSelector_vue_vue_type_style_index_0_scoped_638bee77_lang = "";
1620
- const IconSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-638bee77"]]);
1595
+ const IconSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-24b16154"]]);
1621
1596
  function useNodeDesignerState() {
1622
1597
  const nodeMetadata = reactive({ ...defaultNodeMetadata });
1623
1598
  const sections = ref([]);
@@ -1891,8 +1866,7 @@ function useNodeBrowser() {
1891
1866
  }
1892
1867
  async function deleteNode() {
1893
1868
  var _a, _b;
1894
- if (!viewingNodeFileName.value)
1895
- return;
1869
+ if (!viewingNodeFileName.value) return;
1896
1870
  try {
1897
1871
  await axios.delete(
1898
1872
  `/user_defined_components/delete-custom-node/${viewingNodeFileName.value}`
@@ -2282,8 +2256,7 @@ function usePolarsAutocompletion(getSections) {
2282
2256
  };
2283
2257
  }
2284
2258
  const wordMatch = context.matchBefore(/\w+/);
2285
- if (!wordMatch && !context.explicit)
2286
- return null;
2259
+ if (!wordMatch && !context.explicit) return null;
2287
2260
  return {
2288
2261
  from: wordMatch ? wordMatch.from : context.pos,
2289
2262
  options: polarsCompletions,
@@ -2416,8 +2389,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2416
2389
  function handleDrop(event, sectionIndex) {
2417
2390
  var _a;
2418
2391
  const componentType = (_a = event.dataTransfer) == null ? void 0 : _a.getData("component_type");
2419
- if (!componentType)
2420
- return;
2392
+ if (!componentType) return;
2421
2393
  const compCount = sections.value[sectionIndex].components.length + 1;
2422
2394
  const newComponent = {
2423
2395
  component_type: componentType,
@@ -2456,8 +2428,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2456
2428
  }
2457
2429
  }
2458
2430
  const selectedSectionName = computed(() => {
2459
- if (selectedSectionIndex.value === null)
2460
- return "";
2431
+ if (selectedSectionIndex.value === null) return "";
2461
2432
  const section = sections.value[selectedSectionIndex.value];
2462
2433
  return (section == null ? void 0 : section.name) || (section == null ? void 0 : section.title) || "";
2463
2434
  });
@@ -2488,38 +2459,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2488
2459
  createBaseVNode("button", {
2489
2460
  class: "btn btn-secondary",
2490
2461
  onClick: _cache[0] || (_cache[0] = ($event) => showHelpModal.value = true)
2491
- }, _cache[20] || (_cache[20] = [
2462
+ }, [..._cache[20] || (_cache[20] = [
2492
2463
  createBaseVNode("i", { class: "fa-solid fa-circle-question" }, null, -1),
2493
- createTextVNode(" Help ")
2494
- ])),
2464
+ createTextVNode(" Help ", -1)
2465
+ ])]),
2495
2466
  createBaseVNode("button", {
2496
2467
  class: "btn btn-secondary",
2497
2468
  onClick: _cache[1] || (_cache[1] = ($event) => unref(nodeBrowser).openNodeBrowser())
2498
- }, _cache[21] || (_cache[21] = [
2469
+ }, [..._cache[21] || (_cache[21] = [
2499
2470
  createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1),
2500
- createTextVNode(" Browse ")
2501
- ])),
2471
+ createTextVNode(" Browse ", -1)
2472
+ ])]),
2502
2473
  createBaseVNode("button", {
2503
2474
  class: "btn btn-secondary",
2504
2475
  onClick: handleNew
2505
- }, _cache[22] || (_cache[22] = [
2476
+ }, [..._cache[22] || (_cache[22] = [
2506
2477
  createBaseVNode("i", { class: "fa-solid fa-file" }, null, -1),
2507
- createTextVNode(" New ")
2508
- ])),
2478
+ createTextVNode(" New ", -1)
2479
+ ])]),
2509
2480
  createBaseVNode("button", {
2510
2481
  class: "btn btn-secondary",
2511
2482
  onClick: handlePreview
2512
- }, _cache[23] || (_cache[23] = [
2483
+ }, [..._cache[23] || (_cache[23] = [
2513
2484
  createBaseVNode("i", { class: "fa-solid fa-code" }, null, -1),
2514
- createTextVNode(" Preview ")
2515
- ])),
2485
+ createTextVNode(" Preview ", -1)
2486
+ ])]),
2516
2487
  createBaseVNode("button", {
2517
2488
  class: "btn btn-primary",
2518
2489
  onClick: handleSave
2519
- }, _cache[24] || (_cache[24] = [
2490
+ }, [..._cache[24] || (_cache[24] = [
2520
2491
  createBaseVNode("i", { class: "fa-solid fa-save" }, null, -1),
2521
- createTextVNode(" Save ")
2522
- ]))
2492
+ createTextVNode(" Save ", -1)
2493
+ ])])
2523
2494
  ])
2524
2495
  ]),
2525
2496
  createBaseVNode("div", _hoisted_4, [
@@ -2630,10 +2601,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2630
2601
  createBaseVNode("button", {
2631
2602
  class: "add-section-btn",
2632
2603
  onClick: _cache[9] || (_cache[9] = ($event) => unref(addSection)())
2633
- }, _cache[33] || (_cache[33] = [
2604
+ }, [..._cache[33] || (_cache[33] = [
2634
2605
  createBaseVNode("i", { class: "fa-solid fa-plus" }, null, -1),
2635
- createTextVNode(" Add Section ")
2636
- ]))
2606
+ createTextVNode(" Add Section ", -1)
2607
+ ])])
2637
2608
  ]),
2638
2609
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(sections), (section, sectionIndex) => {
2639
2610
  return openBlock(), createBlock(SectionCard, {
@@ -2653,10 +2624,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2653
2624
  onUpdateTitle: ($event) => section.title = $event
2654
2625
  }, null, 8, ["section", "is-selected", "selected-component-index", "onSelect", "onRemove", "onSelectComponent", "onRemoveComponent", "onDrop", "onUpdateName", "onUpdateTitle"]);
2655
2626
  }), 128)),
2656
- unref(sections).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18, _cache[35] || (_cache[35] = [
2627
+ unref(sections).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18, [..._cache[35] || (_cache[35] = [
2657
2628
  createBaseVNode("i", { class: "fa-solid fa-layer-group" }, null, -1),
2658
2629
  createBaseVNode("p", null, "No sections yet. Add a section to start designing your node UI.", -1)
2659
- ]))) : createCommentVNode("", true)
2630
+ ])])) : createCommentVNode("", true)
2660
2631
  ]),
2661
2632
  createVNode(ProcessCodeEditor, {
2662
2633
  modelValue: unref(processCode),
@@ -2705,7 +2676,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2705
2676
  };
2706
2677
  }
2707
2678
  });
2708
- const NodeDesigner_vue_vue_type_style_index_0_scoped_3db2802e_lang = "";
2709
2679
  const NodeDesigner = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3db2802e"]]);
2710
2680
  export {
2711
2681
  NodeDesigner as default