plotly-cloud 0.1.0rc5__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/PKG-INFO +6 -10
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/README.md +3 -7
- plotly_cloud-0.2.0/plotly_cloud/__init__.py +3 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_api_types.py +22 -1
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_cloud_env.py +2 -2
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_commands.py +104 -7
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_definitions.py +5 -3
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_deploy.py +44 -3
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_devtool_hooks.py +11 -1
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_devtool_publish_rpc.py +20 -2
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_oauth.py +3 -3
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/cloud-env.toml +1 -1
- plotly_cloud-0.2.0/plotly_cloud/cloud_devtools.js +15 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/exceptions.py +2 -2
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/pyproject.toml +5 -3
- plotly_cloud-0.1.0rc5/plotly_cloud/__init__.py +0 -3
- plotly_cloud-0.1.0rc5/plotly_cloud/cloud_devtools.js +0 -15
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/.gitignore +0 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/LICENSE +0 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_changes.py +0 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/_parser.py +0 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/cli.py +0 -0
- {plotly_cloud-0.1.0rc5 → plotly_cloud-0.2.0}/plotly_cloud/cloud_devtools.css +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plotly-cloud
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Python extension for Plotly Cloud with CLI and Dash dev tools integration
|
|
5
|
+
Project-URL: Repository, https://github.com/plotly/plotly-cloud-extension
|
|
5
6
|
License-File: LICENSE
|
|
6
7
|
Requires-Python: >=3.9
|
|
7
8
|
Requires-Dist: dash>=2.0.0
|
|
8
9
|
Requires-Dist: httpx<1.0.0,>=0.24.0
|
|
9
10
|
Requires-Dist: nest-asyncio>=1.6.0
|
|
10
|
-
Requires-Dist: rich-argparse>=1.7.1
|
|
11
11
|
Requires-Dist: rich>=10.0.0
|
|
12
12
|
Requires-Dist: tomli-w>=1.2.0
|
|
13
13
|
Requires-Dist: tomli>=2.2.1
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
|
|
16
|
-
# Plotly Cloud
|
|
16
|
+
# Plotly Cloud Extension
|
|
17
17
|
|
|
18
|
-
A command-line interface
|
|
18
|
+
A Python extension for [Plotly Cloud](https://cloud.plotly.com) that provides both a command-line interface and Dash dev tools integration for publishing and managing Dash applications.
|
|
19
19
|
|
|
20
20
|
## Features
|
|
21
21
|
|
|
@@ -67,10 +67,6 @@ plotly publish --poll-status=false
|
|
|
67
67
|
plotly logout
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
## Environment Configuration
|
|
71
|
-
|
|
72
|
-
The CLI uses a `cloud-env.toml` file for environment-specific configuration (OAuth client IDs, API URLs). This file is gitignored and should be created during development or at packaging time.
|
|
73
|
-
|
|
74
70
|
## Usage
|
|
75
71
|
|
|
76
72
|
### Authentication Commands
|
|
@@ -275,7 +271,7 @@ If you prefer not to use Just:
|
|
|
275
271
|
### Project Structure
|
|
276
272
|
|
|
277
273
|
```
|
|
278
|
-
plotly-cloud-
|
|
274
|
+
plotly-cloud-extension/
|
|
279
275
|
├── plotly_cloud/
|
|
280
276
|
│ ├── __init__.py # Package initialization
|
|
281
277
|
│ ├── cli.py # Main CLI entry point
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Plotly Cloud
|
|
1
|
+
# Plotly Cloud Extension
|
|
2
2
|
|
|
3
|
-
A command-line interface
|
|
3
|
+
A Python extension for [Plotly Cloud](https://cloud.plotly.com) that provides both a command-line interface and Dash dev tools integration for publishing and managing Dash applications.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -52,10 +52,6 @@ plotly publish --poll-status=false
|
|
|
52
52
|
plotly logout
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
## Environment Configuration
|
|
56
|
-
|
|
57
|
-
The CLI uses a `cloud-env.toml` file for environment-specific configuration (OAuth client IDs, API URLs). This file is gitignored and should be created during development or at packaging time.
|
|
58
|
-
|
|
59
55
|
## Usage
|
|
60
56
|
|
|
61
57
|
### Authentication Commands
|
|
@@ -260,7 +256,7 @@ If you prefer not to use Just:
|
|
|
260
256
|
### Project Structure
|
|
261
257
|
|
|
262
258
|
```
|
|
263
|
-
plotly-cloud-
|
|
259
|
+
plotly-cloud-extension/
|
|
264
260
|
├── plotly_cloud/
|
|
265
261
|
│ ├── __init__.py # Package initialization
|
|
266
262
|
│ ├── cli.py # Main CLI entry point
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""API type definitions for Plotly Cloud."""
|
|
1
|
+
"""Autogenerated API type definitions for Plotly Cloud."""
|
|
2
2
|
|
|
3
3
|
from typing import Any, Dict, List
|
|
4
4
|
|
|
@@ -11,16 +11,31 @@ class AppRequest(TypedDict):
|
|
|
11
11
|
name: NotRequired[str]
|
|
12
12
|
appUrl: NotRequired[str]
|
|
13
13
|
description: NotRequired[str]
|
|
14
|
+
teamId: NotRequired[str]
|
|
14
15
|
isViewPrivate: NotRequired[str]
|
|
16
|
+
watermarkEnabled: NotRequired[str]
|
|
15
17
|
invitations: NotRequired[List[str]]
|
|
16
18
|
environmentVariables: NotRequired[List[Dict[str, Any]]]
|
|
17
19
|
|
|
20
|
+
|
|
18
21
|
EnvironmentVariables = Dict[str, Any]
|
|
19
22
|
|
|
23
|
+
|
|
20
24
|
class ErrorResponse(TypedDict):
|
|
21
25
|
error: NotRequired[str]
|
|
22
26
|
error_description: NotRequired[str]
|
|
23
27
|
|
|
28
|
+
|
|
29
|
+
class Team(TypedDict):
|
|
30
|
+
id: str
|
|
31
|
+
schematic_company_id: NotRequired[str]
|
|
32
|
+
organization_id: NotRequired[str]
|
|
33
|
+
name: str
|
|
34
|
+
description: NotRequired[str]
|
|
35
|
+
created_at: NotRequired[str]
|
|
36
|
+
updated_at: NotRequired[str]
|
|
37
|
+
|
|
38
|
+
|
|
24
39
|
class App(TypedDict):
|
|
25
40
|
id: NotRequired[str]
|
|
26
41
|
author_id: NotRequired[str]
|
|
@@ -28,6 +43,7 @@ class App(TypedDict):
|
|
|
28
43
|
description: NotRequired[str]
|
|
29
44
|
app_url: NotRequired[str]
|
|
30
45
|
is_view_private: NotRequired[bool]
|
|
46
|
+
watermark_enabled: NotRequired[bool]
|
|
31
47
|
created_with_desktop: NotRequired[bool]
|
|
32
48
|
desktop_app_version: NotRequired[str]
|
|
33
49
|
environment_variables: NotRequired[EnvironmentVariables]
|
|
@@ -35,3 +51,8 @@ class App(TypedDict):
|
|
|
35
51
|
status: NotRequired[str]
|
|
36
52
|
created_at: NotRequired[str]
|
|
37
53
|
last_published: NotRequired[str]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class UserTeamMembership(TypedDict):
|
|
57
|
+
team: Team
|
|
58
|
+
role: str
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Cloud environment configuration management for Plotly Cloud
|
|
1
|
+
"""Cloud environment configuration management for Plotly Cloud Extension."""
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
from pathlib import Path
|
|
@@ -12,7 +12,7 @@ console = Console()
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class CloudConfig:
|
|
15
|
-
"""Manages cloud configuration for Plotly Cloud
|
|
15
|
+
"""Manages cloud configuration for Plotly Cloud Extension."""
|
|
16
16
|
|
|
17
17
|
def __init__(self):
|
|
18
18
|
self._config_cache = None
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Command implementations for Plotly Cloud
|
|
1
|
+
"""Command implementations for Plotly Cloud Extension."""
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import importlib
|
|
@@ -8,7 +8,7 @@ import sys
|
|
|
8
8
|
import tempfile
|
|
9
9
|
import time
|
|
10
10
|
import webbrowser
|
|
11
|
-
from typing import Dict, List, TypedDict
|
|
11
|
+
from typing import Dict, List, TypedDict
|
|
12
12
|
|
|
13
13
|
from rich.console import Console
|
|
14
14
|
from rich.live import Live
|
|
@@ -20,7 +20,7 @@ from rich.text import Text
|
|
|
20
20
|
|
|
21
21
|
from plotly_cloud._changes import collect_module_files, until_change
|
|
22
22
|
from plotly_cloud._cloud_env import cloud_config
|
|
23
|
-
from plotly_cloud._definitions import REVISION_STATUS_MAP, CommandArgument
|
|
23
|
+
from plotly_cloud._definitions import REVISION_STATUS_MAP, CommandArgument
|
|
24
24
|
from plotly_cloud._deploy import (
|
|
25
25
|
DeploymentClient,
|
|
26
26
|
create_deployment_zip,
|
|
@@ -442,6 +442,14 @@ class PublishCommand(BaseCommand):
|
|
|
442
442
|
"name": "--entrypoint-module",
|
|
443
443
|
"help": "Entrypoint module for the application in 'module:variable' format (e.g., 'app:app')",
|
|
444
444
|
},
|
|
445
|
+
{
|
|
446
|
+
"name": "--team-id",
|
|
447
|
+
"help": "Team ID to assign the app to (uses user's default team if not specified)",
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"name": "--team",
|
|
451
|
+
"help": "Team name or slug to assign the app to (alternative to --team-id)",
|
|
452
|
+
},
|
|
445
453
|
{
|
|
446
454
|
"name": "--output",
|
|
447
455
|
"help": "Output path for zip file of the published app (default: temporary file)",
|
|
@@ -535,9 +543,7 @@ class PublishCommand(BaseCommand):
|
|
|
535
543
|
status_text.append("Timeout", style="bold yellow")
|
|
536
544
|
return Panel(status_text, title="🚀 Publish Status", border_style="yellow", padding=(0, 1))
|
|
537
545
|
|
|
538
|
-
status_info =
|
|
539
|
-
RevisionStatusInfo, REVISION_STATUS_MAP.get(status, {"label": status, "emoji": "⏳", "color": "white"})
|
|
540
|
-
)
|
|
546
|
+
status_info = REVISION_STATUS_MAP.get(status, {"label": status, "emoji": "⏳", "color": "white"})
|
|
541
547
|
|
|
542
548
|
status_text = Text()
|
|
543
549
|
status_text.append(f"{status_info['emoji']} ", style="bold")
|
|
@@ -625,6 +631,38 @@ class PublishCommand(BaseCommand):
|
|
|
625
631
|
|
|
626
632
|
progress.remove_task(validate_task)
|
|
627
633
|
|
|
634
|
+
# Resolve team_id if --team argument is provided
|
|
635
|
+
team_id = getattr(args, "team_id", None)
|
|
636
|
+
team_name_or_slug = getattr(args, "team", None)
|
|
637
|
+
|
|
638
|
+
if team_name_or_slug and not team_id:
|
|
639
|
+
# Need to resolve team name/slug to team_id
|
|
640
|
+
team_resolve_task = progress.add_task(f"Resolving team '{team_name_or_slug}'...", total=None)
|
|
641
|
+
try:
|
|
642
|
+
teams = await deploy_client.list_teams()
|
|
643
|
+
matching_team = None
|
|
644
|
+
for team in teams:
|
|
645
|
+
if (
|
|
646
|
+
team.get("name", "").lower() == team_name_or_slug.lower()
|
|
647
|
+
or team.get("team_slug", "").lower() == team_name_or_slug.lower()
|
|
648
|
+
or team.get("id", "").lower() == team_name_or_slug.lower()
|
|
649
|
+
):
|
|
650
|
+
matching_team = team
|
|
651
|
+
break
|
|
652
|
+
|
|
653
|
+
if matching_team:
|
|
654
|
+
team_id = matching_team.get("id")
|
|
655
|
+
progress.update(
|
|
656
|
+
team_resolve_task, description=f"✓ Resolved team to: {matching_team.get('name')}"
|
|
657
|
+
)
|
|
658
|
+
else:
|
|
659
|
+
progress.stop()
|
|
660
|
+
raise ApplicationError(
|
|
661
|
+
f"Team '{team_name_or_slug}' not found. Use 'plotly teams' to list available teams."
|
|
662
|
+
)
|
|
663
|
+
finally:
|
|
664
|
+
progress.remove_task(team_resolve_task)
|
|
665
|
+
|
|
628
666
|
try:
|
|
629
667
|
# Create deployment zip
|
|
630
668
|
package_task = progress.add_task("Creating deployment package...", total=None)
|
|
@@ -647,7 +685,7 @@ class PublishCommand(BaseCommand):
|
|
|
647
685
|
deploy_task = progress.add_task(f"Creating new app: {app_name}...", total=None)
|
|
648
686
|
|
|
649
687
|
entrypoint_module = getattr(args, "entrypoint_module", None)
|
|
650
|
-
app_data = await deploy_client.create_app(app_name, zip_path, entrypoint_module)
|
|
688
|
+
app_data = await deploy_client.create_app(app_name, zip_path, entrypoint_module, team_id)
|
|
651
689
|
|
|
652
690
|
progress.update(
|
|
653
691
|
deploy_task,
|
|
@@ -835,6 +873,65 @@ class StatusCommand(BaseCommand):
|
|
|
835
873
|
console.print()
|
|
836
874
|
|
|
837
875
|
|
|
876
|
+
class TeamsCommand(BaseCommand):
|
|
877
|
+
"""List all teams for the authenticated user."""
|
|
878
|
+
|
|
879
|
+
name = "teams"
|
|
880
|
+
group = "user"
|
|
881
|
+
short_description = "👥 List all teams you have access to"
|
|
882
|
+
description = "Display all teams that you are a member of."
|
|
883
|
+
arguments: List[CommandArgument] = []
|
|
884
|
+
|
|
885
|
+
@classmethod
|
|
886
|
+
async def execute(cls, args: ParsedArguments) -> None:
|
|
887
|
+
"""Execute teams command."""
|
|
888
|
+
# Get OAuth client for authentication
|
|
889
|
+
client_id = cloud_config.get_oauth_client_id()
|
|
890
|
+
oauth_client = OAuthClient(client_id)
|
|
891
|
+
|
|
892
|
+
# Check if authenticated
|
|
893
|
+
if not await oauth_client.is_authenticated():
|
|
894
|
+
raise ApplicationError("Not authenticated. Please run 'plotly login' first.")
|
|
895
|
+
|
|
896
|
+
# Get access token
|
|
897
|
+
auth_token = await oauth_client.get_access_token()
|
|
898
|
+
if not auth_token:
|
|
899
|
+
raise ApplicationError("Unable to retrieve access token. Please try logging in again.")
|
|
900
|
+
|
|
901
|
+
# List teams
|
|
902
|
+
async with DeploymentClient(oauth_client) as deploy_client:
|
|
903
|
+
teams = await deploy_client.list_teams()
|
|
904
|
+
|
|
905
|
+
if not teams:
|
|
906
|
+
console.print(Panel("You are not a member of any teams.", title="👥 Teams", border_style="yellow"))
|
|
907
|
+
return
|
|
908
|
+
|
|
909
|
+
# Create a table for the teams
|
|
910
|
+
table = Table(show_header=True, header_style="bold blue")
|
|
911
|
+
table.add_column("Name", style="cyan", no_wrap=True)
|
|
912
|
+
table.add_column("Slug", style="green")
|
|
913
|
+
table.add_column("Team ID", style="white", overflow="fold")
|
|
914
|
+
table.add_column("Created", style="magenta")
|
|
915
|
+
|
|
916
|
+
# Add rows for each team
|
|
917
|
+
for team in teams:
|
|
918
|
+
table.add_row(
|
|
919
|
+
team.get("name", "—"),
|
|
920
|
+
team.get("team_slug", "—"),
|
|
921
|
+
team.get("id", "—"),
|
|
922
|
+
team.get("created_at", "—")[:10] if team.get("created_at") else "—", # Show only date
|
|
923
|
+
)
|
|
924
|
+
|
|
925
|
+
console.print()
|
|
926
|
+
console.print(Panel.fit(table, title="👥 Your Teams", border_style="bold blue"))
|
|
927
|
+
console.print()
|
|
928
|
+
console.print(
|
|
929
|
+
"💡 Use [cyan]--team <name>[/cyan] or [cyan]--team-id <id>[/cyan] "
|
|
930
|
+
"with 'plotly publish' to publish to a specific team"
|
|
931
|
+
)
|
|
932
|
+
console.print()
|
|
933
|
+
|
|
934
|
+
|
|
838
935
|
class WhoamiCommand(BaseCommand):
|
|
839
936
|
"""Show current user information."""
|
|
840
937
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"""Type definitions for Plotly Cloud
|
|
1
|
+
"""Type definitions for Plotly Cloud Extension."""
|
|
2
2
|
|
|
3
|
-
from typing import Literal, Union
|
|
3
|
+
from typing import Callable, Literal, Union
|
|
4
4
|
|
|
5
5
|
from typing_extensions import NotRequired, TypedDict
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ class CommandArgument(TypedDict):
|
|
|
20
20
|
name: str
|
|
21
21
|
help: str
|
|
22
22
|
action: NotRequired[str]
|
|
23
|
-
type: NotRequired[type]
|
|
23
|
+
type: NotRequired[Union[type, Callable[[str], object]]]
|
|
24
24
|
default: NotRequired[Union[str, int, float, bool]]
|
|
25
25
|
choices: NotRequired[list]
|
|
26
26
|
required: NotRequired[bool]
|
|
@@ -35,6 +35,8 @@ class AppDeploymentConfig(TypedDict):
|
|
|
35
35
|
description: NotRequired[str]
|
|
36
36
|
app_id: NotRequired[str]
|
|
37
37
|
app_url: NotRequired[str]
|
|
38
|
+
team_id: NotRequired[str]
|
|
39
|
+
team_name: NotRequired[str]
|
|
38
40
|
|
|
39
41
|
|
|
40
42
|
# Revision status enum values
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Deployment utilities for Plotly Cloud
|
|
1
|
+
"""Deployment utilities for Plotly Cloud Extension."""
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
@@ -11,7 +11,7 @@ import httpx
|
|
|
11
11
|
import tomli
|
|
12
12
|
import tomli_w
|
|
13
13
|
|
|
14
|
-
from plotly_cloud._api_types import App, AppRequest
|
|
14
|
+
from plotly_cloud._api_types import App, AppRequest, Team
|
|
15
15
|
from plotly_cloud._cloud_env import cloud_config
|
|
16
16
|
from plotly_cloud._definitions import AppDeploymentConfig
|
|
17
17
|
from plotly_cloud._oauth import OAuthClient
|
|
@@ -327,13 +327,16 @@ class DeploymentClient:
|
|
|
327
327
|
pass
|
|
328
328
|
return False
|
|
329
329
|
|
|
330
|
-
async def create_app(
|
|
330
|
+
async def create_app(
|
|
331
|
+
self, name: str, zip_path: str = "", entrypoint_module: Optional[str] = None, team_id: Optional[str] = None
|
|
332
|
+
) -> App:
|
|
331
333
|
"""Create a new application and upload deployment in same request.
|
|
332
334
|
|
|
333
335
|
Args:
|
|
334
336
|
name: Application name
|
|
335
337
|
zip_path: Path to deployment zip file to upload
|
|
336
338
|
entrypoint_module: Entrypoint module for the application (e.g., "app:app")
|
|
339
|
+
team_id: Team ID to assign the app to (uses user's default team if not specified)
|
|
337
340
|
|
|
338
341
|
Returns:
|
|
339
342
|
App response from the API
|
|
@@ -354,6 +357,8 @@ class DeploymentClient:
|
|
|
354
357
|
app_request: AppRequest = {"name": name}
|
|
355
358
|
if entrypoint_module:
|
|
356
359
|
app_request["entrypointModule"] = entrypoint_module
|
|
360
|
+
if team_id:
|
|
361
|
+
app_request["teamId"] = team_id
|
|
357
362
|
|
|
358
363
|
# Upload deployment in same request as app creation
|
|
359
364
|
retry_count = 0
|
|
@@ -468,3 +473,39 @@ class DeploymentClient:
|
|
|
468
473
|
raise _handle_error_response(response, "get app status")
|
|
469
474
|
except httpx.RequestError as e:
|
|
470
475
|
raise NetworkError("Failed to get app status", str(e)) from e
|
|
476
|
+
|
|
477
|
+
async def list_teams(self) -> list[Team]:
|
|
478
|
+
"""List all teams for the authenticated user.
|
|
479
|
+
|
|
480
|
+
Returns:
|
|
481
|
+
List of Team objects
|
|
482
|
+
|
|
483
|
+
Raises:
|
|
484
|
+
DeploymentClientError: If client is not initialized
|
|
485
|
+
APIError: If API call fails
|
|
486
|
+
NetworkError: If network request fails
|
|
487
|
+
"""
|
|
488
|
+
if not self._client:
|
|
489
|
+
raise DeploymentClientError("Client not initialized. Use within async context manager.")
|
|
490
|
+
|
|
491
|
+
url = f"https://{self.api_base_url}/api/teams"
|
|
492
|
+
|
|
493
|
+
try:
|
|
494
|
+
retry_count = 0
|
|
495
|
+
response = None
|
|
496
|
+
while retry_count <= 1:
|
|
497
|
+
response = await self._client.get(url)
|
|
498
|
+
|
|
499
|
+
if response.status_code == 200:
|
|
500
|
+
teams: list[Team] = response.json()
|
|
501
|
+
return teams
|
|
502
|
+
|
|
503
|
+
token_refreshed = await self._refresh_token_if_needed(response)
|
|
504
|
+
if token_refreshed:
|
|
505
|
+
retry_count += 1
|
|
506
|
+
else:
|
|
507
|
+
break
|
|
508
|
+
|
|
509
|
+
raise _handle_error_response(response, "list teams")
|
|
510
|
+
except httpx.RequestError as e:
|
|
511
|
+
raise NetworkError("Failed to list teams", str(e)) from e
|
|
@@ -10,7 +10,17 @@ dash_version = _parse_version(dash.__version__)
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def _run_sync(coro):
|
|
13
|
-
loop
|
|
13
|
+
"""Run an async coroutine synchronously, handling event loop correctly for Python 3.10+."""
|
|
14
|
+
try:
|
|
15
|
+
# Check if there's already a running loop
|
|
16
|
+
loop = asyncio.get_running_loop()
|
|
17
|
+
except RuntimeError:
|
|
18
|
+
# No running loop, try to get or create one
|
|
19
|
+
loop = asyncio.get_event_loop()
|
|
20
|
+
if loop is None or loop.is_closed():
|
|
21
|
+
loop = asyncio.new_event_loop()
|
|
22
|
+
asyncio.set_event_loop(loop)
|
|
23
|
+
|
|
14
24
|
return loop.run_until_complete(coro)
|
|
15
25
|
|
|
16
26
|
|
|
@@ -33,7 +33,7 @@ class PublishOperations:
|
|
|
33
33
|
class PublishOperation(TypedDict):
|
|
34
34
|
"""RPC operation structure for dev tools publishing."""
|
|
35
35
|
|
|
36
|
-
operation: Literal["initialize", "authenticate", "auth_poll", "publish", "status"]
|
|
36
|
+
operation: Literal["initialize", "authenticate", "auth_poll", "publish", "status", "fetch_teams"]
|
|
37
37
|
data: Any
|
|
38
38
|
|
|
39
39
|
|
|
@@ -189,6 +189,8 @@ class PlotlyCloudPublishRPC:
|
|
|
189
189
|
status = "new"
|
|
190
190
|
app_name = config.get("name", os.path.basename(project_path))
|
|
191
191
|
app_url = ""
|
|
192
|
+
team_id = config.get("team_id")
|
|
193
|
+
team_name = config.get("team_name")
|
|
192
194
|
|
|
193
195
|
if app_id is not None and is_authenticated:
|
|
194
196
|
async with DeploymentClient(self.oauth_client) as deploy_client:
|
|
@@ -208,6 +210,8 @@ class PlotlyCloudPublishRPC:
|
|
|
208
210
|
"app_path": project_path,
|
|
209
211
|
"app_id": app_id,
|
|
210
212
|
"app_url": app_url,
|
|
213
|
+
"team_id": team_id,
|
|
214
|
+
"team_name": team_name,
|
|
211
215
|
"size_error": size_error if exceeds_limit else None,
|
|
212
216
|
}
|
|
213
217
|
}
|
|
@@ -243,10 +247,18 @@ class PlotlyCloudPublishRPC:
|
|
|
243
247
|
app_url = format_app_url(status_data.get("app_url", ""))
|
|
244
248
|
return {"result": {"status": status_data.get("status", ""), "app_url": app_url}}
|
|
245
249
|
|
|
250
|
+
async def fetch_teams(self, data: Any) -> RPCResponse:
|
|
251
|
+
"""Fetch all teams for the authenticated user."""
|
|
252
|
+
async with DeploymentClient(self.oauth_client) as deploy_client:
|
|
253
|
+
teams = await deploy_client.list_teams()
|
|
254
|
+
return {"result": teams}
|
|
255
|
+
|
|
246
256
|
async def publish(self, data: Any) -> RPCResponse:
|
|
247
257
|
app_path = data.get("app_path")
|
|
248
258
|
app_id = data.get("app_id")
|
|
249
259
|
app_name = data.get("app_name")
|
|
260
|
+
team_id = data.get("team_id")
|
|
261
|
+
team_name = data.get("team_name")
|
|
250
262
|
|
|
251
263
|
config_path = get_config_path(app_path)
|
|
252
264
|
|
|
@@ -272,7 +284,7 @@ class PlotlyCloudPublishRPC:
|
|
|
272
284
|
return {"result": {"app_id": app_id, "app_url": format_app_url(app_data.get("app_url"))}}
|
|
273
285
|
else:
|
|
274
286
|
# create new app
|
|
275
|
-
app_data = await deploy_client.create_app(app_name, zip_path, entrypoint_module)
|
|
287
|
+
app_data = await deploy_client.create_app(app_name, zip_path, entrypoint_module, team_id)
|
|
276
288
|
|
|
277
289
|
config: AppDeploymentConfig = {
|
|
278
290
|
"name": app_name,
|
|
@@ -280,6 +292,12 @@ class PlotlyCloudPublishRPC:
|
|
|
280
292
|
"app_url": app_data.get("app_url", ""),
|
|
281
293
|
}
|
|
282
294
|
|
|
295
|
+
# Save team info if provided
|
|
296
|
+
if team_id:
|
|
297
|
+
config["team_id"] = team_id
|
|
298
|
+
if team_name:
|
|
299
|
+
config["team_name"] = team_name
|
|
300
|
+
|
|
283
301
|
save_deployment_config(config, config_path)
|
|
284
302
|
|
|
285
303
|
return {"result": {"app_id": app_data.get("id"), "app_url": format_app_url(app_data.get("app_url"))}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""OAuth client implementation for Plotly Cloud
|
|
1
|
+
"""OAuth client implementation for Plotly Cloud Extension using WorkOS CLI Auth."""
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import json
|
|
@@ -214,11 +214,11 @@ class OAuthClient:
|
|
|
214
214
|
raise
|
|
215
215
|
|
|
216
216
|
# Step 4: Save credentials
|
|
217
|
-
await self._save_credentials(
|
|
217
|
+
await self._save_credentials(tokens)
|
|
218
218
|
|
|
219
219
|
return tokens
|
|
220
220
|
|
|
221
|
-
async def _save_credentials(self, credentials: Dict[str, Any]):
|
|
221
|
+
async def _save_credentials(self, credentials: Union[AuthTokenResponse, Dict[str, Any]]):
|
|
222
222
|
"""Save credentials to file."""
|
|
223
223
|
try:
|
|
224
224
|
# Ensure parent directory exists
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const React = window.React; const ReactDOM = window.ReactDOM;
|
|
2
|
+
"use strict";var plotly_cloud_publish_component=(()=>{var ka=Object.create;var K=Object.defineProperty;var ya=Object.getOwnPropertyDescriptor;var Fa=Object.getOwnPropertyNames;var Ba=Object.getPrototypeOf,Da=Object.prototype.hasOwnProperty;var wo=(o,a)=>()=>(a||o((a={exports:{}}).exports,a),a.exports),Ha=(o,a)=>{for(var r in a)K(o,r,{get:a[r],enumerable:!0})},Zo=(o,a,r,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of Fa(a))!Da.call(o,i)&&i!==r&&K(o,i,{get:()=>a[i],enumerable:!(e=ya(a,i))||e.enumerable});return o};var s=(o,a,r)=>(r=o!=null?ka(Ba(o)):{},Zo(a||!o||!o.__esModule?K(r,"default",{value:o,enumerable:!0}):r,o)),Ma=o=>Zo(K({},"__esModule",{value:!0}),o);var c=wo((Ya,_o)=>{_o.exports=React});var Jo=wo(Q=>{"use strict";var Ra=c(),Na=Symbol.for("react.element"),xa=Symbol.for("react.fragment"),va=Object.prototype.hasOwnProperty,Ua=Ra.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ea={key:!0,ref:!0,__self:!0,__source:!0};function Xo(o,a,r){var e,i={},m=null,k=null;r!==void 0&&(m=""+r),a.key!==void 0&&(m=""+a.key),a.ref!==void 0&&(k=a.ref);for(e in a)va.call(a,e)&&!Ea.hasOwnProperty(e)&&(i[e]=a[e]);if(o&&o.defaultProps)for(e in a=o.defaultProps,a)i[e]===void 0&&(i[e]=a[e]);return{$$typeof:Na,type:o,key:m,ref:k,props:i,_owner:Ua.current}}Q.Fragment=xa;Q.jsx=Xo;Q.jsxs=Xo});var L=wo((or,Ko)=>{"use strict";Ko.exports=Jo()});var Ka={};Ha(Ka,{PlotlyCloudPublishComponent:()=>Ao});var t=s(c());var E=s(L()),Ga=({title:o,onClose:a,children:r})=>(0,E.jsx)("div",{className:"plotly-cloud-publish-modal-overlay",children:(0,E.jsxs)("div",{className:"plotly-cloud-publish-modal-content",children:[(0,E.jsxs)("div",{className:"plotly-cloud-publish-modal-header",children:[(0,E.jsx)("h3",{children:o},"modal-title"),(0,E.jsx)("button",{className:"plotly-cloud-publish-modal-close",onClick:a,children:"\xD7"},"modal-close")]}),(0,E.jsx)("div",{className:"plotly-cloud-publish-modal-body",children:r},"modal-body")]})}),Qo=Ga;var jo=s(c()),F=s(L()),Oa=o=>{let[a,r]=(0,jo.useState)(o.waiting);return(0,F.jsx)("div",{className:"plotly-cloud-publish-signin",children:a?(0,F.jsxs)("div",{children:[o.verificationUrlComplete?(0,F.jsxs)("div",{children:["A browser window should open for sign-in."," ",(0,F.jsx)("a",{href:o.verificationUrlComplete,target:"_blank",rel:"noopener noreferrer",children:"Click here"})," ","if it doesn't open automatically."]}):(0,F.jsx)("div",{children:"Preparing sign-in..."}),o.userCode?(0,F.jsxs)("div",{className:"plotly-cloud-confirm-code",children:["Confirm your device code"," ",(0,F.jsx)("span",{className:"plotly-cloud-user-code",children:o.userCode})," ","when prompted."]}):null]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)("span",{children:"Sign in to publish your app to Plotly Cloud."}),(0,F.jsx)("button",{className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",onClick:()=>{r(!0),o.onSignIn()},children:"Sign In"})]})})},Yo=Oa;var qa=o=>{let a=async e=>await(await fetch(`${o}_plotly_cloud_publish`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json"}})).json(),r=e=>i=>a({operation:e,data:i});return{initialize:r("initialize"),authenticate:r("authenticate"),auth_poll:r("auth_poll"),publish:r("publish"),status:r("status"),fetch_teams:r("fetch_teams"),wait_auth:r("wait_auth"),logout:r("logout")}},$o=qa;var oa=s(c()),N=s(L()),Wa=({initialAppName:o="",onCancel:a,onPublish:r,sizeError:e=""})=>{let[i,m]=(0,oa.useState)(o);return(0,N.jsxs)("div",{className:"plotly-cloud-name-input",children:[e&&(0,N.jsx)("div",{className:"plotly-cloud-size-error",children:e}),(0,N.jsx)("div",{className:"plotly-cloud-name-input-label",children:"App Name"}),(0,N.jsxs)("form",{onSubmit:y=>{y.preventDefault(),i.trim()&&!e&&r(i.trim())},children:[(0,N.jsx)("input",{type:"text",value:i,onChange:y=>m(y.target.value),placeholder:"My Dash App",className:"plotly-cloud-name-input-field",disabled:!!e}),(0,N.jsx)("div",{className:"plotly-cloud-button-bar",children:(0,N.jsx)("button",{type:"submit",disabled:!i.trim()||!!e,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",children:"Publish App"})})]})]})},aa=Wa;var W=s(c());var f=s(c(),1),ra=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M184,80V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H176A8,8,0,0,1,184,80Z",opacity:"0.2"}),f.createElement("path",{d:"M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M192,136v72a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64h72a8,8,0,0,1,0,16H48V208H176V136a8,8,0,0,1,16,0Zm32-96a8,8,0,0,0-8-8H152a8,8,0,0,0-5.66,13.66L172.69,72l-42.35,42.34a8,8,0,0,0,11.32,11.32L184,83.31l26.34,26.35A8,8,0,0,0,224,104Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M222,104a6,6,0,0,1-12,0V54.49l-69.75,69.75a6,6,0,0,1-8.48-8.48L201.51,46H152a6,6,0,0,1,0-12h64a6,6,0,0,1,6,6Zm-38,26a6,6,0,0,0-6,6v72a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V80a2,2,0,0,1,2-2h72a6,6,0,0,0,0-12H48A14,14,0,0,0,34,80V208a14,14,0,0,0,14,14H176a14,14,0,0,0,14-14V136A6,6,0,0,0,184,130Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M220,104a4,4,0,0,1-8,0V49.66l-73.16,73.17a4,4,0,0,1-5.66-5.66L206.34,44H152a4,4,0,0,1,0-8h64a4,4,0,0,1,4,4Zm-36,28a4,4,0,0,0-4,4v72a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4h72a4,4,0,0,0,0-8H48A12,12,0,0,0,36,80V208a12,12,0,0,0,12,12H176a12,12,0,0,0,12-12V136A4,4,0,0,0,184,132Z"}))]]);var u=s(c(),1),sa=new Map([["bold",u.createElement(u.Fragment,null,u.createElement("path",{d:"M236,128a108,108,0,0,1-216,0c0-42.52,24.73-81.34,63-98.9A12,12,0,1,1,93,50.91C63.24,64.57,44,94.83,44,128a84,84,0,0,0,168,0c0-33.17-19.24-63.43-49-77.09A12,12,0,1,1,173,29.1C211.27,46.66,236,85.48,236,128Z"}))],["duotone",u.createElement(u.Fragment,null,u.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),u.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["fill",u.createElement(u.Fragment,null,u.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,176A72,72,0,0,1,92,65.64a8,8,0,0,1,8,13.85,56,56,0,1,0,56,0,8,8,0,0,1,8-13.85A72,72,0,0,1,128,200Z"}))],["light",u.createElement(u.Fragment,null,u.createElement("path",{d:"M230,128a102,102,0,0,1-204,0c0-40.18,23.35-76.86,59.5-93.45a6,6,0,0,1,5,10.9C58.61,60.09,38,92.49,38,128a90,90,0,0,0,180,0c0-35.51-20.61-67.91-52.5-82.55a6,6,0,0,1,5-10.9C206.65,51.14,230,87.82,230,128Z"}))],["regular",u.createElement(u.Fragment,null,u.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["thin",u.createElement(u.Fragment,null,u.createElement("path",{d:"M228,128a100,100,0,0,1-200,0c0-39.4,22.9-75.37,58.33-91.63a4,4,0,1,1,3.34,7.27C57.07,58.6,36,91.71,36,128a92,92,0,0,0,184,0c0-36.29-21.07-69.4-53.67-84.36a4,4,0,1,1,3.34-7.27C205.1,52.63,228,88.6,228,128Z"}))]]);var d=s(c(),1),ea=new Map([["bold",d.createElement(d.Fragment,null,d.createElement("path",{d:"M160,36A92.09,92.09,0,0,0,79,84.36,68,68,0,1,0,72,220h88a92,92,0,0,0,0-184Zm0,160H72a44,44,0,0,1-1.82-88A91.86,91.86,0,0,0,68,128a12,12,0,0,0,24,0,68,68,0,1,1,68,68Zm40.49-92.49a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L144,143l39.51-39.52A12,12,0,0,1,200.49,103.51Z"}))],["duotone",d.createElement(d.Fragment,null,d.createElement("path",{d:"M240,128a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.74l0,.1A80,80,0,0,1,240,128Z",opacity:"0.2"}),d.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm37.66-93.66a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35A8,8,0,0,1,197.66,106.34Z"}))],["fill",d.createElement(d.Fragment,null,d.createElement("path",{d:"M247.93,124.52C246.11,77.54,207.07,40,160.06,40A88.1,88.1,0,0,0,81.29,88.67h0A87.48,87.48,0,0,0,72,127.73,8.18,8.18,0,0,1,64.57,136,8,8,0,0,1,56,128a103.66,103.66,0,0,1,5.34-32.92,4,4,0,0,0-4.75-5.18A64.09,64.09,0,0,0,8,152c0,35.19,29.75,64,65,64H160A88.09,88.09,0,0,0,247.93,124.52Zm-50.27-6.86-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35a8,8,0,0,1,11.32,11.32Z"}))],["light",d.createElement(d.Fragment,null,d.createElement("path",{d:"M160,42A86.11,86.11,0,0,0,82.43,90.88,62,62,0,1,0,72,214h88a86,86,0,0,0,0-172Zm0,160H72a50,50,0,0,1,0-100,50.67,50.67,0,0,1,5.91.35A85.61,85.61,0,0,0,74,128a6,6,0,0,0,12,0,74,74,0,1,1,74,74Zm36.24-94.24a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L144,151.51l43.76-43.75A6,6,0,0,1,196.24,107.76Z"}))],["regular",d.createElement(d.Fragment,null,d.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm37.66-93.66a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35A8,8,0,0,1,197.66,106.34Z"}))],["thin",d.createElement(d.Fragment,null,d.createElement("path",{d:"M160,44A84.11,84.11,0,0,0,83.59,93.12,60.71,60.71,0,0,0,72,92a60,60,0,0,0,0,120h88a84,84,0,0,0,0-168Zm0,160H72a52,52,0,1,1,8.55-103.3A83.66,83.66,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,1,1,76,76Zm34.83-94.83a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L144,154.34l45.17-45.17A4,4,0,0,1,194.83,109.17Z"}))]]);var g=s(c(),1),na=new Map([["bold",g.createElement(g.Fragment,null,g.createElement("path",{d:"M56.88,31.93A12,12,0,1,0,39.12,48.07L71.79,84A68,68,0,0,0,72,220h88a91.26,91.26,0,0,0,30.66-5.24l8.46,9.31a12,12,0,0,0,17.76-16.14ZM160,196H72a44,44,0,0,1-1.8-87.95A91.91,91.91,0,0,0,68,128a12,12,0,0,0,24,0,68.22,68.22,0,0,1,2.66-18.84l77.88,85.67A68.67,68.67,0,0,1,160,196Zm92-68a91.32,91.32,0,0,1-17.53,54,12,12,0,1,1-19.41-14.11,68,68,0,0,0-89.57-98.53,12,12,0,0,1-12.2-20.66A92,92,0,0,1,252,128Z"}))],["duotone",g.createElement(g.Fragment,null,g.createElement("path",{d:"M240,128a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.74l0,.1A80,80,0,0,1,240,128Z",opacity:"0.2"}),g.createElement("path",{d:"M53.92,34.62A8,8,0,1,0,42.08,45.38L81.32,88.55l-.06.12A65,65,0,0,0,72,88a64,64,0,0,0,0,128h88a87.34,87.34,0,0,0,31.8-5.93l10.28,11.31a8,8,0,1,0,11.84-10.76ZM160,200H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.3.12A88.4,88.4,0,0,0,72,128a8,8,0,0,0,16,0,72.25,72.25,0,0,1,5.06-26.54l87,95.7A71.66,71.66,0,0,1,160,200Zm88-72a87.89,87.89,0,0,1-22.35,58.61A8,8,0,0,1,213.71,176,72,72,0,0,0,117.37,70a8,8,0,0,1-9.48-12.89A88,88,0,0,1,248,128Z"}))],["fill",g.createElement(g.Fragment,null,g.createElement("path",{d:"M248,128.72A87.74,87.74,0,0,1,222.41,190a4,4,0,0,1-5.77-.16L103.78,65.67a4,4,0,0,1,.39-5.76A87.82,87.82,0,0,1,160.87,40C209.15,40.47,248.38,80.43,248,128.72ZM53.92,34.62A8,8,0,1,0,42.08,45.38L81.33,88.56l-.06.11A64,64,0,0,0,8,153c.53,35.12,29.84,63,65,63h87a87.65,87.65,0,0,0,31.78-5.95l10.3,11.33a8,8,0,0,0,11.33.52,8.32,8.32,0,0,0,.29-11.52Z"}))],["light",g.createElement(g.Fragment,null,g.createElement("path",{d:"M52.44,36A6,6,0,0,0,43.56,44l40.18,44.2c-.45.87-.9,1.75-1.32,2.64A62,62,0,1,0,72,214h88a85.23,85.23,0,0,0,32.35-6.3L203.56,220a6,6,0,0,0,8.88-8.08ZM160,202H72a50,50,0,1,1,5.9-99.64A86.25,86.25,0,0,0,74,128a6,6,0,0,0,12,0,73.92,73.92,0,0,1,6.44-30.2l91.22,100.34A73.65,73.65,0,0,1,160,202Zm86-74a85.85,85.85,0,0,1-21.85,57.27,6,6,0,0,1-4.47,2,6,6,0,0,1-4.47-10,74,74,0,0,0-99-108.92,6,6,0,1,1-7.11-9.67A86,86,0,0,1,246,128Z"}))],["regular",g.createElement(g.Fragment,null,g.createElement("path",{d:"M53.92,34.62A8,8,0,1,0,42.08,45.38L81.32,88.55l-.06.12A65,65,0,0,0,72,88a64,64,0,0,0,0,128h88a87.34,87.34,0,0,0,31.8-5.93l10.28,11.31a8,8,0,1,0,11.84-10.76ZM160,200H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.3.12A88.4,88.4,0,0,0,72,128a8,8,0,0,0,16,0,72.25,72.25,0,0,1,5.06-26.54l87,95.7A71.66,71.66,0,0,1,160,200Zm88-72a87.89,87.89,0,0,1-22.35,58.61A8,8,0,0,1,213.71,176,72,72,0,0,0,117.37,70a8,8,0,0,1-9.48-12.89A88,88,0,0,1,248,128Z"}))],["thin",g.createElement(g.Fragment,null,g.createElement("path",{d:"M51,37.31A4,4,0,0,0,45,42.69L86.16,87.93q-1.38,2.55-2.59,5.19A60,60,0,1,0,72,212h88a83.19,83.19,0,0,0,32.88-6.69L205,218.69a4,4,0,1,0,5.92-5.38ZM160,204H72a52,52,0,0,1,0-104,52.92,52.92,0,0,1,8.54.72A84.21,84.21,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,0,1,7.9-33.76L187.13,199A75.37,75.37,0,0,1,160,204Zm84-76a83.86,83.86,0,0,1-21.34,55.94,4,4,0,1,1-6-5.33A76,76,0,0,0,115,66.75a4,4,0,0,1-4.74-6.45A84,84,0,0,1,244,128Z"}))]]);var S=s(c(),1),ia=new Map([["bold",S.createElement(S.Fragment,null,S.createElement("path",{d:"M160,36A92.09,92.09,0,0,0,79,84.36,68,68,0,1,0,72,220h88a92,92,0,0,0,0-184Zm0,160H72a44,44,0,0,1-1.82-88A91.86,91.86,0,0,0,68,128a12,12,0,0,0,24,0,68,68,0,1,1,68,68Zm32.49-79.51L177,132l15.52,15.51a12,12,0,0,1-17,17L160,149l-15.51,15.52a12,12,0,1,1-17-17L143,132l-15.52-15.51a12,12,0,1,1,17-17L160,115l15.51-15.52a12,12,0,0,1,17,17Z"}))],["duotone",S.createElement(S.Fragment,null,S.createElement("path",{d:"M240,127.62a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.36l0,.1A80,80,0,0,1,240,127.62Z",opacity:"0.2"}),S.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm29.66-82.34L171.31,136l18.35,18.34a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",S.createElement(S.Fragment,null,S.createElement("path",{d:"M247.93,124.52C246.11,77.54,207.07,40,160.06,40A88.1,88.1,0,0,0,81.29,88.67h0A87.48,87.48,0,0,0,72,127.73,8.18,8.18,0,0,1,64.57,136,8,8,0,0,1,56,128a103.66,103.66,0,0,1,5.34-32.92,4,4,0,0,0-4.75-5.18A64.09,64.09,0,0,0,8,152c0,35.19,29.75,64,65,64H160A88.09,88.09,0,0,0,247.93,124.52Zm-58.27,29.82a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32L171.31,136Z"}))],["light",S.createElement(S.Fragment,null,S.createElement("path",{d:"M160,42A86.11,86.11,0,0,0,82.43,90.88,62,62,0,1,0,72,214h88a86,86,0,0,0,0-172Zm0,160H72a50,50,0,0,1,0-100,50.67,50.67,0,0,1,5.91.35A85.61,85.61,0,0,0,74,128a6,6,0,0,0,12,0,74,74,0,1,1,74,74Zm28.24-85.76L168.48,136l19.76,19.76a6,6,0,1,1-8.48,8.48L160,144.48l-19.76,19.76a6,6,0,0,1-8.48-8.48L151.52,136l-19.76-19.76a6,6,0,0,1,8.48-8.48L160,127.52l19.76-19.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",S.createElement(S.Fragment,null,S.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm29.66-82.34L171.31,136l18.35,18.34a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",S.createElement(S.Fragment,null,S.createElement("path",{d:"M160,44A84.11,84.11,0,0,0,83.59,93.12,60.71,60.71,0,0,0,72,92a60,60,0,0,0,0,120h88a84,84,0,0,0,0-168Zm0,160H72a52,52,0,1,1,8.55-103.3A83.66,83.66,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,1,1,76,76Zm26.83-89.17L165.66,136l21.17,21.17a4,4,0,0,1-5.66,5.66L160,141.66l-21.17,21.17a4,4,0,0,1-5.66-5.66L154.34,136l-21.17-21.17a4,4,0,0,1,5.66-5.66L160,130.34l21.17-21.17a4,4,0,1,1,5.66,5.66Z"}))]]);var h=s(c(),1),ta=new Map([["bold",h.createElement(h.Fragment,null,h.createElement("path",{d:"M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm92-27.21v-1.58l14-17.51a12,12,0,0,0,2.23-10.59A111.75,111.75,0,0,0,225,71.89,12,12,0,0,0,215.89,66L193.61,63.5l-1.11-1.11L190,40.1A12,12,0,0,0,184.11,31a111.67,111.67,0,0,0-27.23-11.27A12,12,0,0,0,146.3,22L128.79,36h-1.58L109.7,22a12,12,0,0,0-10.59-2.23A111.75,111.75,0,0,0,71.89,31.05,12,12,0,0,0,66,40.11L63.5,62.39,62.39,63.5,40.1,66A12,12,0,0,0,31,71.89,111.67,111.67,0,0,0,19.77,99.12,12,12,0,0,0,22,109.7l14,17.51v1.58L22,146.3a12,12,0,0,0-2.23,10.59,111.75,111.75,0,0,0,11.29,27.22A12,12,0,0,0,40.11,190l22.28,2.48,1.11,1.11L66,215.9A12,12,0,0,0,71.89,225a111.67,111.67,0,0,0,27.23,11.27A12,12,0,0,0,109.7,234l17.51-14h1.58l17.51,14a12,12,0,0,0,10.59,2.23A111.75,111.75,0,0,0,184.11,225a12,12,0,0,0,5.91-9.06l2.48-22.28,1.11-1.11L215.9,190a12,12,0,0,0,9.06-5.91,111.67,111.67,0,0,0,11.27-27.23A12,12,0,0,0,234,146.3Zm-24.12-4.89a70.1,70.1,0,0,1,0,8.2,12,12,0,0,0,2.61,8.22l12.84,16.05A86.47,86.47,0,0,1,207,166.86l-20.43,2.27a12,12,0,0,0-7.65,4,69,69,0,0,1-5.8,5.8,12,12,0,0,0-4,7.65L166.86,207a86.47,86.47,0,0,1-10.49,4.35l-16.05-12.85a12,12,0,0,0-7.5-2.62c-.24,0-.48,0-.72,0a70.1,70.1,0,0,1-8.2,0,12.06,12.06,0,0,0-8.22,2.6L99.63,211.33A86.47,86.47,0,0,1,89.14,207l-2.27-20.43a12,12,0,0,0-4-7.65,69,69,0,0,1-5.8-5.8,12,12,0,0,0-7.65-4L49,166.86a86.47,86.47,0,0,1-4.35-10.49l12.84-16.05a12,12,0,0,0,2.61-8.22,70.1,70.1,0,0,1,0-8.2,12,12,0,0,0-2.61-8.22L44.67,99.63A86.47,86.47,0,0,1,49,89.14l20.43-2.27a12,12,0,0,0,7.65-4,69,69,0,0,1,5.8-5.8,12,12,0,0,0,4-7.65L89.14,49a86.47,86.47,0,0,1,10.49-4.35l16.05,12.85a12.06,12.06,0,0,0,8.22,2.6,70.1,70.1,0,0,1,8.2,0,12,12,0,0,0,8.22-2.6l16.05-12.85A86.47,86.47,0,0,1,166.86,49l2.27,20.43a12,12,0,0,0,4,7.65,69,69,0,0,1,5.8,5.8,12,12,0,0,0,7.65,4L207,89.14a86.47,86.47,0,0,1,4.35,10.49l-12.84,16.05A12,12,0,0,0,195.88,123.9Z"}))],["duotone",h.createElement(h.Fragment,null,h.createElement("path",{d:"M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z",opacity:"0.2"}),h.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["fill",h.createElement(h.Fragment,null,h.createElement("path",{d:"M216,130.16q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"}))],["light",h.createElement(h.Fragment,null,h.createElement("path",{d:"M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162ZM214,130.84c.06-1.89.06-3.79,0-5.68L229.33,106a6,6,0,0,0,1.11-5.29A105.34,105.34,0,0,0,219.76,74.9a6,6,0,0,0-4.53-3l-24.45-2.71q-1.93-2.07-4-4l-2.72-24.46a6,6,0,0,0-3-4.53,105.65,105.65,0,0,0-25.77-10.66A6,6,0,0,0,150,26.68l-19.2,15.37c-1.89-.06-3.79-.06-5.68,0L106,26.67a6,6,0,0,0-5.29-1.11A105.34,105.34,0,0,0,74.9,36.24a6,6,0,0,0-3,4.53L69.23,65.22q-2.07,1.94-4,4L40.76,72a6,6,0,0,0-4.53,3,105.65,105.65,0,0,0-10.66,25.77A6,6,0,0,0,26.68,106l15.37,19.2c-.06,1.89-.06,3.79,0,5.68L26.67,150.05a6,6,0,0,0-1.11,5.29A105.34,105.34,0,0,0,36.24,181.1a6,6,0,0,0,4.53,3l24.45,2.71q1.94,2.07,4,4L72,215.24a6,6,0,0,0,3,4.53,105.65,105.65,0,0,0,25.77,10.66,6,6,0,0,0,5.29-1.11L125.16,214c1.89.06,3.79.06,5.68,0l19.21,15.38a6,6,0,0,0,3.75,1.31,6.2,6.2,0,0,0,1.54-.2,105.34,105.34,0,0,0,25.76-10.68,6,6,0,0,0,3-4.53l2.71-24.45q2.07-1.93,4-4l24.46-2.72a6,6,0,0,0,4.53-3,105.49,105.49,0,0,0,10.66-25.77,6,6,0,0,0-1.11-5.29Zm-3.1,41.63-23.64,2.63a6,6,0,0,0-3.82,2,75.14,75.14,0,0,1-6.31,6.31,6,6,0,0,0-2,3.82l-2.63,23.63A94.28,94.28,0,0,1,155.14,218l-18.57-14.86a6,6,0,0,0-3.75-1.31h-.36a78.07,78.07,0,0,1-8.92,0,6,6,0,0,0-4.11,1.3L100.87,218a94.13,94.13,0,0,1-17.34-7.17L80.9,187.21a6,6,0,0,0-2-3.82,75.14,75.14,0,0,1-6.31-6.31,6,6,0,0,0-3.82-2l-23.63-2.63A94.28,94.28,0,0,1,38,155.14l14.86-18.57a6,6,0,0,0,1.3-4.11,78.07,78.07,0,0,1,0-8.92,6,6,0,0,0-1.3-4.11L38,100.87a94.13,94.13,0,0,1,7.17-17.34L68.79,80.9a6,6,0,0,0,3.82-2,75.14,75.14,0,0,1,6.31-6.31,6,6,0,0,0,2-3.82l2.63-23.63A94.28,94.28,0,0,1,100.86,38l18.57,14.86a6,6,0,0,0,4.11,1.3,78.07,78.07,0,0,1,8.92,0,6,6,0,0,0,4.11-1.3L155.13,38a94.13,94.13,0,0,1,17.34,7.17l2.63,23.64a6,6,0,0,0,2,3.82,75.14,75.14,0,0,1,6.31,6.31,6,6,0,0,0,3.82,2l23.63,2.63A94.28,94.28,0,0,1,218,100.86l-14.86,18.57a6,6,0,0,0-1.3,4.11,78.07,78.07,0,0,1,0,8.92,6,6,0,0,0,1.3,4.11L218,155.13A94.13,94.13,0,0,1,210.85,172.47Z"}))],["regular",h.createElement(h.Fragment,null,h.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["thin",h.createElement(h.Fragment,null,h.createElement("path",{d:"M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm83.93-32.49q.13-3.51,0-7l15.83-19.79a4,4,0,0,0,.75-3.53A103.64,103.64,0,0,0,218,75.9a4,4,0,0,0-3-2l-25.19-2.8c-1.58-1.71-3.24-3.37-4.95-4.95L182.07,41a4,4,0,0,0-2-3A104,104,0,0,0,154.82,27.5a4,4,0,0,0-3.53.74L131.51,44.07q-3.51-.14-7,0L104.7,28.24a4,4,0,0,0-3.53-.75A103.64,103.64,0,0,0,75.9,38a4,4,0,0,0-2,3l-2.8,25.19c-1.71,1.58-3.37,3.24-4.95,4.95L41,73.93a4,4,0,0,0-3,2A104,104,0,0,0,27.5,101.18a4,4,0,0,0,.74,3.53l15.83,19.78q-.14,3.51,0,7L28.24,151.3a4,4,0,0,0-.75,3.53A103.64,103.64,0,0,0,38,180.1a4,4,0,0,0,3,2l25.19,2.8c1.58,1.71,3.24,3.37,4.95,4.95l2.8,25.2a4,4,0,0,0,2,3,104,104,0,0,0,25.28,10.46,4,4,0,0,0,3.53-.74l19.78-15.83q3.51.13,7,0l19.79,15.83a4,4,0,0,0,2.5.88,4,4,0,0,0,1-.13A103.64,103.64,0,0,0,180.1,218a4,4,0,0,0,2-3l2.8-25.19c1.71-1.58,3.37-3.24,4.95-4.95l25.2-2.8a4,4,0,0,0,3-2,104,104,0,0,0,10.46-25.28,4,4,0,0,0-.74-3.53Zm.17,42.83-24.67,2.74a4,4,0,0,0-2.55,1.32,76.2,76.2,0,0,1-6.48,6.48,4,4,0,0,0-1.32,2.55l-2.74,24.66a95.45,95.45,0,0,1-19.64,8.15l-19.38-15.51a4,4,0,0,0-2.5-.87h-.24a73.67,73.67,0,0,1-9.16,0,4,4,0,0,0-2.74.87l-19.37,15.5a95.33,95.33,0,0,1-19.65-8.13l-2.74-24.67a4,4,0,0,0-1.32-2.55,76.2,76.2,0,0,1-6.48-6.48,4,4,0,0,0-2.55-1.32l-24.66-2.74a95.45,95.45,0,0,1-8.15-19.64l15.51-19.38a4,4,0,0,0,.87-2.74,77.76,77.76,0,0,1,0-9.16,4,4,0,0,0-.87-2.74l-15.5-19.37A95.33,95.33,0,0,1,43.9,81.66l24.67-2.74a4,4,0,0,0,2.55-1.32,76.2,76.2,0,0,1,6.48-6.48,4,4,0,0,0,1.32-2.55l2.74-24.66a95.45,95.45,0,0,1,19.64-8.15l19.38,15.51a4,4,0,0,0,2.74.87,73.67,73.67,0,0,1,9.16,0,4,4,0,0,0,2.74-.87l19.37-15.5a95.33,95.33,0,0,1,19.65,8.13l2.74,24.67a4,4,0,0,0,1.32,2.55,76.2,76.2,0,0,1,6.48,6.48,4,4,0,0,0,2.55,1.32l24.66,2.74a95.45,95.45,0,0,1,8.15,19.64l-15.51,19.38a4,4,0,0,0-.87,2.74,77.76,77.76,0,0,1,0,9.16,4,4,0,0,0,.87,2.74l15.5,19.37A95.33,95.33,0,0,1,212.1,174.34Z"}))]]);var C=s(c(),1),ca=new Map([["bold",C.createElement(C.Fragment,null,C.createElement("path",{d:"M124,216a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V40A12,12,0,0,1,48,28h64a12,12,0,0,1,0,24H60V204h52A12,12,0,0,1,124,216Zm108.49-96.49-40-40a12,12,0,0,0-17,17L195,116H112a12,12,0,0,0,0,24h83l-19.52,19.51a12,12,0,0,0,17,17l40-40A12,12,0,0,0,232.49,119.51Z"}))],["duotone",C.createElement(C.Fragment,null,C.createElement("path",{d:"M224,56V200a16,16,0,0,1-16,16H48V40H208A16,16,0,0,1,224,56Z",opacity:"0.2"}),C.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["fill",C.createElement(C.Fragment,null,C.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40A8,8,0,0,0,176,88v32H112a8,8,0,0,0,0,16h64v32a8,8,0,0,0,13.66,5.66l40-40A8,8,0,0,0,229.66,122.34Z"}))],["light",C.createElement(C.Fragment,null,C.createElement("path",{d:"M118,216a6,6,0,0,1-6,6H48a6,6,0,0,1-6-6V40a6,6,0,0,1,6-6h64a6,6,0,0,1,0,12H54V210h58A6,6,0,0,1,118,216Zm110.24-92.24-40-40a6,6,0,0,0-8.48,8.48L209.51,122H112a6,6,0,0,0,0,12h97.51l-29.75,29.76a6,6,0,1,0,8.48,8.48l40-40A6,6,0,0,0,228.24,123.76Z"}))],["regular",C.createElement(C.Fragment,null,C.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["thin",C.createElement(C.Fragment,null,C.createElement("path",{d:"M116,216a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h64a4,4,0,0,1,0,8H52V212h60A4,4,0,0,1,116,216Zm110.83-90.83-40-40a4,4,0,0,0-5.66,5.66L214.34,124H112a4,4,0,0,0,0,8H214.34l-33.17,33.17a4,4,0,0,0,5.66,5.66l40-40A4,4,0,0,0,226.83,125.17Z"}))]]);var w=s(c(),1),la=new Map([["bold",w.createElement(w.Fragment,null,w.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",w.createElement(w.Fragment,null,w.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),w.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",w.createElement(w.Fragment,null,w.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",w.createElement(w.Fragment,null,w.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",w.createElement(w.Fragment,null,w.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",w.createElement(w.Fragment,null,w.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]]);var q=s(c(),1);var ma=s(c(),1),pa=(0,ma.createContext)({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var b=q.forwardRef((o,a)=>{let{alt:r,color:e,size:i,weight:m,mirrored:k,children:y,weights:l,...x}=o,{color:G="currentColor",size:D,weight:A="regular",mirrored:O=!1,...v}=q.useContext(pa);return q.createElement("svg",{ref:a,xmlns:"http://www.w3.org/2000/svg",width:i??D,height:i??D,fill:e??G,viewBox:"0 0 256 256",transform:k||O?"scale(-1, 1)":void 0,...v,...x},!!r&&q.createElement("title",null,r),y,l.get(m??A))});b.displayName="IconBase";var j=s(c(),1);var Y=j.forwardRef((o,a)=>j.createElement(b,{ref:a,...o,weights:ra}));Y.displayName="ArrowSquareOutIcon";var $=s(c(),1);var oo=$.forwardRef((o,a)=>$.createElement(b,{ref:a,...o,weights:sa}));oo.displayName="CircleNotchIcon";var ao=s(c(),1);var ro=ao.forwardRef((o,a)=>ao.createElement(b,{ref:a,...o,weights:ea}));ro.displayName="CloudCheckIcon";var so=s(c(),1);var eo=so.forwardRef((o,a)=>so.createElement(b,{ref:a,...o,weights:na}));eo.displayName="CloudSlashIcon";var no=s(c(),1);var io=no.forwardRef((o,a)=>no.createElement(b,{ref:a,...o,weights:ia}));io.displayName="CloudXIcon";var to=s(c(),1);var co=to.forwardRef((o,a)=>to.createElement(b,{ref:a,...o,weights:ta}));co.displayName="GearIcon";var lo=s(c(),1);var mo=lo.forwardRef((o,a)=>lo.createElement(b,{ref:a,...o,weights:ca}));mo.displayName="SignOutIcon";var po=s(c(),1);var Io=po.forwardRef((o,a)=>po.createElement(b,{ref:a,...o,weights:la}));Io.displayName="WarningIcon";var Ia=s(L()),Va=o=>(0,Ia.jsx)(oo,{size:o.size,className:"plotly-cloud-spin plotly-cloud-gray-icon",weight:"bold"}),z=Va;var P=s(L()),za=({initialAppName:o="",teams:a,loadingTeams:r,onCancel:e,onPublish:i,sizeError:m=""})=>{let[k,y]=(0,W.useState)(o),[l,x]=(0,W.useState)("");(0,W.useEffect)(()=>{a.length>0&&!l&&x(a[0].team.id)},[a,l]);let G=A=>{if(A.preventDefault(),k.trim()&&!m){let O=a.find(v=>v.team.id===l);i(k.trim(),l||void 0,O?.team.name||void 0)}},D=(0,W.useMemo)(()=>{if(!(r||!a||!a.length))return a.find(A=>A.team.id===l)},[a]);return r?null:(0,P.jsxs)("div",{className:"plotly-cloud-name-input",children:[m&&(0,P.jsx)("div",{className:"plotly-cloud-size-error",children:m}),(0,P.jsxs)("form",{onSubmit:G,children:[(0,P.jsx)("div",{className:"plotly-cloud-name-input-label",children:"App Name"}),(0,P.jsx)("input",{type:"text",value:k,onChange:A=>y(A.target.value),placeholder:"My Dash App",className:"plotly-cloud-name-input-field",disabled:!!m||r}),(0,P.jsx)("div",{className:"plotly-cloud-name-input-label",style:{marginTop:"16px"},children:"Team"}),r?(0,P.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"8px"},children:[(0,P.jsx)(z,{size:16}),(0,P.jsx)("span",{style:{marginLeft:"8px"},children:"Loading teams..."})]}):a.length===0?(0,P.jsx)("div",{style:{padding:"8px",color:"#666"},children:"No teams available"}):(0,P.jsx)("select",{value:l,onChange:A=>x(A.target.value),className:"plotly-cloud-name-input-field",disabled:!!m,children:a?.map(A=>(0,P.jsx)("option",{value:A.team.id,children:A.team.name},A.team.id))}),D&&D.team.description&&(0,P.jsx)("div",{style:{marginTop:"8px",fontSize:"12px",color:"#666"},children:D.team.description}),(0,P.jsx)("div",{className:"plotly-cloud-button-bar",children:(0,P.jsx)("button",{type:"submit",disabled:!k.trim()||!!m||r||a.length===0,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",children:"Publish App"})})]})]})},fa=za;var uo=s(c());var Z=s(L()),Za=({status:o,size:a=16,isButtonIcon:r})=>o==="BUILDING"||o==="STARTING"||o==="unknown"?(0,Z.jsx)(z,{size:a}):o==="RUNNING"?(0,Z.jsx)(ro,{size:a,className:"plotly-cloud-green-icon",weight:r?"fill":"duotone"}):o==="new"?(0,Z.jsx)(eo,{size:a,className:"plotly-cloud-gray-icon",weight:r?"fill":"duotone"}):(0,Z.jsx)(io,{size:a,className:"plotly-cloud-red-icon",weight:"duotone"}),fo=Za;var p=s(L()),_a=({status:o,onPublish:a,isUpdate:r,publishing:e,onCancel:i,onLogout:m,appUrl:k,teamName:y,sizeError:l=""})=>{let x=()=>{i&&i()},G=()=>{window.open(k,"_blank")},[D,A,O]=(0,uo.useMemo)(()=>o==="BUILDING"||o==="STARTING"?["App is building","Wait for your app to finish publishing before publishing again","gray"]:o==="RUNNING"?["App is live","Your app is running in Plotly Cloud.","green"]:["App is stopped","Start your app by publishing again or starting it in the app manager","red"],[o]),[v,_]=(0,uo.useMemo)(()=>e?r?["Open Settings in Plotly Cloud","Republishing",""]:[null,"Publishing",""]:r?[(0,p.jsxs)("span",{children:[(0,p.jsx)(co,{}),"\xA0Open Settings in Plotly Cloud"]}),"Republish"]:[null,"Publish",""],[e,r]),V=(0,uo.useMemo)(()=>["BUILDING","STARTING"].includes(o)||!!l,[o,l]);return(0,p.jsxs)("div",{className:"plotly-cloud-status-banner",children:[l&&(0,p.jsx)("div",{className:"plotly-cloud-size-error",children:l}),(0,p.jsxs)("div",{className:`plotly-cloud-status-info plotly-cloud-status-${O}`,children:[(0,p.jsx)(fo,{status:o,size:20}),(0,p.jsxs)("div",{className:"plotly-cloud-status-description",children:[(0,p.jsx)("div",{className:"plotly-cloud-status-title",children:D}),(0,p.jsx)("div",{className:"plotly-cloud-status-text",children:A}),y&&(0,p.jsxs)("div",{style:{marginTop:"4px",fontSize:"12px",color:"#666"},children:["Team: ",y]})]})]}),(0,p.jsxs)("div",{className:"plotly-cloud-button-bar",children:[(0,p.jsx)("div",{style:{flex:1},children:(0,p.jsxs)("button",{disabled:e,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary plotly-cloud-logout",onClick:m,children:[(0,p.jsx)(mo,{}),"\xA0Logout"]})}),v?(0,p.jsx)("button",{type:"button",onClick:x,disabled:r?!1:e,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary",children:v}):null,k?(0,p.jsx)("button",{onClick:G,disabled:e,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary",children:(0,p.jsxs)("span",{children:[(0,p.jsx)(Y,{}),"\xA0View App"]})}):null,(0,p.jsxs)("button",{type:"button",onClick:a,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",disabled:e||V,children:[e?(0,p.jsx)(z,{size:12}):null,_]})]})]})},Lo=_a;var go=s(L()),Xa=({error:o})=>(0,go.jsxs)("div",{className:"plotly-cloud-error",children:[(0,go.jsx)(Io,{className:"plotly-cloud-red-icon",size:24}),"\xA0",o]}),ua=Xa;function da(o){switch(o){case"BUILDING":return 1e4;case"STARTING":return 7e3;case"CHECKING":case"STOPPING":return 15e3;case"RUNNING":return 18e4;case"FAILING":case"PENDING_ENTITLEMENTS":case"BUILD_COMPLETED":case"BUILD_FAILED":case"STOPPED":case"DEPLOYED_BY_OTHER_PLATFORM":return 6e4;default:return 6e4}}var T=s(L()),So="cloud",Ja=()=>{let{popup:o,setPopup:a}=window.dash_component_api.devtool.useDevtool(),r=window.dash_component_api.devtool.useDevtoolMenuButtonClassName(So),[e,i]=(0,t.useState)(""),[m,k]=(0,t.useState)(""),[y,l]=(0,t.useState)("initialize"),[x,G]=(0,t.useState)(!1),[D,A]=(0,t.useState)(""),[O,v]=(0,t.useState)(""),[_,V]=(0,t.useState)(!1),[ga,ho]=(0,t.useState)(!1),[bo,Sa]=(0,t.useState)(""),[Po,To]=(0,t.useState)(""),[ko,yo]=(0,t.useState)(""),[Co,ha]=(0,t.useState)([]),[Fo,Bo]=(0,t.useState)(!1),[Do,Ho]=(0,t.useState)(""),[M,U]=(0,t.useState)("unknown"),[Mo,Ro]=(0,t.useState)(0),[Ca,wa]=(0,t.useState)(1),[No,xo]=(0,t.useState)(-1),X=(0,t.useRef)(""),R=(0,t.useRef)(""),B=(0,t.useMemo)(()=>$o("/"),[]),vo=(0,t.useMemo)(()=>o===So,[o]),J=()=>{a("")},La=()=>{a(o===So?"":So)},Uo=()=>{B.logout().then(()=>{l("initialize")})},Eo=()=>{G(!0),B.authenticate().then(n=>{n.error?i(n.error):(l("auth_poll"),A(n.result.user_code),v(n.result.verification_uri_complete),X.current=n.result.device_code,B.wait_auth().then(()=>{window.open(n.result.verification_uri_complete,"_blank"),xo(setTimeout(()=>{B.auth_poll({device_code:X.current}).then(Go)},8e3))}))})},Go=n=>{if(n.error)i(n.error);else{if(n.result.success){X.current="",R.current?(U("unknown"),l("update_app"),B.status({app_id:R.current}).then(H=>{U(H.result.status)})):(Oo(),l("enter_name"));return}if(n.result.try_again){Eo();return}let I=Ca||1;n.result.delay&&(I=n.result.delay,wa(I)),xo(setTimeout(()=>{B.auth_poll({device_code:X.current}).then(Go)},1e3+I*1e3))}},Aa=()=>{setTimeout(Eo,2e3)},Oo=()=>{Bo(!0),B.fetch_teams().then(n=>{n.error?console.error("Failed to fetch teams:",n.error):ha(n.result.teams),Bo(!1)})};(0,t.useEffect)(()=>{y==="initialize"&&B.initialize().then(n=>{let{result:I,error:H}=n;H?i(H):(Sa(I.app_path),To(I.app_name),U(I.status),yo(I.app_url),k(I.size_error||""),I.team_name&&Ho(I.team_name),I.app_id&&(R.current=I.app_id),I?.authenticated?I.status==="new"?(Oo(),l("enter_name")):l("update_app"):l("sign_in"))})},[y,vo]);let ba=()=>{B.status({app_id:R.current}).then(Pa)},Pa=n=>{if(n.error){i(n.error);return}U(n.result.status),Ro(Date.now()),n.result.status==="RUNNING"?(V(!1),ho(!0),l("update_app")):["BUILDING","STARTING"].includes(n.result.status)||(V(!1),l("update_app"))},qo=n=>{if(n.error){i(n.error);return}l("status_poll"),R.current=n.result.app_id,yo(n.result.app_url),U("BUILDING"),Ro(0)},Wo=(n,I,H)=>{To(n),H&&Ho(H),V(!0),ho(!1),U("BUILDING"),B.publish({app_path:bo,app_name:n,team_id:I,team_name:H}).then(qo)},Vo=()=>{V(!0),ho(!0),U("BUILDING"),B.publish({app_id:R.current,app_path:bo}).then(qo)};(0,t.useEffect)(()=>{if(!R.current||M==="unknown"||M==="new")return;let n=setInterval(()=>{let H=Date.now()-Mo,Ta=da(M);H>=Ta&&ba()},1e3);return()=>{clearInterval(n)}},[R.current,M,Mo]),(0,t.useEffect)(()=>()=>{No>0&&clearTimeout(No)}),(0,t.useEffect)(()=>{e&&M!=="error"&&U("error")},[e,M]);let zo=()=>{window.open(`https://cloud.plotly.com/app/${R.current}/settings`,"_blank")};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)("button",{className:r,onClick:La,children:[(0,T.jsx)(fo,{status:M,isButtonIcon:!0}),"\xA0Plotly Cloud"]}),vo?(0,T.jsx)(Qo,{title:"Plotly Cloud",onClose:J,children:e?(0,T.jsx)(ua,{error:e}):(()=>{switch(y){case"authenticate":case"auth_poll":case"sign_in":return(0,T.jsx)(Yo,{onSignIn:Aa,waiting:x,userCode:D,verificationUrlComplete:O});case"enter_name":return!Fo&&Co.length===1?(0,T.jsx)(aa,{onPublish:n=>{let I=Co[0];Wo(n,I.team.id,I.team.name)},onCancel:J,initialAppName:Po,sizeError:m}):(0,T.jsx)(fa,{onPublish:Wo,onCancel:J,initialAppName:Po,teams:Co,loadingTeams:Fo,sizeError:m});case"update_app":return(0,T.jsx)(Lo,{onPublish:Vo,status:M,isUpdate:!0,onCancel:zo,appUrl:ko,teamName:Do,onLogout:Uo,sizeError:m});case"status_poll":case"publish":return(0,T.jsx)(Lo,{publishing:_,onPublish:Vo,status:M,onCancel:_?zo:J,isUpdate:ga,appUrl:ko,teamName:Do,onLogout:Uo,sizeError:m});default:return(0,T.jsx)(T.Fragment,{})}})()},"publish-modal"):null]})},Ao=Ja;typeof window<"u"&&(window.plotly_cloud_publish_component={PlotlyCloudPublishComponent:Ao});return Ma(Ka);})();
|
|
3
|
+
/*! Bundled license information:
|
|
4
|
+
|
|
5
|
+
react/cjs/react-jsx-runtime.production.min.js:
|
|
6
|
+
(**
|
|
7
|
+
* @license React
|
|
8
|
+
* react-jsx-runtime.production.min.js
|
|
9
|
+
*
|
|
10
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
11
|
+
*
|
|
12
|
+
* This source code is licensed under the MIT license found in the
|
|
13
|
+
* LICENSE file in the root directory of this source tree.
|
|
14
|
+
*)
|
|
15
|
+
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"""Custom exceptions for Plotly Cloud
|
|
1
|
+
"""Custom exceptions for Plotly Cloud Extension."""
|
|
2
2
|
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class PlotlyCloudError(Exception):
|
|
7
|
-
"""Base exception for all Plotly Cloud
|
|
7
|
+
"""Base exception for all Plotly Cloud Extension errors."""
|
|
8
8
|
|
|
9
9
|
def __init__(self, message: str, details: Optional[str] = None):
|
|
10
10
|
"""Initialize exception with message and optional details."""
|
|
@@ -4,20 +4,22 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "plotly-cloud"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Python extension for Plotly Cloud with CLI and Dash dev tools integration"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
dependencies = [
|
|
12
12
|
"httpx>=0.24.0,<1.0.0",
|
|
13
13
|
"dash>=2.0.0",
|
|
14
14
|
"rich>=10.0.0",
|
|
15
|
-
"rich-argparse>=1.7.1",
|
|
16
15
|
"tomli>=2.2.1",
|
|
17
16
|
"tomli-w>=1.2.0",
|
|
18
17
|
"nest-asyncio>=1.6.0",
|
|
19
18
|
]
|
|
20
19
|
|
|
20
|
+
[project.urls]
|
|
21
|
+
Repository = "https://github.com/plotly/plotly-cloud-extension"
|
|
22
|
+
|
|
21
23
|
[project.scripts]
|
|
22
24
|
plotly = "plotly_cloud.cli:main"
|
|
23
25
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const React = window.React; const ReactDOM = window.ReactDOM;
|
|
2
|
-
"use strict";var plotly_cloud_publish_component=(()=>{var ga=Object.create;var Z=Object.defineProperty;var Sa=Object.getOwnPropertyDescriptor;var ha=Object.getOwnPropertyNames;var Ca=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty;var So=(o,a)=>()=>(a||o((a={exports:{}}).exports,a),a.exports),La=(o,a)=>{for(var s in a)Z(o,s,{get:a[s],enumerable:!0})},xo=(o,a,s,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of ha(a))!wa.call(o,n)&&n!==s&&Z(o,n,{get:()=>a[n],enumerable:!(r=Sa(a,n))||r.enumerable});return o};var e=(o,a,s)=>(s=o!=null?ga(Ca(o)):{},xo(a||!o||!o.__esModule?Z(s,"default",{value:o,enumerable:!0}):s,o)),Aa=o=>xo(Z({},"__esModule",{value:!0}),o);var c=So((qa,Uo)=>{Uo.exports=React});var Eo=So(_=>{"use strict";var ba=c(),Pa=Symbol.for("react.element"),ka=Symbol.for("react.fragment"),Ta=Object.prototype.hasOwnProperty,ya=ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Fa={key:!0,ref:!0,__self:!0,__source:!0};function vo(o,a,s){var r,n={},L=null,T=null;s!==void 0&&(L=""+s),a.key!==void 0&&(L=""+a.key),a.ref!==void 0&&(T=a.ref);for(r in a)Ta.call(a,r)&&!Fa.hasOwnProperty(r)&&(n[r]=a[r]);if(o&&o.defaultProps)for(r in a=o.defaultProps,a)n[r]===void 0&&(n[r]=a[r]);return{$$typeof:Pa,type:o,key:L,ref:T,props:n,_owner:ya.current}}_.Fragment=ka;_.jsx=vo;_.jsxs=vo});var h=So((Va,Go)=>{"use strict";Go.exports=Eo()});var Ea={};La(Ea,{PlotlyCloudPublishComponent:()=>Co});var t=e(c());var M=e(h()),Ba=({title:o,onClose:a,children:s})=>(0,M.jsx)("div",{className:"plotly-cloud-publish-modal-overlay",children:(0,M.jsxs)("div",{className:"plotly-cloud-publish-modal-content",children:[(0,M.jsxs)("div",{className:"plotly-cloud-publish-modal-header",children:[(0,M.jsx)("h3",{children:o},"modal-title"),(0,M.jsx)("button",{className:"plotly-cloud-publish-modal-close",onClick:a,children:"\xD7"},"modal-close")]}),(0,M.jsx)("div",{className:"plotly-cloud-publish-modal-body",children:s},"modal-body")]})}),Oo=Ba;var qo=e(c()),k=e(h()),Da=o=>{let[a,s]=(0,qo.useState)(o.waiting);return(0,k.jsx)("div",{className:"plotly-cloud-publish-signin",children:a?(0,k.jsxs)("div",{children:[o.verificationUrlComplete?(0,k.jsxs)("div",{children:["A browser window should open for sign-in."," ",(0,k.jsx)("a",{href:o.verificationUrlComplete,target:"_blank",rel:"noopener noreferrer",children:"Click here"})," ","if it doesn't open automatically."]}):(0,k.jsx)("div",{children:"Preparing sign-in..."}),o.userCode?(0,k.jsxs)("div",{className:"plotly-cloud-confirm-code",children:["Confirm your device code"," ",(0,k.jsx)("span",{className:"plotly-cloud-user-code",children:o.userCode})," ","when prompted."]}):null]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("span",{children:"Sign in to publish your app to Plotly Cloud."}),(0,k.jsx)("button",{className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",onClick:()=>{s(!0),o.onSignIn()},children:"Sign In"})]})})},Wo=Da;var Ha=o=>{let a=async r=>await(await fetch(`${o}_plotly_cloud_publish`,{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"}})).json(),s=r=>n=>a({operation:r,data:n});return{initialize:s("initialize"),authenticate:s("authenticate"),auth_poll:s("auth_poll"),publish:s("publish"),status:s("status"),wait_auth:s("wait_auth"),logout:s("logout")}},Vo=Ha;var zo=e(c()),D=e(h()),Ma=({initialAppName:o="",onCancel:a,onPublish:s,sizeError:r=""})=>{let[n,L]=(0,zo.useState)(o);return(0,D.jsxs)("div",{className:"plotly-cloud-name-input",children:[r&&(0,D.jsx)("div",{className:"plotly-cloud-size-error",children:r}),(0,D.jsx)("div",{className:"plotly-cloud-name-input-label",children:"App Name"}),(0,D.jsxs)("form",{onSubmit:A=>{A.preventDefault(),n.trim()&&!r&&s(n.trim())},children:[(0,D.jsx)("input",{type:"text",value:n,onChange:A=>L(A.target.value),placeholder:"My Dash App",className:"plotly-cloud-name-input-field",disabled:!!r}),(0,D.jsx)("div",{className:"plotly-cloud-button-bar",children:(0,D.jsx)("button",{type:"submit",disabled:!n.trim()||!!r,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",children:"Publish App"})})]})]})},Zo=Ma;var po=e(c());var l=e(c(),1),_o=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M184,80V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H176A8,8,0,0,1,184,80Z",opacity:"0.2"}),l.createElement("path",{d:"M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M192,136v72a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64h72a8,8,0,0,1,0,16H48V208H176V136a8,8,0,0,1,16,0Zm32-96a8,8,0,0,0-8-8H152a8,8,0,0,0-5.66,13.66L172.69,72l-42.35,42.34a8,8,0,0,0,11.32,11.32L184,83.31l26.34,26.35A8,8,0,0,0,224,104Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M222,104a6,6,0,0,1-12,0V54.49l-69.75,69.75a6,6,0,0,1-8.48-8.48L201.51,46H152a6,6,0,0,1,0-12h64a6,6,0,0,1,6,6Zm-38,26a6,6,0,0,0-6,6v72a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V80a2,2,0,0,1,2-2h72a6,6,0,0,0,0-12H48A14,14,0,0,0,34,80V208a14,14,0,0,0,14,14H176a14,14,0,0,0,14-14V136A6,6,0,0,0,184,130Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220,104a4,4,0,0,1-8,0V49.66l-73.16,73.17a4,4,0,0,1-5.66-5.66L206.34,44H152a4,4,0,0,1,0-8h64a4,4,0,0,1,4,4Zm-36,28a4,4,0,0,0-4,4v72a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4h72a4,4,0,0,0,0-8H48A12,12,0,0,0,36,80V208a12,12,0,0,0,12,12H176a12,12,0,0,0,12-12V136A4,4,0,0,0,184,132Z"}))]]);var m=e(c(),1),Xo=new Map([["bold",m.createElement(m.Fragment,null,m.createElement("path",{d:"M236,128a108,108,0,0,1-216,0c0-42.52,24.73-81.34,63-98.9A12,12,0,1,1,93,50.91C63.24,64.57,44,94.83,44,128a84,84,0,0,0,168,0c0-33.17-19.24-63.43-49-77.09A12,12,0,1,1,173,29.1C211.27,46.66,236,85.48,236,128Z"}))],["duotone",m.createElement(m.Fragment,null,m.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),m.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["fill",m.createElement(m.Fragment,null,m.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,176A72,72,0,0,1,92,65.64a8,8,0,0,1,8,13.85,56,56,0,1,0,56,0,8,8,0,0,1,8-13.85A72,72,0,0,1,128,200Z"}))],["light",m.createElement(m.Fragment,null,m.createElement("path",{d:"M230,128a102,102,0,0,1-204,0c0-40.18,23.35-76.86,59.5-93.45a6,6,0,0,1,5,10.9C58.61,60.09,38,92.49,38,128a90,90,0,0,0,180,0c0-35.51-20.61-67.91-52.5-82.55a6,6,0,0,1,5-10.9C206.65,51.14,230,87.82,230,128Z"}))],["regular",m.createElement(m.Fragment,null,m.createElement("path",{d:"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"}))],["thin",m.createElement(m.Fragment,null,m.createElement("path",{d:"M228,128a100,100,0,0,1-200,0c0-39.4,22.9-75.37,58.33-91.63a4,4,0,1,1,3.34,7.27C57.07,58.6,36,91.71,36,128a92,92,0,0,0,184,0c0-36.29-21.07-69.4-53.67-84.36a4,4,0,1,1,3.34-7.27C205.1,52.63,228,88.6,228,128Z"}))]]);var p=e(c(),1),Jo=new Map([["bold",p.createElement(p.Fragment,null,p.createElement("path",{d:"M160,36A92.09,92.09,0,0,0,79,84.36,68,68,0,1,0,72,220h88a92,92,0,0,0,0-184Zm0,160H72a44,44,0,0,1-1.82-88A91.86,91.86,0,0,0,68,128a12,12,0,0,0,24,0,68,68,0,1,1,68,68Zm40.49-92.49a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L144,143l39.51-39.52A12,12,0,0,1,200.49,103.51Z"}))],["duotone",p.createElement(p.Fragment,null,p.createElement("path",{d:"M240,128a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.74l0,.1A80,80,0,0,1,240,128Z",opacity:"0.2"}),p.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm37.66-93.66a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35A8,8,0,0,1,197.66,106.34Z"}))],["fill",p.createElement(p.Fragment,null,p.createElement("path",{d:"M247.93,124.52C246.11,77.54,207.07,40,160.06,40A88.1,88.1,0,0,0,81.29,88.67h0A87.48,87.48,0,0,0,72,127.73,8.18,8.18,0,0,1,64.57,136,8,8,0,0,1,56,128a103.66,103.66,0,0,1,5.34-32.92,4,4,0,0,0-4.75-5.18A64.09,64.09,0,0,0,8,152c0,35.19,29.75,64,65,64H160A88.09,88.09,0,0,0,247.93,124.52Zm-50.27-6.86-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35a8,8,0,0,1,11.32,11.32Z"}))],["light",p.createElement(p.Fragment,null,p.createElement("path",{d:"M160,42A86.11,86.11,0,0,0,82.43,90.88,62,62,0,1,0,72,214h88a86,86,0,0,0,0-172Zm0,160H72a50,50,0,0,1,0-100,50.67,50.67,0,0,1,5.91.35A85.61,85.61,0,0,0,74,128a6,6,0,0,0,12,0,74,74,0,1,1,74,74Zm36.24-94.24a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L144,151.51l43.76-43.75A6,6,0,0,1,196.24,107.76Z"}))],["regular",p.createElement(p.Fragment,null,p.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm37.66-93.66a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L144,148.69l42.34-42.35A8,8,0,0,1,197.66,106.34Z"}))],["thin",p.createElement(p.Fragment,null,p.createElement("path",{d:"M160,44A84.11,84.11,0,0,0,83.59,93.12,60.71,60.71,0,0,0,72,92a60,60,0,0,0,0,120h88a84,84,0,0,0,0-168Zm0,160H72a52,52,0,1,1,8.55-103.3A83.66,83.66,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,1,1,76,76Zm34.83-94.83a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L144,154.34l45.17-45.17A4,4,0,0,1,194.83,109.17Z"}))]]);var I=e(c(),1),Ko=new Map([["bold",I.createElement(I.Fragment,null,I.createElement("path",{d:"M56.88,31.93A12,12,0,1,0,39.12,48.07L71.79,84A68,68,0,0,0,72,220h88a91.26,91.26,0,0,0,30.66-5.24l8.46,9.31a12,12,0,0,0,17.76-16.14ZM160,196H72a44,44,0,0,1-1.8-87.95A91.91,91.91,0,0,0,68,128a12,12,0,0,0,24,0,68.22,68.22,0,0,1,2.66-18.84l77.88,85.67A68.67,68.67,0,0,1,160,196Zm92-68a91.32,91.32,0,0,1-17.53,54,12,12,0,1,1-19.41-14.11,68,68,0,0,0-89.57-98.53,12,12,0,0,1-12.2-20.66A92,92,0,0,1,252,128Z"}))],["duotone",I.createElement(I.Fragment,null,I.createElement("path",{d:"M240,128a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.74l0,.1A80,80,0,0,1,240,128Z",opacity:"0.2"}),I.createElement("path",{d:"M53.92,34.62A8,8,0,1,0,42.08,45.38L81.32,88.55l-.06.12A65,65,0,0,0,72,88a64,64,0,0,0,0,128h88a87.34,87.34,0,0,0,31.8-5.93l10.28,11.31a8,8,0,1,0,11.84-10.76ZM160,200H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.3.12A88.4,88.4,0,0,0,72,128a8,8,0,0,0,16,0,72.25,72.25,0,0,1,5.06-26.54l87,95.7A71.66,71.66,0,0,1,160,200Zm88-72a87.89,87.89,0,0,1-22.35,58.61A8,8,0,0,1,213.71,176,72,72,0,0,0,117.37,70a8,8,0,0,1-9.48-12.89A88,88,0,0,1,248,128Z"}))],["fill",I.createElement(I.Fragment,null,I.createElement("path",{d:"M248,128.72A87.74,87.74,0,0,1,222.41,190a4,4,0,0,1-5.77-.16L103.78,65.67a4,4,0,0,1,.39-5.76A87.82,87.82,0,0,1,160.87,40C209.15,40.47,248.38,80.43,248,128.72ZM53.92,34.62A8,8,0,1,0,42.08,45.38L81.33,88.56l-.06.11A64,64,0,0,0,8,153c.53,35.12,29.84,63,65,63h87a87.65,87.65,0,0,0,31.78-5.95l10.3,11.33a8,8,0,0,0,11.33.52,8.32,8.32,0,0,0,.29-11.52Z"}))],["light",I.createElement(I.Fragment,null,I.createElement("path",{d:"M52.44,36A6,6,0,0,0,43.56,44l40.18,44.2c-.45.87-.9,1.75-1.32,2.64A62,62,0,1,0,72,214h88a85.23,85.23,0,0,0,32.35-6.3L203.56,220a6,6,0,0,0,8.88-8.08ZM160,202H72a50,50,0,1,1,5.9-99.64A86.25,86.25,0,0,0,74,128a6,6,0,0,0,12,0,73.92,73.92,0,0,1,6.44-30.2l91.22,100.34A73.65,73.65,0,0,1,160,202Zm86-74a85.85,85.85,0,0,1-21.85,57.27,6,6,0,0,1-4.47,2,6,6,0,0,1-4.47-10,74,74,0,0,0-99-108.92,6,6,0,1,1-7.11-9.67A86,86,0,0,1,246,128Z"}))],["regular",I.createElement(I.Fragment,null,I.createElement("path",{d:"M53.92,34.62A8,8,0,1,0,42.08,45.38L81.32,88.55l-.06.12A65,65,0,0,0,72,88a64,64,0,0,0,0,128h88a87.34,87.34,0,0,0,31.8-5.93l10.28,11.31a8,8,0,1,0,11.84-10.76ZM160,200H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.3.12A88.4,88.4,0,0,0,72,128a8,8,0,0,0,16,0,72.25,72.25,0,0,1,5.06-26.54l87,95.7A71.66,71.66,0,0,1,160,200Zm88-72a87.89,87.89,0,0,1-22.35,58.61A8,8,0,0,1,213.71,176,72,72,0,0,0,117.37,70a8,8,0,0,1-9.48-12.89A88,88,0,0,1,248,128Z"}))],["thin",I.createElement(I.Fragment,null,I.createElement("path",{d:"M51,37.31A4,4,0,0,0,45,42.69L86.16,87.93q-1.38,2.55-2.59,5.19A60,60,0,1,0,72,212h88a83.19,83.19,0,0,0,32.88-6.69L205,218.69a4,4,0,1,0,5.92-5.38ZM160,204H72a52,52,0,0,1,0-104,52.92,52.92,0,0,1,8.54.72A84.21,84.21,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,0,1,7.9-33.76L187.13,199A75.37,75.37,0,0,1,160,204Zm84-76a83.86,83.86,0,0,1-21.34,55.94,4,4,0,1,1-6-5.33A76,76,0,0,0,115,66.75a4,4,0,0,1-4.74-6.45A84,84,0,0,1,244,128Z"}))]]);var f=e(c(),1),Qo=new Map([["bold",f.createElement(f.Fragment,null,f.createElement("path",{d:"M160,36A92.09,92.09,0,0,0,79,84.36,68,68,0,1,0,72,220h88a92,92,0,0,0,0-184Zm0,160H72a44,44,0,0,1-1.82-88A91.86,91.86,0,0,0,68,128a12,12,0,0,0,24,0,68,68,0,1,1,68,68Zm32.49-79.51L177,132l15.52,15.51a12,12,0,0,1-17,17L160,149l-15.51,15.52a12,12,0,1,1-17-17L143,132l-15.52-15.51a12,12,0,1,1,17-17L160,115l15.51-15.52a12,12,0,0,1,17,17Z"}))],["duotone",f.createElement(f.Fragment,null,f.createElement("path",{d:"M240,127.62a80,80,0,0,1-80,80H72A56,56,0,1,1,85.92,97.36l0,.1A80,80,0,0,1,240,127.62Z",opacity:"0.2"}),f.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm29.66-82.34L171.31,136l18.35,18.34a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",f.createElement(f.Fragment,null,f.createElement("path",{d:"M247.93,124.52C246.11,77.54,207.07,40,160.06,40A88.1,88.1,0,0,0,81.29,88.67h0A87.48,87.48,0,0,0,72,127.73,8.18,8.18,0,0,1,64.57,136,8,8,0,0,1,56,128a103.66,103.66,0,0,1,5.34-32.92,4,4,0,0,0-4.75-5.18A64.09,64.09,0,0,0,8,152c0,35.19,29.75,64,65,64H160A88.09,88.09,0,0,0,247.93,124.52Zm-58.27,29.82a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32L171.31,136Z"}))],["light",f.createElement(f.Fragment,null,f.createElement("path",{d:"M160,42A86.11,86.11,0,0,0,82.43,90.88,62,62,0,1,0,72,214h88a86,86,0,0,0,0-172Zm0,160H72a50,50,0,0,1,0-100,50.67,50.67,0,0,1,5.91.35A85.61,85.61,0,0,0,74,128a6,6,0,0,0,12,0,74,74,0,1,1,74,74Zm28.24-85.76L168.48,136l19.76,19.76a6,6,0,1,1-8.48,8.48L160,144.48l-19.76,19.76a6,6,0,0,1-8.48-8.48L151.52,136l-19.76-19.76a6,6,0,0,1,8.48-8.48L160,127.52l19.76-19.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",f.createElement(f.Fragment,null,f.createElement("path",{d:"M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Zm29.66-82.34L171.31,136l18.35,18.34a8,8,0,0,1-11.32,11.32L160,147.31l-18.34,18.35a8,8,0,0,1-11.32-11.32L148.69,136l-18.35-18.34a8,8,0,0,1,11.32-11.32L160,124.69l18.34-18.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",f.createElement(f.Fragment,null,f.createElement("path",{d:"M160,44A84.11,84.11,0,0,0,83.59,93.12,60.71,60.71,0,0,0,72,92a60,60,0,0,0,0,120h88a84,84,0,0,0,0-168Zm0,160H72a52,52,0,1,1,8.55-103.3A83.66,83.66,0,0,0,76,128a4,4,0,0,0,8,0,76,76,0,1,1,76,76Zm26.83-89.17L165.66,136l21.17,21.17a4,4,0,0,1-5.66,5.66L160,141.66l-21.17,21.17a4,4,0,0,1-5.66-5.66L154.34,136l-21.17-21.17a4,4,0,0,1,5.66-5.66L160,130.34l21.17-21.17a4,4,0,1,1,5.66,5.66Z"}))]]);var u=e(c(),1),jo=new Map([["bold",u.createElement(u.Fragment,null,u.createElement("path",{d:"M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm92-27.21v-1.58l14-17.51a12,12,0,0,0,2.23-10.59A111.75,111.75,0,0,0,225,71.89,12,12,0,0,0,215.89,66L193.61,63.5l-1.11-1.11L190,40.1A12,12,0,0,0,184.11,31a111.67,111.67,0,0,0-27.23-11.27A12,12,0,0,0,146.3,22L128.79,36h-1.58L109.7,22a12,12,0,0,0-10.59-2.23A111.75,111.75,0,0,0,71.89,31.05,12,12,0,0,0,66,40.11L63.5,62.39,62.39,63.5,40.1,66A12,12,0,0,0,31,71.89,111.67,111.67,0,0,0,19.77,99.12,12,12,0,0,0,22,109.7l14,17.51v1.58L22,146.3a12,12,0,0,0-2.23,10.59,111.75,111.75,0,0,0,11.29,27.22A12,12,0,0,0,40.11,190l22.28,2.48,1.11,1.11L66,215.9A12,12,0,0,0,71.89,225a111.67,111.67,0,0,0,27.23,11.27A12,12,0,0,0,109.7,234l17.51-14h1.58l17.51,14a12,12,0,0,0,10.59,2.23A111.75,111.75,0,0,0,184.11,225a12,12,0,0,0,5.91-9.06l2.48-22.28,1.11-1.11L215.9,190a12,12,0,0,0,9.06-5.91,111.67,111.67,0,0,0,11.27-27.23A12,12,0,0,0,234,146.3Zm-24.12-4.89a70.1,70.1,0,0,1,0,8.2,12,12,0,0,0,2.61,8.22l12.84,16.05A86.47,86.47,0,0,1,207,166.86l-20.43,2.27a12,12,0,0,0-7.65,4,69,69,0,0,1-5.8,5.8,12,12,0,0,0-4,7.65L166.86,207a86.47,86.47,0,0,1-10.49,4.35l-16.05-12.85a12,12,0,0,0-7.5-2.62c-.24,0-.48,0-.72,0a70.1,70.1,0,0,1-8.2,0,12.06,12.06,0,0,0-8.22,2.6L99.63,211.33A86.47,86.47,0,0,1,89.14,207l-2.27-20.43a12,12,0,0,0-4-7.65,69,69,0,0,1-5.8-5.8,12,12,0,0,0-7.65-4L49,166.86a86.47,86.47,0,0,1-4.35-10.49l12.84-16.05a12,12,0,0,0,2.61-8.22,70.1,70.1,0,0,1,0-8.2,12,12,0,0,0-2.61-8.22L44.67,99.63A86.47,86.47,0,0,1,49,89.14l20.43-2.27a12,12,0,0,0,7.65-4,69,69,0,0,1,5.8-5.8,12,12,0,0,0,4-7.65L89.14,49a86.47,86.47,0,0,1,10.49-4.35l16.05,12.85a12.06,12.06,0,0,0,8.22,2.6,70.1,70.1,0,0,1,8.2,0,12,12,0,0,0,8.22-2.6l16.05-12.85A86.47,86.47,0,0,1,166.86,49l2.27,20.43a12,12,0,0,0,4,7.65,69,69,0,0,1,5.8,5.8,12,12,0,0,0,7.65,4L207,89.14a86.47,86.47,0,0,1,4.35,10.49l-12.84,16.05A12,12,0,0,0,195.88,123.9Z"}))],["duotone",u.createElement(u.Fragment,null,u.createElement("path",{d:"M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z",opacity:"0.2"}),u.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["fill",u.createElement(u.Fragment,null,u.createElement("path",{d:"M216,130.16q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"}))],["light",u.createElement(u.Fragment,null,u.createElement("path",{d:"M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162ZM214,130.84c.06-1.89.06-3.79,0-5.68L229.33,106a6,6,0,0,0,1.11-5.29A105.34,105.34,0,0,0,219.76,74.9a6,6,0,0,0-4.53-3l-24.45-2.71q-1.93-2.07-4-4l-2.72-24.46a6,6,0,0,0-3-4.53,105.65,105.65,0,0,0-25.77-10.66A6,6,0,0,0,150,26.68l-19.2,15.37c-1.89-.06-3.79-.06-5.68,0L106,26.67a6,6,0,0,0-5.29-1.11A105.34,105.34,0,0,0,74.9,36.24a6,6,0,0,0-3,4.53L69.23,65.22q-2.07,1.94-4,4L40.76,72a6,6,0,0,0-4.53,3,105.65,105.65,0,0,0-10.66,25.77A6,6,0,0,0,26.68,106l15.37,19.2c-.06,1.89-.06,3.79,0,5.68L26.67,150.05a6,6,0,0,0-1.11,5.29A105.34,105.34,0,0,0,36.24,181.1a6,6,0,0,0,4.53,3l24.45,2.71q1.94,2.07,4,4L72,215.24a6,6,0,0,0,3,4.53,105.65,105.65,0,0,0,25.77,10.66,6,6,0,0,0,5.29-1.11L125.16,214c1.89.06,3.79.06,5.68,0l19.21,15.38a6,6,0,0,0,3.75,1.31,6.2,6.2,0,0,0,1.54-.2,105.34,105.34,0,0,0,25.76-10.68,6,6,0,0,0,3-4.53l2.71-24.45q2.07-1.93,4-4l24.46-2.72a6,6,0,0,0,4.53-3,105.49,105.49,0,0,0,10.66-25.77,6,6,0,0,0-1.11-5.29Zm-3.1,41.63-23.64,2.63a6,6,0,0,0-3.82,2,75.14,75.14,0,0,1-6.31,6.31,6,6,0,0,0-2,3.82l-2.63,23.63A94.28,94.28,0,0,1,155.14,218l-18.57-14.86a6,6,0,0,0-3.75-1.31h-.36a78.07,78.07,0,0,1-8.92,0,6,6,0,0,0-4.11,1.3L100.87,218a94.13,94.13,0,0,1-17.34-7.17L80.9,187.21a6,6,0,0,0-2-3.82,75.14,75.14,0,0,1-6.31-6.31,6,6,0,0,0-3.82-2l-23.63-2.63A94.28,94.28,0,0,1,38,155.14l14.86-18.57a6,6,0,0,0,1.3-4.11,78.07,78.07,0,0,1,0-8.92,6,6,0,0,0-1.3-4.11L38,100.87a94.13,94.13,0,0,1,7.17-17.34L68.79,80.9a6,6,0,0,0,3.82-2,75.14,75.14,0,0,1,6.31-6.31,6,6,0,0,0,2-3.82l2.63-23.63A94.28,94.28,0,0,1,100.86,38l18.57,14.86a6,6,0,0,0,4.11,1.3,78.07,78.07,0,0,1,8.92,0,6,6,0,0,0,4.11-1.3L155.13,38a94.13,94.13,0,0,1,17.34,7.17l2.63,23.64a6,6,0,0,0,2,3.82,75.14,75.14,0,0,1,6.31,6.31,6,6,0,0,0,3.82,2l23.63,2.63A94.28,94.28,0,0,1,218,100.86l-14.86,18.57a6,6,0,0,0-1.3,4.11,78.07,78.07,0,0,1,0,8.92,6,6,0,0,0,1.3,4.11L218,155.13A94.13,94.13,0,0,1,210.85,172.47Z"}))],["regular",u.createElement(u.Fragment,null,u.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["thin",u.createElement(u.Fragment,null,u.createElement("path",{d:"M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm83.93-32.49q.13-3.51,0-7l15.83-19.79a4,4,0,0,0,.75-3.53A103.64,103.64,0,0,0,218,75.9a4,4,0,0,0-3-2l-25.19-2.8c-1.58-1.71-3.24-3.37-4.95-4.95L182.07,41a4,4,0,0,0-2-3A104,104,0,0,0,154.82,27.5a4,4,0,0,0-3.53.74L131.51,44.07q-3.51-.14-7,0L104.7,28.24a4,4,0,0,0-3.53-.75A103.64,103.64,0,0,0,75.9,38a4,4,0,0,0-2,3l-2.8,25.19c-1.71,1.58-3.37,3.24-4.95,4.95L41,73.93a4,4,0,0,0-3,2A104,104,0,0,0,27.5,101.18a4,4,0,0,0,.74,3.53l15.83,19.78q-.14,3.51,0,7L28.24,151.3a4,4,0,0,0-.75,3.53A103.64,103.64,0,0,0,38,180.1a4,4,0,0,0,3,2l25.19,2.8c1.58,1.71,3.24,3.37,4.95,4.95l2.8,25.2a4,4,0,0,0,2,3,104,104,0,0,0,25.28,10.46,4,4,0,0,0,3.53-.74l19.78-15.83q3.51.13,7,0l19.79,15.83a4,4,0,0,0,2.5.88,4,4,0,0,0,1-.13A103.64,103.64,0,0,0,180.1,218a4,4,0,0,0,2-3l2.8-25.19c1.71-1.58,3.37-3.24,4.95-4.95l25.2-2.8a4,4,0,0,0,3-2,104,104,0,0,0,10.46-25.28,4,4,0,0,0-.74-3.53Zm.17,42.83-24.67,2.74a4,4,0,0,0-2.55,1.32,76.2,76.2,0,0,1-6.48,6.48,4,4,0,0,0-1.32,2.55l-2.74,24.66a95.45,95.45,0,0,1-19.64,8.15l-19.38-15.51a4,4,0,0,0-2.5-.87h-.24a73.67,73.67,0,0,1-9.16,0,4,4,0,0,0-2.74.87l-19.37,15.5a95.33,95.33,0,0,1-19.65-8.13l-2.74-24.67a4,4,0,0,0-1.32-2.55,76.2,76.2,0,0,1-6.48-6.48,4,4,0,0,0-2.55-1.32l-24.66-2.74a95.45,95.45,0,0,1-8.15-19.64l15.51-19.38a4,4,0,0,0,.87-2.74,77.76,77.76,0,0,1,0-9.16,4,4,0,0,0-.87-2.74l-15.5-19.37A95.33,95.33,0,0,1,43.9,81.66l24.67-2.74a4,4,0,0,0,2.55-1.32,76.2,76.2,0,0,1,6.48-6.48,4,4,0,0,0,1.32-2.55l2.74-24.66a95.45,95.45,0,0,1,19.64-8.15l19.38,15.51a4,4,0,0,0,2.74.87,73.67,73.67,0,0,1,9.16,0,4,4,0,0,0,2.74-.87l19.37-15.5a95.33,95.33,0,0,1,19.65,8.13l2.74,24.67a4,4,0,0,0,1.32,2.55,76.2,76.2,0,0,1,6.48,6.48,4,4,0,0,0,2.55,1.32l24.66,2.74a95.45,95.45,0,0,1,8.15,19.64l-15.51,19.38a4,4,0,0,0-.87,2.74,77.76,77.76,0,0,1,0,9.16,4,4,0,0,0,.87,2.74l15.5,19.37A95.33,95.33,0,0,1,212.1,174.34Z"}))]]);var d=e(c(),1),Yo=new Map([["bold",d.createElement(d.Fragment,null,d.createElement("path",{d:"M124,216a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V40A12,12,0,0,1,48,28h64a12,12,0,0,1,0,24H60V204h52A12,12,0,0,1,124,216Zm108.49-96.49-40-40a12,12,0,0,0-17,17L195,116H112a12,12,0,0,0,0,24h83l-19.52,19.51a12,12,0,0,0,17,17l40-40A12,12,0,0,0,232.49,119.51Z"}))],["duotone",d.createElement(d.Fragment,null,d.createElement("path",{d:"M224,56V200a16,16,0,0,1-16,16H48V40H208A16,16,0,0,1,224,56Z",opacity:"0.2"}),d.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["fill",d.createElement(d.Fragment,null,d.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40A8,8,0,0,0,176,88v32H112a8,8,0,0,0,0,16h64v32a8,8,0,0,0,13.66,5.66l40-40A8,8,0,0,0,229.66,122.34Z"}))],["light",d.createElement(d.Fragment,null,d.createElement("path",{d:"M118,216a6,6,0,0,1-6,6H48a6,6,0,0,1-6-6V40a6,6,0,0,1,6-6h64a6,6,0,0,1,0,12H54V210h58A6,6,0,0,1,118,216Zm110.24-92.24-40-40a6,6,0,0,0-8.48,8.48L209.51,122H112a6,6,0,0,0,0,12h97.51l-29.75,29.76a6,6,0,1,0,8.48,8.48l40-40A6,6,0,0,0,228.24,123.76Z"}))],["regular",d.createElement(d.Fragment,null,d.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["thin",d.createElement(d.Fragment,null,d.createElement("path",{d:"M116,216a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h64a4,4,0,0,1,0,8H52V212h60A4,4,0,0,1,116,216Zm110.83-90.83-40-40a4,4,0,0,0-5.66,5.66L214.34,124H112a4,4,0,0,0,0,8H214.34l-33.17,33.17a4,4,0,0,0,5.66,5.66l40-40A4,4,0,0,0,226.83,125.17Z"}))]]);var g=e(c(),1),$o=new Map([["bold",g.createElement(g.Fragment,null,g.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",g.createElement(g.Fragment,null,g.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),g.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",g.createElement(g.Fragment,null,g.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",g.createElement(g.Fragment,null,g.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",g.createElement(g.Fragment,null,g.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",g.createElement(g.Fragment,null,g.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]]);var R=e(c(),1);var oa=e(c(),1),aa=(0,oa.createContext)({color:"currentColor",size:"1em",weight:"regular",mirrored:!1});var C=R.forwardRef((o,a)=>{let{alt:s,color:r,size:n,weight:L,mirrored:T,children:A,weights:b,...v}=o,{color:E="currentColor",size:N,weight:G="regular",mirrored:x=!1,...O}=R.useContext(aa);return R.createElement("svg",{ref:a,xmlns:"http://www.w3.org/2000/svg",width:n??N,height:n??N,fill:r??E,viewBox:"0 0 256 256",transform:T||x?"scale(-1, 1)":void 0,...O,...v},!!s&&R.createElement("title",null,s),A,b.get(L??G))});C.displayName="IconBase";var X=e(c(),1);var J=X.forwardRef((o,a)=>X.createElement(C,{ref:a,...o,weights:_o}));J.displayName="ArrowSquareOutIcon";var K=e(c(),1);var Q=K.forwardRef((o,a)=>K.createElement(C,{ref:a,...o,weights:Xo}));Q.displayName="CircleNotchIcon";var j=e(c(),1);var Y=j.forwardRef((o,a)=>j.createElement(C,{ref:a,...o,weights:Jo}));Y.displayName="CloudCheckIcon";var $=e(c(),1);var oo=$.forwardRef((o,a)=>$.createElement(C,{ref:a,...o,weights:Ko}));oo.displayName="CloudSlashIcon";var ao=e(c(),1);var ro=ao.forwardRef((o,a)=>ao.createElement(C,{ref:a,...o,weights:Qo}));ro.displayName="CloudXIcon";var so=e(c(),1);var eo=so.forwardRef((o,a)=>so.createElement(C,{ref:a,...o,weights:jo}));eo.displayName="GearIcon";var no=e(c(),1);var io=no.forwardRef((o,a)=>no.createElement(C,{ref:a,...o,weights:Yo}));io.displayName="SignOutIcon";var to=e(c(),1);var co=to.forwardRef((o,a)=>to.createElement(C,{ref:a,...o,weights:$o}));co.displayName="WarningIcon";var ra=e(h()),Ra=o=>(0,ra.jsx)(Q,{size:o.size,className:"plotly-cloud-spin plotly-cloud-gray-icon",weight:"bold"}),lo=Ra;var q=e(h()),Na=({status:o,size:a=16,isButtonIcon:s})=>o==="BUILDING"||o==="STARTING"||o==="unknown"?(0,q.jsx)(lo,{size:a}):o==="RUNNING"?(0,q.jsx)(Y,{size:a,className:"plotly-cloud-green-icon",weight:s?"fill":"duotone"}):o==="new"?(0,q.jsx)(oo,{size:a,className:"plotly-cloud-gray-icon",weight:s?"fill":"duotone"}):(0,q.jsx)(ro,{size:a,className:"plotly-cloud-red-icon",weight:"duotone"}),mo=Na;var S=e(h()),xa=({status:o,onPublish:a,isUpdate:s,publishing:r,onCancel:n,onLogout:L,appUrl:T,sizeError:A=""})=>{let b=()=>{n&&n()},v=()=>{window.open(T,"_blank")},[E,N,G]=(0,po.useMemo)(()=>o==="BUILDING"||o==="STARTING"?["App is building","Wait for your app to finish publishing before publishing again","gray"]:o==="RUNNING"?["App is live","Your app is running in Plotly Cloud.","green"]:["App is stopped","Start your app by publishing again or starting it in the app manager","red"],[o]),[x,O]=(0,po.useMemo)(()=>r?s?["Open Settings in Plotly Cloud","Republishing",""]:[null,"Publishing",""]:s?[(0,S.jsxs)("span",{children:[(0,S.jsx)(eo,{}),"\xA0Open Settings in Plotly Cloud"]}),"Republish"]:[null,"Publish",""],[r,s]),W=(0,po.useMemo)(()=>["BUILDING","STARTING"].includes(o)||!!A,[o,A]);return(0,S.jsxs)("div",{className:"plotly-cloud-status-banner",children:[A&&(0,S.jsx)("div",{className:"plotly-cloud-size-error",children:A}),(0,S.jsxs)("div",{className:`plotly-cloud-status-info plotly-cloud-status-${G}`,children:[(0,S.jsx)(mo,{status:o,size:20}),(0,S.jsxs)("div",{className:"plotly-cloud-status-description",children:[(0,S.jsx)("div",{className:"plotly-cloud-status-title",children:E}),(0,S.jsx)("div",{className:"plotly-cloud-status-text",children:N})]})]}),(0,S.jsxs)("div",{className:"plotly-cloud-button-bar",children:[(0,S.jsx)("div",{style:{flex:1},children:(0,S.jsxs)("button",{disabled:r,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary plotly-cloud-logout",onClick:L,children:[(0,S.jsx)(io,{}),"\xA0Logout"]})}),x?(0,S.jsx)("button",{type:"button",onClick:b,disabled:s?!1:r,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary",children:x}):null,T?(0,S.jsx)("button",{onClick:v,disabled:r,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-secondary",children:(0,S.jsxs)("span",{children:[(0,S.jsx)(J,{}),"\xA0View App"]})}):null,(0,S.jsxs)("button",{type:"button",onClick:a,className:"plotly-cloud-publish-modal-button plotly-cloud-btn-primary",disabled:r||W,children:[r?(0,S.jsx)(lo,{size:12}):null,O]})]})]})},ho=xa;var Io=e(h()),Ua=({error:o})=>(0,Io.jsxs)("div",{className:"plotly-cloud-error",children:[(0,Io.jsx)(co,{className:"plotly-cloud-red-icon",size:24}),"\xA0",o]}),sa=Ua;function ea(o){switch(o){case"BUILDING":return 1e4;case"STARTING":return 7e3;case"CHECKING":case"STOPPING":return 15e3;case"RUNNING":return 18e4;case"FAILING":case"PENDING_ENTITLEMENTS":case"BUILD_COMPLETED":case"BUILD_FAILED":case"STOPPED":case"DEPLOYED_BY_OTHER_PLATFORM":return 6e4;default:return 6e4}}var w=e(h()),fo="cloud",va=()=>{let{popup:o,setPopup:a}=window.dash_component_api.devtool.useDevtool(),s=window.dash_component_api.devtool.useDevtoolMenuButtonClassName(fo),[r,n]=(0,t.useState)(""),[L,T]=(0,t.useState)(""),[A,b]=(0,t.useState)("initialize"),[v,E]=(0,t.useState)(!1),[N,G]=(0,t.useState)(""),[x,O]=(0,t.useState)(""),[W,V]=(0,t.useState)(!1),[na,uo]=(0,t.useState)(!1),[wo,ia]=(0,t.useState)(""),[ta,Lo]=(0,t.useState)(""),[Ao,bo]=(0,t.useState)(""),[F,H]=(0,t.useState)("unknown"),[Po,ko]=(0,t.useState)(0),[ca,la]=(0,t.useState)(1),[To,yo]=(0,t.useState)(-1),z=(0,t.useRef)(""),B=(0,t.useRef)(""),y=(0,t.useMemo)(()=>Vo("/"),[]),Fo=(0,t.useMemo)(()=>o===fo,[o]),go=()=>{a("")},ma=()=>{a(o===fo?"":fo)},Bo=()=>{y.logout().then(()=>{b("initialize")})},Do=()=>{E(!0),y.authenticate().then(i=>{i.error?n(i.error):(b("auth_poll"),G(i.result.user_code),O(i.result.verification_uri_complete),z.current=i.result.device_code,y.wait_auth().then(()=>{window.open(i.result.verification_uri_complete,"_blank"),yo(setTimeout(()=>{y.auth_poll({device_code:z.current}).then(Ho)},8e3))}))})},Ho=i=>{if(i.error)n(i.error);else{if(i.result.success){z.current="",B.current?(H("unknown"),b("update_app"),y.status({app_id:B.current}).then(U=>{H(U.result.status)})):b("enter_name");return}if(i.result.try_again){Do();return}let P=ca||1;i.result.delay&&(P=i.result.delay,la(P)),yo(setTimeout(()=>{y.auth_poll({device_code:z.current}).then(Ho)},1e3+P*1e3))}},pa=()=>{setTimeout(Do,2e3)};(0,t.useEffect)(()=>{A==="initialize"&&y.initialize().then(i=>{let{result:P,error:U}=i;U?n(U):(ia(P.app_path),Lo(P.app_name),H(P.status),bo(P.app_url),T(P.size_error||""),P.app_id&&(B.current=P.app_id),P?.authenticated?P.status==="new"?b("enter_name"):b("update_app"):b("sign_in"))})},[A,Fo]);let Ia=()=>{y.status({app_id:B.current}).then(fa)},fa=i=>{if(i.error){n(i.error);return}H(i.result.status),ko(Date.now()),i.result.status==="RUNNING"?(V(!1),uo(!0),b("update_app")):["BUILDING","STARTING"].includes(i.result.status)||(V(!1),b("update_app"))},Mo=i=>{if(i.error){n(i.error);return}b("status_poll"),B.current=i.result.app_id,bo(i.result.app_url),H("BUILDING"),ko(0)},ua=i=>{Lo(i),V(!0),uo(!1),H("BUILDING"),y.publish({app_path:wo,app_name:i}).then(Mo)},Ro=()=>{V(!0),uo(!0),H("BUILDING"),y.publish({app_id:B.current,app_path:wo}).then(Mo)};(0,t.useEffect)(()=>{if(!B.current||F==="unknown"||F==="new")return;let i=setInterval(()=>{let U=Date.now()-Po,da=ea(F);U>=da&&Ia()},1e3);return()=>{clearInterval(i)}},[B.current,F,Po]),(0,t.useEffect)(()=>()=>{To>0&&clearTimeout(To)}),(0,t.useEffect)(()=>{r&&F!=="error"&&H("error")},[r,F]);let No=()=>{window.open(`https://cloud.plotly.com/app/${B.current}/settings`,"_blank")};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)("button",{className:s,onClick:ma,children:[(0,w.jsx)(mo,{status:F,isButtonIcon:!0}),"\xA0Plotly Cloud"]}),Fo?(0,w.jsx)(Oo,{title:"Plotly Cloud",onClose:go,children:r?(0,w.jsx)(sa,{error:r}):(()=>{switch(A){case"authenticate":case"auth_poll":case"sign_in":return(0,w.jsx)(Wo,{onSignIn:pa,waiting:v,userCode:N,verificationUrlComplete:x});case"enter_name":return(0,w.jsx)(Zo,{onPublish:ua,onCancel:go,initialAppName:ta,sizeError:L});case"update_app":return(0,w.jsx)(ho,{onPublish:Ro,status:F,isUpdate:!0,onCancel:No,appUrl:Ao,onLogout:Bo,sizeError:L});case"status_poll":case"publish":return(0,w.jsx)(ho,{publishing:W,onPublish:Ro,status:F,onCancel:W?No:go,isUpdate:na,appUrl:Ao,onLogout:Bo,sizeError:L});default:return(0,w.jsx)(w.Fragment,{})}})()},"publish-modal"):null]})},Co=va;typeof window<"u"&&(window.plotly_cloud_publish_component={PlotlyCloudPublishComponent:Co});return Aa(Ea);})();
|
|
3
|
-
/*! Bundled license information:
|
|
4
|
-
|
|
5
|
-
react/cjs/react-jsx-runtime.production.min.js:
|
|
6
|
-
(**
|
|
7
|
-
* @license React
|
|
8
|
-
* react-jsx-runtime.production.min.js
|
|
9
|
-
*
|
|
10
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
11
|
-
*
|
|
12
|
-
* This source code is licensed under the MIT license found in the
|
|
13
|
-
* LICENSE file in the root directory of this source tree.
|
|
14
|
-
*)
|
|
15
|
-
*/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|