windmill-components 1.35.42 → 1.36.0

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 (245) hide show
  1. package/components/AppConnect.svelte +85 -59
  2. package/components/ArgInput.svelte +50 -33
  3. package/components/ArgInput.svelte.d.ts +1 -1
  4. package/components/Button.svelte +15 -48
  5. package/components/Button.svelte.d.ts +1 -1
  6. package/components/CronInput.svelte +1 -1
  7. package/components/DisplayResult.svelte +75 -67
  8. package/components/Dropdown.svelte +9 -7
  9. package/components/Editor.svelte +187 -178
  10. package/components/Editor.svelte.d.ts +4 -2
  11. package/components/EditorBar.svelte +135 -98
  12. package/components/EditorBar.svelte.d.ts +2 -1
  13. package/components/FlowBuilder.svelte +115 -134
  14. package/components/FlowJobResult.svelte +4 -5
  15. package/components/FlowModulesViewer.svelte +89 -7
  16. package/components/FlowModulesViewer.svelte.d.ts +1 -0
  17. package/components/FlowPreviewContent.svelte +88 -27
  18. package/components/FlowPreviewContent.svelte.d.ts +1 -1
  19. package/components/FlowStatusViewer.svelte +39 -24
  20. package/components/FlowStatusViewer.svelte.d.ts +0 -1
  21. package/components/FlowViewer.svelte +17 -11
  22. package/components/GroupModal.svelte +10 -1
  23. package/components/HighlightCode.svelte +22 -0
  24. package/components/HighlightCode.svelte.d.ts +17 -0
  25. package/components/IconedPath.svelte +9 -7
  26. package/components/InputTransformForm.svelte +97 -115
  27. package/components/InputTransformForm.svelte.d.ts +0 -1
  28. package/components/InputTransformsViewer.svelte +1 -1
  29. package/components/InviteGlobalUser.svelte +8 -8
  30. package/components/InviteUser.svelte +9 -9
  31. package/components/ItemPicker.svelte +37 -30
  32. package/components/ItemPicker.svelte.d.ts +2 -1
  33. package/components/JobStatus.svelte +2 -1
  34. package/components/LogViewer.svelte +23 -0
  35. package/components/LogViewer.svelte.d.ts +19 -0
  36. package/components/ModulePreview.svelte +107 -0
  37. package/components/ModulePreview.svelte.d.ts +24 -0
  38. package/components/Path.svelte +1 -1
  39. package/components/RadioButton.svelte +3 -2
  40. package/components/ResourceEditor.svelte +22 -34
  41. package/components/ResourceTypePicker.svelte +23 -34
  42. package/components/RunForm.svelte +34 -31
  43. package/components/RunForm.svelte.d.ts +6 -2
  44. package/components/SchemaEditor.svelte +19 -11
  45. package/components/SchemaForm.svelte +3 -3
  46. package/components/SchemaForm.svelte.d.ts +1 -1
  47. package/components/SchemaModal.svelte +18 -7
  48. package/components/ScriptBuilder.svelte +99 -83
  49. package/components/ScriptBuilder.svelte.d.ts +2 -4
  50. package/components/ScriptEditor.svelte +71 -143
  51. package/components/ScriptEditor.svelte.d.ts +0 -5
  52. package/components/ScriptPicker.svelte +24 -14
  53. package/components/ScriptPicker.svelte.d.ts +2 -1
  54. package/components/ScriptSchema.svelte +8 -11
  55. package/components/ScriptSchema.svelte.d.ts +0 -1
  56. package/components/ShareModal.svelte +6 -6
  57. package/components/SharedBadge.svelte +5 -13
  58. package/components/SimpleEditor.svelte +14 -10
  59. package/components/StringTypeNarrowing.svelte +24 -30
  60. package/components/TestJobLoader.svelte +106 -0
  61. package/components/TestJobLoader.svelte.d.ts +26 -0
  62. package/components/Tooltip.svelte +3 -2
  63. package/components/VariableEditor.svelte +15 -24
  64. package/components/common/actionRow/ActionRow.svelte +31 -0
  65. package/components/common/actionRow/ActionRow.svelte.d.ts +22 -0
  66. package/components/common/alert/Alert.svelte +53 -0
  67. package/components/common/alert/Alert.svelte.d.ts +20 -0
  68. package/components/common/alert/model.d.ts +1 -0
  69. package/components/common/alert/model.js +1 -0
  70. package/components/common/badge/Badge.svelte +76 -0
  71. package/components/common/badge/Badge.svelte.d.ts +28 -0
  72. package/components/common/badge/model.d.ts +8 -0
  73. package/components/common/badge/model.js +1 -0
  74. package/components/common/button/Button.svelte +110 -0
  75. package/components/common/button/Button.svelte.d.ts +39 -0
  76. package/components/common/button/model.d.ts +6 -0
  77. package/components/common/button/model.js +1 -0
  78. package/components/common/confirmationModal/ConfirmationModal.svelte +72 -0
  79. package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +23 -0
  80. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +41 -0
  81. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +14 -0
  82. package/components/common/confirmationModal/dirtyStore.d.ts +1 -0
  83. package/components/common/confirmationModal/dirtyStore.js +2 -0
  84. package/components/common/drawer/Drawer.svelte +3 -0
  85. package/components/common/drawer/Drawer.svelte.d.ts +2 -0
  86. package/components/common/index.d.ts +14 -0
  87. package/components/common/index.js +14 -0
  88. package/components/common/tabs/TabContent.svelte +3 -2
  89. package/components/common/tabs/TabContent.svelte.d.ts +1 -0
  90. package/components/common/tabs/Tabs.svelte +8 -1
  91. package/components/common/tabs/Tabs.svelte.d.ts +2 -0
  92. package/components/common/toggleButton/ToggleButton.svelte +20 -0
  93. package/components/common/toggleButton/ToggleButton.svelte.d.ts +19 -0
  94. package/components/common/toggleButton/ToggleButtonGroup.svelte +33 -0
  95. package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +24 -0
  96. package/components/flows/FlowEditor.svelte +30 -0
  97. package/components/{FlowEditor.svelte.d.ts → flows/FlowEditor.svelte.d.ts} +1 -6
  98. package/components/flows/common/FlowCard.svelte +9 -0
  99. package/components/flows/common/FlowCard.svelte.d.ts +21 -0
  100. package/components/flows/common/FlowCardHeader.svelte +39 -0
  101. package/components/flows/common/FlowCardHeader.svelte.d.ts +20 -0
  102. package/components/flows/content/CopyFirstStepSchema.svelte +13 -0
  103. package/components/flows/{CopyFirstStepSchema.svelte.d.ts → content/CopyFirstStepSchema.svelte.d.ts} +0 -0
  104. package/components/flows/{DynamicInputHelpBox.svelte → content/DynamicInputHelpBox.svelte} +0 -0
  105. package/components/flows/{DynamicInputHelpBox.svelte.d.ts → content/DynamicInputHelpBox.svelte.d.ts} +0 -0
  106. package/components/flows/content/FlowEditorPanel.svelte +25 -0
  107. package/components/flows/content/FlowEditorPanel.svelte.d.ts +16 -0
  108. package/components/flows/content/FlowFailureModule.svelte +15 -0
  109. package/components/flows/content/FlowFailureModule.svelte.d.ts +14 -0
  110. package/components/flows/content/FlowInput.svelte +26 -0
  111. package/components/flows/{FlowInput.svelte.d.ts → content/FlowInput.svelte.d.ts} +0 -0
  112. package/components/flows/content/FlowInputs.svelte +91 -0
  113. package/components/flows/{FlowInputs.svelte.d.ts → content/FlowInputs.svelte.d.ts} +1 -0
  114. package/components/flows/content/FlowLoop.svelte +168 -0
  115. package/components/flows/content/FlowLoop.svelte.d.ts +18 -0
  116. package/components/flows/content/FlowLoopWrapper.svelte +9 -0
  117. package/components/flows/content/FlowLoopWrapper.svelte.d.ts +14 -0
  118. package/components/flows/content/FlowModule.svelte +211 -0
  119. package/components/flows/content/FlowModule.svelte.d.ts +29 -0
  120. package/components/flows/content/FlowModuleEarlyStop.svelte +76 -0
  121. package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +17 -0
  122. package/components/flows/content/FlowModuleHeader.svelte +157 -0
  123. package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts} +5 -3
  124. package/components/flows/content/FlowModuleScript.svelte +21 -0
  125. package/components/flows/content/FlowModuleScript.svelte.d.ts +17 -0
  126. package/components/flows/content/FlowModuleSuspend.svelte +27 -0
  127. package/components/flows/content/FlowModuleSuspend.svelte.d.ts +17 -0
  128. package/components/flows/content/FlowModuleWrapper.svelte +45 -0
  129. package/components/flows/content/FlowModuleWrapper.svelte.d.ts +14 -0
  130. package/components/flows/content/FlowRetries.svelte +80 -0
  131. package/components/flows/content/FlowRetries.svelte.d.ts +17 -0
  132. package/components/flows/content/FlowSchedules.svelte +18 -0
  133. package/components/flows/content/FlowSchedules.svelte.d.ts +14 -0
  134. package/components/flows/content/FlowSettings.svelte +78 -0
  135. package/components/flows/{FlowSettings.svelte.d.ts → content/FlowSettings.svelte.d.ts} +2 -6
  136. package/components/flows/content/RemoveStepConfirmationModal.svelte +32 -0
  137. package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +19 -0
  138. package/components/flows/flowState.d.ts +8 -7
  139. package/components/flows/flowState.js +25 -46
  140. package/components/flows/flowStateUtils.d.ts +16 -14
  141. package/components/flows/flowStateUtils.js +81 -73
  142. package/components/flows/flowStore.js +7 -4
  143. package/components/flows/header/FlowImportExportMenu.svelte +55 -0
  144. package/components/flows/header/FlowImportExportMenu.svelte.d.ts +14 -0
  145. package/components/flows/header/FlowPreviewButtons.svelte +57 -0
  146. package/components/flows/header/FlowPreviewButtons.svelte.d.ts +14 -0
  147. package/components/flows/map/FlowErrorHandlerItem.svelte +60 -0
  148. package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +14 -0
  149. package/components/flows/map/FlowModuleSchemaItem.svelte +80 -0
  150. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +32 -0
  151. package/components/flows/map/FlowModuleSchemaMap.svelte +241 -0
  152. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +20 -0
  153. package/components/flows/pickers/PickHubScript.svelte +5 -3
  154. package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -1
  155. package/components/flows/pickers/PickScript.svelte +4 -12
  156. package/components/flows/pickers/PickScript.svelte.d.ts +1 -1
  157. package/components/flows/propPicker/PropPickerWrapper.svelte +44 -0
  158. package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +33 -0
  159. package/components/flows/scheduleUtils.d.ts +0 -1
  160. package/components/flows/scheduleUtils.js +0 -1
  161. package/components/flows/types.d.ts +8 -0
  162. package/components/flows/types.js +1 -0
  163. package/components/flows/utils.d.ts +3 -1
  164. package/components/flows/utils.js +26 -10
  165. package/components/icons/AirtableIcon.svelte +1 -1
  166. package/components/icons/DiscordIcon.svelte +1 -1
  167. package/components/icons/GCloudIcon.svelte +1 -1
  168. package/components/icons/GItlabIcon.svelte +1 -1
  169. package/components/icons/GSheetsIcon.svelte +1 -1
  170. package/components/icons/GcalIcon.svelte +1 -1
  171. package/components/icons/GdriveIcon.svelte +1 -1
  172. package/components/icons/GithubIcon.svelte +1 -1
  173. package/components/icons/GmailIcon.svelte +1 -1
  174. package/components/icons/HatIcon.svelte +19 -0
  175. package/components/icons/HatIcon.svelte.d.ts +16 -0
  176. package/components/icons/MastodonIcon.svelte +1 -1
  177. package/components/icons/MatrixIcon.svelte +1 -1
  178. package/components/icons/PostgresIcon.svelte +1 -1
  179. package/components/icons/S3Icon.svelte +1 -1
  180. package/components/icons/Slack.svelte +1 -1
  181. package/components/icons/TogglIcon.svelte +8 -46
  182. package/components/jobs/JobDetail.svelte +1 -1
  183. package/components/landing/FlowGettingStarted.svelte +22 -68
  184. package/components/landing/FlowLandingBox.svelte +1 -1
  185. package/components/landing/RessourceGettingStarted.svelte +7 -37
  186. package/components/landing/ScriptBox.svelte +33 -60
  187. package/components/landing/ScriptGettingStarted.svelte +23 -69
  188. package/components/propertyPicker/ObjectViewer.svelte +18 -12
  189. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  190. package/components/propertyPicker/PropPicker.svelte +108 -11
  191. package/components/propertyPicker/WarningMessage.svelte +2 -15
  192. package/components/script_editor/LogPanel.svelte +108 -119
  193. package/components/script_editor/LogPanel.svelte.d.ts +2 -0
  194. package/components/sidebar/SidebarContent.svelte +2 -2
  195. package/editorUtils.d.ts +3 -0
  196. package/editorUtils.js +1 -0
  197. package/gen/core/OpenAPI.js +1 -1
  198. package/gen/index.d.ts +1 -0
  199. package/gen/models/CompletedJob.d.ts +2 -1
  200. package/gen/models/CompletedJob.js +1 -0
  201. package/gen/models/FlowModule.d.ts +3 -0
  202. package/gen/models/FlowStatus.d.ts +3 -0
  203. package/gen/models/FlowStatusModule.d.ts +1 -1
  204. package/gen/models/Preview.d.ts +2 -1
  205. package/gen/models/Preview.js +1 -0
  206. package/gen/models/QueuedJob.d.ts +2 -1
  207. package/gen/models/QueuedJob.js +1 -0
  208. package/gen/models/RawScript.d.ts +2 -1
  209. package/gen/models/RawScript.js +1 -0
  210. package/gen/models/Retry.d.ts +11 -0
  211. package/gen/models/Retry.js +4 -0
  212. package/gen/models/Script.d.ts +9 -2
  213. package/gen/models/Script.js +8 -0
  214. package/gen/services/JobService.d.ts +40 -0
  215. package/gen/services/JobService.js +70 -0
  216. package/gen/services/ScriptService.d.ts +14 -3
  217. package/gen/services/ScriptService.js +13 -0
  218. package/infer.d.ts +1 -1
  219. package/infer.js +6 -1
  220. package/package.json +71 -38
  221. package/script_helpers.d.ts +8 -2
  222. package/script_helpers.js +88 -16
  223. package/stores.d.ts +1 -1
  224. package/utils.d.ts +8 -6
  225. package/utils.js +57 -21
  226. package/components/FlowEditor.svelte +0 -55
  227. package/components/FlowPreview.svelte +0 -107
  228. package/components/FlowPreview.svelte.d.ts +0 -23
  229. package/components/ModuleStep.svelte +0 -131
  230. package/components/ModuleStep.svelte.d.ts +0 -25
  231. package/components/flows/CopyFirstStepSchema.svelte +0 -13
  232. package/components/flows/FlowBox.svelte +0 -16
  233. package/components/flows/FlowBox.svelte.d.ts +0 -23
  234. package/components/flows/FlowBoxHeader.svelte +0 -16
  235. package/components/flows/FlowBoxHeader.svelte.d.ts +0 -21
  236. package/components/flows/FlowInput.svelte +0 -22
  237. package/components/flows/FlowInputs.svelte +0 -65
  238. package/components/flows/FlowModuleHeader.svelte +0 -109
  239. package/components/flows/FlowSettings.svelte +0 -165
  240. package/components/flows/FlowTimeline.svelte +0 -169
  241. package/components/flows/FlowTimeline.svelte.d.ts +0 -21
  242. package/components/flows/stepOpenedStore.d.ts +0 -1
  243. package/components/flows/stepOpenedStore.js +0 -6
  244. package/components/propertyPicker/OverlayPropertyPicker.svelte +0 -69
  245. package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +0 -24
@@ -28,6 +28,7 @@ import Icon from 'svelte-awesome';
28
28
  import Modal from './Modal.svelte';
29
29
  import Password from './Password.svelte';
30
30
  import Path from './Path.svelte';
31
+ import { Button } from './common';
31
32
  let manual = false;
32
33
  let value = '';
33
34
  let valueToken;
@@ -156,6 +157,10 @@ $: isGoogleSignin =
156
157
  resource_type == 'gcal' ||
157
158
  resource_type == 'gdrive' ||
158
159
  resource_type == 'gsheets');
160
+ $: disabled =
161
+ (step == 1 && resource_type == '') ||
162
+ (step == 2 && value == '') ||
163
+ (step == 3 && pathError != '');
159
164
  </script>
160
165
 
161
166
  <Modal
@@ -185,8 +190,10 @@ $: isGoogleSignin =
185
190
  <PageHeader title="OAuth APIs" />
186
191
  <div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
187
192
  {#each Object.entries(connects).sort((a, b) => a[0].localeCompare(b[0])) as [key, values]}
188
- <button
189
- class="px-4 h-8 {key == resource_type ? 'item-button-selected' : 'item-button'}"
193
+ <Button
194
+ variant="border"
195
+ color={key === resource_type ? 'blue' : 'dark'}
196
+ btnClasses={key === resource_type ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
190
197
  on:click={() => {
191
198
  manual = false
192
199
  resource_type = key
@@ -197,64 +204,93 @@ $: isGoogleSignin =
197
204
  }}
198
205
  >
199
206
  <IconedResourceType name={key} after={true} />
200
- </button>
207
+ </Button>
201
208
  {/each}
202
209
  </div>
203
- <PageHeader title="scopes" primary={false} />
210
+ <PageHeader title="Scopes" primary={false} />
204
211
  {#if !manual && resource_type != ''}
205
212
  {#each scopes as v}
206
- <div class="flex flex-row max-w-md">
213
+ <div class="flex flex-row max-w-md mb-2">
207
214
  <input type="text" bind:value={v} />
208
- <button
209
- class="default-button-secondary mx-6"
215
+ <Button
216
+ variant="border"
217
+ color="red"
218
+ size="xs"
219
+ btnClasses="mx-6"
210
220
  on:click={() => {
211
221
  scopes = scopes.filter((el) => el != v)
212
- }}><Icon data={faMinus} class="mb-1" /></button
222
+ }}
213
223
  >
224
+ <Icon data={faMinus} />
225
+ </Button>
214
226
  </div>
215
227
  {/each}
216
- <button
217
- class="default-button-secondary mt-1"
218
- on:click={() => {
219
- scopes = scopes.concat('')
220
- }}>Add item &nbsp;<Icon data={faPlus} class="mb-1" /></button
221
- ><span class="ml-2">{(scopes ?? []).length} item{(scopes ?? []).length > 1 ? 's' : ''}</span
222
- >
228
+ <div class="flex items-center mt-1">
229
+ <Button
230
+ variant="border"
231
+ color="blue"
232
+ size="sm"
233
+ endIcon={{ icon: faPlus }}
234
+ on:click={() => {
235
+ scopes = scopes.concat('')
236
+ }}
237
+ >
238
+ Add item
239
+ </Button>
240
+ <span class="ml-2 text-sm text-gray-500">
241
+ ({(scopes ?? []).length} item{(scopes ?? []).length > 1 ? 's' : ''})
242
+ </span>
243
+ </div>
223
244
  {:else}
224
245
  <p class="italic text-sm">Pick an OAuth API and customize the scopes here</p>
225
246
  {/if}
226
247
  <PageHeader title="Extra Params" primary={false} />
227
248
  {#if !manual && resource_type != ''}
228
249
  {#each extra_params as [k, v]}
229
- <div class="flex flex-row max-w-md">
230
- <input type="text" bind:value={k} />
250
+ <div class="flex flex-row max-w-md mb-2">
251
+ <input type="text" bind:value={k} class="mr-2" />
231
252
  <input type="text" bind:value={v} />
232
253
 
233
- <button
234
- class="default-button-secondary mx-6"
254
+ <Button
255
+ variant="border"
256
+ color="red"
257
+ size="xs"
258
+ btnClasses="mx-6"
235
259
  on:click={() => {
236
260
  extra_params = extra_params.filter((el) => el[0] != k)
237
- }}><Icon data={faMinus} class="mb-1" /></button
261
+ }}
238
262
  >
263
+ <Icon data={faMinus} />
264
+ </Button>
239
265
  </div>
240
266
  {/each}
241
- <button
242
- class="default-button-secondary mt-1"
243
- on:click={() => {
244
- extra_params.push(['', ''])
245
- extra_params = extra_params
246
- }}>Add item &nbsp;<Icon data={faPlus} class="mb-1" /></button
247
- ><span class="ml-2"
248
- >{(extra_params ?? []).length} item{(extra_params ?? []).length > 1 ? 's' : ''}</span
249
- >
267
+ <div class="flex items-center mt-1">
268
+ <Button
269
+ variant="border"
270
+ color="blue"
271
+ size="sm"
272
+ endIcon={{ icon: faPlus }}
273
+ on:click={() => {
274
+ extra_params.push(['', ''])
275
+ extra_params = extra_params
276
+ }}
277
+ >
278
+ Add item
279
+ </Button>
280
+ <span class="ml-2 text-sm text-gray-500">
281
+ ({(extra_params ?? []).length} item{(extra_params ?? []).length > 1 ? 's' : ''})
282
+ </span>
283
+ </div>
250
284
  {:else}
251
285
  <p class="italic text-sm">Pick an OAuth API and customize the extra parameters here</p>
252
286
  {/if}
253
287
  <PageHeader title="Non OAuth APIs" />
254
288
  <div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
255
289
  {#each connectsManual as [key, instructions]}
256
- <button
257
- class="px-4 h-8 {key == resource_type ? 'item-button-selected' : 'item-button'}"
290
+ <Button
291
+ variant="border"
292
+ color={key === resource_type ? 'blue' : 'dark'}
293
+ btnClasses={key === resource_type ? '!border-2 !bg-blue-50/75' : 'm-[1px]'}
258
294
  on:click={() => {
259
295
  manual = true
260
296
  resource_type = key
@@ -262,7 +298,7 @@ $: isGoogleSignin =
262
298
  }}
263
299
  >
264
300
  <IconedResourceType name={key} after={true} />
265
- </button>
301
+ </Button>
266
302
  {/each}
267
303
  </div>
268
304
  {:else if step == 2}
@@ -310,34 +346,24 @@ $: isGoogleSignin =
310
346
  </ul>
311
347
  {/if}
312
348
  </div>
313
- <div slot="submission">
349
+ <div slot="submission" class="flex items-center gap-4">
314
350
  {#if step > 1 && !no_back}
315
- <button class="default-button px-4 py-2 font-semibold" on:click={back}>Back</button>
351
+ <Button variant="border" on:click={back}>Back</Button>
352
+ {/if}
353
+ {#if isGoogleSignin}
354
+ <button {disabled} on:click={next}>
355
+ <img class="h-10 w-auto" src="/google_signin.png" alt="Google sign-in" />
356
+ </button>
357
+ {:else}
358
+ <Button {disabled} on:click={next}>
359
+ {#if step == 1 && !manual}
360
+ Connect
361
+ {:else if step == 3}
362
+ Add resource
363
+ {:else}
364
+ Next
365
+ {/if}
366
+ </Button>
316
367
  {/if}
317
- <button
318
- class={isGoogleSignin ? '' : 'default-button px-4 py-2 font-semibold'}
319
- class:default-button-disabled={(step == 1 && resource_type == '') ||
320
- (step == 2 && value == '') ||
321
- (step == 3 && pathError != '')}
322
- on:click={next}
323
- >
324
- {#if isGoogleSignin}
325
- <img src="/google_signin.png" alt="Google sign-in" />
326
- {:else if step == 1 && !manual}
327
- Connect
328
- {:else if step == 3}
329
- Add resource
330
- {:else}
331
- Next
332
- {/if}
333
- </button>
334
368
  </div>
335
369
  </Modal>
336
-
337
- <style>
338
- .selected:hover {
339
- border-radius: 0.375rem;
340
- border-width: 1px;
341
- border-color: rgb(156 163 175 / var(--tw-border-opacity));
342
- --tw-border-opacity: 0.5
343
- }</style>
@@ -1,7 +1,7 @@
1
1
  <script>import { slide } from 'svelte/transition';
2
- import { faArrowRotateLeft, faChevronDown, faChevronUp, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons';
2
+ import { faChevronDown, faChevronUp, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons';
3
3
  import { setInputCat as computeInputCat } from '../utils';
4
- import { Button, Tooltip } from 'flowbite-svelte';
4
+ import { Button } from './common';
5
5
  import { createEventDispatcher } from 'svelte';
6
6
  import Icon from 'svelte-awesome';
7
7
  import FieldHeader from './FieldHeader.svelte';
@@ -31,10 +31,10 @@ export let displayHeader = true;
31
31
  export let properties = undefined;
32
32
  let seeEditable = enum_ != undefined || pattern != undefined;
33
33
  const dispatch = createEventDispatcher();
34
- $: minHeight = `${1 + minRows * 1.2}em`;
35
34
  $: maxHeight = maxRows ? `${1 + maxRows * 1.2}em` : `auto`;
36
35
  $: validateInput(pattern, value);
37
36
  let error = '';
37
+ let el = undefined;
38
38
  export let editor = undefined;
39
39
  let rawValue = undefined;
40
40
  $: {
@@ -83,7 +83,7 @@ function fileChanged(e, cb) {
83
83
  }
84
84
  }
85
85
  function validateInput(pattern, v) {
86
- if (required && (v == undefined || v == null)) {
86
+ if (required && (v == undefined || v == null || v === '')) {
87
87
  error = 'This field is required';
88
88
  valid = false;
89
89
  }
@@ -108,8 +108,11 @@ function testRegex(pattern, value) {
108
108
  }
109
109
  }
110
110
  $: {
111
- if (value == undefined) {
111
+ if (value == undefined || value == null) {
112
112
  value = defaultValue;
113
+ if ((defaultValue === undefined || defaultValue === null) && inputCat === 'string') {
114
+ value = '';
115
+ }
113
116
  }
114
117
  }
115
118
  export let inputCat = 'string';
@@ -156,25 +159,19 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
156
159
  </div>
157
160
  {/if}
158
161
  </div>
159
- <span class="text-2xs">Preview:</span>
162
+ <span class="text-2xs">Input preview:</span>
160
163
  {/if}
161
164
 
162
- <div class="grid grid-cols-2">
163
- {#if description || error}
164
- <div class="text-sm italic pb-1">
165
- {description}
166
- </div>
167
- <div class="text-right text-xs {error === '' ? 'text-white' : 'font-bold text-red-600'}">
168
- {error === '' ? '...' : error}
169
- </div>
170
- {:else}
171
- <div class="mt-1" />
172
- {/if}
173
- </div>
165
+ {#if description}
166
+ <div class="text-sm italic pb-1">
167
+ {description}
168
+ </div>
169
+ {/if}
174
170
 
175
171
  <div class="flex space-x-1">
176
172
  {#if inputCat == 'number'}
177
173
  <input
174
+ on:focus
178
175
  {disabled}
179
176
  type="number"
180
177
  class={valid
@@ -199,7 +196,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
199
196
  {:else if inputCat == 'list'}
200
197
  <div>
201
198
  <div>
202
- {#each value ?? [] as v}
199
+ {#each value ?? [] as v, i}
203
200
  <div class="flex flex-row max-w-md mt-1">
204
201
  {#if itemsType?.type == 'number'}
205
202
  <input type="number" bind:value={v} />
@@ -207,14 +204,17 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
207
204
  <input
208
205
  type="file"
209
206
  class="my-6"
210
- on:change={(x) => fileChanged(x, (val) => (v = val))}
207
+ on:change={(x) => fileChanged(x, (val) => (value[i] = val))}
211
208
  multiple={false}
212
209
  />
213
210
  {:else}
214
211
  <input type="text" bind:value={v} />
215
212
  {/if}
216
- <button
217
- class="default-button-secondary mx-6"
213
+ <Button
214
+ variant="border"
215
+ color="red"
216
+ size="sm"
217
+ btnClasses="mx-6"
218
218
  on:click={() => {
219
219
  value = value.filter((el) => el != v)
220
220
  if (value.length == 0) {
@@ -222,13 +222,16 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
222
222
  }
223
223
  }}
224
224
  >
225
- <Icon data={faMinus} class="mb-1" />
226
- </button>
225
+ <Icon data={faMinus} />
226
+ </Button>
227
227
  </div>
228
228
  {/each}
229
229
  </div>
230
- <button
231
- class="default-button-secondary mt-1"
230
+ <Button
231
+ variant="border"
232
+ color="blue"
233
+ size="sm"
234
+ btnClasses="mt-1"
232
235
  on:click={() => {
233
236
  if (value == undefined) {
234
237
  value = []
@@ -238,7 +241,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
238
241
  >
239
242
  <Icon data={faPlus} class="mr-2" />
240
243
  Add item
241
- </button>
244
+ </Button>
242
245
  <span class="ml-2">
243
246
  {(value ?? []).length} item{(value ?? []).length > 1 ? 's' : ''}
244
247
  </span>
@@ -255,9 +258,16 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
255
258
  </div>
256
259
  {:else}
257
260
  <textarea
261
+ bind:this={el}
262
+ on:focus
258
263
  {disabled}
259
- style="min-height: {minHeight}; max-height: {maxHeight}"
260
- on:input={async () => recomputeRowSize(rawValue ?? '')}
264
+ style="max-height: {maxHeight}"
265
+ on:input={(e) => {
266
+ if (el) {
267
+ el.style.height = '5px'
268
+ el.style.height = el.scrollHeight + 'px'
269
+ }
270
+ }}
261
271
  class="col-span-10 {valid
262
272
  ? ''
263
273
  : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'}"
@@ -303,23 +313,27 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
303
313
  />
304
314
  {:else if inputCat == 'string'}
305
315
  <textarea
316
+ bind:this={el}
306
317
  on:focus={() => dispatch('focus')}
307
318
  on:blur={() => dispatch('blur')}
308
319
  {disabled}
309
- style="height: {minHeight}; max-height: {maxHeight}"
320
+ style="height: 30px; max-height: {maxHeight}"
310
321
  class="col-span-10 {valid
311
322
  ? ''
312
323
  : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'}"
313
324
  placeholder={defaultValue ?? ''}
314
325
  bind:value
315
326
  on:input={async () => {
316
- recomputeRowSize(value)
327
+ if (el) {
328
+ el.style.height = '30px'
329
+ el.style.height = el.scrollHeight + 'px'
330
+ }
317
331
  dispatch('input', { rawValue: value, isRaw: false })
318
332
  }}
319
333
  />
320
334
  {/if}
321
335
  {#if !required && inputCat != 'resource-object'}
322
- <Tooltip placement="bottom" content="Reset to default value">
336
+ <!-- <Tooltip placement="bottom" content="Reset to default value">
323
337
  <Button
324
338
  on:click={() => (value = undefined)}
325
339
  {disabled}
@@ -329,9 +343,12 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
329
343
  >
330
344
  <Icon data={faArrowRotateLeft} />
331
345
  </Button>
332
- </Tooltip>
346
+ </Tooltip> -->
333
347
  {/if}
334
348
  <slot name="actions" />
335
349
  </div>
350
+ <div class="text-right text-xs {error === '' ? 'text-white' : 'font-bold text-red-600'}">
351
+ {error === '' ? '...' : error}
352
+ </div>
336
353
  </div>
337
354
  </div>
@@ -32,8 +32,8 @@ declare const __propDef: {
32
32
  inputCat?: InputCat | undefined;
33
33
  };
34
34
  events: {
35
- input: CustomEvent<any>;
36
35
  focus: CustomEvent<any>;
36
+ input: CustomEvent<any>;
37
37
  blur: CustomEvent<any>;
38
38
  } & {
39
39
  [evt: string]: CustomEvent<any>;
@@ -1,16 +1,25 @@
1
1
  <script>import { faArchive, faEdit, faList, faPlay, faShare, faTrash } from '@fortawesome/free-solid-svg-icons';
2
- import { createEventDispatcher } from 'svelte';
3
2
  import Icon from 'svelte-awesome';
4
3
  export let category;
5
4
  export let disabled = false;
6
- const dispatch = createEventDispatcher();
5
+ const colors = {
6
+ red: 'bg-transparent hover:bg-red-600 text-red-600 font-normal hover:text-white border-red-600 hover:border-transparent rounded',
7
+ blue: 'hover:bg-blue-500 hover:text-white'
8
+ };
9
+ const getCategoryClasses = () => {
10
+ if (category === 'delete' || category === 'archive')
11
+ return colors.red;
12
+ else if (category === 'edit' || category === 'list' || category === 'share')
13
+ return colors.blue;
14
+ return '';
15
+ };
7
16
  </script>
8
17
 
9
18
  <button
10
- class="{$$props.class} inline-flex items-center default-button py-0 px-1 {category} default-button-secondary"
11
- on:click={() => {
12
- dispatch('click')
13
- }}
19
+ class="{$$props.class} inline-flex items-center bg-blue-500 hover:bg-blue-700 text-white
20
+ font-bold py-1 px-2 border rounded border-blue-500 hover:border-blue-700 w-min min-w-max
21
+ text-sm {getCategoryClasses()}"
22
+ on:click
14
23
  {disabled}
15
24
  >
16
25
  <div class="inline-flex items-center justify-center">
@@ -47,45 +56,3 @@ const dispatch = createEventDispatcher();
47
56
  {/if}
48
57
  </div>
49
58
  </button>
50
-
51
- <style>
52
- .delete,
53
- .archive {
54
- background-color: transparent
55
- }
56
- .delete:hover,
57
- .archive:hover {
58
- --tw-bg-opacity: 1;
59
- background-color: rgb(224 36 36 / var(--tw-bg-opacity))
60
- }
61
- .delete,
62
- .archive {
63
- font-weight: 400;
64
- --tw-text-opacity: 1;
65
- color: rgb(224 36 36 / var(--tw-text-opacity))
66
- }
67
- .delete:hover,
68
- .archive:hover {
69
- --tw-text-opacity: 1;
70
- color: rgb(255 255 255 / var(--tw-text-opacity))
71
- }
72
- .delete,
73
- .archive {
74
- border-radius: 0.25rem;
75
- --tw-border-opacity: 1;
76
- border-color: rgb(224 36 36 / var(--tw-border-opacity))
77
- }
78
- .delete:hover,
79
- .archive:hover {
80
- border-color: transparent
81
- }
82
-
83
- .edit:hover,
84
- .play:hover,
85
- .list:hover,
86
- .share:hover {
87
- --tw-bg-opacity: 1;
88
- background-color: rgb(63 131 248 / var(--tw-bg-opacity));
89
- --tw-text-opacity: 1;
90
- color: rgb(255 255 255 / var(--tw-text-opacity))
91
- }</style>
@@ -6,7 +6,7 @@ declare const __propDef: {
6
6
  disabled?: boolean | undefined;
7
7
  };
8
8
  events: {
9
- click: CustomEvent<any>;
9
+ click: MouseEvent;
10
10
  } & {
11
11
  [evt: string]: CustomEvent<any>;
12
12
  };
@@ -32,7 +32,7 @@ async function handleScheduleInput(input) {
32
32
  }
33
33
  </script>
34
34
 
35
- <div class="text-purple-500 text-2xs grow">{cronError}</div>
35
+ <div class="text-red-600 text-2xs grow">{cronError}</div>
36
36
  <div class="flex flex-row items-end max-w-5xl">
37
37
  <label class="text-xs min-w-max mr-2 self-center" for="cron-schedule">CRON expression</label>
38
38
  <input