@gradio/core 1.0.0-dev.0 → 1.0.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 (109) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/src/Blocks.svelte +534 -1001
  5. package/dist/src/Blocks.svelte.d.ts +32 -45
  6. package/dist/src/Embed.svelte +82 -55
  7. package/dist/src/Embed.svelte.d.ts +39 -30
  8. package/dist/src/Login.svelte +33 -29
  9. package/dist/src/Login.svelte.d.ts +21 -19
  10. package/dist/src/MountComponents.svelte +19 -25
  11. package/dist/src/MountComponents.svelte.d.ts +5 -28
  12. package/dist/src/{init.d.ts → _init.d.ts} +5 -4
  13. package/dist/src/{init.js → _init.js} +31 -108
  14. package/dist/src/api_docs/ApiBanner.svelte +12 -8
  15. package/dist/src/api_docs/ApiBanner.svelte.d.ts +22 -20
  16. package/dist/src/api_docs/ApiDocs.svelte +356 -247
  17. package/dist/src/api_docs/ApiDocs.svelte.d.ts +27 -24
  18. package/dist/src/api_docs/ApiRecorder.svelte +6 -3
  19. package/dist/src/api_docs/ApiRecorder.svelte.d.ts +19 -17
  20. package/dist/src/api_docs/CodeSnippet.svelte +122 -48
  21. package/dist/src/api_docs/CodeSnippet.svelte.d.ts +29 -25
  22. package/dist/src/api_docs/CopyButton.svelte +69 -13
  23. package/dist/src/api_docs/CopyButton.svelte.d.ts +18 -16
  24. package/dist/src/api_docs/CopyMarkdown.svelte +734 -0
  25. package/dist/src/api_docs/CopyMarkdown.svelte.d.ts +37 -0
  26. package/dist/src/api_docs/EndpointDetail.svelte +81 -23
  27. package/dist/src/api_docs/EndpointDetail.svelte.d.ts +23 -18
  28. package/dist/src/api_docs/IconArrowUpRight.svelte +34 -0
  29. package/dist/src/api_docs/IconArrowUpRight.svelte.d.ts +20 -0
  30. package/dist/src/api_docs/IconCaret.svelte +39 -0
  31. package/dist/src/api_docs/IconCaret.svelte.d.ts +20 -0
  32. package/dist/src/api_docs/IconHuggingChat.svelte +62 -0
  33. package/dist/src/api_docs/IconHuggingChat.svelte.d.ts +20 -0
  34. package/dist/src/api_docs/InputPayload.svelte +17 -11
  35. package/dist/src/api_docs/InputPayload.svelte.d.ts +25 -23
  36. package/dist/src/api_docs/InstallSnippet.svelte +9 -6
  37. package/dist/src/api_docs/InstallSnippet.svelte.d.ts +18 -16
  38. package/dist/src/api_docs/MCPSnippet.svelte +139 -126
  39. package/dist/src/api_docs/MCPSnippet.svelte.d.ts +60 -58
  40. package/dist/src/api_docs/NoApi.svelte +7 -4
  41. package/dist/src/api_docs/NoApi.svelte.d.ts +20 -18
  42. package/dist/src/api_docs/ParametersSnippet.svelte +8 -6
  43. package/dist/src/api_docs/ParametersSnippet.svelte.d.ts +21 -19
  44. package/dist/src/api_docs/PercentileChart.svelte +125 -0
  45. package/dist/src/api_docs/PercentileChart.svelte.d.ts +22 -0
  46. package/dist/src/api_docs/RecordingSnippet.svelte +124 -110
  47. package/dist/src/api_docs/RecordingSnippet.svelte.d.ts +24 -22
  48. package/dist/src/api_docs/ResponseSnippet.svelte +7 -5
  49. package/dist/src/api_docs/ResponseSnippet.svelte.d.ts +21 -19
  50. package/dist/src/api_docs/Settings.svelte +73 -62
  51. package/dist/src/api_docs/Settings.svelte.d.ts +25 -23
  52. package/dist/src/api_docs/SettingsBanner.svelte +11 -8
  53. package/dist/src/api_docs/SettingsBanner.svelte.d.ts +20 -18
  54. package/dist/src/api_docs/TryButton.svelte +5 -3
  55. package/dist/src/api_docs/TryButton.svelte.d.ts +19 -17
  56. package/dist/src/api_docs/img/IconCheck.svelte +33 -0
  57. package/dist/src/api_docs/img/IconCheck.svelte.d.ts +26 -0
  58. package/dist/src/api_docs/img/IconCopy.svelte +40 -0
  59. package/dist/src/api_docs/img/IconCopy.svelte.d.ts +26 -0
  60. package/dist/src/api_docs/img/clear.svelte.d.ts +22 -21
  61. package/dist/src/dependency.d.ts +145 -0
  62. package/dist/src/dependency.js +668 -0
  63. package/dist/src/init.svelte.d.ts +78 -0
  64. package/dist/src/init.svelte.js +469 -0
  65. package/dist/src/init_utils.d.ts +32 -0
  66. package/dist/src/init_utils.js +73 -0
  67. package/dist/src/lang/en.json +10 -1
  68. package/dist/src/lang/get_lang_names.js +0 -3
  69. package/dist/src/lang/ru.json +10 -1
  70. package/dist/src/stores.d.ts +0 -21
  71. package/dist/src/stories/I18nMultiLanguageTestComponent.svelte +5 -3
  72. package/dist/src/stories/I18nMultiLanguageTestComponent.svelte.d.ts +16 -14
  73. package/dist/src/stories/I18nTestSetup.svelte +14 -10
  74. package/dist/src/stories/I18nTestSetup.svelte.d.ts +18 -16
  75. package/dist/src/types.d.ts +31 -26
  76. package/index.ts +1 -1
  77. package/package.json +62 -63
  78. package/src/Blocks.svelte +360 -1063
  79. package/src/MountComponents.svelte +17 -27
  80. package/src/{init.ts → _init.ts} +49 -126
  81. package/src/api_docs/ApiDocs.svelte +84 -62
  82. package/src/api_docs/CodeSnippet.svelte +83 -24
  83. package/src/api_docs/CopyButton.svelte +61 -7
  84. package/src/api_docs/CopyMarkdown.svelte +734 -0
  85. package/src/api_docs/EndpointDetail.svelte +73 -17
  86. package/src/api_docs/IconArrowUpRight.svelte +34 -0
  87. package/src/api_docs/IconCaret.svelte +39 -0
  88. package/src/api_docs/IconHuggingChat.svelte +62 -0
  89. package/src/api_docs/MCPSnippet.svelte +44 -73
  90. package/src/api_docs/ParametersSnippet.svelte +1 -1
  91. package/src/api_docs/PercentileChart.svelte +125 -0
  92. package/src/api_docs/ResponseSnippet.svelte +1 -1
  93. package/src/api_docs/Settings.svelte +11 -11
  94. package/src/api_docs/img/IconCheck.svelte +33 -0
  95. package/src/api_docs/img/IconCopy.svelte +40 -0
  96. package/src/dependency.ts +909 -0
  97. package/src/init.svelte.ts +717 -0
  98. package/src/init_utils.ts +99 -0
  99. package/src/lang/en.json +10 -1
  100. package/src/lang/get_lang_names.js +0 -3
  101. package/src/lang/ru.json +10 -1
  102. package/src/stores.ts +22 -22
  103. package/src/types.ts +55 -43
  104. package/dist/src/Render.svelte +0 -105
  105. package/dist/src/Render.svelte.d.ts +0 -31
  106. package/dist/src/RenderComponent.svelte +0 -72
  107. package/dist/src/RenderComponent.svelte.d.ts +0 -33
  108. package/src/Render.svelte +0 -126
  109. package/src/RenderComponent.svelte +0 -91
@@ -1,25 +1,27 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- root: string;
5
- space_id: string | null;
6
- pwa_enabled: boolean | undefined;
7
- allow_zoom?: boolean;
8
- allow_video_trim?: boolean;
1
+ 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> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: Props & {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
9
11
  };
10
- events: {
11
- close: CustomEvent<any>;
12
- start_recording: CustomEvent<any>;
13
- } & {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {};
17
- exports?: {} | undefined;
18
- bindings?: string | undefined;
19
- };
20
- export type SettingsProps = typeof __propDef.props;
21
- export type SettingsEvents = typeof __propDef.events;
22
- export type SettingsSlots = typeof __propDef.slots;
23
- export default class Settings extends SvelteComponent<SettingsProps, SettingsEvents, SettingsSlots> {
12
+ z_$$bindings?: Bindings;
24
13
  }
25
- export {};
14
+ declare const Settings: $$__sveltets_2_IsomorphicComponent<{
15
+ root: any;
16
+ space_id: any;
17
+ pwa_enabled: any;
18
+ allow_zoom?: any;
19
+ allow_video_trim?: any;
20
+ }, {
21
+ close: CustomEvent<any>;
22
+ start_recording: CustomEvent<any>;
23
+ } & {
24
+ [evt: string]: CustomEvent<any>;
25
+ }, {}, {}, "allow_zoom" | "allow_video_trim">;
26
+ type Settings = InstanceType<typeof Settings>;
27
+ export default Settings;
@@ -1,11 +1,14 @@
1
- <script>import { createEventDispatcher } from "svelte";
2
- import { _ } from "svelte-i18n";
3
- import settings_logo from "./img/settings-logo.svg";
4
- import Clear from "./img/clear.svelte";
5
- import { setupi18n } from "../i18n";
6
- export let root;
7
- const dispatch = createEventDispatcher();
8
- setupi18n();
1
+ <script lang="ts">
2
+ import { createEventDispatcher } from "svelte";
3
+ import { _ } from "svelte-i18n";
4
+ import settings_logo from "./img/settings-logo.svg";
5
+ import Clear from "./img/clear.svelte";
6
+ import { setupi18n } from "../i18n";
7
+
8
+ export let root: string;
9
+
10
+ const dispatch = createEventDispatcher();
11
+ setupi18n();
9
12
  </script>
10
13
 
11
14
  <h2>
@@ -1,20 +1,22 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- root: string;
1
+ 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> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: Props & {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
5
11
  };
6
- events: {
7
- close: CustomEvent<any>;
8
- } & {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {};
12
- exports?: {} | undefined;
13
- bindings?: string | undefined;
14
- };
15
- export type SettingsBannerProps = typeof __propDef.props;
16
- export type SettingsBannerEvents = typeof __propDef.events;
17
- export type SettingsBannerSlots = typeof __propDef.slots;
18
- export default class SettingsBanner extends SvelteComponent<SettingsBannerProps, SettingsBannerEvents, SettingsBannerSlots> {
12
+ z_$$bindings?: Bindings;
19
13
  }
20
- export {};
14
+ declare const SettingsBanner: $$__sveltets_2_IsomorphicComponent<{
15
+ root: string;
16
+ }, {
17
+ close: CustomEvent<any>;
18
+ } & {
19
+ [evt: string]: CustomEvent<any>;
20
+ }, {}, {}, string>;
21
+ type SettingsBanner = InstanceType<typeof SettingsBanner>;
22
+ export default SettingsBanner;
@@ -1,6 +1,8 @@
1
- <script>import { BaseButton } from "@gradio/button";
2
- export let dependency_index;
3
- export let run;
1
+ <script lang="ts">
2
+ import { BaseButton } from "@gradio/button";
3
+
4
+ export let dependency_index: number;
5
+ export let run: (id: number) => Promise<void>;
4
6
  </script>
5
7
 
6
8
  <span class="space" />
@@ -1,19 +1,21 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- dependency_index: number;
5
- run: (id: number) => Promise<void>;
1
+ 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> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: Props & {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
6
11
  };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type TryButtonProps = typeof __propDef.props;
15
- export type TryButtonEvents = typeof __propDef.events;
16
- export type TryButtonSlots = typeof __propDef.slots;
17
- export default class TryButton extends SvelteComponent<TryButtonProps, TryButtonEvents, TryButtonSlots> {
12
+ z_$$bindings?: Bindings;
18
13
  }
19
- export {};
14
+ declare const TryButton: $$__sveltets_2_IsomorphicComponent<{
15
+ dependency_index: number;
16
+ run: (id: number) => Promise<void>;
17
+ }, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, string>;
20
+ type TryButton = InstanceType<typeof TryButton>;
21
+ export default TryButton;
@@ -0,0 +1,33 @@
1
+ <script>
2
+ export let classNames = "";
3
+ </script>
4
+
5
+ <svg
6
+ class={classNames || "icon-size"}
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ aria-hidden="true"
9
+ height="16"
10
+ viewBox="0 0 16 16"
11
+ version="1.1"
12
+ width="16"
13
+ data-view-component="true"
14
+ ><path
15
+ fill-rule="evenodd"
16
+ fill="rgb(255, 124, 1)"
17
+ d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"
18
+ ></path></svg
19
+ >
20
+
21
+ <style>
22
+ .icon-size {
23
+ width: 0.75rem;
24
+ height: 0.75rem;
25
+ }
26
+
27
+ @media (max-width: 640px) {
28
+ .icon-size {
29
+ width: 0.625rem;
30
+ height: 0.625rem;
31
+ }
32
+ }
33
+ </style>
@@ -0,0 +1,26 @@
1
+ export default IconCheck;
2
+ type IconCheck = SvelteComponent<{
3
+ classNames?: string | undefined;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const IconCheck: $$__sveltets_2_IsomorphicComponent<{
10
+ classNames?: string | undefined;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ 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> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: Props & {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -0,0 +1,40 @@
1
+ <script>
2
+ export let classNames = "";
3
+ </script>
4
+
5
+ <svg
6
+ class={classNames}
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ aria-hidden="true"
9
+ fill="currentColor"
10
+ focusable="false"
11
+ role="img"
12
+ width="1em"
13
+ height="1em"
14
+ preserveAspectRatio="xMidYMid meet"
15
+ viewBox="0 0 32 32"
16
+ >
17
+ <path
18
+ d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z"
19
+ transform="translate(0)"
20
+ />
21
+ <path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)" /><rect
22
+ fill="none"
23
+ width="32"
24
+ height="32"
25
+ />
26
+ </svg>
27
+
28
+ <style>
29
+ .icon-size {
30
+ width: 0.75rem;
31
+ height: 0.75rem;
32
+ }
33
+
34
+ @media (max-width: 640px) {
35
+ .icon-size {
36
+ width: 0.625rem;
37
+ height: 0.625rem;
38
+ }
39
+ }
40
+ </style>
@@ -0,0 +1,26 @@
1
+ export default IconCopy;
2
+ type IconCopy = SvelteComponent<{
3
+ classNames?: string | undefined;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const IconCopy: $$__sveltets_2_IsomorphicComponent<{
10
+ classNames?: string | undefined;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ 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> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: Props & {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -1,25 +1,26 @@
1
- /** @typedef {typeof __propDef.props} ClearProps */
2
- /** @typedef {typeof __propDef.events} ClearEvents */
3
- /** @typedef {typeof __propDef.slots} ClearSlots */
4
- export default class Clear extends SvelteComponent<{
1
+ export default Clear;
2
+ type Clear = SvelteComponent<{
5
3
  [x: string]: never;
6
4
  }, {
7
5
  [evt: string]: CustomEvent<any>;
8
- }, {}> {
9
- }
10
- export type ClearProps = typeof __propDef.props;
11
- export type ClearEvents = typeof __propDef.events;
12
- export type ClearSlots = typeof __propDef.slots;
13
- import { SvelteComponent } from "svelte";
14
- declare const __propDef: {
15
- props: {
16
- [x: string]: never;
17
- };
18
- events: {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {};
22
- exports?: undefined;
23
- bindings?: undefined;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
24
8
  };
25
- export {};
9
+ declare const Clear: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ 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> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -0,0 +1,145 @@
1
+ import type { ComponentMeta, Dependency as IDependency, LayoutNode, Payload } from "./types.js";
2
+ import { Client, type client_return } from "@gradio/client";
3
+ import { LoadingStatus } from "@gradio/statustracker";
4
+ import type { ToastMessage } from "@gradio/statustracker";
5
+ import type { StatusMessage } from "@gradio/client";
6
+ /**
7
+ * A dependency as used by the frontend
8
+ * This class represents a discrete dependency that can be triggered by an event
9
+ * It is responsible calling the appropriate functions and reporting back results
10
+ */
11
+ export declare class Dependency {
12
+ id: number;
13
+ inputs: number[];
14
+ outputs: number[];
15
+ cancels: number[];
16
+ pending: boolean;
17
+ trigger_modes: "once" | "multiple" | "always_last";
18
+ event_args: Record<string, unknown>;
19
+ targets: [number, string][];
20
+ connection_type: "stream" | "sse";
21
+ triggers: [number, "success" | "failure" | "all"][];
22
+ original_trigger_id: number | null;
23
+ show_progress_on: number[] | null;
24
+ component_prop_inputs: number[];
25
+ show_progress: "full" | "minimal" | "hidden";
26
+ functions: {
27
+ frontend?: (...args: unknown[]) => Promise<unknown[]>;
28
+ backend: boolean;
29
+ backend_js?: (...args: unknown[]) => Promise<unknown[]>;
30
+ };
31
+ constructor(dep_config: IDependency);
32
+ run(client: client_return, data_payload: unknown[], event_data: unknown, target_id: number | null | undefined): Promise<{
33
+ type: "data";
34
+ data: unknown[];
35
+ } | {
36
+ type: "void";
37
+ data: null;
38
+ } | {
39
+ type: "submit";
40
+ data: ReturnType<client_return["submit"]>;
41
+ }>;
42
+ add_trigger(dep_id: number, condition: "success" | "failure" | "all"): void;
43
+ get_triggers(): {
44
+ success: number[];
45
+ failure: number[];
46
+ all: number[];
47
+ };
48
+ }
49
+ interface DispatchFunction {
50
+ type: "fn";
51
+ event_data: unknown;
52
+ fn_index?: number;
53
+ target_id?: number;
54
+ }
55
+ interface DispatchEvent {
56
+ type: "event";
57
+ event_name?: string;
58
+ target_id?: number;
59
+ event_data: unknown;
60
+ }
61
+ /**
62
+ * Manages all dependencies for an app acting as a bridge between app state and Dependencies
63
+ * Responsible for registering dependencies and dispatching events to them
64
+ * It is also responsible for orchestrating dependencies based on the follwing:
65
+ * - Cancelling dependencies
66
+ * - Ensuring individual dependencies respect `trigger_mode`
67
+ * - Managing then, success and failure events
68
+ * - Ensuring that dependencies bound to the same id are treated a single unit
69
+ * - updating loading states
70
+ * - updating component states
71
+ */
72
+ export declare class DependencyManager {
73
+ dependencies_by_fn: Map<number, Dependency>;
74
+ dependencies_by_event: Map<string, Dependency[]>;
75
+ render_id_deps: Map<number, Set<number>>;
76
+ submissions: Map<number, ReturnType<Client["submit"]>>;
77
+ client: Client;
78
+ queue: Set<number>;
79
+ add_to_api_calls: (payload: Payload) => void;
80
+ update_state_cb: (id: number, state: Record<string, unknown>, check_visibility?: boolean) => Promise<void>;
81
+ get_state_cb: (id: number) => Promise<Record<string, unknown> | null>;
82
+ rerender_cb: (components: ComponentMeta[], layout: LayoutNode) => void;
83
+ log_cb: (title: string, message: string, fn_index: number, type: ToastMessage["type"], duration?: number | null, visible?: boolean) => void;
84
+ loading_stati: LoadingStatus;
85
+ constructor(dependencies: IDependency[], client: Client, update_state_cb: (id: number, state: Record<string, unknown>, check_visibility?: boolean) => Promise<void>, get_state_cb: (id: number) => Promise<Record<string, unknown> | null>, rerender_cb: (components: ComponentMeta[], layout: LayoutNode) => void, log_cb: (title: string, message: string, fn_index: number, type: ToastMessage["type"], duration?: number | null, visible?: boolean) => void, add_to_api_calls: (payload: Payload) => void);
86
+ reload(dependencies: IDependency[], update_state: any, get_state: any, rerender: any, client: any): void;
87
+ register_loading_stati(deps: Map<number, Dependency>): void;
88
+ clear_loading_status(component_id: number): void;
89
+ update_loading_stati_state(): Promise<void>;
90
+ dispatch_state_change_events(result: StatusMessage): void;
91
+ /** Dispatches an event to the appropriate dependency
92
+ * @param event_name the name of the event
93
+ * @param target_id the id of the component that triggered the event
94
+ * @param event_data any additional data to pass to the dependency
95
+ * @returns a value if there is no backend fn, a 'submission' if there is a backend fn, or null if there is no dependency
96
+ */
97
+ dispatch(event_meta: DispatchFunction | DispatchEvent): Promise<void>;
98
+ /**
99
+ * Creates a map of dependencies for easy lookup
100
+ *
101
+ * @param dependencies the list of dependencies from the backend
102
+ * @returns a map of dependencies keyed by `${event_name}-${target_id}`
103
+ * */
104
+ create(dependencies: IDependency[]): {
105
+ by_id: Map<number, Dependency>;
106
+ by_event: Map<string, Dependency[]>;
107
+ };
108
+ handle_log(msg: LogMessage): void;
109
+ /**
110
+ * Updates the state of the outputs based on the data received from the dependency
111
+ *
112
+ * @param outputs the ids of the output components
113
+ * @param data the data to update the components with
114
+ * */
115
+ handle_data(outputs: number[], data: unknown[]): Promise<void>;
116
+ /**
117
+ * Gathers the current state of the inputs
118
+ *
119
+ * @param ids the ids of the components to gather state from
120
+ * @param prop_indices the indices (relative to ids array) that should return all component props instead of just the value
121
+ * @returns an array of the current state of the components, in the same order as the ids
122
+ */
123
+ gather_state(ids: number[], prop_indices?: number[]): Promise<(unknown | null)[]>;
124
+ /** Sets the event arguments for a specific component
125
+ *
126
+ * @param id the id of the component to set the event arguments for
127
+ * @param args the event arguments to set
128
+ * @returns a function that can be called to reset the event arguments to their previous values
129
+ */
130
+ set_event_args(id: number, args: Record<string, unknown>): Promise<() => void>;
131
+ cancel(ids: number[] | undefined): Promise<void>;
132
+ dispatch_load_events(): void;
133
+ get_fns_from_targets(target_id: number): number[];
134
+ close_stream(id: number): void;
135
+ }
136
+ /**
137
+ * Takes a string of source code and returns a function that can be called with arguments
138
+ * @param source the source code
139
+ * @param backend_fn if there is also a backend function
140
+ * @param input_length the number of inputs
141
+ * @param output_length the number of outputs
142
+ * @returns The function, or null if the source code is invalid or missing
143
+ */
144
+ export declare function process_frontend_fn(source: string, backend_fn: boolean, input_length: number, output_length: number): (...args: unknown[]) => Promise<unknown[]>;
145
+ export {};