windmill-components 1.550.0 → 1.555.1

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 (268) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +2 -1
  4. package/package/components/AIProviderPicker.svelte +25 -8
  5. package/package/components/ArgEnum.svelte +3 -2
  6. package/package/components/ArgEnum.svelte.d.ts +1 -0
  7. package/package/components/ArgInput.svelte +235 -174
  8. package/package/components/ArgInput.svelte.d.ts +4 -1
  9. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  10. package/package/components/AutoscalingEvents.svelte +21 -5
  11. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  12. package/package/components/DateTimeInput.svelte +8 -6
  13. package/package/components/DeployButton.svelte +1 -1
  14. package/package/components/Dev.svelte +6 -4
  15. package/package/components/EditableSchemaForm.svelte +7 -6
  16. package/package/components/Editor.svelte +2 -1
  17. package/package/components/EditorSettings.svelte +5 -5
  18. package/package/components/EditorSettings.svelte.d.ts +4 -18
  19. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  20. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  21. package/package/components/FieldHeader.svelte +5 -7
  22. package/package/components/FirstStepInputs.svelte +1 -1
  23. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  24. package/package/components/FlowPlugConnect.svelte +8 -2
  25. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  26. package/package/components/FlowPreviewContent.svelte +113 -92
  27. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  28. package/package/components/FlowStatusViewer.svelte +3 -2
  29. package/package/components/FlowStatusViewerInner.svelte +1 -1
  30. package/package/components/FolderEditor.svelte +6 -7
  31. package/package/components/GroupEditor.svelte +148 -141
  32. package/package/components/GroupEditor.svelte.d.ts +5 -4
  33. package/package/components/InputTransformForm.svelte +88 -82
  34. package/package/components/InputTransformSchemaForm.svelte +5 -4
  35. package/package/components/InstanceSetting.svelte +17 -9
  36. package/package/components/JsonEditor.svelte +18 -9
  37. package/package/components/JsonEditor.svelte.d.ts +1 -1
  38. package/package/components/JsonInputs.svelte +1 -1
  39. package/package/components/ModulePreviewForm.svelte +23 -19
  40. package/package/components/NumberTypeNarrowing.svelte +32 -16
  41. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  42. package/package/components/Path.svelte +2 -8
  43. package/package/components/Path.svelte.d.ts +1 -1
  44. package/package/components/ResourceEditor.svelte +3 -10
  45. package/package/components/ResourcePicker.svelte +85 -72
  46. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  47. package/package/components/RunChart.svelte +1 -1
  48. package/package/components/RunForm.svelte +11 -7
  49. package/package/components/S3ArrayHelperButton.svelte +12 -6
  50. package/package/components/S3ArrayHelperButton.svelte.d.ts +1 -0
  51. package/package/components/S3FilePicker.svelte +1 -1
  52. package/package/components/SchemaForm.svelte +18 -10
  53. package/package/components/SchemaForm.svelte.d.ts +7 -1
  54. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  55. package/package/components/ScriptBuilder.svelte +2 -2
  56. package/package/components/ScriptEditor.svelte +4 -3
  57. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  58. package/package/components/ShareModal.svelte +4 -4
  59. package/package/components/SimpleEditor.svelte +6 -2
  60. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  61. package/package/components/StringTypeNarrowing.svelte +5 -1
  62. package/package/components/SuperadminSettingsInner.svelte +3 -3
  63. package/package/components/TemplateEditor.svelte +18 -9
  64. package/package/components/Toast.svelte +2 -7
  65. package/package/components/Toast.svelte.d.ts +4 -18
  66. package/package/components/Toggle.svelte +17 -7
  67. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  68. package/package/components/WorkerGroup.svelte +2 -14
  69. package/package/components/apps/components/buttons/AppButton.svelte +57 -39
  70. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  71. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  72. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  73. package/package/components/apps/components/display/table/utils.js +13 -3
  74. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -3
  75. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  76. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  77. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  78. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  79. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  80. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  81. package/package/components/apps/editor/GridEditor.svelte +7 -2
  82. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  83. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  84. package/package/components/apps/editor/appUtils.d.ts +1 -0
  85. package/package/components/apps/editor/appUtils.js +30 -1
  86. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  87. package/package/components/apps/editor/component/components.d.ts +3 -3
  88. package/package/components/apps/editor/component/components.js +1 -1
  89. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  90. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  91. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  92. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  93. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  94. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  95. package/package/components/auditLogs/AuditLogsFilters.svelte +1 -1
  96. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  97. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  98. package/package/components/common/badge/CountBadge.svelte +29 -0
  99. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  100. package/package/components/common/button/Button.svelte +1 -0
  101. package/package/components/common/button/ConnectionButton.svelte +6 -1
  102. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  103. package/package/components/common/button/RefreshButton.svelte +8 -4
  104. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  105. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  106. package/package/components/common/fileInput/FileInput.svelte +7 -6
  107. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  108. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  109. package/package/components/common/popup/PopupV2.svelte +6 -0
  110. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  111. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  112. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  113. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  114. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  115. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  116. package/package/components/copilot/CronGen.svelte +1 -1
  117. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  118. package/package/components/copilot/IteratorGen.svelte +30 -25
  119. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  120. package/package/components/copilot/MetadataGen.svelte +4 -3
  121. package/package/components/copilot/PredicateGen.svelte +15 -12
  122. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  123. package/package/components/copilot/RegexGen.svelte +1 -1
  124. package/package/components/copilot/ScriptFix.svelte +1 -1
  125. package/package/components/copilot/ScriptGen.svelte +2 -1
  126. package/package/components/copilot/StepGenQuick.svelte +15 -16
  127. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  128. package/package/components/copilot/StepInputGen.svelte +50 -36
  129. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  130. package/package/components/copilot/StepInputsGen.svelte +18 -19
  131. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  132. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  133. package/package/components/copilot/autocomplete/request.js +1 -1
  134. package/package/components/copilot/chat/AIChat.svelte +2 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +2 -1
  136. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  137. package/package/components/copilot/chat/ProviderModelSelector.svelte +10 -9
  138. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  139. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  140. package/package/components/copilot/chat/script/core.js +2 -1
  141. package/package/components/copilot/chat/shared.js +2 -1
  142. package/package/components/copilot/lib.js +2 -1
  143. package/package/components/details/DetailPageLayout.svelte +3 -2
  144. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  145. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  146. package/package/components/flows/FlowChatInterface.svelte +404 -0
  147. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  148. package/package/components/flows/FlowChatMessage.svelte +41 -0
  149. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  150. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  151. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  152. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  153. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  154. package/package/components/flows/common/FlowCard.svelte +10 -2
  155. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  156. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  157. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  158. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  159. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  160. package/package/components/flows/content/FlowInput.svelte +381 -259
  161. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  162. package/package/components/flows/content/FlowInputsQuick.svelte +55 -34
  163. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +2 -2
  164. package/package/components/flows/content/FlowModuleComponent.svelte +5 -10
  165. package/package/components/flows/flowInfers.d.ts +60 -0
  166. package/package/components/flows/flowInfers.js +72 -66
  167. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +1 -0
  168. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  169. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  170. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  171. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  172. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  173. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  174. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  175. package/package/components/flows/map/InsertModuleButton.svelte +5 -2
  176. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -3
  177. package/package/components/flows/map/InsertModuleInner.svelte +3 -1
  178. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  179. package/package/components/flows/map/VirtualItem.svelte +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +8 -3
  181. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  182. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +15 -12
  183. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  184. package/package/components/graph/FlowGraphV2.svelte +2 -1
  185. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  186. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  187. package/package/components/graph/graphBuilder.svelte.js +1 -0
  188. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  189. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  190. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  191. package/package/components/instanceSettings.js +17 -0
  192. package/package/components/progressBar/ProgressBar.svelte +1 -1
  193. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  194. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  195. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  196. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  197. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  198. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  199. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  200. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  201. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  202. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  203. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  204. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  205. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  206. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  207. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  208. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  209. package/package/components/raw_apps/utils.d.ts +1 -1
  210. package/package/components/raw_apps/utils.js +3 -3
  211. package/package/components/runs/RunOption.svelte +2 -2
  212. package/package/components/runs/RunsFilter.svelte +15 -12
  213. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  214. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  215. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  216. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  217. package/package/components/schema/PropertyEditor.svelte +22 -26
  218. package/package/components/schema/SchemaFormDND.svelte +3 -2
  219. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  220. package/package/components/select/DraggableTags.svelte +2 -2
  221. package/package/components/select/MultiSelect.svelte +14 -8
  222. package/package/components/select/Select.svelte +12 -5
  223. package/package/components/select/Select.svelte.d.ts +11 -0
  224. package/package/components/select/SelectDropdown.svelte +98 -46
  225. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  226. package/package/components/select/utils.svelte.js +2 -0
  227. package/package/components/settings/CreateToken.svelte +76 -49
  228. package/package/components/settings/WorkspaceUserSettings.svelte +20 -17
  229. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  230. package/package/components/sidebar/Linkify.svelte +14 -0
  231. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  232. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  233. package/package/components/table/tableUtils.js +1 -1
  234. package/package/components/text_input/TextInput.svelte +30 -0
  235. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  236. package/package/components/triggers/TriggersEditor.svelte +11 -1
  237. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  238. package/package/components/triggers/triggers.svelte.js +8 -4
  239. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  240. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  241. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  242. package/package/components/tutorials/Tutorial.svelte +9 -0
  243. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  244. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  245. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  246. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  247. package/package/components/tutorials/utils.js +2 -154
  248. package/package/components/vscode.js +16 -8
  249. package/package/components/workspaceSettings/AISettings.svelte +4 -3
  250. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  251. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  252. package/package/components/workspaceSettings/StorageSettings.svelte +24 -26
  253. package/package/editorUtils.d.ts +1 -1
  254. package/package/gen/core/OpenAPI.js +1 -1
  255. package/package/gen/schemas.gen.d.ts +82 -1
  256. package/package/gen/schemas.gen.js +82 -1
  257. package/package/gen/services.gen.d.ts +175 -1
  258. package/package/gen/services.gen.js +345 -2
  259. package/package/gen/types.gen.d.ts +1324 -549
  260. package/package/script_helpers.js +5 -5
  261. package/package/services/JobManager.js +4 -2
  262. package/package/stores.d.ts +4 -13
  263. package/package/stores.js +5 -68
  264. package/package/toast.js +2 -1
  265. package/package/utils.d.ts +1 -0
  266. package/package/utils.js +3 -0
  267. package/package.json +5 -5
  268. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -31,7 +31,9 @@ import { base } from '../base';
31
31
  import { workspaceStore } from '../stores';
32
32
  import { getJsonSchemaFromResource } from './schema/jsonSchemaResource.svelte';
33
33
  import AIProviderPicker from './AIProviderPicker.svelte';
34
- let { label = '', value = $bindable(), defaultValue = $bindable(undefined), description = $bindable(undefined), format = $bindable(undefined), contentEncoding = undefined, type = undefined, oneOf = $bindable(undefined), required = false, pattern = $bindable(undefined), valid = $bindable(undefined), enum_ = $bindable(undefined), disabled = false, itemsType = $bindable(undefined), displayHeader = true, properties = $bindable(undefined), nestedRequired = undefined, autofocus = null, compact = false, password = false, pickForField = $bindable(undefined), variableEditor = undefined, itemPicker = undefined, noMargin = false, extra = {}, minW = true, prettifyHeader = false, resourceTypes, disablePortal = false, showSchemaExplorer = false, simpleTooltip = undefined, customErrorMessage = undefined, onlyMaskPassword = false, nullable = false, title = $bindable(undefined), placeholder = $bindable(undefined), order = $bindable(undefined), editor = $bindable(undefined), orderEditable = false, shouldDispatchChanges = false, noDefaultOnSelectFirst = false, helperScript = undefined, otherArgs = {}, lightHeader = false, diffStatus = undefined, hideNested = false, nestedParent = undefined, nestedClasses = '', displayType = true, css = undefined, appPath = undefined, computeS3ForceViewerPolicies = undefined, workspace = undefined, actions } = $props();
34
+ import TextInput, { inputBaseClass, inputBorderClass } from './text_input/TextInput.svelte';
35
+ let { label = '', value = $bindable(), defaultValue = $bindable(undefined), description = $bindable(undefined), format = $bindable(undefined), contentEncoding = undefined, type = undefined, oneOf = $bindable(undefined), required = false, pattern = $bindable(undefined), valid = $bindable(undefined), // Note : this should not exist, valid and error should be one coherent state
36
+ enum_ = $bindable(undefined), disabled = false, itemsType = $bindable(undefined), displayHeader = true, properties = $bindable(undefined), nestedRequired = undefined, autofocus = null, compact = false, password = false, pickForField = $bindable(undefined), variableEditor = undefined, itemPicker = undefined, noMargin = false, extra = {}, minW = true, prettifyHeader = false, resourceTypes, disablePortal = false, showSchemaExplorer = false, simpleTooltip = undefined, customErrorMessage = undefined, onlyMaskPassword = false, nullable = false, title = $bindable(undefined), placeholder = $bindable(undefined), order = $bindable(undefined), editor = $bindable(undefined), orderEditable = false, shouldDispatchChanges = false, noDefaultOnSelectFirst = false, helperScript = undefined, otherArgs = {}, lightHeader = false, diffStatus = undefined, hideNested = false, nestedParent = undefined, nestedClasses = '', displayType = true, css = undefined, appPath = undefined, computeS3ForceViewerPolicies = undefined, workspace = undefined, actions, innerBottomSnippet, fieldHeaderActions, lightHeaderFont = false } = $props();
35
37
  $effect(() => {
36
38
  if (description == undefined) {
37
39
  description = '';
@@ -124,7 +126,7 @@ function computeDefaultValue(inputCat, defaultValue, nnullable) {
124
126
  function checkArrayValueType() {
125
127
  try {
126
128
  if (Array.isArray(value) && value.length > 0) {
127
- const firstItem = value?.[0];
129
+ let firstItem = value?.[0];
128
130
  const type = itemsType?.type;
129
131
  switch (type) {
130
132
  case 'string':
@@ -303,6 +305,9 @@ function compareValues(value) {
303
305
  }
304
306
  let { debounced, clearDebounce } = debounce(() => compareValues(value), 50);
305
307
  let inputCat = $derived(computeInputCat(type, format, itemsType?.type, enum_, contentEncoding));
308
+ let displayJsonToggleHeader = $derived(displayHeader &&
309
+ inputCat === 'list' &&
310
+ !(itemsType?.resourceType === 's3_object' || itemsType?.resourceType === 's3object'));
306
311
  $effect(() => {
307
312
  oneOf && untrack(() => updateOneOfSelected(oneOf));
308
313
  });
@@ -321,6 +326,7 @@ $effect.pre(() => {
321
326
  $effect.pre(() => {
322
327
  !isListJson &&
323
328
  inputCat === 'list' &&
329
+ enum_ == undefined &&
324
330
  value != lastValue &&
325
331
  itemsType?.type &&
326
332
  !hasIsListJsonChanged &&
@@ -351,10 +357,10 @@ onDestroy(() => {
351
357
 
352
358
  {#snippet variableInput()}
353
359
  {#if variableEditor}
354
- <div class="text-sm text-tertiary">
360
+ <div class="text-sm text-hint">
355
361
  {#if value && typeof value == 'string' && value?.startsWith('$var:')}
356
362
  Linked to variable <button
357
- class="text-blue-500 underline"
363
+ class="text-nord-950 underline font-normal"
358
364
  onclick={() => variableEditor?.editVariable?.(value.slice(5))}>{value.slice(5)}</button
359
365
  >
360
366
  {/if}
@@ -420,24 +426,43 @@ onDestroy(() => {
420
426
  </div>
421
427
  {/if}
422
428
  {#if displayHeader}
423
- <FieldHeader
424
- prettify={prettifyHeader}
425
- label={title && !emptyString(title) ? title : label}
426
- {disabled}
427
- {required}
428
- {type}
429
- {contentEncoding}
430
- {format}
431
- {simpleTooltip}
432
- {lightHeader}
433
- {displayType}
434
- labelClass={css?.label?.class}
435
- />
436
- {/if}
429
+ <div class="flex min-h-7 items-end pb-1">
430
+ <FieldHeader
431
+ prettify={prettifyHeader}
432
+ label={title && !emptyString(title) ? title : label}
433
+ {disabled}
434
+ {required}
435
+ {type}
436
+ {contentEncoding}
437
+ {format}
438
+ {simpleTooltip}
439
+ {lightHeader}
440
+ {displayType}
441
+ labelClass={twMerge(
442
+ lightHeaderFont ? '!font-normal !text-sm text-tertiary' : '',
443
+ css?.label?.class
444
+ )}
445
+ />
446
+ <div class="ml-auto flex gap-2">
447
+ {#if displayJsonToggleHeader}
448
+ <Toggle
449
+ on:change={(e) => {
450
+ // Once the user has changed the input type, we should not change it back automatically
451
+ if (!hasIsListJsonChanged) {
452
+ hasIsListJsonChanged = true
453
+ }
437
454
 
438
- {#if description}
439
- <div class={twMerge('text-xs italic pb-1 text-secondary', css?.description?.class)}>
440
- <pre class="font-main whitespace-normal">{description}</pre>
455
+ evalValueToRaw()
456
+ isListJson = !isListJson
457
+ }}
458
+ checked={isListJson}
459
+ textClass="text-secondary"
460
+ size="xs"
461
+ options={{ left: 'json' }}
462
+ />
463
+ {/if}
464
+ {@render fieldHeaderActions?.()}
465
+ </div>
441
466
  </div>
442
467
  {/if}
443
468
 
@@ -462,7 +487,22 @@ onDestroy(() => {
462
487
  />
463
488
  {:else}
464
489
  <div class="relative w-full">
465
- <input
490
+ <TextInput
491
+ inputProps={{
492
+ autofocus,
493
+ onfocus: bubble('focus'),
494
+ onblur: bubble('blur'),
495
+ disabled,
496
+ type: 'number',
497
+ onkeydown: () => (ignoreValueUndefined = true),
498
+ placeholder: placeholder ?? defaultValue ?? '',
499
+ min: extra['min'],
500
+ max: extra['max']
501
+ }}
502
+ {error}
503
+ bind:value
504
+ />
505
+ <!-- <input
466
506
  {autofocus}
467
507
  onfocus={bubble('focus')}
468
508
  onblur={bubble('blur')}
@@ -478,7 +518,7 @@ onDestroy(() => {
478
518
  bind:value
479
519
  min={extra['min']}
480
520
  max={extra['max']}
481
- />
521
+ /> -->
482
522
  </div>
483
523
  {/if}
484
524
  {:else if inputCat == 'boolean'}
@@ -512,6 +552,7 @@ onDestroy(() => {
512
552
  bind:editor
513
553
  {appPath}
514
554
  {computeS3ForceViewerPolicies}
555
+ bottom={innerBottomSnippet}
515
556
  />
516
557
  {:else if inputCat == 'object' && format == 'json-schema'}
517
558
  {#await import('./EditableSchemaForm.svelte')}
@@ -555,8 +596,9 @@ onDestroy(() => {
555
596
  <Module.default code={JSON.stringify(value, null, 2)} bind:value />
556
597
  {/await}
557
598
  {:else}
558
- <div class="py-4 pr-2 pl-6 border rounded-md w-full">
599
+ <div class="px-3 pt-6 border rounded-md w-full">
559
600
  <SchemaForm
601
+ lightHeaderFont
560
602
  {onlyMaskPassword}
561
603
  {disablePortal}
562
604
  {disabled}
@@ -601,14 +643,34 @@ onDestroy(() => {
601
643
  />
602
644
  </div>
603
645
  {:else}
604
- <div class="w-full">
646
+ <div class="w-full flex flex-col gap-y-1">
605
647
  {#key redraw}
606
648
  {#if Array.isArray(value)}
607
649
  {#each value ?? [] as v, i}
608
650
  {#if i < itemsLimit}
609
- <div class="flex max-w-md mt-1 w-full items-center">
651
+ <div class="flex w-full items-center relative">
652
+ {#snippet deleteItemBtn()}
653
+ <button
654
+ transition:fade|local={{ duration: 100 }}
655
+ class="rounded-full p-1 bg-surface-secondary duration-200 hover:bg-surface-hover ml-2"
656
+ aria-label="Clear"
657
+ onclick={() => {
658
+ value = value.filter((_, index) => index !== i)
659
+ redraw += 1
660
+ }}
661
+ >
662
+ <X size={14} />
663
+ </button>
664
+ {/snippet}
610
665
  {#if itemsType?.type == 'number'}
611
- <input type="number" bind:value={value[i]} id="arg-input-number-array" />
666
+ <TextInput
667
+ inputProps={{ type: 'number', id: 'arg-input-number-array' }}
668
+ class="pr-8"
669
+ bind:value={value[i]}
670
+ />
671
+ <div class="absolute z-10 right-1.5">
672
+ {@render deleteItemBtn()}
673
+ </div>
612
674
  {:else if itemsType?.type == 'string' && itemsType?.contentEncoding == 'base64'}
613
675
  <input
614
676
  type="file"
@@ -616,6 +678,7 @@ onDestroy(() => {
616
678
  onchange={(x) => fileChanged(x, (val) => (value[i] = val))}
617
679
  multiple={false}
618
680
  />
681
+ {@render deleteItemBtn()}
619
682
  {:else if itemsType?.type == 'object' && itemsType?.resourceType === undefined && itemsType?.properties === undefined && !(format?.startsWith('resource-') && resourceTypes?.includes(format.split('-')[1]))}
620
683
  {#await import('./JsonEditor.svelte')}
621
684
  <Loader2 class="animate-spin" />
@@ -625,6 +688,7 @@ onDestroy(() => {
625
688
  bind:value={value[i]}
626
689
  />
627
690
  {/await}
691
+ {@render deleteItemBtn()}
628
692
  {:else if Array.isArray(itemsType?.enum)}
629
693
  <ArgEnum
630
694
  create={extra['disableCreate'] != true}
@@ -642,6 +706,7 @@ onDestroy(() => {
642
706
  enum_={itemsType?.enum ?? []}
643
707
  enumLabels={extra['enumLabels']}
644
708
  />
709
+ {@render deleteItemBtn()}
645
710
  {:else if (itemsType?.type == 'resource' && itemsType?.resourceType && resourceTypes?.includes(itemsType.resourceType)) || (format?.startsWith('resource-') && resourceTypes?.includes(format.split('-')[1]))}
646
711
  {@const resourceFormat =
647
712
  itemsType?.type == 'resource' &&
@@ -654,6 +719,7 @@ onDestroy(() => {
654
719
  format={resourceFormat}
655
720
  defaultValue={undefined}
656
721
  />
722
+ {@render deleteItemBtn()}
657
723
  {:else if itemsType?.type == 'resource'}
658
724
  {#await import('./JsonEditor.svelte')}
659
725
  <Loader2 class="animate-spin" />
@@ -670,9 +736,11 @@ onDestroy(() => {
670
736
  bind:value={value[i]}
671
737
  />
672
738
  {/await}
739
+ {@render deleteItemBtn()}
673
740
  {:else if itemsType?.type === 'object' && itemsType?.properties}
674
741
  <div class="p-8 border rounded-md w-full">
675
742
  <SchemaForm
743
+ lightHeaderFont
676
744
  {onlyMaskPassword}
677
745
  {disablePortal}
678
746
  {disabled}
@@ -681,20 +749,17 @@ onDestroy(() => {
681
749
  bind:args={value[i]}
682
750
  />
683
751
  </div>
752
+ {@render deleteItemBtn()}
684
753
  {:else}
685
- <input type="text" bind:value={value[i]} id="arg-input-array" />
754
+ <TextInput
755
+ inputProps={{ type: 'text', id: 'arg-input-array' }}
756
+ class="pr-8"
757
+ bind:value={value[i]}
758
+ />
759
+ <div class="absolute z-10 right-1.5">
760
+ {@render deleteItemBtn()}
761
+ </div>
686
762
  {/if}
687
- <button
688
- transition:fade|local={{ duration: 100 }}
689
- class="rounded-full p-1 bg-surface-secondary duration-200 hover:bg-surface-hover ml-2"
690
- aria-label="Clear"
691
- onclick={() => {
692
- value = value.filter((_, index) => index !== i)
693
- redraw += 1
694
- }}
695
- >
696
- <X size={14} />
697
- </button>
698
763
  </div>
699
764
  {/if}
700
765
  {/each}
@@ -707,7 +772,7 @@ onDestroy(() => {
707
772
  {#if value.startsWith('$res:')}
708
773
  {@render resourceInput()}
709
774
  {:else}
710
- <div class="text-red-500">
775
+ <div class="text-red-500 text-xs">
711
776
  Invalid string value: "{value}", expected array. Click add item to turn it
712
777
  into an array.
713
778
  </div>
@@ -715,59 +780,58 @@ onDestroy(() => {
715
780
  {/if}
716
781
  {/key}
717
782
  </div>
718
- <div class="flex mt-2 gap-20 items-baseline">
719
- <Button
720
- variant="border"
721
- color="light"
722
- size="xs"
723
- btnClasses="mt-1"
724
- on:click={() => {
725
- if (value == undefined || !Array.isArray(value)) {
726
- value = []
727
- }
728
- if (itemsType?.type == 'number') {
729
- value = value.concat(0)
730
- } else if (
731
- (itemsType?.type == 'object' &&
732
- !(
733
- format?.startsWith('resource-') &&
734
- resourceTypes?.includes(format.split('-')[1])
735
- )) ||
736
- (itemsType?.type == 'resource' &&
737
- !(
738
- itemsType?.resourceType && resourceTypes?.includes(itemsType?.resourceType)
739
- ))
740
- ) {
741
- value = value.concat({})
742
- } else {
743
- value = value.concat('')
744
- }
745
- }}
746
- id="arg-input-add-item"
747
- startIcon={{ icon: Plus }}
748
- >
749
- Add item
750
- </Button>
751
- </div>
783
+ <Button
784
+ variant="border"
785
+ color="light"
786
+ size="xs"
787
+ btnClasses="text-tertiary py-2.5"
788
+ wrapperClasses="w-full {Array.isArray(value) && value.length > 0 ? 'mt-1.5' : ''}"
789
+ on:click={() => {
790
+ if (value == undefined || !Array.isArray(value)) {
791
+ value = []
792
+ }
793
+ if (itemsType?.type == 'number') {
794
+ value = value.concat(0)
795
+ } else if (
796
+ (itemsType?.type == 'object' &&
797
+ !(
798
+ format?.startsWith('resource-') &&
799
+ resourceTypes?.includes(format.split('-')[1])
800
+ )) ||
801
+ (itemsType?.type == 'resource' &&
802
+ !(itemsType?.resourceType && resourceTypes?.includes(itemsType?.resourceType)))
803
+ ) {
804
+ value = value.concat({})
805
+ } else {
806
+ value = value.concat('')
807
+ }
808
+ }}
809
+ id="arg-input-add-item"
810
+ startIcon={{ icon: Plus }}
811
+ >
812
+ Add item
813
+ </Button>
752
814
  {/if}
753
815
  </div>
754
- <div class="mt-2 mr-4">
755
- <Toggle
756
- on:change={(e) => {
757
- // Once the user has changed the input type, we should not change it back automatically
758
- if (!hasIsListJsonChanged) {
759
- hasIsListJsonChanged = true
760
- }
816
+ {#if !displayHeader}
817
+ <div class="block mt-2.5 pl-2">
818
+ <Toggle
819
+ on:change={(e) => {
820
+ // Once the user has changed the input type, we should not change it back automatically
821
+ if (!hasIsListJsonChanged) {
822
+ hasIsListJsonChanged = true
823
+ }
761
824
 
762
- evalValueToRaw()
763
- isListJson = !isListJson
764
- }}
765
- checked={isListJson}
766
- textClass="text-secondary"
767
- size="xs"
768
- options={{ right: 'json' }}
769
- />
770
- </div>
825
+ evalValueToRaw()
826
+ isListJson = !isListJson
827
+ }}
828
+ checked={isListJson}
829
+ textClass="text-secondary"
830
+ size="xs"
831
+ options={{ left: 'json' }}
832
+ />
833
+ </div>
834
+ {/if}
771
835
  </div>
772
836
  {:else if inputCat == 'dynamic'}
773
837
  <DynamicInput name={label} {otherArgs} {helperScript} bind:value format={format ?? ''} />
@@ -790,7 +854,7 @@ onDestroy(() => {
790
854
  />
791
855
  {:else if inputCat == 'object' || inputCat == 'resource-object' || isListJson}
792
856
  {#if oneOf && oneOf.length >= 2}
793
- <div class="flex flex-col gap-2 w-full">
857
+ <div class="flex flex-col gap-2 w-full border rounded-md p-2">
794
858
  {#if oneOf && oneOf.length >= 2}
795
859
  <ToggleButtonGroup
796
860
  selected={oneOfSelected}
@@ -830,70 +894,70 @@ onDestroy(() => {
830
894
  {@const obj = oneOf[objIdx]}
831
895
  {#if obj && obj.properties && Object.keys(obj.properties).length > 0}
832
896
  {#key redraw}
833
- <div class="py-4 pr-2 pl-6 border rounded w-full">
834
- {#if orderEditable}
835
- <SchemaFormDnd
836
- {nestedClasses}
837
- {onlyMaskPassword}
838
- {disablePortal}
839
- {disabled}
840
- {prettifyHeader}
841
- bind:schema={
842
- () => ({
843
- properties: obj.properties ?? {},
844
- order: obj.order,
845
- $schema: '',
846
- required: obj.required ?? [],
847
- type: 'object'
848
- }),
849
- () => {
850
- dispatch('nestedChange')
851
- }
852
- }
853
- bind:args={value}
854
- hiddenArgs={[
855
- oneOf?.find((o) => Object.keys(o.properties ?? {}).includes('kind'))
856
- ? 'kind'
857
- : 'label'
858
- ]}
859
- on:reorder={(e) => {
860
- if (oneOf && oneOf[objIdx]) {
861
- const keys = e.detail
862
- oneOf[objIdx].order = keys
863
- }
864
- }}
865
- on:nestedChange
866
- {shouldDispatchChanges}
867
- />
868
- {:else}
869
- <SchemaForm
870
- {nestedClasses}
871
- {onlyMaskPassword}
872
- {disablePortal}
873
- {disabled}
874
- {prettifyHeader}
875
- hiddenArgs={['label', 'kind']}
876
- schema={{
877
- properties: obj.properties,
897
+ {#if orderEditable}
898
+ <SchemaFormDnd
899
+ lightHeaderFont
900
+ {nestedClasses}
901
+ {onlyMaskPassword}
902
+ {disablePortal}
903
+ {disabled}
904
+ {prettifyHeader}
905
+ bind:schema={
906
+ () => ({
907
+ properties: obj.properties ?? {},
878
908
  order: obj.order,
879
909
  $schema: '',
880
910
  required: obj.required ?? [],
881
911
  type: 'object'
882
- }}
883
- bind:args={
884
- () => value,
885
- (v) => {
886
- value = { ...v, [tagKey]: oneOfSelected }
887
- }
888
- }
889
- {shouldDispatchChanges}
890
- on:change={() => {
912
+ }),
913
+ () => {
891
914
  dispatch('nestedChange')
892
- }}
893
- on:nestedChange
894
- />
895
- {/if}
896
- </div>
915
+ }
916
+ }
917
+ bind:args={value}
918
+ hiddenArgs={[
919
+ oneOf?.find((o) => Object.keys(o.properties ?? {}).includes('kind'))
920
+ ? 'kind'
921
+ : 'label'
922
+ ]}
923
+ on:reorder={(e) => {
924
+ if (oneOf && oneOf[objIdx]) {
925
+ const keys = e.detail
926
+ oneOf[objIdx].order = keys
927
+ }
928
+ }}
929
+ on:nestedChange
930
+ {shouldDispatchChanges}
931
+ />
932
+ {:else}
933
+ <SchemaForm
934
+ lightHeaderFont
935
+ {nestedClasses}
936
+ {onlyMaskPassword}
937
+ {disablePortal}
938
+ {disabled}
939
+ {prettifyHeader}
940
+ hiddenArgs={['label', 'kind']}
941
+ schema={{
942
+ properties: obj.properties,
943
+ order: obj.order,
944
+ $schema: '',
945
+ required: obj.required ?? [],
946
+ type: 'object'
947
+ }}
948
+ bind:args={
949
+ () => value,
950
+ (v) => {
951
+ value = { ...v, [tagKey]: oneOfSelected }
952
+ }
953
+ }
954
+ {shouldDispatchChanges}
955
+ on:change={() => {
956
+ dispatch('nestedChange')
957
+ }}
958
+ on:nestedChange
959
+ />
960
+ {/if}
897
961
  {/key}
898
962
  {:else if disabled}
899
963
  <textarea disabled></textarea>
@@ -940,9 +1004,10 @@ onDestroy(() => {
940
1004
  {/if}
941
1005
  </div>
942
1006
  {:else if properties && Object.keys(properties).length > 0 && inputCat !== 'list'}
943
- <div class={hideNested ? 'hidden' : 'py-4 pr-2 pl-6 border rounded-md w-full'}>
1007
+ <div class={hideNested ? 'hidden' : 'px-3 pt-6 border rounded-md w-full'}>
944
1008
  {#if orderEditable}
945
1009
  <SchemaFormDnd
1010
+ lightHeaderFont
946
1011
  {nestedClasses}
947
1012
  {onlyMaskPassword}
948
1013
  {disablePortal}
@@ -973,6 +1038,7 @@ onDestroy(() => {
973
1038
  />
974
1039
  {:else}
975
1040
  <SchemaForm
1041
+ lightHeaderFont
976
1042
  {nestedClasses}
977
1043
  {onlyMaskPassword}
978
1044
  {disablePortal}
@@ -1023,8 +1089,8 @@ onDestroy(() => {
1023
1089
  />
1024
1090
  {/await}
1025
1091
  {/if}
1026
- {#if inputCat == 'list'}
1027
- <div class="block">
1092
+ {#if inputCat == 'list' && !displayHeader}
1093
+ <div class="block mt-2.5 pl-2">
1028
1094
  <Toggle
1029
1095
  on:change={(e) => {
1030
1096
  isListJson = !isListJson
@@ -1032,7 +1098,7 @@ onDestroy(() => {
1032
1098
  checked={isListJson}
1033
1099
  textClass="text-secondary"
1034
1100
  size="xs"
1035
- options={{ right: 'json' }}
1101
+ options={{ left: 'json' }}
1036
1102
  />
1037
1103
  </div>
1038
1104
  {/if}
@@ -1053,6 +1119,7 @@ onDestroy(() => {
1053
1119
  dispatch('blur')
1054
1120
  }}
1055
1121
  enumLabels={extra['enumLabels']}
1122
+ selectClass="min-h-10"
1056
1123
  />
1057
1124
  </div>
1058
1125
  {:else if inputCat == 'date'}
@@ -1161,12 +1228,7 @@ onDestroy(() => {
1161
1228
  use:autosize
1162
1229
  onkeydown={onKeyDown}
1163
1230
  {disabled}
1164
- class={twMerge(
1165
- 'w-full',
1166
- valid
1167
- ? ''
1168
- : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-3'
1169
- )}
1231
+ class={twMerge('w-full', inputBaseClass, inputBorderClass({ error: !!error }))}
1170
1232
  placeholder={placeholder ?? defaultValue ?? ''}
1171
1233
  bind:value
1172
1234
  ></textarea>
@@ -1177,7 +1239,7 @@ onDestroy(() => {
1177
1239
  <button
1178
1240
  class="absolute {password || extra?.['password'] == true
1179
1241
  ? 'right-16 top-1.5'
1180
- : 'right-1 top-1'} opacity-0 group-hover:opacity-100 duration-200 py-1 min-w-min !px-2 items-center text-gray-800 bg-surface-secondary border rounded center-center hover:bg-gray-300 transition-all cursor-pointer"
1242
+ : 'right-1 top-[7px]'} opacity-0 group-hover:opacity-100 duration-200 py-1 min-w-min !px-2 items-center text-gray-800 bg-surface-secondary border rounded center-center hover:bg-gray-300 transition-all cursor-pointer"
1181
1243
  onclick={() => {
1182
1244
  pickForField = label
1183
1245
  itemPicker?.openDrawer?.()
@@ -1195,14 +1257,20 @@ onDestroy(() => {
1195
1257
  {@render actions?.()}
1196
1258
  </div>
1197
1259
 
1260
+ {#if description}
1261
+ <div class={twMerge('text-2xs italic py-1 text-hint', css?.description?.class)}>
1262
+ <pre class="font-main whitespace-normal">{description}</pre>
1263
+ </div>
1264
+ {/if}
1265
+
1198
1266
  {#if !compact || (error && error != '')}
1199
- <div class="text-right text-xs text-red-600 dark:text-red-400">
1200
- {#if disabled || error === ''}
1201
- &nbsp;
1202
- {:else}
1267
+ {#if disabled || error === ''}
1268
+ &nbsp;
1269
+ {:else}
1270
+ <div class="text-right text-xs text-red-600 dark:text-red-400 mb-2">
1203
1271
  {error}
1204
- {/if}
1205
- </div>
1272
+ </div>
1273
+ {/if}
1206
1274
  {:else if !noMargin}
1207
1275
  <div class="mb-2"></div>
1208
1276
  {/if}
@@ -1213,11 +1281,4 @@ onDestroy(() => {
1213
1281
  input::-webkit-inner-spin-button {
1214
1282
  -webkit-appearance: none !important;
1215
1283
  margin: 0;
1216
- }
1217
-
1218
- /* Firefox */
1219
- input[type='number'] {
1220
- -moz-appearance: textfield !important;
1221
- -webkit-appearance: textfield !important;
1222
- appearance: textfield !important;
1223
1284
  }</style>
@@ -29,6 +29,7 @@ interface Props {
29
29
  [name: string]: SchemaProperty;
30
30
  };
31
31
  } | undefined;
32
+ lightHeaderFont?: boolean;
32
33
  displayHeader?: boolean;
33
34
  properties?: {
34
35
  [name: string]: SchemaProperty;
@@ -79,6 +80,8 @@ interface Props {
79
80
  } | undefined) | undefined;
80
81
  workspace?: string | undefined;
81
82
  actions?: import('svelte').Snippet;
83
+ innerBottomSnippet?: import('svelte').Snippet;
84
+ fieldHeaderActions?: import('svelte').Snippet;
82
85
  }
83
86
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
84
87
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -105,6 +108,6 @@ declare const ArgInput: $$__sveltets_2_IsomorphicComponent<Props, {
105
108
  [evt: string]: CustomEvent<any>;
106
109
  }, {}, {
107
110
  focus: () => void;
108
- }, "value" | "description" | "title" | "pattern" | "properties" | "defaultValue" | "placeholder" | "valid" | "oneOf" | "format" | "order" | "editor" | "enum_" | "itemsType" | "pickForField">;
111
+ }, "value" | "description" | "title" | "pattern" | "properties" | "placeholder" | "valid" | "oneOf" | "format" | "defaultValue" | "order" | "editor" | "enum_" | "itemsType" | "pickForField">;
109
112
  type ArgInput = InstanceType<typeof ArgInput>;
110
113
  export default ArgInput;