@gradio/core 0.27.1 → 0.28.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 (37) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/src/Blocks.svelte +80 -2
  3. package/dist/src/Embed.svelte +45 -4
  4. package/dist/src/Embed.svelte.d.ts +1 -0
  5. package/dist/src/api_docs/ApiDocs.svelte +18 -3
  6. package/dist/src/api_docs/CodeSnippet.svelte +38 -36
  7. package/dist/src/api_docs/CodeSnippet.svelte.d.ts +1 -0
  8. package/dist/src/api_docs/EndpointDetail.svelte +23 -1
  9. package/dist/src/api_docs/EndpointDetail.svelte.d.ts +1 -0
  10. package/dist/src/api_docs/MCPSnippet.svelte +39 -0
  11. package/dist/src/api_docs/MCPSnippet.svelte.d.ts +3 -0
  12. package/dist/src/api_docs/utils.d.ts +2 -0
  13. package/dist/src/api_docs/utils.js +14 -0
  14. package/dist/src/i18n.d.ts +2 -1
  15. package/dist/src/i18n.js +3 -3
  16. package/dist/src/init.js +19 -15
  17. package/dist/src/lang/id.json +154 -0
  18. package/dist/src/navbar_store.d.ts +6 -0
  19. package/dist/src/navbar_store.js +2 -0
  20. package/dist/src/stores.d.ts +2 -0
  21. package/dist/src/stores.js +10 -0
  22. package/dist/src/stories/I18nMultiLanguageTest.stories.d.ts +0 -1
  23. package/dist/src/stories/I18nMultiLanguageTest.stories.js +1 -1
  24. package/package.json +57 -52
  25. package/src/Blocks.svelte +102 -2
  26. package/src/Embed.svelte +69 -4
  27. package/src/api_docs/ApiDocs.svelte +24 -3
  28. package/src/api_docs/CodeSnippet.svelte +38 -36
  29. package/src/api_docs/EndpointDetail.svelte +24 -1
  30. package/src/api_docs/MCPSnippet.svelte +40 -0
  31. package/src/api_docs/utils.ts +14 -0
  32. package/src/i18n.ts +5 -3
  33. package/src/init.ts +23 -15
  34. package/src/lang/id.json +154 -0
  35. package/src/navbar_store.ts +9 -0
  36. package/src/stores.ts +19 -0
  37. package/src/stories/I18nMultiLanguageTest.stories.ts +1 -1
@@ -15,11 +15,12 @@ export interface LangsRecord {
15
15
  };
16
16
  }
17
17
  export declare function is_translation_metadata(obj: any): obj is I18nData;
18
+ export declare const i18n_marker = "__i18n__";
18
19
  export declare function translate_if_needed(value: any): string;
19
20
  export declare function process_langs(): LangsRecord;
20
21
  export declare const language_choices: [string, string][];
21
22
  export declare let all_common_keys: Set<string>;
22
- export declare function setupi18n(custom_translations?: Record<string, Record<string, string>>): Promise<void>;
23
+ export declare function setupi18n(custom_translations?: Record<string, Record<string, string>>, preferred_locale?: string): Promise<void>;
23
24
  export declare function changeLocale(new_locale: string): void;
24
25
  export declare function get_initial_locale(browser_locale: string | null, available_locales: string[], fallback_locale?: string): string;
25
26
  export declare function load_translations(translations: {
package/dist/src/i18n.js CHANGED
@@ -43,12 +43,12 @@ export function is_translation_metadata(obj) {
43
43
  typeof obj.key === "string";
44
44
  return result;
45
45
  }
46
+ export const i18n_marker = "__i18n__";
46
47
  // handles strings with embedded JSON metadata of shape "__i18n__{"key": "some.key"}"
47
48
  export function translate_if_needed(value) {
48
49
  if (typeof value !== "string") {
49
50
  return value;
50
51
  }
51
- const i18n_marker = "__i18n__";
52
52
  const marker_index = value.indexOf(i18n_marker);
53
53
  if (marker_index === -1) {
54
54
  return value;
@@ -108,7 +108,7 @@ export const language_choices = Object.entries(processed_langs).map(([code]) =>
108
108
  export let all_common_keys = new Set();
109
109
  let i18n_initialized = false;
110
110
  let previous_translations;
111
- export async function setupi18n(custom_translations) {
111
+ export async function setupi18n(custom_translations, preferred_locale) {
112
112
  const should_reinitialize = i18n_initialized && custom_translations !== previous_translations;
113
113
  if (i18n_initialized && !should_reinitialize) {
114
114
  return;
@@ -118,7 +118,7 @@ export async function setupi18n(custom_translations) {
118
118
  processed_langs,
119
119
  custom_translations: custom_translations ?? {}
120
120
  });
121
- const browser_locale = getLocaleFromNavigator();
121
+ const browser_locale = preferred_locale ?? getLocaleFromNavigator();
122
122
  let initial_locale = browser_locale && available_locales.includes(browser_locale)
123
123
  ? browser_locale
124
124
  : null;
package/dist/src/init.js CHANGED
@@ -3,6 +3,7 @@ import { dequal } from "dequal";
3
3
  import { load_component } from "virtual:component-loader";
4
4
  import { create_loading_status_store } from "./stores";
5
5
  import { _ } from "svelte-i18n";
6
+ import { i18n_marker } from "./i18n";
6
7
  let pending_updates = [];
7
8
  const is_browser = typeof window !== "undefined";
8
9
  const raf = is_browser
@@ -38,7 +39,7 @@ export function create_components({ initial_layout = undefined } = {
38
39
  function set_event_specific_args(dependencies) {
39
40
  dependencies.forEach((dep) => {
40
41
  dep.targets.forEach((target) => {
41
- const instance = instance_map[target[0]];
42
+ const instance = instance_map?.[target[0]];
42
43
  if (instance && dep.event_specific_args?.length > 0) {
43
44
  dep.event_specific_args?.forEach((arg) => {
44
45
  instance.props[arg] = dep[arg];
@@ -133,7 +134,7 @@ export function create_components({ initial_layout = undefined } = {
133
134
  get_inputs_outputs(dep, inputs, outputs);
134
135
  });
135
136
  target_map.set(_target_map);
136
- let current_element = instance_map[layout.id];
137
+ let current_element = instance_map?.[layout.id];
137
138
  let all_current_children = [];
138
139
  const add_to_current_children = (component) => {
139
140
  all_current_children.push(component);
@@ -149,7 +150,7 @@ export function create_components({ initial_layout = undefined } = {
149
150
  if (component.rendered_in === render_id) {
150
151
  let replacement_component = replacement_components.find((c) => c.key === component.key);
151
152
  if (component.key != null && replacement_component !== undefined) {
152
- const instance = instance_map[component.id];
153
+ const instance = instance_map?.[component.id];
153
154
  for (const prop in replacement_component.props) {
154
155
  if (!replacement_component.props.preserved_by_key?.includes(prop)) {
155
156
  instance.props[prop] = replacement_component.props[prop];
@@ -157,20 +158,21 @@ export function create_components({ initial_layout = undefined } = {
157
158
  }
158
159
  }
159
160
  else {
160
- delete instance_map[_id];
161
+ if (instance_map)
162
+ delete instance_map[_id];
161
163
  if (_component_map.has(_id)) {
162
164
  _component_map.delete(_id);
163
165
  }
164
166
  }
165
167
  }
166
168
  });
167
- const components_to_add = new_components.concat(replacement_components.filter((c) => !instance_map[c.id]));
169
+ const components_to_add = new_components.concat(replacement_components.filter((c) => !instance_map?.[c.id]));
168
170
  components_to_add.forEach((c) => {
169
171
  instance_map[c.id] = c;
170
172
  _component_map.set(c.id, c);
171
173
  });
172
174
  if (current_element.parent) {
173
- current_element.parent.children[current_element.parent.children.indexOf(current_element)] = instance_map[layout.id];
175
+ current_element.parent.children[current_element.parent.children.indexOf(current_element)] = instance_map?.[layout.id];
174
176
  }
175
177
  walk_layout(layout, root, _components.concat(components), current_element.parent).then(() => {
176
178
  layout_store.set(_rootNode);
@@ -181,7 +183,7 @@ export function create_components({ initial_layout = undefined } = {
181
183
  set_event_specific_args(dependencies);
182
184
  }
183
185
  async function walk_layout(node, root, components, parent) {
184
- const instance = instance_map[node.id];
186
+ const instance = instance_map?.[node.id];
185
187
  if (!instance.component) {
186
188
  const constructor_key = instance.component_class_id || instance.type;
187
189
  let component_constructor = constructor_map.get(constructor_key);
@@ -202,9 +204,10 @@ export function create_components({ initial_layout = undefined } = {
202
204
  if (node.children) {
203
205
  instance.children = await Promise.all(node.children.map((v) => walk_layout(v, root, components, instance)));
204
206
  }
205
- if (instance.type === "tabs" && !instance.props.initial_tabs) {
207
+ if ((instance.type === "tabs" && !instance.props.initial_tabs) ||
208
+ (instance.type === "walkthrough" && !instance.props.initial_tabs)) {
206
209
  const tab_items_props = node.children?.map((c, i) => {
207
- const instance = instance_map[c.id];
210
+ const instance = instance_map?.[c.id];
208
211
  instance.props.id ??= c.id;
209
212
  return {
210
213
  type: instance.type,
@@ -215,18 +218,19 @@ export function create_components({ initial_layout = undefined } = {
215
218
  }
216
219
  };
217
220
  }) || [];
218
- const child_tab_items = tab_items_props.filter((child) => child.type === "tabitem");
221
+ const _type = instance.type === "walkthrough" ? "walkthroughstep" : "tabitem";
222
+ const child_tab_items = tab_items_props.filter((child) => child.type === _type);
219
223
  instance.props.initial_tabs = child_tab_items?.map((child) => ({
220
- label: child.props.label,
224
+ label: child.props.label.includes(i18n_marker) ? "" : child.props.label,
221
225
  id: child.props.id,
222
226
  visible: typeof child.props.visible === "boolean" ? child.props.visible : true,
223
227
  interactive: child.props.interactive,
224
228
  order: child.props.order
225
229
  }));
226
230
  }
227
- if (instance.type === "tabs") {
231
+ if (instance.type === "tabs" || instance.type === "walkthrough") {
228
232
  node.children?.forEach((c, i) => {
229
- const child = instance_map[c.id];
233
+ const child = instance_map?.[c.id];
230
234
  child.props.order = i;
231
235
  });
232
236
  }
@@ -272,7 +276,7 @@ export function create_components({ initial_layout = undefined } = {
272
276
  */
273
277
  function has_visibility_changes(updates) {
274
278
  return updates.some((update_batch) => update_batch.some((update) => {
275
- const instance = instance_map[update.id];
279
+ const instance = instance_map?.[update.id];
276
280
  if (!instance)
277
281
  return false;
278
282
  // Check for visibility property changes
@@ -300,7 +304,7 @@ export function create_components({ initial_layout = undefined } = {
300
304
  const update = pending_updates[i][j];
301
305
  if (!update)
302
306
  continue;
303
- const instance = instance_map[update.id];
307
+ const instance = instance_map?.[update.id];
304
308
  if (!instance)
305
309
  continue;
306
310
  let new_value;
@@ -0,0 +1,154 @@
1
+ {
2
+ "_name": "Bahasa Indonesia",
3
+ "3D_model": {
4
+ "3d_model": "Model 3D",
5
+ "drop_to_upload": "Letakkan file model 3D (.obj, .glb, .stl, .gltf, .splat, atau .ply) di sini untuk mengunggah"
6
+ },
7
+ "annotated_image": {
8
+ "annotated_image": "Gambar Beranotasi"
9
+ },
10
+ "audio": {
11
+ "allow_recording_access": "Mohon izinkan akses ke mikrofon untuk merekam.",
12
+ "audio": "Audio",
13
+ "record_from_microphone": "Rekam dari mikrofon",
14
+ "stop_recording": "Hentikan rekaman",
15
+ "no_device_support": "Perangkat media tidak dapat diakses. Pastikan Anda menjalankan dari sumber yang aman (https) atau localhost (atau Anda telah meneruskan sertifikat SSL yang valid ke ssl_verify), dan Anda telah mengizinkan akses browser ke perangkat Anda.",
16
+ "stop": "Berhenti",
17
+ "resume": "Lanjutkan",
18
+ "record": "Rekam",
19
+ "no_microphone": "Tidak ada mikrofon yang ditemukan",
20
+ "pause": "Jeda",
21
+ "play": "Putar",
22
+ "waiting": "Menunggu",
23
+ "drop_to_upload": "Letakkan file audio di sini untuk mengunggah"
24
+ },
25
+ "blocks": {
26
+ "connection_can_break": "Di perangkat seluler, koneksi dapat terputus jika tab ini tidak dalam fokus atau perangkat dalam mode tidur, sehingga Anda kehilangan posisi dalam antrian.",
27
+ "long_requests_queue": "Ada antrian panjang dari permintaan yang tertunda. Gandakan Ruang ini untuk melompati antrian.",
28
+ "lost_connection": "Koneksi terputus karena meninggalkan halaman. Bergabung kembali ke antrian...",
29
+ "waiting_for_inputs": "Menunggu file selesai diunggah, mohon coba lagi."
30
+ },
31
+ "checkbox": {
32
+ "checkbox": "Kotak centang",
33
+ "checkbox_group": "Grup kotak centang"
34
+ },
35
+ "code": {
36
+ "code": "Kode"
37
+ },
38
+ "color_picker": {
39
+ "color_picker": "Pemilih Warna"
40
+ },
41
+ "common": {
42
+ "built_with": "dibuat dengan",
43
+ "built_with_gradio": "Dibuat dengan Gradio",
44
+ "clear": "Bersihkan",
45
+ "download": "Unduh",
46
+ "edit": "Edit",
47
+ "empty": "Kosong",
48
+ "error": "Error",
49
+ "hosted_on": "Di-hosting di",
50
+ "loading": "Memuat",
51
+ "logo": "logo",
52
+ "or": "atau",
53
+ "remove": "Hapus",
54
+ "settings": "Pengaturan",
55
+ "share": "Bagikan",
56
+ "submit": "Kirim",
57
+ "undo": "Urungkan",
58
+ "no_devices": "Tidak ada perangkat yang ditemukan",
59
+ "language": "Bahasa",
60
+ "display_theme": "Tema Tampilan",
61
+ "pwa": "Aplikasi Web Progresif"
62
+ },
63
+ "dataframe": {
64
+ "incorrect_format": "Format salah, hanya file CSV dan TSV yang didukung",
65
+ "new_column": "Tambah kolom",
66
+ "new_row": "Baris baru",
67
+ "add_row_above": "Tambah baris di atas",
68
+ "add_row_below": "Tambah baris di bawah",
69
+ "add_column_left": "Tambah kolom ke kiri",
70
+ "add_column_right": "Tambah kolom ke kanan",
71
+ "delete_row": "Hapus baris",
72
+ "delete_column": "Hapus kolom",
73
+ "sort_column": "Urutkan kolom",
74
+ "sort_ascending": "Urutkan menaik",
75
+ "sort_descending": "Urutkan menurun",
76
+ "drop_to_upload": "Letakkan file CSV atau TSV di sini untuk mengimpor data ke dataframe",
77
+ "clear_sort": "Bersihkan pengurutan"
78
+ },
79
+ "dropdown": {
80
+ "dropdown": "Dropdown"
81
+ },
82
+ "errors": {
83
+ "build_error": "ada error saat membangun",
84
+ "config_error": "ada error konfigurasi",
85
+ "contact_page_author": "Mohon hubungi penulis halaman untuk memberitahu mereka.",
86
+ "no_app_file": "tidak ada file aplikasi",
87
+ "runtime_error": "ada error runtime",
88
+ "space_not_working": "\"Ruang tidak berfungsi karena\" {0}",
89
+ "space_paused": "ruang sedang dijeda",
90
+ "use_via_api": "Gunakan melalui API"
91
+ },
92
+ "file": {
93
+ "uploading": "Mengunggah..."
94
+ },
95
+ "highlighted_text": {
96
+ "highlighted_text": "Teks yang Disorot"
97
+ },
98
+ "image": {
99
+ "allow_webcam_access": "Mohon izinkan akses ke webcam untuk merekam.",
100
+ "brush_color": "Warna kuas",
101
+ "brush_radius": "Radius kuas",
102
+ "image": "Gambar",
103
+ "remove_image": "Hapus Gambar",
104
+ "select_brush_color": "Pilih warna kuas",
105
+ "start_drawing": "Mulai menggambar",
106
+ "use_brush": "Gunakan kuas",
107
+ "drop_to_upload": "Letakkan file gambar di sini untuk mengunggah"
108
+ },
109
+ "label": {
110
+ "label": "Label"
111
+ },
112
+ "login": {
113
+ "enable_cookies": "Jika Anda mengunjungi Ruang HuggingFace dalam mode Penyamaran, Anda harus mengaktifkan cookie pihak ketiga.",
114
+ "incorrect_credentials": "Kredensial salah",
115
+ "username": "nama pengguna",
116
+ "password": "kata sandi",
117
+ "login": "Masuk"
118
+ },
119
+ "number": {
120
+ "number": "Nomor"
121
+ },
122
+ "plot": {
123
+ "plot": "Plot"
124
+ },
125
+ "radio": {
126
+ "radio": "Tombol Radio"
127
+ },
128
+ "slider": {
129
+ "slider": "Penggeser"
130
+ },
131
+ "upload_text": {
132
+ "click_to_upload": "Klik untuk Mengunggah",
133
+ "drop_audio": "Letakkan Audio di Sini",
134
+ "drop_csv": "Letakkan CSV di Sini",
135
+ "drop_file": "Letakkan File di Sini",
136
+ "drop_image": "Letakkan Gambar di Sini",
137
+ "drop_video": "Letakkan Video di Sini",
138
+ "drop_gallery": "Letakkan Media di Sini",
139
+ "paste_clipboard": "Tempel dari Papan Klip"
140
+ },
141
+ "video": {
142
+ "drop_to_upload": "Letakkan file video di sini untuk mengunggah"
143
+ },
144
+ "chatbot": {
145
+ "edit": "Edit",
146
+ "retry": "Coba lagi",
147
+ "undo": "Urungkan",
148
+ "submit": "Kirim",
149
+ "cancel": "Batal",
150
+ "like": "Suka",
151
+ "dislike": "Tidak Suka",
152
+ "clear": "Bersihkan obrolan"
153
+ }
154
+ }
@@ -0,0 +1,6 @@
1
+ export interface NavbarConfig {
2
+ visible?: boolean;
3
+ main_page_name?: string | false;
4
+ value?: [string, string][] | null;
5
+ }
6
+ export declare const navbar_config: import("svelte/store").Writable<NavbarConfig | null>;
@@ -0,0 +1,2 @@
1
+ import { writable } from "svelte/store";
2
+ export const navbar_config = writable(null);
@@ -17,6 +17,7 @@ export interface LoadingStatus {
17
17
  unit: string | null;
18
18
  desc: string | null;
19
19
  }[];
20
+ validation_error?: string | null;
20
21
  }
21
22
  export type LoadingStatusCollection = Record<number, LoadingStatus>;
22
23
  interface LoadingStatusStore {
@@ -25,6 +26,7 @@ interface LoadingStatusStore {
25
26
  register: (index: number, inputs: number[], outputs: number[]) => void;
26
27
  get_status_for_fn: (i: number) => LoadingStatus["status"];
27
28
  get_inputs_to_update: () => Map<number, string>;
29
+ update_component_status: (index: number, status: Partial<LoadingStatus>) => void;
28
30
  }
29
31
  export declare function create_loading_status_store(): LoadingStatusStore;
30
32
  export type LoadingStatusType = ReturnType<typeof create_loading_status_store>;
@@ -79,8 +79,18 @@ export function create_loading_status_store() {
79
79
  fn_inputs[index] = inputs;
80
80
  fn_outputs[index] = outputs;
81
81
  }
82
+ function update_component_status(index, status) {
83
+ store.update((outputs) => {
84
+ outputs[index] = {
85
+ ...outputs[index],
86
+ ...status
87
+ };
88
+ return outputs;
89
+ });
90
+ }
82
91
  return {
83
92
  update,
93
+ update_component_status,
84
94
  register,
85
95
  subscribe: store.subscribe,
86
96
  get_status_for_fn(i) {
@@ -1,7 +1,6 @@
1
1
  import type { StoryObj } from "@storybook/svelte";
2
2
  import I18nMultiLanguageTestComponent from "./I18nMultiLanguageTestComponent.svelte";
3
3
  declare const meta: {
4
- title: string;
5
4
  component: typeof I18nMultiLanguageTestComponent;
6
5
  parameters: {
7
6
  layout: string;
@@ -1,6 +1,6 @@
1
1
  import I18nMultiLanguageTestComponent from "./I18nMultiLanguageTestComponent.svelte";
2
2
  const meta = {
3
- title: "Core/I18n Multi-Language Test",
3
+ // title: "Core/I18n Multi-Language Test",
4
4
  component: I18nMultiLanguageTestComponent,
5
5
  parameters: {
6
6
  layout: "centered"
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
1
  {
2
2
  "name": "@gradio/core",
3
- "version": "0.27.1",
3
+ "version": "0.28.0",
4
4
  "type": "module",
5
5
  "devDependencies": {
6
- "@gradio/accordion": "^0.5.22",
7
- "@gradio/annotatedimage": "^0.9.29",
8
- "@gradio/atoms": "^0.16.5",
9
- "@gradio/box": "^0.2.23",
10
- "@gradio/audio": "^0.17.25",
6
+ "@gradio/accordion": "^0.5.23",
7
+ "@gradio/annotatedimage": "^0.9.30",
8
+ "@gradio/atoms": "^0.17.0",
9
+ "@gradio/audio": "^0.18.0",
11
10
  "@gradio/browserstate": "^0.3.2",
12
- "@gradio/button": "^0.5.11",
13
- "@gradio/chatbot": "^0.26.22",
14
- "@gradio/checkbox": "^0.4.28",
15
- "@gradio/checkboxgroup": "^0.6.27",
16
- "@gradio/client": "^1.17.1",
17
- "@gradio/code": "^0.14.15",
18
- "@gradio/colorpicker": "^0.4.27",
19
- "@gradio/column": "^0.2.1",
20
- "@gradio/dataframe": "^0.19.0",
21
- "@gradio/dataset": "^0.4.32",
22
- "@gradio/datetime": "^0.3.20",
11
+ "@gradio/box": "^0.2.24",
12
+ "@gradio/button": "^0.5.12",
13
+ "@gradio/chatbot": "^0.26.24",
14
+ "@gradio/checkbox": "^0.4.29",
15
+ "@gradio/checkboxgroup": "^0.6.28",
16
+ "@gradio/client": "^1.18.0",
17
+ "@gradio/code": "^0.14.16",
18
+ "@gradio/colorpicker": "^0.4.28",
19
+ "@gradio/dataframe": "^0.19.2",
20
+ "@gradio/dataset": "^0.4.33",
21
+ "@gradio/datetime": "^0.3.21",
23
22
  "@gradio/downloadbutton": "^0.4.11",
24
- "@gradio/fallback": "^0.4.27",
25
- "@gradio/file": "^0.12.28",
26
- "@gradio/dropdown": "^0.10.2",
27
- "@gradio/fileexplorer": "^0.5.39",
28
- "@gradio/form": "^0.2.23",
29
- "@gradio/gallery": "^0.15.31",
23
+ "@gradio/dropdown": "^0.10.3",
24
+ "@gradio/fallback": "^0.4.28",
25
+ "@gradio/column": "^0.2.1",
26
+ "@gradio/file": "^0.12.29",
27
+ "@gradio/fileexplorer": "^0.5.40",
28
+ "@gradio/form": "^0.2.24",
29
+ "@gradio/highlightedtext": "^0.9.11",
30
30
  "@gradio/group": "^0.2.0",
31
- "@gradio/highlightedtext": "^0.9.10",
32
- "@gradio/html": "^0.7.0",
33
- "@gradio/image": "^0.22.17",
34
- "@gradio/icons": "^0.13.1",
35
- "@gradio/imageeditor": "^0.16.5",
36
- "@gradio/imageslider": "^0.2.13",
37
- "@gradio/json": "^0.5.29",
38
- "@gradio/label": "^0.5.19",
39
- "@gradio/markdown": "^0.13.20",
40
- "@gradio/model3d": "^0.14.25",
41
- "@gradio/nativeplot": "^0.7.4",
42
- "@gradio/number": "^0.6.4",
43
- "@gradio/multimodaltextbox": "^0.10.17",
44
- "@gradio/paramviewer": "^0.7.15",
45
- "@gradio/plot": "^0.9.22",
46
- "@gradio/radio": "^0.7.10",
31
+ "@gradio/html": "^0.7.1",
32
+ "@gradio/gallery": "^0.15.32",
33
+ "@gradio/icons": "^0.14.0",
34
+ "@gradio/imageeditor": "^0.16.6",
35
+ "@gradio/imageslider": "^0.2.14",
36
+ "@gradio/image": "^0.22.18",
37
+ "@gradio/json": "^0.5.30",
38
+ "@gradio/label": "^0.5.20",
39
+ "@gradio/multimodaltextbox": "^0.10.18",
40
+ "@gradio/nativeplot": "^0.7.5",
41
+ "@gradio/model3d": "^0.14.26",
42
+ "@gradio/markdown": "^0.13.21",
43
+ "@gradio/number": "^0.7.0",
44
+ "@gradio/paramviewer": "^0.7.16",
47
45
  "@gradio/row": "^0.2.1",
48
- "@gradio/sidebar": "^0.1.20",
49
- "@gradio/simpledropdown": "^0.3.27",
50
- "@gradio/simpleimage": "^0.8.39",
51
- "@gradio/simpletextbox": "^0.3.28",
52
- "@gradio/sketchbox": "^0.6.15",
46
+ "@gradio/simpleimage": "^0.8.40",
47
+ "@gradio/sidebar": "^0.1.21",
48
+ "@gradio/plot": "^0.9.23",
49
+ "@gradio/simpledropdown": "^0.3.28",
50
+ "@gradio/simpletextbox": "^0.3.29",
51
+ "@gradio/sketchbox": "^0.6.16",
52
+ "@gradio/slider": "^0.6.17",
53
53
  "@gradio/state": "^0.1.2",
54
- "@gradio/slider": "^0.6.16",
55
- "@gradio/statustracker": "^0.10.17",
56
- "@gradio/tabitem": "^0.5.0",
57
- "@gradio/tabs": "^0.4.5",
58
- "@gradio/textbox": "^0.10.20",
54
+ "@gradio/statustracker": "^0.11.0",
55
+ "@gradio/tabitem": "^0.6.0",
56
+ "@gradio/radio": "^0.7.11",
57
+ "@gradio/tabs": "^0.5.0",
58
+ "@gradio/textbox": "^0.11.0",
59
59
  "@gradio/timer": "^0.4.5",
60
60
  "@gradio/theme": "^0.4.0",
61
- "@gradio/upload": "^0.16.16",
62
- "@gradio/vibeeditor": "^0.2.2",
63
61
  "@gradio/uploadbutton": "^0.9.11",
64
- "@gradio/video": "^0.15.0",
65
62
  "@gradio/utils": "^0.10.2",
63
+ "@gradio/upload": "^0.16.17",
64
+ "@gradio/vibeeditor": "^0.2.3",
65
+ "@gradio/video": "^0.15.1",
66
66
  "@gradio/wasm": "^0.18.1"
67
67
  },
68
68
  "msw": {
@@ -80,6 +80,11 @@
80
80
  "svelte": "./dist/src/Login.svelte",
81
81
  "types": "./dist/src/Login.svelte.d.ts"
82
82
  },
83
+ "./navbar_store": {
84
+ "gradio": "./src/navbar_store.ts",
85
+ "import": "./src/navbar_store.ts",
86
+ "types": "./src/navbar_store.ts"
87
+ },
83
88
  "./package.json": "./package.json",
84
89
  ".": {
85
90
  "gradio": "./index.ts",