freddyaboulton HF staff commited on
Commit
285e056
1 Parent(s): 2d1af8f

Upload folder using huggingface_hub

Browse files
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ FROM python:3.9
3
+
4
+ WORKDIR /code
5
+
6
+ COPY --link --chown=1000 . .
7
+
8
+ RUN mkdir -p /tmp/cache/
9
+ RUN chmod a+rwx -R /tmp/cache/
10
+ ENV TRANSFORMERS_CACHE=/tmp/cache/
11
+
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ ENV PYTHONUNBUFFERED=1 GRADIO_ALLOW_FLAGGING=never GRADIO_NUM_PORTS=1 GRADIO_SERVER_NAME=0.0.0.0 GRADIO_SERVER_PORT=7860 SYSTEM=spaces
15
+
16
+ CMD ["python", "app.py"]
README.md CHANGED
@@ -1,10 +1,17 @@
 
1
  ---
2
- title: Gradio Calendar
3
- emoji: 🦀
4
- colorFrom: yellow
5
- colorTo: pink
6
  sdk: docker
7
  pinned: false
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
1
+
2
  ---
3
+ tags: [gradio-custom-component,gradio-template-Fallback,time,calendar,forms]
4
+ title: gradio_calendar V0.0.1
5
+ colorFrom: blue
6
+ colorTo: indigo
7
  sdk: docker
8
  pinned: false
9
+ license: apache-2.0
10
  ---
11
 
12
+
13
+ # Name: gradio_calendar
14
+
15
+ Description: Gradio component for selecting dates with a calendar 📆
16
+
17
+ Install with: pip install gradio_calendar
__init__.py ADDED
File without changes
__pycache__/__init__.cpython-310.pyc ADDED
Binary file (151 Bytes). View file
 
__pycache__/app.cpython-310.pyc ADDED
Binary file (563 Bytes). View file
 
app.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from gradio_calendar import Calendar
3
+ import datetime
4
+
5
+ def is_weekday(date: datetime.datetime):
6
+ return date.weekday() < 5
7
+
8
+ demo = gr.Interface(is_weekday,
9
+ [Calendar(type="datetime", label="Select a date", info="Click anywhere to bring up the calendar.")],
10
+ gr.Label(label="Is it a weekday?"),
11
+ examples=["2023-01-01", "2023-12-11"],
12
+ cache_examples=True,
13
+ title="Is it a weekday?")
14
+
15
+
16
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ gradio_calendar-0.0.1-py3-none-any.whl
src/.gitignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ .eggs/
2
+ dist/
3
+ *.pyc
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+ __tmp/*
8
+ *.pyi
9
+ node_modules
src/README.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # gradio_calendar 📅
3
+ A calendar component that lets users pick dates!
4
+
5
+ `Preprocessing`: The date passed to the python function will be a string formatted as YYYY-MM-DD or a datetime.datetime object
6
+ depending on the value of the type parameter.
7
+
8
+ `Postprocessing`: The value returned from the function can be a string or a datetime.datetime object.
9
+
10
+ ## Example usage
11
+
12
+
13
+ ```python
14
+ import gradio as gr
15
+ from gradio_calendar import Calendar
16
+ import datetime
17
+
18
+ def is_weekday(date: datetime.datetime):
19
+ return date.weekday() < 5
20
+
21
+ demo = gr.Interface(is_weekday,
22
+ [Calendar(type="datetime", label="Select a date")],
23
+ gr.Label(label="Is it a weekend?"))
24
+
25
+
26
+ demo.launch()
27
+
28
+ ```
29
+
30
+
31
+ ![](https://github.com/freddyaboulton/gradio-datepicker/assets/41651716/be2ffff3-4db5-4f12-9f6d-237acb1d1f96)
src/backend/gradio_calendar/__init__.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ from .calendar import Calendar
3
+
4
+ __all__ = ['Calendar']
src/backend/gradio_calendar/calendar.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+ from typing import Any, Callable, Literal
3
+ from gradio.components.base import Component
4
+ import datetime
5
+
6
+ class Calendar(Component):
7
+ """
8
+ A calendar component that allows users to select a date.
9
+
10
+ Preprocessing: The date passed to the python function will be a string formatted as YYYY-MM-DD or a datetime.datetime object
11
+ depending on the value of the type parameter.
12
+
13
+ Postprocessing: The value returned from the function can be a string or a datetime.datetime object.
14
+
15
+ Parameters:
16
+ value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.
17
+ type: The type of the value to pass to the python function. Either "string" or "datetime".
18
+ label: The label for the component.
19
+ info: Extra text to render below the component.
20
+ show_label: Whether to show the label for the component.
21
+ container: Whether to show the component in a container.
22
+ scale: The relative size of the component compared to other components in the same row.
23
+ min_width: The minimum width of the component.
24
+ interactive: Whether to allow the user to interact with the component.
25
+ visible: Whether to show the component.
26
+ elem_id: The id of the component. Useful for custom js or css.
27
+ elem_classes: The classes of the component. Useful for custom js or css.
28
+ render: Whether to render the component in the parent Blocks scope.
29
+ load_fn: A function to run when the component is first loaded onto the page to set the intial value.
30
+ every: Whether load_fn should be run on a fixed time interval.
31
+ """
32
+
33
+ EVENTS = ["change", "input", "submit"]
34
+
35
+ def __init__(self, value: str | datetime.datetime = None, *,
36
+ type: Literal["string", "datetime"] = "datetime",
37
+ label: str | None = None, info: str | None = None,
38
+ show_label: bool | None = None, container: bool = True, scale: int | None = None,
39
+ min_width: int | None = None, interactive: bool | None = None, visible: bool = True,
40
+ elem_id: str | None = None, elem_classes: list[str] | str | None = None,
41
+ render: bool = True,
42
+ load_fn: Callable[..., Any] | None = None,
43
+ every: float | None = None):
44
+ self._format_str = "%Y-%m-%d"
45
+ self.type = type
46
+ super().__init__(value, label=label, info=info, show_label=show_label, container=container, scale=scale, min_width=min_width, interactive=interactive, visible=visible, elem_id=elem_id, elem_classes=elem_classes, render=render, load_fn=load_fn, every=every)
47
+
48
+
49
+ def preprocess(self, payload: str | None) -> str | datetime.datetime | None:
50
+ if payload is None:
51
+ return None
52
+ if self.type == "string":
53
+ return payload
54
+ else:
55
+ return datetime.datetime.strptime(payload, self._format_str)
56
+
57
+
58
+ def postprocess(self, value: str | datetime.datetime | None) -> str | None:
59
+ if not value:
60
+ return None
61
+ if isinstance(value, str):
62
+ return datetime.datetime.strptime(value, self._format_str).strftime(self._format_str)
63
+ elif isinstance(value, datetime.datetime):
64
+ return datetime.datetime.strftime(value, self._format_str)
65
+ else:
66
+ raise ValueError(f"Unexpected value type {type(value)} for Calender (value: {value})")
67
+
68
+ def example_inputs(self):
69
+ return "2023-01-01"
70
+
71
+ def api_info(self):
72
+ return {"type": "string", "description": f"Date string formatted as YYYY-MM-DD."}
src/backend/gradio_calendar/calendar.pyi ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from gradio.components.base import Component
2
+
3
+ from gradio.events import Dependency
4
+
5
+ class Calendar(Component):
6
+ """
7
+ A calendar component that allows users to select a date.
8
+
9
+ Preprocessing: The date passed to the python function will be a string formatted as YYYY-MM-DD or a datetime.datetime object
10
+ depending on the value of the type parameter.
11
+
12
+ Postprocessing: The value returned from the function can be a string or a datetime.datetime object.
13
+
14
+ Parameters:
15
+ value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.
16
+ type: The type of the value to pass to the python function. Either "string" or "datetime".
17
+ label: The label for the component.
18
+ info: Extra text to render below the component.
19
+ show_label: Whether to show the label for the component.
20
+ container: Whether to show the component in a container.
21
+ scale: The relative size of the component compared to other components in the same row.
22
+ min_width: The minimum width of the component.
23
+ interactive: Whether to allow the user to interact with the component.
24
+ visible: Whether to show the component.
25
+ elem_id: The id of the component. Useful for custom js or css.
26
+ elem_classes: The classes of the component. Useful for custom js or css.
27
+ render: Whether to render the component in the parent Blocks scope.
28
+ load_fn: A function to run when the component is first loaded onto the page to set the intial value.
29
+ every: Whether load_fn should be run on a fixed time interval.
30
+ """
31
+
32
+ EVENTS = ["change", "input", "submit"]
33
+
34
+ def __init__(self, value: str | datetime.datetime = None, *,
35
+ type: Literal["string", "datetime"] = "datetime",
36
+ label: str | None = None, info: str | None = None,
37
+ show_label: bool | None = None, container: bool = True, scale: int | None = None,
38
+ min_width: int | None = None, interactive: bool | None = None, visible: bool = True,
39
+ elem_id: str | None = None, elem_classes: list[str] | str | None = None,
40
+ render: bool = True,
41
+ load_fn: Callable[..., Any] | None = None,
42
+ every: float | None = None):
43
+ self._format_str = "%Y-%m-%d"
44
+ self.type = type
45
+ super().__init__(value, label=label, info=info, show_label=show_label, container=container, scale=scale, min_width=min_width, interactive=interactive, visible=visible, elem_id=elem_id, elem_classes=elem_classes, render=render, load_fn=load_fn, every=every)
46
+
47
+
48
+ def preprocess(self, payload: str | None) -> str | datetime.datetime | None:
49
+ if payload is None:
50
+ return None
51
+ if self.type == "string":
52
+ return payload
53
+ else:
54
+ return datetime.datetime.strptime(payload, self._format_str)
55
+
56
+
57
+ def postprocess(self, value: str | datetime.datetime | None) -> str | None:
58
+ if not value:
59
+ return None
60
+ if isinstance(value, str):
61
+ return datetime.datetime.strptime(value, self._format_str).strftime(self._format_str)
62
+ elif isinstance(value, datetime.datetime):
63
+ return datetime.datetime.strftime(value, self._format_str)
64
+ else:
65
+ raise ValueError(f"Unexpected value type {type(value)} for Calender (value: {value})")
66
+
67
+ def example_inputs(self):
68
+ return "2023-01-01"
69
+
70
+ def api_info(self):
71
+ return {"type": "string", "description": f"Date string formatted as YYYY-MM-DD."}
72
+
73
+
74
+ def change(self,
75
+ fn: Callable | None,
76
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
77
+ outputs: Component | Sequence[Component] | None = None,
78
+ api_name: str | None | Literal[False] = None,
79
+ scroll_to_output: bool = False,
80
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
81
+ queue: bool | None = None,
82
+ batch: bool = False,
83
+ max_batch_size: int = 4,
84
+ preprocess: bool = True,
85
+ postprocess: bool = True,
86
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
87
+ every: float | None = None,
88
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
89
+ js: str | None = None,
90
+ concurrency_limit: int | None | Literal["default"] = "default",
91
+ concurrency_id: str | None = None) -> Dependency:
92
+ """
93
+ Parameters:
94
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
95
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
96
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
97
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
98
+ scroll_to_output: If True, will scroll to output component on completion
99
+ show_progress: If True, will show progress animation while pending
100
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
101
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
102
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
103
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
104
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
105
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
106
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled.
107
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
108
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
109
+ concurrency_limit: If set, this this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
110
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
111
+ """
112
+ ...
113
+
114
+ def input(self,
115
+ fn: Callable | None,
116
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
117
+ outputs: Component | Sequence[Component] | None = None,
118
+ api_name: str | None | Literal[False] = None,
119
+ scroll_to_output: bool = False,
120
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
121
+ queue: bool | None = None,
122
+ batch: bool = False,
123
+ max_batch_size: int = 4,
124
+ preprocess: bool = True,
125
+ postprocess: bool = True,
126
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
127
+ every: float | None = None,
128
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
129
+ js: str | None = None,
130
+ concurrency_limit: int | None | Literal["default"] = "default",
131
+ concurrency_id: str | None = None) -> Dependency:
132
+ """
133
+ Parameters:
134
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
135
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
136
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
137
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
138
+ scroll_to_output: If True, will scroll to output component on completion
139
+ show_progress: If True, will show progress animation while pending
140
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
141
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
142
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
143
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
144
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
145
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
146
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled.
147
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
148
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
149
+ concurrency_limit: If set, this this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
150
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
151
+ """
152
+ ...
153
+
154
+ def submit(self,
155
+ fn: Callable | None,
156
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
157
+ outputs: Component | Sequence[Component] | None = None,
158
+ api_name: str | None | Literal[False] = None,
159
+ scroll_to_output: bool = False,
160
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
161
+ queue: bool | None = None,
162
+ batch: bool = False,
163
+ max_batch_size: int = 4,
164
+ preprocess: bool = True,
165
+ postprocess: bool = True,
166
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
167
+ every: float | None = None,
168
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
169
+ js: str | None = None,
170
+ concurrency_limit: int | None | Literal["default"] = "default",
171
+ concurrency_id: str | None = None) -> Dependency:
172
+ """
173
+ Parameters:
174
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
175
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
176
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
177
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
178
+ scroll_to_output: If True, will scroll to output component on completion
179
+ show_progress: If True, will show progress animation while pending
180
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
181
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
182
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
183
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
184
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
185
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
186
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled.
187
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
188
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
189
+ concurrency_limit: If set, this this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
190
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
191
+ """
192
+ ...
src/backend/gradio_calendar/templates/component/index.js ADDED
@@ -0,0 +1,1081 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const {
2
+ SvelteComponent: X,
3
+ assign: Y,
4
+ create_slot: Z,
5
+ detach: p,
6
+ element: x,
7
+ get_all_dirty_from_scope: $,
8
+ get_slot_changes: ee,
9
+ get_spread_update: te,
10
+ init: le,
11
+ insert: ne,
12
+ safe_not_equal: fe,
13
+ set_dynamic_element_data: z,
14
+ set_style: r,
15
+ toggle_class: h,
16
+ transition_in: G,
17
+ transition_out: H,
18
+ update_slot_base: ie
19
+ } = window.__gradio__svelte__internal;
20
+ function ae(l) {
21
+ let e, t, n;
22
+ const f = (
23
+ /*#slots*/
24
+ l[17].default
25
+ ), a = Z(
26
+ f,
27
+ l,
28
+ /*$$scope*/
29
+ l[16],
30
+ null
31
+ );
32
+ let o = [
33
+ { "data-testid": (
34
+ /*test_id*/
35
+ l[7]
36
+ ) },
37
+ { id: (
38
+ /*elem_id*/
39
+ l[2]
40
+ ) },
41
+ {
42
+ class: t = "block " + /*elem_classes*/
43
+ l[3].join(" ") + " svelte-1t38q2d"
44
+ }
45
+ ], _ = {};
46
+ for (let i = 0; i < o.length; i += 1)
47
+ _ = Y(_, o[i]);
48
+ return {
49
+ c() {
50
+ e = x(
51
+ /*tag*/
52
+ l[14]
53
+ ), a && a.c(), z(
54
+ /*tag*/
55
+ l[14]
56
+ )(e, _), h(
57
+ e,
58
+ "hidden",
59
+ /*visible*/
60
+ l[10] === !1
61
+ ), h(
62
+ e,
63
+ "padded",
64
+ /*padding*/
65
+ l[6]
66
+ ), h(
67
+ e,
68
+ "border_focus",
69
+ /*border_mode*/
70
+ l[5] === "focus"
71
+ ), h(e, "hide-container", !/*explicit_call*/
72
+ l[8] && !/*container*/
73
+ l[9]), r(e, "height", typeof /*height*/
74
+ l[0] == "number" ? (
75
+ /*height*/
76
+ l[0] + "px"
77
+ ) : void 0), r(e, "width", typeof /*width*/
78
+ l[1] == "number" ? `calc(min(${/*width*/
79
+ l[1]}px, 100%))` : void 0), r(
80
+ e,
81
+ "border-style",
82
+ /*variant*/
83
+ l[4]
84
+ ), r(
85
+ e,
86
+ "overflow",
87
+ /*allow_overflow*/
88
+ l[11] ? "visible" : "hidden"
89
+ ), r(
90
+ e,
91
+ "flex-grow",
92
+ /*scale*/
93
+ l[12]
94
+ ), r(e, "min-width", `calc(min(${/*min_width*/
95
+ l[13]}px, 100%))`), r(e, "border-width", "var(--block-border-width)");
96
+ },
97
+ m(i, s) {
98
+ ne(i, e, s), a && a.m(e, null), n = !0;
99
+ },
100
+ p(i, s) {
101
+ a && a.p && (!n || s & /*$$scope*/
102
+ 65536) && ie(
103
+ a,
104
+ f,
105
+ i,
106
+ /*$$scope*/
107
+ i[16],
108
+ n ? ee(
109
+ f,
110
+ /*$$scope*/
111
+ i[16],
112
+ s,
113
+ null
114
+ ) : $(
115
+ /*$$scope*/
116
+ i[16]
117
+ ),
118
+ null
119
+ ), z(
120
+ /*tag*/
121
+ i[14]
122
+ )(e, _ = te(o, [
123
+ (!n || s & /*test_id*/
124
+ 128) && { "data-testid": (
125
+ /*test_id*/
126
+ i[7]
127
+ ) },
128
+ (!n || s & /*elem_id*/
129
+ 4) && { id: (
130
+ /*elem_id*/
131
+ i[2]
132
+ ) },
133
+ (!n || s & /*elem_classes*/
134
+ 8 && t !== (t = "block " + /*elem_classes*/
135
+ i[3].join(" ") + " svelte-1t38q2d")) && { class: t }
136
+ ])), h(
137
+ e,
138
+ "hidden",
139
+ /*visible*/
140
+ i[10] === !1
141
+ ), h(
142
+ e,
143
+ "padded",
144
+ /*padding*/
145
+ i[6]
146
+ ), h(
147
+ e,
148
+ "border_focus",
149
+ /*border_mode*/
150
+ i[5] === "focus"
151
+ ), h(e, "hide-container", !/*explicit_call*/
152
+ i[8] && !/*container*/
153
+ i[9]), s & /*height*/
154
+ 1 && r(e, "height", typeof /*height*/
155
+ i[0] == "number" ? (
156
+ /*height*/
157
+ i[0] + "px"
158
+ ) : void 0), s & /*width*/
159
+ 2 && r(e, "width", typeof /*width*/
160
+ i[1] == "number" ? `calc(min(${/*width*/
161
+ i[1]}px, 100%))` : void 0), s & /*variant*/
162
+ 16 && r(
163
+ e,
164
+ "border-style",
165
+ /*variant*/
166
+ i[4]
167
+ ), s & /*allow_overflow*/
168
+ 2048 && r(
169
+ e,
170
+ "overflow",
171
+ /*allow_overflow*/
172
+ i[11] ? "visible" : "hidden"
173
+ ), s & /*scale*/
174
+ 4096 && r(
175
+ e,
176
+ "flex-grow",
177
+ /*scale*/
178
+ i[12]
179
+ ), s & /*min_width*/
180
+ 8192 && r(e, "min-width", `calc(min(${/*min_width*/
181
+ i[13]}px, 100%))`);
182
+ },
183
+ i(i) {
184
+ n || (G(a, i), n = !0);
185
+ },
186
+ o(i) {
187
+ H(a, i), n = !1;
188
+ },
189
+ d(i) {
190
+ i && p(e), a && a.d(i);
191
+ }
192
+ };
193
+ }
194
+ function se(l) {
195
+ let e, t = (
196
+ /*tag*/
197
+ l[14] && ae(l)
198
+ );
199
+ return {
200
+ c() {
201
+ t && t.c();
202
+ },
203
+ m(n, f) {
204
+ t && t.m(n, f), e = !0;
205
+ },
206
+ p(n, [f]) {
207
+ /*tag*/
208
+ n[14] && t.p(n, f);
209
+ },
210
+ i(n) {
211
+ e || (G(t, n), e = !0);
212
+ },
213
+ o(n) {
214
+ H(t, n), e = !1;
215
+ },
216
+ d(n) {
217
+ t && t.d(n);
218
+ }
219
+ };
220
+ }
221
+ function _e(l, e, t) {
222
+ let { $$slots: n = {}, $$scope: f } = e, { height: a = void 0 } = e, { width: o = void 0 } = e, { elem_id: _ = "" } = e, { elem_classes: i = [] } = e, { variant: s = "solid" } = e, { border_mode: u = "base" } = e, { padding: m = !0 } = e, { type: g = "normal" } = e, { test_id: y = void 0 } = e, { explicit_call: k = !1 } = e, { container: b = !0 } = e, { visible: w = !0 } = e, { allow_overflow: S = !0 } = e, { scale: C = null } = e, { min_width: B = 0 } = e, d = g === "fieldset" ? "fieldset" : "div";
223
+ return l.$$set = (c) => {
224
+ "height" in c && t(0, a = c.height), "width" in c && t(1, o = c.width), "elem_id" in c && t(2, _ = c.elem_id), "elem_classes" in c && t(3, i = c.elem_classes), "variant" in c && t(4, s = c.variant), "border_mode" in c && t(5, u = c.border_mode), "padding" in c && t(6, m = c.padding), "type" in c && t(15, g = c.type), "test_id" in c && t(7, y = c.test_id), "explicit_call" in c && t(8, k = c.explicit_call), "container" in c && t(9, b = c.container), "visible" in c && t(10, w = c.visible), "allow_overflow" in c && t(11, S = c.allow_overflow), "scale" in c && t(12, C = c.scale), "min_width" in c && t(13, B = c.min_width), "$$scope" in c && t(16, f = c.$$scope);
225
+ }, [
226
+ a,
227
+ o,
228
+ _,
229
+ i,
230
+ s,
231
+ u,
232
+ m,
233
+ y,
234
+ k,
235
+ b,
236
+ w,
237
+ S,
238
+ C,
239
+ B,
240
+ d,
241
+ g,
242
+ f,
243
+ n
244
+ ];
245
+ }
246
+ class oe extends X {
247
+ constructor(e) {
248
+ super(), le(this, e, _e, se, fe, {
249
+ height: 0,
250
+ width: 1,
251
+ elem_id: 2,
252
+ elem_classes: 3,
253
+ variant: 4,
254
+ border_mode: 5,
255
+ padding: 6,
256
+ type: 15,
257
+ test_id: 7,
258
+ explicit_call: 8,
259
+ container: 9,
260
+ visible: 10,
261
+ allow_overflow: 11,
262
+ scale: 12,
263
+ min_width: 13
264
+ });
265
+ }
266
+ }
267
+ const {
268
+ SvelteComponent: ce,
269
+ attr: de,
270
+ create_slot: ue,
271
+ detach: re,
272
+ element: me,
273
+ get_all_dirty_from_scope: be,
274
+ get_slot_changes: he,
275
+ init: ge,
276
+ insert: we,
277
+ safe_not_equal: ve,
278
+ transition_in: ye,
279
+ transition_out: ke,
280
+ update_slot_base: Se
281
+ } = window.__gradio__svelte__internal;
282
+ function qe(l) {
283
+ let e, t;
284
+ const n = (
285
+ /*#slots*/
286
+ l[1].default
287
+ ), f = ue(
288
+ n,
289
+ l,
290
+ /*$$scope*/
291
+ l[0],
292
+ null
293
+ );
294
+ return {
295
+ c() {
296
+ e = me("div"), f && f.c(), de(e, "class", "svelte-1hnfib2");
297
+ },
298
+ m(a, o) {
299
+ we(a, e, o), f && f.m(e, null), t = !0;
300
+ },
301
+ p(a, [o]) {
302
+ f && f.p && (!t || o & /*$$scope*/
303
+ 1) && Se(
304
+ f,
305
+ n,
306
+ a,
307
+ /*$$scope*/
308
+ a[0],
309
+ t ? he(
310
+ n,
311
+ /*$$scope*/
312
+ a[0],
313
+ o,
314
+ null
315
+ ) : be(
316
+ /*$$scope*/
317
+ a[0]
318
+ ),
319
+ null
320
+ );
321
+ },
322
+ i(a) {
323
+ t || (ye(f, a), t = !0);
324
+ },
325
+ o(a) {
326
+ ke(f, a), t = !1;
327
+ },
328
+ d(a) {
329
+ a && re(e), f && f.d(a);
330
+ }
331
+ };
332
+ }
333
+ function Ce(l, e, t) {
334
+ let { $$slots: n = {}, $$scope: f } = e;
335
+ return l.$$set = (a) => {
336
+ "$$scope" in a && t(0, f = a.$$scope);
337
+ }, [f, n];
338
+ }
339
+ class Be extends ce {
340
+ constructor(e) {
341
+ super(), ge(this, e, Ce, qe, ve, {});
342
+ }
343
+ }
344
+ const {
345
+ SvelteComponent: Ie,
346
+ attr: A,
347
+ check_outros: Te,
348
+ create_component: je,
349
+ create_slot: De,
350
+ destroy_component: Pe,
351
+ detach: I,
352
+ element: ze,
353
+ empty: Ae,
354
+ get_all_dirty_from_scope: Ee,
355
+ get_slot_changes: Le,
356
+ group_outros: Ne,
357
+ init: Oe,
358
+ insert: T,
359
+ mount_component: Ue,
360
+ safe_not_equal: Fe,
361
+ set_data: Ge,
362
+ space: He,
363
+ text: Je,
364
+ toggle_class: v,
365
+ transition_in: q,
366
+ transition_out: j,
367
+ update_slot_base: Ke
368
+ } = window.__gradio__svelte__internal;
369
+ function E(l) {
370
+ let e, t;
371
+ return e = new Be({
372
+ props: {
373
+ $$slots: { default: [Me] },
374
+ $$scope: { ctx: l }
375
+ }
376
+ }), {
377
+ c() {
378
+ je(e.$$.fragment);
379
+ },
380
+ m(n, f) {
381
+ Ue(e, n, f), t = !0;
382
+ },
383
+ p(n, f) {
384
+ const a = {};
385
+ f & /*$$scope, info*/
386
+ 10 && (a.$$scope = { dirty: f, ctx: n }), e.$set(a);
387
+ },
388
+ i(n) {
389
+ t || (q(e.$$.fragment, n), t = !0);
390
+ },
391
+ o(n) {
392
+ j(e.$$.fragment, n), t = !1;
393
+ },
394
+ d(n) {
395
+ Pe(e, n);
396
+ }
397
+ };
398
+ }
399
+ function Me(l) {
400
+ let e;
401
+ return {
402
+ c() {
403
+ e = Je(
404
+ /*info*/
405
+ l[1]
406
+ );
407
+ },
408
+ m(t, n) {
409
+ T(t, e, n);
410
+ },
411
+ p(t, n) {
412
+ n & /*info*/
413
+ 2 && Ge(
414
+ e,
415
+ /*info*/
416
+ t[1]
417
+ );
418
+ },
419
+ d(t) {
420
+ t && I(e);
421
+ }
422
+ };
423
+ }
424
+ function Qe(l) {
425
+ let e, t, n, f;
426
+ const a = (
427
+ /*#slots*/
428
+ l[2].default
429
+ ), o = De(
430
+ a,
431
+ l,
432
+ /*$$scope*/
433
+ l[3],
434
+ null
435
+ );
436
+ let _ = (
437
+ /*info*/
438
+ l[1] && E(l)
439
+ );
440
+ return {
441
+ c() {
442
+ e = ze("span"), o && o.c(), t = He(), _ && _.c(), n = Ae(), A(e, "data-testid", "block-info"), A(e, "class", "svelte-22c38v"), v(e, "sr-only", !/*show_label*/
443
+ l[0]), v(e, "hide", !/*show_label*/
444
+ l[0]), v(
445
+ e,
446
+ "has-info",
447
+ /*info*/
448
+ l[1] != null
449
+ );
450
+ },
451
+ m(i, s) {
452
+ T(i, e, s), o && o.m(e, null), T(i, t, s), _ && _.m(i, s), T(i, n, s), f = !0;
453
+ },
454
+ p(i, [s]) {
455
+ o && o.p && (!f || s & /*$$scope*/
456
+ 8) && Ke(
457
+ o,
458
+ a,
459
+ i,
460
+ /*$$scope*/
461
+ i[3],
462
+ f ? Le(
463
+ a,
464
+ /*$$scope*/
465
+ i[3],
466
+ s,
467
+ null
468
+ ) : Ee(
469
+ /*$$scope*/
470
+ i[3]
471
+ ),
472
+ null
473
+ ), (!f || s & /*show_label*/
474
+ 1) && v(e, "sr-only", !/*show_label*/
475
+ i[0]), (!f || s & /*show_label*/
476
+ 1) && v(e, "hide", !/*show_label*/
477
+ i[0]), (!f || s & /*info*/
478
+ 2) && v(
479
+ e,
480
+ "has-info",
481
+ /*info*/
482
+ i[1] != null
483
+ ), /*info*/
484
+ i[1] ? _ ? (_.p(i, s), s & /*info*/
485
+ 2 && q(_, 1)) : (_ = E(i), _.c(), q(_, 1), _.m(n.parentNode, n)) : _ && (Ne(), j(_, 1, 1, () => {
486
+ _ = null;
487
+ }), Te());
488
+ },
489
+ i(i) {
490
+ f || (q(o, i), q(_), f = !0);
491
+ },
492
+ o(i) {
493
+ j(o, i), j(_), f = !1;
494
+ },
495
+ d(i) {
496
+ i && (I(e), I(t), I(n)), o && o.d(i), _ && _.d(i);
497
+ }
498
+ };
499
+ }
500
+ function Re(l, e, t) {
501
+ let { $$slots: n = {}, $$scope: f } = e, { show_label: a = !0 } = e, { info: o = void 0 } = e;
502
+ return l.$$set = (_) => {
503
+ "show_label" in _ && t(0, a = _.show_label), "info" in _ && t(1, o = _.info), "$$scope" in _ && t(3, f = _.$$scope);
504
+ }, [a, o, n, f];
505
+ }
506
+ class Ve extends Ie {
507
+ constructor(e) {
508
+ super(), Oe(this, e, Re, Qe, Fe, { show_label: 0, info: 1 });
509
+ }
510
+ }
511
+ const We = [
512
+ { color: "red", primary: 600, secondary: 100 },
513
+ { color: "green", primary: 600, secondary: 100 },
514
+ { color: "blue", primary: 600, secondary: 100 },
515
+ { color: "yellow", primary: 500, secondary: 100 },
516
+ { color: "purple", primary: 600, secondary: 100 },
517
+ { color: "teal", primary: 600, secondary: 100 },
518
+ { color: "orange", primary: 600, secondary: 100 },
519
+ { color: "cyan", primary: 600, secondary: 100 },
520
+ { color: "lime", primary: 500, secondary: 100 },
521
+ { color: "pink", primary: 600, secondary: 100 }
522
+ ], L = {
523
+ inherit: "inherit",
524
+ current: "currentColor",
525
+ transparent: "transparent",
526
+ black: "#000",
527
+ white: "#fff",
528
+ slate: {
529
+ 50: "#f8fafc",
530
+ 100: "#f1f5f9",
531
+ 200: "#e2e8f0",
532
+ 300: "#cbd5e1",
533
+ 400: "#94a3b8",
534
+ 500: "#64748b",
535
+ 600: "#475569",
536
+ 700: "#334155",
537
+ 800: "#1e293b",
538
+ 900: "#0f172a",
539
+ 950: "#020617"
540
+ },
541
+ gray: {
542
+ 50: "#f9fafb",
543
+ 100: "#f3f4f6",
544
+ 200: "#e5e7eb",
545
+ 300: "#d1d5db",
546
+ 400: "#9ca3af",
547
+ 500: "#6b7280",
548
+ 600: "#4b5563",
549
+ 700: "#374151",
550
+ 800: "#1f2937",
551
+ 900: "#111827",
552
+ 950: "#030712"
553
+ },
554
+ zinc: {
555
+ 50: "#fafafa",
556
+ 100: "#f4f4f5",
557
+ 200: "#e4e4e7",
558
+ 300: "#d4d4d8",
559
+ 400: "#a1a1aa",
560
+ 500: "#71717a",
561
+ 600: "#52525b",
562
+ 700: "#3f3f46",
563
+ 800: "#27272a",
564
+ 900: "#18181b",
565
+ 950: "#09090b"
566
+ },
567
+ neutral: {
568
+ 50: "#fafafa",
569
+ 100: "#f5f5f5",
570
+ 200: "#e5e5e5",
571
+ 300: "#d4d4d4",
572
+ 400: "#a3a3a3",
573
+ 500: "#737373",
574
+ 600: "#525252",
575
+ 700: "#404040",
576
+ 800: "#262626",
577
+ 900: "#171717",
578
+ 950: "#0a0a0a"
579
+ },
580
+ stone: {
581
+ 50: "#fafaf9",
582
+ 100: "#f5f5f4",
583
+ 200: "#e7e5e4",
584
+ 300: "#d6d3d1",
585
+ 400: "#a8a29e",
586
+ 500: "#78716c",
587
+ 600: "#57534e",
588
+ 700: "#44403c",
589
+ 800: "#292524",
590
+ 900: "#1c1917",
591
+ 950: "#0c0a09"
592
+ },
593
+ red: {
594
+ 50: "#fef2f2",
595
+ 100: "#fee2e2",
596
+ 200: "#fecaca",
597
+ 300: "#fca5a5",
598
+ 400: "#f87171",
599
+ 500: "#ef4444",
600
+ 600: "#dc2626",
601
+ 700: "#b91c1c",
602
+ 800: "#991b1b",
603
+ 900: "#7f1d1d",
604
+ 950: "#450a0a"
605
+ },
606
+ orange: {
607
+ 50: "#fff7ed",
608
+ 100: "#ffedd5",
609
+ 200: "#fed7aa",
610
+ 300: "#fdba74",
611
+ 400: "#fb923c",
612
+ 500: "#f97316",
613
+ 600: "#ea580c",
614
+ 700: "#c2410c",
615
+ 800: "#9a3412",
616
+ 900: "#7c2d12",
617
+ 950: "#431407"
618
+ },
619
+ amber: {
620
+ 50: "#fffbeb",
621
+ 100: "#fef3c7",
622
+ 200: "#fde68a",
623
+ 300: "#fcd34d",
624
+ 400: "#fbbf24",
625
+ 500: "#f59e0b",
626
+ 600: "#d97706",
627
+ 700: "#b45309",
628
+ 800: "#92400e",
629
+ 900: "#78350f",
630
+ 950: "#451a03"
631
+ },
632
+ yellow: {
633
+ 50: "#fefce8",
634
+ 100: "#fef9c3",
635
+ 200: "#fef08a",
636
+ 300: "#fde047",
637
+ 400: "#facc15",
638
+ 500: "#eab308",
639
+ 600: "#ca8a04",
640
+ 700: "#a16207",
641
+ 800: "#854d0e",
642
+ 900: "#713f12",
643
+ 950: "#422006"
644
+ },
645
+ lime: {
646
+ 50: "#f7fee7",
647
+ 100: "#ecfccb",
648
+ 200: "#d9f99d",
649
+ 300: "#bef264",
650
+ 400: "#a3e635",
651
+ 500: "#84cc16",
652
+ 600: "#65a30d",
653
+ 700: "#4d7c0f",
654
+ 800: "#3f6212",
655
+ 900: "#365314",
656
+ 950: "#1a2e05"
657
+ },
658
+ green: {
659
+ 50: "#f0fdf4",
660
+ 100: "#dcfce7",
661
+ 200: "#bbf7d0",
662
+ 300: "#86efac",
663
+ 400: "#4ade80",
664
+ 500: "#22c55e",
665
+ 600: "#16a34a",
666
+ 700: "#15803d",
667
+ 800: "#166534",
668
+ 900: "#14532d",
669
+ 950: "#052e16"
670
+ },
671
+ emerald: {
672
+ 50: "#ecfdf5",
673
+ 100: "#d1fae5",
674
+ 200: "#a7f3d0",
675
+ 300: "#6ee7b7",
676
+ 400: "#34d399",
677
+ 500: "#10b981",
678
+ 600: "#059669",
679
+ 700: "#047857",
680
+ 800: "#065f46",
681
+ 900: "#064e3b",
682
+ 950: "#022c22"
683
+ },
684
+ teal: {
685
+ 50: "#f0fdfa",
686
+ 100: "#ccfbf1",
687
+ 200: "#99f6e4",
688
+ 300: "#5eead4",
689
+ 400: "#2dd4bf",
690
+ 500: "#14b8a6",
691
+ 600: "#0d9488",
692
+ 700: "#0f766e",
693
+ 800: "#115e59",
694
+ 900: "#134e4a",
695
+ 950: "#042f2e"
696
+ },
697
+ cyan: {
698
+ 50: "#ecfeff",
699
+ 100: "#cffafe",
700
+ 200: "#a5f3fc",
701
+ 300: "#67e8f9",
702
+ 400: "#22d3ee",
703
+ 500: "#06b6d4",
704
+ 600: "#0891b2",
705
+ 700: "#0e7490",
706
+ 800: "#155e75",
707
+ 900: "#164e63",
708
+ 950: "#083344"
709
+ },
710
+ sky: {
711
+ 50: "#f0f9ff",
712
+ 100: "#e0f2fe",
713
+ 200: "#bae6fd",
714
+ 300: "#7dd3fc",
715
+ 400: "#38bdf8",
716
+ 500: "#0ea5e9",
717
+ 600: "#0284c7",
718
+ 700: "#0369a1",
719
+ 800: "#075985",
720
+ 900: "#0c4a6e",
721
+ 950: "#082f49"
722
+ },
723
+ blue: {
724
+ 50: "#eff6ff",
725
+ 100: "#dbeafe",
726
+ 200: "#bfdbfe",
727
+ 300: "#93c5fd",
728
+ 400: "#60a5fa",
729
+ 500: "#3b82f6",
730
+ 600: "#2563eb",
731
+ 700: "#1d4ed8",
732
+ 800: "#1e40af",
733
+ 900: "#1e3a8a",
734
+ 950: "#172554"
735
+ },
736
+ indigo: {
737
+ 50: "#eef2ff",
738
+ 100: "#e0e7ff",
739
+ 200: "#c7d2fe",
740
+ 300: "#a5b4fc",
741
+ 400: "#818cf8",
742
+ 500: "#6366f1",
743
+ 600: "#4f46e5",
744
+ 700: "#4338ca",
745
+ 800: "#3730a3",
746
+ 900: "#312e81",
747
+ 950: "#1e1b4b"
748
+ },
749
+ violet: {
750
+ 50: "#f5f3ff",
751
+ 100: "#ede9fe",
752
+ 200: "#ddd6fe",
753
+ 300: "#c4b5fd",
754
+ 400: "#a78bfa",
755
+ 500: "#8b5cf6",
756
+ 600: "#7c3aed",
757
+ 700: "#6d28d9",
758
+ 800: "#5b21b6",
759
+ 900: "#4c1d95",
760
+ 950: "#2e1065"
761
+ },
762
+ purple: {
763
+ 50: "#faf5ff",
764
+ 100: "#f3e8ff",
765
+ 200: "#e9d5ff",
766
+ 300: "#d8b4fe",
767
+ 400: "#c084fc",
768
+ 500: "#a855f7",
769
+ 600: "#9333ea",
770
+ 700: "#7e22ce",
771
+ 800: "#6b21a8",
772
+ 900: "#581c87",
773
+ 950: "#3b0764"
774
+ },
775
+ fuchsia: {
776
+ 50: "#fdf4ff",
777
+ 100: "#fae8ff",
778
+ 200: "#f5d0fe",
779
+ 300: "#f0abfc",
780
+ 400: "#e879f9",
781
+ 500: "#d946ef",
782
+ 600: "#c026d3",
783
+ 700: "#a21caf",
784
+ 800: "#86198f",
785
+ 900: "#701a75",
786
+ 950: "#4a044e"
787
+ },
788
+ pink: {
789
+ 50: "#fdf2f8",
790
+ 100: "#fce7f3",
791
+ 200: "#fbcfe8",
792
+ 300: "#f9a8d4",
793
+ 400: "#f472b6",
794
+ 500: "#ec4899",
795
+ 600: "#db2777",
796
+ 700: "#be185d",
797
+ 800: "#9d174d",
798
+ 900: "#831843",
799
+ 950: "#500724"
800
+ },
801
+ rose: {
802
+ 50: "#fff1f2",
803
+ 100: "#ffe4e6",
804
+ 200: "#fecdd3",
805
+ 300: "#fda4af",
806
+ 400: "#fb7185",
807
+ 500: "#f43f5e",
808
+ 600: "#e11d48",
809
+ 700: "#be123c",
810
+ 800: "#9f1239",
811
+ 900: "#881337",
812
+ 950: "#4c0519"
813
+ }
814
+ };
815
+ We.reduce(
816
+ (l, { color: e, primary: t, secondary: n }) => ({
817
+ ...l,
818
+ [e]: {
819
+ primary: L[e][t],
820
+ secondary: L[e][n]
821
+ }
822
+ }),
823
+ {}
824
+ );
825
+ const {
826
+ SvelteComponent: Xe,
827
+ append: N,
828
+ attr: D,
829
+ binding_callbacks: Ye,
830
+ create_component: J,
831
+ destroy_component: K,
832
+ detach: M,
833
+ element: O,
834
+ init: Ze,
835
+ insert: Q,
836
+ is_function: pe,
837
+ listen: P,
838
+ mount_component: R,
839
+ run_all: xe,
840
+ safe_not_equal: $e,
841
+ set_data: e0,
842
+ set_input_value: U,
843
+ space: t0,
844
+ text: l0,
845
+ toggle_class: F,
846
+ transition_in: V,
847
+ transition_out: W
848
+ } = window.__gradio__svelte__internal;
849
+ function n0(l) {
850
+ let e;
851
+ return {
852
+ c() {
853
+ e = l0(
854
+ /*label*/
855
+ l[1]
856
+ );
857
+ },
858
+ m(t, n) {
859
+ Q(t, e, n);
860
+ },
861
+ p(t, n) {
862
+ n & /*label*/
863
+ 2 && e0(
864
+ e,
865
+ /*label*/
866
+ t[1]
867
+ );
868
+ },
869
+ d(t) {
870
+ t && M(e);
871
+ }
872
+ };
873
+ }
874
+ function f0(l) {
875
+ let e, t, n, f, a, o, _, i;
876
+ return t = new Ve({
877
+ props: {
878
+ show_label: (
879
+ /*show_label*/
880
+ l[8]
881
+ ),
882
+ info: (
883
+ /*info*/
884
+ l[6]
885
+ ),
886
+ $$slots: { default: [n0] },
887
+ $$scope: { ctx: l }
888
+ }
889
+ }), {
890
+ c() {
891
+ e = O("label"), J(t.$$.fragment), n = t0(), f = O("input"), D(f, "type", "date"), f.disabled = a = !/*interactive*/
892
+ l[10], D(f, "class", "svelte-16v5klh"), D(e, "class", "svelte-16v5klh"), F(
893
+ e,
894
+ "container",
895
+ /*container*/
896
+ l[9]
897
+ );
898
+ },
899
+ m(s, u) {
900
+ Q(s, e, u), R(t, e, null), N(e, n), N(e, f), l[15](f), U(
901
+ f,
902
+ /*value*/
903
+ l[0]
904
+ ), o = !0, _ || (i = [
905
+ P(
906
+ f,
907
+ "input",
908
+ /*input_input_handler*/
909
+ l[16]
910
+ ),
911
+ P(f, "mousedown", function() {
912
+ pe(
913
+ /*el*/
914
+ l[11].showPicker
915
+ ) && l[11].showPicker.apply(this, arguments);
916
+ }),
917
+ P(
918
+ f,
919
+ "change",
920
+ /*handle_change*/
921
+ l[12]
922
+ )
923
+ ], _ = !0);
924
+ },
925
+ p(s, u) {
926
+ l = s;
927
+ const m = {};
928
+ u & /*show_label*/
929
+ 256 && (m.show_label = /*show_label*/
930
+ l[8]), u & /*info*/
931
+ 64 && (m.info = /*info*/
932
+ l[6]), u & /*$$scope, label*/
933
+ 131074 && (m.$$scope = { dirty: u, ctx: l }), t.$set(m), (!o || u & /*interactive*/
934
+ 1024 && a !== (a = !/*interactive*/
935
+ l[10])) && (f.disabled = a), u & /*value*/
936
+ 1 && U(
937
+ f,
938
+ /*value*/
939
+ l[0]
940
+ ), (!o || u & /*container*/
941
+ 512) && F(
942
+ e,
943
+ "container",
944
+ /*container*/
945
+ l[9]
946
+ );
947
+ },
948
+ i(s) {
949
+ o || (V(t.$$.fragment, s), o = !0);
950
+ },
951
+ o(s) {
952
+ W(t.$$.fragment, s), o = !1;
953
+ },
954
+ d(s) {
955
+ s && M(e), K(t), l[15](null), _ = !1, xe(i);
956
+ }
957
+ };
958
+ }
959
+ function i0(l) {
960
+ let e, t;
961
+ return e = new oe({
962
+ props: {
963
+ visible: (
964
+ /*visible*/
965
+ l[2]
966
+ ),
967
+ elem_id: (
968
+ /*elem_id*/
969
+ l[4]
970
+ ),
971
+ elem_classes: (
972
+ /*elem_classes*/
973
+ l[3]
974
+ ),
975
+ scale: (
976
+ /*scale*/
977
+ l[5]
978
+ ),
979
+ min_width: (
980
+ /*min_width*/
981
+ l[7]
982
+ ),
983
+ allow_overflow: !1,
984
+ padding: !0,
985
+ $$slots: { default: [f0] },
986
+ $$scope: { ctx: l }
987
+ }
988
+ }), {
989
+ c() {
990
+ J(e.$$.fragment);
991
+ },
992
+ m(n, f) {
993
+ R(e, n, f), t = !0;
994
+ },
995
+ p(n, [f]) {
996
+ const a = {};
997
+ f & /*visible*/
998
+ 4 && (a.visible = /*visible*/
999
+ n[2]), f & /*elem_id*/
1000
+ 16 && (a.elem_id = /*elem_id*/
1001
+ n[4]), f & /*elem_classes*/
1002
+ 8 && (a.elem_classes = /*elem_classes*/
1003
+ n[3]), f & /*scale*/
1004
+ 32 && (a.scale = /*scale*/
1005
+ n[5]), f & /*min_width*/
1006
+ 128 && (a.min_width = /*min_width*/
1007
+ n[7]), f & /*$$scope, container, interactive, el, value, show_label, info, label*/
1008
+ 134979 && (a.$$scope = { dirty: f, ctx: n }), e.$set(a);
1009
+ },
1010
+ i(n) {
1011
+ t || (V(e.$$.fragment, n), t = !0);
1012
+ },
1013
+ o(n) {
1014
+ W(e.$$.fragment, n), t = !1;
1015
+ },
1016
+ d(n) {
1017
+ K(e, n);
1018
+ }
1019
+ };
1020
+ }
1021
+ function a0(l, e, t) {
1022
+ let { value: n = null } = e, { value_is_output: f = !1 } = e, { label: a } = e, { visible: o = !0 } = e, { elem_classes: _ } = e, { elem_id: i } = e, { scale: s } = e, { info: u } = e, { min_width: m } = e, { show_label: g = !0 } = e, { container: y = !0 } = e, { interactive: k = !0 } = e, { gradio: b } = e, w;
1023
+ function S() {
1024
+ b.dispatch("change"), f || (b.dispatch("submit"), b.dispatch("input"));
1025
+ }
1026
+ function C(d) {
1027
+ Ye[d ? "unshift" : "push"](() => {
1028
+ w = d, t(11, w);
1029
+ });
1030
+ }
1031
+ function B() {
1032
+ n = this.value, t(0, n);
1033
+ }
1034
+ return l.$$set = (d) => {
1035
+ "value" in d && t(0, n = d.value), "value_is_output" in d && t(13, f = d.value_is_output), "label" in d && t(1, a = d.label), "visible" in d && t(2, o = d.visible), "elem_classes" in d && t(3, _ = d.elem_classes), "elem_id" in d && t(4, i = d.elem_id), "scale" in d && t(5, s = d.scale), "info" in d && t(6, u = d.info), "min_width" in d && t(7, m = d.min_width), "show_label" in d && t(8, g = d.show_label), "container" in d && t(9, y = d.container), "interactive" in d && t(10, k = d.interactive), "gradio" in d && t(14, b = d.gradio);
1036
+ }, l.$$.update = () => {
1037
+ l.$$.dirty & /*value*/
1038
+ 1 && n === null && t(0, n = (/* @__PURE__ */ new Date()).toISOString().split("T")[0]), l.$$.dirty & /*value*/
1039
+ 1 && S();
1040
+ }, [
1041
+ n,
1042
+ a,
1043
+ o,
1044
+ _,
1045
+ i,
1046
+ s,
1047
+ u,
1048
+ m,
1049
+ g,
1050
+ y,
1051
+ k,
1052
+ w,
1053
+ S,
1054
+ f,
1055
+ b,
1056
+ C,
1057
+ B
1058
+ ];
1059
+ }
1060
+ class s0 extends Xe {
1061
+ constructor(e) {
1062
+ super(), Ze(this, e, a0, i0, $e, {
1063
+ value: 0,
1064
+ value_is_output: 13,
1065
+ label: 1,
1066
+ visible: 2,
1067
+ elem_classes: 3,
1068
+ elem_id: 4,
1069
+ scale: 5,
1070
+ info: 6,
1071
+ min_width: 7,
1072
+ show_label: 8,
1073
+ container: 9,
1074
+ interactive: 10,
1075
+ gradio: 14
1076
+ });
1077
+ }
1078
+ }
1079
+ export {
1080
+ s0 as default
1081
+ };
src/backend/gradio_calendar/templates/component/style.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .block.svelte-1t38q2d{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.border_focus.svelte-1t38q2d{border-color:var(--color-accent)}.padded.svelte-1t38q2d{padding:var(--block-padding)}.hidden.svelte-1t38q2d{display:none}.hide-container.svelte-1t38q2d{margin:0;box-shadow:none;--block-border-width:0;background:transparent;padding:0;overflow:visible}div.svelte-1hnfib2{margin-bottom:var(--spacing-lg);color:var(--block-info-text-color);font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}span.has-info.svelte-22c38v{margin-bottom:var(--spacing-xs)}span.svelte-22c38v:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-22c38v{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}.hide.svelte-22c38v{margin:0;height:0}label.svelte-9gxdi0{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-label-shadow);border:var(--block-label-border-width) solid var(--border-color-primary);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}.gr-group label.svelte-9gxdi0{border-top-left-radius:0}label.float.svelte-9gxdi0{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}label.svelte-9gxdi0:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-9gxdi0{height:0}span.svelte-9gxdi0{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}.hide-label.svelte-9gxdi0{box-shadow:none;border-width:0;background:transparent;overflow:visible}button.svelte-lpi64a{display:flex;justify-content:center;align-items:center;gap:1px;z-index:var(--layer-2);border-radius:var(--radius-sm);color:var(--block-label-text-color);border:1px solid transparent}button[disabled].svelte-lpi64a{opacity:.5;box-shadow:none}button[disabled].svelte-lpi64a:hover{cursor:not-allowed}.padded.svelte-lpi64a{padding:2px;background:var(--bg-color);box-shadow:var(--shadow-drop);border:1px solid var(--button-secondary-border-color)}button.svelte-lpi64a:hover,button.highlight.svelte-lpi64a{cursor:pointer;color:var(--color-accent)}.padded.svelte-lpi64a:hover{border:2px solid var(--button-secondary-border-color-hover);padding:1px;color:var(--block-label-text-color)}span.svelte-lpi64a{padding:0 1px;font-size:10px}div.svelte-lpi64a{padding:2px;display:flex;align-items:flex-end}.small.svelte-lpi64a{width:14px;height:14px}.large.svelte-lpi64a{width:22px;height:22px}.pending.svelte-lpi64a{animation:svelte-lpi64a-flash .5s infinite}@keyframes svelte-lpi64a-flash{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.transparent.svelte-lpi64a{background:transparent;border:none;box-shadow:none}.empty.svelte-3w3rth{display:flex;justify-content:center;align-items:center;margin-top:calc(0px - var(--size-6));height:var(--size-full)}.icon.svelte-3w3rth{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-3w3rth{min-height:calc(var(--size-32) - 20px)}.large.svelte-3w3rth{min-height:calc(var(--size-64) - 20px)}.unpadded_box.svelte-3w3rth{margin-top:0}.small_parent.svelte-3w3rth{min-height:100%!important}.dropdown-arrow.svelte-145leq6{fill:currentColor}.wrap.svelte-kzcjhc{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:var(--size-60);color:var(--block-label-text-color);line-height:var(--line-md);height:100%;padding-top:var(--size-3)}.or.svelte-kzcjhc{color:var(--body-text-color-subdued);display:flex}.icon-wrap.svelte-kzcjhc{width:30px;margin-bottom:var(--spacing-lg)}@media (--screen-md){.wrap.svelte-kzcjhc{font-size:var(--text-lg)}}.hovered.svelte-kzcjhc{color:var(--color-accent)}div.svelte-ipfyu7{border-top:1px solid transparent;display:flex;max-height:100%;justify-content:center;gap:var(--spacing-sm);height:auto;align-items:flex-end;padding-bottom:var(--spacing-xl);color:var(--block-label-text-color);flex-shrink:0;width:95%}.show_border.svelte-ipfyu7{border-top:1px solid var(--block-border-color);margin-top:var(--spacing-xxl);box-shadow:var(--shadow-drop)}.source-selection.svelte-lde7lt{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border-color-primary);width:95%;bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;align-self:flex-end}.icon.svelte-lde7lt{width:22px;height:22px;margin:var(--spacing-lg) var(--spacing-xs);padding:var(--spacing-xs);color:var(--neutral-400);border-radius:var(--radius-md)}.selected.svelte-lde7lt{color:var(--color-accent)}.icon.svelte-lde7lt:hover,.icon.svelte-lde7lt:focus{color:var(--color-accent)}label.svelte-16v5klh.svelte-16v5klh{display:block;width:100%}input.svelte-16v5klh.svelte-16v5klh{display:block;position:relative;outline:none!important;box-shadow:var(--input-shadow);background:var(--input-background-fill);padding:var(--input-padding);width:100%;color:var(--body-text-color);font-weight:var(--input-text-weight);font-size:var(--input-text-size);line-height:var(--line-sm);border:none}input[type=date].svelte-16v5klh.svelte-16v5klh{cursor:pointer}input[type=date].svelte-16v5klh.svelte-16v5klh::-webkit-calendar-picker-indicator{display:none}label.svelte-16v5klh.svelte-16v5klh:not(.container),label.svelte-16v5klh:not(.container)>input.svelte-16v5klh{height:100%}.container.svelte-16v5klh>input.svelte-16v5klh{border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-radius)}input.svelte-16v5klh.svelte-16v5klh:disabled{-webkit-text-fill-color:var(--body-text-color);-webkit-opacity:1;opacity:1}input.svelte-16v5klh.svelte-16v5klh:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}input.svelte-16v5klh.svelte-16v5klh::placeholder{color:var(--input-placeholder-color)}
src/backend/gradio_calendar/templates/example/index.js ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const {
2
+ SvelteComponent: f,
3
+ append: u,
4
+ attr: d,
5
+ detach: g,
6
+ element: o,
7
+ init: v,
8
+ insert: r,
9
+ noop: c,
10
+ safe_not_equal: y,
11
+ set_data: m,
12
+ text: b,
13
+ toggle_class: i
14
+ } = window.__gradio__svelte__internal;
15
+ function w(a) {
16
+ let e, n;
17
+ return {
18
+ c() {
19
+ e = o("div"), n = b(
20
+ /*value*/
21
+ a[0]
22
+ ), d(e, "class", "svelte-1gecy8w"), i(
23
+ e,
24
+ "table",
25
+ /*type*/
26
+ a[1] === "table"
27
+ ), i(
28
+ e,
29
+ "gallery",
30
+ /*type*/
31
+ a[1] === "gallery"
32
+ ), i(
33
+ e,
34
+ "selected",
35
+ /*selected*/
36
+ a[2]
37
+ );
38
+ },
39
+ m(t, l) {
40
+ r(t, e, l), u(e, n);
41
+ },
42
+ p(t, [l]) {
43
+ l & /*value*/
44
+ 1 && m(
45
+ n,
46
+ /*value*/
47
+ t[0]
48
+ ), l & /*type*/
49
+ 2 && i(
50
+ e,
51
+ "table",
52
+ /*type*/
53
+ t[1] === "table"
54
+ ), l & /*type*/
55
+ 2 && i(
56
+ e,
57
+ "gallery",
58
+ /*type*/
59
+ t[1] === "gallery"
60
+ ), l & /*selected*/
61
+ 4 && i(
62
+ e,
63
+ "selected",
64
+ /*selected*/
65
+ t[2]
66
+ );
67
+ },
68
+ i: c,
69
+ o: c,
70
+ d(t) {
71
+ t && g(e);
72
+ }
73
+ };
74
+ }
75
+ function h(a, e, n) {
76
+ let { value: t } = e, { type: l } = e, { selected: _ = !1 } = e;
77
+ return a.$$set = (s) => {
78
+ "value" in s && n(0, t = s.value), "type" in s && n(1, l = s.type), "selected" in s && n(2, _ = s.selected);
79
+ }, [t, l, _];
80
+ }
81
+ class E extends f {
82
+ constructor(e) {
83
+ super(), v(this, e, h, w, y, { value: 0, type: 1, selected: 2 });
84
+ }
85
+ }
86
+ export {
87
+ E as default
88
+ };
src/backend/gradio_calendar/templates/example/style.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .gallery.svelte-1gecy8w{padding:var(--size-1) var(--size-2)}
src/demo/__init__.py ADDED
File without changes
src/demo/app.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from gradio_calendar import Calendar
3
+ import datetime
4
+
5
+ def is_weekday(date: datetime.datetime):
6
+ return date.weekday() < 5
7
+
8
+ demo = gr.Interface(is_weekday,
9
+ [Calendar(type="datetime", label="Select a date", info="Click anywhere to bring up the calendar.")],
10
+ gr.Label(label="Is it a weekday?"),
11
+ examples=["2023-01-01", "2023-12-11"],
12
+ cache_examples=True,
13
+ title="Is it a weekday?")
14
+
15
+
16
+ demo.launch()
src/frontend/Example.svelte ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ export let value: string;
3
+ export let type: "gallery" | "table";
4
+ export let selected = false;
5
+ </script>
6
+
7
+ <div
8
+ class:table={type === "table"}
9
+ class:gallery={type === "gallery"}
10
+ class:selected
11
+ >
12
+ {value}
13
+ </div>
14
+
15
+ <style>
16
+ .gallery {
17
+ padding: var(--size-1) var(--size-2);
18
+ }
19
+ </style>
src/frontend/Index.svelte ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { BlockTitle } from "@gradio/atoms";
3
+ import { Block } from "@gradio/atoms";
4
+
5
+ import type { Gradio } from "@gradio/utils";
6
+
7
+ export let value: string | null = null;
8
+ export let value_is_output = false;
9
+ export let label: string;
10
+ export let visible = true;
11
+ export let elem_classes;
12
+ export let elem_id;
13
+ export let scale;
14
+ export let info;
15
+ export let min_width;
16
+ export let show_label = true;
17
+ export let container = true;
18
+ export let interactive = true;
19
+ export let gradio: Gradio<{
20
+ change: never;
21
+ input: never;
22
+ submit: never;
23
+ }>;
24
+
25
+ $: if (value === null) value = new Date().toISOString().split('T')[0];
26
+
27
+ let el: HTMLInputElement
28
+
29
+ function handle_change(): void {
30
+ gradio.dispatch("change");
31
+ if (!value_is_output) {
32
+ gradio.dispatch("submit");
33
+ gradio.dispatch("input");
34
+ }
35
+ }
36
+
37
+ $: value, handle_change();
38
+
39
+
40
+ </script>
41
+
42
+ <!-- svelte-ignore a11y-autofocus -->
43
+
44
+ <Block
45
+ {visible}
46
+ {elem_id}
47
+ {elem_classes}
48
+ {scale}
49
+ {min_width}
50
+ allow_overflow={false}
51
+ padding={true}
52
+ >
53
+ <label class:container>
54
+ <BlockTitle {show_label} {info}>{label}</BlockTitle>
55
+ <input type="date" bind:this={el} bind:value={value} on:mousedown={el.showPicker} on:change={handle_change} disabled={!interactive}/>
56
+ </label>
57
+ </Block>
58
+
59
+ <style>
60
+ label {
61
+ display: block;
62
+ width: 100%;
63
+ }
64
+
65
+ input {
66
+ display: block;
67
+ position: relative;
68
+ outline: none !important;
69
+ box-shadow: var(--input-shadow);
70
+ background: var(--input-background-fill);
71
+ padding: var(--input-padding);
72
+ width: 100%;
73
+ color: var(--body-text-color);
74
+ font-weight: var(--input-text-weight);
75
+ font-size: var(--input-text-size);
76
+ line-height: var(--line-sm);
77
+ border: none;
78
+ }
79
+ input[type="date"] {
80
+ cursor: pointer;
81
+ }
82
+ input[type="date"]::-webkit-calendar-picker-indicator {
83
+ display: none;
84
+ }
85
+
86
+ label:not(.container),
87
+ label:not(.container) > input {
88
+ height: 100%;
89
+ }
90
+ .container > input{
91
+ border: var(--input-border-width) solid var(--input-border-color);
92
+ border-radius: var(--input-radius);
93
+ }
94
+ input:disabled {
95
+ -webkit-text-fill-color: var(--body-text-color);
96
+ -webkit-opacity: 1;
97
+ opacity: 1;
98
+ }
99
+
100
+ input:focus {
101
+ box-shadow: var(--input-shadow-focus);
102
+ border-color: var(--input-border-color-focus);
103
+ }
104
+
105
+ input::placeholder {
106
+ color: var(--input-placeholder-color);
107
+ }
108
+
109
+ </style>
src/frontend/package-lock.json ADDED
@@ -0,0 +1,926 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "gradio_calendar",
3
+ "version": "0.2.4",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "gradio_calendar",
9
+ "version": "0.2.4",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@gradio/atoms": "0.3.1",
13
+ "@gradio/statustracker": "0.4.1",
14
+ "@gradio/utils": "0.2.0",
15
+ "@zerodevx/svelte-json-view": "^1.0.7"
16
+ }
17
+ },
18
+ "node_modules/@ampproject/remapping": {
19
+ "version": "2.2.1",
20
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
21
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
22
+ "peer": true,
23
+ "dependencies": {
24
+ "@jridgewell/gen-mapping": "^0.3.0",
25
+ "@jridgewell/trace-mapping": "^0.3.9"
26
+ },
27
+ "engines": {
28
+ "node": ">=6.0.0"
29
+ }
30
+ },
31
+ "node_modules/@esbuild/android-arm": {
32
+ "version": "0.19.9",
33
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz",
34
+ "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==",
35
+ "cpu": [
36
+ "arm"
37
+ ],
38
+ "optional": true,
39
+ "os": [
40
+ "android"
41
+ ],
42
+ "engines": {
43
+ "node": ">=12"
44
+ }
45
+ },
46
+ "node_modules/@esbuild/android-arm64": {
47
+ "version": "0.19.9",
48
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz",
49
+ "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==",
50
+ "cpu": [
51
+ "arm64"
52
+ ],
53
+ "optional": true,
54
+ "os": [
55
+ "android"
56
+ ],
57
+ "engines": {
58
+ "node": ">=12"
59
+ }
60
+ },
61
+ "node_modules/@esbuild/android-x64": {
62
+ "version": "0.19.9",
63
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz",
64
+ "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==",
65
+ "cpu": [
66
+ "x64"
67
+ ],
68
+ "optional": true,
69
+ "os": [
70
+ "android"
71
+ ],
72
+ "engines": {
73
+ "node": ">=12"
74
+ }
75
+ },
76
+ "node_modules/@esbuild/darwin-arm64": {
77
+ "version": "0.19.9",
78
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz",
79
+ "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==",
80
+ "cpu": [
81
+ "arm64"
82
+ ],
83
+ "optional": true,
84
+ "os": [
85
+ "darwin"
86
+ ],
87
+ "engines": {
88
+ "node": ">=12"
89
+ }
90
+ },
91
+ "node_modules/@esbuild/darwin-x64": {
92
+ "version": "0.19.9",
93
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz",
94
+ "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==",
95
+ "cpu": [
96
+ "x64"
97
+ ],
98
+ "optional": true,
99
+ "os": [
100
+ "darwin"
101
+ ],
102
+ "engines": {
103
+ "node": ">=12"
104
+ }
105
+ },
106
+ "node_modules/@esbuild/freebsd-arm64": {
107
+ "version": "0.19.9",
108
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz",
109
+ "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==",
110
+ "cpu": [
111
+ "arm64"
112
+ ],
113
+ "optional": true,
114
+ "os": [
115
+ "freebsd"
116
+ ],
117
+ "engines": {
118
+ "node": ">=12"
119
+ }
120
+ },
121
+ "node_modules/@esbuild/freebsd-x64": {
122
+ "version": "0.19.9",
123
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz",
124
+ "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==",
125
+ "cpu": [
126
+ "x64"
127
+ ],
128
+ "optional": true,
129
+ "os": [
130
+ "freebsd"
131
+ ],
132
+ "engines": {
133
+ "node": ">=12"
134
+ }
135
+ },
136
+ "node_modules/@esbuild/linux-arm": {
137
+ "version": "0.19.9",
138
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz",
139
+ "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==",
140
+ "cpu": [
141
+ "arm"
142
+ ],
143
+ "optional": true,
144
+ "os": [
145
+ "linux"
146
+ ],
147
+ "engines": {
148
+ "node": ">=12"
149
+ }
150
+ },
151
+ "node_modules/@esbuild/linux-arm64": {
152
+ "version": "0.19.9",
153
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz",
154
+ "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==",
155
+ "cpu": [
156
+ "arm64"
157
+ ],
158
+ "optional": true,
159
+ "os": [
160
+ "linux"
161
+ ],
162
+ "engines": {
163
+ "node": ">=12"
164
+ }
165
+ },
166
+ "node_modules/@esbuild/linux-ia32": {
167
+ "version": "0.19.9",
168
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz",
169
+ "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==",
170
+ "cpu": [
171
+ "ia32"
172
+ ],
173
+ "optional": true,
174
+ "os": [
175
+ "linux"
176
+ ],
177
+ "engines": {
178
+ "node": ">=12"
179
+ }
180
+ },
181
+ "node_modules/@esbuild/linux-loong64": {
182
+ "version": "0.19.9",
183
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz",
184
+ "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==",
185
+ "cpu": [
186
+ "loong64"
187
+ ],
188
+ "optional": true,
189
+ "os": [
190
+ "linux"
191
+ ],
192
+ "engines": {
193
+ "node": ">=12"
194
+ }
195
+ },
196
+ "node_modules/@esbuild/linux-mips64el": {
197
+ "version": "0.19.9",
198
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz",
199
+ "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==",
200
+ "cpu": [
201
+ "mips64el"
202
+ ],
203
+ "optional": true,
204
+ "os": [
205
+ "linux"
206
+ ],
207
+ "engines": {
208
+ "node": ">=12"
209
+ }
210
+ },
211
+ "node_modules/@esbuild/linux-ppc64": {
212
+ "version": "0.19.9",
213
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz",
214
+ "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==",
215
+ "cpu": [
216
+ "ppc64"
217
+ ],
218
+ "optional": true,
219
+ "os": [
220
+ "linux"
221
+ ],
222
+ "engines": {
223
+ "node": ">=12"
224
+ }
225
+ },
226
+ "node_modules/@esbuild/linux-riscv64": {
227
+ "version": "0.19.9",
228
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz",
229
+ "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==",
230
+ "cpu": [
231
+ "riscv64"
232
+ ],
233
+ "optional": true,
234
+ "os": [
235
+ "linux"
236
+ ],
237
+ "engines": {
238
+ "node": ">=12"
239
+ }
240
+ },
241
+ "node_modules/@esbuild/linux-s390x": {
242
+ "version": "0.19.9",
243
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz",
244
+ "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==",
245
+ "cpu": [
246
+ "s390x"
247
+ ],
248
+ "optional": true,
249
+ "os": [
250
+ "linux"
251
+ ],
252
+ "engines": {
253
+ "node": ">=12"
254
+ }
255
+ },
256
+ "node_modules/@esbuild/linux-x64": {
257
+ "version": "0.19.9",
258
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz",
259
+ "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==",
260
+ "cpu": [
261
+ "x64"
262
+ ],
263
+ "optional": true,
264
+ "os": [
265
+ "linux"
266
+ ],
267
+ "engines": {
268
+ "node": ">=12"
269
+ }
270
+ },
271
+ "node_modules/@esbuild/netbsd-x64": {
272
+ "version": "0.19.9",
273
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz",
274
+ "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==",
275
+ "cpu": [
276
+ "x64"
277
+ ],
278
+ "optional": true,
279
+ "os": [
280
+ "netbsd"
281
+ ],
282
+ "engines": {
283
+ "node": ">=12"
284
+ }
285
+ },
286
+ "node_modules/@esbuild/openbsd-x64": {
287
+ "version": "0.19.9",
288
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz",
289
+ "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==",
290
+ "cpu": [
291
+ "x64"
292
+ ],
293
+ "optional": true,
294
+ "os": [
295
+ "openbsd"
296
+ ],
297
+ "engines": {
298
+ "node": ">=12"
299
+ }
300
+ },
301
+ "node_modules/@esbuild/sunos-x64": {
302
+ "version": "0.19.9",
303
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz",
304
+ "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==",
305
+ "cpu": [
306
+ "x64"
307
+ ],
308
+ "optional": true,
309
+ "os": [
310
+ "sunos"
311
+ ],
312
+ "engines": {
313
+ "node": ">=12"
314
+ }
315
+ },
316
+ "node_modules/@esbuild/win32-arm64": {
317
+ "version": "0.19.9",
318
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz",
319
+ "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==",
320
+ "cpu": [
321
+ "arm64"
322
+ ],
323
+ "optional": true,
324
+ "os": [
325
+ "win32"
326
+ ],
327
+ "engines": {
328
+ "node": ">=12"
329
+ }
330
+ },
331
+ "node_modules/@esbuild/win32-ia32": {
332
+ "version": "0.19.9",
333
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz",
334
+ "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==",
335
+ "cpu": [
336
+ "ia32"
337
+ ],
338
+ "optional": true,
339
+ "os": [
340
+ "win32"
341
+ ],
342
+ "engines": {
343
+ "node": ">=12"
344
+ }
345
+ },
346
+ "node_modules/@esbuild/win32-x64": {
347
+ "version": "0.19.9",
348
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz",
349
+ "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==",
350
+ "cpu": [
351
+ "x64"
352
+ ],
353
+ "optional": true,
354
+ "os": [
355
+ "win32"
356
+ ],
357
+ "engines": {
358
+ "node": ">=12"
359
+ }
360
+ },
361
+ "node_modules/@formatjs/ecma402-abstract": {
362
+ "version": "1.11.4",
363
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
364
+ "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
365
+ "dependencies": {
366
+ "@formatjs/intl-localematcher": "0.2.25",
367
+ "tslib": "^2.1.0"
368
+ }
369
+ },
370
+ "node_modules/@formatjs/fast-memoize": {
371
+ "version": "1.2.1",
372
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
373
+ "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
374
+ "dependencies": {
375
+ "tslib": "^2.1.0"
376
+ }
377
+ },
378
+ "node_modules/@formatjs/icu-messageformat-parser": {
379
+ "version": "2.1.0",
380
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
381
+ "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
382
+ "dependencies": {
383
+ "@formatjs/ecma402-abstract": "1.11.4",
384
+ "@formatjs/icu-skeleton-parser": "1.3.6",
385
+ "tslib": "^2.1.0"
386
+ }
387
+ },
388
+ "node_modules/@formatjs/icu-skeleton-parser": {
389
+ "version": "1.3.6",
390
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
391
+ "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
392
+ "dependencies": {
393
+ "@formatjs/ecma402-abstract": "1.11.4",
394
+ "tslib": "^2.1.0"
395
+ }
396
+ },
397
+ "node_modules/@formatjs/intl-localematcher": {
398
+ "version": "0.2.25",
399
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
400
+ "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
401
+ "dependencies": {
402
+ "tslib": "^2.1.0"
403
+ }
404
+ },
405
+ "node_modules/@gradio/atoms": {
406
+ "version": "0.3.1",
407
+ "resolved": "https://registry.npmjs.org/@gradio/atoms/-/atoms-0.3.1.tgz",
408
+ "integrity": "sha512-P2u1Qud/EmwfGMD9HZdSkw4L3RznGUE3owBx4lRY7JP/1J3sDqy/wN8pZFex+kPKripX29+IiH6+4TRqSs2zFw==",
409
+ "dependencies": {
410
+ "@gradio/icons": "^0.3.1",
411
+ "@gradio/utils": "^0.2.0"
412
+ }
413
+ },
414
+ "node_modules/@gradio/column": {
415
+ "version": "0.1.0",
416
+ "resolved": "https://registry.npmjs.org/@gradio/column/-/column-0.1.0.tgz",
417
+ "integrity": "sha512-P24nqqVnMXBaDA1f/zSN5HZRho4PxP8Dq+7VltPHlmxIEiZYik2AJ4J0LeuIha34FDO0guu/16evdrpvGIUAfw=="
418
+ },
419
+ "node_modules/@gradio/icons": {
420
+ "version": "0.3.1",
421
+ "resolved": "https://registry.npmjs.org/@gradio/icons/-/icons-0.3.1.tgz",
422
+ "integrity": "sha512-ZwgXODKa7irD+spE0RCae8fyixgwKOtds6wHL300n9pIRYzL9QkvS1cQJbz0C6NupFCYRSGTQrV5hoLo7yQCew=="
423
+ },
424
+ "node_modules/@gradio/statustracker": {
425
+ "version": "0.4.1",
426
+ "resolved": "https://registry.npmjs.org/@gradio/statustracker/-/statustracker-0.4.1.tgz",
427
+ "integrity": "sha512-6YV5UDzau/nNid5D25YLZyPGm/tFd9b0a+x0OCHY+aE3cez7PD4v6hWGuQXPNwa/69viRm8YyoQ2Vex7/3updA==",
428
+ "dependencies": {
429
+ "@gradio/atoms": "^0.3.1",
430
+ "@gradio/column": "^0.1.0",
431
+ "@gradio/icons": "^0.3.1",
432
+ "@gradio/utils": "^0.2.0"
433
+ }
434
+ },
435
+ "node_modules/@gradio/theme": {
436
+ "version": "0.2.0",
437
+ "resolved": "https://registry.npmjs.org/@gradio/theme/-/theme-0.2.0.tgz",
438
+ "integrity": "sha512-33c68Nk7oRXLn08OxPfjcPm7S4tXGOUV1I1bVgzdM2YV5o1QBOS1GEnXPZPu/CEYPePLMB6bsDwffrLEyLGWVQ=="
439
+ },
440
+ "node_modules/@gradio/utils": {
441
+ "version": "0.2.0",
442
+ "resolved": "https://registry.npmjs.org/@gradio/utils/-/utils-0.2.0.tgz",
443
+ "integrity": "sha512-YkwzXufi6IxQrlMW+1sFo8Yn6F9NLL69ZoBsbo7QEhms0v5L7pmOTw+dfd7M3dwbRP2lgjrb52i1kAIN3n6aqQ==",
444
+ "dependencies": {
445
+ "@gradio/theme": "^0.2.0",
446
+ "svelte-i18n": "^3.6.0"
447
+ }
448
+ },
449
+ "node_modules/@jridgewell/gen-mapping": {
450
+ "version": "0.3.3",
451
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
452
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
453
+ "peer": true,
454
+ "dependencies": {
455
+ "@jridgewell/set-array": "^1.0.1",
456
+ "@jridgewell/sourcemap-codec": "^1.4.10",
457
+ "@jridgewell/trace-mapping": "^0.3.9"
458
+ },
459
+ "engines": {
460
+ "node": ">=6.0.0"
461
+ }
462
+ },
463
+ "node_modules/@jridgewell/resolve-uri": {
464
+ "version": "3.1.1",
465
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
466
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
467
+ "peer": true,
468
+ "engines": {
469
+ "node": ">=6.0.0"
470
+ }
471
+ },
472
+ "node_modules/@jridgewell/set-array": {
473
+ "version": "1.1.2",
474
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
475
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
476
+ "peer": true,
477
+ "engines": {
478
+ "node": ">=6.0.0"
479
+ }
480
+ },
481
+ "node_modules/@jridgewell/sourcemap-codec": {
482
+ "version": "1.4.15",
483
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
484
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
485
+ "peer": true
486
+ },
487
+ "node_modules/@jridgewell/trace-mapping": {
488
+ "version": "0.3.20",
489
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
490
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
491
+ "peer": true,
492
+ "dependencies": {
493
+ "@jridgewell/resolve-uri": "^3.1.0",
494
+ "@jridgewell/sourcemap-codec": "^1.4.14"
495
+ }
496
+ },
497
+ "node_modules/@types/estree": {
498
+ "version": "1.0.5",
499
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
500
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
501
+ "peer": true
502
+ },
503
+ "node_modules/@zerodevx/svelte-json-view": {
504
+ "version": "1.0.7",
505
+ "resolved": "https://registry.npmjs.org/@zerodevx/svelte-json-view/-/svelte-json-view-1.0.7.tgz",
506
+ "integrity": "sha512-yW0MV+9BCKOwzt3h86y3xDqYdI5st+Rxk+L5pa0Utq7nlPD+VvxyhL7R1gJoLxQvWwjyAvY/fyUCFTdwDyI14w==",
507
+ "peerDependencies": {
508
+ "svelte": "^3.57.0 || ^4.0.0"
509
+ }
510
+ },
511
+ "node_modules/acorn": {
512
+ "version": "8.11.2",
513
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
514
+ "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
515
+ "peer": true,
516
+ "bin": {
517
+ "acorn": "bin/acorn"
518
+ },
519
+ "engines": {
520
+ "node": ">=0.4.0"
521
+ }
522
+ },
523
+ "node_modules/aria-query": {
524
+ "version": "5.3.0",
525
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
526
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
527
+ "peer": true,
528
+ "dependencies": {
529
+ "dequal": "^2.0.3"
530
+ }
531
+ },
532
+ "node_modules/axobject-query": {
533
+ "version": "3.2.1",
534
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
535
+ "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
536
+ "peer": true,
537
+ "dependencies": {
538
+ "dequal": "^2.0.3"
539
+ }
540
+ },
541
+ "node_modules/cli-color": {
542
+ "version": "2.0.3",
543
+ "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
544
+ "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==",
545
+ "dependencies": {
546
+ "d": "^1.0.1",
547
+ "es5-ext": "^0.10.61",
548
+ "es6-iterator": "^2.0.3",
549
+ "memoizee": "^0.4.15",
550
+ "timers-ext": "^0.1.7"
551
+ },
552
+ "engines": {
553
+ "node": ">=0.10"
554
+ }
555
+ },
556
+ "node_modules/code-red": {
557
+ "version": "1.0.4",
558
+ "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
559
+ "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
560
+ "peer": true,
561
+ "dependencies": {
562
+ "@jridgewell/sourcemap-codec": "^1.4.15",
563
+ "@types/estree": "^1.0.1",
564
+ "acorn": "^8.10.0",
565
+ "estree-walker": "^3.0.3",
566
+ "periscopic": "^3.1.0"
567
+ }
568
+ },
569
+ "node_modules/css-tree": {
570
+ "version": "2.3.1",
571
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
572
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
573
+ "peer": true,
574
+ "dependencies": {
575
+ "mdn-data": "2.0.30",
576
+ "source-map-js": "^1.0.1"
577
+ },
578
+ "engines": {
579
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
580
+ }
581
+ },
582
+ "node_modules/d": {
583
+ "version": "1.0.1",
584
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
585
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
586
+ "dependencies": {
587
+ "es5-ext": "^0.10.50",
588
+ "type": "^1.0.1"
589
+ }
590
+ },
591
+ "node_modules/deepmerge": {
592
+ "version": "4.3.1",
593
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
594
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
595
+ "engines": {
596
+ "node": ">=0.10.0"
597
+ }
598
+ },
599
+ "node_modules/dequal": {
600
+ "version": "2.0.3",
601
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
602
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
603
+ "peer": true,
604
+ "engines": {
605
+ "node": ">=6"
606
+ }
607
+ },
608
+ "node_modules/es5-ext": {
609
+ "version": "0.10.62",
610
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
611
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
612
+ "hasInstallScript": true,
613
+ "dependencies": {
614
+ "es6-iterator": "^2.0.3",
615
+ "es6-symbol": "^3.1.3",
616
+ "next-tick": "^1.1.0"
617
+ },
618
+ "engines": {
619
+ "node": ">=0.10"
620
+ }
621
+ },
622
+ "node_modules/es6-iterator": {
623
+ "version": "2.0.3",
624
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
625
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
626
+ "dependencies": {
627
+ "d": "1",
628
+ "es5-ext": "^0.10.35",
629
+ "es6-symbol": "^3.1.1"
630
+ }
631
+ },
632
+ "node_modules/es6-symbol": {
633
+ "version": "3.1.3",
634
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
635
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
636
+ "dependencies": {
637
+ "d": "^1.0.1",
638
+ "ext": "^1.1.2"
639
+ }
640
+ },
641
+ "node_modules/es6-weak-map": {
642
+ "version": "2.0.3",
643
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
644
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
645
+ "dependencies": {
646
+ "d": "1",
647
+ "es5-ext": "^0.10.46",
648
+ "es6-iterator": "^2.0.3",
649
+ "es6-symbol": "^3.1.1"
650
+ }
651
+ },
652
+ "node_modules/esbuild": {
653
+ "version": "0.19.9",
654
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz",
655
+ "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==",
656
+ "hasInstallScript": true,
657
+ "bin": {
658
+ "esbuild": "bin/esbuild"
659
+ },
660
+ "engines": {
661
+ "node": ">=12"
662
+ },
663
+ "optionalDependencies": {
664
+ "@esbuild/android-arm": "0.19.9",
665
+ "@esbuild/android-arm64": "0.19.9",
666
+ "@esbuild/android-x64": "0.19.9",
667
+ "@esbuild/darwin-arm64": "0.19.9",
668
+ "@esbuild/darwin-x64": "0.19.9",
669
+ "@esbuild/freebsd-arm64": "0.19.9",
670
+ "@esbuild/freebsd-x64": "0.19.9",
671
+ "@esbuild/linux-arm": "0.19.9",
672
+ "@esbuild/linux-arm64": "0.19.9",
673
+ "@esbuild/linux-ia32": "0.19.9",
674
+ "@esbuild/linux-loong64": "0.19.9",
675
+ "@esbuild/linux-mips64el": "0.19.9",
676
+ "@esbuild/linux-ppc64": "0.19.9",
677
+ "@esbuild/linux-riscv64": "0.19.9",
678
+ "@esbuild/linux-s390x": "0.19.9",
679
+ "@esbuild/linux-x64": "0.19.9",
680
+ "@esbuild/netbsd-x64": "0.19.9",
681
+ "@esbuild/openbsd-x64": "0.19.9",
682
+ "@esbuild/sunos-x64": "0.19.9",
683
+ "@esbuild/win32-arm64": "0.19.9",
684
+ "@esbuild/win32-ia32": "0.19.9",
685
+ "@esbuild/win32-x64": "0.19.9"
686
+ }
687
+ },
688
+ "node_modules/estree-walker": {
689
+ "version": "3.0.3",
690
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
691
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
692
+ "peer": true,
693
+ "dependencies": {
694
+ "@types/estree": "^1.0.0"
695
+ }
696
+ },
697
+ "node_modules/event-emitter": {
698
+ "version": "0.3.5",
699
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
700
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
701
+ "dependencies": {
702
+ "d": "1",
703
+ "es5-ext": "~0.10.14"
704
+ }
705
+ },
706
+ "node_modules/ext": {
707
+ "version": "1.7.0",
708
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
709
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
710
+ "dependencies": {
711
+ "type": "^2.7.2"
712
+ }
713
+ },
714
+ "node_modules/ext/node_modules/type": {
715
+ "version": "2.7.2",
716
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
717
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
718
+ },
719
+ "node_modules/globalyzer": {
720
+ "version": "0.1.0",
721
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
722
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
723
+ },
724
+ "node_modules/globrex": {
725
+ "version": "0.1.2",
726
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
727
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
728
+ },
729
+ "node_modules/intl-messageformat": {
730
+ "version": "9.13.0",
731
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
732
+ "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
733
+ "dependencies": {
734
+ "@formatjs/ecma402-abstract": "1.11.4",
735
+ "@formatjs/fast-memoize": "1.2.1",
736
+ "@formatjs/icu-messageformat-parser": "2.1.0",
737
+ "tslib": "^2.1.0"
738
+ }
739
+ },
740
+ "node_modules/is-promise": {
741
+ "version": "2.2.2",
742
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
743
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
744
+ },
745
+ "node_modules/is-reference": {
746
+ "version": "3.0.2",
747
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
748
+ "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
749
+ "peer": true,
750
+ "dependencies": {
751
+ "@types/estree": "*"
752
+ }
753
+ },
754
+ "node_modules/locate-character": {
755
+ "version": "3.0.0",
756
+ "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
757
+ "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
758
+ "peer": true
759
+ },
760
+ "node_modules/lru-queue": {
761
+ "version": "0.1.0",
762
+ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
763
+ "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
764
+ "dependencies": {
765
+ "es5-ext": "~0.10.2"
766
+ }
767
+ },
768
+ "node_modules/magic-string": {
769
+ "version": "0.30.5",
770
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
771
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
772
+ "peer": true,
773
+ "dependencies": {
774
+ "@jridgewell/sourcemap-codec": "^1.4.15"
775
+ },
776
+ "engines": {
777
+ "node": ">=12"
778
+ }
779
+ },
780
+ "node_modules/mdn-data": {
781
+ "version": "2.0.30",
782
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
783
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
784
+ "peer": true
785
+ },
786
+ "node_modules/memoizee": {
787
+ "version": "0.4.15",
788
+ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
789
+ "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
790
+ "dependencies": {
791
+ "d": "^1.0.1",
792
+ "es5-ext": "^0.10.53",
793
+ "es6-weak-map": "^2.0.3",
794
+ "event-emitter": "^0.3.5",
795
+ "is-promise": "^2.2.2",
796
+ "lru-queue": "^0.1.0",
797
+ "next-tick": "^1.1.0",
798
+ "timers-ext": "^0.1.7"
799
+ }
800
+ },
801
+ "node_modules/mri": {
802
+ "version": "1.2.0",
803
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
804
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
805
+ "engines": {
806
+ "node": ">=4"
807
+ }
808
+ },
809
+ "node_modules/next-tick": {
810
+ "version": "1.1.0",
811
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
812
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
813
+ },
814
+ "node_modules/periscopic": {
815
+ "version": "3.1.0",
816
+ "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
817
+ "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
818
+ "peer": true,
819
+ "dependencies": {
820
+ "@types/estree": "^1.0.0",
821
+ "estree-walker": "^3.0.0",
822
+ "is-reference": "^3.0.0"
823
+ }
824
+ },
825
+ "node_modules/sade": {
826
+ "version": "1.8.1",
827
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
828
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
829
+ "dependencies": {
830
+ "mri": "^1.1.0"
831
+ },
832
+ "engines": {
833
+ "node": ">=6"
834
+ }
835
+ },
836
+ "node_modules/source-map-js": {
837
+ "version": "1.0.2",
838
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
839
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
840
+ "peer": true,
841
+ "engines": {
842
+ "node": ">=0.10.0"
843
+ }
844
+ },
845
+ "node_modules/svelte": {
846
+ "version": "4.2.8",
847
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz",
848
+ "integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==",
849
+ "peer": true,
850
+ "dependencies": {
851
+ "@ampproject/remapping": "^2.2.1",
852
+ "@jridgewell/sourcemap-codec": "^1.4.15",
853
+ "@jridgewell/trace-mapping": "^0.3.18",
854
+ "acorn": "^8.9.0",
855
+ "aria-query": "^5.3.0",
856
+ "axobject-query": "^3.2.1",
857
+ "code-red": "^1.0.3",
858
+ "css-tree": "^2.3.1",
859
+ "estree-walker": "^3.0.3",
860
+ "is-reference": "^3.0.1",
861
+ "locate-character": "^3.0.0",
862
+ "magic-string": "^0.30.4",
863
+ "periscopic": "^3.1.0"
864
+ },
865
+ "engines": {
866
+ "node": ">=16"
867
+ }
868
+ },
869
+ "node_modules/svelte-i18n": {
870
+ "version": "3.7.4",
871
+ "resolved": "https://registry.npmjs.org/svelte-i18n/-/svelte-i18n-3.7.4.tgz",
872
+ "integrity": "sha512-yGRCNo+eBT4cPuU7IVsYTYjxB7I2V8qgUZPlHnNctJj5IgbJgV78flsRzpjZ/8iUYZrS49oCt7uxlU3AZv/N5Q==",
873
+ "dependencies": {
874
+ "cli-color": "^2.0.3",
875
+ "deepmerge": "^4.2.2",
876
+ "esbuild": "^0.19.2",
877
+ "estree-walker": "^2",
878
+ "intl-messageformat": "^9.13.0",
879
+ "sade": "^1.8.1",
880
+ "tiny-glob": "^0.2.9"
881
+ },
882
+ "bin": {
883
+ "svelte-i18n": "dist/cli.js"
884
+ },
885
+ "engines": {
886
+ "node": ">= 16"
887
+ },
888
+ "peerDependencies": {
889
+ "svelte": "^3 || ^4"
890
+ }
891
+ },
892
+ "node_modules/svelte-i18n/node_modules/estree-walker": {
893
+ "version": "2.0.2",
894
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
895
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
896
+ },
897
+ "node_modules/timers-ext": {
898
+ "version": "0.1.7",
899
+ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
900
+ "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
901
+ "dependencies": {
902
+ "es5-ext": "~0.10.46",
903
+ "next-tick": "1"
904
+ }
905
+ },
906
+ "node_modules/tiny-glob": {
907
+ "version": "0.2.9",
908
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
909
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
910
+ "dependencies": {
911
+ "globalyzer": "0.1.0",
912
+ "globrex": "^0.1.2"
913
+ }
914
+ },
915
+ "node_modules/tslib": {
916
+ "version": "2.6.2",
917
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
918
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
919
+ },
920
+ "node_modules/type": {
921
+ "version": "1.2.0",
922
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
923
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
924
+ }
925
+ }
926
+ }
src/frontend/package.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "gradio_calendar",
3
+ "version": "0.2.4",
4
+ "description": "Gradio UI packages",
5
+ "type": "module",
6
+ "author": "",
7
+ "license": "ISC",
8
+ "private": false,
9
+ "main_changeset": true,
10
+ "exports": {
11
+ ".": "./Index.svelte",
12
+ "./example": "./Example.svelte",
13
+ "./package.json": "./package.json"
14
+ },
15
+ "dependencies": {
16
+ "@gradio/atoms": "0.3.1",
17
+ "@gradio/statustracker": "0.4.1",
18
+ "@gradio/utils": "0.2.0",
19
+ "@zerodevx/svelte-json-view": "^1.0.7"
20
+ }
21
+ }
src/gradio_cached_examples/12/log.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Is it a weekday?,flag,username,timestamp
2
+ "{""label"":""False"",""confidences"":null}",,,2023-12-11 19:00:02.523750
3
+ "{""label"":""True"",""confidences"":null}",,,2023-12-11 19:00:02.524500
src/gradio_cached_examples/13/log.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Is it a weekday?,flag,username,timestamp
2
+ "{""label"":""False"",""confidences"":null}",,,2023-12-11 19:01:04.164691
3
+ "{""label"":""True"",""confidences"":null}",,,2023-12-11 19:01:04.165301
src/pyproject.toml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ requires = [
3
+ "hatchling",
4
+ "hatch-requirements-txt",
5
+ "hatch-fancy-pypi-readme>=22.5.0",
6
+ ]
7
+ build-backend = "hatchling.build"
8
+
9
+ [project]
10
+ name = "gradio_calendar"
11
+ version = "0.0.1"
12
+ description = "Gradio component for selecting dates with a calendar 📆"
13
+ readme = "README.md"
14
+ license = "MIT"
15
+ requires-python = ">=3.8"
16
+ authors = [{ name = "YOUR NAME", email = "YOUREMAIL@domain.com" }]
17
+ keywords = ["gradio-custom-component", "gradio-template-Fallback", "time", "calendar", "forms"]
18
+ # Add dependencies here
19
+ dependencies = ["gradio>=4.0,<5.0"]
20
+ classifiers = [
21
+ 'Development Status :: 3 - Alpha',
22
+ 'License :: OSI Approved :: Apache Software License',
23
+ 'Operating System :: OS Independent',
24
+ 'Programming Language :: Python :: 3',
25
+ 'Programming Language :: Python :: 3 :: Only',
26
+ 'Programming Language :: Python :: 3.8',
27
+ 'Programming Language :: Python :: 3.9',
28
+ 'Programming Language :: Python :: 3.10',
29
+ 'Programming Language :: Python :: 3.11',
30
+ 'Topic :: Scientific/Engineering',
31
+ 'Topic :: Scientific/Engineering :: Artificial Intelligence',
32
+ 'Topic :: Scientific/Engineering :: Visualization',
33
+ ]
34
+
35
+ [project.optional-dependencies]
36
+ dev = ["build", "twine"]
37
+
38
+ [tool.hatch.build]
39
+ artifacts = ["/backend/gradio_calendar/templates", "*.pyi", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates"]
40
+
41
+ [tool.hatch.build.targets.wheel]
42
+ packages = ["/backend/gradio_calendar"]