Flowfile 0.3.9__py3-none-any.whl → 0.4.0__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.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (169) hide show
  1. flowfile/__init__.py +6 -1
  2. flowfile/api.py +0 -1
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-109ecc3c.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-19cdd67a.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-48e0ae20.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
  8. flowfile/web/static/assets/ColumnSelector-ecaf7c44.js +83 -0
  9. flowfile/web/static/assets/ContextMenu-2b348c4c.js +41 -0
  10. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  11. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  12. flowfile/web/static/assets/ContextMenu-a779eed7.js +41 -0
  13. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  14. flowfile/web/static/assets/ContextMenu-eca26a03.js +41 -0
  15. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  16. flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-a88f8142.js} +14 -84
  17. flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
  18. flowfile/web/static/assets/CustomNode-cb863dff.js +211 -0
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-819d3267.js} +3 -3
  20. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-84ee2834.js} +2 -2
  21. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-060dd412.js} +14 -114
  22. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  23. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-7fc7750f.js} +13 -74
  24. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  25. flowfile/web/static/assets/ExploreData-82c95991.js +192 -0
  26. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-e1a6ddc7.js} +8 -79
  27. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-8aca894a.js} +12 -85
  28. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  29. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  30. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-e33686d9.js} +18 -85
  31. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  32. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-abda150d.js} +16 -87
  33. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-4ecad1d7.js} +13 -159
  34. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  35. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-656d07f3.js} +12 -75
  36. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  37. flowfile/web/static/assets/{Join-5a78a203.js → Join-b84ec849.js} +15 -85
  38. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  39. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  40. flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-346f4135.js} +11 -82
  41. flowfile/web/static/assets/MultiSelect-61b98268.js +5 -0
  42. flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-2a7c8312.js +63 -0
  43. flowfile/web/static/assets/NumericInput-e36602c2.js +5 -0
  44. flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-211a1990.js +35 -0
  45. flowfile/web/static/assets/Output-ddc9079f.css +37 -0
  46. flowfile/web/static/assets/{Output-411ecaee.js → Output-eb041599.js} +13 -243
  47. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  48. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-f5c774f4.js} +14 -138
  49. flowfile/web/static/assets/PivotValidation-26546cbc.js +61 -0
  50. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  51. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  52. flowfile/web/static/assets/PivotValidation-e150a24b.js +61 -0
  53. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-da3a7abf.js} +13 -80
  54. flowfile/web/static/assets/Read-0c768769.js +243 -0
  55. flowfile/web/static/assets/Read-6b17491f.css +62 -0
  56. flowfile/web/static/assets/RecordCount-84736276.js +53 -0
  57. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-60055e6d.js} +8 -80
  58. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  59. flowfile/web/static/assets/SQLQueryComponent-8a486004.js +38 -0
  60. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-2d662611.js} +8 -77
  61. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-ef586cab.js} +2 -2
  62. flowfile/web/static/assets/{Select-727688dc.js → Select-2e4a6965.js} +11 -85
  63. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  64. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-310b61c0.js} +2 -40
  65. flowfile/web/static/assets/SettingsSection-5634f439.js +45 -0
  66. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  67. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  68. flowfile/web/static/assets/SettingsSection-7c68b19f.js +53 -0
  69. flowfile/web/static/assets/SingleSelect-7298811a.js +5 -0
  70. flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-43807bad.js +62 -0
  71. flowfile/web/static/assets/SliderInput-53105476.js +40 -0
  72. flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
  73. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  74. flowfile/web/static/assets/{Sort-be3339a8.js → Sort-4fdebe74.js} +12 -97
  75. flowfile/web/static/assets/TextInput-28366b7e.js +5 -0
  76. flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-9cad14ba.js +32 -0
  77. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  78. flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-73ffa692.js} +14 -83
  79. flowfile/web/static/assets/ToggleSwitch-598add30.js +5 -0
  80. flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-f620cd32.js +31 -0
  81. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-66239e83.js} +2 -2
  82. flowfile/web/static/assets/Union-26b10614.js +77 -0
  83. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  84. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-33b9edbb.js} +22 -91
  85. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  86. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  87. flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-ef69d0e2.js} +12 -166
  88. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  89. flowfile/web/static/assets/UnpivotValidation-8658388e.js +51 -0
  90. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-4d7861f4.js} +4 -264
  91. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  92. flowfile/web/static/assets/{api-023d1733.js → api-2d1394bd.js} +1 -1
  93. flowfile/web/static/assets/{api-cb00cce6.js → api-c908fffe.js} +1 -1
  94. flowfile/web/static/assets/{designer-6c322d8e.js → designer-1667687d.js} +2201 -705
  95. flowfile/web/static/assets/{designer-2197d782.css → designer-665e9408.css} +836 -201
  96. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-5eed779e.js} +1 -1
  97. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-41ebe3c2.js} +1 -1
  98. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-0670d32d.js} +2 -2
  99. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-38410ebf.js} +3 -3
  100. flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
  101. flowfile/web/static/assets/{index-683fc198.js → index-5ec791df.js} +210 -31
  102. flowfile/web/static/assets/outputCsv-059583b6.js +86 -0
  103. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  104. flowfile/web/static/assets/outputExcel-76b1e02c.js +56 -0
  105. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  106. flowfile/web/static/assets/outputParquet-440fd4c7.js +31 -0
  107. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  108. flowfile/web/static/assets/readCsv-9813903a.js +178 -0
  109. flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
  110. flowfile/web/static/assets/readExcel-7f40d237.js +203 -0
  111. flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
  112. flowfile/web/static/assets/readParquet-22d56002.js +26 -0
  113. flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
  114. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-b3cb072e.js} +1 -1
  115. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-7ad95bca.js} +7 -7
  116. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  117. flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
  118. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-b1dfaa46.js} +59 -33
  119. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-22bac17c.js} +1 -1
  120. flowfile/web/static/index.html +2 -2
  121. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/METADATA +1 -1
  122. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/RECORD +160 -102
  123. flowfile_core/configs/flow_logger.py +5 -13
  124. flowfile_core/configs/node_store/__init__.py +30 -0
  125. flowfile_core/configs/node_store/nodes.py +383 -99
  126. flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
  127. flowfile_core/configs/settings.py +2 -1
  128. flowfile_core/database/connection.py +5 -21
  129. flowfile_core/fileExplorer/funcs.py +239 -121
  130. flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
  131. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
  132. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
  133. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
  134. flowfile_core/flowfile/flow_graph.py +117 -34
  135. flowfile_core/flowfile/flow_node/flow_node.py +45 -13
  136. flowfile_core/flowfile/handler.py +22 -3
  137. flowfile_core/flowfile/manage/open_flowfile.py +9 -1
  138. flowfile_core/flowfile/node_designer/__init__.py +47 -0
  139. flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
  140. flowfile_core/flowfile/node_designer/custom_node.py +371 -0
  141. flowfile_core/flowfile/node_designer/data_types.py +146 -0
  142. flowfile_core/flowfile/node_designer/ui_components.py +277 -0
  143. flowfile_core/flowfile/schema_callbacks.py +8 -4
  144. flowfile_core/flowfile/setting_generator/settings.py +0 -1
  145. flowfile_core/main.py +5 -1
  146. flowfile_core/routes/routes.py +73 -28
  147. flowfile_core/routes/user_defined_components.py +55 -0
  148. flowfile_core/schemas/input_schema.py +7 -1
  149. flowfile_core/schemas/output_model.py +5 -2
  150. flowfile_core/schemas/schemas.py +8 -3
  151. flowfile_core/schemas/transform_schema.py +1 -0
  152. flowfile_core/utils/validate_setup.py +3 -1
  153. flowfile_worker/__init__.py +6 -35
  154. flowfile_worker/main.py +5 -2
  155. flowfile_worker/routes.py +47 -5
  156. shared/__init__.py +15 -0
  157. shared/storage_config.py +258 -0
  158. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  159. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  160. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  161. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  162. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  163. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  164. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  165. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  166. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  167. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/LICENSE +0 -0
  168. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/WHEEL +0 -0
  169. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/entry_points.txt +0 -0
@@ -1,68 +0,0 @@
1
-
2
- .context-menu[data-v-d0286fd2] {
3
- position: fixed;
4
- z-index: 1000;
5
- border: 1px solid #ccc;
6
- background-color: white;
7
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
8
- border-radius: 4px;
9
- user-select: none;
10
- }
11
- .context-menu ul[data-v-d0286fd2] {
12
- list-style: none;
13
- padding: 0;
14
- margin: 0;
15
- }
16
- .context-menu li[data-v-d0286fd2] {
17
- padding: 8px 16px;
18
- cursor: pointer;
19
- }
20
- .context-menu li.disabled[data-v-d0286fd2] {
21
- color: #ccc;
22
- cursor: not-allowed;
23
- }
24
- .context-menu li[data-v-d0286fd2]:hover:not(.disabled) {
25
- background-color: #f0f0f0;
26
- }
27
-
28
- .items-container[data-v-43acf78a] {
29
- display: flex;
30
- gap: 10px; /* Space between items */
31
- }
32
- .item-box[data-v-43acf78a] {
33
- display: flex;
34
- align-items: center;
35
- padding: 5px 10px;
36
- background-color: #f0f0f0;
37
- border-radius: 4px;
38
- font-size: 12px; /* Font size set to 12px */
39
- position: relative;
40
- }
41
- .remove-btn[data-v-43acf78a] {
42
- margin-left: 8px;
43
- cursor: pointer;
44
- color: #100f0f72;
45
- font-weight: bold;
46
- }
47
-
48
- .context-menu[data-v-5a467b52] {
49
- position: fixed;
50
- z-index: 1000;
51
- border: 1px solid #ccc;
52
- background-color: white;
53
- padding: 8px;
54
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
55
- border-radius: 4px;
56
- }
57
- .context-menu ul[data-v-5a467b52] {
58
- list-style: none;
59
- padding: 0;
60
- margin: 0;
61
- }
62
- .context-menu li[data-v-5a467b52] {
63
- padding: 8px 16px;
64
- cursor: pointer;
65
- }
66
- .context-menu li[data-v-5a467b52]:hover {
67
- background-color: #f0f0f0;
68
- }
@@ -1,35 +0,0 @@
1
-
2
- .validation-wrapper[data-v-3eb585b2] {
3
- background-color: #ffffff;
4
- }
5
- .error-message[data-v-3eb585b2] {
6
- color: #991b1b;
7
- margin: 5px 0;
8
- font-size: 12px;
9
- }
10
- .warning-icon[data-v-3eb585b2] {
11
- cursor: pointer;
12
- font-size: 24px;
13
- }
14
-
15
- .context-menu[data-v-d0f14439] {
16
- position: fixed;
17
- z-index: 1000;
18
- border: 1px solid #ccc;
19
- background-color: white;
20
- padding: 8px;
21
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
22
- border-radius: 4px;
23
- }
24
- .context-menu ul[data-v-d0f14439] {
25
- list-style: none;
26
- padding: 0;
27
- margin: 0;
28
- }
29
- .context-menu li[data-v-d0f14439] {
30
- padding: 8px 16px;
31
- cursor: pointer;
32
- }
33
- .context-menu li[data-v-d0f14439]:hover {
34
- background-color: #f0f0f0;
35
- }
@@ -1,197 +0,0 @@
1
-
2
- .selectors[data-v-e7395814] {
3
- display: flex;
4
- flex-direction: column;
5
- gap: 12px;
6
- }
7
- .input-wrapper[data-v-e7395814] {
8
- display: flex;
9
- flex-direction: column;
10
- gap: 4px;
11
- flex: 1;
12
- }
13
- label[data-v-e7395814] {
14
- font-weight: 500;
15
- color: #333;
16
- font-size: 14px;
17
- }
18
- input[data-v-e7395814] {
19
- padding: 6px;
20
- border: 1px solid #ccc;
21
- border-radius: 4px;
22
- font-size: 14px;
23
- width: 99%;
24
- }
25
- .row[data-v-e7395814] {
26
- display: flex;
27
- align-items: center;
28
- justify-content: space-between;
29
- gap: 16px;
30
- }
31
- .compact-input[data-v-e7395814] {
32
- width: 96%;
33
- padding: 6px;
34
- font-size: 14px;
35
- border: 1px solid #ccc;
36
- border-radius: 4px;
37
- }
38
- .button-container[data-v-e7395814] {
39
- display: flex;
40
- justify-content: center;
41
- margin: 16px 0;
42
- }
43
- .optional-section[data-v-e7395814] {
44
- margin-top: 20px;
45
- }
46
- .section-divider[data-v-e7395814] {
47
- margin: 16px 0;
48
- border: none;
49
- border-top: 1px solid #ddd;
50
- }
51
- .table-sizes[data-v-e7395814] {
52
- font-weight: bold;
53
- margin-bottom: 10px;
54
- }
55
- .warning-sign[data-v-e7395814] {
56
- color: #e74c3c;
57
- font-size: 16px;
58
- margin-left: 8px;
59
- }
60
- @media (max-width: 600px) {
61
- .row[data-v-e7395814] {
62
- flex-direction: column;
63
- }
64
- }
65
-
66
- [data-v-d0b76f7b] {
67
- box-sizing: border-box;
68
- }
69
- .csv-table-settings[data-v-d0b76f7b] {
70
- background: #fff;
71
- border-radius: 6px;
72
- padding: 16px;
73
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
74
- margin: 20px auto;
75
- max-width: 600px;
76
- overflow-x: hidden; /* Prevent horizontal scroll */
77
- }
78
- .row[data-v-d0b76f7b] {
79
- display: flex;
80
- align-items: center;
81
- justify-content: space-between;
82
- margin-bottom: 12px;
83
- gap: 20px;
84
- max-width: 100%; /* Prevent overflow */
85
- }
86
- label[data-v-d0b76f7b] {
87
- font-weight: 500;
88
- color: #333;
89
- font-size: 14px;
90
- flex: 1;
91
- max-width: 100%;
92
- }
93
- .el-select[data-v-d0b76f7b],
94
- .el-slider[data-v-d0b76f7b],
95
- .el-checkbox[data-v-d0b76f7b] {
96
- flex: 2;
97
- max-width: 100%; /* Prevent overflow */
98
- }
99
- .el-slider[data-v-d0b76f7b] {
100
- padding-top: 10px;
101
- }
102
- .el-checkbox[data-v-d0b76f7b] {
103
- display: flex;
104
- align-items: center;
105
- }
106
- @media (max-width: 600px) {
107
- .row[data-v-d0b76f7b] {
108
- flex-direction: column;
109
- align-items: flex-start;
110
- }
111
- .el-select[data-v-d0b76f7b],
112
- .el-slider[data-v-d0b76f7b],
113
- .el-checkbox[data-v-d0b76f7b] {
114
- width: 100%;
115
- }
116
- }
117
-
118
- .parquet-table-settings[data-v-0faf0508] {
119
- background: #f9fafb;
120
- border-radius: 8px;
121
- padding: 20px;
122
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
123
- max-width: 600px;
124
- margin: 20px auto;
125
- text-align: center; /* Center the text */
126
- }
127
- .message h2[data-v-0faf0508] {
128
- font-size: 24px;
129
- color: #3498db;
130
- margin-bottom: 10px;
131
- }
132
- .message p[data-v-0faf0508] {
133
- font-size: 16px;
134
- color: #333;
135
- }
136
-
137
- .context-menu[data-v-221ad292] {
138
- position: fixed;
139
- z-index: 1000;
140
- border: 1px solid #ccc;
141
- background-color: white;
142
- padding: 8px;
143
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
144
- border-radius: 4px;
145
- }
146
- .context-menu button[data-v-221ad292] {
147
- display: block;
148
- background: none;
149
- border: none;
150
- padding: 4px 8px;
151
- text-align: left;
152
- width: 100%;
153
- cursor: pointer;
154
- }
155
- .context-menu button[data-v-221ad292]:hover {
156
- background-color: #f0f0f0;
157
- }
158
- .file-upload-wrapper[data-v-221ad292] {
159
- position: relative;
160
- width: 100%;
161
- }
162
- .file-upload-label[data-v-221ad292] {
163
- display: flex;
164
- align-items: center;
165
- background-color: #f5f5f5;
166
- border: 1px solid #ddd;
167
- border-radius: 4px;
168
- padding: 10px 15px;
169
- color: #333;
170
- font-size: 16px;
171
- font-weight: 500;
172
- cursor: pointer;
173
- transition: background-color 0.3s ease;
174
- }
175
- .file-upload-label[data-v-221ad292]:hover {
176
- background-color: #e4e4e4;
177
- }
178
- .file-icon[data-v-221ad292] {
179
- margin-right: 10px;
180
- font-size: 20px;
181
- }
182
- .file-label-text[data-v-221ad292] {
183
- flex-grow: 1;
184
- margin-left: 10px;
185
- }
186
- input[type="text"][data-v-221ad292] {
187
- width: 100%;
188
- padding: 8px;
189
- border: 1px solid #ddd;
190
- border-radius: 4px;
191
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
192
- transition: border-color 0.2s ease;
193
- }
194
- input[type="text"][data-v-221ad292]:focus {
195
- border-color: #3498db;
196
- outline: none;
197
- }