windmill-components 1.35.1 → 1.35.43

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 (201) hide show
  1. package/components/ArgInput.svelte +21 -21
  2. package/components/ArgInput.svelte.d.ts +3 -3
  3. package/components/DisplayResult.svelte +73 -67
  4. package/components/Editor.svelte +184 -246
  5. package/components/Editor.svelte.d.ts +4 -4
  6. package/components/EditorBar.svelte +58 -45
  7. package/components/EditorBar.svelte.d.ts +2 -1
  8. package/components/FlowBuilder.svelte +113 -121
  9. package/components/FlowJobResult.svelte +4 -5
  10. package/components/FlowModulesViewer.svelte +89 -7
  11. package/components/FlowModulesViewer.svelte.d.ts +1 -0
  12. package/components/FlowPreviewContent.svelte +56 -15
  13. package/components/FlowPreviewContent.svelte.d.ts +1 -1
  14. package/components/FlowStatusViewer.svelte +42 -24
  15. package/components/FlowStatusViewer.svelte.d.ts +0 -1
  16. package/components/FlowViewer.svelte +7 -3
  17. package/components/HighlightCode.svelte +21 -0
  18. package/components/HighlightCode.svelte.d.ts +17 -0
  19. package/components/IconedPath.svelte +9 -7
  20. package/components/IconedResourceType.svelte +1 -1
  21. package/components/InputTransformForm.svelte +88 -107
  22. package/components/InputTransformForm.svelte.d.ts +0 -1
  23. package/components/ItemPicker.svelte +2 -2
  24. package/components/LogViewer.svelte +23 -0
  25. package/components/LogViewer.svelte.d.ts +19 -0
  26. package/components/ModulePreview.svelte +108 -0
  27. package/components/ModulePreview.svelte.d.ts +24 -0
  28. package/components/RunForm.svelte +29 -18
  29. package/components/RunForm.svelte.d.ts +6 -2
  30. package/components/SchemaEditor.svelte +5 -3
  31. package/components/SchemaForm.svelte +0 -2
  32. package/components/SchemaForm.svelte.d.ts +0 -1
  33. package/components/ScriptBuilder.svelte +77 -66
  34. package/components/ScriptBuilder.svelte.d.ts +2 -4
  35. package/components/ScriptEditor.svelte +69 -142
  36. package/components/ScriptEditor.svelte.d.ts +0 -5
  37. package/components/ScriptPicker.svelte +3 -3
  38. package/components/ScriptPicker.svelte.d.ts +2 -1
  39. package/components/SharedBadge.svelte +5 -13
  40. package/components/SimpleEditor.svelte +147 -0
  41. package/components/SimpleEditor.svelte.d.ts +35 -0
  42. package/components/TestJobLoader.svelte +98 -0
  43. package/components/TestJobLoader.svelte.d.ts +26 -0
  44. package/components/Tooltip.svelte +2 -1
  45. package/components/common/actionRow/ActionRow.svelte +26 -0
  46. package/components/common/actionRow/ActionRow.svelte.d.ts +21 -0
  47. package/components/common/alert/Alert.svelte +53 -0
  48. package/components/common/alert/Alert.svelte.d.ts +20 -0
  49. package/components/common/alert/model.d.ts +1 -0
  50. package/components/common/alert/model.js +1 -0
  51. package/components/common/badge/Badge.svelte +82 -0
  52. package/components/common/badge/Badge.svelte.d.ts +28 -0
  53. package/components/common/badge/model.d.ts +8 -0
  54. package/components/common/badge/model.js +1 -0
  55. package/components/common/button/Button.svelte +107 -0
  56. package/components/common/button/Button.svelte.d.ts +37 -0
  57. package/components/common/button/model.d.ts +6 -0
  58. package/components/common/button/model.js +1 -0
  59. package/components/common/confirmationModal/ConfirmationModal.svelte +55 -0
  60. package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +23 -0
  61. package/components/common/drawer/Drawer.svelte +3 -0
  62. package/components/common/drawer/Drawer.svelte.d.ts +2 -0
  63. package/components/common/index.d.ts +14 -0
  64. package/components/common/index.js +14 -0
  65. package/components/common/tabs/TabContent.svelte +3 -2
  66. package/components/common/tabs/TabContent.svelte.d.ts +1 -0
  67. package/components/common/tabs/Tabs.svelte +8 -1
  68. package/components/common/tabs/Tabs.svelte.d.ts +2 -0
  69. package/components/common/toggleButton/ToggleButton.svelte +20 -0
  70. package/components/common/toggleButton/ToggleButton.svelte.d.ts +19 -0
  71. package/components/common/toggleButton/ToggleButtonGroup.svelte +33 -0
  72. package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +24 -0
  73. package/components/flows/FlowEditor.svelte +30 -0
  74. package/components/{FlowEditor.svelte.d.ts → flows/FlowEditor.svelte.d.ts} +1 -8
  75. package/components/flows/common/FlowCard.svelte +9 -0
  76. package/components/flows/common/FlowCard.svelte.d.ts +21 -0
  77. package/components/flows/common/FlowCardHeader.svelte +39 -0
  78. package/components/flows/common/FlowCardHeader.svelte.d.ts +20 -0
  79. package/components/flows/content/CopyFirstStepSchema.svelte +13 -0
  80. package/components/flows/{CopyFirstStepSchema.svelte.d.ts → content/CopyFirstStepSchema.svelte.d.ts} +0 -0
  81. package/components/flows/{DynamicInputHelpBox.svelte → content/DynamicInputHelpBox.svelte} +0 -0
  82. package/components/flows/{DynamicInputHelpBox.svelte.d.ts → content/DynamicInputHelpBox.svelte.d.ts} +0 -0
  83. package/components/flows/content/FlowEditorPanel.svelte +26 -0
  84. package/components/flows/content/FlowEditorPanel.svelte.d.ts +14 -0
  85. package/components/flows/content/FlowFailureModule.svelte +17 -0
  86. package/components/flows/content/FlowFailureModule.svelte.d.ts +14 -0
  87. package/components/flows/content/FlowInput.svelte +22 -0
  88. package/components/flows/{FlowInput.svelte.d.ts → content/FlowInput.svelte.d.ts} +0 -0
  89. package/components/flows/{FlowInputs.svelte → content/FlowInputs.svelte} +24 -13
  90. package/components/flows/{FlowInputs.svelte.d.ts → content/FlowInputs.svelte.d.ts} +0 -0
  91. package/components/flows/content/FlowLoop.svelte +38 -0
  92. package/components/flows/content/FlowLoop.svelte.d.ts +14 -0
  93. package/components/flows/content/FlowModule.svelte +190 -0
  94. package/components/flows/content/FlowModule.svelte.d.ts +29 -0
  95. package/components/flows/content/FlowModuleAdvancedSettings.svelte +64 -0
  96. package/components/flows/content/FlowModuleAdvancedSettings.svelte.d.ts +17 -0
  97. package/components/flows/content/FlowModuleHeader.svelte +68 -0
  98. package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts} +2 -3
  99. package/components/flows/content/FlowModuleScript.svelte +21 -0
  100. package/components/flows/content/FlowModuleScript.svelte.d.ts +17 -0
  101. package/components/flows/content/FlowModuleWrapper.svelte +47 -0
  102. package/components/flows/content/FlowModuleWrapper.svelte.d.ts +14 -0
  103. package/components/flows/content/FlowRetries.svelte +80 -0
  104. package/components/flows/content/FlowRetries.svelte.d.ts +14 -0
  105. package/components/flows/content/FlowSchedules.svelte +18 -0
  106. package/components/flows/content/FlowSchedules.svelte.d.ts +14 -0
  107. package/components/flows/content/FlowSettings.svelte +51 -0
  108. package/components/flows/{FlowSettings.svelte.d.ts → content/FlowSettings.svelte.d.ts} +1 -6
  109. package/components/flows/content/RemoveStepConfirmationModal.svelte +32 -0
  110. package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +19 -0
  111. package/components/flows/flowState.d.ts +8 -7
  112. package/components/flows/flowState.js +25 -46
  113. package/components/flows/flowStateUtils.d.ts +15 -13
  114. package/components/flows/flowStateUtils.js +80 -72
  115. package/components/flows/flowStore.js +7 -4
  116. package/components/flows/header/FlowEditorHeader.svelte +23 -0
  117. package/components/flows/header/FlowEditorHeader.svelte.d.ts +14 -0
  118. package/components/flows/header/FlowImportExportMenu.svelte +56 -0
  119. package/components/flows/header/FlowImportExportMenu.svelte.d.ts +14 -0
  120. package/components/flows/header/FlowPreviewButtons.svelte +49 -0
  121. package/components/flows/header/FlowPreviewButtons.svelte.d.ts +14 -0
  122. package/components/flows/header/FlowStatus.svelte +36 -0
  123. package/components/flows/header/FlowStatus.svelte.d.ts +14 -0
  124. package/components/flows/map/FlowErrorHandlerItem.svelte +54 -0
  125. package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +14 -0
  126. package/components/flows/map/FlowModuleSchemaItem.svelte +58 -0
  127. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +27 -0
  128. package/components/flows/map/FlowModuleSchemaMap.svelte +161 -0
  129. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +20 -0
  130. package/components/flows/pickers/PickHubScript.svelte +4 -3
  131. package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -1
  132. package/components/flows/pickers/PickScript.svelte +4 -12
  133. package/components/flows/pickers/PickScript.svelte.d.ts +1 -1
  134. package/components/flows/propPicker/PropPickerWrapper.svelte +42 -0
  135. package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +31 -0
  136. package/components/flows/scheduleUtils.d.ts +0 -1
  137. package/components/flows/scheduleUtils.js +0 -1
  138. package/components/flows/types.d.ts +9 -0
  139. package/components/flows/types.js +1 -0
  140. package/components/flows/utils.d.ts +1 -1
  141. package/components/flows/utils.js +8 -11
  142. package/components/icons/HatIcon.svelte +19 -0
  143. package/components/icons/HatIcon.svelte.d.ts +16 -0
  144. package/components/landing/FlowGettingStarted.svelte +22 -68
  145. package/components/landing/FlowLandingBox.svelte +1 -1
  146. package/components/landing/RessourceGettingStarted.svelte +7 -37
  147. package/components/landing/ScriptBox.svelte +33 -60
  148. package/components/landing/ScriptGettingStarted.svelte +23 -69
  149. package/components/propertyPicker/ObjectViewer.svelte +16 -7
  150. package/components/propertyPicker/PropPicker.svelte +38 -12
  151. package/components/propertyPicker/WarningMessage.svelte +2 -15
  152. package/components/script_editor/LogPanel.svelte +108 -119
  153. package/components/script_editor/LogPanel.svelte.d.ts +2 -0
  154. package/components/sidebar/SidebarContent.svelte +2 -2
  155. package/editorUtils.d.ts +25 -0
  156. package/editorUtils.js +43 -0
  157. package/gen/models/CompletedJob.d.ts +2 -1
  158. package/gen/models/CompletedJob.js +1 -0
  159. package/gen/models/FlowModule.d.ts +1 -0
  160. package/gen/models/FlowStatus.d.ts +3 -0
  161. package/gen/models/FlowStatusModule.d.ts +1 -1
  162. package/gen/models/FlowValue.d.ts +11 -0
  163. package/gen/models/Preview.d.ts +2 -1
  164. package/gen/models/Preview.js +1 -0
  165. package/gen/models/QueuedJob.d.ts +2 -1
  166. package/gen/models/QueuedJob.js +1 -0
  167. package/gen/models/RawScript.d.ts +2 -1
  168. package/gen/models/RawScript.js +1 -0
  169. package/gen/models/Script.d.ts +9 -2
  170. package/gen/models/Script.js +8 -0
  171. package/gen/services/JobService.d.ts +40 -0
  172. package/gen/services/JobService.js +70 -0
  173. package/gen/services/ScriptService.d.ts +14 -3
  174. package/gen/services/ScriptService.js +13 -0
  175. package/infer.d.ts +1 -1
  176. package/infer.js +6 -1
  177. package/package.json +67 -35
  178. package/script_helpers.d.ts +5 -2
  179. package/script_helpers.js +41 -13
  180. package/stores.d.ts +1 -1
  181. package/utils.d.ts +6 -4
  182. package/utils.js +27 -4
  183. package/components/FlowEditor.svelte +0 -55
  184. package/components/FlowPreview.svelte +0 -107
  185. package/components/FlowPreview.svelte.d.ts +0 -23
  186. package/components/ModuleStep.svelte +0 -131
  187. package/components/ModuleStep.svelte.d.ts +0 -25
  188. package/components/flows/CopyFirstStepSchema.svelte +0 -13
  189. package/components/flows/FlowBox.svelte +0 -16
  190. package/components/flows/FlowBox.svelte.d.ts +0 -23
  191. package/components/flows/FlowBoxHeader.svelte +0 -16
  192. package/components/flows/FlowBoxHeader.svelte.d.ts +0 -21
  193. package/components/flows/FlowInput.svelte +0 -22
  194. package/components/flows/FlowModuleHeader.svelte +0 -109
  195. package/components/flows/FlowSettings.svelte +0 -165
  196. package/components/flows/FlowTimeline.svelte +0 -169
  197. package/components/flows/FlowTimeline.svelte.d.ts +0 -21
  198. package/components/flows/stepOpenedStore.d.ts +0 -1
  199. package/components/flows/stepOpenedStore.js +0 -6
  200. package/components/propertyPicker/OverlayPropertyPicker.svelte +0 -69
  201. package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +0 -24
@@ -0,0 +1,26 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import { Job } from '../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ isLoading?: boolean | undefined;
6
+ job?: Job | undefined;
7
+ runPreview?: ((path: string | undefined, code: string, lang: 'deno' | 'go' | 'python3', args: Record<string, any>) => Promise<void>) | undefined;
8
+ cancelJob?: (() => Promise<void>) | undefined;
9
+ watchJob?: ((testId: string) => Promise<void>) | undefined;
10
+ };
11
+ events: {
12
+ done: CustomEvent<any>;
13
+ } & {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots: {};
17
+ };
18
+ export declare type TestJobLoaderProps = typeof __propDef.props;
19
+ export declare type TestJobLoaderEvents = typeof __propDef.events;
20
+ export declare type TestJobLoaderSlots = typeof __propDef.slots;
21
+ export default class TestJobLoader extends SvelteComponentTyped<TestJobLoaderProps, TestJobLoaderEvents, TestJobLoaderSlots> {
22
+ get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go", args: Record<string, any>) => Promise<void>;
23
+ get cancelJob(): () => Promise<void>;
24
+ get watchJob(): (testId: string) => Promise<void>;
25
+ }
26
+ export {};
@@ -49,7 +49,6 @@ function close() {
49
49
  class="w-96 text-left"
50
50
  >
51
51
  <slot />
52
- <div id="arrow" data-popper-arrow />
53
52
  </div>
54
53
  {/if}
55
54
 
@@ -61,6 +60,8 @@ function close() {
61
60
  --tw-bg-opacity: 1;
62
61
  background-color: rgb(39 39 42 / var(--tw-bg-opacity));
63
62
  padding: 1rem;
63
+ font-size: 1rem;
64
+ line-height: 1.5rem;
64
65
  font-weight: 400;
65
66
  --tw-text-opacity: 1;
66
67
  color: rgb(209 213 219 / var(--tw-text-opacity))
@@ -0,0 +1,26 @@
1
+ <script>export let applyPageWidth = false;
2
+ let classes = 'max-w-6xl mx-auto px-4 sm:px-6 md:px-8';
3
+ </script>
4
+
5
+ <div class={'bg-white py-3 ' + $$props.class}>
6
+ <div
7
+ class={'w-full flex flex-wrap justify-between items-center gap-4 ' +
8
+ (applyPageWidth ? classes : '')}
9
+ >
10
+ <div class="flex flex-wrap items-center gap-2">
11
+ {#if $$slots.left}
12
+ <slot name="left" />
13
+ {/if}
14
+ </div>
15
+ <div class="flex flex-wrap items-center gap-2">
16
+ {#if $$slots.middle}
17
+ <slot name="middle" />
18
+ {/if}
19
+ </div>
20
+ <div class="flex flex-wrap items-center gap-2">
21
+ {#if $$slots.right}
22
+ <slot name="right" />
23
+ {/if}
24
+ </div>
25
+ </div>
26
+ </div>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ applyPageWidth?: boolean | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ left: {};
12
+ middle: {};
13
+ right: {};
14
+ };
15
+ };
16
+ export declare type ActionRowProps = typeof __propDef.props;
17
+ export declare type ActionRowEvents = typeof __propDef.events;
18
+ export declare type ActionRowSlots = typeof __propDef.slots;
19
+ export default class ActionRow extends SvelteComponentTyped<ActionRowProps, ActionRowEvents, ActionRowSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,53 @@
1
+ <script>import { classNames } from '../../../utils';
2
+ import { faCheckCircle, faInfoCircle, faWarning } from '@fortawesome/free-solid-svg-icons';
3
+ import Icon from 'svelte-awesome';
4
+ export let type = 'info';
5
+ export let title;
6
+ const icons = {
7
+ info: faInfoCircle,
8
+ warning: faWarning,
9
+ error: faWarning,
10
+ success: faCheckCircle
11
+ };
12
+ const classes = {
13
+ info: {
14
+ bgClass: 'bg-blue-50',
15
+ iconClass: 'text-blue-500',
16
+ titleClass: 'text-blue-800',
17
+ descriptionClass: 'text-blue-700'
18
+ },
19
+ warning: {
20
+ bgClass: 'bg-yellow-50',
21
+ iconClass: 'text-yellow-500',
22
+ titleClass: 'text-yellow-800',
23
+ descriptionClass: 'text-yellow-700'
24
+ },
25
+ error: {
26
+ bgClass: 'bg-red-50',
27
+ iconClass: 'text-red-500',
28
+ titleClass: 'text-red-800',
29
+ descriptionClass: 'text-red-700'
30
+ },
31
+ success: {
32
+ bgClass: 'bg-green-50',
33
+ iconClass: 'text-green-500',
34
+ titleClass: 'text-green-800',
35
+ descriptionClass: 'text-green-700'
36
+ }
37
+ };
38
+ </script>
39
+
40
+ <div class={classNames('rounded-md p-4', classes[type].bgClass)}>
41
+ <div class="flex">
42
+ <div class="flex h-8 w-8 items-center justify-center rounded-full">
43
+ <Icon data={icons[type]} class={classes[type].iconClass} />
44
+ </div>
45
+
46
+ <div class="ml-2 w-full">
47
+ <span class={classNames('text-sm font-medium', classes[type].titleClass)}>{title}</span>
48
+ <div class={classNames('mt-2 text-sm', classes[type].descriptionClass)}>
49
+ <slot />
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AlertType } from './model';
3
+ declare const __propDef: {
4
+ props: {
5
+ type?: AlertType | undefined;
6
+ title: string;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {
12
+ default: {};
13
+ };
14
+ };
15
+ export declare type AlertProps = typeof __propDef.props;
16
+ export declare type AlertEvents = typeof __propDef.events;
17
+ export declare type AlertSlots = typeof __propDef.slots;
18
+ export default class Alert extends SvelteComponentTyped<AlertProps, AlertEvents, AlertSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1 @@
1
+ export declare type AlertType = 'success' | 'error' | 'warning' | 'info';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,82 @@
1
+ <script>import { classNames } from '../../../utils';
2
+ import { CloseButton } from 'flowbite-svelte';
3
+ import Icon from 'svelte-awesome';
4
+ import { ColorModifier } from './model';
5
+ export let color = 'gray';
6
+ export let large = false;
7
+ export let href = '';
8
+ export let rounded = false;
9
+ export let index = false;
10
+ export let dismissable = false;
11
+ export let baseClass = 'text-center -mb-0.5';
12
+ export let capitalize = false;
13
+ export let icon = undefined;
14
+ let defaulIconProps = {
15
+ data: undefined,
16
+ position: 'left',
17
+ scale: 0.7
18
+ };
19
+ let hidden = false;
20
+ const colors = {
21
+ gray: 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300',
22
+ blue: 'bg-blue-100 text-blue-800 dark:bg-blue-200 dark:text-blue-800',
23
+ red: 'bg-red-100 text-red-800 dark:bg-red-200 dark:text-red-900',
24
+ green: 'bg-green-100 text-green-800 dark:bg-green-200 dark:text-green-900',
25
+ yellow: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-200 dark:text-yellow-900',
26
+ indigo: 'bg-indigo-100 text-indigo-800 dark:bg-indigo-200 dark:text-indigo-900',
27
+ purple: 'bg-purple-100 text-purple-800 dark:bg-purple-200 dark:text-purple-900',
28
+ pink: 'bg-pink-100 text-pink-800 dark:bg-pink-200 dark:text-pink-900',
29
+ ['dark-gray']: 'bg-gray-500 text-gray-100',
30
+ ['dark-blue']: 'bg-blue-500 text-blue-100',
31
+ ['dark-red']: 'bg-red-500 text-white',
32
+ ['dark-green']: 'bg-green-500 text-green-100',
33
+ ['dark-yellow']: 'bg-yellow-300 text-yellow-800',
34
+ ['dark-indigo']: 'bg-indigo-500 text-indigo-100',
35
+ ['dark-purple']: 'bg-purple-500 text-purple-100',
36
+ ['dark-pink']: 'bg-pink-500 text-pink-100'
37
+ };
38
+ const hovers = {
39
+ gray: 'hover:bg-gray-200 dark:hover:bg-gray-300',
40
+ blue: 'hover:bg-blue-200 dark:hover:bg-blue-300',
41
+ red: 'hover:bg-red-200 dark:hover:bg-red-300',
42
+ green: 'hover:bg-green-200 dark:hover:bg-green-300',
43
+ yellow: 'hover:bg-yellow-200 dark:hover:bg-yellow-300',
44
+ indigo: 'hover:bg-indigo-200 dark:hover:bg-indigo-300',
45
+ purple: 'hover:bg-purple-200 dark:hover:bg-purple-300',
46
+ pink: 'hover:bg-pink-200 dark:hover:bg-pink-300'
47
+ };
48
+ $: badgeClass = classNames(baseClass, large ? 'text-sm font-medium' : 'text-xs font-semibold', colors[color], href &&
49
+ (color.startsWith(ColorModifier) ? hovers[color.replace(ColorModifier, '')] : hovers[color]), rounded ? 'rounded-full px-2 py-1' : 'rounded px-2.5 py-0.5', index
50
+ ? 'absolute flex justify-center items-center font-bold overflow-hidden border-2 border-white dark:border-gray-900 ' +
51
+ (large ? 'w-7 h-7 -top-3.5 -right-3.5' : 'w-6 h-6 -top-3 -right-3')
52
+ : '', $$props.class);
53
+ $: iconProps = icon ? { ...defaulIconProps, ...icon } : { data: undefined };
54
+ const handleHide = () => (hidden = !hidden);
55
+ </script>
56
+
57
+ <span class="inline-flex justify-center items-center">
58
+ <svelte:element
59
+ this={href ? 'a' : 'span'}
60
+ {href}
61
+ {...$$restProps}
62
+ class={badgeClass}
63
+ class:hidden
64
+ class:capitalize
65
+ >
66
+ {#if iconProps.data && iconProps.position === 'left'}
67
+ <Icon {...iconProps} />
68
+ {/if}
69
+ <slot />
70
+ {#if iconProps.data && iconProps.position === 'right'}
71
+ <Icon {...iconProps} />
72
+ {/if}
73
+ {#if dismissable}
74
+ <CloseButton
75
+ {color}
76
+ on:click={handleHide}
77
+ size={large ? 'sm' : 'xs'}
78
+ class="ml-1.5 -mr-1.5"
79
+ />
80
+ {/if}
81
+ </svelte:element>
82
+ </span>
@@ -0,0 +1,28 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import { type BadgeColor, type BadgeIconProps } from './model';
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ color?: BadgeColor | undefined;
7
+ large?: boolean | undefined;
8
+ href?: string | undefined;
9
+ rounded?: boolean | undefined;
10
+ index?: boolean | undefined;
11
+ dismissable?: boolean | undefined;
12
+ baseClass?: string | undefined;
13
+ capitalize?: boolean | undefined;
14
+ icon?: BadgeIconProps | undefined;
15
+ };
16
+ events: {
17
+ [evt: string]: CustomEvent<any>;
18
+ };
19
+ slots: {
20
+ default: {};
21
+ };
22
+ };
23
+ export declare type BadgeProps = typeof __propDef.props;
24
+ export declare type BadgeEvents = typeof __propDef.events;
25
+ export declare type BadgeSlots = typeof __propDef.slots;
26
+ export default class Badge extends SvelteComponentTyped<BadgeProps, BadgeEvents, BadgeSlots> {
27
+ }
28
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { IconProps } from 'svelte-awesome/components/Icon.svelte';
2
+ declare type BaseColor = 'blue' | 'gray' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink';
3
+ export declare const ColorModifier = "dark-";
4
+ export declare type BadgeColor = BaseColor | `${typeof ColorModifier}${BaseColor}`;
5
+ export interface BadgeIconProps extends IconProps {
6
+ position?: 'left' | 'right';
7
+ }
8
+ export {};
@@ -0,0 +1 @@
1
+ export const ColorModifier = 'dark-';
@@ -0,0 +1,107 @@
1
+ <script>import { goto } from '$app/navigation';
2
+ import { classNames } from '../../../utils';
3
+ import Icon from 'svelte-awesome';
4
+ export let size = 'md';
5
+ export let spacingSize = size;
6
+ export let color = 'blue';
7
+ export let variant = 'contained';
8
+ export let btnClasses = '';
9
+ export let disabled = false;
10
+ export let href = undefined;
11
+ export let target = '_self';
12
+ export let iconOnly = false;
13
+ export let startIcon = undefined;
14
+ export let endIcon = undefined;
15
+ // Order of classes: border, border modifier, bg, bg modifier, text, text modifier, everything else
16
+ const colorVariants = {
17
+ blue: {
18
+ border: 'border-blue-500 hover:border-blue-700 bg-white hover:bg-blue-100 text-blue-500 hover:text-blue-700 focus:ring-blue-300',
19
+ contained: 'bg-blue-500 hover:bg-blue-700 text-white focus:ring-blue-300'
20
+ },
21
+ red: {
22
+ border: 'border-red-500 hover:border-red-700 bg-white hover:bg-red-100 text-red-500 hover:text-red-700 focus:ring-red-300',
23
+ contained: 'bg-red-500 hover:bg-red-700 text-white focus:ring-red-300'
24
+ },
25
+ dark: {
26
+ border: 'border-gray-800 hover:border-gray-900 bg-white hover:bg-gray-200 text-gray-800 hover:text-gray-900 focus:ring-gray-300',
27
+ contained: 'bg-gray-700 hover:bg-gray-900 text-white focus:ring-gray-300'
28
+ },
29
+ light: {
30
+ border: 'border bg-white hover:bg-gray-100 text-gray-700 hover:text-gray-800 focus:ring-gray-300',
31
+ contained: 'bg-white hover:bg-gray-100 text-gray-700 focus:ring-gray-300'
32
+ }
33
+ };
34
+ const fontSizeClasses = {
35
+ xs: 'text-xs',
36
+ sm: 'text-sm',
37
+ md: 'text-md',
38
+ lg: 'text-lg',
39
+ xl: 'text-xl'
40
+ };
41
+ const spacingClasses = {
42
+ xs: 'px-3 py-1.5',
43
+ sm: 'px-3 py-1.5',
44
+ md: 'px-4 py-2',
45
+ lg: 'px-4 py-2',
46
+ xl: 'px-4 py-2'
47
+ };
48
+ const iconScale = {
49
+ xs: 0.7,
50
+ sm: 0.8,
51
+ md: 1,
52
+ lg: 1.1,
53
+ xl: 1.2
54
+ };
55
+ $: buttonProps = {
56
+ class: classNames(colorVariants[color][variant], variant === 'border' ? 'border' : '', fontSizeClasses[size], spacingClasses[spacingSize], 'focus:ring-4 font-medium', 'rounded-md', 'flex justify-center items-center text-center whitespace-nowrap', btnClasses, disabled ? 'pointer-events-none cursor-default filter grayscale' : ''),
57
+ disabled
58
+ };
59
+ </script>
60
+
61
+ {#if href}
62
+ <button
63
+ type="button"
64
+ on:click|stopPropagation={() => goto(href ?? '#')}
65
+ {target}
66
+ tabindex={disabled ? -1 : 0}
67
+ {...buttonProps}
68
+ >
69
+ {#if startIcon}
70
+ <Icon
71
+ data={startIcon.icon}
72
+ class={classNames(iconOnly ? undefined : 'mr-2', startIcon.classes)}
73
+ scale={iconScale[size]}
74
+ />
75
+ {/if}
76
+ {#if !iconOnly}
77
+ <slot />
78
+ {/if}
79
+ {#if endIcon}
80
+ <Icon
81
+ data={endIcon.icon}
82
+ class={classNames(iconOnly ? undefined : 'ml-2', endIcon.classes)}
83
+ scale={iconScale[size]}
84
+ />
85
+ {/if}
86
+ </button>
87
+ {:else}
88
+ <button type="button" on:click|stopPropagation {...buttonProps}>
89
+ {#if startIcon}
90
+ <Icon
91
+ data={startIcon.icon}
92
+ class={classNames(iconOnly ? undefined : 'mr-2', startIcon.classes)}
93
+ scale={iconScale[size]}
94
+ />
95
+ {/if}
96
+ {#if !iconOnly}
97
+ <slot />
98
+ {/if}
99
+ {#if endIcon}
100
+ <Icon
101
+ data={endIcon.icon}
102
+ class={classNames(iconOnly ? undefined : 'ml-2', endIcon.classes)}
103
+ scale={iconScale[size]}
104
+ />
105
+ {/if}
106
+ </button>
107
+ {/if}
@@ -0,0 +1,37 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { Button } from './model';
3
+ declare const __propDef: {
4
+ props: {
5
+ size?: Button.Size | undefined;
6
+ spacingSize?: Button.Size | undefined;
7
+ color?: Button.Color | undefined;
8
+ variant?: Button.Variant | undefined;
9
+ btnClasses?: string | undefined;
10
+ disabled?: boolean | undefined;
11
+ href?: string | undefined;
12
+ target?: Button.Target | undefined;
13
+ iconOnly?: boolean | undefined;
14
+ startIcon?: {
15
+ icon: any;
16
+ classes?: string;
17
+ } | undefined;
18
+ endIcon?: {
19
+ icon: any;
20
+ classes?: string;
21
+ } | undefined;
22
+ };
23
+ events: {
24
+ click: MouseEvent;
25
+ } & {
26
+ [evt: string]: CustomEvent<any>;
27
+ };
28
+ slots: {
29
+ default: {};
30
+ };
31
+ };
32
+ export declare type ButtonProps = typeof __propDef.props;
33
+ export declare type ButtonEvents = typeof __propDef.events;
34
+ export declare type ButtonSlots = typeof __propDef.slots;
35
+ export default class Button extends SvelteComponentTyped<ButtonProps, ButtonEvents, ButtonSlots> {
36
+ }
37
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare namespace Button {
2
+ type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ type Color = 'blue' | 'red' | 'dark' | 'light';
4
+ type Variant = 'contained' | 'border';
5
+ type Target = '_self' | '_blank';
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,55 @@
1
+ <script>import { classNames } from '../../../utils';
2
+ import { faWarning } from '@fortawesome/free-solid-svg-icons';
3
+ import { createEventDispatcher } from 'svelte';
4
+ import Icon from 'svelte-awesome';
5
+ import { fade } from 'svelte/transition';
6
+ import Button from '../button/Button.svelte';
7
+ export let title;
8
+ export let confirmationText;
9
+ export let open = false;
10
+ const dispatch = createEventDispatcher();
11
+ </script>
12
+
13
+ {#if open}
14
+ <div transition:fade={{ duration: 100 }} class={'relative z-50'} role="dialog">
15
+ <div
16
+ class={classNames(
17
+ 'fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity',
18
+ open ? 'ease-out duration-300 opacity-100' : 'ease-in duration-200 opacity-0'
19
+ )}
20
+ />
21
+
22
+ <div class="fixed inset-0 z-10 overflow-y-auto">
23
+ <div class="flex min-h-full items-center justify-center p-4">
24
+ <div
25
+ class={classNames(
26
+ 'relative transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6',
27
+ open
28
+ ? 'ease-out duration-300 opacity-100 translate-y-0 sm:scale-100'
29
+ : 'ease-in duration-200 opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95'
30
+ )}
31
+ >
32
+ <div class="flex">
33
+ <div class="flex h-12 w-12 items-center justify-center rounded-full bg-red-100">
34
+ <Icon data={faWarning} class="text-red-500" />
35
+ </div>
36
+ <div class="ml-4 text-left flex-1">
37
+ <h3 class="text-lg font-medium text-gray-900">
38
+ {title}
39
+ </h3>
40
+ <div class="mt-2 text-sm text-gray-500">
41
+ <slot />
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <div class="flex items-center space-x-2 flex-row-reverse space-x-reverse mt-4">
46
+ <Button on:click={() => dispatch('confirmed')} color="red" size="sm">
47
+ {confirmationText}
48
+ </Button>
49
+ <Button on:click={() => dispatch('canceled')} color="light" size="sm">Cancel</Button>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ {/if}
@@ -0,0 +1,23 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ confirmationText: string;
6
+ open?: boolean | undefined;
7
+ };
8
+ events: {
9
+ confirmed: CustomEvent<any>;
10
+ canceled: CustomEvent<any>;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {
15
+ default: {};
16
+ };
17
+ };
18
+ export declare type ConfirmationModalProps = typeof __propDef.props;
19
+ export declare type ConfirmationModalEvents = typeof __propDef.events;
20
+ export declare type ConfirmationModalSlots = typeof __propDef.slots;
21
+ export default class ConfirmationModal extends SvelteComponentTyped<ConfirmationModalProps, ConfirmationModalEvents, ConfirmationModalSlots> {
22
+ }
23
+ export {};
@@ -4,6 +4,9 @@ export let open = false;
4
4
  export let duration = 0.3;
5
5
  export let placement = 'right';
6
6
  export let size = '600px';
7
+ export function toggleDrawer() {
8
+ open = !open;
9
+ }
7
10
  let mounted = false;
8
11
  const dispatch = createEventDispatcher();
9
12
  $: style = `--duration: ${duration}s; --size: ${size};`;
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  duration?: number | undefined;
6
6
  placement?: string | undefined;
7
7
  size?: string | undefined;
8
+ toggleDrawer?: (() => void) | undefined;
8
9
  };
9
10
  events: {
10
11
  clickAway: CustomEvent<any>;
@@ -19,5 +20,6 @@ export declare type DrawerProps = typeof __propDef.props;
19
20
  export declare type DrawerEvents = typeof __propDef.events;
20
21
  export declare type DrawerSlots = typeof __propDef.slots;
21
22
  export default class Drawer extends SvelteComponentTyped<DrawerProps, DrawerEvents, DrawerSlots> {
23
+ get toggleDrawer(): () => void;
22
24
  }
23
25
  export {};
@@ -0,0 +1,14 @@
1
+ export { default as ActionRow } from './actionRow/ActionRow.svelte';
2
+ export { default as Badge } from './badge/Badge.svelte';
3
+ export { default as Button } from './button/Button.svelte';
4
+ export { default as Drawer } from './drawer/Drawer.svelte';
5
+ export { default as DrawerContent } from './drawer/DrawerContent.svelte';
6
+ export { default as Menu } from './menu/Menu.svelte';
7
+ export { default as MenuItem } from './menu/MenuItem.svelte';
8
+ export { default as Tab } from './tabs/Tab.svelte';
9
+ export { default as TabContent } from './tabs/TabContent.svelte';
10
+ export { default as Tabs } from './tabs/Tabs.svelte';
11
+ export { default as ToggleButton } from './toggleButton/ToggleButton.svelte';
12
+ export { default as ToggleButtonGroup } from './toggleButton/ToggleButtonGroup.svelte';
13
+ export * from './badge/model';
14
+ export * from './button/model';
@@ -0,0 +1,14 @@
1
+ export { default as ActionRow } from './actionRow/ActionRow.svelte';
2
+ export { default as Badge } from './badge/Badge.svelte';
3
+ export { default as Button } from './button/Button.svelte';
4
+ export { default as Drawer } from './drawer/Drawer.svelte';
5
+ export { default as DrawerContent } from './drawer/DrawerContent.svelte';
6
+ export { default as Menu } from './menu/Menu.svelte';
7
+ export { default as MenuItem } from './menu/MenuItem.svelte';
8
+ export { default as Tab } from './tabs/Tab.svelte';
9
+ export { default as TabContent } from './tabs/TabContent.svelte';
10
+ export { default as Tabs } from './tabs/Tabs.svelte';
11
+ export { default as ToggleButton } from './toggleButton/ToggleButton.svelte';
12
+ export { default as ToggleButtonGroup } from './toggleButton/ToggleButtonGroup.svelte';
13
+ export * from './badge/model';
14
+ export * from './button/model';
@@ -1,12 +1,13 @@
1
1
  <script>import { getContext } from 'svelte';
2
2
  export let value;
3
+ export let alwaysMounted = false;
3
4
  let clazz = '';
4
5
  export { clazz as class };
5
6
  const { selected } = getContext('Tabs');
6
7
  </script>
7
8
 
8
- {#if value === $selected}
9
- <div class={clazz}>
9
+ {#if value === $selected || alwaysMounted}
10
+ <div class={`${clazz} ${value === $selected ? 'visible' : 'hidden'}`}>
10
11
  <slot />
11
12
  </div>
12
13
  {/if}
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  value: string;
5
+ alwaysMounted?: boolean | undefined;
5
6
  class?: string | undefined;
6
7
  };
7
8
  events: {
@@ -3,8 +3,12 @@
3
3
 
4
4
  <script>import { setContext } from 'svelte';
5
5
  import { writable } from 'svelte/store';
6
+ import { createEventDispatcher } from 'svelte';
7
+ const dispatch = createEventDispatcher();
6
8
  export let selected;
9
+ $: selected && updateSelected();
7
10
  const selectedContent = writable(selected);
11
+ $: $selectedContent && dispatch('selected', $selectedContent);
8
12
  setContext('Tabs', {
9
13
  selected: selectedContent,
10
14
  update: (value) => {
@@ -12,9 +16,12 @@ setContext('Tabs', {
12
16
  selected = value;
13
17
  }
14
18
  });
19
+ function updateSelected() {
20
+ selectedContent.set(selected);
21
+ }
15
22
  </script>
16
23
 
17
- <div class="border-b border-gray-200 flex flex-row mb-4">
24
+ <div class="border-b border-gray-200 flex flex-row">
18
25
  <slot />
19
26
  </div>
20
27
  <slot name="content" />
@@ -9,6 +9,8 @@ declare const __propDef: {
9
9
  selected: string;
10
10
  };
11
11
  events: {
12
+ selected: CustomEvent<any>;
13
+ } & {
12
14
  [evt: string]: CustomEvent<any>;
13
15
  };
14
16
  slots: {