streamlit-nightly 1.38.1.dev20240924__py2.py3-none-any.whl → 1.38.1.dev20240925__py2.py3-none-any.whl

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 (31) hide show
  1. streamlit/__init__.py +1 -0
  2. streamlit/config_option.py +2 -0
  3. streamlit/delta_generator.py +2 -0
  4. streamlit/elements/widgets/audio_input.py +248 -0
  5. streamlit/proto/AudioInput_pb2.py +28 -0
  6. streamlit/proto/AudioInput_pb2.pyi +58 -0
  7. streamlit/proto/Element_pb2.py +4 -3
  8. streamlit/proto/Element_pb2.pyi +9 -4
  9. streamlit/runtime/state/common.py +2 -0
  10. streamlit/runtime/state/widgets.py +1 -0
  11. streamlit/static/asset-manifest.json +8 -6
  12. streamlit/static/index.html +1 -1
  13. streamlit/static/static/js/{238.f9bc20d9.chunk.js → 238.8d3a7d25.chunk.js} +1 -1
  14. streamlit/static/static/js/266.e595f506.chunk.js +1 -0
  15. streamlit/static/static/js/3710.d73e609f.chunk.js +1 -0
  16. streamlit/static/static/js/5281.02b3ddc4.chunk.js +1 -0
  17. streamlit/static/static/js/708.a5252e2f.chunk.js +1 -0
  18. streamlit/static/static/js/9943.6af344bb.chunk.js +1 -0
  19. streamlit/static/static/js/main.e9d8ce9e.js +28 -0
  20. streamlit/web/cli.py +2 -0
  21. {streamlit_nightly-1.38.1.dev20240924.dist-info → streamlit_nightly-1.38.1.dev20240925.dist-info}/METADATA +1 -1
  22. {streamlit_nightly-1.38.1.dev20240924.dist-info → streamlit_nightly-1.38.1.dev20240925.dist-info}/RECORD +27 -22
  23. streamlit/static/static/js/3710.a5101ccc.chunk.js +0 -1
  24. streamlit/static/static/js/5180.e826dd46.chunk.js +0 -1
  25. streamlit/static/static/js/9943.2d62e2c4.chunk.js +0 -1
  26. streamlit/static/static/js/main.133ce9b9.js +0 -28
  27. /streamlit/static/static/js/{main.133ce9b9.js.LICENSE.txt → main.e9d8ce9e.js.LICENSE.txt} +0 -0
  28. {streamlit_nightly-1.38.1.dev20240924.data → streamlit_nightly-1.38.1.dev20240925.data}/scripts/streamlit.cmd +0 -0
  29. {streamlit_nightly-1.38.1.dev20240924.dist-info → streamlit_nightly-1.38.1.dev20240925.dist-info}/WHEEL +0 -0
  30. {streamlit_nightly-1.38.1.dev20240924.dist-info → streamlit_nightly-1.38.1.dev20240925.dist-info}/entry_points.txt +0 -0
  31. {streamlit_nightly-1.38.1.dev20240924.dist-info → streamlit_nightly-1.38.1.dev20240925.dist-info}/top_level.txt +0 -0
streamlit/__init__.py CHANGED
@@ -265,6 +265,7 @@ dialog = _dialog_decorator
265
265
  fragment = _fragment
266
266
 
267
267
  # Experimental APIs
268
+ experimental_audio_input = _main.experimental_audio_input
268
269
  experimental_dialog = _experimental_dialog_decorator
269
270
  experimental_fragment = _experimental_fragment
270
271
  experimental_user = _UserInfoProxy()
@@ -179,6 +179,8 @@ class ConfigOption:
179
179
  self.where_defined = ConfigOption.DEFAULT_DEFINITION
180
180
  self.type = type_
181
181
  self.sensitive = sensitive
182
+ # infer multiple values if the default value is a list or tuple
183
+ self.multiple = isinstance(default_val, (list, tuple))
182
184
 
183
185
  if self.replaced_by:
184
186
  self.deprecated = True
@@ -74,6 +74,7 @@ from streamlit.elements.snow import SnowMixin
74
74
  from streamlit.elements.text import TextMixin
75
75
  from streamlit.elements.toast import ToastMixin
76
76
  from streamlit.elements.vega_charts import VegaChartsMixin
77
+ from streamlit.elements.widgets.audio_input import AudioInputMixin
77
78
  from streamlit.elements.widgets.button import ButtonMixin
78
79
  from streamlit.elements.widgets.button_group import ButtonGroupMixin
79
80
  from streamlit.elements.widgets.camera_input import CameraInputMixin
@@ -144,6 +145,7 @@ def _maybe_print_use_warning() -> None:
144
145
 
145
146
  class DeltaGenerator(
146
147
  AlertMixin,
148
+ AudioInputMixin,
147
149
  BalloonsMixin,
148
150
  BokehMixin,
149
151
  ButtonMixin,
@@ -0,0 +1,248 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2024)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
17
+ from dataclasses import dataclass
18
+ from textwrap import dedent
19
+ from typing import TYPE_CHECKING, Union, cast
20
+
21
+ from typing_extensions import TypeAlias
22
+
23
+ from streamlit.elements.lib.form_utils import current_form_id
24
+ from streamlit.elements.lib.policies import (
25
+ check_widget_policies,
26
+ maybe_raise_label_warnings,
27
+ )
28
+ from streamlit.elements.lib.utils import (
29
+ Key,
30
+ LabelVisibility,
31
+ compute_and_register_element_id,
32
+ get_label_visibility_proto_value,
33
+ to_key,
34
+ )
35
+ from streamlit.elements.widgets.file_uploader import _get_upload_files
36
+ from streamlit.proto.AudioInput_pb2 import AudioInput as AudioInputProto
37
+ from streamlit.proto.Common_pb2 import FileUploaderState as FileUploaderStateProto
38
+ from streamlit.proto.Common_pb2 import UploadedFileInfo as UploadedFileInfoProto
39
+ from streamlit.runtime.metrics_util import gather_metrics
40
+ from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
41
+ from streamlit.runtime.state import (
42
+ WidgetArgs,
43
+ WidgetCallback,
44
+ WidgetKwargs,
45
+ register_widget,
46
+ )
47
+ from streamlit.runtime.uploaded_file_manager import DeletedFile, UploadedFile
48
+
49
+ if TYPE_CHECKING:
50
+ from streamlit.delta_generator import DeltaGenerator
51
+
52
+ SomeUploadedAudioFile: TypeAlias = Union[UploadedFile, DeletedFile, None]
53
+
54
+
55
+ @dataclass
56
+ class AudioInputSerde:
57
+ def serialize(
58
+ self,
59
+ audio_file: SomeUploadedAudioFile,
60
+ ) -> FileUploaderStateProto:
61
+ state_proto = FileUploaderStateProto()
62
+
63
+ if audio_file is None or isinstance(audio_file, DeletedFile):
64
+ return state_proto
65
+
66
+ file_info: UploadedFileInfoProto = state_proto.uploaded_file_info.add()
67
+ file_info.file_id = audio_file.file_id
68
+ file_info.name = audio_file.name
69
+ file_info.size = audio_file.size
70
+ file_info.file_urls.CopyFrom(audio_file._file_urls)
71
+
72
+ return state_proto
73
+
74
+ def deserialize(
75
+ self, ui_value: FileUploaderStateProto | None, widget_id: str
76
+ ) -> SomeUploadedAudioFile:
77
+ upload_files = _get_upload_files(ui_value)
78
+ if len(upload_files) == 0:
79
+ return_value = None
80
+ else:
81
+ return_value = upload_files[0]
82
+ return return_value
83
+
84
+
85
+ class AudioInputMixin:
86
+ @gather_metrics("experimental_audio_input")
87
+ def experimental_audio_input(
88
+ self,
89
+ label: str,
90
+ *,
91
+ key: Key | None = None,
92
+ help: str | None = None,
93
+ on_change: WidgetCallback | None = None,
94
+ args: WidgetArgs | None = None,
95
+ kwargs: WidgetKwargs | None = None,
96
+ disabled: bool = False,
97
+ label_visibility: LabelVisibility = "visible",
98
+ ) -> UploadedFile | None:
99
+ r"""Display a widget that returns audio recording from the user's microphone.
100
+
101
+ Parameters
102
+ ----------
103
+ label : str
104
+ A short label explaining to the user what this widget is used for.
105
+ The label can optionally contain GitHub-flavored Markdown of the
106
+ following types: Bold, Italics, Strikethroughs, Inline Code, and
107
+ Links.
108
+
109
+ Unsupported Markdown elements are unwrapped so only their children
110
+ (text contents) render. Display unsupported elements as literal
111
+ characters by backslash-escaping them. E.g.,
112
+ ``"1\. Not an ordered list"``.
113
+
114
+ See the ``body`` parameter of |st.markdown|_ for additional,
115
+ supported Markdown directives.
116
+
117
+ For accessibility reasons, you should never set an empty label (label="")
118
+ but hide it with label_visibility if needed. In the future, we may disallow
119
+ empty labels by raising an exception.
120
+
121
+ .. |st.markdown| replace:: ``st.markdown``
122
+ .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown
123
+
124
+ key : str or int
125
+ An optional string or integer to use as the unique key for the widget.
126
+ If this is omitted, a key will be generated for the widget
127
+ based on its content. Multiple widgets of the same type may
128
+ not share the same key.
129
+
130
+ help : str
131
+ A tooltip that gets displayed next to the audio input.
132
+
133
+ on_change : callable
134
+ An optional callback invoked when this audio_input's value
135
+ changes.
136
+
137
+ args : tuple
138
+ An optional tuple of args to pass to the callback.
139
+
140
+ kwargs : dict
141
+ An optional dict of kwargs to pass to the callback.
142
+
143
+ disabled : bool
144
+ An optional boolean, which disables the audio input if set to
145
+ True. Default is False.
146
+ label_visibility : "visible", "hidden", or "collapsed"
147
+ The visibility of the label. If "hidden", the label doesn't show but there
148
+ is still empty space for it above the widget (equivalent to label="").
149
+ If "collapsed", both the label and the space are removed. Default is
150
+ "visible".
151
+
152
+ Returns
153
+ -------
154
+ None or UploadedFile
155
+ The UploadedFile class is a subclass of BytesIO, and therefore
156
+ it is "file-like". This means you can pass them anywhere where
157
+ a file is expected.
158
+
159
+ Examples
160
+ --------
161
+ >>> import streamlit as st
162
+ >>>
163
+ >>> audio_value = st.experimental_audio_input("Record a voice message")
164
+ >>>
165
+ >>> if audio_value:
166
+ ... st.audio(audio_value)
167
+
168
+ """
169
+ ctx = get_script_run_ctx()
170
+ return self._audio_input(
171
+ label=label,
172
+ key=key,
173
+ help=help,
174
+ on_change=on_change,
175
+ args=args,
176
+ kwargs=kwargs,
177
+ disabled=disabled,
178
+ label_visibility=label_visibility,
179
+ ctx=ctx,
180
+ )
181
+
182
+ def _audio_input(
183
+ self,
184
+ label: str,
185
+ key: Key | None = None,
186
+ help: str | None = None,
187
+ on_change: WidgetCallback | None = None,
188
+ args: WidgetArgs | None = None,
189
+ kwargs: WidgetKwargs | None = None,
190
+ *, # keyword-only arguments:
191
+ disabled: bool = False,
192
+ label_visibility: LabelVisibility = "visible",
193
+ ctx: ScriptRunContext | None = None,
194
+ ) -> UploadedFile | None:
195
+ key = to_key(key)
196
+
197
+ check_widget_policies(
198
+ self.dg,
199
+ key,
200
+ on_change,
201
+ default_value=None,
202
+ writes_allowed=False,
203
+ )
204
+ maybe_raise_label_warnings(label, label_visibility)
205
+
206
+ element_id = compute_and_register_element_id(
207
+ "audio_input",
208
+ user_key=key,
209
+ form_id=current_form_id(self.dg),
210
+ label=label,
211
+ help=help,
212
+ )
213
+
214
+ audio_input_proto = AudioInputProto()
215
+ audio_input_proto.id = element_id
216
+ audio_input_proto.label = label
217
+ audio_input_proto.form_id = current_form_id(self.dg)
218
+ audio_input_proto.disabled = disabled
219
+ audio_input_proto.label_visibility.value = get_label_visibility_proto_value(
220
+ label_visibility
221
+ )
222
+
223
+ if label and help is not None:
224
+ audio_input_proto.help = dedent(help)
225
+
226
+ serde = AudioInputSerde()
227
+
228
+ audio_input_state = register_widget(
229
+ "audio_input",
230
+ audio_input_proto,
231
+ on_change_handler=on_change,
232
+ args=args,
233
+ kwargs=kwargs,
234
+ deserializer=serde.deserialize,
235
+ serializer=serde.serialize,
236
+ ctx=ctx,
237
+ )
238
+
239
+ self.dg._enqueue("audio_input", audio_input_proto)
240
+
241
+ if isinstance(audio_input_state.value, DeletedFile):
242
+ return None
243
+ return audio_input_state.value
244
+
245
+ @property
246
+ def dg(self) -> DeltaGenerator:
247
+ """Get our DeltaGenerator."""
248
+ return cast("DeltaGenerator", self)
@@ -0,0 +1,28 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: streamlit/proto/AudioInput.proto
4
+ # Protobuf Python Version: 5.26.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from streamlit.proto import LabelVisibilityMessage_pb2 as streamlit_dot_proto_dot_LabelVisibilityMessage__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/AudioInput.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\x8b\x01\n\nAudioInput\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x04 \x01(\t\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x31\n\x10label_visibility\x18\x06 \x01(\x0b\x32\x17.LabelVisibilityMessageB/\n\x1c\x63om.snowflake.apps.streamlitB\x0f\x41udioInputProtob\x06proto3')
19
+
20
+ _globals = globals()
21
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
22
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'streamlit.proto.AudioInput_pb2', _globals)
23
+ if not _descriptor._USE_C_DESCRIPTORS:
24
+ _globals['DESCRIPTOR']._loaded_options = None
25
+ _globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\017AudioInputProto'
26
+ _globals['_AUDIOINPUT']._serialized_start=83
27
+ _globals['_AUDIOINPUT']._serialized_end=222
28
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,58 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ *!
5
+ Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2024)
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ """
19
+
20
+ import builtins
21
+ import google.protobuf.descriptor
22
+ import google.protobuf.message
23
+ import streamlit.proto.LabelVisibilityMessage_pb2
24
+ import typing
25
+
26
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
27
+
28
+ @typing.final
29
+ class AudioInput(google.protobuf.message.Message):
30
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
31
+
32
+ ID_FIELD_NUMBER: builtins.int
33
+ LABEL_FIELD_NUMBER: builtins.int
34
+ HELP_FIELD_NUMBER: builtins.int
35
+ FORM_ID_FIELD_NUMBER: builtins.int
36
+ DISABLED_FIELD_NUMBER: builtins.int
37
+ LABEL_VISIBILITY_FIELD_NUMBER: builtins.int
38
+ id: builtins.str
39
+ label: builtins.str
40
+ help: builtins.str
41
+ form_id: builtins.str
42
+ disabled: builtins.bool
43
+ @property
44
+ def label_visibility(self) -> streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage: ...
45
+ def __init__(
46
+ self,
47
+ *,
48
+ id: builtins.str = ...,
49
+ label: builtins.str = ...,
50
+ help: builtins.str = ...,
51
+ form_id: builtins.str = ...,
52
+ disabled: builtins.bool = ...,
53
+ label_visibility: streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage | None = ...,
54
+ ) -> None: ...
55
+ def HasField(self, field_name: typing.Literal["label_visibility", b"label_visibility"]) -> builtins.bool: ...
56
+ def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility"]) -> None: ...
57
+
58
+ global___AudioInput = AudioInput
@@ -15,6 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from streamlit.proto import Alert_pb2 as streamlit_dot_proto_dot_Alert__pb2
16
16
  from streamlit.proto import Arrow_pb2 as streamlit_dot_proto_dot_Arrow__pb2
17
17
  from streamlit.proto import Audio_pb2 as streamlit_dot_proto_dot_Audio__pb2
18
+ from streamlit.proto import AudioInput_pb2 as streamlit_dot_proto_dot_AudioInput__pb2
18
19
  from streamlit.proto import Balloons_pb2 as streamlit_dot_proto_dot_Balloons__pb2
19
20
  from streamlit.proto import ArrowVegaLiteChart_pb2 as streamlit_dot_proto_dot_ArrowVegaLiteChart__pb2
20
21
  from streamlit.proto import BokehChart_pb2 as streamlit_dot_proto_dot_BokehChart__pb2
@@ -64,7 +65,7 @@ from streamlit.proto import Video_pb2 as streamlit_dot_proto_dot_Video__pb2
64
65
  from streamlit.proto import Heading_pb2 as streamlit_dot_proto_dot_Heading__pb2
65
66
 
66
67
 
67
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dstreamlit/proto/Element.proto\x1a\x1bstreamlit/proto/Alert.proto\x1a\x1bstreamlit/proto/Arrow.proto\x1a\x1bstreamlit/proto/Audio.proto\x1a\x1estreamlit/proto/Balloons.proto\x1a(streamlit/proto/ArrowVegaLiteChart.proto\x1a streamlit/proto/BokehChart.proto\x1a\x1cstreamlit/proto/Button.proto\x1a!streamlit/proto/ButtonGroup.proto\x1a$streamlit/proto/DownloadButton.proto\x1a!streamlit/proto/CameraInput.proto\x1a\x1fstreamlit/proto/ChatInput.proto\x1a\x1estreamlit/proto/Checkbox.proto\x1a\x1astreamlit/proto/Code.proto\x1a!streamlit/proto/ColorPicker.proto\x1a\x1fstreamlit/proto/DataFrame.proto\x1a\x1fstreamlit/proto/DateInput.proto\x1a%streamlit/proto/DeckGlJsonChart.proto\x1a\x1fstreamlit/proto/DocString.proto\x1a\x1bstreamlit/proto/Empty.proto\x1a\x1fstreamlit/proto/Exception.proto\x1a\x1dstreamlit/proto/Favicon.proto\x1a\"streamlit/proto/FileUploader.proto\x1a#streamlit/proto/GraphVizChart.proto\x1a\x1astreamlit/proto/Html.proto\x1a\x1cstreamlit/proto/IFrame.proto\x1a\x1bstreamlit/proto/Image.proto\x1a\x1astreamlit/proto/Json.proto\x1a streamlit/proto/LinkButton.proto\x1a!streamlit/proto/NumberInput.proto\x1a\x1estreamlit/proto/Markdown.proto\x1a\x1cstreamlit/proto/Metric.proto\x1a!streamlit/proto/MultiSelect.proto\x1a\x1estreamlit/proto/PageLink.proto\x1a!streamlit/proto/PlotlyChart.proto\x1a streamlit/proto/Components.proto\x1a\x1estreamlit/proto/Progress.proto\x1a\x1astreamlit/proto/Snow.proto\x1a\x1dstreamlit/proto/Spinner.proto\x1a\x1bstreamlit/proto/Radio.proto\x1a\x1fstreamlit/proto/Selectbox.proto\x1a\x1estreamlit/proto/Skeleton.proto\x1a\x1cstreamlit/proto/Slider.proto\x1a\x1astreamlit/proto/Text.proto\x1a\x1estreamlit/proto/TextArea.proto\x1a\x1fstreamlit/proto/TextInput.proto\x1a\x1fstreamlit/proto/TimeInput.proto\x1a\x1bstreamlit/proto/Toast.proto\x1a#streamlit/proto/VegaLiteChart.proto\x1a\x1bstreamlit/proto/Video.proto\x1a\x1dstreamlit/proto/Heading.proto\"\xb4\r\n\x07\x45lement\x12\x17\n\x05\x61lert\x18\x1e \x01(\x0b\x32\x06.AlertH\x00\x12\"\n\x10\x61rrow_data_frame\x18( \x01(\x0b\x32\x06.ArrowH\x00\x12\x1d\n\x0b\x61rrow_table\x18\' \x01(\x0b\x32\x06.ArrowH\x00\x12\x34\n\x15\x61rrow_vega_lite_chart\x18) \x01(\x0b\x32\x13.ArrowVegaLiteChartH\x00\x12\x17\n\x05\x61udio\x18\r \x01(\x0b\x32\x06.AudioH\x00\x12\x1d\n\x08\x62\x61lloons\x18\x0c \x01(\x0b\x32\t.BalloonsH\x00\x12\"\n\x0b\x62okeh_chart\x18\x11 \x01(\x0b\x32\x0b.BokehChartH\x00\x12\x19\n\x06\x62utton\x18\x13 \x01(\x0b\x32\x07.ButtonH\x00\x12$\n\x0c\x62utton_group\x18\x37 \x01(\x0b\x32\x0c.ButtonGroupH\x00\x12*\n\x0f\x64ownload_button\x18+ \x01(\x0b\x32\x0f.DownloadButtonH\x00\x12$\n\x0c\x63\x61mera_input\x18- \x01(\x0b\x32\x0c.CameraInputH\x00\x12 \n\nchat_input\x18\x31 \x01(\x0b\x32\n.ChatInputH\x00\x12\x1d\n\x08\x63heckbox\x18\x14 \x01(\x0b\x32\t.CheckboxH\x00\x12$\n\x0c\x63olor_picker\x18# \x01(\x0b\x32\x0c.ColorPickerH\x00\x12\x30\n\x12\x63omponent_instance\x18% \x01(\x0b\x32\x12.ComponentInstanceH\x00\x12 \n\ndata_frame\x18\x03 \x01(\x0b\x32\n.DataFrameH\x00\x12\x1b\n\x05table\x18\x0b \x01(\x0b\x32\n.DataFrameH\x00\x12 \n\ndate_input\x18\x1b \x01(\x0b\x32\n.DateInputH\x00\x12.\n\x12\x64\x65\x63k_gl_json_chart\x18\" \x01(\x0b\x32\x10.DeckGlJsonChartH\x00\x12 \n\ndoc_string\x18\x07 \x01(\x0b\x32\n.DocStringH\x00\x12\x17\n\x05\x65mpty\x18\x02 \x01(\x0b\x32\x06.EmptyH\x00\x12\x1f\n\texception\x18\x08 \x01(\x0b\x32\n.ExceptionH\x00\x12\x1b\n\x07\x66\x61vicon\x18$ \x01(\x0b\x32\x08.FaviconH\x00\x12&\n\rfile_uploader\x18! \x01(\x0b\x32\r.FileUploaderH\x00\x12(\n\x0egraphviz_chart\x18\x12 \x01(\x0b\x32\x0e.GraphVizChartH\x00\x12\x15\n\x04html\x18\x36 \x01(\x0b\x32\x05.HtmlH\x00\x12\x19\n\x06iframe\x18& \x01(\x0b\x32\x07.IFrameH\x00\x12\x1a\n\x04imgs\x18\x06 \x01(\x0b\x32\n.ImageListH\x00\x12\x15\n\x04json\x18\x1f \x01(\x0b\x32\x05.JsonH\x00\x12\"\n\x0blink_button\x18\x33 \x01(\x0b\x32\x0b.LinkButtonH\x00\x12\x1d\n\x08markdown\x18\x1d \x01(\x0b\x32\t.MarkdownH\x00\x12\x19\n\x06metric\x18* \x01(\x0b\x32\x07.MetricH\x00\x12#\n\x0bmultiselect\x18\x1c \x01(\x0b\x32\x0c.MultiSelectH\x00\x12$\n\x0cnumber_input\x18 \x01(\x0b\x32\x0c.NumberInputH\x00\x12\x1e\n\tpage_link\x18\x35 \x01(\x0b\x32\t.PageLinkH\x00\x12$\n\x0cplotly_chart\x18\x10 \x01(\x0b\x32\x0c.PlotlyChartH\x00\x12\x1d\n\x08progress\x18\x05 \x01(\x0b\x32\t.ProgressH\x00\x12\x17\n\x05radio\x18\x17 \x01(\x0b\x32\x06.RadioH\x00\x12\x1f\n\tselectbox\x18\x19 \x01(\x0b\x32\n.SelectboxH\x00\x12\x1d\n\x08skeleton\x18\x34 \x01(\x0b\x32\t.SkeletonH\x00\x12\x19\n\x06slider\x18\x15 \x01(\x0b\x32\x07.SliderH\x00\x12\x15\n\x04snow\x18. \x01(\x0b\x32\x05.SnowH\x00\x12\x1b\n\x07spinner\x18, \x01(\x0b\x32\x08.SpinnerH\x00\x12\x15\n\x04text\x18\x01 \x01(\x0b\x32\x05.TextH\x00\x12\x1e\n\ttext_area\x18\x16 \x01(\x0b\x32\t.TextAreaH\x00\x12 \n\ntext_input\x18\x18 \x01(\x0b\x32\n.TextInputH\x00\x12 \n\ntime_input\x18\x1a \x01(\x0b\x32\n.TimeInputH\x00\x12\x17\n\x05toast\x18\x32 \x01(\x0b\x32\x06.ToastH\x00\x12)\n\x0fvega_lite_chart\x18\n \x01(\x0b\x32\x0e.VegaLiteChartH\x00\x12\x17\n\x05video\x18\x0e \x01(\x0b\x32\x06.VideoH\x00\x12\x1b\n\x07heading\x18/ \x01(\x0b\x32\x08.HeadingH\x00\x12\x15\n\x04\x63ode\x18\x30 \x01(\x0b\x32\x05.CodeH\x00\x42\x06\n\x04typeJ\x04\x08\t\x10\nB,\n\x1c\x63om.snowflake.apps.streamlitB\x0c\x45lementProtob\x06proto3')
68
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dstreamlit/proto/Element.proto\x1a\x1bstreamlit/proto/Alert.proto\x1a\x1bstreamlit/proto/Arrow.proto\x1a\x1bstreamlit/proto/Audio.proto\x1a streamlit/proto/AudioInput.proto\x1a\x1estreamlit/proto/Balloons.proto\x1a(streamlit/proto/ArrowVegaLiteChart.proto\x1a streamlit/proto/BokehChart.proto\x1a\x1cstreamlit/proto/Button.proto\x1a!streamlit/proto/ButtonGroup.proto\x1a$streamlit/proto/DownloadButton.proto\x1a!streamlit/proto/CameraInput.proto\x1a\x1fstreamlit/proto/ChatInput.proto\x1a\x1estreamlit/proto/Checkbox.proto\x1a\x1astreamlit/proto/Code.proto\x1a!streamlit/proto/ColorPicker.proto\x1a\x1fstreamlit/proto/DataFrame.proto\x1a\x1fstreamlit/proto/DateInput.proto\x1a%streamlit/proto/DeckGlJsonChart.proto\x1a\x1fstreamlit/proto/DocString.proto\x1a\x1bstreamlit/proto/Empty.proto\x1a\x1fstreamlit/proto/Exception.proto\x1a\x1dstreamlit/proto/Favicon.proto\x1a\"streamlit/proto/FileUploader.proto\x1a#streamlit/proto/GraphVizChart.proto\x1a\x1astreamlit/proto/Html.proto\x1a\x1cstreamlit/proto/IFrame.proto\x1a\x1bstreamlit/proto/Image.proto\x1a\x1astreamlit/proto/Json.proto\x1a streamlit/proto/LinkButton.proto\x1a!streamlit/proto/NumberInput.proto\x1a\x1estreamlit/proto/Markdown.proto\x1a\x1cstreamlit/proto/Metric.proto\x1a!streamlit/proto/MultiSelect.proto\x1a\x1estreamlit/proto/PageLink.proto\x1a!streamlit/proto/PlotlyChart.proto\x1a streamlit/proto/Components.proto\x1a\x1estreamlit/proto/Progress.proto\x1a\x1astreamlit/proto/Snow.proto\x1a\x1dstreamlit/proto/Spinner.proto\x1a\x1bstreamlit/proto/Radio.proto\x1a\x1fstreamlit/proto/Selectbox.proto\x1a\x1estreamlit/proto/Skeleton.proto\x1a\x1cstreamlit/proto/Slider.proto\x1a\x1astreamlit/proto/Text.proto\x1a\x1estreamlit/proto/TextArea.proto\x1a\x1fstreamlit/proto/TextInput.proto\x1a\x1fstreamlit/proto/TimeInput.proto\x1a\x1bstreamlit/proto/Toast.proto\x1a#streamlit/proto/VegaLiteChart.proto\x1a\x1bstreamlit/proto/Video.proto\x1a\x1dstreamlit/proto/Heading.proto\"\xd8\r\n\x07\x45lement\x12\x17\n\x05\x61lert\x18\x1e \x01(\x0b\x32\x06.AlertH\x00\x12\"\n\x10\x61rrow_data_frame\x18( \x01(\x0b\x32\x06.ArrowH\x00\x12\x1d\n\x0b\x61rrow_table\x18\' \x01(\x0b\x32\x06.ArrowH\x00\x12\x34\n\x15\x61rrow_vega_lite_chart\x18) \x01(\x0b\x32\x13.ArrowVegaLiteChartH\x00\x12\x17\n\x05\x61udio\x18\r \x01(\x0b\x32\x06.AudioH\x00\x12\"\n\x0b\x61udio_input\x18\x38 \x01(\x0b\x32\x0b.AudioInputH\x00\x12\x1d\n\x08\x62\x61lloons\x18\x0c \x01(\x0b\x32\t.BalloonsH\x00\x12\"\n\x0b\x62okeh_chart\x18\x11 \x01(\x0b\x32\x0b.BokehChartH\x00\x12\x19\n\x06\x62utton\x18\x13 \x01(\x0b\x32\x07.ButtonH\x00\x12$\n\x0c\x62utton_group\x18\x37 \x01(\x0b\x32\x0c.ButtonGroupH\x00\x12*\n\x0f\x64ownload_button\x18+ \x01(\x0b\x32\x0f.DownloadButtonH\x00\x12$\n\x0c\x63\x61mera_input\x18- \x01(\x0b\x32\x0c.CameraInputH\x00\x12 \n\nchat_input\x18\x31 \x01(\x0b\x32\n.ChatInputH\x00\x12\x1d\n\x08\x63heckbox\x18\x14 \x01(\x0b\x32\t.CheckboxH\x00\x12$\n\x0c\x63olor_picker\x18# \x01(\x0b\x32\x0c.ColorPickerH\x00\x12\x30\n\x12\x63omponent_instance\x18% \x01(\x0b\x32\x12.ComponentInstanceH\x00\x12 \n\ndata_frame\x18\x03 \x01(\x0b\x32\n.DataFrameH\x00\x12\x1b\n\x05table\x18\x0b \x01(\x0b\x32\n.DataFrameH\x00\x12 \n\ndate_input\x18\x1b \x01(\x0b\x32\n.DateInputH\x00\x12.\n\x12\x64\x65\x63k_gl_json_chart\x18\" \x01(\x0b\x32\x10.DeckGlJsonChartH\x00\x12 \n\ndoc_string\x18\x07 \x01(\x0b\x32\n.DocStringH\x00\x12\x17\n\x05\x65mpty\x18\x02 \x01(\x0b\x32\x06.EmptyH\x00\x12\x1f\n\texception\x18\x08 \x01(\x0b\x32\n.ExceptionH\x00\x12\x1b\n\x07\x66\x61vicon\x18$ \x01(\x0b\x32\x08.FaviconH\x00\x12&\n\rfile_uploader\x18! \x01(\x0b\x32\r.FileUploaderH\x00\x12(\n\x0egraphviz_chart\x18\x12 \x01(\x0b\x32\x0e.GraphVizChartH\x00\x12\x15\n\x04html\x18\x36 \x01(\x0b\x32\x05.HtmlH\x00\x12\x19\n\x06iframe\x18& \x01(\x0b\x32\x07.IFrameH\x00\x12\x1a\n\x04imgs\x18\x06 \x01(\x0b\x32\n.ImageListH\x00\x12\x15\n\x04json\x18\x1f \x01(\x0b\x32\x05.JsonH\x00\x12\"\n\x0blink_button\x18\x33 \x01(\x0b\x32\x0b.LinkButtonH\x00\x12\x1d\n\x08markdown\x18\x1d \x01(\x0b\x32\t.MarkdownH\x00\x12\x19\n\x06metric\x18* \x01(\x0b\x32\x07.MetricH\x00\x12#\n\x0bmultiselect\x18\x1c \x01(\x0b\x32\x0c.MultiSelectH\x00\x12$\n\x0cnumber_input\x18 \x01(\x0b\x32\x0c.NumberInputH\x00\x12\x1e\n\tpage_link\x18\x35 \x01(\x0b\x32\t.PageLinkH\x00\x12$\n\x0cplotly_chart\x18\x10 \x01(\x0b\x32\x0c.PlotlyChartH\x00\x12\x1d\n\x08progress\x18\x05 \x01(\x0b\x32\t.ProgressH\x00\x12\x17\n\x05radio\x18\x17 \x01(\x0b\x32\x06.RadioH\x00\x12\x1f\n\tselectbox\x18\x19 \x01(\x0b\x32\n.SelectboxH\x00\x12\x1d\n\x08skeleton\x18\x34 \x01(\x0b\x32\t.SkeletonH\x00\x12\x19\n\x06slider\x18\x15 \x01(\x0b\x32\x07.SliderH\x00\x12\x15\n\x04snow\x18. \x01(\x0b\x32\x05.SnowH\x00\x12\x1b\n\x07spinner\x18, \x01(\x0b\x32\x08.SpinnerH\x00\x12\x15\n\x04text\x18\x01 \x01(\x0b\x32\x05.TextH\x00\x12\x1e\n\ttext_area\x18\x16 \x01(\x0b\x32\t.TextAreaH\x00\x12 \n\ntext_input\x18\x18 \x01(\x0b\x32\n.TextInputH\x00\x12 \n\ntime_input\x18\x1a \x01(\x0b\x32\n.TimeInputH\x00\x12\x17\n\x05toast\x18\x32 \x01(\x0b\x32\x06.ToastH\x00\x12)\n\x0fvega_lite_chart\x18\n \x01(\x0b\x32\x0e.VegaLiteChartH\x00\x12\x17\n\x05video\x18\x0e \x01(\x0b\x32\x06.VideoH\x00\x12\x1b\n\x07heading\x18/ \x01(\x0b\x32\x08.HeadingH\x00\x12\x15\n\x04\x63ode\x18\x30 \x01(\x0b\x32\x05.CodeH\x00\x42\x06\n\x04typeJ\x04\x08\t\x10\nB,\n\x1c\x63om.snowflake.apps.streamlitB\x0c\x45lementProtob\x06proto3')
68
69
 
69
70
  _globals = globals()
70
71
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -72,6 +73,6 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'streamlit.proto.Element_pb2
72
73
  if not _descriptor._USE_C_DESCRIPTORS:
73
74
  _globals['DESCRIPTOR']._loaded_options = None
74
75
  _globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\014ElementProto'
75
- _globals['_ELEMENT']._serialized_start=1648
76
- _globals['_ELEMENT']._serialized_end=3364
76
+ _globals['_ELEMENT']._serialized_start=1682
77
+ _globals['_ELEMENT']._serialized_end=3434
77
78
  # @@protoc_insertion_point(module_scope)
@@ -23,6 +23,7 @@ import google.protobuf.message
23
23
  import streamlit.proto.Alert_pb2
24
24
  import streamlit.proto.ArrowVegaLiteChart_pb2
25
25
  import streamlit.proto.Arrow_pb2
26
+ import streamlit.proto.AudioInput_pb2
26
27
  import streamlit.proto.Audio_pb2
27
28
  import streamlit.proto.Balloons_pb2
28
29
  import streamlit.proto.BokehChart_pb2
@@ -85,6 +86,7 @@ class Element(google.protobuf.message.Message):
85
86
  ARROW_TABLE_FIELD_NUMBER: builtins.int
86
87
  ARROW_VEGA_LITE_CHART_FIELD_NUMBER: builtins.int
87
88
  AUDIO_FIELD_NUMBER: builtins.int
89
+ AUDIO_INPUT_FIELD_NUMBER: builtins.int
88
90
  BALLOONS_FIELD_NUMBER: builtins.int
89
91
  BOKEH_CHART_FIELD_NUMBER: builtins.int
90
92
  BUTTON_FIELD_NUMBER: builtins.int
@@ -143,6 +145,8 @@ class Element(google.protobuf.message.Message):
143
145
  @property
144
146
  def audio(self) -> streamlit.proto.Audio_pb2.Audio: ...
145
147
  @property
148
+ def audio_input(self) -> streamlit.proto.AudioInput_pb2.AudioInput: ...
149
+ @property
146
150
  def balloons(self) -> streamlit.proto.Balloons_pb2.Balloons: ...
147
151
  @property
148
152
  def bokeh_chart(self) -> streamlit.proto.BokehChart_pb2.BokehChart: ...
@@ -242,7 +246,7 @@ class Element(google.protobuf.message.Message):
242
246
  def heading(self) -> streamlit.proto.Heading_pb2.Heading: ...
243
247
  @property
244
248
  def code(self) -> streamlit.proto.Code_pb2.Code:
245
- """Next ID: 56"""
249
+ """Next ID: 57"""
246
250
 
247
251
  def __init__(
248
252
  self,
@@ -252,6 +256,7 @@ class Element(google.protobuf.message.Message):
252
256
  arrow_table: streamlit.proto.Arrow_pb2.Arrow | None = ...,
253
257
  arrow_vega_lite_chart: streamlit.proto.ArrowVegaLiteChart_pb2.ArrowVegaLiteChart | None = ...,
254
258
  audio: streamlit.proto.Audio_pb2.Audio | None = ...,
259
+ audio_input: streamlit.proto.AudioInput_pb2.AudioInput | None = ...,
255
260
  balloons: streamlit.proto.Balloons_pb2.Balloons | None = ...,
256
261
  bokeh_chart: streamlit.proto.BokehChart_pb2.BokehChart | None = ...,
257
262
  button: streamlit.proto.Button_pb2.Button | None = ...,
@@ -300,8 +305,8 @@ class Element(google.protobuf.message.Message):
300
305
  heading: streamlit.proto.Heading_pb2.Heading | None = ...,
301
306
  code: streamlit.proto.Code_pb2.Code | None = ...,
302
307
  ) -> None: ...
303
- def HasField(self, field_name: typing.Literal["alert", b"alert", "arrow_data_frame", b"arrow_data_frame", "arrow_table", b"arrow_table", "arrow_vega_lite_chart", b"arrow_vega_lite_chart", "audio", b"audio", "balloons", b"balloons", "bokeh_chart", b"bokeh_chart", "button", b"button", "button_group", b"button_group", "camera_input", b"camera_input", "chat_input", b"chat_input", "checkbox", b"checkbox", "code", b"code", "color_picker", b"color_picker", "component_instance", b"component_instance", "data_frame", b"data_frame", "date_input", b"date_input", "deck_gl_json_chart", b"deck_gl_json_chart", "doc_string", b"doc_string", "download_button", b"download_button", "empty", b"empty", "exception", b"exception", "favicon", b"favicon", "file_uploader", b"file_uploader", "graphviz_chart", b"graphviz_chart", "heading", b"heading", "html", b"html", "iframe", b"iframe", "imgs", b"imgs", "json", b"json", "link_button", b"link_button", "markdown", b"markdown", "metric", b"metric", "multiselect", b"multiselect", "number_input", b"number_input", "page_link", b"page_link", "plotly_chart", b"plotly_chart", "progress", b"progress", "radio", b"radio", "selectbox", b"selectbox", "skeleton", b"skeleton", "slider", b"slider", "snow", b"snow", "spinner", b"spinner", "table", b"table", "text", b"text", "text_area", b"text_area", "text_input", b"text_input", "time_input", b"time_input", "toast", b"toast", "type", b"type", "vega_lite_chart", b"vega_lite_chart", "video", b"video"]) -> builtins.bool: ...
304
- def ClearField(self, field_name: typing.Literal["alert", b"alert", "arrow_data_frame", b"arrow_data_frame", "arrow_table", b"arrow_table", "arrow_vega_lite_chart", b"arrow_vega_lite_chart", "audio", b"audio", "balloons", b"balloons", "bokeh_chart", b"bokeh_chart", "button", b"button", "button_group", b"button_group", "camera_input", b"camera_input", "chat_input", b"chat_input", "checkbox", b"checkbox", "code", b"code", "color_picker", b"color_picker", "component_instance", b"component_instance", "data_frame", b"data_frame", "date_input", b"date_input", "deck_gl_json_chart", b"deck_gl_json_chart", "doc_string", b"doc_string", "download_button", b"download_button", "empty", b"empty", "exception", b"exception", "favicon", b"favicon", "file_uploader", b"file_uploader", "graphviz_chart", b"graphviz_chart", "heading", b"heading", "html", b"html", "iframe", b"iframe", "imgs", b"imgs", "json", b"json", "link_button", b"link_button", "markdown", b"markdown", "metric", b"metric", "multiselect", b"multiselect", "number_input", b"number_input", "page_link", b"page_link", "plotly_chart", b"plotly_chart", "progress", b"progress", "radio", b"radio", "selectbox", b"selectbox", "skeleton", b"skeleton", "slider", b"slider", "snow", b"snow", "spinner", b"spinner", "table", b"table", "text", b"text", "text_area", b"text_area", "text_input", b"text_input", "time_input", b"time_input", "toast", b"toast", "type", b"type", "vega_lite_chart", b"vega_lite_chart", "video", b"video"]) -> None: ...
305
- def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["alert", "arrow_data_frame", "arrow_table", "arrow_vega_lite_chart", "audio", "balloons", "bokeh_chart", "button", "button_group", "download_button", "camera_input", "chat_input", "checkbox", "color_picker", "component_instance", "data_frame", "table", "date_input", "deck_gl_json_chart", "doc_string", "empty", "exception", "favicon", "file_uploader", "graphviz_chart", "html", "iframe", "imgs", "json", "link_button", "markdown", "metric", "multiselect", "number_input", "page_link", "plotly_chart", "progress", "radio", "selectbox", "skeleton", "slider", "snow", "spinner", "text", "text_area", "text_input", "time_input", "toast", "vega_lite_chart", "video", "heading", "code"] | None: ...
308
+ def HasField(self, field_name: typing.Literal["alert", b"alert", "arrow_data_frame", b"arrow_data_frame", "arrow_table", b"arrow_table", "arrow_vega_lite_chart", b"arrow_vega_lite_chart", "audio", b"audio", "audio_input", b"audio_input", "balloons", b"balloons", "bokeh_chart", b"bokeh_chart", "button", b"button", "button_group", b"button_group", "camera_input", b"camera_input", "chat_input", b"chat_input", "checkbox", b"checkbox", "code", b"code", "color_picker", b"color_picker", "component_instance", b"component_instance", "data_frame", b"data_frame", "date_input", b"date_input", "deck_gl_json_chart", b"deck_gl_json_chart", "doc_string", b"doc_string", "download_button", b"download_button", "empty", b"empty", "exception", b"exception", "favicon", b"favicon", "file_uploader", b"file_uploader", "graphviz_chart", b"graphviz_chart", "heading", b"heading", "html", b"html", "iframe", b"iframe", "imgs", b"imgs", "json", b"json", "link_button", b"link_button", "markdown", b"markdown", "metric", b"metric", "multiselect", b"multiselect", "number_input", b"number_input", "page_link", b"page_link", "plotly_chart", b"plotly_chart", "progress", b"progress", "radio", b"radio", "selectbox", b"selectbox", "skeleton", b"skeleton", "slider", b"slider", "snow", b"snow", "spinner", b"spinner", "table", b"table", "text", b"text", "text_area", b"text_area", "text_input", b"text_input", "time_input", b"time_input", "toast", b"toast", "type", b"type", "vega_lite_chart", b"vega_lite_chart", "video", b"video"]) -> builtins.bool: ...
309
+ def ClearField(self, field_name: typing.Literal["alert", b"alert", "arrow_data_frame", b"arrow_data_frame", "arrow_table", b"arrow_table", "arrow_vega_lite_chart", b"arrow_vega_lite_chart", "audio", b"audio", "audio_input", b"audio_input", "balloons", b"balloons", "bokeh_chart", b"bokeh_chart", "button", b"button", "button_group", b"button_group", "camera_input", b"camera_input", "chat_input", b"chat_input", "checkbox", b"checkbox", "code", b"code", "color_picker", b"color_picker", "component_instance", b"component_instance", "data_frame", b"data_frame", "date_input", b"date_input", "deck_gl_json_chart", b"deck_gl_json_chart", "doc_string", b"doc_string", "download_button", b"download_button", "empty", b"empty", "exception", b"exception", "favicon", b"favicon", "file_uploader", b"file_uploader", "graphviz_chart", b"graphviz_chart", "heading", b"heading", "html", b"html", "iframe", b"iframe", "imgs", b"imgs", "json", b"json", "link_button", b"link_button", "markdown", b"markdown", "metric", b"metric", "multiselect", b"multiselect", "number_input", b"number_input", "page_link", b"page_link", "plotly_chart", b"plotly_chart", "progress", b"progress", "radio", b"radio", "selectbox", b"selectbox", "skeleton", b"skeleton", "slider", b"slider", "snow", b"snow", "spinner", b"spinner", "table", b"table", "text", b"text", "text_area", b"text_area", "text_input", b"text_input", "time_input", b"time_input", "toast", b"toast", "type", b"type", "vega_lite_chart", b"vega_lite_chart", "video", b"video"]) -> None: ...
310
+ def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["alert", "arrow_data_frame", "arrow_table", "arrow_vega_lite_chart", "audio", "audio_input", "balloons", "bokeh_chart", "button", "button_group", "download_button", "camera_input", "chat_input", "checkbox", "color_picker", "component_instance", "data_frame", "table", "date_input", "deck_gl_json_chart", "doc_string", "empty", "exception", "favicon", "file_uploader", "graphviz_chart", "html", "iframe", "imgs", "json", "link_button", "markdown", "metric", "multiselect", "number_input", "page_link", "plotly_chart", "progress", "radio", "selectbox", "skeleton", "slider", "snow", "spinner", "text", "text_area", "text_input", "time_input", "toast", "vega_lite_chart", "video", "heading", "code"] | None: ...
306
311
 
307
312
  global___Element = Element
@@ -39,6 +39,7 @@ from streamlit.errors import (
39
39
  )
40
40
  from streamlit.proto.Arrow_pb2 import Arrow
41
41
  from streamlit.proto.ArrowVegaLiteChart_pb2 import ArrowVegaLiteChart
42
+ from streamlit.proto.AudioInput_pb2 import AudioInput
42
43
  from streamlit.proto.Button_pb2 import Button
43
44
  from streamlit.proto.ButtonGroup_pb2 import ButtonGroup
44
45
  from streamlit.proto.CameraInput_pb2 import CameraInput
@@ -64,6 +65,7 @@ from streamlit.proto.TimeInput_pb2 import TimeInput
64
65
  WidgetProto: TypeAlias = Union[
65
66
  Arrow,
66
67
  ArrowVegaLiteChart,
68
+ AudioInput,
67
69
  Button,
68
70
  ButtonGroup,
69
71
  CameraInput,
@@ -48,6 +48,7 @@ ElementType: TypeAlias = str
48
48
  ELEMENT_TYPE_TO_VALUE_TYPE: Final[Mapping[ElementType, ValueFieldName]] = (
49
49
  MappingProxyType(
50
50
  {
51
+ "audio_input": "file_uploader_state_value",
51
52
  "button": "trigger_value",
52
53
  "button_group": "int_array_value",
53
54
  "camera_input": "file_uploader_state_value",
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "./static/css/main.5513bd04.css",
4
- "main.js": "./static/js/main.133ce9b9.js",
4
+ "main.js": "./static/js/main.e9d8ce9e.js",
5
5
  "static/js/6679.265ca09c.chunk.js": "./static/js/6679.265ca09c.chunk.js",
6
6
  "static/js/9464.7e9a3c0a.chunk.js": "./static/js/9464.7e9a3c0a.chunk.js",
7
7
  "static/js/9077.e0a8db2a.chunk.js": "./static/js/9077.e0a8db2a.chunk.js",
8
8
  "static/js/3391.663b9d47.chunk.js": "./static/js/3391.663b9d47.chunk.js",
9
9
  "static/css/9943.93909c7e.chunk.css": "./static/css/9943.93909c7e.chunk.css",
10
- "static/js/9943.2d62e2c4.chunk.js": "./static/js/9943.2d62e2c4.chunk.js",
10
+ "static/js/9943.6af344bb.chunk.js": "./static/js/9943.6af344bb.chunk.js",
11
11
  "static/css/5711.c24b25fa.chunk.css": "./static/css/5711.c24b25fa.chunk.css",
12
12
  "static/js/5711.229cb7d0.chunk.js": "./static/js/5711.229cb7d0.chunk.js",
13
13
  "static/js/3861.0dedcd19.chunk.js": "./static/js/3861.0dedcd19.chunk.js",
14
14
  "static/js/8642.58110d15.chunk.js": "./static/js/8642.58110d15.chunk.js",
15
- "static/js/3710.a5101ccc.chunk.js": "./static/js/3710.a5101ccc.chunk.js",
15
+ "static/js/3710.d73e609f.chunk.js": "./static/js/3710.d73e609f.chunk.js",
16
16
  "static/js/8148.f51df66c.chunk.js": "./static/js/8148.f51df66c.chunk.js",
17
17
  "static/js/84.414fa87b.chunk.js": "./static/js/84.414fa87b.chunk.js",
18
18
  "static/js/9923.7061d124.chunk.js": "./static/js/9923.7061d124.chunk.js",
@@ -20,6 +20,7 @@
20
20
  "static/js/4827.f9cb5fa3.chunk.js": "./static/js/4827.f9cb5fa3.chunk.js",
21
21
  "static/js/8237.210a5ac4.chunk.js": "./static/js/8237.210a5ac4.chunk.js",
22
22
  "static/js/5828.f8572ba4.chunk.js": "./static/js/5828.f8572ba4.chunk.js",
23
+ "static/js/266.e595f506.chunk.js": "./static/js/266.e595f506.chunk.js",
23
24
  "static/js/9060.1ec8dc2b.chunk.js": "./static/js/9060.1ec8dc2b.chunk.js",
24
25
  "static/js/5625.d9509933.chunk.js": "./static/js/5625.d9509933.chunk.js",
25
26
  "static/js/6141.43a8fda3.chunk.js": "./static/js/6141.43a8fda3.chunk.js",
@@ -35,7 +36,7 @@
35
36
  "static/js/6088.1164e19b.chunk.js": "./static/js/6088.1164e19b.chunk.js",
36
37
  "static/js/8166.11abccb8.chunk.js": "./static/js/8166.11abccb8.chunk.js",
37
38
  "static/js/9114.1ee3d4dd.chunk.js": "./static/js/9114.1ee3d4dd.chunk.js",
38
- "static/js/5180.e826dd46.chunk.js": "./static/js/5180.e826dd46.chunk.js",
39
+ "static/js/5281.02b3ddc4.chunk.js": "./static/js/5281.02b3ddc4.chunk.js",
39
40
  "static/js/5618.0a42d599.chunk.js": "./static/js/5618.0a42d599.chunk.js",
40
41
  "static/js/1260.e6289cc2.chunk.js": "./static/js/1260.e6289cc2.chunk.js",
41
42
  "static/js/3560.ce031236.chunk.js": "./static/js/3560.ce031236.chunk.js",
@@ -58,12 +59,13 @@
58
59
  "static/js/4297.3afbdd03.chunk.js": "./static/js/4297.3afbdd03.chunk.js",
59
60
  "static/js/4942.e4db7877.chunk.js": "./static/js/4942.e4db7877.chunk.js",
60
61
  "static/js/2627.2462a014.chunk.js": "./static/js/2627.2462a014.chunk.js",
62
+ "static/js/708.a5252e2f.chunk.js": "./static/js/708.a5252e2f.chunk.js",
61
63
  "static/js/5764.5a55e5be.chunk.js": "./static/js/5764.5a55e5be.chunk.js",
62
64
  "static/js/797.36f1bf7d.chunk.js": "./static/js/797.36f1bf7d.chunk.js",
63
65
  "static/js/6198.956025ac.chunk.js": "./static/js/6198.956025ac.chunk.js",
64
66
  "static/js/1674.86aea8e0.chunk.js": "./static/js/1674.86aea8e0.chunk.js",
65
67
  "static/js/7591.b3928443.chunk.js": "./static/js/7591.b3928443.chunk.js",
66
- "static/js/238.f9bc20d9.chunk.js": "./static/js/238.f9bc20d9.chunk.js",
68
+ "static/js/238.8d3a7d25.chunk.js": "./static/js/238.8d3a7d25.chunk.js",
67
69
  "static/media/MaterialSymbols-Rounded.woff2": "./static/media/MaterialSymbols-Rounded.ec07649f7a20048d5730.woff2",
68
70
  "static/media/fireworks.gif": "./static/media/fireworks.0906f02ea43f1018a6d2.gif",
69
71
  "static/media/flake-2.png": "./static/media/flake-2.e3f07d06933dd0e84c24.png",
@@ -154,6 +156,6 @@
154
156
  },
155
157
  "entrypoints": [
156
158
  "static/css/main.5513bd04.css",
157
- "static/js/main.133ce9b9.js"
159
+ "static/js/main.e9d8ce9e.js"
158
160
  ]
159
161
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><link rel="shortcut icon" href="./favicon.png"/><link rel="preload" href="./static/media/SourceSansPro-Regular.0d69e5ff5e92ac64a0c9.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-SemiBold.abed79cd0df1827e18cf.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-Bold.118dea98980e20a81ced.woff2" as="font" type="font/woff2" crossorigin><title>Streamlit</title><script>window.prerenderReady=!1</script><script defer="defer" src="./static/js/main.133ce9b9.js"></script><link href="./static/css/main.5513bd04.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><link rel="shortcut icon" href="./favicon.png"/><link rel="preload" href="./static/media/SourceSansPro-Regular.0d69e5ff5e92ac64a0c9.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-SemiBold.abed79cd0df1827e18cf.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-Bold.118dea98980e20a81ced.woff2" as="font" type="font/woff2" crossorigin><title>Streamlit</title><script>window.prerenderReady=!1</script><script defer="defer" src="./static/js/main.e9d8ce9e.js"></script><link href="./static/css/main.5513bd04.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_streamlit_app=self.webpackChunk_streamlit_app||[]).push([[238],{22044:(e,t,n)=>{n.d(t,{A:()=>f});var s=n(58878),o=n(53124),i=n.n(o),r=n(8151),l=n(41514),d=n(67214),a=n(64611),c=n(84152),h=n(89653);const m=(0,h.A)("button",{target:"e1vs0wn31"})((e=>{let{isExpanded:t,theme:n}=e;const s=t?{right:"0.4rem",top:"0.5rem",backgroundColor:"transparent"}:{right:"-3.0rem",top:"-0.375rem",opacity:0,transform:"scale(0)",backgroundColor:n.colors.lightenedBg05};return{position:"absolute",display:"flex",alignItems:"center",justifyContent:"center",zIndex:n.zIndices.sidebar+1,height:"2.5rem",width:"2.5rem",transition:"opacity 300ms 150ms, transform 300ms 150ms",border:"none",color:n.colors.fadedText60,borderRadius:"50%",...s,"&:focus":{outline:"none"},"&:active, &:focus-visible, &:hover":{opacity:1,outline:"none",transform:"scale(1)",color:n.colors.bodyText,transition:"none"}}}),""),p=(0,h.A)("div",{target:"e1vs0wn30"})((e=>{let{theme:t,isExpanded:n}=e;return{"&:hover":{[m]:{opacity:1,transform:"scale(1)",transition:"none"}},...n?{position:"fixed",top:0,left:0,bottom:0,right:0,background:t.colors.bgColor,zIndex:t.zIndices.fullscreenWrapper,padding:t.spacing.md,paddingTop:t.sizes.fullScreenHeaderHeight,overflow:["auto","overlay"],display:"flex",alignItems:"center",justifyContent:"center"}:{}}}),"");var u=n(90782);class g extends s.PureComponent{constructor(e){super(e),this.context=void 0,this.controlKeys=e=>{const{expanded:t}=this.state;27===e.keyCode&&t&&this.zoomOut()},this.zoomIn=()=>{document.body.style.overflow="hidden",this.context.setFullScreen(!0),this.setState({expanded:!0})},this.zoomOut=()=>{document.body.style.overflow="unset",this.context.setFullScreen(!1),this.setState({expanded:!1})},this.convertScssRemValueToPixels=e=>parseFloat(e)*parseFloat(getComputedStyle(document.documentElement).fontSize),this.getWindowDimensions=()=>{const e=this.convertScssRemValueToPixels(this.props.theme.spacing.md),t=this.convertScssRemValueToPixels(this.props.theme.sizes.fullScreenHeaderHeight);return{fullWidth:window.innerWidth-2*e,fullHeight:window.innerHeight-(e+t)}},this.updateWindowDimensions=()=>{this.setState(this.getWindowDimensions())},this.state={expanded:!1,...this.getWindowDimensions()}}componentDidMount(){window.addEventListener("resize",this.updateWindowDimensions),document.addEventListener("keydown",this.controlKeys,!1)}componentWillUnmount(){window.removeEventListener("resize",this.updateWindowDimensions),document.removeEventListener("keydown",this.controlKeys,!1)}render(){const{expanded:e,fullWidth:t,fullHeight:n}=this.state,{children:s,width:o,height:i,disableFullscreenMode:r}=this.props;let c=l.u,h=this.zoomIn,g="View fullscreen";return e&&(c=d.Q,h=this.zoomOut,g="Exit fullscreen"),(0,u.jsxs)(p,{isExpanded:e,"data-testid":"stFullScreenFrame",children:[!r&&(0,u.jsx)(m,{"data-testid":"StyledFullScreenButton",onClick:h,title:g,isExpanded:e,children:(0,u.jsx)(a.A,{content:c})}),s(e?{width:t,height:n,expanded:e,expand:this.zoomIn,collapse:this.zoomOut}:{width:o,height:i,expanded:e,expand:this.zoomIn,collapse:this.zoomOut})]})}}g.contextType=c.n;const x=(0,r.b)(g);const f=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];class n extends s.PureComponent{constructor(){super(...arguments),this.render=()=>{const{width:n,height:s,disableFullscreenMode:o}=this.props;return(0,u.jsx)(x,{width:n,height:s,disableFullscreenMode:t||o,children:t=>{let{width:n,height:s,expanded:o,expand:i,collapse:r}=t;return(0,u.jsx)(e,{...this.props,width:n,height:s,isFullScreen:o,expand:i,collapse:r})}})}}}return n.displayName=`withFullScreenWrapper(${e.displayName||e.name})`,i()(n,e)}},85850:(e,t,n)=>{n.d(t,{K:()=>f,A:()=>v});n(58878);var s=n(8151),o=n(12274),i=n(63186),r=n(34914),l=n(997),d=n(36459),a=n(84720),c=n(64611),h=n(89653),m=n(58144);const p="-2.4rem",u=(0,h.A)("div",{target:"e2wxzia1"})((e=>{let{theme:t,locked:n,target:s}=e;return{padding:`${t.spacing.sm} 0 ${t.spacing.sm} ${t.spacing.sm}`,position:"absolute",top:n?p:"-1rem",right:t.spacing.none,transition:"none",...!n&&{opacity:0,"&:active, &:focus-visible, &:hover":{transition:"opacity 150ms 100ms, top 100ms 100ms",opacity:1,top:p},...s&&{[`${s}:hover &, ${s}:active &, ${s}:focus-visible &`]:{transition:"opacity 150ms 100ms, top 100ms 100ms",opacity:1,top:p}}}}}),""),g=(0,h.A)("div",{target:"e2wxzia0"})((e=>{let{theme:t}=e;return{color:(0,m.iq)(t)?t.colors.fadedText60:t.colors.bodyText,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-end",boxShadow:"1px 2px 8px rgba(0, 0, 0, 0.08)",borderRadius:t.radii.default,backgroundColor:t.colors.lightenedBg05,width:"fit-content",zIndex:t.zIndices.sidebar+1}}),"");var x=n(90782);function f(e){let{label:t,show_label:n,icon:o,onClick:i}=e;const h=(0,s.u)(),m=n?t:"";return(0,x.jsx)("div",{"data-testid":"stElementToolbarButton",children:(0,x.jsx)(l.A,{content:(0,x.jsx)(r.Ay,{source:t,allowHTML:!1,style:{fontSize:h.fontSizes.sm}}),placement:l.W.TOP,onMouseEnterDelay:1e3,inline:!0,children:(0,x.jsxs)(d.Ay,{onClick:e=>{i&&i(),e.stopPropagation()},kind:a.KX.ELEMENT_TOOLBAR,children:[o&&(0,x.jsx)(c.A,{content:o,size:"md",testid:"stElementToolbarButtonIcon"}),m&&(0,x.jsx)("span",{children:m})]})})})}const v=e=>{let{onExpand:t,onCollapse:n,isFullScreen:s,locked:r,children:l,target:d,disableFullscreenMode:a}=e;return(0,x.jsx)(u,{className:"stElementToolbar","data-testid":"stElementToolbar",locked:r||s,target:d,children:(0,x.jsxs)(g,{children:[l,t&&!a&&!s&&(0,x.jsx)(f,{label:"Fullscreen",icon:o.g,onClick:()=>t()}),n&&!a&&s&&(0,x.jsx)(f,{label:"Close fullscreen",icon:i.Q,onClick:()=>n()})]})})}},34752:(e,t,n)=>{n.d(t,{X:()=>r,o:()=>i});var s=n(58878),o=n(25571);class i{constructor(){this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}manageFormClearListener(e,t,n){(0,o.se)(this.formClearListener)&&this.lastWidgetMgr===e&&this.lastFormId===t||(this.disconnect(),(0,o._L)(t)&&(this.formClearListener=e.addFormClearedListener(t,n),this.lastWidgetMgr=e,this.lastFormId=t))}disconnect(){var e;null===(e=this.formClearListener)||void 0===e||e.disconnect(),this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}}function r(e){let{element:t,widgetMgr:n,onFormCleared:i}=e;(0,s.useEffect)((()=>{if(!(0,o._L)(t.formId))return;const e=n.addFormClearedListener(t.formId,i);return()=>{e.disconnect()}}),[t,n,i])}}}]);
1
+ "use strict";(self.webpackChunk_streamlit_app=self.webpackChunk_streamlit_app||[]).push([[238],{22044:(e,t,n)=>{n.d(t,{A:()=>f});var s=n(58878),o=n(53124),i=n.n(o),r=n(8151),l=n(41514),d=n(67214),a=n(64611),c=n(84152),h=n(89653);const m=(0,h.A)("button",{target:"e1vs0wn31"})((e=>{let{isExpanded:t,theme:n}=e;const s=t?{right:"0.4rem",top:"0.5rem",backgroundColor:"transparent"}:{right:"-3.0rem",top:"-0.375rem",opacity:0,transform:"scale(0)",backgroundColor:n.colors.lightenedBg05};return{position:"absolute",display:"flex",alignItems:"center",justifyContent:"center",zIndex:n.zIndices.sidebar+1,height:"2.5rem",width:"2.5rem",transition:"opacity 300ms 150ms, transform 300ms 150ms",border:"none",color:n.colors.fadedText60,borderRadius:"50%",...s,"&:focus":{outline:"none"},"&:active, &:focus-visible, &:hover":{opacity:1,outline:"none",transform:"scale(1)",color:n.colors.bodyText,transition:"none"}}}),""),p=(0,h.A)("div",{target:"e1vs0wn30"})((e=>{let{theme:t,isExpanded:n}=e;return{"&:hover":{[m]:{opacity:1,transform:"scale(1)",transition:"none"}},...n?{position:"fixed",top:0,left:0,bottom:0,right:0,background:t.colors.bgColor,zIndex:t.zIndices.fullscreenWrapper,padding:t.spacing.md,paddingTop:t.sizes.fullScreenHeaderHeight,overflow:["auto","overlay"],display:"flex",alignItems:"center",justifyContent:"center"}:{}}}),"");var u=n(90782);class g extends s.PureComponent{constructor(e){super(e),this.context=void 0,this.controlKeys=e=>{const{expanded:t}=this.state;27===e.keyCode&&t&&this.zoomOut()},this.zoomIn=()=>{document.body.style.overflow="hidden",this.context.setFullScreen(!0),this.setState({expanded:!0})},this.zoomOut=()=>{document.body.style.overflow="unset",this.context.setFullScreen(!1),this.setState({expanded:!1})},this.convertScssRemValueToPixels=e=>parseFloat(e)*parseFloat(getComputedStyle(document.documentElement).fontSize),this.getWindowDimensions=()=>{const e=this.convertScssRemValueToPixels(this.props.theme.spacing.md),t=this.convertScssRemValueToPixels(this.props.theme.sizes.fullScreenHeaderHeight);return{fullWidth:window.innerWidth-2*e,fullHeight:window.innerHeight-(e+t)}},this.updateWindowDimensions=()=>{this.setState(this.getWindowDimensions())},this.state={expanded:!1,...this.getWindowDimensions()}}componentDidMount(){window.addEventListener("resize",this.updateWindowDimensions),document.addEventListener("keydown",this.controlKeys,!1)}componentWillUnmount(){window.removeEventListener("resize",this.updateWindowDimensions),document.removeEventListener("keydown",this.controlKeys,!1)}render(){const{expanded:e,fullWidth:t,fullHeight:n}=this.state,{children:s,width:o,height:i,disableFullscreenMode:r}=this.props;let c=l.u,h=this.zoomIn,g="View fullscreen";return e&&(c=d.Q,h=this.zoomOut,g="Exit fullscreen"),(0,u.jsxs)(p,{isExpanded:e,"data-testid":"stFullScreenFrame",children:[!r&&(0,u.jsx)(m,{"data-testid":"StyledFullScreenButton",onClick:h,title:g,isExpanded:e,children:(0,u.jsx)(a.A,{content:c})}),s(e?{width:t,height:n,expanded:e,expand:this.zoomIn,collapse:this.zoomOut}:{width:o,height:i,expanded:e,expand:this.zoomIn,collapse:this.zoomOut})]})}}g.contextType=c.n;const x=(0,r.b)(g);const f=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];class n extends s.PureComponent{constructor(){super(...arguments),this.render=()=>{const{width:n,height:s,disableFullscreenMode:o}=this.props;return(0,u.jsx)(x,{width:n,height:s,disableFullscreenMode:t||o,children:t=>{let{width:n,height:s,expanded:o,expand:i,collapse:r}=t;return(0,u.jsx)(e,{...this.props,width:n,height:s,isFullScreen:o,expand:i,collapse:r})}})}}}return n.displayName=`withFullScreenWrapper(${e.displayName||e.name})`,i()(n,e)}},85850:(e,t,n)=>{n.d(t,{K:()=>f,A:()=>v});n(58878);var s=n(8151),o=n(12274),i=n(63186),r=n(34914),l=n(997),d=n(36459),a=n(84720),c=n(64611),h=n(89653),m=n(58144);const p="-2.4rem",u=(0,h.A)("div",{target:"e2wxzia1"})((e=>{let{theme:t,locked:n,target:s}=e;return{padding:`${t.spacing.sm} 0 ${t.spacing.sm} ${t.spacing.sm}`,position:"absolute",top:n?p:"-1rem",right:t.spacing.none,transition:"none",...!n&&{opacity:0,"&:active, &:focus-visible, &:hover":{transition:"opacity 150ms 100ms, top 100ms 100ms",opacity:1,top:p},...s&&{[`${s}:hover &, ${s}:active &, ${s}:focus-visible &`]:{transition:"opacity 150ms 100ms, top 100ms 100ms",opacity:1,top:p}}}}}),""),g=(0,h.A)("div",{target:"e2wxzia0"})((e=>{let{theme:t}=e;return{color:(0,m.iq)(t)?t.colors.fadedText60:t.colors.bodyText,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-end",boxShadow:"1px 2px 8px rgba(0, 0, 0, 0.08)",borderRadius:t.radii.default,backgroundColor:t.colors.lightenedBg05,width:"fit-content",zIndex:t.zIndices.sidebar+1}}),"");var x=n(90782);function f(e){let{label:t,show_label:n,icon:o,onClick:i}=e;const h=(0,s.u)(),m=n?t:"";return(0,x.jsx)("div",{"data-testid":"stElementToolbarButton",children:(0,x.jsx)(l.A,{content:(0,x.jsx)(r.Ay,{source:t,allowHTML:!1,style:{fontSize:h.fontSizes.sm}}),placement:l.W.TOP,onMouseEnterDelay:1e3,inline:!0,children:(0,x.jsxs)(d.Ay,{onClick:e=>{i&&i(),e.stopPropagation()},kind:a.KX.ELEMENT_TOOLBAR,"aria-label":t,children:[o&&(0,x.jsx)(c.A,{content:o,size:"md",testid:"stElementToolbarButtonIcon"}),m&&(0,x.jsx)("span",{children:m})]})})})}const v=e=>{let{onExpand:t,onCollapse:n,isFullScreen:s,locked:r,children:l,target:d,disableFullscreenMode:a}=e;return(0,x.jsx)(u,{className:"stElementToolbar","data-testid":"stElementToolbar",locked:r||s,target:d,children:(0,x.jsxs)(g,{children:[l,t&&!a&&!s&&(0,x.jsx)(f,{label:"Fullscreen",icon:o.g,onClick:()=>t()}),n&&!a&&s&&(0,x.jsx)(f,{label:"Close fullscreen",icon:i.Q,onClick:()=>n()})]})})}},34752:(e,t,n)=>{n.d(t,{X:()=>r,o:()=>i});var s=n(58878),o=n(25571);class i{constructor(){this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}manageFormClearListener(e,t,n){(0,o.se)(this.formClearListener)&&this.lastWidgetMgr===e&&this.lastFormId===t||(this.disconnect(),(0,o._L)(t)&&(this.formClearListener=e.addFormClearedListener(t,n),this.lastWidgetMgr=e,this.lastFormId=t))}disconnect(){var e;null===(e=this.formClearListener)||void 0===e||e.disconnect(),this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}}function r(e){let{element:t,widgetMgr:n,onFormCleared:i}=e;(0,s.useEffect)((()=>{if(!(0,o._L)(t.formId))return;const e=n.addFormClearedListener(t.formId,i);return()=>{e.disconnect()}}),[t,n,i])}}}]);