From ab35c241c226b713497f8275114ee7a595fa2170 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Fri, 3 Mar 2023 15:25:08 -0500 Subject: [PATCH 01/24] protect invocations against black autoformatting --- invokeai/app/invocations/baseinvocation.py | 4 +- invokeai/app/invocations/cv.py | 7 +-- invokeai/app/invocations/image.py | 73 ++++++++++------------ 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/invokeai/app/invocations/baseinvocation.py b/invokeai/app/invocations/baseinvocation.py index 82b6743c27..72fe39ed0b 100644 --- a/invokeai/app/invocations/baseinvocation.py +++ b/invokeai/app/invocations/baseinvocation.py @@ -72,5 +72,7 @@ class BaseInvocation(ABC, BaseModel): def invoke(self, context: InvocationContext) -> BaseInvocationOutput: """Invoke with provided context and return outputs.""" pass - + + #fmt: off id: str = Field(description="The id of this node. Must be unique among all nodes.") + #fmt: on diff --git a/invokeai/app/invocations/cv.py b/invokeai/app/invocations/cv.py index ea39a8d8cd..6a2788131b 100644 --- a/invokeai/app/invocations/cv.py +++ b/invokeai/app/invocations/cv.py @@ -14,14 +14,13 @@ from .image import ImageField, ImageOutput class CvInpaintInvocation(BaseInvocation): """Simple inpaint using opencv.""" - + #fmt: off type: Literal["cv_inpaint"] = "cv_inpaint" # Inputs image: ImageField = Field(default=None, description="The image to inpaint") - mask: ImageField = Field( - default=None, description="The mask to use when inpainting" - ) + mask: ImageField = Field(default=None, description="The mask to use when inpainting") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( diff --git a/invokeai/app/invocations/image.py b/invokeai/app/invocations/image.py index 29e1c9e576..7330cd73be 100644 --- a/invokeai/app/invocations/image.py +++ b/invokeai/app/invocations/image.py @@ -23,29 +23,28 @@ class ImageField(BaseModel): class ImageOutput(BaseInvocationOutput): """Base class for invocations that output an image""" - + #fmt: off type: Literal["image"] = "image" - - image: ImageField = Field(default=None, description="The output image") - + image: ImageField = Field(default=None, description="The output image") + #fmt: on class MaskOutput(BaseInvocationOutput): """Base class for invocations that output a mask""" - + #fmt: off type: Literal["mask"] = "mask" - - mask: ImageField = Field(default=None, description="The output mask") - + mask: ImageField = Field(default=None, description="The output mask") + #fomt: on # TODO: this isn't really necessary anymore class LoadImageInvocation(BaseInvocation): """Load an image from a filename and provide it as output.""" - + #fmt: off type: Literal["load_image"] = "load_image" # Inputs image_type: ImageType = Field(description="The type of the image") - image_name: str = Field(description="The name of the image") + image_name: str = Field(description="The name of the image") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: return ImageOutput( @@ -79,17 +78,16 @@ class ShowImageInvocation(BaseInvocation): class CropImageInvocation(BaseInvocation): """Crops an image to a specified box. The box can be outside of the image.""" - + #fmt: off type: Literal["crop"] = "crop" # Inputs image: ImageField = Field(default=None, description="The image to crop") - x: int = Field(default=0, description="The left x coordinate of the crop rectangle") - y: int = Field(default=0, description="The top y coordinate of the crop rectangle") - width: int = Field(default=512, gt=0, description="The width of the crop rectangle") - height: int = Field( - default=512, gt=0, description="The height of the crop rectangle" - ) + x: int = Field(default=0, description="The left x coordinate of the crop rectangle") + y: int = Field(default=0, description="The top y coordinate of the crop rectangle") + width: int = Field(default=512, gt=0, description="The width of the crop rectangle") + height: int = Field(default=512, gt=0, description="The height of the crop rectangle") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( @@ -113,21 +111,16 @@ class CropImageInvocation(BaseInvocation): class PasteImageInvocation(BaseInvocation): """Pastes an image into another image.""" - + #fmt: off type: Literal["paste"] = "paste" # Inputs - base_image: ImageField = Field(default=None, description="The base image") - image: ImageField = Field(default=None, description="The image to paste") - mask: Optional[ImageField] = Field( - default=None, description="The mask to use when pasting" - ) - x: int = Field( - default=0, description="The left x coordinate at which to paste the image" - ) - y: int = Field( - default=0, description="The top y coordinate at which to paste the image" - ) + base_image: ImageField = Field(default=None, description="The base image") + image: ImageField = Field(default=None, description="The image to paste") + mask: Optional[ImageField] = Field(default=None, description="The mask to use when pasting") + x: int = Field(default=0, description="The left x coordinate at which to paste the image") + y: int = Field(default=0, description="The top y coordinate at which to paste the image") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: base_image = context.services.images.get( @@ -168,14 +161,13 @@ class PasteImageInvocation(BaseInvocation): class MaskFromAlphaInvocation(BaseInvocation): """Extracts the alpha channel of an image as a mask.""" - + #fmt: off type: Literal["tomask"] = "tomask" # Inputs - image: ImageField = Field( - default=None, description="The image to create the mask from" - ) - invert: bool = Field(default=False, description="Whether or not to invert the mask") + image: ImageField = Field(default=None, description="The image to create the mask from") + invert: bool = Field(default=False, description="Whether or not to invert the mask") + #fmt: on def invoke(self, context: InvocationContext) -> MaskOutput: image = context.services.images.get( @@ -197,15 +189,15 @@ class MaskFromAlphaInvocation(BaseInvocation): class BlurInvocation(BaseInvocation): """Blurs an image""" + #fmt: off type: Literal["blur"] = "blur" # Inputs image: ImageField = Field(default=None, description="The image to blur") - radius: float = Field(default=8.0, ge=0, description="The blur radius") - blur_type: Literal["gaussian", "box"] = Field( - default="gaussian", description="The type of blur" - ) - + radius: float = Field(default=8.0, ge=0, description="The blur radius") + blur_type: Literal["gaussian", "box"] = Field(default="gaussian", description="The type of blur") + #fmt: on + def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( self.image.image_type, self.image.image_name @@ -230,13 +222,14 @@ class BlurInvocation(BaseInvocation): class LerpInvocation(BaseInvocation): """Linear interpolation of all pixels of an image""" - + #fmt: off type: Literal["lerp"] = "lerp" # Inputs image: ImageField = Field(default=None, description="The image to lerp") min: int = Field(default=0, ge=0, le=255, description="The minimum output value") max: int = Field(default=255, ge=0, le=255, description="The maximum output value") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( From 1bfdd54810a147a46c6e3ee32bb33da0e78da39b Mon Sep 17 00:00:00 2001 From: mickr777 <115216705+mickr777@users.noreply.github.com> Date: Sat, 4 Mar 2023 11:23:21 +1100 Subject: [PATCH 02/24] Update txt2img2img.py --- invokeai/backend/generator/txt2img2img.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/invokeai/backend/generator/txt2img2img.py b/invokeai/backend/generator/txt2img2img.py index 76573b689d..f68e921b45 100644 --- a/invokeai/backend/generator/txt2img2img.py +++ b/invokeai/backend/generator/txt2img2img.py @@ -8,9 +8,9 @@ from typing import Callable, Optional import torch from diffusers.utils.logging import get_verbosity, set_verbosity, set_verbosity_error -from ..models import PostprocessingSettings +from ..stable_diffusion import PostprocessingSettings from .base import Generator -from .diffusers_pipeline import ( +from ..stable_diffusion.diffusers_pipeline import ( ConditioningData, StableDiffusionGeneratorPipeline, trim_to_multiple_of, From bdc7b8b75a7c7a3173f794516e775a750cd85f12 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Fri, 3 Mar 2023 20:19:37 -0500 Subject: [PATCH 03/24] fix broken scripts This PR fixes the following scripts: 1) Scripts that can be executed within the repo's scripts directory. Note that these are for development testing and are not intended to be exposed to the user. configure_invokeai.py - configuration dream.py - the legacy CLI images2prompt.py - legacy "dream prompt" retriever invoke-new.py - new nodes-based CLI invoke.py - the legacy CLI under another name make_models_markdown_table.py - a utility used during the release/doc process pypi_helper.py - another utility used during the release process sd-metadata.py - retrieve JSON-formatted metadata from a PNG file 2) Scripts that are installed by pip install. They get placed into the venv's PATH and are intended to be the official entry points: invokeai-node-cli - new nodes-based CLI invokeai-node-web - new nodes-based web server invokeai - legacy CLI invokeai-configure - install time configuration script invokeai-merge - model merging script invokeai-ti - textual inversion script invokeai-model-install - model installer invokeai-update - update script invokeai-metadata" - retrieve JSON-formatted metadata from PNG files --- invokeai/app/api/dependencies.py | 2 +- invokeai/app/api_app.py | 2 +- invokeai/app/cli_app.py | 2 +- invokeai/app/services/generate_initializer.py | 2 +- invokeai/backend/__init__.py | 2 + invokeai/frontend/CLI/sd_metadata.py | 30 + pyproject.toml | 5 +- scripts/configure_invokeai.py | 4 +- scripts/dream.py | 6 +- scripts/images2prompt.py | 2 +- scripts/invoke-new.py | 6 +- scripts/invoke.py | 5 +- scripts/legacy_api.py | 681 ------------------ scripts/pypi_helper.py | 2 + scripts/sd-metadata.py | 2 +- 15 files changed, 56 insertions(+), 697 deletions(-) create mode 100644 invokeai/frontend/CLI/sd_metadata.py mode change 100644 => 100755 scripts/configure_invokeai.py mode change 100644 => 100755 scripts/dream.py mode change 100644 => 100755 scripts/invoke-new.py delete mode 100755 scripts/legacy_api.py mode change 100644 => 100755 scripts/pypi_helper.py diff --git a/invokeai/app/api/dependencies.py b/invokeai/app/api/dependencies.py index 5ff8f9eef5..271a2e3be3 100644 --- a/invokeai/app/api/dependencies.py +++ b/invokeai/app/api/dependencies.py @@ -3,7 +3,7 @@ import os from argparse import Namespace -from ...globals import Globals +from ...backend import Globals from ..services.generate_initializer import get_generate from ..services.graph import GraphExecutionState from ..services.image_storage import DiskImageStorage diff --git a/invokeai/app/api_app.py b/invokeai/app/api_app.py index 79ba126f8e..fb64ca3b7a 100644 --- a/invokeai/app/api_app.py +++ b/invokeai/app/api_app.py @@ -13,7 +13,7 @@ from fastapi_events.handlers.local import local_handler from fastapi_events.middleware import EventHandlerASGIMiddleware from pydantic.schema import schema -from ..args import Args +from ..backend import Args from .api.dependencies import ApiDependencies from .api.routers import images, sessions from .api.sockets import SocketIO diff --git a/invokeai/app/cli_app.py b/invokeai/app/cli_app.py index 178efc0274..2f20cfde58 100644 --- a/invokeai/app/cli_app.py +++ b/invokeai/app/cli_app.py @@ -18,7 +18,7 @@ from typing import ( from pydantic import BaseModel from pydantic.fields import Field -from ..args import Args +from ..backend import Args from .invocations import * from .invocations.baseinvocation import BaseInvocation from .invocations.image import ImageField diff --git a/invokeai/app/services/generate_initializer.py b/invokeai/app/services/generate_initializer.py index 4a1ce3ea16..9801909742 100644 --- a/invokeai/app/services/generate_initializer.py +++ b/invokeai/app/services/generate_initializer.py @@ -6,7 +6,7 @@ from argparse import Namespace import invokeai.version from invokeai.backend import Generate, ModelManager -from ...globals import Globals +from ...backend import Globals # TODO: most of this code should be split into individual services as the Generate.py code is deprecated diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index 9062fb7d52..06089369c2 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -3,3 +3,5 @@ Initialization file for invokeai.backend """ from .generate import Generate from .model_management import ModelManager +from .args import Args +from .globals import Globals diff --git a/invokeai/frontend/CLI/sd_metadata.py b/invokeai/frontend/CLI/sd_metadata.py new file mode 100644 index 0000000000..c26907a18e --- /dev/null +++ b/invokeai/frontend/CLI/sd_metadata.py @@ -0,0 +1,30 @@ +''' +This is a modularized version of the sd-metadata.py script, +which retrieves and prints the metadata from a series of generated png files. +''' +import sys +import json +from invokeai.backend.image_util import retrieve_metadata + + +def print_metadata(): + if len(sys.argv) < 2: + print("Usage: file2prompt.py ...") + print("This script opens up the indicated invoke.py-generated PNG file(s) and prints out their metadata.") + exit(-1) + + filenames = sys.argv[1:] + for f in filenames: + try: + metadata = retrieve_metadata(f) + print(f'{f}:\n',json.dumps(metadata['sd-metadata'], indent=4)) + except FileNotFoundError: + sys.stderr.write(f'{f} not found\n') + continue + except PermissionError: + sys.stderr.write(f'{f} could not be opened due to inadequate permissions\n') + continue + +if __name__== '__main__': + print_metadata() + diff --git a/pyproject.toml b/pyproject.toml index ed7c6563dc..562a1bb398 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -104,7 +104,7 @@ dependencies = [ [project.scripts] # legacy entrypoints; provided for backwards compatibility -"invoke.py" = "invokeai.frontend.CLI:command_line_interface" +"invoke.py" = "invokeai.frontend.CLI:invokeai_command_line_interface" "configure_invokeai.py" = "invokeai.frontend.install:invokeai_configure" "textual_inversion.py" = "invokeai.frontend.training:invokeai_textual_inversion" @@ -115,6 +115,9 @@ dependencies = [ "invokeai-ti" = "invokeai.frontend.training:invokeai_textual_inversion" "invokeai-model-install" = "invokeai.frontend.install:invokeai_model_install" "invokeai-update" = "invokeai.frontend.config:invokeai_update" +"invokeai-metadata" = "invokeai.frontend.CLI.sd_metadata:print_metadata" +"invokeai-node-cli" = "invokeai.app.cli_app:invoke_cli" +"invokeai-node-web" = "invokeai.app.api_app:invoke_api" [project.urls] "Homepage" = "https://invoke-ai.github.io/InvokeAI/" diff --git a/scripts/configure_invokeai.py b/scripts/configure_invokeai.py old mode 100644 new mode 100755 index 025fb5a433..0226fa1c2a --- a/scripts/configure_invokeai.py +++ b/scripts/configure_invokeai.py @@ -2,8 +2,8 @@ # Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein) import warnings -from ldm.invoke.config import invokeai_configure +from invokeai.frontend.install import invokeai_configure as configure if __name__ == '__main__': warnings.warn("configure_invokeai.py is deprecated, running 'invokeai-configure'...", DeprecationWarning) - invokeai_configure.main() + configure() diff --git a/scripts/dream.py b/scripts/dream.py old mode 100644 new mode 100755 index 148c0c0c0d..66c7600c6f --- a/scripts/dream.py +++ b/scripts/dream.py @@ -1,10 +1,10 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein) import warnings -import ldm.invoke.CLI +from invokeai.frontend.CLI import invokeai_command_line_interface as main warnings.warn("dream.py is being deprecated, please run invoke.py for the " "new UI/API or legacy_api.py for the old API", DeprecationWarning) -ldm.invoke.CLI.main() +main() diff --git a/scripts/images2prompt.py b/scripts/images2prompt.py index 4999fe1df6..625be83482 100755 --- a/scripts/images2prompt.py +++ b/scripts/images2prompt.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python '''This script reads the "Invoke" Stable Diffusion prompt embedded in files generated by invoke.py''' import sys diff --git a/scripts/invoke-new.py b/scripts/invoke-new.py old mode 100644 new mode 100755 index 2bc5330a5c..a47d6238bd --- a/scripts/invoke-new.py +++ b/scripts/invoke-new.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + # Copyright (c) 2022 Kyle Schouviller (https://github.com/kyle0654) import os @@ -8,11 +10,11 @@ def main(): os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) if '--web' in sys.argv: - from ldm.invoke.app.api_app import invoke_api + from invokeai.app.api_app import invoke_api invoke_api() else: # TODO: Parse some top-level args here. - from ldm.invoke.app.cli_app import invoke_cli + from invokeai.app.cli_app import invoke_cli invoke_cli() diff --git a/scripts/invoke.py b/scripts/invoke.py index 7431300f15..9cd4b5a0a6 100755 --- a/scripts/invoke.py +++ b/scripts/invoke.py @@ -1,4 +1,5 @@ #!/usr/bin/env python -import ldm.invoke.CLI -ldm.invoke.CLI.main() +from invokeai.frontend.CLI import invokeai_command_line_interface as main +main() + diff --git a/scripts/legacy_api.py b/scripts/legacy_api.py deleted file mode 100755 index ab6880d327..0000000000 --- a/scripts/legacy_api.py +++ /dev/null @@ -1,681 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein) - -import argparse -import shlex -import os -import re -import sys -import copy -import warnings -import time -import ldm.invoke.readline -from ldm.invoke.pngwriter import PngWriter, PromptFormatter -from ldm.invoke.server_legacy import DreamServer, ThreadingDreamServer -from ldm.invoke.image_util import make_grid -from omegaconf import OmegaConf - -# Placeholder to be replaced with proper class that tracks the -# outputs and associates with the prompt that generated them. -# Just want to get the formatting look right for now. -output_cntr = 0 - - -def main(): - """Initialize command-line parsers and the diffusion model""" - arg_parser = create_argv_parser() - opt = arg_parser.parse_args() - - if opt.laion400m: - print('--laion400m flag has been deprecated. Please use --model laion400m instead.') - sys.exit(-1) - if opt.weights != 'model': - print('--weights argument has been deprecated. Please configure ./configs/models.yaml, and call it using --model instead.') - sys.exit(-1) - - try: - models = OmegaConf.load(opt.config) - width = models[opt.model].width - height = models[opt.model].height - config = models[opt.model].config - weights = models[opt.model].weights - except (FileNotFoundError, IOError, KeyError) as e: - print(f'{e}. Aborting.') - sys.exit(-1) - - print('* Initializing, be patient...\n') - sys.path.append('.') - from pytorch_lightning import logging - from ldm.generate import Generate - - # these two lines prevent a horrible warning message from appearing - # when the frozen CLIP tokenizer is imported - import transformers - - transformers.logging.set_verbosity_error() - - # creating a simple text2image object with a handful of - # defaults passed on the command line. - # additional parameters will be added (or overriden) during - # the user input loop - t2i = Generate( - # width=width, - # height=height, - sampler_name=opt.sampler_name, - weights=weights, - full_precision=opt.full_precision, - config=config, - # grid=opt.grid, - # this is solely for recreating the prompt - # seamless=opt.seamless, - embedding_path=opt.embedding_path, - # device_type=opt.device, - # ignore_ctrl_c=opt.infile is None, - ) - - # make sure the output directory exists - if not os.path.exists(opt.outdir): - os.makedirs(opt.outdir) - - # gets rid of annoying messages about random seed - logging.getLogger('pytorch_lightning').setLevel(logging.ERROR) - - # load the infile as a list of lines - infile = None - if opt.infile: - try: - if os.path.isfile(opt.infile): - infile = open(opt.infile, 'r', encoding='utf-8') - elif opt.infile == '-': # stdin - infile = sys.stdin - else: - raise FileNotFoundError(f'{opt.infile} not found.') - except (FileNotFoundError, IOError) as e: - print(f'{e}. Aborting.') - sys.exit(-1) - - if opt.seamless: - print(">> changed to seamless tiling mode") - - # preload the model - t2i.load_model() - - if not infile: - print( - "\n* Initialization done! Awaiting your command (-h for help, 'q' to quit)" - ) - - cmd_parser = create_cmd_parser() - if opt.web: - dream_server_loop(t2i, opt.host, opt.port, opt.outdir) - else: - main_loop(t2i, opt.outdir, opt.prompt_as_dir, cmd_parser, infile) - - -def main_loop(t2i, outdir, prompt_as_dir, parser, infile): - """prompt/read/execute loop""" - done = False - path_filter = re.compile(r'[<>:"/\\|?*]') - last_results = list() - - # os.pathconf is not available on Windows - if hasattr(os, 'pathconf'): - path_max = os.pathconf(outdir, 'PC_PATH_MAX') - name_max = os.pathconf(outdir, 'PC_NAME_MAX') - else: - path_max = 260 - name_max = 255 - - while not done: - try: - command = get_next_command(infile) - except EOFError: - done = True - continue - except KeyboardInterrupt: - done = True - continue - - # skip empty lines - if not command.strip(): - continue - - if command.startswith(('#', '//')): - continue - - # before splitting, escape single quotes so as not to mess - # up the parser - command = command.replace("'", "\\'") - - try: - elements = shlex.split(command) - except ValueError as e: - print(str(e)) - continue - - if elements[0] == 'q': - done = True - break - - if elements[0].startswith( - '!dream' - ): # in case a stored prompt still contains the !dream command - elements.pop(0) - - # rearrange the arguments to mimic how it works in the Dream bot. - switches = [''] - switches_started = False - - for el in elements: - if el[0] == '-' and not switches_started: - switches_started = True - if switches_started: - switches.append(el) - else: - switches[0] += el - switches[0] += ' ' - switches[0] = switches[0][: len(switches[0]) - 1] - - try: - opt = parser.parse_args(switches) - except SystemExit: - parser.print_help() - continue - if len(opt.prompt) == 0: - print('Try again with a prompt!') - continue - # retrieve previous value! - if opt.init_img is not None and re.match('^-\\d+$', opt.init_img): - try: - opt.init_img = last_results[int(opt.init_img)][0] - print(f'>> Reusing previous image {opt.init_img}') - except IndexError: - print( - f'>> No previous initial image at position {opt.init_img} found') - opt.init_img = None - continue - - if opt.seed is not None and opt.seed < 0: # retrieve previous value! - try: - opt.seed = last_results[opt.seed][1] - print(f'>> Reusing previous seed {opt.seed}') - except IndexError: - print(f'>> No previous seed at position {opt.seed} found') - opt.seed = None - continue - - do_grid = opt.grid or t2i.grid - - if opt.with_variations is not None: - # shotgun parsing, woo - parts = [] - broken = False # python doesn't have labeled loops... - for part in opt.with_variations.split(','): - seed_and_weight = part.split(':') - if len(seed_and_weight) != 2: - print(f'could not parse with_variation part "{part}"') - broken = True - break - try: - seed = int(seed_and_weight[0]) - weight = float(seed_and_weight[1]) - except ValueError: - print(f'could not parse with_variation part "{part}"') - broken = True - break - parts.append([seed, weight]) - if broken: - continue - if len(parts) > 0: - opt.with_variations = parts - else: - opt.with_variations = None - - if opt.outdir: - if not os.path.exists(opt.outdir): - os.makedirs(opt.outdir) - current_outdir = opt.outdir - elif prompt_as_dir: - # sanitize the prompt to a valid folder name - subdir = path_filter.sub('_', opt.prompt)[:name_max].rstrip(' .') - - # truncate path to maximum allowed length - # 27 is the length of '######.##########.##.png', plus two separators and a NUL - subdir = subdir[:(path_max - 27 - len(os.path.abspath(outdir)))] - current_outdir = os.path.join(outdir, subdir) - - print('Writing files to directory: "' + current_outdir + '"') - - # make sure the output directory exists - if not os.path.exists(current_outdir): - os.makedirs(current_outdir) - else: - current_outdir = outdir - - # Here is where the images are actually generated! - last_results = [] - try: - file_writer = PngWriter(current_outdir) - prefix = file_writer.unique_prefix() - results = [] # list of filename, prompt pairs - grid_images = dict() # seed -> Image, only used if `do_grid` - - def image_writer(image, seed, upscaled=False): - path = None - if do_grid: - grid_images[seed] = image - else: - if upscaled and opt.save_original: - filename = f'{prefix}.{seed}.postprocessed.png' - else: - filename = f'{prefix}.{seed}.png' - if opt.variation_amount > 0: - iter_opt = argparse.Namespace(**vars(opt)) # copy - this_variation = [[seed, opt.variation_amount]] - if opt.with_variations is None: - iter_opt.with_variations = this_variation - else: - iter_opt.with_variations = opt.with_variations + this_variation - iter_opt.variation_amount = 0 - normalized_prompt = PromptFormatter( - t2i, iter_opt).normalize_prompt() - metadata_prompt = f'{normalized_prompt} -S{iter_opt.seed}' - elif opt.with_variations is not None: - normalized_prompt = PromptFormatter( - t2i, opt).normalize_prompt() - # use the original seed - the per-iteration value is the last variation-seed - metadata_prompt = f'{normalized_prompt} -S{opt.seed}' - else: - normalized_prompt = PromptFormatter( - t2i, opt).normalize_prompt() - metadata_prompt = f'{normalized_prompt} -S{seed}' - path = file_writer.save_image_and_prompt_to_png( - image, metadata_prompt, filename) - if (not upscaled) or opt.save_original: - # only append to results if we didn't overwrite an earlier output - results.append([path, metadata_prompt]) - last_results.append([path, seed]) - - t2i.prompt2image(image_callback=image_writer, **vars(opt)) - - if do_grid and len(grid_images) > 0: - grid_img = make_grid(list(grid_images.values())) - grid_seeds = list(grid_images.keys()) - first_seed = last_results[0][1] - filename = f'{prefix}.{first_seed}.png' - # TODO better metadata for grid images - normalized_prompt = PromptFormatter( - t2i, opt).normalize_prompt() - metadata_prompt = f'{normalized_prompt} -S{first_seed} --grid -n{len(grid_images)} # {grid_seeds}' - path = file_writer.save_image_and_prompt_to_png( - grid_img, metadata_prompt, filename - ) - results = [[path, metadata_prompt]] - - except AssertionError as e: - print(e) - continue - - except OSError as e: - print(e) - continue - - print('Outputs:') - log_path = os.path.join(current_outdir, 'dream_log.txt') - write_log_message(results, log_path) - print() - - print('goodbye!') - - -def get_next_command(infile=None) -> str: # command string - if infile is None: - command = input('dream> ') - else: - command = infile.readline() - if not command: - raise EOFError - else: - command = command.strip() - print(f'#{command}') - return command - - -def dream_server_loop(t2i, host, port, outdir): - print('\n* --web was specified, starting web server...') - # Change working directory to the stable-diffusion directory - os.chdir( - os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) - ) - - # Start server - DreamServer.model = t2i - DreamServer.outdir = outdir - dream_server = ThreadingDreamServer((host, port)) - print(">> Started Stable Diffusion dream server!") - if host == '0.0.0.0': - print( - f"Point your browser at http://localhost:{port} or use the host's DNS name or IP address.") - else: - print(">> Default host address now 127.0.0.1 (localhost). Use --host 0.0.0.0 to bind any address.") - print(f">> Point your browser at http://{host}:{port}.") - - try: - dream_server.serve_forever() - except KeyboardInterrupt: - pass - - dream_server.server_close() - - -def write_log_message(results, log_path): - """logs the name of the output image, prompt, and prompt args to the terminal and log file""" - global output_cntr - log_lines = [f'{path}: {prompt}\n' for path, prompt in results] - for l in log_lines: - output_cntr += 1 - print(f'[{output_cntr}] {l}',end='') - - - with open(log_path, 'a', encoding='utf-8') as file: - file.writelines(log_lines) - - -SAMPLER_CHOICES = [ - 'ddim', - 'k_dpm_2_a', - 'k_dpm_2', - 'k_dpmpp_2_a', - 'k_dpmpp_2', - 'k_euler_a', - 'k_euler', - 'k_heun', - 'k_lms', - 'plms', -] - - -def create_argv_parser(): - parser = argparse.ArgumentParser( - description="""Generate images using Stable Diffusion. - Use --web to launch the web interface. - Use --from_file to load prompts from a file path or standard input ("-"). - Otherwise you will be dropped into an interactive command prompt (type -h for help.) - Other command-line arguments are defaults that can usually be overridden - prompt the command prompt. -""" - ) - parser.add_argument( - '--laion400m', - '--latent_diffusion', - '-l', - dest='laion400m', - action='store_true', - help='Fallback to the latent diffusion (laion400m) weights and config', - ) - parser.add_argument( - '--from_file', - dest='infile', - type=str, - help='If specified, load prompts from this file', - ) - parser.add_argument( - '-n', - '--iterations', - type=int, - default=1, - help='Number of images to generate', - ) - parser.add_argument( - '-F', - '--full_precision', - dest='full_precision', - action='store_true', - help='Use more memory-intensive full precision math for calculations', - ) - parser.add_argument( - '-g', - '--grid', - action='store_true', - help='Generate a grid instead of individual images', - ) - parser.add_argument( - '-A', - '-m', - '--sampler', - dest='sampler_name', - choices=SAMPLER_CHOICES, - metavar='SAMPLER_NAME', - default='k_lms', - help=f'Set the initial sampler. Default: k_lms. Supported samplers: {", ".join(SAMPLER_CHOICES)}', - ) - parser.add_argument( - '--outdir', - '-o', - type=str, - default='outputs/img-samples', - help='Directory to save generated images and a log of prompts and seeds. Default: outputs/img-samples', - ) - parser.add_argument( - '--seamless', - action='store_true', - help='Change the model to seamless tiling (circular) mode', - ) - parser.add_argument( - '--embedding_path', - type=str, - help='Path to a pre-trained embedding manager checkpoint - can only be set on command line', - ) - parser.add_argument( - '--prompt_as_dir', - '-p', - action='store_true', - help='Place images in subdirectories named after the prompt.', - ) - # GFPGAN related args - parser.add_argument( - '--gfpgan_bg_upsampler', - type=str, - default='realesrgan', - help='Background upsampler. Default: realesrgan. Options: realesrgan, none.', - - ) - parser.add_argument( - '--gfpgan_bg_tile', - type=int, - default=400, - help='Tile size for background sampler, 0 for no tile during testing. Default: 400.', - ) - parser.add_argument( - '--gfpgan_model_path', - type=str, - default='./models/gfpgan/GFPGANv1.4.pth', - help='Indicates the path to the GFPGAN model.', - ) - parser.add_argument( - '--web', - dest='web', - action='store_true', - help='Start in web server mode.', - ) - parser.add_argument( - '--host', - type=str, - default='127.0.0.1', - help='Web server: Host or IP to listen on. Set to 0.0.0.0 to accept traffic from other devices on your network.' - ) - parser.add_argument( - '--port', - type=int, - default='9090', - help='Web server: Port to listen on' - ) - parser.add_argument( - '--weights', - default='model', - help='Indicates the Stable Diffusion model to use.', - ) - parser.add_argument( - '--device', - '-d', - type=str, - default='cuda', - help="device to run stable diffusion on. defaults to cuda `torch.cuda.current_device()` if available" - ) - parser.add_argument( - '--model', - default='stable-diffusion-1.4', - help='Indicates which diffusion model to load. (currently "stable-diffusion-1.4" (default) or "laion400m")', - ) - parser.add_argument( - '--config', - default='configs/models.yaml', - help='Path to configuration file for alternate models.', - ) - return parser - - -def create_cmd_parser(): - parser = argparse.ArgumentParser( - description='Example: dream> a fantastic alien landscape -W1024 -H960 -s100 -n12' - ) - parser.add_argument('prompt') - parser.add_argument('-s', '--steps', type=int, help='Number of steps') - parser.add_argument( - '-S', - '--seed', - type=int, - help='Image seed; a +ve integer, or use -1 for the previous seed, -2 for the one before that, etc', - ) - parser.add_argument( - '-n', - '--iterations', - type=int, - default=1, - help='Number of samplings to perform (slower, but will provide seeds for individual images)', - ) - parser.add_argument( - '-W', '--width', type=int, help='Image width, multiple of 64' - ) - parser.add_argument( - '-H', '--height', type=int, help='Image height, multiple of 64' - ) - parser.add_argument( - '-C', - '--cfg_scale', - default=7.5, - type=float, - help='Classifier free guidance (CFG) scale - higher numbers cause generator to "try" harder.', - ) - parser.add_argument( - '-g', '--grid', action='store_true', help='generate a grid' - ) - parser.add_argument( - '--outdir', - '-o', - type=str, - default=None, - help='Directory to save generated images and a log of prompts and seeds', - ) - parser.add_argument( - '--seamless', - action='store_true', - help='Change the model to seamless tiling (circular) mode', - ) - parser.add_argument( - '-i', - '--individual', - action='store_true', - help='Generate individual files (default)', - ) - parser.add_argument( - '-I', - '--init_img', - type=str, - help='Path to input image for img2img mode (supersedes width and height)', - ) - parser.add_argument( - '-M', - '--init_mask', - type=str, - help='Path to input mask for inpainting mode (supersedes width and height)', - ) - parser.add_argument( - '-T', - '-fit', - '--fit', - action='store_true', - help='If specified, will resize the input image to fit within the dimensions of width x height (512x512 default)', - ) - parser.add_argument( - '-f', - '--strength', - default=0.75, - type=float, - help='Strength for noising/unnoising. 0.0 preserves image exactly, 1.0 replaces it completely', - ) - parser.add_argument( - '-G', - '--gfpgan_strength', - default=0, - type=float, - help='The strength at which to apply the GFPGAN model to the result, in order to improve faces.', - ) - parser.add_argument( - '-U', - '--upscale', - nargs='+', - default=None, - type=float, - help='Scale factor (2, 4) for upscaling followed by upscaling strength (0-1.0). If strength not specified, defaults to 0.75' - ) - parser.add_argument( - '-save_orig', - '--save_original', - action='store_true', - help='Save original. Use it when upscaling to save both versions.', - ) - # variants is going to be superseded by a generalized "prompt-morph" function - # parser.add_argument('-v','--variants',type=int,help="in img2img mode, the first generated image will get passed back to img2img to generate the requested number of variants") - parser.add_argument( - '-x', - '--skip_normalize', - action='store_true', - help='Skip subprompt weight normalization', - ) - parser.add_argument( - '-A', - '-m', - '--sampler', - dest='sampler_name', - default=None, - type=str, - choices=SAMPLER_CHOICES, - metavar='SAMPLER_NAME', - help=f'Switch to a different sampler. Supported samplers: {", ".join(SAMPLER_CHOICES)}', - ) - parser.add_argument( - '-t', - '--log_tokenization', - action='store_true', - help='shows how the prompt is split into tokens' - ) - parser.add_argument( - '-v', - '--variation_amount', - default=0.0, - type=float, - help='If > 0, generates variations on the initial seed instead of random seeds per iteration. Must be between 0 and 1. Higher values will be more different.' - ) - parser.add_argument( - '-V', - '--with_variations', - default=None, - type=str, - help='list of variations to apply, in the format `seed:weight,seed:weight,...' - ) - return parser - - -if __name__ == '__main__': - main() diff --git a/scripts/pypi_helper.py b/scripts/pypi_helper.py old mode 100644 new mode 100755 index 08646aa572..baa0dd5de0 --- a/scripts/pypi_helper.py +++ b/scripts/pypi_helper.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + import requests from ldm.invoke import __app_name__, __version__ diff --git a/scripts/sd-metadata.py b/scripts/sd-metadata.py index 6a94fd6115..6f9c73757d 100755 --- a/scripts/sd-metadata.py +++ b/scripts/sd-metadata.py @@ -2,7 +2,7 @@ import sys import json -from ldm.invoke.pngwriter import retrieve_metadata +from invokeai.backend.image_util import retrieve_metadata if len(sys.argv) < 2: print("Usage: file2prompt.py ...") From 53c2c0f91d2572402cbe5e760b1cfd7b4035464d Mon Sep 17 00:00:00 2001 From: mickr777 <115216705+mickr777@users.noreply.github.com> Date: Sat, 4 Mar 2023 12:58:33 +1100 Subject: [PATCH 04/24] Update txt2img2img.py --- invokeai/backend/generator/txt2img2img.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/invokeai/backend/generator/txt2img2img.py b/invokeai/backend/generator/txt2img2img.py index f68e921b45..e0ec937b39 100644 --- a/invokeai/backend/generator/txt2img2img.py +++ b/invokeai/backend/generator/txt2img2img.py @@ -10,12 +10,9 @@ from diffusers.utils.logging import get_verbosity, set_verbosity, set_verbosity_ from ..stable_diffusion import PostprocessingSettings from .base import Generator -from ..stable_diffusion.diffusers_pipeline import ( - ConditioningData, - StableDiffusionGeneratorPipeline, - trim_to_multiple_of, -) - +from ..stable_diffusion.diffusers_pipeline import StableDiffusionGeneratorPipeline +from ..stable_diffusion.diffusers_pipeline import ConditioningData +from ..stable_diffusion.diffusers_pipeline import trim_to_multiple_of class Txt2Img2Img(Generator): def __init__(self, model, precision): From 2d9fac23e7afbbd7c8f578dcbad4443d1f322d9b Mon Sep 17 00:00:00 2001 From: mauwii Date: Sat, 4 Mar 2023 23:51:07 +0100 Subject: [PATCH 05/24] fix Dockerfile - update broken paths after restructure --- .dockerignore | 6 +++--- docker/Dockerfile | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index 0c177e5912..cfdc7fc735 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,9 +4,9 @@ !ldm !pyproject.toml -# ignore frontend but whitelist dist -invokeai/frontend/ -!invokeai/frontend/dist/ +# ignore frontend/web but whitelist dist +invokeai/frontend/web/ +!invokeai/frontend/web/dist/ # ignore invokeai/assets but whitelist invokeai/assets/web invokeai/assets/ diff --git a/docker/Dockerfile b/docker/Dockerfile index 2c3320cc0f..1c2b991028 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -63,7 +63,7 @@ RUN --mount=type=cache,target=${PIP_CACHE_DIR} \ # Install requirements COPY --link pyproject.toml . -COPY --link ldm/invoke/_version.py ldm/invoke/__init__.py ldm/invoke/ +COPY --link invokeai/version/invokeai_version.py invokeai/version/__init__.py invokeai/version/ ARG PIP_EXTRA_INDEX_URL ENV PIP_EXTRA_INDEX_URL ${PIP_EXTRA_INDEX_URL} RUN --mount=type=cache,target=${PIP_CACHE_DIR} \ From 65f9aae81de6bf178539b64ba038230ca8dec638 Mon Sep 17 00:00:00 2001 From: Kevin Turner <83819+keturn@users.noreply.github.com> Date: Sat, 4 Mar 2023 16:30:48 -0800 Subject: [PATCH 06/24] deps: upgrade to diffusers 0.14, safetensors 0.3, transformers 4.26, accelerate 0.16 --- pyproject.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 562a1bb398..6e6fc8419b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,13 +34,13 @@ classifiers = [ 'Topic :: Scientific/Engineering :: Image Processing', ] dependencies = [ - "accelerate", + "accelerate~=0.16", "albumentations", "click", "clip_anytorch", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip", "compel==0.1.7", "datasets", - "diffusers[torch]~=0.13", + "diffusers[torch]~=0.14", "dnspython==2.2.1", "einops", "eventlet", @@ -73,7 +73,7 @@ dependencies = [ "pytorch-lightning==1.7.7", "realesrgan", "requests==2.28.2", - "safetensors", + "safetensors~=0.3.0", "scikit-image>=0.19", "send2trash", "streamlit", @@ -83,7 +83,7 @@ dependencies = [ "torch-fidelity", "torchvision>=0.14.1", "torchmetrics", - "transformers~=4.25", + "transformers~=4.26", "uvicorn[standard]==0.20.0", "windows-curses; sys_platform=='win32'", ] @@ -132,7 +132,7 @@ version = { attr = "invokeai.version.__version__" } [tool.setuptools.packages.find] "where" = ["."] "include" = [ - "invokeai.assets.web*","invokeai.version*", + "invokeai.assets.web*","invokeai.version*", "invokeai.generator*","invokeai.backend*", "invokeai.frontend*", "invokeai.frontend.web.dist*", "invokeai.configs*", From 82fe34b1f79a64a98987a0e95d9564ce4ed9b616 Mon Sep 17 00:00:00 2001 From: mauwii Date: Sun, 5 Mar 2023 02:13:57 +0100 Subject: [PATCH 07/24] update build-container workflow - switch versioning from semver to pep440 - remove unecesarry paths - include `.dockerignore` in paths --- .github/workflows/build-container.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 8444c76a61..1ba03a0e2f 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -9,16 +9,13 @@ on: - 'dev/docker/*' paths: - 'pyproject.toml' + - '.dockerignore' - 'invokeai/**' - - 'invokeai/backend/**' - - 'invokeai/configs/**' - - 'invokeai/frontend/dist/**' - 'docker/Dockerfile' tags: - 'v*.*.*' workflow_dispatch: - jobs: docker: if: github.event.pull_request.draft == false @@ -56,9 +53,9 @@ jobs: tags: | type=ref,event=branch type=ref,event=tag - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} + type=pep440,pattern={{version}} + type=pep440,pattern={{major}}.{{minor}} + type=pep440,pattern={{major}} type=sha,enable=true,prefix=sha-,format=short flavor: | latest=${{ matrix.flavor == 'cuda' && github.ref == 'refs/heads/main' }} From 7c0ce5c282845efcd506241c65bb522a9fd0e583 Mon Sep 17 00:00:00 2001 From: mauwii Date: Sun, 5 Mar 2023 02:58:13 +0100 Subject: [PATCH 08/24] fix push expression - make use of `github.ref_type` --- .github/workflows/build-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 1ba03a0e2f..0fabbdf038 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -91,7 +91,7 @@ jobs: context: . file: ${{ env.DOCKERFILE }} platforms: ${{ env.PLATFORMS }} - push: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/tags/*' }} + push: ${{ github.ref == 'refs/heads/main' || github.ref_type == 'tag' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: PIP_EXTRA_INDEX_URL=${{ matrix.pip-extra-index-url }} From c703b60986926e25e2d808109e4afd9d02c4480f Mon Sep 17 00:00:00 2001 From: Kevin Turner <83819+keturn@users.noreply.github.com> Date: Sat, 4 Mar 2023 18:16:59 -0800 Subject: [PATCH 09/24] remove legacy ldm code --- invokeai/backend/generate.py | 66 +- invokeai/backend/generator/base.py | 20 +- invokeai/backend/restoration/outcrop.py | 5 +- invokeai/backend/stable_diffusion/__init__.py | 3 - .../backend/stable_diffusion/attention.py | 290 --- .../backend/stable_diffusion/autoencoder.py | 565 ----- .../backend/stable_diffusion/data/__init__.py | 0 .../backend/stable_diffusion/data/base.py | 25 - .../backend/stable_diffusion/data/imagenet.py | 453 ---- .../backend/stable_diffusion/data/lsun.py | 124 - .../stable_diffusion/data/personalized.py | 199 -- .../data/personalized_style.py | 170 -- .../stable_diffusion/diffusion/classifier.py | 330 --- .../stable_diffusion/diffusion/ddim.py | 113 - .../stable_diffusion/diffusion/ddpm.py | 2125 ----------------- .../stable_diffusion/diffusion/ksampler.py | 339 --- .../stable_diffusion/diffusion/plms.py | 143 -- .../stable_diffusion/diffusion/sampler.py | 454 ---- .../diffusionmodules/__init__.py | 0 .../diffusionmodules/model.py | 1081 --------- .../diffusionmodules/openaimodel.py | 1009 -------- .../stable_diffusion/diffusionmodules/util.py | 297 --- .../distributions/__init__.py | 0 .../distributions/distributions.py | 102 - invokeai/backend/stable_diffusion/ema.py | 82 - .../stable_diffusion/encoders/__init__.py | 0 .../stable_diffusion/encoders/modules.py | 858 ------- .../stable_diffusion/losses/__init__.py | 1 - .../stable_diffusion/losses/contperceptual.py | 159 -- .../stable_diffusion/losses/vqperceptual.py | 222 -- .../stable_diffusion/modules/__init__.py | 0 .../backend/stable_diffusion/x_transformer.py | 729 ------ pyproject.toml | 17 +- 33 files changed, 24 insertions(+), 9957 deletions(-) delete mode 100644 invokeai/backend/stable_diffusion/attention.py delete mode 100644 invokeai/backend/stable_diffusion/autoencoder.py delete mode 100644 invokeai/backend/stable_diffusion/data/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/data/base.py delete mode 100644 invokeai/backend/stable_diffusion/data/imagenet.py delete mode 100644 invokeai/backend/stable_diffusion/data/lsun.py delete mode 100644 invokeai/backend/stable_diffusion/data/personalized.py delete mode 100644 invokeai/backend/stable_diffusion/data/personalized_style.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/classifier.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/ddim.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/ddpm.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/ksampler.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/plms.py delete mode 100644 invokeai/backend/stable_diffusion/diffusion/sampler.py delete mode 100644 invokeai/backend/stable_diffusion/diffusionmodules/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/diffusionmodules/model.py delete mode 100644 invokeai/backend/stable_diffusion/diffusionmodules/openaimodel.py delete mode 100644 invokeai/backend/stable_diffusion/diffusionmodules/util.py delete mode 100644 invokeai/backend/stable_diffusion/distributions/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/distributions/distributions.py delete mode 100644 invokeai/backend/stable_diffusion/ema.py delete mode 100644 invokeai/backend/stable_diffusion/encoders/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/encoders/modules.py delete mode 100644 invokeai/backend/stable_diffusion/losses/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/losses/contperceptual.py delete mode 100644 invokeai/backend/stable_diffusion/losses/vqperceptual.py delete mode 100644 invokeai/backend/stable_diffusion/modules/__init__.py delete mode 100644 invokeai/backend/stable_diffusion/x_transformer.py diff --git a/invokeai/backend/generate.py b/invokeai/backend/generate.py index 8f2992db0c..ee5241bca1 100644 --- a/invokeai/backend/generate.py +++ b/invokeai/backend/generate.py @@ -5,6 +5,7 @@ import gc import importlib +import logging import os import random import re @@ -19,24 +20,20 @@ import numpy as np import skimage import torch import transformers +from PIL import Image, ImageOps +from accelerate.utils import set_seed from diffusers.pipeline_utils import DiffusionPipeline from diffusers.utils.import_utils import is_xformers_available from omegaconf import OmegaConf -from PIL import Image, ImageOps -from pytorch_lightning import logging, seed_everything -from .model_management import ModelManager from .args import metadata_from_png from .generator import infill_methods from .globals import Globals, global_cache_dir from .image_util import InitImageResizer, PngWriter, Txt2Mask, configure_model_padding +from .model_management import ModelManager from .prompting import get_uc_and_c_and_ec -from .stable_diffusion import ( - DDIMSampler, - HuggingFaceConceptsLibrary, - KSampler, - PLMSSampler, -) +from .prompting.conditioning import log_tokenization +from .stable_diffusion import HuggingFaceConceptsLibrary from .util import choose_precision, choose_torch_device @@ -484,7 +481,7 @@ class Generate: if sampler_name and (sampler_name != self.sampler_name): self.sampler_name = sampler_name - self._set_sampler() + self._set_scheduler() # apply the concepts library to the prompt prompt = self.huggingface_concepts_library.replace_concepts_with_triggers( @@ -493,11 +490,6 @@ class Generate: self.model.textual_inversion_manager.get_all_trigger_strings(), ) - # bit of a hack to change the cached sampler's karras threshold to - # whatever the user asked for - if karras_max is not None and isinstance(self.sampler, KSampler): - self.sampler.adjust_settings(karras_max=karras_max) - tic = time.time() if self._has_cuda(): torch.cuda.reset_peak_memory_stats() @@ -715,7 +707,7 @@ class Generate: prompt, model=self.model, skip_normalize_legacy_blend=opt.skip_normalize, - log_tokens=invokeai.backend.prompting.conditioning.log_tokenization, + log_tokens=log_tokenization, ) if tool in ("gfpgan", "codeformer", "upscale"): @@ -959,7 +951,7 @@ class Generate: # uncache generators so they pick up new models self.generators = {} - seed_everything(random.randrange(0, np.iinfo(np.uint32).max)) + set_seed(random.randrange(0, np.iinfo(np.uint32).max)) if self.embedding_path is not None: print(f">> Loading embeddings from {self.embedding_path}") for root, _, files in os.walk(self.embedding_path): @@ -973,7 +965,7 @@ class Generate: ) self.model_name = model_name - self._set_sampler() # requires self.model_name to be set first + self._set_scheduler() # requires self.model_name to be set first return self.model def load_huggingface_concepts(self, concepts: list[str]): @@ -1105,44 +1097,6 @@ class Generate: def is_legacy_model(self, model_name) -> bool: return self.model_manager.is_legacy(model_name) - def _set_sampler(self): - if isinstance(self.model, DiffusionPipeline): - return self._set_scheduler() - else: - return self._set_sampler_legacy() - - # very repetitive code - can this be simplified? The KSampler names are - # consistent, at least - def _set_sampler_legacy(self): - msg = f">> Setting Sampler to {self.sampler_name}" - if self.sampler_name == "plms": - self.sampler = PLMSSampler(self.model, device=self.device) - elif self.sampler_name == "ddim": - self.sampler = DDIMSampler(self.model, device=self.device) - elif self.sampler_name == "k_dpm_2_a": - self.sampler = KSampler(self.model, "dpm_2_ancestral", device=self.device) - elif self.sampler_name == "k_dpm_2": - self.sampler = KSampler(self.model, "dpm_2", device=self.device) - elif self.sampler_name == "k_dpmpp_2_a": - self.sampler = KSampler( - self.model, "dpmpp_2s_ancestral", device=self.device - ) - elif self.sampler_name == "k_dpmpp_2": - self.sampler = KSampler(self.model, "dpmpp_2m", device=self.device) - elif self.sampler_name == "k_euler_a": - self.sampler = KSampler(self.model, "euler_ancestral", device=self.device) - elif self.sampler_name == "k_euler": - self.sampler = KSampler(self.model, "euler", device=self.device) - elif self.sampler_name == "k_heun": - self.sampler = KSampler(self.model, "heun", device=self.device) - elif self.sampler_name == "k_lms": - self.sampler = KSampler(self.model, "lms", device=self.device) - else: - msg = f">> Unsupported Sampler: {self.sampler_name}, Defaulting to plms" - self.sampler = PLMSSampler(self.model, device=self.device) - - print(msg) - def _set_scheduler(self): default = self.model.scheduler diff --git a/invokeai/backend/generator/base.py b/invokeai/backend/generator/base.py index 831c941ff4..a834e9dba3 100644 --- a/invokeai/backend/generator/base.py +++ b/invokeai/backend/generator/base.py @@ -5,7 +5,6 @@ including img2img, txt2img, and inpaint from __future__ import annotations import os -import os.path as osp import random import traceback from contextlib import nullcontext @@ -14,15 +13,12 @@ from pathlib import Path import cv2 import numpy as np import torch -from diffusers import DiffusionPipeline -from einops import rearrange from PIL import Image, ImageChops, ImageFilter -from pytorch_lightning import seed_everything +from accelerate.utils import set_seed +from diffusers import DiffusionPipeline from tqdm import trange import invokeai.assets.web as web_assets - -from ..stable_diffusion.diffusion.ddpm import DiffusionWrapper from ..util.util import rand_perlin_2d downsampling = 8 @@ -33,9 +29,9 @@ class Generator: downsampling_factor: int latent_channels: int precision: str - model: DiffusionWrapper | DiffusionPipeline + model: DiffusionPipeline - def __init__(self, model: DiffusionWrapper | DiffusionPipeline, precision: str): + def __init__(self, model: DiffusionPipeline, precision: str): self.model = model self.precision = precision self.seed = None @@ -116,14 +112,14 @@ class Generator: for n in trange(iterations, desc="Generating"): x_T = None if self.variation_amount > 0: - seed_everything(seed) + set_seed(seed) target_noise = self.get_noise(width, height) x_T = self.slerp(self.variation_amount, initial_noise, target_noise) elif initial_noise is not None: # i.e. we specified particular variations x_T = initial_noise else: - seed_everything(seed) + set_seed(seed) try: x_T = self.get_noise(width, height) except: @@ -283,11 +279,11 @@ class Generator: initial_noise = None if self.variation_amount > 0 or len(self.with_variations) > 0: # use fixed initial noise plus random noise per iteration - seed_everything(seed) + set_seed(seed) initial_noise = self.get_noise(width, height) for v_seed, v_weight in self.with_variations: seed = v_seed - seed_everything(seed) + set_seed(seed) next_noise = self.get_noise(width, height) initial_noise = self.slerp(v_weight, initial_noise, next_noise) if self.variation_amount > 0: diff --git a/invokeai/backend/restoration/outcrop.py b/invokeai/backend/restoration/outcrop.py index 0778d7cc8f..e0f110f71e 100644 --- a/invokeai/backend/restoration/outcrop.py +++ b/invokeai/backend/restoration/outcrop.py @@ -1,7 +1,6 @@ import math -import warnings -from PIL import Image, ImageFilter +from PIL import Image class Outcrop(object): @@ -27,7 +26,7 @@ class Outcrop(object): # switch samplers temporarily curr_sampler = self.generate.sampler self.generate.sampler_name = opt.sampler_name - self.generate._set_sampler() + self.generate._set_scheduler() def wrapped_callback(img, seed, **kwargs): preferred_seed = ( diff --git a/invokeai/backend/stable_diffusion/__init__.py b/invokeai/backend/stable_diffusion/__init__.py index 05886f7b10..55333d3589 100644 --- a/invokeai/backend/stable_diffusion/__init__.py +++ b/invokeai/backend/stable_diffusion/__init__.py @@ -9,8 +9,5 @@ from .diffusers_pipeline import ( ) from .diffusion import InvokeAIDiffuserComponent from .diffusion.cross_attention_map_saving import AttentionMapSaver -from .diffusion.ddim import DDIMSampler -from .diffusion.ksampler import KSampler -from .diffusion.plms import PLMSSampler from .diffusion.shared_invokeai_diffusion import PostprocessingSettings from .textual_inversion_manager import TextualInversionManager diff --git a/invokeai/backend/stable_diffusion/attention.py b/invokeai/backend/stable_diffusion/attention.py deleted file mode 100644 index 484b42c0bd..0000000000 --- a/invokeai/backend/stable_diffusion/attention.py +++ /dev/null @@ -1,290 +0,0 @@ -import math -from inspect import isfunction -from typing import Callable, Optional - -import torch -import torch.nn.functional as F -from einops import rearrange, repeat -from torch import einsum, nn - -from .diffusion import InvokeAICrossAttentionMixin -from .diffusionmodules.util import checkpoint - - -def exists(val): - return val is not None - - -def uniq(arr): - return {el: True for el in arr}.keys() - - -def default(val, d): - if exists(val): - return val - return d() if isfunction(d) else d - - -def max_neg_value(t): - return -torch.finfo(t.dtype).max - - -def init_(tensor): - dim = tensor.shape[-1] - std = 1 / math.sqrt(dim) - tensor.uniform_(-std, std) - return tensor - - -# feedforward -class GEGLU(nn.Module): - def __init__(self, dim_in, dim_out): - super().__init__() - self.proj = nn.Linear(dim_in, dim_out * 2) - - def forward(self, x): - x, gate = self.proj(x).chunk(2, dim=-1) - return x * F.gelu(gate) - - -class FeedForward(nn.Module): - def __init__(self, dim, dim_out=None, mult=4, glu=False, dropout=0.0): - super().__init__() - inner_dim = int(dim * mult) - dim_out = default(dim_out, dim) - project_in = ( - nn.Sequential(nn.Linear(dim, inner_dim), nn.GELU()) - if not glu - else GEGLU(dim, inner_dim) - ) - - self.net = nn.Sequential( - project_in, nn.Dropout(dropout), nn.Linear(inner_dim, dim_out) - ) - - def forward(self, x): - return self.net(x) - - -def zero_module(module): - """ - Zero out the parameters of a module and return it. - """ - for p in module.parameters(): - p.detach().zero_() - return module - - -def Normalize(in_channels): - return torch.nn.GroupNorm( - num_groups=32, num_channels=in_channels, eps=1e-6, affine=True - ) - - -class LinearAttention(nn.Module): - def __init__(self, dim, heads=4, dim_head=32): - super().__init__() - self.heads = heads - hidden_dim = dim_head * heads - self.to_qkv = nn.Conv2d(dim, hidden_dim * 3, 1, bias=False) - self.to_out = nn.Conv2d(hidden_dim, dim, 1) - - def forward(self, x): - b, c, h, w = x.shape - qkv = self.to_qkv(x) - q, k, v = rearrange( - qkv, "b (qkv heads c) h w -> qkv b heads c (h w)", heads=self.heads, qkv=3 - ) - k = k.softmax(dim=-1) - context = torch.einsum("bhdn,bhen->bhde", k, v) - out = torch.einsum("bhde,bhdn->bhen", context, q) - out = rearrange( - out, "b heads c (h w) -> b (heads c) h w", heads=self.heads, h=h, w=w - ) - return self.to_out(out) - - -class SpatialSelfAttention(nn.Module): - def __init__(self, in_channels): - super().__init__() - self.in_channels = in_channels - - self.norm = Normalize(in_channels) - self.q = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.k = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.v = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.proj_out = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - - def forward(self, x): - h_ = x - h_ = self.norm(h_) - q = self.q(h_) - k = self.k(h_) - v = self.v(h_) - - # compute attention - b, c, h, w = q.shape - q = rearrange(q, "b c h w -> b (h w) c") - k = rearrange(k, "b c h w -> b c (h w)") - w_ = torch.einsum("bij,bjk->bik", q, k) - - w_ = w_ * (int(c) ** (-0.5)) - w_ = torch.nn.functional.softmax(w_, dim=2) - - # attend to values - v = rearrange(v, "b c h w -> b c (h w)") - w_ = rearrange(w_, "b i j -> b j i") - h_ = torch.einsum("bij,bjk->bik", v, w_) - h_ = rearrange(h_, "b c (h w) -> b c h w", h=h) - h_ = self.proj_out(h_) - - return x + h_ - - -def get_mem_free_total(device): - # only on cuda - if not torch.cuda.is_available(): - return None - stats = torch.cuda.memory_stats(device) - mem_active = stats["active_bytes.all.current"] - mem_reserved = stats["reserved_bytes.all.current"] - mem_free_cuda, _ = torch.cuda.mem_get_info(device) - mem_free_torch = mem_reserved - mem_active - mem_free_total = mem_free_cuda + mem_free_torch - return mem_free_total - - -class CrossAttention(nn.Module, InvokeAICrossAttentionMixin): - def __init__(self, query_dim, context_dim=None, heads=8, dim_head=64, dropout=0.0): - super().__init__() - InvokeAICrossAttentionMixin.__init__(self) - inner_dim = dim_head * heads - context_dim = default(context_dim, query_dim) - - self.scale = dim_head**-0.5 - self.heads = heads - - self.to_q = nn.Linear(query_dim, inner_dim, bias=False) - self.to_k = nn.Linear(context_dim, inner_dim, bias=False) - self.to_v = nn.Linear(context_dim, inner_dim, bias=False) - - self.to_out = nn.Sequential( - nn.Linear(inner_dim, query_dim), nn.Dropout(dropout) - ) - - def forward(self, x, context=None, mask=None): - h = self.heads - - q = self.to_q(x) - context = default(context, x) - k = self.to_k(context) * self.scale - v = self.to_v(context) - del context, x - - q, k, v = map(lambda t: rearrange(t, "b n (h d) -> (b h) n d", h=h), (q, k, v)) - - # don't apply scale twice - cached_scale = self.scale - self.scale = 1 - r = self.get_invokeai_attention_mem_efficient(q, k, v) - self.scale = cached_scale - - hidden_states = rearrange(r, "(b h) n d -> b n (h d)", h=h) - return self.to_out(hidden_states) - - -class BasicTransformerBlock(nn.Module): - def __init__( - self, - dim, - n_heads, - d_head, - dropout=0.0, - context_dim=None, - gated_ff=True, - checkpoint=True, - ): - super().__init__() - self.attn1 = CrossAttention( - query_dim=dim, heads=n_heads, dim_head=d_head, dropout=dropout - ) # is a self-attention - self.ff = FeedForward(dim, dropout=dropout, glu=gated_ff) - self.attn2 = CrossAttention( - query_dim=dim, - context_dim=context_dim, - heads=n_heads, - dim_head=d_head, - dropout=dropout, - ) # is self-attn if context is none - self.norm1 = nn.LayerNorm(dim) - self.norm2 = nn.LayerNorm(dim) - self.norm3 = nn.LayerNorm(dim) - self.checkpoint = checkpoint - - def forward(self, x, context=None): - return checkpoint( - self._forward, (x, context), self.parameters(), self.checkpoint - ) - - def _forward(self, x, context=None): - x = x.contiguous() if x.device.type == "mps" else x - x += self.attn1(self.norm1(x.clone())) - x += self.attn2(self.norm2(x.clone()), context=context) - x += self.ff(self.norm3(x.clone())) - return x - - -class SpatialTransformer(nn.Module): - """ - Transformer block for image-like data. - First, project the input (aka embedding) - and reshape to b, t, d. - Then apply standard transformer action. - Finally, reshape to image - """ - - def __init__( - self, in_channels, n_heads, d_head, depth=1, dropout=0.0, context_dim=None - ): - super().__init__() - self.in_channels = in_channels - inner_dim = n_heads * d_head - self.norm = Normalize(in_channels) - - self.proj_in = nn.Conv2d( - in_channels, inner_dim, kernel_size=1, stride=1, padding=0 - ) - - self.transformer_blocks = nn.ModuleList( - [ - BasicTransformerBlock( - inner_dim, n_heads, d_head, dropout=dropout, context_dim=context_dim - ) - for d in range(depth) - ] - ) - - self.proj_out = zero_module( - nn.Conv2d(inner_dim, in_channels, kernel_size=1, stride=1, padding=0) - ) - - def forward(self, x, context=None): - # note: if no context is given, cross-attention defaults to self-attention - b, c, h, w = x.shape - x_in = x - x = self.norm(x) - x = self.proj_in(x) - x = rearrange(x, "b c h w -> b (h w) c") - for block in self.transformer_blocks: - x = block(x, context=context) - x = rearrange(x, "b (h w) c -> b c h w", h=h, w=w) - x = self.proj_out(x) - return x + x_in diff --git a/invokeai/backend/stable_diffusion/autoencoder.py b/invokeai/backend/stable_diffusion/autoencoder.py deleted file mode 100644 index 2bc7fa84f6..0000000000 --- a/invokeai/backend/stable_diffusion/autoencoder.py +++ /dev/null @@ -1,565 +0,0 @@ -from contextlib import contextmanager - -import pytorch_lightning as pl -import torch -import torch.nn.functional as F -from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer - -from ..util import instantiate_from_config -from .diffusionmodules.model import Decoder, Encoder -from .distributions.distributions import DiagonalGaussianDistribution - - -class VQModel(pl.LightningModule): - def __init__( - self, - ddconfig, - lossconfig, - n_embed, - embed_dim, - ckpt_path=None, - ignore_keys=[], - image_key="image", - colorize_nlabels=None, - monitor=None, - batch_resize_range=None, - scheduler_config=None, - lr_g_factor=1.0, - remap=None, - sane_index_shape=False, # tell vector quantizer to return indices as bhw - use_ema=False, - ): - super().__init__() - self.embed_dim = embed_dim - self.n_embed = n_embed - self.image_key = image_key - self.encoder = Encoder(**ddconfig) - self.decoder = Decoder(**ddconfig) - self.loss = instantiate_from_config(lossconfig) - self.quantize = VectorQuantizer( - n_embed, - embed_dim, - beta=0.25, - remap=remap, - sane_index_shape=sane_index_shape, - ) - self.quant_conv = torch.nn.Conv2d(ddconfig["z_channels"], embed_dim, 1) - self.post_quant_conv = torch.nn.Conv2d(embed_dim, ddconfig["z_channels"], 1) - if colorize_nlabels is not None: - assert type(colorize_nlabels) == int - self.register_buffer("colorize", torch.randn(3, colorize_nlabels, 1, 1)) - if monitor is not None: - self.monitor = monitor - self.batch_resize_range = batch_resize_range - if self.batch_resize_range is not None: - print( - f"{self.__class__.__name__}: Using per-batch resizing in range {batch_resize_range}." - ) - - self.use_ema = use_ema - if self.use_ema: - self.model_ema = LitEma(self) - print(f">> Keeping EMAs of {len(list(self.model_ema.buffers()))}.") - - if ckpt_path is not None: - self.init_from_ckpt(ckpt_path, ignore_keys=ignore_keys) - self.scheduler_config = scheduler_config - self.lr_g_factor = lr_g_factor - - @contextmanager - def ema_scope(self, context=None): - if self.use_ema: - self.model_ema.store(self.parameters()) - self.model_ema.copy_to(self) - if context is not None: - print(f"{context}: Switched to EMA weights") - try: - yield None - finally: - if self.use_ema: - self.model_ema.restore(self.parameters()) - if context is not None: - print(f"{context}: Restored training weights") - - def init_from_ckpt(self, path, ignore_keys=list()): - sd = torch.load(path, map_location="cpu")["state_dict"] - keys = list(sd.keys()) - for k in keys: - for ik in ignore_keys: - if k.startswith(ik): - print("Deleting key {} from state_dict.".format(k)) - del sd[k] - missing, unexpected = self.load_state_dict(sd, strict=False) - print( - f"Restored from {path} with {len(missing)} missing and {len(unexpected)} unexpected keys" - ) - if len(missing) > 0: - print(f"Missing Keys: {missing}") - print(f"Unexpected Keys: {unexpected}") - - def on_train_batch_end(self, *args, **kwargs): - if self.use_ema: - self.model_ema(self) - - def encode(self, x): - h = self.encoder(x) - h = self.quant_conv(h) - quant, emb_loss, info = self.quantize(h) - return quant, emb_loss, info - - def encode_to_prequant(self, x): - h = self.encoder(x) - h = self.quant_conv(h) - return h - - def decode(self, quant): - quant = self.post_quant_conv(quant) - dec = self.decoder(quant) - return dec - - def decode_code(self, code_b): - quant_b = self.quantize.embed_code(code_b) - dec = self.decode(quant_b) - return dec - - def forward(self, input, return_pred_indices=False): - quant, diff, (_, _, ind) = self.encode(input) - dec = self.decode(quant) - if return_pred_indices: - return dec, diff, ind - return dec, diff - - def get_input(self, batch, k): - x = batch[k] - if len(x.shape) == 3: - x = x[..., None] - x = x.permute(0, 3, 1, 2).to(memory_format=torch.contiguous_format).float() - if self.batch_resize_range is not None: - lower_size = self.batch_resize_range[0] - upper_size = self.batch_resize_range[1] - if self.global_step <= 4: - # do the first few batches with max size to avoid later oom - new_resize = upper_size - else: - new_resize = np.random.choice( - np.arange(lower_size, upper_size + 16, 16) - ) - if new_resize != x.shape[2]: - x = F.interpolate(x, size=new_resize, mode="bicubic") - x = x.detach() - return x - - def training_step(self, batch, batch_idx, optimizer_idx): - # https://github.com/pytorch/pytorch/issues/37142 - # try not to fool the heuristics - x = self.get_input(batch, self.image_key) - xrec, qloss, ind = self(x, return_pred_indices=True) - - if optimizer_idx == 0: - # autoencode - aeloss, log_dict_ae = self.loss( - qloss, - x, - xrec, - optimizer_idx, - self.global_step, - last_layer=self.get_last_layer(), - split="train", - predicted_indices=ind, - ) - - self.log_dict( - log_dict_ae, - prog_bar=False, - logger=True, - on_step=True, - on_epoch=True, - ) - return aeloss - - if optimizer_idx == 1: - # discriminator - discloss, log_dict_disc = self.loss( - qloss, - x, - xrec, - optimizer_idx, - self.global_step, - last_layer=self.get_last_layer(), - split="train", - ) - self.log_dict( - log_dict_disc, - prog_bar=False, - logger=True, - on_step=True, - on_epoch=True, - ) - return discloss - - def validation_step(self, batch, batch_idx): - log_dict = self._validation_step(batch, batch_idx) - with self.ema_scope(): - log_dict_ema = self._validation_step(batch, batch_idx, suffix="_ema") - return log_dict - - def _validation_step(self, batch, batch_idx, suffix=""): - x = self.get_input(batch, self.image_key) - xrec, qloss, ind = self(x, return_pred_indices=True) - aeloss, log_dict_ae = self.loss( - qloss, - x, - xrec, - 0, - self.global_step, - last_layer=self.get_last_layer(), - split="val" + suffix, - predicted_indices=ind, - ) - - discloss, log_dict_disc = self.loss( - qloss, - x, - xrec, - 1, - self.global_step, - last_layer=self.get_last_layer(), - split="val" + suffix, - predicted_indices=ind, - ) - rec_loss = log_dict_ae[f"val{suffix}/rec_loss"] - self.log( - f"val{suffix}/rec_loss", - rec_loss, - prog_bar=True, - logger=True, - on_step=False, - on_epoch=True, - sync_dist=True, - ) - self.log( - f"val{suffix}/aeloss", - aeloss, - prog_bar=True, - logger=True, - on_step=False, - on_epoch=True, - sync_dist=True, - ) - if version.parse(pl.__version__) >= version.parse("1.4.0"): - del log_dict_ae[f"val{suffix}/rec_loss"] - self.log_dict(log_dict_ae) - self.log_dict(log_dict_disc) - return self.log_dict - - def configure_optimizers(self): - lr_d = self.learning_rate - lr_g = self.lr_g_factor * self.learning_rate - print("lr_d", lr_d) - print("lr_g", lr_g) - opt_ae = torch.optim.Adam( - list(self.encoder.parameters()) - + list(self.decoder.parameters()) - + list(self.quantize.parameters()) - + list(self.quant_conv.parameters()) - + list(self.post_quant_conv.parameters()), - lr=lr_g, - betas=(0.5, 0.9), - ) - opt_disc = torch.optim.Adam( - self.loss.discriminator.parameters(), lr=lr_d, betas=(0.5, 0.9) - ) - - if self.scheduler_config is not None: - scheduler = instantiate_from_config(self.scheduler_config) - - print("Setting up LambdaLR scheduler...") - scheduler = [ - { - "scheduler": LambdaLR(opt_ae, lr_lambda=scheduler.schedule), - "interval": "step", - "frequency": 1, - }, - { - "scheduler": LambdaLR(opt_disc, lr_lambda=scheduler.schedule), - "interval": "step", - "frequency": 1, - }, - ] - return [opt_ae, opt_disc], scheduler - return [opt_ae, opt_disc], [] - - def get_last_layer(self): - return self.decoder.conv_out.weight - - def log_images(self, batch, only_inputs=False, plot_ema=False, **kwargs): - log = dict() - x = self.get_input(batch, self.image_key) - x = x.to(self.device) - if only_inputs: - log["inputs"] = x - return log - xrec, _ = self(x) - if x.shape[1] > 3: - # colorize with random projection - assert xrec.shape[1] > 3 - x = self.to_rgb(x) - xrec = self.to_rgb(xrec) - log["inputs"] = x - log["reconstructions"] = xrec - if plot_ema: - with self.ema_scope(): - xrec_ema, _ = self(x) - if x.shape[1] > 3: - xrec_ema = self.to_rgb(xrec_ema) - log["reconstructions_ema"] = xrec_ema - return log - - def to_rgb(self, x): - assert self.image_key == "segmentation" - if not hasattr(self, "colorize"): - self.register_buffer("colorize", torch.randn(3, x.shape[1], 1, 1).to(x)) - x = F.conv2d(x, weight=self.colorize) - x = 2.0 * (x - x.min()) / (x.max() - x.min()) - 1.0 - return x - - -class VQModelInterface(VQModel): - def __init__(self, embed_dim, *args, **kwargs): - super().__init__(embed_dim=embed_dim, *args, **kwargs) - self.embed_dim = embed_dim - - def encode(self, x): - h = self.encoder(x) - h = self.quant_conv(h) - return h - - def decode(self, h, force_not_quantize=False): - # also go through quantization layer - if not force_not_quantize: - quant, emb_loss, info = self.quantize(h) - else: - quant = h - quant = self.post_quant_conv(quant) - dec = self.decoder(quant) - return dec - - -class AutoencoderKL(pl.LightningModule): - def __init__( - self, - ddconfig, - lossconfig, - embed_dim, - ckpt_path=None, - ignore_keys=[], - image_key="image", - colorize_nlabels=None, - monitor=None, - ): - super().__init__() - self.image_key = image_key - self.encoder = Encoder(**ddconfig) - self.decoder = Decoder(**ddconfig) - self.loss = instantiate_from_config(lossconfig) - assert ddconfig["double_z"] - self.quant_conv = torch.nn.Conv2d(2 * ddconfig["z_channels"], 2 * embed_dim, 1) - self.post_quant_conv = torch.nn.Conv2d(embed_dim, ddconfig["z_channels"], 1) - self.embed_dim = embed_dim - if colorize_nlabels is not None: - assert type(colorize_nlabels) == int - self.register_buffer("colorize", torch.randn(3, colorize_nlabels, 1, 1)) - if monitor is not None: - self.monitor = monitor - if ckpt_path is not None: - self.init_from_ckpt(ckpt_path, ignore_keys=ignore_keys) - - def init_from_ckpt(self, path, ignore_keys=list()): - sd = torch.load(path, map_location="cpu")["state_dict"] - keys = list(sd.keys()) - for k in keys: - for ik in ignore_keys: - if k.startswith(ik): - print("Deleting key {} from state_dict.".format(k)) - del sd[k] - self.load_state_dict(sd, strict=False) - print(f"Restored from {path}") - - def encode(self, x): - h = self.encoder(x) - moments = self.quant_conv(h) - posterior = DiagonalGaussianDistribution(moments) - return posterior - - def decode(self, z): - z = self.post_quant_conv(z) - dec = self.decoder(z) - return dec - - def forward(self, input, sample_posterior=True): - posterior = self.encode(input) - if sample_posterior: - z = posterior.sample() - else: - z = posterior.mode() - dec = self.decode(z) - return dec, posterior - - def get_input(self, batch, k): - x = batch[k] - if len(x.shape) == 3: - x = x[..., None] - x = x.permute(0, 3, 1, 2).to(memory_format=torch.contiguous_format).float() - return x - - def training_step(self, batch, batch_idx, optimizer_idx): - inputs = self.get_input(batch, self.image_key) - reconstructions, posterior = self(inputs) - - if optimizer_idx == 0: - # train encoder+decoder+logvar - aeloss, log_dict_ae = self.loss( - inputs, - reconstructions, - posterior, - optimizer_idx, - self.global_step, - last_layer=self.get_last_layer(), - split="train", - ) - self.log( - "aeloss", - aeloss, - prog_bar=True, - logger=True, - on_step=True, - on_epoch=True, - ) - self.log_dict( - log_dict_ae, - prog_bar=False, - logger=True, - on_step=True, - on_epoch=False, - ) - return aeloss - - if optimizer_idx == 1: - # train the discriminator - discloss, log_dict_disc = self.loss( - inputs, - reconstructions, - posterior, - optimizer_idx, - self.global_step, - last_layer=self.get_last_layer(), - split="train", - ) - - self.log( - "discloss", - discloss, - prog_bar=True, - logger=True, - on_step=True, - on_epoch=True, - ) - self.log_dict( - log_dict_disc, - prog_bar=False, - logger=True, - on_step=True, - on_epoch=False, - ) - return discloss - - def validation_step(self, batch, batch_idx): - inputs = self.get_input(batch, self.image_key) - reconstructions, posterior = self(inputs) - aeloss, log_dict_ae = self.loss( - inputs, - reconstructions, - posterior, - 0, - self.global_step, - last_layer=self.get_last_layer(), - split="val", - ) - - discloss, log_dict_disc = self.loss( - inputs, - reconstructions, - posterior, - 1, - self.global_step, - last_layer=self.get_last_layer(), - split="val", - ) - - self.log("val/rec_loss", log_dict_ae["val/rec_loss"]) - self.log_dict(log_dict_ae) - self.log_dict(log_dict_disc) - return self.log_dict - - def configure_optimizers(self): - lr = self.learning_rate - opt_ae = torch.optim.Adam( - list(self.encoder.parameters()) - + list(self.decoder.parameters()) - + list(self.quant_conv.parameters()) - + list(self.post_quant_conv.parameters()), - lr=lr, - betas=(0.5, 0.9), - ) - opt_disc = torch.optim.Adam( - self.loss.discriminator.parameters(), lr=lr, betas=(0.5, 0.9) - ) - return [opt_ae, opt_disc], [] - - def get_last_layer(self): - return self.decoder.conv_out.weight - - @torch.no_grad() - def log_images(self, batch, only_inputs=False, **kwargs): - log = dict() - x = self.get_input(batch, self.image_key) - x = x.to(self.device) - if not only_inputs: - xrec, posterior = self(x) - if x.shape[1] > 3: - # colorize with random projection - assert xrec.shape[1] > 3 - x = self.to_rgb(x) - xrec = self.to_rgb(xrec) - log["samples"] = self.decode(torch.randn_like(posterior.sample())) - log["reconstructions"] = xrec - log["inputs"] = x - return log - - def to_rgb(self, x): - assert self.image_key == "segmentation" - if not hasattr(self, "colorize"): - self.register_buffer("colorize", torch.randn(3, x.shape[1], 1, 1).to(x)) - x = F.conv2d(x, weight=self.colorize) - x = 2.0 * (x - x.min()) / (x.max() - x.min()) - 1.0 - return x - - -class IdentityFirstStage(torch.nn.Module): - def __init__(self, *args, vq_interface=False, **kwargs): - self.vq_interface = vq_interface # TODO: Should be true by default but check to not break older stuff - super().__init__() - - def encode(self, x, *args, **kwargs): - return x - - def decode(self, x, *args, **kwargs): - return x - - def quantize(self, x, *args, **kwargs): - if self.vq_interface: - return x, None, [None, None, None] - return x - - def forward(self, x, *args, **kwargs): - return x diff --git a/invokeai/backend/stable_diffusion/data/__init__.py b/invokeai/backend/stable_diffusion/data/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/invokeai/backend/stable_diffusion/data/base.py b/invokeai/backend/stable_diffusion/data/base.py deleted file mode 100644 index 1b6a138bf7..0000000000 --- a/invokeai/backend/stable_diffusion/data/base.py +++ /dev/null @@ -1,25 +0,0 @@ -from abc import abstractmethod - -from torch.utils.data import ChainDataset, ConcatDataset, Dataset, IterableDataset - - -class Txt2ImgIterableBaseDataset(IterableDataset): - """ - Define an interface to make the IterableDatasets for text2img data chainable - """ - - def __init__(self, num_records=0, valid_ids=None, size=256): - super().__init__() - self.num_records = num_records - self.valid_ids = valid_ids - self.sample_ids = valid_ids - self.size = size - - print(f"{self.__class__.__name__} dataset contains {self.__len__()} examples.") - - def __len__(self): - return self.num_records - - @abstractmethod - def __iter__(self): - pass diff --git a/invokeai/backend/stable_diffusion/data/imagenet.py b/invokeai/backend/stable_diffusion/data/imagenet.py deleted file mode 100644 index 84bad27590..0000000000 --- a/invokeai/backend/stable_diffusion/data/imagenet.py +++ /dev/null @@ -1,453 +0,0 @@ -import glob -import os -import pickle -import shutil -import tarfile -from functools import partial - -import albumentations -import cv2 -import numpy as np -import PIL -import taming.data.utils as tdu -import torchvision.transforms.functional as TF -import yaml -from ldm.modules.image_degradation import degradation_fn_bsr, degradation_fn_bsr_light -from omegaconf import OmegaConf -from PIL import Image -from taming.data.imagenet import ( - ImagePaths, - download, - give_synsets_from_indices, - retrieve, - str_to_indices, -) -from torch.utils.data import Dataset, Subset -from tqdm import tqdm - - -def synset2idx(path_to_yaml="data/index_synset.yaml"): - with open(path_to_yaml) as f: - di2s = yaml.load(f) - return dict((v, k) for k, v in di2s.items()) - - -class ImageNetBase(Dataset): - def __init__(self, config=None): - self.config = config or OmegaConf.create() - if not type(self.config) == dict: - self.config = OmegaConf.to_container(self.config) - self.keep_orig_class_label = self.config.get("keep_orig_class_label", False) - self.process_images = True # if False we skip loading & processing images and self.data contains filepaths - self._prepare() - self._prepare_synset_to_human() - self._prepare_idx_to_synset() - self._prepare_human_to_integer_label() - self._load() - - def __len__(self): - return len(self.data) - - def __getitem__(self, i): - return self.data[i] - - def _prepare(self): - raise NotImplementedError() - - def _filter_relpaths(self, relpaths): - ignore = set( - [ - "n06596364_9591.JPEG", - ] - ) - relpaths = [rpath for rpath in relpaths if not rpath.split("/")[-1] in ignore] - if "sub_indices" in self.config: - indices = str_to_indices(self.config["sub_indices"]) - synsets = give_synsets_from_indices( - indices, path_to_yaml=self.idx2syn - ) # returns a list of strings - self.synset2idx = synset2idx(path_to_yaml=self.idx2syn) - files = [] - for rpath in relpaths: - syn = rpath.split("/")[0] - if syn in synsets: - files.append(rpath) - return files - else: - return relpaths - - def _prepare_synset_to_human(self): - SIZE = 2655750 - URL = "https://heibox.uni-heidelberg.de/f/9f28e956cd304264bb82/?dl=1" - self.human_dict = os.path.join(self.root, "synset_human.txt") - if ( - not os.path.exists(self.human_dict) - or not os.path.getsize(self.human_dict) == SIZE - ): - download(URL, self.human_dict) - - def _prepare_idx_to_synset(self): - URL = "https://heibox.uni-heidelberg.de/f/d835d5b6ceda4d3aa910/?dl=1" - self.idx2syn = os.path.join(self.root, "index_synset.yaml") - if not os.path.exists(self.idx2syn): - download(URL, self.idx2syn) - - def _prepare_human_to_integer_label(self): - URL = "https://heibox.uni-heidelberg.de/f/2362b797d5be43b883f6/?dl=1" - self.human2integer = os.path.join( - self.root, "imagenet1000_clsidx_to_labels.txt" - ) - if not os.path.exists(self.human2integer): - download(URL, self.human2integer) - with open(self.human2integer, "r") as f: - lines = f.read().splitlines() - assert len(lines) == 1000 - self.human2integer_dict = dict() - for line in lines: - value, key = line.split(":") - self.human2integer_dict[key] = int(value) - - def _load(self): - with open(self.txt_filelist, "r") as f: - self.relpaths = f.read().splitlines() - l1 = len(self.relpaths) - self.relpaths = self._filter_relpaths(self.relpaths) - print( - "Removed {} files from filelist during filtering.".format( - l1 - len(self.relpaths) - ) - ) - - self.synsets = [p.split("/")[0] for p in self.relpaths] - self.abspaths = [os.path.join(self.datadir, p) for p in self.relpaths] - - unique_synsets = np.unique(self.synsets) - class_dict = dict((synset, i) for i, synset in enumerate(unique_synsets)) - if not self.keep_orig_class_label: - self.class_labels = [class_dict[s] for s in self.synsets] - else: - self.class_labels = [self.synset2idx[s] for s in self.synsets] - - with open(self.human_dict, "r") as f: - human_dict = f.read().splitlines() - human_dict = dict(line.split(maxsplit=1) for line in human_dict) - - self.human_labels = [human_dict[s] for s in self.synsets] - - labels = { - "relpath": np.array(self.relpaths), - "synsets": np.array(self.synsets), - "class_label": np.array(self.class_labels), - "human_label": np.array(self.human_labels), - } - - if self.process_images: - self.size = retrieve(self.config, "size", default=256) - self.data = ImagePaths( - self.abspaths, - labels=labels, - size=self.size, - random_crop=self.random_crop, - ) - else: - self.data = self.abspaths - - -class ImageNetTrain(ImageNetBase): - NAME = "ILSVRC2012_train" - URL = "http://www.image-net.org/challenges/LSVRC/2012/" - AT_HASH = "a306397ccf9c2ead27155983c254227c0fd938e2" - FILES = [ - "ILSVRC2012_img_train.tar", - ] - SIZES = [ - 147897477120, - ] - - def __init__(self, process_images=True, data_root=None, **kwargs): - self.process_images = process_images - self.data_root = data_root - super().__init__(**kwargs) - - def _prepare(self): - if self.data_root: - self.root = os.path.join(self.data_root, self.NAME) - else: - cachedir = os.environ.get("XDG_CACHE_HOME", os.path.expanduser("~/.cache")) - self.root = os.path.join(cachedir, "autoencoders/data", self.NAME) - - self.datadir = os.path.join(self.root, "data") - self.txt_filelist = os.path.join(self.root, "filelist.txt") - self.expected_length = 1281167 - self.random_crop = retrieve( - self.config, "ImageNetTrain/random_crop", default=True - ) - if not tdu.is_prepared(self.root): - # prep - print("Preparing dataset {} in {}".format(self.NAME, self.root)) - - datadir = self.datadir - if not os.path.exists(datadir): - path = os.path.join(self.root, self.FILES[0]) - if ( - not os.path.exists(path) - or not os.path.getsize(path) == self.SIZES[0] - ): - import academictorrents as at - - atpath = at.get(self.AT_HASH, datastore=self.root) - assert atpath == path - - print("Extracting {} to {}".format(path, datadir)) - os.makedirs(datadir, exist_ok=True) - with tarfile.open(path, "r:") as tar: - tar.extractall(path=datadir) - - print("Extracting sub-tars.") - subpaths = sorted(glob.glob(os.path.join(datadir, "*.tar"))) - for subpath in tqdm(subpaths): - subdir = subpath[: -len(".tar")] - os.makedirs(subdir, exist_ok=True) - with tarfile.open(subpath, "r:") as tar: - tar.extractall(path=subdir) - - filelist = glob.glob(os.path.join(datadir, "**", "*.JPEG")) - filelist = [os.path.relpath(p, start=datadir) for p in filelist] - filelist = sorted(filelist) - filelist = "\n".join(filelist) + "\n" - with open(self.txt_filelist, "w") as f: - f.write(filelist) - - tdu.mark_prepared(self.root) - - -class ImageNetValidation(ImageNetBase): - NAME = "ILSVRC2012_validation" - URL = "http://www.image-net.org/challenges/LSVRC/2012/" - AT_HASH = "5d6d0df7ed81efd49ca99ea4737e0ae5e3a5f2e5" - VS_URL = "https://heibox.uni-heidelberg.de/f/3e0f6e9c624e45f2bd73/?dl=1" - FILES = [ - "ILSVRC2012_img_val.tar", - "validation_synset.txt", - ] - SIZES = [ - 6744924160, - 1950000, - ] - - def __init__(self, process_images=True, data_root=None, **kwargs): - self.data_root = data_root - self.process_images = process_images - super().__init__(**kwargs) - - def _prepare(self): - if self.data_root: - self.root = os.path.join(self.data_root, self.NAME) - else: - cachedir = os.environ.get("XDG_CACHE_HOME", os.path.expanduser("~/.cache")) - self.root = os.path.join(cachedir, "autoencoders/data", self.NAME) - self.datadir = os.path.join(self.root, "data") - self.txt_filelist = os.path.join(self.root, "filelist.txt") - self.expected_length = 50000 - self.random_crop = retrieve( - self.config, "ImageNetValidation/random_crop", default=False - ) - if not tdu.is_prepared(self.root): - # prep - print("Preparing dataset {} in {}".format(self.NAME, self.root)) - - datadir = self.datadir - if not os.path.exists(datadir): - path = os.path.join(self.root, self.FILES[0]) - if ( - not os.path.exists(path) - or not os.path.getsize(path) == self.SIZES[0] - ): - import academictorrents as at - - atpath = at.get(self.AT_HASH, datastore=self.root) - assert atpath == path - - print("Extracting {} to {}".format(path, datadir)) - os.makedirs(datadir, exist_ok=True) - with tarfile.open(path, "r:") as tar: - tar.extractall(path=datadir) - - vspath = os.path.join(self.root, self.FILES[1]) - if ( - not os.path.exists(vspath) - or not os.path.getsize(vspath) == self.SIZES[1] - ): - download(self.VS_URL, vspath) - - with open(vspath, "r") as f: - synset_dict = f.read().splitlines() - synset_dict = dict(line.split() for line in synset_dict) - - print("Reorganizing into synset folders") - synsets = np.unique(list(synset_dict.values())) - for s in synsets: - os.makedirs(os.path.join(datadir, s), exist_ok=True) - for k, v in synset_dict.items(): - src = os.path.join(datadir, k) - dst = os.path.join(datadir, v) - shutil.move(src, dst) - - filelist = glob.glob(os.path.join(datadir, "**", "*.JPEG")) - filelist = [os.path.relpath(p, start=datadir) for p in filelist] - filelist = sorted(filelist) - filelist = "\n".join(filelist) + "\n" - with open(self.txt_filelist, "w") as f: - f.write(filelist) - - tdu.mark_prepared(self.root) - - -class ImageNetSR(Dataset): - def __init__( - self, - size=None, - degradation=None, - downscale_f=4, - min_crop_f=0.5, - max_crop_f=1.0, - random_crop=True, - ): - """ - Imagenet Superresolution Dataloader - Performs following ops in order: - 1. crops a crop of size s from image either as random or center crop - 2. resizes crop to size with cv2.area_interpolation - 3. degrades resized crop with degradation_fn - - :param size: resizing to size after cropping - :param degradation: degradation_fn, e.g. cv_bicubic or bsrgan_light - :param downscale_f: Low Resolution Downsample factor - :param min_crop_f: determines crop size s, - where s = c * min_img_side_len with c sampled from interval (min_crop_f, max_crop_f) - :param max_crop_f: "" - :param data_root: - :param random_crop: - """ - self.base = self.get_base() - assert size - assert (size / downscale_f).is_integer() - self.size = size - self.LR_size = int(size / downscale_f) - self.min_crop_f = min_crop_f - self.max_crop_f = max_crop_f - assert max_crop_f <= 1.0 - self.center_crop = not random_crop - - self.image_rescaler = albumentations.SmallestMaxSize( - max_size=size, interpolation=cv2.INTER_AREA - ) - - self.pil_interpolation = ( - False # gets reset later if incase interp_op is from pillow - ) - - if degradation == "bsrgan": - self.degradation_process = partial(degradation_fn_bsr, sf=downscale_f) - - elif degradation == "bsrgan_light": - self.degradation_process = partial(degradation_fn_bsr_light, sf=downscale_f) - - else: - interpolation_fn = { - "cv_nearest": cv2.INTER_NEAREST, - "cv_bilinear": cv2.INTER_LINEAR, - "cv_bicubic": cv2.INTER_CUBIC, - "cv_area": cv2.INTER_AREA, - "cv_lanczos": cv2.INTER_LANCZOS4, - "pil_nearest": PIL.Image.NEAREST, - "pil_bilinear": PIL.Image.BILINEAR, - "pil_bicubic": PIL.Image.BICUBIC, - "pil_box": PIL.Image.BOX, - "pil_hamming": PIL.Image.HAMMING, - "pil_lanczos": PIL.Image.LANCZOS, - }[degradation] - - self.pil_interpolation = degradation.startswith("pil_") - - if self.pil_interpolation: - self.degradation_process = partial( - TF.resize, - size=self.LR_size, - interpolation=interpolation_fn, - ) - - else: - self.degradation_process = albumentations.SmallestMaxSize( - max_size=self.LR_size, interpolation=interpolation_fn - ) - - def __len__(self): - return len(self.base) - - def __getitem__(self, i): - example = self.base[i] - image = Image.open(example["file_path_"]) - - if not image.mode == "RGB": - image = image.convert("RGB") - - image = np.array(image).astype(np.uint8) - - min_side_len = min(image.shape[:2]) - crop_side_len = min_side_len * np.random.uniform( - self.min_crop_f, self.max_crop_f, size=None - ) - crop_side_len = int(crop_side_len) - - if self.center_crop: - self.cropper = albumentations.CenterCrop( - height=crop_side_len, width=crop_side_len - ) - - else: - self.cropper = albumentations.RandomCrop( - height=crop_side_len, width=crop_side_len - ) - - image = self.cropper(image=image)["image"] - image = self.image_rescaler(image=image)["image"] - - if self.pil_interpolation: - image_pil = PIL.Image.fromarray(image) - LR_image = self.degradation_process(image_pil) - LR_image = np.array(LR_image).astype(np.uint8) - - else: - LR_image = self.degradation_process(image=image)["image"] - - example["image"] = (image / 127.5 - 1.0).astype(np.float32) - example["LR_image"] = (LR_image / 127.5 - 1.0).astype(np.float32) - - return example - - -class ImageNetSRTrain(ImageNetSR): - def __init__(self, **kwargs): - super().__init__(**kwargs) - - def get_base(self): - with open("data/imagenet_train_hr_indices.p", "rb") as f: - indices = pickle.load(f) - dset = ImageNetTrain( - process_images=False, - ) - return Subset(dset, indices) - - -class ImageNetSRValidation(ImageNetSR): - def __init__(self, **kwargs): - super().__init__(**kwargs) - - def get_base(self): - with open("data/imagenet_val_hr_indices.p", "rb") as f: - indices = pickle.load(f) - dset = ImageNetValidation( - process_images=False, - ) - return Subset(dset, indices) diff --git a/invokeai/backend/stable_diffusion/data/lsun.py b/invokeai/backend/stable_diffusion/data/lsun.py deleted file mode 100644 index e9c2543f10..0000000000 --- a/invokeai/backend/stable_diffusion/data/lsun.py +++ /dev/null @@ -1,124 +0,0 @@ -import os - -import numpy as np -import PIL -from PIL import Image -from torch.utils.data import Dataset -from torchvision import transforms - - -class LSUNBase(Dataset): - def __init__( - self, - txt_file, - data_root, - size=None, - interpolation="bicubic", - flip_p=0.5, - ): - self.data_paths = txt_file - self.data_root = data_root - with open(self.data_paths, "r") as f: - self.image_paths = f.read().splitlines() - self._length = len(self.image_paths) - self.labels = { - "relative_file_path_": [l for l in self.image_paths], - "file_path_": [os.path.join(self.data_root, l) for l in self.image_paths], - } - - self.size = size - self.interpolation = { - "linear": PIL.Image.LINEAR, - "bilinear": PIL.Image.BILINEAR, - "bicubic": PIL.Image.BICUBIC, - "lanczos": PIL.Image.LANCZOS, - }[interpolation] - self.flip = transforms.RandomHorizontalFlip(p=flip_p) - - def __len__(self): - return self._length - - def __getitem__(self, i): - example = dict((k, self.labels[k][i]) for k in self.labels) - image = Image.open(example["file_path_"]) - if not image.mode == "RGB": - image = image.convert("RGB") - - # default to score-sde preprocessing - img = np.array(image).astype(np.uint8) - crop = min(img.shape[0], img.shape[1]) - ( - h, - w, - ) = ( - img.shape[0], - img.shape[1], - ) - img = img[ - (h - crop) // 2 : (h + crop) // 2, - (w - crop) // 2 : (w + crop) // 2, - ] - - image = Image.fromarray(img) - if self.size is not None: - image = image.resize((self.size, self.size), resample=self.interpolation) - - image = self.flip(image) - image = np.array(image).astype(np.uint8) - example["image"] = (image / 127.5 - 1.0).astype(np.float32) - return example - - -class LSUNChurchesTrain(LSUNBase): - def __init__(self, **kwargs): - super().__init__( - txt_file="data/lsun/church_outdoor_train.txt", - data_root="data/lsun/churches", - **kwargs, - ) - - -class LSUNChurchesValidation(LSUNBase): - def __init__(self, flip_p=0.0, **kwargs): - super().__init__( - txt_file="data/lsun/church_outdoor_val.txt", - data_root="data/lsun/churches", - flip_p=flip_p, - **kwargs, - ) - - -class LSUNBedroomsTrain(LSUNBase): - def __init__(self, **kwargs): - super().__init__( - txt_file="data/lsun/bedrooms_train.txt", - data_root="data/lsun/bedrooms", - **kwargs, - ) - - -class LSUNBedroomsValidation(LSUNBase): - def __init__(self, flip_p=0.0, **kwargs): - super().__init__( - txt_file="data/lsun/bedrooms_val.txt", - data_root="data/lsun/bedrooms", - flip_p=flip_p, - **kwargs, - ) - - -class LSUNCatsTrain(LSUNBase): - def __init__(self, **kwargs): - super().__init__( - txt_file="data/lsun/cat_train.txt", data_root="data/lsun/cats", **kwargs - ) - - -class LSUNCatsValidation(LSUNBase): - def __init__(self, flip_p=0.0, **kwargs): - super().__init__( - txt_file="data/lsun/cat_val.txt", - data_root="data/lsun/cats", - flip_p=flip_p, - **kwargs, - ) diff --git a/invokeai/backend/stable_diffusion/data/personalized.py b/invokeai/backend/stable_diffusion/data/personalized.py deleted file mode 100644 index fc8297a68a..0000000000 --- a/invokeai/backend/stable_diffusion/data/personalized.py +++ /dev/null @@ -1,199 +0,0 @@ -import os -import random - -import numpy as np -import PIL -from PIL import Image -from torch.utils.data import Dataset -from torchvision import transforms - -imagenet_templates_smallest = [ - "a photo of a {}", -] - -imagenet_templates_small = [ - "a photo of a {}", - "a rendering of a {}", - "a cropped photo of the {}", - "the photo of a {}", - "a photo of a clean {}", - "a photo of a dirty {}", - "a dark photo of the {}", - "a photo of my {}", - "a photo of the cool {}", - "a close-up photo of a {}", - "a bright photo of the {}", - "a cropped photo of a {}", - "a photo of the {}", - "a good photo of the {}", - "a photo of one {}", - "a close-up photo of the {}", - "a rendition of the {}", - "a photo of the clean {}", - "a rendition of a {}", - "a photo of a nice {}", - "a good photo of a {}", - "a photo of the nice {}", - "a photo of the small {}", - "a photo of the weird {}", - "a photo of the large {}", - "a photo of a cool {}", - "a photo of a small {}", -] - -imagenet_dual_templates_small = [ - "a photo of a {} with {}", - "a rendering of a {} with {}", - "a cropped photo of the {} with {}", - "the photo of a {} with {}", - "a photo of a clean {} with {}", - "a photo of a dirty {} with {}", - "a dark photo of the {} with {}", - "a photo of my {} with {}", - "a photo of the cool {} with {}", - "a close-up photo of a {} with {}", - "a bright photo of the {} with {}", - "a cropped photo of a {} with {}", - "a photo of the {} with {}", - "a good photo of the {} with {}", - "a photo of one {} with {}", - "a close-up photo of the {} with {}", - "a rendition of the {} with {}", - "a photo of the clean {} with {}", - "a rendition of a {} with {}", - "a photo of a nice {} with {}", - "a good photo of a {} with {}", - "a photo of the nice {} with {}", - "a photo of the small {} with {}", - "a photo of the weird {} with {}", - "a photo of the large {} with {}", - "a photo of a cool {} with {}", - "a photo of a small {} with {}", -] - -per_img_token_list = [ - "א", - "ב", - "ג", - "ד", - "ה", - "ו", - "ז", - "ח", - "ט", - "י", - "כ", - "ל", - "מ", - "נ", - "ס", - "ע", - "פ", - "צ", - "ק", - "ר", - "ש", - "ת", -] - - -class PersonalizedBase(Dataset): - def __init__( - self, - data_root, - size=None, - repeats=100, - interpolation="bicubic", - flip_p=0.5, - set="train", - placeholder_token="*", - per_image_tokens=False, - center_crop=False, - mixing_prob=0.25, - coarse_class_text=None, - ): - self.data_root = data_root - - self.image_paths = [ - os.path.join(self.data_root, file_path) - for file_path in os.listdir(self.data_root) - if file_path != ".DS_Store" - ] - - # self._length = len(self.image_paths) - self.num_images = len(self.image_paths) - self._length = self.num_images - - self.placeholder_token = placeholder_token - - self.per_image_tokens = per_image_tokens - self.center_crop = center_crop - self.mixing_prob = mixing_prob - - self.coarse_class_text = coarse_class_text - - if per_image_tokens: - assert self.num_images < len( - per_img_token_list - ), f"Can't use per-image tokens when the training set contains more than {len(per_img_token_list)} tokens. To enable larger sets, add more tokens to 'per_img_token_list'." - - if set == "train": - self._length = self.num_images * repeats - - self.size = size - self.interpolation = { - "linear": PIL.Image.LINEAR, - "bilinear": PIL.Image.BILINEAR, - "bicubic": PIL.Image.BICUBIC, - "lanczos": PIL.Image.LANCZOS, - }[interpolation] - self.flip = transforms.RandomHorizontalFlip(p=flip_p) - - def __len__(self): - return self._length - - def __getitem__(self, i): - example = {} - image = Image.open(self.image_paths[i % self.num_images]) - - if not image.mode == "RGB": - image = image.convert("RGB") - - placeholder_string = self.placeholder_token - if self.coarse_class_text: - placeholder_string = f"{self.coarse_class_text} {placeholder_string}" - - if self.per_image_tokens and np.random.uniform() < self.mixing_prob: - text = random.choice(imagenet_dual_templates_small).format( - placeholder_string, per_img_token_list[i % self.num_images] - ) - else: - text = random.choice(imagenet_templates_small).format(placeholder_string) - - example["caption"] = text - - # default to score-sde preprocessing - img = np.array(image).astype(np.uint8) - - if self.center_crop: - crop = min(img.shape[0], img.shape[1]) - ( - h, - w, - ) = ( - img.shape[0], - img.shape[1], - ) - img = img[ - (h - crop) // 2 : (h + crop) // 2, - (w - crop) // 2 : (w + crop) // 2, - ] - - image = Image.fromarray(img) - if self.size is not None: - image = image.resize((self.size, self.size), resample=self.interpolation) - - image = self.flip(image) - image = np.array(image).astype(np.uint8) - example["image"] = (image / 127.5 - 1.0).astype(np.float32) - return example diff --git a/invokeai/backend/stable_diffusion/data/personalized_style.py b/invokeai/backend/stable_diffusion/data/personalized_style.py deleted file mode 100644 index 246c25e930..0000000000 --- a/invokeai/backend/stable_diffusion/data/personalized_style.py +++ /dev/null @@ -1,170 +0,0 @@ -import os -import random - -import numpy as np -import PIL -from PIL import Image -from torch.utils.data import Dataset -from torchvision import transforms - -imagenet_templates_small = [ - "a painting in the style of {}", - "a rendering in the style of {}", - "a cropped painting in the style of {}", - "the painting in the style of {}", - "a clean painting in the style of {}", - "a dirty painting in the style of {}", - "a dark painting in the style of {}", - "a picture in the style of {}", - "a cool painting in the style of {}", - "a close-up painting in the style of {}", - "a bright painting in the style of {}", - "a cropped painting in the style of {}", - "a good painting in the style of {}", - "a close-up painting in the style of {}", - "a rendition in the style of {}", - "a nice painting in the style of {}", - "a small painting in the style of {}", - "a weird painting in the style of {}", - "a large painting in the style of {}", -] - -imagenet_dual_templates_small = [ - "a painting in the style of {} with {}", - "a rendering in the style of {} with {}", - "a cropped painting in the style of {} with {}", - "the painting in the style of {} with {}", - "a clean painting in the style of {} with {}", - "a dirty painting in the style of {} with {}", - "a dark painting in the style of {} with {}", - "a cool painting in the style of {} with {}", - "a close-up painting in the style of {} with {}", - "a bright painting in the style of {} with {}", - "a cropped painting in the style of {} with {}", - "a good painting in the style of {} with {}", - "a painting of one {} in the style of {}", - "a nice painting in the style of {} with {}", - "a small painting in the style of {} with {}", - "a weird painting in the style of {} with {}", - "a large painting in the style of {} with {}", -] - -per_img_token_list = [ - "א", - "ב", - "ג", - "ד", - "ה", - "ו", - "ז", - "ח", - "ט", - "י", - "כ", - "ל", - "מ", - "נ", - "ס", - "ע", - "פ", - "צ", - "ק", - "ר", - "ש", - "ת", -] - - -class PersonalizedBase(Dataset): - def __init__( - self, - data_root, - size=None, - repeats=100, - interpolation="bicubic", - flip_p=0.5, - set="train", - placeholder_token="*", - per_image_tokens=False, - center_crop=False, - ): - self.data_root = data_root - - self.image_paths = [ - os.path.join(self.data_root, file_path) - for file_path in os.listdir(self.data_root) - if file_path != ".DS_Store" - ] - - # self._length = len(self.image_paths) - self.num_images = len(self.image_paths) - self._length = self.num_images - - self.placeholder_token = placeholder_token - - self.per_image_tokens = per_image_tokens - self.center_crop = center_crop - - if per_image_tokens: - assert self.num_images < len( - per_img_token_list - ), f"Can't use per-image tokens when the training set contains more than {len(per_img_token_list)} tokens. To enable larger sets, add more tokens to 'per_img_token_list'." - - if set == "train": - self._length = self.num_images * repeats - - self.size = size - self.interpolation = { - "linear": PIL.Image.LINEAR, - "bilinear": PIL.Image.BILINEAR, - "bicubic": PIL.Image.BICUBIC, - "lanczos": PIL.Image.LANCZOS, - }[interpolation] - self.flip = transforms.RandomHorizontalFlip(p=flip_p) - - def __len__(self): - return self._length - - def __getitem__(self, i): - example = {} - image = Image.open(self.image_paths[i % self.num_images]) - - if not image.mode == "RGB": - image = image.convert("RGB") - - if self.per_image_tokens and np.random.uniform() < 0.25: - text = random.choice(imagenet_dual_templates_small).format( - self.placeholder_token, per_img_token_list[i % self.num_images] - ) - else: - text = random.choice(imagenet_templates_small).format( - self.placeholder_token - ) - - example["caption"] = text - - # default to score-sde preprocessing - img = np.array(image).astype(np.uint8) - - if self.center_crop: - crop = min(img.shape[0], img.shape[1]) - ( - h, - w, - ) = ( - img.shape[0], - img.shape[1], - ) - img = img[ - (h - crop) // 2 : (h + crop) // 2, - (w - crop) // 2 : (w + crop) // 2, - ] - - image = Image.fromarray(img) - if self.size is not None: - image = image.resize((self.size, self.size), resample=self.interpolation) - - image = self.flip(image) - image = np.array(image).astype(np.uint8) - example["image"] = (image / 127.5 - 1.0).astype(np.float32) - return example diff --git a/invokeai/backend/stable_diffusion/diffusion/classifier.py b/invokeai/backend/stable_diffusion/diffusion/classifier.py deleted file mode 100644 index 89aba16ee9..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/classifier.py +++ /dev/null @@ -1,330 +0,0 @@ -import os -from copy import deepcopy -from glob import glob - -import pytorch_lightning as pl -import torch -from einops import rearrange -from ldm.modules.diffusionmodules.openaimodel import EncoderUNetModel, UNetModel -from ldm.util import default, instantiate_from_config, ismap, log_txt_as_img -from natsort import natsorted -from omegaconf import OmegaConf -from torch.nn import functional as F -from torch.optim import AdamW -from torch.optim.lr_scheduler import LambdaLR - -__models__ = {"class_label": EncoderUNetModel, "segmentation": UNetModel} - - -def disabled_train(self, mode=True): - """Overwrite model.train with this function to make sure train/eval mode - does not change anymore.""" - return self - - -class NoisyLatentImageClassifier(pl.LightningModule): - def __init__( - self, - diffusion_path, - num_classes, - ckpt_path=None, - pool="attention", - label_key=None, - diffusion_ckpt_path=None, - scheduler_config=None, - weight_decay=1.0e-2, - log_steps=10, - monitor="val/loss", - *args, - **kwargs, - ): - super().__init__(*args, **kwargs) - self.num_classes = num_classes - # get latest config of diffusion model - diffusion_config = natsorted( - glob(os.path.join(diffusion_path, "configs", "*-project.yaml")) - )[-1] - self.diffusion_config = OmegaConf.load(diffusion_config).model - self.diffusion_config.params.ckpt_path = diffusion_ckpt_path - self.load_diffusion() - - self.monitor = monitor - self.numd = self.diffusion_model.first_stage_model.encoder.num_resolutions - 1 - self.log_time_interval = self.diffusion_model.num_timesteps // log_steps - self.log_steps = log_steps - - self.label_key = ( - label_key - if not hasattr(self.diffusion_model, "cond_stage_key") - else self.diffusion_model.cond_stage_key - ) - - assert ( - self.label_key is not None - ), "label_key neither in diffusion model nor in model.params" - - if self.label_key not in __models__: - raise NotImplementedError() - - self.load_classifier(ckpt_path, pool) - - self.scheduler_config = scheduler_config - self.use_scheduler = self.scheduler_config is not None - self.weight_decay = weight_decay - - def init_from_ckpt(self, path, ignore_keys=list(), only_model=False): - sd = torch.load(path, map_location="cpu") - if "state_dict" in list(sd.keys()): - sd = sd["state_dict"] - keys = list(sd.keys()) - for k in keys: - for ik in ignore_keys: - if k.startswith(ik): - print("Deleting key {} from state_dict.".format(k)) - del sd[k] - missing, unexpected = ( - self.load_state_dict(sd, strict=False) - if not only_model - else self.model.load_state_dict(sd, strict=False) - ) - print( - f"Restored from {path} with {len(missing)} missing and {len(unexpected)} unexpected keys" - ) - if len(missing) > 0: - print(f"Missing Keys: {missing}") - if len(unexpected) > 0: - print(f"Unexpected Keys: {unexpected}") - - def load_diffusion(self): - model = instantiate_from_config(self.diffusion_config) - self.diffusion_model = model.eval() - self.diffusion_model.train = disabled_train - for param in self.diffusion_model.parameters(): - param.requires_grad = False - - def load_classifier(self, ckpt_path, pool): - model_config = deepcopy(self.diffusion_config.params.unet_config.params) - model_config.in_channels = ( - self.diffusion_config.params.unet_config.params.out_channels - ) - model_config.out_channels = self.num_classes - if self.label_key == "class_label": - model_config.pool = pool - - self.model = __models__[self.label_key](**model_config) - if ckpt_path is not None: - print( - "#####################################################################" - ) - print(f'load from ckpt "{ckpt_path}"') - print( - "#####################################################################" - ) - self.init_from_ckpt(ckpt_path) - - @torch.no_grad() - def get_x_noisy(self, x, t, noise=None): - noise = default(noise, lambda: torch.randn_like(x)) - continuous_sqrt_alpha_cumprod = None - if self.diffusion_model.use_continuous_noise: - continuous_sqrt_alpha_cumprod = ( - self.diffusion_model.sample_continuous_noise_level(x.shape[0], t + 1) - ) - # todo: make sure t+1 is correct here - - return self.diffusion_model.q_sample( - x_start=x, - t=t, - noise=noise, - continuous_sqrt_alpha_cumprod=continuous_sqrt_alpha_cumprod, - ) - - def forward(self, x_noisy, t, *args, **kwargs): - return self.model(x_noisy, t) - - @torch.no_grad() - def get_input(self, batch, k): - x = batch[k] - if len(x.shape) == 3: - x = x[..., None] - x = rearrange(x, "b h w c -> b c h w") - x = x.to(memory_format=torch.contiguous_format).float() - return x - - @torch.no_grad() - def get_conditioning(self, batch, k=None): - if k is None: - k = self.label_key - assert k is not None, "Needs to provide label key" - - targets = batch[k].to(self.device) - - if self.label_key == "segmentation": - targets = rearrange(targets, "b h w c -> b c h w") - for down in range(self.numd): - h, w = targets.shape[-2:] - targets = F.interpolate(targets, size=(h // 2, w // 2), mode="nearest") - - # targets = rearrange(targets,'b c h w -> b h w c') - - return targets - - def compute_top_k(self, logits, labels, k, reduction="mean"): - _, top_ks = torch.topk(logits, k, dim=1) - if reduction == "mean": - return (top_ks == labels[:, None]).float().sum(dim=-1).mean().item() - elif reduction == "none": - return (top_ks == labels[:, None]).float().sum(dim=-1) - - def on_train_epoch_start(self): - # save some memory - self.diffusion_model.model.to("cpu") - - @torch.no_grad() - def write_logs(self, loss, logits, targets): - log_prefix = "train" if self.training else "val" - log = {} - log[f"{log_prefix}/loss"] = loss.mean() - log[f"{log_prefix}/acc@1"] = self.compute_top_k( - logits, targets, k=1, reduction="mean" - ) - log[f"{log_prefix}/acc@5"] = self.compute_top_k( - logits, targets, k=5, reduction="mean" - ) - - self.log_dict( - log, - prog_bar=False, - logger=True, - on_step=self.training, - on_epoch=True, - ) - self.log("loss", log[f"{log_prefix}/loss"], prog_bar=True, logger=False) - self.log( - "global_step", - self.global_step, - logger=False, - on_epoch=False, - prog_bar=True, - ) - lr = self.optimizers().param_groups[0]["lr"] - self.log( - "lr_abs", - lr, - on_step=True, - logger=True, - on_epoch=False, - prog_bar=True, - ) - - def shared_step(self, batch, t=None): - x, *_ = self.diffusion_model.get_input( - batch, k=self.diffusion_model.first_stage_key - ) - targets = self.get_conditioning(batch) - if targets.dim() == 4: - targets = targets.argmax(dim=1) - if t is None: - t = torch.randint( - 0, - self.diffusion_model.num_timesteps, - (x.shape[0],), - device=self.device, - ).long() - else: - t = torch.full(size=(x.shape[0],), fill_value=t, device=self.device).long() - x_noisy = self.get_x_noisy(x, t) - logits = self(x_noisy, t) - - loss = F.cross_entropy(logits, targets, reduction="none") - - self.write_logs(loss.detach(), logits.detach(), targets.detach()) - - loss = loss.mean() - return loss, logits, x_noisy, targets - - def training_step(self, batch, batch_idx): - loss, *_ = self.shared_step(batch) - return loss - - def reset_noise_accs(self): - self.noisy_acc = { - t: {"acc@1": [], "acc@5": []} - for t in range( - 0, - self.diffusion_model.num_timesteps, - self.diffusion_model.log_every_t, - ) - } - - def on_validation_start(self): - self.reset_noise_accs() - - @torch.no_grad() - def validation_step(self, batch, batch_idx): - loss, *_ = self.shared_step(batch) - - for t in self.noisy_acc: - _, logits, _, targets = self.shared_step(batch, t) - self.noisy_acc[t]["acc@1"].append( - self.compute_top_k(logits, targets, k=1, reduction="mean") - ) - self.noisy_acc[t]["acc@5"].append( - self.compute_top_k(logits, targets, k=5, reduction="mean") - ) - - return loss - - def configure_optimizers(self): - optimizer = AdamW( - self.model.parameters(), - lr=self.learning_rate, - weight_decay=self.weight_decay, - ) - - if self.use_scheduler: - scheduler = instantiate_from_config(self.scheduler_config) - - print("Setting up LambdaLR scheduler...") - scheduler = [ - { - "scheduler": LambdaLR(optimizer, lr_lambda=scheduler.schedule), - "interval": "step", - "frequency": 1, - } - ] - return [optimizer], scheduler - - return optimizer - - @torch.no_grad() - def log_images(self, batch, N=8, *args, **kwargs): - log = dict() - x = self.get_input(batch, self.diffusion_model.first_stage_key) - log["inputs"] = x - - y = self.get_conditioning(batch) - - if self.label_key == "class_label": - y = log_txt_as_img((x.shape[2], x.shape[3]), batch["human_label"]) - log["labels"] = y - - if ismap(y): - log["labels"] = self.diffusion_model.to_rgb(y) - - for step in range(self.log_steps): - current_time = step * self.log_time_interval - - _, logits, x_noisy, _ = self.shared_step(batch, t=current_time) - - log[f"inputs@t{current_time}"] = x_noisy - - pred = F.one_hot(logits.argmax(dim=1), num_classes=self.num_classes) - pred = rearrange(pred, "b h w c -> b c h w") - - log[f"pred@t{current_time}"] = self.diffusion_model.to_rgb(pred) - - for key in log: - log[key] = log[key][:N] - - return log diff --git a/invokeai/backend/stable_diffusion/diffusion/ddim.py b/invokeai/backend/stable_diffusion/diffusion/ddim.py deleted file mode 100644 index 87f6f2166b..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/ddim.py +++ /dev/null @@ -1,113 +0,0 @@ -"""SAMPLING ONLY.""" - -import torch - -from ..diffusionmodules.util import noise_like -from .sampler import Sampler -from .shared_invokeai_diffusion import InvokeAIDiffuserComponent - - -class DDIMSampler(Sampler): - def __init__(self, model, schedule="linear", device=None, **kwargs): - super().__init__(model, schedule, model.num_timesteps, device) - - self.invokeai_diffuser = InvokeAIDiffuserComponent( - self.model, - model_forward_callback=lambda x, sigma, cond: self.model.apply_model( - x, sigma, cond - ), - ) - - def prepare_to_sample(self, t_enc, **kwargs): - super().prepare_to_sample(t_enc, **kwargs) - - extra_conditioning_info = kwargs.get("extra_conditioning_info", None) - all_timesteps_count = kwargs.get("all_timesteps_count", t_enc) - - if ( - extra_conditioning_info is not None - and extra_conditioning_info.wants_cross_attention_control - ): - self.invokeai_diffuser.override_cross_attention( - extra_conditioning_info, step_count=all_timesteps_count - ) - else: - self.invokeai_diffuser.restore_default_cross_attention() - - # This is the central routine - @torch.no_grad() - def p_sample( - self, - x, - c, - t, - index, - repeat_noise=False, - use_original_steps=False, - quantize_denoised=False, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - step_count: int = 1000, # total number of steps - **kwargs, - ): - b, *_, device = *x.shape, x.device - - if unconditional_conditioning is None or unconditional_guidance_scale == 1.0: - # damian0815 would like to know when/if this code path is used - e_t = self.model.apply_model(x, t, c) - else: - # step_index counts in the opposite direction to index - step_index = step_count - (index + 1) - e_t = self.invokeai_diffuser.do_diffusion_step( - x, - t, - unconditional_conditioning, - c, - unconditional_guidance_scale, - step_index=step_index, - ) - if score_corrector is not None: - assert self.model.parameterization == "eps" - e_t = score_corrector.modify_score( - self.model, e_t, x, t, c, **corrector_kwargs - ) - - alphas = self.model.alphas_cumprod if use_original_steps else self.ddim_alphas - alphas_prev = ( - self.model.alphas_cumprod_prev - if use_original_steps - else self.ddim_alphas_prev - ) - sqrt_one_minus_alphas = ( - self.model.sqrt_one_minus_alphas_cumprod - if use_original_steps - else self.ddim_sqrt_one_minus_alphas - ) - sigmas = ( - self.model.ddim_sigmas_for_original_num_steps - if use_original_steps - else self.ddim_sigmas - ) - # select parameters corresponding to the currently considered timestep - a_t = torch.full((b, 1, 1, 1), alphas[index], device=device) - a_prev = torch.full((b, 1, 1, 1), alphas_prev[index], device=device) - sigma_t = torch.full((b, 1, 1, 1), sigmas[index], device=device) - sqrt_one_minus_at = torch.full( - (b, 1, 1, 1), sqrt_one_minus_alphas[index], device=device - ) - - # current prediction for x_0 - pred_x0 = (x - sqrt_one_minus_at * e_t) / a_t.sqrt() - if quantize_denoised: - pred_x0, _, *_ = self.model.first_stage_model.quantize(pred_x0) - # direction pointing to x_t - dir_xt = (1.0 - a_prev - sigma_t**2).sqrt() * e_t - noise = sigma_t * noise_like(x.shape, device, repeat_noise) * temperature - if noise_dropout > 0.0: - noise = torch.nn.functional.dropout(noise, p=noise_dropout) - x_prev = a_prev.sqrt() * pred_x0 + dir_xt + noise - return x_prev, pred_x0, None diff --git a/invokeai/backend/stable_diffusion/diffusion/ddpm.py b/invokeai/backend/stable_diffusion/diffusion/ddpm.py deleted file mode 100644 index 6741498303..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/ddpm.py +++ /dev/null @@ -1,2125 +0,0 @@ -""" -wild mixture of -https://github.com/lucidrains/denoising-diffusion-pytorch/blob/7706bdfc6f527f58d33f84b7b522e61e6e3164b3/denoising_diffusion_pytorch/denoising_diffusion_pytorch.py -https://github.com/openai/improved-diffusion/blob/e94489283bb876ac1477d5dd7709bbbd2d9902ce/improved_diffusion/gaussian_diffusion.py -https://github.com/CompVis/taming-transformers --- merci -""" - -import os -import urllib -from contextlib import contextmanager -from functools import partial - -import numpy as np -import pytorch_lightning as pl -import torch -import torch.nn as nn -from einops import rearrange, repeat -from omegaconf import ListConfig -from pytorch_lightning.utilities.distributed import rank_zero_only -from torch.optim.lr_scheduler import LambdaLR -from torchvision.utils import make_grid -from tqdm import tqdm - -from ...util.util import ( - count_params, - default, - exists, - instantiate_from_config, - isimage, - ismap, - log_txt_as_img, - mean_flat, -) -from ..autoencoder import AutoencoderKL, IdentityFirstStage, VQModelInterface -from ..diffusionmodules.util import extract_into_tensor, make_beta_schedule, noise_like -from ..distributions.distributions import DiagonalGaussianDistribution, normal_kl -from ..ema import LitEma -from ..textual_inversion_manager import TextualInversionManager -from .ddim import DDIMSampler - -__conditioning_keys__ = { - "concat": "c_concat", - "crossattn": "c_crossattn", - "adm": "y", -} - - -def disabled_train(self, mode=True): - """Overwrite model.train with this function to make sure train/eval mode - does not change anymore.""" - return self - - -def uniform_on_device(r1, r2, shape, device): - return (r1 - r2) * torch.rand(*shape, device=device) + r2 - - -class DDPM(pl.LightningModule): - # classic DDPM with Gaussian diffusion, in image space - def __init__( - self, - unet_config, - timesteps=1000, - beta_schedule="linear", - loss_type="l2", - ckpt_path=None, - ignore_keys=[], - load_only_unet=False, - monitor="val/loss", - use_ema=True, - first_stage_key="image", - image_size=256, - channels=3, - log_every_t=100, - clip_denoised=True, - linear_start=1e-4, - linear_end=2e-2, - cosine_s=8e-3, - given_betas=None, - original_elbo_weight=0.0, - embedding_reg_weight=0.0, - v_posterior=0.0, # weight for choosing posterior variance as sigma = (1-v) * beta_tilde + v * beta - l_simple_weight=1.0, - conditioning_key=None, - parameterization="eps", # all assuming fixed variance schedules - scheduler_config=None, - use_positional_encodings=False, - learn_logvar=False, - logvar_init=0.0, - ): - super().__init__() - assert parameterization in [ - "eps", - "x0", - ], 'currently only supporting "eps" and "x0"' - self.parameterization = parameterization - print( - f" | {self.__class__.__name__}: Running in {self.parameterization}-prediction mode" - ) - self.cond_stage_model = None - self.clip_denoised = clip_denoised - self.log_every_t = log_every_t - self.first_stage_key = first_stage_key - self.image_size = image_size # try conv? - self.channels = channels - self.use_positional_encodings = use_positional_encodings - self.model = DiffusionWrapper(unet_config, conditioning_key) - count_params(self.model, verbose=True) - self.use_ema = use_ema - if self.use_ema: - self.model_ema = LitEma(self.model) - print(f" | Keeping EMAs of {len(list(self.model_ema.buffers()))}.") - - self.use_scheduler = scheduler_config is not None - if self.use_scheduler: - self.scheduler_config = scheduler_config - - self.v_posterior = v_posterior - self.original_elbo_weight = original_elbo_weight - self.l_simple_weight = l_simple_weight - self.embedding_reg_weight = embedding_reg_weight - - if monitor is not None: - self.monitor = monitor - if ckpt_path is not None: - self.init_from_ckpt( - ckpt_path, ignore_keys=ignore_keys, only_model=load_only_unet - ) - - self.register_schedule( - given_betas=given_betas, - beta_schedule=beta_schedule, - timesteps=timesteps, - linear_start=linear_start, - linear_end=linear_end, - cosine_s=cosine_s, - ) - - self.loss_type = loss_type - - self.learn_logvar = learn_logvar - self.logvar = torch.full(fill_value=logvar_init, size=(self.num_timesteps,)) - if self.learn_logvar: - self.logvar = nn.Parameter(self.logvar, requires_grad=True) - - def register_schedule( - self, - given_betas=None, - beta_schedule="linear", - timesteps=1000, - linear_start=1e-4, - linear_end=2e-2, - cosine_s=8e-3, - ): - if exists(given_betas): - betas = given_betas - else: - betas = make_beta_schedule( - beta_schedule, - timesteps, - linear_start=linear_start, - linear_end=linear_end, - cosine_s=cosine_s, - ) - alphas = 1.0 - betas - alphas_cumprod = np.cumprod(alphas, axis=0) - alphas_cumprod_prev = np.append(1.0, alphas_cumprod[:-1]) - - (timesteps,) = betas.shape - self.num_timesteps = int(timesteps) - self.linear_start = linear_start - self.linear_end = linear_end - assert ( - alphas_cumprod.shape[0] == self.num_timesteps - ), "alphas have to be defined for each timestep" - - to_torch = partial(torch.tensor, dtype=torch.float32) - - self.register_buffer("betas", to_torch(betas)) - self.register_buffer("alphas_cumprod", to_torch(alphas_cumprod)) - self.register_buffer("alphas_cumprod_prev", to_torch(alphas_cumprod_prev)) - - # calculations for diffusion q(x_t | x_{t-1}) and others - self.register_buffer("sqrt_alphas_cumprod", to_torch(np.sqrt(alphas_cumprod))) - self.register_buffer( - "sqrt_one_minus_alphas_cumprod", - to_torch(np.sqrt(1.0 - alphas_cumprod)), - ) - self.register_buffer( - "log_one_minus_alphas_cumprod", - to_torch(np.log(1.0 - alphas_cumprod)), - ) - self.register_buffer( - "sqrt_recip_alphas_cumprod", - to_torch(np.sqrt(1.0 / alphas_cumprod)), - ) - self.register_buffer( - "sqrt_recipm1_alphas_cumprod", - to_torch(np.sqrt(1.0 / alphas_cumprod - 1)), - ) - - # calculations for posterior q(x_{t-1} | x_t, x_0) - posterior_variance = (1 - self.v_posterior) * betas * ( - 1.0 - alphas_cumprod_prev - ) / (1.0 - alphas_cumprod) + self.v_posterior * betas - # above: equal to 1. / (1. / (1. - alpha_cumprod_tm1) + alpha_t / beta_t) - self.register_buffer("posterior_variance", to_torch(posterior_variance)) - # below: log calculation clipped because the posterior variance is 0 at the beginning of the diffusion chain - self.register_buffer( - "posterior_log_variance_clipped", - to_torch(np.log(np.maximum(posterior_variance, 1e-20))), - ) - self.register_buffer( - "posterior_mean_coef1", - to_torch(betas * np.sqrt(alphas_cumprod_prev) / (1.0 - alphas_cumprod)), - ) - self.register_buffer( - "posterior_mean_coef2", - to_torch( - (1.0 - alphas_cumprod_prev) * np.sqrt(alphas) / (1.0 - alphas_cumprod) - ), - ) - - if self.parameterization == "eps": - lvlb_weights = self.betas**2 / ( - 2 - * self.posterior_variance - * to_torch(alphas) - * (1 - self.alphas_cumprod) - ) - elif self.parameterization == "x0": - lvlb_weights = ( - 0.5 - * np.sqrt(torch.Tensor(alphas_cumprod)) - / (2.0 * 1 - torch.Tensor(alphas_cumprod)) - ) - else: - raise NotImplementedError("mu not supported") - # TODO how to choose this term - lvlb_weights[0] = lvlb_weights[1] - self.register_buffer("lvlb_weights", lvlb_weights, persistent=False) - assert not torch.isnan(self.lvlb_weights).all() - - @contextmanager - def ema_scope(self, context=None): - if self.use_ema: - self.model_ema.store(self.model.parameters()) - self.model_ema.copy_to(self.model) - if context is not None: - print(f"{context}: Switched to EMA weights") - try: - yield None - finally: - if self.use_ema: - self.model_ema.restore(self.model.parameters()) - if context is not None: - print(f"{context}: Restored training weights") - - def init_from_ckpt(self, path, ignore_keys=list(), only_model=False): - sd = torch.load(path, map_location="cpu") - if "state_dict" in list(sd.keys()): - sd = sd["state_dict"] - keys = list(sd.keys()) - for k in keys: - for ik in ignore_keys: - if k.startswith(ik): - print("Deleting key {} from state_dict.".format(k)) - del sd[k] - missing, unexpected = ( - self.load_state_dict(sd, strict=False) - if not only_model - else self.model.load_state_dict(sd, strict=False) - ) - print( - f"Restored from {path} with {len(missing)} missing and {len(unexpected)} unexpected keys" - ) - if len(missing) > 0: - print(f"Missing Keys: {missing}") - if len(unexpected) > 0: - print(f"Unexpected Keys: {unexpected}") - - def q_mean_variance(self, x_start, t): - """ - Get the distribution q(x_t | x_0). - :param x_start: the [N x C x ...] tensor of noiseless inputs. - :param t: the number of diffusion steps (minus 1). Here, 0 means one step. - :return: A tuple (mean, variance, log_variance), all of x_start's shape. - """ - mean = extract_into_tensor(self.sqrt_alphas_cumprod, t, x_start.shape) * x_start - variance = extract_into_tensor(1.0 - self.alphas_cumprod, t, x_start.shape) - log_variance = extract_into_tensor( - self.log_one_minus_alphas_cumprod, t, x_start.shape - ) - return mean, variance, log_variance - - def predict_start_from_noise(self, x_t, t, noise): - return ( - extract_into_tensor(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t - - extract_into_tensor(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape) - * noise - ) - - def q_posterior(self, x_start, x_t, t): - posterior_mean = ( - extract_into_tensor(self.posterior_mean_coef1, t, x_t.shape) * x_start - + extract_into_tensor(self.posterior_mean_coef2, t, x_t.shape) * x_t - ) - posterior_variance = extract_into_tensor(self.posterior_variance, t, x_t.shape) - posterior_log_variance_clipped = extract_into_tensor( - self.posterior_log_variance_clipped, t, x_t.shape - ) - return ( - posterior_mean, - posterior_variance, - posterior_log_variance_clipped, - ) - - def p_mean_variance(self, x, t, clip_denoised: bool): - model_out = self.model(x, t) - if self.parameterization == "eps": - x_recon = self.predict_start_from_noise(x, t=t, noise=model_out) - elif self.parameterization == "x0": - x_recon = model_out - if clip_denoised: - x_recon.clamp_(-1.0, 1.0) - - ( - model_mean, - posterior_variance, - posterior_log_variance, - ) = self.q_posterior(x_start=x_recon, x_t=x, t=t) - return model_mean, posterior_variance, posterior_log_variance - - @torch.no_grad() - def p_sample(self, x, t, clip_denoised=True, repeat_noise=False): - b, *_, device = *x.shape, x.device - model_mean, _, model_log_variance = self.p_mean_variance( - x=x, t=t, clip_denoised=clip_denoised - ) - noise = noise_like(x.shape, device, repeat_noise) - # no noise when t == 0 - nonzero_mask = (1 - (t == 0).float()).reshape(b, *((1,) * (len(x.shape) - 1))) - return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise - - @torch.no_grad() - def p_sample_loop(self, shape, return_intermediates=False): - device = self.betas.device - b = shape[0] - img = torch.randn(shape, device=device) - intermediates = [img] - for i in tqdm( - reversed(range(0, self.num_timesteps)), - desc="Sampling t", - total=self.num_timesteps, - dynamic_ncols=True, - ): - img = self.p_sample( - img, - torch.full((b,), i, device=device, dtype=torch.long), - clip_denoised=self.clip_denoised, - ) - if i % self.log_every_t == 0 or i == self.num_timesteps - 1: - intermediates.append(img) - if return_intermediates: - return img, intermediates - return img - - @torch.no_grad() - def sample(self, batch_size=16, return_intermediates=False): - image_size = self.image_size - channels = self.channels - return self.p_sample_loop( - (batch_size, channels, image_size, image_size), - return_intermediates=return_intermediates, - ) - - def q_sample(self, x_start, t, noise=None): - noise = default(noise, lambda: torch.randn_like(x_start)) - return ( - extract_into_tensor(self.sqrt_alphas_cumprod, t, x_start.shape) * x_start - + extract_into_tensor(self.sqrt_one_minus_alphas_cumprod, t, x_start.shape) - * noise - ) - - def get_loss(self, pred, target, mean=True): - if self.loss_type == "l1": - loss = (target - pred).abs() - if mean: - loss = loss.mean() - elif self.loss_type == "l2": - if mean: - loss = torch.nn.functional.mse_loss(target, pred) - else: - loss = torch.nn.functional.mse_loss(target, pred, reduction="none") - else: - raise NotImplementedError("unknown loss type '{loss_type}'") - - return loss - - def p_losses(self, x_start, t, noise=None): - noise = default(noise, lambda: torch.randn_like(x_start)) - x_noisy = self.q_sample(x_start=x_start, t=t, noise=noise) - model_out = self.model(x_noisy, t) - - loss_dict = {} - if self.parameterization == "eps": - target = noise - elif self.parameterization == "x0": - target = x_start - else: - raise NotImplementedError( - f"Paramterization {self.parameterization} not yet supported" - ) - - loss = self.get_loss(model_out, target, mean=False).mean(dim=[1, 2, 3]) - - log_prefix = "train" if self.training else "val" - - loss_dict.update({f"{log_prefix}/loss_simple": loss.mean()}) - loss_simple = loss.mean() * self.l_simple_weight - - loss_vlb = (self.lvlb_weights[t] * loss).mean() - loss_dict.update({f"{log_prefix}/loss_vlb": loss_vlb}) - - loss = loss_simple + self.original_elbo_weight * loss_vlb - - loss_dict.update({f"{log_prefix}/loss": loss}) - - return loss, loss_dict - - def forward(self, x, *args, **kwargs): - # b, c, h, w, device, img_size, = *x.shape, x.device, self.image_size - # assert h == img_size and w == img_size, f'height and width of image must be {img_size}' - t = torch.randint( - 0, self.num_timesteps, (x.shape[0],), device=self.device - ).long() - return self.p_losses(x, t, *args, **kwargs) - - def get_input(self, batch, k): - x = batch[k] - if len(x.shape) == 3: - x = x[..., None] - x = rearrange(x, "b h w c -> b c h w") - x = x.to(memory_format=torch.contiguous_format).float() - return x - - def shared_step(self, batch): - x = self.get_input(batch, self.first_stage_key) - loss, loss_dict = self(x) - return loss, loss_dict - - def training_step(self, batch, batch_idx): - loss, loss_dict = self.shared_step(batch) - - self.log_dict( - loss_dict, prog_bar=True, logger=True, on_step=True, on_epoch=True - ) - - self.log( - "global_step", - self.global_step, - prog_bar=True, - logger=True, - on_step=True, - on_epoch=False, - ) - - if self.use_scheduler: - lr = self.optimizers().param_groups[0]["lr"] - self.log( - "lr_abs", - lr, - prog_bar=True, - logger=True, - on_step=True, - on_epoch=False, - ) - - return loss - - @torch.no_grad() - def validation_step(self, batch, batch_idx): - _, loss_dict_no_ema = self.shared_step(batch) - with self.ema_scope(): - _, loss_dict_ema = self.shared_step(batch) - loss_dict_ema = {key + "_ema": loss_dict_ema[key] for key in loss_dict_ema} - self.log_dict( - loss_dict_no_ema, - prog_bar=False, - logger=True, - on_step=False, - on_epoch=True, - ) - self.log_dict( - loss_dict_ema, - prog_bar=False, - logger=True, - on_step=False, - on_epoch=True, - ) - - def on_train_batch_end(self, *args, **kwargs): - if self.use_ema: - self.model_ema(self.model) - - def _get_rows_from_list(self, samples): - n_imgs_per_row = len(samples) - denoise_grid = rearrange(samples, "n b c h w -> b n c h w") - denoise_grid = rearrange(denoise_grid, "b n c h w -> (b n) c h w") - denoise_grid = make_grid(denoise_grid, nrow=n_imgs_per_row) - return denoise_grid - - @torch.no_grad() - def log_images(self, batch, N=8, n_row=2, sample=True, return_keys=None, **kwargs): - log = dict() - x = self.get_input(batch, self.first_stage_key) - N = min(x.shape[0], N) - n_row = min(x.shape[0], n_row) - x = x.to(self.device)[:N] - log["inputs"] = x - - # get diffusion row - diffusion_row = list() - x_start = x[:n_row] - - for t in range(self.num_timesteps): - if t % self.log_every_t == 0 or t == self.num_timesteps - 1: - t = repeat(torch.tensor([t]), "1 -> b", b=n_row) - t = t.to(self.device).long() - noise = torch.randn_like(x_start) - x_noisy = self.q_sample(x_start=x_start, t=t, noise=noise) - diffusion_row.append(x_noisy) - - log["diffusion_row"] = self._get_rows_from_list(diffusion_row) - - if sample: - # get denoise row - with self.ema_scope("Plotting"): - samples, denoise_row = self.sample( - batch_size=N, return_intermediates=True - ) - - log["samples"] = samples - log["denoise_row"] = self._get_rows_from_list(denoise_row) - - if return_keys: - if np.intersect1d(list(log.keys()), return_keys).shape[0] == 0: - return log - else: - return {key: log[key] for key in return_keys} - return log - - def configure_optimizers(self): - lr = self.learning_rate - params = list(self.model.parameters()) - if self.learn_logvar: - params = params + [self.logvar] - opt = torch.optim.AdamW(params, lr=lr) - return opt - - -class LatentDiffusion(DDPM): - """main class""" - - def __init__( - self, - first_stage_config, - cond_stage_config, - personalization_config, - num_timesteps_cond=None, - cond_stage_key="image", - cond_stage_trainable=False, - concat_mode=True, - cond_stage_forward=None, - conditioning_key=None, - scale_factor=1.0, - scale_by_std=False, - *args, - **kwargs, - ): - self.num_timesteps_cond = default(num_timesteps_cond, 1) - self.scale_by_std = scale_by_std - assert self.num_timesteps_cond <= kwargs["timesteps"] - # for backwards compatibility after implementation of DiffusionWrapper - if conditioning_key is None: - conditioning_key = "concat" if concat_mode else "crossattn" - if cond_stage_config == "__is_unconditional__": - conditioning_key = None - ckpt_path = kwargs.pop("ckpt_path", None) - ignore_keys = kwargs.pop("ignore_keys", []) - super().__init__(conditioning_key=conditioning_key, *args, **kwargs) - self.concat_mode = concat_mode - self.cond_stage_trainable = cond_stage_trainable - self.cond_stage_key = cond_stage_key - - try: - self.num_downs = len(first_stage_config.params.ddconfig.ch_mult) - 1 - except: - self.num_downs = 0 - if not scale_by_std: - self.scale_factor = scale_factor - else: - self.register_buffer("scale_factor", torch.tensor(scale_factor)) - self.instantiate_first_stage(first_stage_config) - self.instantiate_cond_stage(cond_stage_config) - - self.cond_stage_forward = cond_stage_forward - self.clip_denoised = False - self.bbox_tokenizer = None - - self.restarted_from_ckpt = False - if ckpt_path is not None: - self.init_from_ckpt(ckpt_path, ignore_keys) - self.restarted_from_ckpt = True - - self.cond_stage_model.train = disabled_train - for param in self.cond_stage_model.parameters(): - param.requires_grad = False - - self.model.eval() - self.model.train = disabled_train - for param in self.model.parameters(): - param.requires_grad = False - - self.embedding_manager = self.instantiate_embedding_manager( - personalization_config, self.cond_stage_model - ) - self.textual_inversion_manager = TextualInversionManager( - tokenizer=self.cond_stage_model.tokenizer, - text_encoder=self.cond_stage_model.transformer, - full_precision=True, - ) - # this circular component dependency is gross and bad, needs to be rethought - self.cond_stage_model.set_textual_inversion_manager( - self.textual_inversion_manager - ) - - self.emb_ckpt_counter = 0 - - # if self.embedding_manager.is_clip: - # self.cond_stage_model.update_embedding_func(self.embedding_manager) - - for param in self.embedding_manager.embedding_parameters(): - param.requires_grad = True - - def make_cond_schedule( - self, - ): - self.cond_ids = torch.full( - size=(self.num_timesteps,), - fill_value=self.num_timesteps - 1, - dtype=torch.long, - ) - ids = torch.round( - torch.linspace(0, self.num_timesteps - 1, self.num_timesteps_cond) - ).long() - self.cond_ids[: self.num_timesteps_cond] = ids - - @rank_zero_only - @torch.no_grad() - def on_train_batch_start(self, batch, batch_idx, dataloader_idx=None): - # only for very first batch - if ( - self.scale_by_std - and self.current_epoch == 0 - and self.global_step == 0 - and batch_idx == 0 - and not self.restarted_from_ckpt - ): - assert ( - self.scale_factor == 1.0 - ), "rather not use custom rescaling and std-rescaling simultaneously" - # set rescale weight to 1./std of encodings - print("### USING STD-RESCALING ###") - x = super().get_input(batch, self.first_stage_key) - x = x.to(self.device) - encoder_posterior = self.encode_first_stage(x) - z = self.get_first_stage_encoding(encoder_posterior).detach() - del self.scale_factor - self.register_buffer("scale_factor", 1.0 / z.flatten().std()) - print(f"setting self.scale_factor to {self.scale_factor}") - print("### USING STD-RESCALING ###") - - def register_schedule( - self, - given_betas=None, - beta_schedule="linear", - timesteps=1000, - linear_start=1e-4, - linear_end=2e-2, - cosine_s=8e-3, - ): - super().register_schedule( - given_betas, - beta_schedule, - timesteps, - linear_start, - linear_end, - cosine_s, - ) - - self.shorten_cond_schedule = self.num_timesteps_cond > 1 - if self.shorten_cond_schedule: - self.make_cond_schedule() - - def instantiate_first_stage(self, config): - model = instantiate_from_config(config) - self.first_stage_model = model.eval() - self.first_stage_model.train = disabled_train - for param in self.first_stage_model.parameters(): - param.requires_grad = False - - def instantiate_cond_stage(self, config): - if not self.cond_stage_trainable: - if config == "__is_first_stage__": - print("Using first stage also as cond stage.") - self.cond_stage_model = self.first_stage_model - elif config == "__is_unconditional__": - print(f"Training {self.__class__.__name__} as an unconditional model.") - self.cond_stage_model = None - # self.be_unconditional = True - else: - model = instantiate_from_config(config) - self.cond_stage_model = model.eval() - self.cond_stage_model.train = disabled_train - for param in self.cond_stage_model.parameters(): - param.requires_grad = False - else: - assert config != "__is_first_stage__" - assert config != "__is_unconditional__" - try: - model = instantiate_from_config(config) - except urllib.error.URLError: - raise SystemExit( - "* Couldn't load a dependency. Try running scripts/preload_models.py from an internet-conected machine." - ) - self.cond_stage_model = model - - def instantiate_embedding_manager(self, config, embedder): - model = instantiate_from_config(config, embedder=embedder) - - if config.params.get( - "embedding_manager_ckpt", None - ): # do not load if missing OR empty string - model.load(config.params.embedding_manager_ckpt) - - return model - - def _get_denoise_row_from_list( - self, samples, desc="", force_no_decoder_quantization=False - ): - denoise_row = [] - for zd in tqdm(samples, desc=desc): - denoise_row.append( - self.decode_first_stage( - zd.to(self.device), - force_not_quantize=force_no_decoder_quantization, - ) - ) - n_imgs_per_row = len(denoise_row) - denoise_row = torch.stack(denoise_row) # n_log_step, n_row, C, H, W - denoise_grid = rearrange(denoise_row, "n b c h w -> b n c h w") - denoise_grid = rearrange(denoise_grid, "b n c h w -> (b n) c h w") - denoise_grid = make_grid(denoise_grid, nrow=n_imgs_per_row) - return denoise_grid - - def get_first_stage_encoding(self, encoder_posterior): - if isinstance(encoder_posterior, DiagonalGaussianDistribution): - z = encoder_posterior.sample() - elif isinstance(encoder_posterior, torch.Tensor): - z = encoder_posterior - else: - raise NotImplementedError( - f"encoder_posterior of type '{type(encoder_posterior)}' not yet implemented" - ) - return self.scale_factor * z - - def get_learned_conditioning(self, c, **kwargs): - if self.cond_stage_forward is None: - if hasattr(self.cond_stage_model, "encode") and callable( - self.cond_stage_model.encode - ): - c = self.cond_stage_model.encode( - c, embedding_manager=self.embedding_manager, **kwargs - ) - if isinstance(c, DiagonalGaussianDistribution): - c = c.mode() - else: - c = self.cond_stage_model(c, **kwargs) - else: - assert hasattr(self.cond_stage_model, self.cond_stage_forward) - c = getattr(self.cond_stage_model, self.cond_stage_forward)(c, **kwargs) - return c - - def meshgrid(self, h, w): - y = torch.arange(0, h).view(h, 1, 1).repeat(1, w, 1) - x = torch.arange(0, w).view(1, w, 1).repeat(h, 1, 1) - - arr = torch.cat([y, x], dim=-1) - return arr - - def delta_border(self, h, w): - """ - :param h: height - :param w: width - :return: normalized distance to image border, - wtith min distance = 0 at border and max dist = 0.5 at image center - """ - lower_right_corner = torch.tensor([h - 1, w - 1]).view(1, 1, 2) - arr = self.meshgrid(h, w) / lower_right_corner - dist_left_up = torch.min(arr, dim=-1, keepdims=True)[0] - dist_right_down = torch.min(1 - arr, dim=-1, keepdims=True)[0] - edge_dist = torch.min( - torch.cat([dist_left_up, dist_right_down], dim=-1), dim=-1 - )[0] - return edge_dist - - def get_weighting(self, h, w, Ly, Lx, device): - weighting = self.delta_border(h, w) - weighting = torch.clip( - weighting, - self.split_input_params["clip_min_weight"], - self.split_input_params["clip_max_weight"], - ) - weighting = weighting.view(1, h * w, 1).repeat(1, 1, Ly * Lx).to(device) - - if self.split_input_params["tie_braker"]: - L_weighting = self.delta_border(Ly, Lx) - L_weighting = torch.clip( - L_weighting, - self.split_input_params["clip_min_tie_weight"], - self.split_input_params["clip_max_tie_weight"], - ) - - L_weighting = L_weighting.view(1, 1, Ly * Lx).to(device) - weighting = weighting * L_weighting - return weighting - - def get_fold_unfold( - self, x, kernel_size, stride, uf=1, df=1 - ): # todo load once not every time, shorten code - """ - :param x: img of size (bs, c, h, w) - :return: n img crops of size (n, bs, c, kernel_size[0], kernel_size[1]) - """ - bs, nc, h, w = x.shape - - # number of crops in image - Ly = (h - kernel_size[0]) // stride[0] + 1 - Lx = (w - kernel_size[1]) // stride[1] + 1 - - if uf == 1 and df == 1: - fold_params = dict( - kernel_size=kernel_size, dilation=1, padding=0, stride=stride - ) - unfold = torch.nn.Unfold(**fold_params) - - fold = torch.nn.Fold(output_size=x.shape[2:], **fold_params) - - weighting = self.get_weighting( - kernel_size[0], kernel_size[1], Ly, Lx, x.device - ).to(x.dtype) - normalization = fold(weighting).view(1, 1, h, w) # normalizes the overlap - weighting = weighting.view((1, 1, kernel_size[0], kernel_size[1], Ly * Lx)) - - elif uf > 1 and df == 1: - fold_params = dict( - kernel_size=kernel_size, dilation=1, padding=0, stride=stride - ) - unfold = torch.nn.Unfold(**fold_params) - - fold_params2 = dict( - kernel_size=(kernel_size[0] * uf, kernel_size[0] * uf), - dilation=1, - padding=0, - stride=(stride[0] * uf, stride[1] * uf), - ) - fold = torch.nn.Fold( - output_size=(x.shape[2] * uf, x.shape[3] * uf), **fold_params2 - ) - - weighting = self.get_weighting( - kernel_size[0] * uf, kernel_size[1] * uf, Ly, Lx, x.device - ).to(x.dtype) - normalization = fold(weighting).view( - 1, 1, h * uf, w * uf - ) # normalizes the overlap - weighting = weighting.view( - (1, 1, kernel_size[0] * uf, kernel_size[1] * uf, Ly * Lx) - ) - - elif df > 1 and uf == 1: - fold_params = dict( - kernel_size=kernel_size, dilation=1, padding=0, stride=stride - ) - unfold = torch.nn.Unfold(**fold_params) - - fold_params2 = dict( - kernel_size=(kernel_size[0] // df, kernel_size[0] // df), - dilation=1, - padding=0, - stride=(stride[0] // df, stride[1] // df), - ) - fold = torch.nn.Fold( - output_size=(x.shape[2] // df, x.shape[3] // df), - **fold_params2, - ) - - weighting = self.get_weighting( - kernel_size[0] // df, kernel_size[1] // df, Ly, Lx, x.device - ).to(x.dtype) - normalization = fold(weighting).view( - 1, 1, h // df, w // df - ) # normalizes the overlap - weighting = weighting.view( - (1, 1, kernel_size[0] // df, kernel_size[1] // df, Ly * Lx) - ) - - else: - raise NotImplementedError - - return fold, unfold, normalization, weighting - - @torch.no_grad() - def get_input( - self, - batch, - k, - return_first_stage_outputs=False, - force_c_encode=False, - cond_key=None, - return_original_cond=False, - bs=None, - ): - x = super().get_input(batch, k) - if bs is not None: - x = x[:bs] - x = x.to(self.device) - encoder_posterior = self.encode_first_stage(x) - z = self.get_first_stage_encoding(encoder_posterior).detach() - - if self.model.conditioning_key is not None: - if cond_key is None: - cond_key = self.cond_stage_key - if cond_key != self.first_stage_key: - if cond_key in ["caption", "coordinates_bbox"]: - xc = batch[cond_key] - elif cond_key == "class_label": - xc = batch - else: - xc = super().get_input(batch, cond_key).to(self.device) - else: - xc = x - if not self.cond_stage_trainable or force_c_encode: - if isinstance(xc, dict) or isinstance(xc, list): - # import pudb; pudb.set_trace() - c = self.get_learned_conditioning(xc) - else: - c = self.get_learned_conditioning(xc.to(self.device)) - else: - c = xc - if bs is not None: - c = c[:bs] - - if self.use_positional_encodings: - pos_x, pos_y = self.compute_latent_shifts(batch) - ckey = __conditioning_keys__[self.model.conditioning_key] - c = {ckey: c, "pos_x": pos_x, "pos_y": pos_y} - - else: - c = None - xc = None - if self.use_positional_encodings: - pos_x, pos_y = self.compute_latent_shifts(batch) - c = {"pos_x": pos_x, "pos_y": pos_y} - out = [z, c] - if return_first_stage_outputs: - xrec = self.decode_first_stage(z) - out.extend([x, xrec]) - if return_original_cond: - out.append(xc) - return out - - @torch.no_grad() - def decode_first_stage(self, z, predict_cids=False, force_not_quantize=False): - if predict_cids: - if z.dim() == 4: - z = torch.argmax(z.exp(), dim=1).long() - z = self.first_stage_model.quantize.get_codebook_entry(z, shape=None) - z = rearrange(z, "b h w c -> b c h w").contiguous() - - z = 1.0 / self.scale_factor * z - - if hasattr(self, "split_input_params"): - if self.split_input_params["patch_distributed_vq"]: - ks = self.split_input_params["ks"] # eg. (128, 128) - stride = self.split_input_params["stride"] # eg. (64, 64) - uf = self.split_input_params["vqf"] - bs, nc, h, w = z.shape - if ks[0] > h or ks[1] > w: - ks = (min(ks[0], h), min(ks[1], w)) - print("reducing Kernel") - - if stride[0] > h or stride[1] > w: - stride = (min(stride[0], h), min(stride[1], w)) - print("reducing stride") - - fold, unfold, normalization, weighting = self.get_fold_unfold( - z, ks, stride, uf=uf - ) - - z = unfold(z) # (bn, nc * prod(**ks), L) - # 1. Reshape to img shape - z = z.view( - (z.shape[0], -1, ks[0], ks[1], z.shape[-1]) - ) # (bn, nc, ks[0], ks[1], L ) - - # 2. apply model loop over last dim - if isinstance(self.first_stage_model, VQModelInterface): - output_list = [ - self.first_stage_model.decode( - z[:, :, :, :, i], - force_not_quantize=predict_cids or force_not_quantize, - ) - for i in range(z.shape[-1]) - ] - else: - output_list = [ - self.first_stage_model.decode(z[:, :, :, :, i]) - for i in range(z.shape[-1]) - ] - - o = torch.stack(output_list, axis=-1) # # (bn, nc, ks[0], ks[1], L) - o = o * weighting - # Reverse 1. reshape to img shape - o = o.view((o.shape[0], -1, o.shape[-1])) # (bn, nc * ks[0] * ks[1], L) - # stitch crops together - decoded = fold(o) - decoded = decoded / normalization # norm is shape (1, 1, h, w) - return decoded - else: - if isinstance(self.first_stage_model, VQModelInterface): - return self.first_stage_model.decode( - z, - force_not_quantize=predict_cids or force_not_quantize, - ) - else: - return self.first_stage_model.decode(z) - - else: - if isinstance(self.first_stage_model, VQModelInterface): - return self.first_stage_model.decode( - z, force_not_quantize=predict_cids or force_not_quantize - ) - else: - return self.first_stage_model.decode(z) - - # same as above but without decorator - def differentiable_decode_first_stage( - self, z, predict_cids=False, force_not_quantize=False - ): - if predict_cids: - if z.dim() == 4: - z = torch.argmax(z.exp(), dim=1).long() - z = self.first_stage_model.quantize.get_codebook_entry(z, shape=None) - z = rearrange(z, "b h w c -> b c h w").contiguous() - - z = 1.0 / self.scale_factor * z - - if hasattr(self, "split_input_params"): - if self.split_input_params["patch_distributed_vq"]: - ks = self.split_input_params["ks"] # eg. (128, 128) - stride = self.split_input_params["stride"] # eg. (64, 64) - uf = self.split_input_params["vqf"] - bs, nc, h, w = z.shape - if ks[0] > h or ks[1] > w: - ks = (min(ks[0], h), min(ks[1], w)) - print("reducing Kernel") - - if stride[0] > h or stride[1] > w: - stride = (min(stride[0], h), min(stride[1], w)) - print("reducing stride") - - fold, unfold, normalization, weighting = self.get_fold_unfold( - z, ks, stride, uf=uf - ) - - z = unfold(z) # (bn, nc * prod(**ks), L) - # 1. Reshape to img shape - z = z.view( - (z.shape[0], -1, ks[0], ks[1], z.shape[-1]) - ) # (bn, nc, ks[0], ks[1], L ) - - # 2. apply model loop over last dim - if isinstance(self.first_stage_model, VQModelInterface): - output_list = [ - self.first_stage_model.decode( - z[:, :, :, :, i], - force_not_quantize=predict_cids or force_not_quantize, - ) - for i in range(z.shape[-1]) - ] - else: - output_list = [ - self.first_stage_model.decode(z[:, :, :, :, i]) - for i in range(z.shape[-1]) - ] - - o = torch.stack(output_list, axis=-1) # # (bn, nc, ks[0], ks[1], L) - o = o * weighting - # Reverse 1. reshape to img shape - o = o.view((o.shape[0], -1, o.shape[-1])) # (bn, nc * ks[0] * ks[1], L) - # stitch crops together - decoded = fold(o) - decoded = decoded / normalization # norm is shape (1, 1, h, w) - return decoded - else: - if isinstance(self.first_stage_model, VQModelInterface): - return self.first_stage_model.decode( - z, - force_not_quantize=predict_cids or force_not_quantize, - ) - else: - return self.first_stage_model.decode(z) - - else: - if isinstance(self.first_stage_model, VQModelInterface): - return self.first_stage_model.decode( - z, force_not_quantize=predict_cids or force_not_quantize - ) - else: - return self.first_stage_model.decode(z) - - @torch.no_grad() - def encode_first_stage(self, x): - if hasattr(self, "split_input_params"): - if self.split_input_params["patch_distributed_vq"]: - ks = self.split_input_params["ks"] # eg. (128, 128) - stride = self.split_input_params["stride"] # eg. (64, 64) - df = self.split_input_params["vqf"] - self.split_input_params["original_image_size"] = x.shape[-2:] - bs, nc, h, w = x.shape - if ks[0] > h or ks[1] > w: - ks = (min(ks[0], h), min(ks[1], w)) - print("reducing Kernel") - - if stride[0] > h or stride[1] > w: - stride = (min(stride[0], h), min(stride[1], w)) - print("reducing stride") - - fold, unfold, normalization, weighting = self.get_fold_unfold( - x, ks, stride, df=df - ) - z = unfold(x) # (bn, nc * prod(**ks), L) - # Reshape to img shape - z = z.view( - (z.shape[0], -1, ks[0], ks[1], z.shape[-1]) - ) # (bn, nc, ks[0], ks[1], L ) - - output_list = [ - self.first_stage_model.encode(z[:, :, :, :, i]) - for i in range(z.shape[-1]) - ] - - o = torch.stack(output_list, axis=-1) - o = o * weighting - - # Reverse reshape to img shape - o = o.view((o.shape[0], -1, o.shape[-1])) # (bn, nc * ks[0] * ks[1], L) - # stitch crops together - decoded = fold(o) - decoded = decoded / normalization - return decoded - - else: - return self.first_stage_model.encode(x) - else: - return self.first_stage_model.encode(x) - - def shared_step(self, batch, **kwargs): - x, c = self.get_input(batch, self.first_stage_key) - loss = self(x, c) - return loss - - def forward(self, x, c, *args, **kwargs): - t = torch.randint( - 0, self.num_timesteps, (x.shape[0],), device=self.device - ).long() - if self.model.conditioning_key is not None: - assert c is not None - if self.cond_stage_trainable: - c = self.get_learned_conditioning(c) - if self.shorten_cond_schedule: # TODO: drop this option - tc = self.cond_ids[t].to(self.device) - c = self.q_sample(x_start=c, t=tc, noise=torch.randn_like(c.float())) - - return self.p_losses(x, c, t, *args, **kwargs) - - def _rescale_annotations(self, bboxes, crop_coordinates): # TODO: move to dataset - def rescale_bbox(bbox): - x0 = clamp((bbox[0] - crop_coordinates[0]) / crop_coordinates[2]) - y0 = clamp((bbox[1] - crop_coordinates[1]) / crop_coordinates[3]) - w = min(bbox[2] / crop_coordinates[2], 1 - x0) - h = min(bbox[3] / crop_coordinates[3], 1 - y0) - return x0, y0, w, h - - return [rescale_bbox(b) for b in bboxes] - - def apply_model(self, x_noisy, t, cond, return_ids=False): - if isinstance(cond, dict): - # hybrid case, cond is exptected to be a dict - pass - else: - if not isinstance(cond, list): - cond = [cond] - key = ( - "c_concat" if self.model.conditioning_key == "concat" else "c_crossattn" - ) - cond = {key: cond} - - if hasattr(self, "split_input_params"): - assert len(cond) == 1 # todo can only deal with one conditioning atm - assert not return_ids - ks = self.split_input_params["ks"] # eg. (128, 128) - stride = self.split_input_params["stride"] # eg. (64, 64) - - h, w = x_noisy.shape[-2:] - - fold, unfold, normalization, weighting = self.get_fold_unfold( - x_noisy, ks, stride - ) - - z = unfold(x_noisy) # (bn, nc * prod(**ks), L) - # Reshape to img shape - z = z.view( - (z.shape[0], -1, ks[0], ks[1], z.shape[-1]) - ) # (bn, nc, ks[0], ks[1], L ) - z_list = [z[:, :, :, :, i] for i in range(z.shape[-1])] - - if ( - self.cond_stage_key in ["image", "LR_image", "segmentation", "bbox_img"] - and self.model.conditioning_key - ): # todo check for completeness - c_key = next(iter(cond.keys())) # get key - c = next(iter(cond.values())) # get value - assert len(c) == 1 # todo extend to list with more than one elem - c = c[0] # get element - - c = unfold(c) - c = c.view( - (c.shape[0], -1, ks[0], ks[1], c.shape[-1]) - ) # (bn, nc, ks[0], ks[1], L ) - - cond_list = [{c_key: [c[:, :, :, :, i]]} for i in range(c.shape[-1])] - - elif self.cond_stage_key == "coordinates_bbox": - assert ( - "original_image_size" in self.split_input_params - ), "BoudingBoxRescaling is missing original_image_size" - - # assuming padding of unfold is always 0 and its dilation is always 1 - n_patches_per_row = int((w - ks[0]) / stride[0] + 1) - full_img_h, full_img_w = self.split_input_params["original_image_size"] - # as we are operating on latents, we need the factor from the original image size to the - # spatial latent size to properly rescale the crops for regenerating the bbox annotations - num_downs = self.first_stage_model.encoder.num_resolutions - 1 - rescale_latent = 2 ** (num_downs) - - # get top left positions of patches as conforming for the bbbox tokenizer, therefore we - # need to rescale the tl patch coordinates to be in between (0,1) - tl_patch_coordinates = [ - ( - rescale_latent - * stride[0] - * (patch_nr % n_patches_per_row) - / full_img_w, - rescale_latent - * stride[1] - * (patch_nr // n_patches_per_row) - / full_img_h, - ) - for patch_nr in range(z.shape[-1]) - ] - - # patch_limits are tl_coord, width and height coordinates as (x_tl, y_tl, h, w) - patch_limits = [ - ( - x_tl, - y_tl, - rescale_latent * ks[0] / full_img_w, - rescale_latent * ks[1] / full_img_h, - ) - for x_tl, y_tl in tl_patch_coordinates - ] - # patch_values = [(np.arange(x_tl,min(x_tl+ks, 1.)),np.arange(y_tl,min(y_tl+ks, 1.))) for x_tl, y_tl in tl_patch_coordinates] - - # tokenize crop coordinates for the bounding boxes of the respective patches - patch_limits_tknzd = [ - torch.LongTensor(self.bbox_tokenizer._crop_encoder(bbox))[None].to( - self.device - ) - for bbox in patch_limits - ] # list of length l with tensors of shape (1, 2) - print(patch_limits_tknzd[0].shape) - # cut tknzd crop position from conditioning - assert isinstance(cond, dict), "cond must be dict to be fed into model" - cut_cond = cond["c_crossattn"][0][..., :-2].to(self.device) - print(cut_cond.shape) - - adapted_cond = torch.stack( - [torch.cat([cut_cond, p], dim=1) for p in patch_limits_tknzd] - ) - adapted_cond = rearrange(adapted_cond, "l b n -> (l b) n") - print(adapted_cond.shape) - adapted_cond = self.get_learned_conditioning(adapted_cond) - print(adapted_cond.shape) - adapted_cond = rearrange( - adapted_cond, "(l b) n d -> l b n d", l=z.shape[-1] - ) - print(adapted_cond.shape) - - cond_list = [{"c_crossattn": [e]} for e in adapted_cond] - - else: - cond_list = [ - cond for i in range(z.shape[-1]) - ] # Todo make this more efficient - - # apply model by loop over crops - output_list = [ - self.model(z_list[i], t, **cond_list[i]) for i in range(z.shape[-1]) - ] - assert not isinstance( - output_list[0], tuple - ) # todo cant deal with multiple model outputs check this never happens - - o = torch.stack(output_list, axis=-1) - o = o * weighting - # Reverse reshape to img shape - o = o.view((o.shape[0], -1, o.shape[-1])) # (bn, nc * ks[0] * ks[1], L) - # stitch crops together - x_recon = fold(o) / normalization - - else: - x_recon = self.model(x_noisy, t, **cond) - - if isinstance(x_recon, tuple) and not return_ids: - return x_recon[0] - else: - return x_recon - - def _predict_eps_from_xstart(self, x_t, t, pred_xstart): - return ( - extract_into_tensor(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t - - pred_xstart - ) / extract_into_tensor(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape) - - def _prior_bpd(self, x_start): - """ - Get the prior KL term for the variational lower-bound, measured in - bits-per-dim. - This term can't be optimized, as it only depends on the encoder. - :param x_start: the [N x C x ...] tensor of inputs. - :return: a batch of [N] KL values (in bits), one per batch element. - """ - batch_size = x_start.shape[0] - t = torch.tensor([self.num_timesteps - 1] * batch_size, device=x_start.device) - qt_mean, _, qt_log_variance = self.q_mean_variance(x_start, t) - kl_prior = normal_kl( - mean1=qt_mean, logvar1=qt_log_variance, mean2=0.0, logvar2=0.0 - ) - return mean_flat(kl_prior) / np.log(2.0) - - def p_losses(self, x_start, cond, t, noise=None): - noise = default(noise, lambda: torch.randn_like(x_start)) - x_noisy = self.q_sample(x_start=x_start, t=t, noise=noise) - model_output = self.apply_model(x_noisy, t, cond) - - loss_dict = {} - prefix = "train" if self.training else "val" - - if self.parameterization == "x0": - target = x_start - elif self.parameterization == "eps": - target = noise - else: - raise NotImplementedError() - - loss_simple = self.get_loss(model_output, target, mean=False).mean([1, 2, 3]) - loss_dict.update({f"{prefix}/loss_simple": loss_simple.mean()}) - - logvar_t = self.logvar[t.item()].to(self.device) - loss = loss_simple / torch.exp(logvar_t) + logvar_t - # loss = loss_simple / torch.exp(self.logvar) + self.logvar - if self.learn_logvar: - loss_dict.update({f"{prefix}/loss_gamma": loss.mean()}) - loss_dict.update({"logvar": self.logvar.data.mean()}) - - loss = self.l_simple_weight * loss.mean() - - loss_vlb = self.get_loss(model_output, target, mean=False).mean(dim=(1, 2, 3)) - loss_vlb = (self.lvlb_weights[t] * loss_vlb).mean() - loss_dict.update({f"{prefix}/loss_vlb": loss_vlb}) - loss += self.original_elbo_weight * loss_vlb - loss_dict.update({f"{prefix}/loss": loss}) - - if self.embedding_reg_weight > 0: - loss_embedding_reg = ( - self.embedding_manager.embedding_to_coarse_loss().mean() - ) - - loss_dict.update({f"{prefix}/loss_emb_reg": loss_embedding_reg}) - - loss += self.embedding_reg_weight * loss_embedding_reg - loss_dict.update({f"{prefix}/loss": loss}) - - return loss, loss_dict - - def p_mean_variance( - self, - x, - c, - t, - clip_denoised: bool, - return_codebook_ids=False, - quantize_denoised=False, - return_x0=False, - score_corrector=None, - corrector_kwargs=None, - ): - t_in = t - model_out = self.apply_model(x, t_in, c, return_ids=return_codebook_ids) - - if score_corrector is not None: - assert self.parameterization == "eps" - model_out = score_corrector.modify_score( - self, model_out, x, t, c, **corrector_kwargs - ) - - if return_codebook_ids: - model_out, logits = model_out - - if self.parameterization == "eps": - x_recon = self.predict_start_from_noise(x, t=t, noise=model_out) - elif self.parameterization == "x0": - x_recon = model_out - else: - raise NotImplementedError() - - if clip_denoised: - x_recon.clamp_(-1.0, 1.0) - if quantize_denoised: - x_recon, _, [_, _, indices] = self.first_stage_model.quantize(x_recon) - ( - model_mean, - posterior_variance, - posterior_log_variance, - ) = self.q_posterior(x_start=x_recon, x_t=x, t=t) - if return_codebook_ids: - return ( - model_mean, - posterior_variance, - posterior_log_variance, - logits, - ) - elif return_x0: - return ( - model_mean, - posterior_variance, - posterior_log_variance, - x_recon, - ) - else: - return model_mean, posterior_variance, posterior_log_variance - - @torch.no_grad() - def p_sample( - self, - x, - c, - t, - clip_denoised=False, - repeat_noise=False, - return_codebook_ids=False, - quantize_denoised=False, - return_x0=False, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - ): - b, *_, device = *x.shape, x.device - outputs = self.p_mean_variance( - x=x, - c=c, - t=t, - clip_denoised=clip_denoised, - return_codebook_ids=return_codebook_ids, - quantize_denoised=quantize_denoised, - return_x0=return_x0, - score_corrector=score_corrector, - corrector_kwargs=corrector_kwargs, - ) - if return_codebook_ids: - raise DeprecationWarning("Support dropped.") - model_mean, _, model_log_variance, logits = outputs - elif return_x0: - model_mean, _, model_log_variance, x0 = outputs - else: - model_mean, _, model_log_variance = outputs - - noise = noise_like(x.shape, device, repeat_noise) * temperature - if noise_dropout > 0.0: - noise = torch.nn.functional.dropout(noise, p=noise_dropout) - # no noise when t == 0 - nonzero_mask = (1 - (t == 0).float()).reshape(b, *((1,) * (len(x.shape) - 1))) - - if return_codebook_ids: - return model_mean + nonzero_mask * ( - 0.5 * model_log_variance - ).exp() * noise, logits.argmax(dim=1) - if return_x0: - return ( - model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise, - x0, - ) - else: - return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise - - @torch.no_grad() - def progressive_denoising( - self, - cond, - shape, - verbose=True, - callback=None, - quantize_denoised=False, - img_callback=None, - mask=None, - x0=None, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - batch_size=None, - x_T=None, - start_T=None, - log_every_t=None, - ): - if not log_every_t: - log_every_t = self.log_every_t - timesteps = self.num_timesteps - if batch_size is not None: - b = batch_size if batch_size is not None else shape[0] - shape = [batch_size] + list(shape) - else: - b = batch_size = shape[0] - if x_T is None: - img = torch.randn(shape, device=self.device) - else: - img = x_T - intermediates = [] - if cond is not None: - if isinstance(cond, dict): - cond = { - key: cond[key][:batch_size] - if not isinstance(cond[key], list) - else list(map(lambda x: x[:batch_size], cond[key])) - for key in cond - } - else: - cond = ( - [c[:batch_size] for c in cond] - if isinstance(cond, list) - else cond[:batch_size] - ) - - if start_T is not None: - timesteps = min(timesteps, start_T) - iterator = ( - tqdm( - reversed(range(0, timesteps)), - desc="Progressive Generation", - total=timesteps, - ) - if verbose - else reversed(range(0, timesteps)) - ) - if type(temperature) == float: - temperature = [temperature] * timesteps - - for i in iterator: - ts = torch.full((b,), i, device=self.device, dtype=torch.long) - if self.shorten_cond_schedule: - assert self.model.conditioning_key != "hybrid" - tc = self.cond_ids[ts].to(cond.device) - cond = self.q_sample(x_start=cond, t=tc, noise=torch.randn_like(cond)) - - img, x0_partial = self.p_sample( - img, - cond, - ts, - clip_denoised=self.clip_denoised, - quantize_denoised=quantize_denoised, - return_x0=True, - temperature=temperature[i], - noise_dropout=noise_dropout, - score_corrector=score_corrector, - corrector_kwargs=corrector_kwargs, - ) - if mask is not None: - assert x0 is not None - img_orig = self.q_sample(x0, ts) - img = img_orig * mask + (1.0 - mask) * img - - if i % log_every_t == 0 or i == timesteps - 1: - intermediates.append(x0_partial) - if callback: - callback(i) - if img_callback: - img_callback(img, i) - return img, intermediates - - @torch.no_grad() - def p_sample_loop( - self, - cond, - shape, - return_intermediates=False, - x_T=None, - verbose=True, - callback=None, - timesteps=None, - quantize_denoised=False, - mask=None, - x0=None, - img_callback=None, - start_T=None, - log_every_t=None, - ): - if not log_every_t: - log_every_t = self.log_every_t - device = self.betas.device - b = shape[0] - if x_T is None: - img = torch.randn(shape, device=device) - else: - img = x_T - - intermediates = [img] - if timesteps is None: - timesteps = self.num_timesteps - - if start_T is not None: - timesteps = min(timesteps, start_T) - iterator = ( - tqdm( - reversed(range(0, timesteps)), - desc="Sampling t", - total=timesteps, - ) - if verbose - else reversed(range(0, timesteps)) - ) - - if mask is not None: - assert x0 is not None - assert x0.shape[2:3] == mask.shape[2:3] # spatial size has to match - - for i in iterator: - ts = torch.full((b,), i, device=device, dtype=torch.long) - if self.shorten_cond_schedule: - assert self.model.conditioning_key != "hybrid" - tc = self.cond_ids[ts].to(cond.device) - cond = self.q_sample(x_start=cond, t=tc, noise=torch.randn_like(cond)) - - img = self.p_sample( - img, - cond, - ts, - clip_denoised=self.clip_denoised, - quantize_denoised=quantize_denoised, - ) - if mask is not None: - img_orig = self.q_sample(x0, ts) - img = img_orig * mask + (1.0 - mask) * img - - if i % log_every_t == 0 or i == timesteps - 1: - intermediates.append(img) - if callback: - callback(i) - if img_callback: - img_callback(img, i) - - if return_intermediates: - return img, intermediates - return img - - @torch.no_grad() - def sample( - self, - cond, - batch_size=16, - return_intermediates=False, - x_T=None, - verbose=True, - timesteps=None, - quantize_denoised=False, - mask=None, - x0=None, - shape=None, - **kwargs, - ): - if shape is None: - shape = ( - batch_size, - self.channels, - self.image_size, - self.image_size, - ) - if cond is not None: - if isinstance(cond, dict): - cond = { - key: cond[key][:batch_size] - if not isinstance(cond[key], list) - else list(map(lambda x: x[:batch_size], cond[key])) - for key in cond - } - else: - cond = ( - [c[:batch_size] for c in cond] - if isinstance(cond, list) - else cond[:batch_size] - ) - return self.p_sample_loop( - cond, - shape, - return_intermediates=return_intermediates, - x_T=x_T, - verbose=verbose, - timesteps=timesteps, - quantize_denoised=quantize_denoised, - mask=mask, - x0=x0, - ) - - @torch.no_grad() - def sample_log(self, cond, batch_size, ddim, ddim_steps, **kwargs): - if ddim: - ddim_sampler = DDIMSampler(self) - shape = (self.channels, self.image_size, self.image_size) - samples, intermediates = ddim_sampler.sample( - ddim_steps, batch_size, shape, cond, verbose=False, **kwargs - ) - - else: - samples, intermediates = self.sample( - cond=cond, - batch_size=batch_size, - return_intermediates=True, - **kwargs, - ) - - return samples, intermediates - - @torch.no_grad() - def get_unconditional_conditioning(self, batch_size, null_label=None): - if null_label is not None: - xc = null_label - if isinstance(xc, ListConfig): - xc = list(xc) - if isinstance(xc, dict) or isinstance(xc, list): - c = self.get_learned_conditioning(xc) - else: - if hasattr(xc, "to"): - xc = xc.to(self.device) - c = self.get_learned_conditioning(xc) - else: - # todo: get null label from cond_stage_model - raise NotImplementedError() - c = repeat(c, "1 ... -> b ...", b=batch_size).to(self.device) - return c - - @torch.no_grad() - def log_images( - self, - batch, - N=8, - n_row=4, - sample=True, - ddim_steps=50, - ddim_eta=1.0, - return_keys=None, - quantize_denoised=True, - inpaint=False, - plot_denoise_rows=False, - plot_progressive_rows=False, - plot_diffusion_rows=False, - **kwargs, - ): - use_ddim = ddim_steps is not None - - log = dict() - z, c, x, xrec, xc = self.get_input( - batch, - self.first_stage_key, - return_first_stage_outputs=True, - force_c_encode=True, - return_original_cond=True, - bs=N, - ) - N = min(x.shape[0], N) - n_row = min(x.shape[0], n_row) - log["inputs"] = x - log["reconstruction"] = xrec - if self.model.conditioning_key is not None: - if hasattr(self.cond_stage_model, "decode"): - xc = self.cond_stage_model.decode(c) - log["conditioning"] = xc - elif self.cond_stage_key in ["caption"]: - xc = log_txt_as_img((x.shape[2], x.shape[3]), batch["caption"]) - log["conditioning"] = xc - elif self.cond_stage_key == "class_label": - xc = log_txt_as_img((x.shape[2], x.shape[3]), batch["human_label"]) - log["conditioning"] = xc - elif isimage(xc): - log["conditioning"] = xc - if ismap(xc): - log["original_conditioning"] = self.to_rgb(xc) - - if plot_diffusion_rows: - # get diffusion row - diffusion_row = list() - z_start = z[:n_row] - for t in range(self.num_timesteps): - if t % self.log_every_t == 0 or t == self.num_timesteps - 1: - t = repeat(torch.tensor([t]), "1 -> b", b=n_row) - t = t.to(self.device).long() - noise = torch.randn_like(z_start) - z_noisy = self.q_sample(x_start=z_start, t=t, noise=noise) - diffusion_row.append(self.decode_first_stage(z_noisy)) - - diffusion_row = torch.stack(diffusion_row) # n_log_step, n_row, C, H, W - diffusion_grid = rearrange(diffusion_row, "n b c h w -> b n c h w") - diffusion_grid = rearrange(diffusion_grid, "b n c h w -> (b n) c h w") - diffusion_grid = make_grid(diffusion_grid, nrow=diffusion_row.shape[0]) - log["diffusion_row"] = diffusion_grid - - if sample: - # get denoise row - with self.ema_scope("Plotting"): - samples, z_denoise_row = self.sample_log( - cond=c, - batch_size=N, - ddim=use_ddim, - ddim_steps=ddim_steps, - eta=ddim_eta, - ) - # samples, z_denoise_row = self.sample(cond=c, batch_size=N, return_intermediates=True) - x_samples = self.decode_first_stage(samples) - log["samples"] = x_samples - if plot_denoise_rows: - denoise_grid = self._get_denoise_row_from_list(z_denoise_row) - log["denoise_row"] = denoise_grid - - uc = self.get_learned_conditioning(len(c) * [""]) - sample_scaled, _ = self.sample_log( - cond=c, - batch_size=N, - ddim=use_ddim, - ddim_steps=ddim_steps, - eta=ddim_eta, - unconditional_guidance_scale=5.0, - unconditional_conditioning=uc, - ) - log["samples_scaled"] = self.decode_first_stage(sample_scaled) - - if ( - quantize_denoised - and not isinstance(self.first_stage_model, AutoencoderKL) - and not isinstance(self.first_stage_model, IdentityFirstStage) - ): - # also display when quantizing x0 while sampling - with self.ema_scope("Plotting Quantized Denoised"): - samples, z_denoise_row = self.sample_log( - cond=c, - batch_size=N, - ddim=use_ddim, - ddim_steps=ddim_steps, - eta=ddim_eta, - quantize_denoised=True, - ) - # samples, z_denoise_row = self.sample(cond=c, batch_size=N, return_intermediates=True, - # quantize_denoised=True) - x_samples = self.decode_first_stage(samples.to(self.device)) - log["samples_x0_quantized"] = x_samples - - if inpaint: - # make a simple center square - b, h, w = z.shape[0], z.shape[2], z.shape[3] - mask = torch.ones(N, h, w).to(self.device) - # zeros will be filled in - mask[:, h // 4 : 3 * h // 4, w // 4 : 3 * w // 4] = 0.0 - mask = mask[:, None, ...] - with self.ema_scope("Plotting Inpaint"): - samples, _ = self.sample_log( - cond=c, - batch_size=N, - ddim=use_ddim, - eta=ddim_eta, - ddim_steps=ddim_steps, - x0=z[:N], - mask=mask, - ) - x_samples = self.decode_first_stage(samples.to(self.device)) - log["samples_inpainting"] = x_samples - log["mask"] = mask - - # outpaint - with self.ema_scope("Plotting Outpaint"): - samples, _ = self.sample_log( - cond=c, - batch_size=N, - ddim=use_ddim, - eta=ddim_eta, - ddim_steps=ddim_steps, - x0=z[:N], - mask=mask, - ) - x_samples = self.decode_first_stage(samples.to(self.device)) - log["samples_outpainting"] = x_samples - - if plot_progressive_rows: - with self.ema_scope("Plotting Progressives"): - img, progressives = self.progressive_denoising( - c, - shape=(self.channels, self.image_size, self.image_size), - batch_size=N, - ) - prog_row = self._get_denoise_row_from_list( - progressives, desc="Progressive Generation" - ) - log["progressive_row"] = prog_row - - if return_keys: - if np.intersect1d(list(log.keys()), return_keys).shape[0] == 0: - return log - else: - return {key: log[key] for key in return_keys} - return log - - def configure_optimizers(self): - lr = self.learning_rate - - if self.embedding_manager is not None: - params = list(self.embedding_manager.embedding_parameters()) - # params = list(self.cond_stage_model.transformer.text_model.embeddings.embedding_manager.embedding_parameters()) - else: - params = list(self.model.parameters()) - if self.cond_stage_trainable: - print(f"{self.__class__.__name__}: Also optimizing conditioner params!") - params = params + list(self.cond_stage_model.parameters()) - if self.learn_logvar: - print("Diffusion model optimizing logvar") - params.append(self.logvar) - opt = torch.optim.AdamW(params, lr=lr) - if self.use_scheduler: - assert "target" in self.scheduler_config - scheduler = instantiate_from_config(self.scheduler_config) - - print("Setting up LambdaLR scheduler...") - scheduler = [ - { - "scheduler": LambdaLR(opt, lr_lambda=scheduler.schedule), - "interval": "step", - "frequency": 1, - } - ] - return [opt], scheduler - return opt - - @torch.no_grad() - def to_rgb(self, x): - x = x.float() - if not hasattr(self, "colorize"): - self.colorize = torch.randn(3, x.shape[1], 1, 1).to(x) - x = nn.functional.conv2d(x, weight=self.colorize) - x = 2.0 * (x - x.min()) / (x.max() - x.min()) - 1.0 - return x - - @rank_zero_only - def on_save_checkpoint(self, checkpoint): - checkpoint.clear() - - if os.path.isdir(self.trainer.checkpoint_callback.dirpath): - self.embedding_manager.save( - os.path.join(self.trainer.checkpoint_callback.dirpath, "embeddings.pt") - ) - - if (self.global_step - self.emb_ckpt_counter) > 500: - self.embedding_manager.save( - os.path.join( - self.trainer.checkpoint_callback.dirpath, - f"embeddings_gs-{self.global_step}.pt", - ) - ) - - self.emb_ckpt_counter += 500 - - -class DiffusionWrapper(pl.LightningModule): - def __init__(self, diff_model_config, conditioning_key): - super().__init__() - self.diffusion_model = instantiate_from_config(diff_model_config) - self.conditioning_key = conditioning_key - assert self.conditioning_key in [ - None, - "concat", - "crossattn", - "hybrid", - "adm", - ] - - def forward(self, x, t, c_concat: list = None, c_crossattn: list = None): - if self.conditioning_key is None: - out = self.diffusion_model(x, t) - elif self.conditioning_key == "concat": - xc = torch.cat([x] + c_concat, dim=1) - out = self.diffusion_model(xc, t) - elif self.conditioning_key == "crossattn": - cc = torch.cat(c_crossattn, 1) - out = self.diffusion_model(x, t, context=cc) - elif self.conditioning_key == "hybrid": - cc = torch.cat(c_crossattn, 1) - xc = torch.cat([x] + c_concat, dim=1) - out = self.diffusion_model(xc, t, context=cc) - elif self.conditioning_key == "adm": - cc = c_crossattn[0] - out = self.diffusion_model(x, t, y=cc) - else: - raise NotImplementedError() - - return out - - -class Layout2ImgDiffusion(LatentDiffusion): - # TODO: move all layout-specific hacks to this class - def __init__(self, cond_stage_key, *args, **kwargs): - assert ( - cond_stage_key == "coordinates_bbox" - ), 'Layout2ImgDiffusion only for cond_stage_key="coordinates_bbox"' - super().__init__(cond_stage_key=cond_stage_key, *args, **kwargs) - - def log_images(self, batch, N=8, *args, **kwargs): - logs = super().log_images(batch=batch, N=N, *args, **kwargs) - - key = "train" if self.training else "validation" - dset = self.trainer.datamodule.datasets[key] - mapper = dset.conditional_builders[self.cond_stage_key] - - bbox_imgs = [] - map_fn = lambda catno: dset.get_textual_label(dset.get_category_id(catno)) - for tknzd_bbox in batch[self.cond_stage_key][:N]: - bboximg = mapper.plot(tknzd_bbox.detach().cpu(), map_fn, (256, 256)) - bbox_imgs.append(bboximg) - - cond_img = torch.stack(bbox_imgs, dim=0) - logs["bbox_image"] = cond_img - return logs - - -class LatentInpaintDiffusion(LatentDiffusion): - def __init__( - self, - concat_keys=("mask", "masked_image"), - masked_image_key="masked_image", - finetune_keys=None, - *args, - **kwargs, - ): - super().__init__(*args, **kwargs) - self.masked_image_key = masked_image_key - assert self.masked_image_key in concat_keys - self.concat_keys = concat_keys - - @torch.no_grad() - def get_input( - self, batch, k, cond_key=None, bs=None, return_first_stage_outputs=False - ): - # note: restricted to non-trainable encoders currently - assert ( - not self.cond_stage_trainable - ), "trainable cond stages not yet supported for inpainting" - z, c, x, xrec, xc = super().get_input( - batch, - self.first_stage_key, - return_first_stage_outputs=True, - force_c_encode=True, - return_original_cond=True, - bs=bs, - ) - - assert exists(self.concat_keys) - c_cat = list() - for ck in self.concat_keys: - cc = ( - rearrange(batch[ck], "b h w c -> b c h w") - .to(memory_format=torch.contiguous_format) - .float() - ) - if bs is not None: - cc = cc[:bs] - cc = cc.to(self.device) - bchw = z.shape - if ck != self.masked_image_key: - cc = torch.nn.functional.interpolate(cc, size=bchw[-2:]) - else: - cc = self.get_first_stage_encoding(self.encode_first_stage(cc)) - c_cat.append(cc) - c_cat = torch.cat(c_cat, dim=1) - all_conds = {"c_concat": [c_cat], "c_crossattn": [c]} - if return_first_stage_outputs: - return z, all_conds, x, xrec, xc - return z, all_conds diff --git a/invokeai/backend/stable_diffusion/diffusion/ksampler.py b/invokeai/backend/stable_diffusion/diffusion/ksampler.py deleted file mode 100644 index eddcc11ea8..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/ksampler.py +++ /dev/null @@ -1,339 +0,0 @@ -"""wrapper around part of Katherine Crowson's k-diffusion library, making it call compatible with other Samplers""" - -import k_diffusion as K -import torch -from torch import nn - -from .cross_attention_map_saving import AttentionMapSaver -from .sampler import Sampler -from .shared_invokeai_diffusion import InvokeAIDiffuserComponent - -# at this threshold, the scheduler will stop using the Karras -# noise schedule and start using the model's schedule -STEP_THRESHOLD = 30 - - -def cfg_apply_threshold(result, threshold=0.0, scale=0.7): - if threshold <= 0.0: - return result - maxval = 0.0 + torch.max(result).cpu().numpy() - minval = 0.0 + torch.min(result).cpu().numpy() - if maxval < threshold and minval > -threshold: - return result - if maxval > threshold: - maxval = min(max(1, scale * maxval), threshold) - if minval < -threshold: - minval = max(min(-1, scale * minval), -threshold) - return torch.clamp(result, min=minval, max=maxval) - - -class CFGDenoiser(nn.Module): - def __init__(self, model, threshold=0, warmup=0): - super().__init__() - self.inner_model = model - self.threshold = threshold - self.warmup_max = warmup - self.warmup = max(warmup / 10, 1) - self.invokeai_diffuser = InvokeAIDiffuserComponent( - model, - model_forward_callback=lambda x, sigma, cond: self.inner_model( - x, sigma, cond=cond - ), - ) - - def prepare_to_sample(self, t_enc, **kwargs): - extra_conditioning_info = kwargs.get("extra_conditioning_info", None) - - if ( - extra_conditioning_info is not None - and extra_conditioning_info.wants_cross_attention_control - ): - self.invokeai_diffuser.override_cross_attention( - extra_conditioning_info, step_count=t_enc - ) - else: - self.invokeai_diffuser.restore_default_cross_attention() - - def forward(self, x, sigma, uncond, cond, cond_scale): - next_x = self.invokeai_diffuser.do_diffusion_step( - x, sigma, uncond, cond, cond_scale - ) - if self.warmup < self.warmup_max: - thresh = max(1, 1 + (self.threshold - 1) * (self.warmup / self.warmup_max)) - self.warmup += 1 - else: - thresh = self.threshold - if thresh > self.threshold: - thresh = self.threshold - return cfg_apply_threshold(next_x, thresh) - - -class KSampler(Sampler): - def __init__(self, model, schedule="lms", device=None, **kwargs): - denoiser = K.external.CompVisDenoiser(model) - super().__init__( - denoiser, - schedule, - steps=model.num_timesteps, - ) - self.sigmas = None - self.ds = None - self.s_in = None - self.karras_max = kwargs.get("karras_max", STEP_THRESHOLD) - if self.karras_max is None: - self.karras_max = STEP_THRESHOLD - - def make_schedule( - self, - ddim_num_steps, - ddim_discretize="uniform", - ddim_eta=0.0, - verbose=False, - ): - outer_model = self.model - self.model = outer_model.inner_model - super().make_schedule( - ddim_num_steps, - ddim_discretize="uniform", - ddim_eta=0.0, - verbose=False, - ) - self.model = outer_model - self.ddim_num_steps = ddim_num_steps - # we don't need both of these sigmas, but storing them here to make - # comparison easier later on - self.model_sigmas = self.model.get_sigmas(ddim_num_steps) - self.karras_sigmas = K.sampling.get_sigmas_karras( - n=ddim_num_steps, - sigma_min=self.model.sigmas[0].item(), - sigma_max=self.model.sigmas[-1].item(), - rho=7.0, - device=self.device, - ) - - if ddim_num_steps >= self.karras_max: - print( - f">> Ksampler using model noise schedule (steps >= {self.karras_max})" - ) - self.sigmas = self.model_sigmas - else: - print( - f">> Ksampler using karras noise schedule (steps < {self.karras_max})" - ) - self.sigmas = self.karras_sigmas - - # ALERT: We are completely overriding the sample() method in the base class, which - # means that inpainting will not work. To get this to work we need to be able to - # modify the inner loop of k_heun, k_lms, etc, as is done in an ugly way - # in the lstein/k-diffusion branch. - - @torch.no_grad() - def decode( - self, - z_enc, - cond, - t_enc, - img_callback=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - use_original_steps=False, - init_latent=None, - mask=None, - **kwargs, - ): - samples, _ = self.sample( - batch_size=1, - S=t_enc, - x_T=z_enc, - shape=z_enc.shape[1:], - conditioning=cond, - unconditional_guidance_scale=unconditional_guidance_scale, - unconditional_conditioning=unconditional_conditioning, - img_callback=img_callback, - x0=init_latent, - mask=mask, - **kwargs, - ) - return samples - - # this is a no-op, provided here for compatibility with ddim and plms samplers - @torch.no_grad() - def stochastic_encode(self, x0, t, use_original_steps=False, noise=None): - return x0 - - # Most of these arguments are ignored and are only present for compatibility with - # other samples - @torch.no_grad() - def sample( - self, - S, - batch_size, - shape, - conditioning=None, - callback=None, - normals_sequence=None, - img_callback=None, - attention_maps_callback=None, - quantize_x0=False, - eta=0.0, - mask=None, - x0=None, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - verbose=True, - x_T=None, - log_every_t=100, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - extra_conditioning_info: InvokeAIDiffuserComponent.ExtraConditioningInfo = None, - threshold=0, - perlin=0, - # this has to come in the same format as the conditioning, # e.g. as encoded tokens, ... - **kwargs, - ): - def route_callback(k_callback_values): - if img_callback is not None: - img_callback(k_callback_values["x"], k_callback_values["i"]) - - # if make_schedule() hasn't been called, we do it now - if self.sigmas is None: - self.make_schedule( - ddim_num_steps=S, - ddim_eta=eta, - verbose=False, - ) - - # sigmas are set up in make_schedule - we take the last steps items - sigmas = self.sigmas[-S - 1 :] - - # x_T is variation noise. When an init image is provided (in x0) we need to add - # more randomness to the starting image. - if x_T is not None: - if x0 is not None: - x = x_T + torch.randn_like(x0, device=self.device) * sigmas[0] - else: - x = x_T * sigmas[0] - else: - x = torch.randn([batch_size, *shape], device=self.device) * sigmas[0] - - model_wrap_cfg = CFGDenoiser( - self.model, threshold=threshold, warmup=max(0.8 * S, S - 10) - ) - model_wrap_cfg.prepare_to_sample( - S, extra_conditioning_info=extra_conditioning_info - ) - - # setup attention maps saving. checks for None are because there are multiple code paths to get here. - attention_map_saver = None - if attention_maps_callback is not None and extra_conditioning_info is not None: - eos_token_index = extra_conditioning_info.tokens_count_including_eos_bos - 1 - attention_map_token_ids = range(1, eos_token_index) - attention_map_saver = AttentionMapSaver( - token_ids=attention_map_token_ids, latents_shape=x.shape[-2:] - ) - model_wrap_cfg.invokeai_diffuser.setup_attention_map_saving( - attention_map_saver - ) - - extra_args = { - "cond": conditioning, - "uncond": unconditional_conditioning, - "cond_scale": unconditional_guidance_scale, - } - print( - f">> Sampling with k_{self.schedule} starting at step {len(self.sigmas)-S-1} of {len(self.sigmas)-1} ({S} new sampling steps)" - ) - sampling_result = ( - K.sampling.__dict__[f"sample_{self.schedule}"]( - model_wrap_cfg, - x, - sigmas, - extra_args=extra_args, - callback=route_callback, - ), - None, - ) - if attention_map_saver is not None: - attention_maps_callback(attention_map_saver) - return sampling_result - - # this code will support inpainting if and when ksampler API modified or - # a workaround is found. - @torch.no_grad() - def p_sample( - self, - img, - cond, - ts, - index, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - extra_conditioning_info=None, - **kwargs, - ): - if self.model_wrap is None: - self.model_wrap = CFGDenoiser(self.model) - extra_args = { - "cond": cond, - "uncond": unconditional_conditioning, - "cond_scale": unconditional_guidance_scale, - } - if self.s_in is None: - self.s_in = img.new_ones([img.shape[0]]) - if self.ds is None: - self.ds = [] - - # terrible, confusing names here - steps = self.ddim_num_steps - t_enc = self.t_enc - - # sigmas is a full steps in length, but t_enc might - # be less. We start in the middle of the sigma array - # and work our way to the end after t_enc steps. - # index starts at t_enc and works its way to zero, - # so the actual formula for indexing into sigmas: - # sigma_index = (steps-index) - s_index = t_enc - index - 1 - self.model_wrap.prepare_to_sample( - s_index, extra_conditioning_info=extra_conditioning_info - ) - img = K.sampling.__dict__[f"_{self.schedule}"]( - self.model_wrap, - img, - self.sigmas, - s_index, - s_in=self.s_in, - ds=self.ds, - extra_args=extra_args, - ) - - return img, None, None - - # REVIEW THIS METHOD: it has never been tested. In particular, - # we should not be multiplying by self.sigmas[0] if we - # are at an intermediate step in img2img. See similar in - # sample() which does work. - def get_initial_image(self, x_T, shape, steps): - print(f"WARNING: ksampler.get_initial_image(): get_initial_image needs testing") - x = torch.randn(shape, device=self.device) * self.sigmas[0] - if x_T is not None: - return x_T + x - else: - return x - - def prepare_to_sample(self, t_enc, **kwargs): - self.t_enc = t_enc - self.model_wrap = None - self.ds = None - self.s_in = None - - def q_sample(self, x0, ts): - """ - Overrides parent method to return the q_sample of the inner model. - """ - return self.model.inner_model.q_sample(x0, ts) - - def conditioning_key(self) -> str: - return self.model.inner_model.model.conditioning_key diff --git a/invokeai/backend/stable_diffusion/diffusion/plms.py b/invokeai/backend/stable_diffusion/diffusion/plms.py deleted file mode 100644 index df37afcc24..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/plms.py +++ /dev/null @@ -1,143 +0,0 @@ -"""SAMPLING ONLY.""" - -from functools import partial - -import numpy as np -import torch -from tqdm import tqdm - -from ...util import choose_torch_device -from ..diffusionmodules.util import noise_like -from .sampler import Sampler -from .shared_invokeai_diffusion import InvokeAIDiffuserComponent - - -class PLMSSampler(Sampler): - def __init__(self, model, schedule="linear", device=None, **kwargs): - super().__init__(model, schedule, model.num_timesteps, device) - - def prepare_to_sample(self, t_enc, **kwargs): - super().prepare_to_sample(t_enc, **kwargs) - - extra_conditioning_info = kwargs.get("extra_conditioning_info", None) - all_timesteps_count = kwargs.get("all_timesteps_count", t_enc) - - if ( - extra_conditioning_info is not None - and extra_conditioning_info.wants_cross_attention_control - ): - self.invokeai_diffuser.override_cross_attention( - extra_conditioning_info, step_count=all_timesteps_count - ) - else: - self.invokeai_diffuser.restore_default_cross_attention() - - # this is the essential routine - @torch.no_grad() - def p_sample( - self, - x, # image, called 'img' elsewhere - c, # conditioning, called 'cond' elsewhere - t, # timesteps, called 'ts' elsewhere - index, - repeat_noise=False, - use_original_steps=False, - quantize_denoised=False, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - old_eps=[], - t_next=None, - step_count: int = 1000, # total number of steps - **kwargs, - ): - b, *_, device = *x.shape, x.device - - def get_model_output(x, t): - if ( - unconditional_conditioning is None - or unconditional_guidance_scale == 1.0 - ): - # damian0815 would like to know when/if this code path is used - e_t = self.model.apply_model(x, t, c) - else: - # step_index counts in the opposite direction to index - step_index = step_count - (index + 1) - e_t = self.invokeai_diffuser.do_diffusion_step( - x, - t, - unconditional_conditioning, - c, - unconditional_guidance_scale, - step_index=step_index, - ) - if score_corrector is not None: - assert self.model.parameterization == "eps" - e_t = score_corrector.modify_score( - self.model, e_t, x, t, c, **corrector_kwargs - ) - - return e_t - - alphas = self.model.alphas_cumprod if use_original_steps else self.ddim_alphas - alphas_prev = ( - self.model.alphas_cumprod_prev - if use_original_steps - else self.ddim_alphas_prev - ) - sqrt_one_minus_alphas = ( - self.model.sqrt_one_minus_alphas_cumprod - if use_original_steps - else self.ddim_sqrt_one_minus_alphas - ) - sigmas = ( - self.model.ddim_sigmas_for_original_num_steps - if use_original_steps - else self.ddim_sigmas - ) - - def get_x_prev_and_pred_x0(e_t, index): - # select parameters corresponding to the currently considered timestep - a_t = torch.full((b, 1, 1, 1), alphas[index], device=device) - a_prev = torch.full((b, 1, 1, 1), alphas_prev[index], device=device) - sigma_t = torch.full((b, 1, 1, 1), sigmas[index], device=device) - sqrt_one_minus_at = torch.full( - (b, 1, 1, 1), sqrt_one_minus_alphas[index], device=device - ) - - # current prediction for x_0 - pred_x0 = (x - sqrt_one_minus_at * e_t) / a_t.sqrt() - if quantize_denoised: - pred_x0, _, *_ = self.model.first_stage_model.quantize(pred_x0) - # direction pointing to x_t - dir_xt = (1.0 - a_prev - sigma_t**2).sqrt() * e_t - noise = sigma_t * noise_like(x.shape, device, repeat_noise) * temperature - if noise_dropout > 0.0: - noise = torch.nn.functional.dropout(noise, p=noise_dropout) - x_prev = a_prev.sqrt() * pred_x0 + dir_xt + noise - return x_prev, pred_x0 - - e_t = get_model_output(x, t) - if len(old_eps) == 0: - # Pseudo Improved Euler (2nd order) - x_prev, pred_x0 = get_x_prev_and_pred_x0(e_t, index) - e_t_next = get_model_output(x_prev, t_next) - e_t_prime = (e_t + e_t_next) / 2 - elif len(old_eps) == 1: - # 2nd order Pseudo Linear Multistep (Adams-Bashforth) - e_t_prime = (3 * e_t - old_eps[-1]) / 2 - elif len(old_eps) == 2: - # 3nd order Pseudo Linear Multistep (Adams-Bashforth) - e_t_prime = (23 * e_t - 16 * old_eps[-1] + 5 * old_eps[-2]) / 12 - elif len(old_eps) >= 3: - # 4nd order Pseudo Linear Multistep (Adams-Bashforth) - e_t_prime = ( - 55 * e_t - 59 * old_eps[-1] + 37 * old_eps[-2] - 9 * old_eps[-3] - ) / 24 - - x_prev, pred_x0 = get_x_prev_and_pred_x0(e_t_prime, index) - - return x_prev, pred_x0, e_t diff --git a/invokeai/backend/stable_diffusion/diffusion/sampler.py b/invokeai/backend/stable_diffusion/diffusion/sampler.py deleted file mode 100644 index beb74eaefb..0000000000 --- a/invokeai/backend/stable_diffusion/diffusion/sampler.py +++ /dev/null @@ -1,454 +0,0 @@ -""" -invokeai.models.diffusion.sampler - -Base class for invokeai.models.diffusion.ddim, invokeai.models.diffusion.ksampler, etc -""" -from functools import partial - -import numpy as np -import torch -from tqdm import tqdm - -from ...util import choose_torch_device -from ..diffusionmodules.util import ( - extract_into_tensor, - make_ddim_sampling_parameters, - make_ddim_timesteps, - noise_like, -) -from .shared_invokeai_diffusion import InvokeAIDiffuserComponent - - -class Sampler(object): - def __init__(self, model, schedule="linear", steps=None, device=None, **kwargs): - self.model = model - self.ddim_timesteps = None - self.ddpm_num_timesteps = steps - self.schedule = schedule - self.device = device or choose_torch_device() - self.invokeai_diffuser = InvokeAIDiffuserComponent( - self.model, - model_forward_callback=lambda x, sigma, cond: self.model.apply_model( - x, sigma, cond - ), - ) - - def register_buffer(self, name, attr): - if type(attr) == torch.Tensor: - if attr.device != torch.device(self.device): - attr = attr.to(torch.float32).to(torch.device(self.device)) - setattr(self, name, attr) - - # This method was copied over from ddim.py and probably does stuff that is - # ddim-specific. Disentangle at some point. - def make_schedule( - self, - ddim_num_steps, - ddim_discretize="uniform", - ddim_eta=0.0, - verbose=False, - ): - self.total_steps = ddim_num_steps - self.ddim_timesteps = make_ddim_timesteps( - ddim_discr_method=ddim_discretize, - num_ddim_timesteps=ddim_num_steps, - num_ddpm_timesteps=self.ddpm_num_timesteps, - verbose=verbose, - ) - alphas_cumprod = self.model.alphas_cumprod - assert ( - alphas_cumprod.shape[0] == self.ddpm_num_timesteps - ), "alphas have to be defined for each timestep" - to_torch = lambda x: x.clone().detach().to(torch.float32).to(self.model.device) - - self.register_buffer("betas", to_torch(self.model.betas)) - self.register_buffer("alphas_cumprod", to_torch(alphas_cumprod)) - self.register_buffer( - "alphas_cumprod_prev", to_torch(self.model.alphas_cumprod_prev) - ) - - # calculations for diffusion q(x_t | x_{t-1}) and others - self.register_buffer( - "sqrt_alphas_cumprod", to_torch(np.sqrt(alphas_cumprod.cpu())) - ) - self.register_buffer( - "sqrt_one_minus_alphas_cumprod", - to_torch(np.sqrt(1.0 - alphas_cumprod.cpu())), - ) - self.register_buffer( - "log_one_minus_alphas_cumprod", - to_torch(np.log(1.0 - alphas_cumprod.cpu())), - ) - self.register_buffer( - "sqrt_recip_alphas_cumprod", - to_torch(np.sqrt(1.0 / alphas_cumprod.cpu())), - ) - self.register_buffer( - "sqrt_recipm1_alphas_cumprod", - to_torch(np.sqrt(1.0 / alphas_cumprod.cpu() - 1)), - ) - - # ddim sampling parameters - ( - ddim_sigmas, - ddim_alphas, - ddim_alphas_prev, - ) = make_ddim_sampling_parameters( - alphacums=alphas_cumprod.cpu(), - ddim_timesteps=self.ddim_timesteps, - eta=ddim_eta, - verbose=verbose, - ) - self.register_buffer("ddim_sigmas", ddim_sigmas) - self.register_buffer("ddim_alphas", ddim_alphas) - self.register_buffer("ddim_alphas_prev", ddim_alphas_prev) - self.register_buffer("ddim_sqrt_one_minus_alphas", np.sqrt(1.0 - ddim_alphas)) - sigmas_for_original_sampling_steps = ddim_eta * torch.sqrt( - (1 - self.alphas_cumprod_prev) - / (1 - self.alphas_cumprod) - * (1 - self.alphas_cumprod / self.alphas_cumprod_prev) - ) - self.register_buffer( - "ddim_sigmas_for_original_num_steps", - sigmas_for_original_sampling_steps, - ) - - @torch.no_grad() - def stochastic_encode(self, x0, t, use_original_steps=False, noise=None): - # fast, but does not allow for exact reconstruction - # t serves as an index to gather the correct alphas - if use_original_steps: - sqrt_alphas_cumprod = self.sqrt_alphas_cumprod - sqrt_one_minus_alphas_cumprod = self.sqrt_one_minus_alphas_cumprod - else: - sqrt_alphas_cumprod = torch.sqrt(self.ddim_alphas) - sqrt_one_minus_alphas_cumprod = self.ddim_sqrt_one_minus_alphas - - if noise is None: - noise = torch.randn_like(x0) - return ( - extract_into_tensor(sqrt_alphas_cumprod, t, x0.shape) * x0 - + extract_into_tensor(sqrt_one_minus_alphas_cumprod, t, x0.shape) * noise - ) - - @torch.no_grad() - def sample( - self, - S, # S is steps - batch_size, - shape, - conditioning=None, - callback=None, - normals_sequence=None, - img_callback=None, # TODO: this is very confusing because it is called "step_callback" elsewhere. Change. - quantize_x0=False, - eta=0.0, - mask=None, - x0=None, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - verbose=False, - x_T=None, - log_every_t=100, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - # this has to come in the same format as the conditioning, # e.g. as encoded tokens, ... - **kwargs, - ): - if conditioning is not None: - if isinstance(conditioning, dict): - ctmp = conditioning[list(conditioning.keys())[0]] - while isinstance(ctmp, list): - ctmp = ctmp[0] - cbs = ctmp.shape[0] - if cbs != batch_size: - print( - f"Warning: Got {cbs} conditionings but batch-size is {batch_size}" - ) - else: - if conditioning.shape[0] != batch_size: - print( - f"Warning: Got {conditioning.shape[0]} conditionings but batch-size is {batch_size}" - ) - - # check to see if make_schedule() has run, and if not, run it - if self.ddim_timesteps is None: - self.make_schedule( - ddim_num_steps=S, - ddim_eta=eta, - verbose=False, - ) - - ts = self.get_timesteps(S) - - # sampling - C, H, W = shape - shape = (batch_size, C, H, W) - samples, intermediates = self.do_sampling( - conditioning, - shape, - timesteps=ts, - callback=callback, - img_callback=img_callback, - quantize_denoised=quantize_x0, - mask=mask, - x0=x0, - ddim_use_original_steps=False, - noise_dropout=noise_dropout, - temperature=temperature, - score_corrector=score_corrector, - corrector_kwargs=corrector_kwargs, - x_T=x_T, - log_every_t=log_every_t, - unconditional_guidance_scale=unconditional_guidance_scale, - unconditional_conditioning=unconditional_conditioning, - steps=S, - **kwargs, - ) - return samples, intermediates - - @torch.no_grad() - def do_sampling( - self, - cond, - shape, - timesteps=None, - x_T=None, - ddim_use_original_steps=False, - callback=None, - quantize_denoised=False, - mask=None, - x0=None, - img_callback=None, - log_every_t=100, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - steps=None, - **kwargs, - ): - b = shape[0] - time_range = ( - list(reversed(range(0, timesteps))) - if ddim_use_original_steps - else np.flip(timesteps) - ) - - total_steps = steps - - iterator = tqdm( - time_range, - desc=f"{self.__class__.__name__}", - total=total_steps, - dynamic_ncols=True, - ) - old_eps = [] - self.prepare_to_sample(t_enc=total_steps, all_timesteps_count=steps, **kwargs) - img = self.get_initial_image(x_T, shape, total_steps) - - # probably don't need this at all - intermediates = {"x_inter": [img], "pred_x0": [img]} - - for i, step in enumerate(iterator): - index = total_steps - i - 1 - ts = torch.full((b,), step, device=self.device, dtype=torch.long) - ts_next = torch.full( - (b,), - time_range[min(i + 1, len(time_range) - 1)], - device=self.device, - dtype=torch.long, - ) - - if mask is not None: - assert x0 is not None - img_orig = self.model.q_sample( - x0, ts - ) # TODO: deterministic forward pass? - img = img_orig * mask + (1.0 - mask) * img - - outs = self.p_sample( - img, - cond, - ts, - index=index, - use_original_steps=ddim_use_original_steps, - quantize_denoised=quantize_denoised, - temperature=temperature, - noise_dropout=noise_dropout, - score_corrector=score_corrector, - corrector_kwargs=corrector_kwargs, - unconditional_guidance_scale=unconditional_guidance_scale, - unconditional_conditioning=unconditional_conditioning, - old_eps=old_eps, - t_next=ts_next, - step_count=steps, - ) - img, pred_x0, e_t = outs - - old_eps.append(e_t) - if len(old_eps) >= 4: - old_eps.pop(0) - if callback: - callback(i) - if img_callback: - img_callback(img, i) - - if index % log_every_t == 0 or index == total_steps - 1: - intermediates["x_inter"].append(img) - intermediates["pred_x0"].append(pred_x0) - - return img, intermediates - - # NOTE that decode() and sample() are almost the same code, and do the same thing. - # The variable names are changed in order to be confusing. - @torch.no_grad() - def decode( - self, - x_latent, - cond, - t_start, - img_callback=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - use_original_steps=False, - init_latent=None, - mask=None, - all_timesteps_count=None, - **kwargs, - ): - timesteps = ( - np.arange(self.ddpm_num_timesteps) - if use_original_steps - else self.ddim_timesteps - ) - timesteps = timesteps[:t_start] - - time_range = np.flip(timesteps) - total_steps = timesteps.shape[0] - print( - f">> Running {self.__class__.__name__} sampling starting at step {self.total_steps - t_start} of {self.total_steps} ({total_steps} new sampling steps)" - ) - - iterator = tqdm(time_range, desc="Decoding image", total=total_steps) - x_dec = x_latent - x0 = init_latent - self.prepare_to_sample( - t_enc=total_steps, all_timesteps_count=all_timesteps_count, **kwargs - ) - - for i, step in enumerate(iterator): - index = total_steps - i - 1 - ts = torch.full( - (x_latent.shape[0],), - step, - device=x_latent.device, - dtype=torch.long, - ) - - ts_next = torch.full( - (x_latent.shape[0],), - time_range[min(i + 1, len(time_range) - 1)], - device=self.device, - dtype=torch.long, - ) - - if mask is not None: - assert x0 is not None - xdec_orig = self.q_sample(x0, ts) # TODO: deterministic forward pass? - x_dec = xdec_orig * mask + (1.0 - mask) * x_dec - - outs = self.p_sample( - x_dec, - cond, - ts, - index=index, - use_original_steps=use_original_steps, - unconditional_guidance_scale=unconditional_guidance_scale, - unconditional_conditioning=unconditional_conditioning, - t_next=ts_next, - step_count=len(self.ddim_timesteps), - ) - - x_dec, pred_x0, e_t = outs - if img_callback: - img_callback(x_dec, i) - - return x_dec - - def get_initial_image(self, x_T, shape, timesteps=None): - if x_T is None: - return torch.randn(shape, device=self.device) - else: - return x_T - - def p_sample( - self, - img, - cond, - ts, - index, - repeat_noise=False, - use_original_steps=False, - quantize_denoised=False, - temperature=1.0, - noise_dropout=0.0, - score_corrector=None, - corrector_kwargs=None, - unconditional_guidance_scale=1.0, - unconditional_conditioning=None, - old_eps=None, - t_next=None, - steps=None, - ): - raise NotImplementedError( - "p_sample() must be implemented in a descendent class" - ) - - def prepare_to_sample(self, t_enc, **kwargs): - """ - Hook that will be called right before the very first invocation of p_sample() - to allow subclass to do additional initialization. t_enc corresponds to the actual - number of steps that will be run, and may be less than total steps if img2img is - active. - """ - pass - - def get_timesteps(self, ddim_steps): - """ - The ddim and plms samplers work on timesteps. This method is called after - ddim_timesteps are created in make_schedule(), and selects the portion of - timesteps that will be used for sampling, depending on the t_enc in img2img. - """ - return self.ddim_timesteps[:ddim_steps] - - def q_sample(self, x0, ts): - """ - Returns self.model.q_sample(x0,ts). Is overridden in the k* samplers to - return self.model.inner_model.q_sample(x0,ts) - """ - return self.model.q_sample(x0, ts) - - def conditioning_key(self) -> str: - return self.model.model.conditioning_key - - def uses_inpainting_model(self) -> bool: - return self.conditioning_key() in ("hybrid", "concat") - - def adjust_settings(self, **kwargs): - """ - This is a catch-all method for adjusting any instance variables - after the sampler is instantiated. No type-checking performed - here, so use with care! - """ - for k in kwargs.keys(): - try: - setattr(self, k, kwargs[k]) - except AttributeError: - print( - f"** Warning: attempt to set unknown attribute {k} in sampler of type {type(self)}" - ) diff --git a/invokeai/backend/stable_diffusion/diffusionmodules/__init__.py b/invokeai/backend/stable_diffusion/diffusionmodules/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/invokeai/backend/stable_diffusion/diffusionmodules/model.py b/invokeai/backend/stable_diffusion/diffusionmodules/model.py deleted file mode 100644 index 62cb45d508..0000000000 --- a/invokeai/backend/stable_diffusion/diffusionmodules/model.py +++ /dev/null @@ -1,1081 +0,0 @@ -# pytorch_diffusion + derived encoder decoder -import gc -import math - -import numpy as np -import psutil -import torch -import torch.nn as nn -from einops import rearrange -from torch.nn.functional import silu - -from ...util import instantiate_from_config -from ..attention import LinearAttention - - -def get_timestep_embedding(timesteps, embedding_dim): - """ - This matches the implementation in Denoising Diffusion Probabilistic Models: - From Fairseq. - Build sinusoidal embeddings. - This matches the implementation in tensor2tensor, but differs slightly - from the description in Section 3.5 of "Attention Is All You Need". - """ - assert len(timesteps.shape) == 1 - - half_dim = embedding_dim // 2 - emb = math.log(10000) / (half_dim - 1) - emb = torch.exp(torch.arange(half_dim, dtype=torch.float32) * -emb) - emb = emb.to(device=timesteps.device) - emb = timesteps.float()[:, None] * emb[None, :] - emb = torch.cat([torch.sin(emb), torch.cos(emb)], dim=1) - if embedding_dim % 2 == 1: # zero pad - emb = torch.nn.functional.pad(emb, (0, 1, 0, 0)) - return emb - - -def Normalize(in_channels, num_groups=32): - return torch.nn.GroupNorm( - num_groups=num_groups, num_channels=in_channels, eps=1e-6, affine=True - ) - - -class Upsample(nn.Module): - def __init__(self, in_channels, with_conv): - super().__init__() - self.with_conv = with_conv - if self.with_conv: - self.conv = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=3, stride=1, padding=1 - ) - - def forward(self, x): - cpu_m1_cond = ( - True - if hasattr(torch.backends, "mps") - and torch.backends.mps.is_available() - and x.size()[0] * x.size()[1] * x.size()[2] * x.size()[3] % 2**27 == 0 - else False - ) - if cpu_m1_cond: - x = x.to("cpu") # send to cpu - x = torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest") - if self.with_conv: - x = self.conv(x) - if cpu_m1_cond: - x = x.to("mps") # return to mps - return x - - -class Downsample(nn.Module): - def __init__(self, in_channels, with_conv): - super().__init__() - self.with_conv = with_conv - if self.with_conv: - # no asymmetric padding in torch conv, must do it ourselves - self.conv = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=3, stride=2, padding=0 - ) - - def forward(self, x): - if self.with_conv: - pad = (0, 1, 0, 1) - x = torch.nn.functional.pad(x, pad, mode="constant", value=0) - x = self.conv(x) - else: - x = torch.nn.functional.avg_pool2d(x, kernel_size=2, stride=2) - return x - - -class ResnetBlock(nn.Module): - def __init__( - self, - *, - in_channels, - out_channels=None, - conv_shortcut=False, - dropout, - temb_channels=512, - ): - super().__init__() - self.in_channels = in_channels - out_channels = in_channels if out_channels is None else out_channels - self.out_channels = out_channels - self.use_conv_shortcut = conv_shortcut - - self.norm1 = Normalize(in_channels) - self.conv1 = torch.nn.Conv2d( - in_channels, out_channels, kernel_size=3, stride=1, padding=1 - ) - if temb_channels > 0: - self.temb_proj = torch.nn.Linear(temb_channels, out_channels) - self.norm2 = Normalize(out_channels) - self.dropout = torch.nn.Dropout(dropout) - self.conv2 = torch.nn.Conv2d( - out_channels, out_channels, kernel_size=3, stride=1, padding=1 - ) - if self.in_channels != self.out_channels: - if self.use_conv_shortcut: - self.conv_shortcut = torch.nn.Conv2d( - in_channels, out_channels, kernel_size=3, stride=1, padding=1 - ) - else: - self.nin_shortcut = torch.nn.Conv2d( - in_channels, out_channels, kernel_size=1, stride=1, padding=0 - ) - - def forward(self, x, temb): - if hasattr(torch.backends, "mps") and torch.backends.mps.is_available(): - x_size = x.size() - if (x_size[0] * x_size[1] * x_size[2] * x_size[3]) % 2**29 == 0: - self.to("cpu") - x = x.to("cpu") - else: - self.to("mps") - x = x.to("mps") - h = self.norm1(x) - h = silu(h) - h = self.conv1(h) - - if temb is not None: - h = h + self.temb_proj(silu(temb))[:, :, None, None] - - h = self.norm2(h) - h = silu(h) - h = self.dropout(h) - h = self.conv2(h) - - if self.in_channels != self.out_channels: - if self.use_conv_shortcut: - x = self.conv_shortcut(x) - else: - x = self.nin_shortcut(x) - - return x + h - - -class LinAttnBlock(LinearAttention): - """to match AttnBlock usage""" - - def __init__(self, in_channels): - super().__init__(dim=in_channels, heads=1, dim_head=in_channels) - - -class AttnBlock(nn.Module): - def __init__(self, in_channels): - super().__init__() - self.in_channels = in_channels - - self.norm = Normalize(in_channels) - self.q = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.k = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.v = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - self.proj_out = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=1, stride=1, padding=0 - ) - - def forward(self, x): - h_ = x - h_ = self.norm(h_) - q1 = self.q(h_) - k1 = self.k(h_) - v = self.v(h_) - - # compute attention - b, c, h, w = q1.shape - - q2 = q1.reshape(b, c, h * w) - del q1 - - q = q2.permute(0, 2, 1) # b,hw,c - del q2 - - k = k1.reshape(b, c, h * w) # b,c,hw - del k1 - - h_ = torch.zeros_like(k, device=q.device) - - if q.device.type == "cuda": - stats = torch.cuda.memory_stats(q.device) - mem_active = stats["active_bytes.all.current"] - mem_reserved = stats["reserved_bytes.all.current"] - mem_free_cuda, _ = torch.cuda.mem_get_info(torch.cuda.current_device()) - mem_free_torch = mem_reserved - mem_active - mem_free_total = mem_free_cuda + mem_free_torch - - tensor_size = q.shape[0] * q.shape[1] * k.shape[2] * 4 - mem_required = tensor_size * 2.5 - steps = 1 - - if mem_required > mem_free_total: - steps = 2 ** (math.ceil(math.log(mem_required / mem_free_total, 2))) - - slice_size = ( - q.shape[1] // steps if (q.shape[1] % steps) == 0 else q.shape[1] - ) - - else: - if psutil.virtual_memory().available / (1024**3) < 12: - slice_size = 1 - else: - slice_size = min( - q.shape[1], math.floor(2**30 / (q.shape[0] * q.shape[1])) - ) - - for i in range(0, q.shape[1], slice_size): - end = i + slice_size - - w1 = torch.bmm(q[:, i:end], k) # b,hw,hw w[b,i,j]=sum_c q[b,i,c]k[b,c,j] - w2 = w1 * (int(c) ** (-0.5)) - del w1 - w3 = torch.nn.functional.softmax(w2, dim=2) - del w2 - - # attend to values - v1 = v.reshape(b, c, h * w) - w4 = w3.permute(0, 2, 1) # b,hw,hw (first hw of k, second of q) - del w3 - - h_[:, :, i:end] = torch.bmm( - v1, w4 - ) # b, c,hw (hw of q) h_[b,c,j] = sum_i v[b,c,i] w_[b,i,j] - del v1, w4 - - h2 = h_.reshape(b, c, h, w) - del h_ - - h3 = self.proj_out(h2) - del h2 - - h3 += x - - return h3 - - -def make_attn(in_channels, attn_type="vanilla"): - assert attn_type in ["vanilla", "linear", "none"], f"attn_type {attn_type} unknown" - print(f" | Making attention of type '{attn_type}' with {in_channels} in_channels") - if attn_type == "vanilla": - return AttnBlock(in_channels) - elif attn_type == "none": - return nn.Identity(in_channels) - else: - return LinAttnBlock(in_channels) - - -class Model(nn.Module): - def __init__( - self, - *, - ch, - out_ch, - ch_mult=(1, 2, 4, 8), - num_res_blocks, - attn_resolutions, - dropout=0.0, - resamp_with_conv=True, - in_channels, - resolution, - use_timestep=True, - use_linear_attn=False, - attn_type="vanilla", - ): - super().__init__() - if use_linear_attn: - attn_type = "linear" - self.ch = ch - self.temb_ch = self.ch * 4 - self.num_resolutions = len(ch_mult) - self.num_res_blocks = num_res_blocks - self.resolution = resolution - self.in_channels = in_channels - - self.use_timestep = use_timestep - if self.use_timestep: - # timestep embedding - self.temb = nn.Module() - self.temb.dense = nn.ModuleList( - [ - torch.nn.Linear(self.ch, self.temb_ch), - torch.nn.Linear(self.temb_ch, self.temb_ch), - ] - ) - - # downsampling - self.conv_in = torch.nn.Conv2d( - in_channels, self.ch, kernel_size=3, stride=1, padding=1 - ) - - curr_res = resolution - in_ch_mult = (1,) + tuple(ch_mult) - self.down = nn.ModuleList() - for i_level in range(self.num_resolutions): - block = nn.ModuleList() - attn = nn.ModuleList() - block_in = ch * in_ch_mult[i_level] - block_out = ch * ch_mult[i_level] - for i_block in range(self.num_res_blocks): - block.append( - ResnetBlock( - in_channels=block_in, - out_channels=block_out, - temb_channels=self.temb_ch, - dropout=dropout, - ) - ) - block_in = block_out - if curr_res in attn_resolutions: - attn.append(make_attn(block_in, attn_type=attn_type)) - down = nn.Module() - down.block = block - down.attn = attn - if i_level != self.num_resolutions - 1: - down.downsample = Downsample(block_in, resamp_with_conv) - curr_res = curr_res // 2 - self.down.append(down) - - # middle - self.mid = nn.Module() - self.mid.block_1 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - self.mid.attn_1 = make_attn(block_in, attn_type=attn_type) - self.mid.block_2 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - - # upsampling - self.up = nn.ModuleList() - for i_level in reversed(range(self.num_resolutions)): - block = nn.ModuleList() - attn = nn.ModuleList() - block_out = ch * ch_mult[i_level] - skip_in = ch * ch_mult[i_level] - for i_block in range(self.num_res_blocks + 1): - if i_block == self.num_res_blocks: - skip_in = ch * in_ch_mult[i_level] - block.append( - ResnetBlock( - in_channels=block_in + skip_in, - out_channels=block_out, - temb_channels=self.temb_ch, - dropout=dropout, - ) - ) - block_in = block_out - if curr_res in attn_resolutions: - attn.append(make_attn(block_in, attn_type=attn_type)) - up = nn.Module() - up.block = block - up.attn = attn - if i_level != 0: - up.upsample = Upsample(block_in, resamp_with_conv) - curr_res = curr_res * 2 - self.up.insert(0, up) # prepend to get consistent order - - # end - self.norm_out = Normalize(block_in) - self.conv_out = torch.nn.Conv2d( - block_in, out_ch, kernel_size=3, stride=1, padding=1 - ) - - def forward(self, x, t=None, context=None): - # assert x.shape[2] == x.shape[3] == self.resolution - if context is not None: - # assume aligned context, cat along channel axis - x = torch.cat((x, context), dim=1) - if self.use_timestep: - # timestep embedding - assert t is not None - temb = get_timestep_embedding(t, self.ch) - temb = self.temb.dense[0](temb) - temb = silu(temb) - temb = self.temb.dense[1](temb) - else: - temb = None - - # downsampling - hs = [self.conv_in(x)] - for i_level in range(self.num_resolutions): - for i_block in range(self.num_res_blocks): - h = self.down[i_level].block[i_block](hs[-1], temb) - if len(self.down[i_level].attn) > 0: - h = self.down[i_level].attn[i_block](h) - hs.append(h) - if i_level != self.num_resolutions - 1: - hs.append(self.down[i_level].downsample(hs[-1])) - - # middle - h = hs[-1] - h = self.mid.block_1(h, temb) - h = self.mid.attn_1(h) - h = self.mid.block_2(h, temb) - - # upsampling - for i_level in reversed(range(self.num_resolutions)): - for i_block in range(self.num_res_blocks + 1): - h = self.up[i_level].block[i_block]( - torch.cat([h, hs.pop()], dim=1), temb - ) - if len(self.up[i_level].attn) > 0: - h = self.up[i_level].attn[i_block](h) - if i_level != 0: - h = self.up[i_level].upsample(h) - - # end - h = self.norm_out(h) - h = silu(h) - h = self.conv_out(h) - return h - - def get_last_layer(self): - return self.conv_out.weight - - -class Encoder(nn.Module): - def __init__( - self, - *, - ch, - out_ch, - ch_mult=(1, 2, 4, 8), - num_res_blocks, - attn_resolutions, - dropout=0.0, - resamp_with_conv=True, - in_channels, - resolution, - z_channels, - double_z=True, - use_linear_attn=False, - attn_type="vanilla", - **ignore_kwargs, - ): - super().__init__() - if use_linear_attn: - attn_type = "linear" - self.ch = ch - self.temb_ch = 0 - self.num_resolutions = len(ch_mult) - self.num_res_blocks = num_res_blocks - self.resolution = resolution - self.in_channels = in_channels - - # downsampling - self.conv_in = torch.nn.Conv2d( - in_channels, self.ch, kernel_size=3, stride=1, padding=1 - ) - - curr_res = resolution - in_ch_mult = (1,) + tuple(ch_mult) - self.in_ch_mult = in_ch_mult - self.down = nn.ModuleList() - for i_level in range(self.num_resolutions): - block = nn.ModuleList() - attn = nn.ModuleList() - block_in = ch * in_ch_mult[i_level] - block_out = ch * ch_mult[i_level] - for i_block in range(self.num_res_blocks): - block.append( - ResnetBlock( - in_channels=block_in, - out_channels=block_out, - temb_channels=self.temb_ch, - dropout=dropout, - ) - ) - block_in = block_out - if curr_res in attn_resolutions: - attn.append(make_attn(block_in, attn_type=attn_type)) - down = nn.Module() - down.block = block - down.attn = attn - if i_level != self.num_resolutions - 1: - down.downsample = Downsample(block_in, resamp_with_conv) - curr_res = curr_res // 2 - self.down.append(down) - - # middle - self.mid = nn.Module() - self.mid.block_1 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - self.mid.attn_1 = make_attn(block_in, attn_type=attn_type) - self.mid.block_2 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - - # end - self.norm_out = Normalize(block_in) - self.conv_out = torch.nn.Conv2d( - block_in, - 2 * z_channels if double_z else z_channels, - kernel_size=3, - stride=1, - padding=1, - ) - - def forward(self, x): - # timestep embedding - temb = None - - # downsampling - hs = [self.conv_in(x)] - for i_level in range(self.num_resolutions): - for i_block in range(self.num_res_blocks): - h = self.down[i_level].block[i_block](hs[-1], temb) - if len(self.down[i_level].attn) > 0: - h = self.down[i_level].attn[i_block](h) - hs.append(h) - if i_level != self.num_resolutions - 1: - hs.append(self.down[i_level].downsample(hs[-1])) - - # middle - h = hs[-1] - h = self.mid.block_1(h, temb) - h = self.mid.attn_1(h) - h = self.mid.block_2(h, temb) - - # end - h = self.norm_out(h) - h = silu(h) - h = self.conv_out(h) - return h - - -class Decoder(nn.Module): - def __init__( - self, - *, - ch, - out_ch, - ch_mult=(1, 2, 4, 8), - num_res_blocks, - attn_resolutions, - dropout=0.0, - resamp_with_conv=True, - in_channels, - resolution, - z_channels, - give_pre_end=False, - tanh_out=False, - use_linear_attn=False, - attn_type="vanilla", - **ignorekwargs, - ): - super().__init__() - if use_linear_attn: - attn_type = "linear" - self.ch = ch - self.temb_ch = 0 - self.num_resolutions = len(ch_mult) - self.num_res_blocks = num_res_blocks - self.resolution = resolution - self.in_channels = in_channels - self.give_pre_end = give_pre_end - self.tanh_out = tanh_out - - # compute in_ch_mult, block_in and curr_res at lowest res - in_ch_mult = (1,) + tuple(ch_mult) - block_in = ch * ch_mult[self.num_resolutions - 1] - curr_res = resolution // 2 ** (self.num_resolutions - 1) - self.z_shape = (1, z_channels, curr_res, curr_res) - print( - " | Working with z of shape {} = {} dimensions.".format( - self.z_shape, np.prod(self.z_shape) - ) - ) - - # z to block_in - self.conv_in = torch.nn.Conv2d( - z_channels, block_in, kernel_size=3, stride=1, padding=1 - ) - - # middle - self.mid = nn.Module() - self.mid.block_1 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - self.mid.attn_1 = make_attn(block_in, attn_type=attn_type) - self.mid.block_2 = ResnetBlock( - in_channels=block_in, - out_channels=block_in, - temb_channels=self.temb_ch, - dropout=dropout, - ) - - # upsampling - self.up = nn.ModuleList() - for i_level in reversed(range(self.num_resolutions)): - block = nn.ModuleList() - attn = nn.ModuleList() - block_out = ch * ch_mult[i_level] - for i_block in range(self.num_res_blocks + 1): - block.append( - ResnetBlock( - in_channels=block_in, - out_channels=block_out, - temb_channels=self.temb_ch, - dropout=dropout, - ) - ) - block_in = block_out - if curr_res in attn_resolutions: - attn.append(make_attn(block_in, attn_type=attn_type)) - up = nn.Module() - up.block = block - up.attn = attn - if i_level != 0: - up.upsample = Upsample(block_in, resamp_with_conv) - curr_res = curr_res * 2 - self.up.insert(0, up) # prepend to get consistent order - - # end - self.norm_out = Normalize(block_in) - self.conv_out = torch.nn.Conv2d( - block_in, out_ch, kernel_size=3, stride=1, padding=1 - ) - - def forward(self, z): - # assert z.shape[1:] == self.z_shape[1:] - self.last_z_shape = z.shape - - # timestep embedding - temb = None - - # z to block_in - h = self.conv_in(z) - - # middle - h = self.mid.block_1(h, temb) - h = self.mid.attn_1(h) - h = self.mid.block_2(h, temb) - - # prepare for up sampling - gc.collect() - if h.device.type == "cuda": - torch.cuda.empty_cache() - - # upsampling - for i_level in reversed(range(self.num_resolutions)): - for i_block in range(self.num_res_blocks + 1): - h = self.up[i_level].block[i_block](h, temb) - if len(self.up[i_level].attn) > 0: - h = self.up[i_level].attn[i_block](h) - if i_level != 0: - h = self.up[i_level].upsample(h) - - # end - if self.give_pre_end: - return h - - h = self.norm_out(h) - h = silu(h) - h = self.conv_out(h) - if self.tanh_out: - h = torch.tanh(h) - return h - - -class SimpleDecoder(nn.Module): - def __init__(self, in_channels, out_channels, *args, **kwargs): - super().__init__() - self.model = nn.ModuleList( - [ - nn.Conv2d(in_channels, in_channels, 1), - ResnetBlock( - in_channels=in_channels, - out_channels=2 * in_channels, - temb_channels=0, - dropout=0.0, - ), - ResnetBlock( - in_channels=2 * in_channels, - out_channels=4 * in_channels, - temb_channels=0, - dropout=0.0, - ), - ResnetBlock( - in_channels=4 * in_channels, - out_channels=2 * in_channels, - temb_channels=0, - dropout=0.0, - ), - nn.Conv2d(2 * in_channels, in_channels, 1), - Upsample(in_channels, with_conv=True), - ] - ) - # end - self.norm_out = Normalize(in_channels) - self.conv_out = torch.nn.Conv2d( - in_channels, out_channels, kernel_size=3, stride=1, padding=1 - ) - - def forward(self, x): - for i, layer in enumerate(self.model): - if i in [1, 2, 3]: - x = layer(x, None) - else: - x = layer(x) - - h = self.norm_out(x) - h = silu(h) - x = self.conv_out(h) - return x - - -class UpsampleDecoder(nn.Module): - def __init__( - self, - in_channels, - out_channels, - ch, - num_res_blocks, - resolution, - ch_mult=(2, 2), - dropout=0.0, - ): - super().__init__() - # upsampling - self.temb_ch = 0 - self.num_resolutions = len(ch_mult) - self.num_res_blocks = num_res_blocks - block_in = in_channels - curr_res = resolution // 2 ** (self.num_resolutions - 1) - self.res_blocks = nn.ModuleList() - self.upsample_blocks = nn.ModuleList() - for i_level in range(self.num_resolutions): - res_block = [] - block_out = ch * ch_mult[i_level] - for i_block in range(self.num_res_blocks + 1): - res_block.append( - ResnetBlock( - in_channels=block_in, - out_channels=block_out, - temb_channels=self.temb_ch, - dropout=dropout, - ) - ) - block_in = block_out - self.res_blocks.append(nn.ModuleList(res_block)) - if i_level != self.num_resolutions - 1: - self.upsample_blocks.append(Upsample(block_in, True)) - curr_res = curr_res * 2 - - # end - self.norm_out = Normalize(block_in) - self.conv_out = torch.nn.Conv2d( - block_in, out_channels, kernel_size=3, stride=1, padding=1 - ) - - def forward(self, x): - # upsampling - h = x - for k, i_level in enumerate(range(self.num_resolutions)): - for i_block in range(self.num_res_blocks + 1): - h = self.res_blocks[i_level][i_block](h, None) - if i_level != self.num_resolutions - 1: - h = self.upsample_blocks[k](h) - h = self.norm_out(h) - h = silu(h) - h = self.conv_out(h) - return h - - -class LatentRescaler(nn.Module): - def __init__(self, factor, in_channels, mid_channels, out_channels, depth=2): - super().__init__() - # residual block, interpolate, residual block - self.factor = factor - self.conv_in = nn.Conv2d( - in_channels, mid_channels, kernel_size=3, stride=1, padding=1 - ) - self.res_block1 = nn.ModuleList( - [ - ResnetBlock( - in_channels=mid_channels, - out_channels=mid_channels, - temb_channels=0, - dropout=0.0, - ) - for _ in range(depth) - ] - ) - self.attn = AttnBlock(mid_channels) - self.res_block2 = nn.ModuleList( - [ - ResnetBlock( - in_channels=mid_channels, - out_channels=mid_channels, - temb_channels=0, - dropout=0.0, - ) - for _ in range(depth) - ] - ) - - self.conv_out = nn.Conv2d( - mid_channels, - out_channels, - kernel_size=1, - ) - - def forward(self, x): - x = self.conv_in(x) - for block in self.res_block1: - x = block(x, None) - x = torch.nn.functional.interpolate( - x, - size=( - int(round(x.shape[2] * self.factor)), - int(round(x.shape[3] * self.factor)), - ), - ) - x = self.attn(x) - for block in self.res_block2: - x = block(x, None) - x = self.conv_out(x) - return x - - -class MergedRescaleEncoder(nn.Module): - def __init__( - self, - in_channels, - ch, - resolution, - out_ch, - num_res_blocks, - attn_resolutions, - dropout=0.0, - resamp_with_conv=True, - ch_mult=(1, 2, 4, 8), - rescale_factor=1.0, - rescale_module_depth=1, - ): - super().__init__() - intermediate_chn = ch * ch_mult[-1] - self.encoder = Encoder( - in_channels=in_channels, - num_res_blocks=num_res_blocks, - ch=ch, - ch_mult=ch_mult, - z_channels=intermediate_chn, - double_z=False, - resolution=resolution, - attn_resolutions=attn_resolutions, - dropout=dropout, - resamp_with_conv=resamp_with_conv, - out_ch=None, - ) - self.rescaler = LatentRescaler( - factor=rescale_factor, - in_channels=intermediate_chn, - mid_channels=intermediate_chn, - out_channels=out_ch, - depth=rescale_module_depth, - ) - - def forward(self, x): - x = self.encoder(x) - x = self.rescaler(x) - return x - - -class MergedRescaleDecoder(nn.Module): - def __init__( - self, - z_channels, - out_ch, - resolution, - num_res_blocks, - attn_resolutions, - ch, - ch_mult=(1, 2, 4, 8), - dropout=0.0, - resamp_with_conv=True, - rescale_factor=1.0, - rescale_module_depth=1, - ): - super().__init__() - tmp_chn = z_channels * ch_mult[-1] - self.decoder = Decoder( - out_ch=out_ch, - z_channels=tmp_chn, - attn_resolutions=attn_resolutions, - dropout=dropout, - resamp_with_conv=resamp_with_conv, - in_channels=None, - num_res_blocks=num_res_blocks, - ch_mult=ch_mult, - resolution=resolution, - ch=ch, - ) - self.rescaler = LatentRescaler( - factor=rescale_factor, - in_channels=z_channels, - mid_channels=tmp_chn, - out_channels=tmp_chn, - depth=rescale_module_depth, - ) - - def forward(self, x): - x = self.rescaler(x) - x = self.decoder(x) - return x - - -class Upsampler(nn.Module): - def __init__(self, in_size, out_size, in_channels, out_channels, ch_mult=2): - super().__init__() - assert out_size >= in_size - num_blocks = int(np.log2(out_size // in_size)) + 1 - factor_up = 1.0 + (out_size % in_size) - print( - f"Building {self.__class__.__name__} with in_size: {in_size} --> out_size {out_size} and factor {factor_up}" - ) - self.rescaler = LatentRescaler( - factor=factor_up, - in_channels=in_channels, - mid_channels=2 * in_channels, - out_channels=in_channels, - ) - self.decoder = Decoder( - out_ch=out_channels, - resolution=out_size, - z_channels=in_channels, - num_res_blocks=2, - attn_resolutions=[], - in_channels=None, - ch=in_channels, - ch_mult=[ch_mult for _ in range(num_blocks)], - ) - - def forward(self, x): - x = self.rescaler(x) - x = self.decoder(x) - return x - - -class Resize(nn.Module): - def __init__(self, in_channels=None, learned=False, mode="bilinear"): - super().__init__() - self.with_conv = learned - self.mode = mode - if self.with_conv: - print( - f"Note: {self.__class__.__name} uses learned downsampling and will ignore the fixed {mode} mode" - ) - raise NotImplementedError() - assert in_channels is not None - # no asymmetric padding in torch conv, must do it ourselves - self.conv = torch.nn.Conv2d( - in_channels, in_channels, kernel_size=4, stride=2, padding=1 - ) - - def forward(self, x, scale_factor=1.0): - if scale_factor == 1.0: - return x - else: - x = torch.nn.functional.interpolate( - x, mode=self.mode, align_corners=False, scale_factor=scale_factor - ) - return x - - -class FirstStagePostProcessor(nn.Module): - def __init__( - self, - ch_mult: list, - in_channels, - pretrained_model: nn.Module = None, - reshape=False, - n_channels=None, - dropout=0.0, - pretrained_config=None, - ): - super().__init__() - if pretrained_config is None: - assert ( - pretrained_model is not None - ), 'Either "pretrained_model" or "pretrained_config" must not be None' - self.pretrained_model = pretrained_model - else: - assert ( - pretrained_config is not None - ), 'Either "pretrained_model" or "pretrained_config" must not be None' - self.instantiate_pretrained(pretrained_config) - - self.do_reshape = reshape - - if n_channels is None: - n_channels = self.pretrained_model.encoder.ch - - self.proj_norm = Normalize(in_channels, num_groups=in_channels // 2) - self.proj = nn.Conv2d( - in_channels, n_channels, kernel_size=3, stride=1, padding=1 - ) - - blocks = [] - downs = [] - ch_in = n_channels - for m in ch_mult: - blocks.append( - ResnetBlock( - in_channels=ch_in, out_channels=m * n_channels, dropout=dropout - ) - ) - ch_in = m * n_channels - downs.append(Downsample(ch_in, with_conv=False)) - - self.model = nn.ModuleList(blocks) - self.downsampler = nn.ModuleList(downs) - - def instantiate_pretrained(self, config): - model = instantiate_from_config(config) - self.pretrained_model = model.eval() - # self.pretrained_model.train = False - for param in self.pretrained_model.parameters(): - param.requires_grad = False - - @torch.no_grad() - def encode_with_pretrained(self, x): - c = self.pretrained_model.encode(x) - if isinstance(c, DiagonalGaussianDistribution): - c = c.mode() - return c - - def forward(self, x): - z_fs = self.encode_with_pretrained(x) - z = self.proj_norm(z_fs) - z = self.proj(z) - z = silu(z) - - for submodel, downmodel in zip(self.model, self.downsampler): - z = submodel(z, temb=None) - z = downmodel(z) - - if self.do_reshape: - z = rearrange(z, "b c h w -> b (h w) c") - return z diff --git a/invokeai/backend/stable_diffusion/diffusionmodules/openaimodel.py b/invokeai/backend/stable_diffusion/diffusionmodules/openaimodel.py deleted file mode 100644 index 867a1a30ca..0000000000 --- a/invokeai/backend/stable_diffusion/diffusionmodules/openaimodel.py +++ /dev/null @@ -1,1009 +0,0 @@ -import math -from abc import abstractmethod -from functools import partial -from typing import Iterable - -import numpy as np -import torch as th -import torch.nn as nn -import torch.nn.functional as F -from ldm.modules.attention import SpatialTransformer -from ldm.modules.diffusionmodules.util import ( - avg_pool_nd, - checkpoint, - conv_nd, - linear, - normalization, - timestep_embedding, - zero_module, -) - - -# dummy replace -def convert_module_to_f16(x): - pass - - -def convert_module_to_f32(x): - pass - - -## go -class AttentionPool2d(nn.Module): - """ - Adapted from CLIP: https://github.com/openai/CLIP/blob/main/clip/model.py - """ - - def __init__( - self, - spacial_dim: int, - embed_dim: int, - num_heads_channels: int, - output_dim: int = None, - ): - super().__init__() - self.positional_embedding = nn.Parameter( - th.randn(embed_dim, spacial_dim**2 + 1) / embed_dim**0.5 - ) - self.qkv_proj = conv_nd(1, embed_dim, 3 * embed_dim, 1) - self.c_proj = conv_nd(1, embed_dim, output_dim or embed_dim, 1) - self.num_heads = embed_dim // num_heads_channels - self.attention = QKVAttention(self.num_heads) - - def forward(self, x): - b, c, *_spatial = x.shape - x = x.reshape(b, c, -1) # NC(HW) - x = th.cat([x.mean(dim=-1, keepdim=True), x], dim=-1) # NC(HW+1) - x = x + self.positional_embedding[None, :, :].to(x.dtype) # NC(HW+1) - x = self.qkv_proj(x) - x = self.attention(x) - x = self.c_proj(x) - return x[:, :, 0] - - -class TimestepBlock(nn.Module): - """ - Any module where forward() takes timestep embeddings as a second argument. - """ - - @abstractmethod - def forward(self, x, emb): - """ - Apply the module to `x` given `emb` timestep embeddings. - """ - - -class TimestepEmbedSequential(nn.Sequential, TimestepBlock): - """ - A sequential module that passes timestep embeddings to the children that - support it as an extra input. - """ - - def forward(self, x, emb, context=None): - for layer in self: - if isinstance(layer, TimestepBlock): - x = layer(x, emb) - elif isinstance(layer, SpatialTransformer): - x = layer(x, context) - else: - x = layer(x) - return x - - -class Upsample(nn.Module): - """ - An upsampling layer with an optional convolution. - :param channels: channels in the inputs and outputs. - :param use_conv: a bool determining if a convolution is applied. - :param dims: determines if the signal is 1D, 2D, or 3D. If 3D, then - upsampling occurs in the inner-two dimensions. - """ - - def __init__(self, channels, use_conv, dims=2, out_channels=None, padding=1): - super().__init__() - self.channels = channels - self.out_channels = out_channels or channels - self.use_conv = use_conv - self.dims = dims - if use_conv: - self.conv = conv_nd( - dims, self.channels, self.out_channels, 3, padding=padding - ) - - def forward(self, x): - assert x.shape[1] == self.channels - if self.dims == 3: - x = F.interpolate( - x, (x.shape[2], x.shape[3] * 2, x.shape[4] * 2), mode="nearest" - ) - else: - x = F.interpolate(x, scale_factor=2, mode="nearest") - if self.use_conv: - x = self.conv(x) - return x - - -class TransposedUpsample(nn.Module): - """Learned 2x upsampling without padding""" - - def __init__(self, channels, out_channels=None, ks=5): - super().__init__() - self.channels = channels - self.out_channels = out_channels or channels - - self.up = nn.ConvTranspose2d( - self.channels, self.out_channels, kernel_size=ks, stride=2 - ) - - def forward(self, x): - return self.up(x) - - -class Downsample(nn.Module): - """ - A downsampling layer with an optional convolution. - :param channels: channels in the inputs and outputs. - :param use_conv: a bool determining if a convolution is applied. - :param dims: determines if the signal is 1D, 2D, or 3D. If 3D, then - downsampling occurs in the inner-two dimensions. - """ - - def __init__(self, channels, use_conv, dims=2, out_channels=None, padding=1): - super().__init__() - self.channels = channels - self.out_channels = out_channels or channels - self.use_conv = use_conv - self.dims = dims - stride = 2 if dims != 3 else (1, 2, 2) - if use_conv: - self.op = conv_nd( - dims, - self.channels, - self.out_channels, - 3, - stride=stride, - padding=padding, - ) - else: - assert self.channels == self.out_channels - self.op = avg_pool_nd(dims, kernel_size=stride, stride=stride) - - def forward(self, x): - assert x.shape[1] == self.channels - return self.op(x) - - -class ResBlock(TimestepBlock): - """ - A residual block that can optionally change the number of channels. - :param channels: the number of input channels. - :param emb_channels: the number of timestep embedding channels. - :param dropout: the rate of dropout. - :param out_channels: if specified, the number of out channels. - :param use_conv: if True and out_channels is specified, use a spatial - convolution instead of a smaller 1x1 convolution to change the - channels in the skip connection. - :param dims: determines if the signal is 1D, 2D, or 3D. - :param use_checkpoint: if True, use gradient checkpointing on this module. - :param up: if True, use this block for upsampling. - :param down: if True, use this block for downsampling. - """ - - def __init__( - self, - channels, - emb_channels, - dropout, - out_channels=None, - use_conv=False, - use_scale_shift_norm=False, - dims=2, - use_checkpoint=False, - up=False, - down=False, - ): - super().__init__() - self.channels = channels - self.emb_channels = emb_channels - self.dropout = dropout - self.out_channels = out_channels or channels - self.use_conv = use_conv - self.use_checkpoint = use_checkpoint - self.use_scale_shift_norm = use_scale_shift_norm - - self.in_layers = nn.Sequential( - normalization(channels), - nn.SiLU(), - conv_nd(dims, channels, self.out_channels, 3, padding=1), - ) - - self.updown = up or down - - if up: - self.h_upd = Upsample(channels, False, dims) - self.x_upd = Upsample(channels, False, dims) - elif down: - self.h_upd = Downsample(channels, False, dims) - self.x_upd = Downsample(channels, False, dims) - else: - self.h_upd = self.x_upd = nn.Identity() - - self.emb_layers = nn.Sequential( - nn.SiLU(), - linear( - emb_channels, - 2 * self.out_channels if use_scale_shift_norm else self.out_channels, - ), - ) - self.out_layers = nn.Sequential( - normalization(self.out_channels), - nn.SiLU(), - nn.Dropout(p=dropout), - zero_module( - conv_nd(dims, self.out_channels, self.out_channels, 3, padding=1) - ), - ) - - if self.out_channels == channels: - self.skip_connection = nn.Identity() - elif use_conv: - self.skip_connection = conv_nd( - dims, channels, self.out_channels, 3, padding=1 - ) - else: - self.skip_connection = conv_nd(dims, channels, self.out_channels, 1) - - def forward(self, x, emb): - """ - Apply the block to a Tensor, conditioned on a timestep embedding. - :param x: an [N x C x ...] Tensor of features. - :param emb: an [N x emb_channels] Tensor of timestep embeddings. - :return: an [N x C x ...] Tensor of outputs. - """ - return checkpoint( - self._forward, (x, emb), self.parameters(), self.use_checkpoint - ) - - def _forward(self, x, emb): - if self.updown: - in_rest, in_conv = self.in_layers[:-1], self.in_layers[-1] - h = in_rest(x) - h = self.h_upd(h) - x = self.x_upd(x) - h = in_conv(h) - else: - h = self.in_layers(x) - emb_out = self.emb_layers(emb).type(h.dtype) - while len(emb_out.shape) < len(h.shape): - emb_out = emb_out[..., None] - if self.use_scale_shift_norm: - out_norm, out_rest = self.out_layers[0], self.out_layers[1:] - scale, shift = th.chunk(emb_out, 2, dim=1) - h = out_norm(h) * (1 + scale) + shift - h = out_rest(h) - else: - h = h + emb_out - h = self.out_layers(h) - return self.skip_connection(x) + h - - -class AttentionBlock(nn.Module): - """ - An attention block that allows spatial positions to attend to each other. - Originally ported from here, but adapted to the N-d case. - https://github.com/hojonathanho/diffusion/blob/1e0dceb3b3495bbe19116a5e1b3596cd0706c543/diffusion_tf/models/unet.py#L66. - """ - - def __init__( - self, - channels, - num_heads=1, - num_head_channels=-1, - use_checkpoint=False, - use_new_attention_order=False, - ): - super().__init__() - self.channels = channels - if num_head_channels == -1: - self.num_heads = num_heads - else: - assert ( - channels % num_head_channels == 0 - ), f"q,k,v channels {channels} is not divisible by num_head_channels {num_head_channels}" - self.num_heads = channels // num_head_channels - self.use_checkpoint = use_checkpoint - self.norm = normalization(channels) - self.qkv = conv_nd(1, channels, channels * 3, 1) - if use_new_attention_order: - # split qkv before split heads - self.attention = QKVAttention(self.num_heads) - else: - # split heads before split qkv - self.attention = QKVAttentionLegacy(self.num_heads) - - self.proj_out = zero_module(conv_nd(1, channels, channels, 1)) - - def forward(self, x): - return checkpoint( - self._forward, (x,), self.parameters(), True - ) # TODO: check checkpoint usage, is True # TODO: fix the .half call!!! - # return pt_checkpoint(self._forward, x) # pytorch - - def _forward(self, x): - b, c, *spatial = x.shape - x = x.reshape(b, c, -1) - qkv = self.qkv(self.norm(x)) - h = self.attention(qkv) - h = self.proj_out(h) - return (x + h).reshape(b, c, *spatial) - - -def count_flops_attn(model, _x, y): - """ - A counter for the `thop` package to count the operations in an - attention operation. - Meant to be used like: - macs, params = thop.profile( - model, - inputs=(inputs, timestamps), - custom_ops={QKVAttention: QKVAttention.count_flops}, - ) - """ - b, c, *spatial = y[0].shape - num_spatial = int(np.prod(spatial)) - # We perform two matmuls with the same number of ops. - # The first computes the weight matrix, the second computes - # the combination of the value vectors. - matmul_ops = 2 * b * (num_spatial**2) * c - model.total_ops += th.DoubleTensor([matmul_ops]) - - -class QKVAttentionLegacy(nn.Module): - """ - A module which performs QKV attention. Matches legacy QKVAttention + input/ouput heads shaping - """ - - def __init__(self, n_heads): - super().__init__() - self.n_heads = n_heads - - def forward(self, qkv): - """ - Apply QKV attention. - :param qkv: an [N x (H * 3 * C) x T] tensor of Qs, Ks, and Vs. - :return: an [N x (H * C) x T] tensor after attention. - """ - bs, width, length = qkv.shape - assert width % (3 * self.n_heads) == 0 - ch = width // (3 * self.n_heads) - q, k, v = qkv.reshape(bs * self.n_heads, ch * 3, length).split(ch, dim=1) - scale = 1 / math.sqrt(math.sqrt(ch)) - weight = th.einsum( - "bct,bcs->bts", q * scale, k * scale - ) # More stable with f16 than dividing afterwards - weight = th.softmax(weight.float(), dim=-1).type(weight.dtype) - a = th.einsum("bts,bcs->bct", weight, v) - return a.reshape(bs, -1, length) - - @staticmethod - def count_flops(model, _x, y): - return count_flops_attn(model, _x, y) - - -class QKVAttention(nn.Module): - """ - A module which performs QKV attention and splits in a different order. - """ - - def __init__(self, n_heads): - super().__init__() - self.n_heads = n_heads - - def forward(self, qkv): - """ - Apply QKV attention. - :param qkv: an [N x (3 * H * C) x T] tensor of Qs, Ks, and Vs. - :return: an [N x (H * C) x T] tensor after attention. - """ - bs, width, length = qkv.shape - assert width % (3 * self.n_heads) == 0 - ch = width // (3 * self.n_heads) - q, k, v = qkv.chunk(3, dim=1) - scale = 1 / math.sqrt(math.sqrt(ch)) - weight = th.einsum( - "bct,bcs->bts", - (q * scale).view(bs * self.n_heads, ch, length), - (k * scale).view(bs * self.n_heads, ch, length), - ) # More stable with f16 than dividing afterwards - weight = th.softmax(weight.float(), dim=-1).type(weight.dtype) - a = th.einsum("bts,bcs->bct", weight, v.reshape(bs * self.n_heads, ch, length)) - return a.reshape(bs, -1, length) - - @staticmethod - def count_flops(model, _x, y): - return count_flops_attn(model, _x, y) - - -class UNetModel(nn.Module): - """ - The full UNet model with attention and timestep embedding. - :param in_channels: channels in the input Tensor. - :param model_channels: base channel count for the model. - :param out_channels: channels in the output Tensor. - :param num_res_blocks: number of residual blocks per downsample. - :param attention_resolutions: a collection of downsample rates at which - attention will take place. May be a set, list, or tuple. - For example, if this contains 4, then at 4x downsampling, attention - will be used. - :param dropout: the dropout probability. - :param channel_mult: channel multiplier for each level of the UNet. - :param conv_resample: if True, use learned convolutions for upsampling and - downsampling. - :param dims: determines if the signal is 1D, 2D, or 3D. - :param num_classes: if specified (as an int), then this model will be - class-conditional with `num_classes` classes. - :param use_checkpoint: use gradient checkpointing to reduce memory usage. - :param num_heads: the number of attention heads in each attention layer. - :param num_heads_channels: if specified, ignore num_heads and instead use - a fixed channel width per attention head. - :param num_heads_upsample: works with num_heads to set a different number - of heads for upsampling. Deprecated. - :param use_scale_shift_norm: use a FiLM-like conditioning mechanism. - :param resblock_updown: use residual blocks for up/downsampling. - :param use_new_attention_order: use a different attention pattern for potentially - increased efficiency. - """ - - def __init__( - self, - image_size, - in_channels, - model_channels, - out_channels, - num_res_blocks, - attention_resolutions, - dropout=0, - channel_mult=(1, 2, 4, 8), - conv_resample=True, - dims=2, - num_classes=None, - use_checkpoint=False, - use_fp16=False, - num_heads=-1, - num_head_channels=-1, - num_heads_upsample=-1, - use_scale_shift_norm=False, - resblock_updown=False, - use_new_attention_order=False, - use_spatial_transformer=False, # custom transformer support - transformer_depth=1, # custom transformer support - context_dim=None, # custom transformer support - n_embed=None, # custom support for prediction of discrete ids into codebook of first stage vq model - legacy=True, - ): - super().__init__() - if use_spatial_transformer: - assert ( - context_dim is not None - ), "Fool!! You forgot to include the dimension of your cross-attention conditioning..." - - if context_dim is not None: - assert ( - use_spatial_transformer - ), "Fool!! You forgot to use the spatial transformer for your cross-attention conditioning..." - from omegaconf.listconfig import ListConfig - - if type(context_dim) == ListConfig: - context_dim = list(context_dim) - - if num_heads_upsample == -1: - num_heads_upsample = num_heads - - if num_heads == -1: - assert ( - num_head_channels != -1 - ), "Either num_heads or num_head_channels has to be set" - - if num_head_channels == -1: - assert ( - num_heads != -1 - ), "Either num_heads or num_head_channels has to be set" - - self.image_size = image_size - self.in_channels = in_channels - self.model_channels = model_channels - self.out_channels = out_channels - self.num_res_blocks = num_res_blocks - self.attention_resolutions = attention_resolutions - self.dropout = dropout - self.channel_mult = channel_mult - self.conv_resample = conv_resample - self.num_classes = num_classes - self.use_checkpoint = use_checkpoint - self.dtype = th.float16 if use_fp16 else th.float32 - self.num_heads = num_heads - self.num_head_channels = num_head_channels - self.num_heads_upsample = num_heads_upsample - self.predict_codebook_ids = n_embed is not None - - time_embed_dim = model_channels * 4 - self.time_embed = nn.Sequential( - linear(model_channels, time_embed_dim), - nn.SiLU(), - linear(time_embed_dim, time_embed_dim), - ) - - if self.num_classes is not None: - self.label_emb = nn.Embedding(num_classes, time_embed_dim) - - self.input_blocks = nn.ModuleList( - [ - TimestepEmbedSequential( - conv_nd(dims, in_channels, model_channels, 3, padding=1) - ) - ] - ) - self._feature_size = model_channels - input_block_chans = [model_channels] - ch = model_channels - ds = 1 - for level, mult in enumerate(channel_mult): - for _ in range(num_res_blocks): - layers = [ - ResBlock( - ch, - time_embed_dim, - dropout, - out_channels=mult * model_channels, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ) - ] - ch = mult * model_channels - if ds in attention_resolutions: - if num_head_channels == -1: - dim_head = ch // num_heads - else: - num_heads = ch // num_head_channels - dim_head = num_head_channels - if legacy: - # num_heads = 1 - dim_head = ( - ch // num_heads - if use_spatial_transformer - else num_head_channels - ) - layers.append( - AttentionBlock( - ch, - use_checkpoint=use_checkpoint, - num_heads=num_heads, - num_head_channels=dim_head, - use_new_attention_order=use_new_attention_order, - ) - if not use_spatial_transformer - else SpatialTransformer( - ch, - num_heads, - dim_head, - depth=transformer_depth, - context_dim=context_dim, - ) - ) - self.input_blocks.append(TimestepEmbedSequential(*layers)) - self._feature_size += ch - input_block_chans.append(ch) - if level != len(channel_mult) - 1: - out_ch = ch - self.input_blocks.append( - TimestepEmbedSequential( - ResBlock( - ch, - time_embed_dim, - dropout, - out_channels=out_ch, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - down=True, - ) - if resblock_updown - else Downsample( - ch, conv_resample, dims=dims, out_channels=out_ch - ) - ) - ) - ch = out_ch - input_block_chans.append(ch) - ds *= 2 - self._feature_size += ch - - if num_head_channels == -1: - dim_head = ch // num_heads - else: - num_heads = ch // num_head_channels - dim_head = num_head_channels - if legacy: - # num_heads = 1 - dim_head = ch // num_heads if use_spatial_transformer else num_head_channels - self.middle_block = TimestepEmbedSequential( - ResBlock( - ch, - time_embed_dim, - dropout, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ), - AttentionBlock( - ch, - use_checkpoint=use_checkpoint, - num_heads=num_heads, - num_head_channels=dim_head, - use_new_attention_order=use_new_attention_order, - ) - if not use_spatial_transformer - else SpatialTransformer( - ch, - num_heads, - dim_head, - depth=transformer_depth, - context_dim=context_dim, - ), - ResBlock( - ch, - time_embed_dim, - dropout, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ), - ) - self._feature_size += ch - - self.output_blocks = nn.ModuleList([]) - for level, mult in list(enumerate(channel_mult))[::-1]: - for i in range(num_res_blocks + 1): - ich = input_block_chans.pop() - layers = [ - ResBlock( - ch + ich, - time_embed_dim, - dropout, - out_channels=model_channels * mult, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ) - ] - ch = model_channels * mult - if ds in attention_resolutions: - if num_head_channels == -1: - dim_head = ch // num_heads - else: - num_heads = ch // num_head_channels - dim_head = num_head_channels - if legacy: - # num_heads = 1 - dim_head = ( - ch // num_heads - if use_spatial_transformer - else num_head_channels - ) - layers.append( - AttentionBlock( - ch, - use_checkpoint=use_checkpoint, - num_heads=num_heads_upsample, - num_head_channels=dim_head, - use_new_attention_order=use_new_attention_order, - ) - if not use_spatial_transformer - else SpatialTransformer( - ch, - num_heads, - dim_head, - depth=transformer_depth, - context_dim=context_dim, - ) - ) - if level and i == num_res_blocks: - out_ch = ch - layers.append( - ResBlock( - ch, - time_embed_dim, - dropout, - out_channels=out_ch, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - up=True, - ) - if resblock_updown - else Upsample(ch, conv_resample, dims=dims, out_channels=out_ch) - ) - ds //= 2 - self.output_blocks.append(TimestepEmbedSequential(*layers)) - self._feature_size += ch - - self.out = nn.Sequential( - normalization(ch), - nn.SiLU(), - zero_module(conv_nd(dims, model_channels, out_channels, 3, padding=1)), - ) - if self.predict_codebook_ids: - self.id_predictor = nn.Sequential( - normalization(ch), - conv_nd(dims, model_channels, n_embed, 1), - # nn.LogSoftmax(dim=1) # change to cross_entropy and produce non-normalized logits - ) - - def convert_to_fp16(self): - """ - Convert the torso of the model to float16. - """ - self.input_blocks.apply(convert_module_to_f16) - self.middle_block.apply(convert_module_to_f16) - self.output_blocks.apply(convert_module_to_f16) - - def convert_to_fp32(self): - """ - Convert the torso of the model to float32. - """ - self.input_blocks.apply(convert_module_to_f32) - self.middle_block.apply(convert_module_to_f32) - self.output_blocks.apply(convert_module_to_f32) - - def forward(self, x, timesteps=None, context=None, y=None, **kwargs): - """ - Apply the model to an input batch. - :param x: an [N x C x ...] Tensor of inputs. - :param timesteps: a 1-D batch of timesteps. - :param context: conditioning plugged in via crossattn - :param y: an [N] Tensor of labels, if class-conditional. - :return: an [N x C x ...] Tensor of outputs. - """ - assert (y is not None) == ( - self.num_classes is not None - ), "must specify y if and only if the model is class-conditional" - hs = [] - t_emb = timestep_embedding(timesteps, self.model_channels, repeat_only=False) - emb = self.time_embed(t_emb) - - if self.num_classes is not None: - assert y.shape == (x.shape[0],) - emb = emb + self.label_emb(y) - - h = x.type(self.dtype) - for module in self.input_blocks: - h = module(h, emb, context) - hs.append(h) - h = self.middle_block(h, emb, context) - for module in self.output_blocks: - h = th.cat([h, hs.pop()], dim=1) - h = module(h, emb, context) - h = h.type(x.dtype) - if self.predict_codebook_ids: - return self.id_predictor(h) - else: - return self.out(h) - - -class EncoderUNetModel(nn.Module): - """ - The half UNet model with attention and timestep embedding. - For usage, see UNet. - """ - - def __init__( - self, - image_size, - in_channels, - model_channels, - out_channels, - num_res_blocks, - attention_resolutions, - dropout=0, - channel_mult=(1, 2, 4, 8), - conv_resample=True, - dims=2, - use_checkpoint=False, - use_fp16=False, - num_heads=1, - num_head_channels=-1, - num_heads_upsample=-1, - use_scale_shift_norm=False, - resblock_updown=False, - use_new_attention_order=False, - pool="adaptive", - *args, - **kwargs, - ): - super().__init__() - - if num_heads_upsample == -1: - num_heads_upsample = num_heads - - self.in_channels = in_channels - self.model_channels = model_channels - self.out_channels = out_channels - self.num_res_blocks = num_res_blocks - self.attention_resolutions = attention_resolutions - self.dropout = dropout - self.channel_mult = channel_mult - self.conv_resample = conv_resample - self.use_checkpoint = use_checkpoint - self.dtype = th.float16 if use_fp16 else th.float32 - self.num_heads = num_heads - self.num_head_channels = num_head_channels - self.num_heads_upsample = num_heads_upsample - - time_embed_dim = model_channels * 4 - self.time_embed = nn.Sequential( - linear(model_channels, time_embed_dim), - nn.SiLU(), - linear(time_embed_dim, time_embed_dim), - ) - - self.input_blocks = nn.ModuleList( - [ - TimestepEmbedSequential( - conv_nd(dims, in_channels, model_channels, 3, padding=1) - ) - ] - ) - self._feature_size = model_channels - input_block_chans = [model_channels] - ch = model_channels - ds = 1 - for level, mult in enumerate(channel_mult): - for _ in range(num_res_blocks): - layers = [ - ResBlock( - ch, - time_embed_dim, - dropout, - out_channels=mult * model_channels, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ) - ] - ch = mult * model_channels - if ds in attention_resolutions: - layers.append( - AttentionBlock( - ch, - use_checkpoint=use_checkpoint, - num_heads=num_heads, - num_head_channels=num_head_channels, - use_new_attention_order=use_new_attention_order, - ) - ) - self.input_blocks.append(TimestepEmbedSequential(*layers)) - self._feature_size += ch - input_block_chans.append(ch) - if level != len(channel_mult) - 1: - out_ch = ch - self.input_blocks.append( - TimestepEmbedSequential( - ResBlock( - ch, - time_embed_dim, - dropout, - out_channels=out_ch, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - down=True, - ) - if resblock_updown - else Downsample( - ch, conv_resample, dims=dims, out_channels=out_ch - ) - ) - ) - ch = out_ch - input_block_chans.append(ch) - ds *= 2 - self._feature_size += ch - - self.middle_block = TimestepEmbedSequential( - ResBlock( - ch, - time_embed_dim, - dropout, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ), - AttentionBlock( - ch, - use_checkpoint=use_checkpoint, - num_heads=num_heads, - num_head_channels=num_head_channels, - use_new_attention_order=use_new_attention_order, - ), - ResBlock( - ch, - time_embed_dim, - dropout, - dims=dims, - use_checkpoint=use_checkpoint, - use_scale_shift_norm=use_scale_shift_norm, - ), - ) - self._feature_size += ch - self.pool = pool - if pool == "adaptive": - self.out = nn.Sequential( - normalization(ch), - nn.SiLU(), - nn.AdaptiveAvgPool2d((1, 1)), - zero_module(conv_nd(dims, ch, out_channels, 1)), - nn.Flatten(), - ) - elif pool == "attention": - assert num_head_channels != -1 - self.out = nn.Sequential( - normalization(ch), - nn.SiLU(), - AttentionPool2d( - (image_size // ds), ch, num_head_channels, out_channels - ), - ) - elif pool == "spatial": - self.out = nn.Sequential( - nn.Linear(self._feature_size, 2048), - nn.ReLU(), - nn.Linear(2048, self.out_channels), - ) - elif pool == "spatial_v2": - self.out = nn.Sequential( - nn.Linear(self._feature_size, 2048), - normalization(2048), - nn.SiLU(), - nn.Linear(2048, self.out_channels), - ) - else: - raise NotImplementedError(f"Unexpected {pool} pooling") - - def convert_to_fp16(self): - """ - Convert the torso of the model to float16. - """ - self.input_blocks.apply(convert_module_to_f16) - self.middle_block.apply(convert_module_to_f16) - - def convert_to_fp32(self): - """ - Convert the torso of the model to float32. - """ - self.input_blocks.apply(convert_module_to_f32) - self.middle_block.apply(convert_module_to_f32) - - def forward(self, x, timesteps): - """ - Apply the model to an input batch. - :param x: an [N x C x ...] Tensor of inputs. - :param timesteps: a 1-D batch of timesteps. - :return: an [N x K] Tensor of outputs. - """ - emb = self.time_embed(timestep_embedding(timesteps, self.model_channels)) - - results = [] - h = x.type(self.dtype) - for module in self.input_blocks: - h = module(h, emb) - if self.pool.startswith("spatial"): - results.append(h.type(x.dtype).mean(dim=(2, 3))) - h = self.middle_block(h, emb) - if self.pool.startswith("spatial"): - results.append(h.type(x.dtype).mean(dim=(2, 3))) - h = th.cat(results, axis=-1) - return self.out(h) - else: - h = h.type(x.dtype) - return self.out(h) diff --git a/invokeai/backend/stable_diffusion/diffusionmodules/util.py b/invokeai/backend/stable_diffusion/diffusionmodules/util.py deleted file mode 100644 index b71b0f06f9..0000000000 --- a/invokeai/backend/stable_diffusion/diffusionmodules/util.py +++ /dev/null @@ -1,297 +0,0 @@ -# adopted from -# https://github.com/openai/improved-diffusion/blob/main/improved_diffusion/gaussian_diffusion.py -# and -# https://github.com/lucidrains/denoising-diffusion-pytorch/blob/7706bdfc6f527f58d33f84b7b522e61e6e3164b3/denoising_diffusion_pytorch/denoising_diffusion_pytorch.py -# and -# https://github.com/openai/guided-diffusion/blob/0ba878e517b276c45d1195eb29f6f5f72659a05b/guided_diffusion/nn.py -# -# thanks! - - -import math -import os - -import numpy as np -import torch -import torch.nn as nn -from einops import repeat - -from ...util.util import instantiate_from_config - - -def make_beta_schedule( - schedule, n_timestep, linear_start=1e-4, linear_end=2e-2, cosine_s=8e-3 -): - if schedule == "linear": - betas = ( - torch.linspace( - linear_start**0.5, - linear_end**0.5, - n_timestep, - dtype=torch.float64, - ) - ** 2 - ) - - elif schedule == "cosine": - timesteps = ( - torch.arange(n_timestep + 1, dtype=torch.float64) / n_timestep + cosine_s - ) - alphas = timesteps / (1 + cosine_s) * np.pi / 2 - alphas = torch.cos(alphas).pow(2) - alphas = alphas / alphas[0] - betas = 1 - alphas[1:] / alphas[:-1] - betas = np.clip(betas, a_min=0, a_max=0.999) - - elif schedule == "sqrt_linear": - betas = torch.linspace( - linear_start, linear_end, n_timestep, dtype=torch.float64 - ) - elif schedule == "sqrt": - betas = ( - torch.linspace(linear_start, linear_end, n_timestep, dtype=torch.float64) - ** 0.5 - ) - else: - raise ValueError(f"schedule '{schedule}' unknown.") - return betas.numpy() - - -def make_ddim_timesteps( - ddim_discr_method, num_ddim_timesteps, num_ddpm_timesteps, verbose=True -): - if ddim_discr_method == "uniform": - c = num_ddpm_timesteps // num_ddim_timesteps - if c < 1: - c = 1 - ddim_timesteps = (np.arange(0, num_ddim_timesteps) * c).astype(int) - elif ddim_discr_method == "quad": - ddim_timesteps = ( - (np.linspace(0, np.sqrt(num_ddpm_timesteps * 0.8), num_ddim_timesteps)) ** 2 - ).astype(int) - else: - raise NotImplementedError( - f'There is no ddim discretization method called "{ddim_discr_method}"' - ) - - # assert ddim_timesteps.shape[0] == num_ddim_timesteps - # add one to get the final alpha values right (the ones from first scale to data during sampling) - steps_out = ddim_timesteps + 1 - # steps_out = ddim_timesteps - - if verbose: - print(f"Selected timesteps for ddim sampler: {steps_out}") - return steps_out - - -def make_ddim_sampling_parameters(alphacums, ddim_timesteps, eta, verbose=True): - # select alphas for computing the variance schedule - alphas = alphacums[ddim_timesteps] - alphas_prev = np.asarray([alphacums[0]] + alphacums[ddim_timesteps[:-1]].tolist()) - - # according the the formula provided in https://arxiv.org/abs/2010.02502 - sigmas = eta * np.sqrt( - (1 - alphas_prev) / (1 - alphas) * (1 - alphas / alphas_prev) - ) - if verbose: - print( - f"Selected alphas for ddim sampler: a_t: {alphas}; a_(t-1): {alphas_prev}" - ) - print( - f"For the chosen value of eta, which is {eta}, " - f"this results in the following sigma_t schedule for ddim sampler {sigmas}" - ) - return sigmas, alphas, alphas_prev - - -def betas_for_alpha_bar(num_diffusion_timesteps, alpha_bar, max_beta=0.999): - """ - Create a beta schedule that discretizes the given alpha_t_bar function, - which defines the cumulative product of (1-beta) over time from t = [0,1]. - :param num_diffusion_timesteps: the number of betas to produce. - :param alpha_bar: a lambda that takes an argument t from 0 to 1 and - produces the cumulative product of (1-beta) up to that - part of the diffusion process. - :param max_beta: the maximum beta to use; use values lower than 1 to - prevent singularities. - """ - betas = [] - for i in range(num_diffusion_timesteps): - t1 = i / num_diffusion_timesteps - t2 = (i + 1) / num_diffusion_timesteps - betas.append(min(1 - alpha_bar(t2) / alpha_bar(t1), max_beta)) - return np.array(betas) - - -def extract_into_tensor(a, t, x_shape): - b, *_ = t.shape - out = a.gather(-1, t) - return out.reshape(b, *((1,) * (len(x_shape) - 1))) - - -def checkpoint(func, inputs, params, flag): - """ - Evaluate a function without caching intermediate activations, allowing for - reduced memory at the expense of extra compute in the backward pass. - :param func: the function to evaluate. - :param inputs: the argument sequence to pass to `func`. - :param params: a sequence of parameters `func` depends on but does not - explicitly take as arguments. - :param flag: if False, disable gradient checkpointing. - """ - if False: # disabled checkpointing to allow requires_grad = False for main model - args = tuple(inputs) + tuple(params) - return CheckpointFunction.apply(func, len(inputs), *args) - else: - return func(*inputs) - - -class CheckpointFunction(torch.autograd.Function): - @staticmethod - def forward(ctx, run_function, length, *args): - ctx.run_function = run_function - ctx.input_tensors = list(args[:length]) - ctx.input_params = list(args[length:]) - - with torch.no_grad(): - output_tensors = ctx.run_function(*ctx.input_tensors) - return output_tensors - - @staticmethod - def backward(ctx, *output_grads): - ctx.input_tensors = [x.detach().requires_grad_(True) for x in ctx.input_tensors] - with torch.enable_grad(): - # Fixes a bug where the first op in run_function modifies the - # Tensor storage in place, which is not allowed for detach()'d - # Tensors. - shallow_copies = [x.view_as(x) for x in ctx.input_tensors] - output_tensors = ctx.run_function(*shallow_copies) - input_grads = torch.autograd.grad( - output_tensors, - ctx.input_tensors + ctx.input_params, - output_grads, - allow_unused=True, - ) - del ctx.input_tensors - del ctx.input_params - del output_tensors - return (None, None) + input_grads - - -def timestep_embedding(timesteps, dim, max_period=10000, repeat_only=False): - """ - Create sinusoidal timestep embeddings. - :param timesteps: a 1-D Tensor of N indices, one per batch element. - These may be fractional. - :param dim: the dimension of the output. - :param max_period: controls the minimum frequency of the embeddings. - :return: an [N x dim] Tensor of positional embeddings. - """ - if not repeat_only: - half = dim // 2 - freqs = torch.exp( - -math.log(max_period) - * torch.arange(start=0, end=half, dtype=torch.float32) - / half - ).to(device=timesteps.device) - args = timesteps[:, None].float() * freqs[None] - embedding = torch.cat([torch.cos(args), torch.sin(args)], dim=-1) - if dim % 2: - embedding = torch.cat( - [embedding, torch.zeros_like(embedding[:, :1])], dim=-1 - ) - else: - embedding = repeat(timesteps, "b -> b d", d=dim) - return embedding - - -def zero_module(module): - """ - Zero out the parameters of a module and return it. - """ - for p in module.parameters(): - p.detach().zero_() - return module - - -def scale_module(module, scale): - """ - Scale the parameters of a module and return it. - """ - for p in module.parameters(): - p.detach().mul_(scale) - return module - - -def mean_flat(tensor): - """ - Take the mean over all non-batch dimensions. - """ - return tensor.mean(dim=list(range(1, len(tensor.shape)))) - - -def normalization(channels): - """ - Make a standard normalization layer. - :param channels: number of input channels. - :return: an nn.Module for normalization. - """ - return GroupNorm32(32, channels) - - -class GroupNorm32(nn.GroupNorm): - def forward(self, x): - return super().forward(x.float()).type(x.dtype) - - -def conv_nd(dims, *args, **kwargs): - """ - Create a 1D, 2D, or 3D convolution module. - """ - if dims == 1: - return nn.Conv1d(*args, **kwargs) - elif dims == 2: - return nn.Conv2d(*args, **kwargs) - elif dims == 3: - return nn.Conv3d(*args, **kwargs) - raise ValueError(f"unsupported dimensions: {dims}") - - -def linear(*args, **kwargs): - """ - Create a linear module. - """ - return nn.Linear(*args, **kwargs) - - -def avg_pool_nd(dims, *args, **kwargs): - """ - Create a 1D, 2D, or 3D average pooling module. - """ - if dims == 1: - return nn.AvgPool1d(*args, **kwargs) - elif dims == 2: - return nn.AvgPool2d(*args, **kwargs) - elif dims == 3: - return nn.AvgPool3d(*args, **kwargs) - raise ValueError(f"unsupported dimensions: {dims}") - - -class HybridConditioner(nn.Module): - def __init__(self, c_concat_config, c_crossattn_config): - super().__init__() - self.concat_conditioner = instantiate_from_config(c_concat_config) - self.crossattn_conditioner = instantiate_from_config(c_crossattn_config) - - def forward(self, c_concat, c_crossattn): - c_concat = self.concat_conditioner(c_concat) - c_crossattn = self.crossattn_conditioner(c_crossattn) - return {"c_concat": [c_concat], "c_crossattn": [c_crossattn]} - - -def noise_like(shape, device, repeat=False): - repeat_noise = lambda: torch.randn((1, *shape[1:]), device=device).repeat( - shape[0], *((1,) * (len(shape) - 1)) - ) - noise = lambda: torch.randn(shape, device=device) - return repeat_noise() if repeat else noise() diff --git a/invokeai/backend/stable_diffusion/distributions/__init__.py b/invokeai/backend/stable_diffusion/distributions/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/invokeai/backend/stable_diffusion/distributions/distributions.py b/invokeai/backend/stable_diffusion/distributions/distributions.py deleted file mode 100644 index 016be35523..0000000000 --- a/invokeai/backend/stable_diffusion/distributions/distributions.py +++ /dev/null @@ -1,102 +0,0 @@ -import numpy as np -import torch - - -class AbstractDistribution: - def sample(self): - raise NotImplementedError() - - def mode(self): - raise NotImplementedError() - - -class DiracDistribution(AbstractDistribution): - def __init__(self, value): - self.value = value - - def sample(self): - return self.value - - def mode(self): - return self.value - - -class DiagonalGaussianDistribution(object): - def __init__(self, parameters, deterministic=False): - self.parameters = parameters - self.mean, self.logvar = torch.chunk(parameters, 2, dim=1) - self.logvar = torch.clamp(self.logvar, -30.0, 20.0) - self.deterministic = deterministic - self.std = torch.exp(0.5 * self.logvar) - self.var = torch.exp(self.logvar) - if self.deterministic: - self.var = self.std = torch.zeros_like(self.mean).to( - device=self.parameters.device - ) - - def sample(self): - x = self.mean + self.std * torch.randn(self.mean.shape).to( - device=self.parameters.device - ) - return x - - def kl(self, other=None): - if self.deterministic: - return torch.Tensor([0.0]) - else: - if other is None: - return 0.5 * torch.sum( - torch.pow(self.mean, 2) + self.var - 1.0 - self.logvar, - dim=[1, 2, 3], - ) - else: - return 0.5 * torch.sum( - torch.pow(self.mean - other.mean, 2) / other.var - + self.var / other.var - - 1.0 - - self.logvar - + other.logvar, - dim=[1, 2, 3], - ) - - def nll(self, sample, dims=[1, 2, 3]): - if self.deterministic: - return torch.Tensor([0.0]) - logtwopi = np.log(2.0 * np.pi) - return 0.5 * torch.sum( - logtwopi + self.logvar + torch.pow(sample - self.mean, 2) / self.var, - dim=dims, - ) - - def mode(self): - return self.mean - - -def normal_kl(mean1, logvar1, mean2, logvar2): - """ - source: https://github.com/openai/guided-diffusion/blob/27c20a8fab9cb472df5d6bdd6c8d11c8f430b924/guided_diffusion/losses.py#L12 - Compute the KL divergence between two gaussians. - Shapes are automatically broadcasted, so batches can be compared to - scalars, among other use cases. - """ - tensor = None - for obj in (mean1, logvar1, mean2, logvar2): - if isinstance(obj, torch.Tensor): - tensor = obj - break - assert tensor is not None, "at least one argument must be a Tensor" - - # Force variances to be Tensors. Broadcasting helps convert scalars to - # Tensors, but it does not work for torch.exp(). - logvar1, logvar2 = [ - x if isinstance(x, torch.Tensor) else torch.tensor(x).to(tensor) - for x in (logvar1, logvar2) - ] - - return 0.5 * ( - -1.0 - + logvar2 - - logvar1 - + torch.exp(logvar1 - logvar2) - + ((mean1 - mean2) ** 2) * torch.exp(-logvar2) - ) diff --git a/invokeai/backend/stable_diffusion/ema.py b/invokeai/backend/stable_diffusion/ema.py deleted file mode 100644 index 880ca3d205..0000000000 --- a/invokeai/backend/stable_diffusion/ema.py +++ /dev/null @@ -1,82 +0,0 @@ -import torch -from torch import nn - - -class LitEma(nn.Module): - def __init__(self, model, decay=0.9999, use_num_upates=True): - super().__init__() - if decay < 0.0 or decay > 1.0: - raise ValueError("Decay must be between 0 and 1") - - self.m_name2s_name = {} - self.register_buffer("decay", torch.tensor(decay, dtype=torch.float32)) - self.register_buffer( - "num_updates", - torch.tensor(0, dtype=torch.int) - if use_num_upates - else torch.tensor(-1, dtype=torch.int), - ) - - for name, p in model.named_parameters(): - if p.requires_grad: - # remove as '.'-character is not allowed in buffers - s_name = name.replace(".", "") - self.m_name2s_name.update({name: s_name}) - self.register_buffer(s_name, p.clone().detach().data) - - self.collected_params = [] - - def forward(self, model): - decay = self.decay - - if self.num_updates >= 0: - self.num_updates += 1 - decay = min(self.decay, (1 + self.num_updates) / (10 + self.num_updates)) - - one_minus_decay = 1.0 - decay - - with torch.no_grad(): - m_param = dict(model.named_parameters()) - shadow_params = dict(self.named_buffers()) - - for key in m_param: - if m_param[key].requires_grad: - sname = self.m_name2s_name[key] - shadow_params[sname] = shadow_params[sname].type_as(m_param[key]) - shadow_params[sname].sub_( - one_minus_decay * (shadow_params[sname] - m_param[key]) - ) - else: - assert not key in self.m_name2s_name - - def copy_to(self, model): - m_param = dict(model.named_parameters()) - shadow_params = dict(self.named_buffers()) - for key in m_param: - if m_param[key].requires_grad: - m_param[key].data.copy_(shadow_params[self.m_name2s_name[key]].data) - else: - assert not key in self.m_name2s_name - - def store(self, parameters): - """ - Save the current parameters for restoring later. - Args: - parameters: Iterable of `torch.nn.Parameter`; the parameters to be - temporarily stored. - """ - self.collected_params = [param.clone() for param in parameters] - - def restore(self, parameters): - """ - Restore the parameters stored with the `store` method. - Useful to validate the model with EMA parameters without affecting the - original optimization process. Store the parameters before the - `copy_to` method. After validation (or model saving), use this to - restore the former parameters. - Args: - parameters: Iterable of `torch.nn.Parameter`; the parameters to be - updated with the stored parameters. - """ - for c_param, param in zip(self.collected_params, parameters): - param.data.copy_(c_param.data) diff --git a/invokeai/backend/stable_diffusion/encoders/__init__.py b/invokeai/backend/stable_diffusion/encoders/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/invokeai/backend/stable_diffusion/encoders/modules.py b/invokeai/backend/stable_diffusion/encoders/modules.py deleted file mode 100644 index 54afd12bc9..0000000000 --- a/invokeai/backend/stable_diffusion/encoders/modules.py +++ /dev/null @@ -1,858 +0,0 @@ -import math -from functools import partial -from typing import Optional - -import clip -import kornia -import torch -import torch.nn as nn -from einops import repeat -from transformers import CLIPTextModel, CLIPTokenizer - -from ...util import choose_torch_device -from ..globals import global_cache_dir -from ..x_transformer import ( # TODO: can we directly rely on lucidrains code and simply add this as a reuirement? --> test - Encoder, - TransformerWrapper, -) - - -def _expand_mask(mask, dtype, tgt_len=None): - """ - Expands attention_mask from `[bsz, seq_len]` to `[bsz, 1, tgt_seq_len, src_seq_len]`. - """ - bsz, src_len = mask.size() - tgt_len = tgt_len if tgt_len is not None else src_len - - expanded_mask = mask[:, None, None, :].expand(bsz, 1, tgt_len, src_len).to(dtype) - - inverted_mask = 1.0 - expanded_mask - - return inverted_mask.masked_fill( - inverted_mask.to(torch.bool), torch.finfo(dtype).min - ) - - -def _build_causal_attention_mask(bsz, seq_len, dtype): - # lazily create causal attention mask, with full attention between the vision tokens - # pytorch uses additive attention mask; fill with -inf - mask = torch.empty(bsz, seq_len, seq_len, dtype=dtype) - mask.fill_(torch.tensor(torch.finfo(dtype).min)) - mask.triu_(1) # zero out the lower diagonal - mask = mask.unsqueeze(1) # expand mask - return mask - - -class AbstractEncoder(nn.Module): - def __init__(self): - super().__init__() - - def encode(self, *args, **kwargs): - raise NotImplementedError - - -class ClassEmbedder(nn.Module): - def __init__(self, embed_dim, n_classes=1000, key="class"): - super().__init__() - self.key = key - self.embedding = nn.Embedding(n_classes, embed_dim) - - def forward(self, batch, key=None): - if key is None: - key = self.key - # this is for use in crossattn - c = batch[key][:, None] - c = self.embedding(c) - return c - - -class TransformerEmbedder(AbstractEncoder): - """Some transformer encoder layers""" - - def __init__( - self, - n_embed, - n_layer, - vocab_size, - max_seq_len=77, - device=choose_torch_device(), - ): - super().__init__() - self.device = device - self.transformer = TransformerWrapper( - num_tokens=vocab_size, - max_seq_len=max_seq_len, - attn_layers=Encoder(dim=n_embed, depth=n_layer), - ) - - def forward(self, tokens): - tokens = tokens.to(self.device) # meh - z = self.transformer(tokens, return_embeddings=True) - return z - - def encode(self, x): - return self(x) - - -class BERTTokenizer(AbstractEncoder): - """Uses a pretrained BERT tokenizer by huggingface. Vocab size: 30522 (?)""" - - def __init__(self, device=choose_torch_device(), vq_interface=True, max_length=77): - super().__init__() - from transformers import BertTokenizerFast - - cache = global_cache_dir("hub") - try: - self.tokenizer = BertTokenizerFast.from_pretrained( - "bert-base-uncased", cache_dir=cache, local_files_only=True - ) - except OSError: - raise SystemExit( - "* Couldn't load Bert tokenizer files. Try running scripts/preload_models.py from an internet-conected machine." - ) - self.device = device - self.vq_interface = vq_interface - self.max_length = max_length - - def forward(self, text): - batch_encoding = self.tokenizer( - text, - truncation=True, - max_length=self.max_length, - return_length=True, - return_overflowing_tokens=False, - padding="max_length", - return_tensors="pt", - ) - tokens = batch_encoding["input_ids"].to(self.device) - return tokens - - @torch.no_grad() - def encode(self, text): - tokens = self(text) - if not self.vq_interface: - return tokens - return None, None, [None, None, tokens] - - def decode(self, text): - return text - - -class BERTEmbedder(AbstractEncoder): - """Uses the BERT tokenizr model and add some transformer encoder layers""" - - def __init__( - self, - n_embed, - n_layer, - vocab_size=30522, - max_seq_len=77, - device=choose_torch_device(), - use_tokenizer=True, - embedding_dropout=0.0, - ): - super().__init__() - self.use_tknz_fn = use_tokenizer - if self.use_tknz_fn: - self.tknz_fn = BERTTokenizer(vq_interface=False, max_length=max_seq_len) - self.device = device - self.transformer = TransformerWrapper( - num_tokens=vocab_size, - max_seq_len=max_seq_len, - attn_layers=Encoder(dim=n_embed, depth=n_layer), - emb_dropout=embedding_dropout, - ) - - def forward(self, text, embedding_manager=None): - if self.use_tknz_fn: - tokens = self.tknz_fn(text) # .to(self.device) - else: - tokens = text - z = self.transformer( - tokens, return_embeddings=True, embedding_manager=embedding_manager - ) - return z - - def encode(self, text, **kwargs): - # output of length 77 - return self(text, **kwargs) - - -class SpatialRescaler(nn.Module): - def __init__( - self, - n_stages=1, - method="bilinear", - multiplier=0.5, - in_channels=3, - out_channels=None, - bias=False, - ): - super().__init__() - self.n_stages = n_stages - assert self.n_stages >= 0 - assert method in [ - "nearest", - "linear", - "bilinear", - "trilinear", - "bicubic", - "area", - ] - self.multiplier = multiplier - self.interpolator = partial(torch.nn.functional.interpolate, mode=method) - self.remap_output = out_channels is not None - if self.remap_output: - print( - f"Spatial Rescaler mapping from {in_channels} to {out_channels} channels after resizing." - ) - self.channel_mapper = nn.Conv2d(in_channels, out_channels, 1, bias=bias) - - def forward(self, x): - for stage in range(self.n_stages): - x = self.interpolator(x, scale_factor=self.multiplier) - - if self.remap_output: - x = self.channel_mapper(x) - return x - - def encode(self, x): - return self(x) - - -class FrozenCLIPEmbedder(AbstractEncoder): - """Uses the CLIP transformer encoder for text (from Hugging Face)""" - - tokenizer: CLIPTokenizer - transformer: CLIPTextModel - - def __init__( - self, - version: str = "openai/clip-vit-large-patch14", - max_length: int = 77, - tokenizer: Optional[CLIPTokenizer] = None, - transformer: Optional[CLIPTextModel] = None, - ): - super().__init__() - cache = global_cache_dir("hub") - self.tokenizer = tokenizer or CLIPTokenizer.from_pretrained( - version, cache_dir=cache, local_files_only=True - ) - self.transformer = transformer or CLIPTextModel.from_pretrained( - version, cache_dir=cache, local_files_only=True - ) - self.max_length = max_length - self.freeze() - - def embedding_forward( - self, - input_ids=None, - position_ids=None, - inputs_embeds=None, - embedding_manager=None, - ) -> torch.Tensor: - seq_length = ( - input_ids.shape[-1] - if input_ids is not None - else inputs_embeds.shape[-2] - ) - - if position_ids is None: - position_ids = self.position_ids[:, :seq_length] - - if inputs_embeds is None: - inputs_embeds = self.token_embedding(input_ids) - - if embedding_manager is not None: - inputs_embeds = embedding_manager(input_ids, inputs_embeds) - - position_embeddings = self.position_embedding(position_ids) - embeddings = inputs_embeds + position_embeddings - - return embeddings - - self.transformer.text_model.embeddings.forward = embedding_forward.__get__( - self.transformer.text_model.embeddings - ) - - def encoder_forward( - self, - inputs_embeds, - attention_mask=None, - causal_attention_mask=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - ): - output_attentions = ( - output_attentions - if output_attentions is not None - else self.config.output_attentions - ) - output_hidden_states = ( - output_hidden_states - if output_hidden_states is not None - else self.config.output_hidden_states - ) - return_dict = ( - return_dict if return_dict is not None else self.config.use_return_dict - ) - - encoder_states = () if output_hidden_states else None - all_attentions = () if output_attentions else None - - hidden_states = inputs_embeds - for idx, encoder_layer in enumerate(self.layers): - if output_hidden_states: - encoder_states = encoder_states + (hidden_states,) - - layer_outputs = encoder_layer( - hidden_states, - attention_mask, - causal_attention_mask, - output_attentions=output_attentions, - ) - - hidden_states = layer_outputs[0] - - if output_attentions: - all_attentions = all_attentions + (layer_outputs[1],) - - if output_hidden_states: - encoder_states = encoder_states + (hidden_states,) - - return hidden_states - - self.transformer.text_model.encoder.forward = encoder_forward.__get__( - self.transformer.text_model.encoder - ) - - def text_encoder_forward( - self, - input_ids=None, - attention_mask=None, - position_ids=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - embedding_manager=None, - ): - output_attentions = ( - output_attentions - if output_attentions is not None - else self.config.output_attentions - ) - output_hidden_states = ( - output_hidden_states - if output_hidden_states is not None - else self.config.output_hidden_states - ) - return_dict = ( - return_dict if return_dict is not None else self.config.use_return_dict - ) - - if input_ids is None: - raise ValueError("You have to specify either input_ids") - - input_shape = input_ids.size() - input_ids = input_ids.view(-1, input_shape[-1]) - - hidden_states = self.embeddings( - input_ids=input_ids, - position_ids=position_ids, - embedding_manager=embedding_manager, - ) - - bsz, seq_len = input_shape - # CLIP's text model uses causal mask, prepare it here. - # https://github.com/openai/CLIP/blob/cfcffb90e69f37bf2ff1e988237a0fbe41f33c04/clip/model.py#L324 - causal_attention_mask = _build_causal_attention_mask( - bsz, seq_len, hidden_states.dtype - ).to(hidden_states.device) - - # expand attention_mask - if attention_mask is not None: - # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] - attention_mask = _expand_mask(attention_mask, hidden_states.dtype) - - last_hidden_state = self.encoder( - inputs_embeds=hidden_states, - attention_mask=attention_mask, - causal_attention_mask=causal_attention_mask, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - ) - - last_hidden_state = self.final_layer_norm(last_hidden_state) - - return last_hidden_state - - self.transformer.text_model.forward = text_encoder_forward.__get__( - self.transformer.text_model - ) - - def transformer_forward( - self, - input_ids=None, - attention_mask=None, - position_ids=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - embedding_manager=None, - ): - return self.text_model( - input_ids=input_ids, - attention_mask=attention_mask, - position_ids=position_ids, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - embedding_manager=embedding_manager, - ) - - self.transformer.forward = transformer_forward.__get__(self.transformer) - - def freeze(self): - self.transformer = self.transformer.eval() - for param in self.parameters(): - param.requires_grad = False - - def forward(self, text, **kwargs): - batch_encoding = self.tokenizer( - text, - truncation=True, - max_length=self.max_length, - return_length=True, - return_overflowing_tokens=False, - padding="max_length", - return_tensors="pt", - ) - tokens = batch_encoding["input_ids"].to(self.device) - z = self.transformer(input_ids=tokens, **kwargs) - - return z - - def encode(self, text, **kwargs): - return self(text, **kwargs) - - @property - def device(self): - return self.transformer.device - - @device.setter - def device(self, device): - self.transformer.to(device=device) - - -class WeightedFrozenCLIPEmbedder(FrozenCLIPEmbedder): - fragment_weights_key = "fragment_weights" - return_tokens_key = "return_tokens" - - def set_textual_inversion_manager(self, manager): # TextualInversionManager): - # TODO all of the weighting and expanding stuff needs be moved out of this class - self.textual_inversion_manager = manager - - def forward(self, text: list, **kwargs): - # TODO all of the weighting and expanding stuff needs be moved out of this class - """ - - :param text: A batch of prompt strings, or, a batch of lists of fragments of prompt strings to which different - weights shall be applied. - :param kwargs: If the keyword arg "fragment_weights" is passed, it shall contain a batch of lists of weights - for the prompt fragments. In this case text must contain batches of lists of prompt fragments. - :return: A tensor of shape (B, 77, 768) containing weighted embeddings - """ - if self.fragment_weights_key not in kwargs: - # fallback to base class implementation - return super().forward(text, **kwargs) - - fragment_weights = kwargs[self.fragment_weights_key] - # self.transformer doesn't like receiving "fragment_weights" as an argument - kwargs.pop(self.fragment_weights_key) - - should_return_tokens = False - if self.return_tokens_key in kwargs: - should_return_tokens = kwargs.get(self.return_tokens_key, False) - # self.transformer doesn't like having extra kwargs - kwargs.pop(self.return_tokens_key) - - batch_z = None - batch_tokens = None - for fragments, weights in zip(text, fragment_weights): - # First, weight tokens in individual fragments by scaling the feature vectors as requested (effectively - # applying a multiplier to the CFG scale on a per-token basis). - # For tokens weighted<1, intuitively we want SD to become not merely *less* interested in the concept - # captured by the fragment but actually *dis*interested in it (a 0.01 interest in "red" is still an active - # interest, however small, in redness; what the user probably intends when they attach the number 0.01 to - # "red" is to tell SD that it should almost completely *ignore* redness). - # To do this, the embedding is lerped away from base_embedding in the direction of an embedding for a prompt - # string from which the low-weighted fragment has been simply removed. The closer the weight is to zero, the - # closer the resulting embedding is to an embedding for a prompt that simply lacks this fragment. - - # handle weights >=1 - tokens, per_token_weights = self.get_tokens_and_weights(fragments, weights) - base_embedding = self.build_weighted_embedding_tensor( - tokens, per_token_weights, **kwargs - ) - - # this is our starting point - embeddings = base_embedding.unsqueeze(0) - per_embedding_weights = [1.0] - - # now handle weights <1 - # Do this by building extra embeddings tensors that lack the words being <1 weighted. These will be lerped - # with the embeddings tensors that have the words, such that if the weight of a word is 0.5, the resulting - # embedding will be exactly half-way between the unweighted prompt and the prompt with the <1 weighted words - # removed. - # eg for "mountain:1 man:0.5", intuitively the "man" should be "half-gone". therefore, append an embedding - # for "mountain" (i.e. without "man") to the already-produced embedding for "mountain man", and weight it - # such that the resulting lerped embedding is exactly half-way between "mountain man" and "mountain". - for index, fragment_weight in enumerate(weights): - if fragment_weight < 1: - fragments_without_this = fragments[:index] + fragments[index + 1 :] - weights_without_this = weights[:index] + weights[index + 1 :] - tokens, per_token_weights = self.get_tokens_and_weights( - fragments_without_this, weights_without_this - ) - embedding_without_this = self.build_weighted_embedding_tensor( - tokens, per_token_weights, **kwargs - ) - - embeddings = torch.cat( - (embeddings, embedding_without_this.unsqueeze(0)), dim=1 - ) - # weight of the embedding *without* this fragment gets *stronger* as its weight approaches 0 - # if fragment_weight = 0, basically we want embedding_without_this to completely overwhelm base_embedding - # therefore: - # fragment_weight = 1: we are at base_z => lerp weight 0 - # fragment_weight = 0.5: we are halfway between base_z and here => lerp weight 1 - # fragment_weight = 0: we're now entirely overriding base_z ==> lerp weight inf - # so let's use tan(), because: - # tan is 0.0 at 0, - # 1.0 at PI/4, and - # inf at PI/2 - # -> tan((1-weight)*PI/2) should give us ideal lerp weights - epsilon = 1e-9 - fragment_weight = max(epsilon, fragment_weight) # inf is bad - embedding_lerp_weight = math.tan( - (1.0 - fragment_weight) * math.pi / 2 - ) - # todo handle negative weight? - - per_embedding_weights.append(embedding_lerp_weight) - - lerped_embeddings = self.apply_embedding_weights( - embeddings, per_embedding_weights, normalize=True - ).squeeze(0) - - # print(f"assembled tokens for '{fragments}' into tensor of shape {lerped_embeddings.shape}") - - # append to batch - batch_z = ( - lerped_embeddings.unsqueeze(0) - if batch_z is None - else torch.cat([batch_z, lerped_embeddings.unsqueeze(0)], dim=1) - ) - batch_tokens = ( - tokens.unsqueeze(0) - if batch_tokens is None - else torch.cat([batch_tokens, tokens.unsqueeze(0)], dim=1) - ) - - # should have shape (B, 77, 768) - # print(f"assembled all tokens into tensor of shape {batch_z.shape}") - - if should_return_tokens: - return batch_z, batch_tokens - else: - return batch_z - - def get_token_ids( - self, fragments: list[str], include_start_and_end_markers: bool = True - ) -> list[list[int]]: - """ - Convert a list of strings like `["a cat", "sitting", "on a mat"]` into a list of lists of token ids like - `[[bos, 0, 1, eos], [bos, 2, eos], [bos, 3, 0, 4, eos]]`. bos/eos markers are skipped if - `include_start_and_end_markers` is `False`. Each list will be restricted to the maximum permitted length - (typically 75 tokens + eos/bos markers). - - :param fragments: The strings to convert. - :param include_start_and_end_markers: - :return: - """ - - # for args documentation see ENCODE_KWARGS_DOCSTRING in tokenization_utils_base.py (in `transformers` lib) - token_ids_list = self.tokenizer( - fragments, - truncation=True, - max_length=self.max_length, - return_overflowing_tokens=False, - padding="do_not_pad", - return_tensors=None, # just give me lists of ints - )["input_ids"] - - result = [] - for token_ids in token_ids_list: - # trim eos/bos - token_ids = token_ids[1:-1] - # pad for textual inversions with vector length >1 - token_ids = self.textual_inversion_manager.expand_textual_inversion_token_ids_if_necessary( - token_ids - ) - # restrict length to max_length-2 (leaving room for bos/eos) - token_ids = token_ids[0 : self.max_length - 2] - # add back eos/bos if requested - if include_start_and_end_markers: - token_ids = ( - [self.tokenizer.bos_token_id] - + token_ids - + [self.tokenizer.eos_token_id] - ) - - result.append(token_ids) - - return result - - @classmethod - def apply_embedding_weights( - self, - embeddings: torch.Tensor, - per_embedding_weights: list[float], - normalize: bool, - ) -> torch.Tensor: - per_embedding_weights = torch.tensor( - per_embedding_weights, dtype=embeddings.dtype, device=embeddings.device - ) - if normalize: - per_embedding_weights = per_embedding_weights / torch.sum( - per_embedding_weights - ) - reshaped_weights = per_embedding_weights.reshape( - per_embedding_weights.shape - + ( - 1, - 1, - ) - ) - # reshaped_weights = per_embedding_weights.reshape(per_embedding_weights.shape + (1,1,)).expand(embeddings.shape) - return torch.sum(embeddings * reshaped_weights, dim=1) - # lerped embeddings has shape (77, 768) - - def get_tokens_and_weights( - self, fragments: list[str], weights: list[float] - ) -> (torch.Tensor, torch.Tensor): - """ - - :param fragments: - :param weights: Per-fragment weights (CFG scaling). No need for these to be normalized. They will not be normalized here and that's fine. - :return: - """ - # empty is meaningful - if len(fragments) == 0 and len(weights) == 0: - fragments = [""] - weights = [1] - per_fragment_token_ids = self.get_token_ids( - fragments, include_start_and_end_markers=False - ) - all_token_ids = [] - per_token_weights = [] - # print("all fragments:", fragments, weights) - for index, fragment in enumerate(per_fragment_token_ids): - weight = float(weights[index]) - # print("processing fragment", fragment, weight) - this_fragment_token_ids = per_fragment_token_ids[index] - # print("fragment", fragment, "processed to", this_fragment_token_ids) - # append - all_token_ids += this_fragment_token_ids - # fill out weights tensor with one float per token - per_token_weights += [weight] * len(this_fragment_token_ids) - - # leave room for bos/eos - max_token_count_without_bos_eos_markers = self.max_length - 2 - if len(all_token_ids) > max_token_count_without_bos_eos_markers: - excess_token_count = ( - len(all_token_ids) - max_token_count_without_bos_eos_markers - ) - # TODO build nice description string of how the truncation was applied - # this should be done by calling self.tokenizer.convert_ids_to_tokens() then passing the result to - # self.tokenizer.convert_tokens_to_string() for the token_ids on each side of the truncation limit. - print( - f">> Prompt is {excess_token_count} token(s) too long and has been truncated" - ) - all_token_ids = all_token_ids[0:max_token_count_without_bos_eos_markers] - per_token_weights = per_token_weights[ - 0:max_token_count_without_bos_eos_markers - ] - - # pad out to a 77-entry array: [bos_token, , eos_token, pad_token…] - # (77 = self.max_length) - all_token_ids = ( - [self.tokenizer.bos_token_id] - + all_token_ids - + [self.tokenizer.eos_token_id] - ) - per_token_weights = [1.0] + per_token_weights + [1.0] - pad_length = self.max_length - len(all_token_ids) - all_token_ids += [self.tokenizer.pad_token_id] * pad_length - per_token_weights += [1.0] * pad_length - - all_token_ids_tensor = torch.tensor(all_token_ids, dtype=torch.long).to( - self.device - ) - per_token_weights_tensor = torch.tensor( - per_token_weights, dtype=torch.float32 - ).to(self.device) - # print(f"assembled all_token_ids_tensor with shape {all_token_ids_tensor.shape}") - return all_token_ids_tensor, per_token_weights_tensor - - def build_weighted_embedding_tensor( - self, - token_ids: torch.Tensor, - per_token_weights: torch.Tensor, - weight_delta_from_empty=True, - **kwargs, - ) -> torch.Tensor: - """ - Build a tensor representing the passed-in tokens, each of which has a weight. - :param token_ids: A tensor of shape (77) containing token ids (integers) - :param per_token_weights: A tensor of shape (77) containing weights (floats) - :param method: Whether to multiply the whole feature vector for each token or just its distance from an "empty" feature vector - :param kwargs: passed on to self.transformer() - :return: A tensor of shape (1, 77, 768) representing the requested weighted embeddings. - """ - # print(f"building weighted embedding tensor for {tokens} with weights {per_token_weights}") - if token_ids.shape != torch.Size([self.max_length]): - raise ValueError( - f"token_ids has shape {token_ids.shape} - expected [{self.max_length}]" - ) - - z = self.transformer(input_ids=token_ids.unsqueeze(0), **kwargs) - - batch_weights_expanded = per_token_weights.reshape( - per_token_weights.shape + (1,) - ).expand(z.shape) - - if weight_delta_from_empty: - empty_tokens = self.tokenizer( - [""] * z.shape[0], - truncation=True, - max_length=self.max_length, - padding="max_length", - return_tensors="pt", - )["input_ids"].to(self.device) - empty_z = self.transformer(input_ids=empty_tokens, **kwargs) - z_delta_from_empty = z - empty_z - weighted_z = empty_z + (z_delta_from_empty * batch_weights_expanded) - - # weighted_z_delta_from_empty = (weighted_z-empty_z) - # print("weighted z has delta from empty with sum", weighted_z_delta_from_empty.sum().item(), "mean", weighted_z_delta_from_empty.mean().item() ) - - # print("using empty-delta method, first 5 rows:") - # print(weighted_z[:5]) - - return weighted_z - - else: - original_mean = z.mean() - z *= batch_weights_expanded - after_weighting_mean = z.mean() - # correct the mean. not sure if this is right but it's what the automatic1111 fork of SD does - mean_correction_factor = original_mean / after_weighting_mean - z *= mean_correction_factor - return z - - -class FrozenCLIPTextEmbedder(nn.Module): - """ - Uses the CLIP transformer encoder for text. - """ - - def __init__( - self, - version="ViT-L/14", - device=choose_torch_device(), - max_length=77, - n_repeat=1, - normalize=True, - ): - super().__init__() - self.model, _ = clip.load(version, jit=False, device=device) - self.device = device - self.max_length = max_length - self.n_repeat = n_repeat - self.normalize = normalize - - def freeze(self): - self.model = self.model.eval() - for param in self.parameters(): - param.requires_grad = False - - def forward(self, text): - tokens = clip.tokenize(text).to(self.device) - z = self.model.encode_text(tokens) - if self.normalize: - z = z / torch.linalg.norm(z, dim=1, keepdim=True) - return z - - def encode(self, text): - z = self(text) - if z.ndim == 2: - z = z[:, None, :] - z = repeat(z, "b 1 d -> b k d", k=self.n_repeat) - return z - - -class FrozenClipImageEmbedder(nn.Module): - """ - Uses the CLIP image encoder. - """ - - def __init__( - self, - model, - jit=False, - device=choose_torch_device(), - antialias=False, - ): - super().__init__() - self.model, _ = clip.load(name=model, device=device, jit=jit) - - self.antialias = antialias - - self.register_buffer( - "mean", - torch.Tensor([0.48145466, 0.4578275, 0.40821073]), - persistent=False, - ) - self.register_buffer( - "std", - torch.Tensor([0.26862954, 0.26130258, 0.27577711]), - persistent=False, - ) - - def preprocess(self, x): - # normalize to [0,1] - x = kornia.geometry.resize( - x, - (224, 224), - interpolation="bicubic", - align_corners=True, - antialias=self.antialias, - ) - x = (x + 1.0) / 2.0 - # renormalize according to clip - x = kornia.enhance.normalize(x, self.mean, self.std) - return x - - def forward(self, x): - # x is assumed to be in range [-1,1] - return self.model.encode_image(self.preprocess(x)) - - -if __name__ == "__main__": - from ...util.util import count_params - - model = FrozenCLIPEmbedder() - count_params(model, verbose=True) diff --git a/invokeai/backend/stable_diffusion/losses/__init__.py b/invokeai/backend/stable_diffusion/losses/__init__.py deleted file mode 100644 index d86294210c..0000000000 --- a/invokeai/backend/stable_diffusion/losses/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ldm.modules.losses.contperceptual import LPIPSWithDiscriminator diff --git a/invokeai/backend/stable_diffusion/losses/contperceptual.py b/invokeai/backend/stable_diffusion/losses/contperceptual.py deleted file mode 100644 index 1e3e6a00c4..0000000000 --- a/invokeai/backend/stable_diffusion/losses/contperceptual.py +++ /dev/null @@ -1,159 +0,0 @@ -import torch -import torch.nn as nn -from taming.modules.losses.vqperceptual import * # TODO: taming dependency yes/no? - - -class LPIPSWithDiscriminator(nn.Module): - def __init__( - self, - disc_start, - logvar_init=0.0, - kl_weight=1.0, - pixelloss_weight=1.0, - disc_num_layers=3, - disc_in_channels=3, - disc_factor=1.0, - disc_weight=1.0, - perceptual_weight=1.0, - use_actnorm=False, - disc_conditional=False, - disc_loss="hinge", - ): - super().__init__() - assert disc_loss in ["hinge", "vanilla"] - self.kl_weight = kl_weight - self.pixel_weight = pixelloss_weight - self.perceptual_loss = LPIPS().eval() - self.perceptual_weight = perceptual_weight - # output log variance - self.logvar = nn.Parameter(torch.ones(size=()) * logvar_init) - - self.discriminator = NLayerDiscriminator( - input_nc=disc_in_channels, - n_layers=disc_num_layers, - use_actnorm=use_actnorm, - ).apply(weights_init) - self.discriminator_iter_start = disc_start - self.disc_loss = hinge_d_loss if disc_loss == "hinge" else vanilla_d_loss - self.disc_factor = disc_factor - self.discriminator_weight = disc_weight - self.disc_conditional = disc_conditional - - def calculate_adaptive_weight(self, nll_loss, g_loss, last_layer=None): - if last_layer is not None: - nll_grads = torch.autograd.grad(nll_loss, last_layer, retain_graph=True)[0] - g_grads = torch.autograd.grad(g_loss, last_layer, retain_graph=True)[0] - else: - nll_grads = torch.autograd.grad( - nll_loss, self.last_layer[0], retain_graph=True - )[0] - g_grads = torch.autograd.grad( - g_loss, self.last_layer[0], retain_graph=True - )[0] - - d_weight = torch.norm(nll_grads) / (torch.norm(g_grads) + 1e-4) - d_weight = torch.clamp(d_weight, 0.0, 1e4).detach() - d_weight = d_weight * self.discriminator_weight - return d_weight - - def forward( - self, - inputs, - reconstructions, - posteriors, - optimizer_idx, - global_step, - last_layer=None, - cond=None, - split="train", - weights=None, - ): - rec_loss = torch.abs(inputs.contiguous() - reconstructions.contiguous()) - if self.perceptual_weight > 0: - p_loss = self.perceptual_loss( - inputs.contiguous(), reconstructions.contiguous() - ) - rec_loss = rec_loss + self.perceptual_weight * p_loss - - nll_loss = rec_loss / torch.exp(self.logvar) + self.logvar - weighted_nll_loss = nll_loss - if weights is not None: - weighted_nll_loss = weights * nll_loss - weighted_nll_loss = torch.sum(weighted_nll_loss) / weighted_nll_loss.shape[0] - nll_loss = torch.sum(nll_loss) / nll_loss.shape[0] - kl_loss = posteriors.kl() - kl_loss = torch.sum(kl_loss) / kl_loss.shape[0] - - # now the GAN part - if optimizer_idx == 0: - # generator update - if cond is None: - assert not self.disc_conditional - logits_fake = self.discriminator(reconstructions.contiguous()) - else: - assert self.disc_conditional - logits_fake = self.discriminator( - torch.cat((reconstructions.contiguous(), cond), dim=1) - ) - g_loss = -torch.mean(logits_fake) - - if self.disc_factor > 0.0: - try: - d_weight = self.calculate_adaptive_weight( - nll_loss, g_loss, last_layer=last_layer - ) - except RuntimeError: - assert not self.training - d_weight = torch.tensor(0.0) - else: - d_weight = torch.tensor(0.0) - - disc_factor = adopt_weight( - self.disc_factor, - global_step, - threshold=self.discriminator_iter_start, - ) - loss = ( - weighted_nll_loss - + self.kl_weight * kl_loss - + d_weight * disc_factor * g_loss - ) - - log = { - "{}/total_loss".format(split): loss.clone().detach().mean(), - "{}/logvar".format(split): self.logvar.detach(), - "{}/kl_loss".format(split): kl_loss.detach().mean(), - "{}/nll_loss".format(split): nll_loss.detach().mean(), - "{}/rec_loss".format(split): rec_loss.detach().mean(), - "{}/d_weight".format(split): d_weight.detach(), - "{}/disc_factor".format(split): torch.tensor(disc_factor), - "{}/g_loss".format(split): g_loss.detach().mean(), - } - return loss, log - - if optimizer_idx == 1: - # second pass for discriminator update - if cond is None: - logits_real = self.discriminator(inputs.contiguous().detach()) - logits_fake = self.discriminator(reconstructions.contiguous().detach()) - else: - logits_real = self.discriminator( - torch.cat((inputs.contiguous().detach(), cond), dim=1) - ) - logits_fake = self.discriminator( - torch.cat((reconstructions.contiguous().detach(), cond), dim=1) - ) - - disc_factor = adopt_weight( - self.disc_factor, - global_step, - threshold=self.discriminator_iter_start, - ) - d_loss = disc_factor * self.disc_loss(logits_real, logits_fake) - - log = { - "{}/disc_loss".format(split): d_loss.clone().detach().mean(), - "{}/logits_real".format(split): logits_real.detach().mean(), - "{}/logits_fake".format(split): logits_fake.detach().mean(), - } - return d_loss, log diff --git a/invokeai/backend/stable_diffusion/losses/vqperceptual.py b/invokeai/backend/stable_diffusion/losses/vqperceptual.py deleted file mode 100644 index 50413d37b8..0000000000 --- a/invokeai/backend/stable_diffusion/losses/vqperceptual.py +++ /dev/null @@ -1,222 +0,0 @@ -import torch -import torch.nn.functional as F -from einops import repeat -from taming.modules.discriminator.model import NLayerDiscriminator, weights_init -from taming.modules.losses.lpips import LPIPS -from taming.modules.losses.vqperceptual import hinge_d_loss, vanilla_d_loss -from torch import nn - - -def hinge_d_loss_with_exemplar_weights(logits_real, logits_fake, weights): - assert weights.shape[0] == logits_real.shape[0] == logits_fake.shape[0] - loss_real = torch.mean(F.relu(1.0 - logits_real), dim=[1, 2, 3]) - loss_fake = torch.mean(F.relu(1.0 + logits_fake), dim=[1, 2, 3]) - loss_real = (weights * loss_real).sum() / weights.sum() - loss_fake = (weights * loss_fake).sum() / weights.sum() - d_loss = 0.5 * (loss_real + loss_fake) - return d_loss - - -def adopt_weight(weight, global_step, threshold=0, value=0.0): - if global_step < threshold: - weight = value - return weight - - -def measure_perplexity(predicted_indices, n_embed): - # src: https://github.com/karpathy/deep-vector-quantization/blob/main/model.py - # eval cluster perplexity. when perplexity == num_embeddings then all clusters are used exactly equally - encodings = F.one_hot(predicted_indices, n_embed).float().reshape(-1, n_embed) - avg_probs = encodings.mean(0) - perplexity = (-(avg_probs * torch.log(avg_probs + 1e-10)).sum()).exp() - cluster_use = torch.sum(avg_probs > 0) - return perplexity, cluster_use - - -def l1(x, y): - return torch.abs(x - y) - - -def l2(x, y): - return torch.pow((x - y), 2) - - -class VQLPIPSWithDiscriminator(nn.Module): - def __init__( - self, - disc_start, - codebook_weight=1.0, - pixelloss_weight=1.0, - disc_num_layers=3, - disc_in_channels=3, - disc_factor=1.0, - disc_weight=1.0, - perceptual_weight=1.0, - use_actnorm=False, - disc_conditional=False, - disc_ndf=64, - disc_loss="hinge", - n_classes=None, - perceptual_loss="lpips", - pixel_loss="l1", - ): - super().__init__() - assert disc_loss in ["hinge", "vanilla"] - assert perceptual_loss in ["lpips", "clips", "dists"] - assert pixel_loss in ["l1", "l2"] - self.codebook_weight = codebook_weight - self.pixel_weight = pixelloss_weight - if perceptual_loss == "lpips": - print(f"{self.__class__.__name__}: Running with LPIPS.") - self.perceptual_loss = LPIPS().eval() - else: - raise ValueError(f"Unknown perceptual loss: >> {perceptual_loss} <<") - self.perceptual_weight = perceptual_weight - - if pixel_loss == "l1": - self.pixel_loss = l1 - else: - self.pixel_loss = l2 - - self.discriminator = NLayerDiscriminator( - input_nc=disc_in_channels, - n_layers=disc_num_layers, - use_actnorm=use_actnorm, - ndf=disc_ndf, - ).apply(weights_init) - self.discriminator_iter_start = disc_start - if disc_loss == "hinge": - self.disc_loss = hinge_d_loss - elif disc_loss == "vanilla": - self.disc_loss = vanilla_d_loss - else: - raise ValueError(f"Unknown GAN loss '{disc_loss}'.") - print(f"VQLPIPSWithDiscriminator running with {disc_loss} loss.") - self.disc_factor = disc_factor - self.discriminator_weight = disc_weight - self.disc_conditional = disc_conditional - self.n_classes = n_classes - - def calculate_adaptive_weight(self, nll_loss, g_loss, last_layer=None): - if last_layer is not None: - nll_grads = torch.autograd.grad(nll_loss, last_layer, retain_graph=True)[0] - g_grads = torch.autograd.grad(g_loss, last_layer, retain_graph=True)[0] - else: - nll_grads = torch.autograd.grad( - nll_loss, self.last_layer[0], retain_graph=True - )[0] - g_grads = torch.autograd.grad( - g_loss, self.last_layer[0], retain_graph=True - )[0] - - d_weight = torch.norm(nll_grads) / (torch.norm(g_grads) + 1e-4) - d_weight = torch.clamp(d_weight, 0.0, 1e4).detach() - d_weight = d_weight * self.discriminator_weight - return d_weight - - def forward( - self, - codebook_loss, - inputs, - reconstructions, - optimizer_idx, - global_step, - last_layer=None, - cond=None, - split="train", - predicted_indices=None, - ): - if not exists(codebook_loss): - codebook_loss = torch.tensor([0.0]).to(inputs.device) - # rec_loss = torch.abs(inputs.contiguous() - reconstructions.contiguous()) - rec_loss = self.pixel_loss(inputs.contiguous(), reconstructions.contiguous()) - if self.perceptual_weight > 0: - p_loss = self.perceptual_loss( - inputs.contiguous(), reconstructions.contiguous() - ) - rec_loss = rec_loss + self.perceptual_weight * p_loss - else: - p_loss = torch.tensor([0.0]) - - nll_loss = rec_loss - # nll_loss = torch.sum(nll_loss) / nll_loss.shape[0] - nll_loss = torch.mean(nll_loss) - - # now the GAN part - if optimizer_idx == 0: - # generator update - if cond is None: - assert not self.disc_conditional - logits_fake = self.discriminator(reconstructions.contiguous()) - else: - assert self.disc_conditional - logits_fake = self.discriminator( - torch.cat((reconstructions.contiguous(), cond), dim=1) - ) - g_loss = -torch.mean(logits_fake) - - try: - d_weight = self.calculate_adaptive_weight( - nll_loss, g_loss, last_layer=last_layer - ) - except RuntimeError: - assert not self.training - d_weight = torch.tensor(0.0) - - disc_factor = adopt_weight( - self.disc_factor, - global_step, - threshold=self.discriminator_iter_start, - ) - loss = ( - nll_loss - + d_weight * disc_factor * g_loss - + self.codebook_weight * codebook_loss.mean() - ) - - log = { - "{}/total_loss".format(split): loss.clone().detach().mean(), - "{}/quant_loss".format(split): codebook_loss.detach().mean(), - "{}/nll_loss".format(split): nll_loss.detach().mean(), - "{}/rec_loss".format(split): rec_loss.detach().mean(), - "{}/p_loss".format(split): p_loss.detach().mean(), - "{}/d_weight".format(split): d_weight.detach(), - "{}/disc_factor".format(split): torch.tensor(disc_factor), - "{}/g_loss".format(split): g_loss.detach().mean(), - } - if predicted_indices is not None: - assert self.n_classes is not None - with torch.no_grad(): - perplexity, cluster_usage = measure_perplexity( - predicted_indices, self.n_classes - ) - log[f"{split}/perplexity"] = perplexity - log[f"{split}/cluster_usage"] = cluster_usage - return loss, log - - if optimizer_idx == 1: - # second pass for discriminator update - if cond is None: - logits_real = self.discriminator(inputs.contiguous().detach()) - logits_fake = self.discriminator(reconstructions.contiguous().detach()) - else: - logits_real = self.discriminator( - torch.cat((inputs.contiguous().detach(), cond), dim=1) - ) - logits_fake = self.discriminator( - torch.cat((reconstructions.contiguous().detach(), cond), dim=1) - ) - - disc_factor = adopt_weight( - self.disc_factor, - global_step, - threshold=self.discriminator_iter_start, - ) - d_loss = disc_factor * self.disc_loss(logits_real, logits_fake) - - log = { - "{}/disc_loss".format(split): d_loss.clone().detach().mean(), - "{}/logits_real".format(split): logits_real.detach().mean(), - "{}/logits_fake".format(split): logits_fake.detach().mean(), - } - return d_loss, log diff --git a/invokeai/backend/stable_diffusion/modules/__init__.py b/invokeai/backend/stable_diffusion/modules/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/invokeai/backend/stable_diffusion/x_transformer.py b/invokeai/backend/stable_diffusion/x_transformer.py deleted file mode 100644 index b541d77ee2..0000000000 --- a/invokeai/backend/stable_diffusion/x_transformer.py +++ /dev/null @@ -1,729 +0,0 @@ -"""shout-out to https://github.com/lucidrains/x-transformers/tree/main/x_transformers""" -from collections import namedtuple -from functools import partial -from inspect import isfunction - -import torch -import torch.nn.functional as F -from einops import rearrange, reduce, repeat -from torch import einsum, nn - -# constants - -DEFAULT_DIM_HEAD = 64 - -Intermediates = namedtuple("Intermediates", ["pre_softmax_attn", "post_softmax_attn"]) - -LayerIntermediates = namedtuple("Intermediates", ["hiddens", "attn_intermediates"]) - - -class AbsolutePositionalEmbedding(nn.Module): - def __init__(self, dim, max_seq_len): - super().__init__() - self.emb = nn.Embedding(max_seq_len, dim) - self.init_() - - def init_(self): - nn.init.normal_(self.emb.weight, std=0.02) - - def forward(self, x): - n = torch.arange(x.shape[1], device=x.device) - return self.emb(n)[None, :, :] - - -class FixedPositionalEmbedding(nn.Module): - def __init__(self, dim): - super().__init__() - inv_freq = 1.0 / (10000 ** (torch.arange(0, dim, 2).float() / dim)) - self.register_buffer("inv_freq", inv_freq) - - def forward(self, x, seq_dim=1, offset=0): - t = ( - torch.arange(x.shape[seq_dim], device=x.device).type_as(self.inv_freq) - + offset - ) - sinusoid_inp = torch.einsum("i , j -> i j", t, self.inv_freq) - emb = torch.cat((sinusoid_inp.sin(), sinusoid_inp.cos()), dim=-1) - return emb[None, :, :] - - -# helpers - - -def exists(val): - return val is not None - - -def default(val, d): - if exists(val): - return val - return d() if isfunction(d) else d - - -def always(val): - def inner(*args, **kwargs): - return val - - return inner - - -def not_equals(val): - def inner(x): - return x != val - - return inner - - -def equals(val): - def inner(x): - return x == val - - return inner - - -def max_neg_value(tensor): - return -torch.finfo(tensor.dtype).max - - -# keyword argument helpers - - -def pick_and_pop(keys, d): - values = list(map(lambda key: d.pop(key), keys)) - return dict(zip(keys, values)) - - -def group_dict_by_key(cond, d): - return_val = [dict(), dict()] - for key in d.keys(): - match = bool(cond(key)) - ind = int(not match) - return_val[ind][key] = d[key] - return (*return_val,) - - -def string_begins_with(prefix, str): - return str.startswith(prefix) - - -def group_by_key_prefix(prefix, d): - return group_dict_by_key(partial(string_begins_with, prefix), d) - - -def groupby_prefix_and_trim(prefix, d): - kwargs_with_prefix, kwargs = group_dict_by_key( - partial(string_begins_with, prefix), d - ) - kwargs_without_prefix = dict( - map( - lambda x: (x[0][len(prefix) :], x[1]), - tuple(kwargs_with_prefix.items()), - ) - ) - return kwargs_without_prefix, kwargs - - -# classes -class Scale(nn.Module): - def __init__(self, value, fn): - super().__init__() - self.value = value - self.fn = fn - - def forward(self, x, **kwargs): - x, *rest = self.fn(x, **kwargs) - return (x * self.value, *rest) - - -class Rezero(nn.Module): - def __init__(self, fn): - super().__init__() - self.fn = fn - self.g = nn.Parameter(torch.zeros(1)) - - def forward(self, x, **kwargs): - x, *rest = self.fn(x, **kwargs) - return (x * self.g, *rest) - - -class ScaleNorm(nn.Module): - def __init__(self, dim, eps=1e-5): - super().__init__() - self.scale = dim**-0.5 - self.eps = eps - self.g = nn.Parameter(torch.ones(1)) - - def forward(self, x): - norm = torch.norm(x, dim=-1, keepdim=True) * self.scale - return x / norm.clamp(min=self.eps) * self.g - - -class RMSNorm(nn.Module): - def __init__(self, dim, eps=1e-8): - super().__init__() - self.scale = dim**-0.5 - self.eps = eps - self.g = nn.Parameter(torch.ones(dim)) - - def forward(self, x): - norm = torch.norm(x, dim=-1, keepdim=True) * self.scale - return x / norm.clamp(min=self.eps) * self.g - - -class Residual(nn.Module): - def forward(self, x, residual): - return x + residual - - -class GRUGating(nn.Module): - def __init__(self, dim): - super().__init__() - self.gru = nn.GRUCell(dim, dim) - - def forward(self, x, residual): - gated_output = self.gru( - rearrange(x, "b n d -> (b n) d"), - rearrange(residual, "b n d -> (b n) d"), - ) - - return gated_output.reshape_as(x) - - -# feedforward - - -class GEGLU(nn.Module): - def __init__(self, dim_in, dim_out): - super().__init__() - self.proj = nn.Linear(dim_in, dim_out * 2) - - def forward(self, x): - x, gate = self.proj(x).chunk(2, dim=-1) - return x * F.gelu(gate) - - -class FeedForward(nn.Module): - def __init__(self, dim, dim_out=None, mult=4, glu=False, dropout=0.0): - super().__init__() - inner_dim = int(dim * mult) - dim_out = default(dim_out, dim) - project_in = ( - nn.Sequential(nn.Linear(dim, inner_dim), nn.GELU()) - if not glu - else GEGLU(dim, inner_dim) - ) - - self.net = nn.Sequential( - project_in, nn.Dropout(dropout), nn.Linear(inner_dim, dim_out) - ) - - def forward(self, x): - return self.net(x) - - -# attention. -class Attention(nn.Module): - def __init__( - self, - dim, - dim_head=DEFAULT_DIM_HEAD, - heads=8, - causal=False, - mask=None, - talking_heads=False, - sparse_topk=None, - use_entmax15=False, - num_mem_kv=0, - dropout=0.0, - on_attn=False, - ): - super().__init__() - if use_entmax15: - raise NotImplementedError( - "Check out entmax activation instead of softmax activation!" - ) - self.scale = dim_head**-0.5 - self.heads = heads - self.causal = causal - self.mask = mask - - inner_dim = dim_head * heads - - self.to_q = nn.Linear(dim, inner_dim, bias=False) - self.to_k = nn.Linear(dim, inner_dim, bias=False) - self.to_v = nn.Linear(dim, inner_dim, bias=False) - self.dropout = nn.Dropout(dropout) - - # talking heads - self.talking_heads = talking_heads - if talking_heads: - self.pre_softmax_proj = nn.Parameter(torch.randn(heads, heads)) - self.post_softmax_proj = nn.Parameter(torch.randn(heads, heads)) - - # explicit topk sparse attention - self.sparse_topk = sparse_topk - - # entmax - # self.attn_fn = entmax15 if use_entmax15 else F.softmax - self.attn_fn = F.softmax - - # add memory key / values - self.num_mem_kv = num_mem_kv - if num_mem_kv > 0: - self.mem_k = nn.Parameter(torch.randn(heads, num_mem_kv, dim_head)) - self.mem_v = nn.Parameter(torch.randn(heads, num_mem_kv, dim_head)) - - # attention on attention - self.attn_on_attn = on_attn - self.to_out = ( - nn.Sequential(nn.Linear(inner_dim, dim * 2), nn.GLU()) - if on_attn - else nn.Linear(inner_dim, dim) - ) - - def forward( - self, - x, - context=None, - mask=None, - context_mask=None, - rel_pos=None, - sinusoidal_emb=None, - prev_attn=None, - mem=None, - ): - b, n, _, h, talking_heads, device = ( - *x.shape, - self.heads, - self.talking_heads, - x.device, - ) - kv_input = default(context, x) - - q_input = x - k_input = kv_input - v_input = kv_input - - if exists(mem): - k_input = torch.cat((mem, k_input), dim=-2) - v_input = torch.cat((mem, v_input), dim=-2) - - if exists(sinusoidal_emb): - # in shortformer, the query would start at a position offset depending on the past cached memory - offset = k_input.shape[-2] - q_input.shape[-2] - q_input = q_input + sinusoidal_emb(q_input, offset=offset) - k_input = k_input + sinusoidal_emb(k_input) - - q = self.to_q(q_input) - k = self.to_k(k_input) - v = self.to_v(v_input) - - q, k, v = map(lambda t: rearrange(t, "b n (h d) -> b h n d", h=h), (q, k, v)) - - input_mask = None - if any(map(exists, (mask, context_mask))): - q_mask = default(mask, lambda: torch.ones((b, n), device=device).bool()) - k_mask = q_mask if not exists(context) else context_mask - k_mask = default( - k_mask, - lambda: torch.ones((b, k.shape[-2]), device=device).bool(), - ) - q_mask = rearrange(q_mask, "b i -> b () i ()") - k_mask = rearrange(k_mask, "b j -> b () () j") - input_mask = q_mask * k_mask - - if self.num_mem_kv > 0: - mem_k, mem_v = map( - lambda t: repeat(t, "h n d -> b h n d", b=b), - (self.mem_k, self.mem_v), - ) - k = torch.cat((mem_k, k), dim=-2) - v = torch.cat((mem_v, v), dim=-2) - if exists(input_mask): - input_mask = F.pad(input_mask, (self.num_mem_kv, 0), value=True) - - dots = einsum("b h i d, b h j d -> b h i j", q, k) * self.scale - mask_value = max_neg_value(dots) - - if exists(prev_attn): - dots = dots + prev_attn - - pre_softmax_attn = dots - - if talking_heads: - dots = einsum( - "b h i j, h k -> b k i j", dots, self.pre_softmax_proj - ).contiguous() - - if exists(rel_pos): - dots = rel_pos(dots) - - if exists(input_mask): - dots.masked_fill_(~input_mask, mask_value) - del input_mask - - if self.causal: - i, j = dots.shape[-2:] - r = torch.arange(i, device=device) - mask = rearrange(r, "i -> () () i ()") < rearrange(r, "j -> () () () j") - mask = F.pad(mask, (j - i, 0), value=False) - dots.masked_fill_(mask, mask_value) - del mask - - if exists(self.sparse_topk) and self.sparse_topk < dots.shape[-1]: - top, _ = dots.topk(self.sparse_topk, dim=-1) - vk = top[..., -1].unsqueeze(-1).expand_as(dots) - mask = dots < vk - dots.masked_fill_(mask, mask_value) - del mask - - attn = self.attn_fn(dots, dim=-1) - post_softmax_attn = attn - - attn = self.dropout(attn) - - if talking_heads: - attn = einsum( - "b h i j, h k -> b k i j", attn, self.post_softmax_proj - ).contiguous() - - out = einsum("b h i j, b h j d -> b h i d", attn, v) - out = rearrange(out, "b h n d -> b n (h d)") - - intermediates = Intermediates( - pre_softmax_attn=pre_softmax_attn, - post_softmax_attn=post_softmax_attn, - ) - - return self.to_out(out), intermediates - - -class AttentionLayers(nn.Module): - def __init__( - self, - dim, - depth, - heads=8, - causal=False, - cross_attend=False, - only_cross=False, - use_scalenorm=False, - use_rmsnorm=False, - use_rezero=False, - rel_pos_num_buckets=32, - rel_pos_max_distance=128, - position_infused_attn=False, - custom_layers=None, - sandwich_coef=None, - par_ratio=None, - residual_attn=False, - cross_residual_attn=False, - macaron=False, - pre_norm=True, - gate_residual=False, - **kwargs, - ): - super().__init__() - ff_kwargs, kwargs = groupby_prefix_and_trim("ff_", kwargs) - attn_kwargs, _ = groupby_prefix_and_trim("attn_", kwargs) - - dim_head = attn_kwargs.get("dim_head", DEFAULT_DIM_HEAD) - - self.dim = dim - self.depth = depth - self.layers = nn.ModuleList([]) - - self.has_pos_emb = position_infused_attn - self.pia_pos_emb = ( - FixedPositionalEmbedding(dim) if position_infused_attn else None - ) - self.rotary_pos_emb = always(None) - - assert ( - rel_pos_num_buckets <= rel_pos_max_distance - ), "number of relative position buckets must be less than the relative position max distance" - self.rel_pos = None - - self.pre_norm = pre_norm - - self.residual_attn = residual_attn - self.cross_residual_attn = cross_residual_attn - - norm_class = ScaleNorm if use_scalenorm else nn.LayerNorm - norm_class = RMSNorm if use_rmsnorm else norm_class - norm_fn = partial(norm_class, dim) - - norm_fn = nn.Identity if use_rezero else norm_fn - branch_fn = Rezero if use_rezero else None - - if cross_attend and not only_cross: - default_block = ("a", "c", "f") - elif cross_attend and only_cross: - default_block = ("c", "f") - else: - default_block = ("a", "f") - - if macaron: - default_block = ("f",) + default_block - - if exists(custom_layers): - layer_types = custom_layers - elif exists(par_ratio): - par_depth = depth * len(default_block) - assert 1 < par_ratio <= par_depth, "par ratio out of range" - default_block = tuple(filter(not_equals("f"), default_block)) - par_attn = par_depth // par_ratio - depth_cut = ( - par_depth * 2 // 3 - ) # 2 / 3 attention layer cutoff suggested by PAR paper - par_width = (depth_cut + depth_cut // par_attn) // par_attn - assert ( - len(default_block) <= par_width - ), "default block is too large for par_ratio" - par_block = default_block + ("f",) * (par_width - len(default_block)) - par_head = par_block * par_attn - layer_types = par_head + ("f",) * (par_depth - len(par_head)) - elif exists(sandwich_coef): - assert ( - sandwich_coef > 0 and sandwich_coef <= depth - ), "sandwich coefficient should be less than the depth" - layer_types = ( - ("a",) * sandwich_coef - + default_block * (depth - sandwich_coef) - + ("f",) * sandwich_coef - ) - else: - layer_types = default_block * depth - - self.layer_types = layer_types - self.num_attn_layers = len(list(filter(equals("a"), layer_types))) - - for layer_type in self.layer_types: - if layer_type == "a": - layer = Attention(dim, heads=heads, causal=causal, **attn_kwargs) - elif layer_type == "c": - layer = Attention(dim, heads=heads, **attn_kwargs) - elif layer_type == "f": - layer = FeedForward(dim, **ff_kwargs) - layer = layer if not macaron else Scale(0.5, layer) - else: - raise Exception(f"invalid layer type {layer_type}") - - if isinstance(layer, Attention) and exists(branch_fn): - layer = branch_fn(layer) - - if gate_residual: - residual_fn = GRUGating(dim) - else: - residual_fn = Residual() - - self.layers.append(nn.ModuleList([norm_fn(), layer, residual_fn])) - - def forward( - self, - x, - context=None, - mask=None, - context_mask=None, - mems=None, - return_hiddens=False, - **kwargs, - ): - hiddens = [] - intermediates = [] - prev_attn = None - prev_cross_attn = None - - mems = mems.copy() if exists(mems) else [None] * self.num_attn_layers - - for ind, (layer_type, (norm, block, residual_fn)) in enumerate( - zip(self.layer_types, self.layers) - ): - is_last = ind == (len(self.layers) - 1) - - if layer_type == "a": - hiddens.append(x) - layer_mem = mems.pop(0) - - residual = x - - if self.pre_norm: - x = norm(x) - - if layer_type == "a": - out, inter = block( - x, - mask=mask, - sinusoidal_emb=self.pia_pos_emb, - rel_pos=self.rel_pos, - prev_attn=prev_attn, - mem=layer_mem, - ) - elif layer_type == "c": - out, inter = block( - x, - context=context, - mask=mask, - context_mask=context_mask, - prev_attn=prev_cross_attn, - ) - elif layer_type == "f": - out = block(x) - - x = residual_fn(out, residual) - - if layer_type in ("a", "c"): - intermediates.append(inter) - - if layer_type == "a" and self.residual_attn: - prev_attn = inter.pre_softmax_attn - elif layer_type == "c" and self.cross_residual_attn: - prev_cross_attn = inter.pre_softmax_attn - - if not self.pre_norm and not is_last: - x = norm(x) - - if return_hiddens: - intermediates = LayerIntermediates( - hiddens=hiddens, attn_intermediates=intermediates - ) - - return x, intermediates - - return x - - -class Encoder(AttentionLayers): - def __init__(self, **kwargs): - assert "causal" not in kwargs, "cannot set causality on encoder" - super().__init__(causal=False, **kwargs) - - -class TransformerWrapper(nn.Module): - def __init__( - self, - *, - num_tokens, - max_seq_len, - attn_layers, - emb_dim=None, - max_mem_len=0.0, - emb_dropout=0.0, - num_memory_tokens=None, - tie_embedding=False, - use_pos_emb=True, - ): - super().__init__() - assert isinstance( - attn_layers, AttentionLayers - ), "attention layers must be one of Encoder or Decoder" - - dim = attn_layers.dim - emb_dim = default(emb_dim, dim) - - self.max_seq_len = max_seq_len - self.max_mem_len = max_mem_len - self.num_tokens = num_tokens - - self.token_emb = nn.Embedding(num_tokens, emb_dim) - self.pos_emb = ( - AbsolutePositionalEmbedding(emb_dim, max_seq_len) - if (use_pos_emb and not attn_layers.has_pos_emb) - else always(0) - ) - self.emb_dropout = nn.Dropout(emb_dropout) - - self.project_emb = nn.Linear(emb_dim, dim) if emb_dim != dim else nn.Identity() - self.attn_layers = attn_layers - self.norm = nn.LayerNorm(dim) - - self.init_() - - self.to_logits = ( - nn.Linear(dim, num_tokens) - if not tie_embedding - else lambda t: t @ self.token_emb.weight.t() - ) - - # memory tokens (like [cls]) from Memory Transformers paper - num_memory_tokens = default(num_memory_tokens, 0) - self.num_memory_tokens = num_memory_tokens - if num_memory_tokens > 0: - self.memory_tokens = nn.Parameter(torch.randn(num_memory_tokens, dim)) - - # let funnel encoder know number of memory tokens, if specified - if hasattr(attn_layers, "num_memory_tokens"): - attn_layers.num_memory_tokens = num_memory_tokens - - def init_(self): - nn.init.normal_(self.token_emb.weight, std=0.02) - - def forward( - self, - x, - return_embeddings=False, - mask=None, - return_mems=False, - return_attn=False, - mems=None, - embedding_manager=None, - **kwargs, - ): - b, n, device, num_mem = *x.shape, x.device, self.num_memory_tokens - - embedded_x = self.token_emb(x) - - if embedding_manager: - x = embedding_manager(x, embedded_x) - else: - x = embedded_x - - x = x + self.pos_emb(x) - x = self.emb_dropout(x) - - x = self.project_emb(x) - - if num_mem > 0: - mem = repeat(self.memory_tokens, "n d -> b n d", b=b) - x = torch.cat((mem, x), dim=1) - - # auto-handle masking after appending memory tokens - if exists(mask): - mask = F.pad(mask, (num_mem, 0), value=True) - - x, intermediates = self.attn_layers( - x, mask=mask, mems=mems, return_hiddens=True, **kwargs - ) - x = self.norm(x) - - mem, x = x[:, :num_mem], x[:, num_mem:] - - out = self.to_logits(x) if not return_embeddings else x - - if return_mems: - hiddens = intermediates.hiddens - new_mems = ( - list( - map( - lambda pair: torch.cat(pair, dim=-2), - zip(mems, hiddens), - ) - ) - if exists(mems) - else hiddens - ) - new_mems = list( - map(lambda t: t[..., -self.max_mem_len :, :].detach(), new_mems) - ) - return out, new_mems - - if return_attn: - attn_maps = list( - map( - lambda t: t.post_softmax_attn, - intermediates.attn_intermediates, - ) - ) - return out, attn_maps - - return out diff --git a/pyproject.toml b/pyproject.toml index 562a1bb398..a961b2a0fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,37 +52,25 @@ dependencies = [ "flask_cors==3.0.10", "flask_socketio==5.3.0", "flaskwebgui==1.0.3", - "getpass_asterisk", "gfpgan==1.3.8", "huggingface-hub>=0.11.1", - "imageio", - "imageio-ffmpeg", - "k-diffusion", # replacing "k-diffusion @ https://github.com/Birch-san/k-diffusion/archive/refs/heads/mps.zip", - "kornia", "npyscreen", "numpy<1.24", "omegaconf", "opencv-python", "picklescan", "pillow", - "pudb", "prompt-toolkit", "pypatchmatch", "pyreadline3", - "python-multipart==0.0.5", - "pytorch-lightning==1.7.7", "realesrgan", "requests==2.28.2", "safetensors", "scikit-image>=0.19", "send2trash", - "streamlit", - "taming-transformers-rom1504", "test-tube>=0.7.5", "torch>=1.13.1", - "torch-fidelity", "torchvision>=0.14.1", - "torchmetrics", "transformers~=4.25", "uvicorn[standard]==0.20.0", "windows-curses; sys_platform=='win32'", @@ -95,6 +83,9 @@ dependencies = [ "mkdocs-git-revision-date-localized-plugin", "mkdocs-redirects==1.2.0", ] +"dev" = [ + "pudb", +] "test" = ["pytest>6.0.0", "pytest-cov"] "xformers" = [ "xformers~=0.0.16; sys_platform!='darwin'", @@ -132,7 +123,7 @@ version = { attr = "invokeai.version.__version__" } [tool.setuptools.packages.find] "where" = ["."] "include" = [ - "invokeai.assets.web*","invokeai.version*", + "invokeai.assets.web*","invokeai.version*", "invokeai.generator*","invokeai.backend*", "invokeai.frontend*", "invokeai.frontend.web.dist*", "invokeai.configs*", From 618e3e5e9119dccbb3ad0593f8238fba7e6169be Mon Sep 17 00:00:00 2001 From: Kevin Turner <83819+keturn@users.noreply.github.com> Date: Sat, 4 Mar 2023 18:37:39 -0800 Subject: [PATCH 10/24] deps: add explicitly dependency to `rich` was previously pulled in as a secondary dependency of something else. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a961b2a0fe..0a4ec56d34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,6 +65,7 @@ dependencies = [ "pyreadline3", "realesrgan", "requests==2.28.2", + "rich~=13.3", "safetensors", "scikit-image>=0.19", "send2trash", From 545d8968fd7f8c7cab827bcedb09221092840e85 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Sat, 4 Mar 2023 10:41:46 +1100 Subject: [PATCH 11/24] feat(ui): migrated theming to chakra build(ui): fix husky path build(ui): fix hmr issue, remove emotion cache build(ui): clean up package.json build(ui): update gh action and npm scripts feat(ui): wip port lightbox to chakra theme feat(ui): wip use chakra theme tokens feat(ui): Add status text to main loading spinner feat(ui): wip chakra theme tweaking feat(ui): simply iaisimplemenu button feat(ui): wip chakra theming feat(ui): Theme Management feat(ui): Add Ocean Blue Theme feat(ui): wip lightbox fix(ui): fix lightbox mouse feat(ui): set default theme variants feat(ui): model manager chakra theme chore(ui): lint feat(ui): remove last scss feat(ui): fix switch theme feat(ui): Theme Cleanup feat(ui): Stylize Search Models Found List feat(ui): hide scrollbars feat(ui): fix floating button position feat(ui): Scrollbar Styling fix broken scripts This PR fixes the following scripts: 1) Scripts that can be executed within the repo's scripts directory. Note that these are for development testing and are not intended to be exposed to the user. configure_invokeai.py - configuration dream.py - the legacy CLI images2prompt.py - legacy "dream prompt" retriever invoke-new.py - new nodes-based CLI invoke.py - the legacy CLI under another name make_models_markdown_table.py - a utility used during the release/doc process pypi_helper.py - another utility used during the release process sd-metadata.py - retrieve JSON-formatted metadata from a PNG file 2) Scripts that are installed by pip install. They get placed into the venv's PATH and are intended to be the official entry points: invokeai-node-cli - new nodes-based CLI invokeai-node-web - new nodes-based web server invokeai - legacy CLI invokeai-configure - install time configuration script invokeai-merge - model merging script invokeai-ti - textual inversion script invokeai-model-install - model installer invokeai-update - update script invokeai-metadata" - retrieve JSON-formatted metadata from PNG files protect invocations against black autoformatting deps: upgrade to diffusers 0.14, safetensors 0.3, transformers 4.26, accelerate 0.16 --- .github/workflows/lint-frontend.yml | 8 +- invokeai/app/api/dependencies.py | 2 +- invokeai/app/api_app.py | 2 +- invokeai/app/cli_app.py | 2 +- invokeai/app/invocations/baseinvocation.py | 4 +- invokeai/app/invocations/cv.py | 7 +- invokeai/app/invocations/image.py | 73 +- invokeai/app/services/generate_initializer.py | 2 +- invokeai/backend/__init__.py | 2 + invokeai/frontend/CLI/sd_metadata.py | 30 + invokeai/frontend/web/.eslintignore | 3 + invokeai/frontend/web/.eslintrc.js | 5 +- invokeai/frontend/web/.husky/pre-commit | 2 +- invokeai/frontend/web/.prettierignore | 1 + invokeai/frontend/web/.prettierrc.js | 1 + invokeai/frontend/web/__init__.py | 3 - .../web/dist/assets/Inter-Bold-790c108b.ttf | Bin 316100 -> 0 bytes .../web/dist/assets/Inter-b9a8e5e2.ttf | Bin 803384 -> 0 bytes .../web/dist/assets/index-0e39fbc4.js | 624 ------- .../web/dist/assets/index-14cb2922.css | 1 - .../web/dist/assets/index-1ee4e1fb.css | 1 + .../web/dist/assets/index-4543bfbe.js | 624 +++++++ .../assets/inter-all-100-normal-2596a8cd.woff | Bin 0 -> 131292 bytes .../assets/inter-all-200-normal-34e907e6.woff | Bin 0 -> 137016 bytes .../assets/inter-all-300-normal-e375e256.woff | Bin 0 -> 136800 bytes .../assets/inter-all-400-normal-f824029b.woff | Bin 0 -> 129252 bytes .../assets/inter-all-500-normal-94e08ad8.woff | Bin 0 -> 138892 bytes .../assets/inter-all-600-normal-ba29c057.woff | Bin 0 -> 140048 bytes .../assets/inter-all-700-normal-9d318ccb.woff | Bin 0 -> 140344 bytes .../assets/inter-all-800-normal-ab496fbe.woff | Bin 0 -> 140096 bytes .../assets/inter-all-900-normal-50daf4f1.woff | Bin 0 -> 135644 bytes .../inter-cyrillic-100-normal-9747741a.woff2 | Bin 0 -> 6432 bytes .../inter-cyrillic-200-normal-87d2e1ba.woff2 | Bin 0 -> 6680 bytes .../inter-cyrillic-300-normal-cff08766.woff2 | Bin 0 -> 6632 bytes .../inter-cyrillic-400-normal-e9493683.woff2 | Bin 0 -> 6304 bytes .../inter-cyrillic-500-normal-f6bd191e.woff2 | Bin 0 -> 6724 bytes .../inter-cyrillic-600-normal-9bc492f5.woff2 | Bin 0 -> 6804 bytes .../inter-cyrillic-700-normal-f6c6dcaf.woff2 | Bin 0 -> 6772 bytes .../inter-cyrillic-800-normal-82994ee8.woff2 | Bin 0 -> 6836 bytes .../inter-cyrillic-900-normal-768011c3.woff2 | Bin 0 -> 6616 bytes ...ter-cyrillic-ext-100-normal-a1f4d02d.woff2 | Bin 0 -> 9336 bytes ...ter-cyrillic-ext-200-normal-82562199.woff2 | Bin 0 -> 10040 bytes ...ter-cyrillic-ext-300-normal-66b2369e.woff2 | Bin 0 -> 9948 bytes ...ter-cyrillic-ext-400-normal-f7666a51.woff2 | Bin 0 -> 9344 bytes ...ter-cyrillic-ext-500-normal-8b5f6999.woff2 | Bin 0 -> 10184 bytes ...ter-cyrillic-ext-600-normal-2ea11f8c.woff2 | Bin 0 -> 10264 bytes ...ter-cyrillic-ext-700-normal-b7bb121f.woff2 | Bin 0 -> 10256 bytes ...ter-cyrillic-ext-800-normal-f15d8f83.woff2 | Bin 0 -> 10352 bytes ...ter-cyrillic-ext-900-normal-b1c13874.woff2 | Bin 0 -> 10076 bytes .../inter-greek-100-normal-a44b9fc9.woff2 | Bin 0 -> 8152 bytes .../inter-greek-200-normal-9575e0f8.woff2 | Bin 0 -> 8356 bytes .../inter-greek-300-normal-d0749e19.woff2 | Bin 0 -> 8308 bytes .../inter-greek-400-normal-2f2d421a.woff2 | Bin 0 -> 7936 bytes .../inter-greek-500-normal-ddbf6a70.woff2 | Bin 0 -> 8400 bytes .../inter-greek-600-normal-4591e350.woff2 | Bin 0 -> 8476 bytes .../inter-greek-700-normal-9e078f49.woff2 | Bin 0 -> 8436 bytes .../inter-greek-800-normal-fb5de277.woff2 | Bin 0 -> 8464 bytes .../inter-greek-900-normal-ffa82654.woff2 | Bin 0 -> 8400 bytes .../inter-greek-ext-100-normal-71976b96.woff2 | Bin 0 -> 5012 bytes .../inter-greek-ext-200-normal-45dafb12.woff2 | Bin 0 -> 5256 bytes .../inter-greek-ext-300-normal-09d21325.woff2 | Bin 0 -> 5264 bytes .../inter-greek-ext-400-normal-d3e30cde.woff2 | Bin 0 -> 4760 bytes .../inter-greek-ext-500-normal-528b79aa.woff2 | Bin 0 -> 5188 bytes .../inter-greek-ext-600-normal-c37a11b3.woff2 | Bin 0 -> 5200 bytes .../inter-greek-ext-700-normal-22174f43.woff2 | Bin 0 -> 5212 bytes .../inter-greek-ext-800-normal-bddb6f8e.woff2 | Bin 0 -> 5200 bytes .../inter-greek-ext-900-normal-bebcb6fc.woff2 | Bin 0 -> 5032 bytes .../inter-latin-100-normal-61cac109.woff2 | Bin 0 -> 16548 bytes .../inter-latin-200-normal-74885a0c.woff2 | Bin 0 -> 17344 bytes .../inter-latin-300-normal-6b2cee46.woff2 | Bin 0 -> 17328 bytes .../inter-latin-400-normal-0364d368.woff2 | Bin 0 -> 16708 bytes .../inter-latin-500-normal-d5333670.woff2 | Bin 0 -> 17552 bytes .../inter-latin-600-normal-048d136d.woff2 | Bin 0 -> 17660 bytes .../inter-latin-700-normal-ced2d8e0.woff2 | Bin 0 -> 17784 bytes .../inter-latin-800-normal-a51ac27d.woff2 | Bin 0 -> 17764 bytes .../inter-latin-900-normal-f2db7f82.woff2 | Bin 0 -> 17176 bytes .../inter-latin-ext-100-normal-d3be20b3.woff2 | Bin 0 -> 20400 bytes .../inter-latin-ext-200-normal-4336e69d.woff2 | Bin 0 -> 21960 bytes .../inter-latin-ext-300-normal-34623012.woff2 | Bin 0 -> 21848 bytes .../inter-latin-ext-400-normal-64a98f58.woff2 | Bin 0 -> 20432 bytes .../inter-latin-ext-500-normal-4fba9ae6.woff2 | Bin 0 -> 22336 bytes .../inter-latin-ext-600-normal-cc23fe6f.woff2 | Bin 0 -> 22444 bytes .../inter-latin-ext-700-normal-1cc47d25.woff2 | Bin 0 -> 22624 bytes .../inter-latin-ext-800-normal-b6167428.woff2 | Bin 0 -> 22640 bytes .../inter-latin-ext-900-normal-3cff82a5.woff2 | Bin 0 -> 21768 bytes invokeai/frontend/web/dist/index.html | 4 +- invokeai/frontend/web/dist/locales/es.json | 115 +- invokeai/frontend/web/dist/locales/nl.json | 100 +- invokeai/frontend/web/dist/locales/pt_BR.json | 76 +- .../dist/locales/{zh_Hant.json => ro.json} | 0 invokeai/frontend/web/index.html | 9 +- invokeai/frontend/web/package.json | 70 +- .../web/patches/@chakra-ui+cli+2.3.0.patch | 14 + invokeai/frontend/web/public/locales/en.json | 18 +- .../web/{dist => public}/locales/he.json | 0 .../web/{dist => public}/locales/ko.json | 0 invokeai/frontend/web/public/locales/nl.json | 100 +- .../web/{dist => public}/locales/pt.json | 0 .../frontend/web/public/locales/zh_Hant.json | 1 + invokeai/frontend/web/src/Loading.tsx | 35 +- invokeai/frontend/web/src/app/App.scss | 21 - invokeai/frontend/web/src/app/App.tsx | 20 +- .../web/src/app/ThemeLocaleProvider.tsx | 46 + .../web/src/app/socketio/listeners.ts | 6 +- invokeai/frontend/web/src/app/theme.ts | 52 - .../web/src/assets/fonts/Inter/Inter-Bold.ttf | Bin 316100 -> 0 bytes .../web/src/assets/fonts/Inter/Inter.ttf | Bin 803384 -> 0 bytes .../src/common/components/GuidePopover.scss | 20 - .../src/common/components/GuidePopover.tsx | 6 +- .../src/common/components/IAIAlertDialog.tsx | 16 +- .../web/src/common/components/IAIButton.scss | 8 - .../web/src/common/components/IAIButton.tsx | 10 +- .../src/common/components/IAICheckbox.scss | 26 - .../web/src/common/components/IAICheckbox.tsx | 5 +- .../src/common/components/IAIColorPicker.scss | 8 - .../src/common/components/IAIColorPicker.tsx | 29 +- .../src/common/components/IAIIconButton.scss | 82 - .../src/common/components/IAIIconButton.tsx | 19 +- .../web/src/common/components/IAIInput.scss | 33 - .../web/src/common/components/IAIInput.tsx | 34 +- .../src/common/components/IAINumberInput.scss | 66 - .../src/common/components/IAINumberInput.tsx | 50 +- .../web/src/common/components/IAIPopover.scss | 12 - .../web/src/common/components/IAIPopover.tsx | 9 +- .../web/src/common/components/IAISelect.scss | 31 - .../web/src/common/components/IAISelect.tsx | 43 +- .../src/common/components/IAISimpleMenu.tsx | 43 +- .../web/src/common/components/IAISlider.scss | 60 - .../web/src/common/components/IAISlider.tsx | 51 +- .../web/src/common/components/IAISwitch.scss | 24 - .../web/src/common/components/IAISwitch.tsx | 19 +- .../common/components/ImageUploadOverlay.tsx | 51 +- .../src/common/components/ImageUploader.scss | 74 - .../src/common/components/ImageUploader.tsx | 6 +- .../common/components/ImageUploaderButton.tsx | 41 +- .../web/src/common/components/SubItemHook.tsx | 55 - .../components/WorkInProgress/NodesWIP.tsx | 24 +- .../WorkInProgress/PostProcessingWIP.tsx | 28 +- .../components/WorkInProgress/Training.tsx | 30 +- .../WorkInProgress/WorkInProgress.scss | 24 - .../WorkInProgress/WorkInProgress.tsx | 24 + .../common/components/radix-ui/IAISlider.scss | 62 - .../common/components/radix-ui/IAISlider.tsx | 44 - .../components/radix-ui/IAITooltip.scss | 8 - .../common/components/radix-ui/IAITooltip.tsx | 40 - .../web/src/common/icons/ImageToImageIcon.tsx | 3 + .../web/src/common/icons/NodesIcon.tsx | 3 + .../src/common/icons/PostprocessingIcon.tsx | 3 + .../web/src/common/icons/TextToImageIcon.tsx | 3 + .../web/src/common/icons/TrainingIcon.tsx | 3 + .../src/common/icons/UnifiedCanvasIcon.tsx | 3 + .../src/common/util/parameterTranslation.ts | 12 +- .../features/canvas/components/IAICanvas.tsx | 35 +- .../canvas/components/IAICanvasGrid.tsx | 12 +- .../canvas/components/IAICanvasResizer.tsx | 16 +- .../IAICanvasStagingAreaToolbar.tsx | 15 +- .../canvas/components/IAICanvasStatusText.tsx | 71 +- .../IAICanvasStatusTextCursorPos.tsx | 7 +- .../IAICanvasToolbar/IAICanvasMaskOptions.tsx | 12 +- .../IAICanvasSettingsButtonPopover.tsx | 2 +- .../IAICanvasToolChooserOptions.tsx | 18 +- .../IAICanvasToolbar/IAICanvasToolbar.tsx | 19 +- .../components/CurrentImageButtons.scss | 32 - .../components/CurrentImageButtons.tsx | 51 +- .../components/CurrentImageDisplay.scss | 83 - .../components/CurrentImageDisplay.tsx | 48 +- .../components/CurrentImagePreview.tsx | 122 +- .../gallery/components/DeleteImageModal.tsx | 36 +- .../gallery/components/HoverableImage.scss | 100 -- .../gallery/components/HoverableImage.tsx | 192 ++- .../gallery/components/ImageGallery.css | 35 + .../gallery/components/ImageGallery.scss | 187 --- .../gallery/components/ImageGallery.tsx | 290 ++-- .../ImageMetadataViewer.scss | 23 - .../ImageMetadataViewer.tsx | 43 +- .../components/NextPrevImageButtons.tsx | 130 ++ .../gallery/store/gallerySelectors.ts | 2 - .../features/gallery/store/gallerySlice.ts | 6 - .../lightbox/components/Lightbox.scss | 89 - .../features/lightbox/components/Lightbox.tsx | 225 ++- .../lightbox/components/ReactPanZoom.tsx | 135 -- .../components/ReactPanZoomButtons.tsx | 94 ++ .../lightbox/components/ReactPanZoomImage.tsx | 45 + .../lightbox/hooks/useImageTransform.ts | 50 + .../AccordionItems/AdvancedSettings.scss | 54 - .../AccordionItems/InvokeAccordionItem.tsx | 12 +- .../BoundingBox/BoundingBoxSettings.scss | 53 - .../BoundingBox/BoundingBoxSettings.tsx | 10 +- .../Canvas/InfillAndScalingSettings.tsx | 9 +- .../Canvas/SeamCorrection/SeamBlur.tsx | 1 - .../SeamCorrection/SeamCorrectionSettings.tsx | 6 +- .../Canvas/SeamCorrection/SeamSize.tsx | 1 - .../Canvas/SeamCorrection/SeamSteps.tsx | 1 - .../Canvas/SeamCorrection/SeamStrength.tsx | 1 - .../FaceRestore/FaceRestoreSettings.tsx | 6 +- .../ImageToImage/ImageToImageStrength.tsx | 6 +- .../Output/HiresSettings.tsx | 61 +- .../Output/ImageToImageOutputSettings.tsx | 6 +- .../Output/OutputSettings.tsx | 11 +- .../Output/SeamlessSettings.tsx | 15 +- .../Output/SymmetrySettings.tsx | 35 +- .../AdvancedParameters/Seed/Seed.tsx | 35 +- .../AdvancedParameters/Seed/SeedSettings.tsx | 20 +- .../AdvancedParameters/Seed/Threshold.tsx | 1 - .../Upscale/UpscaleSettings.tsx | 6 +- .../Variations/VariationsSettings.tsx | 6 +- .../MainParameters/MainCFGScale.tsx | 5 +- .../components/MainParameters/MainHeight.tsx | 4 - .../MainParameters/MainIterations.tsx | 6 +- .../MainParameters/MainParameters.scss | 35 - .../MainParameters/MainParameters.tsx | 52 - .../components/MainParameters/MainSampler.tsx | 3 +- .../MainParameters/MainSettings.tsx | 39 + .../components/MainParameters/MainSteps.tsx | 19 +- .../components/MainParameters/MainWidth.tsx | 4 - .../components/ParametersAccordion.tsx | 5 +- .../ProcessButtons/CancelButton.tsx | 26 +- .../ProcessButtons/InvokeButton.tsx | 16 +- .../components/ProcessButtons/Loopback.tsx | 2 - .../ProcessButtons/ProcessButtons.scss | 56 - .../ProcessButtons/ProcessButtons.tsx | 5 +- .../PromptInput/NegativePromptInput.tsx | 12 +- .../components/PromptInput/PromptInput.scss | 34 - .../components/PromptInput/PromptInput.tsx | 12 +- .../parameters/store/generationSlice.ts | 44 +- .../features/system/components/Console.scss | 75 - .../features/system/components/Console.tsx | 66 +- .../components/HotkeysModal/HotkeysModal.scss | 87 - .../components/HotkeysModal/HotkeysModal.tsx | 97 +- .../HotkeysModal/HotkeysModalItem.tsx | 40 +- .../components/InvokeAILogoComponent.tsx | 30 + .../system/components/LanguagePicker.tsx | 17 +- .../src/features/system/components/Modal.scss | 11 - .../ModelManager/AddCheckpointModel.tsx | 8 +- .../ModelManager/AddDiffusersModel.tsx | 34 +- .../components/ModelManager/AddModel.scss | 16 - .../components/ModelManager/AddModel.tsx | 27 +- .../ModelManager/CheckpointModelEdit.tsx | 22 +- .../ModelManager/DiffusersModelEdit.tsx | 22 +- .../components/ModelManager/MergeModels.tsx | 370 ++-- .../components/ModelManager/ModelConvert.tsx | 14 +- .../components/ModelManager/ModelList.tsx | 75 +- .../components/ModelManager/ModelListItem.tsx | 44 +- .../ModelManager/ModelManagerModal.tsx | 29 +- .../components/ModelManager/SearchModels.tsx | 228 ++- .../system/components/ModelSelect.tsx | 4 +- .../system/components/ProgressBar.scss | 22 - .../system/components/ProgressBar.tsx | 4 +- .../SettingsModal/SettingsModal.scss | 43 - .../SettingsModal/SettingsModal.tsx | 143 +- .../system/components/SiteHeader.scss | 31 - .../features/system/components/SiteHeader.tsx | 33 +- .../system/components/StatusIndicator.scss | 19 - .../system/components/StatusIndicator.tsx | 25 +- .../system/components/ThemeChanger.tsx | 19 +- .../ui/components/FloatingButton.scss | 55 - .../ui/components/FloatingGalleryButton.tsx | 14 +- .../FloatingParametersPanelButtons.tsx | 24 +- .../components/ImageToImage/ImageToImage.scss | 50 - .../ImageToImage/ImageToImageDisplay.tsx | 40 +- .../ImageToImage/ImageToImageOptions.tsx | 26 - .../ImageToImage/ImageToImagePanel.tsx | 18 +- .../ImageToImage/ImageToImageSettings.tsx | 15 + .../ImageToImage/InitImagePreview.tsx | 45 +- .../ui/components/InvokeParametersPanel.css | 35 + .../ui/components/InvokeParametersPanel.scss | 90 - .../ui/components/InvokeParametersPanel.tsx | 101 +- .../features/ui/components/InvokeTabs.scss | 46 - .../src/features/ui/components/InvokeTabs.tsx | 48 +- .../ui/components/InvokeWorkarea.scss | 71 - .../features/ui/components/InvokeWorkarea.tsx | 57 +- .../components/TextToImage/TextToImage.scss | 6 - .../TextToImage/TextToImageDisplay.tsx | 16 +- .../TextToImage/TextToImagePanel.tsx | 10 +- .../UnifiedCanvas/CanvasWorkarea.scss | 103 -- .../UnifiedCanvasDisplayBeta.tsx | 19 +- .../UnifiedCanvasBaseBrushSettings.tsx | 2 +- .../UnifiedCanvasBrushSettings.tsx | 2 +- .../UnifiedCanvasBrushSize.tsx | 1 - .../UnifiedCanvasColorPicker.tsx | 32 +- .../UnifiedCanvasMaskBrushSettings.tsx | 2 +- .../UnifiedCanvasMoveSettings.tsx | 2 +- .../UnifiedCanvasSettings.tsx | 2 +- .../UnifiedCanvasToolSettingsBeta.tsx | 2 +- .../UnifiedCanvasMoveTool.tsx | 2 +- .../UnifiedCanvasProcessingButtons.tsx | 2 +- .../UnifiedCanvasResetCanvas.tsx | 2 +- .../UnifiedCanvasToolSelect.tsx | 8 +- .../UnifiedCanvasToolbarBeta.tsx | 12 +- .../UnifiedCanvas/UnifiedCanvasDisplay.tsx | 46 +- .../UnifiedCanvas/UnifiedCanvasPanel.tsx | 30 +- .../UnifiedCanvas/UnifiedCanvasWorkarea.tsx | 5 +- .../web/src/features/ui/store/uiSlice.ts | 5 - .../web/src/features/ui/store/uiTypes.ts | 1 - invokeai/frontend/web/src/i18.d.ts | 5 + invokeai/frontend/web/src/main.tsx | 38 +- .../web/src/styles/Mixins/Buttons.scss | 52 +- .../web/src/styles/Mixins/_Responsive.scss | 314 ++-- .../web/src/styles/Themes/_Colors_Dark.scss | 2 +- .../web/src/styles/Themes/_Colors_Light.scss | 216 +-- .../frontend/web/src/styles/_Animations.scss | 20 - invokeai/frontend/web/src/styles/_Fonts.scss | 15 - invokeai/frontend/web/src/styles/_Misc.scss | 45 - invokeai/frontend/web/src/styles/index.scss | 93 -- .../frontend/web/src/theme/colors/greenTea.ts | 10 + .../frontend/web/src/theme/colors/invokeAI.ts | 10 + .../web/src/theme/colors/lightTheme.ts | 10 + .../web/src/theme/colors/oceanBlue.ts | 10 + .../web/src/theme/components/accordion.ts | 63 + .../web/src/theme/components/button.ts | 58 + .../web/src/theme/components/checkbox.ts | 65 + .../web/src/theme/components/formLabel.ts | 27 + .../web/src/theme/components/input.ts | 22 + .../frontend/web/src/theme/components/menu.ts | 44 + .../web/src/theme/components/modal.ts | 55 + .../web/src/theme/components/numberInput.ts | 71 + .../web/src/theme/components/popover.ts | 42 + .../web/src/theme/components/progress.ts | 40 + .../web/src/theme/components/scrollbar.ts | 31 + .../web/src/theme/components/select.ts | 35 + .../web/src/theme/components/slider.ts | 53 + .../web/src/theme/components/switch.ts | 47 + .../frontend/web/src/theme/components/tabs.ts | 63 + .../frontend/web/src/theme/components/text.ts | 12 + .../web/src/theme/components/textarea.ts | 14 + invokeai/frontend/web/src/theme/theme.ts | 80 + .../frontend/web/src/theme/util/constants.ts | 19 + .../src/theme/util/generateColorPalette.ts | 80 + .../src/theme/util/getInputOutlineStyles.ts | 40 + invokeai/frontend/web/stats.html | 2 +- invokeai/frontend/web/yarn.lock | 1484 +++++++++-------- pyproject.toml | 15 +- scripts/configure_invokeai.py | 4 +- scripts/dream.py | 6 +- scripts/images2prompt.py | 2 +- scripts/invoke-new.py | 6 +- scripts/invoke.py | 5 +- scripts/legacy_api.py | 681 -------- scripts/pypi_helper.py | 2 + scripts/sd-metadata.py | 2 +- 340 files changed, 5938 insertions(+), 7063 deletions(-) create mode 100644 invokeai/frontend/CLI/sd_metadata.py delete mode 100644 invokeai/frontend/web/__init__.py delete mode 100644 invokeai/frontend/web/dist/assets/Inter-Bold-790c108b.ttf delete mode 100644 invokeai/frontend/web/dist/assets/Inter-b9a8e5e2.ttf delete mode 100644 invokeai/frontend/web/dist/assets/index-0e39fbc4.js delete mode 100644 invokeai/frontend/web/dist/assets/index-14cb2922.css create mode 100644 invokeai/frontend/web/dist/assets/index-1ee4e1fb.css create mode 100644 invokeai/frontend/web/dist/assets/index-4543bfbe.js create mode 100644 invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-300-normal-e375e256.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-600-normal-ba29c057.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-700-normal-9d318ccb.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-100-normal-a1f4d02d.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-400-normal-f7666a51.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-700-normal-b7bb121f.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-400-normal-2f2d421a.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-500-normal-ddbf6a70.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-600-normal-4591e350.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-800-normal-fb5de277.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-900-normal-ffa82654.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-100-normal-71976b96.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-400-normal-d3e30cde.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-500-normal-528b79aa.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-700-normal-22174f43.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-200-normal-74885a0c.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-300-normal-6b2cee46.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-400-normal-0364d368.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-600-normal-048d136d.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-800-normal-a51ac27d.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-100-normal-d3be20b3.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-600-normal-cc23fe6f.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-700-normal-1cc47d25.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-800-normal-b6167428.woff2 create mode 100644 invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 rename invokeai/frontend/web/dist/locales/{zh_Hant.json => ro.json} (100%) create mode 100644 invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch rename invokeai/frontend/web/{dist => public}/locales/he.json (100%) rename invokeai/frontend/web/{dist => public}/locales/ko.json (100%) rename invokeai/frontend/web/{dist => public}/locales/pt.json (100%) create mode 100644 invokeai/frontend/web/public/locales/zh_Hant.json delete mode 100644 invokeai/frontend/web/src/app/App.scss create mode 100644 invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx delete mode 100644 invokeai/frontend/web/src/app/theme.ts delete mode 100644 invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf delete mode 100644 invokeai/frontend/web/src/assets/fonts/Inter/Inter.ttf delete mode 100644 invokeai/frontend/web/src/common/components/GuidePopover.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAIButton.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAICheckbox.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAIColorPicker.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAIIconButton.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAIInput.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAINumberInput.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAIPopover.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAISelect.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAISlider.scss delete mode 100644 invokeai/frontend/web/src/common/components/IAISwitch.scss delete mode 100644 invokeai/frontend/web/src/common/components/ImageUploader.scss delete mode 100644 invokeai/frontend/web/src/common/components/SubItemHook.tsx delete mode 100644 invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss create mode 100644 invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx delete mode 100644 invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss delete mode 100644 invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx delete mode 100644 invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss delete mode 100644 invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx delete mode 100644 invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss delete mode 100644 invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss delete mode 100644 invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss create mode 100644 invokeai/frontend/web/src/features/gallery/components/ImageGallery.css delete mode 100644 invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss delete mode 100644 invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss create mode 100644 invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx delete mode 100644 invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss delete mode 100644 invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx create mode 100644 invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx create mode 100644 invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx create mode 100644 invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts delete mode 100644 invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss delete mode 100644 invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss delete mode 100644 invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss delete mode 100644 invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx create mode 100644 invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx delete mode 100644 invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss delete mode 100644 invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/Console.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss create mode 100644 invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx delete mode 100644 invokeai/frontend/web/src/features/system/components/Modal.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/ProgressBar.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/SiteHeader.scss delete mode 100644 invokeai/frontend/web/src/features/system/components/StatusIndicator.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/FloatingButton.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx create mode 100644 invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx create mode 100644 invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css delete mode 100644 invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss delete mode 100644 invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss delete mode 100644 invokeai/frontend/web/src/styles/_Animations.scss delete mode 100644 invokeai/frontend/web/src/styles/_Fonts.scss delete mode 100644 invokeai/frontend/web/src/styles/_Misc.scss delete mode 100644 invokeai/frontend/web/src/styles/index.scss create mode 100644 invokeai/frontend/web/src/theme/colors/greenTea.ts create mode 100644 invokeai/frontend/web/src/theme/colors/invokeAI.ts create mode 100644 invokeai/frontend/web/src/theme/colors/lightTheme.ts create mode 100644 invokeai/frontend/web/src/theme/colors/oceanBlue.ts create mode 100644 invokeai/frontend/web/src/theme/components/accordion.ts create mode 100644 invokeai/frontend/web/src/theme/components/button.ts create mode 100644 invokeai/frontend/web/src/theme/components/checkbox.ts create mode 100644 invokeai/frontend/web/src/theme/components/formLabel.ts create mode 100644 invokeai/frontend/web/src/theme/components/input.ts create mode 100644 invokeai/frontend/web/src/theme/components/menu.ts create mode 100644 invokeai/frontend/web/src/theme/components/modal.ts create mode 100644 invokeai/frontend/web/src/theme/components/numberInput.ts create mode 100644 invokeai/frontend/web/src/theme/components/popover.ts create mode 100644 invokeai/frontend/web/src/theme/components/progress.ts create mode 100644 invokeai/frontend/web/src/theme/components/scrollbar.ts create mode 100644 invokeai/frontend/web/src/theme/components/select.ts create mode 100644 invokeai/frontend/web/src/theme/components/slider.ts create mode 100644 invokeai/frontend/web/src/theme/components/switch.ts create mode 100644 invokeai/frontend/web/src/theme/components/tabs.ts create mode 100644 invokeai/frontend/web/src/theme/components/text.ts create mode 100644 invokeai/frontend/web/src/theme/components/textarea.ts create mode 100644 invokeai/frontend/web/src/theme/theme.ts create mode 100644 invokeai/frontend/web/src/theme/util/constants.ts create mode 100644 invokeai/frontend/web/src/theme/util/generateColorPalette.ts create mode 100644 invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts mode change 100644 => 100755 scripts/configure_invokeai.py mode change 100644 => 100755 scripts/dream.py mode change 100644 => 100755 scripts/invoke-new.py delete mode 100755 scripts/legacy_api.py mode change 100644 => 100755 scripts/pypi_helper.py diff --git a/.github/workflows/lint-frontend.yml b/.github/workflows/lint-frontend.yml index 68fcc9eaef..3954962d0c 100644 --- a/.github/workflows/lint-frontend.yml +++ b/.github/workflows/lint-frontend.yml @@ -23,7 +23,7 @@ jobs: node-version: '18' - uses: actions/checkout@v3 - run: 'yarn install --frozen-lockfile' - - run: 'yarn tsc' - - run: 'yarn run madge' - - run: 'yarn run lint --max-warnings=0' - - run: 'yarn run prettier --check' + - run: 'yarn run lint:tsc' + - run: 'yarn run lint:madge' + - run: 'yarn run lint:eslint' + - run: 'yarn run lint:prettier' diff --git a/invokeai/app/api/dependencies.py b/invokeai/app/api/dependencies.py index 5ff8f9eef5..271a2e3be3 100644 --- a/invokeai/app/api/dependencies.py +++ b/invokeai/app/api/dependencies.py @@ -3,7 +3,7 @@ import os from argparse import Namespace -from ...globals import Globals +from ...backend import Globals from ..services.generate_initializer import get_generate from ..services.graph import GraphExecutionState from ..services.image_storage import DiskImageStorage diff --git a/invokeai/app/api_app.py b/invokeai/app/api_app.py index 79ba126f8e..fb64ca3b7a 100644 --- a/invokeai/app/api_app.py +++ b/invokeai/app/api_app.py @@ -13,7 +13,7 @@ from fastapi_events.handlers.local import local_handler from fastapi_events.middleware import EventHandlerASGIMiddleware from pydantic.schema import schema -from ..args import Args +from ..backend import Args from .api.dependencies import ApiDependencies from .api.routers import images, sessions from .api.sockets import SocketIO diff --git a/invokeai/app/cli_app.py b/invokeai/app/cli_app.py index 178efc0274..2f20cfde58 100644 --- a/invokeai/app/cli_app.py +++ b/invokeai/app/cli_app.py @@ -18,7 +18,7 @@ from typing import ( from pydantic import BaseModel from pydantic.fields import Field -from ..args import Args +from ..backend import Args from .invocations import * from .invocations.baseinvocation import BaseInvocation from .invocations.image import ImageField diff --git a/invokeai/app/invocations/baseinvocation.py b/invokeai/app/invocations/baseinvocation.py index 82b6743c27..72fe39ed0b 100644 --- a/invokeai/app/invocations/baseinvocation.py +++ b/invokeai/app/invocations/baseinvocation.py @@ -72,5 +72,7 @@ class BaseInvocation(ABC, BaseModel): def invoke(self, context: InvocationContext) -> BaseInvocationOutput: """Invoke with provided context and return outputs.""" pass - + + #fmt: off id: str = Field(description="The id of this node. Must be unique among all nodes.") + #fmt: on diff --git a/invokeai/app/invocations/cv.py b/invokeai/app/invocations/cv.py index ea39a8d8cd..6a2788131b 100644 --- a/invokeai/app/invocations/cv.py +++ b/invokeai/app/invocations/cv.py @@ -14,14 +14,13 @@ from .image import ImageField, ImageOutput class CvInpaintInvocation(BaseInvocation): """Simple inpaint using opencv.""" - + #fmt: off type: Literal["cv_inpaint"] = "cv_inpaint" # Inputs image: ImageField = Field(default=None, description="The image to inpaint") - mask: ImageField = Field( - default=None, description="The mask to use when inpainting" - ) + mask: ImageField = Field(default=None, description="The mask to use when inpainting") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( diff --git a/invokeai/app/invocations/image.py b/invokeai/app/invocations/image.py index 29e1c9e576..7330cd73be 100644 --- a/invokeai/app/invocations/image.py +++ b/invokeai/app/invocations/image.py @@ -23,29 +23,28 @@ class ImageField(BaseModel): class ImageOutput(BaseInvocationOutput): """Base class for invocations that output an image""" - + #fmt: off type: Literal["image"] = "image" - - image: ImageField = Field(default=None, description="The output image") - + image: ImageField = Field(default=None, description="The output image") + #fmt: on class MaskOutput(BaseInvocationOutput): """Base class for invocations that output a mask""" - + #fmt: off type: Literal["mask"] = "mask" - - mask: ImageField = Field(default=None, description="The output mask") - + mask: ImageField = Field(default=None, description="The output mask") + #fomt: on # TODO: this isn't really necessary anymore class LoadImageInvocation(BaseInvocation): """Load an image from a filename and provide it as output.""" - + #fmt: off type: Literal["load_image"] = "load_image" # Inputs image_type: ImageType = Field(description="The type of the image") - image_name: str = Field(description="The name of the image") + image_name: str = Field(description="The name of the image") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: return ImageOutput( @@ -79,17 +78,16 @@ class ShowImageInvocation(BaseInvocation): class CropImageInvocation(BaseInvocation): """Crops an image to a specified box. The box can be outside of the image.""" - + #fmt: off type: Literal["crop"] = "crop" # Inputs image: ImageField = Field(default=None, description="The image to crop") - x: int = Field(default=0, description="The left x coordinate of the crop rectangle") - y: int = Field(default=0, description="The top y coordinate of the crop rectangle") - width: int = Field(default=512, gt=0, description="The width of the crop rectangle") - height: int = Field( - default=512, gt=0, description="The height of the crop rectangle" - ) + x: int = Field(default=0, description="The left x coordinate of the crop rectangle") + y: int = Field(default=0, description="The top y coordinate of the crop rectangle") + width: int = Field(default=512, gt=0, description="The width of the crop rectangle") + height: int = Field(default=512, gt=0, description="The height of the crop rectangle") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( @@ -113,21 +111,16 @@ class CropImageInvocation(BaseInvocation): class PasteImageInvocation(BaseInvocation): """Pastes an image into another image.""" - + #fmt: off type: Literal["paste"] = "paste" # Inputs - base_image: ImageField = Field(default=None, description="The base image") - image: ImageField = Field(default=None, description="The image to paste") - mask: Optional[ImageField] = Field( - default=None, description="The mask to use when pasting" - ) - x: int = Field( - default=0, description="The left x coordinate at which to paste the image" - ) - y: int = Field( - default=0, description="The top y coordinate at which to paste the image" - ) + base_image: ImageField = Field(default=None, description="The base image") + image: ImageField = Field(default=None, description="The image to paste") + mask: Optional[ImageField] = Field(default=None, description="The mask to use when pasting") + x: int = Field(default=0, description="The left x coordinate at which to paste the image") + y: int = Field(default=0, description="The top y coordinate at which to paste the image") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: base_image = context.services.images.get( @@ -168,14 +161,13 @@ class PasteImageInvocation(BaseInvocation): class MaskFromAlphaInvocation(BaseInvocation): """Extracts the alpha channel of an image as a mask.""" - + #fmt: off type: Literal["tomask"] = "tomask" # Inputs - image: ImageField = Field( - default=None, description="The image to create the mask from" - ) - invert: bool = Field(default=False, description="Whether or not to invert the mask") + image: ImageField = Field(default=None, description="The image to create the mask from") + invert: bool = Field(default=False, description="Whether or not to invert the mask") + #fmt: on def invoke(self, context: InvocationContext) -> MaskOutput: image = context.services.images.get( @@ -197,15 +189,15 @@ class MaskFromAlphaInvocation(BaseInvocation): class BlurInvocation(BaseInvocation): """Blurs an image""" + #fmt: off type: Literal["blur"] = "blur" # Inputs image: ImageField = Field(default=None, description="The image to blur") - radius: float = Field(default=8.0, ge=0, description="The blur radius") - blur_type: Literal["gaussian", "box"] = Field( - default="gaussian", description="The type of blur" - ) - + radius: float = Field(default=8.0, ge=0, description="The blur radius") + blur_type: Literal["gaussian", "box"] = Field(default="gaussian", description="The type of blur") + #fmt: on + def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( self.image.image_type, self.image.image_name @@ -230,13 +222,14 @@ class BlurInvocation(BaseInvocation): class LerpInvocation(BaseInvocation): """Linear interpolation of all pixels of an image""" - + #fmt: off type: Literal["lerp"] = "lerp" # Inputs image: ImageField = Field(default=None, description="The image to lerp") min: int = Field(default=0, ge=0, le=255, description="The minimum output value") max: int = Field(default=255, ge=0, le=255, description="The maximum output value") + #fmt: on def invoke(self, context: InvocationContext) -> ImageOutput: image = context.services.images.get( diff --git a/invokeai/app/services/generate_initializer.py b/invokeai/app/services/generate_initializer.py index 4a1ce3ea16..9801909742 100644 --- a/invokeai/app/services/generate_initializer.py +++ b/invokeai/app/services/generate_initializer.py @@ -6,7 +6,7 @@ from argparse import Namespace import invokeai.version from invokeai.backend import Generate, ModelManager -from ...globals import Globals +from ...backend import Globals # TODO: most of this code should be split into individual services as the Generate.py code is deprecated diff --git a/invokeai/backend/__init__.py b/invokeai/backend/__init__.py index 9062fb7d52..06089369c2 100644 --- a/invokeai/backend/__init__.py +++ b/invokeai/backend/__init__.py @@ -3,3 +3,5 @@ Initialization file for invokeai.backend """ from .generate import Generate from .model_management import ModelManager +from .args import Args +from .globals import Globals diff --git a/invokeai/frontend/CLI/sd_metadata.py b/invokeai/frontend/CLI/sd_metadata.py new file mode 100644 index 0000000000..c26907a18e --- /dev/null +++ b/invokeai/frontend/CLI/sd_metadata.py @@ -0,0 +1,30 @@ +''' +This is a modularized version of the sd-metadata.py script, +which retrieves and prints the metadata from a series of generated png files. +''' +import sys +import json +from invokeai.backend.image_util import retrieve_metadata + + +def print_metadata(): + if len(sys.argv) < 2: + print("Usage: file2prompt.py ...") + print("This script opens up the indicated invoke.py-generated PNG file(s) and prints out their metadata.") + exit(-1) + + filenames = sys.argv[1:] + for f in filenames: + try: + metadata = retrieve_metadata(f) + print(f'{f}:\n',json.dumps(metadata['sd-metadata'], indent=4)) + except FileNotFoundError: + sys.stderr.write(f'{f} not found\n') + continue + except PermissionError: + sys.stderr.write(f'{f} could not be opened due to inadequate permissions\n') + continue + +if __name__== '__main__': + print_metadata() + diff --git a/invokeai/frontend/web/.eslintignore b/invokeai/frontend/web/.eslintignore index 0836b8ba21..99d8bab48c 100644 --- a/invokeai/frontend/web/.eslintignore +++ b/invokeai/frontend/web/.eslintignore @@ -3,3 +3,6 @@ dist/ node_modules/ patches/ stats.html +index.html +.yarn/ +*.scss diff --git a/invokeai/frontend/web/.eslintrc.js b/invokeai/frontend/web/.eslintrc.js index 73a11d5c95..489d3cfdff 100644 --- a/invokeai/frontend/web/.eslintrc.js +++ b/invokeai/frontend/web/.eslintrc.js @@ -30,7 +30,10 @@ module.exports = { radix: 'error', 'space-before-blocks': 'error', 'import/prefer-default-export': 'off', - '@typescript-eslint/no-unused-vars': ['warn', { varsIgnorePattern: '_+' }], + '@typescript-eslint/no-unused-vars': [ + 'warn', + { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }, + ], 'prettier/prettier': ['error', { endOfLine: 'auto' }], }, settings: { diff --git a/invokeai/frontend/web/.husky/pre-commit b/invokeai/frontend/web/.husky/pre-commit index f5a410bda9..f89f3ad735 100755 --- a/invokeai/frontend/web/.husky/pre-commit +++ b/invokeai/frontend/web/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -cd invokeai/frontend/ && npm run lint-staged +cd invokeai/frontend/web/ && npm run lint-staged diff --git a/invokeai/frontend/web/.prettierignore b/invokeai/frontend/web/.prettierignore index 0836b8ba21..905f177fde 100644 --- a/invokeai/frontend/web/.prettierignore +++ b/invokeai/frontend/web/.prettierignore @@ -3,3 +3,4 @@ dist/ node_modules/ patches/ stats.html +.yarn/ diff --git a/invokeai/frontend/web/.prettierrc.js b/invokeai/frontend/web/.prettierrc.js index 8d8d1cb49e..bffbd08257 100644 --- a/invokeai/frontend/web/.prettierrc.js +++ b/invokeai/frontend/web/.prettierrc.js @@ -3,6 +3,7 @@ module.exports = { tabWidth: 2, semi: true, singleQuote: true, + endOfLine: 'auto', overrides: [ { files: ['public/locales/*.json'], diff --git a/invokeai/frontend/web/__init__.py b/invokeai/frontend/web/__init__.py deleted file mode 100644 index 010129ece2..0000000000 --- a/invokeai/frontend/web/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -''' -Initialization file for invokeai.frontend.web -''' diff --git a/invokeai/frontend/web/dist/assets/Inter-Bold-790c108b.ttf b/invokeai/frontend/web/dist/assets/Inter-Bold-790c108b.ttf deleted file mode 100644 index 8e82c70d1081e2857ada1b73395d4f42c2e8adc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316100 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�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

6=3(=QnPeuLDdti0n3-y(nd#Q;7fbjCmF@fSxxm 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

k`dD%Oq-FGvtZa7vl=NRMebJriyObJqizc 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

S6KrIX_&}SieWqPQ?{H}=^!9pt?REVP{Y`DH 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%0Dq6U{pGSTfs98Msn(h=U&e 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 z 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%0DT&Wh@IO|A|;!G95D0#OWmq$qIMQoNTay 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

-=$q^cxC1v6c5*~ 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 z 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 >GjZLQF0IXoz#S94~IrS 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

    N6pK-J!%2% z(SAEB@4y?y_{U7%pgwE%?yWh=_Zm(6^9I`pNTlnI=H`8Jf$2;gdwU5%_E*gIu$YhQ zbp=k%LuT8o-90w-#Duwis{I&7L1r%JcJ zLJ?Im#vvn{q6a_=jE6%UjwDkxafE^=j~zSK+Sz$FjNNedOwf@ip>Po^4h#%UK_oX4 zA)8I=?zhoPchO5Z^wLH2(s0>Jp+aye6P%Ur*Ee59lIfz+&4;!Y(kr8rLrDWV4sChP z3?RI5B$C!gdDcS=BW|v_Lj-gB3y4a-IepY~fxGQRKYJ>-xtX^w^Es&++bnO|eryM-^-YXk6Yh)`A4-DOxM}T8dY;sJeTz0jpR_jVxF))W=U?84zOuH%$ zUwqJhmdd0(ejw4Wi`<`q_(N3~Y-eIzS6i3R?49RSwM$i~TosT^K;2z-HBnYM9-QU@PYhSY>7FXkfDcPKtg5S` zb7c&DIhwv4Kwl1^FC|t?`j;vqns_N#h@R6b-hHp|bzsc-wB@e~|H=VBy$aL}XfZ4)b3PGtKUOo?c4eV(z% z(0SY|S51OZ{2vi33?R|CPyvAkzp+U&?}wOGUTe#-fNOAyw?D|5lOG*%DWgWCkphA&9izBf znms8Egit=O4F?Ai(Sou0vS9d=27u7+Lb<3!Et|JGGDgoHj~I^DRgW$=ucX{DI-|MT z?cPBQ?pUWQbJWDU9(?e@;^^|Jcm|b?%C!7r$Bq^RQ{M}+MqM{)(j++Qr;N%<00@Rc z@PvwRThFXeMCEnnnlGLHJ*pO$3`GkYdI--GFHp7C))pLQs%mv{7vXTITk0nm$BwS9 z4wMx|qmnrG(AgeU)sh{Yo0+CrR*3F!C8x2#SW5+t9+o%5sAPHbko^u!H{4$7lV!yc z6SVM|HlBjldbT~RIpZsnjc^3tl$Di+9~-_RGH;cT*J+?C8*Jj1kV3f9Pb(?)8SbAnEcYL$WSKRT;uXsn}zgv3d<_rm~N~z zwwih2GB^B1<8Camr?9|Ejq8kyjg(R&#cacjtBo;{nd+83eqB9t8Y#nSA^fk5LywBG zO-zaWLaban9>)`(nC|&72Hri^Ed>AeY`qbOb`h|d11$O3^ zUjGPN^zhy{cgqTprQ+?i6M>yv!w%6lj)a0$k#bO^%^vsvoUT`!)AcM2sy{R<|K%Kp z^a<0<_L zGLk)){-CU3N%KnbAfdCfy_@6+r)K#5P5!UX!ei7Y+36%)cTTy^=;}BZ!N{X56yr`& zQK-`grI3PrPL{aDJm4Sopa|!kITfHtK)j8(W!ve~t*r=TO)&^k+AZDTF!d7p^|7hS zxzi_GTXj7dwNHk96cNXOQFo}D)$cx@_!+-lX`l-FWzy<5+7|p>!nUx zxcv;PfMjLS(cmTP6EdIPLhf7el!SXK`}N56!5Uj1;&9+XGghU4yA-VWj^O|9qQJ^0 zR|~uXvKlXI$1+?5>|aTW0YFH&resQ*+!FQTUVw&m5i5p7;k#Hd5)?Rq4u!+D#b`bf z1XYG^bJ!DCpWHgMx_ahJeLOx3IVra@9i?k@gu6flJeIokb4Ex&=~|p(^L1HNV<~!d zi*S+_vLKSJKO6@;D9Bq`L5kbemc@kwE_)iKvMID|+8itA3aB6AtKi_f+?U zY1KXJdm3r$@rM@RI?Si#p=p-z&S|)43usda3umxYE;X`f!;A?=E_>W)+-#H^<>q<1 z*|UVLQ-P5#)j{evG*m)f(?YfisWAr+dPM`7b{Q8jFzj&|ylO!(H5|#%@0NmES}r^T zvk-~-cQ?v0 zypBa?Tux43JD4`7eivG|bQLu8cC6_ElBG2%8OO|}Gih-Y^^)eVtoSQifTJWG@@_0s z?wj^14`?T7*wvg%!gu$;AjTY6eQC(y2q6y94XwELyQtU~M(wq^5)Nll2!7>TOQ+ET=WbVghv&{D|5oSD`PUO;Ubt)$4D-6-wcUq4-MLJnv-2W?@M{Y)^c_$C+}z1CrV-blHe+&b z?zI=TQ#P#q!fW;G5pF@$o3UUf3lW%KQZ&0!BoH~?qO2DWEE%V~j+pzYcoIbIViceh zPydY@pZoKBjH37c{M^Qk?}V>lSYHu-NAFKH<9HK-7Z1Q)WL$wtlQT$#YM(+wuD;Z& z?(0gl+Y{ruPx()svnA-OSS_IwV}Y0K`hj*?Gh0Ia0%sMOo#zmpz3lqKx&M*ee{VH* znK`UhRQzfJ1MLfBs*AkJdM0> z6VM-VBW&6N9Uc`%6JLy%I*TimD_QRq_T>sa%4?-$Nxp|9zLzDbEb?3N$_YIIS47p* ze}~!Ca1PQv6P35cgJ`~ZB+#PY!l^M`c~K{s)Bee}eRlhM8+O#|lesWyTYthld(OPH zHC*Itu=71)g;nwNnR6ZsQ8W$u?2tzdwRdIFSM^_=WqyTuma@o#|8bTOir&9@mZj0N{r=gJ`T0fH3~{k5JoU6IfMne&wG}`Qhy5{qk}3zb@5l_QzFE#f@640xOI$~k!Rnpu6DVGTvNo=$t${*YrDd{O6jPY!1diO zua3HDws<>wNOw1Hxh$nqD$sH9&e+xch^rgJ)k(Zxf5w?)<;RbIBPhHqfD^KUQ;tXj zhFU=e+OG+DPZF2#nN3eRFsr;AhOHY%XWF!{fQWv$SD(t)mYewW>mg%m#~tvdu^g@C z0eoYBBTKSBMs=2+l%JM;1^nM*bp&()aD0kNf`q^X2{pk@D{z@Xh&uXn%Wj|G;@)VDA4S z{q!>DFXV~}>8BFJ$Hnll2rp+D| zLt0IbEQ#Cl?z`Jw*mN-Hiwhpy^uo4x-=*Z^5-yA><8h3dJuSm}s_CpVwM?d5?AG%) zZQAkC7yfqJz>(LMOq_AYqDAH9H%%(Y9pY?j_;}k>u%SJ*?c;_v=aAfjNjH_3FIsfx zEfY(AG%T^x|HVf;HtD z>W zjoqh2zn`z8I5HVM^r|ei86s3zlC7uaZl%a^kkdso zY~h_!?&Vq}GsY!c%LuN;wr$&f3qHACwBo#^mD{#`CaIROM8XGZj-A-DdOYiC4(3~L zwDPBd>t{yE|7v$jy+^Izg($n#Ei=<@RrOu#r-an{ zQ!ogXl?|zXeaDVydevrSS-)G#%8Cb~I)pyiQP(Fg>-xzB6R9!vmT9a>gY6yh0O3gr zE6|hb*`_*=s4FFIrtH89A$qA)i_*GMgyD7O0x44y7r7~wY3tLcd1qbIS>HvQRz3Xe z2mX8S^?&^O%d0lM{QAfK(IqJUH%wV@ Px}&0SwEu%=SLuJU9z%U0dG>;EXY-e# zV_!CRhO;v9We!Z0y{N|b%go~AbL^O*hzOB}jBrBQASGi^T0*$75qD^F3mIYxBqKeY zc>a8UijD+{l32*oznrsN%G1x4W0nk@px8&n43*@Q$98^s08|9^eXxjoANFJ({zU1i zcWiaaq=qkEdVI?t3LukP+BoV z@^-vv+O-?e1C#VZY~B!vf~mNBGU<*lOr3l)w$f|31$vWhYDl7gO<8ZBOUVa*v~r1G zU8{U3RK#!%Al}G)OYM6#C%ks6125)Rf8U2RS!J8?qb$u?hd_?TBYvg$bY(&zv>#(! z_uiZC7&>|0uNN<_xJc{z{AJQm7e(%Lu6lg)kuGiEk4c6pzC?e45>VR6qTE3Vp45oF zFR5I8;%!<>he{4-iiBroUZTUe=f#@;&!H^vK<=R5jW8z^Zpmip=?bUz?Ze8{-HI3X zbU^2lMdgt;1zTVPgIU`MX_z*llYK*%f;zfZxt;C$j@< zxYti7Ee0v~ESbp1%x~nLX}}Zu%@PG3rLt1~`?mgoHFgZ+kJgL3-h@=;srQOiQ{K#H zPl?6JWxp}(nawBzKrQ)lNi^B@9C`qcdf@JwB0@RnmgMUDe4WFK>7$BBYh;GS`}?fY zLWJiu%gB+izj*A`k4g;4lmAuC%Z37ezNkhk!LbDWjwcQ(;w=8}0R>LhQv-}+r?M&* zl%N5=MMgOOGOOQz;%b>F_(z6XgB)N8y1DjZybU$fnLBD(0Ov@dbhM}tcHoNOEAxiY z)oB?c^9W_XUM!tUve`b&Q?_g&s&3n~NlD{>Oa|!#-R|mta)Zv${%T%+#1!;@R4vnB z1BE<9H@?6E#jOU+KNijH)+idJs=@ZwHWu2pATO0Z4o4p&sI(P1DAq+7Q#$OB>s`86 z2Go&k+3cvS-^*;0Eiohw;oSUHooR2q(Z;2@{IvrRdCGNuNAM zpGbYKh(5WRJ}D#?xZApMqtBO>HqT&;; z?nEwJF4i9$hxMRF)&laSHnTVoD3mx9wYHX3C#fJmo*0Hv5TNh)+aN=Vzj84=VyM3AL-tf1bY{4m^ z$ul?{L`SR+@)aGOq<)+{=YUDUz}{+Y^{cI|;U>dq(m}`}VAe-_yO7>4qPP3g+r2iV z@)$t?v2ovIaJa2ZwQY1*hH2dZ6p>&IwXTlN+v_P1rFhsQcU$;!|r4+J9Eh%Agq{Q(jt)?bz7047lDckK{ zvc#RufB&96{syGFH?(BYnhs+WQE}eseBVCzj-)tM;SLn8d%B}fIV+DiU5js;mohWv9JNm zvEN-F7WmYi6#<<1{#=Xne~7Y!Xqy?OMNqr`*vh1ij_XKGJ~ZT%B|kO04E$IRO+)TYdx{D zEGis5CYs=19QF7&M@d)^M{$7p>%606=FE4$E2OOURJz4Tr9cVrLe`COD_!!dqE{&O dOnHTJefZ`IWl=bJoOzARPmbiMuz8fC{5NLxuU-HE diff --git a/invokeai/frontend/web/dist/assets/index-0e39fbc4.js b/invokeai/frontend/web/dist/assets/index-0e39fbc4.js deleted file mode 100644 index 62299eb79e..0000000000 --- a/invokeai/frontend/web/dist/assets/index-0e39fbc4.js +++ /dev/null @@ -1,624 +0,0 @@ -function Cj(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var So=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function S7(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g={},XQ={get exports(){return g},set exports(e){g=e}},V3={},S={},ZQ={get exports(){return S},set exports(e){S=e}},Jt={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Vy=Symbol.for("react.element"),QQ=Symbol.for("react.portal"),JQ=Symbol.for("react.fragment"),eJ=Symbol.for("react.strict_mode"),tJ=Symbol.for("react.profiler"),nJ=Symbol.for("react.provider"),rJ=Symbol.for("react.context"),iJ=Symbol.for("react.forward_ref"),oJ=Symbol.for("react.suspense"),aJ=Symbol.for("react.memo"),sJ=Symbol.for("react.lazy"),ST=Symbol.iterator;function lJ(e){return e===null||typeof e!="object"?null:(e=ST&&e[ST]||e["@@iterator"],typeof e=="function"?e:null)}var _j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},kj=Object.assign,Ej={};function a0(e,t,n){this.props=e,this.context=t,this.refs=Ej,this.updater=n||_j}a0.prototype.isReactComponent={};a0.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};a0.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Pj(){}Pj.prototype=a0.prototype;function w7(e,t,n){this.props=e,this.context=t,this.refs=Ej,this.updater=n||_j}var C7=w7.prototype=new Pj;C7.constructor=w7;kj(C7,a0.prototype);C7.isPureReactComponent=!0;var wT=Array.isArray,Tj=Object.prototype.hasOwnProperty,_7={current:null},Mj={key:!0,ref:!0,__self:!0,__source:!0};function Lj(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)Tj.call(t,r)&&!Mj.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(10?Vi(s0,--ea):0,jm--,ri===10&&(jm=1,q3--),ri}function Ea(){return ri=ea2||ey(ri)>3?"":" "}function AJ(e,t){for(;--t&&Ea()&&!(ri<48||ri>102||ri>57&&ri<65||ri>70&&ri<97););return Gy(e,Ax()+(t<6&&Ul()==32&&Ea()==32))}function m6(e){for(;Ea();)switch(ri){case e:return ea;case 34:case 39:e!==34&&e!==39&&m6(ri);break;case 40:e===41&&m6(e);break;case 92:Ea();break}return ea}function OJ(e,t){for(;Ea()&&e+ri!==47+10;)if(e+ri===42+42&&Ul()===47)break;return"/*"+Gy(t,ea-1)+"*"+G3(e===47?e:Ea())}function RJ(e){for(;!ey(Ul());)Ea();return Gy(e,ea)}function IJ(e){return Nj(Rx("",null,null,null,[""],e=jj(e),0,[0],e))}function Rx(e,t,n,r,i,o,a,s,l){for(var u=0,d=0,h=a,m=0,y=0,b=0,w=1,E=1,_=1,k=0,T="",L=i,O=o,D=r,I=T;E;)switch(b=k,k=Ea()){case 40:if(b!=108&&Vi(I,h-1)==58){g6(I+=kn(Ox(k),"&","&\f"),"&\f")!=-1&&(_=-1);break}case 34:case 39:case 91:I+=Ox(k);break;case 9:case 10:case 13:case 32:I+=LJ(b);break;case 92:I+=AJ(Ax()-1,7);continue;case 47:switch(Ul()){case 42:case 47:gb(DJ(OJ(Ea(),Ax()),t,n),l);break;default:I+="/"}break;case 123*w:s[u++]=Il(I)*_;case 125*w:case 59:case 0:switch(k){case 0:case 125:E=0;case 59+d:y>0&&Il(I)-h&&gb(y>32?kT(I+";",r,n,h-1):kT(kn(I," ","")+";",r,n,h-2),l);break;case 59:I+=";";default:if(gb(D=_T(I,t,n,u,d,i,s,T,L=[],O=[],h),o),k===123)if(d===0)Rx(I,t,D,D,L,o,h,s,O);else switch(m===99&&Vi(I,3)===110?100:m){case 100:case 109:case 115:Rx(e,D,D,r&&gb(_T(e,D,D,0,0,i,s,T,i,L=[],h),O),i,O,h,s,r?L:O);break;default:Rx(I,D,D,D,[""],O,0,s,O)}}u=d=y=0,w=_=1,T=I="",h=a;break;case 58:h=1+Il(I),y=b;default:if(w<1){if(k==123)--w;else if(k==125&&w++==0&&MJ()==125)continue}switch(I+=G3(k),k*w){case 38:_=d>0?1:(I+="\f",-1);break;case 44:s[u++]=(Il(I)-1)*_,_=1;break;case 64:Ul()===45&&(I+=Ox(Ea())),m=Ul(),d=h=Il(T=I+=RJ(Ax())),k++;break;case 45:b===45&&Il(I)==2&&(w=0)}}return o}function _T(e,t,n,r,i,o,a,s,l,u,d){for(var h=i-1,m=i===0?o:[""],y=T7(m),b=0,w=0,E=0;b0?m[_]+" "+k:kn(k,/&\f/g,m[_])))&&(l[E++]=T);return K3(e,t,n,i===0?E7:s,l,u,d)}function DJ(e,t,n){return K3(e,t,n,Oj,G3(TJ()),J1(e,2,-2),0)}function kT(e,t,n,r){return K3(e,t,n,P7,J1(e,0,r),J1(e,r+1,-1),r)}function dm(e,t){for(var n="",r=T7(e),i=0;i6)switch(Vi(e,t+1)){case 109:if(Vi(e,t+4)!==45)break;case 102:return kn(e,/(.+:)(.+)-([^]+)/,"$1"+bn+"$2-$3$1"+yS+(Vi(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~g6(e,"stretch")?Fj(kn(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(Vi(e,t+1)!==115)break;case 6444:switch(Vi(e,Il(e)-3-(~g6(e,"!important")&&10))){case 107:return kn(e,":",":"+bn)+e;case 101:return kn(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+bn+(Vi(e,14)===45?"inline-":"")+"box$3$1"+bn+"$2$3$1"+no+"$2box$3")+e}break;case 5936:switch(Vi(e,t+11)){case 114:return bn+e+no+kn(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return bn+e+no+kn(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return bn+e+no+kn(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return bn+e+no+e+e}return e}var UJ=function(t,n,r,i){if(t.length>-1&&!t.return)switch(t.type){case P7:t.return=Fj(t.value,t.length);break;case Rj:return dm([Av(t,{value:kn(t.value,"@","@"+bn)})],i);case E7:if(t.length)return PJ(t.props,function(o){switch(EJ(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return dm([Av(t,{props:[kn(o,/:(read-\w+)/,":"+yS+"$1")]})],i);case"::placeholder":return dm([Av(t,{props:[kn(o,/:(plac\w+)/,":"+bn+"input-$1")]}),Av(t,{props:[kn(o,/:(plac\w+)/,":"+yS+"$1")]}),Av(t,{props:[kn(o,/:(plac\w+)/,no+"input-$1")]})],i)}return""})}},VJ=[UJ],Bj=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(w){var E=w.getAttribute("data-emotion");E.indexOf(" ")!==-1&&(document.head.appendChild(w),w.setAttribute("data-s",""))})}var i=t.stylisPlugins||VJ,o={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(w){for(var E=w.getAttribute("data-emotion").split(" "),_=1;_=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var ree={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},iee=/[A-Z]|^ms/g,oee=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Gj=function(t){return t.charCodeAt(1)===45},TT=function(t){return t!=null&&typeof t!="boolean"},s5=$j(function(e){return Gj(e)?e:e.replace(iee,"-$&").toLowerCase()}),MT=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(oee,function(r,i,o){return Dl={name:i,styles:o,next:Dl},i})}return ree[t]!==1&&!Gj(t)&&typeof n=="number"&&n!==0?n+"px":n};function ty(e,t,n){if(n==null)return"";if(n.__emotion_styles!==void 0)return n;switch(typeof n){case"boolean":return"";case"object":{if(n.anim===1)return Dl={name:n.name,styles:n.styles,next:Dl},n.name;if(n.styles!==void 0){var r=n.next;if(r!==void 0)for(;r!==void 0;)Dl={name:r.name,styles:r.styles,next:Dl},r=r.next;var i=n.styles+";";return i}return aee(e,t,n)}case"function":{if(e!==void 0){var o=Dl,a=n(e);return Dl=o,ty(e,t,a)}break}}if(t==null)return n;var s=t[n];return s!==void 0?s:n}function aee(e,t,n){var r="";if(Array.isArray(n))for(var i=0;ig.jsx(ow,{styles:Xj}),gee=()=>g.jsx(ow,{styles:` - html { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - font-family: system-ui, sans-serif; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - -moz-osx-font-smoothing: grayscale; - touch-action: manipulation; - } - - body { - position: relative; - min-height: 100%; - font-feature-settings: 'kern'; - } - - *, - *::before, - *::after { - border-width: 0; - border-style: solid; - box-sizing: border-box; - } - - main { - display: block; - } - - hr { - border-top-width: 1px; - box-sizing: content-box; - height: 0; - overflow: visible; - } - - pre, - code, - kbd, - samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; - font-size: 1em; - } - - a { - background-color: transparent; - color: inherit; - text-decoration: inherit; - } - - abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - b, - strong { - font-weight: bold; - } - - small { - font-size: 80%; - } - - sub, - sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - sub { - bottom: -0.25em; - } - - sup { - top: -0.5em; - } - - img { - border-style: none; - } - - button, - input, - optgroup, - select, - textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - } - - button, - input { - overflow: visible; - } - - button, - select { - text-transform: none; - } - - button::-moz-focus-inner, - [type="button"]::-moz-focus-inner, - [type="reset"]::-moz-focus-inner, - [type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; - } - - fieldset { - padding: 0.35em 0.75em 0.625em; - } - - legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; - } - - progress { - vertical-align: baseline; - } - - textarea { - overflow: auto; - } - - [type="checkbox"], - [type="radio"] { - box-sizing: border-box; - padding: 0; - } - - [type="number"]::-webkit-inner-spin-button, - [type="number"]::-webkit-outer-spin-button { - -webkit-appearance: none !important; - } - - input[type="number"] { - -moz-appearance: textfield; - } - - [type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; - } - - [type="search"]::-webkit-search-decoration { - -webkit-appearance: none !important; - } - - ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; - } - - details { - display: block; - } - - summary { - display: list-item; - } - - template { - display: none; - } - - [hidden] { - display: none !important; - } - - body, - blockquote, - dl, - dd, - h1, - h2, - h3, - h4, - h5, - h6, - hr, - figure, - p, - pre { - margin: 0; - } - - button { - background: transparent; - padding: 0; - } - - fieldset { - margin: 0; - padding: 0; - } - - ol, - ul { - margin: 0; - padding: 0; - } - - textarea { - resize: vertical; - } - - button, - [role="button"] { - cursor: pointer; - } - - button::-moz-focus-inner { - border: 0 !important; - } - - table { - border-collapse: collapse; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-size: inherit; - font-weight: inherit; - } - - button, - input, - optgroup, - select, - textarea { - padding: 0; - line-height: inherit; - color: inherit; - } - - img, - svg, - video, - canvas, - audio, - iframe, - embed, - object { - display: block; - } - - img, - video { - max-width: 100%; - height: auto; - } - - [data-js-focus-visible] :focus:not([data-focus-visible-added]):not([data-focus-visible-disabled]) { - outline: none; - box-shadow: none; - } - - select::-ms-expand { - display: none; - } - - ${Xj} - `});function mee(e,t){return`${e} returned \`undefined\`. Seems you forgot to wrap component within ${t}`}function Pn(e={}){const{name:t,strict:n=!0,hookName:r="useContext",providerName:i="Provider",errorMessage:o}=e,a=S.createContext(void 0);a.displayName=t;function s(){var l;const u=S.useContext(a);if(!u&&n){const d=new Error(o??mee(r,i));throw d.name="ContextError",(l=Error.captureStackTrace)==null||l.call(Error,d,s),d}return u}return[a.Provider,s,a]}var[vee,yee]=Pn({strict:!1,name:"PortalManagerContext"});function Zj(e){const{children:t,zIndex:n}=e;return g.jsx(vee,{value:{zIndex:n},children:t})}Zj.displayName="PortalManager";var Vl=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:S.useEffect,Xs={},bee={get exports(){return Xs},set exports(e){Xs=e}},Ia={},Th={},xee={get exports(){return Th},set exports(e){Th=e}},Qj={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(e){function t(G,Y){var ee=G.length;G.push(Y);e:for(;0>>1,Ce=G[fe];if(0>>1;fei(Le,ee))Sei(Qe,Le)?(G[fe]=Qe,G[Se]=ee,fe=Se):(G[fe]=Le,G[xe]=ee,fe=xe);else if(Sei(Qe,ee))G[fe]=Qe,G[Se]=ee,fe=Se;else break e}}return Y}function i(G,Y){var ee=G.sortIndex-Y.sortIndex;return ee!==0?ee:G.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],u=[],d=1,h=null,m=3,y=!1,b=!1,w=!1,E=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function T(G){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=G)r(u),Y.sortIndex=Y.expirationTime,t(l,Y);else break;Y=n(u)}}function L(G){if(w=!1,T(G),!b)if(n(l)!==null)b=!0,X(O);else{var Y=n(u);Y!==null&&Q(L,Y.startTime-G)}}function O(G,Y){b=!1,w&&(w=!1,_(N),N=-1),y=!0;var ee=m;try{for(T(Y),h=n(l);h!==null&&(!(h.expirationTime>Y)||G&&!K());){var fe=h.callback;if(typeof fe=="function"){h.callback=null,m=h.priorityLevel;var Ce=fe(h.expirationTime<=Y);Y=e.unstable_now(),typeof Ce=="function"?h.callback=Ce:h===n(l)&&r(l),T(Y)}else r(l);h=n(l)}if(h!==null)var we=!0;else{var xe=n(u);xe!==null&&Q(L,xe.startTime-Y),we=!1}return we}finally{h=null,m=ee,y=!1}}var D=!1,I=null,N=-1,W=5,B=-1;function K(){return!(e.unstable_now()-BG||125fe?(G.sortIndex=ee,t(u,G),n(l)===null&&G===n(u)&&(w?(_(N),N=-1):w=!0,Q(L,ee-fe))):(G.sortIndex=Ce,t(l,G),b||y||(b=!0,X(O))),G},e.unstable_shouldYield=K,e.unstable_wrapCallback=function(G){var Y=m;return function(){var ee=m;m=Y;try{return G.apply(this,arguments)}finally{m=ee}}}})(Qj);(function(e){e.exports=Qj})(xee);/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Jj=S,La=Th;function ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),y6=Object.prototype.hasOwnProperty,See=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,OT={},RT={};function wee(e){return y6.call(RT,e)?!0:y6.call(OT,e)?!1:See.test(e)?RT[e]=!0:(OT[e]=!0,!1)}function Cee(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _ee(e,t,n,r){if(t===null||typeof t>"u"||Cee(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function To(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var Ki={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ki[e]=new To(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ki[t]=new To(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ki[e]=new To(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ki[e]=new To(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ki[e]=new To(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ki[e]=new To(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ki[e]=new To(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ki[e]=new To(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ki[e]=new To(e,5,!1,e.toLowerCase(),null,!1,!1)});var R7=/[\-:]([a-z])/g;function I7(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(R7,I7);Ki[t]=new To(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(R7,I7);Ki[t]=new To(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(R7,I7);Ki[t]=new To(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ki[e]=new To(e,1,!1,e.toLowerCase(),null,!1,!1)});Ki.xlinkHref=new To("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ki[e]=new To(e,1,!1,e.toLowerCase(),null,!0,!0)});function D7(e,t,n,r){var i=Ki.hasOwnProperty(t)?Ki[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` -`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{u5=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?i1(e):""}function kee(e){switch(e.tag){case 5:return i1(e.type);case 16:return i1("Lazy");case 13:return i1("Suspense");case 19:return i1("SuspenseList");case 0:case 2:case 15:return e=c5(e.type,!1),e;case 11:return e=c5(e.type.render,!1),e;case 1:return e=c5(e.type,!0),e;default:return""}}function w6(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case zg:return"Fragment";case Bg:return"Portal";case b6:return"Profiler";case j7:return"StrictMode";case x6:return"Suspense";case S6:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case nN:return(e.displayName||"Context")+".Consumer";case tN:return(e._context.displayName||"Context")+".Provider";case N7:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case $7:return t=e.displayName||null,t!==null?t:w6(e.type)||"Memo";case hd:t=e._payload,e=e._init;try{return w6(e(t))}catch{}}return null}function Eee(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return w6(t);case 8:return t===j7?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ud(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function iN(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Pee(e){var t=iN(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function vb(e){e._valueTracker||(e._valueTracker=Pee(e))}function oN(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=iN(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function bS(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function C6(e,t){var n=t.checked;return Pr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function DT(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ud(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function aN(e,t){t=t.checked,t!=null&&D7(e,"checked",t,!1)}function _6(e,t){aN(e,t);var n=Ud(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?k6(e,t.type,n):t.hasOwnProperty("defaultValue")&&k6(e,t.type,Ud(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jT(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function k6(e,t,n){(t!=="number"||bS(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var o1=Array.isArray;function fm(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=yb.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function iy(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var C1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Tee=["Webkit","ms","Moz","O"];Object.keys(C1).forEach(function(e){Tee.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),C1[t]=C1[e]})});function cN(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||C1.hasOwnProperty(e)&&C1[e]?(""+t).trim():t+"px"}function dN(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=cN(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Mee=Pr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function T6(e,t){if(t){if(Mee[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ze(62))}}function M6(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var L6=null;function F7(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var A6=null,hm=null,pm=null;function FT(e){if(e=Yy(e)){if(typeof A6!="function")throw Error(ze(280));var t=e.stateNode;t&&(t=cw(t),A6(e.stateNode,e.type,t))}}function fN(e){hm?pm?pm.push(e):pm=[e]:hm=e}function hN(){if(hm){var e=hm,t=pm;if(pm=hm=null,FT(e),t)for(e=0;e>>=0,e===0?32:31-(Bee(e)/zee|0)|0}var bb=64,xb=4194304;function a1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function CS(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=a1(s):(o&=a,o!==0&&(r=a1(o)))}else a=n&~i,a!==0?r=a1(a):o!==0&&(r=a1(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function qy(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Gs(t),e[t]=n}function Vee(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=k1),KT=String.fromCharCode(32),YT=!1;function RN(e,t){switch(e){case"keyup":return bte.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function IN(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Hg=!1;function Ste(e,t){switch(e){case"compositionend":return IN(t);case"keypress":return t.which!==32?null:(YT=!0,KT);case"textInput":return e=t.data,e===KT&&YT?null:e;default:return null}}function wte(e,t){if(Hg)return e==="compositionend"||!q7&&RN(e,t)?(e=AN(),Dx=U7=Sd=null,Hg=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=JT(n)}}function $N(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$N(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function FN(){for(var e=window,t=bS();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=bS(e.document)}return t}function K7(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ate(e){var t=FN(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&$N(n.ownerDocument.documentElement,n)){if(r!==null&&K7(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=eM(n,o);var a=eM(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Wg=null,N6=null,P1=null,$6=!1;function tM(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$6||Wg==null||Wg!==bS(r)||(r=Wg,"selectionStart"in r&&K7(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),P1&&cy(P1,r)||(P1=r,r=ES(N6,"onSelect"),0Gg||(e.current=U6[Gg],U6[Gg]=null,Gg--)}function nr(e,t){Gg++,U6[Gg]=e.current,e.current=t}var Vd={},lo=of(Vd),Ko=of(!1),Hh=Vd;function $m(e,t){var n=e.type.contextTypes;if(!n)return Vd;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Yo(e){return e=e.childContextTypes,e!=null}function TS(){cr(Ko),cr(lo)}function lM(e,t,n){if(lo.current!==Vd)throw Error(ze(168));nr(lo,t),nr(Ko,n)}function KN(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ze(108,Eee(e)||"Unknown",i));return Pr({},n,r)}function MS(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Vd,Hh=lo.current,nr(lo,e),nr(Ko,Ko.current),!0}function uM(e,t,n){var r=e.stateNode;if(!r)throw Error(ze(169));n?(e=KN(e,t,Hh),r.__reactInternalMemoizedMergedChildContext=e,cr(Ko),cr(lo),nr(lo,e)):cr(Ko),nr(Ko,n)}var ju=null,dw=!1,_5=!1;function YN(e){ju===null?ju=[e]:ju.push(e)}function Wte(e){dw=!0,YN(e)}function af(){if(!_5&&ju!==null){_5=!0;var e=0,t=In;try{var n=ju;for(In=1;e>=a,i-=a,Fu=1<<32-Gs(t)+i|n<N?(W=I,I=null):W=I.sibling;var B=m(_,I,T[N],L);if(B===null){I===null&&(I=W);break}e&&I&&B.alternate===null&&t(_,I),k=o(B,k,N),D===null?O=B:D.sibling=B,D=B,I=W}if(N===T.length)return n(_,I),yr&&uh(_,N),O;if(I===null){for(;NN?(W=I,I=null):W=I.sibling;var K=m(_,I,B.value,L);if(K===null){I===null&&(I=W);break}e&&I&&K.alternate===null&&t(_,I),k=o(K,k,N),D===null?O=K:D.sibling=K,D=K,I=W}if(B.done)return n(_,I),yr&&uh(_,N),O;if(I===null){for(;!B.done;N++,B=T.next())B=h(_,B.value,L),B!==null&&(k=o(B,k,N),D===null?O=B:D.sibling=B,D=B);return yr&&uh(_,N),O}for(I=r(_,I);!B.done;N++,B=T.next())B=y(I,_,N,B.value,L),B!==null&&(e&&B.alternate!==null&&I.delete(B.key===null?N:B.key),k=o(B,k,N),D===null?O=B:D.sibling=B,D=B);return e&&I.forEach(function(ne){return t(_,ne)}),yr&&uh(_,N),O}function E(_,k,T,L){if(typeof T=="object"&&T!==null&&T.type===zg&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case mb:e:{for(var O=T.key,D=k;D!==null;){if(D.key===O){if(O=T.type,O===zg){if(D.tag===7){n(_,D.sibling),k=i(D,T.props.children),k.return=_,_=k;break e}}else if(D.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===hd&&mM(O)===D.type){n(_,D.sibling),k=i(D,T.props),k.ref=Nv(_,D,T),k.return=_,_=k;break e}n(_,D);break}else t(_,D);D=D.sibling}T.type===zg?(k=Lh(T.props.children,_.mode,L,T.key),k.return=_,_=k):(L=Wx(T.type,T.key,T.props,null,_.mode,L),L.ref=Nv(_,k,T),L.return=_,_=L)}return a(_);case Bg:e:{for(D=T.key;k!==null;){if(k.key===D)if(k.tag===4&&k.stateNode.containerInfo===T.containerInfo&&k.stateNode.implementation===T.implementation){n(_,k.sibling),k=i(k,T.children||[]),k.return=_,_=k;break e}else{n(_,k);break}else t(_,k);k=k.sibling}k=O5(T,_.mode,L),k.return=_,_=k}return a(_);case hd:return D=T._init,E(_,k,D(T._payload),L)}if(o1(T))return b(_,k,T,L);if(Ov(T))return w(_,k,T,L);Pb(_,T)}return typeof T=="string"&&T!==""||typeof T=="number"?(T=""+T,k!==null&&k.tag===6?(n(_,k.sibling),k=i(k,T),k.return=_,_=k):(n(_,k),k=A5(T,_.mode,L),k.return=_,_=k),a(_)):n(_,k)}return E}var Bm=r$(!0),i$=r$(!1),Xy={},ql=of(Xy),py=of(Xy),gy=of(Xy);function _h(e){if(e===Xy)throw Error(ze(174));return e}function r9(e,t){switch(nr(gy,t),nr(py,e),nr(ql,Xy),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:P6(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=P6(t,e)}cr(ql),nr(ql,t)}function zm(){cr(ql),cr(py),cr(gy)}function o$(e){_h(gy.current);var t=_h(ql.current),n=P6(t,e.type);t!==n&&(nr(py,e),nr(ql,n))}function i9(e){py.current===e&&(cr(ql),cr(py))}var kr=of(0);function DS(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var k5=[];function o9(){for(var e=0;en?n:4,e(!0);var r=E5.transition;E5.transition={};try{e(!1),t()}finally{In=n,E5.transition=r}}function S$(){return as().memoizedState}function qte(e,t,n){var r=Dd(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},w$(e))C$(t,n);else if(n=JN(e,t,n,r),n!==null){var i=_o();qs(n,e,r,i),_$(n,t,r)}}function Kte(e,t,n){var r=Dd(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(w$(e))C$(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,Zs(s,a)){var l=t.interleaved;l===null?(i.next=i,t9(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=JN(e,t,i,r),n!==null&&(i=_o(),qs(n,e,r,i),_$(n,t,r))}}function w$(e){var t=e.alternate;return e===Er||t!==null&&t===Er}function C$(e,t){T1=jS=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function _$(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,z7(e,n)}}var NS={readContext:os,useCallback:eo,useContext:eo,useEffect:eo,useImperativeHandle:eo,useInsertionEffect:eo,useLayoutEffect:eo,useMemo:eo,useReducer:eo,useRef:eo,useState:eo,useDebugValue:eo,useDeferredValue:eo,useTransition:eo,useMutableSource:eo,useSyncExternalStore:eo,useId:eo,unstable_isNewReconciler:!1},Yte={readContext:os,useCallback:function(e,t){return Ll().memoizedState=[e,t===void 0?null:t],e},useContext:os,useEffect:yM,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fx(4194308,4,m$.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fx(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fx(4,2,e,t)},useMemo:function(e,t){var n=Ll();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ll();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=qte.bind(null,Er,e),[r.memoizedState,e]},useRef:function(e){var t=Ll();return e={current:e},t.memoizedState=e},useState:vM,useDebugValue:c9,useDeferredValue:function(e){return Ll().memoizedState=e},useTransition:function(){var e=vM(!1),t=e[0];return e=Gte.bind(null,e[1]),Ll().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Er,i=Ll();if(yr){if(n===void 0)throw Error(ze(407));n=n()}else{if(n=t(),Ai===null)throw Error(ze(349));Uh&30||l$(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,yM(c$.bind(null,r,o,e),[e]),r.flags|=2048,yy(9,u$.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ll(),t=Ai.identifierPrefix;if(yr){var n=Bu,r=Fu;n=(r&~(1<<32-Gs(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=my++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[jl]=t,e[hy]=r,R$(e,t,!1,!1),t.stateNode=e;e:{switch(a=M6(n,r),n){case"dialog":ir("cancel",e),ir("close",e),i=r;break;case"iframe":case"object":case"embed":ir("load",e),i=r;break;case"video":case"audio":for(i=0;iWm&&(t.flags|=128,r=!0,$v(o,!1),t.lanes=4194304)}else{if(!r)if(e=DS(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),$v(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!yr)return to(t),null}else 2*Zr()-o.renderingStartTime>Wm&&n!==1073741824&&(t.flags|=128,r=!0,$v(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Zr(),t.sibling=null,n=kr.current,nr(kr,r?n&1|2:n&1),t):(to(t),null);case 22:case 23:return m9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Sa&1073741824&&(to(t),t.subtreeFlags&6&&(t.flags|=8192)):to(t),null;case 24:return null;case 25:return null}throw Error(ze(156,t.tag))}function rne(e,t){switch(X7(t),t.tag){case 1:return Yo(t.type)&&TS(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return zm(),cr(Ko),cr(lo),o9(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return i9(t),null;case 13:if(cr(kr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ze(340));Fm()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return cr(kr),null;case 4:return zm(),null;case 10:return e9(t.type._context),null;case 22:case 23:return m9(),null;case 24:return null;default:return null}}var Mb=!1,io=!1,ine=typeof WeakSet=="function"?WeakSet:Set,dt=null;function Xg(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){$r(e,t,r)}else n.current=null}function n_(e,t,n){try{n()}catch(r){$r(e,t,r)}}var PM=!1;function one(e,t){if(F6=_S,e=FN(),K7(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,u=0,d=0,h=e,m=null;t:for(;;){for(var y;h!==n||i!==0&&h.nodeType!==3||(s=a+i),h!==o||r!==0&&h.nodeType!==3||(l=a+r),h.nodeType===3&&(a+=h.nodeValue.length),(y=h.firstChild)!==null;)m=h,h=y;for(;;){if(h===e)break t;if(m===n&&++u===i&&(s=a),m===o&&++d===r&&(l=a),(y=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=y}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(B6={focusedElem:e,selectionRange:n},_S=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var b=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(b!==null){var w=b.memoizedProps,E=b.memoizedState,_=t.stateNode,k=_.getSnapshotBeforeUpdate(t.elementType===t.type?w:Bs(t.type,w),E);_.__reactInternalSnapshotBeforeUpdate=k}break;case 3:var T=t.stateNode.containerInfo;T.nodeType===1?T.textContent="":T.nodeType===9&&T.documentElement&&T.removeChild(T.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ze(163))}}catch(L){$r(t,t.return,L)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return b=PM,PM=!1,b}function M1(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&n_(t,n,o)}i=i.next}while(i!==r)}}function pw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function r_(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function j$(e){var t=e.alternate;t!==null&&(e.alternate=null,j$(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[jl],delete t[hy],delete t[W6],delete t[zte],delete t[Hte])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function N$(e){return e.tag===5||e.tag===3||e.tag===4}function TM(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||N$(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function i_(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=PS));else if(r!==4&&(e=e.child,e!==null))for(i_(e,t,n),e=e.sibling;e!==null;)i_(e,t,n),e=e.sibling}function o_(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(o_(e,t,n),e=e.sibling;e!==null;)o_(e,t,n),e=e.sibling}var Wi=null,zs=!1;function od(e,t,n){for(n=n.child;n!==null;)$$(e,t,n),n=n.sibling}function $$(e,t,n){if(Gl&&typeof Gl.onCommitFiberUnmount=="function")try{Gl.onCommitFiberUnmount(aw,n)}catch{}switch(n.tag){case 5:io||Xg(n,t);case 6:var r=Wi,i=zs;Wi=null,od(e,t,n),Wi=r,zs=i,Wi!==null&&(zs?(e=Wi,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Wi.removeChild(n.stateNode));break;case 18:Wi!==null&&(zs?(e=Wi,n=n.stateNode,e.nodeType===8?C5(e.parentNode,n):e.nodeType===1&&C5(e,n),ly(e)):C5(Wi,n.stateNode));break;case 4:r=Wi,i=zs,Wi=n.stateNode.containerInfo,zs=!0,od(e,t,n),Wi=r,zs=i;break;case 0:case 11:case 14:case 15:if(!io&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&n_(n,t,a),i=i.next}while(i!==r)}od(e,t,n);break;case 1:if(!io&&(Xg(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){$r(n,t,s)}od(e,t,n);break;case 21:od(e,t,n);break;case 22:n.mode&1?(io=(r=io)||n.memoizedState!==null,od(e,t,n),io=r):od(e,t,n);break;default:od(e,t,n)}}function MM(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ine),t.forEach(function(r){var i=pne.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Is(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=Zr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*sne(r/1960))-r,10e?16:e,wd===null)var r=!1;else{if(e=wd,wd=null,BS=0,un&6)throw Error(ze(331));var i=un;for(un|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lZr()-p9?Mh(e,0):h9|=n),Xo(e,t)}function G$(e,t){t===0&&(e.mode&1?(t=xb,xb<<=1,!(xb&130023424)&&(xb=4194304)):t=1);var n=_o();e=ec(e,t),e!==null&&(qy(e,t,n),Xo(e,n))}function hne(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),G$(e,n)}function pne(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ze(314))}r!==null&&r.delete(t),G$(e,n)}var q$;q$=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ko.current)qo=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return qo=!1,tne(e,t,n);qo=!!(e.flags&131072)}else qo=!1,yr&&t.flags&1048576&&XN(t,AS,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Bx(e,t),e=t.pendingProps;var i=$m(t,lo.current);mm(t,n),i=s9(null,t,r,e,i,n);var o=l9();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Yo(r)?(o=!0,MS(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,n9(t),i.updater=fw,t.stateNode=i,i._reactInternals=t,Y6(t,r,e,n),t=Q6(null,t,r,!0,o,n)):(t.tag=0,yr&&o&&Y7(t),xo(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Bx(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=mne(r),e=Bs(r,e),i){case 0:t=Z6(null,t,r,e,n);break e;case 1:t=_M(null,t,r,e,n);break e;case 11:t=wM(null,t,r,e,n);break e;case 14:t=CM(null,t,r,Bs(r.type,e),n);break e}throw Error(ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Bs(r,i),Z6(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Bs(r,i),_M(e,t,r,i,n);case 3:e:{if(L$(t),e===null)throw Error(ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,e$(e,t),IS(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Hm(Error(ze(423)),t),t=kM(e,t,r,n,i);break e}else if(r!==i){i=Hm(Error(ze(424)),t),t=kM(e,t,r,n,i);break e}else for(ka=Od(t.stateNode.containerInfo.firstChild),Pa=t,yr=!0,Ws=null,n=i$(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Fm(),r===i){t=tc(e,t,n);break e}xo(e,t,r,n)}t=t.child}return t;case 5:return o$(t),e===null&&G6(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,z6(r,i)?a=null:o!==null&&z6(r,o)&&(t.flags|=32),M$(e,t),xo(e,t,a,n),t.child;case 6:return e===null&&G6(t),null;case 13:return A$(e,t,n);case 4:return r9(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Bm(t,null,r,n):xo(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Bs(r,i),wM(e,t,r,i,n);case 7:return xo(e,t,t.pendingProps,n),t.child;case 8:return xo(e,t,t.pendingProps.children,n),t.child;case 12:return xo(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,nr(OS,r._currentValue),r._currentValue=a,o!==null)if(Zs(o.value,a)){if(o.children===i.children&&!Ko.current){t=tc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Wu(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),q6(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),q6(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}xo(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,mm(t,n),i=os(i),r=r(i),t.flags|=1,xo(e,t,r,n),t.child;case 14:return r=t.type,i=Bs(r,t.pendingProps),i=Bs(r.type,i),CM(e,t,r,i,n);case 15:return P$(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Bs(r,i),Bx(e,t),t.tag=1,Yo(r)?(e=!0,MS(t)):e=!1,mm(t,n),n$(t,r,i),Y6(t,r,i,n),Q6(null,t,r,!0,e,n);case 19:return O$(e,t,n);case 22:return T$(e,t,n)}throw Error(ze(156,t.tag))};function K$(e,t){return xN(e,t)}function gne(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function es(e,t,n,r){return new gne(e,t,n,r)}function y9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function mne(e){if(typeof e=="function")return y9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===N7)return 11;if(e===$7)return 14}return 2}function jd(e,t){var n=e.alternate;return n===null?(n=es(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Wx(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")y9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case zg:return Lh(n.children,i,o,t);case j7:a=8,i|=8;break;case b6:return e=es(12,n,t,i|2),e.elementType=b6,e.lanes=o,e;case x6:return e=es(13,n,t,i),e.elementType=x6,e.lanes=o,e;case S6:return e=es(19,n,t,i),e.elementType=S6,e.lanes=o,e;case rN:return mw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case tN:a=10;break e;case nN:a=9;break e;case N7:a=11;break e;case $7:a=14;break e;case hd:a=16,r=null;break e}throw Error(ze(130,e==null?e:typeof e,""))}return t=es(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Lh(e,t,n,r){return e=es(7,e,r,t),e.lanes=n,e}function mw(e,t,n,r){return e=es(22,e,r,t),e.elementType=rN,e.lanes=n,e.stateNode={isHidden:!1},e}function A5(e,t,n){return e=es(6,e,null,t),e.lanes=n,e}function O5(e,t,n){return t=es(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function vne(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=f5(0),this.expirationTimes=f5(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=f5(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function b9(e,t,n,r,i,o,a,s,l){return e=new vne(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=es(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},n9(o),e}function yne(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}t(),e.exports=Ia})(bee);const Ob=S7(Xs);var[Q$,Cne]=Pn({strict:!1,name:"PortalContext"}),C9="chakra-portal",_ne=".chakra-portal",kne=e=>g.jsx("div",{className:"chakra-portal-zIndex",style:{position:"absolute",zIndex:e.zIndex,top:0,left:0,right:0},children:e.children}),Ene=e=>{const{appendToParentPortal:t,children:n}=e,[r,i]=S.useState(null),o=S.useRef(null),[,a]=S.useState({});S.useEffect(()=>a({}),[]);const s=Cne(),l=yee();Vl(()=>{if(!r)return;const d=r.ownerDocument,h=t?s??d.body:d.body;if(!h)return;o.current=d.createElement("div"),o.current.className=C9,h.appendChild(o.current),a({});const m=o.current;return()=>{h.contains(m)&&h.removeChild(m)}},[r]);const u=l!=null&&l.zIndex?g.jsx(kne,{zIndex:l==null?void 0:l.zIndex,children:n}):n;return o.current?Xs.createPortal(g.jsx(Q$,{value:o.current,children:u}),o.current):g.jsx("span",{ref:d=>{d&&i(d)}})},Pne=e=>{const{children:t,containerRef:n,appendToParentPortal:r}=e,i=n.current,o=i??(typeof window<"u"?document.body:void 0),a=S.useMemo(()=>{const l=i==null?void 0:i.ownerDocument.createElement("div");return l&&(l.className=C9),l},[i]),[,s]=S.useState({});return Vl(()=>s({}),[]),Vl(()=>{if(!(!a||!o))return o.appendChild(a),()=>{o.removeChild(a)}},[a,o]),o&&a?Xs.createPortal(g.jsx(Q$,{value:r?a:null,children:t}),a):null};function c0(e){const t={appendToParentPortal:!0,...e},{containerRef:n,...r}=t;return n?g.jsx(Pne,{containerRef:n,...r}):g.jsx(Ene,{...r})}c0.className=C9;c0.selector=_ne;c0.displayName="Portal";function Zy(){const e=S.useContext(ny);if(!e)throw Error("useTheme: `theme` is undefined. Seems you forgot to wrap your app in `` or ``");return e}var _9=S.createContext({});_9.displayName="ColorModeContext";function Qy(){const e=S.useContext(_9);if(e===void 0)throw new Error("useColorMode must be used within a ColorModeProvider");return e}var Rb={light:"chakra-ui-light",dark:"chakra-ui-dark"};function Tne(e={}){const{preventTransition:t=!0}=e,n={setDataset:r=>{const i=t?n.preventTransition():void 0;document.documentElement.dataset.theme=r,document.documentElement.style.colorScheme=r,i==null||i()},setClassName(r){document.body.classList.add(r?Rb.dark:Rb.light),document.body.classList.remove(r?Rb.light:Rb.dark)},query(){return window.matchMedia("(prefers-color-scheme: dark)")},getSystemTheme(r){var i;return((i=n.query().matches)!=null?i:r==="dark")?"dark":"light"},addListener(r){const i=n.query(),o=a=>{r(a.matches?"dark":"light")};return typeof i.addListener=="function"?i.addListener(o):i.addEventListener("change",o),()=>{typeof i.removeListener=="function"?i.removeListener(o):i.removeEventListener("change",o)}},preventTransition(){const r=document.createElement("style");return r.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(r),()=>{window.getComputedStyle(document.body),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.head.removeChild(r)})})}}};return n}var Mne="chakra-ui-color-mode";function Lne(e){return{ssr:!1,type:"localStorage",get(t){if(!(globalThis!=null&&globalThis.document))return t;let n;try{n=localStorage.getItem(e)||t}catch{}return n||t},set(t){try{localStorage.setItem(e,t)}catch{}}}}var Ane=Lne(Mne),NM=()=>{};function $M(e,t){return e.type==="cookie"&&e.ssr?e.get(t):t}function J$(e){const{value:t,children:n,options:{useSystemColorMode:r,initialColorMode:i,disableTransitionOnChange:o}={},colorModeManager:a=Ane}=e,s=i==="dark"?"dark":"light",[l,u]=S.useState(()=>$M(a,s)),[d,h]=S.useState(()=>$M(a)),{getSystemTheme:m,setClassName:y,setDataset:b,addListener:w}=S.useMemo(()=>Tne({preventTransition:o}),[o]),E=i==="system"&&!l?d:l,_=S.useCallback(L=>{const O=L==="system"?m():L;u(O),y(O==="dark"),b(O),a.set(O)},[a,m,y,b]);Vl(()=>{i==="system"&&h(m())},[]),S.useEffect(()=>{const L=a.get();if(L){_(L);return}if(i==="system"){_("system");return}_(s)},[a,s,i,_]);const k=S.useCallback(()=>{_(E==="dark"?"light":"dark")},[E,_]);S.useEffect(()=>{if(r)return w(_)},[r,w,_]);const T=S.useMemo(()=>({colorMode:t??E,toggleColorMode:t?NM:k,setColorMode:t?NM:_,forced:t!==void 0}),[E,k,_,t]);return g.jsx(_9.Provider,{value:T,children:n})}J$.displayName="ColorModeProvider";function eF(){const e=Qy(),t=Zy();return{...e,theme:t}}var xt=(...e)=>e.filter(Boolean).join(" ");function One(){return!1}function ko(e){const t=typeof e;return e!=null&&(t==="object"||t==="function")&&!Array.isArray(e)}var Jy=e=>{const{condition:t,message:n}=e;t&&One()&&console.warn(n)};function ts(e,...t){return Rne(e)?e(...t):e}var Rne=e=>typeof e=="function",Bt=e=>e?"":void 0,Uu=e=>e?!0:void 0;function ht(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function Sw(...e){return function(n){e.forEach(r=>{r==null||r(n)})}}var WS={},Ine={get exports(){return WS},set exports(e){WS=e}};(function(e,t){var n=200,r="__lodash_hash_undefined__",i=800,o=16,a=9007199254740991,s="[object Arguments]",l="[object Array]",u="[object AsyncFunction]",d="[object Boolean]",h="[object Date]",m="[object Error]",y="[object Function]",b="[object GeneratorFunction]",w="[object Map]",E="[object Number]",_="[object Null]",k="[object Object]",T="[object Proxy]",L="[object RegExp]",O="[object Set]",D="[object String]",I="[object Undefined]",N="[object WeakMap]",W="[object ArrayBuffer]",B="[object DataView]",K="[object Float32Array]",ne="[object Float64Array]",z="[object Int8Array]",$="[object Int16Array]",V="[object Int32Array]",X="[object Uint8Array]",Q="[object Uint8ClampedArray]",G="[object Uint16Array]",Y="[object Uint32Array]",ee=/[\\^$.*+?()[\]{}|]/g,fe=/^\[object .+?Constructor\]$/,Ce=/^(?:0|[1-9]\d*)$/,we={};we[K]=we[ne]=we[z]=we[$]=we[V]=we[X]=we[Q]=we[G]=we[Y]=!0,we[s]=we[l]=we[W]=we[d]=we[B]=we[h]=we[m]=we[y]=we[w]=we[E]=we[k]=we[L]=we[O]=we[D]=we[N]=!1;var xe=typeof So=="object"&&So&&So.Object===Object&&So,Le=typeof self=="object"&&self&&self.Object===Object&&self,Se=xe||Le||Function("return this")(),Qe=t&&!t.nodeType&&t,Xe=Qe&&!0&&e&&!e.nodeType&&e,tt=Xe&&Xe.exports===Qe,yt=tt&&xe.process,Be=function(){try{var q=Xe&&Xe.require&&Xe.require("util").types;return q||yt&&yt.binding&&yt.binding("util")}catch{}}(),Ae=Be&&Be.isTypedArray;function bt(q,re,pe){switch(pe.length){case 0:return q.call(re);case 1:return q.call(re,pe[0]);case 2:return q.call(re,pe[0],pe[1]);case 3:return q.call(re,pe[0],pe[1],pe[2])}return q.apply(re,pe)}function Fe(q,re){for(var pe=-1,ot=Array(q);++pe-1}function P0(q,re){var pe=this.__data__,ot=xs(pe,q);return ot<0?(++this.size,pe.push([q,re])):pe[ot][1]=re,this}na.prototype.clear=mf,na.prototype.delete=E0,na.prototype.get=xc,na.prototype.has=vf,na.prototype.set=P0;function nl(q){var re=-1,pe=q==null?0:q.length;for(this.clear();++re1?pe[Ht-1]:void 0,St=Ht>2?pe[2]:void 0;for(mn=q.length>3&&typeof mn=="function"?(Ht--,mn):void 0,St&&Pp(pe[0],pe[1],St)&&(mn=Ht<3?void 0:mn,Ht=1),re=Object(re);++ot-1&&q%1==0&&q0){if(++re>=i)return arguments[0]}else re=0;return q.apply(void 0,arguments)}}function kc(q){if(q!=null){try{return He.call(q)}catch{}try{return q+""}catch{}}return""}function $a(q,re){return q===re||q!==q&&re!==re}var wf=pu(function(){return arguments}())?pu:function(q){return Xn(q)&&Ue.call(q,"callee")&&!zr.call(q,"callee")},vu=Array.isArray;function Gt(q){return q!=null&&Mp(q.length)&&!Pc(q)}function Tp(q){return Xn(q)&&Gt(q)}var Ec=vs||B0;function Pc(q){if(!aa(q))return!1;var re=il(q);return re==y||re==b||re==u||re==T}function Mp(q){return typeof q=="number"&&q>-1&&q%1==0&&q<=a}function aa(q){var re=typeof q;return q!=null&&(re=="object"||re=="function")}function Xn(q){return q!=null&&typeof q=="object"}function Cf(q){if(!Xn(q)||il(q)!=k)return!1;var re=qe(q);if(re===null)return!0;var pe=Ue.call(re,"constructor")&&re.constructor;return typeof pe=="function"&&pe instanceof pe&&He.call(pe)==vt}var Lp=Ae?at(Ae):wc;function _f(q){return ci(q,Ap(q))}function Ap(q){return Gt(q)?N0(q,!0):ol(q)}var cn=Ss(function(q,re,pe,ot){ra(q,re,pe,ot)});function qt(q){return function(){return q}}function Op(q){return q}function B0(){return!1}e.exports=cn})(Ine,WS);const Bl=WS;var Dne=e=>/!(important)?$/.test(e),FM=e=>typeof e=="string"?e.replace(/!(important)?$/,"").trim():e,jne=(e,t)=>n=>{const r=String(t),i=Dne(r),o=FM(r),a=e?`${e}.${o}`:o;let s=ko(n.__cssMap)&&a in n.__cssMap?n.__cssMap[a].varRef:t;return s=FM(s),i?`${s} !important`:s};function k9(e){const{scale:t,transform:n,compose:r}=e;return(o,a)=>{var s;const l=jne(t,o)(a);let u=(s=n==null?void 0:n(l,a))!=null?s:l;return r&&(u=r(u,a)),u}}var Ib=(...e)=>t=>e.reduce((n,r)=>r(n),t);function Ds(e,t){return n=>{const r={property:n,scale:e};return r.transform=k9({scale:e,transform:t}),r}}var Nne=({rtl:e,ltr:t})=>n=>n.direction==="rtl"?e:t;function $ne(e){const{property:t,scale:n,transform:r}=e;return{scale:n,property:Nne(t),transform:n?k9({scale:n,compose:r}):r}}var tF=["rotate(var(--chakra-rotate, 0))","scaleX(var(--chakra-scale-x, 1))","scaleY(var(--chakra-scale-y, 1))","skewX(var(--chakra-skew-x, 0))","skewY(var(--chakra-skew-y, 0))"];function Fne(){return["translateX(var(--chakra-translate-x, 0))","translateY(var(--chakra-translate-y, 0))",...tF].join(" ")}function Bne(){return["translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)",...tF].join(" ")}var zne={"--chakra-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-sepia":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-drop-shadow":"var(--chakra-empty,/*!*/ /*!*/)",filter:["var(--chakra-blur)","var(--chakra-brightness)","var(--chakra-contrast)","var(--chakra-grayscale)","var(--chakra-hue-rotate)","var(--chakra-invert)","var(--chakra-saturate)","var(--chakra-sepia)","var(--chakra-drop-shadow)"].join(" ")},Hne={backdropFilter:["var(--chakra-backdrop-blur)","var(--chakra-backdrop-brightness)","var(--chakra-backdrop-contrast)","var(--chakra-backdrop-grayscale)","var(--chakra-backdrop-hue-rotate)","var(--chakra-backdrop-invert)","var(--chakra-backdrop-opacity)","var(--chakra-backdrop-saturate)","var(--chakra-backdrop-sepia)"].join(" "),"--chakra-backdrop-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-opacity":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-sepia":"var(--chakra-empty,/*!*/ /*!*/)"};function Wne(e){return{"--chakra-ring-offset-shadow":"var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)","--chakra-ring-shadow":"var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)","--chakra-ring-width":e,boxShadow:["var(--chakra-ring-offset-shadow)","var(--chakra-ring-shadow)","var(--chakra-shadow, 0 0 #0000)"].join(", ")}}var Une={"row-reverse":{space:"--chakra-space-x-reverse",divide:"--chakra-divide-x-reverse"},"column-reverse":{space:"--chakra-space-y-reverse",divide:"--chakra-divide-y-reverse"}},c_={"to-t":"to top","to-tr":"to top right","to-r":"to right","to-br":"to bottom right","to-b":"to bottom","to-bl":"to bottom left","to-l":"to left","to-tl":"to top left"},Vne=new Set(Object.values(c_)),nF=new Set(["none","-moz-initial","inherit","initial","revert","unset"]),Gne=e=>e.trim();function qne(e,t){if(e==null||nF.has(e))return e;const r=/(^[a-z-A-Z]+)\((.*)\)/g.exec(e),i=r==null?void 0:r[1],o=r==null?void 0:r[2];if(!i||!o)return e;const a=i.includes("-gradient")?i:`${i}-gradient`,[s,...l]=o.split(",").map(Gne).filter(Boolean);if((l==null?void 0:l.length)===0)return e;const u=s in c_?c_[s]:s;l.unshift(u);const d=l.map(h=>{if(Vne.has(h))return h;const m=h.indexOf(" "),[y,b]=m!==-1?[h.substr(0,m),h.substr(m+1)]:[h],w=rF(b)?b:b&&b.split(" "),E=`colors.${y}`,_=E in t.__cssMap?t.__cssMap[E].varRef:y;return w?[_,...Array.isArray(w)?w:[w]].join(" "):_});return`${a}(${d.join(", ")})`}var rF=e=>typeof e=="string"&&e.includes("(")&&e.includes(")"),Kne=(e,t)=>qne(e,t??{});function Yne(e){return/^var\(--.+\)$/.test(e)}var Xne=e=>{const t=parseFloat(e.toString()),n=e.toString().replace(String(t),"");return{unitless:!n,value:t,unit:n}},Pl=e=>t=>`${e}(${t})`,ln={filter(e){return e!=="auto"?e:zne},backdropFilter(e){return e!=="auto"?e:Hne},ring(e){return Wne(ln.px(e))},bgClip(e){return e==="text"?{color:"transparent",backgroundClip:"text"}:{backgroundClip:e}},transform(e){return e==="auto"?Fne():e==="auto-gpu"?Bne():e},vh(e){return e==="$100vh"?"var(--chakra-vh)":e},px(e){if(e==null)return e;const{unitless:t}=Xne(e);return t||typeof e=="number"?`${e}px`:e},fraction(e){return typeof e!="number"||e>1?e:`${e*100}%`},float(e,t){const n={left:"right",right:"left"};return t.direction==="rtl"?n[e]:e},degree(e){if(Yne(e)||e==null)return e;const t=typeof e=="string"&&!e.endsWith("deg");return typeof e=="number"||t?`${e}deg`:e},gradient:Kne,blur:Pl("blur"),opacity:Pl("opacity"),brightness:Pl("brightness"),contrast:Pl("contrast"),dropShadow:Pl("drop-shadow"),grayscale:Pl("grayscale"),hueRotate:Pl("hue-rotate"),invert:Pl("invert"),saturate:Pl("saturate"),sepia:Pl("sepia"),bgImage(e){return e==null||rF(e)||nF.has(e)?e:`url(${e})`},outline(e){const t=String(e)==="0"||String(e)==="none";return e!==null&&t?{outline:"2px solid transparent",outlineOffset:"2px"}:{outline:e}},flexDirection(e){var t;const{space:n,divide:r}=(t=Une[e])!=null?t:{},i={flexDirection:e};return n&&(i[n]=1),r&&(i[r]=1),i}},oe={borderWidths:Ds("borderWidths"),borderStyles:Ds("borderStyles"),colors:Ds("colors"),borders:Ds("borders"),radii:Ds("radii",ln.px),space:Ds("space",Ib(ln.vh,ln.px)),spaceT:Ds("space",Ib(ln.vh,ln.px)),degreeT(e){return{property:e,transform:ln.degree}},prop(e,t,n){return{property:e,scale:t,...t&&{transform:k9({scale:t,transform:n})}}},propT(e,t){return{property:e,transform:t}},sizes:Ds("sizes",Ib(ln.vh,ln.px)),sizesT:Ds("sizes",Ib(ln.vh,ln.fraction)),shadows:Ds("shadows"),logical:$ne,blur:Ds("blur",ln.blur)},Ux={background:oe.colors("background"),backgroundColor:oe.colors("backgroundColor"),backgroundImage:oe.propT("backgroundImage",ln.bgImage),backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundAttachment:!0,backgroundClip:{transform:ln.bgClip},bgSize:oe.prop("backgroundSize"),bgPosition:oe.prop("backgroundPosition"),bg:oe.colors("background"),bgColor:oe.colors("backgroundColor"),bgPos:oe.prop("backgroundPosition"),bgRepeat:oe.prop("backgroundRepeat"),bgAttachment:oe.prop("backgroundAttachment"),bgGradient:oe.propT("backgroundImage",ln.gradient),bgClip:{transform:ln.bgClip}};Object.assign(Ux,{bgImage:Ux.backgroundImage,bgImg:Ux.backgroundImage});var yn={border:oe.borders("border"),borderWidth:oe.borderWidths("borderWidth"),borderStyle:oe.borderStyles("borderStyle"),borderColor:oe.colors("borderColor"),borderRadius:oe.radii("borderRadius"),borderTop:oe.borders("borderTop"),borderBlockStart:oe.borders("borderBlockStart"),borderTopLeftRadius:oe.radii("borderTopLeftRadius"),borderStartStartRadius:oe.logical({scale:"radii",property:{ltr:"borderTopLeftRadius",rtl:"borderTopRightRadius"}}),borderEndStartRadius:oe.logical({scale:"radii",property:{ltr:"borderBottomLeftRadius",rtl:"borderBottomRightRadius"}}),borderTopRightRadius:oe.radii("borderTopRightRadius"),borderStartEndRadius:oe.logical({scale:"radii",property:{ltr:"borderTopRightRadius",rtl:"borderTopLeftRadius"}}),borderEndEndRadius:oe.logical({scale:"radii",property:{ltr:"borderBottomRightRadius",rtl:"borderBottomLeftRadius"}}),borderRight:oe.borders("borderRight"),borderInlineEnd:oe.borders("borderInlineEnd"),borderBottom:oe.borders("borderBottom"),borderBlockEnd:oe.borders("borderBlockEnd"),borderBottomLeftRadius:oe.radii("borderBottomLeftRadius"),borderBottomRightRadius:oe.radii("borderBottomRightRadius"),borderLeft:oe.borders("borderLeft"),borderInlineStart:{property:"borderInlineStart",scale:"borders"},borderInlineStartRadius:oe.logical({scale:"radii",property:{ltr:["borderTopLeftRadius","borderBottomLeftRadius"],rtl:["borderTopRightRadius","borderBottomRightRadius"]}}),borderInlineEndRadius:oe.logical({scale:"radii",property:{ltr:["borderTopRightRadius","borderBottomRightRadius"],rtl:["borderTopLeftRadius","borderBottomLeftRadius"]}}),borderX:oe.borders(["borderLeft","borderRight"]),borderInline:oe.borders("borderInline"),borderY:oe.borders(["borderTop","borderBottom"]),borderBlock:oe.borders("borderBlock"),borderTopWidth:oe.borderWidths("borderTopWidth"),borderBlockStartWidth:oe.borderWidths("borderBlockStartWidth"),borderTopColor:oe.colors("borderTopColor"),borderBlockStartColor:oe.colors("borderBlockStartColor"),borderTopStyle:oe.borderStyles("borderTopStyle"),borderBlockStartStyle:oe.borderStyles("borderBlockStartStyle"),borderBottomWidth:oe.borderWidths("borderBottomWidth"),borderBlockEndWidth:oe.borderWidths("borderBlockEndWidth"),borderBottomColor:oe.colors("borderBottomColor"),borderBlockEndColor:oe.colors("borderBlockEndColor"),borderBottomStyle:oe.borderStyles("borderBottomStyle"),borderBlockEndStyle:oe.borderStyles("borderBlockEndStyle"),borderLeftWidth:oe.borderWidths("borderLeftWidth"),borderInlineStartWidth:oe.borderWidths("borderInlineStartWidth"),borderLeftColor:oe.colors("borderLeftColor"),borderInlineStartColor:oe.colors("borderInlineStartColor"),borderLeftStyle:oe.borderStyles("borderLeftStyle"),borderInlineStartStyle:oe.borderStyles("borderInlineStartStyle"),borderRightWidth:oe.borderWidths("borderRightWidth"),borderInlineEndWidth:oe.borderWidths("borderInlineEndWidth"),borderRightColor:oe.colors("borderRightColor"),borderInlineEndColor:oe.colors("borderInlineEndColor"),borderRightStyle:oe.borderStyles("borderRightStyle"),borderInlineEndStyle:oe.borderStyles("borderInlineEndStyle"),borderTopRadius:oe.radii(["borderTopLeftRadius","borderTopRightRadius"]),borderBottomRadius:oe.radii(["borderBottomLeftRadius","borderBottomRightRadius"]),borderLeftRadius:oe.radii(["borderTopLeftRadius","borderBottomLeftRadius"]),borderRightRadius:oe.radii(["borderTopRightRadius","borderBottomRightRadius"])};Object.assign(yn,{rounded:yn.borderRadius,roundedTop:yn.borderTopRadius,roundedTopLeft:yn.borderTopLeftRadius,roundedTopRight:yn.borderTopRightRadius,roundedTopStart:yn.borderStartStartRadius,roundedTopEnd:yn.borderStartEndRadius,roundedBottom:yn.borderBottomRadius,roundedBottomLeft:yn.borderBottomLeftRadius,roundedBottomRight:yn.borderBottomRightRadius,roundedBottomStart:yn.borderEndStartRadius,roundedBottomEnd:yn.borderEndEndRadius,roundedLeft:yn.borderLeftRadius,roundedRight:yn.borderRightRadius,roundedStart:yn.borderInlineStartRadius,roundedEnd:yn.borderInlineEndRadius,borderStart:yn.borderInlineStart,borderEnd:yn.borderInlineEnd,borderTopStartRadius:yn.borderStartStartRadius,borderTopEndRadius:yn.borderStartEndRadius,borderBottomStartRadius:yn.borderEndStartRadius,borderBottomEndRadius:yn.borderEndEndRadius,borderStartRadius:yn.borderInlineStartRadius,borderEndRadius:yn.borderInlineEndRadius,borderStartWidth:yn.borderInlineStartWidth,borderEndWidth:yn.borderInlineEndWidth,borderStartColor:yn.borderInlineStartColor,borderEndColor:yn.borderInlineEndColor,borderStartStyle:yn.borderInlineStartStyle,borderEndStyle:yn.borderInlineEndStyle});var Zne={color:oe.colors("color"),textColor:oe.colors("color"),fill:oe.colors("fill"),stroke:oe.colors("stroke")},d_={boxShadow:oe.shadows("boxShadow"),mixBlendMode:!0,blendMode:oe.prop("mixBlendMode"),backgroundBlendMode:!0,bgBlendMode:oe.prop("backgroundBlendMode"),opacity:!0};Object.assign(d_,{shadow:d_.boxShadow});var Qne={filter:{transform:ln.filter},blur:oe.blur("--chakra-blur"),brightness:oe.propT("--chakra-brightness",ln.brightness),contrast:oe.propT("--chakra-contrast",ln.contrast),hueRotate:oe.degreeT("--chakra-hue-rotate"),invert:oe.propT("--chakra-invert",ln.invert),saturate:oe.propT("--chakra-saturate",ln.saturate),dropShadow:oe.propT("--chakra-drop-shadow",ln.dropShadow),backdropFilter:{transform:ln.backdropFilter},backdropBlur:oe.blur("--chakra-backdrop-blur"),backdropBrightness:oe.propT("--chakra-backdrop-brightness",ln.brightness),backdropContrast:oe.propT("--chakra-backdrop-contrast",ln.contrast),backdropHueRotate:oe.degreeT("--chakra-backdrop-hue-rotate"),backdropInvert:oe.propT("--chakra-backdrop-invert",ln.invert),backdropSaturate:oe.propT("--chakra-backdrop-saturate",ln.saturate)},US={alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:{transform:ln.flexDirection},flex:!0,flexFlow:!0,flexGrow:!0,flexShrink:!0,flexBasis:oe.sizes("flexBasis"),justifySelf:!0,alignSelf:!0,order:!0,placeItems:!0,placeContent:!0,placeSelf:!0,gap:oe.space("gap"),rowGap:oe.space("rowGap"),columnGap:oe.space("columnGap")};Object.assign(US,{flexDir:US.flexDirection});var iF={gridGap:oe.space("gridGap"),gridColumnGap:oe.space("gridColumnGap"),gridRowGap:oe.space("gridRowGap"),gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridColumnStart:!0,gridColumnEnd:!0,gridRowStart:!0,gridRowEnd:!0,gridAutoRows:!0,gridTemplate:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0},Jne={appearance:!0,cursor:!0,resize:!0,userSelect:!0,pointerEvents:!0,outline:{transform:ln.outline},outlineOffset:!0,outlineColor:oe.colors("outlineColor")},Ka={width:oe.sizesT("width"),inlineSize:oe.sizesT("inlineSize"),height:oe.sizes("height"),blockSize:oe.sizes("blockSize"),boxSize:oe.sizes(["width","height"]),minWidth:oe.sizes("minWidth"),minInlineSize:oe.sizes("minInlineSize"),minHeight:oe.sizes("minHeight"),minBlockSize:oe.sizes("minBlockSize"),maxWidth:oe.sizes("maxWidth"),maxInlineSize:oe.sizes("maxInlineSize"),maxHeight:oe.sizes("maxHeight"),maxBlockSize:oe.sizes("maxBlockSize"),overflow:!0,overflowX:!0,overflowY:!0,overscrollBehavior:!0,overscrollBehaviorX:!0,overscrollBehaviorY:!0,display:!0,hideFrom:{scale:"breakpoints",transform:(e,t)=>{var n,r,i;return{[(i=(r=(n=t.__breakpoints)==null?void 0:n.get(e))==null?void 0:r.minWQuery)!=null?i:`@media screen and (min-width: ${e})`]:{display:"none"}}}},hideBelow:{scale:"breakpoints",transform:(e,t)=>{var n,r,i;return{[(i=(r=(n=t.__breakpoints)==null?void 0:n.get(e))==null?void 0:r.maxWQuery)!=null?i:`@media screen and (max-width: ${e})`]:{display:"none"}}}},verticalAlign:!0,boxSizing:!0,boxDecorationBreak:!0,float:oe.propT("float",ln.float),objectFit:!0,objectPosition:!0,visibility:!0,isolation:!0};Object.assign(Ka,{w:Ka.width,h:Ka.height,minW:Ka.minWidth,maxW:Ka.maxWidth,minH:Ka.minHeight,maxH:Ka.maxHeight,overscroll:Ka.overscrollBehavior,overscrollX:Ka.overscrollBehaviorX,overscrollY:Ka.overscrollBehaviorY});var ere={listStyleType:!0,listStylePosition:!0,listStylePos:oe.prop("listStylePosition"),listStyleImage:!0,listStyleImg:oe.prop("listStyleImage")};function tre(e,t,n,r){const i=typeof t=="string"?t.split("."):[t];for(r=0;r{const t=new WeakMap;return(r,i,o,a)=>{if(typeof r>"u")return e(r,i,o);t.has(r)||t.set(r,new Map);const s=t.get(r);if(s.has(i))return s.get(i);const l=e(r,i,o,a);return s.set(i,l),l}},rre=nre(tre),ire={border:"0px",clip:"rect(0, 0, 0, 0)",width:"1px",height:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},ore={position:"static",width:"auto",height:"auto",clip:"auto",padding:"0",margin:"0",overflow:"visible",whiteSpace:"normal"},R5=(e,t,n)=>{const r={},i=rre(e,t,{});for(const o in i)o in n&&n[o]!=null||(r[o]=i[o]);return r},are={srOnly:{transform(e){return e===!0?ire:e==="focusable"?ore:{}}},layerStyle:{processResult:!0,transform:(e,t,n)=>R5(t,`layerStyles.${e}`,n)},textStyle:{processResult:!0,transform:(e,t,n)=>R5(t,`textStyles.${e}`,n)},apply:{processResult:!0,transform:(e,t,n)=>R5(t,e,n)}},O1={position:!0,pos:oe.prop("position"),zIndex:oe.prop("zIndex","zIndices"),inset:oe.spaceT("inset"),insetX:oe.spaceT(["left","right"]),insetInline:oe.spaceT("insetInline"),insetY:oe.spaceT(["top","bottom"]),insetBlock:oe.spaceT("insetBlock"),top:oe.spaceT("top"),insetBlockStart:oe.spaceT("insetBlockStart"),bottom:oe.spaceT("bottom"),insetBlockEnd:oe.spaceT("insetBlockEnd"),left:oe.spaceT("left"),insetInlineStart:oe.logical({scale:"space",property:{ltr:"left",rtl:"right"}}),right:oe.spaceT("right"),insetInlineEnd:oe.logical({scale:"space",property:{ltr:"right",rtl:"left"}})};Object.assign(O1,{insetStart:O1.insetInlineStart,insetEnd:O1.insetInlineEnd});var sre={ring:{transform:ln.ring},ringColor:oe.colors("--chakra-ring-color"),ringOffset:oe.prop("--chakra-ring-offset-width"),ringOffsetColor:oe.colors("--chakra-ring-offset-color"),ringInset:oe.prop("--chakra-ring-inset")},or={margin:oe.spaceT("margin"),marginTop:oe.spaceT("marginTop"),marginBlockStart:oe.spaceT("marginBlockStart"),marginRight:oe.spaceT("marginRight"),marginInlineEnd:oe.spaceT("marginInlineEnd"),marginBottom:oe.spaceT("marginBottom"),marginBlockEnd:oe.spaceT("marginBlockEnd"),marginLeft:oe.spaceT("marginLeft"),marginInlineStart:oe.spaceT("marginInlineStart"),marginX:oe.spaceT(["marginInlineStart","marginInlineEnd"]),marginInline:oe.spaceT("marginInline"),marginY:oe.spaceT(["marginTop","marginBottom"]),marginBlock:oe.spaceT("marginBlock"),padding:oe.space("padding"),paddingTop:oe.space("paddingTop"),paddingBlockStart:oe.space("paddingBlockStart"),paddingRight:oe.space("paddingRight"),paddingBottom:oe.space("paddingBottom"),paddingBlockEnd:oe.space("paddingBlockEnd"),paddingLeft:oe.space("paddingLeft"),paddingInlineStart:oe.space("paddingInlineStart"),paddingInlineEnd:oe.space("paddingInlineEnd"),paddingX:oe.space(["paddingInlineStart","paddingInlineEnd"]),paddingInline:oe.space("paddingInline"),paddingY:oe.space(["paddingTop","paddingBottom"]),paddingBlock:oe.space("paddingBlock")};Object.assign(or,{m:or.margin,mt:or.marginTop,mr:or.marginRight,me:or.marginInlineEnd,marginEnd:or.marginInlineEnd,mb:or.marginBottom,ml:or.marginLeft,ms:or.marginInlineStart,marginStart:or.marginInlineStart,mx:or.marginX,my:or.marginY,p:or.padding,pt:or.paddingTop,py:or.paddingY,px:or.paddingX,pb:or.paddingBottom,pl:or.paddingLeft,ps:or.paddingInlineStart,paddingStart:or.paddingInlineStart,pr:or.paddingRight,pe:or.paddingInlineEnd,paddingEnd:or.paddingInlineEnd});var lre={textDecorationColor:oe.colors("textDecorationColor"),textDecoration:!0,textDecor:{property:"textDecoration"},textDecorationLine:!0,textDecorationStyle:!0,textDecorationThickness:!0,textUnderlineOffset:!0,textShadow:oe.shadows("textShadow")},ure={clipPath:!0,transform:oe.propT("transform",ln.transform),transformOrigin:!0,translateX:oe.spaceT("--chakra-translate-x"),translateY:oe.spaceT("--chakra-translate-y"),skewX:oe.degreeT("--chakra-skew-x"),skewY:oe.degreeT("--chakra-skew-y"),scaleX:oe.prop("--chakra-scale-x"),scaleY:oe.prop("--chakra-scale-y"),scale:oe.prop(["--chakra-scale-x","--chakra-scale-y"]),rotate:oe.degreeT("--chakra-rotate")},cre={transition:!0,transitionDelay:!0,animation:!0,willChange:!0,transitionDuration:oe.prop("transitionDuration","transition.duration"),transitionProperty:oe.prop("transitionProperty","transition.property"),transitionTimingFunction:oe.prop("transitionTimingFunction","transition.easing")},dre={fontFamily:oe.prop("fontFamily","fonts"),fontSize:oe.prop("fontSize","fontSizes",ln.px),fontWeight:oe.prop("fontWeight","fontWeights"),lineHeight:oe.prop("lineHeight","lineHeights"),letterSpacing:oe.prop("letterSpacing","letterSpacings"),textAlign:!0,fontStyle:!0,textIndent:!0,wordBreak:!0,overflowWrap:!0,textOverflow:!0,textTransform:!0,whiteSpace:!0,isTruncated:{transform(e){if(e===!0)return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}},noOfLines:{static:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"var(--chakra-line-clamp)"},property:"--chakra-line-clamp"}},fre={scrollBehavior:!0,scrollSnapAlign:!0,scrollSnapStop:!0,scrollSnapType:!0,scrollMargin:oe.spaceT("scrollMargin"),scrollMarginTop:oe.spaceT("scrollMarginTop"),scrollMarginBottom:oe.spaceT("scrollMarginBottom"),scrollMarginLeft:oe.spaceT("scrollMarginLeft"),scrollMarginRight:oe.spaceT("scrollMarginRight"),scrollMarginX:oe.spaceT(["scrollMarginLeft","scrollMarginRight"]),scrollMarginY:oe.spaceT(["scrollMarginTop","scrollMarginBottom"]),scrollPadding:oe.spaceT("scrollPadding"),scrollPaddingTop:oe.spaceT("scrollPaddingTop"),scrollPaddingBottom:oe.spaceT("scrollPaddingBottom"),scrollPaddingLeft:oe.spaceT("scrollPaddingLeft"),scrollPaddingRight:oe.spaceT("scrollPaddingRight"),scrollPaddingX:oe.spaceT(["scrollPaddingLeft","scrollPaddingRight"]),scrollPaddingY:oe.spaceT(["scrollPaddingTop","scrollPaddingBottom"])};function oF(e){return ko(e)&&e.reference?e.reference:String(e)}var ww=(e,...t)=>t.map(oF).join(` ${e} `).replace(/calc/g,""),BM=(...e)=>`calc(${ww("+",...e)})`,zM=(...e)=>`calc(${ww("-",...e)})`,f_=(...e)=>`calc(${ww("*",...e)})`,HM=(...e)=>`calc(${ww("/",...e)})`,WM=e=>{const t=oF(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:f_(t,-1)},bh=Object.assign(e=>({add:(...t)=>bh(BM(e,...t)),subtract:(...t)=>bh(zM(e,...t)),multiply:(...t)=>bh(f_(e,...t)),divide:(...t)=>bh(HM(e,...t)),negate:()=>bh(WM(e)),toString:()=>e.toString()}),{add:BM,subtract:zM,multiply:f_,divide:HM,negate:WM});function hre(e,t="-"){return e.replace(/\s+/g,t)}function pre(e){const t=hre(e.toString());return mre(gre(t))}function gre(e){return e.includes("\\.")?e:!Number.isInteger(parseFloat(e.toString()))?e.replace(".","\\."):e}function mre(e){return e.replace(/[!-,/:-@[-^`{-~]/g,"\\$&")}function vre(e,t=""){return[t,e].filter(Boolean).join("-")}function yre(e,t){return`var(${e}${t?`, ${t}`:""})`}function bre(e,t=""){return pre(`--${vre(e,t)}`)}function gn(e,t,n){const r=bre(e,n);return{variable:r,reference:yre(r,t)}}function xre(e){const t=e==null?0:e.length;return t?e[t-1]:void 0}function Sre(e){const t=parseFloat(e.toString()),n=e.toString().replace(String(t),"");return{unitless:!n,value:t,unit:n}}function h_(e){if(e==null)return e;const{unitless:t}=Sre(e);return t||typeof e=="number"?`${e}px`:e}var aF=(e,t)=>parseInt(e[1],10)>parseInt(t[1],10)?1:-1,E9=e=>Object.fromEntries(Object.entries(e).sort(aF));function UM(e){const t=E9(e);return Object.assign(Object.values(t),t)}function wre(e){const t=Object.keys(E9(e));return new Set(t)}function VM(e){var t;if(!e)return e;e=(t=h_(e))!=null?t:e;const n=-.02;return typeof e=="number"?`${e+n}`:e.replace(/(\d+\.?\d*)/u,r=>`${parseFloat(r)+n}`)}function l1(e,t){const n=["@media screen"];return e&&n.push("and",`(min-width: ${h_(e)})`),t&&n.push("and",`(max-width: ${h_(t)})`),n.join(" ")}function Cre(e){var t;if(!e)return null;e.base=(t=e.base)!=null?t:"0px";const n=UM(e),r=Object.entries(e).sort(aF).map(([a,s],l,u)=>{var d;let[,h]=(d=u[l+1])!=null?d:[];return h=parseFloat(h)>0?VM(h):void 0,{_minW:VM(s),breakpoint:a,minW:s,maxW:h,maxWQuery:l1(null,h),minWQuery:l1(s),minMaxQuery:l1(s,h)}}),i=wre(e),o=Array.from(i.values());return{keys:i,normalized:n,isResponsive(a){const s=Object.keys(a);return s.length>0&&s.every(l=>i.has(l))},asObject:E9(e),asArray:UM(e),details:r,get(a){return r.find(s=>s.breakpoint===a)},media:[null,...n.map(a=>l1(a)).slice(1)],toArrayValue(a){if(!ko(a))throw new Error("toArrayValue: value must be an object");const s=o.map(l=>{var u;return(u=a[l])!=null?u:null});for(;xre(s)===null;)s.pop();return s},toObjectValue(a){if(!Array.isArray(a))throw new Error("toObjectValue: value must be an array");return a.reduce((s,l,u)=>{const d=o[u];return d!=null&&l!=null&&(s[d]=l),s},{})}}}var zi={hover:(e,t)=>`${e}:hover ${t}, ${e}[data-hover] ${t}`,focus:(e,t)=>`${e}:focus ${t}, ${e}[data-focus] ${t}`,focusVisible:(e,t)=>`${e}:focus-visible ${t}`,focusWithin:(e,t)=>`${e}:focus-within ${t}`,active:(e,t)=>`${e}:active ${t}, ${e}[data-active] ${t}`,disabled:(e,t)=>`${e}:disabled ${t}, ${e}[data-disabled] ${t}`,invalid:(e,t)=>`${e}:invalid ${t}, ${e}[data-invalid] ${t}`,checked:(e,t)=>`${e}:checked ${t}, ${e}[data-checked] ${t}`,indeterminate:(e,t)=>`${e}:indeterminate ${t}, ${e}[aria-checked=mixed] ${t}, ${e}[data-indeterminate] ${t}`,readOnly:(e,t)=>`${e}:read-only ${t}, ${e}[readonly] ${t}, ${e}[data-read-only] ${t}`,expanded:(e,t)=>`${e}:read-only ${t}, ${e}[aria-expanded=true] ${t}, ${e}[data-expanded] ${t}`,placeholderShown:(e,t)=>`${e}:placeholder-shown ${t}`},ad=e=>sF(t=>e(t,"&"),"[role=group]","[data-group]",".group"),Au=e=>sF(t=>e(t,"~ &"),"[data-peer]",".peer"),sF=(e,...t)=>t.map(e).join(", "),Cw={_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_highlighted:"&[data-highlighted]",_focusWithin:"&:focus-within",_focusVisible:"&:focus-visible, &[data-focus-visible]",_disabled:"&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]",_readOnly:"&[aria-readonly=true], &[readonly], &[data-readonly]",_before:"&::before",_after:"&::after",_empty:"&:empty",_expanded:"&[aria-expanded=true], &[data-expanded]",_checked:"&[aria-checked=true], &[data-checked]",_grabbed:"&[aria-grabbed=true], &[data-grabbed]",_pressed:"&[aria-pressed=true], &[data-pressed]",_invalid:"&[aria-invalid=true], &[data-invalid]",_valid:"&[data-valid], &[data-state=valid]",_loading:"&[data-loading], &[aria-busy=true]",_selected:"&[aria-selected=true], &[data-selected]",_hidden:"&[hidden], &[data-hidden]",_autofill:"&:-webkit-autofill",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_first:"&:first-of-type",_last:"&:last-of-type",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_visited:"&:visited",_activeLink:"&[aria-current=page]",_activeStep:"&[aria-current=step]",_indeterminate:"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]",_groupHover:ad(zi.hover),_peerHover:Au(zi.hover),_groupFocus:ad(zi.focus),_peerFocus:Au(zi.focus),_groupFocusVisible:ad(zi.focusVisible),_peerFocusVisible:Au(zi.focusVisible),_groupActive:ad(zi.active),_peerActive:Au(zi.active),_groupDisabled:ad(zi.disabled),_peerDisabled:Au(zi.disabled),_groupInvalid:ad(zi.invalid),_peerInvalid:Au(zi.invalid),_groupChecked:ad(zi.checked),_peerChecked:Au(zi.checked),_groupFocusWithin:ad(zi.focusWithin),_peerFocusWithin:Au(zi.focusWithin),_peerPlaceholderShown:Au(zi.placeholderShown),_placeholder:"&::placeholder",_placeholderShown:"&:placeholder-shown",_fullScreen:"&:fullscreen",_selection:"&::selection",_rtl:"[dir=rtl] &, &[dir=rtl]",_ltr:"[dir=ltr] &, &[dir=ltr]",_mediaDark:"@media (prefers-color-scheme: dark)",_mediaReduceMotion:"@media (prefers-reduced-motion: reduce)",_dark:".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]",_light:".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]"},_re=Object.keys(Cw);function GM(e,t){return gn(String(e).replace(/\./g,"-"),void 0,t)}function kre(e,t){let n={};const r={};for(const[i,o]of Object.entries(e)){const{isSemantic:a,value:s}=o,{variable:l,reference:u}=GM(i,t==null?void 0:t.cssVarPrefix);if(!a){if(i.startsWith("space")){const m=i.split("."),[y,...b]=m,w=`${y}.-${b.join(".")}`,E=bh.negate(s),_=bh.negate(u);r[w]={value:E,var:l,varRef:_}}n[l]=s,r[i]={value:s,var:l,varRef:u};continue}const d=m=>{const b=[String(i).split(".")[0],m].join(".");if(!e[b])return m;const{reference:E}=GM(b,t==null?void 0:t.cssVarPrefix);return E},h=ko(s)?s:{default:s};n=Bl(n,Object.entries(h).reduce((m,[y,b])=>{var w,E;const _=d(b);if(y==="default")return m[l]=_,m;const k=(E=(w=Cw)==null?void 0:w[y])!=null?E:y;return m[k]={[l]:_},m},{})),r[i]={value:u,var:l,varRef:u}}return{cssVars:n,cssMap:r}}function Ere(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function Pre(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}var Tre=["colors","borders","borderWidths","borderStyles","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","space","shadows","sizes","zIndices","transition","blur","breakpoints"];function Mre(e){return Pre(e,Tre)}function Lre(e){return e.semanticTokens}function Are(e){const{__cssMap:t,__cssVars:n,__breakpoints:r,...i}=e;return i}function Ore({tokens:e,semanticTokens:t}){var n,r;const i=Object.entries((n=p_(e))!=null?n:{}).map(([a,s])=>[a,{isSemantic:!1,value:s}]),o=Object.entries((r=p_(t,1))!=null?r:{}).map(([a,s])=>[a,{isSemantic:!0,value:s}]);return Object.fromEntries([...i,...o])}function p_(e,t=1/0){return!ko(e)&&!Array.isArray(e)||!t?e:Object.entries(e).reduce((n,[r,i])=>(ko(i)||Array.isArray(i)?Object.entries(p_(i,t-1)).forEach(([o,a])=>{n[`${r}.${o}`]=a}):n[r]=i,n),{})}function Rre(e){var t;const n=Are(e),r=Mre(n),i=Lre(n),o=Ore({tokens:r,semanticTokens:i}),a=(t=n.config)==null?void 0:t.cssVarPrefix,{cssMap:s,cssVars:l}=kre(o,{cssVarPrefix:a});return Object.assign(n,{__cssVars:{...{"--chakra-ring-inset":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-ring-offset-width":"0px","--chakra-ring-offset-color":"#fff","--chakra-ring-color":"rgba(66, 153, 225, 0.6)","--chakra-ring-offset-shadow":"0 0 #0000","--chakra-ring-shadow":"0 0 #0000","--chakra-space-x-reverse":"0","--chakra-space-y-reverse":"0"},...l},__cssMap:s,__breakpoints:Cre(n.breakpoints)}),n}var P9=Bl({},Ux,yn,Zne,US,Ka,Qne,sre,Jne,iF,are,O1,d_,or,fre,dre,lre,ure,ere,cre),Ire=Object.assign({},or,Ka,US,iF,O1),lF=Object.keys(Ire),Dre=[...Object.keys(P9),..._re],jre={...P9,...Cw},Nre=e=>e in jre,$re=e=>t=>{if(!t.__breakpoints)return e;const{isResponsive:n,toArrayValue:r,media:i}=t.__breakpoints,o={};for(const a in e){let s=ts(e[a],t);if(s==null)continue;if(s=ko(s)&&n(s)?r(s):s,!Array.isArray(s)){o[a]=s;continue}const l=s.slice(0,i.length).length;for(let u=0;ue.startsWith("--")&&typeof t=="string"&&!Bre(t),Hre=(e,t)=>{var n,r;if(t==null)return t;const i=l=>{var u,d;return(d=(u=e.__cssMap)==null?void 0:u[l])==null?void 0:d.varRef},o=l=>{var u;return(u=i(l))!=null?u:l},[a,s]=Fre(t);return t=(r=(n=i(a))!=null?n:o(s))!=null?r:o(t),t};function Wre(e){const{configs:t={},pseudos:n={},theme:r}=e,i=(o,a=!1)=>{var s,l,u;const d=ts(o,r),h=$re(d)(r);let m={};for(let y in h){const b=h[y];let w=ts(b,r);y in n&&(y=n[y]),zre(y,w)&&(w=Hre(r,w));let E=t[y];if(E===!0&&(E={property:y}),ko(w)){m[y]=(s=m[y])!=null?s:{},m[y]=Bl({},m[y],i(w,!0));continue}let _=(u=(l=E==null?void 0:E.transform)==null?void 0:l.call(E,w,r,d))!=null?u:w;_=E!=null&&E.processResult?i(_,!0):_;const k=ts(E==null?void 0:E.property,r);if(!a&&(E!=null&&E.static)){const T=ts(E.static,r);m=Bl({},m,T)}if(k&&Array.isArray(k)){for(const T of k)m[T]=_;continue}if(k){k==="&"&&ko(_)?m=Bl({},m,_):m[k]=_;continue}if(ko(_)){m=Bl({},m,_);continue}m[y]=_}return m};return i}var uF=e=>t=>Wre({theme:t,pseudos:Cw,configs:P9})(e);function dr(e){return{definePartsStyle(t){return t},defineMultiStyleConfig(t){return{parts:e,...t}}}}function Ure(e,t){if(Array.isArray(e))return e;if(ko(e))return t(e);if(e!=null)return[e]}function Vre(e,t){for(let n=t+1;n{Bl(u,{[T]:m?k[T]:{[_]:k[T]}})});continue}if(!y){m?Bl(u,k):u[_]=k;continue}u[_]=k}}return u}}function qre(e){return t=>{var n;const{variant:r,size:i,theme:o}=t,a=Gre(o);return Bl({},ts((n=e.baseStyle)!=null?n:{},t),a(e,"sizes",i,t),a(e,"variants",r,t))}}function Kre(e,t,n){var r,i,o;return(o=(i=(r=e.__cssMap)==null?void 0:r[`${t}.${n}`])==null?void 0:i.varRef)!=null?o:n}function fr(e){return Ere(e,["styleConfig","size","variant","colorScheme"])}var Yre={hide:-1,auto:"auto",base:0,docked:10,dropdown:1e3,sticky:1100,banner:1200,overlay:1300,modal:1400,popover:1500,skipLink:1600,toast:1700,tooltip:1800},Xre=Yre,Zre={base:"0em",sm:"30em",md:"48em",lg:"62em",xl:"80em","2xl":"96em"},Qre=Zre,Jre={transparent:"transparent",current:"currentColor",black:"#000000",white:"#FFFFFF",whiteAlpha:{50:"rgba(255, 255, 255, 0.04)",100:"rgba(255, 255, 255, 0.06)",200:"rgba(255, 255, 255, 0.08)",300:"rgba(255, 255, 255, 0.16)",400:"rgba(255, 255, 255, 0.24)",500:"rgba(255, 255, 255, 0.36)",600:"rgba(255, 255, 255, 0.48)",700:"rgba(255, 255, 255, 0.64)",800:"rgba(255, 255, 255, 0.80)",900:"rgba(255, 255, 255, 0.92)"},blackAlpha:{50:"rgba(0, 0, 0, 0.04)",100:"rgba(0, 0, 0, 0.06)",200:"rgba(0, 0, 0, 0.08)",300:"rgba(0, 0, 0, 0.16)",400:"rgba(0, 0, 0, 0.24)",500:"rgba(0, 0, 0, 0.36)",600:"rgba(0, 0, 0, 0.48)",700:"rgba(0, 0, 0, 0.64)",800:"rgba(0, 0, 0, 0.80)",900:"rgba(0, 0, 0, 0.92)"},gray:{50:"#F7FAFC",100:"#EDF2F7",200:"#E2E8F0",300:"#CBD5E0",400:"#A0AEC0",500:"#718096",600:"#4A5568",700:"#2D3748",800:"#1A202C",900:"#171923"},red:{50:"#FFF5F5",100:"#FED7D7",200:"#FEB2B2",300:"#FC8181",400:"#F56565",500:"#E53E3E",600:"#C53030",700:"#9B2C2C",800:"#822727",900:"#63171B"},orange:{50:"#FFFAF0",100:"#FEEBC8",200:"#FBD38D",300:"#F6AD55",400:"#ED8936",500:"#DD6B20",600:"#C05621",700:"#9C4221",800:"#7B341E",900:"#652B19"},yellow:{50:"#FFFFF0",100:"#FEFCBF",200:"#FAF089",300:"#F6E05E",400:"#ECC94B",500:"#D69E2E",600:"#B7791F",700:"#975A16",800:"#744210",900:"#5F370E"},green:{50:"#F0FFF4",100:"#C6F6D5",200:"#9AE6B4",300:"#68D391",400:"#48BB78",500:"#38A169",600:"#2F855A",700:"#276749",800:"#22543D",900:"#1C4532"},teal:{50:"#E6FFFA",100:"#B2F5EA",200:"#81E6D9",300:"#4FD1C5",400:"#38B2AC",500:"#319795",600:"#2C7A7B",700:"#285E61",800:"#234E52",900:"#1D4044"},blue:{50:"#ebf8ff",100:"#bee3f8",200:"#90cdf4",300:"#63b3ed",400:"#4299e1",500:"#3182ce",600:"#2b6cb0",700:"#2c5282",800:"#2a4365",900:"#1A365D"},cyan:{50:"#EDFDFD",100:"#C4F1F9",200:"#9DECF9",300:"#76E4F7",400:"#0BC5EA",500:"#00B5D8",600:"#00A3C4",700:"#0987A0",800:"#086F83",900:"#065666"},purple:{50:"#FAF5FF",100:"#E9D8FD",200:"#D6BCFA",300:"#B794F4",400:"#9F7AEA",500:"#805AD5",600:"#6B46C1",700:"#553C9A",800:"#44337A",900:"#322659"},pink:{50:"#FFF5F7",100:"#FED7E2",200:"#FBB6CE",300:"#F687B3",400:"#ED64A6",500:"#D53F8C",600:"#B83280",700:"#97266D",800:"#702459",900:"#521B41"},linkedin:{50:"#E8F4F9",100:"#CFEDFB",200:"#9BDAF3",300:"#68C7EC",400:"#34B3E4",500:"#00A0DC",600:"#008CC9",700:"#0077B5",800:"#005E93",900:"#004471"},facebook:{50:"#E8F4F9",100:"#D9DEE9",200:"#B7C2DA",300:"#6482C0",400:"#4267B2",500:"#385898",600:"#314E89",700:"#29487D",800:"#223B67",900:"#1E355B"},messenger:{50:"#D0E6FF",100:"#B9DAFF",200:"#A2CDFF",300:"#7AB8FF",400:"#2E90FF",500:"#0078FF",600:"#0063D1",700:"#0052AC",800:"#003C7E",900:"#002C5C"},whatsapp:{50:"#dffeec",100:"#b9f5d0",200:"#90edb3",300:"#65e495",400:"#3cdd78",500:"#22c35e",600:"#179848",700:"#0c6c33",800:"#01421c",900:"#001803"},twitter:{50:"#E5F4FD",100:"#C8E9FB",200:"#A8DCFA",300:"#83CDF7",400:"#57BBF5",500:"#1DA1F2",600:"#1A94DA",700:"#1681BF",800:"#136B9E",900:"#0D4D71"},telegram:{50:"#E3F2F9",100:"#C5E4F3",200:"#A2D4EC",300:"#7AC1E4",400:"#47A9DA",500:"#0088CC",600:"#007AB8",700:"#006BA1",800:"#005885",900:"#003F5E"}},eie=Jre,tie={none:"0",sm:"0.125rem",base:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},nie=tie,rie={xs:"0 0 0 1px rgba(0, 0, 0, 0.05)",sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",outline:"0 0 0 3px rgba(66, 153, 225, 0.6)",inner:"inset 0 2px 4px 0 rgba(0,0,0,0.06)",none:"none","dark-lg":"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px"},iie=rie,oie={common:"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform",colors:"background-color, border-color, color, fill, stroke",dimensions:"width, height",position:"left, right, top, bottom",background:"background-color, background-image, background-position"},aie={"ease-in":"cubic-bezier(0.4, 0, 1, 1)","ease-out":"cubic-bezier(0, 0, 0.2, 1)","ease-in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},sie={"ultra-fast":"50ms",faster:"100ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"400ms","ultra-slow":"500ms"},lie={property:oie,easing:aie,duration:sie},uie=lie,cie={none:0,sm:"4px",base:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},die=cie,fie={none:0,"1px":"1px solid","2px":"2px solid","4px":"4px solid","8px":"8px solid"},hie=fie,pie={letterSpacings:{tighter:"-0.05em",tight:"-0.025em",normal:"0",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeights:{normal:"normal",none:1,shorter:1.25,short:1.375,base:1.5,tall:1.625,taller:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},fonts:{heading:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',body:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',mono:'SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'},fontSizes:{"3xs":"0.45rem","2xs":"0.625rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"}},cF=pie,dF={px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},gie={max:"max-content",min:"min-content",full:"100%","3xs":"14rem","2xs":"16rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem","8xl":"90rem",prose:"60ch"},mie={sm:"640px",md:"768px",lg:"1024px",xl:"1280px"},vie={...dF,...gie,container:mie},fF=vie,yie={breakpoints:Qre,zIndices:Xre,radii:nie,blur:die,colors:eie,...cF,sizes:fF,shadows:iie,space:dF,borders:hie,transition:uie};function En(e,t={}){let n=!1;function r(){if(!n){n=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function i(...d){r();for(const h of d)t[h]=l(h);return En(e,t)}function o(...d){for(const h of d)h in t||(t[h]=l(h));return En(e,t)}function a(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.selector]))}function s(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.className]))}function l(d){const y=`chakra-${(["container","root"].includes(d??"")?[e]:[e,d]).filter(Boolean).join("__")}`;return{className:y,selector:`.${y}`,toString:()=>d}}return{parts:i,toPart:l,extend:o,selectors:a,classnames:s,get keys(){return Object.keys(t)},__type:{}}}var bie=En("accordion").parts("root","container","button","panel").extend("icon"),xie=En("alert").parts("title","description","container").extend("icon","spinner"),Sie=En("avatar").parts("label","badge","container").extend("excessLabel","group"),wie=En("breadcrumb").parts("link","item","container").extend("separator");En("button").parts();var Cie=En("checkbox").parts("control","icon","container").extend("label");En("progress").parts("track","filledTrack").extend("label");var _ie=En("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),kie=En("editable").parts("preview","input","textarea"),Eie=En("form").parts("container","requiredIndicator","helperText"),Pie=En("formError").parts("text","icon"),Tie=En("input").parts("addon","field","element"),Mie=En("list").parts("container","item","icon"),Lie=En("menu").parts("button","list","item").extend("groupTitle","command","divider"),Aie=En("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),Oie=En("numberinput").parts("root","field","stepperGroup","stepper");En("pininput").parts("field");var Rie=En("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),Iie=En("progress").parts("label","filledTrack","track"),Die=En("radio").parts("container","control","label"),jie=En("select").parts("field","icon"),Nie=En("slider").parts("container","track","thumb","filledTrack","mark"),$ie=En("stat").parts("container","label","helpText","number","icon"),Fie=En("switch").parts("container","track","thumb"),Bie=En("table").parts("table","thead","tbody","tr","th","td","tfoot","caption"),zie=En("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator"),Hie=En("tag").parts("container","label","closeButton"),Wie=En("card").parts("container","header","body","footer");function kh(e,t,n){return Math.min(Math.max(e,n),t)}class Uie extends Error{constructor(t){super(`Failed to parse color: "${t}"`)}}var u1=Uie;function T9(e){if(typeof e!="string")throw new u1(e);if(e.trim().toLowerCase()==="transparent")return[0,0,0,0];let t=e.trim();t=Qie.test(e)?qie(e):e;const n=Kie.exec(t);if(n){const a=Array.from(n).slice(1);return[...a.slice(0,3).map(s=>parseInt(xy(s,2),16)),parseInt(xy(a[3]||"f",2),16)/255]}const r=Yie.exec(t);if(r){const a=Array.from(r).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,16)),parseInt(a[3]||"ff",16)/255]}const i=Xie.exec(t);if(i){const a=Array.from(i).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,10)),parseFloat(a[3]||"1")]}const o=Zie.exec(t);if(o){const[a,s,l,u]=Array.from(o).slice(1).map(parseFloat);if(kh(0,100,s)!==s)throw new u1(e);if(kh(0,100,l)!==l)throw new u1(e);return[...Jie(a,s,l),Number.isNaN(u)?1:u]}throw new u1(e)}function Vie(e){let t=5381,n=e.length;for(;n;)t=t*33^e.charCodeAt(--n);return(t>>>0)%2341}const qM=e=>parseInt(e.replace(/_/g,""),36),Gie="1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e,t)=>{const n=qM(t.substring(0,3)),r=qM(t.substring(3)).toString(16);let i="";for(let o=0;o<6-r.length;o++)i+="0";return e[n]=`${i}${r}`,e},{});function qie(e){const t=e.toLowerCase().trim(),n=Gie[Vie(t)];if(!n)throw new u1(e);return`#${n}`}const xy=(e,t)=>Array.from(Array(t)).map(()=>e).join(""),Kie=new RegExp(`^#${xy("([a-f0-9])",3)}([a-f0-9])?$`,"i"),Yie=new RegExp(`^#${xy("([a-f0-9]{2})",3)}([a-f0-9]{2})?$`,"i"),Xie=new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${xy(",\\s*(\\d+)\\s*",2)}(?:,\\s*([\\d.]+))?\\s*\\)$`,"i"),Zie=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i,Qie=/^[a-z]+$/i,KM=e=>Math.round(e*255),Jie=(e,t,n)=>{let r=n/100;if(t===0)return[r,r,r].map(KM);const i=(e%360+360)%360/60,o=(1-Math.abs(2*r-1))*(t/100),a=o*(1-Math.abs(i%2-1));let s=0,l=0,u=0;i>=0&&i<1?(s=o,l=a):i>=1&&i<2?(s=a,l=o):i>=2&&i<3?(l=o,u=a):i>=3&&i<4?(l=a,u=o):i>=4&&i<5?(s=a,u=o):i>=5&&i<6&&(s=o,u=a);const d=r-o/2,h=s+d,m=l+d,y=u+d;return[h,m,y].map(KM)};function eoe(e,t,n,r){return`rgba(${kh(0,255,e).toFixed()}, ${kh(0,255,t).toFixed()}, ${kh(0,255,n).toFixed()}, ${parseFloat(kh(0,1,r).toFixed(3))})`}function toe(e,t){const[n,r,i,o]=T9(e);return eoe(n,r,i,o-t)}function noe(e){const[t,n,r,i]=T9(e);let o=a=>{const s=kh(0,255,a).toString(16);return s.length===1?`0${s}`:s};return`#${o(t)}${o(n)}${o(r)}${i<1?o(Math.round(i*255)):""}`}function roe(e,t,n,r,i){for(t=t.split?t.split("."):t,r=0;rObject.keys(e).length===0,wo=(e,t,n)=>{const r=roe(e,`colors.${t}`,t);try{return noe(r),r}catch{return n??"#000000"}},ooe=e=>{const[t,n,r]=T9(e);return(t*299+n*587+r*114)/1e3},aoe=e=>t=>{const n=wo(t,e);return ooe(n)<128?"dark":"light"},soe=e=>t=>aoe(e)(t)==="dark",Um=(e,t)=>n=>{const r=wo(n,e);return toe(r,1-t)};function YM(e="1rem",t="rgba(255, 255, 255, 0.15)"){return{backgroundImage:`linear-gradient( - 45deg, - ${t} 25%, - transparent 25%, - transparent 50%, - ${t} 50%, - ${t} 75%, - transparent 75%, - transparent - )`,backgroundSize:`${e} ${e}`}}var loe=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`;function uoe(e){const t=loe();return!e||ioe(e)?t:e.string&&e.colors?doe(e.string,e.colors):e.string&&!e.colors?coe(e.string):e.colors&&!e.string?foe(e.colors):t}function coe(e){let t=0;if(e.length===0)return t.toString();for(let r=0;r>r*8&255;n+=`00${i.toString(16)}`.substr(-2)}return n}function doe(e,t){let n=0;if(e.length===0)return t[0];for(let r=0;rn.colorMode==="dark"?t:e}function M9(e){const{orientation:t,vertical:n,horizontal:r}=e;return t?t==="vertical"?n:r:{}}function hF(e){return ko(e)&&e.reference?e.reference:String(e)}var _w=(e,...t)=>t.map(hF).join(` ${e} `).replace(/calc/g,""),XM=(...e)=>`calc(${_w("+",...e)})`,ZM=(...e)=>`calc(${_w("-",...e)})`,g_=(...e)=>`calc(${_w("*",...e)})`,QM=(...e)=>`calc(${_w("/",...e)})`,JM=e=>{const t=hF(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:g_(t,-1)},Nu=Object.assign(e=>({add:(...t)=>Nu(XM(e,...t)),subtract:(...t)=>Nu(ZM(e,...t)),multiply:(...t)=>Nu(g_(e,...t)),divide:(...t)=>Nu(QM(e,...t)),negate:()=>Nu(JM(e)),toString:()=>e.toString()}),{add:XM,subtract:ZM,multiply:g_,divide:QM,negate:JM});function hoe(e){return!Number.isInteger(parseFloat(e.toString()))}function poe(e,t="-"){return e.replace(/\s+/g,t)}function pF(e){const t=poe(e.toString());return t.includes("\\.")?e:hoe(e)?t.replace(".","\\."):e}function goe(e,t=""){return[t,pF(e)].filter(Boolean).join("-")}function moe(e,t){return`var(${pF(e)}${t?`, ${t}`:""})`}function voe(e,t=""){return`--${goe(e,t)}`}function yi(e,t){const n=voe(e,t==null?void 0:t.prefix);return{variable:n,reference:moe(n,yoe(t==null?void 0:t.fallback))}}function yoe(e){return typeof e=="string"?e:e==null?void 0:e.reference}var{defineMultiStyleConfig:boe,definePartsStyle:Vx}=dr(Fie.keys),R1=yi("switch-track-width"),Ah=yi("switch-track-height"),I5=yi("switch-track-diff"),xoe=Nu.subtract(R1,Ah),m_=yi("switch-thumb-x"),Bv=yi("switch-bg"),Soe=e=>{const{colorScheme:t}=e;return{borderRadius:"full",p:"0.5",width:[R1.reference],height:[Ah.reference],transitionProperty:"common",transitionDuration:"fast",[Bv.variable]:"colors.gray.300",_dark:{[Bv.variable]:"colors.whiteAlpha.400"},_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed"},_checked:{[Bv.variable]:`colors.${t}.500`,_dark:{[Bv.variable]:`colors.${t}.200`}},bg:Bv.reference}},woe={bg:"white",transitionProperty:"transform",transitionDuration:"normal",borderRadius:"inherit",width:[Ah.reference],height:[Ah.reference],_checked:{transform:`translateX(${m_.reference})`}},Coe=Vx(e=>({container:{[I5.variable]:xoe,[m_.variable]:I5.reference,_rtl:{[m_.variable]:Nu(I5).negate().toString()}},track:Soe(e),thumb:woe})),_oe={sm:Vx({container:{[R1.variable]:"1.375rem",[Ah.variable]:"sizes.3"}}),md:Vx({container:{[R1.variable]:"1.875rem",[Ah.variable]:"sizes.4"}}),lg:Vx({container:{[R1.variable]:"2.875rem",[Ah.variable]:"sizes.6"}})},koe=boe({baseStyle:Coe,sizes:_oe,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:Eoe,definePartsStyle:ym}=dr(Bie.keys),Poe=ym({table:{fontVariantNumeric:"lining-nums tabular-nums",borderCollapse:"collapse",width:"full"},th:{fontFamily:"heading",fontWeight:"bold",textTransform:"uppercase",letterSpacing:"wider",textAlign:"start"},td:{textAlign:"start"},caption:{mt:4,fontFamily:"heading",textAlign:"center",fontWeight:"medium"}}),VS={"&[data-is-numeric=true]":{textAlign:"end"}},Toe=ym(e=>{const{colorScheme:t}=e;return{th:{color:wt("gray.600","gray.400")(e),borderBottom:"1px",borderColor:wt(`${t}.100`,`${t}.700`)(e),...VS},td:{borderBottom:"1px",borderColor:wt(`${t}.100`,`${t}.700`)(e),...VS},caption:{color:wt("gray.600","gray.100")(e)},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),Moe=ym(e=>{const{colorScheme:t}=e;return{th:{color:wt("gray.600","gray.400")(e),borderBottom:"1px",borderColor:wt(`${t}.100`,`${t}.700`)(e),...VS},td:{borderBottom:"1px",borderColor:wt(`${t}.100`,`${t}.700`)(e),...VS},caption:{color:wt("gray.600","gray.100")(e)},tbody:{tr:{"&:nth-of-type(odd)":{"th, td":{borderBottomWidth:"1px",borderColor:wt(`${t}.100`,`${t}.700`)(e)},td:{background:wt(`${t}.100`,`${t}.700`)(e)}}}},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),Loe={simple:Toe,striped:Moe,unstyled:{}},Aoe={sm:ym({th:{px:"4",py:"1",lineHeight:"4",fontSize:"xs"},td:{px:"4",py:"2",fontSize:"sm",lineHeight:"4"},caption:{px:"4",py:"2",fontSize:"xs"}}),md:ym({th:{px:"6",py:"3",lineHeight:"4",fontSize:"xs"},td:{px:"6",py:"4",lineHeight:"5"},caption:{px:"6",py:"2",fontSize:"sm"}}),lg:ym({th:{px:"8",py:"4",lineHeight:"5",fontSize:"sm"},td:{px:"8",py:"5",lineHeight:"6"},caption:{px:"6",py:"2",fontSize:"md"}})},Ooe=Eoe({baseStyle:Poe,variants:Loe,sizes:Aoe,defaultProps:{variant:"simple",size:"md",colorScheme:"gray"}}),Go=gn("tabs-color"),Us=gn("tabs-bg"),Db=gn("tabs-border-color"),{defineMultiStyleConfig:Roe,definePartsStyle:Kl}=dr(zie.keys),Ioe=e=>{const{orientation:t}=e;return{display:t==="vertical"?"flex":"block"}},Doe=e=>{const{isFitted:t}=e;return{flex:t?1:void 0,transitionProperty:"common",transitionDuration:"normal",_focusVisible:{zIndex:1,boxShadow:"outline"},_disabled:{cursor:"not-allowed",opacity:.4}}},joe=e=>{const{align:t="start",orientation:n}=e;return{justifyContent:{end:"flex-end",center:"center",start:"flex-start"}[t],flexDirection:n==="vertical"?"column":"row"}},Noe={p:4},$oe=Kl(e=>({root:Ioe(e),tab:Doe(e),tablist:joe(e),tabpanel:Noe})),Foe={sm:Kl({tab:{py:1,px:4,fontSize:"sm"}}),md:Kl({tab:{fontSize:"md",py:2,px:4}}),lg:Kl({tab:{fontSize:"lg",py:3,px:4}})},Boe=Kl(e=>{const{colorScheme:t,orientation:n}=e,r=n==="vertical",i=n==="vertical"?"borderStart":"borderBottom",o=r?"marginStart":"marginBottom";return{tablist:{[i]:"2px solid",borderColor:"inherit"},tab:{[i]:"2px solid",borderColor:"transparent",[o]:"-2px",_selected:{[Go.variable]:`colors.${t}.600`,_dark:{[Go.variable]:`colors.${t}.300`},borderColor:"currentColor"},_active:{[Us.variable]:"colors.gray.200",_dark:{[Us.variable]:"colors.whiteAlpha.300"}},_disabled:{_active:{bg:"none"}},color:Go.reference,bg:Us.reference}}}),zoe=Kl(e=>{const{colorScheme:t}=e;return{tab:{borderTopRadius:"md",border:"1px solid",borderColor:"transparent",mb:"-1px",[Db.variable]:"transparent",_selected:{[Go.variable]:`colors.${t}.600`,[Db.variable]:"colors.white",_dark:{[Go.variable]:`colors.${t}.300`,[Db.variable]:"colors.gray.800"},borderColor:"inherit",borderBottomColor:Db.reference},color:Go.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),Hoe=Kl(e=>{const{colorScheme:t}=e;return{tab:{border:"1px solid",borderColor:"inherit",[Us.variable]:"colors.gray.50",_dark:{[Us.variable]:"colors.whiteAlpha.50"},mb:"-1px",_notLast:{marginEnd:"-1px"},_selected:{[Us.variable]:"colors.white",[Go.variable]:`colors.${t}.600`,_dark:{[Us.variable]:"colors.gray.800",[Go.variable]:`colors.${t}.300`},borderColor:"inherit",borderTopColor:"currentColor",borderBottomColor:"transparent"},color:Go.reference,bg:Us.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),Woe=Kl(e=>{const{colorScheme:t,theme:n}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",color:"gray.600",_selected:{color:wo(n,`${t}.700`),bg:wo(n,`${t}.100`)}}}}),Uoe=Kl(e=>{const{colorScheme:t}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",[Go.variable]:"colors.gray.600",_dark:{[Go.variable]:"inherit"},_selected:{[Go.variable]:"colors.white",[Us.variable]:`colors.${t}.600`,_dark:{[Go.variable]:"colors.gray.800",[Us.variable]:`colors.${t}.300`}},color:Go.reference,bg:Us.reference}}}),Voe=Kl({}),Goe={line:Boe,enclosed:zoe,"enclosed-colored":Hoe,"soft-rounded":Woe,"solid-rounded":Uoe,unstyled:Voe},qoe=Roe({baseStyle:$oe,sizes:Foe,variants:Goe,defaultProps:{size:"md",variant:"line",colorScheme:"blue"}}),Koe={px:1,textTransform:"uppercase",fontSize:"xs",borderRadius:"sm",fontWeight:"bold"},bm=gn("badge-bg"),zl=gn("badge-color"),Yoe=e=>{const{colorScheme:t,theme:n}=e,r=Um(`${t}.500`,.6)(n);return{[bm.variable]:`colors.${t}.500`,[zl.variable]:"colors.white",_dark:{[bm.variable]:r,[zl.variable]:"colors.whiteAlpha.800"},bg:bm.reference,color:zl.reference}},Xoe=e=>{const{colorScheme:t,theme:n}=e,r=Um(`${t}.200`,.16)(n);return{[bm.variable]:`colors.${t}.100`,[zl.variable]:`colors.${t}.800`,_dark:{[bm.variable]:r,[zl.variable]:`colors.${t}.200`},bg:bm.reference,color:zl.reference}},Zoe=e=>{const{colorScheme:t,theme:n}=e,r=Um(`${t}.200`,.8)(n);return{[zl.variable]:`colors.${t}.500`,_dark:{[zl.variable]:r},color:zl.reference,boxShadow:`inset 0 0 0px 1px ${zl.reference}`}},Qoe={solid:Yoe,subtle:Xoe,outline:Zoe},I1={baseStyle:Koe,variants:Qoe,defaultProps:{variant:"subtle",colorScheme:"gray"}},{defineMultiStyleConfig:Joe,definePartsStyle:Oh}=dr(Hie.keys),eae={fontWeight:"medium",lineHeight:1.2,outline:0,borderRadius:"md",_focusVisible:{boxShadow:"outline"}},tae={lineHeight:1.2,overflow:"visible"},nae={fontSize:"lg",w:"5",h:"5",transitionProperty:"common",transitionDuration:"normal",borderRadius:"full",marginStart:"1.5",marginEnd:"-1",opacity:.5,_disabled:{opacity:.4},_focusVisible:{boxShadow:"outline",bg:"rgba(0, 0, 0, 0.14)"},_hover:{opacity:.8},_active:{opacity:1}},rae=Oh({container:eae,label:tae,closeButton:nae}),iae={sm:Oh({container:{minH:"5",minW:"5",fontSize:"xs",px:"2"},closeButton:{marginEnd:"-2px",marginStart:"0.35rem"}}),md:Oh({container:{minH:"6",minW:"6",fontSize:"sm",px:"2"}}),lg:Oh({container:{minH:"8",minW:"8",fontSize:"md",px:"3"}})},oae={subtle:Oh(e=>{var t;return{container:(t=I1.variants)==null?void 0:t.subtle(e)}}),solid:Oh(e=>{var t;return{container:(t=I1.variants)==null?void 0:t.solid(e)}}),outline:Oh(e=>{var t;return{container:(t=I1.variants)==null?void 0:t.outline(e)}})},aae=Joe({variants:oae,baseStyle:rae,sizes:iae,defaultProps:{size:"md",variant:"subtle",colorScheme:"gray"}}),{definePartsStyle:zu,defineMultiStyleConfig:sae}=dr(Tie.keys),lae=zu({field:{width:"100%",minWidth:0,outline:0,position:"relative",appearance:"none",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed"}}}),sd={lg:{fontSize:"lg",px:"4",h:"12",borderRadius:"md"},md:{fontSize:"md",px:"4",h:"10",borderRadius:"md"},sm:{fontSize:"sm",px:"3",h:"8",borderRadius:"sm"},xs:{fontSize:"xs",px:"2",h:"6",borderRadius:"sm"}},uae={lg:zu({field:sd.lg,addon:sd.lg}),md:zu({field:sd.md,addon:sd.md}),sm:zu({field:sd.sm,addon:sd.sm}),xs:zu({field:sd.xs,addon:sd.xs})};function L9(e){const{focusBorderColor:t,errorBorderColor:n}=e;return{focusBorderColor:t||wt("blue.500","blue.300")(e),errorBorderColor:n||wt("red.500","red.300")(e)}}var cae=zu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=L9(e);return{field:{border:"1px solid",borderColor:"inherit",bg:"inherit",_hover:{borderColor:wt("gray.300","whiteAlpha.400")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:wo(t,r),boxShadow:`0 0 0 1px ${wo(t,r)}`},_focusVisible:{zIndex:1,borderColor:wo(t,n),boxShadow:`0 0 0 1px ${wo(t,n)}`}},addon:{border:"1px solid",borderColor:wt("inherit","whiteAlpha.50")(e),bg:wt("gray.100","whiteAlpha.300")(e)}}}),dae=zu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=L9(e);return{field:{border:"2px solid",borderColor:"transparent",bg:wt("gray.100","whiteAlpha.50")(e),_hover:{bg:wt("gray.200","whiteAlpha.100")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:wo(t,r)},_focusVisible:{bg:"transparent",borderColor:wo(t,n)}},addon:{border:"2px solid",borderColor:"transparent",bg:wt("gray.100","whiteAlpha.50")(e)}}}),fae=zu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=L9(e);return{field:{borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:wo(t,r),boxShadow:`0px 1px 0px 0px ${wo(t,r)}`},_focusVisible:{borderColor:wo(t,n),boxShadow:`0px 1px 0px 0px ${wo(t,n)}`}},addon:{borderBottom:"2px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent"}}}),hae=zu({field:{bg:"transparent",px:"0",height:"auto"},addon:{bg:"transparent",px:"0",height:"auto"}}),pae={outline:cae,filled:dae,flushed:fae,unstyled:hae},xn=sae({baseStyle:lae,sizes:uae,variants:pae,defaultProps:{size:"md",variant:"outline"}}),eL,gae={...(eL=xn.baseStyle)==null?void 0:eL.field,paddingY:"2",minHeight:"20",lineHeight:"short",verticalAlign:"top"},tL,nL,mae={outline:e=>{var t,n;return(n=(t=xn.variants)==null?void 0:t.outline(e).field)!=null?n:{}},flushed:e=>{var t,n;return(n=(t=xn.variants)==null?void 0:t.flushed(e).field)!=null?n:{}},filled:e=>{var t,n;return(n=(t=xn.variants)==null?void 0:t.filled(e).field)!=null?n:{}},unstyled:(nL=(tL=xn.variants)==null?void 0:tL.unstyled.field)!=null?nL:{}},rL,iL,oL,aL,sL,lL,uL,cL,vae={xs:(iL=(rL=xn.sizes)==null?void 0:rL.xs.field)!=null?iL:{},sm:(aL=(oL=xn.sizes)==null?void 0:oL.sm.field)!=null?aL:{},md:(lL=(sL=xn.sizes)==null?void 0:sL.md.field)!=null?lL:{},lg:(cL=(uL=xn.sizes)==null?void 0:uL.lg.field)!=null?cL:{}},yae={baseStyle:gae,sizes:vae,variants:mae,defaultProps:{size:"md",variant:"outline"}},jb=yi("tooltip-bg"),D5=yi("tooltip-fg"),bae=yi("popper-arrow-bg"),xae={bg:jb.reference,color:D5.reference,[jb.variable]:"colors.gray.700",[D5.variable]:"colors.whiteAlpha.900",_dark:{[jb.variable]:"colors.gray.300",[D5.variable]:"colors.gray.900"},[bae.variable]:jb.reference,px:"2",py:"0.5",borderRadius:"sm",fontWeight:"medium",fontSize:"sm",boxShadow:"md",maxW:"xs",zIndex:"tooltip"},Sae={baseStyle:xae},{defineMultiStyleConfig:wae,definePartsStyle:c1}=dr(Iie.keys),Cae=e=>{const{colorScheme:t,theme:n,isIndeterminate:r,hasStripe:i}=e,o=wt(YM(),YM("1rem","rgba(0,0,0,0.1)"))(e),a=wt(`${t}.500`,`${t}.200`)(e),s=`linear-gradient( - to right, - transparent 0%, - ${wo(n,a)} 50%, - transparent 100% - )`;return{...!r&&i&&o,...r?{bgImage:s}:{bgColor:a}}},_ae={lineHeight:"1",fontSize:"0.25em",fontWeight:"bold",color:"white"},kae=e=>({bg:wt("gray.100","whiteAlpha.300")(e)}),Eae=e=>({transitionProperty:"common",transitionDuration:"slow",...Cae(e)}),Pae=c1(e=>({label:_ae,filledTrack:Eae(e),track:kae(e)})),Tae={xs:c1({track:{h:"1"}}),sm:c1({track:{h:"2"}}),md:c1({track:{h:"3"}}),lg:c1({track:{h:"4"}})},Mae=wae({sizes:Tae,baseStyle:Pae,defaultProps:{size:"md",colorScheme:"blue"}}),Lae=e=>typeof e=="function";function Eo(e,...t){return Lae(e)?e(...t):e}var{definePartsStyle:Gx,defineMultiStyleConfig:Aae}=dr(Cie.keys),D1=gn("checkbox-size"),Oae=e=>{const{colorScheme:t}=e;return{w:D1.reference,h:D1.reference,transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:wt(`${t}.500`,`${t}.200`)(e),borderColor:wt(`${t}.500`,`${t}.200`)(e),color:wt("white","gray.900")(e),_hover:{bg:wt(`${t}.600`,`${t}.300`)(e),borderColor:wt(`${t}.600`,`${t}.300`)(e)},_disabled:{borderColor:wt("gray.200","transparent")(e),bg:wt("gray.200","whiteAlpha.300")(e),color:wt("gray.500","whiteAlpha.500")(e)}},_indeterminate:{bg:wt(`${t}.500`,`${t}.200`)(e),borderColor:wt(`${t}.500`,`${t}.200`)(e),color:wt("white","gray.900")(e)},_disabled:{bg:wt("gray.100","whiteAlpha.100")(e),borderColor:wt("gray.100","transparent")(e)},_focusVisible:{boxShadow:"outline"},_invalid:{borderColor:wt("red.500","red.300")(e)}}},Rae={_disabled:{cursor:"not-allowed"}},Iae={userSelect:"none",_disabled:{opacity:.4}},Dae={transitionProperty:"transform",transitionDuration:"normal"},jae=Gx(e=>({icon:Dae,container:Rae,control:Eo(Oae,e),label:Iae})),Nae={sm:Gx({control:{[D1.variable]:"sizes.3"},label:{fontSize:"sm"},icon:{fontSize:"3xs"}}),md:Gx({control:{[D1.variable]:"sizes.4"},label:{fontSize:"md"},icon:{fontSize:"2xs"}}),lg:Gx({control:{[D1.variable]:"sizes.5"},label:{fontSize:"lg"},icon:{fontSize:"2xs"}})},GS=Aae({baseStyle:jae,sizes:Nae,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:$ae,definePartsStyle:qx}=dr(Die.keys),Fae=e=>{var t;const n=(t=Eo(GS.baseStyle,e))==null?void 0:t.control;return{...n,borderRadius:"full",_checked:{...n==null?void 0:n._checked,_before:{content:'""',display:"inline-block",pos:"relative",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}}}},Bae=qx(e=>{var t,n,r,i;return{label:(n=(t=GS).baseStyle)==null?void 0:n.call(t,e).label,container:(i=(r=GS).baseStyle)==null?void 0:i.call(r,e).container,control:Fae(e)}}),zae={md:qx({control:{w:"4",h:"4"},label:{fontSize:"md"}}),lg:qx({control:{w:"5",h:"5"},label:{fontSize:"lg"}}),sm:qx({control:{width:"3",height:"3"},label:{fontSize:"sm"}})},Hae=$ae({baseStyle:Bae,sizes:zae,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:Wae,definePartsStyle:Uae}=dr(jie.keys),Nb=gn("select-bg"),dL,Vae={...(dL=xn.baseStyle)==null?void 0:dL.field,appearance:"none",paddingBottom:"1px",lineHeight:"normal",bg:Nb.reference,[Nb.variable]:"colors.white",_dark:{[Nb.variable]:"colors.gray.700"},"> option, > optgroup":{bg:Nb.reference}},Gae={width:"6",height:"100%",insetEnd:"2",position:"relative",color:"currentColor",fontSize:"xl",_disabled:{opacity:.5}},qae=Uae({field:Vae,icon:Gae}),$b={paddingInlineEnd:"8"},fL,hL,pL,gL,mL,vL,yL,bL,Kae={lg:{...(fL=xn.sizes)==null?void 0:fL.lg,field:{...(hL=xn.sizes)==null?void 0:hL.lg.field,...$b}},md:{...(pL=xn.sizes)==null?void 0:pL.md,field:{...(gL=xn.sizes)==null?void 0:gL.md.field,...$b}},sm:{...(mL=xn.sizes)==null?void 0:mL.sm,field:{...(vL=xn.sizes)==null?void 0:vL.sm.field,...$b}},xs:{...(yL=xn.sizes)==null?void 0:yL.xs,field:{...(bL=xn.sizes)==null?void 0:bL.xs.field,...$b},icon:{insetEnd:"1"}}},Yae=Wae({baseStyle:qae,sizes:Kae,variants:xn.variants,defaultProps:xn.defaultProps}),j5=gn("skeleton-start-color"),N5=gn("skeleton-end-color"),Xae={[j5.variable]:"colors.gray.100",[N5.variable]:"colors.gray.400",_dark:{[j5.variable]:"colors.gray.800",[N5.variable]:"colors.gray.600"},background:j5.reference,borderColor:N5.reference,opacity:.7,borderRadius:"sm"},Zae={baseStyle:Xae},$5=gn("skip-link-bg"),Qae={borderRadius:"md",fontWeight:"semibold",_focusVisible:{boxShadow:"outline",padding:"4",position:"fixed",top:"6",insetStart:"6",[$5.variable]:"colors.white",_dark:{[$5.variable]:"colors.gray.700"},bg:$5.reference}},Jae={baseStyle:Qae},{defineMultiStyleConfig:ese,definePartsStyle:kw}=dr(Nie.keys),Sy=gn("slider-thumb-size"),wy=gn("slider-track-size"),bd=gn("slider-bg"),tse=e=>{const{orientation:t}=e;return{display:"inline-block",position:"relative",cursor:"pointer",_disabled:{opacity:.6,cursor:"default",pointerEvents:"none"},...M9({orientation:t,vertical:{h:"100%"},horizontal:{w:"100%"}})}},nse=e=>({...M9({orientation:e.orientation,horizontal:{h:wy.reference},vertical:{w:wy.reference}}),overflow:"hidden",borderRadius:"sm",[bd.variable]:"colors.gray.200",_dark:{[bd.variable]:"colors.whiteAlpha.200"},_disabled:{[bd.variable]:"colors.gray.300",_dark:{[bd.variable]:"colors.whiteAlpha.300"}},bg:bd.reference}),rse=e=>{const{orientation:t}=e;return{...M9({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",_active:{transform:"translateX(-50%) scale(1.15)"}},horizontal:{top:"50%",transform:"translateY(-50%)",_active:{transform:"translateY(-50%) scale(1.15)"}}}),w:Sy.reference,h:Sy.reference,display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",outline:0,zIndex:1,borderRadius:"full",bg:"white",boxShadow:"base",border:"1px solid",borderColor:"transparent",transitionProperty:"transform",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{bg:"gray.300"}}},ise=e=>{const{colorScheme:t}=e;return{width:"inherit",height:"inherit",[bd.variable]:`colors.${t}.500`,_dark:{[bd.variable]:`colors.${t}.200`},bg:bd.reference}},ose=kw(e=>({container:tse(e),track:nse(e),thumb:rse(e),filledTrack:ise(e)})),ase=kw({container:{[Sy.variable]:"sizes.4",[wy.variable]:"sizes.1"}}),sse=kw({container:{[Sy.variable]:"sizes.3.5",[wy.variable]:"sizes.1"}}),lse=kw({container:{[Sy.variable]:"sizes.2.5",[wy.variable]:"sizes.0.5"}}),use={lg:ase,md:sse,sm:lse},cse=ese({baseStyle:ose,sizes:use,defaultProps:{size:"md",colorScheme:"blue"}}),xh=yi("spinner-size"),dse={width:[xh.reference],height:[xh.reference]},fse={xs:{[xh.variable]:"sizes.3"},sm:{[xh.variable]:"sizes.4"},md:{[xh.variable]:"sizes.6"},lg:{[xh.variable]:"sizes.8"},xl:{[xh.variable]:"sizes.12"}},hse={baseStyle:dse,sizes:fse,defaultProps:{size:"md"}},{defineMultiStyleConfig:pse,definePartsStyle:gF}=dr($ie.keys),gse={fontWeight:"medium"},mse={opacity:.8,marginBottom:"2"},vse={verticalAlign:"baseline",fontWeight:"semibold"},yse={marginEnd:1,w:"3.5",h:"3.5",verticalAlign:"middle"},bse=gF({container:{},label:gse,helpText:mse,number:vse,icon:yse}),xse={md:gF({label:{fontSize:"sm"},helpText:{fontSize:"sm"},number:{fontSize:"2xl"}})},Sse=pse({baseStyle:bse,sizes:xse,defaultProps:{size:"md"}}),F5=gn("kbd-bg"),wse={[F5.variable]:"colors.gray.100",_dark:{[F5.variable]:"colors.whiteAlpha.100"},bg:F5.reference,borderRadius:"md",borderWidth:"1px",borderBottomWidth:"3px",fontSize:"0.8em",fontWeight:"bold",lineHeight:"normal",px:"0.4em",whiteSpace:"nowrap"},Cse={baseStyle:wse},_se={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}},kse={baseStyle:_se},{defineMultiStyleConfig:Ese,definePartsStyle:Pse}=dr(Mie.keys),Tse={marginEnd:"2",display:"inline",verticalAlign:"text-bottom"},Mse=Pse({icon:Tse}),Lse=Ese({baseStyle:Mse}),{defineMultiStyleConfig:Ase,definePartsStyle:Ose}=dr(Lie.keys),Rl=gn("menu-bg"),B5=gn("menu-shadow"),Rse={[Rl.variable]:"#fff",[B5.variable]:"shadows.sm",_dark:{[Rl.variable]:"colors.gray.700",[B5.variable]:"shadows.dark-lg"},color:"inherit",minW:"3xs",py:"2",zIndex:1,borderRadius:"md",borderWidth:"1px",bg:Rl.reference,boxShadow:B5.reference},Ise={py:"1.5",px:"3",transitionProperty:"background",transitionDuration:"ultra-fast",transitionTimingFunction:"ease-in",_focus:{[Rl.variable]:"colors.gray.100",_dark:{[Rl.variable]:"colors.whiteAlpha.100"}},_active:{[Rl.variable]:"colors.gray.200",_dark:{[Rl.variable]:"colors.whiteAlpha.200"}},_expanded:{[Rl.variable]:"colors.gray.100",_dark:{[Rl.variable]:"colors.whiteAlpha.100"}},_disabled:{opacity:.4,cursor:"not-allowed"},bg:Rl.reference},Dse={mx:4,my:2,fontWeight:"semibold",fontSize:"sm"},jse={opacity:.6},Nse={border:0,borderBottom:"1px solid",borderColor:"inherit",my:"2",opacity:.6},$se={transitionProperty:"common",transitionDuration:"normal"},Fse=Ose({button:$se,list:Rse,item:Ise,groupTitle:Dse,command:jse,divider:Nse}),Bse=Ase({baseStyle:Fse}),{defineMultiStyleConfig:zse,definePartsStyle:v_}=dr(Aie.keys),Hse={bg:"blackAlpha.600",zIndex:"modal"},Wse=e=>{const{isCentered:t,scrollBehavior:n}=e;return{display:"flex",zIndex:"modal",justifyContent:"center",alignItems:t?"center":"flex-start",overflow:n==="inside"?"hidden":"auto",overscrollBehaviorY:"none"}},Use=e=>{const{scrollBehavior:t}=e;return{borderRadius:"md",bg:wt("white","gray.700")(e),color:"inherit",my:"16",zIndex:"modal",maxH:t==="inside"?"calc(100% - 7.5rem)":void 0,boxShadow:wt("lg","dark-lg")(e)}},Vse={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},Gse={position:"absolute",top:"2",insetEnd:"3"},qse=e=>{const{scrollBehavior:t}=e;return{px:"6",py:"2",flex:"1",overflow:t==="inside"?"auto":void 0}},Kse={px:"6",py:"4"},Yse=v_(e=>({overlay:Hse,dialogContainer:Eo(Wse,e),dialog:Eo(Use,e),header:Vse,closeButton:Gse,body:Eo(qse,e),footer:Kse}));function js(e){return v_(e==="full"?{dialog:{maxW:"100vw",minH:"$100vh",my:"0",borderRadius:"0"}}:{dialog:{maxW:e}})}var Xse={xs:js("xs"),sm:js("sm"),md:js("md"),lg:js("lg"),xl:js("xl"),"2xl":js("2xl"),"3xl":js("3xl"),"4xl":js("4xl"),"5xl":js("5xl"),"6xl":js("6xl"),full:js("full")},Zse=zse({baseStyle:Yse,sizes:Xse,defaultProps:{size:"md"}}),{defineMultiStyleConfig:Qse,definePartsStyle:mF}=dr(Oie.keys),A9=yi("number-input-stepper-width"),vF=yi("number-input-input-padding"),Jse=Nu(A9).add("0.5rem").toString(),z5=yi("number-input-bg"),H5=yi("number-input-color"),W5=yi("number-input-border-color"),ele={[A9.variable]:"sizes.6",[vF.variable]:Jse},tle=e=>{var t,n;return(n=(t=Eo(xn.baseStyle,e))==null?void 0:t.field)!=null?n:{}},nle={width:A9.reference},rle={borderStart:"1px solid",borderStartColor:W5.reference,color:H5.reference,bg:z5.reference,[H5.variable]:"colors.chakra-body-text",[W5.variable]:"colors.chakra-border-color",_dark:{[H5.variable]:"colors.whiteAlpha.800",[W5.variable]:"colors.whiteAlpha.300"},_active:{[z5.variable]:"colors.gray.200",_dark:{[z5.variable]:"colors.whiteAlpha.300"}},_disabled:{opacity:.4,cursor:"not-allowed"}},ile=mF(e=>{var t;return{root:ele,field:(t=Eo(tle,e))!=null?t:{},stepperGroup:nle,stepper:rle}});function Fb(e){var t,n,r;const i=(t=xn.sizes)==null?void 0:t[e],o={lg:"md",md:"md",sm:"sm",xs:"sm"},a=(r=(n=i.field)==null?void 0:n.fontSize)!=null?r:"md",s=cF.fontSizes[a];return mF({field:{...i.field,paddingInlineEnd:vF.reference,verticalAlign:"top"},stepper:{fontSize:Nu(s).multiply(.75).toString(),_first:{borderTopEndRadius:o[e]},_last:{borderBottomEndRadius:o[e],mt:"-1px",borderTopWidth:1}}})}var ole={xs:Fb("xs"),sm:Fb("sm"),md:Fb("md"),lg:Fb("lg")},ale=Qse({baseStyle:ile,sizes:ole,variants:xn.variants,defaultProps:xn.defaultProps}),xL,sle={...(xL=xn.baseStyle)==null?void 0:xL.field,textAlign:"center"},lle={lg:{fontSize:"lg",w:12,h:12,borderRadius:"md"},md:{fontSize:"md",w:10,h:10,borderRadius:"md"},sm:{fontSize:"sm",w:8,h:8,borderRadius:"sm"},xs:{fontSize:"xs",w:6,h:6,borderRadius:"sm"}},SL,wL,ule={outline:e=>{var t,n,r;return(r=(n=Eo((t=xn.variants)==null?void 0:t.outline,e))==null?void 0:n.field)!=null?r:{}},flushed:e=>{var t,n,r;return(r=(n=Eo((t=xn.variants)==null?void 0:t.flushed,e))==null?void 0:n.field)!=null?r:{}},filled:e=>{var t,n,r;return(r=(n=Eo((t=xn.variants)==null?void 0:t.filled,e))==null?void 0:n.field)!=null?r:{}},unstyled:(wL=(SL=xn.variants)==null?void 0:SL.unstyled.field)!=null?wL:{}},cle={baseStyle:sle,sizes:lle,variants:ule,defaultProps:xn.defaultProps},{defineMultiStyleConfig:dle,definePartsStyle:fle}=dr(Rie.keys),Bb=yi("popper-bg"),hle=yi("popper-arrow-bg"),CL=yi("popper-arrow-shadow-color"),ple={zIndex:10},gle={[Bb.variable]:"colors.white",bg:Bb.reference,[hle.variable]:Bb.reference,[CL.variable]:"colors.gray.200",_dark:{[Bb.variable]:"colors.gray.700",[CL.variable]:"colors.whiteAlpha.300"},width:"xs",border:"1px solid",borderColor:"inherit",borderRadius:"md",boxShadow:"sm",zIndex:"inherit",_focusVisible:{outline:0,boxShadow:"outline"}},mle={px:3,py:2,borderBottomWidth:"1px"},vle={px:3,py:2},yle={px:3,py:2,borderTopWidth:"1px"},ble={position:"absolute",borderRadius:"md",top:1,insetEnd:2,padding:2},xle=fle({popper:ple,content:gle,header:mle,body:vle,footer:yle,closeButton:ble}),Sle=dle({baseStyle:xle}),{definePartsStyle:y_,defineMultiStyleConfig:wle}=dr(_ie.keys),U5=gn("drawer-bg"),V5=gn("drawer-box-shadow");function bg(e){return y_(e==="full"?{dialog:{maxW:"100vw",h:"100vh"}}:{dialog:{maxW:e}})}var Cle={bg:"blackAlpha.600",zIndex:"overlay"},_le={display:"flex",zIndex:"modal",justifyContent:"center"},kle=e=>{const{isFullHeight:t}=e;return{...t&&{height:"100vh"},zIndex:"modal",maxH:"100vh",color:"inherit",[U5.variable]:"colors.white",[V5.variable]:"shadows.lg",_dark:{[U5.variable]:"colors.gray.700",[V5.variable]:"shadows.dark-lg"},bg:U5.reference,boxShadow:V5.reference}},Ele={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},Ple={position:"absolute",top:"2",insetEnd:"3"},Tle={px:"6",py:"2",flex:"1",overflow:"auto"},Mle={px:"6",py:"4"},Lle=y_(e=>({overlay:Cle,dialogContainer:_le,dialog:Eo(kle,e),header:Ele,closeButton:Ple,body:Tle,footer:Mle})),Ale={xs:bg("xs"),sm:bg("md"),md:bg("lg"),lg:bg("2xl"),xl:bg("4xl"),full:bg("full")},Ole=wle({baseStyle:Lle,sizes:Ale,defaultProps:{size:"xs"}}),{definePartsStyle:Rle,defineMultiStyleConfig:Ile}=dr(kie.keys),Dle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal"},jle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},Nle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},$le=Rle({preview:Dle,input:jle,textarea:Nle}),Fle=Ile({baseStyle:$le}),{definePartsStyle:Ble,defineMultiStyleConfig:zle}=dr(Eie.keys),xm=gn("form-control-color"),Hle={marginStart:"1",[xm.variable]:"colors.red.500",_dark:{[xm.variable]:"colors.red.300"},color:xm.reference},Wle={mt:"2",[xm.variable]:"colors.gray.600",_dark:{[xm.variable]:"colors.whiteAlpha.600"},color:xm.reference,lineHeight:"normal",fontSize:"sm"},Ule=Ble({container:{width:"100%",position:"relative"},requiredIndicator:Hle,helperText:Wle}),Vle=zle({baseStyle:Ule}),{definePartsStyle:Gle,defineMultiStyleConfig:qle}=dr(Pie.keys),Sm=gn("form-error-color"),Kle={[Sm.variable]:"colors.red.500",_dark:{[Sm.variable]:"colors.red.300"},color:Sm.reference,mt:"2",fontSize:"sm",lineHeight:"normal"},Yle={marginEnd:"0.5em",[Sm.variable]:"colors.red.500",_dark:{[Sm.variable]:"colors.red.300"},color:Sm.reference},Xle=Gle({text:Kle,icon:Yle}),Zle=qle({baseStyle:Xle}),Qle={fontSize:"md",marginEnd:"3",mb:"2",fontWeight:"medium",transitionProperty:"common",transitionDuration:"normal",opacity:1,_disabled:{opacity:.4}},Jle={baseStyle:Qle},eue={fontFamily:"heading",fontWeight:"bold"},tue={"4xl":{fontSize:["6xl",null,"7xl"],lineHeight:1},"3xl":{fontSize:["5xl",null,"6xl"],lineHeight:1},"2xl":{fontSize:["4xl",null,"5xl"],lineHeight:[1.2,null,1]},xl:{fontSize:["3xl",null,"4xl"],lineHeight:[1.33,null,1.2]},lg:{fontSize:["2xl",null,"3xl"],lineHeight:[1.33,null,1.2]},md:{fontSize:"xl",lineHeight:1.2},sm:{fontSize:"md",lineHeight:1.2},xs:{fontSize:"sm",lineHeight:1.2}},nue={baseStyle:eue,sizes:tue,defaultProps:{size:"xl"}},{defineMultiStyleConfig:rue,definePartsStyle:iue}=dr(wie.keys),oue={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}},aue=iue({link:oue}),sue=rue({baseStyle:aue}),lue={lineHeight:"1.2",borderRadius:"md",fontWeight:"semibold",transitionProperty:"common",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{_disabled:{bg:"initial"}}},yF=e=>{const{colorScheme:t,theme:n}=e;if(t==="gray")return{color:wt("inherit","whiteAlpha.900")(e),_hover:{bg:wt("gray.100","whiteAlpha.200")(e)},_active:{bg:wt("gray.200","whiteAlpha.300")(e)}};const r=Um(`${t}.200`,.12)(n),i=Um(`${t}.200`,.24)(n);return{color:wt(`${t}.600`,`${t}.200`)(e),bg:"transparent",_hover:{bg:wt(`${t}.50`,r)(e)},_active:{bg:wt(`${t}.100`,i)(e)}}},uue=e=>{const{colorScheme:t}=e,n=wt("gray.200","whiteAlpha.300")(e);return{border:"1px solid",borderColor:t==="gray"?n:"currentColor",".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)":{marginEnd:"-1px"},".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)":{marginBottom:"-1px"},...Eo(yF,e)}},cue={yellow:{bg:"yellow.400",color:"black",hoverBg:"yellow.500",activeBg:"yellow.600"},cyan:{bg:"cyan.400",color:"black",hoverBg:"cyan.500",activeBg:"cyan.600"}},due=e=>{var t;const{colorScheme:n}=e;if(n==="gray"){const l=wt("gray.100","whiteAlpha.200")(e);return{bg:l,_hover:{bg:wt("gray.200","whiteAlpha.300")(e),_disabled:{bg:l}},_active:{bg:wt("gray.300","whiteAlpha.400")(e)}}}const{bg:r=`${n}.500`,color:i="white",hoverBg:o=`${n}.600`,activeBg:a=`${n}.700`}=(t=cue[n])!=null?t:{},s=wt(r,`${n}.200`)(e);return{bg:s,color:wt(i,"gray.800")(e),_hover:{bg:wt(o,`${n}.300`)(e),_disabled:{bg:s}},_active:{bg:wt(a,`${n}.400`)(e)}}},fue=e=>{const{colorScheme:t}=e;return{padding:0,height:"auto",lineHeight:"normal",verticalAlign:"baseline",color:wt(`${t}.500`,`${t}.200`)(e),_hover:{textDecoration:"underline",_disabled:{textDecoration:"none"}},_active:{color:wt(`${t}.700`,`${t}.500`)(e)}}},hue={bg:"none",color:"inherit",display:"inline",lineHeight:"inherit",m:"0",p:"0"},pue={ghost:yF,outline:uue,solid:due,link:fue,unstyled:hue},gue={lg:{h:"12",minW:"12",fontSize:"lg",px:"6"},md:{h:"10",minW:"10",fontSize:"md",px:"4"},sm:{h:"8",minW:"8",fontSize:"sm",px:"3"},xs:{h:"6",minW:"6",fontSize:"xs",px:"2"}},mue={baseStyle:lue,variants:pue,sizes:gue,defaultProps:{variant:"solid",size:"md",colorScheme:"gray"}},{definePartsStyle:Rh,defineMultiStyleConfig:vue}=dr(Wie.keys),qS=gn("card-bg"),Vu=gn("card-padding"),bF=gn("card-shadow"),Kx=gn("card-radius"),xF=gn("card-border-width","0"),SF=gn("card-border-color"),yue=Rh({container:{[qS.variable]:"colors.chakra-body-bg",backgroundColor:qS.reference,boxShadow:bF.reference,borderRadius:Kx.reference,color:"chakra-body-text",borderWidth:xF.reference,borderColor:SF.reference},body:{padding:Vu.reference,flex:"1 1 0%"},header:{padding:Vu.reference},footer:{padding:Vu.reference}}),bue={sm:Rh({container:{[Kx.variable]:"radii.base",[Vu.variable]:"space.3"}}),md:Rh({container:{[Kx.variable]:"radii.md",[Vu.variable]:"space.5"}}),lg:Rh({container:{[Kx.variable]:"radii.xl",[Vu.variable]:"space.7"}})},xue={elevated:Rh({container:{[bF.variable]:"shadows.base",_dark:{[qS.variable]:"colors.gray.700"}}}),outline:Rh({container:{[xF.variable]:"1px",[SF.variable]:"colors.chakra-border-color"}}),filled:Rh({container:{[qS.variable]:"colors.chakra-subtle-bg"}}),unstyled:{body:{[Vu.variable]:0},header:{[Vu.variable]:0},footer:{[Vu.variable]:0}}},Sue=vue({baseStyle:yue,variants:xue,sizes:bue,defaultProps:{variant:"elevated",size:"md"}}),j1=yi("close-button-size"),zv=yi("close-button-bg"),wue={w:[j1.reference],h:[j1.reference],borderRadius:"md",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{[zv.variable]:"colors.blackAlpha.100",_dark:{[zv.variable]:"colors.whiteAlpha.100"}},_active:{[zv.variable]:"colors.blackAlpha.200",_dark:{[zv.variable]:"colors.whiteAlpha.200"}},_focusVisible:{boxShadow:"outline"},bg:zv.reference},Cue={lg:{[j1.variable]:"sizes.10",fontSize:"md"},md:{[j1.variable]:"sizes.8",fontSize:"xs"},sm:{[j1.variable]:"sizes.6",fontSize:"2xs"}},_ue={baseStyle:wue,sizes:Cue,defaultProps:{size:"md"}},{variants:kue,defaultProps:Eue}=I1,Pue={fontFamily:"mono",fontSize:"sm",px:"0.2em",borderRadius:"sm"},Tue={baseStyle:Pue,variants:kue,defaultProps:Eue},Mue={w:"100%",mx:"auto",maxW:"prose",px:"4"},Lue={baseStyle:Mue},Aue={opacity:.6,borderColor:"inherit"},Oue={borderStyle:"solid"},Rue={borderStyle:"dashed"},Iue={solid:Oue,dashed:Rue},Due={baseStyle:Aue,variants:Iue,defaultProps:{variant:"solid"}},{definePartsStyle:jue,defineMultiStyleConfig:Nue}=dr(bie.keys),$ue={borderTopWidth:"1px",borderColor:"inherit",_last:{borderBottomWidth:"1px"}},Fue={transitionProperty:"common",transitionDuration:"normal",fontSize:"md",_focusVisible:{boxShadow:"outline"},_hover:{bg:"blackAlpha.50"},_disabled:{opacity:.4,cursor:"not-allowed"},px:"4",py:"2"},Bue={pt:"2",px:"4",pb:"5"},zue={fontSize:"1.25em"},Hue=jue({container:$ue,button:Fue,panel:Bue,icon:zue}),Wue=Nue({baseStyle:Hue}),{definePartsStyle:e2,defineMultiStyleConfig:Uue}=dr(xie.keys),Ta=gn("alert-fg"),nc=gn("alert-bg"),Vue=e2({container:{bg:nc.reference,px:"4",py:"3"},title:{fontWeight:"bold",lineHeight:"6",marginEnd:"2"},description:{lineHeight:"6"},icon:{color:Ta.reference,flexShrink:0,marginEnd:"3",w:"5",h:"6"},spinner:{color:Ta.reference,flexShrink:0,marginEnd:"3",w:"5",h:"5"}});function O9(e){const{theme:t,colorScheme:n}=e,r=Um(`${n}.200`,.16)(t);return{light:`colors.${n}.100`,dark:r}}var Gue=e2(e=>{const{colorScheme:t}=e,n=O9(e);return{container:{[Ta.variable]:`colors.${t}.500`,[nc.variable]:n.light,_dark:{[Ta.variable]:`colors.${t}.200`,[nc.variable]:n.dark}}}}),que=e2(e=>{const{colorScheme:t}=e,n=O9(e);return{container:{[Ta.variable]:`colors.${t}.500`,[nc.variable]:n.light,_dark:{[Ta.variable]:`colors.${t}.200`,[nc.variable]:n.dark},paddingStart:"3",borderStartWidth:"4px",borderStartColor:Ta.reference}}}),Kue=e2(e=>{const{colorScheme:t}=e,n=O9(e);return{container:{[Ta.variable]:`colors.${t}.500`,[nc.variable]:n.light,_dark:{[Ta.variable]:`colors.${t}.200`,[nc.variable]:n.dark},pt:"2",borderTopWidth:"4px",borderTopColor:Ta.reference}}}),Yue=e2(e=>{const{colorScheme:t}=e;return{container:{[Ta.variable]:"colors.white",[nc.variable]:`colors.${t}.500`,_dark:{[Ta.variable]:"colors.gray.900",[nc.variable]:`colors.${t}.200`},color:Ta.reference}}}),Xue={subtle:Gue,"left-accent":que,"top-accent":Kue,solid:Yue},Zue=Uue({baseStyle:Vue,variants:Xue,defaultProps:{variant:"subtle",colorScheme:"blue"}}),{definePartsStyle:wF,defineMultiStyleConfig:Que}=dr(Sie.keys),wm=gn("avatar-border-color"),G5=gn("avatar-bg"),Jue={borderRadius:"full",border:"0.2em solid",[wm.variable]:"white",_dark:{[wm.variable]:"colors.gray.800"},borderColor:wm.reference},ece={[G5.variable]:"colors.gray.200",_dark:{[G5.variable]:"colors.whiteAlpha.400"},bgColor:G5.reference},_L=gn("avatar-background"),tce=e=>{const{name:t,theme:n}=e,r=t?uoe({string:t}):"colors.gray.400",i=soe(r)(n);let o="white";return i||(o="gray.800"),{bg:_L.reference,"&:not([data-loaded])":{[_L.variable]:r},color:o,[wm.variable]:"colors.white",_dark:{[wm.variable]:"colors.gray.800"},borderColor:wm.reference,verticalAlign:"top"}},nce=wF(e=>({badge:Eo(Jue,e),excessLabel:Eo(ece,e),container:Eo(tce,e)}));function ld(e){const t=e!=="100%"?fF[e]:void 0;return wF({container:{width:e,height:e,fontSize:`calc(${t??e} / 2.5)`},excessLabel:{width:e,height:e},label:{fontSize:`calc(${t??e} / 2.5)`,lineHeight:e!=="100%"?t??e:void 0}})}var rce={"2xs":ld(4),xs:ld(6),sm:ld(8),md:ld(12),lg:ld(16),xl:ld(24),"2xl":ld(32),full:ld("100%")},ice=Que({baseStyle:nce,sizes:rce,defaultProps:{size:"md"}}),oce={Accordion:Wue,Alert:Zue,Avatar:ice,Badge:I1,Breadcrumb:sue,Button:mue,Checkbox:GS,CloseButton:_ue,Code:Tue,Container:Lue,Divider:Due,Drawer:Ole,Editable:Fle,Form:Vle,FormError:Zle,FormLabel:Jle,Heading:nue,Input:xn,Kbd:Cse,Link:kse,List:Lse,Menu:Bse,Modal:Zse,NumberInput:ale,PinInput:cle,Popover:Sle,Progress:Mae,Radio:Hae,Select:Yae,Skeleton:Zae,SkipLink:Jae,Slider:cse,Spinner:hse,Stat:Sse,Switch:koe,Table:Ooe,Tabs:qoe,Tag:aae,Textarea:yae,Tooltip:Sae,Card:Sue},ace={colors:{"chakra-body-text":{_light:"gray.800",_dark:"whiteAlpha.900"},"chakra-body-bg":{_light:"white",_dark:"gray.800"},"chakra-border-color":{_light:"gray.200",_dark:"whiteAlpha.300"},"chakra-subtle-bg":{_light:"gray.100",_dark:"gray.700"},"chakra-placeholder-color":{_light:"gray.500",_dark:"whiteAlpha.400"}}},sce={global:{body:{fontFamily:"body",color:"chakra-body-text",bg:"chakra-body-bg",transitionProperty:"background-color",transitionDuration:"normal",lineHeight:"base"},"*::placeholder":{color:"chakra-placeholder-color"},"*, *::before, &::after":{borderColor:"chakra-border-color",wordWrap:"break-word"}}},lce="ltr",uce={useSystemColorMode:!1,initialColorMode:"light",cssVarPrefix:"chakra"},cce={semanticTokens:ace,direction:lce,...yie,components:oce,styles:sce,config:uce};function dce(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var fce=dce();function hce(e,t){const n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}function pce(e,t,n,r){const i=typeof t=="string"?t.split("."):[t];for(r=0;r{const t=new WeakMap;return(r,i,o,a)=>{if(typeof r>"u")return e(r,i,o);t.has(r)||t.set(r,new Map);const s=t.get(r);if(s.has(i))return s.get(i);const l=e(r,i,o,a);return s.set(i,l),l}},CF=gce(pce);function _F(e,t){const n={};return Object.keys(e).forEach(r=>{const i=e[r];t(i,r,e)&&(n[r]=i)}),n}var kF=e=>_F(e,t=>t!=null);function mce(e){return typeof e=="function"}function EF(e,...t){return mce(e)?e(...t):e}function vce(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}const PF=1/60*1e3,yce=typeof performance<"u"?()=>performance.now():()=>Date.now(),TF=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(yce()),PF);function bce(e){let t=[],n=[],r=0,i=!1,o=!1;const a=new WeakSet,s={schedule:(l,u=!1,d=!1)=>{const h=d&&i,m=h?t:n;return u&&a.add(l),m.indexOf(l)===-1&&(m.push(l),h&&i&&(r=t.length)),l},cancel:l=>{const u=n.indexOf(l);u!==-1&&n.splice(u,1),a.delete(l)},process:l=>{if(i){o=!0;return}if(i=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=bce(()=>Cy=!0),e),{}),Sce=t2.reduce((e,t)=>{const n=Ew[t];return e[t]=(r,i=!1,o=!1)=>(Cy||_ce(),n.schedule(r,i,o)),e},{}),wce=t2.reduce((e,t)=>(e[t]=Ew[t].cancel,e),{});t2.reduce((e,t)=>(e[t]=()=>Ew[t].process(Cm),e),{});const Cce=e=>Ew[e].process(Cm),MF=e=>{Cy=!1,Cm.delta=b_?PF:Math.max(Math.min(e-Cm.timestamp,xce),1),Cm.timestamp=e,x_=!0,t2.forEach(Cce),x_=!1,Cy&&(b_=!1,TF(MF))},_ce=()=>{Cy=!0,b_=!0,x_||TF(MF)},kL=()=>Cm;var kce=typeof Element<"u",Ece=typeof Map=="function",Pce=typeof Set=="function",Tce=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function Yx(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Yx(e[r],t[r]))return!1;return!0}var o;if(Ece&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;for(o=e.entries();!(r=o.next()).done;)if(!Yx(r.value[1],t.get(r.value[0])))return!1;return!0}if(Pce&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(Tce&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;if(kce&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((i[r]==="_owner"||i[r]==="__v"||i[r]==="__o")&&e.$$typeof)&&!Yx(e[i[r]],t[i[r]]))return!1;return!0}return e!==e&&t!==t}var Mce=function(t,n){try{return Yx(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};function LF(e,t={}){var n;const{styleConfig:r,...i}=t,{theme:o,colorMode:a}=eF(),s=e?CF(o,`components.${e}`):void 0,l=r||s,u=Bl({theme:o,colorMode:a},(n=l==null?void 0:l.defaultProps)!=null?n:{},kF(hce(i,["children"]))),d=S.useRef({});if(l){const m=qre(l)(u);Mce(d.current,m)||(d.current=m)}return d.current}function au(e,t={}){return LF(e,t)}function Yi(e,t={}){return LF(e,t)}var Lce=new Set([...Dre,"textStyle","layerStyle","apply","noOfLines","focusBorderColor","errorBorderColor","as","__css","css","sx"]),Ace=new Set(["htmlWidth","htmlHeight","htmlSize","htmlTranslate"]);function Oce(e){return Ace.has(e)||!Lce.has(e)}function Rce(e){const t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function Ice(e,...t){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const n={...e};for(const r of t)if(r!=null)for(const i in r)Object.prototype.hasOwnProperty.call(r,i)&&(i in n&&delete n[i],n[i]=r[i]);return n}var Dce=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,jce=$j(function(e){return Dce.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),Nce=jce,$ce=function(t){return t!=="theme"},EL=function(t){return typeof t=="string"&&t.charCodeAt(0)>96?Nce:$ce},PL=function(t,n,r){var i;if(n){var o=n.shouldForwardProp;i=t.__emotion_forwardProp&&o?function(a){return t.__emotion_forwardProp(a)&&o(a)}:o}return typeof i!="function"&&r&&(i=t.__emotion_forwardProp),i},Fce=function(t){var n=t.cache,r=t.serialized,i=t.isStringTag;return Uj(n,r,i),lee(function(){return Vj(n,r,i)}),null},Bce=function e(t,n){var r=t.__emotion_real===t,i=r&&t.__emotion_base||t,o,a;n!==void 0&&(o=n.label,a=n.target);var s=PL(t,n,r),l=s||EL(i),u=!l("as");return function(){var d=arguments,h=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(o!==void 0&&h.push("label:"+o+";"),d[0]==null||d[0].raw===void 0)h.push.apply(h,d);else{h.push(d[0][0]);for(var m=d.length,y=1;yt=>{const{theme:n,css:r,__css:i,sx:o,...a}=t,s=_F(a,(h,m)=>Nre(m)),l=EF(e,t),u=Ice({},i,l,kF(s),o),d=uF(u)(t.theme);return r?[d,r]:d};function q5(e,t){const{baseStyle:n,...r}=t??{};r.shouldForwardProp||(r.shouldForwardProp=Oce);const i=Wce({baseStyle:n}),o=Hce(e,r)(i);return Ke.forwardRef(function(l,u){const{colorMode:d,forced:h}=Qy();return Ke.createElement(o,{ref:u,"data-theme":h?d:void 0,...l})})}function Uce(){const e=new Map;return new Proxy(q5,{apply(t,n,r){return q5(...r)},get(t,n){return e.has(n)||e.set(n,q5(n)),e.get(n)}})}var Ne=Uce();function Ze(e){return S.forwardRef(e)}function Vce(e={}){const{strict:t=!0,errorMessage:n="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:r}=e,i=S.createContext(void 0);i.displayName=r;function o(){var a;const s=S.useContext(i);if(!s&&t){const l=new Error(n);throw l.name="ContextError",(a=Error.captureStackTrace)==null||a.call(Error,l,o),l}return s}return[i.Provider,o,i]}function Gce(e){const{cssVarsRoot:t,theme:n,children:r}=e,i=S.useMemo(()=>Rre(n),[n]);return g.jsxs(fee,{theme:i,children:[g.jsx(qce,{root:t}),r]})}function qce({root:e=":host, :root"}){const t=[e,"[data-theme]"].join(",");return g.jsx(ow,{styles:n=>({[t]:n.__cssVars})})}Vce({name:"StylesContext",errorMessage:"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` "});function Kce(){const{colorMode:e}=Qy();return g.jsx(ow,{styles:t=>{const n=CF(t,"styles.global"),r=EF(n,{theme:t,colorMode:e});return r?uF(r)(t):void 0}})}var AF=S.createContext({getDocument(){return document},getWindow(){return window}});AF.displayName="EnvironmentContext";function OF(e){const{children:t,environment:n,disabled:r}=e,i=S.useRef(null),o=S.useMemo(()=>n||{getDocument:()=>{var s,l;return(l=(s=i.current)==null?void 0:s.ownerDocument)!=null?l:document},getWindow:()=>{var s,l;return(l=(s=i.current)==null?void 0:s.ownerDocument.defaultView)!=null?l:window}},[n]),a=!r||!n;return g.jsxs(AF.Provider,{value:o,children:[t,a&&g.jsx("span",{id:"__chakra_env",hidden:!0,ref:i})]})}OF.displayName="EnvironmentProvider";var Yce=e=>{const{children:t,colorModeManager:n,portalZIndex:r,resetCSS:i=!0,theme:o={},environment:a,cssVarsRoot:s,disableEnvironment:l}=e,u=g.jsx(OF,{environment:a,disabled:l,children:t});return g.jsx(Gce,{theme:o,cssVarsRoot:s,children:g.jsxs(J$,{colorModeManager:n,options:o.config,children:[i?g.jsx(gee,{}):g.jsx(pee,{}),g.jsx(Kce,{}),r?g.jsx(Zj,{zIndex:r,children:u}):u]})})},Xce=(e,t)=>e.find(n=>n.id===t);function ML(e,t){const n=RF(e,t),r=n?e[n].findIndex(i=>i.id===t):-1;return{position:n,index:r}}function RF(e,t){for(const[n,r]of Object.entries(e))if(Xce(r,t))return n}function Zce(e){const t=e.includes("right"),n=e.includes("left");let r="center";return t&&(r="flex-end"),n&&(r="flex-start"),{display:"flex",flexDirection:"column",alignItems:r}}function Qce(e){const n=e==="top"||e==="bottom"?"0 auto":void 0,r=e.includes("top")?"env(safe-area-inset-top, 0px)":void 0,i=e.includes("bottom")?"env(safe-area-inset-bottom, 0px)":void 0,o=e.includes("left")?void 0:"env(safe-area-inset-right, 0px)",a=e.includes("right")?void 0:"env(safe-area-inset-left, 0px)";return{position:"fixed",zIndex:5500,pointerEvents:"none",display:"flex",flexDirection:"column",margin:n,top:r,bottom:i,right:o,left:a}}function Qr(e,t=[]){const n=S.useRef(e);return S.useEffect(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function Jce(e,t){const n=Qr(e);S.useEffect(()=>{if(t==null)return;let r=null;return r=window.setTimeout(()=>{n()},t),()=>{r&&window.clearTimeout(r)}},[t,n])}function rc(e,t){const n=S.useRef(!1),r=S.useRef(!1);S.useEffect(()=>{if(n.current&&r.current)return e();r.current=!0},t),S.useEffect(()=>(n.current=!0,()=>{n.current=!1}),[])}const IF=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Pw=S.createContext({});function ede(){return S.useContext(Pw).visualElement}const n2=S.createContext(null),Tw=typeof document<"u",YS=Tw?S.useLayoutEffect:S.useEffect,DF=S.createContext({strict:!1});function tde(e,t,n,r){const i=ede(),o=S.useContext(DF),a=S.useContext(n2),s=S.useContext(IF).reducedMotion,l=S.useRef();r=r||o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:i,props:n,presenceContext:a,blockInitialAnimation:a?a.initial===!1:!1,reducedMotionConfig:s}));const u=l.current;return S.useInsertionEffect(()=>{u&&u.update(n,a)}),YS(()=>{u&&u.render()}),S.useEffect(()=>{u&&u.updateFeatures()}),(window.HandoffAppearAnimations?YS:S.useEffect)(()=>{u&&u.animationState&&u.animationState.animateChanges()}),u}function Qg(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function nde(e,t,n){return S.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Qg(n)&&(n.current=r))},[t])}function _y(e){return typeof e=="string"||Array.isArray(e)}function Mw(e){return typeof e=="object"&&typeof e.start=="function"}const rde=["initial","animate","exit","whileHover","whileDrag","whileTap","whileFocus","whileInView"];function Lw(e){return Mw(e.animate)||rde.some(t=>_y(e[t]))}function jF(e){return Boolean(Lw(e)||e.variants)}function ide(e,t){if(Lw(e)){const{initial:n,animate:r}=e;return{initial:n===!1||_y(n)?n:void 0,animate:_y(r)?r:void 0}}return e.inherit!==!1?t:{}}function ode(e){const{initial:t,animate:n}=ide(e,S.useContext(Pw));return S.useMemo(()=>({initial:t,animate:n}),[LL(t),LL(n)])}function LL(e){return Array.isArray(e)?e.join(" "):e}const AL={animation:["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},ky={};for(const e in AL)ky[e]={isEnabled:t=>AL[e].some(n=>!!t[n])};function ade(e){for(const t in e)ky[t]={...ky[t],...e[t]}}function R9(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const N1={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let sde=1;function lde(){return R9(()=>{if(N1.hasEverUpdated)return sde++})}const I9=S.createContext({}),NF=S.createContext({}),ude=Symbol.for("motionComponentSymbol");function cde({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){e&&ade(e);function o(s,l){let u;const d={...S.useContext(IF),...s,layoutId:dde(s)},{isStatic:h}=d,m=ode(s),y=h?void 0:lde(),b=r(s,h);if(!h&&Tw){m.visualElement=tde(i,b,d,t);const w=S.useContext(NF),E=S.useContext(DF).strict;m.visualElement&&(u=m.visualElement.loadFeatures(d,E,e,y,w))}return S.createElement(Pw.Provider,{value:m},u&&m.visualElement?S.createElement(u,{visualElement:m.visualElement,...d}):null,n(i,s,y,nde(b,m.visualElement,l),b,h,m.visualElement))}const a=S.forwardRef(o);return a[ude]=i,a}function dde({layoutId:e}){const t=S.useContext(I9).id;return t&&e!==void 0?t+"-"+e:e}function fde(e){function t(r,i={}){return cde(e(r,i))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,i)=>(n.has(i)||n.set(i,t(i)),n.get(i))})}const hde=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function D9(e){return typeof e!="string"||e.includes("-")?!1:!!(hde.indexOf(e)>-1||/[A-Z]/.test(e))}const XS={};function pde(e){Object.assign(XS,e)}const Aw=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],d0=new Set(Aw);function $F(e,{layout:t,layoutId:n}){return d0.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!XS[e]||e==="opacity")}const ta=e=>Boolean(e&&e.getVelocity),gde={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},mde=Aw.length;function vde(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},r,i){let o="";for(let a=0;at&&typeof e=="number"?t.transform(e):e,Vm=(e,t,n)=>Math.min(Math.max(n,e),t),np={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},$1={...np,transform:e=>Vm(0,1,e)},zb={...np,default:1},F1=e=>Math.round(e*1e5)/1e5,Ey=/(-)?([\d]*\.?[\d])+/g,S_=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,bde=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function r2(e){return typeof e=="string"}const i2=e=>({test:t=>r2(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),cd=i2("deg"),Yl=i2("%"),Pt=i2("px"),xde=i2("vh"),Sde=i2("vw"),OL={...Yl,parse:e=>Yl.parse(e)/100,transform:e=>Yl.transform(e*100)},RL={...np,transform:Math.round},BF={borderWidth:Pt,borderTopWidth:Pt,borderRightWidth:Pt,borderBottomWidth:Pt,borderLeftWidth:Pt,borderRadius:Pt,radius:Pt,borderTopLeftRadius:Pt,borderTopRightRadius:Pt,borderBottomRightRadius:Pt,borderBottomLeftRadius:Pt,width:Pt,maxWidth:Pt,height:Pt,maxHeight:Pt,size:Pt,top:Pt,right:Pt,bottom:Pt,left:Pt,padding:Pt,paddingTop:Pt,paddingRight:Pt,paddingBottom:Pt,paddingLeft:Pt,margin:Pt,marginTop:Pt,marginRight:Pt,marginBottom:Pt,marginLeft:Pt,rotate:cd,rotateX:cd,rotateY:cd,rotateZ:cd,scale:zb,scaleX:zb,scaleY:zb,scaleZ:zb,skew:cd,skewX:cd,skewY:cd,distance:Pt,translateX:Pt,translateY:Pt,translateZ:Pt,x:Pt,y:Pt,z:Pt,perspective:Pt,transformPerspective:Pt,opacity:$1,originX:OL,originY:OL,originZ:Pt,zIndex:RL,fillOpacity:$1,strokeOpacity:$1,numOctaves:RL};function j9(e,t,n,r){const{style:i,vars:o,transform:a,transformOrigin:s}=e;let l=!1,u=!1,d=!0;for(const h in t){const m=t[h];if(FF(h)){o[h]=m;continue}const y=BF[h],b=yde(m,y);if(d0.has(h)){if(l=!0,a[h]=b,!d)continue;m!==(y.default||0)&&(d=!1)}else h.startsWith("origin")?(u=!0,s[h]=b):i[h]=b}if(t.transform||(l||r?i.transform=vde(e.transform,n,d,r):i.transform&&(i.transform="none")),u){const{originX:h="50%",originY:m="50%",originZ:y=0}=s;i.transformOrigin=`${h} ${m} ${y}`}}const N9=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function zF(e,t,n){for(const r in t)!ta(t[r])&&!$F(r,n)&&(e[r]=t[r])}function wde({transformTemplate:e},t,n){return S.useMemo(()=>{const r=N9();return j9(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function Cde(e,t,n){const r=e.style||{},i={};return zF(i,r,e),Object.assign(i,wde(e,t,n)),e.transformValues?e.transformValues(i):i}function _de(e,t,n){const r={},i=Cde(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=i,r}const kde=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","ignoreStrict","viewport"]);function ZS(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||kde.has(e)}let HF=e=>!ZS(e);function Ede(e){e&&(HF=t=>t.startsWith("on")?!ZS(t):e(t))}try{Ede(require("@emotion/is-prop-valid").default)}catch{}function Pde(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(HF(i)||n===!0&&ZS(i)||!t&&!ZS(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function IL(e,t,n){return typeof e=="string"?e:Pt.transform(t+n*e)}function Tde(e,t,n){const r=IL(t,e.x,e.width),i=IL(n,e.y,e.height);return`${r} ${i}`}const Mde={offset:"stroke-dashoffset",array:"stroke-dasharray"},Lde={offset:"strokeDashoffset",array:"strokeDasharray"};function Ade(e,t,n=1,r=0,i=!0){e.pathLength=1;const o=i?Mde:Lde;e[o.offset]=Pt.transform(-r);const a=Pt.transform(t),s=Pt.transform(n);e[o.array]=`${a} ${s}`}function $9(e,{attrX:t,attrY:n,originX:r,originY:i,pathLength:o,pathSpacing:a=1,pathOffset:s=0,...l},u,d,h){if(j9(e,l,u,h),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:m,style:y,dimensions:b}=e;m.transform&&(b&&(y.transform=m.transform),delete m.transform),b&&(r!==void 0||i!==void 0||y.transform)&&(y.transformOrigin=Tde(b,r!==void 0?r:.5,i!==void 0?i:.5)),t!==void 0&&(m.x=t),n!==void 0&&(m.y=n),o!==void 0&&Ade(m,o,a,s,!1)}const WF=()=>({...N9(),attrs:{}}),F9=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Ode(e,t,n,r){const i=S.useMemo(()=>{const o=WF();return $9(o,t,{enableHardwareAcceleration:!1},F9(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};zF(o,e.style,e),i.style={...o,...i.style}}return i}function Rde(e=!1){return(n,r,i,o,{latestValues:a},s)=>{const u=(D9(n)?Ode:_de)(r,a,s,n),h={...Pde(r,typeof n=="string",e),...u,ref:o},{children:m}=r,y=S.useMemo(()=>ta(m)?m.get():m,[m]);return i&&(h["data-projection-id"]=i),S.createElement(n,{...h,children:y})}}const B9=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function UF(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const VF=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function GF(e,t,n,r){UF(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(VF.has(i)?i:B9(i),t.attrs[i])}function z9(e,t){const{style:n}=e,r={};for(const i in n)(ta(n[i])||t.style&&ta(t.style[i])||$F(i,e))&&(r[i]=n[i]);return r}function qF(e,t){const n=z9(e,t);for(const r in e)if(ta(e[r])||ta(t[r])){const i=r==="x"||r==="y"?"attr"+r.toUpperCase():r;n[i]=e[r]}return n}function H9(e,t,n,r={},i={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),t}const QS=e=>Array.isArray(e),Ide=e=>Boolean(e&&typeof e=="object"&&e.mix&&e.toValue),Dde=e=>QS(e)?e[e.length-1]||0:e;function Xx(e){const t=ta(e)?e.get():e;return Ide(t)?t.toValue():t}function jde({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,i,o){const a={latestValues:Nde(r,i,o,e),renderState:t()};return n&&(a.mount=s=>n(r,s,a)),a}const KF=e=>(t,n)=>{const r=S.useContext(Pw),i=S.useContext(n2),o=()=>jde(e,t,r,i);return n?o():R9(o)};function Nde(e,t,n,r){const i={},o=r(e,{});for(const m in o)i[m]=Xx(o[m]);let{initial:a,animate:s}=e;const l=Lw(e),u=jF(e);t&&u&&!l&&e.inherit!==!1&&(a===void 0&&(a=t.initial),s===void 0&&(s=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const h=d?s:a;return h&&typeof h!="boolean"&&!Mw(h)&&(Array.isArray(h)?h:[h]).forEach(y=>{const b=H9(e,y);if(!b)return;const{transitionEnd:w,transition:E,..._}=b;for(const k in _){let T=_[k];if(Array.isArray(T)){const L=d?T.length-1:0;T=T[L]}T!==null&&(i[k]=T)}for(const k in w)i[k]=w[k]}),i}const $de={useVisualState:KF({scrapeMotionValuesFromProps:qF,createRenderState:WF,onMount:(e,t,{renderState:n,latestValues:r})=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}$9(n,r,{enableHardwareAcceleration:!1},F9(t.tagName),e.transformTemplate),GF(t,n)}})},Fde={useVisualState:KF({scrapeMotionValuesFromProps:z9,createRenderState:N9})};function Bde(e,{forwardMotionProps:t=!1},n,r){return{...D9(e)?$de:Fde,preloadedFeatures:n,useRender:Rde(t),createVisualElement:r,Component:e}}function Hu(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const YF=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function Ow(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const zde=e=>t=>YF(t)&&e(t,Ow(t));function Gu(e,t,n,r){return Hu(e,t,zde(n),r)}var tr;(function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.InView="whileInView",e.Exit="exit"})(tr||(tr={}));const Hde=(e,t)=>n=>t(e(n)),Nd=(...e)=>e.reduce(Hde);function XF(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const DL=XF("dragHorizontal"),jL=XF("dragVertical");function ZF(e){let t=!1;if(e==="y")t=jL();else if(e==="x")t=DL();else{const n=DL(),r=jL();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function QF(){const e=ZF(!0);return e?(e(),!1):!0}let sf=class{constructor(t){this.isMounted=!1,this.node=t}update(){}};function NL(e,t){const n="pointer"+(t?"enter":"leave"),r="onHover"+(t?"Start":"End"),i=(o,a)=>{if(o.type==="touch"||QF())return;const s=e.getProps();e.animationState&&s.whileHover&&e.animationState.setActive(tr.Hover,t),s[r]&&s[r](o,a)};return Gu(e.current,n,i,{passive:!e.getProps()[r]})}class Wde extends sf{mount(){this.unmount=Nd(NL(this.node,!0),NL(this.node,!1))}unmount(){}}class Ude extends sf{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive(tr.Focus,!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive(tr.Focus,!1),this.isActive=!1)}mount(){this.unmount=Nd(Hu(this.node.current,"focus",()=>this.onFocus()),Hu(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const JF=(e,t)=>t?e===t?!0:JF(e,t.parentElement):!1,Xl=e=>e;function K5(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,Ow(n))}class Vde extends sf{constructor(){super(...arguments),this.removeStartListeners=Xl,this.removeEndListeners=Xl,this.removeAccessibleListeners=Xl,this.startPointerPress=(t,n)=>{if(this.removeEndListeners(),this.isPressing)return;const r=this.node.getProps(),o=Gu(window,"pointerup",(s,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:d}=this.node.getProps();JF(this.node.current,s.target)?u&&u(s,l):d&&d(s,l)},{passive:!(r.onTap||r.onPointerUp)}),a=Gu(window,"pointercancel",(s,l)=>this.cancelPress(s,l),{passive:!(r.onTapCancel||r.onPointerCancel)});this.removeEndListeners=Nd(o,a),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=o=>{if(o.key!=="Enter"||this.isPressing)return;const a=s=>{s.key!=="Enter"||!this.checkPressEnd()||K5("up",this.node.getProps().onTap)};this.removeEndListeners(),this.removeEndListeners=Hu(this.node.current,"keyup",a),K5("down",(s,l)=>{this.startPress(s,l)})},n=Hu(this.node.current,"keydown",t),r=()=>{this.isPressing&&K5("cancel",(o,a)=>this.cancelPress(o,a))},i=Hu(this.node.current,"blur",r);this.removeAccessibleListeners=Nd(n,i)}}startPress(t,n){this.isPressing=!0;const{onTapStart:r,whileTap:i}=this.node.getProps();i&&this.node.animationState&&this.node.animationState.setActive(tr.Tap,!0),r&&r(t,n)}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive(tr.Tap,!1),!QF()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:r}=this.node.getProps();r&&r(t,n)}mount(){const t=this.node.getProps(),n=Gu(this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),r=Hu(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Nd(n,r)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const w_=new WeakMap,Y5=new WeakMap,Gde=e=>{const t=w_.get(e.target);t&&t(e)},qde=e=>{e.forEach(Gde)};function Kde({root:e,...t}){const n=e||document;Y5.has(n)||Y5.set(n,{});const r=Y5.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(qde,{root:e,...t})),r[i]}function Yde(e,t,n){const r=Kde(t);return w_.set(e,n),r.observe(e),()=>{w_.delete(e),r.unobserve(e)}}const Xde={some:0,all:1};class Zde extends sf{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}viewportFallback(){requestAnimationFrame(()=>{this.hasEnteredView=!0;const{onViewportEnter:t}=this.node.getProps();t&&t(null),this.node.animationState&&this.node.animationState.setActive(tr.InView,!0)})}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:o,fallback:a=!0}=t;if(typeof IntersectionObserver>"u"){a&&this.viewportFallback();return}const s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:Xde[i]},l=u=>{const{isIntersecting:d}=u;if(this.isInView===d||(this.isInView=d,o&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(tr.InView,d);const{onViewportEnter:h,onViewportLeave:m}=this.node.getProps(),y=d?h:m;y&&y(u)};return Yde(this.node.current,s,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(Qde(t,n))&&this.startObserver()}unmount(){}}function Qde({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Jde={inView:{Feature:Zde},tap:{Feature:Vde},focus:{Feature:Ude},hover:{Feature:Wde}};function eB(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r/^\-?\d*\.?\d+$/.test(e),tfe=e=>/^0[^.\s]+$/.test(e),qu={delta:0,timestamp:0},tB=1/60*1e3,nfe=typeof performance<"u"?()=>performance.now():()=>Date.now(),nB=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(nfe()),tB);function rfe(e){let t=[],n=[],r=0,i=!1,o=!1;const a=new WeakSet,s={schedule:(l,u=!1,d=!1)=>{const h=d&&i,m=h?t:n;return u&&a.add(l),m.indexOf(l)===-1&&(m.push(l),h&&i&&(r=t.length)),l},cancel:l=>{const u=n.indexOf(l);u!==-1&&n.splice(u,1),a.delete(l)},process:l=>{if(i){o=!0;return}if(i=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=rfe(()=>Py=!0),e),{}),so=o2.reduce((e,t)=>{const n=Rw[t];return e[t]=(r,i=!1,o=!1)=>(Py||afe(),n.schedule(r,i,o)),e},{}),Gd=o2.reduce((e,t)=>(e[t]=Rw[t].cancel,e),{}),X5=o2.reduce((e,t)=>(e[t]=()=>Rw[t].process(qu),e),{}),ofe=e=>Rw[e].process(qu),rB=e=>{Py=!1,qu.delta=C_?tB:Math.max(Math.min(e-qu.timestamp,ife),1),qu.timestamp=e,__=!0,o2.forEach(ofe),__=!1,Py&&(C_=!1,nB(rB))},afe=()=>{Py=!0,C_=!0,__||nB(rB)};function W9(e,t){e.indexOf(t)===-1&&e.push(t)}function U9(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class V9{constructor(){this.subscriptions=[]}add(t){return W9(this.subscriptions,t),()=>U9(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let o=0;o!isNaN(parseFloat(e));class lfe{constructor(t,n={}){this.version="9.0.4",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(r,i=!0)=>{this.prev=this.current,this.current=r;const{delta:o,timestamp:a}=qu;this.lastUpdated!==a&&(this.timeDelta=o,this.lastUpdated=a,so.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>so.postRender(this.velocityCheck),this.velocityCheck=({timestamp:r})=>{r!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=sfe(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new V9);const r=this.events[t].add(n);return t==="change"?()=>{r(),so.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=t,this.timeDelta=r}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?G9(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n)||null,this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=null}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Gm(e,t){return new lfe(e,t)}const q9=(e,t)=>n=>Boolean(r2(n)&&bde.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),iB=(e,t,n)=>r=>{if(!r2(r))return r;const[i,o,a,s]=r.match(Ey);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(a),alpha:s!==void 0?parseFloat(s):1}},ufe=e=>Vm(0,255,e),Z5={...np,transform:e=>Math.round(ufe(e))},Eh={test:q9("rgb","red"),parse:iB("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Z5.transform(e)+", "+Z5.transform(t)+", "+Z5.transform(n)+", "+F1($1.transform(r))+")"};function cfe(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const k_={test:q9("#"),parse:cfe,transform:Eh.transform},Jg={test:q9("hsl","hue"),parse:iB("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Yl.transform(F1(t))+", "+Yl.transform(F1(n))+", "+F1($1.transform(r))+")"},bo={test:e=>Eh.test(e)||k_.test(e)||Jg.test(e),parse:e=>Eh.test(e)?Eh.parse(e):Jg.test(e)?Jg.parse(e):k_.parse(e),transform:e=>r2(e)?e:e.hasOwnProperty("red")?Eh.transform(e):Jg.transform(e)},oB="${c}",aB="${n}";function dfe(e){var t,n;return isNaN(e)&&r2(e)&&(((t=e.match(Ey))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(S_))===null||n===void 0?void 0:n.length)||0)>0}function JS(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0,r=0;const i=e.match(S_);i&&(n=i.length,e=e.replace(S_,oB),t.push(...i.map(bo.parse)));const o=e.match(Ey);return o&&(r=o.length,e=e.replace(Ey,aB),t.push(...o.map(np.parse))),{values:t,numColors:n,numNumbers:r,tokenised:e}}function sB(e){return JS(e).values}function lB(e){const{values:t,numColors:n,tokenised:r}=JS(e),i=t.length;return o=>{let a=r;for(let s=0;stypeof e=="number"?0:e;function hfe(e){const t=sB(e);return lB(e)(t.map(ffe))}const qd={test:dfe,parse:sB,createTransformer:lB,getAnimatableNone:hfe},pfe=new Set(["brightness","contrast","saturate","opacity"]);function gfe(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ey)||[];if(!r)return e;const i=n.replace(r,"");let o=pfe.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+i+")"}const mfe=/([a-z-]*)\(.*?\)/g,E_={...qd,getAnimatableNone:e=>{const t=e.match(mfe);return t?t.map(gfe).join(" "):e}},vfe={...BF,color:bo,backgroundColor:bo,outlineColor:bo,fill:bo,stroke:bo,borderColor:bo,borderTopColor:bo,borderRightColor:bo,borderBottomColor:bo,borderLeftColor:bo,filter:E_,WebkitFilter:E_},K9=e=>vfe[e];function Y9(e,t){let n=K9(e);return n!==E_&&(n=qd),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const uB=e=>t=>t.test(e),yfe={test:e=>e==="auto",parse:e=>e},cB=[np,Pt,Yl,cd,Sde,xde,yfe],Hv=e=>cB.find(uB(e)),bfe=[...cB,bo,qd],xfe=e=>bfe.find(uB(e));function Sfe(e){const t={};return e.values.forEach((n,r)=>t[r]=n.get()),t}function wfe(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Iw(e,t,n){const r=e.getProps();return H9(r,t,n!==void 0?n:r.custom,Sfe(e),wfe(e))}function Cfe(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Gm(n))}function _fe(e,t){const n=Iw(e,t);let{transitionEnd:r={},transition:i={},...o}=n?e.makeTargetAnimatable(n,!1):{};o={...o,...r};for(const a in o){const s=Dde(o[a]);Cfe(e,a,s)}}function kfe(e,t,n){var r,i;const o=Object.keys(t).filter(s=>!e.hasValue(s)),a=o.length;if(a)for(let s=0;se*1e3,Afe={current:!1},X9=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Z9=e=>t=>1-e(1-t),Q9=e=>e*e,Ofe=Z9(Q9),J9=X9(Q9),Fr=(e,t,n)=>-n*e+n*t+e;function Q5(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Rfe({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,a=0;if(!t)i=o=a=n;else{const s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;i=Q5(l,s,e+1/3),o=Q5(l,s,e),a=Q5(l,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(a*255),alpha:r}}const J5=(e,t,n)=>{const r=e*e;return Math.sqrt(Math.max(0,n*(t*t-r)+r))},Ife=[k_,Eh,Jg],Dfe=e=>Ife.find(t=>t.test(e));function $L(e){const t=Dfe(e);let n=t.parse(e);return t===Jg&&(n=Rfe(n)),n}const dB=(e,t)=>{const n=$L(e),r=$L(t),i={...n};return o=>(i.red=J5(n.red,r.red,o),i.green=J5(n.green,r.green,o),i.blue=J5(n.blue,r.blue,o),i.alpha=Fr(n.alpha,r.alpha,o),Eh.transform(i))};function fB(e,t){return typeof e=="number"?n=>Fr(e,t,n):bo.test(e)?dB(e,t):pB(e,t)}const hB=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,a)=>fB(o,t[a]));return o=>{for(let a=0;a{const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=fB(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}},pB=(e,t)=>{const n=qd.createTransformer(t),r=JS(e),i=JS(t);return r.numColors===i.numColors&&r.numNumbers>=i.numNumbers?Nd(hB(r.values,i.values),n):a=>`${a>0?t:e}`},n3=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},FL=(e,t)=>n=>Fr(e,t,n);function Nfe(e){return typeof e=="number"?FL:typeof e=="string"?bo.test(e)?dB:pB:Array.isArray(e)?hB:typeof e=="object"?jfe:FL}function $fe(e,t,n){const r=[],i=n||Nfe(e[0]),o=e.length-1;for(let a=0;ae[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=$fe(t,r,i),s=a.length,l=u=>{let d=0;if(s>1)for(;dl(Vm(e[0],e[o-1],u)):l}const mB=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,Ffe=1e-7,Bfe=12;function zfe(e,t,n,r,i){let o,a,s=0;do a=t+(n-t)/2,o=mB(a,r,i)-e,o>0?n=a:t=a;while(Math.abs(o)>Ffe&&++szfe(o,0,1,e,n);return o=>o===0||o===1?o:mB(i(o),t,r)}const yB=e=>1-Math.sin(Math.acos(e)),e8=Z9(yB),Hfe=X9(e8),bB=vB(.33,1.53,.69,.99),t8=Z9(bB),Wfe=X9(t8),Ufe=e=>(e*=2)<1?.5*t8(e):.5*(2-Math.pow(2,-10*(e-1))),Vfe={linear:Xl,easeIn:Q9,easeInOut:J9,easeOut:Ofe,circIn:yB,circInOut:Hfe,circOut:e8,backIn:t8,backInOut:Wfe,backOut:bB,anticipate:Ufe},BL=e=>{if(Array.isArray(e)){t3(e.length===4);const[t,n,r,i]=e;return vB(t,n,r,i)}else if(typeof e=="string")return Vfe[e];return e},Gfe=e=>Array.isArray(e)&&typeof e[0]!="number";function qfe(e,t){return e.map(()=>t||J9).splice(0,e.length-1)}function Kfe(e){const t=e.length;return e.map((n,r)=>r!==0?r/(t-1):0)}function Yfe(e,t){return e.map(n=>n*t)}function P_({keyframes:e,ease:t=J9,times:n,duration:r=300}){e=[...e];const i=Gfe(t)?t.map(BL):BL(t),o={done:!1,value:e[0]},a=Yfe(n&&n.length===e.length?n:Kfe(e),r);function s(){return gB(a,e,{ease:Array.isArray(i)?i:qfe(e,i)})}let l=s();return{next:u=>(o.value=l(u),o.done=u>=r,o),flipTarget:()=>{e.reverse(),l=s()}}}const eC=.001,Xfe=.01,zL=10,Zfe=.05,Qfe=1;function Jfe({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let i,o;Lfe(e<=zL*1e3);let a=1-t;a=Vm(Zfe,Qfe,a),e=Vm(Xfe,zL,e/1e3),a<1?(i=u=>{const d=u*a,h=d*e,m=d-n,y=T_(u,a),b=Math.exp(-h);return eC-m/y*b},o=u=>{const h=u*a*e,m=h*n+n,y=Math.pow(a,2)*Math.pow(u,2)*e,b=Math.exp(-h),w=T_(Math.pow(u,2),a);return(-i(u)+eC>0?-1:1)*((m-y)*b)/w}):(i=u=>{const d=Math.exp(-u*e),h=(u-n)*e+1;return-eC+d*h},o=u=>{const d=Math.exp(-u*e),h=(n-u)*(e*e);return d*h});const s=5/e,l=the(i,o,s);if(e=e*1e3,isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const ehe=12;function the(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function ihe(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!HL(e,rhe)&&HL(e,nhe)){const n=Jfe(e);t={...t,...n,velocity:0,mass:1},t.isResolvedFromDuration=!0}return t}const ohe=5;function xB({keyframes:e,restDelta:t,restSpeed:n,...r}){let i=e[0],o=e[e.length-1];const a={done:!1,value:i},{stiffness:s,damping:l,mass:u,velocity:d,duration:h,isResolvedFromDuration:m}=ihe(r);let y=ahe,b=d?-(d/1e3):0;const w=l/(2*Math.sqrt(s*u));function E(){const _=o-i,k=Math.sqrt(s/u)/1e3,T=Math.abs(_)<5;if(n||(n=T?.01:2),t||(t=T?.005:.5),w<1){const L=T_(k,w);y=O=>{const D=Math.exp(-w*k*O);return o-D*((b+w*k*_)/L*Math.sin(L*O)+_*Math.cos(L*O))}}else if(w===1)y=L=>o-Math.exp(-k*L)*(_+(b+k*_)*L);else{const L=k*Math.sqrt(w*w-1);y=O=>{const D=Math.exp(-w*k*O),I=Math.min(L*O,300);return o-D*((b+w*k*_)*Math.sinh(I)+L*_*Math.cosh(I))/L}}}return E(),{next:_=>{const k=y(_);if(m)a.done=_>=h;else{let T=b;if(_!==0)if(w<1){const D=Math.max(0,_-ohe);T=G9(k-y(D),_-D)}else T=0;const L=Math.abs(T)<=n,O=Math.abs(o-k)<=t;a.done=L&&O}return a.value=a.done?o:k,a},flipTarget:()=>{b=-b,[i,o]=[o,i],E()}}}xB.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";const ahe=e=>0;function she({keyframes:e=[0],velocity:t=0,power:n=.8,timeConstant:r=350,restDelta:i=.5,modifyTarget:o}){const a=e[0],s={done:!1,value:a};let l=n*t;const u=a+l,d=o===void 0?u:o(u);return d!==u&&(l=d-a),{next:h=>{const m=-l*Math.exp(-h/r);return s.done=!(m>i||m<-i),s.value=s.done?d:d+m,s},flipTarget:()=>{}}}const lhe={decay:she,keyframes:P_,tween:P_,spring:xB};function SB(e,t,n=0){return e-t-n}function uhe(e,t=0,n=0,r=!0){return r?SB(t+-e,t,n):t-(e-t)+n}function che(e,t,n,r){return r?e>=t+n:e<=-n}const dhe=e=>{const t=({delta:n})=>e(n);return{start:()=>so.update(t,!0),stop:()=>Gd.update(t)}};function r3({duration:e,driver:t=dhe,elapsed:n=0,repeat:r=0,repeatType:i="loop",repeatDelay:o=0,keyframes:a,autoplay:s=!0,onPlay:l,onStop:u,onComplete:d,onRepeat:h,onUpdate:m,type:y="keyframes",...b}){const w=n;let E,_=0,k=e,T=!1,L=!0,O;const D=lhe[a.length>2?"keyframes":y]||P_,I=a[0],N=a[a.length-1];let W={done:!1,value:I};const{needsInterpolation:B}=D;B&&B(I,N)&&(O=gB([0,100],[I,N],{clamp:!1}),a=[0,100]);const K=D({...b,duration:e,keyframes:a});function ne(){_++,i==="reverse"?(L=_%2===0,n=uhe(n,k,o,L)):(n=SB(n,k,o),i==="mirror"&&K.flipTarget()),T=!1,h&&h()}function z(){E&&E.stop(),d&&d()}function $(X){L||(X=-X),n+=X,T||(W=K.next(Math.max(0,n)),O&&(W.value=O(W.value)),T=L?W.done:n<=0),m&&m(W.value),T&&(_===0&&(k=k!==void 0?k:n),_{u&&u(),E&&E.stop()},set currentTime(X){n=w,$(X)},sample:X=>{n=w;const Q=e&&typeof e=="number"?Math.max(e*.5,50):50;let G=0;for($(0);G<=X;){const Y=X-G;$(Math.min(Y,Q)),G+=Q}return W}}}function fhe(e){return!e||Array.isArray(e)||typeof e=="string"&&wB[e]}const d1=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,wB={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:d1([0,.65,.55,1]),circOut:d1([.55,0,1,.45]),backIn:d1([.31,.01,.66,-.59]),backOut:d1([.33,1.53,.69,.99])};function hhe(e){if(e)return Array.isArray(e)?d1(e):wB[e]}function phe(e,t,n,{delay:r=0,duration:i,repeat:o=0,repeatType:a="loop",ease:s,times:l}={}){return e.animate({[t]:n,offset:l},{delay:r,duration:i,easing:hhe(s),fill:"both",iterations:o+1,direction:a==="reverse"?"alternate":"normal"})}const WL={waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate")},tC={},CB={};for(const e in WL)CB[e]=()=>(tC[e]===void 0&&(tC[e]=WL[e]()),tC[e]);function ghe(e,{repeat:t,repeatType:n="loop"}){const r=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[r]}const mhe=new Set(["opacity"]),Hb=10;function vhe(e,t,{onUpdate:n,onComplete:r,...i}){if(!(CB.waapi()&&mhe.has(t)&&!i.repeatDelay&&i.repeatType!=="mirror"&&i.damping!==0))return!1;let{keyframes:a,duration:s=300,elapsed:l=0,ease:u}=i;if(i.type==="spring"||!fhe(i.ease)){if(i.repeat===1/0)return;const h=r3({...i,elapsed:0});let m={done:!1,value:a[0]};const y=[];let b=0;for(;!m.done&&b<2e4;)m=h.sample(b),y.push(m.value),b+=Hb;a=y,s=b-Hb,u="linear"}const d=phe(e.owner.current,t,a,{...i,delay:-l,duration:s,ease:u});return d.onfinish=()=>{e.set(ghe(a,i)),so.update(()=>d.cancel()),r&&r()},{get currentTime(){return d.currentTime||0},set currentTime(h){d.currentTime=h},stop:()=>{const{currentTime:h}=d;if(h){const m=r3({...i,autoplay:!1});e.setWithVelocity(m.sample(h-Hb).value,m.sample(h).value,Hb)}so.update(()=>d.cancel())}}}function _B(e,t){const n=performance.now(),r=({timestamp:i})=>{const o=i-n;o>=t&&(Gd.read(r),e(o-t))};return so.read(r,!0),()=>Gd.read(r)}function yhe({keyframes:e,elapsed:t,onUpdate:n,onComplete:r}){const i=()=>{n&&n(e[e.length-1]),r&&r()};return t?{stop:_B(i,-t)}:i()}function bhe({keyframes:e,velocity:t=0,min:n,max:r,power:i=.8,timeConstant:o=750,bounceStiffness:a=500,bounceDamping:s=10,restDelta:l=1,modifyTarget:u,driver:d,onUpdate:h,onComplete:m,onStop:y}){const b=e[0];let w;function E(L){return n!==void 0&&Lr}function _(L){return n===void 0?r:r===void 0||Math.abs(n-L){h&&h(O),L.onUpdate&&L.onUpdate(O)},onComplete:m,onStop:y})}function T(L){k({type:"spring",stiffness:a,damping:s,restDelta:l,...L})}if(E(b))T({velocity:t,keyframes:[b,_(b)]});else{let L=i*t+b;typeof u<"u"&&(L=u(L));const O=_(L),D=O===n?-1:1;let I,N;const W=B=>{I=N,N=B,t=G9(B-I,qu.delta),(D===1&&B>O||D===-1&&Bw&&w.stop()}}const nh=()=>({type:"spring",stiffness:500,damping:25,restSpeed:10}),Wb=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),nC=()=>({type:"keyframes",ease:"linear",duration:.3}),xhe={type:"keyframes",duration:.8},UL={x:nh,y:nh,z:nh,rotate:nh,rotateX:nh,rotateY:nh,rotateZ:nh,scaleX:Wb,scaleY:Wb,scale:Wb,opacity:nC,backgroundColor:nC,color:nC,default:Wb},She=(e,{keyframes:t})=>t.length>2?xhe:(UL[e]||UL.default)(t[1]),M_=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&qd.test(t)&&!t.startsWith("url("));function whe({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:o,repeatType:a,repeatDelay:s,from:l,elapsed:u,...d}){return!!Object.keys(d).length}function VL(e){return e===0||typeof e=="string"&&parseFloat(e)===0&&e.indexOf(" ")===-1}function GL(e){return typeof e=="number"?0:Y9("",e)}function kB(e,t){return e[t]||e.default||e}function Che(e,t,n,r){const i=M_(t,n);let o=r.from!==void 0?r.from:e.get();return o==="none"&&i&&typeof n=="string"?o=Y9(t,n):VL(o)&&typeof n=="string"?o=GL(n):!Array.isArray(n)&&VL(n)&&typeof o=="string"&&(n=GL(o)),Array.isArray(n)?(n[0]===null&&(n[0]=o),n):[o,n]}const n8=(e,t,n,r={})=>i=>{const o=kB(r,e)||{},a=o.delay||r.delay||0;let{elapsed:s=0}=r;s=s-Zx(a);const l=Che(t,e,n,o),u=l[0],d=l[l.length-1],h=M_(e,u),m=M_(e,d);let y={keyframes:l,velocity:t.getVelocity(),...o,elapsed:s,onUpdate:b=>{t.set(b),o.onUpdate&&o.onUpdate(b)},onComplete:()=>{i(),o.onComplete&&o.onComplete()}};if(!h||!m||Afe.current||o.type===!1)return yhe(y);if(o.type==="inertia")return bhe(y);if(whe(o)||(y={...y,...She(e,y)}),y.duration&&(y.duration=Zx(y.duration)),y.repeatDelay&&(y.repeatDelay=Zx(y.repeatDelay)),t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const b=vhe(t,e,y);if(b)return b}return r3(y)};function _he(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(o=>L_(e,o,n));r=Promise.all(i)}else if(typeof t=="string")r=L_(e,t,n);else{const i=typeof t=="function"?Iw(e,t,n.custom):t;r=EB(e,i,n)}return r.then(()=>e.notify("AnimationComplete",t))}function L_(e,t,n={}){const r=Iw(e,t,n.custom);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const o=r?()=>EB(e,r,n):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=i;return khe(e,t,u+l,d,h,n)}:()=>Promise.resolve(),{when:s}=i;if(s){const[l,u]=s==="beforeChildren"?[o,a]:[a,o];return l().then(u)}else return Promise.all([o(),a(n.delay)])}function EB(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:o=e.getDefaultTransition(),transitionEnd:a,...s}=e.makeTargetAnimatable(t);const l=e.getValue("willChange");r&&(o=r);const u=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const h in s){const m=e.getValue(h),y=s[h];if(!m||y===void 0||d&&Phe(d,h))continue;const b={delay:n,elapsed:0,...o};if(window.HandoffAppearAnimations&&!m.hasAnimated){const E=e.getProps()[Mfe];E&&(b.elapsed=window.HandoffAppearAnimations(E,h,m,so))}let w=m.start(n8(h,m,y,e.shouldReduceMotion&&d0.has(h)?{type:!1}:b));e3(l)&&(l.add(h),w=w.then(()=>l.remove(h))),u.push(w)}return Promise.all(u).then(()=>{a&&_fe(e,a)})}function khe(e,t,n=0,r=0,i=1,o){const a=[],s=(e.variantChildren.size-1)*r,l=i===1?(u=0)=>u*r:(u=0)=>s-u*r;return Array.from(e.variantChildren).sort(Ehe).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(L_(u,t,{...o,delay:n+l(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function Ehe(e,t){return e.sortNodePosition(t)}function Phe({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}const r8=[tr.Animate,tr.InView,tr.Focus,tr.Hover,tr.Tap,tr.Drag,tr.Exit],The=[...r8].reverse(),Mhe=r8.length;function Lhe(e){return t=>Promise.all(t.map(({animation:n,options:r})=>_he(e,n,r)))}function Ahe(e){let t=Lhe(e);const n=Rhe();let r=!0;const i=(l,u)=>{const d=Iw(e,u);if(d){const{transition:h,transitionEnd:m,...y}=d;l={...l,...y,...m}}return l};function o(l){t=l(e)}function a(l,u){const d=e.getProps(),h=e.getVariantContext(!0)||{},m=[],y=new Set;let b={},w=1/0;for(let _=0;_w&&O;const B=Array.isArray(L)?L:[L];let K=B.reduce(i,{});D===!1&&(K={});const{prevResolvedValues:ne={}}=T,z={...ne,...K},$=V=>{W=!0,y.delete(V),T.needsAnimating[V]=!0};for(const V in z){const X=K[V],Q=ne[V];b.hasOwnProperty(V)||(X!==Q?QS(X)&&QS(Q)?!eB(X,Q)||N?$(V):T.protectedKeys[V]=!0:X!==void 0?$(V):y.add(V):X!==void 0&&y.has(V)?$(V):T.protectedKeys[V]=!0)}T.prevProp=L,T.prevResolvedValues=K,T.isActive&&(b={...b,...K}),r&&e.blockInitialAnimation&&(W=!1),W&&!I&&m.push(...B.map(V=>({animation:V,options:{type:k,...l}})))}if(y.size){const _={};y.forEach(k=>{const T=e.getBaseTarget(k);T!==void 0&&(_[k]=T)}),m.push({animation:_})}let E=Boolean(m.length);return r&&d.initial===!1&&!e.manuallyAnimateOnMount&&(E=!1),r=!1,E?t(m):Promise.resolve()}function s(l,u,d){if(n[l].isActive===u)return Promise.resolve();e.variantChildren&&e.variantChildren.forEach(m=>{m.animationState&&m.animationState.setActive(l,u)}),n[l].isActive=u;const h=a(d,l);for(const m in n)n[m].protectedKeys={};return h}return{animateChanges:a,setActive:s,setAnimateFunction:o,getState:()=>n}}function Ohe(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!eB(t,e):!1}function rh(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Rhe(){return{[tr.Animate]:rh(!0),[tr.InView]:rh(),[tr.Hover]:rh(),[tr.Tap]:rh(),[tr.Drag]:rh(),[tr.Focus]:rh(),[tr.Exit]:rh()}}class Ihe extends sf{constructor(t){super(t),t.animationState||(t.animationState=Ahe(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),Mw(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let Dhe=0;class jhe extends sf{constructor(){super(...arguments),this.id=Dhe++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:r}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===i)return;const o=this.node.animationState.setActive(tr.Exit,!t,{custom:r??this.node.getProps().custom});n&&!t&&o.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const Nhe={animation:{Feature:Ihe},exit:{Feature:jhe}},qL=(e,t)=>Math.abs(e-t);function $he(e,t){const n=qL(e.x,t.x),r=qL(e.y,t.y);return Math.sqrt(n**2+r**2)}class PB{constructor(t,n,{transformPagePoint:r}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=iC(this.lastMoveEventInfo,this.history),d=this.startEvent!==null,h=$he(u.offset,{x:0,y:0})>=3;if(!d&&!h)return;const{point:m}=u,{timestamp:y}=qu;this.history.push({...m,timestamp:y});const{onStart:b,onMove:w}=this.handlers;d||(b&&b(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),w&&w(this.lastMoveEvent,u)},this.handlePointerMove=(u,d)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=rC(d,this.transformPagePoint),so.update(this.updatePoint,!0)},this.handlePointerUp=(u,d)=>{if(this.end(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const{onEnd:h,onSessionEnd:m}=this.handlers,y=iC(u.type==="pointercancel"?this.lastMoveEventInfo:rC(d,this.transformPagePoint),this.history);this.startEvent&&h&&h(u,y),m&&m(u,y)},!YF(t))return;this.handlers=n,this.transformPagePoint=r;const i=Ow(t),o=rC(i,this.transformPagePoint),{point:a}=o,{timestamp:s}=qu;this.history=[{...a,timestamp:s}];const{onSessionStart:l}=n;l&&l(t,iC(o,this.history)),this.removeListeners=Nd(Gu(window,"pointermove",this.handlePointerMove),Gu(window,"pointerup",this.handlePointerUp),Gu(window,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Gd.update(this.updatePoint)}}function rC(e,t){return t?{point:t(e.point)}:e}function KL(e,t){return{x:e.x-t.x,y:e.y-t.y}}function iC({point:e},t){return{point:e,delta:KL(e,TB(t)),offset:KL(e,Fhe(t)),velocity:Bhe(t,.1)}}function Fhe(e){return e[0]}function TB(e){return e[e.length-1]}function Bhe(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=TB(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>Zx(t)));)n--;if(!r)return{x:0,y:0};const o=(i.timestamp-r.timestamp)/1e3;if(o===0)return{x:0,y:0};const a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function Aa(e){return e.max-e.min}function A_(e,t=0,n=.01){return Math.abs(e-t)<=n}function YL(e,t,n,r=.5){e.origin=r,e.originPoint=Fr(t.min,t.max,e.origin),e.scale=Aa(n)/Aa(t),(A_(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=Fr(n.min,n.max,e.origin)-e.originPoint,(A_(e.translate)||isNaN(e.translate))&&(e.translate=0)}function B1(e,t,n,r){YL(e.x,t.x,n.x,r?r.originX:void 0),YL(e.y,t.y,n.y,r?r.originY:void 0)}function XL(e,t,n){e.min=n.min+t.min,e.max=e.min+Aa(t)}function zhe(e,t,n){XL(e.x,t.x,n.x),XL(e.y,t.y,n.y)}function ZL(e,t,n){e.min=t.min-n.min,e.max=e.min+Aa(t)}function z1(e,t,n){ZL(e.x,t.x,n.x),ZL(e.y,t.y,n.y)}function Hhe(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Fr(n,e,r.max):Math.min(e,n)),e}function QL(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function Whe(e,{top:t,left:n,bottom:r,right:i}){return{x:QL(e.x,n,i),y:QL(e.y,t,r)}}function JL(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=n3(t.min,t.max-r,e.min):r>i&&(n=n3(e.min,e.max-i,t.min)),Vm(0,1,n)}function Ghe(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const O_=.35;function qhe(e=O_){return e===!1?e=0:e===!0&&(e=O_),{x:eA(e,"left","right"),y:eA(e,"top","bottom")}}function eA(e,t,n){return{min:tA(e,t),max:tA(e,n)}}function tA(e,t){return typeof e=="number"?e:e[t]||0}const nA=()=>({translate:0,scale:1,origin:0,originPoint:0}),H1=()=>({x:nA(),y:nA()}),rA=()=>({min:0,max:0}),gi=()=>({x:rA(),y:rA()});function Al(e){return[e("x"),e("y")]}function MB({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Khe({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Yhe(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function oC(e){return e===void 0||e===1}function R_({scale:e,scaleX:t,scaleY:n}){return!oC(e)||!oC(t)||!oC(n)}function dh(e){return R_(e)||LB(e)||e.z||e.rotate||e.rotateX||e.rotateY}function LB(e){return iA(e.x)||iA(e.y)}function iA(e){return e&&e!=="0%"}function i3(e,t,n){const r=e-n,i=t*r;return n+i}function oA(e,t,n,r,i){return i!==void 0&&(e=i3(e,i,r)),i3(e,n,r)+t}function I_(e,t=0,n=1,r,i){e.min=oA(e.min,t,n,r,i),e.max=oA(e.max,t,n,r,i)}function AB(e,{x:t,y:n}){I_(e.x,t.translate,t.scale,t.originPoint),I_(e.y,n.translate,n.scale,n.originPoint)}function Xhe(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,a;for(let s=0;s1.0000000000001||e<.999999999999?e:1}function gd(e,t){e.min=e.min+t,e.max=e.max+t}function sA(e,t,[n,r,i]){const o=t[i]!==void 0?t[i]:.5,a=Fr(e.min,e.max,o);I_(e,t[n],t[r],a,t.scale)}const Zhe=["x","scaleX","originX"],Qhe=["y","scaleY","originY"];function em(e,t){sA(e.x,t,Zhe),sA(e.y,t,Qhe)}function OB(e,t){return MB(Yhe(e.getBoundingClientRect(),t))}function Jhe(e,t,n){const r=OB(e,n),{scroll:i}=t;return i&&(gd(r.x,i.offset.x),gd(r.y,i.offset.y)),r}const epe=new WeakMap;class tpe{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=gi(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=l=>{this.stopAnimation(),n&&this.snapToCursor(Ow(l,"page").point)},o=(l,u)=>{const{drag:d,dragPropagation:h,onDragStart:m}=this.getProps();if(d&&!h&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=ZF(d),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Al(b=>{let w=this.getAxisMotionValue(b).get()||0;if(Yl.test(w)){const{projection:E}=this.visualElement;if(E&&E.layout){const _=E.layout.layoutBox[b];_&&(w=Aa(_)*(parseFloat(w)/100))}}this.originPoint[b]=w}),m&&m(l,u);const{animationState:y}=this.visualElement;y&&y.setActive(tr.Drag,!0)},a=(l,u)=>{const{dragPropagation:d,dragDirectionLock:h,onDirectionLock:m,onDrag:y}=this.getProps();if(!d&&!this.openGlobalLock)return;const{offset:b}=u;if(h&&this.currentDirection===null){this.currentDirection=npe(b),this.currentDirection!==null&&m&&m(this.currentDirection);return}this.updateAxis("x",u.point,b),this.updateAxis("y",u.point,b),this.visualElement.render(),y&&y(l,u)},s=(l,u)=>this.stop(l,u);this.panSession=new PB(t,{onSessionStart:i,onStart:o,onMove:a,onSessionEnd:s},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:o}=this.getProps();o&&o(t,n)}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive(tr.Drag,!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Ub(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=Hhe(a,this.constraints[t],this.elastic[t])),o.set(a)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),{layout:r}=this.visualElement.projection||{},i=this.constraints;t&&Qg(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=Whe(r.layoutBox,t):this.constraints=!1,this.elastic=qhe(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Al(o=>{this.getAxisMotionValue(o)&&(this.constraints[o]=Ghe(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Qg(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=Jhe(r,i.root,this.visualElement.getTransformPagePoint());let a=Uhe(i.layout.layoutBox,o);if(n){const s=n(Khe(a));this.hasMutatedConstraints=!!s,s&&(a=MB(s))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:a,onDragTransitionEnd:s}=this.getProps(),l=this.constraints||{},u=Al(d=>{if(!Ub(d,n,this.currentDirection))return;let h=l&&l[d]||{};a&&(h={min:0,max:0});const m=i?200:1e6,y=i?40:1e7,b={type:"inertia",velocity:r?t[d]:0,bounceStiffness:m,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...o,...h};return this.startAxisValueAnimation(d,b)});return Promise.all(u).then(s)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return r.start(n8(t,r,0,n))}stopAnimation(){Al(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){Al(n=>{const{drag:r}=this.getProps();if(!Ub(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:a,max:s}=i.layout.layoutBox[n];o.set(t[n]-Fr(a,s,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Qg(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Al(a=>{const s=this.getAxisMotionValue(a);if(s){const l=s.get();i[a]=Vhe({min:l,max:l},this.constraints[a])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Al(a=>{if(!Ub(a,t,null))return;const s=this.getAxisMotionValue(a),{min:l,max:u}=this.constraints[a];s.set(Fr(l,u,i[a]))})}addListeners(){if(!this.visualElement.current)return;epe.set(this.visualElement,this);const t=this.visualElement.current,n=Gu(t,"pointerdown",l=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Qg(l)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,o=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),r();const a=Hu(window,"resize",()=>this.scalePositionWithinConstraints()),s=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(Al(d=>{const h=this.getAxisMotionValue(d);h&&(this.originPoint[d]+=l[d].translate,h.set(h.get()+l[d].translate))}),this.visualElement.render())});return()=>{a(),n(),o(),s&&s()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:a=O_,dragMomentum:s=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:a,dragMomentum:s}}}function Ub(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function npe(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class rpe extends sf{constructor(t){super(t),this.removeGroupControls=Xl,this.removeListeners=Xl,this.controls=new tpe(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Xl}unmount(){this.removeGroupControls(),this.removeListeners()}}class ipe extends sf{constructor(){super(...arguments),this.removePointerDownListener=Xl}onPointerDown(t){this.session=new PB(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint()})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:t,onStart:n,onMove:r,onEnd:(o,a)=>{delete this.session,i&&i(o,a)}}}mount(){this.removePointerDownListener=Gu(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function RB(){const e=S.useContext(n2);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,i=S.useId();return S.useEffect(()=>r(i),[]),!t&&n?[!1,()=>n&&n(i)]:[!0]}function ope(){return ape(S.useContext(n2))}function ape(e){return e===null?!0:e.isPresent}function lA(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Wv={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Pt.test(e))e=parseFloat(e);else return e;const n=lA(e,t.target.x),r=lA(e,t.target.y);return`${n}% ${r}%`}};function D_(e){return typeof e=="string"&&e.startsWith("var(--")}const IB=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function spe(e){const t=IB.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function j_(e,t,n=1){const[r,i]=spe(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);return o?o.trim():D_(i)?j_(i,t,n+1):i}function lpe(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(i=>{const o=i.get();if(!D_(o))return;const a=j_(o,r);a&&i.set(a)});for(const i in t){const o=t[i];if(!D_(o))continue;const a=j_(o,r);a&&(t[i]=a,n&&n[i]===void 0&&(n[i]=o))}return{target:t,transitionEnd:n}}const uA="_$css",upe={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=e.includes("var("),o=[];i&&(e=e.replace(IB,y=>(o.push(y),uA)));const a=qd.parse(e);if(a.length>5)return r;const s=qd.createTransformer(e),l=typeof a[0]!="number"?1:0,u=n.x.scale*t.x,d=n.y.scale*t.y;a[0+l]/=u,a[1+l]/=d;const h=Fr(u,d,.5);typeof a[2+l]=="number"&&(a[2+l]/=h),typeof a[3+l]=="number"&&(a[3+l]/=h);let m=s(a);if(i){let y=0;m=m.replace(uA,()=>{const b=o[y];return y++,b})}return m}};class cpe extends Ke.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;pde(dpe),o&&(n.group&&n.group.add(o),r&&r.register&&i&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),N1.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:o}=this.props,a=r.projection;return a&&(a.isPresent=o,i||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?a.promote():a.relegate()||so.postRender(()=>{const s=a.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),!t.currentAnimation&&t.isLead()&&this.safeToRemove())}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function DB(e){const[t,n]=RB(),r=S.useContext(I9);return Ke.createElement(cpe,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(NF),isPresent:t,safeToRemove:n})}const dpe={borderRadius:{...Wv,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Wv,borderTopRightRadius:Wv,borderBottomLeftRadius:Wv,borderBottomRightRadius:Wv,boxShadow:upe};function fpe(e,t,n={}){const r=ta(e)?e:Gm(e);return r.start(n8("",r,t,n)),{stop:()=>r.stop(),isAnimating:()=>r.isAnimating()}}const jB=["TopLeft","TopRight","BottomLeft","BottomRight"],hpe=jB.length,cA=e=>typeof e=="string"?parseFloat(e):e,dA=e=>typeof e=="number"||Pt.test(e);function ppe(e,t,n,r,i,o){i?(e.opacity=Fr(0,n.opacity!==void 0?n.opacity:1,gpe(r)),e.opacityExit=Fr(t.opacity!==void 0?t.opacity:1,0,mpe(r))):o&&(e.opacity=Fr(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(n3(e,t,r))}function hA(e,t){e.min=t.min,e.max=t.max}function Ns(e,t){hA(e.x,t.x),hA(e.y,t.y)}function pA(e,t,n,r,i){return e-=t,e=i3(e,1/n,r),i!==void 0&&(e=i3(e,1/i,r)),e}function vpe(e,t=0,n=1,r=.5,i,o=e,a=e){if(Yl.test(t)&&(t=parseFloat(t),t=Fr(a.min,a.max,t/100)-a.min),typeof t!="number")return;let s=Fr(o.min,o.max,r);e===o&&(s-=t),e.min=pA(e.min,t,n,s,i),e.max=pA(e.max,t,n,s,i)}function gA(e,t,[n,r,i],o,a){vpe(e,t[n],t[r],t[i],t.scale,o,a)}const ype=["x","scaleX","originX"],bpe=["y","scaleY","originY"];function mA(e,t,n,r){gA(e.x,t,ype,n?n.x:void 0,r?r.x:void 0),gA(e.y,t,bpe,n?n.y:void 0,r?r.y:void 0)}function vA(e){return e.translate===0&&e.scale===1}function $B(e){return vA(e.x)&&vA(e.y)}function FB(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function yA(e){return Aa(e.x)/Aa(e.y)}class xpe{constructor(){this.members=[]}add(t){W9(this.members,t),t.scheduleRender()}remove(t){if(U9(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const o=this.members[i];if(o.isPresent!==!1){r=o;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function bA(e,t,n){let r="";const i=e.x.translate/t.x,o=e.y.translate/t.y;if((i||o)&&(r=`translate3d(${i}px, ${o}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:u,rotateY:d}=n;l&&(r+=`rotate(${l}deg) `),u&&(r+=`rotateX(${u}deg) `),d&&(r+=`rotateY(${d}deg) `)}const a=e.x.scale*t.x,s=e.y.scale*t.y;return(a!==1||s!==1)&&(r+=`scale(${a}, ${s})`),r||"none"}const Spe=(e,t)=>e.depth-t.depth;class wpe{constructor(){this.children=[],this.isDirty=!1}add(t){W9(this.children,t),this.isDirty=!0}remove(t){U9(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Spe),this.isDirty=!1,this.children.forEach(t)}}const xA=["","X","Y","Z"],SA=1e3;let Cpe=0;function BB({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(a,s={},l=t==null?void 0:t()){this.id=Cpe++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isTransformDirty=!1,this.isProjectionDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.nodes.forEach(Epe),this.nodes.forEach(Mpe),this.nodes.forEach(Lpe)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.elementId=a,this.latestValues=s,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0,a&&this.root.registerPotentialNode(a,this);for(let u=0;uthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,h&&h(),h=_B(m,250),N1.hasAnimatedSinceResize&&(N1.hasAnimatedSinceResize=!1,this.nodes.forEach(CA))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||u)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:m,hasRelativeTargetChanged:y,layout:b})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=this.options.transition||d.getDefaultTransition()||Dpe,{onLayoutAnimationStart:E,onLayoutAnimationComplete:_}=d.getProps(),k=!this.targetLayout||!FB(this.targetLayout,b)||y,T=!m&&y;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||T||m&&(k||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(h,T);const L={...kB(w,"layout"),onPlay:E,onComplete:_};(d.shouldReduceMotion||this.options.layoutRoot)&&(L.delay=0,L.type=!1),this.startAnimation(L)}else!m&&this.animationProgress===0&&CA(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=b})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Gd.preRender(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Ape),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const L=T/1e3;_A(h.x,a.x,L),_A(h.y,a.y,L),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(z1(m,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Rpe(this.relativeTarget,this.relativeTargetOrigin,m,L)),w&&(this.animationValues=d,ppe(d,u,this.latestValues,L,k,_)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=L},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Gd.update(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=so.update(()=>{N1.hasAnimatedSinceResize=!0,this.currentAnimation=fpe(0,SA,{...a,onUpdate:s=>{this.mixTargetDelta(s),a.onUpdate&&a.onUpdate(s)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(SA),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:s,target:l,layout:u,latestValues:d}=a;if(!(!s||!l||!u)){if(this!==a&&this.layout&&u&&zB(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||gi();const h=Aa(this.layout.layoutBox.x);l.x.min=a.target.x.min,l.x.max=l.x.min+h;const m=Aa(this.layout.layoutBox.y);l.y.min=a.target.y.min,l.y.max=l.y.min+m}Ns(s,l),em(s,d),B1(this.projectionDeltaWithTransform,this.layoutCorrected,s,d)}}registerSharedNode(a,s){this.sharedNodes.has(a)||this.sharedNodes.set(a,new xpe),this.sharedNodes.get(a).add(s);const u=s.options.initialPromotionConfig;s.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(s):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:s}=this.options;return s?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:s}=this.options;return s?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:s,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),a&&(this.projectionDelta=void 0,this.needsReset=!0),s&&this.setOptions({transition:s})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetRotation(){const{visualElement:a}=this.options;if(!a)return;let s=!1;const{latestValues:l}=a;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(s=!0),!s)return;const u={};for(let d=0;d{var s;return(s=a.currentAnimation)===null||s===void 0?void 0:s.stop()}),this.root.nodes.forEach(wA),this.root.sharedNodes.clear()}}}function _pe(e){e.updateLayout()}function kpe(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:o}=e.options,a=n.source!==e.layout.source;o==="size"?Al(h=>{const m=a?n.measuredBox[h]:n.layoutBox[h],y=Aa(m);m.min=r[h].min,m.max=m.min+y}):zB(o,n.layoutBox,r)&&Al(h=>{const m=a?n.measuredBox[h]:n.layoutBox[h],y=Aa(r[h]);m.max=m.min+y});const s=H1();B1(s,r,n.layoutBox);const l=H1();a?B1(l,e.applyTransform(i,!0),n.measuredBox):B1(l,r,n.layoutBox);const u=!$B(s);let d=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:m,layout:y}=h;if(m&&y){const b=gi();z1(b,n.layoutBox,m.layoutBox);const w=gi();z1(w,r,y.layoutBox),FB(b,w)||(d=!0),h.options.layoutRoot&&(e.relativeTarget=w,e.relativeTargetOrigin=b,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:s,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Epe(e){e.isProjectionDirty||(e.isProjectionDirty=Boolean(e.parent&&e.parent.isProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=Boolean(e.parent&&e.parent.isTransformDirty))}function Ppe(e){e.clearSnapshot()}function wA(e){e.clearMeasurements()}function Tpe(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function CA(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0}function Mpe(e){e.resolveTargetDelta()}function Lpe(e){e.calcProjection()}function Ape(e){e.resetRotation()}function Ope(e){e.removeLeadSnapshot()}function _A(e,t,n){e.translate=Fr(t.translate,0,n),e.scale=Fr(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function kA(e,t,n,r){e.min=Fr(t.min,n.min,r),e.max=Fr(t.max,n.max,r)}function Rpe(e,t,n,r){kA(e.x,t.x,n.x,r),kA(e.y,t.y,n.y,r)}function Ipe(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Dpe={duration:.45,ease:[.4,0,.1,1]};function jpe(e,t){let n=e.root;for(let o=e.path.length-1;o>=0;o--)if(Boolean(e.path[o].instance)){n=e.path[o];break}const i=(n&&n!==e.root?n.instance:document).querySelector(`[data-projection-id="${t}"]`);i&&e.mount(i,!0)}function EA(e){e.min=Math.round(e.min),e.max=Math.round(e.max)}function Npe(e){EA(e.x),EA(e.y)}function zB(e,t,n){return e==="position"||e==="preserve-aspect"&&!A_(yA(t),yA(n),.2)}const $pe=BB({attachResizeListener:(e,t)=>Hu(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),aC={current:void 0},HB=BB({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!aC.current){const e=new $pe(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),aC.current=e}return aC.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>Boolean(window.getComputedStyle(e).position==="fixed")}),Fpe={pan:{Feature:ipe},drag:{Feature:rpe,ProjectionNode:HB,MeasureLayout:DB}},Bpe=new Set(["width","height","top","left","right","bottom","x","y"]),WB=e=>Bpe.has(e),zpe=e=>Object.keys(e).some(WB),PA=e=>e===np||e===Pt;var TA;(function(e){e.width="width",e.height="height",e.left="left",e.right="right",e.top="top",e.bottom="bottom"})(TA||(TA={}));const MA=(e,t)=>parseFloat(e.split(", ")[t]),LA=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/);if(i)return MA(i[1],t);{const o=r.match(/^matrix\((.+)\)$/);return o?MA(o[1],e):0}},Hpe=new Set(["x","y","z"]),Wpe=Aw.filter(e=>!Hpe.has(e));function Upe(e){const t=[];return Wpe.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const AA={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:LA(4,13),y:LA(5,14)},Vpe=(e,t,n)=>{const r=t.measureViewportBox(),i=t.current,o=getComputedStyle(i),{display:a}=o,s={};a==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{s[u]=AA[u](r,o)}),t.render();const l=t.measureViewportBox();return n.forEach(u=>{const d=t.getValue(u);d&&d.jump(s[u]),e[u]=AA[u](l,o)}),e},Gpe=(e,t,n={},r={})=>{t={...t},r={...r};const i=Object.keys(t).filter(WB);let o=[],a=!1;const s=[];if(i.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let d=n[l],h=Hv(d);const m=t[l];let y;if(QS(m)){const b=m.length,w=m[0]===null?1:0;d=m[w],h=Hv(d);for(let E=w;E=0?window.pageYOffset:null,u=Vpe(t,e,s);return o.length&&o.forEach(([d,h])=>{e.getValue(d).set(h)}),e.render(),Tw&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function qpe(e,t,n,r){return zpe(t)?Gpe(e,t,n,r):{target:t,transitionEnd:r}}const Kpe=(e,t,n,r)=>{const i=lpe(e,t,r);return t=i.target,r=i.transitionEnd,qpe(e,t,n,r)},N_={current:null},UB={current:!1};function Ype(){if(UB.current=!0,!!Tw)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>N_.current=e.matches;e.addListener(t),t()}else N_.current=!1}function Xpe(e,t,n){const{willChange:r}=t;for(const i in t){const o=t[i],a=n[i];if(ta(o))e.addValue(i,o),e3(r)&&r.add(i);else if(ta(a))e.addValue(i,Gm(o,{owner:e})),e3(r)&&r.remove(i);else if(a!==o)if(e.hasValue(i)){const s=e.getValue(i);!s.hasAnimated&&s.set(o)}else{const s=e.getStaticValue(i);e.addValue(i,Gm(s!==void 0?s:o,{owner:e}))}}for(const i in n)t[i]===void 0&&e.removeValue(i);return t}const VB=Object.keys(ky),Zpe=VB.length,OA=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class Qpe{constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>so.render(this.render,!1,!0);const{latestValues:s,renderState:l}=o;this.latestValues=s,this.baseTarget={...s},this.initialValues=n.initial?{...s}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=a,this.isControllingVariants=Lw(n),this.isVariantNode=jF(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(t&&t.current);const{willChange:u,...d}=this.scrapeMotionValuesFromProps(n,{});for(const h in d){const m=d[h];s[h]!==void 0&&ta(m)&&(m.set(s[h],!1),e3(u)&&u.add(h))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,this.projection&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,r)=>this.bindToMotionValue(r,n)),UB.current||Ype(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:N_.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),Gd.update(this.notifyUpdate),Gd.render(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const r=d0.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&so.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{i(),o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},r,i,o,a){let s,l;for(let u=0;uthis.scheduleRender(),animationType:typeof d=="string"?d:"both",initialPromotionConfig:a,layoutScroll:y,layoutRoot:b})}return l}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update(this.props,this.prevProps):(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):gi()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Gm(n,{owner:this}),this.addValue(t,r)),r}readValue(t){return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,i=typeof r=="string"||typeof r=="object"?(n=H9(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&i!==void 0)return i;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!ta(o)?o:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new V9),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}const GB=["initial",...r8],Jpe=GB.length;class qB extends Qpe{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:i},o){let a=Pfe(r,t||{},this);if(i&&(n&&(n=i(n)),r&&(r=i(r)),a&&(a=i(a))),o){kfe(this,r,a);const s=Kpe(this,r,a,n);n=s.transitionEnd,r=s.target}return{transition:t,transitionEnd:n,...r}}}function ege(e){return window.getComputedStyle(e)}class tge extends qB{readValueFromInstance(t,n){if(d0.has(n)){const r=K9(n);return r&&r.default||0}else{const r=ege(t),i=(FF(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return OB(t,n)}build(t,n,r,i){j9(t,n,r,i.transformTemplate)}scrapeMotionValuesFromProps(t,n){return z9(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;ta(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,r,i){UF(t,n,r,i)}}class nge extends qB{constructor(){super(...arguments),this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(d0.has(n)){const r=K9(n);return r&&r.default||0}return n=VF.has(n)?n:B9(n),t.getAttribute(n)}measureInstanceViewportBox(){return gi()}scrapeMotionValuesFromProps(t,n){return qF(t,n)}build(t,n,r,i){$9(t,n,r,this.isSVGTag,i.transformTemplate)}renderInstance(t,n,r,i){GF(t,n,r,i)}mount(t){this.isSVGTag=F9(t.tagName),super.mount(t)}}const rge=(e,t)=>D9(e)?new nge(t,{enableHardwareAcceleration:!1}):new tge(t,{enableHardwareAcceleration:!0}),ige={layout:{ProjectionNode:HB,MeasureLayout:DB}},oge={...Nhe,...Jde,...Fpe,...ige},su=fde((e,t)=>Bde(e,t,oge,rge));function KB(){const e=S.useRef(!1);return YS(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function age(){const e=KB(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>so.postRender(r),[r]),t]}class sge extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function lge({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0});return S.useInsertionEffect(()=>{const{width:o,height:a,top:s,left:l}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const u=document.createElement("style");return document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` - [data-motion-pop-id="${n}"] { - position: absolute !important; - width: ${o}px !important; - height: ${a}px !important; - top: ${s}px !important; - left: ${l}px !important; - } - `),()=>{document.head.removeChild(u)}},[t]),S.createElement(sge,{isPresent:t,childRef:r,sizeRef:i},S.cloneElement(e,{ref:r}))}const sC=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:o,mode:a})=>{const s=R9(uge),l=S.useId(),u=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:d=>{s.set(d,!0);for(const h of s.values())if(!h)return;r&&r()},register:d=>(s.set(d,!1),()=>s.delete(d))}),o?void 0:[n]);return S.useMemo(()=>{s.forEach((d,h)=>s.set(h,!1))},[n]),S.useEffect(()=>{!n&&!s.size&&r&&r()},[n]),a==="popLayout"&&(e=S.createElement(lge,{isPresent:n},e)),S.createElement(n2.Provider,{value:u},e)};function uge(){return new Map}function cge(e){return S.useEffect(()=>()=>e(),[])}const jg=e=>e.key||"";function dge(e,t){e.forEach(n=>{const r=jg(n);t.set(r,n)})}function fge(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const rp=({children:e,custom:t,initial:n=!0,onExitComplete:r,exitBeforeEnter:i,presenceAffectsLayout:o=!0,mode:a="sync"})=>{i&&(a="wait");let[s]=age();const l=S.useContext(I9).forceRender;l&&(s=l);const u=KB(),d=fge(e);let h=d;const m=new Set,y=S.useRef(h),b=S.useRef(new Map).current,w=S.useRef(!0);if(YS(()=>{w.current=!1,dge(d,b),y.current=h}),cge(()=>{w.current=!0,b.clear(),m.clear()}),w.current)return S.createElement(S.Fragment,null,h.map(T=>S.createElement(sC,{key:jg(T),isPresent:!0,initial:n?void 0:!1,presenceAffectsLayout:o,mode:a},T)));h=[...h];const E=y.current.map(jg),_=d.map(jg),k=E.length;for(let T=0;T{if(_.indexOf(T)!==-1)return;const L=b.get(T);if(!L)return;const O=E.indexOf(T),D=()=>{b.delete(T),m.delete(T);const I=y.current.findIndex(N=>N.key===T);if(y.current.splice(I,1),!m.size){if(y.current=d,u.current===!1)return;s(),r&&r()}};h.splice(O,0,S.createElement(sC,{key:jg(L),isPresent:!1,onExitComplete:D,custom:t,presenceAffectsLayout:o,mode:a},L))}),h=h.map(T=>{const L=T.key;return m.has(L)?T:S.createElement(sC,{key:jg(T),isPresent:!0,presenceAffectsLayout:o,mode:a},T)}),S.createElement(S.Fragment,null,m.size?h:h.map(T=>S.cloneElement(T)))};var Nl=function(){return Nl=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0&&o[o.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function $_(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r{const{position:t}=e,n=["top","bottom"].includes(t)?"y":"x";let r=["top-right","bottom-right"].includes(t)?1:-1;return t==="bottom"&&(r=1),{opacity:0,[n]:r*24}},animate:{opacity:1,y:0,x:0,scale:1,transition:{duration:.4,ease:[.4,0,.2,1]}},exit:{opacity:0,scale:.85,transition:{duration:.2,ease:[.4,0,1,1]}}},XB=S.memo(e=>{const{id:t,message:n,onCloseComplete:r,onRequestRemove:i,requestClose:o=!1,position:a="bottom",duration:s=5e3,containerStyle:l,motionVariants:u=hge,toastSpacing:d="0.5rem"}=e,[h,m]=S.useState(s),y=ope();rc(()=>{y||r==null||r()},[y]),rc(()=>{m(s)},[s]);const b=()=>m(null),w=()=>m(s),E=()=>{y&&i()};S.useEffect(()=>{y&&o&&i()},[y,o,i]),Jce(E,h);const _=S.useMemo(()=>({pointerEvents:"auto",maxWidth:560,minWidth:300,margin:d,...l}),[l,d]),k=S.useMemo(()=>Zce(a),[a]);return g.jsx(su.li,{layout:!0,className:"chakra-toast",variants:u,initial:"initial",animate:"animate",exit:"exit",onHoverStart:b,onHoverEnd:w,custom:{position:a},style:k,children:g.jsx(Ne.div,{role:"status","aria-atomic":"true",className:"chakra-toast__inner",__css:_,children:ts(n,{id:t,onClose:E})})})});XB.displayName="ToastComponent";function pge(e,t){var n;const r=e??"bottom",o={"top-start":{ltr:"top-left",rtl:"top-right"},"top-end":{ltr:"top-right",rtl:"top-left"},"bottom-start":{ltr:"bottom-left",rtl:"bottom-right"},"bottom-end":{ltr:"bottom-right",rtl:"bottom-left"}}[r];return(n=o==null?void 0:o[t])!=null?n:r}var IA={path:g.jsxs("g",{stroke:"currentColor",strokeWidth:"1.5",children:[g.jsx("path",{strokeLinecap:"round",fill:"none",d:"M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"}),g.jsx("path",{fill:"currentColor",strokeLinecap:"round",d:"M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"}),g.jsx("circle",{fill:"none",strokeMiterlimit:"10",cx:"12",cy:"12",r:"11.25"})]}),viewBox:"0 0 24 24"},ja=Ze((e,t)=>{const{as:n,viewBox:r,color:i="currentColor",focusable:o=!1,children:a,className:s,__css:l,...u}=e,d=xt("chakra-icon",s),h=au("Icon",e),m={w:"1em",h:"1em",display:"inline-block",lineHeight:"1em",flexShrink:0,color:i,...l,...h},y={ref:t,focusable:o,className:d,__css:m},b=r??IA.viewBox;if(n&&typeof n!="string")return g.jsx(Ne.svg,{as:n,...y,...u});const w=a??IA.path;return g.jsx(Ne.svg,{verticalAlign:"middle",viewBox:b,...y,...u,children:w})});ja.displayName="Icon";function fc(e){const{viewBox:t="0 0 24 24",d:n,displayName:r,defaultProps:i={}}=e,o=S.Children.toArray(e.path),a=Ze((s,l)=>g.jsx(ja,{ref:l,viewBox:t,...i,...s,children:o.length?o:g.jsx("path",{fill:"currentColor",d:n})}));return a.displayName=r,a}function gge(e){return g.jsx(ja,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z"})})}function mge(e){return g.jsx(ja,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z"})})}function DA(e){return g.jsx(ja,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})}var vge=nf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),p0=Ze((e,t)=>{const n=au("Spinner",e),{label:r="Loading...",thickness:i="2px",speed:o="0.45s",emptyColor:a="transparent",className:s,...l}=fr(e),u=xt("chakra-spinner",s),d={display:"inline-block",borderColor:"currentColor",borderStyle:"solid",borderRadius:"99999px",borderWidth:i,borderBottomColor:a,borderLeftColor:a,animation:`${vge} ${o} linear infinite`,...n};return g.jsx(Ne.div,{ref:t,__css:d,className:u,...l,children:r&&g.jsx(Ne.span,{srOnly:!0,children:r})})});p0.displayName="Spinner";var[yge,bge]=Pn({name:"AlertContext",hookName:"useAlertContext",providerName:""}),[xge,i8]=Pn({name:"AlertStylesContext",hookName:"useAlertStyles",providerName:""}),ZB={info:{icon:mge,colorScheme:"blue"},warning:{icon:DA,colorScheme:"orange"},success:{icon:gge,colorScheme:"green"},error:{icon:DA,colorScheme:"red"},loading:{icon:p0,colorScheme:"blue"}};function Sge(e){return ZB[e].colorScheme}function wge(e){return ZB[e].icon}var QB=Ze(function(t,n){const i={display:"inline",...i8().description};return g.jsx(Ne.div,{ref:n,...t,className:xt("chakra-alert__desc",t.className),__css:i})});QB.displayName="AlertDescription";function JB(e){const{status:t}=bge(),n=wge(t),r=i8(),i=t==="loading"?r.spinner:r.icon;return g.jsx(Ne.span,{display:"inherit",...e,className:xt("chakra-alert__icon",e.className),__css:i,children:e.children||g.jsx(n,{h:"100%",w:"100%"})})}JB.displayName="AlertIcon";var ez=Ze(function(t,n){const r=i8();return g.jsx(Ne.div,{ref:n,...t,className:xt("chakra-alert__title",t.className),__css:r.title})});ez.displayName="AlertTitle";var tz=Ze(function(t,n){var r;const{status:i="info",addRole:o=!0,...a}=fr(t),s=(r=t.colorScheme)!=null?r:Sge(i),l=Yi("Alert",{...t,colorScheme:s}),u={width:"100%",display:"flex",alignItems:"center",position:"relative",overflow:"hidden",...l.container};return g.jsx(yge,{value:{status:i},children:g.jsx(xge,{value:l,children:g.jsx(Ne.div,{role:o?"alert":void 0,ref:n,...a,className:xt("chakra-alert",t.className),__css:u})})})});tz.displayName="Alert";function Cge(e){return g.jsx(ja,{focusable:"false","aria-hidden":!0,...e,children:g.jsx("path",{fill:"currentColor",d:"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z"})})}var o8=Ze(function(t,n){const r=au("CloseButton",t),{children:i,isDisabled:o,__css:a,...s}=fr(t),l={outline:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};return g.jsx(Ne.button,{type:"button","aria-label":"Close",ref:n,disabled:o,__css:{...l,...r,...a},...s,children:i||g.jsx(Cge,{width:"1em",height:"1em"})})});o8.displayName="CloseButton";var _ge={top:[],"top-left":[],"top-right":[],"bottom-left":[],bottom:[],"bottom-right":[]},$l=kge(_ge);function kge(e){let t=e;const n=new Set,r=i=>{t=i(t),n.forEach(o=>o())};return{getState:()=>t,subscribe:i=>(n.add(i),()=>{r(()=>e),n.delete(i)}),removeToast:(i,o)=>{r(a=>({...a,[o]:a[o].filter(s=>s.id!=i)}))},notify:(i,o)=>{const a=Ege(i,o),{position:s,id:l}=a;return r(u=>{var d,h;const y=s.includes("top")?[a,...(d=u[s])!=null?d:[]]:[...(h=u[s])!=null?h:[],a];return{...u,[s]:y}}),l},update:(i,o)=>{i&&r(a=>{const s={...a},{position:l,index:u}=ML(s,i);return l&&u!==-1&&(s[l][u]={...s[l][u],...o,message:nz(o)}),s})},closeAll:({positions:i}={})=>{r(o=>(i??["bottom","bottom-right","bottom-left","top","top-left","top-right"]).reduce((l,u)=>(l[u]=o[u].map(d=>({...d,requestClose:!0})),l),{...o}))},close:i=>{r(o=>{const a=RF(o,i);return a?{...o,[a]:o[a].map(s=>s.id==i?{...s,requestClose:!0}:s)}:o})},isActive:i=>Boolean(ML($l.getState(),i).position)}}var jA=0;function Ege(e,t={}){var n,r;jA+=1;const i=(n=t.id)!=null?n:jA,o=(r=t.position)!=null?r:"bottom";return{id:i,message:e,position:o,duration:t.duration,onCloseComplete:t.onCloseComplete,onRequestRemove:()=>$l.removeToast(String(i),o),status:t.status,requestClose:!1,containerStyle:t.containerStyle}}var Pge=e=>{const{status:t,variant:n="solid",id:r,title:i,isClosable:o,onClose:a,description:s,icon:l}=e,u=r?{root:`toast-${r}`,title:`toast-${r}-title`,description:`toast-${r}-description`}:void 0;return g.jsxs(tz,{addRole:!1,status:t,variant:n,id:u==null?void 0:u.root,alignItems:"start",borderRadius:"md",boxShadow:"lg",paddingEnd:8,textAlign:"start",width:"auto",children:[g.jsx(JB,{children:l}),g.jsxs(Ne.div,{flex:"1",maxWidth:"100%",children:[i&&g.jsx(ez,{id:u==null?void 0:u.title,children:i}),s&&g.jsx(QB,{id:u==null?void 0:u.description,display:"block",children:s})]}),o&&g.jsx(o8,{size:"sm",onClick:a,position:"absolute",insetEnd:1,top:1})]})};function nz(e={}){const{render:t,toastComponent:n=Pge}=e;return i=>typeof t=="function"?t({...i,...e}):g.jsx(n,{...i,...e})}function Tge(e,t){const n=i=>{var o;return{...t,...i,position:pge((o=i==null?void 0:i.position)!=null?o:t==null?void 0:t.position,e)}},r=i=>{const o=n(i),a=nz(o);return $l.notify(a,o)};return r.update=(i,o)=>{$l.update(i,n(o))},r.promise=(i,o)=>{const a=r({...o.loading,status:"loading",duration:null});i.then(s=>r.update(a,{status:"success",duration:5e3,...ts(o.success,s)})).catch(s=>r.update(a,{status:"error",duration:5e3,...ts(o.error,s)}))},r.closeAll=$l.closeAll,r.close=$l.close,r.isActive=$l.isActive,r}var[Mge,Lge]=Pn({name:"ToastOptionsContext",strict:!1}),Age=e=>{const t=S.useSyncExternalStore($l.subscribe,$l.getState,$l.getState),{motionVariants:n,component:r=XB,portalProps:i}=e,a=Object.keys(t).map(s=>{const l=t[s];return g.jsx("ul",{role:"region","aria-live":"polite",id:`chakra-toast-manager-${s}`,style:Qce(s),children:g.jsx(rp,{initial:!1,children:l.map(u=>g.jsx(r,{motionVariants:n,...u},u.id))})},s)});return g.jsx(c0,{...i,children:a})};function a2(e){const{theme:t}=eF(),n=Lge();return S.useMemo(()=>Tge(t.direction,{...n,...e}),[e,t.direction,n])}var Oge=e=>function({children:n,theme:r=e,toastOptions:i,...o}){return g.jsxs(Yce,{theme:r,...o,children:[g.jsx(Mge,{value:i==null?void 0:i.defaultOptions,children:n}),g.jsx(Age,{...i})]})},Rge=Oge(cce),Ige=Object.defineProperty,Dge=(e,t,n)=>t in e?Ige(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nr=(e,t,n)=>(Dge(e,typeof t!="symbol"?t+"":t,n),n);function NA(e){return e.sort((t,n)=>{const r=t.compareDocumentPosition(n);if(r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0})}var jge=e=>typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE;function $A(e,t,n){let r=e+1;return n&&r>=t&&(r=0),r}function FA(e,t,n){let r=e-1;return n&&r<0&&(r=t),r}var F_=typeof window<"u"?S.useLayoutEffect:S.useEffect,o3=e=>e,Nge=class{constructor(){Nr(this,"descendants",new Map),Nr(this,"register",e=>{if(e!=null)return jge(e)?this.registerNode(e):t=>{this.registerNode(t,e)}}),Nr(this,"unregister",e=>{this.descendants.delete(e);const t=NA(Array.from(this.descendants.keys()));this.assignIndex(t)}),Nr(this,"destroy",()=>{this.descendants.clear()}),Nr(this,"assignIndex",e=>{this.descendants.forEach(t=>{const n=e.indexOf(t.node);t.index=n,t.node.dataset.index=t.index.toString()})}),Nr(this,"count",()=>this.descendants.size),Nr(this,"enabledCount",()=>this.enabledValues().length),Nr(this,"values",()=>Array.from(this.descendants.values()).sort((t,n)=>t.index-n.index)),Nr(this,"enabledValues",()=>this.values().filter(e=>!e.disabled)),Nr(this,"item",e=>{if(this.count()!==0)return this.values()[e]}),Nr(this,"enabledItem",e=>{if(this.enabledCount()!==0)return this.enabledValues()[e]}),Nr(this,"first",()=>this.item(0)),Nr(this,"firstEnabled",()=>this.enabledItem(0)),Nr(this,"last",()=>this.item(this.descendants.size-1)),Nr(this,"lastEnabled",()=>{const e=this.enabledValues().length-1;return this.enabledItem(e)}),Nr(this,"indexOf",e=>{var t,n;return e&&(n=(t=this.descendants.get(e))==null?void 0:t.index)!=null?n:-1}),Nr(this,"enabledIndexOf",e=>e==null?-1:this.enabledValues().findIndex(t=>t.node.isSameNode(e))),Nr(this,"next",(e,t=!0)=>{const n=$A(e,this.count(),t);return this.item(n)}),Nr(this,"nextEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),i=$A(r,this.enabledCount(),t);return this.enabledItem(i)}),Nr(this,"prev",(e,t=!0)=>{const n=FA(e,this.count()-1,t);return this.item(n)}),Nr(this,"prevEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),i=FA(r,this.enabledCount()-1,t);return this.enabledItem(i)}),Nr(this,"registerNode",(e,t)=>{if(!e||this.descendants.has(e))return;const n=Array.from(this.descendants.keys()).concat(e),r=NA(n);t!=null&&t.disabled&&(t.disabled=!!t.disabled);const i={node:e,index:-1,...t};this.descendants.set(e,i),this.assignIndex(r)})}};function $ge(e,t){if(e!=null){if(typeof e=="function"){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function Rn(...e){return t=>{e.forEach(n=>{$ge(n,t)})}}function Fge(...e){return S.useMemo(()=>Rn(...e),e)}function Bge(){const e=S.useRef(new Nge);return F_(()=>()=>e.current.destroy()),e.current}var[zge,rz]=Pn({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function Hge(e){const t=rz(),[n,r]=S.useState(-1),i=S.useRef(null);F_(()=>()=>{i.current&&t.unregister(i.current)},[]),F_(()=>{if(!i.current)return;const a=Number(i.current.dataset.index);n!=a&&!Number.isNaN(a)&&r(a)});const o=o3(e?t.register(e):t.register);return{descendants:t,index:n,enabledIndex:t.enabledIndexOf(i.current),register:Rn(o,i)}}function a8(){return[o3(zge),()=>o3(rz()),()=>Bge(),i=>Hge(i)]}var[Wge,Dw]=Pn({name:"AccordionStylesContext",hookName:"useAccordionStyles",providerName:""}),[Uge,s8]=Pn({name:"AccordionItemContext",hookName:"useAccordionItemContext",providerName:""}),[Vge,pNe,Gge,qge]=a8(),tm=Ze(function(t,n){const{getButtonProps:r}=s8(),i=r(t,n),a={display:"flex",alignItems:"center",width:"100%",outline:0,...Dw().button};return g.jsx(Ne.button,{...i,className:xt("chakra-accordion__button",t.className),__css:a})});tm.displayName="AccordionButton";function l8(e){const{value:t,defaultValue:n,onChange:r,shouldUpdate:i=(m,y)=>m!==y}=e,o=Qr(r),a=Qr(i),[s,l]=S.useState(n),u=t!==void 0,d=u?t:s,h=Qr(m=>{const b=typeof m=="function"?m(d):m;a(d,b)&&(u||l(b),o(b))},[u,o,d,a]);return[d,h]}function Kge(e){const{onChange:t,defaultIndex:n,index:r,allowMultiple:i,allowToggle:o,...a}=e;Zge(e),Qge(e);const s=Gge(),[l,u]=S.useState(-1);S.useEffect(()=>()=>{u(-1)},[]);const[d,h]=l8({value:r,defaultValue(){return i?n??[]:n??-1},onChange:t});return{index:d,setIndex:h,htmlProps:a,getAccordionItemProps:y=>{let b=!1;return y!==null&&(b=Array.isArray(d)?d.includes(y):d===y),{isOpen:b,onChange:E=>{if(y!==null)if(i&&Array.isArray(d)){const _=E?d.concat(y):d.filter(k=>k!==y);h(_)}else E?h(y):o&&h(-1)}}},focusedIndex:l,setFocusedIndex:u,descendants:s}}var[Yge,u8]=Pn({name:"AccordionContext",hookName:"useAccordionContext",providerName:"Accordion"});function Xge(e){const{isDisabled:t,isFocusable:n,id:r,...i}=e,{getAccordionItemProps:o,setFocusedIndex:a}=u8(),s=S.useRef(null),l=S.useId(),u=r??l,d=`accordion-button-${u}`,h=`accordion-panel-${u}`;Jge(e);const{register:m,index:y,descendants:b}=qge({disabled:t&&!n}),{isOpen:w,onChange:E}=o(y===-1?null:y);eme({isOpen:w,isDisabled:t});const _=()=>{E==null||E(!0)},k=()=>{E==null||E(!1)},T=S.useCallback(()=>{E==null||E(!w),a(y)},[y,a,w,E]),L=S.useCallback(N=>{const B={ArrowDown:()=>{const K=b.nextEnabled(y);K==null||K.node.focus()},ArrowUp:()=>{const K=b.prevEnabled(y);K==null||K.node.focus()},Home:()=>{const K=b.firstEnabled();K==null||K.node.focus()},End:()=>{const K=b.lastEnabled();K==null||K.node.focus()}}[N.key];B&&(N.preventDefault(),B(N))},[b,y]),O=S.useCallback(()=>{a(y)},[a,y]),D=S.useCallback(function(W={},B=null){return{...W,type:"button",ref:Rn(m,s,B),id:d,disabled:!!t,"aria-expanded":!!w,"aria-controls":h,onClick:ht(W.onClick,T),onFocus:ht(W.onFocus,O),onKeyDown:ht(W.onKeyDown,L)}},[d,t,w,T,O,L,h,m]),I=S.useCallback(function(W={},B=null){return{...W,ref:B,role:"region",id:h,"aria-labelledby":d,hidden:!w}},[d,w,h]);return{isOpen:w,isDisabled:t,isFocusable:n,onOpen:_,onClose:k,getButtonProps:D,getPanelProps:I,htmlProps:i}}function Zge(e){const t=e.index||e.defaultIndex,n=t!=null&&!Array.isArray(t)&&e.allowMultiple;Jy({condition:!!n,message:`If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: ${typeof t},`})}function Qge(e){Jy({condition:!!(e.allowMultiple&&e.allowToggle),message:"If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not"})}function Jge(e){Jy({condition:!!(e.isFocusable&&!e.isDisabled),message:`Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well. - `})}function eme(e){Jy({condition:e.isOpen&&!!e.isDisabled,message:"Cannot open a disabled accordion item"})}function nm(e){const{isOpen:t,isDisabled:n}=s8(),{reduceMotion:r}=u8(),i=xt("chakra-accordion__icon",e.className),o=Dw(),a={opacity:n?.4:1,transform:t?"rotate(-180deg)":void 0,transition:r?void 0:"transform 0.2s",transformOrigin:"center",...o.icon};return g.jsx(ja,{viewBox:"0 0 24 24","aria-hidden":!0,className:i,__css:a,...e,children:g.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})})}nm.displayName="AccordionIcon";var rm=Ze(function(t,n){const{children:r,className:i}=t,{htmlProps:o,...a}=Xge(t),l={...Dw().container,overflowAnchor:"none"},u=S.useMemo(()=>a,[a]);return g.jsx(Uge,{value:u,children:g.jsx(Ne.div,{ref:n,...o,className:xt("chakra-accordion__item",i),__css:l,children:typeof r=="function"?r({isExpanded:!!a.isOpen,isDisabled:!!a.isDisabled}):r})})});rm.displayName="AccordionItem";var im={ease:[.25,.1,.25,1],easeIn:[.4,0,1,1],easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1]},Ih={enter:{duration:.2,ease:im.easeOut},exit:{duration:.1,ease:im.easeIn}},Ku={enter:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.enter}),exit:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.exit})},tme=e=>e!=null&&parseInt(e.toString(),10)>0,BA={exit:{height:{duration:.2,ease:im.ease},opacity:{duration:.3,ease:im.ease}},enter:{height:{duration:.3,ease:im.ease},opacity:{duration:.4,ease:im.ease}}},nme={exit:({animateOpacity:e,startingHeight:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{...e&&{opacity:tme(t)?1:0},height:t,transitionEnd:r==null?void 0:r.exit,transition:(o=n==null?void 0:n.exit)!=null?o:Ku.exit(BA.exit,i)}},enter:({animateOpacity:e,endingHeight:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{...e&&{opacity:1},height:t,transitionEnd:r==null?void 0:r.enter,transition:(o=n==null?void 0:n.enter)!=null?o:Ku.enter(BA.enter,i)}}},iz=S.forwardRef((e,t)=>{const{in:n,unmountOnExit:r,animateOpacity:i=!0,startingHeight:o=0,endingHeight:a="auto",style:s,className:l,transition:u,transitionEnd:d,...h}=e,[m,y]=S.useState(!1);S.useEffect(()=>{const k=setTimeout(()=>{y(!0)});return()=>clearTimeout(k)},[]),Jy({condition:Boolean(o>0&&r),message:"startingHeight and unmountOnExit are mutually exclusive. You can't use them together"});const b=parseFloat(o.toString())>0,w={startingHeight:o,endingHeight:a,animateOpacity:i,transition:m?u:{enter:{duration:0}},transitionEnd:{enter:d==null?void 0:d.enter,exit:r?d==null?void 0:d.exit:{...d==null?void 0:d.exit,display:b?"block":"none"}}},E=r?n:!0,_=n||r?"enter":"exit";return g.jsx(rp,{initial:!1,custom:w,children:E&&g.jsx(su.div,{ref:t,...h,className:xt("chakra-collapse",l),style:{overflow:"hidden",display:"block",...s},custom:w,variants:nme,initial:r?"exit":!1,animate:_,exit:"exit"})})});iz.displayName="Collapse";var rme={enter:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:1,transition:(r=e==null?void 0:e.enter)!=null?r:Ku.enter(Ih.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:0,transition:(r=e==null?void 0:e.exit)!=null?r:Ku.exit(Ih.exit,n),transitionEnd:t==null?void 0:t.exit}}},oz={initial:"exit",animate:"enter",exit:"exit",variants:rme},ime=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,className:o,transition:a,transitionEnd:s,delay:l,...u}=t,d=i||r?"enter":"exit",h=r?i&&r:!0,m={transition:a,transitionEnd:s,delay:l};return g.jsx(rp,{custom:m,children:h&&g.jsx(su.div,{ref:n,className:xt("chakra-fade",o),custom:m,...oz,animate:d,...u})})});ime.displayName="Fade";var ome={exit:({reverse:e,initialScale:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{opacity:0,...e?{scale:t,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{scale:t,...r==null?void 0:r.exit}},transition:(o=n==null?void 0:n.exit)!=null?o:Ku.exit(Ih.exit,i)}},enter:({transitionEnd:e,transition:t,delay:n})=>{var r;return{opacity:1,scale:1,transition:(r=t==null?void 0:t.enter)!=null?r:Ku.enter(Ih.enter,n),transitionEnd:e==null?void 0:e.enter}}},az={initial:"exit",animate:"enter",exit:"exit",variants:ome},ame=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,reverse:o=!0,initialScale:a=.95,className:s,transition:l,transitionEnd:u,delay:d,...h}=t,m=r?i&&r:!0,y=i||r?"enter":"exit",b={initialScale:a,reverse:o,transition:l,transitionEnd:u,delay:d};return g.jsx(rp,{custom:b,children:m&&g.jsx(su.div,{ref:n,className:xt("chakra-offset-slide",s),...az,animate:y,custom:b,...h})})});ame.displayName="ScaleFade";var sme={initial:({offsetX:e,offsetY:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{opacity:0,x:e,y:t,transition:(o=n==null?void 0:n.exit)!=null?o:Ku.exit(Ih.exit,i),transitionEnd:r==null?void 0:r.exit}},enter:({transition:e,transitionEnd:t,delay:n})=>{var r;return{opacity:1,x:0,y:0,transition:(r=e==null?void 0:e.enter)!=null?r:Ku.enter(Ih.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({offsetY:e,offsetX:t,transition:n,transitionEnd:r,reverse:i,delay:o})=>{var a;const s={x:t,y:e};return{opacity:0,transition:(a=n==null?void 0:n.exit)!=null?a:Ku.exit(Ih.exit,o),...i?{...s,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{...s,...r==null?void 0:r.exit}}}}},B_={initial:"initial",animate:"enter",exit:"exit",variants:sme},lme=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,reverse:o=!0,className:a,offsetX:s=0,offsetY:l=8,transition:u,transitionEnd:d,delay:h,...m}=t,y=r?i&&r:!0,b=i||r?"enter":"exit",w={offsetX:s,offsetY:l,reverse:o,transition:u,transitionEnd:d,delay:h};return g.jsx(rp,{custom:w,children:y&&g.jsx(su.div,{ref:n,className:xt("chakra-offset-slide",a),custom:w,...B_,animate:b,...m})})});lme.displayName="SlideFade";var om=Ze(function(t,n){const{className:r,motionProps:i,...o}=t,{reduceMotion:a}=u8(),{getPanelProps:s,isOpen:l}=s8(),u=s(o,n),d=xt("chakra-accordion__panel",r),h=Dw();a||delete u.hidden;const m=g.jsx(Ne.div,{...u,__css:h.panel,className:d});return a?m:g.jsx(iz,{in:l,...i,children:m})});om.displayName="AccordionPanel";var c8=Ze(function({children:t,reduceMotion:n,...r},i){const o=Yi("Accordion",r),a=fr(r),{htmlProps:s,descendants:l,...u}=Kge(a),d=S.useMemo(()=>({...u,reduceMotion:!!n}),[u,n]);return g.jsx(Vge,{value:l,children:g.jsx(Yge,{value:d,children:g.jsx(Wge,{value:o,children:g.jsx(Ne.div,{ref:i,...s,className:xt("chakra-accordion",r.className),__css:o.root,children:t})})})})});c8.displayName="Accordion";var z_=Ze(function(t,n){const{htmlWidth:r,htmlHeight:i,alt:o,...a}=t;return g.jsx("img",{width:r,height:i,ref:n,alt:o,...a})});z_.displayName="NativeImage";function ume(e){const{loading:t,src:n,srcSet:r,onLoad:i,onError:o,crossOrigin:a,sizes:s,ignoreFallback:l}=e,[u,d]=S.useState("pending");S.useEffect(()=>{d(n?"loading":"pending")},[n]);const h=S.useRef(),m=S.useCallback(()=>{if(!n)return;y();const b=new Image;b.src=n,a&&(b.crossOrigin=a),r&&(b.srcset=r),s&&(b.sizes=s),t&&(b.loading=t),b.onload=w=>{y(),d("loaded"),i==null||i(w)},b.onerror=w=>{y(),d("failed"),o==null||o(w)},h.current=b},[n,a,r,s,i,o,t]),y=()=>{h.current&&(h.current.onload=null,h.current.onerror=null,h.current=null)};return Vl(()=>{if(!l)return u==="loading"&&m(),()=>{y()}},[u,m,l]),l?"loaded":u}var cme=(e,t)=>e!=="loaded"&&t==="beforeLoadOrError"||e==="failed"&&t==="onError";function dme(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var jw=Ze(function(t,n){const{fallbackSrc:r,fallback:i,src:o,srcSet:a,align:s,fit:l,loading:u,ignoreFallback:d,crossOrigin:h,fallbackStrategy:m="beforeLoadOrError",referrerPolicy:y,...b}=t,w=r!==void 0||i!==void 0,E=u!=null||d||!w,_=ume({...t,ignoreFallback:E}),k=cme(_,m),T={ref:n,objectFit:l,objectPosition:s,...E?b:dme(b,["onError","onLoad"])};return k?i||g.jsx(Ne.img,{as:z_,className:"chakra-image__placeholder",src:r,...T}):g.jsx(Ne.img,{as:z_,src:o,srcSet:a,crossOrigin:h,loading:u,referrerPolicy:y,className:"chakra-image",...T})});jw.displayName="Image";function d8(e){return S.Children.toArray(e).filter(t=>S.isValidElement(t))}var[fme,hme]=Pn({strict:!1,name:"ButtonGroupContext"}),pme={horizontal:{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}},vertical:{"> *:first-of-type:not(:last-of-type)":{borderBottomRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderTopRadius:0}}},gme={horizontal:e=>({"& > *:not(style) ~ *:not(style)":{marginStart:e}}),vertical:e=>({"& > *:not(style) ~ *:not(style)":{marginTop:e}})},Gi=Ze(function(t,n){const{size:r,colorScheme:i,variant:o,className:a,spacing:s="0.5rem",isAttached:l,isDisabled:u,orientation:d="horizontal",...h}=t,m=xt("chakra-button__group",a),y=S.useMemo(()=>({size:r,colorScheme:i,variant:o,isDisabled:u}),[r,i,o,u]);let b={display:"inline-flex",...l?pme[d]:gme[d](s)};const w=d==="vertical";return g.jsx(fme,{value:y,children:g.jsx(Ne.div,{ref:n,role:"group",__css:b,className:m,"data-attached":l?"":void 0,"data-orientation":d,flexDir:w?"column":void 0,...h})})});Gi.displayName="ButtonGroup";function mme(e){const[t,n]=S.useState(!e);return{ref:S.useCallback(o=>{o&&n(o.tagName==="BUTTON")},[]),type:t?"button":void 0}}function H_(e){const{children:t,className:n,...r}=e,i=S.isValidElement(t)?S.cloneElement(t,{"aria-hidden":!0,focusable:!1}):t,o=xt("chakra-button__icon",n);return g.jsx(Ne.span,{display:"inline-flex",alignSelf:"center",flexShrink:0,...r,className:o,children:i})}H_.displayName="ButtonIcon";function a3(e){const{label:t,placement:n,spacing:r="0.5rem",children:i=g.jsx(p0,{color:"currentColor",width:"1em",height:"1em"}),className:o,__css:a,...s}=e,l=xt("chakra-button__spinner",o),u=n==="start"?"marginEnd":"marginStart",d=S.useMemo(()=>({display:"flex",alignItems:"center",position:t?"relative":"absolute",[u]:t?r:0,fontSize:"1em",lineHeight:"normal",...a}),[a,t,u,r]);return g.jsx(Ne.div,{className:l,...s,__css:d,children:i})}a3.displayName="ButtonSpinner";var ss=Ze((e,t)=>{const n=hme(),r=au("Button",{...n,...e}),{isDisabled:i=n==null?void 0:n.isDisabled,isLoading:o,isActive:a,children:s,leftIcon:l,rightIcon:u,loadingText:d,iconSpacing:h="0.5rem",type:m,spinner:y,spinnerPlacement:b="start",className:w,as:E,..._}=fr(e),k=S.useMemo(()=>{const D={...r==null?void 0:r._focus,zIndex:1};return{display:"inline-flex",appearance:"none",alignItems:"center",justifyContent:"center",userSelect:"none",position:"relative",whiteSpace:"nowrap",verticalAlign:"middle",outline:"none",...r,...!!n&&{_focus:D}}},[r,n]),{ref:T,type:L}=mme(E),O={rightIcon:u,leftIcon:l,iconSpacing:h,children:s};return g.jsxs(Ne.button,{ref:Fge(t,T),as:E,type:m??L,"data-active":Bt(a),"data-loading":Bt(o),__css:k,className:xt("chakra-button",w),..._,disabled:i||o,children:[o&&b==="start"&&g.jsx(a3,{className:"chakra-button__spinner--start",label:d,placement:"start",spacing:h,children:y}),o?d||g.jsx(Ne.span,{opacity:0,children:g.jsx(zA,{...O})}):g.jsx(zA,{...O}),o&&b==="end"&&g.jsx(a3,{className:"chakra-button__spinner--end",label:d,placement:"end",spacing:h,children:y})]})});ss.displayName="Button";function zA(e){const{leftIcon:t,rightIcon:n,children:r,iconSpacing:i}=e;return g.jsxs(g.Fragment,{children:[t&&g.jsx(H_,{marginEnd:i,children:t}),r,n&&g.jsx(H_,{marginStart:i,children:n})]})}var ls=Ze((e,t)=>{const{icon:n,children:r,isRound:i,"aria-label":o,...a}=e,s=n||r,l=S.isValidElement(s)?S.cloneElement(s,{"aria-hidden":!0,focusable:!1}):null;return g.jsx(ss,{padding:"0",borderRadius:i?"full":void 0,ref:t,"aria-label":o,...a,children:l})});ls.displayName="IconButton";var[gNe,vme]=Pn({name:"CheckboxGroupContext",strict:!1});function yme(e){return g.jsx(Ne.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...e,children:g.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function bme(e){return g.jsx(Ne.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...e,children:g.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function xme(e){const{isIndeterminate:t,isChecked:n,...r}=e,i=t?bme:yme;return n||t?g.jsx(Ne.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:g.jsx(i,{...r})}):null}var[Sme,sz]=Pn({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[wme,ip]=Pn({strict:!1,name:"FormControlContext"});function Cme(e){const{id:t,isRequired:n,isInvalid:r,isDisabled:i,isReadOnly:o,...a}=e,s=S.useId(),l=t||`field-${s}`,u=`${l}-label`,d=`${l}-feedback`,h=`${l}-helptext`,[m,y]=S.useState(!1),[b,w]=S.useState(!1),[E,_]=S.useState(!1),k=S.useCallback((I={},N=null)=>({id:h,...I,ref:Rn(N,W=>{W&&w(!0)})}),[h]),T=S.useCallback((I={},N=null)=>{var W,B;return{...I,ref:N,"data-focus":Bt(E),"data-disabled":Bt(i),"data-invalid":Bt(r),"data-readonly":Bt(o),id:(W=I.id)!=null?W:u,htmlFor:(B=I.htmlFor)!=null?B:l}},[l,i,E,r,o,u]),L=S.useCallback((I={},N=null)=>({id:d,...I,ref:Rn(N,W=>{W&&y(!0)}),"aria-live":"polite"}),[d]),O=S.useCallback((I={},N=null)=>({...I,...a,ref:N,role:"group"}),[a]),D=S.useCallback((I={},N=null)=>({...I,ref:N,role:"presentation","aria-hidden":!0,children:I.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!o,isDisabled:!!i,isFocused:!!E,onFocus:()=>_(!0),onBlur:()=>_(!1),hasFeedbackText:m,setHasFeedbackText:y,hasHelpText:b,setHasHelpText:w,id:l,labelId:u,feedbackId:d,helpTextId:h,htmlProps:a,getHelpTextProps:k,getErrorMessageProps:L,getRootProps:O,getLabelProps:T,getRequiredIndicatorProps:D}}var sn=Ze(function(t,n){const r=Yi("Form",t),i=fr(t),{getRootProps:o,htmlProps:a,...s}=Cme(i),l=xt("chakra-form-control",t.className);return g.jsx(wme,{value:s,children:g.jsx(Sme,{value:r,children:g.jsx(Ne.div,{...o({},n),className:l,__css:r.container})})})});sn.displayName="FormControl";var sr=Ze(function(t,n){const r=ip(),i=sz(),o=xt("chakra-form__helper-text",t.className);return g.jsx(Ne.div,{...r==null?void 0:r.getHelpTextProps(t,n),__css:i.helperText,className:o})});sr.displayName="FormHelperText";var[_me,kme]=Pn({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),lr=Ze((e,t)=>{const n=Yi("FormError",e),r=fr(e),i=ip();return i!=null&&i.isInvalid?g.jsx(_me,{value:n,children:g.jsx(Ne.div,{...i==null?void 0:i.getErrorMessageProps(r,t),className:xt("chakra-form__error-message",e.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});lr.displayName="FormErrorMessage";var Eme=Ze((e,t)=>{const n=kme(),r=ip();if(!(r!=null&&r.isInvalid))return null;const i=xt("chakra-form__error-icon",e.className);return g.jsx(ja,{ref:t,"aria-hidden":!0,...e,__css:n.icon,className:i,children:g.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})});Eme.displayName="FormErrorIcon";var Sn=Ze(function(t,n){var r;const i=au("FormLabel",t),o=fr(t),{className:a,children:s,requiredIndicator:l=g.jsx(lz,{}),optionalIndicator:u=null,...d}=o,h=ip(),m=(r=h==null?void 0:h.getLabelProps(d,n))!=null?r:{ref:n,...d};return g.jsxs(Ne.label,{...m,className:xt("chakra-form__label",o.className),__css:{display:"block",textAlign:"start",...i},children:[s,h!=null&&h.isRequired?l:u]})});Sn.displayName="FormLabel";var lz=Ze(function(t,n){const r=ip(),i=sz();if(!(r!=null&&r.isRequired))return null;const o=xt("chakra-form__required-indicator",t.className);return g.jsx(Ne.span,{...r==null?void 0:r.getRequiredIndicatorProps(t,n),__css:i.requiredIndicator,className:o})});lz.displayName="RequiredIndicator";function f8(e){const{isDisabled:t,isInvalid:n,isReadOnly:r,isRequired:i,...o}=h8(e);return{...o,disabled:t,readOnly:r,required:i,"aria-invalid":Uu(n),"aria-required":Uu(i),"aria-readonly":Uu(r)}}function h8(e){var t,n,r;const i=ip(),{id:o,disabled:a,readOnly:s,required:l,isRequired:u,isInvalid:d,isReadOnly:h,isDisabled:m,onFocus:y,onBlur:b,...w}=e,E=e["aria-describedby"]?[e["aria-describedby"]]:[];return i!=null&&i.hasFeedbackText&&(i!=null&&i.isInvalid)&&E.push(i.feedbackId),i!=null&&i.hasHelpText&&E.push(i.helpTextId),{...w,"aria-describedby":E.join(" ")||void 0,id:o??(i==null?void 0:i.id),isDisabled:(t=a??m)!=null?t:i==null?void 0:i.isDisabled,isReadOnly:(n=s??h)!=null?n:i==null?void 0:i.isReadOnly,isRequired:(r=l??u)!=null?r:i==null?void 0:i.isRequired,isInvalid:d??(i==null?void 0:i.isInvalid),onFocus:ht(i==null?void 0:i.onFocus,y),onBlur:ht(i==null?void 0:i.onBlur,b)}}var Pme={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},HA=!1,s2=null,qh=!1,W_=!1,U_=new Set;function p8(e,t){U_.forEach(n=>n(e,t))}var Tme=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function Mme(e){return!(e.metaKey||!Tme&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function WA(e){qh=!0,Mme(e)&&(s2="keyboard",p8("keyboard",e))}function xg(e){if(s2="pointer",e.type==="mousedown"||e.type==="pointerdown"){qh=!0;const t=e.composedPath?e.composedPath()[0]:e.target;let n=!1;try{n=t.matches(":focus-visible")}catch{}if(n)return;p8("pointer",e)}}function Lme(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function Ame(e){Lme(e)&&(qh=!0,s2="virtual")}function Ome(e){e.target===window||e.target===document||(!qh&&!W_&&(s2="virtual",p8("virtual",e)),qh=!1,W_=!1)}function Rme(){qh=!1,W_=!0}function UA(){return s2!=="pointer"}function Ime(){if(typeof window>"u"||HA)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...n){qh=!0,e.apply(this,n)},document.addEventListener("keydown",WA,!0),document.addEventListener("keyup",WA,!0),document.addEventListener("click",Ame,!0),window.addEventListener("focus",Ome,!0),window.addEventListener("blur",Rme,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",xg,!0),document.addEventListener("pointermove",xg,!0),document.addEventListener("pointerup",xg,!0)):(document.addEventListener("mousedown",xg,!0),document.addEventListener("mousemove",xg,!0),document.addEventListener("mouseup",xg,!0)),HA=!0}function uz(e){Ime(),e(UA());const t=()=>e(UA());return U_.add(t),()=>{U_.delete(t)}}function Dme(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function cz(e={}){const t=h8(e),{isDisabled:n,isReadOnly:r,isRequired:i,isInvalid:o,id:a,onBlur:s,onFocus:l,"aria-describedby":u}=t,{defaultChecked:d,isChecked:h,isFocusable:m,onChange:y,isIndeterminate:b,name:w,value:E,tabIndex:_=void 0,"aria-label":k,"aria-labelledby":T,"aria-invalid":L,...O}=e,D=Dme(O,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),I=Qr(y),N=Qr(s),W=Qr(l),[B,K]=S.useState(!1),[ne,z]=S.useState(!1),[$,V]=S.useState(!1),[X,Q]=S.useState(!1);S.useEffect(()=>uz(K),[]);const G=S.useRef(null),[Y,ee]=S.useState(!0),[fe,Ce]=S.useState(!!d),we=h!==void 0,xe=we?h:fe,Le=S.useCallback(Fe=>{if(r||n){Fe.preventDefault();return}we||Ce(xe?Fe.target.checked:b?!0:Fe.target.checked),I==null||I(Fe)},[r,n,xe,we,b,I]);Vl(()=>{G.current&&(G.current.indeterminate=Boolean(b))},[b]),rc(()=>{n&&z(!1)},[n,z]),Vl(()=>{const Fe=G.current;Fe!=null&&Fe.form&&(Fe.form.onreset=()=>{Ce(!!d)})},[]);const Se=n&&!m,Qe=S.useCallback(Fe=>{Fe.key===" "&&Q(!0)},[Q]),Xe=S.useCallback(Fe=>{Fe.key===" "&&Q(!1)},[Q]);Vl(()=>{if(!G.current)return;G.current.checked!==xe&&Ce(G.current.checked)},[G.current]);const tt=S.useCallback((Fe={},at=null)=>{const jt=mt=>{ne&&mt.preventDefault(),Q(!0)};return{...Fe,ref:at,"data-active":Bt(X),"data-hover":Bt($),"data-checked":Bt(xe),"data-focus":Bt(ne),"data-focus-visible":Bt(ne&&B),"data-indeterminate":Bt(b),"data-disabled":Bt(n),"data-invalid":Bt(o),"data-readonly":Bt(r),"aria-hidden":!0,onMouseDown:ht(Fe.onMouseDown,jt),onMouseUp:ht(Fe.onMouseUp,()=>Q(!1)),onMouseEnter:ht(Fe.onMouseEnter,()=>V(!0)),onMouseLeave:ht(Fe.onMouseLeave,()=>V(!1))}},[X,xe,n,ne,B,$,b,o,r]),yt=S.useCallback((Fe={},at=null)=>({...D,...Fe,ref:Rn(at,jt=>{jt&&ee(jt.tagName==="LABEL")}),onClick:ht(Fe.onClick,()=>{var jt;Y||((jt=G.current)==null||jt.click(),requestAnimationFrame(()=>{var mt;(mt=G.current)==null||mt.focus()}))}),"data-disabled":Bt(n),"data-checked":Bt(xe),"data-invalid":Bt(o)}),[D,n,xe,o,Y]),Be=S.useCallback((Fe={},at=null)=>({...Fe,ref:Rn(G,at),type:"checkbox",name:w,value:E,id:a,tabIndex:_,onChange:ht(Fe.onChange,Le),onBlur:ht(Fe.onBlur,N,()=>z(!1)),onFocus:ht(Fe.onFocus,W,()=>z(!0)),onKeyDown:ht(Fe.onKeyDown,Qe),onKeyUp:ht(Fe.onKeyUp,Xe),required:i,checked:xe,disabled:Se,readOnly:r,"aria-label":k,"aria-labelledby":T,"aria-invalid":L?Boolean(L):o,"aria-describedby":u,"aria-disabled":n,style:Pme}),[w,E,a,Le,N,W,Qe,Xe,i,xe,Se,r,k,T,L,o,u,n,_]),Ae=S.useCallback((Fe={},at=null)=>({...Fe,ref:at,onMouseDown:ht(Fe.onMouseDown,VA),onTouchStart:ht(Fe.onTouchStart,VA),"data-disabled":Bt(n),"data-checked":Bt(xe),"data-invalid":Bt(o)}),[xe,n,o]);return{state:{isInvalid:o,isFocused:ne,isChecked:xe,isActive:X,isHovered:$,isIndeterminate:b,isDisabled:n,isReadOnly:r,isRequired:i},getRootProps:yt,getCheckboxProps:tt,getInputProps:Be,getLabelProps:Ae,htmlProps:D}}function VA(e){e.preventDefault(),e.stopPropagation()}var jme={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},Nme={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},$me=nf({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),Fme=nf({from:{opacity:0},to:{opacity:1}}),Bme=nf({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),dz=Ze(function(t,n){const r=vme(),i={...r,...t},o=Yi("Checkbox",i),a=fr(t),{spacing:s="0.5rem",className:l,children:u,iconColor:d,iconSize:h,icon:m=g.jsx(xme,{}),isChecked:y,isDisabled:b=r==null?void 0:r.isDisabled,onChange:w,inputProps:E,..._}=a;let k=y;r!=null&&r.value&&a.value&&(k=r.value.includes(a.value));let T=w;r!=null&&r.onChange&&a.value&&(T=Sw(r.onChange,w));const{state:L,getInputProps:O,getCheckboxProps:D,getLabelProps:I,getRootProps:N}=cz({..._,isDisabled:b,isChecked:k,onChange:T}),W=S.useMemo(()=>({animation:L.isIndeterminate?`${Fme} 20ms linear, ${Bme} 200ms linear`:`${$me} 200ms linear`,fontSize:h,color:d,...o.icon}),[d,h,,L.isIndeterminate,o.icon]),B=S.cloneElement(m,{__css:W,isIndeterminate:L.isIndeterminate,isChecked:L.isChecked});return g.jsxs(Ne.label,{__css:{...Nme,...o.container},className:xt("chakra-checkbox",l),...N(),children:[g.jsx("input",{className:"chakra-checkbox__input",...O(E,n)}),g.jsx(Ne.span,{__css:{...jme,...o.control},className:"chakra-checkbox__control",...D(),children:B}),u&&g.jsx(Ne.span,{className:"chakra-checkbox__label",...I(),__css:{marginStart:s,...o.label},children:u})]})});dz.displayName="Checkbox";function zme(e){const t=parseFloat(e);return typeof t!="number"||Number.isNaN(t)?0:t}function g8(e,t){let n=zme(e);const r=10**(t??10);return n=Math.round(n*r)/r,t?n.toFixed(t):n.toString()}function V_(e){if(!Number.isFinite(e))return 0;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n+=1;return n}function GA(e,t,n){return(e-t)*100/(n-t)}function Hme(e,t,n){return(n-t)*e+t}function qA(e,t,n){const r=Math.round((e-t)/n)*n+t,i=V_(n);return g8(r,i)}function Qx(e,t,n){return e==null?e:(n{var B;return r==null?"":(B=lC(r,o,n))!=null?B:""}),m=typeof i<"u",y=m?i:d,b=fz(dd(y),o),w=n??b,E=S.useCallback(B=>{B!==y&&(m||h(B.toString()),u==null||u(B.toString(),dd(B)))},[u,m,y]),_=S.useCallback(B=>{let K=B;return l&&(K=Qx(K,a,s)),g8(K,w)},[w,l,s,a]),k=S.useCallback((B=o)=>{let K;y===""?K=dd(B):K=dd(y)+B,K=_(K),E(K)},[_,o,E,y]),T=S.useCallback((B=o)=>{let K;y===""?K=dd(-B):K=dd(y)-B,K=_(K),E(K)},[_,o,E,y]),L=S.useCallback(()=>{var B;let K;r==null?K="":K=(B=lC(r,o,n))!=null?B:a,E(K)},[r,n,o,E,a]),O=S.useCallback(B=>{var K;const ne=(K=lC(B,o,w))!=null?K:a;E(ne)},[w,o,E,a]),D=dd(y);return{isOutOfRange:D>s||D{const o=typeof e=="function"?e():e??document;if(!(!n||!o))return o.addEventListener(t,i,r),()=>{o.removeEventListener(t,i,r)}},[t,e,r,i,n]),()=>{const o=typeof e=="function"?e():e??document;o==null||o.removeEventListener(t,i,r)}}function Ume(e){return"current"in e}var hz=()=>typeof window<"u";function Vme(){var e;const t=navigator.userAgentData;return(e=t==null?void 0:t.platform)!=null?e:navigator.platform}var Gme=e=>hz()&&e.test(navigator.vendor),qme=e=>hz()&&e.test(Vme()),Kme=()=>qme(/mac|iphone|ipad|ipod/i),Yme=()=>Kme()&&Gme(/apple/i);function Xme(e){const{ref:t,elements:n,enabled:r}=e,i=()=>{var o,a;return(a=(o=t.current)==null?void 0:o.ownerDocument)!=null?a:document};Dh(i,"pointerdown",o=>{if(!Yme()||!r)return;const a=o.target,l=(n??[t]).some(u=>{const d=Ume(u)?u.current:u;return(d==null?void 0:d.contains(a))||d===a});i().activeElement!==a&&l&&(o.preventDefault(),a.focus())})}function m8(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var An={},Zme={get exports(){return An},set exports(e){An=e}},Qme="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Jme=Qme,e0e=Jme;function pz(){}function gz(){}gz.resetWarningCache=pz;var t0e=function(){function e(r,i,o,a,s,l){if(l!==e0e){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:gz,resetWarningCache:pz};return n.PropTypes=n,n};Zme.exports=t0e();var G_="data-focus-lock",mz="data-focus-lock-disabled",n0e="data-no-focus-lock",r0e="data-autofocus-inside",i0e="data-no-autofocus";function o0e(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function a0e(e,t){var n=S.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var i=n.value;i!==r&&(n.value=r,n.callback(r,i))}}}})[0];return n.callback=t,n.facade}function vz(e,t){return a0e(t||null,function(n){return e.forEach(function(r){return o0e(r,n)})})}var uC={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"};function yz(e){return e}function bz(e,t){t===void 0&&(t=yz);var n=[],r=!1,i={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(o){var a=t(o,r);return n.push(a),function(){n=n.filter(function(s){return s!==a})}},assignSyncMedium:function(o){for(r=!0;n.length;){var a=n;n=[],a.forEach(o)}n={push:function(s){return o(s)},filter:function(){return n}}},assignMedium:function(o){r=!0;var a=[];if(n.length){var s=n;n=[],s.forEach(o),a=n}var l=function(){var d=a;a=[],d.forEach(o)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(d){a.push(d),u()},filter:function(d){return a=a.filter(d),n}}}};return i}function v8(e,t){return t===void 0&&(t=yz),bz(e,t)}function xz(e){e===void 0&&(e={});var t=bz(null);return t.options=Nl({async:!0,ssr:!1},e),t}var Sz=function(e){var t=e.sideCar,n=YB(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return S.createElement(r,Nl({},n))};Sz.isSideCarExport=!0;function s0e(e,t){return e.useMedium(t),Sz}var wz=v8({},function(e){var t=e.target,n=e.currentTarget;return{target:t,currentTarget:n}}),Cz=v8(),l0e=v8(),u0e=xz({async:!0}),c0e=[],y8=S.forwardRef(function(t,n){var r,i=S.useState(),o=i[0],a=i[1],s=S.useRef(),l=S.useRef(!1),u=S.useRef(null),d=t.children,h=t.disabled,m=t.noFocusGuards,y=t.persistentFocus,b=t.crossFrame,w=t.autoFocus;t.allowTextSelection;var E=t.group,_=t.className,k=t.whiteList,T=t.hasPositiveIndices,L=t.shards,O=L===void 0?c0e:L,D=t.as,I=D===void 0?"div":D,N=t.lockProps,W=N===void 0?{}:N,B=t.sideCar,K=t.returnFocus,ne=t.focusOptions,z=t.onActivation,$=t.onDeactivation,V=S.useState({}),X=V[0],Q=S.useCallback(function(){u.current=u.current||document&&document.activeElement,s.current&&z&&z(s.current),l.current=!0},[z]),G=S.useCallback(function(){l.current=!1,$&&$(s.current)},[$]);S.useEffect(function(){h||(u.current=null)},[]);var Y=S.useCallback(function(Qe){var Xe=u.current;if(Xe&&Xe.focus){var tt=typeof K=="function"?K(Xe):K;if(tt){var yt=typeof tt=="object"?tt:void 0;u.current=null,Qe?Promise.resolve().then(function(){return Xe.focus(yt)}):Xe.focus(yt)}}},[K]),ee=S.useCallback(function(Qe){l.current&&wz.useMedium(Qe)},[]),fe=Cz.useMedium,Ce=S.useCallback(function(Qe){s.current!==Qe&&(s.current=Qe,a(Qe))},[]),we=pn((r={},r[mz]=h&&"disabled",r[G_]=E,r),W),xe=m!==!0,Le=xe&&m!=="tail",Se=vz([n,Ce]);return S.createElement(S.Fragment,null,xe&&[S.createElement("div",{key:"guard-first","data-focus-guard":!0,tabIndex:h?-1:0,style:uC}),T?S.createElement("div",{key:"guard-nearest","data-focus-guard":!0,tabIndex:h?-1:1,style:uC}):null],!h&&S.createElement(B,{id:X,sideCar:u0e,observed:o,disabled:h,persistentFocus:y,crossFrame:b,autoFocus:w,whiteList:k,shards:O,onActivation:Q,onDeactivation:G,returnFocus:Y,focusOptions:ne}),S.createElement(I,pn({ref:Se},we,{className:_,onBlur:fe,onFocus:ee}),d),Le&&S.createElement("div",{"data-focus-guard":!0,tabIndex:h?-1:0,style:uC}))});y8.propTypes={};y8.defaultProps={children:void 0,disabled:!1,returnFocus:!1,focusOptions:void 0,noFocusGuards:!1,autoFocus:!0,persistentFocus:!1,crossFrame:!0,hasPositiveIndices:void 0,allowTextSelection:void 0,group:void 0,className:void 0,whiteList:void 0,shards:void 0,as:"div",lockProps:{},onActivation:void 0,onDeactivation:void 0};const _z=y8;function s3(e,t){return s3=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},s3(e,t)}function b8(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s3(e,t)}function Ks(e){return Ks=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ks(e)}function d0e(e,t){if(Ks(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(Ks(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function kz(e){var t=d0e(e,"string");return Ks(t)==="symbol"?t:String(t)}function fs(e,t,n){return t=kz(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f0e(e,t){function n(r){return r.displayName||r.name||"Component"}return function(i){var o=[],a;function s(){a=e(o.map(function(u){return u.props})),t(a)}var l=function(u){b8(d,u);function d(){return u.apply(this,arguments)||this}d.peek=function(){return a};var h=d.prototype;return h.componentDidMount=function(){o.push(this),s()},h.componentDidUpdate=function(){s()},h.componentWillUnmount=function(){var y=o.indexOf(this);o.splice(y,1),s()},h.render=function(){return Ke.createElement(i,this.props)},d}(S.PureComponent);return fs(l,"displayName","SideEffect("+n(i)+")"),l}}var lu=function(e){for(var t=Array(e.length),n=0;n=0}).sort(x0e)},S0e=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],S8=S0e.join(","),w0e="".concat(S8,", [data-focus-guard]"),Dz=function(e,t){return lu((e.shadowRoot||e).children).reduce(function(n,r){return n.concat(r.matches(t?w0e:S8)?[r]:[],Dz(r))},[])},C0e=function(e,t){var n;return e instanceof HTMLIFrameElement&&(!((n=e.contentDocument)===null||n===void 0)&&n.body)?Nw([e.contentDocument.body],t):[e]},Nw=function(e,t){return e.reduce(function(n,r){var i,o=Dz(r,t),a=(i=[]).concat.apply(i,o.map(function(s){return C0e(s,t)}));return n.concat(a,r.parentNode?lu(r.parentNode.querySelectorAll(S8)).filter(function(s){return s===r}):[])},[])},_0e=function(e){var t=e.querySelectorAll("[".concat(r0e,"]"));return lu(t).map(function(n){return Nw([n])}).reduce(function(n,r){return n.concat(r)},[])},w8=function(e,t){return lu(e).filter(function(n){return Mz(t,n)}).filter(function(n){return v0e(n)})},KA=function(e,t){return t===void 0&&(t=new Map),lu(e).filter(function(n){return Lz(t,n)})},q_=function(e,t,n){return Iz(w8(Nw(e,n),t),!0,n)},YA=function(e,t){return Iz(w8(Nw(e),t),!1)},k0e=function(e,t){return w8(_0e(e),t)},_m=function(e,t){return e.shadowRoot?_m(e.shadowRoot,t):Object.getPrototypeOf(e).contains!==void 0&&Object.getPrototypeOf(e).contains.call(e,t)?!0:lu(e.children).some(function(n){var r;if(n instanceof HTMLIFrameElement){var i=(r=n.contentDocument)===null||r===void 0?void 0:r.body;return i?_m(i,t):!1}return _m(n,t)})},E0e=function(e){for(var t=new Set,n=e.length,r=0;r0&&t.add(i),(o&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(r)}return e.filter(function(a,s){return!t.has(s)})},jz=function(e){return e.parentNode?jz(e.parentNode):e},C8=function(e){var t=l3(e);return t.filter(Boolean).reduce(function(n,r){var i=r.getAttribute(G_);return n.push.apply(n,i?E0e(lu(jz(r).querySelectorAll("[".concat(G_,'="').concat(i,'"]:not([').concat(mz,'="disabled"])')))):[r]),n},[])},P0e=function(e){try{return e()}catch{return}},Ty=function(e){if(e===void 0&&(e=document),!(!e||!e.activeElement)){var t=e.activeElement;return t.shadowRoot?Ty(t.shadowRoot):t instanceof HTMLIFrameElement&&P0e(function(){return t.contentWindow.document})?Ty(t.contentWindow.document):t}},T0e=function(e,t){return e===t},M0e=function(e,t){return Boolean(lu(e.querySelectorAll("iframe")).some(function(n){return T0e(n,t)}))},Nz=function(e,t){return t===void 0&&(t=Ty(Ez(e).ownerDocument)),!t||t.dataset&&t.dataset.focusGuard?!1:C8(e).some(function(n){return _m(n,t)||M0e(n,t)})},L0e=function(e){e===void 0&&(e=document);var t=Ty(e);return t?lu(e.querySelectorAll("[".concat(n0e,"]"))).some(function(n){return _m(n,t)}):!1},A0e=function(e,t){return t.filter(Rz).filter(function(n){return n.name===e.name}).filter(function(n){return n.checked})[0]||e},_8=function(e,t){return Rz(e)&&e.name?A0e(e,t):e},O0e=function(e){var t=new Set;return e.forEach(function(n){return t.add(_8(n,e))}),e.filter(function(n){return t.has(n)})},XA=function(e){return e[0]&&e.length>1?_8(e[0],e):e[0]},ZA=function(e,t){return e.length>1?e.indexOf(_8(e[t],e)):t},$z="NEW_FOCUS",R0e=function(e,t,n,r){var i=e.length,o=e[0],a=e[i-1],s=x8(n);if(!(n&&e.indexOf(n)>=0)){var l=n!==void 0?t.indexOf(n):-1,u=r?t.indexOf(r):l,d=r?e.indexOf(r):-1,h=l-u,m=t.indexOf(o),y=t.indexOf(a),b=O0e(t),w=n!==void 0?b.indexOf(n):-1,E=w-(r?b.indexOf(r):l),_=ZA(e,0),k=ZA(e,i-1);if(l===-1||d===-1)return $z;if(!h&&d>=0)return d;if(l<=m&&s&&Math.abs(h)>1)return k;if(l>=y&&s&&Math.abs(h)>1)return _;if(h&&Math.abs(E)>1)return d;if(l<=m)return k;if(l>y)return _;if(h)return Math.abs(h)>1?d:(i+d+h)%i}},I0e=function(e){return function(t){var n,r=(n=Az(t))===null||n===void 0?void 0:n.autofocus;return t.autofocus||r!==void 0&&r!=="false"||e.indexOf(t)>=0}},D0e=function(e,t,n){var r=e.map(function(o){var a=o.node;return a}),i=KA(r.filter(I0e(n)));return i&&i.length?XA(i):XA(KA(t))},K_=function(e,t){return t===void 0&&(t=[]),t.push(e),e.parentNode&&K_(e.parentNode.host||e.parentNode,t),t},cC=function(e,t){for(var n=K_(e),r=K_(t),i=0;i=0)return o}return!1},Fz=function(e,t,n){var r=l3(e),i=l3(t),o=r[0],a=!1;return i.filter(Boolean).forEach(function(s){a=cC(a||s,s)||a,n.filter(Boolean).forEach(function(l){var u=cC(o,l);u&&(!a||_m(u,a)?a=u:a=cC(u,a))})}),a},j0e=function(e,t){return e.reduce(function(n,r){return n.concat(k0e(r,t))},[])},N0e=function(e,t){var n=new Map;return t.forEach(function(r){return n.set(r.node,r)}),e.map(function(r){return n.get(r)}).filter(b0e)},$0e=function(e,t){var n=Ty(l3(e).length>0?document:Ez(e).ownerDocument),r=C8(e).filter(u3),i=Fz(n||e,e,r),o=new Map,a=YA(r,o),s=q_(r,o).filter(function(y){var b=y.node;return u3(b)});if(!(!s[0]&&(s=a,!s[0]))){var l=YA([i],o).map(function(y){var b=y.node;return b}),u=N0e(l,s),d=u.map(function(y){var b=y.node;return b}),h=R0e(d,l,n,t);if(h===$z){var m=D0e(a,d,j0e(r,o));if(m)return{node:m};console.warn("focus-lock: cannot find any node to move focus into");return}return h===void 0?h:u[h]}},F0e=function(e){var t=C8(e).filter(u3),n=Fz(e,e,t),r=new Map,i=q_([n],r,!0),o=q_(t,r).filter(function(a){var s=a.node;return u3(s)}).map(function(a){var s=a.node;return s});return i.map(function(a){var s=a.node,l=a.index;return{node:s,index:l,lockItem:o.indexOf(s)>=0,guard:x8(s)}})},B0e=function(e,t){"focus"in e&&e.focus(t),"contentWindow"in e&&e.contentWindow&&e.contentWindow.focus()},dC=0,fC=!1,Bz=function(e,t,n){n===void 0&&(n={});var r=$0e(e,t);if(!fC&&r){if(dC>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),fC=!0,setTimeout(function(){fC=!1},1);return}dC++,B0e(r.node,n.focusOptions),dC--}};function zz(e){var t=window,n=t.setImmediate;typeof n<"u"?n(e):setTimeout(e,1)}var z0e=function(){return document&&document.activeElement===document.body},H0e=function(){return z0e()||L0e()},km=null,am=null,Em=null,My=!1,W0e=function(){return!0},U0e=function(t){return(km.whiteList||W0e)(t)},V0e=function(t,n){Em={observerNode:t,portaledElement:n}},G0e=function(t){return Em&&Em.portaledElement===t};function QA(e,t,n,r){var i=null,o=e;do{var a=r[o];if(a.guard)a.node.dataset.focusAutoGuard&&(i=a);else if(a.lockItem){if(o!==e)return;i=null}else break}while((o+=n)!==t);i&&(i.node.tabIndex=0)}var q0e=function(t){return t&&"current"in t?t.current:t},K0e=function(t){return t?Boolean(My):My==="meanwhile"},Y0e=function e(t,n,r){return n&&(n.host===t&&(!n.activeElement||r.contains(n.activeElement))||n.parentNode&&e(t,n.parentNode,r))},X0e=function(t,n){return n.some(function(r){return Y0e(t,r,r)})},c3=function(){var t=!1;if(km){var n=km,r=n.observed,i=n.persistentFocus,o=n.autoFocus,a=n.shards,s=n.crossFrame,l=n.focusOptions,u=r||Em&&Em.portaledElement,d=document&&document.activeElement;if(u){var h=[u].concat(a.map(q0e).filter(Boolean));if((!d||U0e(d))&&(i||K0e(s)||!H0e()||!am&&o)&&(u&&!(Nz(h)||d&&X0e(d,h)||G0e(d))&&(document&&!am&&d&&!o?(d.blur&&d.blur(),document.body.focus()):(t=Bz(h,am,{focusOptions:l}),Em={})),My=!1,am=document&&document.activeElement),document){var m=document&&document.activeElement,y=F0e(h),b=y.map(function(w){var E=w.node;return E}).indexOf(m);b>-1&&(y.filter(function(w){var E=w.guard,_=w.node;return E&&_.dataset.focusAutoGuard}).forEach(function(w){var E=w.node;return E.removeAttribute("tabIndex")}),QA(b,y.length,1,y),QA(b,-1,-1,y))}}}return t},Hz=function(t){c3()&&t&&(t.stopPropagation(),t.preventDefault())},k8=function(){return zz(c3)},Z0e=function(t){var n=t.target,r=t.currentTarget;r.contains(n)||V0e(r,n)},Q0e=function(){return null},Wz=function(){My="just",setTimeout(function(){My="meanwhile"},0)},J0e=function(){document.addEventListener("focusin",Hz),document.addEventListener("focusout",k8),window.addEventListener("blur",Wz)},eve=function(){document.removeEventListener("focusin",Hz),document.removeEventListener("focusout",k8),window.removeEventListener("blur",Wz)};function tve(e){return e.filter(function(t){var n=t.disabled;return!n})}function nve(e){var t=e.slice(-1)[0];t&&!km&&J0e();var n=km,r=n&&t&&t.id===n.id;km=t,n&&!r&&(n.onDeactivation(),e.filter(function(i){var o=i.id;return o===n.id}).length||n.returnFocus(!t)),t?(am=null,(!r||n.observed!==t.observed)&&t.onActivation(),c3(),zz(c3)):(eve(),am=null)}wz.assignSyncMedium(Z0e);Cz.assignMedium(k8);l0e.assignMedium(function(e){return e({moveFocusInside:Bz,focusInside:Nz})});const rve=f0e(tve,nve)(Q0e);var Uz=S.forwardRef(function(t,n){return S.createElement(_z,pn({sideCar:rve,ref:n},t))}),Vz=_z.propTypes||{};Vz.sideCar;m8(Vz,["sideCar"]);Uz.propTypes={};const JA=Uz;function Gz(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function qz(e){var t;if(!Gz(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function ive(e){var t,n;return(n=(t=Kz(e))==null?void 0:t.defaultView)!=null?n:window}function Kz(e){return Gz(e)?e.ownerDocument:document}function ove(e){return Kz(e).activeElement}var Yz=e=>e.hasAttribute("tabindex"),ave=e=>Yz(e)&&e.tabIndex===-1;function sve(e){return Boolean(e.getAttribute("disabled"))===!0||Boolean(e.getAttribute("aria-disabled"))===!0}function Xz(e){return e.parentElement&&Xz(e.parentElement)?!0:e.hidden}function lve(e){const t=e.getAttribute("contenteditable");return t!=="false"&&t!=null}function Zz(e){if(!qz(e)||Xz(e)||sve(e))return!1;const{localName:t}=e;if(["input","select","textarea","button"].indexOf(t)>=0)return!0;const r={a:()=>e.hasAttribute("href"),audio:()=>e.hasAttribute("controls"),video:()=>e.hasAttribute("controls")};return t in r?r[t]():lve(e)?!0:Yz(e)}function uve(e){return e?qz(e)&&Zz(e)&&!ave(e):!1}var cve=["input:not(:disabled):not([disabled])","select:not(:disabled):not([disabled])","textarea:not(:disabled):not([disabled])","embed","iframe","object","a[href]","area[href]","button:not(:disabled):not([disabled])","[tabindex]","audio[controls]","video[controls]","*[tabindex]:not([aria-disabled])","*[contenteditable]"],dve=cve.join(),fve=e=>e.offsetWidth>0&&e.offsetHeight>0;function Qz(e){const t=Array.from(e.querySelectorAll(dve));return t.unshift(e),t.filter(n=>Zz(n)&&fve(n))}var eO,hve=(eO=JA.default)!=null?eO:JA,Jz=e=>{const{initialFocusRef:t,finalFocusRef:n,contentRef:r,restoreFocus:i,children:o,isDisabled:a,autoFocus:s,persistentFocus:l,lockFocusAcrossFrames:u}=e,d=S.useCallback(()=>{t!=null&&t.current?t.current.focus():r!=null&&r.current&&Qz(r.current).length===0&&requestAnimationFrame(()=>{var b;(b=r.current)==null||b.focus()})},[t,r]),h=S.useCallback(()=>{var y;(y=n==null?void 0:n.current)==null||y.focus()},[n]),m=i&&!n;return g.jsx(hve,{crossFrame:u,persistentFocus:l,autoFocus:s,disabled:a,onActivation:d,onDeactivation:h,returnFocus:m,children:o})};Jz.displayName="FocusLock";var pve=fce?S.useLayoutEffect:S.useEffect;function tO(e,t=[]){const n=S.useRef(e);return pve(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function gve(e,t){const n=S.useId();return S.useMemo(()=>e||[t,n].filter(Boolean).join("-"),[e,t,n])}function mve(e,t){const n=e!==void 0;return[n,n&&typeof e<"u"?e:t]}function Kd(e={}){const{onClose:t,onOpen:n,isOpen:r,id:i}=e,o=tO(n),a=tO(t),[s,l]=S.useState(e.defaultIsOpen||!1),[u,d]=mve(r,s),h=gve(i,"disclosure"),m=S.useCallback(()=>{u||l(!1),a==null||a()},[u,a]),y=S.useCallback(()=>{u||l(!0),o==null||o()},[u,o]),b=S.useCallback(()=>{(d?m:y)()},[d,y,m]);return{isOpen:!!d,onOpen:y,onClose:m,onToggle:b,isControlled:u,getButtonProps:(w={})=>({...w,"aria-expanded":d,"aria-controls":h,onClick:vce(w.onClick,b)}),getDisclosureProps:(w={})=>({...w,hidden:!d,id:h})}}var E8=Ze(function(t,n){const{htmlSize:r,...i}=t,o=Yi("Input",i),a=fr(i),s=f8(a),l=xt("chakra-input",t.className);return g.jsx(Ne.input,{size:r,...s,__css:o.field,ref:n,className:l})});E8.displayName="Input";E8.id="Input";var[vve,eH]=Pn({name:"ListStylesContext",errorMessage:`useListStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),P8=Ze(function(t,n){const r=Yi("List",t),{children:i,styleType:o="none",stylePosition:a,spacing:s,...l}=fr(t),u=d8(i),h=s?{["& > *:not(style) ~ *:not(style)"]:{mt:s}}:{};return g.jsx(vve,{value:r,children:g.jsx(Ne.ul,{ref:n,listStyleType:o,listStylePosition:a,role:"list",__css:{...r.container,...h},...l,children:u})})});P8.displayName="List";var yve=Ze((e,t)=>{const{as:n,...r}=e;return g.jsx(P8,{ref:t,as:"ol",styleType:"decimal",marginStart:"1em",...r})});yve.displayName="OrderedList";var tH=Ze(function(t,n){const{as:r,...i}=t;return g.jsx(P8,{ref:n,as:"ul",styleType:"initial",marginStart:"1em",...i})});tH.displayName="UnorderedList";var f1=Ze(function(t,n){const r=eH();return g.jsx(Ne.li,{ref:n,...t,__css:r.item})});f1.displayName="ListItem";var bve=Ze(function(t,n){const r=eH();return g.jsx(ja,{ref:n,role:"presentation",...t,__css:r.icon})});bve.displayName="ListIcon";function nH(e,t){return Array.isArray(e)?e.map(n=>n===null?null:t(n)):ko(e)?Object.keys(e).reduce((n,r)=>(n[r]=t(e[r]),n),{}):e!=null?t(e):null}var rH=Ne("div",{baseStyle:{flex:1,justifySelf:"stretch",alignSelf:"stretch"}});rH.displayName="Spacer";var Dt=Ze(function(t,n){const r=au("Text",t),{className:i,align:o,decoration:a,casing:s,...l}=fr(t),u=Rce({textAlign:t.align,textDecoration:t.decoration,textTransform:t.casing});return g.jsx(Ne.p,{ref:n,className:xt("chakra-text",t.className),...u,...l,__css:r})});Dt.displayName="Text";var iH=e=>g.jsx(Ne.div,{className:"chakra-stack__item",...e,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...e.__css}});iH.displayName="StackItem";var Y_="& > *:not(style) ~ *:not(style)";function xve(e){const{spacing:t,direction:n}=e,r={column:{marginTop:t,marginEnd:0,marginBottom:0,marginStart:0},row:{marginTop:0,marginEnd:0,marginBottom:0,marginStart:t},"column-reverse":{marginTop:0,marginEnd:0,marginBottom:t,marginStart:0},"row-reverse":{marginTop:0,marginEnd:t,marginBottom:0,marginStart:0}};return{flexDirection:n,[Y_]:nH(n,i=>r[i])}}function Sve(e){const{spacing:t,direction:n}=e,r={column:{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":nH(n,i=>r[i])}}var T8=Ze((e,t)=>{const{isInline:n,direction:r,align:i,justify:o,spacing:a="0.5rem",wrap:s,children:l,divider:u,className:d,shouldWrapChildren:h,...m}=e,y=n?"row":r??"column",b=S.useMemo(()=>xve({direction:y,spacing:a}),[y,a]),w=S.useMemo(()=>Sve({spacing:a,direction:y}),[a,y]),E=!!u,_=!h&&!E,k=S.useMemo(()=>{const L=d8(l);return _?L:L.map((O,D)=>{const I=typeof O.key<"u"?O.key:D,N=D+1===L.length,B=h?g.jsx(iH,{children:O},I):O;if(!E)return B;const K=S.cloneElement(u,{__css:w}),ne=N?null:K;return g.jsxs(S.Fragment,{children:[B,ne]},I)})},[u,w,E,_,h,l]),T=xt("chakra-stack",d);return g.jsx(Ne.div,{ref:t,display:"flex",alignItems:i,justifyContent:o,flexDirection:b.flexDirection,flexWrap:s,className:T,__css:E?{}:{[Y_]:b[Y_]},...m,children:k})});T8.displayName="Stack";var hn=Ze((e,t)=>g.jsx(T8,{align:"center",...e,direction:"column",ref:t}));hn.displayName="VStack";var l2=Ze((e,t)=>g.jsx(T8,{align:"center",...e,direction:"row",ref:t}));l2.displayName="HStack";var jh=Ze(function(t,n){const r=au("Heading",t),{className:i,...o}=fr(t);return g.jsx(Ne.h2,{ref:n,className:xt("chakra-heading",t.className),...o,__css:r})});jh.displayName="Heading";var ao=Ne("div");ao.displayName="Box";var oH=Ze(function(t,n){const{size:r,centerContent:i=!0,...o}=t,a=i?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return g.jsx(ao,{ref:n,boxSize:r,__css:{...a,flexShrink:0,flexGrow:0},...o})});oH.displayName="Square";var wve=Ze(function(t,n){const{size:r,...i}=t;return g.jsx(oH,{size:r,ref:n,borderRadius:"9999px",...i})});wve.displayName="Circle";var Nh=Ze(function(t,n){const r=au("Link",t),{className:i,isExternal:o,...a}=fr(t);return g.jsx(Ne.a,{target:o?"_blank":void 0,rel:o?"noopener":void 0,ref:n,className:xt("chakra-link",i),...a,__css:r})});Nh.displayName="Link";var aH=Ne("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center"}});aH.displayName="Center";var Cve={horizontal:{insetStart:"50%",transform:"translateX(-50%)"},vertical:{top:"50%",transform:"translateY(-50%)"},both:{insetStart:"50%",top:"50%",transform:"translate(-50%, -50%)"}};Ze(function(t,n){const{axis:r="both",...i}=t;return g.jsx(Ne.div,{ref:n,__css:Cve[r],...i,position:"absolute"})});var ke=Ze(function(t,n){const{direction:r,align:i,justify:o,wrap:a,basis:s,grow:l,shrink:u,...d}=t,h={display:"flex",flexDirection:r,alignItems:i,justifyContent:o,flexWrap:a,flexBasis:s,flexGrow:l,flexShrink:u};return g.jsx(Ne.div,{ref:n,__css:h,...d})});ke.displayName="Flex";function _ve(e){const{key:t}=e;return t.length===1||t.length>1&&/[^a-zA-Z0-9]/.test(t)}function kve(e={}){const{timeout:t=300,preventDefault:n=()=>!0}=e,[r,i]=S.useState([]),o=S.useRef(),a=()=>{o.current&&(clearTimeout(o.current),o.current=null)},s=()=>{a(),o.current=setTimeout(()=>{i([]),o.current=null},t)};S.useEffect(()=>a,[]);function l(u){return d=>{if(d.key==="Backspace"){const h=[...r];h.pop(),i(h);return}if(_ve(d)){const h=r.concat(d.key);n(d)&&(d.preventDefault(),d.stopPropagation()),i(h),u(h.join("")),s()}}}return l}function Eve(e,t,n,r){if(t==null)return r;if(!r)return e.find(a=>n(a).toLowerCase().startsWith(t.toLowerCase()));const i=e.filter(o=>n(o).toLowerCase().startsWith(t.toLowerCase()));if(i.length>0){let o;return i.includes(r)?(o=i.indexOf(r)+1,o===i.length&&(o=0),i[o]):(o=e.indexOf(i[0]),e[o])}return r}function Pve(){const e=S.useRef(new Map),t=e.current,n=S.useCallback((i,o,a,s)=>{e.current.set(a,{type:o,el:i,options:s}),i.addEventListener(o,a,s)},[]),r=S.useCallback((i,o,a,s)=>{i.removeEventListener(o,a,s),e.current.delete(a)},[]);return S.useEffect(()=>()=>{t.forEach((i,o)=>{r(i.el,i.type,o,i.options)})},[r,t]),{add:n,remove:r}}function hC(e){const t=e.target,{tagName:n,isContentEditable:r}=t;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function sH(e={}){const{ref:t,isDisabled:n,isFocusable:r,clickOnEnter:i=!0,clickOnSpace:o=!0,onMouseDown:a,onMouseUp:s,onClick:l,onKeyDown:u,onKeyUp:d,tabIndex:h,onMouseOver:m,onMouseLeave:y,...b}=e,[w,E]=S.useState(!0),[_,k]=S.useState(!1),T=Pve(),L=Q=>{Q&&Q.tagName!=="BUTTON"&&E(!1)},O=w?h:h||0,D=n&&!r,I=S.useCallback(Q=>{if(n){Q.stopPropagation(),Q.preventDefault();return}Q.currentTarget.focus(),l==null||l(Q)},[n,l]),N=S.useCallback(Q=>{_&&hC(Q)&&(Q.preventDefault(),Q.stopPropagation(),k(!1),T.remove(document,"keyup",N,!1))},[_,T]),W=S.useCallback(Q=>{if(u==null||u(Q),n||Q.defaultPrevented||Q.metaKey||!hC(Q.nativeEvent)||w)return;const G=i&&Q.key==="Enter";o&&Q.key===" "&&(Q.preventDefault(),k(!0)),G&&(Q.preventDefault(),Q.currentTarget.click()),T.add(document,"keyup",N,!1)},[n,w,u,i,o,T,N]),B=S.useCallback(Q=>{if(d==null||d(Q),n||Q.defaultPrevented||Q.metaKey||!hC(Q.nativeEvent)||w)return;o&&Q.key===" "&&(Q.preventDefault(),k(!1),Q.currentTarget.click())},[o,w,n,d]),K=S.useCallback(Q=>{Q.button===0&&(k(!1),T.remove(document,"mouseup",K,!1))},[T]),ne=S.useCallback(Q=>{if(Q.button!==0)return;if(n){Q.stopPropagation(),Q.preventDefault();return}w||k(!0),Q.currentTarget.focus({preventScroll:!0}),T.add(document,"mouseup",K,!1),a==null||a(Q)},[n,w,a,T,K]),z=S.useCallback(Q=>{Q.button===0&&(w||k(!1),s==null||s(Q))},[s,w]),$=S.useCallback(Q=>{if(n){Q.preventDefault();return}m==null||m(Q)},[n,m]),V=S.useCallback(Q=>{_&&(Q.preventDefault(),k(!1)),y==null||y(Q)},[_,y]),X=Rn(t,L);return w?{...b,ref:X,type:"button","aria-disabled":D?void 0:n,disabled:D,onClick:I,onMouseDown:a,onMouseUp:s,onKeyUp:d,onKeyDown:u,onMouseOver:m,onMouseLeave:y}:{...b,ref:X,role:"button","data-active":Bt(_),"aria-disabled":n?"true":void 0,tabIndex:D?void 0:O,onClick:I,onMouseDown:ne,onMouseUp:z,onKeyUp:B,onKeyDown:W,onMouseOver:$,onMouseLeave:V}}function Tve(e){const t=e.current;if(!t)return!1;const n=ove(t);return!n||t.contains(n)?!1:!!uve(n)}function lH(e,t){const{shouldFocus:n,visible:r,focusRef:i}=t,o=n&&!r;rc(()=>{if(!o||Tve(e))return;const a=(i==null?void 0:i.current)||e.current;a&&requestAnimationFrame(()=>{a.focus()})},[o,e,i])}var Mve={preventScroll:!0,shouldFocus:!1};function Lve(e,t=Mve){const{focusRef:n,preventScroll:r,shouldFocus:i,visible:o}=t,a=Ave(e)?e.current:e,s=i&&o,l=S.useRef(s),u=S.useRef(o);Vl(()=>{!u.current&&o&&(l.current=s),u.current=o},[o,s]);const d=S.useCallback(()=>{if(!(!o||!a||!l.current)&&(l.current=!1,!a.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var h;(h=n.current)==null||h.focus({preventScroll:r})});else{const h=Qz(a);h.length>0&&requestAnimationFrame(()=>{h[0].focus({preventScroll:r})})}},[o,r,a,n]);rc(()=>{d()},[d]),Dh(a,"transitionend",d)}function Ave(e){return"current"in e}var Sg=(e,t)=>({var:e,varRef:t?`var(${e}, ${t})`:`var(${e})`}),ii={arrowShadowColor:Sg("--popper-arrow-shadow-color"),arrowSize:Sg("--popper-arrow-size","8px"),arrowSizeHalf:Sg("--popper-arrow-size-half"),arrowBg:Sg("--popper-arrow-bg"),transformOrigin:Sg("--popper-transform-origin"),arrowOffset:Sg("--popper-arrow-offset")};function Ove(e){if(e.includes("top"))return"1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("bottom"))return"-1px -1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("right"))return"-1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("left"))return"1px -1px 1px 0 var(--popper-arrow-shadow-color)"}var Rve={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},Ive=e=>Rve[e],nO={scroll:!0,resize:!0};function Dve(e){let t;return typeof e=="object"?t={enabled:!0,options:{...nO,...e}}:t={enabled:e,options:nO},t}var jve={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},effect:({state:e})=>()=>{const t=e.elements.reference;e.elements.popper.style.width=`${t.offsetWidth}px`}},Nve={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:e})=>{rO(e)},effect:({state:e})=>()=>{rO(e)}},rO=e=>{e.elements.popper.style.setProperty(ii.transformOrigin.var,Ive(e.placement))},$ve={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:e})=>{Fve(e)}},Fve=e=>{var t;if(!e.placement)return;const n=Bve(e.placement);if((t=e.elements)!=null&&t.arrow&&n){Object.assign(e.elements.arrow.style,{[n.property]:n.value,width:ii.arrowSize.varRef,height:ii.arrowSize.varRef,zIndex:-1});const r={[ii.arrowSizeHalf.var]:`calc(${ii.arrowSize.varRef} / 2)`,[ii.arrowOffset.var]:`calc(${ii.arrowSizeHalf.varRef} * -1)`};for(const i in r)e.elements.arrow.style.setProperty(i,r[i])}},Bve=e=>{if(e.startsWith("top"))return{property:"bottom",value:ii.arrowOffset.varRef};if(e.startsWith("bottom"))return{property:"top",value:ii.arrowOffset.varRef};if(e.startsWith("left"))return{property:"right",value:ii.arrowOffset.varRef};if(e.startsWith("right"))return{property:"left",value:ii.arrowOffset.varRef}},zve={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:e})=>{iO(e)},effect:({state:e})=>()=>{iO(e)}},iO=e=>{if(!e.elements.arrow)return;const t=e.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!t)return;const n=Ove(e.placement);n&&t.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(t.style,{transform:"rotate(45deg)",background:ii.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},Hve={"start-start":{ltr:"left-start",rtl:"right-start"},"start-end":{ltr:"left-end",rtl:"right-end"},"end-start":{ltr:"right-start",rtl:"left-start"},"end-end":{ltr:"right-end",rtl:"left-end"},start:{ltr:"left",rtl:"right"},end:{ltr:"right",rtl:"left"}},Wve={"auto-start":"auto-end","auto-end":"auto-start","top-start":"top-end","top-end":"top-start","bottom-start":"bottom-end","bottom-end":"bottom-start"};function Uve(e,t="ltr"){var n,r;const i=((n=Hve[e])==null?void 0:n[t])||e;return t==="ltr"?i:(r=Wve[e])!=null?r:i}var Zo="top",us="bottom",cs="right",Qo="left",M8="auto",u2=[Zo,us,cs,Qo],qm="start",Ly="end",Vve="clippingParents",uH="viewport",Uv="popper",Gve="reference",oO=u2.reduce(function(e,t){return e.concat([t+"-"+qm,t+"-"+Ly])},[]),cH=[].concat(u2,[M8]).reduce(function(e,t){return e.concat([t,t+"-"+qm,t+"-"+Ly])},[]),qve="beforeRead",Kve="read",Yve="afterRead",Xve="beforeMain",Zve="main",Qve="afterMain",Jve="beforeWrite",e1e="write",t1e="afterWrite",n1e=[qve,Kve,Yve,Xve,Zve,Qve,Jve,e1e,t1e];function nu(e){return e?(e.nodeName||"").toLowerCase():null}function hs(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Kh(e){var t=hs(e).Element;return e instanceof t||e instanceof Element}function is(e){var t=hs(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function L8(e){if(typeof ShadowRoot>"u")return!1;var t=hs(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function r1e(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!is(o)||!nu(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var s=i[a];s===!1?o.removeAttribute(a):o.setAttribute(a,s===!0?"":s)}))})}function i1e(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,u){return l[u]="",l},{});!is(i)||!nu(i)||(Object.assign(i.style,s),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}const o1e={name:"applyStyles",enabled:!0,phase:"write",fn:r1e,effect:i1e,requires:["computeStyles"]};function Zl(e){return e.split("-")[0]}var $h=Math.max,d3=Math.min,Km=Math.round;function X_(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function dH(){return!/^((?!chrome|android).)*safari/i.test(X_())}function Ym(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&is(e)&&(i=e.offsetWidth>0&&Km(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Km(r.height)/e.offsetHeight||1);var a=Kh(e)?hs(e):window,s=a.visualViewport,l=!dH()&&n,u=(r.left+(l&&s?s.offsetLeft:0))/i,d=(r.top+(l&&s?s.offsetTop:0))/o,h=r.width/i,m=r.height/o;return{width:h,height:m,top:d,right:u+h,bottom:d+m,left:u,x:u,y:d}}function A8(e){var t=Ym(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function fH(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&L8(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ic(e){return hs(e).getComputedStyle(e)}function a1e(e){return["table","td","th"].indexOf(nu(e))>=0}function lf(e){return((Kh(e)?e.ownerDocument:e.document)||window.document).documentElement}function $w(e){return nu(e)==="html"?e:e.assignedSlot||e.parentNode||(L8(e)?e.host:null)||lf(e)}function aO(e){return!is(e)||ic(e).position==="fixed"?null:e.offsetParent}function s1e(e){var t=/firefox/i.test(X_()),n=/Trident/i.test(X_());if(n&&is(e)){var r=ic(e);if(r.position==="fixed")return null}var i=$w(e);for(L8(i)&&(i=i.host);is(i)&&["html","body"].indexOf(nu(i))<0;){var o=ic(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function c2(e){for(var t=hs(e),n=aO(e);n&&a1e(n)&&ic(n).position==="static";)n=aO(n);return n&&(nu(n)==="html"||nu(n)==="body"&&ic(n).position==="static")?t:n||s1e(e)||t}function O8(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function W1(e,t,n){return $h(e,d3(t,n))}function l1e(e,t,n){var r=W1(e,t,n);return r>n?n:r}function hH(){return{top:0,right:0,bottom:0,left:0}}function pH(e){return Object.assign({},hH(),e)}function gH(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var u1e=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,pH(typeof t!="number"?t:gH(t,u2))};function c1e(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Zl(n.placement),l=O8(s),u=[Qo,cs].indexOf(s)>=0,d=u?"height":"width";if(!(!o||!a)){var h=u1e(i.padding,n),m=A8(o),y=l==="y"?Zo:Qo,b=l==="y"?us:cs,w=n.rects.reference[d]+n.rects.reference[l]-a[l]-n.rects.popper[d],E=a[l]-n.rects.reference[l],_=c2(o),k=_?l==="y"?_.clientHeight||0:_.clientWidth||0:0,T=w/2-E/2,L=h[y],O=k-m[d]-h[b],D=k/2-m[d]/2+T,I=W1(L,D,O),N=l;n.modifiersData[r]=(t={},t[N]=I,t.centerOffset=I-D,t)}}function d1e(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||fH(t.elements.popper,i)&&(t.elements.arrow=i))}const f1e={name:"arrow",enabled:!0,phase:"main",fn:c1e,effect:d1e,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Xm(e){return e.split("-")[1]}var h1e={top:"auto",right:"auto",bottom:"auto",left:"auto"};function p1e(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Km(t*i)/i||0,y:Km(n*i)/i||0}}function sO(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,h=e.isFixed,m=a.x,y=m===void 0?0:m,b=a.y,w=b===void 0?0:b,E=typeof d=="function"?d({x:y,y:w}):{x:y,y:w};y=E.x,w=E.y;var _=a.hasOwnProperty("x"),k=a.hasOwnProperty("y"),T=Qo,L=Zo,O=window;if(u){var D=c2(n),I="clientHeight",N="clientWidth";if(D===hs(n)&&(D=lf(n),ic(D).position!=="static"&&s==="absolute"&&(I="scrollHeight",N="scrollWidth")),D=D,i===Zo||(i===Qo||i===cs)&&o===Ly){L=us;var W=h&&D===O&&O.visualViewport?O.visualViewport.height:D[I];w-=W-r.height,w*=l?1:-1}if(i===Qo||(i===Zo||i===us)&&o===Ly){T=cs;var B=h&&D===O&&O.visualViewport?O.visualViewport.width:D[N];y-=B-r.width,y*=l?1:-1}}var K=Object.assign({position:s},u&&h1e),ne=d===!0?p1e({x:y,y:w}):{x:y,y:w};if(y=ne.x,w=ne.y,l){var z;return Object.assign({},K,(z={},z[L]=k?"0":"",z[T]=_?"0":"",z.transform=(O.devicePixelRatio||1)<=1?"translate("+y+"px, "+w+"px)":"translate3d("+y+"px, "+w+"px, 0)",z))}return Object.assign({},K,(t={},t[L]=k?w+"px":"",t[T]=_?y+"px":"",t.transform="",t))}function g1e(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,a=o===void 0?!0:o,s=n.roundOffsets,l=s===void 0?!0:s,u={placement:Zl(t.placement),variation:Xm(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,sO(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,sO(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const m1e={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g1e,data:{}};var Vb={passive:!0};function v1e(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,s=a===void 0?!0:a,l=hs(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(d){d.addEventListener("scroll",n.update,Vb)}),s&&l.addEventListener("resize",n.update,Vb),function(){o&&u.forEach(function(d){d.removeEventListener("scroll",n.update,Vb)}),s&&l.removeEventListener("resize",n.update,Vb)}}const y1e={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:v1e,data:{}};var b1e={left:"right",right:"left",bottom:"top",top:"bottom"};function Jx(e){return e.replace(/left|right|bottom|top/g,function(t){return b1e[t]})}var x1e={start:"end",end:"start"};function lO(e){return e.replace(/start|end/g,function(t){return x1e[t]})}function R8(e){var t=hs(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function I8(e){return Ym(lf(e)).left+R8(e).scrollLeft}function S1e(e,t){var n=hs(e),r=lf(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=dH();(u||!u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+I8(e),y:l}}function w1e(e){var t,n=lf(e),r=R8(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=$h(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=$h(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+I8(e),l=-r.scrollTop;return ic(i||n).direction==="rtl"&&(s+=$h(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:l}}function D8(e){var t=ic(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function mH(e){return["html","body","#document"].indexOf(nu(e))>=0?e.ownerDocument.body:is(e)&&D8(e)?e:mH($w(e))}function U1(e,t){var n;t===void 0&&(t=[]);var r=mH(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=hs(r),a=i?[o].concat(o.visualViewport||[],D8(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(U1($w(a)))}function Z_(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function C1e(e,t){var n=Ym(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function uO(e,t,n){return t===uH?Z_(S1e(e,n)):Kh(t)?C1e(t,n):Z_(w1e(lf(e)))}function _1e(e){var t=U1($w(e)),n=["absolute","fixed"].indexOf(ic(e).position)>=0,r=n&&is(e)?c2(e):e;return Kh(r)?t.filter(function(i){return Kh(i)&&fH(i,r)&&nu(i)!=="body"}):[]}function k1e(e,t,n,r){var i=t==="clippingParents"?_1e(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(l,u){var d=uO(e,u,r);return l.top=$h(d.top,l.top),l.right=d3(d.right,l.right),l.bottom=d3(d.bottom,l.bottom),l.left=$h(d.left,l.left),l},uO(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function vH(e){var t=e.reference,n=e.element,r=e.placement,i=r?Zl(r):null,o=r?Xm(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(i){case Zo:l={x:a,y:t.y-n.height};break;case us:l={x:a,y:t.y+t.height};break;case cs:l={x:t.x+t.width,y:s};break;case Qo:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?O8(i):null;if(u!=null){var d=u==="y"?"height":"width";switch(o){case qm:l[u]=l[u]-(t[d]/2-n[d]/2);break;case Ly:l[u]=l[u]+(t[d]/2-n[d]/2);break}}return l}function Ay(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,a=o===void 0?e.strategy:o,s=n.boundary,l=s===void 0?Vve:s,u=n.rootBoundary,d=u===void 0?uH:u,h=n.elementContext,m=h===void 0?Uv:h,y=n.altBoundary,b=y===void 0?!1:y,w=n.padding,E=w===void 0?0:w,_=pH(typeof E!="number"?E:gH(E,u2)),k=m===Uv?Gve:Uv,T=e.rects.popper,L=e.elements[b?k:m],O=k1e(Kh(L)?L:L.contextElement||lf(e.elements.popper),l,d,a),D=Ym(e.elements.reference),I=vH({reference:D,element:T,strategy:"absolute",placement:i}),N=Z_(Object.assign({},T,I)),W=m===Uv?N:D,B={top:O.top-W.top+_.top,bottom:W.bottom-O.bottom+_.bottom,left:O.left-W.left+_.left,right:W.right-O.right+_.right},K=e.modifiersData.offset;if(m===Uv&&K){var ne=K[i];Object.keys(B).forEach(function(z){var $=[cs,us].indexOf(z)>=0?1:-1,V=[Zo,us].indexOf(z)>=0?"y":"x";B[z]+=ne[V]*$})}return B}function E1e(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?cH:l,d=Xm(r),h=d?s?oO:oO.filter(function(b){return Xm(b)===d}):u2,m=h.filter(function(b){return u.indexOf(b)>=0});m.length===0&&(m=h);var y=m.reduce(function(b,w){return b[w]=Ay(e,{placement:w,boundary:i,rootBoundary:o,padding:a})[Zl(w)],b},{});return Object.keys(y).sort(function(b,w){return y[b]-y[w]})}function P1e(e){if(Zl(e)===M8)return[];var t=Jx(e);return[lO(e),t,lO(t)]}function T1e(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,d=n.boundary,h=n.rootBoundary,m=n.altBoundary,y=n.flipVariations,b=y===void 0?!0:y,w=n.allowedAutoPlacements,E=t.options.placement,_=Zl(E),k=_===E,T=l||(k||!b?[Jx(E)]:P1e(E)),L=[E].concat(T).reduce(function(xe,Le){return xe.concat(Zl(Le)===M8?E1e(t,{placement:Le,boundary:d,rootBoundary:h,padding:u,flipVariations:b,allowedAutoPlacements:w}):Le)},[]),O=t.rects.reference,D=t.rects.popper,I=new Map,N=!0,W=L[0],B=0;B=0,V=$?"width":"height",X=Ay(t,{placement:K,boundary:d,rootBoundary:h,altBoundary:m,padding:u}),Q=$?z?cs:Qo:z?us:Zo;O[V]>D[V]&&(Q=Jx(Q));var G=Jx(Q),Y=[];if(o&&Y.push(X[ne]<=0),s&&Y.push(X[Q]<=0,X[G]<=0),Y.every(function(xe){return xe})){W=K,N=!1;break}I.set(K,Y)}if(N)for(var ee=b?3:1,fe=function(Le){var Se=L.find(function(Qe){var Xe=I.get(Qe);if(Xe)return Xe.slice(0,Le).every(function(tt){return tt})});if(Se)return W=Se,"break"},Ce=ee;Ce>0;Ce--){var we=fe(Ce);if(we==="break")break}t.placement!==W&&(t.modifiersData[r]._skip=!0,t.placement=W,t.reset=!0)}}const M1e={name:"flip",enabled:!0,phase:"main",fn:T1e,requiresIfExists:["offset"],data:{_skip:!1}};function cO(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function dO(e){return[Zo,cs,us,Qo].some(function(t){return e[t]>=0})}function L1e(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=Ay(t,{elementContext:"reference"}),s=Ay(t,{altBoundary:!0}),l=cO(a,r),u=cO(s,i,o),d=dO(l),h=dO(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}const A1e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:L1e};function O1e(e,t,n){var r=Zl(e),i=[Qo,Zo].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[Qo,cs].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function R1e(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,a=cH.reduce(function(d,h){return d[h]=O1e(h,t.rects,o),d},{}),s=a[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}const I1e={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:R1e};function D1e(e){var t=e.state,n=e.name;t.modifiersData[n]=vH({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const j1e={name:"popperOffsets",enabled:!0,phase:"read",fn:D1e,data:{}};function N1e(e){return e==="x"?"y":"x"}function $1e(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,d=n.altBoundary,h=n.padding,m=n.tether,y=m===void 0?!0:m,b=n.tetherOffset,w=b===void 0?0:b,E=Ay(t,{boundary:l,rootBoundary:u,padding:h,altBoundary:d}),_=Zl(t.placement),k=Xm(t.placement),T=!k,L=O8(_),O=N1e(L),D=t.modifiersData.popperOffsets,I=t.rects.reference,N=t.rects.popper,W=typeof w=="function"?w(Object.assign({},t.rects,{placement:t.placement})):w,B=typeof W=="number"?{mainAxis:W,altAxis:W}:Object.assign({mainAxis:0,altAxis:0},W),K=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,ne={x:0,y:0};if(D){if(o){var z,$=L==="y"?Zo:Qo,V=L==="y"?us:cs,X=L==="y"?"height":"width",Q=D[L],G=Q+E[$],Y=Q-E[V],ee=y?-N[X]/2:0,fe=k===qm?I[X]:N[X],Ce=k===qm?-N[X]:-I[X],we=t.elements.arrow,xe=y&&we?A8(we):{width:0,height:0},Le=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:hH(),Se=Le[$],Qe=Le[V],Xe=W1(0,I[X],xe[X]),tt=T?I[X]/2-ee-Xe-Se-B.mainAxis:fe-Xe-Se-B.mainAxis,yt=T?-I[X]/2+ee+Xe+Qe+B.mainAxis:Ce+Xe+Qe+B.mainAxis,Be=t.elements.arrow&&c2(t.elements.arrow),Ae=Be?L==="y"?Be.clientTop||0:Be.clientLeft||0:0,bt=(z=K==null?void 0:K[L])!=null?z:0,Fe=Q+tt-bt-Ae,at=Q+yt-bt,jt=W1(y?d3(G,Fe):G,Q,y?$h(Y,at):Y);D[L]=jt,ne[L]=jt-Q}if(s){var mt,Zt=L==="x"?Zo:Qo,on=L==="x"?us:cs,se=D[O],Ie=O==="y"?"height":"width",He=se+E[Zt],Ue=se-E[on],ye=[Zo,Qo].indexOf(_)!==-1,je=(mt=K==null?void 0:K[O])!=null?mt:0,vt=ye?He:se-I[Ie]-N[Ie]-je+B.altAxis,Mt=ye?se+I[Ie]+N[Ie]-je-B.altAxis:Ue,Me=y&&ye?l1e(vt,se,Mt):W1(y?vt:He,se,y?Mt:Ue);D[O]=Me,ne[O]=Me-se}t.modifiersData[r]=ne}}const F1e={name:"preventOverflow",enabled:!0,phase:"main",fn:$1e,requiresIfExists:["offset"]};function B1e(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function z1e(e){return e===hs(e)||!is(e)?R8(e):B1e(e)}function H1e(e){var t=e.getBoundingClientRect(),n=Km(t.width)/e.offsetWidth||1,r=Km(t.height)/e.offsetHeight||1;return n!==1||r!==1}function W1e(e,t,n){n===void 0&&(n=!1);var r=is(t),i=is(t)&&H1e(t),o=lf(t),a=Ym(e,i,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((nu(t)!=="body"||D8(o))&&(s=z1e(t)),is(t)?(l=Ym(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=I8(o))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function U1e(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function V1e(e){var t=U1e(e);return n1e.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function G1e(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function q1e(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var fO={placement:"bottom",modifiers:[],strategy:"absolute"};function hO(){for(var e=arguments.length,t=new Array(e),n=0;n{}),T=S.useCallback(()=>{var B;!t||!b.current||!w.current||((B=k.current)==null||B.call(k),E.current=X1e(b.current,w.current,{placement:_,modifiers:[zve,$ve,Nve,{...jve,enabled:!!m},{name:"eventListeners",...Dve(a)},{name:"arrow",options:{padding:o}},{name:"offset",options:{offset:s??[0,l]}},{name:"flip",enabled:!!u,options:{padding:8}},{name:"preventOverflow",enabled:!!h,options:{boundary:d}},...n??[]],strategy:i}),E.current.forceUpdate(),k.current=E.current.destroy)},[_,t,n,m,a,o,s,l,u,h,d,i]);S.useEffect(()=>()=>{var B;!b.current&&!w.current&&((B=E.current)==null||B.destroy(),E.current=null)},[]);const L=S.useCallback(B=>{b.current=B,T()},[T]),O=S.useCallback((B={},K=null)=>({...B,ref:Rn(L,K)}),[L]),D=S.useCallback(B=>{w.current=B,T()},[T]),I=S.useCallback((B={},K=null)=>({...B,ref:Rn(D,K),style:{...B.style,position:i,minWidth:m?void 0:"max-content",inset:"0 auto auto 0"}}),[i,D,m]),N=S.useCallback((B={},K=null)=>{const{size:ne,shadowColor:z,bg:$,style:V,...X}=B;return{...X,ref:K,"data-popper-arrow":"",style:Z1e(B)}},[]),W=S.useCallback((B={},K=null)=>({...B,ref:K,"data-popper-arrow-inner":""}),[]);return{update(){var B;(B=E.current)==null||B.update()},forceUpdate(){var B;(B=E.current)==null||B.forceUpdate()},transformOrigin:ii.transformOrigin.varRef,referenceRef:L,popperRef:D,getPopperProps:I,getArrowProps:N,getArrowInnerProps:W,getReferenceProps:O}}function Z1e(e){const{size:t,shadowColor:n,bg:r,style:i}=e,o={...i,position:"absolute"};return t&&(o["--popper-arrow-size"]=t),n&&(o["--popper-arrow-shadow-color"]=n),r&&(o["--popper-arrow-bg"]=r),o}function N8(e={}){const{onClose:t,onOpen:n,isOpen:r,id:i}=e,o=Qr(n),a=Qr(t),[s,l]=S.useState(e.defaultIsOpen||!1),u=r!==void 0?r:s,d=r!==void 0,h=S.useId(),m=i??`disclosure-${h}`,y=S.useCallback(()=>{d||l(!1),a==null||a()},[d,a]),b=S.useCallback(()=>{d||l(!0),o==null||o()},[d,o]),w=S.useCallback(()=>{u?y():b()},[u,b,y]);function E(k={}){return{...k,"aria-expanded":u,"aria-controls":m,onClick(T){var L;(L=k.onClick)==null||L.call(k,T),w()}}}function _(k={}){return{...k,hidden:!u,id:m}}return{isOpen:u,onOpen:b,onClose:y,onToggle:w,isControlled:d,getButtonProps:E,getDisclosureProps:_}}function Q1e(e){const{ref:t,handler:n,enabled:r=!0}=e,i=Qr(n),a=S.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;S.useEffect(()=>{if(!r)return;const s=h=>{pC(h,t)&&(a.isPointerDown=!0)},l=h=>{if(a.ignoreEmulatedMouseEvents){a.ignoreEmulatedMouseEvents=!1;return}a.isPointerDown&&n&&pC(h,t)&&(a.isPointerDown=!1,i(h))},u=h=>{a.ignoreEmulatedMouseEvents=!0,n&&a.isPointerDown&&pC(h,t)&&(a.isPointerDown=!1,i(h))},d=yH(t.current);return d.addEventListener("mousedown",s,!0),d.addEventListener("mouseup",l,!0),d.addEventListener("touchstart",s,!0),d.addEventListener("touchend",u,!0),()=>{d.removeEventListener("mousedown",s,!0),d.removeEventListener("mouseup",l,!0),d.removeEventListener("touchstart",s,!0),d.removeEventListener("touchend",u,!0)}},[n,t,i,a,r])}function pC(e,t){var n;const r=e.target;return e.button>0||r&&!yH(r).contains(r)?!1:!((n=t.current)!=null&&n.contains(r))}function yH(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function bH(e){const{isOpen:t,ref:n}=e,[r,i]=S.useState(t),[o,a]=S.useState(!1);return S.useEffect(()=>{o||(i(t),a(!0))},[t,o,r]),Dh(()=>n.current,"animationend",()=>{i(t)}),{present:!(t?!1:!r),onComplete(){var l;const u=ive(n.current),d=new u.CustomEvent("animationend",{bubbles:!0});(l=n.current)==null||l.dispatchEvent(d)}}}function $8(e){const{wasSelected:t,enabled:n,isSelected:r,mode:i="unmount"}=e;return!!(!n||r||i==="keepMounted"&&t)}var[J1e,eye,tye,nye]=a8(),[rye,d2]=Pn({strict:!1,name:"MenuContext"});function iye(e,...t){const n=S.useId(),r=e||n;return S.useMemo(()=>t.map(i=>`${i}-${r}`),[r,t])}function xH(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function pO(e){return xH(e).activeElement===e}function oye(e={}){const{id:t,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:i,autoSelect:o=!0,isLazy:a,isOpen:s,defaultIsOpen:l,onClose:u,onOpen:d,placement:h="bottom-start",lazyBehavior:m="unmount",direction:y,computePositionOnMount:b=!1,...w}=e,E=S.useRef(null),_=S.useRef(null),k=tye(),T=S.useCallback(()=>{requestAnimationFrame(()=>{var we;(we=E.current)==null||we.focus({preventScroll:!1})})},[]),L=S.useCallback(()=>{const we=setTimeout(()=>{var xe;if(i)(xe=i.current)==null||xe.focus();else{const Le=k.firstEnabled();Le&&z(Le.index)}});G.current.add(we)},[k,i]),O=S.useCallback(()=>{const we=setTimeout(()=>{const xe=k.lastEnabled();xe&&z(xe.index)});G.current.add(we)},[k]),D=S.useCallback(()=>{d==null||d(),o?L():T()},[o,L,T,d]),{isOpen:I,onOpen:N,onClose:W,onToggle:B}=N8({isOpen:s,defaultIsOpen:l,onClose:u,onOpen:D});Q1e({enabled:I&&r,ref:E,handler:we=>{var xe;(xe=_.current)!=null&&xe.contains(we.target)||W()}});const K=j8({...w,enabled:I||b,placement:h,direction:y}),[ne,z]=S.useState(-1);rc(()=>{I||z(-1)},[I]),lH(E,{focusRef:_,visible:I,shouldFocus:!0});const $=bH({isOpen:I,ref:E}),[V,X]=iye(t,"menu-button","menu-list"),Q=S.useCallback(()=>{N(),T()},[N,T]),G=S.useRef(new Set([]));fye(()=>{G.current.forEach(we=>clearTimeout(we)),G.current.clear()});const Y=S.useCallback(()=>{N(),L()},[L,N]),ee=S.useCallback(()=>{N(),O()},[N,O]),fe=S.useCallback(()=>{var we,xe;const Le=xH(E.current),Se=(we=E.current)==null?void 0:we.contains(Le.activeElement);if(!(I&&!Se))return;const Xe=(xe=k.item(ne))==null?void 0:xe.node;Xe==null||Xe.focus()},[I,ne,k]),Ce=S.useRef(null);return{openAndFocusMenu:Q,openAndFocusFirstItem:Y,openAndFocusLastItem:ee,onTransitionEnd:fe,unstable__animationState:$,descendants:k,popper:K,buttonId:V,menuId:X,forceUpdate:K.forceUpdate,orientation:"vertical",isOpen:I,onToggle:B,onOpen:N,onClose:W,menuRef:E,buttonRef:_,focusedIndex:ne,closeOnSelect:n,closeOnBlur:r,autoSelect:o,setFocusedIndex:z,isLazy:a,lazyBehavior:m,initialFocusRef:i,rafId:Ce}}function aye(e={},t=null){const n=d2(),{onToggle:r,popper:i,openAndFocusFirstItem:o,openAndFocusLastItem:a}=n,s=S.useCallback(l=>{const u=l.key,h={Enter:o,ArrowDown:o,ArrowUp:a}[u];h&&(l.preventDefault(),l.stopPropagation(),h(l))},[o,a]);return{...e,ref:Rn(n.buttonRef,t,i.referenceRef),id:n.buttonId,"data-active":Bt(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:ht(e.onClick,r),onKeyDown:ht(e.onKeyDown,s)}}function Q_(e){var t;return cye(e)&&!!((t=e==null?void 0:e.getAttribute("role"))!=null&&t.startsWith("menuitem"))}function sye(e={},t=null){const n=d2();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within ");const{focusedIndex:r,setFocusedIndex:i,menuRef:o,isOpen:a,onClose:s,menuId:l,isLazy:u,lazyBehavior:d,unstable__animationState:h}=n,m=eye(),y=kve({preventDefault:_=>_.key!==" "&&Q_(_.target)}),b=S.useCallback(_=>{const k=_.key,L={Tab:D=>D.preventDefault(),Escape:s,ArrowDown:()=>{const D=m.nextEnabled(r);D&&i(D.index)},ArrowUp:()=>{const D=m.prevEnabled(r);D&&i(D.index)}}[k];if(L){_.preventDefault(),L(_);return}const O=y(D=>{const I=Eve(m.values(),D,N=>{var W,B;return(B=(W=N==null?void 0:N.node)==null?void 0:W.textContent)!=null?B:""},m.item(r));if(I){const N=m.indexOf(I.node);i(N)}});Q_(_.target)&&O(_)},[m,r,y,s,i]),w=S.useRef(!1);a&&(w.current=!0);const E=$8({wasSelected:w.current,enabled:u,mode:d,isSelected:h.present});return{...e,ref:Rn(o,t),children:E?e.children:null,tabIndex:-1,role:"menu",id:l,style:{...e.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:ht(e.onKeyDown,b)}}function lye(e={}){const{popper:t,isOpen:n}=d2();return t.getPopperProps({...e,style:{visibility:n?"visible":"hidden",...e.style}})}function uye(e={},t=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onClick:o,onFocus:a,isDisabled:s,isFocusable:l,closeOnSelect:u,type:d,...h}=e,m=d2(),{setFocusedIndex:y,focusedIndex:b,closeOnSelect:w,onClose:E,menuRef:_,isOpen:k,menuId:T,rafId:L}=m,O=S.useRef(null),D=`${T}-menuitem-${S.useId()}`,{index:I,register:N}=nye({disabled:s&&!l}),W=S.useCallback(Q=>{n==null||n(Q),!s&&y(I)},[y,I,s,n]),B=S.useCallback(Q=>{r==null||r(Q),O.current&&!pO(O.current)&&W(Q)},[W,r]),K=S.useCallback(Q=>{i==null||i(Q),!s&&y(-1)},[y,s,i]),ne=S.useCallback(Q=>{o==null||o(Q),Q_(Q.currentTarget)&&(u??w)&&E()},[E,o,w,u]),z=S.useCallback(Q=>{a==null||a(Q),y(I)},[y,a,I]),$=I===b,V=s&&!l;rc(()=>{k&&($&&!V&&O.current?(L.current&&cancelAnimationFrame(L.current),L.current=requestAnimationFrame(()=>{var Q;(Q=O.current)==null||Q.focus(),L.current=null})):_.current&&!pO(_.current)&&_.current.focus())},[$,V,_,k]);const X=sH({onClick:ne,onFocus:z,onMouseEnter:W,onMouseMove:B,onMouseLeave:K,ref:Rn(N,O,t),isDisabled:s,isFocusable:l});return{...h,...X,type:d??X.type,id:D,role:"menuitem",tabIndex:$?0:-1}}function cye(e){var t;if(!dye(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function dye(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function fye(e,t=[]){return S.useEffect(()=>()=>e(),t)}var[hye,Fw]=Pn({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),SH=e=>{const{children:t}=e,n=Yi("Menu",e),r=fr(e),{direction:i}=Zy(),{descendants:o,...a}=oye({...r,direction:i}),s=S.useMemo(()=>a,[a]),{isOpen:l,onClose:u,forceUpdate:d}=s;return g.jsx(J1e,{value:o,children:g.jsx(rye,{value:s,children:g.jsx(hye,{value:n,children:ts(t,{isOpen:l,onClose:u,forceUpdate:d})})})})};SH.displayName="Menu";var wH=Ze((e,t)=>{const n=Fw();return g.jsx(Ne.span,{ref:t,...e,__css:n.command,className:"chakra-menu__command"})});wH.displayName="MenuCommand";var pye=Ze((e,t)=>{const{type:n,...r}=e,i=Fw(),o=r.as||n?n??void 0:"button",a=S.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...i.item}),[i.item]);return g.jsx(Ne.button,{ref:t,type:o,...r,__css:a})}),CH=e=>{const{className:t,children:n,...r}=e,i=S.Children.only(n),o=S.isValidElement(i)?S.cloneElement(i,{focusable:"false","aria-hidden":!0,className:xt("chakra-menu__icon",i.props.className)}):null,a=xt("chakra-menu__icon-wrapper",t);return g.jsx(Ne.span,{className:a,...r,__css:{flexShrink:0},children:o})};CH.displayName="MenuIcon";var _H=Ze((e,t)=>{const{icon:n,iconSpacing:r="0.75rem",command:i,commandSpacing:o="0.75rem",children:a,...s}=e,l=uye(s,t),d=n||i?g.jsx("span",{style:{pointerEvents:"none",flex:1},children:a}):a;return g.jsxs(pye,{...l,className:xt("chakra-menu__menuitem",l.className),children:[n&&g.jsx(CH,{fontSize:"0.8em",marginEnd:r,children:n}),d,i&&g.jsx(wH,{marginStart:o,children:i})]})});_H.displayName="MenuItem";var gye={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},mye=Ne(su.div),kH=Ze(function(t,n){var r,i;const{rootProps:o,motionProps:a,...s}=t,{isOpen:l,onTransitionEnd:u,unstable__animationState:d}=d2(),h=sye(s,n),m=lye(o),y=Fw();return g.jsx(Ne.div,{...m,__css:{zIndex:(i=t.zIndex)!=null?i:(r=y.list)==null?void 0:r.zIndex},children:g.jsx(mye,{variants:gye,initial:!1,animate:l?"enter":"exit",__css:{outline:0,...y.list},...a,className:xt("chakra-menu__menu-list",h.className),...h,onUpdate:u,onAnimationComplete:Sw(d.onComplete,h.onAnimationComplete)})})});kH.displayName="MenuList";var vye=Ze((e,t)=>{const n=Fw();return g.jsx(Ne.button,{ref:t,...e,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...n.button}})}),EH=Ze((e,t)=>{const{children:n,as:r,...i}=e,o=aye(i,t),a=r||vye;return g.jsx(a,{...o,className:xt("chakra-menu__menu-button",e.className),children:g.jsx(Ne.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:e.children})})});EH.displayName="MenuButton";var yye={slideInBottom:{...B_,custom:{offsetY:16,reverse:!0}},slideInRight:{...B_,custom:{offsetX:16,reverse:!0}},scale:{...az,custom:{initialScale:.95,reverse:!0}},none:{}},bye=Ne(su.section),xye=e=>yye[e||"none"],PH=S.forwardRef((e,t)=>{const{preset:n,motionProps:r=xye(n),...i}=e;return g.jsx(bye,{ref:t,...r,...i})});PH.displayName="ModalTransition";var Sye=Object.defineProperty,wye=(e,t,n)=>t in e?Sye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cye=(e,t,n)=>(wye(e,typeof t!="symbol"?t+"":t,n),n),_ye=class{constructor(){Cye(this,"modals"),this.modals=new Map}add(e){return this.modals.set(e,this.modals.size+1),this.modals.size}remove(e){this.modals.delete(e)}isTopModal(e){return e?this.modals.get(e)===this.modals.size:!1}},J_=new _ye;function TH(e,t){const[n,r]=S.useState(0);return S.useEffect(()=>{const i=e.current;if(i){if(t){const o=J_.add(i);r(o)}return()=>{J_.remove(i),r(0)}}},[t,e]),n}var kye=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},wg=new WeakMap,Gb=new WeakMap,qb={},gC=0,MH=function(e){return e&&(e.host||MH(e.parentNode))},Eye=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=MH(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return Boolean(n)})},Pye=function(e,t,n,r){var i=Eye(t,Array.isArray(e)?e:[e]);qb[n]||(qb[n]=new WeakMap);var o=qb[n],a=[],s=new Set,l=new Set(i),u=function(h){!h||s.has(h)||(s.add(h),u(h.parentNode))};i.forEach(u);var d=function(h){!h||l.has(h)||Array.prototype.forEach.call(h.children,function(m){if(s.has(m))d(m);else{var y=m.getAttribute(r),b=y!==null&&y!=="false",w=(wg.get(m)||0)+1,E=(o.get(m)||0)+1;wg.set(m,w),o.set(m,E),a.push(m),w===1&&b&&Gb.set(m,!0),E===1&&m.setAttribute(n,"true"),b||m.setAttribute(r,"true")}})};return d(t),s.clear(),gC++,function(){a.forEach(function(h){var m=wg.get(h)-1,y=o.get(h)-1;wg.set(h,m),o.set(h,y),m||(Gb.has(h)||h.removeAttribute(r),Gb.delete(h)),y||h.removeAttribute(n)}),gC--,gC||(wg=new WeakMap,wg=new WeakMap,Gb=new WeakMap,qb={})}},LH=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=t||kye(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live]"))),Pye(r,i,n,"aria-hidden")):function(){return null}};function Tye(e){const{isOpen:t,onClose:n,id:r,closeOnOverlayClick:i=!0,closeOnEsc:o=!0,useInert:a=!0,onOverlayClick:s,onEsc:l}=e,u=S.useRef(null),d=S.useRef(null),[h,m,y]=Lye(r,"chakra-modal","chakra-modal--header","chakra-modal--body");Mye(u,t&&a),TH(u,t);const b=S.useRef(null),w=S.useCallback(N=>{b.current=N.target},[]),E=S.useCallback(N=>{N.key==="Escape"&&(N.stopPropagation(),o&&(n==null||n()),l==null||l())},[o,n,l]),[_,k]=S.useState(!1),[T,L]=S.useState(!1),O=S.useCallback((N={},W=null)=>({role:"dialog",...N,ref:Rn(W,u),id:h,tabIndex:-1,"aria-modal":!0,"aria-labelledby":_?m:void 0,"aria-describedby":T?y:void 0,onClick:ht(N.onClick,B=>B.stopPropagation())}),[y,T,h,m,_]),D=S.useCallback(N=>{N.stopPropagation(),b.current===N.target&&J_.isTopModal(u.current)&&(i&&(n==null||n()),s==null||s())},[n,i,s]),I=S.useCallback((N={},W=null)=>({...N,ref:Rn(W,d),onClick:ht(N.onClick,D),onKeyDown:ht(N.onKeyDown,E),onMouseDown:ht(N.onMouseDown,w)}),[E,w,D]);return{isOpen:t,onClose:n,headerId:m,bodyId:y,setBodyMounted:L,setHeaderMounted:k,dialogRef:u,overlayRef:d,getDialogProps:O,getDialogContainerProps:I}}function Mye(e,t){const n=e.current;S.useEffect(()=>{if(!(!e.current||!t))return LH(e.current)},[t,e,n])}function Lye(e,...t){const n=S.useId(),r=e||n;return S.useMemo(()=>t.map(i=>`${i}-${r}`),[r,t])}var[Aye,g0]=Pn({name:"ModalStylesContext",errorMessage:`useModalStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Oye,Yh]=Pn({strict:!0,name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap modal components in ``"}),Yd=e=>{const t={scrollBehavior:"outside",autoFocus:!0,trapFocus:!0,returnFocusOnClose:!0,blockScrollOnMount:!0,allowPinchZoom:!1,motionPreset:"scale",lockFocusAcrossFrames:!0,...e},{portalProps:n,children:r,autoFocus:i,trapFocus:o,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:d,preserveScrollBarGap:h,motionPreset:m,lockFocusAcrossFrames:y,onCloseComplete:b}=t,w=Yi("Modal",t),_={...Tye(t),autoFocus:i,trapFocus:o,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:d,preserveScrollBarGap:h,motionPreset:m,lockFocusAcrossFrames:y};return g.jsx(Oye,{value:_,children:g.jsx(Aye,{value:w,children:g.jsx(rp,{onExitComplete:b,children:_.isOpen&&g.jsx(c0,{...n,children:r})})})})};Yd.displayName="Modal";var eS="right-scroll-bar-position",tS="width-before-scroll-bar",Rye="with-scroll-bars-hidden",Iye="--removed-body-scroll-bar-size",AH=xz(),mC=function(){},Bw=S.forwardRef(function(e,t){var n=S.useRef(null),r=S.useState({onScrollCapture:mC,onWheelCapture:mC,onTouchMoveCapture:mC}),i=r[0],o=r[1],a=e.forwardProps,s=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,h=e.shards,m=e.sideCar,y=e.noIsolation,b=e.inert,w=e.allowPinchZoom,E=e.as,_=E===void 0?"div":E,k=YB(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),T=m,L=vz([n,t]),O=Nl(Nl({},k),i);return S.createElement(S.Fragment,null,d&&S.createElement(T,{sideCar:AH,removeScrollBar:u,shards:h,noIsolation:y,inert:b,setCallbacks:o,allowPinchZoom:!!w,lockRef:n}),a?S.cloneElement(S.Children.only(s),Nl(Nl({},O),{ref:L})):S.createElement(_,Nl({},O,{className:l,ref:L}),s))});Bw.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Bw.classNames={fullWidth:tS,zeroRight:eS};var gO,Dye=function(){if(gO)return gO;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function jye(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Dye();return t&&e.setAttribute("nonce",t),e}function Nye(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function $ye(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Fye=function(){var e=0,t=null;return{add:function(n){e==0&&(t=jye())&&(Nye(t,n),$ye(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Bye=function(){var e=Fye();return function(t,n){S.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},OH=function(){var e=Bye(),t=function(n){var r=n.styles,i=n.dynamic;return e(r,i),null};return t},zye={left:0,top:0,right:0,gap:0},vC=function(e){return parseInt(e||"",10)||0},Hye=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[vC(n),vC(r),vC(i)]},Wye=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return zye;var t=Hye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Uye=OH(),Vye=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Rye,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(s,"px ").concat(r,`; - } - body { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(eS,` { - right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(tS,` { - margin-right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(eS," .").concat(eS,` { - right: 0 `).concat(r,`; - } - - .`).concat(tS," .").concat(tS,` { - margin-right: 0 `).concat(r,`; - } - - body { - `).concat(Iye,": ").concat(s,`px; - } -`)},Gye=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r,o=S.useMemo(function(){return Wye(i)},[i]);return S.createElement(Uye,{styles:Vye(o,!t,i,n?"":"!important")})},ek=!1;if(typeof window<"u")try{var Kb=Object.defineProperty({},"passive",{get:function(){return ek=!0,!0}});window.addEventListener("test",Kb,Kb),window.removeEventListener("test",Kb,Kb)}catch{ek=!1}var Cg=ek?{passive:!1}:!1,qye=function(e){return e.tagName==="TEXTAREA"},RH=function(e,t){var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!qye(e)&&n[t]==="visible")},Kye=function(e){return RH(e,"overflowY")},Yye=function(e){return RH(e,"overflowX")},mO=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=IH(e,n);if(r){var i=DH(e,n),o=i[1],a=i[2];if(o>a)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},Xye=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Zye=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},IH=function(e,t){return e==="v"?Kye(t):Yye(t)},DH=function(e,t){return e==="v"?Xye(t):Zye(t)},Qye=function(e,t){return e==="h"&&t==="rtl"?-1:1},Jye=function(e,t,n,r,i){var o=Qye(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),u=!1,d=a>0,h=0,m=0;do{var y=DH(e,s),b=y[0],w=y[1],E=y[2],_=w-E-o*b;(b||_)&&IH(e,s)&&(h+=_,m+=b),s=s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&(i&&h===0||!i&&a>h)||!d&&(i&&m===0||!i&&-a>m))&&(u=!0),u},Yb=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},vO=function(e){return[e.deltaX,e.deltaY]},yO=function(e){return e&&"current"in e?e.current:e},e2e=function(e,t){return e[0]===t[0]&&e[1]===t[1]},t2e=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},n2e=0,_g=[];function r2e(e){var t=S.useRef([]),n=S.useRef([0,0]),r=S.useRef(),i=S.useState(n2e++)[0],o=S.useState(function(){return OH()})[0],a=S.useRef(e);S.useEffect(function(){a.current=e},[e]),S.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var w=$_([e.lockRef.current],(e.shards||[]).map(yO),!0).filter(Boolean);return w.forEach(function(E){return E.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),w.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=S.useCallback(function(w,E){if("touches"in w&&w.touches.length===2)return!a.current.allowPinchZoom;var _=Yb(w),k=n.current,T="deltaX"in w?w.deltaX:k[0]-_[0],L="deltaY"in w?w.deltaY:k[1]-_[1],O,D=w.target,I=Math.abs(T)>Math.abs(L)?"h":"v";if("touches"in w&&I==="h"&&D.type==="range")return!1;var N=mO(I,D);if(!N)return!0;if(N?O=I:(O=I==="v"?"h":"v",N=mO(I,D)),!N)return!1;if(!r.current&&"changedTouches"in w&&(T||L)&&(r.current=O),!O)return!0;var W=r.current||O;return Jye(W,E,w,W==="h"?T:L,!0)},[]),l=S.useCallback(function(w){var E=w;if(!(!_g.length||_g[_g.length-1]!==o)){var _="deltaY"in E?vO(E):Yb(E),k=t.current.filter(function(O){return O.name===E.type&&O.target===E.target&&e2e(O.delta,_)})[0];if(k&&k.should){E.cancelable&&E.preventDefault();return}if(!k){var T=(a.current.shards||[]).map(yO).filter(Boolean).filter(function(O){return O.contains(E.target)}),L=T.length>0?s(E,T[0]):!a.current.noIsolation;L&&E.cancelable&&E.preventDefault()}}},[]),u=S.useCallback(function(w,E,_,k){var T={name:w,delta:E,target:_,should:k};t.current.push(T),setTimeout(function(){t.current=t.current.filter(function(L){return L!==T})},1)},[]),d=S.useCallback(function(w){n.current=Yb(w),r.current=void 0},[]),h=S.useCallback(function(w){u(w.type,vO(w),w.target,s(w,e.lockRef.current))},[]),m=S.useCallback(function(w){u(w.type,Yb(w),w.target,s(w,e.lockRef.current))},[]);S.useEffect(function(){return _g.push(o),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:m}),document.addEventListener("wheel",l,Cg),document.addEventListener("touchmove",l,Cg),document.addEventListener("touchstart",d,Cg),function(){_g=_g.filter(function(w){return w!==o}),document.removeEventListener("wheel",l,Cg),document.removeEventListener("touchmove",l,Cg),document.removeEventListener("touchstart",d,Cg)}},[]);var y=e.removeScrollBar,b=e.inert;return S.createElement(S.Fragment,null,b?S.createElement(o,{styles:t2e(i)}):null,y?S.createElement(Gye,{gapMode:"margin"}):null)}const i2e=s0e(AH,r2e);var jH=S.forwardRef(function(e,t){return S.createElement(Bw,Nl({},e,{ref:t,sideCar:i2e}))});jH.classNames=Bw.classNames;const NH=jH;function o2e(e){const{autoFocus:t,trapFocus:n,dialogRef:r,initialFocusRef:i,blockScrollOnMount:o,allowPinchZoom:a,finalFocusRef:s,returnFocusOnClose:l,preserveScrollBarGap:u,lockFocusAcrossFrames:d,isOpen:h}=Yh(),[m,y]=RB();S.useEffect(()=>{!m&&y&&setTimeout(y)},[m,y]);const b=TH(r,h);return g.jsx(Jz,{autoFocus:t,isDisabled:!n,initialFocusRef:i,finalFocusRef:s,restoreFocus:l,contentRef:r,lockFocusAcrossFrames:d,children:g.jsx(NH,{removeScrollBar:!u,allowPinchZoom:a,enabled:b===1&&o,forwardProps:!0,children:e.children})})}var Xd=Ze((e,t)=>{const{className:n,children:r,containerProps:i,motionProps:o,...a}=e,{getDialogProps:s,getDialogContainerProps:l}=Yh(),u=s(a,t),d=l(i),h=xt("chakra-modal__content",n),m=g0(),y={display:"flex",flexDirection:"column",position:"relative",width:"100%",outline:0,...m.dialog},b={display:"flex",width:"100vw",height:"$100vh",position:"fixed",left:0,top:0,...m.dialogContainer},{motionPreset:w}=Yh();return g.jsx(o2e,{children:g.jsx(Ne.div,{...d,className:"chakra-modal__content-container",tabIndex:-1,__css:b,children:g.jsx(PH,{preset:w,motionProps:o,className:h,...u,__css:y,children:r})})})});Xd.displayName="ModalContent";function $H(e){const{leastDestructiveRef:t,...n}=e;return g.jsx(Yd,{...n,initialFocusRef:t})}var FH=Ze((e,t)=>g.jsx(Xd,{ref:t,role:"alertdialog",...e})),zw=Ze((e,t)=>{const{className:n,...r}=e,i=xt("chakra-modal__footer",n),a={display:"flex",alignItems:"center",justifyContent:"flex-end",...g0().footer};return g.jsx(Ne.footer,{ref:t,...r,__css:a,className:i})});zw.displayName="ModalFooter";var op=Ze((e,t)=>{const{className:n,...r}=e,{headerId:i,setHeaderMounted:o}=Yh();S.useEffect(()=>(o(!0),()=>o(!1)),[o]);const a=xt("chakra-modal__header",n),l={flex:0,...g0().header};return g.jsx(Ne.header,{ref:t,className:a,id:i,...r,__css:l})});op.displayName="ModalHeader";var a2e=Ne(su.div),oc=Ze((e,t)=>{const{className:n,transition:r,motionProps:i,...o}=e,a=xt("chakra-modal__overlay",n),l={pos:"fixed",left:"0",top:"0",w:"100vw",h:"100vh",...g0().overlay},{motionPreset:u}=Yh(),h=i||(u==="none"?{}:oz);return g.jsx(a2e,{...h,__css:l,ref:t,className:a,...o})});oc.displayName="ModalOverlay";var Zm=Ze((e,t)=>{const{className:n,...r}=e,{bodyId:i,setBodyMounted:o}=Yh();S.useEffect(()=>(o(!0),()=>o(!1)),[o]);const a=xt("chakra-modal__body",n),s=g0();return g.jsx(Ne.div,{ref:t,className:a,id:i,...r,__css:s.body})});Zm.displayName="ModalBody";var m0=Ze((e,t)=>{const{onClick:n,className:r,...i}=e,{onClose:o}=Yh(),a=xt("chakra-modal__close-btn",r),s=g0();return g.jsx(o8,{ref:t,__css:s.closeButton,className:a,onClick:ht(n,l=>{l.stopPropagation(),o()}),...i})});m0.displayName="ModalCloseButton";var s2e=e=>g.jsx(ja,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z"})}),l2e=e=>g.jsx(ja,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z"})});function bO(e,t,n,r){S.useEffect(()=>{var i;if(!e.current||!r)return;const o=(i=e.current.ownerDocument.defaultView)!=null?i:window,a=Array.isArray(t)?t:[t],s=new o.MutationObserver(l=>{for(const u of l)u.type==="attributes"&&u.attributeName&&a.includes(u.attributeName)&&n(u)});return s.observe(e.current,{attributes:!0,attributeFilter:a}),()=>s.disconnect()})}function u2e(e,t){const n=Qr(e);S.useEffect(()=>{let r=null;const i=()=>n();return t!==null&&(r=window.setInterval(i,t)),()=>{r&&window.clearInterval(r)}},[t,n])}var c2e=50,xO=300;function d2e(e,t){const[n,r]=S.useState(!1),[i,o]=S.useState(null),[a,s]=S.useState(!0),l=S.useRef(null),u=()=>clearTimeout(l.current);u2e(()=>{i==="increment"&&e(),i==="decrement"&&t()},n?c2e:null);const d=S.useCallback(()=>{a&&e(),l.current=setTimeout(()=>{s(!1),r(!0),o("increment")},xO)},[e,a]),h=S.useCallback(()=>{a&&t(),l.current=setTimeout(()=>{s(!1),r(!0),o("decrement")},xO)},[t,a]),m=S.useCallback(()=>{s(!0),r(!1),u()},[]);return S.useEffect(()=>()=>u(),[]),{up:d,down:h,stop:m,isSpinning:n}}var f2e=/^[Ee0-9+\-.]$/;function h2e(e){return f2e.test(e)}function p2e(e,t){if(e.key==null)return!0;const n=e.ctrlKey||e.altKey||e.metaKey;return!(e.key.length===1)||n?!0:t(e.key)}function g2e(e={}){const{focusInputOnChange:t=!0,clampValueOnBlur:n=!0,keepWithinRange:r=!0,min:i=Number.MIN_SAFE_INTEGER,max:o=Number.MAX_SAFE_INTEGER,step:a=1,isReadOnly:s,isDisabled:l,isRequired:u,isInvalid:d,pattern:h="[0-9]*(.[0-9]+)?",inputMode:m="decimal",allowMouseWheel:y,id:b,onChange:w,precision:E,name:_,"aria-describedby":k,"aria-label":T,"aria-labelledby":L,onFocus:O,onBlur:D,onInvalid:I,getAriaValueText:N,isValidCharacter:W,format:B,parse:K,...ne}=e,z=Qr(O),$=Qr(D),V=Qr(I),X=Qr(W??h2e),Q=Qr(N),G=Wme(e),{update:Y,increment:ee,decrement:fe}=G,[Ce,we]=S.useState(!1),xe=!(s||l),Le=S.useRef(null),Se=S.useRef(null),Qe=S.useRef(null),Xe=S.useRef(null),tt=S.useCallback(Me=>Me.split("").filter(X).join(""),[X]),yt=S.useCallback(Me=>{var Ct;return(Ct=K==null?void 0:K(Me))!=null?Ct:Me},[K]),Be=S.useCallback(Me=>{var Ct;return((Ct=B==null?void 0:B(Me))!=null?Ct:Me).toString()},[B]);rc(()=>{(G.valueAsNumber>o||G.valueAsNumber{if(!Le.current)return;if(Le.current.value!=G.value){const Ct=yt(Le.current.value);G.setValue(tt(Ct))}},[yt,tt]);const Ae=S.useCallback((Me=a)=>{xe&&ee(Me)},[ee,xe,a]),bt=S.useCallback((Me=a)=>{xe&&fe(Me)},[fe,xe,a]),Fe=d2e(Ae,bt);bO(Qe,"disabled",Fe.stop,Fe.isSpinning),bO(Xe,"disabled",Fe.stop,Fe.isSpinning);const at=S.useCallback(Me=>{if(Me.nativeEvent.isComposing)return;const zt=yt(Me.currentTarget.value);Y(tt(zt)),Se.current={start:Me.currentTarget.selectionStart,end:Me.currentTarget.selectionEnd}},[Y,tt,yt]),jt=S.useCallback(Me=>{var Ct,zt,$n;z==null||z(Me),Se.current&&(Me.target.selectionStart=(zt=Se.current.start)!=null?zt:(Ct=Me.currentTarget.value)==null?void 0:Ct.length,Me.currentTarget.selectionEnd=($n=Se.current.end)!=null?$n:Me.currentTarget.selectionStart)},[z]),mt=S.useCallback(Me=>{if(Me.nativeEvent.isComposing)return;p2e(Me,X)||Me.preventDefault();const Ct=Zt(Me)*a,zt=Me.key,qe={ArrowUp:()=>Ae(Ct),ArrowDown:()=>bt(Ct),Home:()=>Y(i),End:()=>Y(o)}[zt];qe&&(Me.preventDefault(),qe(Me))},[X,a,Ae,bt,Y,i,o]),Zt=Me=>{let Ct=1;return(Me.metaKey||Me.ctrlKey)&&(Ct=.1),Me.shiftKey&&(Ct=10),Ct},on=S.useMemo(()=>{const Me=Q==null?void 0:Q(G.value);if(Me!=null)return Me;const Ct=G.value.toString();return Ct||void 0},[G.value,Q]),se=S.useCallback(()=>{let Me=G.value;if(G.value==="")return;/^[eE]/.test(G.value.toString())?G.setValue(""):(G.valueAsNumbero&&(Me=o),G.cast(Me))},[G,o,i]),Ie=S.useCallback(()=>{we(!1),n&&se()},[n,we,se]),He=S.useCallback(()=>{t&&requestAnimationFrame(()=>{var Me;(Me=Le.current)==null||Me.focus()})},[t]),Ue=S.useCallback(Me=>{Me.preventDefault(),Fe.up(),He()},[He,Fe]),ye=S.useCallback(Me=>{Me.preventDefault(),Fe.down(),He()},[He,Fe]);Dh(()=>Le.current,"wheel",Me=>{var Ct,zt;const qe=((zt=(Ct=Le.current)==null?void 0:Ct.ownerDocument)!=null?zt:document).activeElement===Le.current;if(!y||!qe)return;Me.preventDefault();const pt=Zt(Me)*a,zr=Math.sign(Me.deltaY);zr===-1?Ae(pt):zr===1&&bt(pt)},{passive:!1});const je=S.useCallback((Me={},Ct=null)=>{const zt=l||r&&G.isAtMax;return{...Me,ref:Rn(Ct,Qe),role:"button",tabIndex:-1,onPointerDown:ht(Me.onPointerDown,$n=>{$n.button!==0||zt||Ue($n)}),onPointerLeave:ht(Me.onPointerLeave,Fe.stop),onPointerUp:ht(Me.onPointerUp,Fe.stop),disabled:zt,"aria-disabled":Uu(zt)}},[G.isAtMax,r,Ue,Fe.stop,l]),vt=S.useCallback((Me={},Ct=null)=>{const zt=l||r&&G.isAtMin;return{...Me,ref:Rn(Ct,Xe),role:"button",tabIndex:-1,onPointerDown:ht(Me.onPointerDown,$n=>{$n.button!==0||zt||ye($n)}),onPointerLeave:ht(Me.onPointerLeave,Fe.stop),onPointerUp:ht(Me.onPointerUp,Fe.stop),disabled:zt,"aria-disabled":Uu(zt)}},[G.isAtMin,r,ye,Fe.stop,l]),Mt=S.useCallback((Me={},Ct=null)=>{var zt,$n,qe,pt;return{name:_,inputMode:m,type:"text",pattern:h,"aria-labelledby":L,"aria-label":T,"aria-describedby":k,id:b,disabled:l,...Me,readOnly:(zt=Me.readOnly)!=null?zt:s,"aria-readonly":($n=Me.readOnly)!=null?$n:s,"aria-required":(qe=Me.required)!=null?qe:u,required:(pt=Me.required)!=null?pt:u,ref:Rn(Le,Ct),value:Be(G.value),role:"spinbutton","aria-valuemin":i,"aria-valuemax":o,"aria-valuenow":Number.isNaN(G.valueAsNumber)?void 0:G.valueAsNumber,"aria-invalid":Uu(d??G.isOutOfRange),"aria-valuetext":on,autoComplete:"off",autoCorrect:"off",onChange:ht(Me.onChange,at),onKeyDown:ht(Me.onKeyDown,mt),onFocus:ht(Me.onFocus,jt,()=>we(!0)),onBlur:ht(Me.onBlur,$,Ie)}},[_,m,h,L,T,Be,k,b,l,u,s,d,G.value,G.valueAsNumber,G.isOutOfRange,i,o,on,at,mt,jt,$,Ie]);return{value:Be(G.value),valueAsNumber:G.valueAsNumber,isFocused:Ce,isDisabled:l,isReadOnly:s,getIncrementButtonProps:je,getDecrementButtonProps:vt,getInputProps:Mt,htmlProps:ne}}var[m2e,Hw]=Pn({name:"NumberInputStylesContext",errorMessage:`useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[v2e,F8]=Pn({name:"NumberInputContext",errorMessage:"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within "}),B8=Ze(function(t,n){const r=Yi("NumberInput",t),i=fr(t),o=h8(i),{htmlProps:a,...s}=g2e(o),l=S.useMemo(()=>s,[s]);return g.jsx(v2e,{value:l,children:g.jsx(m2e,{value:r,children:g.jsx(Ne.div,{...a,ref:n,className:xt("chakra-numberinput",t.className),__css:{position:"relative",zIndex:0,...r.root}})})})});B8.displayName="NumberInput";var BH=Ze(function(t,n){const r=Hw();return g.jsx(Ne.div,{"aria-hidden":!0,ref:n,...t,__css:{display:"flex",flexDirection:"column",position:"absolute",top:"0",insetEnd:"0px",margin:"1px",height:"calc(100% - 2px)",zIndex:1,...r.stepperGroup}})});BH.displayName="NumberInputStepper";var z8=Ze(function(t,n){const{getInputProps:r}=F8(),i=r(t,n),o=Hw();return g.jsx(Ne.input,{...i,className:xt("chakra-numberinput__field",t.className),__css:{width:"100%",...o.field}})});z8.displayName="NumberInputField";var zH=Ne("div",{baseStyle:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,transitionProperty:"common",transitionDuration:"normal",userSelect:"none",cursor:"pointer",lineHeight:"normal"}}),H8=Ze(function(t,n){var r;const i=Hw(),{getDecrementButtonProps:o}=F8(),a=o(t,n);return g.jsx(zH,{...a,__css:i.stepper,children:(r=t.children)!=null?r:g.jsx(s2e,{})})});H8.displayName="NumberDecrementStepper";var W8=Ze(function(t,n){var r;const{getIncrementButtonProps:i}=F8(),o=i(t,n),a=Hw();return g.jsx(zH,{...o,__css:a.stepper,children:(r=t.children)!=null?r:g.jsx(l2e,{})})});W8.displayName="NumberIncrementStepper";var[y2e,Ww]=Pn({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[b2e,HH]=Pn({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function U8(e){const t=S.Children.only(e.children),{getTriggerProps:n}=Ww();return S.cloneElement(t,n(t.props,t.ref))}U8.displayName="PopoverTrigger";var kg={click:"click",hover:"hover"};function x2e(e={}){const{closeOnBlur:t=!0,closeOnEsc:n=!0,initialFocusRef:r,id:i,returnFocusOnClose:o=!0,autoFocus:a=!0,arrowSize:s,arrowShadowColor:l,trigger:u=kg.click,openDelay:d=200,closeDelay:h=200,isLazy:m,lazyBehavior:y="unmount",computePositionOnMount:b,...w}=e,{isOpen:E,onClose:_,onOpen:k,onToggle:T}=N8(e),L=S.useRef(null),O=S.useRef(null),D=S.useRef(null),I=S.useRef(!1),N=S.useRef(!1);E&&(N.current=!0);const[W,B]=S.useState(!1),[K,ne]=S.useState(!1),z=S.useId(),$=i??z,[V,X,Q,G]=["popover-trigger","popover-content","popover-header","popover-body"].map(at=>`${at}-${$}`),{referenceRef:Y,getArrowProps:ee,getPopperProps:fe,getArrowInnerProps:Ce,forceUpdate:we}=j8({...w,enabled:E||!!b}),xe=bH({isOpen:E,ref:D});Xme({enabled:E,ref:O}),lH(D,{focusRef:O,visible:E,shouldFocus:o&&u===kg.click}),Lve(D,{focusRef:r,visible:E,shouldFocus:a&&u===kg.click});const Le=$8({wasSelected:N.current,enabled:m,mode:y,isSelected:xe.present}),Se=S.useCallback((at={},jt=null)=>{const mt={...at,style:{...at.style,transformOrigin:ii.transformOrigin.varRef,[ii.arrowSize.var]:s?`${s}px`:void 0,[ii.arrowShadowColor.var]:l},ref:Rn(D,jt),children:Le?at.children:null,id:X,tabIndex:-1,role:"dialog",onKeyDown:ht(at.onKeyDown,Zt=>{n&&Zt.key==="Escape"&&_()}),onBlur:ht(at.onBlur,Zt=>{const on=SO(Zt),se=yC(D.current,on),Ie=yC(O.current,on);E&&t&&(!se&&!Ie)&&_()}),"aria-labelledby":W?Q:void 0,"aria-describedby":K?G:void 0};return u===kg.hover&&(mt.role="tooltip",mt.onMouseEnter=ht(at.onMouseEnter,()=>{I.current=!0}),mt.onMouseLeave=ht(at.onMouseLeave,Zt=>{Zt.nativeEvent.relatedTarget!==null&&(I.current=!1,setTimeout(()=>_(),h))})),mt},[Le,X,W,Q,K,G,u,n,_,E,t,h,l,s]),Qe=S.useCallback((at={},jt=null)=>fe({...at,style:{visibility:E?"visible":"hidden",...at.style}},jt),[E,fe]),Xe=S.useCallback((at,jt=null)=>({...at,ref:Rn(jt,L,Y)}),[L,Y]),tt=S.useRef(),yt=S.useRef(),Be=S.useCallback(at=>{L.current==null&&Y(at)},[Y]),Ae=S.useCallback((at={},jt=null)=>{const mt={...at,ref:Rn(O,jt,Be),id:V,"aria-haspopup":"dialog","aria-expanded":E,"aria-controls":X};return u===kg.click&&(mt.onClick=ht(at.onClick,T)),u===kg.hover&&(mt.onFocus=ht(at.onFocus,()=>{tt.current===void 0&&k()}),mt.onBlur=ht(at.onBlur,Zt=>{const on=SO(Zt),se=!yC(D.current,on);E&&t&&se&&_()}),mt.onKeyDown=ht(at.onKeyDown,Zt=>{Zt.key==="Escape"&&_()}),mt.onMouseEnter=ht(at.onMouseEnter,()=>{I.current=!0,tt.current=window.setTimeout(()=>k(),d)}),mt.onMouseLeave=ht(at.onMouseLeave,()=>{I.current=!1,tt.current&&(clearTimeout(tt.current),tt.current=void 0),yt.current=window.setTimeout(()=>{I.current===!1&&_()},h)})),mt},[V,E,X,u,Be,T,k,t,_,d,h]);S.useEffect(()=>()=>{tt.current&&clearTimeout(tt.current),yt.current&&clearTimeout(yt.current)},[]);const bt=S.useCallback((at={},jt=null)=>({...at,id:Q,ref:Rn(jt,mt=>{B(!!mt)})}),[Q]),Fe=S.useCallback((at={},jt=null)=>({...at,id:G,ref:Rn(jt,mt=>{ne(!!mt)})}),[G]);return{forceUpdate:we,isOpen:E,onAnimationComplete:xe.onComplete,onClose:_,getAnchorProps:Xe,getArrowProps:ee,getArrowInnerProps:Ce,getPopoverPositionerProps:Qe,getPopoverProps:Se,getTriggerProps:Ae,getHeaderProps:bt,getBodyProps:Fe}}function yC(e,t){return e===t||(e==null?void 0:e.contains(t))}function SO(e){var t;const n=e.currentTarget.ownerDocument.activeElement;return(t=e.relatedTarget)!=null?t:n}function V8(e){const t=Yi("Popover",e),{children:n,...r}=fr(e),i=Zy(),o=x2e({...r,direction:i.direction});return g.jsx(y2e,{value:o,children:g.jsx(b2e,{value:t,children:ts(n,{isOpen:o.isOpen,onClose:o.onClose,forceUpdate:o.forceUpdate})})})}V8.displayName="Popover";function G8(e){var t;const{bg:n,bgColor:r,backgroundColor:i,shadow:o,boxShadow:a}=e,{getArrowProps:s,getArrowInnerProps:l}=Ww(),u=HH(),d=(t=n??r)!=null?t:i,h=o??a;return g.jsx(Ne.div,{...s(),className:"chakra-popover__arrow-positioner",children:g.jsx(Ne.div,{className:xt("chakra-popover__arrow",e.className),...l(e),__css:{"--popper-arrow-bg":d?`colors.${d}, ${d}`:void 0,"--popper-arrow-shadow":h?`shadows.${h}, ${h}`:void 0,...u.arrow}})})}G8.displayName="PopoverArrow";function S2e(e){if(e)return{enter:{...e.enter,visibility:"visible"},exit:{...e.exit,transitionEnd:{visibility:"hidden"}}}}var w2e={exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}},C2e=Ne(su.section),WH=Ze(function(t,n){const{variants:r=w2e,...i}=t,{isOpen:o}=Ww();return g.jsx(C2e,{ref:n,variants:S2e(r),initial:!1,animate:o?"enter":"exit",...i})});WH.displayName="PopoverTransition";var q8=Ze(function(t,n){const{rootProps:r,motionProps:i,...o}=t,{getPopoverProps:a,getPopoverPositionerProps:s,onAnimationComplete:l}=Ww(),u=HH(),d={position:"relative",display:"flex",flexDirection:"column",...u.content};return g.jsx(Ne.div,{...s(r),__css:u.popper,className:"chakra-popover__popper",children:g.jsx(WH,{...i,...a(o,n),onAnimationComplete:Sw(l,o.onAnimationComplete),className:xt("chakra-popover__content",t.className),__css:d})})});q8.displayName="PopoverContent";function _2e(e,t,n){return(e-t)*100/(n-t)}nf({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});nf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var k2e=nf({"0%":{left:"-40%"},"100%":{left:"100%"}}),E2e=nf({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function P2e(e){const{value:t=0,min:n,max:r,valueText:i,getValueText:o,isIndeterminate:a,role:s="progressbar"}=e,l=_2e(t,n,r);return{bind:{"data-indeterminate":a?"":void 0,"aria-valuemax":r,"aria-valuemin":n,"aria-valuenow":a?void 0:t,"aria-valuetext":(()=>{if(t!=null)return typeof o=="function"?o(t,l):i})(),role:s},percent:l,value:t}}var[T2e,M2e]=Pn({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),L2e=Ze((e,t)=>{const{min:n,max:r,value:i,isIndeterminate:o,role:a,...s}=e,l=P2e({value:i,min:n,max:r,isIndeterminate:o,role:a}),d={height:"100%",...M2e().filledTrack};return g.jsx(Ne.div,{ref:t,style:{width:`${l.percent}%`,...s.style},...l.bind,...s,__css:d})}),UH=Ze((e,t)=>{var n;const{value:r,min:i=0,max:o=100,hasStripe:a,isAnimated:s,children:l,borderRadius:u,isIndeterminate:d,"aria-label":h,"aria-labelledby":m,"aria-valuetext":y,title:b,role:w,...E}=fr(e),_=Yi("Progress",e),k=u??((n=_.track)==null?void 0:n.borderRadius),T={animation:`${E2e} 1s linear infinite`},D={...!d&&a&&s&&T,...d&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${k2e} 1s ease infinite normal none running`}},I={overflow:"hidden",position:"relative",..._.track};return g.jsx(Ne.div,{ref:t,borderRadius:k,__css:I,...E,children:g.jsxs(T2e,{value:_,children:[g.jsx(L2e,{"aria-label":h,"aria-labelledby":m,"aria-valuetext":y,min:i,max:o,value:r,isIndeterminate:d,css:D,borderRadius:k,title:b,role:w}),l]})})});UH.displayName="Progress";function A2e(e){return e&&ko(e)&&ko(e.target)}function O2e(e={}){const{onChange:t,value:n,defaultValue:r,name:i,isDisabled:o,isFocusable:a,isNative:s,...l}=e,[u,d]=S.useState(r||""),h=typeof n<"u",m=h?n:u,y=S.useRef(null),b=S.useCallback(()=>{const O=y.current;if(!O)return;let D="input:not(:disabled):checked";const I=O.querySelector(D);if(I){I.focus();return}D="input:not(:disabled)";const N=O.querySelector(D);N==null||N.focus()},[]),E=`radio-${S.useId()}`,_=i||E,k=S.useCallback(O=>{const D=A2e(O)?O.target.value:O;h||d(D),t==null||t(String(D))},[t,h]),T=S.useCallback((O={},D=null)=>({...O,ref:Rn(D,y),role:"radiogroup"}),[]),L=S.useCallback((O={},D=null)=>({...O,ref:D,name:_,[s?"checked":"isChecked"]:m!=null?O.value===m:void 0,onChange(N){k(N)},"data-radiogroup":!0}),[s,_,k,m]);return{getRootProps:T,getRadioProps:L,name:_,ref:y,focus:b,setValue:d,value:m,onChange:k,isDisabled:o,isFocusable:a,htmlProps:l}}var[R2e,VH]=Pn({name:"RadioGroupContext",strict:!1}),Oy=Ze((e,t)=>{const{colorScheme:n,size:r,variant:i,children:o,className:a,isDisabled:s,isFocusable:l,...u}=e,{value:d,onChange:h,getRootProps:m,name:y,htmlProps:b}=O2e(u),w=S.useMemo(()=>({name:y,size:r,onChange:h,colorScheme:n,value:d,variant:i,isDisabled:s,isFocusable:l}),[y,r,h,n,d,i,s,l]);return g.jsx(R2e,{value:w,children:g.jsx(Ne.div,{...m(b,t),className:xt("chakra-radio-group",a),children:o})})});Oy.displayName="RadioGroup";var I2e={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"};function D2e(e={}){const{defaultChecked:t,isChecked:n,isFocusable:r,isDisabled:i,isReadOnly:o,isRequired:a,onChange:s,isInvalid:l,name:u,value:d,id:h,"data-radiogroup":m,"aria-describedby":y,...b}=e,w=`radio-${S.useId()}`,E=ip(),k=!!VH()||!!m;let L=!!E&&!k?E.id:w;L=h??L;const O=i??(E==null?void 0:E.isDisabled),D=o??(E==null?void 0:E.isReadOnly),I=a??(E==null?void 0:E.isRequired),N=l??(E==null?void 0:E.isInvalid),[W,B]=S.useState(!1),[K,ne]=S.useState(!1),[z,$]=S.useState(!1),[V,X]=S.useState(!1),[Q,G]=S.useState(Boolean(t)),Y=typeof n<"u",ee=Y?n:Q;S.useEffect(()=>uz(B),[]);const fe=S.useCallback(Be=>{if(D||O){Be.preventDefault();return}Y||G(Be.target.checked),s==null||s(Be)},[Y,O,D,s]),Ce=S.useCallback(Be=>{Be.key===" "&&X(!0)},[X]),we=S.useCallback(Be=>{Be.key===" "&&X(!1)},[X]),xe=S.useCallback((Be={},Ae=null)=>({...Be,ref:Ae,"data-active":Bt(V),"data-hover":Bt(z),"data-disabled":Bt(O),"data-invalid":Bt(N),"data-checked":Bt(ee),"data-focus":Bt(K),"data-focus-visible":Bt(K&&W),"data-readonly":Bt(D),"aria-hidden":!0,onMouseDown:ht(Be.onMouseDown,()=>X(!0)),onMouseUp:ht(Be.onMouseUp,()=>X(!1)),onMouseEnter:ht(Be.onMouseEnter,()=>$(!0)),onMouseLeave:ht(Be.onMouseLeave,()=>$(!1))}),[V,z,O,N,ee,K,D,W]),{onFocus:Le,onBlur:Se}=E??{},Qe=S.useCallback((Be={},Ae=null)=>{const bt=O&&!r;return{...Be,id:L,ref:Ae,type:"radio",name:u,value:d,onChange:ht(Be.onChange,fe),onBlur:ht(Se,Be.onBlur,()=>ne(!1)),onFocus:ht(Le,Be.onFocus,()=>ne(!0)),onKeyDown:ht(Be.onKeyDown,Ce),onKeyUp:ht(Be.onKeyUp,we),checked:ee,disabled:bt,readOnly:D,required:I,"aria-invalid":Uu(N),"aria-disabled":Uu(bt),"aria-required":Uu(I),"data-readonly":Bt(D),"aria-describedby":y,style:I2e}},[O,r,L,u,d,fe,Se,Le,Ce,we,ee,D,I,N,y]);return{state:{isInvalid:N,isFocused:K,isChecked:ee,isActive:V,isHovered:z,isDisabled:O,isReadOnly:D,isRequired:I},getCheckboxProps:xe,getInputProps:Qe,getLabelProps:(Be={},Ae=null)=>({...Be,ref:Ae,onMouseDown:ht(Be.onMouseDown,wO),onTouchStart:ht(Be.onTouchStart,wO),"data-disabled":Bt(O),"data-checked":Bt(ee),"data-invalid":Bt(N)}),getRootProps:(Be,Ae=null)=>({...Be,ref:Ae,"data-disabled":Bt(O),"data-checked":Bt(ee),"data-invalid":Bt(N)}),htmlProps:b}}function wO(e){e.preventDefault(),e.stopPropagation()}function j2e(e,t){const n={},r={};for(const[i,o]of Object.entries(e))t.includes(i)?n[i]=o:r[i]=o;return[n,r]}var Vo=Ze((e,t)=>{var n;const r=VH(),{onChange:i,value:o}=e,a=Yi("Radio",{...r,...e}),s=fr(e),{spacing:l="0.5rem",children:u,isDisabled:d=r==null?void 0:r.isDisabled,isFocusable:h=r==null?void 0:r.isFocusable,inputProps:m,...y}=s;let b=e.isChecked;(r==null?void 0:r.value)!=null&&o!=null&&(b=r.value===o);let w=i;r!=null&&r.onChange&&o!=null&&(w=Sw(r.onChange,i));const E=(n=e==null?void 0:e.name)!=null?n:r==null?void 0:r.name,{getInputProps:_,getCheckboxProps:k,getLabelProps:T,getRootProps:L,htmlProps:O}=D2e({...y,isChecked:b,isFocusable:h,isDisabled:d,onChange:w,name:E}),[D,I]=j2e(O,lF),N=k(I),W=_(m,t),B=T(),K=Object.assign({},D,L()),ne={display:"inline-flex",alignItems:"center",verticalAlign:"top",cursor:"pointer",position:"relative",...a.container},z={display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,...a.control},$={userSelect:"none",marginStart:l,...a.label};return g.jsxs(Ne.label,{className:"chakra-radio",...K,__css:ne,children:[g.jsx("input",{className:"chakra-radio__input",...W}),g.jsx(Ne.span,{className:"chakra-radio__control",...N,__css:z}),u&&g.jsx(Ne.span,{className:"chakra-radio__label",...B,__css:$,children:u})]})});Vo.displayName="Radio";var GH=Ze(function(t,n){const{children:r,placeholder:i,className:o,...a}=t;return g.jsxs(Ne.select,{...a,ref:n,className:xt("chakra-select",o),children:[i&&g.jsx("option",{value:"",children:i}),r]})});GH.displayName="SelectField";function N2e(e,t){const n={},r={};for(const[i,o]of Object.entries(e))t.includes(i)?n[i]=o:r[i]=o;return[n,r]}var qH=Ze((e,t)=>{var n;const r=Yi("Select",e),{rootProps:i,placeholder:o,icon:a,color:s,height:l,h:u,minH:d,minHeight:h,iconColor:m,iconSize:y,...b}=fr(e),[w,E]=N2e(b,lF),_=f8(E),k={width:"100%",height:"fit-content",position:"relative",color:s},T={paddingEnd:"2rem",...r.field,_focus:{zIndex:"unset",...(n=r.field)==null?void 0:n._focus}};return g.jsxs(Ne.div,{className:"chakra-select__wrapper",__css:k,...w,...i,children:[g.jsx(GH,{ref:t,height:u??l,minH:d??h,placeholder:o,..._,__css:T,children:e.children}),g.jsx(KH,{"data-disabled":Bt(_.disabled),...(m||s)&&{color:m||s},__css:r.icon,...y&&{fontSize:y},children:a})]})});qH.displayName="Select";var $2e=e=>g.jsx("svg",{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),F2e=Ne("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),KH=e=>{const{children:t=g.jsx($2e,{}),...n}=e,r=S.cloneElement(t,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return g.jsx(F2e,{...n,className:"chakra-select__icon-wrapper",children:S.isValidElement(t)?r:null})};KH.displayName="SelectIcon";var Eg=e=>e?"":void 0,bC=e=>e?!0:void 0,f2=(...e)=>e.filter(Boolean).join(" ");function xC(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function Xb(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}var nS={width:0,height:0},Zb=e=>e||nS;function B2e(e){const{orientation:t,thumbPercents:n,thumbRects:r,isReversed:i}=e,o=w=>{var E;const _=(E=r[w])!=null?E:nS;return{position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none",...Xb({orientation:t,vertical:{bottom:`calc(${n[w]}% - ${_.height/2}px)`},horizontal:{left:`calc(${n[w]}% - ${_.width/2}px)`}})}},a=t==="vertical"?r.reduce((w,E)=>Zb(w).height>Zb(E).height?w:E,nS):r.reduce((w,E)=>Zb(w).width>Zb(E).width?w:E,nS),s={position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0,...Xb({orientation:t,vertical:a?{paddingLeft:a.width/2,paddingRight:a.width/2}:{},horizontal:a?{paddingTop:a.height/2,paddingBottom:a.height/2}:{}})},l={position:"absolute",...Xb({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}})},u=n.length===1,d=[0,i?100-n[0]:n[0]],h=u?d:n;let m=h[0];!u&&i&&(m=100-m);const y=Math.abs(h[h.length-1]-h[0]),b={...l,...Xb({orientation:t,vertical:i?{height:`${y}%`,top:`${m}%`}:{height:`${y}%`,bottom:`${m}%`},horizontal:i?{width:`${y}%`,right:`${m}%`}:{width:`${y}%`,left:`${m}%`}})};return{trackStyle:l,innerTrackStyle:b,rootStyle:s,getThumbStyle:o}}function z2e(e){const{isReversed:t,direction:n,orientation:r}=e;return n==="ltr"||r==="vertical"?t:!t}function H2e(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function W2e(e){const t=V2e(e);return typeof t.PointerEvent<"u"&&e instanceof t.PointerEvent?e.pointerType==="mouse":e instanceof t.MouseEvent}function YH(e){return!!e.touches}function U2e(e){return YH(e)&&e.touches.length>1}function V2e(e){var t;return(t=e.view)!=null?t:window}function G2e(e,t="page"){const n=e.touches[0]||e.changedTouches[0];return{x:n[`${t}X`],y:n[`${t}Y`]}}function q2e(e,t="page"){return{x:e[`${t}X`],y:e[`${t}Y`]}}function XH(e,t="page"){return YH(e)?G2e(e,t):q2e(e,t)}function K2e(e){return t=>{const n=W2e(t);(!n||n&&t.button===0)&&e(t)}}function Y2e(e,t=!1){function n(i){e(i,{point:XH(i)})}return t?K2e(n):n}function rS(e,t,n,r){return H2e(e,t,Y2e(n,t==="pointerdown"),r)}var X2e=Object.defineProperty,Z2e=(e,t,n)=>t in e?X2e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$s=(e,t,n)=>(Z2e(e,typeof t!="symbol"?t+"":t,n),n),Q2e=class{constructor(e,t,n){$s(this,"history",[]),$s(this,"startEvent",null),$s(this,"lastEvent",null),$s(this,"lastEventInfo",null),$s(this,"handlers",{}),$s(this,"removeListeners",()=>{}),$s(this,"threshold",3),$s(this,"win"),$s(this,"updatePoint",()=>{if(!(this.lastEvent&&this.lastEventInfo))return;const s=SC(this.lastEventInfo,this.history),l=this.startEvent!==null,u=nbe(s.offset,{x:0,y:0})>=this.threshold;if(!l&&!u)return;const{timestamp:d}=kL();this.history.push({...s.point,timestamp:d});const{onStart:h,onMove:m}=this.handlers;l||(h==null||h(this.lastEvent,s),this.startEvent=this.lastEvent),m==null||m(this.lastEvent,s)}),$s(this,"onPointerMove",(s,l)=>{this.lastEvent=s,this.lastEventInfo=l,Sce.update(this.updatePoint,!0)}),$s(this,"onPointerUp",(s,l)=>{const u=SC(l,this.history),{onEnd:d,onSessionEnd:h}=this.handlers;h==null||h(s,u),this.end(),!(!d||!this.startEvent)&&(d==null||d(s,u))});var r;if(this.win=(r=e.view)!=null?r:window,U2e(e))return;this.handlers=t,n&&(this.threshold=n),e.stopPropagation(),e.preventDefault();const i={point:XH(e)},{timestamp:o}=kL();this.history=[{...i.point,timestamp:o}];const{onSessionStart:a}=t;a==null||a(e,SC(i,this.history)),this.removeListeners=tbe(rS(this.win,"pointermove",this.onPointerMove),rS(this.win,"pointerup",this.onPointerUp),rS(this.win,"pointercancel",this.onPointerUp))}updateHandlers(e){this.handlers=e}end(){var e;(e=this.removeListeners)==null||e.call(this),wce.update(this.updatePoint)}};function CO(e,t){return{x:e.x-t.x,y:e.y-t.y}}function SC(e,t){return{point:e.point,delta:CO(e.point,t[t.length-1]),offset:CO(e.point,t[0]),velocity:ebe(t,.1)}}var J2e=e=>e*1e3;function ebe(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=e[e.length-1];for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>J2e(t)));)n--;if(!r)return{x:0,y:0};const o=(i.timestamp-r.timestamp)/1e3;if(o===0)return{x:0,y:0};const a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function tbe(...e){return t=>e.reduce((n,r)=>r(n),t)}function wC(e,t){return Math.abs(e-t)}function _O(e){return"x"in e&&"y"in e}function nbe(e,t){if(typeof e=="number"&&typeof t=="number")return wC(e,t);if(_O(e)&&_O(t)){const n=wC(e.x,t.x),r=wC(e.y,t.y);return Math.sqrt(n**2+r**2)}return 0}function ZH(e){const t=S.useRef(null);return t.current=e,t}function rbe(e,t){const{onPan:n,onPanStart:r,onPanEnd:i,onPanSessionStart:o,onPanSessionEnd:a,threshold:s}=t,l=Boolean(n||r||i||o||a),u=S.useRef(null),d=ZH({onSessionStart:o,onSessionEnd:a,onStart:r,onMove:n,onEnd(h,m){u.current=null,i==null||i(h,m)}});S.useEffect(()=>{var h;(h=u.current)==null||h.updateHandlers(d.current)}),S.useEffect(()=>{const h=e.current;if(!h||!l)return;function m(y){u.current=new Q2e(y,d.current,s)}return rS(h,"pointerdown",m)},[e,l,d,s]),S.useEffect(()=>()=>{var h;(h=u.current)==null||h.end(),u.current=null},[])}function ibe(e,t){var n;if(!e){t(void 0);return}t({width:e.offsetWidth,height:e.offsetHeight});const r=(n=e.ownerDocument.defaultView)!=null?n:window,i=new r.ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const[a]=o;let s,l;if("borderBoxSize"in a){const u=a.borderBoxSize,d=Array.isArray(u)?u[0]:u;s=d.inlineSize,l=d.blockSize}else s=e.offsetWidth,l=e.offsetHeight;t({width:s,height:l})});return i.observe(e,{box:"border-box"}),()=>i.unobserve(e)}var obe=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:S.useEffect;function abe(e,t){var n,r;if(!e||!e.parentElement)return;const i=(r=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?r:window,o=new i.MutationObserver(()=>{t()});return o.observe(e.parentElement,{childList:!0}),()=>{o.disconnect()}}function sbe({getNodes:e,observeMutation:t=!0}){const[n,r]=S.useState([]),[i,o]=S.useState(0);return obe(()=>{const a=e(),s=a.map((l,u)=>ibe(l,d=>{r(h=>[...h.slice(0,u),d,...h.slice(u+1)])}));if(t){const l=a[0];s.push(abe(l,()=>{o(u=>u+1)}))}return()=>{s.forEach(l=>{l==null||l()})}},[i]),n}function lbe(e){return typeof e=="object"&&e!==null&&"current"in e}function ube(e){const[t]=sbe({observeMutation:!1,getNodes(){return[lbe(e)?e.current:e]}});return t}function cbe(e){var t;const{min:n=0,max:r=100,onChange:i,value:o,defaultValue:a,isReversed:s,direction:l="ltr",orientation:u="horizontal",id:d,isDisabled:h,isReadOnly:m,onChangeStart:y,onChangeEnd:b,step:w=1,getAriaValueText:E,"aria-valuetext":_,"aria-label":k,"aria-labelledby":T,name:L,focusThumbOnChange:O=!0,...D}=e,I=Qr(y),N=Qr(b),W=Qr(E),B=z2e({isReversed:s,direction:l,orientation:u}),[K,ne]=l8({value:o,defaultValue:a??fbe(n,r),onChange:i}),[z,$]=S.useState(!1),[V,X]=S.useState(!1),Q=!(h||m),G=(r-n)/10,Y=w||(r-n)/100,ee=Qx(K,n,r),fe=r-ee+n,we=GA(B?fe:ee,n,r),xe=u==="vertical",Le=ZH({min:n,max:r,step:w,isDisabled:h,value:ee,isInteractive:Q,isReversed:B,isVertical:xe,eventSource:null,focusThumbOnChange:O,orientation:u}),Se=S.useRef(null),Qe=S.useRef(null),Xe=S.useRef(null),tt=S.useId(),yt=d??tt,[Be,Ae]=[`slider-thumb-${yt}`,`slider-track-${yt}`],bt=S.useCallback(qe=>{var pt,zr;if(!Se.current)return;const rr=Le.current;rr.eventSource="pointer";const Bn=Se.current.getBoundingClientRect(),{clientX:li,clientY:vs}=(zr=(pt=qe.touches)==null?void 0:pt[0])!=null?zr:qe,tl=xe?Bn.bottom-vs:li-Bn.left,gf=xe?Bn.height:Bn.width;let ys=tl/gf;B&&(ys=1-ys);let Xi=Hme(ys,rr.min,rr.max);return rr.step&&(Xi=parseFloat(qA(Xi,rr.min,rr.step))),Xi=Qx(Xi,rr.min,rr.max),Xi},[xe,B,Le]),Fe=S.useCallback(qe=>{const pt=Le.current;pt.isInteractive&&(qe=parseFloat(qA(qe,pt.min,Y)),qe=Qx(qe,pt.min,pt.max),ne(qe))},[Y,ne,Le]),at=S.useMemo(()=>({stepUp(qe=Y){const pt=B?ee-qe:ee+qe;Fe(pt)},stepDown(qe=Y){const pt=B?ee+qe:ee-qe;Fe(pt)},reset(){Fe(a||0)},stepTo(qe){Fe(qe)}}),[Fe,B,ee,Y,a]),jt=S.useCallback(qe=>{const pt=Le.current,rr={ArrowRight:()=>at.stepUp(),ArrowUp:()=>at.stepUp(),ArrowLeft:()=>at.stepDown(),ArrowDown:()=>at.stepDown(),PageUp:()=>at.stepUp(G),PageDown:()=>at.stepDown(G),Home:()=>Fe(pt.min),End:()=>Fe(pt.max)}[qe.key];rr&&(qe.preventDefault(),qe.stopPropagation(),rr(qe),pt.eventSource="keyboard")},[at,Fe,G,Le]),mt=(t=W==null?void 0:W(ee))!=null?t:_,Zt=ube(Qe),{getThumbStyle:on,rootStyle:se,trackStyle:Ie,innerTrackStyle:He}=S.useMemo(()=>{const qe=Le.current,pt=Zt??{width:0,height:0};return B2e({isReversed:B,orientation:qe.orientation,thumbRects:[pt],thumbPercents:[we]})},[B,Zt,we,Le]),Ue=S.useCallback(()=>{Le.current.focusThumbOnChange&&setTimeout(()=>{var pt;return(pt=Qe.current)==null?void 0:pt.focus()})},[Le]);rc(()=>{const qe=Le.current;Ue(),qe.eventSource==="keyboard"&&(N==null||N(qe.value))},[ee,N]);function ye(qe){const pt=bt(qe);pt!=null&&pt!==Le.current.value&&ne(pt)}rbe(Xe,{onPanSessionStart(qe){const pt=Le.current;pt.isInteractive&&($(!0),Ue(),ye(qe),I==null||I(pt.value))},onPanSessionEnd(){const qe=Le.current;qe.isInteractive&&($(!1),N==null||N(qe.value))},onPan(qe){Le.current.isInteractive&&ye(qe)}});const je=S.useCallback((qe={},pt=null)=>({...qe,...D,ref:Rn(pt,Xe),tabIndex:-1,"aria-disabled":bC(h),"data-focused":Eg(V),style:{...qe.style,...se}}),[D,h,V,se]),vt=S.useCallback((qe={},pt=null)=>({...qe,ref:Rn(pt,Se),id:Ae,"data-disabled":Eg(h),style:{...qe.style,...Ie}}),[h,Ae,Ie]),Mt=S.useCallback((qe={},pt=null)=>({...qe,ref:pt,style:{...qe.style,...He}}),[He]),Me=S.useCallback((qe={},pt=null)=>({...qe,ref:Rn(pt,Qe),role:"slider",tabIndex:Q?0:void 0,id:Be,"data-active":Eg(z),"aria-valuetext":mt,"aria-valuemin":n,"aria-valuemax":r,"aria-valuenow":ee,"aria-orientation":u,"aria-disabled":bC(h),"aria-readonly":bC(m),"aria-label":k,"aria-labelledby":k?void 0:T,style:{...qe.style,...on(0)},onKeyDown:xC(qe.onKeyDown,jt),onFocus:xC(qe.onFocus,()=>X(!0)),onBlur:xC(qe.onBlur,()=>X(!1))}),[Q,Be,z,mt,n,r,ee,u,h,m,k,T,on,jt]),Ct=S.useCallback((qe,pt=null)=>{const zr=!(qe.valuer),rr=ee>=qe.value,Bn=GA(qe.value,n,r),li={position:"absolute",pointerEvents:"none",...dbe({orientation:u,vertical:{bottom:B?`${100-Bn}%`:`${Bn}%`},horizontal:{left:B?`${100-Bn}%`:`${Bn}%`}})};return{...qe,ref:pt,role:"presentation","aria-hidden":!0,"data-disabled":Eg(h),"data-invalid":Eg(!zr),"data-highlighted":Eg(rr),style:{...qe.style,...li}}},[h,B,r,n,u,ee]),zt=S.useCallback((qe={},pt=null)=>({...qe,ref:pt,type:"hidden",value:ee,name:L}),[L,ee]);return{state:{value:ee,isFocused:V,isDragging:z},actions:at,getRootProps:je,getTrackProps:vt,getInnerTrackProps:Mt,getThumbProps:Me,getMarkerProps:Ct,getInputProps:zt}}function dbe(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}function fbe(e,t){return t"}),[pbe,Vw]=Pn({name:"SliderStylesContext",hookName:"useSliderStyles",providerName:""}),QH=Ze((e,t)=>{const n={orientation:"horizontal",...e},r=Yi("Slider",n),i=fr(n),{direction:o}=Zy();i.direction=o;const{getInputProps:a,getRootProps:s,...l}=cbe(i),u=s(),d=a({},t);return g.jsx(hbe,{value:l,children:g.jsx(pbe,{value:r,children:g.jsxs(Ne.div,{...u,className:f2("chakra-slider",n.className),__css:r.container,children:[n.children,g.jsx("input",{...d})]})})})});QH.displayName="Slider";var JH=Ze((e,t)=>{const{getThumbProps:n}=Uw(),r=Vw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:f2("chakra-slider__thumb",e.className),__css:r.thumb})});JH.displayName="SliderThumb";var eW=Ze((e,t)=>{const{getTrackProps:n}=Uw(),r=Vw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:f2("chakra-slider__track",e.className),__css:r.track})});eW.displayName="SliderTrack";var tW=Ze((e,t)=>{const{getInnerTrackProps:n}=Uw(),r=Vw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:f2("chakra-slider__filled-track",e.className),__css:r.filledTrack})});tW.displayName="SliderFilledTrack";var tk=Ze((e,t)=>{const{getMarkerProps:n}=Uw(),r=Vw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:f2("chakra-slider__marker",e.className),__css:r.mark})});tk.displayName="SliderMark";var K8=Ze(function(t,n){const r=Yi("Switch",t),{spacing:i="0.5rem",children:o,...a}=fr(t),{state:s,getInputProps:l,getCheckboxProps:u,getRootProps:d,getLabelProps:h}=cz(a),m=S.useMemo(()=>({display:"inline-block",position:"relative",verticalAlign:"middle",lineHeight:0,...r.container}),[r.container]),y=S.useMemo(()=>({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer",...r.track}),[r.track]),b=S.useMemo(()=>({userSelect:"none",marginStart:i,...r.label}),[i,r.label]);return g.jsxs(Ne.label,{...d(),className:xt("chakra-switch",t.className),__css:m,children:[g.jsx("input",{className:"chakra-switch__input",...l({},n)}),g.jsx(Ne.span,{...u(),className:"chakra-switch__track",__css:y,children:g.jsx(Ne.span,{__css:r.thumb,className:"chakra-switch__thumb","data-checked":Bt(s.isChecked),"data-hover":Bt(s.isHovered)})}),o&&g.jsx(Ne.span,{className:"chakra-switch__label",...h(),__css:b,children:o})]})});K8.displayName="Switch";var[gbe,mNe,mbe,vbe]=a8();function ybe(e){var t;const{defaultIndex:n,onChange:r,index:i,isManual:o,isLazy:a,lazyBehavior:s="unmount",orientation:l="horizontal",direction:u="ltr",...d}=e,[h,m]=S.useState(n??0),[y,b]=l8({defaultValue:n??0,value:i,onChange:r});S.useEffect(()=>{i!=null&&m(i)},[i]);const w=mbe(),E=S.useId();return{id:`tabs-${(t=e.id)!=null?t:E}`,selectedIndex:y,focusedIndex:h,setSelectedIndex:b,setFocusedIndex:m,isManual:o,isLazy:a,lazyBehavior:s,orientation:l,descendants:w,direction:u,htmlProps:d}}var[bbe,Y8]=Pn({name:"TabsContext",errorMessage:"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within "});function xbe(e){const{isDisabled:t,isFocusable:n,...r}=e,{setSelectedIndex:i,isManual:o,id:a,setFocusedIndex:s,selectedIndex:l}=Y8(),{index:u,register:d}=vbe({disabled:t&&!n}),h=u===l,m=()=>{i(u)},y=()=>{s(u),!o&&!(t&&n)&&i(u)},b=sH({...r,ref:Rn(d,e.ref),isDisabled:t,isFocusable:n,onClick:ht(e.onClick,m)}),w="button";return{...b,id:nW(a,u),role:"tab",tabIndex:h?0:-1,type:w,"aria-selected":h,"aria-controls":rW(a,u),onFocus:t?void 0:ht(e.onFocus,y)}}var[Sbe,wbe]=Pn({});function Cbe(e){const t=Y8(),{id:n,selectedIndex:r}=t,o=d8(e.children).map((a,s)=>S.createElement(Sbe,{key:s,value:{isSelected:s===r,id:rW(n,s),tabId:nW(n,s),selectedIndex:r}},a));return{...e,children:o}}function _be(e){const{children:t,...n}=e,{isLazy:r,lazyBehavior:i}=Y8(),{isSelected:o,id:a,tabId:s}=wbe(),l=S.useRef(!1);o&&(l.current=!0);const u=$8({wasSelected:l.current,isSelected:o,enabled:r,mode:i});return{tabIndex:0,...n,children:u?t:null,role:"tabpanel","aria-labelledby":s,hidden:!o,id:a}}function nW(e,t){return`${e}--tab-${t}`}function rW(e,t){return`${e}--tabpanel-${t}`}var[kbe,X8]=Pn({name:"TabsStylesContext",errorMessage:`useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),iW=Ze(function(t,n){const r=Yi("Tabs",t),{children:i,className:o,...a}=fr(t),{htmlProps:s,descendants:l,...u}=ybe(a),d=S.useMemo(()=>u,[u]),{isFitted:h,...m}=s;return g.jsx(gbe,{value:l,children:g.jsx(bbe,{value:d,children:g.jsx(kbe,{value:r,children:g.jsx(Ne.div,{className:xt("chakra-tabs",o),ref:n,...m,__css:r.root,children:i})})})})});iW.displayName="Tabs";var oW=Ze(function(t,n){const r=_be({...t,ref:n}),i=X8();return g.jsx(Ne.div,{outline:"0",...r,className:xt("chakra-tabs__tab-panel",t.className),__css:i.tabpanel})});oW.displayName="TabPanel";var aW=Ze(function(t,n){const r=Cbe(t),i=X8();return g.jsx(Ne.div,{...r,width:"100%",ref:n,className:xt("chakra-tabs__tab-panels",t.className),__css:i.tabpanels})});aW.displayName="TabPanels";var sW=Ze(function(t,n){const r=X8(),i=xbe({...t,ref:n}),o={outline:"0",display:"flex",alignItems:"center",justifyContent:"center",...r.tab};return g.jsx(Ne.button,{...i,className:xt("chakra-tabs__tab",t.className),__css:o})});sW.displayName="Tab";function Ebe(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var Pbe=["h","minH","height","minHeight"],Z8=Ze((e,t)=>{const n=au("Textarea",e),{className:r,rows:i,...o}=fr(e),a=f8(o),s=i?Ebe(n,Pbe):n;return g.jsx(Ne.textarea,{ref:t,rows:i,...a,className:xt("chakra-textarea",r),__css:s})});Z8.displayName="Textarea";var Tbe={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},f3=e=>{var t;return((t=e.current)==null?void 0:t.ownerDocument)||document},nk=e=>{var t,n;return((n=(t=e.current)==null?void 0:t.ownerDocument)==null?void 0:n.defaultView)||window};function Mbe(e={}){const{openDelay:t=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:i,closeOnScroll:o,closeOnPointerDown:a=i,closeOnEsc:s=!0,onOpen:l,onClose:u,placement:d,id:h,isOpen:m,defaultIsOpen:y,arrowSize:b=10,arrowShadowColor:w,arrowPadding:E,modifiers:_,isDisabled:k,gutter:T,offset:L,direction:O,...D}=e,{isOpen:I,onOpen:N,onClose:W}=N8({isOpen:m,defaultIsOpen:y,onOpen:l,onClose:u}),{referenceRef:B,getPopperProps:K,getArrowInnerProps:ne,getArrowProps:z}=j8({enabled:I,placement:d,arrowPadding:E,modifiers:_,gutter:T,offset:L,direction:O}),$=S.useId(),X=`tooltip-${h??$}`,Q=S.useRef(null),G=S.useRef(),Y=S.useCallback(()=>{G.current&&(clearTimeout(G.current),G.current=void 0)},[]),ee=S.useRef(),fe=S.useCallback(()=>{ee.current&&(clearTimeout(ee.current),ee.current=void 0)},[]),Ce=S.useCallback(()=>{fe(),W()},[W,fe]),we=Lbe(Q,Ce),xe=S.useCallback(()=>{if(!k&&!G.current){we();const Ae=nk(Q);G.current=Ae.setTimeout(N,t)}},[we,k,N,t]),Le=S.useCallback(()=>{Y();const Ae=nk(Q);ee.current=Ae.setTimeout(Ce,n)},[n,Ce,Y]),Se=S.useCallback(()=>{I&&r&&Le()},[r,Le,I]),Qe=S.useCallback(()=>{I&&a&&Le()},[a,Le,I]),Xe=S.useCallback(Ae=>{I&&Ae.key==="Escape"&&Le()},[I,Le]);Dh(()=>f3(Q),"keydown",s?Xe:void 0),Dh(()=>f3(Q),"scroll",()=>{I&&o&&Ce()}),S.useEffect(()=>{k&&(Y(),I&&W())},[k,I,W,Y]),S.useEffect(()=>()=>{Y(),fe()},[Y,fe]),Dh(()=>Q.current,"pointerleave",Le);const tt=S.useCallback((Ae={},bt=null)=>({...Ae,ref:Rn(Q,bt,B),onPointerEnter:ht(Ae.onPointerEnter,at=>{at.pointerType!=="touch"&&xe()}),onClick:ht(Ae.onClick,Se),onPointerDown:ht(Ae.onPointerDown,Qe),onFocus:ht(Ae.onFocus,xe),onBlur:ht(Ae.onBlur,Le),"aria-describedby":I?X:void 0}),[xe,Le,Qe,I,X,Se,B]),yt=S.useCallback((Ae={},bt=null)=>K({...Ae,style:{...Ae.style,[ii.arrowSize.var]:b?`${b}px`:void 0,[ii.arrowShadowColor.var]:w}},bt),[K,b,w]),Be=S.useCallback((Ae={},bt=null)=>{const Fe={...Ae.style,position:"relative",transformOrigin:ii.transformOrigin.varRef};return{ref:bt,...D,...Ae,id:X,role:"tooltip",style:Fe}},[D,X]);return{isOpen:I,show:xe,hide:Le,getTriggerProps:tt,getTooltipProps:Be,getTooltipPositionerProps:yt,getArrowProps:z,getArrowInnerProps:ne}}var CC="chakra-ui:close-tooltip";function Lbe(e,t){return S.useEffect(()=>{const n=f3(e);return n.addEventListener(CC,t),()=>n.removeEventListener(CC,t)},[t,e]),()=>{const n=f3(e),r=nk(e);n.dispatchEvent(new r.CustomEvent(CC))}}function Abe(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function Obe(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}var Rbe=Ne(su.div),si=Ze((e,t)=>{var n,r;const i=au("Tooltip",e),o=fr(e),a=Zy(),{children:s,label:l,shouldWrapChildren:u,"aria-label":d,hasArrow:h,bg:m,portalProps:y,background:b,backgroundColor:w,bgColor:E,motionProps:_,...k}=o,T=(r=(n=b??w)!=null?n:m)!=null?r:E;if(T){i.bg=T;const K=Kre(a,"colors",T);i[ii.arrowBg.var]=K}const L=Mbe({...k,direction:a.direction}),O=typeof s=="string"||u;let D;if(O)D=g.jsx(Ne.span,{display:"inline-block",tabIndex:0,...L.getTriggerProps(),children:s});else{const K=S.Children.only(s);D=S.cloneElement(K,L.getTriggerProps(K.props,K.ref))}const I=!!d,N=L.getTooltipProps({},t),W=I?Abe(N,["role","id"]):N,B=Obe(N,["role","id"]);return l?g.jsxs(g.Fragment,{children:[D,g.jsx(rp,{children:L.isOpen&&g.jsx(c0,{...y,children:g.jsx(Ne.div,{...L.getTooltipPositionerProps(),__css:{zIndex:i.zIndex,pointerEvents:"none"},children:g.jsxs(Rbe,{variants:Tbe,initial:"exit",animate:"enter",exit:"exit",..._,...W,__css:i,children:[l,I&&g.jsx(Ne.span,{srOnly:!0,...B,children:d}),h&&g.jsx(Ne.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:g.jsx(Ne.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:i.bg}})})]})})})})]}):g.jsx(g.Fragment,{children:s})});si.displayName="Tooltip";var rk={},kO=Xs;rk.createRoot=kO.createRoot,rk.hydrateRoot=kO.hydrateRoot;var ik={},Ibe={get exports(){return ik},set exports(e){ik=e}},lW={};/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Qm=S;function Dbe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jbe=typeof Object.is=="function"?Object.is:Dbe,Nbe=Qm.useState,$be=Qm.useEffect,Fbe=Qm.useLayoutEffect,Bbe=Qm.useDebugValue;function zbe(e,t){var n=t(),r=Nbe({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return Fbe(function(){i.value=n,i.getSnapshot=t,_C(i)&&o({inst:i})},[e,n,t]),$be(function(){return _C(i)&&o({inst:i}),e(function(){_C(i)&&o({inst:i})})},[e]),Bbe(n),n}function _C(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!jbe(e,n)}catch{return!0}}function Hbe(e,t){return t()}var Wbe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Hbe:zbe;lW.useSyncExternalStore=Qm.useSyncExternalStore!==void 0?Qm.useSyncExternalStore:Wbe;(function(e){e.exports=lW})(Ibe);var ok={},Ube={get exports(){return ok},set exports(e){ok=e}},uW={};/** - * @license React - * use-sync-external-store-shim/with-selector.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Gw=S,Vbe=ik;function Gbe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var qbe=typeof Object.is=="function"?Object.is:Gbe,Kbe=Vbe.useSyncExternalStore,Ybe=Gw.useRef,Xbe=Gw.useEffect,Zbe=Gw.useMemo,Qbe=Gw.useDebugValue;uW.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=Ybe(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=Zbe(function(){function l(y){if(!u){if(u=!0,d=y,y=r(y),i!==void 0&&a.hasValue){var b=a.value;if(i(b,y))return h=b}return h=y}if(b=h,qbe(d,y))return b;var w=r(y);return i!==void 0&&i(b,w)?b:(d=y,h=w)}var u=!1,d,h,m=n===void 0?null:n;return[function(){return l(t())},m===null?void 0:function(){return l(m())}]},[t,n,r,i]);var s=Kbe(e,o[0],o[1]);return Xbe(function(){a.hasValue=!0,a.value=s},[s]),Qbe(s),s};(function(e){e.exports=uW})(Ube);function Jbe(e){e()}let cW=Jbe;const exe=e=>cW=e,txe=()=>cW,Zd=S.createContext(null);function dW(){return S.useContext(Zd)}const nxe=()=>{throw new Error("uSES not initialized!")};let fW=nxe;const rxe=e=>{fW=e},ixe=(e,t)=>e===t;function oxe(e=Zd){const t=e===Zd?dW:()=>S.useContext(e);return function(r,i=ixe){const{store:o,subscription:a,getServerState:s}=t(),l=fW(a.addNestedSub,o.getState,s||o.getState,r,i);return S.useDebugValue(l),l}}const axe=oxe();var EO={},sxe={get exports(){return EO},set exports(e){EO=e}},Nn={};/** - * @license React - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Q8=Symbol.for("react.element"),J8=Symbol.for("react.portal"),qw=Symbol.for("react.fragment"),Kw=Symbol.for("react.strict_mode"),Yw=Symbol.for("react.profiler"),Xw=Symbol.for("react.provider"),Zw=Symbol.for("react.context"),lxe=Symbol.for("react.server_context"),Qw=Symbol.for("react.forward_ref"),Jw=Symbol.for("react.suspense"),e4=Symbol.for("react.suspense_list"),t4=Symbol.for("react.memo"),n4=Symbol.for("react.lazy"),uxe=Symbol.for("react.offscreen"),hW;hW=Symbol.for("react.module.reference");function ps(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Q8:switch(e=e.type,e){case qw:case Yw:case Kw:case Jw:case e4:return e;default:switch(e=e&&e.$$typeof,e){case lxe:case Zw:case Qw:case n4:case t4:case Xw:return e;default:return t}}case J8:return t}}}Nn.ContextConsumer=Zw;Nn.ContextProvider=Xw;Nn.Element=Q8;Nn.ForwardRef=Qw;Nn.Fragment=qw;Nn.Lazy=n4;Nn.Memo=t4;Nn.Portal=J8;Nn.Profiler=Yw;Nn.StrictMode=Kw;Nn.Suspense=Jw;Nn.SuspenseList=e4;Nn.isAsyncMode=function(){return!1};Nn.isConcurrentMode=function(){return!1};Nn.isContextConsumer=function(e){return ps(e)===Zw};Nn.isContextProvider=function(e){return ps(e)===Xw};Nn.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Q8};Nn.isForwardRef=function(e){return ps(e)===Qw};Nn.isFragment=function(e){return ps(e)===qw};Nn.isLazy=function(e){return ps(e)===n4};Nn.isMemo=function(e){return ps(e)===t4};Nn.isPortal=function(e){return ps(e)===J8};Nn.isProfiler=function(e){return ps(e)===Yw};Nn.isStrictMode=function(e){return ps(e)===Kw};Nn.isSuspense=function(e){return ps(e)===Jw};Nn.isSuspenseList=function(e){return ps(e)===e4};Nn.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===qw||e===Yw||e===Kw||e===Jw||e===e4||e===uxe||typeof e=="object"&&e!==null&&(e.$$typeof===n4||e.$$typeof===t4||e.$$typeof===Xw||e.$$typeof===Zw||e.$$typeof===Qw||e.$$typeof===hW||e.getModuleId!==void 0)};Nn.typeOf=ps;(function(e){e.exports=Nn})(sxe);function cxe(){const e=txe();let t=null,n=null;return{clear(){t=null,n=null},notify(){e(()=>{let r=t;for(;r;)r.callback(),r=r.next})},get(){let r=[],i=t;for(;i;)r.push(i),i=i.next;return r},subscribe(r){let i=!0,o=n={callback:r,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){!i||t===null||(i=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}const PO={notify(){},get:()=>[]};function dxe(e,t){let n,r=PO;function i(h){return l(),r.subscribe(h)}function o(){r.notify()}function a(){d.onStateChange&&d.onStateChange()}function s(){return Boolean(n)}function l(){n||(n=t?t.addNestedSub(a):e.subscribe(a),r=cxe())}function u(){n&&(n(),n=void 0,r.clear(),r=PO)}const d={addNestedSub:i,notifyNestedSubs:o,handleChangeWrapper:a,isSubscribed:s,trySubscribe:l,tryUnsubscribe:u,getListeners:()=>r};return d}const fxe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",hxe=fxe?S.useLayoutEffect:S.useEffect;function pxe({store:e,context:t,children:n,serverState:r}){const i=S.useMemo(()=>{const s=dxe(e);return{store:e,subscription:s,getServerState:r?()=>r:void 0}},[e,r]),o=S.useMemo(()=>e.getState(),[e]);hxe(()=>{const{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==e.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]);const a=t||Zd;return Ke.createElement(a.Provider,{value:i},n)}function pW(e=Zd){const t=e===Zd?dW:()=>S.useContext(e);return function(){const{store:r}=t();return r}}const gxe=pW();function mxe(e=Zd){const t=e===Zd?gxe:pW(e);return function(){return t().dispatch}}const vxe=mxe();rxe(ok.useSyncExternalStoreWithSelector);exe(Xs.unstable_batchedUpdates);function iS(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?iS=function(n){return typeof n}:iS=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},iS(e)}function yxe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TO(e,t){for(var n=0;n1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:eE(e)?2:tE(e)?3:0}function Pm(e,t){return v0(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function wxe(e,t){return v0(e)===2?e.get(t):e[t]}function mW(e,t,n){var r=v0(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function vW(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function eE(e){return Txe&&e instanceof Map}function tE(e){return Mxe&&e instanceof Set}function fh(e){return e.o||e.t}function nE(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=bW(e);delete t[vr];for(var n=Tm(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=Cxe),Object.freeze(e),t&&Xh(e,function(n,r){return rE(r,!0)},!0)),e}function Cxe(){Vs(2)}function iE(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Ql(e){var t=dk[e];return t||Vs(18,e),t}function _xe(e,t){dk[e]||(dk[e]=t)}function lk(){return Ry}function kC(e,t){t&&(Ql("Patches"),e.u=[],e.s=[],e.v=t)}function h3(e){uk(e),e.p.forEach(kxe),e.p=null}function uk(e){e===Ry&&(Ry=e.l)}function MO(e){return Ry={p:[],l:Ry,h:e,m:!0,_:0}}function kxe(e){var t=e[vr];t.i===0||t.i===1?t.j():t.O=!0}function EC(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||Ql("ES5").S(t,e,r),r?(n[vr].P&&(h3(t),Vs(4)),ac(e)&&(e=p3(t,e),t.l||g3(t,e)),t.u&&Ql("Patches").M(n[vr].t,e,t.u,t.s)):e=p3(t,n,[]),h3(t),t.u&&t.v(t.u,t.s),e!==yW?e:void 0}function p3(e,t,n){if(iE(t))return t;var r=t[vr];if(!r)return Xh(t,function(s,l){return LO(e,r,t,s,l,n)},!0),t;if(r.A!==e)return t;if(!r.P)return g3(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=nE(r.k):r.o,o=i,a=!1;r.i===3&&(o=new Set(i),i.clear(),a=!0),Xh(o,function(s,l){return LO(e,r,i,s,l,n,a)}),g3(e,i,!1),n&&e.u&&Ql("Patches").N(r,n,e.u,e.s)}return r.o}function LO(e,t,n,r,i,o,a){if(Qd(i)){var s=p3(e,i,o&&t&&t.i!==3&&!Pm(t.R,r)?o.concat(r):void 0);if(mW(n,r,s),!Qd(s))return;e.m=!1}else a&&n.add(i);if(ac(i)&&!iE(i)){if(!e.h.D&&e._<1)return;p3(e,i),t&&t.A.l||g3(e,i)}}function g3(e,t,n){n===void 0&&(n=!1),!e.l&&e.h.D&&e.m&&rE(t,n)}function PC(e,t){var n=e[vr];return(n?fh(n):e)[t]}function AO(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function xd(e){e.P||(e.P=!0,e.l&&xd(e.l))}function TC(e){e.o||(e.o=nE(e.t))}function ck(e,t,n){var r=eE(t)?Ql("MapSet").F(t,n):tE(t)?Ql("MapSet").T(t,n):e.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:lk(),P:!1,I:!1,R:{},l:o,t:i,k:null,o:null,j:null,C:!1},l=s,u=Iy;a&&(l=[s],u=h1);var d=Proxy.revocable(l,u),h=d.revoke,m=d.proxy;return s.k=m,s.j=h,m}(t,n):Ql("ES5").J(t,n);return(n?n.A:lk()).p.push(r),r}function Exe(e){return Qd(e)||Vs(22,e),function t(n){if(!ac(n))return n;var r,i=n[vr],o=v0(n);if(i){if(!i.P&&(i.i<4||!Ql("ES5").K(i)))return i.t;i.I=!0,r=OO(n,o),i.I=!1}else r=OO(n,o);return Xh(r,function(a,s){i&&wxe(i.t,a)===s||mW(r,a,t(s))}),o===3?new Set(r):r}(e)}function OO(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return nE(e)}function Pxe(){function e(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var l=this[vr];return Iy.get(l,o)},set:function(l){var u=this[vr];Iy.set(u,o,l)}},s}function t(o){for(var a=o.length-1;a>=0;a--){var s=o[a][vr];if(!s.P)switch(s.i){case 5:r(s)&&xd(s);break;case 4:n(s)&&xd(s)}}}function n(o){for(var a=o.t,s=o.k,l=Tm(s),u=l.length-1;u>=0;u--){var d=l[u];if(d!==vr){var h=a[d];if(h===void 0&&!Pm(a,d))return!0;var m=s[d],y=m&&m[vr];if(y?y.t!==h:!vW(m,h))return!0}}var b=!!a[vr];return l.length!==Tm(a).length+(b?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var l=0;l1?_-1:0),T=1;T<_;T++)k[T-1]=arguments[T];return l.produce(w,function(L){var O;return(O=o).call.apply(O,[E,L].concat(k))})}}var u;if(typeof o!="function"&&Vs(6),a!==void 0&&typeof a!="function"&&Vs(7),ac(i)){var d=MO(r),h=ck(r,i,void 0),m=!0;try{u=o(h),m=!1}finally{m?h3(d):uk(d)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(w){return kC(d,a),EC(w,d)},function(w){throw h3(d),w}):(kC(d,a),EC(u,d))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===yW&&(u=void 0),r.D&&rE(u,!0),a){var y=[],b=[];Ql("Patches").M(i,u,y,b),a(y,b)}return u}Vs(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var d=arguments.length,h=Array(d>1?d-1:0),m=1;m=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=Ql("Patches").$;return Qd(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},e}(),Oa=new Axe,xW=Oa.produce;Oa.produceWithPatches.bind(Oa);Oa.setAutoFreeze.bind(Oa);Oa.setUseProxies.bind(Oa);Oa.applyPatches.bind(Oa);Oa.createDraft.bind(Oa);Oa.finishDraft.bind(Oa);function jO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function NO(e){for(var t=1;t"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(ro(1));return n(aE)(e,t)}if(typeof e!="function")throw new Error(ro(2));var i=e,o=t,a=[],s=a,l=!1;function u(){s===a&&(s=a.slice())}function d(){if(l)throw new Error(ro(3));return o}function h(w){if(typeof w!="function")throw new Error(ro(4));if(l)throw new Error(ro(5));var E=!0;return u(),s.push(w),function(){if(E){if(l)throw new Error(ro(6));E=!1,u();var k=s.indexOf(w);s.splice(k,1),a=null}}}function m(w){if(!Oxe(w))throw new Error(ro(7));if(typeof w.type>"u")throw new Error(ro(8));if(l)throw new Error(ro(9));try{l=!0,o=i(o,w)}finally{l=!1}for(var E=a=s,_=0;_"u")throw new Error(ro(12));if(typeof n(void 0,{type:m3.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(ro(13))})}function SW(e){for(var t=Object.keys(e),n={},r=0;r"u")throw u&&u.type,new Error(ro(14));h[y]=E,d=d||E!==w}return d=d||o.length!==Object.keys(l).length,d?h:l}}function v3(){for(var e=arguments.length,t=new Array(e),n=0;n-1){var u=n[l];return l>0&&(n.splice(l,1),n.unshift(u)),u.value}return y3}function i(s,l){r(s)===y3&&(n.unshift({key:s,value:l}),n.length>e&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var Nxe=function(t,n){return t===n};function $xe(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o1?t-1:0),r=1;r0&&o[o.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]{Object.keys(D).forEach(function(I){T(I)&&d[I]!==D[I]&&m.indexOf(I)===-1&&m.push(I)}),Object.keys(d).forEach(function(I){D[I]===void 0&&T(I)&&m.indexOf(I)===-1&&d[I]!==void 0&&m.push(I)}),y===null&&(y=setInterval(_,i)),d=D},o)}function _(){if(m.length===0){y&&clearInterval(y),y=null;return}var D=m.shift(),I=r.reduce(function(N,W){return W.in(N,D,d)},d[D]);if(I!==void 0)try{h[D]=l(I)}catch(N){console.error("redux-persist/createPersistoid: error serializing state",N)}else delete h[D];m.length===0&&k()}function k(){Object.keys(h).forEach(function(D){d[D]===void 0&&delete h[D]}),b=s.setItem(a,l(h)).catch(L)}function T(D){return!(n&&n.indexOf(D)===-1&&D!=="_persist"||t&&t.indexOf(D)!==-1)}function L(D){u&&u(D)}var O=function(){for(;m.length!==0;)_();return b||Promise.resolve()};return{update:E,flush:O}}function ySe(e){return JSON.stringify(e)}function bSe(e){var t=e.transforms||[],n="".concat(e.keyPrefix!==void 0?e.keyPrefix:lE).concat(e.key),r=e.storage;e.debug;var i;return e.deserialize===!1?i=function(a){return a}:typeof e.deserialize=="function"?i=e.deserialize:i=xSe,r.getItem(n).then(function(o){if(o)try{var a={},s=i(o);return Object.keys(s).forEach(function(l){a[l]=t.reduceRight(function(u,d){return d.out(u,l,s)},i(s[l]))}),a}catch(l){throw l}else return})}function xSe(e){return JSON.parse(e)}function SSe(e){var t=e.storage,n="".concat(e.keyPrefix!==void 0?e.keyPrefix:lE).concat(e.key);return t.removeItem(n,wSe)}function wSe(e){}function VO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ou(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kSe(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var ESe=5e3;function PSe(e,t){var n=e.version!==void 0?e.version:hSe;e.debug;var r=e.stateReconciler===void 0?mSe:e.stateReconciler,i=e.getStoredState||bSe,o=e.timeout!==void 0?e.timeout:ESe,a=null,s=!1,l=!0,u=function(h){return h._persist.rehydrated&&a&&!l&&a.update(h),h};return function(d,h){var m=d||{},y=m._persist,b=_Se(m,["_persist"]),w=b;if(h.type===PW){var E=!1,_=function(N,W){E||(h.rehydrate(e.key,N,W),E=!0)};if(o&&setTimeout(function(){!E&&_(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))},o),l=!1,a||(a=vSe(e)),y)return Ou({},t(w,h),{_persist:y});if(typeof h.rehydrate!="function"||typeof h.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return h.register(e.key),i(e).then(function(I){var N=e.migrate||function(W,B){return Promise.resolve(W)};N(I,n).then(function(W){_(W)},function(W){_(void 0,W)})},function(I){_(void 0,I)}),Ou({},t(w,h),{_persist:{version:n,rehydrated:!1}})}else{if(h.type===TW)return s=!0,h.result(SSe(e)),Ou({},t(w,h),{_persist:y});if(h.type===kW)return h.result(a&&a.flush()),Ou({},t(w,h),{_persist:y});if(h.type===EW)l=!0;else if(h.type===uE){if(s)return Ou({},w,{_persist:Ou({},y,{rehydrated:!0})});if(h.key===e.key){var k=t(w,h),T=h.payload,L=r!==!1&&T!==void 0?r(T,d,k,e):k,O=Ou({},L,{_persist:Ou({},y,{rehydrated:!0})});return u(O)}}}if(!y)return t(d,h);var D=t(w,h);return D===w?d:u(Ou({},D,{_persist:y}))}}function GO(e){return LSe(e)||MSe(e)||TSe()}function TSe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function MSe(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)==="[object Arguments]")return Array.from(e)}function LSe(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0&&arguments[0]!==void 0?arguments[0]:LW,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case MW:return hk({},t,{registry:[].concat(GO(t.registry),[n.key])});case uE:var r=t.registry.indexOf(n.key),i=GO(t.registry);return i.splice(r,1),hk({},t,{registry:i,bootstrapped:i.length===0});default:return t}};function RSe(e,t,n){var r=n||!1,i=aE(OSe,LW,t&&t.enhancer?t.enhancer:void 0),o=function(u){i.dispatch({type:MW,key:u})},a=function(u,d,h){var m={type:uE,payload:d,err:h,key:u};e.dispatch(m),i.dispatch(m),r&&s.getState().bootstrapped&&(r(),r=!1)},s=hk({},i,{purge:function(){var u=[];return e.dispatch({type:TW,result:function(h){u.push(h)}}),Promise.all(u)},flush:function(){var u=[];return e.dispatch({type:kW,result:function(h){u.push(h)}}),Promise.all(u)},pause:function(){e.dispatch({type:EW})},persist:function(){e.dispatch({type:PW,register:o,rehydrate:a})}});return t&&t.manualPersist||s.persist(),s}var cE={},dE={};dE.__esModule=!0;dE.default=jSe;function lS(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?lS=function(n){return typeof n}:lS=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},lS(e)}function OC(){}var ISe={getItem:OC,setItem:OC,removeItem:OC};function DSe(e){if((typeof self>"u"?"undefined":lS(self))!=="object"||!(e in self))return!1;try{var t=self[e],n="redux-persist ".concat(e," test");t.setItem(n,"test"),t.getItem(n),t.removeItem(n)}catch{return!1}return!0}function jSe(e){var t="".concat(e,"Storage");return DSe(t)?self[t]:ISe}cE.__esModule=!0;cE.default=FSe;var NSe=$Se(dE);function $Se(e){return e&&e.__esModule?e:{default:e}}function FSe(e){var t=(0,NSe.default)(e);return{getItem:function(r){return new Promise(function(i,o){i(t.getItem(r))})},setItem:function(r,i){return new Promise(function(o,a){o(t.setItem(r,i))})},removeItem:function(r){return new Promise(function(i,o){i(t.removeItem(r))})}}}var AW=void 0,BSe=zSe(cE);function zSe(e){return e&&e.__esModule?e:{default:e}}var HSe=(0,BSe.default)("local");AW=HSe;var OW={},RW={},Zh={};Object.defineProperty(Zh,"__esModule",{value:!0});Zh.PLACEHOLDER_UNDEFINED=Zh.PACKAGE_NAME=void 0;Zh.PACKAGE_NAME="redux-deep-persist";Zh.PLACEHOLDER_UNDEFINED="@@placeholder/undefined";var fE={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigType=void 0,function(t){t[t.WHITELIST=0]="WHITELIST",t[t.BLACKLIST=1]="BLACKLIST"}(e.ConfigType||(e.ConfigType={}))})(fE);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getRootKeysGroup=e.throwError=e.configValidator=e.transformsValidator=e.singleTransformValidator=e.findDuplicatesAndSubsets=e.unique=e.preserveUndefined=e.mergeDeep=e.dissocPath=e.assocPath=e.path=e.difference=e.cloneDeep=e._cloneDeep=e.getCircularPath=e.isEmpty=e.isDate=e.isString=e.isIntegerString=e.isPlainObject=e.isArray=e.isLength=e.isObjectLike=void 0;const t=Zh,n=fE,r=function(z){return typeof z=="object"&&z!==null};e.isObjectLike=r;const i=function(z){return typeof z=="number"&&z>-1&&z%1==0&&z<=Number.MAX_SAFE_INTEGER};e.isLength=i,e.isArray=Array.isArray||function(z){return(0,e.isLength)(z&&z.length)&&Object.prototype.toString.call(z)==="[object Array]"};const o=function(z){return!!z&&typeof z=="object"&&!(0,e.isArray)(z)};e.isPlainObject=o;const a=function(z){return String(~~z)===z&&Number(z)>=0};e.isIntegerString=a;const s=function(z){return Object.prototype.toString.call(z)==="[object String]"};e.isString=s;const l=function(z){return Object.prototype.toString.call(z)==="[object Date]"};e.isDate=l;const u=function(z){return Object.keys(z).length===0};e.isEmpty=u;const d=Object.prototype.hasOwnProperty,h=function(z,$,V){V||(V=new Set([z])),$||($="");for(const X in z){const Q=$?`${$}.${X}`:X,G=z[X];if((0,e.isObjectLike)(G))return V.has(G)?`${$}.${X}:`:(V.add(G),(0,e.getCircularPath)(G,Q,V))}return null};e.getCircularPath=h;const m=function(z){if(!(0,e.isObjectLike)(z))return z;if((0,e.isDate)(z))return new Date(+z);const $=(0,e.isArray)(z)?[]:{};for(const V in z){const X=z[V];$[V]=(0,e._cloneDeep)(X)}return $};e._cloneDeep=m;const y=function(z){const $=(0,e.getCircularPath)(z);if($)throw new Error(`${t.PACKAGE_NAME}: circular dependency detected under the path '${$}' of object you're trying to persist: ${z}`);return(0,e._cloneDeep)(z)};e.cloneDeep=y;const b=function(z,$){if(z===$)return{};if(!(0,e.isObjectLike)(z)||!(0,e.isObjectLike)($))return $;const V=(0,e.cloneDeep)(z),X=(0,e.cloneDeep)($),Q=Object.keys(V).reduce((Y,ee)=>(d.call(X,ee)||(Y[ee]=void 0),Y),{});if((0,e.isDate)(V)||(0,e.isDate)(X))return V.valueOf()===X.valueOf()?{}:X;const G=Object.keys(X).reduce((Y,ee)=>{if(!d.call(V,ee))return Y[ee]=X[ee],Y;const fe=(0,e.difference)(V[ee],X[ee]);return(0,e.isObjectLike)(fe)&&(0,e.isEmpty)(fe)&&!(0,e.isDate)(fe)?(0,e.isArray)(V)&&!(0,e.isArray)(X)||!(0,e.isArray)(V)&&(0,e.isArray)(X)?X:Y:(Y[ee]=fe,Y)},Q);return delete G._persist,G};e.difference=b;const w=function(z,$){return $.reduce((V,X)=>{if(V){const Q=parseInt(X,10),G=(0,e.isIntegerString)(X)&&Q<0?V.length+Q:X;return(0,e.isString)(V)?V.charAt(G):V[G]}},z)};e.path=w;const E=function(z,$){return[...z].reverse().reduce((Q,G,Y)=>{const ee=(0,e.isIntegerString)(G)?[]:{};return ee[G]=Y===0?$:Q,ee},{})};e.assocPath=E;const _=function(z,$){const V=(0,e.cloneDeep)(z);return $.reduce((X,Q,G)=>(G===$.length-1&&X&&(0,e.isObjectLike)(X)&&delete X[Q],X&&X[Q]),V),V};e.dissocPath=_;const k=function(z,$,...V){if(!V||!V.length)return $;const X=V.shift(),{preservePlaceholder:Q,preserveUndefined:G}=z;if((0,e.isObjectLike)($)&&(0,e.isObjectLike)(X))for(const Y in X)if((0,e.isObjectLike)(X[Y])&&(0,e.isObjectLike)($[Y]))$[Y]||($[Y]={}),k(z,$[Y],X[Y]);else if((0,e.isArray)($)){let ee=X[Y];const fe=Q?t.PLACEHOLDER_UNDEFINED:void 0;G||(ee=typeof ee<"u"?ee:$[parseInt(Y,10)]),ee=ee!==t.PLACEHOLDER_UNDEFINED?ee:fe,$[parseInt(Y,10)]=ee}else{const ee=X[Y]!==t.PLACEHOLDER_UNDEFINED?X[Y]:void 0;$[Y]=ee}return k(z,$,...V)},T=function(z,$,V){return k({preservePlaceholder:V==null?void 0:V.preservePlaceholder,preserveUndefined:V==null?void 0:V.preserveUndefined},(0,e.cloneDeep)(z),(0,e.cloneDeep)($))};e.mergeDeep=T;const L=function(z,$=[],V,X,Q){if(!(0,e.isObjectLike)(z))return z;for(const G in z){const Y=z[G],ee=(0,e.isArray)(z),fe=X?X+"."+G:G;Y===null&&(V===n.ConfigType.WHITELIST&&$.indexOf(fe)===-1||V===n.ConfigType.BLACKLIST&&$.indexOf(fe)!==-1)&&ee&&(z[parseInt(G,10)]=void 0),Y===void 0&&Q&&V===n.ConfigType.BLACKLIST&&$.indexOf(fe)===-1&&ee&&(z[parseInt(G,10)]=t.PLACEHOLDER_UNDEFINED),L(Y,$,V,fe,Q)}},O=function(z,$,V,X){const Q=(0,e.cloneDeep)(z);return L(Q,$,V,"",X),Q};e.preserveUndefined=O;const D=function(z,$,V){return V.indexOf(z)===$};e.unique=D;const I=function(z){return z.reduce(($,V)=>{const X=z.filter(Ce=>Ce===V),Q=z.filter(Ce=>(V+".").indexOf(Ce+".")===0),{duplicates:G,subsets:Y}=$,ee=X.length>1&&G.indexOf(V)===-1,fe=Q.length>1;return{duplicates:[...G,...ee?X:[]],subsets:[...Y,...fe?Q:[]].filter(e.unique).sort()}},{duplicates:[],subsets:[]})};e.findDuplicatesAndSubsets=I;const N=function(z,$,V){const X=V===n.ConfigType.WHITELIST?"whitelist":"blacklist",Q=`${t.PACKAGE_NAME}: incorrect ${X} configuration.`,G=`Check your create${V===n.ConfigType.WHITELIST?"White":"Black"}list arguments. - -`;if(!(0,e.isString)($)||$.length<1)throw new Error(`${Q} Name (key) of reducer is required. ${G}`);if(!z||!z.length)return;const{duplicates:Y,subsets:ee}=(0,e.findDuplicatesAndSubsets)(z);if(Y.length>1)throw new Error(`${Q} Duplicated paths. - - ${JSON.stringify(Y)} - - ${G}`);if(ee.length>1)throw new Error(`${Q} You are trying to persist an entire property and also some of its subset. - -${JSON.stringify(ee)} - - ${G}`)};e.singleTransformValidator=N;const W=function(z){if(!(0,e.isArray)(z))return;const $=(z==null?void 0:z.map(V=>V.deepPersistKey).filter(V=>V))||[];if($.length){const V=$.filter((X,Q)=>$.indexOf(X)!==Q);if(V.length)throw new Error(`${t.PACKAGE_NAME}: found duplicated keys in transforms creators. You can createWhitelist or createBlacklist for a specific root reducer key only once. Duplicated keys among createWhitelist and createBlacklist transforms are not allowed. - - Duplicates: ${JSON.stringify(V)}`)}};e.transformsValidator=W;const B=function({whitelist:z,blacklist:$}){if(z&&z.length&&$&&$.length)throw new Error(`${t.PACKAGE_NAME}: you should not define a whitelist and blacklist in parallel. It is allowed to use only one of these lists per config.`);if(z){const{duplicates:V,subsets:X}=(0,e.findDuplicatesAndSubsets)(z);(0,e.throwError)({duplicates:V,subsets:X},"whitelist")}if($){const{duplicates:V,subsets:X}=(0,e.findDuplicatesAndSubsets)($);(0,e.throwError)({duplicates:V,subsets:X},"blacklist")}};e.configValidator=B;const K=function({duplicates:z,subsets:$},V){if(z.length)throw new Error(`${t.PACKAGE_NAME}: duplicates of paths found in your ${V}. - - ${JSON.stringify(z)}`);if($.length)throw new Error(`${t.PACKAGE_NAME}: subsets of some parent keys found in your ${V}. You must decide if you want to persist an entire path or its specific subset. - - ${JSON.stringify($)}`)};e.throwError=K;const ne=function(z){return(0,e.isArray)(z)?z.filter(e.unique).reduce(($,V)=>{const X=V.split("."),Q=X[0],G=X.slice(1).join(".")||void 0,Y=$.filter(fe=>Object.keys(fe)[0]===Q)[0],ee=Y?Object.values(Y)[0]:void 0;return Y||$.push({[Q]:G?[G]:void 0}),Y&&!ee&&G&&(Y[Q]=[G]),Y&&ee&&G&&ee.push(G),$},[]):[]};e.getRootKeysGroup=ne})(RW);(function(e){var t=So&&So.__rest||function(h,m){var y={};for(var b in h)Object.prototype.hasOwnProperty.call(h,b)&&m.indexOf(b)<0&&(y[b]=h[b]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,b=Object.getOwnPropertySymbols(h);w!E(k)&&h?h(_,k,T):_,out:(_,k,T)=>!E(k)&&m?m(_,k,T):_,deepPersistKey:b&&b[0]}},a=(h,m,y,{debug:b,whitelist:w,blacklist:E,transforms:_})=>{if(w||E)throw new Error("State reconciler autoMergeDeep uses custom transforms instead of old whitelist or blacklist config properties. Please use createWhitelist or createBlacklist transforms.");(0,n.transformsValidator)(_);const k=(0,n.cloneDeep)(y);let T=h;if(T&&(0,n.isObjectLike)(T)){const L=(0,n.difference)(m,y);(0,n.isEmpty)(L)||(T=(0,n.mergeDeep)(h,L,{preserveUndefined:!0}),b&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: sub state of your state was modified by reducer during rehydration. Values from reducer will be kept: ${JSON.stringify(L)}`)),Object.keys(T).forEach(O=>{if(O!=="_persist"){if((0,n.isObjectLike)(k[O])){k[O]=(0,n.mergeDeep)(k[O],T[O]);return}k[O]=T[O]}})}return b&&T&&(0,n.isObjectLike)(T)&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: rehydrated keys ${JSON.stringify(T)}`),k};e.autoMergeDeep=a;const s=(h,m)=>((0,n.singleTransformValidator)(m,h,i.ConfigType.WHITELIST),o(y=>{if(!m||!m.length)return y;let b=null,w;return m.forEach(E=>{const _=E.split(".");w=(0,n.path)(y,_),typeof w>"u"&&(0,n.isIntegerString)(_[_.length-1])&&(w=r.PLACEHOLDER_UNDEFINED);const k=(0,n.assocPath)(_,w),T=(0,n.isArray)(k)?[]:{};b=(0,n.mergeDeep)(b||T,k,{preservePlaceholder:!0})}),b||y},y=>(0,n.preserveUndefined)(y,m,i.ConfigType.WHITELIST),{whitelist:[h]}));e.createWhitelist=s;const l=(h,m)=>((0,n.singleTransformValidator)(m,h,i.ConfigType.BLACKLIST),o(y=>{if(!m||!m.length)return;const b=(0,n.preserveUndefined)(y,m,i.ConfigType.BLACKLIST,!0);return m.map(E=>E.split(".")).reduce((E,_)=>(0,n.dissocPath)(E,_),b)},y=>(0,n.preserveUndefined)(y,m,i.ConfigType.BLACKLIST),{whitelist:[h]}));e.createBlacklist=l;const u=function(h,m){return m.map(y=>{const b=Object.keys(y)[0],w=y[b];return h===i.ConfigType.WHITELIST?(0,e.createWhitelist)(b,w):(0,e.createBlacklist)(b,w)})};e.getTransforms=u;const d=h=>{var{key:m,whitelist:y,blacklist:b,storage:w,transforms:E,rootReducer:_}=h,k=t(h,["key","whitelist","blacklist","storage","transforms","rootReducer"]);(0,n.configValidator)({whitelist:y,blacklist:b});const T=(0,n.getRootKeysGroup)(y),L=(0,n.getRootKeysGroup)(b),O=Object.keys(_(void 0,{type:""})),D=T.map(ne=>Object.keys(ne)[0]),I=L.map(ne=>Object.keys(ne)[0]),N=O.filter(ne=>D.indexOf(ne)===-1&&I.indexOf(ne)===-1),W=(0,e.getTransforms)(i.ConfigType.WHITELIST,T),B=(0,e.getTransforms)(i.ConfigType.BLACKLIST,L),K=(0,n.isArray)(y)?N.map(ne=>(0,e.createBlacklist)(ne)):[];return Object.assign(Object.assign({},k),{key:m,storage:w,transforms:[...W,...B,...K,...E||[]],stateReconciler:e.autoMergeDeep})};e.getPersistConfig=d})(OW);const Cd=(e,t)=>Math.floor(e/t)*t,Hl=(e,t)=>Math.round(e/t)*t;var Pe={},WSe={get exports(){return Pe},set exports(e){Pe=e}};/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",u=500,d="__lodash_placeholder__",h=1,m=2,y=4,b=1,w=2,E=1,_=2,k=4,T=8,L=16,O=32,D=64,I=128,N=256,W=512,B=30,K="...",ne=800,z=16,$=1,V=2,X=3,Q=1/0,G=9007199254740991,Y=17976931348623157e292,ee=0/0,fe=4294967295,Ce=fe-1,we=fe>>>1,xe=[["ary",I],["bind",E],["bindKey",_],["curry",T],["curryRight",L],["flip",W],["partial",O],["partialRight",D],["rearg",N]],Le="[object Arguments]",Se="[object Array]",Qe="[object AsyncFunction]",Xe="[object Boolean]",tt="[object Date]",yt="[object DOMException]",Be="[object Error]",Ae="[object Function]",bt="[object GeneratorFunction]",Fe="[object Map]",at="[object Number]",jt="[object Null]",mt="[object Object]",Zt="[object Promise]",on="[object Proxy]",se="[object RegExp]",Ie="[object Set]",He="[object String]",Ue="[object Symbol]",ye="[object Undefined]",je="[object WeakMap]",vt="[object WeakSet]",Mt="[object ArrayBuffer]",Me="[object DataView]",Ct="[object Float32Array]",zt="[object Float64Array]",$n="[object Int8Array]",qe="[object Int16Array]",pt="[object Int32Array]",zr="[object Uint8Array]",rr="[object Uint8ClampedArray]",Bn="[object Uint16Array]",li="[object Uint32Array]",vs=/\b__p \+= '';/g,tl=/\b(__p \+=) '' \+/g,gf=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ys=/&(?:amp|lt|gt|quot|#39);/g,Xi=/[&<>"']/g,_0=RegExp(ys.source),Na=RegExp(Xi.source),wp=/<%-([\s\S]+?)%>/g,k0=/<%([\s\S]+?)%>/g,bc=/<%=([\s\S]+?)%>/g,Cp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_p=/^\w*$/,na=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mf=/[\\^$.*+?()[\]{}|]/g,E0=RegExp(mf.source),xc=/^\s+/,vf=/\s/,P0=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,nl=/\{\n\/\* \[wrapped with (.+)\] \*/,Sc=/,? & /,T0=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,M0=/[()=,{}\[\]\/\s]/,L0=/\\(\\)?/g,A0=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,bs=/\w*$/,O0=/^[-+]0x[0-9a-f]+$/i,R0=/^0b[01]+$/i,I0=/^\[object .+?Constructor\]$/,D0=/^0o[0-7]+$/i,j0=/^(?:0|[1-9]\d*)$/,N0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rl=/($^)/,$0=/['\n\r\u2028\u2029\\]/g,xs="\\ud800-\\udfff",fu="\\u0300-\\u036f",hu="\\ufe20-\\ufe2f",il="\\u20d0-\\u20ff",pu=fu+hu+il,kp="\\u2700-\\u27bf",wc="a-z\\xdf-\\xf6\\xf8-\\xff",ol="\\xac\\xb1\\xd7\\xf7",ra="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Mn="\\u2000-\\u206f",wn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ia="A-Z\\xc0-\\xd6\\xd8-\\xde",Hr="\\ufe0e\\ufe0f",ui=ol+ra+Mn+wn,oa="['’]",al="["+xs+"]",ci="["+ui+"]",Ss="["+pu+"]",yf="\\d+",gu="["+kp+"]",ws="["+wc+"]",bf="[^"+xs+ui+yf+kp+wc+ia+"]",Ri="\\ud83c[\\udffb-\\udfff]",Ep="(?:"+Ss+"|"+Ri+")",Pp="[^"+xs+"]",xf="(?:\\ud83c[\\udde6-\\uddff]){2}",sl="[\\ud800-\\udbff][\\udc00-\\udfff]",Mo="["+ia+"]",ll="\\u200d",mu="(?:"+ws+"|"+bf+")",F0="(?:"+Mo+"|"+bf+")",Cc="(?:"+oa+"(?:d|ll|m|re|s|t|ve))?",_c="(?:"+oa+"(?:D|LL|M|RE|S|T|VE))?",Sf=Ep+"?",kc="["+Hr+"]?",$a="(?:"+ll+"(?:"+[Pp,xf,sl].join("|")+")"+kc+Sf+")*",wf="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",vu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Gt=kc+Sf+$a,Tp="(?:"+[gu,xf,sl].join("|")+")"+Gt,Ec="(?:"+[Pp+Ss+"?",Ss,xf,sl,al].join("|")+")",Pc=RegExp(oa,"g"),Mp=RegExp(Ss,"g"),aa=RegExp(Ri+"(?="+Ri+")|"+Ec+Gt,"g"),Xn=RegExp([Mo+"?"+ws+"+"+Cc+"(?="+[ci,Mo,"$"].join("|")+")",F0+"+"+_c+"(?="+[ci,Mo+mu,"$"].join("|")+")",Mo+"?"+mu+"+"+Cc,Mo+"+"+_c,vu,wf,yf,Tp].join("|"),"g"),Cf=RegExp("["+ll+xs+pu+Hr+"]"),Lp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,_f=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ap=-1,cn={};cn[Ct]=cn[zt]=cn[$n]=cn[qe]=cn[pt]=cn[zr]=cn[rr]=cn[Bn]=cn[li]=!0,cn[Le]=cn[Se]=cn[Mt]=cn[Xe]=cn[Me]=cn[tt]=cn[Be]=cn[Ae]=cn[Fe]=cn[at]=cn[mt]=cn[se]=cn[Ie]=cn[He]=cn[je]=!1;var qt={};qt[Le]=qt[Se]=qt[Mt]=qt[Me]=qt[Xe]=qt[tt]=qt[Ct]=qt[zt]=qt[$n]=qt[qe]=qt[pt]=qt[Fe]=qt[at]=qt[mt]=qt[se]=qt[Ie]=qt[He]=qt[Ue]=qt[zr]=qt[rr]=qt[Bn]=qt[li]=!0,qt[Be]=qt[Ae]=qt[je]=!1;var Op={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},B0={"&":"&","<":"<",">":">",'"':""","'":"'"},q={"&":"&","<":"<",">":">",""":'"',"'":"'"},re={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pe=parseFloat,ot=parseInt,Ht=typeof So=="object"&&So&&So.Object===Object&&So,mn=typeof self=="object"&&self&&self.Object===Object&&self,St=Ht||mn||Function("return this")(),Ot=t&&!t.nodeType&&t,Kt=Ot&&!0&&e&&!e.nodeType&&e,Jr=Kt&&Kt.exports===Ot,Ar=Jr&&Ht.process,vn=function(){try{var ie=Kt&&Kt.require&&Kt.require("util").types;return ie||Ar&&Ar.binding&&Ar.binding("util")}catch{}}(),di=vn&&vn.isArrayBuffer,Lo=vn&&vn.isDate,uo=vn&&vn.isMap,Fa=vn&&vn.isRegExp,ul=vn&&vn.isSet,z0=vn&&vn.isTypedArray;function Ii(ie,be,me){switch(me.length){case 0:return ie.call(be);case 1:return ie.call(be,me[0]);case 2:return ie.call(be,me[0],me[1]);case 3:return ie.call(be,me[0],me[1],me[2])}return ie.apply(be,me)}function H0(ie,be,me,rt){for(var Lt=-1,en=ie==null?0:ie.length;++Lt-1}function Rp(ie,be,me){for(var rt=-1,Lt=ie==null?0:ie.length;++rt-1;);return me}function Cs(ie,be){for(var me=ie.length;me--&&Lc(be,ie[me],0)>-1;);return me}function U0(ie,be){for(var me=ie.length,rt=0;me--;)ie[me]===be&&++rt;return rt}var A2=Tf(Op),_s=Tf(B0);function dl(ie){return"\\"+re[ie]}function Dp(ie,be){return ie==null?n:ie[be]}function bu(ie){return Cf.test(ie)}function jp(ie){return Lp.test(ie)}function O2(ie){for(var be,me=[];!(be=ie.next()).done;)me.push(be.value);return me}function Np(ie){var be=-1,me=Array(ie.size);return ie.forEach(function(rt,Lt){me[++be]=[Lt,rt]}),me}function $p(ie,be){return function(me){return ie(be(me))}}function ua(ie,be){for(var me=-1,rt=ie.length,Lt=0,en=[];++me-1}function Z2(c,v){var C=this.__data__,A=Ur(C,c);return A<0?(++this.size,C.push([c,v])):C[A][1]=v,this}ca.prototype.clear=Y2,ca.prototype.delete=X2,ca.prototype.get=ov,ca.prototype.has=av,ca.prototype.set=Z2;function da(c){var v=-1,C=c==null?0:c.length;for(this.clear();++v=v?c:v)),c}function wi(c,v,C,A,j,H){var Z,te=v&h,ce=v&m,_e=v&y;if(C&&(Z=j?C(c,A,j,H):C(c)),Z!==n)return Z;if(!Cr(c))return c;var Ee=$t(c);if(Ee){if(Z=kK(c),!te)return Bi(c,Z)}else{var Re=ki(c),nt=Re==Ae||Re==bt;if(id(c))return wl(c,te);if(Re==mt||Re==Le||nt&&!j){if(Z=ce||nt?{}:AP(c),!te)return ce?_v(c,Kc(Z,c)):No(c,st(Z,c))}else{if(!qt[Re])return j?c:{};Z=EK(c,Re,te)}}H||(H=new Rr);var gt=H.get(c);if(gt)return gt;H.set(c,Z),aT(c)?c.forEach(function(kt){Z.add(wi(kt,v,C,kt,c,H))}):iT(c)&&c.forEach(function(kt,Xt){Z.set(Xt,wi(kt,v,C,Xt,c,H))});var _t=_e?ce?ge:ma:ce?Fo:Ei,Vt=Ee?n:_t(c);return Zn(Vt||c,function(kt,Xt){Vt&&(Xt=kt,kt=c[Xt]),pl(Z,Xt,wi(kt,v,C,Xt,c,H))}),Z}function Gp(c){var v=Ei(c);return function(C){return qp(C,c,v)}}function qp(c,v,C){var A=C.length;if(c==null)return!A;for(c=dn(c);A--;){var j=C[A],H=v[j],Z=c[j];if(Z===n&&!(j in c)||!H(Z))return!1}return!0}function cv(c,v,C){if(typeof c!="function")throw new Di(a);return Mv(function(){c.apply(n,C)},v)}function Yc(c,v,C,A){var j=-1,H=Zi,Z=!0,te=c.length,ce=[],_e=v.length;if(!te)return ce;C&&(v=Hn(v,Wr(C))),A?(H=Rp,Z=!1):v.length>=i&&(H=Oc,Z=!1,v=new Wa(v));e:for(;++jj?0:j+C),A=A===n||A>j?j:Ft(A),A<0&&(A+=j),A=C>A?0:lT(A);C0&&C(te)?v>1?Vr(te,v-1,C,A,j):Ba(j,te):A||(j[j.length]=te)}return j}var Yp=Cl(),Io=Cl(!0);function ga(c,v){return c&&Yp(c,v,Ei)}function Do(c,v){return c&&Io(c,v,Ei)}function Xp(c,v){return Oo(v,function(C){return Tu(c[C])})}function gl(c,v){v=Sl(v,c);for(var C=0,A=v.length;c!=null&&Cv}function Qp(c,v){return c!=null&&an.call(c,v)}function Jp(c,v){return c!=null&&v in dn(c)}function eg(c,v,C){return c>=hi(v,C)&&c=120&&Ee.length>=120)?new Wa(Z&&Ee):n}Ee=c[0];var Re=-1,nt=te[0];e:for(;++Re-1;)te!==c&&jf.call(te,ce,1),jf.call(c,ce,1);return c}function Vf(c,v){for(var C=c?v.length:0,A=C-1;C--;){var j=v[C];if(C==A||j!==H){var H=j;Pu(j)?jf.call(c,j,1):cg(c,j)}}return c}function Gf(c,v){return c+Su(J0()*(v-c+1))}function bl(c,v,C,A){for(var j=-1,H=Or(Ff((v-c)/(C||1)),0),Z=me(H);H--;)Z[A?H:++j]=c,c+=C;return Z}function td(c,v){var C="";if(!c||v<1||v>G)return C;do v%2&&(C+=c),v=Su(v/2),v&&(c+=c);while(v);return C}function Tt(c,v){return U4(IP(c,v,Bo),c+"")}function og(c){return qc(vg(c))}function qf(c,v){var C=vg(c);return ob(C,Cu(v,0,C.length))}function ku(c,v,C,A){if(!Cr(c))return c;v=Sl(v,c);for(var j=-1,H=v.length,Z=H-1,te=c;te!=null&&++jj?0:j+v),C=C>j?j:C,C<0&&(C+=j),j=v>C?0:C-v>>>0,v>>>=0;for(var H=me(j);++A>>1,Z=c[H];Z!==null&&!va(Z)&&(C?Z<=v:Z=i){var _e=v?null:U(c);if(_e)return Of(_e);Z=!1,j=Oc,ce=new Wa}else ce=v?[]:te;e:for(;++A=A?c:qr(c,v,C)}var xv=N2||function(c){return St.clearTimeout(c)};function wl(c,v){if(v)return c.slice();var C=c.length,A=Nc?Nc(C):new c.constructor(C);return c.copy(A),A}function Sv(c){var v=new c.constructor(c.byteLength);return new ji(v).set(new ji(c)),v}function Eu(c,v){var C=v?Sv(c.buffer):c.buffer;return new c.constructor(C,c.byteOffset,c.byteLength)}function tb(c){var v=new c.constructor(c.source,bs.exec(c));return v.lastIndex=c.lastIndex,v}function Qn(c){return zf?dn(zf.call(c)):{}}function nb(c,v){var C=v?Sv(c.buffer):c.buffer;return new c.constructor(C,c.byteOffset,c.length)}function wv(c,v){if(c!==v){var C=c!==n,A=c===null,j=c===c,H=va(c),Z=v!==n,te=v===null,ce=v===v,_e=va(v);if(!te&&!_e&&!H&&c>v||H&&Z&&ce&&!te&&!_e||A&&Z&&ce||!C&&ce||!j)return 1;if(!A&&!H&&!_e&&c=te)return ce;var _e=C[A];return ce*(_e=="desc"?-1:1)}}return c.index-v.index}function rb(c,v,C,A){for(var j=-1,H=c.length,Z=C.length,te=-1,ce=v.length,_e=Or(H-Z,0),Ee=me(ce+_e),Re=!A;++te1?C[j-1]:n,Z=j>2?C[2]:n;for(H=c.length>3&&typeof H=="function"?(j--,H):n,Z&&mo(C[0],C[1],Z)&&(H=j<3?n:H,j=1),v=dn(v);++A-1?j[H?v[Z]:Z]:n}}function Ev(c){return gr(function(v){var C=v.length,A=C,j=fo.prototype.thru;for(c&&v.reverse();A--;){var H=v[A];if(typeof H!="function")throw new Di(a);if(j&&!Z&&ve(H)=="wrapper")var Z=new fo([],!0)}for(A=Z?A:C;++A1&&tn.reverse(),Ee&&cete))return!1;var _e=H.get(c),Ee=H.get(v);if(_e&&Ee)return _e==v&&Ee==c;var Re=-1,nt=!0,gt=C&w?new Wa:n;for(H.set(c,v),H.set(v,c);++Re1?"& ":"")+v[A],v=v.join(C>2?", ":" "),c.replace(P0,`{ -/* [wrapped with `+v+`] */ -`)}function TK(c){return $t(c)||th(c)||!!(Z0&&c&&c[Z0])}function Pu(c,v){var C=typeof c;return v=v??G,!!v&&(C=="number"||C!="symbol"&&j0.test(c))&&c>-1&&c%1==0&&c0){if(++v>=ne)return arguments[0]}else v=0;return c.apply(n,arguments)}}function ob(c,v){var C=-1,A=c.length,j=A-1;for(v=v===n?A:v;++C1?c[v-1]:n;return C=typeof C=="function"?(c.pop(),C):n,GP(c,C)});function qP(c){var v=F(c);return v.__chain__=!0,v}function FY(c,v){return v(c),c}function ab(c,v){return v(c)}var BY=gr(function(c){var v=c.length,C=v?c[0]:0,A=this.__wrapped__,j=function(H){return Vp(H,c)};return v>1||this.__actions__.length||!(A instanceof Yt)||!Pu(C)?this.thru(j):(A=A.slice(C,+C+(v?1:0)),A.__actions__.push({func:ab,args:[j],thisArg:n}),new fo(A,this.__chain__).thru(function(H){return v&&!H.length&&H.push(n),H}))});function zY(){return qP(this)}function HY(){return new fo(this.value(),this.__chain__)}function WY(){this.__values__===n&&(this.__values__=sT(this.value()));var c=this.__index__>=this.__values__.length,v=c?n:this.__values__[this.__index__++];return{done:c,value:v}}function UY(){return this}function VY(c){for(var v,C=this;C instanceof Hf;){var A=BP(C);A.__index__=0,A.__values__=n,v?j.__wrapped__=A:v=A;var j=A;C=C.__wrapped__}return j.__wrapped__=c,v}function GY(){var c=this.__wrapped__;if(c instanceof Yt){var v=c;return this.__actions__.length&&(v=new Yt(this)),v=v.reverse(),v.__actions__.push({func:ab,args:[V4],thisArg:n}),new fo(v,this.__chain__)}return this.thru(V4)}function qY(){return xl(this.__wrapped__,this.__actions__)}var KY=fg(function(c,v,C){an.call(c,C)?++c[C]:fa(c,C,1)});function YY(c,v,C){var A=$t(c)?zn:dv;return C&&mo(c,v,C)&&(v=n),A(c,Oe(v,3))}function XY(c,v){var C=$t(c)?Oo:pa;return C(c,Oe(v,3))}var ZY=kv(zP),QY=kv(HP);function JY(c,v){return Vr(sb(c,v),1)}function eX(c,v){return Vr(sb(c,v),Q)}function tX(c,v,C){return C=C===n?1:Ft(C),Vr(sb(c,v),C)}function KP(c,v){var C=$t(c)?Zn:Ps;return C(c,Oe(v,3))}function YP(c,v){var C=$t(c)?Ao:Kp;return C(c,Oe(v,3))}var nX=fg(function(c,v,C){an.call(c,C)?c[C].push(v):fa(c,C,[v])});function rX(c,v,C,A){c=$o(c)?c:vg(c),C=C&&!A?Ft(C):0;var j=c.length;return C<0&&(C=Or(j+C,0)),fb(c)?C<=j&&c.indexOf(v,C)>-1:!!j&&Lc(c,v,C)>-1}var iX=Tt(function(c,v,C){var A=-1,j=typeof v=="function",H=$o(c)?me(c.length):[];return Ps(c,function(Z){H[++A]=j?Ii(v,Z,C):Ts(Z,v,C)}),H}),oX=fg(function(c,v,C){fa(c,C,v)});function sb(c,v){var C=$t(c)?Hn:Dr;return C(c,Oe(v,3))}function aX(c,v,C,A){return c==null?[]:($t(v)||(v=v==null?[]:[v]),C=A?n:C,$t(C)||(C=C==null?[]:[C]),$i(c,v,C))}var sX=fg(function(c,v,C){c[C?0:1].push(v)},function(){return[[],[]]});function lX(c,v,C){var A=$t(c)?kf:Ip,j=arguments.length<3;return A(c,Oe(v,4),C,j,Ps)}function uX(c,v,C){var A=$t(c)?P2:Ip,j=arguments.length<3;return A(c,Oe(v,4),C,j,Kp)}function cX(c,v){var C=$t(c)?Oo:pa;return C(c,cb(Oe(v,3)))}function dX(c){var v=$t(c)?qc:og;return v(c)}function fX(c,v,C){(C?mo(c,v,C):v===n)?v=1:v=Ft(v);var A=$t(c)?Si:qf;return A(c,v)}function hX(c){var v=$t(c)?j4:_i;return v(c)}function pX(c){if(c==null)return 0;if($o(c))return fb(c)?za(c):c.length;var v=ki(c);return v==Fe||v==Ie?c.size:Gr(c).length}function gX(c,v,C){var A=$t(c)?Tc:jo;return C&&mo(c,v,C)&&(v=n),A(c,Oe(v,3))}var mX=Tt(function(c,v){if(c==null)return[];var C=v.length;return C>1&&mo(c,v[0],v[1])?v=[]:C>2&&mo(v[0],v[1],v[2])&&(v=[v[0]]),$i(c,Vr(v,1),[])}),lb=$2||function(){return St.Date.now()};function vX(c,v){if(typeof v!="function")throw new Di(a);return c=Ft(c),function(){if(--c<1)return v.apply(this,arguments)}}function XP(c,v,C){return v=C?n:v,v=c&&v==null?c.length:v,he(c,I,n,n,n,n,v)}function ZP(c,v){var C;if(typeof v!="function")throw new Di(a);return c=Ft(c),function(){return--c>0&&(C=v.apply(this,arguments)),c<=1&&(v=n),C}}var q4=Tt(function(c,v,C){var A=E;if(C.length){var j=ua(C,et(q4));A|=O}return he(c,A,v,C,j)}),QP=Tt(function(c,v,C){var A=E|_;if(C.length){var j=ua(C,et(QP));A|=O}return he(v,A,c,C,j)});function JP(c,v,C){v=C?n:v;var A=he(c,T,n,n,n,n,n,v);return A.placeholder=JP.placeholder,A}function eT(c,v,C){v=C?n:v;var A=he(c,L,n,n,n,n,n,v);return A.placeholder=eT.placeholder,A}function tT(c,v,C){var A,j,H,Z,te,ce,_e=0,Ee=!1,Re=!1,nt=!0;if(typeof c!="function")throw new Di(a);v=Ga(v)||0,Cr(C)&&(Ee=!!C.leading,Re="maxWait"in C,H=Re?Or(Ga(C.maxWait)||0,v):H,nt="trailing"in C?!!C.trailing:nt);function gt(Yr){var Rs=A,Lu=j;return A=j=n,_e=Yr,Z=c.apply(Lu,Rs),Z}function _t(Yr){return _e=Yr,te=Mv(Xt,v),Ee?gt(Yr):Z}function Vt(Yr){var Rs=Yr-ce,Lu=Yr-_e,xT=v-Rs;return Re?hi(xT,H-Lu):xT}function kt(Yr){var Rs=Yr-ce,Lu=Yr-_e;return ce===n||Rs>=v||Rs<0||Re&&Lu>=H}function Xt(){var Yr=lb();if(kt(Yr))return tn(Yr);te=Mv(Xt,Vt(Yr))}function tn(Yr){return te=n,nt&&A?gt(Yr):(A=j=n,Z)}function ya(){te!==n&&xv(te),_e=0,A=ce=j=te=n}function vo(){return te===n?Z:tn(lb())}function ba(){var Yr=lb(),Rs=kt(Yr);if(A=arguments,j=this,ce=Yr,Rs){if(te===n)return _t(ce);if(Re)return xv(te),te=Mv(Xt,v),gt(ce)}return te===n&&(te=Mv(Xt,v)),Z}return ba.cancel=ya,ba.flush=vo,ba}var yX=Tt(function(c,v){return cv(c,1,v)}),bX=Tt(function(c,v,C){return cv(c,Ga(v)||0,C)});function xX(c){return he(c,W)}function ub(c,v){if(typeof c!="function"||v!=null&&typeof v!="function")throw new Di(a);var C=function(){var A=arguments,j=v?v.apply(this,A):A[0],H=C.cache;if(H.has(j))return H.get(j);var Z=c.apply(this,A);return C.cache=H.set(j,Z)||H,Z};return C.cache=new(ub.Cache||da),C}ub.Cache=da;function cb(c){if(typeof c!="function")throw new Di(a);return function(){var v=arguments;switch(v.length){case 0:return!c.call(this);case 1:return!c.call(this,v[0]);case 2:return!c.call(this,v[0],v[1]);case 3:return!c.call(this,v[0],v[1],v[2])}return!c.apply(this,v)}}function SX(c){return ZP(2,c)}var wX=F4(function(c,v){v=v.length==1&&$t(v[0])?Hn(v[0],Wr(Oe())):Hn(Vr(v,1),Wr(Oe()));var C=v.length;return Tt(function(A){for(var j=-1,H=hi(A.length,C);++j=v}),th=ng(function(){return arguments}())?ng:function(c){return jr(c)&&an.call(c,"callee")&&!X0.call(c,"callee")},$t=me.isArray,NX=di?Wr(di):hv;function $o(c){return c!=null&&db(c.length)&&!Tu(c)}function Kr(c){return jr(c)&&$o(c)}function $X(c){return c===!0||c===!1||jr(c)&&Ci(c)==Xe}var id=F2||o5,FX=Lo?Wr(Lo):pv;function BX(c){return jr(c)&&c.nodeType===1&&!Lv(c)}function zX(c){if(c==null)return!0;if($o(c)&&($t(c)||typeof c=="string"||typeof c.splice=="function"||id(c)||mg(c)||th(c)))return!c.length;var v=ki(c);if(v==Fe||v==Ie)return!c.size;if(Tv(c))return!Gr(c).length;for(var C in c)if(an.call(c,C))return!1;return!0}function HX(c,v){return Zc(c,v)}function WX(c,v,C){C=typeof C=="function"?C:n;var A=C?C(c,v):n;return A===n?Zc(c,v,n,C):!!A}function Y4(c){if(!jr(c))return!1;var v=Ci(c);return v==Be||v==yt||typeof c.message=="string"&&typeof c.name=="string"&&!Lv(c)}function UX(c){return typeof c=="number"&&zp(c)}function Tu(c){if(!Cr(c))return!1;var v=Ci(c);return v==Ae||v==bt||v==Qe||v==on}function rT(c){return typeof c=="number"&&c==Ft(c)}function db(c){return typeof c=="number"&&c>-1&&c%1==0&&c<=G}function Cr(c){var v=typeof c;return c!=null&&(v=="object"||v=="function")}function jr(c){return c!=null&&typeof c=="object"}var iT=uo?Wr(uo):$4;function VX(c,v){return c===v||Qc(c,v,At(v))}function GX(c,v,C){return C=typeof C=="function"?C:n,Qc(c,v,At(v),C)}function qX(c){return oT(c)&&c!=+c}function KX(c){if(AK(c))throw new Lt(o);return rg(c)}function YX(c){return c===null}function XX(c){return c==null}function oT(c){return typeof c=="number"||jr(c)&&Ci(c)==at}function Lv(c){if(!jr(c)||Ci(c)!=mt)return!1;var v=$c(c);if(v===null)return!0;var C=an.call(v,"constructor")&&v.constructor;return typeof C=="function"&&C instanceof C&&xr.call(C)==xi}var X4=Fa?Wr(Fa):Sr;function ZX(c){return rT(c)&&c>=-G&&c<=G}var aT=ul?Wr(ul):Wt;function fb(c){return typeof c=="string"||!$t(c)&&jr(c)&&Ci(c)==He}function va(c){return typeof c=="symbol"||jr(c)&&Ci(c)==Ue}var mg=z0?Wr(z0):ei;function QX(c){return c===n}function JX(c){return jr(c)&&ki(c)==je}function eZ(c){return jr(c)&&Ci(c)==vt}var tZ=P(ml),nZ=P(function(c,v){return c<=v});function sT(c){if(!c)return[];if($o(c))return fb(c)?Qi(c):Bi(c);if(Fc&&c[Fc])return O2(c[Fc]());var v=ki(c),C=v==Fe?Np:v==Ie?Of:vg;return C(c)}function Mu(c){if(!c)return c===0?c:0;if(c=Ga(c),c===Q||c===-Q){var v=c<0?-1:1;return v*Y}return c===c?c:0}function Ft(c){var v=Mu(c),C=v%1;return v===v?C?v-C:v:0}function lT(c){return c?Cu(Ft(c),0,fe):0}function Ga(c){if(typeof c=="number")return c;if(va(c))return ee;if(Cr(c)){var v=typeof c.valueOf=="function"?c.valueOf():c;c=Cr(v)?v+"":v}if(typeof c!="string")return c===0?c:+c;c=co(c);var C=R0.test(c);return C||D0.test(c)?ot(c.slice(2),C?2:8):O0.test(c)?ee:+c}function uT(c){return Ua(c,Fo(c))}function rZ(c){return c?Cu(Ft(c),-G,G):c===0?c:0}function _n(c){return c==null?"":po(c)}var iZ=go(function(c,v){if(Tv(v)||$o(v)){Ua(v,Ei(v),c);return}for(var C in v)an.call(v,C)&&pl(c,C,v[C])}),cT=go(function(c,v){Ua(v,Fo(v),c)}),hb=go(function(c,v,C,A){Ua(v,Fo(v),c,A)}),oZ=go(function(c,v,C,A){Ua(v,Ei(v),c,A)}),aZ=gr(Vp);function sZ(c,v){var C=wu(c);return v==null?C:st(C,v)}var lZ=Tt(function(c,v){c=dn(c);var C=-1,A=v.length,j=A>2?v[2]:n;for(j&&mo(v[0],v[1],j)&&(A=1);++C1),H}),Ua(c,ge(c),C),A&&(C=wi(C,h|m|y,Rt));for(var j=v.length;j--;)cg(C,v[j]);return C});function EZ(c,v){return fT(c,cb(Oe(v)))}var PZ=gr(function(c,v){return c==null?{}:vv(c,v)});function fT(c,v){if(c==null)return{};var C=Hn(ge(c),function(A){return[A]});return v=Oe(v),ig(c,C,function(A,j){return v(A,j[0])})}function TZ(c,v,C){v=Sl(v,c);var A=-1,j=v.length;for(j||(j=1,c=n);++Av){var A=c;c=v,v=A}if(C||c%1||v%1){var j=J0();return hi(c+j*(v-c+pe("1e-"+((j+"").length-1))),v)}return Gf(c,v)}var FZ=_l(function(c,v,C){return v=v.toLowerCase(),c+(C?gT(v):v)});function gT(c){return J4(_n(c).toLowerCase())}function mT(c){return c=_n(c),c&&c.replace(N0,A2).replace(Mp,"")}function BZ(c,v,C){c=_n(c),v=po(v);var A=c.length;C=C===n?A:Cu(Ft(C),0,A);var j=C;return C-=v.length,C>=0&&c.slice(C,j)==v}function zZ(c){return c=_n(c),c&&Na.test(c)?c.replace(Xi,_s):c}function HZ(c){return c=_n(c),c&&E0.test(c)?c.replace(mf,"\\$&"):c}var WZ=_l(function(c,v,C){return c+(C?"-":"")+v.toLowerCase()}),UZ=_l(function(c,v,C){return c+(C?" ":"")+v.toLowerCase()}),VZ=pg("toLowerCase");function GZ(c,v,C){c=_n(c),v=Ft(v);var A=v?za(c):0;if(!v||A>=v)return c;var j=(v-A)/2;return f(Su(j),C)+c+f(Ff(j),C)}function qZ(c,v,C){c=_n(c),v=Ft(v);var A=v?za(c):0;return v&&A>>0,C?(c=_n(c),c&&(typeof v=="string"||v!=null&&!X4(v))&&(v=po(v),!v&&bu(c))?Ls(Qi(c),0,C):c.split(v,C)):[]}var eQ=_l(function(c,v,C){return c+(C?" ":"")+J4(v)});function tQ(c,v,C){return c=_n(c),C=C==null?0:Cu(Ft(C),0,c.length),v=po(v),c.slice(C,C+v.length)==v}function nQ(c,v,C){var A=F.templateSettings;C&&mo(c,v,C)&&(v=n),c=_n(c),v=hb({},v,A,We);var j=hb({},v.imports,A.imports,We),H=Ei(j),Z=Af(j,H),te,ce,_e=0,Ee=v.interpolate||rl,Re="__p += '",nt=If((v.escape||rl).source+"|"+Ee.source+"|"+(Ee===bc?A0:rl).source+"|"+(v.evaluate||rl).source+"|$","g"),gt="//# sourceURL="+(an.call(v,"sourceURL")?(v.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ap+"]")+` -`;c.replace(nt,function(kt,Xt,tn,ya,vo,ba){return tn||(tn=ya),Re+=c.slice(_e,ba).replace($0,dl),Xt&&(te=!0,Re+=`' + -__e(`+Xt+`) + -'`),vo&&(ce=!0,Re+=`'; -`+vo+`; -__p += '`),tn&&(Re+=`' + -((__t = (`+tn+`)) == null ? '' : __t) + -'`),_e=ba+kt.length,kt}),Re+=`'; -`;var _t=an.call(v,"variable")&&v.variable;if(!_t)Re=`with (obj) { -`+Re+` -} -`;else if(M0.test(_t))throw new Lt(s);Re=(ce?Re.replace(vs,""):Re).replace(tl,"$1").replace(gf,"$1;"),Re="function("+(_t||"obj")+`) { -`+(_t?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(te?", __e = _.escape":"")+(ce?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+Re+`return __p -}`;var Vt=yT(function(){return en(H,gt+"return "+Re).apply(n,Z)});if(Vt.source=Re,Y4(Vt))throw Vt;return Vt}function rQ(c){return _n(c).toLowerCase()}function iQ(c){return _n(c).toUpperCase()}function oQ(c,v,C){if(c=_n(c),c&&(C||v===n))return co(c);if(!c||!(v=po(v)))return c;var A=Qi(c),j=Qi(v),H=la(A,j),Z=Cs(A,j)+1;return Ls(A,H,Z).join("")}function aQ(c,v,C){if(c=_n(c),c&&(C||v===n))return c.slice(0,G0(c)+1);if(!c||!(v=po(v)))return c;var A=Qi(c),j=Cs(A,Qi(v))+1;return Ls(A,0,j).join("")}function sQ(c,v,C){if(c=_n(c),c&&(C||v===n))return c.replace(xc,"");if(!c||!(v=po(v)))return c;var A=Qi(c),j=la(A,Qi(v));return Ls(A,j).join("")}function lQ(c,v){var C=B,A=K;if(Cr(v)){var j="separator"in v?v.separator:j;C="length"in v?Ft(v.length):C,A="omission"in v?po(v.omission):A}c=_n(c);var H=c.length;if(bu(c)){var Z=Qi(c);H=Z.length}if(C>=H)return c;var te=C-za(A);if(te<1)return A;var ce=Z?Ls(Z,0,te).join(""):c.slice(0,te);if(j===n)return ce+A;if(Z&&(te+=ce.length-te),X4(j)){if(c.slice(te).search(j)){var _e,Ee=ce;for(j.global||(j=If(j.source,_n(bs.exec(j))+"g")),j.lastIndex=0;_e=j.exec(Ee);)var Re=_e.index;ce=ce.slice(0,Re===n?te:Re)}}else if(c.indexOf(po(j),te)!=te){var nt=ce.lastIndexOf(j);nt>-1&&(ce=ce.slice(0,nt))}return ce+A}function uQ(c){return c=_n(c),c&&_0.test(c)?c.replace(ys,D2):c}var cQ=_l(function(c,v,C){return c+(C?" ":"")+v.toUpperCase()}),J4=pg("toUpperCase");function vT(c,v,C){return c=_n(c),v=C?n:v,v===n?jp(c)?Rf(c):W0(c):c.match(v)||[]}var yT=Tt(function(c,v){try{return Ii(c,n,v)}catch(C){return Y4(C)?C:new Lt(C)}}),dQ=gr(function(c,v){return Zn(v,function(C){C=kl(C),fa(c,C,q4(c[C],c))}),c});function fQ(c){var v=c==null?0:c.length,C=Oe();return c=v?Hn(c,function(A){if(typeof A[1]!="function")throw new Di(a);return[C(A[0]),A[1]]}):[],Tt(function(A){for(var j=-1;++jG)return[];var C=fe,A=hi(c,fe);v=Oe(v),c-=fe;for(var j=Lf(A,v);++C0||v<0)?new Yt(C):(c<0?C=C.takeRight(-c):c&&(C=C.drop(c)),v!==n&&(v=Ft(v),C=v<0?C.dropRight(-v):C.take(v-c)),C)},Yt.prototype.takeRightWhile=function(c){return this.reverse().takeWhile(c).reverse()},Yt.prototype.toArray=function(){return this.take(fe)},ga(Yt.prototype,function(c,v){var C=/^(?:filter|find|map|reject)|While$/.test(v),A=/^(?:head|last)$/.test(v),j=F[A?"take"+(v=="last"?"Right":""):v],H=A||/^find/.test(v);j&&(F.prototype[v]=function(){var Z=this.__wrapped__,te=A?[1]:arguments,ce=Z instanceof Yt,_e=te[0],Ee=ce||$t(Z),Re=function(Xt){var tn=j.apply(F,Ba([Xt],te));return A&&nt?tn[0]:tn};Ee&&C&&typeof _e=="function"&&_e.length!=1&&(ce=Ee=!1);var nt=this.__chain__,gt=!!this.__actions__.length,_t=H&&!nt,Vt=ce&&!gt;if(!H&&Ee){Z=Vt?Z:new Yt(this);var kt=c.apply(Z,te);return kt.__actions__.push({func:ab,args:[Re],thisArg:n}),new fo(kt,nt)}return _t&&Vt?c.apply(this,te):(kt=this.thru(Re),_t?A?kt.value()[0]:kt.value():kt)})}),Zn(["pop","push","shift","sort","splice","unshift"],function(c){var v=Ic[c],C=/^(?:push|sort|unshift)$/.test(c)?"tap":"thru",A=/^(?:pop|shift)$/.test(c);F.prototype[c]=function(){var j=arguments;if(A&&!this.__chain__){var H=this.value();return v.apply($t(H)?H:[],j)}return this[C](function(Z){return v.apply($t(Z)?Z:[],j)})}}),ga(Yt.prototype,function(c,v){var C=F[v];if(C){var A=C.name+"";an.call(ks,A)||(ks[A]=[]),ks[A].push({name:v,func:C})}}),ks[Qf(n,_).name]=[{name:"wrapper",func:n}],Yt.prototype.clone=Ji,Yt.prototype.reverse=Ni,Yt.prototype.value=U2,F.prototype.at=BY,F.prototype.chain=zY,F.prototype.commit=HY,F.prototype.next=WY,F.prototype.plant=VY,F.prototype.reverse=GY,F.prototype.toJSON=F.prototype.valueOf=F.prototype.value=qY,F.prototype.first=F.prototype.head,Fc&&(F.prototype[Fc]=UY),F},Ha=Ro();Kt?((Kt.exports=Ha)._=Ha,Ot._=Ha):St._=Ha}).call(So)})(WSe,Pe);const Pg=(e,t,n,r,i,o,a)=>{const s=e/2-(n+i/2)*a,l=t/2-(r+o/2)*a;return{x:s,y:l}},Tg=(e,t,n,r,i=.95)=>{const o=e*i/n,a=t*i/r;return Math.min(1,Math.min(o,a))},USe=.999,VSe=.1,GSe=20,Vv=.95,KO=30,pk=10,YO=e=>({x:Math.floor(e.x),y:Math.floor(e.y)}),ih=e=>{const{width:t,height:n}=e,r={width:t,height:n},i=512*512,o=t/n;let a=t*n,s=448;for(;a1?(r.width=s,r.height=Hl(s/o,64)):o<1&&(r.height=s,r.width=Hl(s*o,64)),a=r.width*r.height;return r},qSe=e=>({width:Hl(e.width,64),height:Hl(e.height,64)}),IW=[{key:"Base",value:"base"},{key:"Mask",value:"mask"}],KSe=[{key:"Auto",value:"auto"},{key:"Manual",value:"manual"},{key:"None",value:"none"}],hE=e=>e.kind==="line"&&e.layer==="mask",YSe=e=>e.kind==="line"&&e.layer==="base",x3=e=>e.kind==="image"&&e.layer==="base",XSe=e=>e.kind==="fillRect"&&e.layer==="base",ZSe=e=>e.kind==="eraseRect"&&e.layer==="base",QSe=e=>e.kind==="line",p1={objects:[],stagingArea:{images:[],selectedImageIndex:-1}},JSe={boundingBoxCoordinates:{x:0,y:0},boundingBoxDimensions:{width:512,height:512},boundingBoxPreviewFill:{r:0,g:0,b:0,a:.5},boundingBoxScaleMethod:"auto",brushColor:{r:90,g:90,b:255,a:1},brushSize:50,canvasContainerDimensions:{width:0,height:0},colorPickerColor:{r:90,g:90,b:255,a:1},cursorPosition:null,doesCanvasNeedScaling:!1,futureLayerStates:[],isCanvasInitialized:!1,isDrawing:!1,isMaskEnabled:!0,isMouseOverBoundingBox:!1,isMoveBoundingBoxKeyHeld:!1,isMoveStageKeyHeld:!1,isMovingBoundingBox:!1,isMovingStage:!1,isTransformingBoundingBox:!1,layer:"base",layerState:p1,maskColor:{r:255,g:90,b:90,a:1},maxHistory:128,minimumStageScale:1,pastLayerStates:[],scaledBoundingBoxDimensions:{width:512,height:512},shouldAutoSave:!1,shouldCropToBoundingBoxOnSave:!1,shouldDarkenOutsideBoundingBox:!1,shouldLockBoundingBox:!1,shouldPreserveMaskedArea:!1,shouldRestrictStrokesToBox:!0,shouldShowBoundingBox:!0,shouldShowBrush:!0,shouldShowBrushPreview:!1,shouldShowCanvasDebugInfo:!1,shouldShowCheckboardTransparency:!1,shouldShowGrid:!0,shouldShowIntermediates:!0,shouldShowStagingImage:!0,shouldShowStagingOutline:!0,shouldSnapToGrid:!0,stageCoordinates:{x:0,y:0},stageDimensions:{width:0,height:0},stageScale:1,tool:"brush"},DW=ap({name:"canvas",initialState:JSe,reducers:{setTool:(e,t)=>{const n=t.payload;e.tool=t.payload,n!=="move"&&(e.isTransformingBoundingBox=!1,e.isMouseOverBoundingBox=!1,e.isMovingBoundingBox=!1,e.isMovingStage=!1)},setLayer:(e,t)=>{e.layer=t.payload},toggleTool:e=>{const t=e.tool;t!=="move"&&(e.tool=t==="brush"?"eraser":"brush")},setMaskColor:(e,t)=>{e.maskColor=t.payload},setBrushColor:(e,t)=>{e.brushColor=t.payload},setBrushSize:(e,t)=>{e.brushSize=t.payload},clearMask:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState.objects=e.layerState.objects.filter(t=>!hE(t)),e.futureLayerStates=[],e.shouldPreserveMaskedArea=!1},toggleShouldInvertMask:e=>{e.shouldPreserveMaskedArea=!e.shouldPreserveMaskedArea},toggleShouldShowMask:e=>{e.isMaskEnabled=!e.isMaskEnabled},setShouldPreserveMaskedArea:(e,t)=>{e.shouldPreserveMaskedArea=t.payload},setIsMaskEnabled:(e,t)=>{e.isMaskEnabled=t.payload,e.layer=t.payload?"mask":"base"},setShouldShowCheckboardTransparency:(e,t)=>{e.shouldShowCheckboardTransparency=t.payload},setShouldShowBrushPreview:(e,t)=>{e.shouldShowBrushPreview=t.payload},setShouldShowBrush:(e,t)=>{e.shouldShowBrush=t.payload},setCursorPosition:(e,t)=>{e.cursorPosition=t.payload},setInitialCanvasImage:(e,t)=>{const n=t.payload,{stageDimensions:r}=e,i={width:Cd(Pe.clamp(n.width,64,512),64),height:Cd(Pe.clamp(n.height,64,512),64)},o={x:Hl(n.width/2-i.width/2,64),y:Hl(n.height/2-i.height/2,64)};if(e.boundingBoxScaleMethod==="auto"){const l=ih(i);e.scaledBoundingBoxDimensions=l}e.boundingBoxDimensions=i,e.boundingBoxCoordinates=o,e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState={...p1,objects:[{kind:"image",layer:"base",x:0,y:0,width:n.width,height:n.height,image:n}]},e.futureLayerStates=[],e.isCanvasInitialized=!1;const a=Tg(r.width,r.height,n.width,n.height,Vv),s=Pg(r.width,r.height,0,0,n.width,n.height,a);e.stageScale=a,e.stageCoordinates=s,e.doesCanvasNeedScaling=!0},setBoundingBoxDimensions:(e,t)=>{const n=qSe(t.payload);if(e.boundingBoxDimensions=n,e.boundingBoxScaleMethod==="auto"){const r=ih(n);e.scaledBoundingBoxDimensions=r}},setBoundingBoxCoordinates:(e,t)=>{e.boundingBoxCoordinates=YO(t.payload)},setStageCoordinates:(e,t)=>{e.stageCoordinates=t.payload},setBoundingBoxPreviewFill:(e,t)=>{e.boundingBoxPreviewFill=t.payload},setDoesCanvasNeedScaling:(e,t)=>{e.doesCanvasNeedScaling=t.payload},setStageScale:(e,t)=>{e.stageScale=t.payload},setShouldDarkenOutsideBoundingBox:(e,t)=>{e.shouldDarkenOutsideBoundingBox=t.payload},setIsDrawing:(e,t)=>{e.isDrawing=t.payload},clearCanvasHistory:e=>{e.pastLayerStates=[],e.futureLayerStates=[]},setShouldLockBoundingBox:(e,t)=>{e.shouldLockBoundingBox=t.payload},toggleShouldLockBoundingBox:e=>{e.shouldLockBoundingBox=!e.shouldLockBoundingBox},setShouldShowBoundingBox:(e,t)=>{e.shouldShowBoundingBox=t.payload},setIsTransformingBoundingBox:(e,t)=>{e.isTransformingBoundingBox=t.payload},setIsMovingBoundingBox:(e,t)=>{e.isMovingBoundingBox=t.payload},setIsMouseOverBoundingBox:(e,t)=>{e.isMouseOverBoundingBox=t.payload},setIsMoveBoundingBoxKeyHeld:(e,t)=>{e.isMoveBoundingBoxKeyHeld=t.payload},setIsMoveStageKeyHeld:(e,t)=>{e.isMoveStageKeyHeld=t.payload},addImageToStagingArea:(e,t)=>{const{boundingBox:n,image:r}=t.payload;!n||!r||(e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.stagingArea.images.push({kind:"image",layer:"base",...n,image:r}),e.layerState.stagingArea.selectedImageIndex=e.layerState.stagingArea.images.length-1,e.futureLayerStates=[])},discardStagedImages:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.stagingArea={...p1.stagingArea},e.futureLayerStates=[],e.shouldShowStagingOutline=!0,e.shouldShowStagingOutline=!0},addFillRect:e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,brushColor:r}=e;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({kind:"fillRect",layer:"base",...t,...n,color:r}),e.futureLayerStates=[]},addEraseRect:e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n}=e;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({kind:"eraseRect",layer:"base",...t,...n}),e.futureLayerStates=[]},addLine:(e,t)=>{const{tool:n,layer:r,brushColor:i,brushSize:o,shouldRestrictStrokesToBox:a}=e;if(n==="move"||n==="colorPicker")return;const s=o/2,l=r==="base"&&n==="brush"?{color:i}:{};e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift();const u={kind:"line",layer:r,tool:n,strokeWidth:s,points:t.payload,...l};a&&(u.clip={...e.boundingBoxCoordinates,...e.boundingBoxDimensions}),e.layerState.objects.push(u),e.futureLayerStates=[]},addPointToCurrentLine:(e,t)=>{const n=e.layerState.objects.findLast(QSe);n&&n.points.push(...t.payload)},undo:e=>{const t=e.pastLayerStates.pop();t&&(e.futureLayerStates.unshift(Pe.cloneDeep(e.layerState)),e.futureLayerStates.length>e.maxHistory&&e.futureLayerStates.pop(),e.layerState=t)},redo:e=>{const t=e.futureLayerStates.shift();t&&(e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState=t)},setShouldShowGrid:(e,t)=>{e.shouldShowGrid=t.payload},setIsMovingStage:(e,t)=>{e.isMovingStage=t.payload},setShouldSnapToGrid:(e,t)=>{e.shouldSnapToGrid=t.payload},setShouldAutoSave:(e,t)=>{e.shouldAutoSave=t.payload},setShouldShowIntermediates:(e,t)=>{e.shouldShowIntermediates=t.payload},resetCanvas:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState=p1,e.futureLayerStates=[]},setCanvasContainerDimensions:(e,t)=>{e.canvasContainerDimensions=t.payload},resizeAndScaleCanvas:e=>{const{width:t,height:n}=e.canvasContainerDimensions,r=e.layerState.objects.find(x3),i={width:Math.floor(t),height:Math.floor(n)};if(!r){const d=Tg(i.width,i.height,512,512,Vv),h=Pg(i.width,i.height,0,0,512,512,d),m={width:512,height:512};if(e.stageScale=d,e.stageCoordinates=h,e.stageDimensions=i,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=m,e.boundingBoxScaleMethod==="auto"){const y=ih(m);e.scaledBoundingBoxDimensions=y}return}const{width:o,height:a}=r,l=Tg(t,n,o,a,.95),u=Pg(i.width,i.height,0,0,o,a,l);e.minimumStageScale=l,e.stageScale=l,e.stageCoordinates=YO(u),e.stageDimensions=i,e.isCanvasInitialized=!0},resizeCanvas:e=>{const{width:t,height:n}=e.canvasContainerDimensions,r={width:Math.floor(t),height:Math.floor(n)};if(e.stageDimensions=r,!e.layerState.objects.find(x3)){const i=Tg(r.width,r.height,512,512,Vv),o=Pg(r.width,r.height,0,0,512,512,i),a={width:512,height:512};if(e.stageScale=i,e.stageCoordinates=o,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=a,e.boundingBoxScaleMethod==="auto"){const s=ih(a);e.scaledBoundingBoxDimensions=s}}},resetCanvasView:(e,t)=>{const{contentRect:n,shouldScaleTo1:r}=t.payload,{stageDimensions:{width:i,height:o}}=e,{x:a,y:s,width:l,height:u}=n;if(l!==0&&u!==0){const d=r?1:Tg(i,o,l,u,Vv),h=Pg(i,o,a,s,l,u,d);e.stageScale=d,e.stageCoordinates=h}else{const d=Tg(i,o,512,512,Vv),h=Pg(i,o,0,0,512,512,d),m={width:512,height:512};if(e.stageScale=d,e.stageCoordinates=h,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=m,e.boundingBoxScaleMethod==="auto"){const y=ih(m);e.scaledBoundingBoxDimensions=y}}},nextStagingAreaImage:e=>{const t=e.layerState.stagingArea.selectedImageIndex,n=e.layerState.stagingArea.images.length;e.layerState.stagingArea.selectedImageIndex=Math.min(t+1,n-1)},prevStagingAreaImage:e=>{const t=e.layerState.stagingArea.selectedImageIndex;e.layerState.stagingArea.selectedImageIndex=Math.max(t-1,0)},commitStagingAreaImage:e=>{const{images:t,selectedImageIndex:n}=e.layerState.stagingArea;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({...t[n]}),e.layerState.stagingArea={...p1.stagingArea},e.futureLayerStates=[],e.shouldShowStagingOutline=!0,e.shouldShowStagingImage=!0},fitBoundingBoxToStage:e=>{const{boundingBoxDimensions:t,boundingBoxCoordinates:n,stageDimensions:r,stageScale:i}=e,o=r.width/i,a=r.height/i;if(n.x<0||n.x+t.width>o||n.y<0||n.y+t.height>a){const s={width:Cd(Pe.clamp(o,64,512),64),height:Cd(Pe.clamp(a,64,512),64)},l={x:Hl(o/2-s.width/2,64),y:Hl(a/2-s.height/2,64)};if(e.boundingBoxDimensions=s,e.boundingBoxCoordinates=l,e.boundingBoxScaleMethod==="auto"){const u=ih(s);e.scaledBoundingBoxDimensions=u}}},setBoundingBoxScaleMethod:(e,t)=>{if(e.boundingBoxScaleMethod=t.payload,t.payload==="auto"){const n=ih(e.boundingBoxDimensions);e.scaledBoundingBoxDimensions=n}},setScaledBoundingBoxDimensions:(e,t)=>{e.scaledBoundingBoxDimensions=t.payload},setShouldShowStagingImage:(e,t)=>{e.shouldShowStagingImage=t.payload},setShouldShowStagingOutline:(e,t)=>{e.shouldShowStagingOutline=t.payload},setShouldShowCanvasDebugInfo:(e,t)=>{e.shouldShowCanvasDebugInfo=t.payload},setShouldRestrictStrokesToBox:(e,t)=>{e.shouldRestrictStrokesToBox=t.payload},setShouldCropToBoundingBoxOnSave:(e,t)=>{e.shouldCropToBoundingBoxOnSave=t.payload},setColorPickerColor:(e,t)=>{e.colorPickerColor=t.payload},commitColorPickerColor:e=>{e.brushColor={...e.colorPickerColor,a:e.brushColor.a},e.tool="brush"},setMergedCanvas:(e,t)=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.futureLayerStates=[],e.layerState.objects=[t.payload]},resetCanvasInteractionState:e=>{e.cursorPosition=null,e.isDrawing=!1,e.isMouseOverBoundingBox=!1,e.isMoveBoundingBoxKeyHeld=!1,e.isMoveStageKeyHeld=!1,e.isMovingBoundingBox=!1,e.isMovingStage=!1,e.isTransformingBoundingBox=!1},mouseLeftCanvas:e=>{e.cursorPosition=null,e.isDrawing=!1,e.isMouseOverBoundingBox=!1,e.isMovingBoundingBox=!1,e.isTransformingBoundingBox=!1}}}),{addEraseRect:jW,addFillRect:NW,addImageToStagingArea:e3e,addLine:t3e,addPointToCurrentLine:$W,clearCanvasHistory:FW,clearMask:pE,commitColorPickerColor:n3e,commitStagingAreaImage:r3e,discardStagedImages:i3e,fitBoundingBoxToStage:vNe,mouseLeftCanvas:o3e,nextStagingAreaImage:a3e,prevStagingAreaImage:s3e,redo:l3e,resetCanvas:gE,resetCanvasInteractionState:u3e,resetCanvasView:BW,resizeAndScaleCanvas:r4,resizeCanvas:c3e,setBoundingBoxCoordinates:RC,setBoundingBoxDimensions:g1,setBoundingBoxPreviewFill:yNe,setBoundingBoxScaleMethod:d3e,setBrushColor:Mm,setBrushSize:Lm,setCanvasContainerDimensions:f3e,setColorPickerColor:h3e,setCursorPosition:p3e,setDoesCanvasNeedScaling:Li,setInitialCanvasImage:i4,setIsDrawing:zW,setIsMaskEnabled:h2,setIsMouseOverBoundingBox:Qb,setIsMoveBoundingBoxKeyHeld:bNe,setIsMoveStageKeyHeld:xNe,setIsMovingBoundingBox:IC,setIsMovingStage:S3,setIsTransformingBoundingBox:DC,setLayer:w3,setMaskColor:HW,setMergedCanvas:g3e,setShouldAutoSave:WW,setShouldCropToBoundingBoxOnSave:UW,setShouldDarkenOutsideBoundingBox:VW,setShouldLockBoundingBox:SNe,setShouldPreserveMaskedArea:GW,setShouldShowBoundingBox:m3e,setShouldShowBrush:wNe,setShouldShowBrushPreview:CNe,setShouldShowCanvasDebugInfo:qW,setShouldShowCheckboardTransparency:_Ne,setShouldShowGrid:KW,setShouldShowIntermediates:YW,setShouldShowStagingImage:v3e,setShouldShowStagingOutline:XO,setShouldSnapToGrid:C3,setStageCoordinates:XW,setStageScale:y3e,setTool:Jl,toggleShouldLockBoundingBox:kNe,toggleTool:ENe,undo:b3e,setScaledBoundingBoxDimensions:Jb,setShouldRestrictStrokesToBox:ZW}=DW.actions,x3e=DW.reducer,S3e={currentImageUuid:"",shouldPinGallery:!0,shouldShowGallery:!0,galleryScrollPosition:0,galleryImageMinimumWidth:64,galleryImageObjectFit:"cover",shouldHoldGalleryOpen:!1,shouldAutoSwitchToNewImages:!0,currentCategory:"result",categories:{user:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0},result:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0}},galleryWidth:300,shouldUseSingleGalleryColumn:!1},QW=ap({name:"gallery",initialState:S3e,reducers:{setCurrentImage:(e,t)=>{e.currentImage=t.payload,e.currentImageUuid=t.payload.uuid},removeImage:(e,t)=>{const{uuid:n,category:r}=t.payload,i=e.categories[r].images,o=i.filter(a=>a.uuid!==n);if(n===e.currentImageUuid){const a=i.findIndex(l=>l.uuid===n),s=Pe.clamp(a,0,o.length-1);e.currentImage=o.length?o[s]:void 0,e.currentImageUuid=o.length?o[s].uuid:""}e.categories[r].images=o},addImage:(e,t)=>{const{image:n,category:r}=t.payload,{uuid:i,url:o,mtime:a}=n,s=e.categories[r];s.images.find(l=>l.url===o&&l.mtime===a)||(s.images.unshift(n),e.shouldAutoSwitchToNewImages&&(e.currentImageUuid=i,e.currentImage=n,e.currentCategory=r),e.intermediateImage=void 0,s.latest_mtime=a)},setIntermediateImage:(e,t)=>{e.intermediateImage=t.payload},clearIntermediateImage:e=>{e.intermediateImage=void 0},selectNextImage:e=>{const{currentImage:t}=e;if(!t)return;const n=e.categories[t.category].images;if(t){const r=n.findIndex(i=>i.uuid===t.uuid);if(r{const{currentImage:t}=e;if(!t)return;const n=e.categories[t.category].images;if(t){const r=n.findIndex(i=>i.uuid===t.uuid);if(r>0){const i=n[r-1];e.currentImage=i,e.currentImageUuid=i.uuid}}},addGalleryImages:(e,t)=>{const{images:n,areMoreImagesAvailable:r,category:i}=t.payload,o=e.categories[i].images;if(n.length>0){const a=n.filter(s=>!o.find(l=>l.url===s.url&&l.mtime===s.mtime));if(e.categories[i].images=o.concat(a).sort((s,l)=>l.mtime-s.mtime),!e.currentImage){const s=n[0];e.currentImage=s,e.currentImageUuid=s.uuid}e.categories[i].latest_mtime=n[0].mtime,e.categories[i].earliest_mtime=n[n.length-1].mtime}r!==void 0&&(e.categories[i].areMoreImagesAvailable=r)},setShouldPinGallery:(e,t)=>{e.shouldPinGallery=t.payload},setShouldShowGallery:(e,t)=>{e.shouldShowGallery=t.payload},setGalleryScrollPosition:(e,t)=>{e.galleryScrollPosition=t.payload},setGalleryImageMinimumWidth:(e,t)=>{e.galleryImageMinimumWidth=t.payload},setGalleryImageObjectFit:(e,t)=>{e.galleryImageObjectFit=t.payload},setShouldHoldGalleryOpen:(e,t)=>{e.shouldHoldGalleryOpen=t.payload},setShouldAutoSwitchToNewImages:(e,t)=>{e.shouldAutoSwitchToNewImages=t.payload},setCurrentCategory:(e,t)=>{e.currentCategory=t.payload},setGalleryWidth:(e,t)=>{e.galleryWidth=t.payload},setShouldUseSingleGalleryColumn:(e,t)=>{e.shouldUseSingleGalleryColumn=t.payload}}}),{addImage:sm,clearIntermediateImage:jC,removeImage:JW,setCurrentImage:ZO,addGalleryImages:w3e,setIntermediateImage:C3e,selectNextImage:mE,selectPrevImage:vE,setShouldPinGallery:_3e,setShouldShowGallery:Am,setGalleryScrollPosition:k3e,setGalleryImageMinimumWidth:Gv,setGalleryImageObjectFit:E3e,setShouldHoldGalleryOpen:eU,setShouldAutoSwitchToNewImages:P3e,setCurrentCategory:ex,setGalleryWidth:T3e,setShouldUseSingleGalleryColumn:M3e}=QW.actions,L3e=QW.reducer,A3e={isLightboxOpen:!1},O3e=A3e,tU=ap({name:"lightbox",initialState:O3e,reducers:{setIsLightboxOpen:(e,t)=>{e.isLightboxOpen=t.payload}}}),{setIsLightboxOpen:Om}=tU.actions,R3e=tU.reducer,Rm=e=>typeof e=="string"?e:e.length===1?e[0].prompt:e.map(t=>`${t.prompt}:${t.weight}`).join(" ");function nU(e){let t=typeof e=="string"?e:Rm(e),n="";const r=new RegExp(/\[([^\][]*)]/,"gi"),i=[...t.matchAll(r)].map(o=>o[1]);return i.length&&(n=i.join(" "),i.forEach(o=>{t=t.replace(`[${o}]`,"").replaceAll("[]","").trim()})),[t,n]}const I3e=e=>{const r=e.split(",").map(i=>i.split(":")).map(i=>({seed:Number(i[0]),weight:Number(i[1])}));return yE(r)?r:!1},yE=e=>Boolean(typeof e=="string"?I3e(e):e.length&&!e.some(t=>{const{seed:n,weight:r}=t,i=!isNaN(parseInt(n.toString(),10)),o=!isNaN(parseInt(r.toString(),10))&&r>=0&&r<=1;return!(i&&o)})),_3=e=>e.reduce((t,n,r,i)=>{const{seed:o,weight:a}=n;return t+=`${o}:${a}`,r!==i.length-1&&(t+=","),t},""),D3e=e=>e.split(",").map(r=>r.split(":")).map(r=>[parseInt(r[0],10),parseFloat(r[1])]),rU={cfgScale:7.5,height:512,img2imgStrength:.75,infillMethod:"patchmatch",iterations:1,maskPath:"",perlin:0,prompt:"",negativePrompt:"",sampler:"k_lms",seamBlur:16,seamless:!1,seamSize:96,seamSteps:30,seamStrength:.7,seed:0,seedWeights:"",shouldFitToWidthHeight:!0,shouldGenerateVariations:!1,shouldRandomizeSeed:!0,steps:50,threshold:0,tileSize:32,variationAmount:.1,width:512,shouldUseSymmetry:!1,horizontalSymmetryTimePercentage:0,verticalSymmetryTimePercentage:0},j3e=rU,iU=ap({name:"generation",initialState:j3e,reducers:{setPrompt:(e,t)=>{const n=t.payload;typeof n=="string"?e.prompt=n:e.prompt=Rm(n)},setNegativePrompt:(e,t)=>{const n=t.payload;typeof n=="string"?e.negativePrompt=n:e.negativePrompt=Rm(n)},setIterations:(e,t)=>{e.iterations=t.payload},setSteps:(e,t)=>{e.steps=t.payload},setCfgScale:(e,t)=>{e.cfgScale=t.payload},setThreshold:(e,t)=>{e.threshold=t.payload},setPerlin:(e,t)=>{e.perlin=t.payload},setHeight:(e,t)=>{e.height=t.payload},setWidth:(e,t)=>{e.width=t.payload},setSampler:(e,t)=>{e.sampler=t.payload},setSeed:(e,t)=>{e.seed=t.payload,e.shouldRandomizeSeed=!1},setImg2imgStrength:(e,t)=>{e.img2imgStrength=t.payload},setMaskPath:(e,t)=>{e.maskPath=t.payload},setSeamless:(e,t)=>{e.seamless=t.payload},setShouldFitToWidthHeight:(e,t)=>{e.shouldFitToWidthHeight=t.payload},resetSeed:e=>{e.seed=-1},setParameter:(e,t)=>{const{key:n,value:r}=t.payload,i={...e,[n]:r};return n==="seed"&&(i.shouldRandomizeSeed=!1),i},setShouldGenerateVariations:(e,t)=>{e.shouldGenerateVariations=t.payload},setVariationAmount:(e,t)=>{e.variationAmount=t.payload},setSeedWeights:(e,t)=>{e.seedWeights=t.payload,e.shouldGenerateVariations=!0,e.variationAmount=0},setAllTextToImageParameters:(e,t)=>{const{sampler:n,prompt:r,seed:i,variations:o,steps:a,cfg_scale:s,threshold:l,perlin:u,seamless:d,hires_fix:h,width:m,height:y}=t.payload.image;o&&o.length>0?(e.seedWeights=_3(o),e.shouldGenerateVariations=!0,e.variationAmount=0):e.shouldGenerateVariations=!1,i&&(e.seed=i,e.shouldRandomizeSeed=!1),r&&(e.prompt=Rm(r)),n&&(e.sampler=n),a&&(e.steps=a),s&&(e.cfgScale=s),typeof l>"u"?e.threshold=0:e.threshold=l,typeof u>"u"?e.perlin=0:e.perlin=u,typeof d=="boolean"&&(e.seamless=d),m&&(e.width=m),y&&(e.height=y)},setAllImageToImageParameters:(e,t)=>{const{type:n,strength:r,fit:i,init_image_path:o,mask_image_path:a}=t.payload.image;n==="img2img"&&(o&&(e.initialImage=o),a&&(e.maskPath=a),r&&(e.img2imgStrength=r),typeof i=="boolean"&&(e.shouldFitToWidthHeight=i))},setAllParameters:(e,t)=>{const{type:n,sampler:r,prompt:i,seed:o,variations:a,steps:s,cfg_scale:l,threshold:u,perlin:d,seamless:h,hires_fix:m,width:y,height:b,strength:w,fit:E,init_image_path:_,mask_image_path:k}=t.payload.image;if(n==="img2img"&&(_&&(e.initialImage=_),k&&(e.maskPath=k),w&&(e.img2imgStrength=w),typeof E=="boolean"&&(e.shouldFitToWidthHeight=E)),a&&a.length>0?(e.seedWeights=_3(a),e.shouldGenerateVariations=!0,e.variationAmount=0):e.shouldGenerateVariations=!1,o&&(e.seed=o,e.shouldRandomizeSeed=!1),i){const[T,L]=nU(i);T&&(e.prompt=T),L?e.negativePrompt=L:e.negativePrompt=""}r&&(e.sampler=r),s&&(e.steps=s),l&&(e.cfgScale=l),typeof u>"u"?e.threshold=0:e.threshold=u,typeof d>"u"?e.perlin=0:e.perlin=d,typeof h=="boolean"&&(e.seamless=h),y&&(e.width=y),b&&(e.height=b)},resetParametersState:e=>({...e,...rU}),setShouldRandomizeSeed:(e,t)=>{e.shouldRandomizeSeed=t.payload},setInitialImage:(e,t)=>{e.initialImage=t.payload},clearInitialImage:e=>{e.initialImage=void 0},setSeamSize:(e,t)=>{e.seamSize=t.payload},setSeamBlur:(e,t)=>{e.seamBlur=t.payload},setSeamStrength:(e,t)=>{e.seamStrength=t.payload},setSeamSteps:(e,t)=>{e.seamSteps=t.payload},setTileSize:(e,t)=>{e.tileSize=t.payload},setInfillMethod:(e,t)=>{e.infillMethod=t.payload},setShouldUseSymmetry:(e,t)=>{e.shouldUseSymmetry=t.payload},setHorizontalSymmetryTimePercentage:(e,t)=>{e.horizontalSymmetryTimePercentage=t.payload},setVerticalSymmetryTimePercentage:(e,t)=>{e.verticalSymmetryTimePercentage=t.payload}}}),{clearInitialImage:oU,resetParametersState:PNe,resetSeed:TNe,setAllImageToImageParameters:N3e,setAllParameters:aU,setAllTextToImageParameters:MNe,setCfgScale:gk,setHeight:uS,setImg2imgStrength:mk,setInfillMethod:sU,setInitialImage:y0,setIterations:QO,setMaskPath:lU,setParameter:LNe,setPerlin:vk,setPrompt:uU,setNegativePrompt:cU,setSampler:dU,setSeamBlur:JO,setSeamless:fU,setSeamSize:eR,setSeamSteps:tR,setSeamStrength:nR,setSeed:p2,setSeedWeights:hU,setShouldFitToWidthHeight:pU,setShouldGenerateVariations:$3e,setShouldRandomizeSeed:F3e,setSteps:yk,setThreshold:bk,setTileSize:rR,setVariationAmount:iR,setWidth:cS,setShouldUseSymmetry:B3e,setHorizontalSymmetryTimePercentage:oR,setVerticalSymmetryTimePercentage:aR}=iU.actions,z3e=iU.reducer,gU={codeformerFidelity:.75,facetoolStrength:.75,facetoolType:"gfpgan",hiresFix:!1,hiresStrength:.75,shouldLoopback:!1,shouldRunESRGAN:!1,shouldRunFacetool:!1,upscalingLevel:4,upscalingDenoising:.75,upscalingStrength:.75},H3e=gU,mU=ap({name:"postprocessing",initialState:H3e,reducers:{setFacetoolStrength:(e,t)=>{e.facetoolStrength=t.payload},setCodeformerFidelity:(e,t)=>{e.codeformerFidelity=t.payload},setUpscalingLevel:(e,t)=>{e.upscalingLevel=t.payload},setUpscalingDenoising:(e,t)=>{e.upscalingDenoising=t.payload},setUpscalingStrength:(e,t)=>{e.upscalingStrength=t.payload},setHiresFix:(e,t)=>{e.hiresFix=t.payload},setHiresStrength:(e,t)=>{e.hiresStrength=t.payload},resetPostprocessingState:e=>({...e,...gU}),setShouldRunFacetool:(e,t)=>{e.shouldRunFacetool=t.payload},setFacetoolType:(e,t)=>{e.facetoolType=t.payload},setShouldRunESRGAN:(e,t)=>{e.shouldRunESRGAN=t.payload},setShouldLoopback:(e,t)=>{e.shouldLoopback=t.payload}}}),{resetPostprocessingState:ANe,setCodeformerFidelity:xk,setFacetoolStrength:k3,setFacetoolType:dS,setHiresFix:vU,setHiresStrength:sR,setShouldLoopback:W3e,setShouldRunESRGAN:U3e,setShouldRunFacetool:V3e,setUpscalingLevel:yU,setUpscalingDenoising:Sk,setUpscalingStrength:wk}=mU.actions,G3e=mU.reducer;function gs(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lR(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:{};gs(this,e),this.init(t,n)}return ms(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=n||Y3e,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function(n){this.debug=n}},{key:"log",value:function(){for(var n=arguments.length,r=new Array(n),i=0;i1?r-1:0),o=1;o-1?s.replace(/###/g,"."):s}function i(){return!e||typeof e=="string"}for(var o=typeof t!="string"?[].concat(t):t.split(".");o.length>1;){if(i())return{};var a=r(o.shift());!e[a]&&n&&(e[a]=new n),Object.prototype.hasOwnProperty.call(e,a)?e=e[a]:e={}}return i()?{}:{obj:e,k:r(o.shift())}}function hR(e,t,n){var r=bE(e,t,Object),i=r.obj,o=r.k;i[o]=n}function Q3e(e,t,n,r){var i=bE(e,t,Object),o=i.obj,a=i.k;o[a]=o[a]||[],r&&(o[a]=o[a].concat(n)),r||o[a].push(n)}function E3(e,t){var n=bE(e,t),r=n.obj,i=n.k;if(r)return r[i]}function pR(e,t,n){var r=E3(e,n);return r!==void 0?r:E3(t,n)}function wU(e,t,n){for(var r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):wU(e[r],t[r],n):e[r]=t[r]);return e}function Mg(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var J3e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function ewe(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,function(t){return J3e[t]}):e}var a4=typeof window<"u"&&window.navigator&&typeof window.navigator.userAgentData>"u"&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,twe=[" ",",","?","!",";"];function nwe(e,t,n){t=t||"",n=n||"";var r=twe.filter(function(s){return t.indexOf(s)<0&&n.indexOf(s)<0});if(r.length===0)return!0;var i=new RegExp("(".concat(r.map(function(s){return s==="?"?"\\?":s}).join("|"),")")),o=!i.test(e);if(!o){var a=e.indexOf(n);a>0&&!i.test(e.substring(0,a))&&(o=!0)}return o}function gR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function tx(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function CU(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),i=e,o=0;oo+a;)a++,s=r.slice(o,o+a).join(n),l=i[s];if(l===void 0)return;if(l===null)return null;if(t.endsWith(s)){if(typeof l=="string")return l;if(s&&typeof l[s]=="string")return l[s]}var u=r.slice(o+a).join(n);return u?CU(l,u,n):void 0}i=i[r[o]]}return i}}var owe=function(e){o4(n,e);var t=rwe(n);function n(r){var i,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return gs(this,n),i=t.call(this),a4&&Jd.call(Fd(i)),i.data=r||{},i.options=o,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.options.ignoreJSONStructure===void 0&&(i.options.ignoreJSONStructure=!0),i}return ms(n,[{key:"addNamespaces",value:function(i){this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}},{key:"removeNamespaces",value:function(i){var o=this.options.ns.indexOf(i);o>-1&&this.options.ns.splice(o,1)}},{key:"getResource",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},l=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,u=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure,d=[i,o];a&&typeof a!="string"&&(d=d.concat(a)),a&&typeof a=="string"&&(d=d.concat(l?a.split(l):a)),i.indexOf(".")>-1&&(d=i.split("."));var h=E3(this.data,d);return h||!u||typeof a!="string"?h:CU(this.data&&this.data[i]&&this.data[i][o],a,l)}},{key:"addResource",value:function(i,o,a,s){var l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},u=this.options.keySeparator;u===void 0&&(u=".");var d=[i,o];a&&(d=d.concat(u?a.split(u):a)),i.indexOf(".")>-1&&(d=i.split("."),s=o,o=d[1]),this.addNamespaces(o),hR(this.data,d,s),l.silent||this.emit("added",i,o,a,s)}},{key:"addResources",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var l in a)(typeof a[l]=="string"||Object.prototype.toString.apply(a[l])==="[object Array]")&&this.addResource(i,o,l,a[l],{silent:!0});s.silent||this.emit("added",i,o,a)}},{key:"addResourceBundle",value:function(i,o,a,s,l){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},d=[i,o];i.indexOf(".")>-1&&(d=i.split("."),s=a,a=o,o=d[1]),this.addNamespaces(o);var h=E3(this.data,d)||{};s?wU(h,a,l):h=tx(tx({},h),a),hR(this.data,d,h),u.silent||this.emit("added",i,o,a)}},{key:"removeResourceBundle",value:function(i,o){this.hasResourceBundle(i,o)&&delete this.data[i][o],this.removeNamespaces(o),this.emit("removed",i,o)}},{key:"hasResourceBundle",value:function(i,o){return this.getResource(i,o)!==void 0}},{key:"getResourceBundle",value:function(i,o){return o||(o=this.options.defaultNS),this.options.compatibilityAPI==="v1"?tx(tx({},{}),this.getResource(i,o)):this.getResource(i,o)}},{key:"getDataByLanguage",value:function(i){return this.data[i]}},{key:"hasLanguageSomeTranslations",value:function(i){var o=this.getDataByLanguage(i),a=o&&Object.keys(o)||[];return!!a.find(function(s){return o[s]&&Object.keys(o[s]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(Jd),_U={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,n,r,i,o){var a=this;return t.forEach(function(s){a.processors[s]&&(n=a.processors[s].process(n,r,i,o))}),n}};function mR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function yo(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var vR={},yR=function(e){o4(n,e);var t=awe(n);function n(r){var i,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return gs(this,n),i=t.call(this),a4&&Jd.call(Fd(i)),Z3e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,Fd(i)),i.options=o,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.logger=Wl.create("translator"),i}return ms(n,[{key:"changeLanguage",value:function(i){i&&(this.language=i)}},{key:"exists",value:function(i){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(i==null)return!1;var a=this.resolve(i,o);return a&&a.res!==void 0}},{key:"extractFromKey",value:function(i,o){var a=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");var s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,l=o.ns||this.options.defaultNS||[],u=a&&i.indexOf(a)>-1,d=!this.options.userDefinedKeySeparator&&!o.keySeparator&&!this.options.userDefinedNsSeparator&&!o.nsSeparator&&!nwe(i,a,s);if(u&&!d){var h=i.match(this.interpolator.nestingRegexp);if(h&&h.length>0)return{key:i,namespaces:l};var m=i.split(a);(a!==s||a===s&&this.options.ns.indexOf(m[0])>-1)&&(l=m.shift()),i=m.join(s)}return typeof l=="string"&&(l=[l]),{key:i,namespaces:l}}},{key:"translate",value:function(i,o,a){var s=this;if(Ks(o)!=="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),i==null)return"";Array.isArray(i)||(i=[String(i)]);var l=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,u=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,d=this.extractFromKey(i[i.length-1],o),h=d.key,m=d.namespaces,y=m[m.length-1],b=o.lng||this.language,w=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(b&&b.toLowerCase()==="cimode"){if(w){var E=o.nsSeparator||this.options.nsSeparator;return l?{res:"".concat(y).concat(E).concat(h),usedKey:h,exactUsedKey:h,usedLng:b,usedNS:y}:"".concat(y).concat(E).concat(h)}return l?{res:h,usedKey:h,exactUsedKey:h,usedLng:b,usedNS:y}:h}var _=this.resolve(i,o),k=_&&_.res,T=_&&_.usedKey||h,L=_&&_.exactUsedKey||h,O=Object.prototype.toString.apply(k),D=["[object Number]","[object Function]","[object RegExp]"],I=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,N=!this.i18nFormat||this.i18nFormat.handleAsObject,W=typeof k!="string"&&typeof k!="boolean"&&typeof k!="number";if(N&&k&&W&&D.indexOf(O)<0&&!(typeof I=="string"&&O==="[object Array]")){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var B=this.options.returnedObjectHandler?this.options.returnedObjectHandler(T,k,yo(yo({},o),{},{ns:m})):"key '".concat(h," (").concat(this.language,")' returned an object instead of string.");return l?(_.res=B,_):B}if(u){var K=O==="[object Array]",ne=K?[]:{},z=K?L:T;for(var $ in k)if(Object.prototype.hasOwnProperty.call(k,$)){var V="".concat(z).concat(u).concat($);ne[$]=this.translate(V,yo(yo({},o),{joinArrays:!1,ns:m})),ne[$]===V&&(ne[$]=k[$])}k=ne}}else if(N&&typeof I=="string"&&O==="[object Array]")k=k.join(I),k&&(k=this.extendTranslation(k,i,o,a));else{var X=!1,Q=!1,G=o.count!==void 0&&typeof o.count!="string",Y=n.hasDefaultValue(o),ee=G?this.pluralResolver.getSuffix(b,o.count,o):"",fe=o["defaultValue".concat(ee)]||o.defaultValue;!this.isValidLookup(k)&&Y&&(X=!0,k=fe),this.isValidLookup(k)||(Q=!0,k=h);var Ce=o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,we=Ce&&Q?void 0:k,xe=Y&&fe!==k&&this.options.updateMissing;if(Q||X||xe){if(this.logger.log(xe?"updateKey":"missingKey",b,y,h,xe?fe:k),u){var Le=this.resolve(h,yo(yo({},o),{},{keySeparator:!1}));Le&&Le.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var Se=[],Qe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Qe&&Qe[0])for(var Xe=0;Xe1&&arguments[1]!==void 0?arguments[1]:{},s,l,u,d,h;return typeof i=="string"&&(i=[i]),i.forEach(function(m){if(!o.isValidLookup(s)){var y=o.extractFromKey(m,a),b=y.key;l=b;var w=y.namespaces;o.options.fallbackNS&&(w=w.concat(o.options.fallbackNS));var E=a.count!==void 0&&typeof a.count!="string",_=E&&!a.ordinal&&a.count===0&&o.pluralResolver.shouldUseIntlApi(),k=a.context!==void 0&&(typeof a.context=="string"||typeof a.context=="number")&&a.context!=="",T=a.lngs?a.lngs:o.languageUtils.toResolveHierarchy(a.lng||o.language,a.fallbackLng);w.forEach(function(L){o.isValidLookup(s)||(h=L,!vR["".concat(T[0],"-").concat(L)]&&o.utils&&o.utils.hasLoadedNamespace&&!o.utils.hasLoadedNamespace(h)&&(vR["".concat(T[0],"-").concat(L)]=!0,o.logger.warn('key "'.concat(l,'" for languages "').concat(T.join(", "),`" won't get resolved as namespace "`).concat(h,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),T.forEach(function(O){if(!o.isValidLookup(s)){d=O;var D=[b];if(o.i18nFormat&&o.i18nFormat.addLookupKeys)o.i18nFormat.addLookupKeys(D,b,O,L,a);else{var I;E&&(I=o.pluralResolver.getSuffix(O,a.count,a));var N="".concat(o.options.pluralSeparator,"zero");if(E&&(D.push(b+I),_&&D.push(b+N)),k){var W="".concat(b).concat(o.options.contextSeparator).concat(a.context);D.push(W),E&&(D.push(W+I),_&&D.push(W+N))}}for(var B;B=D.pop();)o.isValidLookup(s)||(u=B,s=o.getResource(O,L,B,a))}}))})}}),{res:s,usedKey:l,exactUsedKey:u,usedLng:d,usedNS:h}}},{key:"isValidLookup",value:function(i){return i!==void 0&&!(!this.options.returnNull&&i===null)&&!(!this.options.returnEmptyString&&i==="")}},{key:"getResource",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(i,o,a,s):this.resourceStore.getResource(i,o,a,s)}}],[{key:"hasDefaultValue",value:function(i){var o="defaultValue";for(var a in i)if(Object.prototype.hasOwnProperty.call(i,a)&&o===a.substring(0,o.length)&&i[a]!==void 0)return!0;return!1}}]),n}(Jd);function NC(e){return e.charAt(0).toUpperCase()+e.slice(1)}var bR=function(){function e(t){gs(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Wl.create("languageUtils")}return ms(e,[{key:"getScriptPartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return null;var r=n.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}},{key:"getLanguagePartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return n;var r=n.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function(n){if(typeof n=="string"&&n.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],i=n.split("-");return this.options.lowerCaseLng?i=i.map(function(o){return o.toLowerCase()}):i.length===2?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=NC(i[1].toLowerCase()))):i.length===3&&(i[0]=i[0].toLowerCase(),i[1].length===2&&(i[1]=i[1].toUpperCase()),i[0]!=="sgn"&&i[2].length===2&&(i[2]=i[2].toUpperCase()),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=NC(i[1].toLowerCase())),r.indexOf(i[2].toLowerCase())>-1&&(i[2]=NC(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?n.toLowerCase():n}},{key:"isSupportedCode",value:function(n){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(n=this.getLanguagePartFromCode(n)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(n)>-1}},{key:"getBestMatchFromCodes",value:function(n){var r=this;if(!n)return null;var i;return n.forEach(function(o){if(!i){var a=r.formatLanguageCode(o);(!r.options.supportedLngs||r.isSupportedCode(a))&&(i=a)}}),!i&&this.options.supportedLngs&&n.forEach(function(o){if(!i){var a=r.getLanguagePartFromCode(o);if(r.isSupportedCode(a))return i=a;i=r.options.supportedLngs.find(function(s){if(s.indexOf(a)===0)return s})}}),i||(i=this.getFallbackCodes(this.options.fallbackLng)[0]),i}},{key:"getFallbackCodes",value:function(n,r){if(!n)return[];if(typeof n=="function"&&(n=n(r)),typeof n=="string"&&(n=[n]),Object.prototype.toString.apply(n)==="[object Array]")return n;if(!r)return n.default||[];var i=n[r];return i||(i=n[this.getScriptPartFromCode(r)]),i||(i=n[this.formatLanguageCode(r)]),i||(i=n[this.getLanguagePartFromCode(r)]),i||(i=n.default),i||[]}},{key:"toResolveHierarchy",value:function(n,r){var i=this,o=this.getFallbackCodes(r||this.options.fallbackLng||[],n),a=[],s=function(u){u&&(i.isSupportedCode(u)?a.push(u):i.logger.warn("rejecting language code not found in supportedLngs: ".concat(u)))};return typeof n=="string"&&n.indexOf("-")>-1?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(n)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(n)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(n))):typeof n=="string"&&s(this.formatLanguageCode(n)),o.forEach(function(l){a.indexOf(l)<0&&s(i.formatLanguageCode(l))}),a}}]),e}(),lwe=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],uwe={1:function(t){return Number(t>1)},2:function(t){return Number(t!=1)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(t==1?0:t>=2&&t<=4?1:2)},7:function(t){return Number(t==1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(t==1?0:t==2?1:t!=8&&t!=11?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(t==1?0:t==2?1:t<7?2:t<11?3:4)},11:function(t){return Number(t==1||t==11?0:t==2||t==12?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(t!==0)},14:function(t){return Number(t==1?0:t==2?1:t==3?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:t!==0?1:2)},17:function(t){return Number(t==1||t%10==1&&t%100!=11?0:1)},18:function(t){return Number(t==0?0:t==1?1:2)},19:function(t){return Number(t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(t==1?0:t==0||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function(t){return Number(t==1?0:t==2?1:(t<0||t>10)&&t%10==0?2:3)}},cwe=["v1","v2","v3"],xR={zero:0,one:1,two:2,few:3,many:4,other:5};function dwe(){var e={};return lwe.forEach(function(t){t.lngs.forEach(function(n){e[n]={numbers:t.nr,plurals:uwe[t.fc]}})}),e}var fwe=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};gs(this,e),this.languageUtils=t,this.options=n,this.logger=Wl.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=dwe()}return ms(e,[{key:"addRule",value:function(n,r){this.rules[n]=r}},{key:"getRule",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(n,{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[n]||this.rules[this.languageUtils.getLanguagePartFromCode(n)]}},{key:"needsPlural",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.getRule(n,r);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(n,i).map(function(o){return"".concat(r).concat(o)})}},{key:"getSuffixes",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.getRule(n,i);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort(function(a,s){return xR[a]-xR[s]}).map(function(a){return"".concat(r.options.prepend).concat(a)}):o.numbers.map(function(a){return r.getSuffix(n,a,i)}):[]}},{key:"getSuffix",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=this.getRule(n,i);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(r)):this.getSuffixRetroCompatible(o,r):(this.logger.warn("no plural rule found for: ".concat(n)),"")}},{key:"getSuffixRetroCompatible",value:function(n,r){var i=this,o=n.noAbs?n.plurals(r):n.plurals(Math.abs(r)),a=n.numbers[o];this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1&&(a===2?a="plural":a===1&&(a=""));var s=function(){return i.options.prepend&&a.toString()?i.options.prepend+a.toString():a.toString()};return this.options.compatibilityJSON==="v1"?a===1?"":typeof a=="number"?"_plural_".concat(a.toString()):s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1?s():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!cwe.includes(this.options.compatibilityJSON)}}]),e}();function SR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Fs(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{};gs(this,e),this.logger=Wl.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(n){return n},this.init(t)}return ms(e,[{key:"init",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};n.interpolation||(n.interpolation={escapeValue:!0});var r=n.interpolation;this.escape=r.escape!==void 0?r.escape:ewe,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?Mg(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?Mg(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?Mg(r.nestingPrefix):r.nestingPrefixEscaped||Mg("$t("),this.nestingSuffix=r.nestingSuffix?Mg(r.nestingSuffix):r.nestingSuffixEscaped||Mg(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var n="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(n,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var i="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(i,"g")}},{key:"interpolate",value:function(n,r,i,o){var a=this,s,l,u,d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(E){return E.replace(/\$/g,"$$$$")}var m=function(_){if(_.indexOf(a.formatSeparator)<0){var k=pR(r,d,_);return a.alwaysFormat?a.format(k,void 0,i,Fs(Fs(Fs({},o),r),{},{interpolationkey:_})):k}var T=_.split(a.formatSeparator),L=T.shift().trim(),O=T.join(a.formatSeparator).trim();return a.format(pR(r,d,L),O,i,Fs(Fs(Fs({},o),r),{},{interpolationkey:L}))};this.resetRegExp();var y=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,b=o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,w=[{regex:this.regexpUnescape,safeValue:function(_){return h(_)}},{regex:this.regexp,safeValue:function(_){return a.escapeValue?h(a.escape(_)):h(_)}}];return w.forEach(function(E){for(u=0;s=E.regex.exec(n);){var _=s[1].trim();if(l=m(_),l===void 0)if(typeof y=="function"){var k=y(n,s,o);l=typeof k=="string"?k:""}else if(o&&Object.prototype.hasOwnProperty.call(o,_))l="";else if(b){l=s[0];continue}else a.logger.warn("missed to pass in variable ".concat(_," for interpolating ").concat(n)),l="";else typeof l!="string"&&!a.useRawValueToEscape&&(l=fR(l));var T=E.safeValue(l);if(n=n.replace(s[0],T),b?(E.regex.lastIndex+=l.length,E.regex.lastIndex-=s[0].length):E.regex.lastIndex=0,u++,u>=a.maxReplaces)break}}),n}},{key:"nest",value:function(n,r){var i=this,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,s,l;function u(y,b){var w=this.nestingOptionsSeparator;if(y.indexOf(w)<0)return y;var E=y.split(new RegExp("".concat(w,"[ ]*{"))),_="{".concat(E[1]);y=E[0],_=this.interpolate(_,l);var k=_.match(/'/g),T=_.match(/"/g);(k&&k.length%2===0&&!T||T.length%2!==0)&&(_=_.replace(/'/g,'"'));try{l=JSON.parse(_),b&&(l=Fs(Fs({},b),l))}catch(L){return this.logger.warn("failed parsing options string in nesting for key ".concat(y),L),"".concat(y).concat(w).concat(_)}return delete l.defaultValue,y}for(;a=this.nestingRegexp.exec(n);){var d=[];l=Fs({},o),l=l.replace&&typeof l.replace!="string"?l.replace:l,l.applyPostProcessor=!1,delete l.defaultValue;var h=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){var m=a[1].split(this.formatSeparator).map(function(y){return y.trim()});a[1]=m.shift(),d=m,h=!0}if(s=r(u.call(this,a[1].trim(),l),l),s&&a[0]===n&&typeof s!="string")return s;typeof s!="string"&&(s=fR(s)),s||(this.logger.warn("missed to resolve ".concat(a[1]," for nesting ").concat(n)),s=""),h&&(s=d.reduce(function(y,b){return i.format(y,b,o.lng,Fs(Fs({},o),{},{interpolationkey:a[1].trim()}))},s.trim())),n=n.replace(a[0],s),this.regexp.lastIndex=0}return n}}]),e}();function wR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ru(e){for(var t=1;t-1){var r=e.split("(");t=r[0].toLowerCase().trim();var i=r[1].substring(0,r[1].length-1);if(t==="currency"&&i.indexOf(":")<0)n.currency||(n.currency=i.trim());else if(t==="relativetime"&&i.indexOf(":")<0)n.range||(n.range=i.trim());else{var o=i.split(";");o.forEach(function(a){if(a){var s=a.split(":"),l=K3e(s),u=l[0],d=l.slice(1),h=d.join(":").trim().replace(/^'+|'+$/g,"");n[u.trim()]||(n[u.trim()]=h),h==="false"&&(n[u.trim()]=!1),h==="true"&&(n[u.trim()]=!0),isNaN(h)||(n[u.trim()]=parseInt(h,10))}})}}return{formatName:t,formatOptions:n}}function Lg(e){var t={};return function(r,i,o){var a=i+JSON.stringify(o),s=t[a];return s||(s=e(i,o),t[a]=s),s(r)}}var gwe=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gs(this,e),this.logger=Wl.create("formatter"),this.options=t,this.formats={number:Lg(function(n,r){var i=new Intl.NumberFormat(n,Ru({},r));return function(o){return i.format(o)}}),currency:Lg(function(n,r){var i=new Intl.NumberFormat(n,Ru(Ru({},r),{},{style:"currency"}));return function(o){return i.format(o)}}),datetime:Lg(function(n,r){var i=new Intl.DateTimeFormat(n,Ru({},r));return function(o){return i.format(o)}}),relativetime:Lg(function(n,r){var i=new Intl.RelativeTimeFormat(n,Ru({},r));return function(o){return i.format(o,r.range||"day")}}),list:Lg(function(n,r){var i=new Intl.ListFormat(n,Ru({},r));return function(o){return i.format(o)}})},this.init(t)}return ms(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},i=r.interpolation;this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||","}},{key:"add",value:function(n,r){this.formats[n.toLowerCase().trim()]=r}},{key:"addCached",value:function(n,r){this.formats[n.toLowerCase().trim()]=Lg(r)}},{key:"format",value:function(n,r,i){var o=this,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=r.split(this.formatSeparator),l=s.reduce(function(u,d){var h=pwe(d),m=h.formatName,y=h.formatOptions;if(o.formats[m]){var b=u;try{var w=a&&a.formatParams&&a.formatParams[a.interpolationkey]||{},E=w.locale||w.lng||a.locale||a.lng||i;b=o.formats[m](u,E,Ru(Ru(Ru({},y),a),w))}catch(_){o.logger.warn(_)}return b}else o.logger.warn("there was no format function for ".concat(m));return u},n);return l}}]),e}();function CR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function _R(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ywe(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}var bwe=function(e){o4(n,e);var t=mwe(n);function n(r,i,o){var a,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return gs(this,n),a=t.call(this),a4&&Jd.call(Fd(a)),a.backend=r,a.store=i,a.services=o,a.languageUtils=o.languageUtils,a.options=s,a.logger=Wl.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=s.maxParallelReads||10,a.readingCalls=0,a.maxRetries=s.maxRetries>=0?s.maxRetries:5,a.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,s.backend,s),a}return ms(n,[{key:"queueLoad",value:function(i,o,a,s){var l=this,u={},d={},h={},m={};return i.forEach(function(y){var b=!0;o.forEach(function(w){var E="".concat(y,"|").concat(w);!a.reload&&l.store.hasResourceBundle(y,w)?l.state[E]=2:l.state[E]<0||(l.state[E]===1?d[E]===void 0&&(d[E]=!0):(l.state[E]=1,b=!1,d[E]===void 0&&(d[E]=!0),u[E]===void 0&&(u[E]=!0),m[w]===void 0&&(m[w]=!0)))}),b||(h[y]=!0)}),(Object.keys(u).length||Object.keys(d).length)&&this.queue.push({pending:d,pendingCount:Object.keys(d).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(u),pending:Object.keys(d),toLoadLanguages:Object.keys(h),toLoadNamespaces:Object.keys(m)}}},{key:"loaded",value:function(i,o,a){var s=i.split("|"),l=s[0],u=s[1];o&&this.emit("failedLoading",l,u,o),a&&this.store.addResourceBundle(l,u,a),this.state[i]=o?-1:2;var d={};this.queue.forEach(function(h){Q3e(h.loaded,[l],u),ywe(h,i),o&&h.errors.push(o),h.pendingCount===0&&!h.done&&(Object.keys(h.loaded).forEach(function(m){d[m]||(d[m]={});var y=h.loaded[m];y.length&&y.forEach(function(b){d[m][b]===void 0&&(d[m][b]=!0)})}),h.done=!0,h.errors.length?h.callback(h.errors):h.callback())}),this.emit("loaded",d),this.queue=this.queue.filter(function(h){return!h.done})}},{key:"read",value:function(i,o,a){var s=this,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,u=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,d=arguments.length>5?arguments[5]:void 0;if(!i.length)return d(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:i,ns:o,fcName:a,tried:l,wait:u,callback:d});return}this.readingCalls++;var h=function(w,E){if(s.readingCalls--,s.waitingReads.length>0){var _=s.waitingReads.shift();s.read(_.lng,_.ns,_.fcName,_.tried,_.wait,_.callback)}if(w&&E&&l2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),l&&l();typeof i=="string"&&(i=this.languageUtils.toResolveHierarchy(i)),typeof o=="string"&&(o=[o]);var u=this.queueLoad(i,o,s,l);if(!u.toLoad.length)return u.pending.length||l(),null;u.toLoad.forEach(function(d){a.loadOne(d)})}},{key:"load",value:function(i,o,a){this.prepareLoading(i,o,{},a)}},{key:"reload",value:function(i,o,a){this.prepareLoading(i,o,{reload:!0},a)}},{key:"loadOne",value:function(i){var o=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",s=i.split("|"),l=s[0],u=s[1];this.read(l,u,"read",void 0,void 0,function(d,h){d&&o.logger.warn("".concat(a,"loading namespace ").concat(u," for language ").concat(l," failed"),d),!d&&h&&o.logger.log("".concat(a,"loaded namespace ").concat(u," for language ").concat(l),h),o.loaded(i,d,h)})}},{key:"saveMissing",value:function(i,o,a,s,l){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},d=arguments.length>6&&arguments[6]!==void 0?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(o)){this.logger.warn('did not save key "'.concat(a,'" as the namespace "').concat(o,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend&&this.backend.create){var h=_R(_R({},u),{},{isUpdate:l}),m=this.backend.create.bind(this.backend);if(m.length<6)try{var y;m.length===5?y=m(i,o,a,s,h):y=m(i,o,a,s),y&&typeof y.then=="function"?y.then(function(b){return d(null,b)}).catch(d):d(null,y)}catch(b){d(b)}else m(i,o,a,s,d,h)}!i||!i[0]||this.store.addResource(i[0],o,a,s)}}}]),n}(Jd);function kR(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var n={};if(Ks(t[1])==="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),Ks(t[2])==="object"||Ks(t[3])==="object"){var r=t[3]||t[2];Object.keys(r).forEach(function(i){n[i]=r[i]})}return n},interpolation:{escapeValue:!0,format:function(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function ER(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function PR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Tl(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function nx(){}function wwe(e){var t=Object.getOwnPropertyNames(Object.getPrototypeOf(e));t.forEach(function(n){typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}var P3=function(e){o4(n,e);var t=xwe(n);function n(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(gs(this,n),r=t.call(this),a4&&Jd.call(Fd(r)),r.options=ER(i),r.services={},r.logger=Wl,r.modules={external:[]},wwe(Fd(r)),o&&!r.isInitialized&&!i.isClone){if(!r.options.initImmediate)return r.init(i,o),g2(r,Fd(r));setTimeout(function(){r.init(i,o)},0)}return r}return ms(n,[{key:"init",value:function(){var i=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;typeof o=="function"&&(a=o,o={}),!o.defaultNS&&o.defaultNS!==!1&&o.ns&&(typeof o.ns=="string"?o.defaultNS=o.ns:o.ns.indexOf("translation")<0&&(o.defaultNS=o.ns[0]));var s=kR();this.options=Tl(Tl(Tl({},s),this.options),ER(o)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=Tl(Tl({},s.interpolation),this.options.interpolation)),o.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=o.keySeparator),o.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=o.nsSeparator);function l(_){return _?typeof _=="function"?new _:_:null}if(!this.options.isClone){this.modules.logger?Wl.init(l(this.modules.logger),this.options):Wl.init(null,this.options);var u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=gwe);var d=new bR(this.options);this.store=new owe(this.options.resources,this.options);var h=this.services;h.logger=Wl,h.resourceStore=this.store,h.languageUtils=d,h.pluralResolver=new fwe(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(h.formatter=l(u),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new hwe(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new bwe(l(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(_){for(var k=arguments.length,T=new Array(k>1?k-1:0),L=1;L1?k-1:0),L=1;L0&&m[0]!=="dev"&&(this.options.lng=m[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var y=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];y.forEach(function(_){i[_]=function(){var k;return(k=i.store)[_].apply(k,arguments)}});var b=["addResource","addResources","addResourceBundle","removeResourceBundle"];b.forEach(function(_){i[_]=function(){var k;return(k=i.store)[_].apply(k,arguments),i}});var w=qv(),E=function(){var k=function(L,O){i.isInitialized&&!i.initializedStoreOnce&&i.logger.warn("init: i18next is already initialized. You should call init just once!"),i.isInitialized=!0,i.options.isClone||i.logger.log("initialized",i.options),i.emit("initialized",i.options),w.resolve(O),a(L,O)};if(i.languages&&i.options.compatibilityAPI!=="v1"&&!i.isInitialized)return k(null,i.t.bind(i));i.changeLanguage(i.options.lng,k)};return this.options.resources||!this.options.initImmediate?E():setTimeout(E,0),w}},{key:"loadResources",value:function(i){var o=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nx,s=a,l=typeof i=="string"?i:this.language;if(typeof i=="function"&&(s=i),!this.options.resources||this.options.partialBundledLanguages){if(l&&l.toLowerCase()==="cimode")return s();var u=[],d=function(y){if(y){var b=o.services.languageUtils.toResolveHierarchy(y);b.forEach(function(w){u.indexOf(w)<0&&u.push(w)})}};if(l)d(l);else{var h=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);h.forEach(function(m){return d(m)})}this.options.preload&&this.options.preload.forEach(function(m){return d(m)}),this.services.backendConnector.load(u,this.options.ns,function(m){!m&&!o.resolvedLanguage&&o.language&&o.setResolvedLanguage(o.language),s(m)})}else s(null)}},{key:"reloadResources",value:function(i,o,a){var s=qv();return i||(i=this.languages),o||(o=this.options.ns),a||(a=nx),this.services.backendConnector.reload(i,o,function(l){s.resolve(),a(l)}),s}},{key:"use",value:function(i){if(!i)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!i.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return i.type==="backend"&&(this.modules.backend=i),(i.type==="logger"||i.log&&i.warn&&i.error)&&(this.modules.logger=i),i.type==="languageDetector"&&(this.modules.languageDetector=i),i.type==="i18nFormat"&&(this.modules.i18nFormat=i),i.type==="postProcessor"&&_U.addPostProcessor(i),i.type==="formatter"&&(this.modules.formatter=i),i.type==="3rdParty"&&this.modules.external.push(i),this}},{key:"setResolvedLanguage",value:function(i){if(!(!i||!this.languages)&&!(["cimode","dev"].indexOf(i)>-1))for(var o=0;o-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}},{key:"changeLanguage",value:function(i,o){var a=this;this.isLanguageChangingTo=i;var s=qv();this.emit("languageChanging",i);var l=function(m){a.language=m,a.languages=a.services.languageUtils.toResolveHierarchy(m),a.resolvedLanguage=void 0,a.setResolvedLanguage(m)},u=function(m,y){y?(l(y),a.translator.changeLanguage(y),a.isLanguageChangingTo=void 0,a.emit("languageChanged",y),a.logger.log("languageChanged",y)):a.isLanguageChangingTo=void 0,s.resolve(function(){return a.t.apply(a,arguments)}),o&&o(m,function(){return a.t.apply(a,arguments)})},d=function(m){!i&&!m&&a.services.languageDetector&&(m=[]);var y=typeof m=="string"?m:a.services.languageUtils.getBestMatchFromCodes(m);y&&(a.language||l(y),a.translator.language||a.translator.changeLanguage(y),a.services.languageDetector&&a.services.languageDetector.cacheUserLanguage&&a.services.languageDetector.cacheUserLanguage(y)),a.loadResources(y,function(b){u(b,y)})};return!i&&this.services.languageDetector&&!this.services.languageDetector.async?d(this.services.languageDetector.detect()):!i&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(d):this.services.languageDetector.detect(d):d(i),s}},{key:"getFixedT",value:function(i,o,a){var s=this,l=function u(d,h){var m;if(Ks(h)!=="object"){for(var y=arguments.length,b=new Array(y>2?y-2:0),w=2;w1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var s=this.resolvedLanguage||this.languages[0],l=this.options?this.options.fallbackLng:!1,u=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;var d=function(y,b){var w=o.services.backendConnector.state["".concat(y,"|").concat(b)];return w===-1||w===2};if(a.precheck){var h=a.precheck(this,d);if(h!==void 0)return h}return!!(this.hasResourceBundle(s,i)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||d(s,i)&&(!l||d(u,i)))}},{key:"loadNamespaces",value:function(i,o){var a=this,s=qv();return this.options.ns?(typeof i=="string"&&(i=[i]),i.forEach(function(l){a.options.ns.indexOf(l)<0&&a.options.ns.push(l)}),this.loadResources(function(l){s.resolve(),o&&o(l)}),s):(o&&o(),Promise.resolve())}},{key:"loadLanguages",value:function(i,o){var a=qv();typeof i=="string"&&(i=[i]);var s=this.options.preload||[],l=i.filter(function(u){return s.indexOf(u)<0});return l.length?(this.options.preload=s.concat(l),this.loadResources(function(u){a.resolve(),o&&o(u)}),a):(o&&o(),Promise.resolve())}},{key:"dir",value:function(i){if(i||(i=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!i)return"rtl";var o=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services&&this.services.languageUtils||new bR(kR());return o.indexOf(a.getLanguagePartFromCode(i))>-1||i.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var i=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nx,s=Tl(Tl(Tl({},this.options),o),{isClone:!0}),l=new n(s);(o.debug!==void 0||o.prefix!==void 0)&&(l.logger=l.logger.clone(o));var u=["store","services","language"];return u.forEach(function(d){l[d]=i[d]}),l.services=Tl({},this.services),l.services.utils={hasLoadedNamespace:l.hasLoadedNamespace.bind(l)},l.translator=new yR(l.services,l.options),l.translator.on("*",function(d){for(var h=arguments.length,m=new Array(h>1?h-1:0),y=1;y0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new P3(e,t)});var Et=P3.createInstance();Et.createInstance=P3.createInstance;Et.createInstance;Et.dir;Et.init;Et.loadResources;Et.reloadResources;Et.use;Et.changeLanguage;Et.getFixedT;Et.t;Et.exists;Et.setDefaultNamespace;Et.hasLoadedNamespace;Et.loadNamespaces;Et.loadLanguages;var kU=[],Cwe=kU.forEach,_we=kU.slice;function kwe(e){return Cwe.call(_we.call(arguments,1),function(t){if(t)for(var n in t)e[n]===void 0&&(e[n]=t[n])}),e}var TR=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Ewe=function(t,n,r){var i=r||{};i.path=i.path||"/";var o=encodeURIComponent(n),a="".concat(t,"=").concat(o);if(i.maxAge>0){var s=i.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");a+="; Max-Age=".concat(Math.floor(s))}if(i.domain){if(!TR.test(i.domain))throw new TypeError("option domain is invalid");a+="; Domain=".concat(i.domain)}if(i.path){if(!TR.test(i.path))throw new TypeError("option path is invalid");a+="; Path=".concat(i.path)}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");a+="; Expires=".concat(i.expires.toUTCString())}if(i.httpOnly&&(a+="; HttpOnly"),i.secure&&(a+="; Secure"),i.sameSite){var l=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return a},MR={create:function(t,n,r,i){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+r*60*1e3)),i&&(o.domain=i),document.cookie=Ewe(t,encodeURIComponent(n),o)},read:function(t){for(var n="".concat(t,"="),r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),o=i.split("&"),a=0;a0){var l=o[a].substring(0,s);l===t.lookupQuerystring&&(n=o[a].substring(s+1))}}}return n}},Kv=null,LR=function(){if(Kv!==null)return Kv;try{Kv=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Kv=!1}return Kv},Mwe={name:"localStorage",lookup:function(t){var n;if(t.lookupLocalStorage&&LR()){var r=window.localStorage.getItem(t.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupLocalStorage&&LR()&&window.localStorage.setItem(n.lookupLocalStorage,t)}},Yv=null,AR=function(){if(Yv!==null)return Yv;try{Yv=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Yv=!1}return Yv},Lwe={name:"sessionStorage",lookup:function(t){var n;if(t.lookupSessionStorage&&AR()){var r=window.sessionStorage.getItem(t.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupSessionStorage&&AR()&&window.sessionStorage.setItem(n.lookupSessionStorage,t)}},Awe={name:"navigator",lookup:function(t){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},Owe={name:"htmlTag",lookup:function(t){var n,r=t.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},Rwe={name:"path",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof r[t.lookupFromPathIndex]!="string")return;n=r[t.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},Iwe={name:"subdomain",lookup:function(t){var n=typeof t.lookupFromSubdomainIndex=="number"?t.lookupFromSubdomainIndex+1:1,r=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}};function Dwe(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}}var EU=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};gs(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return ms(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=kwe(r,this.options||{},Dwe()),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Pwe),this.addDetector(Twe),this.addDetector(Mwe),this.addDetector(Lwe),this.addDetector(Awe),this.addDetector(Owe),this.addDetector(Rwe),this.addDetector(Iwe)}},{key:"addDetector",value:function(n){this.detectors[n.name]=n}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(o){if(r.detectors[o]){var a=r.detectors[o].lookup(r.options);a&&typeof a=="string"&&(a=[a]),a&&(i=i.concat(a))}}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(o){i.detectors[o]&&i.detectors[o].cacheUserLanguage(n,i.options)}))}}]),e}();EU.type="languageDetector";function Ck(e){return Ck=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ck(e)}var PU=[],jwe=PU.forEach,Nwe=PU.slice;function _k(e){return jwe.call(Nwe.call(arguments,1),function(t){if(t)for(var n in t)e[n]===void 0&&(e[n]=t[n])}),e}function TU(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":Ck(XMLHttpRequest))==="object"}function $we(e){return!!e&&typeof e.then=="function"}function Fwe(e){return $we(e)?e:Promise.resolve(e)}function Bwe(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Dy={},zwe={get exports(){return Dy},set exports(e){Dy=e}},V1={},Hwe={get exports(){return V1},set exports(e){V1=e}},OR;function Wwe(){return OR||(OR=1,function(e,t){var n=typeof self<"u"?self:So,r=function(){function o(){this.fetch=!1,this.DOMException=n.DOMException}return o.prototype=n,new o}();(function(o){(function(a){var s={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function l($){return $&&DataView.prototype.isPrototypeOf($)}if(s.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],d=ArrayBuffer.isView||function($){return $&&u.indexOf(Object.prototype.toString.call($))>-1};function h($){if(typeof $!="string"&&($=String($)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test($))throw new TypeError("Invalid character in header field name");return $.toLowerCase()}function m($){return typeof $!="string"&&($=String($)),$}function y($){var V={next:function(){var X=$.shift();return{done:X===void 0,value:X}}};return s.iterable&&(V[Symbol.iterator]=function(){return V}),V}function b($){this.map={},$ instanceof b?$.forEach(function(V,X){this.append(X,V)},this):Array.isArray($)?$.forEach(function(V){this.append(V[0],V[1])},this):$&&Object.getOwnPropertyNames($).forEach(function(V){this.append(V,$[V])},this)}b.prototype.append=function($,V){$=h($),V=m(V);var X=this.map[$];this.map[$]=X?X+", "+V:V},b.prototype.delete=function($){delete this.map[h($)]},b.prototype.get=function($){return $=h($),this.has($)?this.map[$]:null},b.prototype.has=function($){return this.map.hasOwnProperty(h($))},b.prototype.set=function($,V){this.map[h($)]=m(V)},b.prototype.forEach=function($,V){for(var X in this.map)this.map.hasOwnProperty(X)&&$.call(V,this.map[X],X,this)},b.prototype.keys=function(){var $=[];return this.forEach(function(V,X){$.push(X)}),y($)},b.prototype.values=function(){var $=[];return this.forEach(function(V){$.push(V)}),y($)},b.prototype.entries=function(){var $=[];return this.forEach(function(V,X){$.push([X,V])}),y($)},s.iterable&&(b.prototype[Symbol.iterator]=b.prototype.entries);function w($){if($.bodyUsed)return Promise.reject(new TypeError("Already read"));$.bodyUsed=!0}function E($){return new Promise(function(V,X){$.onload=function(){V($.result)},$.onerror=function(){X($.error)}})}function _($){var V=new FileReader,X=E(V);return V.readAsArrayBuffer($),X}function k($){var V=new FileReader,X=E(V);return V.readAsText($),X}function T($){for(var V=new Uint8Array($),X=new Array(V.length),Q=0;Q-1?V:$}function N($,V){V=V||{};var X=V.body;if($ instanceof N){if($.bodyUsed)throw new TypeError("Already read");this.url=$.url,this.credentials=$.credentials,V.headers||(this.headers=new b($.headers)),this.method=$.method,this.mode=$.mode,this.signal=$.signal,!X&&$._bodyInit!=null&&(X=$._bodyInit,$.bodyUsed=!0)}else this.url=String($);if(this.credentials=V.credentials||this.credentials||"same-origin",(V.headers||!this.headers)&&(this.headers=new b(V.headers)),this.method=I(V.method||this.method||"GET"),this.mode=V.mode||this.mode||null,this.signal=V.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&X)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(X)}N.prototype.clone=function(){return new N(this,{body:this._bodyInit})};function W($){var V=new FormData;return $.trim().split("&").forEach(function(X){if(X){var Q=X.split("="),G=Q.shift().replace(/\+/g," "),Y=Q.join("=").replace(/\+/g," ");V.append(decodeURIComponent(G),decodeURIComponent(Y))}}),V}function B($){var V=new b,X=$.replace(/\r?\n[\t ]+/g," ");return X.split(/\r?\n/).forEach(function(Q){var G=Q.split(":"),Y=G.shift().trim();if(Y){var ee=G.join(":").trim();V.append(Y,ee)}}),V}O.call(N.prototype);function K($,V){V||(V={}),this.type="default",this.status=V.status===void 0?200:V.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in V?V.statusText:"OK",this.headers=new b(V.headers),this.url=V.url||"",this._initBody($)}O.call(K.prototype),K.prototype.clone=function(){return new K(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new b(this.headers),url:this.url})},K.error=function(){var $=new K(null,{status:0,statusText:""});return $.type="error",$};var ne=[301,302,303,307,308];K.redirect=function($,V){if(ne.indexOf(V)===-1)throw new RangeError("Invalid status code");return new K(null,{status:V,headers:{location:$}})},a.DOMException=o.DOMException;try{new a.DOMException}catch{a.DOMException=function(V,X){this.message=V,this.name=X;var Q=Error(V);this.stack=Q.stack},a.DOMException.prototype=Object.create(Error.prototype),a.DOMException.prototype.constructor=a.DOMException}function z($,V){return new Promise(function(X,Q){var G=new N($,V);if(G.signal&&G.signal.aborted)return Q(new a.DOMException("Aborted","AbortError"));var Y=new XMLHttpRequest;function ee(){Y.abort()}Y.onload=function(){var fe={status:Y.status,statusText:Y.statusText,headers:B(Y.getAllResponseHeaders()||"")};fe.url="responseURL"in Y?Y.responseURL:fe.headers.get("X-Request-URL");var Ce="response"in Y?Y.response:Y.responseText;X(new K(Ce,fe))},Y.onerror=function(){Q(new TypeError("Network request failed"))},Y.ontimeout=function(){Q(new TypeError("Network request failed"))},Y.onabort=function(){Q(new a.DOMException("Aborted","AbortError"))},Y.open(G.method,G.url,!0),G.credentials==="include"?Y.withCredentials=!0:G.credentials==="omit"&&(Y.withCredentials=!1),"responseType"in Y&&s.blob&&(Y.responseType="blob"),G.headers.forEach(function(fe,Ce){Y.setRequestHeader(Ce,fe)}),G.signal&&(G.signal.addEventListener("abort",ee),Y.onreadystatechange=function(){Y.readyState===4&&G.signal.removeEventListener("abort",ee)}),Y.send(typeof G._bodyInit>"u"?null:G._bodyInit)})}return z.polyfill=!0,o.fetch||(o.fetch=z,o.Headers=b,o.Request=N,o.Response=K),a.Headers=b,a.Request=N,a.Response=K,a.fetch=z,Object.defineProperty(a,"__esModule",{value:!0}),a})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t}(Hwe,V1)),V1}(function(e,t){var n;if(typeof fetch=="function"&&(typeof So<"u"&&So.fetch?n=So.fetch:typeof window<"u"&&window.fetch?n=window.fetch:n=fetch),typeof Bwe<"u"&&(typeof window>"u"||typeof window.document>"u")){var r=n||Wwe();r.default&&(r=r.default),t.default=r,e.exports=t.default}})(zwe,Dy);const MU=Dy,RR=Cj({__proto__:null,default:MU},[Dy]);function T3(e){return T3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T3(e)}var Yu;typeof fetch=="function"&&(typeof global<"u"&&global.fetch?Yu=global.fetch:typeof window<"u"&&window.fetch?Yu=window.fetch:Yu=fetch);var jy;TU()&&(typeof global<"u"&&global.XMLHttpRequest?jy=global.XMLHttpRequest:typeof window<"u"&&window.XMLHttpRequest&&(jy=window.XMLHttpRequest));var M3;typeof ActiveXObject=="function"&&(typeof global<"u"&&global.ActiveXObject?M3=global.ActiveXObject:typeof window<"u"&&window.ActiveXObject&&(M3=window.ActiveXObject));!Yu&&RR&&!jy&&!M3&&(Yu=MU||RR);typeof Yu!="function"&&(Yu=void 0);var kk=function(t,n){if(n&&T3(n)==="object"){var r="";for(var i in n)r+="&"+encodeURIComponent(i)+"="+encodeURIComponent(n[i]);if(!r)return t;t=t+(t.indexOf("?")!==-1?"&":"?")+r.slice(1)}return t},IR=function(t,n,r){Yu(t,n).then(function(i){if(!i.ok)return r(i.statusText||"Error",{status:i.status});i.text().then(function(o){r(null,{status:i.status,data:o})}).catch(r)}).catch(r)},DR=!1,Uwe=function(t,n,r,i){t.queryStringParams&&(n=kk(n,t.queryStringParams));var o=_k({},typeof t.customHeaders=="function"?t.customHeaders():t.customHeaders);r&&(o["Content-Type"]="application/json");var a=typeof t.requestOptions=="function"?t.requestOptions(r):t.requestOptions,s=_k({method:r?"POST":"GET",body:r?t.stringify(r):void 0,headers:o},DR?{}:a);try{IR(n,s,i)}catch(l){if(!a||Object.keys(a).length===0||!l.message||l.message.indexOf("not implemented")<0)return i(l);try{Object.keys(a).forEach(function(u){delete s[u]}),IR(n,s,i),DR=!0}catch(u){i(u)}}},Vwe=function(t,n,r,i){r&&T3(r)==="object"&&(r=kk("",r).slice(1)),t.queryStringParams&&(n=kk(n,t.queryStringParams));try{var o;jy?o=new jy:o=new M3("MSXML2.XMLHTTP.3.0"),o.open(r?"POST":"GET",n,1),t.crossDomain||o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.withCredentials=!!t.withCredentials,r&&o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),o.overrideMimeType&&o.overrideMimeType("application/json");var a=t.customHeaders;if(a=typeof a=="function"?a():a,a)for(var s in a)o.setRequestHeader(s,a[s]);o.onreadystatechange=function(){o.readyState>3&&i(o.status>=400?o.statusText:null,{status:o.status,data:o.responseText})},o.send(r)}catch(l){console&&console.log(l)}},Gwe=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i=i||function(){},Yu&&n.indexOf("file:")!==0)return Uwe(t,n,r,i);if(TU()||typeof ActiveXObject=="function")return Vwe(t,n,r,i);i(new Error("No fetch and no xhr implementation found!"))};function Ny(e){return Ny=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ny(e)}function qwe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jR(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};qwe(this,e),this.services=t,this.options=n,this.allOptions=r,this.type="backend",this.init(t,n,r)}return Kwe(e,[{key:"init",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=_k(i,this.options||{},Zwe()),this.allOptions=o,this.services&&this.options.reloadInterval&&setInterval(function(){return r.reload()},this.options.reloadInterval)}},{key:"readMulti",value:function(n,r,i){this._readAny(n,n,r,r,i)}},{key:"read",value:function(n,r,i){this._readAny([n],n,[r],r,i)}},{key:"_readAny",value:function(n,r,i,o,a){var s=this,l=this.options.loadPath;typeof this.options.loadPath=="function"&&(l=this.options.loadPath(n,i)),l=Fwe(l),l.then(function(u){if(!u)return a(null,{});var d=s.services.interpolator.interpolate(u,{lng:n.join("+"),ns:i.join("+")});s.loadUrl(d,a,r,o)})}},{key:"loadUrl",value:function(n,r,i,o){var a=this;this.options.request(this.options,n,void 0,function(s,l){if(l&&(l.status>=500&&l.status<600||!l.status))return r("failed loading "+n+"; status code: "+l.status,!0);if(l&&l.status>=400&&l.status<500)return r("failed loading "+n+"; status code: "+l.status,!1);if(!l&&s&&s.message&&s.message.indexOf("Failed to fetch")>-1)return r("failed loading "+n+": "+s.message,!0);if(s)return r(s,!1);var u,d;try{typeof l.data=="string"?u=a.options.parse(l.data,i,o):u=l.data}catch{d="failed parsing "+n+" to json"}if(d)return r(d,!1);r(null,u)})}},{key:"create",value:function(n,r,i,o,a){var s=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var l=this.options.parsePayload(r,i,o),u=0,d=[],h=[];n.forEach(function(m){var y=s.options.addPath;typeof s.options.addPath=="function"&&(y=s.options.addPath(m,r));var b=s.services.interpolator.interpolate(y,{lng:m,ns:r});s.options.request(s.options,b,l,function(w,E){u+=1,d.push(w),h.push(E),u===n.length&&typeof a=="function"&&a(d,h)})})}}},{key:"reload",value:function(){var n=this,r=this.services,i=r.backendConnector,o=r.languageUtils,a=r.logger,s=i.language;if(!(s&&s.toLowerCase()==="cimode")){var l=[],u=function(h){var m=o.toResolveHierarchy(h);m.forEach(function(y){l.indexOf(y)<0&&l.push(y)})};u(s),this.allOptions.preload&&this.allOptions.preload.forEach(function(d){return u(d)}),l.forEach(function(d){n.allOptions.ns.forEach(function(h){i.read(d,h,"read",null,null,function(m,y){m&&a.warn("loading namespace ".concat(h," for language ").concat(d," failed"),m),!m&&y&&a.log("loaded namespace ".concat(h," for language ").concat(d),y),i.loaded("".concat(d,"|").concat(h),m,y)})})})}}}]),e}();AU.type="backend";function Qwe(){if(console&&console.warn){for(var e,t=arguments.length,n=new Array(t),r=0;r2&&arguments[2]!==void 0?arguments[2]:{},r=t.languages[0],i=t.options?t.options.fallbackLng:!1,o=t.languages[t.languages.length-1];if(r.toLowerCase()==="cimode")return!0;var a=function(l,u){var d=t.services.backendConnector.state["".concat(l,"|").concat(u)];return d===-1||d===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!a(t.isLanguageChangingTo,e)?!1:!!(t.hasResourceBundle(r,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||a(r,e)&&(!i||a(o,e)))}function e4e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!t.languages||!t.languages.length)return Ek("i18n.languages were undefined or empty",t.languages),!0;var r=t.options.ignoreJSONStructure!==void 0;return r?t.hasLoadedNamespace(e,{precheck:function(o,a){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&o.services.backendConnector.backend&&o.isLanguageChangingTo&&!a(o.isLanguageChangingTo,e))return!1}}):Jwe(e,t,n)}var t4e=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,n4e={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},r4e=function(t){return n4e[t]},i4e=function(t){return t.replace(t4e,r4e)};function FR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function BR(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{};Pk=BR(BR({},Pk),e)}function a4e(){return Pk}var OU;function s4e(e){OU=e}function l4e(){return OU}var u4e={type:"3rdParty",init:function(t){o4e(t.options.react),s4e(t)}},c4e=S.createContext(),d4e=function(){function e(){gs(this,e),this.usedNamespaces={}}return ms(e,[{key:"addUsedNamespaces",value:function(n){var r=this;n.forEach(function(i){r.usedNamespaces[i]||(r.usedNamespaces[i]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();function f4e(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function h4e(e,t){return bU(e)||f4e(e,t)||xU(e,t)||SU()}function zR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function $C(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},n=t.i18n,r=S.useContext(c4e)||{},i=r.i18n,o=r.defaultNS,a=n||i||l4e();if(a&&!a.reportNamespaces&&(a.reportNamespaces=new d4e),!a){Ek("You will need to pass in an i18next instance by using initReactI18next");var s=function(W){return Array.isArray(W)?W[W.length-1]:W},l=[s,{},!1];return l.t=s,l.i18n={},l.ready=!1,l}a.options.react&&a.options.react.wait!==void 0&&Ek("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var u=$C($C($C({},a4e()),a.options.react),t),d=u.useSuspense,h=u.keyPrefix,m=e||o||a.options&&a.options.defaultNS;m=typeof m=="string"?[m]:m||["translation"],a.reportNamespaces.addUsedNamespaces&&a.reportNamespaces.addUsedNamespaces(m);var y=(a.isInitialized||a.initializedStoreOnce)&&m.every(function(N){return e4e(N,a,u)});function b(){return a.getFixedT(null,u.nsMode==="fallback"?m:m[0],h)}var w=S.useState(b),E=h4e(w,2),_=E[0],k=E[1],T=m.join(),L=p4e(T),O=S.useRef(!0);S.useEffect(function(){var N=u.bindI18n,W=u.bindI18nStore;O.current=!0,!y&&!d&&$R(a,m,function(){O.current&&k(b)}),y&&L&&L!==T&&O.current&&k(b);function B(){O.current&&k(b)}return N&&a&&a.on(N,B),W&&a&&a.store.on(W,B),function(){O.current=!1,N&&a&&N.split(" ").forEach(function(K){return a.off(K,B)}),W&&a&&W.split(" ").forEach(function(K){return a.store.off(K,B)})}},[a,T]);var D=S.useRef(!0);S.useEffect(function(){O.current&&!D.current&&k(b),D.current=!1},[a,h]);var I=[_,a,y];if(I.t=_,I.i18n=a,I.ready=y,y||!y&&!d)return I;throw new Promise(function(N){$R(a,m,function(){N()})})}Et.use(AU).use(EU).use(u4e).init({fallbackLng:"en",debug:!1,backend:{loadPath:"/locales/{{lng}}.json"},interpolation:{escapeValue:!1},returnNull:!1});const g4e={isConnected:!1,isProcessing:!1,log:[],shouldShowLogViewer:!1,shouldDisplayInProgressType:"latents",shouldDisplayGuides:!0,isGFPGANAvailable:!0,isESRGANAvailable:!0,socketId:"",shouldConfirmOnDelete:!0,openAccordions:[0],currentStep:0,totalSteps:0,currentIteration:0,totalIterations:0,currentStatus:Et.isInitialized?Et.t("common.statusDisconnected"):"Disconnected",currentStatusHasSteps:!1,model:"",model_id:"",model_hash:"",app_id:"",app_version:"",model_list:{},infill_methods:[],hasError:!1,wasErrorSeen:!0,isCancelable:!0,saveIntermediatesInterval:5,enableImageDebugging:!1,toastQueue:[],searchFolder:null,foundModels:null,openModel:null,cancelOptions:{cancelType:"immediate",cancelAfter:null}},RU=ap({name:"system",initialState:g4e,reducers:{setShouldDisplayInProgressType:(e,t)=>{e.shouldDisplayInProgressType=t.payload},setIsProcessing:(e,t)=>{e.isProcessing=t.payload},setCurrentStatus:(e,t)=>{e.currentStatus=t.payload},setSystemStatus:(e,t)=>({...e,...t.payload}),errorOccurred:e=>{e.hasError=!0,e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Et.t("common.statusError"),e.wasErrorSeen=!1},errorSeen:e=>{e.hasError=!1,e.wasErrorSeen=!0,e.currentStatus=e.isConnected?Et.t("common.statusConnected"):Et.t("common.statusDisconnected")},addLogEntry:(e,t)=>{const{timestamp:n,message:r,level:i}=t.payload,a={timestamp:n,message:r,level:i||"info"};e.log.push(a)},setShouldShowLogViewer:(e,t)=>{e.shouldShowLogViewer=t.payload},setIsConnected:(e,t)=>{e.isConnected=t.payload,e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.hasError=!1},setSocketId:(e,t)=>{e.socketId=t.payload},setShouldConfirmOnDelete:(e,t)=>{e.shouldConfirmOnDelete=t.payload},setOpenAccordions:(e,t)=>{e.openAccordions=t.payload},setSystemConfig:(e,t)=>({...e,...t.payload}),setShouldDisplayGuides:(e,t)=>{e.shouldDisplayGuides=t.payload},processingCanceled:e=>{e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Et.t("common.statusProcessingCanceled")},generationRequested:e=>{e.isProcessing=!0,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Et.t("common.statusPreparing")},setModelList:(e,t)=>{e.model_list=t.payload},setIsCancelable:(e,t)=>{e.isCancelable=t.payload},modelChangeRequested:e=>{e.currentStatus=Et.t("common.statusLoadingModel"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},modelConvertRequested:e=>{e.currentStatus=Et.t("common.statusConvertingModel"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},modelMergingRequested:e=>{e.currentStatus=Et.t("common.statusMergingModels"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},setSaveIntermediatesInterval:(e,t)=>{e.saveIntermediatesInterval=t.payload},setEnableImageDebugging:(e,t)=>{e.enableImageDebugging=t.payload},addToast:(e,t)=>{e.toastQueue.push(t.payload)},clearToastQueue:e=>{e.toastQueue=[]},setProcessingIndeterminateTask:(e,t)=>{e.isProcessing=!0,e.currentStatus=t.payload,e.currentStatusHasSteps=!1},setSearchFolder:(e,t)=>{e.searchFolder=t.payload},setFoundModels:(e,t)=>{e.foundModels=t.payload},setOpenModel:(e,t)=>{e.openModel=t.payload},setCancelType:(e,t)=>{e.cancelOptions.cancelType=t.payload},setCancelAfter:(e,t)=>{e.cancelOptions.cancelAfter=t.payload}}}),{setShouldDisplayInProgressType:m4e,setIsProcessing:wa,addLogEntry:Pi,setShouldShowLogViewer:FC,setIsConnected:HR,setSocketId:ONe,setShouldConfirmOnDelete:IU,setOpenAccordions:v4e,setSystemStatus:y4e,setCurrentStatus:hh,setSystemConfig:b4e,setShouldDisplayGuides:x4e,processingCanceled:S4e,errorOccurred:WR,errorSeen:DU,setModelList:Ag,setIsCancelable:_d,modelChangeRequested:w4e,modelConvertRequested:C4e,modelMergingRequested:_4e,setSaveIntermediatesInterval:k4e,setEnableImageDebugging:E4e,generationRequested:P4e,addToast:$u,clearToastQueue:T4e,setProcessingIndeterminateTask:M4e,setSearchFolder:jU,setFoundModels:NU,setOpenModel:UR,setCancelType:VR,setCancelAfter:BC}=RU.actions,L4e=RU.reducer,xE=["txt2img","img2img","unifiedCanvas","nodes","postprocess","training"],A4e={activeTab:0,currentTheme:"dark",parametersPanelScrollPosition:0,shouldHoldParametersPanelOpen:!1,shouldPinParametersPanel:!0,shouldShowParametersPanel:!0,shouldShowDualDisplay:!0,shouldShowImageDetails:!1,shouldUseCanvasBetaLayout:!1,shouldShowExistingModelsInSearch:!1,shouldUseSliders:!1,addNewModelUIOption:null},O4e=A4e,$U=ap({name:"ui",initialState:O4e,reducers:{setActiveTab:(e,t)=>{typeof t.payload=="number"?e.activeTab=t.payload:e.activeTab=xE.indexOf(t.payload)},setCurrentTheme:(e,t)=>{e.currentTheme=t.payload},setParametersPanelScrollPosition:(e,t)=>{e.parametersPanelScrollPosition=t.payload},setShouldPinParametersPanel:(e,t)=>{e.shouldPinParametersPanel=t.payload},setShouldShowParametersPanel:(e,t)=>{e.shouldShowParametersPanel=t.payload},setShouldHoldParametersPanelOpen:(e,t)=>{e.shouldHoldParametersPanelOpen=t.payload},setShouldShowDualDisplay:(e,t)=>{e.shouldShowDualDisplay=t.payload},setShouldShowImageDetails:(e,t)=>{e.shouldShowImageDetails=t.payload},setShouldUseCanvasBetaLayout:(e,t)=>{e.shouldUseCanvasBetaLayout=t.payload},setShouldShowExistingModelsInSearch:(e,t)=>{e.shouldShowExistingModelsInSearch=t.payload},setShouldUseSliders:(e,t)=>{e.shouldUseSliders=t.payload},setAddNewModelUIOption:(e,t)=>{e.addNewModelUIOption=t.payload}}}),{setActiveTab:Wo,setCurrentTheme:R4e,setParametersPanelScrollPosition:I4e,setShouldHoldParametersPanelOpen:D4e,setShouldPinParametersPanel:j4e,setShouldShowParametersPanel:Fh,setShouldShowDualDisplay:N4e,setShouldShowImageDetails:FU,setShouldUseCanvasBetaLayout:$4e,setShouldShowExistingModelsInSearch:F4e,setShouldUseSliders:B4e,setAddNewModelUIOption:Bh}=$U.actions,z4e=$U.reducer,iu=Object.create(null);iu.open="0";iu.close="1";iu.ping="2";iu.pong="3";iu.message="4";iu.upgrade="5";iu.noop="6";const fS=Object.create(null);Object.keys(iu).forEach(e=>{fS[iu[e]]=e});const H4e={type:"error",data:"parser error"},W4e=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",U4e=typeof ArrayBuffer=="function",V4e=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,BU=({type:e,data:t},n,r)=>W4e&&t instanceof Blob?n?r(t):GR(t,r):U4e&&(t instanceof ArrayBuffer||V4e(t))?n?r(t):GR(new Blob([t]),r):r(iu[e]+(t||"")),GR=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)},qR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",m1=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,i=0,o,a,s,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),d=new Uint8Array(u);for(r=0;r>4,d[i++]=(a&15)<<4|s>>2,d[i++]=(s&3)<<6|l&63;return u},q4e=typeof ArrayBuffer=="function",zU=(e,t)=>{if(typeof e!="string")return{type:"message",data:HU(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:K4e(e.substring(1),t)}:fS[n]?e.length>1?{type:fS[n],data:e.substring(1)}:{type:fS[n]}:H4e},K4e=(e,t)=>{if(q4e){const n=G4e(e);return HU(n,t)}else return{base64:!0,data:e}},HU=(e,t)=>{switch(t){case"blob":return e instanceof ArrayBuffer?new Blob([e]):e;case"arraybuffer":default:return e}},WU=String.fromCharCode(30),Y4e=(e,t)=>{const n=e.length,r=new Array(n);let i=0;e.forEach((o,a)=>{BU(o,!1,s=>{r[a]=s,++i===n&&t(r.join(WU))})})},X4e=(e,t)=>{const n=e.split(WU),r=[];for(let i=0;itypeof self<"u"?self:typeof window<"u"?window:Function("return this")())();function VU(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const Q4e=Za.setTimeout,J4e=Za.clearTimeout;function s4(e,t){t.useNativeTimers?(e.setTimeoutFn=Q4e.bind(Za),e.clearTimeoutFn=J4e.bind(Za)):(e.setTimeoutFn=Za.setTimeout.bind(Za),e.clearTimeoutFn=Za.clearTimeout.bind(Za))}const e5e=1.33;function t5e(e){return typeof e=="string"?n5e(e):Math.ceil((e.byteLength||e.size)*e5e)}function n5e(e){let t=0,n=0;for(let r=0,i=e.length;r=57344?n+=3:(r++,n+=4);return n}class r5e extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class GU extends ai{constructor(t){super(),this.writable=!1,s4(this,t),this.opts=t,this.query=t.query,this.socket=t.socket}onError(t,n,r){return super.emitReserved("error",new r5e(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=zU(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}}const qU="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Tk=64,i5e={};let KR=0,rx=0,YR;function XR(e){let t="";do t=qU[e%Tk]+t,e=Math.floor(e/Tk);while(e>0);return t}function KU(){const e=XR(+new Date);return e!==YR?(KR=0,YR=e):e+"."+XR(KR++)}for(;rx{this.readyState="paused",t()};if(this.polling||!this.writable){let r=0;this.polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};X4e(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,Y4e(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let t=this.query||{};const n=this.opts.secure?"https":"http";let r="";this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=KU()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.opts.port&&(n==="https"&&Number(this.opts.port)!==443||n==="http"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port);const i=YU(t),o=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(o?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}request(t={}){return Object.assign(t,{xd:this.xd,xs:this.xs},this.opts),new eu(this.uri(),t)}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(i,o)=>{this.onError("xhr post error",i,o)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class eu extends ai{constructor(t,n){super(),s4(this,n),this.opts=n,this.method=n.method||"GET",this.uri=t,this.async=n.async!==!1,this.data=n.data!==void 0?n.data:null,this.create()}create(){const t=VU(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this.opts.xd,t.xscheme=!!this.opts.xs;const n=this.xhr=new ZU(t);try{n.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let r in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.opts.extraHeaders[r])}}catch{}if(this.method==="POST")try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{n.setRequestHeader("Accept","*/*")}catch{}"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout),n.onreadystatechange=()=>{n.readyState===4&&(n.status===200||n.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof n.status=="number"?n.status:0)},0))},n.send(this.data)}catch(r){this.setTimeoutFn(()=>{this.onError(r)},0);return}typeof document<"u"&&(this.index=eu.requestsCount++,eu.requests[this.index]=this)}onError(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}cleanup(t){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=s5e,t)try{this.xhr.abort()}catch{}typeof document<"u"&&delete eu.requests[this.index],this.xhr=null}}onLoad(){const t=this.xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}eu.requestsCount=0;eu.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",ZR);else if(typeof addEventListener=="function"){const e="onpagehide"in Za?"pagehide":"unload";addEventListener(e,ZR,!1)}}function ZR(){for(let e in eu.requests)eu.requests.hasOwnProperty(e)&&eu.requests[e].abort()}const QU=(()=>typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0))(),ix=Za.WebSocket||Za.MozWebSocket,QR=!0,c5e="arraybuffer",JR=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class d5e extends GU{constructor(t){super(t),this.supportsBinary=!t.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const t=this.uri(),n=this.opts.protocols,r=JR?{}:VU(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=QR&&!JR?n?new ix(t,n):new ix(t):new ix(t,n,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType||c5e,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{const a={};try{QR&&this.ws.send(o)}catch{}i&&QU(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){let t=this.query||{};const n=this.opts.secure?"wss":"ws";let r="";this.opts.port&&(n==="wss"&&Number(this.opts.port)!==443||n==="ws"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port),this.opts.timestampRequests&&(t[this.opts.timestampParam]=KU()),this.supportsBinary||(t.b64=1);const i=YU(t),o=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(o?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}check(){return!!ix}}const f5e={websocket:d5e,polling:u5e},h5e=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,p5e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Mk(e){const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let i=h5e.exec(e||""),o={},a=14;for(;a--;)o[p5e[a]]=i[a]||"";return n!=-1&&r!=-1&&(o.source=t,o.host=o.host.substring(1,o.host.length-1).replace(/;/g,":"),o.authority=o.authority.replace("[","").replace("]","").replace(/;/g,":"),o.ipv6uri=!0),o.pathNames=g5e(o,o.path),o.queryKey=m5e(o,o.query),o}function g5e(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function m5e(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,o){i&&(n[i]=o)}),n}let JU=class Ng extends ai{constructor(t,n={}){super(),this.writeBuffer=[],t&&typeof t=="object"&&(n=t,t=null),t?(t=Mk(t),n.hostname=t.host,n.secure=t.protocol==="https"||t.protocol==="wss",n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=Mk(n.host).host),s4(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=n.transports||["polling","websocket"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=o5e(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=UU,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts.transportOptions[t],this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new f5e[t](r)}open(){let t;if(this.opts.rememberUpgrade&&Ng.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else t=this.transports[0];this.readyState="opening";try{t=this.createTransport(t)}catch{this.transports.shift(),this.open();return}t.open(),this.setTransport(t)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",n=>this.onClose("transport close",n))}probe(t){let n=this.createTransport(t),r=!1;Ng.priorWebsocketSuccess=!1;const i=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",h=>{if(!r)if(h.type==="pong"&&h.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Ng.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(d(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const m=new Error("probe error");m.transport=n.name,this.emitReserved("upgradeError",m)}}))};function o(){r||(r=!0,d(),n.close(),n=null)}const a=h=>{const m=new Error("probe error: "+h);m.transport=n.name,o(),this.emitReserved("upgradeError",m)};function s(){a("transport closed")}function l(){a("socket closed")}function u(h){n&&h.name!==n.name&&o()}const d=()=>{n.removeListener("open",i),n.removeListener("error",a),n.removeListener("close",s),this.off("close",l),this.off("upgrading",u)};n.once("open",i),n.once("error",a),n.once("close",s),this.once("close",l),this.once("upgrading",u),n.open()}onOpen(){if(this.readyState="open",Ng.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let t=0;const n=this.upgrades.length;for(;t{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this.maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}write(t,n,r){return this.sendPacket("message",t,n,r),this}send(t,n,r){return this.sendPacket("message",t,n,r),this}sendPacket(t,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const o={type:t,data:n,options:r};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),i&&this.once("flush",i),this.flush()}close(){const t=()=>{this.onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}onError(t){Ng.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}onClose(t,n){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(t){const n=[];let r=0;const i=t.length;for(;rtypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,eV=Object.prototype.toString,x5e=typeof Blob=="function"||typeof Blob<"u"&&eV.call(Blob)==="[object BlobConstructor]",S5e=typeof File=="function"||typeof File<"u"&&eV.call(File)==="[object FileConstructor]";function SE(e){return y5e&&(e instanceof ArrayBuffer||b5e(e))||x5e&&e instanceof Blob||S5e&&e instanceof File}function hS(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.num0;case nn.ACK:case nn.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class E5e{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=C5e(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const P5e=Object.freeze(Object.defineProperty({__proto__:null,Decoder:wE,Encoder:k5e,get PacketType(){return nn},protocol:_5e},Symbol.toStringTag,{value:"Module"}));function Hs(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const T5e=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class tV extends ai{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Hs(t,"open",this.onopen.bind(this)),Hs(t,"packet",this.onpacket.bind(this)),Hs(t,"error",this.onerror.bind(this)),Hs(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){if(T5e.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const r={type:nn.EVENT,data:n};if(r.options={},r.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const a=this.ids++,s=n.pop();this._registerAckCallback(a,s),r.id=a}const i=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!i||!this.connected)||(this.connected?(this.notifyOutgoingListeners(r),this.packet(r)):this.sendBuffer.push(r)),this.flags={},this}_registerAckCallback(t,n){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[t]=n;return}const o=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a{this.io.clearTimeoutFn(o),n.apply(this,[null,...a])}}emitWithAck(t,...n){const r=this.flags.timeout!==void 0||this._opts.ackTimeout!==void 0;return new Promise((i,o)=>{n.push((a,s)=>r?a?o(a):i(s):i(a)),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this.ids++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((i,...o)=>r!==this._queue[0]?void 0:(i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...o)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(){if(this._queue.length===0)return;const t=this._queue[0];if(t.pending)return;t.pending=!0,t.tryCount++;const n=this.ids;this.ids=t.id,this.flags=t.flags,this.emit.apply(this,t.args),this.ids=n}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:nn.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n)}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case nn.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case nn.EVENT:case nn.BINARY_EVENT:this.onevent(t);break;case nn.ACK:case nn.BINARY_ACK:this.onack(t);break;case nn.DISCONNECT:this.ondisconnect();break;case nn.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...i){r||(r=!0,n.packet({type:nn.ACK,id:t,data:i}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(n.apply(this,t.data),delete this.acks[t.id])}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:nn.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}b0.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};b0.prototype.reset=function(){this.attempts=0};b0.prototype.setMin=function(e){this.ms=e};b0.prototype.setMax=function(e){this.max=e};b0.prototype.setJitter=function(e){this.jitter=e};class Ok extends ai{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,s4(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new b0({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const i=n.parser||P5e;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new JU(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=Hs(n,"open",function(){r.onopen(),t&&t()}),o=Hs(n,"error",a=>{r.cleanup(),r._readyState="closed",this.emitReserved("error",a),t?t(a):r.maybeReconnectOnOpen()});if(this._timeout!==!1){const a=this._timeout;a===0&&i();const s=this.setTimeoutFn(()=>{i(),n.close(),n.emit("error",new Error("timeout"))},a);this.opts.autoUnref&&s.unref(),this.subs.push(function(){clearTimeout(s)})}return this.subs.push(i),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Hs(t,"ping",this.onping.bind(this)),Hs(t,"data",this.ondata.bind(this)),Hs(t,"error",this.onerror.bind(this)),Hs(t,"close",this.onclose.bind(this)),Hs(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){QU(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r||(r=new tV(this,t,n),this.nsps[t]=r),this._autoConnect&&r.connect(),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t,n){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(i=>{i?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",i)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(function(){clearTimeout(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Xv={};function pS(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=v5e(e,t.path||"/socket.io"),r=n.source,i=n.id,o=n.path,a=Xv[i]&&o in Xv[i].nsps,s=t.forceNew||t["force new connection"]||t.multiplex===!1||a;let l;return s?l=new Ok(r,t):(Xv[i]||(Xv[i]=new Ok(r,t)),l=Xv[i]),n.query&&!t.query&&(t.query=n.queryKey),l.socket(n.path,t)}Object.assign(pS,{Manager:Ok,Socket:tV,io:pS,connect:pS});const M5e=["ddim","plms","k_lms","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_dpmpp_2_a","k_euler","k_euler_a","k_heun"],L5e=["ddim","plms","k_lms","dpmpp_2","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_euler","k_euler_a","k_heun"],A5e=[64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,2048],O5e=[64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,2048],R5e=[{key:"2x",value:2},{key:"4x",value:4}],CE=0,_E=4294967295,I5e=["gfpgan","codeformer"],D5e=[{key:"None",value:"none"},{key:"Fast",value:"latents"},{key:"Accurate",value:"full-res"}];var j5e=Math.PI/180;function N5e(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const Im=typeof global<"u"?global:typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{},ft={_global:Im,version:"8.4.2",isBrowser:N5e(),isUnminified:/param/.test(function(e){}.toString()),dblClickWindow:400,getAngle(e){return ft.angleDeg?e*j5e:e},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_mouseListenClick:!1,_touchListenClick:!1,_pointerListenClick:!1,_mouseInDblClickWindow:!1,_touchInDblClickWindow:!1,_pointerInDblClickWindow:!1,_mouseDblClickPointerId:null,_touchDblClickPointerId:null,_pointerDblClickPointerId:null,pixelRatio:typeof window<"u"&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return ft.DD.isDragging},isDragReady(){return!!ft.DD.node},releaseCanvasOnDestroy:!0,document:Im.document,_injectGlobal(e){Im.Konva=e}},Mr=e=>{ft[e.prototype.getClassName()]=e};ft._injectGlobal(ft);class Ca{constructor(t=[1,0,0,1,0,0]){this.dirty=!1,this.m=t&&t.slice()||[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new Ca(this.m)}copyInto(t){t.m[0]=this.m[0],t.m[1]=this.m[1],t.m[2]=this.m[2],t.m[3]=this.m[3],t.m[4]=this.m[4],t.m[5]=this.m[5]}point(t){var n=this.m;return{x:n[0]*t.x+n[2]*t.y+n[4],y:n[1]*t.x+n[3]*t.y+n[5]}}translate(t,n){return this.m[4]+=this.m[0]*t+this.m[2]*n,this.m[5]+=this.m[1]*t+this.m[3]*n,this}scale(t,n){return this.m[0]*=t,this.m[1]*=t,this.m[2]*=n,this.m[3]*=n,this}rotate(t){var n=Math.cos(t),r=Math.sin(t),i=this.m[0]*n+this.m[2]*r,o=this.m[1]*n+this.m[3]*r,a=this.m[0]*-r+this.m[2]*n,s=this.m[1]*-r+this.m[3]*n;return this.m[0]=i,this.m[1]=o,this.m[2]=a,this.m[3]=s,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(t,n){var r=this.m[0]+this.m[2]*n,i=this.m[1]+this.m[3]*n,o=this.m[2]+this.m[0]*t,a=this.m[3]+this.m[1]*t;return this.m[0]=r,this.m[1]=i,this.m[2]=o,this.m[3]=a,this}multiply(t){var n=this.m[0]*t.m[0]+this.m[2]*t.m[1],r=this.m[1]*t.m[0]+this.m[3]*t.m[1],i=this.m[0]*t.m[2]+this.m[2]*t.m[3],o=this.m[1]*t.m[2]+this.m[3]*t.m[3],a=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],s=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=o,this.m[4]=a,this.m[5]=s,this}invert(){var t=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),n=this.m[3]*t,r=-this.m[1]*t,i=-this.m[2]*t,o=this.m[0]*t,a=t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),s=t*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=o,this.m[4]=a,this.m[5]=s,this}getMatrix(){return this.m}decompose(){var t=this.m[0],n=this.m[1],r=this.m[2],i=this.m[3],o=this.m[4],a=this.m[5],s=t*i-n*r;let l={x:o,y:a,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(t!=0||n!=0){var u=Math.sqrt(t*t+n*n);l.rotation=n>0?Math.acos(t/u):-Math.acos(t/u),l.scaleX=u,l.scaleY=s/u,l.skewX=(t*r+n*i)/s,l.skewY=0}else if(r!=0||i!=0){var d=Math.sqrt(r*r+i*i);l.rotation=Math.PI/2-(i>0?Math.acos(-r/d):-Math.acos(r/d)),l.scaleX=s/d,l.scaleY=d,l.skewX=0,l.skewY=(t*r+n*i)/s}return l.rotation=de._getRotation(l.rotation),l}}var $5e="[object Array]",F5e="[object Number]",B5e="[object String]",z5e="[object Boolean]",H5e=Math.PI/180,W5e=180/Math.PI,zC="#",U5e="",V5e="0",G5e="Konva warning: ",eI="Konva error: ",q5e="rgb(",HC={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,132,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,255,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,203],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[119,128,144],slategrey:[119,128,144],snow:[255,255,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[255,255,255,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,5]},K5e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/,ox=[];const Y5e=typeof requestAnimationFrame<"u"&&requestAnimationFrame||function(e){setTimeout(e,60)},de={_isElement(e){return!!(e&&e.nodeType==1)},_isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},_isPlainObject(e){return!!e&&e.constructor===Object},_isArray(e){return Object.prototype.toString.call(e)===$5e},_isNumber(e){return Object.prototype.toString.call(e)===F5e&&!isNaN(e)&&isFinite(e)},_isString(e){return Object.prototype.toString.call(e)===B5e},_isBoolean(e){return Object.prototype.toString.call(e)===z5e},isObject(e){return e instanceof Object},isValidSelector(e){if(typeof e!="string")return!1;var t=e[0];return t==="#"||t==="."||t===t.toUpperCase()},_sign(e){return e===0||e>0?1:-1},requestAnimFrame(e){ox.push(e),ox.length===1&&Y5e(function(){const t=ox;ox=[],t.forEach(function(n){n()})})},createCanvasElement(){var e=document.createElement("canvas");try{e.style=e.style||{}}catch{}return e},createImageElement(){return document.createElement("img")},_isInDocument(e){for(;e=e.parentNode;)if(e==document)return!0;return!1},_urlToImage(e,t){var n=de.createImageElement();n.onload=function(){t(n)},n.src=e},_rgbToHex(e,t,n){return((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)},_hexToRgb(e){e=e.replace(zC,U5e);var t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){for(var e=(Math.random()*16777215<<0).toString(16);e.length<6;)e=V5e+e;return zC+e},getRGB(e){var t;return e in HC?(t=HC[e],{r:t[0],g:t[1],b:t[2]}):e[0]===zC?this._hexToRgb(e.substring(1)):e.substr(0,4)===q5e?(t=K5e.exec(e.replace(/ /g,"")),{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)}):{r:0,g:0,b:0}},colorToRGBA(e){return e=e||"black",de._namedColorToRBA(e)||de._hex3ColorToRGBA(e)||de._hex4ColorToRGBA(e)||de._hex6ColorToRGBA(e)||de._hex8ColorToRGBA(e)||de._rgbColorToRGBA(e)||de._rgbaColorToRGBA(e)||de._hslColorToRGBA(e)},_namedColorToRBA(e){var t=HC[e.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:1}:null},_rgbColorToRGBA(e){if(e.indexOf("rgb(")===0){e=e.match(/rgb\(([^)]+)\)/)[1];var t=e.split(/ *, */).map(Number);return{r:t[0],g:t[1],b:t[2],a:1}}},_rgbaColorToRGBA(e){if(e.indexOf("rgba(")===0){e=e.match(/rgba\(([^)]+)\)/)[1];var t=e.split(/ *, */).map((n,r)=>n.slice(-1)==="%"?r===3?parseInt(n)/100:parseInt(n)/100*255:Number(n));return{r:t[0],g:t[1],b:t[2],a:t[3]}}},_hex8ColorToRGBA(e){if(e[0]==="#"&&e.length===9)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:parseInt(e.slice(7,9),16)/255}},_hex6ColorToRGBA(e){if(e[0]==="#"&&e.length===7)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:1}},_hex4ColorToRGBA(e){if(e[0]==="#"&&e.length===5)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:parseInt(e[4]+e[4],16)/255}},_hex3ColorToRGBA(e){if(e[0]==="#"&&e.length===4)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:1}},_hslColorToRGBA(e){if(/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(e)){const[t,...n]=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(e),r=Number(n[0])/360,i=Number(n[1])/100,o=Number(n[2])/100;let a,s,l;if(i===0)return l=o*255,{r:Math.round(l),g:Math.round(l),b:Math.round(l),a:1};o<.5?a=o*(1+i):a=o+i-o*i;const u=2*o-a,d=[0,0,0];for(let h=0;h<3;h++)s=r+1/3*-(h-1),s<0&&s++,s>1&&s--,6*s<1?l=u+(a-u)*6*s:2*s<1?l=a:3*s<2?l=u+(a-u)*(2/3-s)*6:l=u,d[h]=l*255;return{r:Math.round(d[0]),g:Math.round(d[1]),b:Math.round(d[2]),a:1}}},haveIntersection(e,t){return!(t.x>e.x+e.width||t.x+t.widthe.y+e.height||t.y+t.height1?(a=n,s=r,l=(n-i)*(n-i)+(r-o)*(r-o)):(a=e+d*(n-e),s=t+d*(r-t),l=(a-i)*(a-i)+(s-o)*(s-o))}return[a,s,l]},_getProjectionToLine(e,t,n){var r=de.cloneObject(e),i=Number.MAX_VALUE;return t.forEach(function(o,a){if(!(!n&&a===t.length-1)){var s=t[(a+1)%t.length],l=de._getProjectionToSegment(o.x,o.y,s.x,s.y,e.x,e.y),u=l[0],d=l[1],h=l[2];ht.length){var a=t;t=e,e=a}for(r=0;r{t.width=0,t.height=0})},drawRoundedRectPath(e,t,n,r){let i=0,o=0,a=0,s=0;typeof r=="number"?i=o=a=s=Math.min(r,t/2,n/2):(i=Math.min(r[0]||0,t/2,n/2),o=Math.min(r[1]||0,t/2,n/2),s=Math.min(r[2]||0,t/2,n/2),a=Math.min(r[3]||0,t/2,n/2)),e.moveTo(i,0),e.lineTo(t-o,0),e.arc(t-o,o,o,Math.PI*3/2,0,!1),e.lineTo(t,n-s),e.arc(t-s,n-s,s,0,Math.PI/2,!1),e.lineTo(a,n),e.arc(a,n-a,a,Math.PI/2,Math.PI,!1),e.lineTo(0,i),e.arc(i,i,i,Math.PI,Math.PI*3/2,!1)}};function uf(e){return de._isString(e)?'"'+e+'"':Object.prototype.toString.call(e)==="[object Number]"||de._isBoolean(e)?e:Object.prototype.toString.call(e)}function nV(e){return e>255?255:e<0?0:Math.round(e)}function Ve(){if(ft.isUnminified)return function(e,t){return de._isNumber(e)||de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a number.'),e}}function kE(e){if(ft.isUnminified)return function(t,n){let r=de._isNumber(t),i=de._isArray(t)&&t.length==e;return!r&&!i&&de.warn(uf(t)+' is a not valid value for "'+n+'" attribute. The value should be a number or Array('+e+")"),t}}function EE(){if(ft.isUnminified)return function(e,t){var n=de._isNumber(e),r=e==="auto";return n||r||de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a number or "auto".'),e}}function x0(){if(ft.isUnminified)return function(e,t){return de._isString(e)||de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a string.'),e}}function rV(){if(ft.isUnminified)return function(e,t){const n=de._isString(e),r=Object.prototype.toString.call(e)==="[object CanvasGradient]"||e&&e.addColorStop;return n||r||de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a string or a native gradient.'),e}}function X5e(){if(ft.isUnminified)return function(e,t){const n=Int8Array?Object.getPrototypeOf(Int8Array):null;return n&&e instanceof n||(de._isArray(e)?e.forEach(function(r){de._isNumber(r)||de.warn('"'+t+'" attribute has non numeric element '+r+". Make sure that all elements are numbers.")}):de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a array of numbers.')),e}}function el(){if(ft.isUnminified)return function(e,t){var n=e===!0||e===!1;return n||de.warn(uf(e)+' is a not valid value for "'+t+'" attribute. The value should be a boolean.'),e}}function Z5e(e){if(ft.isUnminified)return function(t,n){return t==null||de.isObject(t)||de.warn(uf(t)+' is a not valid value for "'+n+'" attribute. The value should be an object with properties '+e),t}}var Zv="get",Qv="set";const J={addGetterSetter(e,t,n,r,i){J.addGetter(e,t,n),J.addSetter(e,t,r,i),J.addOverloadedGetterSetter(e,t)},addGetter(e,t,n){var r=Zv+de._capitalize(t);e.prototype[r]=e.prototype[r]||function(){var i=this.attrs[t];return i===void 0?n:i}},addSetter(e,t,n,r){var i=Qv+de._capitalize(t);e.prototype[i]||J.overWriteSetter(e,t,n,r)},overWriteSetter(e,t,n,r){var i=Qv+de._capitalize(t);e.prototype[i]=function(o){return n&&o!==void 0&&o!==null&&(o=n.call(this,o,t)),this._setAttr(t,o),r&&r.call(this),this}},addComponentsGetterSetter(e,t,n,r,i){var o=n.length,a=de._capitalize,s=Zv+a(t),l=Qv+a(t),u,d;e.prototype[s]=function(){var m={};for(u=0;u{this._setAttr(t+a(w),void 0)}),this._fireChangeEvent(t,y,m),i&&i.call(this),this},J.addOverloadedGetterSetter(e,t)},addOverloadedGetterSetter(e,t){var n=de._capitalize(t),r=Qv+n,i=Zv+n;e.prototype[t]=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()}},addDeprecatedGetterSetter(e,t,n,r){de.error("Adding deprecated "+t);var i=Zv+de._capitalize(t),o=t+" property is deprecated and will be removed soon. Look at Konva change log for more information.";e.prototype[i]=function(){de.error(o);var a=this.attrs[t];return a===void 0?n:a},J.addSetter(e,t,r,function(){de.error(o)}),J.addOverloadedGetterSetter(e,t)},backCompat(e,t){de.each(t,function(n,r){var i=e.prototype[r],o=Zv+de._capitalize(n),a=Qv+de._capitalize(n);function s(){i.apply(this,arguments),de.error('"'+n+'" method is deprecated and will be removed soon. Use ""'+r+'" instead.')}e.prototype[n]=s,e.prototype[o]=s,e.prototype[a]=s})},afterSetFilter(){this._filterUpToDate=!1}};function Q5e(e){var t=[],n=e.length,r=de,i,o;for(i=0;itypeof d=="number"?Math.floor(d):d)),o+=J5e+u.join(tI)+eCe)):(o+=s.property,t||(o+=oCe+s.val)),o+=rCe;return o}clearTrace(){this.traceArr=[]}_trace(t){var n=this.traceArr,r;n.push(t),r=n.length,r>=sCe&&n.shift()}reset(){var t=this.getCanvas().getPixelRatio();this.setTransform(1*t,0,0,1*t,0,0)}getCanvas(){return this.canvas}clear(t){var n=this.getCanvas();t?this.clearRect(t.x||0,t.y||0,t.width||0,t.height||0):this.clearRect(0,0,n.getWidth()/n.pixelRatio,n.getHeight()/n.pixelRatio)}_applyLineCap(t){var n=t.getLineCap();n&&this.setAttr("lineCap",n)}_applyOpacity(t){var n=t.getAbsoluteOpacity();n!==1&&this.setAttr("globalAlpha",n)}_applyLineJoin(t){var n=t.attrs.lineJoin;n&&this.setAttr("lineJoin",n)}setAttr(t,n){this._context[t]=n}arc(t,n,r,i,o,a){this._context.arc(t,n,r,i,o,a)}arcTo(t,n,r,i,o){this._context.arcTo(t,n,r,i,o)}beginPath(){this._context.beginPath()}bezierCurveTo(t,n,r,i,o,a){this._context.bezierCurveTo(t,n,r,i,o,a)}clearRect(t,n,r,i){this._context.clearRect(t,n,r,i)}clip(){this._context.clip()}closePath(){this._context.closePath()}createImageData(t,n){var r=arguments;if(r.length===2)return this._context.createImageData(t,n);if(r.length===1)return this._context.createImageData(t)}createLinearGradient(t,n,r,i){return this._context.createLinearGradient(t,n,r,i)}createPattern(t,n){return this._context.createPattern(t,n)}createRadialGradient(t,n,r,i,o,a){return this._context.createRadialGradient(t,n,r,i,o,a)}drawImage(t,n,r,i,o,a,s,l,u){var d=arguments,h=this._context;d.length===3?h.drawImage(t,n,r):d.length===5?h.drawImage(t,n,r,i,o):d.length===9&&h.drawImage(t,n,r,i,o,a,s,l,u)}ellipse(t,n,r,i,o,a,s,l){this._context.ellipse(t,n,r,i,o,a,s,l)}isPointInPath(t,n,r,i){return r?this._context.isPointInPath(r,t,n,i):this._context.isPointInPath(t,n,i)}fill(t){t?this._context.fill(t):this._context.fill()}fillRect(t,n,r,i){this._context.fillRect(t,n,r,i)}strokeRect(t,n,r,i){this._context.strokeRect(t,n,r,i)}fillText(t,n,r,i){i?this._context.fillText(t,n,r,i):this._context.fillText(t,n,r)}measureText(t){return this._context.measureText(t)}getImageData(t,n,r,i){return this._context.getImageData(t,n,r,i)}lineTo(t,n){this._context.lineTo(t,n)}moveTo(t,n){this._context.moveTo(t,n)}rect(t,n,r,i){this._context.rect(t,n,r,i)}putImageData(t,n,r){this._context.putImageData(t,n,r)}quadraticCurveTo(t,n,r,i){this._context.quadraticCurveTo(t,n,r,i)}restore(){this._context.restore()}rotate(t){this._context.rotate(t)}save(){this._context.save()}scale(t,n){this._context.scale(t,n)}setLineDash(t){this._context.setLineDash?this._context.setLineDash(t):"mozDash"in this._context?this._context.mozDash=t:"webkitLineDash"in this._context&&(this._context.webkitLineDash=t)}getLineDash(){return this._context.getLineDash()}setTransform(t,n,r,i,o,a){this._context.setTransform(t,n,r,i,o,a)}stroke(t){t?this._context.stroke(t):this._context.stroke()}strokeText(t,n,r,i){this._context.strokeText(t,n,r,i)}transform(t,n,r,i,o,a){this._context.transform(t,n,r,i,o,a)}translate(t,n){this._context.translate(t,n)}_enableTrace(){var t=this,n=nI.length,r=this.setAttr,i,o,a=function(s){var l=t[s],u;t[s]=function(){return o=Q5e(Array.prototype.slice.call(arguments,0)),u=l.apply(t,arguments),t._trace({method:s,args:o}),u}};for(i=0;i{t.dragStatus==="dragging"&&(e=!0)}),e},justDragged:!1,get node(){var e;return fn._dragElements.forEach(t=>{e=t.node}),e},_dragElements:new Map,_drag(e){const t=[];fn._dragElements.forEach((n,r)=>{const{node:i}=n,o=i.getStage();o.setPointersPositions(e),n.pointerId===void 0&&(n.pointerId=de._getFirstPointerId(e));const a=o._changedPointerPositions.find(u=>u.id===n.pointerId);if(a){if(n.dragStatus!=="dragging"){var s=i.dragDistance(),l=Math.max(Math.abs(a.x-n.startPointerPos.x),Math.abs(a.y-n.startPointerPos.y));if(l{n.fire("dragmove",{type:"dragmove",target:n,evt:e},!0)})},_endDragBefore(e){const t=[];fn._dragElements.forEach(n=>{const{node:r}=n,i=r.getStage();if(e&&i.setPointersPositions(e),!i._changedPointerPositions.find(s=>s.id===n.pointerId))return;(n.dragStatus==="dragging"||n.dragStatus==="stopped")&&(fn.justDragged=!0,ft._mouseListenClick=!1,ft._touchListenClick=!1,ft._pointerListenClick=!1,n.dragStatus="stopped");const a=n.node.getLayer()||n.node instanceof ft.Stage&&n.node;a&&t.indexOf(a)===-1&&t.push(a)}),t.forEach(n=>{n.draw()})},_endDragAfter(e){fn._dragElements.forEach((t,n)=>{t.dragStatus==="stopped"&&t.node.fire("dragend",{type:"dragend",target:t.node,evt:e},!0),t.dragStatus!=="dragging"&&fn._dragElements.delete(n)})}};ft.isBrowser&&(window.addEventListener("mouseup",fn._endDragBefore,!0),window.addEventListener("touchend",fn._endDragBefore,!0),window.addEventListener("mousemove",fn._drag),window.addEventListener("touchmove",fn._drag),window.addEventListener("mouseup",fn._endDragAfter,!1),window.addEventListener("touchend",fn._endDragAfter,!1));var gS="absoluteOpacity",sx="allEventListeners",Iu="absoluteTransform",rI="absoluteScale",oh="canvas",dCe="Change",fCe="children",hCe="konva",Rk="listening",iI="mouseenter",oI="mouseleave",aI="set",sI="Shape",mS=" ",lI="stage",fd="transform",pCe="Stage",Ik="visible",gCe=["xChange.konva","yChange.konva","scaleXChange.konva","scaleYChange.konva","skewXChange.konva","skewYChange.konva","rotationChange.konva","offsetXChange.konva","offsetYChange.konva","transformsEnabledChange.konva"].join(mS);let mCe=1,Ge=class Dk{constructor(t){this._id=mCe++,this.eventListeners={},this.attrs={},this.index=0,this._allEventListeners=null,this.parent=null,this._cache=new Map,this._attachedDepsListeners=new Map,this._lastPos=null,this._batchingTransformChange=!1,this._needClearTransformCache=!1,this._filterUpToDate=!1,this._isUnderCache=!1,this._dragEventId=null,this._shouldFireChangeEvents=!1,this.setAttrs(t),this._shouldFireChangeEvents=!0}hasChildren(){return!1}_clearCache(t){(t===fd||t===Iu)&&this._cache.get(t)?this._cache.get(t).dirty=!0:t?this._cache.delete(t):this._cache.clear()}_getCache(t,n){var r=this._cache.get(t),i=t===fd||t===Iu,o=r===void 0||i&&r.dirty===!0;return o&&(r=n.call(this),this._cache.set(t,r)),r}_calculate(t,n,r){if(!this._attachedDepsListeners.get(t)){const i=n.map(o=>o+"Change.konva").join(mS);this.on(i,()=>{this._clearCache(t)}),this._attachedDepsListeners.set(t,!0)}return this._getCache(t,r)}_getCanvasCache(){return this._cache.get(oh)}_clearSelfAndDescendantCache(t){this._clearCache(t),t===Iu&&this.fire("absoluteTransformChange")}clearCache(){if(this._cache.has(oh)){const{scene:t,filter:n,hit:r}=this._cache.get(oh);de.releaseCanvas(t,n,r),this._cache.delete(oh)}return this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(t){var n=t||{},r={};(n.x===void 0||n.y===void 0||n.width===void 0||n.height===void 0)&&(r=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()}));var i=Math.ceil(n.width||r.width),o=Math.ceil(n.height||r.height),a=n.pixelRatio,s=n.x===void 0?Math.floor(r.x):n.x,l=n.y===void 0?Math.floor(r.y):n.y,u=n.offset||0,d=n.drawBorder||!1,h=n.hitCanvasPixelRatio||1;if(!i||!o){de.error("Can not cache the node. Width or height of the node equals 0. Caching is skipped.");return}i+=u*2+1,o+=u*2+1,s-=u,l-=u;var m=new Dm({pixelRatio:a,width:i,height:o}),y=new Dm({pixelRatio:a,width:0,height:0}),b=new PE({pixelRatio:h,width:i,height:o}),w=m.getContext(),E=b.getContext();return b.isCache=!0,m.isCache=!0,this._cache.delete(oh),this._filterUpToDate=!1,n.imageSmoothingEnabled===!1&&(m.getContext()._context.imageSmoothingEnabled=!1,y.getContext()._context.imageSmoothingEnabled=!1),w.save(),E.save(),w.translate(-s,-l),E.translate(-s,-l),this._isUnderCache=!0,this._clearSelfAndDescendantCache(gS),this._clearSelfAndDescendantCache(rI),this.drawScene(m,this),this.drawHit(b,this),this._isUnderCache=!1,w.restore(),E.restore(),d&&(w.save(),w.beginPath(),w.rect(0,0,i,o),w.closePath(),w.setAttr("strokeStyle","red"),w.setAttr("lineWidth",5),w.stroke(),w.restore()),this._cache.set(oh,{scene:m,filter:y,hit:b,x:s,y:l}),this._requestDraw(),this}isCached(){return this._cache.has(oh)}getClientRect(t){throw new Error('abstract "getClientRect" method call')}_transformedRect(t,n){var r=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}],i,o,a,s,l=this.getAbsoluteTransform(n);return r.forEach(function(u){var d=l.point(u);i===void 0&&(i=a=d.x,o=s=d.y),i=Math.min(i,d.x),o=Math.min(o,d.y),a=Math.max(a,d.x),s=Math.max(s,d.y)}),{x:i,y:o,width:a-i,height:s-o}}_drawCachedSceneCanvas(t){t.save(),t._applyOpacity(this),t._applyGlobalCompositeOperation(this);const n=this._getCanvasCache();t.translate(n.x,n.y);var r=this._getCachedSceneCanvas(),i=r.pixelRatio;t.drawImage(r._canvas,0,0,r.width/i,r.height/i),t.restore()}_drawCachedHitCanvas(t){var n=this._getCanvasCache(),r=n.hit;t.save(),t.translate(n.x,n.y),t.drawImage(r._canvas,0,0,r.width/r.pixelRatio,r.height/r.pixelRatio),t.restore()}_getCachedSceneCanvas(){var t=this.filters(),n=this._getCanvasCache(),r=n.scene,i=n.filter,o=i.getContext(),a,s,l,u;if(t){if(!this._filterUpToDate){var d=r.pixelRatio;i.setSize(r.width/r.pixelRatio,r.height/r.pixelRatio);try{for(a=t.length,o.clear(),o.drawImage(r._canvas,0,0,r.getWidth()/d,r.getHeight()/d),s=o.getImageData(0,0,i.getWidth(),i.getHeight()),l=0;l{var n,r;if(!t)return this;for(n in t)n!==fCe&&(r=aI+de._capitalize(n),de._isFunction(this[r])?this[r](t[n]):this._setAttr(n,t[n]))}),this}isListening(){return this._getCache(Rk,this._isListening)}_isListening(t){if(!this.listening())return!1;const r=this.getParent();return r&&r!==t&&this!==t?r._isListening(t):!0}isVisible(){return this._getCache(Ik,this._isVisible)}_isVisible(t){if(!this.visible())return!1;const r=this.getParent();return r&&r!==t&&this!==t?r._isVisible(t):!0}shouldDrawHit(t,n=!1){if(t)return this._isVisible(t)&&this._isListening(t);var r=this.getLayer(),i=!1;fn._dragElements.forEach(a=>{a.dragStatus==="dragging"&&(a.node.nodeType==="Stage"||a.node.getLayer()===r)&&(i=!0)});var o=!n&&!ft.hitOnDragEnabled&&i;return this.isListening()&&this.isVisible()&&!o}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){var t=this.getDepth(),n=this,r=0,i,o,a,s;function l(u){for(i=[],o=u.length,a=0;a0&&i[0].getDepth()<=t&&l(i)}return n.nodeType!==pCe&&l(n.getStage().getChildren()),r}getDepth(){for(var t=0,n=this.parent;n;)t++,n=n.parent;return t}_batchTransformChanges(t){this._batchingTransformChange=!0,t(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(fd),this._clearSelfAndDescendantCache(Iu)),this._needClearTransformCache=!1}setPosition(t){return this._batchTransformChanges(()=>{this.x(t.x),this.y(t.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){if(!this.getStage())return null;var t=this.getStage().getPointerPosition();if(!t)return null;var n=this.getAbsoluteTransform().copy();return n.invert(),n.point(t)}getAbsolutePosition(t){let n=!1,r=this.parent;for(;r;){if(r.isCached()){n=!0;break}r=r.parent}n&&!t&&(t=!0);var i=this.getAbsoluteTransform(t).getMatrix(),o=new Ca,a=this.offset();return o.m=i.slice(),o.translate(a.x,a.y),o.getTranslation()}setAbsolutePosition(t){var n=this._clearTransform();this.attrs.x=n.x,this.attrs.y=n.y,delete n.x,delete n.y,this._clearCache(fd);var r=this._getAbsoluteTransform().copy();return r.invert(),r.translate(t.x,t.y),t={x:this.attrs.x+r.getTranslation().x,y:this.attrs.y+r.getTranslation().y},this._setTransform(n),this.setPosition({x:t.x,y:t.y}),this._clearCache(fd),this._clearSelfAndDescendantCache(Iu),this}_setTransform(t){var n;for(n in t)this.attrs[n]=t[n]}_clearTransform(){var t={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,t}move(t){var n=t.x,r=t.y,i=this.x(),o=this.y();return n!==void 0&&(i+=n),r!==void 0&&(o+=r),this.setPosition({x:i,y:o}),this}_eachAncestorReverse(t,n){var r=[],i=this.getParent(),o,a;if(!(n&&n._id===this._id)){for(r.unshift(this);i&&(!n||i._id!==n._id);)r.unshift(i),i=i.parent;for(o=r.length,a=0;a0?(this.parent.children.splice(t,1),this.parent.children.splice(t-1,0,this),this.parent._setChildrenIndices(),!0):!1}moveToBottom(){if(!this.parent)return de.warn("Node has no parent. moveToBottom function is ignored."),!1;var t=this.index;return t>0?(this.parent.children.splice(t,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1}setZIndex(t){if(!this.parent)return de.warn("Node has no parent. zIndex parameter is ignored."),this;(t<0||t>=this.parent.children.length)&&de.warn("Unexpected value "+t+" for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to "+(this.parent.children.length-1)+".");var n=this.index;return this.parent.children.splice(n,1),this.parent.children.splice(t,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(gS,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){var t=this.opacity(),n=this.getParent();return n&&!n._isUnderCache&&(t*=n.getAbsoluteOpacity()),t}moveTo(t){return this.getParent()!==t&&(this._remove(),t.add(this)),this}toObject(){var t={},n=this.getAttrs(),r,i,o,a,s;t.attrs={};for(r in n)i=n[r],s=de.isObject(i)&&!de._isPlainObject(i)&&!de._isArray(i),!s&&(o=typeof this[r]=="function"&&this[r],delete n[r],a=o?o.call(this):null,n[r]=i,a!==i&&(t.attrs[r]=i));return t.className=this.getClassName(),de._prepareToStringify(t)}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(t,n,r){var i=[];n&&this._isMatch(t)&&i.push(this);for(var o=this.parent;o;){if(o===r)return i;o._isMatch(t)&&i.push(o),o=o.parent}return i}isAncestorOf(t){return!1}findAncestor(t,n,r){return this.findAncestors(t,n,r)[0]}_isMatch(t){if(!t)return!1;if(typeof t=="function")return t(this);var n=t.replace(/ /g,"").split(","),r=n.length,i,o;for(i=0;i{try{const i=t==null?void 0:t.callback;i&&delete t.callback,de._urlToImage(this.toDataURL(t),function(o){n(o),i==null||i(o)})}catch(i){r(i)}})}toBlob(t){return new Promise((n,r)=>{try{const i=t==null?void 0:t.callback;i&&delete t.callback,this.toCanvas(t).toBlob(o=>{n(o),i==null||i(o)})}catch(i){r(i)}})}setSize(t){return this.width(t.width),this.height(t.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance!==void 0?this.attrs.dragDistance:this.parent?this.parent.getDragDistance():ft.dragDistance}_off(t,n,r){var i=this.eventListeners[t],o,a,s;for(o=0;o=0;if(r&&!this.isDragging()){var i=!1;fn._dragElements.forEach(o=>{this.isAncestorOf(o.node)&&(i=!0)}),i||this._createDragElement(t)}})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{this._dragCleanup();var t=this.getStage();if(!t)return;const n=fn._dragElements.get(this._id),r=n&&n.dragStatus==="dragging",i=n&&n.dragStatus==="ready";r?this.stopDrag():i&&fn._dragElements.delete(this._id)}}_dragCleanup(){this.off("mousedown.konva"),this.off("touchstart.konva")}isClientRectOnScreen(t={x:0,y:0}){const n=this.getStage();if(!n)return!1;const r={x:-t.x,y:-t.y,width:n.width()+2*t.x,height:n.height()+2*t.y};return de.haveIntersection(r,this.getClientRect())}static create(t,n){return de._isString(t)&&(t=JSON.parse(t)),this._createNode(t,n)}static _createNode(t,n){var r=Dk.prototype.getClassName.call(t),i=t.children,o,a,s;n&&(t.attrs.container=n),ft[r]||(de.warn('Can not find a node with class name "'+r+'". Fallback to "Shape".'),r="Shape");const l=ft[r];if(o=new l(t.attrs),i)for(a=i.length,s=0;s0}removeChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.remove()}),this.children=[],this._requestDraw(),this}destroyChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.destroy()}),this.children=[],this._requestDraw(),this}add(...t){if(t.length===0)return this;if(t.length>1){for(var n=0;n0?n[0]:void 0}_generalFind(t,n){var r=[];return this._descendants(i=>{const o=i._isMatch(t);return o&&r.push(i),!!(o&&n)}),r}_descendants(t){let n=!1;const r=this.getChildren();for(const i of r){if(n=t(i),n)return!0;if(i.hasChildren()&&(n=i._descendants(t),n))return!0}return!1}toObject(){var t=Ge.prototype.toObject.call(this);return t.children=[],this.getChildren().forEach(n=>{t.children.push(n.toObject())}),t}isAncestorOf(t){for(var n=t.getParent();n;){if(n._id===this._id)return!0;n=n.getParent()}return!1}clone(t){var n=Ge.prototype.clone.call(this,t);return this.getChildren().forEach(function(r){n.add(r.clone())}),n}getAllIntersections(t){var n=[];return this.find("Shape").forEach(function(r){r.isVisible()&&r.intersects(t)&&n.push(r)}),n}_clearSelfAndDescendantCache(t){var n;super._clearSelfAndDescendantCache(t),!this.isCached()&&((n=this.children)===null||n===void 0||n.forEach(function(r){r._clearSelfAndDescendantCache(t)}))}_setChildrenIndices(){var t;(t=this.children)===null||t===void 0||t.forEach(function(n,r){n.index=r}),this._requestDraw()}drawScene(t,n){var r=this.getLayer(),i=t||r&&r.getCanvas(),o=i&&i.getContext(),a=this._getCanvasCache(),s=a&&a.scene,l=i&&i.isCache;if(!this.isVisible()&&!l)return this;if(s){o.save();var u=this.getAbsoluteTransform(n).getMatrix();o.transform(u[0],u[1],u[2],u[3],u[4],u[5]),this._drawCachedSceneCanvas(o),o.restore()}else this._drawChildren("drawScene",i,n);return this}drawHit(t,n){if(!this.shouldDrawHit(n))return this;var r=this.getLayer(),i=t||r&&r.hitCanvas,o=i&&i.getContext(),a=this._getCanvasCache(),s=a&&a.hit;if(s){o.save();var l=this.getAbsoluteTransform(n).getMatrix();o.transform(l[0],l[1],l[2],l[3],l[4],l[5]),this._drawCachedHitCanvas(o),o.restore()}else this._drawChildren("drawHit",i,n);return this}_drawChildren(t,n,r){var i,o=n&&n.getContext(),a=this.clipWidth(),s=this.clipHeight(),l=this.clipFunc(),u=a&&s||l;const d=r===this;if(u){o.save();var h=this.getAbsoluteTransform(r),m=h.getMatrix();if(o.transform(m[0],m[1],m[2],m[3],m[4],m[5]),o.beginPath(),l)l.call(this,o,this);else{var y=this.clipX(),b=this.clipY();o.rect(y,b,a,s)}o.clip(),m=h.copy().invert().getMatrix(),o.transform(m[0],m[1],m[2],m[3],m[4],m[5])}var w=!d&&this.globalCompositeOperation()!=="source-over"&&t==="drawScene";w&&(o.save(),o._applyGlobalCompositeOperation(this)),(i=this.children)===null||i===void 0||i.forEach(function(E){E[t](n,r)}),w&&o.restore(),u&&o.restore()}getClientRect(t){var n;t=t||{};var r=t.skipTransform,i=t.relativeTo,o,a,s,l,u={x:1/0,y:1/0,width:0,height:0},d=this;(n=this.children)===null||n===void 0||n.forEach(function(w){if(w.visible()){var E=w.getClientRect({relativeTo:d,skipShadow:t.skipShadow,skipStroke:t.skipStroke});E.width===0&&E.height===0||(o===void 0?(o=E.x,a=E.y,s=E.x+E.width,l=E.y+E.height):(o=Math.min(o,E.x),a=Math.min(a,E.y),s=Math.max(s,E.x+E.width),l=Math.max(l,E.y+E.height)))}});for(var h=this.find("Shape"),m=!1,y=0;ye.indexOf("pointer")>=0?"pointer":e.indexOf("touch")>=0?"touch":"mouse",Og=e=>{const t=x1(e);if(t==="pointer")return ft.pointerEventsEnabled&&UC.pointer;if(t==="touch")return UC.touch;if(t==="mouse")return UC.mouse};function cI(e={}){return(e.clipFunc||e.clipWidth||e.clipHeight)&&de.warn("Stage does not support clipping. Please use clip for Layers or Groups."),e}const CCe="Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);",vS=[];let c4=class extends Ma{constructor(t){super(cI(t)),this._pointerPositions=[],this._changedPointerPositions=[],this._buildDOM(),this._bindContentEvents(),vS.push(this),this.on("widthChange.konva heightChange.konva",this._resizeDOM),this.on("visibleChange.konva",this._checkVisibility),this.on("clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva",()=>{cI(this.attrs)}),this._checkVisibility()}_validateAdd(t){const n=t.getType()==="Layer",r=t.getType()==="FastLayer";n||r||de.throw("You may only add layers to the stage.")}_checkVisibility(){if(!this.content)return;const t=this.visible()?"":"none";this.content.style.display=t}setContainer(t){if(typeof t===yCe){if(t.charAt(0)==="."){var n=t.slice(1);t=document.getElementsByClassName(n)[0]}else{var r;t.charAt(0)!=="#"?r=t:r=t.slice(1),t=document.getElementById(r)}if(!t)throw"Can not find container in document with id "+r}return this._setAttr("container",t),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),t.appendChild(this.content)),this}shouldDrawHit(){return!0}clear(){var t=this.children,n=t.length,r;for(r=0;r-1&&vS.splice(n,1),de.releaseCanvas(this.bufferCanvas._canvas,this.bufferHitCanvas._canvas),this}getPointerPosition(){const t=this._pointerPositions[0]||this._changedPointerPositions[0];return t?{x:t.x,y:t.y}:(de.warn(CCe),null)}_getPointerById(t){return this._pointerPositions.find(n=>n.id===t)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(t){t=t||{},t.x=t.x||0,t.y=t.y||0,t.width=t.width||this.width(),t.height=t.height||this.height();var n=new Dm({width:t.width,height:t.height,pixelRatio:t.pixelRatio||1}),r=n.getContext()._context,i=this.children;return(t.x||t.y)&&r.translate(-1*t.x,-1*t.y),i.forEach(function(o){if(o.isVisible()){var a=o._toKonvaCanvas(t);r.drawImage(a._canvas,t.x,t.y,a.getWidth()/a.getPixelRatio(),a.getHeight()/a.getPixelRatio())}}),n}getIntersection(t){if(!t)return null;var n=this.children,r=n.length,i=r-1,o;for(o=i;o>=0;o--){const a=n[o].getIntersection(t);if(a)return a}return null}_resizeDOM(){var t=this.width(),n=this.height();this.content&&(this.content.style.width=t+uI,this.content.style.height=n+uI),this.bufferCanvas.setSize(t,n),this.bufferHitCanvas.setSize(t,n),this.children.forEach(r=>{r.setSize({width:t,height:n}),r.draw()})}add(t,...n){if(arguments.length>1){for(var r=0;rSCe&&de.warn("The stage has "+i+" layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group."),t.setSize({width:this.width(),height:this.height()}),t.draw(),ft.isBrowser&&this.content.appendChild(t.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(t){return oV(t,this)}setPointerCapture(t){aV(t,this)}releaseCapture(t){G1(t)}getLayers(){return this.children}_bindContentEvents(){ft.isBrowser&&wCe.forEach(([t,n])=>{this.content.addEventListener(t,r=>{this[n](r)},{passive:!1})})}_pointerenter(t){this.setPointersPositions(t);const n=Og(t.type);this._fire(n.pointerenter,{evt:t,target:this,currentTarget:this})}_pointerover(t){this.setPointersPositions(t);const n=Og(t.type);this._fire(n.pointerover,{evt:t,target:this,currentTarget:this})}_getTargetShape(t){let n=this[t+"targetShape"];return n&&!n.getStage()&&(n=null),n}_pointerleave(t){const n=Og(t.type),r=x1(t.type);if(n){this.setPointersPositions(t);var i=this._getTargetShape(r),o=!fn.isDragging||ft.hitOnDragEnabled;i&&o?(i._fireAndBubble(n.pointerout,{evt:t}),i._fireAndBubble(n.pointerleave,{evt:t}),this._fire(n.pointerleave,{evt:t,target:this,currentTarget:this}),this[r+"targetShape"]=null):o&&(this._fire(n.pointerleave,{evt:t,target:this,currentTarget:this}),this._fire(n.pointerout,{evt:t,target:this,currentTarget:this})),this.pointerPos=void 0,this._pointerPositions=[]}}_pointerdown(t){const n=Og(t.type),r=x1(t.type);if(n){this.setPointersPositions(t);var i=!1;this._changedPointerPositions.forEach(o=>{var a=this.getIntersection(o);if(fn.justDragged=!1,ft["_"+r+"ListenClick"]=!0,!(a&&a.isListening()))return;ft.capturePointerEventsEnabled&&a.setPointerCapture(o.id),this[r+"ClickStartShape"]=a,a._fireAndBubble(n.pointerdown,{evt:t,pointerId:o.id}),i=!0;const l=t.type.indexOf("touch")>=0;a.preventDefault()&&t.cancelable&&l&&t.preventDefault()}),i||this._fire(n.pointerdown,{evt:t,target:this,currentTarget:this,pointerId:this._pointerPositions[0].id})}}_pointermove(t){const n=Og(t.type),r=x1(t.type);if(!n)return;fn.isDragging&&fn.node.preventDefault()&&t.cancelable&&t.preventDefault(),this.setPointersPositions(t);var i=!fn.isDragging||ft.hitOnDragEnabled;if(!i)return;var o={};let a=!1;var s=this._getTargetShape(r);this._changedPointerPositions.forEach(l=>{const u=WC(l.id)||this.getIntersection(l),d=l.id,h={evt:t,pointerId:d};var m=s!==u;if(m&&s&&(s._fireAndBubble(n.pointerout,Object.assign({},h),u),s._fireAndBubble(n.pointerleave,Object.assign({},h),u)),u){if(o[u._id])return;o[u._id]=!0}u&&u.isListening()?(a=!0,m&&(u._fireAndBubble(n.pointerover,Object.assign({},h),s),u._fireAndBubble(n.pointerenter,Object.assign({},h),s),this[r+"targetShape"]=u),u._fireAndBubble(n.pointermove,Object.assign({},h))):s&&(this._fire(n.pointerover,{evt:t,target:this,currentTarget:this,pointerId:d}),this[r+"targetShape"]=null)}),a||this._fire(n.pointermove,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(t){const n=Og(t.type),r=x1(t.type);if(!n)return;this.setPointersPositions(t);const i=this[r+"ClickStartShape"],o=this[r+"ClickEndShape"];var a={};let s=!1;this._changedPointerPositions.forEach(l=>{const u=WC(l.id)||this.getIntersection(l);if(u){if(u.releaseCapture(l.id),a[u._id])return;a[u._id]=!0}const d=l.id,h={evt:t,pointerId:d};let m=!1;ft["_"+r+"InDblClickWindow"]?(m=!0,clearTimeout(this[r+"DblTimeout"])):fn.justDragged||(ft["_"+r+"InDblClickWindow"]=!0,clearTimeout(this[r+"DblTimeout"])),this[r+"DblTimeout"]=setTimeout(function(){ft["_"+r+"InDblClickWindow"]=!1},ft.dblClickWindow),u&&u.isListening()?(s=!0,this[r+"ClickEndShape"]=u,u._fireAndBubble(n.pointerup,Object.assign({},h)),ft["_"+r+"ListenClick"]&&i&&i===u&&(u._fireAndBubble(n.pointerclick,Object.assign({},h)),m&&o&&o===u&&u._fireAndBubble(n.pointerdblclick,Object.assign({},h)))):(this[r+"ClickEndShape"]=null,ft["_"+r+"ListenClick"]&&this._fire(n.pointerclick,{evt:t,target:this,currentTarget:this,pointerId:d}),m&&this._fire(n.pointerdblclick,{evt:t,target:this,currentTarget:this,pointerId:d}))}),s||this._fire(n.pointerup,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),ft["_"+r+"ListenClick"]=!1,t.cancelable&&r!=="touch"&&t.preventDefault()}_contextmenu(t){this.setPointersPositions(t);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(jk,{evt:t}):this._fire(jk,{evt:t,target:this,currentTarget:this})}_wheel(t){this.setPointersPositions(t);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(Nk,{evt:t}):this._fire(Nk,{evt:t,target:this,currentTarget:this})}_pointercancel(t){this.setPointersPositions(t);const n=WC(t.pointerId)||this.getIntersection(this.getPointerPosition());n&&n._fireAndBubble(lm,TE(t)),G1(t.pointerId)}_lostpointercapture(t){G1(t.pointerId)}setPointersPositions(t){var n=this._getContentPosition(),r=null,i=null;t=t||window.event,t.touches!==void 0?(this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(t.touches,o=>{this._pointerPositions.push({id:o.identifier,x:(o.clientX-n.left)/n.scaleX,y:(o.clientY-n.top)/n.scaleY})}),Array.prototype.forEach.call(t.changedTouches||t.touches,o=>{this._changedPointerPositions.push({id:o.identifier,x:(o.clientX-n.left)/n.scaleX,y:(o.clientY-n.top)/n.scaleY})})):(r=(t.clientX-n.left)/n.scaleX,i=(t.clientY-n.top)/n.scaleY,this.pointerPos={x:r,y:i},this._pointerPositions=[{x:r,y:i,id:de._getFirstPointerId(t)}],this._changedPointerPositions=[{x:r,y:i,id:de._getFirstPointerId(t)}])}_setPointerPosition(t){de.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.'),this.setPointersPositions(t)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};var t=this.content.getBoundingClientRect();return{top:t.top,left:t.left,scaleX:t.width/this.content.clientWidth||1,scaleY:t.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferCanvas=new Dm({width:this.width(),height:this.height()}),this.bufferHitCanvas=new PE({pixelRatio:1,width:this.width(),height:this.height()}),!!ft.isBrowser){var t=this.container();if(!t)throw"Stage has no container. A container is required.";t.innerHTML="",this.content=document.createElement("div"),this.content.style.position="relative",this.content.style.userSelect="none",this.content.className="konvajs-content",this.content.setAttribute("role","presentation"),t.appendChild(this.content),this._resizeDOM()}}cache(){return de.warn("Cache function is not allowed for stage. You may use cache only for layers, groups and shapes."),this}clearCache(){return this}batchDraw(){return this.getChildren().forEach(function(t){t.batchDraw()}),this}};c4.prototype.nodeType=vCe;Mr(c4);J.addGetterSetter(c4,"container");var vV="hasShadow",yV="shadowRGBA",bV="patternImage",xV="linearGradient",SV="radialGradient";let fx;function VC(){return fx||(fx=de.createCanvasElement().getContext("2d"),fx)}const q1={};function _Ce(e){e.fill()}function kCe(e){e.stroke()}function ECe(e){e.fill()}function PCe(e){e.stroke()}function TCe(){this._clearCache(vV)}function MCe(){this._clearCache(yV)}function LCe(){this._clearCache(bV)}function ACe(){this._clearCache(xV)}function OCe(){this._clearCache(SV)}class $e extends Ge{constructor(t){super(t);let n;for(;n=de.getRandomColor(),!(n&&!(n in q1)););this.colorKey=n,q1[n]=this}getContext(){return de.warn("shape.getContext() method is deprecated. Please do not use it."),this.getLayer().getContext()}getCanvas(){return de.warn("shape.getCanvas() method is deprecated. Please do not use it."),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(vV,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(bV,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){var t=VC();const n=t.createPattern(this.fillPatternImage(),this.fillPatternRepeat()||"repeat");if(n&&n.setTransform){const r=new Ca;r.translate(this.fillPatternX(),this.fillPatternY()),r.rotate(ft.getAngle(this.fillPatternRotation())),r.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),r.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());const i=r.getMatrix(),o=typeof DOMMatrix>"u"?{a:i[0],b:i[1],c:i[2],d:i[3],e:i[4],f:i[5]}:new DOMMatrix(i);n.setTransform(o)}return n}}_getLinearGradient(){return this._getCache(xV,this.__getLinearGradient)}__getLinearGradient(){var t=this.fillLinearGradientColorStops();if(t){for(var n=VC(),r=this.fillLinearGradientStartPoint(),i=this.fillLinearGradientEndPoint(),o=n.createLinearGradient(r.x,r.y,i.x,i.y),a=0;athis.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate("hasStroke",["strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops"],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){const t=this.hitStrokeWidth();return t==="auto"?this.hasStroke():this.strokeEnabled()&&!!t}intersects(t){var n=this.getStage(),r=n.bufferHitCanvas,i;return r.getContext().clear(),this.drawHit(r,null,!0),i=r.context.getImageData(Math.round(t.x),Math.round(t.y),1,1).data,i[3]>0}destroy(){return Ge.prototype.destroy.call(this),delete q1[this.colorKey],delete this.colorKey,this}_useBufferCanvas(t){var n;if(!this.getStage()||!((n=this.attrs.perfectDrawEnabled)!==null&&n!==void 0?n:!0))return!1;const i=t||this.hasFill(),o=this.hasStroke(),a=this.getAbsoluteOpacity()!==1;if(i&&o&&a)return!0;const s=this.hasShadow(),l=this.shadowForStrokeEnabled();return!!(i&&o&&s&&l)}setStrokeHitEnabled(t){de.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."),t?this.hitStrokeWidth("auto"):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){var t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}getClientRect(t={}){const n=t.skipTransform,r=t.relativeTo,i=this.getSelfRect(),a=!t.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,s=i.width+a,l=i.height+a,u=!t.skipShadow&&this.hasShadow(),d=u?this.shadowOffsetX():0,h=u?this.shadowOffsetY():0,m=s+Math.abs(d),y=l+Math.abs(h),b=u&&this.shadowBlur()||0,w=m+b*2,E=y+b*2,_={width:w,height:E,x:-(a/2+b)+Math.min(d,0)+i.x,y:-(a/2+b)+Math.min(h,0)+i.y};return n?_:this._transformedRect(_,r)}drawScene(t,n){var r=this.getLayer(),i=t||r.getCanvas(),o=i.getContext(),a=this._getCanvasCache(),s=this.getSceneFunc(),l=this.hasShadow(),u,d,h,m=i.isCache,y=n===this;if(!this.isVisible()&&!y)return this;if(a){o.save();var b=this.getAbsoluteTransform(n).getMatrix();return o.transform(b[0],b[1],b[2],b[3],b[4],b[5]),this._drawCachedSceneCanvas(o),o.restore(),this}if(!s)return this;if(o.save(),this._useBufferCanvas()&&!m){u=this.getStage(),d=u.bufferCanvas,h=d.getContext(),h.clear(),h.save(),h._applyLineJoin(this);var w=this.getAbsoluteTransform(n).getMatrix();h.transform(w[0],w[1],w[2],w[3],w[4],w[5]),s.call(this,h,this),h.restore();var E=d.pixelRatio;l&&o._applyShadow(this),o._applyOpacity(this),o._applyGlobalCompositeOperation(this),o.drawImage(d._canvas,0,0,d.width/E,d.height/E)}else{if(o._applyLineJoin(this),!y){var w=this.getAbsoluteTransform(n).getMatrix();o.transform(w[0],w[1],w[2],w[3],w[4],w[5]),o._applyOpacity(this),o._applyGlobalCompositeOperation(this)}l&&o._applyShadow(this),s.call(this,o,this)}return o.restore(),this}drawHit(t,n,r=!1){if(!this.shouldDrawHit(n,r))return this;var i=this.getLayer(),o=t||i.hitCanvas,a=o&&o.getContext(),s=this.hitFunc()||this.sceneFunc(),l=this._getCanvasCache(),u=l&&l.hit;if(this.colorKey||de.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"),u){a.save();var d=this.getAbsoluteTransform(n).getMatrix();return a.transform(d[0],d[1],d[2],d[3],d[4],d[5]),this._drawCachedHitCanvas(a),a.restore(),this}if(!s)return this;if(a.save(),a._applyLineJoin(this),!(this===n)){var m=this.getAbsoluteTransform(n).getMatrix();a.transform(m[0],m[1],m[2],m[3],m[4],m[5])}return s.call(this,a,this),a.restore(),this}drawHitFromCache(t=0){var n=this._getCanvasCache(),r=this._getCachedSceneCanvas(),i=n.hit,o=i.getContext(),a=i.getWidth(),s=i.getHeight(),l,u,d,h,m,y;o.clear(),o.drawImage(r._canvas,0,0,a,s);try{for(l=o.getImageData(0,0,a,s),u=l.data,d=u.length,h=de._hexToRgb(this.colorKey),m=0;mt?(u[m]=h.r,u[m+1]=h.g,u[m+2]=h.b,u[m+3]=255):u[m+3]=0;o.putImageData(l,0,0)}catch(b){de.error("Unable to draw hit graph from cached scene canvas. "+b.message)}return this}hasPointerCapture(t){return oV(t,this)}setPointerCapture(t){aV(t,this)}releaseCapture(t){G1(t)}}$e.prototype._fillFunc=_Ce;$e.prototype._strokeFunc=kCe;$e.prototype._fillFuncHit=ECe;$e.prototype._strokeFuncHit=PCe;$e.prototype._centroid=!1;$e.prototype.nodeType="Shape";Mr($e);$e.prototype.eventListeners={};$e.prototype.on.call($e.prototype,"shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",TCe);$e.prototype.on.call($e.prototype,"shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",MCe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva",LCe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva",ACe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva",OCe);J.addGetterSetter($e,"stroke",void 0,rV());J.addGetterSetter($e,"strokeWidth",2,Ve());J.addGetterSetter($e,"fillAfterStrokeEnabled",!1);J.addGetterSetter($e,"hitStrokeWidth","auto",EE());J.addGetterSetter($e,"strokeHitEnabled",!0,el());J.addGetterSetter($e,"perfectDrawEnabled",!0,el());J.addGetterSetter($e,"shadowForStrokeEnabled",!0,el());J.addGetterSetter($e,"lineJoin");J.addGetterSetter($e,"lineCap");J.addGetterSetter($e,"sceneFunc");J.addGetterSetter($e,"hitFunc");J.addGetterSetter($e,"dash");J.addGetterSetter($e,"dashOffset",0,Ve());J.addGetterSetter($e,"shadowColor",void 0,x0());J.addGetterSetter($e,"shadowBlur",0,Ve());J.addGetterSetter($e,"shadowOpacity",1,Ve());J.addComponentsGetterSetter($e,"shadowOffset",["x","y"]);J.addGetterSetter($e,"shadowOffsetX",0,Ve());J.addGetterSetter($e,"shadowOffsetY",0,Ve());J.addGetterSetter($e,"fillPatternImage");J.addGetterSetter($e,"fill",void 0,rV());J.addGetterSetter($e,"fillPatternX",0,Ve());J.addGetterSetter($e,"fillPatternY",0,Ve());J.addGetterSetter($e,"fillLinearGradientColorStops");J.addGetterSetter($e,"strokeLinearGradientColorStops");J.addGetterSetter($e,"fillRadialGradientStartRadius",0);J.addGetterSetter($e,"fillRadialGradientEndRadius",0);J.addGetterSetter($e,"fillRadialGradientColorStops");J.addGetterSetter($e,"fillPatternRepeat","repeat");J.addGetterSetter($e,"fillEnabled",!0);J.addGetterSetter($e,"strokeEnabled",!0);J.addGetterSetter($e,"shadowEnabled",!0);J.addGetterSetter($e,"dashEnabled",!0);J.addGetterSetter($e,"strokeScaleEnabled",!0);J.addGetterSetter($e,"fillPriority","color");J.addComponentsGetterSetter($e,"fillPatternOffset",["x","y"]);J.addGetterSetter($e,"fillPatternOffsetX",0,Ve());J.addGetterSetter($e,"fillPatternOffsetY",0,Ve());J.addComponentsGetterSetter($e,"fillPatternScale",["x","y"]);J.addGetterSetter($e,"fillPatternScaleX",1,Ve());J.addGetterSetter($e,"fillPatternScaleY",1,Ve());J.addComponentsGetterSetter($e,"fillLinearGradientStartPoint",["x","y"]);J.addComponentsGetterSetter($e,"strokeLinearGradientStartPoint",["x","y"]);J.addGetterSetter($e,"fillLinearGradientStartPointX",0);J.addGetterSetter($e,"strokeLinearGradientStartPointX",0);J.addGetterSetter($e,"fillLinearGradientStartPointY",0);J.addGetterSetter($e,"strokeLinearGradientStartPointY",0);J.addComponentsGetterSetter($e,"fillLinearGradientEndPoint",["x","y"]);J.addComponentsGetterSetter($e,"strokeLinearGradientEndPoint",["x","y"]);J.addGetterSetter($e,"fillLinearGradientEndPointX",0);J.addGetterSetter($e,"strokeLinearGradientEndPointX",0);J.addGetterSetter($e,"fillLinearGradientEndPointY",0);J.addGetterSetter($e,"strokeLinearGradientEndPointY",0);J.addComponentsGetterSetter($e,"fillRadialGradientStartPoint",["x","y"]);J.addGetterSetter($e,"fillRadialGradientStartPointX",0);J.addGetterSetter($e,"fillRadialGradientStartPointY",0);J.addComponentsGetterSetter($e,"fillRadialGradientEndPoint",["x","y"]);J.addGetterSetter($e,"fillRadialGradientEndPointX",0);J.addGetterSetter($e,"fillRadialGradientEndPointY",0);J.addGetterSetter($e,"fillPatternRotation",0);J.backCompat($e,{dashArray:"dash",getDashArray:"getDash",setDashArray:"getDash",drawFunc:"sceneFunc",getDrawFunc:"getSceneFunc",setDrawFunc:"setSceneFunc",drawHitFunc:"hitFunc",getDrawHitFunc:"getHitFunc",setDrawHitFunc:"setHitFunc"});var RCe="#",ICe="beforeDraw",DCe="draw",wV=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],jCe=wV.length;let sp=class extends Ma{constructor(t){super(t),this.canvas=new Dm,this.hitCanvas=new PE({pixelRatio:1}),this._waitingForDraw=!1,this.on("visibleChange.konva",this._checkVisibility),this._checkVisibility(),this.on("imageSmoothingEnabledChange.konva",this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this}setZIndex(t){super.setZIndex(t);var n=this.getStage();return n&&n.content&&(n.content.removeChild(this.getNativeCanvasElement()),t{this.draw(),this._waitingForDraw=!1})),this}getIntersection(t){if(!this.isListening()||!this.isVisible())return null;for(var n=1,r=!1;;){for(let i=0;i0)return{antialiased:!0};return{}}drawScene(t,n){var r=this.getLayer(),i=t||r&&r.getCanvas();return this._fire(ICe,{node:this}),this.clearBeforeDraw()&&i.getContext().clear(),Ma.prototype.drawScene.call(this,i,n),this._fire(DCe,{node:this}),this}drawHit(t,n){var r=this.getLayer(),i=t||r&&r.hitCanvas;return r&&r.clearBeforeDraw()&&r.getHitCanvas().getContext().clear(),Ma.prototype.drawHit.call(this,i,n),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(t){de.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening(t)}getHitGraphEnabled(t){return de.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening()}toggleHitCanvas(){if(!(!this.parent||!this.parent.content)){var t=this.parent,n=!!this.hitCanvas._canvas.parentNode;n?t.content.removeChild(this.hitCanvas._canvas):t.content.appendChild(this.hitCanvas._canvas)}}destroy(){return de.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}};sp.prototype.nodeType="Layer";Mr(sp);J.addGetterSetter(sp,"imageSmoothingEnabled",!0);J.addGetterSetter(sp,"clearBeforeDraw",!0);J.addGetterSetter(sp,"hitGraphEnabled",!0,el());class ME extends sp{constructor(t){super(t),this.listening(!1),de.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.')}}ME.prototype.nodeType="FastLayer";Mr(ME);let Jm=class extends Ma{_validateAdd(t){var n=t.getType();n!=="Group"&&n!=="Shape"&&de.throw("You may only add groups and shapes to groups.")}};Jm.prototype.nodeType="Group";Mr(Jm);var GC=function(){return Im.performance&&Im.performance.now?function(){return Im.performance.now()}:function(){return new Date().getTime()}}();class Ja{constructor(t,n){this.id=Ja.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:GC(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(t){var n=[];return t?t.length>0?n=t:n=[t]:n=[],this.layers=n,this}getLayers(){return this.layers}addLayer(t){var n=this.layers,r=n.length,i;for(i=0;ithis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():t<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=t,this.update())}getTime(){return this._time}setPosition(t){this.prevPos=this._pos,this.propFunc(t),this._pos=t}getPosition(t){return t===void 0&&(t=this._time),this.func(t,this.begin,this._change,this.duration)}play(){this.state=dI,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onPlay")}reverse(){this.state=fI,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onReverse")}seek(t){this.pause(),this._time=t,this.update(),this.fire("onSeek")}reset(){this.pause(),this._time=0,this.update(),this.fire("onReset")}finish(){this.pause(),this._time=this.duration,this.update(),this.fire("onFinish")}update(){this.setPosition(this.getPosition(this._time)),this.fire("onUpdate")}onEnterFrame(){var t=this.getTimer()-this._startTime;this.state===dI?this.setTime(t):this.state===fI&&this.setTime(this.duration-t)}pause(){this.state=$Ce,this.fire("onPause")}getTimer(){return new Date().getTime()}}class Xr{constructor(t){var n=this,r=t.node,i=r._id,o,a=t.easing||K1.Linear,s=!!t.yoyo,l;typeof t.duration>"u"?o=.3:t.duration===0?o=.001:o=t.duration,this.node=r,this._id=FCe++;var u=r.getLayer()||(r instanceof ft.Stage?r.getLayers():null);u||de.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new Ja(function(){n.tween.onEnterFrame()},u),this.tween=new BCe(l,function(d){n._tweenFunc(d)},a,0,1,o*1e3,s),this._addListeners(),Xr.attrs[i]||(Xr.attrs[i]={}),Xr.attrs[i][this._id]||(Xr.attrs[i][this._id]={}),Xr.tweens[i]||(Xr.tweens[i]={});for(l in t)NCe[l]===void 0&&this._addAttr(l,t[l]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){var r=this.node,i=r._id,o,a,s,l,u,d,h,m;if(s=Xr.tweens[i][t],s&&delete Xr.attrs[i][s][t],o=r.getAttr(t),de._isArray(n))if(a=[],u=Math.max(n.length,o.length),t==="points"&&n.length!==o.length&&(n.length>o.length?(h=o,o=de._prepareArrayForTween(o,n,r.closed())):(d=n,n=de._prepareArrayForTween(n,o,r.closed()))),t.indexOf("fill")===0)for(l=0;l{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{var t=this.node,n=Xr.attrs[t._id][this._id];n.points&&n.points.trueEnd&&t.setAttr("points",n.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{var t=this.node,n=Xr.attrs[t._id][this._id];n.points&&n.points.trueStart&&t.points(n.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(t){return this.tween.seek(t*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){var t=this.node._id,n=this._id,r=Xr.tweens[t],i;this.pause();for(i in r)delete Xr.tweens[t][i];delete Xr.attrs[t][n]}}Xr.attrs={};Xr.tweens={};Ge.prototype.to=function(e){var t=e.onFinish;e.node=this,e.onFinish=function(){this.destroy(),t&&t()};var n=new Xr(e);n.play()};const K1={BackEaseIn(e,t,n,r){var i=1.70158;return n*(e/=r)*e*((i+1)*e-i)+t},BackEaseOut(e,t,n,r){var i=1.70158;return n*((e=e/r-1)*e*((i+1)*e+i)+1)+t},BackEaseInOut(e,t,n,r){var i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,o){var a=0;return e===0?t:(e/=r)===1?t+n:(o||(o=r*.3),!i||i0?t:n),d=a*n,h=s*(s>0?t:n),m=l*(l>0?n:t);return{x:u,y:r?-1*m:h,width:d-u,height:m-h}}}hc.prototype._centroid=!0;hc.prototype.className="Arc";hc.prototype._attrsAffectingSize=["innerRadius","outerRadius"];Mr(hc);J.addGetterSetter(hc,"innerRadius",0,Ve());J.addGetterSetter(hc,"outerRadius",0,Ve());J.addGetterSetter(hc,"angle",0,Ve());J.addGetterSetter(hc,"clockwise",!1,el());function $k(e,t,n,r,i,o,a){var s=Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2)),l=Math.sqrt(Math.pow(i-n,2)+Math.pow(o-r,2)),u=a*s/(s+l),d=a*l/(s+l),h=n-u*(i-e),m=r-u*(o-t),y=n+d*(i-e),b=r+d*(o-t);return[h,m,y,b]}function pI(e,t){var n=e.length,r=[],i,o;for(i=2;i4){for(s=this.getTensionPoints(),l=s.length,u=o?0:4,o||t.quadraticCurveTo(s[0],s[1],s[2],s[3]);ud?u:d,E=u>d?1:u/d,_=u>d?d/u:1;t.translate(s,l),t.rotate(y),t.scale(E,_),t.arc(0,0,w,h,h+m,1-b),t.scale(1/E,1/_),t.rotate(-y),t.translate(-s,-l);break;case"z":r=!0,t.closePath();break}}!r&&!this.hasFill()?t.strokeShape(this):t.fillStrokeShape(this)}getSelfRect(){var t=[];this.dataArray.forEach(function(u){if(u.command==="A"){var d=u.points[4],h=u.points[5],m=u.points[4]+h,y=Math.PI/180;if(Math.abs(d-m)m;b-=y){const w=Fn.getPointOnEllipticalArc(u.points[0],u.points[1],u.points[2],u.points[3],b,0);t.push(w.x,w.y)}else for(let b=d+y;bthis.dataArray[r].pathLength;)t-=this.dataArray[r].pathLength,++r;if(r===i)return n=this.dataArray[r-1].points.slice(-2),{x:n[0],y:n[1]};if(t<.01)return n=this.dataArray[r].points.slice(0,2),{x:n[0],y:n[1]};var o=this.dataArray[r],a=o.points;switch(o.command){case"L":return Fn.getPointOnLine(t,o.start.x,o.start.y,a[0],a[1]);case"C":return Fn.getPointOnCubicBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3],a[4],a[5]);case"Q":return Fn.getPointOnQuadraticBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3]);case"A":var s=a[0],l=a[1],u=a[2],d=a[3],h=a[4],m=a[5],y=a[6];return h+=m*t/o.pathLength,Fn.getPointOnEllipticalArc(s,l,u,d,h,y)}return null}static getLineLength(t,n,r,i){return Math.sqrt((r-t)*(r-t)+(i-n)*(i-n))}static getPointOnLine(t,n,r,i,o,a,s){a===void 0&&(a=n),s===void 0&&(s=r);var l=(o-r)/(i-n+1e-8),u=Math.sqrt(t*t/(1+l*l));i0&&!isNaN(b[0]);){var k=null,T=[],L=l,O=u,D,I,N,W,B,K,ne,z,$,V;switch(y){case"l":l+=b.shift(),u+=b.shift(),k="L",T.push(l,u);break;case"L":l=b.shift(),u=b.shift(),T.push(l,u);break;case"m":var X=b.shift(),Q=b.shift();if(l+=X,u+=Q,k="M",a.length>2&&a[a.length-1].command==="z"){for(var G=a.length-2;G>=0;G--)if(a[G].command==="M"){l=a[G].points[0]+X,u=a[G].points[1]+Q;break}}T.push(l,u),y="l";break;case"M":l=b.shift(),u=b.shift(),k="M",T.push(l,u),y="L";break;case"h":l+=b.shift(),k="L",T.push(l,u);break;case"H":l=b.shift(),k="L",T.push(l,u);break;case"v":u+=b.shift(),k="L",T.push(l,u);break;case"V":u=b.shift(),k="L",T.push(l,u);break;case"C":T.push(b.shift(),b.shift(),b.shift(),b.shift()),l=b.shift(),u=b.shift(),T.push(l,u);break;case"c":T.push(l+b.shift(),u+b.shift(),l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="C",T.push(l,u);break;case"S":I=l,N=u,D=a[a.length-1],D.command==="C"&&(I=l+(l-D.points[2]),N=u+(u-D.points[3])),T.push(I,N,b.shift(),b.shift()),l=b.shift(),u=b.shift(),k="C",T.push(l,u);break;case"s":I=l,N=u,D=a[a.length-1],D.command==="C"&&(I=l+(l-D.points[2]),N=u+(u-D.points[3])),T.push(I,N,l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="C",T.push(l,u);break;case"Q":T.push(b.shift(),b.shift()),l=b.shift(),u=b.shift(),T.push(l,u);break;case"q":T.push(l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="Q",T.push(l,u);break;case"T":I=l,N=u,D=a[a.length-1],D.command==="Q"&&(I=l+(l-D.points[0]),N=u+(u-D.points[1])),l=b.shift(),u=b.shift(),k="Q",T.push(I,N,l,u);break;case"t":I=l,N=u,D=a[a.length-1],D.command==="Q"&&(I=l+(l-D.points[0]),N=u+(u-D.points[1])),l+=b.shift(),u+=b.shift(),k="Q",T.push(I,N,l,u);break;case"A":W=b.shift(),B=b.shift(),K=b.shift(),ne=b.shift(),z=b.shift(),$=l,V=u,l=b.shift(),u=b.shift(),k="A",T=this.convertEndpointToCenterParameterization($,V,l,u,ne,z,W,B,K);break;case"a":W=b.shift(),B=b.shift(),K=b.shift(),ne=b.shift(),z=b.shift(),$=l,V=u,l+=b.shift(),u+=b.shift(),k="A",T=this.convertEndpointToCenterParameterization($,V,l,u,ne,z,W,B,K);break}a.push({command:k||y,points:T,start:{x:L,y:O},pathLength:this.calcLength(L,O,k||y,T)})}(y==="z"||y==="Z")&&a.push({command:"z",points:[],start:void 0,pathLength:0})}return a}static calcLength(t,n,r,i){var o,a,s,l,u=Fn;switch(r){case"L":return u.getLineLength(t,n,i[0],i[1]);case"C":for(o=0,a=u.getPointOnCubicBezier(0,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),l=.01;l<=1;l+=.01)s=u.getPointOnCubicBezier(l,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"Q":for(o=0,a=u.getPointOnQuadraticBezier(0,t,n,i[0],i[1],i[2],i[3]),l=.01;l<=1;l+=.01)s=u.getPointOnQuadraticBezier(l,t,n,i[0],i[1],i[2],i[3]),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"A":o=0;var d=i[4],h=i[5],m=i[4]+h,y=Math.PI/180;if(Math.abs(d-m)m;l-=y)s=u.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],l,0),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;else for(l=d+y;l1&&(s*=Math.sqrt(y),l*=Math.sqrt(y));var b=Math.sqrt((s*s*(l*l)-s*s*(m*m)-l*l*(h*h))/(s*s*(m*m)+l*l*(h*h)));o===a&&(b*=-1),isNaN(b)&&(b=0);var w=b*s*m/l,E=b*-l*h/s,_=(t+r)/2+Math.cos(d)*w-Math.sin(d)*E,k=(n+i)/2+Math.sin(d)*w+Math.cos(d)*E,T=function(B){return Math.sqrt(B[0]*B[0]+B[1]*B[1])},L=function(B,K){return(B[0]*K[0]+B[1]*K[1])/(T(B)*T(K))},O=function(B,K){return(B[0]*K[1]=1&&(W=0),a===0&&W>0&&(W=W-2*Math.PI),a===1&&W<0&&(W=W+2*Math.PI),[_,k,s,l,D,W,d,a]}}Fn.prototype.className="Path";Fn.prototype._attrsAffectingSize=["data"];Mr(Fn);J.addGetterSetter(Fn,"data");class lp extends pc{_sceneFunc(t){super._sceneFunc(t);var n=Math.PI*2,r=this.points(),i=r,o=this.tension()!==0&&r.length>4;o&&(i=this.getTensionPoints());var a=this.pointerLength(),s=r.length,l,u;if(o){const m=[i[i.length-4],i[i.length-3],i[i.length-2],i[i.length-1],r[s-2],r[s-1]],y=Fn.calcLength(i[i.length-4],i[i.length-3],"C",m),b=Fn.getPointOnQuadraticBezier(Math.min(1,1-a/y),m[0],m[1],m[2],m[3],m[4],m[5]);l=r[s-2]-b.x,u=r[s-1]-b.y}else l=r[s-2]-r[s-4],u=r[s-1]-r[s-3];var d=(Math.atan2(u,l)+n)%n,h=this.pointerWidth();this.pointerAtEnding()&&(t.save(),t.beginPath(),t.translate(r[s-2],r[s-1]),t.rotate(d),t.moveTo(0,0),t.lineTo(-a,h/2),t.lineTo(-a,-h/2),t.closePath(),t.restore(),this.__fillStroke(t)),this.pointerAtBeginning()&&(t.save(),t.beginPath(),t.translate(r[0],r[1]),o?(l=(i[0]+i[2])/2-r[0],u=(i[1]+i[3])/2-r[1]):(l=r[2]-r[0],u=r[3]-r[1]),t.rotate((Math.atan2(-u,-l)+n)%n),t.moveTo(0,0),t.lineTo(-a,h/2),t.lineTo(-a,-h/2),t.closePath(),t.restore(),this.__fillStroke(t))}__fillStroke(t){var n=this.dashEnabled();n&&(this.attrs.dashEnabled=!1,t.setLineDash([])),t.fillStrokeShape(this),n&&(this.attrs.dashEnabled=!0)}getSelfRect(){const t=super.getSelfRect(),n=this.pointerWidth()/2;return{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2}}}lp.prototype.className="Arrow";Mr(lp);J.addGetterSetter(lp,"pointerLength",10,Ve());J.addGetterSetter(lp,"pointerWidth",10,Ve());J.addGetterSetter(lp,"pointerAtBeginning",!1);J.addGetterSetter(lp,"pointerAtEnding",!0);let S0=class extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius()!==t/2&&this.radius(t/2)}setHeight(t){this.radius()!==t/2&&this.radius(t/2)}};S0.prototype._centroid=!0;S0.prototype.className="Circle";S0.prototype._attrsAffectingSize=["radius"];Mr(S0);J.addGetterSetter(S0,"radius",0,Ve());class cf extends $e{_sceneFunc(t){var n=this.radiusX(),r=this.radiusY();t.beginPath(),t.save(),n!==r&&t.scale(1,r/n),t.arc(0,0,n,0,Math.PI*2,!1),t.restore(),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(t){this.radiusX(t/2)}setHeight(t){this.radiusY(t/2)}}cf.prototype.className="Ellipse";cf.prototype._centroid=!0;cf.prototype._attrsAffectingSize=["radiusX","radiusY"];Mr(cf);J.addComponentsGetterSetter(cf,"radius",["x","y"]);J.addGetterSetter(cf,"radiusX",0,Ve());J.addGetterSetter(cf,"radiusY",0,Ve());let uu=class CV extends $e{constructor(t){super(t),this.on("imageChange.konva",()=>{this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){const t=this.image();t&&t.complete||t&&t.readyState===4||t&&t.addEventListener&&t.addEventListener("load",()=>{this._requestDraw()})}_useBufferCanvas(){return super._useBufferCanvas(!0)}_sceneFunc(t){const n=this.getWidth(),r=this.getHeight(),i=this.cornerRadius(),o=this.attrs.image;let a;if(o){const s=this.attrs.cropWidth,l=this.attrs.cropHeight;s&&l?a=[o,this.cropX(),this.cropY(),s,l,0,0,n,r]:a=[o,0,0,n,r]}(this.hasFill()||this.hasStroke()||i)&&(t.beginPath(),i?de.drawRoundedRectPath(t,n,r,i):t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)),o&&(i&&t.clip(),t.drawImage.apply(t,a))}_hitFunc(t){var n=this.width(),r=this.height(),i=this.cornerRadius();t.beginPath(),i?de.drawRoundedRectPath(t,n,r,i):t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}getWidth(){var t,n;return(t=this.attrs.width)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.width}getHeight(){var t,n;return(t=this.attrs.height)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.height}static fromURL(t,n,r=null){var i=de.createImageElement();i.onload=function(){var o=new CV({image:i});n(o)},i.onerror=r,i.crossOrigin="Anonymous",i.src=t}};uu.prototype.className="Image";Mr(uu);J.addGetterSetter(uu,"cornerRadius",0,kE(4));J.addGetterSetter(uu,"image");J.addComponentsGetterSetter(uu,"crop",["x","y","width","height"]);J.addGetterSetter(uu,"cropX",0,Ve());J.addGetterSetter(uu,"cropY",0,Ve());J.addGetterSetter(uu,"cropWidth",0,Ve());J.addGetterSetter(uu,"cropHeight",0,Ve());var _V=["fontFamily","fontSize","fontStyle","padding","lineHeight","text","width","height","pointerDirection","pointerWidth","pointerHeight"],zCe="Change.konva",HCe="none",Fk="up",Bk="right",zk="down",Hk="left",WCe=_V.length;class LE extends Jm{constructor(t){super(t),this.on("add.konva",function(n){this._addListeners(n.child),this._sync()})}getText(){return this.find("Text")[0]}getTag(){return this.find("Tag")[0]}_addListeners(t){var n=this,r,i=function(){n._sync()};for(r=0;r{n=Math.min(n,a.x),r=Math.max(r,a.x),i=Math.min(i,a.y),o=Math.max(o,a.y)}),{x:n,y:i,width:r-n,height:o-i}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}cp.prototype.className="RegularPolygon";cp.prototype._centroid=!0;cp.prototype._attrsAffectingSize=["radius"];Mr(cp);J.addGetterSetter(cp,"radius",0,Ve());J.addGetterSetter(cp,"sides",0,Ve());var gI=Math.PI*2;class dp extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.innerRadius(),0,gI,!1),t.moveTo(this.outerRadius(),0),t.arc(0,0,this.outerRadius(),gI,0,!0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(t){this.outerRadius(t/2)}setHeight(t){this.outerRadius(t/2)}}dp.prototype.className="Ring";dp.prototype._centroid=!0;dp.prototype._attrsAffectingSize=["innerRadius","outerRadius"];Mr(dp);J.addGetterSetter(dp,"innerRadius",0,Ve());J.addGetterSetter(dp,"outerRadius",0,Ve());class cu extends $e{constructor(t){super(t),this._updated=!0,this.anim=new Ja(()=>{var n=this._updated;return this._updated=!1,n}),this.on("animationChange.konva",function(){this.frameIndex(0)}),this.on("frameIndexChange.konva",function(){this._updated=!0}),this.on("frameRateChange.konva",function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_sceneFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+0],l=o[i+1],u=o[i+2],d=o[i+3],h=this.image();if((this.hasFill()||this.hasStroke())&&(t.beginPath(),t.rect(0,0,u,d),t.closePath(),t.fillStrokeShape(this)),h)if(a){var m=a[n],y=r*2;t.drawImage(h,s,l,u,d,m[y+0],m[y+1],u,d)}else t.drawImage(h,s,l,u,d,0,0,u,d)}_hitFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+2],l=o[i+3];if(t.beginPath(),a){var u=a[n],d=r*2;t.rect(u[d+0],u[d+1],s,l)}else t.rect(0,0,s,l);t.closePath(),t.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){var t=this;this.interval=setInterval(function(){t._updateIndex()},1e3/this.frameRate())}start(){if(!this.isRunning()){var t=this.getLayer();this.anim.setLayers(t),this._setInterval(),this.anim.start()}}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){var t=this.frameIndex(),n=this.animation(),r=this.animations(),i=r[n],o=i.length/4;t{t=t.trim();const n=t.indexOf(" ")>=0,r=t.indexOf('"')>=0||t.indexOf("'")>=0;return n&&!r&&(t=`"${t}"`),t}).join(", ")}var px;function KC(){return px||(px=de.createCanvasElement().getContext(GCe),px)}function r6e(e){e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function i6e(e){e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function o6e(e){return e=e||{},!e.fillLinearGradientColorStops&&!e.fillRadialGradientColorStops&&!e.fillPatternImage&&(e.fill=e.fill||"black"),e}class Tr extends $e{constructor(t){super(o6e(t)),this._partialTextX=0,this._partialTextY=0;for(var n=0;n1&&(_+=a)}}}_hitFunc(t){var n=this.getWidth(),r=this.getHeight();t.beginPath(),t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}setText(t){var n=de._isString(t)?t:t==null?"":t+"";return this._setAttr(qCe,n),this}getWidth(){var t=this.attrs.width===Rg||this.attrs.width===void 0;return t?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){var t=this.attrs.height===Rg||this.attrs.height===void 0;return t?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return de.warn("text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height."),this.textHeight}measureSize(t){var n=KC(),r=this.fontSize(),i;return n.save(),n.font=this._getContextFont(),i=n.measureText(t),n.restore(),{width:i.width,height:r}}_getContextFont(){return this.fontStyle()+hx+this.fontVariant()+hx+(this.fontSize()+ZCe)+n6e(this.fontFamily())}_addTextLine(t){this.align()===Jv&&(t=t.trim());var r=this._getTextWidth(t);return this.textArr.push({text:t,width:r,lastInParagraph:!1})}_getTextWidth(t){var n=this.letterSpacing(),r=t.length;return KC().measureText(t).width+(r?n*(r-1):0)}_setTextData(){var t=this.text().split(` -`),n=+this.fontSize(),r=0,i=this.lineHeight()*n,o=this.attrs.width,a=this.attrs.height,s=o!==Rg&&o!==void 0,l=a!==Rg&&a!==void 0,u=this.padding(),d=o-u*2,h=a-u*2,m=0,y=this.wrap(),b=y!==yI,w=y!==e6e&&b,E=this.ellipsis();this.textArr=[],KC().font=this._getContextFont();for(var _=E?this._getTextWidth(qC):0,k=0,T=t.length;kd)for(;L.length>0;){for(var D=0,I=L.length,N="",W=0;D>>1,K=L.slice(0,B+1),ne=this._getTextWidth(K)+_;ne<=d?(D=B+1,N=K,W=ne):I=B}if(N){if(w){var z,$=L[N.length],V=$===hx||$===mI;V&&W<=d?z=N.length:z=Math.max(N.lastIndexOf(hx),N.lastIndexOf(mI))+1,z>0&&(D=z,N=N.slice(0,D),W=this._getTextWidth(N))}N=N.trimRight(),this._addTextLine(N),r=Math.max(r,W),m+=i;var X=this._shouldHandleEllipsis(m);if(X){this._tryToAddEllipsisToLastLine();break}if(L=L.slice(D),L=L.trimLeft(),L.length>0&&(O=this._getTextWidth(L),O<=d)){this._addTextLine(L),m+=i,r=Math.max(r,O);break}}else break}else this._addTextLine(L),m+=i,r=Math.max(r,O),this._shouldHandleEllipsis(m)&&kh)break}this.textHeight=n,this.textWidth=r}_shouldHandleEllipsis(t){var n=+this.fontSize(),r=this.lineHeight()*n,i=this.attrs.height,o=i!==Rg&&i!==void 0,a=this.padding(),s=i-a*2,l=this.wrap(),u=l!==yI;return!u||o&&t+r>s}_tryToAddEllipsisToLastLine(){var t=this.attrs.width,n=t!==Rg&&t!==void 0,r=this.padding(),i=t-r*2,o=this.ellipsis(),a=this.textArr[this.textArr.length-1];if(!(!a||!o)){if(n){var s=this._getTextWidth(a.text+qC)=1){var r=n[0].p0;t.moveTo(r.x,r.y)}for(var i=0;i0&&(s+=t.dataArray[l].pathLength);var u=0;i==="center"&&(u=Math.max(0,s/2-a/2)),i==="right"&&(u=Math.max(0,s-a));for(var d=kV(this.text()),h=this.text().split(" ").length-1,m,y,b,w=-1,E=0,_=function(){E=0;for(var ne=t.dataArray,z=w+1;z0)return w=z,ne[z];ne[z].command==="M"&&(m={x:ne[z].points[0],y:ne[z].points[1]})}return{}},k=function(ne){var z=t._getTextSize(ne).width+r;ne===" "&&i==="justify"&&(z+=(s-a)/h);var $=0,V=0;for(y=void 0;Math.abs(z-$)/z>.01&&V<20;){V++;for(var X=$;b===void 0;)b=_(),b&&X+b.pathLengthz?y=Fn.getPointOnLine(z,m.x,m.y,b.points[0],b.points[1],m.x,m.y):b=void 0;break;case"A":var G=b.points[4],Y=b.points[5],ee=b.points[4]+Y;E===0?E=G+1e-8:z>$?E+=Math.PI/180*Y/Math.abs(Y):E-=Math.PI/360*Y/Math.abs(Y),(Y<0&&E=0&&E>ee)&&(E=ee,Q=!0),y=Fn.getPointOnEllipticalArc(b.points[0],b.points[1],b.points[2],b.points[3],E,b.points[6]);break;case"C":E===0?z>b.pathLength?E=1e-8:E=z/b.pathLength:z>$?E+=(z-$)/b.pathLength/2:E=Math.max(E-($-z)/b.pathLength/2,0),E>1&&(E=1,Q=!0),y=Fn.getPointOnCubicBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3],b.points[4],b.points[5]);break;case"Q":E===0?E=z/b.pathLength:z>$?E+=(z-$)/b.pathLength:E-=($-z)/b.pathLength,E>1&&(E=1,Q=!0),y=Fn.getPointOnQuadraticBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3]);break}y!==void 0&&($=Fn.getLineLength(m.x,m.y,y.x,y.y)),Q&&(Q=!1,b=void 0)}},T="C",L=t._getTextSize(T).width+r,O=u/L-1,D=0;De+`.${OV}`).join(" "),bI="nodesRect",l6e=["widthChange","heightChange","scaleXChange","scaleYChange","skewXChange","skewYChange","rotationChange","offsetXChange","offsetYChange","transformsEnabledChange","strokeWidthChange"],u6e={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135};const c6e="ontouchstart"in ft._global;function d6e(e,t){if(e==="rotater")return"crosshair";t+=de.degToRad(u6e[e]||0);var n=(de.radToDeg(t)%360+360)%360;return de._inRange(n,315+22.5,360)||de._inRange(n,0,22.5)?"ns-resize":de._inRange(n,45-22.5,45+22.5)?"nesw-resize":de._inRange(n,90-22.5,90+22.5)?"ew-resize":de._inRange(n,135-22.5,135+22.5)?"nwse-resize":de._inRange(n,180-22.5,180+22.5)?"ns-resize":de._inRange(n,225-22.5,225+22.5)?"nesw-resize":de._inRange(n,270-22.5,270+22.5)?"ew-resize":de._inRange(n,315-22.5,315+22.5)?"nwse-resize":(de.error("Transformer has unknown angle for cursor detection: "+n),"pointer")}var L3=["top-left","top-center","top-right","middle-right","middle-left","bottom-left","bottom-center","bottom-right"],xI=1e8;function f6e(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function RV(e,t,n){const r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return Object.assign(Object.assign({},e),{rotation:e.rotation+t,x:r,y:i})}function h6e(e,t){const n=f6e(e);return RV(e,t,n)}function p6e(e,t,n){let r=t;for(let i=0;i{const i=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()},o=r._attrsAffectingSize.map(a=>a+"Change."+this._getEventNamespace()).join(" ");r.on(o,i),r.on(l6e.map(a=>a+`.${this._getEventNamespace()}`).join(" "),i),r.on(`absoluteTransformChange.${this._getEventNamespace()}`,i),this._proxyDrag(r)}),this._resetTransformCache();var n=!!this.findOne(".top-left");return n&&this.update(),this}_proxyDrag(t){let n;t.on(`dragstart.${this._getEventNamespace()}`,r=>{n=t.getAbsolutePosition(),!this.isDragging()&&t!==this.findOne(".back")&&this.startDrag(r,!1)}),t.on(`dragmove.${this._getEventNamespace()}`,r=>{if(!n)return;const i=t.getAbsolutePosition(),o=i.x-n.x,a=i.y-n.y;this.nodes().forEach(s=>{if(s===t||s.isDragging())return;const l=s.getAbsolutePosition();s.setAbsolutePosition({x:l.x+o,y:l.y+a}),s.startDrag(r)}),n=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(t=>{t.off("."+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(bI),this._clearCache("transform"),this._clearSelfAndDescendantCache("absoluteTransform")}_getNodeRect(){return this._getCache(bI,this.__getNodeRect)}__getNodeShape(t,n=this.rotation(),r){var i=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),o=t.getAbsoluteScale(r),a=t.getAbsolutePosition(r),s=i.x*o.x-t.offsetX()*o.x,l=i.y*o.y-t.offsetY()*o.y;const u=(ft.getAngle(t.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2),d={x:a.x+s*Math.cos(u)+l*Math.sin(-u),y:a.y+l*Math.cos(u)+s*Math.sin(u),width:i.width*o.x,height:i.height*o.y,rotation:u};return RV(d,-ft.getAngle(n),{x:0,y:0})}__getNodeRect(){var t=this.getNode();if(!t)return{x:-xI,y:-xI,width:0,height:0,rotation:0};const n=[];this.nodes().map(u=>{const d=u.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()});var h=[{x:d.x,y:d.y},{x:d.x+d.width,y:d.y},{x:d.x+d.width,y:d.y+d.height},{x:d.x,y:d.y+d.height}],m=u.getAbsoluteTransform();h.forEach(function(y){var b=m.point(y);n.push(b)})});const r=new Ca;r.rotate(-ft.getAngle(this.rotation()));var i,o,a,s;n.forEach(function(u){var d=r.point(u);i===void 0&&(i=a=d.x,o=s=d.y),i=Math.min(i,d.x),o=Math.min(o,d.y),a=Math.max(a,d.x),s=Math.max(s,d.y)}),r.invert();const l=r.point({x:i,y:o});return{x:l.x,y:l.y,width:a-i,height:s-o,rotation:ft.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),L3.forEach(function(t){this._createAnchor(t)}.bind(this)),this._createAnchor("rotater")}_createAnchor(t){var n=new m2({stroke:"rgb(0, 161, 255)",fill:"white",strokeWidth:1,name:t+" _anchor",dragDistance:0,draggable:!0,hitStrokeWidth:c6e?10:"auto"}),r=this;n.on("mousedown touchstart",function(i){r._handleMouseDown(i)}),n.on("dragstart",i=>{n.stopDrag(),i.cancelBubble=!0}),n.on("dragend",i=>{i.cancelBubble=!0}),n.on("mouseenter",()=>{var i=ft.getAngle(this.rotation()),o=d6e(t,i);n.getStage().content&&(n.getStage().content.style.cursor=o),this._cursorChange=!0}),n.on("mouseout",()=>{n.getStage().content&&(n.getStage().content.style.cursor=""),this._cursorChange=!1}),this.add(n)}_createBack(){var t=new $e({name:"back",width:0,height:0,draggable:!0,sceneFunc(n){var r=this.getParent(),i=r.padding();n.beginPath(),n.rect(-i,-i,this.width()+i*2,this.height()+i*2),n.moveTo(this.width()/2,-i),r.rotateEnabled()&&n.lineTo(this.width()/2,-r.rotateAnchorOffset()*de._sign(this.height())-i),n.fillStrokeShape(this)},hitFunc:(n,r)=>{if(this.shouldOverdrawWholeArea()){var i=this.padding();n.beginPath(),n.rect(-i,-i,r.width()+i*2,r.height()+i*2),n.fillStrokeShape(r)}}});this.add(t),this._proxyDrag(t),t.on("dragstart",n=>{n.cancelBubble=!0}),t.on("dragmove",n=>{n.cancelBubble=!0}),t.on("dragend",n=>{n.cancelBubble=!0}),this.on("dragmove",n=>{this.update()})}_handleMouseDown(t){this._movingAnchorName=t.target.name().split(" ")[0];var n=this._getNodeRect(),r=n.width,i=n.height,o=Math.sqrt(Math.pow(r,2)+Math.pow(i,2));this.sin=Math.abs(i/o),this.cos=Math.abs(r/o),typeof window<"u"&&(window.addEventListener("mousemove",this._handleMouseMove),window.addEventListener("touchmove",this._handleMouseMove),window.addEventListener("mouseup",this._handleMouseUp,!0),window.addEventListener("touchend",this._handleMouseUp,!0)),this._transforming=!0;var a=t.target.getAbsolutePosition(),s=t.target.getStage().getPointerPosition();this._anchorDragOffset={x:s.x-a.x,y:s.y-a.y},this._fire("transformstart",{evt:t.evt,target:this.getNode()}),this._nodes.forEach(l=>{l._fire("transformstart",{evt:t.evt,target:l})})}_handleMouseMove(t){var n,r,i,o=this.findOne("."+this._movingAnchorName),a=o.getStage();a.setPointersPositions(t);const s=a.getPointerPosition();let l={x:s.x-this._anchorDragOffset.x,y:s.y-this._anchorDragOffset.y};const u=o.getAbsolutePosition();this.anchorDragBoundFunc()&&(l=this.anchorDragBoundFunc()(u,l,t)),o.setAbsolutePosition(l);const d=o.getAbsolutePosition();if(!(u.x===d.x&&u.y===d.y)){if(this._movingAnchorName==="rotater"){var h=this._getNodeRect();n=o.x()-h.width/2,r=-o.y()+h.height/2;let ne=Math.atan2(-r,n)+Math.PI/2;h.height<0&&(ne-=Math.PI);var m=ft.getAngle(this.rotation());const z=m+ne,$=ft.getAngle(this.rotationSnapTolerance()),X=p6e(this.rotationSnaps(),z,$)-h.rotation,Q=h6e(h,X);this._fitNodesInto(Q,t);return}var y=this.keepRatio()||t.shiftKey,k=this.centeredScaling()||t.altKey;if(this._movingAnchorName==="top-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-right").x(),y:this.findOne(".bottom-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(b.y-o.y(),2));var w=this.findOne(".top-left").x()>b.x?-1:1,E=this.findOne(".top-left").y()>b.y?-1:1;n=i*this.cos*w,r=i*this.sin*E,this.findOne(".top-left").x(b.x-n),this.findOne(".top-left").y(b.y-r)}}else if(this._movingAnchorName==="top-center")this.findOne(".top-left").y(o.y());else if(this._movingAnchorName==="top-right"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-left").x(),y:this.findOne(".bottom-left").y()};i=Math.sqrt(Math.pow(o.x()-b.x,2)+Math.pow(b.y-o.y(),2));var w=this.findOne(".top-right").x()b.y?-1:1;n=i*this.cos*w,r=i*this.sin*E,this.findOne(".top-right").x(b.x+n),this.findOne(".top-right").y(b.y-r)}var _=o.position();this.findOne(".top-left").y(_.y),this.findOne(".bottom-right").x(_.x)}else if(this._movingAnchorName==="middle-left")this.findOne(".top-left").x(o.x());else if(this._movingAnchorName==="middle-right")this.findOne(".bottom-right").x(o.x());else if(this._movingAnchorName==="bottom-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".top-right").x(),y:this.findOne(".top-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(o.y()-b.y,2));var w=b.x{r._fire("transformend",{evt:t,target:r})}),this._movingAnchorName=null}}_fitNodesInto(t,n){var r=this._getNodeRect();const i=1;if(de._inRange(t.width,-this.padding()*2-i,i)){this.update();return}if(de._inRange(t.height,-this.padding()*2-i,i)){this.update();return}const o=this.flipEnabled();var a=new Ca;if(a.rotate(ft.getAngle(this.rotation())),this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("left")>=0){const h=a.point({x:-this.padding()*2,y:0});if(t.x+=h.x,t.y+=h.y,t.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace("left","right"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,!o){this.update();return}}else if(this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("right")>=0){const h=a.point({x:this.padding()*2,y:0});if(this._movingAnchorName=this._movingAnchorName.replace("right","left"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.width+=this.padding()*2,!o){this.update();return}}if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("top")>=0){const h=a.point({x:0,y:-this.padding()*2});if(t.x+=h.x,t.y+=h.y,this._movingAnchorName=this._movingAnchorName.replace("top","bottom"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.height+=this.padding()*2,!o){this.update();return}}else if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("bottom")>=0){const h=a.point({x:0,y:this.padding()*2});if(this._movingAnchorName=this._movingAnchorName.replace("bottom","top"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.height+=this.padding()*2,!o){this.update();return}}if(this.boundBoxFunc()){const h=this.boundBoxFunc()(r,t);h?t=h:de.warn("boundBoxFunc returned falsy. You should return new bound rect from it!")}const s=1e7,l=new Ca;l.translate(r.x,r.y),l.rotate(r.rotation),l.scale(r.width/s,r.height/s);const u=new Ca;u.translate(t.x,t.y),u.rotate(t.rotation),u.scale(t.width/s,t.height/s);const d=u.multiply(l.invert());this._nodes.forEach(h=>{var m;const y=h.getParent().getAbsoluteTransform(),b=h.getTransform().copy();b.translate(h.offsetX(),h.offsetY());const w=new Ca;w.multiply(y.copy().invert()).multiply(d).multiply(y).multiply(b);const E=w.decompose();h.setAttrs(E),this._fire("transform",{evt:n,target:h}),h._fire("transform",{evt:n,target:h}),(m=h.getLayer())===null||m===void 0||m.batchDraw()}),this.rotation(de._getRotation(t.rotation)),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(t,n){this.findOne(t).setAttrs(n)}update(){var t,n=this._getNodeRect();this.rotation(de._getRotation(n.rotation));var r=n.width,i=n.height,o=this.enabledAnchors(),a=this.resizeEnabled(),s=this.padding(),l=this.anchorSize();this.find("._anchor").forEach(u=>{u.setAttrs({width:l,height:l,offsetX:l/2,offsetY:l/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(".top-left",{x:0,y:0,offsetX:l/2+s,offsetY:l/2+s,visible:a&&o.indexOf("top-left")>=0}),this._batchChangeChild(".top-center",{x:r/2,y:0,offsetY:l/2+s,visible:a&&o.indexOf("top-center")>=0}),this._batchChangeChild(".top-right",{x:r,y:0,offsetX:l/2-s,offsetY:l/2+s,visible:a&&o.indexOf("top-right")>=0}),this._batchChangeChild(".middle-left",{x:0,y:i/2,offsetX:l/2+s,visible:a&&o.indexOf("middle-left")>=0}),this._batchChangeChild(".middle-right",{x:r,y:i/2,offsetX:l/2-s,visible:a&&o.indexOf("middle-right")>=0}),this._batchChangeChild(".bottom-left",{x:0,y:i,offsetX:l/2+s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-left")>=0}),this._batchChangeChild(".bottom-center",{x:r/2,y:i,offsetY:l/2-s,visible:a&&o.indexOf("bottom-center")>=0}),this._batchChangeChild(".bottom-right",{x:r,y:i,offsetX:l/2-s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-right")>=0}),this._batchChangeChild(".rotater",{x:r/2,y:-this.rotateAnchorOffset()*de._sign(i)-s,visible:this.rotateEnabled()}),this._batchChangeChild(".back",{width:r,height:i,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0}),(t=this.getLayer())===null||t===void 0||t.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();var t=this.findOne("."+this._movingAnchorName);t&&t.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=""),Jm.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}toObject(){return Ge.prototype.toObject.call(this)}clone(t){var n=Ge.prototype.clone.call(this,t);return n}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}};function g6e(e){return e instanceof Array||de.warn("enabledAnchors value should be an array"),e instanceof Array&&e.forEach(function(t){L3.indexOf(t)===-1&&de.warn("Unknown anchor name: "+t+". Available names are: "+L3.join(", "))}),e||[]}Tn.prototype.className="Transformer";Mr(Tn);J.addGetterSetter(Tn,"enabledAnchors",L3,g6e);J.addGetterSetter(Tn,"flipEnabled",!0,el());J.addGetterSetter(Tn,"resizeEnabled",!0);J.addGetterSetter(Tn,"anchorSize",10,Ve());J.addGetterSetter(Tn,"rotateEnabled",!0);J.addGetterSetter(Tn,"rotationSnaps",[]);J.addGetterSetter(Tn,"rotateAnchorOffset",50,Ve());J.addGetterSetter(Tn,"rotationSnapTolerance",5,Ve());J.addGetterSetter(Tn,"borderEnabled",!0);J.addGetterSetter(Tn,"anchorStroke","rgb(0, 161, 255)");J.addGetterSetter(Tn,"anchorStrokeWidth",1,Ve());J.addGetterSetter(Tn,"anchorFill","white");J.addGetterSetter(Tn,"anchorCornerRadius",0,Ve());J.addGetterSetter(Tn,"borderStroke","rgb(0, 161, 255)");J.addGetterSetter(Tn,"borderStrokeWidth",1,Ve());J.addGetterSetter(Tn,"borderDash");J.addGetterSetter(Tn,"keepRatio",!0);J.addGetterSetter(Tn,"centeredScaling",!1);J.addGetterSetter(Tn,"ignoreStroke",!1);J.addGetterSetter(Tn,"padding",0,Ve());J.addGetterSetter(Tn,"node");J.addGetterSetter(Tn,"nodes");J.addGetterSetter(Tn,"boundBoxFunc");J.addGetterSetter(Tn,"anchorDragBoundFunc");J.addGetterSetter(Tn,"shouldOverdrawWholeArea",!1);J.addGetterSetter(Tn,"useSingleNodeRotation",!0);J.backCompat(Tn,{lineEnabled:"borderEnabled",rotateHandlerOffset:"rotateAnchorOffset",enabledHandlers:"enabledAnchors"});class gc extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.radius(),0,ft.getAngle(this.angle()),this.clockwise()),t.lineTo(0,0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}gc.prototype.className="Wedge";gc.prototype._centroid=!0;gc.prototype._attrsAffectingSize=["radius"];Mr(gc);J.addGetterSetter(gc,"radius",0,Ve());J.addGetterSetter(gc,"angle",0,Ve());J.addGetterSetter(gc,"clockwise",!1);J.backCompat(gc,{angleDeg:"angle",getAngleDeg:"getAngle",setAngleDeg:"setAngle"});function SI(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var m6e=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],v6e=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function y6e(e,t){var n=e.data,r=e.width,i=e.height,o,a,s,l,u,d,h,m,y,b,w,E,_,k,T,L,O,D,I,N,W,B,K,ne,z=t+t+1,$=r-1,V=i-1,X=t+1,Q=X*(X+1)/2,G=new SI,Y=null,ee=G,fe=null,Ce=null,we=m6e[t],xe=v6e[t];for(s=1;s>xe,K!==0?(K=255/K,n[d]=(m*we>>xe)*K,n[d+1]=(y*we>>xe)*K,n[d+2]=(b*we>>xe)*K):n[d]=n[d+1]=n[d+2]=0,m-=E,y-=_,b-=k,w-=T,E-=fe.r,_-=fe.g,k-=fe.b,T-=fe.a,l=h+((l=o+t+1)<$?l:$)<<2,L+=fe.r=n[l],O+=fe.g=n[l+1],D+=fe.b=n[l+2],I+=fe.a=n[l+3],m+=L,y+=O,b+=D,w+=I,fe=fe.next,E+=N=Ce.r,_+=W=Ce.g,k+=B=Ce.b,T+=K=Ce.a,L-=N,O-=W,D-=B,I-=K,Ce=Ce.next,d+=4;h+=r}for(o=0;o>xe,K>0?(K=255/K,n[l]=(m*we>>xe)*K,n[l+1]=(y*we>>xe)*K,n[l+2]=(b*we>>xe)*K):n[l]=n[l+1]=n[l+2]=0,m-=E,y-=_,b-=k,w-=T,E-=fe.r,_-=fe.g,k-=fe.b,T-=fe.a,l=o+((l=a+X)0&&y6e(t,n)};J.addGetterSetter(Ge,"blurRadius",0,Ve(),J.afterSetFilter);const x6e=function(e){var t=this.brightness()*255,n=e.data,r=n.length,i;for(i=0;i255?255:i,o=o<0?0:o>255?255:o,a=a<0?0:a>255?255:a,n[s]=i,n[s+1]=o,n[s+2]=a};J.addGetterSetter(Ge,"contrast",0,Ve(),J.afterSetFilter);const w6e=function(e){var t=this.embossStrength()*10,n=this.embossWhiteLevel()*255,r=this.embossDirection(),i=this.embossBlend(),o=0,a=0,s=e.data,l=e.width,u=e.height,d=l*4,h=u;switch(r){case"top-left":o=-1,a=-1;break;case"top":o=-1,a=0;break;case"top-right":o=-1,a=1;break;case"right":o=0,a=1;break;case"bottom-right":o=1,a=1;break;case"bottom":o=1,a=0;break;case"bottom-left":o=1,a=-1;break;case"left":o=0,a=-1;break;default:de.error("Unknown emboss direction: "+r)}do{var m=(h-1)*d,y=o;h+y<1&&(y=0),h+y>u&&(y=0);var b=(h-1+y)*l*4,w=l;do{var E=m+(w-1)*4,_=a;w+_<1&&(_=0),w+_>l&&(_=0);var k=b+(w-1+_)*4,T=s[E]-s[k],L=s[E+1]-s[k+1],O=s[E+2]-s[k+2],D=T,I=D>0?D:-D,N=L>0?L:-L,W=O>0?O:-O;if(N>I&&(D=L),W>I&&(D=O),D*=t,i){var B=s[E]+D,K=s[E+1]+D,ne=s[E+2]+D;s[E]=B>255?255:B<0?0:B,s[E+1]=K>255?255:K<0?0:K,s[E+2]=ne>255?255:ne<0?0:ne}else{var z=n-D;z<0?z=0:z>255&&(z=255),s[E]=s[E+1]=s[E+2]=z}}while(--w)}while(--h)};J.addGetterSetter(Ge,"embossStrength",.5,Ve(),J.afterSetFilter);J.addGetterSetter(Ge,"embossWhiteLevel",.5,Ve(),J.afterSetFilter);J.addGetterSetter(Ge,"embossDirection","top-left",null,J.afterSetFilter);J.addGetterSetter(Ge,"embossBlend",!1,null,J.afterSetFilter);function YC(e,t,n,r,i){var o=n-t,a=i-r,s;return o===0?r+a/2:a===0?r:(s=(e-t)/o,s=a*s+r,s)}const C6e=function(e){var t=e.data,n=t.length,r=t[0],i=r,o,a=t[1],s=a,l,u=t[2],d=u,h,m,y=this.enhance();if(y!==0){for(m=0;mi&&(i=o),l=t[m+1],ls&&(s=l),h=t[m+2],hd&&(d=h);i===r&&(i=255,r=0),s===a&&(s=255,a=0),d===u&&(d=255,u=0);var b,w,E,_,k,T,L,O,D;for(y>0?(w=i+y*(255-i),E=r-y*(r-0),k=s+y*(255-s),T=a-y*(a-0),O=d+y*(255-d),D=u-y*(u-0)):(b=(i+r)*.5,w=i+y*(i-b),E=r+y*(r-b),_=(s+a)*.5,k=s+y*(s-_),T=a+y*(a-_),L=(d+u)*.5,O=d+y*(d-L),D=u+y*(u-L)),m=0;m_?E:_;var k=a,T=o,L,O,D=360/T*Math.PI/180,I,N;for(O=0;OT?k:T;var L=a,O=o,D,I,N=n.polarRotation||0,W,B;for(d=0;dt&&(L=T,O=0,D=-1),i=0;i=0&&y=0&&b=0&&y=0&&b=255*4?255:0}return a}function j6e(e,t,n){for(var r=[.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111],i=Math.round(Math.sqrt(r.length)),o=Math.floor(i/2),a=[],s=0;s=0&&y=0&&b=n))for(o=w;o=r||(a=(n*o+i)*4,s+=L[a+0],l+=L[a+1],u+=L[a+2],d+=L[a+3],T+=1);for(s=s/T,l=l/T,u=u/T,d=d/T,i=y;i=n))for(o=w;o=r||(a=(n*o+i)*4,L[a+0]=s,L[a+1]=l,L[a+2]=u,L[a+3]=d)}};J.addGetterSetter(Ge,"pixelSize",8,Ve(),J.afterSetFilter);const B6e=function(e){var t=Math.round(this.levels()*254)+1,n=e.data,r=n.length,i=255/t,o;for(o=0;o255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"green",0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"blue",0,nV,J.afterSetFilter);const H6e=function(e){var t=e.data,n=t.length,r=this.red(),i=this.green(),o=this.blue(),a=this.alpha(),s,l;for(s=0;s255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"green",0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"blue",0,nV,J.afterSetFilter);J.addGetterSetter(Ge,"alpha",1,function(e){return this._filterUpToDate=!1,e>1?1:e<0?0:e});const W6e=function(e){var t=e.data,n=t.length,r,i,o,a;for(r=0;r127&&(u=255-u),d>127&&(d=255-d),h>127&&(h=255-h),t[l]=u,t[l+1]=d,t[l+2]=h}while(--s)}while(--o)},V6e=function(e){var t=this.threshold()*255,n=e.data,r=n.length,i;for(i=0;i{const{width:n,height:r}=t,i=document.createElement("div"),o=new $g.Stage({container:i,width:n,height:r}),a=new $g.Layer,s=new $g.Layer;a.add(new $g.Rect({...t,fill:"white"})),e.forEach(u=>s.add(new $g.Line({points:u.points,stroke:"black",strokeWidth:u.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,globalCompositeOperation:u.tool==="brush"?"source-over":"destination-out"}))),o.add(a),o.add(s);const l=o.toDataURL({...t});return i.remove(),l};let IV=null,DV=null;const q6e=e=>{IV=e},Qs=()=>IV,K6e=e=>{DV=e},jV=()=>DV,Y6e=e=>{const t=window.open("");t&&e.forEach(n=>{const r=new Image;r.src=n.base64,t.document.write(n.caption),t.document.write("
    "),t.document.write(r.outerHTML),t.document.write("

    ")})},NV=(e,t)=>Math.floor(Math.random()*(t-e+1)+e),X6e=e=>{const t=Qs(),{generationMode:n,generationState:r,postprocessingState:i,canvasState:o,systemState:a}=e,{codeformerFidelity:s,facetoolStrength:l,facetoolType:u,hiresFix:d,hiresStrength:h,shouldRunESRGAN:m,shouldRunFacetool:y,upscalingLevel:b,upscalingStrength:w,upscalingDenoising:E}=i,{cfgScale:_,height:k,img2imgStrength:T,infillMethod:L,initialImage:O,iterations:D,perlin:I,prompt:N,negativePrompt:W,sampler:B,seamBlur:K,seamless:ne,seamSize:z,seamSteps:$,seamStrength:V,seed:X,seedWeights:Q,shouldFitToWidthHeight:G,shouldGenerateVariations:Y,shouldRandomizeSeed:ee,steps:fe,threshold:Ce,tileSize:we,variationAmount:xe,width:Le,shouldUseSymmetry:Se,horizontalSymmetryTimePercentage:Qe,verticalSymmetryTimePercentage:Xe}=r,{shouldDisplayInProgressType:tt,saveIntermediatesInterval:yt,enableImageDebugging:Be}=a,Ae={prompt:N,iterations:D,steps:fe,cfg_scale:_,threshold:Ce,perlin:I,height:k,width:Le,sampler_name:B,seed:X,progress_images:tt==="full-res",progress_latents:tt==="latents",save_intermediates:yt,generation_mode:n,init_mask:""};let bt=!1,Fe=!1;if(W!==""&&(Ae.prompt=`${N} [${W}]`),Ae.seed=ee?NV(CE,_E):X,Se&&(Qe>0&&(Ae.h_symmetry_time_pct=Math.max(0,Math.min(1,Qe/fe))),Qe>0&&(Ae.v_symmetry_time_pct=Math.max(0,Math.min(1,Xe/fe)))),n==="txt2img"&&(Ae.hires_fix=d,d&&(Ae.strength=h)),["txt2img","img2img"].includes(n)&&(Ae.seamless=ne,m&&(bt={level:b,denoise_str:E,strength:w}),y&&(Fe={type:u,strength:l},u==="codeformer"&&(Fe.codeformer_fidelity=s))),n==="img2img"&&O&&(Ae.init_img=typeof O=="string"?O:O.url,Ae.strength=T,Ae.fit=G),n==="unifiedCanvas"&&t){const{layerState:{objects:at},boundingBoxCoordinates:jt,boundingBoxDimensions:mt,stageScale:Zt,isMaskEnabled:on,shouldPreserveMaskedArea:se,boundingBoxScaleMethod:Ie,scaledBoundingBoxDimensions:He}=o,Ue={...jt,...mt},ye=G6e(on?at.filter(hE):[],Ue);Ae.init_mask=ye,Ae.fit=!1,Ae.strength=T,Ae.invert_mask=se,Ae.bounding_box=Ue;const je=t.scale();t.scale({x:1/Zt,y:1/Zt});const vt=t.getAbsolutePosition(),Mt=t.toDataURL({x:Ue.x+vt.x,y:Ue.y+vt.y,width:Ue.width,height:Ue.height});Be&&Y6e([{base64:ye,caption:"mask sent as init_mask"},{base64:Mt,caption:"image sent as init_img"}]),t.scale(je),Ae.init_img=Mt,Ae.progress_images=!1,Ie!=="none"&&(Ae.inpaint_width=He.width,Ae.inpaint_height=He.height),Ae.seam_size=z,Ae.seam_blur=K,Ae.seam_strength=V,Ae.seam_steps=$,Ae.tile_size=we,Ae.infill_method=L,Ae.force_outpaint=!1}return Y?(Ae.variation_amount=xe,Q&&(Ae.with_variations=D3e(Q))):Ae.variation_amount=0,Be&&(Ae.enable_image_debugging=Be),{generationParameters:Ae,esrganParameters:bt,facetoolParameters:Fe}};var Z6e=/d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|W{1,2}|[LlopSZN]|"[^"]*"|'[^']*'/g,Q6e=/\b(?:[A-Z]{1,3}[A-Z][TC])(?:[-+]\d{4})?|((?:Australian )?(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time)\b/g,J6e=/[^-+\dA-Z]/g;function Ti(e,t,n,r){if(arguments.length===1&&typeof e=="string"&&!/\d/.test(e)&&(t=e,e=void 0),e=e||e===0?e:new Date,e instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");t=String(wI[t]||t||wI.default);var i=t.slice(0,4);(i==="UTC:"||i==="GMT:")&&(t=t.slice(4),n=!0,i==="GMT:"&&(r=!0));var o=function(){return n?"getUTC":"get"},a=function(){return e[o()+"Date"]()},s=function(){return e[o()+"Day"]()},l=function(){return e[o()+"Month"]()},u=function(){return e[o()+"FullYear"]()},d=function(){return e[o()+"Hours"]()},h=function(){return e[o()+"Minutes"]()},m=function(){return e[o()+"Seconds"]()},y=function(){return e[o()+"Milliseconds"]()},b=function(){return n?0:e.getTimezoneOffset()},w=function(){return e_e(e)},E=function(){return t_e(e)},_={d:function(){return a()},dd:function(){return xa(a())},ddd:function(){return zo.dayNames[s()]},DDD:function(){return CI({y:u(),m:l(),d:a(),_:o(),dayName:zo.dayNames[s()],short:!0})},dddd:function(){return zo.dayNames[s()+7]},DDDD:function(){return CI({y:u(),m:l(),d:a(),_:o(),dayName:zo.dayNames[s()+7]})},m:function(){return l()+1},mm:function(){return xa(l()+1)},mmm:function(){return zo.monthNames[l()]},mmmm:function(){return zo.monthNames[l()+12]},yy:function(){return String(u()).slice(2)},yyyy:function(){return xa(u(),4)},h:function(){return d()%12||12},hh:function(){return xa(d()%12||12)},H:function(){return d()},HH:function(){return xa(d())},M:function(){return h()},MM:function(){return xa(h())},s:function(){return m()},ss:function(){return xa(m())},l:function(){return xa(y(),3)},L:function(){return xa(Math.floor(y()/10))},t:function(){return d()<12?zo.timeNames[0]:zo.timeNames[1]},tt:function(){return d()<12?zo.timeNames[2]:zo.timeNames[3]},T:function(){return d()<12?zo.timeNames[4]:zo.timeNames[5]},TT:function(){return d()<12?zo.timeNames[6]:zo.timeNames[7]},Z:function(){return r?"GMT":n?"UTC":n_e(e)},o:function(){return(b()>0?"-":"+")+xa(Math.floor(Math.abs(b())/60)*100+Math.abs(b())%60,4)},p:function(){return(b()>0?"-":"+")+xa(Math.floor(Math.abs(b())/60),2)+":"+xa(Math.floor(Math.abs(b())%60),2)},S:function(){return["th","st","nd","rd"][a()%10>3?0:(a()%100-a()%10!=10)*a()%10]},W:function(){return w()},WW:function(){return xa(w())},N:function(){return E()}};return t.replace(Z6e,function(k){return k in _?_[k]():k.slice(1,k.length-1)})}var wI={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",paddedShortDate:"mm/dd/yyyy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},zo={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],timeNames:["a","p","am","pm","A","P","AM","PM"]},xa=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return String(t).padStart(n,"0")},CI=function(t){var n=t.y,r=t.m,i=t.d,o=t._,a=t.dayName,s=t.short,l=s===void 0?!1:s,u=new Date,d=new Date;d.setDate(d[o+"Date"]()-1);var h=new Date;h.setDate(h[o+"Date"]()+1);var m=function(){return u[o+"Date"]()},y=function(){return u[o+"Month"]()},b=function(){return u[o+"FullYear"]()},w=function(){return d[o+"Date"]()},E=function(){return d[o+"Month"]()},_=function(){return d[o+"FullYear"]()},k=function(){return h[o+"Date"]()},T=function(){return h[o+"Month"]()},L=function(){return h[o+"FullYear"]()};return b()===n&&y()===r&&m()===i?l?"Tdy":"Today":_()===n&&E()===r&&w()===i?l?"Ysd":"Yesterday":L()===n&&T()===r&&k()===i?l?"Tmw":"Tomorrow":a},e_e=function(t){var n=new Date(t.getFullYear(),t.getMonth(),t.getDate());n.setDate(n.getDate()-(n.getDay()+6)%7+3);var r=new Date(n.getFullYear(),0,4);r.setDate(r.getDate()-(r.getDay()+6)%7+3);var i=n.getTimezoneOffset()-r.getTimezoneOffset();n.setHours(n.getHours()-i);var o=(n-r)/(864e5*7);return 1+Math.floor(o)},t_e=function(t){var n=t.getDay();return n===0&&(n=7),n},n_e=function(t){return(String(t).match(Q6e)||[""]).pop().replace(J6e,"").replace(/GMT\+0000/g,"UTC")};const r_e=(e,t)=>{const{dispatch:n,getState:r}=e;return{emitGenerateImage:i=>{n(wa(!0));const o=r(),{generation:a,postprocessing:s,system:l,canvas:u}=o,d={generationMode:i,generationState:a,postprocessingState:s,canvasState:u,systemState:l};n(P4e());const{generationParameters:h,esrganParameters:m,facetoolParameters:y}=X6e(d);t.emit("generateImage",h,m,y),h.init_mask&&(h.init_mask=h.init_mask.substr(0,64).concat("...")),h.init_img&&(h.init_img=h.init_img.substr(0,64).concat("...")),n(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Image generation requested: ${JSON.stringify({...h,...m,...y})}`}))},emitRunESRGAN:i=>{n(wa(!0));const{postprocessing:{upscalingLevel:o,upscalingDenoising:a,upscalingStrength:s}}=r(),l={upscale:[o,a,s]};t.emit("runPostprocessing",i,{type:"esrgan",...l}),n(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`ESRGAN upscale requested: ${JSON.stringify({file:i.url,...l})}`}))},emitRunFacetool:i=>{n(wa(!0));const{postprocessing:{facetoolType:o,facetoolStrength:a,codeformerFidelity:s}}=r(),l={facetool_strength:a};o==="codeformer"&&(l.codeformer_fidelity=s),t.emit("runPostprocessing",i,{type:o,...l}),n(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Face restoration (${o}) requested: ${JSON.stringify({file:i.url,...l})}`}))},emitDeleteImage:i=>{const{url:o,uuid:a,category:s,thumbnail:l}=i;n(JW(i)),t.emit("deleteImage",o,l,a,s)},emitRequestImages:i=>{const o=r().gallery,{earliest_mtime:a}=o.categories[i];t.emit("requestImages",i,a)},emitRequestNewImages:i=>{const o=r().gallery,{latest_mtime:a}=o.categories[i];t.emit("requestLatestImages",i,a)},emitCancelProcessing:()=>{t.emit("cancel")},emitRequestSystemConfig:()=>{t.emit("requestSystemConfig")},emitSearchForModels:i=>{t.emit("searchForModels",i)},emitAddNewModel:i=>{t.emit("addNewModel",i)},emitDeleteModel:i=>{t.emit("deleteModel",i)},emitConvertToDiffusers:i=>{n(C4e()),t.emit("convertToDiffusers",i)},emitMergeDiffusersModels:i=>{n(_4e()),t.emit("mergeDiffusersModels",i)},emitRequestModelChange:i=>{n(w4e()),t.emit("requestModelChange",i)},emitSaveStagingAreaImageToGallery:i=>{t.emit("requestSaveStagingAreaImageToGallery",i)},emitRequestEmptyTempFolder:()=>{t.emit("requestEmptyTempFolder")}}};let mx;const i_e=new Uint8Array(16);function o_e(){if(!mx&&(mx=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!mx))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return mx(i_e)}const Hi=[];for(let e=0;e<256;++e)Hi.push((e+256).toString(16).slice(1));function a_e(e,t=0){return(Hi[e[t+0]]+Hi[e[t+1]]+Hi[e[t+2]]+Hi[e[t+3]]+"-"+Hi[e[t+4]]+Hi[e[t+5]]+"-"+Hi[e[t+6]]+Hi[e[t+7]]+"-"+Hi[e[t+8]]+Hi[e[t+9]]+"-"+Hi[e[t+10]]+Hi[e[t+11]]+Hi[e[t+12]]+Hi[e[t+13]]+Hi[e[t+14]]+Hi[e[t+15]]).toLowerCase()}const s_e=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),_I={randomUUID:s_e};function um(e,t,n){if(_I.randomUUID&&!t&&!e)return _I.randomUUID();e=e||{};const r=e.random||(e.rng||o_e)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let i=0;i<16;++i)t[n+i]=r[i];return t}return a_e(r)}const Wk=br("socketio/generateImage"),l_e=br("socketio/runESRGAN"),u_e=br("socketio/runFacetool"),c_e=br("socketio/deleteImage"),Uk=br("socketio/requestImages"),kI=br("socketio/requestNewImages"),d_e=br("socketio/cancelProcessing"),f_e=br("socketio/requestSystemConfig"),EI=br("socketio/searchForModels"),v2=br("socketio/addNewModel"),h_e=br("socketio/deleteModel"),p_e=br("socketio/convertToDiffusers"),g_e=br("socketio/mergeDiffusersModels"),$V=br("socketio/requestModelChange"),m_e=br("socketio/saveStagingAreaImageToGallery"),v_e=br("socketio/requestEmptyTempFolder"),y_e=e=>{const{dispatch:t,getState:n}=e;return{onConnect:()=>{try{t(HR(!0)),t(hh(Et.t("common.statusConnected"))),t(f_e());const r=n().gallery;r.categories.result.latest_mtime?t(kI("result")):t(Uk("result")),r.categories.user.latest_mtime?t(kI("user")):t(Uk("user"))}catch(r){console.error(r)}},onDisconnect:()=>{try{t(HR(!1)),t(hh(Et.t("common.statusDisconnected"))),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:"Disconnected from server",level:"warning"}))}catch(r){console.error(r)}},onGenerationResult:r=>{try{const i=n(),{activeTab:o}=i.ui,{shouldLoopback:a}=i.postprocessing,{boundingBox:s,generationMode:l,...u}=r,d={uuid:um(),...u};if(["txt2img","img2img"].includes(l)&&t(sm({category:"result",image:{...d,category:"result"}})),l==="unifiedCanvas"&&r.boundingBox){const{boundingBox:h}=r;t(e3e({image:{...d,category:"temp"},boundingBox:h})),i.canvas.shouldAutoSave&&t(sm({image:{...d,category:"result"},category:"result"}))}if(a)switch(xE[o]){case"img2img":{t(y0(d));break}}t(jC()),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Image generated: ${r.url}`}))}catch(i){console.error(i)}},onIntermediateResult:r=>{try{t(C3e({uuid:um(),...r,category:"result"})),r.isBase64||t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Intermediate image generated: ${r.url}`}))}catch(i){console.error(i)}},onPostprocessingResult:r=>{try{t(sm({category:"result",image:{uuid:um(),...r,category:"result"}})),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Postprocessed: ${r.url}`}))}catch(i){console.error(i)}},onProgressUpdate:r=>{try{t(wa(!0)),t(y4e(r))}catch(i){console.error(i)}},onError:r=>{const{message:i,additionalData:o}=r;try{t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Server error: ${i}`,level:"error"})),t(WR()),t(jC())}catch(a){console.error(a)}},onGalleryImages:r=>{const{images:i,areMoreImagesAvailable:o,category:a}=r,s=i.map(l=>({uuid:um(),...l}));t(w3e({images:s,areMoreImagesAvailable:o,category:a})),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Loaded ${i.length} images`}))},onProcessingCanceled:()=>{t(S4e());const{intermediateImage:r}=n().gallery;r&&(r.isBase64||(t(sm({category:"result",image:r})),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Intermediate image saved: ${r.url}`}))),t(jC())),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:"Processing canceled",level:"warning"}))},onImageDeleted:r=>{const{url:i}=r;t(JW(r));const{generation:{initialImage:o,maskPath:a}}=n();(o===i||(o==null?void 0:o.url)===i)&&t(oU()),a===i&&t(lU("")),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Image deleted: ${i}`}))},onSystemConfig:r=>{t(b4e(r)),r.infill_methods.includes("patchmatch")||t(sU(r.infill_methods[0]))},onFoundModels:r=>{const{search_folder:i,found_models:o}=r;t(jU(i)),t(NU(o))},onNewModelAdded:r=>{const{new_model_name:i,model_list:o,update:a}=r;t(Ag(o)),t(wa(!1)),t(hh(Et.t("modelManager.modelAdded"))),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Model Added: ${i}`,level:"info"})),t($u({title:a?`${Et.t("modelManager.modelUpdated")}: ${i}`:`${Et.t("modelManager.modelAdded")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelDeleted:r=>{const{deleted_model_name:i,model_list:o}=r;t(Ag(o)),t(wa(!1)),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`${Et.t("modelmanager:modelAdded")}: ${i}`,level:"info"})),t($u({title:`${Et.t("modelmanager:modelEntryDeleted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelConverted:r=>{const{converted_model_name:i,model_list:o}=r;t(Ag(o)),t(hh(Et.t("common.statusModelConverted"))),t(wa(!1)),t(_d(!0)),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Model converted: ${i}`,level:"info"})),t($u({title:`${Et.t("modelmanager:modelConverted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelsMerged:r=>{const{merged_models:i,merged_model_name:o,model_list:a}=r;t(Ag(a)),t(hh(Et.t("common.statusMergedModels"))),t(wa(!1)),t(_d(!0)),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Models merged: ${i}`,level:"info"})),t($u({title:`${Et.t("modelManager.modelsMerged")}: ${o}`,status:"success",duration:2500,isClosable:!0}))},onModelChanged:r=>{const{model_name:i,model_list:o}=r;t(Ag(o)),t(hh(Et.t("common.statusModelChanged"))),t(wa(!1)),t(_d(!0)),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Model changed: ${i}`,level:"info"}))},onModelChangeFailed:r=>{const{model_name:i,model_list:o}=r;t(Ag(o)),t(wa(!1)),t(_d(!0)),t(WR()),t(Pi({timestamp:Ti(new Date,"isoDateTime"),message:`Model change failed: ${i}`,level:"error"}))},onTempFolderEmptied:()=>{t($u({title:Et.t("toast.tempFoldersEmptied"),status:"success",duration:2500,isClosable:!0}))}}},b_e=()=>{const{origin:e}=new URL(window.location.href),t=pS(e,{timeout:6e4,path:`${window.location.pathname}socket.io`});let n=!1;return i=>o=>a=>{const{onConnect:s,onDisconnect:l,onError:u,onPostprocessingResult:d,onGenerationResult:h,onIntermediateResult:m,onProgressUpdate:y,onGalleryImages:b,onProcessingCanceled:w,onImageDeleted:E,onSystemConfig:_,onModelChanged:k,onFoundModels:T,onNewModelAdded:L,onModelDeleted:O,onModelConverted:D,onModelsMerged:I,onModelChangeFailed:N,onTempFolderEmptied:W}=y_e(i),{emitGenerateImage:B,emitRunESRGAN:K,emitRunFacetool:ne,emitDeleteImage:z,emitRequestImages:$,emitRequestNewImages:V,emitCancelProcessing:X,emitRequestSystemConfig:Q,emitSearchForModels:G,emitAddNewModel:Y,emitDeleteModel:ee,emitConvertToDiffusers:fe,emitMergeDiffusersModels:Ce,emitRequestModelChange:we,emitSaveStagingAreaImageToGallery:xe,emitRequestEmptyTempFolder:Le}=r_e(i,t);switch(n||(t.on("connect",()=>s()),t.on("disconnect",()=>l()),t.on("error",Se=>u(Se)),t.on("generationResult",Se=>h(Se)),t.on("postprocessingResult",Se=>d(Se)),t.on("intermediateResult",Se=>m(Se)),t.on("progressUpdate",Se=>y(Se)),t.on("galleryImages",Se=>b(Se)),t.on("processingCanceled",()=>{w()}),t.on("imageDeleted",Se=>{E(Se)}),t.on("systemConfig",Se=>{_(Se)}),t.on("foundModels",Se=>{T(Se)}),t.on("newModelAdded",Se=>{L(Se)}),t.on("modelDeleted",Se=>{O(Se)}),t.on("modelConverted",Se=>{D(Se)}),t.on("modelsMerged",Se=>{I(Se)}),t.on("modelChanged",Se=>{k(Se)}),t.on("modelChangeFailed",Se=>{N(Se)}),t.on("tempFolderEmptied",()=>{W()}),n=!0),a.type){case"socketio/generateImage":{B(a.payload);break}case"socketio/runESRGAN":{K(a.payload);break}case"socketio/runFacetool":{ne(a.payload);break}case"socketio/deleteImage":{z(a.payload);break}case"socketio/requestImages":{$(a.payload);break}case"socketio/requestNewImages":{V(a.payload);break}case"socketio/cancelProcessing":{X();break}case"socketio/requestSystemConfig":{Q();break}case"socketio/searchForModels":{G(a.payload);break}case"socketio/addNewModel":{Y(a.payload);break}case"socketio/deleteModel":{ee(a.payload);break}case"socketio/convertToDiffusers":{fe(a.payload);break}case"socketio/mergeDiffusersModels":{Ce(a.payload);break}case"socketio/requestModelChange":{we(a.payload);break}case"socketio/saveStagingAreaImageToGallery":{xe(a.payload);break}case"socketio/requestEmptyTempFolder":{Le();break}}o(a)}},x_e=["cursorPosition","isCanvasInitialized","doesCanvasNeedScaling"].map(e=>`canvas.${e}`),S_e=["currentIteration","currentStatus","currentStep","isCancelable","isConnected","isESRGANAvailable","isGFPGANAvailable","isProcessing","socketId","totalIterations","totalSteps","openModel","cancelOptions.cancelAfter"].map(e=>`system.${e}`),w_e=["categories","currentCategory","currentImage","currentImageUuid","shouldAutoSwitchToNewImages","shouldHoldGalleryOpen","intermediateImage"].map(e=>`gallery.${e}`),FV=SW({generation:z3e,postprocessing:G3e,gallery:L3e,system:L4e,canvas:x3e,ui:z4e,lightbox:R3e}),C_e=OW.getPersistConfig({key:"root",storage:AW,rootReducer:FV,blacklist:[...x_e,...S_e,...w_e],debounce:300}),__e=PSe(C_e,FV),BV=rSe({reducer:__e,middleware:e=>e({immutableCheck:!1,serializableCheck:!1}).concat(b_e()),devTools:{actionsDenylist:["canvas/setCursorPosition","canvas/setStageCoordinates","canvas/setStageScale","canvas/setIsDrawing","canvas/setBoundingBoxCoordinates","canvas/setBoundingBoxDimensions","canvas/setIsDrawing","canvas/addPointToCurrentLine"]}}),zV=RSe(BV),AE=S.createContext(null),Te=vxe,le=axe;let PI;const OE=()=>({setOpenUploader:e=>{e&&(PI=e)},openUploader:PI}),Br=lt(e=>e.ui,e=>xE[e.activeTab],{memoizeOptions:{equalityCheck:Pe.isEqual}}),k_e=lt(e=>e.ui,e=>e.activeTab,{memoizeOptions:{equalityCheck:Pe.isEqual}}),fp=lt(e=>e.ui,e=>e,{memoizeOptions:{equalityCheck:Pe.isEqual}}),TI=e=>async(t,n)=>{const{imageFile:r}=e,i=n(),o=Br(i),a=new FormData;a.append("file",r,r.name),a.append("data",JSON.stringify({kind:"init"}));const l=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:a})).json(),u={uuid:um(),category:"user",...l};t(sm({image:u,category:"user"})),o==="unifiedCanvas"?t(i4(u)):o==="img2img"&&t(y0(u))};function E_e(){const{t:e}=De();return g.jsxs("div",{className:"work-in-progress nodes-work-in-progress",children:[g.jsx("h1",{children:e("common.nodes")}),g.jsx("p",{children:e("common.nodesDesc")})]})}const P_e=()=>{const{t:e}=De();return g.jsxs("div",{className:"work-in-progress post-processing-work-in-progress",children:[g.jsx("h1",{children:e("common.postProcessing")}),g.jsx("p",{children:e("common.postProcessDesc1")}),g.jsx("p",{children:e("common.postProcessDesc2")}),g.jsx("p",{children:e("common.postProcessDesc3")})]})};function T_e(){const{t:e}=De();return g.jsxs("div",{className:"work-in-progress nodes-work-in-progress",children:[g.jsx("h1",{children:e("common.training")}),g.jsxs("p",{children:[e("common.trainingDesc1"),g.jsx("br",{}),g.jsx("br",{}),e("common.trainingDesc2")]})]})}function M_e(e){const{i18n:t}=De(),n=localStorage.getItem("i18nextLng");Ke.useEffect(()=>{e()},[e]),Ke.useEffect(()=>{t.on("languageChanged",()=>{e()})},[e,t,n])}const L_e=fc({displayName:"ImageToImageIcon",viewBox:"0 0 3543 3543",path:g.jsx("g",{transform:"matrix(1.10943,0,0,1.10943,-206.981,-213.533)",children:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M688.533,2405.95L542.987,2405.95C349.532,2405.95 192.47,2248.89 192.47,2055.44L192.47,542.987C192.47,349.532 349.532,192.47 542.987,192.47L2527.88,192.47C2721.33,192.47 2878.4,349.532 2878.4,542.987L2878.4,1172.79L3023.94,1172.79C3217.4,1172.79 3374.46,1329.85 3374.46,1523.3C3374.46,1523.3 3374.46,3035.75 3374.46,3035.75C3374.46,3229.21 3217.4,3386.27 3023.94,3386.27L1039.05,3386.27C845.595,3386.27 688.533,3229.21 688.533,3035.75L688.533,2405.95ZM3286.96,2634.37L3286.96,1523.3C3286.96,1378.14 3169.11,1260.29 3023.94,1260.29C3023.94,1260.29 1039.05,1260.29 1039.05,1260.29C893.887,1260.29 776.033,1378.14 776.033,1523.3L776.033,2489.79L1440.94,1736.22L2385.83,2775.59L2880.71,2200.41L3286.96,2634.37ZM2622.05,1405.51C2778.5,1405.51 2905.51,1532.53 2905.51,1688.98C2905.51,1845.42 2778.5,1972.44 2622.05,1972.44C2465.6,1972.44 2338.58,1845.42 2338.58,1688.98C2338.58,1532.53 2465.6,1405.51 2622.05,1405.51ZM2790.9,1172.79L1323.86,1172.79L944.882,755.906L279.97,1509.47L279.97,542.987C279.97,397.824 397.824,279.97 542.987,279.97C542.987,279.97 2527.88,279.97 2527.88,279.97C2673.04,279.97 2790.9,397.824 2790.9,542.987L2790.9,1172.79ZM2125.98,425.197C2282.43,425.197 2409.45,552.213 2409.45,708.661C2409.45,865.11 2282.43,992.126 2125.98,992.126C1969.54,992.126 1842.52,865.11 1842.52,708.661C1842.52,552.213 1969.54,425.197 2125.98,425.197Z"})})}),A_e=fc({displayName:"NodesIcon",viewBox:"0 0 3543 3543",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z"})}),O_e=fc({displayName:"PostprocessingIcon",viewBox:"0 0 3543 3543",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z"})}),R_e=fc({displayName:"TextToImageIcon",viewBox:"0 0 3543 3543",path:g.jsx("g",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",transform:"matrix(1.11667,0,0,1.1066,-231.131,-213.062)",children:g.jsx("path",{d:"M2209.59,1137.35L2209.59,1098.17C2177.13,1108.99 2125.74,1121.91 2055.41,1136.94C2054.77,1137.08 2054.14,1137.21 2053.49,1137.35L1662.79,1137.35C1687.75,1101.98 1720.8,1074.35 1761.93,1054.44C1808.52,1031.9 1875.69,1012.22 1963.45,995.386C2081.86,973.146 2163.91,952.409 2209.59,933.174L2209.59,907.929C2209.59,859.241 2197.57,824.529 2173.53,803.792C2149.48,783.054 2104.1,772.686 2037.38,772.686C1992.3,772.686 1957.14,781.552 1931.89,799.284C1906.64,817.015 1886.21,848.121 1870.58,892.601L1640.67,851.127C1666.51,758.56 1710.99,690.037 1774.11,645.557C1837.22,601.077 1930.99,578.837 2055.41,578.837C2168.42,578.837 2252.57,592.211 2307.87,618.959C2363.17,645.707 2402.09,679.668 2424.63,720.842C2447.17,762.016 2458.44,837.602 2458.44,947.6L2456.7,1137.35L3021.34,1137.35C3214.79,1137.35 3371.86,1294.41 3371.86,1487.87C3371.86,1487.87 3371.86,3000.32 3371.86,3000.32C3371.86,3193.78 3214.79,3350.84 3021.34,3350.84C3021.34,3350.84 1036.45,3350.84 1036.45,3350.84C842.991,3350.84 685.93,3193.78 685.93,3000.32L685.93,1487.87C685.93,1400.21 718.174,1320.03 771.448,1258.54L772.123,1257.76L607.408,1257.76L498.311,1558L215.202,1558L730.028,236.22L1012.24,236.22L1373.06,1137.35L2209.59,1137.35ZM3284.36,2598.93L3284.36,1487.87C3284.36,1342.71 3166.5,1224.85 3021.34,1224.85C3021.34,1224.85 1036.45,1224.85 1036.45,1224.85C891.284,1224.85 773.43,1342.71 773.43,1487.87L773.43,2454.35L1438.34,1700.79L2383.22,2740.16L2878.11,2164.98L3284.36,2598.93ZM2619.44,1370.08C2775.89,1370.08 2902.91,1497.1 2902.91,1653.54C2902.91,1809.99 2775.89,1937.01 2619.44,1937.01C2462.99,1937.01 2335.98,1809.99 2335.98,1653.54C2335.98,1497.1 2462.99,1370.08 2619.44,1370.08ZM772.877,1256.89L772.849,1256.93L773.167,1256.57L772.877,1256.89ZM773.634,1256.04L773.563,1256.12L773.985,1255.64L773.634,1256.04ZM774.394,1255.18L774.276,1255.31L774.746,1254.78L774.394,1255.18ZM775.157,1254.32L774.988,1254.51L775.493,1253.95L775.157,1254.32ZM775.923,1253.47L775.698,1253.72L776.237,1253.12L775.923,1253.47ZM776.691,1252.62L776.403,1252.94L776.979,1252.3L776.691,1252.62ZM777.462,1251.77L777.098,1252.17L777.723,1251.49L777.462,1251.77ZM925.081,1155.44C868.026,1174.57 817.508,1207.99 777.775,1251.43C817.511,1207.99 868.031,1174.57 925.081,1155.44ZM925.646,1155.25L925.108,1155.43L926.103,1155.1L925.646,1155.25ZM935.286,1152.2C932.214,1153.12 929.159,1154.09 926.13,1155.09C929.165,1154.09 932.219,1153.12 935.286,1152.2ZM935.716,1152.07L935.384,1152.17L936.292,1151.89L935.716,1152.07ZM936.843,1151.73L936.451,1151.85L937.327,1151.59L936.843,1151.73ZM937.972,1151.4L937.514,1151.53L938.377,1151.28L937.972,1151.4ZM939.102,1151.07L938.57,1151.22L939.438,1150.97L939.102,1151.07ZM940.233,1150.74L939.613,1150.92L940.505,1150.67L940.233,1150.74ZM946.659,1148.98C944.639,1149.51 942.626,1150.07 940.626,1150.63C942.631,1150.06 944.642,1149.51 946.659,1148.98ZM947.056,1148.87L946.829,1148.93L947.659,1148.71L947.056,1148.87ZM948.198,1148.57L947.919,1148.65L948.705,1148.44L948.198,1148.57ZM949.342,1148.28L949.008,1148.37L949.771,1148.17L949.342,1148.28ZM950.488,1147.99L950.096,1148.09L950.848,1147.9L950.488,1147.99ZM951.635,1147.7L951.182,1147.81L951.932,1147.63L951.635,1147.7ZM952.783,1147.42L952.262,1147.55L953.022,1147.36L952.783,1147.42ZM953.933,1147.14L953.327,1147.28L954.115,1147.09L953.933,1147.14ZM958.213,1146.13C956.927,1146.42 955.644,1146.73 954.354,1147.04C955.637,1146.73 956.923,1146.43 958.213,1146.13ZM958.547,1146.06L958.409,1146.09L959.174,1145.91L958.547,1146.06ZM959.704,1145.79L959.517,1145.84L960.229,1145.68L959.704,1145.79ZM960.863,1145.54L960.626,1145.59L961.311,1145.44L960.863,1145.54ZM962.023,1145.28L961.736,1145.35L962.406,1145.2L962.023,1145.28ZM963.184,1145.03L962.846,1145.11L963.508,1144.97L963.184,1145.03ZM964.347,1144.79L963.956,1144.87L964.615,1144.73L964.347,1144.79ZM965.511,1144.55L965.066,1144.64L965.725,1144.5L965.511,1144.55ZM966.677,1144.31L966.172,1144.41L966.838,1144.28L966.677,1144.31ZM967.844,1144.08L967.269,1144.19L967.953,1144.05L967.844,1144.08ZM970.183,1143.62C969.793,1143.69 969.403,1143.77 969.013,1143.85L969.055,1143.84C969.413,1143.77 969.771,1143.7 970.129,1143.63L970.183,1143.62ZM971.354,1143.4L971.245,1143.42L971.882,1143.3L971.354,1143.4ZM972.526,1143.18L972.37,1143.21L972.987,1143.09L972.526,1143.18ZM973.7,1142.96L973.496,1143L974.103,1142.89L973.7,1142.96ZM974.876,1142.75L974.624,1142.8L975.225,1142.69L974.876,1142.75ZM976.052,1142.55L975.754,1142.6L976.349,1142.49L976.052,1142.55ZM977.23,1142.34L976.885,1142.4L977.476,1142.3L977.23,1142.34ZM978.41,1142.14L978.019,1142.21L978.605,1142.11L978.41,1142.14ZM979.59,1141.95L979.156,1142.02L979.736,1141.92L979.59,1141.95ZM980.772,1141.76L980.299,1141.83L980.868,1141.74L980.772,1141.76ZM981.955,1141.57L981.464,1141.65L982.002,1141.56L981.955,1141.57ZM983.14,1141.39L983.1,1141.39L983.605,1141.32L983.14,1141.39ZM984.326,1141.21L984.239,1141.22L984.778,1141.14L984.326,1141.21ZM985.513,1141.03L985.379,1141.05L985.928,1140.97L985.513,1141.03ZM986.702,1140.86L986.521,1140.89L987.073,1140.81L986.702,1140.86ZM987.891,1140.69L987.665,1140.73L988.218,1140.65L987.891,1140.69ZM989.082,1140.53L988.811,1140.57L989.363,1140.49L989.082,1140.53ZM990.275,1140.37L989.96,1140.41L990.508,1140.34L990.275,1140.37ZM991.468,1140.22L991.113,1140.26L991.654,1140.19L991.468,1140.22ZM992.663,1140.07L992.273,1140.12L992.8,1140.05L992.663,1140.07ZM993.859,1139.92L993.447,1139.97L993.948,1139.91L993.859,1139.92ZM995.056,1139.78L994.671,1139.82L995.097,1139.77L995.056,1139.78ZM996.255,1139.64L996.23,1139.64L996.578,1139.6L996.255,1139.64ZM997.454,1139.5L997.383,1139.51L997.852,1139.46L997.454,1139.5ZM998.655,1139.37L998.537,1139.38L999.041,1139.33L998.655,1139.37ZM999.857,1139.24L999.693,1139.26L1000.21,1139.21L999.857,1139.24ZM1001.06,1139.12L1000.85,1139.14L1001.38,1139.09L1001.06,1139.12ZM1002.26,1139L1002.01,1139.03L1002.54,1138.98L1002.26,1139ZM1003.47,1138.89L1003.18,1138.91L1003.7,1138.87L1003.47,1138.89ZM1004.68,1138.78L1004.34,1138.81L1004.86,1138.76L1004.68,1138.78ZM1005.89,1138.67L1005.52,1138.7L1006.02,1138.66L1005.89,1138.67ZM1007.1,1138.57L1006.71,1138.6L1007.18,1138.56L1007.1,1138.57ZM1008.31,1138.47L1007.96,1138.5L1008.35,1138.46L1008.31,1138.47ZM1009.52,1138.37L1009.5,1138.38L1009.72,1138.36L1009.52,1138.37ZM1010.73,1138.28L1010.67,1138.29L1011.1,1138.26L1010.73,1138.28ZM1011.94,1138.2L1011.84,1138.2L1012.32,1138.17L1011.94,1138.2ZM1013.16,1138.12L1013,1138.13L1013.51,1138.09L1013.16,1138.12ZM1014.37,1138.04L1014.17,1138.05L1014.69,1138.02L1014.37,1138.04ZM1015.59,1137.96L1015.35,1137.98L1015.86,1137.95L1015.59,1137.96ZM1016.81,1137.89L1016.52,1137.91L1017.04,1137.88L1016.81,1137.89ZM1018.03,1137.83L1017.7,1137.85L1018.21,1137.82L1018.03,1137.83ZM1019.25,1137.77L1018.89,1137.79L1019.39,1137.76L1019.25,1137.77ZM1020.47,1137.71L1020.1,1137.73L1020.56,1137.71L1020.47,1137.71ZM1021.69,1137.66L1021.36,1137.67L1021.74,1137.66L1021.69,1137.66ZM1022.92,1137.61L1022.91,1137.61L1023.02,1137.61L1022.92,1137.61ZM1024.14,1137.57L1024.09,1137.57L1024.49,1137.55L1024.14,1137.57ZM1025.37,1137.52L1025.27,1137.53L1025.74,1137.51L1025.37,1137.52ZM1026.6,1137.49L1026.45,1137.49L1026.94,1137.48L1026.6,1137.49ZM1027.82,1137.46L1027.63,1137.46L1028.14,1137.45L1027.82,1137.46ZM1029.05,1137.43L1028.81,1137.43L1029.33,1137.42L1029.05,1137.43ZM1030.28,1137.41L1030,1137.41L1030.52,1137.4L1030.28,1137.41ZM1031.51,1137.39L1031.19,1137.39L1031.7,1137.38L1031.51,1137.39ZM1032.75,1137.37L1032.39,1137.38L1032.89,1137.37L1032.75,1137.37ZM1033.98,1137.36L1033.61,1137.36L1034.07,1137.36L1033.98,1137.36ZM1035.21,1137.35L1034.87,1137.36L1035.26,1137.35L1035.21,1137.35ZM1050.1,1035.06L867.977,544.575L689.455,1035.06L1050.1,1035.06Z"})})}),I_e=fc({displayName:"TrainingIcon",viewBox:"0 0 3544 3544",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z"})}),D_e=fc({displayName:"UnifiedCanvasIcon",viewBox:"0 0 3544 3544",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z"})}),Ye=Ze((e,t)=>{const{tooltip:n="",styleClass:r,tooltipProps:i,asCheckbox:o,isChecked:a,...s}=e;return g.jsx(si,{label:n,hasArrow:!0,...i,...i!=null&&i.placement?{placement:i.placement}:{placement:"top"},children:g.jsx(ls,{ref:t,className:r?`invokeai__icon-button ${r}`:"invokeai__icon-button","data-as-checkbox":o,"data-selected":a!==void 0?a:void 0,...s})})}),On=Ze((e,t)=>{const{children:n,tooltip:r="",tooltipProps:i,styleClass:o,...a}=e;return g.jsx(si,{label:r,...i,children:g.jsx(ss,{ref:t,className:["invokeai__button",o].join(" "),...a,children:n})})}),Ys=e=>{const{triggerComponent:t,children:n,styleClass:r,hasArrow:i=!0,...o}=e;return g.jsxs(V8,{...o,children:[g.jsx(U8,{children:t}),g.jsxs(q8,{className:`invokeai__popover-content ${r}`,children:[i&&g.jsx(G8,{className:"invokeai__popover-arrow"}),n]})]})},d4=lt(e=>e.lightbox,e=>e,{memoizeOptions:{equalityCheck:Pe.isEqual}}),Jo=e=>{const{label:t,isDisabled:n,validValues:r,tooltip:i,tooltipProps:o,size:a="sm",fontSize:s="sm",styleClass:l,...u}=e;return g.jsxs(sn,{isDisabled:n,className:`invokeai__select ${l}`,onClick:d=>{d.stopPropagation(),d.nativeEvent.stopImmediatePropagation(),d.nativeEvent.stopPropagation(),d.nativeEvent.cancelBubble=!0},children:[t&&g.jsx(Sn,{className:"invokeai__select-label",fontSize:s,fontWeight:"bold",marginRight:0,marginBottom:0,whiteSpace:"nowrap",children:t}),g.jsx(si,{label:i,...o,children:g.jsx(qH,{className:"invokeai__select-picker",fontSize:s,size:a,...u,children:r.map(d=>typeof d=="string"||typeof d=="number"?g.jsx("option",{value:d,className:"invokeai__select-option",children:d},d):g.jsx("option",{value:d.value,className:"invokeai__select-option",children:d.key},d.value))})})]})};function j_e(){const e=le(i=>i.postprocessing.facetoolType),t=Te(),{t:n}=De(),r=i=>t(dS(i.target.value));return g.jsx(Jo,{label:n("parameters.type"),validValues:I5e.concat(),value:e,onChange:r})}var HV={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},MI=Ke.createContext&&Ke.createContext(HV),Bd=globalThis&&globalThis.__assign||function(){return Bd=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{Ce(i)},[i]);const we=S.useMemo(()=>V!=null&&V.max?V.max:a,[a,V==null?void 0:V.max]),xe=Xe=>{l(Xe)},Le=Xe=>{Xe.target.value===""&&(Xe.target.value=String(o));const tt=Pe.clamp(w?Math.floor(Number(Xe.target.value)):Number(fe),o,we);l(tt)},Se=Xe=>{Ce(Xe)},Qe=()=>{O&&O()};return g.jsxs(sn,{className:W?`invokeai__slider-component ${W}`:"invokeai__slider-component","data-markers":h,style:L?{display:"flex",flexDirection:"row",alignItems:"center",columnGap:"1rem",margin:0,padding:0}:{},...B,children:[g.jsx(Sn,{className:"invokeai__slider-component-label",fontSize:"sm",...K,children:r}),g.jsxs(l2,{w:"100%",gap:2,alignItems:"center",children:[g.jsxs(QH,{"aria-label":r,value:i,min:o,max:a,step:s,onChange:xe,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),focusThumbOnChange:!1,isDisabled:I,width:u,...ee,children:[h&&g.jsxs(g.Fragment,{children:[g.jsx(tk,{value:o,className:"invokeai__slider-mark invokeai__slider-mark-start",ml:m,...ne,children:o}),g.jsx(tk,{value:a,className:"invokeai__slider-mark invokeai__slider-mark-end",ml:y,...ne,children:a})]}),g.jsx(eW,{className:"invokeai__slider_track",...z,children:g.jsx(tW,{className:"invokeai__slider_track-filled"})}),g.jsx(si,{hasArrow:!0,className:"invokeai__slider-component-tooltip",placement:"top",isOpen:t,label:`${i}${d}`,hidden:T,...G,children:g.jsx(JH,{className:"invokeai__slider-thumb",...$})})]}),b&&g.jsxs(B8,{min:o,max:we,step:s,value:fe,onChange:Se,onBlur:Le,className:"invokeai__slider-number-field",isDisabled:N,...V,children:[g.jsx(z8,{className:"invokeai__slider-number-input",width:E,readOnly:_,minWidth:E,...X}),g.jsxs(BH,{...Q,children:[g.jsx(W8,{onClick:()=>l(Number(fe)),className:"invokeai__slider-number-stepper"}),g.jsx(H8,{onClick:()=>l(Number(fe)),className:"invokeai__slider-number-stepper"})]})]}),k&&g.jsx(Ye,{size:"sm","aria-label":"Reset",tooltip:"Reset",icon:g.jsx(f4,{}),onClick:Qe,isDisabled:D,...Y})]})]})}function U_e(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.facetoolStrength),{t:n}=De(),r=Te();return g.jsx(Dn,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.strength"),step:.05,min:0,max:1,onChange:i=>r(k3(i)),handleReset:()=>r(k3(.75)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}function V_e(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.codeformerFidelity),{t:n}=De(),r=Te();return g.jsx(Dn,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.codeformerFidelity"),step:.05,min:0,max:1,onChange:i=>r(xk(i)),handleReset:()=>r(xk(1)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}const RE=()=>{const e=le(t=>t.postprocessing.facetoolType);return g.jsxs(ke,{direction:"column",gap:2,minWidth:"20rem",children:[g.jsx(j_e,{}),g.jsx(U_e,{}),e==="codeformer"&&g.jsx(V_e,{})]})};function G_e(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.upscalingDenoising),{t:n}=De(),r=Te();return g.jsx(Dn,{label:n("parameters.denoisingStrength"),value:t,min:0,max:1,step:.01,onChange:i=>{r(Sk(i))},handleReset:()=>r(Sk(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function q_e(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.upscalingStrength),{t:n}=De(),r=Te();return g.jsx(Dn,{label:`${n("parameters.upscale")} ${n("parameters.strength")}`,value:t,min:0,max:1,step:.05,onChange:i=>r(wk(i)),handleReset:()=>r(wk(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function K_e(){const e=le(o=>o.system.isESRGANAvailable),t=le(o=>o.postprocessing.upscalingLevel),{t:n}=De(),r=Te(),i=o=>r(yU(Number(o.target.value)));return g.jsx(Jo,{isDisabled:!e,label:n("parameters.scale"),value:t,onChange:i,validValues:R5e})}const IE=()=>g.jsxs(ke,{flexDir:"column",rowGap:2,minWidth:"20rem",children:[g.jsx(K_e,{}),g.jsx(G_e,{}),g.jsx(q_e,{})]}),DE=e=>e.postprocessing,hr=e=>e.system,Y_e=e=>e.system.toastQueue,VV=lt(hr,e=>{const{model_list:t}=e,n=Pe.reduce(t,(r,i,o)=>(i.status==="active"&&(r=o),r),"");return{...t[n],name:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),X_e=lt(hr,e=>{const{model_list:t}=e;return Pe.pickBy(t,(r,i)=>{if(r.format==="diffusers")return{name:i,...r}})},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Vk(){return Vk=Object.assign?Object.assign.bind():function(e){for(var t=1;t'),!0):t?e.some(function(n){return t.includes(n)})||e.includes("*"):!0}var ike=function(t,n,r){r===void 0&&(r=!1);var i=n.alt,o=n.meta,a=n.mod,s=n.shift,l=n.ctrl,u=n.keys,d=t.key,h=t.code,m=t.ctrlKey,y=t.metaKey,b=t.shiftKey,w=t.altKey,E=kd(h),_=d.toLowerCase();if(!r){if(i===!w&&_!=="alt"||s===!b&&_!=="shift")return!1;if(a){if(!y&&!m)return!1}else if(o===!y&&_!=="meta"||l===!m&&_!=="ctrl")return!1}return u&&u.length===1&&(u.includes(_)||u.includes(E))?!0:u?J_e(u):!u},oke=S.createContext(void 0),ake=function(){return S.useContext(oke)};function XV(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce(function(n,r){return n&&XV(e[r],t[r])},!0):e===t}var ske=S.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),lke=function(){return S.useContext(ske)};function uke(e){var t=S.useRef(void 0);return XV(t.current,e)||(t.current=e),t.current}var LI=function(t){t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},cke=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Je(e,t,n,r){var i=S.useRef(null),o=S.useRef(!1),a=n instanceof Array?r instanceof Array?void 0:r:n,s=n instanceof Array?n:r instanceof Array?r:void 0,l=S.useCallback(t,s??[]),u=S.useRef(l);s?u.current=l:u.current=t;var d=uke(a),h=lke(),m=h.enabledScopes,y=ake();return cke(function(){if(!((d==null?void 0:d.enabled)===!1||!rke(m,d==null?void 0:d.scopes))){var b=function(k,T){var L;if(T===void 0&&(T=!1),!(nke(k)&&!YV(k,d==null?void 0:d.enableOnFormTags))){if(i.current!==null&&document.activeElement!==i.current&&!i.current.contains(document.activeElement)){LI(k);return}(L=k.target)!=null&&L.isContentEditable&&!(d!=null&&d.enableOnContentEditable)||XC(e,d==null?void 0:d.splitKey).forEach(function(O){var D,I=ZC(O,d==null?void 0:d.combinationKey);if(ike(k,I,d==null?void 0:d.ignoreModifiers)||(D=I.keys)!=null&&D.includes("*")){if(T&&o.current)return;if(eke(k,I,d==null?void 0:d.preventDefault),!tke(k,I,d==null?void 0:d.enabled)){LI(k);return}u.current(k,I),T||(o.current=!0)}})}},w=function(k){k.key!==void 0&&(qV(kd(k.code)),((d==null?void 0:d.keydown)===void 0&&(d==null?void 0:d.keyup)!==!0||d!=null&&d.keydown)&&b(k))},E=function(k){k.key!==void 0&&(KV(kd(k.code)),o.current=!1,d!=null&&d.keyup&&b(k,!0))};return(i.current||(a==null?void 0:a.document)||document).addEventListener("keyup",E),(i.current||(a==null?void 0:a.document)||document).addEventListener("keydown",w),y&&XC(e,d==null?void 0:d.splitKey).forEach(function(_){return y.addHotkey(ZC(_,d==null?void 0:d.combinationKey))}),function(){(i.current||(a==null?void 0:a.document)||document).removeEventListener("keyup",E),(i.current||(a==null?void 0:a.document)||document).removeEventListener("keydown",w),y&&XC(e,d==null?void 0:d.splitKey).forEach(function(_){return y.removeHotkey(ZC(_,d==null?void 0:d.combinationKey))})}}},[e,d,m]),i}function dke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"}}]})(e)}function fke(e){return ut({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"}}]})(e)}function hke(e){return ut({tag:"svg",attr:{viewBox:"0 0 320 512"},child:[{tag:"path",attr:{d:"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"}}]})(e)}function ZV(e){return ut({tag:"svg",attr:{viewBox:"0 0 256 512"},child:[{tag:"path",attr:{d:"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"}}]})(e)}function QV(e){return ut({tag:"svg",attr:{viewBox:"0 0 256 512"},child:[{tag:"path",attr:{d:"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"}}]})(e)}function pke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"}}]})(e)}function gke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"}}]})(e)}function JV(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"}}]})(e)}function mke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"}}]})(e)}function vke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"}}]})(e)}function jE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"}}]})(e)}function eG(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"}}]})(e)}function e0(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"}}]})(e)}function tG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"}}]})(e)}function yke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"}}]})(e)}function NE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"}}]})(e)}function nG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"}}]})(e)}function bke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"}}]})(e)}function xke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"}}]})(e)}function rG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"}}]})(e)}function Ske(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"}}]})(e)}function wke(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"}}]})(e)}function iG(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"}}]})(e)}function Cke(e){return ut({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"}}]})(e)}function _ke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"}}]})(e)}function kke(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"}}]})(e)}function Eke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"}}]})(e)}function oG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"}}]})(e)}function Pke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"}}]})(e)}function Tke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"}}]})(e)}function aG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"}}]})(e)}function Mke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"}}]})(e)}function Lke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"}}]})(e)}function y2(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"}}]})(e)}function Ake(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}function Oke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"}}]})(e)}function Rke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"}}]})(e)}function $E(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"}}]})(e)}function Ike(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"}}]})(e)}function Dke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"}}]})(e)}function AI(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"}}]})(e)}function FE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}}]})(e)}function jke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"}}]})(e)}function hp(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"}}]})(e)}function Nke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"}}]})(e)}function h4(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"}}]})(e)}function $ke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"}}]})(e)}function BE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"}}]})(e)}const rn=e=>e.canvas,Lr=lt([rn,Br,hr],(e,t,n)=>e.layerState.stagingArea.images.length>0||t==="unifiedCanvas"&&n.isProcessing),sG=e=>e.canvas.layerState.objects.find(x3),pp=e=>e.gallery,Fke=lt([pp,d4,Lr,Br],(e,t,n,r)=>{const{categories:i,currentCategory:o,currentImageUuid:a,shouldPinGallery:s,shouldShowGallery:l,galleryScrollPosition:u,galleryImageMinimumWidth:d,galleryImageObjectFit:h,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,galleryWidth:b,shouldUseSingleGalleryColumn:w}=e,{isLightboxOpen:E}=t;return{currentImageUuid:a,shouldPinGallery:s,shouldShowGallery:l,galleryScrollPosition:u,galleryImageMinimumWidth:d,galleryImageObjectFit:h,galleryGridTemplateColumns:w?"auto":`repeat(auto-fill, minmax(${d}px, auto))`,activeTabName:r,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,images:i[o].images,areMoreImagesAvailable:i[o].areMoreImagesAvailable,currentCategory:o,galleryWidth:b,isLightboxOpen:E,isStaging:n,shouldEnableResize:!(E||r==="unifiedCanvas"&&s),shouldUseSingleGalleryColumn:w}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),Bke=lt([pp,hr,d4,Br],(e,t,n,r)=>({mayDeleteImage:t.isConnected&&!t.isProcessing,galleryImageObjectFit:e.galleryImageObjectFit,galleryImageMinimumWidth:e.galleryImageMinimumWidth,shouldUseSingleGalleryColumn:e.shouldUseSingleGalleryColumn,activeTabName:r,isLightboxOpen:n.isLightboxOpen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),zke=lt(hr,e=>{const{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}=e;return{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),A3=S.forwardRef(({image:e,children:t},n)=>{const{isOpen:r,onOpen:i,onClose:o}=Kd(),a=Te(),{shouldConfirmOnDelete:s,isConnected:l,isProcessing:u}=le(zke),d=S.useRef(null),h=b=>{b.stopPropagation(),s?i():m()},m=()=>{l&&!u&&e&&a(c_e(e)),o()};Je("delete",()=>{s?i():m()},[e,s,l,u]);const y=b=>a(IU(!b.target.checked));return g.jsxs(g.Fragment,{children:[S.cloneElement(t,{onClick:e?h:void 0,ref:n}),g.jsx($H,{isOpen:r,leastDestructiveRef:d,onClose:o,children:g.jsx(oc,{children:g.jsxs(FH,{className:"modal",children:[g.jsx(op,{fontSize:"lg",fontWeight:"bold",children:"Delete image"}),g.jsx(Zm,{children:g.jsxs(ke,{direction:"column",gap:5,children:[g.jsx(Dt,{children:"Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to."}),g.jsx(sn,{children:g.jsxs(ke,{alignItems:"center",children:[g.jsx(Sn,{mb:0,children:"Don't ask me again"}),g.jsx(K8,{checked:!s,onChange:y})]})})]})}),g.jsxs(zw,{children:[g.jsx(ss,{ref:d,onClick:o,className:"modal-close-btn",children:"Cancel"}),g.jsx(ss,{colorScheme:"red",onClick:m,ml:3,children:"Delete"})]})]})})})]})});A3.displayName="DeleteImageModal";const zE=()=>{const e=Te();return t=>{const n=typeof t=="string"?t:Rm(t),[r,i]=nU(n);e(uU(r)),e(cU(i))}},Hke=lt([hr,pp,DE,fp,d4,Br],(e,t,n,r,i,o)=>{const{isProcessing:a,isConnected:s,isGFPGANAvailable:l,isESRGANAvailable:u}=e,{upscalingLevel:d,facetoolStrength:h}=n,{isLightboxOpen:m}=i,{shouldShowImageDetails:y}=r,{intermediateImage:b,currentImage:w}=t;return{isProcessing:a,isConnected:s,isGFPGANAvailable:l,isESRGANAvailable:u,upscalingLevel:d,facetoolStrength:h,shouldDisableToolbarButtons:Boolean(b)||!w,currentImage:w,shouldShowImageDetails:y,activeTabName:o,isLightboxOpen:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),lG=()=>{var B,K,ne,z,$,V,X,Q;const e=Te(),{isProcessing:t,isConnected:n,isGFPGANAvailable:r,isESRGANAvailable:i,upscalingLevel:o,facetoolStrength:a,shouldDisableToolbarButtons:s,shouldShowImageDetails:l,currentImage:u,isLightboxOpen:d,activeTabName:h}=le(Hke),m=a2(),{t:y}=De(),b=zE(),w=()=>{u&&(d&&e(Om(!1)),e(y0(u)),e(Wo("img2img")))},E=async()=>{if(!u)return;const G=await fetch(u.url).then(ee=>ee.blob()),Y=[new ClipboardItem({[G.type]:G})];await navigator.clipboard.write(Y),m({title:y("toast.imageCopied"),status:"success",duration:2500,isClosable:!0})},_=()=>{navigator.clipboard.writeText(u?window.location.toString()+u.url:"").then(()=>{m({title:y("toast.imageLinkCopied"),status:"success",duration:2500,isClosable:!0})})};Je("shift+i",()=>{u?(w(),m({title:y("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.imageNotLoaded"),description:y("toast.imageNotLoadedDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const k=()=>{var G,Y;u&&(u.metadata&&e(aU(u.metadata)),((G=u.metadata)==null?void 0:G.image.type)==="img2img"?e(Wo("img2img")):((Y=u.metadata)==null?void 0:Y.image.type)==="txt2img"&&e(Wo("txt2img")))};Je("a",()=>{var G,Y;["txt2img","img2img"].includes((Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)==null?void 0:Y.type)?(k(),m({title:y("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.parametersNotSet"),description:y("toast.parametersNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const T=()=>{u!=null&&u.metadata&&e(p2(u.metadata.image.seed))};Je("s",()=>{var G,Y;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.seed?(T(),m({title:y("toast.seedSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.seedNotSet"),description:y("toast.seedNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const L=S.useCallback(()=>{var G,Y,ee,fe;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.prompt&&b((fe=(ee=u==null?void 0:u.metadata)==null?void 0:ee.image)==null?void 0:fe.prompt)},[(K=(B=u==null?void 0:u.metadata)==null?void 0:B.image)==null?void 0:K.prompt,b]);Je("p",()=>{var G,Y;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.prompt?(L(),m({title:y("toast.promptSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.promptNotSet"),description:y("toast.promptNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const O=()=>{u&&e(l_e(u))};Je("Shift+U",()=>{i&&!s&&n&&!t&&o?O():m({title:y("toast.upscalingFailed"),status:"error",duration:2500,isClosable:!0})},[u,i,s,n,t,o]);const D=()=>{u&&e(u_e(u))};Je("Shift+R",()=>{r&&!s&&n&&!t&&a?D():m({title:y("toast.faceRestoreFailed"),status:"error",duration:2500,isClosable:!0})},[u,r,s,n,t,a]);const I=()=>e(FU(!l)),N=()=>{u&&(d&&e(Om(!1)),e(i4(u)),e(Li(!0)),h!=="unifiedCanvas"&&e(Wo("unifiedCanvas")),m({title:y("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0}))};Je("i",()=>{u?I():m({title:y("toast.metadataLoadFailed"),status:"error",duration:2500,isClosable:!0})},[u,l]);const W=()=>{e(Om(!d))};return g.jsxs("div",{className:"current-image-options",children:[g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":`${y("parameters.sendTo")}...`,icon:g.jsx(Dke,{})}),children:g.jsxs("div",{className:"current-image-send-to-popover",children:[g.jsx(On,{size:"sm",onClick:w,leftIcon:g.jsx(AI,{}),children:y("parameters.sendToImg2Img")}),g.jsx(On,{size:"sm",onClick:N,leftIcon:g.jsx(AI,{}),children:y("parameters.sendToUnifiedCanvas")}),g.jsx(On,{size:"sm",onClick:E,leftIcon:g.jsx(e0,{}),children:y("parameters.copyImage")}),g.jsx(On,{size:"sm",onClick:_,leftIcon:g.jsx(e0,{}),children:y("parameters.copyImageToLink")}),g.jsx(Nh,{download:!0,href:u==null?void 0:u.url,children:g.jsx(On,{leftIcon:g.jsx(NE,{}),size:"sm",w:"100%",children:y("parameters.downloadImage")})})]})}),g.jsx(Ye,{icon:g.jsx(xke,{}),tooltip:d?`${y("parameters.closeViewer")} (Z)`:`${y("parameters.openInViewer")} (Z)`,"aria-label":d?`${y("parameters.closeViewer")} (Z)`:`${y("parameters.openInViewer")} (Z)`,"data-selected":d,onClick:W})]}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{icon:g.jsx(Ake,{}),tooltip:`${y("parameters.usePrompt")} (P)`,"aria-label":`${y("parameters.usePrompt")} (P)`,isDisabled:!((z=(ne=u==null?void 0:u.metadata)==null?void 0:ne.image)!=null&&z.prompt),onClick:L}),g.jsx(Ye,{icon:g.jsx(Ike,{}),tooltip:`${y("parameters.useSeed")} (S)`,"aria-label":`${y("parameters.useSeed")} (S)`,isDisabled:!((V=($=u==null?void 0:u.metadata)==null?void 0:$.image)!=null&&V.seed),onClick:T}),g.jsx(Ye,{icon:g.jsx(mke,{}),tooltip:`${y("parameters.useAll")} (A)`,"aria-label":`${y("parameters.useAll")} (A)`,isDisabled:!["txt2img","img2img"].includes((Q=(X=u==null?void 0:u.metadata)==null?void 0:X.image)==null?void 0:Q.type),onClick:k})]}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{icon:g.jsx(Cke,{}),"aria-label":y("parameters.restoreFaces")}),children:g.jsxs("div",{className:"current-image-postprocessing-popover",children:[g.jsx(RE,{}),g.jsx(On,{isDisabled:!r||!u||!(n&&!t)||!a,onClick:D,children:y("parameters.restoreFaces")})]})}),g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{icon:g.jsx(bke,{}),"aria-label":y("parameters.upscale")}),children:g.jsxs("div",{className:"current-image-postprocessing-popover",children:[g.jsx(IE,{}),g.jsx(On,{isDisabled:!i||!u||!(n&&!t)||!o,onClick:O,children:y("parameters.upscaleImage")})]})})]}),g.jsx(Gi,{isAttached:!0,children:g.jsx(Ye,{icon:g.jsx(eG,{}),tooltip:`${y("parameters.info")} (I)`,"aria-label":`${y("parameters.info")} (I)`,"data-selected":l,onClick:I})}),g.jsx(A3,{image:u,children:g.jsx(Ye,{icon:g.jsx(hp,{}),tooltip:`${y("parameters.deleteImage")} (Del)`,"aria-label":`${y("parameters.deleteImage")} (Del)`,isDisabled:!u||!n||t,style:{backgroundColor:"var(--btn-delete-image)"}})})]})};var Wke=fc({displayName:"EditIcon",path:g.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[g.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),g.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),uG=fc({displayName:"ExternalLinkIcon",path:g.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[g.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),g.jsx("path",{d:"M15 3h6v6"}),g.jsx("path",{d:"M10 14L21 3"})]})}),Uke=fc({displayName:"DeleteIcon",path:g.jsx("g",{fill:"currentColor",children:g.jsx("path",{d:"M19.452 7.5H4.547a.5.5 0 00-.5.545l1.287 14.136A2 2 0 007.326 24h9.347a2 2 0 001.992-1.819L19.95 8.045a.5.5 0 00-.129-.382.5.5 0 00-.369-.163zm-9.2 13a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zm5 0a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zM22 4h-4.75a.25.25 0 01-.25-.25V2.5A2.5 2.5 0 0014.5 0h-5A2.5 2.5 0 007 2.5v1.25a.25.25 0 01-.25.25H2a1 1 0 000 2h20a1 1 0 000-2zM9 3.75V2.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v1.25a.25.25 0 01-.25.25h-5.5A.25.25 0 019 3.75z"})})});function Vke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z"}},{tag:"path",attr:{fill:"none",strokeMiterlimit:"10",strokeWidth:"32",d:"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z"}}]})(e)}const Jn=({label:e,value:t,onClick:n,isLink:r,labelPosition:i,withCopy:o=!1})=>g.jsxs(ke,{gap:2,children:[n&&g.jsx(si,{label:`Recall ${e}`,children:g.jsx(ls,{"aria-label":"Use this parameter",icon:g.jsx(Vke,{}),size:"xs",variant:"ghost",fontSize:20,onClick:n})}),o&&g.jsx(si,{label:`Copy ${e}`,children:g.jsx(ls,{"aria-label":`Copy ${e}`,icon:g.jsx(e0,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(t.toString())})}),g.jsxs(ke,{direction:i?"column":"row",children:[g.jsxs(Dt,{fontWeight:"semibold",whiteSpace:"pre-wrap",pr:2,children:[e,":"]}),r?g.jsxs(Nh,{href:t.toString(),isExternal:!0,wordBreak:"break-all",children:[t.toString()," ",g.jsx(uG,{mx:"2px"})]}):g.jsx(Dt,{overflowY:"scroll",wordBreak:"break-all",children:t.toString()})]})]}),Gke=(e,t)=>e.image.uuid===t.image.uuid,HE=S.memo(({image:e,styleClass:t})=>{var B,K;const n=Te(),r=zE();Je("esc",()=>{n(FU(!1))});const i=((B=e==null?void 0:e.metadata)==null?void 0:B.image)||{},o=e==null?void 0:e.dreamPrompt,{cfg_scale:a,fit:s,height:l,hires_fix:u,init_image_path:d,mask_image_path:h,orig_path:m,perlin:y,postprocessing:b,prompt:w,sampler:E,seamless:_,seed:k,steps:T,strength:L,threshold:O,type:D,variations:I,width:N}=i,W=JSON.stringify(e.metadata,null,2);return g.jsx("div",{className:`image-metadata-viewer ${t}`,children:g.jsxs(ke,{gap:1,direction:"column",width:"100%",children:[g.jsxs(ke,{gap:2,children:[g.jsx(Dt,{fontWeight:"semibold",children:"File:"}),g.jsxs(Nh,{href:e.url,isExternal:!0,maxW:"calc(100% - 3rem)",children:[e.url.length>64?e.url.substring(0,64).concat("..."):e.url,g.jsx(uG,{mx:"2px"})]})]}),Object.keys(i).length>0?g.jsxs(g.Fragment,{children:[D&&g.jsx(Jn,{label:"Generation type",value:D}),((K=e.metadata)==null?void 0:K.model_weights)&&g.jsx(Jn,{label:"Model",value:e.metadata.model_weights}),["esrgan","gfpgan"].includes(D)&&g.jsx(Jn,{label:"Original image",value:m}),w&&g.jsx(Jn,{label:"Prompt",labelPosition:"top",value:typeof w=="string"?w:Rm(w),onClick:()=>r(w)}),k!==void 0&&g.jsx(Jn,{label:"Seed",value:k,onClick:()=>n(p2(k))}),O!==void 0&&g.jsx(Jn,{label:"Noise Threshold",value:O,onClick:()=>n(bk(O))}),y!==void 0&&g.jsx(Jn,{label:"Perlin Noise",value:y,onClick:()=>n(vk(y))}),E&&g.jsx(Jn,{label:"Sampler",value:E,onClick:()=>n(dU(E))}),T&&g.jsx(Jn,{label:"Steps",value:T,onClick:()=>n(yk(T))}),a!==void 0&&g.jsx(Jn,{label:"CFG scale",value:a,onClick:()=>n(gk(a))}),I&&I.length>0&&g.jsx(Jn,{label:"Seed-weight pairs",value:_3(I),onClick:()=>n(hU(_3(I)))}),_&&g.jsx(Jn,{label:"Seamless",value:_,onClick:()=>n(fU(_))}),u&&g.jsx(Jn,{label:"High Resolution Optimization",value:u,onClick:()=>n(vU(u))}),N&&g.jsx(Jn,{label:"Width",value:N,onClick:()=>n(cS(N))}),l&&g.jsx(Jn,{label:"Height",value:l,onClick:()=>n(uS(l))}),d&&g.jsx(Jn,{label:"Initial image",value:d,isLink:!0,onClick:()=>n(y0(d))}),h&&g.jsx(Jn,{label:"Mask image",value:h,isLink:!0,onClick:()=>n(lU(h))}),D==="img2img"&&L&&g.jsx(Jn,{label:"Image to image strength",value:L,onClick:()=>n(mk(L))}),s&&g.jsx(Jn,{label:"Image to image fit",value:s,onClick:()=>n(pU(s))}),b&&b.length>0&&g.jsxs(g.Fragment,{children:[g.jsx(jh,{size:"sm",children:"Postprocessing"}),b.map((ne,z)=>{if(ne.type==="esrgan"){const{scale:$,strength:V,denoise_str:X}=ne;return g.jsxs(ke,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Dt,{size:"md",children:`${z+1}: Upscale (ESRGAN)`}),g.jsx(Jn,{label:"Scale",value:$,onClick:()=>n(yU($))}),g.jsx(Jn,{label:"Strength",value:V,onClick:()=>n(wk(V))}),X!==void 0&&g.jsx(Jn,{label:"Denoising strength",value:X,onClick:()=>n(Sk(X))})]},z)}else if(ne.type==="gfpgan"){const{strength:$}=ne;return g.jsxs(ke,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Dt,{size:"md",children:`${z+1}: Face restoration (GFPGAN)`}),g.jsx(Jn,{label:"Strength",value:$,onClick:()=>{n(k3($)),n(dS("gfpgan"))}})]},z)}else if(ne.type==="codeformer"){const{strength:$,fidelity:V}=ne;return g.jsxs(ke,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Dt,{size:"md",children:`${z+1}: Face restoration (Codeformer)`}),g.jsx(Jn,{label:"Strength",value:$,onClick:()=>{n(k3($)),n(dS("codeformer"))}}),V&&g.jsx(Jn,{label:"Fidelity",value:V,onClick:()=>{n(xk(V)),n(dS("codeformer"))}})]},z)}})]}),o&&g.jsx(Jn,{withCopy:!0,label:"Dream Prompt",value:o}),g.jsxs(ke,{gap:2,direction:"column",children:[g.jsxs(ke,{gap:2,children:[g.jsx(si,{label:"Copy metadata JSON",children:g.jsx(ls,{"aria-label":"Copy metadata JSON",icon:g.jsx(e0,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(W)})}),g.jsx(Dt,{fontWeight:"semibold",children:"Metadata JSON:"})]}),g.jsx("div",{className:"image-json-viewer",children:g.jsx("pre",{children:W})})]})]}):g.jsx(aH,{width:"100%",pt:10,children:g.jsx(Dt,{fontSize:"lg",fontWeight:"semibold",children:"No metadata available"})})]})})},Gke);HE.displayName="ImageMetadataViewer";const cG=lt([pp,fp],(e,t)=>{const{currentCategory:n,currentImage:r,intermediateImage:i}=e,{shouldShowImageDetails:o}=t,a=e.categories[r?r.category:"result"].images,s=a.findIndex(u=>{var d;return u.uuid===((d=e==null?void 0:e.currentImage)==null?void 0:d.uuid)}),l=a.length;return{imageToDisplay:i||r,isIntermediate:Boolean(i),viewerImageToDisplay:r,currentCategory:n,isOnFirstImage:s===0,isOnLastImage:!isNaN(s)&&s===l-1,shouldShowImageDetails:o,shouldShowPrevImageButton:s===0,shouldShowNextImageButton:!isNaN(s)&&s===l-1}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function qke(){const e=Te(),{isOnFirstImage:t,isOnLastImage:n,shouldShowImageDetails:r,imageToDisplay:i,isIntermediate:o}=le(cG),[a,s]=S.useState(!1),l=()=>{s(!0)},u=()=>{s(!1)},d=()=>{e(vE())},h=()=>{e(mE())};return g.jsxs("div",{className:"current-image-preview",children:[i&&g.jsx(jw,{src:i.url,width:i.width,height:i.height,style:{imageRendering:o?"pixelated":"initial"}}),!r&&g.jsxs("div",{className:"current-image-next-prev-buttons",children:[g.jsx("div",{className:"next-prev-button-trigger-area prev-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!t&&g.jsx(ls,{"aria-label":"Previous image",icon:g.jsx(ZV,{className:"next-prev-button"}),variant:"unstyled",onClick:d})}),g.jsx("div",{className:"next-prev-button-trigger-area next-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!n&&g.jsx(ls,{"aria-label":"Next image",icon:g.jsx(QV,{className:"next-prev-button"}),variant:"unstyled",onClick:h})})]}),r&&i&&g.jsx(HE,{image:i,styleClass:"current-image-metadata"})]})}var Kke=globalThis&&globalThis.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),ni=globalThis&&globalThis.__assign||function(){return ni=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u"?void 0:Number(r),maxHeight:typeof i>"u"?void 0:Number(i),minWidth:typeof o>"u"?void 0:Number(o),minHeight:typeof a>"u"?void 0:Number(a)}},t7e=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],jI="__resizable_base__",dG=function(e){Zke(t,e);function t(n){var r=e.call(this,n)||this;return r.ratio=1,r.resizable=null,r.parentLeft=0,r.parentTop=0,r.resizableLeft=0,r.resizableRight=0,r.resizableTop=0,r.resizableBottom=0,r.targetLeft=0,r.targetTop=0,r.appendBase=function(){if(!r.resizable||!r.window)return null;var i=r.parentNode;if(!i)return null;var o=r.window.document.createElement("div");return o.style.width="100%",o.style.height="100%",o.style.position="absolute",o.style.transform="scale(0, 0)",o.style.left="0",o.style.flex="0 0 100%",o.classList?o.classList.add(jI):o.className+=jI,i.appendChild(o),o},r.removeBase=function(i){var o=r.parentNode;o&&o.removeChild(i)},r.ref=function(i){i&&(r.resizable=i)},r.state={isResizing:!1,width:typeof(r.propsSize&&r.propsSize.width)>"u"?"auto":r.propsSize&&r.propsSize.width,height:typeof(r.propsSize&&r.propsSize.height)>"u"?"auto":r.propsSize&&r.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},r.onResizeStart=r.onResizeStart.bind(r),r.onMouseMove=r.onMouseMove.bind(r),r.onMouseUp=r.onMouseUp.bind(r),r}return Object.defineProperty(t.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||Qke},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){var n=0,r=0;if(this.resizable&&this.window){var i=this.resizable.offsetWidth,o=this.resizable.offsetHeight,a=this.resizable.style.position;a!=="relative"&&(this.resizable.style.position="relative"),n=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:i,r=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:o,this.resizable.style.position=a}return{width:n,height:r}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sizeStyle",{get:function(){var n=this,r=this.props.size,i=function(s){if(typeof n.state[s]>"u"||n.state[s]==="auto")return"auto";if(n.propsSize&&n.propsSize[s]&&n.propsSize[s].toString().endsWith("%")){if(n.state[s].toString().endsWith("%"))return n.state[s].toString();var l=n.getParentSize(),u=Number(n.state[s].toString().replace("px","")),d=u/l[s]*100;return d+"%"}return QC(n.state[s])},o=r&&typeof r.width<"u"&&!this.state.isResizing?QC(r.width):i("width"),a=r&&typeof r.height<"u"&&!this.state.isResizing?QC(r.height):i("height");return{width:o,height:a}},enumerable:!1,configurable:!0}),t.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var n=this.appendBase();if(!n)return{width:0,height:0};var r=!1,i=this.parentNode.style.flexWrap;i!=="wrap"&&(r=!0,this.parentNode.style.flexWrap="wrap"),n.style.position="relative",n.style.minWidth="100%",n.style.minHeight="100%";var o={width:n.offsetWidth,height:n.offsetHeight};return r&&(this.parentNode.style.flexWrap=i),this.removeBase(n),o},t.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},t.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},t.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var n=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:n.flexBasis!=="auto"?n.flexBasis:void 0})}},t.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},t.prototype.createSizeForCssProperty=function(n,r){var i=this.propsSize&&this.propsSize[r];return this.state[r]==="auto"&&this.state.original[r]===n&&(typeof i>"u"||i==="auto")?"auto":n},t.prototype.calculateNewMaxFromBoundary=function(n,r){var i=this.props.boundsByDirection,o=this.state.direction,a=i&&Ig("left",o),s=i&&Ig("top",o),l,u;if(this.props.bounds==="parent"){var d=this.parentNode;d&&(l=a?this.resizableRight-this.parentLeft:d.offsetWidth+(this.parentLeft-this.resizableLeft),u=s?this.resizableBottom-this.parentTop:d.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(l=a?this.resizableRight:this.window.innerWidth-this.resizableLeft,u=s?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(l=a?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),u=s?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return l&&Number.isFinite(l)&&(n=n&&n"u"?10:o.width,h=typeof i.width>"u"||i.width<0?n:i.width,m=typeof o.height>"u"?10:o.height,y=typeof i.height>"u"||i.height<0?r:i.height,b=l||0,w=u||0;if(s){var E=(m-b)*this.ratio+w,_=(y-b)*this.ratio+w,k=(d-w)/this.ratio+b,T=(h-w)/this.ratio+b,L=Math.max(d,E),O=Math.min(h,_),D=Math.max(m,k),I=Math.min(y,T);n=yx(n,L,O),r=yx(r,D,I)}else n=yx(n,d,h),r=yx(r,m,y);return{newWidth:n,newHeight:r}},t.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var n=this.parentNode;if(n){var r=n.getBoundingClientRect();this.parentLeft=r.left,this.parentTop=r.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var i=this.props.bounds.getBoundingClientRect();this.targetLeft=i.left,this.targetTop=i.top}if(this.resizable){var o=this.resizable.getBoundingClientRect(),a=o.left,s=o.top,l=o.right,u=o.bottom;this.resizableLeft=a,this.resizableRight=l,this.resizableTop=s,this.resizableBottom=u}},t.prototype.onResizeStart=function(n,r){if(!(!this.resizable||!this.window)){var i=0,o=0;if(n.nativeEvent&&Jke(n.nativeEvent)?(i=n.nativeEvent.clientX,o=n.nativeEvent.clientY):n.nativeEvent&&bx(n.nativeEvent)&&(i=n.nativeEvent.touches[0].clientX,o=n.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var a=this.props.onResizeStart(n,r,this.resizable);if(a===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var s,l=this.window.getComputedStyle(this.resizable);if(l.flexBasis!=="auto"){var u=this.parentNode;if(u){var d=this.window.getComputedStyle(u).flexDirection;this.flexDir=d.startsWith("row")?"row":"column",s=l.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var h={original:{x:i,y:o,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:Ol(Ol({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(n.target).cursor||"auto"}),direction:r,flexBasis:s};this.setState(h)}},t.prototype.onMouseMove=function(n){var r=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&bx(n))try{n.preventDefault(),n.stopPropagation()}catch{}var i=this.props,o=i.maxWidth,a=i.maxHeight,s=i.minWidth,l=i.minHeight,u=bx(n)?n.touches[0].clientX:n.clientX,d=bx(n)?n.touches[0].clientY:n.clientY,h=this.state,m=h.direction,y=h.original,b=h.width,w=h.height,E=this.getParentSize(),_=e7e(E,this.window.innerWidth,this.window.innerHeight,o,a,s,l);o=_.maxWidth,a=_.maxHeight,s=_.minWidth,l=_.minHeight;var k=this.calculateNewSizeFromDirection(u,d),T=k.newHeight,L=k.newWidth,O=this.calculateNewMaxFromBoundary(o,a);this.props.snap&&this.props.snap.x&&(L=DI(L,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(T=DI(T,this.props.snap.y,this.props.snapGap));var D=this.calculateNewSizeFromAspectRatio(L,T,{width:O.maxWidth,height:O.maxHeight},{width:s,height:l});if(L=D.newWidth,T=D.newHeight,this.props.grid){var I=II(L,this.props.grid[0]),N=II(T,this.props.grid[1]),W=this.props.snapGap||0;L=W===0||Math.abs(I-L)<=W?I:L,T=W===0||Math.abs(N-T)<=W?N:T}var B={width:L-y.width,height:T-y.height};if(b&&typeof b=="string"){if(b.endsWith("%")){var K=L/E.width*100;L=K+"%"}else if(b.endsWith("vw")){var ne=L/this.window.innerWidth*100;L=ne+"vw"}else if(b.endsWith("vh")){var z=L/this.window.innerHeight*100;L=z+"vh"}}if(w&&typeof w=="string"){if(w.endsWith("%")){var K=T/E.height*100;T=K+"%"}else if(w.endsWith("vw")){var ne=T/this.window.innerWidth*100;T=ne+"vw"}else if(w.endsWith("vh")){var z=T/this.window.innerHeight*100;T=z+"vh"}}var $={width:this.createSizeForCssProperty(L,"width"),height:this.createSizeForCssProperty(T,"height")};this.flexDir==="row"?$.flexBasis=$.width:this.flexDir==="column"&&($.flexBasis=$.height),Xs.flushSync(function(){r.setState($)}),this.props.onResize&&this.props.onResize(n,m,this.resizable,B)}},t.prototype.onMouseUp=function(n){var r=this.state,i=r.isResizing,o=r.direction,a=r.original;if(!(!i||!this.resizable)){var s={width:this.size.width-a.width,height:this.size.height-a.height};this.props.onResizeStop&&this.props.onResizeStop(n,o,this.resizable,s),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:Ol(Ol({},this.state.backgroundStyle),{cursor:"auto"})})}},t.prototype.updateSize=function(n){this.setState({width:n.width,height:n.height})},t.prototype.renderResizer=function(){var n=this,r=this.props,i=r.enable,o=r.handleStyles,a=r.handleClasses,s=r.handleWrapperStyle,l=r.handleWrapperClass,u=r.handleComponent;if(!i)return null;var d=Object.keys(i).map(function(h){return i[h]!==!1?S.createElement(Xke,{key:h,direction:h,onResizeStart:n.onResizeStart,replaceStyles:o&&o[h],className:a&&a[h]},u&&u[h]?u[h]:null):null});return S.createElement("div",{className:l,style:s},d)},t.prototype.render=function(){var n=this,r=Object.keys(this.props).reduce(function(a,s){return t7e.indexOf(s)!==-1||(a[s]=n.props[s]),a},{}),i=Ol(Ol(Ol({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(i.flexBasis=this.state.flexBasis);var o=this.props.as||"div";return S.createElement(o,Ol({ref:this.ref,style:i,className:this.props.className},r),this.state.isResizing&&S.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},t.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},t}(S.PureComponent);const Gn=e=>{const{label:t,styleClass:n,...r}=e;return g.jsx(dz,{className:`invokeai__checkbox ${n}`,...r,children:t})};function fG(e){return ut({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146z"}}]})(e)}function hG(e){return ut({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146zm.122 2.112v-.002.002zm0-.002v.002a.5.5 0 0 1-.122.51L6.293 6.878a.5.5 0 0 1-.511.12H5.78l-.014-.004a4.507 4.507 0 0 0-.288-.076 4.922 4.922 0 0 0-.765-.116c-.422-.028-.836.008-1.175.15l5.51 5.509c.141-.34.177-.753.149-1.175a4.924 4.924 0 0 0-.192-1.054l-.004-.013v-.001a.5.5 0 0 1 .12-.512l3.536-3.535a.5.5 0 0 1 .532-.115l.096.022c.087.017.208.034.344.034.114 0 .23-.011.343-.04L9.927 2.028c-.029.113-.04.23-.04.343a1.779 1.779 0 0 0 .062.46z"}}]})(e)}function n7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l9 2-9 2 .01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zm0 13c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z"}},{tag:"path",attr:{d:"M18.27 14.03l-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z"}}]})(e)}function r7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"}}]})(e)}function i7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}}]})(e)}function o7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 00.12-.61l-1.92-3.32a.488.488 0 00-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 00-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 00-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}}]})(e)}function a7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"}}]})(e)}function pG(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"}}]})(e)}function s7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"}}]})(e)}function l7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 10l5 5 5-5z"}}]})(e)}function u7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 14l5-5 5 5z"}}]})(e)}function c7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}}]})(e)}function d7e(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function f7e(e,t){e.classList?e.classList.add(t):d7e(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function NI(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function h7e(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=NI(e.className,t):e.setAttribute("class",NI(e.className&&e.className.baseVal||"",t))}const $I={disabled:!1},gG=Ke.createContext(null);var mG=function(t){return t.scrollTop},S1="unmounted",ph="exited",gh="entering",Fg="entered",Gk="exiting",mc=function(e){b8(t,e);function t(r,i){var o;o=e.call(this,r,i)||this;var a=i,s=a&&!a.isMounting?r.enter:r.appear,l;return o.appearStatus=null,r.in?s?(l=ph,o.appearStatus=gh):l=Fg:r.unmountOnExit||r.mountOnEnter?l=S1:l=ph,o.state={status:l},o.nextCallback=null,o}t.getDerivedStateFromProps=function(i,o){var a=i.in;return a&&o.status===S1?{status:ph}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var o=null;if(i!==this.props){var a=this.state.status;this.props.in?a!==gh&&a!==Fg&&(o=gh):(a===gh||a===Fg)&&(o=Gk)}this.updateStatus(!1,o)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,o,a,s;return o=a=s=i,i!=null&&typeof i!="number"&&(o=i.exit,a=i.enter,s=i.appear!==void 0?i.appear:a),{exit:o,enter:a,appear:s}},n.updateStatus=function(i,o){if(i===void 0&&(i=!1),o!==null)if(this.cancelNextCallback(),o===gh){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:Ob.findDOMNode(this);a&&mG(a)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===ph&&this.setState({status:S1})},n.performEnter=function(i){var o=this,a=this.props.enter,s=this.context?this.context.isMounting:i,l=this.props.nodeRef?[s]:[Ob.findDOMNode(this),s],u=l[0],d=l[1],h=this.getTimeouts(),m=s?h.appear:h.enter;if(!i&&!a||$I.disabled){this.safeSetState({status:Fg},function(){o.props.onEntered(u)});return}this.props.onEnter(u,d),this.safeSetState({status:gh},function(){o.props.onEntering(u,d),o.onTransitionEnd(m,function(){o.safeSetState({status:Fg},function(){o.props.onEntered(u,d)})})})},n.performExit=function(){var i=this,o=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:Ob.findDOMNode(this);if(!o||$I.disabled){this.safeSetState({status:ph},function(){i.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Gk},function(){i.props.onExiting(s),i.onTransitionEnd(a.exit,function(){i.safeSetState({status:ph},function(){i.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,o){o=this.setNextCallback(o),this.setState(i,o)},n.setNextCallback=function(i){var o=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,o.nextCallback=null,i(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(i,o){this.setNextCallback(o);var a=this.props.nodeRef?this.props.nodeRef.current:Ob.findDOMNode(this),s=i==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],u=l[0],d=l[1];this.props.addEndListener(u,d)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===S1)return null;var o=this.props,a=o.children;o.in,o.mountOnEnter,o.unmountOnExit,o.appear,o.enter,o.exit,o.timeout,o.addEndListener,o.onEnter,o.onEntering,o.onEntered,o.onExit,o.onExiting,o.onExited,o.nodeRef;var s=m8(o,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Ke.createElement(gG.Provider,{value:null},typeof a=="function"?a(i,s):Ke.cloneElement(Ke.Children.only(a),s))},t}(Ke.Component);mc.contextType=gG;mc.propTypes={};function Dg(){}mc.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Dg,onEntering:Dg,onEntered:Dg,onExit:Dg,onExiting:Dg,onExited:Dg};mc.UNMOUNTED=S1;mc.EXITED=ph;mc.ENTERING=gh;mc.ENTERED=Fg;mc.EXITING=Gk;const p7e=mc;var g7e=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return f7e(t,r)})},JC=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return h7e(t,r)})},WE=function(e){b8(t,e);function t(){for(var r,i=arguments.length,o=new Array(i),a=0;ab,Object.values(b));return S.createElement(w.Provider,{value:E},y)}function d(h,m){const y=(m==null?void 0:m[e][l])||s,b=S.useContext(y);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${h}\` must be used within \`${o}\``)}return u.displayName=o+"Provider",[u,d]}const i=()=>{const o=n.map(a=>S.createContext(a));return function(s){const l=(s==null?void 0:s[e])||o;return S.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return i.scopeName=e,[r,m7e(i,...t)]}function m7e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const a=r.reduce((s,{useScope:l,scopeName:u})=>{const h=l(o)[`__scope${u}`];return{...s,...h}},{});return S.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}function v7e(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function yG(...e){return t=>e.forEach(n=>v7e(n,t))}function ds(...e){return S.useCallback(yG(...e),e)}const Fy=S.forwardRef((e,t)=>{const{children:n,...r}=e,i=S.Children.toArray(n),o=i.find(b7e);if(o){const a=o.props.children,s=i.map(l=>l===o?S.Children.count(a)>1?S.Children.only(null):S.isValidElement(a)?a.props.children:null:l);return S.createElement(qk,pn({},r,{ref:t}),S.isValidElement(a)?S.cloneElement(a,void 0,s):null)}return S.createElement(qk,pn({},r,{ref:t}),n)});Fy.displayName="Slot";const qk=S.forwardRef((e,t)=>{const{children:n,...r}=e;return S.isValidElement(n)?S.cloneElement(n,{...x7e(r,n.props),ref:yG(t,n.ref)}):S.Children.count(n)>1?S.Children.only(null):null});qk.displayName="SlotClone";const y7e=({children:e})=>S.createElement(S.Fragment,null,e);function b7e(e){return S.isValidElement(e)&&e.type===y7e}function x7e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...s)=>{o(...s),i(...s)}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}const S7e=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],sc=S7e.reduce((e,t)=>{const n=S.forwardRef((r,i)=>{const{asChild:o,...a}=r,s=o?Fy:t;return S.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),S.createElement(s,pn({},a,{ref:i}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function bG(e,t){e&&Xs.flushSync(()=>e.dispatchEvent(t))}function xG(e){const t=e+"CollectionProvider",[n,r]=b2(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,E=Ke.useRef(null),_=Ke.useRef(new Map).current;return Ke.createElement(i,{scope:b,itemMap:_,collectionRef:E},w)},s=e+"CollectionSlot",l=Ke.forwardRef((y,b)=>{const{scope:w,children:E}=y,_=o(s,w),k=ds(b,_.collectionRef);return Ke.createElement(Fy,{ref:k},E)}),u=e+"CollectionItemSlot",d="data-radix-collection-item",h=Ke.forwardRef((y,b)=>{const{scope:w,children:E,..._}=y,k=Ke.useRef(null),T=ds(b,k),L=o(u,w);return Ke.useEffect(()=>(L.itemMap.set(k,{ref:k,..._}),()=>void L.itemMap.delete(k))),Ke.createElement(Fy,{[d]:"",ref:T},E)});function m(y){const b=o(e+"CollectionConsumer",y);return Ke.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const _=Array.from(E.querySelectorAll(`[${d}]`));return Array.from(b.itemMap.values()).sort((L,O)=>_.indexOf(L.ref.current)-_.indexOf(O.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:l,ItemSlot:h},m,r]}const w7e=S.createContext(void 0);function SG(e){const t=S.useContext(w7e);return e||t||"ltr"}function Js(e){const t=S.useRef(e);return S.useEffect(()=>{t.current=e}),S.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function C7e(e,t=globalThis==null?void 0:globalThis.document){const n=Js(e);S.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r),()=>t.removeEventListener("keydown",r)},[n,t])}const Kk="dismissableLayer.update",_7e="dismissableLayer.pointerDownOutside",k7e="dismissableLayer.focusOutside";let FI;const E7e=S.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),P7e=S.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:s,onDismiss:l,...u}=e,d=S.useContext(E7e),[h,m]=S.useState(null),y=(n=h==null?void 0:h.ownerDocument)!==null&&n!==void 0?n:globalThis==null?void 0:globalThis.document,[,b]=S.useState({}),w=ds(t,N=>m(N)),E=Array.from(d.layers),[_]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),k=E.indexOf(_),T=h?E.indexOf(h):-1,L=d.layersWithOutsidePointerEventsDisabled.size>0,O=T>=k,D=T7e(N=>{const W=N.target,B=[...d.branches].some(K=>K.contains(W));!O||B||(o==null||o(N),s==null||s(N),N.defaultPrevented||l==null||l())},y),I=M7e(N=>{const W=N.target;[...d.branches].some(K=>K.contains(W))||(a==null||a(N),s==null||s(N),N.defaultPrevented||l==null||l())},y);return C7e(N=>{T===d.layers.size-1&&(i==null||i(N),!N.defaultPrevented&&l&&(N.preventDefault(),l()))},y),S.useEffect(()=>{if(h)return r&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(FI=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(h)),d.layers.add(h),BI(),()=>{r&&d.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=FI)}},[h,y,r,d]),S.useEffect(()=>()=>{h&&(d.layers.delete(h),d.layersWithOutsidePointerEventsDisabled.delete(h),BI())},[h,d]),S.useEffect(()=>{const N=()=>b({});return document.addEventListener(Kk,N),()=>document.removeEventListener(Kk,N)},[]),S.createElement(sc.div,pn({},u,{ref:w,style:{pointerEvents:L?O?"auto":"none":void 0,...e.style},onFocusCapture:Kn(e.onFocusCapture,I.onFocusCapture),onBlurCapture:Kn(e.onBlurCapture,I.onBlurCapture),onPointerDownCapture:Kn(e.onPointerDownCapture,D.onPointerDownCapture)}))});function T7e(e,t=globalThis==null?void 0:globalThis.document){const n=Js(e),r=S.useRef(!1),i=S.useRef(()=>{});return S.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let u=function(){wG(_7e,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=u,t.addEventListener("click",i.current,{once:!0})):u()}r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function M7e(e,t=globalThis==null?void 0:globalThis.document){const n=Js(e),r=S.useRef(!1);return S.useEffect(()=>{const i=o=>{o.target&&!r.current&&wG(k7e,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function BI(){const e=new CustomEvent(Kk);document.dispatchEvent(e)}function wG(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?bG(i,o):i.dispatchEvent(o)}let e6=0;function L7e(){S.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:zI()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:zI()),e6++,()=>{e6===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),e6--}},[])}function zI(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}const t6="focusScope.autoFocusOnMount",n6="focusScope.autoFocusOnUnmount",HI={bubbles:!1,cancelable:!0},A7e=S.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=S.useState(null),u=Js(i),d=Js(o),h=S.useRef(null),m=ds(t,w=>l(w)),y=S.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;S.useEffect(()=>{if(r){let w=function(_){if(y.paused||!s)return;const k=_.target;s.contains(k)?h.current=k:mh(h.current,{select:!0})},E=function(_){y.paused||!s||s.contains(_.relatedTarget)||mh(h.current,{select:!0})};return document.addEventListener("focusin",w),document.addEventListener("focusout",E),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",E)}}},[r,s,y.paused]),S.useEffect(()=>{if(s){UI.add(y);const w=document.activeElement;if(!s.contains(w)){const _=new CustomEvent(t6,HI);s.addEventListener(t6,u),s.dispatchEvent(_),_.defaultPrevented||(O7e(N7e(CG(s)),{select:!0}),document.activeElement===w&&mh(s))}return()=>{s.removeEventListener(t6,u),setTimeout(()=>{const _=new CustomEvent(n6,HI);s.addEventListener(n6,d),s.dispatchEvent(_),_.defaultPrevented||mh(w??document.body,{select:!0}),s.removeEventListener(n6,d),UI.remove(y)},0)}}},[s,u,d,y]);const b=S.useCallback(w=>{if(!n&&!r||y.paused)return;const E=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,_=document.activeElement;if(E&&_){const k=w.currentTarget,[T,L]=R7e(k);T&&L?!w.shiftKey&&_===L?(w.preventDefault(),n&&mh(T,{select:!0})):w.shiftKey&&_===T&&(w.preventDefault(),n&&mh(L,{select:!0})):_===k&&w.preventDefault()}},[n,r,y.paused]);return S.createElement(sc.div,pn({tabIndex:-1},a,{ref:m,onKeyDown:b}))});function O7e(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(mh(r,{select:t}),document.activeElement!==n)return}function R7e(e){const t=CG(e),n=WI(t,e),r=WI(t.reverse(),e);return[n,r]}function CG(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function WI(e,t){for(const n of e)if(!I7e(n,{upTo:t}))return n}function I7e(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function D7e(e){return e instanceof HTMLInputElement&&"select"in e}function mh(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&D7e(e)&&t&&e.select()}}const UI=j7e();function j7e(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=VI(e,t),e.unshift(t)},remove(t){var n;e=VI(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function VI(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function N7e(e){return e.filter(t=>t.tagName!=="A")}const Pd=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:()=>{},$7e=p6["useId".toString()]||(()=>{});let F7e=0;function B7e(e){const[t,n]=S.useState($7e());return Pd(()=>{e||n(r=>r??String(F7e++))},[e]),e||(t?`radix-${t}`:"")}function gp(e){return e.split("-")[0]}function x2(e){return e.split("-")[1]}function w0(e){return["top","bottom"].includes(gp(e))?"x":"y"}function UE(e){return e==="y"?"height":"width"}function GI(e,t,n){let{reference:r,floating:i}=e;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=w0(t),l=UE(s),u=r[l]/2-i[l]/2,d=s==="x";let h;switch(gp(t)){case"top":h={x:o,y:r.y-i.height};break;case"bottom":h={x:o,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:a};break;case"left":h={x:r.x-i.width,y:a};break;default:h={x:r.x,y:r.y}}switch(x2(t)){case"start":h[s]-=u*(n&&d?-1:1);break;case"end":h[s]+=u*(n&&d?-1:1)}return h}const z7e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=GI(l,r,s),h=r,m={},y=0;for(let b=0;b({name:"arrow",options:e,async fn(t){const{element:n,padding:r=0}=e??{},{x:i,y:o,placement:a,rects:s,platform:l}=t;if(n==null)return{};const u=_G(r),d={x:i,y:o},h=w0(a),m=x2(a),y=UE(h),b=await l.getDimensions(n),w=h==="y"?"top":"left",E=h==="y"?"bottom":"right",_=s.reference[y]+s.reference[h]-d[h]-s.floating[y],k=d[h]-s.reference[h],T=await(l.getOffsetParent==null?void 0:l.getOffsetParent(n));let L=T?h==="y"?T.clientHeight||0:T.clientWidth||0:0;L===0&&(L=s.floating[y]);const O=_/2-k/2,D=u[w],I=L-b[y]-u[E],N=L/2-b[y]/2+O,W=Yk(D,N,I),B=(m==="start"?u[w]:u[E])>0&&N!==W&&s.reference[y]<=s.floating[y];return{[h]:d[h]-(B?NW7e[t])}function U7e(e,t,n){n===void 0&&(n=!1);const r=x2(e),i=w0(e),o=UE(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=R3(a)),{main:a,cross:R3(a)}}const V7e={start:"end",end:"start"};function KI(e){return e.replace(/start|end/g,t=>V7e[t])}const kG=["top","right","bottom","left"];kG.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);const G7e=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:l}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",flipAlignment:y=!0,...b}=e,w=gp(r),E=h||(w===a||!y?[R3(a)]:function(N){const W=R3(N);return[KI(N),W,KI(W)]}(a)),_=[a,...E],k=await By(t,b),T=[];let L=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&T.push(k[w]),d){const{main:N,cross:W}=U7e(r,o,await(s.isRTL==null?void 0:s.isRTL(l.floating)));T.push(k[N],k[W])}if(L=[...L,{placement:r,overflows:T}],!T.every(N=>N<=0)){var O,D;const N=((O=(D=i.flip)==null?void 0:D.index)!=null?O:0)+1,W=_[N];if(W)return{data:{index:N,overflows:L},reset:{placement:W}};let B="bottom";switch(m){case"bestFit":{var I;const K=(I=L.map(ne=>[ne,ne.overflows.filter(z=>z>0).reduce((z,$)=>z+$,0)]).sort((ne,z)=>ne[1]-z[1])[0])==null?void 0:I[0].placement;K&&(B=K);break}case"initialPlacement":B=a}if(r!==B)return{reset:{placement:B}}}return{}}}};function YI(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function XI(e){return kG.some(t=>e[t]>=0)}const q7e=function(e){let{strategy:t="referenceHidden",...n}=e===void 0?{}:e;return{name:"hide",async fn(r){const{rects:i}=r;switch(t){case"referenceHidden":{const o=YI(await By(r,{...n,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:XI(o)}}}case"escaped":{const o=YI(await By(r,{...n,altBoundary:!0}),i.floating);return{data:{escapedOffsets:o,escaped:XI(o)}}}default:return{}}}}},K7e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,i=await async function(o,a){const{placement:s,platform:l,elements:u}=o,d=await(l.isRTL==null?void 0:l.isRTL(u.floating)),h=gp(s),m=x2(s),y=w0(s)==="x",b=["left","top"].includes(h)?-1:1,w=d&&y?-1:1,E=typeof a=="function"?a(o):a;let{mainAxis:_,crossAxis:k,alignmentAxis:T}=typeof E=="number"?{mainAxis:E,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...E};return m&&typeof T=="number"&&(k=m==="end"?-1*T:T),y?{x:k*w,y:_*b}:{x:_*b,y:k*w}}(t,e);return{x:n+i.x,y:r+i.y,data:i}}}};function EG(e){return e==="x"?"y":"x"}const Y7e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:E=>{let{x:_,y:k}=E;return{x:_,y:k}}},...l}=e,u={x:n,y:r},d=await By(t,l),h=w0(gp(i)),m=EG(h);let y=u[h],b=u[m];if(o){const E=h==="y"?"bottom":"right";y=Yk(y+d[h==="y"?"top":"left"],y,y-d[E])}if(a){const E=m==="y"?"bottom":"right";b=Yk(b+d[m==="y"?"top":"left"],b,b-d[E])}const w=s.fn({...t,[h]:y,[m]:b});return{...w,data:{x:w.x-n,y:w.y-r}}}}},X7e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:u=!0}=e,d={x:n,y:r},h=w0(i),m=EG(h);let y=d[h],b=d[m];const w=typeof s=="function"?s({...o,placement:i}):s,E=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(l){const O=h==="y"?"height":"width",D=o.reference[h]-o.floating[O]+E.mainAxis,I=o.reference[h]+o.reference[O]-E.mainAxis;yI&&(y=I)}if(u){var _,k,T,L;const O=h==="y"?"width":"height",D=["top","left"].includes(gp(i)),I=o.reference[m]-o.floating[O]+(D&&(_=(k=a.offset)==null?void 0:k[m])!=null?_:0)+(D?0:E.crossAxis),N=o.reference[m]+o.reference[O]+(D?0:(T=(L=a.offset)==null?void 0:L[m])!=null?T:0)-(D?E.crossAxis:0);bN&&(b=N)}return{[h]:y,[m]:b}}}},Z7e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:i,elements:o}=t,{apply:a,...s}=e,l=await By(t,s),u=gp(n),d=x2(n);let h,m;u==="top"||u==="bottom"?(h=u,m=d===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?"start":"end")?"left":"right"):(m=u,h=d==="end"?"top":"bottom");const y=vh(l.left,0),b=vh(l.right,0),w=vh(l.top,0),E=vh(l.bottom,0),_={availableHeight:r.floating.height-(["left","right"].includes(n)?2*(w!==0||E!==0?w+E:vh(l.top,l.bottom)):l[h]),availableWidth:r.floating.width-(["top","bottom"].includes(n)?2*(y!==0||b!==0?y+b:vh(l.left,l.right)):l[m])},k=await i.getDimensions(o.floating);a==null||a({...t,..._});const T=await i.getDimensions(o.floating);return k.width!==T.width||k.height!==T.height?{reset:{rects:!0}}:{}}}};function PG(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function vc(e){if(e==null)return window;if(!PG(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function S2(e){return vc(e).getComputedStyle(e)}function Xu(e){return PG(e)?"":e?(e.nodeName||"").toLowerCase():""}function TG(){const e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function ou(e){return e instanceof vc(e).HTMLElement}function ef(e){return e instanceof vc(e).Element}function VE(e){return typeof ShadowRoot>"u"?!1:e instanceof vc(e).ShadowRoot||e instanceof ShadowRoot}function p4(e){const{overflow:t,overflowX:n,overflowY:r}=S2(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function Q7e(e){return["table","td","th"].includes(Xu(e))}function ZI(e){const t=/firefox/i.test(TG()),n=S2(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"}function MG(){return!/^((?!chrome|android).)*safari/i.test(TG())}const QI=Math.min,Y1=Math.max,I3=Math.round;function Zu(e,t,n){var r,i,o,a;t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect();let l=1,u=1;t&&ou(e)&&(l=e.offsetWidth>0&&I3(s.width)/e.offsetWidth||1,u=e.offsetHeight>0&&I3(s.height)/e.offsetHeight||1);const d=ef(e)?vc(e):window,h=!MG()&&n,m=(s.left+(h&&(r=(i=d.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/l,y=(s.top+(h&&(o=(a=d.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,b=s.width/l,w=s.height/u;return{width:b,height:w,top:y,right:m+b,bottom:y+w,left:m,x:m,y}}function zd(e){return(t=e,(t instanceof vc(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function g4(e){return ef(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function LG(e){return Zu(zd(e)).left+g4(e).scrollLeft}function J7e(e,t,n){const r=ou(t),i=zd(t),o=Zu(e,r&&function(l){const u=Zu(l);return I3(u.width)!==l.offsetWidth||I3(u.height)!==l.offsetHeight}(t),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Xu(t)!=="body"||p4(i))&&(a=g4(t)),ou(t)){const l=Zu(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else i&&(s.x=LG(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function AG(e){return Xu(e)==="html"?e:e.assignedSlot||e.parentNode||(VE(e)?e.host:null)||zd(e)}function JI(e){return ou(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function Xk(e){const t=vc(e);let n=JI(e);for(;n&&Q7e(n)&&getComputedStyle(n).position==="static";)n=JI(n);return n&&(Xu(n)==="html"||Xu(n)==="body"&&getComputedStyle(n).position==="static"&&!ZI(n))?t:n||function(r){let i=AG(r);for(VE(i)&&(i=i.host);ou(i)&&!["html","body"].includes(Xu(i));){if(ZI(i))return i;i=i.parentNode}return null}(e)||t}function eD(e){if(ou(e))return{width:e.offsetWidth,height:e.offsetHeight};const t=Zu(e);return{width:t.width,height:t.height}}function OG(e){const t=AG(e);return["html","body","#document"].includes(Xu(t))?e.ownerDocument.body:ou(t)&&p4(t)?t:OG(t)}function D3(e,t){var n;t===void 0&&(t=[]);const r=OG(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=vc(r),a=i?[o].concat(o.visualViewport||[],p4(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(D3(a))}function tD(e,t,n){return t==="viewport"?O3(function(r,i){const o=vc(r),a=zd(r),s=o.visualViewport;let l=a.clientWidth,u=a.clientHeight,d=0,h=0;if(s){l=s.width,u=s.height;const m=MG();(m||!m&&i==="fixed")&&(d=s.offsetLeft,h=s.offsetTop)}return{width:l,height:u,x:d,y:h}}(e,n)):ef(t)?function(r,i){const o=Zu(r,!1,i==="fixed"),a=o.top+r.clientTop,s=o.left+r.clientLeft;return{top:a,left:s,x:s,y:a,right:s+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(t,n):O3(function(r){var i;const o=zd(r),a=g4(r),s=(i=r.ownerDocument)==null?void 0:i.body,l=Y1(o.scrollWidth,o.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),u=Y1(o.scrollHeight,o.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let d=-a.scrollLeft+LG(r);const h=-a.scrollTop;return S2(s||o).direction==="rtl"&&(d+=Y1(o.clientWidth,s?s.clientWidth:0)-l),{width:l,height:u,x:d,y:h}}(zd(e)))}function e9e(e){const t=D3(e),n=["absolute","fixed"].includes(S2(e).position)&&ou(e)?Xk(e):e;return ef(n)?t.filter(r=>ef(r)&&function(i,o){const a=o.getRootNode==null?void 0:o.getRootNode();if(i.contains(o))return!0;if(a&&VE(a)){let s=o;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Xu(r)!=="body"):[]}const t9e={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?e9e(t):[].concat(n),r],a=o[0],s=o.reduce((l,u)=>{const d=tD(t,u,i);return l.top=Y1(d.top,l.top),l.right=QI(d.right,l.right),l.bottom=QI(d.bottom,l.bottom),l.left=Y1(d.left,l.left),l},tD(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const i=ou(n),o=zd(n);if(n===o)return t;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Xu(n)!=="body"||p4(o))&&(a=g4(n)),ou(n))){const l=Zu(n,!0);s.x=l.x+n.clientLeft,s.y=l.y+n.clientTop}return{...t,x:t.x-a.scrollLeft+s.x,y:t.y-a.scrollTop+s.y}},isElement:ef,getDimensions:eD,getOffsetParent:Xk,getDocumentElement:zd,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:J7e(t,Xk(n),r),floating:{...eD(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>S2(e).direction==="rtl"};function n9e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=!0,animationFrame:s=!1}=r,l=i&&!s,u=o&&!s,d=l||u?[...ef(e)?D3(e):[],...D3(t)]:[];d.forEach(b=>{l&&b.addEventListener("scroll",n,{passive:!0}),u&&b.addEventListener("resize",n)});let h,m=null;if(a){let b=!0;m=new ResizeObserver(()=>{b||n(),b=!1}),ef(e)&&!s&&m.observe(e),m.observe(t)}let y=s?Zu(e):null;return s&&function b(){const w=Zu(e);!y||w.x===y.x&&w.y===y.y&&w.width===y.width&&w.height===y.height||n(),y=w,h=requestAnimationFrame(b)}(),n(),()=>{var b;d.forEach(w=>{l&&w.removeEventListener("scroll",n),u&&w.removeEventListener("resize",n)}),(b=m)==null||b.disconnect(),m=null,s&&cancelAnimationFrame(h)}}const r9e=(e,t,n)=>z7e(e,t,{platform:t9e,...n});var Zk=typeof document<"u"?S.useLayoutEffect:S.useEffect;function Qk(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Qk(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!Qk(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function i9e(e){const t=S.useRef(e);return Zk(()=>{t.current=e}),t}function o9e(e){let{middleware:t,placement:n="bottom",strategy:r="absolute",whileElementsMounted:i}=e===void 0?{}:e;const o=S.useRef(null),a=S.useRef(null),s=i9e(i),l=S.useRef(null),[u,d]=S.useState({x:null,y:null,strategy:r,placement:n,middlewareData:{}}),[h,m]=S.useState(t);Qk(h==null?void 0:h.map(T=>{let{options:L}=T;return L}),t==null?void 0:t.map(T=>{let{options:L}=T;return L}))||m(t);const y=S.useCallback(()=>{!o.current||!a.current||r9e(o.current,a.current,{middleware:h,placement:n,strategy:r}).then(T=>{b.current&&Xs.flushSync(()=>{d(T)})})},[h,n,r]);Zk(()=>{b.current&&y()},[y]);const b=S.useRef(!1);Zk(()=>(b.current=!0,()=>{b.current=!1}),[]);const w=S.useCallback(()=>{if(typeof l.current=="function"&&(l.current(),l.current=null),o.current&&a.current)if(s.current){const T=s.current(o.current,a.current,y);l.current=T}else y()},[y,s]),E=S.useCallback(T=>{o.current=T,w()},[w]),_=S.useCallback(T=>{a.current=T,w()},[w]),k=S.useMemo(()=>({reference:o,floating:a}),[]);return S.useMemo(()=>({...u,update:y,refs:k,reference:E,floating:_}),[u,y,k,E,_])}const a9e=e=>{const{element:t,padding:n}=e;function r(i){return Object.prototype.hasOwnProperty.call(i,"current")}return{name:"arrow",options:e,fn(i){return r(t)?t.current!=null?qI({element:t.current,padding:n}).fn(i):{}:t?qI({element:t,padding:n}).fn(i):{}}}};function s9e(e){const[t,n]=S.useState(void 0);return Pd(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,u=Array.isArray(l)?l[0]:l;a=u.inlineSize,s=u.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const RG="Popper",[GE,IG]=b2(RG),[l9e,DG]=GE(RG),u9e=e=>{const{__scopePopper:t,children:n}=e,[r,i]=S.useState(null);return S.createElement(l9e,{scope:t,anchor:r,onAnchorChange:i},n)},c9e="PopperAnchor",d9e=S.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=DG(c9e,n),a=S.useRef(null),s=ds(t,a);return S.useEffect(()=>{o.onAnchorChange((r==null?void 0:r.current)||a.current)}),r?null:S.createElement(sc.div,pn({},i,{ref:s}))}),j3="PopperContent",[f9e,zNe]=GE(j3),[h9e,p9e]=GE(j3,{hasParent:!1,positionUpdateFns:new Set}),g9e=S.forwardRef((e,t)=>{var n,r,i,o,a,s,l,u;const{__scopePopper:d,side:h="bottom",sideOffset:m=0,align:y="center",alignOffset:b=0,arrowPadding:w=0,collisionBoundary:E=[],collisionPadding:_=0,sticky:k="partial",hideWhenDetached:T=!1,avoidCollisions:L=!0,onPlaced:O,...D}=e,I=DG(j3,d),[N,W]=S.useState(null),B=ds(t,He=>W(He)),[K,ne]=S.useState(null),z=s9e(K),$=(n=z==null?void 0:z.width)!==null&&n!==void 0?n:0,V=(r=z==null?void 0:z.height)!==null&&r!==void 0?r:0,X=h+(y!=="center"?"-"+y:""),Q=typeof _=="number"?_:{top:0,right:0,bottom:0,left:0,..._},G=Array.isArray(E)?E:[E],Y=G.length>0,ee={padding:Q,boundary:G.filter(v9e),altBoundary:Y},{reference:fe,floating:Ce,strategy:we,x:xe,y:Le,placement:Se,middlewareData:Qe,update:Xe}=o9e({strategy:"fixed",placement:X,whileElementsMounted:n9e,middleware:[y9e(),K7e({mainAxis:m+V,alignmentAxis:b}),L?Y7e({mainAxis:!0,crossAxis:!1,limiter:k==="partial"?X7e():void 0,...ee}):void 0,K?a9e({element:K,padding:w}):void 0,L?G7e({...ee}):void 0,Z7e({...ee,apply:({elements:He,availableWidth:Ue,availableHeight:ye})=>{He.floating.style.setProperty("--radix-popper-available-width",`${Ue}px`),He.floating.style.setProperty("--radix-popper-available-height",`${ye}px`)}}),b9e({arrowWidth:$,arrowHeight:V}),T?q7e({strategy:"referenceHidden"}):void 0].filter(m9e)});Pd(()=>{fe(I.anchor)},[fe,I.anchor]);const tt=xe!==null&&Le!==null,[yt,Be]=jG(Se),Ae=Js(O);Pd(()=>{tt&&(Ae==null||Ae())},[tt,Ae]);const bt=(i=Qe.arrow)===null||i===void 0?void 0:i.x,Fe=(o=Qe.arrow)===null||o===void 0?void 0:o.y,at=((a=Qe.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[jt,mt]=S.useState();Pd(()=>{N&&mt(window.getComputedStyle(N).zIndex)},[N]);const{hasParent:Zt,positionUpdateFns:on}=p9e(j3,d),se=!Zt;S.useLayoutEffect(()=>{if(!se)return on.add(Xe),()=>{on.delete(Xe)}},[se,on,Xe]),Pd(()=>{se&&tt&&Array.from(on).reverse().forEach(He=>requestAnimationFrame(He))},[se,tt,on]);const Ie={"data-side":yt,"data-align":Be,...D,ref:B,style:{...D.style,animation:tt?void 0:"none",opacity:(s=Qe.hide)!==null&&s!==void 0&&s.referenceHidden?0:void 0}};return S.createElement("div",{ref:Ce,"data-radix-popper-content-wrapper":"",style:{position:we,left:0,top:0,transform:tt?`translate3d(${Math.round(xe)}px, ${Math.round(Le)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:jt,["--radix-popper-transform-origin"]:[(l=Qe.transformOrigin)===null||l===void 0?void 0:l.x,(u=Qe.transformOrigin)===null||u===void 0?void 0:u.y].join(" ")},dir:e.dir},S.createElement(f9e,{scope:d,placedSide:yt,onArrowChange:ne,arrowX:bt,arrowY:Fe,shouldHideArrow:at},se?S.createElement(h9e,{scope:d,hasParent:!0,positionUpdateFns:on},S.createElement(sc.div,Ie)):S.createElement(sc.div,Ie)))});function m9e(e){return e!==void 0}function v9e(e){return e!==null}const y9e=()=>({name:"anchorCssProperties",fn(e){const{rects:t,elements:n}=e,{width:r,height:i}=t.reference;return n.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),n.floating.style.setProperty("--radix-popper-anchor-height",`${i}px`),{}}}),b9e=e=>({name:"transformOrigin",options:e,fn(t){var n,r,i,o,a;const{placement:s,rects:l,middlewareData:u}=t,h=((n=u.arrow)===null||n===void 0?void 0:n.centerOffset)!==0,m=h?0:e.arrowWidth,y=h?0:e.arrowHeight,[b,w]=jG(s),E={start:"0%",center:"50%",end:"100%"}[w],_=((r=(i=u.arrow)===null||i===void 0?void 0:i.x)!==null&&r!==void 0?r:0)+m/2,k=((o=(a=u.arrow)===null||a===void 0?void 0:a.y)!==null&&o!==void 0?o:0)+y/2;let T="",L="";return b==="bottom"?(T=h?E:`${_}px`,L=`${-y}px`):b==="top"?(T=h?E:`${_}px`,L=`${l.floating.height+y}px`):b==="right"?(T=`${-y}px`,L=h?E:`${k}px`):b==="left"&&(T=`${l.floating.width+y}px`,L=h?E:`${k}px`),{data:{x:T,y:L}}}});function jG(e){const[t,n="center"]=e.split("-");return[t,n]}const x9e=u9e,S9e=d9e,w9e=g9e;function C9e(e,t){return S.useReducer((n,r)=>{const i=t[n][r];return i??n},e)}const NG=e=>{const{present:t,children:n}=e,r=_9e(t),i=typeof n=="function"?n({present:r.isPresent}):S.Children.only(n),o=ds(r.ref,i.ref);return typeof n=="function"||r.isPresent?S.cloneElement(i,{ref:o}):null};NG.displayName="Presence";function _9e(e){const[t,n]=S.useState(),r=S.useRef({}),i=S.useRef(e),o=S.useRef("none"),a=e?"mounted":"unmounted",[s,l]=C9e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return S.useEffect(()=>{const u=Sx(r.current);o.current=s==="mounted"?u:"none"},[s]),Pd(()=>{const u=r.current,d=i.current;if(d!==e){const m=o.current,y=Sx(u);e?l("MOUNT"):y==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(d&&m!==y?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),Pd(()=>{if(t){const u=h=>{const y=Sx(r.current).includes(h.animationName);h.target===t&&y&&Xs.flushSync(()=>l("ANIMATION_END"))},d=h=>{h.target===t&&(o.current=Sx(r.current))};return t.addEventListener("animationstart",d),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{t.removeEventListener("animationstart",d),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:S.useCallback(u=>{u&&(r.current=getComputedStyle(u)),n(u)},[])}}function Sx(e){return(e==null?void 0:e.animationName)||"none"}function k9e({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,i]=E9e({defaultProp:t,onChange:n}),o=e!==void 0,a=o?e:r,s=Js(n),l=S.useCallback(u=>{if(o){const h=typeof u=="function"?u(e):u;h!==e&&s(h)}else i(u)},[o,e,i,s]);return[a,l]}function E9e({defaultProp:e,onChange:t}){const n=S.useState(e),[r]=n,i=S.useRef(r),o=Js(t);return S.useEffect(()=>{i.current!==r&&(o(r),i.current=r)},[r,i,o]),n}const r6="rovingFocusGroup.onEntryFocus",P9e={bubbles:!1,cancelable:!0},qE="RovingFocusGroup",[Jk,$G,T9e]=xG(qE),[M9e,FG]=b2(qE,[T9e]),[L9e,A9e]=M9e(qE),O9e=S.forwardRef((e,t)=>S.createElement(Jk.Provider,{scope:e.__scopeRovingFocusGroup},S.createElement(Jk.Slot,{scope:e.__scopeRovingFocusGroup},S.createElement(R9e,pn({},e,{ref:t}))))),R9e=S.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:u,...d}=e,h=S.useRef(null),m=ds(t,h),y=SG(o),[b=null,w]=k9e({prop:a,defaultProp:s,onChange:l}),[E,_]=S.useState(!1),k=Js(u),T=$G(n),L=S.useRef(!1),[O,D]=S.useState(0);return S.useEffect(()=>{const I=h.current;if(I)return I.addEventListener(r6,k),()=>I.removeEventListener(r6,k)},[k]),S.createElement(L9e,{scope:n,orientation:r,dir:y,loop:i,currentTabStopId:b,onItemFocus:S.useCallback(I=>w(I),[w]),onItemShiftTab:S.useCallback(()=>_(!0),[]),onFocusableItemAdd:S.useCallback(()=>D(I=>I+1),[]),onFocusableItemRemove:S.useCallback(()=>D(I=>I-1),[])},S.createElement(sc.div,pn({tabIndex:E||O===0?-1:0,"data-orientation":r},d,{ref:m,style:{outline:"none",...e.style},onMouseDown:Kn(e.onMouseDown,()=>{L.current=!0}),onFocus:Kn(e.onFocus,I=>{const N=!L.current;if(I.target===I.currentTarget&&N&&!E){const W=new CustomEvent(r6,P9e);if(I.currentTarget.dispatchEvent(W),!W.defaultPrevented){const B=T().filter(V=>V.focusable),K=B.find(V=>V.active),ne=B.find(V=>V.id===b),$=[K,ne,...B].filter(Boolean).map(V=>V.ref.current);BG($)}}L.current=!1}),onBlur:Kn(e.onBlur,()=>_(!1))})))}),I9e="RovingFocusGroupItem",D9e=S.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,...a}=e,s=B7e(),l=o||s,u=A9e(I9e,n),d=u.currentTabStopId===l,h=$G(n),{onFocusableItemAdd:m,onFocusableItemRemove:y}=u;return S.useEffect(()=>{if(r)return m(),()=>y()},[r,m,y]),S.createElement(Jk.ItemSlot,{scope:n,id:l,focusable:r,active:i},S.createElement(sc.span,pn({tabIndex:d?0:-1,"data-orientation":u.orientation},a,{ref:t,onMouseDown:Kn(e.onMouseDown,b=>{r?u.onItemFocus(l):b.preventDefault()}),onFocus:Kn(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:Kn(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){u.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=$9e(b,u.orientation,u.dir);if(w!==void 0){b.preventDefault();let _=h().filter(k=>k.focusable).map(k=>k.ref.current);if(w==="last")_.reverse();else if(w==="prev"||w==="next"){w==="prev"&&_.reverse();const k=_.indexOf(b.currentTarget);_=u.loop?F9e(_,k+1):_.slice(k+1)}setTimeout(()=>BG(_))}})})))}),j9e={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function N9e(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function $9e(e,t,n){const r=N9e(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return j9e[r]}function BG(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function F9e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const B9e=O9e,z9e=D9e,H9e=["Enter"," "],W9e=["ArrowDown","PageUp","Home"],zG=["ArrowUp","PageDown","End"],U9e=[...W9e,...zG],m4="Menu",[e7,V9e,G9e]=xG(m4),[mp,HG]=b2(m4,[G9e,IG,FG]),KE=IG(),WG=FG(),[q9e,v4]=mp(m4),[K9e,YE]=mp(m4),Y9e=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=KE(t),[l,u]=S.useState(null),d=S.useRef(!1),h=Js(o),m=SG(i);return S.useEffect(()=>{const y=()=>{d.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>d.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),S.createElement(x9e,s,S.createElement(q9e,{scope:t,open:n,onOpenChange:h,content:l,onContentChange:u},S.createElement(K9e,{scope:t,onClose:S.useCallback(()=>h(!1),[h]),isUsingKeyboardRef:d,dir:m,modal:a},r)))},X9e=S.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=KE(n);return S.createElement(S9e,pn({},i,r,{ref:t}))}),Z9e="MenuPortal",[HNe,Q9e]=mp(Z9e,{forceMount:void 0}),Hd="MenuContent",[J9e,UG]=mp(Hd),e8e=S.forwardRef((e,t)=>{const n=Q9e(Hd,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=v4(Hd,e.__scopeMenu),a=YE(Hd,e.__scopeMenu);return S.createElement(e7.Provider,{scope:e.__scopeMenu},S.createElement(NG,{present:r||o.open},S.createElement(e7.Slot,{scope:e.__scopeMenu},a.modal?S.createElement(t8e,pn({},i,{ref:t})):S.createElement(n8e,pn({},i,{ref:t})))))}),t8e=S.forwardRef((e,t)=>{const n=v4(Hd,e.__scopeMenu),r=S.useRef(null),i=ds(t,r);return S.useEffect(()=>{const o=r.current;if(o)return LH(o)},[]),S.createElement(VG,pn({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Kn(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)}))}),n8e=S.forwardRef((e,t)=>{const n=v4(Hd,e.__scopeMenu);return S.createElement(VG,pn({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)}))}),VG=S.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:y,disableOutsideScroll:b,...w}=e,E=v4(Hd,n),_=YE(Hd,n),k=KE(n),T=WG(n),L=V9e(n),[O,D]=S.useState(null),I=S.useRef(null),N=ds(t,I,E.onContentChange),W=S.useRef(0),B=S.useRef(""),K=S.useRef(0),ne=S.useRef(null),z=S.useRef("right"),$=S.useRef(0),V=b?NH:S.Fragment,X=b?{as:Fy,allowPinchZoom:!0}:void 0,Q=Y=>{var ee,fe;const Ce=B.current+Y,we=L().filter(tt=>!tt.disabled),xe=document.activeElement,Le=(ee=we.find(tt=>tt.ref.current===xe))===null||ee===void 0?void 0:ee.textValue,Se=we.map(tt=>tt.textValue),Qe=d8e(Se,Ce,Le),Xe=(fe=we.find(tt=>tt.textValue===Qe))===null||fe===void 0?void 0:fe.ref.current;(function tt(yt){B.current=yt,window.clearTimeout(W.current),yt!==""&&(W.current=window.setTimeout(()=>tt(""),1e3))})(Ce),Xe&&setTimeout(()=>Xe.focus())};S.useEffect(()=>()=>window.clearTimeout(W.current),[]),L7e();const G=S.useCallback(Y=>{var ee,fe;return z.current===((ee=ne.current)===null||ee===void 0?void 0:ee.side)&&h8e(Y,(fe=ne.current)===null||fe===void 0?void 0:fe.area)},[]);return S.createElement(J9e,{scope:n,searchRef:B,onItemEnter:S.useCallback(Y=>{G(Y)&&Y.preventDefault()},[G]),onItemLeave:S.useCallback(Y=>{var ee;G(Y)||((ee=I.current)===null||ee===void 0||ee.focus(),D(null))},[G]),onTriggerLeave:S.useCallback(Y=>{G(Y)&&Y.preventDefault()},[G]),pointerGraceTimerRef:K,onPointerGraceIntentChange:S.useCallback(Y=>{ne.current=Y},[])},S.createElement(V,X,S.createElement(A7e,{asChild:!0,trapped:i,onMountAutoFocus:Kn(o,Y=>{var ee;Y.preventDefault(),(ee=I.current)===null||ee===void 0||ee.focus()}),onUnmountAutoFocus:a},S.createElement(P7e,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:y},S.createElement(B9e,pn({asChild:!0},T,{dir:_.dir,orientation:"vertical",loop:r,currentTabStopId:O,onCurrentTabStopIdChange:D,onEntryFocus:Kn(l,Y=>{_.isUsingKeyboardRef.current||Y.preventDefault()})}),S.createElement(w9e,pn({role:"menu","aria-orientation":"vertical","data-state":l8e(E.open),"data-radix-menu-content":"",dir:_.dir},k,w,{ref:N,style:{outline:"none",...w.style},onKeyDown:Kn(w.onKeyDown,Y=>{const fe=Y.target.closest("[data-radix-menu-content]")===Y.currentTarget,Ce=Y.ctrlKey||Y.altKey||Y.metaKey,we=Y.key.length===1;fe&&(Y.key==="Tab"&&Y.preventDefault(),!Ce&&we&&Q(Y.key));const xe=I.current;if(Y.target!==xe||!U9e.includes(Y.key))return;Y.preventDefault();const Se=L().filter(Qe=>!Qe.disabled).map(Qe=>Qe.ref.current);zG.includes(Y.key)&&Se.reverse(),u8e(Se)}),onBlur:Kn(e.onBlur,Y=>{Y.currentTarget.contains(Y.target)||(window.clearTimeout(W.current),B.current="")}),onPointerMove:Kn(e.onPointerMove,n7(Y=>{const ee=Y.target,fe=$.current!==Y.clientX;if(Y.currentTarget.contains(ee)&&fe){const Ce=Y.clientX>$.current?"right":"left";z.current=Ce,$.current=Y.clientX}}))})))))))}),t7="MenuItem",nD="menu.itemSelect",r8e=S.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=S.useRef(null),a=YE(t7,e.__scopeMenu),s=UG(t7,e.__scopeMenu),l=ds(t,o),u=S.useRef(!1),d=()=>{const h=o.current;if(!n&&h){const m=new CustomEvent(nD,{bubbles:!0,cancelable:!0});h.addEventListener(nD,y=>r==null?void 0:r(y),{once:!0}),bG(h,m),m.defaultPrevented?u.current=!1:a.onClose()}};return S.createElement(i8e,pn({},i,{ref:l,disabled:n,onClick:Kn(e.onClick,d),onPointerDown:h=>{var m;(m=e.onPointerDown)===null||m===void 0||m.call(e,h),u.current=!0},onPointerUp:Kn(e.onPointerUp,h=>{var m;u.current||(m=h.currentTarget)===null||m===void 0||m.click()}),onKeyDown:Kn(e.onKeyDown,h=>{const m=s.searchRef.current!=="";n||m&&h.key===" "||H9e.includes(h.key)&&(h.currentTarget.click(),h.preventDefault())})}))}),i8e=S.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=UG(t7,n),s=WG(n),l=S.useRef(null),u=ds(t,l),[d,h]=S.useState(!1),[m,y]=S.useState("");return S.useEffect(()=>{const b=l.current;if(b){var w;y(((w=b.textContent)!==null&&w!==void 0?w:"").trim())}},[o.children]),S.createElement(e7.ItemSlot,{scope:n,disabled:r,textValue:i??m},S.createElement(z9e,pn({asChild:!0},s,{focusable:!r}),S.createElement(sc.div,pn({role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0},o,{ref:u,onPointerMove:Kn(e.onPointerMove,n7(b=>{r?a.onItemLeave(b):(a.onItemEnter(b),b.defaultPrevented||b.currentTarget.focus())})),onPointerLeave:Kn(e.onPointerLeave,n7(b=>a.onItemLeave(b))),onFocus:Kn(e.onFocus,()=>h(!0)),onBlur:Kn(e.onBlur,()=>h(!1))}))))}),o8e="MenuRadioGroup";mp(o8e,{value:void 0,onValueChange:()=>{}});const a8e="MenuItemIndicator";mp(a8e,{checked:!1});const s8e="MenuSub";mp(s8e);function l8e(e){return e?"open":"closed"}function u8e(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function c8e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function d8e(e,t,n){const i=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let a=c8e(e,Math.max(o,0));i.length===1&&(a=a.filter(u=>u!==n));const l=a.find(u=>u.toLowerCase().startsWith(i.toLowerCase()));return l!==n?l:void 0}function f8e(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=d>r&&n<(u-s)*(r-l)/(d-l)+s&&(i=!i)}return i}function h8e(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return f8e(n,t)}function n7(e){return t=>t.pointerType==="mouse"?e(t):void 0}const p8e=Y9e,g8e=X9e,m8e=e8e,v8e=r8e,GG="ContextMenu",[y8e,WNe]=b2(GG,[HG]),y4=HG(),[b8e,qG]=y8e(GG),x8e=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:o=!0}=e,[a,s]=S.useState(!1),l=y4(t),u=Js(r),d=S.useCallback(h=>{s(h),u(h)},[u]);return S.createElement(b8e,{scope:t,open:a,onOpenChange:d,modal:o},S.createElement(p8e,pn({},l,{dir:i,open:a,onOpenChange:d,modal:o}),n))},S8e="ContextMenuTrigger",w8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...i}=e,o=qG(S8e,n),a=y4(n),s=S.useRef({x:0,y:0}),l=S.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),u=S.useRef(0),d=S.useCallback(()=>window.clearTimeout(u.current),[]),h=m=>{s.current={x:m.clientX,y:m.clientY},o.onOpenChange(!0)};return S.useEffect(()=>d,[d]),S.useEffect(()=>void(r&&d()),[r,d]),S.createElement(S.Fragment,null,S.createElement(g8e,pn({},a,{virtualRef:l})),S.createElement(sc.span,pn({"data-state":o.open?"open":"closed","data-disabled":r?"":void 0},i,{ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Kn(e.onContextMenu,m=>{d(),h(m),m.preventDefault()}),onPointerDown:r?e.onPointerDown:Kn(e.onPointerDown,wx(m=>{d(),u.current=window.setTimeout(()=>h(m),700)})),onPointerMove:r?e.onPointerMove:Kn(e.onPointerMove,wx(d)),onPointerCancel:r?e.onPointerCancel:Kn(e.onPointerCancel,wx(d)),onPointerUp:r?e.onPointerUp:Kn(e.onPointerUp,wx(d))})))}),C8e="ContextMenuContent",_8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=qG(C8e,n),o=y4(n),a=S.useRef(!1);return S.createElement(m8e,pn({},o,r,{ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:s=>{var l;(l=e.onCloseAutoFocus)===null||l===void 0||l.call(e,s),!s.defaultPrevented&&a.current&&s.preventDefault(),a.current=!1},onInteractOutside:s=>{var l;(l=e.onInteractOutside)===null||l===void 0||l.call(e,s),!s.defaultPrevented&&!i.modal&&(a.current=!0)},style:{...e.style,["--radix-context-menu-content-transform-origin"]:"var(--radix-popper-transform-origin)"}}))}),k8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=y4(n);return S.createElement(v8e,pn({},i,r,{ref:t}))});function wx(e){return t=>t.pointerType!=="mouse"?e(t):void 0}const E8e=x8e,P8e=w8e,T8e=_8e,ud=k8e,M8e=(e,t)=>e.image.uuid===t.image.uuid&&e.isSelected===t.isSelected,KG=S.memo(e=>{var z,$,V,X,Q,G,Y,ee;const t=Te(),{activeTabName:n,galleryImageObjectFit:r,galleryImageMinimumWidth:i,mayDeleteImage:o,shouldUseSingleGalleryColumn:a}=le(Bke),{image:s,isSelected:l}=e,{url:u,thumbnail:d,uuid:h,metadata:m}=s,[y,b]=S.useState(!1),w=a2(),{t:E}=De(),_=zE(),k=()=>b(!0),T=()=>b(!1),L=()=>{var fe,Ce,we,xe;(Ce=(fe=s.metadata)==null?void 0:fe.image)!=null&&Ce.prompt&&_((xe=(we=s.metadata)==null?void 0:we.image)==null?void 0:xe.prompt),w({title:E("toast.promptSet"),status:"success",duration:2500,isClosable:!0})},O=()=>{s.metadata&&t(p2(s.metadata.image.seed)),w({title:E("toast.seedSet"),status:"success",duration:2500,isClosable:!0})},D=()=>{t(y0(s)),n!=="img2img"&&t(Wo("img2img")),w({title:E("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})},I=()=>{t(i4(s)),t(r4()),n!=="unifiedCanvas"&&t(Wo("unifiedCanvas")),w({title:E("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0})},N=()=>{m&&t(aU(m)),w({title:E("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})},W=async()=>{var fe;if((fe=m==null?void 0:m.image)!=null&&fe.init_image_path&&(await fetch(m.image.init_image_path)).ok){t(Wo("img2img")),t(N3e(m)),w({title:E("toast.initialImageSet"),status:"success",duration:2500,isClosable:!0});return}w({title:E("toast.initialImageNotSet"),description:E("toast.initialImageNotSetDesc"),status:"error",duration:2500,isClosable:!0})},B=()=>t(ZO(s)),K=fe=>{fe.dataTransfer.setData("invokeai/imageUuid",h),fe.dataTransfer.effectAllowed="move"},ne=()=>{t(ZO(s))};return g.jsxs(E8e,{onOpenChange:fe=>{t(eU(fe))},children:[g.jsx(P8e,{children:g.jsxs(ao,{position:"relative",className:"hoverable-image",onMouseOver:k,onMouseOut:T,userSelect:"none",draggable:!0,onDragStart:K,children:[g.jsx(jw,{className:"hoverable-image-image",objectFit:a?"contain":r,rounded:"md",src:d||u,loading:"lazy"}),g.jsx("div",{className:"hoverable-image-content",onClick:B,children:l&&g.jsx(ja,{width:"50%",height:"50%",as:jE,className:"hoverable-image-check"})}),y&&i>=64&&g.jsx("div",{className:"hoverable-image-delete-button",children:g.jsx(A3,{image:s,children:g.jsx(ls,{"aria-label":E("parameters.deleteImage"),icon:g.jsx(jke,{}),size:"xs",variant:"imageHoverIconButton",fontSize:14,isDisabled:!o})})})]},h)}),g.jsxs(T8e,{className:"hoverable-image-context-menu",sticky:"always",onInteractOutside:fe=>{fe.detail.originalEvent.preventDefault()},children:[g.jsx(ud,{onClickCapture:ne,children:E("parameters.openInViewer")}),g.jsx(ud,{onClickCapture:L,disabled:(($=(z=s==null?void 0:s.metadata)==null?void 0:z.image)==null?void 0:$.prompt)===void 0,children:E("parameters.usePrompt")}),g.jsx(ud,{onClickCapture:O,disabled:((X=(V=s==null?void 0:s.metadata)==null?void 0:V.image)==null?void 0:X.seed)===void 0,children:E("parameters.useSeed")}),g.jsx(ud,{onClickCapture:N,disabled:!["txt2img","img2img"].includes((G=(Q=s==null?void 0:s.metadata)==null?void 0:Q.image)==null?void 0:G.type),children:E("parameters.useAll")}),g.jsx(ud,{onClickCapture:W,disabled:((ee=(Y=s==null?void 0:s.metadata)==null?void 0:Y.image)==null?void 0:ee.type)!=="img2img",children:E("parameters.useInitImg")}),g.jsx(ud,{onClickCapture:D,children:E("parameters.sendToImg2Img")}),g.jsx(ud,{onClickCapture:I,children:E("parameters.sendToUnifiedCanvas")}),g.jsx(ud,{"data-warning":!0,children:g.jsx(A3,{image:s,children:g.jsx("p",{children:E("parameters.deleteImage")})})})]})]})},M8e);KG.displayName="HoverableImage";const Cx=320,rD=40,L8e={txt2img:{galleryMinWidth:200,galleryMaxWidth:500},img2img:{galleryMinWidth:200,galleryMaxWidth:500},unifiedCanvas:{galleryMinWidth:200,galleryMaxWidth:200},nodes:{galleryMinWidth:200,galleryMaxWidth:500},postprocess:{galleryMinWidth:200,galleryMaxWidth:500},training:{galleryMinWidth:200,galleryMaxWidth:500}},iD=400;function YG(){const e=Te(),{t}=De(),{images:n,currentCategory:r,currentImageUuid:i,shouldPinGallery:o,shouldShowGallery:a,galleryScrollPosition:s,galleryImageMinimumWidth:l,galleryGridTemplateColumns:u,activeTabName:d,galleryImageObjectFit:h,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,areMoreImagesAvailable:b,galleryWidth:w,isLightboxOpen:E,isStaging:_,shouldEnableResize:k,shouldUseSingleGalleryColumn:T}=le(Fke),{galleryMinWidth:L,galleryMaxWidth:O}=E?{galleryMinWidth:iD,galleryMaxWidth:iD}:L8e[d],[D,I]=S.useState(w>=Cx),[N,W]=S.useState(!1),[B,K]=S.useState(0),ne=S.useRef(null),z=S.useRef(null),$=S.useRef(null);S.useEffect(()=>{w>=Cx&&I(!1)},[w]);const V=()=>{e(_3e(!o)),e(Li(!0))},X=()=>{a?G():Q()},Q=()=>{e(Am(!0)),o&&e(Li(!0))},G=S.useCallback(()=>{e(Am(!1)),e(eU(!1)),e(k3e(z.current?z.current.scrollTop:0)),setTimeout(()=>o&&e(Li(!0)),400)},[e,o]),Y=()=>{e(Uk(r))},ee=xe=>{e(Gv(xe))},fe=()=>{m||($.current=window.setTimeout(()=>G(),500))},Ce=()=>{$.current&&window.clearTimeout($.current)};Je("g",()=>{X()},[a,o]),Je("left",()=>{e(vE())},{enabled:!_||d!=="unifiedCanvas"},[_]),Je("right",()=>{e(mE())},{enabled:!_||d!=="unifiedCanvas"},[_]),Je("shift+g",()=>{V()},[o]),Je("esc",()=>{e(Am(!1))},{enabled:()=>!o,preventDefault:!0},[o]);const we=32;return Je("shift+up",()=>{if(l<256){const xe=Pe.clamp(l+we,32,256);e(Gv(xe))}},[l]),Je("shift+down",()=>{if(l>32){const xe=Pe.clamp(l-we,32,256);e(Gv(xe))}},[l]),S.useEffect(()=>{z.current&&(z.current.scrollTop=s)},[s,a]),S.useEffect(()=>{function xe(Le){!o&&ne.current&&!ne.current.contains(Le.target)&&G()}return document.addEventListener("mousedown",xe),()=>{document.removeEventListener("mousedown",xe)}},[G,o]),g.jsx(vG,{nodeRef:ne,in:a||m,unmountOnExit:!0,timeout:200,classNames:"image-gallery-wrapper",children:g.jsxs("div",{className:"image-gallery-wrapper",style:{zIndex:o?1:100},"data-pinned":o,ref:ne,onMouseLeave:o?void 0:fe,onMouseEnter:o?void 0:Ce,onMouseOver:o?void 0:Ce,children:[g.jsxs(dG,{minWidth:L,maxWidth:o?O:window.innerWidth,className:"image-gallery-popup",handleStyles:{left:{width:"15px"}},enable:{left:k},size:{width:w,height:o?"100%":"100vh"},onResizeStart:(xe,Le,Se)=>{K(Se.clientHeight),Se.style.height=`${Se.clientHeight}px`,o&&(Se.style.position="fixed",Se.style.right="1rem",W(!0))},onResizeStop:(xe,Le,Se,Qe)=>{const Xe=o?Pe.clamp(Number(w)+Qe.width,L,Number(O)):Number(w)+Qe.width;e(T3e(Xe)),Se.removeAttribute("data-resize-alert"),o&&(Se.style.position="relative",Se.style.removeProperty("right"),Se.style.setProperty("height",o?"100%":"100vh"),W(!1),e(Li(!0)))},onResize:(xe,Le,Se,Qe)=>{const Xe=Pe.clamp(Number(w)+Qe.width,L,Number(o?O:.95*window.innerWidth));Xe>=Cx&&!D?I(!0):XeXe-rD&&e(Gv(Xe-rD)),o&&(Xe>=O?Se.setAttribute("data-resize-alert","true"):Se.removeAttribute("data-resize-alert")),Se.style.height=`${B}px`},children:[g.jsxs("div",{className:"image-gallery-header",children:[g.jsx(Gi,{size:"sm",isAttached:!0,variant:"solid",className:"image-gallery-category-btn-group",children:D?g.jsxs(g.Fragment,{children:[g.jsx(On,{size:"sm","data-selected":r==="result",onClick:()=>e(ex("result")),children:t("gallery.generations")}),g.jsx(On,{size:"sm","data-selected":r==="user",onClick:()=>e(ex("user")),children:t("gallery.uploads")})]}):g.jsxs(g.Fragment,{children:[g.jsx(Ye,{"aria-label":t("gallery.showGenerations"),tooltip:t("gallery.showGenerations"),"data-selected":r==="result",icon:g.jsx(_ke,{}),onClick:()=>e(ex("result"))}),g.jsx(Ye,{"aria-label":t("gallery.showUploads"),tooltip:t("gallery.showUploads"),"data-selected":r==="user",icon:g.jsx($ke,{}),onClick:()=>e(ex("user"))})]})}),g.jsxs("div",{className:"image-gallery-header-right-icons",children:[g.jsx(Ys,{isLazy:!0,trigger:"hover",placement:"left",triggerComponent:g.jsx(Ye,{size:"sm","aria-label":t("gallery.gallerySettings"),icon:g.jsx(BE,{}),className:"image-gallery-icon-btn",cursor:"pointer"}),children:g.jsxs("div",{className:"image-gallery-settings-popover",children:[g.jsxs("div",{children:[g.jsx(Dn,{value:l,onChange:ee,min:32,max:256,hideTooltip:!0,label:t("gallery.galleryImageSize")}),g.jsx(Ye,{size:"sm","aria-label":t("gallery.galleryImageResetSize"),tooltip:t("gallery.galleryImageResetSize"),onClick:()=>e(Gv(64)),icon:g.jsx(f4,{}),"data-selected":o,styleClass:"image-gallery-icon-btn"})]}),g.jsx("div",{children:g.jsx(Gn,{label:t("gallery.maintainAspectRatio"),isChecked:h==="contain",onChange:()=>e(E3e(h==="contain"?"cover":"contain"))})}),g.jsx("div",{children:g.jsx(Gn,{label:t("gallery.autoSwitchNewImages"),isChecked:y,onChange:xe=>e(P3e(xe.target.checked))})}),g.jsx("div",{children:g.jsx(Gn,{label:t("gallery.singleColumnLayout"),isChecked:T,onChange:xe=>e(M3e(xe.target.checked))})})]})}),g.jsx(Ye,{size:"sm",className:"image-gallery-icon-btn","aria-label":t("gallery.pinGallery"),tooltip:`${t("gallery.pinGallery")} (Shift+G)`,onClick:V,icon:o?g.jsx(fG,{}):g.jsx(hG,{})})]})]}),g.jsx("div",{className:"image-gallery-container",ref:z,children:n.length||b?g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"image-gallery",style:{gridTemplateColumns:u},children:n.map(xe=>{const{uuid:Le}=xe,Se=i===Le;return g.jsx(KG,{image:xe,isSelected:Se},Le)})}),g.jsx(ss,{onClick:Y,isDisabled:!b,className:"image-gallery-load-more-btn",children:t(b?"gallery.loadMore":"gallery.allImagesLoaded")})]}):g.jsxs("div",{className:"image-gallery-container-placeholder",children:[g.jsx(pG,{}),g.jsx("p",{children:t("gallery.noImagesInGallery")})]})})]}),N&&g.jsx("div",{style:{width:`${w}px`,height:"100%"}})]})})}var ns=function(e,t){return Number(e.toFixed(t))},A8e=function(e,t){return typeof e=="number"?e:t},mr=function(e,t,n){n&&typeof n=="function"&&n(e,t)},O8e=function(e){return-Math.cos(e*Math.PI)/2+.5},R8e=function(e){return e},I8e=function(e){return e*e},D8e=function(e){return e*(2-e)},j8e=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},N8e=function(e){return e*e*e},$8e=function(e){return--e*e*e+1},F8e=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},B8e=function(e){return e*e*e*e},z8e=function(e){return 1- --e*e*e*e},H8e=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},W8e=function(e){return e*e*e*e*e},U8e=function(e){return 1+--e*e*e*e*e},V8e=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},XG={easeOut:O8e,linear:R8e,easeInQuad:I8e,easeOutQuad:D8e,easeInOutQuad:j8e,easeInCubic:N8e,easeOutCubic:$8e,easeInOutCubic:F8e,easeInQuart:B8e,easeOutQuart:z8e,easeInOutQuart:H8e,easeInQuint:W8e,easeOutQuint:U8e,easeInOutQuint:V8e},ZG=function(e){typeof e=="number"&&cancelAnimationFrame(e)},Fl=function(e){e.mounted&&(ZG(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function QG(e,t,n,r){if(e.mounted){var i=new Date().getTime(),o=1;Fl(e),e.animation=function(){if(!e.mounted)return ZG(e.animation);var a=new Date().getTime()-i,s=a/n,l=XG[t],u=l(s);a>=n?(r(o),e.animation=null):e.animation&&(r(u),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function G8e(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function ff(e,t,n,r){var i=G8e(t);if(!(!e.mounted||!i)){var o=e.setTransformState,a=e.transformState,s=a.scale,l=a.positionX,u=a.positionY,d=t.scale-s,h=t.positionX-l,m=t.positionY-u;n===0?o(t.scale,t.positionX,t.positionY):QG(e,r,n,function(y){var b=s+d*y,w=l+h*y,E=u+m*y;o(b,w,E)})}}function q8e(e,t,n){var r=e.offsetWidth,i=e.offsetHeight,o=t.offsetWidth,a=t.offsetHeight,s=o*n,l=a*n,u=r-s,d=i-l;return{wrapperWidth:r,wrapperHeight:i,newContentWidth:s,newDiffWidth:u,newContentHeight:l,newDiffHeight:d}}var K8e=function(e,t,n,r,i,o,a){var s=e>t?n*(a?1:.5):0,l=r>i?o*(a?1:.5):0,u=e-t-s,d=s,h=r-i-l,m=l;return{minPositionX:u,maxPositionX:d,minPositionY:h,maxPositionY:m}},XE=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,i=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=q8e(n,r,t),a=o.wrapperWidth,s=o.wrapperHeight,l=o.newContentWidth,u=o.newDiffWidth,d=o.newContentHeight,h=o.newDiffHeight,m=K8e(a,l,u,s,d,h,Boolean(i));return m},r7=function(e,t,n,r){return r?en?ns(n,2):ns(e,2):ns(e,2)},t0=function(e,t){var n=XE(e,t);return e.bounds=n,n};function b4(e,t,n,r,i,o,a){var s=n.minPositionX,l=n.minPositionY,u=n.maxPositionX,d=n.maxPositionY,h=0,m=0;a&&(h=i,m=o);var y=r7(e,s-h,u+h,r),b=r7(t,l-m,d+m,r);return{x:y,y:b}}function x4(e,t,n,r,i,o){var a=e.transformState,s=a.scale,l=a.positionX,u=a.positionY,d=r-s;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:l,y:u};var h=l-t*d,m=u-n*d,y=b4(h,m,i,o,0,0,null);return y}function w2(e,t,n,r,i){var o=i?r:0,a=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=a?a:e}var oD=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,i=e.wrapperComponent,o=t.target,a=i==null?void 0:i.contains(o),s=r&&o&&a;if(!s)return!1;var l=S4(o,n);return!l},aD=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,i=r.panning.disabled,o=t&&n&&!i;return!!o},Y8e=function(e,t){var n=e.transformState,r=n.positionX,i=n.positionY;e.isPanning=!0;var o=t.clientX,a=t.clientY;e.startCoords={x:o-r,y:a-i}},X8e=function(e,t){var n=t.touches,r=e.transformState,i=r.positionX,o=r.positionY;e.isPanning=!0;var a=n.length===1;if(a){var s=n[0].clientX,l=n[0].clientY;e.startCoords={x:s-i,y:l-o}}};function Z8e(e){var t=e.transformState,n=t.positionX,r=t.positionY,i=t.scale,o=e.setup,a=o.disabled,s=o.limitToBounds,l=o.centerZoomedOut,u=e.wrapperComponent;if(!(a||!u||!e.bounds)){var d=e.bounds,h=d.maxPositionX,m=d.minPositionX,y=d.maxPositionY,b=d.minPositionY,w=n>h||ny||rh?u.offsetWidth:e.setup.minPositionX||0,k=r>y?u.offsetHeight:e.setup.minPositionY||0,T=x4(e,_,k,i,e.bounds,s||l),L=T.x,O=T.y;return{scale:i,positionX:w?L:n,positionY:E?O:r}}}function Q8e(e,t,n,r,i){var o=e.setup.limitToBounds,a=e.wrapperComponent,s=e.bounds,l=e.transformState,u=l.scale,d=l.positionX,h=l.positionY;if(!(a===null||s===null||t===d&&n===h)){var m=b4(t,n,s,o,r,i,a),y=m.x,b=m.y;e.setTransformState(u,y,b)}}var J8e=function(e,t,n){var r=e.startCoords,i=e.transformState,o=e.setup.panning,a=o.lockAxisX,s=o.lockAxisY,l=i.positionX,u=i.positionY;if(!r)return{x:l,y:u};var d=t-r.x,h=n-r.y,m=a?l:d,y=s?u:h;return{x:m,y}},N3=function(e,t){var n=e.setup,r=e.transformState,i=r.scale,o=n.minScale,a=n.disablePadding;return t>0&&i>=o&&!a?t:0},eEe=function(e){var t=e.mounted,n=e.setup,r=n.disabled,i=n.velocityAnimation,o=e.transformState.scale,a=i.disabled,s=!a||o>1||!r||t;return!!s},tEe=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,i=e.setup,o=i.disabled,a=i.velocityAnimation,s=e.transformState.scale,l=a.disabled,u=!l||s>1||!o||t;return!(!u||!n||!r)};function nEe(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,i=n.animationTime,o=n.sensitivity;return r?i*t*o:i}function sD(e,t,n,r,i,o,a,s,l,u){if(i){if(t>a&&n>a){var d=a+(e-a)*u;return d>l?l:do?o:d}}return r?t:r7(e,o,a,i)}function rEe(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function iEe(e,t){var n=eEe(e);if(n){var r=e.lastMousePosition,i=e.velocityTime,o=e.setup,a=e.wrapperComponent,s=o.velocityAnimation.equalToMove,l=Date.now();if(r&&i&&a){var u=rEe(a,s),d=t.x-r.x,h=t.y-r.y,m=d/u,y=h/u,b=l-i,w=d*d+h*h,E=Math.sqrt(w)/b;e.velocity={velocityX:m,velocityY:y,total:E}}e.lastMousePosition=t,e.velocityTime=l}}function oEe(e){var t=e.velocity,n=e.bounds,r=e.setup,i=e.wrapperComponent,o=tEe(e);if(!(!o||!t||!n||!i)){var a=t.velocityX,s=t.velocityY,l=t.total,u=n.maxPositionX,d=n.minPositionX,h=n.maxPositionY,m=n.minPositionY,y=r.limitToBounds,b=r.alignmentAnimation,w=r.zoomAnimation,E=r.panning,_=E.lockAxisY,k=E.lockAxisX,T=w.animationType,L=b.sizeX,O=b.sizeY,D=b.velocityAlignmentTime,I=D,N=nEe(e,l),W=Math.max(N,I),B=N3(e,L),K=N3(e,O),ne=B*i.offsetWidth/100,z=K*i.offsetHeight/100,$=u+ne,V=d-ne,X=h+z,Q=m-z,G=e.transformState,Y=new Date().getTime();QG(e,T,W,function(ee){var fe=e.transformState,Ce=fe.scale,we=fe.positionX,xe=fe.positionY,Le=new Date().getTime()-Y,Se=Le/I,Qe=XG[b.animationType],Xe=1-Qe(Math.min(1,Se)),tt=1-ee,yt=we+a*tt,Be=xe+s*tt,Ae=sD(yt,G.positionX,we,k,y,d,u,V,$,Xe),bt=sD(Be,G.positionY,xe,_,y,m,h,Q,X,Xe);(we!==yt||xe!==Be)&&e.setTransformState(Ce,Ae,bt)})}}function lD(e,t){var n=e.transformState.scale;Fl(e),t0(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?X8e(e,t):Y8e(e,t)}function JG(e){var t=e.transformState.scale,n=e.setup,r=n.minScale,i=n.alignmentAnimation,o=i.disabled,a=i.sizeX,s=i.sizeY,l=i.animationTime,u=i.animationType,d=o||t.1&&h;m?oEe(e):JG(e)}}function ZE(e,t,n,r){var i=e.setup,o=i.minScale,a=i.maxScale,s=i.limitToBounds,l=w2(ns(t,2),o,a,0,!1),u=t0(e,l),d=x4(e,n,r,l,u,s),h=d.x,m=d.y;return{scale:l,positionX:h,positionY:m}}function eq(e,t,n){var r=e.transformState.scale,i=e.wrapperComponent,o=e.setup,a=o.minScale,s=o.limitToBounds,l=o.zoomAnimation,u=l.disabled,d=l.animationTime,h=l.animationType,m=u||r>=a;if((r>=1||s)&&JG(e),!(m||!i||!e.mounted)){var y=t||i.offsetWidth/2,b=n||i.offsetHeight/2,w=ZE(e,a,y,b);w&&ff(e,w,d,h)}}var Wd=function(){return Wd=Object.assign||function(t){for(var n,r=1,i=arguments.length;ra||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaYt.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},wEe=function(e,t){var n=e.setup.pinch,r=n.disabled,i=n.excluded,o=e.isInitialized,a=t.target,s=o&&!r&&a;if(!s)return!1;var l=S4(a,i);return!l},CEe=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,i=n&&!t&&r;return!!i},_Ee=function(e,t,n){var r=n.getBoundingClientRect(),i=e.touches,o=ns(i[0].clientX-r.left,5),a=ns(i[0].clientY-r.top,5),s=ns(i[1].clientX-r.left,5),l=ns(i[1].clientY-r.top,5);return{x:(o+s)/2/t,y:(a+l)/2/t}},sq=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},kEe=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,i=e.setup,o=i.maxScale,a=i.minScale,s=i.zoomAnimation,l=i.disablePadding,u=s.size,d=s.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var h=t/r,m=h*n;return w2(ns(m,2),a,o,u,!d&&!l)},EEe=160,PEe=100,TEe=function(e,t){var n=e.props,r=n.onWheelStart,i=n.onZoomStart;e.wheelStopEventTimer||(Fl(e),mr(Un(e),t,r),mr(Un(e),t,i))},MEe=function(e,t){var n=e.props,r=n.onWheel,i=n.onZoom,o=e.contentComponent,a=e.setup,s=e.transformState,l=s.scale,u=a.limitToBounds,d=a.centerZoomedOut,h=a.zoomAnimation,m=a.wheel,y=a.disablePadding,b=h.size,w=h.disabled,E=m.step;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var _=bEe(t,null),k=xEe(e,_,E,!t.ctrlKey);if(l!==k){var T=t0(e,k),L=aq(t,o,l),O=w||b===0||d||y,D=u&&O,I=x4(e,L.x,L.y,k,T,D),N=I.x,W=I.y;e.previousWheelEvent=t,e.setTransformState(k,N,W),mr(Un(e),t,r),mr(Un(e),t,i)}},LEe=function(e,t){var n=e.props,r=n.onWheelStop,i=n.onZoomStop;i7(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(eq(e,t.x,t.y),e.wheelAnimationTimer=null)},PEe);var o=SEe(e,t);o&&(i7(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,mr(Un(e),t,r),mr(Un(e),t,i))},EEe))},AEe=function(e,t){var n=sq(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1,Fl(e)},OEe=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,i=e.transformState.scale,o=e.setup,a=o.limitToBounds,s=o.centerZoomedOut,l=o.zoomAnimation,u=l.disabled,d=l.size;if(!(r===null||!n)){var h=_Ee(t,i,n);if(!(!Number.isFinite(h.x)||!Number.isFinite(h.y))){var m=sq(t),y=kEe(e,m);if(y!==i){var b=t0(e,y),w=u||d===0||s,E=a&&w,_=x4(e,h.x,h.y,y,b,E),k=_.x,T=_.y;e.pinchMidpoint=h,e.lastDistance=m,e.setTransformState(y,k,T)}}}},REe=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,eq(e,t==null?void 0:t.x,t==null?void 0:t.y)},lq=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;i7(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,mr(Un(e),t,n)},r)},IEe=function(e,t){var n=e.props,r=n.onZoomStart,i=n.onZoom,o=e.setup.doubleClick,a=o.animationTime,s=o.animationType;mr(Un(e),t,r),iq(e,a,s,function(){return mr(Un(e),t,i)}),lq(e,t)};function DEe(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,i=e.transformState,o=e.contentComponent,a=i.scale,s=e.props,l=s.onZoomStart,u=s.onZoom,d=n.doubleClick,h=d.disabled,m=d.mode,y=d.step,b=d.animationTime,w=d.animationType;if(!h&&!r){if(m==="reset")return IEe(e,t);if(!o)return console.error("No ContentComponent found");var E=m==="zoomOut"?-1:1,_=nq(e,E,y);if(a!==_){mr(Un(e),t,l);var k=aq(t,o,a),T=ZE(e,_,k.x,k.y);if(!T)return console.error("Error during zoom event. New transformation state was not calculated.");mr(Un(e),t,u),ff(e,T,b,w),lq(e,t)}}}var jEe=function(e,t){var n=e.isInitialized,r=e.setup,i=e.wrapperComponent,o=r.doubleClick,a=o.disabled,s=o.excluded,l=t.target,u=i==null?void 0:i.contains(l),d=n&&l&&u&&!a;if(!d)return!1;var h=S4(l,s);return!h},NEe=function(){function e(t){var n=this;this.mounted=!0,this.onChangeCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){t0(n,n.transformState.scale),n.setup=dD(r)},this.initializeWindowEvents=function(){var r,i=o6(),o=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=o==null?void 0:o.defaultView;a==null||a.addEventListener("mousedown",n.onPanningStart,i),a==null||a.addEventListener("mousemove",n.onPanning,i),a==null||a.addEventListener("mouseup",n.onPanningStop,i),o==null||o.addEventListener("mouseleave",n.clearPanning,i),a==null||a.addEventListener("keyup",n.setKeyUnPressed,i),a==null||a.addEventListener("keydown",n.setKeyPressed,i)},this.cleanupWindowEvents=function(){var r,i,o=o6(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,s=a==null?void 0:a.defaultView;s==null||s.removeEventListener("mousedown",n.onPanningStart,o),s==null||s.removeEventListener("mousemove",n.onPanning,o),s==null||s.removeEventListener("mouseup",n.onPanningStop,o),a==null||a.removeEventListener("mouseleave",n.clearPanning,o),s==null||s.removeEventListener("keyup",n.setKeyUnPressed,o),s==null||s.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),Fl(n),(i=n.observer)===null||i===void 0||i.disconnect()},this.handleInitializeWrapperEvents=function(r){var i=o6();r.addEventListener("wheel",n.onWheelZoom,i),r.addEventListener("dblclick",n.onDoubleClick,i),r.addEventListener("touchstart",n.onTouchPanningStart,i),r.addEventListener("touchmove",n.onTouchPanning,i),r.addEventListener("touchend",n.onTouchPanningStop,i)},this.handleInitialize=function(r){var i=n.setup.centerOnInit;n.applyTransformation(),i&&(n.setCenter(),n.observer=new ResizeObserver(function(){var o;n.setCenter(),(o=n.observer)===null||o===void 0||o.disconnect()}),n.observer.observe(r))},this.onWheelZoom=function(r){var i=n.setup.disabled;if(!i){var o=vEe(n,r);if(o){var a=n.isPressingKeys(n.setup.wheel.activationKeys);a&&(TEe(n,r),MEe(n,r),LEe(n,r))}}},this.onPanningStart=function(r){var i=n.setup.disabled,o=n.props.onPanningStart;if(!i){var a=oD(n,r);if(a){var s=n.isPressingKeys(n.setup.panning.activationKeys);s&&(r.preventDefault(),r.stopPropagation(),Fl(n),lD(n,r),mr(Un(n),r,o))}}},this.onPanning=function(r){var i=n.setup.disabled,o=n.props.onPanning;if(!i){var a=aD(n);if(a){var s=n.isPressingKeys(n.setup.panning.activationKeys);s&&(r.preventDefault(),r.stopPropagation(),uD(n,r.clientX,r.clientY),mr(Un(n),r,o))}}},this.onPanningStop=function(r){var i=n.props.onPanningStop;n.isPanning&&(aEe(n),mr(Un(n),r,i))},this.onPinchStart=function(r){var i=n.setup.disabled,o=n.props,a=o.onPinchingStart,s=o.onZoomStart;if(!i){var l=wEe(n,r);l&&(AEe(n,r),Fl(n),mr(Un(n),r,a),mr(Un(n),r,s))}},this.onPinch=function(r){var i=n.setup.disabled,o=n.props,a=o.onPinching,s=o.onZoom;if(!i){var l=CEe(n);l&&(r.preventDefault(),r.stopPropagation(),OEe(n,r),mr(Un(n),r,a),mr(Un(n),r,s))}},this.onPinchStop=function(r){var i=n.props,o=i.onPinchingStop,a=i.onZoomStop;n.pinchStartScale&&(REe(n),mr(Un(n),r,o),mr(Un(n),r,a))},this.onTouchPanningStart=function(r){var i=n.setup.disabled,o=n.props.onPanningStart;if(!i){var a=oD(n,r);if(a){var s=n.lastTouch&&+new Date-n.lastTouch<200;if(s&&r.touches.length===1)n.onDoubleClick(r);else{n.lastTouch=+new Date,Fl(n);var l=r.touches,u=l.length===1,d=l.length===2;u&&(Fl(n),lD(n,r),mr(Un(n),r,o)),d&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var i=n.setup.disabled,o=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(i)return;var a=aD(n);if(!a)return;r.preventDefault(),r.stopPropagation();var s=r.touches[0];uD(n,s.clientX,s.clientY),mr(Un(n),r,o)}else r.touches.length>1&&n.onPinch(r)},this.onTouchPanningStop=function(r){n.onPanningStop(r),n.onPinchStop(r)},this.onDoubleClick=function(r){var i=n.setup.disabled;if(!i){var o=jEe(n,r);o&&DEe(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?Boolean(r.find(function(i){return n.pressedKeys[i]})):!0},this.setTransformState=function(r,i,o){var a=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(i)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=i,n.transformState.positionY=o;var s=Un(n);n.onChangeCallbacks.forEach(function(l){return l(s)}),mr(s,{scale:r,positionX:i,positionY:o},a),n.applyTransformation()}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=oq(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,i,o){return n.props.customTransform?n.props.customTransform(r,i,o):gEe(r,i,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,i=r.scale,o=r.positionX,a=r.positionY,s=n.handleTransformStyles(o,a,i);n.contentComponent.style.transform=s}},this.getContext=function(){return Un(n)},this.onChange=function(r){return n.onChangeCallbacks.has(r)||n.onChangeCallbacks.add(r),function(){n.onChangeCallbacks.delete(r)}},this.init=function(r,i){n.cleanupWindowEvents(),n.wrapperComponent=r,n.contentComponent=i,t0(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(i),n.initializeWindowEvents(),n.isInitialized=!0,mr(Un(n),void 0,n.props.onInit)},this.props=t,this.setup=dD(this.props),this.transformState=tq(this.props)}return e}(),QE=Ke.createContext(null),$Ee=function(e,t){return typeof e=="function"?e(t):e},FEe=Ke.forwardRef(function(e,t){var n=S.useState(0),r=n[1],i=e.children,o=S.useRef(new NEe(e)).current,a=$Ee(e.children,Un(o)),s=S.useCallback(function(){typeof i=="function"&&r(function(l){return l+1})},[i]);return S.useImperativeHandle(t,function(){return Un(o)},[o]),S.useEffect(function(){o.update(e)},[o,e]),S.useEffect(function(){return o.onChange(s)},[o,e,s]),Ke.createElement(QE.Provider,{value:o},a)});function BEe(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",n==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var zEe=`.transform-component-module_wrapper__7HFJe { - position: relative; - width: -moz-fit-content; - width: fit-content; - height: -moz-fit-content; - height: fit-content; - overflow: hidden; - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; - margin: 0; - padding: 0; -} -.transform-component-module_content__uCDPE { - display: flex; - flex-wrap: wrap; - width: -moz-fit-content; - width: fit-content; - height: -moz-fit-content; - height: fit-content; - margin: 0; - padding: 0; - transform-origin: 0% 0%; -} -.transform-component-module_content__uCDPE img { - pointer-events: none; -} -`,fD={wrapper:"transform-component-module_wrapper__7HFJe",content:"transform-component-module_content__uCDPE"};BEe(zEe);var HEe=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,i=e.contentClass,o=i===void 0?"":i,a=e.wrapperStyle,s=e.contentStyle,l=e.wrapperProps,u=l===void 0?{}:l,d=e.contentProps,h=d===void 0?{}:d,m=S.useContext(QE).init,y=S.useRef(null),b=S.useRef(null);return S.useEffect(function(){var w=y.current,E=b.current;w!==null&&E!==null&&m&&m(w,E)},[]),Ke.createElement("div",Wd({},u,{ref:y,className:"react-transform-wrapper ".concat(fD.wrapper," ").concat(r),style:a}),Ke.createElement("div",Wd({},h,{ref:b,className:"react-transform-component ".concat(fD.content," ").concat(o),style:s}),t))};Ke.forwardRef(function(e,t){var n=S.useRef(null),r=S.useContext(QE);return S.useEffect(function(){return r.onChange(function(i){if(n.current){var o=0,a=0;n.current.style.transform=r.handleTransformStyles(o,a,1/i.state.scale)}})},[r]),Ke.createElement("div",Wd({},e,{ref:mEe([n,t])}))});function WEe({image:e,alt:t,ref:n,styleClass:r}){const[i,o]=S.useState(0),[a,s]=S.useState(!1),l=()=>{o(i===-3?0:i-1)},u=()=>{o(i===3?0:i+1)},d=()=>{s(!a)};return g.jsx(FEe,{centerOnInit:!0,minScale:.1,initialPositionX:50,initialPositionY:50,children:({zoomIn:h,zoomOut:m,resetTransform:y,centerView:b})=>g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"lightbox-image-options",children:[g.jsx(Ye,{icon:g.jsx(H_e,{}),"aria-label":"Zoom In",tooltip:"Zoom In",onClick:()=>h(),fontSize:20}),g.jsx(Ye,{icon:g.jsx(W_e,{}),"aria-label":"Zoom Out",tooltip:"Zoom Out",onClick:()=>m(),fontSize:20}),g.jsx(Ye,{icon:g.jsx(B_e,{}),"aria-label":"Rotate Left",tooltip:"Rotate Left",onClick:l,fontSize:20}),g.jsx(Ye,{icon:g.jsx(z_e,{}),"aria-label":"Rotate Right",tooltip:"Rotate Right",onClick:u,fontSize:20}),g.jsx(Ye,{icon:g.jsx(a7e,{}),"aria-label":"Flip Image",tooltip:"Flip Image",onClick:d,fontSize:20}),g.jsx(Ye,{icon:g.jsx(f4,{}),"aria-label":"Reset",tooltip:"Reset",onClick:()=>{y(),o(0),s(!1)},fontSize:20})]}),g.jsx(HEe,{wrapperStyle:{width:"100%",height:"100%"},children:g.jsx("img",{style:{transform:`rotate(${i*90}deg) scaleX(${a?-1:1})`,width:"100%"},src:e,alt:t,ref:n,className:r||"",onLoad:()=>b(1,0,"easeOut")})})]})})}function UEe(){const e=Te(),t=le(m=>m.lightbox.isLightboxOpen),{viewerImageToDisplay:n,shouldShowImageDetails:r,isOnFirstImage:i,isOnLastImage:o}=le(cG),[a,s]=S.useState(!1),l=()=>{s(!0)},u=()=>{s(!1)},d=()=>{e(vE())},h=()=>{e(mE())};return Je("Esc",()=>{t&&e(Om(!1))},[t]),g.jsxs("div",{className:"lightbox-container",children:[g.jsx(Ye,{icon:g.jsx(F_e,{}),"aria-label":"Exit Viewer",className:"lightbox-close-btn",onClick:()=>{e(Om(!1))},fontSize:20}),g.jsxs("div",{className:"lightbox-display-container",children:[g.jsxs("div",{className:"lightbox-preview-wrapper",children:[g.jsx(lG,{}),!r&&g.jsxs("div",{className:"current-image-next-prev-buttons",children:[g.jsx("div",{className:"next-prev-button-trigger-area prev-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!i&&g.jsx(ls,{"aria-label":"Previous image",icon:g.jsx(ZV,{className:"next-prev-button"}),variant:"unstyled",onClick:d})}),g.jsx("div",{className:"next-prev-button-trigger-area next-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!o&&g.jsx(ls,{"aria-label":"Next image",icon:g.jsx(QV,{className:"next-prev-button"}),variant:"unstyled",onClick:h})})]}),n&&g.jsxs(g.Fragment,{children:[g.jsx(WEe,{image:n.url,styleClass:"lightbox-image"}),r&&g.jsx(HE,{image:n})]})]}),g.jsx(YG,{})]})]})}function VEe(e){const{menuType:t="icon",iconTooltip:n,buttonText:r,menuItems:i,menuProps:o,menuButtonProps:a,menuListProps:s,menuItemProps:l}=e,u=()=>{const d=[];return i.forEach((h,m)=>{d.push(g.jsx(_H,{onClick:h.onClick,fontSize:"0.9rem",color:"var(--text-color-secondary)",backgroundColor:"var(--background-color-secondary)",_focus:{color:"var(--text-color)",backgroundColor:"var(--border-color)"},...l,children:h.item},m))}),d};return g.jsx(SH,{...o,children:({isOpen:d})=>g.jsxs(g.Fragment,{children:[g.jsx(EH,{as:t==="icon"?Ye:On,tooltip:n,icon:d?g.jsx(u7e,{}):g.jsx(l7e,{}),padding:t==="regular"?"0 0.5rem":0,backgroundColor:"var(--btn-base-color)",_hover:{backgroundColor:"var(--btn-base-color-hover)"},minWidth:"1rem",minHeight:"1rem",fontSize:"1.5rem",...a,children:t==="regular"&&r}),g.jsx(kH,{zIndex:15,padding:0,borderRadius:"0.5rem",backgroundColor:"var(--background-color-secondary)",color:"var(--text-color-secondary)",borderColor:"var(--border-color)",...s,children:u()})]})})}const GEe=lt(hr,e=>({isProcessing:e.isProcessing,isConnected:e.isConnected,isCancelable:e.isCancelable,currentIteration:e.currentIteration,totalIterations:e.totalIterations,cancelType:e.cancelOptions.cancelType,cancelAfter:e.cancelOptions.cancelAfter}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function JE(e){const t=Te(),{btnGroupWidth:n="auto",...r}=e,{isProcessing:i,isConnected:o,isCancelable:a,currentIteration:s,totalIterations:l,cancelType:u,cancelAfter:d}=le(GEe),h=S.useCallback(()=>{t(d_e()),t(BC(null))},[t]),{t:m}=De(),y=d!==null;Je("shift+x",()=>{(o||i)&&a&&h()},[o,i,a]),S.useEffect(()=>{d!==null&&dt(VR("immediate"))},{item:m("parameters.cancel.schedule"),onClick:()=>t(VR("scheduled"))}];return g.jsxs(Gi,{isAttached:!0,variant:"link",minHeight:"2.5rem",width:n,children:[u==="immediate"?g.jsx(Ye,{icon:g.jsx(c7e,{}),tooltip:m("parameters.cancel.immediate"),"aria-label":m("parameters.cancel.immediate"),isDisabled:!o||!i||!a,onClick:h,className:"cancel-btn",...r}):g.jsx(Ye,{icon:y?g.jsx(a3,{color:"var(--text-color)"}):g.jsx(n7e,{}),tooltip:m(y?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),"aria-label":m(y?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),isDisabled:!o||!i||!a||s===l,onClick:()=>{t(BC(y?null:s))},className:"cancel-btn",...r}),g.jsx(VEe,{menuItems:b,iconTooltip:m("parameters.cancel.setType"),menuButtonProps:{backgroundColor:"var(--destructive-color)",color:"var(--text-color)",minWidth:"1.5rem",minHeight:"1.5rem",_hover:{backgroundColor:"var(--destructive-color-hover)"}}})]})}const eP=e=>e.generation;lt(eP,({shouldRandomizeSeed:e,shouldGenerateVariations:t})=>e||t,{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});const uq=lt([eP,hr,sG,Br],(e,t,n,r)=>{const{prompt:i,shouldGenerateVariations:o,seedWeights:a,initialImage:s,seed:l}=e,{isProcessing:u,isConnected:d}=t;let h=!0;const m=[];return(!i||Boolean(i.match(/^[\s\r\n]+$/)))&&(h=!1,m.push("Missing prompt")),r==="img2img"&&!s&&(h=!1,m.push("No initial image selected")),u&&(h=!1,m.push("System Busy")),d||(h=!1,m.push("System Disconnected")),o&&(!(yE(a)||a==="")||l===-1)&&(h=!1,m.push("Seed-Weights badly formatted.")),{isReady:h,reasonsWhyNotReady:m}},{memoizeOptions:{equalityCheck:Pe.isEqual,resultEqualityCheck:Pe.isEqual}});function tP(e){const{iconButton:t=!1,...n}=e,r=Te(),{isReady:i}=le(uq),o=le(Br),a=()=>{r(Wk(o))},{t:s}=De();return Je(["ctrl+enter","meta+enter"],()=>{r(Wk(o))},{enabled:()=>i,preventDefault:!0,enableOnFormTags:["input","textarea","select"]},[i,o]),g.jsx("div",{style:{flexGrow:4},children:t?g.jsx(Ye,{"aria-label":s("parameters.invoke"),type:"submit",icon:g.jsx(Lke,{}),isDisabled:!i,onClick:a,className:"invoke-btn",tooltip:s("parameters.invoke"),tooltipProps:{placement:"bottom"},...n}):g.jsx(On,{"aria-label":s("parameters.invoke"),type:"submit",isDisabled:!i,onClick:a,className:"invoke-btn",...n,children:"Invoke"})})}const nP=lt([pp,fp,Br],(e,t,n)=>{const{shouldPinParametersPanel:r,shouldShowParametersPanel:i,shouldHoldParametersPanelOpen:o,shouldUseCanvasBetaLayout:a}=t,{shouldShowGallery:s,shouldPinGallery:l,shouldHoldGalleryOpen:u}=e,d=a&&n==="unifiedCanvas",h=!d&&!(i||o&&!r)&&["txt2img","img2img","unifiedCanvas"].includes(n),m=!(s||u&&!l)&&["txt2img","img2img","unifiedCanvas"].includes(n);return{shouldPinParametersPanel:r,shouldShowProcessButtons:!d&&(!r||!i),shouldShowParametersPanelButton:h,shouldShowParametersPanel:i,shouldShowGallery:s,shouldPinGallery:l,shouldShowGalleryButton:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),qEe=()=>{const e=Te(),{shouldShowParametersPanelButton:t,shouldShowProcessButtons:n,shouldPinParametersPanel:r}=le(nP),i=()=>{e(Fh(!0)),r&&setTimeout(()=>e(Li(!0)),400)};return t?g.jsxs("div",{className:"show-hide-button-options",children:[g.jsx(Ye,{tooltip:"Show Options Panel (O)",tooltipProps:{placement:"top"},"aria-label":"Show Options Panel",onClick:i,children:g.jsx(FE,{})}),n&&g.jsxs(g.Fragment,{children:[g.jsx(tP,{iconButton:!0}),g.jsx(JE,{})]})]}):null};function KEe(e){return ut({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{d:"M14 1H3L2 2v11l1 1h11l1-1V2l-1-1zM8 13H3V2h5v11zm6 0H9V2h5v11z"}}]})(e)}const YEe=lt(pp,e=>({resultImages:e.categories.result.images,userImages:e.categories.user.images})),XEe=()=>{const{resultImages:e,userImages:t}=le(YEe);return n=>{const r=e.find(o=>o.uuid===n);if(r)return r;const i=t.find(o=>o.uuid===n);if(i)return i}},ZEe=lt([fp,d4,Br],(e,t,n)=>{const{shouldShowDualDisplay:r,shouldPinParametersPanel:i}=e,{isLightboxOpen:o}=t;return{shouldShowDualDisplay:r,shouldPinParametersPanel:i,isLightboxOpen:o,shouldShowDualDisplayButton:["inpainting"].includes(n),activeTabName:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),rP=e=>{const t=Te(),{optionsPanel:n,children:r,styleClass:i}=e,{activeTabName:o,shouldShowDualDisplay:a,isLightboxOpen:s,shouldShowDualDisplayButton:l}=le(ZEe),u=XEe(),d=()=>{t(N4e(!a)),t(Li(!0))},h=m=>{const y=m.dataTransfer.getData("invokeai/imageUuid"),b=u(y);b&&(o==="img2img"?t(y0(b)):o==="unifiedCanvas"&&t(i4(b)))};return g.jsx("div",{className:i?`workarea-wrapper ${i}`:"workarea-wrapper",children:g.jsxs("div",{className:"workarea-main",children:[n,g.jsxs("div",{className:"workarea-children-wrapper",onDrop:h,children:[r,l&&g.jsx(si,{label:"Toggle Split View",children:g.jsx("div",{className:"workarea-split-button","data-selected":a,onClick:d,children:g.jsx(KEe,{})})})]}),!s&&g.jsx(YG,{})]})})},QEe=e=>{const{styleClass:t}=e,n=S.useContext(AE),r=()=>{n&&n()};return g.jsx("div",{className:`image-uploader-button-outer ${t}`,onClick:r,children:g.jsxs("div",{className:"image-upload-button",children:[g.jsx(h4,{}),g.jsx(jh,{size:"lg",children:"Click or Drag and Drop"})]})})},JEe=lt([pp,fp,Br],(e,t,n)=>{const{currentImage:r,intermediateImage:i}=e,{shouldShowImageDetails:o}=t;return{activeTabName:n,shouldShowImageDetails:o,hasAnImageToDisplay:r||i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),cq=()=>{const{hasAnImageToDisplay:e,activeTabName:t}=le(JEe);return g.jsx("div",{className:"current-image-area","data-tab-name":t,children:e?g.jsxs(g.Fragment,{children:[g.jsx(lG,{}),g.jsx(qke,{})]}):g.jsx("div",{className:"current-image-display-placeholder",children:g.jsx(s7e,{})})})},ePe=()=>{const e=S.useContext(AE);return g.jsx(Ye,{"aria-label":"Upload Image",tooltip:"Upload Image",icon:g.jsx(h4,{}),onClick:e||void 0})};function tPe(){const e=le(o=>o.generation.initialImage),{t}=De(),n=Te(),r=a2(),i=()=>{r({title:t("toast.parametersFailed"),description:t("toast.parametersFailedDesc"),status:"error",isClosable:!0}),n(oU())};return g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"init-image-preview-header",children:[g.jsx("h2",{children:t("parameters.initialImage")}),g.jsx(ePe,{})]}),e&&g.jsx("div",{className:"init-image-preview",children:g.jsx(jw,{fit:"contain",maxWidth:"100%",maxHeight:"100%",src:typeof e=="string"?e:e.url,onError:i})})]})}const nPe=()=>{const e=le(r=>r.generation.initialImage),{currentImage:t}=le(r=>r.gallery),n=e?g.jsx("div",{className:"image-to-image-area",children:g.jsx(tPe,{})}):g.jsx(QEe,{});return g.jsxs("div",{className:"workarea-split-view",children:[g.jsx("div",{className:"workarea-split-view-left",children:n}),t&&g.jsx("div",{className:"workarea-split-view-right",children:g.jsx(cq,{})})]})};var oo=(e=>(e[e.PROMPT=0]="PROMPT",e[e.GALLERY=1]="GALLERY",e[e.OTHER=2]="OTHER",e[e.SEED=3]="SEED",e[e.VARIATIONS=4]="VARIATIONS",e[e.UPSCALE=5]="UPSCALE",e[e.FACE_CORRECTION=6]="FACE_CORRECTION",e[e.IMAGE_TO_IMAGE=7]="IMAGE_TO_IMAGE",e[e.BOUNDING_BOX=8]="BOUNDING_BOX",e[e.SEAM_CORRECTION=9]="SEAM_CORRECTION",e[e.INFILL_AND_SCALING=10]="INFILL_AND_SCALING",e))(oo||{});const rPe=()=>{const{t:e}=De();return S.useMemo(()=>({[0]:{text:e("tooltip.feature.prompt"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[1]:{text:e("tooltip.feature.gallery"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[2]:{text:e("tooltip.feature.other"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[3]:{text:e("tooltip.feature.seed"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[4]:{text:e("tooltip.feature.variations"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[5]:{text:e("tooltip.feature.upscale"),href:"link/to/docs/feature1.html",guideImage:"asset/path.gif"},[6]:{text:e("tooltip.feature.faceCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[7]:{text:e("tooltip.feature.imageToImage"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[8]:{text:e("tooltip.feature.boundingBox"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[9]:{text:e("tooltip.feature.seamCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[10]:{text:e("tooltip.feature.infillAndScaling"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"}}),[e])},iPe=e=>rPe()[e],_a=e=>{const{label:t,isDisabled:n=!1,width:r="auto",formControlProps:i,formLabelProps:o,styleClass:a,...s}=e;return g.jsxs(sn,{isDisabled:n,width:r,className:`invokeai__switch-form-control ${a}`,display:"flex",columnGap:"1rem",alignItems:"center",justifyContent:"space-between",...i,children:[g.jsx(Sn,{className:"invokeai__switch-form-label",whiteSpace:"nowrap",marginRight:0,marginTop:.5,marginBottom:.5,fontSize:"sm",fontWeight:"bold",width:"auto",...o,children:t}),g.jsx(K8,{className:"invokeai__switch-root",...s})]})};function dq(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.shouldRunFacetool),n=Te(),r=i=>n(V3e(i.target.checked));return g.jsx(_a,{isDisabled:!e,isChecked:t,onChange:r})}const fq=()=>{const e=Te(),t=le(i=>i.generation.seamless),n=i=>e(fU(i.target.checked)),{t:r}=De();return g.jsx(ke,{gap:2,direction:"column",children:g.jsx(_a,{label:r("parameters.seamlessTiling"),fontSize:"md",isChecked:t,onChange:n})})},oPe=()=>g.jsx(ke,{gap:2,direction:"column",children:g.jsx(fq,{})});function iP(){const e=le(o=>o.generation.horizontalSymmetryTimePercentage),t=le(o=>o.generation.verticalSymmetryTimePercentage),n=le(o=>o.generation.steps),r=Te(),{t:i}=De();return g.jsxs(g.Fragment,{children:[g.jsx(Dn,{label:i("parameters.hSymmetryStep"),value:e,onChange:o=>r(oR(o)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(oR(0)),sliderMarkRightOffset:-6}),g.jsx(Dn,{label:i("parameters.vSymmetryStep"),value:t,onChange:o=>r(aR(o)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(aR(0)),sliderMarkRightOffset:-6})]})}function oP(){const e=le(n=>n.generation.shouldUseSymmetry),t=Te();return g.jsx(_a,{isChecked:e,onChange:n=>t(B3e(n.target.checked))})}function aPe(){const e=Te(),t=le(r=>r.generation.perlin),{t:n}=De();return g.jsx(Dn,{label:n("parameters.perlinNoise"),min:0,max:1,step:.05,onChange:r=>e(vk(r)),handleReset:()=>e(vk(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0})}function sPe(){const e=Te(),{t}=De(),n=le(i=>i.generation.shouldRandomizeSeed),r=i=>e(F3e(i.target.checked));return g.jsx(_a,{label:t("parameters.randomizeSeed"),isChecked:n,onChange:r})}const hD=/^-?(0\.)?\.?$/,lc=e=>{const{label:t,labelFontSize:n="sm",styleClass:r,isDisabled:i=!1,showStepper:o=!0,width:a,textAlign:s,isInvalid:l,value:u,onChange:d,min:h,max:m,isInteger:y=!0,formControlProps:b,formLabelProps:w,numberInputFieldProps:E,numberInputStepperProps:_,tooltipProps:k,...T}=e,[L,O]=S.useState(String(u));S.useEffect(()=>{!L.match(hD)&&u!==Number(L)&&O(String(u))},[u,L]);const D=N=>{O(N),N.match(hD)||d(y?Math.floor(Number(N)):Number(N))},I=N=>{const W=Pe.clamp(y?Math.floor(Number(N.target.value)):Number(N.target.value),h,m);O(String(W)),d(W)};return g.jsx(si,{...k,children:g.jsxs(sn,{isDisabled:i,isInvalid:l,className:r?`invokeai__number-input-form-control ${r}`:"invokeai__number-input-form-control",...b,children:[t&&g.jsx(Sn,{className:"invokeai__number-input-form-label",style:{display:t?"block":"none"},fontSize:n,fontWeight:"bold",marginRight:0,marginBottom:0,whiteSpace:"nowrap",...w,children:t}),g.jsxs(B8,{className:"invokeai__number-input-root",value:L,min:h,max:m,keepWithinRange:!0,clampValueOnBlur:!1,onChange:D,onBlur:I,width:a,...T,children:[g.jsx(z8,{className:"invokeai__number-input-field",textAlign:s,...E}),o&&g.jsxs("div",{className:"invokeai__number-input-stepper",children:[g.jsx(W8,{..._,className:"invokeai__number-input-stepper-button"}),g.jsx(H8,{..._,className:"invokeai__number-input-stepper-button"})]})]})]})})};function lPe(){const e=le(a=>a.generation.seed),t=le(a=>a.generation.shouldRandomizeSeed),n=le(a=>a.generation.shouldGenerateVariations),{t:r}=De(),i=Te(),o=a=>i(p2(a));return g.jsx(lc,{label:r("parameters.seed"),step:1,precision:0,flexGrow:1,min:CE,max:_E,isDisabled:t,isInvalid:e<0&&n,onChange:o,value:e,width:"auto"})}function uPe(){const e=Te(),t=le(i=>i.generation.shouldRandomizeSeed),{t:n}=De(),r=()=>e(p2(NV(CE,_E)));return g.jsx(ss,{size:"sm",isDisabled:t,onClick:r,padding:"0 1.5rem",children:g.jsx("p",{children:n("parameters.shuffle")})})}function cPe(){const e=Te(),t=le(r=>r.generation.threshold),{t:n}=De();return g.jsx(Dn,{label:n("parameters.noiseThreshold"),min:0,max:20,step:.1,onChange:r=>e(bk(r)),handleReset:()=>e(bk(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0,sliderMarkRightOffset:-4})}const aP=()=>g.jsxs(ke,{gap:2,direction:"column",children:[g.jsx(sPe,{}),g.jsxs(ke,{gap:2,children:[g.jsx(lPe,{}),g.jsx(uPe,{})]}),g.jsx(ke,{gap:2,children:g.jsx(cPe,{})}),g.jsx(ke,{gap:2,children:g.jsx(aPe,{})})]});function hq(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.shouldRunESRGAN),n=Te(),r=i=>n(U3e(i.target.checked));return g.jsx(_a,{isDisabled:!e,isChecked:t,onChange:r})}function sP(){const e=le(r=>r.generation.shouldGenerateVariations),t=Te(),n=r=>t($3e(r.target.checked));return g.jsx(_a,{isChecked:e,width:"auto",onChange:n})}function qn(e){const{label:t="",styleClass:n,isDisabled:r=!1,fontSize:i="sm",width:o,size:a="sm",isInvalid:s,...l}=e;return g.jsxs(sn,{className:`input ${n}`,isInvalid:s,isDisabled:r,children:[t!==""&&g.jsx(Sn,{fontSize:i,fontWeight:"bold",alignItems:"center",whiteSpace:"nowrap",marginBottom:0,marginRight:0,className:"input-label",children:t}),g.jsx(E8,{...l,className:"input-entry",size:a,width:o})]})}function dPe(){const e=le(o=>o.generation.seedWeights),t=le(o=>o.generation.shouldGenerateVariations),{t:n}=De(),r=Te(),i=o=>r(hU(o.target.value));return g.jsx(qn,{label:n("parameters.seedWeights"),value:e,isInvalid:t&&!(yE(e)||e===""),isDisabled:!t,onChange:i})}function fPe(){const e=le(i=>i.generation.variationAmount),t=le(i=>i.generation.shouldGenerateVariations),{t:n}=De(),r=Te();return g.jsx(Dn,{label:n("parameters.variationAmount"),value:e,step:.01,min:0,max:1,isSliderDisabled:!t,isInputDisabled:!t,isResetDisabled:!t,onChange:i=>r(iR(i)),handleReset:()=>r(iR(.1)),withInput:!0,withReset:!0,withSliderMarks:!0})}const lP=()=>g.jsxs(ke,{gap:2,direction:"column",children:[g.jsx(fPe,{}),g.jsx(dPe,{})]}),hPe=lt(hr,e=>e.shouldDisplayGuides),pPe=({children:e,feature:t})=>{const n=le(hPe),{text:r}=iPe(t);return n?g.jsxs(V8,{trigger:"hover",children:[g.jsx(U8,{children:g.jsx(ao,{children:e})}),g.jsxs(q8,{className:"guide-popover-content",maxWidth:"400px",onClick:i=>i.preventDefault(),cursor:"initial",children:[g.jsx(G8,{className:"guide-popover-arrow"}),g.jsx("div",{className:"guide-popover-guide-content",children:r})]})]}):null},gPe=Ze(({feature:e,icon:t=i7e},n)=>g.jsx(pPe,{feature:e,children:g.jsx(ao,{ref:n,children:g.jsx(ja,{marginBottom:"-.15rem",as:t})})}));function mPe(e){const{header:t,feature:n,content:r,additionalHeaderComponents:i}=e;return g.jsxs(rm,{className:"advanced-parameters-item",children:[g.jsx(tm,{className:"advanced-parameters-header",children:g.jsxs(ke,{width:"100%",gap:"0.5rem",align:"center",children:[g.jsx(ao,{flexGrow:1,textAlign:"left",children:t}),i,n&&g.jsx(gPe,{feature:n}),g.jsx(nm,{})]})}),g.jsx(om,{className:"advanced-parameters-panel",children:r})]})}const n0=e=>{const{accordionInfo:t}=e,n=le(a=>a.system.openAccordions),r=Te(),i=a=>r(v4e(a)),o=()=>{const a=[];return t&&Object.keys(t).forEach(s=>{const{header:l,feature:u,content:d,additionalHeaderComponents:h}=t[s];a.push(g.jsx(mPe,{header:l,feature:u,content:d,additionalHeaderComponents:h},s))}),a};return g.jsx(c8,{defaultIndex:n,allowMultiple:!0,reduceMotion:!0,onChange:i,className:"advanced-parameters",children:o()})};function pD(){const e=Te(),t=le(o=>o.generation.cfgScale),n=le(o=>o.ui.shouldUseSliders),{t:r}=De(),i=o=>e(gk(o));return n?g.jsx(Dn,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:30,onChange:i,handleReset:()=>e(gk(7.5)),value:t,sliderMarkRightOffset:-5,sliderNumberInputProps:{max:200},withInput:!0,withReset:!0,withSliderMarks:!0}):g.jsx(lc,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:200,onChange:i,value:t,width:"auto",styleClass:"main-settings-block",textAlign:"center",isInteger:!1})}function gD(){const e=le(o=>o.generation.height),t=le(o=>o.ui.shouldUseSliders),n=le(Br),r=Te(),{t:i}=De();return t?g.jsx(Dn,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:i("parameters.height"),value:e,min:64,step:64,max:2048,onChange:o=>r(uS(o)),handleReset:()=>r(uS(512)),withInput:!0,withReset:!0,withSliderMarks:!0,sliderMarkRightOffset:-8,inputWidth:"6.2rem",sliderNumberInputProps:{max:15360}}):g.jsx(Jo,{isDisabled:n==="unifiedCanvas",label:i("parameters.height"),value:e,flexGrow:1,onChange:o=>r(uS(Number(o.target.value))),validValues:O5e,styleClass:"main-settings-block",width:"5.5rem"})}function mD(){const e=le(o=>o.generation.iterations),t=le(o=>o.ui.shouldUseSliders),n=Te(),{t:r}=De(),i=o=>n(QO(o));return t?g.jsx(Dn,{label:r("parameters.images"),step:1,min:1,max:16,onChange:i,handleReset:()=>n(QO(1)),value:e,withInput:!0,withReset:!0,withSliderMarks:!0,sliderMarkRightOffset:-5,sliderNumberInputProps:{max:9999}}):g.jsx(lc,{label:r("parameters.images"),step:1,min:1,max:9999,onChange:i,value:e,width:"auto",labelFontSize:.5,styleClass:"main-settings-block",textAlign:"center"})}function vD(){const e=le(o=>o.generation.sampler),t=le(VV),n=Te(),{t:r}=De(),i=o=>n(dU(o.target.value));return g.jsx(Jo,{label:r("parameters.sampler"),value:e,onChange:i,validValues:t.format==="diffusers"?L5e:M5e,styleClass:"main-settings-block",minWidth:"9rem"})}function yD(){const e=Te(),t=le(o=>o.generation.steps),n=le(o=>o.ui.shouldUseSliders),{t:r}=De(),i=o=>e(yk(o));return n?g.jsx(Dn,{label:r("parameters.steps"),min:1,step:1,onChange:i,handleReset:()=>e(yk(20)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0,sliderMarkRightOffset:-6,sliderNumberInputProps:{max:9999}}):g.jsx(lc,{label:r("parameters.steps"),min:1,max:9999,step:1,onChange:i,value:t,width:"auto",styleClass:"main-settings-block",textAlign:"center"})}function bD(){const e=le(o=>o.generation.width),t=le(o=>o.ui.shouldUseSliders),n=le(Br),{t:r}=De(),i=Te();return t?g.jsx(Dn,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,min:64,step:64,max:2048,onChange:o=>i(cS(o)),handleReset:()=>i(cS(512)),withInput:!0,withReset:!0,withSliderMarks:!0,sliderMarkRightOffset:-8,inputWidth:"6.2rem",inputReadOnly:!0,sliderNumberInputProps:{max:15360}}):g.jsx(Jo,{isDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,flexGrow:1,onChange:o=>i(cS(Number(o.target.value))),validValues:A5e,styleClass:"main-settings-block",width:"5.5rem"})}function uP(){const{t:e}=De(),t=le(r=>r.ui.shouldUseSliders),n={main:{header:`${e("parameters.general")}`,feature:void 0,content:t?g.jsxs(ke,{flexDir:"column",rowGap:2,children:[g.jsx(mD,{}),g.jsx(yD,{}),g.jsx(pD,{}),g.jsx(bD,{}),g.jsx(gD,{}),g.jsx(vD,{})]}):g.jsxs(ke,{flexDirection:"column",rowGap:2,children:[g.jsxs(ke,{gap:2,children:[g.jsx(mD,{}),g.jsx(yD,{}),g.jsx(pD,{})]}),g.jsxs(ke,{children:[g.jsx(bD,{}),g.jsx(gD,{}),g.jsx(vD,{})]})]})}};return g.jsx(n0,{accordionInfo:n})}const vPe=lt(DE,({shouldLoopback:e})=>e),yPe=()=>{const e=Te(),t=le(vPe),{t:n}=De();return g.jsx(Ye,{"aria-label":n("parameters.toggleLoopback"),tooltip:n("parameters.toggleLoopback"),styleClass:"loopback-btn",asCheckbox:!0,isChecked:t,icon:g.jsx(Oke,{}),onClick:()=>{e(W3e(!t))}})},cP=()=>{const e=le(Br);return g.jsxs("div",{className:"process-buttons",children:[g.jsx(tP,{}),e==="img2img"&&g.jsx(yPe,{}),g.jsx(JE,{})]})},dP=()=>{const e=le(r=>r.generation.negativePrompt),t=Te(),{t:n}=De();return g.jsx(sn,{children:g.jsx(Z8,{id:"negativePrompt",name:"negativePrompt",value:e,onChange:r=>t(cU(r.target.value)),background:"var(--prompt-bg-color)",placeholder:n("parameters.negativePrompts"),_placeholder:{fontSize:"0.8rem"},borderColor:"var(--border-color)",_hover:{borderColor:"var(--border-color-light)"},_focusVisible:{borderColor:"var(--border-color-invalid)",boxShadow:"0 0 10px var(--box-shadow-color-invalid)"},fontSize:"0.9rem",color:"var(--text-color-secondary)"})})},bPe=lt([e=>e.generation,Br],(e,t)=>({prompt:e.prompt,activeTabName:t}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),fP=()=>{const e=Te(),{prompt:t,activeTabName:n}=le(bPe),{isReady:r}=le(uq),i=S.useRef(null),{t:o}=De(),a=l=>{e(uU(l.target.value))};Je("alt+a",()=>{var l;(l=i.current)==null||l.focus()},[]);const s=l=>{l.key==="Enter"&&l.shiftKey===!1&&r&&(l.preventDefault(),e(Wk(n)))};return g.jsx("div",{className:"prompt-bar",children:g.jsx(sn,{isInvalid:t.length===0||Boolean(t.match(/^[\s\r\n]+$/)),children:g.jsx(Z8,{id:"prompt",name:"prompt",placeholder:o("parameters.promptPlaceholder"),size:"lg",value:t,onChange:a,onKeyDown:s,resize:"vertical",height:30,ref:i,_placeholder:{color:"var(--text-color-secondary)"}})})})},pq=""+new URL("logo-13003d72.png",import.meta.url).href,xPe=lt(fp,e=>{const{shouldShowParametersPanel:t,shouldHoldParametersPanelOpen:n,shouldPinParametersPanel:r,parametersPanelScrollPosition:i}=e;return{shouldShowParametersPanel:t,shouldHoldParametersPanelOpen:n,shouldPinParametersPanel:r,parametersPanelScrollPosition:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),hP=e=>{const t=Te(),{shouldShowParametersPanel:n,shouldHoldParametersPanelOpen:r,shouldPinParametersPanel:i}=le(xPe),o=S.useRef(null),a=S.useRef(null),s=S.useRef(null),{children:l}=e;Je("o",()=>{t(Fh(!n)),i&&setTimeout(()=>t(Li(!0)),400)},[n,i]),Je("esc",()=>{t(Fh(!1))},{enabled:()=>!i,preventDefault:!0},[i]),Je("shift+o",()=>{m(),t(Li(!0))},[i]);const u=S.useCallback(()=>{i||(t(I4e(a.current?a.current.scrollTop:0)),t(Fh(!1)),t(D4e(!1)))},[t,i]),d=()=>{s.current=window.setTimeout(()=>u(),500)},h=()=>{s.current&&window.clearTimeout(s.current)},m=()=>{t(j4e(!i)),t(Li(!0))};return S.useEffect(()=>{function y(b){o.current&&!o.current.contains(b.target)&&u()}return document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y)}},[u]),g.jsx(vG,{nodeRef:o,in:n||r&&!i,unmountOnExit:!0,timeout:200,classNames:"parameters-panel-wrapper",children:g.jsx("div",{className:"parameters-panel-wrapper","data-pinned":i,tabIndex:1,ref:o,onMouseEnter:i?void 0:h,onMouseOver:i?void 0:h,style:{borderRight:i?"":"0.3rem solid var(--tab-list-text-inactive)"},children:g.jsx("div",{className:"parameters-panel-margin",children:g.jsxs("div",{className:"parameters-panel",ref:a,onMouseLeave:y=>{y.target!==a.current?h():!i&&d()},children:[g.jsx(si,{label:"Pin Options Panel",children:g.jsx("div",{className:"parameters-panel-pin-button","data-selected":i,onClick:m,children:i?g.jsx(fG,{}):g.jsx(hG,{})})}),!i&&g.jsxs("div",{className:"invoke-ai-logo-wrapper",children:[g.jsx("img",{src:pq,alt:"invoke-ai-logo"}),g.jsxs("h1",{children:["invoke ",g.jsx("strong",{children:"ai"})]})]}),l]})})})})};function SPe(){const e=Te(),t=le(i=>i.generation.shouldFitToWidthHeight),n=i=>e(pU(i.target.checked)),{t:r}=De();return g.jsx(_a,{label:r("parameters.imageFit"),isChecked:t,onChange:n})}function gq(e){const{t}=De(),{label:n=`${t("parameters.strength")}`,styleClass:r}=e,i=le(l=>l.generation.img2imgStrength),o=Te(),a=l=>o(mk(l)),s=()=>{o(mk(.75))};return g.jsx(Dn,{label:n,step:.01,min:.01,max:1,onChange:a,value:i,isInteger:!1,styleClass:r,withInput:!0,withSliderMarks:!0,inputWidth:"5.5rem",withReset:!0,handleReset:s})}function wPe(){const{t:e}=De(),t={imageToImage:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:g.jsxs(ke,{gap:2,flexDir:"column",children:[g.jsx(gq,{label:e("parameters.img2imgStrength"),styleClass:"main-settings-block image-to-image-strength-main-option"}),g.jsx(SPe,{})]})}};return g.jsx(n0,{accordionInfo:t})}function CPe(){const{t:e}=De(),t={seed:{header:`${e("parameters.seed")}`,feature:oo.SEED,content:g.jsx(aP,{})},variations:{header:`${e("parameters.variations")}`,feature:oo.VARIATIONS,content:g.jsx(lP,{}),additionalHeaderComponents:g.jsx(sP,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:oo.FACE_CORRECTION,content:g.jsx(RE,{}),additionalHeaderComponents:g.jsx(dq,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:oo.UPSCALE,content:g.jsx(IE,{}),additionalHeaderComponents:g.jsx(hq,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(iP,{}),additionalHeaderComponents:g.jsx(oP,{})},other:{header:`${e("parameters.otherOptions")}`,feature:oo.OTHER,content:g.jsx(oPe,{})}};return g.jsxs(hP,{children:[g.jsxs(ke,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(fP,{}),g.jsx(dP,{})]}),g.jsx(cP,{}),g.jsx(uP,{}),g.jsx(wPe,{}),g.jsx(n0,{accordionInfo:t})]})}function _Pe(){return g.jsx(rP,{optionsPanel:g.jsx(CPe,{}),children:g.jsx(nPe,{})})}const kPe=()=>g.jsx("div",{className:"workarea-single-view",children:g.jsx("div",{className:"text-to-image-area",children:g.jsx(cq,{})})});function EPe(e){const{active:t=!0,width:n="1rem",height:r="1.3rem",side:i="right"}=e;return g.jsxs(g.Fragment,{children:[i==="right"&&g.jsx(ao,{width:n,height:r,margin:"-0.5rem 0.5rem 0 0.5rem",borderLeft:t?"3px solid var(--subhook-color)":"3px solid var(--tab-hover-color)",borderBottom:t?"3px solid var(--subhook-color)":"3px solid var(--tab-hover-color)"}),i==="left"&&g.jsx(ao,{width:n,height:r,margin:"-0.5rem 0.5rem 0 0.5rem",borderRight:t?"3px solid var(--subhook-color)":"3px solid var(--tab-hover-color)",borderBottom:t?"3px solid var(--subhook-color)":"3px solid var(--tab-hover-color)"})]})}const PPe=lt([DE],({hiresFix:e,hiresStrength:t})=>({hiresFix:e,hiresStrength:t}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),TPe=()=>{const{hiresFix:e,hiresStrength:t}=le(PPe),n=Te(),{t:r}=De(),i=a=>{n(sR(a))},o=()=>{n(sR(.75))};return g.jsxs(ke,{children:[g.jsx(EPe,{active:e}),g.jsx(Dn,{label:r("parameters.hiresStrength"),step:.01,min:.01,max:.99,onChange:i,value:t,isInteger:!1,withInput:!0,withSliderMarks:!0,inputWidth:"5.5rem",withReset:!0,handleReset:o,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,sliderMarkRightOffset:-7})]})},MPe=()=>{const e=Te(),t=le(i=>i.postprocessing.hiresFix),{t:n}=De(),r=i=>e(vU(i.target.checked));return g.jsxs(ke,{rowGap:"0.8rem",direction:"column",children:[g.jsx(_a,{label:n("parameters.hiresOptim"),fontSize:"md",isChecked:t,onChange:r}),g.jsx(TPe,{})]})},LPe=()=>g.jsxs(ke,{gap:2,direction:"column",children:[g.jsx(fq,{}),g.jsx(MPe,{})]});function APe(){const{t:e}=De(),t={seed:{header:`${e("parameters.seed")}`,feature:oo.SEED,content:g.jsx(aP,{})},variations:{header:`${e("parameters.variations")}`,feature:oo.VARIATIONS,content:g.jsx(lP,{}),additionalHeaderComponents:g.jsx(sP,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:oo.FACE_CORRECTION,content:g.jsx(RE,{}),additionalHeaderComponents:g.jsx(dq,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:oo.UPSCALE,content:g.jsx(IE,{}),additionalHeaderComponents:g.jsx(hq,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(iP,{}),additionalHeaderComponents:g.jsx(oP,{})},other:{header:`${e("parameters.otherOptions")}`,feature:oo.OTHER,content:g.jsx(LPe,{})}};return g.jsxs(hP,{children:[g.jsxs(ke,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(fP,{}),g.jsx(dP,{})]}),g.jsx(cP,{}),g.jsx(uP,{}),g.jsx(n0,{accordionInfo:t})]})}function OPe(){return g.jsx(rP,{optionsPanel:g.jsx(APe,{}),children:g.jsx(kPe,{})})}var o7={},RPe={get exports(){return o7},set exports(e){o7=e}};/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var IPe=function(t){var n={},r=S,i=Th,o=Object.assign;function a(f){for(var p="https://reactjs.org/docs/error-decoder.html?invariant="+f,x=1;xae||M[U]!==R[ae]){var he=` -`+M[U].replace(" at new "," at ");return f.displayName&&he.includes("")&&(he=he.replace("",f.displayName)),he}while(1<=U&&0<=ae);break}}}finally{il=!1,Error.prepareStackTrace=x}return(f=f?f.displayName||f.name:"")?hu(f):""}var kp=Object.prototype.hasOwnProperty,wc=[],ol=-1;function ra(f){return{current:f}}function Mn(f){0>ol||(f.current=wc[ol],wc[ol]=null,ol--)}function wn(f,p){ol++,wc[ol]=f.current,f.current=p}var ia={},Hr=ra(ia),ui=ra(!1),oa=ia;function al(f,p){var x=f.type.contextTypes;if(!x)return ia;var P=f.stateNode;if(P&&P.__reactInternalMemoizedUnmaskedChildContext===p)return P.__reactInternalMemoizedMaskedChildContext;var M={},R;for(R in x)M[R]=p[R];return P&&(f=f.stateNode,f.__reactInternalMemoizedUnmaskedChildContext=p,f.__reactInternalMemoizedMaskedChildContext=M),M}function ci(f){return f=f.childContextTypes,f!=null}function Ss(){Mn(ui),Mn(Hr)}function yf(f,p,x){if(Hr.current!==ia)throw Error(a(168));wn(Hr,p),wn(ui,x)}function gu(f,p,x){var P=f.stateNode;if(p=p.childContextTypes,typeof P.getChildContext!="function")return x;P=P.getChildContext();for(var M in P)if(!(M in p))throw Error(a(108,N(f)||"Unknown",M));return o({},x,P)}function ws(f){return f=(f=f.stateNode)&&f.__reactInternalMemoizedMergedChildContext||ia,oa=Hr.current,wn(Hr,f),wn(ui,ui.current),!0}function bf(f,p,x){var P=f.stateNode;if(!P)throw Error(a(169));x?(f=gu(f,p,oa),P.__reactInternalMemoizedMergedChildContext=f,Mn(ui),Mn(Hr),wn(Hr,f)):Mn(ui),wn(ui,x)}var Ri=Math.clz32?Math.clz32:xf,Ep=Math.log,Pp=Math.LN2;function xf(f){return f>>>=0,f===0?32:31-(Ep(f)/Pp|0)|0}var sl=64,Mo=4194304;function ll(f){switch(f&-f){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return f&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return f&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return f}}function mu(f,p){var x=f.pendingLanes;if(x===0)return 0;var P=0,M=f.suspendedLanes,R=f.pingedLanes,U=x&268435455;if(U!==0){var ae=U&~M;ae!==0?P=ll(ae):(R&=U,R!==0&&(P=ll(R)))}else U=x&~M,U!==0?P=ll(U):R!==0&&(P=ll(R));if(P===0)return 0;if(p!==0&&p!==P&&!(p&M)&&(M=P&-P,R=p&-p,M>=R||M===16&&(R&4194240)!==0))return p;if(P&4&&(P|=x&16),p=f.entangledLanes,p!==0)for(f=f.entanglements,p&=P;0x;x++)p.push(f);return p}function $a(f,p,x){f.pendingLanes|=p,p!==536870912&&(f.suspendedLanes=0,f.pingedLanes=0),f=f.eventTimes,p=31-Ri(p),f[p]=x}function wf(f,p){var x=f.pendingLanes&~p;f.pendingLanes=p,f.suspendedLanes=0,f.pingedLanes=0,f.expiredLanes&=p,f.mutableReadLanes&=p,f.entangledLanes&=p,p=f.entanglements;var P=f.eventTimes;for(f=f.expirationTimes;0>=U,M-=U,uo=1<<32-Ri(p)+M|x<Ut?(ti=At,At=null):ti=At.sibling;var Qt=it(ge,At,ve[Ut],et);if(Qt===null){At===null&&(At=ti);break}f&&At&&Qt.alternate===null&&p(ge,At),ue=R(Qt,ue,Ut),It===null?Oe=Qt:It.sibling=Qt,It=Qt,At=ti}if(Ut===ve.length)return x(ge,At),zn&&ul(ge,Ut),Oe;if(At===null){for(;UtUt?(ti=At,At=null):ti=At.sibling;var As=it(ge,At,Qt.value,et);if(As===null){At===null&&(At=ti);break}f&&At&&As.alternate===null&&p(ge,At),ue=R(As,ue,Ut),It===null?Oe=As:It.sibling=As,It=As,At=ti}if(Qt.done)return x(ge,At),zn&&ul(ge,Ut),Oe;if(At===null){for(;!Qt.done;Ut++,Qt=ve.next())Qt=Rt(ge,Qt.value,et),Qt!==null&&(ue=R(Qt,ue,Ut),It===null?Oe=Qt:It.sibling=Qt,It=Qt);return zn&&ul(ge,Ut),Oe}for(At=P(ge,At);!Qt.done;Ut++,Qt=ve.next())Qt=Wn(At,ge,Ut,Qt.value,et),Qt!==null&&(f&&Qt.alternate!==null&&At.delete(Qt.key===null?Ut:Qt.key),ue=R(Qt,ue,Ut),It===null?Oe=Qt:It.sibling=Qt,It=Qt);return f&&At.forEach(function(ki){return p(ge,ki)}),zn&&ul(ge,Ut),Oe}function ma(ge,ue,ve,et){if(typeof ve=="object"&&ve!==null&&ve.type===d&&ve.key===null&&(ve=ve.props.children),typeof ve=="object"&&ve!==null){switch(ve.$$typeof){case l:e:{for(var Oe=ve.key,It=ue;It!==null;){if(It.key===Oe){if(Oe=ve.type,Oe===d){if(It.tag===7){x(ge,It.sibling),ue=M(It,ve.props.children),ue.return=ge,ge=ue;break e}}else if(It.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===T&&G0(Oe)===It.type){x(ge,It.sibling),ue=M(It,ve.props),ue.ref=za(ge,It,ve),ue.return=ge,ge=ue;break e}x(ge,It);break}else p(ge,It);It=It.sibling}ve.type===d?(ue=Cl(ve.props.children,ge.mode,et,ve.key),ue.return=ge,ge=ue):(et=Xf(ve.type,ve.key,ve.props,null,ge.mode,et),et.ref=za(ge,ue,ve),et.return=ge,ge=et)}return U(ge);case u:e:{for(It=ve.key;ue!==null;){if(ue.key===It)if(ue.tag===4&&ue.stateNode.containerInfo===ve.containerInfo&&ue.stateNode.implementation===ve.implementation){x(ge,ue.sibling),ue=M(ue,ve.children||[]),ue.return=ge,ge=ue;break e}else{x(ge,ue);break}else p(ge,ue);ue=ue.sibling}ue=_l(ve,ge.mode,et),ue.return=ge,ge=ue}return U(ge);case T:return It=ve._init,ma(ge,ue,It(ve._payload),et)}if(V(ve))return Ln(ge,ue,ve,et);if(D(ve))return gr(ge,ue,ve,et);Qi(ge,ve)}return typeof ve=="string"&&ve!==""||typeof ve=="number"?(ve=""+ve,ue!==null&&ue.tag===6?(x(ge,ue.sibling),ue=M(ue,ve),ue.return=ge,ge=ue):(x(ge,ue),ue=pg(ve,ge.mode,et),ue.return=ge,ge=ue),U(ge)):x(ge,ue)}return ma}var Rc=D2(!0),j2=D2(!1),Rf={},Ro=ra(Rf),Ha=ra(Rf),ie=ra(Rf);function be(f){if(f===Rf)throw Error(a(174));return f}function me(f,p){wn(ie,p),wn(Ha,f),wn(Ro,Rf),f=Q(p),Mn(Ro),wn(Ro,f)}function rt(){Mn(Ro),Mn(Ha),Mn(ie)}function Lt(f){var p=be(ie.current),x=be(Ro.current);p=G(x,f.type,p),x!==p&&(wn(Ha,f),wn(Ro,p))}function en(f){Ha.current===f&&(Mn(Ro),Mn(Ha))}var Nt=ra(0);function dn(f){for(var p=f;p!==null;){if(p.tag===13){var x=p.memoizedState;if(x!==null&&(x=x.dehydrated,x===null||xc(x)||vf(x)))return p}else if(p.tag===19&&p.memoizedProps.revealOrder!==void 0){if(p.flags&128)return p}else if(p.child!==null){p.child.return=p,p=p.child;continue}if(p===f)break;for(;p.sibling===null;){if(p.return===null||p.return===f)return null;p=p.return}p.sibling.return=p.return,p=p.sibling}return null}var If=[];function q0(){for(var f=0;fx?x:4,f(!0);var P=Ic.transition;Ic.transition={};try{f(!1),p()}finally{Gt=x,Ic.transition=P}}function zc(){return ji().memoizedState}function tv(f,p,x){var P=qr(f);if(x={lane:P,action:x,hasEagerState:!1,eagerState:null,next:null},Wc(f))Uc(p,x);else if(x=Oc(f,p,x,P),x!==null){var M=_i();jo(x,f,P,M),Bf(x,p,P)}}function Hc(f,p,x){var P=qr(f),M={lane:P,action:x,hasEagerState:!1,eagerState:null,next:null};if(Wc(f))Uc(p,M);else{var R=f.alternate;if(f.lanes===0&&(R===null||R.lanes===0)&&(R=p.lastRenderedReducer,R!==null))try{var U=p.lastRenderedState,ae=R(U,x);if(M.hasEagerState=!0,M.eagerState=ae,q(ae,U)){var he=p.interleaved;he===null?(M.next=M,Af(p)):(M.next=he.next,he.next=M),p.interleaved=M;return}}catch{}finally{}x=Oc(f,p,M,P),x!==null&&(M=_i(),jo(x,f,P,M),Bf(x,p,P))}}function Wc(f){var p=f.alternate;return f===Cn||p!==null&&p===Cn}function Uc(f,p){Df=an=!0;var x=f.pending;x===null?p.next=p:(p.next=x.next,x.next=p),f.pending=p}function Bf(f,p,x){if(x&4194240){var P=p.lanes;P&=f.pendingLanes,x|=P,p.lanes=x,vu(f,x)}}var ks={readContext:co,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},A4={readContext:co,useCallback:function(f,p){return fi().memoizedState=[f,p===void 0?null:p],f},useContext:co,useEffect:F2,useImperativeHandle:function(f,p,x){return x=x!=null?x.concat([f]):null,Su(4194308,4,Or.bind(null,p,f),x)},useLayoutEffect:function(f,p){return Su(4194308,4,f,p)},useInsertionEffect:function(f,p){return Su(4,2,f,p)},useMemo:function(f,p){var x=fi();return p=p===void 0?null:p,f=f(),x.memoizedState=[f,p],f},useReducer:function(f,p,x){var P=fi();return p=x!==void 0?x(p):p,P.memoizedState=P.baseState=p,f={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:f,lastRenderedState:p},P.queue=f,f=f.dispatch=tv.bind(null,Cn,f),[P.memoizedState,f]},useRef:function(f){var p=fi();return f={current:f},p.memoizedState=f},useState:$2,useDebugValue:Q0,useDeferredValue:function(f){return fi().memoizedState=f},useTransition:function(){var f=$2(!1),p=f[0];return f=ev.bind(null,f[1]),fi().memoizedState=f,[p,f]},useMutableSource:function(){},useSyncExternalStore:function(f,p,x){var P=Cn,M=fi();if(zn){if(x===void 0)throw Error(a(407));x=x()}else{if(x=p(),ei===null)throw Error(a(349));xu&30||Z0(P,p,x)}M.memoizedState=x;var R={value:x,getSnapshot:p};return M.queue=R,F2(fl.bind(null,P,R,f),[f]),P.flags|=2048,$f(9,Fc.bind(null,P,R,x,p),void 0,null),x},useId:function(){var f=fi(),p=ei.identifierPrefix;if(zn){var x=Fa,P=uo;x=(P&~(1<<32-Ri(P)-1)).toString(32)+x,p=":"+p+"R"+x,x=Dc++,0ig&&(p.flags|=128,P=!0,qc(M,!1),p.lanes=4194304)}else{if(!P)if(f=dn(R),f!==null){if(p.flags|=128,P=!0,f=f.updateQueue,f!==null&&(p.updateQueue=f,p.flags|=4),qc(M,!0),M.tail===null&&M.tailMode==="hidden"&&!R.alternate&&!zn)return Si(p),null}else 2*Xn()-M.renderingStartTime>ig&&x!==1073741824&&(p.flags|=128,P=!0,qc(M,!1),p.lanes=4194304);M.isBackwards?(R.sibling=p.child,p.child=R):(f=M.last,f!==null?f.sibling=R:p.child=R,M.last=R)}return M.tail!==null?(p=M.tail,M.rendering=p,M.tail=p.sibling,M.renderingStartTime=Xn(),p.sibling=null,f=Nt.current,wn(Nt,P?f&1|2:f&1),p):(Si(p),null);case 22:case 23:return nd(),x=p.memoizedState!==null,f!==null&&f.memoizedState!==null!==x&&(p.flags|=8192),x&&p.mode&1?ho&1073741824&&(Si(p),Be&&p.subtreeFlags&6&&(p.flags|=8192)):Si(p),null;case 24:return null;case 25:return null}throw Error(a(156,p.tag))}function uv(f,p){switch(H0(p),p.tag){case 1:return ci(p.type)&&Ss(),f=p.flags,f&65536?(p.flags=f&-65537|128,p):null;case 3:return rt(),Mn(ui),Mn(Hr),q0(),f=p.flags,f&65536&&!(f&128)?(p.flags=f&-65537|128,p):null;case 5:return en(p),null;case 13:if(Mn(Nt),f=p.memoizedState,f!==null&&f.dehydrated!==null){if(p.alternate===null)throw Error(a(340));Mc()}return f=p.flags,f&65536?(p.flags=f&-65537|128,p):null;case 19:return Mn(Nt),null;case 4:return rt(),null;case 10:return Mf(p.type._context),null;case 22:case 23:return nd(),null;case 24:return null;default:return null}}var pl=!1,Ur=!1,N4=typeof WeakSet=="function"?WeakSet:Set,st=null;function Kc(f,p){var x=f.ref;if(x!==null)if(typeof x=="function")try{x(null)}catch(P){Qn(f,p,P)}else x.current=null}function fa(f,p,x){try{x()}catch(P){Qn(f,p,P)}}var Vp=!1;function Cu(f,p){for(Y(f.containerInfo),st=p;st!==null;)if(f=st,p=f.child,(f.subtreeFlags&1028)!==0&&p!==null)p.return=f,st=p;else for(;st!==null;){f=st;try{var x=f.alternate;if(f.flags&1024)switch(f.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var P=x.memoizedProps,M=x.memoizedState,R=f.stateNode,U=R.getSnapshotBeforeUpdate(f.elementType===f.type?P:sa(f.type,P),M);R.__reactInternalSnapshotBeforeUpdate=U}break;case 3:Be&&Xi(f.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(a(163))}}catch(ae){Qn(f,f.return,ae)}if(p=f.sibling,p!==null){p.return=f.return,st=p;break}st=f.return}return x=Vp,Vp=!1,x}function wi(f,p,x){var P=p.updateQueue;if(P=P!==null?P.lastEffect:null,P!==null){var M=P=P.next;do{if((M.tag&f)===f){var R=M.destroy;M.destroy=void 0,R!==void 0&&fa(p,x,R)}M=M.next}while(M!==P)}}function Gp(f,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var x=p=p.next;do{if((x.tag&f)===f){var P=x.create;x.destroy=P()}x=x.next}while(x!==p)}}function qp(f){var p=f.ref;if(p!==null){var x=f.stateNode;switch(f.tag){case 5:f=X(x);break;default:f=x}typeof p=="function"?p(f):p.current=f}}function cv(f){var p=f.alternate;p!==null&&(f.alternate=null,cv(p)),f.child=null,f.deletions=null,f.sibling=null,f.tag===5&&(p=f.stateNode,p!==null&&mt(p)),f.stateNode=null,f.return=null,f.dependencies=null,f.memoizedProps=null,f.memoizedState=null,f.pendingProps=null,f.stateNode=null,f.updateQueue=null}function Yc(f){return f.tag===5||f.tag===3||f.tag===4}function Ps(f){e:for(;;){for(;f.sibling===null;){if(f.return===null||Yc(f.return))return null;f=f.return}for(f.sibling.return=f.return,f=f.sibling;f.tag!==5&&f.tag!==6&&f.tag!==18;){if(f.flags&2||f.child===null||f.tag===4)continue e;f.child.return=f,f=f.child}if(!(f.flags&2))return f.stateNode}}function Kp(f,p,x){var P=f.tag;if(P===5||P===6)f=f.stateNode,p?zr(x,f,p):Ct(x,f);else if(P!==4&&(f=f.child,f!==null))for(Kp(f,p,x),f=f.sibling;f!==null;)Kp(f,p,x),f=f.sibling}function dv(f,p,x){var P=f.tag;if(P===5||P===6)f=f.stateNode,p?pt(x,f,p):Me(x,f);else if(P!==4&&(f=f.child,f!==null))for(dv(f,p,x),f=f.sibling;f!==null;)dv(f,p,x),f=f.sibling}var Ir=null,ha=!1;function pa(f,p,x){for(x=x.child;x!==null;)Vr(f,p,x),x=x.sibling}function Vr(f,p,x){if(qt&&typeof qt.onCommitFiberUnmount=="function")try{qt.onCommitFiberUnmount(cn,x)}catch{}switch(x.tag){case 5:Ur||Kc(x,p);case 6:if(Be){var P=Ir,M=ha;Ir=null,pa(f,p,x),Ir=P,ha=M,Ir!==null&&(ha?Bn(Ir,x.stateNode):rr(Ir,x.stateNode))}else pa(f,p,x);break;case 18:Be&&Ir!==null&&(ha?N0(Ir,x.stateNode):j0(Ir,x.stateNode));break;case 4:Be?(P=Ir,M=ha,Ir=x.stateNode.containerInfo,ha=!0,pa(f,p,x),Ir=P,ha=M):(Ae&&(P=x.stateNode.containerInfo,M=Na(P),bc(P,M)),pa(f,p,x));break;case 0:case 11:case 14:case 15:if(!Ur&&(P=x.updateQueue,P!==null&&(P=P.lastEffect,P!==null))){M=P=P.next;do{var R=M,U=R.destroy;R=R.tag,U!==void 0&&(R&2||R&4)&&fa(x,p,U),M=M.next}while(M!==P)}pa(f,p,x);break;case 1:if(!Ur&&(Kc(x,p),P=x.stateNode,typeof P.componentWillUnmount=="function"))try{P.props=x.memoizedProps,P.state=x.memoizedState,P.componentWillUnmount()}catch(ae){Qn(x,p,ae)}pa(f,p,x);break;case 21:pa(f,p,x);break;case 22:x.mode&1?(Ur=(P=Ur)||x.memoizedState!==null,pa(f,p,x),Ur=P):pa(f,p,x);break;default:pa(f,p,x)}}function Yp(f){var p=f.updateQueue;if(p!==null){f.updateQueue=null;var x=f.stateNode;x===null&&(x=f.stateNode=new N4),p.forEach(function(P){var M=rb.bind(null,f,P);x.has(P)||(x.add(P),P.then(M,M))})}}function Io(f,p){var x=p.deletions;if(x!==null)for(var P=0;P";case Jp:return":has("+(pv(f)||"")+")";case eg:return'[role="'+f.value+'"]';case tg:return'"'+f.value+'"';case Xc:return'[data-testname="'+f.value+'"]';default:throw Error(a(365))}}function Zc(f,p){var x=[];f=[f,0];for(var P=0;PM&&(M=U),P&=~R}if(P=M,P=Xn()-P,P=(120>P?120:480>P?480:1080>P?1080:1920>P?1920:3e3>P?3e3:4320>P?4320:1960*$4(P/1960))-P,10f?16:f,Tt===null)var P=!1;else{if(f=Tt,Tt=null,og=0,Wt&6)throw Error(a(331));var M=Wt;for(Wt|=4,st=f.current;st!==null;){var R=st,U=R.child;if(st.flags&16){var ae=R.deletions;if(ae!==null){for(var he=0;heXn()-vv?xl(f,0):mv|=x),pi(f,p)}function wv(f,p){p===0&&(f.mode&1?(p=Mo,Mo<<=1,!(Mo&130023424)&&(Mo=4194304)):p=1);var x=_i();f=la(f,p),f!==null&&($a(f,p,x),pi(f,x))}function B4(f){var p=f.memoizedState,x=0;p!==null&&(x=p.retryLane),wv(f,x)}function rb(f,p){var x=0;switch(f.tag){case 13:var P=f.stateNode,M=f.memoizedState;M!==null&&(x=M.retryLane);break;case 19:P=f.stateNode;break;default:throw Error(a(314))}P!==null&&P.delete(p),wv(f,x)}var Cv;Cv=function(f,p,x){if(f!==null)if(f.memoizedProps!==p.pendingProps||ui.current)Ji=!0;else{if(!(f.lanes&x)&&!(p.flags&128))return Ji=!1,D4(f,p,x);Ji=!!(f.flags&131072)}else Ji=!1,zn&&p.flags&1048576&&z0(p,Ar,p.index);switch(p.lanes=0,p.tag){case 2:var P=p.type;Wa(f,p),f=p.pendingProps;var M=al(p,Hr.current);Ac(p,x),M=Y0(null,p,P,f,M,x);var R=jc();return p.flags|=1,typeof M=="object"&&M!==null&&typeof M.render=="function"&&M.$$typeof===void 0?(p.tag=1,p.memoizedState=null,p.updateQueue=null,ci(P)?(R=!0,ws(p)):R=!1,p.memoizedState=M.state!==null&&M.state!==void 0?M.state:null,U0(p),M.updater=ua,p.stateNode=M,M._reactInternals=p,V0(p,P,f,x),p=ca(null,p,P,!0,R,x)):(p.tag=0,zn&&R&&Ii(p),Ni(null,p,M,x),p=p.child),p;case 16:P=p.elementType;e:{switch(Wa(f,p),f=p.pendingProps,M=P._init,P=M(P._payload),p.type=P,M=p.tag=fg(P),f=sa(P,f),M){case 0:p=iv(null,p,P,f,x);break e;case 1:p=K2(null,p,P,f,x);break e;case 11:p=U2(null,p,P,f,x);break e;case 14:p=hl(null,p,P,sa(P.type,f),x);break e}throw Error(a(306,P,""))}return p;case 0:return P=p.type,M=p.pendingProps,M=p.elementType===P?M:sa(P,M),iv(f,p,P,M,x);case 1:return P=p.type,M=p.pendingProps,M=p.elementType===P?M:sa(P,M),K2(f,p,P,M,x);case 3:e:{if(Y2(p),f===null)throw Error(a(387));P=p.pendingProps,R=p.memoizedState,M=R.element,A2(f,p),jp(p,P,null,x);var U=p.memoizedState;if(P=U.element,bt&&R.isDehydrated)if(R={element:P,isDehydrated:!1,cache:U.cache,pendingSuspenseBoundaries:U.pendingSuspenseBoundaries,transitions:U.transitions},p.updateQueue.baseState=R,p.memoizedState=R,p.flags&256){M=Vc(Error(a(423)),p),p=X2(f,p,P,x,M);break e}else if(P!==M){M=Vc(Error(a(424)),p),p=X2(f,p,P,x,M);break e}else for(bt&&(Ao=M0(p.stateNode.containerInfo),Zn=p,zn=!0,Zi=null,Oo=!1),x=j2(p,null,P,x),p.child=x;x;)x.flags=x.flags&-3|4096,x=x.sibling;else{if(Mc(),P===M){p=Es(f,p,x);break e}Ni(f,p,P,x)}p=p.child}return p;case 5:return Lt(p),f===null&&kf(p),P=p.type,M=p.pendingProps,R=f!==null?f.memoizedProps:null,U=M.children,Le(P,M)?U=null:R!==null&&Le(P,R)&&(p.flags|=32),q2(f,p),Ni(f,p,U,x),p.child;case 6:return f===null&&kf(p),null;case 13:return Z2(f,p,x);case 4:return me(p,p.stateNode.containerInfo),P=p.pendingProps,f===null?p.child=Rc(p,null,P,x):Ni(f,p,P,x),p.child;case 11:return P=p.type,M=p.pendingProps,M=p.elementType===P?M:sa(P,M),U2(f,p,P,M,x);case 7:return Ni(f,p,p.pendingProps,x),p.child;case 8:return Ni(f,p,p.pendingProps.children,x),p.child;case 12:return Ni(f,p,p.pendingProps.children,x),p.child;case 10:e:{if(P=p.type._context,M=p.pendingProps,R=p.memoizedProps,U=M.value,L2(p,P,U),R!==null)if(q(R.value,U)){if(R.children===M.children&&!ui.current){p=Es(f,p,x);break e}}else for(R=p.child,R!==null&&(R.return=p);R!==null;){var ae=R.dependencies;if(ae!==null){U=R.child;for(var he=ae.firstContext;he!==null;){if(he.context===P){if(R.tag===1){he=_s(-1,x&-x),he.tag=2;var We=R.updateQueue;if(We!==null){We=We.shared;var ct=We.pending;ct===null?he.next=he:(he.next=ct.next,ct.next=he),We.pending=he}}R.lanes|=x,he=R.alternate,he!==null&&(he.lanes|=x),Lf(R.return,x,p),ae.lanes|=x;break}he=he.next}}else if(R.tag===10)U=R.type===p.type?null:R.child;else if(R.tag===18){if(U=R.return,U===null)throw Error(a(341));U.lanes|=x,ae=U.alternate,ae!==null&&(ae.lanes|=x),Lf(U,x,p),U=R.sibling}else U=R.child;if(U!==null)U.return=R;else for(U=R;U!==null;){if(U===p){U=null;break}if(R=U.sibling,R!==null){R.return=U.return,U=R;break}U=U.return}R=U}Ni(f,p,M.children,x),p=p.child}return p;case 9:return M=p.type,P=p.pendingProps.children,Ac(p,x),M=co(M),P=P(M),p.flags|=1,Ni(f,p,P,x),p.child;case 14:return P=p.type,M=sa(P,p.pendingProps),M=sa(P.type,M),hl(f,p,P,M,x);case 15:return V2(f,p,p.type,p.pendingProps,x);case 17:return P=p.type,M=p.pendingProps,M=p.elementType===P?M:sa(P,M),Wa(f,p),p.tag=1,ci(P)?(f=!0,ws(p)):f=!1,Ac(p,x),R2(p,P,M),V0(p,P,M,x),ca(null,p,P,!0,f,x);case 19:return J2(f,p,x);case 22:return G2(f,p,x)}throw Error(a(156,p.tag))};function Bi(f,p){return Ec(f,p)}function Ua(f,p,x,P){this.tag=f,this.key=x,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=P,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function No(f,p,x,P){return new Ua(f,p,x,P)}function _v(f){return f=f.prototype,!(!f||!f.isReactComponent)}function fg(f){if(typeof f=="function")return _v(f)?1:0;if(f!=null){if(f=f.$$typeof,f===w)return 11;if(f===k)return 14}return 2}function go(f,p){var x=f.alternate;return x===null?(x=No(f.tag,p,f.key,f.mode),x.elementType=f.elementType,x.type=f.type,x.stateNode=f.stateNode,x.alternate=f,f.alternate=x):(x.pendingProps=p,x.type=f.type,x.flags=0,x.subtreeFlags=0,x.deletions=null),x.flags=f.flags&14680064,x.childLanes=f.childLanes,x.lanes=f.lanes,x.child=f.child,x.memoizedProps=f.memoizedProps,x.memoizedState=f.memoizedState,x.updateQueue=f.updateQueue,p=f.dependencies,x.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},x.sibling=f.sibling,x.index=f.index,x.ref=f.ref,x}function Xf(f,p,x,P,M,R){var U=2;if(P=f,typeof f=="function")_v(f)&&(U=1);else if(typeof f=="string")U=5;else e:switch(f){case d:return Cl(x.children,M,R,p);case h:U=8,M|=8;break;case m:return f=No(12,x,p,M|2),f.elementType=m,f.lanes=R,f;case E:return f=No(13,x,p,M),f.elementType=E,f.lanes=R,f;case _:return f=No(19,x,p,M),f.elementType=_,f.lanes=R,f;case L:return hg(x,M,R,p);default:if(typeof f=="object"&&f!==null)switch(f.$$typeof){case y:U=10;break e;case b:U=9;break e;case w:U=11;break e;case k:U=14;break e;case T:U=16,P=null;break e}throw Error(a(130,f==null?f:typeof f,""))}return p=No(U,x,p,M),p.elementType=f,p.type=P,p.lanes=R,p}function Cl(f,p,x,P){return f=No(7,f,P,p),f.lanes=x,f}function hg(f,p,x,P){return f=No(22,f,P,p),f.elementType=L,f.lanes=x,f.stateNode={isHidden:!1},f}function pg(f,p,x){return f=No(6,f,null,p),f.lanes=x,f}function _l(f,p,x){return p=No(4,f.children!==null?f.children:[],f.key,p),p.lanes=x,p.stateNode={containerInfo:f.containerInfo,pendingChildren:null,implementation:f.implementation},p}function Zf(f,p,x,P,M){this.tag=p,this.containerInfo=f,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=tt,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=kc(0),this.expirationTimes=kc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=kc(0),this.identifierPrefix=P,this.onRecoverableError=M,bt&&(this.mutableSourceEagerHydrationData=null)}function ib(f,p,x,P,M,R,U,ae,he){return f=new Zf(f,p,x,ae,he),p===1?(p=1,R===!0&&(p|=8)):p=0,R=No(3,null,null,p),f.current=R,R.stateNode=f,R.memoizedState={element:P,isDehydrated:x,cache:null,transitions:null,pendingSuspenseBoundaries:null},U0(R),f}function kv(f){if(!f)return ia;f=f._reactInternals;e:{if(W(f)!==f||f.tag!==1)throw Error(a(170));var p=f;do{switch(p.tag){case 3:p=p.stateNode.context;break e;case 1:if(ci(p.type)){p=p.stateNode.__reactInternalMemoizedMergedChildContext;break e}}p=p.return}while(p!==null);throw Error(a(171))}if(f.tag===1){var x=f.type;if(ci(x))return gu(f,x,p)}return p}function Ev(f){var p=f._reactInternals;if(p===void 0)throw typeof f.render=="function"?Error(a(188)):(f=Object.keys(f).join(","),Error(a(268,f)));return f=ne(p),f===null?null:f.stateNode}function Qf(f,p){if(f=f.memoizedState,f!==null&&f.dehydrated!==null){var x=f.retryLane;f.retryLane=x!==0&&x=We&&R>=Rt&&M<=ct&&U<=it){f.splice(p,1);break}else if(P!==We||x.width!==he.width||itU){if(!(R!==Rt||x.height!==he.height||ctM)){We>P&&(he.width+=We-P,he.x=P),ctR&&(he.height+=Rt-R,he.y=R),itx&&(x=U)),U ")+` - -No matching component was found for: - `)+f.join(" > ")}return null},n.getPublicRootInstance=function(f){if(f=f.current,!f.child)return null;switch(f.child.tag){case 5:return X(f.child.stateNode);default:return f.child.stateNode}},n.injectIntoDevTools=function(f){if(f={bundleType:f.bundleType,version:f.version,rendererPackageName:f.rendererPackageName,rendererConfig:f.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:gg,findFiberByHostInstance:f.findFiberByHostInstance||Pv,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")f=!1;else{var p=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(p.isDisabled||!p.supportsFiber)f=!0;else{try{cn=p.inject(f),qt=p}catch{}f=!!p.checkDCE}}return f},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(f,p,x,P){if(!se)throw Error(a(363));f=gv(f,p);var M=Mt(f,x,P).disconnect;return{disconnect:function(){M()}}},n.registerMutableSourceForHydration=function(f,p){var x=p._getVersion;x=x(p._source),f.mutableSourceEagerHydrationData==null?f.mutableSourceEagerHydrationData=[p,x]:f.mutableSourceEagerHydrationData.push(p,x)},n.runWithPriority=function(f,p){var x=Gt;try{return Gt=f,p()}finally{Gt=x}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(f,p,x,P){var M=p.current,R=_i(),U=qr(M);return x=kv(x),p.context===null?p.context=x:p.pendingContext=x,p=_s(R,U),p.payload={element:f},P=P===void 0?null:P,P!==null&&(p.callback=P),f=dl(M,p,U),f!==null&&(jo(f,M,U,R),Dp(f,M,U)),U},n};(function(e){e.exports=IPe})(RPe);const DPe=S7(o7);var $3={},jPe={get exports(){return $3},set exports(e){$3=e}},vp={};/** - * @license React - * react-reconciler-constants.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */vp.ConcurrentRoot=1;vp.ContinuousEventPriority=4;vp.DefaultEventPriority=16;vp.DiscreteEventPriority=1;vp.IdleEventPriority=536870912;vp.LegacyRoot=0;(function(e){e.exports=vp})(jPe);const xD={children:!0,ref:!0,key:!0,style:!0,forwardedRef:!0,unstable_applyCache:!0,unstable_applyDrawHitFromCache:!0};let SD=!1,wD=!1;const pP=".react-konva-event",NPe=`ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled. -Position of a node will be changed during drag&drop, so you should update state of the react app as well. -Consider to add onDragMove or onDragEnd events. -For more info see: https://github.com/konvajs/react-konva/issues/256 -`,$Pe=`ReactKonva: You are using "zIndex" attribute for a Konva node. -react-konva may get confused with ordering. Just define correct order of elements in your render function of a component. -For more info see: https://github.com/konvajs/react-konva/issues/194 -`,FPe={};function w4(e,t,n=FPe){if(!SD&&"zIndex"in t&&(console.warn($Pe),SD=!0),!wD&&t.draggable){var r=t.x!==void 0||t.y!==void 0,i=t.onDragEnd||t.onDragMove;r&&!i&&(console.warn(NPe),wD=!0)}for(var o in n)if(!xD[o]){var a=o.slice(0,2)==="on",s=n[o]!==t[o];if(a&&s){var l=o.substr(2).toLowerCase();l.substr(0,7)==="content"&&(l="content"+l.substr(7,1).toUpperCase()+l.substr(8)),e.off(l,n[o])}var u=!t.hasOwnProperty(o);u&&e.setAttr(o,void 0)}var d=t._useStrictMode,h={},m=!1;const y={};for(var o in t)if(!xD[o]){var a=o.slice(0,2)==="on",b=n[o]!==t[o];if(a&&b){var l=o.substr(2).toLowerCase();l.substr(0,7)==="content"&&(l="content"+l.substr(7,1).toUpperCase()+l.substr(8)),t[o]&&(y[l]=t[o])}!a&&(t[o]!==n[o]||d&&t[o]!==e.getAttr(o))&&(m=!0,h[o]=t[o])}m&&(e.setAttrs(h),hf(e));for(var l in y)e.on(l+pP,y[l])}function hf(e){if(!ft.autoDrawEnabled){var t=e.getLayer()||e.getStage();t&&t.batchDraw()}}const mq={},BPe={};Qh.Node.prototype._applyProps=w4;function zPe(e,t){if(typeof t=="string"){console.error(`Do not use plain text as child of Konva.Node. You are using text: ${t}`);return}e.add(t),hf(e)}function HPe(e,t,n){let r=Qh[e];r||(console.error(`Konva has no node with the type ${e}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${e}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),r=Qh.Group);const i={},o={};for(var a in t){var s=a.slice(0,2)==="on";s?o[a]=t[a]:i[a]=t[a]}const l=new r(i);return w4(l,o),l}function WPe(e,t,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${e}"`)}function UPe(e,t,n){return!1}function VPe(e){return e}function GPe(){return null}function qPe(){return null}function KPe(e,t,n,r){return BPe}function YPe(){}function XPe(e){}function ZPe(e,t){return!1}function QPe(){return mq}function JPe(){return mq}const eTe=setTimeout,tTe=clearTimeout,nTe=-1;function rTe(e,t){return!1}const iTe=!1,oTe=!0,aTe=!0;function sTe(e,t){t.parent===e?t.moveToTop():e.add(t),hf(e)}function lTe(e,t){t.parent===e?t.moveToTop():e.add(t),hf(e)}function vq(e,t,n){t._remove(),e.add(t),t.setZIndex(n.getZIndex()),hf(e)}function uTe(e,t,n){vq(e,t,n)}function cTe(e,t){t.destroy(),t.off(pP),hf(e)}function dTe(e,t){t.destroy(),t.off(pP),hf(e)}function fTe(e,t,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function hTe(e,t,n){}function pTe(e,t,n,r,i){w4(e,i,r)}function gTe(e){e.hide(),hf(e)}function mTe(e){}function vTe(e,t){(t.visible==null||t.visible)&&e.show()}function yTe(e,t){}function bTe(e){}function xTe(){}const STe=()=>$3.DefaultEventPriority,wTe=Object.freeze(Object.defineProperty({__proto__:null,appendChild:sTe,appendChildToContainer:lTe,appendInitialChild:zPe,cancelTimeout:tTe,clearContainer:bTe,commitMount:hTe,commitTextUpdate:fTe,commitUpdate:pTe,createInstance:HPe,createTextInstance:WPe,detachDeletedInstance:xTe,finalizeInitialChildren:UPe,getChildHostContext:JPe,getCurrentEventPriority:STe,getPublicInstance:VPe,getRootHostContext:QPe,hideInstance:gTe,hideTextInstance:mTe,idlePriority:Th.unstable_IdlePriority,insertBefore:vq,insertInContainerBefore:uTe,isPrimaryRenderer:iTe,noTimeout:nTe,now:Th.unstable_now,prepareForCommit:GPe,preparePortalMount:qPe,prepareUpdate:KPe,removeChild:cTe,removeChildFromContainer:dTe,resetAfterCommit:YPe,resetTextContent:XPe,run:Th.unstable_runWithPriority,scheduleTimeout:eTe,shouldDeprioritizeSubtree:ZPe,shouldSetTextContent:rTe,supportsMutation:aTe,unhideInstance:vTe,unhideTextInstance:yTe,warnsIfNotActing:oTe},Symbol.toStringTag,{value:"Module"}));var CTe=Object.defineProperty,_Te=Object.defineProperties,kTe=Object.getOwnPropertyDescriptors,CD=Object.getOwnPropertySymbols,ETe=Object.prototype.hasOwnProperty,PTe=Object.prototype.propertyIsEnumerable,_D=(e,t,n)=>t in e?CTe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kD=(e,t)=>{for(var n in t||(t={}))ETe.call(t,n)&&_D(e,n,t[n]);if(CD)for(var n of CD(t))PTe.call(t,n)&&_D(e,n,t[n]);return e},TTe=(e,t)=>_Te(e,kTe(t));function yq(e,t,n){if(!e)return;if(n(e)===!0)return e;let r=t?e.return:e.child;for(;r;){const i=yq(r,t,n);if(i)return i;r=t?null:r.sibling}}function bq(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}const gP=bq(S.createContext(null));class xq extends S.Component{render(){return S.createElement(gP.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:MTe,ReactCurrentDispatcher:LTe}=S.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function ATe(){const e=S.useContext(gP);if(!e)throw new Error("its-fine: useFiber must be called within a !");const t=S.useId();return S.useMemo(()=>{var r;return(r=MTe.current)!=null?r:yq(e,!1,i=>{let o=i.memoizedState;for(;o;){if(o.memoizedState===t)return!0;o=o.next}})},[e,t])}function OTe(){var e,t;const n=ATe(),[r]=S.useState(()=>new Map);r.clear();let i=n;for(;i;){const o=(e=i.type)==null?void 0:e._context;o&&o!==gP&&!r.has(o)&&r.set(o,(t=LTe.current)==null?void 0:t.readContext(bq(o))),i=i.return}return S.useMemo(()=>Array.from(r.keys()).reduce((o,a)=>s=>S.createElement(o,null,S.createElement(a.Provider,TTe(kD({},s),{value:r.get(a)}))),o=>S.createElement(xq,kD({},o))),[r])}function RTe(e){const t=Ke.useRef();return Ke.useLayoutEffect(()=>{t.current=e}),t.current}const ITe=e=>{const t=Ke.useRef(),n=Ke.useRef(),r=Ke.useRef(),i=RTe(e),o=OTe(),a=s=>{const{forwardedRef:l}=e;l&&(typeof l=="function"?l(s):l.current=s)};return Ke.useLayoutEffect(()=>(n.current=new Qh.Stage({width:e.width,height:e.height,container:t.current}),a(n.current),r.current=w1.createContainer(n.current,$3.LegacyRoot,!1,null),w1.updateContainer(Ke.createElement(o,{},e.children),r.current),()=>{Qh.isBrowser&&(a(null),w1.updateContainer(null,r.current,null),n.current.destroy())}),[]),Ke.useLayoutEffect(()=>{a(n.current),w4(n.current,e,i),w1.updateContainer(Ke.createElement(o,{},e.children),r.current,null)}),Ke.createElement("div",{ref:t,accessKey:e.accessKey,className:e.className,role:e.role,style:e.style,tabIndex:e.tabIndex,title:e.title})},n1="Layer",uc="Group",cc="Rect",ah="Circle",F3="Line",Sq="Image",DTe="Transformer",w1=DPe(wTe);w1.injectIntoDevTools({findHostInstanceByFiber:()=>null,bundleType:0,version:Ke.version,rendererPackageName:"react-konva"});const jTe=Ke.forwardRef((e,t)=>Ke.createElement(xq,{},Ke.createElement(ITe,{...e,forwardedRef:t}))),NTe=lt([rn,Lr],(e,t)=>{const{tool:n,isMovingBoundingBox:r}=e;return{tool:n,isStaging:t,isMovingBoundingBox:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),$Te=()=>{const e=Te(),{tool:t,isStaging:n,isMovingBoundingBox:r}=le(NTe);return{handleDragStart:S.useCallback(()=>{(t==="move"||n)&&!r&&e(S3(!0))},[e,r,n,t]),handleDragMove:S.useCallback(i=>{if(!((t==="move"||n)&&!r))return;const o={x:i.target.x(),y:i.target.y()};e(XW(o))},[e,r,n,t]),handleDragEnd:S.useCallback(()=>{(t==="move"||n)&&!r&&e(S3(!1))},[e,r,n,t])}},FTe=lt([rn,Br,Lr],(e,t,n)=>{const{cursorPosition:r,shouldLockBoundingBox:i,shouldShowBoundingBox:o,tool:a,isMaskEnabled:s,shouldSnapToGrid:l}=e;return{activeTabName:t,isCursorOnCanvas:Boolean(r),shouldLockBoundingBox:i,shouldShowBoundingBox:o,tool:a,isStaging:n,isMaskEnabled:s,shouldSnapToGrid:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),BTe=()=>{const e=Te(),{activeTabName:t,shouldShowBoundingBox:n,tool:r,isStaging:i,isMaskEnabled:o,shouldSnapToGrid:a}=le(FTe),s=S.useRef(null),l=jV(),u=()=>e(pE());Je(["shift+c"],()=>{u()},{enabled:()=>!i,preventDefault:!0},[]);const d=()=>e(h2(!o));Je(["h"],()=>{d()},{enabled:()=>!i,preventDefault:!0},[o]),Je(["n"],()=>{e(C3(!a))},{enabled:!0,preventDefault:!0},[a]),Je("esc",()=>{e(u3e())},{enabled:()=>!0,preventDefault:!0}),Je("shift+h",()=>{e(m3e(!n))},{enabled:()=>!i,preventDefault:!0},[t,n]),Je(["space"],h=>{h.repeat||(l==null||l.container().focus(),r!=="move"&&(s.current=r,e(Jl("move"))),r==="move"&&s.current&&s.current!=="move"&&(e(Jl(s.current)),s.current="move"))},{keyup:!0,keydown:!0,preventDefault:!0},[r,s])},mP=e=>{const t=e.getPointerPosition(),n=e.getAbsoluteTransform().copy();if(!t||!n)return;const r=n.invert().point(t);return{x:r.x,y:r.y}},wq=()=>{const e=Te(),t=Qs(),n=jV();return{updateColorUnderCursor:()=>{if(!n||!t)return;const r=n.getPointerPosition();if(!r)return;const i=$g.pixelRatio,[o,a,s,l]=t.getContext().getImageData(r.x*i,r.y*i,1,1).data;e(h3e({r:o,g:a,b:s,a:l}))},commitColorUnderCursor:()=>{e(n3e())}}},zTe=lt([Br,rn,Lr],(e,t,n)=>{const{tool:r}=t;return{tool:r,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),HTe=e=>{const t=Te(),{tool:n,isStaging:r}=le(zTe),{commitColorUnderCursor:i}=wq();return S.useCallback(o=>{if(!e.current)return;if(e.current.container().focus(),n==="move"||r){t(S3(!0));return}if(n==="colorPicker"){i();return}const a=mP(e.current);a&&(o.evt.preventDefault(),t(zW(!0)),t(t3e([a.x,a.y])))},[e,n,r,t,i])},WTe=lt([Br,rn,Lr],(e,t,n)=>{const{tool:r,isDrawing:i}=t;return{tool:r,isDrawing:i,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),UTe=(e,t,n)=>{const r=Te(),{isDrawing:i,tool:o,isStaging:a}=le(WTe),{updateColorUnderCursor:s}=wq();return S.useCallback(()=>{if(!e.current)return;const l=mP(e.current);if(l){if(r(p3e(l)),n.current=l,o==="colorPicker"){s();return}!i||o==="move"||a||(t.current=!0,r($W([l.x,l.y])))}},[t,r,i,a,n,e,o,s])},VTe=()=>{const e=Te();return S.useCallback(()=>{e(o3e())},[e])},GTe=lt([Br,rn,Lr],(e,t,n)=>{const{tool:r,isDrawing:i}=t;return{tool:r,isDrawing:i,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),qTe=(e,t)=>{const n=Te(),{tool:r,isDrawing:i,isStaging:o}=le(GTe);return S.useCallback(()=>{if(r==="move"||o){n(S3(!1));return}if(!t.current&&i&&e.current){const a=mP(e.current);if(!a)return;n($W([a.x,a.y]))}else t.current=!1;n(zW(!1))},[t,n,i,o,e,r])},KTe=lt([rn],e=>{const{isMoveStageKeyHeld:t,stageScale:n}=e;return{isMoveStageKeyHeld:t,stageScale:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),YTe=e=>{const t=Te(),{isMoveStageKeyHeld:n,stageScale:r}=le(KTe);return S.useCallback(i=>{if(!e.current||n)return;i.evt.preventDefault();const o=e.current.getPointerPosition();if(!o)return;const a={x:(o.x-e.current.x())/r,y:(o.y-e.current.y())/r};let s=i.evt.deltaY;i.evt.ctrlKey&&(s=-s);const l=Pe.clamp(r*USe**s,VSe,GSe),u={x:o.x-a.x*l,y:o.y-a.y*l};t(y3e(l)),t(XW(u))},[e,n,r,t])},XTe=lt(rn,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageDimensions:r,stageScale:i,shouldDarkenOutsideBoundingBox:o,stageCoordinates:a}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,shouldDarkenOutsideBoundingBox:o,stageCoordinates:a,stageDimensions:r,stageScale:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ZTe=()=>{const{boundingBoxCoordinates:e,boundingBoxDimensions:t,shouldDarkenOutsideBoundingBox:n,stageCoordinates:r,stageDimensions:i,stageScale:o}=le(XTe);return g.jsxs(uc,{children:[g.jsx(cc,{offsetX:r.x/o,offsetY:r.y/o,height:i.height/o,width:i.width/o,fill:"rgba(0,0,0,0.4)",listening:!1,visible:n}),g.jsx(cc,{x:e.x,y:e.y,width:t.width,height:t.height,fill:"rgb(255,255,255)",listening:!1,visible:n,globalCompositeOperation:"destination-out"})]})},QTe=lt([rn],e=>{const{stageScale:t,stageCoordinates:n,stageDimensions:r}=e;return{stageScale:t,stageCoordinates:n,stageDimensions:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),JTe={dark:"rgba(255, 255, 255, 0.2)",green:"rgba(255, 255, 255, 0.2)",light:"rgba(0, 0, 0, 0.2)"},eMe=()=>{const{colorMode:e}=Qy(),{stageScale:t,stageCoordinates:n,stageDimensions:r}=le(QTe),[i,o]=S.useState([]),a=S.useCallback(s=>s/t,[t]);return S.useLayoutEffect(()=>{const s=JTe[e],{width:l,height:u}=r,{x:d,y:h}=n,m={x1:0,y1:0,x2:l,y2:u,offset:{x:a(d),y:a(h)}},y={x:Math.ceil(a(d)/64)*64,y:Math.ceil(a(h)/64)*64},b={x1:-y.x,y1:-y.y,x2:a(l)-y.x+64,y2:a(u)-y.y+64},E={x1:Math.min(m.x1,b.x1),y1:Math.min(m.y1,b.y1),x2:Math.max(m.x2,b.x2),y2:Math.max(m.y2,b.y2)},_=E.x2-E.x1,k=E.y2-E.y1,T=Math.round(_/64)+1,L=Math.round(k/64)+1,O=Pe.range(0,T).map(I=>g.jsx(F3,{x:E.x1+I*64,y:E.y1,points:[0,0,0,k],stroke:s,strokeWidth:1},`x_${I}`)),D=Pe.range(0,L).map(I=>g.jsx(F3,{x:E.x1,y:E.y1+I*64,points:[0,0,_,0],stroke:s,strokeWidth:1},`y_${I}`));o(O.concat(D))},[t,n,r,e,a]),g.jsx(uc,{children:i})},tMe=lt([e=>e.gallery],e=>e.intermediateImage?e.intermediateImage:null,{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),nMe=e=>{const{...t}=e,n=le(tMe),[r,i]=S.useState(null);if(S.useEffect(()=>{if(!n)return;const u=new Image;u.onload=()=>{i(u)},u.src=n.url},[n]),!(n!=null&&n.boundingBox))return null;const{boundingBox:{x:o,y:a,width:s,height:l}}=n;return r?g.jsx(Sq,{x:o,y:a,width:s,height:l,image:r,listening:!1,...t}):null},zh=e=>{const{r:t,g:n,b:r,a:i}=e;return`rgba(${t}, ${n}, ${r}, ${i})`},rMe=lt(rn,e=>{const{maskColor:t,stageCoordinates:n,stageDimensions:r,stageScale:i}=e;return{stageCoordinates:n,stageDimensions:r,stageScale:i,maskColorString:zh(t)}}),ED=e=>`data:image/svg+xml;utf8, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`.replaceAll("black",e),iMe=e=>{const{...t}=e,{maskColorString:n,stageCoordinates:r,stageDimensions:i,stageScale:o}=le(rMe),[a,s]=S.useState(null),[l,u]=S.useState(0),d=S.useRef(null),h=S.useCallback(()=>{u(l+1),setTimeout(h,500)},[l]);return S.useEffect(()=>{if(a)return;const m=new Image;m.onload=()=>{s(m)},m.src=ED(n)},[a,n]),S.useEffect(()=>{a&&(a.src=ED(n))},[a,n]),S.useEffect(()=>{const m=setInterval(()=>u(y=>(y+1)%5),50);return()=>clearInterval(m)},[]),!a||!Pe.isNumber(r.x)||!Pe.isNumber(r.y)||!Pe.isNumber(o)||!Pe.isNumber(i.width)||!Pe.isNumber(i.height)?null:g.jsx(cc,{ref:d,offsetX:r.x/o,offsetY:r.y/o,height:i.height/o,width:i.width/o,fillPatternImage:a,fillPatternOffsetY:Pe.isNumber(l)?l:0,fillPatternRepeat:"repeat",fillPatternScale:{x:1/o,y:1/o},listening:!0,globalCompositeOperation:"source-in",...t})},oMe=lt([rn],e=>({objects:e.layerState.objects}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),aMe=e=>{const{...t}=e,{objects:n}=le(oMe);return g.jsx(uc,{listening:!1,...t,children:n.filter(hE).map((r,i)=>g.jsx(F3,{points:r.points,stroke:"rgb(0,0,0)",strokeWidth:r.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:r.tool==="brush"?"source-over":"destination-out"},i))})};var sh=S,sMe=function(t,n,r){const i=sh.useRef("loading"),o=sh.useRef(),[a,s]=sh.useState(0),l=sh.useRef(),u=sh.useRef(),d=sh.useRef();return(l.current!==t||u.current!==n||d.current!==r)&&(i.current="loading",o.current=void 0,l.current=t,u.current=n,d.current=r),sh.useLayoutEffect(function(){if(!t)return;var h=document.createElement("img");function m(){i.current="loaded",o.current=h,s(Math.random())}function y(){i.current="failed",o.current=void 0,s(Math.random())}return h.addEventListener("load",m),h.addEventListener("error",y),n&&(h.crossOrigin=n),r&&(h.referrerpolicy=r),h.src=t,function(){h.removeEventListener("load",m),h.removeEventListener("error",y)}},[t,n,r]),[o.current,i.current]};const Cq=e=>{const{url:t,x:n,y:r}=e,[i]=sMe(t);return g.jsx(Sq,{x:n,y:r,image:i,listening:!1})},lMe=lt([rn],e=>{const{layerState:{objects:t}}=e;return{objects:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),uMe=()=>{const{objects:e}=le(lMe);return e?g.jsx(uc,{name:"outpainting-objects",listening:!1,children:e.map((t,n)=>{if(x3(t))return g.jsx(Cq,{x:t.x,y:t.y,url:t.image.url},n);if(YSe(t)){const r=g.jsx(F3,{points:t.points,stroke:t.color?zh(t.color):"rgb(0,0,0)",strokeWidth:t.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:t.tool==="brush"?"source-over":"destination-out"},n);return t.clip?g.jsx(uc,{clipX:t.clip.x,clipY:t.clip.y,clipWidth:t.clip.width,clipHeight:t.clip.height,children:r},n):r}else{if(XSe(t))return g.jsx(cc,{x:t.x,y:t.y,width:t.width,height:t.height,fill:zh(t.color)},n);if(ZSe(t))return g.jsx(cc,{x:t.x,y:t.y,width:t.width,height:t.height,fill:"rgb(255, 255, 255)",globalCompositeOperation:"destination-out"},n)}})}):null},cMe=lt([rn],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingImage:r,shouldShowStagingOutline:i,boundingBoxCoordinates:{x:o,y:a},boundingBoxDimensions:{width:s,height:l}}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:r,shouldShowStagingOutline:i,x:o,y:a,width:s,height:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),dMe=e=>{const{...t}=e,{currentStagingAreaImage:n,shouldShowStagingImage:r,shouldShowStagingOutline:i,x:o,y:a,width:s,height:l}=le(cMe);return g.jsxs(uc,{...t,children:[r&&n&&g.jsx(Cq,{url:n.image.url,x:o,y:a}),i&&g.jsxs(uc,{children:[g.jsx(cc,{x:o,y:a,width:s,height:l,strokeWidth:1,stroke:"white",strokeScaleEnabled:!1}),g.jsx(cc,{x:o,y:a,width:s,height:l,dash:[4,4],strokeWidth:1,stroke:"black",strokeScaleEnabled:!1})]})]})},fMe=lt([rn],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingOutline:r,shouldShowStagingImage:i}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:i,shouldShowStagingOutline:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),hMe=()=>{const e=Te(),{isOnFirstImage:t,isOnLastImage:n,currentStagingAreaImage:r,shouldShowStagingImage:i}=le(fMe),{t:o}=De(),a=S.useCallback(()=>{e(XO(!0))},[e]),s=S.useCallback(()=>{e(XO(!1))},[e]);Je(["left"],()=>{l()},{enabled:()=>!0,preventDefault:!0}),Je(["right"],()=>{u()},{enabled:()=>!0,preventDefault:!0}),Je(["enter"],()=>{d()},{enabled:()=>!0,preventDefault:!0});const l=()=>e(s3e()),u=()=>e(a3e()),d=()=>e(r3e());return r?g.jsx(ke,{pos:"absolute",bottom:"1rem",w:"100%",align:"center",justify:"center",filter:"drop-shadow(0 0.5rem 1rem rgba(0,0,0))",onMouseOver:a,onMouseOut:s,children:g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{tooltip:`${o("unifiedCanvas.previous")} (Left)`,"aria-label":`${o("unifiedCanvas.previous")} (Left)`,icon:g.jsx(pke,{}),onClick:l,"data-selected":!0,isDisabled:t}),g.jsx(Ye,{tooltip:`${o("unifiedCanvas.next")} (Right)`,"aria-label":`${o("unifiedCanvas.next")} (Right)`,icon:g.jsx(gke,{}),onClick:u,"data-selected":!0,isDisabled:n}),g.jsx(Ye,{tooltip:`${o("unifiedCanvas.accept")} (Enter)`,"aria-label":`${o("unifiedCanvas.accept")} (Enter)`,icon:g.jsx(jE,{}),onClick:d,"data-selected":!0}),g.jsx(Ye,{tooltip:o("unifiedCanvas.showHide"),"aria-label":o("unifiedCanvas.showHide"),"data-alert":!i,icon:i?g.jsx(wke,{}):g.jsx(Ske,{}),onClick:()=>e(v3e(!i)),"data-selected":!0}),g.jsx(Ye,{tooltip:o("unifiedCanvas.saveToGallery"),"aria-label":o("unifiedCanvas.saveToGallery"),icon:g.jsx($E,{}),onClick:()=>e(m_e(r.image.url)),"data-selected":!0}),g.jsx(Ye,{tooltip:o("unifiedCanvas.discardAll"),"aria-label":o("unifiedCanvas.discardAll"),icon:g.jsx(y2,{style:{transform:"rotate(45deg)"}}),onClick:()=>e(i3e()),"data-selected":!0,style:{backgroundColor:"var(--btn-delete-image)"},fontSize:20})]})}):null},cm=e=>Math.round(e*100)/100,pMe=lt([rn],e=>{const{cursorPosition:t}=e,{cursorX:n,cursorY:r}=t?{cursorX:t.x,cursorY:t.y}:{cursorX:-1,cursorY:-1};return{cursorCoordinatesString:`(${cm(n)}, ${cm(r)})`}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function gMe(){const{cursorCoordinatesString:e}=le(pMe),{t}=De();return g.jsx("div",{children:`${t("unifiedcanvas:cursorPosition")}: ${e}`})}const mMe=lt([rn],e=>{const{stageDimensions:{width:t,height:n},stageCoordinates:{x:r,y:i},boundingBoxDimensions:{width:o,height:a},scaledBoundingBoxDimensions:{width:s,height:l},boundingBoxCoordinates:{x:u,y:d},stageScale:h,shouldShowCanvasDebugInfo:m,layer:y,boundingBoxScaleMethod:b,shouldPreserveMaskedArea:w}=e;let E="inherit";return(b==="none"&&(o<512||a<512)||b==="manual"&&s*l<512*512)&&(E="var(--status-working-color)"),{activeLayerColor:y==="mask"?"var(--status-working-color)":"inherit",activeLayerString:y.charAt(0).toUpperCase()+y.slice(1),boundingBoxColor:E,boundingBoxCoordinatesString:`(${cm(u)}, ${cm(d)})`,boundingBoxDimensionsString:`${o}×${a}`,scaledBoundingBoxDimensionsString:`${s}×${l}`,canvasCoordinatesString:`${cm(r)}×${cm(i)}`,canvasDimensionsString:`${t}×${n}`,canvasScaleString:Math.round(h*100),shouldShowCanvasDebugInfo:m,shouldShowBoundingBox:b!=="auto",shouldShowScaledBoundingBox:b!=="none",shouldPreserveMaskedArea:w}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),vMe=()=>{const{activeLayerColor:e,activeLayerString:t,boundingBoxColor:n,boundingBoxCoordinatesString:r,boundingBoxDimensionsString:i,scaledBoundingBoxDimensionsString:o,shouldShowScaledBoundingBox:a,canvasCoordinatesString:s,canvasDimensionsString:l,canvasScaleString:u,shouldShowCanvasDebugInfo:d,shouldShowBoundingBox:h,shouldPreserveMaskedArea:m}=le(mMe),{t:y}=De();return g.jsxs("div",{className:"canvas-status-text",children:[g.jsx("div",{style:{color:e},children:`${y("unifiedCanvas.activeLayer")}: ${t}`}),g.jsx("div",{children:`${y("unifiedCanvas.canvasScale")}: ${u}%`}),m&&g.jsx("div",{style:{color:"var(--status-working-color)"},children:"Preserve Masked Area: On"}),h&&g.jsx("div",{style:{color:n},children:`${y("unifiedcanvas:boundingBox")}: ${i}`}),a&&g.jsx("div",{style:{color:n},children:`${y("unifiedcanvas:scaledBoundingBox")}: ${o}`}),d&&g.jsxs(g.Fragment,{children:[g.jsx("div",{children:`${y("unifiedcanvas:boundingBoxPosition")}: ${r}`}),g.jsx("div",{children:`${y("unifiedcanvas:canvasDimensions")}: ${l}`}),g.jsx("div",{children:`${y("unifiedcanvas:canvasPosition")}: ${s}`}),g.jsx(gMe,{})]})]})},yMe=lt(rn,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageScale:r,isDrawing:i,isTransformingBoundingBox:o,isMovingBoundingBox:a,tool:s,shouldSnapToGrid:l}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,isDrawing:i,isMovingBoundingBox:a,isTransformingBoundingBox:o,stageScale:r,shouldSnapToGrid:l,tool:s,hitStrokeWidth:20/r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),bMe=e=>{const{...t}=e,n=Te(),{boundingBoxCoordinates:r,boundingBoxDimensions:i,isDrawing:o,isMovingBoundingBox:a,isTransformingBoundingBox:s,stageScale:l,shouldSnapToGrid:u,tool:d,hitStrokeWidth:h}=le(yMe),m=S.useRef(null),y=S.useRef(null),[b,w]=S.useState(!1);S.useEffect(()=>{var ne;!m.current||!y.current||(m.current.nodes([y.current]),(ne=m.current.getLayer())==null||ne.batchDraw())},[]);const E=64*l,_=S.useCallback(ne=>{if(!u){n(RC({x:Math.floor(ne.target.x()),y:Math.floor(ne.target.y())}));return}const z=ne.target.x(),$=ne.target.y(),V=Hl(z,64),X=Hl($,64);ne.target.x(V),ne.target.y(X),n(RC({x:V,y:X}))},[n,u]),k=S.useCallback(()=>{if(!y.current)return;const ne=y.current,z=ne.scaleX(),$=ne.scaleY(),V=Math.round(ne.width()*z),X=Math.round(ne.height()*$),Q=Math.round(ne.x()),G=Math.round(ne.y());n(g1({width:V,height:X})),n(RC({x:u?Cd(Q,64):Q,y:u?Cd(G,64):G})),ne.scaleX(1),ne.scaleY(1)},[n,u]),T=S.useCallback((ne,z,$)=>{const V=ne.x%E,X=ne.y%E;return{x:Cd(z.x,E)+V,y:Cd(z.y,E)+X}},[E]),L=()=>{n(DC(!0))},O=()=>{n(DC(!1)),n(IC(!1)),n(Qb(!1)),w(!1)},D=()=>{n(IC(!0))},I=()=>{n(DC(!1)),n(IC(!1)),n(Qb(!1)),w(!1)},N=()=>{w(!0)},W=()=>{!s&&!a&&w(!1)},B=()=>{n(Qb(!0))},K=()=>{n(Qb(!1))};return g.jsxs(uc,{...t,children:[g.jsx(cc,{height:i.height,width:i.width,x:r.x,y:r.y,onMouseEnter:B,onMouseOver:B,onMouseLeave:K,onMouseOut:K}),g.jsx(cc,{draggable:!0,fillEnabled:!1,height:i.height,hitStrokeWidth:h,listening:!o&&d==="move",onDragStart:D,onDragEnd:I,onDragMove:_,onMouseDown:D,onMouseOut:W,onMouseOver:N,onMouseEnter:N,onMouseUp:I,onTransform:k,onTransformEnd:O,ref:y,stroke:b?"rgba(255,255,255,0.7)":"white",strokeWidth:(b?8:1)/l,width:i.width,x:r.x,y:r.y}),g.jsx(DTe,{anchorCornerRadius:3,anchorDragBoundFunc:T,anchorFill:"rgba(212,216,234,1)",anchorSize:15,anchorStroke:"rgb(42,42,42)",borderDash:[4,4],borderEnabled:!0,borderStroke:"black",draggable:!1,enabledAnchors:d==="move"?void 0:[],flipEnabled:!1,ignoreStroke:!0,keepRatio:!1,listening:!o&&d==="move",onDragStart:D,onDragEnd:I,onMouseDown:L,onMouseUp:O,onTransformEnd:O,ref:m,rotateEnabled:!1})]})},xMe=lt(rn,e=>{const{cursorPosition:t,brushSize:n,colorPickerColor:r,maskColor:i,brushColor:o,tool:a,layer:s,shouldShowBrush:l,isMovingBoundingBox:u,isTransformingBoundingBox:d,stageScale:h,stageDimensions:m,boundingBoxCoordinates:y,boundingBoxDimensions:b,shouldRestrictStrokesToBox:w}=e,E=w?{clipX:y.x,clipY:y.y,clipWidth:b.width,clipHeight:b.height}:{};return{cursorPosition:t,brushX:t?t.x:m.width/2,brushY:t?t.y:m.height/2,radius:n/2,colorPickerOuterRadius:KO/h,colorPickerInnerRadius:(KO-pk+1)/h,maskColorString:zh({...i,a:.5}),brushColorString:zh(o),colorPickerColorString:zh(r),tool:a,layer:s,shouldShowBrush:l,shouldDrawBrushPreview:!(u||d||!t)&&l,strokeWidth:1.5/h,dotRadius:1.5/h,clip:E}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),SMe=e=>{const{...t}=e,{brushX:n,brushY:r,radius:i,maskColorString:o,tool:a,layer:s,shouldDrawBrushPreview:l,dotRadius:u,strokeWidth:d,brushColorString:h,colorPickerColorString:m,colorPickerInnerRadius:y,colorPickerOuterRadius:b,clip:w}=le(xMe);return l?g.jsxs(uc,{listening:!1,...w,...t,children:[a==="colorPicker"?g.jsxs(g.Fragment,{children:[g.jsx(ah,{x:n,y:r,radius:b,stroke:h,strokeWidth:pk,strokeScaleEnabled:!1}),g.jsx(ah,{x:n,y:r,radius:y,stroke:m,strokeWidth:pk,strokeScaleEnabled:!1})]}):g.jsxs(g.Fragment,{children:[g.jsx(ah,{x:n,y:r,radius:i,fill:s==="mask"?o:h,globalCompositeOperation:a==="eraser"?"destination-out":"source-out"}),g.jsx(ah,{x:n,y:r,radius:i,stroke:"rgba(255,255,255,0.4)",strokeWidth:d*2,strokeEnabled:!0,listening:!1}),g.jsx(ah,{x:n,y:r,radius:i,stroke:"rgba(0,0,0,1)",strokeWidth:d,strokeEnabled:!0,listening:!1})]}),g.jsx(ah,{x:n,y:r,radius:u*2,fill:"rgba(255,255,255,0.4)",listening:!1}),g.jsx(ah,{x:n,y:r,radius:u,fill:"rgba(0,0,0,1)",listening:!1})]}):null},wMe=lt([rn,Lr],(e,t)=>{const{isMaskEnabled:n,stageScale:r,shouldShowBoundingBox:i,isTransformingBoundingBox:o,isMouseOverBoundingBox:a,isMovingBoundingBox:s,stageDimensions:l,stageCoordinates:u,tool:d,isMovingStage:h,shouldShowIntermediates:m,shouldShowGrid:y,shouldRestrictStrokesToBox:b}=e;let w="none";return d==="move"||t?h?w="grabbing":w="grab":o?w=void 0:b&&!a&&(w="default"),{isMaskEnabled:n,isModifyingBoundingBox:o||s,shouldShowBoundingBox:i,shouldShowGrid:y,stageCoordinates:u,stageCursor:w,stageDimensions:l,stageScale:r,tool:d,isStaging:t,shouldShowIntermediates:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),_q=()=>{const{isMaskEnabled:e,isModifyingBoundingBox:t,shouldShowBoundingBox:n,shouldShowGrid:r,stageCoordinates:i,stageCursor:o,stageDimensions:a,stageScale:s,tool:l,isStaging:u,shouldShowIntermediates:d}=le(wMe);BTe();const h=S.useRef(null),m=S.useRef(null),y=S.useCallback(W=>{K6e(W),h.current=W},[]),b=S.useCallback(W=>{q6e(W),m.current=W},[]),w=S.useRef({x:0,y:0}),E=S.useRef(!1),_=YTe(h),k=HTe(h),T=qTe(h,E),L=UTe(h,E,w),O=VTe(),{handleDragStart:D,handleDragMove:I,handleDragEnd:N}=$Te();return g.jsx("div",{className:"inpainting-canvas-container",children:g.jsxs("div",{className:"inpainting-canvas-wrapper",children:[g.jsxs(jTe,{tabIndex:-1,ref:y,className:"inpainting-canvas-stage",style:{...o?{cursor:o}:{}},x:i.x,y:i.y,width:a.width,height:a.height,scale:{x:s,y:s},onTouchStart:k,onTouchMove:L,onTouchEnd:T,onMouseDown:k,onMouseLeave:O,onMouseMove:L,onMouseUp:T,onDragStart:D,onDragMove:I,onDragEnd:N,onContextMenu:W=>W.evt.preventDefault(),onWheel:_,draggable:(l==="move"||u)&&!t,children:[g.jsx(n1,{id:"grid",visible:r,children:g.jsx(eMe,{})}),g.jsx(n1,{id:"base",ref:b,listening:!1,imageSmoothingEnabled:!1,children:g.jsx(uMe,{})}),g.jsxs(n1,{id:"mask",visible:e,listening:!1,children:[g.jsx(aMe,{visible:!0,listening:!1}),g.jsx(iMe,{listening:!1})]}),g.jsx(n1,{children:g.jsx(ZTe,{})}),g.jsxs(n1,{id:"preview",imageSmoothingEnabled:!1,children:[!u&&g.jsx(SMe,{visible:l!=="move",listening:!1}),g.jsx(dMe,{visible:u}),d&&g.jsx(nMe,{}),g.jsx(bMe,{visible:n&&!u})]})]}),g.jsx(vMe,{}),g.jsx(hMe,{})]})})},CMe=lt(rn,sG,Br,(e,t,n)=>{const{doesCanvasNeedScaling:r,isCanvasInitialized:i}=e;return{doesCanvasNeedScaling:r,activeTabName:n,initialCanvasImage:t,isCanvasInitialized:i}}),kq=()=>{const e=Te(),{doesCanvasNeedScaling:t,activeTabName:n,initialCanvasImage:r,isCanvasInitialized:i}=le(CMe),o=S.useRef(null);return S.useLayoutEffect(()=>{window.setTimeout(()=>{if(!o.current)return;const{clientWidth:a,clientHeight:s}=o.current;e(f3e({width:a,height:s})),e(i?c3e():r4()),e(Li(!1))},0)},[e,r,t,n,i]),g.jsx("div",{ref:o,className:"inpainting-canvas-area",children:g.jsx(p0,{thickness:"2px",speed:"1s",size:"xl"})})},_Me=lt([rn,Br,hr],(e,t,n)=>{const{futureLayerStates:r}=e;return{canRedo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Eq(){const e=Te(),{canRedo:t,activeTabName:n}=le(_Me),{t:r}=De(),i=()=>{e(l3e())};return Je(["meta+shift+z","ctrl+shift+z","control+y","meta+y"],()=>{i()},{enabled:()=>t,preventDefault:!0},[n,t]),g.jsx(Ye,{"aria-label":`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,tooltip:`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,icon:g.jsx(Rke,{}),onClick:i,isDisabled:!t})}const kMe=lt([rn,Br,hr],(e,t,n)=>{const{pastLayerStates:r}=e;return{canUndo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Pq(){const e=Te(),{t}=De(),{canUndo:n,activeTabName:r}=le(kMe),i=()=>{e(b3e())};return Je(["meta+z","ctrl+z"],()=>{i()},{enabled:()=>n,preventDefault:!0},[r,n]),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.undo")} (Ctrl+Z)`,tooltip:`${t("unifiedCanvas.undo")} (Ctrl+Z)`,icon:g.jsx(Nke,{}),onClick:i,isDisabled:!n})}const EMe=(e,t,n)=>{const r=document.createElement("img");r.addEventListener("load",()=>{const i=document.createElement("canvas");i.width=t,i.height=n;const o=i.getContext("2d");o&&(o.drawImage(r,0,0),i.toBlob(a=>{a&&navigator.clipboard.write([new ClipboardItem({[a.type]:a})])}),i.remove(),r.remove())}),r.src=e},PMe=e=>{const t=document.createElement("a");t.href=e,t.download="",document.body.appendChild(t),t.click(),document.body.removeChild(t),t.remove()},TMe=(e,t,n,r)=>{const i=e.scale(),o=e.getClientRect({relativeTo:e.getParent()});e.scale({x:1/t,y:1/t});const{x:a,y:s,width:l,height:u}=e.getClientRect(),d=r?{x:r.x+n.x,y:r.y+n.y,width:r.width,height:r.height}:{x:a,y:s,width:l,height:u},h=e.toDataURL(d);return e.scale(i),{dataURL:h,boundingBox:{x:o.x,y:o.y,width:l,height:u}}},MMe={cropVisible:!1,cropToBoundingBox:!1,shouldSaveToGallery:!1,shouldDownload:!1,shouldCopy:!1,shouldSetAsInitialImage:!0},Td=(e=MMe)=>async(t,n)=>{const{cropVisible:r,cropToBoundingBox:i,shouldSaveToGallery:o,shouldDownload:a,shouldCopy:s,shouldSetAsInitialImage:l}=e;t(M4e("Exporting Image")),t(_d(!1));const u=n(),{stageScale:d,boundingBoxCoordinates:h,boundingBoxDimensions:m,stageCoordinates:y}=u.canvas,b=Qs();if(!b){t(wa(!1)),t(_d(!0));return}const{dataURL:w,boundingBox:E}=TMe(b,d,y,i?{...h,...m}:void 0);if(!w){t(wa(!1)),t(_d(!0));return}const _=new FormData;_.append("data",JSON.stringify({dataURL:w,filename:"merged_canvas.png",kind:o?"result":"temp",cropVisible:r}));const T=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:_})).json(),{url:L,width:O,height:D}=T,I={uuid:um(),category:o?"result":"user",...T};a&&(PMe(L),t($u({title:Et.t("toast.downloadImageStarted"),status:"success",duration:2500,isClosable:!0}))),s&&(EMe(L,O,D),t($u({title:Et.t("toast.imageCopied"),status:"success",duration:2500,isClosable:!0}))),o&&(t(sm({image:I,category:"result"})),t($u({title:Et.t("toast.imageSavedToGallery"),status:"success",duration:2500,isClosable:!0}))),l&&(t(g3e({kind:"image",layer:"base",...E,image:I})),t($u({title:Et.t("toast.canvasMerged"),status:"success",duration:2500,isClosable:!0}))),t(wa(!1)),t(hh(Et.t("common.statusConnected"))),t(_d(!0))};function LMe(){const e=le(Lr),t=Qs(),n=le(s=>s.system.isProcessing),r=le(s=>s.canvas.shouldCropToBoundingBoxOnSave),i=Te(),{t:o}=De();Je(["meta+c","ctrl+c"],()=>{a()},{enabled:()=>!e,preventDefault:!0},[t,n]);const a=()=>{i(Td({cropVisible:!r,cropToBoundingBox:r,shouldCopy:!0}))};return g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${o("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:g.jsx(e0,{}),onClick:a,isDisabled:e})}function AMe(){const e=Te(),{t}=De(),n=Qs(),r=le(Lr),i=le(s=>s.system.isProcessing),o=le(s=>s.canvas.shouldCropToBoundingBoxOnSave);Je(["shift+d"],()=>{a()},{enabled:()=>!r,preventDefault:!0},[n,i]);const a=()=>{e(Td({cropVisible:!o,cropToBoundingBox:o,shouldDownload:!0}))};return g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:g.jsx(NE,{}),onClick:a,isDisabled:r})}function OMe(){const e=le(Lr),{openUploader:t}=OE(),{t:n}=De();return g.jsx(Ye,{"aria-label":n("common.upload"),tooltip:n("common.upload"),icon:g.jsx(h4,{}),onClick:t,isDisabled:e})}const RMe=lt([rn,Lr],(e,t)=>{const{layer:n,isMaskEnabled:r}=e;return{layer:n,isMaskEnabled:r,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function IMe(){const e=Te(),{t}=De(),{layer:n,isMaskEnabled:r,isStaging:i}=le(RMe),o=()=>{e(w3(n==="mask"?"base":"mask"))};Je(["q"],()=>{o()},{enabled:()=>!i,preventDefault:!0},[n]);const a=s=>{const l=s.target.value;e(w3(l)),l==="mask"&&!r&&e(h2(!0))};return g.jsx(Jo,{tooltip:`${t("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:n,validValues:IW,onChange:a,isDisabled:i})}function DMe(){const e=Te(),{t}=De(),n=Qs(),r=le(Lr),i=le(a=>a.system.isProcessing);Je(["shift+m"],()=>{o()},{enabled:()=>!r,preventDefault:!0},[n,i]);const o=()=>{e(Td({cropVisible:!1,shouldSetAsInitialImage:!0}))};return g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:g.jsx(oG,{}),onClick:o,isDisabled:r})}function jMe(){const e=le(o=>o.canvas.tool),t=le(Lr),n=Te(),{t:r}=De();Je(["v"],()=>{i()},{enabled:()=>!t,preventDefault:!0},[]);const i=()=>n(Jl("move"));return g.jsx(Ye,{"aria-label":`${r("unifiedCanvas.move")} (V)`,tooltip:`${r("unifiedCanvas.move")} (V)`,icon:g.jsx(JV,{}),"data-selected":e==="move"||t,onClick:i})}function NMe(){const e=le(i=>i.ui.shouldPinParametersPanel),t=Te(),{t:n}=De(),r=()=>{t(Fh(!0)),e&&setTimeout(()=>t(Li(!0)),400)};return g.jsxs(ke,{flexDirection:"column",gap:"0.5rem",children:[g.jsx(Ye,{tooltip:`${n("parameters.showOptionsPanel")} (O)`,tooltipProps:{placement:"top"},"aria-label":n("parameters.showOptionsPanel"),onClick:r,children:g.jsx(FE,{})}),g.jsx(ke,{children:g.jsx(tP,{iconButton:!0})}),g.jsx(ke,{children:g.jsx(JE,{width:"100%",height:"40px",btnGroupWidth:"100%"})})]})}function $Me(){const e=Te(),{t}=De(),n=le(Lr),r=()=>{e(gE()),e(r4())};return g.jsx(Ye,{"aria-label":t("unifiedCanvas.clearCanvas"),tooltip:t("unifiedCanvas.clearCanvas"),icon:g.jsx(hp,{}),onClick:r,style:{backgroundColor:"var(--btn-delete-image)"},isDisabled:n})}function Tq(e,t,n=250){const[r,i]=S.useState(0);return S.useEffect(()=>{const o=setTimeout(()=>{r===1&&e(),i(0)},n);return r===2&&t(),()=>clearTimeout(o)},[r,e,t,n]),()=>i(o=>o+1)}function FMe(){const e=Qs(),t=Te(),{t:n}=De();Je(["r"],()=>{i()},{enabled:()=>!0,preventDefault:!0},[e]);const r=Tq(()=>i(!1),()=>i(!0)),i=(o=!1)=>{const a=Qs();if(!a)return;const s=a.getClientRect({skipTransform:!0});t(BW({contentRect:s,shouldScaleTo1:o}))};return g.jsx(Ye,{"aria-label":`${n("unifiedCanvas.resetView")} (R)`,tooltip:`${n("unifiedCanvas.resetView")} (R)`,icon:g.jsx(tG,{}),onClick:r})}function BMe(){const e=le(Lr),t=Qs(),n=le(s=>s.system.isProcessing),r=le(s=>s.canvas.shouldCropToBoundingBoxOnSave),i=Te(),{t:o}=De();Je(["shift+s"],()=>{a()},{enabled:()=>!e,preventDefault:!0},[t,n]);const a=()=>{i(Td({cropVisible:!r,cropToBoundingBox:r,shouldSaveToGallery:!0}))};return g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${o("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:g.jsx($E,{}),onClick:a,isDisabled:e})}const zMe=lt([rn,Lr,hr],(e,t,n)=>{const{isProcessing:r}=n,{tool:i}=e;return{tool:i,isStaging:t,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),HMe=()=>{const e=Te(),{t}=De(),{tool:n,isStaging:r}=le(zMe);Je(["b"],()=>{i()},{enabled:()=>!r,preventDefault:!0},[]),Je(["e"],()=>{o()},{enabled:()=>!r,preventDefault:!0},[n]),Je(["c"],()=>{a()},{enabled:()=>!r,preventDefault:!0},[n]),Je(["shift+f"],()=>{s()},{enabled:()=>!r,preventDefault:!0}),Je(["delete","backspace"],()=>{l()},{enabled:()=>!r,preventDefault:!0});const i=()=>e(Jl("brush")),o=()=>e(Jl("eraser")),a=()=>e(Jl("colorPicker")),s=()=>e(NW()),l=()=>e(jW());return g.jsxs(ke,{flexDirection:"column",gap:"0.5rem",children:[g.jsxs(Gi,{children:[g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.brush")} (B)`,tooltip:`${t("unifiedCanvas.brush")} (B)`,icon:g.jsx(aG,{}),"data-selected":n==="brush"&&!r,onClick:i,isDisabled:r}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.eraser")} (E)`,tooltip:`${t("unifiedCanvas.eraser")} (B)`,icon:g.jsx(nG,{}),"data-selected":n==="eraser"&&!r,isDisabled:r,onClick:o})]}),g.jsxs(Gi,{children:[g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:g.jsx(iG,{}),isDisabled:r,onClick:s}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:g.jsx(y2,{style:{transform:"rotate(45deg)"}}),isDisabled:r,onClick:l})]}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.colorPicker")} (C)`,tooltip:`${t("unifiedCanvas.colorPicker")} (C)`,icon:g.jsx(rG,{}),"data-selected":n==="colorPicker"&&!r,isDisabled:r,onClick:a,width:"max-content"})]})},C4=Ze((e,t)=>{const{acceptButtonText:n="Accept",acceptCallback:r,cancelButtonText:i="Cancel",cancelCallback:o,children:a,title:s,triggerComponent:l}=e,{isOpen:u,onOpen:d,onClose:h}=Kd(),m=S.useRef(null),y=()=>{r(),h()},b=()=>{o&&o(),h()};return g.jsxs(g.Fragment,{children:[S.cloneElement(l,{onClick:d,ref:t}),g.jsx($H,{isOpen:u,leastDestructiveRef:m,onClose:h,children:g.jsx(oc,{children:g.jsxs(FH,{className:"modal",children:[g.jsx(op,{fontSize:"lg",fontWeight:"bold",children:s}),g.jsx(Zm,{children:a}),g.jsxs(zw,{children:[g.jsx(ss,{ref:m,onClick:b,className:"modal-close-btn",children:i}),g.jsx(ss,{colorScheme:"red",onClick:y,ml:3,children:n})]})]})})})]})}),Mq=()=>{const e=le(Lr),t=Te(),{t:n}=De(),r=()=>{t(v_e()),t(gE()),t(FW())};return g.jsxs(C4,{title:n("unifiedCanvas.emptyTempImageFolder"),acceptCallback:r,acceptButtonText:n("unifiedCanvas.emptyFolder"),triggerComponent:g.jsx(On,{leftIcon:g.jsx(hp,{}),size:"sm",isDisabled:e,children:n("unifiedCanvas.emptyTempImageFolder")}),children:[g.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderMessage")}),g.jsx("br",{}),g.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderConfirm")})]})},Lq=()=>{const e=le(Lr),t=Te(),{t:n}=De();return g.jsxs(C4,{title:n("unifiedCanvas.clearCanvasHistory"),acceptCallback:()=>t(FW()),acceptButtonText:n("unifiedCanvas.clearHistory"),triggerComponent:g.jsx(On,{size:"sm",leftIcon:g.jsx(hp,{}),isDisabled:e,children:n("unifiedCanvas.clearCanvasHistory")}),children:[g.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryMessage")}),g.jsx("br",{}),g.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryConfirm")})]})},WMe=lt([rn],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:i}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),UMe=()=>{const e=Te(),{t}=De(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldShowCanvasDebugInfo:i,shouldShowIntermediates:o}=le(WMe);return g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{tooltip:t("unifiedCanvas.canvasSettings"),tooltipProps:{placement:"bottom"},"aria-label":t("unifiedCanvas.canvasSettings"),icon:g.jsx(BE,{})}),children:g.jsxs(ke,{direction:"column",gap:"0.5rem",children:[g.jsx(Gn,{label:t("unifiedCanvas.showIntermediates"),isChecked:o,onChange:a=>e(YW(a.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:a=>e(WW(a.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:a=>e(UW(a.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:i,onChange:a=>e(qW(a.target.checked))}),g.jsx(Lq,{}),g.jsx(Mq,{})]})})},VMe=()=>{const e=le(t=>t.ui.shouldShowParametersPanel);return g.jsxs(ke,{flexDirection:"column",rowGap:"0.5rem",width:"6rem",children:[g.jsx(IMe,{}),g.jsx(HMe,{}),g.jsxs(ke,{gap:"0.5rem",children:[g.jsx(jMe,{}),g.jsx(FMe,{})]}),g.jsxs(ke,{columnGap:"0.5rem",children:[g.jsx(DMe,{}),g.jsx(BMe,{})]}),g.jsxs(ke,{columnGap:"0.5rem",children:[g.jsx(LMe,{}),g.jsx(AMe,{})]}),g.jsxs(ke,{gap:"0.5rem",children:[g.jsx(Pq,{}),g.jsx(Eq,{})]}),g.jsxs(ke,{gap:"0.5rem",children:[g.jsx(OMe,{}),g.jsx($Me,{})]}),g.jsx(UMe,{}),!e&&g.jsx(NMe,{})]})};function GMe(){const e=Te(),t=le(i=>i.canvas.brushSize),{t:n}=De(),r=le(Lr);return Je(["BracketLeft"],()=>{e(Lm(Math.max(t-5,5)))},{enabled:()=>!r,preventDefault:!0},[t]),Je(["BracketRight"],()=>{e(Lm(Math.min(t+5,500)))},{enabled:()=>!r,preventDefault:!0},[t]),g.jsx(Dn,{label:n("unifiedCanvas.brushSize"),value:t,withInput:!0,onChange:i=>e(Lm(i)),sliderNumberInputProps:{max:500},inputReadOnly:!1,width:"100px",isCompact:!0})}function _4(){return(_4=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}function a7(e){var t=S.useRef(e),n=S.useRef(function(r){t.current&&t.current(r)});return t.current=e,n.current}var r0=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e0:E.buttons>0)&&i.current?o(PD(i.current,E,s.current)):w(!1)},b=function(){return w(!1)};function w(E){var _=l.current,k=s7(i.current),T=E?k.addEventListener:k.removeEventListener;T(_?"touchmove":"mousemove",y),T(_?"touchend":"mouseup",b)}return[function(E){var _=E.nativeEvent,k=i.current;if(k&&(TD(_),!function(L,O){return O&&!X1(L)}(_,l.current)&&k)){if(X1(_)){l.current=!0;var T=_.changedTouches||[];T.length&&(s.current=T[0].identifier)}k.focus(),o(PD(k,_,s.current)),w(!0)}},function(E){var _=E.which||E.keyCode;_<37||_>40||(E.preventDefault(),a({left:_===39?.05:_===37?-.05:0,top:_===40?.05:_===38?-.05:0}))},w]},[a,o]),d=u[0],h=u[1],m=u[2];return S.useEffect(function(){return m},[m]),Ke.createElement("div",_4({},r,{onTouchStart:d,onMouseDown:d,className:"react-colorful__interactive",ref:i,onKeyDown:h,tabIndex:0,role:"slider"}))}),k4=function(e){return e.filter(Boolean).join(" ")},yP=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,o=k4(["react-colorful__pointer",e.className]);return Ke.createElement("div",{className:o,style:{top:100*i+"%",left:100*n+"%"}},Ke.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Co=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=Math.pow(10,t)),Math.round(n*e)/n},Oq=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:Co(e.h),s:Co(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:Co(i/2),a:Co(r,2)}},l7=function(e){var t=Oq(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},a6=function(e){var t=Oq(e);return"hsla("+t.h+", "+t.s+"%, "+t.l+"%, "+t.a+")"},qMe=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var o=Math.floor(t),a=r*(1-n),s=r*(1-(t-o)*n),l=r*(1-(1-t+o)*n),u=o%6;return{r:Co(255*[r,s,a,a,l,r][u]),g:Co(255*[l,r,r,s,a,a][u]),b:Co(255*[a,a,l,r,r,s][u]),a:Co(i,2)}},KMe=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,o=Math.max(t,n,r),a=o-Math.min(t,n,r),s=a?o===t?(n-r)/a:o===n?2+(r-t)/a:4+(t-n)/a:0;return{h:Co(60*(s<0?s+6:s)),s:Co(o?a/o*100:0),v:Co(o/255*100),a:i}},YMe=Ke.memo(function(e){var t=e.hue,n=e.onChange,r=k4(["react-colorful__hue",e.className]);return Ke.createElement("div",{className:r},Ke.createElement(vP,{onMove:function(i){n({h:360*i.left})},onKey:function(i){n({h:r0(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Co(t),"aria-valuemax":"360","aria-valuemin":"0"},Ke.createElement(yP,{className:"react-colorful__hue-pointer",left:t/360,color:l7({h:t,s:100,v:100,a:1})})))}),XMe=Ke.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:l7({h:t.h,s:100,v:100,a:1})};return Ke.createElement("div",{className:"react-colorful__saturation",style:r},Ke.createElement(vP,{onMove:function(i){n({s:100*i.left,v:100-100*i.top})},onKey:function(i){n({s:r0(t.s+100*i.left,0,100),v:r0(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Co(t.s)+"%, Brightness "+Co(t.v)+"%"},Ke.createElement(yP,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:l7(t)})))}),Rq=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0};function ZMe(e,t,n){var r=a7(n),i=S.useState(function(){return e.toHsva(t)}),o=i[0],a=i[1],s=S.useRef({color:t,hsva:o});S.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},a(u)}},[t,e]),S.useEffect(function(){var u;Rq(o,s.current.hsva)||e.equal(u=e.fromHsva(o),s.current.color)||(s.current={hsva:o,color:u},r(u))},[o,e,r]);var l=S.useCallback(function(u){a(function(d){return Object.assign({},d,u)})},[]);return[o,l]}var QMe=typeof window<"u"?S.useLayoutEffect:S.useEffect,JMe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},MD=new Map,eLe=function(e){QMe(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!MD.has(t)){var n=t.createElement("style");n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,MD.set(t,n);var r=JMe();r&&n.setAttribute("nonce",r),t.head.appendChild(n)}},[])},tLe=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:"linear-gradient(90deg, "+a6(Object.assign({},n,{a:0}))+", "+a6(Object.assign({},n,{a:1}))+")"},o=k4(["react-colorful__alpha",t]),a=Co(100*n.a);return Ke.createElement("div",{className:o},Ke.createElement("div",{className:"react-colorful__alpha-gradient",style:i}),Ke.createElement(vP,{onMove:function(s){r({a:s.left})},onKey:function(s){r({a:r0(n.a+s.left)})},"aria-label":"Alpha","aria-valuetext":a+"%","aria-valuenow":a,"aria-valuemin":"0","aria-valuemax":"100"},Ke.createElement(yP,{className:"react-colorful__alpha-pointer",left:n.a,color:a6(n)})))},nLe=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,o=e.onChange,a=Aq(e,["className","colorModel","color","onChange"]),s=S.useRef(null);eLe(s);var l=ZMe(n,i,o),u=l[0],d=l[1],h=k4(["react-colorful",t]);return Ke.createElement("div",_4({},a,{ref:s,className:h}),Ke.createElement(XMe,{hsva:u,onChange:d}),Ke.createElement(YMe,{hue:u.h,onChange:d}),Ke.createElement(tLe,{hsva:u,onChange:d,className:"react-colorful__last-control"}))},rLe={defaultColor:{r:0,g:0,b:0,a:1},toHsva:KMe,fromHsva:qMe,equal:Rq},iLe=function(e){return Ke.createElement(nLe,_4({},e,{colorModel:rLe}))};const B3=e=>{const{styleClass:t,...n}=e;return g.jsx(iLe,{className:`invokeai__color-picker ${t}`,...n})},oLe=lt([rn,Lr],(e,t)=>{const{brushColor:n,maskColor:r,layer:i}=e;return{brushColor:n,maskColor:r,layer:i,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function aLe(){const e=Te(),{brushColor:t,maskColor:n,layer:r,isStaging:i}=le(oLe),o=()=>{if(r==="base")return`rgba(${t.r},${t.g},${t.b},${t.a})`;if(r==="mask")return`rgba(${n.r},${n.g},${n.b},${n.a})`};return Je(["shift+BracketLeft"],()=>{e(Mm({...t,a:Pe.clamp(t.a-.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[t]),Je(["shift+BracketRight"],()=>{e(Mm({...t,a:Pe.clamp(t.a+.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[t]),g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(ao,{style:{width:"30px",height:"30px",minWidth:"30px",minHeight:"30px",borderRadius:"99999999px",backgroundColor:o(),cursor:"pointer"}}),children:g.jsxs(ke,{minWidth:"15rem",direction:"column",gap:"1rem",width:"100%",children:[r==="base"&&g.jsx(B3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:t,onChange:a=>e(Mm(a))}),r==="mask"&&g.jsx(B3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:n,onChange:a=>e(HW(a))})]})})}function Iq(){return g.jsxs(ke,{columnGap:"1rem",alignItems:"center",children:[g.jsx(GMe,{}),g.jsx(aLe,{})]})}function sLe(){const e=Te(),t=le(r=>r.canvas.shouldRestrictStrokesToBox),{t:n}=De();return g.jsx(Gn,{label:n("unifiedCanvas.betaLimitToBox"),isChecked:t,onChange:r=>e(ZW(r.target.checked))})}function lLe(){return g.jsxs(ke,{gap:"1rem",alignItems:"center",children:[g.jsx(Iq,{}),g.jsx(sLe,{})]})}function uLe(){const e=Te(),{t}=De(),n=()=>e(pE());return g.jsx(On,{size:"sm",leftIcon:g.jsx(hp,{}),onClick:n,tooltip:`${t("unifiedCanvas.clearMask")} (Shift+C)`,children:t("unifiedCanvas.betaClear")})}function cLe(){const e=le(i=>i.canvas.isMaskEnabled),t=Te(),{t:n}=De(),r=()=>t(h2(!e));return g.jsx(Gn,{label:`${n("unifiedCanvas.enableMask")} (H)`,isChecked:e,onChange:r})}function dLe(){const e=Te(),{t}=De(),n=le(r=>r.canvas.shouldPreserveMaskedArea);return g.jsx(Gn,{label:t("unifiedCanvas.betaPreserveMasked"),isChecked:n,onChange:r=>e(GW(r.target.checked))})}function fLe(){return g.jsxs(ke,{gap:"1rem",alignItems:"center",children:[g.jsx(Iq,{}),g.jsx(cLe,{}),g.jsx(dLe,{}),g.jsx(uLe,{})]})}function hLe(){const e=le(r=>r.canvas.shouldDarkenOutsideBoundingBox),t=Te(),{t:n}=De();return g.jsx(Gn,{label:n("unifiedCanvas.betaDarkenOutside"),isChecked:e,onChange:r=>t(VW(r.target.checked))})}function pLe(){const e=le(r=>r.canvas.shouldShowGrid),t=Te(),{t:n}=De();return g.jsx(Gn,{label:n("unifiedCanvas.showGrid"),isChecked:e,onChange:r=>t(KW(r.target.checked))})}function gLe(){const e=le(i=>i.canvas.shouldSnapToGrid),t=Te(),{t:n}=De(),r=i=>t(C3(i.target.checked));return g.jsx(Gn,{label:`${n("unifiedCanvas.snapToGrid")} (N)`,isChecked:e,onChange:r})}function mLe(){return g.jsxs(ke,{alignItems:"center",gap:"1rem",children:[g.jsx(pLe,{}),g.jsx(gLe,{}),g.jsx(hLe,{})]})}const vLe=lt([rn],e=>{const{tool:t,layer:n}=e;return{tool:t,layer:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function yLe(){const{tool:e,layer:t}=le(vLe);return g.jsxs(ke,{height:"2rem",minHeight:"2rem",maxHeight:"2rem",alignItems:"center",children:[t=="base"&&["brush","eraser","colorPicker"].includes(e)&&g.jsx(lLe,{}),t=="mask"&&["brush","eraser","colorPicker"].includes(e)&&g.jsx(fLe,{}),e=="move"&&g.jsx(mLe,{})]})}const bLe=lt([rn],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),xLe=()=>{const e=Te(),{doesCanvasNeedScaling:t}=le(bLe);return S.useLayoutEffect(()=>{e(Li(!0));const n=Pe.debounce(()=>{e(Li(!0))},250);return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),g.jsx("div",{className:"workarea-single-view",children:g.jsxs(ke,{flexDirection:"row",width:"100%",height:"100%",columnGap:"1rem",padding:"1rem",children:[g.jsx(VMe,{}),g.jsxs(ke,{width:"100%",height:"100%",flexDirection:"column",rowGap:"1rem",children:[g.jsx(yLe,{}),t?g.jsx(kq,{}):g.jsx(_q,{})]})]})})},SLe=lt([rn,Lr],(e,t)=>{const{maskColor:n,layer:r,isMaskEnabled:i,shouldPreserveMaskedArea:o}=e;return{layer:r,maskColor:n,maskColorString:zh(n),isMaskEnabled:i,shouldPreserveMaskedArea:o,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),wLe=()=>{const e=Te(),{t}=De(),{layer:n,maskColor:r,isMaskEnabled:i,shouldPreserveMaskedArea:o,isStaging:a}=le(SLe);Je(["q"],()=>{s()},{enabled:()=>!a,preventDefault:!0},[n]),Je(["shift+c"],()=>{l()},{enabled:()=>!a,preventDefault:!0},[]),Je(["h"],()=>{u()},{enabled:()=>!a,preventDefault:!0},[i]);const s=()=>{e(w3(n==="mask"?"base":"mask"))},l=()=>e(pE()),u=()=>e(h2(!i));return g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Gi,{children:g.jsx(Ye,{"aria-label":t("unifiedCanvas.maskingOptions"),tooltip:t("unifiedCanvas.maskingOptions"),icon:g.jsx(Pke,{}),style:n==="mask"?{backgroundColor:"var(--accent-color)"}:{backgroundColor:"var(--btn-base-color)"},isDisabled:a})}),children:g.jsxs(ke,{direction:"column",gap:"0.5rem",children:[g.jsx(Gn,{label:`${t("unifiedCanvas.enableMask")} (H)`,isChecked:i,onChange:u}),g.jsx(Gn,{label:t("unifiedCanvas.preserveMaskedArea"),isChecked:o,onChange:d=>e(GW(d.target.checked))}),g.jsx(B3,{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:r,onChange:d=>e(HW(d))}),g.jsxs(On,{size:"sm",leftIcon:g.jsx(hp,{}),onClick:l,children:[t("unifiedCanvas.clearMask")," (Shift+C)"]})]})})},CLe=lt([rn],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:i,shouldShowGrid:o,shouldShowIntermediates:a,shouldSnapToGrid:s,shouldRestrictStrokesToBox:l}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:i,shouldShowGrid:o,shouldShowIntermediates:a,shouldSnapToGrid:s,shouldRestrictStrokesToBox:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),_Le=()=>{const e=Te(),{t}=De(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldDarkenOutsideBoundingBox:i,shouldShowCanvasDebugInfo:o,shouldShowGrid:a,shouldShowIntermediates:s,shouldSnapToGrid:l,shouldRestrictStrokesToBox:u}=le(CLe);Je(["n"],()=>{e(C3(!l))},{enabled:!0,preventDefault:!0},[l]);const d=h=>e(C3(h.target.checked));return g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{tooltip:t("unifiedCanvas.canvasSettings"),"aria-label":t("unifiedCanvas.canvasSettings"),icon:g.jsx(BE,{})}),children:g.jsxs(ke,{direction:"column",gap:"0.5rem",children:[g.jsx(Gn,{label:t("unifiedCanvas.showIntermediates"),isChecked:s,onChange:h=>e(YW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.showGrid"),isChecked:a,onChange:h=>e(KW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.snapToGrid"),isChecked:l,onChange:d}),g.jsx(Gn,{label:t("unifiedCanvas.darkenOutsideSelection"),isChecked:i,onChange:h=>e(VW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:h=>e(WW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:h=>e(UW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.limitStrokesToBox"),isChecked:u,onChange:h=>e(ZW(h.target.checked))}),g.jsx(Gn,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:o,onChange:h=>e(qW(h.target.checked))}),g.jsx(Lq,{}),g.jsx(Mq,{})]})})},kLe=lt([rn,Lr,hr],(e,t,n)=>{const{isProcessing:r}=n,{tool:i,brushColor:o,brushSize:a}=e;return{tool:i,isStaging:t,isProcessing:r,brushColor:o,brushSize:a}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ELe=()=>{const e=Te(),{tool:t,brushColor:n,brushSize:r,isStaging:i}=le(kLe),{t:o}=De();Je(["b"],()=>{a()},{enabled:()=>!i,preventDefault:!0},[]),Je(["e"],()=>{s()},{enabled:()=>!i,preventDefault:!0},[t]),Je(["c"],()=>{l()},{enabled:()=>!i,preventDefault:!0},[t]),Je(["shift+f"],()=>{u()},{enabled:()=>!i,preventDefault:!0}),Je(["delete","backspace"],()=>{d()},{enabled:()=>!i,preventDefault:!0}),Je(["BracketLeft"],()=>{e(Lm(Math.max(r-5,5)))},{enabled:()=>!i,preventDefault:!0},[r]),Je(["BracketRight"],()=>{e(Lm(Math.min(r+5,500)))},{enabled:()=>!i,preventDefault:!0},[r]),Je(["shift+BracketLeft"],()=>{e(Mm({...n,a:Pe.clamp(n.a-.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[n]),Je(["shift+BracketRight"],()=>{e(Mm({...n,a:Pe.clamp(n.a+.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[n]);const a=()=>e(Jl("brush")),s=()=>e(Jl("eraser")),l=()=>e(Jl("colorPicker")),u=()=>e(NW()),d=()=>e(jW());return g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.brush")} (B)`,tooltip:`${o("unifiedCanvas.brush")} (B)`,icon:g.jsx(aG,{}),"data-selected":t==="brush"&&!i,onClick:a,isDisabled:i}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.eraser")} (E)`,tooltip:`${o("unifiedCanvas.eraser")} (E)`,icon:g.jsx(nG,{}),"data-selected":t==="eraser"&&!i,isDisabled:i,onClick:s}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${o("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:g.jsx(iG,{}),isDisabled:i,onClick:u}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${o("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:g.jsx(y2,{style:{transform:"rotate(45deg)"}}),isDisabled:i,onClick:d}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.colorPicker")} (C)`,tooltip:`${o("unifiedCanvas.colorPicker")} (C)`,icon:g.jsx(rG,{}),"data-selected":t==="colorPicker"&&!i,isDisabled:i,onClick:l}),g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":o("unifiedCanvas.brushOptions"),tooltip:o("unifiedCanvas.brushOptions"),icon:g.jsx(FE,{})}),children:g.jsxs(ke,{minWidth:"15rem",direction:"column",gap:"1rem",width:"100%",children:[g.jsx(ke,{gap:"1rem",justifyContent:"space-between",children:g.jsx(Dn,{label:o("unifiedCanvas.brushSize"),value:r,withInput:!0,onChange:h=>e(Lm(h)),sliderNumberInputProps:{max:500},inputReadOnly:!1})}),g.jsx(B3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:n,onChange:h=>e(Mm(h))})]})})]})},PLe=lt([hr,rn,Lr],(e,t,n)=>{const{isProcessing:r}=e,{tool:i,shouldCropToBoundingBoxOnSave:o,layer:a,isMaskEnabled:s}=t;return{isProcessing:r,isStaging:n,isMaskEnabled:s,tool:i,layer:a,shouldCropToBoundingBoxOnSave:o}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),TLe=()=>{const e=Te(),{isProcessing:t,isStaging:n,isMaskEnabled:r,layer:i,tool:o,shouldCropToBoundingBoxOnSave:a}=le(PLe),s=Qs(),{t:l}=De(),{openUploader:u}=OE();Je(["v"],()=>{d()},{enabled:()=>!n,preventDefault:!0},[]),Je(["r"],()=>{m()},{enabled:()=>!0,preventDefault:!0},[s]),Je(["shift+m"],()=>{b()},{enabled:()=>!n,preventDefault:!0},[s,t]),Je(["shift+s"],()=>{w()},{enabled:()=>!n,preventDefault:!0},[s,t]),Je(["meta+c","ctrl+c"],()=>{E()},{enabled:()=>!n,preventDefault:!0},[s,t]),Je(["shift+d"],()=>{_()},{enabled:()=>!n,preventDefault:!0},[s,t]);const d=()=>e(Jl("move")),h=Tq(()=>m(!1),()=>m(!0)),m=(T=!1)=>{const L=Qs();if(!L)return;const O=L.getClientRect({skipTransform:!0});e(BW({contentRect:O,shouldScaleTo1:T}))},y=()=>{e(gE()),e(r4())},b=()=>{e(Td({cropVisible:!1,shouldSetAsInitialImage:!0}))},w=()=>{e(Td({cropVisible:!a,cropToBoundingBox:a,shouldSaveToGallery:!0}))},E=()=>{e(Td({cropVisible:!a,cropToBoundingBox:a,shouldCopy:!0}))},_=()=>{e(Td({cropVisible:!a,cropToBoundingBox:a,shouldDownload:!0}))},k=T=>{const L=T.target.value;e(w3(L)),L==="mask"&&!r&&e(h2(!0))};return g.jsxs("div",{className:"inpainting-settings",children:[g.jsx(Jo,{tooltip:`${l("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:i,validValues:IW,onChange:k,isDisabled:n}),g.jsx(wLe,{}),g.jsx(ELe,{}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.move")} (V)`,tooltip:`${l("unifiedCanvas.move")} (V)`,icon:g.jsx(JV,{}),"data-selected":o==="move"||n,onClick:d}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.resetView")} (R)`,tooltip:`${l("unifiedCanvas.resetView")} (R)`,icon:g.jsx(tG,{}),onClick:h})]}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${l("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:g.jsx(oG,{}),onClick:b,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${l("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:g.jsx($E,{}),onClick:w,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${l("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:g.jsx(e0,{}),onClick:E,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${l("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:g.jsx(NE,{}),onClick:_,isDisabled:n})]}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Pq,{}),g.jsx(Eq,{})]}),g.jsxs(Gi,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("common.upload")}`,tooltip:`${l("common.upload")}`,icon:g.jsx(h4,{}),onClick:u,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.clearCanvas")}`,tooltip:`${l("unifiedCanvas.clearCanvas")}`,icon:g.jsx(hp,{}),onClick:y,style:{backgroundColor:"var(--btn-delete-image)"},isDisabled:n})]}),g.jsx(Gi,{isAttached:!0,children:g.jsx(_Le,{})})]})},MLe=lt([rn],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),LLe=()=>{const e=Te(),{doesCanvasNeedScaling:t}=le(MLe);return S.useLayoutEffect(()=>{e(Li(!0));const n=Pe.debounce(()=>{e(Li(!0))},250);return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),g.jsx("div",{className:"workarea-single-view",children:g.jsx("div",{className:"workarea-split-view-left",children:g.jsxs("div",{className:"inpainting-main-area",children:[g.jsx(TLe,{}),g.jsx("div",{className:"inpainting-canvas-area",children:t?g.jsx(kq,{}):g.jsx(_q,{})})]})})})},ALe=lt(rn,e=>{const{boundingBoxDimensions:t,boundingBoxScaleMethod:n}=e;return{boundingBoxDimensions:t,boundingBoxScale:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),OLe=()=>{const e=Te(),{boundingBoxDimensions:t}=le(ALe),{t:n}=De(),r=s=>{e(g1({...t,width:Math.floor(s)}))},i=s=>{e(g1({...t,height:Math.floor(s)}))},o=()=>{e(g1({...t,width:Math.floor(512)}))},a=()=>{e(g1({...t,height:Math.floor(512)}))};return g.jsxs(ke,{direction:"column",gap:2,children:[g.jsx(Dn,{label:n("parameters.width"),min:64,max:1024,step:64,value:t.width,onChange:r,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:o,sliderMarkRightOffset:-7}),g.jsx(Dn,{label:n("parameters.height"),min:64,max:1024,step:64,value:t.height,onChange:i,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:a,sliderMarkRightOffset:-7})]})},RLe=lt([eP,hr,rn],(e,t,n)=>{const{tileSize:r,infillMethod:i}=e,{infill_methods:o}=t,{boundingBoxScaleMethod:a,scaledBoundingBoxDimensions:s}=n;return{boundingBoxScale:a,scaledBoundingBoxDimensions:s,tileSize:r,infillMethod:i,availableInfillMethods:o,isManual:a==="manual"}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ILe=()=>{const e=Te(),{tileSize:t,infillMethod:n,availableInfillMethods:r,boundingBoxScale:i,isManual:o,scaledBoundingBoxDimensions:a}=le(RLe),{t:s}=De(),l=y=>{e(Jb({...a,width:Math.floor(y)}))},u=y=>{e(Jb({...a,height:Math.floor(y)}))},d=()=>{e(Jb({...a,width:Math.floor(512)}))},h=()=>{e(Jb({...a,height:Math.floor(512)}))},m=y=>{e(d3e(y.target.value))};return g.jsxs(ke,{direction:"column",gap:4,children:[g.jsx(Jo,{label:s("parameters.scaleBeforeProcessing"),validValues:KSe,value:i,onChange:m}),g.jsx(Dn,{isInputDisabled:!o,isResetDisabled:!o,isSliderDisabled:!o,label:s("parameters.scaledWidth"),min:64,max:1024,step:64,value:a.width,onChange:l,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:d,sliderMarkRightOffset:-7}),g.jsx(Dn,{isInputDisabled:!o,isResetDisabled:!o,isSliderDisabled:!o,label:s("parameters.scaledHeight"),min:64,max:1024,step:64,value:a.height,onChange:u,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:h,sliderMarkRightOffset:-7}),g.jsx(Jo,{label:s("parameters.infillMethod"),value:n,validValues:r,onChange:y=>e(sU(y.target.value))}),g.jsx(Dn,{isInputDisabled:n!=="tile",isResetDisabled:n!=="tile",isSliderDisabled:n!=="tile",sliderMarkRightOffset:-4,label:s("parameters.tileSize"),min:16,max:64,sliderNumberInputProps:{max:256},value:t,onChange:y=>{e(rR(y))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(rR(32))}})]})};function DLe(){const e=Te(),t=le(r=>r.generation.seamBlur),{t:n}=De();return g.jsx(Dn,{sliderMarkRightOffset:-4,label:n("parameters.seamBlur"),min:0,max:64,sliderNumberInputProps:{max:512},value:t,onChange:r=>{e(JO(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(JO(16))}})}function jLe(){const e=Te(),{t}=De(),n=le(r=>r.generation.seamSize);return g.jsx(Dn,{sliderMarkRightOffset:-6,label:t("parameters.seamSize"),min:1,max:256,sliderNumberInputProps:{max:512},value:n,onChange:r=>{e(eR(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>e(eR(96))})}function NLe(){const{t:e}=De(),t=le(r=>r.generation.seamSteps),n=Te();return g.jsx(Dn,{sliderMarkRightOffset:-4,label:e("parameters.seamSteps"),min:1,max:100,sliderNumberInputProps:{max:999},value:t,onChange:r=>{n(tR(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{n(tR(30))}})}function $Le(){const e=Te(),{t}=De(),n=le(r=>r.generation.seamStrength);return g.jsx(Dn,{sliderMarkRightOffset:-7,label:t("parameters.seamStrength"),min:.01,max:.99,step:.01,value:n,onChange:r=>{e(nR(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(nR(.7))}})}const FLe=()=>g.jsxs(ke,{direction:"column",gap:2,children:[g.jsx(jLe,{}),g.jsx(DLe,{}),g.jsx($Le,{}),g.jsx(NLe,{})]});function BLe(){const{t:e}=De(),t={seed:{header:`${e("parameters.seed")}`,feature:oo.SEED,content:g.jsx(aP,{})},boundingBox:{header:`${e("parameters.boundingBoxHeader")}`,feature:oo.BOUNDING_BOX,content:g.jsx(OLe,{})},seamCorrection:{header:`${e("parameters.seamCorrectionHeader")}`,feature:oo.SEAM_CORRECTION,content:g.jsx(FLe,{})},infillAndScaling:{header:`${e("parameters.infillScalingHeader")}`,feature:oo.INFILL_AND_SCALING,content:g.jsx(ILe,{})},variations:{header:`${e("parameters.variations")}`,feature:oo.VARIATIONS,content:g.jsx(lP,{}),additionalHeaderComponents:g.jsx(sP,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(iP,{}),additionalHeaderComponents:g.jsx(oP,{})}},n={unifiedCanvasImg2Img:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:g.jsx(gq,{label:e("parameters.img2imgStrength"),styleClass:"main-settings-block image-to-image-strength-main-option"})}};return g.jsxs(hP,{children:[g.jsxs(ke,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(fP,{}),g.jsx(dP,{})]}),g.jsx(cP,{}),g.jsx(uP,{}),g.jsx(n0,{accordionInfo:n}),g.jsx(n0,{accordionInfo:t})]})}function zLe(){const e=le(t=>t.ui.shouldUseCanvasBetaLayout);return g.jsx(rP,{optionsPanel:g.jsx(BLe,{}),styleClass:"inpainting-workarea-overrides",children:e?g.jsx(xLe,{}):g.jsx(LLe,{})})}const Qa={txt2img:{title:g.jsx(R_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(OPe,{}),tooltip:"Text To Image"},img2img:{title:g.jsx(L_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(_Pe,{}),tooltip:"Image To Image"},unifiedCanvas:{title:g.jsx(D_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(zLe,{}),tooltip:"Unified Canvas"},nodes:{title:g.jsx(A_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(E_e,{}),tooltip:"Nodes"},postprocess:{title:g.jsx(O_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(P_e,{}),tooltip:"Post Processing"},training:{title:g.jsx(I_e,{fill:"black",boxSize:"2.5rem"}),workarea:g.jsx(T_e,{}),tooltip:"Training"}};function HLe(){Qa.txt2img.tooltip=Et.t("common.text2img"),Qa.img2img.tooltip=Et.t("common.img2img"),Qa.unifiedCanvas.tooltip=Et.t("common.unifiedCanvas"),Qa.nodes.tooltip=Et.t("common.nodes"),Qa.postprocess.tooltip=Et.t("common.postProcessing"),Qa.training.tooltip=Et.t("common.training")}function WLe(){const e=le(k_e),t=le(u=>u.lightbox.isLightboxOpen),{shouldShowGallery:n,shouldShowParametersPanel:r,shouldPinGallery:i,shouldPinParametersPanel:o}=le(nP);M_e(HLe);const a=Te();Je("1",()=>{a(Wo(0))}),Je("2",()=>{a(Wo(1))}),Je("3",()=>{a(Wo(2))}),Je("4",()=>{a(Wo(3))}),Je("5",()=>{a(Wo(4))}),Je("6",()=>{a(Wo(5))}),Je("z",()=>{a(Om(!t))},[t]),Je("f",()=>{n||r?(a(Fh(!1)),a(Am(!1))):(a(Fh(!0)),a(Am(!0))),(i||o)&&setTimeout(()=>a(Li(!0)),400)},[n,r]);const s=()=>{const u=[];return Object.keys(Qa).forEach(d=>{u.push(g.jsx(si,{hasArrow:!0,label:Qa[d].tooltip,placement:"right",children:g.jsx(sW,{children:Qa[d].title})},d))}),u},l=()=>{const u=[];return Object.keys(Qa).forEach(d=>{u.push(g.jsx(oW,{className:"app-tabs-panel",children:Qa[d].workarea},d))}),u};return g.jsxs(iW,{isLazy:!0,className:"app-tabs",variant:"unstyled",defaultIndex:e,index:e,onChange:u=>{a(Wo(u))},children:[g.jsx("div",{className:"app-tabs-list",children:s()}),g.jsx(aW,{className:"app-tabs-panels",children:t?g.jsx(UEe,{}):l()})]})}var ULe=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["heic","image/heic"],["heif","image/heif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function C2(e,t){var n=VLe(e);if(typeof n.path!="string"){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:typeof t=="string"?t:typeof r=="string"&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}function VLe(e){var t=e.name,n=t&&t.lastIndexOf(".")!==-1;if(n&&!e.type){var r=t.split(".").pop().toLowerCase(),i=ULe.get(r);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var GLe=[".DS_Store","Thumbs.db"];function qLe(e){return f0(this,void 0,void 0,function(){return h0(this,function(t){return z3(e)&&KLe(e.dataTransfer)?[2,QLe(e.dataTransfer,e.type)]:YLe(e)?[2,XLe(e)]:Array.isArray(e)&&e.every(function(n){return"getFile"in n&&typeof n.getFile=="function"})?[2,ZLe(e)]:[2,[]]})})}function KLe(e){return z3(e)}function YLe(e){return z3(e)&&z3(e.target)}function z3(e){return typeof e=="object"&&e!==null}function XLe(e){return u7(e.target.files).map(function(t){return C2(t)})}function ZLe(e){return f0(this,void 0,void 0,function(){var t;return h0(this,function(n){switch(n.label){case 0:return[4,Promise.all(e.map(function(r){return r.getFile()}))];case 1:return t=n.sent(),[2,t.map(function(r){return C2(r)})]}})})}function QLe(e,t){return f0(this,void 0,void 0,function(){var n,r;return h0(this,function(i){switch(i.label){case 0:return e.items?(n=u7(e.items).filter(function(o){return o.kind==="file"}),t!=="drop"?[2,n]:[4,Promise.all(n.map(JLe))]):[3,2];case 1:return r=i.sent(),[2,LD(Dq(r))];case 2:return[2,LD(u7(e.files).map(function(o){return C2(o)}))]}})})}function LD(e){return e.filter(function(t){return GLe.indexOf(t.name)===-1})}function u7(e){if(e===null)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,DD(n)];if(e.sizen)return[!1,DD(n)]}return[!0,null]}function Sh(e){return e!=null}function gAe(e){var t=e.files,n=e.accept,r=e.minSize,i=e.maxSize,o=e.multiple,a=e.maxFiles,s=e.validator;return!o&&t.length>1||o&&a>=1&&t.length>a?!1:t.every(function(l){var u=Fq(l,n),d=zy(u,1),h=d[0],m=Bq(l,r,i),y=zy(m,1),b=y[0],w=s?s(l):null;return h&&b&&!w})}function H3(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function kx(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function ND(e){e.preventDefault()}function mAe(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function vAe(e){return e.indexOf("Edge/")!==-1}function yAe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return mAe(e)||vAe(e)}function Ml(){for(var e=arguments.length,t=new Array(e),n=0;n1?i-1:0),a=1;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function DAe(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var bP=S.forwardRef(function(e,t){var n=e.children,r=W3(e,_Ae),i=Vq(r),o=i.open,a=W3(i,kAe);return S.useImperativeHandle(t,function(){return{open:o}},[o]),Ke.createElement(S.Fragment,null,n(_r(_r({},a),{},{open:o})))});bP.displayName="Dropzone";var Uq={disabled:!1,getFilesFromEvent:qLe,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};bP.defaultProps=Uq;bP.propTypes={children:An.func,accept:An.objectOf(An.arrayOf(An.string)),multiple:An.bool,preventDropOnDocument:An.bool,noClick:An.bool,noKeyboard:An.bool,noDrag:An.bool,noDragEventsBubbling:An.bool,minSize:An.number,maxSize:An.number,maxFiles:An.number,disabled:An.bool,getFilesFromEvent:An.func,onFileDialogCancel:An.func,onFileDialogOpen:An.func,useFsAccessApi:An.bool,autoFocus:An.bool,onDragEnter:An.func,onDragLeave:An.func,onDragOver:An.func,onDrop:An.func,onDropAccepted:An.func,onDropRejected:An.func,onError:An.func,validator:An.func};var h7={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function Vq(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=_r(_r({},Uq),e),n=t.accept,r=t.disabled,i=t.getFilesFromEvent,o=t.maxSize,a=t.minSize,s=t.multiple,l=t.maxFiles,u=t.onDragEnter,d=t.onDragLeave,h=t.onDragOver,m=t.onDrop,y=t.onDropAccepted,b=t.onDropRejected,w=t.onFileDialogCancel,E=t.onFileDialogOpen,_=t.useFsAccessApi,k=t.autoFocus,T=t.preventDropOnDocument,L=t.noClick,O=t.noKeyboard,D=t.noDrag,I=t.noDragEventsBubbling,N=t.onError,W=t.validator,B=S.useMemo(function(){return SAe(n)},[n]),K=S.useMemo(function(){return xAe(n)},[n]),ne=S.useMemo(function(){return typeof E=="function"?E:FD},[E]),z=S.useMemo(function(){return typeof w=="function"?w:FD},[w]),$=S.useRef(null),V=S.useRef(null),X=S.useReducer(jAe,h7),Q=s6(X,2),G=Q[0],Y=Q[1],ee=G.isFocused,fe=G.isFileDialogActive,Ce=S.useRef(typeof window<"u"&&window.isSecureContext&&_&&bAe()),we=function(){!Ce.current&&fe&&setTimeout(function(){if(V.current){var je=V.current.files;je.length||(Y({type:"closeDialog"}),z())}},300)};S.useEffect(function(){return window.addEventListener("focus",we,!1),function(){window.removeEventListener("focus",we,!1)}},[V,fe,z,Ce]);var xe=S.useRef([]),Le=function(je){$.current&&$.current.contains(je.target)||(je.preventDefault(),xe.current=[])};S.useEffect(function(){return T&&(document.addEventListener("dragover",ND,!1),document.addEventListener("drop",Le,!1)),function(){T&&(document.removeEventListener("dragover",ND),document.removeEventListener("drop",Le))}},[$,T]),S.useEffect(function(){return!r&&k&&$.current&&$.current.focus(),function(){}},[$,k,r]);var Se=S.useCallback(function(ye){N?N(ye):console.error(ye)},[N]),Qe=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye),xe.current=[].concat(TAe(xe.current),[ye.target]),kx(ye)&&Promise.resolve(i(ye)).then(function(je){if(!(H3(ye)&&!I)){var vt=je.length,Mt=vt>0&&gAe({files:je,accept:B,minSize:a,maxSize:o,multiple:s,maxFiles:l,validator:W}),Me=vt>0&&!Mt;Y({isDragAccept:Mt,isDragReject:Me,isDragActive:!0,type:"setDraggedFiles"}),u&&u(ye)}}).catch(function(je){return Se(je)})},[i,u,Se,I,B,a,o,s,l,W]),Xe=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye);var je=kx(ye);if(je&&ye.dataTransfer)try{ye.dataTransfer.dropEffect="copy"}catch{}return je&&h&&h(ye),!1},[h,I]),tt=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye);var je=xe.current.filter(function(Mt){return $.current&&$.current.contains(Mt)}),vt=je.indexOf(ye.target);vt!==-1&&je.splice(vt,1),xe.current=je,!(je.length>0)&&(Y({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),kx(ye)&&d&&d(ye))},[$,d,I]),yt=S.useCallback(function(ye,je){var vt=[],Mt=[];ye.forEach(function(Me){var Ct=Fq(Me,B),zt=s6(Ct,2),$n=zt[0],qe=zt[1],pt=Bq(Me,a,o),zr=s6(pt,2),rr=zr[0],Bn=zr[1],li=W?W(Me):null;if($n&&rr&&!li)vt.push(Me);else{var vs=[qe,Bn];li&&(vs=vs.concat(li)),Mt.push({file:Me,errors:vs.filter(function(tl){return tl})})}}),(!s&&vt.length>1||s&&l>=1&&vt.length>l)&&(vt.forEach(function(Me){Mt.push({file:Me,errors:[pAe]})}),vt.splice(0)),Y({acceptedFiles:vt,fileRejections:Mt,type:"setFiles"}),m&&m(vt,Mt,je),Mt.length>0&&b&&b(Mt,je),vt.length>0&&y&&y(vt,je)},[Y,s,B,a,o,l,m,y,b,W]),Be=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye),xe.current=[],kx(ye)&&Promise.resolve(i(ye)).then(function(je){H3(ye)&&!I||yt(je,ye)}).catch(function(je){return Se(je)}),Y({type:"reset"})},[i,yt,Se,I]),Ae=S.useCallback(function(){if(Ce.current){Y({type:"openDialog"}),ne();var ye={multiple:s,types:K};window.showOpenFilePicker(ye).then(function(je){return i(je)}).then(function(je){yt(je,null),Y({type:"closeDialog"})}).catch(function(je){wAe(je)?(z(je),Y({type:"closeDialog"})):CAe(je)?(Ce.current=!1,V.current?(V.current.value=null,V.current.click()):Se(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):Se(je)});return}V.current&&(Y({type:"openDialog"}),ne(),V.current.value=null,V.current.click())},[Y,ne,z,_,yt,Se,K,s]),bt=S.useCallback(function(ye){!$.current||!$.current.isEqualNode(ye.target)||(ye.key===" "||ye.key==="Enter"||ye.keyCode===32||ye.keyCode===13)&&(ye.preventDefault(),Ae())},[$,Ae]),Fe=S.useCallback(function(){Y({type:"focus"})},[]),at=S.useCallback(function(){Y({type:"blur"})},[]),jt=S.useCallback(function(){L||(yAe()?setTimeout(Ae,0):Ae())},[L,Ae]),mt=function(je){return r?null:je},Zt=function(je){return O?null:mt(je)},on=function(je){return D?null:mt(je)},se=function(je){I&&je.stopPropagation()},Ie=S.useMemo(function(){return function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},je=ye.refKey,vt=je===void 0?"ref":je,Mt=ye.role,Me=ye.onKeyDown,Ct=ye.onFocus,zt=ye.onBlur,$n=ye.onClick,qe=ye.onDragEnter,pt=ye.onDragOver,zr=ye.onDragLeave,rr=ye.onDrop,Bn=W3(ye,EAe);return _r(_r(f7({onKeyDown:Zt(Ml(Me,bt)),onFocus:Zt(Ml(Ct,Fe)),onBlur:Zt(Ml(zt,at)),onClick:mt(Ml($n,jt)),onDragEnter:on(Ml(qe,Qe)),onDragOver:on(Ml(pt,Xe)),onDragLeave:on(Ml(zr,tt)),onDrop:on(Ml(rr,Be)),role:typeof Mt=="string"&&Mt!==""?Mt:"presentation"},vt,$),!r&&!O?{tabIndex:0}:{}),Bn)}},[$,bt,Fe,at,jt,Qe,Xe,tt,Be,O,D,r]),He=S.useCallback(function(ye){ye.stopPropagation()},[]),Ue=S.useMemo(function(){return function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},je=ye.refKey,vt=je===void 0?"ref":je,Mt=ye.onChange,Me=ye.onClick,Ct=W3(ye,PAe),zt=f7({accept:B,multiple:s,type:"file",style:{display:"none"},onChange:mt(Ml(Mt,Be)),onClick:mt(Ml(Me,He)),tabIndex:-1},vt,V);return _r(_r({},zt),Ct)}},[V,n,s,Be,r]);return _r(_r({},G),{},{isFocused:ee&&!r,getRootProps:Ie,getInputProps:Ue,rootRef:$,inputRef:V,open:mt(Ae)})}function jAe(e,t){switch(t.type){case"focus":return _r(_r({},e),{},{isFocused:!0});case"blur":return _r(_r({},e),{},{isFocused:!1});case"openDialog":return _r(_r({},h7),{},{isFileDialogActive:!0});case"closeDialog":return _r(_r({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return _r(_r({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return _r(_r({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return _r({},h7);default:return e}}function FD(){}const NAe=e=>{const{isDragAccept:t,isDragReject:n,overlaySecondaryText:r,setIsHandlingUpload:i}=e;return Je("esc",()=>{i(!1)}),g.jsxs("div",{className:"dropzone-container",children:[t&&g.jsx("div",{className:"dropzone-overlay is-drag-accept",children:g.jsxs(jh,{size:"lg",children:["Upload Image",r]})}),n&&g.jsxs("div",{className:"dropzone-overlay is-drag-reject",children:[g.jsx(jh,{size:"lg",children:"Invalid Upload"}),g.jsx(jh,{size:"md",children:"Must be single JPEG or PNG image"})]})]})},$Ae=e=>{const{children:t}=e,n=Te(),r=le(Br),i=a2({}),{t:o}=De(),[a,s]=S.useState(!1),{setOpenUploader:l}=OE(),u=S.useCallback(T=>{s(!0);const L=T.errors.reduce((O,D)=>`${O} -${D.message}`,"");i({title:o("toast.uploadFailed"),description:L,status:"error",isClosable:!0})},[o,i]),d=S.useCallback(async T=>{n(TI({imageFile:T}))},[n]),h=S.useCallback((T,L)=>{L.forEach(O=>{u(O)}),T.forEach(O=>{d(O)})},[d,u]),{getRootProps:m,getInputProps:y,isDragAccept:b,isDragReject:w,isDragActive:E,open:_}=Vq({accept:{"image/png":[".png"],"image/jpeg":[".jpg",".jpeg",".png"]},noClick:!0,onDrop:h,onDragOver:()=>s(!0),maxFiles:1});l(_),S.useEffect(()=>{const T=L=>{var N;const O=(N=L.clipboardData)==null?void 0:N.items;if(!O)return;const D=[];for(const W of O)W.kind==="file"&&["image/png","image/jpg"].includes(W.type)&&D.push(W);if(!D.length)return;if(L.stopImmediatePropagation(),D.length>1){i({description:o("toast.uploadFailedMultipleImagesDesc"),status:"error",isClosable:!0});return}const I=D[0].getAsFile();if(!I){i({description:o("toast.uploadFailedUnableToLoadDesc"),status:"error",isClosable:!0});return}n(TI({imageFile:I}))};return document.addEventListener("paste",T),()=>{document.removeEventListener("paste",T)}},[o,n,i,r]);const k=["img2img","unifiedCanvas"].includes(r)?` to ${Qa[r].tooltip}`:"";return g.jsx(AE.Provider,{value:_,children:g.jsxs("div",{...m({style:{}}),onKeyDown:T=>{T.key},children:[g.jsx("input",{...y()}),t,E&&a&&g.jsx(NAe,{isDragAccept:b,isDragReject:w,overlaySecondaryText:k,setIsHandlingUpload:s})]})})},FAe=lt(hr,e=>e.log,{memoizeOptions:{resultEqualityCheck:(e,t)=>e.length===t.length}}),BAe=lt(hr,e=>({shouldShowLogViewer:e.shouldShowLogViewer,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),zAe=()=>{const e=Te(),t=le(FAe),{shouldShowLogViewer:n,hasError:r,wasErrorSeen:i}=le(BAe),[o,a]=S.useState(!0),s=S.useRef(null);S.useLayoutEffect(()=>{s.current!==null&&o&&(s.current.scrollTop=s.current.scrollHeight)},[o,t,n]);const l=()=>{e(DU()),e(FC(!n))};Je("`",()=>{e(FC(!n))},[n]),Je("esc",()=>{e(FC(!1))});const u=()=>{s.current&&o&&s.current.scrollTop{const{timestamp:m,message:y,level:b}=d;return g.jsxs("div",{className:`console-entry console-${b}-color`,children:[g.jsxs("p",{className:"console-timestamp",children:[m,":"]}),g.jsx("p",{className:"console-message",children:y})]},h)})})}),n&&g.jsx(si,{hasArrow:!0,label:o?"Autoscroll On":"Autoscroll Off",children:g.jsx(ls,{className:"console-autoscroll-icon-button","data-autoscroll-enabled":o,size:"sm","aria-label":"Toggle autoscroll",variant:"solid",icon:g.jsx(hke,{}),onClick:()=>a(!o)})}),g.jsx(si,{hasArrow:!0,label:n?"Hide Console":"Show Console",children:g.jsx(ls,{className:"console-toggle-icon-button","data-error-seen":r||!i,size:"sm",position:"fixed",variant:"solid","aria-label":"Toggle Log Viewer",icon:n?g.jsx(Tke,{}):g.jsx(eG,{}),onClick:l})})]})},HAe=lt(hr,e=>({isProcessing:e.isProcessing,currentStep:e.currentStep,totalSteps:e.totalSteps,currentStatusHasSteps:e.currentStatusHasSteps}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),WAe=()=>{const{isProcessing:e,currentStep:t,totalSteps:n,currentStatusHasSteps:r}=le(HAe),i=t?Math.round(t*100/n):0;return g.jsx(UH,{value:i,isIndeterminate:e&&!r,className:"progress-bar"})};function UAe(e){const{title:t,hotkey:n,description:r}=e;return g.jsxs("div",{className:"hotkey-modal-item",children:[g.jsxs("div",{className:"hotkey-info",children:[g.jsx("p",{className:"hotkey-title",children:t}),r&&g.jsx("p",{className:"hotkey-description",children:r})]}),g.jsx("div",{className:"hotkey-key",children:n})]})}function VAe({children:e}){const{isOpen:t,onOpen:n,onClose:r}=Kd(),{t:i}=De(),o=[{title:i("hotkeys.invoke.title"),desc:i("hotkeys.invoke.desc"),hotkey:"Ctrl+Enter"},{title:i("hotkeys.cancel.title"),desc:i("hotkeys.cancel.desc"),hotkey:"Shift+X"},{title:i("hotkeys.focusPrompt.title"),desc:i("hotkeys.focusPrompt.desc"),hotkey:"Alt+A"},{title:i("hotkeys.toggleOptions.title"),desc:i("hotkeys.toggleOptions.desc"),hotkey:"O"},{title:i("hotkeys.pinOptions.title"),desc:i("hotkeys.pinOptions.desc"),hotkey:"Shift+O"},{title:i("hotkeys.toggleViewer.title"),desc:i("hotkeys.toggleViewer.desc"),hotkey:"Z"},{title:i("hotkeys.toggleGallery.title"),desc:i("hotkeys.toggleGallery.desc"),hotkey:"G"},{title:i("hotkeys.maximizeWorkSpace.title"),desc:i("hotkeys.maximizeWorkSpace.desc"),hotkey:"F"},{title:i("hotkeys.changeTabs.title"),desc:i("hotkeys.changeTabs.desc"),hotkey:"1-5"},{title:i("hotkeys.consoleToggle.title"),desc:i("hotkeys.consoleToggle.desc"),hotkey:"`"}],a=[{title:i("hotkeys.setPrompt.title"),desc:i("hotkeys.setPrompt.desc"),hotkey:"P"},{title:i("hotkeys.setSeed.title"),desc:i("hotkeys.setSeed.desc"),hotkey:"S"},{title:i("hotkeys.setParameters.title"),desc:i("hotkeys.setParameters.desc"),hotkey:"A"},{title:i("hotkeys.restoreFaces.title"),desc:i("hotkeys.restoreFaces.desc"),hotkey:"Shift+R"},{title:i("hotkeys.upscale.title"),desc:i("hotkeys.upscale.desc"),hotkey:"Shift+U"},{title:i("hotkeys.showInfo.title"),desc:i("hotkeys.showInfo.desc"),hotkey:"I"},{title:i("hotkeys.sendToImageToImage.title"),desc:i("hotkeys.sendToImageToImage.desc"),hotkey:"Shift+I"},{title:i("hotkeys.deleteImage.title"),desc:i("hotkeys.deleteImage.desc"),hotkey:"Del"},{title:i("hotkeys.closePanels.title"),desc:i("hotkeys.closePanels.desc"),hotkey:"Esc"}],s=[{title:i("hotkeys.previousImage.title"),desc:i("hotkeys.previousImage.desc"),hotkey:"Arrow Left"},{title:i("hotkeys.nextImage.title"),desc:i("hotkeys.nextImage.desc"),hotkey:"Arrow Right"},{title:i("hotkeys.toggleGalleryPin.title"),desc:i("hotkeys.toggleGalleryPin.desc"),hotkey:"Shift+G"},{title:i("hotkeys.increaseGalleryThumbSize.title"),desc:i("hotkeys.increaseGalleryThumbSize.desc"),hotkey:"Shift+Up"},{title:i("hotkeys.decreaseGalleryThumbSize.title"),desc:i("hotkeys.decreaseGalleryThumbSize.desc"),hotkey:"Shift+Down"}],l=[{title:i("hotkeys.selectBrush.title"),desc:i("hotkeys.selectBrush.desc"),hotkey:"B"},{title:i("hotkeys.selectEraser.title"),desc:i("hotkeys.selectEraser.desc"),hotkey:"E"},{title:i("hotkeys.decreaseBrushSize.title"),desc:i("hotkeys.decreaseBrushSize.desc"),hotkey:"["},{title:i("hotkeys.increaseBrushSize.title"),desc:i("hotkeys.increaseBrushSize.desc"),hotkey:"]"},{title:i("hotkeys.decreaseBrushOpacity.title"),desc:i("hotkeys.decreaseBrushOpacity.desc"),hotkey:"Shift + ["},{title:i("hotkeys.increaseBrushOpacity.title"),desc:i("hotkeys.increaseBrushOpacity.desc"),hotkey:"Shift + ]"},{title:i("hotkeys.moveTool.title"),desc:i("hotkeys.moveTool.desc"),hotkey:"V"},{title:i("hotkeys.fillBoundingBox.title"),desc:i("hotkeys.fillBoundingBox.desc"),hotkey:"Shift + F"},{title:i("hotkeys.eraseBoundingBox.title"),desc:i("hotkeys.eraseBoundingBox.desc"),hotkey:"Delete / Backspace"},{title:i("hotkeys.colorPicker.title"),desc:i("hotkeys.colorPicker.desc"),hotkey:"C"},{title:i("hotkeys.toggleSnap.title"),desc:i("hotkeys.toggleSnap.desc"),hotkey:"N"},{title:i("hotkeys.quickToggleMove.title"),desc:i("hotkeys.quickToggleMove.desc"),hotkey:"Hold Space"},{title:i("hotkeys.toggleLayer.title"),desc:i("hotkeys.toggleLayer.desc"),hotkey:"Q"},{title:i("hotkeys.clearMask.title"),desc:i("hotkeys.clearMask.desc"),hotkey:"Shift+C"},{title:i("hotkeys.hideMask.title"),desc:i("hotkeys.hideMask.desc"),hotkey:"H"},{title:i("hotkeys.showHideBoundingBox.title"),desc:i("hotkeys.showHideBoundingBox.desc"),hotkey:"Shift+H"},{title:i("hotkeys.mergeVisible.title"),desc:i("hotkeys.mergeVisible.desc"),hotkey:"Shift+M"},{title:i("hotkeys.saveToGallery.title"),desc:i("hotkeys.saveToGallery.desc"),hotkey:"Shift+S"},{title:i("hotkeys.copyToClipboard.title"),desc:i("hotkeys.copyToClipboard.desc"),hotkey:"Ctrl+C"},{title:i("hotkeys.downloadImage.title"),desc:i("hotkeys.downloadImage.desc"),hotkey:"Shift+D"},{title:i("hotkeys.undoStroke.title"),desc:i("hotkeys.undoStroke.desc"),hotkey:"Ctrl+Z"},{title:i("hotkeys.redoStroke.title"),desc:i("hotkeys.redoStroke.desc"),hotkey:"Ctrl+Shift+Z, Ctrl+Y"},{title:i("hotkeys.resetView.title"),desc:i("hotkeys.resetView.desc"),hotkey:"R"},{title:i("hotkeys.previousStagingImage.title"),desc:i("hotkeys.previousStagingImage.desc"),hotkey:"Arrow Left"},{title:i("hotkeys.nextStagingImage.title"),desc:i("hotkeys.nextStagingImage.desc"),hotkey:"Arrow Right"},{title:i("hotkeys.acceptStagingImage.title"),desc:i("hotkeys.acceptStagingImage.desc"),hotkey:"Enter"}],u=d=>{const h=[];return d.forEach((m,y)=>{h.push(g.jsx(UAe,{title:m.title,description:m.desc,hotkey:m.hotkey},y))}),g.jsx("div",{className:"hotkey-modal-category",children:h})};return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:n}),g.jsxs(Yd,{isOpen:t,onClose:r,children:[g.jsx(oc,{}),g.jsxs(Xd,{className:" modal hotkeys-modal",children:[g.jsx(m0,{className:"modal-close-btn"}),g.jsx("h1",{children:"Keyboard Shorcuts"}),g.jsx("div",{className:"hotkeys-modal-items",children:g.jsxs(c8,{allowMultiple:!0,children:[g.jsxs(rm,{children:[g.jsxs(tm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.appHotkeys")}),g.jsx(nm,{})]}),g.jsx(om,{children:u(o)})]}),g.jsxs(rm,{children:[g.jsxs(tm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.generalHotkeys")}),g.jsx(nm,{})]}),g.jsx(om,{children:u(a)})]}),g.jsxs(rm,{children:[g.jsxs(tm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.galleryHotkeys")}),g.jsx(nm,{})]}),g.jsx(om,{children:u(s)})]}),g.jsxs(rm,{children:[g.jsxs(tm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.unifiedCanvasHotkeys")}),g.jsx(nm,{})]}),g.jsx(om,{children:u(l)})]})]})})]})]})]})}var BD=Array.isArray,zD=Object.keys,GAe=Object.prototype.hasOwnProperty,qAe=typeof Element<"u";function p7(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=BD(e),r=BD(t),i,o,a;if(n&&r){if(o=e.length,o!=t.length)return!1;for(i=o;i--!==0;)if(!p7(e[i],t[i]))return!1;return!0}if(n!=r)return!1;var s=e instanceof Date,l=t instanceof Date;if(s!=l)return!1;if(s&&l)return e.getTime()==t.getTime();var u=e instanceof RegExp,d=t instanceof RegExp;if(u!=d)return!1;if(u&&d)return e.toString()==t.toString();var h=zD(e);if(o=h.length,o!==zD(t).length)return!1;for(i=o;i--!==0;)if(!GAe.call(t,h[i]))return!1;if(qAe&&e instanceof Element&&t instanceof Element)return e===t;for(i=o;i--!==0;)if(a=h[i],!(a==="_owner"&&e.$$typeof)&&!p7(e[a],t[a]))return!1;return!0}return e!==e&&t!==t}var md=function(t,n){try{return p7(t,n)}catch(r){if(r.message&&r.message.match(/stack|recursion/i)||r.number===-2146828260)return console.warn("Warning: react-fast-compare does not handle circular references.",r.name,r.message),!1;throw r}},KAe=function(t){return YAe(t)&&!XAe(t)};function YAe(e){return!!e&&typeof e=="object"}function XAe(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||JAe(e)}var ZAe=typeof Symbol=="function"&&Symbol.for,QAe=ZAe?Symbol.for("react.element"):60103;function JAe(e){return e.$$typeof===QAe}function eOe(e){return Array.isArray(e)?[]:{}}function U3(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Hy(eOe(e),e,t):e}function tOe(e,t,n){return e.concat(t).map(function(r){return U3(r,n)})}function nOe(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach(function(i){r[i]=U3(e[i],n)}),Object.keys(t).forEach(function(i){!n.isMergeableObject(t[i])||!e[i]?r[i]=U3(t[i],n):r[i]=Hy(e[i],t[i],n)}),r}function Hy(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||tOe,n.isMergeableObject=n.isMergeableObject||KAe;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):nOe(e,t,n):U3(t,n)}Hy.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return Hy(r,i,n)},{})};var g7=Hy,rOe=typeof global=="object"&&global&&global.Object===Object&&global;const Gq=rOe;var iOe=typeof self=="object"&&self&&self.Object===Object&&self,oOe=Gq||iOe||Function("return this")();const du=oOe;var aOe=du.Symbol;const tf=aOe;var qq=Object.prototype,sOe=qq.hasOwnProperty,lOe=qq.toString,r1=tf?tf.toStringTag:void 0;function uOe(e){var t=sOe.call(e,r1),n=e[r1];try{e[r1]=void 0;var r=!0}catch{}var i=lOe.call(e);return r&&(t?e[r1]=n:delete e[r1]),i}var cOe=Object.prototype,dOe=cOe.toString;function fOe(e){return dOe.call(e)}var hOe="[object Null]",pOe="[object Undefined]",HD=tf?tf.toStringTag:void 0;function yp(e){return e==null?e===void 0?pOe:hOe:HD&&HD in Object(e)?uOe(e):fOe(e)}function Kq(e,t){return function(n){return e(t(n))}}var gOe=Kq(Object.getPrototypeOf,Object);const xP=gOe;function bp(e){return e!=null&&typeof e=="object"}var mOe="[object Object]",vOe=Function.prototype,yOe=Object.prototype,Yq=vOe.toString,bOe=yOe.hasOwnProperty,xOe=Yq.call(Object);function WD(e){if(!bp(e)||yp(e)!=mOe)return!1;var t=xP(e);if(t===null)return!0;var n=bOe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Yq.call(n)==xOe}function SOe(){this.__data__=[],this.size=0}function Xq(e,t){return e===t||e!==e&&t!==t}function E4(e,t){for(var n=e.length;n--;)if(Xq(e[n][0],t))return n;return-1}var wOe=Array.prototype,COe=wOe.splice;function _Oe(e){var t=this.__data__,n=E4(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():COe.call(t,n,1),--this.size,!0}function kOe(e){var t=this.__data__,n=E4(t,e);return n<0?void 0:t[n][1]}function EOe(e){return E4(this.__data__,e)>-1}function POe(e,t){var n=this.__data__,r=E4(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function yc(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=IRe}var DRe="[object Arguments]",jRe="[object Array]",NRe="[object Boolean]",$Re="[object Date]",FRe="[object Error]",BRe="[object Function]",zRe="[object Map]",HRe="[object Number]",WRe="[object Object]",URe="[object RegExp]",VRe="[object Set]",GRe="[object String]",qRe="[object WeakMap]",KRe="[object ArrayBuffer]",YRe="[object DataView]",XRe="[object Float32Array]",ZRe="[object Float64Array]",QRe="[object Int8Array]",JRe="[object Int16Array]",eIe="[object Int32Array]",tIe="[object Uint8Array]",nIe="[object Uint8ClampedArray]",rIe="[object Uint16Array]",iIe="[object Uint32Array]",ar={};ar[XRe]=ar[ZRe]=ar[QRe]=ar[JRe]=ar[eIe]=ar[tIe]=ar[nIe]=ar[rIe]=ar[iIe]=!0;ar[DRe]=ar[jRe]=ar[KRe]=ar[NRe]=ar[YRe]=ar[$Re]=ar[FRe]=ar[BRe]=ar[zRe]=ar[HRe]=ar[WRe]=ar[URe]=ar[VRe]=ar[GRe]=ar[qRe]=!1;function oIe(e){return bp(e)&&rK(e.length)&&!!ar[yp(e)]}function SP(e){return function(t){return e(t)}}var iK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Z1=iK&&typeof module=="object"&&module&&!module.nodeType&&module,aIe=Z1&&Z1.exports===iK,u6=aIe&&Gq.process,sIe=function(){try{var e=Z1&&Z1.require&&Z1.require("util").types;return e||u6&&u6.binding&&u6.binding("util")}catch{}}();const i0=sIe;var YD=i0&&i0.isTypedArray,lIe=YD?SP(YD):oIe;const uIe=lIe;var cIe=Object.prototype,dIe=cIe.hasOwnProperty;function oK(e,t){var n=k2(e),r=!n&&kRe(e),i=!n&&!r&&nK(e),o=!n&&!r&&!i&&uIe(e),a=n||r||i||o,s=a?xRe(e.length,String):[],l=s.length;for(var u in e)(t||dIe.call(e,u))&&!(a&&(u=="length"||i&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||RRe(u,l)))&&s.push(u);return s}var fIe=Object.prototype;function wP(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||fIe;return e===n}var hIe=Kq(Object.keys,Object);const pIe=hIe;var gIe=Object.prototype,mIe=gIe.hasOwnProperty;function vIe(e){if(!wP(e))return pIe(e);var t=[];for(var n in Object(e))mIe.call(e,n)&&n!="constructor"&&t.push(n);return t}function aK(e){return e!=null&&rK(e.length)&&!Zq(e)}function CP(e){return aK(e)?oK(e):vIe(e)}function yIe(e,t){return e&&T4(t,CP(t),e)}function bIe(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var xIe=Object.prototype,SIe=xIe.hasOwnProperty;function wIe(e){if(!_2(e))return bIe(e);var t=wP(e),n=[];for(var r in e)r=="constructor"&&(t||!SIe.call(e,r))||n.push(r);return n}function _P(e){return aK(e)?oK(e,!0):wIe(e)}function CIe(e,t){return e&&T4(t,_P(t),e)}var sK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,XD=sK&&typeof module=="object"&&module&&!module.nodeType&&module,_Ie=XD&&XD.exports===sK,ZD=_Ie?du.Buffer:void 0,QD=ZD?ZD.allocUnsafe:void 0;function kIe(e,t){if(t)return e.slice();var n=e.length,r=QD?QD(n):new e.constructor(n);return e.copy(r),r}function lK(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0)&&(n[i]=e[i]);return n}function pj(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var gj=function(t){return Array.isArray(t)&&t.length===0},Ho=function(t){return typeof t=="function"},M4=function(t){return t!==null&&typeof t=="object"},Cje=function(t){return String(Math.floor(Number(t)))===t},c6=function(t){return Object.prototype.toString.call(t)==="[object String]"},bK=function(t){return S.Children.count(t)===0},d6=function(t){return M4(t)&&Ho(t.then)};function Ui(e,t,n,r){r===void 0&&(r=0);for(var i=yK(t);e&&r=0?[]:{}}}return(o===0?e:i)[a[o]]===n?e:(n===void 0?delete i[a[o]]:i[a[o]]=n,o===0&&n===void 0&&delete r[a[o]],r)}function xK(e,t,n,r){n===void 0&&(n=new WeakMap),r===void 0&&(r={});for(var i=0,o=Object.keys(e);i0?Ie.map(function(Ue){return N(Ue,Ui(se,Ue))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(He).then(function(Ue){return Ue.reduce(function(ye,je,vt){return je==="DO_NOT_DELETE_YOU_WILL_BE_FIRED"||je&&(ye=tu(ye,Ie[vt],je)),ye},{})})},[N]),B=S.useCallback(function(se){return Promise.all([W(se),m.validationSchema?I(se):{},m.validate?D(se):{}]).then(function(Ie){var He=Ie[0],Ue=Ie[1],ye=Ie[2],je=g7.all([He,Ue,ye],{arrayMerge:Mje});return je})},[m.validate,m.validationSchema,W,D,I]),K=qa(function(se){return se===void 0&&(se=L.values),O({type:"SET_ISVALIDATING",payload:!0}),B(se).then(function(Ie){return _.current&&(O({type:"SET_ISVALIDATING",payload:!1}),O({type:"SET_ERRORS",payload:Ie})),Ie})});S.useEffect(function(){a&&_.current===!0&&md(y.current,m.initialValues)&&K(y.current)},[a,K]);var ne=S.useCallback(function(se){var Ie=se&&se.values?se.values:y.current,He=se&&se.errors?se.errors:b.current?b.current:m.initialErrors||{},Ue=se&&se.touched?se.touched:w.current?w.current:m.initialTouched||{},ye=se&&se.status?se.status:E.current?E.current:m.initialStatus;y.current=Ie,b.current=He,w.current=Ue,E.current=ye;var je=function(){O({type:"RESET_FORM",payload:{isSubmitting:!!se&&!!se.isSubmitting,errors:He,touched:Ue,status:ye,values:Ie,isValidating:!!se&&!!se.isValidating,submitCount:se&&se.submitCount&&typeof se.submitCount=="number"?se.submitCount:0}})};if(m.onReset){var vt=m.onReset(L.values,Be);d6(vt)?vt.then(je):je()}else je()},[m.initialErrors,m.initialStatus,m.initialTouched]);S.useEffect(function(){_.current===!0&&!md(y.current,m.initialValues)&&(u&&(y.current=m.initialValues,ne()),a&&K(y.current))},[u,m.initialValues,ne,a,K]),S.useEffect(function(){u&&_.current===!0&&!md(b.current,m.initialErrors)&&(b.current=m.initialErrors||lh,O({type:"SET_ERRORS",payload:m.initialErrors||lh}))},[u,m.initialErrors]),S.useEffect(function(){u&&_.current===!0&&!md(w.current,m.initialTouched)&&(w.current=m.initialTouched||Ex,O({type:"SET_TOUCHED",payload:m.initialTouched||Ex}))},[u,m.initialTouched]),S.useEffect(function(){u&&_.current===!0&&!md(E.current,m.initialStatus)&&(E.current=m.initialStatus,O({type:"SET_STATUS",payload:m.initialStatus}))},[u,m.initialStatus,m.initialTouched]);var z=qa(function(se){if(k.current[se]&&Ho(k.current[se].validate)){var Ie=Ui(L.values,se),He=k.current[se].validate(Ie);return d6(He)?(O({type:"SET_ISVALIDATING",payload:!0}),He.then(function(Ue){return Ue}).then(function(Ue){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ue}}),O({type:"SET_ISVALIDATING",payload:!1})})):(O({type:"SET_FIELD_ERROR",payload:{field:se,value:He}}),Promise.resolve(He))}else if(m.validationSchema)return O({type:"SET_ISVALIDATING",payload:!0}),I(L.values,se).then(function(Ue){return Ue}).then(function(Ue){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ue[se]}}),O({type:"SET_ISVALIDATING",payload:!1})});return Promise.resolve()}),$=S.useCallback(function(se,Ie){var He=Ie.validate;k.current[se]={validate:He}},[]),V=S.useCallback(function(se){delete k.current[se]},[]),X=qa(function(se,Ie){O({type:"SET_TOUCHED",payload:se});var He=Ie===void 0?i:Ie;return He?K(L.values):Promise.resolve()}),Q=S.useCallback(function(se){O({type:"SET_ERRORS",payload:se})},[]),G=qa(function(se,Ie){var He=Ho(se)?se(L.values):se;O({type:"SET_VALUES",payload:He});var Ue=Ie===void 0?n:Ie;return Ue?K(He):Promise.resolve()}),Y=S.useCallback(function(se,Ie){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ie}})},[]),ee=qa(function(se,Ie,He){O({type:"SET_FIELD_VALUE",payload:{field:se,value:Ie}});var Ue=He===void 0?n:He;return Ue?K(tu(L.values,se,Ie)):Promise.resolve()}),fe=S.useCallback(function(se,Ie){var He=Ie,Ue=se,ye;if(!c6(se)){se.persist&&se.persist();var je=se.target?se.target:se.currentTarget,vt=je.type,Mt=je.name,Me=je.id,Ct=je.value,zt=je.checked,$n=je.outerHTML,qe=je.options,pt=je.multiple;He=Ie||Mt||Me,Ue=/number|range/.test(vt)?(ye=parseFloat(Ct),isNaN(ye)?"":ye):/checkbox/.test(vt)?Aje(Ui(L.values,He),zt,Ct):qe&&pt?Lje(qe):Ct}He&&ee(He,Ue)},[ee,L.values]),Ce=qa(function(se){if(c6(se))return function(Ie){return fe(Ie,se)};fe(se)}),we=qa(function(se,Ie,He){Ie===void 0&&(Ie=!0),O({type:"SET_FIELD_TOUCHED",payload:{field:se,value:Ie}});var Ue=He===void 0?i:He;return Ue?K(L.values):Promise.resolve()}),xe=S.useCallback(function(se,Ie){se.persist&&se.persist();var He=se.target,Ue=He.name,ye=He.id,je=He.outerHTML,vt=Ie||Ue||ye;we(vt,!0)},[we]),Le=qa(function(se){if(c6(se))return function(Ie){return xe(Ie,se)};xe(se)}),Se=S.useCallback(function(se){Ho(se)?O({type:"SET_FORMIK_STATE",payload:se}):O({type:"SET_FORMIK_STATE",payload:function(){return se}})},[]),Qe=S.useCallback(function(se){O({type:"SET_STATUS",payload:se})},[]),Xe=S.useCallback(function(se){O({type:"SET_ISSUBMITTING",payload:se})},[]),tt=qa(function(){return O({type:"SUBMIT_ATTEMPT"}),K().then(function(se){var Ie=se instanceof Error,He=!Ie&&Object.keys(se).length===0;if(He){var Ue;try{if(Ue=Ae(),Ue===void 0)return}catch(ye){throw ye}return Promise.resolve(Ue).then(function(ye){return _.current&&O({type:"SUBMIT_SUCCESS"}),ye}).catch(function(ye){if(_.current)throw O({type:"SUBMIT_FAILURE"}),ye})}else if(_.current&&(O({type:"SUBMIT_FAILURE"}),Ie))throw se})}),yt=qa(function(se){se&&se.preventDefault&&Ho(se.preventDefault)&&se.preventDefault(),se&&se.stopPropagation&&Ho(se.stopPropagation)&&se.stopPropagation(),tt().catch(function(Ie){console.warn("Warning: An unhandled error was caught from submitForm()",Ie)})}),Be={resetForm:ne,validateForm:K,validateField:z,setErrors:Q,setFieldError:Y,setFieldTouched:we,setFieldValue:ee,setStatus:Qe,setSubmitting:Xe,setTouched:X,setValues:G,setFormikState:Se,submitForm:tt},Ae=qa(function(){return d(L.values,Be)}),bt=qa(function(se){se&&se.preventDefault&&Ho(se.preventDefault)&&se.preventDefault(),se&&se.stopPropagation&&Ho(se.stopPropagation)&&se.stopPropagation(),ne()}),Fe=S.useCallback(function(se){return{value:Ui(L.values,se),error:Ui(L.errors,se),touched:!!Ui(L.touched,se),initialValue:Ui(y.current,se),initialTouched:!!Ui(w.current,se),initialError:Ui(b.current,se)}},[L.errors,L.touched,L.values]),at=S.useCallback(function(se){return{setValue:function(He,Ue){return ee(se,He,Ue)},setTouched:function(He,Ue){return we(se,He,Ue)},setError:function(He){return Y(se,He)}}},[ee,we,Y]),jt=S.useCallback(function(se){var Ie=M4(se),He=Ie?se.name:se,Ue=Ui(L.values,He),ye={name:He,value:Ue,onChange:Ce,onBlur:Le};if(Ie){var je=se.type,vt=se.value,Mt=se.as,Me=se.multiple;je==="checkbox"?vt===void 0?ye.checked=!!Ue:(ye.checked=!!(Array.isArray(Ue)&&~Ue.indexOf(vt)),ye.value=vt):je==="radio"?(ye.checked=Ue===vt,ye.value=vt):Mt==="select"&&Me&&(ye.value=ye.value||[],ye.multiple=!0)}return ye},[Le,Ce,L.values]),mt=S.useMemo(function(){return!md(y.current,L.values)},[y.current,L.values]),Zt=S.useMemo(function(){return typeof s<"u"?mt?L.errors&&Object.keys(L.errors).length===0:s!==!1&&Ho(s)?s(m):s:L.errors&&Object.keys(L.errors).length===0},[s,mt,L.errors,m]),on=Vn({},L,{initialValues:y.current,initialErrors:b.current,initialTouched:w.current,initialStatus:E.current,handleBlur:Le,handleChange:Ce,handleReset:bt,handleSubmit:yt,resetForm:ne,setErrors:Q,setFormikState:Se,setFieldTouched:we,setFieldValue:ee,setFieldError:Y,setStatus:Qe,setSubmitting:Xe,setTouched:X,setValues:G,submitForm:tt,validateForm:K,validateField:z,isValid:Zt,dirty:mt,unregisterField:V,registerField:$,getFieldProps:jt,getFieldMeta:Fe,getFieldHelpers:at,validateOnBlur:i,validateOnChange:n,validateOnMount:a});return on}function E2(e){var t=Eje(e),n=e.component,r=e.children,i=e.render,o=e.innerRef;return S.useImperativeHandle(o,function(){return t}),S.createElement(_je,{value:t},n?S.createElement(n,t):i?i(t):r?Ho(r)?r(t):bK(r)?null:S.Children.only(r):null)}function Pje(e){var t={};if(e.inner){if(e.inner.length===0)return tu(t,e.path,e.message);for(var i=e.inner,n=Array.isArray(i),r=0,i=n?i:i[Symbol.iterator]();;){var o;if(n){if(r>=i.length)break;o=i[r++]}else{if(r=i.next(),r.done)break;o=r.value}var a=o;Ui(t,a.path)||(t=tu(t,a.path,a.message))}}return t}function Tje(e,t,n,r){n===void 0&&(n=!1),r===void 0&&(r={});var i=x7(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function x7(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);Array.isArray(e[r])===!0?t[r]=e[r].map(function(i){return Array.isArray(i)===!0||WD(i)?x7(i):i!==""?i:void 0}):WD(e[r])?t[r]=x7(e[r]):t[r]=e[r]!==""?e[r]:void 0}return t}function Mje(e,t,n){var r=e.slice();return t.forEach(function(o,a){if(typeof r[a]>"u"){var s=n.clone!==!1,l=s&&n.isMergeableObject(o);r[a]=l?g7(Array.isArray(o)?[]:{},o,n):o}else n.isMergeableObject(o)?r[a]=g7(e[a],o,n):e.indexOf(o)===-1&&r.push(o)}),r}function Lje(e){return Array.from(e).filter(function(t){return t.selected}).map(function(t){return t.value})}function Aje(e,t,n){if(typeof e=="boolean")return Boolean(t);var r=[],i=!1,o=-1;if(Array.isArray(e))r=e,o=e.indexOf(n),i=o>=0;else if(!n||n=="true"||n=="false")return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,o).concat(r.slice(o+1)):r}var Oje=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?S.useLayoutEffect:S.useEffect;function qa(e){var t=S.useRef(e);return Oje(function(){t.current=e}),S.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;ir?i:r},0);return Array.from(Vn({},t,{length:n+1}))}else return[]},Nje=function(e){wje(t,e);function t(r){var i;return i=e.call(this,r)||this,i.updateArrayField=function(o,a,s){var l=i.props,u=l.name,d=l.formik.setFormikState;d(function(h){var m=typeof s=="function"?s:o,y=typeof a=="function"?a:o,b=tu(h.values,u,o(Ui(h.values,u))),w=s?m(Ui(h.errors,u)):void 0,E=a?y(Ui(h.touched,u)):void 0;return gj(w)&&(w=void 0),gj(E)&&(E=void 0),Vn({},h,{values:b,errors:s?tu(h.errors,u,w):h.errors,touched:a?tu(h.touched,u,E):h.touched})})},i.push=function(o){return i.updateArrayField(function(a){return[].concat(o0(a),[Sje(o)])},!1,!1)},i.handlePush=function(o){return function(){return i.push(o)}},i.swap=function(o,a){return i.updateArrayField(function(s){return Dje(s,o,a)},!0,!0)},i.handleSwap=function(o,a){return function(){return i.swap(o,a)}},i.move=function(o,a){return i.updateArrayField(function(s){return Ije(s,o,a)},!0,!0)},i.handleMove=function(o,a){return function(){return i.move(o,a)}},i.insert=function(o,a){return i.updateArrayField(function(s){return f6(s,o,a)},function(s){return f6(s,o,null)},function(s){return f6(s,o,null)})},i.handleInsert=function(o,a){return function(){return i.insert(o,a)}},i.replace=function(o,a){return i.updateArrayField(function(s){return jje(s,o,a)},!1,!1)},i.handleReplace=function(o,a){return function(){return i.replace(o,a)}},i.unshift=function(o){var a=-1;return i.updateArrayField(function(s){var l=s?[o].concat(s):[o];return a<0&&(a=l.length),l},function(s){var l=s?[null].concat(s):[null];return a<0&&(a=l.length),l},function(s){var l=s?[null].concat(s):[null];return a<0&&(a=l.length),l}),a},i.handleUnshift=function(o){return function(){return i.unshift(o)}},i.handleRemove=function(o){return function(){return i.remove(o)}},i.handlePop=function(){return function(){return i.pop()}},i.remove=i.remove.bind(pj(i)),i.pop=i.pop.bind(pj(i)),i}var n=t.prototype;return n.componentDidUpdate=function(i){this.props.validateOnChange&&this.props.formik.validateOnChange&&!md(Ui(i.formik.values,i.name),Ui(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(i){var o;return this.updateArrayField(function(a){var s=a?o0(a):[];return o||(o=s[i]),Ho(s.splice)&&s.splice(i,1),s},!0,!0),o},n.pop=function(){var i;return this.updateArrayField(function(o){var a=o;return i||(i=a&&a.pop&&a.pop()),a},!0,!0),i},n.render=function(){var i={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},o=this.props,a=o.component,s=o.render,l=o.children,u=o.name,d=o.formik,h=Ph(d,["validate","validationSchema"]),m=Vn({},i,{form:h,name:u});return a?S.createElement(a,m):s?s(m):l?typeof l=="function"?l(m):bK(l)?null:S.Children.only(l):null},t}(S.Component);Nje.defaultProps={validateOnChange:!0};function $je(e){const{model:t}=e,r=le(b=>b.system.model_list)[t],i=Te(),{t:o}=De(),a=le(b=>b.system.isProcessing),s=le(b=>b.system.isConnected),[l,u]=S.useState("same"),[d,h]=S.useState("");S.useEffect(()=>{u("same")},[t]);const m=()=>{u("same")},y=()=>{i(p_e({model_name:t,save_location:l,custom_location:l==="custom"&&d!==""?d:null}))};return g.jsxs(C4,{title:`${o("modelManager.convert")} ${t}`,acceptCallback:y,cancelCallback:m,acceptButtonText:`${o("modelManager.convert")}`,triggerComponent:g.jsxs(On,{size:"sm","aria-label":o("modelManager.convertToDiffusers"),isDisabled:r.status==="active"||a||!s,className:" modal-close-btn",marginRight:"2rem",children:["🧨 ",o("modelManager.convertToDiffusers")]}),motionPreset:"slideInBottom",children:[g.jsxs(ke,{flexDirection:"column",rowGap:4,children:[g.jsx(Dt,{children:o("modelManager.convertToDiffusersHelpText1")}),g.jsxs(tH,{children:[g.jsx(f1,{children:o("modelManager.convertToDiffusersHelpText2")}),g.jsx(f1,{children:o("modelManager.convertToDiffusersHelpText3")}),g.jsx(f1,{children:o("modelManager.convertToDiffusersHelpText4")}),g.jsx(f1,{children:o("modelManager.convertToDiffusersHelpText5")})]}),g.jsx(Dt,{children:o("modelManager.convertToDiffusersHelpText6")})]}),g.jsxs(ke,{flexDir:"column",gap:4,children:[g.jsxs(ke,{marginTop:"1rem",flexDir:"column",gap:2,children:[g.jsx(Dt,{fontWeight:"bold",children:o("modelManager.convertToDiffusersSaveLocation")}),g.jsx(Oy,{value:l,onChange:b=>u(b),children:g.jsxs(ke,{gap:4,children:[g.jsx(Vo,{value:"same",children:g.jsx(si,{label:"Save converted model in the same folder",children:o("modelManager.sameFolder")})}),g.jsx(Vo,{value:"root",children:g.jsx(si,{label:"Save converted model in the InvokeAI root folder",children:o("modelManager.invokeRoot")})}),g.jsx(Vo,{value:"custom",children:g.jsx(si,{label:"Save converted model in a custom folder",children:o("modelManager.custom")})})]})})]}),l==="custom"&&g.jsxs(ke,{flexDirection:"column",rowGap:2,children:[g.jsx(Dt,{fontWeight:"bold",fontSize:"sm",color:"var(--text-color-secondary)",children:o("modelManager.customSaveLocation")}),g.jsx(qn,{value:d,onChange:b=>{b.target.value!==""&&h(b.target.value)},width:"25rem"})]})]})]})}const Fje=lt([hr],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),mj=64,vj=2048;function Bje(){const{openModel:e,model_list:t}=le(Fje),n=le(l=>l.system.isProcessing),r=Te(),{t:i}=De(),[o,a]=S.useState({name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,default:!1,format:"ckpt"});S.useEffect(()=>{var l,u,d,h,m,y,b;if(e){const w=Pe.pickBy(t,(E,_)=>Pe.isEqual(_,e));a({name:e,description:(l=w[e])==null?void 0:l.description,config:(u=w[e])==null?void 0:u.config,weights:(d=w[e])==null?void 0:d.weights,vae:(h=w[e])==null?void 0:h.vae,width:(m=w[e])==null?void 0:m.width,height:(y=w[e])==null?void 0:y.height,default:(b=w[e])==null?void 0:b.default,format:"ckpt"})}},[t,e]);const s=l=>{r(v2({...l,width:Number(l.width),height:Number(l.height)}))};return e?g.jsxs(ke,{flexDirection:"column",rowGap:"1rem",width:"100%",children:[g.jsxs(ke,{alignItems:"center",gap:4,justifyContent:"space-between",children:[g.jsx(Dt,{fontSize:"lg",fontWeight:"bold",children:e}),g.jsx($je,{model:e})]}),g.jsx(ke,{flexDirection:"column",maxHeight:window.innerHeight-270,overflowY:"scroll",paddingRight:"2rem",children:g.jsx(E2,{enableReinitialize:!0,initialValues:o,onSubmit:s,children:({handleSubmit:l,errors:u,touched:d})=>g.jsx("form",{onSubmit:l,children:g.jsxs(hn,{rowGap:"0.5rem",alignItems:"start",children:[g.jsxs(sn,{isInvalid:!!u.description&&d.description,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"description",fontSize:"sm",children:i("modelManager.description")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"description",name:"description",type:"text",width:"lg"}),u.description&&d.description?g.jsx(lr,{children:u.description}):g.jsx(sr,{margin:0,children:i("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.config&&d.config,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"config",fontSize:"sm",children:i("modelManager.config")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"config",name:"config",type:"text",width:"lg"}),u.config&&d.config?g.jsx(lr,{children:u.config}):g.jsx(sr,{margin:0,children:i("modelManager.configValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.weights&&d.weights,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"config",fontSize:"sm",children:i("modelManager.modelLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"weights",name:"weights",type:"text",width:"lg"}),u.weights&&d.weights?g.jsx(lr,{children:u.weights}):g.jsx(sr,{margin:0,children:i("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.vae&&d.vae,children:[g.jsx(Sn,{htmlFor:"vae",fontSize:"sm",children:i("modelManager.vaeLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae",name:"vae",type:"text",width:"lg"}),u.vae&&d.vae?g.jsx(lr,{children:u.vae}):g.jsx(sr,{margin:0,children:i("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(l2,{width:"100%",children:[g.jsxs(sn,{isInvalid:!!u.width&&d.width,children:[g.jsx(Sn,{htmlFor:"width",fontSize:"sm",children:i("modelManager.width")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{id:"width",name:"width",children:({field:h,form:m})=>g.jsx(lc,{id:"width",name:"width",min:mj,max:vj,step:64,value:m.values.width,onChange:y=>m.setFieldValue(h.name,Number(y))})}),u.width&&d.width?g.jsx(lr,{children:u.width}):g.jsx(sr,{margin:0,children:i("modelManager.widthValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.height&&d.height,children:[g.jsx(Sn,{htmlFor:"height",fontSize:"sm",children:i("modelManager.height")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{id:"height",name:"height",children:({field:h,form:m})=>g.jsx(lc,{id:"height",name:"height",min:mj,max:vj,step:64,value:m.values.height,onChange:y=>m.setFieldValue(h.name,Number(y))})}),u.height&&d.height?g.jsx(lr,{children:u.height}):g.jsx(sr,{margin:0,children:i("modelManager.heightValidationMsg")})]})]})]}),g.jsx(On,{type:"submit",className:"modal-close-btn",isLoading:n,children:i("modelManager.updateModel")})]})})})})]}):g.jsx(ke,{width:"100%",justifyContent:"center",alignItems:"center",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",children:g.jsx(Dt,{fontWeight:"bold",color:"var(--subtext-color-bright)",children:"Pick A Model To Edit"})})}const zje=lt([hr],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Hje(){const{openModel:e,model_list:t}=le(zje),n=le(l=>l.system.isProcessing),r=Te(),{t:i}=De(),[o,a]=S.useState({name:"",description:"",repo_id:"",path:"",vae:{repo_id:"",path:""},default:!1,format:"diffusers"});S.useEffect(()=>{var l,u,d,h,m,y,b,w,E,_,k,T,L,O,D,I;if(e){const N=Pe.pickBy(t,(W,B)=>Pe.isEqual(B,e));a({name:e,description:(l=N[e])==null?void 0:l.description,path:(u=N[e])!=null&&u.path&&((d=N[e])==null?void 0:d.path)!=="None"?(h=N[e])==null?void 0:h.path:"",repo_id:(m=N[e])!=null&&m.repo_id&&((y=N[e])==null?void 0:y.repo_id)!=="None"?(b=N[e])==null?void 0:b.repo_id:"",vae:{repo_id:(E=(w=N[e])==null?void 0:w.vae)!=null&&E.repo_id?(k=(_=N[e])==null?void 0:_.vae)==null?void 0:k.repo_id:"",path:(L=(T=N[e])==null?void 0:T.vae)!=null&&L.path?(D=(O=N[e])==null?void 0:O.vae)==null?void 0:D.path:""},default:(I=N[e])==null?void 0:I.default,format:"diffusers"})}},[t,e]);const s=l=>{const u=l;l.path===""&&delete u.path,l.repo_id===""&&delete u.repo_id,l.vae.path===""&&delete u.vae.path,l.vae.repo_id===""&&delete u.vae.repo_id,r(v2(l))};return e?g.jsxs(ke,{flexDirection:"column",rowGap:"1rem",width:"100%",children:[g.jsx(ke,{alignItems:"center",children:g.jsx(Dt,{fontSize:"lg",fontWeight:"bold",children:e})}),g.jsx(ke,{flexDirection:"column",maxHeight:window.innerHeight-270,overflowY:"scroll",paddingRight:"2rem",children:g.jsx(E2,{enableReinitialize:!0,initialValues:o,onSubmit:s,children:({handleSubmit:l,errors:u,touched:d})=>{var h,m,y,b,w,E,_,k,T,L;return g.jsx("form",{onSubmit:l,children:g.jsxs(hn,{rowGap:"0.5rem",alignItems:"start",children:[g.jsxs(sn,{isInvalid:!!u.description&&d.description,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"description",fontSize:"sm",children:i("modelManager.description")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"description",name:"description",type:"text",width:"lg"}),u.description&&d.description?g.jsx(lr,{children:u.description}):g.jsx(sr,{margin:0,children:i("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.path&&d.path,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"path",fontSize:"sm",children:i("modelManager.modelLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"path",name:"path",type:"text",width:"lg"}),u.path&&d.path?g.jsx(lr,{children:u.path}):g.jsx(sr,{margin:0,children:i("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!u.repo_id&&d.repo_id,children:[g.jsx(Sn,{htmlFor:"repo_id",fontSize:"sm",children:i("modelManager.repo_id")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"repo_id",name:"repo_id",type:"text",width:"lg"}),u.repo_id&&d.repo_id?g.jsx(lr,{children:u.repo_id}):g.jsx(sr,{margin:0,children:i("modelManager.repoIDValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!((h=u.vae)!=null&&h.path)&&((m=d.vae)==null?void 0:m.path),children:[g.jsx(Sn,{htmlFor:"vae.path",fontSize:"sm",children:i("modelManager.vaeLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae.path",name:"vae.path",type:"text",width:"lg"}),(y=u.vae)!=null&&y.path&&((b=d.vae)!=null&&b.path)?g.jsx(lr,{children:(w=u.vae)==null?void 0:w.path}):g.jsx(sr,{margin:0,children:i("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!((E=u.vae)!=null&&E.repo_id)&&((_=d.vae)==null?void 0:_.repo_id),children:[g.jsx(Sn,{htmlFor:"vae.repo_id",fontSize:"sm",children:i("modelManager.vaeRepoID")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"lg"}),(k=u.vae)!=null&&k.repo_id&&((T=d.vae)!=null&&T.repo_id)?g.jsx(lr,{children:(L=u.vae)==null?void 0:L.repo_id}):g.jsx(sr,{margin:0,children:i("modelManager.vaeRepoIDValidationMsg")})]})]}),g.jsx(On,{type:"submit",className:"modal-close-btn",isLoading:n,children:i("modelManager.updateModel")})]})})}})})]}):g.jsx(ke,{width:"100%",justifyContent:"center",alignItems:"center",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",children:g.jsx(Dt,{fontWeight:"bold",color:"var(--subtext-color-bright)",children:"Pick A Model To Edit"})})}const wK=lt([hr],e=>{const{model_list:t}=e,n=[];return Pe.forEach(t,r=>{n.push(r.weights)}),n});function Wje(){const{t:e}=De();return g.jsx(ao,{position:"absolute",zIndex:2,right:4,top:4,fontSize:"0.7rem",fontWeight:"bold",backgroundColor:"var(--accent-color)",padding:"0.2rem 0.5rem",borderRadius:"0.2rem",alignItems:"center",children:e("modelManager.modelExists")})}function yj({model:e,modelsToAdd:t,setModelsToAdd:n}){const r=le(wK),i=o=>{t.includes(o.target.value)?n(Pe.remove(t,a=>a!==o.target.value)):n([...t,o.target.value])};return g.jsxs(ao,{position:"relative",children:[r.includes(e.location)?g.jsx(Wje,{}):null,g.jsx(Gn,{value:e.name,label:g.jsx(g.Fragment,{children:g.jsxs(hn,{alignItems:"start",children:[g.jsx("p",{style:{fontWeight:"bold"},children:e.name}),g.jsx("p",{style:{fontStyle:"italic"},children:e.location})]})}),isChecked:t.includes(e.name),isDisabled:r.includes(e.location),onChange:i,padding:"1rem",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",_checked:{backgroundColor:"var(--accent-color)",color:"var(--text-color)"},_disabled:{backgroundColor:"var(--background-color-secondary)"}})]})}function Uje(){const e=Te(),{t}=De(),n=le(T=>T.system.searchFolder),r=le(T=>T.system.foundModels),i=le(wK),o=le(T=>T.ui.shouldShowExistingModelsInSearch),a=le(T=>T.system.isProcessing),[s,l]=Ke.useState([]),[u,d]=Ke.useState("v1"),[h,m]=Ke.useState(""),y=()=>{e(jU(null)),e(NU(null)),l([])},b=T=>{e(EI(T.checkpointFolder))},w=()=>{l([]),r&&r.forEach(T=>{i.includes(T.location)||l(L=>[...L,T.name])})},E=()=>{l([])},_=()=>{const T=r==null?void 0:r.filter(O=>s.includes(O.name)),L={v1:"configs/stable-diffusion/v1-inference.yaml",v2:"configs/stable-diffusion/v2-inference-v.yaml",inpainting:"configs/stable-diffusion/v1-inpainting-inference.yaml",custom:h};T==null||T.forEach(O=>{const D={name:O.name,description:"",config:L[u],weights:O.location,vae:"",width:512,height:512,default:!1,format:"ckpt"};e(v2(D))}),l([])},k=()=>{const T=[],L=[];return r&&r.forEach((O,D)=>{i.includes(O.location)?L.push(g.jsx(yj,{model:O,modelsToAdd:s,setModelsToAdd:l},D)):T.push(g.jsx(yj,{model:O,modelsToAdd:s,setModelsToAdd:l},D))}),g.jsxs(g.Fragment,{children:[T,o&&L]})};return g.jsxs(g.Fragment,{children:[n?g.jsxs(ke,{flexDirection:"column",padding:"1rem",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",rowGap:"0.5rem",position:"relative",children:[g.jsx("p",{style:{fontWeight:"bold",fontSize:"0.8rem",backgroundColor:"var(--background-color-secondary)",padding:"0.2rem 1rem",width:"max-content",borderRadius:"0.2rem"},children:t("modelManager.checkpointFolder")}),g.jsx("p",{style:{fontWeight:"bold",fontSize:"0.8rem",maxWidth:"80%"},children:n}),g.jsx(Ye,{"aria-label":t("modelManager.scanAgain"),tooltip:t("modelManager.scanAgain"),icon:g.jsx(f4,{}),position:"absolute",right:16,fontSize:18,disabled:a,onClick:()=>e(EI(n))}),g.jsx(Ye,{"aria-label":t("modelManager.clearCheckpointFolder"),icon:g.jsx(y2,{style:{transform:"rotate(45deg)"}}),position:"absolute",right:5,onClick:y})]}):g.jsx(E2,{initialValues:{checkpointFolder:""},onSubmit:T=>{b(T)},children:({handleSubmit:T})=>g.jsx("form",{onSubmit:T,children:g.jsxs(l2,{columnGap:"0.5rem",children:[g.jsx(sn,{isRequired:!0,width:"max-content",children:g.jsx(ur,{as:qn,id:"checkpointFolder",name:"checkpointFolder",type:"text",width:"lg",size:"md",label:t("modelManager.checkpointFolder")})}),g.jsx(Ye,{icon:g.jsx(r7e,{}),"aria-label":t("modelManager.findModels"),tooltip:t("modelManager.findModels"),type:"submit",disabled:a})]})})}),r&&g.jsxs(ke,{flexDirection:"column",rowGap:"1rem",children:[g.jsxs(ke,{justifyContent:"space-between",alignItems:"center",children:[g.jsxs("p",{children:[t("modelManager.modelsFound"),": ",r.length]}),g.jsxs("p",{children:[t("modelManager.selected"),": ",s.length]})]}),g.jsxs(ke,{columnGap:"0.5rem",justifyContent:"space-between",children:[g.jsxs(ke,{columnGap:"0.5rem",children:[g.jsx(On,{isDisabled:s.length===r.length,onClick:w,children:t("modelManager.selectAll")}),g.jsx(On,{isDisabled:s.length===0,onClick:E,children:t("modelManager.deselectAll")}),g.jsx(Gn,{label:t("modelManager.showExisting"),isChecked:o,onChange:()=>e(F4e(!o))})]}),g.jsx(On,{isDisabled:s.length===0,onClick:_,backgroundColor:s.length>0?"var(--accent-color) !important":"",children:t("modelManager.addSelected")})]}),g.jsxs(ke,{gap:4,backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",flexDirection:"column",children:[g.jsxs(ke,{gap:4,children:[g.jsx(Dt,{fontWeight:"bold",color:"var(--text-color-secondary)",children:"Pick Model Type:"}),g.jsx(Oy,{value:u,onChange:T=>d(T),defaultValue:"v1",name:"model_type",children:g.jsxs(ke,{gap:4,children:[g.jsx(Vo,{value:"v1",children:t("modelManager.v1")}),g.jsx(Vo,{value:"v2",children:t("modelManager.v2")}),g.jsx(Vo,{value:"inpainting",children:t("modelManager.inpainting")}),g.jsx(Vo,{value:"custom",children:t("modelManager.customConfig")})]})})]}),u==="custom"&&g.jsxs(ke,{flexDirection:"column",rowGap:2,children:[g.jsx(Dt,{fontWeight:"bold",fontSize:"sm",color:"var(--text-color-secondary)",children:t("modelManager.pathToCustomConfig")}),g.jsx(qn,{value:h,onChange:T=>{T.target.value!==""&&m(T.target.value)},width:"42.5rem"})]})]}),g.jsxs(ke,{rowGap:"1rem",flexDirection:"column",maxHeight:"18rem",overflowY:"scroll",paddingRight:"1rem",paddingLeft:"0.2rem",borderRadius:"0.2rem",children:[r.length>0?s.length===0&&g.jsx(Dt,{fontWeight:"bold",fontSize:14,padding:"0.5rem",borderRadius:"0.2rem",margin:"0 0.5rem 0 1rem",textAlign:"center",backgroundColor:"var(--notice-color)",boxShadow:"0 0 200px 6px var(--notice-color)",marginTop:"1rem",width:"max-content",children:t("modelManager.selectAndAdd")}):g.jsx(Dt,{fontWeight:"bold",fontSize:14,padding:"0.5rem",borderRadius:"0.2rem",textAlign:"center",backgroundColor:"var(--status-bad-color)",children:t("modelManager.noModelsFound")}),k()]})]})]})}const bj=64,xj=2048;function Vje(){const e=Te(),{t}=De(),n=le(u=>u.system.isProcessing);function r(u){return/\s/.test(u)}function i(u){let d;return r(u)&&(d=t("modelManager.cannotUseSpaces")),d}const o={name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,format:"ckpt",default:!1},a=u=>{e(v2(u)),e(Bh(null))},[s,l]=Ke.useState(!1);return g.jsxs(g.Fragment,{children:[g.jsx(Ye,{"aria-label":t("common.back"),tooltip:t("common.back"),onClick:()=>e(Bh(null)),width:"max-content",position:"absolute",zIndex:1,size:"sm",right:12,top:3,icon:g.jsx(UV,{})}),g.jsx(Uje,{}),g.jsx(Gn,{label:t("modelManager.addManually"),isChecked:s,onChange:()=>l(!s)}),s&&g.jsx(E2,{initialValues:o,onSubmit:a,children:({handleSubmit:u,errors:d,touched:h})=>g.jsx("form",{onSubmit:u,children:g.jsxs(hn,{rowGap:"0.5rem",children:[g.jsx(Dt,{fontSize:20,fontWeight:"bold",alignSelf:"start",children:t("modelManager.manual")}),g.jsxs(sn,{isInvalid:!!d.name&&h.name,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"name",name:"name",type:"text",validate:i,width:"2xl"}),d.name&&h.name?g.jsx(lr,{children:d.name}):g.jsx(sr,{margin:0,children:t("modelManager.nameValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!d.description&&h.description,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"description",name:"description",type:"text",width:"2xl"}),d.description&&h.description?g.jsx(lr,{children:d.description}):g.jsx(sr,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!d.config&&h.config,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"config",fontSize:"sm",children:t("modelManager.config")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"config",name:"config",type:"text",width:"2xl"}),d.config&&h.config?g.jsx(lr,{children:d.config}):g.jsx(sr,{margin:0,children:t("modelManager.configValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!d.weights&&h.weights,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"config",fontSize:"sm",children:t("modelManager.modelLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"weights",name:"weights",type:"text",width:"2xl"}),d.weights&&h.weights?g.jsx(lr,{children:d.weights}):g.jsx(sr,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!d.vae&&h.vae,children:[g.jsx(Sn,{htmlFor:"vae",fontSize:"sm",children:t("modelManager.vaeLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae",name:"vae",type:"text",width:"2xl"}),d.vae&&h.vae?g.jsx(lr,{children:d.vae}):g.jsx(sr,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(l2,{width:"100%",children:[g.jsxs(sn,{isInvalid:!!d.width&&h.width,children:[g.jsx(Sn,{htmlFor:"width",fontSize:"sm",children:t("modelManager.width")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{id:"width",name:"width",children:({field:m,form:y})=>g.jsx(lc,{id:"width",name:"width",min:bj,max:xj,step:64,width:"90%",value:y.values.width,onChange:b=>y.setFieldValue(m.name,Number(b))})}),d.width&&h.width?g.jsx(lr,{children:d.width}):g.jsx(sr,{margin:0,children:t("modelManager.widthValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!d.height&&h.height,children:[g.jsx(Sn,{htmlFor:"height",fontSize:"sm",children:t("modelManager.height")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{id:"height",name:"height",children:({field:m,form:y})=>g.jsx(lc,{id:"height",name:"height",min:bj,max:xj,width:"90%",step:64,value:y.values.height,onChange:b=>y.setFieldValue(m.name,Number(b))})}),d.height&&h.height?g.jsx(lr,{children:d.height}):g.jsx(sr,{margin:0,children:t("modelManager.heightValidationMsg")})]})]})]}),g.jsx(On,{type:"submit",className:"modal-close-btn",isLoading:n,children:t("modelManager.addModel")})]})})})]})}function Px({children:e}){return g.jsx(ke,{flexDirection:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.5rem",rowGap:"1rem",width:"100%",children:e})}function Gje(){const e=Te(),{t}=De(),n=le(s=>s.system.isProcessing);function r(s){return/\s/.test(s)}function i(s){let l;return r(s)&&(l=t("modelManager.cannotUseSpaces")),l}const o={name:"",description:"",repo_id:"",path:"",format:"diffusers",default:!1,vae:{repo_id:"",path:""}},a=s=>{const l=s;s.path===""&&delete l.path,s.repo_id===""&&delete l.repo_id,s.vae.path===""&&delete l.vae.path,s.vae.repo_id===""&&delete l.vae.repo_id,e(v2(l)),e(Bh(null))};return g.jsxs(ke,{children:[g.jsx(Ye,{"aria-label":t("common.back"),tooltip:t("common.back"),onClick:()=>e(Bh(null)),width:"max-content",position:"absolute",zIndex:1,size:"sm",right:12,top:3,icon:g.jsx(UV,{})}),g.jsx(E2,{initialValues:o,onSubmit:a,children:({handleSubmit:s,errors:l,touched:u})=>{var d,h,m,y,b,w,E,_,k,T;return g.jsx("form",{onSubmit:s,children:g.jsxs(hn,{rowGap:"0.5rem",children:[g.jsx(Px,{children:g.jsxs(sn,{isInvalid:!!l.name&&u.name,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"name",name:"name",type:"text",validate:i,width:"2xl",isRequired:!0}),l.name&&u.name?g.jsx(lr,{children:l.name}):g.jsx(sr,{margin:0,children:t("modelManager.nameValidationMsg")})]})]})}),g.jsx(Px,{children:g.jsxs(sn,{isInvalid:!!l.description&&u.description,isRequired:!0,children:[g.jsx(Sn,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"description",name:"description",type:"text",width:"2xl",isRequired:!0}),l.description&&u.description?g.jsx(lr,{children:l.description}):g.jsx(sr,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]})}),g.jsxs(Px,{children:[g.jsx(Dt,{fontWeight:"bold",fontSize:"sm",children:t("modelManager.formMessageDiffusersModelLocation")}),g.jsx(Dt,{fontSize:"sm",fontStyle:"italic",color:"var(--text-color-secondary)",children:t("modelManager.formMessageDiffusersModelLocationDesc")}),g.jsxs(sn,{isInvalid:!!l.path&&u.path,children:[g.jsx(Sn,{htmlFor:"path",fontSize:"sm",children:t("modelManager.modelLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"path",name:"path",type:"text",width:"2xl"}),l.path&&u.path?g.jsx(lr,{children:l.path}):g.jsx(sr,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!l.repo_id&&u.repo_id,children:[g.jsx(Sn,{htmlFor:"repo_id",fontSize:"sm",children:t("modelManager.repo_id")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"repo_id",name:"repo_id",type:"text",width:"2xl"}),l.repo_id&&u.repo_id?g.jsx(lr,{children:l.repo_id}):g.jsx(sr,{margin:0,children:t("modelManager.repoIDValidationMsg")})]})]})]}),g.jsxs(Px,{children:[g.jsx(Dt,{fontWeight:"bold",children:t("modelManager.formMessageDiffusersVAELocation")}),g.jsx(Dt,{fontSize:"sm",fontStyle:"italic",color:"var(--text-color-secondary)",children:t("modelManager.formMessageDiffusersVAELocationDesc")}),g.jsxs(sn,{isInvalid:!!((d=l.vae)!=null&&d.path)&&((h=u.vae)==null?void 0:h.path),children:[g.jsx(Sn,{htmlFor:"vae.path",fontSize:"sm",children:t("modelManager.vaeLocation")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae.path",name:"vae.path",type:"text",width:"2xl"}),(m=l.vae)!=null&&m.path&&((y=u.vae)!=null&&y.path)?g.jsx(lr,{children:(b=l.vae)==null?void 0:b.path}):g.jsx(sr,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(sn,{isInvalid:!!((w=l.vae)!=null&&w.repo_id)&&((E=u.vae)==null?void 0:E.repo_id),children:[g.jsx(Sn,{htmlFor:"vae.repo_id",fontSize:"sm",children:t("modelManager.vaeRepoID")}),g.jsxs(hn,{alignItems:"start",children:[g.jsx(ur,{as:qn,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"2xl"}),(_=l.vae)!=null&&_.repo_id&&((k=u.vae)!=null&&k.repo_id)?g.jsx(lr,{children:(T=l.vae)==null?void 0:T.repo_id}):g.jsx(sr,{margin:0,children:t("modelManager.vaeRepoIDValidationMsg")})]})]})]}),g.jsx(On,{type:"submit",className:"modal-close-btn",isLoading:n,children:t("modelManager.addModel")})]})})}})]})}function Sj({text:e,onClick:t}){return g.jsx(ke,{position:"relative",width:"50%",height:"200px",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",justifyContent:"center",alignItems:"center",_hover:{cursor:"pointer",backgroundColor:"var(--accent-color)"},onClick:t,children:g.jsx(Dt,{fontWeight:"bold",children:e})})}function qje(){const{isOpen:e,onOpen:t,onClose:n}=Kd(),r=le(s=>s.ui.addNewModelUIOption),i=Te(),{t:o}=De(),a=()=>{n(),i(Bh(null))};return g.jsxs(g.Fragment,{children:[g.jsx(On,{"aria-label":o("modelManager.addNewModel"),tooltip:o("modelManager.addNewModel"),onClick:t,className:"modal-close-btn",size:"sm",children:g.jsxs(ke,{columnGap:"0.5rem",alignItems:"center",children:[g.jsx(y2,{}),o("modelManager.addNew")]})}),g.jsxs(Yd,{isOpen:e,onClose:a,size:"3xl",closeOnOverlayClick:!1,children:[g.jsx(oc,{}),g.jsxs(Xd,{className:"modal add-model-modal",fontFamily:"Inter",margin:"auto",children:[g.jsx(op,{children:o("modelManager.addNewModel")}),g.jsx(m0,{marginTop:"0.3rem"}),g.jsxs(Zm,{className:"add-model-modal-body",children:[r==null&&g.jsxs(ke,{columnGap:"1rem",children:[g.jsx(Sj,{text:o("modelManager.addCheckpointModel"),onClick:()=>i(Bh("ckpt"))}),g.jsx(Sj,{text:o("modelManager.addDiffuserModel"),onClick:()=>i(Bh("diffusers"))})]}),r=="ckpt"&&g.jsx(Vje,{}),r=="diffusers"&&g.jsx(Gje,{})]})]})]})]})}function Tx(e){const{isProcessing:t,isConnected:n}=le(y=>y.system),r=le(y=>y.system.openModel),{t:i}=De(),o=Te(),{name:a,status:s,description:l}=e,u=()=>{o($V(a))},d=()=>{o(UR(a))},h=()=>{o(h_e(a)),o(UR(null))},m=()=>{switch(s){case"active":return"var(--status-good-color)";case"cached":return"var(--status-working-color)";case"not loaded":return"var(--text-color-secondary)"}};return g.jsxs(ke,{alignItems:"center",padding:"0.5rem 0.5rem",borderRadius:"0.2rem",backgroundColor:a===r?"var(--accent-color)":"",_hover:{backgroundColor:a===r?"var(--accent-color)":"var(--background-color)"},children:[g.jsx(ao,{onClick:d,cursor:"pointer",children:g.jsx(si,{label:l,hasArrow:!0,placement:"bottom",children:g.jsx(Dt,{fontWeight:"bold",children:a})})}),g.jsx(rH,{onClick:d,cursor:"pointer"}),g.jsxs(ke,{gap:2,alignItems:"center",children:[g.jsx(Dt,{color:m(),children:s}),g.jsx(ss,{size:"sm",onClick:u,isDisabled:s==="active"||t||!n,className:"modal-close-btn",children:i("modelManager.load")}),g.jsx(Ye,{icon:g.jsx(Wke,{}),size:"sm",onClick:d,"aria-label":"Modify Config",isDisabled:s==="active"||t||!n,className:" modal-close-btn"}),g.jsx(C4,{title:i("modelManager.deleteModel"),acceptCallback:h,acceptButtonText:i("modelManager.delete"),triggerComponent:g.jsx(Ye,{icon:g.jsx(Uke,{}),size:"sm","aria-label":i("modelManager.deleteConfig"),isDisabled:s==="active"||t||!n,className:" modal-close-btn",style:{backgroundColor:"var(--btn-delete-image)"}}),children:g.jsxs(ke,{rowGap:"1rem",flexDirection:"column",children:[g.jsx("p",{style:{fontWeight:"bold"},children:i("modelManager.deleteMsg1")}),g.jsx("p",{style:{color:"var(--text-color-secondary"},children:i("modelManager.deleteMsg2")})]})})]})]})}function Kje(){const e=Te(),{isOpen:t,onOpen:n,onClose:r}=Kd(),i=le(X_e),{t:o}=De(),[a,s]=S.useState(Object.keys(i)[0]),[l,u]=S.useState(Object.keys(i)[1]),[d,h]=S.useState("none"),[m,y]=S.useState(""),[b,w]=S.useState(.5),[E,_]=S.useState("weighted_sum"),[k,T]=S.useState("root"),[L,O]=S.useState(""),[D,I]=S.useState(!1),N=Object.keys(i).filter(z=>{if(z!==l&&z!==d)return z}),W=Object.keys(i).filter(z=>{if(z!==a&&z!==d)return z}),B=["none",...Object.keys(i).filter(z=>{if(z!==a&&z!==l)return z})],K=le(z=>z.system.isProcessing),ne=()=>{let z=[a,l,d];z=z.filter(V=>V!=="none");const $={models_to_merge:z,merged_model_name:m!==""?m:z.join("-"),alpha:b,interp:E,model_merge_save_path:k==="root"?null:L,force:D};e(g_e($))};return g.jsxs(g.Fragment,{children:[g.jsx(On,{onClick:n,className:"modal-close-btn",size:"sm",children:g.jsx(ke,{columnGap:"0.5rem",alignItems:"center",children:o("modelManager.mergeModels")})}),g.jsxs(Yd,{isOpen:t,onClose:r,size:"4xl",closeOnOverlayClick:!1,children:[g.jsx(oc,{}),g.jsxs(Xd,{className:"modal",fontFamily:"Inter",margin:"auto",children:[g.jsx(op,{children:o("modelManager.mergeModels")}),g.jsx(m0,{}),g.jsxs(ke,{flexDirection:"column",padding:"1rem",rowGap:4,children:[g.jsxs(ke,{flexDirection:"column",marginBottom:"1rem",padding:"1rem",borderRadius:"0.3rem",backgroundColor:"var(--background-color)",rowGap:1,children:[g.jsx(Dt,{children:o("modelManager.modelMergeHeaderHelp1")}),g.jsx(Dt,{fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.modelMergeHeaderHelp2")})]}),g.jsxs(ke,{columnGap:4,children:[g.jsx(Jo,{label:o("modelManager.modelOne"),validValues:N,onChange:z=>s(z.target.value)}),g.jsx(Jo,{label:o("modelManager.modelTwo"),validValues:W,onChange:z=>u(z.target.value)}),g.jsx(Jo,{label:o("modelManager.modelThree"),validValues:B,onChange:z=>{z.target.value!=="none"?(h(z.target.value),_("add_difference")):(h("none"),_("weighted_sum"))}})]}),g.jsx(qn,{label:o("modelManager.mergedModelName"),value:m,onChange:z=>y(z.target.value)}),g.jsxs(ke,{flexDir:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",rowGap:2,children:[g.jsx(Dn,{label:o("modelManager.alpha"),min:.01,max:.99,step:.01,value:b,onChange:z=>w(z),withInput:!0,withReset:!0,handleReset:()=>w(.5),withSliderMarks:!0,sliderMarkRightOffset:-7}),g.jsx(Dt,{fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.modelMergeAlphaHelp")})]}),g.jsxs(ke,{columnGap:4,backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",children:[g.jsx(Dt,{fontWeight:"bold",fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.interpolationType")}),g.jsx(Oy,{value:E,onChange:z=>_(z),children:g.jsx(ke,{columnGap:4,children:d==="none"?g.jsxs(g.Fragment,{children:[g.jsx(Vo,{value:"weighted_sum",children:"weighted_sum"}),g.jsx(Vo,{value:"sigmoid",children:"sigmoid"}),g.jsx(Vo,{value:"inv_sigmoid",children:"inv_sigmoid"})]}):g.jsx(Vo,{value:"add_difference",children:g.jsx(si,{label:o("modelmanager:modelMergeInterpAddDifferenceHelp"),children:"add_difference"})})})})]}),g.jsxs(ke,{gap:4,flexDirection:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",children:[g.jsxs(ke,{columnGap:4,children:[g.jsx(Dt,{fontWeight:"bold",fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.mergedModelSaveLocation")}),g.jsx(Oy,{value:k,onChange:z=>T(z),children:g.jsxs(ke,{columnGap:4,children:[g.jsx(Vo,{value:"root",children:o("modelManager.invokeAIFolder")}),g.jsx(Vo,{value:"custom",children:o("modelManager.custom")})]})})]}),k==="custom"&&g.jsx(qn,{label:o("modelManager.mergedModelCustomSaveLocation"),value:L,onChange:z=>O(z.target.value)})]}),g.jsx(Gn,{label:o("modelManager.ignoreMismatch"),isChecked:D,onChange:z=>I(z.target.checked),fontWeight:"bold"}),g.jsx(On,{onClick:ne,isLoading:K,isDisabled:k==="custom"&&L==="",className:"modal modal-close-btn",children:o("modelManager.merge")})]})]})]})]})}const Yje=lt(hr,e=>Pe.map(e.model_list,(n,r)=>({name:r,...n})),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function h6({label:e,isActive:t,onClick:n}){return g.jsx(On,{onClick:n,isActive:t,_active:{backgroundColor:"var(--accent-color)",_hover:{backgroundColor:"var(--accent-color)"}},size:"sm",children:e})}const Xje=()=>{const e=le(Yje),[t,n]=Ke.useState(!1);Ke.useEffect(()=>{const m=setTimeout(()=>{n(!0)},200);return()=>clearTimeout(m)},[]);const[r,i]=S.useState(""),[o,a]=S.useState("all"),[s,l]=S.useTransition(),{t:u}=De(),d=m=>{l(()=>{i(m.target.value)})},h=S.useMemo(()=>{const m=[],y=[],b=[],w=[];return e.forEach((E,_)=>{E.name.toLowerCase().includes(r.toLowerCase())&&(b.push(g.jsx(Tx,{name:E.name,status:E.status,description:E.description},_)),E.format===o&&w.push(g.jsx(Tx,{name:E.name,status:E.status,description:E.description},_))),E.format!=="diffusers"?m.push(g.jsx(Tx,{name:E.name,status:E.status,description:E.description},_)):y.push(g.jsx(Tx,{name:E.name,status:E.status,description:E.description},_))}),r!==""?o==="all"?g.jsx(ao,{marginTop:"1rem",children:b}):g.jsx(ao,{marginTop:"1rem",children:w}):g.jsxs(ke,{flexDirection:"column",rowGap:"1.5rem",children:[o==="all"&&g.jsxs(g.Fragment,{children:[g.jsxs(ao,{children:[g.jsx(Dt,{fontWeight:"bold",backgroundColor:"var(--background-color)",padding:"0.5rem 1rem",borderRadius:"0.5rem",margin:"1rem 0",width:"max-content",fontSize:"14",children:u("modelManager.checkpointModels")}),m]}),g.jsxs(ao,{children:[g.jsx(Dt,{fontWeight:"bold",backgroundColor:"var(--background-color)",padding:"0.5rem 1rem",borderRadius:"0.5rem",marginBottom:"0.5rem",width:"max-content",fontSize:"14",children:u("modelManager.diffusersModels")}),y]})]}),o==="ckpt"&&g.jsx(ke,{flexDirection:"column",marginTop:"1rem",children:m}),o==="diffusers"&&g.jsx(ke,{flexDirection:"column",marginTop:"1rem",children:y})]})},[e,r,u,o]);return g.jsxs(ke,{flexDirection:"column",rowGap:"2rem",width:"50%",minWidth:"50%",children:[g.jsxs(ke,{justifyContent:"space-between",children:[g.jsx(Dt,{fontSize:"1.4rem",fontWeight:"bold",children:u("modelManager.availableModels")}),g.jsxs(ke,{gap:2,children:[g.jsx(qje,{}),g.jsx(Kje,{})]})]}),g.jsx(qn,{onChange:d,label:u("modelManager.search")}),g.jsxs(ke,{flexDirection:"column",gap:1,maxHeight:window.innerHeight-360,overflow:"scroll",paddingRight:"1rem",children:[g.jsxs(ke,{columnGap:"0.5rem",children:[g.jsx(h6,{label:u("modelManager.allModels"),onClick:()=>a("all"),isActive:o==="all"}),g.jsx(h6,{label:u("modelManager.checkpointModels"),onClick:()=>a("ckpt"),isActive:o==="ckpt"}),g.jsx(h6,{label:u("modelManager.diffusersModels"),onClick:()=>a("diffusers"),isActive:o==="diffusers"})]}),t?h:g.jsx(ke,{width:"100%",minHeight:"30rem",justifyContent:"center",alignItems:"center",children:g.jsx(p0,{})})]})]})};function Zje({children:e}){const{isOpen:t,onOpen:n,onClose:r}=Kd(),i=le(s=>s.system.model_list),o=le(s=>s.system.openModel),{t:a}=De();return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:n}),g.jsxs(Yd,{isOpen:t,onClose:r,size:"6xl",children:[g.jsx(oc,{}),g.jsxs(Xd,{className:"modal",fontFamily:"Inter",children:[g.jsx(m0,{className:"modal-close-btn"}),g.jsx(op,{fontWeight:"bold",children:a("modelManager.modelManager")}),g.jsxs(ke,{padding:"0 1.5rem 1.5rem 1.5rem",width:"100%",columnGap:"2rem",children:[g.jsx(Xje,{}),o&&i[o].format==="diffusers"?g.jsx(Hje,{}):g.jsx(Bje,{})]})]})]})]})}const Qje=lt([hr],e=>{const{isProcessing:t,model_list:n}=e;return{models:Pe.map(n,(i,o)=>o),isProcessing:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),Jje=()=>{const e=Te(),{models:t,isProcessing:n}=le(Qje),r=le(VV),i=o=>{e($V(o.target.value))};return g.jsx(ke,{style:{paddingLeft:"0.3rem"},children:g.jsx(Jo,{style:{fontSize:"0.8rem"},tooltip:r.description,isDisabled:n,value:r.name,validValues:t,onChange:i})})},eNe=lt([hr,fp],(e,t)=>{const{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:i,model_list:o,saveIntermediatesInterval:a,enableImageDebugging:s}=e,{shouldUseCanvasBetaLayout:l,shouldUseSliders:u}=t;return{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:i,models:Pe.map(o,(d,h)=>h),saveIntermediatesInterval:a,enableImageDebugging:s,shouldUseCanvasBetaLayout:l,shouldUseSliders:u}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),tNe=({children:e})=>{const t=Te(),{t:n}=De(),r=le(T=>T.generation.steps),{isOpen:i,onOpen:o,onClose:a}=Kd(),{isOpen:s,onOpen:l,onClose:u}=Kd(),{shouldDisplayInProgressType:d,shouldConfirmOnDelete:h,shouldDisplayGuides:m,saveIntermediatesInterval:y,enableImageDebugging:b,shouldUseCanvasBetaLayout:w,shouldUseSliders:E}=le(eNe),_=()=>{zV.purge().then(()=>{a(),l()})},k=T=>{T>r&&(T=r),T<1&&(T=1),t(k4e(T))};return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:o}),g.jsxs(Yd,{isOpen:i,onClose:a,size:"lg",children:[g.jsx(oc,{}),g.jsxs(Xd,{className:"modal settings-modal",children:[g.jsx(op,{className:"settings-modal-header",children:n("common.settingsLabel")}),g.jsx(m0,{className:"modal-close-btn"}),g.jsxs(Zm,{className:"settings-modal-content",children:[g.jsxs("div",{className:"settings-modal-items",children:[g.jsxs("div",{className:"settings-modal-item",style:{gridAutoFlow:"row",rowGap:"0.5rem"},children:[g.jsx(Jo,{label:n("settings.displayInProgress"),validValues:D5e,value:d,onChange:T=>t(m4e(T.target.value))}),d==="full-res"&&g.jsx(lc,{label:n("settings.saveSteps"),min:1,max:r,step:1,onChange:k,value:y,width:"auto",textAlign:"center"})]}),g.jsx(_a,{styleClass:"settings-modal-item",label:n("settings.confirmOnDelete"),isChecked:h,onChange:T=>t(IU(T.target.checked))}),g.jsx(_a,{styleClass:"settings-modal-item",label:n("settings.displayHelpIcons"),isChecked:m,onChange:T=>t(x4e(T.target.checked))}),g.jsx(_a,{styleClass:"settings-modal-item",label:n("settings.useCanvasBeta"),isChecked:w,onChange:T=>t($4e(T.target.checked))}),g.jsx(_a,{styleClass:"settings-modal-item",label:n("settings.useSlidersForAll"),isChecked:E,onChange:T=>t(B4e(T.target.checked))})]}),g.jsxs("div",{className:"settings-modal-items",children:[g.jsx("h2",{style:{fontWeight:"bold"},children:"Developer"}),g.jsx(_a,{styleClass:"settings-modal-item",label:n("settings.enableImageDebugging"),isChecked:b,onChange:T=>t(E4e(T.target.checked))})]}),g.jsxs("div",{className:"settings-modal-reset",children:[g.jsx(jh,{size:"md",children:n("settings.resetWebUI")}),g.jsx(ss,{colorScheme:"red",onClick:_,children:n("settings.resetWebUI")}),g.jsx(Dt,{children:n("settings.resetWebUIDesc1")}),g.jsx(Dt,{children:n("settings.resetWebUIDesc2")})]})]}),g.jsx(zw,{children:g.jsx(ss,{onClick:a,className:"modal-close-btn",children:n("common.close")})})]})]}),g.jsxs(Yd,{closeOnOverlayClick:!1,isOpen:s,onClose:u,isCentered:!0,children:[g.jsx(oc,{bg:"blackAlpha.300",backdropFilter:"blur(40px)"}),g.jsx(Xd,{children:g.jsx(Zm,{pb:6,pt:6,children:g.jsx(ke,{justifyContent:"center",children:g.jsx(Dt,{fontSize:"lg",children:g.jsx(Dt,{children:n("settings.resetComplete")})})})})})]})]})},nNe=lt(hr,e=>({isConnected:e.isConnected,isProcessing:e.isProcessing,currentIteration:e.currentIteration,totalIterations:e.totalIterations,currentStatus:e.currentStatus,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),rNe=()=>{const{isConnected:e,isProcessing:t,currentIteration:n,totalIterations:r,currentStatus:i,hasError:o,wasErrorSeen:a}=le(nNe),s=Te(),{t:l}=De();let u;e&&!o?u="status-good":u="status-bad";let d=i;[l("common.statusGenerating"),l("common.statusPreparing"),l("common.statusSavingImage"),l("common.statusRestoringFaces"),l("common.statusUpscaling")].includes(d)&&(u="status-working"),d&&t&&r>1&&(d=`${l(d)} (${n}/${r})`);const m=o&&!a?"Click to clear, check logs for details":void 0,y=o&&!a?"pointer":"initial",b=()=>{(o||!a)&&s(DU())};return g.jsx(si,{label:m,children:g.jsx(Dt,{cursor:y,onClick:b,className:`status ${u}`,children:l(d)})})};function iNe(){const{t:e}=De(),{setColorMode:t,colorMode:n}=Qy(),r=Te(),i=le(l=>l.ui.currentTheme),o={dark:e("common.darkTheme"),light:e("common.lightTheme"),green:e("common.greenTheme")};S.useEffect(()=>{n!==i&&t(i)},[t,n,i]);const a=l=>{r(R4e(l))},s=()=>{const l=[];return Object.keys(o).forEach(u=>{l.push(g.jsx(On,{style:{width:"6rem"},leftIcon:i===u?g.jsx(jE,{}):void 0,size:"sm",onClick:()=>a(u),children:o[u]},u))}),l};return g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":e("common.themeLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx(Mke,{})}),children:g.jsx(hn,{align:"stretch",children:s()})})}function oNe(){const{t:e,i18n:t}=De(),n={ar:e("common.langArabic",{lng:"ar"}),nl:e("common.langDutch",{lng:"nl"}),en:e("common.langEnglish",{lng:"en"}),fr:e("common.langFrench",{lng:"fr"}),de:e("common.langGerman",{lng:"de"}),it:e("common.langItalian",{lng:"it"}),ja:e("common.langJapanese",{lng:"ja"}),pl:e("common.langPolish",{lng:"pl"}),pt_Br:e("common.langBrPortuguese",{lng:"pt_Br"}),ru:e("common.langRussian",{lng:"ru"}),zh_Cn:e("common.langSimplifiedChinese",{lng:"zh_Cn"}),es:e("common.langSpanish",{lng:"es"}),uk:e("common.langUkranian",{lng:"ua"})},r=()=>{const i=[];return Object.keys(n).forEach(o=>{i.push(g.jsx(On,{"data-selected":localStorage.getItem("i18nextLng")===o,onClick:()=>t.changeLanguage(o),className:"modal-close-btn lang-select-btn","aria-label":n[o],size:"sm",minWidth:"200px",children:n[o]},o))}),i};return g.jsx(Ys,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":e("common.languagePickerLabel"),tooltip:e("common.languagePickerLabel"),icon:g.jsx(Eke,{}),size:"sm",variant:"link","data-variant":"link",fontSize:26}),children:g.jsx(hn,{children:r()})})}const aNe=()=>{const{t:e}=De(),t=le(n=>n.system.app_version);return g.jsxs("div",{className:"site-header",children:[g.jsxs("div",{className:"site-header-left-side",children:[g.jsx("img",{src:pq,alt:"invoke-ai-logo"}),g.jsxs(ke,{alignItems:"center",columnGap:"0.6rem",children:[g.jsxs(Dt,{fontSize:"1.4rem",children:["invoke ",g.jsx("strong",{children:"ai"})]}),g.jsx(Dt,{fontWeight:"bold",color:"var(--text-color-secondary)",marginTop:"0.2rem",children:t})]})]}),g.jsxs("div",{className:"site-header-right-side",children:[g.jsx(rNe,{}),g.jsx(Jje,{}),g.jsx(Zje,{children:g.jsx(Ye,{"aria-label":e("modelManager.modelManager"),tooltip:e("modelManager.modelManager"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx(yke,{})})}),g.jsx(VAe,{children:g.jsx(Ye,{"aria-label":e("common.hotkeysLabel"),tooltip:e("common.hotkeysLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx(kke,{})})}),g.jsx(iNe,{}),g.jsx(oNe,{}),g.jsx(Ye,{"aria-label":e("common.reportBugLabel"),tooltip:e("common.reportBugLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(Nh,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI/issues",children:g.jsx(vke,{})})}),g.jsx(Ye,{"aria-label":e("common.githubLabel"),tooltip:e("common.githubLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(Nh,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI",children:g.jsx(fke,{})})}),g.jsx(Ye,{"aria-label":e("common.discordLabel"),tooltip:e("common.discordLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(Nh,{isExternal:!0,href:"https://discord.gg/ZmtBAhwWhy",children:g.jsx(dke,{})})}),g.jsx(tNe,{children:g.jsx(Ye,{"aria-label":e("common.settingsLabel"),tooltip:e("common.settingsLabel"),variant:"link","data-variant":"link",fontSize:22,size:"sm",icon:g.jsx(o7e,{})})})]})]})};function sNe(){async function e(n=""){return await fetch(n,{method:"GET",cache:"no-cache"})}const t=()=>{const n=document.location;e(n+"/flaskwebgui-keep-server-alive").then(i=>i)};(!{}.NODE_ENV||{}.NODE_ENV==="production")&&document.addEventListener("DOMContentLoaded",()=>{t(),setInterval(t,3e3)})}const lNe=()=>{const e=Te(),t=le(Y_e),n=a2();S.useEffect(()=>{t.forEach(r=>{n(r)}),t.length>0&&e(T4e())},[e,n,t])},uNe=()=>{const e=Te(),{shouldShowGalleryButton:t,shouldPinGallery:n}=le(nP),r=()=>{e(Am(!0)),n&&e(Li(!0))};return t?g.jsx(Ye,{tooltip:"Show Gallery (G)",tooltipProps:{placement:"top"},"aria-label":"Show Gallery",styleClass:"floating-show-hide-button right show-hide-button-gallery",onClick:r,children:g.jsx(pG,{})}):null};sNe();const cNe=()=>(lNe(),g.jsxs("div",{className:"App",children:[g.jsxs($Ae,{children:[g.jsx(WAe,{}),g.jsxs("div",{className:"app-content",children:[g.jsx(aNe,{}),g.jsx(WLe,{})]}),g.jsx("div",{className:"app-console",children:g.jsx(zAe,{})})]}),g.jsx(qEe,{}),g.jsx(uNe,{})]})),wj=()=>g.jsx(ke,{width:"100vw",height:"100vh",alignItems:"center",justifyContent:"center",children:g.jsx(p0,{thickness:"2px",speed:"1s",emptyColor:"gray.200",color:"gray.400",size:"xl"})});const dNe=Bj({key:"invokeai-style-cache",prepend:!0});rk.createRoot(document.getElementById("root")).render(g.jsx(Ke.StrictMode,{children:g.jsx(pxe,{store:BV,children:g.jsx(gW,{loading:g.jsx(wj,{}),persistor:zV,children:g.jsx(uee,{value:dNe,children:g.jsx(Rge,{children:g.jsx(Ke.Suspense,{fallback:g.jsx(wj,{}),children:g.jsx(cNe,{})})})})})})})); diff --git a/invokeai/frontend/web/dist/assets/index-14cb2922.css b/invokeai/frontend/web/dist/assets/index-14cb2922.css deleted file mode 100644 index 91b7cafe09..0000000000 --- a/invokeai/frontend/web/dist/assets/index-14cb2922.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;src:url(./Inter-b9a8e5e2.ttf);font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:Inter;src:url(./Inter-Bold-790c108b.ttf);font-display:swap;font-weight:600;font-style:normal}@keyframes slideOut{0%{transform:translate(10rem)}to{transform:translate(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}*{scrollbar-width:thick;scrollbar-color:var(--scrollbar-color) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-color);border-radius:8px;border:2px solid var(--scrollbar-color)}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-color-hover);border:2px solid var(--scrollbar-color-hover)}::-webkit-scrollbar-button{background:transparent}[data-theme=dark]{--white: rgb(255, 255, 255);--accent-color-dim: rgb(57, 25, 153);--accent-color: rgb(80, 40, 200);--accent-color-bright: rgb(104, 60, 230);--accent-color-hover: var(--accent-color-bright);--root-bg-color: rgb(10, 10, 10);--background-color: rgb(26, 26, 32);--background-color-light: rgb(40, 44, 48);--background-color-secondary: rgb(16, 16, 22);--text-color: rgb(255, 255, 255);--text-color-secondary: rgb(160, 162, 188);--subtext-color: rgb(24, 24, 34);--subtext-color-bright: rgb(48, 48, 64);--border-color: rgb(30, 30, 46);--border-color-light: rgb(60, 60, 76);--svg-color: rgb(255, 255, 255);--invalid: rgb(255, 75, 75);--invalid-secondary: rgb(120, 5, 5);--destructive-color: rgb(185, 55, 55);--destructive-color-hover: rgb(255, 75, 75);--warning-color: rgb(200, 88, 40);--warning-color-hover: rgb(230, 117, 60);--border-color-invalid: rgb(255, 80, 50);--box-shadow-color-invalid: rgb(210, 30, 10);--tab-color: rgb(30, 32, 42);--tab-hover-color: rgb(46, 48, 58);--tab-panel-bg: rgb(36, 38, 48);--tab-list-bg: var(--accent-color);--tab-list-text: rgb(202, 204, 216);--tab-list-text-inactive: rgb(92, 94, 114);--btn-base-color: rgb(30, 32, 42);--btn-base-color-hover: rgb(46, 48, 68);--btn-load-more: rgb(30, 32, 42);--btn-load-more-hover: rgb(54, 56, 66);--btn-svg-color: rgb(255, 255, 255);--btn-delete-image: rgb(182, 46, 46);--btn-checkbox-border-hover: rgb(46, 48, 68);--progress-bar-color: var(--accent-color);--prompt-bg-color: rgb(10, 10, 10);--switch-bg-color: rgb(100, 102, 110);--switch-bg-active-color: var(--accent-color);--slider-color: var(--accent-color-bright);--slider-color: rgb(151, 113, 255);--slider-mark-color: rgb(151, 113, 255);--resizeable-handle-border-color: var(--accent-color);--metadata-bg-color: rgba(0, 0, 0, .7);--metadata-json-bg-color: rgba(255, 255, 255, .1);--status-good-color: rgb(125, 255, 100);--status-good-glow: rgb(40, 215, 40);--status-working-color: rgb(255, 175, 55);--status-working-glow: rgb(255, 160, 55);--status-bad-color: rgb(255, 90, 90);--status-bad-glow: rgb(255, 40, 40);--notice-color: rgb(130, 71, 19);--settings-modal-bg: rgb(30, 32, 42);--input-checkbox-bg: rgb(60, 64, 68);--input-checkbox-checked-bg: var(--accent-color);--input-checkbox-checked-tick: rgb(0, 0, 0);--input-border-color: var(--accent-color-bright);--input-box-shadow-color: var(--accent-color);--error-level-info: rgb(200, 202, 224);--error-level-warning: rgb(255, 225, 105);--error-level-error: rgb(255, 81, 46);--console-bg-color: rgb(30, 30, 36);--console-icon-button-bg-color: rgb(50, 53, 64);--console-icon-button-bg-color-hover: rgb(70, 73, 84);--img2img-img-bg-color: rgb(30, 32, 42);--context-menu-bg-color: rgb(46, 48, 58);--context-menu-box-shadow: none;--context-menu-bg-color-hover: rgb(30, 32, 42);--floating-button-drop-shadow-color: var(--accent-color);--inpainting-alerts-bg: rgba(20, 20, 26, .75);--inpainting-alerts-icon-color: rgb(255, 255, 255);--inpainting-alerts-bg-active: var(--accent-color);--inpainting-alerts-icon-active: rgb(255, 255, 255);--inpainting-alerts-bg-alert: var(--invalid);--inpainting-alerts-icon-alert: rgb(255, 255, 255);--checkboard-dots-color: rgb(35, 35, 39);--scrollbar-color: var(--accent-color);--scrollbar-color-hover: var(--accent-color-bright);--subhook-color: var(--accent-color)}[data-theme=light]{--white: rgb(255, 255, 255);--accent-color-dim: rgb(186, 146, 0);--accent-color: rgb(235, 185, 5);--accent-color-bright: rgb(255, 200, 0);--accent-color-hover: var(--accent-color-bright);--root-bg-color: rgb(255, 255, 255);--background-color: rgb(220, 222, 224);--background-color-light: rgb(250, 252, 254);--background-color-secondary: rgb(208, 210, 212);--text-color: rgb(0, 0, 0);--text-color-secondary: rgb(40, 40, 40);--subtext-color: rgb(24, 24, 34);--subtext-color-bright: rgb(142, 144, 146);--border-color: rgb(200, 200, 200);--border-color-light: rgb(147, 147, 147);--svg-color: rgb(50, 50, 50);--invalid: rgb(255, 75, 75);--invalid-secondary: rgb(120, 5, 5);--destructive-color: rgb(237, 51, 51);--destructive-color-hover: rgb(255, 55, 55);--warning-color: rgb(224, 142, 42);--warning-color-hover: rgb(255, 167, 60);--border-color-invalid: rgb(255, 80, 50);--box-shadow-color-invalid: none;--tab-color: rgb(202, 204, 206);--tab-hover-color: rgb(196, 198, 200);--tab-panel-bg: rgb(206, 208, 210);--tab-list-bg: rgb(235, 185, 5);--tab-list-text: rgb(0, 0, 0);--tab-list-text-inactive: rgb(106, 108, 110);--btn-base-color: rgb(184, 186, 188);--btn-base-color-hover: rgb(230, 232, 234);--btn-load-more: rgb(202, 204, 206);--btn-load-more-hover: rgb(178, 180, 182);--btn-svg-color: rgb(0, 0, 0);--btn-delete-image: rgb(213, 49, 49);--btn-checkbox-border-hover: rgb(176, 178, 182);--progress-bar-color: rgb(235, 185, 5);--prompt-bg-color: rgb(225, 227, 229);--switch-bg-color: rgb(178, 180, 182);--switch-bg-active-color: rgb(235, 185, 5);--slider-color: var(--accent-color);--slider-mark-color: rgb(0, 0, 0);--resizeable-handle-border-color: rgb(160, 162, 164);--metadata-bg-color: rgba(230, 230, 230, .9);--metadata-json-bg-color: rgba(0, 0, 0, .1);--status-good-color: rgb(21, 126, 0);--status-good-glow: var(--background-color);--status-working-color: rgb(235, 141, 0);--status-working-glow: var(--background-color);--status-bad-color: rgb(202, 0, 0);--status-bad-glow: var(--background-color);--notice-color: rgb(255, 71, 90);--settings-modal-bg: rgb(202, 204, 206);--input-checkbox-bg: rgb(167, 167, 171);--input-checkbox-checked-bg: rgb(235, 185, 5);--input-checkbox-checked-tick: rgb(0, 0, 0);--input-border-color: rgb(0, 0, 0);--input-box-shadow-color: none;--error-level-info: rgb(42, 42, 42);--error-level-warning: rgb(173, 121, 0);--error-level-error: rgb(145, 14, 0);--console-bg-color: rgb(220, 224, 230);--console-icon-button-bg-color: var(--switch-bg-color);--console-icon-button-bg-color-hover: var(--resizeable-handle-border-color);--img2img-img-bg-color: rgb(180, 182, 184);--context-menu-bg-color: var(--background-color);--context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, .35), 0px 10px 20px -15px rgba(22, 23, 24, .2);--context-menu-bg-color-hover: var(--background-color-secondary);--floating-button-drop-shadow-color: rgba(0, 0, 0, .7);--inpainting-alerts-bg: rgba(220, 222, 224, .75);--inpainting-alerts-icon-color: rgb(0, 0, 0);--inpainting-alerts-bg-active: rgb(255, 200, 0);--inpainting-alerts-icon-active: rgb(0, 0, 0);--inpainting-alerts-bg-alert: var(--invalid);--inpainting-alerts-icon-alert: rgb(0, 0, 0);--checkboard-dots-color: rgb(160, 160, 172);--scrollbar-color: rgb(180, 180, 184);--scrollbar-color-hover: rgb(150, 150, 154);--subhook-color: rgb(0, 0, 0)}[data-theme=green]{--white: rgb(255, 255, 255);--accent-color-dim: rgb(10, 60, 40);--accent-color: rgb(20, 110, 70);--accent-color-bright: rgb(30, 180, 100);--accent-color-hover: var(--accent-color-bright);--root-bg-color: rgb(10, 10, 14);--background-color: rgb(30, 32, 37);--background-color-light: rgb(40, 44, 48);--background-color-secondary: rgb(22, 24, 28);--text-color: rgb(255, 255, 255);--text-color-secondary: rgb(160, 164, 168);--subtext-color: rgb(24, 24, 28);--subtext-color-bright: rgb(68, 72, 76);--border-color: rgb(40, 44, 48);--border-color-light: rgb(60, 60, 64);--svg-color: rgb(220, 224, 228);--invalid: rgb(255, 75, 75);--invalid-secondary: rgb(120, 5, 5);--destructive-color: rgb(185, 55, 55);--destructive-color-hover: rgb(255, 75, 75);--warning-color: rgb(200, 88, 40);--warning-color-hover: rgb(230, 117, 60);--border-color-invalid: rgb(255, 80, 50);--box-shadow-color-invalid: rgb(210, 30, 10);--tab-color: rgb(40, 44, 48);--tab-hover-color: rgb(48, 52, 56);--tab-panel-bg: rgb(36, 40, 44);--tab-list-bg: var(--accent-color);--tab-list-text: rgb(202, 204, 206);--tab-list-text-inactive: rgb(92, 94, 96);--btn-base-color: rgb(40, 44, 48);--btn-base-color-hover: rgb(56, 60, 64);--btn-load-more: rgb(30, 32, 42);--btn-load-more-hover: rgb(54, 56, 66);--btn-svg-color: rgb(255, 255, 255);--btn-delete-image: rgb(182, 46, 46);--btn-checkbox-border-hover: rgb(46, 48, 68);--progress-bar-color: var(--accent-color);--prompt-bg-color: rgb(10, 10, 14);--switch-bg-color: rgb(100, 102, 110);--switch-bg-active-color: var(--accent-color);--slider-color: var(--accent-color-bright);--slider-mark-color: var(--accent-color-bright);--resizeable-handle-border-color: var(--accent-color);--metadata-bg-color: rgba(0, 0, 0, .7);--metadata-json-bg-color: rgba(255, 255, 255, .1);--status-good-color: rgb(125, 255, 100);--status-good-glow: rgb(40, 215, 40);--status-working-color: rgb(255, 175, 55);--status-working-glow: rgb(255, 160, 55);--status-bad-color: rgb(255, 90, 90);--status-bad-glow: rgb(255, 40, 40);--notice-color: rgb(130, 71, 19);--settings-modal-bg: rgb(30, 32, 42);--input-checkbox-bg: rgb(60, 64, 68);--input-checkbox-checked-bg: var(--accent-color);--input-checkbox-checked-tick: rgb(0, 0, 0);--input-border-color: var(--accent-color-bright);--input-box-shadow-color: var(--accent-color);--error-level-info: rgb(200, 202, 224);--error-level-warning: rgb(255, 225, 105);--error-level-error: rgb(255, 81, 46);--console-bg-color: rgb(30, 30, 36);--console-icon-button-bg-color: rgb(50, 53, 64);--console-icon-button-bg-color-hover: rgb(70, 73, 84);--img2img-img-bg-color: rgb(30, 32, 42);--context-menu-bg-color: rgb(46, 48, 58);--context-menu-box-shadow: none;--context-menu-bg-color-hover: rgb(30, 32, 42);--floating-button-drop-shadow-color: var(--accent-color);--inpainting-alerts-bg: rgba(20, 20, 26, .75);--inpainting-alerts-icon-color: rgb(255, 255, 255);--inpainting-alerts-bg-active: var(--accent-color);--inpainting-alerts-icon-active: rgb(255, 255, 255);--inpainting-alerts-bg-alert: var(--invalid);--inpainting-alerts-icon-alert: rgb(255, 255, 255);--checkboard-dots-color: rgb(35, 35, 39);--scrollbar-color: var(--accent-color);--scrollbar-color-hover: var(--accent-color-bright);--subhook-color: var(--accent-color)}@media (max-width: 600px){#root .app-content{padding:5px}#root .app-content .site-header{position:fixed;display:flex;height:100px;z-index:1}#root .app-content .site-header .site-header-left-side{position:absolute;display:flex;min-width:145px;float:left;padding-left:0}#root .app-content .site-header .site-header-right-side{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;grid-template-rows:25px 25px 25px;grid-template-areas:"logoSpace logoSpace logoSpace sampler sampler sampler" "status status status status status status" "btn1 btn2 btn3 btn4 btn5 btn6";row-gap:15px}#root .app-content .site-header .site-header-right-side .chakra-popover__popper{grid-area:logoSpace}#root .app-content .site-header .site-header-right-side>:nth-child(1).chakra-text{grid-area:status;width:100%;display:flex;justify-content:center}#root .app-content .site-header .site-header-right-side>:nth-child(2){grid-area:sampler;display:flex;justify-content:center;align-items:center}#root .app-content .site-header .site-header-right-side>:nth-child(2) select{width:185px;margin-top:10px}#root .app-content .site-header .site-header-right-side>:nth-child(2) .chakra-select__icon-wrapper{right:10px}#root .app-content .site-header .site-header-right-side>:nth-child(2) .chakra-select__icon-wrapper svg{margin-top:10px}#root .app-content .site-header .site-header-right-side>:nth-child(3){grid-area:btn1}#root .app-content .site-header .site-header-right-side>:nth-child(4){grid-area:btn2}#root .app-content .site-header .site-header-right-side>:nth-child(6){grid-area:btn3}#root .app-content .site-header .site-header-right-side>:nth-child(7){grid-area:btn4}#root .app-content .site-header .site-header-right-side>:nth-child(8){grid-area:btn5}#root .app-content .site-header .site-header-right-side>:nth-child(9){grid-area:btn6}#root .app-content .app-tabs{position:fixed;display:flex;flex-direction:column;row-gap:15px;max-width:100%;overflow:hidden;margin-top:120px}#root .app-content .app-tabs .app-tabs-list{display:flex;justify-content:space-between}#root .app-content .app-tabs .app-tabs-panels{overflow:hidden;overflow-y:scroll}#root .app-content .app-tabs .app-tabs-panels .workarea-main{display:grid;grid-template-areas:"workarea" "options" "gallery";row-gap:15px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper{grid-area:options;width:100%;max-width:100%;height:inherit;overflow:inherit;padding:0 10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper .main-settings-row,#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper .advanced-parameters-item{max-width:100%}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper{grid-area:workarea}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .workarea-split-view{display:flex;flex-direction:column}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .current-image-options{column-gap:3px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .text-to-image-area{padding:0}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .current-image-preview{height:430px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .image-upload-button{row-gap:10px;padding:5px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .image-upload-button svg{width:2rem;height:2rem;margin-top:10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .inpainting-settings{display:flex;flex-wrap:wrap;row-gap:10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .inpainting-canvas-area .konvajs-content{height:400px!important}#root .app-content .app-tabs .app-tabs-panels .workarea-main .image-gallery-wrapper{grid-area:gallery;min-height:400px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .image-gallery-wrapper .image-gallery-popup{width:100%!important;max-width:100%!important}}svg{fill:var(--svg-color)}.App{display:grid;width:100vw;height:100vh;background-color:var(--background-color)}.app-content{display:grid;row-gap:1rem;padding:1rem;grid-auto-rows:min-content auto;width:calc(100vw + -0px);height:calc(100vh - .3rem)}.site-header{display:grid;grid-template-columns:auto max-content}.site-header-left-side{display:flex;align-items:center;column-gap:.7rem;padding-left:.5rem}.site-header-left-side img{width:32px;height:32px}.site-header-right-side{display:flex;align-items:center;column-gap:.5rem}.site-header-right-side .lang-select-btn[data-selected=true],.site-header-right-side .lang-select-btn[data-selected=true]:hover{background-color:var(--accent-color)}.status{font-size:.8rem;font-weight:700}.status-good{color:var(--status-good-color);text-shadow:0 0 10px var(--status-good-glow)}.status-bad{color:var(--status-bad-color);text-shadow:0 0 10px var(--status-bad-glow)}.status-working{color:var(--status-working-color);text-shadow:0 0 10px var(--status-working-glow)}.settings-modal{max-height:36rem;font-family:Inter}.settings-modal .settings-modal-content{display:grid;row-gap:2rem;overflow-y:scroll}.settings-modal .settings-modal-header{font-weight:700}.settings-modal .settings-modal-items{display:grid;row-gap:.5rem}.settings-modal .settings-modal-items .settings-modal-item{display:grid;grid-auto-flow:column;background-color:var(--background-color);padding:.4rem 1rem;border-radius:.5rem;align-items:center;width:100%}.settings-modal .settings-modal-reset{display:grid;row-gap:1rem}.settings-modal .settings-modal-reset button{min-width:100%;min-height:100%;background-color:var(--destructive-color)!important}.settings-modal .settings-modal-reset button:hover{background-color:var(--destructive-color-hover)}.settings-modal .settings-modal-reset button:disabled{background-color:var(--btn-base-color)}.settings-modal .settings-modal-reset button:disabled:hover{background-color:var(--btn-base-color)}.settings-modal .settings-modal-reset button svg{width:20px;height:20px;color:var(--btn-svg-color)}.add-model-modal{display:flex}.add-model-modal-body{display:flex;flex-direction:column;row-gap:1rem;padding-bottom:2rem}.add-model-form{display:flex;flex-direction:column;row-gap:.5rem}.hotkeys-modal{width:36rem;max-width:36rem;display:grid;padding:1rem;row-gap:1rem;font-family:Inter}.hotkeys-modal h1{font-size:1.2rem;font-weight:700}.hotkeys-modal h2{font-weight:700}.hotkeys-modal-button{display:flex;align-items:center;justify-content:space-between}.hotkeys-modal-items{max-height:36rem;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.hotkeys-modal-items::-webkit-scrollbar{display:none}.hotkeys-modal-items .chakra-accordion{display:grid;row-gap:.5rem}.hotkeys-modal-items .chakra-accordion__item{border:none;border-radius:.3rem;background-color:var(--tab-hover-color)}.hotkeys-modal-items button{border-radius:.3rem}.hotkeys-modal-items button[aria-expanded=true]{background-color:var(--tab-hover-color);border-radius:.3rem}.hotkey-modal-category{display:grid;row-gap:.5rem}.hotkey-modal-item{display:grid;grid-template-columns:auto max-content;justify-content:space-between;align-items:center;background-color:var(--background-color);padding:.5rem 1rem;border-radius:.3rem}.hotkey-modal-item .hotkey-info{display:grid}.hotkey-modal-item .hotkey-info .hotkey-title{font-weight:700}.hotkey-modal-item .hotkey-info .hotkey-description{font-size:.9rem;color:var(--text-color-secondary)}.hotkey-modal-item .hotkey-key{font-size:.8rem;font-weight:700;background-color:var(--background-color-light);padding:.2rem .5rem;border-radius:.3rem}.console{width:100vw;display:flex;flex-direction:column;background:var(--console-bg-color);overflow:auto;direction:column;font-family:monospace;padding:0 1rem 1rem 3rem;border-top-width:.3rem;border-color:var(--resizeable-handle-border-color)}.console .console-info-color{color:var(--error-level-info)}.console .console-warning-color{color:var(--error-level-warning)}.console .console-error-color{color:var(--status-bad-color)}.console .console-entry{display:flex;column-gap:.5rem}.console .console-entry .console-timestamp{font-weight:semibold}.console .console-entry .console-message{word-break:break-all}.console-toggle-icon-button{background:var(--console-icon-button-bg-color);position:fixed;left:.5rem;bottom:.5rem;z-index:10000}.console-toggle-icon-button:hover{background:var(--console-icon-button-bg-color-hover)}.console-toggle-icon-button[data-error-seen=true],.console-toggle-icon-button[data-error-seen=true]:hover{background:var(--status-bad-color)}.console-autoscroll-icon-button{background:var(--console-icon-button-bg-color);position:fixed;left:.5rem;bottom:3rem;z-index:10000}.console-autoscroll-icon-button:hover{background:var(--console-icon-button-bg-color-hover)}.console-autoscroll-icon-button[data-autoscroll-enabled=true]{background:var(--accent-color)}.console-autoscroll-icon-button[data-autoscroll-enabled=true]:hover{background:var(--accent-color-hover)}.progress-bar{background-color:var(--root-bg-color);height:.3rem;z-index:99}.progress-bar div{background-color:var(--progress-bar-color);transition:width .2s ease-in-out}.progress-bar div[data-indeterminate]{background-color:unset;background-image:linear-gradient(to right,transparent 0%,var(--progress-bar-color) 50%,transparent 100%)}.prompt-bar{display:grid;row-gap:1rem}.prompt-bar input,.prompt-bar textarea{background-color:var(--prompt-bg-color);font-size:1rem;border:2px solid var(--border-color)}.prompt-bar input:hover,.prompt-bar textarea:hover{border:2px solid var(--border-color-light)}.prompt-bar input:focus-visible,.prompt-bar textarea:focus-visible{border:2px solid var(--input-border-color);box-shadow:0 0 10px 0 var(--input-box-shadow-color)}.prompt-bar input[aria-invalid=true],.prompt-bar textarea[aria-invalid=true]{border:2px solid var(--border-color-invalid);box-shadow:0 0 10px 0 var(--box-shadow-color-invalid)}.prompt-bar input:disabled,.prompt-bar textarea:disabled{border:2px solid var(--border-color);box-shadow:none}.prompt-bar textarea{min-height:10rem}.process-buttons{display:flex;column-gap:.5rem}.invoke-btn{flex-grow:1;width:100%;min-width:100%;min-height:100%;background-color:var(--accent-color)!important}.invoke-btn:hover{background-color:var(--accent-color-hover)}.invoke-btn:disabled{background-color:var(--btn-base-color)}.invoke-btn:disabled:hover{background-color:var(--btn-base-color)}.invoke-btn svg{width:16px;height:16px;color:var(--btn-svg-color)}.cancel-btn{min-width:3rem;min-height:100%;background-color:var(--destructive-color)!important}.cancel-btn:hover{background-color:var(--destructive-color-hover)}.cancel-btn:disabled{background-color:var(--btn-base-color)}.cancel-btn:disabled:hover{background-color:var(--btn-base-color)}.cancel-btn svg{width:20px;height:20px;color:var(--btn-svg-color)}.loopback-btn[data-as-checkbox=true]{background-color:var(--btn-btn-base-color);border:3px solid var(--btn-btn-base-color)}.loopback-btn[data-as-checkbox=true] svg{fill:var(--text-color)}.loopback-btn[data-as-checkbox=true]:hover{background-color:var(--btn-btn-base-color);border-color:var(--btn-checkbox-border-hover)}.loopback-btn[data-as-checkbox=true]:hover svg{fill:var(--text-color)}.loopback-btn[data-as-checkbox=true][data-selected=true]{border-color:var(--accent-color);background-color:var(--btn-btn-base-color)}.loopback-btn[data-as-checkbox=true][data-selected=true] svg{fill:var(--text-color)}.loopback-btn[data-as-checkbox=true][data-selected=true]:hover{border-color:var(--accent-color);background-color:var(--btn-btn-base-color)}.loopback-btn[data-as-checkbox=true][data-selected=true]:hover svg{fill:var(--text-color)}.main-settings,.main-settings-list{display:grid;row-gap:1rem}.main-settings-row{display:grid;grid-template-columns:repeat(3,auto);column-gap:.5rem;max-width:22.5rem}.main-settings-block{border-radius:.5rem;display:grid!important;grid-template-columns:auto!important;row-gap:.5rem}.main-settings-block .invokeai__number-input-form-label,.main-settings-block .invokeai__select-label{font-weight:700;font-size:.9rem!important}.main-settings-block .invokeai__select-label{margin:0}.advanced-parameters{padding-top:.5rem;display:grid;row-gap:.5rem}.advanced-parameters-item{display:grid;max-width:22.5rem;border:none;border-top:0px;border-radius:.4rem;background-color:var(--tab-panel-bg)}.advanced-parameters-item[aria-expanded=true]{background-color:var(--tab-hover-color);border-radius:0 0 .4rem .4rem}.advanced-parameters-panel{background-color:var(--tab-panel-bg);border-radius:0 0 .4rem .4rem;padding:1rem}.advanced-parameters-panel button{background-color:var(--btn-base-color)}.advanced-parameters-panel button:hover{background-color:var(--btn-base-color-hover)}.advanced-parameters-panel button:disabled:hover{background-color:var(--btn-base-color)}.advanced-parameters-header{border-radius:.4rem;font-weight:700}.advanced-parameters-header[aria-expanded=true]{background-color:var(--tab-hover-color);border-radius:.4rem .4rem 0 0}.advanced-parameters-header:hover{background-color:var(--tab-hover-color)}.inpainting-bounding-box-settings{display:flex;flex-direction:column;border-radius:.4rem;border:2px solid var(--tab-color)}.inpainting-bounding-box-header{background-color:var(--tab-color);display:flex;flex-direction:row;justify-content:space-between;padding:.5rem 1rem;border-radius:.3rem .3rem 0 0;align-items:center}.inpainting-bounding-box-header button{width:.5rem;height:1.2rem;background:none}.inpainting-bounding-box-header button:hover{background:none}.inpainting-bounding-box-settings-items{padding:1rem;display:flex;flex-direction:column;row-gap:1rem}.inpainting-bounding-box-settings-items .inpainting-bounding-box-reset-icon-btn{background-color:var(--btn-base-color)}.inpainting-bounding-box-settings-items .inpainting-bounding-box-reset-icon-btn:hover{background-color:var(--btn-base-color-hover)}.inpainting-bounding-box-dimensions-slider-numberinput{display:grid;grid-template-columns:repeat(3,auto);column-gap:1rem}.inpainting-bounding-box-darken{width:max-content}.current-image-area{display:flex;flex-direction:column;height:100%;row-gap:1rem;background-color:var(--background-color-secondary);border-radius:.5rem}.current-image-preview{position:relative;justify-content:center;align-items:center;display:flex;width:100%;height:100%}.current-image-preview img{border-radius:.5rem;object-fit:contain;max-width:100%;max-height:100%;height:auto;position:absolute}.current-image-metadata{grid-area:current-image-preview}.current-image-next-prev-buttons{grid-area:current-image-content;display:flex;justify-content:space-between;z-index:1;height:100%;width:100%;pointer-events:none}.next-prev-button-trigger-area{width:7rem;height:100%;width:15%;display:grid;align-items:center;pointer-events:auto}.next-prev-button-trigger-area.prev-button-trigger-area{justify-content:flex-start}.next-prev-button-trigger-area.next-button-trigger-area{justify-content:flex-end}.next-prev-button{font-size:4rem;fill:var(--white);filter:drop-shadow(0 0 1rem var(--text-color-secondary));opacity:70%}.current-image-display-placeholder{background-color:var(--background-color-secondary);display:grid;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:.5rem}.current-image-display-placeholder svg{width:10rem;height:10rem;color:var(--svg-color)}.current-image-options{width:100%;display:flex;justify-content:center;align-items:center;column-gap:.5em}.current-image-options .current-image-send-to-popover,.current-image-options .current-image-postprocessing-popover{display:flex;flex-direction:column;row-gap:.5rem;max-width:25rem}.current-image-options .current-image-send-to-popover .invokeai__button{place-content:start}.current-image-options .chakra-popover__popper{z-index:11}.current-image-options .delete-image-btn{background-color:var(--btn-base-color)}.current-image-options .delete-image-btn svg{fill:var(--btn-delete-image)}.image-gallery-wrapper-enter{transform:translate(150%)}.image-gallery-wrapper-enter-active{transform:translate(0);transition:all .12s ease-out}.image-gallery-wrapper-exit{transform:translate(0)}.image-gallery-wrapper-exit-active{transform:translate(150%);transition:all .12s ease-out}.image-gallery-wrapper[data-pinned=false]{position:fixed;height:100vh;top:0;right:0}.image-gallery-wrapper[data-pinned=false] .image-gallery-popup{border-radius:0;box-shadow:0 0 1rem var(--text-color-a3)}.image-gallery-wrapper[data-pinned=false] .image-gallery-popup .image-gallery-container{max-height:calc(100vh + 4.7rem)}.image-gallery-wrapper .image-gallery-popup{background-color:var(--background-color-secondary);padding:1rem;display:flex;flex-direction:column;row-gap:1rem;border-radius:.5rem;border-left-width:.3rem;border-color:var(--tab-list-text-inactive)}.image-gallery-wrapper .image-gallery-popup[data-resize-alert=true]{border-color:var(--status-bad-color)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header{display:flex;align-items:center;column-gap:.5rem;justify-content:space-between}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-header-right-icons{display:flex;flex-direction:row;column-gap:.5rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-icon-btn{background-color:var(--btn-load-more)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-icon-btn:hover{background-color:var(--btn-load-more-hover)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-settings-popover{display:flex;flex-direction:column;row-gap:.5rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-settings-popover div{display:flex;column-gap:.5rem;align-items:center;justify-content:space-between}.image-gallery-wrapper .image-gallery-popup .image-gallery-header h1{font-weight:700}.image-gallery-wrapper .image-gallery-popup .image-gallery-container{display:flex;flex-direction:column;max-height:calc(100vh - (70px + 7rem));overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.image-gallery-wrapper .image-gallery-popup .image-gallery-container::-webkit-scrollbar{display:none}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder{display:flex;flex-direction:column;row-gap:.5rem;background-color:var(--background-color);border-radius:.5rem;place-items:center;padding:2rem;text-align:center}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder p{color:var(--subtext-color-bright);font-family:Inter}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder svg{width:4rem;height:4rem;color:var(--svg-color)}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn{background-color:var(--btn-load-more);font-size:.85rem;padding:.5rem;margin-top:1rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn:disabled:hover{background-color:var(--btn-load-more)}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn:hover{background-color:var(--btn-load-more-hover)}.image-gallery-category-btn-group{width:max-content;column-gap:0;justify-content:stretch}.image-gallery-category-btn-group button{background-color:var(--btn-base-color);flex-grow:1}.image-gallery-category-btn-group button:hover{background-color:var(--btn-base-color-hover)}.image-gallery-category-btn-group button[data-selected=true]{background-color:var(--accent-color)}.image-gallery-category-btn-group button[data-selected=true]:hover{background-color:var(--accent-color-hover)}.image-gallery{display:grid;grid-gap:.5rem}.image-gallery .hoverable-image{padding:.5rem;position:relative}.image-gallery .hoverable-image:before{content:"";display:block;padding-bottom:100%}.image-gallery .hoverable-image .hoverable-image-image{position:absolute;max-width:100%;top:50%;left:50%;transform:translate(-50%,-50%)}.hoverable-image{display:flex;justify-content:center;transition:transform .2s ease-out}.hoverable-image:hover{cursor:pointer;border-radius:.5rem;z-index:2}.hoverable-image .hoverable-image-image{width:100%;height:100%;max-width:100%;max-height:100%}.hoverable-image .hoverable-image-delete-button{position:absolute;top:.25rem;right:.25rem}.hoverable-image .hoverable-image-content{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;align-items:center;justify-content:center}.hoverable-image .hoverable-image-content .hoverable-image-check{fill:var(--status-good-color)}.hoverable-image .hoverable-image-icons{position:absolute;bottom:-2rem;display:grid;width:min-content;grid-template-columns:repeat(2,max-content);border-radius:.4rem;background-color:var(--background-color-secondary);padding:.2rem;gap:.2rem;grid-auto-rows:max-content}.hoverable-image .hoverable-image-icons button{width:12px;height:12px;border-radius:.2rem;padding:10px 0;flex-shrink:2}.hoverable-image .hoverable-image-icons button svg{width:12px;height:12px}.hoverable-image-context-menu{z-index:15;padding:.4rem;border-radius:.25rem;background-color:var(--context-menu-bg-color);box-shadow:var(--context-menu-box-shadow)}.hoverable-image-context-menu [role=menuitem]{font-size:.8rem;line-height:1rem;border-radius:3px;display:flex;align-items:center;height:1.75rem;padding:0 .5rem;position:relative;user-select:none;cursor:pointer;outline:none}.hoverable-image-context-menu [role=menuitem][data-disabled]{color:gray;pointer-events:none;cursor:not-allowed}.hoverable-image-context-menu [role=menuitem][data-warning]{color:var(--status-bad-color)}.hoverable-image-context-menu [role=menuitem][data-highlighted]{background-color:var(--context-menu-bg-color-hover)}.image-metadata-viewer{position:absolute;top:0;width:100%;border-radius:.5rem;padding:1rem;background-color:var(--metadata-bg-color);overflow:scroll;max-height:calc(100vh - (70px + 5.4rem));height:100%;z-index:10}.image-json-viewer{border-radius:.5rem;margin:0 .5rem 1rem;padding:1rem;overflow-x:scroll;word-break:break-all;background-color:var(--metadata-json-bg-color)}.lightbox-container{width:100%;height:100%;color:var(--text-color);overflow:hidden;position:absolute;left:0;top:0;background-color:var(--background-color-secondary);z-index:30;animation:popIn .3s ease-in}.lightbox-container .image-gallery-wrapper{max-height:100%!important}.lightbox-container .image-gallery-wrapper .image-gallery-container{max-height:calc(100vh - 5rem)}.lightbox-container .current-image-options{z-index:2;position:absolute;top:1rem}.lightbox-container .image-metadata-viewer{left:0;max-height:100%}.lightbox-close-btn{z-index:3;position:absolute;left:1rem;top:1rem;background-color:var(--btn-base-color)}.lightbox-close-btn:hover{background-color:var(--btn-base-color-hover)}.lightbox-close-btn:disabled:hover{background-color:var(--btn-base-color)}.lightbox-display-container{display:flex;flex-direction:row}.lightbox-preview-wrapper{overflow:hidden;background-color:var(--background-color-secondary);display:grid;grid-template-columns:auto max-content;place-items:center;width:100vw;height:100vh}.lightbox-preview-wrapper .current-image-next-prev-buttons{position:absolute}.lightbox-preview-wrapper .lightbox-image{grid-area:lightbox-content;border-radius:.5rem}.lightbox-preview-wrapper .lightbox-image-options{position:absolute;z-index:2;left:1rem;top:4.5rem;user-select:none;border-radius:.5rem;display:flex;flex-direction:column;row-gap:.5rem}@keyframes popIn{0%{opacity:0;filter:blur(100)}to{opacity:1;filter:blur(0)}}.app-tabs{display:grid;grid-template-columns:min-content auto;column-gap:1rem;height:calc(100vh - (70px + 1rem))}.app-tabs-list{display:grid;row-gap:.3rem;grid-auto-rows:min-content;color:var(--tab-list-text-inactive)}.app-tabs-list button{font-size:.85rem;padding:.5rem}.app-tabs-list button:hover{background-color:var(--tab-hover-color);border-radius:.3rem}.app-tabs-list button svg{width:24px;height:24px}.app-tabs-list button[aria-selected=true]{background-color:var(--tab-list-bg);color:var(--tab-list-text);font-weight:700;border-radius:.3rem;border:none}.app-tabs-panels .app-tabs-panel{padding:0;height:100%}.workarea-wrapper{position:relative;width:100%;height:100%}.workarea-wrapper .workarea-main{display:flex;column-gap:1rem;height:100%}.workarea-wrapper .workarea-main .workarea-children-wrapper{position:relative;width:100%;height:100%}.workarea-wrapper .workarea-main .workarea-split-view{width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;background-color:var(--background-color-secondary);border-radius:.5rem}.workarea-wrapper .workarea-main .workarea-split-view .workarea-split-view-left{padding-right:.5rem}.workarea-wrapper .workarea-main .workarea-split-view .workarea-split-view-right{padding-left:.5rem}.workarea-wrapper .workarea-main .workarea-single-view{width:100%;height:100%;background-color:var(--background-color-secondary);border-radius:.5rem}.workarea-wrapper .workarea-main .workarea-split-view-left,.workarea-wrapper .workarea-main .workarea-split-view-right{display:flex;flex-direction:column;height:100%;width:100%;row-gap:1rem;background-color:var(--background-color-secondary);border-radius:.5rem;padding:1rem}.workarea-split-button{position:absolute;cursor:pointer;padding:.5rem;top:0;right:0}.workarea-split-button[data-selected=true]{top:0;right:0}.workarea-split-button[data-selected=true] svg{opacity:1}.workarea-split-button svg{opacity:.5}.parameters-panel-wrapper-enter{transform:translate(-150%)}.parameters-panel-wrapper-enter-active{transform:translate(0);transition:all .12s ease-out}.parameters-panel-wrapper-exit{transform:translate(0)}.parameters-panel-wrapper-exit-active{transform:translate(-150%);transition:all .12s ease-out}.parameters-panel-wrapper{background-color:var(--background-color);height:calc(100vh - (70px + 1rem));width:22.5rem;max-width:22.5rem;flex-shrink:0;position:relative;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.parameters-panel-wrapper::-webkit-scrollbar{display:none}.parameters-panel-wrapper .parameters-panel{display:flex;flex-direction:column;row-gap:.5rem;height:100%;-ms-overflow-style:none;scrollbar-width:none;background-color:var(--background-color)}.parameters-panel-wrapper .parameters-panel::-webkit-scrollbar{display:none}.parameters-panel-wrapper[data-pinned=false]{z-index:20;position:fixed;top:0;left:0;filter:var(--floating-panel-drop-shadow);width:24.5rem;max-width:24.5rem;height:100%}.parameters-panel-wrapper[data-pinned=false] .parameters-panel-margin{margin:1rem}.parameters-panel-wrapper .parameters-panel-pin-button{position:absolute;cursor:pointer;padding:.5rem;top:1rem;right:1rem;z-index:20}.parameters-panel-wrapper .parameters-panel-pin-button[data-selected=true]{top:0;right:0}.parameters-panel-wrapper .parameters-panel-pin-button svg{opacity:.5}.invoke-ai-logo-wrapper{display:flex;align-items:center;column-gap:.7rem;padding-left:.5rem;padding-top:.3rem}.invoke-ai-logo-wrapper img{width:32px;height:32px}.invoke-ai-logo-wrapper h1{font-size:1.4rem}.text-to-image-area{padding:1rem;height:100%}.image-to-image-area{display:flex;flex-direction:column;row-gap:1rem;width:100%;height:100%}.image-to-image-strength-main-option{display:flex;row-gap:.5rem!important}.image-to-image-strength-main-option .invokeai__slider-component-label{color:var(--text-color-secondary);font-size:.9rem!important}.init-image-preview-header{display:flex;align-items:center;justify-content:space-between;width:100%}.init-image-preview-header h2{font-weight:700;font-size:.9rem}.init-image-preview{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center}.init-image-preview img{border-radius:.5rem;object-fit:contain;position:absolute}.image-to-image-current-image-display{position:relative}.floating-show-hide-button{position:absolute;top:50%;transform:translateY(-50%);z-index:20;padding:0;background-color:red!important;min-width:2rem;min-height:12rem;background-color:var(--btn-btn-base-color)!important}.floating-show-hide-button.left{left:0;border-radius:0 .5rem .5rem 0}.floating-show-hide-button.right{right:0;border-radius:.5rem 0 0 .5rem}.floating-show-hide-button:hover{background-color:var(--btn-btn-base-color-hover)}.floating-show-hide-button:disabled{background-color:var(--btn-base-color)}.floating-show-hide-button:disabled:hover{background-color:var(--btn-base-color)}.floating-show-hide-button svg{width:20px;height:20px;color:var(--btn-svg-color)}.show-hide-button-options{position:absolute;transform:translateY(-50%);z-index:20;min-width:2rem;top:50%;left:calc(42px + 2rem);border-radius:0 .5rem .5rem 0;display:flex;flex-direction:column;row-gap:.5rem}.show-hide-button-options button{border-radius:0 .3rem .3rem 0}.show-hide-button-gallery{padding-left:.75rem;padding-right:.75rem;background-color:var(--background-color)!important}.inpainting-main-area{display:flex;flex-direction:column;align-items:center;row-gap:1rem;width:100%;height:100%}.inpainting-main-area .inpainting-settings{display:flex;align-items:center;column-gap:.5rem}.inpainting-main-area .inpainting-settings svg{transform:scale(.9)}.inpainting-main-area .inpainting-settings .inpainting-buttons-group{display:flex;align-items:center;column-gap:.5rem}.inpainting-main-area .inpainting-settings .inpainting-button-dropdown{display:flex;flex-direction:column;row-gap:.5rem}.inpainting-main-area .inpainting-settings .inpainting-color-picker{margin-left:1rem}.inpainting-main-area .inpainting-settings .inpainting-brush-options{display:flex;align-items:center;column-gap:1rem}.inpainting-canvas-area{display:flex;flex-direction:column;align-items:center;justify-content:center;row-gap:1rem;width:100%;height:100%}.inpainting-canvas-spiner{display:flex;align-items:center;width:100%;height:100%}.inpainting-canvas-container{display:flex;position:relative;height:100%;width:100%;border-radius:.5rem}.inpainting-canvas-wrapper{position:relative}.inpainting-canvas-stage{outline:none;border-radius:.5rem;box-shadow:0 0 0 1px var(--border-color-light);overflow:hidden}.inpainting-canvas-stage canvas{outline:none;border-radius:.5rem}.inpainting-options-btn{min-height:2rem}.canvas-status-text{position:absolute;top:0;left:0;background-color:var(--background-color);opacity:.65;display:flex;flex-direction:column;font-size:.8rem;padding:.25rem;min-width:12rem;border-radius:.25rem;margin:.25rem;pointer-events:none}.invokeai__number-input-form-control{display:flex;align-items:center;column-gap:1rem}.invokeai__number-input-form-control .invokeai__number-input-form-label{color:var(--text-color-secondary)}.invokeai__number-input-form-control .invokeai__number-input-form-label[data-focus]+.invokeai__number-input-root{outline:none;border:2px solid var(--input-border-color);box-shadow:0 0 10px 0 var(--input-box-shadow-color)}.invokeai__number-input-form-control .invokeai__number-input-form-label[aria-invalid=true]+.invokeai__number-input-root{outline:none;border:2px solid var(--border-color-invalid);box-shadow:0 0 10px 0 var(--box-shadow-color-invalid)}.invokeai__number-input-form-control .invokeai__number-input-root{height:2rem;display:grid;grid-template-columns:auto max-content;column-gap:.5rem;align-items:center;background-color:var(--background-color-secondary);border:2px solid var(--border-color);border-radius:.3rem}.invokeai__number-input-form-control .invokeai__number-input-field{border:none;font-weight:700;width:100%;height:auto;font-size:.9rem;padding:0 .5rem}.invokeai__number-input-form-control .invokeai__number-input-field:focus{outline:none;box-shadow:none}.invokeai__number-input-form-control .invokeai__number-input-field:disabled{opacity:.2}.invokeai__number-input-form-control .invokeai__number-input-stepper{display:grid;padding-right:.5rem}.invokeai__number-input-form-control .invokeai__number-input-stepper .invokeai__number-input-stepper-button{border:none;padding:0 .5rem;margin:0 -.5rem}.invokeai__number-input-form-control .invokeai__number-input-stepper .invokeai__number-input-stepper-button svg{width:10px;height:10px}.input{display:grid;grid-template-columns:max-content auto;column-gap:1rem;align-items:center}.input .input-label{color:var(--text-color-secondary)}.input .input-entry{background-color:var(--background-color-secondary);border:2px solid var(--border-color);border-radius:.2rem;font-weight:700}.input .input-entry:focus{outline:none;border:2px solid var(--input-border-color);box-shadow:0 0 10px 0 var(--input-box-shadow-color)}.input .input-entry:disabled{opacity:.2}.input .input-entry[aria-invalid=true]{outline:none;border:2px solid var(--border-color-invalid);box-shadow:0 0 10px 0 var(--box-shadow-color-invalid)}.invokeai__icon-button{background:var(--btn-base-color);cursor:pointer}.invokeai__icon-button:hover{background-color:var(--btn-base-color-hover)}.invokeai__icon-button[data-selected=true]{background-color:var(--accent-color)}.invokeai__icon-button[data-selected=true]:hover{background-color:var(--accent-color-hover)}.invokeai__icon-button[disabled]{cursor:not-allowed}.invokeai__icon-button[data-variant=link],.invokeai__icon-button[data-variant=link]:hover{background:none}.invokeai__icon-button[data-as-checkbox=true]{background-color:var(--btn-base-color);border:3px solid var(--btn-base-color)}.invokeai__icon-button[data-as-checkbox=true] svg{fill:var(--text-color)}.invokeai__icon-button[data-as-checkbox=true]:hover{background-color:var(--btn-base-color);border-color:var(--btn-checkbox-border-hover)}.invokeai__icon-button[data-as-checkbox=true]:hover svg{fill:var(--text-color)}.invokeai__icon-button[data-as-checkbox=true][data-selected=true]{border-color:var(--accent-color)}.invokeai__icon-button[data-as-checkbox=true][data-selected=true] svg{fill:var(--accent-color-hover)}.invokeai__icon-button[data-as-checkbox=true][data-selected=true]:hover svg{fill:var(--accent-color-hover)}.invokeai__icon-button[data-alert=true]{animation-name:pulseColor;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.invokeai__icon-button[data-alert=true]:hover{animation:none;background-color:var(--accent-color-hover)}@keyframes pulseColor{0%{background-color:var(--accent-color)}50%{background-color:var(--accent-color-dim)}to{background-color:var(--accent-color)}}.invokeai__button{background-color:var(--btn-base-color);place-content:center}.invokeai__button:hover{background-color:var(--btn-base-color-hover)}.invokeai__switch-form-control .invokeai__switch-form-label{color:var(--text-color-secondary)}.invokeai__switch-form-control .invokeai__switch-root span{background-color:var(--switch-bg-color)}.invokeai__switch-form-control .invokeai__switch-root span span{background-color:var(--white)}.invokeai__switch-form-control .invokeai__switch-root[data-checked] span{background:var(--switch-bg-active-color)}.invokeai__switch-form-control .invokeai__switch-root[data-checked] span span{background-color:var(--white)}.invokeai__select{display:flex;column-gap:1rem;align-items:center}.invokeai__select .invokeai__select-label{color:var(--text-color-secondary)}.invokeai__select .invokeai__select-picker{border:2px solid var(--border-color);background-color:var(--background-color-secondary);font-weight:700;font-size:.9rem;height:2rem;border-radius:.2rem}.invokeai__select .invokeai__select-picker:focus{outline:none;border:2px solid var(--input-border-color);box-shadow:0 0 10px 0 var(--input-box-shadow-color)}.invokeai__select .invokeai__select-option{background-color:var(--background-color-secondary);color:var(--text-color-secondary)}.invokeai__slider-component{padding-bottom:.5rem;border-radius:.5rem}.invokeai__slider-component .invokeai__slider-component-label{min-width:max-content;margin:0;font-weight:700;color:var(--text-color-secondary)}.invokeai__slider-component .invokeai__slider_track{background-color:var(--tab-color)}.invokeai__slider-component .invokeai__slider_track-filled{background-color:var(--slider-color)}.invokeai__slider-component .invokeai__slider-thumb{width:4px}.invokeai__slider-component .invokeai__slider-mark{font-size:.75rem;font-weight:700;color:var(--slider-mark-color);margin-top:.3rem}.invokeai__slider-component .invokeai__slider-number-input{border:none;font-size:.9rem;font-weight:700;height:2rem;background-color:var(--background-color-secondary);border:2px solid var(--border-color)}.invokeai__slider-component .invokeai__slider-number-input:focus{outline:none;box-shadow:none;border:2px solid var(--input-border-color);box-shadow:0 0 10px 0 var(--input-box-shadow-color)}.invokeai__slider-component .invokeai__slider-number-input:disabled{opacity:.2}.invokeai__slider-component .invokeai__slider-number-stepper{border:none}.invokeai__slider-component[data-markers=true] .invokeai__slider_container{margin-top:-1rem}.invokeai__checkbox .chakra-checkbox__label{margin-top:1px;color:var(--text-color-secondary);font-size:.9rem}.invokeai__checkbox .chakra-checkbox__control{width:1rem;height:1rem;border:none;border-radius:.2rem;background-color:var(--input-checkbox-bg)}.invokeai__checkbox .chakra-checkbox__control svg{width:.6rem;height:.6rem;stroke-width:3px}.invokeai__checkbox .chakra-checkbox__control[data-checked]{color:var(--text-color);background-color:var(--input-checkbox-checked-bg)}.invokeai__popover-content{min-width:unset;width:unset;padding:1rem;border-radius:.5rem;background-color:var(--background-color);border:2px solid var(--border-color)}.invokeai__popover-content .invokeai__popover-arrow{background-color:var(--background-color)!important}.invokeai__color-picker .react-colorful__hue-pointer,.invokeai__color-picker .react-colorful__saturation-pointer{width:1.5rem;height:1.5rem;border-color:var(--white)}.dropzone-container{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:999;backdrop-filter:blur(20px)}.dropzone-container .dropzone-overlay{opacity:.5;width:100%;height:100%;display:flex;flex-direction:column;row-gap:1rem;align-items:center;justify-content:center;background-color:var(--background-color)}.dropzone-container .dropzone-overlay.is-drag-accept{box-shadow:inset 0 0 20rem 1rem var(--accent-color)}.dropzone-container .dropzone-overlay.is-drag-reject{box-shadow:inset 0 0 20rem 1rem var(--status-bad-color)}.dropzone-container .dropzone-overlay.is-handling-upload{box-shadow:inset 0 0 20rem 1rem var(--status-working-color)}.image-uploader-button-outer{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:.5rem;color:var(--tab-list-text-inactive);background-color:var(--background-color)}.image-uploader-button-outer:hover{background-color:var(--background-color-light)}.image-upload-button-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.image-upload-button{display:flex;flex-direction:column;row-gap:2rem;align-items:center;justify-content:center;text-align:center}.image-upload-button svg{width:4rem;height:4rem}.image-upload-button h2{font-size:1.2rem}.work-in-progress{display:grid;width:100%;height:calc(100vh - (70px + 1rem));grid-auto-rows:max-content;background-color:var(--background-color-secondary);border-radius:.4rem;place-content:center;place-items:center;row-gap:1rem}.work-in-progress h1{font-size:2rem;font-weight:700}.work-in-progress p{text-align:center;max-width:50rem;color:var(--subtext-color-bright)}.guide-popover-arrow{background-color:var(--tab-panel-bg);box-shadow:none}.guide-popover-content{background-color:var(--background-color-secondary);border:none}.guide-popover-guide-content{background:var(--tab-panel-bg);border:2px solid var(--tab-hover-color);border-radius:.4rem;padding:.75rem 1rem;display:grid;grid-template-rows:repeat(auto-fill,1fr);grid-row-gap:.5rem;justify-content:space-between}.modal{background-color:var(--background-color-secondary);color:var(--text-color);font-family:Inter}.modal-close-btn{background-color:var(--btn-base-color)}.modal-close-btn:hover{background-color:var(--btn-base-color-hover)}.modal-close-btn:disabled:hover{background-color:var(--btn-base-color)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{-ms-overflow-style:none;scrollbar-width:none;background-color:var(--root-bg-color);overflow:hidden}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}#root{background-color:var(--root-bg-color);color:var(--text-color);font-family:Inter,Arial,Helvetica,sans-serif} diff --git a/invokeai/frontend/web/dist/assets/index-1ee4e1fb.css b/invokeai/frontend/web/dist/assets/index-1ee4e1fb.css new file mode 100644 index 0000000000..f567e72951 --- /dev/null +++ b/invokeai/frontend/web/dist/assets/index-1ee4e1fb.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-cyrillic-ext-100-normal-a1f4d02d.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-cyrillic-100-normal-9747741a.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-greek-ext-100-normal-71976b96.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-greek-100-normal-a44b9fc9.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-latin-ext-100-normal-d3be20b3.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(./inter-latin-100-normal-61cac109.woff2) format("woff2"),url(./inter-all-100-normal-2596a8cd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-cyrillic-ext-200-normal-82562199.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-cyrillic-200-normal-87d2e1ba.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-greek-ext-200-normal-45dafb12.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-greek-200-normal-9575e0f8.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-latin-ext-200-normal-4336e69d.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(./inter-latin-200-normal-74885a0c.woff2) format("woff2"),url(./inter-all-200-normal-34e907e6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-cyrillic-ext-300-normal-66b2369e.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-cyrillic-300-normal-cff08766.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-greek-ext-300-normal-09d21325.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-greek-300-normal-d0749e19.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-latin-ext-300-normal-34623012.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(./inter-latin-300-normal-6b2cee46.woff2) format("woff2"),url(./inter-all-300-normal-e375e256.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-ext-400-normal-f7666a51.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-400-normal-e9493683.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-ext-400-normal-d3e30cde.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-400-normal-2f2d421a.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-64a98f58.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-0364d368.woff2) format("woff2"),url(./inter-all-400-normal-f824029b.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-ext-500-normal-8b5f6999.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-500-normal-f6bd191e.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-ext-500-normal-528b79aa.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-500-normal-ddbf6a70.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-ext-500-normal-4fba9ae6.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-d5333670.woff2) format("woff2"),url(./inter-all-500-normal-94e08ad8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-ext-600-normal-2ea11f8c.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-600-normal-9bc492f5.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-ext-600-normal-c37a11b3.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-600-normal-4591e350.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-cc23fe6f.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-048d136d.woff2) format("woff2"),url(./inter-all-600-normal-ba29c057.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-ext-700-normal-b7bb121f.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-700-normal-f6c6dcaf.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-ext-700-normal-22174f43.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-700-normal-9e078f49.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-ext-700-normal-1cc47d25.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-700-normal-ced2d8e0.woff2) format("woff2"),url(./inter-all-700-normal-9d318ccb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-cyrillic-ext-800-normal-f15d8f83.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-cyrillic-800-normal-82994ee8.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-greek-ext-800-normal-bddb6f8e.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-greek-800-normal-fb5de277.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(data:font/woff2;base64,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) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-latin-ext-800-normal-b6167428.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(./inter-latin-800-normal-a51ac27d.woff2) format("woff2"),url(./inter-all-800-normal-ab496fbe.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-cyrillic-ext-900-normal-b1c13874.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-cyrillic-900-normal-768011c3.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-greek-ext-900-normal-bebcb6fc.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-greek-900-normal-ffa82654.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(data:font/woff2;base64,d09GMgABAAAAAA68ABAAAAAAIsQAAA5cAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGmQbh2YcKgZgP1NUQVREAII4EQgKqkykcQuCEgABNgIkA4QgBCAFhDgHIAwHG8Edo6KGkVbdI/urA9uY9tCHApEtajW0DpSlMYxIKI2hfIPF0YbhM9A7UN7x+HENZp9HVATf7/fbc+97qFY8EbqHRKmmlUgkeyUyJEq0hqf0j//fful982cJKMS8wLNUYCFjVGVVj4+sjJBFFS4D4ItewGsU6azelbQaBZt1RCSDs0iFCFl3LCA4lRFZAjvLmaC3Aae0xksos/6jHn1Zd6/CckhZDvkuUy5dypRfTlmwh2saKgUexihZyXw6QPrcxq4g9FBJEqasxrY5KrFawkK8D1amCPu/udJm9k9ec4gKc3stCwnEqrLC/M0mnSSbOdwjKPNeAUkBS3i+KQBZ9GVZWwX4PAnjy8Kr+urr0nNYOxJmmRJ8bjDpgJu/d04BBgAU+vgvIyZOxM2L+KWRrBFkzCQybR3ZtIXsOEbOXCBXCkiJQNp6yA8/EAJ9nILY5trOCdz/2G3Ajbbz7QaMiJ4VEKBQYsy2ICUEIv7hYHrvRk0zPkzNGsyEYRXMzlxsueieoZQCOJRn2XAYaSHbIT0AaZAWABcigoedywYbZ+dMt6EDS+1sde+oE9Juaa/e5a58o4Ko/sBygGQA4kRlQJQpGJCEKZ7s7GsenF/FCdaqjXZg0xP/eEcrHWD6CoT1ZQwOcQlJKWlZAwYNGTZi0YpN+86cu3Crpq6hiTn34MIDUuoVQ0wEM8FCsBJsBDvBQXASPAQvYdmDAw+5+0vOCEEeiKCCpcPUTIYZxGJYA7EZ9gVxECfxEK+HcooZ7R8GADqwgRNi0OcZ+qvAPKzDFpwrPh6jA5EZbhAPaAidK0shp5/agBEKT1ACI/LiM/r3d2ytK1cMrhVI/sCJiuvjbEVADTKP5AmKpfE/ePEZjfPiqr85yDOUJLrBnG23CepxnSmBprtPJqCF7iXmU/DBifXTm+wchawCCj4DDIw1+s1u3e4x3igW3K/e03cBfY/0HogHoIsSmKFFiBIDExhYwM6LpS4FAcff6BILwhkRELMyAVSEhQMgX4ECKpggITCBRxQwxkjCQiITFU3V0lbqyIi3UfslCaKQkdJTNeShDo/wVOfEMf62CGZW9nf0XzgvP6CY9sMmtzM5JX5Xssoka7h1MovklimsUFqlskRthsYcrXk6C/Rmmeww22Wxx2qfzQG7Qw5HnI55nPO6EHAt6EbIrbA7EfeiHsQ8inuS8CzpRUpeWkGfin5VA2oG1Q1pGNY0QhjTNq5jQtekHkIpMQAuIUYAK1DHgHYJaK+hLgNoscSOSShoo13DSDkdRRhivoupNK+CK4GNmfM8sQRtVdvcEEYNL1By+3SolhtZ5SjTzoHTiD6/3uu/EhL96nl9jT5uosHxpMMo0XPqY2xGL9bA1iPAbORnfMWuA27oWH5Uzap8h7ppF/GNCnzqk+0yuc2nvRcKZ3RCAUA84gcDqvZwu58yM//07v8oW/bfXh37FHKIZ16kXQRVM1PiwwqFlv5ueB11VAWDGw86HrpuZHF8Wo4dDRO6iHZnzIlsp1TAN54YSej4qDw4Qcuif3w7n0fEwTwXzMkaBfjlIGf0tSzWGTYVencNONg3EDE3nM7eOiOcSfhGedDEZQRL/cKdXE2aMaxd5fA5LAptaoXX/Yl4yNnr4WBHfD4nHjsc1O3K3q3Q2YeUlhGKVwWqmAsr+lQHeHjt+birr4tMMzkZWBxotm/KZb0jIJbCpFqCFTUORku8qpYRyBsn08zQP1hXwatzHdThrL+9Ptfmg9erWWmKbnsWT2Zb56GP+jo3k77AS5urhC6owMx/hkVGPcI0TiFN93Ox5kwEHVEaUNRp9AR3d44Kq2JZGr27qpbgUCBXd0Z8ZWluu/nhG3dzuL5lrT5GGTZTEb60mpiznHXYzCF6zRyvO88rx4VrYowZb+iFmhiu+IxN2F7jqYHL4At33Z/Z8Pj+/abHP870DPUZjJ+9eHeX497evfNiFAEI4kDAChZ9ih4CCKZy8LrsFq/F7vQiVj09BBOqVD3XngzXXX1GeqxVqLj6RDc8YNU323bGHrjQvHEjIS9+5vzaxTpiikt6YQv2b7T5FPnrc01rWV9F1IOfrZvOKFWx8Efrg0u7uCczKp3Oyhn2rkr+JM5AM9EbvplvGLDj3YttQr3u2i9T7JVkBI4QGceGH4cjQbFa0AtID+761b7uxidrbcc+afwseynhVe7wgpQ4uXFKjrl0lklVGFB1dPsT//3XToXldLv9VH243KeNtzXX7koonZKzILlgZiE/Mehf9+RvD+LGcXpuUj5OD9kxeP+OaerhB6YM3upq2l+yqDmimGj1IBgT0EYWL125p3DGbotjYta2hqZo46iyWOqqMrY1NUXkRwRp3vBXsy5cmvXm0eXZ0248OhRSf+uz+tGneZsXBjtyuTmOjIL8hRl5s6k884QPFi3KrcicHplvfPcmZMuVBx/yEMFAjzoGpXkat3TV1BQ2NHYDwW7bIR3h72bfvDjH7weGxd+d7V5uLpw7Lf3g8hXpBxBbOKF2WuaK5RLxGYtZjHnowAFjQw8sWDY1/lCsoje7/0e0x/7s70/tGDbxP293HNj6pEuQYXeP3o7GpvU1BXOy0hxYXmhncX5x/0D+n6/+21WeuNWQbM64mz/kzNgfzumWteUHNwwoiwg5P/KmiQsS9GzQdb1pNMNHr+2+Sy1BlRft8TSIKvRevuyLvYzom97Yg3B5aP7NM9d+WAy9rb13ix9elhZhjJf13fhmE0ochvLcPMOYzv1tw6ylv73+XQdVDEdiCZefOM6QbkFGr34qro7vfd8Xkb+YEwdOrWmonzIXya1+cfT/6ujJCeywuohKzQ8puR9TG6jK1ikVGvxc/7XcWXZbTwa6Y6+/fzfuOroNZMGs5g31s1ZGXXtuVT5XBF+sS3+zP+ImXDofCmaFa0Au293qMVLdiRfkspgL/DAywhaVNrcuqmhsSBm/bD49LSo4si64UrN/wNCFVD1lai2oIIUErxTjfT5SSH1Jy5rGotDX3+ZghrB5lqUxem60cVQaR9/Lxqz1zvnxNp1tZLUuISLRBNnNzz4e4u8awt3quNdRv0G2bs6MdSi6VdGNd+wS/q9cJZ+xCkltv67HMp1fdW2VCS/D44WIXFdFW8aGxU8OLdAc/6F38cK8xuJcDT5U+tsiTdc6zndYOiLzi/bnoKyitSy+Ulc80qwbEy5ndidgQoVQMaYsuDKyNHh0cJAZGtln+hQ96HGgACixivqUhnCuUXKAczWZSL1xbqB11GeSgCpnNm+hdqTlVgqU7xDGYwV6aV/nOspJRy3Jk7A+hHoR00x1WuPbOrtTDgsKZCxqmyXlHIaklThAQ+1BADWGsgHSGMoG4AhlA6ClrCS90IoosiQEfzoHSF4rpKikcDKRuEa+HFgy4r3WG1FvRL0R9UbUG9HgCBihLzMvRlPUcoplJRlSV1IeGsyBx6Yhg8bGMz5oVQQon/C4UmCkcV7sEfMwMb9643hqDvypBnmNciigtBjixFRYDFnbrMJGQF4HAVHm+LRWZPFwnfJaENaHSC/abgYvb6CI9NlOxmGFz8cpSKQz5S1wWscwaH3iW7AM7Y34myUwj2qjOVoUdLwrkbgUPdIJL8qFDLEIylSSV8IFKO0Flhe1DVixCNy0yPHGKupXxq8FBFg2z4D+Xy1buQCFi1t/1iDQSV6mTGgtgxo+qS2gFyeBXpwEJ+gkB0snLfHGEyaXL8OJMJjB8qiRVoxR6kocAVg+n5+GHnE+/VFbgshrC0EvrXVYxVpwi7Xwp1gLfqsxg51dyUBSMueXzxvzSecDYxAE5PSvOyv98/4Xqfl8S//lCzQAgAMIr9aD63MSnshcjTzF3Sx20kCOhrUiiSJ8xShIs4cLlgI9BMQyZgIJCNTI/dWOCZQNardUIx2dgxi3OkAWmzOdWoQdkHus/WVpGnlqLPoIAVZzLDGRcEn6M0AjHz5H7cZUGaDuRPCAZrFWf7W4A1W4mifM1aTpsCBwOQ4EqVfpQIHQ52EvAdCiUHdUZWqepdxWhA/RwwCQDA1Z6nN6CSRaVHIh0ST1MnIVwleIOaRKQao9DmGQ0krcFCFKFuiM4knAYrVcZmjwlWOq5FeOIQgBfZ8ZVhKmIiTpT4QKf+IQlF63JB2dg5h2ErBYbE4lIko8yLxWQ+TQLJUcUwPoE8SlcdFTEN1eZDFxiKLoEUVBdFu2kkJ4xqBJ0wFEHYwZouRnXBJEZC8DuCy6m7pDnIRnKcGB1jqIk7GD7fO6gsXmqhKhpZ4Gh7QaUDoJQAGQyX9KefTH0xlBxpckTAMA+PHZ+TAA+MlWdv/1r4HV4XVaAGBAAwAo4H/EzAhekV682AoobA6Dds0L4ogXsU9YaTXjg7CGVJKZshT0V8hhZwVpiBerVUbEnFhiqkRtHpRG+QSCyo3MoMi5o7ukBoZeZHiY1ipZqoOVOkxFD5gjsC4pYaCMg4g8iT9XYn6FVZkCK89OeVKNNG0eFD4G4nakAW6aK7rL7AFbh8IBKJbT8qukGpgn8Ct4eBQitsL4XgcEvK9tgMKJ3bjjdjgVndjOtMPIiDAxbpxgvNREhTMgngTQDsoAQfHT8bTyQkP+qKhRAa44y8TuVWb0fsuSrL+Lc12WGfNflrNvuKw3sjjZSB0Phgm0UhMZoI2uAv4LizlK5lDIeq3LmoTP2sqKSrqChgzEwqCTCslf66aGrry2oANtTRV5z8ZzL+rpKmlq6whKOiCOLXRM6devqKweu+dJn2dNdf1ANjqUUXZeMlXk3EtqHj2rOpJX1JNvu21YnwGDJk07cmzXsemsunPCmZsOVNbUEFxqbfoY5Ax4NGrQgDF5A558WJ/UkdGpJraVCaNDir9RY+UdGEVtn31rdlxmH5Wfy79pz3FC0XMkm951DHjD+C+TWo7wTQAAAA==) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-latin-ext-900-normal-3cff82a5.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(./inter-latin-900-normal-f2db7f82.woff2) format("woff2"),url(./inter-all-900-normal-50daf4f1.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@keyframes slideOut{0%{transform:translate(10rem)}to{transform:translate(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}*{scrollbar-width:thick;scrollbar-color:var(--scrollbar-color) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-color);border-radius:8px;border:2px solid var(--scrollbar-color)}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-color-hover);border:2px solid var(--scrollbar-color-hover)}::-webkit-scrollbar-button{background:transparent}@media (max-width: 600px){#root .app-content{padding:5px}#root .app-content .site-header{position:fixed;display:flex;height:100px;z-index:1}#root .app-content .site-header .site-header-left-side{position:absolute;display:flex;min-width:145px;float:left;padding-left:0}#root .app-content .site-header .site-header-right-side{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;grid-template-rows:25px 25px 25px;grid-template-areas:"logoSpace logoSpace logoSpace sampler sampler sampler" "status status status status status status" "btn1 btn2 btn3 btn4 btn5 btn6";row-gap:15px}#root .app-content .site-header .site-header-right-side .chakra-popover__popper{grid-area:logoSpace}#root .app-content .site-header .site-header-right-side>:nth-child(1).chakra-text{grid-area:status;width:100%;display:flex;justify-content:center}#root .app-content .site-header .site-header-right-side>:nth-child(2){grid-area:sampler;display:flex;justify-content:center;align-items:center}#root .app-content .site-header .site-header-right-side>:nth-child(2) select{width:185px;margin-top:10px}#root .app-content .site-header .site-header-right-side>:nth-child(2) .chakra-select__icon-wrapper{right:10px}#root .app-content .site-header .site-header-right-side>:nth-child(2) .chakra-select__icon-wrapper svg{margin-top:10px}#root .app-content .site-header .site-header-right-side>:nth-child(3){grid-area:btn1}#root .app-content .site-header .site-header-right-side>:nth-child(4){grid-area:btn2}#root .app-content .site-header .site-header-right-side>:nth-child(6){grid-area:btn3}#root .app-content .site-header .site-header-right-side>:nth-child(7){grid-area:btn4}#root .app-content .site-header .site-header-right-side>:nth-child(8){grid-area:btn5}#root .app-content .site-header .site-header-right-side>:nth-child(9){grid-area:btn6}#root .app-content .app-tabs{position:fixed;display:flex;flex-direction:column;row-gap:15px;max-width:100%;overflow:hidden;margin-top:120px}#root .app-content .app-tabs .app-tabs-list{display:flex;justify-content:space-between}#root .app-content .app-tabs .app-tabs-panels{overflow:hidden;overflow-y:scroll}#root .app-content .app-tabs .app-tabs-panels .workarea-main{display:grid;grid-template-areas:"workarea" "options" "gallery";row-gap:15px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper{grid-area:options;width:100%;max-width:100%;height:inherit;overflow:inherit;padding:0 10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper .main-settings-row,#root .app-content .app-tabs .app-tabs-panels .workarea-main .parameters-panel-wrapper .advanced-parameters-item{max-width:100%}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper{grid-area:workarea}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .workarea-split-view{display:flex;flex-direction:column}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .current-image-options{column-gap:3px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .text-to-image-area{padding:0}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .current-image-preview{height:430px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .image-upload-button{row-gap:10px;padding:5px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .image-upload-button svg{width:2rem;height:2rem;margin-top:10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .inpainting-settings{display:flex;flex-wrap:wrap;row-gap:10px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .workarea-children-wrapper .inpainting-canvas-area .konvajs-content{height:400px!important}#root .app-content .app-tabs .app-tabs-panels .workarea-main .image-gallery-wrapper{grid-area:gallery;min-height:400px}#root .app-content .app-tabs .app-tabs-panels .workarea-main .image-gallery-wrapper .image-gallery-popup{width:100%!important;max-width:100%!important}}.settings-modal{max-height:36rem;font-family:Inter}.settings-modal .settings-modal-content{display:grid;row-gap:2rem;overflow-y:scroll}.settings-modal .settings-modal-header{font-weight:700}.settings-modal .settings-modal-items{display:grid;row-gap:.5rem}.settings-modal .settings-modal-items .settings-modal-item{display:grid;grid-auto-flow:column;background-color:var(--background-color);padding:.4rem 1rem;border-radius:.5rem;align-items:center;width:100%}.settings-modal .settings-modal-reset{display:grid;row-gap:1rem}.add-model-modal{display:flex}.add-model-modal-body{display:flex;flex-direction:column;row-gap:1rem;padding-bottom:2rem}.add-model-form{display:flex;flex-direction:column;row-gap:.5rem}.hotkeys-modal{width:36rem;max-width:36rem;display:grid;padding:1rem;row-gap:1rem;font-family:Inter}.hotkeys-modal h1{font-size:1.2rem;font-weight:700}.hotkeys-modal h2{font-weight:700}.hotkeys-modal-button{display:flex;align-items:center;justify-content:space-between}.hotkeys-modal-items{max-height:36rem;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.hotkeys-modal-items::-webkit-scrollbar{display:none}.hotkeys-modal-items .chakra-accordion{display:grid;row-gap:.5rem}.hotkeys-modal-items .chakra-accordion__item{border:none;border-radius:.3rem;background-color:var(--tab-hover-color)}.hotkeys-modal-items button{border-radius:.3rem}.hotkeys-modal-items button[aria-expanded=true]{background-color:var(--tab-hover-color);border-radius:.3rem}.hotkey-modal-category{display:grid;row-gap:.5rem}.hotkey-modal-item{display:grid;grid-template-columns:auto max-content;justify-content:space-between;align-items:center;background-color:var(--background-color);padding:.5rem 1rem;border-radius:.3rem}.hotkey-modal-item .hotkey-info{display:grid}.hotkey-modal-item .hotkey-info .hotkey-title{font-weight:700}.hotkey-modal-item .hotkey-info .hotkey-description{font-size:.9rem;color:var(--text-color-secondary)}.hotkey-modal-item .hotkey-key{font-size:.8rem;font-weight:700;background-color:var(--background-color-light);padding:.2rem .5rem;border-radius:.3rem}.console{width:100vw;display:flex;flex-direction:column;background:var(--console-bg-color);overflow:auto;direction:column;font-family:monospace;padding:0 1rem 1rem 3rem;border-top-width:.3rem;border-color:var(--resizeable-handle-border-color)}.console .console-info-color{color:var(--error-level-info)}.console .console-warning-color{color:var(--error-level-warning)}.console .console-error-color{color:var(--status-bad-color)}.console .console-entry{display:flex;column-gap:.5rem}.console .console-entry .console-timestamp{font-weight:semibold}.console .console-entry .console-message{word-break:break-all}.console-toggle-icon-button{background:var(--console-icon-button-bg-color);position:fixed;left:.5rem;bottom:.5rem;z-index:10000}.console-toggle-icon-button:hover{background:var(--console-icon-button-bg-color-hover)}.console-toggle-icon-button[data-error-seen=true],.console-toggle-icon-button[data-error-seen=true]:hover{background:var(--status-bad-color)}.console-autoscroll-icon-button{background:var(--console-icon-button-bg-color);position:fixed;left:.5rem;bottom:3rem;z-index:10000}.console-autoscroll-icon-button:hover{background:var(--console-icon-button-bg-color-hover)}.console-autoscroll-icon-button[data-autoscroll-enabled=true]{background:var(--accent-color)}.console-autoscroll-icon-button[data-autoscroll-enabled=true]:hover{background:var(--accent-color-hover)}.main-settings,.main-settings-list{display:grid;row-gap:1rem}.main-settings-row{display:grid;grid-template-columns:repeat(3,auto);column-gap:.5rem;max-width:22.5rem}.main-settings-block{border-radius:.5rem;display:grid!important;grid-template-columns:auto!important;row-gap:.5rem}.main-settings-block .invokeai__number-input-form-label,.main-settings-block .invokeai__select-label{font-weight:700;font-size:.9rem!important}.main-settings-block .invokeai__select-label{margin:0}.inpainting-bounding-box-settings{display:flex;flex-direction:column;border-radius:.4rem;border:2px solid var(--tab-color)}.inpainting-bounding-box-header{background-color:var(--tab-color);display:flex;flex-direction:row;justify-content:space-between;padding:.5rem 1rem;border-radius:.3rem .3rem 0 0;align-items:center}.inpainting-bounding-box-header button{width:.5rem;height:1.2rem;background:none}.inpainting-bounding-box-header button:hover{background:none}.inpainting-bounding-box-settings-items{padding:1rem;display:flex;flex-direction:column;row-gap:1rem}.inpainting-bounding-box-settings-items .inpainting-bounding-box-reset-icon-btn{background-color:var(--btn-base-color)}.inpainting-bounding-box-settings-items .inpainting-bounding-box-reset-icon-btn:hover{background-color:var(--btn-base-color-hover)}.inpainting-bounding-box-dimensions-slider-numberinput{display:grid;grid-template-columns:repeat(3,auto);column-gap:1rem}.inpainting-bounding-box-darken{width:max-content}.current-image-area{display:flex;flex-direction:column;height:100%;row-gap:1rem;background-color:var(--background-color-secondary);border-radius:.5rem}.current-image-preview{position:relative;justify-content:center;align-items:center;display:flex;width:100%;height:100%}.current-image-preview img{border-radius:.5rem;object-fit:contain;max-width:100%;max-height:100%;height:auto;position:absolute}.current-image-metadata{grid-area:current-image-preview}.current-image-next-prev-buttons{grid-area:current-image-content;display:flex;justify-content:space-between;z-index:1;height:100%;width:100%;pointer-events:none}.next-prev-button-trigger-area{width:7rem;height:100%;width:15%;display:grid;align-items:center;pointer-events:auto}.next-prev-button-trigger-area.prev-button-trigger-area{justify-content:flex-start}.next-prev-button-trigger-area.next-button-trigger-area{justify-content:flex-end}.next-prev-button{font-size:4rem;fill:var(--white);filter:drop-shadow(0 0 1rem var(--text-color-secondary));opacity:70%}.current-image-display-placeholder{background-color:var(--background-color-secondary);display:grid;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:.5rem}.current-image-display-placeholder svg{width:10rem;height:10rem;color:var(--svg-color)}.current-image-options{width:100%;display:flex;justify-content:center;align-items:center;column-gap:.5em}.current-image-options .current-image-send-to-popover,.current-image-options .current-image-postprocessing-popover{display:flex;flex-direction:column;row-gap:.5rem;max-width:25rem}.current-image-options .current-image-send-to-popover .invokeai__button{place-content:start}.current-image-options .chakra-popover__popper{z-index:11}.current-image-options .delete-image-btn{background-color:var(--btn-base-color)}.current-image-options .delete-image-btn svg{fill:var(--btn-delete-image)}.image-gallery-wrapper-enter{transform:translate(150%)}.image-gallery-wrapper-enter-active{transform:translate(0);transition:all .12s ease-out}.image-gallery-wrapper-exit{transform:translate(0)}.image-gallery-wrapper-exit-active{transform:translate(150%);transition:all .12s ease-out}.image-gallery-wrapper[data-pinned=false]{position:fixed;height:100vh;top:0;right:0}.image-gallery-wrapper[data-pinned=false] .image-gallery-popup{border-radius:0;box-shadow:0 0 1rem var(--text-color-a3)}.image-gallery-wrapper[data-pinned=false] .image-gallery-popup .image-gallery-container{max-height:calc(100vh + 4.7rem)}.image-gallery-wrapper .image-gallery-popup{background-color:var(--background-color-secondary);padding:1rem;display:flex;flex-direction:column;row-gap:1rem;border-radius:.5rem;border-left-width:.3rem;border-color:var(--tab-list-text-inactive)}.image-gallery-wrapper .image-gallery-popup[data-resize-alert=true]{border-color:var(--status-bad-color)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header{display:flex;align-items:center;column-gap:.5rem;justify-content:space-between}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-header-right-icons{display:flex;flex-direction:row;column-gap:.5rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-icon-btn{background-color:var(--btn-load-more)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-icon-btn:hover{background-color:var(--btn-load-more-hover)}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-settings-popover{display:flex;flex-direction:column;row-gap:.5rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-header .image-gallery-settings-popover div{display:flex;column-gap:.5rem;align-items:center;justify-content:space-between}.image-gallery-wrapper .image-gallery-popup .image-gallery-header h1{font-weight:700}.image-gallery-wrapper .image-gallery-popup .image-gallery-container{display:flex;flex-direction:column;max-height:calc(100vh - (70px + 7rem));overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.image-gallery-wrapper .image-gallery-popup .image-gallery-container::-webkit-scrollbar{display:none}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder{display:flex;flex-direction:column;row-gap:.5rem;background-color:var(--background-color);border-radius:.5rem;place-items:center;padding:2rem;text-align:center}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder p{color:var(--subtext-color-bright);font-family:Inter}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-container-placeholder svg{width:4rem;height:4rem;color:var(--svg-color)}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn{background-color:var(--btn-load-more);font-size:.85rem;padding:.5rem;margin-top:1rem}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn:disabled:hover{background-color:var(--btn-load-more)}.image-gallery-wrapper .image-gallery-popup .image-gallery-container .image-gallery-load-more-btn:hover{background-color:var(--btn-load-more-hover)}.image-gallery-category-btn-group{width:max-content;column-gap:0;justify-content:stretch}.image-gallery-category-btn-group button{background-color:var(--btn-base-color);flex-grow:1}.image-gallery-category-btn-group button:hover{background-color:var(--btn-base-color-hover)}.image-gallery-category-btn-group button[data-selected=true]{background-color:var(--accent-color)}.image-gallery-category-btn-group button[data-selected=true]:hover{background-color:var(--accent-color-hover)}.image-gallery{display:grid;grid-gap:.5rem}.image-gallery .hoverable-image{padding:.5rem;position:relative}.image-gallery .hoverable-image:before{content:"";display:block;padding-bottom:100%}.image-gallery .hoverable-image .hoverable-image-image{position:absolute;max-width:100%;top:50%;left:50%;transform:translate(-50%,-50%)}.hoverable-image{display:flex;justify-content:center;transition:transform .2s ease-out}.hoverable-image:hover{cursor:pointer;border-radius:.5rem;z-index:2}.hoverable-image .hoverable-image-image{width:100%;height:100%;max-width:100%;max-height:100%}.hoverable-image .hoverable-image-delete-button{position:absolute;top:.25rem;right:.25rem}.hoverable-image .hoverable-image-content{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;align-items:center;justify-content:center}.hoverable-image .hoverable-image-content .hoverable-image-check{fill:var(--status-good-color)}.hoverable-image .hoverable-image-icons{position:absolute;bottom:-2rem;display:grid;width:min-content;grid-template-columns:repeat(2,max-content);border-radius:.4rem;background-color:var(--background-color-secondary);padding:.2rem;gap:.2rem;grid-auto-rows:max-content}.hoverable-image .hoverable-image-icons button{width:12px;height:12px;border-radius:.2rem;padding:10px 0;flex-shrink:2}.hoverable-image .hoverable-image-icons button svg{width:12px;height:12px}.hoverable-image-context-menu{z-index:15;padding:.4rem;border-radius:.25rem;background-color:var(--context-menu-bg-color);box-shadow:var(--context-menu-box-shadow)}.hoverable-image-context-menu [role=menuitem]{font-size:.8rem;line-height:1rem;border-radius:3px;display:flex;align-items:center;height:1.75rem;padding:0 .5rem;position:relative;user-select:none;cursor:pointer;outline:none}.hoverable-image-context-menu [role=menuitem][data-disabled]{color:gray;pointer-events:none;cursor:not-allowed}.hoverable-image-context-menu [role=menuitem][data-warning]{color:var(--status-bad-color)}.hoverable-image-context-menu [role=menuitem][data-highlighted]{background-color:var(--context-menu-bg-color-hover)}.image-metadata-viewer{position:absolute;top:0;width:100%;border-radius:.5rem;padding:1rem;background-color:var(--metadata-bg-color);overflow:scroll;max-height:calc(100vh - (70px + 5.4rem));height:100%;z-index:10}.image-json-viewer{border-radius:.5rem;margin:0 .5rem 1rem;padding:1rem;overflow-x:scroll;word-break:break-all;background-color:var(--metadata-json-bg-color)}.lightbox-container{width:100%;height:100%;color:var(--text-color);overflow:hidden;position:absolute;left:0;top:0;background-color:var(--background-color-secondary);z-index:30;animation:popIn .3s ease-in}.lightbox-container .image-gallery-wrapper{max-height:100%!important}.lightbox-container .image-gallery-wrapper .image-gallery-container{max-height:calc(100vh - 5rem)}.lightbox-container .current-image-options{z-index:2;position:absolute;top:1rem}.lightbox-container .image-metadata-viewer{left:0;max-height:100%}.lightbox-close-btn{z-index:3;position:absolute;left:1rem;top:1rem}.lightbox-display-container{display:flex;flex-direction:row}.lightbox-preview-wrapper{overflow:hidden;background-color:var(--background-color-secondary);display:grid;grid-template-columns:auto max-content;place-items:center;width:100vw;height:100vh}.lightbox-preview-wrapper .current-image-next-prev-buttons{position:absolute}.lightbox-preview-wrapper .lightbox-image{grid-area:lightbox-content;border-radius:.5rem}.lightbox-preview-wrapper .lightbox-image-options{position:absolute;z-index:2;left:1rem;top:4.5rem;user-select:none;border-radius:.5rem;display:flex;flex-direction:column;row-gap:.5rem}@keyframes popIn{0%{opacity:0;filter:blur(100)}to{opacity:1;filter:blur(0)}}.workarea-wrapper{position:relative;width:100%;height:100%}.workarea-wrapper .workarea-main{display:flex;column-gap:1rem;height:100%}.workarea-wrapper .workarea-main .workarea-children-wrapper{position:relative;width:100%;height:100%}.workarea-wrapper .workarea-main .workarea-split-view{width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;background-color:var(--background-color-secondary);border-radius:.5rem}.workarea-wrapper .workarea-main .workarea-split-view .workarea-split-view-left{padding-right:.5rem}.workarea-wrapper .workarea-main .workarea-split-view .workarea-split-view-right{padding-left:.5rem}.workarea-wrapper .workarea-main .workarea-single-view{width:100%;height:100%;background-color:var(--background-color-secondary);border-radius:.5rem}.workarea-wrapper .workarea-main .workarea-split-view-left,.workarea-wrapper .workarea-main .workarea-split-view-right{display:flex;flex-direction:column;height:100%;width:100%;row-gap:1rem;background-color:var(--background-color-secondary);border-radius:.5rem;padding:1rem}.workarea-split-button{position:absolute;cursor:pointer;padding:.5rem;top:0;right:0}.workarea-split-button[data-selected=true]{top:0;right:0}.workarea-split-button[data-selected=true] svg{opacity:1}.workarea-split-button svg{opacity:.5}.parameters-panel-wrapper-enter{transform:translate(-150%)}.parameters-panel-wrapper-enter-active{transform:translate(0);transition:all .12s ease-out}.parameters-panel-wrapper-exit{transform:translate(0)}.parameters-panel-wrapper-exit-active{transform:translate(-150%);transition:all .12s ease-out}.parameters-panel-wrapper{background-color:var(--background-color);height:calc(100vh - (70px + 1rem));width:22.5rem;max-width:22.5rem;flex-shrink:0;position:relative;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.parameters-panel-wrapper::-webkit-scrollbar{display:none}.parameters-panel-wrapper .parameters-panel{display:flex;flex-direction:column;row-gap:.5rem;height:100%;-ms-overflow-style:none;scrollbar-width:none;background-color:var(--background-color)}.parameters-panel-wrapper .parameters-panel::-webkit-scrollbar{display:none}.parameters-panel-wrapper[data-pinned=false]{z-index:20;position:fixed;top:0;left:0;filter:var(--floating-panel-drop-shadow);width:24.5rem;max-width:24.5rem;height:100%}.parameters-panel-wrapper[data-pinned=false] .parameters-panel-margin{margin:1rem}.parameters-panel-wrapper .parameters-panel-pin-button{position:absolute;cursor:pointer;padding:.5rem;top:1rem;right:1rem;z-index:20}.parameters-panel-wrapper .parameters-panel-pin-button[data-selected=true]{top:0;right:0}.parameters-panel-wrapper .parameters-panel-pin-button svg{opacity:.5}.invoke-ai-logo-wrapper{display:flex;align-items:center;column-gap:.7rem;padding-left:.5rem;padding-top:.3rem}.invoke-ai-logo-wrapper img{width:32px;height:32px}.invoke-ai-logo-wrapper h1{font-size:1.4rem}.image-to-image-area{display:flex;flex-direction:column;row-gap:1rem;width:100%;height:100%}.image-to-image-strength-main-option{display:flex;row-gap:.5rem!important}.image-to-image-strength-main-option .invokeai__slider-component-label{color:var(--text-color-secondary);font-size:.9rem!important}.init-image-preview-header{display:flex;align-items:center;justify-content:space-between;width:100%}.init-image-preview-header h2{font-weight:700;font-size:.9rem}.init-image-preview{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center}.init-image-preview img{border-radius:.5rem;object-fit:contain;position:absolute}.image-to-image-current-image-display{position:relative}.inpainting-main-area{display:flex;flex-direction:column;align-items:center;row-gap:1rem;width:100%;height:100%}.inpainting-main-area .inpainting-settings{display:flex;align-items:center;column-gap:.5rem}.inpainting-main-area .inpainting-settings svg{transform:scale(.9)}.inpainting-main-area .inpainting-settings .inpainting-buttons-group{display:flex;align-items:center;column-gap:.5rem}.inpainting-main-area .inpainting-settings .inpainting-button-dropdown{display:flex;flex-direction:column;row-gap:.5rem}.inpainting-main-area .inpainting-settings .inpainting-color-picker{margin-left:1rem}.inpainting-main-area .inpainting-settings .inpainting-brush-options{display:flex;align-items:center;column-gap:1rem}.inpainting-canvas-area{display:flex;flex-direction:column;align-items:center;justify-content:center;row-gap:1rem;width:100%;height:100%}.inpainting-canvas-spiner{display:flex;align-items:center;width:100%;height:100%}.inpainting-canvas-container{display:flex;position:relative;height:100%;width:100%;border-radius:.5rem}.inpainting-canvas-wrapper{position:relative}.inpainting-canvas-stage{outline:none;border-radius:.5rem;box-shadow:0 0 0 1px var(--border-color-light);overflow:hidden}.inpainting-canvas-stage canvas{outline:none;border-radius:.5rem}.inpainting-options-btn{min-height:2rem}.canvas-status-text{position:absolute;top:0;left:0;background-color:var(--background-color);opacity:.65;display:flex;flex-direction:column;font-size:.8rem;padding:.25rem;min-width:12rem;border-radius:.25rem;margin:.25rem;pointer-events:none}.invokeai__color-picker .react-colorful__hue-pointer,.invokeai__color-picker .react-colorful__saturation-pointer{width:1.5rem;height:1.5rem;border-color:var(--white)}.dropzone-container{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:999;backdrop-filter:blur(20px)}.dropzone-container .dropzone-overlay{opacity:.5;width:100%;height:100%;display:flex;flex-direction:column;row-gap:1rem;align-items:center;justify-content:center;background-color:var(--background-color)}.dropzone-container .dropzone-overlay.is-drag-accept{box-shadow:inset 0 0 20rem 1rem var(--accent-color)}.dropzone-container .dropzone-overlay.is-drag-reject{box-shadow:inset 0 0 20rem 1rem var(--status-bad-color)}.dropzone-container .dropzone-overlay.is-handling-upload{box-shadow:inset 0 0 20rem 1rem var(--status-working-color)}.image-uploader-button-outer{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:.5rem;color:var(--tab-list-text-inactive);background-color:var(--background-color)}.image-uploader-button-outer:hover{background-color:var(--background-color-light)}.image-upload-button-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.image-upload-button{display:flex;flex-direction:column;row-gap:2rem;align-items:center;justify-content:center;text-align:center}.image-upload-button svg{width:4rem;height:4rem}.image-upload-button h2{font-size:1.2rem}.work-in-progress{display:grid;width:100%;height:calc(100vh - (70px + 1rem));grid-auto-rows:max-content;background-color:var(--background-color-secondary);border-radius:.4rem;place-content:center;place-items:center;row-gap:1rem}.work-in-progress h1{font-size:2rem;font-weight:700}.work-in-progress p{text-align:center;max-width:50rem;color:var(--subtext-color-bright)}.guide-popover-arrow{background-color:var(--tab-panel-bg);box-shadow:none}.guide-popover-content{background-color:var(--background-color-secondary);border:none}.guide-popover-guide-content{background:var(--tab-panel-bg);border:2px solid var(--tab-hover-color);border-radius:.4rem;padding:.75rem 1rem;display:grid;grid-template-rows:repeat(auto-fill,1fr);grid-row-gap:.5rem;justify-content:space-between}.modal{background-color:var(--background-color-secondary);color:var(--text-color);font-family:Inter}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{-ms-overflow-style:none;scrollbar-width:none;background-color:var(--root-bg-color);overflow:hidden}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none} diff --git a/invokeai/frontend/web/dist/assets/index-4543bfbe.js b/invokeai/frontend/web/dist/assets/index-4543bfbe.js new file mode 100644 index 0000000000..342d7dd933 --- /dev/null +++ b/invokeai/frontend/web/dist/assets/index-4543bfbe.js @@ -0,0 +1,624 @@ +function Ij(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var Co=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function T7(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g={},uJ={get exports(){return g},set exports(e){g=e}},Y3={},S={},cJ={get exports(){return S},set exports(e){S=e}},tn={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Yy=Symbol.for("react.element"),dJ=Symbol.for("react.portal"),fJ=Symbol.for("react.fragment"),hJ=Symbol.for("react.strict_mode"),pJ=Symbol.for("react.profiler"),gJ=Symbol.for("react.provider"),mJ=Symbol.for("react.context"),vJ=Symbol.for("react.forward_ref"),yJ=Symbol.for("react.suspense"),bJ=Symbol.for("react.memo"),xJ=Symbol.for("react.lazy"),TT=Symbol.iterator;function SJ(e){return e===null||typeof e!="object"?null:(e=TT&&e[TT]||e["@@iterator"],typeof e=="function"?e:null)}var Rj={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Dj=Object.assign,jj={};function u0(e,t,n){this.props=e,this.context=t,this.refs=jj,this.updater=n||Rj}u0.prototype.isReactComponent={};u0.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};u0.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Nj(){}Nj.prototype=u0.prototype;function M7(e,t,n){this.props=e,this.context=t,this.refs=jj,this.updater=n||Rj}var L7=M7.prototype=new Nj;L7.constructor=M7;Dj(L7,u0.prototype);L7.isPureReactComponent=!0;var MT=Array.isArray,$j=Object.prototype.hasOwnProperty,A7={current:null},Fj={key:!0,ref:!0,__self:!0,__source:!0};function Bj(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)$j.call(t,r)&&!Fj.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(10?qi(c0,--na):0,Bm--,oi===10&&(Bm=1,Z3--),oi}function Ta(){return oi=na2||iy(oi)>3?"":" "}function VJ(e,t){for(;--t&&Ta()&&!(oi<48||oi>102||oi>57&&oi<65||oi>70&&oi<97););return Xy(e,Rx()+(t<6&&Gl()==32&&Ta()==32))}function C6(e){for(;Ta();)switch(oi){case e:return na;case 34:case 39:e!==34&&e!==39&&C6(oi);break;case 40:e===41&&C6(e);break;case 92:Ta();break}return na}function UJ(e,t){for(;Ta()&&e+oi!==47+10;)if(e+oi===42+42&&Gl()===47)break;return"/*"+Xy(t,na-1)+"*"+X3(e===47?e:Ta())}function GJ(e){for(;!iy(Gl());)Ta();return Xy(e,na)}function qJ(e){return qj(jx("",null,null,null,[""],e=Gj(e),0,[0],e))}function jx(e,t,n,r,i,o,a,s,l){for(var u=0,d=0,h=a,m=0,y=0,b=0,w=1,E=1,_=1,k=0,P="",L=i,O=o,D=r,R=P;E;)switch(b=k,k=Ta()){case 40:if(b!=108&&qi(R,h-1)==58){w6(R+=Pn(Dx(k),"&","&\f"),"&\f")!=-1&&(_=-1);break}case 34:case 39:case 91:R+=Dx(k);break;case 9:case 10:case 13:case 32:R+=WJ(b);break;case 92:R+=VJ(Rx()-1,7);continue;case 47:switch(Gl()){case 42:case 47:yb(KJ(UJ(Ta(),Rx()),t,n),l);break;default:R+="/"}break;case 123*w:s[u++]=Nl(R)*_;case 125*w:case 59:case 0:switch(k){case 0:case 125:E=0;case 59+d:y>0&&Nl(R)-h&&yb(y>32?OT(R+";",r,n,h-1):OT(Pn(R," ","")+";",r,n,h-2),l);break;case 59:R+=";";default:if(yb(D=AT(R,t,n,u,d,i,s,P,L=[],O=[],h),o),k===123)if(d===0)jx(R,t,D,D,L,o,h,s,O);else switch(m===99&&qi(R,3)===110?100:m){case 100:case 109:case 115:jx(e,D,D,r&&yb(AT(e,D,D,0,0,i,s,P,i,L=[],h),O),i,O,h,s,r?L:O);break;default:jx(R,D,D,D,[""],O,0,s,O)}}u=d=y=0,w=_=1,P=R="",h=a;break;case 58:h=1+Nl(R),y=b;default:if(w<1){if(k==123)--w;else if(k==125&&w++==0&&HJ()==125)continue}switch(R+=X3(k),k*w){case 38:_=d>0?1:(R+="\f",-1);break;case 44:s[u++]=(Nl(R)-1)*_,_=1;break;case 64:Gl()===45&&(R+=Dx(Ta())),m=Gl(),d=h=Nl(P=R+=GJ(Rx())),k++;break;case 45:b===45&&Nl(R)==2&&(w=0)}}return o}function AT(e,t,n,r,i,o,a,s,l,u,d){for(var h=i-1,m=i===0?o:[""],y=D7(m),b=0,w=0,E=0;b0?m[_]+" "+k:Pn(k,/&\f/g,m[_])))&&(l[E++]=P);return Q3(e,t,n,i===0?I7:s,l,u,d)}function KJ(e,t,n){return Q3(e,t,n,Hj,X3(zJ()),ry(e,2,-2),0)}function OT(e,t,n,r){return Q3(e,t,n,R7,ry(e,0,r),ry(e,r+1,-1),r)}function vm(e,t){for(var n="",r=D7(e),i=0;i6)switch(qi(e,t+1)){case 109:if(qi(e,t+4)!==45)break;case 102:return Pn(e,/(.+:)(.+)-([^]+)/,"$1"+Sn+"$2-$3$1"+SS+(qi(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~w6(e,"stretch")?Yj(Pn(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(qi(e,t+1)!==115)break;case 6444:switch(qi(e,Nl(e)-3-(~w6(e,"!important")&&10))){case 107:return Pn(e,":",":"+Sn)+e;case 101:return Pn(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Sn+(qi(e,14)===45?"inline-":"")+"box$3$1"+Sn+"$2$3$1"+io+"$2box$3")+e}break;case 5936:switch(qi(e,t+11)){case 114:return Sn+e+io+Pn(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Sn+e+io+Pn(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Sn+e+io+Pn(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Sn+e+io+e+e}return e}var ree=function(t,n,r,i){if(t.length>-1&&!t.return)switch(t.type){case R7:t.return=Yj(t.value,t.length);break;case Wj:return vm([Rv(t,{value:Pn(t.value,"@","@"+Sn)})],i);case I7:if(t.length)return BJ(t.props,function(o){switch(FJ(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return vm([Rv(t,{props:[Pn(o,/:(read-\w+)/,":"+SS+"$1")]})],i);case"::placeholder":return vm([Rv(t,{props:[Pn(o,/:(plac\w+)/,":"+Sn+"input-$1")]}),Rv(t,{props:[Pn(o,/:(plac\w+)/,":"+SS+"$1")]}),Rv(t,{props:[Pn(o,/:(plac\w+)/,io+"input-$1")]})],i)}return""})}},iee=[ree],Xj=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(w){var E=w.getAttribute("data-emotion");E.indexOf(" ")!==-1&&(document.head.appendChild(w),w.setAttribute("data-s",""))})}var i=t.stylisPlugins||iee,o={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(w){for(var E=w.getAttribute("data-emotion").split(" "),_=1;_=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var mee={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},vee=/[A-Z]|^ms/g,yee=/_EMO_([^_]+?)_([^]*?)_EMO_/g,nN=function(t){return t.charCodeAt(1)===45},DT=function(t){return t!=null&&typeof t!="boolean"},p5=Kj(function(e){return nN(e)?e:e.replace(vee,"-$&").toLowerCase()}),jT=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(yee,function(r,i,o){return $l={name:i,styles:o,next:$l},i})}return mee[t]!==1&&!nN(t)&&typeof n=="number"&&n!==0?n+"px":n};function oy(e,t,n){if(n==null)return"";if(n.__emotion_styles!==void 0)return n;switch(typeof n){case"boolean":return"";case"object":{if(n.anim===1)return $l={name:n.name,styles:n.styles,next:$l},n.name;if(n.styles!==void 0){var r=n.next;if(r!==void 0)for(;r!==void 0;)$l={name:r.name,styles:r.styles,next:$l},r=r.next;var i=n.styles+";";return i}return bee(e,t,n)}case"function":{if(e!==void 0){var o=$l,a=n(e);return $l=o,oy(e,t,a)}break}}if(t==null)return n;var s=t[n];return s!==void 0?s:n}function bee(e,t,n){var r="";if(Array.isArray(n))for(var i=0;ig.jsx(uw,{styles:aN}),Tee=()=>g.jsx(uw,{styles:` + html { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + font-family: system-ui, sans-serif; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + touch-action: manipulation; + } + + body { + position: relative; + min-height: 100%; + font-feature-settings: 'kern'; + } + + *, + *::before, + *::after { + border-width: 0; + border-style: solid; + box-sizing: border-box; + } + + main { + display: block; + } + + hr { + border-top-width: 1px; + box-sizing: content-box; + height: 0; + overflow: visible; + } + + pre, + code, + kbd, + samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; + font-size: 1em; + } + + a { + background-color: transparent; + color: inherit; + text-decoration: inherit; + } + + abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + + b, + strong { + font-weight: bold; + } + + small { + font-size: 80%; + } + + sub, + sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + + sub { + bottom: -0.25em; + } + + sup { + top: -0.5em; + } + + img { + border-style: none; + } + + button, + input, + optgroup, + select, + textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; + } + + button, + input { + overflow: visible; + } + + button, + select { + text-transform: none; + } + + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; + } + + fieldset { + padding: 0.35em 0.75em 0.625em; + } + + legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; + } + + progress { + vertical-align: baseline; + } + + textarea { + overflow: auto; + } + + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; + padding: 0; + } + + [type="number"]::-webkit-inner-spin-button, + [type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none !important; + } + + input[type="number"] { + -moz-appearance: textfield; + } + + [type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; + } + + [type="search"]::-webkit-search-decoration { + -webkit-appearance: none !important; + } + + ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; + } + + details { + display: block; + } + + summary { + display: list-item; + } + + template { + display: none; + } + + [hidden] { + display: none !important; + } + + body, + blockquote, + dl, + dd, + h1, + h2, + h3, + h4, + h5, + h6, + hr, + figure, + p, + pre { + margin: 0; + } + + button { + background: transparent; + padding: 0; + } + + fieldset { + margin: 0; + padding: 0; + } + + ol, + ul { + margin: 0; + padding: 0; + } + + textarea { + resize: vertical; + } + + button, + [role="button"] { + cursor: pointer; + } + + button::-moz-focus-inner { + border: 0 !important; + } + + table { + border-collapse: collapse; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + font-size: inherit; + font-weight: inherit; + } + + button, + input, + optgroup, + select, + textarea { + padding: 0; + line-height: inherit; + color: inherit; + } + + img, + svg, + video, + canvas, + audio, + iframe, + embed, + object { + display: block; + } + + img, + video { + max-width: 100%; + height: auto; + } + + [data-js-focus-visible] :focus:not([data-focus-visible-added]):not([data-focus-visible-disabled]) { + outline: none; + box-shadow: none; + } + + select::-ms-expand { + display: none; + } + + ${aN} + `});function Mee(e,t){return`${e} returned \`undefined\`. Seems you forgot to wrap component within ${t}`}function Ln(e={}){const{name:t,strict:n=!0,hookName:r="useContext",providerName:i="Provider",errorMessage:o}=e,a=S.createContext(void 0);a.displayName=t;function s(){var l;const u=S.useContext(a);if(!u&&n){const d=new Error(o??Mee(r,i));throw d.name="ContextError",(l=Error.captureStackTrace)==null||l.call(Error,d,s),d}return u}return[a.Provider,s,a]}var[Lee,Aee]=Ln({strict:!1,name:"PortalManagerContext"});function sN(e){const{children:t,zIndex:n}=e;return g.jsx(Lee,{value:{zIndex:n},children:t})}sN.displayName="PortalManager";var ql=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:S.useEffect,Js={},Oee={get exports(){return Js},set exports(e){Js=e}},$a={},Oh={},Iee={get exports(){return Oh},set exports(e){Oh=e}},lN={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(e){function t(G,Y){var ee=G.length;G.push(Y);e:for(;0>>1,ke=G[fe];if(0>>1;fei(Ce,ee))Sei(Qe,Ce)?(G[fe]=Qe,G[Se]=ee,fe=Se):(G[fe]=Ce,G[xe]=ee,fe=xe);else if(Sei(Qe,ee))G[fe]=Qe,G[Se]=ee,fe=Se;else break e}}return Y}function i(G,Y){var ee=G.sortIndex-Y.sortIndex;return ee!==0?ee:G.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],u=[],d=1,h=null,m=3,y=!1,b=!1,w=!1,E=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(G){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=G)r(u),Y.sortIndex=Y.expirationTime,t(l,Y);else break;Y=n(u)}}function L(G){if(w=!1,P(G),!b)if(n(l)!==null)b=!0,X(O);else{var Y=n(u);Y!==null&&Q(L,Y.startTime-G)}}function O(G,Y){b=!1,w&&(w=!1,_(N),N=-1),y=!0;var ee=m;try{for(P(Y),h=n(l);h!==null&&(!(h.expirationTime>Y)||G&&!K());){var fe=h.callback;if(typeof fe=="function"){h.callback=null,m=h.priorityLevel;var ke=fe(h.expirationTime<=Y);Y=e.unstable_now(),typeof ke=="function"?h.callback=ke:h===n(l)&&r(l),P(Y)}else r(l);h=n(l)}if(h!==null)var we=!0;else{var xe=n(u);xe!==null&&Q(L,xe.startTime-Y),we=!1}return we}finally{h=null,m=ee,y=!1}}var D=!1,R=null,N=-1,W=5,B=-1;function K(){return!(e.unstable_now()-BG||125fe?(G.sortIndex=ee,t(u,G),n(l)===null&&G===n(u)&&(w?(_(N),N=-1):w=!0,Q(L,ee-fe))):(G.sortIndex=ke,t(l,G),b||y||(b=!0,X(O))),G},e.unstable_shouldYield=K,e.unstable_wrapCallback=function(G){var Y=m;return function(){var ee=m;m=Y;try{return G.apply(this,arguments)}finally{m=ee}}}})(lN);(function(e){e.exports=lN})(Iee);/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var uN=S,Oa=Oh;function ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),k6=Object.prototype.hasOwnProperty,Ree=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FT={},BT={};function Dee(e){return k6.call(BT,e)?!0:k6.call(FT,e)?!1:Ree.test(e)?BT[e]=!0:(FT[e]=!0,!1)}function jee(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Nee(e,t,n,r){if(t===null||typeof t>"u"||jee(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Lo(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var Xi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Xi[e]=new Lo(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Xi[t]=new Lo(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Xi[e]=new Lo(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Xi[e]=new Lo(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Xi[e]=new Lo(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Xi[e]=new Lo(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Xi[e]=new Lo(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Xi[e]=new Lo(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Xi[e]=new Lo(e,5,!1,e.toLowerCase(),null,!1,!1)});var B7=/[\-:]([a-z])/g;function z7(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(B7,z7);Xi[t]=new Lo(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(B7,z7);Xi[t]=new Lo(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(B7,z7);Xi[t]=new Lo(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Xi[e]=new Lo(e,1,!1,e.toLowerCase(),null,!1,!1)});Xi.xlinkHref=new Lo("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Xi[e]=new Lo(e,1,!1,e.toLowerCase(),null,!0,!0)});function H7(e,t,n,r){var i=Xi.hasOwnProperty(t)?Xi[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` +`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{m5=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?s1(e):""}function $ee(e){switch(e.tag){case 5:return s1(e.type);case 16:return s1("Lazy");case 13:return s1("Suspense");case 19:return s1("SuspenseList");case 0:case 2:case 15:return e=v5(e.type,!1),e;case 11:return e=v5(e.type.render,!1),e;case 1:return e=v5(e.type,!0),e;default:return""}}function M6(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case qg:return"Fragment";case Gg:return"Portal";case E6:return"Profiler";case W7:return"StrictMode";case P6:return"Suspense";case T6:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case fN:return(e.displayName||"Context")+".Consumer";case dN:return(e._context.displayName||"Context")+".Provider";case V7:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case U7:return t=e.displayName||null,t!==null?t:M6(e.type)||"Memo";case gd:t=e._payload,e=e._init;try{return M6(e(t))}catch{}}return null}function Fee(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return M6(t);case 8:return t===W7?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Gd(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function pN(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Bee(e){var t=pN(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function xb(e){e._valueTracker||(e._valueTracker=Bee(e))}function gN(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=pN(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function wS(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function L6(e,t){var n=t.checked;return Mr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function HT(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Gd(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function mN(e,t){t=t.checked,t!=null&&H7(e,"checked",t,!1)}function A6(e,t){mN(e,t);var n=Gd(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?O6(e,t.type,n):t.hasOwnProperty("defaultValue")&&O6(e,t.type,Gd(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function WT(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function O6(e,t,n){(t!=="number"||wS(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var l1=Array.isArray;function ym(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Sb.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ly(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var P1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zee=["Webkit","ms","Moz","O"];Object.keys(P1).forEach(function(e){zee.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),P1[t]=P1[e]})});function xN(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||P1.hasOwnProperty(e)&&P1[e]?(""+t).trim():t+"px"}function SN(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=xN(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Hee=Mr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function D6(e,t){if(t){if(Hee[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ze(62))}}function j6(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var N6=null;function G7(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var $6=null,bm=null,xm=null;function GT(e){if(e=Jy(e)){if(typeof $6!="function")throw Error(ze(280));var t=e.stateNode;t&&(t=pw(t),$6(e.stateNode,e.type,t))}}function wN(e){bm?xm?xm.push(e):xm=[e]:bm=e}function CN(){if(bm){var e=bm,t=xm;if(xm=bm=null,GT(e),t)for(e=0;e>>=0,e===0?32:31-(Jee(e)/ete|0)|0}var wb=64,Cb=4194304;function u1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ES(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=u1(s):(o&=a,o!==0&&(r=u1(o)))}else a=n&~i,a!==0?r=u1(a):o!==0&&(r=u1(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Zy(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ys(t),e[t]=n}function ite(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=M1),tM=String.fromCharCode(32),nM=!1;function WN(e,t){switch(e){case"keyup":return Ote.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function VN(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Kg=!1;function Rte(e,t){switch(e){case"compositionend":return VN(t);case"keypress":return t.which!==32?null:(nM=!0,tM);case"textInput":return e=t.data,e===tM&&nM?null:e;default:return null}}function Dte(e,t){if(Kg)return e==="compositionend"||!e9&&WN(e,t)?(e=zN(),$x=Z7=Cd=null,Kg=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=aM(n)}}function KN(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?KN(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function YN(){for(var e=window,t=wS();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=wS(e.document)}return t}function t9(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Vte(e){var t=YN(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&KN(n.ownerDocument.documentElement,n)){if(r!==null&&t9(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=sM(n,o);var a=sM(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Yg=null,V6=null,A1=null,U6=!1;function lM(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;U6||Yg==null||Yg!==wS(r)||(r=Yg,"selectionStart"in r&&t9(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),A1&&py(A1,r)||(A1=r,r=MS(V6,"onSelect"),0Qg||(e.current=Z6[Qg],Z6[Qg]=null,Qg--)}function or(e,t){Qg++,Z6[Qg]=e.current,e.current=t}var qd={},co=lf(qd),Xo=lf(!1),qh=qd;function Hm(e,t){var n=e.type.contextTypes;if(!n)return qd;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Zo(e){return e=e.childContextTypes,e!=null}function AS(){hr(Xo),hr(co)}function gM(e,t,n){if(co.current!==qd)throw Error(ze(168));or(co,t),or(Xo,n)}function i$(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ze(108,Fee(e)||"Unknown",i));return Mr({},n,r)}function OS(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||qd,qh=co.current,or(co,e),or(Xo,Xo.current),!0}function mM(e,t,n){var r=e.stateNode;if(!r)throw Error(ze(169));n?(e=i$(e,t,qh),r.__reactInternalMemoizedMergedChildContext=e,hr(Xo),hr(co),or(co,e)):hr(Xo),or(Xo,n)}var $u=null,gw=!1,A5=!1;function o$(e){$u===null?$u=[e]:$u.push(e)}function nne(e){gw=!0,o$(e)}function uf(){if(!A5&&$u!==null){A5=!0;var e=0,t=jn;try{var n=$u;for(jn=1;e>=a,i-=a,zu=1<<32-Ys(t)+i|n<N?(W=R,R=null):W=R.sibling;var B=m(_,R,P[N],L);if(B===null){R===null&&(R=W);break}e&&R&&B.alternate===null&&t(_,R),k=o(B,k,N),D===null?O=B:D.sibling=B,D=B,R=W}if(N===P.length)return n(_,R),xr&&fh(_,N),O;if(R===null){for(;NN?(W=R,R=null):W=R.sibling;var K=m(_,R,B.value,L);if(K===null){R===null&&(R=W);break}e&&R&&K.alternate===null&&t(_,R),k=o(K,k,N),D===null?O=K:D.sibling=K,D=K,R=W}if(B.done)return n(_,R),xr&&fh(_,N),O;if(R===null){for(;!B.done;N++,B=P.next())B=h(_,B.value,L),B!==null&&(k=o(B,k,N),D===null?O=B:D.sibling=B,D=B);return xr&&fh(_,N),O}for(R=r(_,R);!B.done;N++,B=P.next())B=y(R,_,N,B.value,L),B!==null&&(e&&B.alternate!==null&&R.delete(B.key===null?N:B.key),k=o(B,k,N),D===null?O=B:D.sibling=B,D=B);return e&&R.forEach(function(ne){return t(_,ne)}),xr&&fh(_,N),O}function E(_,k,P,L){if(typeof P=="object"&&P!==null&&P.type===qg&&P.key===null&&(P=P.props.children),typeof P=="object"&&P!==null){switch(P.$$typeof){case bb:e:{for(var O=P.key,D=k;D!==null;){if(D.key===O){if(O=P.type,O===qg){if(D.tag===7){n(_,D.sibling),k=i(D,P.props.children),k.return=_,_=k;break e}}else if(D.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===gd&&CM(O)===D.type){n(_,D.sibling),k=i(D,P.props),k.ref=Bv(_,D,P),k.return=_,_=k;break e}n(_,D);break}else t(_,D);D=D.sibling}P.type===qg?(k=Rh(P.props.children,_.mode,L,P.key),k.return=_,_=k):(L=Gx(P.type,P.key,P.props,null,_.mode,L),L.ref=Bv(_,k,P),L.return=_,_=L)}return a(_);case Gg:e:{for(D=P.key;k!==null;){if(k.key===D)if(k.tag===4&&k.stateNode.containerInfo===P.containerInfo&&k.stateNode.implementation===P.implementation){n(_,k.sibling),k=i(k,P.children||[]),k.return=_,_=k;break e}else{n(_,k);break}else t(_,k);k=k.sibling}k=F5(P,_.mode,L),k.return=_,_=k}return a(_);case gd:return D=P._init,E(_,k,D(P._payload),L)}if(l1(P))return b(_,k,P,L);if(Dv(P))return w(_,k,P,L);Lb(_,P)}return typeof P=="string"&&P!==""||typeof P=="number"?(P=""+P,k!==null&&k.tag===6?(n(_,k.sibling),k=i(k,P),k.return=_,_=k):(n(_,k),k=$5(P,_.mode,L),k.return=_,_=k),a(_)):n(_,k)}return E}var Vm=h$(!0),p$=h$(!1),e2={},Yl=lf(e2),yy=lf(e2),by=lf(e2);function Ph(e){if(e===e2)throw Error(ze(174));return e}function c9(e,t){switch(or(by,t),or(yy,e),or(Yl,e2),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:R6(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=R6(t,e)}hr(Yl),or(Yl,t)}function Um(){hr(Yl),hr(yy),hr(by)}function g$(e){Ph(by.current);var t=Ph(Yl.current),n=R6(t,e.type);t!==n&&(or(yy,e),or(Yl,n))}function d9(e){yy.current===e&&(hr(Yl),hr(yy))}var Pr=lf(0);function $S(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var O5=[];function f9(){for(var e=0;en?n:4,e(!0);var r=I5.transition;I5.transition={};try{e(!1),t()}finally{jn=n,I5.transition=r}}function A$(){return ds().memoizedState}function ane(e,t,n){var r=Nd(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},O$(e))I$(t,n);else if(n=u$(e,t,n,r),n!==null){var i=Po();Xs(n,e,r,i),R$(n,t,r)}}function sne(e,t,n){var r=Nd(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(O$(e))I$(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,el(s,a)){var l=t.interleaved;l===null?(i.next=i,l9(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=u$(e,t,i,r),n!==null&&(i=Po(),Xs(n,e,r,i),R$(n,t,r))}}function O$(e){var t=e.alternate;return e===Tr||t!==null&&t===Tr}function I$(e,t){O1=FS=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function R$(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,K7(e,n)}}var BS={readContext:cs,useCallback:no,useContext:no,useEffect:no,useImperativeHandle:no,useInsertionEffect:no,useLayoutEffect:no,useMemo:no,useReducer:no,useRef:no,useState:no,useDebugValue:no,useDeferredValue:no,useTransition:no,useMutableSource:no,useSyncExternalStore:no,useId:no,unstable_isNewReconciler:!1},lne={readContext:cs,useCallback:function(e,t){return Il().memoizedState=[e,t===void 0?null:t],e},useContext:cs,useEffect:kM,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Hx(4194308,4,E$.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Hx(4194308,4,e,t)},useInsertionEffect:function(e,t){return Hx(4,2,e,t)},useMemo:function(e,t){var n=Il();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Il();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ane.bind(null,Tr,e),[r.memoizedState,e]},useRef:function(e){var t=Il();return e={current:e},t.memoizedState=e},useState:_M,useDebugValue:v9,useDeferredValue:function(e){return Il().memoizedState=e},useTransition:function(){var e=_M(!1),t=e[0];return e=one.bind(null,e[1]),Il().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Tr,i=Il();if(xr){if(n===void 0)throw Error(ze(407));n=n()}else{if(n=t(),Ii===null)throw Error(ze(349));Yh&30||y$(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,kM(x$.bind(null,r,o,e),[e]),r.flags|=2048,wy(9,b$.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Il(),t=Ii.identifierPrefix;if(xr){var n=Hu,r=zu;n=(r&~(1<<32-Ys(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=xy++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Fl]=t,e[vy]=r,W$(e,t,!1,!1),t.stateNode=e;e:{switch(a=j6(n,r),n){case"dialog":sr("cancel",e),sr("close",e),i=r;break;case"iframe":case"object":case"embed":sr("load",e),i=r;break;case"video":case"audio":for(i=0;iqm&&(t.flags|=128,r=!0,zv(o,!1),t.lanes=4194304)}else{if(!r)if(e=$S(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),zv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!xr)return ro(t),null}else 2*Jr()-o.renderingStartTime>qm&&n!==1073741824&&(t.flags|=128,r=!0,zv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Jr(),t.sibling=null,n=Pr.current,or(Pr,r?n&1|2:n&1),t):(ro(t),null);case 22:case 23:return C9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ca&1073741824&&(ro(t),t.subtreeFlags&6&&(t.flags|=8192)):ro(t),null;case 24:return null;case 25:return null}throw Error(ze(156,t.tag))}function mne(e,t){switch(r9(t),t.tag){case 1:return Zo(t.type)&&AS(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Um(),hr(Xo),hr(co),f9(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return d9(t),null;case 13:if(hr(Pr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ze(340));Wm()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return hr(Pr),null;case 4:return Um(),null;case 10:return s9(t.type._context),null;case 22:case 23:return C9(),null;case 24:return null;default:return null}}var Ob=!1,ao=!1,vne=typeof WeakSet=="function"?WeakSet:Set,dt=null;function nm(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Br(e,t,r)}else n.current=null}function u_(e,t,n){try{n()}catch(r){Br(e,t,r)}}var RM=!1;function yne(e,t){if(G6=PS,e=YN(),t9(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,u=0,d=0,h=e,m=null;t:for(;;){for(var y;h!==n||i!==0&&h.nodeType!==3||(s=a+i),h!==o||r!==0&&h.nodeType!==3||(l=a+r),h.nodeType===3&&(a+=h.nodeValue.length),(y=h.firstChild)!==null;)m=h,h=y;for(;;){if(h===e)break t;if(m===n&&++u===i&&(s=a),m===o&&++d===r&&(l=a),(y=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=y}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(q6={focusedElem:e,selectionRange:n},PS=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var b=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(b!==null){var w=b.memoizedProps,E=b.memoizedState,_=t.stateNode,k=_.getSnapshotBeforeUpdate(t.elementType===t.type?w:Ws(t.type,w),E);_.__reactInternalSnapshotBeforeUpdate=k}break;case 3:var P=t.stateNode.containerInfo;P.nodeType===1?P.textContent="":P.nodeType===9&&P.documentElement&&P.removeChild(P.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ze(163))}}catch(L){Br(t,t.return,L)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return b=RM,RM=!1,b}function I1(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&u_(t,n,o)}i=i.next}while(i!==r)}}function yw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function c_(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function G$(e){var t=e.alternate;t!==null&&(e.alternate=null,G$(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Fl],delete t[vy],delete t[X6],delete t[ene],delete t[tne])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function q$(e){return e.tag===5||e.tag===3||e.tag===4}function DM(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||q$(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function d_(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=LS));else if(r!==4&&(e=e.child,e!==null))for(d_(e,t,n),e=e.sibling;e!==null;)d_(e,t,n),e=e.sibling}function f_(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(f_(e,t,n),e=e.sibling;e!==null;)f_(e,t,n),e=e.sibling}var Ui=null,Vs=!1;function sd(e,t,n){for(n=n.child;n!==null;)K$(e,t,n),n=n.sibling}function K$(e,t,n){if(Kl&&typeof Kl.onCommitFiberUnmount=="function")try{Kl.onCommitFiberUnmount(cw,n)}catch{}switch(n.tag){case 5:ao||nm(n,t);case 6:var r=Ui,i=Vs;Ui=null,sd(e,t,n),Ui=r,Vs=i,Ui!==null&&(Vs?(e=Ui,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ui.removeChild(n.stateNode));break;case 18:Ui!==null&&(Vs?(e=Ui,n=n.stateNode,e.nodeType===8?L5(e.parentNode,n):e.nodeType===1&&L5(e,n),fy(e)):L5(Ui,n.stateNode));break;case 4:r=Ui,i=Vs,Ui=n.stateNode.containerInfo,Vs=!0,sd(e,t,n),Ui=r,Vs=i;break;case 0:case 11:case 14:case 15:if(!ao&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&u_(n,t,a),i=i.next}while(i!==r)}sd(e,t,n);break;case 1:if(!ao&&(nm(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Br(n,t,s)}sd(e,t,n);break;case 21:sd(e,t,n);break;case 22:n.mode&1?(ao=(r=ao)||n.memoizedState!==null,sd(e,t,n),ao=r):sd(e,t,n);break;default:sd(e,t,n)}}function jM(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new vne),t.forEach(function(r){var i=Pne.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ns(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=Jr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*xne(r/1960))-r,10e?16:e,_d===null)var r=!1;else{if(e=_d,_d=null,WS=0,fn&6)throw Error(ze(331));var i=fn;for(fn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lJr()-S9?Ih(e,0):x9|=n),Qo(e,t)}function nF(e,t){t===0&&(e.mode&1?(t=Cb,Cb<<=1,!(Cb&130023424)&&(Cb=4194304)):t=1);var n=Po();e=nc(e,t),e!==null&&(Zy(e,t,n),Qo(e,n))}function Ene(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),nF(e,n)}function Pne(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ze(314))}r!==null&&r.delete(t),nF(e,n)}var rF;rF=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Xo.current)Yo=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Yo=!1,pne(e,t,n);Yo=!!(e.flags&131072)}else Yo=!1,xr&&t.flags&1048576&&a$(t,RS,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Wx(e,t),e=t.pendingProps;var i=Hm(t,co.current);wm(t,n),i=p9(null,t,r,e,i,n);var o=g9();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Zo(r)?(o=!0,OS(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,u9(t),i.updater=mw,t.stateNode=i,i._reactInternals=t,n_(t,r,e,n),t=o_(null,t,r,!0,o,n)):(t.tag=0,xr&&o&&n9(t),wo(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Wx(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=Mne(r),e=Ws(r,e),i){case 0:t=i_(null,t,r,e,n);break e;case 1:t=AM(null,t,r,e,n);break e;case 11:t=MM(null,t,r,e,n);break e;case 14:t=LM(null,t,r,Ws(r.type,e),n);break e}throw Error(ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ws(r,i),i_(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ws(r,i),AM(e,t,r,i,n);case 3:e:{if(B$(t),e===null)throw Error(ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,c$(e,t),NS(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Gm(Error(ze(423)),t),t=OM(e,t,r,n,i);break e}else if(r!==i){i=Gm(Error(ze(424)),t),t=OM(e,t,r,n,i);break e}else for(Pa=Rd(t.stateNode.containerInfo.firstChild),Ma=t,xr=!0,Gs=null,n=p$(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Wm(),r===i){t=rc(e,t,n);break e}wo(e,t,r,n)}t=t.child}return t;case 5:return g$(t),e===null&&J6(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,K6(r,i)?a=null:o!==null&&K6(r,o)&&(t.flags|=32),F$(e,t),wo(e,t,a,n),t.child;case 6:return e===null&&J6(t),null;case 13:return z$(e,t,n);case 4:return c9(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Vm(t,null,r,n):wo(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ws(r,i),MM(e,t,r,i,n);case 7:return wo(e,t,t.pendingProps,n),t.child;case 8:return wo(e,t,t.pendingProps.children,n),t.child;case 12:return wo(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,or(DS,r._currentValue),r._currentValue=a,o!==null)if(el(o.value,a)){if(o.children===i.children&&!Xo.current){t=rc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Uu(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),e_(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),e_(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}wo(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,wm(t,n),i=cs(i),r=r(i),t.flags|=1,wo(e,t,r,n),t.child;case 14:return r=t.type,i=Ws(r,t.pendingProps),i=Ws(r.type,i),LM(e,t,r,i,n);case 15:return N$(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ws(r,i),Wx(e,t),t.tag=1,Zo(r)?(e=!0,OS(t)):e=!1,wm(t,n),f$(t,r,i),n_(t,r,i,n),o_(null,t,r,!0,e,n);case 19:return H$(e,t,n);case 22:return $$(e,t,n)}throw Error(ze(156,t.tag))};function iF(e,t){return LN(e,t)}function Tne(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function is(e,t,n,r){return new Tne(e,t,n,r)}function k9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mne(e){if(typeof e=="function")return k9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===V7)return 11;if(e===U7)return 14}return 2}function $d(e,t){var n=e.alternate;return n===null?(n=is(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gx(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")k9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case qg:return Rh(n.children,i,o,t);case W7:a=8,i|=8;break;case E6:return e=is(12,n,t,i|2),e.elementType=E6,e.lanes=o,e;case P6:return e=is(13,n,t,i),e.elementType=P6,e.lanes=o,e;case T6:return e=is(19,n,t,i),e.elementType=T6,e.lanes=o,e;case hN:return xw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case dN:a=10;break e;case fN:a=9;break e;case V7:a=11;break e;case U7:a=14;break e;case gd:a=16,r=null;break e}throw Error(ze(130,e==null?e:typeof e,""))}return t=is(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Rh(e,t,n,r){return e=is(7,e,r,t),e.lanes=n,e}function xw(e,t,n,r){return e=is(22,e,r,t),e.elementType=hN,e.lanes=n,e.stateNode={isHidden:!1},e}function $5(e,t,n){return e=is(6,e,null,t),e.lanes=n,e}function F5(e,t,n){return t=is(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Lne(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=b5(0),this.expirationTimes=b5(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=b5(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function E9(e,t,n,r,i,o,a,s,l){return e=new Lne(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=is(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},u9(o),e}function Ane(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}t(),e.exports=$a})(Oee);const Db=T7(Js);var[lF,jne]=Ln({strict:!1,name:"PortalContext"}),L9="chakra-portal",Nne=".chakra-portal",$ne=e=>g.jsx("div",{className:"chakra-portal-zIndex",style:{position:"absolute",zIndex:e.zIndex,top:0,left:0,right:0},children:e.children}),Fne=e=>{const{appendToParentPortal:t,children:n}=e,[r,i]=S.useState(null),o=S.useRef(null),[,a]=S.useState({});S.useEffect(()=>a({}),[]);const s=jne(),l=Aee();ql(()=>{if(!r)return;const d=r.ownerDocument,h=t?s??d.body:d.body;if(!h)return;o.current=d.createElement("div"),o.current.className=L9,h.appendChild(o.current),a({});const m=o.current;return()=>{h.contains(m)&&h.removeChild(m)}},[r]);const u=l!=null&&l.zIndex?g.jsx($ne,{zIndex:l==null?void 0:l.zIndex,children:n}):n;return o.current?Js.createPortal(g.jsx(lF,{value:o.current,children:u}),o.current):g.jsx("span",{ref:d=>{d&&i(d)}})},Bne=e=>{const{children:t,containerRef:n,appendToParentPortal:r}=e,i=n.current,o=i??(typeof window<"u"?document.body:void 0),a=S.useMemo(()=>{const l=i==null?void 0:i.ownerDocument.createElement("div");return l&&(l.className=L9),l},[i]),[,s]=S.useState({});return ql(()=>s({}),[]),ql(()=>{if(!(!a||!o))return o.appendChild(a),()=>{o.removeChild(a)}},[a,o]),o&&a?Js.createPortal(g.jsx(lF,{value:r?a:null,children:t}),a):null};function h0(e){const t={appendToParentPortal:!0,...e},{containerRef:n,...r}=t;return n?g.jsx(Bne,{containerRef:n,...r}):g.jsx(Fne,{...r})}h0.className=L9;h0.selector=Nne;h0.displayName="Portal";function t2(){const e=S.useContext(ay);if(!e)throw Error("useTheme: `theme` is undefined. Seems you forgot to wrap your app in `` or ``");return e}var A9=S.createContext({});A9.displayName="ColorModeContext";function sp(){const e=S.useContext(A9);if(e===void 0)throw new Error("useColorMode must be used within a ColorModeProvider");return e}var jb={light:"chakra-ui-light",dark:"chakra-ui-dark"};function zne(e={}){const{preventTransition:t=!0}=e,n={setDataset:r=>{const i=t?n.preventTransition():void 0;document.documentElement.dataset.theme=r,document.documentElement.style.colorScheme=r,i==null||i()},setClassName(r){document.body.classList.add(r?jb.dark:jb.light),document.body.classList.remove(r?jb.light:jb.dark)},query(){return window.matchMedia("(prefers-color-scheme: dark)")},getSystemTheme(r){var i;return((i=n.query().matches)!=null?i:r==="dark")?"dark":"light"},addListener(r){const i=n.query(),o=a=>{r(a.matches?"dark":"light")};return typeof i.addListener=="function"?i.addListener(o):i.addEventListener("change",o),()=>{typeof i.removeListener=="function"?i.removeListener(o):i.removeEventListener("change",o)}},preventTransition(){const r=document.createElement("style");return r.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(r),()=>{window.getComputedStyle(document.body),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.head.removeChild(r)})})}}};return n}var Hne="chakra-ui-color-mode";function Wne(e){return{ssr:!1,type:"localStorage",get(t){if(!(globalThis!=null&&globalThis.document))return t;let n;try{n=localStorage.getItem(e)||t}catch{}return n||t},set(t){try{localStorage.setItem(e,t)}catch{}}}}var Vne=Wne(Hne),VM=()=>{};function UM(e,t){return e.type==="cookie"&&e.ssr?e.get(t):t}function uF(e){const{value:t,children:n,options:{useSystemColorMode:r,initialColorMode:i,disableTransitionOnChange:o}={},colorModeManager:a=Vne}=e,s=i==="dark"?"dark":"light",[l,u]=S.useState(()=>UM(a,s)),[d,h]=S.useState(()=>UM(a)),{getSystemTheme:m,setClassName:y,setDataset:b,addListener:w}=S.useMemo(()=>zne({preventTransition:o}),[o]),E=i==="system"&&!l?d:l,_=S.useCallback(L=>{const O=L==="system"?m():L;u(O),y(O==="dark"),b(O),a.set(O)},[a,m,y,b]);ql(()=>{i==="system"&&h(m())},[]),S.useEffect(()=>{const L=a.get();if(L){_(L);return}if(i==="system"){_("system");return}_(s)},[a,s,i,_]);const k=S.useCallback(()=>{_(E==="dark"?"light":"dark")},[E,_]);S.useEffect(()=>{if(r)return w(_)},[r,w,_]);const P=S.useMemo(()=>({colorMode:t??E,toggleColorMode:t?VM:k,setColorMode:t?VM:_,forced:t!==void 0}),[E,k,_,t]);return g.jsx(A9.Provider,{value:P,children:n})}uF.displayName="ColorModeProvider";function cF(){const e=sp(),t=t2();return{...e,theme:t}}var bt=(...e)=>e.filter(Boolean).join(" ");function Une(){return!1}function lo(e){const t=typeof e;return e!=null&&(t==="object"||t==="function")&&!Array.isArray(e)}var n2=e=>{const{condition:t,message:n}=e;t&&Une()&&console.warn(n)};function os(e,...t){return Gne(e)?e(...t):e}var Gne=e=>typeof e=="function",Ht=e=>e?"":void 0,Gu=e=>e?!0:void 0;function ht(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function kw(...e){return function(n){e.forEach(r=>{r==null||r(n)})}}var GS={},qne={get exports(){return GS},set exports(e){GS=e}};(function(e,t){var n=200,r="__lodash_hash_undefined__",i=800,o=16,a=9007199254740991,s="[object Arguments]",l="[object Array]",u="[object AsyncFunction]",d="[object Boolean]",h="[object Date]",m="[object Error]",y="[object Function]",b="[object GeneratorFunction]",w="[object Map]",E="[object Number]",_="[object Null]",k="[object Object]",P="[object Proxy]",L="[object RegExp]",O="[object Set]",D="[object String]",R="[object Undefined]",N="[object WeakMap]",W="[object ArrayBuffer]",B="[object DataView]",K="[object Float32Array]",ne="[object Float64Array]",z="[object Int8Array]",$="[object Int16Array]",U="[object Int32Array]",X="[object Uint8Array]",Q="[object Uint8ClampedArray]",G="[object Uint16Array]",Y="[object Uint32Array]",ee=/[\\^$.*+?()[\]{}|]/g,fe=/^\[object .+?Constructor\]$/,ke=/^(?:0|[1-9]\d*)$/,we={};we[K]=we[ne]=we[z]=we[$]=we[U]=we[X]=we[Q]=we[G]=we[Y]=!0,we[s]=we[l]=we[W]=we[d]=we[B]=we[h]=we[m]=we[y]=we[w]=we[E]=we[k]=we[L]=we[O]=we[D]=we[N]=!1;var xe=typeof Co=="object"&&Co&&Co.Object===Object&&Co,Ce=typeof self=="object"&&self&&self.Object===Object&&self,Se=xe||Ce||Function("return this")(),Qe=t&&!t.nodeType&&t,tt=Qe&&!0&&e&&!e.nodeType&&e,it=tt&&tt.exports===Qe,xt=it&&xe.process,Be=function(){try{var q=tt&&tt.require&&tt.require("util").types;return q||xt&&xt.binding&&xt.binding("util")}catch{}}(),Le=Be&&Be.isTypedArray;function St(q,re,pe){switch(pe.length){case 0:return q.call(re);case 1:return q.call(re,pe[0]);case 2:return q.call(re,pe[0],pe[1]);case 3:return q.call(re,pe[0],pe[1],pe[2])}return q.apply(re,pe)}function Fe(q,re){for(var pe=-1,ot=Array(q);++pe-1}function L0(q,re){var pe=this.__data__,ot=Cs(pe,q);return ot<0?(++this.size,pe.push([q,re])):pe[ot][1]=re,this}ia.prototype.clear=bf,ia.prototype.delete=M0,ia.prototype.get=wc,ia.prototype.has=xf,ia.prototype.set=L0;function ol(q){var re=-1,pe=q==null?0:q.length;for(this.clear();++re1?pe[Vt-1]:void 0,wt=Vt>2?pe[2]:void 0;for(yn=q.length>3&&typeof yn=="function"?(Vt--,yn):void 0,wt&&Ip(pe[0],pe[1],wt)&&(yn=Vt<3?void 0:yn,Vt=1),re=Object(re);++ot-1&&q%1==0&&q0){if(++re>=i)return arguments[0]}else re=0;return q.apply(void 0,arguments)}}function Pc(q){if(q!=null){try{return He.call(q)}catch{}try{return q+""}catch{}}return""}function Ha(q,re){return q===re||q!==q&&re!==re}var kf=mu(function(){return arguments}())?mu:function(q){return Jn(q)&&Ve.call(q,"callee")&&!Wr.call(q,"callee")},bu=Array.isArray;function Kt(q){return q!=null&&Dp(q.length)&&!Mc(q)}function Rp(q){return Jn(q)&&Kt(q)}var Tc=xs||W0;function Mc(q){if(!la(q))return!1;var re=sl(q);return re==y||re==b||re==u||re==P}function Dp(q){return typeof q=="number"&&q>-1&&q%1==0&&q<=a}function la(q){var re=typeof q;return q!=null&&(re=="object"||re=="function")}function Jn(q){return q!=null&&typeof q=="object"}function Ef(q){if(!Jn(q)||sl(q)!=k)return!1;var re=qe(q);if(re===null)return!0;var pe=Ve.call(re,"constructor")&&re.constructor;return typeof pe=="function"&&pe instanceof pe&&He.call(pe)==yt}var jp=Le?at(Le):_c;function Pf(q){return fi(q,Np(q))}function Np(q){return Kt(q)?B0(q,!0):ll(q)}var hn=_s(function(q,re,pe,ot){oa(q,re,pe,ot)});function Yt(q){return function(){return q}}function $p(q){return q}function W0(){return!1}e.exports=hn})(qne,GS);const as=GS;var Kne=e=>/!(important)?$/.test(e),GM=e=>typeof e=="string"?e.replace(/!(important)?$/,"").trim():e,Yne=(e,t)=>n=>{const r=String(t),i=Kne(r),o=GM(r),a=e?`${e}.${o}`:o;let s=lo(n.__cssMap)&&a in n.__cssMap?n.__cssMap[a].varRef:t;return s=GM(s),i?`${s} !important`:s};function O9(e){const{scale:t,transform:n,compose:r}=e;return(o,a)=>{var s;const l=Yne(t,o)(a);let u=(s=n==null?void 0:n(l,a))!=null?s:l;return r&&(u=r(u,a)),u}}var Nb=(...e)=>t=>e.reduce((n,r)=>r(n),t);function $s(e,t){return n=>{const r={property:n,scale:e};return r.transform=O9({scale:e,transform:t}),r}}var Xne=({rtl:e,ltr:t})=>n=>n.direction==="rtl"?e:t;function Zne(e){const{property:t,scale:n,transform:r}=e;return{scale:n,property:Xne(t),transform:n?O9({scale:n,compose:r}):r}}var dF=["rotate(var(--chakra-rotate, 0))","scaleX(var(--chakra-scale-x, 1))","scaleY(var(--chakra-scale-y, 1))","skewX(var(--chakra-skew-x, 0))","skewY(var(--chakra-skew-y, 0))"];function Qne(){return["translateX(var(--chakra-translate-x, 0))","translateY(var(--chakra-translate-y, 0))",...dF].join(" ")}function Jne(){return["translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)",...dF].join(" ")}var ere={"--chakra-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-sepia":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-drop-shadow":"var(--chakra-empty,/*!*/ /*!*/)",filter:["var(--chakra-blur)","var(--chakra-brightness)","var(--chakra-contrast)","var(--chakra-grayscale)","var(--chakra-hue-rotate)","var(--chakra-invert)","var(--chakra-saturate)","var(--chakra-sepia)","var(--chakra-drop-shadow)"].join(" ")},tre={backdropFilter:["var(--chakra-backdrop-blur)","var(--chakra-backdrop-brightness)","var(--chakra-backdrop-contrast)","var(--chakra-backdrop-grayscale)","var(--chakra-backdrop-hue-rotate)","var(--chakra-backdrop-invert)","var(--chakra-backdrop-opacity)","var(--chakra-backdrop-saturate)","var(--chakra-backdrop-sepia)"].join(" "),"--chakra-backdrop-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-opacity":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-sepia":"var(--chakra-empty,/*!*/ /*!*/)"};function nre(e){return{"--chakra-ring-offset-shadow":"var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)","--chakra-ring-shadow":"var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)","--chakra-ring-width":e,boxShadow:["var(--chakra-ring-offset-shadow)","var(--chakra-ring-shadow)","var(--chakra-shadow, 0 0 #0000)"].join(", ")}}var rre={"row-reverse":{space:"--chakra-space-x-reverse",divide:"--chakra-divide-x-reverse"},"column-reverse":{space:"--chakra-space-y-reverse",divide:"--chakra-divide-y-reverse"}},v_={"to-t":"to top","to-tr":"to top right","to-r":"to right","to-br":"to bottom right","to-b":"to bottom","to-bl":"to bottom left","to-l":"to left","to-tl":"to top left"},ire=new Set(Object.values(v_)),fF=new Set(["none","-moz-initial","inherit","initial","revert","unset"]),ore=e=>e.trim();function are(e,t){if(e==null||fF.has(e))return e;const r=/(^[a-z-A-Z]+)\((.*)\)/g.exec(e),i=r==null?void 0:r[1],o=r==null?void 0:r[2];if(!i||!o)return e;const a=i.includes("-gradient")?i:`${i}-gradient`,[s,...l]=o.split(",").map(ore).filter(Boolean);if((l==null?void 0:l.length)===0)return e;const u=s in v_?v_[s]:s;l.unshift(u);const d=l.map(h=>{if(ire.has(h))return h;const m=h.indexOf(" "),[y,b]=m!==-1?[h.substr(0,m),h.substr(m+1)]:[h],w=hF(b)?b:b&&b.split(" "),E=`colors.${y}`,_=E in t.__cssMap?t.__cssMap[E].varRef:y;return w?[_,...Array.isArray(w)?w:[w]].join(" "):_});return`${a}(${d.join(", ")})`}var hF=e=>typeof e=="string"&&e.includes("(")&&e.includes(")"),sre=(e,t)=>are(e,t??{});function lre(e){return/^var\(--.+\)$/.test(e)}var ure=e=>{const t=parseFloat(e.toString()),n=e.toString().replace(String(t),"");return{unitless:!n,value:t,unit:n}},Ll=e=>t=>`${e}(${t})`,dn={filter(e){return e!=="auto"?e:ere},backdropFilter(e){return e!=="auto"?e:tre},ring(e){return nre(dn.px(e))},bgClip(e){return e==="text"?{color:"transparent",backgroundClip:"text"}:{backgroundClip:e}},transform(e){return e==="auto"?Qne():e==="auto-gpu"?Jne():e},vh(e){return e==="$100vh"?"var(--chakra-vh)":e},px(e){if(e==null)return e;const{unitless:t}=ure(e);return t||typeof e=="number"?`${e}px`:e},fraction(e){return typeof e!="number"||e>1?e:`${e*100}%`},float(e,t){const n={left:"right",right:"left"};return t.direction==="rtl"?n[e]:e},degree(e){if(lre(e)||e==null)return e;const t=typeof e=="string"&&!e.endsWith("deg");return typeof e=="number"||t?`${e}deg`:e},gradient:sre,blur:Ll("blur"),opacity:Ll("opacity"),brightness:Ll("brightness"),contrast:Ll("contrast"),dropShadow:Ll("drop-shadow"),grayscale:Ll("grayscale"),hueRotate:Ll("hue-rotate"),invert:Ll("invert"),saturate:Ll("saturate"),sepia:Ll("sepia"),bgImage(e){return e==null||hF(e)||fF.has(e)?e:`url(${e})`},outline(e){const t=String(e)==="0"||String(e)==="none";return e!==null&&t?{outline:"2px solid transparent",outlineOffset:"2px"}:{outline:e}},flexDirection(e){var t;const{space:n,divide:r}=(t=rre[e])!=null?t:{},i={flexDirection:e};return n&&(i[n]=1),r&&(i[r]=1),i}},oe={borderWidths:$s("borderWidths"),borderStyles:$s("borderStyles"),colors:$s("colors"),borders:$s("borders"),radii:$s("radii",dn.px),space:$s("space",Nb(dn.vh,dn.px)),spaceT:$s("space",Nb(dn.vh,dn.px)),degreeT(e){return{property:e,transform:dn.degree}},prop(e,t,n){return{property:e,scale:t,...t&&{transform:O9({scale:t,transform:n})}}},propT(e,t){return{property:e,transform:t}},sizes:$s("sizes",Nb(dn.vh,dn.px)),sizesT:$s("sizes",Nb(dn.vh,dn.fraction)),shadows:$s("shadows"),logical:Zne,blur:$s("blur",dn.blur)},qx={background:oe.colors("background"),backgroundColor:oe.colors("backgroundColor"),backgroundImage:oe.propT("backgroundImage",dn.bgImage),backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundAttachment:!0,backgroundClip:{transform:dn.bgClip},bgSize:oe.prop("backgroundSize"),bgPosition:oe.prop("backgroundPosition"),bg:oe.colors("background"),bgColor:oe.colors("backgroundColor"),bgPos:oe.prop("backgroundPosition"),bgRepeat:oe.prop("backgroundRepeat"),bgAttachment:oe.prop("backgroundAttachment"),bgGradient:oe.propT("backgroundImage",dn.gradient),bgClip:{transform:dn.bgClip}};Object.assign(qx,{bgImage:qx.backgroundImage,bgImg:qx.backgroundImage});var xn={border:oe.borders("border"),borderWidth:oe.borderWidths("borderWidth"),borderStyle:oe.borderStyles("borderStyle"),borderColor:oe.colors("borderColor"),borderRadius:oe.radii("borderRadius"),borderTop:oe.borders("borderTop"),borderBlockStart:oe.borders("borderBlockStart"),borderTopLeftRadius:oe.radii("borderTopLeftRadius"),borderStartStartRadius:oe.logical({scale:"radii",property:{ltr:"borderTopLeftRadius",rtl:"borderTopRightRadius"}}),borderEndStartRadius:oe.logical({scale:"radii",property:{ltr:"borderBottomLeftRadius",rtl:"borderBottomRightRadius"}}),borderTopRightRadius:oe.radii("borderTopRightRadius"),borderStartEndRadius:oe.logical({scale:"radii",property:{ltr:"borderTopRightRadius",rtl:"borderTopLeftRadius"}}),borderEndEndRadius:oe.logical({scale:"radii",property:{ltr:"borderBottomRightRadius",rtl:"borderBottomLeftRadius"}}),borderRight:oe.borders("borderRight"),borderInlineEnd:oe.borders("borderInlineEnd"),borderBottom:oe.borders("borderBottom"),borderBlockEnd:oe.borders("borderBlockEnd"),borderBottomLeftRadius:oe.radii("borderBottomLeftRadius"),borderBottomRightRadius:oe.radii("borderBottomRightRadius"),borderLeft:oe.borders("borderLeft"),borderInlineStart:{property:"borderInlineStart",scale:"borders"},borderInlineStartRadius:oe.logical({scale:"radii",property:{ltr:["borderTopLeftRadius","borderBottomLeftRadius"],rtl:["borderTopRightRadius","borderBottomRightRadius"]}}),borderInlineEndRadius:oe.logical({scale:"radii",property:{ltr:["borderTopRightRadius","borderBottomRightRadius"],rtl:["borderTopLeftRadius","borderBottomLeftRadius"]}}),borderX:oe.borders(["borderLeft","borderRight"]),borderInline:oe.borders("borderInline"),borderY:oe.borders(["borderTop","borderBottom"]),borderBlock:oe.borders("borderBlock"),borderTopWidth:oe.borderWidths("borderTopWidth"),borderBlockStartWidth:oe.borderWidths("borderBlockStartWidth"),borderTopColor:oe.colors("borderTopColor"),borderBlockStartColor:oe.colors("borderBlockStartColor"),borderTopStyle:oe.borderStyles("borderTopStyle"),borderBlockStartStyle:oe.borderStyles("borderBlockStartStyle"),borderBottomWidth:oe.borderWidths("borderBottomWidth"),borderBlockEndWidth:oe.borderWidths("borderBlockEndWidth"),borderBottomColor:oe.colors("borderBottomColor"),borderBlockEndColor:oe.colors("borderBlockEndColor"),borderBottomStyle:oe.borderStyles("borderBottomStyle"),borderBlockEndStyle:oe.borderStyles("borderBlockEndStyle"),borderLeftWidth:oe.borderWidths("borderLeftWidth"),borderInlineStartWidth:oe.borderWidths("borderInlineStartWidth"),borderLeftColor:oe.colors("borderLeftColor"),borderInlineStartColor:oe.colors("borderInlineStartColor"),borderLeftStyle:oe.borderStyles("borderLeftStyle"),borderInlineStartStyle:oe.borderStyles("borderInlineStartStyle"),borderRightWidth:oe.borderWidths("borderRightWidth"),borderInlineEndWidth:oe.borderWidths("borderInlineEndWidth"),borderRightColor:oe.colors("borderRightColor"),borderInlineEndColor:oe.colors("borderInlineEndColor"),borderRightStyle:oe.borderStyles("borderRightStyle"),borderInlineEndStyle:oe.borderStyles("borderInlineEndStyle"),borderTopRadius:oe.radii(["borderTopLeftRadius","borderTopRightRadius"]),borderBottomRadius:oe.radii(["borderBottomLeftRadius","borderBottomRightRadius"]),borderLeftRadius:oe.radii(["borderTopLeftRadius","borderBottomLeftRadius"]),borderRightRadius:oe.radii(["borderTopRightRadius","borderBottomRightRadius"])};Object.assign(xn,{rounded:xn.borderRadius,roundedTop:xn.borderTopRadius,roundedTopLeft:xn.borderTopLeftRadius,roundedTopRight:xn.borderTopRightRadius,roundedTopStart:xn.borderStartStartRadius,roundedTopEnd:xn.borderStartEndRadius,roundedBottom:xn.borderBottomRadius,roundedBottomLeft:xn.borderBottomLeftRadius,roundedBottomRight:xn.borderBottomRightRadius,roundedBottomStart:xn.borderEndStartRadius,roundedBottomEnd:xn.borderEndEndRadius,roundedLeft:xn.borderLeftRadius,roundedRight:xn.borderRightRadius,roundedStart:xn.borderInlineStartRadius,roundedEnd:xn.borderInlineEndRadius,borderStart:xn.borderInlineStart,borderEnd:xn.borderInlineEnd,borderTopStartRadius:xn.borderStartStartRadius,borderTopEndRadius:xn.borderStartEndRadius,borderBottomStartRadius:xn.borderEndStartRadius,borderBottomEndRadius:xn.borderEndEndRadius,borderStartRadius:xn.borderInlineStartRadius,borderEndRadius:xn.borderInlineEndRadius,borderStartWidth:xn.borderInlineStartWidth,borderEndWidth:xn.borderInlineEndWidth,borderStartColor:xn.borderInlineStartColor,borderEndColor:xn.borderInlineEndColor,borderStartStyle:xn.borderInlineStartStyle,borderEndStyle:xn.borderInlineEndStyle});var cre={color:oe.colors("color"),textColor:oe.colors("color"),fill:oe.colors("fill"),stroke:oe.colors("stroke")},y_={boxShadow:oe.shadows("boxShadow"),mixBlendMode:!0,blendMode:oe.prop("mixBlendMode"),backgroundBlendMode:!0,bgBlendMode:oe.prop("backgroundBlendMode"),opacity:!0};Object.assign(y_,{shadow:y_.boxShadow});var dre={filter:{transform:dn.filter},blur:oe.blur("--chakra-blur"),brightness:oe.propT("--chakra-brightness",dn.brightness),contrast:oe.propT("--chakra-contrast",dn.contrast),hueRotate:oe.degreeT("--chakra-hue-rotate"),invert:oe.propT("--chakra-invert",dn.invert),saturate:oe.propT("--chakra-saturate",dn.saturate),dropShadow:oe.propT("--chakra-drop-shadow",dn.dropShadow),backdropFilter:{transform:dn.backdropFilter},backdropBlur:oe.blur("--chakra-backdrop-blur"),backdropBrightness:oe.propT("--chakra-backdrop-brightness",dn.brightness),backdropContrast:oe.propT("--chakra-backdrop-contrast",dn.contrast),backdropHueRotate:oe.degreeT("--chakra-backdrop-hue-rotate"),backdropInvert:oe.propT("--chakra-backdrop-invert",dn.invert),backdropSaturate:oe.propT("--chakra-backdrop-saturate",dn.saturate)},qS={alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:{transform:dn.flexDirection},flex:!0,flexFlow:!0,flexGrow:!0,flexShrink:!0,flexBasis:oe.sizes("flexBasis"),justifySelf:!0,alignSelf:!0,order:!0,placeItems:!0,placeContent:!0,placeSelf:!0,gap:oe.space("gap"),rowGap:oe.space("rowGap"),columnGap:oe.space("columnGap")};Object.assign(qS,{flexDir:qS.flexDirection});var pF={gridGap:oe.space("gridGap"),gridColumnGap:oe.space("gridColumnGap"),gridRowGap:oe.space("gridRowGap"),gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridColumnStart:!0,gridColumnEnd:!0,gridRowStart:!0,gridRowEnd:!0,gridAutoRows:!0,gridTemplate:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0},fre={appearance:!0,cursor:!0,resize:!0,userSelect:!0,pointerEvents:!0,outline:{transform:dn.outline},outlineOffset:!0,outlineColor:oe.colors("outlineColor")},Qa={width:oe.sizesT("width"),inlineSize:oe.sizesT("inlineSize"),height:oe.sizes("height"),blockSize:oe.sizes("blockSize"),boxSize:oe.sizes(["width","height"]),minWidth:oe.sizes("minWidth"),minInlineSize:oe.sizes("minInlineSize"),minHeight:oe.sizes("minHeight"),minBlockSize:oe.sizes("minBlockSize"),maxWidth:oe.sizes("maxWidth"),maxInlineSize:oe.sizes("maxInlineSize"),maxHeight:oe.sizes("maxHeight"),maxBlockSize:oe.sizes("maxBlockSize"),overflow:!0,overflowX:!0,overflowY:!0,overscrollBehavior:!0,overscrollBehaviorX:!0,overscrollBehaviorY:!0,display:!0,hideFrom:{scale:"breakpoints",transform:(e,t)=>{var n,r,i;return{[(i=(r=(n=t.__breakpoints)==null?void 0:n.get(e))==null?void 0:r.minWQuery)!=null?i:`@media screen and (min-width: ${e})`]:{display:"none"}}}},hideBelow:{scale:"breakpoints",transform:(e,t)=>{var n,r,i;return{[(i=(r=(n=t.__breakpoints)==null?void 0:n.get(e))==null?void 0:r.maxWQuery)!=null?i:`@media screen and (max-width: ${e})`]:{display:"none"}}}},verticalAlign:!0,boxSizing:!0,boxDecorationBreak:!0,float:oe.propT("float",dn.float),objectFit:!0,objectPosition:!0,visibility:!0,isolation:!0};Object.assign(Qa,{w:Qa.width,h:Qa.height,minW:Qa.minWidth,maxW:Qa.maxWidth,minH:Qa.minHeight,maxH:Qa.maxHeight,overscroll:Qa.overscrollBehavior,overscrollX:Qa.overscrollBehaviorX,overscrollY:Qa.overscrollBehaviorY});var hre={listStyleType:!0,listStylePosition:!0,listStylePos:oe.prop("listStylePosition"),listStyleImage:!0,listStyleImg:oe.prop("listStyleImage")};function pre(e,t,n,r){const i=typeof t=="string"?t.split("."):[t];for(r=0;r{const t=new WeakMap;return(r,i,o,a)=>{if(typeof r>"u")return e(r,i,o);t.has(r)||t.set(r,new Map);const s=t.get(r);if(s.has(i))return s.get(i);const l=e(r,i,o,a);return s.set(i,l),l}},mre=gre(pre),vre={border:"0px",clip:"rect(0, 0, 0, 0)",width:"1px",height:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},yre={position:"static",width:"auto",height:"auto",clip:"auto",padding:"0",margin:"0",overflow:"visible",whiteSpace:"normal"},B5=(e,t,n)=>{const r={},i=mre(e,t,{});for(const o in i)o in n&&n[o]!=null||(r[o]=i[o]);return r},bre={srOnly:{transform(e){return e===!0?vre:e==="focusable"?yre:{}}},layerStyle:{processResult:!0,transform:(e,t,n)=>B5(t,`layerStyles.${e}`,n)},textStyle:{processResult:!0,transform:(e,t,n)=>B5(t,`textStyles.${e}`,n)},apply:{processResult:!0,transform:(e,t,n)=>B5(t,e,n)}},j1={position:!0,pos:oe.prop("position"),zIndex:oe.prop("zIndex","zIndices"),inset:oe.spaceT("inset"),insetX:oe.spaceT(["left","right"]),insetInline:oe.spaceT("insetInline"),insetY:oe.spaceT(["top","bottom"]),insetBlock:oe.spaceT("insetBlock"),top:oe.spaceT("top"),insetBlockStart:oe.spaceT("insetBlockStart"),bottom:oe.spaceT("bottom"),insetBlockEnd:oe.spaceT("insetBlockEnd"),left:oe.spaceT("left"),insetInlineStart:oe.logical({scale:"space",property:{ltr:"left",rtl:"right"}}),right:oe.spaceT("right"),insetInlineEnd:oe.logical({scale:"space",property:{ltr:"right",rtl:"left"}})};Object.assign(j1,{insetStart:j1.insetInlineStart,insetEnd:j1.insetInlineEnd});var xre={ring:{transform:dn.ring},ringColor:oe.colors("--chakra-ring-color"),ringOffset:oe.prop("--chakra-ring-offset-width"),ringOffsetColor:oe.colors("--chakra-ring-offset-color"),ringInset:oe.prop("--chakra-ring-inset")},lr={margin:oe.spaceT("margin"),marginTop:oe.spaceT("marginTop"),marginBlockStart:oe.spaceT("marginBlockStart"),marginRight:oe.spaceT("marginRight"),marginInlineEnd:oe.spaceT("marginInlineEnd"),marginBottom:oe.spaceT("marginBottom"),marginBlockEnd:oe.spaceT("marginBlockEnd"),marginLeft:oe.spaceT("marginLeft"),marginInlineStart:oe.spaceT("marginInlineStart"),marginX:oe.spaceT(["marginInlineStart","marginInlineEnd"]),marginInline:oe.spaceT("marginInline"),marginY:oe.spaceT(["marginTop","marginBottom"]),marginBlock:oe.spaceT("marginBlock"),padding:oe.space("padding"),paddingTop:oe.space("paddingTop"),paddingBlockStart:oe.space("paddingBlockStart"),paddingRight:oe.space("paddingRight"),paddingBottom:oe.space("paddingBottom"),paddingBlockEnd:oe.space("paddingBlockEnd"),paddingLeft:oe.space("paddingLeft"),paddingInlineStart:oe.space("paddingInlineStart"),paddingInlineEnd:oe.space("paddingInlineEnd"),paddingX:oe.space(["paddingInlineStart","paddingInlineEnd"]),paddingInline:oe.space("paddingInline"),paddingY:oe.space(["paddingTop","paddingBottom"]),paddingBlock:oe.space("paddingBlock")};Object.assign(lr,{m:lr.margin,mt:lr.marginTop,mr:lr.marginRight,me:lr.marginInlineEnd,marginEnd:lr.marginInlineEnd,mb:lr.marginBottom,ml:lr.marginLeft,ms:lr.marginInlineStart,marginStart:lr.marginInlineStart,mx:lr.marginX,my:lr.marginY,p:lr.padding,pt:lr.paddingTop,py:lr.paddingY,px:lr.paddingX,pb:lr.paddingBottom,pl:lr.paddingLeft,ps:lr.paddingInlineStart,paddingStart:lr.paddingInlineStart,pr:lr.paddingRight,pe:lr.paddingInlineEnd,paddingEnd:lr.paddingInlineEnd});var Sre={textDecorationColor:oe.colors("textDecorationColor"),textDecoration:!0,textDecor:{property:"textDecoration"},textDecorationLine:!0,textDecorationStyle:!0,textDecorationThickness:!0,textUnderlineOffset:!0,textShadow:oe.shadows("textShadow")},wre={clipPath:!0,transform:oe.propT("transform",dn.transform),transformOrigin:!0,translateX:oe.spaceT("--chakra-translate-x"),translateY:oe.spaceT("--chakra-translate-y"),skewX:oe.degreeT("--chakra-skew-x"),skewY:oe.degreeT("--chakra-skew-y"),scaleX:oe.prop("--chakra-scale-x"),scaleY:oe.prop("--chakra-scale-y"),scale:oe.prop(["--chakra-scale-x","--chakra-scale-y"]),rotate:oe.degreeT("--chakra-rotate")},Cre={transition:!0,transitionDelay:!0,animation:!0,willChange:!0,transitionDuration:oe.prop("transitionDuration","transition.duration"),transitionProperty:oe.prop("transitionProperty","transition.property"),transitionTimingFunction:oe.prop("transitionTimingFunction","transition.easing")},_re={fontFamily:oe.prop("fontFamily","fonts"),fontSize:oe.prop("fontSize","fontSizes",dn.px),fontWeight:oe.prop("fontWeight","fontWeights"),lineHeight:oe.prop("lineHeight","lineHeights"),letterSpacing:oe.prop("letterSpacing","letterSpacings"),textAlign:!0,fontStyle:!0,textIndent:!0,wordBreak:!0,overflowWrap:!0,textOverflow:!0,textTransform:!0,whiteSpace:!0,isTruncated:{transform(e){if(e===!0)return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}},noOfLines:{static:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"var(--chakra-line-clamp)"},property:"--chakra-line-clamp"}},kre={scrollBehavior:!0,scrollSnapAlign:!0,scrollSnapStop:!0,scrollSnapType:!0,scrollMargin:oe.spaceT("scrollMargin"),scrollMarginTop:oe.spaceT("scrollMarginTop"),scrollMarginBottom:oe.spaceT("scrollMarginBottom"),scrollMarginLeft:oe.spaceT("scrollMarginLeft"),scrollMarginRight:oe.spaceT("scrollMarginRight"),scrollMarginX:oe.spaceT(["scrollMarginLeft","scrollMarginRight"]),scrollMarginY:oe.spaceT(["scrollMarginTop","scrollMarginBottom"]),scrollPadding:oe.spaceT("scrollPadding"),scrollPaddingTop:oe.spaceT("scrollPaddingTop"),scrollPaddingBottom:oe.spaceT("scrollPaddingBottom"),scrollPaddingLeft:oe.spaceT("scrollPaddingLeft"),scrollPaddingRight:oe.spaceT("scrollPaddingRight"),scrollPaddingX:oe.spaceT(["scrollPaddingLeft","scrollPaddingRight"]),scrollPaddingY:oe.spaceT(["scrollPaddingTop","scrollPaddingBottom"])};function gF(e){return lo(e)&&e.reference?e.reference:String(e)}var Ew=(e,...t)=>t.map(gF).join(` ${e} `).replace(/calc/g,""),qM=(...e)=>`calc(${Ew("+",...e)})`,KM=(...e)=>`calc(${Ew("-",...e)})`,b_=(...e)=>`calc(${Ew("*",...e)})`,YM=(...e)=>`calc(${Ew("/",...e)})`,XM=e=>{const t=gF(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:b_(t,-1)},wh=Object.assign(e=>({add:(...t)=>wh(qM(e,...t)),subtract:(...t)=>wh(KM(e,...t)),multiply:(...t)=>wh(b_(e,...t)),divide:(...t)=>wh(YM(e,...t)),negate:()=>wh(XM(e)),toString:()=>e.toString()}),{add:qM,subtract:KM,multiply:b_,divide:YM,negate:XM});function Ere(e,t="-"){return e.replace(/\s+/g,t)}function Pre(e){const t=Ere(e.toString());return Mre(Tre(t))}function Tre(e){return e.includes("\\.")?e:!Number.isInteger(parseFloat(e.toString()))?e.replace(".","\\."):e}function Mre(e){return e.replace(/[!-,/:-@[-^`{-~]/g,"\\$&")}function Lre(e,t=""){return[t,e].filter(Boolean).join("-")}function Are(e,t){return`var(${e}${t?`, ${t}`:""})`}function Ore(e,t=""){return Pre(`--${Lre(e,t)}`)}function vn(e,t,n){const r=Ore(e,n);return{variable:r,reference:Are(r,t)}}function Ire(e){const t=e==null?0:e.length;return t?e[t-1]:void 0}function Rre(e){const t=parseFloat(e.toString()),n=e.toString().replace(String(t),"");return{unitless:!n,value:t,unit:n}}function x_(e){if(e==null)return e;const{unitless:t}=Rre(e);return t||typeof e=="number"?`${e}px`:e}var mF=(e,t)=>parseInt(e[1],10)>parseInt(t[1],10)?1:-1,I9=e=>Object.fromEntries(Object.entries(e).sort(mF));function ZM(e){const t=I9(e);return Object.assign(Object.values(t),t)}function Dre(e){const t=Object.keys(I9(e));return new Set(t)}function QM(e){var t;if(!e)return e;e=(t=x_(e))!=null?t:e;const n=-.02;return typeof e=="number"?`${e+n}`:e.replace(/(\d+\.?\d*)/u,r=>`${parseFloat(r)+n}`)}function d1(e,t){const n=["@media screen"];return e&&n.push("and",`(min-width: ${x_(e)})`),t&&n.push("and",`(max-width: ${x_(t)})`),n.join(" ")}function jre(e){var t;if(!e)return null;e.base=(t=e.base)!=null?t:"0px";const n=ZM(e),r=Object.entries(e).sort(mF).map(([a,s],l,u)=>{var d;let[,h]=(d=u[l+1])!=null?d:[];return h=parseFloat(h)>0?QM(h):void 0,{_minW:QM(s),breakpoint:a,minW:s,maxW:h,maxWQuery:d1(null,h),minWQuery:d1(s),minMaxQuery:d1(s,h)}}),i=Dre(e),o=Array.from(i.values());return{keys:i,normalized:n,isResponsive(a){const s=Object.keys(a);return s.length>0&&s.every(l=>i.has(l))},asObject:I9(e),asArray:ZM(e),details:r,get(a){return r.find(s=>s.breakpoint===a)},media:[null,...n.map(a=>d1(a)).slice(1)],toArrayValue(a){if(!lo(a))throw new Error("toArrayValue: value must be an object");const s=o.map(l=>{var u;return(u=a[l])!=null?u:null});for(;Ire(s)===null;)s.pop();return s},toObjectValue(a){if(!Array.isArray(a))throw new Error("toObjectValue: value must be an array");return a.reduce((s,l,u)=>{const d=o[u];return d!=null&&l!=null&&(s[d]=l),s},{})}}}var Wi={hover:(e,t)=>`${e}:hover ${t}, ${e}[data-hover] ${t}`,focus:(e,t)=>`${e}:focus ${t}, ${e}[data-focus] ${t}`,focusVisible:(e,t)=>`${e}:focus-visible ${t}`,focusWithin:(e,t)=>`${e}:focus-within ${t}`,active:(e,t)=>`${e}:active ${t}, ${e}[data-active] ${t}`,disabled:(e,t)=>`${e}:disabled ${t}, ${e}[data-disabled] ${t}`,invalid:(e,t)=>`${e}:invalid ${t}, ${e}[data-invalid] ${t}`,checked:(e,t)=>`${e}:checked ${t}, ${e}[data-checked] ${t}`,indeterminate:(e,t)=>`${e}:indeterminate ${t}, ${e}[aria-checked=mixed] ${t}, ${e}[data-indeterminate] ${t}`,readOnly:(e,t)=>`${e}:read-only ${t}, ${e}[readonly] ${t}, ${e}[data-read-only] ${t}`,expanded:(e,t)=>`${e}:read-only ${t}, ${e}[aria-expanded=true] ${t}, ${e}[data-expanded] ${t}`,placeholderShown:(e,t)=>`${e}:placeholder-shown ${t}`},ld=e=>vF(t=>e(t,"&"),"[role=group]","[data-group]",".group"),Iu=e=>vF(t=>e(t,"~ &"),"[data-peer]",".peer"),vF=(e,...t)=>t.map(e).join(", "),Pw={_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_highlighted:"&[data-highlighted]",_focusWithin:"&:focus-within",_focusVisible:"&:focus-visible, &[data-focus-visible]",_disabled:"&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]",_readOnly:"&[aria-readonly=true], &[readonly], &[data-readonly]",_before:"&::before",_after:"&::after",_empty:"&:empty",_expanded:"&[aria-expanded=true], &[data-expanded]",_checked:"&[aria-checked=true], &[data-checked]",_grabbed:"&[aria-grabbed=true], &[data-grabbed]",_pressed:"&[aria-pressed=true], &[data-pressed]",_invalid:"&[aria-invalid=true], &[data-invalid]",_valid:"&[data-valid], &[data-state=valid]",_loading:"&[data-loading], &[aria-busy=true]",_selected:"&[aria-selected=true], &[data-selected]",_hidden:"&[hidden], &[data-hidden]",_autofill:"&:-webkit-autofill",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_first:"&:first-of-type",_last:"&:last-of-type",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_visited:"&:visited",_activeLink:"&[aria-current=page]",_activeStep:"&[aria-current=step]",_indeterminate:"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]",_groupHover:ld(Wi.hover),_peerHover:Iu(Wi.hover),_groupFocus:ld(Wi.focus),_peerFocus:Iu(Wi.focus),_groupFocusVisible:ld(Wi.focusVisible),_peerFocusVisible:Iu(Wi.focusVisible),_groupActive:ld(Wi.active),_peerActive:Iu(Wi.active),_groupDisabled:ld(Wi.disabled),_peerDisabled:Iu(Wi.disabled),_groupInvalid:ld(Wi.invalid),_peerInvalid:Iu(Wi.invalid),_groupChecked:ld(Wi.checked),_peerChecked:Iu(Wi.checked),_groupFocusWithin:ld(Wi.focusWithin),_peerFocusWithin:Iu(Wi.focusWithin),_peerPlaceholderShown:Iu(Wi.placeholderShown),_placeholder:"&::placeholder",_placeholderShown:"&:placeholder-shown",_fullScreen:"&:fullscreen",_selection:"&::selection",_rtl:"[dir=rtl] &, &[dir=rtl]",_ltr:"[dir=ltr] &, &[dir=ltr]",_mediaDark:"@media (prefers-color-scheme: dark)",_mediaReduceMotion:"@media (prefers-reduced-motion: reduce)",_dark:".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]",_light:".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]"},Nre=Object.keys(Pw);function JM(e,t){return vn(String(e).replace(/\./g,"-"),void 0,t)}function $re(e,t){let n={};const r={};for(const[i,o]of Object.entries(e)){const{isSemantic:a,value:s}=o,{variable:l,reference:u}=JM(i,t==null?void 0:t.cssVarPrefix);if(!a){if(i.startsWith("space")){const m=i.split("."),[y,...b]=m,w=`${y}.-${b.join(".")}`,E=wh.negate(s),_=wh.negate(u);r[w]={value:E,var:l,varRef:_}}n[l]=s,r[i]={value:s,var:l,varRef:u};continue}const d=m=>{const b=[String(i).split(".")[0],m].join(".");if(!e[b])return m;const{reference:E}=JM(b,t==null?void 0:t.cssVarPrefix);return E},h=lo(s)?s:{default:s};n=as(n,Object.entries(h).reduce((m,[y,b])=>{var w,E;const _=d(b);if(y==="default")return m[l]=_,m;const k=(E=(w=Pw)==null?void 0:w[y])!=null?E:y;return m[k]={[l]:_},m},{})),r[i]={value:u,var:l,varRef:u}}return{cssVars:n,cssMap:r}}function Fre(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function Bre(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}var zre=["colors","borders","borderWidths","borderStyles","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","space","shadows","sizes","zIndices","transition","blur","breakpoints"];function Hre(e){return Bre(e,zre)}function Wre(e){return e.semanticTokens}function Vre(e){const{__cssMap:t,__cssVars:n,__breakpoints:r,...i}=e;return i}function Ure({tokens:e,semanticTokens:t}){var n,r;const i=Object.entries((n=S_(e))!=null?n:{}).map(([a,s])=>[a,{isSemantic:!1,value:s}]),o=Object.entries((r=S_(t,1))!=null?r:{}).map(([a,s])=>[a,{isSemantic:!0,value:s}]);return Object.fromEntries([...i,...o])}function S_(e,t=1/0){return!lo(e)&&!Array.isArray(e)||!t?e:Object.entries(e).reduce((n,[r,i])=>(lo(i)||Array.isArray(i)?Object.entries(S_(i,t-1)).forEach(([o,a])=>{n[`${r}.${o}`]=a}):n[r]=i,n),{})}function Gre(e){var t;const n=Vre(e),r=Hre(n),i=Wre(n),o=Ure({tokens:r,semanticTokens:i}),a=(t=n.config)==null?void 0:t.cssVarPrefix,{cssMap:s,cssVars:l}=$re(o,{cssVarPrefix:a});return Object.assign(n,{__cssVars:{...{"--chakra-ring-inset":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-ring-offset-width":"0px","--chakra-ring-offset-color":"#fff","--chakra-ring-color":"rgba(66, 153, 225, 0.6)","--chakra-ring-offset-shadow":"0 0 #0000","--chakra-ring-shadow":"0 0 #0000","--chakra-space-x-reverse":"0","--chakra-space-y-reverse":"0"},...l},__cssMap:s,__breakpoints:jre(n.breakpoints)}),n}var R9=as({},qx,xn,cre,qS,Qa,dre,xre,fre,pF,bre,j1,y_,lr,kre,_re,Sre,wre,hre,Cre),qre=Object.assign({},lr,Qa,qS,pF,j1),yF=Object.keys(qre),Kre=[...Object.keys(R9),...Nre],Yre={...R9,...Pw},Xre=e=>e in Yre,Zre=e=>t=>{if(!t.__breakpoints)return e;const{isResponsive:n,toArrayValue:r,media:i}=t.__breakpoints,o={};for(const a in e){let s=os(e[a],t);if(s==null)continue;if(s=lo(s)&&n(s)?r(s):s,!Array.isArray(s)){o[a]=s;continue}const l=s.slice(0,i.length).length;for(let u=0;ue.startsWith("--")&&typeof t=="string"&&!Jre(t),tie=(e,t)=>{var n,r;if(t==null)return t;const i=l=>{var u,d;return(d=(u=e.__cssMap)==null?void 0:u[l])==null?void 0:d.varRef},o=l=>{var u;return(u=i(l))!=null?u:l},[a,s]=Qre(t);return t=(r=(n=i(a))!=null?n:o(s))!=null?r:o(t),t};function nie(e){const{configs:t={},pseudos:n={},theme:r}=e,i=(o,a=!1)=>{var s,l,u;const d=os(o,r),h=Zre(d)(r);let m={};for(let y in h){const b=h[y];let w=os(b,r);y in n&&(y=n[y]),eie(y,w)&&(w=tie(r,w));let E=t[y];if(E===!0&&(E={property:y}),lo(w)){m[y]=(s=m[y])!=null?s:{},m[y]=as({},m[y],i(w,!0));continue}let _=(u=(l=E==null?void 0:E.transform)==null?void 0:l.call(E,w,r,d))!=null?u:w;_=E!=null&&E.processResult?i(_,!0):_;const k=os(E==null?void 0:E.property,r);if(!a&&(E!=null&&E.static)){const P=os(E.static,r);m=as({},m,P)}if(k&&Array.isArray(k)){for(const P of k)m[P]=_;continue}if(k){k==="&"&&lo(_)?m=as({},m,_):m[k]=_;continue}if(lo(_)){m=as({},m,_);continue}m[y]=_}return m};return i}var bF=e=>t=>nie({theme:t,pseudos:Pw,configs:R9})(e);function cn(e){return{definePartsStyle(t){return t},defineMultiStyleConfig(t){return{parts:e,...t}}}}function rie(e,t){if(Array.isArray(e))return e;if(lo(e))return t(e);if(e!=null)return[e]}function iie(e,t){for(let n=t+1;n{as(u,{[P]:m?k[P]:{[_]:k[P]}})});continue}if(!y){m?as(u,k):u[_]=k;continue}u[_]=k}}return u}}function aie(e){return t=>{var n;const{variant:r,size:i,theme:o}=t,a=oie(o);return as({},os((n=e.baseStyle)!=null?n:{},t),a(e,"sizes",i,t),a(e,"variants",r,t))}}function sie(e,t,n){var r,i,o;return(o=(i=(r=e.__cssMap)==null?void 0:r[`${t}.${n}`])==null?void 0:i.varRef)!=null?o:n}function pr(e){return Fre(e,["styleConfig","size","variant","colorScheme"])}var lie=["borders","breakpoints","colors","components","config","direction","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","shadows","sizes","space","styles","transition","zIndices"];function uie(e){return lo(e)?lie.every(t=>Object.prototype.hasOwnProperty.call(e,t)):!1}var cie={hide:-1,auto:"auto",base:0,docked:10,dropdown:1e3,sticky:1100,banner:1200,overlay:1300,modal:1400,popover:1500,skipLink:1600,toast:1700,tooltip:1800},die=cie,fie={base:"0em",sm:"30em",md:"48em",lg:"62em",xl:"80em","2xl":"96em"},hie=fie,pie={transparent:"transparent",current:"currentColor",black:"#000000",white:"#FFFFFF",whiteAlpha:{50:"rgba(255, 255, 255, 0.04)",100:"rgba(255, 255, 255, 0.06)",200:"rgba(255, 255, 255, 0.08)",300:"rgba(255, 255, 255, 0.16)",400:"rgba(255, 255, 255, 0.24)",500:"rgba(255, 255, 255, 0.36)",600:"rgba(255, 255, 255, 0.48)",700:"rgba(255, 255, 255, 0.64)",800:"rgba(255, 255, 255, 0.80)",900:"rgba(255, 255, 255, 0.92)"},blackAlpha:{50:"rgba(0, 0, 0, 0.04)",100:"rgba(0, 0, 0, 0.06)",200:"rgba(0, 0, 0, 0.08)",300:"rgba(0, 0, 0, 0.16)",400:"rgba(0, 0, 0, 0.24)",500:"rgba(0, 0, 0, 0.36)",600:"rgba(0, 0, 0, 0.48)",700:"rgba(0, 0, 0, 0.64)",800:"rgba(0, 0, 0, 0.80)",900:"rgba(0, 0, 0, 0.92)"},gray:{50:"#F7FAFC",100:"#EDF2F7",200:"#E2E8F0",300:"#CBD5E0",400:"#A0AEC0",500:"#718096",600:"#4A5568",700:"#2D3748",800:"#1A202C",900:"#171923"},red:{50:"#FFF5F5",100:"#FED7D7",200:"#FEB2B2",300:"#FC8181",400:"#F56565",500:"#E53E3E",600:"#C53030",700:"#9B2C2C",800:"#822727",900:"#63171B"},orange:{50:"#FFFAF0",100:"#FEEBC8",200:"#FBD38D",300:"#F6AD55",400:"#ED8936",500:"#DD6B20",600:"#C05621",700:"#9C4221",800:"#7B341E",900:"#652B19"},yellow:{50:"#FFFFF0",100:"#FEFCBF",200:"#FAF089",300:"#F6E05E",400:"#ECC94B",500:"#D69E2E",600:"#B7791F",700:"#975A16",800:"#744210",900:"#5F370E"},green:{50:"#F0FFF4",100:"#C6F6D5",200:"#9AE6B4",300:"#68D391",400:"#48BB78",500:"#38A169",600:"#2F855A",700:"#276749",800:"#22543D",900:"#1C4532"},teal:{50:"#E6FFFA",100:"#B2F5EA",200:"#81E6D9",300:"#4FD1C5",400:"#38B2AC",500:"#319795",600:"#2C7A7B",700:"#285E61",800:"#234E52",900:"#1D4044"},blue:{50:"#ebf8ff",100:"#bee3f8",200:"#90cdf4",300:"#63b3ed",400:"#4299e1",500:"#3182ce",600:"#2b6cb0",700:"#2c5282",800:"#2a4365",900:"#1A365D"},cyan:{50:"#EDFDFD",100:"#C4F1F9",200:"#9DECF9",300:"#76E4F7",400:"#0BC5EA",500:"#00B5D8",600:"#00A3C4",700:"#0987A0",800:"#086F83",900:"#065666"},purple:{50:"#FAF5FF",100:"#E9D8FD",200:"#D6BCFA",300:"#B794F4",400:"#9F7AEA",500:"#805AD5",600:"#6B46C1",700:"#553C9A",800:"#44337A",900:"#322659"},pink:{50:"#FFF5F7",100:"#FED7E2",200:"#FBB6CE",300:"#F687B3",400:"#ED64A6",500:"#D53F8C",600:"#B83280",700:"#97266D",800:"#702459",900:"#521B41"},linkedin:{50:"#E8F4F9",100:"#CFEDFB",200:"#9BDAF3",300:"#68C7EC",400:"#34B3E4",500:"#00A0DC",600:"#008CC9",700:"#0077B5",800:"#005E93",900:"#004471"},facebook:{50:"#E8F4F9",100:"#D9DEE9",200:"#B7C2DA",300:"#6482C0",400:"#4267B2",500:"#385898",600:"#314E89",700:"#29487D",800:"#223B67",900:"#1E355B"},messenger:{50:"#D0E6FF",100:"#B9DAFF",200:"#A2CDFF",300:"#7AB8FF",400:"#2E90FF",500:"#0078FF",600:"#0063D1",700:"#0052AC",800:"#003C7E",900:"#002C5C"},whatsapp:{50:"#dffeec",100:"#b9f5d0",200:"#90edb3",300:"#65e495",400:"#3cdd78",500:"#22c35e",600:"#179848",700:"#0c6c33",800:"#01421c",900:"#001803"},twitter:{50:"#E5F4FD",100:"#C8E9FB",200:"#A8DCFA",300:"#83CDF7",400:"#57BBF5",500:"#1DA1F2",600:"#1A94DA",700:"#1681BF",800:"#136B9E",900:"#0D4D71"},telegram:{50:"#E3F2F9",100:"#C5E4F3",200:"#A2D4EC",300:"#7AC1E4",400:"#47A9DA",500:"#0088CC",600:"#007AB8",700:"#006BA1",800:"#005885",900:"#003F5E"}},gie=pie,mie={none:"0",sm:"0.125rem",base:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},vie=mie,yie={xs:"0 0 0 1px rgba(0, 0, 0, 0.05)",sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",outline:"0 0 0 3px rgba(66, 153, 225, 0.6)",inner:"inset 0 2px 4px 0 rgba(0,0,0,0.06)",none:"none","dark-lg":"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px"},bie=yie,xie={common:"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform",colors:"background-color, border-color, color, fill, stroke",dimensions:"width, height",position:"left, right, top, bottom",background:"background-color, background-image, background-position"},Sie={"ease-in":"cubic-bezier(0.4, 0, 1, 1)","ease-out":"cubic-bezier(0, 0, 0.2, 1)","ease-in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},wie={"ultra-fast":"50ms",faster:"100ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"400ms","ultra-slow":"500ms"},Cie={property:xie,easing:Sie,duration:wie},_ie=Cie,kie={none:0,sm:"4px",base:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},Eie=kie,Pie={none:0,"1px":"1px solid","2px":"2px solid","4px":"4px solid","8px":"8px solid"},Tie=Pie,Mie={letterSpacings:{tighter:"-0.05em",tight:"-0.025em",normal:"0",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeights:{normal:"normal",none:1,shorter:1.25,short:1.375,base:1.5,tall:1.625,taller:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},fonts:{heading:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',body:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',mono:'SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'},fontSizes:{"3xs":"0.45rem","2xs":"0.625rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"}},xF=Mie,SF={px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},Lie={max:"max-content",min:"min-content",full:"100%","3xs":"14rem","2xs":"16rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem","8xl":"90rem",prose:"60ch"},Aie={sm:"640px",md:"768px",lg:"1024px",xl:"1280px"},Oie={...SF,...Lie,container:Aie},wF=Oie,Iie={breakpoints:hie,zIndices:die,radii:vie,blur:Eie,colors:gie,...xF,sizes:wF,shadows:bie,space:SF,borders:Tie,transition:_ie};function Tn(e,t={}){let n=!1;function r(){if(!n){n=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function i(...d){r();for(const h of d)t[h]=l(h);return Tn(e,t)}function o(...d){for(const h of d)h in t||(t[h]=l(h));return Tn(e,t)}function a(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.selector]))}function s(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.className]))}function l(d){const y=`chakra-${(["container","root"].includes(d??"")?[e]:[e,d]).filter(Boolean).join("__")}`;return{className:y,selector:`.${y}`,toString:()=>d}}return{parts:i,toPart:l,extend:o,selectors:a,classnames:s,get keys(){return Object.keys(t)},__type:{}}}var Rie=Tn("accordion").parts("root","container","button","panel").extend("icon"),Die=Tn("alert").parts("title","description","container").extend("icon","spinner"),jie=Tn("avatar").parts("label","badge","container").extend("excessLabel","group"),Nie=Tn("breadcrumb").parts("link","item","container").extend("separator");Tn("button").parts();var $ie=Tn("checkbox").parts("control","icon","container").extend("label");Tn("progress").parts("track","filledTrack").extend("label");var Fie=Tn("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),Bie=Tn("editable").parts("preview","input","textarea"),zie=Tn("form").parts("container","requiredIndicator","helperText"),Hie=Tn("formError").parts("text","icon"),Wie=Tn("input").parts("addon","field","element"),Vie=Tn("list").parts("container","item","icon"),Uie=Tn("menu").parts("button","list","item").extend("groupTitle","command","divider"),Gie=Tn("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),qie=Tn("numberinput").parts("root","field","stepperGroup","stepper");Tn("pininput").parts("field");var Kie=Tn("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),Yie=Tn("progress").parts("label","filledTrack","track"),Xie=Tn("radio").parts("container","control","label"),Zie=Tn("select").parts("field","icon"),Qie=Tn("slider").parts("container","track","thumb","filledTrack","mark"),Jie=Tn("stat").parts("container","label","helpText","number","icon"),eoe=Tn("switch").parts("container","track","thumb"),toe=Tn("table").parts("table","thead","tbody","tr","th","td","tfoot","caption"),noe=Tn("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator"),roe=Tn("tag").parts("container","label","closeButton"),ioe=Tn("card").parts("container","header","body","footer");function Th(e,t,n){return Math.min(Math.max(e,n),t)}class ooe extends Error{constructor(t){super(`Failed to parse color: "${t}"`)}}var f1=ooe;function D9(e){if(typeof e!="string")throw new f1(e);if(e.trim().toLowerCase()==="transparent")return[0,0,0,0];let t=e.trim();t=hoe.test(e)?loe(e):e;const n=uoe.exec(t);if(n){const a=Array.from(n).slice(1);return[...a.slice(0,3).map(s=>parseInt(_y(s,2),16)),parseInt(_y(a[3]||"f",2),16)/255]}const r=coe.exec(t);if(r){const a=Array.from(r).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,16)),parseInt(a[3]||"ff",16)/255]}const i=doe.exec(t);if(i){const a=Array.from(i).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,10)),parseFloat(a[3]||"1")]}const o=foe.exec(t);if(o){const[a,s,l,u]=Array.from(o).slice(1).map(parseFloat);if(Th(0,100,s)!==s)throw new f1(e);if(Th(0,100,l)!==l)throw new f1(e);return[...poe(a,s,l),Number.isNaN(u)?1:u]}throw new f1(e)}function aoe(e){let t=5381,n=e.length;for(;n;)t=t*33^e.charCodeAt(--n);return(t>>>0)%2341}const eL=e=>parseInt(e.replace(/_/g,""),36),soe="1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e,t)=>{const n=eL(t.substring(0,3)),r=eL(t.substring(3)).toString(16);let i="";for(let o=0;o<6-r.length;o++)i+="0";return e[n]=`${i}${r}`,e},{});function loe(e){const t=e.toLowerCase().trim(),n=soe[aoe(t)];if(!n)throw new f1(e);return`#${n}`}const _y=(e,t)=>Array.from(Array(t)).map(()=>e).join(""),uoe=new RegExp(`^#${_y("([a-f0-9])",3)}([a-f0-9])?$`,"i"),coe=new RegExp(`^#${_y("([a-f0-9]{2})",3)}([a-f0-9]{2})?$`,"i"),doe=new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${_y(",\\s*(\\d+)\\s*",2)}(?:,\\s*([\\d.]+))?\\s*\\)$`,"i"),foe=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i,hoe=/^[a-z]+$/i,tL=e=>Math.round(e*255),poe=(e,t,n)=>{let r=n/100;if(t===0)return[r,r,r].map(tL);const i=(e%360+360)%360/60,o=(1-Math.abs(2*r-1))*(t/100),a=o*(1-Math.abs(i%2-1));let s=0,l=0,u=0;i>=0&&i<1?(s=o,l=a):i>=1&&i<2?(s=a,l=o):i>=2&&i<3?(l=o,u=a):i>=3&&i<4?(l=a,u=o):i>=4&&i<5?(s=a,u=o):i>=5&&i<6&&(s=o,u=a);const d=r-o/2,h=s+d,m=l+d,y=u+d;return[h,m,y].map(tL)};function goe(e,t,n,r){return`rgba(${Th(0,255,e).toFixed()}, ${Th(0,255,t).toFixed()}, ${Th(0,255,n).toFixed()}, ${parseFloat(Th(0,1,r).toFixed(3))})`}function moe(e,t){const[n,r,i,o]=D9(e);return goe(n,r,i,o-t)}function voe(e){const[t,n,r,i]=D9(e);let o=a=>{const s=Th(0,255,a).toString(16);return s.length===1?`0${s}`:s};return`#${o(t)}${o(n)}${o(r)}${i<1?o(Math.round(i*255)):""}`}function yoe(e,t,n,r,i){for(t=t.split?t.split("."):t,r=0;rObject.keys(e).length===0,_o=(e,t,n)=>{const r=yoe(e,`colors.${t}`,t);try{return voe(r),r}catch{return n??"#000000"}},xoe=e=>{const[t,n,r]=D9(e);return(t*299+n*587+r*114)/1e3},Soe=e=>t=>{const n=_o(t,e);return xoe(n)<128?"dark":"light"},woe=e=>t=>Soe(e)(t)==="dark",Km=(e,t)=>n=>{const r=_o(n,e);return moe(r,1-t)};function nL(e="1rem",t="rgba(255, 255, 255, 0.15)"){return{backgroundImage:`linear-gradient( + 45deg, + ${t} 25%, + transparent 25%, + transparent 50%, + ${t} 50%, + ${t} 75%, + transparent 75%, + transparent + )`,backgroundSize:`${e} ${e}`}}var Coe=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`;function _oe(e){const t=Coe();return!e||boe(e)?t:e.string&&e.colors?Eoe(e.string,e.colors):e.string&&!e.colors?koe(e.string):e.colors&&!e.string?Poe(e.colors):t}function koe(e){let t=0;if(e.length===0)return t.toString();for(let r=0;r>r*8&255;n+=`00${i.toString(16)}`.substr(-2)}return n}function Eoe(e,t){let n=0;if(e.length===0)return t[0];for(let r=0;rn.colorMode==="dark"?t:e}function j9(e){const{orientation:t,vertical:n,horizontal:r}=e;return t?t==="vertical"?n:r:{}}function CF(e){return lo(e)&&e.reference?e.reference:String(e)}var Tw=(e,...t)=>t.map(CF).join(` ${e} `).replace(/calc/g,""),rL=(...e)=>`calc(${Tw("+",...e)})`,iL=(...e)=>`calc(${Tw("-",...e)})`,w_=(...e)=>`calc(${Tw("*",...e)})`,oL=(...e)=>`calc(${Tw("/",...e)})`,aL=e=>{const t=CF(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:w_(t,-1)},Fu=Object.assign(e=>({add:(...t)=>Fu(rL(e,...t)),subtract:(...t)=>Fu(iL(e,...t)),multiply:(...t)=>Fu(w_(e,...t)),divide:(...t)=>Fu(oL(e,...t)),negate:()=>Fu(aL(e)),toString:()=>e.toString()}),{add:rL,subtract:iL,multiply:w_,divide:oL,negate:aL});function Toe(e){return!Number.isInteger(parseFloat(e.toString()))}function Moe(e,t="-"){return e.replace(/\s+/g,t)}function _F(e){const t=Moe(e.toString());return t.includes("\\.")?e:Toe(e)?t.replace(".","\\."):e}function Loe(e,t=""){return[t,_F(e)].filter(Boolean).join("-")}function Aoe(e,t){return`var(${_F(e)}${t?`, ${t}`:""})`}function Ooe(e,t=""){return`--${Loe(e,t)}`}function xi(e,t){const n=Ooe(e,t==null?void 0:t.prefix);return{variable:n,reference:Aoe(n,Ioe(t==null?void 0:t.fallback))}}function Ioe(e){return typeof e=="string"?e:e==null?void 0:e.reference}var{defineMultiStyleConfig:Roe,definePartsStyle:Kx}=cn(eoe.keys),N1=xi("switch-track-width"),Dh=xi("switch-track-height"),z5=xi("switch-track-diff"),Doe=Fu.subtract(N1,Dh),C_=xi("switch-thumb-x"),Wv=xi("switch-bg"),joe=e=>{const{colorScheme:t}=e;return{borderRadius:"full",p:"0.5",width:[N1.reference],height:[Dh.reference],transitionProperty:"common",transitionDuration:"fast",[Wv.variable]:"colors.gray.300",_dark:{[Wv.variable]:"colors.whiteAlpha.400"},_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed"},_checked:{[Wv.variable]:`colors.${t}.500`,_dark:{[Wv.variable]:`colors.${t}.200`}},bg:Wv.reference}},Noe={bg:"white",transitionProperty:"transform",transitionDuration:"normal",borderRadius:"inherit",width:[Dh.reference],height:[Dh.reference],_checked:{transform:`translateX(${C_.reference})`}},$oe=Kx(e=>({container:{[z5.variable]:Doe,[C_.variable]:z5.reference,_rtl:{[C_.variable]:Fu(z5).negate().toString()}},track:joe(e),thumb:Noe})),Foe={sm:Kx({container:{[N1.variable]:"1.375rem",[Dh.variable]:"sizes.3"}}),md:Kx({container:{[N1.variable]:"1.875rem",[Dh.variable]:"sizes.4"}}),lg:Kx({container:{[N1.variable]:"2.875rem",[Dh.variable]:"sizes.6"}})},Boe=Roe({baseStyle:$oe,sizes:Foe,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:zoe,definePartsStyle:_m}=cn(toe.keys),Hoe=_m({table:{fontVariantNumeric:"lining-nums tabular-nums",borderCollapse:"collapse",width:"full"},th:{fontFamily:"heading",fontWeight:"bold",textTransform:"uppercase",letterSpacing:"wider",textAlign:"start"},td:{textAlign:"start"},caption:{mt:4,fontFamily:"heading",textAlign:"center",fontWeight:"medium"}}),KS={"&[data-is-numeric=true]":{textAlign:"end"}},Woe=_m(e=>{const{colorScheme:t}=e;return{th:{color:Ct("gray.600","gray.400")(e),borderBottom:"1px",borderColor:Ct(`${t}.100`,`${t}.700`)(e),...KS},td:{borderBottom:"1px",borderColor:Ct(`${t}.100`,`${t}.700`)(e),...KS},caption:{color:Ct("gray.600","gray.100")(e)},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),Voe=_m(e=>{const{colorScheme:t}=e;return{th:{color:Ct("gray.600","gray.400")(e),borderBottom:"1px",borderColor:Ct(`${t}.100`,`${t}.700`)(e),...KS},td:{borderBottom:"1px",borderColor:Ct(`${t}.100`,`${t}.700`)(e),...KS},caption:{color:Ct("gray.600","gray.100")(e)},tbody:{tr:{"&:nth-of-type(odd)":{"th, td":{borderBottomWidth:"1px",borderColor:Ct(`${t}.100`,`${t}.700`)(e)},td:{background:Ct(`${t}.100`,`${t}.700`)(e)}}}},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),Uoe={simple:Woe,striped:Voe,unstyled:{}},Goe={sm:_m({th:{px:"4",py:"1",lineHeight:"4",fontSize:"xs"},td:{px:"4",py:"2",fontSize:"sm",lineHeight:"4"},caption:{px:"4",py:"2",fontSize:"xs"}}),md:_m({th:{px:"6",py:"3",lineHeight:"4",fontSize:"xs"},td:{px:"6",py:"4",lineHeight:"5"},caption:{px:"6",py:"2",fontSize:"sm"}}),lg:_m({th:{px:"8",py:"4",lineHeight:"5",fontSize:"sm"},td:{px:"8",py:"5",lineHeight:"6"},caption:{px:"6",py:"2",fontSize:"md"}})},qoe=zoe({baseStyle:Hoe,variants:Uoe,sizes:Goe,defaultProps:{variant:"simple",size:"md",colorScheme:"gray"}}),Ko=vn("tabs-color"),qs=vn("tabs-bg"),$b=vn("tabs-border-color"),{defineMultiStyleConfig:Koe,definePartsStyle:Xl}=cn(noe.keys),Yoe=e=>{const{orientation:t}=e;return{display:t==="vertical"?"flex":"block"}},Xoe=e=>{const{isFitted:t}=e;return{flex:t?1:void 0,transitionProperty:"common",transitionDuration:"normal",_focusVisible:{zIndex:1,boxShadow:"outline"},_disabled:{cursor:"not-allowed",opacity:.4}}},Zoe=e=>{const{align:t="start",orientation:n}=e;return{justifyContent:{end:"flex-end",center:"center",start:"flex-start"}[t],flexDirection:n==="vertical"?"column":"row"}},Qoe={p:4},Joe=Xl(e=>({root:Yoe(e),tab:Xoe(e),tablist:Zoe(e),tabpanel:Qoe})),eae={sm:Xl({tab:{py:1,px:4,fontSize:"sm"}}),md:Xl({tab:{fontSize:"md",py:2,px:4}}),lg:Xl({tab:{fontSize:"lg",py:3,px:4}})},tae=Xl(e=>{const{colorScheme:t,orientation:n}=e,r=n==="vertical",i=n==="vertical"?"borderStart":"borderBottom",o=r?"marginStart":"marginBottom";return{tablist:{[i]:"2px solid",borderColor:"inherit"},tab:{[i]:"2px solid",borderColor:"transparent",[o]:"-2px",_selected:{[Ko.variable]:`colors.${t}.600`,_dark:{[Ko.variable]:`colors.${t}.300`},borderColor:"currentColor"},_active:{[qs.variable]:"colors.gray.200",_dark:{[qs.variable]:"colors.whiteAlpha.300"}},_disabled:{_active:{bg:"none"}},color:Ko.reference,bg:qs.reference}}}),nae=Xl(e=>{const{colorScheme:t}=e;return{tab:{borderTopRadius:"md",border:"1px solid",borderColor:"transparent",mb:"-1px",[$b.variable]:"transparent",_selected:{[Ko.variable]:`colors.${t}.600`,[$b.variable]:"colors.white",_dark:{[Ko.variable]:`colors.${t}.300`,[$b.variable]:"colors.gray.800"},borderColor:"inherit",borderBottomColor:$b.reference},color:Ko.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),rae=Xl(e=>{const{colorScheme:t}=e;return{tab:{border:"1px solid",borderColor:"inherit",[qs.variable]:"colors.gray.50",_dark:{[qs.variable]:"colors.whiteAlpha.50"},mb:"-1px",_notLast:{marginEnd:"-1px"},_selected:{[qs.variable]:"colors.white",[Ko.variable]:`colors.${t}.600`,_dark:{[qs.variable]:"colors.gray.800",[Ko.variable]:`colors.${t}.300`},borderColor:"inherit",borderTopColor:"currentColor",borderBottomColor:"transparent"},color:Ko.reference,bg:qs.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),iae=Xl(e=>{const{colorScheme:t,theme:n}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",color:"gray.600",_selected:{color:_o(n,`${t}.700`),bg:_o(n,`${t}.100`)}}}}),oae=Xl(e=>{const{colorScheme:t}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",[Ko.variable]:"colors.gray.600",_dark:{[Ko.variable]:"inherit"},_selected:{[Ko.variable]:"colors.white",[qs.variable]:`colors.${t}.600`,_dark:{[Ko.variable]:"colors.gray.800",[qs.variable]:`colors.${t}.300`}},color:Ko.reference,bg:qs.reference}}}),aae=Xl({}),sae={line:tae,enclosed:nae,"enclosed-colored":rae,"soft-rounded":iae,"solid-rounded":oae,unstyled:aae},lae=Koe({baseStyle:Joe,sizes:eae,variants:sae,defaultProps:{size:"md",variant:"line",colorScheme:"blue"}}),uae={px:1,textTransform:"uppercase",fontSize:"xs",borderRadius:"sm",fontWeight:"bold"},km=vn("badge-bg"),Wl=vn("badge-color"),cae=e=>{const{colorScheme:t,theme:n}=e,r=Km(`${t}.500`,.6)(n);return{[km.variable]:`colors.${t}.500`,[Wl.variable]:"colors.white",_dark:{[km.variable]:r,[Wl.variable]:"colors.whiteAlpha.800"},bg:km.reference,color:Wl.reference}},dae=e=>{const{colorScheme:t,theme:n}=e,r=Km(`${t}.200`,.16)(n);return{[km.variable]:`colors.${t}.100`,[Wl.variable]:`colors.${t}.800`,_dark:{[km.variable]:r,[Wl.variable]:`colors.${t}.200`},bg:km.reference,color:Wl.reference}},fae=e=>{const{colorScheme:t,theme:n}=e,r=Km(`${t}.200`,.8)(n);return{[Wl.variable]:`colors.${t}.500`,_dark:{[Wl.variable]:r},color:Wl.reference,boxShadow:`inset 0 0 0px 1px ${Wl.reference}`}},hae={solid:cae,subtle:dae,outline:fae},$1={baseStyle:uae,variants:hae,defaultProps:{variant:"subtle",colorScheme:"gray"}},{defineMultiStyleConfig:pae,definePartsStyle:jh}=cn(roe.keys),gae={fontWeight:"medium",lineHeight:1.2,outline:0,borderRadius:"md",_focusVisible:{boxShadow:"outline"}},mae={lineHeight:1.2,overflow:"visible"},vae={fontSize:"lg",w:"5",h:"5",transitionProperty:"common",transitionDuration:"normal",borderRadius:"full",marginStart:"1.5",marginEnd:"-1",opacity:.5,_disabled:{opacity:.4},_focusVisible:{boxShadow:"outline",bg:"rgba(0, 0, 0, 0.14)"},_hover:{opacity:.8},_active:{opacity:1}},yae=jh({container:gae,label:mae,closeButton:vae}),bae={sm:jh({container:{minH:"5",minW:"5",fontSize:"xs",px:"2"},closeButton:{marginEnd:"-2px",marginStart:"0.35rem"}}),md:jh({container:{minH:"6",minW:"6",fontSize:"sm",px:"2"}}),lg:jh({container:{minH:"8",minW:"8",fontSize:"md",px:"3"}})},xae={subtle:jh(e=>{var t;return{container:(t=$1.variants)==null?void 0:t.subtle(e)}}),solid:jh(e=>{var t;return{container:(t=$1.variants)==null?void 0:t.solid(e)}}),outline:jh(e=>{var t;return{container:(t=$1.variants)==null?void 0:t.outline(e)}})},Sae=pae({variants:xae,baseStyle:yae,sizes:bae,defaultProps:{size:"md",variant:"subtle",colorScheme:"gray"}}),{definePartsStyle:Wu,defineMultiStyleConfig:wae}=cn(Wie.keys),Cae=Wu({field:{width:"100%",minWidth:0,outline:0,position:"relative",appearance:"none",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed"}}}),ud={lg:{fontSize:"lg",px:"4",h:"12",borderRadius:"md"},md:{fontSize:"md",px:"4",h:"10",borderRadius:"md"},sm:{fontSize:"sm",px:"3",h:"8",borderRadius:"sm"},xs:{fontSize:"xs",px:"2",h:"6",borderRadius:"sm"}},_ae={lg:Wu({field:ud.lg,addon:ud.lg}),md:Wu({field:ud.md,addon:ud.md}),sm:Wu({field:ud.sm,addon:ud.sm}),xs:Wu({field:ud.xs,addon:ud.xs})};function N9(e){const{focusBorderColor:t,errorBorderColor:n}=e;return{focusBorderColor:t||Ct("blue.500","blue.300")(e),errorBorderColor:n||Ct("red.500","red.300")(e)}}var kae=Wu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=N9(e);return{field:{border:"1px solid",borderColor:"inherit",bg:"inherit",_hover:{borderColor:Ct("gray.300","whiteAlpha.400")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:_o(t,r),boxShadow:`0 0 0 1px ${_o(t,r)}`},_focusVisible:{zIndex:1,borderColor:_o(t,n),boxShadow:`0 0 0 1px ${_o(t,n)}`}},addon:{border:"1px solid",borderColor:Ct("inherit","whiteAlpha.50")(e),bg:Ct("gray.100","whiteAlpha.300")(e)}}}),Eae=Wu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=N9(e);return{field:{border:"2px solid",borderColor:"transparent",bg:Ct("gray.100","whiteAlpha.50")(e),_hover:{bg:Ct("gray.200","whiteAlpha.100")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:_o(t,r)},_focusVisible:{bg:"transparent",borderColor:_o(t,n)}},addon:{border:"2px solid",borderColor:"transparent",bg:Ct("gray.100","whiteAlpha.50")(e)}}}),Pae=Wu(e=>{const{theme:t}=e,{focusBorderColor:n,errorBorderColor:r}=N9(e);return{field:{borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:_o(t,r),boxShadow:`0px 1px 0px 0px ${_o(t,r)}`},_focusVisible:{borderColor:_o(t,n),boxShadow:`0px 1px 0px 0px ${_o(t,n)}`}},addon:{borderBottom:"2px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent"}}}),Tae=Wu({field:{bg:"transparent",px:"0",height:"auto"},addon:{bg:"transparent",px:"0",height:"auto"}}),Mae={outline:kae,filled:Eae,flushed:Pae,unstyled:Tae},wn=wae({baseStyle:Cae,sizes:_ae,variants:Mae,defaultProps:{size:"md",variant:"outline"}}),sL,Lae={...(sL=wn.baseStyle)==null?void 0:sL.field,paddingY:"2",minHeight:"20",lineHeight:"short",verticalAlign:"top"},lL,uL,Aae={outline:e=>{var t,n;return(n=(t=wn.variants)==null?void 0:t.outline(e).field)!=null?n:{}},flushed:e=>{var t,n;return(n=(t=wn.variants)==null?void 0:t.flushed(e).field)!=null?n:{}},filled:e=>{var t,n;return(n=(t=wn.variants)==null?void 0:t.filled(e).field)!=null?n:{}},unstyled:(uL=(lL=wn.variants)==null?void 0:lL.unstyled.field)!=null?uL:{}},cL,dL,fL,hL,pL,gL,mL,vL,Oae={xs:(dL=(cL=wn.sizes)==null?void 0:cL.xs.field)!=null?dL:{},sm:(hL=(fL=wn.sizes)==null?void 0:fL.sm.field)!=null?hL:{},md:(gL=(pL=wn.sizes)==null?void 0:pL.md.field)!=null?gL:{},lg:(vL=(mL=wn.sizes)==null?void 0:mL.lg.field)!=null?vL:{}},Iae={baseStyle:Lae,sizes:Oae,variants:Aae,defaultProps:{size:"md",variant:"outline"}},Fb=xi("tooltip-bg"),H5=xi("tooltip-fg"),Rae=xi("popper-arrow-bg"),Dae={bg:Fb.reference,color:H5.reference,[Fb.variable]:"colors.gray.700",[H5.variable]:"colors.whiteAlpha.900",_dark:{[Fb.variable]:"colors.gray.300",[H5.variable]:"colors.gray.900"},[Rae.variable]:Fb.reference,px:"2",py:"0.5",borderRadius:"sm",fontWeight:"medium",fontSize:"sm",boxShadow:"md",maxW:"xs",zIndex:"tooltip"},jae={baseStyle:Dae},{defineMultiStyleConfig:Nae,definePartsStyle:h1}=cn(Yie.keys),$ae=e=>{const{colorScheme:t,theme:n,isIndeterminate:r,hasStripe:i}=e,o=Ct(nL(),nL("1rem","rgba(0,0,0,0.1)"))(e),a=Ct(`${t}.500`,`${t}.200`)(e),s=`linear-gradient( + to right, + transparent 0%, + ${_o(n,a)} 50%, + transparent 100% + )`;return{...!r&&i&&o,...r?{bgImage:s}:{bgColor:a}}},Fae={lineHeight:"1",fontSize:"0.25em",fontWeight:"bold",color:"white"},Bae=e=>({bg:Ct("gray.100","whiteAlpha.300")(e)}),zae=e=>({transitionProperty:"common",transitionDuration:"slow",...$ae(e)}),Hae=h1(e=>({label:Fae,filledTrack:zae(e),track:Bae(e)})),Wae={xs:h1({track:{h:"1"}}),sm:h1({track:{h:"2"}}),md:h1({track:{h:"3"}}),lg:h1({track:{h:"4"}})},Vae=Nae({sizes:Wae,baseStyle:Hae,defaultProps:{size:"md",colorScheme:"blue"}}),Uae=e=>typeof e=="function";function To(e,...t){return Uae(e)?e(...t):e}var{definePartsStyle:Yx,defineMultiStyleConfig:Gae}=cn($ie.keys),F1=vn("checkbox-size"),qae=e=>{const{colorScheme:t}=e;return{w:F1.reference,h:F1.reference,transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:Ct(`${t}.500`,`${t}.200`)(e),borderColor:Ct(`${t}.500`,`${t}.200`)(e),color:Ct("white","gray.900")(e),_hover:{bg:Ct(`${t}.600`,`${t}.300`)(e),borderColor:Ct(`${t}.600`,`${t}.300`)(e)},_disabled:{borderColor:Ct("gray.200","transparent")(e),bg:Ct("gray.200","whiteAlpha.300")(e),color:Ct("gray.500","whiteAlpha.500")(e)}},_indeterminate:{bg:Ct(`${t}.500`,`${t}.200`)(e),borderColor:Ct(`${t}.500`,`${t}.200`)(e),color:Ct("white","gray.900")(e)},_disabled:{bg:Ct("gray.100","whiteAlpha.100")(e),borderColor:Ct("gray.100","transparent")(e)},_focusVisible:{boxShadow:"outline"},_invalid:{borderColor:Ct("red.500","red.300")(e)}}},Kae={_disabled:{cursor:"not-allowed"}},Yae={userSelect:"none",_disabled:{opacity:.4}},Xae={transitionProperty:"transform",transitionDuration:"normal"},Zae=Yx(e=>({icon:Xae,container:Kae,control:To(qae,e),label:Yae})),Qae={sm:Yx({control:{[F1.variable]:"sizes.3"},label:{fontSize:"sm"},icon:{fontSize:"3xs"}}),md:Yx({control:{[F1.variable]:"sizes.4"},label:{fontSize:"md"},icon:{fontSize:"2xs"}}),lg:Yx({control:{[F1.variable]:"sizes.5"},label:{fontSize:"lg"},icon:{fontSize:"2xs"}})},YS=Gae({baseStyle:Zae,sizes:Qae,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:Jae,definePartsStyle:Xx}=cn(Xie.keys),ese=e=>{var t;const n=(t=To(YS.baseStyle,e))==null?void 0:t.control;return{...n,borderRadius:"full",_checked:{...n==null?void 0:n._checked,_before:{content:'""',display:"inline-block",pos:"relative",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}}}},tse=Xx(e=>{var t,n,r,i;return{label:(n=(t=YS).baseStyle)==null?void 0:n.call(t,e).label,container:(i=(r=YS).baseStyle)==null?void 0:i.call(r,e).container,control:ese(e)}}),nse={md:Xx({control:{w:"4",h:"4"},label:{fontSize:"md"}}),lg:Xx({control:{w:"5",h:"5"},label:{fontSize:"lg"}}),sm:Xx({control:{width:"3",height:"3"},label:{fontSize:"sm"}})},rse=Jae({baseStyle:tse,sizes:nse,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:ise,definePartsStyle:ose}=cn(Zie.keys),Bb=vn("select-bg"),yL,ase={...(yL=wn.baseStyle)==null?void 0:yL.field,appearance:"none",paddingBottom:"1px",lineHeight:"normal",bg:Bb.reference,[Bb.variable]:"colors.white",_dark:{[Bb.variable]:"colors.gray.700"},"> option, > optgroup":{bg:Bb.reference}},sse={width:"6",height:"100%",insetEnd:"2",position:"relative",color:"currentColor",fontSize:"xl",_disabled:{opacity:.5}},lse=ose({field:ase,icon:sse}),zb={paddingInlineEnd:"8"},bL,xL,SL,wL,CL,_L,kL,EL,use={lg:{...(bL=wn.sizes)==null?void 0:bL.lg,field:{...(xL=wn.sizes)==null?void 0:xL.lg.field,...zb}},md:{...(SL=wn.sizes)==null?void 0:SL.md,field:{...(wL=wn.sizes)==null?void 0:wL.md.field,...zb}},sm:{...(CL=wn.sizes)==null?void 0:CL.sm,field:{...(_L=wn.sizes)==null?void 0:_L.sm.field,...zb}},xs:{...(kL=wn.sizes)==null?void 0:kL.xs,field:{...(EL=wn.sizes)==null?void 0:EL.xs.field,...zb},icon:{insetEnd:"1"}}},cse=ise({baseStyle:lse,sizes:use,variants:wn.variants,defaultProps:wn.defaultProps}),W5=vn("skeleton-start-color"),V5=vn("skeleton-end-color"),dse={[W5.variable]:"colors.gray.100",[V5.variable]:"colors.gray.400",_dark:{[W5.variable]:"colors.gray.800",[V5.variable]:"colors.gray.600"},background:W5.reference,borderColor:V5.reference,opacity:.7,borderRadius:"sm"},fse={baseStyle:dse},U5=vn("skip-link-bg"),hse={borderRadius:"md",fontWeight:"semibold",_focusVisible:{boxShadow:"outline",padding:"4",position:"fixed",top:"6",insetStart:"6",[U5.variable]:"colors.white",_dark:{[U5.variable]:"colors.gray.700"},bg:U5.reference}},pse={baseStyle:hse},{defineMultiStyleConfig:gse,definePartsStyle:Mw}=cn(Qie.keys),ky=vn("slider-thumb-size"),Ey=vn("slider-track-size"),Sd=vn("slider-bg"),mse=e=>{const{orientation:t}=e;return{display:"inline-block",position:"relative",cursor:"pointer",_disabled:{opacity:.6,cursor:"default",pointerEvents:"none"},...j9({orientation:t,vertical:{h:"100%"},horizontal:{w:"100%"}})}},vse=e=>({...j9({orientation:e.orientation,horizontal:{h:Ey.reference},vertical:{w:Ey.reference}}),overflow:"hidden",borderRadius:"sm",[Sd.variable]:"colors.gray.200",_dark:{[Sd.variable]:"colors.whiteAlpha.200"},_disabled:{[Sd.variable]:"colors.gray.300",_dark:{[Sd.variable]:"colors.whiteAlpha.300"}},bg:Sd.reference}),yse=e=>{const{orientation:t}=e;return{...j9({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",_active:{transform:"translateX(-50%) scale(1.15)"}},horizontal:{top:"50%",transform:"translateY(-50%)",_active:{transform:"translateY(-50%) scale(1.15)"}}}),w:ky.reference,h:ky.reference,display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",outline:0,zIndex:1,borderRadius:"full",bg:"white",boxShadow:"base",border:"1px solid",borderColor:"transparent",transitionProperty:"transform",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{bg:"gray.300"}}},bse=e=>{const{colorScheme:t}=e;return{width:"inherit",height:"inherit",[Sd.variable]:`colors.${t}.500`,_dark:{[Sd.variable]:`colors.${t}.200`},bg:Sd.reference}},xse=Mw(e=>({container:mse(e),track:vse(e),thumb:yse(e),filledTrack:bse(e)})),Sse=Mw({container:{[ky.variable]:"sizes.4",[Ey.variable]:"sizes.1"}}),wse=Mw({container:{[ky.variable]:"sizes.3.5",[Ey.variable]:"sizes.1"}}),Cse=Mw({container:{[ky.variable]:"sizes.2.5",[Ey.variable]:"sizes.0.5"}}),_se={lg:Sse,md:wse,sm:Cse},kse=gse({baseStyle:xse,sizes:_se,defaultProps:{size:"md",colorScheme:"blue"}}),Ch=xi("spinner-size"),Ese={width:[Ch.reference],height:[Ch.reference]},Pse={xs:{[Ch.variable]:"sizes.3"},sm:{[Ch.variable]:"sizes.4"},md:{[Ch.variable]:"sizes.6"},lg:{[Ch.variable]:"sizes.8"},xl:{[Ch.variable]:"sizes.12"}},Tse={baseStyle:Ese,sizes:Pse,defaultProps:{size:"md"}},{defineMultiStyleConfig:Mse,definePartsStyle:kF}=cn(Jie.keys),Lse={fontWeight:"medium"},Ase={opacity:.8,marginBottom:"2"},Ose={verticalAlign:"baseline",fontWeight:"semibold"},Ise={marginEnd:1,w:"3.5",h:"3.5",verticalAlign:"middle"},Rse=kF({container:{},label:Lse,helpText:Ase,number:Ose,icon:Ise}),Dse={md:kF({label:{fontSize:"sm"},helpText:{fontSize:"sm"},number:{fontSize:"2xl"}})},jse=Mse({baseStyle:Rse,sizes:Dse,defaultProps:{size:"md"}}),G5=vn("kbd-bg"),Nse={[G5.variable]:"colors.gray.100",_dark:{[G5.variable]:"colors.whiteAlpha.100"},bg:G5.reference,borderRadius:"md",borderWidth:"1px",borderBottomWidth:"3px",fontSize:"0.8em",fontWeight:"bold",lineHeight:"normal",px:"0.4em",whiteSpace:"nowrap"},$se={baseStyle:Nse},Fse={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}},Bse={baseStyle:Fse},{defineMultiStyleConfig:zse,definePartsStyle:Hse}=cn(Vie.keys),Wse={marginEnd:"2",display:"inline",verticalAlign:"text-bottom"},Vse=Hse({icon:Wse}),Use=zse({baseStyle:Vse}),{defineMultiStyleConfig:Gse,definePartsStyle:qse}=cn(Uie.keys),jl=vn("menu-bg"),q5=vn("menu-shadow"),Kse={[jl.variable]:"#fff",[q5.variable]:"shadows.sm",_dark:{[jl.variable]:"colors.gray.700",[q5.variable]:"shadows.dark-lg"},color:"inherit",minW:"3xs",py:"2",zIndex:1,borderRadius:"md",borderWidth:"1px",bg:jl.reference,boxShadow:q5.reference},Yse={py:"1.5",px:"3",transitionProperty:"background",transitionDuration:"ultra-fast",transitionTimingFunction:"ease-in",_focus:{[jl.variable]:"colors.gray.100",_dark:{[jl.variable]:"colors.whiteAlpha.100"}},_active:{[jl.variable]:"colors.gray.200",_dark:{[jl.variable]:"colors.whiteAlpha.200"}},_expanded:{[jl.variable]:"colors.gray.100",_dark:{[jl.variable]:"colors.whiteAlpha.100"}},_disabled:{opacity:.4,cursor:"not-allowed"},bg:jl.reference},Xse={mx:4,my:2,fontWeight:"semibold",fontSize:"sm"},Zse={opacity:.6},Qse={border:0,borderBottom:"1px solid",borderColor:"inherit",my:"2",opacity:.6},Jse={transitionProperty:"common",transitionDuration:"normal"},ele=qse({button:Jse,list:Kse,item:Yse,groupTitle:Xse,command:Zse,divider:Qse}),tle=Gse({baseStyle:ele}),{defineMultiStyleConfig:nle,definePartsStyle:__}=cn(Gie.keys),rle={bg:"blackAlpha.600",zIndex:"modal"},ile=e=>{const{isCentered:t,scrollBehavior:n}=e;return{display:"flex",zIndex:"modal",justifyContent:"center",alignItems:t?"center":"flex-start",overflow:n==="inside"?"hidden":"auto",overscrollBehaviorY:"none"}},ole=e=>{const{scrollBehavior:t}=e;return{borderRadius:"md",bg:Ct("white","gray.700")(e),color:"inherit",my:"16",zIndex:"modal",maxH:t==="inside"?"calc(100% - 7.5rem)":void 0,boxShadow:Ct("lg","dark-lg")(e)}},ale={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},sle={position:"absolute",top:"2",insetEnd:"3"},lle=e=>{const{scrollBehavior:t}=e;return{px:"6",py:"2",flex:"1",overflow:t==="inside"?"auto":void 0}},ule={px:"6",py:"4"},cle=__(e=>({overlay:rle,dialogContainer:To(ile,e),dialog:To(ole,e),header:ale,closeButton:sle,body:To(lle,e),footer:ule}));function Fs(e){return __(e==="full"?{dialog:{maxW:"100vw",minH:"$100vh",my:"0",borderRadius:"0"}}:{dialog:{maxW:e}})}var dle={xs:Fs("xs"),sm:Fs("sm"),md:Fs("md"),lg:Fs("lg"),xl:Fs("xl"),"2xl":Fs("2xl"),"3xl":Fs("3xl"),"4xl":Fs("4xl"),"5xl":Fs("5xl"),"6xl":Fs("6xl"),full:Fs("full")},fle=nle({baseStyle:cle,sizes:dle,defaultProps:{size:"md"}}),{defineMultiStyleConfig:hle,definePartsStyle:EF}=cn(qie.keys),$9=xi("number-input-stepper-width"),PF=xi("number-input-input-padding"),ple=Fu($9).add("0.5rem").toString(),K5=xi("number-input-bg"),Y5=xi("number-input-color"),X5=xi("number-input-border-color"),gle={[$9.variable]:"sizes.6",[PF.variable]:ple},mle=e=>{var t,n;return(n=(t=To(wn.baseStyle,e))==null?void 0:t.field)!=null?n:{}},vle={width:$9.reference},yle={borderStart:"1px solid",borderStartColor:X5.reference,color:Y5.reference,bg:K5.reference,[Y5.variable]:"colors.chakra-body-text",[X5.variable]:"colors.chakra-border-color",_dark:{[Y5.variable]:"colors.whiteAlpha.800",[X5.variable]:"colors.whiteAlpha.300"},_active:{[K5.variable]:"colors.gray.200",_dark:{[K5.variable]:"colors.whiteAlpha.300"}},_disabled:{opacity:.4,cursor:"not-allowed"}},ble=EF(e=>{var t;return{root:gle,field:(t=To(mle,e))!=null?t:{},stepperGroup:vle,stepper:yle}});function Hb(e){var t,n,r;const i=(t=wn.sizes)==null?void 0:t[e],o={lg:"md",md:"md",sm:"sm",xs:"sm"},a=(r=(n=i.field)==null?void 0:n.fontSize)!=null?r:"md",s=xF.fontSizes[a];return EF({field:{...i.field,paddingInlineEnd:PF.reference,verticalAlign:"top"},stepper:{fontSize:Fu(s).multiply(.75).toString(),_first:{borderTopEndRadius:o[e]},_last:{borderBottomEndRadius:o[e],mt:"-1px",borderTopWidth:1}}})}var xle={xs:Hb("xs"),sm:Hb("sm"),md:Hb("md"),lg:Hb("lg")},Sle=hle({baseStyle:ble,sizes:xle,variants:wn.variants,defaultProps:wn.defaultProps}),PL,wle={...(PL=wn.baseStyle)==null?void 0:PL.field,textAlign:"center"},Cle={lg:{fontSize:"lg",w:12,h:12,borderRadius:"md"},md:{fontSize:"md",w:10,h:10,borderRadius:"md"},sm:{fontSize:"sm",w:8,h:8,borderRadius:"sm"},xs:{fontSize:"xs",w:6,h:6,borderRadius:"sm"}},TL,ML,_le={outline:e=>{var t,n,r;return(r=(n=To((t=wn.variants)==null?void 0:t.outline,e))==null?void 0:n.field)!=null?r:{}},flushed:e=>{var t,n,r;return(r=(n=To((t=wn.variants)==null?void 0:t.flushed,e))==null?void 0:n.field)!=null?r:{}},filled:e=>{var t,n,r;return(r=(n=To((t=wn.variants)==null?void 0:t.filled,e))==null?void 0:n.field)!=null?r:{}},unstyled:(ML=(TL=wn.variants)==null?void 0:TL.unstyled.field)!=null?ML:{}},kle={baseStyle:wle,sizes:Cle,variants:_le,defaultProps:wn.defaultProps},{defineMultiStyleConfig:Ele,definePartsStyle:Ple}=cn(Kie.keys),Wb=xi("popper-bg"),Tle=xi("popper-arrow-bg"),LL=xi("popper-arrow-shadow-color"),Mle={zIndex:10},Lle={[Wb.variable]:"colors.white",bg:Wb.reference,[Tle.variable]:Wb.reference,[LL.variable]:"colors.gray.200",_dark:{[Wb.variable]:"colors.gray.700",[LL.variable]:"colors.whiteAlpha.300"},width:"xs",border:"1px solid",borderColor:"inherit",borderRadius:"md",boxShadow:"sm",zIndex:"inherit",_focusVisible:{outline:0,boxShadow:"outline"}},Ale={px:3,py:2,borderBottomWidth:"1px"},Ole={px:3,py:2},Ile={px:3,py:2,borderTopWidth:"1px"},Rle={position:"absolute",borderRadius:"md",top:1,insetEnd:2,padding:2},Dle=Ple({popper:Mle,content:Lle,header:Ale,body:Ole,footer:Ile,closeButton:Rle}),jle=Ele({baseStyle:Dle}),{definePartsStyle:k_,defineMultiStyleConfig:Nle}=cn(Fie.keys),Z5=vn("drawer-bg"),Q5=vn("drawer-box-shadow");function kg(e){return k_(e==="full"?{dialog:{maxW:"100vw",h:"100vh"}}:{dialog:{maxW:e}})}var $le={bg:"blackAlpha.600",zIndex:"overlay"},Fle={display:"flex",zIndex:"modal",justifyContent:"center"},Ble=e=>{const{isFullHeight:t}=e;return{...t&&{height:"100vh"},zIndex:"modal",maxH:"100vh",color:"inherit",[Z5.variable]:"colors.white",[Q5.variable]:"shadows.lg",_dark:{[Z5.variable]:"colors.gray.700",[Q5.variable]:"shadows.dark-lg"},bg:Z5.reference,boxShadow:Q5.reference}},zle={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},Hle={position:"absolute",top:"2",insetEnd:"3"},Wle={px:"6",py:"2",flex:"1",overflow:"auto"},Vle={px:"6",py:"4"},Ule=k_(e=>({overlay:$le,dialogContainer:Fle,dialog:To(Ble,e),header:zle,closeButton:Hle,body:Wle,footer:Vle})),Gle={xs:kg("xs"),sm:kg("md"),md:kg("lg"),lg:kg("2xl"),xl:kg("4xl"),full:kg("full")},qle=Nle({baseStyle:Ule,sizes:Gle,defaultProps:{size:"xs"}}),{definePartsStyle:Kle,defineMultiStyleConfig:Yle}=cn(Bie.keys),Xle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal"},Zle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},Qle={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},Jle=Kle({preview:Xle,input:Zle,textarea:Qle}),eue=Yle({baseStyle:Jle}),{definePartsStyle:tue,defineMultiStyleConfig:nue}=cn(zie.keys),Em=vn("form-control-color"),rue={marginStart:"1",[Em.variable]:"colors.red.500",_dark:{[Em.variable]:"colors.red.300"},color:Em.reference},iue={mt:"2",[Em.variable]:"colors.gray.600",_dark:{[Em.variable]:"colors.whiteAlpha.600"},color:Em.reference,lineHeight:"normal",fontSize:"sm"},oue=tue({container:{width:"100%",position:"relative"},requiredIndicator:rue,helperText:iue}),aue=nue({baseStyle:oue}),{definePartsStyle:sue,defineMultiStyleConfig:lue}=cn(Hie.keys),Pm=vn("form-error-color"),uue={[Pm.variable]:"colors.red.500",_dark:{[Pm.variable]:"colors.red.300"},color:Pm.reference,mt:"2",fontSize:"sm",lineHeight:"normal"},cue={marginEnd:"0.5em",[Pm.variable]:"colors.red.500",_dark:{[Pm.variable]:"colors.red.300"},color:Pm.reference},due=sue({text:uue,icon:cue}),fue=lue({baseStyle:due}),hue={fontSize:"md",marginEnd:"3",mb:"2",fontWeight:"medium",transitionProperty:"common",transitionDuration:"normal",opacity:1,_disabled:{opacity:.4}},pue={baseStyle:hue},gue={fontFamily:"heading",fontWeight:"bold"},mue={"4xl":{fontSize:["6xl",null,"7xl"],lineHeight:1},"3xl":{fontSize:["5xl",null,"6xl"],lineHeight:1},"2xl":{fontSize:["4xl",null,"5xl"],lineHeight:[1.2,null,1]},xl:{fontSize:["3xl",null,"4xl"],lineHeight:[1.33,null,1.2]},lg:{fontSize:["2xl",null,"3xl"],lineHeight:[1.33,null,1.2]},md:{fontSize:"xl",lineHeight:1.2},sm:{fontSize:"md",lineHeight:1.2},xs:{fontSize:"sm",lineHeight:1.2}},vue={baseStyle:gue,sizes:mue,defaultProps:{size:"xl"}},{defineMultiStyleConfig:yue,definePartsStyle:bue}=cn(Nie.keys),xue={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}},Sue=bue({link:xue}),wue=yue({baseStyle:Sue}),Cue={lineHeight:"1.2",borderRadius:"md",fontWeight:"semibold",transitionProperty:"common",transitionDuration:"normal",_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{_disabled:{bg:"initial"}}},TF=e=>{const{colorScheme:t,theme:n}=e;if(t==="gray")return{color:Ct("inherit","whiteAlpha.900")(e),_hover:{bg:Ct("gray.100","whiteAlpha.200")(e)},_active:{bg:Ct("gray.200","whiteAlpha.300")(e)}};const r=Km(`${t}.200`,.12)(n),i=Km(`${t}.200`,.24)(n);return{color:Ct(`${t}.600`,`${t}.200`)(e),bg:"transparent",_hover:{bg:Ct(`${t}.50`,r)(e)},_active:{bg:Ct(`${t}.100`,i)(e)}}},_ue=e=>{const{colorScheme:t}=e,n=Ct("gray.200","whiteAlpha.300")(e);return{border:"1px solid",borderColor:t==="gray"?n:"currentColor",".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)":{marginEnd:"-1px"},".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)":{marginBottom:"-1px"},...To(TF,e)}},kue={yellow:{bg:"yellow.400",color:"black",hoverBg:"yellow.500",activeBg:"yellow.600"},cyan:{bg:"cyan.400",color:"black",hoverBg:"cyan.500",activeBg:"cyan.600"}},Eue=e=>{var t;const{colorScheme:n}=e;if(n==="gray"){const l=Ct("gray.100","whiteAlpha.200")(e);return{bg:l,_hover:{bg:Ct("gray.200","whiteAlpha.300")(e),_disabled:{bg:l}},_active:{bg:Ct("gray.300","whiteAlpha.400")(e)}}}const{bg:r=`${n}.500`,color:i="white",hoverBg:o=`${n}.600`,activeBg:a=`${n}.700`}=(t=kue[n])!=null?t:{},s=Ct(r,`${n}.200`)(e);return{bg:s,color:Ct(i,"gray.800")(e),_hover:{bg:Ct(o,`${n}.300`)(e),_disabled:{bg:s}},_active:{bg:Ct(a,`${n}.400`)(e)}}},Pue=e=>{const{colorScheme:t}=e;return{padding:0,height:"auto",lineHeight:"normal",verticalAlign:"baseline",color:Ct(`${t}.500`,`${t}.200`)(e),_hover:{textDecoration:"underline",_disabled:{textDecoration:"none"}},_active:{color:Ct(`${t}.700`,`${t}.500`)(e)}}},Tue={bg:"none",color:"inherit",display:"inline",lineHeight:"inherit",m:"0",p:"0"},Mue={ghost:TF,outline:_ue,solid:Eue,link:Pue,unstyled:Tue},Lue={lg:{h:"12",minW:"12",fontSize:"lg",px:"6"},md:{h:"10",minW:"10",fontSize:"md",px:"4"},sm:{h:"8",minW:"8",fontSize:"sm",px:"3"},xs:{h:"6",minW:"6",fontSize:"xs",px:"2"}},Aue={baseStyle:Cue,variants:Mue,sizes:Lue,defaultProps:{variant:"solid",size:"md",colorScheme:"gray"}},{definePartsStyle:Nh,defineMultiStyleConfig:Oue}=cn(ioe.keys),XS=vn("card-bg"),qu=vn("card-padding"),MF=vn("card-shadow"),Zx=vn("card-radius"),LF=vn("card-border-width","0"),AF=vn("card-border-color"),Iue=Nh({container:{[XS.variable]:"colors.chakra-body-bg",backgroundColor:XS.reference,boxShadow:MF.reference,borderRadius:Zx.reference,color:"chakra-body-text",borderWidth:LF.reference,borderColor:AF.reference},body:{padding:qu.reference,flex:"1 1 0%"},header:{padding:qu.reference},footer:{padding:qu.reference}}),Rue={sm:Nh({container:{[Zx.variable]:"radii.base",[qu.variable]:"space.3"}}),md:Nh({container:{[Zx.variable]:"radii.md",[qu.variable]:"space.5"}}),lg:Nh({container:{[Zx.variable]:"radii.xl",[qu.variable]:"space.7"}})},Due={elevated:Nh({container:{[MF.variable]:"shadows.base",_dark:{[XS.variable]:"colors.gray.700"}}}),outline:Nh({container:{[LF.variable]:"1px",[AF.variable]:"colors.chakra-border-color"}}),filled:Nh({container:{[XS.variable]:"colors.chakra-subtle-bg"}}),unstyled:{body:{[qu.variable]:0},header:{[qu.variable]:0},footer:{[qu.variable]:0}}},jue=Oue({baseStyle:Iue,variants:Due,sizes:Rue,defaultProps:{variant:"elevated",size:"md"}}),B1=xi("close-button-size"),Vv=xi("close-button-bg"),Nue={w:[B1.reference],h:[B1.reference],borderRadius:"md",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{[Vv.variable]:"colors.blackAlpha.100",_dark:{[Vv.variable]:"colors.whiteAlpha.100"}},_active:{[Vv.variable]:"colors.blackAlpha.200",_dark:{[Vv.variable]:"colors.whiteAlpha.200"}},_focusVisible:{boxShadow:"outline"},bg:Vv.reference},$ue={lg:{[B1.variable]:"sizes.10",fontSize:"md"},md:{[B1.variable]:"sizes.8",fontSize:"xs"},sm:{[B1.variable]:"sizes.6",fontSize:"2xs"}},Fue={baseStyle:Nue,sizes:$ue,defaultProps:{size:"md"}},{variants:Bue,defaultProps:zue}=$1,Hue={fontFamily:"mono",fontSize:"sm",px:"0.2em",borderRadius:"sm"},Wue={baseStyle:Hue,variants:Bue,defaultProps:zue},Vue={w:"100%",mx:"auto",maxW:"prose",px:"4"},Uue={baseStyle:Vue},Gue={opacity:.6,borderColor:"inherit"},que={borderStyle:"solid"},Kue={borderStyle:"dashed"},Yue={solid:que,dashed:Kue},Xue={baseStyle:Gue,variants:Yue,defaultProps:{variant:"solid"}},{definePartsStyle:Zue,defineMultiStyleConfig:Que}=cn(Rie.keys),Jue={borderTopWidth:"1px",borderColor:"inherit",_last:{borderBottomWidth:"1px"}},ece={transitionProperty:"common",transitionDuration:"normal",fontSize:"md",_focusVisible:{boxShadow:"outline"},_hover:{bg:"blackAlpha.50"},_disabled:{opacity:.4,cursor:"not-allowed"},px:"4",py:"2"},tce={pt:"2",px:"4",pb:"5"},nce={fontSize:"1.25em"},rce=Zue({container:Jue,button:ece,panel:tce,icon:nce}),ice=Que({baseStyle:rce}),{definePartsStyle:r2,defineMultiStyleConfig:oce}=cn(Die.keys),La=vn("alert-fg"),ic=vn("alert-bg"),ace=r2({container:{bg:ic.reference,px:"4",py:"3"},title:{fontWeight:"bold",lineHeight:"6",marginEnd:"2"},description:{lineHeight:"6"},icon:{color:La.reference,flexShrink:0,marginEnd:"3",w:"5",h:"6"},spinner:{color:La.reference,flexShrink:0,marginEnd:"3",w:"5",h:"5"}});function F9(e){const{theme:t,colorScheme:n}=e,r=Km(`${n}.200`,.16)(t);return{light:`colors.${n}.100`,dark:r}}var sce=r2(e=>{const{colorScheme:t}=e,n=F9(e);return{container:{[La.variable]:`colors.${t}.500`,[ic.variable]:n.light,_dark:{[La.variable]:`colors.${t}.200`,[ic.variable]:n.dark}}}}),lce=r2(e=>{const{colorScheme:t}=e,n=F9(e);return{container:{[La.variable]:`colors.${t}.500`,[ic.variable]:n.light,_dark:{[La.variable]:`colors.${t}.200`,[ic.variable]:n.dark},paddingStart:"3",borderStartWidth:"4px",borderStartColor:La.reference}}}),uce=r2(e=>{const{colorScheme:t}=e,n=F9(e);return{container:{[La.variable]:`colors.${t}.500`,[ic.variable]:n.light,_dark:{[La.variable]:`colors.${t}.200`,[ic.variable]:n.dark},pt:"2",borderTopWidth:"4px",borderTopColor:La.reference}}}),cce=r2(e=>{const{colorScheme:t}=e;return{container:{[La.variable]:"colors.white",[ic.variable]:`colors.${t}.500`,_dark:{[La.variable]:"colors.gray.900",[ic.variable]:`colors.${t}.200`},color:La.reference}}}),dce={subtle:sce,"left-accent":lce,"top-accent":uce,solid:cce},fce=oce({baseStyle:ace,variants:dce,defaultProps:{variant:"subtle",colorScheme:"blue"}}),{definePartsStyle:OF,defineMultiStyleConfig:hce}=cn(jie.keys),Tm=vn("avatar-border-color"),J5=vn("avatar-bg"),pce={borderRadius:"full",border:"0.2em solid",[Tm.variable]:"white",_dark:{[Tm.variable]:"colors.gray.800"},borderColor:Tm.reference},gce={[J5.variable]:"colors.gray.200",_dark:{[J5.variable]:"colors.whiteAlpha.400"},bgColor:J5.reference},AL=vn("avatar-background"),mce=e=>{const{name:t,theme:n}=e,r=t?_oe({string:t}):"colors.gray.400",i=woe(r)(n);let o="white";return i||(o="gray.800"),{bg:AL.reference,"&:not([data-loaded])":{[AL.variable]:r},color:o,[Tm.variable]:"colors.white",_dark:{[Tm.variable]:"colors.gray.800"},borderColor:Tm.reference,verticalAlign:"top"}},vce=OF(e=>({badge:To(pce,e),excessLabel:To(gce,e),container:To(mce,e)}));function cd(e){const t=e!=="100%"?wF[e]:void 0;return OF({container:{width:e,height:e,fontSize:`calc(${t??e} / 2.5)`},excessLabel:{width:e,height:e},label:{fontSize:`calc(${t??e} / 2.5)`,lineHeight:e!=="100%"?t??e:void 0}})}var yce={"2xs":cd(4),xs:cd(6),sm:cd(8),md:cd(12),lg:cd(16),xl:cd(24),"2xl":cd(32),full:cd("100%")},bce=hce({baseStyle:vce,sizes:yce,defaultProps:{size:"md"}}),xce={Accordion:ice,Alert:fce,Avatar:bce,Badge:$1,Breadcrumb:wue,Button:Aue,Checkbox:YS,CloseButton:Fue,Code:Wue,Container:Uue,Divider:Xue,Drawer:qle,Editable:eue,Form:aue,FormError:fue,FormLabel:pue,Heading:vue,Input:wn,Kbd:$se,Link:Bse,List:Use,Menu:tle,Modal:fle,NumberInput:Sle,PinInput:kle,Popover:jle,Progress:Vae,Radio:rse,Select:cse,Skeleton:fse,SkipLink:pse,Slider:kse,Spinner:Tse,Stat:jse,Switch:Boe,Table:qoe,Tabs:lae,Tag:Sae,Textarea:Iae,Tooltip:jae,Card:jue},Sce={colors:{"chakra-body-text":{_light:"gray.800",_dark:"whiteAlpha.900"},"chakra-body-bg":{_light:"white",_dark:"gray.800"},"chakra-border-color":{_light:"gray.200",_dark:"whiteAlpha.300"},"chakra-subtle-bg":{_light:"gray.100",_dark:"gray.700"},"chakra-placeholder-color":{_light:"gray.500",_dark:"whiteAlpha.400"}}},wce={global:{body:{fontFamily:"body",color:"chakra-body-text",bg:"chakra-body-bg",transitionProperty:"background-color",transitionDuration:"normal",lineHeight:"base"},"*::placeholder":{color:"chakra-placeholder-color"},"*, *::before, &::after":{borderColor:"chakra-border-color",wordWrap:"break-word"}}},Cce="ltr",_ce={useSystemColorMode:!1,initialColorMode:"light",cssVarPrefix:"chakra"},IF={semanticTokens:Sce,direction:Cce,...Iie,components:xce,styles:wce,config:_ce};function p1(e){return typeof e=="function"}function kce(...e){return t=>e.reduce((n,r)=>r(n),t)}var Ece=e=>function(...n){let r=[...n],i=n[n.length-1];return uie(i)&&r.length>1?r=r.slice(0,r.length-1):i=e,kce(...r.map(o=>a=>p1(o)?o(a):Tce(a,o)))(i)},Pce=Ece(IF);function Tce(...e){return as({},...e,RF)}function RF(e,t,n,r){if((p1(e)||p1(t))&&Object.prototype.hasOwnProperty.call(r,n))return(...i)=>{const o=p1(e)?e(...i):e,a=p1(t)?t(...i):t;return as({},o,a,RF)}}function Mce(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var Lce=Mce();function Ace(e,t){const n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n}function Oce(e,t,n,r){const i=typeof t=="string"?t.split("."):[t];for(r=0;r{const t=new WeakMap;return(r,i,o,a)=>{if(typeof r>"u")return e(r,i,o);t.has(r)||t.set(r,new Map);const s=t.get(r);if(s.has(i))return s.get(i);const l=e(r,i,o,a);return s.set(i,l),l}},DF=Ice(Oce);function jF(e,t){const n={};return Object.keys(e).forEach(r=>{const i=e[r];t(i,r,e)&&(n[r]=i)}),n}var NF=e=>jF(e,t=>t!=null);function Rce(e){return typeof e=="function"}function $F(e,...t){return Rce(e)?e(...t):e}function Dce(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}const FF=1/60*1e3,jce=typeof performance<"u"?()=>performance.now():()=>Date.now(),BF=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(jce()),FF);function Nce(e){let t=[],n=[],r=0,i=!1,o=!1;const a=new WeakSet,s={schedule:(l,u=!1,d=!1)=>{const h=d&&i,m=h?t:n;return u&&a.add(l),m.indexOf(l)===-1&&(m.push(l),h&&i&&(r=t.length)),l},cancel:l=>{const u=n.indexOf(l);u!==-1&&n.splice(u,1),a.delete(l)},process:l=>{if(i){o=!0;return}if(i=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=Nce(()=>Py=!0),e),{}),Fce=i2.reduce((e,t)=>{const n=Lw[t];return e[t]=(r,i=!1,o=!1)=>(Py||Hce(),n.schedule(r,i,o)),e},{}),Bce=i2.reduce((e,t)=>(e[t]=Lw[t].cancel,e),{});i2.reduce((e,t)=>(e[t]=()=>Lw[t].process(Mm),e),{});const zce=e=>Lw[e].process(Mm),zF=e=>{Py=!1,Mm.delta=E_?FF:Math.max(Math.min(e-Mm.timestamp,$ce),1),Mm.timestamp=e,P_=!0,i2.forEach(zce),P_=!1,Py&&(E_=!1,BF(zF))},Hce=()=>{Py=!0,E_=!0,P_||BF(zF)},OL=()=>Mm;var Wce=typeof Element<"u",Vce=typeof Map=="function",Uce=typeof Set=="function",Gce=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function Qx(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Qx(e[r],t[r]))return!1;return!0}var o;if(Vce&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;for(o=e.entries();!(r=o.next()).done;)if(!Qx(r.value[1],t.get(r.value[0])))return!1;return!0}if(Uce&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(Gce&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;if(Wce&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((i[r]==="_owner"||i[r]==="__v"||i[r]==="__o")&&e.$$typeof)&&!Qx(e[i[r]],t[i[r]]))return!1;return!0}return e!==e&&t!==t}var qce=function(t,n){try{return Qx(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};function HF(e,t={}){var n;const{styleConfig:r,...i}=t,{theme:o,colorMode:a}=cF(),s=e?DF(o,`components.${e}`):void 0,l=r||s,u=as({theme:o,colorMode:a},(n=l==null?void 0:l.defaultProps)!=null?n:{},NF(Ace(i,["children"]))),d=S.useRef({});if(l){const m=aie(l)(u);qce(d.current,m)||(d.current=m)}return d.current}function lu(e,t={}){return HF(e,t)}function Zi(e,t={}){return HF(e,t)}var Kce=new Set([...Kre,"textStyle","layerStyle","apply","noOfLines","focusBorderColor","errorBorderColor","as","__css","css","sx"]),Yce=new Set(["htmlWidth","htmlHeight","htmlSize","htmlTranslate"]);function Xce(e){return Yce.has(e)||!Kce.has(e)}function Zce(e){const t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function Qce(e,...t){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const n={...e};for(const r of t)if(r!=null)for(const i in r)Object.prototype.hasOwnProperty.call(r,i)&&(i in n&&delete n[i],n[i]=r[i]);return n}var Jce=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,ede=Kj(function(e){return Jce.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),tde=ede,nde=function(t){return t!=="theme"},IL=function(t){return typeof t=="string"&&t.charCodeAt(0)>96?tde:nde},RL=function(t,n,r){var i;if(n){var o=n.shouldForwardProp;i=t.__emotion_forwardProp&&o?function(a){return t.__emotion_forwardProp(a)&&o(a)}:o}return typeof i!="function"&&r&&(i=t.__emotion_forwardProp),i},rde=function(t){var n=t.cache,r=t.serialized,i=t.isStringTag;return eN(n,r,i),See(function(){return tN(n,r,i)}),null},ide=function e(t,n){var r=t.__emotion_real===t,i=r&&t.__emotion_base||t,o,a;n!==void 0&&(o=n.label,a=n.target);var s=RL(t,n,r),l=s||IL(i),u=!l("as");return function(){var d=arguments,h=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(o!==void 0&&h.push("label:"+o+";"),d[0]==null||d[0].raw===void 0)h.push.apply(h,d);else{h.push(d[0][0]);for(var m=d.length,y=1;yt=>{const{theme:n,css:r,__css:i,sx:o,...a}=t,s=jF(a,(h,m)=>Xre(m)),l=$F(e,t),u=Qce({},i,l,NF(s),o),d=bF(u)(t.theme);return r?[d,r]:d};function eC(e,t){const{baseStyle:n,...r}=t??{};r.shouldForwardProp||(r.shouldForwardProp=Xce);const i=sde({baseStyle:n}),o=ade(e,r)(i);return Ke.forwardRef(function(l,u){const{colorMode:d,forced:h}=sp();return Ke.createElement(o,{ref:u,"data-theme":h?d:void 0,...l})})}function lde(){const e=new Map;return new Proxy(eC,{apply(t,n,r){return eC(...r)},get(t,n){return e.has(n)||e.set(n,eC(n)),e.get(n)}})}var Ne=lde();function Xe(e){return S.forwardRef(e)}function ude(e={}){const{strict:t=!0,errorMessage:n="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:r}=e,i=S.createContext(void 0);i.displayName=r;function o(){var a;const s=S.useContext(i);if(!s&&t){const l=new Error(n);throw l.name="ContextError",(a=Error.captureStackTrace)==null||a.call(Error,l,o),l}return s}return[i.Provider,o,i]}function cde(e){const{cssVarsRoot:t,theme:n,children:r}=e,i=S.useMemo(()=>Gre(n),[n]);return g.jsxs(kee,{theme:i,children:[g.jsx(dde,{root:t}),r]})}function dde({root:e=":host, :root"}){const t=[e,"[data-theme]"].join(",");return g.jsx(uw,{styles:n=>({[t]:n.__cssVars})})}ude({name:"StylesContext",errorMessage:"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` "});function fde(){const{colorMode:e}=sp();return g.jsx(uw,{styles:t=>{const n=DF(t,"styles.global"),r=$F(n,{theme:t,colorMode:e});return r?bF(r)(t):void 0}})}var WF=S.createContext({getDocument(){return document},getWindow(){return window}});WF.displayName="EnvironmentContext";function VF(e){const{children:t,environment:n,disabled:r}=e,i=S.useRef(null),o=S.useMemo(()=>n||{getDocument:()=>{var s,l;return(l=(s=i.current)==null?void 0:s.ownerDocument)!=null?l:document},getWindow:()=>{var s,l;return(l=(s=i.current)==null?void 0:s.ownerDocument.defaultView)!=null?l:window}},[n]),a=!r||!n;return g.jsxs(WF.Provider,{value:o,children:[t,a&&g.jsx("span",{id:"__chakra_env",hidden:!0,ref:i})]})}VF.displayName="EnvironmentProvider";var hde=e=>{const{children:t,colorModeManager:n,portalZIndex:r,resetCSS:i=!0,theme:o={},environment:a,cssVarsRoot:s,disableEnvironment:l}=e,u=g.jsx(VF,{environment:a,disabled:l,children:t});return g.jsx(cde,{theme:o,cssVarsRoot:s,children:g.jsxs(uF,{colorModeManager:n,options:o.config,children:[i?g.jsx(Tee,{}):g.jsx(Pee,{}),g.jsx(fde,{}),r?g.jsx(sN,{zIndex:r,children:u}):u]})})},pde=(e,t)=>e.find(n=>n.id===t);function jL(e,t){const n=UF(e,t),r=n?e[n].findIndex(i=>i.id===t):-1;return{position:n,index:r}}function UF(e,t){for(const[n,r]of Object.entries(e))if(pde(r,t))return n}function gde(e){const t=e.includes("right"),n=e.includes("left");let r="center";return t&&(r="flex-end"),n&&(r="flex-start"),{display:"flex",flexDirection:"column",alignItems:r}}function mde(e){const n=e==="top"||e==="bottom"?"0 auto":void 0,r=e.includes("top")?"env(safe-area-inset-top, 0px)":void 0,i=e.includes("bottom")?"env(safe-area-inset-bottom, 0px)":void 0,o=e.includes("left")?void 0:"env(safe-area-inset-right, 0px)",a=e.includes("right")?void 0:"env(safe-area-inset-left, 0px)";return{position:"fixed",zIndex:5500,pointerEvents:"none",display:"flex",flexDirection:"column",margin:n,top:r,bottom:i,right:o,left:a}}function ei(e,t=[]){const n=S.useRef(e);return S.useEffect(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function vde(e,t){const n=ei(e);S.useEffect(()=>{if(t==null)return;let r=null;return r=window.setTimeout(()=>{n()},t),()=>{r&&window.clearTimeout(r)}},[t,n])}function oc(e,t){const n=S.useRef(!1),r=S.useRef(!1);S.useEffect(()=>{if(n.current&&r.current)return e();r.current=!0},t),S.useEffect(()=>(n.current=!0,()=>{n.current=!1}),[])}const GF=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Aw=S.createContext({});function yde(){return S.useContext(Aw).visualElement}const o2=S.createContext(null),Ow=typeof document<"u",QS=Ow?S.useLayoutEffect:S.useEffect,qF=S.createContext({strict:!1});function bde(e,t,n,r){const i=yde(),o=S.useContext(qF),a=S.useContext(o2),s=S.useContext(GF).reducedMotion,l=S.useRef();r=r||o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:i,props:n,presenceContext:a,blockInitialAnimation:a?a.initial===!1:!1,reducedMotionConfig:s}));const u=l.current;return S.useInsertionEffect(()=>{u&&u.update(n,a)}),QS(()=>{u&&u.render()}),S.useEffect(()=>{u&&u.updateFeatures()}),(window.HandoffAppearAnimations?QS:S.useEffect)(()=>{u&&u.animationState&&u.animationState.animateChanges()}),u}function im(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function xde(e,t,n){return S.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):im(n)&&(n.current=r))},[t])}function Ty(e){return typeof e=="string"||Array.isArray(e)}function Iw(e){return typeof e=="object"&&typeof e.start=="function"}const Sde=["initial","animate","exit","whileHover","whileDrag","whileTap","whileFocus","whileInView"];function Rw(e){return Iw(e.animate)||Sde.some(t=>Ty(e[t]))}function KF(e){return Boolean(Rw(e)||e.variants)}function wde(e,t){if(Rw(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Ty(n)?n:void 0,animate:Ty(r)?r:void 0}}return e.inherit!==!1?t:{}}function Cde(e){const{initial:t,animate:n}=wde(e,S.useContext(Aw));return S.useMemo(()=>({initial:t,animate:n}),[NL(t),NL(n)])}function NL(e){return Array.isArray(e)?e.join(" "):e}const $L={animation:["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},My={};for(const e in $L)My[e]={isEnabled:t=>$L[e].some(n=>!!t[n])};function _de(e){for(const t in e)My[t]={...My[t],...e[t]}}function B9(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const z1={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let kde=1;function Ede(){return B9(()=>{if(z1.hasEverUpdated)return kde++})}const z9=S.createContext({}),YF=S.createContext({}),Pde=Symbol.for("motionComponentSymbol");function Tde({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){e&&_de(e);function o(s,l){let u;const d={...S.useContext(GF),...s,layoutId:Mde(s)},{isStatic:h}=d,m=Cde(s),y=h?void 0:Ede(),b=r(s,h);if(!h&&Ow){m.visualElement=bde(i,b,d,t);const w=S.useContext(YF),E=S.useContext(qF).strict;m.visualElement&&(u=m.visualElement.loadFeatures(d,E,e,y,w))}return S.createElement(Aw.Provider,{value:m},u&&m.visualElement?S.createElement(u,{visualElement:m.visualElement,...d}):null,n(i,s,y,xde(b,m.visualElement,l),b,h,m.visualElement))}const a=S.forwardRef(o);return a[Pde]=i,a}function Mde({layoutId:e}){const t=S.useContext(z9).id;return t&&e!==void 0?t+"-"+e:e}function Lde(e){function t(r,i={}){return Tde(e(r,i))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,i)=>(n.has(i)||n.set(i,t(i)),n.get(i))})}const Ade=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function H9(e){return typeof e!="string"||e.includes("-")?!1:!!(Ade.indexOf(e)>-1||/[A-Z]/.test(e))}const JS={};function Ode(e){Object.assign(JS,e)}const Dw=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],p0=new Set(Dw);function XF(e,{layout:t,layoutId:n}){return p0.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!JS[e]||e==="opacity")}const ra=e=>Boolean(e&&e.getVelocity),Ide={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Rde=Dw.length;function Dde(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},r,i){let o="";for(let a=0;at&&typeof e=="number"?t.transform(e):e,Ym=(e,t,n)=>Math.min(Math.max(n,e),t),lp={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},H1={...lp,transform:e=>Ym(0,1,e)},Vb={...lp,default:1},W1=e=>Math.round(e*1e5)/1e5,Ly=/(-)?([\d]*\.?[\d])+/g,T_=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,Nde=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function a2(e){return typeof e=="string"}const s2=e=>({test:t=>a2(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),fd=s2("deg"),Zl=s2("%"),Tt=s2("px"),$de=s2("vh"),Fde=s2("vw"),FL={...Zl,parse:e=>Zl.parse(e)/100,transform:e=>Zl.transform(e*100)},BL={...lp,transform:Math.round},QF={borderWidth:Tt,borderTopWidth:Tt,borderRightWidth:Tt,borderBottomWidth:Tt,borderLeftWidth:Tt,borderRadius:Tt,radius:Tt,borderTopLeftRadius:Tt,borderTopRightRadius:Tt,borderBottomRightRadius:Tt,borderBottomLeftRadius:Tt,width:Tt,maxWidth:Tt,height:Tt,maxHeight:Tt,size:Tt,top:Tt,right:Tt,bottom:Tt,left:Tt,padding:Tt,paddingTop:Tt,paddingRight:Tt,paddingBottom:Tt,paddingLeft:Tt,margin:Tt,marginTop:Tt,marginRight:Tt,marginBottom:Tt,marginLeft:Tt,rotate:fd,rotateX:fd,rotateY:fd,rotateZ:fd,scale:Vb,scaleX:Vb,scaleY:Vb,scaleZ:Vb,skew:fd,skewX:fd,skewY:fd,distance:Tt,translateX:Tt,translateY:Tt,translateZ:Tt,x:Tt,y:Tt,z:Tt,perspective:Tt,transformPerspective:Tt,opacity:H1,originX:FL,originY:FL,originZ:Tt,zIndex:BL,fillOpacity:H1,strokeOpacity:H1,numOctaves:BL};function W9(e,t,n,r){const{style:i,vars:o,transform:a,transformOrigin:s}=e;let l=!1,u=!1,d=!0;for(const h in t){const m=t[h];if(ZF(h)){o[h]=m;continue}const y=QF[h],b=jde(m,y);if(p0.has(h)){if(l=!0,a[h]=b,!d)continue;m!==(y.default||0)&&(d=!1)}else h.startsWith("origin")?(u=!0,s[h]=b):i[h]=b}if(t.transform||(l||r?i.transform=Dde(e.transform,n,d,r):i.transform&&(i.transform="none")),u){const{originX:h="50%",originY:m="50%",originZ:y=0}=s;i.transformOrigin=`${h} ${m} ${y}`}}const V9=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function JF(e,t,n){for(const r in t)!ra(t[r])&&!XF(r,n)&&(e[r]=t[r])}function Bde({transformTemplate:e},t,n){return S.useMemo(()=>{const r=V9();return W9(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function zde(e,t,n){const r=e.style||{},i={};return JF(i,r,e),Object.assign(i,Bde(e,t,n)),e.transformValues?e.transformValues(i):i}function Hde(e,t,n){const r={},i=zde(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=i,r}const Wde=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","ignoreStrict","viewport"]);function e3(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||Wde.has(e)}let eB=e=>!e3(e);function Vde(e){e&&(eB=t=>t.startsWith("on")?!e3(t):e(t))}try{Vde(require("@emotion/is-prop-valid").default)}catch{}function Ude(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(eB(i)||n===!0&&e3(i)||!t&&!e3(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function zL(e,t,n){return typeof e=="string"?e:Tt.transform(t+n*e)}function Gde(e,t,n){const r=zL(t,e.x,e.width),i=zL(n,e.y,e.height);return`${r} ${i}`}const qde={offset:"stroke-dashoffset",array:"stroke-dasharray"},Kde={offset:"strokeDashoffset",array:"strokeDasharray"};function Yde(e,t,n=1,r=0,i=!0){e.pathLength=1;const o=i?qde:Kde;e[o.offset]=Tt.transform(-r);const a=Tt.transform(t),s=Tt.transform(n);e[o.array]=`${a} ${s}`}function U9(e,{attrX:t,attrY:n,originX:r,originY:i,pathLength:o,pathSpacing:a=1,pathOffset:s=0,...l},u,d,h){if(W9(e,l,u,h),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:m,style:y,dimensions:b}=e;m.transform&&(b&&(y.transform=m.transform),delete m.transform),b&&(r!==void 0||i!==void 0||y.transform)&&(y.transformOrigin=Gde(b,r!==void 0?r:.5,i!==void 0?i:.5)),t!==void 0&&(m.x=t),n!==void 0&&(m.y=n),o!==void 0&&Yde(m,o,a,s,!1)}const tB=()=>({...V9(),attrs:{}}),G9=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Xde(e,t,n,r){const i=S.useMemo(()=>{const o=tB();return U9(o,t,{enableHardwareAcceleration:!1},G9(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};JF(o,e.style,e),i.style={...o,...i.style}}return i}function Zde(e=!1){return(n,r,i,o,{latestValues:a},s)=>{const u=(H9(n)?Xde:Hde)(r,a,s,n),h={...Ude(r,typeof n=="string",e),...u,ref:o},{children:m}=r,y=S.useMemo(()=>ra(m)?m.get():m,[m]);return i&&(h["data-projection-id"]=i),S.createElement(n,{...h,children:y})}}const q9=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function nB(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const rB=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function iB(e,t,n,r){nB(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(rB.has(i)?i:q9(i),t.attrs[i])}function K9(e,t){const{style:n}=e,r={};for(const i in n)(ra(n[i])||t.style&&ra(t.style[i])||XF(i,e))&&(r[i]=n[i]);return r}function oB(e,t){const n=K9(e,t);for(const r in e)if(ra(e[r])||ra(t[r])){const i=r==="x"||r==="y"?"attr"+r.toUpperCase():r;n[i]=e[r]}return n}function Y9(e,t,n,r={},i={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),t}const t3=e=>Array.isArray(e),Qde=e=>Boolean(e&&typeof e=="object"&&e.mix&&e.toValue),Jde=e=>t3(e)?e[e.length-1]||0:e;function Jx(e){const t=ra(e)?e.get():e;return Qde(t)?t.toValue():t}function efe({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,i,o){const a={latestValues:tfe(r,i,o,e),renderState:t()};return n&&(a.mount=s=>n(r,s,a)),a}const aB=e=>(t,n)=>{const r=S.useContext(Aw),i=S.useContext(o2),o=()=>efe(e,t,r,i);return n?o():B9(o)};function tfe(e,t,n,r){const i={},o=r(e,{});for(const m in o)i[m]=Jx(o[m]);let{initial:a,animate:s}=e;const l=Rw(e),u=KF(e);t&&u&&!l&&e.inherit!==!1&&(a===void 0&&(a=t.initial),s===void 0&&(s=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const h=d?s:a;return h&&typeof h!="boolean"&&!Iw(h)&&(Array.isArray(h)?h:[h]).forEach(y=>{const b=Y9(e,y);if(!b)return;const{transitionEnd:w,transition:E,..._}=b;for(const k in _){let P=_[k];if(Array.isArray(P)){const L=d?P.length-1:0;P=P[L]}P!==null&&(i[k]=P)}for(const k in w)i[k]=w[k]}),i}const nfe={useVisualState:aB({scrapeMotionValuesFromProps:oB,createRenderState:tB,onMount:(e,t,{renderState:n,latestValues:r})=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}U9(n,r,{enableHardwareAcceleration:!1},G9(t.tagName),e.transformTemplate),iB(t,n)}})},rfe={useVisualState:aB({scrapeMotionValuesFromProps:K9,createRenderState:V9})};function ife(e,{forwardMotionProps:t=!1},n,r){return{...H9(e)?nfe:rfe,preloadedFeatures:n,useRender:Zde(t),createVisualElement:r,Component:e}}function Vu(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const sB=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function jw(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const ofe=e=>t=>sB(t)&&e(t,jw(t));function Ku(e,t,n,r){return Vu(e,t,ofe(n),r)}var ir;(function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.InView="whileInView",e.Exit="exit"})(ir||(ir={}));const afe=(e,t)=>n=>t(e(n)),Fd=(...e)=>e.reduce(afe);function lB(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const HL=lB("dragHorizontal"),WL=lB("dragVertical");function uB(e){let t=!1;if(e==="y")t=WL();else if(e==="x")t=HL();else{const n=HL(),r=WL();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function cB(){const e=uB(!0);return e?(e(),!1):!0}let cf=class{constructor(t){this.isMounted=!1,this.node=t}update(){}};function VL(e,t){const n="pointer"+(t?"enter":"leave"),r="onHover"+(t?"Start":"End"),i=(o,a)=>{if(o.type==="touch"||cB())return;const s=e.getProps();e.animationState&&s.whileHover&&e.animationState.setActive(ir.Hover,t),s[r]&&s[r](o,a)};return Ku(e.current,n,i,{passive:!e.getProps()[r]})}class sfe extends cf{mount(){this.unmount=Fd(VL(this.node,!0),VL(this.node,!1))}unmount(){}}class lfe extends cf{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive(ir.Focus,!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive(ir.Focus,!1),this.isActive=!1)}mount(){this.unmount=Fd(Vu(this.node.current,"focus",()=>this.onFocus()),Vu(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const dB=(e,t)=>t?e===t?!0:dB(e,t.parentElement):!1,Ql=e=>e;function tC(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,jw(n))}class ufe extends cf{constructor(){super(...arguments),this.removeStartListeners=Ql,this.removeEndListeners=Ql,this.removeAccessibleListeners=Ql,this.startPointerPress=(t,n)=>{if(this.removeEndListeners(),this.isPressing)return;const r=this.node.getProps(),o=Ku(window,"pointerup",(s,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:d}=this.node.getProps();dB(this.node.current,s.target)?u&&u(s,l):d&&d(s,l)},{passive:!(r.onTap||r.onPointerUp)}),a=Ku(window,"pointercancel",(s,l)=>this.cancelPress(s,l),{passive:!(r.onTapCancel||r.onPointerCancel)});this.removeEndListeners=Fd(o,a),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=o=>{if(o.key!=="Enter"||this.isPressing)return;const a=s=>{s.key!=="Enter"||!this.checkPressEnd()||tC("up",this.node.getProps().onTap)};this.removeEndListeners(),this.removeEndListeners=Vu(this.node.current,"keyup",a),tC("down",(s,l)=>{this.startPress(s,l)})},n=Vu(this.node.current,"keydown",t),r=()=>{this.isPressing&&tC("cancel",(o,a)=>this.cancelPress(o,a))},i=Vu(this.node.current,"blur",r);this.removeAccessibleListeners=Fd(n,i)}}startPress(t,n){this.isPressing=!0;const{onTapStart:r,whileTap:i}=this.node.getProps();i&&this.node.animationState&&this.node.animationState.setActive(ir.Tap,!0),r&&r(t,n)}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive(ir.Tap,!1),!cB()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:r}=this.node.getProps();r&&r(t,n)}mount(){const t=this.node.getProps(),n=Ku(this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),r=Vu(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Fd(n,r)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const M_=new WeakMap,nC=new WeakMap,cfe=e=>{const t=M_.get(e.target);t&&t(e)},dfe=e=>{e.forEach(cfe)};function ffe({root:e,...t}){const n=e||document;nC.has(n)||nC.set(n,{});const r=nC.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(dfe,{root:e,...t})),r[i]}function hfe(e,t,n){const r=ffe(t);return M_.set(e,n),r.observe(e),()=>{M_.delete(e),r.unobserve(e)}}const pfe={some:0,all:1};class gfe extends cf{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}viewportFallback(){requestAnimationFrame(()=>{this.hasEnteredView=!0;const{onViewportEnter:t}=this.node.getProps();t&&t(null),this.node.animationState&&this.node.animationState.setActive(ir.InView,!0)})}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:o,fallback:a=!0}=t;if(typeof IntersectionObserver>"u"){a&&this.viewportFallback();return}const s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:pfe[i]},l=u=>{const{isIntersecting:d}=u;if(this.isInView===d||(this.isInView=d,o&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(ir.InView,d);const{onViewportEnter:h,onViewportLeave:m}=this.node.getProps(),y=d?h:m;y&&y(u)};return hfe(this.node.current,s,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(mfe(t,n))&&this.startObserver()}unmount(){}}function mfe({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const vfe={inView:{Feature:gfe},tap:{Feature:ufe},focus:{Feature:lfe},hover:{Feature:sfe}};function fB(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r/^\-?\d*\.?\d+$/.test(e),bfe=e=>/^0[^.\s]+$/.test(e),Yu={delta:0,timestamp:0},hB=1/60*1e3,xfe=typeof performance<"u"?()=>performance.now():()=>Date.now(),pB=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(xfe()),hB);function Sfe(e){let t=[],n=[],r=0,i=!1,o=!1;const a=new WeakSet,s={schedule:(l,u=!1,d=!1)=>{const h=d&&i,m=h?t:n;return u&&a.add(l),m.indexOf(l)===-1&&(m.push(l),h&&i&&(r=t.length)),l},cancel:l=>{const u=n.indexOf(l);u!==-1&&n.splice(u,1),a.delete(l)},process:l=>{if(i){o=!0;return}if(i=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=Sfe(()=>Ay=!0),e),{}),uo=l2.reduce((e,t)=>{const n=Nw[t];return e[t]=(r,i=!1,o=!1)=>(Ay||_fe(),n.schedule(r,i,o)),e},{}),Kd=l2.reduce((e,t)=>(e[t]=Nw[t].cancel,e),{}),rC=l2.reduce((e,t)=>(e[t]=()=>Nw[t].process(Yu),e),{}),Cfe=e=>Nw[e].process(Yu),gB=e=>{Ay=!1,Yu.delta=L_?hB:Math.max(Math.min(e-Yu.timestamp,wfe),1),Yu.timestamp=e,A_=!0,l2.forEach(Cfe),A_=!1,Ay&&(L_=!1,pB(gB))},_fe=()=>{Ay=!0,L_=!0,A_||pB(gB)};function X9(e,t){e.indexOf(t)===-1&&e.push(t)}function Z9(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Q9{constructor(){this.subscriptions=[]}add(t){return X9(this.subscriptions,t),()=>Z9(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let o=0;o!isNaN(parseFloat(e));class Efe{constructor(t,n={}){this.version="9.0.4",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(r,i=!0)=>{this.prev=this.current,this.current=r;const{delta:o,timestamp:a}=Yu;this.lastUpdated!==a&&(this.timeDelta=o,this.lastUpdated=a,uo.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>uo.postRender(this.velocityCheck),this.velocityCheck=({timestamp:r})=>{r!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=kfe(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Q9);const r=this.events[t].add(n);return t==="change"?()=>{r(),uo.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=t,this.timeDelta=r}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?J9(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n)||null,this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=null}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Xm(e,t){return new Efe(e,t)}const e8=(e,t)=>n=>Boolean(a2(n)&&Nde.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),mB=(e,t,n)=>r=>{if(!a2(r))return r;const[i,o,a,s]=r.match(Ly);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(a),alpha:s!==void 0?parseFloat(s):1}},Pfe=e=>Ym(0,255,e),iC={...lp,transform:e=>Math.round(Pfe(e))},Mh={test:e8("rgb","red"),parse:mB("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+iC.transform(e)+", "+iC.transform(t)+", "+iC.transform(n)+", "+W1(H1.transform(r))+")"};function Tfe(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const O_={test:e8("#"),parse:Tfe,transform:Mh.transform},om={test:e8("hsl","hue"),parse:mB("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Zl.transform(W1(t))+", "+Zl.transform(W1(n))+", "+W1(H1.transform(r))+")"},So={test:e=>Mh.test(e)||O_.test(e)||om.test(e),parse:e=>Mh.test(e)?Mh.parse(e):om.test(e)?om.parse(e):O_.parse(e),transform:e=>a2(e)?e:e.hasOwnProperty("red")?Mh.transform(e):om.transform(e)},vB="${c}",yB="${n}";function Mfe(e){var t,n;return isNaN(e)&&a2(e)&&(((t=e.match(Ly))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(T_))===null||n===void 0?void 0:n.length)||0)>0}function n3(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0,r=0;const i=e.match(T_);i&&(n=i.length,e=e.replace(T_,vB),t.push(...i.map(So.parse)));const o=e.match(Ly);return o&&(r=o.length,e=e.replace(Ly,yB),t.push(...o.map(lp.parse))),{values:t,numColors:n,numNumbers:r,tokenised:e}}function bB(e){return n3(e).values}function xB(e){const{values:t,numColors:n,tokenised:r}=n3(e),i=t.length;return o=>{let a=r;for(let s=0;stypeof e=="number"?0:e;function Afe(e){const t=bB(e);return xB(e)(t.map(Lfe))}const Yd={test:Mfe,parse:bB,createTransformer:xB,getAnimatableNone:Afe},Ofe=new Set(["brightness","contrast","saturate","opacity"]);function Ife(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ly)||[];if(!r)return e;const i=n.replace(r,"");let o=Ofe.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+i+")"}const Rfe=/([a-z-]*)\(.*?\)/g,I_={...Yd,getAnimatableNone:e=>{const t=e.match(Rfe);return t?t.map(Ife).join(" "):e}},Dfe={...QF,color:So,backgroundColor:So,outlineColor:So,fill:So,stroke:So,borderColor:So,borderTopColor:So,borderRightColor:So,borderBottomColor:So,borderLeftColor:So,filter:I_,WebkitFilter:I_},t8=e=>Dfe[e];function n8(e,t){let n=t8(e);return n!==I_&&(n=Yd),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const SB=e=>t=>t.test(e),jfe={test:e=>e==="auto",parse:e=>e},wB=[lp,Tt,Zl,fd,Fde,$de,jfe],Uv=e=>wB.find(SB(e)),Nfe=[...wB,So,Yd],$fe=e=>Nfe.find(SB(e));function Ffe(e){const t={};return e.values.forEach((n,r)=>t[r]=n.get()),t}function Bfe(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function $w(e,t,n){const r=e.getProps();return Y9(r,t,n!==void 0?n:r.custom,Ffe(e),Bfe(e))}function zfe(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Xm(n))}function Hfe(e,t){const n=$w(e,t);let{transitionEnd:r={},transition:i={},...o}=n?e.makeTargetAnimatable(n,!1):{};o={...o,...r};for(const a in o){const s=Jde(o[a]);zfe(e,a,s)}}function Wfe(e,t,n){var r,i;const o=Object.keys(t).filter(s=>!e.hasValue(s)),a=o.length;if(a)for(let s=0;se*1e3,Yfe={current:!1},r8=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,i8=e=>t=>1-e(1-t),o8=e=>e*e,Xfe=i8(o8),a8=r8(o8),zr=(e,t,n)=>-n*e+n*t+e;function oC(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Zfe({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,a=0;if(!t)i=o=a=n;else{const s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;i=oC(l,s,e+1/3),o=oC(l,s,e),a=oC(l,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(a*255),alpha:r}}const aC=(e,t,n)=>{const r=e*e;return Math.sqrt(Math.max(0,n*(t*t-r)+r))},Qfe=[O_,Mh,om],Jfe=e=>Qfe.find(t=>t.test(e));function UL(e){const t=Jfe(e);let n=t.parse(e);return t===om&&(n=Zfe(n)),n}const CB=(e,t)=>{const n=UL(e),r=UL(t),i={...n};return o=>(i.red=aC(n.red,r.red,o),i.green=aC(n.green,r.green,o),i.blue=aC(n.blue,r.blue,o),i.alpha=zr(n.alpha,r.alpha,o),Mh.transform(i))};function _B(e,t){return typeof e=="number"?n=>zr(e,t,n):So.test(e)?CB(e,t):EB(e,t)}const kB=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,a)=>_B(o,t[a]));return o=>{for(let a=0;a{const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=_B(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}},EB=(e,t)=>{const n=Yd.createTransformer(t),r=n3(e),i=n3(t);return r.numColors===i.numColors&&r.numNumbers>=i.numNumbers?Fd(kB(r.values,i.values),n):a=>`${a>0?t:e}`},o3=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},GL=(e,t)=>n=>zr(e,t,n);function the(e){return typeof e=="number"?GL:typeof e=="string"?So.test(e)?CB:EB:Array.isArray(e)?kB:typeof e=="object"?ehe:GL}function nhe(e,t,n){const r=[],i=n||the(e[0]),o=e.length-1;for(let a=0;ae[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=nhe(t,r,i),s=a.length,l=u=>{let d=0;if(s>1)for(;dl(Ym(e[0],e[o-1],u)):l}const TB=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,rhe=1e-7,ihe=12;function ohe(e,t,n,r,i){let o,a,s=0;do a=t+(n-t)/2,o=TB(a,r,i)-e,o>0?n=a:t=a;while(Math.abs(o)>rhe&&++sohe(o,0,1,e,n);return o=>o===0||o===1?o:TB(i(o),t,r)}const LB=e=>1-Math.sin(Math.acos(e)),s8=i8(LB),ahe=r8(s8),AB=MB(.33,1.53,.69,.99),l8=i8(AB),she=r8(l8),lhe=e=>(e*=2)<1?.5*l8(e):.5*(2-Math.pow(2,-10*(e-1))),uhe={linear:Ql,easeIn:o8,easeInOut:a8,easeOut:Xfe,circIn:LB,circInOut:ahe,circOut:s8,backIn:l8,backInOut:she,backOut:AB,anticipate:lhe},qL=e=>{if(Array.isArray(e)){i3(e.length===4);const[t,n,r,i]=e;return MB(t,n,r,i)}else if(typeof e=="string")return uhe[e];return e},che=e=>Array.isArray(e)&&typeof e[0]!="number";function dhe(e,t){return e.map(()=>t||a8).splice(0,e.length-1)}function fhe(e){const t=e.length;return e.map((n,r)=>r!==0?r/(t-1):0)}function hhe(e,t){return e.map(n=>n*t)}function R_({keyframes:e,ease:t=a8,times:n,duration:r=300}){e=[...e];const i=che(t)?t.map(qL):qL(t),o={done:!1,value:e[0]},a=hhe(n&&n.length===e.length?n:fhe(e),r);function s(){return PB(a,e,{ease:Array.isArray(i)?i:dhe(e,i)})}let l=s();return{next:u=>(o.value=l(u),o.done=u>=r,o),flipTarget:()=>{e.reverse(),l=s()}}}const sC=.001,phe=.01,KL=10,ghe=.05,mhe=1;function vhe({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let i,o;Kfe(e<=KL*1e3);let a=1-t;a=Ym(ghe,mhe,a),e=Ym(phe,KL,e/1e3),a<1?(i=u=>{const d=u*a,h=d*e,m=d-n,y=D_(u,a),b=Math.exp(-h);return sC-m/y*b},o=u=>{const h=u*a*e,m=h*n+n,y=Math.pow(a,2)*Math.pow(u,2)*e,b=Math.exp(-h),w=D_(Math.pow(u,2),a);return(-i(u)+sC>0?-1:1)*((m-y)*b)/w}):(i=u=>{const d=Math.exp(-u*e),h=(u-n)*e+1;return-sC+d*h},o=u=>{const d=Math.exp(-u*e),h=(n-u)*(e*e);return d*h});const s=5/e,l=bhe(i,o,s);if(e=e*1e3,isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const yhe=12;function bhe(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function whe(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!YL(e,She)&&YL(e,xhe)){const n=vhe(e);t={...t,...n,velocity:0,mass:1},t.isResolvedFromDuration=!0}return t}const Che=5;function OB({keyframes:e,restDelta:t,restSpeed:n,...r}){let i=e[0],o=e[e.length-1];const a={done:!1,value:i},{stiffness:s,damping:l,mass:u,velocity:d,duration:h,isResolvedFromDuration:m}=whe(r);let y=_he,b=d?-(d/1e3):0;const w=l/(2*Math.sqrt(s*u));function E(){const _=o-i,k=Math.sqrt(s/u)/1e3,P=Math.abs(_)<5;if(n||(n=P?.01:2),t||(t=P?.005:.5),w<1){const L=D_(k,w);y=O=>{const D=Math.exp(-w*k*O);return o-D*((b+w*k*_)/L*Math.sin(L*O)+_*Math.cos(L*O))}}else if(w===1)y=L=>o-Math.exp(-k*L)*(_+(b+k*_)*L);else{const L=k*Math.sqrt(w*w-1);y=O=>{const D=Math.exp(-w*k*O),R=Math.min(L*O,300);return o-D*((b+w*k*_)*Math.sinh(R)+L*_*Math.cosh(R))/L}}}return E(),{next:_=>{const k=y(_);if(m)a.done=_>=h;else{let P=b;if(_!==0)if(w<1){const D=Math.max(0,_-Che);P=J9(k-y(D),_-D)}else P=0;const L=Math.abs(P)<=n,O=Math.abs(o-k)<=t;a.done=L&&O}return a.value=a.done?o:k,a},flipTarget:()=>{b=-b,[i,o]=[o,i],E()}}}OB.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";const _he=e=>0;function khe({keyframes:e=[0],velocity:t=0,power:n=.8,timeConstant:r=350,restDelta:i=.5,modifyTarget:o}){const a=e[0],s={done:!1,value:a};let l=n*t;const u=a+l,d=o===void 0?u:o(u);return d!==u&&(l=d-a),{next:h=>{const m=-l*Math.exp(-h/r);return s.done=!(m>i||m<-i),s.value=s.done?d:d+m,s},flipTarget:()=>{}}}const Ehe={decay:khe,keyframes:R_,tween:R_,spring:OB};function IB(e,t,n=0){return e-t-n}function Phe(e,t=0,n=0,r=!0){return r?IB(t+-e,t,n):t-(e-t)+n}function The(e,t,n,r){return r?e>=t+n:e<=-n}const Mhe=e=>{const t=({delta:n})=>e(n);return{start:()=>uo.update(t,!0),stop:()=>Kd.update(t)}};function a3({duration:e,driver:t=Mhe,elapsed:n=0,repeat:r=0,repeatType:i="loop",repeatDelay:o=0,keyframes:a,autoplay:s=!0,onPlay:l,onStop:u,onComplete:d,onRepeat:h,onUpdate:m,type:y="keyframes",...b}){const w=n;let E,_=0,k=e,P=!1,L=!0,O;const D=Ehe[a.length>2?"keyframes":y]||R_,R=a[0],N=a[a.length-1];let W={done:!1,value:R};const{needsInterpolation:B}=D;B&&B(R,N)&&(O=PB([0,100],[R,N],{clamp:!1}),a=[0,100]);const K=D({...b,duration:e,keyframes:a});function ne(){_++,i==="reverse"?(L=_%2===0,n=Phe(n,k,o,L)):(n=IB(n,k,o),i==="mirror"&&K.flipTarget()),P=!1,h&&h()}function z(){E&&E.stop(),d&&d()}function $(X){L||(X=-X),n+=X,P||(W=K.next(Math.max(0,n)),O&&(W.value=O(W.value)),P=L?W.done:n<=0),m&&m(W.value),P&&(_===0&&(k=k!==void 0?k:n),_{u&&u(),E&&E.stop()},set currentTime(X){n=w,$(X)},sample:X=>{n=w;const Q=e&&typeof e=="number"?Math.max(e*.5,50):50;let G=0;for($(0);G<=X;){const Y=X-G;$(Math.min(Y,Q)),G+=Q}return W}}}function Lhe(e){return!e||Array.isArray(e)||typeof e=="string"&&RB[e]}const g1=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,RB={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:g1([0,.65,.55,1]),circOut:g1([.55,0,1,.45]),backIn:g1([.31,.01,.66,-.59]),backOut:g1([.33,1.53,.69,.99])};function Ahe(e){if(e)return Array.isArray(e)?g1(e):RB[e]}function Ohe(e,t,n,{delay:r=0,duration:i,repeat:o=0,repeatType:a="loop",ease:s,times:l}={}){return e.animate({[t]:n,offset:l},{delay:r,duration:i,easing:Ahe(s),fill:"both",iterations:o+1,direction:a==="reverse"?"alternate":"normal"})}const XL={waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate")},lC={},DB={};for(const e in XL)DB[e]=()=>(lC[e]===void 0&&(lC[e]=XL[e]()),lC[e]);function Ihe(e,{repeat:t,repeatType:n="loop"}){const r=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[r]}const Rhe=new Set(["opacity"]),Ub=10;function Dhe(e,t,{onUpdate:n,onComplete:r,...i}){if(!(DB.waapi()&&Rhe.has(t)&&!i.repeatDelay&&i.repeatType!=="mirror"&&i.damping!==0))return!1;let{keyframes:a,duration:s=300,elapsed:l=0,ease:u}=i;if(i.type==="spring"||!Lhe(i.ease)){if(i.repeat===1/0)return;const h=a3({...i,elapsed:0});let m={done:!1,value:a[0]};const y=[];let b=0;for(;!m.done&&b<2e4;)m=h.sample(b),y.push(m.value),b+=Ub;a=y,s=b-Ub,u="linear"}const d=Ohe(e.owner.current,t,a,{...i,delay:-l,duration:s,ease:u});return d.onfinish=()=>{e.set(Ihe(a,i)),uo.update(()=>d.cancel()),r&&r()},{get currentTime(){return d.currentTime||0},set currentTime(h){d.currentTime=h},stop:()=>{const{currentTime:h}=d;if(h){const m=a3({...i,autoplay:!1});e.setWithVelocity(m.sample(h-Ub).value,m.sample(h).value,Ub)}uo.update(()=>d.cancel())}}}function jB(e,t){const n=performance.now(),r=({timestamp:i})=>{const o=i-n;o>=t&&(Kd.read(r),e(o-t))};return uo.read(r,!0),()=>Kd.read(r)}function jhe({keyframes:e,elapsed:t,onUpdate:n,onComplete:r}){const i=()=>{n&&n(e[e.length-1]),r&&r()};return t?{stop:jB(i,-t)}:i()}function Nhe({keyframes:e,velocity:t=0,min:n,max:r,power:i=.8,timeConstant:o=750,bounceStiffness:a=500,bounceDamping:s=10,restDelta:l=1,modifyTarget:u,driver:d,onUpdate:h,onComplete:m,onStop:y}){const b=e[0];let w;function E(L){return n!==void 0&&Lr}function _(L){return n===void 0?r:r===void 0||Math.abs(n-L){h&&h(O),L.onUpdate&&L.onUpdate(O)},onComplete:m,onStop:y})}function P(L){k({type:"spring",stiffness:a,damping:s,restDelta:l,...L})}if(E(b))P({velocity:t,keyframes:[b,_(b)]});else{let L=i*t+b;typeof u<"u"&&(L=u(L));const O=_(L),D=O===n?-1:1;let R,N;const W=B=>{R=N,N=B,t=J9(B-R,Yu.delta),(D===1&&B>O||D===-1&&Bw&&w.stop()}}const oh=()=>({type:"spring",stiffness:500,damping:25,restSpeed:10}),Gb=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),uC=()=>({type:"keyframes",ease:"linear",duration:.3}),$he={type:"keyframes",duration:.8},ZL={x:oh,y:oh,z:oh,rotate:oh,rotateX:oh,rotateY:oh,rotateZ:oh,scaleX:Gb,scaleY:Gb,scale:Gb,opacity:uC,backgroundColor:uC,color:uC,default:Gb},Fhe=(e,{keyframes:t})=>t.length>2?$he:(ZL[e]||ZL.default)(t[1]),j_=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&Yd.test(t)&&!t.startsWith("url("));function Bhe({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:o,repeatType:a,repeatDelay:s,from:l,elapsed:u,...d}){return!!Object.keys(d).length}function QL(e){return e===0||typeof e=="string"&&parseFloat(e)===0&&e.indexOf(" ")===-1}function JL(e){return typeof e=="number"?0:n8("",e)}function NB(e,t){return e[t]||e.default||e}function zhe(e,t,n,r){const i=j_(t,n);let o=r.from!==void 0?r.from:e.get();return o==="none"&&i&&typeof n=="string"?o=n8(t,n):QL(o)&&typeof n=="string"?o=JL(n):!Array.isArray(n)&&QL(n)&&typeof o=="string"&&(n=JL(o)),Array.isArray(n)?(n[0]===null&&(n[0]=o),n):[o,n]}const u8=(e,t,n,r={})=>i=>{const o=NB(r,e)||{},a=o.delay||r.delay||0;let{elapsed:s=0}=r;s=s-eS(a);const l=zhe(t,e,n,o),u=l[0],d=l[l.length-1],h=j_(e,u),m=j_(e,d);let y={keyframes:l,velocity:t.getVelocity(),...o,elapsed:s,onUpdate:b=>{t.set(b),o.onUpdate&&o.onUpdate(b)},onComplete:()=>{i(),o.onComplete&&o.onComplete()}};if(!h||!m||Yfe.current||o.type===!1)return jhe(y);if(o.type==="inertia")return Nhe(y);if(Bhe(o)||(y={...y,...Fhe(e,y)}),y.duration&&(y.duration=eS(y.duration)),y.repeatDelay&&(y.repeatDelay=eS(y.repeatDelay)),t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const b=Dhe(t,e,y);if(b)return b}return a3(y)};function Hhe(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(o=>N_(e,o,n));r=Promise.all(i)}else if(typeof t=="string")r=N_(e,t,n);else{const i=typeof t=="function"?$w(e,t,n.custom):t;r=$B(e,i,n)}return r.then(()=>e.notify("AnimationComplete",t))}function N_(e,t,n={}){const r=$w(e,t,n.custom);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const o=r?()=>$B(e,r,n):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=i;return Whe(e,t,u+l,d,h,n)}:()=>Promise.resolve(),{when:s}=i;if(s){const[l,u]=s==="beforeChildren"?[o,a]:[a,o];return l().then(u)}else return Promise.all([o(),a(n.delay)])}function $B(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:o=e.getDefaultTransition(),transitionEnd:a,...s}=e.makeTargetAnimatable(t);const l=e.getValue("willChange");r&&(o=r);const u=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const h in s){const m=e.getValue(h),y=s[h];if(!m||y===void 0||d&&Uhe(d,h))continue;const b={delay:n,elapsed:0,...o};if(window.HandoffAppearAnimations&&!m.hasAnimated){const E=e.getProps()[qfe];E&&(b.elapsed=window.HandoffAppearAnimations(E,h,m,uo))}let w=m.start(u8(h,m,y,e.shouldReduceMotion&&p0.has(h)?{type:!1}:b));r3(l)&&(l.add(h),w=w.then(()=>l.remove(h))),u.push(w)}return Promise.all(u).then(()=>{a&&Hfe(e,a)})}function Whe(e,t,n=0,r=0,i=1,o){const a=[],s=(e.variantChildren.size-1)*r,l=i===1?(u=0)=>u*r:(u=0)=>s-u*r;return Array.from(e.variantChildren).sort(Vhe).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(N_(u,t,{...o,delay:n+l(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function Vhe(e,t){return e.sortNodePosition(t)}function Uhe({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}const c8=[ir.Animate,ir.InView,ir.Focus,ir.Hover,ir.Tap,ir.Drag,ir.Exit],Ghe=[...c8].reverse(),qhe=c8.length;function Khe(e){return t=>Promise.all(t.map(({animation:n,options:r})=>Hhe(e,n,r)))}function Yhe(e){let t=Khe(e);const n=Zhe();let r=!0;const i=(l,u)=>{const d=$w(e,u);if(d){const{transition:h,transitionEnd:m,...y}=d;l={...l,...y,...m}}return l};function o(l){t=l(e)}function a(l,u){const d=e.getProps(),h=e.getVariantContext(!0)||{},m=[],y=new Set;let b={},w=1/0;for(let _=0;_w&&O;const B=Array.isArray(L)?L:[L];let K=B.reduce(i,{});D===!1&&(K={});const{prevResolvedValues:ne={}}=P,z={...ne,...K},$=U=>{W=!0,y.delete(U),P.needsAnimating[U]=!0};for(const U in z){const X=K[U],Q=ne[U];b.hasOwnProperty(U)||(X!==Q?t3(X)&&t3(Q)?!fB(X,Q)||N?$(U):P.protectedKeys[U]=!0:X!==void 0?$(U):y.add(U):X!==void 0&&y.has(U)?$(U):P.protectedKeys[U]=!0)}P.prevProp=L,P.prevResolvedValues=K,P.isActive&&(b={...b,...K}),r&&e.blockInitialAnimation&&(W=!1),W&&!R&&m.push(...B.map(U=>({animation:U,options:{type:k,...l}})))}if(y.size){const _={};y.forEach(k=>{const P=e.getBaseTarget(k);P!==void 0&&(_[k]=P)}),m.push({animation:_})}let E=Boolean(m.length);return r&&d.initial===!1&&!e.manuallyAnimateOnMount&&(E=!1),r=!1,E?t(m):Promise.resolve()}function s(l,u,d){if(n[l].isActive===u)return Promise.resolve();e.variantChildren&&e.variantChildren.forEach(m=>{m.animationState&&m.animationState.setActive(l,u)}),n[l].isActive=u;const h=a(d,l);for(const m in n)n[m].protectedKeys={};return h}return{animateChanges:a,setActive:s,setAnimateFunction:o,getState:()=>n}}function Xhe(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!fB(t,e):!1}function ah(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Zhe(){return{[ir.Animate]:ah(!0),[ir.InView]:ah(),[ir.Hover]:ah(),[ir.Tap]:ah(),[ir.Drag]:ah(),[ir.Focus]:ah(),[ir.Exit]:ah()}}class Qhe extends cf{constructor(t){super(t),t.animationState||(t.animationState=Yhe(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),Iw(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let Jhe=0;class epe extends cf{constructor(){super(...arguments),this.id=Jhe++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:r}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===i)return;const o=this.node.animationState.setActive(ir.Exit,!t,{custom:r??this.node.getProps().custom});n&&!t&&o.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const tpe={animation:{Feature:Qhe},exit:{Feature:epe}},eA=(e,t)=>Math.abs(e-t);function npe(e,t){const n=eA(e.x,t.x),r=eA(e.y,t.y);return Math.sqrt(n**2+r**2)}class FB{constructor(t,n,{transformPagePoint:r}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=dC(this.lastMoveEventInfo,this.history),d=this.startEvent!==null,h=npe(u.offset,{x:0,y:0})>=3;if(!d&&!h)return;const{point:m}=u,{timestamp:y}=Yu;this.history.push({...m,timestamp:y});const{onStart:b,onMove:w}=this.handlers;d||(b&&b(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),w&&w(this.lastMoveEvent,u)},this.handlePointerMove=(u,d)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=cC(d,this.transformPagePoint),uo.update(this.updatePoint,!0)},this.handlePointerUp=(u,d)=>{if(this.end(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const{onEnd:h,onSessionEnd:m}=this.handlers,y=dC(u.type==="pointercancel"?this.lastMoveEventInfo:cC(d,this.transformPagePoint),this.history);this.startEvent&&h&&h(u,y),m&&m(u,y)},!sB(t))return;this.handlers=n,this.transformPagePoint=r;const i=jw(t),o=cC(i,this.transformPagePoint),{point:a}=o,{timestamp:s}=Yu;this.history=[{...a,timestamp:s}];const{onSessionStart:l}=n;l&&l(t,dC(o,this.history)),this.removeListeners=Fd(Ku(window,"pointermove",this.handlePointerMove),Ku(window,"pointerup",this.handlePointerUp),Ku(window,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Kd.update(this.updatePoint)}}function cC(e,t){return t?{point:t(e.point)}:e}function tA(e,t){return{x:e.x-t.x,y:e.y-t.y}}function dC({point:e},t){return{point:e,delta:tA(e,BB(t)),offset:tA(e,rpe(t)),velocity:ipe(t,.1)}}function rpe(e){return e[0]}function BB(e){return e[e.length-1]}function ipe(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=BB(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>eS(t)));)n--;if(!r)return{x:0,y:0};const o=(i.timestamp-r.timestamp)/1e3;if(o===0)return{x:0,y:0};const a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function Ia(e){return e.max-e.min}function $_(e,t=0,n=.01){return Math.abs(e-t)<=n}function nA(e,t,n,r=.5){e.origin=r,e.originPoint=zr(t.min,t.max,e.origin),e.scale=Ia(n)/Ia(t),($_(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=zr(n.min,n.max,e.origin)-e.originPoint,($_(e.translate)||isNaN(e.translate))&&(e.translate=0)}function V1(e,t,n,r){nA(e.x,t.x,n.x,r?r.originX:void 0),nA(e.y,t.y,n.y,r?r.originY:void 0)}function rA(e,t,n){e.min=n.min+t.min,e.max=e.min+Ia(t)}function ope(e,t,n){rA(e.x,t.x,n.x),rA(e.y,t.y,n.y)}function iA(e,t,n){e.min=t.min-n.min,e.max=e.min+Ia(t)}function U1(e,t,n){iA(e.x,t.x,n.x),iA(e.y,t.y,n.y)}function ape(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?zr(n,e,r.max):Math.min(e,n)),e}function oA(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function spe(e,{top:t,left:n,bottom:r,right:i}){return{x:oA(e.x,n,i),y:oA(e.y,t,r)}}function aA(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=o3(t.min,t.max-r,e.min):r>i&&(n=o3(e.min,e.max-i,t.min)),Ym(0,1,n)}function cpe(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const F_=.35;function dpe(e=F_){return e===!1?e=0:e===!0&&(e=F_),{x:sA(e,"left","right"),y:sA(e,"top","bottom")}}function sA(e,t,n){return{min:lA(e,t),max:lA(e,n)}}function lA(e,t){return typeof e=="number"?e:e[t]||0}const uA=()=>({translate:0,scale:1,origin:0,originPoint:0}),G1=()=>({x:uA(),y:uA()}),cA=()=>({min:0,max:0}),vi=()=>({x:cA(),y:cA()});function Rl(e){return[e("x"),e("y")]}function zB({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function fpe({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function hpe(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function fC(e){return e===void 0||e===1}function B_({scale:e,scaleX:t,scaleY:n}){return!fC(e)||!fC(t)||!fC(n)}function ph(e){return B_(e)||HB(e)||e.z||e.rotate||e.rotateX||e.rotateY}function HB(e){return dA(e.x)||dA(e.y)}function dA(e){return e&&e!=="0%"}function s3(e,t,n){const r=e-n,i=t*r;return n+i}function fA(e,t,n,r,i){return i!==void 0&&(e=s3(e,i,r)),s3(e,n,r)+t}function z_(e,t=0,n=1,r,i){e.min=fA(e.min,t,n,r,i),e.max=fA(e.max,t,n,r,i)}function WB(e,{x:t,y:n}){z_(e.x,t.translate,t.scale,t.originPoint),z_(e.y,n.translate,n.scale,n.originPoint)}function ppe(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,a;for(let s=0;s1.0000000000001||e<.999999999999?e:1}function vd(e,t){e.min=e.min+t,e.max=e.max+t}function pA(e,t,[n,r,i]){const o=t[i]!==void 0?t[i]:.5,a=zr(e.min,e.max,o);z_(e,t[n],t[r],a,t.scale)}const gpe=["x","scaleX","originX"],mpe=["y","scaleY","originY"];function am(e,t){pA(e.x,t,gpe),pA(e.y,t,mpe)}function VB(e,t){return zB(hpe(e.getBoundingClientRect(),t))}function vpe(e,t,n){const r=VB(e,n),{scroll:i}=t;return i&&(vd(r.x,i.offset.x),vd(r.y,i.offset.y)),r}const ype=new WeakMap;class bpe{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=vi(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=l=>{this.stopAnimation(),n&&this.snapToCursor(jw(l,"page").point)},o=(l,u)=>{const{drag:d,dragPropagation:h,onDragStart:m}=this.getProps();if(d&&!h&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=uB(d),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Rl(b=>{let w=this.getAxisMotionValue(b).get()||0;if(Zl.test(w)){const{projection:E}=this.visualElement;if(E&&E.layout){const _=E.layout.layoutBox[b];_&&(w=Ia(_)*(parseFloat(w)/100))}}this.originPoint[b]=w}),m&&m(l,u);const{animationState:y}=this.visualElement;y&&y.setActive(ir.Drag,!0)},a=(l,u)=>{const{dragPropagation:d,dragDirectionLock:h,onDirectionLock:m,onDrag:y}=this.getProps();if(!d&&!this.openGlobalLock)return;const{offset:b}=u;if(h&&this.currentDirection===null){this.currentDirection=xpe(b),this.currentDirection!==null&&m&&m(this.currentDirection);return}this.updateAxis("x",u.point,b),this.updateAxis("y",u.point,b),this.visualElement.render(),y&&y(l,u)},s=(l,u)=>this.stop(l,u);this.panSession=new FB(t,{onSessionStart:i,onStart:o,onMove:a,onSessionEnd:s},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:o}=this.getProps();o&&o(t,n)}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive(ir.Drag,!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!qb(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=ape(a,this.constraints[t],this.elastic[t])),o.set(a)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),{layout:r}=this.visualElement.projection||{},i=this.constraints;t&&im(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=spe(r.layoutBox,t):this.constraints=!1,this.elastic=dpe(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Rl(o=>{this.getAxisMotionValue(o)&&(this.constraints[o]=cpe(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!im(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=vpe(r,i.root,this.visualElement.getTransformPagePoint());let a=lpe(i.layout.layoutBox,o);if(n){const s=n(fpe(a));this.hasMutatedConstraints=!!s,s&&(a=zB(s))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:a,onDragTransitionEnd:s}=this.getProps(),l=this.constraints||{},u=Rl(d=>{if(!qb(d,n,this.currentDirection))return;let h=l&&l[d]||{};a&&(h={min:0,max:0});const m=i?200:1e6,y=i?40:1e7,b={type:"inertia",velocity:r?t[d]:0,bounceStiffness:m,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...o,...h};return this.startAxisValueAnimation(d,b)});return Promise.all(u).then(s)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return r.start(u8(t,r,0,n))}stopAnimation(){Rl(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){Rl(n=>{const{drag:r}=this.getProps();if(!qb(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:a,max:s}=i.layout.layoutBox[n];o.set(t[n]-zr(a,s,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!im(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Rl(a=>{const s=this.getAxisMotionValue(a);if(s){const l=s.get();i[a]=upe({min:l,max:l},this.constraints[a])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Rl(a=>{if(!qb(a,t,null))return;const s=this.getAxisMotionValue(a),{min:l,max:u}=this.constraints[a];s.set(zr(l,u,i[a]))})}addListeners(){if(!this.visualElement.current)return;ype.set(this.visualElement,this);const t=this.visualElement.current,n=Ku(t,"pointerdown",l=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();im(l)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,o=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),r();const a=Vu(window,"resize",()=>this.scalePositionWithinConstraints()),s=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(Rl(d=>{const h=this.getAxisMotionValue(d);h&&(this.originPoint[d]+=l[d].translate,h.set(h.get()+l[d].translate))}),this.visualElement.render())});return()=>{a(),n(),o(),s&&s()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:a=F_,dragMomentum:s=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:a,dragMomentum:s}}}function qb(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function xpe(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Spe extends cf{constructor(t){super(t),this.removeGroupControls=Ql,this.removeListeners=Ql,this.controls=new bpe(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ql}unmount(){this.removeGroupControls(),this.removeListeners()}}class wpe extends cf{constructor(){super(...arguments),this.removePointerDownListener=Ql}onPointerDown(t){this.session=new FB(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint()})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:t,onStart:n,onMove:r,onEnd:(o,a)=>{delete this.session,i&&i(o,a)}}}mount(){this.removePointerDownListener=Ku(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function UB(){const e=S.useContext(o2);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,i=S.useId();return S.useEffect(()=>r(i),[]),!t&&n?[!1,()=>n&&n(i)]:[!0]}function Cpe(){return _pe(S.useContext(o2))}function _pe(e){return e===null?!0:e.isPresent}function gA(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Gv={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Tt.test(e))e=parseFloat(e);else return e;const n=gA(e,t.target.x),r=gA(e,t.target.y);return`${n}% ${r}%`}};function H_(e){return typeof e=="string"&&e.startsWith("var(--")}const GB=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function kpe(e){const t=GB.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function W_(e,t,n=1){const[r,i]=kpe(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);return o?o.trim():H_(i)?W_(i,t,n+1):i}function Epe(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(i=>{const o=i.get();if(!H_(o))return;const a=W_(o,r);a&&i.set(a)});for(const i in t){const o=t[i];if(!H_(o))continue;const a=W_(o,r);a&&(t[i]=a,n&&n[i]===void 0&&(n[i]=o))}return{target:t,transitionEnd:n}}const mA="_$css",Ppe={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=e.includes("var("),o=[];i&&(e=e.replace(GB,y=>(o.push(y),mA)));const a=Yd.parse(e);if(a.length>5)return r;const s=Yd.createTransformer(e),l=typeof a[0]!="number"?1:0,u=n.x.scale*t.x,d=n.y.scale*t.y;a[0+l]/=u,a[1+l]/=d;const h=zr(u,d,.5);typeof a[2+l]=="number"&&(a[2+l]/=h),typeof a[3+l]=="number"&&(a[3+l]/=h);let m=s(a);if(i){let y=0;m=m.replace(mA,()=>{const b=o[y];return y++,b})}return m}};class Tpe extends Ke.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;Ode(Mpe),o&&(n.group&&n.group.add(o),r&&r.register&&i&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),z1.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:o}=this.props,a=r.projection;return a&&(a.isPresent=o,i||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?a.promote():a.relegate()||uo.postRender(()=>{const s=a.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),!t.currentAnimation&&t.isLead()&&this.safeToRemove())}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function qB(e){const[t,n]=UB(),r=S.useContext(z9);return Ke.createElement(Tpe,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(YF),isPresent:t,safeToRemove:n})}const Mpe={borderRadius:{...Gv,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Gv,borderTopRightRadius:Gv,borderBottomLeftRadius:Gv,borderBottomRightRadius:Gv,boxShadow:Ppe};function Lpe(e,t,n={}){const r=ra(e)?e:Xm(e);return r.start(u8("",r,t,n)),{stop:()=>r.stop(),isAnimating:()=>r.isAnimating()}}const KB=["TopLeft","TopRight","BottomLeft","BottomRight"],Ape=KB.length,vA=e=>typeof e=="string"?parseFloat(e):e,yA=e=>typeof e=="number"||Tt.test(e);function Ope(e,t,n,r,i,o){i?(e.opacity=zr(0,n.opacity!==void 0?n.opacity:1,Ipe(r)),e.opacityExit=zr(t.opacity!==void 0?t.opacity:1,0,Rpe(r))):o&&(e.opacity=zr(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(o3(e,t,r))}function xA(e,t){e.min=t.min,e.max=t.max}function Bs(e,t){xA(e.x,t.x),xA(e.y,t.y)}function SA(e,t,n,r,i){return e-=t,e=s3(e,1/n,r),i!==void 0&&(e=s3(e,1/i,r)),e}function Dpe(e,t=0,n=1,r=.5,i,o=e,a=e){if(Zl.test(t)&&(t=parseFloat(t),t=zr(a.min,a.max,t/100)-a.min),typeof t!="number")return;let s=zr(o.min,o.max,r);e===o&&(s-=t),e.min=SA(e.min,t,n,s,i),e.max=SA(e.max,t,n,s,i)}function wA(e,t,[n,r,i],o,a){Dpe(e,t[n],t[r],t[i],t.scale,o,a)}const jpe=["x","scaleX","originX"],Npe=["y","scaleY","originY"];function CA(e,t,n,r){wA(e.x,t,jpe,n?n.x:void 0,r?r.x:void 0),wA(e.y,t,Npe,n?n.y:void 0,r?r.y:void 0)}function _A(e){return e.translate===0&&e.scale===1}function XB(e){return _A(e.x)&&_A(e.y)}function ZB(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function kA(e){return Ia(e.x)/Ia(e.y)}class $pe{constructor(){this.members=[]}add(t){X9(this.members,t),t.scheduleRender()}remove(t){if(Z9(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const o=this.members[i];if(o.isPresent!==!1){r=o;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function EA(e,t,n){let r="";const i=e.x.translate/t.x,o=e.y.translate/t.y;if((i||o)&&(r=`translate3d(${i}px, ${o}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:u,rotateY:d}=n;l&&(r+=`rotate(${l}deg) `),u&&(r+=`rotateX(${u}deg) `),d&&(r+=`rotateY(${d}deg) `)}const a=e.x.scale*t.x,s=e.y.scale*t.y;return(a!==1||s!==1)&&(r+=`scale(${a}, ${s})`),r||"none"}const Fpe=(e,t)=>e.depth-t.depth;class Bpe{constructor(){this.children=[],this.isDirty=!1}add(t){X9(this.children,t),this.isDirty=!0}remove(t){Z9(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Fpe),this.isDirty=!1,this.children.forEach(t)}}const PA=["","X","Y","Z"],TA=1e3;let zpe=0;function QB({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(a,s={},l=t==null?void 0:t()){this.id=zpe++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isTransformDirty=!1,this.isProjectionDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.nodes.forEach(Vpe),this.nodes.forEach(qpe),this.nodes.forEach(Kpe)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.elementId=a,this.latestValues=s,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0,a&&this.root.registerPotentialNode(a,this);for(let u=0;uthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,h&&h(),h=jB(m,250),z1.hasAnimatedSinceResize&&(z1.hasAnimatedSinceResize=!1,this.nodes.forEach(LA))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||u)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:m,hasRelativeTargetChanged:y,layout:b})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=this.options.transition||d.getDefaultTransition()||Jpe,{onLayoutAnimationStart:E,onLayoutAnimationComplete:_}=d.getProps(),k=!this.targetLayout||!ZB(this.targetLayout,b)||y,P=!m&&y;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||P||m&&(k||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(h,P);const L={...NB(w,"layout"),onPlay:E,onComplete:_};(d.shouldReduceMotion||this.options.layoutRoot)&&(L.delay=0,L.type=!1),this.startAnimation(L)}else!m&&this.animationProgress===0&&LA(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=b})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Kd.preRender(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Ype),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const L=P/1e3;AA(h.x,a.x,L),AA(h.y,a.y,L),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(U1(m,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Zpe(this.relativeTarget,this.relativeTargetOrigin,m,L)),w&&(this.animationValues=d,Ope(d,u,this.latestValues,L,k,_)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=L},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Kd.update(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=uo.update(()=>{z1.hasAnimatedSinceResize=!0,this.currentAnimation=Lpe(0,TA,{...a,onUpdate:s=>{this.mixTargetDelta(s),a.onUpdate&&a.onUpdate(s)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(TA),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:s,target:l,layout:u,latestValues:d}=a;if(!(!s||!l||!u)){if(this!==a&&this.layout&&u&&JB(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||vi();const h=Ia(this.layout.layoutBox.x);l.x.min=a.target.x.min,l.x.max=l.x.min+h;const m=Ia(this.layout.layoutBox.y);l.y.min=a.target.y.min,l.y.max=l.y.min+m}Bs(s,l),am(s,d),V1(this.projectionDeltaWithTransform,this.layoutCorrected,s,d)}}registerSharedNode(a,s){this.sharedNodes.has(a)||this.sharedNodes.set(a,new $pe),this.sharedNodes.get(a).add(s);const u=s.options.initialPromotionConfig;s.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(s):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:s}=this.options;return s?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:s}=this.options;return s?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:s,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),a&&(this.projectionDelta=void 0,this.needsReset=!0),s&&this.setOptions({transition:s})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetRotation(){const{visualElement:a}=this.options;if(!a)return;let s=!1;const{latestValues:l}=a;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(s=!0),!s)return;const u={};for(let d=0;d{var s;return(s=a.currentAnimation)===null||s===void 0?void 0:s.stop()}),this.root.nodes.forEach(MA),this.root.sharedNodes.clear()}}}function Hpe(e){e.updateLayout()}function Wpe(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:o}=e.options,a=n.source!==e.layout.source;o==="size"?Rl(h=>{const m=a?n.measuredBox[h]:n.layoutBox[h],y=Ia(m);m.min=r[h].min,m.max=m.min+y}):JB(o,n.layoutBox,r)&&Rl(h=>{const m=a?n.measuredBox[h]:n.layoutBox[h],y=Ia(r[h]);m.max=m.min+y});const s=G1();V1(s,r,n.layoutBox);const l=G1();a?V1(l,e.applyTransform(i,!0),n.measuredBox):V1(l,r,n.layoutBox);const u=!XB(s);let d=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:m,layout:y}=h;if(m&&y){const b=vi();U1(b,n.layoutBox,m.layoutBox);const w=vi();U1(w,r,y.layoutBox),ZB(b,w)||(d=!0),h.options.layoutRoot&&(e.relativeTarget=w,e.relativeTargetOrigin=b,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:s,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Vpe(e){e.isProjectionDirty||(e.isProjectionDirty=Boolean(e.parent&&e.parent.isProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=Boolean(e.parent&&e.parent.isTransformDirty))}function Upe(e){e.clearSnapshot()}function MA(e){e.clearMeasurements()}function Gpe(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function LA(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0}function qpe(e){e.resolveTargetDelta()}function Kpe(e){e.calcProjection()}function Ype(e){e.resetRotation()}function Xpe(e){e.removeLeadSnapshot()}function AA(e,t,n){e.translate=zr(t.translate,0,n),e.scale=zr(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function OA(e,t,n,r){e.min=zr(t.min,n.min,r),e.max=zr(t.max,n.max,r)}function Zpe(e,t,n,r){OA(e.x,t.x,n.x,r),OA(e.y,t.y,n.y,r)}function Qpe(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Jpe={duration:.45,ease:[.4,0,.1,1]};function ege(e,t){let n=e.root;for(let o=e.path.length-1;o>=0;o--)if(Boolean(e.path[o].instance)){n=e.path[o];break}const i=(n&&n!==e.root?n.instance:document).querySelector(`[data-projection-id="${t}"]`);i&&e.mount(i,!0)}function IA(e){e.min=Math.round(e.min),e.max=Math.round(e.max)}function tge(e){IA(e.x),IA(e.y)}function JB(e,t,n){return e==="position"||e==="preserve-aspect"&&!$_(kA(t),kA(n),.2)}const nge=QB({attachResizeListener:(e,t)=>Vu(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),hC={current:void 0},ez=QB({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!hC.current){const e=new nge(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),hC.current=e}return hC.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>Boolean(window.getComputedStyle(e).position==="fixed")}),rge={pan:{Feature:wpe},drag:{Feature:Spe,ProjectionNode:ez,MeasureLayout:qB}},ige=new Set(["width","height","top","left","right","bottom","x","y"]),tz=e=>ige.has(e),oge=e=>Object.keys(e).some(tz),RA=e=>e===lp||e===Tt;var DA;(function(e){e.width="width",e.height="height",e.left="left",e.right="right",e.top="top",e.bottom="bottom"})(DA||(DA={}));const jA=(e,t)=>parseFloat(e.split(", ")[t]),NA=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/);if(i)return jA(i[1],t);{const o=r.match(/^matrix\((.+)\)$/);return o?jA(o[1],e):0}},age=new Set(["x","y","z"]),sge=Dw.filter(e=>!age.has(e));function lge(e){const t=[];return sge.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const $A={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:NA(4,13),y:NA(5,14)},uge=(e,t,n)=>{const r=t.measureViewportBox(),i=t.current,o=getComputedStyle(i),{display:a}=o,s={};a==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{s[u]=$A[u](r,o)}),t.render();const l=t.measureViewportBox();return n.forEach(u=>{const d=t.getValue(u);d&&d.jump(s[u]),e[u]=$A[u](l,o)}),e},cge=(e,t,n={},r={})=>{t={...t},r={...r};const i=Object.keys(t).filter(tz);let o=[],a=!1;const s=[];if(i.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let d=n[l],h=Uv(d);const m=t[l];let y;if(t3(m)){const b=m.length,w=m[0]===null?1:0;d=m[w],h=Uv(d);for(let E=w;E=0?window.pageYOffset:null,u=uge(t,e,s);return o.length&&o.forEach(([d,h])=>{e.getValue(d).set(h)}),e.render(),Ow&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function dge(e,t,n,r){return oge(t)?cge(e,t,n,r):{target:t,transitionEnd:r}}const fge=(e,t,n,r)=>{const i=Epe(e,t,r);return t=i.target,r=i.transitionEnd,dge(e,t,n,r)},V_={current:null},nz={current:!1};function hge(){if(nz.current=!0,!!Ow)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>V_.current=e.matches;e.addListener(t),t()}else V_.current=!1}function pge(e,t,n){const{willChange:r}=t;for(const i in t){const o=t[i],a=n[i];if(ra(o))e.addValue(i,o),r3(r)&&r.add(i);else if(ra(a))e.addValue(i,Xm(o,{owner:e})),r3(r)&&r.remove(i);else if(a!==o)if(e.hasValue(i)){const s=e.getValue(i);!s.hasAnimated&&s.set(o)}else{const s=e.getStaticValue(i);e.addValue(i,Xm(s!==void 0?s:o,{owner:e}))}}for(const i in n)t[i]===void 0&&e.removeValue(i);return t}const rz=Object.keys(My),gge=rz.length,FA=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class mge{constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>uo.render(this.render,!1,!0);const{latestValues:s,renderState:l}=o;this.latestValues=s,this.baseTarget={...s},this.initialValues=n.initial?{...s}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=a,this.isControllingVariants=Rw(n),this.isVariantNode=KF(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(t&&t.current);const{willChange:u,...d}=this.scrapeMotionValuesFromProps(n,{});for(const h in d){const m=d[h];s[h]!==void 0&&ra(m)&&(m.set(s[h],!1),r3(u)&&u.add(h))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,this.projection&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,r)=>this.bindToMotionValue(r,n)),nz.current||hge(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:V_.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),Kd.update(this.notifyUpdate),Kd.render(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const r=p0.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&uo.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{i(),o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},r,i,o,a){let s,l;for(let u=0;uthis.scheduleRender(),animationType:typeof d=="string"?d:"both",initialPromotionConfig:a,layoutScroll:y,layoutRoot:b})}return l}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update(this.props,this.prevProps):(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):vi()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Xm(n,{owner:this}),this.addValue(t,r)),r}readValue(t){return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,i=typeof r=="string"||typeof r=="object"?(n=Y9(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&i!==void 0)return i;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!ra(o)?o:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Q9),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}const iz=["initial",...c8],vge=iz.length;class oz extends mge{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:i},o){let a=Ufe(r,t||{},this);if(i&&(n&&(n=i(n)),r&&(r=i(r)),a&&(a=i(a))),o){Wfe(this,r,a);const s=fge(this,r,a,n);n=s.transitionEnd,r=s.target}return{transition:t,transitionEnd:n,...r}}}function yge(e){return window.getComputedStyle(e)}class bge extends oz{readValueFromInstance(t,n){if(p0.has(n)){const r=t8(n);return r&&r.default||0}else{const r=yge(t),i=(ZF(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return VB(t,n)}build(t,n,r,i){W9(t,n,r,i.transformTemplate)}scrapeMotionValuesFromProps(t,n){return K9(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;ra(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,r,i){nB(t,n,r,i)}}class xge extends oz{constructor(){super(...arguments),this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(p0.has(n)){const r=t8(n);return r&&r.default||0}return n=rB.has(n)?n:q9(n),t.getAttribute(n)}measureInstanceViewportBox(){return vi()}scrapeMotionValuesFromProps(t,n){return oB(t,n)}build(t,n,r,i){U9(t,n,r,this.isSVGTag,i.transformTemplate)}renderInstance(t,n,r,i){iB(t,n,r,i)}mount(t){this.isSVGTag=G9(t.tagName),super.mount(t)}}const Sge=(e,t)=>H9(e)?new xge(t,{enableHardwareAcceleration:!1}):new bge(t,{enableHardwareAcceleration:!0}),wge={layout:{ProjectionNode:ez,MeasureLayout:qB}},Cge={...tpe,...vfe,...rge,...wge},uu=Lde((e,t)=>ife(e,t,Cge,Sge));function az(){const e=S.useRef(!1);return QS(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function _ge(){const e=az(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>uo.postRender(r),[r]),t]}class kge extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function Ege({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0});return S.useInsertionEffect(()=>{const{width:o,height:a,top:s,left:l}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const u=document.createElement("style");return document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${a}px !important; + top: ${s}px !important; + left: ${l}px !important; + } + `),()=>{document.head.removeChild(u)}},[t]),S.createElement(kge,{isPresent:t,childRef:r,sizeRef:i},S.cloneElement(e,{ref:r}))}const pC=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:o,mode:a})=>{const s=B9(Pge),l=S.useId(),u=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:d=>{s.set(d,!0);for(const h of s.values())if(!h)return;r&&r()},register:d=>(s.set(d,!1),()=>s.delete(d))}),o?void 0:[n]);return S.useMemo(()=>{s.forEach((d,h)=>s.set(h,!1))},[n]),S.useEffect(()=>{!n&&!s.size&&r&&r()},[n]),a==="popLayout"&&(e=S.createElement(Ege,{isPresent:n},e)),S.createElement(o2.Provider,{value:u},e)};function Pge(){return new Map}function Tge(e){return S.useEffect(()=>()=>e(),[])}const Hg=e=>e.key||"";function Mge(e,t){e.forEach(n=>{const r=Hg(n);t.set(r,n)})}function Lge(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const up=({children:e,custom:t,initial:n=!0,onExitComplete:r,exitBeforeEnter:i,presenceAffectsLayout:o=!0,mode:a="sync"})=>{i&&(a="wait");let[s]=_ge();const l=S.useContext(z9).forceRender;l&&(s=l);const u=az(),d=Lge(e);let h=d;const m=new Set,y=S.useRef(h),b=S.useRef(new Map).current,w=S.useRef(!0);if(QS(()=>{w.current=!1,Mge(d,b),y.current=h}),Tge(()=>{w.current=!0,b.clear(),m.clear()}),w.current)return S.createElement(S.Fragment,null,h.map(P=>S.createElement(pC,{key:Hg(P),isPresent:!0,initial:n?void 0:!1,presenceAffectsLayout:o,mode:a},P)));h=[...h];const E=y.current.map(Hg),_=d.map(Hg),k=E.length;for(let P=0;P{if(_.indexOf(P)!==-1)return;const L=b.get(P);if(!L)return;const O=E.indexOf(P),D=()=>{b.delete(P),m.delete(P);const R=y.current.findIndex(N=>N.key===P);if(y.current.splice(R,1),!m.size){if(y.current=d,u.current===!1)return;s(),r&&r()}};h.splice(O,0,S.createElement(pC,{key:Hg(L),isPresent:!1,onExitComplete:D,custom:t,presenceAffectsLayout:o,mode:a},L))}),h=h.map(P=>{const L=P.key;return m.has(L)?P:S.createElement(pC,{key:Hg(P),isPresent:!0,presenceAffectsLayout:o,mode:a},P)}),S.createElement(S.Fragment,null,m.size?h:h.map(P=>S.cloneElement(P)))};var Bl=function(){return Bl=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0&&o[o.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function U_(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r{const{position:t}=e,n=["top","bottom"].includes(t)?"y":"x";let r=["top-right","bottom-right"].includes(t)?1:-1;return t==="bottom"&&(r=1),{opacity:0,[n]:r*24}},animate:{opacity:1,y:0,x:0,scale:1,transition:{duration:.4,ease:[.4,0,.2,1]}},exit:{opacity:0,scale:.85,transition:{duration:.2,ease:[.4,0,1,1]}}},lz=S.memo(e=>{const{id:t,message:n,onCloseComplete:r,onRequestRemove:i,requestClose:o=!1,position:a="bottom",duration:s=5e3,containerStyle:l,motionVariants:u=Age,toastSpacing:d="0.5rem"}=e,[h,m]=S.useState(s),y=Cpe();oc(()=>{y||r==null||r()},[y]),oc(()=>{m(s)},[s]);const b=()=>m(null),w=()=>m(s),E=()=>{y&&i()};S.useEffect(()=>{y&&o&&i()},[y,o,i]),vde(E,h);const _=S.useMemo(()=>({pointerEvents:"auto",maxWidth:560,minWidth:300,margin:d,...l}),[l,d]),k=S.useMemo(()=>gde(a),[a]);return g.jsx(uu.li,{layout:!0,className:"chakra-toast",variants:u,initial:"initial",animate:"animate",exit:"exit",onHoverStart:b,onHoverEnd:w,custom:{position:a},style:k,children:g.jsx(Ne.div,{role:"status","aria-atomic":"true",className:"chakra-toast__inner",__css:_,children:os(n,{id:t,onClose:E})})})});lz.displayName="ToastComponent";function Oge(e,t){var n;const r=e??"bottom",o={"top-start":{ltr:"top-left",rtl:"top-right"},"top-end":{ltr:"top-right",rtl:"top-left"},"bottom-start":{ltr:"bottom-left",rtl:"bottom-right"},"bottom-end":{ltr:"bottom-right",rtl:"bottom-left"}}[r];return(n=o==null?void 0:o[t])!=null?n:r}var zA={path:g.jsxs("g",{stroke:"currentColor",strokeWidth:"1.5",children:[g.jsx("path",{strokeLinecap:"round",fill:"none",d:"M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"}),g.jsx("path",{fill:"currentColor",strokeLinecap:"round",d:"M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"}),g.jsx("circle",{fill:"none",strokeMiterlimit:"10",cx:"12",cy:"12",r:"11.25"})]}),viewBox:"0 0 24 24"},Ba=Xe((e,t)=>{const{as:n,viewBox:r,color:i="currentColor",focusable:o=!1,children:a,className:s,__css:l,...u}=e,d=bt("chakra-icon",s),h=lu("Icon",e),m={w:"1em",h:"1em",display:"inline-block",lineHeight:"1em",flexShrink:0,color:i,...l,...h},y={ref:t,focusable:o,className:d,__css:m},b=r??zA.viewBox;if(n&&typeof n!="string")return g.jsx(Ne.svg,{as:n,...y,...u});const w=a??zA.path;return g.jsx(Ne.svg,{verticalAlign:"middle",viewBox:b,...y,...u,children:w})});Ba.displayName="Icon";function pc(e){const{viewBox:t="0 0 24 24",d:n,displayName:r,defaultProps:i={}}=e,o=S.Children.toArray(e.path),a=Xe((s,l)=>g.jsx(Ba,{ref:l,viewBox:t,...i,...s,children:o.length?o:g.jsx("path",{fill:"currentColor",d:n})}));return a.displayName=r,a}function Ige(e){return g.jsx(Ba,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z"})})}function Rge(e){return g.jsx(Ba,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z"})})}function HA(e){return g.jsx(Ba,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})}var Dge=af({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),v0=Xe((e,t)=>{const n=lu("Spinner",e),{label:r="Loading...",thickness:i="2px",speed:o="0.45s",emptyColor:a="transparent",className:s,...l}=pr(e),u=bt("chakra-spinner",s),d={display:"inline-block",borderColor:"currentColor",borderStyle:"solid",borderRadius:"99999px",borderWidth:i,borderBottomColor:a,borderLeftColor:a,animation:`${Dge} ${o} linear infinite`,...n};return g.jsx(Ne.div,{ref:t,__css:d,className:u,...l,children:r&&g.jsx(Ne.span,{srOnly:!0,children:r})})});v0.displayName="Spinner";var[jge,Nge]=Ln({name:"AlertContext",hookName:"useAlertContext",providerName:""}),[$ge,d8]=Ln({name:"AlertStylesContext",hookName:"useAlertStyles",providerName:""}),uz={info:{icon:Rge,colorScheme:"blue"},warning:{icon:HA,colorScheme:"orange"},success:{icon:Ige,colorScheme:"green"},error:{icon:HA,colorScheme:"red"},loading:{icon:v0,colorScheme:"blue"}};function Fge(e){return uz[e].colorScheme}function Bge(e){return uz[e].icon}var cz=Xe(function(t,n){const i={display:"inline",...d8().description};return g.jsx(Ne.div,{ref:n,...t,className:bt("chakra-alert__desc",t.className),__css:i})});cz.displayName="AlertDescription";function dz(e){const{status:t}=Nge(),n=Bge(t),r=d8(),i=t==="loading"?r.spinner:r.icon;return g.jsx(Ne.span,{display:"inherit",...e,className:bt("chakra-alert__icon",e.className),__css:i,children:e.children||g.jsx(n,{h:"100%",w:"100%"})})}dz.displayName="AlertIcon";var fz=Xe(function(t,n){const r=d8();return g.jsx(Ne.div,{ref:n,...t,className:bt("chakra-alert__title",t.className),__css:r.title})});fz.displayName="AlertTitle";var hz=Xe(function(t,n){var r;const{status:i="info",addRole:o=!0,...a}=pr(t),s=(r=t.colorScheme)!=null?r:Fge(i),l=Zi("Alert",{...t,colorScheme:s}),u={width:"100%",display:"flex",alignItems:"center",position:"relative",overflow:"hidden",...l.container};return g.jsx(jge,{value:{status:i},children:g.jsx($ge,{value:l,children:g.jsx(Ne.div,{role:o?"alert":void 0,ref:n,...a,className:bt("chakra-alert",t.className),__css:u})})})});hz.displayName="Alert";function zge(e){return g.jsx(Ba,{focusable:"false","aria-hidden":!0,...e,children:g.jsx("path",{fill:"currentColor",d:"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z"})})}var f8=Xe(function(t,n){const r=lu("CloseButton",t),{children:i,isDisabled:o,__css:a,...s}=pr(t),l={outline:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};return g.jsx(Ne.button,{type:"button","aria-label":"Close",ref:n,disabled:o,__css:{...l,...r,...a},...s,children:i||g.jsx(zge,{width:"1em",height:"1em"})})});f8.displayName="CloseButton";var Hge={top:[],"top-left":[],"top-right":[],"bottom-left":[],bottom:[],"bottom-right":[]},zl=Wge(Hge);function Wge(e){let t=e;const n=new Set,r=i=>{t=i(t),n.forEach(o=>o())};return{getState:()=>t,subscribe:i=>(n.add(i),()=>{r(()=>e),n.delete(i)}),removeToast:(i,o)=>{r(a=>({...a,[o]:a[o].filter(s=>s.id!=i)}))},notify:(i,o)=>{const a=Vge(i,o),{position:s,id:l}=a;return r(u=>{var d,h;const y=s.includes("top")?[a,...(d=u[s])!=null?d:[]]:[...(h=u[s])!=null?h:[],a];return{...u,[s]:y}}),l},update:(i,o)=>{i&&r(a=>{const s={...a},{position:l,index:u}=jL(s,i);return l&&u!==-1&&(s[l][u]={...s[l][u],...o,message:pz(o)}),s})},closeAll:({positions:i}={})=>{r(o=>(i??["bottom","bottom-right","bottom-left","top","top-left","top-right"]).reduce((l,u)=>(l[u]=o[u].map(d=>({...d,requestClose:!0})),l),{...o}))},close:i=>{r(o=>{const a=UF(o,i);return a?{...o,[a]:o[a].map(s=>s.id==i?{...s,requestClose:!0}:s)}:o})},isActive:i=>Boolean(jL(zl.getState(),i).position)}}var WA=0;function Vge(e,t={}){var n,r;WA+=1;const i=(n=t.id)!=null?n:WA,o=(r=t.position)!=null?r:"bottom";return{id:i,message:e,position:o,duration:t.duration,onCloseComplete:t.onCloseComplete,onRequestRemove:()=>zl.removeToast(String(i),o),status:t.status,requestClose:!1,containerStyle:t.containerStyle}}var Uge=e=>{const{status:t,variant:n="solid",id:r,title:i,isClosable:o,onClose:a,description:s,icon:l}=e,u=r?{root:`toast-${r}`,title:`toast-${r}-title`,description:`toast-${r}-description`}:void 0;return g.jsxs(hz,{addRole:!1,status:t,variant:n,id:u==null?void 0:u.root,alignItems:"start",borderRadius:"md",boxShadow:"lg",paddingEnd:8,textAlign:"start",width:"auto",children:[g.jsx(dz,{children:l}),g.jsxs(Ne.div,{flex:"1",maxWidth:"100%",children:[i&&g.jsx(fz,{id:u==null?void 0:u.title,children:i}),s&&g.jsx(cz,{id:u==null?void 0:u.description,display:"block",children:s})]}),o&&g.jsx(f8,{size:"sm",onClick:a,position:"absolute",insetEnd:1,top:1})]})};function pz(e={}){const{render:t,toastComponent:n=Uge}=e;return i=>typeof t=="function"?t({...i,...e}):g.jsx(n,{...i,...e})}function Gge(e,t){const n=i=>{var o;return{...t,...i,position:Oge((o=i==null?void 0:i.position)!=null?o:t==null?void 0:t.position,e)}},r=i=>{const o=n(i),a=pz(o);return zl.notify(a,o)};return r.update=(i,o)=>{zl.update(i,n(o))},r.promise=(i,o)=>{const a=r({...o.loading,status:"loading",duration:null});i.then(s=>r.update(a,{status:"success",duration:5e3,...os(o.success,s)})).catch(s=>r.update(a,{status:"error",duration:5e3,...os(o.error,s)}))},r.closeAll=zl.closeAll,r.close=zl.close,r.isActive=zl.isActive,r}var[qge,Kge]=Ln({name:"ToastOptionsContext",strict:!1}),Yge=e=>{const t=S.useSyncExternalStore(zl.subscribe,zl.getState,zl.getState),{motionVariants:n,component:r=lz,portalProps:i}=e,a=Object.keys(t).map(s=>{const l=t[s];return g.jsx("ul",{role:"region","aria-live":"polite",id:`chakra-toast-manager-${s}`,style:mde(s),children:g.jsx(up,{initial:!1,children:l.map(u=>g.jsx(r,{motionVariants:n,...u},u.id))})},s)});return g.jsx(h0,{...i,children:a})};function u2(e){const{theme:t}=cF(),n=Kge();return S.useMemo(()=>Gge(t.direction,{...n,...e}),[e,t.direction,n])}var Xge=e=>function({children:n,theme:r=e,toastOptions:i,...o}){return g.jsxs(hde,{theme:r,...o,children:[g.jsx(qge,{value:i==null?void 0:i.defaultOptions,children:n}),g.jsx(Yge,{...i})]})},Zge=Xge(IF),Qge=Object.defineProperty,Jge=(e,t,n)=>t in e?Qge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fr=(e,t,n)=>(Jge(e,typeof t!="symbol"?t+"":t,n),n);function VA(e){return e.sort((t,n)=>{const r=t.compareDocumentPosition(n);if(r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0})}var eme=e=>typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE;function UA(e,t,n){let r=e+1;return n&&r>=t&&(r=0),r}function GA(e,t,n){let r=e-1;return n&&r<0&&(r=t),r}var G_=typeof window<"u"?S.useLayoutEffect:S.useEffect,l3=e=>e,tme=class{constructor(){Fr(this,"descendants",new Map),Fr(this,"register",e=>{if(e!=null)return eme(e)?this.registerNode(e):t=>{this.registerNode(t,e)}}),Fr(this,"unregister",e=>{this.descendants.delete(e);const t=VA(Array.from(this.descendants.keys()));this.assignIndex(t)}),Fr(this,"destroy",()=>{this.descendants.clear()}),Fr(this,"assignIndex",e=>{this.descendants.forEach(t=>{const n=e.indexOf(t.node);t.index=n,t.node.dataset.index=t.index.toString()})}),Fr(this,"count",()=>this.descendants.size),Fr(this,"enabledCount",()=>this.enabledValues().length),Fr(this,"values",()=>Array.from(this.descendants.values()).sort((t,n)=>t.index-n.index)),Fr(this,"enabledValues",()=>this.values().filter(e=>!e.disabled)),Fr(this,"item",e=>{if(this.count()!==0)return this.values()[e]}),Fr(this,"enabledItem",e=>{if(this.enabledCount()!==0)return this.enabledValues()[e]}),Fr(this,"first",()=>this.item(0)),Fr(this,"firstEnabled",()=>this.enabledItem(0)),Fr(this,"last",()=>this.item(this.descendants.size-1)),Fr(this,"lastEnabled",()=>{const e=this.enabledValues().length-1;return this.enabledItem(e)}),Fr(this,"indexOf",e=>{var t,n;return e&&(n=(t=this.descendants.get(e))==null?void 0:t.index)!=null?n:-1}),Fr(this,"enabledIndexOf",e=>e==null?-1:this.enabledValues().findIndex(t=>t.node.isSameNode(e))),Fr(this,"next",(e,t=!0)=>{const n=UA(e,this.count(),t);return this.item(n)}),Fr(this,"nextEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),i=UA(r,this.enabledCount(),t);return this.enabledItem(i)}),Fr(this,"prev",(e,t=!0)=>{const n=GA(e,this.count()-1,t);return this.item(n)}),Fr(this,"prevEnabled",(e,t=!0)=>{const n=this.item(e);if(!n)return;const r=this.enabledIndexOf(n.node),i=GA(r,this.enabledCount()-1,t);return this.enabledItem(i)}),Fr(this,"registerNode",(e,t)=>{if(!e||this.descendants.has(e))return;const n=Array.from(this.descendants.keys()).concat(e),r=VA(n);t!=null&&t.disabled&&(t.disabled=!!t.disabled);const i={node:e,index:-1,...t};this.descendants.set(e,i),this.assignIndex(r)})}};function nme(e,t){if(e!=null){if(typeof e=="function"){e(t);return}try{e.current=t}catch{throw new Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function Dn(...e){return t=>{e.forEach(n=>{nme(n,t)})}}function rme(...e){return S.useMemo(()=>Dn(...e),e)}function ime(){const e=S.useRef(new tme);return G_(()=>()=>e.current.destroy()),e.current}var[ome,gz]=Ln({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function ame(e){const t=gz(),[n,r]=S.useState(-1),i=S.useRef(null);G_(()=>()=>{i.current&&t.unregister(i.current)},[]),G_(()=>{if(!i.current)return;const a=Number(i.current.dataset.index);n!=a&&!Number.isNaN(a)&&r(a)});const o=l3(e?t.register(e):t.register);return{descendants:t,index:n,enabledIndex:t.enabledIndexOf(i.current),register:Dn(o,i)}}function h8(){return[l3(ome),()=>l3(gz()),()=>ime(),i=>ame(i)]}var[sme,Fw]=Ln({name:"AccordionStylesContext",hookName:"useAccordionStyles",providerName:""}),[lme,p8]=Ln({name:"AccordionItemContext",hookName:"useAccordionItemContext",providerName:""}),[ume,lFe,cme,dme]=h8(),sm=Xe(function(t,n){const{getButtonProps:r}=p8(),i=r(t,n),a={display:"flex",alignItems:"center",width:"100%",outline:0,...Fw().button};return g.jsx(Ne.button,{...i,className:bt("chakra-accordion__button",t.className),__css:a})});sm.displayName="AccordionButton";function g8(e){const{value:t,defaultValue:n,onChange:r,shouldUpdate:i=(m,y)=>m!==y}=e,o=ei(r),a=ei(i),[s,l]=S.useState(n),u=t!==void 0,d=u?t:s,h=ei(m=>{const b=typeof m=="function"?m(d):m;a(d,b)&&(u||l(b),o(b))},[u,o,d,a]);return[d,h]}function fme(e){const{onChange:t,defaultIndex:n,index:r,allowMultiple:i,allowToggle:o,...a}=e;gme(e),mme(e);const s=cme(),[l,u]=S.useState(-1);S.useEffect(()=>()=>{u(-1)},[]);const[d,h]=g8({value:r,defaultValue(){return i?n??[]:n??-1},onChange:t});return{index:d,setIndex:h,htmlProps:a,getAccordionItemProps:y=>{let b=!1;return y!==null&&(b=Array.isArray(d)?d.includes(y):d===y),{isOpen:b,onChange:E=>{if(y!==null)if(i&&Array.isArray(d)){const _=E?d.concat(y):d.filter(k=>k!==y);h(_)}else E?h(y):o&&h(-1)}}},focusedIndex:l,setFocusedIndex:u,descendants:s}}var[hme,m8]=Ln({name:"AccordionContext",hookName:"useAccordionContext",providerName:"Accordion"});function pme(e){const{isDisabled:t,isFocusable:n,id:r,...i}=e,{getAccordionItemProps:o,setFocusedIndex:a}=m8(),s=S.useRef(null),l=S.useId(),u=r??l,d=`accordion-button-${u}`,h=`accordion-panel-${u}`;vme(e);const{register:m,index:y,descendants:b}=dme({disabled:t&&!n}),{isOpen:w,onChange:E}=o(y===-1?null:y);yme({isOpen:w,isDisabled:t});const _=()=>{E==null||E(!0)},k=()=>{E==null||E(!1)},P=S.useCallback(()=>{E==null||E(!w),a(y)},[y,a,w,E]),L=S.useCallback(N=>{const B={ArrowDown:()=>{const K=b.nextEnabled(y);K==null||K.node.focus()},ArrowUp:()=>{const K=b.prevEnabled(y);K==null||K.node.focus()},Home:()=>{const K=b.firstEnabled();K==null||K.node.focus()},End:()=>{const K=b.lastEnabled();K==null||K.node.focus()}}[N.key];B&&(N.preventDefault(),B(N))},[b,y]),O=S.useCallback(()=>{a(y)},[a,y]),D=S.useCallback(function(W={},B=null){return{...W,type:"button",ref:Dn(m,s,B),id:d,disabled:!!t,"aria-expanded":!!w,"aria-controls":h,onClick:ht(W.onClick,P),onFocus:ht(W.onFocus,O),onKeyDown:ht(W.onKeyDown,L)}},[d,t,w,P,O,L,h,m]),R=S.useCallback(function(W={},B=null){return{...W,ref:B,role:"region",id:h,"aria-labelledby":d,hidden:!w}},[d,w,h]);return{isOpen:w,isDisabled:t,isFocusable:n,onOpen:_,onClose:k,getButtonProps:D,getPanelProps:R,htmlProps:i}}function gme(e){const t=e.index||e.defaultIndex,n=t!=null&&!Array.isArray(t)&&e.allowMultiple;n2({condition:!!n,message:`If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: ${typeof t},`})}function mme(e){n2({condition:!!(e.allowMultiple&&e.allowToggle),message:"If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not"})}function vme(e){n2({condition:!!(e.isFocusable&&!e.isDisabled),message:`Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well. + `})}function yme(e){n2({condition:e.isOpen&&!!e.isDisabled,message:"Cannot open a disabled accordion item"})}function lm(e){const{isOpen:t,isDisabled:n}=p8(),{reduceMotion:r}=m8(),i=bt("chakra-accordion__icon",e.className),o=Fw(),a={opacity:n?.4:1,transform:t?"rotate(-180deg)":void 0,transition:r?void 0:"transform 0.2s",transformOrigin:"center",...o.icon};return g.jsx(Ba,{viewBox:"0 0 24 24","aria-hidden":!0,className:i,__css:a,...e,children:g.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})})}lm.displayName="AccordionIcon";var um=Xe(function(t,n){const{children:r,className:i}=t,{htmlProps:o,...a}=pme(t),l={...Fw().container,overflowAnchor:"none"},u=S.useMemo(()=>a,[a]);return g.jsx(lme,{value:u,children:g.jsx(Ne.div,{ref:n,...o,className:bt("chakra-accordion__item",i),__css:l,children:typeof r=="function"?r({isExpanded:!!a.isOpen,isDisabled:!!a.isDisabled}):r})})});um.displayName="AccordionItem";var cm={ease:[.25,.1,.25,1],easeIn:[.4,0,1,1],easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1]},$h={enter:{duration:.2,ease:cm.easeOut},exit:{duration:.1,ease:cm.easeIn}},Xu={enter:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.enter}),exit:(e,t)=>({...e,delay:typeof t=="number"?t:t==null?void 0:t.exit})},bme=e=>e!=null&&parseInt(e.toString(),10)>0,qA={exit:{height:{duration:.2,ease:cm.ease},opacity:{duration:.3,ease:cm.ease}},enter:{height:{duration:.3,ease:cm.ease},opacity:{duration:.4,ease:cm.ease}}},xme={exit:({animateOpacity:e,startingHeight:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{...e&&{opacity:bme(t)?1:0},height:t,transitionEnd:r==null?void 0:r.exit,transition:(o=n==null?void 0:n.exit)!=null?o:Xu.exit(qA.exit,i)}},enter:({animateOpacity:e,endingHeight:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{...e&&{opacity:1},height:t,transitionEnd:r==null?void 0:r.enter,transition:(o=n==null?void 0:n.enter)!=null?o:Xu.enter(qA.enter,i)}}},mz=S.forwardRef((e,t)=>{const{in:n,unmountOnExit:r,animateOpacity:i=!0,startingHeight:o=0,endingHeight:a="auto",style:s,className:l,transition:u,transitionEnd:d,...h}=e,[m,y]=S.useState(!1);S.useEffect(()=>{const k=setTimeout(()=>{y(!0)});return()=>clearTimeout(k)},[]),n2({condition:Boolean(o>0&&r),message:"startingHeight and unmountOnExit are mutually exclusive. You can't use them together"});const b=parseFloat(o.toString())>0,w={startingHeight:o,endingHeight:a,animateOpacity:i,transition:m?u:{enter:{duration:0}},transitionEnd:{enter:d==null?void 0:d.enter,exit:r?d==null?void 0:d.exit:{...d==null?void 0:d.exit,display:b?"block":"none"}}},E=r?n:!0,_=n||r?"enter":"exit";return g.jsx(up,{initial:!1,custom:w,children:E&&g.jsx(uu.div,{ref:t,...h,className:bt("chakra-collapse",l),style:{overflow:"hidden",display:"block",...s},custom:w,variants:xme,initial:r?"exit":!1,animate:_,exit:"exit"})})});mz.displayName="Collapse";var Sme={enter:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:1,transition:(r=e==null?void 0:e.enter)!=null?r:Xu.enter($h.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({transition:e,transitionEnd:t,delay:n}={})=>{var r;return{opacity:0,transition:(r=e==null?void 0:e.exit)!=null?r:Xu.exit($h.exit,n),transitionEnd:t==null?void 0:t.exit}}},vz={initial:"exit",animate:"enter",exit:"exit",variants:Sme},wme=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,className:o,transition:a,transitionEnd:s,delay:l,...u}=t,d=i||r?"enter":"exit",h=r?i&&r:!0,m={transition:a,transitionEnd:s,delay:l};return g.jsx(up,{custom:m,children:h&&g.jsx(uu.div,{ref:n,className:bt("chakra-fade",o),custom:m,...vz,animate:d,...u})})});wme.displayName="Fade";var Cme={exit:({reverse:e,initialScale:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{opacity:0,...e?{scale:t,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{scale:t,...r==null?void 0:r.exit}},transition:(o=n==null?void 0:n.exit)!=null?o:Xu.exit($h.exit,i)}},enter:({transitionEnd:e,transition:t,delay:n})=>{var r;return{opacity:1,scale:1,transition:(r=t==null?void 0:t.enter)!=null?r:Xu.enter($h.enter,n),transitionEnd:e==null?void 0:e.enter}}},yz={initial:"exit",animate:"enter",exit:"exit",variants:Cme},_me=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,reverse:o=!0,initialScale:a=.95,className:s,transition:l,transitionEnd:u,delay:d,...h}=t,m=r?i&&r:!0,y=i||r?"enter":"exit",b={initialScale:a,reverse:o,transition:l,transitionEnd:u,delay:d};return g.jsx(up,{custom:b,children:m&&g.jsx(uu.div,{ref:n,className:bt("chakra-offset-slide",s),...yz,animate:y,custom:b,...h})})});_me.displayName="ScaleFade";var kme={initial:({offsetX:e,offsetY:t,transition:n,transitionEnd:r,delay:i})=>{var o;return{opacity:0,x:e,y:t,transition:(o=n==null?void 0:n.exit)!=null?o:Xu.exit($h.exit,i),transitionEnd:r==null?void 0:r.exit}},enter:({transition:e,transitionEnd:t,delay:n})=>{var r;return{opacity:1,x:0,y:0,transition:(r=e==null?void 0:e.enter)!=null?r:Xu.enter($h.enter,n),transitionEnd:t==null?void 0:t.enter}},exit:({offsetY:e,offsetX:t,transition:n,transitionEnd:r,reverse:i,delay:o})=>{var a;const s={x:t,y:e};return{opacity:0,transition:(a=n==null?void 0:n.exit)!=null?a:Xu.exit($h.exit,o),...i?{...s,transitionEnd:r==null?void 0:r.exit}:{transitionEnd:{...s,...r==null?void 0:r.exit}}}}},q_={initial:"initial",animate:"enter",exit:"exit",variants:kme},Eme=S.forwardRef(function(t,n){const{unmountOnExit:r,in:i,reverse:o=!0,className:a,offsetX:s=0,offsetY:l=8,transition:u,transitionEnd:d,delay:h,...m}=t,y=r?i&&r:!0,b=i||r?"enter":"exit",w={offsetX:s,offsetY:l,reverse:o,transition:u,transitionEnd:d,delay:h};return g.jsx(up,{custom:w,children:y&&g.jsx(uu.div,{ref:n,className:bt("chakra-offset-slide",a),custom:w,...q_,animate:b,...m})})});Eme.displayName="SlideFade";var dm=Xe(function(t,n){const{className:r,motionProps:i,...o}=t,{reduceMotion:a}=m8(),{getPanelProps:s,isOpen:l}=p8(),u=s(o,n),d=bt("chakra-accordion__panel",r),h=Fw();a||delete u.hidden;const m=g.jsx(Ne.div,{...u,__css:h.panel,className:d});return a?m:g.jsx(mz,{in:l,...i,children:m})});dm.displayName="AccordionPanel";var v8=Xe(function({children:t,reduceMotion:n,...r},i){const o=Zi("Accordion",r),a=pr(r),{htmlProps:s,descendants:l,...u}=fme(a),d=S.useMemo(()=>({...u,reduceMotion:!!n}),[u,n]);return g.jsx(ume,{value:l,children:g.jsx(hme,{value:d,children:g.jsx(sme,{value:o,children:g.jsx(Ne.div,{ref:i,...s,className:bt("chakra-accordion",r.className),__css:o.root,children:t})})})})});v8.displayName="Accordion";var K_=Xe(function(t,n){const{htmlWidth:r,htmlHeight:i,alt:o,...a}=t;return g.jsx("img",{width:r,height:i,ref:n,alt:o,...a})});K_.displayName="NativeImage";function Pme(e){const{loading:t,src:n,srcSet:r,onLoad:i,onError:o,crossOrigin:a,sizes:s,ignoreFallback:l}=e,[u,d]=S.useState("pending");S.useEffect(()=>{d(n?"loading":"pending")},[n]);const h=S.useRef(),m=S.useCallback(()=>{if(!n)return;y();const b=new Image;b.src=n,a&&(b.crossOrigin=a),r&&(b.srcset=r),s&&(b.sizes=s),t&&(b.loading=t),b.onload=w=>{y(),d("loaded"),i==null||i(w)},b.onerror=w=>{y(),d("failed"),o==null||o(w)},h.current=b},[n,a,r,s,i,o,t]),y=()=>{h.current&&(h.current.onload=null,h.current.onerror=null,h.current=null)};return ql(()=>{if(!l)return u==="loading"&&m(),()=>{y()}},[u,m,l]),l?"loaded":u}var Tme=(e,t)=>e!=="loaded"&&t==="beforeLoadOrError"||e==="failed"&&t==="onError";function Mme(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var c2=Xe(function(t,n){const{fallbackSrc:r,fallback:i,src:o,srcSet:a,align:s,fit:l,loading:u,ignoreFallback:d,crossOrigin:h,fallbackStrategy:m="beforeLoadOrError",referrerPolicy:y,...b}=t,w=r!==void 0||i!==void 0,E=u!=null||d||!w,_=Pme({...t,ignoreFallback:E}),k=Tme(_,m),P={ref:n,objectFit:l,objectPosition:s,...E?b:Mme(b,["onError","onLoad"])};return k?i||g.jsx(Ne.img,{as:K_,className:"chakra-image__placeholder",src:r,...P}):g.jsx(Ne.img,{as:K_,src:o,srcSet:a,crossOrigin:h,loading:u,referrerPolicy:y,className:"chakra-image",...P})});c2.displayName="Image";function y8(e){return S.Children.toArray(e).filter(t=>S.isValidElement(t))}var[Lme,Ame]=Ln({strict:!1,name:"ButtonGroupContext"}),Ome={horizontal:{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}},vertical:{"> *:first-of-type:not(:last-of-type)":{borderBottomRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderTopRadius:0}}},Ime={horizontal:e=>({"& > *:not(style) ~ *:not(style)":{marginStart:e}}),vertical:e=>({"& > *:not(style) ~ *:not(style)":{marginTop:e}})},Ki=Xe(function(t,n){const{size:r,colorScheme:i,variant:o,className:a,spacing:s="0.5rem",isAttached:l,isDisabled:u,orientation:d="horizontal",...h}=t,m=bt("chakra-button__group",a),y=S.useMemo(()=>({size:r,colorScheme:i,variant:o,isDisabled:u}),[r,i,o,u]);let b={display:"inline-flex",...l?Ome[d]:Ime[d](s)};const w=d==="vertical";return g.jsx(Lme,{value:y,children:g.jsx(Ne.div,{ref:n,role:"group",__css:b,className:m,"data-attached":l?"":void 0,"data-orientation":d,flexDir:w?"column":void 0,...h})})});Ki.displayName="ButtonGroup";function Rme(e){const[t,n]=S.useState(!e);return{ref:S.useCallback(o=>{o&&n(o.tagName==="BUTTON")},[]),type:t?"button":void 0}}function Y_(e){const{children:t,className:n,...r}=e,i=S.isValidElement(t)?S.cloneElement(t,{"aria-hidden":!0,focusable:!1}):t,o=bt("chakra-button__icon",n);return g.jsx(Ne.span,{display:"inline-flex",alignSelf:"center",flexShrink:0,...r,className:o,children:i})}Y_.displayName="ButtonIcon";function u3(e){const{label:t,placement:n,spacing:r="0.5rem",children:i=g.jsx(v0,{color:"currentColor",width:"1em",height:"1em"}),className:o,__css:a,...s}=e,l=bt("chakra-button__spinner",o),u=n==="start"?"marginEnd":"marginStart",d=S.useMemo(()=>({display:"flex",alignItems:"center",position:t?"relative":"absolute",[u]:t?r:0,fontSize:"1em",lineHeight:"normal",...a}),[a,t,u,r]);return g.jsx(Ne.div,{className:l,...s,__css:d,children:i})}u3.displayName="ButtonSpinner";var Ra=Xe((e,t)=>{const n=Ame(),r=lu("Button",{...n,...e}),{isDisabled:i=n==null?void 0:n.isDisabled,isLoading:o,isActive:a,children:s,leftIcon:l,rightIcon:u,loadingText:d,iconSpacing:h="0.5rem",type:m,spinner:y,spinnerPlacement:b="start",className:w,as:E,..._}=pr(e),k=S.useMemo(()=>{const D={...r==null?void 0:r._focus,zIndex:1};return{display:"inline-flex",appearance:"none",alignItems:"center",justifyContent:"center",userSelect:"none",position:"relative",whiteSpace:"nowrap",verticalAlign:"middle",outline:"none",...r,...!!n&&{_focus:D}}},[r,n]),{ref:P,type:L}=Rme(E),O={rightIcon:u,leftIcon:l,iconSpacing:h,children:s};return g.jsxs(Ne.button,{ref:rme(t,P),as:E,type:m??L,"data-active":Ht(a),"data-loading":Ht(o),__css:k,className:bt("chakra-button",w),..._,disabled:i||o,children:[o&&b==="start"&&g.jsx(u3,{className:"chakra-button__spinner--start",label:d,placement:"start",spacing:h,children:y}),o?d||g.jsx(Ne.span,{opacity:0,children:g.jsx(KA,{...O})}):g.jsx(KA,{...O}),o&&b==="end"&&g.jsx(u3,{className:"chakra-button__spinner--end",label:d,placement:"end",spacing:h,children:y})]})});Ra.displayName="Button";function KA(e){const{leftIcon:t,rightIcon:n,children:r,iconSpacing:i}=e;return g.jsxs(g.Fragment,{children:[t&&g.jsx(Y_,{marginEnd:i,children:t}),r,n&&g.jsx(Y_,{marginStart:i,children:n})]})}var Da=Xe((e,t)=>{const{icon:n,children:r,isRound:i,"aria-label":o,...a}=e,s=n||r,l=S.isValidElement(s)?S.cloneElement(s,{"aria-hidden":!0,focusable:!1}):null;return g.jsx(Ra,{padding:"0",borderRadius:i?"full":void 0,ref:t,"aria-label":o,...a,children:l})});Da.displayName="IconButton";var[uFe,Dme]=Ln({name:"CheckboxGroupContext",strict:!1});function jme(e){return g.jsx(Ne.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...e,children:g.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function Nme(e){return g.jsx(Ne.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...e,children:g.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function $me(e){const{isIndeterminate:t,isChecked:n,...r}=e,i=t?Nme:jme;return n||t?g.jsx(Ne.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:g.jsx(i,{...r})}):null}var[Fme,bz]=Ln({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Bme,cp]=Ln({strict:!1,name:"FormControlContext"});function zme(e){const{id:t,isRequired:n,isInvalid:r,isDisabled:i,isReadOnly:o,...a}=e,s=S.useId(),l=t||`field-${s}`,u=`${l}-label`,d=`${l}-feedback`,h=`${l}-helptext`,[m,y]=S.useState(!1),[b,w]=S.useState(!1),[E,_]=S.useState(!1),k=S.useCallback((R={},N=null)=>({id:h,...R,ref:Dn(N,W=>{W&&w(!0)})}),[h]),P=S.useCallback((R={},N=null)=>{var W,B;return{...R,ref:N,"data-focus":Ht(E),"data-disabled":Ht(i),"data-invalid":Ht(r),"data-readonly":Ht(o),id:(W=R.id)!=null?W:u,htmlFor:(B=R.htmlFor)!=null?B:l}},[l,i,E,r,o,u]),L=S.useCallback((R={},N=null)=>({id:d,...R,ref:Dn(N,W=>{W&&y(!0)}),"aria-live":"polite"}),[d]),O=S.useCallback((R={},N=null)=>({...R,...a,ref:N,role:"group"}),[a]),D=S.useCallback((R={},N=null)=>({...R,ref:N,role:"presentation","aria-hidden":!0,children:R.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!o,isDisabled:!!i,isFocused:!!E,onFocus:()=>_(!0),onBlur:()=>_(!1),hasFeedbackText:m,setHasFeedbackText:y,hasHelpText:b,setHasHelpText:w,id:l,labelId:u,feedbackId:d,helpTextId:h,htmlProps:a,getHelpTextProps:k,getErrorMessageProps:L,getRootProps:O,getLabelProps:P,getRequiredIndicatorProps:D}}var un=Xe(function(t,n){const r=Zi("Form",t),i=pr(t),{getRootProps:o,htmlProps:a,...s}=zme(i),l=bt("chakra-form-control",t.className);return g.jsx(Bme,{value:s,children:g.jsx(Fme,{value:r,children:g.jsx(Ne.div,{...o({},n),className:l,__css:r.container})})})});un.displayName="FormControl";var cr=Xe(function(t,n){const r=cp(),i=bz(),o=bt("chakra-form__helper-text",t.className);return g.jsx(Ne.div,{...r==null?void 0:r.getHelpTextProps(t,n),__css:i.helperText,className:o})});cr.displayName="FormHelperText";var[Hme,Wme]=Ln({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),dr=Xe((e,t)=>{const n=Zi("FormError",e),r=pr(e),i=cp();return i!=null&&i.isInvalid?g.jsx(Hme,{value:n,children:g.jsx(Ne.div,{...i==null?void 0:i.getErrorMessageProps(r,t),className:bt("chakra-form__error-message",e.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});dr.displayName="FormErrorMessage";var Vme=Xe((e,t)=>{const n=Wme(),r=cp();if(!(r!=null&&r.isInvalid))return null;const i=bt("chakra-form__error-icon",e.className);return g.jsx(Ba,{ref:t,"aria-hidden":!0,...e,__css:n.icon,className:i,children:g.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})});Vme.displayName="FormErrorIcon";var Cn=Xe(function(t,n){var r;const i=lu("FormLabel",t),o=pr(t),{className:a,children:s,requiredIndicator:l=g.jsx(xz,{}),optionalIndicator:u=null,...d}=o,h=cp(),m=(r=h==null?void 0:h.getLabelProps(d,n))!=null?r:{ref:n,...d};return g.jsxs(Ne.label,{...m,className:bt("chakra-form__label",o.className),__css:{display:"block",textAlign:"start",...i},children:[s,h!=null&&h.isRequired?l:u]})});Cn.displayName="FormLabel";var xz=Xe(function(t,n){const r=cp(),i=bz();if(!(r!=null&&r.isRequired))return null;const o=bt("chakra-form__required-indicator",t.className);return g.jsx(Ne.span,{...r==null?void 0:r.getRequiredIndicatorProps(t,n),__css:i.requiredIndicator,className:o})});xz.displayName="RequiredIndicator";function b8(e){const{isDisabled:t,isInvalid:n,isReadOnly:r,isRequired:i,...o}=x8(e);return{...o,disabled:t,readOnly:r,required:i,"aria-invalid":Gu(n),"aria-required":Gu(i),"aria-readonly":Gu(r)}}function x8(e){var t,n,r;const i=cp(),{id:o,disabled:a,readOnly:s,required:l,isRequired:u,isInvalid:d,isReadOnly:h,isDisabled:m,onFocus:y,onBlur:b,...w}=e,E=e["aria-describedby"]?[e["aria-describedby"]]:[];return i!=null&&i.hasFeedbackText&&(i!=null&&i.isInvalid)&&E.push(i.feedbackId),i!=null&&i.hasHelpText&&E.push(i.helpTextId),{...w,"aria-describedby":E.join(" ")||void 0,id:o??(i==null?void 0:i.id),isDisabled:(t=a??m)!=null?t:i==null?void 0:i.isDisabled,isReadOnly:(n=s??h)!=null?n:i==null?void 0:i.isReadOnly,isRequired:(r=l??u)!=null?r:i==null?void 0:i.isRequired,isInvalid:d??(i==null?void 0:i.isInvalid),onFocus:ht(i==null?void 0:i.onFocus,y),onBlur:ht(i==null?void 0:i.onBlur,b)}}var Ume={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},YA=!1,d2=null,Qh=!1,X_=!1,Z_=new Set;function S8(e,t){Z_.forEach(n=>n(e,t))}var Gme=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function qme(e){return!(e.metaKey||!Gme&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function XA(e){Qh=!0,qme(e)&&(d2="keyboard",S8("keyboard",e))}function Eg(e){if(d2="pointer",e.type==="mousedown"||e.type==="pointerdown"){Qh=!0;const t=e.composedPath?e.composedPath()[0]:e.target;let n=!1;try{n=t.matches(":focus-visible")}catch{}if(n)return;S8("pointer",e)}}function Kme(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function Yme(e){Kme(e)&&(Qh=!0,d2="virtual")}function Xme(e){e.target===window||e.target===document||(!Qh&&!X_&&(d2="virtual",S8("virtual",e)),Qh=!1,X_=!1)}function Zme(){Qh=!1,X_=!0}function ZA(){return d2!=="pointer"}function Qme(){if(typeof window>"u"||YA)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...n){Qh=!0,e.apply(this,n)},document.addEventListener("keydown",XA,!0),document.addEventListener("keyup",XA,!0),document.addEventListener("click",Yme,!0),window.addEventListener("focus",Xme,!0),window.addEventListener("blur",Zme,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",Eg,!0),document.addEventListener("pointermove",Eg,!0),document.addEventListener("pointerup",Eg,!0)):(document.addEventListener("mousedown",Eg,!0),document.addEventListener("mousemove",Eg,!0),document.addEventListener("mouseup",Eg,!0)),YA=!0}function Sz(e){Qme(),e(ZA());const t=()=>e(ZA());return Z_.add(t),()=>{Z_.delete(t)}}function Jme(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function wz(e={}){const t=x8(e),{isDisabled:n,isReadOnly:r,isRequired:i,isInvalid:o,id:a,onBlur:s,onFocus:l,"aria-describedby":u}=t,{defaultChecked:d,isChecked:h,isFocusable:m,onChange:y,isIndeterminate:b,name:w,value:E,tabIndex:_=void 0,"aria-label":k,"aria-labelledby":P,"aria-invalid":L,...O}=e,D=Jme(O,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),R=ei(y),N=ei(s),W=ei(l),[B,K]=S.useState(!1),[ne,z]=S.useState(!1),[$,U]=S.useState(!1),[X,Q]=S.useState(!1);S.useEffect(()=>Sz(K),[]);const G=S.useRef(null),[Y,ee]=S.useState(!0),[fe,ke]=S.useState(!!d),we=h!==void 0,xe=we?h:fe,Ce=S.useCallback(Fe=>{if(r||n){Fe.preventDefault();return}we||ke(xe?Fe.target.checked:b?!0:Fe.target.checked),R==null||R(Fe)},[r,n,xe,we,b,R]);ql(()=>{G.current&&(G.current.indeterminate=Boolean(b))},[b]),oc(()=>{n&&z(!1)},[n,z]),ql(()=>{const Fe=G.current;Fe!=null&&Fe.form&&(Fe.form.onreset=()=>{ke(!!d)})},[]);const Se=n&&!m,Qe=S.useCallback(Fe=>{Fe.key===" "&&Q(!0)},[Q]),tt=S.useCallback(Fe=>{Fe.key===" "&&Q(!1)},[Q]);ql(()=>{if(!G.current)return;G.current.checked!==xe&&ke(G.current.checked)},[G.current]);const it=S.useCallback((Fe={},at=null)=>{const $t=vt=>{ne&&vt.preventDefault(),Q(!0)};return{...Fe,ref:at,"data-active":Ht(X),"data-hover":Ht($),"data-checked":Ht(xe),"data-focus":Ht(ne),"data-focus-visible":Ht(ne&&B),"data-indeterminate":Ht(b),"data-disabled":Ht(n),"data-invalid":Ht(o),"data-readonly":Ht(r),"aria-hidden":!0,onMouseDown:ht(Fe.onMouseDown,$t),onMouseUp:ht(Fe.onMouseUp,()=>Q(!1)),onMouseEnter:ht(Fe.onMouseEnter,()=>U(!0)),onMouseLeave:ht(Fe.onMouseLeave,()=>U(!1))}},[X,xe,n,ne,B,$,b,o,r]),xt=S.useCallback((Fe={},at=null)=>({...D,...Fe,ref:Dn(at,$t=>{$t&&ee($t.tagName==="LABEL")}),onClick:ht(Fe.onClick,()=>{var $t;Y||(($t=G.current)==null||$t.click(),requestAnimationFrame(()=>{var vt;(vt=G.current)==null||vt.focus()}))}),"data-disabled":Ht(n),"data-checked":Ht(xe),"data-invalid":Ht(o)}),[D,n,xe,o,Y]),Be=S.useCallback((Fe={},at=null)=>({...Fe,ref:Dn(G,at),type:"checkbox",name:w,value:E,id:a,tabIndex:_,onChange:ht(Fe.onChange,Ce),onBlur:ht(Fe.onBlur,N,()=>z(!1)),onFocus:ht(Fe.onFocus,W,()=>z(!0)),onKeyDown:ht(Fe.onKeyDown,Qe),onKeyUp:ht(Fe.onKeyUp,tt),required:i,checked:xe,disabled:Se,readOnly:r,"aria-label":k,"aria-labelledby":P,"aria-invalid":L?Boolean(L):o,"aria-describedby":u,"aria-disabled":n,style:Ume}),[w,E,a,Ce,N,W,Qe,tt,i,xe,Se,r,k,P,L,o,u,n,_]),Le=S.useCallback((Fe={},at=null)=>({...Fe,ref:at,onMouseDown:ht(Fe.onMouseDown,QA),onTouchStart:ht(Fe.onTouchStart,QA),"data-disabled":Ht(n),"data-checked":Ht(xe),"data-invalid":Ht(o)}),[xe,n,o]);return{state:{isInvalid:o,isFocused:ne,isChecked:xe,isActive:X,isHovered:$,isIndeterminate:b,isDisabled:n,isReadOnly:r,isRequired:i},getRootProps:xt,getCheckboxProps:it,getInputProps:Be,getLabelProps:Le,htmlProps:D}}function QA(e){e.preventDefault(),e.stopPropagation()}var e0e={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},t0e={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},n0e=af({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),r0e=af({from:{opacity:0},to:{opacity:1}}),i0e=af({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),Cz=Xe(function(t,n){const r=Dme(),i={...r,...t},o=Zi("Checkbox",i),a=pr(t),{spacing:s="0.5rem",className:l,children:u,iconColor:d,iconSize:h,icon:m=g.jsx($me,{}),isChecked:y,isDisabled:b=r==null?void 0:r.isDisabled,onChange:w,inputProps:E,..._}=a;let k=y;r!=null&&r.value&&a.value&&(k=r.value.includes(a.value));let P=w;r!=null&&r.onChange&&a.value&&(P=kw(r.onChange,w));const{state:L,getInputProps:O,getCheckboxProps:D,getLabelProps:R,getRootProps:N}=wz({..._,isDisabled:b,isChecked:k,onChange:P}),W=S.useMemo(()=>({animation:L.isIndeterminate?`${r0e} 20ms linear, ${i0e} 200ms linear`:`${n0e} 200ms linear`,fontSize:h,color:d,...o.icon}),[d,h,,L.isIndeterminate,o.icon]),B=S.cloneElement(m,{__css:W,isIndeterminate:L.isIndeterminate,isChecked:L.isChecked});return g.jsxs(Ne.label,{__css:{...t0e,...o.container},className:bt("chakra-checkbox",l),...N(),children:[g.jsx("input",{className:"chakra-checkbox__input",...O(E,n)}),g.jsx(Ne.span,{__css:{...e0e,...o.control},className:"chakra-checkbox__control",...D(),children:B}),u&&g.jsx(Ne.span,{className:"chakra-checkbox__label",...R(),__css:{marginStart:s,...o.label},children:u})]})});Cz.displayName="Checkbox";function o0e(e){const t=parseFloat(e);return typeof t!="number"||Number.isNaN(t)?0:t}function w8(e,t){let n=o0e(e);const r=10**(t??10);return n=Math.round(n*r)/r,t?n.toFixed(t):n.toString()}function Q_(e){if(!Number.isFinite(e))return 0;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n+=1;return n}function JA(e,t,n){return(e-t)*100/(n-t)}function a0e(e,t,n){return(n-t)*e+t}function eO(e,t,n){const r=Math.round((e-t)/n)*n+t,i=Q_(n);return w8(r,i)}function tS(e,t,n){return e==null?e:(n{var B;return r==null?"":(B=gC(r,o,n))!=null?B:""}),m=typeof i<"u",y=m?i:d,b=_z(hd(y),o),w=n??b,E=S.useCallback(B=>{B!==y&&(m||h(B.toString()),u==null||u(B.toString(),hd(B)))},[u,m,y]),_=S.useCallback(B=>{let K=B;return l&&(K=tS(K,a,s)),w8(K,w)},[w,l,s,a]),k=S.useCallback((B=o)=>{let K;y===""?K=hd(B):K=hd(y)+B,K=_(K),E(K)},[_,o,E,y]),P=S.useCallback((B=o)=>{let K;y===""?K=hd(-B):K=hd(y)-B,K=_(K),E(K)},[_,o,E,y]),L=S.useCallback(()=>{var B;let K;r==null?K="":K=(B=gC(r,o,n))!=null?B:a,E(K)},[r,n,o,E,a]),O=S.useCallback(B=>{var K;const ne=(K=gC(B,o,w))!=null?K:a;E(ne)},[w,o,E,a]),D=hd(y);return{isOutOfRange:D>s||D{const o=typeof e=="function"?e():e??document;if(!(!n||!o))return o.addEventListener(t,i,r),()=>{o.removeEventListener(t,i,r)}},[t,e,r,i,n]),()=>{const o=typeof e=="function"?e():e??document;o==null||o.removeEventListener(t,i,r)}}function l0e(e){return"current"in e}var kz=()=>typeof window<"u";function u0e(){var e;const t=navigator.userAgentData;return(e=t==null?void 0:t.platform)!=null?e:navigator.platform}var c0e=e=>kz()&&e.test(navigator.vendor),d0e=e=>kz()&&e.test(u0e()),f0e=()=>d0e(/mac|iphone|ipad|ipod/i),h0e=()=>f0e()&&c0e(/apple/i);function p0e(e){const{ref:t,elements:n,enabled:r}=e,i=()=>{var o,a;return(a=(o=t.current)==null?void 0:o.ownerDocument)!=null?a:document};Fh(i,"pointerdown",o=>{if(!h0e()||!r)return;const a=o.target,l=(n??[t]).some(u=>{const d=l0e(u)?u.current:u;return(d==null?void 0:d.contains(a))||d===a});i().activeElement!==a&&l&&(o.preventDefault(),a.focus())})}function C8(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var Rn={},g0e={get exports(){return Rn},set exports(e){Rn=e}},m0e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",v0e=m0e,y0e=v0e;function Ez(){}function Pz(){}Pz.resetWarningCache=Ez;var b0e=function(){function e(r,i,o,a,s,l){if(l!==y0e){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Pz,resetWarningCache:Ez};return n.PropTypes=n,n};g0e.exports=b0e();var J_="data-focus-lock",Tz="data-focus-lock-disabled",x0e="data-no-focus-lock",S0e="data-autofocus-inside",w0e="data-no-autofocus";function C0e(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function _0e(e,t){var n=S.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var i=n.value;i!==r&&(n.value=r,n.callback(r,i))}}}})[0];return n.callback=t,n.facade}function Mz(e,t){return _0e(t||null,function(n){return e.forEach(function(r){return C0e(r,n)})})}var mC={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"};function Lz(e){return e}function Az(e,t){t===void 0&&(t=Lz);var n=[],r=!1,i={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(o){var a=t(o,r);return n.push(a),function(){n=n.filter(function(s){return s!==a})}},assignSyncMedium:function(o){for(r=!0;n.length;){var a=n;n=[],a.forEach(o)}n={push:function(s){return o(s)},filter:function(){return n}}},assignMedium:function(o){r=!0;var a=[];if(n.length){var s=n;n=[],s.forEach(o),a=n}var l=function(){var d=a;a=[],d.forEach(o)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(d){a.push(d),u()},filter:function(d){return a=a.filter(d),n}}}};return i}function _8(e,t){return t===void 0&&(t=Lz),Az(e,t)}function Oz(e){e===void 0&&(e={});var t=Az(null);return t.options=Bl({async:!0,ssr:!1},e),t}var Iz=function(e){var t=e.sideCar,n=sz(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return S.createElement(r,Bl({},n))};Iz.isSideCarExport=!0;function k0e(e,t){return e.useMedium(t),Iz}var Rz=_8({},function(e){var t=e.target,n=e.currentTarget;return{target:t,currentTarget:n}}),Dz=_8(),E0e=_8(),P0e=Oz({async:!0}),T0e=[],k8=S.forwardRef(function(t,n){var r,i=S.useState(),o=i[0],a=i[1],s=S.useRef(),l=S.useRef(!1),u=S.useRef(null),d=t.children,h=t.disabled,m=t.noFocusGuards,y=t.persistentFocus,b=t.crossFrame,w=t.autoFocus;t.allowTextSelection;var E=t.group,_=t.className,k=t.whiteList,P=t.hasPositiveIndices,L=t.shards,O=L===void 0?T0e:L,D=t.as,R=D===void 0?"div":D,N=t.lockProps,W=N===void 0?{}:N,B=t.sideCar,K=t.returnFocus,ne=t.focusOptions,z=t.onActivation,$=t.onDeactivation,U=S.useState({}),X=U[0],Q=S.useCallback(function(){u.current=u.current||document&&document.activeElement,s.current&&z&&z(s.current),l.current=!0},[z]),G=S.useCallback(function(){l.current=!1,$&&$(s.current)},[$]);S.useEffect(function(){h||(u.current=null)},[]);var Y=S.useCallback(function(Qe){var tt=u.current;if(tt&&tt.focus){var it=typeof K=="function"?K(tt):K;if(it){var xt=typeof it=="object"?it:void 0;u.current=null,Qe?Promise.resolve().then(function(){return tt.focus(xt)}):tt.focus(xt)}}},[K]),ee=S.useCallback(function(Qe){l.current&&Rz.useMedium(Qe)},[]),fe=Dz.useMedium,ke=S.useCallback(function(Qe){s.current!==Qe&&(s.current=Qe,a(Qe))},[]),we=mn((r={},r[Tz]=h&&"disabled",r[J_]=E,r),W),xe=m!==!0,Ce=xe&&m!=="tail",Se=Mz([n,ke]);return S.createElement(S.Fragment,null,xe&&[S.createElement("div",{key:"guard-first","data-focus-guard":!0,tabIndex:h?-1:0,style:mC}),P?S.createElement("div",{key:"guard-nearest","data-focus-guard":!0,tabIndex:h?-1:1,style:mC}):null],!h&&S.createElement(B,{id:X,sideCar:P0e,observed:o,disabled:h,persistentFocus:y,crossFrame:b,autoFocus:w,whiteList:k,shards:O,onActivation:Q,onDeactivation:G,returnFocus:Y,focusOptions:ne}),S.createElement(R,mn({ref:Se},we,{className:_,onBlur:fe,onFocus:ee}),d),Ce&&S.createElement("div",{"data-focus-guard":!0,tabIndex:h?-1:0,style:mC}))});k8.propTypes={};k8.defaultProps={children:void 0,disabled:!1,returnFocus:!1,focusOptions:void 0,noFocusGuards:!1,autoFocus:!0,persistentFocus:!1,crossFrame:!0,hasPositiveIndices:void 0,allowTextSelection:void 0,group:void 0,className:void 0,whiteList:void 0,shards:void 0,as:"div",lockProps:{},onActivation:void 0,onDeactivation:void 0};const jz=k8;function c3(e,t){return c3=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},c3(e,t)}function E8(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c3(e,t)}function Zs(e){return Zs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zs(e)}function M0e(e,t){if(Zs(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(Zs(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nz(e){var t=M0e(e,"string");return Zs(t)==="symbol"?t:String(t)}function gs(e,t,n){return t=Nz(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L0e(e,t){function n(r){return r.displayName||r.name||"Component"}return function(i){var o=[],a;function s(){a=e(o.map(function(u){return u.props})),t(a)}var l=function(u){E8(d,u);function d(){return u.apply(this,arguments)||this}d.peek=function(){return a};var h=d.prototype;return h.componentDidMount=function(){o.push(this),s()},h.componentDidUpdate=function(){s()},h.componentWillUnmount=function(){var y=o.indexOf(this);o.splice(y,1),s()},h.render=function(){return Ke.createElement(i,this.props)},d}(S.PureComponent);return gs(l,"displayName","SideEffect("+n(i)+")"),l}}var cu=function(e){for(var t=Array(e.length),n=0;n=0}).sort($0e)},F0e=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],T8=F0e.join(","),B0e="".concat(T8,", [data-focus-guard]"),qz=function(e,t){return cu((e.shadowRoot||e).children).reduce(function(n,r){return n.concat(r.matches(t?B0e:T8)?[r]:[],qz(r))},[])},z0e=function(e,t){var n;return e instanceof HTMLIFrameElement&&(!((n=e.contentDocument)===null||n===void 0)&&n.body)?Bw([e.contentDocument.body],t):[e]},Bw=function(e,t){return e.reduce(function(n,r){var i,o=qz(r,t),a=(i=[]).concat.apply(i,o.map(function(s){return z0e(s,t)}));return n.concat(a,r.parentNode?cu(r.parentNode.querySelectorAll(T8)).filter(function(s){return s===r}):[])},[])},H0e=function(e){var t=e.querySelectorAll("[".concat(S0e,"]"));return cu(t).map(function(n){return Bw([n])}).reduce(function(n,r){return n.concat(r)},[])},M8=function(e,t){return cu(e).filter(function(n){return zz(t,n)}).filter(function(n){return D0e(n)})},tO=function(e,t){return t===void 0&&(t=new Map),cu(e).filter(function(n){return Hz(t,n)})},ek=function(e,t,n){return Gz(M8(Bw(e,n),t),!0,n)},nO=function(e,t){return Gz(M8(Bw(e),t),!1)},W0e=function(e,t){return M8(H0e(e),t)},Lm=function(e,t){return e.shadowRoot?Lm(e.shadowRoot,t):Object.getPrototypeOf(e).contains!==void 0&&Object.getPrototypeOf(e).contains.call(e,t)?!0:cu(e.children).some(function(n){var r;if(n instanceof HTMLIFrameElement){var i=(r=n.contentDocument)===null||r===void 0?void 0:r.body;return i?Lm(i,t):!1}return Lm(n,t)})},V0e=function(e){for(var t=new Set,n=e.length,r=0;r0&&t.add(i),(o&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(r)}return e.filter(function(a,s){return!t.has(s)})},Kz=function(e){return e.parentNode?Kz(e.parentNode):e},L8=function(e){var t=d3(e);return t.filter(Boolean).reduce(function(n,r){var i=r.getAttribute(J_);return n.push.apply(n,i?V0e(cu(Kz(r).querySelectorAll("[".concat(J_,'="').concat(i,'"]:not([').concat(Tz,'="disabled"])')))):[r]),n},[])},U0e=function(e){try{return e()}catch{return}},Oy=function(e){if(e===void 0&&(e=document),!(!e||!e.activeElement)){var t=e.activeElement;return t.shadowRoot?Oy(t.shadowRoot):t instanceof HTMLIFrameElement&&U0e(function(){return t.contentWindow.document})?Oy(t.contentWindow.document):t}},G0e=function(e,t){return e===t},q0e=function(e,t){return Boolean(cu(e.querySelectorAll("iframe")).some(function(n){return G0e(n,t)}))},Yz=function(e,t){return t===void 0&&(t=Oy($z(e).ownerDocument)),!t||t.dataset&&t.dataset.focusGuard?!1:L8(e).some(function(n){return Lm(n,t)||q0e(n,t)})},K0e=function(e){e===void 0&&(e=document);var t=Oy(e);return t?cu(e.querySelectorAll("[".concat(x0e,"]"))).some(function(n){return Lm(n,t)}):!1},Y0e=function(e,t){return t.filter(Uz).filter(function(n){return n.name===e.name}).filter(function(n){return n.checked})[0]||e},A8=function(e,t){return Uz(e)&&e.name?Y0e(e,t):e},X0e=function(e){var t=new Set;return e.forEach(function(n){return t.add(A8(n,e))}),e.filter(function(n){return t.has(n)})},rO=function(e){return e[0]&&e.length>1?A8(e[0],e):e[0]},iO=function(e,t){return e.length>1?e.indexOf(A8(e[t],e)):t},Xz="NEW_FOCUS",Z0e=function(e,t,n,r){var i=e.length,o=e[0],a=e[i-1],s=P8(n);if(!(n&&e.indexOf(n)>=0)){var l=n!==void 0?t.indexOf(n):-1,u=r?t.indexOf(r):l,d=r?e.indexOf(r):-1,h=l-u,m=t.indexOf(o),y=t.indexOf(a),b=X0e(t),w=n!==void 0?b.indexOf(n):-1,E=w-(r?b.indexOf(r):l),_=iO(e,0),k=iO(e,i-1);if(l===-1||d===-1)return Xz;if(!h&&d>=0)return d;if(l<=m&&s&&Math.abs(h)>1)return k;if(l>=y&&s&&Math.abs(h)>1)return _;if(h&&Math.abs(E)>1)return d;if(l<=m)return k;if(l>y)return _;if(h)return Math.abs(h)>1?d:(i+d+h)%i}},Q0e=function(e){return function(t){var n,r=(n=Wz(t))===null||n===void 0?void 0:n.autofocus;return t.autofocus||r!==void 0&&r!=="false"||e.indexOf(t)>=0}},J0e=function(e,t,n){var r=e.map(function(o){var a=o.node;return a}),i=tO(r.filter(Q0e(n)));return i&&i.length?rO(i):rO(tO(t))},tk=function(e,t){return t===void 0&&(t=[]),t.push(e),e.parentNode&&tk(e.parentNode.host||e.parentNode,t),t},vC=function(e,t){for(var n=tk(e),r=tk(t),i=0;i=0)return o}return!1},Zz=function(e,t,n){var r=d3(e),i=d3(t),o=r[0],a=!1;return i.filter(Boolean).forEach(function(s){a=vC(a||s,s)||a,n.filter(Boolean).forEach(function(l){var u=vC(o,l);u&&(!a||Lm(u,a)?a=u:a=vC(u,a))})}),a},eve=function(e,t){return e.reduce(function(n,r){return n.concat(W0e(r,t))},[])},tve=function(e,t){var n=new Map;return t.forEach(function(r){return n.set(r.node,r)}),e.map(function(r){return n.get(r)}).filter(N0e)},nve=function(e,t){var n=Oy(d3(e).length>0?document:$z(e).ownerDocument),r=L8(e).filter(f3),i=Zz(n||e,e,r),o=new Map,a=nO(r,o),s=ek(r,o).filter(function(y){var b=y.node;return f3(b)});if(!(!s[0]&&(s=a,!s[0]))){var l=nO([i],o).map(function(y){var b=y.node;return b}),u=tve(l,s),d=u.map(function(y){var b=y.node;return b}),h=Z0e(d,l,n,t);if(h===Xz){var m=J0e(a,d,eve(r,o));if(m)return{node:m};console.warn("focus-lock: cannot find any node to move focus into");return}return h===void 0?h:u[h]}},rve=function(e){var t=L8(e).filter(f3),n=Zz(e,e,t),r=new Map,i=ek([n],r,!0),o=ek(t,r).filter(function(a){var s=a.node;return f3(s)}).map(function(a){var s=a.node;return s});return i.map(function(a){var s=a.node,l=a.index;return{node:s,index:l,lockItem:o.indexOf(s)>=0,guard:P8(s)}})},ive=function(e,t){"focus"in e&&e.focus(t),"contentWindow"in e&&e.contentWindow&&e.contentWindow.focus()},yC=0,bC=!1,Qz=function(e,t,n){n===void 0&&(n={});var r=nve(e,t);if(!bC&&r){if(yC>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),bC=!0,setTimeout(function(){bC=!1},1);return}yC++,ive(r.node,n.focusOptions),yC--}};function Jz(e){var t=window,n=t.setImmediate;typeof n<"u"?n(e):setTimeout(e,1)}var ove=function(){return document&&document.activeElement===document.body},ave=function(){return ove()||K0e()},Am=null,fm=null,Om=null,Iy=!1,sve=function(){return!0},lve=function(t){return(Am.whiteList||sve)(t)},uve=function(t,n){Om={observerNode:t,portaledElement:n}},cve=function(t){return Om&&Om.portaledElement===t};function oO(e,t,n,r){var i=null,o=e;do{var a=r[o];if(a.guard)a.node.dataset.focusAutoGuard&&(i=a);else if(a.lockItem){if(o!==e)return;i=null}else break}while((o+=n)!==t);i&&(i.node.tabIndex=0)}var dve=function(t){return t&&"current"in t?t.current:t},fve=function(t){return t?Boolean(Iy):Iy==="meanwhile"},hve=function e(t,n,r){return n&&(n.host===t&&(!n.activeElement||r.contains(n.activeElement))||n.parentNode&&e(t,n.parentNode,r))},pve=function(t,n){return n.some(function(r){return hve(t,r,r)})},h3=function(){var t=!1;if(Am){var n=Am,r=n.observed,i=n.persistentFocus,o=n.autoFocus,a=n.shards,s=n.crossFrame,l=n.focusOptions,u=r||Om&&Om.portaledElement,d=document&&document.activeElement;if(u){var h=[u].concat(a.map(dve).filter(Boolean));if((!d||lve(d))&&(i||fve(s)||!ave()||!fm&&o)&&(u&&!(Yz(h)||d&&pve(d,h)||cve(d))&&(document&&!fm&&d&&!o?(d.blur&&d.blur(),document.body.focus()):(t=Qz(h,fm,{focusOptions:l}),Om={})),Iy=!1,fm=document&&document.activeElement),document){var m=document&&document.activeElement,y=rve(h),b=y.map(function(w){var E=w.node;return E}).indexOf(m);b>-1&&(y.filter(function(w){var E=w.guard,_=w.node;return E&&_.dataset.focusAutoGuard}).forEach(function(w){var E=w.node;return E.removeAttribute("tabIndex")}),oO(b,y.length,1,y),oO(b,-1,-1,y))}}}return t},eH=function(t){h3()&&t&&(t.stopPropagation(),t.preventDefault())},O8=function(){return Jz(h3)},gve=function(t){var n=t.target,r=t.currentTarget;r.contains(n)||uve(r,n)},mve=function(){return null},tH=function(){Iy="just",setTimeout(function(){Iy="meanwhile"},0)},vve=function(){document.addEventListener("focusin",eH),document.addEventListener("focusout",O8),window.addEventListener("blur",tH)},yve=function(){document.removeEventListener("focusin",eH),document.removeEventListener("focusout",O8),window.removeEventListener("blur",tH)};function bve(e){return e.filter(function(t){var n=t.disabled;return!n})}function xve(e){var t=e.slice(-1)[0];t&&!Am&&vve();var n=Am,r=n&&t&&t.id===n.id;Am=t,n&&!r&&(n.onDeactivation(),e.filter(function(i){var o=i.id;return o===n.id}).length||n.returnFocus(!t)),t?(fm=null,(!r||n.observed!==t.observed)&&t.onActivation(),h3(),Jz(h3)):(yve(),fm=null)}Rz.assignSyncMedium(gve);Dz.assignMedium(O8);E0e.assignMedium(function(e){return e({moveFocusInside:Qz,focusInside:Yz})});const Sve=L0e(bve,xve)(mve);var nH=S.forwardRef(function(t,n){return S.createElement(jz,mn({sideCar:Sve,ref:n},t))}),rH=jz.propTypes||{};rH.sideCar;C8(rH,["sideCar"]);nH.propTypes={};const aO=nH;function iH(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function oH(e){var t;if(!iH(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function wve(e){var t,n;return(n=(t=aH(e))==null?void 0:t.defaultView)!=null?n:window}function aH(e){return iH(e)?e.ownerDocument:document}function Cve(e){return aH(e).activeElement}var sH=e=>e.hasAttribute("tabindex"),_ve=e=>sH(e)&&e.tabIndex===-1;function kve(e){return Boolean(e.getAttribute("disabled"))===!0||Boolean(e.getAttribute("aria-disabled"))===!0}function lH(e){return e.parentElement&&lH(e.parentElement)?!0:e.hidden}function Eve(e){const t=e.getAttribute("contenteditable");return t!=="false"&&t!=null}function uH(e){if(!oH(e)||lH(e)||kve(e))return!1;const{localName:t}=e;if(["input","select","textarea","button"].indexOf(t)>=0)return!0;const r={a:()=>e.hasAttribute("href"),audio:()=>e.hasAttribute("controls"),video:()=>e.hasAttribute("controls")};return t in r?r[t]():Eve(e)?!0:sH(e)}function Pve(e){return e?oH(e)&&uH(e)&&!_ve(e):!1}var Tve=["input:not(:disabled):not([disabled])","select:not(:disabled):not([disabled])","textarea:not(:disabled):not([disabled])","embed","iframe","object","a[href]","area[href]","button:not(:disabled):not([disabled])","[tabindex]","audio[controls]","video[controls]","*[tabindex]:not([aria-disabled])","*[contenteditable]"],Mve=Tve.join(),Lve=e=>e.offsetWidth>0&&e.offsetHeight>0;function cH(e){const t=Array.from(e.querySelectorAll(Mve));return t.unshift(e),t.filter(n=>uH(n)&&Lve(n))}var sO,Ave=(sO=aO.default)!=null?sO:aO,dH=e=>{const{initialFocusRef:t,finalFocusRef:n,contentRef:r,restoreFocus:i,children:o,isDisabled:a,autoFocus:s,persistentFocus:l,lockFocusAcrossFrames:u}=e,d=S.useCallback(()=>{t!=null&&t.current?t.current.focus():r!=null&&r.current&&cH(r.current).length===0&&requestAnimationFrame(()=>{var b;(b=r.current)==null||b.focus()})},[t,r]),h=S.useCallback(()=>{var y;(y=n==null?void 0:n.current)==null||y.focus()},[n]),m=i&&!n;return g.jsx(Ave,{crossFrame:u,persistentFocus:l,autoFocus:s,disabled:a,onActivation:d,onDeactivation:h,returnFocus:m,children:o})};dH.displayName="FocusLock";var Ove=Lce?S.useLayoutEffect:S.useEffect;function lO(e,t=[]){const n=S.useRef(e);return Ove(()=>{n.current=e}),S.useCallback((...r)=>{var i;return(i=n.current)==null?void 0:i.call(n,...r)},t)}function Ive(e,t){const n=S.useId();return S.useMemo(()=>e||[t,n].filter(Boolean).join("-"),[e,t,n])}function Rve(e,t){const n=e!==void 0;return[n,n&&typeof e<"u"?e:t]}function Xd(e={}){const{onClose:t,onOpen:n,isOpen:r,id:i}=e,o=lO(n),a=lO(t),[s,l]=S.useState(e.defaultIsOpen||!1),[u,d]=Rve(r,s),h=Ive(i,"disclosure"),m=S.useCallback(()=>{u||l(!1),a==null||a()},[u,a]),y=S.useCallback(()=>{u||l(!0),o==null||o()},[u,o]),b=S.useCallback(()=>{(d?m:y)()},[d,y,m]);return{isOpen:!!d,onOpen:y,onClose:m,onToggle:b,isControlled:u,getButtonProps:(w={})=>({...w,"aria-expanded":d,"aria-controls":h,onClick:Dce(w.onClick,b)}),getDisclosureProps:(w={})=>({...w,hidden:!d,id:h})}}var I8=Xe(function(t,n){const{htmlSize:r,...i}=t,o=Zi("Input",i),a=pr(i),s=b8(a),l=bt("chakra-input",t.className);return g.jsx(Ne.input,{size:r,...s,__css:o.field,ref:n,className:l})});I8.displayName="Input";I8.id="Input";var[Dve,fH]=Ln({name:"ListStylesContext",errorMessage:`useListStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),R8=Xe(function(t,n){const r=Zi("List",t),{children:i,styleType:o="none",stylePosition:a,spacing:s,...l}=pr(t),u=y8(i),h=s?{["& > *:not(style) ~ *:not(style)"]:{mt:s}}:{};return g.jsx(Dve,{value:r,children:g.jsx(Ne.ul,{ref:n,listStyleType:o,listStylePosition:a,role:"list",__css:{...r.container,...h},...l,children:u})})});R8.displayName="List";var jve=Xe((e,t)=>{const{as:n,...r}=e;return g.jsx(R8,{ref:t,as:"ol",styleType:"decimal",marginStart:"1em",...r})});jve.displayName="OrderedList";var hH=Xe(function(t,n){const{as:r,...i}=t;return g.jsx(R8,{ref:n,as:"ul",styleType:"initial",marginStart:"1em",...i})});hH.displayName="UnorderedList";var m1=Xe(function(t,n){const r=fH();return g.jsx(Ne.li,{ref:n,...t,__css:r.item})});m1.displayName="ListItem";var Nve=Xe(function(t,n){const r=fH();return g.jsx(Ba,{ref:n,role:"presentation",...t,__css:r.icon})});Nve.displayName="ListIcon";var p3=Xe(function(t,n){const{templateAreas:r,gap:i,rowGap:o,columnGap:a,column:s,row:l,autoFlow:u,autoRows:d,templateRows:h,autoColumns:m,templateColumns:y,...b}=t,w={display:"grid",gridTemplateAreas:r,gridGap:i,gridRowGap:o,gridColumnGap:a,gridAutoColumns:m,gridColumn:s,gridRow:l,gridAutoFlow:u,gridAutoRows:d,gridTemplateRows:h,gridTemplateColumns:y};return g.jsx(Ne.div,{ref:n,__css:w,...b})});p3.displayName="Grid";function pH(e,t){return Array.isArray(e)?e.map(n=>n===null?null:t(n)):lo(e)?Object.keys(e).reduce((n,r)=>(n[r]=t(e[r]),n),{}):e!=null?t(e):null}var gH=Ne("div",{baseStyle:{flex:1,justifySelf:"stretch",alignSelf:"stretch"}});gH.displayName="Spacer";var Nt=Xe(function(t,n){const r=lu("Text",t),{className:i,align:o,decoration:a,casing:s,...l}=pr(t),u=Zce({textAlign:t.align,textDecoration:t.decoration,textTransform:t.casing});return g.jsx(Ne.p,{ref:n,className:bt("chakra-text",t.className),...u,...l,__css:r})});Nt.displayName="Text";var mH=e=>g.jsx(Ne.div,{className:"chakra-stack__item",...e,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...e.__css}});mH.displayName="StackItem";var nk="& > *:not(style) ~ *:not(style)";function $ve(e){const{spacing:t,direction:n}=e,r={column:{marginTop:t,marginEnd:0,marginBottom:0,marginStart:0},row:{marginTop:0,marginEnd:0,marginBottom:0,marginStart:t},"column-reverse":{marginTop:0,marginEnd:0,marginBottom:t,marginStart:0},"row-reverse":{marginTop:0,marginEnd:t,marginBottom:0,marginStart:0}};return{flexDirection:n,[nk]:pH(n,i=>r[i])}}function Fve(e){const{spacing:t,direction:n}=e,r={column:{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":pH(n,i=>r[i])}}var D8=Xe((e,t)=>{const{isInline:n,direction:r,align:i,justify:o,spacing:a="0.5rem",wrap:s,children:l,divider:u,className:d,shouldWrapChildren:h,...m}=e,y=n?"row":r??"column",b=S.useMemo(()=>$ve({direction:y,spacing:a}),[y,a]),w=S.useMemo(()=>Fve({spacing:a,direction:y}),[a,y]),E=!!u,_=!h&&!E,k=S.useMemo(()=>{const L=y8(l);return _?L:L.map((O,D)=>{const R=typeof O.key<"u"?O.key:D,N=D+1===L.length,B=h?g.jsx(mH,{children:O},R):O;if(!E)return B;const K=S.cloneElement(u,{__css:w}),ne=N?null:K;return g.jsxs(S.Fragment,{children:[B,ne]},R)})},[u,w,E,_,h,l]),P=bt("chakra-stack",d);return g.jsx(Ne.div,{ref:t,display:"flex",alignItems:i,justifyContent:o,flexDirection:b.flexDirection,flexWrap:s,className:P,__css:E?{}:{[nk]:b[nk]},...m,children:k})});D8.displayName="Stack";var jt=Xe((e,t)=>g.jsx(D8,{align:"center",...e,direction:"column",ref:t}));jt.displayName="VStack";var Zd=Xe((e,t)=>g.jsx(D8,{align:"center",...e,direction:"row",ref:t}));Zd.displayName="HStack";var Bh=Xe(function(t,n){const r=lu("Heading",t),{className:i,...o}=pr(t);return g.jsx(Ne.h2,{ref:n,className:bt("chakra-heading",t.className),...o,__css:r})});Bh.displayName="Heading";var ko=Ne("div");ko.displayName="Box";var vH=Xe(function(t,n){const{size:r,centerContent:i=!0,...o}=t,a=i?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return g.jsx(ko,{ref:n,boxSize:r,__css:{...a,flexShrink:0,flexGrow:0},...o})});vH.displayName="Square";var Bve=Xe(function(t,n){const{size:r,...i}=t;return g.jsx(vH,{size:r,ref:n,borderRadius:"9999px",...i})});Bve.displayName="Circle";var zh=Xe(function(t,n){const r=lu("Link",t),{className:i,isExternal:o,...a}=pr(t);return g.jsx(Ne.a,{target:o?"_blank":void 0,rel:o?"noopener":void 0,ref:n,className:bt("chakra-link",i),...a,__css:r})});zh.displayName="Link";var yH=Ne("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center"}});yH.displayName="Center";var zve={horizontal:{insetStart:"50%",transform:"translateX(-50%)"},vertical:{top:"50%",transform:"translateY(-50%)"},both:{insetStart:"50%",top:"50%",transform:"translate(-50%, -50%)"}};Xe(function(t,n){const{axis:r="both",...i}=t;return g.jsx(Ne.div,{ref:n,__css:zve[r],...i,position:"absolute"})});var Re=Xe(function(t,n){const{direction:r,align:i,justify:o,wrap:a,basis:s,grow:l,shrink:u,...d}=t,h={display:"flex",flexDirection:r,alignItems:i,justifyContent:o,flexWrap:a,flexBasis:s,flexGrow:l,flexShrink:u};return g.jsx(Ne.div,{ref:n,__css:h,...d})});Re.displayName="Flex";function Hve(e){const{key:t}=e;return t.length===1||t.length>1&&/[^a-zA-Z0-9]/.test(t)}function Wve(e={}){const{timeout:t=300,preventDefault:n=()=>!0}=e,[r,i]=S.useState([]),o=S.useRef(),a=()=>{o.current&&(clearTimeout(o.current),o.current=null)},s=()=>{a(),o.current=setTimeout(()=>{i([]),o.current=null},t)};S.useEffect(()=>a,[]);function l(u){return d=>{if(d.key==="Backspace"){const h=[...r];h.pop(),i(h);return}if(Hve(d)){const h=r.concat(d.key);n(d)&&(d.preventDefault(),d.stopPropagation()),i(h),u(h.join("")),s()}}}return l}function Vve(e,t,n,r){if(t==null)return r;if(!r)return e.find(a=>n(a).toLowerCase().startsWith(t.toLowerCase()));const i=e.filter(o=>n(o).toLowerCase().startsWith(t.toLowerCase()));if(i.length>0){let o;return i.includes(r)?(o=i.indexOf(r)+1,o===i.length&&(o=0),i[o]):(o=e.indexOf(i[0]),e[o])}return r}function Uve(){const e=S.useRef(new Map),t=e.current,n=S.useCallback((i,o,a,s)=>{e.current.set(a,{type:o,el:i,options:s}),i.addEventListener(o,a,s)},[]),r=S.useCallback((i,o,a,s)=>{i.removeEventListener(o,a,s),e.current.delete(a)},[]);return S.useEffect(()=>()=>{t.forEach((i,o)=>{r(i.el,i.type,o,i.options)})},[r,t]),{add:n,remove:r}}function xC(e){const t=e.target,{tagName:n,isContentEditable:r}=t;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function bH(e={}){const{ref:t,isDisabled:n,isFocusable:r,clickOnEnter:i=!0,clickOnSpace:o=!0,onMouseDown:a,onMouseUp:s,onClick:l,onKeyDown:u,onKeyUp:d,tabIndex:h,onMouseOver:m,onMouseLeave:y,...b}=e,[w,E]=S.useState(!0),[_,k]=S.useState(!1),P=Uve(),L=Q=>{Q&&Q.tagName!=="BUTTON"&&E(!1)},O=w?h:h||0,D=n&&!r,R=S.useCallback(Q=>{if(n){Q.stopPropagation(),Q.preventDefault();return}Q.currentTarget.focus(),l==null||l(Q)},[n,l]),N=S.useCallback(Q=>{_&&xC(Q)&&(Q.preventDefault(),Q.stopPropagation(),k(!1),P.remove(document,"keyup",N,!1))},[_,P]),W=S.useCallback(Q=>{if(u==null||u(Q),n||Q.defaultPrevented||Q.metaKey||!xC(Q.nativeEvent)||w)return;const G=i&&Q.key==="Enter";o&&Q.key===" "&&(Q.preventDefault(),k(!0)),G&&(Q.preventDefault(),Q.currentTarget.click()),P.add(document,"keyup",N,!1)},[n,w,u,i,o,P,N]),B=S.useCallback(Q=>{if(d==null||d(Q),n||Q.defaultPrevented||Q.metaKey||!xC(Q.nativeEvent)||w)return;o&&Q.key===" "&&(Q.preventDefault(),k(!1),Q.currentTarget.click())},[o,w,n,d]),K=S.useCallback(Q=>{Q.button===0&&(k(!1),P.remove(document,"mouseup",K,!1))},[P]),ne=S.useCallback(Q=>{if(Q.button!==0)return;if(n){Q.stopPropagation(),Q.preventDefault();return}w||k(!0),Q.currentTarget.focus({preventScroll:!0}),P.add(document,"mouseup",K,!1),a==null||a(Q)},[n,w,a,P,K]),z=S.useCallback(Q=>{Q.button===0&&(w||k(!1),s==null||s(Q))},[s,w]),$=S.useCallback(Q=>{if(n){Q.preventDefault();return}m==null||m(Q)},[n,m]),U=S.useCallback(Q=>{_&&(Q.preventDefault(),k(!1)),y==null||y(Q)},[_,y]),X=Dn(t,L);return w?{...b,ref:X,type:"button","aria-disabled":D?void 0:n,disabled:D,onClick:R,onMouseDown:a,onMouseUp:s,onKeyUp:d,onKeyDown:u,onMouseOver:m,onMouseLeave:y}:{...b,ref:X,role:"button","data-active":Ht(_),"aria-disabled":n?"true":void 0,tabIndex:D?void 0:O,onClick:R,onMouseDown:ne,onMouseUp:z,onKeyUp:B,onKeyDown:W,onMouseOver:$,onMouseLeave:U}}function Gve(e){const t=e.current;if(!t)return!1;const n=Cve(t);return!n||t.contains(n)?!1:!!Pve(n)}function xH(e,t){const{shouldFocus:n,visible:r,focusRef:i}=t,o=n&&!r;oc(()=>{if(!o||Gve(e))return;const a=(i==null?void 0:i.current)||e.current;a&&requestAnimationFrame(()=>{a.focus()})},[o,e,i])}var qve={preventScroll:!0,shouldFocus:!1};function Kve(e,t=qve){const{focusRef:n,preventScroll:r,shouldFocus:i,visible:o}=t,a=Yve(e)?e.current:e,s=i&&o,l=S.useRef(s),u=S.useRef(o);ql(()=>{!u.current&&o&&(l.current=s),u.current=o},[o,s]);const d=S.useCallback(()=>{if(!(!o||!a||!l.current)&&(l.current=!1,!a.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var h;(h=n.current)==null||h.focus({preventScroll:r})});else{const h=cH(a);h.length>0&&requestAnimationFrame(()=>{h[0].focus({preventScroll:r})})}},[o,r,a,n]);oc(()=>{d()},[d]),Fh(a,"transitionend",d)}function Yve(e){return"current"in e}var Pg=(e,t)=>({var:e,varRef:t?`var(${e}, ${t})`:`var(${e})`}),ai={arrowShadowColor:Pg("--popper-arrow-shadow-color"),arrowSize:Pg("--popper-arrow-size","8px"),arrowSizeHalf:Pg("--popper-arrow-size-half"),arrowBg:Pg("--popper-arrow-bg"),transformOrigin:Pg("--popper-transform-origin"),arrowOffset:Pg("--popper-arrow-offset")};function Xve(e){if(e.includes("top"))return"1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("bottom"))return"-1px -1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("right"))return"-1px 1px 1px 0 var(--popper-arrow-shadow-color)";if(e.includes("left"))return"1px -1px 1px 0 var(--popper-arrow-shadow-color)"}var Zve={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},Qve=e=>Zve[e],uO={scroll:!0,resize:!0};function Jve(e){let t;return typeof e=="object"?t={enabled:!0,options:{...uO,...e}}:t={enabled:e,options:uO},t}var e1e={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},effect:({state:e})=>()=>{const t=e.elements.reference;e.elements.popper.style.width=`${t.offsetWidth}px`}},t1e={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:e})=>{cO(e)},effect:({state:e})=>()=>{cO(e)}},cO=e=>{e.elements.popper.style.setProperty(ai.transformOrigin.var,Qve(e.placement))},n1e={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:e})=>{r1e(e)}},r1e=e=>{var t;if(!e.placement)return;const n=i1e(e.placement);if((t=e.elements)!=null&&t.arrow&&n){Object.assign(e.elements.arrow.style,{[n.property]:n.value,width:ai.arrowSize.varRef,height:ai.arrowSize.varRef,zIndex:-1});const r={[ai.arrowSizeHalf.var]:`calc(${ai.arrowSize.varRef} / 2)`,[ai.arrowOffset.var]:`calc(${ai.arrowSizeHalf.varRef} * -1)`};for(const i in r)e.elements.arrow.style.setProperty(i,r[i])}},i1e=e=>{if(e.startsWith("top"))return{property:"bottom",value:ai.arrowOffset.varRef};if(e.startsWith("bottom"))return{property:"top",value:ai.arrowOffset.varRef};if(e.startsWith("left"))return{property:"right",value:ai.arrowOffset.varRef};if(e.startsWith("right"))return{property:"left",value:ai.arrowOffset.varRef}},o1e={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:e})=>{dO(e)},effect:({state:e})=>()=>{dO(e)}},dO=e=>{if(!e.elements.arrow)return;const t=e.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!t)return;const n=Xve(e.placement);n&&t.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(t.style,{transform:"rotate(45deg)",background:ai.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},a1e={"start-start":{ltr:"left-start",rtl:"right-start"},"start-end":{ltr:"left-end",rtl:"right-end"},"end-start":{ltr:"right-start",rtl:"left-start"},"end-end":{ltr:"right-end",rtl:"left-end"},start:{ltr:"left",rtl:"right"},end:{ltr:"right",rtl:"left"}},s1e={"auto-start":"auto-end","auto-end":"auto-start","top-start":"top-end","top-end":"top-start","bottom-start":"bottom-end","bottom-end":"bottom-start"};function l1e(e,t="ltr"){var n,r;const i=((n=a1e[e])==null?void 0:n[t])||e;return t==="ltr"?i:(r=s1e[e])!=null?r:i}var Jo="top",fs="bottom",hs="right",ea="left",j8="auto",f2=[Jo,fs,hs,ea],Zm="start",Ry="end",u1e="clippingParents",SH="viewport",qv="popper",c1e="reference",fO=f2.reduce(function(e,t){return e.concat([t+"-"+Zm,t+"-"+Ry])},[]),wH=[].concat(f2,[j8]).reduce(function(e,t){return e.concat([t,t+"-"+Zm,t+"-"+Ry])},[]),d1e="beforeRead",f1e="read",h1e="afterRead",p1e="beforeMain",g1e="main",m1e="afterMain",v1e="beforeWrite",y1e="write",b1e="afterWrite",x1e=[d1e,f1e,h1e,p1e,g1e,m1e,v1e,y1e,b1e];function iu(e){return e?(e.nodeName||"").toLowerCase():null}function ms(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Jh(e){var t=ms(e).Element;return e instanceof t||e instanceof Element}function us(e){var t=ms(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function N8(e){if(typeof ShadowRoot>"u")return!1;var t=ms(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function S1e(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!us(o)||!iu(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var s=i[a];s===!1?o.removeAttribute(a):o.setAttribute(a,s===!0?"":s)}))})}function w1e(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,u){return l[u]="",l},{});!us(i)||!iu(i)||(Object.assign(i.style,s),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}const C1e={name:"applyStyles",enabled:!0,phase:"write",fn:S1e,effect:w1e,requires:["computeStyles"]};function Jl(e){return e.split("-")[0]}var Hh=Math.max,g3=Math.min,Qm=Math.round;function rk(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function CH(){return!/^((?!chrome|android).)*safari/i.test(rk())}function Jm(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&us(e)&&(i=e.offsetWidth>0&&Qm(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Qm(r.height)/e.offsetHeight||1);var a=Jh(e)?ms(e):window,s=a.visualViewport,l=!CH()&&n,u=(r.left+(l&&s?s.offsetLeft:0))/i,d=(r.top+(l&&s?s.offsetTop:0))/o,h=r.width/i,m=r.height/o;return{width:h,height:m,top:d,right:u+h,bottom:d+m,left:u,x:u,y:d}}function $8(e){var t=Jm(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function _H(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&N8(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ac(e){return ms(e).getComputedStyle(e)}function _1e(e){return["table","td","th"].indexOf(iu(e))>=0}function df(e){return((Jh(e)?e.ownerDocument:e.document)||window.document).documentElement}function zw(e){return iu(e)==="html"?e:e.assignedSlot||e.parentNode||(N8(e)?e.host:null)||df(e)}function hO(e){return!us(e)||ac(e).position==="fixed"?null:e.offsetParent}function k1e(e){var t=/firefox/i.test(rk()),n=/Trident/i.test(rk());if(n&&us(e)){var r=ac(e);if(r.position==="fixed")return null}var i=zw(e);for(N8(i)&&(i=i.host);us(i)&&["html","body"].indexOf(iu(i))<0;){var o=ac(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function h2(e){for(var t=ms(e),n=hO(e);n&&_1e(n)&&ac(n).position==="static";)n=hO(n);return n&&(iu(n)==="html"||iu(n)==="body"&&ac(n).position==="static")?t:n||k1e(e)||t}function F8(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function q1(e,t,n){return Hh(e,g3(t,n))}function E1e(e,t,n){var r=q1(e,t,n);return r>n?n:r}function kH(){return{top:0,right:0,bottom:0,left:0}}function EH(e){return Object.assign({},kH(),e)}function PH(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var P1e=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,EH(typeof t!="number"?t:PH(t,f2))};function T1e(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Jl(n.placement),l=F8(s),u=[ea,hs].indexOf(s)>=0,d=u?"height":"width";if(!(!o||!a)){var h=P1e(i.padding,n),m=$8(o),y=l==="y"?Jo:ea,b=l==="y"?fs:hs,w=n.rects.reference[d]+n.rects.reference[l]-a[l]-n.rects.popper[d],E=a[l]-n.rects.reference[l],_=h2(o),k=_?l==="y"?_.clientHeight||0:_.clientWidth||0:0,P=w/2-E/2,L=h[y],O=k-m[d]-h[b],D=k/2-m[d]/2+P,R=q1(L,D,O),N=l;n.modifiersData[r]=(t={},t[N]=R,t.centerOffset=R-D,t)}}function M1e(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||_H(t.elements.popper,i)&&(t.elements.arrow=i))}const L1e={name:"arrow",enabled:!0,phase:"main",fn:T1e,effect:M1e,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function e0(e){return e.split("-")[1]}var A1e={top:"auto",right:"auto",bottom:"auto",left:"auto"};function O1e(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Qm(t*i)/i||0,y:Qm(n*i)/i||0}}function pO(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,h=e.isFixed,m=a.x,y=m===void 0?0:m,b=a.y,w=b===void 0?0:b,E=typeof d=="function"?d({x:y,y:w}):{x:y,y:w};y=E.x,w=E.y;var _=a.hasOwnProperty("x"),k=a.hasOwnProperty("y"),P=ea,L=Jo,O=window;if(u){var D=h2(n),R="clientHeight",N="clientWidth";if(D===ms(n)&&(D=df(n),ac(D).position!=="static"&&s==="absolute"&&(R="scrollHeight",N="scrollWidth")),D=D,i===Jo||(i===ea||i===hs)&&o===Ry){L=fs;var W=h&&D===O&&O.visualViewport?O.visualViewport.height:D[R];w-=W-r.height,w*=l?1:-1}if(i===ea||(i===Jo||i===fs)&&o===Ry){P=hs;var B=h&&D===O&&O.visualViewport?O.visualViewport.width:D[N];y-=B-r.width,y*=l?1:-1}}var K=Object.assign({position:s},u&&A1e),ne=d===!0?O1e({x:y,y:w}):{x:y,y:w};if(y=ne.x,w=ne.y,l){var z;return Object.assign({},K,(z={},z[L]=k?"0":"",z[P]=_?"0":"",z.transform=(O.devicePixelRatio||1)<=1?"translate("+y+"px, "+w+"px)":"translate3d("+y+"px, "+w+"px, 0)",z))}return Object.assign({},K,(t={},t[L]=k?w+"px":"",t[P]=_?y+"px":"",t.transform="",t))}function I1e(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,a=o===void 0?!0:o,s=n.roundOffsets,l=s===void 0?!0:s,u={placement:Jl(t.placement),variation:e0(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,pO(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,pO(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const R1e={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:I1e,data:{}};var Kb={passive:!0};function D1e(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,s=a===void 0?!0:a,l=ms(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(d){d.addEventListener("scroll",n.update,Kb)}),s&&l.addEventListener("resize",n.update,Kb),function(){o&&u.forEach(function(d){d.removeEventListener("scroll",n.update,Kb)}),s&&l.removeEventListener("resize",n.update,Kb)}}const j1e={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:D1e,data:{}};var N1e={left:"right",right:"left",bottom:"top",top:"bottom"};function nS(e){return e.replace(/left|right|bottom|top/g,function(t){return N1e[t]})}var $1e={start:"end",end:"start"};function gO(e){return e.replace(/start|end/g,function(t){return $1e[t]})}function B8(e){var t=ms(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function z8(e){return Jm(df(e)).left+B8(e).scrollLeft}function F1e(e,t){var n=ms(e),r=df(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=CH();(u||!u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+z8(e),y:l}}function B1e(e){var t,n=df(e),r=B8(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Hh(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=Hh(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+z8(e),l=-r.scrollTop;return ac(i||n).direction==="rtl"&&(s+=Hh(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:l}}function H8(e){var t=ac(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function TH(e){return["html","body","#document"].indexOf(iu(e))>=0?e.ownerDocument.body:us(e)&&H8(e)?e:TH(zw(e))}function K1(e,t){var n;t===void 0&&(t=[]);var r=TH(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=ms(r),a=i?[o].concat(o.visualViewport||[],H8(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(K1(zw(a)))}function ik(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function z1e(e,t){var n=Jm(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function mO(e,t,n){return t===SH?ik(F1e(e,n)):Jh(t)?z1e(t,n):ik(B1e(df(e)))}function H1e(e){var t=K1(zw(e)),n=["absolute","fixed"].indexOf(ac(e).position)>=0,r=n&&us(e)?h2(e):e;return Jh(r)?t.filter(function(i){return Jh(i)&&_H(i,r)&&iu(i)!=="body"}):[]}function W1e(e,t,n,r){var i=t==="clippingParents"?H1e(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(l,u){var d=mO(e,u,r);return l.top=Hh(d.top,l.top),l.right=g3(d.right,l.right),l.bottom=g3(d.bottom,l.bottom),l.left=Hh(d.left,l.left),l},mO(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function MH(e){var t=e.reference,n=e.element,r=e.placement,i=r?Jl(r):null,o=r?e0(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(i){case Jo:l={x:a,y:t.y-n.height};break;case fs:l={x:a,y:t.y+t.height};break;case hs:l={x:t.x+t.width,y:s};break;case ea:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?F8(i):null;if(u!=null){var d=u==="y"?"height":"width";switch(o){case Zm:l[u]=l[u]-(t[d]/2-n[d]/2);break;case Ry:l[u]=l[u]+(t[d]/2-n[d]/2);break}}return l}function Dy(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,a=o===void 0?e.strategy:o,s=n.boundary,l=s===void 0?u1e:s,u=n.rootBoundary,d=u===void 0?SH:u,h=n.elementContext,m=h===void 0?qv:h,y=n.altBoundary,b=y===void 0?!1:y,w=n.padding,E=w===void 0?0:w,_=EH(typeof E!="number"?E:PH(E,f2)),k=m===qv?c1e:qv,P=e.rects.popper,L=e.elements[b?k:m],O=W1e(Jh(L)?L:L.contextElement||df(e.elements.popper),l,d,a),D=Jm(e.elements.reference),R=MH({reference:D,element:P,strategy:"absolute",placement:i}),N=ik(Object.assign({},P,R)),W=m===qv?N:D,B={top:O.top-W.top+_.top,bottom:W.bottom-O.bottom+_.bottom,left:O.left-W.left+_.left,right:W.right-O.right+_.right},K=e.modifiersData.offset;if(m===qv&&K){var ne=K[i];Object.keys(B).forEach(function(z){var $=[hs,fs].indexOf(z)>=0?1:-1,U=[Jo,fs].indexOf(z)>=0?"y":"x";B[z]+=ne[U]*$})}return B}function V1e(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?wH:l,d=e0(r),h=d?s?fO:fO.filter(function(b){return e0(b)===d}):f2,m=h.filter(function(b){return u.indexOf(b)>=0});m.length===0&&(m=h);var y=m.reduce(function(b,w){return b[w]=Dy(e,{placement:w,boundary:i,rootBoundary:o,padding:a})[Jl(w)],b},{});return Object.keys(y).sort(function(b,w){return y[b]-y[w]})}function U1e(e){if(Jl(e)===j8)return[];var t=nS(e);return[gO(e),t,gO(t)]}function G1e(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,d=n.boundary,h=n.rootBoundary,m=n.altBoundary,y=n.flipVariations,b=y===void 0?!0:y,w=n.allowedAutoPlacements,E=t.options.placement,_=Jl(E),k=_===E,P=l||(k||!b?[nS(E)]:U1e(E)),L=[E].concat(P).reduce(function(xe,Ce){return xe.concat(Jl(Ce)===j8?V1e(t,{placement:Ce,boundary:d,rootBoundary:h,padding:u,flipVariations:b,allowedAutoPlacements:w}):Ce)},[]),O=t.rects.reference,D=t.rects.popper,R=new Map,N=!0,W=L[0],B=0;B=0,U=$?"width":"height",X=Dy(t,{placement:K,boundary:d,rootBoundary:h,altBoundary:m,padding:u}),Q=$?z?hs:ea:z?fs:Jo;O[U]>D[U]&&(Q=nS(Q));var G=nS(Q),Y=[];if(o&&Y.push(X[ne]<=0),s&&Y.push(X[Q]<=0,X[G]<=0),Y.every(function(xe){return xe})){W=K,N=!1;break}R.set(K,Y)}if(N)for(var ee=b?3:1,fe=function(Ce){var Se=L.find(function(Qe){var tt=R.get(Qe);if(tt)return tt.slice(0,Ce).every(function(it){return it})});if(Se)return W=Se,"break"},ke=ee;ke>0;ke--){var we=fe(ke);if(we==="break")break}t.placement!==W&&(t.modifiersData[r]._skip=!0,t.placement=W,t.reset=!0)}}const q1e={name:"flip",enabled:!0,phase:"main",fn:G1e,requiresIfExists:["offset"],data:{_skip:!1}};function vO(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function yO(e){return[Jo,hs,fs,ea].some(function(t){return e[t]>=0})}function K1e(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=Dy(t,{elementContext:"reference"}),s=Dy(t,{altBoundary:!0}),l=vO(a,r),u=vO(s,i,o),d=yO(l),h=yO(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}const Y1e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:K1e};function X1e(e,t,n){var r=Jl(e),i=[ea,Jo].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[ea,hs].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function Z1e(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,a=wH.reduce(function(d,h){return d[h]=X1e(h,t.rects,o),d},{}),s=a[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}const Q1e={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Z1e};function J1e(e){var t=e.state,n=e.name;t.modifiersData[n]=MH({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const eye={name:"popperOffsets",enabled:!0,phase:"read",fn:J1e,data:{}};function tye(e){return e==="x"?"y":"x"}function nye(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,d=n.altBoundary,h=n.padding,m=n.tether,y=m===void 0?!0:m,b=n.tetherOffset,w=b===void 0?0:b,E=Dy(t,{boundary:l,rootBoundary:u,padding:h,altBoundary:d}),_=Jl(t.placement),k=e0(t.placement),P=!k,L=F8(_),O=tye(L),D=t.modifiersData.popperOffsets,R=t.rects.reference,N=t.rects.popper,W=typeof w=="function"?w(Object.assign({},t.rects,{placement:t.placement})):w,B=typeof W=="number"?{mainAxis:W,altAxis:W}:Object.assign({mainAxis:0,altAxis:0},W),K=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,ne={x:0,y:0};if(D){if(o){var z,$=L==="y"?Jo:ea,U=L==="y"?fs:hs,X=L==="y"?"height":"width",Q=D[L],G=Q+E[$],Y=Q-E[U],ee=y?-N[X]/2:0,fe=k===Zm?R[X]:N[X],ke=k===Zm?-N[X]:-R[X],we=t.elements.arrow,xe=y&&we?$8(we):{width:0,height:0},Ce=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:kH(),Se=Ce[$],Qe=Ce[U],tt=q1(0,R[X],xe[X]),it=P?R[X]/2-ee-tt-Se-B.mainAxis:fe-tt-Se-B.mainAxis,xt=P?-R[X]/2+ee+tt+Qe+B.mainAxis:ke+tt+Qe+B.mainAxis,Be=t.elements.arrow&&h2(t.elements.arrow),Le=Be?L==="y"?Be.clientTop||0:Be.clientLeft||0:0,St=(z=K==null?void 0:K[L])!=null?z:0,Fe=Q+it-St-Le,at=Q+xt-St,$t=q1(y?g3(G,Fe):G,Q,y?Hh(Y,at):Y);D[L]=$t,ne[L]=$t-Q}if(s){var vt,Jt=L==="x"?Jo:ea,sn=L==="x"?fs:hs,se=D[O],Ie=O==="y"?"height":"width",He=se+E[Jt],Ve=se-E[sn],ye=[Jo,ea].indexOf(_)!==-1,je=(vt=K==null?void 0:K[O])!=null?vt:0,yt=ye?He:se-R[Ie]-N[Ie]-je+B.altAxis,Lt=ye?se+R[Ie]+N[Ie]-je-B.altAxis:Ve,Me=y&&ye?E1e(yt,se,Lt):q1(y?yt:He,se,y?Lt:Ve);D[O]=Me,ne[O]=Me-se}t.modifiersData[r]=ne}}const rye={name:"preventOverflow",enabled:!0,phase:"main",fn:nye,requiresIfExists:["offset"]};function iye(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function oye(e){return e===ms(e)||!us(e)?B8(e):iye(e)}function aye(e){var t=e.getBoundingClientRect(),n=Qm(t.width)/e.offsetWidth||1,r=Qm(t.height)/e.offsetHeight||1;return n!==1||r!==1}function sye(e,t,n){n===void 0&&(n=!1);var r=us(t),i=us(t)&&aye(t),o=df(t),a=Jm(e,i,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((iu(t)!=="body"||H8(o))&&(s=oye(t)),us(t)?(l=Jm(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=z8(o))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function lye(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function uye(e){var t=lye(e);return x1e.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function cye(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function dye(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var bO={placement:"bottom",modifiers:[],strategy:"absolute"};function xO(){for(var e=arguments.length,t=new Array(e),n=0;n{}),P=S.useCallback(()=>{var B;!t||!b.current||!w.current||((B=k.current)==null||B.call(k),E.current=pye(b.current,w.current,{placement:_,modifiers:[o1e,n1e,t1e,{...e1e,enabled:!!m},{name:"eventListeners",...Jve(a)},{name:"arrow",options:{padding:o}},{name:"offset",options:{offset:s??[0,l]}},{name:"flip",enabled:!!u,options:{padding:8}},{name:"preventOverflow",enabled:!!h,options:{boundary:d}},...n??[]],strategy:i}),E.current.forceUpdate(),k.current=E.current.destroy)},[_,t,n,m,a,o,s,l,u,h,d,i]);S.useEffect(()=>()=>{var B;!b.current&&!w.current&&((B=E.current)==null||B.destroy(),E.current=null)},[]);const L=S.useCallback(B=>{b.current=B,P()},[P]),O=S.useCallback((B={},K=null)=>({...B,ref:Dn(L,K)}),[L]),D=S.useCallback(B=>{w.current=B,P()},[P]),R=S.useCallback((B={},K=null)=>({...B,ref:Dn(D,K),style:{...B.style,position:i,minWidth:m?void 0:"max-content",inset:"0 auto auto 0"}}),[i,D,m]),N=S.useCallback((B={},K=null)=>{const{size:ne,shadowColor:z,bg:$,style:U,...X}=B;return{...X,ref:K,"data-popper-arrow":"",style:gye(B)}},[]),W=S.useCallback((B={},K=null)=>({...B,ref:K,"data-popper-arrow-inner":""}),[]);return{update(){var B;(B=E.current)==null||B.update()},forceUpdate(){var B;(B=E.current)==null||B.forceUpdate()},transformOrigin:ai.transformOrigin.varRef,referenceRef:L,popperRef:D,getPopperProps:R,getArrowProps:N,getArrowInnerProps:W,getReferenceProps:O}}function gye(e){const{size:t,shadowColor:n,bg:r,style:i}=e,o={...i,position:"absolute"};return t&&(o["--popper-arrow-size"]=t),n&&(o["--popper-arrow-shadow-color"]=n),r&&(o["--popper-arrow-bg"]=r),o}function V8(e={}){const{onClose:t,onOpen:n,isOpen:r,id:i}=e,o=ei(n),a=ei(t),[s,l]=S.useState(e.defaultIsOpen||!1),u=r!==void 0?r:s,d=r!==void 0,h=S.useId(),m=i??`disclosure-${h}`,y=S.useCallback(()=>{d||l(!1),a==null||a()},[d,a]),b=S.useCallback(()=>{d||l(!0),o==null||o()},[d,o]),w=S.useCallback(()=>{u?y():b()},[u,b,y]);function E(k={}){return{...k,"aria-expanded":u,"aria-controls":m,onClick(P){var L;(L=k.onClick)==null||L.call(k,P),w()}}}function _(k={}){return{...k,hidden:!u,id:m}}return{isOpen:u,onOpen:b,onClose:y,onToggle:w,isControlled:d,getButtonProps:E,getDisclosureProps:_}}function mye(e){const{ref:t,handler:n,enabled:r=!0}=e,i=ei(n),a=S.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;S.useEffect(()=>{if(!r)return;const s=h=>{SC(h,t)&&(a.isPointerDown=!0)},l=h=>{if(a.ignoreEmulatedMouseEvents){a.ignoreEmulatedMouseEvents=!1;return}a.isPointerDown&&n&&SC(h,t)&&(a.isPointerDown=!1,i(h))},u=h=>{a.ignoreEmulatedMouseEvents=!0,n&&a.isPointerDown&&SC(h,t)&&(a.isPointerDown=!1,i(h))},d=LH(t.current);return d.addEventListener("mousedown",s,!0),d.addEventListener("mouseup",l,!0),d.addEventListener("touchstart",s,!0),d.addEventListener("touchend",u,!0),()=>{d.removeEventListener("mousedown",s,!0),d.removeEventListener("mouseup",l,!0),d.removeEventListener("touchstart",s,!0),d.removeEventListener("touchend",u,!0)}},[n,t,i,a,r])}function SC(e,t){var n;const r=e.target;return e.button>0||r&&!LH(r).contains(r)?!1:!((n=t.current)!=null&&n.contains(r))}function LH(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function AH(e){const{isOpen:t,ref:n}=e,[r,i]=S.useState(t),[o,a]=S.useState(!1);return S.useEffect(()=>{o||(i(t),a(!0))},[t,o,r]),Fh(()=>n.current,"animationend",()=>{i(t)}),{present:!(t?!1:!r),onComplete(){var l;const u=wve(n.current),d=new u.CustomEvent("animationend",{bubbles:!0});(l=n.current)==null||l.dispatchEvent(d)}}}function U8(e){const{wasSelected:t,enabled:n,isSelected:r,mode:i="unmount"}=e;return!!(!n||r||i==="keepMounted"&&t)}var[vye,yye,bye,xye]=h8(),[Sye,p2]=Ln({strict:!1,name:"MenuContext"});function wye(e,...t){const n=S.useId(),r=e||n;return S.useMemo(()=>t.map(i=>`${i}-${r}`),[r,t])}function OH(e){var t;return(t=e==null?void 0:e.ownerDocument)!=null?t:document}function SO(e){return OH(e).activeElement===e}function Cye(e={}){const{id:t,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:i,autoSelect:o=!0,isLazy:a,isOpen:s,defaultIsOpen:l,onClose:u,onOpen:d,placement:h="bottom-start",lazyBehavior:m="unmount",direction:y,computePositionOnMount:b=!1,...w}=e,E=S.useRef(null),_=S.useRef(null),k=bye(),P=S.useCallback(()=>{requestAnimationFrame(()=>{var we;(we=E.current)==null||we.focus({preventScroll:!1})})},[]),L=S.useCallback(()=>{const we=setTimeout(()=>{var xe;if(i)(xe=i.current)==null||xe.focus();else{const Ce=k.firstEnabled();Ce&&z(Ce.index)}});G.current.add(we)},[k,i]),O=S.useCallback(()=>{const we=setTimeout(()=>{const xe=k.lastEnabled();xe&&z(xe.index)});G.current.add(we)},[k]),D=S.useCallback(()=>{d==null||d(),o?L():P()},[o,L,P,d]),{isOpen:R,onOpen:N,onClose:W,onToggle:B}=V8({isOpen:s,defaultIsOpen:l,onClose:u,onOpen:D});mye({enabled:R&&r,ref:E,handler:we=>{var xe;(xe=_.current)!=null&&xe.contains(we.target)||W()}});const K=W8({...w,enabled:R||b,placement:h,direction:y}),[ne,z]=S.useState(-1);oc(()=>{R||z(-1)},[R]),xH(E,{focusRef:_,visible:R,shouldFocus:!0});const $=AH({isOpen:R,ref:E}),[U,X]=wye(t,"menu-button","menu-list"),Q=S.useCallback(()=>{N(),P()},[N,P]),G=S.useRef(new Set([]));Lye(()=>{G.current.forEach(we=>clearTimeout(we)),G.current.clear()});const Y=S.useCallback(()=>{N(),L()},[L,N]),ee=S.useCallback(()=>{N(),O()},[N,O]),fe=S.useCallback(()=>{var we,xe;const Ce=OH(E.current),Se=(we=E.current)==null?void 0:we.contains(Ce.activeElement);if(!(R&&!Se))return;const tt=(xe=k.item(ne))==null?void 0:xe.node;tt==null||tt.focus()},[R,ne,k]),ke=S.useRef(null);return{openAndFocusMenu:Q,openAndFocusFirstItem:Y,openAndFocusLastItem:ee,onTransitionEnd:fe,unstable__animationState:$,descendants:k,popper:K,buttonId:U,menuId:X,forceUpdate:K.forceUpdate,orientation:"vertical",isOpen:R,onToggle:B,onOpen:N,onClose:W,menuRef:E,buttonRef:_,focusedIndex:ne,closeOnSelect:n,closeOnBlur:r,autoSelect:o,setFocusedIndex:z,isLazy:a,lazyBehavior:m,initialFocusRef:i,rafId:ke}}function _ye(e={},t=null){const n=p2(),{onToggle:r,popper:i,openAndFocusFirstItem:o,openAndFocusLastItem:a}=n,s=S.useCallback(l=>{const u=l.key,h={Enter:o,ArrowDown:o,ArrowUp:a}[u];h&&(l.preventDefault(),l.stopPropagation(),h(l))},[o,a]);return{...e,ref:Dn(n.buttonRef,t,i.referenceRef),id:n.buttonId,"data-active":Ht(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:ht(e.onClick,r),onKeyDown:ht(e.onKeyDown,s)}}function ok(e){var t;return Tye(e)&&!!((t=e==null?void 0:e.getAttribute("role"))!=null&&t.startsWith("menuitem"))}function kye(e={},t=null){const n=p2();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within
    ");const{focusedIndex:r,setFocusedIndex:i,menuRef:o,isOpen:a,onClose:s,menuId:l,isLazy:u,lazyBehavior:d,unstable__animationState:h}=n,m=yye(),y=Wve({preventDefault:_=>_.key!==" "&&ok(_.target)}),b=S.useCallback(_=>{const k=_.key,L={Tab:D=>D.preventDefault(),Escape:s,ArrowDown:()=>{const D=m.nextEnabled(r);D&&i(D.index)},ArrowUp:()=>{const D=m.prevEnabled(r);D&&i(D.index)}}[k];if(L){_.preventDefault(),L(_);return}const O=y(D=>{const R=Vve(m.values(),D,N=>{var W,B;return(B=(W=N==null?void 0:N.node)==null?void 0:W.textContent)!=null?B:""},m.item(r));if(R){const N=m.indexOf(R.node);i(N)}});ok(_.target)&&O(_)},[m,r,y,s,i]),w=S.useRef(!1);a&&(w.current=!0);const E=U8({wasSelected:w.current,enabled:u,mode:d,isSelected:h.present});return{...e,ref:Dn(o,t),children:E?e.children:null,tabIndex:-1,role:"menu",id:l,style:{...e.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:ht(e.onKeyDown,b)}}function Eye(e={}){const{popper:t,isOpen:n}=p2();return t.getPopperProps({...e,style:{visibility:n?"visible":"hidden",...e.style}})}function Pye(e={},t=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onClick:o,onFocus:a,isDisabled:s,isFocusable:l,closeOnSelect:u,type:d,...h}=e,m=p2(),{setFocusedIndex:y,focusedIndex:b,closeOnSelect:w,onClose:E,menuRef:_,isOpen:k,menuId:P,rafId:L}=m,O=S.useRef(null),D=`${P}-menuitem-${S.useId()}`,{index:R,register:N}=xye({disabled:s&&!l}),W=S.useCallback(Q=>{n==null||n(Q),!s&&y(R)},[y,R,s,n]),B=S.useCallback(Q=>{r==null||r(Q),O.current&&!SO(O.current)&&W(Q)},[W,r]),K=S.useCallback(Q=>{i==null||i(Q),!s&&y(-1)},[y,s,i]),ne=S.useCallback(Q=>{o==null||o(Q),ok(Q.currentTarget)&&(u??w)&&E()},[E,o,w,u]),z=S.useCallback(Q=>{a==null||a(Q),y(R)},[y,a,R]),$=R===b,U=s&&!l;oc(()=>{k&&($&&!U&&O.current?(L.current&&cancelAnimationFrame(L.current),L.current=requestAnimationFrame(()=>{var Q;(Q=O.current)==null||Q.focus(),L.current=null})):_.current&&!SO(_.current)&&_.current.focus())},[$,U,_,k]);const X=bH({onClick:ne,onFocus:z,onMouseEnter:W,onMouseMove:B,onMouseLeave:K,ref:Dn(N,O,t),isDisabled:s,isFocusable:l});return{...h,...X,type:d??X.type,id:D,role:"menuitem",tabIndex:$?0:-1}}function Tye(e){var t;if(!Mye(e))return!1;const n=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof n.HTMLElement}function Mye(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Lye(e,t=[]){return S.useEffect(()=>()=>e(),t)}var[Aye,Hw]=Ln({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),IH=e=>{const{children:t}=e,n=Zi("Menu",e),r=pr(e),{direction:i}=t2(),{descendants:o,...a}=Cye({...r,direction:i}),s=S.useMemo(()=>a,[a]),{isOpen:l,onClose:u,forceUpdate:d}=s;return g.jsx(vye,{value:o,children:g.jsx(Sye,{value:s,children:g.jsx(Aye,{value:n,children:os(t,{isOpen:l,onClose:u,forceUpdate:d})})})})};IH.displayName="Menu";var RH=Xe((e,t)=>{const n=Hw();return g.jsx(Ne.span,{ref:t,...e,__css:n.command,className:"chakra-menu__command"})});RH.displayName="MenuCommand";var Oye=Xe((e,t)=>{const{type:n,...r}=e,i=Hw(),o=r.as||n?n??void 0:"button",a=S.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...i.item}),[i.item]);return g.jsx(Ne.button,{ref:t,type:o,...r,__css:a})}),DH=e=>{const{className:t,children:n,...r}=e,i=S.Children.only(n),o=S.isValidElement(i)?S.cloneElement(i,{focusable:"false","aria-hidden":!0,className:bt("chakra-menu__icon",i.props.className)}):null,a=bt("chakra-menu__icon-wrapper",t);return g.jsx(Ne.span,{className:a,...r,__css:{flexShrink:0},children:o})};DH.displayName="MenuIcon";var jH=Xe((e,t)=>{const{icon:n,iconSpacing:r="0.75rem",command:i,commandSpacing:o="0.75rem",children:a,...s}=e,l=Pye(s,t),d=n||i?g.jsx("span",{style:{pointerEvents:"none",flex:1},children:a}):a;return g.jsxs(Oye,{...l,className:bt("chakra-menu__menuitem",l.className),children:[n&&g.jsx(DH,{fontSize:"0.8em",marginEnd:r,children:n}),d,i&&g.jsx(RH,{marginStart:o,children:i})]})});jH.displayName="MenuItem";var Iye={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},Rye=Ne(uu.div),NH=Xe(function(t,n){var r,i;const{rootProps:o,motionProps:a,...s}=t,{isOpen:l,onTransitionEnd:u,unstable__animationState:d}=p2(),h=kye(s,n),m=Eye(o),y=Hw();return g.jsx(Ne.div,{...m,__css:{zIndex:(i=t.zIndex)!=null?i:(r=y.list)==null?void 0:r.zIndex},children:g.jsx(Rye,{variants:Iye,initial:!1,animate:l?"enter":"exit",__css:{outline:0,...y.list},...a,className:bt("chakra-menu__menu-list",h.className),...h,onUpdate:u,onAnimationComplete:kw(d.onComplete,h.onAnimationComplete)})})});NH.displayName="MenuList";var Dye=Xe((e,t)=>{const n=Hw();return g.jsx(Ne.button,{ref:t,...e,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...n.button}})}),$H=Xe((e,t)=>{const{children:n,as:r,...i}=e,o=_ye(i,t),a=r||Dye;return g.jsx(a,{...o,className:bt("chakra-menu__menu-button",e.className),children:g.jsx(Ne.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:e.children})})});$H.displayName="MenuButton";var jye={slideInBottom:{...q_,custom:{offsetY:16,reverse:!0}},slideInRight:{...q_,custom:{offsetX:16,reverse:!0}},scale:{...yz,custom:{initialScale:.95,reverse:!0}},none:{}},Nye=Ne(uu.section),$ye=e=>jye[e||"none"],FH=S.forwardRef((e,t)=>{const{preset:n,motionProps:r=$ye(n),...i}=e;return g.jsx(Nye,{ref:t,...r,...i})});FH.displayName="ModalTransition";var Fye=Object.defineProperty,Bye=(e,t,n)=>t in e?Fye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zye=(e,t,n)=>(Bye(e,typeof t!="symbol"?t+"":t,n),n),Hye=class{constructor(){zye(this,"modals"),this.modals=new Map}add(e){return this.modals.set(e,this.modals.size+1),this.modals.size}remove(e){this.modals.delete(e)}isTopModal(e){return e?this.modals.get(e)===this.modals.size:!1}},ak=new Hye;function BH(e,t){const[n,r]=S.useState(0);return S.useEffect(()=>{const i=e.current;if(i){if(t){const o=ak.add(i);r(o)}return()=>{ak.remove(i),r(0)}}},[t,e]),n}var Wye=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Tg=new WeakMap,Yb=new WeakMap,Xb={},wC=0,zH=function(e){return e&&(e.host||zH(e.parentNode))},Vye=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=zH(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return Boolean(n)})},Uye=function(e,t,n,r){var i=Vye(t,Array.isArray(e)?e:[e]);Xb[n]||(Xb[n]=new WeakMap);var o=Xb[n],a=[],s=new Set,l=new Set(i),u=function(h){!h||s.has(h)||(s.add(h),u(h.parentNode))};i.forEach(u);var d=function(h){!h||l.has(h)||Array.prototype.forEach.call(h.children,function(m){if(s.has(m))d(m);else{var y=m.getAttribute(r),b=y!==null&&y!=="false",w=(Tg.get(m)||0)+1,E=(o.get(m)||0)+1;Tg.set(m,w),o.set(m,E),a.push(m),w===1&&b&&Yb.set(m,!0),E===1&&m.setAttribute(n,"true"),b||m.setAttribute(r,"true")}})};return d(t),s.clear(),wC++,function(){a.forEach(function(h){var m=Tg.get(h)-1,y=o.get(h)-1;Tg.set(h,m),o.set(h,y),m||(Yb.has(h)||h.removeAttribute(r),Yb.delete(h)),y||h.removeAttribute(n)}),wC--,wC||(Tg=new WeakMap,Tg=new WeakMap,Yb=new WeakMap,Xb={})}},HH=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=t||Wye(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live]"))),Uye(r,i,n,"aria-hidden")):function(){return null}};function Gye(e){const{isOpen:t,onClose:n,id:r,closeOnOverlayClick:i=!0,closeOnEsc:o=!0,useInert:a=!0,onOverlayClick:s,onEsc:l}=e,u=S.useRef(null),d=S.useRef(null),[h,m,y]=Kye(r,"chakra-modal","chakra-modal--header","chakra-modal--body");qye(u,t&&a),BH(u,t);const b=S.useRef(null),w=S.useCallback(N=>{b.current=N.target},[]),E=S.useCallback(N=>{N.key==="Escape"&&(N.stopPropagation(),o&&(n==null||n()),l==null||l())},[o,n,l]),[_,k]=S.useState(!1),[P,L]=S.useState(!1),O=S.useCallback((N={},W=null)=>({role:"dialog",...N,ref:Dn(W,u),id:h,tabIndex:-1,"aria-modal":!0,"aria-labelledby":_?m:void 0,"aria-describedby":P?y:void 0,onClick:ht(N.onClick,B=>B.stopPropagation())}),[y,P,h,m,_]),D=S.useCallback(N=>{N.stopPropagation(),b.current===N.target&&ak.isTopModal(u.current)&&(i&&(n==null||n()),s==null||s())},[n,i,s]),R=S.useCallback((N={},W=null)=>({...N,ref:Dn(W,d),onClick:ht(N.onClick,D),onKeyDown:ht(N.onKeyDown,E),onMouseDown:ht(N.onMouseDown,w)}),[E,w,D]);return{isOpen:t,onClose:n,headerId:m,bodyId:y,setBodyMounted:L,setHeaderMounted:k,dialogRef:u,overlayRef:d,getDialogProps:O,getDialogContainerProps:R}}function qye(e,t){const n=e.current;S.useEffect(()=>{if(!(!e.current||!t))return HH(e.current)},[t,e,n])}function Kye(e,...t){const n=S.useId(),r=e||n;return S.useMemo(()=>t.map(i=>`${i}-${r}`),[r,t])}var[Yye,y0]=Ln({name:"ModalStylesContext",errorMessage:`useModalStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Xye,ep]=Ln({strict:!0,name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap modal components in ``"}),Qd=e=>{const t={scrollBehavior:"outside",autoFocus:!0,trapFocus:!0,returnFocusOnClose:!0,blockScrollOnMount:!0,allowPinchZoom:!1,motionPreset:"scale",lockFocusAcrossFrames:!0,...e},{portalProps:n,children:r,autoFocus:i,trapFocus:o,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:d,preserveScrollBarGap:h,motionPreset:m,lockFocusAcrossFrames:y,onCloseComplete:b}=t,w=Zi("Modal",t),_={...Gye(t),autoFocus:i,trapFocus:o,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:d,preserveScrollBarGap:h,motionPreset:m,lockFocusAcrossFrames:y};return g.jsx(Xye,{value:_,children:g.jsx(Yye,{value:w,children:g.jsx(up,{onExitComplete:b,children:_.isOpen&&g.jsx(h0,{...n,children:r})})})})};Qd.displayName="Modal";var rS="right-scroll-bar-position",iS="width-before-scroll-bar",Zye="with-scroll-bars-hidden",Qye="--removed-body-scroll-bar-size",WH=Oz(),CC=function(){},Ww=S.forwardRef(function(e,t){var n=S.useRef(null),r=S.useState({onScrollCapture:CC,onWheelCapture:CC,onTouchMoveCapture:CC}),i=r[0],o=r[1],a=e.forwardProps,s=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,h=e.shards,m=e.sideCar,y=e.noIsolation,b=e.inert,w=e.allowPinchZoom,E=e.as,_=E===void 0?"div":E,k=sz(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),P=m,L=Mz([n,t]),O=Bl(Bl({},k),i);return S.createElement(S.Fragment,null,d&&S.createElement(P,{sideCar:WH,removeScrollBar:u,shards:h,noIsolation:y,inert:b,setCallbacks:o,allowPinchZoom:!!w,lockRef:n}),a?S.cloneElement(S.Children.only(s),Bl(Bl({},O),{ref:L})):S.createElement(_,Bl({},O,{className:l,ref:L}),s))});Ww.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ww.classNames={fullWidth:iS,zeroRight:rS};var wO,Jye=function(){if(wO)return wO;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function e2e(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Jye();return t&&e.setAttribute("nonce",t),e}function t2e(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function n2e(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var r2e=function(){var e=0,t=null;return{add:function(n){e==0&&(t=e2e())&&(t2e(t,n),n2e(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},i2e=function(){var e=r2e();return function(t,n){S.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},VH=function(){var e=i2e(),t=function(n){var r=n.styles,i=n.dynamic;return e(r,i),null};return t},o2e={left:0,top:0,right:0,gap:0},_C=function(e){return parseInt(e||"",10)||0},a2e=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[_C(n),_C(r),_C(i)]},s2e=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return o2e;var t=a2e(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},l2e=VH(),u2e=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(Zye,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(rS,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(iS,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(rS," .").concat(rS,` { + right: 0 `).concat(r,`; + } + + .`).concat(iS," .").concat(iS,` { + margin-right: 0 `).concat(r,`; + } + + body { + `).concat(Qye,": ").concat(s,`px; + } +`)},c2e=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r,o=S.useMemo(function(){return s2e(i)},[i]);return S.createElement(l2e,{styles:u2e(o,!t,i,n?"":"!important")})},sk=!1;if(typeof window<"u")try{var Zb=Object.defineProperty({},"passive",{get:function(){return sk=!0,!0}});window.addEventListener("test",Zb,Zb),window.removeEventListener("test",Zb,Zb)}catch{sk=!1}var Mg=sk?{passive:!1}:!1,d2e=function(e){return e.tagName==="TEXTAREA"},UH=function(e,t){var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!d2e(e)&&n[t]==="visible")},f2e=function(e){return UH(e,"overflowY")},h2e=function(e){return UH(e,"overflowX")},CO=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=GH(e,n);if(r){var i=qH(e,n),o=i[1],a=i[2];if(o>a)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},p2e=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},g2e=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},GH=function(e,t){return e==="v"?f2e(t):h2e(t)},qH=function(e,t){return e==="v"?p2e(t):g2e(t)},m2e=function(e,t){return e==="h"&&t==="rtl"?-1:1},v2e=function(e,t,n,r,i){var o=m2e(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),u=!1,d=a>0,h=0,m=0;do{var y=qH(e,s),b=y[0],w=y[1],E=y[2],_=w-E-o*b;(b||_)&&GH(e,s)&&(h+=_,m+=b),s=s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&(i&&h===0||!i&&a>h)||!d&&(i&&m===0||!i&&-a>m))&&(u=!0),u},Qb=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},_O=function(e){return[e.deltaX,e.deltaY]},kO=function(e){return e&&"current"in e?e.current:e},y2e=function(e,t){return e[0]===t[0]&&e[1]===t[1]},b2e=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},x2e=0,Lg=[];function S2e(e){var t=S.useRef([]),n=S.useRef([0,0]),r=S.useRef(),i=S.useState(x2e++)[0],o=S.useState(function(){return VH()})[0],a=S.useRef(e);S.useEffect(function(){a.current=e},[e]),S.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var w=U_([e.lockRef.current],(e.shards||[]).map(kO),!0).filter(Boolean);return w.forEach(function(E){return E.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),w.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=S.useCallback(function(w,E){if("touches"in w&&w.touches.length===2)return!a.current.allowPinchZoom;var _=Qb(w),k=n.current,P="deltaX"in w?w.deltaX:k[0]-_[0],L="deltaY"in w?w.deltaY:k[1]-_[1],O,D=w.target,R=Math.abs(P)>Math.abs(L)?"h":"v";if("touches"in w&&R==="h"&&D.type==="range")return!1;var N=CO(R,D);if(!N)return!0;if(N?O=R:(O=R==="v"?"h":"v",N=CO(R,D)),!N)return!1;if(!r.current&&"changedTouches"in w&&(P||L)&&(r.current=O),!O)return!0;var W=r.current||O;return v2e(W,E,w,W==="h"?P:L,!0)},[]),l=S.useCallback(function(w){var E=w;if(!(!Lg.length||Lg[Lg.length-1]!==o)){var _="deltaY"in E?_O(E):Qb(E),k=t.current.filter(function(O){return O.name===E.type&&O.target===E.target&&y2e(O.delta,_)})[0];if(k&&k.should){E.cancelable&&E.preventDefault();return}if(!k){var P=(a.current.shards||[]).map(kO).filter(Boolean).filter(function(O){return O.contains(E.target)}),L=P.length>0?s(E,P[0]):!a.current.noIsolation;L&&E.cancelable&&E.preventDefault()}}},[]),u=S.useCallback(function(w,E,_,k){var P={name:w,delta:E,target:_,should:k};t.current.push(P),setTimeout(function(){t.current=t.current.filter(function(L){return L!==P})},1)},[]),d=S.useCallback(function(w){n.current=Qb(w),r.current=void 0},[]),h=S.useCallback(function(w){u(w.type,_O(w),w.target,s(w,e.lockRef.current))},[]),m=S.useCallback(function(w){u(w.type,Qb(w),w.target,s(w,e.lockRef.current))},[]);S.useEffect(function(){return Lg.push(o),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:m}),document.addEventListener("wheel",l,Mg),document.addEventListener("touchmove",l,Mg),document.addEventListener("touchstart",d,Mg),function(){Lg=Lg.filter(function(w){return w!==o}),document.removeEventListener("wheel",l,Mg),document.removeEventListener("touchmove",l,Mg),document.removeEventListener("touchstart",d,Mg)}},[]);var y=e.removeScrollBar,b=e.inert;return S.createElement(S.Fragment,null,b?S.createElement(o,{styles:b2e(i)}):null,y?S.createElement(c2e,{gapMode:"margin"}):null)}const w2e=k0e(WH,S2e);var KH=S.forwardRef(function(e,t){return S.createElement(Ww,Bl({},e,{ref:t,sideCar:w2e}))});KH.classNames=Ww.classNames;const YH=KH;function C2e(e){const{autoFocus:t,trapFocus:n,dialogRef:r,initialFocusRef:i,blockScrollOnMount:o,allowPinchZoom:a,finalFocusRef:s,returnFocusOnClose:l,preserveScrollBarGap:u,lockFocusAcrossFrames:d,isOpen:h}=ep(),[m,y]=UB();S.useEffect(()=>{!m&&y&&setTimeout(y)},[m,y]);const b=BH(r,h);return g.jsx(dH,{autoFocus:t,isDisabled:!n,initialFocusRef:i,finalFocusRef:s,restoreFocus:l,contentRef:r,lockFocusAcrossFrames:d,children:g.jsx(YH,{removeScrollBar:!u,allowPinchZoom:a,enabled:b===1&&o,forwardProps:!0,children:e.children})})}var Jd=Xe((e,t)=>{const{className:n,children:r,containerProps:i,motionProps:o,...a}=e,{getDialogProps:s,getDialogContainerProps:l}=ep(),u=s(a,t),d=l(i),h=bt("chakra-modal__content",n),m=y0(),y={display:"flex",flexDirection:"column",position:"relative",width:"100%",outline:0,...m.dialog},b={display:"flex",width:"100vw",height:"$100vh",position:"fixed",left:0,top:0,...m.dialogContainer},{motionPreset:w}=ep();return g.jsx(C2e,{children:g.jsx(Ne.div,{...d,className:"chakra-modal__content-container",tabIndex:-1,__css:b,children:g.jsx(FH,{preset:w,motionProps:o,className:h,...u,__css:y,children:r})})})});Jd.displayName="ModalContent";function XH(e){const{leastDestructiveRef:t,...n}=e;return g.jsx(Qd,{...n,initialFocusRef:t})}var ZH=Xe((e,t)=>g.jsx(Jd,{ref:t,role:"alertdialog",...e})),Vw=Xe((e,t)=>{const{className:n,...r}=e,i=bt("chakra-modal__footer",n),a={display:"flex",alignItems:"center",justifyContent:"flex-end",...y0().footer};return g.jsx(Ne.footer,{ref:t,...r,__css:a,className:i})});Vw.displayName="ModalFooter";var dp=Xe((e,t)=>{const{className:n,...r}=e,{headerId:i,setHeaderMounted:o}=ep();S.useEffect(()=>(o(!0),()=>o(!1)),[o]);const a=bt("chakra-modal__header",n),l={flex:0,...y0().header};return g.jsx(Ne.header,{ref:t,className:a,id:i,...r,__css:l})});dp.displayName="ModalHeader";var _2e=Ne(uu.div),sc=Xe((e,t)=>{const{className:n,transition:r,motionProps:i,...o}=e,a=bt("chakra-modal__overlay",n),l={pos:"fixed",left:"0",top:"0",w:"100vw",h:"100vh",...y0().overlay},{motionPreset:u}=ep(),h=i||(u==="none"?{}:vz);return g.jsx(_2e,{...h,__css:l,ref:t,className:a,...o})});sc.displayName="ModalOverlay";var t0=Xe((e,t)=>{const{className:n,...r}=e,{bodyId:i,setBodyMounted:o}=ep();S.useEffect(()=>(o(!0),()=>o(!1)),[o]);const a=bt("chakra-modal__body",n),s=y0();return g.jsx(Ne.div,{ref:t,className:a,id:i,...r,__css:s.body})});t0.displayName="ModalBody";var b0=Xe((e,t)=>{const{onClick:n,className:r,...i}=e,{onClose:o}=ep(),a=bt("chakra-modal__close-btn",r),s=y0();return g.jsx(f8,{ref:t,__css:s.closeButton,className:a,onClick:ht(n,l=>{l.stopPropagation(),o()}),...i})});b0.displayName="ModalCloseButton";var k2e=e=>g.jsx(Ba,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z"})}),E2e=e=>g.jsx(Ba,{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z"})});function EO(e,t,n,r){S.useEffect(()=>{var i;if(!e.current||!r)return;const o=(i=e.current.ownerDocument.defaultView)!=null?i:window,a=Array.isArray(t)?t:[t],s=new o.MutationObserver(l=>{for(const u of l)u.type==="attributes"&&u.attributeName&&a.includes(u.attributeName)&&n(u)});return s.observe(e.current,{attributes:!0,attributeFilter:a}),()=>s.disconnect()})}function P2e(e,t){const n=ei(e);S.useEffect(()=>{let r=null;const i=()=>n();return t!==null&&(r=window.setInterval(i,t)),()=>{r&&window.clearInterval(r)}},[t,n])}var T2e=50,PO=300;function M2e(e,t){const[n,r]=S.useState(!1),[i,o]=S.useState(null),[a,s]=S.useState(!0),l=S.useRef(null),u=()=>clearTimeout(l.current);P2e(()=>{i==="increment"&&e(),i==="decrement"&&t()},n?T2e:null);const d=S.useCallback(()=>{a&&e(),l.current=setTimeout(()=>{s(!1),r(!0),o("increment")},PO)},[e,a]),h=S.useCallback(()=>{a&&t(),l.current=setTimeout(()=>{s(!1),r(!0),o("decrement")},PO)},[t,a]),m=S.useCallback(()=>{s(!0),r(!1),u()},[]);return S.useEffect(()=>()=>u(),[]),{up:d,down:h,stop:m,isSpinning:n}}var L2e=/^[Ee0-9+\-.]$/;function A2e(e){return L2e.test(e)}function O2e(e,t){if(e.key==null)return!0;const n=e.ctrlKey||e.altKey||e.metaKey;return!(e.key.length===1)||n?!0:t(e.key)}function I2e(e={}){const{focusInputOnChange:t=!0,clampValueOnBlur:n=!0,keepWithinRange:r=!0,min:i=Number.MIN_SAFE_INTEGER,max:o=Number.MAX_SAFE_INTEGER,step:a=1,isReadOnly:s,isDisabled:l,isRequired:u,isInvalid:d,pattern:h="[0-9]*(.[0-9]+)?",inputMode:m="decimal",allowMouseWheel:y,id:b,onChange:w,precision:E,name:_,"aria-describedby":k,"aria-label":P,"aria-labelledby":L,onFocus:O,onBlur:D,onInvalid:R,getAriaValueText:N,isValidCharacter:W,format:B,parse:K,...ne}=e,z=ei(O),$=ei(D),U=ei(R),X=ei(W??A2e),Q=ei(N),G=s0e(e),{update:Y,increment:ee,decrement:fe}=G,[ke,we]=S.useState(!1),xe=!(s||l),Ce=S.useRef(null),Se=S.useRef(null),Qe=S.useRef(null),tt=S.useRef(null),it=S.useCallback(Me=>Me.split("").filter(X).join(""),[X]),xt=S.useCallback(Me=>{var _t;return(_t=K==null?void 0:K(Me))!=null?_t:Me},[K]),Be=S.useCallback(Me=>{var _t;return((_t=B==null?void 0:B(Me))!=null?_t:Me).toString()},[B]);oc(()=>{(G.valueAsNumber>o||G.valueAsNumber{if(!Ce.current)return;if(Ce.current.value!=G.value){const _t=xt(Ce.current.value);G.setValue(it(_t))}},[xt,it]);const Le=S.useCallback((Me=a)=>{xe&&ee(Me)},[ee,xe,a]),St=S.useCallback((Me=a)=>{xe&&fe(Me)},[fe,xe,a]),Fe=M2e(Le,St);EO(Qe,"disabled",Fe.stop,Fe.isSpinning),EO(tt,"disabled",Fe.stop,Fe.isSpinning);const at=S.useCallback(Me=>{if(Me.nativeEvent.isComposing)return;const Wt=xt(Me.currentTarget.value);Y(it(Wt)),Se.current={start:Me.currentTarget.selectionStart,end:Me.currentTarget.selectionEnd}},[Y,it,xt]),$t=S.useCallback(Me=>{var _t,Wt,Bn;z==null||z(Me),Se.current&&(Me.target.selectionStart=(Wt=Se.current.start)!=null?Wt:(_t=Me.currentTarget.value)==null?void 0:_t.length,Me.currentTarget.selectionEnd=(Bn=Se.current.end)!=null?Bn:Me.currentTarget.selectionStart)},[z]),vt=S.useCallback(Me=>{if(Me.nativeEvent.isComposing)return;O2e(Me,X)||Me.preventDefault();const _t=Jt(Me)*a,Wt=Me.key,qe={ArrowUp:()=>Le(_t),ArrowDown:()=>St(_t),Home:()=>Y(i),End:()=>Y(o)}[Wt];qe&&(Me.preventDefault(),qe(Me))},[X,a,Le,St,Y,i,o]),Jt=Me=>{let _t=1;return(Me.metaKey||Me.ctrlKey)&&(_t=.1),Me.shiftKey&&(_t=10),_t},sn=S.useMemo(()=>{const Me=Q==null?void 0:Q(G.value);if(Me!=null)return Me;const _t=G.value.toString();return _t||void 0},[G.value,Q]),se=S.useCallback(()=>{let Me=G.value;if(G.value==="")return;/^[eE]/.test(G.value.toString())?G.setValue(""):(G.valueAsNumbero&&(Me=o),G.cast(Me))},[G,o,i]),Ie=S.useCallback(()=>{we(!1),n&&se()},[n,we,se]),He=S.useCallback(()=>{t&&requestAnimationFrame(()=>{var Me;(Me=Ce.current)==null||Me.focus()})},[t]),Ve=S.useCallback(Me=>{Me.preventDefault(),Fe.up(),He()},[He,Fe]),ye=S.useCallback(Me=>{Me.preventDefault(),Fe.down(),He()},[He,Fe]);Fh(()=>Ce.current,"wheel",Me=>{var _t,Wt;const qe=((Wt=(_t=Ce.current)==null?void 0:_t.ownerDocument)!=null?Wt:document).activeElement===Ce.current;if(!y||!qe)return;Me.preventDefault();const gt=Jt(Me)*a,Wr=Math.sign(Me.deltaY);Wr===-1?Le(gt):Wr===1&&St(gt)},{passive:!1});const je=S.useCallback((Me={},_t=null)=>{const Wt=l||r&&G.isAtMax;return{...Me,ref:Dn(_t,Qe),role:"button",tabIndex:-1,onPointerDown:ht(Me.onPointerDown,Bn=>{Bn.button!==0||Wt||Ve(Bn)}),onPointerLeave:ht(Me.onPointerLeave,Fe.stop),onPointerUp:ht(Me.onPointerUp,Fe.stop),disabled:Wt,"aria-disabled":Gu(Wt)}},[G.isAtMax,r,Ve,Fe.stop,l]),yt=S.useCallback((Me={},_t=null)=>{const Wt=l||r&&G.isAtMin;return{...Me,ref:Dn(_t,tt),role:"button",tabIndex:-1,onPointerDown:ht(Me.onPointerDown,Bn=>{Bn.button!==0||Wt||ye(Bn)}),onPointerLeave:ht(Me.onPointerLeave,Fe.stop),onPointerUp:ht(Me.onPointerUp,Fe.stop),disabled:Wt,"aria-disabled":Gu(Wt)}},[G.isAtMin,r,ye,Fe.stop,l]),Lt=S.useCallback((Me={},_t=null)=>{var Wt,Bn,qe,gt;return{name:_,inputMode:m,type:"text",pattern:h,"aria-labelledby":L,"aria-label":P,"aria-describedby":k,id:b,disabled:l,...Me,readOnly:(Wt=Me.readOnly)!=null?Wt:s,"aria-readonly":(Bn=Me.readOnly)!=null?Bn:s,"aria-required":(qe=Me.required)!=null?qe:u,required:(gt=Me.required)!=null?gt:u,ref:Dn(Ce,_t),value:Be(G.value),role:"spinbutton","aria-valuemin":i,"aria-valuemax":o,"aria-valuenow":Number.isNaN(G.valueAsNumber)?void 0:G.valueAsNumber,"aria-invalid":Gu(d??G.isOutOfRange),"aria-valuetext":sn,autoComplete:"off",autoCorrect:"off",onChange:ht(Me.onChange,at),onKeyDown:ht(Me.onKeyDown,vt),onFocus:ht(Me.onFocus,$t,()=>we(!0)),onBlur:ht(Me.onBlur,$,Ie)}},[_,m,h,L,P,Be,k,b,l,u,s,d,G.value,G.valueAsNumber,G.isOutOfRange,i,o,sn,at,vt,$t,$,Ie]);return{value:Be(G.value),valueAsNumber:G.valueAsNumber,isFocused:ke,isDisabled:l,isReadOnly:s,getIncrementButtonProps:je,getDecrementButtonProps:yt,getInputProps:Lt,htmlProps:ne}}var[R2e,Uw]=Ln({name:"NumberInputStylesContext",errorMessage:`useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[D2e,G8]=Ln({name:"NumberInputContext",errorMessage:"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within "}),q8=Xe(function(t,n){const r=Zi("NumberInput",t),i=pr(t),o=x8(i),{htmlProps:a,...s}=I2e(o),l=S.useMemo(()=>s,[s]);return g.jsx(D2e,{value:l,children:g.jsx(R2e,{value:r,children:g.jsx(Ne.div,{...a,ref:n,className:bt("chakra-numberinput",t.className),__css:{position:"relative",zIndex:0,...r.root}})})})});q8.displayName="NumberInput";var K8=Xe(function(t,n){const r=Uw();return g.jsx(Ne.div,{"aria-hidden":!0,ref:n,...t,__css:{display:"flex",flexDirection:"column",position:"absolute",top:"0",insetEnd:"0px",margin:"1px",height:"calc(100% - 2px)",zIndex:1,...r.stepperGroup}})});K8.displayName="NumberInputStepper";var Y8=Xe(function(t,n){const{getInputProps:r}=G8(),i=r(t,n),o=Uw();return g.jsx(Ne.input,{...i,className:bt("chakra-numberinput__field",t.className),__css:{width:"100%",...o.field}})});Y8.displayName="NumberInputField";var QH=Ne("div",{baseStyle:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,transitionProperty:"common",transitionDuration:"normal",userSelect:"none",cursor:"pointer",lineHeight:"normal"}}),X8=Xe(function(t,n){var r;const i=Uw(),{getDecrementButtonProps:o}=G8(),a=o(t,n);return g.jsx(QH,{...a,__css:i.stepper,children:(r=t.children)!=null?r:g.jsx(k2e,{})})});X8.displayName="NumberDecrementStepper";var Z8=Xe(function(t,n){var r;const{getIncrementButtonProps:i}=G8(),o=i(t,n),a=Uw();return g.jsx(QH,{...o,__css:a.stepper,children:(r=t.children)!=null?r:g.jsx(E2e,{})})});Z8.displayName="NumberIncrementStepper";var[j2e,Gw]=Ln({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[N2e,JH]=Ln({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function Q8(e){const t=S.Children.only(e.children),{getTriggerProps:n}=Gw();return S.cloneElement(t,n(t.props,t.ref))}Q8.displayName="PopoverTrigger";var Ag={click:"click",hover:"hover"};function $2e(e={}){const{closeOnBlur:t=!0,closeOnEsc:n=!0,initialFocusRef:r,id:i,returnFocusOnClose:o=!0,autoFocus:a=!0,arrowSize:s,arrowShadowColor:l,trigger:u=Ag.click,openDelay:d=200,closeDelay:h=200,isLazy:m,lazyBehavior:y="unmount",computePositionOnMount:b,...w}=e,{isOpen:E,onClose:_,onOpen:k,onToggle:P}=V8(e),L=S.useRef(null),O=S.useRef(null),D=S.useRef(null),R=S.useRef(!1),N=S.useRef(!1);E&&(N.current=!0);const[W,B]=S.useState(!1),[K,ne]=S.useState(!1),z=S.useId(),$=i??z,[U,X,Q,G]=["popover-trigger","popover-content","popover-header","popover-body"].map(at=>`${at}-${$}`),{referenceRef:Y,getArrowProps:ee,getPopperProps:fe,getArrowInnerProps:ke,forceUpdate:we}=W8({...w,enabled:E||!!b}),xe=AH({isOpen:E,ref:D});p0e({enabled:E,ref:O}),xH(D,{focusRef:O,visible:E,shouldFocus:o&&u===Ag.click}),Kve(D,{focusRef:r,visible:E,shouldFocus:a&&u===Ag.click});const Ce=U8({wasSelected:N.current,enabled:m,mode:y,isSelected:xe.present}),Se=S.useCallback((at={},$t=null)=>{const vt={...at,style:{...at.style,transformOrigin:ai.transformOrigin.varRef,[ai.arrowSize.var]:s?`${s}px`:void 0,[ai.arrowShadowColor.var]:l},ref:Dn(D,$t),children:Ce?at.children:null,id:X,tabIndex:-1,role:"dialog",onKeyDown:ht(at.onKeyDown,Jt=>{n&&Jt.key==="Escape"&&_()}),onBlur:ht(at.onBlur,Jt=>{const sn=TO(Jt),se=kC(D.current,sn),Ie=kC(O.current,sn);E&&t&&(!se&&!Ie)&&_()}),"aria-labelledby":W?Q:void 0,"aria-describedby":K?G:void 0};return u===Ag.hover&&(vt.role="tooltip",vt.onMouseEnter=ht(at.onMouseEnter,()=>{R.current=!0}),vt.onMouseLeave=ht(at.onMouseLeave,Jt=>{Jt.nativeEvent.relatedTarget!==null&&(R.current=!1,setTimeout(()=>_(),h))})),vt},[Ce,X,W,Q,K,G,u,n,_,E,t,h,l,s]),Qe=S.useCallback((at={},$t=null)=>fe({...at,style:{visibility:E?"visible":"hidden",...at.style}},$t),[E,fe]),tt=S.useCallback((at,$t=null)=>({...at,ref:Dn($t,L,Y)}),[L,Y]),it=S.useRef(),xt=S.useRef(),Be=S.useCallback(at=>{L.current==null&&Y(at)},[Y]),Le=S.useCallback((at={},$t=null)=>{const vt={...at,ref:Dn(O,$t,Be),id:U,"aria-haspopup":"dialog","aria-expanded":E,"aria-controls":X};return u===Ag.click&&(vt.onClick=ht(at.onClick,P)),u===Ag.hover&&(vt.onFocus=ht(at.onFocus,()=>{it.current===void 0&&k()}),vt.onBlur=ht(at.onBlur,Jt=>{const sn=TO(Jt),se=!kC(D.current,sn);E&&t&&se&&_()}),vt.onKeyDown=ht(at.onKeyDown,Jt=>{Jt.key==="Escape"&&_()}),vt.onMouseEnter=ht(at.onMouseEnter,()=>{R.current=!0,it.current=window.setTimeout(()=>k(),d)}),vt.onMouseLeave=ht(at.onMouseLeave,()=>{R.current=!1,it.current&&(clearTimeout(it.current),it.current=void 0),xt.current=window.setTimeout(()=>{R.current===!1&&_()},h)})),vt},[U,E,X,u,Be,P,k,t,_,d,h]);S.useEffect(()=>()=>{it.current&&clearTimeout(it.current),xt.current&&clearTimeout(xt.current)},[]);const St=S.useCallback((at={},$t=null)=>({...at,id:Q,ref:Dn($t,vt=>{B(!!vt)})}),[Q]),Fe=S.useCallback((at={},$t=null)=>({...at,id:G,ref:Dn($t,vt=>{ne(!!vt)})}),[G]);return{forceUpdate:we,isOpen:E,onAnimationComplete:xe.onComplete,onClose:_,getAnchorProps:tt,getArrowProps:ee,getArrowInnerProps:ke,getPopoverPositionerProps:Qe,getPopoverProps:Se,getTriggerProps:Le,getHeaderProps:St,getBodyProps:Fe}}function kC(e,t){return e===t||(e==null?void 0:e.contains(t))}function TO(e){var t;const n=e.currentTarget.ownerDocument.activeElement;return(t=e.relatedTarget)!=null?t:n}function J8(e){const t=Zi("Popover",e),{children:n,...r}=pr(e),i=t2(),o=$2e({...r,direction:i.direction});return g.jsx(j2e,{value:o,children:g.jsx(N2e,{value:t,children:os(n,{isOpen:o.isOpen,onClose:o.onClose,forceUpdate:o.forceUpdate})})})}J8.displayName="Popover";function eE(e){var t;const{bg:n,bgColor:r,backgroundColor:i,shadow:o,boxShadow:a}=e,{getArrowProps:s,getArrowInnerProps:l}=Gw(),u=JH(),d=(t=n??r)!=null?t:i,h=o??a;return g.jsx(Ne.div,{...s(),className:"chakra-popover__arrow-positioner",children:g.jsx(Ne.div,{className:bt("chakra-popover__arrow",e.className),...l(e),__css:{"--popper-arrow-bg":d?`colors.${d}, ${d}`:void 0,"--popper-arrow-shadow":h?`shadows.${h}, ${h}`:void 0,...u.arrow}})})}eE.displayName="PopoverArrow";function F2e(e){if(e)return{enter:{...e.enter,visibility:"visible"},exit:{...e.exit,transitionEnd:{visibility:"hidden"}}}}var B2e={exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}},z2e=Ne(uu.section),eW=Xe(function(t,n){const{variants:r=B2e,...i}=t,{isOpen:o}=Gw();return g.jsx(z2e,{ref:n,variants:F2e(r),initial:!1,animate:o?"enter":"exit",...i})});eW.displayName="PopoverTransition";var tE=Xe(function(t,n){const{rootProps:r,motionProps:i,...o}=t,{getPopoverProps:a,getPopoverPositionerProps:s,onAnimationComplete:l}=Gw(),u=JH(),d={position:"relative",display:"flex",flexDirection:"column",...u.content};return g.jsx(Ne.div,{...s(r),__css:u.popper,className:"chakra-popover__popper",children:g.jsx(eW,{...i,...a(o,n),onAnimationComplete:kw(l,o.onAnimationComplete),className:bt("chakra-popover__content",t.className),__css:d})})});tE.displayName="PopoverContent";function H2e(e,t,n){return(e-t)*100/(n-t)}af({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});af({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var W2e=af({"0%":{left:"-40%"},"100%":{left:"100%"}}),V2e=af({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function U2e(e){const{value:t=0,min:n,max:r,valueText:i,getValueText:o,isIndeterminate:a,role:s="progressbar"}=e,l=H2e(t,n,r);return{bind:{"data-indeterminate":a?"":void 0,"aria-valuemax":r,"aria-valuemin":n,"aria-valuenow":a?void 0:t,"aria-valuetext":(()=>{if(t!=null)return typeof o=="function"?o(t,l):i})(),role:s},percent:l,value:t}}var[G2e,q2e]=Ln({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),K2e=Xe((e,t)=>{const{min:n,max:r,value:i,isIndeterminate:o,role:a,...s}=e,l=U2e({value:i,min:n,max:r,isIndeterminate:o,role:a}),d={height:"100%",...q2e().filledTrack};return g.jsx(Ne.div,{ref:t,style:{width:`${l.percent}%`,...s.style},...l.bind,...s,__css:d})}),tW=Xe((e,t)=>{var n;const{value:r,min:i=0,max:o=100,hasStripe:a,isAnimated:s,children:l,borderRadius:u,isIndeterminate:d,"aria-label":h,"aria-labelledby":m,"aria-valuetext":y,title:b,role:w,...E}=pr(e),_=Zi("Progress",e),k=u??((n=_.track)==null?void 0:n.borderRadius),P={animation:`${V2e} 1s linear infinite`},D={...!d&&a&&s&&P,...d&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${W2e} 1s ease infinite normal none running`}},R={overflow:"hidden",position:"relative",..._.track};return g.jsx(Ne.div,{ref:t,borderRadius:k,__css:R,...E,children:g.jsxs(G2e,{value:_,children:[g.jsx(K2e,{"aria-label":h,"aria-labelledby":m,"aria-valuetext":y,min:i,max:o,value:r,isIndeterminate:d,css:D,borderRadius:k,title:b,role:w}),l]})})});tW.displayName="Progress";function Y2e(e){return e&&lo(e)&&lo(e.target)}function X2e(e={}){const{onChange:t,value:n,defaultValue:r,name:i,isDisabled:o,isFocusable:a,isNative:s,...l}=e,[u,d]=S.useState(r||""),h=typeof n<"u",m=h?n:u,y=S.useRef(null),b=S.useCallback(()=>{const O=y.current;if(!O)return;let D="input:not(:disabled):checked";const R=O.querySelector(D);if(R){R.focus();return}D="input:not(:disabled)";const N=O.querySelector(D);N==null||N.focus()},[]),E=`radio-${S.useId()}`,_=i||E,k=S.useCallback(O=>{const D=Y2e(O)?O.target.value:O;h||d(D),t==null||t(String(D))},[t,h]),P=S.useCallback((O={},D=null)=>({...O,ref:Dn(D,y),role:"radiogroup"}),[]),L=S.useCallback((O={},D=null)=>({...O,ref:D,name:_,[s?"checked":"isChecked"]:m!=null?O.value===m:void 0,onChange(N){k(N)},"data-radiogroup":!0}),[s,_,k,m]);return{getRootProps:P,getRadioProps:L,name:_,ref:y,focus:b,setValue:d,value:m,onChange:k,isDisabled:o,isFocusable:a,htmlProps:l}}var[Z2e,nW]=Ln({name:"RadioGroupContext",strict:!1}),jy=Xe((e,t)=>{const{colorScheme:n,size:r,variant:i,children:o,className:a,isDisabled:s,isFocusable:l,...u}=e,{value:d,onChange:h,getRootProps:m,name:y,htmlProps:b}=X2e(u),w=S.useMemo(()=>({name:y,size:r,onChange:h,colorScheme:n,value:d,variant:i,isDisabled:s,isFocusable:l}),[y,r,h,n,d,i,s,l]);return g.jsx(Z2e,{value:w,children:g.jsx(Ne.div,{...m(b,t),className:bt("chakra-radio-group",a),children:o})})});jy.displayName="RadioGroup";var Q2e={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"};function J2e(e={}){const{defaultChecked:t,isChecked:n,isFocusable:r,isDisabled:i,isReadOnly:o,isRequired:a,onChange:s,isInvalid:l,name:u,value:d,id:h,"data-radiogroup":m,"aria-describedby":y,...b}=e,w=`radio-${S.useId()}`,E=cp(),k=!!nW()||!!m;let L=!!E&&!k?E.id:w;L=h??L;const O=i??(E==null?void 0:E.isDisabled),D=o??(E==null?void 0:E.isReadOnly),R=a??(E==null?void 0:E.isRequired),N=l??(E==null?void 0:E.isInvalid),[W,B]=S.useState(!1),[K,ne]=S.useState(!1),[z,$]=S.useState(!1),[U,X]=S.useState(!1),[Q,G]=S.useState(Boolean(t)),Y=typeof n<"u",ee=Y?n:Q;S.useEffect(()=>Sz(B),[]);const fe=S.useCallback(Be=>{if(D||O){Be.preventDefault();return}Y||G(Be.target.checked),s==null||s(Be)},[Y,O,D,s]),ke=S.useCallback(Be=>{Be.key===" "&&X(!0)},[X]),we=S.useCallback(Be=>{Be.key===" "&&X(!1)},[X]),xe=S.useCallback((Be={},Le=null)=>({...Be,ref:Le,"data-active":Ht(U),"data-hover":Ht(z),"data-disabled":Ht(O),"data-invalid":Ht(N),"data-checked":Ht(ee),"data-focus":Ht(K),"data-focus-visible":Ht(K&&W),"data-readonly":Ht(D),"aria-hidden":!0,onMouseDown:ht(Be.onMouseDown,()=>X(!0)),onMouseUp:ht(Be.onMouseUp,()=>X(!1)),onMouseEnter:ht(Be.onMouseEnter,()=>$(!0)),onMouseLeave:ht(Be.onMouseLeave,()=>$(!1))}),[U,z,O,N,ee,K,D,W]),{onFocus:Ce,onBlur:Se}=E??{},Qe=S.useCallback((Be={},Le=null)=>{const St=O&&!r;return{...Be,id:L,ref:Le,type:"radio",name:u,value:d,onChange:ht(Be.onChange,fe),onBlur:ht(Se,Be.onBlur,()=>ne(!1)),onFocus:ht(Ce,Be.onFocus,()=>ne(!0)),onKeyDown:ht(Be.onKeyDown,ke),onKeyUp:ht(Be.onKeyUp,we),checked:ee,disabled:St,readOnly:D,required:R,"aria-invalid":Gu(N),"aria-disabled":Gu(St),"aria-required":Gu(R),"data-readonly":Ht(D),"aria-describedby":y,style:Q2e}},[O,r,L,u,d,fe,Se,Ce,ke,we,ee,D,R,N,y]);return{state:{isInvalid:N,isFocused:K,isChecked:ee,isActive:U,isHovered:z,isDisabled:O,isReadOnly:D,isRequired:R},getCheckboxProps:xe,getInputProps:Qe,getLabelProps:(Be={},Le=null)=>({...Be,ref:Le,onMouseDown:ht(Be.onMouseDown,MO),onTouchStart:ht(Be.onTouchStart,MO),"data-disabled":Ht(O),"data-checked":Ht(ee),"data-invalid":Ht(N)}),getRootProps:(Be,Le=null)=>({...Be,ref:Le,"data-disabled":Ht(O),"data-checked":Ht(ee),"data-invalid":Ht(N)}),htmlProps:b}}function MO(e){e.preventDefault(),e.stopPropagation()}function ebe(e,t){const n={},r={};for(const[i,o]of Object.entries(e))t.includes(i)?n[i]=o:r[i]=o;return[n,r]}var qo=Xe((e,t)=>{var n;const r=nW(),{onChange:i,value:o}=e,a=Zi("Radio",{...r,...e}),s=pr(e),{spacing:l="0.5rem",children:u,isDisabled:d=r==null?void 0:r.isDisabled,isFocusable:h=r==null?void 0:r.isFocusable,inputProps:m,...y}=s;let b=e.isChecked;(r==null?void 0:r.value)!=null&&o!=null&&(b=r.value===o);let w=i;r!=null&&r.onChange&&o!=null&&(w=kw(r.onChange,i));const E=(n=e==null?void 0:e.name)!=null?n:r==null?void 0:r.name,{getInputProps:_,getCheckboxProps:k,getLabelProps:P,getRootProps:L,htmlProps:O}=J2e({...y,isChecked:b,isFocusable:h,isDisabled:d,onChange:w,name:E}),[D,R]=ebe(O,yF),N=k(R),W=_(m,t),B=P(),K=Object.assign({},D,L()),ne={display:"inline-flex",alignItems:"center",verticalAlign:"top",cursor:"pointer",position:"relative",...a.container},z={display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,...a.control},$={userSelect:"none",marginStart:l,...a.label};return g.jsxs(Ne.label,{className:"chakra-radio",...K,__css:ne,children:[g.jsx("input",{className:"chakra-radio__input",...W}),g.jsx(Ne.span,{className:"chakra-radio__control",...N,__css:z}),u&&g.jsx(Ne.span,{className:"chakra-radio__label",...B,__css:$,children:u})]})});qo.displayName="Radio";var rW=Xe(function(t,n){const{children:r,placeholder:i,className:o,...a}=t;return g.jsxs(Ne.select,{...a,ref:n,className:bt("chakra-select",o),children:[i&&g.jsx("option",{value:"",children:i}),r]})});rW.displayName="SelectField";function tbe(e,t){const n={},r={};for(const[i,o]of Object.entries(e))t.includes(i)?n[i]=o:r[i]=o;return[n,r]}var iW=Xe((e,t)=>{var n;const r=Zi("Select",e),{rootProps:i,placeholder:o,icon:a,color:s,height:l,h:u,minH:d,minHeight:h,iconColor:m,iconSize:y,...b}=pr(e),[w,E]=tbe(b,yF),_=b8(E),k={width:"100%",height:"fit-content",position:"relative",color:s},P={paddingEnd:"2rem",...r.field,_focus:{zIndex:"unset",...(n=r.field)==null?void 0:n._focus}};return g.jsxs(Ne.div,{className:"chakra-select__wrapper",__css:k,...w,...i,children:[g.jsx(rW,{ref:t,height:u??l,minH:d??h,placeholder:o,..._,__css:P,children:e.children}),g.jsx(oW,{"data-disabled":Ht(_.disabled),...(m||s)&&{color:m||s},__css:r.icon,...y&&{fontSize:y},children:a})]})});iW.displayName="Select";var nbe=e=>g.jsx("svg",{viewBox:"0 0 24 24",...e,children:g.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),rbe=Ne("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),oW=e=>{const{children:t=g.jsx(nbe,{}),...n}=e,r=S.cloneElement(t,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return g.jsx(rbe,{...n,className:"chakra-select__icon-wrapper",children:S.isValidElement(t)?r:null})};oW.displayName="SelectIcon";var Og=e=>e?"":void 0,EC=e=>e?!0:void 0,g2=(...e)=>e.filter(Boolean).join(" ");function PC(...e){return function(n){e.some(r=>(r==null||r(n),n==null?void 0:n.defaultPrevented))}}function Jb(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}var oS={width:0,height:0},ex=e=>e||oS;function ibe(e){const{orientation:t,thumbPercents:n,thumbRects:r,isReversed:i}=e,o=w=>{var E;const _=(E=r[w])!=null?E:oS;return{position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none",...Jb({orientation:t,vertical:{bottom:`calc(${n[w]}% - ${_.height/2}px)`},horizontal:{left:`calc(${n[w]}% - ${_.width/2}px)`}})}},a=t==="vertical"?r.reduce((w,E)=>ex(w).height>ex(E).height?w:E,oS):r.reduce((w,E)=>ex(w).width>ex(E).width?w:E,oS),s={position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0,...Jb({orientation:t,vertical:a?{paddingLeft:a.width/2,paddingRight:a.width/2}:{},horizontal:a?{paddingTop:a.height/2,paddingBottom:a.height/2}:{}})},l={position:"absolute",...Jb({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}})},u=n.length===1,d=[0,i?100-n[0]:n[0]],h=u?d:n;let m=h[0];!u&&i&&(m=100-m);const y=Math.abs(h[h.length-1]-h[0]),b={...l,...Jb({orientation:t,vertical:i?{height:`${y}%`,top:`${m}%`}:{height:`${y}%`,bottom:`${m}%`},horizontal:i?{width:`${y}%`,right:`${m}%`}:{width:`${y}%`,left:`${m}%`}})};return{trackStyle:l,innerTrackStyle:b,rootStyle:s,getThumbStyle:o}}function obe(e){const{isReversed:t,direction:n,orientation:r}=e;return n==="ltr"||r==="vertical"?t:!t}function abe(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function sbe(e){const t=ube(e);return typeof t.PointerEvent<"u"&&e instanceof t.PointerEvent?e.pointerType==="mouse":e instanceof t.MouseEvent}function aW(e){return!!e.touches}function lbe(e){return aW(e)&&e.touches.length>1}function ube(e){var t;return(t=e.view)!=null?t:window}function cbe(e,t="page"){const n=e.touches[0]||e.changedTouches[0];return{x:n[`${t}X`],y:n[`${t}Y`]}}function dbe(e,t="page"){return{x:e[`${t}X`],y:e[`${t}Y`]}}function sW(e,t="page"){return aW(e)?cbe(e,t):dbe(e,t)}function fbe(e){return t=>{const n=sbe(t);(!n||n&&t.button===0)&&e(t)}}function hbe(e,t=!1){function n(i){e(i,{point:sW(i)})}return t?fbe(n):n}function aS(e,t,n,r){return abe(e,t,hbe(n,t==="pointerdown"),r)}var pbe=Object.defineProperty,gbe=(e,t,n)=>t in e?pbe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zs=(e,t,n)=>(gbe(e,typeof t!="symbol"?t+"":t,n),n),mbe=class{constructor(e,t,n){zs(this,"history",[]),zs(this,"startEvent",null),zs(this,"lastEvent",null),zs(this,"lastEventInfo",null),zs(this,"handlers",{}),zs(this,"removeListeners",()=>{}),zs(this,"threshold",3),zs(this,"win"),zs(this,"updatePoint",()=>{if(!(this.lastEvent&&this.lastEventInfo))return;const s=TC(this.lastEventInfo,this.history),l=this.startEvent!==null,u=xbe(s.offset,{x:0,y:0})>=this.threshold;if(!l&&!u)return;const{timestamp:d}=OL();this.history.push({...s.point,timestamp:d});const{onStart:h,onMove:m}=this.handlers;l||(h==null||h(this.lastEvent,s),this.startEvent=this.lastEvent),m==null||m(this.lastEvent,s)}),zs(this,"onPointerMove",(s,l)=>{this.lastEvent=s,this.lastEventInfo=l,Fce.update(this.updatePoint,!0)}),zs(this,"onPointerUp",(s,l)=>{const u=TC(l,this.history),{onEnd:d,onSessionEnd:h}=this.handlers;h==null||h(s,u),this.end(),!(!d||!this.startEvent)&&(d==null||d(s,u))});var r;if(this.win=(r=e.view)!=null?r:window,lbe(e))return;this.handlers=t,n&&(this.threshold=n),e.stopPropagation(),e.preventDefault();const i={point:sW(e)},{timestamp:o}=OL();this.history=[{...i.point,timestamp:o}];const{onSessionStart:a}=t;a==null||a(e,TC(i,this.history)),this.removeListeners=bbe(aS(this.win,"pointermove",this.onPointerMove),aS(this.win,"pointerup",this.onPointerUp),aS(this.win,"pointercancel",this.onPointerUp))}updateHandlers(e){this.handlers=e}end(){var e;(e=this.removeListeners)==null||e.call(this),Bce.update(this.updatePoint)}};function LO(e,t){return{x:e.x-t.x,y:e.y-t.y}}function TC(e,t){return{point:e.point,delta:LO(e.point,t[t.length-1]),offset:LO(e.point,t[0]),velocity:ybe(t,.1)}}var vbe=e=>e*1e3;function ybe(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=e[e.length-1];for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>vbe(t)));)n--;if(!r)return{x:0,y:0};const o=(i.timestamp-r.timestamp)/1e3;if(o===0)return{x:0,y:0};const a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function bbe(...e){return t=>e.reduce((n,r)=>r(n),t)}function MC(e,t){return Math.abs(e-t)}function AO(e){return"x"in e&&"y"in e}function xbe(e,t){if(typeof e=="number"&&typeof t=="number")return MC(e,t);if(AO(e)&&AO(t)){const n=MC(e.x,t.x),r=MC(e.y,t.y);return Math.sqrt(n**2+r**2)}return 0}function lW(e){const t=S.useRef(null);return t.current=e,t}function Sbe(e,t){const{onPan:n,onPanStart:r,onPanEnd:i,onPanSessionStart:o,onPanSessionEnd:a,threshold:s}=t,l=Boolean(n||r||i||o||a),u=S.useRef(null),d=lW({onSessionStart:o,onSessionEnd:a,onStart:r,onMove:n,onEnd(h,m){u.current=null,i==null||i(h,m)}});S.useEffect(()=>{var h;(h=u.current)==null||h.updateHandlers(d.current)}),S.useEffect(()=>{const h=e.current;if(!h||!l)return;function m(y){u.current=new mbe(y,d.current,s)}return aS(h,"pointerdown",m)},[e,l,d,s]),S.useEffect(()=>()=>{var h;(h=u.current)==null||h.end(),u.current=null},[])}function wbe(e,t){var n;if(!e){t(void 0);return}t({width:e.offsetWidth,height:e.offsetHeight});const r=(n=e.ownerDocument.defaultView)!=null?n:window,i=new r.ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const[a]=o;let s,l;if("borderBoxSize"in a){const u=a.borderBoxSize,d=Array.isArray(u)?u[0]:u;s=d.inlineSize,l=d.blockSize}else s=e.offsetWidth,l=e.offsetHeight;t({width:s,height:l})});return i.observe(e,{box:"border-box"}),()=>i.unobserve(e)}var Cbe=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:S.useEffect;function _be(e,t){var n,r;if(!e||!e.parentElement)return;const i=(r=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?r:window,o=new i.MutationObserver(()=>{t()});return o.observe(e.parentElement,{childList:!0}),()=>{o.disconnect()}}function kbe({getNodes:e,observeMutation:t=!0}){const[n,r]=S.useState([]),[i,o]=S.useState(0);return Cbe(()=>{const a=e(),s=a.map((l,u)=>wbe(l,d=>{r(h=>[...h.slice(0,u),d,...h.slice(u+1)])}));if(t){const l=a[0];s.push(_be(l,()=>{o(u=>u+1)}))}return()=>{s.forEach(l=>{l==null||l()})}},[i]),n}function Ebe(e){return typeof e=="object"&&e!==null&&"current"in e}function Pbe(e){const[t]=kbe({observeMutation:!1,getNodes(){return[Ebe(e)?e.current:e]}});return t}function Tbe(e){var t;const{min:n=0,max:r=100,onChange:i,value:o,defaultValue:a,isReversed:s,direction:l="ltr",orientation:u="horizontal",id:d,isDisabled:h,isReadOnly:m,onChangeStart:y,onChangeEnd:b,step:w=1,getAriaValueText:E,"aria-valuetext":_,"aria-label":k,"aria-labelledby":P,name:L,focusThumbOnChange:O=!0,...D}=e,R=ei(y),N=ei(b),W=ei(E),B=obe({isReversed:s,direction:l,orientation:u}),[K,ne]=g8({value:o,defaultValue:a??Lbe(n,r),onChange:i}),[z,$]=S.useState(!1),[U,X]=S.useState(!1),Q=!(h||m),G=(r-n)/10,Y=w||(r-n)/100,ee=tS(K,n,r),fe=r-ee+n,we=JA(B?fe:ee,n,r),xe=u==="vertical",Ce=lW({min:n,max:r,step:w,isDisabled:h,value:ee,isInteractive:Q,isReversed:B,isVertical:xe,eventSource:null,focusThumbOnChange:O,orientation:u}),Se=S.useRef(null),Qe=S.useRef(null),tt=S.useRef(null),it=S.useId(),xt=d??it,[Be,Le]=[`slider-thumb-${xt}`,`slider-track-${xt}`],St=S.useCallback(qe=>{var gt,Wr;if(!Se.current)return;const ar=Ce.current;ar.eventSource="pointer";const Wn=Se.current.getBoundingClientRect(),{clientX:ci,clientY:xs}=(Wr=(gt=qe.touches)==null?void 0:gt[0])!=null?Wr:qe,il=xe?Wn.bottom-xs:ci-Wn.left,yf=xe?Wn.height:Wn.width;let Ss=il/yf;B&&(Ss=1-Ss);let Qi=a0e(Ss,ar.min,ar.max);return ar.step&&(Qi=parseFloat(eO(Qi,ar.min,ar.step))),Qi=tS(Qi,ar.min,ar.max),Qi},[xe,B,Ce]),Fe=S.useCallback(qe=>{const gt=Ce.current;gt.isInteractive&&(qe=parseFloat(eO(qe,gt.min,Y)),qe=tS(qe,gt.min,gt.max),ne(qe))},[Y,ne,Ce]),at=S.useMemo(()=>({stepUp(qe=Y){const gt=B?ee-qe:ee+qe;Fe(gt)},stepDown(qe=Y){const gt=B?ee+qe:ee-qe;Fe(gt)},reset(){Fe(a||0)},stepTo(qe){Fe(qe)}}),[Fe,B,ee,Y,a]),$t=S.useCallback(qe=>{const gt=Ce.current,ar={ArrowRight:()=>at.stepUp(),ArrowUp:()=>at.stepUp(),ArrowLeft:()=>at.stepDown(),ArrowDown:()=>at.stepDown(),PageUp:()=>at.stepUp(G),PageDown:()=>at.stepDown(G),Home:()=>Fe(gt.min),End:()=>Fe(gt.max)}[qe.key];ar&&(qe.preventDefault(),qe.stopPropagation(),ar(qe),gt.eventSource="keyboard")},[at,Fe,G,Ce]),vt=(t=W==null?void 0:W(ee))!=null?t:_,Jt=Pbe(Qe),{getThumbStyle:sn,rootStyle:se,trackStyle:Ie,innerTrackStyle:He}=S.useMemo(()=>{const qe=Ce.current,gt=Jt??{width:0,height:0};return ibe({isReversed:B,orientation:qe.orientation,thumbRects:[gt],thumbPercents:[we]})},[B,Jt,we,Ce]),Ve=S.useCallback(()=>{Ce.current.focusThumbOnChange&&setTimeout(()=>{var gt;return(gt=Qe.current)==null?void 0:gt.focus()})},[Ce]);oc(()=>{const qe=Ce.current;Ve(),qe.eventSource==="keyboard"&&(N==null||N(qe.value))},[ee,N]);function ye(qe){const gt=St(qe);gt!=null&>!==Ce.current.value&&ne(gt)}Sbe(tt,{onPanSessionStart(qe){const gt=Ce.current;gt.isInteractive&&($(!0),Ve(),ye(qe),R==null||R(gt.value))},onPanSessionEnd(){const qe=Ce.current;qe.isInteractive&&($(!1),N==null||N(qe.value))},onPan(qe){Ce.current.isInteractive&&ye(qe)}});const je=S.useCallback((qe={},gt=null)=>({...qe,...D,ref:Dn(gt,tt),tabIndex:-1,"aria-disabled":EC(h),"data-focused":Og(U),style:{...qe.style,...se}}),[D,h,U,se]),yt=S.useCallback((qe={},gt=null)=>({...qe,ref:Dn(gt,Se),id:Le,"data-disabled":Og(h),style:{...qe.style,...Ie}}),[h,Le,Ie]),Lt=S.useCallback((qe={},gt=null)=>({...qe,ref:gt,style:{...qe.style,...He}}),[He]),Me=S.useCallback((qe={},gt=null)=>({...qe,ref:Dn(gt,Qe),role:"slider",tabIndex:Q?0:void 0,id:Be,"data-active":Og(z),"aria-valuetext":vt,"aria-valuemin":n,"aria-valuemax":r,"aria-valuenow":ee,"aria-orientation":u,"aria-disabled":EC(h),"aria-readonly":EC(m),"aria-label":k,"aria-labelledby":k?void 0:P,style:{...qe.style,...sn(0)},onKeyDown:PC(qe.onKeyDown,$t),onFocus:PC(qe.onFocus,()=>X(!0)),onBlur:PC(qe.onBlur,()=>X(!1))}),[Q,Be,z,vt,n,r,ee,u,h,m,k,P,sn,$t]),_t=S.useCallback((qe,gt=null)=>{const Wr=!(qe.valuer),ar=ee>=qe.value,Wn=JA(qe.value,n,r),ci={position:"absolute",pointerEvents:"none",...Mbe({orientation:u,vertical:{bottom:B?`${100-Wn}%`:`${Wn}%`},horizontal:{left:B?`${100-Wn}%`:`${Wn}%`}})};return{...qe,ref:gt,role:"presentation","aria-hidden":!0,"data-disabled":Og(h),"data-invalid":Og(!Wr),"data-highlighted":Og(ar),style:{...qe.style,...ci}}},[h,B,r,n,u,ee]),Wt=S.useCallback((qe={},gt=null)=>({...qe,ref:gt,type:"hidden",value:ee,name:L}),[L,ee]);return{state:{value:ee,isFocused:U,isDragging:z},actions:at,getRootProps:je,getTrackProps:yt,getInnerTrackProps:Lt,getThumbProps:Me,getMarkerProps:_t,getInputProps:Wt}}function Mbe(e){const{orientation:t,vertical:n,horizontal:r}=e;return t==="vertical"?n:r}function Lbe(e,t){return t"}),[Obe,Kw]=Ln({name:"SliderStylesContext",hookName:"useSliderStyles",providerName:""}),uW=Xe((e,t)=>{const n={orientation:"horizontal",...e},r=Zi("Slider",n),i=pr(n),{direction:o}=t2();i.direction=o;const{getInputProps:a,getRootProps:s,...l}=Tbe(i),u=s(),d=a({},t);return g.jsx(Abe,{value:l,children:g.jsx(Obe,{value:r,children:g.jsxs(Ne.div,{...u,className:g2("chakra-slider",n.className),__css:r.container,children:[n.children,g.jsx("input",{...d})]})})})});uW.displayName="Slider";var cW=Xe((e,t)=>{const{getThumbProps:n}=qw(),r=Kw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:g2("chakra-slider__thumb",e.className),__css:r.thumb})});cW.displayName="SliderThumb";var dW=Xe((e,t)=>{const{getTrackProps:n}=qw(),r=Kw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:g2("chakra-slider__track",e.className),__css:r.track})});dW.displayName="SliderTrack";var fW=Xe((e,t)=>{const{getInnerTrackProps:n}=qw(),r=Kw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:g2("chakra-slider__filled-track",e.className),__css:r.filledTrack})});fW.displayName="SliderFilledTrack";var lk=Xe((e,t)=>{const{getMarkerProps:n}=qw(),r=Kw(),i=n(e,t);return g.jsx(Ne.div,{...i,className:g2("chakra-slider__marker",e.className),__css:r.mark})});lk.displayName="SliderMark";var nE=Xe(function(t,n){const r=Zi("Switch",t),{spacing:i="0.5rem",children:o,...a}=pr(t),{state:s,getInputProps:l,getCheckboxProps:u,getRootProps:d,getLabelProps:h}=wz(a),m=S.useMemo(()=>({display:"inline-block",position:"relative",verticalAlign:"middle",lineHeight:0,...r.container}),[r.container]),y=S.useMemo(()=>({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer",...r.track}),[r.track]),b=S.useMemo(()=>({userSelect:"none",marginStart:i,...r.label}),[i,r.label]);return g.jsxs(Ne.label,{...d(),className:bt("chakra-switch",t.className),__css:m,children:[g.jsx("input",{className:"chakra-switch__input",...l({},n)}),g.jsx(Ne.span,{...u(),className:"chakra-switch__track",__css:y,children:g.jsx(Ne.span,{__css:r.thumb,className:"chakra-switch__thumb","data-checked":Ht(s.isChecked),"data-hover":Ht(s.isHovered)})}),o&&g.jsx(Ne.span,{className:"chakra-switch__label",...h(),__css:b,children:o})]})});nE.displayName="Switch";var[Ibe,Rbe,Dbe,jbe]=h8();function Nbe(e){var t;const{defaultIndex:n,onChange:r,index:i,isManual:o,isLazy:a,lazyBehavior:s="unmount",orientation:l="horizontal",direction:u="ltr",...d}=e,[h,m]=S.useState(n??0),[y,b]=g8({defaultValue:n??0,value:i,onChange:r});S.useEffect(()=>{i!=null&&m(i)},[i]);const w=Dbe(),E=S.useId();return{id:`tabs-${(t=e.id)!=null?t:E}`,selectedIndex:y,focusedIndex:h,setSelectedIndex:b,setFocusedIndex:m,isManual:o,isLazy:a,lazyBehavior:s,orientation:l,descendants:w,direction:u,htmlProps:d}}var[$be,Yw]=Ln({name:"TabsContext",errorMessage:"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within "});function Fbe(e){const{focusedIndex:t,orientation:n,direction:r}=Yw(),i=Rbe(),o=S.useCallback(a=>{const s=()=>{var k;const P=i.nextEnabled(t);P&&((k=P.node)==null||k.focus())},l=()=>{var k;const P=i.prevEnabled(t);P&&((k=P.node)==null||k.focus())},u=()=>{var k;const P=i.firstEnabled();P&&((k=P.node)==null||k.focus())},d=()=>{var k;const P=i.lastEnabled();P&&((k=P.node)==null||k.focus())},h=n==="horizontal",m=n==="vertical",y=a.key,b=r==="ltr"?"ArrowLeft":"ArrowRight",w=r==="ltr"?"ArrowRight":"ArrowLeft",_={[b]:()=>h&&l(),[w]:()=>h&&s(),ArrowDown:()=>m&&s(),ArrowUp:()=>m&&l(),Home:u,End:d}[y];_&&(a.preventDefault(),_(a))},[i,t,n,r]);return{...e,role:"tablist","aria-orientation":n,onKeyDown:ht(e.onKeyDown,o)}}function Bbe(e){const{isDisabled:t,isFocusable:n,...r}=e,{setSelectedIndex:i,isManual:o,id:a,setFocusedIndex:s,selectedIndex:l}=Yw(),{index:u,register:d}=jbe({disabled:t&&!n}),h=u===l,m=()=>{i(u)},y=()=>{s(u),!o&&!(t&&n)&&i(u)},b=bH({...r,ref:Dn(d,e.ref),isDisabled:t,isFocusable:n,onClick:ht(e.onClick,m)}),w="button";return{...b,id:hW(a,u),role:"tab",tabIndex:h?0:-1,type:w,"aria-selected":h,"aria-controls":pW(a,u),onFocus:t?void 0:ht(e.onFocus,y)}}var[zbe,Hbe]=Ln({});function Wbe(e){const t=Yw(),{id:n,selectedIndex:r}=t,o=y8(e.children).map((a,s)=>S.createElement(zbe,{key:s,value:{isSelected:s===r,id:pW(n,s),tabId:hW(n,s),selectedIndex:r}},a));return{...e,children:o}}function Vbe(e){const{children:t,...n}=e,{isLazy:r,lazyBehavior:i}=Yw(),{isSelected:o,id:a,tabId:s}=Hbe(),l=S.useRef(!1);o&&(l.current=!0);const u=U8({wasSelected:l.current,isSelected:o,enabled:r,mode:i});return{tabIndex:0,...n,children:u?t:null,role:"tabpanel","aria-labelledby":s,hidden:!o,id:a}}function hW(e,t){return`${e}--tab-${t}`}function pW(e,t){return`${e}--tabpanel-${t}`}var[Ube,Xw]=Ln({name:"TabsStylesContext",errorMessage:`useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),gW=Xe(function(t,n){const r=Zi("Tabs",t),{children:i,className:o,...a}=pr(t),{htmlProps:s,descendants:l,...u}=Nbe(a),d=S.useMemo(()=>u,[u]),{isFitted:h,...m}=s;return g.jsx(Ibe,{value:l,children:g.jsx($be,{value:d,children:g.jsx(Ube,{value:r,children:g.jsx(Ne.div,{className:bt("chakra-tabs",o),ref:n,...m,__css:r.root,children:i})})})})});gW.displayName="Tabs";var mW=Xe(function(t,n){const r=Fbe({...t,ref:n}),o={display:"flex",...Xw().tablist};return g.jsx(Ne.div,{...r,className:bt("chakra-tabs__tablist",t.className),__css:o})});mW.displayName="TabList";var vW=Xe(function(t,n){const r=Vbe({...t,ref:n}),i=Xw();return g.jsx(Ne.div,{outline:"0",...r,className:bt("chakra-tabs__tab-panel",t.className),__css:i.tabpanel})});vW.displayName="TabPanel";var yW=Xe(function(t,n){const r=Wbe(t),i=Xw();return g.jsx(Ne.div,{...r,width:"100%",ref:n,className:bt("chakra-tabs__tab-panels",t.className),__css:i.tabpanels})});yW.displayName="TabPanels";var bW=Xe(function(t,n){const r=Xw(),i=Bbe({...t,ref:n}),o={outline:"0",display:"flex",alignItems:"center",justifyContent:"center",...r.tab};return g.jsx(Ne.button,{...i,className:bt("chakra-tabs__tab",t.className),__css:o})});bW.displayName="Tab";function Gbe(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}var qbe=["h","minH","height","minHeight"],rE=Xe((e,t)=>{const n=lu("Textarea",e),{className:r,rows:i,...o}=pr(e),a=b8(o),s=i?Gbe(n,qbe):n;return g.jsx(Ne.textarea,{ref:t,rows:i,...a,className:bt("chakra-textarea",r),__css:s})});rE.displayName="Textarea";var Kbe={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},m3=e=>{var t;return((t=e.current)==null?void 0:t.ownerDocument)||document},uk=e=>{var t,n;return((n=(t=e.current)==null?void 0:t.ownerDocument)==null?void 0:n.defaultView)||window};function Ybe(e={}){const{openDelay:t=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:i,closeOnScroll:o,closeOnPointerDown:a=i,closeOnEsc:s=!0,onOpen:l,onClose:u,placement:d,id:h,isOpen:m,defaultIsOpen:y,arrowSize:b=10,arrowShadowColor:w,arrowPadding:E,modifiers:_,isDisabled:k,gutter:P,offset:L,direction:O,...D}=e,{isOpen:R,onOpen:N,onClose:W}=V8({isOpen:m,defaultIsOpen:y,onOpen:l,onClose:u}),{referenceRef:B,getPopperProps:K,getArrowInnerProps:ne,getArrowProps:z}=W8({enabled:R,placement:d,arrowPadding:E,modifiers:_,gutter:P,offset:L,direction:O}),$=S.useId(),X=`tooltip-${h??$}`,Q=S.useRef(null),G=S.useRef(),Y=S.useCallback(()=>{G.current&&(clearTimeout(G.current),G.current=void 0)},[]),ee=S.useRef(),fe=S.useCallback(()=>{ee.current&&(clearTimeout(ee.current),ee.current=void 0)},[]),ke=S.useCallback(()=>{fe(),W()},[W,fe]),we=Xbe(Q,ke),xe=S.useCallback(()=>{if(!k&&!G.current){we();const Le=uk(Q);G.current=Le.setTimeout(N,t)}},[we,k,N,t]),Ce=S.useCallback(()=>{Y();const Le=uk(Q);ee.current=Le.setTimeout(ke,n)},[n,ke,Y]),Se=S.useCallback(()=>{R&&r&&Ce()},[r,Ce,R]),Qe=S.useCallback(()=>{R&&a&&Ce()},[a,Ce,R]),tt=S.useCallback(Le=>{R&&Le.key==="Escape"&&Ce()},[R,Ce]);Fh(()=>m3(Q),"keydown",s?tt:void 0),Fh(()=>m3(Q),"scroll",()=>{R&&o&&ke()}),S.useEffect(()=>{k&&(Y(),R&&W())},[k,R,W,Y]),S.useEffect(()=>()=>{Y(),fe()},[Y,fe]),Fh(()=>Q.current,"pointerleave",Ce);const it=S.useCallback((Le={},St=null)=>({...Le,ref:Dn(Q,St,B),onPointerEnter:ht(Le.onPointerEnter,at=>{at.pointerType!=="touch"&&xe()}),onClick:ht(Le.onClick,Se),onPointerDown:ht(Le.onPointerDown,Qe),onFocus:ht(Le.onFocus,xe),onBlur:ht(Le.onBlur,Ce),"aria-describedby":R?X:void 0}),[xe,Ce,Qe,R,X,Se,B]),xt=S.useCallback((Le={},St=null)=>K({...Le,style:{...Le.style,[ai.arrowSize.var]:b?`${b}px`:void 0,[ai.arrowShadowColor.var]:w}},St),[K,b,w]),Be=S.useCallback((Le={},St=null)=>{const Fe={...Le.style,position:"relative",transformOrigin:ai.transformOrigin.varRef};return{ref:St,...D,...Le,id:X,role:"tooltip",style:Fe}},[D,X]);return{isOpen:R,show:xe,hide:Ce,getTriggerProps:it,getTooltipProps:Be,getTooltipPositionerProps:xt,getArrowProps:z,getArrowInnerProps:ne}}var LC="chakra-ui:close-tooltip";function Xbe(e,t){return S.useEffect(()=>{const n=m3(e);return n.addEventListener(LC,t),()=>n.removeEventListener(LC,t)},[t,e]),()=>{const n=m3(e),r=uk(e);n.dispatchEvent(new r.CustomEvent(LC))}}function Zbe(e,t=[]){const n=Object.assign({},e);for(const r of t)r in n&&delete n[r];return n}function Qbe(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}var Jbe=Ne(uu.div),ui=Xe((e,t)=>{var n,r;const i=lu("Tooltip",e),o=pr(e),a=t2(),{children:s,label:l,shouldWrapChildren:u,"aria-label":d,hasArrow:h,bg:m,portalProps:y,background:b,backgroundColor:w,bgColor:E,motionProps:_,...k}=o,P=(r=(n=b??w)!=null?n:m)!=null?r:E;if(P){i.bg=P;const K=sie(a,"colors",P);i[ai.arrowBg.var]=K}const L=Ybe({...k,direction:a.direction}),O=typeof s=="string"||u;let D;if(O)D=g.jsx(Ne.span,{display:"inline-block",tabIndex:0,...L.getTriggerProps(),children:s});else{const K=S.Children.only(s);D=S.cloneElement(K,L.getTriggerProps(K.props,K.ref))}const R=!!d,N=L.getTooltipProps({},t),W=R?Zbe(N,["role","id"]):N,B=Qbe(N,["role","id"]);return l?g.jsxs(g.Fragment,{children:[D,g.jsx(up,{children:L.isOpen&&g.jsx(h0,{...y,children:g.jsx(Ne.div,{...L.getTooltipPositionerProps(),__css:{zIndex:i.zIndex,pointerEvents:"none"},children:g.jsxs(Jbe,{variants:Kbe,initial:"exit",animate:"enter",exit:"exit",..._,...W,__css:i,children:[l,R&&g.jsx(Ne.span,{srOnly:!0,...B,children:d}),h&&g.jsx(Ne.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:g.jsx(Ne.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:i.bg}})})]})})})})]}):g.jsx(g.Fragment,{children:s})});ui.displayName="Tooltip";var ck={},OO=Js;ck.createRoot=OO.createRoot,ck.hydrateRoot=OO.hydrateRoot;var dk={},exe={get exports(){return dk},set exports(e){dk=e}},xW={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var n0=S;function txe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var nxe=typeof Object.is=="function"?Object.is:txe,rxe=n0.useState,ixe=n0.useEffect,oxe=n0.useLayoutEffect,axe=n0.useDebugValue;function sxe(e,t){var n=t(),r=rxe({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return oxe(function(){i.value=n,i.getSnapshot=t,AC(i)&&o({inst:i})},[e,n,t]),ixe(function(){return AC(i)&&o({inst:i}),e(function(){AC(i)&&o({inst:i})})},[e]),axe(n),n}function AC(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nxe(e,n)}catch{return!0}}function lxe(e,t){return t()}var uxe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?lxe:sxe;xW.useSyncExternalStore=n0.useSyncExternalStore!==void 0?n0.useSyncExternalStore:uxe;(function(e){e.exports=xW})(exe);var fk={},cxe={get exports(){return fk},set exports(e){fk=e}},SW={};/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Zw=S,dxe=dk;function fxe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var hxe=typeof Object.is=="function"?Object.is:fxe,pxe=dxe.useSyncExternalStore,gxe=Zw.useRef,mxe=Zw.useEffect,vxe=Zw.useMemo,yxe=Zw.useDebugValue;SW.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=gxe(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=vxe(function(){function l(y){if(!u){if(u=!0,d=y,y=r(y),i!==void 0&&a.hasValue){var b=a.value;if(i(b,y))return h=b}return h=y}if(b=h,hxe(d,y))return b;var w=r(y);return i!==void 0&&i(b,w)?b:(d=y,h=w)}var u=!1,d,h,m=n===void 0?null:n;return[function(){return l(t())},m===null?void 0:function(){return l(m())}]},[t,n,r,i]);var s=pxe(e,o[0],o[1]);return mxe(function(){a.hasValue=!0,a.value=s},[s]),yxe(s),s};(function(e){e.exports=SW})(cxe);function bxe(e){e()}let wW=bxe;const xxe=e=>wW=e,Sxe=()=>wW,ef=S.createContext(null);function CW(){return S.useContext(ef)}const wxe=()=>{throw new Error("uSES not initialized!")};let _W=wxe;const Cxe=e=>{_W=e},_xe=(e,t)=>e===t;function kxe(e=ef){const t=e===ef?CW:()=>S.useContext(e);return function(r,i=_xe){const{store:o,subscription:a,getServerState:s}=t(),l=_W(a.addNestedSub,o.getState,s||o.getState,r,i);return S.useDebugValue(l),l}}const Exe=kxe();var IO={},Pxe={get exports(){return IO},set exports(e){IO=e}},Fn={};/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var iE=Symbol.for("react.element"),oE=Symbol.for("react.portal"),Qw=Symbol.for("react.fragment"),Jw=Symbol.for("react.strict_mode"),e4=Symbol.for("react.profiler"),t4=Symbol.for("react.provider"),n4=Symbol.for("react.context"),Txe=Symbol.for("react.server_context"),r4=Symbol.for("react.forward_ref"),i4=Symbol.for("react.suspense"),o4=Symbol.for("react.suspense_list"),a4=Symbol.for("react.memo"),s4=Symbol.for("react.lazy"),Mxe=Symbol.for("react.offscreen"),kW;kW=Symbol.for("react.module.reference");function vs(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case iE:switch(e=e.type,e){case Qw:case e4:case Jw:case i4:case o4:return e;default:switch(e=e&&e.$$typeof,e){case Txe:case n4:case r4:case s4:case a4:case t4:return e;default:return t}}case oE:return t}}}Fn.ContextConsumer=n4;Fn.ContextProvider=t4;Fn.Element=iE;Fn.ForwardRef=r4;Fn.Fragment=Qw;Fn.Lazy=s4;Fn.Memo=a4;Fn.Portal=oE;Fn.Profiler=e4;Fn.StrictMode=Jw;Fn.Suspense=i4;Fn.SuspenseList=o4;Fn.isAsyncMode=function(){return!1};Fn.isConcurrentMode=function(){return!1};Fn.isContextConsumer=function(e){return vs(e)===n4};Fn.isContextProvider=function(e){return vs(e)===t4};Fn.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===iE};Fn.isForwardRef=function(e){return vs(e)===r4};Fn.isFragment=function(e){return vs(e)===Qw};Fn.isLazy=function(e){return vs(e)===s4};Fn.isMemo=function(e){return vs(e)===a4};Fn.isPortal=function(e){return vs(e)===oE};Fn.isProfiler=function(e){return vs(e)===e4};Fn.isStrictMode=function(e){return vs(e)===Jw};Fn.isSuspense=function(e){return vs(e)===i4};Fn.isSuspenseList=function(e){return vs(e)===o4};Fn.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Qw||e===e4||e===Jw||e===i4||e===o4||e===Mxe||typeof e=="object"&&e!==null&&(e.$$typeof===s4||e.$$typeof===a4||e.$$typeof===t4||e.$$typeof===n4||e.$$typeof===r4||e.$$typeof===kW||e.getModuleId!==void 0)};Fn.typeOf=vs;(function(e){e.exports=Fn})(Pxe);function Lxe(){const e=Sxe();let t=null,n=null;return{clear(){t=null,n=null},notify(){e(()=>{let r=t;for(;r;)r.callback(),r=r.next})},get(){let r=[],i=t;for(;i;)r.push(i),i=i.next;return r},subscribe(r){let i=!0,o=n={callback:r,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){!i||t===null||(i=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}const RO={notify(){},get:()=>[]};function Axe(e,t){let n,r=RO;function i(h){return l(),r.subscribe(h)}function o(){r.notify()}function a(){d.onStateChange&&d.onStateChange()}function s(){return Boolean(n)}function l(){n||(n=t?t.addNestedSub(a):e.subscribe(a),r=Lxe())}function u(){n&&(n(),n=void 0,r.clear(),r=RO)}const d={addNestedSub:i,notifyNestedSubs:o,handleChangeWrapper:a,isSubscribed:s,trySubscribe:l,tryUnsubscribe:u,getListeners:()=>r};return d}const Oxe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Ixe=Oxe?S.useLayoutEffect:S.useEffect;function Rxe({store:e,context:t,children:n,serverState:r}){const i=S.useMemo(()=>{const s=Axe(e);return{store:e,subscription:s,getServerState:r?()=>r:void 0}},[e,r]),o=S.useMemo(()=>e.getState(),[e]);Ixe(()=>{const{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==e.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]);const a=t||ef;return Ke.createElement(a.Provider,{value:i},n)}function EW(e=ef){const t=e===ef?CW:()=>S.useContext(e);return function(){const{store:r}=t();return r}}const Dxe=EW();function jxe(e=ef){const t=e===ef?Dxe:EW(e);return function(){return t().dispatch}}const Nxe=jxe();Cxe(fk.useSyncExternalStoreWithSelector);xxe(Js.unstable_batchedUpdates);function sS(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?sS=function(n){return typeof n}:sS=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},sS(e)}function $xe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DO(e,t){for(var n=0;n1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:aE(e)?2:sE(e)?3:0}function Im(e,t){return x0(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Hxe(e,t){return x0(e)===2?e.get(t):e[t]}function TW(e,t,n){var r=x0(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function MW(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function aE(e){return Kxe&&e instanceof Map}function sE(e){return Yxe&&e instanceof Set}function gh(e){return e.o||e.t}function lE(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=AW(e);delete t[br];for(var n=Rm(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=Wxe),Object.freeze(e),t&&tp(e,function(n,r){return uE(r,!0)},!0)),e}function Wxe(){Ks(2)}function cE(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function eu(e){var t=yk[e];return t||Ks(18,e),t}function Vxe(e,t){yk[e]||(yk[e]=t)}function gk(){return Ny}function OC(e,t){t&&(eu("Patches"),e.u=[],e.s=[],e.v=t)}function v3(e){mk(e),e.p.forEach(Uxe),e.p=null}function mk(e){e===Ny&&(Ny=e.l)}function jO(e){return Ny={p:[],l:Ny,h:e,m:!0,_:0}}function Uxe(e){var t=e[br];t.i===0||t.i===1?t.j():t.O=!0}function IC(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||eu("ES5").S(t,e,r),r?(n[br].P&&(v3(t),Ks(4)),lc(e)&&(e=y3(t,e),t.l||b3(t,e)),t.u&&eu("Patches").M(n[br].t,e,t.u,t.s)):e=y3(t,n,[]),v3(t),t.u&&t.v(t.u,t.s),e!==LW?e:void 0}function y3(e,t,n){if(cE(t))return t;var r=t[br];if(!r)return tp(t,function(s,l){return NO(e,r,t,s,l,n)},!0),t;if(r.A!==e)return t;if(!r.P)return b3(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=lE(r.k):r.o,o=i,a=!1;r.i===3&&(o=new Set(i),i.clear(),a=!0),tp(o,function(s,l){return NO(e,r,i,s,l,n,a)}),b3(e,i,!1),n&&e.u&&eu("Patches").N(r,n,e.u,e.s)}return r.o}function NO(e,t,n,r,i,o,a){if(tf(i)){var s=y3(e,i,o&&t&&t.i!==3&&!Im(t.R,r)?o.concat(r):void 0);if(TW(n,r,s),!tf(s))return;e.m=!1}else a&&n.add(i);if(lc(i)&&!cE(i)){if(!e.h.D&&e._<1)return;y3(e,i),t&&t.A.l||b3(e,i)}}function b3(e,t,n){n===void 0&&(n=!1),!e.l&&e.h.D&&e.m&&uE(t,n)}function RC(e,t){var n=e[br];return(n?gh(n):e)[t]}function $O(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function wd(e){e.P||(e.P=!0,e.l&&wd(e.l))}function DC(e){e.o||(e.o=lE(e.t))}function vk(e,t,n){var r=aE(t)?eu("MapSet").F(t,n):sE(t)?eu("MapSet").T(t,n):e.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:gk(),P:!1,I:!1,R:{},l:o,t:i,k:null,o:null,j:null,C:!1},l=s,u=$y;a&&(l=[s],u=v1);var d=Proxy.revocable(l,u),h=d.revoke,m=d.proxy;return s.k=m,s.j=h,m}(t,n):eu("ES5").J(t,n);return(n?n.A:gk()).p.push(r),r}function Gxe(e){return tf(e)||Ks(22,e),function t(n){if(!lc(n))return n;var r,i=n[br],o=x0(n);if(i){if(!i.P&&(i.i<4||!eu("ES5").K(i)))return i.t;i.I=!0,r=FO(n,o),i.I=!1}else r=FO(n,o);return tp(r,function(a,s){i&&Hxe(i.t,a)===s||TW(r,a,t(s))}),o===3?new Set(r):r}(e)}function FO(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return lE(e)}function qxe(){function e(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var l=this[br];return $y.get(l,o)},set:function(l){var u=this[br];$y.set(u,o,l)}},s}function t(o){for(var a=o.length-1;a>=0;a--){var s=o[a][br];if(!s.P)switch(s.i){case 5:r(s)&&wd(s);break;case 4:n(s)&&wd(s)}}}function n(o){for(var a=o.t,s=o.k,l=Rm(s),u=l.length-1;u>=0;u--){var d=l[u];if(d!==br){var h=a[d];if(h===void 0&&!Im(a,d))return!0;var m=s[d],y=m&&m[br];if(y?y.t!==h:!MW(m,h))return!0}}var b=!!a[br];return l.length!==Rm(a).length+(b?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var l=0;l1?_-1:0),P=1;P<_;P++)k[P-1]=arguments[P];return l.produce(w,function(L){var O;return(O=o).call.apply(O,[E,L].concat(k))})}}var u;if(typeof o!="function"&&Ks(6),a!==void 0&&typeof a!="function"&&Ks(7),lc(i)){var d=jO(r),h=vk(r,i,void 0),m=!0;try{u=o(h),m=!1}finally{m?v3(d):mk(d)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(w){return OC(d,a),IC(w,d)},function(w){throw v3(d),w}):(OC(d,a),IC(u,d))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===LW&&(u=void 0),r.D&&uE(u,!0),a){var y=[],b=[];eu("Patches").M(i,u,y,b),a(y,b)}return u}Ks(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var d=arguments.length,h=Array(d>1?d-1:0),m=1;m=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=eu("Patches").$;return tf(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},e}(),ja=new Zxe,OW=ja.produce;ja.produceWithPatches.bind(ja);ja.setAutoFreeze.bind(ja);ja.setUseProxies.bind(ja);ja.applyPatches.bind(ja);ja.createDraft.bind(ja);ja.finishDraft.bind(ja);function WO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function VO(e){for(var t=1;t"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(oo(1));return n(fE)(e,t)}if(typeof e!="function")throw new Error(oo(2));var i=e,o=t,a=[],s=a,l=!1;function u(){s===a&&(s=a.slice())}function d(){if(l)throw new Error(oo(3));return o}function h(w){if(typeof w!="function")throw new Error(oo(4));if(l)throw new Error(oo(5));var E=!0;return u(),s.push(w),function(){if(E){if(l)throw new Error(oo(6));E=!1,u();var k=s.indexOf(w);s.splice(k,1),a=null}}}function m(w){if(!Qxe(w))throw new Error(oo(7));if(typeof w.type>"u")throw new Error(oo(8));if(l)throw new Error(oo(9));try{l=!0,o=i(o,w)}finally{l=!1}for(var E=a=s,_=0;_"u")throw new Error(oo(12));if(typeof n(void 0,{type:x3.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(oo(13))})}function IW(e){for(var t=Object.keys(e),n={},r=0;r"u")throw u&&u.type,new Error(oo(14));h[y]=E,d=d||E!==w}return d=d||o.length!==Object.keys(l).length,d?h:l}}function S3(){for(var e=arguments.length,t=new Array(e),n=0;n-1){var u=n[l];return l>0&&(n.splice(l,1),n.unshift(u)),u.value}return w3}function i(s,l){r(s)===w3&&(n.unshift({key:s,value:l}),n.length>e&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var rSe=function(t,n){return t===n};function iSe(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o1?t-1:0),r=1;r0&&o[o.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]{Object.keys(D).forEach(function(R){P(R)&&d[R]!==D[R]&&m.indexOf(R)===-1&&m.push(R)}),Object.keys(d).forEach(function(R){D[R]===void 0&&P(R)&&m.indexOf(R)===-1&&d[R]!==void 0&&m.push(R)}),y===null&&(y=setInterval(_,i)),d=D},o)}function _(){if(m.length===0){y&&clearInterval(y),y=null;return}var D=m.shift(),R=r.reduce(function(N,W){return W.in(N,D,d)},d[D]);if(R!==void 0)try{h[D]=l(R)}catch(N){console.error("redux-persist/createPersistoid: error serializing state",N)}else delete h[D];m.length===0&&k()}function k(){Object.keys(h).forEach(function(D){d[D]===void 0&&delete h[D]}),b=s.setItem(a,l(h)).catch(L)}function P(D){return!(n&&n.indexOf(D)===-1&&D!=="_persist"||t&&t.indexOf(D)!==-1)}function L(D){u&&u(D)}var O=function(){for(;m.length!==0;)_();return b||Promise.resolve()};return{update:E,flush:O}}function $Se(e){return JSON.stringify(e)}function FSe(e){var t=e.transforms||[],n="".concat(e.keyPrefix!==void 0?e.keyPrefix:pE).concat(e.key),r=e.storage;e.debug;var i;return e.deserialize===!1?i=function(a){return a}:typeof e.deserialize=="function"?i=e.deserialize:i=BSe,r.getItem(n).then(function(o){if(o)try{var a={},s=i(o);return Object.keys(s).forEach(function(l){a[l]=t.reduceRight(function(u,d){return d.out(u,l,s)},i(s[l]))}),a}catch(l){throw l}else return})}function BSe(e){return JSON.parse(e)}function zSe(e){var t=e.storage,n="".concat(e.keyPrefix!==void 0?e.keyPrefix:pE).concat(e.key);return t.removeItem(n,HSe)}function HSe(e){}function QO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ru(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function USe(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var GSe=5e3;function qSe(e,t){var n=e.version!==void 0?e.version:ISe;e.debug;var r=e.stateReconciler===void 0?jSe:e.stateReconciler,i=e.getStoredState||FSe,o=e.timeout!==void 0?e.timeout:GSe,a=null,s=!1,l=!0,u=function(h){return h._persist.rehydrated&&a&&!l&&a.update(h),h};return function(d,h){var m=d||{},y=m._persist,b=VSe(m,["_persist"]),w=b;if(h.type===FW){var E=!1,_=function(N,W){E||(h.rehydrate(e.key,N,W),E=!0)};if(o&&setTimeout(function(){!E&&_(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))},o),l=!1,a||(a=NSe(e)),y)return Ru({},t(w,h),{_persist:y});if(typeof h.rehydrate!="function"||typeof h.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return h.register(e.key),i(e).then(function(R){var N=e.migrate||function(W,B){return Promise.resolve(W)};N(R,n).then(function(W){_(W)},function(W){_(void 0,W)})},function(R){_(void 0,R)}),Ru({},t(w,h),{_persist:{version:n,rehydrated:!1}})}else{if(h.type===BW)return s=!0,h.result(zSe(e)),Ru({},t(w,h),{_persist:y});if(h.type===NW)return h.result(a&&a.flush()),Ru({},t(w,h),{_persist:y});if(h.type===$W)l=!0;else if(h.type===gE){if(s)return Ru({},w,{_persist:Ru({},y,{rehydrated:!0})});if(h.key===e.key){var k=t(w,h),P=h.payload,L=r!==!1&&P!==void 0?r(P,d,k,e):k,O=Ru({},L,{_persist:Ru({},y,{rehydrated:!0})});return u(O)}}}if(!y)return t(d,h);var D=t(w,h);return D===w?d:u(Ru({},D,{_persist:y}))}}function JO(e){return XSe(e)||YSe(e)||KSe()}function KSe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function YSe(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)==="[object Arguments]")return Array.from(e)}function XSe(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0&&arguments[0]!==void 0?arguments[0]:HW,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case zW:return xk({},t,{registry:[].concat(JO(t.registry),[n.key])});case gE:var r=t.registry.indexOf(n.key),i=JO(t.registry);return i.splice(r,1),xk({},t,{registry:i,bootstrapped:i.length===0});default:return t}};function JSe(e,t,n){var r=n||!1,i=fE(QSe,HW,t&&t.enhancer?t.enhancer:void 0),o=function(u){i.dispatch({type:zW,key:u})},a=function(u,d,h){var m={type:gE,payload:d,err:h,key:u};e.dispatch(m),i.dispatch(m),r&&s.getState().bootstrapped&&(r(),r=!1)},s=xk({},i,{purge:function(){var u=[];return e.dispatch({type:BW,result:function(h){u.push(h)}}),Promise.all(u)},flush:function(){var u=[];return e.dispatch({type:NW,result:function(h){u.push(h)}}),Promise.all(u)},pause:function(){e.dispatch({type:$W})},persist:function(){e.dispatch({type:FW,register:o,rehydrate:a})}});return t&&t.manualPersist||s.persist(),s}var mE={},vE={};vE.__esModule=!0;vE.default=n3e;function dS(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?dS=function(n){return typeof n}:dS=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},dS(e)}function FC(){}var e3e={getItem:FC,setItem:FC,removeItem:FC};function t3e(e){if((typeof self>"u"?"undefined":dS(self))!=="object"||!(e in self))return!1;try{var t=self[e],n="redux-persist ".concat(e," test");t.setItem(n,"test"),t.getItem(n),t.removeItem(n)}catch{return!1}return!0}function n3e(e){var t="".concat(e,"Storage");return t3e(t)?self[t]:e3e}mE.__esModule=!0;mE.default=o3e;var r3e=i3e(vE);function i3e(e){return e&&e.__esModule?e:{default:e}}function o3e(e){var t=(0,r3e.default)(e);return{getItem:function(r){return new Promise(function(i,o){i(t.getItem(r))})},setItem:function(r,i){return new Promise(function(o,a){o(t.setItem(r,i))})},removeItem:function(r){return new Promise(function(i,o){i(t.removeItem(r))})}}}var WW=void 0,a3e=s3e(mE);function s3e(e){return e&&e.__esModule?e:{default:e}}var l3e=(0,a3e.default)("local");WW=l3e;var VW={},UW={},np={};Object.defineProperty(np,"__esModule",{value:!0});np.PLACEHOLDER_UNDEFINED=np.PACKAGE_NAME=void 0;np.PACKAGE_NAME="redux-deep-persist";np.PLACEHOLDER_UNDEFINED="@@placeholder/undefined";var yE={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigType=void 0,function(t){t[t.WHITELIST=0]="WHITELIST",t[t.BLACKLIST=1]="BLACKLIST"}(e.ConfigType||(e.ConfigType={}))})(yE);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getRootKeysGroup=e.throwError=e.configValidator=e.transformsValidator=e.singleTransformValidator=e.findDuplicatesAndSubsets=e.unique=e.preserveUndefined=e.mergeDeep=e.dissocPath=e.assocPath=e.path=e.difference=e.cloneDeep=e._cloneDeep=e.getCircularPath=e.isEmpty=e.isDate=e.isString=e.isIntegerString=e.isPlainObject=e.isArray=e.isLength=e.isObjectLike=void 0;const t=np,n=yE,r=function(z){return typeof z=="object"&&z!==null};e.isObjectLike=r;const i=function(z){return typeof z=="number"&&z>-1&&z%1==0&&z<=Number.MAX_SAFE_INTEGER};e.isLength=i,e.isArray=Array.isArray||function(z){return(0,e.isLength)(z&&z.length)&&Object.prototype.toString.call(z)==="[object Array]"};const o=function(z){return!!z&&typeof z=="object"&&!(0,e.isArray)(z)};e.isPlainObject=o;const a=function(z){return String(~~z)===z&&Number(z)>=0};e.isIntegerString=a;const s=function(z){return Object.prototype.toString.call(z)==="[object String]"};e.isString=s;const l=function(z){return Object.prototype.toString.call(z)==="[object Date]"};e.isDate=l;const u=function(z){return Object.keys(z).length===0};e.isEmpty=u;const d=Object.prototype.hasOwnProperty,h=function(z,$,U){U||(U=new Set([z])),$||($="");for(const X in z){const Q=$?`${$}.${X}`:X,G=z[X];if((0,e.isObjectLike)(G))return U.has(G)?`${$}.${X}:`:(U.add(G),(0,e.getCircularPath)(G,Q,U))}return null};e.getCircularPath=h;const m=function(z){if(!(0,e.isObjectLike)(z))return z;if((0,e.isDate)(z))return new Date(+z);const $=(0,e.isArray)(z)?[]:{};for(const U in z){const X=z[U];$[U]=(0,e._cloneDeep)(X)}return $};e._cloneDeep=m;const y=function(z){const $=(0,e.getCircularPath)(z);if($)throw new Error(`${t.PACKAGE_NAME}: circular dependency detected under the path '${$}' of object you're trying to persist: ${z}`);return(0,e._cloneDeep)(z)};e.cloneDeep=y;const b=function(z,$){if(z===$)return{};if(!(0,e.isObjectLike)(z)||!(0,e.isObjectLike)($))return $;const U=(0,e.cloneDeep)(z),X=(0,e.cloneDeep)($),Q=Object.keys(U).reduce((Y,ee)=>(d.call(X,ee)||(Y[ee]=void 0),Y),{});if((0,e.isDate)(U)||(0,e.isDate)(X))return U.valueOf()===X.valueOf()?{}:X;const G=Object.keys(X).reduce((Y,ee)=>{if(!d.call(U,ee))return Y[ee]=X[ee],Y;const fe=(0,e.difference)(U[ee],X[ee]);return(0,e.isObjectLike)(fe)&&(0,e.isEmpty)(fe)&&!(0,e.isDate)(fe)?(0,e.isArray)(U)&&!(0,e.isArray)(X)||!(0,e.isArray)(U)&&(0,e.isArray)(X)?X:Y:(Y[ee]=fe,Y)},Q);return delete G._persist,G};e.difference=b;const w=function(z,$){return $.reduce((U,X)=>{if(U){const Q=parseInt(X,10),G=(0,e.isIntegerString)(X)&&Q<0?U.length+Q:X;return(0,e.isString)(U)?U.charAt(G):U[G]}},z)};e.path=w;const E=function(z,$){return[...z].reverse().reduce((Q,G,Y)=>{const ee=(0,e.isIntegerString)(G)?[]:{};return ee[G]=Y===0?$:Q,ee},{})};e.assocPath=E;const _=function(z,$){const U=(0,e.cloneDeep)(z);return $.reduce((X,Q,G)=>(G===$.length-1&&X&&(0,e.isObjectLike)(X)&&delete X[Q],X&&X[Q]),U),U};e.dissocPath=_;const k=function(z,$,...U){if(!U||!U.length)return $;const X=U.shift(),{preservePlaceholder:Q,preserveUndefined:G}=z;if((0,e.isObjectLike)($)&&(0,e.isObjectLike)(X))for(const Y in X)if((0,e.isObjectLike)(X[Y])&&(0,e.isObjectLike)($[Y]))$[Y]||($[Y]={}),k(z,$[Y],X[Y]);else if((0,e.isArray)($)){let ee=X[Y];const fe=Q?t.PLACEHOLDER_UNDEFINED:void 0;G||(ee=typeof ee<"u"?ee:$[parseInt(Y,10)]),ee=ee!==t.PLACEHOLDER_UNDEFINED?ee:fe,$[parseInt(Y,10)]=ee}else{const ee=X[Y]!==t.PLACEHOLDER_UNDEFINED?X[Y]:void 0;$[Y]=ee}return k(z,$,...U)},P=function(z,$,U){return k({preservePlaceholder:U==null?void 0:U.preservePlaceholder,preserveUndefined:U==null?void 0:U.preserveUndefined},(0,e.cloneDeep)(z),(0,e.cloneDeep)($))};e.mergeDeep=P;const L=function(z,$=[],U,X,Q){if(!(0,e.isObjectLike)(z))return z;for(const G in z){const Y=z[G],ee=(0,e.isArray)(z),fe=X?X+"."+G:G;Y===null&&(U===n.ConfigType.WHITELIST&&$.indexOf(fe)===-1||U===n.ConfigType.BLACKLIST&&$.indexOf(fe)!==-1)&&ee&&(z[parseInt(G,10)]=void 0),Y===void 0&&Q&&U===n.ConfigType.BLACKLIST&&$.indexOf(fe)===-1&&ee&&(z[parseInt(G,10)]=t.PLACEHOLDER_UNDEFINED),L(Y,$,U,fe,Q)}},O=function(z,$,U,X){const Q=(0,e.cloneDeep)(z);return L(Q,$,U,"",X),Q};e.preserveUndefined=O;const D=function(z,$,U){return U.indexOf(z)===$};e.unique=D;const R=function(z){return z.reduce(($,U)=>{const X=z.filter(ke=>ke===U),Q=z.filter(ke=>(U+".").indexOf(ke+".")===0),{duplicates:G,subsets:Y}=$,ee=X.length>1&&G.indexOf(U)===-1,fe=Q.length>1;return{duplicates:[...G,...ee?X:[]],subsets:[...Y,...fe?Q:[]].filter(e.unique).sort()}},{duplicates:[],subsets:[]})};e.findDuplicatesAndSubsets=R;const N=function(z,$,U){const X=U===n.ConfigType.WHITELIST?"whitelist":"blacklist",Q=`${t.PACKAGE_NAME}: incorrect ${X} configuration.`,G=`Check your create${U===n.ConfigType.WHITELIST?"White":"Black"}list arguments. + +`;if(!(0,e.isString)($)||$.length<1)throw new Error(`${Q} Name (key) of reducer is required. ${G}`);if(!z||!z.length)return;const{duplicates:Y,subsets:ee}=(0,e.findDuplicatesAndSubsets)(z);if(Y.length>1)throw new Error(`${Q} Duplicated paths. + + ${JSON.stringify(Y)} + + ${G}`);if(ee.length>1)throw new Error(`${Q} You are trying to persist an entire property and also some of its subset. + +${JSON.stringify(ee)} + + ${G}`)};e.singleTransformValidator=N;const W=function(z){if(!(0,e.isArray)(z))return;const $=(z==null?void 0:z.map(U=>U.deepPersistKey).filter(U=>U))||[];if($.length){const U=$.filter((X,Q)=>$.indexOf(X)!==Q);if(U.length)throw new Error(`${t.PACKAGE_NAME}: found duplicated keys in transforms creators. You can createWhitelist or createBlacklist for a specific root reducer key only once. Duplicated keys among createWhitelist and createBlacklist transforms are not allowed. + + Duplicates: ${JSON.stringify(U)}`)}};e.transformsValidator=W;const B=function({whitelist:z,blacklist:$}){if(z&&z.length&&$&&$.length)throw new Error(`${t.PACKAGE_NAME}: you should not define a whitelist and blacklist in parallel. It is allowed to use only one of these lists per config.`);if(z){const{duplicates:U,subsets:X}=(0,e.findDuplicatesAndSubsets)(z);(0,e.throwError)({duplicates:U,subsets:X},"whitelist")}if($){const{duplicates:U,subsets:X}=(0,e.findDuplicatesAndSubsets)($);(0,e.throwError)({duplicates:U,subsets:X},"blacklist")}};e.configValidator=B;const K=function({duplicates:z,subsets:$},U){if(z.length)throw new Error(`${t.PACKAGE_NAME}: duplicates of paths found in your ${U}. + + ${JSON.stringify(z)}`);if($.length)throw new Error(`${t.PACKAGE_NAME}: subsets of some parent keys found in your ${U}. You must decide if you want to persist an entire path or its specific subset. + + ${JSON.stringify($)}`)};e.throwError=K;const ne=function(z){return(0,e.isArray)(z)?z.filter(e.unique).reduce(($,U)=>{const X=U.split("."),Q=X[0],G=X.slice(1).join(".")||void 0,Y=$.filter(fe=>Object.keys(fe)[0]===Q)[0],ee=Y?Object.values(Y)[0]:void 0;return Y||$.push({[Q]:G?[G]:void 0}),Y&&!ee&&G&&(Y[Q]=[G]),Y&&ee&&G&&ee.push(G),$},[]):[]};e.getRootKeysGroup=ne})(UW);(function(e){var t=Co&&Co.__rest||function(h,m){var y={};for(var b in h)Object.prototype.hasOwnProperty.call(h,b)&&m.indexOf(b)<0&&(y[b]=h[b]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,b=Object.getOwnPropertySymbols(h);w!E(k)&&h?h(_,k,P):_,out:(_,k,P)=>!E(k)&&m?m(_,k,P):_,deepPersistKey:b&&b[0]}},a=(h,m,y,{debug:b,whitelist:w,blacklist:E,transforms:_})=>{if(w||E)throw new Error("State reconciler autoMergeDeep uses custom transforms instead of old whitelist or blacklist config properties. Please use createWhitelist or createBlacklist transforms.");(0,n.transformsValidator)(_);const k=(0,n.cloneDeep)(y);let P=h;if(P&&(0,n.isObjectLike)(P)){const L=(0,n.difference)(m,y);(0,n.isEmpty)(L)||(P=(0,n.mergeDeep)(h,L,{preserveUndefined:!0}),b&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: sub state of your state was modified by reducer during rehydration. Values from reducer will be kept: ${JSON.stringify(L)}`)),Object.keys(P).forEach(O=>{if(O!=="_persist"){if((0,n.isObjectLike)(k[O])){k[O]=(0,n.mergeDeep)(k[O],P[O]);return}k[O]=P[O]}})}return b&&P&&(0,n.isObjectLike)(P)&&console.log(`${r.PACKAGE_NAME}/autoMergeDeep: rehydrated keys ${JSON.stringify(P)}`),k};e.autoMergeDeep=a;const s=(h,m)=>((0,n.singleTransformValidator)(m,h,i.ConfigType.WHITELIST),o(y=>{if(!m||!m.length)return y;let b=null,w;return m.forEach(E=>{const _=E.split(".");w=(0,n.path)(y,_),typeof w>"u"&&(0,n.isIntegerString)(_[_.length-1])&&(w=r.PLACEHOLDER_UNDEFINED);const k=(0,n.assocPath)(_,w),P=(0,n.isArray)(k)?[]:{};b=(0,n.mergeDeep)(b||P,k,{preservePlaceholder:!0})}),b||y},y=>(0,n.preserveUndefined)(y,m,i.ConfigType.WHITELIST),{whitelist:[h]}));e.createWhitelist=s;const l=(h,m)=>((0,n.singleTransformValidator)(m,h,i.ConfigType.BLACKLIST),o(y=>{if(!m||!m.length)return;const b=(0,n.preserveUndefined)(y,m,i.ConfigType.BLACKLIST,!0);return m.map(E=>E.split(".")).reduce((E,_)=>(0,n.dissocPath)(E,_),b)},y=>(0,n.preserveUndefined)(y,m,i.ConfigType.BLACKLIST),{whitelist:[h]}));e.createBlacklist=l;const u=function(h,m){return m.map(y=>{const b=Object.keys(y)[0],w=y[b];return h===i.ConfigType.WHITELIST?(0,e.createWhitelist)(b,w):(0,e.createBlacklist)(b,w)})};e.getTransforms=u;const d=h=>{var{key:m,whitelist:y,blacklist:b,storage:w,transforms:E,rootReducer:_}=h,k=t(h,["key","whitelist","blacklist","storage","transforms","rootReducer"]);(0,n.configValidator)({whitelist:y,blacklist:b});const P=(0,n.getRootKeysGroup)(y),L=(0,n.getRootKeysGroup)(b),O=Object.keys(_(void 0,{type:""})),D=P.map(ne=>Object.keys(ne)[0]),R=L.map(ne=>Object.keys(ne)[0]),N=O.filter(ne=>D.indexOf(ne)===-1&&R.indexOf(ne)===-1),W=(0,e.getTransforms)(i.ConfigType.WHITELIST,P),B=(0,e.getTransforms)(i.ConfigType.BLACKLIST,L),K=(0,n.isArray)(y)?N.map(ne=>(0,e.createBlacklist)(ne)):[];return Object.assign(Object.assign({},k),{key:m,storage:w,transforms:[...W,...B,...K,...E||[]],stateReconciler:e.autoMergeDeep})};e.getPersistConfig=d})(VW);const kd=(e,t)=>Math.floor(e/t)*t,Vl=(e,t)=>Math.round(e/t)*t;var Pe={},u3e={get exports(){return Pe},set exports(e){Pe=e}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",u=500,d="__lodash_placeholder__",h=1,m=2,y=4,b=1,w=2,E=1,_=2,k=4,P=8,L=16,O=32,D=64,R=128,N=256,W=512,B=30,K="...",ne=800,z=16,$=1,U=2,X=3,Q=1/0,G=9007199254740991,Y=17976931348623157e292,ee=0/0,fe=4294967295,ke=fe-1,we=fe>>>1,xe=[["ary",R],["bind",E],["bindKey",_],["curry",P],["curryRight",L],["flip",W],["partial",O],["partialRight",D],["rearg",N]],Ce="[object Arguments]",Se="[object Array]",Qe="[object AsyncFunction]",tt="[object Boolean]",it="[object Date]",xt="[object DOMException]",Be="[object Error]",Le="[object Function]",St="[object GeneratorFunction]",Fe="[object Map]",at="[object Number]",$t="[object Null]",vt="[object Object]",Jt="[object Promise]",sn="[object Proxy]",se="[object RegExp]",Ie="[object Set]",He="[object String]",Ve="[object Symbol]",ye="[object Undefined]",je="[object WeakMap]",yt="[object WeakSet]",Lt="[object ArrayBuffer]",Me="[object DataView]",_t="[object Float32Array]",Wt="[object Float64Array]",Bn="[object Int8Array]",qe="[object Int16Array]",gt="[object Int32Array]",Wr="[object Uint8Array]",ar="[object Uint8ClampedArray]",Wn="[object Uint16Array]",ci="[object Uint32Array]",xs=/\b__p \+= '';/g,il=/\b(__p \+=) '' \+/g,yf=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ss=/&(?:amp|lt|gt|quot|#39);/g,Qi=/[&<>"']/g,P0=RegExp(Ss.source),za=RegExp(Qi.source),Tp=/<%-([\s\S]+?)%>/g,T0=/<%([\s\S]+?)%>/g,Sc=/<%=([\s\S]+?)%>/g,Mp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Lp=/^\w*$/,ia=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,bf=/[\\^$.*+?()[\]{}|]/g,M0=RegExp(bf.source),wc=/^\s+/,xf=/\s/,L0=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ol=/\{\n\/\* \[wrapped with (.+)\] \*/,Cc=/,? & /,A0=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,O0=/[()=,{}\[\]\/\s]/,I0=/\\(\\)?/g,R0=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ws=/\w*$/,D0=/^[-+]0x[0-9a-f]+$/i,j0=/^0b[01]+$/i,N0=/^\[object .+?Constructor\]$/,$0=/^0o[0-7]+$/i,F0=/^(?:0|[1-9]\d*)$/,B0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,al=/($^)/,z0=/['\n\r\u2028\u2029\\]/g,Cs="\\ud800-\\udfff",pu="\\u0300-\\u036f",gu="\\ufe20-\\ufe2f",sl="\\u20d0-\\u20ff",mu=pu+gu+sl,Ap="\\u2700-\\u27bf",_c="a-z\\xdf-\\xf6\\xf8-\\xff",ll="\\xac\\xb1\\xd7\\xf7",oa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",On="\\u2000-\\u206f",_n=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aa="A-Z\\xc0-\\xd6\\xd8-\\xde",Vr="\\ufe0e\\ufe0f",di=ll+oa+On+_n,sa="['’]",ul="["+Cs+"]",fi="["+di+"]",_s="["+mu+"]",Sf="\\d+",vu="["+Ap+"]",ks="["+_c+"]",wf="[^"+Cs+di+Sf+Ap+_c+aa+"]",Di="\\ud83c[\\udffb-\\udfff]",Op="(?:"+_s+"|"+Di+")",Ip="[^"+Cs+"]",Cf="(?:\\ud83c[\\udde6-\\uddff]){2}",cl="[\\ud800-\\udbff][\\udc00-\\udfff]",Ao="["+aa+"]",dl="\\u200d",yu="(?:"+ks+"|"+wf+")",H0="(?:"+Ao+"|"+wf+")",kc="(?:"+sa+"(?:d|ll|m|re|s|t|ve))?",Ec="(?:"+sa+"(?:D|LL|M|RE|S|T|VE))?",_f=Op+"?",Pc="["+Vr+"]?",Ha="(?:"+dl+"(?:"+[Ip,Cf,cl].join("|")+")"+Pc+_f+")*",kf="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",bu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Kt=Pc+_f+Ha,Rp="(?:"+[vu,Cf,cl].join("|")+")"+Kt,Tc="(?:"+[Ip+_s+"?",_s,Cf,cl,ul].join("|")+")",Mc=RegExp(sa,"g"),Dp=RegExp(_s,"g"),la=RegExp(Di+"(?="+Di+")|"+Tc+Kt,"g"),Jn=RegExp([Ao+"?"+ks+"+"+kc+"(?="+[fi,Ao,"$"].join("|")+")",H0+"+"+Ec+"(?="+[fi,Ao+yu,"$"].join("|")+")",Ao+"?"+yu+"+"+kc,Ao+"+"+Ec,bu,kf,Sf,Rp].join("|"),"g"),Ef=RegExp("["+dl+Cs+mu+Vr+"]"),jp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Pf=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Np=-1,hn={};hn[_t]=hn[Wt]=hn[Bn]=hn[qe]=hn[gt]=hn[Wr]=hn[ar]=hn[Wn]=hn[ci]=!0,hn[Ce]=hn[Se]=hn[Lt]=hn[tt]=hn[Me]=hn[it]=hn[Be]=hn[Le]=hn[Fe]=hn[at]=hn[vt]=hn[se]=hn[Ie]=hn[He]=hn[je]=!1;var Yt={};Yt[Ce]=Yt[Se]=Yt[Lt]=Yt[Me]=Yt[tt]=Yt[it]=Yt[_t]=Yt[Wt]=Yt[Bn]=Yt[qe]=Yt[gt]=Yt[Fe]=Yt[at]=Yt[vt]=Yt[se]=Yt[Ie]=Yt[He]=Yt[Ve]=Yt[Wr]=Yt[ar]=Yt[Wn]=Yt[ci]=!0,Yt[Be]=Yt[Le]=Yt[je]=!1;var $p={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},W0={"&":"&","<":"<",">":">",'"':""","'":"'"},q={"&":"&","<":"<",">":">",""":'"',"'":"'"},re={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pe=parseFloat,ot=parseInt,Vt=typeof Co=="object"&&Co&&Co.Object===Object&&Co,yn=typeof self=="object"&&self&&self.Object===Object&&self,wt=Vt||yn||Function("return this")(),It=t&&!t.nodeType&&t,Xt=It&&!0&&e&&!e.nodeType&&e,ti=Xt&&Xt.exports===It,Ir=ti&&Vt.process,bn=function(){try{var ie=Xt&&Xt.require&&Xt.require("util").types;return ie||Ir&&Ir.binding&&Ir.binding("util")}catch{}}(),hi=bn&&bn.isArrayBuffer,Oo=bn&&bn.isDate,fo=bn&&bn.isMap,Wa=bn&&bn.isRegExp,fl=bn&&bn.isSet,V0=bn&&bn.isTypedArray;function ji(ie,be,me){switch(me.length){case 0:return ie.call(be);case 1:return ie.call(be,me[0]);case 2:return ie.call(be,me[0],me[1]);case 3:return ie.call(be,me[0],me[1],me[2])}return ie.apply(be,me)}function U0(ie,be,me,nt){for(var At=-1,nn=ie==null?0:ie.length;++At-1}function Fp(ie,be,me){for(var nt=-1,At=ie==null?0:ie.length;++nt-1;);return me}function Es(ie,be){for(var me=ie.length;me--&&Oc(be,ie[me],0)>-1;);return me}function q0(ie,be){for(var me=ie.length,nt=0;me--;)ie[me]===be&&++nt;return nt}var R2=Af($p),Ps=Af(W0);function pl(ie){return"\\"+re[ie]}function zp(ie,be){return ie==null?n:ie[be]}function Su(ie){return Ef.test(ie)}function Hp(ie){return jp.test(ie)}function D2(ie){for(var be,me=[];!(be=ie.next()).done;)me.push(be.value);return me}function Wp(ie){var be=-1,me=Array(ie.size);return ie.forEach(function(nt,At){me[++be]=[At,nt]}),me}function Vp(ie,be){return function(me){return ie(be(me))}}function da(ie,be){for(var me=-1,nt=ie.length,At=0,nn=[];++me-1}function eb(c,v){var C=this.__data__,A=Gr(C,c);return A<0?(++this.size,C.push([c,v])):C[A][1]=v,this}fa.prototype.clear=Q2,fa.prototype.delete=J2,fa.prototype.get=lv,fa.prototype.has=uv,fa.prototype.set=eb;function ha(c){var v=-1,C=c==null?0:c.length;for(this.clear();++v=v?c:v)),c}function _i(c,v,C,A,j,H){var Z,te=v&h,ce=v&m,_e=v&y;if(C&&(Z=j?C(c,A,j,H):C(c)),Z!==n)return Z;if(!kr(c))return c;var Ee=Bt(c);if(Ee){if(Z=$K(c),!te)return Hi(c,Z)}else{var Oe=Pi(c),et=Oe==Le||Oe==St;if(ad(c))return kl(c,te);if(Oe==vt||Oe==Ce||et&&!j){if(Z=ce||et?{}:$P(c),!te)return ce?Pv(c,Xc(Z,c)):Fo(c,st(Z,c))}else{if(!Yt[Oe])return j?c:{};Z=FK(c,Oe,te)}}H||(H=new Dr);var mt=H.get(c);if(mt)return mt;H.set(c,Z),hT(c)?c.forEach(function(Et){Z.add(_i(Et,v,C,Et,c,H))}):dT(c)&&c.forEach(function(Et,Qt){Z.set(Qt,_i(Et,v,C,Qt,c,H))});var kt=_e?ce?ge:ya:ce?zo:Ti,qt=Ee?n:kt(c);return er(qt||c,function(Et,Qt){qt&&(Qt=Et,Et=c[Qt]),vl(Z,Qt,_i(Et,v,C,Qt,c,H))}),Z}function Qp(c){var v=Ti(c);return function(C){return Jp(C,c,v)}}function Jp(c,v,C){var A=C.length;if(c==null)return!A;for(c=pn(c);A--;){var j=C[A],H=v[j],Z=c[j];if(Z===n&&!(j in c)||!H(Z))return!1}return!0}function hv(c,v,C){if(typeof c!="function")throw new Ni(a);return Ov(function(){c.apply(n,C)},v)}function Zc(c,v,C,A){var j=-1,H=Ji,Z=!0,te=c.length,ce=[],_e=v.length;if(!te)return ce;C&&(v=Un(v,Ur(C))),A?(H=Fp,Z=!1):v.length>=i&&(H=Rc,Z=!1,v=new qa(v));e:for(;++jj?0:j+C),A=A===n||A>j?j:zt(A),A<0&&(A+=j),A=C>A?0:gT(A);C0&&C(te)?v>1?qr(te,v-1,C,A,j):Va(j,te):A||(j[j.length]=te)}return j}var tg=El(),jo=El(!0);function va(c,v){return c&&tg(c,v,Ti)}function No(c,v){return c&&jo(c,v,Ti)}function ng(c,v){return Ro(v,function(C){return Lu(c[C])})}function yl(c,v){v=_l(v,c);for(var C=0,A=v.length;c!=null&&Cv}function ig(c,v){return c!=null&&ln.call(c,v)}function og(c,v){return c!=null&&v in pn(c)}function ag(c,v,C){return c>=gi(v,C)&&c=120&&Ee.length>=120)?new qa(Z&&Ee):n}Ee=c[0];var Oe=-1,et=te[0];e:for(;++Oe-1;)te!==c&&Ff.call(te,ce,1),Ff.call(c,ce,1);return c}function Kf(c,v){for(var C=c?v.length:0,A=C-1;C--;){var j=v[C];if(C==A||j!==H){var H=j;Mu(j)?Ff.call(c,j,1):mg(c,j)}}return c}function Yf(c,v){return c+Cu(nv()*(v-c+1))}function wl(c,v,C,A){for(var j=-1,H=Rr(Hf((v-c)/(C||1)),0),Z=me(H);H--;)Z[A?H:++j]=c,c+=C;return Z}function rd(c,v){var C="";if(!c||v<1||v>G)return C;do v%2&&(C+=c),v=Cu(v/2),v&&(c+=c);while(v);return C}function Mt(c,v){return Z4(zP(c,v,Ho),c+"")}function dg(c){return Yc(Cg(c))}function Xf(c,v){var C=Cg(c);return lb(C,ku(v,0,C.length))}function Pu(c,v,C,A){if(!kr(c))return c;v=_l(v,c);for(var j=-1,H=v.length,Z=H-1,te=c;te!=null&&++jj?0:j+v),C=C>j?j:C,C<0&&(C+=j),j=v>C?0:C-v>>>0,v>>>=0;for(var H=me(j);++A>>1,Z=c[H];Z!==null&&!ba(Z)&&(C?Z<=v:Z=i){var _e=v?null:V(c);if(_e)return Df(_e);Z=!1,j=Rc,ce=new qa}else ce=v?[]:te;e:for(;++A=A?c:Yr(c,v,C)}var Cv=B2||function(c){return wt.clearTimeout(c)};function kl(c,v){if(v)return c.slice();var C=c.length,A=Fc?Fc(C):new c.constructor(C);return c.copy(A),A}function _v(c){var v=new c.constructor(c.byteLength);return new $i(v).set(new $i(c)),v}function Tu(c,v){var C=v?_v(c.buffer):c.buffer;return new c.constructor(C,c.byteOffset,c.byteLength)}function ib(c){var v=new c.constructor(c.source,ws.exec(c));return v.lastIndex=c.lastIndex,v}function tr(c){return Vf?pn(Vf.call(c)):{}}function ob(c,v){var C=v?_v(c.buffer):c.buffer;return new c.constructor(C,c.byteOffset,c.length)}function kv(c,v){if(c!==v){var C=c!==n,A=c===null,j=c===c,H=ba(c),Z=v!==n,te=v===null,ce=v===v,_e=ba(v);if(!te&&!_e&&!H&&c>v||H&&Z&&ce&&!te&&!_e||A&&Z&&ce||!C&&ce||!j)return 1;if(!A&&!H&&!_e&&c=te)return ce;var _e=C[A];return ce*(_e=="desc"?-1:1)}}return c.index-v.index}function ab(c,v,C,A){for(var j=-1,H=c.length,Z=C.length,te=-1,ce=v.length,_e=Rr(H-Z,0),Ee=me(ce+_e),Oe=!A;++te1?C[j-1]:n,Z=j>2?C[2]:n;for(H=c.length>3&&typeof H=="function"?(j--,H):n,Z&&yo(C[0],C[1],Z)&&(H=j<3?n:H,j=1),v=pn(v);++A-1?j[H?v[Z]:Z]:n}}function Mv(c){return vr(function(v){var C=v.length,A=C,j=po.prototype.thru;for(c&&v.reverse();A--;){var H=v[A];if(typeof H!="function")throw new Ni(a);if(j&&!Z&&ve(H)=="wrapper")var Z=new po([],!0)}for(A=Z?A:C;++A1&&rn.reverse(),Ee&&cete))return!1;var _e=H.get(c),Ee=H.get(v);if(_e&&Ee)return _e==v&&Ee==c;var Oe=-1,et=!0,mt=C&w?new qa:n;for(H.set(c,v),H.set(v,c);++Oe1?"& ":"")+v[A],v=v.join(C>2?", ":" "),c.replace(L0,`{ +/* [wrapped with `+v+`] */ +`)}function zK(c){return Bt(c)||ih(c)||!!(ev&&c&&c[ev])}function Mu(c,v){var C=typeof c;return v=v??G,!!v&&(C=="number"||C!="symbol"&&F0.test(c))&&c>-1&&c%1==0&&c0){if(++v>=ne)return arguments[0]}else v=0;return c.apply(n,arguments)}}function lb(c,v){var C=-1,A=c.length,j=A-1;for(v=v===n?A:v;++C1?c[v-1]:n;return C=typeof C=="function"?(c.pop(),C):n,JP(c,C)});function eT(c){var v=F(c);return v.__chain__=!0,v}function QY(c,v){return v(c),c}function ub(c,v){return v(c)}var JY=vr(function(c){var v=c.length,C=v?c[0]:0,A=this.__wrapped__,j=function(H){return Zp(H,c)};return v>1||this.__actions__.length||!(A instanceof Zt)||!Mu(C)?this.thru(j):(A=A.slice(C,+C+(v?1:0)),A.__actions__.push({func:ub,args:[j],thisArg:n}),new po(A,this.__chain__).thru(function(H){return v&&!H.length&&H.push(n),H}))});function eX(){return eT(this)}function tX(){return new po(this.value(),this.__chain__)}function nX(){this.__values__===n&&(this.__values__=pT(this.value()));var c=this.__index__>=this.__values__.length,v=c?n:this.__values__[this.__index__++];return{done:c,value:v}}function rX(){return this}function iX(c){for(var v,C=this;C instanceof Uf;){var A=qP(C);A.__index__=0,A.__values__=n,v?j.__wrapped__=A:v=A;var j=A;C=C.__wrapped__}return j.__wrapped__=c,v}function oX(){var c=this.__wrapped__;if(c instanceof Zt){var v=c;return this.__actions__.length&&(v=new Zt(this)),v=v.reverse(),v.__actions__.push({func:ub,args:[Q4],thisArg:n}),new po(v,this.__chain__)}return this.thru(Q4)}function aX(){return Cl(this.__wrapped__,this.__actions__)}var sX=yg(function(c,v,C){ln.call(c,C)?++c[C]:pa(c,C,1)});function lX(c,v,C){var A=Bt(c)?Vn:pv;return C&&yo(c,v,C)&&(v=n),A(c,Ae(v,3))}function uX(c,v){var C=Bt(c)?Ro:ma;return C(c,Ae(v,3))}var cX=Tv(KP),dX=Tv(YP);function fX(c,v){return qr(cb(c,v),1)}function hX(c,v){return qr(cb(c,v),Q)}function pX(c,v,C){return C=C===n?1:zt(C),qr(cb(c,v),C)}function tT(c,v){var C=Bt(c)?er:Ls;return C(c,Ae(v,3))}function nT(c,v){var C=Bt(c)?Io:eg;return C(c,Ae(v,3))}var gX=yg(function(c,v,C){ln.call(c,C)?c[C].push(v):pa(c,C,[v])});function mX(c,v,C,A){c=Bo(c)?c:Cg(c),C=C&&!A?zt(C):0;var j=c.length;return C<0&&(C=Rr(j+C,0)),gb(c)?C<=j&&c.indexOf(v,C)>-1:!!j&&Oc(c,v,C)>-1}var vX=Mt(function(c,v,C){var A=-1,j=typeof v=="function",H=Bo(c)?me(c.length):[];return Ls(c,function(Z){H[++A]=j?ji(v,Z,C):As(Z,v,C)}),H}),yX=yg(function(c,v,C){pa(c,C,v)});function cb(c,v){var C=Bt(c)?Un:Nr;return C(c,Ae(v,3))}function bX(c,v,C,A){return c==null?[]:(Bt(v)||(v=v==null?[]:[v]),C=A?n:C,Bt(C)||(C=C==null?[]:[C]),Bi(c,v,C))}var xX=yg(function(c,v,C){c[C?0:1].push(v)},function(){return[[],[]]});function SX(c,v,C){var A=Bt(c)?Tf:Bp,j=arguments.length<3;return A(c,Ae(v,4),C,j,Ls)}function wX(c,v,C){var A=Bt(c)?L2:Bp,j=arguments.length<3;return A(c,Ae(v,4),C,j,eg)}function CX(c,v){var C=Bt(c)?Ro:ma;return C(c,hb(Ae(v,3)))}function _X(c){var v=Bt(c)?Yc:dg;return v(c)}function kX(c,v,C){(C?yo(c,v,C):v===n)?v=1:v=zt(v);var A=Bt(c)?Ci:Xf;return A(c,v)}function EX(c){var v=Bt(c)?W4:Ei;return v(c)}function PX(c){if(c==null)return 0;if(Bo(c))return gb(c)?Ua(c):c.length;var v=Pi(c);return v==Fe||v==Ie?c.size:Kr(c).length}function TX(c,v,C){var A=Bt(c)?Lc:$o;return C&&yo(c,v,C)&&(v=n),A(c,Ae(v,3))}var MX=Mt(function(c,v){if(c==null)return[];var C=v.length;return C>1&&yo(c,v[0],v[1])?v=[]:C>2&&yo(v[0],v[1],v[2])&&(v=[v[0]]),Bi(c,qr(v,1),[])}),db=z2||function(){return wt.Date.now()};function LX(c,v){if(typeof v!="function")throw new Ni(a);return c=zt(c),function(){if(--c<1)return v.apply(this,arguments)}}function rT(c,v,C){return v=C?n:v,v=c&&v==null?c.length:v,he(c,R,n,n,n,n,v)}function iT(c,v){var C;if(typeof v!="function")throw new Ni(a);return c=zt(c),function(){return--c>0&&(C=v.apply(this,arguments)),c<=1&&(v=n),C}}var e5=Mt(function(c,v,C){var A=E;if(C.length){var j=da(C,Je(e5));A|=O}return he(c,A,v,C,j)}),oT=Mt(function(c,v,C){var A=E|_;if(C.length){var j=da(C,Je(oT));A|=O}return he(v,A,c,C,j)});function aT(c,v,C){v=C?n:v;var A=he(c,P,n,n,n,n,n,v);return A.placeholder=aT.placeholder,A}function sT(c,v,C){v=C?n:v;var A=he(c,L,n,n,n,n,n,v);return A.placeholder=sT.placeholder,A}function lT(c,v,C){var A,j,H,Z,te,ce,_e=0,Ee=!1,Oe=!1,et=!0;if(typeof c!="function")throw new Ni(a);v=Xa(v)||0,kr(C)&&(Ee=!!C.leading,Oe="maxWait"in C,H=Oe?Rr(Xa(C.maxWait)||0,v):H,et="trailing"in C?!!C.trailing:et);function mt(Zr){var js=A,Ou=j;return A=j=n,_e=Zr,Z=c.apply(Ou,js),Z}function kt(Zr){return _e=Zr,te=Ov(Qt,v),Ee?mt(Zr):Z}function qt(Zr){var js=Zr-ce,Ou=Zr-_e,PT=v-js;return Oe?gi(PT,H-Ou):PT}function Et(Zr){var js=Zr-ce,Ou=Zr-_e;return ce===n||js>=v||js<0||Oe&&Ou>=H}function Qt(){var Zr=db();if(Et(Zr))return rn(Zr);te=Ov(Qt,qt(Zr))}function rn(Zr){return te=n,et&&A?mt(Zr):(A=j=n,Z)}function xa(){te!==n&&Cv(te),_e=0,A=ce=j=te=n}function bo(){return te===n?Z:rn(db())}function Sa(){var Zr=db(),js=Et(Zr);if(A=arguments,j=this,ce=Zr,js){if(te===n)return kt(ce);if(Oe)return Cv(te),te=Ov(Qt,v),mt(ce)}return te===n&&(te=Ov(Qt,v)),Z}return Sa.cancel=xa,Sa.flush=bo,Sa}var AX=Mt(function(c,v){return hv(c,1,v)}),OX=Mt(function(c,v,C){return hv(c,Xa(v)||0,C)});function IX(c){return he(c,W)}function fb(c,v){if(typeof c!="function"||v!=null&&typeof v!="function")throw new Ni(a);var C=function(){var A=arguments,j=v?v.apply(this,A):A[0],H=C.cache;if(H.has(j))return H.get(j);var Z=c.apply(this,A);return C.cache=H.set(j,Z)||H,Z};return C.cache=new(fb.Cache||ha),C}fb.Cache=ha;function hb(c){if(typeof c!="function")throw new Ni(a);return function(){var v=arguments;switch(v.length){case 0:return!c.call(this);case 1:return!c.call(this,v[0]);case 2:return!c.call(this,v[0],v[1]);case 3:return!c.call(this,v[0],v[1],v[2])}return!c.apply(this,v)}}function RX(c){return iT(2,c)}var DX=G4(function(c,v){v=v.length==1&&Bt(v[0])?Un(v[0],Ur(Ae())):Un(qr(v,1),Ur(Ae()));var C=v.length;return Mt(function(A){for(var j=-1,H=gi(A.length,C);++j=v}),ih=lg(function(){return arguments}())?lg:function(c){return $r(c)&&ln.call(c,"callee")&&!J0.call(c,"callee")},Bt=me.isArray,XX=hi?Ur(hi):mv;function Bo(c){return c!=null&&pb(c.length)&&!Lu(c)}function Xr(c){return $r(c)&&Bo(c)}function ZX(c){return c===!0||c===!1||$r(c)&&ki(c)==tt}var ad=H2||f5,QX=Oo?Ur(Oo):vv;function JX(c){return $r(c)&&c.nodeType===1&&!Iv(c)}function eZ(c){if(c==null)return!0;if(Bo(c)&&(Bt(c)||typeof c=="string"||typeof c.splice=="function"||ad(c)||wg(c)||ih(c)))return!c.length;var v=Pi(c);if(v==Fe||v==Ie)return!c.size;if(Av(c))return!Kr(c).length;for(var C in c)if(ln.call(c,C))return!1;return!0}function tZ(c,v){return Jc(c,v)}function nZ(c,v,C){C=typeof C=="function"?C:n;var A=C?C(c,v):n;return A===n?Jc(c,v,n,C):!!A}function n5(c){if(!$r(c))return!1;var v=ki(c);return v==Be||v==xt||typeof c.message=="string"&&typeof c.name=="string"&&!Iv(c)}function rZ(c){return typeof c=="number"&&qp(c)}function Lu(c){if(!kr(c))return!1;var v=ki(c);return v==Le||v==St||v==Qe||v==sn}function cT(c){return typeof c=="number"&&c==zt(c)}function pb(c){return typeof c=="number"&&c>-1&&c%1==0&&c<=G}function kr(c){var v=typeof c;return c!=null&&(v=="object"||v=="function")}function $r(c){return c!=null&&typeof c=="object"}var dT=fo?Ur(fo):U4;function iZ(c,v){return c===v||ed(c,v,Ot(v))}function oZ(c,v,C){return C=typeof C=="function"?C:n,ed(c,v,Ot(v),C)}function aZ(c){return fT(c)&&c!=+c}function sZ(c){if(VK(c))throw new At(o);return ug(c)}function lZ(c){return c===null}function uZ(c){return c==null}function fT(c){return typeof c=="number"||$r(c)&&ki(c)==at}function Iv(c){if(!$r(c)||ki(c)!=vt)return!1;var v=Bc(c);if(v===null)return!0;var C=ln.call(v,"constructor")&&v.constructor;return typeof C=="function"&&C instanceof C&&wr.call(C)==wi}var r5=Wa?Ur(Wa):Cr;function cZ(c){return cT(c)&&c>=-G&&c<=G}var hT=fl?Ur(fl):Ut;function gb(c){return typeof c=="string"||!Bt(c)&&$r(c)&&ki(c)==He}function ba(c){return typeof c=="symbol"||$r(c)&&ki(c)==Ve}var wg=V0?Ur(V0):ni;function dZ(c){return c===n}function fZ(c){return $r(c)&&Pi(c)==je}function hZ(c){return $r(c)&&ki(c)==yt}var pZ=T(bl),gZ=T(function(c,v){return c<=v});function pT(c){if(!c)return[];if(Bo(c))return gb(c)?eo(c):Hi(c);if(zc&&c[zc])return D2(c[zc]());var v=Pi(c),C=v==Fe?Wp:v==Ie?Df:Cg;return C(c)}function Au(c){if(!c)return c===0?c:0;if(c=Xa(c),c===Q||c===-Q){var v=c<0?-1:1;return v*Y}return c===c?c:0}function zt(c){var v=Au(c),C=v%1;return v===v?C?v-C:v:0}function gT(c){return c?ku(zt(c),0,fe):0}function Xa(c){if(typeof c=="number")return c;if(ba(c))return ee;if(kr(c)){var v=typeof c.valueOf=="function"?c.valueOf():c;c=kr(v)?v+"":v}if(typeof c!="string")return c===0?c:+c;c=ho(c);var C=j0.test(c);return C||$0.test(c)?ot(c.slice(2),C?2:8):D0.test(c)?ee:+c}function mT(c){return Ka(c,zo(c))}function mZ(c){return c?ku(zt(c),-G,G):c===0?c:0}function En(c){return c==null?"":mo(c)}var vZ=vo(function(c,v){if(Av(v)||Bo(v)){Ka(v,Ti(v),c);return}for(var C in v)ln.call(v,C)&&vl(c,C,v[C])}),vT=vo(function(c,v){Ka(v,zo(v),c)}),mb=vo(function(c,v,C,A){Ka(v,zo(v),c,A)}),yZ=vo(function(c,v,C,A){Ka(v,Ti(v),c,A)}),bZ=vr(Zp);function xZ(c,v){var C=_u(c);return v==null?C:st(C,v)}var SZ=Mt(function(c,v){c=pn(c);var C=-1,A=v.length,j=A>2?v[2]:n;for(j&&yo(v[0],v[1],j)&&(A=1);++C1),H}),Ka(c,ge(c),C),A&&(C=_i(C,h|m|y,Rt));for(var j=v.length;j--;)mg(C,v[j]);return C});function FZ(c,v){return bT(c,hb(Ae(v)))}var BZ=vr(function(c,v){return c==null?{}:xv(c,v)});function bT(c,v){if(c==null)return{};var C=Un(ge(c),function(A){return[A]});return v=Ae(v),cg(c,C,function(A,j){return v(A,j[0])})}function zZ(c,v,C){v=_l(v,c);var A=-1,j=v.length;for(j||(j=1,c=n);++Av){var A=c;c=v,v=A}if(C||c%1||v%1){var j=nv();return gi(c+j*(v-c+pe("1e-"+((j+"").length-1))),v)}return Yf(c,v)}var QZ=Pl(function(c,v,C){return v=v.toLowerCase(),c+(C?wT(v):v)});function wT(c){return a5(En(c).toLowerCase())}function CT(c){return c=En(c),c&&c.replace(B0,R2).replace(Dp,"")}function JZ(c,v,C){c=En(c),v=mo(v);var A=c.length;C=C===n?A:ku(zt(C),0,A);var j=C;return C-=v.length,C>=0&&c.slice(C,j)==v}function eQ(c){return c=En(c),c&&za.test(c)?c.replace(Qi,Ps):c}function tQ(c){return c=En(c),c&&M0.test(c)?c.replace(bf,"\\$&"):c}var nQ=Pl(function(c,v,C){return c+(C?"-":"")+v.toLowerCase()}),rQ=Pl(function(c,v,C){return c+(C?" ":"")+v.toLowerCase()}),iQ=xg("toLowerCase");function oQ(c,v,C){c=En(c),v=zt(v);var A=v?Ua(c):0;if(!v||A>=v)return c;var j=(v-A)/2;return f(Cu(j),C)+c+f(Hf(j),C)}function aQ(c,v,C){c=En(c),v=zt(v);var A=v?Ua(c):0;return v&&A>>0,C?(c=En(c),c&&(typeof v=="string"||v!=null&&!r5(v))&&(v=mo(v),!v&&Su(c))?Is(eo(c),0,C):c.split(v,C)):[]}var hQ=Pl(function(c,v,C){return c+(C?" ":"")+a5(v)});function pQ(c,v,C){return c=En(c),C=C==null?0:ku(zt(C),0,c.length),v=mo(v),c.slice(C,C+v.length)==v}function gQ(c,v,C){var A=F.templateSettings;C&&yo(c,v,C)&&(v=n),c=En(c),v=mb({},v,A,We);var j=mb({},v.imports,A.imports,We),H=Ti(j),Z=Rf(j,H),te,ce,_e=0,Ee=v.interpolate||al,Oe="__p += '",et=Nf((v.escape||al).source+"|"+Ee.source+"|"+(Ee===Sc?R0:al).source+"|"+(v.evaluate||al).source+"|$","g"),mt="//# sourceURL="+(ln.call(v,"sourceURL")?(v.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Np+"]")+` +`;c.replace(et,function(Et,Qt,rn,xa,bo,Sa){return rn||(rn=xa),Oe+=c.slice(_e,Sa).replace(z0,pl),Qt&&(te=!0,Oe+=`' + +__e(`+Qt+`) + +'`),bo&&(ce=!0,Oe+=`'; +`+bo+`; +__p += '`),rn&&(Oe+=`' + +((__t = (`+rn+`)) == null ? '' : __t) + +'`),_e=Sa+Et.length,Et}),Oe+=`'; +`;var kt=ln.call(v,"variable")&&v.variable;if(!kt)Oe=`with (obj) { +`+Oe+` +} +`;else if(O0.test(kt))throw new At(s);Oe=(ce?Oe.replace(xs,""):Oe).replace(il,"$1").replace(yf,"$1;"),Oe="function("+(kt||"obj")+`) { +`+(kt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(te?", __e = _.escape":"")+(ce?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Oe+`return __p +}`;var qt=kT(function(){return nn(H,mt+"return "+Oe).apply(n,Z)});if(qt.source=Oe,n5(qt))throw qt;return qt}function mQ(c){return En(c).toLowerCase()}function vQ(c){return En(c).toUpperCase()}function yQ(c,v,C){if(c=En(c),c&&(C||v===n))return ho(c);if(!c||!(v=mo(v)))return c;var A=eo(c),j=eo(v),H=ca(A,j),Z=Es(A,j)+1;return Is(A,H,Z).join("")}function bQ(c,v,C){if(c=En(c),c&&(C||v===n))return c.slice(0,Y0(c)+1);if(!c||!(v=mo(v)))return c;var A=eo(c),j=Es(A,eo(v))+1;return Is(A,0,j).join("")}function xQ(c,v,C){if(c=En(c),c&&(C||v===n))return c.replace(wc,"");if(!c||!(v=mo(v)))return c;var A=eo(c),j=ca(A,eo(v));return Is(A,j).join("")}function SQ(c,v){var C=B,A=K;if(kr(v)){var j="separator"in v?v.separator:j;C="length"in v?zt(v.length):C,A="omission"in v?mo(v.omission):A}c=En(c);var H=c.length;if(Su(c)){var Z=eo(c);H=Z.length}if(C>=H)return c;var te=C-Ua(A);if(te<1)return A;var ce=Z?Is(Z,0,te).join(""):c.slice(0,te);if(j===n)return ce+A;if(Z&&(te+=ce.length-te),r5(j)){if(c.slice(te).search(j)){var _e,Ee=ce;for(j.global||(j=Nf(j.source,En(ws.exec(j))+"g")),j.lastIndex=0;_e=j.exec(Ee);)var Oe=_e.index;ce=ce.slice(0,Oe===n?te:Oe)}}else if(c.indexOf(mo(j),te)!=te){var et=ce.lastIndexOf(j);et>-1&&(ce=ce.slice(0,et))}return ce+A}function wQ(c){return c=En(c),c&&P0.test(c)?c.replace(Ss,$2):c}var CQ=Pl(function(c,v,C){return c+(C?" ":"")+v.toUpperCase()}),a5=xg("toUpperCase");function _T(c,v,C){return c=En(c),v=C?n:v,v===n?Hp(c)?jf(c):G0(c):c.match(v)||[]}var kT=Mt(function(c,v){try{return ji(c,n,v)}catch(C){return n5(C)?C:new At(C)}}),_Q=vr(function(c,v){return er(v,function(C){C=Tl(C),pa(c,C,e5(c[C],c))}),c});function kQ(c){var v=c==null?0:c.length,C=Ae();return c=v?Un(c,function(A){if(typeof A[1]!="function")throw new Ni(a);return[C(A[0]),A[1]]}):[],Mt(function(A){for(var j=-1;++jG)return[];var C=fe,A=gi(c,fe);v=Ae(v),c-=fe;for(var j=If(A,v);++C0||v<0)?new Zt(C):(c<0?C=C.takeRight(-c):c&&(C=C.drop(c)),v!==n&&(v=zt(v),C=v<0?C.dropRight(-v):C.take(v-c)),C)},Zt.prototype.takeRightWhile=function(c){return this.reverse().takeWhile(c).reverse()},Zt.prototype.toArray=function(){return this.take(fe)},va(Zt.prototype,function(c,v){var C=/^(?:filter|find|map|reject)|While$/.test(v),A=/^(?:head|last)$/.test(v),j=F[A?"take"+(v=="last"?"Right":""):v],H=A||/^find/.test(v);j&&(F.prototype[v]=function(){var Z=this.__wrapped__,te=A?[1]:arguments,ce=Z instanceof Zt,_e=te[0],Ee=ce||Bt(Z),Oe=function(Qt){var rn=j.apply(F,Va([Qt],te));return A&&et?rn[0]:rn};Ee&&C&&typeof _e=="function"&&_e.length!=1&&(ce=Ee=!1);var et=this.__chain__,mt=!!this.__actions__.length,kt=H&&!et,qt=ce&&!mt;if(!H&&Ee){Z=qt?Z:new Zt(this);var Et=c.apply(Z,te);return Et.__actions__.push({func:ub,args:[Oe],thisArg:n}),new po(Et,et)}return kt&&qt?c.apply(this,te):(Et=this.thru(Oe),kt?A?Et.value()[0]:Et.value():Et)})}),er(["pop","push","shift","sort","splice","unshift"],function(c){var v=jc[c],C=/^(?:push|sort|unshift)$/.test(c)?"tap":"thru",A=/^(?:pop|shift)$/.test(c);F.prototype[c]=function(){var j=arguments;if(A&&!this.__chain__){var H=this.value();return v.apply(Bt(H)?H:[],j)}return this[C](function(Z){return v.apply(Bt(Z)?Z:[],j)})}}),va(Zt.prototype,function(c,v){var C=F[v];if(C){var A=C.name+"";ln.call(Ts,A)||(Ts[A]=[]),Ts[A].push({name:v,func:C})}}),Ts[th(n,_).name]=[{name:"wrapper",func:n}],Zt.prototype.clone=to,Zt.prototype.reverse=Fi,Zt.prototype.value=q2,F.prototype.at=JY,F.prototype.chain=eX,F.prototype.commit=tX,F.prototype.next=nX,F.prototype.plant=iX,F.prototype.reverse=oX,F.prototype.toJSON=F.prototype.valueOf=F.prototype.value=aX,F.prototype.first=F.prototype.head,zc&&(F.prototype[zc]=rX),F},Ga=Do();Xt?((Xt.exports=Ga)._=Ga,It._=Ga):wt._=Ga}).call(Co)})(u3e,Pe);const Ig=(e,t,n,r,i,o,a)=>{const s=e/2-(n+i/2)*a,l=t/2-(r+o/2)*a;return{x:s,y:l}},Rg=(e,t,n,r,i=.95)=>{const o=e*i/n,a=t*i/r;return Math.min(1,Math.min(o,a))},c3e=.999,d3e=.1,f3e=20,Kv=.95,tI=30,Sk=10,nI=e=>({x:Math.floor(e.x),y:Math.floor(e.y)}),sh=e=>{const{width:t,height:n}=e,r={width:t,height:n},i=512*512,o=t/n;let a=t*n,s=448;for(;a1?(r.width=s,r.height=Vl(s/o,64)):o<1&&(r.height=s,r.width=Vl(s*o,64)),a=r.width*r.height;return r},h3e=e=>({width:Vl(e.width,64),height:Vl(e.height,64)}),GW=[{key:"Base",value:"base"},{key:"Mask",value:"mask"}],p3e=[{key:"Auto",value:"auto"},{key:"Manual",value:"manual"},{key:"None",value:"none"}],bE=e=>e.kind==="line"&&e.layer==="mask",g3e=e=>e.kind==="line"&&e.layer==="base",_3=e=>e.kind==="image"&&e.layer==="base",m3e=e=>e.kind==="fillRect"&&e.layer==="base",v3e=e=>e.kind==="eraseRect"&&e.layer==="base",y3e=e=>e.kind==="line",y1={objects:[],stagingArea:{images:[],selectedImageIndex:-1}},b3e={boundingBoxCoordinates:{x:0,y:0},boundingBoxDimensions:{width:512,height:512},boundingBoxPreviewFill:{r:0,g:0,b:0,a:.5},boundingBoxScaleMethod:"auto",brushColor:{r:90,g:90,b:255,a:1},brushSize:50,canvasContainerDimensions:{width:0,height:0},colorPickerColor:{r:90,g:90,b:255,a:1},cursorPosition:null,doesCanvasNeedScaling:!1,futureLayerStates:[],isCanvasInitialized:!1,isDrawing:!1,isMaskEnabled:!0,isMouseOverBoundingBox:!1,isMoveBoundingBoxKeyHeld:!1,isMoveStageKeyHeld:!1,isMovingBoundingBox:!1,isMovingStage:!1,isTransformingBoundingBox:!1,layer:"base",layerState:y1,maskColor:{r:255,g:90,b:90,a:1},maxHistory:128,minimumStageScale:1,pastLayerStates:[],scaledBoundingBoxDimensions:{width:512,height:512},shouldAutoSave:!1,shouldCropToBoundingBoxOnSave:!1,shouldDarkenOutsideBoundingBox:!1,shouldLockBoundingBox:!1,shouldPreserveMaskedArea:!1,shouldRestrictStrokesToBox:!0,shouldShowBoundingBox:!0,shouldShowBrush:!0,shouldShowBrushPreview:!1,shouldShowCanvasDebugInfo:!1,shouldShowCheckboardTransparency:!1,shouldShowGrid:!0,shouldShowIntermediates:!0,shouldShowStagingImage:!0,shouldShowStagingOutline:!0,shouldSnapToGrid:!0,stageCoordinates:{x:0,y:0},stageDimensions:{width:0,height:0},stageScale:1,tool:"brush"},qW=fp({name:"canvas",initialState:b3e,reducers:{setTool:(e,t)=>{const n=t.payload;e.tool=t.payload,n!=="move"&&(e.isTransformingBoundingBox=!1,e.isMouseOverBoundingBox=!1,e.isMovingBoundingBox=!1,e.isMovingStage=!1)},setLayer:(e,t)=>{e.layer=t.payload},toggleTool:e=>{const t=e.tool;t!=="move"&&(e.tool=t==="brush"?"eraser":"brush")},setMaskColor:(e,t)=>{e.maskColor=t.payload},setBrushColor:(e,t)=>{e.brushColor=t.payload},setBrushSize:(e,t)=>{e.brushSize=t.payload},clearMask:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState.objects=e.layerState.objects.filter(t=>!bE(t)),e.futureLayerStates=[],e.shouldPreserveMaskedArea=!1},toggleShouldInvertMask:e=>{e.shouldPreserveMaskedArea=!e.shouldPreserveMaskedArea},toggleShouldShowMask:e=>{e.isMaskEnabled=!e.isMaskEnabled},setShouldPreserveMaskedArea:(e,t)=>{e.shouldPreserveMaskedArea=t.payload},setIsMaskEnabled:(e,t)=>{e.isMaskEnabled=t.payload,e.layer=t.payload?"mask":"base"},setShouldShowCheckboardTransparency:(e,t)=>{e.shouldShowCheckboardTransparency=t.payload},setShouldShowBrushPreview:(e,t)=>{e.shouldShowBrushPreview=t.payload},setShouldShowBrush:(e,t)=>{e.shouldShowBrush=t.payload},setCursorPosition:(e,t)=>{e.cursorPosition=t.payload},setInitialCanvasImage:(e,t)=>{const n=t.payload,{stageDimensions:r}=e,i={width:kd(Pe.clamp(n.width,64,512),64),height:kd(Pe.clamp(n.height,64,512),64)},o={x:Vl(n.width/2-i.width/2,64),y:Vl(n.height/2-i.height/2,64)};if(e.boundingBoxScaleMethod==="auto"){const l=sh(i);e.scaledBoundingBoxDimensions=l}e.boundingBoxDimensions=i,e.boundingBoxCoordinates=o,e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState={...y1,objects:[{kind:"image",layer:"base",x:0,y:0,width:n.width,height:n.height,image:n}]},e.futureLayerStates=[],e.isCanvasInitialized=!1;const a=Rg(r.width,r.height,n.width,n.height,Kv),s=Ig(r.width,r.height,0,0,n.width,n.height,a);e.stageScale=a,e.stageCoordinates=s,e.doesCanvasNeedScaling=!0},setBoundingBoxDimensions:(e,t)=>{const n=h3e(t.payload);if(e.boundingBoxDimensions=n,e.boundingBoxScaleMethod==="auto"){const r=sh(n);e.scaledBoundingBoxDimensions=r}},setBoundingBoxCoordinates:(e,t)=>{e.boundingBoxCoordinates=nI(t.payload)},setStageCoordinates:(e,t)=>{e.stageCoordinates=t.payload},setBoundingBoxPreviewFill:(e,t)=>{e.boundingBoxPreviewFill=t.payload},setDoesCanvasNeedScaling:(e,t)=>{e.doesCanvasNeedScaling=t.payload},setStageScale:(e,t)=>{e.stageScale=t.payload},setShouldDarkenOutsideBoundingBox:(e,t)=>{e.shouldDarkenOutsideBoundingBox=t.payload},setIsDrawing:(e,t)=>{e.isDrawing=t.payload},clearCanvasHistory:e=>{e.pastLayerStates=[],e.futureLayerStates=[]},setShouldLockBoundingBox:(e,t)=>{e.shouldLockBoundingBox=t.payload},toggleShouldLockBoundingBox:e=>{e.shouldLockBoundingBox=!e.shouldLockBoundingBox},setShouldShowBoundingBox:(e,t)=>{e.shouldShowBoundingBox=t.payload},setIsTransformingBoundingBox:(e,t)=>{e.isTransformingBoundingBox=t.payload},setIsMovingBoundingBox:(e,t)=>{e.isMovingBoundingBox=t.payload},setIsMouseOverBoundingBox:(e,t)=>{e.isMouseOverBoundingBox=t.payload},setIsMoveBoundingBoxKeyHeld:(e,t)=>{e.isMoveBoundingBoxKeyHeld=t.payload},setIsMoveStageKeyHeld:(e,t)=>{e.isMoveStageKeyHeld=t.payload},addImageToStagingArea:(e,t)=>{const{boundingBox:n,image:r}=t.payload;!n||!r||(e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.stagingArea.images.push({kind:"image",layer:"base",...n,image:r}),e.layerState.stagingArea.selectedImageIndex=e.layerState.stagingArea.images.length-1,e.futureLayerStates=[])},discardStagedImages:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.stagingArea={...y1.stagingArea},e.futureLayerStates=[],e.shouldShowStagingOutline=!0,e.shouldShowStagingOutline=!0},addFillRect:e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,brushColor:r}=e;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({kind:"fillRect",layer:"base",...t,...n,color:r}),e.futureLayerStates=[]},addEraseRect:e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n}=e;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({kind:"eraseRect",layer:"base",...t,...n}),e.futureLayerStates=[]},addLine:(e,t)=>{const{tool:n,layer:r,brushColor:i,brushSize:o,shouldRestrictStrokesToBox:a}=e;if(n==="move"||n==="colorPicker")return;const s=o/2,l=r==="base"&&n==="brush"?{color:i}:{};e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift();const u={kind:"line",layer:r,tool:n,strokeWidth:s,points:t.payload,...l};a&&(u.clip={...e.boundingBoxCoordinates,...e.boundingBoxDimensions}),e.layerState.objects.push(u),e.futureLayerStates=[]},addPointToCurrentLine:(e,t)=>{const n=e.layerState.objects.findLast(y3e);n&&n.points.push(...t.payload)},undo:e=>{const t=e.pastLayerStates.pop();t&&(e.futureLayerStates.unshift(Pe.cloneDeep(e.layerState)),e.futureLayerStates.length>e.maxHistory&&e.futureLayerStates.pop(),e.layerState=t)},redo:e=>{const t=e.futureLayerStates.shift();t&&(e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState=t)},setShouldShowGrid:(e,t)=>{e.shouldShowGrid=t.payload},setIsMovingStage:(e,t)=>{e.isMovingStage=t.payload},setShouldSnapToGrid:(e,t)=>{e.shouldSnapToGrid=t.payload},setShouldAutoSave:(e,t)=>{e.shouldAutoSave=t.payload},setShouldShowIntermediates:(e,t)=>{e.shouldShowIntermediates=t.payload},resetCanvas:e=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.layerState=y1,e.futureLayerStates=[]},setCanvasContainerDimensions:(e,t)=>{e.canvasContainerDimensions=t.payload},resizeAndScaleCanvas:e=>{const{width:t,height:n}=e.canvasContainerDimensions,r=e.layerState.objects.find(_3),i={width:Math.floor(t),height:Math.floor(n)};if(!r){const d=Rg(i.width,i.height,512,512,Kv),h=Ig(i.width,i.height,0,0,512,512,d),m={width:512,height:512};if(e.stageScale=d,e.stageCoordinates=h,e.stageDimensions=i,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=m,e.boundingBoxScaleMethod==="auto"){const y=sh(m);e.scaledBoundingBoxDimensions=y}return}const{width:o,height:a}=r,l=Rg(t,n,o,a,.95),u=Ig(i.width,i.height,0,0,o,a,l);e.minimumStageScale=l,e.stageScale=l,e.stageCoordinates=nI(u),e.stageDimensions=i,e.isCanvasInitialized=!0},resizeCanvas:e=>{const{width:t,height:n}=e.canvasContainerDimensions,r={width:Math.floor(t),height:Math.floor(n)};if(e.stageDimensions=r,!e.layerState.objects.find(_3)){const i=Rg(r.width,r.height,512,512,Kv),o=Ig(r.width,r.height,0,0,512,512,i),a={width:512,height:512};if(e.stageScale=i,e.stageCoordinates=o,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=a,e.boundingBoxScaleMethod==="auto"){const s=sh(a);e.scaledBoundingBoxDimensions=s}}},resetCanvasView:(e,t)=>{const{contentRect:n,shouldScaleTo1:r}=t.payload,{stageDimensions:{width:i,height:o}}=e,{x:a,y:s,width:l,height:u}=n;if(l!==0&&u!==0){const d=r?1:Rg(i,o,l,u,Kv),h=Ig(i,o,a,s,l,u,d);e.stageScale=d,e.stageCoordinates=h}else{const d=Rg(i,o,512,512,Kv),h=Ig(i,o,0,0,512,512,d),m={width:512,height:512};if(e.stageScale=d,e.stageCoordinates=h,e.boundingBoxCoordinates={x:0,y:0},e.boundingBoxDimensions=m,e.boundingBoxScaleMethod==="auto"){const y=sh(m);e.scaledBoundingBoxDimensions=y}}},nextStagingAreaImage:e=>{const t=e.layerState.stagingArea.selectedImageIndex,n=e.layerState.stagingArea.images.length;e.layerState.stagingArea.selectedImageIndex=Math.min(t+1,n-1)},prevStagingAreaImage:e=>{const t=e.layerState.stagingArea.selectedImageIndex;e.layerState.stagingArea.selectedImageIndex=Math.max(t-1,0)},commitStagingAreaImage:e=>{const{images:t,selectedImageIndex:n}=e.layerState.stagingArea;e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.pastLayerStates.length>e.maxHistory&&e.pastLayerStates.shift(),e.layerState.objects.push({...t[n]}),e.layerState.stagingArea={...y1.stagingArea},e.futureLayerStates=[],e.shouldShowStagingOutline=!0,e.shouldShowStagingImage=!0},fitBoundingBoxToStage:e=>{const{boundingBoxDimensions:t,boundingBoxCoordinates:n,stageDimensions:r,stageScale:i}=e,o=r.width/i,a=r.height/i;if(n.x<0||n.x+t.width>o||n.y<0||n.y+t.height>a){const s={width:kd(Pe.clamp(o,64,512),64),height:kd(Pe.clamp(a,64,512),64)},l={x:Vl(o/2-s.width/2,64),y:Vl(a/2-s.height/2,64)};if(e.boundingBoxDimensions=s,e.boundingBoxCoordinates=l,e.boundingBoxScaleMethod==="auto"){const u=sh(s);e.scaledBoundingBoxDimensions=u}}},setBoundingBoxScaleMethod:(e,t)=>{if(e.boundingBoxScaleMethod=t.payload,t.payload==="auto"){const n=sh(e.boundingBoxDimensions);e.scaledBoundingBoxDimensions=n}},setScaledBoundingBoxDimensions:(e,t)=>{e.scaledBoundingBoxDimensions=t.payload},setShouldShowStagingImage:(e,t)=>{e.shouldShowStagingImage=t.payload},setShouldShowStagingOutline:(e,t)=>{e.shouldShowStagingOutline=t.payload},setShouldShowCanvasDebugInfo:(e,t)=>{e.shouldShowCanvasDebugInfo=t.payload},setShouldRestrictStrokesToBox:(e,t)=>{e.shouldRestrictStrokesToBox=t.payload},setShouldCropToBoundingBoxOnSave:(e,t)=>{e.shouldCropToBoundingBoxOnSave=t.payload},setColorPickerColor:(e,t)=>{e.colorPickerColor=t.payload},commitColorPickerColor:e=>{e.brushColor={...e.colorPickerColor,a:e.brushColor.a},e.tool="brush"},setMergedCanvas:(e,t)=>{e.pastLayerStates.push(Pe.cloneDeep(e.layerState)),e.futureLayerStates=[],e.layerState.objects=[t.payload]},resetCanvasInteractionState:e=>{e.cursorPosition=null,e.isDrawing=!1,e.isMouseOverBoundingBox=!1,e.isMoveBoundingBoxKeyHeld=!1,e.isMoveStageKeyHeld=!1,e.isMovingBoundingBox=!1,e.isMovingStage=!1,e.isTransformingBoundingBox=!1},mouseLeftCanvas:e=>{e.cursorPosition=null,e.isDrawing=!1,e.isMouseOverBoundingBox=!1,e.isMovingBoundingBox=!1,e.isTransformingBoundingBox=!1}}}),{addEraseRect:KW,addFillRect:YW,addImageToStagingArea:x3e,addLine:S3e,addPointToCurrentLine:XW,clearCanvasHistory:ZW,clearMask:xE,commitColorPickerColor:w3e,commitStagingAreaImage:C3e,discardStagedImages:_3e,fitBoundingBoxToStage:cFe,mouseLeftCanvas:k3e,nextStagingAreaImage:E3e,prevStagingAreaImage:P3e,redo:T3e,resetCanvas:SE,resetCanvasInteractionState:M3e,resetCanvasView:QW,resizeAndScaleCanvas:l4,resizeCanvas:L3e,setBoundingBoxCoordinates:BC,setBoundingBoxDimensions:b1,setBoundingBoxPreviewFill:dFe,setBoundingBoxScaleMethod:A3e,setBrushColor:Dm,setBrushSize:jm,setCanvasContainerDimensions:O3e,setColorPickerColor:I3e,setCursorPosition:R3e,setDoesCanvasNeedScaling:Oi,setInitialCanvasImage:u4,setIsDrawing:JW,setIsMaskEnabled:m2,setIsMouseOverBoundingBox:tx,setIsMoveBoundingBoxKeyHeld:fFe,setIsMoveStageKeyHeld:hFe,setIsMovingBoundingBox:zC,setIsMovingStage:k3,setIsTransformingBoundingBox:HC,setLayer:E3,setMaskColor:eV,setMergedCanvas:D3e,setShouldAutoSave:tV,setShouldCropToBoundingBoxOnSave:nV,setShouldDarkenOutsideBoundingBox:rV,setShouldLockBoundingBox:pFe,setShouldPreserveMaskedArea:iV,setShouldShowBoundingBox:j3e,setShouldShowBrush:gFe,setShouldShowBrushPreview:mFe,setShouldShowCanvasDebugInfo:oV,setShouldShowCheckboardTransparency:vFe,setShouldShowGrid:aV,setShouldShowIntermediates:sV,setShouldShowStagingImage:N3e,setShouldShowStagingOutline:rI,setShouldSnapToGrid:P3,setStageCoordinates:lV,setStageScale:$3e,setTool:tu,toggleShouldLockBoundingBox:yFe,toggleTool:bFe,undo:F3e,setScaledBoundingBoxDimensions:nx,setShouldRestrictStrokesToBox:uV}=qW.actions,B3e=qW.reducer,z3e={currentImageUuid:"",shouldPinGallery:!0,shouldShowGallery:!0,galleryScrollPosition:0,galleryImageMinimumWidth:64,galleryImageObjectFit:"cover",shouldHoldGalleryOpen:!1,shouldAutoSwitchToNewImages:!0,currentCategory:"result",categories:{user:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0},result:{images:[],latest_mtime:void 0,earliest_mtime:void 0,areMoreImagesAvailable:!0}},galleryWidth:300,shouldUseSingleGalleryColumn:!1},cV=fp({name:"gallery",initialState:z3e,reducers:{setCurrentImage:(e,t)=>{e.currentImage=t.payload,e.currentImageUuid=t.payload.uuid},removeImage:(e,t)=>{const{uuid:n,category:r}=t.payload,i=e.categories[r].images,o=i.filter(a=>a.uuid!==n);if(n===e.currentImageUuid){const a=i.findIndex(l=>l.uuid===n),s=Pe.clamp(a,0,o.length-1);e.currentImage=o.length?o[s]:void 0,e.currentImageUuid=o.length?o[s].uuid:""}e.categories[r].images=o},addImage:(e,t)=>{const{image:n,category:r}=t.payload,{uuid:i,url:o,mtime:a}=n,s=e.categories[r];s.images.find(l=>l.url===o&&l.mtime===a)||(s.images.unshift(n),e.shouldAutoSwitchToNewImages&&(e.currentImageUuid=i,e.currentImage=n,e.currentCategory=r),e.intermediateImage=void 0,s.latest_mtime=a)},setIntermediateImage:(e,t)=>{e.intermediateImage=t.payload},clearIntermediateImage:e=>{e.intermediateImage=void 0},selectNextImage:e=>{const{currentImage:t}=e;if(!t)return;const n=e.categories[t.category].images;if(t){const r=n.findIndex(i=>i.uuid===t.uuid);if(r{const{currentImage:t}=e;if(!t)return;const n=e.categories[t.category].images;if(t){const r=n.findIndex(i=>i.uuid===t.uuid);if(r>0){const i=n[r-1];e.currentImage=i,e.currentImageUuid=i.uuid}}},addGalleryImages:(e,t)=>{const{images:n,areMoreImagesAvailable:r,category:i}=t.payload,o=e.categories[i].images;if(n.length>0){const a=n.filter(s=>!o.find(l=>l.url===s.url&&l.mtime===s.mtime));if(e.categories[i].images=o.concat(a).sort((s,l)=>l.mtime-s.mtime),!e.currentImage){const s=n[0];e.currentImage=s,e.currentImageUuid=s.uuid}e.categories[i].latest_mtime=n[0].mtime,e.categories[i].earliest_mtime=n[n.length-1].mtime}r!==void 0&&(e.categories[i].areMoreImagesAvailable=r)},setShouldPinGallery:(e,t)=>{e.shouldPinGallery=t.payload},setShouldShowGallery:(e,t)=>{e.shouldShowGallery=t.payload},setGalleryScrollPosition:(e,t)=>{e.galleryScrollPosition=t.payload},setGalleryImageMinimumWidth:(e,t)=>{e.galleryImageMinimumWidth=t.payload},setGalleryImageObjectFit:(e,t)=>{e.galleryImageObjectFit=t.payload},setShouldHoldGalleryOpen:(e,t)=>{e.shouldHoldGalleryOpen=t.payload},setShouldAutoSwitchToNewImages:(e,t)=>{e.shouldAutoSwitchToNewImages=t.payload},setCurrentCategory:(e,t)=>{e.currentCategory=t.payload},setGalleryWidth:(e,t)=>{e.galleryWidth=t.payload},setShouldUseSingleGalleryColumn:(e,t)=>{e.shouldUseSingleGalleryColumn=t.payload}}}),{addImage:hm,clearIntermediateImage:WC,removeImage:dV,setCurrentImage:iI,addGalleryImages:H3e,setIntermediateImage:W3e,selectNextImage:wE,selectPrevImage:CE,setShouldPinGallery:V3e,setShouldShowGallery:Lh,setGalleryScrollPosition:U3e,setGalleryImageMinimumWidth:Yv,setGalleryImageObjectFit:G3e,setShouldHoldGalleryOpen:fV,setShouldAutoSwitchToNewImages:q3e,setCurrentCategory:rx,setGalleryWidth:K3e,setShouldUseSingleGalleryColumn:Y3e}=cV.actions,X3e=cV.reducer,Z3e={isLightboxOpen:!1},Q3e=Z3e,hV=fp({name:"lightbox",initialState:Q3e,reducers:{setIsLightboxOpen:(e,t)=>{e.isLightboxOpen=t.payload}}}),{setIsLightboxOpen:Wh}=hV.actions,J3e=hV.reducer,Nm=e=>typeof e=="string"?e:e.length===1?e[0].prompt:e.map(t=>`${t.prompt}:${t.weight}`).join(" ");function pV(e){let t=typeof e=="string"?e:Nm(e),n="";const r=new RegExp(/\[([^\][]*)]/,"gi"),i=[...t.matchAll(r)].map(o=>o[1]);return i.length&&(n=i.join(" "),i.forEach(o=>{t=t.replace(`[${o}]`,"").replaceAll("[]","").trim()})),[t,n]}const ewe=e=>{const r=e.split(",").map(i=>i.split(":")).map(i=>({seed:Number(i[0]),weight:Number(i[1])}));return _E(r)?r:!1},_E=e=>Boolean(typeof e=="string"?ewe(e):e.length&&!e.some(t=>{const{seed:n,weight:r}=t,i=!isNaN(parseInt(n.toString(),10)),o=!isNaN(parseInt(r.toString(),10))&&r>=0&&r<=1;return!(i&&o)})),T3=e=>e.reduce((t,n,r,i)=>{const{seed:o,weight:a}=n;return t+=`${o}:${a}`,r!==i.length-1&&(t+=","),t},""),twe=e=>e.split(",").map(r=>r.split(":")).map(r=>[parseInt(r[0],10),parseFloat(r[1])]),gV={cfgScale:7.5,height:512,img2imgStrength:.75,infillMethod:"patchmatch",iterations:1,maskPath:"",perlin:0,prompt:"",negativePrompt:"",sampler:"k_lms",seamBlur:16,seamless:!1,seamSize:96,seamSteps:30,seamStrength:.7,seed:0,seedWeights:"",shouldFitToWidthHeight:!0,shouldGenerateVariations:!1,shouldRandomizeSeed:!0,steps:50,threshold:0,tileSize:32,variationAmount:.1,width:512,shouldUseSymmetry:!1,horizontalSymmetryTimePercentage:0,verticalSymmetryTimePercentage:0},nwe=gV,mV=fp({name:"generation",initialState:nwe,reducers:{setPrompt:(e,t)=>{const n=t.payload;typeof n=="string"?e.prompt=n:e.prompt=Nm(n)},setNegativePrompt:(e,t)=>{const n=t.payload;typeof n=="string"?e.negativePrompt=n:e.negativePrompt=Nm(n)},setIterations:(e,t)=>{e.iterations=t.payload},setSteps:(e,t)=>{e.steps=t.payload},setCfgScale:(e,t)=>{e.cfgScale=t.payload},setThreshold:(e,t)=>{e.threshold=t.payload},setPerlin:(e,t)=>{e.perlin=t.payload},setHeight:(e,t)=>{e.height=t.payload},setWidth:(e,t)=>{e.width=t.payload},setSampler:(e,t)=>{e.sampler=t.payload},setSeed:(e,t)=>{e.seed=t.payload,e.shouldRandomizeSeed=!1},setImg2imgStrength:(e,t)=>{e.img2imgStrength=t.payload},setMaskPath:(e,t)=>{e.maskPath=t.payload},setSeamless:(e,t)=>{e.seamless=t.payload},setShouldFitToWidthHeight:(e,t)=>{e.shouldFitToWidthHeight=t.payload},resetSeed:e=>{e.seed=-1},setParameter:(e,t)=>{const{key:n,value:r}=t.payload,i={...e,[n]:r};return n==="seed"&&(i.shouldRandomizeSeed=!1),i},setShouldGenerateVariations:(e,t)=>{e.shouldGenerateVariations=t.payload},setVariationAmount:(e,t)=>{e.variationAmount=t.payload},setSeedWeights:(e,t)=>{e.seedWeights=t.payload,e.shouldGenerateVariations=!0,e.variationAmount=0},setAllTextToImageParameters:(e,t)=>{const{sampler:n,prompt:r,seed:i,variations:o,steps:a,cfg_scale:s,threshold:l,perlin:u,seamless:d,_hires_fix:h,width:m,height:y}=t.payload.image;o&&o.length>0?(e.seedWeights=T3(o),e.shouldGenerateVariations=!0,e.variationAmount=0):e.shouldGenerateVariations=!1,i&&(e.seed=i,e.shouldRandomizeSeed=!1),r&&(e.prompt=Nm(r)),n&&(e.sampler=n),a&&(e.steps=a),s&&(e.cfgScale=s),typeof l>"u"?e.threshold=0:e.threshold=l,typeof u>"u"?e.perlin=0:e.perlin=u,typeof d=="boolean"&&(e.seamless=d),m&&(e.width=m),y&&(e.height=y)},setAllImageToImageParameters:(e,t)=>{const{type:n,strength:r,fit:i,init_image_path:o,mask_image_path:a}=t.payload.image;n==="img2img"&&(o&&(e.initialImage=o),a&&(e.maskPath=a),r&&(e.img2imgStrength=r),typeof i=="boolean"&&(e.shouldFitToWidthHeight=i))},setAllParameters:(e,t)=>{const{type:n,sampler:r,prompt:i,seed:o,variations:a,steps:s,cfg_scale:l,threshold:u,perlin:d,seamless:h,_hires_fix:m,width:y,height:b,strength:w,fit:E,init_image_path:_,mask_image_path:k}=t.payload.image;if(n==="img2img"&&(_&&(e.initialImage=_),k&&(e.maskPath=k),w&&(e.img2imgStrength=w),typeof E=="boolean"&&(e.shouldFitToWidthHeight=E)),a&&a.length>0?(e.seedWeights=T3(a),e.shouldGenerateVariations=!0,e.variationAmount=0):e.shouldGenerateVariations=!1,o&&(e.seed=o,e.shouldRandomizeSeed=!1),i){const[P,L]=pV(i);P&&(e.prompt=P),L?e.negativePrompt=L:e.negativePrompt=""}r&&(e.sampler=r),s&&(e.steps=s),l&&(e.cfgScale=l),typeof u>"u"?e.threshold=0:e.threshold=u,typeof d>"u"?e.perlin=0:e.perlin=d,typeof h=="boolean"&&(e.seamless=h),y&&(e.width=y),b&&(e.height=b)},resetParametersState:e=>({...e,...gV}),setShouldRandomizeSeed:(e,t)=>{e.shouldRandomizeSeed=t.payload},setInitialImage:(e,t)=>{e.initialImage=t.payload},clearInitialImage:e=>{e.initialImage=void 0},setSeamSize:(e,t)=>{e.seamSize=t.payload},setSeamBlur:(e,t)=>{e.seamBlur=t.payload},setSeamStrength:(e,t)=>{e.seamStrength=t.payload},setSeamSteps:(e,t)=>{e.seamSteps=t.payload},setTileSize:(e,t)=>{e.tileSize=t.payload},setInfillMethod:(e,t)=>{e.infillMethod=t.payload},setShouldUseSymmetry:(e,t)=>{e.shouldUseSymmetry=t.payload},setHorizontalSymmetryTimePercentage:(e,t)=>{e.horizontalSymmetryTimePercentage=t.payload},setVerticalSymmetryTimePercentage:(e,t)=>{e.verticalSymmetryTimePercentage=t.payload}}}),{clearInitialImage:vV,resetParametersState:xFe,resetSeed:SFe,setAllImageToImageParameters:rwe,setAllParameters:yV,setAllTextToImageParameters:wFe,setCfgScale:wk,setHeight:fS,setImg2imgStrength:Ck,setInfillMethod:bV,setInitialImage:S0,setIterations:oI,setMaskPath:xV,setParameter:CFe,setPerlin:_k,setPrompt:SV,setNegativePrompt:wV,setSampler:CV,setSeamBlur:aI,setSeamless:_V,setSeamSize:sI,setSeamSteps:lI,setSeamStrength:uI,setSeed:v2,setSeedWeights:kV,setShouldFitToWidthHeight:EV,setShouldGenerateVariations:iwe,setShouldRandomizeSeed:owe,setSteps:kk,setThreshold:Ek,setTileSize:cI,setVariationAmount:dI,setWidth:hS,setShouldUseSymmetry:awe,setHorizontalSymmetryTimePercentage:fI,setVerticalSymmetryTimePercentage:hI}=mV.actions,swe=mV.reducer,PV={codeformerFidelity:.75,facetoolStrength:.75,facetoolType:"gfpgan",hiresFix:!1,hiresStrength:.75,shouldLoopback:!1,shouldRunESRGAN:!1,shouldRunFacetool:!1,upscalingLevel:4,upscalingDenoising:.75,upscalingStrength:.75},lwe=PV,TV=fp({name:"postprocessing",initialState:lwe,reducers:{setFacetoolStrength:(e,t)=>{e.facetoolStrength=t.payload},setCodeformerFidelity:(e,t)=>{e.codeformerFidelity=t.payload},setUpscalingLevel:(e,t)=>{e.upscalingLevel=t.payload},setUpscalingDenoising:(e,t)=>{e.upscalingDenoising=t.payload},setUpscalingStrength:(e,t)=>{e.upscalingStrength=t.payload},setHiresFix:(e,t)=>{e.hiresFix=t.payload},setHiresStrength:(e,t)=>{e.hiresStrength=t.payload},resetPostprocessingState:e=>({...e,...PV}),setShouldRunFacetool:(e,t)=>{e.shouldRunFacetool=t.payload},setFacetoolType:(e,t)=>{e.facetoolType=t.payload},setShouldRunESRGAN:(e,t)=>{e.shouldRunESRGAN=t.payload},setShouldLoopback:(e,t)=>{e.shouldLoopback=t.payload}}}),{resetPostprocessingState:_Fe,setCodeformerFidelity:Pk,setFacetoolStrength:M3,setFacetoolType:pS,setHiresFix:MV,setHiresStrength:pI,setShouldLoopback:uwe,setShouldRunESRGAN:cwe,setShouldRunFacetool:dwe,setUpscalingLevel:LV,setUpscalingDenoising:Tk,setUpscalingStrength:Mk}=TV.actions,fwe=TV.reducer;function ys(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gI(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:{};ys(this,e),this.init(t,n)}return bs(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=n||gwe,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function(n){this.debug=n}},{key:"log",value:function(){for(var n=arguments.length,r=new Array(n),i=0;i1?r-1:0),o=1;o-1?s.replace(/###/g,"."):s}function i(){return!e||typeof e=="string"}for(var o=typeof t!="string"?[].concat(t):t.split(".");o.length>1;){if(i())return{};var a=r(o.shift());!e[a]&&n&&(e[a]=new n),Object.prototype.hasOwnProperty.call(e,a)?e=e[a]:e={}}return i()?{}:{obj:e,k:r(o.shift())}}function xI(e,t,n){var r=kE(e,t,Object),i=r.obj,o=r.k;i[o]=n}function ywe(e,t,n,r){var i=kE(e,t,Object),o=i.obj,a=i.k;o[a]=o[a]||[],r&&(o[a]=o[a].concat(n)),r||o[a].push(n)}function L3(e,t){var n=kE(e,t),r=n.obj,i=n.k;if(r)return r[i]}function SI(e,t,n){var r=L3(e,n);return r!==void 0?r:L3(t,n)}function RV(e,t,n){for(var r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):RV(e[r],t[r],n):e[r]=t[r]);return e}function Dg(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var bwe={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function xwe(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,function(t){return bwe[t]}):e}var d4=typeof window<"u"&&window.navigator&&typeof window.navigator.userAgentData>"u"&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,Swe=[" ",",","?","!",";"];function wwe(e,t,n){t=t||"",n=n||"";var r=Swe.filter(function(s){return t.indexOf(s)<0&&n.indexOf(s)<0});if(r.length===0)return!0;var i=new RegExp("(".concat(r.map(function(s){return s==="?"?"\\?":s}).join("|"),")")),o=!i.test(e);if(!o){var a=e.indexOf(n);a>0&&!i.test(e.substring(0,a))&&(o=!0)}return o}function wI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ix(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function DV(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),i=e,o=0;oo+a;)a++,s=r.slice(o,o+a).join(n),l=i[s];if(l===void 0)return;if(l===null)return null;if(t.endsWith(s)){if(typeof l=="string")return l;if(s&&typeof l[s]=="string")return l[s]}var u=r.slice(o+a).join(n);return u?DV(l,u,n):void 0}i=i[r[o]]}return i}}var kwe=function(e){c4(n,e);var t=Cwe(n);function n(r){var i,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return ys(this,n),i=t.call(this),d4&&nf.call(zd(i)),i.data=r||{},i.options=o,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.options.ignoreJSONStructure===void 0&&(i.options.ignoreJSONStructure=!0),i}return bs(n,[{key:"addNamespaces",value:function(i){this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}},{key:"removeNamespaces",value:function(i){var o=this.options.ns.indexOf(i);o>-1&&this.options.ns.splice(o,1)}},{key:"getResource",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},l=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,u=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure,d=[i,o];a&&typeof a!="string"&&(d=d.concat(a)),a&&typeof a=="string"&&(d=d.concat(l?a.split(l):a)),i.indexOf(".")>-1&&(d=i.split("."));var h=L3(this.data,d);return h||!u||typeof a!="string"?h:DV(this.data&&this.data[i]&&this.data[i][o],a,l)}},{key:"addResource",value:function(i,o,a,s){var l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},u=this.options.keySeparator;u===void 0&&(u=".");var d=[i,o];a&&(d=d.concat(u?a.split(u):a)),i.indexOf(".")>-1&&(d=i.split("."),s=o,o=d[1]),this.addNamespaces(o),xI(this.data,d,s),l.silent||this.emit("added",i,o,a,s)}},{key:"addResources",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var l in a)(typeof a[l]=="string"||Object.prototype.toString.apply(a[l])==="[object Array]")&&this.addResource(i,o,l,a[l],{silent:!0});s.silent||this.emit("added",i,o,a)}},{key:"addResourceBundle",value:function(i,o,a,s,l){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},d=[i,o];i.indexOf(".")>-1&&(d=i.split("."),s=a,a=o,o=d[1]),this.addNamespaces(o);var h=L3(this.data,d)||{};s?RV(h,a,l):h=ix(ix({},h),a),xI(this.data,d,h),u.silent||this.emit("added",i,o,a)}},{key:"removeResourceBundle",value:function(i,o){this.hasResourceBundle(i,o)&&delete this.data[i][o],this.removeNamespaces(o),this.emit("removed",i,o)}},{key:"hasResourceBundle",value:function(i,o){return this.getResource(i,o)!==void 0}},{key:"getResourceBundle",value:function(i,o){return o||(o=this.options.defaultNS),this.options.compatibilityAPI==="v1"?ix(ix({},{}),this.getResource(i,o)):this.getResource(i,o)}},{key:"getDataByLanguage",value:function(i){return this.data[i]}},{key:"hasLanguageSomeTranslations",value:function(i){var o=this.getDataByLanguage(i),a=o&&Object.keys(o)||[];return!!a.find(function(s){return o[s]&&Object.keys(o[s]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(nf),jV={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,n,r,i,o){var a=this;return t.forEach(function(s){a.processors[s]&&(n=a.processors[s].process(n,r,i,o))}),n}};function CI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function xo(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var _I={},kI=function(e){c4(n,e);var t=Ewe(n);function n(r){var i,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ys(this,n),i=t.call(this),d4&&nf.call(zd(i)),vwe(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,zd(i)),i.options=o,i.options.keySeparator===void 0&&(i.options.keySeparator="."),i.logger=Ul.create("translator"),i}return bs(n,[{key:"changeLanguage",value:function(i){i&&(this.language=i)}},{key:"exists",value:function(i){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(i==null)return!1;var a=this.resolve(i,o);return a&&a.res!==void 0}},{key:"extractFromKey",value:function(i,o){var a=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");var s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,l=o.ns||this.options.defaultNS||[],u=a&&i.indexOf(a)>-1,d=!this.options.userDefinedKeySeparator&&!o.keySeparator&&!this.options.userDefinedNsSeparator&&!o.nsSeparator&&!wwe(i,a,s);if(u&&!d){var h=i.match(this.interpolator.nestingRegexp);if(h&&h.length>0)return{key:i,namespaces:l};var m=i.split(a);(a!==s||a===s&&this.options.ns.indexOf(m[0])>-1)&&(l=m.shift()),i=m.join(s)}return typeof l=="string"&&(l=[l]),{key:i,namespaces:l}}},{key:"translate",value:function(i,o,a){var s=this;if(Zs(o)!=="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),i==null)return"";Array.isArray(i)||(i=[String(i)]);var l=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,u=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,d=this.extractFromKey(i[i.length-1],o),h=d.key,m=d.namespaces,y=m[m.length-1],b=o.lng||this.language,w=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(b&&b.toLowerCase()==="cimode"){if(w){var E=o.nsSeparator||this.options.nsSeparator;return l?{res:"".concat(y).concat(E).concat(h),usedKey:h,exactUsedKey:h,usedLng:b,usedNS:y}:"".concat(y).concat(E).concat(h)}return l?{res:h,usedKey:h,exactUsedKey:h,usedLng:b,usedNS:y}:h}var _=this.resolve(i,o),k=_&&_.res,P=_&&_.usedKey||h,L=_&&_.exactUsedKey||h,O=Object.prototype.toString.apply(k),D=["[object Number]","[object Function]","[object RegExp]"],R=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,N=!this.i18nFormat||this.i18nFormat.handleAsObject,W=typeof k!="string"&&typeof k!="boolean"&&typeof k!="number";if(N&&k&&W&&D.indexOf(O)<0&&!(typeof R=="string"&&O==="[object Array]")){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var B=this.options.returnedObjectHandler?this.options.returnedObjectHandler(P,k,xo(xo({},o),{},{ns:m})):"key '".concat(h," (").concat(this.language,")' returned an object instead of string.");return l?(_.res=B,_):B}if(u){var K=O==="[object Array]",ne=K?[]:{},z=K?L:P;for(var $ in k)if(Object.prototype.hasOwnProperty.call(k,$)){var U="".concat(z).concat(u).concat($);ne[$]=this.translate(U,xo(xo({},o),{joinArrays:!1,ns:m})),ne[$]===U&&(ne[$]=k[$])}k=ne}}else if(N&&typeof R=="string"&&O==="[object Array]")k=k.join(R),k&&(k=this.extendTranslation(k,i,o,a));else{var X=!1,Q=!1,G=o.count!==void 0&&typeof o.count!="string",Y=n.hasDefaultValue(o),ee=G?this.pluralResolver.getSuffix(b,o.count,o):"",fe=o["defaultValue".concat(ee)]||o.defaultValue;!this.isValidLookup(k)&&Y&&(X=!0,k=fe),this.isValidLookup(k)||(Q=!0,k=h);var ke=o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,we=ke&&Q?void 0:k,xe=Y&&fe!==k&&this.options.updateMissing;if(Q||X||xe){if(this.logger.log(xe?"updateKey":"missingKey",b,y,h,xe?fe:k),u){var Ce=this.resolve(h,xo(xo({},o),{},{keySeparator:!1}));Ce&&Ce.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var Se=[],Qe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Qe&&Qe[0])for(var tt=0;tt1&&arguments[1]!==void 0?arguments[1]:{},s,l,u,d,h;return typeof i=="string"&&(i=[i]),i.forEach(function(m){if(!o.isValidLookup(s)){var y=o.extractFromKey(m,a),b=y.key;l=b;var w=y.namespaces;o.options.fallbackNS&&(w=w.concat(o.options.fallbackNS));var E=a.count!==void 0&&typeof a.count!="string",_=E&&!a.ordinal&&a.count===0&&o.pluralResolver.shouldUseIntlApi(),k=a.context!==void 0&&(typeof a.context=="string"||typeof a.context=="number")&&a.context!=="",P=a.lngs?a.lngs:o.languageUtils.toResolveHierarchy(a.lng||o.language,a.fallbackLng);w.forEach(function(L){o.isValidLookup(s)||(h=L,!_I["".concat(P[0],"-").concat(L)]&&o.utils&&o.utils.hasLoadedNamespace&&!o.utils.hasLoadedNamespace(h)&&(_I["".concat(P[0],"-").concat(L)]=!0,o.logger.warn('key "'.concat(l,'" for languages "').concat(P.join(", "),`" won't get resolved as namespace "`).concat(h,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),P.forEach(function(O){if(!o.isValidLookup(s)){d=O;var D=[b];if(o.i18nFormat&&o.i18nFormat.addLookupKeys)o.i18nFormat.addLookupKeys(D,b,O,L,a);else{var R;E&&(R=o.pluralResolver.getSuffix(O,a.count,a));var N="".concat(o.options.pluralSeparator,"zero");if(E&&(D.push(b+R),_&&D.push(b+N)),k){var W="".concat(b).concat(o.options.contextSeparator).concat(a.context);D.push(W),E&&(D.push(W+R),_&&D.push(W+N))}}for(var B;B=D.pop();)o.isValidLookup(s)||(u=B,s=o.getResource(O,L,B,a))}}))})}}),{res:s,usedKey:l,exactUsedKey:u,usedLng:d,usedNS:h}}},{key:"isValidLookup",value:function(i){return i!==void 0&&!(!this.options.returnNull&&i===null)&&!(!this.options.returnEmptyString&&i==="")}},{key:"getResource",value:function(i,o,a){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(i,o,a,s):this.resourceStore.getResource(i,o,a,s)}}],[{key:"hasDefaultValue",value:function(i){var o="defaultValue";for(var a in i)if(Object.prototype.hasOwnProperty.call(i,a)&&o===a.substring(0,o.length)&&i[a]!==void 0)return!0;return!1}}]),n}(nf);function VC(e){return e.charAt(0).toUpperCase()+e.slice(1)}var EI=function(){function e(t){ys(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ul.create("languageUtils")}return bs(e,[{key:"getScriptPartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return null;var r=n.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}},{key:"getLanguagePartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return n;var r=n.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function(n){if(typeof n=="string"&&n.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],i=n.split("-");return this.options.lowerCaseLng?i=i.map(function(o){return o.toLowerCase()}):i.length===2?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=VC(i[1].toLowerCase()))):i.length===3&&(i[0]=i[0].toLowerCase(),i[1].length===2&&(i[1]=i[1].toUpperCase()),i[0]!=="sgn"&&i[2].length===2&&(i[2]=i[2].toUpperCase()),r.indexOf(i[1].toLowerCase())>-1&&(i[1]=VC(i[1].toLowerCase())),r.indexOf(i[2].toLowerCase())>-1&&(i[2]=VC(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?n.toLowerCase():n}},{key:"isSupportedCode",value:function(n){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(n=this.getLanguagePartFromCode(n)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(n)>-1}},{key:"getBestMatchFromCodes",value:function(n){var r=this;if(!n)return null;var i;return n.forEach(function(o){if(!i){var a=r.formatLanguageCode(o);(!r.options.supportedLngs||r.isSupportedCode(a))&&(i=a)}}),!i&&this.options.supportedLngs&&n.forEach(function(o){if(!i){var a=r.getLanguagePartFromCode(o);if(r.isSupportedCode(a))return i=a;i=r.options.supportedLngs.find(function(s){if(s.indexOf(a)===0)return s})}}),i||(i=this.getFallbackCodes(this.options.fallbackLng)[0]),i}},{key:"getFallbackCodes",value:function(n,r){if(!n)return[];if(typeof n=="function"&&(n=n(r)),typeof n=="string"&&(n=[n]),Object.prototype.toString.apply(n)==="[object Array]")return n;if(!r)return n.default||[];var i=n[r];return i||(i=n[this.getScriptPartFromCode(r)]),i||(i=n[this.formatLanguageCode(r)]),i||(i=n[this.getLanguagePartFromCode(r)]),i||(i=n.default),i||[]}},{key:"toResolveHierarchy",value:function(n,r){var i=this,o=this.getFallbackCodes(r||this.options.fallbackLng||[],n),a=[],s=function(u){u&&(i.isSupportedCode(u)?a.push(u):i.logger.warn("rejecting language code not found in supportedLngs: ".concat(u)))};return typeof n=="string"&&n.indexOf("-")>-1?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(n)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(n)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(n))):typeof n=="string"&&s(this.formatLanguageCode(n)),o.forEach(function(l){a.indexOf(l)<0&&s(i.formatLanguageCode(l))}),a}}]),e}(),Twe=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],Mwe={1:function(t){return Number(t>1)},2:function(t){return Number(t!=1)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(t==1?0:t>=2&&t<=4?1:2)},7:function(t){return Number(t==1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(t==1?0:t==2?1:t!=8&&t!=11?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(t==1?0:t==2?1:t<7?2:t<11?3:4)},11:function(t){return Number(t==1||t==11?0:t==2||t==12?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(t!==0)},14:function(t){return Number(t==1?0:t==2?1:t==3?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:t!==0?1:2)},17:function(t){return Number(t==1||t%10==1&&t%100!=11?0:1)},18:function(t){return Number(t==0?0:t==1?1:2)},19:function(t){return Number(t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(t==1?0:t==0||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function(t){return Number(t==1?0:t==2?1:(t<0||t>10)&&t%10==0?2:3)}},Lwe=["v1","v2","v3"],PI={zero:0,one:1,two:2,few:3,many:4,other:5};function Awe(){var e={};return Twe.forEach(function(t){t.lngs.forEach(function(n){e[n]={numbers:t.nr,plurals:Mwe[t.fc]}})}),e}var Owe=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ys(this,e),this.languageUtils=t,this.options=n,this.logger=Ul.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=Awe()}return bs(e,[{key:"addRule",value:function(n,r){this.rules[n]=r}},{key:"getRule",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(n,{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[n]||this.rules[this.languageUtils.getLanguagePartFromCode(n)]}},{key:"needsPlural",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.getRule(n,r);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(n,i).map(function(o){return"".concat(r).concat(o)})}},{key:"getSuffixes",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.getRule(n,i);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort(function(a,s){return PI[a]-PI[s]}).map(function(a){return"".concat(r.options.prepend).concat(a)}):o.numbers.map(function(a){return r.getSuffix(n,a,i)}):[]}},{key:"getSuffix",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=this.getRule(n,i);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(r)):this.getSuffixRetroCompatible(o,r):(this.logger.warn("no plural rule found for: ".concat(n)),"")}},{key:"getSuffixRetroCompatible",value:function(n,r){var i=this,o=n.noAbs?n.plurals(r):n.plurals(Math.abs(r)),a=n.numbers[o];this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1&&(a===2?a="plural":a===1&&(a=""));var s=function(){return i.options.prepend&&a.toString()?i.options.prepend+a.toString():a.toString()};return this.options.compatibilityJSON==="v1"?a===1?"":typeof a=="number"?"_plural_".concat(a.toString()):s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1?s():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!Lwe.includes(this.options.compatibilityJSON)}}]),e}();function TI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Hs(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{};ys(this,e),this.logger=Ul.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(n){return n},this.init(t)}return bs(e,[{key:"init",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};n.interpolation||(n.interpolation={escapeValue:!0});var r=n.interpolation;this.escape=r.escape!==void 0?r.escape:xwe,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?Dg(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?Dg(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?Dg(r.nestingPrefix):r.nestingPrefixEscaped||Dg("$t("),this.nestingSuffix=r.nestingSuffix?Dg(r.nestingSuffix):r.nestingSuffixEscaped||Dg(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var n="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(n,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var i="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(i,"g")}},{key:"interpolate",value:function(n,r,i,o){var a=this,s,l,u,d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(E){return E.replace(/\$/g,"$$$$")}var m=function(_){if(_.indexOf(a.formatSeparator)<0){var k=SI(r,d,_);return a.alwaysFormat?a.format(k,void 0,i,Hs(Hs(Hs({},o),r),{},{interpolationkey:_})):k}var P=_.split(a.formatSeparator),L=P.shift().trim(),O=P.join(a.formatSeparator).trim();return a.format(SI(r,d,L),O,i,Hs(Hs(Hs({},o),r),{},{interpolationkey:L}))};this.resetRegExp();var y=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,b=o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,w=[{regex:this.regexpUnescape,safeValue:function(_){return h(_)}},{regex:this.regexp,safeValue:function(_){return a.escapeValue?h(a.escape(_)):h(_)}}];return w.forEach(function(E){for(u=0;s=E.regex.exec(n);){var _=s[1].trim();if(l=m(_),l===void 0)if(typeof y=="function"){var k=y(n,s,o);l=typeof k=="string"?k:""}else if(o&&Object.prototype.hasOwnProperty.call(o,_))l="";else if(b){l=s[0];continue}else a.logger.warn("missed to pass in variable ".concat(_," for interpolating ").concat(n)),l="";else typeof l!="string"&&!a.useRawValueToEscape&&(l=bI(l));var P=E.safeValue(l);if(n=n.replace(s[0],P),b?(E.regex.lastIndex+=l.length,E.regex.lastIndex-=s[0].length):E.regex.lastIndex=0,u++,u>=a.maxReplaces)break}}),n}},{key:"nest",value:function(n,r){var i=this,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,s,l;function u(y,b){var w=this.nestingOptionsSeparator;if(y.indexOf(w)<0)return y;var E=y.split(new RegExp("".concat(w,"[ ]*{"))),_="{".concat(E[1]);y=E[0],_=this.interpolate(_,l);var k=_.match(/'/g),P=_.match(/"/g);(k&&k.length%2===0&&!P||P.length%2!==0)&&(_=_.replace(/'/g,'"'));try{l=JSON.parse(_),b&&(l=Hs(Hs({},b),l))}catch(L){return this.logger.warn("failed parsing options string in nesting for key ".concat(y),L),"".concat(y).concat(w).concat(_)}return delete l.defaultValue,y}for(;a=this.nestingRegexp.exec(n);){var d=[];l=Hs({},o),l=l.replace&&typeof l.replace!="string"?l.replace:l,l.applyPostProcessor=!1,delete l.defaultValue;var h=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){var m=a[1].split(this.formatSeparator).map(function(y){return y.trim()});a[1]=m.shift(),d=m,h=!0}if(s=r(u.call(this,a[1].trim(),l),l),s&&a[0]===n&&typeof s!="string")return s;typeof s!="string"&&(s=bI(s)),s||(this.logger.warn("missed to resolve ".concat(a[1]," for nesting ").concat(n)),s=""),h&&(s=d.reduce(function(y,b){return i.format(y,b,o.lng,Hs(Hs({},o),{},{interpolationkey:a[1].trim()}))},s.trim())),n=n.replace(a[0],s),this.regexp.lastIndex=0}return n}}]),e}();function MI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Du(e){for(var t=1;t-1){var r=e.split("(");t=r[0].toLowerCase().trim();var i=r[1].substring(0,r[1].length-1);if(t==="currency"&&i.indexOf(":")<0)n.currency||(n.currency=i.trim());else if(t==="relativetime"&&i.indexOf(":")<0)n.range||(n.range=i.trim());else{var o=i.split(";");o.forEach(function(a){if(a){var s=a.split(":"),l=pwe(s),u=l[0],d=l.slice(1),h=d.join(":").trim().replace(/^'+|'+$/g,"");n[u.trim()]||(n[u.trim()]=h),h==="false"&&(n[u.trim()]=!1),h==="true"&&(n[u.trim()]=!0),isNaN(h)||(n[u.trim()]=parseInt(h,10))}})}}return{formatName:t,formatOptions:n}}function jg(e){var t={};return function(r,i,o){var a=i+JSON.stringify(o),s=t[a];return s||(s=e(i,o),t[a]=s),s(r)}}var Dwe=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ys(this,e),this.logger=Ul.create("formatter"),this.options=t,this.formats={number:jg(function(n,r){var i=new Intl.NumberFormat(n,Du({},r));return function(o){return i.format(o)}}),currency:jg(function(n,r){var i=new Intl.NumberFormat(n,Du(Du({},r),{},{style:"currency"}));return function(o){return i.format(o)}}),datetime:jg(function(n,r){var i=new Intl.DateTimeFormat(n,Du({},r));return function(o){return i.format(o)}}),relativetime:jg(function(n,r){var i=new Intl.RelativeTimeFormat(n,Du({},r));return function(o){return i.format(o,r.range||"day")}}),list:jg(function(n,r){var i=new Intl.ListFormat(n,Du({},r));return function(o){return i.format(o)}})},this.init(t)}return bs(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},i=r.interpolation;this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||","}},{key:"add",value:function(n,r){this.formats[n.toLowerCase().trim()]=r}},{key:"addCached",value:function(n,r){this.formats[n.toLowerCase().trim()]=jg(r)}},{key:"format",value:function(n,r,i){var o=this,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=r.split(this.formatSeparator),l=s.reduce(function(u,d){var h=Rwe(d),m=h.formatName,y=h.formatOptions;if(o.formats[m]){var b=u;try{var w=a&&a.formatParams&&a.formatParams[a.interpolationkey]||{},E=w.locale||w.lng||a.locale||a.lng||i;b=o.formats[m](u,E,Du(Du(Du({},y),a),w))}catch(_){o.logger.warn(_)}return b}else o.logger.warn("there was no format function for ".concat(m));return u},n);return l}}]),e}();function LI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function AI(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function $we(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}var Fwe=function(e){c4(n,e);var t=jwe(n);function n(r,i,o){var a,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return ys(this,n),a=t.call(this),d4&&nf.call(zd(a)),a.backend=r,a.store=i,a.services=o,a.languageUtils=o.languageUtils,a.options=s,a.logger=Ul.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=s.maxParallelReads||10,a.readingCalls=0,a.maxRetries=s.maxRetries>=0?s.maxRetries:5,a.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,s.backend,s),a}return bs(n,[{key:"queueLoad",value:function(i,o,a,s){var l=this,u={},d={},h={},m={};return i.forEach(function(y){var b=!0;o.forEach(function(w){var E="".concat(y,"|").concat(w);!a.reload&&l.store.hasResourceBundle(y,w)?l.state[E]=2:l.state[E]<0||(l.state[E]===1?d[E]===void 0&&(d[E]=!0):(l.state[E]=1,b=!1,d[E]===void 0&&(d[E]=!0),u[E]===void 0&&(u[E]=!0),m[w]===void 0&&(m[w]=!0)))}),b||(h[y]=!0)}),(Object.keys(u).length||Object.keys(d).length)&&this.queue.push({pending:d,pendingCount:Object.keys(d).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(u),pending:Object.keys(d),toLoadLanguages:Object.keys(h),toLoadNamespaces:Object.keys(m)}}},{key:"loaded",value:function(i,o,a){var s=i.split("|"),l=s[0],u=s[1];o&&this.emit("failedLoading",l,u,o),a&&this.store.addResourceBundle(l,u,a),this.state[i]=o?-1:2;var d={};this.queue.forEach(function(h){ywe(h.loaded,[l],u),$we(h,i),o&&h.errors.push(o),h.pendingCount===0&&!h.done&&(Object.keys(h.loaded).forEach(function(m){d[m]||(d[m]={});var y=h.loaded[m];y.length&&y.forEach(function(b){d[m][b]===void 0&&(d[m][b]=!0)})}),h.done=!0,h.errors.length?h.callback(h.errors):h.callback())}),this.emit("loaded",d),this.queue=this.queue.filter(function(h){return!h.done})}},{key:"read",value:function(i,o,a){var s=this,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,u=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,d=arguments.length>5?arguments[5]:void 0;if(!i.length)return d(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:i,ns:o,fcName:a,tried:l,wait:u,callback:d});return}this.readingCalls++;var h=function(w,E){if(s.readingCalls--,s.waitingReads.length>0){var _=s.waitingReads.shift();s.read(_.lng,_.ns,_.fcName,_.tried,_.wait,_.callback)}if(w&&E&&l2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),l&&l();typeof i=="string"&&(i=this.languageUtils.toResolveHierarchy(i)),typeof o=="string"&&(o=[o]);var u=this.queueLoad(i,o,s,l);if(!u.toLoad.length)return u.pending.length||l(),null;u.toLoad.forEach(function(d){a.loadOne(d)})}},{key:"load",value:function(i,o,a){this.prepareLoading(i,o,{},a)}},{key:"reload",value:function(i,o,a){this.prepareLoading(i,o,{reload:!0},a)}},{key:"loadOne",value:function(i){var o=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",s=i.split("|"),l=s[0],u=s[1];this.read(l,u,"read",void 0,void 0,function(d,h){d&&o.logger.warn("".concat(a,"loading namespace ").concat(u," for language ").concat(l," failed"),d),!d&&h&&o.logger.log("".concat(a,"loaded namespace ").concat(u," for language ").concat(l),h),o.loaded(i,d,h)})}},{key:"saveMissing",value:function(i,o,a,s,l){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},d=arguments.length>6&&arguments[6]!==void 0?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(o)){this.logger.warn('did not save key "'.concat(a,'" as the namespace "').concat(o,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend&&this.backend.create){var h=AI(AI({},u),{},{isUpdate:l}),m=this.backend.create.bind(this.backend);if(m.length<6)try{var y;m.length===5?y=m(i,o,a,s,h):y=m(i,o,a,s),y&&typeof y.then=="function"?y.then(function(b){return d(null,b)}).catch(d):d(null,y)}catch(b){d(b)}else m(i,o,a,s,d,h)}!i||!i[0]||this.store.addResource(i[0],o,a,s)}}}]),n}(nf);function OI(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var n={};if(Zs(t[1])==="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),Zs(t[2])==="object"||Zs(t[3])==="object"){var r=t[3]||t[2];Object.keys(r).forEach(function(i){n[i]=r[i]})}return n},interpolation:{escapeValue:!0,format:function(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function II(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function RI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Al(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ox(){}function Hwe(e){var t=Object.getOwnPropertyNames(Object.getPrototypeOf(e));t.forEach(function(n){typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}var A3=function(e){c4(n,e);var t=Bwe(n);function n(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(ys(this,n),r=t.call(this),d4&&nf.call(zd(r)),r.options=II(i),r.services={},r.logger=Ul,r.modules={external:[]},Hwe(zd(r)),o&&!r.isInitialized&&!i.isClone){if(!r.options.initImmediate)return r.init(i,o),y2(r,zd(r));setTimeout(function(){r.init(i,o)},0)}return r}return bs(n,[{key:"init",value:function(){var i=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;typeof o=="function"&&(a=o,o={}),!o.defaultNS&&o.defaultNS!==!1&&o.ns&&(typeof o.ns=="string"?o.defaultNS=o.ns:o.ns.indexOf("translation")<0&&(o.defaultNS=o.ns[0]));var s=OI();this.options=Al(Al(Al({},s),this.options),II(o)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=Al(Al({},s.interpolation),this.options.interpolation)),o.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=o.keySeparator),o.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=o.nsSeparator);function l(_){return _?typeof _=="function"?new _:_:null}if(!this.options.isClone){this.modules.logger?Ul.init(l(this.modules.logger),this.options):Ul.init(null,this.options);var u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=Dwe);var d=new EI(this.options);this.store=new kwe(this.options.resources,this.options);var h=this.services;h.logger=Ul,h.resourceStore=this.store,h.languageUtils=d,h.pluralResolver=new Owe(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(h.formatter=l(u),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new Iwe(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Fwe(l(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(_){for(var k=arguments.length,P=new Array(k>1?k-1:0),L=1;L1?k-1:0),L=1;L0&&m[0]!=="dev"&&(this.options.lng=m[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var y=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];y.forEach(function(_){i[_]=function(){var k;return(k=i.store)[_].apply(k,arguments)}});var b=["addResource","addResources","addResourceBundle","removeResourceBundle"];b.forEach(function(_){i[_]=function(){var k;return(k=i.store)[_].apply(k,arguments),i}});var w=Xv(),E=function(){var k=function(L,O){i.isInitialized&&!i.initializedStoreOnce&&i.logger.warn("init: i18next is already initialized. You should call init just once!"),i.isInitialized=!0,i.options.isClone||i.logger.log("initialized",i.options),i.emit("initialized",i.options),w.resolve(O),a(L,O)};if(i.languages&&i.options.compatibilityAPI!=="v1"&&!i.isInitialized)return k(null,i.t.bind(i));i.changeLanguage(i.options.lng,k)};return this.options.resources||!this.options.initImmediate?E():setTimeout(E,0),w}},{key:"loadResources",value:function(i){var o=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ox,s=a,l=typeof i=="string"?i:this.language;if(typeof i=="function"&&(s=i),!this.options.resources||this.options.partialBundledLanguages){if(l&&l.toLowerCase()==="cimode")return s();var u=[],d=function(y){if(y){var b=o.services.languageUtils.toResolveHierarchy(y);b.forEach(function(w){u.indexOf(w)<0&&u.push(w)})}};if(l)d(l);else{var h=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);h.forEach(function(m){return d(m)})}this.options.preload&&this.options.preload.forEach(function(m){return d(m)}),this.services.backendConnector.load(u,this.options.ns,function(m){!m&&!o.resolvedLanguage&&o.language&&o.setResolvedLanguage(o.language),s(m)})}else s(null)}},{key:"reloadResources",value:function(i,o,a){var s=Xv();return i||(i=this.languages),o||(o=this.options.ns),a||(a=ox),this.services.backendConnector.reload(i,o,function(l){s.resolve(),a(l)}),s}},{key:"use",value:function(i){if(!i)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!i.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return i.type==="backend"&&(this.modules.backend=i),(i.type==="logger"||i.log&&i.warn&&i.error)&&(this.modules.logger=i),i.type==="languageDetector"&&(this.modules.languageDetector=i),i.type==="i18nFormat"&&(this.modules.i18nFormat=i),i.type==="postProcessor"&&jV.addPostProcessor(i),i.type==="formatter"&&(this.modules.formatter=i),i.type==="3rdParty"&&this.modules.external.push(i),this}},{key:"setResolvedLanguage",value:function(i){if(!(!i||!this.languages)&&!(["cimode","dev"].indexOf(i)>-1))for(var o=0;o-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}},{key:"changeLanguage",value:function(i,o){var a=this;this.isLanguageChangingTo=i;var s=Xv();this.emit("languageChanging",i);var l=function(m){a.language=m,a.languages=a.services.languageUtils.toResolveHierarchy(m),a.resolvedLanguage=void 0,a.setResolvedLanguage(m)},u=function(m,y){y?(l(y),a.translator.changeLanguage(y),a.isLanguageChangingTo=void 0,a.emit("languageChanged",y),a.logger.log("languageChanged",y)):a.isLanguageChangingTo=void 0,s.resolve(function(){return a.t.apply(a,arguments)}),o&&o(m,function(){return a.t.apply(a,arguments)})},d=function(m){!i&&!m&&a.services.languageDetector&&(m=[]);var y=typeof m=="string"?m:a.services.languageUtils.getBestMatchFromCodes(m);y&&(a.language||l(y),a.translator.language||a.translator.changeLanguage(y),a.services.languageDetector&&a.services.languageDetector.cacheUserLanguage&&a.services.languageDetector.cacheUserLanguage(y)),a.loadResources(y,function(b){u(b,y)})};return!i&&this.services.languageDetector&&!this.services.languageDetector.async?d(this.services.languageDetector.detect()):!i&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(d):this.services.languageDetector.detect(d):d(i),s}},{key:"getFixedT",value:function(i,o,a){var s=this,l=function u(d,h){var m;if(Zs(h)!=="object"){for(var y=arguments.length,b=new Array(y>2?y-2:0),w=2;w1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var s=this.resolvedLanguage||this.languages[0],l=this.options?this.options.fallbackLng:!1,u=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;var d=function(y,b){var w=o.services.backendConnector.state["".concat(y,"|").concat(b)];return w===-1||w===2};if(a.precheck){var h=a.precheck(this,d);if(h!==void 0)return h}return!!(this.hasResourceBundle(s,i)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||d(s,i)&&(!l||d(u,i)))}},{key:"loadNamespaces",value:function(i,o){var a=this,s=Xv();return this.options.ns?(typeof i=="string"&&(i=[i]),i.forEach(function(l){a.options.ns.indexOf(l)<0&&a.options.ns.push(l)}),this.loadResources(function(l){s.resolve(),o&&o(l)}),s):(o&&o(),Promise.resolve())}},{key:"loadLanguages",value:function(i,o){var a=Xv();typeof i=="string"&&(i=[i]);var s=this.options.preload||[],l=i.filter(function(u){return s.indexOf(u)<0});return l.length?(this.options.preload=s.concat(l),this.loadResources(function(u){a.resolve(),o&&o(u)}),a):(o&&o(),Promise.resolve())}},{key:"dir",value:function(i){if(i||(i=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!i)return"rtl";var o=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services&&this.services.languageUtils||new EI(OI());return o.indexOf(a.getLanguagePartFromCode(i))>-1||i.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var i=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ox,s=Al(Al(Al({},this.options),o),{isClone:!0}),l=new n(s);(o.debug!==void 0||o.prefix!==void 0)&&(l.logger=l.logger.clone(o));var u=["store","services","language"];return u.forEach(function(d){l[d]=i[d]}),l.services=Al({},this.services),l.services.utils={hasLoadedNamespace:l.hasLoadedNamespace.bind(l)},l.translator=new kI(l.services,l.options),l.translator.on("*",function(d){for(var h=arguments.length,m=new Array(h>1?h-1:0),y=1;y0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new A3(e,t)});var Pt=A3.createInstance();Pt.createInstance=A3.createInstance;Pt.createInstance;Pt.dir;Pt.init;Pt.loadResources;Pt.reloadResources;Pt.use;Pt.changeLanguage;Pt.getFixedT;Pt.t;Pt.exists;Pt.setDefaultNamespace;Pt.hasLoadedNamespace;Pt.loadNamespaces;Pt.loadLanguages;var NV=[],Wwe=NV.forEach,Vwe=NV.slice;function Uwe(e){return Wwe.call(Vwe.call(arguments,1),function(t){if(t)for(var n in t)e[n]===void 0&&(e[n]=t[n])}),e}var DI=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Gwe=function(t,n,r){var i=r||{};i.path=i.path||"/";var o=encodeURIComponent(n),a="".concat(t,"=").concat(o);if(i.maxAge>0){var s=i.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");a+="; Max-Age=".concat(Math.floor(s))}if(i.domain){if(!DI.test(i.domain))throw new TypeError("option domain is invalid");a+="; Domain=".concat(i.domain)}if(i.path){if(!DI.test(i.path))throw new TypeError("option path is invalid");a+="; Path=".concat(i.path)}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");a+="; Expires=".concat(i.expires.toUTCString())}if(i.httpOnly&&(a+="; HttpOnly"),i.secure&&(a+="; Secure"),i.sameSite){var l=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return a},jI={create:function(t,n,r,i){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+r*60*1e3)),i&&(o.domain=i),document.cookie=Gwe(t,encodeURIComponent(n),o)},read:function(t){for(var n="".concat(t,"="),r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),o=i.split("&"),a=0;a0){var l=o[a].substring(0,s);l===t.lookupQuerystring&&(n=o[a].substring(s+1))}}}return n}},Zv=null,NI=function(){if(Zv!==null)return Zv;try{Zv=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Zv=!1}return Zv},Ywe={name:"localStorage",lookup:function(t){var n;if(t.lookupLocalStorage&&NI()){var r=window.localStorage.getItem(t.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupLocalStorage&&NI()&&window.localStorage.setItem(n.lookupLocalStorage,t)}},Qv=null,$I=function(){if(Qv!==null)return Qv;try{Qv=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Qv=!1}return Qv},Xwe={name:"sessionStorage",lookup:function(t){var n;if(t.lookupSessionStorage&&$I()){var r=window.sessionStorage.getItem(t.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupSessionStorage&&$I()&&window.sessionStorage.setItem(n.lookupSessionStorage,t)}},Zwe={name:"navigator",lookup:function(t){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},Qwe={name:"htmlTag",lookup:function(t){var n,r=t.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},Jwe={name:"path",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof r[t.lookupFromPathIndex]!="string")return;n=r[t.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},e4e={name:"subdomain",lookup:function(t){var n=typeof t.lookupFromSubdomainIndex=="number"?t.lookupFromSubdomainIndex+1:1,r=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}};function t4e(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}}var $V=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ys(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return bs(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=Uwe(r,this.options||{},t4e()),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(qwe),this.addDetector(Kwe),this.addDetector(Ywe),this.addDetector(Xwe),this.addDetector(Zwe),this.addDetector(Qwe),this.addDetector(Jwe),this.addDetector(e4e)}},{key:"addDetector",value:function(n){this.detectors[n.name]=n}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(o){if(r.detectors[o]){var a=r.detectors[o].lookup(r.options);a&&typeof a=="string"&&(a=[a]),a&&(i=i.concat(a))}}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(o){i.detectors[o]&&i.detectors[o].cacheUserLanguage(n,i.options)}))}}]),e}();$V.type="languageDetector";function Lk(e){return Lk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lk(e)}var FV=[],n4e=FV.forEach,r4e=FV.slice;function Ak(e){return n4e.call(r4e.call(arguments,1),function(t){if(t)for(var n in t)e[n]===void 0&&(e[n]=t[n])}),e}function BV(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":Lk(XMLHttpRequest))==="object"}function i4e(e){return!!e&&typeof e.then=="function"}function o4e(e){return i4e(e)?e:Promise.resolve(e)}function a4e(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Fy={},s4e={get exports(){return Fy},set exports(e){Fy=e}},Y1={},l4e={get exports(){return Y1},set exports(e){Y1=e}},FI;function u4e(){return FI||(FI=1,function(e,t){var n=typeof self<"u"?self:Co,r=function(){function o(){this.fetch=!1,this.DOMException=n.DOMException}return o.prototype=n,new o}();(function(o){(function(a){var s={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function l($){return $&&DataView.prototype.isPrototypeOf($)}if(s.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],d=ArrayBuffer.isView||function($){return $&&u.indexOf(Object.prototype.toString.call($))>-1};function h($){if(typeof $!="string"&&($=String($)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test($))throw new TypeError("Invalid character in header field name");return $.toLowerCase()}function m($){return typeof $!="string"&&($=String($)),$}function y($){var U={next:function(){var X=$.shift();return{done:X===void 0,value:X}}};return s.iterable&&(U[Symbol.iterator]=function(){return U}),U}function b($){this.map={},$ instanceof b?$.forEach(function(U,X){this.append(X,U)},this):Array.isArray($)?$.forEach(function(U){this.append(U[0],U[1])},this):$&&Object.getOwnPropertyNames($).forEach(function(U){this.append(U,$[U])},this)}b.prototype.append=function($,U){$=h($),U=m(U);var X=this.map[$];this.map[$]=X?X+", "+U:U},b.prototype.delete=function($){delete this.map[h($)]},b.prototype.get=function($){return $=h($),this.has($)?this.map[$]:null},b.prototype.has=function($){return this.map.hasOwnProperty(h($))},b.prototype.set=function($,U){this.map[h($)]=m(U)},b.prototype.forEach=function($,U){for(var X in this.map)this.map.hasOwnProperty(X)&&$.call(U,this.map[X],X,this)},b.prototype.keys=function(){var $=[];return this.forEach(function(U,X){$.push(X)}),y($)},b.prototype.values=function(){var $=[];return this.forEach(function(U){$.push(U)}),y($)},b.prototype.entries=function(){var $=[];return this.forEach(function(U,X){$.push([X,U])}),y($)},s.iterable&&(b.prototype[Symbol.iterator]=b.prototype.entries);function w($){if($.bodyUsed)return Promise.reject(new TypeError("Already read"));$.bodyUsed=!0}function E($){return new Promise(function(U,X){$.onload=function(){U($.result)},$.onerror=function(){X($.error)}})}function _($){var U=new FileReader,X=E(U);return U.readAsArrayBuffer($),X}function k($){var U=new FileReader,X=E(U);return U.readAsText($),X}function P($){for(var U=new Uint8Array($),X=new Array(U.length),Q=0;Q-1?U:$}function N($,U){U=U||{};var X=U.body;if($ instanceof N){if($.bodyUsed)throw new TypeError("Already read");this.url=$.url,this.credentials=$.credentials,U.headers||(this.headers=new b($.headers)),this.method=$.method,this.mode=$.mode,this.signal=$.signal,!X&&$._bodyInit!=null&&(X=$._bodyInit,$.bodyUsed=!0)}else this.url=String($);if(this.credentials=U.credentials||this.credentials||"same-origin",(U.headers||!this.headers)&&(this.headers=new b(U.headers)),this.method=R(U.method||this.method||"GET"),this.mode=U.mode||this.mode||null,this.signal=U.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&X)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(X)}N.prototype.clone=function(){return new N(this,{body:this._bodyInit})};function W($){var U=new FormData;return $.trim().split("&").forEach(function(X){if(X){var Q=X.split("="),G=Q.shift().replace(/\+/g," "),Y=Q.join("=").replace(/\+/g," ");U.append(decodeURIComponent(G),decodeURIComponent(Y))}}),U}function B($){var U=new b,X=$.replace(/\r?\n[\t ]+/g," ");return X.split(/\r?\n/).forEach(function(Q){var G=Q.split(":"),Y=G.shift().trim();if(Y){var ee=G.join(":").trim();U.append(Y,ee)}}),U}O.call(N.prototype);function K($,U){U||(U={}),this.type="default",this.status=U.status===void 0?200:U.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in U?U.statusText:"OK",this.headers=new b(U.headers),this.url=U.url||"",this._initBody($)}O.call(K.prototype),K.prototype.clone=function(){return new K(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new b(this.headers),url:this.url})},K.error=function(){var $=new K(null,{status:0,statusText:""});return $.type="error",$};var ne=[301,302,303,307,308];K.redirect=function($,U){if(ne.indexOf(U)===-1)throw new RangeError("Invalid status code");return new K(null,{status:U,headers:{location:$}})},a.DOMException=o.DOMException;try{new a.DOMException}catch{a.DOMException=function(U,X){this.message=U,this.name=X;var Q=Error(U);this.stack=Q.stack},a.DOMException.prototype=Object.create(Error.prototype),a.DOMException.prototype.constructor=a.DOMException}function z($,U){return new Promise(function(X,Q){var G=new N($,U);if(G.signal&&G.signal.aborted)return Q(new a.DOMException("Aborted","AbortError"));var Y=new XMLHttpRequest;function ee(){Y.abort()}Y.onload=function(){var fe={status:Y.status,statusText:Y.statusText,headers:B(Y.getAllResponseHeaders()||"")};fe.url="responseURL"in Y?Y.responseURL:fe.headers.get("X-Request-URL");var ke="response"in Y?Y.response:Y.responseText;X(new K(ke,fe))},Y.onerror=function(){Q(new TypeError("Network request failed"))},Y.ontimeout=function(){Q(new TypeError("Network request failed"))},Y.onabort=function(){Q(new a.DOMException("Aborted","AbortError"))},Y.open(G.method,G.url,!0),G.credentials==="include"?Y.withCredentials=!0:G.credentials==="omit"&&(Y.withCredentials=!1),"responseType"in Y&&s.blob&&(Y.responseType="blob"),G.headers.forEach(function(fe,ke){Y.setRequestHeader(ke,fe)}),G.signal&&(G.signal.addEventListener("abort",ee),Y.onreadystatechange=function(){Y.readyState===4&&G.signal.removeEventListener("abort",ee)}),Y.send(typeof G._bodyInit>"u"?null:G._bodyInit)})}return z.polyfill=!0,o.fetch||(o.fetch=z,o.Headers=b,o.Request=N,o.Response=K),a.Headers=b,a.Request=N,a.Response=K,a.fetch=z,Object.defineProperty(a,"__esModule",{value:!0}),a})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t}(l4e,Y1)),Y1}(function(e,t){var n;if(typeof fetch=="function"&&(typeof Co<"u"&&Co.fetch?n=Co.fetch:typeof window<"u"&&window.fetch?n=window.fetch:n=fetch),typeof a4e<"u"&&(typeof window>"u"||typeof window.document>"u")){var r=n||u4e();r.default&&(r=r.default),t.default=r,e.exports=t.default}})(s4e,Fy);const zV=Fy,BI=Ij({__proto__:null,default:zV},[Fy]);function O3(e){return O3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O3(e)}var Zu;typeof fetch=="function"&&(typeof global<"u"&&global.fetch?Zu=global.fetch:typeof window<"u"&&window.fetch?Zu=window.fetch:Zu=fetch);var By;BV()&&(typeof global<"u"&&global.XMLHttpRequest?By=global.XMLHttpRequest:typeof window<"u"&&window.XMLHttpRequest&&(By=window.XMLHttpRequest));var I3;typeof ActiveXObject=="function"&&(typeof global<"u"&&global.ActiveXObject?I3=global.ActiveXObject:typeof window<"u"&&window.ActiveXObject&&(I3=window.ActiveXObject));!Zu&&BI&&!By&&!I3&&(Zu=zV||BI);typeof Zu!="function"&&(Zu=void 0);var Ok=function(t,n){if(n&&O3(n)==="object"){var r="";for(var i in n)r+="&"+encodeURIComponent(i)+"="+encodeURIComponent(n[i]);if(!r)return t;t=t+(t.indexOf("?")!==-1?"&":"?")+r.slice(1)}return t},zI=function(t,n,r){Zu(t,n).then(function(i){if(!i.ok)return r(i.statusText||"Error",{status:i.status});i.text().then(function(o){r(null,{status:i.status,data:o})}).catch(r)}).catch(r)},HI=!1,c4e=function(t,n,r,i){t.queryStringParams&&(n=Ok(n,t.queryStringParams));var o=Ak({},typeof t.customHeaders=="function"?t.customHeaders():t.customHeaders);r&&(o["Content-Type"]="application/json");var a=typeof t.requestOptions=="function"?t.requestOptions(r):t.requestOptions,s=Ak({method:r?"POST":"GET",body:r?t.stringify(r):void 0,headers:o},HI?{}:a);try{zI(n,s,i)}catch(l){if(!a||Object.keys(a).length===0||!l.message||l.message.indexOf("not implemented")<0)return i(l);try{Object.keys(a).forEach(function(u){delete s[u]}),zI(n,s,i),HI=!0}catch(u){i(u)}}},d4e=function(t,n,r,i){r&&O3(r)==="object"&&(r=Ok("",r).slice(1)),t.queryStringParams&&(n=Ok(n,t.queryStringParams));try{var o;By?o=new By:o=new I3("MSXML2.XMLHTTP.3.0"),o.open(r?"POST":"GET",n,1),t.crossDomain||o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.withCredentials=!!t.withCredentials,r&&o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),o.overrideMimeType&&o.overrideMimeType("application/json");var a=t.customHeaders;if(a=typeof a=="function"?a():a,a)for(var s in a)o.setRequestHeader(s,a[s]);o.onreadystatechange=function(){o.readyState>3&&i(o.status>=400?o.statusText:null,{status:o.status,data:o.responseText})},o.send(r)}catch(l){console&&console.log(l)}},f4e=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i=i||function(){},Zu&&n.indexOf("file:")!==0)return c4e(t,n,r,i);if(BV()||typeof ActiveXObject=="function")return d4e(t,n,r,i);i(new Error("No fetch and no xhr implementation found!"))};function zy(e){return zy=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zy(e)}function h4e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function WI(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};h4e(this,e),this.services=t,this.options=n,this.allOptions=r,this.type="backend",this.init(t,n,r)}return p4e(e,[{key:"init",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=Ak(i,this.options||{},v4e()),this.allOptions=o,this.services&&this.options.reloadInterval&&setInterval(function(){return r.reload()},this.options.reloadInterval)}},{key:"readMulti",value:function(n,r,i){this._readAny(n,n,r,r,i)}},{key:"read",value:function(n,r,i){this._readAny([n],n,[r],r,i)}},{key:"_readAny",value:function(n,r,i,o,a){var s=this,l=this.options.loadPath;typeof this.options.loadPath=="function"&&(l=this.options.loadPath(n,i)),l=o4e(l),l.then(function(u){if(!u)return a(null,{});var d=s.services.interpolator.interpolate(u,{lng:n.join("+"),ns:i.join("+")});s.loadUrl(d,a,r,o)})}},{key:"loadUrl",value:function(n,r,i,o){var a=this;this.options.request(this.options,n,void 0,function(s,l){if(l&&(l.status>=500&&l.status<600||!l.status))return r("failed loading "+n+"; status code: "+l.status,!0);if(l&&l.status>=400&&l.status<500)return r("failed loading "+n+"; status code: "+l.status,!1);if(!l&&s&&s.message&&s.message.indexOf("Failed to fetch")>-1)return r("failed loading "+n+": "+s.message,!0);if(s)return r(s,!1);var u,d;try{typeof l.data=="string"?u=a.options.parse(l.data,i,o):u=l.data}catch{d="failed parsing "+n+" to json"}if(d)return r(d,!1);r(null,u)})}},{key:"create",value:function(n,r,i,o,a){var s=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var l=this.options.parsePayload(r,i,o),u=0,d=[],h=[];n.forEach(function(m){var y=s.options.addPath;typeof s.options.addPath=="function"&&(y=s.options.addPath(m,r));var b=s.services.interpolator.interpolate(y,{lng:m,ns:r});s.options.request(s.options,b,l,function(w,E){u+=1,d.push(w),h.push(E),u===n.length&&typeof a=="function"&&a(d,h)})})}}},{key:"reload",value:function(){var n=this,r=this.services,i=r.backendConnector,o=r.languageUtils,a=r.logger,s=i.language;if(!(s&&s.toLowerCase()==="cimode")){var l=[],u=function(h){var m=o.toResolveHierarchy(h);m.forEach(function(y){l.indexOf(y)<0&&l.push(y)})};u(s),this.allOptions.preload&&this.allOptions.preload.forEach(function(d){return u(d)}),l.forEach(function(d){n.allOptions.ns.forEach(function(h){i.read(d,h,"read",null,null,function(m,y){m&&a.warn("loading namespace ".concat(h," for language ").concat(d," failed"),m),!m&&y&&a.log("loaded namespace ".concat(h," for language ").concat(d),y),i.loaded("".concat(d,"|").concat(h),m,y)})})})}}}]),e}();WV.type="backend";function y4e(){if(console&&console.warn){for(var e,t=arguments.length,n=new Array(t),r=0;r2&&arguments[2]!==void 0?arguments[2]:{},r=t.languages[0],i=t.options?t.options.fallbackLng:!1,o=t.languages[t.languages.length-1];if(r.toLowerCase()==="cimode")return!0;var a=function(l,u){var d=t.services.backendConnector.state["".concat(l,"|").concat(u)];return d===-1||d===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!a(t.isLanguageChangingTo,e)?!1:!!(t.hasResourceBundle(r,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||a(r,e)&&(!i||a(o,e)))}function x4e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!t.languages||!t.languages.length)return Ik("i18n.languages were undefined or empty",t.languages),!0;var r=t.options.ignoreJSONStructure!==void 0;return r?t.hasLoadedNamespace(e,{precheck:function(o,a){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&o.services.backendConnector.backend&&o.isLanguageChangingTo&&!a(o.isLanguageChangingTo,e))return!1}}):b4e(e,t,n)}var S4e=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,w4e={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},C4e=function(t){return w4e[t]},_4e=function(t){return t.replace(S4e,C4e)};function GI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function qI(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{};Rk=qI(qI({},Rk),e)}function E4e(){return Rk}var VV;function P4e(e){VV=e}function T4e(){return VV}var M4e={type:"3rdParty",init:function(t){k4e(t.options.react),P4e(t)}},L4e=S.createContext(),A4e=function(){function e(){ys(this,e),this.usedNamespaces={}}return bs(e,[{key:"addUsedNamespaces",value:function(n){var r=this;n.forEach(function(i){r.usedNamespaces[i]||(r.usedNamespaces[i]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();function O4e(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(d){u=!0,i=d}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function I4e(e,t){return AV(e)||O4e(e,t)||OV(e,t)||IV()}function KI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function UC(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},n=t.i18n,r=S.useContext(L4e)||{},i=r.i18n,o=r.defaultNS,a=n||i||T4e();if(a&&!a.reportNamespaces&&(a.reportNamespaces=new A4e),!a){Ik("You will need to pass in an i18next instance by using initReactI18next");var s=function(W){return Array.isArray(W)?W[W.length-1]:W},l=[s,{},!1];return l.t=s,l.i18n={},l.ready=!1,l}a.options.react&&a.options.react.wait!==void 0&&Ik("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var u=UC(UC(UC({},E4e()),a.options.react),t),d=u.useSuspense,h=u.keyPrefix,m=e||o||a.options&&a.options.defaultNS;m=typeof m=="string"?[m]:m||["translation"],a.reportNamespaces.addUsedNamespaces&&a.reportNamespaces.addUsedNamespaces(m);var y=(a.isInitialized||a.initializedStoreOnce)&&m.every(function(N){return x4e(N,a,u)});function b(){return a.getFixedT(null,u.nsMode==="fallback"?m:m[0],h)}var w=S.useState(b),E=I4e(w,2),_=E[0],k=E[1],P=m.join(),L=R4e(P),O=S.useRef(!0);S.useEffect(function(){var N=u.bindI18n,W=u.bindI18nStore;O.current=!0,!y&&!d&&UI(a,m,function(){O.current&&k(b)}),y&&L&&L!==P&&O.current&&k(b);function B(){O.current&&k(b)}return N&&a&&a.on(N,B),W&&a&&a.store.on(W,B),function(){O.current=!1,N&&a&&N.split(" ").forEach(function(K){return a.off(K,B)}),W&&a&&W.split(" ").forEach(function(K){return a.store.off(K,B)})}},[a,P]);var D=S.useRef(!0);S.useEffect(function(){O.current&&!D.current&&k(b),D.current=!1},[a,h]);var R=[_,a,y];if(R.t=_,R.i18n=a,R.ready=y,y||!y&&!d)return R;throw new Promise(function(N){UI(a,m,function(){N()})})}Pt.use(WV).use($V).use(M4e).init({fallbackLng:"en",debug:!1,backend:{loadPath:"/locales/{{lng}}.json"},interpolation:{escapeValue:!1},returnNull:!1});const D4e={isConnected:!1,isProcessing:!1,log:[],shouldShowLogViewer:!1,shouldDisplayInProgressType:"latents",shouldDisplayGuides:!0,isGFPGANAvailable:!0,isESRGANAvailable:!0,socketId:"",shouldConfirmOnDelete:!0,openAccordions:[0],currentStep:0,totalSteps:0,currentIteration:0,totalIterations:0,currentStatus:Pt.isInitialized?Pt.t("common.statusDisconnected"):"Disconnected",currentStatusHasSteps:!1,model:"",model_id:"",model_hash:"",app_id:"",app_version:"",model_list:{},infill_methods:[],hasError:!1,wasErrorSeen:!0,isCancelable:!0,saveIntermediatesInterval:5,enableImageDebugging:!1,toastQueue:[],searchFolder:null,foundModels:null,openModel:null,cancelOptions:{cancelType:"immediate",cancelAfter:null}},UV=fp({name:"system",initialState:D4e,reducers:{setShouldDisplayInProgressType:(e,t)=>{e.shouldDisplayInProgressType=t.payload},setIsProcessing:(e,t)=>{e.isProcessing=t.payload},setCurrentStatus:(e,t)=>{e.currentStatus=t.payload},setSystemStatus:(e,t)=>({...e,...t.payload}),errorOccurred:e=>{e.hasError=!0,e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Pt.t("common.statusError"),e.wasErrorSeen=!1},errorSeen:e=>{e.hasError=!1,e.wasErrorSeen=!0,e.currentStatus=e.isConnected?Pt.t("common.statusConnected"):Pt.t("common.statusDisconnected")},addLogEntry:(e,t)=>{const{timestamp:n,message:r,level:i}=t.payload,a={timestamp:n,message:r,level:i||"info"};e.log.push(a)},setShouldShowLogViewer:(e,t)=>{e.shouldShowLogViewer=t.payload},setIsConnected:(e,t)=>{e.isConnected=t.payload,e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.hasError=!1},setSocketId:(e,t)=>{e.socketId=t.payload},setShouldConfirmOnDelete:(e,t)=>{e.shouldConfirmOnDelete=t.payload},setOpenAccordions:(e,t)=>{e.openAccordions=t.payload},setSystemConfig:(e,t)=>({...e,...t.payload}),setShouldDisplayGuides:(e,t)=>{e.shouldDisplayGuides=t.payload},processingCanceled:e=>{e.isProcessing=!1,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Pt.t("common.statusProcessingCanceled")},generationRequested:e=>{e.isProcessing=!0,e.isCancelable=!0,e.currentStep=0,e.totalSteps=0,e.currentIteration=0,e.totalIterations=0,e.currentStatusHasSteps=!1,e.currentStatus=Pt.t("common.statusPreparing")},setModelList:(e,t)=>{e.model_list=t.payload},setIsCancelable:(e,t)=>{e.isCancelable=t.payload},modelChangeRequested:e=>{e.currentStatus=Pt.t("common.statusLoadingModel"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},modelConvertRequested:e=>{e.currentStatus=Pt.t("common.statusConvertingModel"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},modelMergingRequested:e=>{e.currentStatus=Pt.t("common.statusMergingModels"),e.isCancelable=!1,e.isProcessing=!0,e.currentStatusHasSteps=!1},setSaveIntermediatesInterval:(e,t)=>{e.saveIntermediatesInterval=t.payload},setEnableImageDebugging:(e,t)=>{e.enableImageDebugging=t.payload},addToast:(e,t)=>{e.toastQueue.push(t.payload)},clearToastQueue:e=>{e.toastQueue=[]},setProcessingIndeterminateTask:(e,t)=>{e.isProcessing=!0,e.currentStatus=t.payload,e.currentStatusHasSteps=!1},setSearchFolder:(e,t)=>{e.searchFolder=t.payload},setFoundModels:(e,t)=>{e.foundModels=t.payload},setOpenModel:(e,t)=>{e.openModel=t.payload},setCancelType:(e,t)=>{e.cancelOptions.cancelType=t.payload},setCancelAfter:(e,t)=>{e.cancelOptions.cancelAfter=t.payload}}}),{setShouldDisplayInProgressType:j4e,setIsProcessing:_a,addLogEntry:Mi,setShouldShowLogViewer:GC,setIsConnected:YI,setSocketId:kFe,setShouldConfirmOnDelete:GV,setOpenAccordions:N4e,setSystemStatus:$4e,setCurrentStatus:mh,setSystemConfig:F4e,setShouldDisplayGuides:B4e,processingCanceled:z4e,errorOccurred:XI,errorSeen:qV,setModelList:Ng,setIsCancelable:Ed,modelChangeRequested:H4e,modelConvertRequested:W4e,modelMergingRequested:V4e,setSaveIntermediatesInterval:U4e,setEnableImageDebugging:G4e,generationRequested:q4e,addToast:Bu,clearToastQueue:K4e,setProcessingIndeterminateTask:Y4e,setSearchFolder:KV,setFoundModels:YV,setOpenModel:ZI,setCancelType:QI,setCancelAfter:qC}=UV.actions,X4e=UV.reducer,EE=["txt2img","img2img","unifiedCanvas","nodes","postprocess","training"],Z4e={activeTab:0,currentTheme:"dark",parametersPanelScrollPosition:0,shouldHoldParametersPanelOpen:!1,shouldPinParametersPanel:!0,shouldShowParametersPanel:!0,shouldShowDualDisplay:!0,shouldShowImageDetails:!1,shouldUseCanvasBetaLayout:!1,shouldShowExistingModelsInSearch:!1,shouldUseSliders:!1,addNewModelUIOption:null},Q4e=Z4e,XV=fp({name:"ui",initialState:Q4e,reducers:{setActiveTab:(e,t)=>{typeof t.payload=="number"?e.activeTab=t.payload:e.activeTab=EE.indexOf(t.payload)},setCurrentTheme:(e,t)=>{e.currentTheme=t.payload},setParametersPanelScrollPosition:(e,t)=>{e.parametersPanelScrollPosition=t.payload},setShouldPinParametersPanel:(e,t)=>{e.shouldPinParametersPanel=t.payload},setShouldShowParametersPanel:(e,t)=>{e.shouldShowParametersPanel=t.payload},setShouldHoldParametersPanelOpen:(e,t)=>{e.shouldHoldParametersPanelOpen=t.payload},setShouldShowDualDisplay:(e,t)=>{e.shouldShowDualDisplay=t.payload},setShouldShowImageDetails:(e,t)=>{e.shouldShowImageDetails=t.payload},setShouldUseCanvasBetaLayout:(e,t)=>{e.shouldUseCanvasBetaLayout=t.payload},setShouldShowExistingModelsInSearch:(e,t)=>{e.shouldShowExistingModelsInSearch=t.payload},setShouldUseSliders:(e,t)=>{e.shouldUseSliders=t.payload},setAddNewModelUIOption:(e,t)=>{e.addNewModelUIOption=t.payload}}}),{setActiveTab:Uo,setCurrentTheme:J4e,setParametersPanelScrollPosition:e5e,setShouldHoldParametersPanelOpen:t5e,setShouldPinParametersPanel:n5e,setShouldShowParametersPanel:Vh,setShouldShowDualDisplay:r5e,setShouldShowImageDetails:ZV,setShouldUseCanvasBetaLayout:i5e,setShouldShowExistingModelsInSearch:o5e,setShouldUseSliders:a5e,setAddNewModelUIOption:Uh}=XV.actions,s5e=XV.reducer,au=Object.create(null);au.open="0";au.close="1";au.ping="2";au.pong="3";au.message="4";au.upgrade="5";au.noop="6";const gS=Object.create(null);Object.keys(au).forEach(e=>{gS[au[e]]=e});const l5e={type:"error",data:"parser error"},u5e=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",c5e=typeof ArrayBuffer=="function",d5e=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,QV=({type:e,data:t},n,r)=>u5e&&t instanceof Blob?n?r(t):JI(t,r):c5e&&(t instanceof ArrayBuffer||d5e(t))?n?r(t):JI(new Blob([t]),r):r(au[e]+(t||"")),JI=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)},eR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",x1=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,n=e.length,r,i=0,o,a,s,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),d=new Uint8Array(u);for(r=0;r>4,d[i++]=(a&15)<<4|s>>2,d[i++]=(s&3)<<6|l&63;return u},h5e=typeof ArrayBuffer=="function",JV=(e,t)=>{if(typeof e!="string")return{type:"message",data:eU(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:p5e(e.substring(1),t)}:gS[n]?e.length>1?{type:gS[n],data:e.substring(1)}:{type:gS[n]}:l5e},p5e=(e,t)=>{if(h5e){const n=f5e(e);return eU(n,t)}else return{base64:!0,data:e}},eU=(e,t)=>{switch(t){case"blob":return e instanceof ArrayBuffer?new Blob([e]):e;case"arraybuffer":default:return e}},tU=String.fromCharCode(30),g5e=(e,t)=>{const n=e.length,r=new Array(n);let i=0;e.forEach((o,a)=>{QV(o,!1,s=>{r[a]=s,++i===n&&t(r.join(tU))})})},m5e=(e,t)=>{const n=e.split(tU),r=[];for(let i=0;itypeof self<"u"?self:typeof window<"u"?window:Function("return this")())();function rU(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const y5e=ts.setTimeout,b5e=ts.clearTimeout;function f4(e,t){t.useNativeTimers?(e.setTimeoutFn=y5e.bind(ts),e.clearTimeoutFn=b5e.bind(ts)):(e.setTimeoutFn=ts.setTimeout.bind(ts),e.clearTimeoutFn=ts.clearTimeout.bind(ts))}const x5e=1.33;function S5e(e){return typeof e=="string"?w5e(e):Math.ceil((e.byteLength||e.size)*x5e)}function w5e(e){let t=0,n=0;for(let r=0,i=e.length;r=57344?n+=3:(r++,n+=4);return n}class C5e extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class iU extends li{constructor(t){super(),this.writable=!1,f4(this,t),this.opts=t,this.query=t.query,this.socket=t.socket}onError(t,n,r){return super.emitReserved("error",new C5e(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=JV(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}}const oU="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Dk=64,_5e={};let tR=0,ax=0,nR;function rR(e){let t="";do t=oU[e%Dk]+t,e=Math.floor(e/Dk);while(e>0);return t}function aU(){const e=rR(+new Date);return e!==nR?(tR=0,nR=e):e+"."+rR(tR++)}for(;ax{this.readyState="paused",t()};if(this.polling||!this.writable){let r=0;this.polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};m5e(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,g5e(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let t=this.query||{};const n=this.opts.secure?"https":"http";let r="";this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=aU()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.opts.port&&(n==="https"&&Number(this.opts.port)!==443||n==="http"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port);const i=sU(t),o=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(o?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}request(t={}){return Object.assign(t,{xd:this.xd,xs:this.xs},this.opts),new nu(this.uri(),t)}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(i,o)=>{this.onError("xhr post error",i,o)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class nu extends li{constructor(t,n){super(),f4(this,n),this.opts=n,this.method=n.method||"GET",this.uri=t,this.async=n.async!==!1,this.data=n.data!==void 0?n.data:null,this.create()}create(){const t=rU(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this.opts.xd,t.xscheme=!!this.opts.xs;const n=this.xhr=new uU(t);try{n.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let r in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.opts.extraHeaders[r])}}catch{}if(this.method==="POST")try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{n.setRequestHeader("Accept","*/*")}catch{}"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout),n.onreadystatechange=()=>{n.readyState===4&&(n.status===200||n.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof n.status=="number"?n.status:0)},0))},n.send(this.data)}catch(r){this.setTimeoutFn(()=>{this.onError(r)},0);return}typeof document<"u"&&(this.index=nu.requestsCount++,nu.requests[this.index]=this)}onError(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}cleanup(t){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=P5e,t)try{this.xhr.abort()}catch{}typeof document<"u"&&delete nu.requests[this.index],this.xhr=null}}onLoad(){const t=this.xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}nu.requestsCount=0;nu.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",iR);else if(typeof addEventListener=="function"){const e="onpagehide"in ts?"pagehide":"unload";addEventListener(e,iR,!1)}}function iR(){for(let e in nu.requests)nu.requests.hasOwnProperty(e)&&nu.requests[e].abort()}const cU=(()=>typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0))(),sx=ts.WebSocket||ts.MozWebSocket,oR=!0,L5e="arraybuffer",aR=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class A5e extends iU{constructor(t){super(t),this.supportsBinary=!t.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const t=this.uri(),n=this.opts.protocols,r=aR?{}:rU(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=oR&&!aR?n?new sx(t,n):new sx(t):new sx(t,n,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType||L5e,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n{const a={};try{oR&&this.ws.send(o)}catch{}i&&cU(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){let t=this.query||{};const n=this.opts.secure?"wss":"ws";let r="";this.opts.port&&(n==="wss"&&Number(this.opts.port)!==443||n==="ws"&&Number(this.opts.port)!==80)&&(r=":"+this.opts.port),this.opts.timestampRequests&&(t[this.opts.timestampParam]=aU()),this.supportsBinary||(t.b64=1);const i=sU(t),o=this.opts.hostname.indexOf(":")!==-1;return n+"://"+(o?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}check(){return!!sx}}const O5e={websocket:A5e,polling:M5e},I5e=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,R5e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function jk(e){const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let i=I5e.exec(e||""),o={},a=14;for(;a--;)o[R5e[a]]=i[a]||"";return n!=-1&&r!=-1&&(o.source=t,o.host=o.host.substring(1,o.host.length-1).replace(/;/g,":"),o.authority=o.authority.replace("[","").replace("]","").replace(/;/g,":"),o.ipv6uri=!0),o.pathNames=D5e(o,o.path),o.queryKey=j5e(o,o.query),o}function D5e(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function j5e(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,o){i&&(n[i]=o)}),n}let dU=class Wg extends li{constructor(t,n={}){super(),this.writeBuffer=[],t&&typeof t=="object"&&(n=t,t=null),t?(t=jk(t),n.hostname=t.host,n.secure=t.protocol==="https"||t.protocol==="wss",n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=jk(n.host).host),f4(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=n.transports||["polling","websocket"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=k5e(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=nU,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts.transportOptions[t],this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new O5e[t](r)}open(){let t;if(this.opts.rememberUpgrade&&Wg.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else t=this.transports[0];this.readyState="opening";try{t=this.createTransport(t)}catch{this.transports.shift(),this.open();return}t.open(),this.setTransport(t)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",n=>this.onClose("transport close",n))}probe(t){let n=this.createTransport(t),r=!1;Wg.priorWebsocketSuccess=!1;const i=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",h=>{if(!r)if(h.type==="pong"&&h.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Wg.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(d(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const m=new Error("probe error");m.transport=n.name,this.emitReserved("upgradeError",m)}}))};function o(){r||(r=!0,d(),n.close(),n=null)}const a=h=>{const m=new Error("probe error: "+h);m.transport=n.name,o(),this.emitReserved("upgradeError",m)};function s(){a("transport closed")}function l(){a("socket closed")}function u(h){n&&h.name!==n.name&&o()}const d=()=>{n.removeListener("open",i),n.removeListener("error",a),n.removeListener("close",s),this.off("close",l),this.off("upgrading",u)};n.once("open",i),n.once("error",a),n.once("close",s),this.once("close",l),this.once("upgrading",u),n.open()}onOpen(){if(this.readyState="open",Wg.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let t=0;const n=this.upgrades.length;for(;t{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r0&&n>this.maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}write(t,n,r){return this.sendPacket("message",t,n,r),this}send(t,n,r){return this.sendPacket("message",t,n,r),this}sendPacket(t,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const o={type:t,data:n,options:r};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),i&&this.once("flush",i),this.flush()}close(){const t=()=>{this.onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}onError(t){Wg.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}onClose(t,n){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(t){const n=[];let r=0;const i=t.length;for(;rtypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,fU=Object.prototype.toString,B5e=typeof Blob=="function"||typeof Blob<"u"&&fU.call(Blob)==="[object BlobConstructor]",z5e=typeof File=="function"||typeof File<"u"&&fU.call(File)==="[object FileConstructor]";function PE(e){return $5e&&(e instanceof ArrayBuffer||F5e(e))||B5e&&e instanceof Blob||z5e&&e instanceof File}function mS(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n=0&&e.num0;case on.ACK:case on.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class G5e{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=W5e(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const q5e=Object.freeze(Object.defineProperty({__proto__:null,Decoder:TE,Encoder:U5e,get PacketType(){return on},protocol:V5e},Symbol.toStringTag,{value:"Module"}));function Us(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const K5e=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class hU extends li{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Us(t,"open",this.onopen.bind(this)),Us(t,"packet",this.onpacket.bind(this)),Us(t,"error",this.onerror.bind(this)),Us(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){if(K5e.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const r={type:on.EVENT,data:n};if(r.options={},r.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const a=this.ids++,s=n.pop();this._registerAckCallback(a,s),r.id=a}const i=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!i||!this.connected)||(this.connected?(this.notifyOutgoingListeners(r),this.packet(r)):this.sendBuffer.push(r)),this.flags={},this}_registerAckCallback(t,n){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[t]=n;return}const o=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a{this.io.clearTimeoutFn(o),n.apply(this,[null,...a])}}emitWithAck(t,...n){const r=this.flags.timeout!==void 0||this._opts.ackTimeout!==void 0;return new Promise((i,o)=>{n.push((a,s)=>r?a?o(a):i(s):i(a)),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this.ids++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((i,...o)=>r!==this._queue[0]?void 0:(i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...o)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(){if(this._queue.length===0)return;const t=this._queue[0];if(t.pending)return;t.pending=!0,t.tryCount++;const n=this.ids;this.ids=t.id,this.flags=t.flags,this.emit.apply(this,t.args),this.ids=n}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:on.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n)}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case on.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case on.EVENT:case on.BINARY_EVENT:this.onevent(t);break;case on.ACK:case on.BINARY_ACK:this.onack(t);break;case on.DISCONNECT:this.ondisconnect();break;case on.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...i){r||(r=!0,n.packet({type:on.ACK,id:t,data:i}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(n.apply(this,t.data),delete this.acks[t.id])}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:on.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}w0.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};w0.prototype.reset=function(){this.attempts=0};w0.prototype.setMin=function(e){this.ms=e};w0.prototype.setMax=function(e){this.max=e};w0.prototype.setJitter=function(e){this.jitter=e};class Fk extends li{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,f4(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new w0({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const i=n.parser||q5e;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new dU(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=Us(n,"open",function(){r.onopen(),t&&t()}),o=Us(n,"error",a=>{r.cleanup(),r._readyState="closed",this.emitReserved("error",a),t?t(a):r.maybeReconnectOnOpen()});if(this._timeout!==!1){const a=this._timeout;a===0&&i();const s=this.setTimeoutFn(()=>{i(),n.close(),n.emit("error",new Error("timeout"))},a);this.opts.autoUnref&&s.unref(),this.subs.push(function(){clearTimeout(s)})}return this.subs.push(i),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Us(t,"ping",this.onping.bind(this)),Us(t,"data",this.ondata.bind(this)),Us(t,"error",this.onerror.bind(this)),Us(t,"close",this.onclose.bind(this)),Us(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){cU(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r||(r=new hU(this,t,n),this.nsps[t]=r),this._autoConnect&&r.connect(),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;rt()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t,n){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(i=>{i?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",i)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(function(){clearTimeout(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Jv={};function vS(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=N5e(e,t.path||"/socket.io"),r=n.source,i=n.id,o=n.path,a=Jv[i]&&o in Jv[i].nsps,s=t.forceNew||t["force new connection"]||t.multiplex===!1||a;let l;return s?l=new Fk(r,t):(Jv[i]||(Jv[i]=new Fk(r,t)),l=Jv[i]),n.query&&!t.query&&(t.query=n.queryKey),l.socket(n.path,t)}Object.assign(vS,{Manager:Fk,Socket:hU,io:vS,connect:vS});const Y5e=["ddim","plms","k_lms","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_dpmpp_2_a","k_euler","k_euler_a","k_heun"],X5e=["ddim","plms","k_lms","dpmpp_2","k_dpm_2","k_dpm_2_a","k_dpmpp_2","k_euler","k_euler_a","k_heun"],Z5e=[64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,2048],Q5e=[64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,2048],J5e=[{key:"2x",value:2},{key:"4x",value:4}],ME=0,LE=4294967295,eCe=["gfpgan","codeformer"],tCe=[{key:"None",value:"none"},{key:"Fast",value:"latents"},{key:"Accurate",value:"full-res"}];var nCe=Math.PI/180;function rCe(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const $m=typeof global<"u"?global:typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{},ft={_global:$m,version:"8.4.2",isBrowser:rCe(),isUnminified:/param/.test(function(e){}.toString()),dblClickWindow:400,getAngle(e){return ft.angleDeg?e*nCe:e},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_mouseListenClick:!1,_touchListenClick:!1,_pointerListenClick:!1,_mouseInDblClickWindow:!1,_touchInDblClickWindow:!1,_pointerInDblClickWindow:!1,_mouseDblClickPointerId:null,_touchDblClickPointerId:null,_pointerDblClickPointerId:null,pixelRatio:typeof window<"u"&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return ft.DD.isDragging},isDragReady(){return!!ft.DD.node},releaseCanvasOnDestroy:!0,document:$m.document,_injectGlobal(e){$m.Konva=e}},Ar=e=>{ft[e.prototype.getClassName()]=e};ft._injectGlobal(ft);class ka{constructor(t=[1,0,0,1,0,0]){this.dirty=!1,this.m=t&&t.slice()||[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new ka(this.m)}copyInto(t){t.m[0]=this.m[0],t.m[1]=this.m[1],t.m[2]=this.m[2],t.m[3]=this.m[3],t.m[4]=this.m[4],t.m[5]=this.m[5]}point(t){var n=this.m;return{x:n[0]*t.x+n[2]*t.y+n[4],y:n[1]*t.x+n[3]*t.y+n[5]}}translate(t,n){return this.m[4]+=this.m[0]*t+this.m[2]*n,this.m[5]+=this.m[1]*t+this.m[3]*n,this}scale(t,n){return this.m[0]*=t,this.m[1]*=t,this.m[2]*=n,this.m[3]*=n,this}rotate(t){var n=Math.cos(t),r=Math.sin(t),i=this.m[0]*n+this.m[2]*r,o=this.m[1]*n+this.m[3]*r,a=this.m[0]*-r+this.m[2]*n,s=this.m[1]*-r+this.m[3]*n;return this.m[0]=i,this.m[1]=o,this.m[2]=a,this.m[3]=s,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(t,n){var r=this.m[0]+this.m[2]*n,i=this.m[1]+this.m[3]*n,o=this.m[2]+this.m[0]*t,a=this.m[3]+this.m[1]*t;return this.m[0]=r,this.m[1]=i,this.m[2]=o,this.m[3]=a,this}multiply(t){var n=this.m[0]*t.m[0]+this.m[2]*t.m[1],r=this.m[1]*t.m[0]+this.m[3]*t.m[1],i=this.m[0]*t.m[2]+this.m[2]*t.m[3],o=this.m[1]*t.m[2]+this.m[3]*t.m[3],a=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],s=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=o,this.m[4]=a,this.m[5]=s,this}invert(){var t=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),n=this.m[3]*t,r=-this.m[1]*t,i=-this.m[2]*t,o=this.m[0]*t,a=t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),s=t*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=o,this.m[4]=a,this.m[5]=s,this}getMatrix(){return this.m}decompose(){var t=this.m[0],n=this.m[1],r=this.m[2],i=this.m[3],o=this.m[4],a=this.m[5],s=t*i-n*r;let l={x:o,y:a,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(t!=0||n!=0){var u=Math.sqrt(t*t+n*n);l.rotation=n>0?Math.acos(t/u):-Math.acos(t/u),l.scaleX=u,l.scaleY=s/u,l.skewX=(t*r+n*i)/s,l.skewY=0}else if(r!=0||i!=0){var d=Math.sqrt(r*r+i*i);l.rotation=Math.PI/2-(i>0?Math.acos(-r/d):-Math.acos(r/d)),l.scaleX=s/d,l.scaleY=d,l.skewX=0,l.skewY=(t*r+n*i)/s}return l.rotation=de._getRotation(l.rotation),l}}var iCe="[object Array]",oCe="[object Number]",aCe="[object String]",sCe="[object Boolean]",lCe=Math.PI/180,uCe=180/Math.PI,KC="#",cCe="",dCe="0",fCe="Konva warning: ",sR="Konva error: ",hCe="rgb(",YC={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,132,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,255,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,203],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[119,128,144],slategrey:[119,128,144],snow:[255,255,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[255,255,255,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,5]},pCe=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/,lx=[];const gCe=typeof requestAnimationFrame<"u"&&requestAnimationFrame||function(e){setTimeout(e,60)},de={_isElement(e){return!!(e&&e.nodeType==1)},_isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},_isPlainObject(e){return!!e&&e.constructor===Object},_isArray(e){return Object.prototype.toString.call(e)===iCe},_isNumber(e){return Object.prototype.toString.call(e)===oCe&&!isNaN(e)&&isFinite(e)},_isString(e){return Object.prototype.toString.call(e)===aCe},_isBoolean(e){return Object.prototype.toString.call(e)===sCe},isObject(e){return e instanceof Object},isValidSelector(e){if(typeof e!="string")return!1;var t=e[0];return t==="#"||t==="."||t===t.toUpperCase()},_sign(e){return e===0||e>0?1:-1},requestAnimFrame(e){lx.push(e),lx.length===1&&gCe(function(){const t=lx;lx=[],t.forEach(function(n){n()})})},createCanvasElement(){var e=document.createElement("canvas");try{e.style=e.style||{}}catch{}return e},createImageElement(){return document.createElement("img")},_isInDocument(e){for(;e=e.parentNode;)if(e==document)return!0;return!1},_urlToImage(e,t){var n=de.createImageElement();n.onload=function(){t(n)},n.src=e},_rgbToHex(e,t,n){return((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)},_hexToRgb(e){e=e.replace(KC,cCe);var t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){for(var e=(Math.random()*16777215<<0).toString(16);e.length<6;)e=dCe+e;return KC+e},getRGB(e){var t;return e in YC?(t=YC[e],{r:t[0],g:t[1],b:t[2]}):e[0]===KC?this._hexToRgb(e.substring(1)):e.substr(0,4)===hCe?(t=pCe.exec(e.replace(/ /g,"")),{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)}):{r:0,g:0,b:0}},colorToRGBA(e){return e=e||"black",de._namedColorToRBA(e)||de._hex3ColorToRGBA(e)||de._hex4ColorToRGBA(e)||de._hex6ColorToRGBA(e)||de._hex8ColorToRGBA(e)||de._rgbColorToRGBA(e)||de._rgbaColorToRGBA(e)||de._hslColorToRGBA(e)},_namedColorToRBA(e){var t=YC[e.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:1}:null},_rgbColorToRGBA(e){if(e.indexOf("rgb(")===0){e=e.match(/rgb\(([^)]+)\)/)[1];var t=e.split(/ *, */).map(Number);return{r:t[0],g:t[1],b:t[2],a:1}}},_rgbaColorToRGBA(e){if(e.indexOf("rgba(")===0){e=e.match(/rgba\(([^)]+)\)/)[1];var t=e.split(/ *, */).map((n,r)=>n.slice(-1)==="%"?r===3?parseInt(n)/100:parseInt(n)/100*255:Number(n));return{r:t[0],g:t[1],b:t[2],a:t[3]}}},_hex8ColorToRGBA(e){if(e[0]==="#"&&e.length===9)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:parseInt(e.slice(7,9),16)/255}},_hex6ColorToRGBA(e){if(e[0]==="#"&&e.length===7)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:1}},_hex4ColorToRGBA(e){if(e[0]==="#"&&e.length===5)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:parseInt(e[4]+e[4],16)/255}},_hex3ColorToRGBA(e){if(e[0]==="#"&&e.length===4)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:1}},_hslColorToRGBA(e){if(/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(e)){const[t,...n]=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(e),r=Number(n[0])/360,i=Number(n[1])/100,o=Number(n[2])/100;let a,s,l;if(i===0)return l=o*255,{r:Math.round(l),g:Math.round(l),b:Math.round(l),a:1};o<.5?a=o*(1+i):a=o+i-o*i;const u=2*o-a,d=[0,0,0];for(let h=0;h<3;h++)s=r+1/3*-(h-1),s<0&&s++,s>1&&s--,6*s<1?l=u+(a-u)*6*s:2*s<1?l=a:3*s<2?l=u+(a-u)*(2/3-s)*6:l=u,d[h]=l*255;return{r:Math.round(d[0]),g:Math.round(d[1]),b:Math.round(d[2]),a:1}}},haveIntersection(e,t){return!(t.x>e.x+e.width||t.x+t.widthe.y+e.height||t.y+t.height1?(a=n,s=r,l=(n-i)*(n-i)+(r-o)*(r-o)):(a=e+d*(n-e),s=t+d*(r-t),l=(a-i)*(a-i)+(s-o)*(s-o))}return[a,s,l]},_getProjectionToLine(e,t,n){var r=de.cloneObject(e),i=Number.MAX_VALUE;return t.forEach(function(o,a){if(!(!n&&a===t.length-1)){var s=t[(a+1)%t.length],l=de._getProjectionToSegment(o.x,o.y,s.x,s.y,e.x,e.y),u=l[0],d=l[1],h=l[2];ht.length){var a=t;t=e,e=a}for(r=0;r{t.width=0,t.height=0})},drawRoundedRectPath(e,t,n,r){let i=0,o=0,a=0,s=0;typeof r=="number"?i=o=a=s=Math.min(r,t/2,n/2):(i=Math.min(r[0]||0,t/2,n/2),o=Math.min(r[1]||0,t/2,n/2),s=Math.min(r[2]||0,t/2,n/2),a=Math.min(r[3]||0,t/2,n/2)),e.moveTo(i,0),e.lineTo(t-o,0),e.arc(t-o,o,o,Math.PI*3/2,0,!1),e.lineTo(t,n-s),e.arc(t-s,n-s,s,0,Math.PI/2,!1),e.lineTo(a,n),e.arc(a,n-a,a,Math.PI/2,Math.PI,!1),e.lineTo(0,i),e.arc(i,i,i,Math.PI,Math.PI*3/2,!1)}};function ff(e){return de._isString(e)?'"'+e+'"':Object.prototype.toString.call(e)==="[object Number]"||de._isBoolean(e)?e:Object.prototype.toString.call(e)}function pU(e){return e>255?255:e<0?0:Math.round(e)}function Ue(){if(ft.isUnminified)return function(e,t){return de._isNumber(e)||de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a number.'),e}}function AE(e){if(ft.isUnminified)return function(t,n){let r=de._isNumber(t),i=de._isArray(t)&&t.length==e;return!r&&!i&&de.warn(ff(t)+' is a not valid value for "'+n+'" attribute. The value should be a number or Array('+e+")"),t}}function OE(){if(ft.isUnminified)return function(e,t){var n=de._isNumber(e),r=e==="auto";return n||r||de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a number or "auto".'),e}}function C0(){if(ft.isUnminified)return function(e,t){return de._isString(e)||de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a string.'),e}}function gU(){if(ft.isUnminified)return function(e,t){const n=de._isString(e),r=Object.prototype.toString.call(e)==="[object CanvasGradient]"||e&&e.addColorStop;return n||r||de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a string or a native gradient.'),e}}function mCe(){if(ft.isUnminified)return function(e,t){const n=Int8Array?Object.getPrototypeOf(Int8Array):null;return n&&e instanceof n||(de._isArray(e)?e.forEach(function(r){de._isNumber(r)||de.warn('"'+t+'" attribute has non numeric element '+r+". Make sure that all elements are numbers.")}):de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a array of numbers.')),e}}function rl(){if(ft.isUnminified)return function(e,t){var n=e===!0||e===!1;return n||de.warn(ff(e)+' is a not valid value for "'+t+'" attribute. The value should be a boolean.'),e}}function vCe(e){if(ft.isUnminified)return function(t,n){return t==null||de.isObject(t)||de.warn(ff(t)+' is a not valid value for "'+n+'" attribute. The value should be an object with properties '+e),t}}var e1="get",t1="set";const J={addGetterSetter(e,t,n,r,i){J.addGetter(e,t,n),J.addSetter(e,t,r,i),J.addOverloadedGetterSetter(e,t)},addGetter(e,t,n){var r=e1+de._capitalize(t);e.prototype[r]=e.prototype[r]||function(){var i=this.attrs[t];return i===void 0?n:i}},addSetter(e,t,n,r){var i=t1+de._capitalize(t);e.prototype[i]||J.overWriteSetter(e,t,n,r)},overWriteSetter(e,t,n,r){var i=t1+de._capitalize(t);e.prototype[i]=function(o){return n&&o!==void 0&&o!==null&&(o=n.call(this,o,t)),this._setAttr(t,o),r&&r.call(this),this}},addComponentsGetterSetter(e,t,n,r,i){var o=n.length,a=de._capitalize,s=e1+a(t),l=t1+a(t),u,d;e.prototype[s]=function(){var m={};for(u=0;u{this._setAttr(t+a(w),void 0)}),this._fireChangeEvent(t,y,m),i&&i.call(this),this},J.addOverloadedGetterSetter(e,t)},addOverloadedGetterSetter(e,t){var n=de._capitalize(t),r=t1+n,i=e1+n;e.prototype[t]=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()}},addDeprecatedGetterSetter(e,t,n,r){de.error("Adding deprecated "+t);var i=e1+de._capitalize(t),o=t+" property is deprecated and will be removed soon. Look at Konva change log for more information.";e.prototype[i]=function(){de.error(o);var a=this.attrs[t];return a===void 0?n:a},J.addSetter(e,t,r,function(){de.error(o)}),J.addOverloadedGetterSetter(e,t)},backCompat(e,t){de.each(t,function(n,r){var i=e.prototype[r],o=e1+de._capitalize(n),a=t1+de._capitalize(n);function s(){i.apply(this,arguments),de.error('"'+n+'" method is deprecated and will be removed soon. Use ""'+r+'" instead.')}e.prototype[n]=s,e.prototype[o]=s,e.prototype[a]=s})},afterSetFilter(){this._filterUpToDate=!1}};function yCe(e){var t=[],n=e.length,r=de,i,o;for(i=0;itypeof d=="number"?Math.floor(d):d)),o+=bCe+u.join(lR)+xCe)):(o+=s.property,t||(o+=kCe+s.val)),o+=CCe;return o}clearTrace(){this.traceArr=[]}_trace(t){var n=this.traceArr,r;n.push(t),r=n.length,r>=PCe&&n.shift()}reset(){var t=this.getCanvas().getPixelRatio();this.setTransform(1*t,0,0,1*t,0,0)}getCanvas(){return this.canvas}clear(t){var n=this.getCanvas();t?this.clearRect(t.x||0,t.y||0,t.width||0,t.height||0):this.clearRect(0,0,n.getWidth()/n.pixelRatio,n.getHeight()/n.pixelRatio)}_applyLineCap(t){var n=t.getLineCap();n&&this.setAttr("lineCap",n)}_applyOpacity(t){var n=t.getAbsoluteOpacity();n!==1&&this.setAttr("globalAlpha",n)}_applyLineJoin(t){var n=t.attrs.lineJoin;n&&this.setAttr("lineJoin",n)}setAttr(t,n){this._context[t]=n}arc(t,n,r,i,o,a){this._context.arc(t,n,r,i,o,a)}arcTo(t,n,r,i,o){this._context.arcTo(t,n,r,i,o)}beginPath(){this._context.beginPath()}bezierCurveTo(t,n,r,i,o,a){this._context.bezierCurveTo(t,n,r,i,o,a)}clearRect(t,n,r,i){this._context.clearRect(t,n,r,i)}clip(){this._context.clip()}closePath(){this._context.closePath()}createImageData(t,n){var r=arguments;if(r.length===2)return this._context.createImageData(t,n);if(r.length===1)return this._context.createImageData(t)}createLinearGradient(t,n,r,i){return this._context.createLinearGradient(t,n,r,i)}createPattern(t,n){return this._context.createPattern(t,n)}createRadialGradient(t,n,r,i,o,a){return this._context.createRadialGradient(t,n,r,i,o,a)}drawImage(t,n,r,i,o,a,s,l,u){var d=arguments,h=this._context;d.length===3?h.drawImage(t,n,r):d.length===5?h.drawImage(t,n,r,i,o):d.length===9&&h.drawImage(t,n,r,i,o,a,s,l,u)}ellipse(t,n,r,i,o,a,s,l){this._context.ellipse(t,n,r,i,o,a,s,l)}isPointInPath(t,n,r,i){return r?this._context.isPointInPath(r,t,n,i):this._context.isPointInPath(t,n,i)}fill(t){t?this._context.fill(t):this._context.fill()}fillRect(t,n,r,i){this._context.fillRect(t,n,r,i)}strokeRect(t,n,r,i){this._context.strokeRect(t,n,r,i)}fillText(t,n,r,i){i?this._context.fillText(t,n,r,i):this._context.fillText(t,n,r)}measureText(t){return this._context.measureText(t)}getImageData(t,n,r,i){return this._context.getImageData(t,n,r,i)}lineTo(t,n){this._context.lineTo(t,n)}moveTo(t,n){this._context.moveTo(t,n)}rect(t,n,r,i){this._context.rect(t,n,r,i)}putImageData(t,n,r){this._context.putImageData(t,n,r)}quadraticCurveTo(t,n,r,i){this._context.quadraticCurveTo(t,n,r,i)}restore(){this._context.restore()}rotate(t){this._context.rotate(t)}save(){this._context.save()}scale(t,n){this._context.scale(t,n)}setLineDash(t){this._context.setLineDash?this._context.setLineDash(t):"mozDash"in this._context?this._context.mozDash=t:"webkitLineDash"in this._context&&(this._context.webkitLineDash=t)}getLineDash(){return this._context.getLineDash()}setTransform(t,n,r,i,o,a){this._context.setTransform(t,n,r,i,o,a)}stroke(t){t?this._context.stroke(t):this._context.stroke()}strokeText(t,n,r,i){this._context.strokeText(t,n,r,i)}transform(t,n,r,i,o,a){this._context.transform(t,n,r,i,o,a)}translate(t,n){this._context.translate(t,n)}_enableTrace(){var t=this,n=uR.length,r=this.setAttr,i,o,a=function(s){var l=t[s],u;t[s]=function(){return o=yCe(Array.prototype.slice.call(arguments,0)),u=l.apply(t,arguments),t._trace({method:s,args:o}),u}};for(i=0;i{t.dragStatus==="dragging"&&(e=!0)}),e},justDragged:!1,get node(){var e;return gn._dragElements.forEach(t=>{e=t.node}),e},_dragElements:new Map,_drag(e){const t=[];gn._dragElements.forEach((n,r)=>{const{node:i}=n,o=i.getStage();o.setPointersPositions(e),n.pointerId===void 0&&(n.pointerId=de._getFirstPointerId(e));const a=o._changedPointerPositions.find(u=>u.id===n.pointerId);if(a){if(n.dragStatus!=="dragging"){var s=i.dragDistance(),l=Math.max(Math.abs(a.x-n.startPointerPos.x),Math.abs(a.y-n.startPointerPos.y));if(l{n.fire("dragmove",{type:"dragmove",target:n,evt:e},!0)})},_endDragBefore(e){const t=[];gn._dragElements.forEach(n=>{const{node:r}=n,i=r.getStage();if(e&&i.setPointersPositions(e),!i._changedPointerPositions.find(s=>s.id===n.pointerId))return;(n.dragStatus==="dragging"||n.dragStatus==="stopped")&&(gn.justDragged=!0,ft._mouseListenClick=!1,ft._touchListenClick=!1,ft._pointerListenClick=!1,n.dragStatus="stopped");const a=n.node.getLayer()||n.node instanceof ft.Stage&&n.node;a&&t.indexOf(a)===-1&&t.push(a)}),t.forEach(n=>{n.draw()})},_endDragAfter(e){gn._dragElements.forEach((t,n)=>{t.dragStatus==="stopped"&&t.node.fire("dragend",{type:"dragend",target:t.node,evt:e},!0),t.dragStatus!=="dragging"&&gn._dragElements.delete(n)})}};ft.isBrowser&&(window.addEventListener("mouseup",gn._endDragBefore,!0),window.addEventListener("touchend",gn._endDragBefore,!0),window.addEventListener("mousemove",gn._drag),window.addEventListener("touchmove",gn._drag),window.addEventListener("mouseup",gn._endDragAfter,!1),window.addEventListener("touchend",gn._endDragAfter,!1));var yS="absoluteOpacity",cx="allEventListeners",ju="absoluteTransform",cR="absoluteScale",lh="canvas",ACe="Change",OCe="children",ICe="konva",Bk="listening",dR="mouseenter",fR="mouseleave",hR="set",pR="Shape",bS=" ",gR="stage",pd="transform",RCe="Stage",zk="visible",DCe=["xChange.konva","yChange.konva","scaleXChange.konva","scaleYChange.konva","skewXChange.konva","skewYChange.konva","rotationChange.konva","offsetXChange.konva","offsetYChange.konva","transformsEnabledChange.konva"].join(bS);let jCe=1,Ge=class Hk{constructor(t){this._id=jCe++,this.eventListeners={},this.attrs={},this.index=0,this._allEventListeners=null,this.parent=null,this._cache=new Map,this._attachedDepsListeners=new Map,this._lastPos=null,this._batchingTransformChange=!1,this._needClearTransformCache=!1,this._filterUpToDate=!1,this._isUnderCache=!1,this._dragEventId=null,this._shouldFireChangeEvents=!1,this.setAttrs(t),this._shouldFireChangeEvents=!0}hasChildren(){return!1}_clearCache(t){(t===pd||t===ju)&&this._cache.get(t)?this._cache.get(t).dirty=!0:t?this._cache.delete(t):this._cache.clear()}_getCache(t,n){var r=this._cache.get(t),i=t===pd||t===ju,o=r===void 0||i&&r.dirty===!0;return o&&(r=n.call(this),this._cache.set(t,r)),r}_calculate(t,n,r){if(!this._attachedDepsListeners.get(t)){const i=n.map(o=>o+"Change.konva").join(bS);this.on(i,()=>{this._clearCache(t)}),this._attachedDepsListeners.set(t,!0)}return this._getCache(t,r)}_getCanvasCache(){return this._cache.get(lh)}_clearSelfAndDescendantCache(t){this._clearCache(t),t===ju&&this.fire("absoluteTransformChange")}clearCache(){if(this._cache.has(lh)){const{scene:t,filter:n,hit:r}=this._cache.get(lh);de.releaseCanvas(t,n,r),this._cache.delete(lh)}return this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(t){var n=t||{},r={};(n.x===void 0||n.y===void 0||n.width===void 0||n.height===void 0)&&(r=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()}));var i=Math.ceil(n.width||r.width),o=Math.ceil(n.height||r.height),a=n.pixelRatio,s=n.x===void 0?Math.floor(r.x):n.x,l=n.y===void 0?Math.floor(r.y):n.y,u=n.offset||0,d=n.drawBorder||!1,h=n.hitCanvasPixelRatio||1;if(!i||!o){de.error("Can not cache the node. Width or height of the node equals 0. Caching is skipped.");return}i+=u*2+1,o+=u*2+1,s-=u,l-=u;var m=new Fm({pixelRatio:a,width:i,height:o}),y=new Fm({pixelRatio:a,width:0,height:0}),b=new IE({pixelRatio:h,width:i,height:o}),w=m.getContext(),E=b.getContext();return b.isCache=!0,m.isCache=!0,this._cache.delete(lh),this._filterUpToDate=!1,n.imageSmoothingEnabled===!1&&(m.getContext()._context.imageSmoothingEnabled=!1,y.getContext()._context.imageSmoothingEnabled=!1),w.save(),E.save(),w.translate(-s,-l),E.translate(-s,-l),this._isUnderCache=!0,this._clearSelfAndDescendantCache(yS),this._clearSelfAndDescendantCache(cR),this.drawScene(m,this),this.drawHit(b,this),this._isUnderCache=!1,w.restore(),E.restore(),d&&(w.save(),w.beginPath(),w.rect(0,0,i,o),w.closePath(),w.setAttr("strokeStyle","red"),w.setAttr("lineWidth",5),w.stroke(),w.restore()),this._cache.set(lh,{scene:m,filter:y,hit:b,x:s,y:l}),this._requestDraw(),this}isCached(){return this._cache.has(lh)}getClientRect(t){throw new Error('abstract "getClientRect" method call')}_transformedRect(t,n){var r=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}],i,o,a,s,l=this.getAbsoluteTransform(n);return r.forEach(function(u){var d=l.point(u);i===void 0&&(i=a=d.x,o=s=d.y),i=Math.min(i,d.x),o=Math.min(o,d.y),a=Math.max(a,d.x),s=Math.max(s,d.y)}),{x:i,y:o,width:a-i,height:s-o}}_drawCachedSceneCanvas(t){t.save(),t._applyOpacity(this),t._applyGlobalCompositeOperation(this);const n=this._getCanvasCache();t.translate(n.x,n.y);var r=this._getCachedSceneCanvas(),i=r.pixelRatio;t.drawImage(r._canvas,0,0,r.width/i,r.height/i),t.restore()}_drawCachedHitCanvas(t){var n=this._getCanvasCache(),r=n.hit;t.save(),t.translate(n.x,n.y),t.drawImage(r._canvas,0,0,r.width/r.pixelRatio,r.height/r.pixelRatio),t.restore()}_getCachedSceneCanvas(){var t=this.filters(),n=this._getCanvasCache(),r=n.scene,i=n.filter,o=i.getContext(),a,s,l,u;if(t){if(!this._filterUpToDate){var d=r.pixelRatio;i.setSize(r.width/r.pixelRatio,r.height/r.pixelRatio);try{for(a=t.length,o.clear(),o.drawImage(r._canvas,0,0,r.getWidth()/d,r.getHeight()/d),s=o.getImageData(0,0,i.getWidth(),i.getHeight()),l=0;l{var n,r;if(!t)return this;for(n in t)n!==OCe&&(r=hR+de._capitalize(n),de._isFunction(this[r])?this[r](t[n]):this._setAttr(n,t[n]))}),this}isListening(){return this._getCache(Bk,this._isListening)}_isListening(t){if(!this.listening())return!1;const r=this.getParent();return r&&r!==t&&this!==t?r._isListening(t):!0}isVisible(){return this._getCache(zk,this._isVisible)}_isVisible(t){if(!this.visible())return!1;const r=this.getParent();return r&&r!==t&&this!==t?r._isVisible(t):!0}shouldDrawHit(t,n=!1){if(t)return this._isVisible(t)&&this._isListening(t);var r=this.getLayer(),i=!1;gn._dragElements.forEach(a=>{a.dragStatus==="dragging"&&(a.node.nodeType==="Stage"||a.node.getLayer()===r)&&(i=!0)});var o=!n&&!ft.hitOnDragEnabled&&i;return this.isListening()&&this.isVisible()&&!o}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){var t=this.getDepth(),n=this,r=0,i,o,a,s;function l(u){for(i=[],o=u.length,a=0;a0&&i[0].getDepth()<=t&&l(i)}return n.nodeType!==RCe&&l(n.getStage().getChildren()),r}getDepth(){for(var t=0,n=this.parent;n;)t++,n=n.parent;return t}_batchTransformChanges(t){this._batchingTransformChange=!0,t(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(pd),this._clearSelfAndDescendantCache(ju)),this._needClearTransformCache=!1}setPosition(t){return this._batchTransformChanges(()=>{this.x(t.x),this.y(t.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){if(!this.getStage())return null;var t=this.getStage().getPointerPosition();if(!t)return null;var n=this.getAbsoluteTransform().copy();return n.invert(),n.point(t)}getAbsolutePosition(t){let n=!1,r=this.parent;for(;r;){if(r.isCached()){n=!0;break}r=r.parent}n&&!t&&(t=!0);var i=this.getAbsoluteTransform(t).getMatrix(),o=new ka,a=this.offset();return o.m=i.slice(),o.translate(a.x,a.y),o.getTranslation()}setAbsolutePosition(t){var n=this._clearTransform();this.attrs.x=n.x,this.attrs.y=n.y,delete n.x,delete n.y,this._clearCache(pd);var r=this._getAbsoluteTransform().copy();return r.invert(),r.translate(t.x,t.y),t={x:this.attrs.x+r.getTranslation().x,y:this.attrs.y+r.getTranslation().y},this._setTransform(n),this.setPosition({x:t.x,y:t.y}),this._clearCache(pd),this._clearSelfAndDescendantCache(ju),this}_setTransform(t){var n;for(n in t)this.attrs[n]=t[n]}_clearTransform(){var t={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,t}move(t){var n=t.x,r=t.y,i=this.x(),o=this.y();return n!==void 0&&(i+=n),r!==void 0&&(o+=r),this.setPosition({x:i,y:o}),this}_eachAncestorReverse(t,n){var r=[],i=this.getParent(),o,a;if(!(n&&n._id===this._id)){for(r.unshift(this);i&&(!n||i._id!==n._id);)r.unshift(i),i=i.parent;for(o=r.length,a=0;a0?(this.parent.children.splice(t,1),this.parent.children.splice(t-1,0,this),this.parent._setChildrenIndices(),!0):!1}moveToBottom(){if(!this.parent)return de.warn("Node has no parent. moveToBottom function is ignored."),!1;var t=this.index;return t>0?(this.parent.children.splice(t,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1}setZIndex(t){if(!this.parent)return de.warn("Node has no parent. zIndex parameter is ignored."),this;(t<0||t>=this.parent.children.length)&&de.warn("Unexpected value "+t+" for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to "+(this.parent.children.length-1)+".");var n=this.index;return this.parent.children.splice(n,1),this.parent.children.splice(t,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(yS,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){var t=this.opacity(),n=this.getParent();return n&&!n._isUnderCache&&(t*=n.getAbsoluteOpacity()),t}moveTo(t){return this.getParent()!==t&&(this._remove(),t.add(this)),this}toObject(){var t={},n=this.getAttrs(),r,i,o,a,s;t.attrs={};for(r in n)i=n[r],s=de.isObject(i)&&!de._isPlainObject(i)&&!de._isArray(i),!s&&(o=typeof this[r]=="function"&&this[r],delete n[r],a=o?o.call(this):null,n[r]=i,a!==i&&(t.attrs[r]=i));return t.className=this.getClassName(),de._prepareToStringify(t)}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(t,n,r){var i=[];n&&this._isMatch(t)&&i.push(this);for(var o=this.parent;o;){if(o===r)return i;o._isMatch(t)&&i.push(o),o=o.parent}return i}isAncestorOf(t){return!1}findAncestor(t,n,r){return this.findAncestors(t,n,r)[0]}_isMatch(t){if(!t)return!1;if(typeof t=="function")return t(this);var n=t.replace(/ /g,"").split(","),r=n.length,i,o;for(i=0;i{try{const i=t==null?void 0:t.callback;i&&delete t.callback,de._urlToImage(this.toDataURL(t),function(o){n(o),i==null||i(o)})}catch(i){r(i)}})}toBlob(t){return new Promise((n,r)=>{try{const i=t==null?void 0:t.callback;i&&delete t.callback,this.toCanvas(t).toBlob(o=>{n(o),i==null||i(o)})}catch(i){r(i)}})}setSize(t){return this.width(t.width),this.height(t.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance!==void 0?this.attrs.dragDistance:this.parent?this.parent.getDragDistance():ft.dragDistance}_off(t,n,r){var i=this.eventListeners[t],o,a,s;for(o=0;o=0;if(r&&!this.isDragging()){var i=!1;gn._dragElements.forEach(o=>{this.isAncestorOf(o.node)&&(i=!0)}),i||this._createDragElement(t)}})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{this._dragCleanup();var t=this.getStage();if(!t)return;const n=gn._dragElements.get(this._id),r=n&&n.dragStatus==="dragging",i=n&&n.dragStatus==="ready";r?this.stopDrag():i&&gn._dragElements.delete(this._id)}}_dragCleanup(){this.off("mousedown.konva"),this.off("touchstart.konva")}isClientRectOnScreen(t={x:0,y:0}){const n=this.getStage();if(!n)return!1;const r={x:-t.x,y:-t.y,width:n.width()+2*t.x,height:n.height()+2*t.y};return de.haveIntersection(r,this.getClientRect())}static create(t,n){return de._isString(t)&&(t=JSON.parse(t)),this._createNode(t,n)}static _createNode(t,n){var r=Hk.prototype.getClassName.call(t),i=t.children,o,a,s;n&&(t.attrs.container=n),ft[r]||(de.warn('Can not find a node with class name "'+r+'". Fallback to "Shape".'),r="Shape");const l=ft[r];if(o=new l(t.attrs),i)for(a=i.length,s=0;s0}removeChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.remove()}),this.children=[],this._requestDraw(),this}destroyChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.destroy()}),this.children=[],this._requestDraw(),this}add(...t){if(t.length===0)return this;if(t.length>1){for(var n=0;n0?n[0]:void 0}_generalFind(t,n){var r=[];return this._descendants(i=>{const o=i._isMatch(t);return o&&r.push(i),!!(o&&n)}),r}_descendants(t){let n=!1;const r=this.getChildren();for(const i of r){if(n=t(i),n)return!0;if(i.hasChildren()&&(n=i._descendants(t),n))return!0}return!1}toObject(){var t=Ge.prototype.toObject.call(this);return t.children=[],this.getChildren().forEach(n=>{t.children.push(n.toObject())}),t}isAncestorOf(t){for(var n=t.getParent();n;){if(n._id===this._id)return!0;n=n.getParent()}return!1}clone(t){var n=Ge.prototype.clone.call(this,t);return this.getChildren().forEach(function(r){n.add(r.clone())}),n}getAllIntersections(t){var n=[];return this.find("Shape").forEach(function(r){r.isVisible()&&r.intersects(t)&&n.push(r)}),n}_clearSelfAndDescendantCache(t){var n;super._clearSelfAndDescendantCache(t),!this.isCached()&&((n=this.children)===null||n===void 0||n.forEach(function(r){r._clearSelfAndDescendantCache(t)}))}_setChildrenIndices(){var t;(t=this.children)===null||t===void 0||t.forEach(function(n,r){n.index=r}),this._requestDraw()}drawScene(t,n){var r=this.getLayer(),i=t||r&&r.getCanvas(),o=i&&i.getContext(),a=this._getCanvasCache(),s=a&&a.scene,l=i&&i.isCache;if(!this.isVisible()&&!l)return this;if(s){o.save();var u=this.getAbsoluteTransform(n).getMatrix();o.transform(u[0],u[1],u[2],u[3],u[4],u[5]),this._drawCachedSceneCanvas(o),o.restore()}else this._drawChildren("drawScene",i,n);return this}drawHit(t,n){if(!this.shouldDrawHit(n))return this;var r=this.getLayer(),i=t||r&&r.hitCanvas,o=i&&i.getContext(),a=this._getCanvasCache(),s=a&&a.hit;if(s){o.save();var l=this.getAbsoluteTransform(n).getMatrix();o.transform(l[0],l[1],l[2],l[3],l[4],l[5]),this._drawCachedHitCanvas(o),o.restore()}else this._drawChildren("drawHit",i,n);return this}_drawChildren(t,n,r){var i,o=n&&n.getContext(),a=this.clipWidth(),s=this.clipHeight(),l=this.clipFunc(),u=a&&s||l;const d=r===this;if(u){o.save();var h=this.getAbsoluteTransform(r),m=h.getMatrix();if(o.transform(m[0],m[1],m[2],m[3],m[4],m[5]),o.beginPath(),l)l.call(this,o,this);else{var y=this.clipX(),b=this.clipY();o.rect(y,b,a,s)}o.clip(),m=h.copy().invert().getMatrix(),o.transform(m[0],m[1],m[2],m[3],m[4],m[5])}var w=!d&&this.globalCompositeOperation()!=="source-over"&&t==="drawScene";w&&(o.save(),o._applyGlobalCompositeOperation(this)),(i=this.children)===null||i===void 0||i.forEach(function(E){E[t](n,r)}),w&&o.restore(),u&&o.restore()}getClientRect(t){var n;t=t||{};var r=t.skipTransform,i=t.relativeTo,o,a,s,l,u={x:1/0,y:1/0,width:0,height:0},d=this;(n=this.children)===null||n===void 0||n.forEach(function(w){if(w.visible()){var E=w.getClientRect({relativeTo:d,skipShadow:t.skipShadow,skipStroke:t.skipStroke});E.width===0&&E.height===0||(o===void 0?(o=E.x,a=E.y,s=E.x+E.width,l=E.y+E.height):(o=Math.min(o,E.x),a=Math.min(a,E.y),s=Math.max(s,E.x+E.width),l=Math.max(l,E.y+E.height)))}});for(var h=this.find("Shape"),m=!1,y=0;ye.indexOf("pointer")>=0?"pointer":e.indexOf("touch")>=0?"touch":"mouse",$g=e=>{const t=_1(e);if(t==="pointer")return ft.pointerEventsEnabled&&ZC.pointer;if(t==="touch")return ZC.touch;if(t==="mouse")return ZC.mouse};function vR(e={}){return(e.clipFunc||e.clipWidth||e.clipHeight)&&de.warn("Stage does not support clipping. Please use clip for Layers or Groups."),e}const WCe="Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);",xS=[];let g4=class extends Aa{constructor(t){super(vR(t)),this._pointerPositions=[],this._changedPointerPositions=[],this._buildDOM(),this._bindContentEvents(),xS.push(this),this.on("widthChange.konva heightChange.konva",this._resizeDOM),this.on("visibleChange.konva",this._checkVisibility),this.on("clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva",()=>{vR(this.attrs)}),this._checkVisibility()}_validateAdd(t){const n=t.getType()==="Layer",r=t.getType()==="FastLayer";n||r||de.throw("You may only add layers to the stage.")}_checkVisibility(){if(!this.content)return;const t=this.visible()?"":"none";this.content.style.display=t}setContainer(t){if(typeof t===$Ce){if(t.charAt(0)==="."){var n=t.slice(1);t=document.getElementsByClassName(n)[0]}else{var r;t.charAt(0)!=="#"?r=t:r=t.slice(1),t=document.getElementById(r)}if(!t)throw"Can not find container in document with id "+r}return this._setAttr("container",t),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),t.appendChild(this.content)),this}shouldDrawHit(){return!0}clear(){var t=this.children,n=t.length,r;for(r=0;r-1&&xS.splice(n,1),de.releaseCanvas(this.bufferCanvas._canvas,this.bufferHitCanvas._canvas),this}getPointerPosition(){const t=this._pointerPositions[0]||this._changedPointerPositions[0];return t?{x:t.x,y:t.y}:(de.warn(WCe),null)}_getPointerById(t){return this._pointerPositions.find(n=>n.id===t)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(t){t=t||{},t.x=t.x||0,t.y=t.y||0,t.width=t.width||this.width(),t.height=t.height||this.height();var n=new Fm({width:t.width,height:t.height,pixelRatio:t.pixelRatio||1}),r=n.getContext()._context,i=this.children;return(t.x||t.y)&&r.translate(-1*t.x,-1*t.y),i.forEach(function(o){if(o.isVisible()){var a=o._toKonvaCanvas(t);r.drawImage(a._canvas,t.x,t.y,a.getWidth()/a.getPixelRatio(),a.getHeight()/a.getPixelRatio())}}),n}getIntersection(t){if(!t)return null;var n=this.children,r=n.length,i=r-1,o;for(o=i;o>=0;o--){const a=n[o].getIntersection(t);if(a)return a}return null}_resizeDOM(){var t=this.width(),n=this.height();this.content&&(this.content.style.width=t+mR,this.content.style.height=n+mR),this.bufferCanvas.setSize(t,n),this.bufferHitCanvas.setSize(t,n),this.children.forEach(r=>{r.setSize({width:t,height:n}),r.draw()})}add(t,...n){if(arguments.length>1){for(var r=0;rzCe&&de.warn("The stage has "+i+" layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group."),t.setSize({width:this.width(),height:this.height()}),t.draw(),ft.isBrowser&&this.content.appendChild(t.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(t){return vU(t,this)}setPointerCapture(t){yU(t,this)}releaseCapture(t){X1(t)}getLayers(){return this.children}_bindContentEvents(){ft.isBrowser&&HCe.forEach(([t,n])=>{this.content.addEventListener(t,r=>{this[n](r)},{passive:!1})})}_pointerenter(t){this.setPointersPositions(t);const n=$g(t.type);this._fire(n.pointerenter,{evt:t,target:this,currentTarget:this})}_pointerover(t){this.setPointersPositions(t);const n=$g(t.type);this._fire(n.pointerover,{evt:t,target:this,currentTarget:this})}_getTargetShape(t){let n=this[t+"targetShape"];return n&&!n.getStage()&&(n=null),n}_pointerleave(t){const n=$g(t.type),r=_1(t.type);if(n){this.setPointersPositions(t);var i=this._getTargetShape(r),o=!gn.isDragging||ft.hitOnDragEnabled;i&&o?(i._fireAndBubble(n.pointerout,{evt:t}),i._fireAndBubble(n.pointerleave,{evt:t}),this._fire(n.pointerleave,{evt:t,target:this,currentTarget:this}),this[r+"targetShape"]=null):o&&(this._fire(n.pointerleave,{evt:t,target:this,currentTarget:this}),this._fire(n.pointerout,{evt:t,target:this,currentTarget:this})),this.pointerPos=void 0,this._pointerPositions=[]}}_pointerdown(t){const n=$g(t.type),r=_1(t.type);if(n){this.setPointersPositions(t);var i=!1;this._changedPointerPositions.forEach(o=>{var a=this.getIntersection(o);if(gn.justDragged=!1,ft["_"+r+"ListenClick"]=!0,!(a&&a.isListening()))return;ft.capturePointerEventsEnabled&&a.setPointerCapture(o.id),this[r+"ClickStartShape"]=a,a._fireAndBubble(n.pointerdown,{evt:t,pointerId:o.id}),i=!0;const l=t.type.indexOf("touch")>=0;a.preventDefault()&&t.cancelable&&l&&t.preventDefault()}),i||this._fire(n.pointerdown,{evt:t,target:this,currentTarget:this,pointerId:this._pointerPositions[0].id})}}_pointermove(t){const n=$g(t.type),r=_1(t.type);if(!n)return;gn.isDragging&&gn.node.preventDefault()&&t.cancelable&&t.preventDefault(),this.setPointersPositions(t);var i=!gn.isDragging||ft.hitOnDragEnabled;if(!i)return;var o={};let a=!1;var s=this._getTargetShape(r);this._changedPointerPositions.forEach(l=>{const u=XC(l.id)||this.getIntersection(l),d=l.id,h={evt:t,pointerId:d};var m=s!==u;if(m&&s&&(s._fireAndBubble(n.pointerout,Object.assign({},h),u),s._fireAndBubble(n.pointerleave,Object.assign({},h),u)),u){if(o[u._id])return;o[u._id]=!0}u&&u.isListening()?(a=!0,m&&(u._fireAndBubble(n.pointerover,Object.assign({},h),s),u._fireAndBubble(n.pointerenter,Object.assign({},h),s),this[r+"targetShape"]=u),u._fireAndBubble(n.pointermove,Object.assign({},h))):s&&(this._fire(n.pointerover,{evt:t,target:this,currentTarget:this,pointerId:d}),this[r+"targetShape"]=null)}),a||this._fire(n.pointermove,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(t){const n=$g(t.type),r=_1(t.type);if(!n)return;this.setPointersPositions(t);const i=this[r+"ClickStartShape"],o=this[r+"ClickEndShape"];var a={};let s=!1;this._changedPointerPositions.forEach(l=>{const u=XC(l.id)||this.getIntersection(l);if(u){if(u.releaseCapture(l.id),a[u._id])return;a[u._id]=!0}const d=l.id,h={evt:t,pointerId:d};let m=!1;ft["_"+r+"InDblClickWindow"]?(m=!0,clearTimeout(this[r+"DblTimeout"])):gn.justDragged||(ft["_"+r+"InDblClickWindow"]=!0,clearTimeout(this[r+"DblTimeout"])),this[r+"DblTimeout"]=setTimeout(function(){ft["_"+r+"InDblClickWindow"]=!1},ft.dblClickWindow),u&&u.isListening()?(s=!0,this[r+"ClickEndShape"]=u,u._fireAndBubble(n.pointerup,Object.assign({},h)),ft["_"+r+"ListenClick"]&&i&&i===u&&(u._fireAndBubble(n.pointerclick,Object.assign({},h)),m&&o&&o===u&&u._fireAndBubble(n.pointerdblclick,Object.assign({},h)))):(this[r+"ClickEndShape"]=null,ft["_"+r+"ListenClick"]&&this._fire(n.pointerclick,{evt:t,target:this,currentTarget:this,pointerId:d}),m&&this._fire(n.pointerdblclick,{evt:t,target:this,currentTarget:this,pointerId:d}))}),s||this._fire(n.pointerup,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),ft["_"+r+"ListenClick"]=!1,t.cancelable&&r!=="touch"&&t.preventDefault()}_contextmenu(t){this.setPointersPositions(t);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(Wk,{evt:t}):this._fire(Wk,{evt:t,target:this,currentTarget:this})}_wheel(t){this.setPointersPositions(t);var n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?n._fireAndBubble(Vk,{evt:t}):this._fire(Vk,{evt:t,target:this,currentTarget:this})}_pointercancel(t){this.setPointersPositions(t);const n=XC(t.pointerId)||this.getIntersection(this.getPointerPosition());n&&n._fireAndBubble(pm,RE(t)),X1(t.pointerId)}_lostpointercapture(t){X1(t.pointerId)}setPointersPositions(t){var n=this._getContentPosition(),r=null,i=null;t=t||window.event,t.touches!==void 0?(this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(t.touches,o=>{this._pointerPositions.push({id:o.identifier,x:(o.clientX-n.left)/n.scaleX,y:(o.clientY-n.top)/n.scaleY})}),Array.prototype.forEach.call(t.changedTouches||t.touches,o=>{this._changedPointerPositions.push({id:o.identifier,x:(o.clientX-n.left)/n.scaleX,y:(o.clientY-n.top)/n.scaleY})})):(r=(t.clientX-n.left)/n.scaleX,i=(t.clientY-n.top)/n.scaleY,this.pointerPos={x:r,y:i},this._pointerPositions=[{x:r,y:i,id:de._getFirstPointerId(t)}],this._changedPointerPositions=[{x:r,y:i,id:de._getFirstPointerId(t)}])}_setPointerPosition(t){de.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.'),this.setPointersPositions(t)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};var t=this.content.getBoundingClientRect();return{top:t.top,left:t.left,scaleX:t.width/this.content.clientWidth||1,scaleY:t.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferCanvas=new Fm({width:this.width(),height:this.height()}),this.bufferHitCanvas=new IE({pixelRatio:1,width:this.width(),height:this.height()}),!!ft.isBrowser){var t=this.container();if(!t)throw"Stage has no container. A container is required.";t.innerHTML="",this.content=document.createElement("div"),this.content.style.position="relative",this.content.style.userSelect="none",this.content.className="konvajs-content",this.content.setAttribute("role","presentation"),t.appendChild(this.content),this._resizeDOM()}}cache(){return de.warn("Cache function is not allowed for stage. You may use cache only for layers, groups and shapes."),this}clearCache(){return this}batchDraw(){return this.getChildren().forEach(function(t){t.batchDraw()}),this}};g4.prototype.nodeType=NCe;Ar(g4);J.addGetterSetter(g4,"container");var MU="hasShadow",LU="shadowRGBA",AU="patternImage",OU="linearGradient",IU="radialGradient";let gx;function QC(){return gx||(gx=de.createCanvasElement().getContext("2d"),gx)}const Z1={};function VCe(e){e.fill()}function UCe(e){e.stroke()}function GCe(e){e.fill()}function qCe(e){e.stroke()}function KCe(){this._clearCache(MU)}function YCe(){this._clearCache(LU)}function XCe(){this._clearCache(AU)}function ZCe(){this._clearCache(OU)}function QCe(){this._clearCache(IU)}class $e extends Ge{constructor(t){super(t);let n;for(;n=de.getRandomColor(),!(n&&!(n in Z1)););this.colorKey=n,Z1[n]=this}getContext(){return de.warn("shape.getContext() method is deprecated. Please do not use it."),this.getLayer().getContext()}getCanvas(){return de.warn("shape.getCanvas() method is deprecated. Please do not use it."),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(MU,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(AU,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){var t=QC();const n=t.createPattern(this.fillPatternImage(),this.fillPatternRepeat()||"repeat");if(n&&n.setTransform){const r=new ka;r.translate(this.fillPatternX(),this.fillPatternY()),r.rotate(ft.getAngle(this.fillPatternRotation())),r.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),r.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());const i=r.getMatrix(),o=typeof DOMMatrix>"u"?{a:i[0],b:i[1],c:i[2],d:i[3],e:i[4],f:i[5]}:new DOMMatrix(i);n.setTransform(o)}return n}}_getLinearGradient(){return this._getCache(OU,this.__getLinearGradient)}__getLinearGradient(){var t=this.fillLinearGradientColorStops();if(t){for(var n=QC(),r=this.fillLinearGradientStartPoint(),i=this.fillLinearGradientEndPoint(),o=n.createLinearGradient(r.x,r.y,i.x,i.y),a=0;athis.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate("hasStroke",["strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops"],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){const t=this.hitStrokeWidth();return t==="auto"?this.hasStroke():this.strokeEnabled()&&!!t}intersects(t){var n=this.getStage(),r=n.bufferHitCanvas,i;return r.getContext().clear(),this.drawHit(r,null,!0),i=r.context.getImageData(Math.round(t.x),Math.round(t.y),1,1).data,i[3]>0}destroy(){return Ge.prototype.destroy.call(this),delete Z1[this.colorKey],delete this.colorKey,this}_useBufferCanvas(t){var n;if(!this.getStage()||!((n=this.attrs.perfectDrawEnabled)!==null&&n!==void 0?n:!0))return!1;const i=t||this.hasFill(),o=this.hasStroke(),a=this.getAbsoluteOpacity()!==1;if(i&&o&&a)return!0;const s=this.hasShadow(),l=this.shadowForStrokeEnabled();return!!(i&&o&&s&&l)}setStrokeHitEnabled(t){de.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."),t?this.hitStrokeWidth("auto"):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){var t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}getClientRect(t={}){const n=t.skipTransform,r=t.relativeTo,i=this.getSelfRect(),a=!t.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,s=i.width+a,l=i.height+a,u=!t.skipShadow&&this.hasShadow(),d=u?this.shadowOffsetX():0,h=u?this.shadowOffsetY():0,m=s+Math.abs(d),y=l+Math.abs(h),b=u&&this.shadowBlur()||0,w=m+b*2,E=y+b*2,_={width:w,height:E,x:-(a/2+b)+Math.min(d,0)+i.x,y:-(a/2+b)+Math.min(h,0)+i.y};return n?_:this._transformedRect(_,r)}drawScene(t,n){var r=this.getLayer(),i=t||r.getCanvas(),o=i.getContext(),a=this._getCanvasCache(),s=this.getSceneFunc(),l=this.hasShadow(),u,d,h,m=i.isCache,y=n===this;if(!this.isVisible()&&!y)return this;if(a){o.save();var b=this.getAbsoluteTransform(n).getMatrix();return o.transform(b[0],b[1],b[2],b[3],b[4],b[5]),this._drawCachedSceneCanvas(o),o.restore(),this}if(!s)return this;if(o.save(),this._useBufferCanvas()&&!m){u=this.getStage(),d=u.bufferCanvas,h=d.getContext(),h.clear(),h.save(),h._applyLineJoin(this);var w=this.getAbsoluteTransform(n).getMatrix();h.transform(w[0],w[1],w[2],w[3],w[4],w[5]),s.call(this,h,this),h.restore();var E=d.pixelRatio;l&&o._applyShadow(this),o._applyOpacity(this),o._applyGlobalCompositeOperation(this),o.drawImage(d._canvas,0,0,d.width/E,d.height/E)}else{if(o._applyLineJoin(this),!y){var w=this.getAbsoluteTransform(n).getMatrix();o.transform(w[0],w[1],w[2],w[3],w[4],w[5]),o._applyOpacity(this),o._applyGlobalCompositeOperation(this)}l&&o._applyShadow(this),s.call(this,o,this)}return o.restore(),this}drawHit(t,n,r=!1){if(!this.shouldDrawHit(n,r))return this;var i=this.getLayer(),o=t||i.hitCanvas,a=o&&o.getContext(),s=this.hitFunc()||this.sceneFunc(),l=this._getCanvasCache(),u=l&&l.hit;if(this.colorKey||de.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"),u){a.save();var d=this.getAbsoluteTransform(n).getMatrix();return a.transform(d[0],d[1],d[2],d[3],d[4],d[5]),this._drawCachedHitCanvas(a),a.restore(),this}if(!s)return this;if(a.save(),a._applyLineJoin(this),!(this===n)){var m=this.getAbsoluteTransform(n).getMatrix();a.transform(m[0],m[1],m[2],m[3],m[4],m[5])}return s.call(this,a,this),a.restore(),this}drawHitFromCache(t=0){var n=this._getCanvasCache(),r=this._getCachedSceneCanvas(),i=n.hit,o=i.getContext(),a=i.getWidth(),s=i.getHeight(),l,u,d,h,m,y;o.clear(),o.drawImage(r._canvas,0,0,a,s);try{for(l=o.getImageData(0,0,a,s),u=l.data,d=u.length,h=de._hexToRgb(this.colorKey),m=0;mt?(u[m]=h.r,u[m+1]=h.g,u[m+2]=h.b,u[m+3]=255):u[m+3]=0;o.putImageData(l,0,0)}catch(b){de.error("Unable to draw hit graph from cached scene canvas. "+b.message)}return this}hasPointerCapture(t){return vU(t,this)}setPointerCapture(t){yU(t,this)}releaseCapture(t){X1(t)}}$e.prototype._fillFunc=VCe;$e.prototype._strokeFunc=UCe;$e.prototype._fillFuncHit=GCe;$e.prototype._strokeFuncHit=qCe;$e.prototype._centroid=!1;$e.prototype.nodeType="Shape";Ar($e);$e.prototype.eventListeners={};$e.prototype.on.call($e.prototype,"shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",KCe);$e.prototype.on.call($e.prototype,"shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",YCe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva",XCe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva",ZCe);$e.prototype.on.call($e.prototype,"fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva",QCe);J.addGetterSetter($e,"stroke",void 0,gU());J.addGetterSetter($e,"strokeWidth",2,Ue());J.addGetterSetter($e,"fillAfterStrokeEnabled",!1);J.addGetterSetter($e,"hitStrokeWidth","auto",OE());J.addGetterSetter($e,"strokeHitEnabled",!0,rl());J.addGetterSetter($e,"perfectDrawEnabled",!0,rl());J.addGetterSetter($e,"shadowForStrokeEnabled",!0,rl());J.addGetterSetter($e,"lineJoin");J.addGetterSetter($e,"lineCap");J.addGetterSetter($e,"sceneFunc");J.addGetterSetter($e,"hitFunc");J.addGetterSetter($e,"dash");J.addGetterSetter($e,"dashOffset",0,Ue());J.addGetterSetter($e,"shadowColor",void 0,C0());J.addGetterSetter($e,"shadowBlur",0,Ue());J.addGetterSetter($e,"shadowOpacity",1,Ue());J.addComponentsGetterSetter($e,"shadowOffset",["x","y"]);J.addGetterSetter($e,"shadowOffsetX",0,Ue());J.addGetterSetter($e,"shadowOffsetY",0,Ue());J.addGetterSetter($e,"fillPatternImage");J.addGetterSetter($e,"fill",void 0,gU());J.addGetterSetter($e,"fillPatternX",0,Ue());J.addGetterSetter($e,"fillPatternY",0,Ue());J.addGetterSetter($e,"fillLinearGradientColorStops");J.addGetterSetter($e,"strokeLinearGradientColorStops");J.addGetterSetter($e,"fillRadialGradientStartRadius",0);J.addGetterSetter($e,"fillRadialGradientEndRadius",0);J.addGetterSetter($e,"fillRadialGradientColorStops");J.addGetterSetter($e,"fillPatternRepeat","repeat");J.addGetterSetter($e,"fillEnabled",!0);J.addGetterSetter($e,"strokeEnabled",!0);J.addGetterSetter($e,"shadowEnabled",!0);J.addGetterSetter($e,"dashEnabled",!0);J.addGetterSetter($e,"strokeScaleEnabled",!0);J.addGetterSetter($e,"fillPriority","color");J.addComponentsGetterSetter($e,"fillPatternOffset",["x","y"]);J.addGetterSetter($e,"fillPatternOffsetX",0,Ue());J.addGetterSetter($e,"fillPatternOffsetY",0,Ue());J.addComponentsGetterSetter($e,"fillPatternScale",["x","y"]);J.addGetterSetter($e,"fillPatternScaleX",1,Ue());J.addGetterSetter($e,"fillPatternScaleY",1,Ue());J.addComponentsGetterSetter($e,"fillLinearGradientStartPoint",["x","y"]);J.addComponentsGetterSetter($e,"strokeLinearGradientStartPoint",["x","y"]);J.addGetterSetter($e,"fillLinearGradientStartPointX",0);J.addGetterSetter($e,"strokeLinearGradientStartPointX",0);J.addGetterSetter($e,"fillLinearGradientStartPointY",0);J.addGetterSetter($e,"strokeLinearGradientStartPointY",0);J.addComponentsGetterSetter($e,"fillLinearGradientEndPoint",["x","y"]);J.addComponentsGetterSetter($e,"strokeLinearGradientEndPoint",["x","y"]);J.addGetterSetter($e,"fillLinearGradientEndPointX",0);J.addGetterSetter($e,"strokeLinearGradientEndPointX",0);J.addGetterSetter($e,"fillLinearGradientEndPointY",0);J.addGetterSetter($e,"strokeLinearGradientEndPointY",0);J.addComponentsGetterSetter($e,"fillRadialGradientStartPoint",["x","y"]);J.addGetterSetter($e,"fillRadialGradientStartPointX",0);J.addGetterSetter($e,"fillRadialGradientStartPointY",0);J.addComponentsGetterSetter($e,"fillRadialGradientEndPoint",["x","y"]);J.addGetterSetter($e,"fillRadialGradientEndPointX",0);J.addGetterSetter($e,"fillRadialGradientEndPointY",0);J.addGetterSetter($e,"fillPatternRotation",0);J.backCompat($e,{dashArray:"dash",getDashArray:"getDash",setDashArray:"getDash",drawFunc:"sceneFunc",getDrawFunc:"getSceneFunc",setDrawFunc:"setSceneFunc",drawHitFunc:"hitFunc",getDrawHitFunc:"getHitFunc",setDrawHitFunc:"setHitFunc"});var JCe="#",e6e="beforeDraw",t6e="draw",RU=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],n6e=RU.length;let hp=class extends Aa{constructor(t){super(t),this.canvas=new Fm,this.hitCanvas=new IE({pixelRatio:1}),this._waitingForDraw=!1,this.on("visibleChange.konva",this._checkVisibility),this._checkVisibility(),this.on("imageSmoothingEnabledChange.konva",this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this}setZIndex(t){super.setZIndex(t);var n=this.getStage();return n&&n.content&&(n.content.removeChild(this.getNativeCanvasElement()),t{this.draw(),this._waitingForDraw=!1})),this}getIntersection(t){if(!this.isListening()||!this.isVisible())return null;for(var n=1,r=!1;;){for(let i=0;i0)return{antialiased:!0};return{}}drawScene(t,n){var r=this.getLayer(),i=t||r&&r.getCanvas();return this._fire(e6e,{node:this}),this.clearBeforeDraw()&&i.getContext().clear(),Aa.prototype.drawScene.call(this,i,n),this._fire(t6e,{node:this}),this}drawHit(t,n){var r=this.getLayer(),i=t||r&&r.hitCanvas;return r&&r.clearBeforeDraw()&&r.getHitCanvas().getContext().clear(),Aa.prototype.drawHit.call(this,i,n),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(t){de.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening(t)}getHitGraphEnabled(t){return de.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening()}toggleHitCanvas(){if(!(!this.parent||!this.parent.content)){var t=this.parent,n=!!this.hitCanvas._canvas.parentNode;n?t.content.removeChild(this.hitCanvas._canvas):t.content.appendChild(this.hitCanvas._canvas)}}destroy(){return de.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}};hp.prototype.nodeType="Layer";Ar(hp);J.addGetterSetter(hp,"imageSmoothingEnabled",!0);J.addGetterSetter(hp,"clearBeforeDraw",!0);J.addGetterSetter(hp,"hitGraphEnabled",!0,rl());class DE extends hp{constructor(t){super(t),this.listening(!1),de.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.')}}DE.prototype.nodeType="FastLayer";Ar(DE);let r0=class extends Aa{_validateAdd(t){var n=t.getType();n!=="Group"&&n!=="Shape"&&de.throw("You may only add groups and shapes to groups.")}};r0.prototype.nodeType="Group";Ar(r0);var JC=function(){return $m.performance&&$m.performance.now?function(){return $m.performance.now()}:function(){return new Date().getTime()}}();class rs{constructor(t,n){this.id=rs.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:JC(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(t){var n=[];return t?t.length>0?n=t:n=[t]:n=[],this.layers=n,this}getLayers(){return this.layers}addLayer(t){var n=this.layers,r=n.length,i;for(i=0;ithis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():t<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=t,this.update())}getTime(){return this._time}setPosition(t){this.prevPos=this._pos,this.propFunc(t),this._pos=t}getPosition(t){return t===void 0&&(t=this._time),this.func(t,this.begin,this._change,this.duration)}play(){this.state=yR,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onPlay")}reverse(){this.state=bR,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onReverse")}seek(t){this.pause(),this._time=t,this.update(),this.fire("onSeek")}reset(){this.pause(),this._time=0,this.update(),this.fire("onReset")}finish(){this.pause(),this._time=this.duration,this.update(),this.fire("onFinish")}update(){this.setPosition(this.getPosition(this._time)),this.fire("onUpdate")}onEnterFrame(){var t=this.getTimer()-this._startTime;this.state===yR?this.setTime(t):this.state===bR&&this.setTime(this.duration-t)}pause(){this.state=i6e,this.fire("onPause")}getTimer(){return new Date().getTime()}}class Qr{constructor(t){var n=this,r=t.node,i=r._id,o,a=t.easing||Q1.Linear,s=!!t.yoyo,l;typeof t.duration>"u"?o=.3:t.duration===0?o=.001:o=t.duration,this.node=r,this._id=o6e++;var u=r.getLayer()||(r instanceof ft.Stage?r.getLayers():null);u||de.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new rs(function(){n.tween.onEnterFrame()},u),this.tween=new a6e(l,function(d){n._tweenFunc(d)},a,0,1,o*1e3,s),this._addListeners(),Qr.attrs[i]||(Qr.attrs[i]={}),Qr.attrs[i][this._id]||(Qr.attrs[i][this._id]={}),Qr.tweens[i]||(Qr.tweens[i]={});for(l in t)r6e[l]===void 0&&this._addAttr(l,t[l]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){var r=this.node,i=r._id,o,a,s,l,u,d,h,m;if(s=Qr.tweens[i][t],s&&delete Qr.attrs[i][s][t],o=r.getAttr(t),de._isArray(n))if(a=[],u=Math.max(n.length,o.length),t==="points"&&n.length!==o.length&&(n.length>o.length?(h=o,o=de._prepareArrayForTween(o,n,r.closed())):(d=n,n=de._prepareArrayForTween(n,o,r.closed()))),t.indexOf("fill")===0)for(l=0;l{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{var t=this.node,n=Qr.attrs[t._id][this._id];n.points&&n.points.trueEnd&&t.setAttr("points",n.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{var t=this.node,n=Qr.attrs[t._id][this._id];n.points&&n.points.trueStart&&t.points(n.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(t){return this.tween.seek(t*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){var t=this.node._id,n=this._id,r=Qr.tweens[t],i;this.pause();for(i in r)delete Qr.tweens[t][i];delete Qr.attrs[t][n]}}Qr.attrs={};Qr.tweens={};Ge.prototype.to=function(e){var t=e.onFinish;e.node=this,e.onFinish=function(){this.destroy(),t&&t()};var n=new Qr(e);n.play()};const Q1={BackEaseIn(e,t,n,r){var i=1.70158;return n*(e/=r)*e*((i+1)*e-i)+t},BackEaseOut(e,t,n,r){var i=1.70158;return n*((e=e/r-1)*e*((i+1)*e+i)+1)+t},BackEaseInOut(e,t,n,r){var i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,o){var a=0;return e===0?t:(e/=r)===1?t+n:(o||(o=r*.3),!i||i0?t:n),d=a*n,h=s*(s>0?t:n),m=l*(l>0?n:t);return{x:u,y:r?-1*m:h,width:d-u,height:m-h}}}gc.prototype._centroid=!0;gc.prototype.className="Arc";gc.prototype._attrsAffectingSize=["innerRadius","outerRadius"];Ar(gc);J.addGetterSetter(gc,"innerRadius",0,Ue());J.addGetterSetter(gc,"outerRadius",0,Ue());J.addGetterSetter(gc,"angle",0,Ue());J.addGetterSetter(gc,"clockwise",!1,rl());function Uk(e,t,n,r,i,o,a){var s=Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2)),l=Math.sqrt(Math.pow(i-n,2)+Math.pow(o-r,2)),u=a*s/(s+l),d=a*l/(s+l),h=n-u*(i-e),m=r-u*(o-t),y=n+d*(i-e),b=r+d*(o-t);return[h,m,y,b]}function SR(e,t){var n=e.length,r=[],i,o;for(i=2;i4){for(s=this.getTensionPoints(),l=s.length,u=o?0:4,o||t.quadraticCurveTo(s[0],s[1],s[2],s[3]);ud?u:d,E=u>d?1:u/d,_=u>d?d/u:1;t.translate(s,l),t.rotate(y),t.scale(E,_),t.arc(0,0,w,h,h+m,1-b),t.scale(1/E,1/_),t.rotate(-y),t.translate(-s,-l);break;case"z":r=!0,t.closePath();break}}!r&&!this.hasFill()?t.strokeShape(this):t.fillStrokeShape(this)}getSelfRect(){var t=[];this.dataArray.forEach(function(u){if(u.command==="A"){var d=u.points[4],h=u.points[5],m=u.points[4]+h,y=Math.PI/180;if(Math.abs(d-m)m;b-=y){const w=zn.getPointOnEllipticalArc(u.points[0],u.points[1],u.points[2],u.points[3],b,0);t.push(w.x,w.y)}else for(let b=d+y;bthis.dataArray[r].pathLength;)t-=this.dataArray[r].pathLength,++r;if(r===i)return n=this.dataArray[r-1].points.slice(-2),{x:n[0],y:n[1]};if(t<.01)return n=this.dataArray[r].points.slice(0,2),{x:n[0],y:n[1]};var o=this.dataArray[r],a=o.points;switch(o.command){case"L":return zn.getPointOnLine(t,o.start.x,o.start.y,a[0],a[1]);case"C":return zn.getPointOnCubicBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3],a[4],a[5]);case"Q":return zn.getPointOnQuadraticBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3]);case"A":var s=a[0],l=a[1],u=a[2],d=a[3],h=a[4],m=a[5],y=a[6];return h+=m*t/o.pathLength,zn.getPointOnEllipticalArc(s,l,u,d,h,y)}return null}static getLineLength(t,n,r,i){return Math.sqrt((r-t)*(r-t)+(i-n)*(i-n))}static getPointOnLine(t,n,r,i,o,a,s){a===void 0&&(a=n),s===void 0&&(s=r);var l=(o-r)/(i-n+1e-8),u=Math.sqrt(t*t/(1+l*l));i0&&!isNaN(b[0]);){var k=null,P=[],L=l,O=u,D,R,N,W,B,K,ne,z,$,U;switch(y){case"l":l+=b.shift(),u+=b.shift(),k="L",P.push(l,u);break;case"L":l=b.shift(),u=b.shift(),P.push(l,u);break;case"m":var X=b.shift(),Q=b.shift();if(l+=X,u+=Q,k="M",a.length>2&&a[a.length-1].command==="z"){for(var G=a.length-2;G>=0;G--)if(a[G].command==="M"){l=a[G].points[0]+X,u=a[G].points[1]+Q;break}}P.push(l,u),y="l";break;case"M":l=b.shift(),u=b.shift(),k="M",P.push(l,u),y="L";break;case"h":l+=b.shift(),k="L",P.push(l,u);break;case"H":l=b.shift(),k="L",P.push(l,u);break;case"v":u+=b.shift(),k="L",P.push(l,u);break;case"V":u=b.shift(),k="L",P.push(l,u);break;case"C":P.push(b.shift(),b.shift(),b.shift(),b.shift()),l=b.shift(),u=b.shift(),P.push(l,u);break;case"c":P.push(l+b.shift(),u+b.shift(),l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="C",P.push(l,u);break;case"S":R=l,N=u,D=a[a.length-1],D.command==="C"&&(R=l+(l-D.points[2]),N=u+(u-D.points[3])),P.push(R,N,b.shift(),b.shift()),l=b.shift(),u=b.shift(),k="C",P.push(l,u);break;case"s":R=l,N=u,D=a[a.length-1],D.command==="C"&&(R=l+(l-D.points[2]),N=u+(u-D.points[3])),P.push(R,N,l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="C",P.push(l,u);break;case"Q":P.push(b.shift(),b.shift()),l=b.shift(),u=b.shift(),P.push(l,u);break;case"q":P.push(l+b.shift(),u+b.shift()),l+=b.shift(),u+=b.shift(),k="Q",P.push(l,u);break;case"T":R=l,N=u,D=a[a.length-1],D.command==="Q"&&(R=l+(l-D.points[0]),N=u+(u-D.points[1])),l=b.shift(),u=b.shift(),k="Q",P.push(R,N,l,u);break;case"t":R=l,N=u,D=a[a.length-1],D.command==="Q"&&(R=l+(l-D.points[0]),N=u+(u-D.points[1])),l+=b.shift(),u+=b.shift(),k="Q",P.push(R,N,l,u);break;case"A":W=b.shift(),B=b.shift(),K=b.shift(),ne=b.shift(),z=b.shift(),$=l,U=u,l=b.shift(),u=b.shift(),k="A",P=this.convertEndpointToCenterParameterization($,U,l,u,ne,z,W,B,K);break;case"a":W=b.shift(),B=b.shift(),K=b.shift(),ne=b.shift(),z=b.shift(),$=l,U=u,l+=b.shift(),u+=b.shift(),k="A",P=this.convertEndpointToCenterParameterization($,U,l,u,ne,z,W,B,K);break}a.push({command:k||y,points:P,start:{x:L,y:O},pathLength:this.calcLength(L,O,k||y,P)})}(y==="z"||y==="Z")&&a.push({command:"z",points:[],start:void 0,pathLength:0})}return a}static calcLength(t,n,r,i){var o,a,s,l,u=zn;switch(r){case"L":return u.getLineLength(t,n,i[0],i[1]);case"C":for(o=0,a=u.getPointOnCubicBezier(0,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),l=.01;l<=1;l+=.01)s=u.getPointOnCubicBezier(l,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"Q":for(o=0,a=u.getPointOnQuadraticBezier(0,t,n,i[0],i[1],i[2],i[3]),l=.01;l<=1;l+=.01)s=u.getPointOnQuadraticBezier(l,t,n,i[0],i[1],i[2],i[3]),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"A":o=0;var d=i[4],h=i[5],m=i[4]+h,y=Math.PI/180;if(Math.abs(d-m)m;l-=y)s=u.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],l,0),o+=u.getLineLength(a.x,a.y,s.x,s.y),a=s;else for(l=d+y;l1&&(s*=Math.sqrt(y),l*=Math.sqrt(y));var b=Math.sqrt((s*s*(l*l)-s*s*(m*m)-l*l*(h*h))/(s*s*(m*m)+l*l*(h*h)));o===a&&(b*=-1),isNaN(b)&&(b=0);var w=b*s*m/l,E=b*-l*h/s,_=(t+r)/2+Math.cos(d)*w-Math.sin(d)*E,k=(n+i)/2+Math.sin(d)*w+Math.cos(d)*E,P=function(B){return Math.sqrt(B[0]*B[0]+B[1]*B[1])},L=function(B,K){return(B[0]*K[0]+B[1]*K[1])/(P(B)*P(K))},O=function(B,K){return(B[0]*K[1]=1&&(W=0),a===0&&W>0&&(W=W-2*Math.PI),a===1&&W<0&&(W=W+2*Math.PI),[_,k,s,l,D,W,d,a]}}zn.prototype.className="Path";zn.prototype._attrsAffectingSize=["data"];Ar(zn);J.addGetterSetter(zn,"data");class pp extends mc{_sceneFunc(t){super._sceneFunc(t);var n=Math.PI*2,r=this.points(),i=r,o=this.tension()!==0&&r.length>4;o&&(i=this.getTensionPoints());var a=this.pointerLength(),s=r.length,l,u;if(o){const m=[i[i.length-4],i[i.length-3],i[i.length-2],i[i.length-1],r[s-2],r[s-1]],y=zn.calcLength(i[i.length-4],i[i.length-3],"C",m),b=zn.getPointOnQuadraticBezier(Math.min(1,1-a/y),m[0],m[1],m[2],m[3],m[4],m[5]);l=r[s-2]-b.x,u=r[s-1]-b.y}else l=r[s-2]-r[s-4],u=r[s-1]-r[s-3];var d=(Math.atan2(u,l)+n)%n,h=this.pointerWidth();this.pointerAtEnding()&&(t.save(),t.beginPath(),t.translate(r[s-2],r[s-1]),t.rotate(d),t.moveTo(0,0),t.lineTo(-a,h/2),t.lineTo(-a,-h/2),t.closePath(),t.restore(),this.__fillStroke(t)),this.pointerAtBeginning()&&(t.save(),t.beginPath(),t.translate(r[0],r[1]),o?(l=(i[0]+i[2])/2-r[0],u=(i[1]+i[3])/2-r[1]):(l=r[2]-r[0],u=r[3]-r[1]),t.rotate((Math.atan2(-u,-l)+n)%n),t.moveTo(0,0),t.lineTo(-a,h/2),t.lineTo(-a,-h/2),t.closePath(),t.restore(),this.__fillStroke(t))}__fillStroke(t){var n=this.dashEnabled();n&&(this.attrs.dashEnabled=!1,t.setLineDash([])),t.fillStrokeShape(this),n&&(this.attrs.dashEnabled=!0)}getSelfRect(){const t=super.getSelfRect(),n=this.pointerWidth()/2;return{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2}}}pp.prototype.className="Arrow";Ar(pp);J.addGetterSetter(pp,"pointerLength",10,Ue());J.addGetterSetter(pp,"pointerWidth",10,Ue());J.addGetterSetter(pp,"pointerAtBeginning",!1);J.addGetterSetter(pp,"pointerAtEnding",!0);let _0=class extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius()!==t/2&&this.radius(t/2)}setHeight(t){this.radius()!==t/2&&this.radius(t/2)}};_0.prototype._centroid=!0;_0.prototype.className="Circle";_0.prototype._attrsAffectingSize=["radius"];Ar(_0);J.addGetterSetter(_0,"radius",0,Ue());class hf extends $e{_sceneFunc(t){var n=this.radiusX(),r=this.radiusY();t.beginPath(),t.save(),n!==r&&t.scale(1,r/n),t.arc(0,0,n,0,Math.PI*2,!1),t.restore(),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(t){this.radiusX(t/2)}setHeight(t){this.radiusY(t/2)}}hf.prototype.className="Ellipse";hf.prototype._centroid=!0;hf.prototype._attrsAffectingSize=["radiusX","radiusY"];Ar(hf);J.addComponentsGetterSetter(hf,"radius",["x","y"]);J.addGetterSetter(hf,"radiusX",0,Ue());J.addGetterSetter(hf,"radiusY",0,Ue());let du=class DU extends $e{constructor(t){super(t),this.on("imageChange.konva",()=>{this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){const t=this.image();t&&t.complete||t&&t.readyState===4||t&&t.addEventListener&&t.addEventListener("load",()=>{this._requestDraw()})}_useBufferCanvas(){return super._useBufferCanvas(!0)}_sceneFunc(t){const n=this.getWidth(),r=this.getHeight(),i=this.cornerRadius(),o=this.attrs.image;let a;if(o){const s=this.attrs.cropWidth,l=this.attrs.cropHeight;s&&l?a=[o,this.cropX(),this.cropY(),s,l,0,0,n,r]:a=[o,0,0,n,r]}(this.hasFill()||this.hasStroke()||i)&&(t.beginPath(),i?de.drawRoundedRectPath(t,n,r,i):t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)),o&&(i&&t.clip(),t.drawImage.apply(t,a))}_hitFunc(t){var n=this.width(),r=this.height(),i=this.cornerRadius();t.beginPath(),i?de.drawRoundedRectPath(t,n,r,i):t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}getWidth(){var t,n;return(t=this.attrs.width)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.width}getHeight(){var t,n;return(t=this.attrs.height)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.height}static fromURL(t,n,r=null){var i=de.createImageElement();i.onload=function(){var o=new DU({image:i});n(o)},i.onerror=r,i.crossOrigin="Anonymous",i.src=t}};du.prototype.className="Image";Ar(du);J.addGetterSetter(du,"cornerRadius",0,AE(4));J.addGetterSetter(du,"image");J.addComponentsGetterSetter(du,"crop",["x","y","width","height"]);J.addGetterSetter(du,"cropX",0,Ue());J.addGetterSetter(du,"cropY",0,Ue());J.addGetterSetter(du,"cropWidth",0,Ue());J.addGetterSetter(du,"cropHeight",0,Ue());var jU=["fontFamily","fontSize","fontStyle","padding","lineHeight","text","width","height","pointerDirection","pointerWidth","pointerHeight"],s6e="Change.konva",l6e="none",Gk="up",qk="right",Kk="down",Yk="left",u6e=jU.length;class jE extends r0{constructor(t){super(t),this.on("add.konva",function(n){this._addListeners(n.child),this._sync()})}getText(){return this.find("Text")[0]}getTag(){return this.find("Tag")[0]}_addListeners(t){var n=this,r,i=function(){n._sync()};for(r=0;r{n=Math.min(n,a.x),r=Math.max(r,a.x),i=Math.min(i,a.y),o=Math.max(o,a.y)}),{x:n,y:i,width:r-n,height:o-i}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}mp.prototype.className="RegularPolygon";mp.prototype._centroid=!0;mp.prototype._attrsAffectingSize=["radius"];Ar(mp);J.addGetterSetter(mp,"radius",0,Ue());J.addGetterSetter(mp,"sides",0,Ue());var wR=Math.PI*2;class vp extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.innerRadius(),0,wR,!1),t.moveTo(this.outerRadius(),0),t.arc(0,0,this.outerRadius(),wR,0,!0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(t){this.outerRadius(t/2)}setHeight(t){this.outerRadius(t/2)}}vp.prototype.className="Ring";vp.prototype._centroid=!0;vp.prototype._attrsAffectingSize=["innerRadius","outerRadius"];Ar(vp);J.addGetterSetter(vp,"innerRadius",0,Ue());J.addGetterSetter(vp,"outerRadius",0,Ue());class fu extends $e{constructor(t){super(t),this._updated=!0,this.anim=new rs(()=>{var n=this._updated;return this._updated=!1,n}),this.on("animationChange.konva",function(){this.frameIndex(0)}),this.on("frameIndexChange.konva",function(){this._updated=!0}),this.on("frameRateChange.konva",function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_sceneFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+0],l=o[i+1],u=o[i+2],d=o[i+3],h=this.image();if((this.hasFill()||this.hasStroke())&&(t.beginPath(),t.rect(0,0,u,d),t.closePath(),t.fillStrokeShape(this)),h)if(a){var m=a[n],y=r*2;t.drawImage(h,s,l,u,d,m[y+0],m[y+1],u,d)}else t.drawImage(h,s,l,u,d,0,0,u,d)}_hitFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+2],l=o[i+3];if(t.beginPath(),a){var u=a[n],d=r*2;t.rect(u[d+0],u[d+1],s,l)}else t.rect(0,0,s,l);t.closePath(),t.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){var t=this;this.interval=setInterval(function(){t._updateIndex()},1e3/this.frameRate())}start(){if(!this.isRunning()){var t=this.getLayer();this.anim.setLayers(t),this._setInterval(),this.anim.start()}}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){var t=this.frameIndex(),n=this.animation(),r=this.animations(),i=r[n],o=i.length/4;t{t=t.trim();const n=t.indexOf(" ")>=0,r=t.indexOf('"')>=0||t.indexOf("'")>=0;return n&&!r&&(t=`"${t}"`),t}).join(", ")}var vx;function t6(){return vx||(vx=de.createCanvasElement().getContext(f6e),vx)}function C6e(e){e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function _6e(e){e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function k6e(e){return e=e||{},!e.fillLinearGradientColorStops&&!e.fillRadialGradientColorStops&&!e.fillPatternImage&&(e.fill=e.fill||"black"),e}class Lr extends $e{constructor(t){super(k6e(t)),this._partialTextX=0,this._partialTextY=0;for(var n=0;n1&&(_+=a)}}}_hitFunc(t){var n=this.getWidth(),r=this.getHeight();t.beginPath(),t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}setText(t){var n=de._isString(t)?t:t==null?"":t+"";return this._setAttr(h6e,n),this}getWidth(){var t=this.attrs.width===Fg||this.attrs.width===void 0;return t?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){var t=this.attrs.height===Fg||this.attrs.height===void 0;return t?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return de.warn("text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height."),this.textHeight}measureSize(t){var n=t6(),r=this.fontSize(),i;return n.save(),n.font=this._getContextFont(),i=n.measureText(t),n.restore(),{width:i.width,height:r}}_getContextFont(){return this.fontStyle()+mx+this.fontVariant()+mx+(this.fontSize()+v6e)+w6e(this.fontFamily())}_addTextLine(t){this.align()===n1&&(t=t.trim());var r=this._getTextWidth(t);return this.textArr.push({text:t,width:r,lastInParagraph:!1})}_getTextWidth(t){var n=this.letterSpacing(),r=t.length;return t6().measureText(t).width+(r?n*(r-1):0)}_setTextData(){var t=this.text().split(` +`),n=+this.fontSize(),r=0,i=this.lineHeight()*n,o=this.attrs.width,a=this.attrs.height,s=o!==Fg&&o!==void 0,l=a!==Fg&&a!==void 0,u=this.padding(),d=o-u*2,h=a-u*2,m=0,y=this.wrap(),b=y!==kR,w=y!==x6e&&b,E=this.ellipsis();this.textArr=[],t6().font=this._getContextFont();for(var _=E?this._getTextWidth(e6):0,k=0,P=t.length;kd)for(;L.length>0;){for(var D=0,R=L.length,N="",W=0;D>>1,K=L.slice(0,B+1),ne=this._getTextWidth(K)+_;ne<=d?(D=B+1,N=K,W=ne):R=B}if(N){if(w){var z,$=L[N.length],U=$===mx||$===CR;U&&W<=d?z=N.length:z=Math.max(N.lastIndexOf(mx),N.lastIndexOf(CR))+1,z>0&&(D=z,N=N.slice(0,D),W=this._getTextWidth(N))}N=N.trimRight(),this._addTextLine(N),r=Math.max(r,W),m+=i;var X=this._shouldHandleEllipsis(m);if(X){this._tryToAddEllipsisToLastLine();break}if(L=L.slice(D),L=L.trimLeft(),L.length>0&&(O=this._getTextWidth(L),O<=d)){this._addTextLine(L),m+=i,r=Math.max(r,O);break}}else break}else this._addTextLine(L),m+=i,r=Math.max(r,O),this._shouldHandleEllipsis(m)&&kh)break}this.textHeight=n,this.textWidth=r}_shouldHandleEllipsis(t){var n=+this.fontSize(),r=this.lineHeight()*n,i=this.attrs.height,o=i!==Fg&&i!==void 0,a=this.padding(),s=i-a*2,l=this.wrap(),u=l!==kR;return!u||o&&t+r>s}_tryToAddEllipsisToLastLine(){var t=this.attrs.width,n=t!==Fg&&t!==void 0,r=this.padding(),i=t-r*2,o=this.ellipsis(),a=this.textArr[this.textArr.length-1];if(!(!a||!o)){if(n){var s=this._getTextWidth(a.text+e6)=1){var r=n[0].p0;t.moveTo(r.x,r.y)}for(var i=0;i0&&(s+=t.dataArray[l].pathLength);var u=0;i==="center"&&(u=Math.max(0,s/2-a/2)),i==="right"&&(u=Math.max(0,s-a));for(var d=NU(this.text()),h=this.text().split(" ").length-1,m,y,b,w=-1,E=0,_=function(){E=0;for(var ne=t.dataArray,z=w+1;z0)return w=z,ne[z];ne[z].command==="M"&&(m={x:ne[z].points[0],y:ne[z].points[1]})}return{}},k=function(ne){var z=t._getTextSize(ne).width+r;ne===" "&&i==="justify"&&(z+=(s-a)/h);var $=0,U=0;for(y=void 0;Math.abs(z-$)/z>.01&&U<20;){U++;for(var X=$;b===void 0;)b=_(),b&&X+b.pathLengthz?y=zn.getPointOnLine(z,m.x,m.y,b.points[0],b.points[1],m.x,m.y):b=void 0;break;case"A":var G=b.points[4],Y=b.points[5],ee=b.points[4]+Y;E===0?E=G+1e-8:z>$?E+=Math.PI/180*Y/Math.abs(Y):E-=Math.PI/360*Y/Math.abs(Y),(Y<0&&E=0&&E>ee)&&(E=ee,Q=!0),y=zn.getPointOnEllipticalArc(b.points[0],b.points[1],b.points[2],b.points[3],E,b.points[6]);break;case"C":E===0?z>b.pathLength?E=1e-8:E=z/b.pathLength:z>$?E+=(z-$)/b.pathLength/2:E=Math.max(E-($-z)/b.pathLength/2,0),E>1&&(E=1,Q=!0),y=zn.getPointOnCubicBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3],b.points[4],b.points[5]);break;case"Q":E===0?E=z/b.pathLength:z>$?E+=(z-$)/b.pathLength:E-=($-z)/b.pathLength,E>1&&(E=1,Q=!0),y=zn.getPointOnQuadraticBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3]);break}y!==void 0&&($=zn.getLineLength(m.x,m.y,y.x,y.y)),Q&&(Q=!1,b=void 0)}},P="C",L=t._getTextSize(P).width+r,O=u/L-1,D=0;De+`.${VU}`).join(" "),ER="nodesRect",T6e=["widthChange","heightChange","scaleXChange","scaleYChange","skewXChange","skewYChange","rotationChange","offsetXChange","offsetYChange","transformsEnabledChange","strokeWidthChange"],M6e={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135};const L6e="ontouchstart"in ft._global;function A6e(e,t){if(e==="rotater")return"crosshair";t+=de.degToRad(M6e[e]||0);var n=(de.radToDeg(t)%360+360)%360;return de._inRange(n,315+22.5,360)||de._inRange(n,0,22.5)?"ns-resize":de._inRange(n,45-22.5,45+22.5)?"nesw-resize":de._inRange(n,90-22.5,90+22.5)?"ew-resize":de._inRange(n,135-22.5,135+22.5)?"nwse-resize":de._inRange(n,180-22.5,180+22.5)?"ns-resize":de._inRange(n,225-22.5,225+22.5)?"nesw-resize":de._inRange(n,270-22.5,270+22.5)?"ew-resize":de._inRange(n,315-22.5,315+22.5)?"nwse-resize":(de.error("Transformer has unknown angle for cursor detection: "+n),"pointer")}var R3=["top-left","top-center","top-right","middle-right","middle-left","bottom-left","bottom-center","bottom-right"],PR=1e8;function O6e(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function UU(e,t,n){const r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return Object.assign(Object.assign({},e),{rotation:e.rotation+t,x:r,y:i})}function I6e(e,t){const n=O6e(e);return UU(e,t,n)}function R6e(e,t,n){let r=t;for(let i=0;i{const i=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()},o=r._attrsAffectingSize.map(a=>a+"Change."+this._getEventNamespace()).join(" ");r.on(o,i),r.on(T6e.map(a=>a+`.${this._getEventNamespace()}`).join(" "),i),r.on(`absoluteTransformChange.${this._getEventNamespace()}`,i),this._proxyDrag(r)}),this._resetTransformCache();var n=!!this.findOne(".top-left");return n&&this.update(),this}_proxyDrag(t){let n;t.on(`dragstart.${this._getEventNamespace()}`,r=>{n=t.getAbsolutePosition(),!this.isDragging()&&t!==this.findOne(".back")&&this.startDrag(r,!1)}),t.on(`dragmove.${this._getEventNamespace()}`,r=>{if(!n)return;const i=t.getAbsolutePosition(),o=i.x-n.x,a=i.y-n.y;this.nodes().forEach(s=>{if(s===t||s.isDragging())return;const l=s.getAbsolutePosition();s.setAbsolutePosition({x:l.x+o,y:l.y+a}),s.startDrag(r)}),n=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(t=>{t.off("."+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(ER),this._clearCache("transform"),this._clearSelfAndDescendantCache("absoluteTransform")}_getNodeRect(){return this._getCache(ER,this.__getNodeRect)}__getNodeShape(t,n=this.rotation(),r){var i=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),o=t.getAbsoluteScale(r),a=t.getAbsolutePosition(r),s=i.x*o.x-t.offsetX()*o.x,l=i.y*o.y-t.offsetY()*o.y;const u=(ft.getAngle(t.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2),d={x:a.x+s*Math.cos(u)+l*Math.sin(-u),y:a.y+l*Math.cos(u)+s*Math.sin(u),width:i.width*o.x,height:i.height*o.y,rotation:u};return UU(d,-ft.getAngle(n),{x:0,y:0})}__getNodeRect(){var t=this.getNode();if(!t)return{x:-PR,y:-PR,width:0,height:0,rotation:0};const n=[];this.nodes().map(u=>{const d=u.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()});var h=[{x:d.x,y:d.y},{x:d.x+d.width,y:d.y},{x:d.x+d.width,y:d.y+d.height},{x:d.x,y:d.y+d.height}],m=u.getAbsoluteTransform();h.forEach(function(y){var b=m.point(y);n.push(b)})});const r=new ka;r.rotate(-ft.getAngle(this.rotation()));var i,o,a,s;n.forEach(function(u){var d=r.point(u);i===void 0&&(i=a=d.x,o=s=d.y),i=Math.min(i,d.x),o=Math.min(o,d.y),a=Math.max(a,d.x),s=Math.max(s,d.y)}),r.invert();const l=r.point({x:i,y:o});return{x:l.x,y:l.y,width:a-i,height:s-o,rotation:ft.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),R3.forEach(function(t){this._createAnchor(t)}.bind(this)),this._createAnchor("rotater")}_createAnchor(t){var n=new b2({stroke:"rgb(0, 161, 255)",fill:"white",strokeWidth:1,name:t+" _anchor",dragDistance:0,draggable:!0,hitStrokeWidth:L6e?10:"auto"}),r=this;n.on("mousedown touchstart",function(i){r._handleMouseDown(i)}),n.on("dragstart",i=>{n.stopDrag(),i.cancelBubble=!0}),n.on("dragend",i=>{i.cancelBubble=!0}),n.on("mouseenter",()=>{var i=ft.getAngle(this.rotation()),o=A6e(t,i);n.getStage().content&&(n.getStage().content.style.cursor=o),this._cursorChange=!0}),n.on("mouseout",()=>{n.getStage().content&&(n.getStage().content.style.cursor=""),this._cursorChange=!1}),this.add(n)}_createBack(){var t=new $e({name:"back",width:0,height:0,draggable:!0,sceneFunc(n){var r=this.getParent(),i=r.padding();n.beginPath(),n.rect(-i,-i,this.width()+i*2,this.height()+i*2),n.moveTo(this.width()/2,-i),r.rotateEnabled()&&n.lineTo(this.width()/2,-r.rotateAnchorOffset()*de._sign(this.height())-i),n.fillStrokeShape(this)},hitFunc:(n,r)=>{if(this.shouldOverdrawWholeArea()){var i=this.padding();n.beginPath(),n.rect(-i,-i,r.width()+i*2,r.height()+i*2),n.fillStrokeShape(r)}}});this.add(t),this._proxyDrag(t),t.on("dragstart",n=>{n.cancelBubble=!0}),t.on("dragmove",n=>{n.cancelBubble=!0}),t.on("dragend",n=>{n.cancelBubble=!0}),this.on("dragmove",n=>{this.update()})}_handleMouseDown(t){this._movingAnchorName=t.target.name().split(" ")[0];var n=this._getNodeRect(),r=n.width,i=n.height,o=Math.sqrt(Math.pow(r,2)+Math.pow(i,2));this.sin=Math.abs(i/o),this.cos=Math.abs(r/o),typeof window<"u"&&(window.addEventListener("mousemove",this._handleMouseMove),window.addEventListener("touchmove",this._handleMouseMove),window.addEventListener("mouseup",this._handleMouseUp,!0),window.addEventListener("touchend",this._handleMouseUp,!0)),this._transforming=!0;var a=t.target.getAbsolutePosition(),s=t.target.getStage().getPointerPosition();this._anchorDragOffset={x:s.x-a.x,y:s.y-a.y},this._fire("transformstart",{evt:t.evt,target:this.getNode()}),this._nodes.forEach(l=>{l._fire("transformstart",{evt:t.evt,target:l})})}_handleMouseMove(t){var n,r,i,o=this.findOne("."+this._movingAnchorName),a=o.getStage();a.setPointersPositions(t);const s=a.getPointerPosition();let l={x:s.x-this._anchorDragOffset.x,y:s.y-this._anchorDragOffset.y};const u=o.getAbsolutePosition();this.anchorDragBoundFunc()&&(l=this.anchorDragBoundFunc()(u,l,t)),o.setAbsolutePosition(l);const d=o.getAbsolutePosition();if(!(u.x===d.x&&u.y===d.y)){if(this._movingAnchorName==="rotater"){var h=this._getNodeRect();n=o.x()-h.width/2,r=-o.y()+h.height/2;let ne=Math.atan2(-r,n)+Math.PI/2;h.height<0&&(ne-=Math.PI);var m=ft.getAngle(this.rotation());const z=m+ne,$=ft.getAngle(this.rotationSnapTolerance()),X=R6e(this.rotationSnaps(),z,$)-h.rotation,Q=I6e(h,X);this._fitNodesInto(Q,t);return}var y=this.keepRatio()||t.shiftKey,k=this.centeredScaling()||t.altKey;if(this._movingAnchorName==="top-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-right").x(),y:this.findOne(".bottom-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(b.y-o.y(),2));var w=this.findOne(".top-left").x()>b.x?-1:1,E=this.findOne(".top-left").y()>b.y?-1:1;n=i*this.cos*w,r=i*this.sin*E,this.findOne(".top-left").x(b.x-n),this.findOne(".top-left").y(b.y-r)}}else if(this._movingAnchorName==="top-center")this.findOne(".top-left").y(o.y());else if(this._movingAnchorName==="top-right"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-left").x(),y:this.findOne(".bottom-left").y()};i=Math.sqrt(Math.pow(o.x()-b.x,2)+Math.pow(b.y-o.y(),2));var w=this.findOne(".top-right").x()b.y?-1:1;n=i*this.cos*w,r=i*this.sin*E,this.findOne(".top-right").x(b.x+n),this.findOne(".top-right").y(b.y-r)}var _=o.position();this.findOne(".top-left").y(_.y),this.findOne(".bottom-right").x(_.x)}else if(this._movingAnchorName==="middle-left")this.findOne(".top-left").x(o.x());else if(this._movingAnchorName==="middle-right")this.findOne(".bottom-right").x(o.x());else if(this._movingAnchorName==="bottom-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".top-right").x(),y:this.findOne(".top-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(o.y()-b.y,2));var w=b.x{r._fire("transformend",{evt:t,target:r})}),this._movingAnchorName=null}}_fitNodesInto(t,n){var r=this._getNodeRect();const i=1;if(de._inRange(t.width,-this.padding()*2-i,i)){this.update();return}if(de._inRange(t.height,-this.padding()*2-i,i)){this.update();return}const o=this.flipEnabled();var a=new ka;if(a.rotate(ft.getAngle(this.rotation())),this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("left")>=0){const h=a.point({x:-this.padding()*2,y:0});if(t.x+=h.x,t.y+=h.y,t.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace("left","right"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,!o){this.update();return}}else if(this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("right")>=0){const h=a.point({x:this.padding()*2,y:0});if(this._movingAnchorName=this._movingAnchorName.replace("right","left"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.width+=this.padding()*2,!o){this.update();return}}if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("top")>=0){const h=a.point({x:0,y:-this.padding()*2});if(t.x+=h.x,t.y+=h.y,this._movingAnchorName=this._movingAnchorName.replace("top","bottom"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.height+=this.padding()*2,!o){this.update();return}}else if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("bottom")>=0){const h=a.point({x:0,y:this.padding()*2});if(this._movingAnchorName=this._movingAnchorName.replace("bottom","top"),this._anchorDragOffset.x-=h.x,this._anchorDragOffset.y-=h.y,t.height+=this.padding()*2,!o){this.update();return}}if(this.boundBoxFunc()){const h=this.boundBoxFunc()(r,t);h?t=h:de.warn("boundBoxFunc returned falsy. You should return new bound rect from it!")}const s=1e7,l=new ka;l.translate(r.x,r.y),l.rotate(r.rotation),l.scale(r.width/s,r.height/s);const u=new ka;u.translate(t.x,t.y),u.rotate(t.rotation),u.scale(t.width/s,t.height/s);const d=u.multiply(l.invert());this._nodes.forEach(h=>{var m;const y=h.getParent().getAbsoluteTransform(),b=h.getTransform().copy();b.translate(h.offsetX(),h.offsetY());const w=new ka;w.multiply(y.copy().invert()).multiply(d).multiply(y).multiply(b);const E=w.decompose();h.setAttrs(E),this._fire("transform",{evt:n,target:h}),h._fire("transform",{evt:n,target:h}),(m=h.getLayer())===null||m===void 0||m.batchDraw()}),this.rotation(de._getRotation(t.rotation)),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(t,n){this.findOne(t).setAttrs(n)}update(){var t,n=this._getNodeRect();this.rotation(de._getRotation(n.rotation));var r=n.width,i=n.height,o=this.enabledAnchors(),a=this.resizeEnabled(),s=this.padding(),l=this.anchorSize();this.find("._anchor").forEach(u=>{u.setAttrs({width:l,height:l,offsetX:l/2,offsetY:l/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(".top-left",{x:0,y:0,offsetX:l/2+s,offsetY:l/2+s,visible:a&&o.indexOf("top-left")>=0}),this._batchChangeChild(".top-center",{x:r/2,y:0,offsetY:l/2+s,visible:a&&o.indexOf("top-center")>=0}),this._batchChangeChild(".top-right",{x:r,y:0,offsetX:l/2-s,offsetY:l/2+s,visible:a&&o.indexOf("top-right")>=0}),this._batchChangeChild(".middle-left",{x:0,y:i/2,offsetX:l/2+s,visible:a&&o.indexOf("middle-left")>=0}),this._batchChangeChild(".middle-right",{x:r,y:i/2,offsetX:l/2-s,visible:a&&o.indexOf("middle-right")>=0}),this._batchChangeChild(".bottom-left",{x:0,y:i,offsetX:l/2+s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-left")>=0}),this._batchChangeChild(".bottom-center",{x:r/2,y:i,offsetY:l/2-s,visible:a&&o.indexOf("bottom-center")>=0}),this._batchChangeChild(".bottom-right",{x:r,y:i,offsetX:l/2-s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-right")>=0}),this._batchChangeChild(".rotater",{x:r/2,y:-this.rotateAnchorOffset()*de._sign(i)-s,visible:this.rotateEnabled()}),this._batchChangeChild(".back",{width:r,height:i,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0}),(t=this.getLayer())===null||t===void 0||t.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();var t=this.findOne("."+this._movingAnchorName);t&&t.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=""),r0.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}toObject(){return Ge.prototype.toObject.call(this)}clone(t){var n=Ge.prototype.clone.call(this,t);return n}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}};function D6e(e){return e instanceof Array||de.warn("enabledAnchors value should be an array"),e instanceof Array&&e.forEach(function(t){R3.indexOf(t)===-1&&de.warn("Unknown anchor name: "+t+". Available names are: "+R3.join(", "))}),e||[]}An.prototype.className="Transformer";Ar(An);J.addGetterSetter(An,"enabledAnchors",R3,D6e);J.addGetterSetter(An,"flipEnabled",!0,rl());J.addGetterSetter(An,"resizeEnabled",!0);J.addGetterSetter(An,"anchorSize",10,Ue());J.addGetterSetter(An,"rotateEnabled",!0);J.addGetterSetter(An,"rotationSnaps",[]);J.addGetterSetter(An,"rotateAnchorOffset",50,Ue());J.addGetterSetter(An,"rotationSnapTolerance",5,Ue());J.addGetterSetter(An,"borderEnabled",!0);J.addGetterSetter(An,"anchorStroke","rgb(0, 161, 255)");J.addGetterSetter(An,"anchorStrokeWidth",1,Ue());J.addGetterSetter(An,"anchorFill","white");J.addGetterSetter(An,"anchorCornerRadius",0,Ue());J.addGetterSetter(An,"borderStroke","rgb(0, 161, 255)");J.addGetterSetter(An,"borderStrokeWidth",1,Ue());J.addGetterSetter(An,"borderDash");J.addGetterSetter(An,"keepRatio",!0);J.addGetterSetter(An,"centeredScaling",!1);J.addGetterSetter(An,"ignoreStroke",!1);J.addGetterSetter(An,"padding",0,Ue());J.addGetterSetter(An,"node");J.addGetterSetter(An,"nodes");J.addGetterSetter(An,"boundBoxFunc");J.addGetterSetter(An,"anchorDragBoundFunc");J.addGetterSetter(An,"shouldOverdrawWholeArea",!1);J.addGetterSetter(An,"useSingleNodeRotation",!0);J.backCompat(An,{lineEnabled:"borderEnabled",rotateHandlerOffset:"rotateAnchorOffset",enabledHandlers:"enabledAnchors"});class vc extends $e{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.radius(),0,ft.getAngle(this.angle()),this.clockwise()),t.lineTo(0,0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}vc.prototype.className="Wedge";vc.prototype._centroid=!0;vc.prototype._attrsAffectingSize=["radius"];Ar(vc);J.addGetterSetter(vc,"radius",0,Ue());J.addGetterSetter(vc,"angle",0,Ue());J.addGetterSetter(vc,"clockwise",!1);J.backCompat(vc,{angleDeg:"angle",getAngleDeg:"getAngle",setAngleDeg:"setAngle"});function TR(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var j6e=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],N6e=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function $6e(e,t){var n=e.data,r=e.width,i=e.height,o,a,s,l,u,d,h,m,y,b,w,E,_,k,P,L,O,D,R,N,W,B,K,ne,z=t+t+1,$=r-1,U=i-1,X=t+1,Q=X*(X+1)/2,G=new TR,Y=null,ee=G,fe=null,ke=null,we=j6e[t],xe=N6e[t];for(s=1;s>xe,K!==0?(K=255/K,n[d]=(m*we>>xe)*K,n[d+1]=(y*we>>xe)*K,n[d+2]=(b*we>>xe)*K):n[d]=n[d+1]=n[d+2]=0,m-=E,y-=_,b-=k,w-=P,E-=fe.r,_-=fe.g,k-=fe.b,P-=fe.a,l=h+((l=o+t+1)<$?l:$)<<2,L+=fe.r=n[l],O+=fe.g=n[l+1],D+=fe.b=n[l+2],R+=fe.a=n[l+3],m+=L,y+=O,b+=D,w+=R,fe=fe.next,E+=N=ke.r,_+=W=ke.g,k+=B=ke.b,P+=K=ke.a,L-=N,O-=W,D-=B,R-=K,ke=ke.next,d+=4;h+=r}for(o=0;o>xe,K>0?(K=255/K,n[l]=(m*we>>xe)*K,n[l+1]=(y*we>>xe)*K,n[l+2]=(b*we>>xe)*K):n[l]=n[l+1]=n[l+2]=0,m-=E,y-=_,b-=k,w-=P,E-=fe.r,_-=fe.g,k-=fe.b,P-=fe.a,l=o+((l=a+X)0&&$6e(t,n)};J.addGetterSetter(Ge,"blurRadius",0,Ue(),J.afterSetFilter);const B6e=function(e){var t=this.brightness()*255,n=e.data,r=n.length,i;for(i=0;i255?255:i,o=o<0?0:o>255?255:o,a=a<0?0:a>255?255:a,n[s]=i,n[s+1]=o,n[s+2]=a};J.addGetterSetter(Ge,"contrast",0,Ue(),J.afterSetFilter);const H6e=function(e){var t=this.embossStrength()*10,n=this.embossWhiteLevel()*255,r=this.embossDirection(),i=this.embossBlend(),o=0,a=0,s=e.data,l=e.width,u=e.height,d=l*4,h=u;switch(r){case"top-left":o=-1,a=-1;break;case"top":o=-1,a=0;break;case"top-right":o=-1,a=1;break;case"right":o=0,a=1;break;case"bottom-right":o=1,a=1;break;case"bottom":o=1,a=0;break;case"bottom-left":o=1,a=-1;break;case"left":o=0,a=-1;break;default:de.error("Unknown emboss direction: "+r)}do{var m=(h-1)*d,y=o;h+y<1&&(y=0),h+y>u&&(y=0);var b=(h-1+y)*l*4,w=l;do{var E=m+(w-1)*4,_=a;w+_<1&&(_=0),w+_>l&&(_=0);var k=b+(w-1+_)*4,P=s[E]-s[k],L=s[E+1]-s[k+1],O=s[E+2]-s[k+2],D=P,R=D>0?D:-D,N=L>0?L:-L,W=O>0?O:-O;if(N>R&&(D=L),W>R&&(D=O),D*=t,i){var B=s[E]+D,K=s[E+1]+D,ne=s[E+2]+D;s[E]=B>255?255:B<0?0:B,s[E+1]=K>255?255:K<0?0:K,s[E+2]=ne>255?255:ne<0?0:ne}else{var z=n-D;z<0?z=0:z>255&&(z=255),s[E]=s[E+1]=s[E+2]=z}}while(--w)}while(--h)};J.addGetterSetter(Ge,"embossStrength",.5,Ue(),J.afterSetFilter);J.addGetterSetter(Ge,"embossWhiteLevel",.5,Ue(),J.afterSetFilter);J.addGetterSetter(Ge,"embossDirection","top-left",null,J.afterSetFilter);J.addGetterSetter(Ge,"embossBlend",!1,null,J.afterSetFilter);function n6(e,t,n,r,i){var o=n-t,a=i-r,s;return o===0?r+a/2:a===0?r:(s=(e-t)/o,s=a*s+r,s)}const W6e=function(e){var t=e.data,n=t.length,r=t[0],i=r,o,a=t[1],s=a,l,u=t[2],d=u,h,m,y=this.enhance();if(y!==0){for(m=0;mi&&(i=o),l=t[m+1],ls&&(s=l),h=t[m+2],hd&&(d=h);i===r&&(i=255,r=0),s===a&&(s=255,a=0),d===u&&(d=255,u=0);var b,w,E,_,k,P,L,O,D;for(y>0?(w=i+y*(255-i),E=r-y*(r-0),k=s+y*(255-s),P=a-y*(a-0),O=d+y*(255-d),D=u-y*(u-0)):(b=(i+r)*.5,w=i+y*(i-b),E=r+y*(r-b),_=(s+a)*.5,k=s+y*(s-_),P=a+y*(a-_),L=(d+u)*.5,O=d+y*(d-L),D=u+y*(u-L)),m=0;m_?E:_;var k=a,P=o,L,O,D=360/P*Math.PI/180,R,N;for(O=0;OP?k:P;var L=a,O=o,D,R,N=n.polarRotation||0,W,B;for(d=0;dt&&(L=P,O=0,D=-1),i=0;i=0&&y=0&&b=0&&y=0&&b=255*4?255:0}return a}function n_e(e,t,n){for(var r=[.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111],i=Math.round(Math.sqrt(r.length)),o=Math.floor(i/2),a=[],s=0;s=0&&y=0&&b=n))for(o=w;o=r||(a=(n*o+i)*4,s+=L[a+0],l+=L[a+1],u+=L[a+2],d+=L[a+3],P+=1);for(s=s/P,l=l/P,u=u/P,d=d/P,i=y;i=n))for(o=w;o=r||(a=(n*o+i)*4,L[a+0]=s,L[a+1]=l,L[a+2]=u,L[a+3]=d)}};J.addGetterSetter(Ge,"pixelSize",8,Ue(),J.afterSetFilter);const a_e=function(e){var t=Math.round(this.levels()*254)+1,n=e.data,r=n.length,i=255/t,o;for(o=0;o255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"green",0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"blue",0,pU,J.afterSetFilter);const l_e=function(e){var t=e.data,n=t.length,r=this.red(),i=this.green(),o=this.blue(),a=this.alpha(),s,l;for(s=0;s255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"green",0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)});J.addGetterSetter(Ge,"blue",0,pU,J.afterSetFilter);J.addGetterSetter(Ge,"alpha",1,function(e){return this._filterUpToDate=!1,e>1?1:e<0?0:e});const u_e=function(e){var t=e.data,n=t.length,r,i,o,a;for(r=0;r127&&(u=255-u),d>127&&(d=255-d),h>127&&(h=255-h),t[l]=u,t[l+1]=d,t[l+2]=h}while(--s)}while(--o)},d_e=function(e){var t=this.threshold()*255,n=e.data,r=n.length,i;for(i=0;i{const{width:n,height:r}=t,i=document.createElement("div"),o=new Vg.Stage({container:i,width:n,height:r}),a=new Vg.Layer,s=new Vg.Layer;a.add(new Vg.Rect({...t,fill:"white"})),e.forEach(u=>s.add(new Vg.Line({points:u.points,stroke:"black",strokeWidth:u.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,globalCompositeOperation:u.tool==="brush"?"source-over":"destination-out"}))),o.add(a),o.add(s);const l=o.toDataURL({...t});return i.remove(),l};let GU=null,qU=null;const h_e=e=>{GU=e},tl=()=>GU,p_e=e=>{qU=e},KU=()=>qU,g_e=e=>{const t=window.open("");t&&e.forEach(n=>{const r=new Image;r.src=n.base64,t.document.write(n.caption),t.document.write("
    "),t.document.write(r.outerHTML),t.document.write("

    ")})},YU=(e,t)=>Math.floor(Math.random()*(t-e+1)+e),m_e=e=>{const t=tl(),{generationMode:n,generationState:r,postprocessingState:i,canvasState:o,systemState:a}=e,{codeformerFidelity:s,facetoolStrength:l,facetoolType:u,hiresFix:d,hiresStrength:h,shouldRunESRGAN:m,shouldRunFacetool:y,upscalingLevel:b,upscalingStrength:w,upscalingDenoising:E}=i,{cfgScale:_,height:k,img2imgStrength:P,infillMethod:L,initialImage:O,iterations:D,perlin:R,prompt:N,negativePrompt:W,sampler:B,seamBlur:K,seamless:ne,seamSize:z,seamSteps:$,seamStrength:U,seed:X,seedWeights:Q,shouldFitToWidthHeight:G,shouldGenerateVariations:Y,shouldRandomizeSeed:ee,steps:fe,threshold:ke,tileSize:we,variationAmount:xe,width:Ce,shouldUseSymmetry:Se,horizontalSymmetryTimePercentage:Qe,verticalSymmetryTimePercentage:tt}=r,{shouldDisplayInProgressType:it,saveIntermediatesInterval:xt,enableImageDebugging:Be}=a,Le={prompt:N,iterations:D,steps:fe,cfg_scale:_,threshold:ke,perlin:R,height:k,width:Ce,sampler_name:B,seed:X,progress_images:it==="full-res",progress_latents:it==="latents",save_intermediates:xt,generation_mode:n,init_mask:""};let St=!1,Fe=!1;if(W!==""&&(Le.prompt=`${N} [${W}]`),Le.seed=ee?YU(ME,LE):X,Se&&(Qe>0&&(Le.h_symmetry_time_pct=Math.max(0,Math.min(1,Qe/fe))),Qe>0&&(Le.v_symmetry_time_pct=Math.max(0,Math.min(1,tt/fe)))),n==="txt2img"&&(Le.hires_fix=d,d&&(Le.strength=h)),["txt2img","img2img"].includes(n)&&(Le.seamless=ne,m&&(St={level:b,denoise_str:E,strength:w}),y&&(Fe={type:u,strength:l},u==="codeformer"&&(Fe.codeformer_fidelity=s))),n==="img2img"&&O&&(Le.init_img=typeof O=="string"?O:O.url,Le.strength=P,Le.fit=G),n==="unifiedCanvas"&&t){const{layerState:{objects:at},boundingBoxCoordinates:$t,boundingBoxDimensions:vt,stageScale:Jt,isMaskEnabled:sn,shouldPreserveMaskedArea:se,boundingBoxScaleMethod:Ie,scaledBoundingBoxDimensions:He}=o,Ve={...$t,...vt},ye=f_e(sn?at.filter(bE):[],Ve);Le.init_mask=ye,Le.fit=!1,Le.strength=P,Le.invert_mask=se,Le.bounding_box=Ve;const je=t.scale();t.scale({x:1/Jt,y:1/Jt});const yt=t.getAbsolutePosition(),Lt=t.toDataURL({x:Ve.x+yt.x,y:Ve.y+yt.y,width:Ve.width,height:Ve.height});Be&&g_e([{base64:ye,caption:"mask sent as init_mask"},{base64:Lt,caption:"image sent as init_img"}]),t.scale(je),Le.init_img=Lt,Le.progress_images=!1,Ie!=="none"&&(Le.inpaint_width=He.width,Le.inpaint_height=He.height),Le.seam_size=z,Le.seam_blur=K,Le.seam_strength=U,Le.seam_steps=$,Le.tile_size=we,Le.infill_method=L,Le.force_outpaint=!1}return Y?(Le.variation_amount=xe,Q&&(Le.with_variations=twe(Q))):Le.variation_amount=0,Be&&(Le.enable_image_debugging=Be),{generationParameters:Le,esrganParameters:St,facetoolParameters:Fe}};var v_e=/d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|W{1,2}|[LlopSZN]|"[^"]*"|'[^']*'/g,y_e=/\b(?:[A-Z]{1,3}[A-Z][TC])(?:[-+]\d{4})?|((?:Australian )?(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time)\b/g,b_e=/[^-+\dA-Z]/g;function Li(e,t,n,r){if(arguments.length===1&&typeof e=="string"&&!/\d/.test(e)&&(t=e,e=void 0),e=e||e===0?e:new Date,e instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");t=String(MR[t]||t||MR.default);var i=t.slice(0,4);(i==="UTC:"||i==="GMT:")&&(t=t.slice(4),n=!0,i==="GMT:"&&(r=!0));var o=function(){return n?"getUTC":"get"},a=function(){return e[o()+"Date"]()},s=function(){return e[o()+"Day"]()},l=function(){return e[o()+"Month"]()},u=function(){return e[o()+"FullYear"]()},d=function(){return e[o()+"Hours"]()},h=function(){return e[o()+"Minutes"]()},m=function(){return e[o()+"Seconds"]()},y=function(){return e[o()+"Milliseconds"]()},b=function(){return n?0:e.getTimezoneOffset()},w=function(){return x_e(e)},E=function(){return S_e(e)},_={d:function(){return a()},dd:function(){return wa(a())},ddd:function(){return Wo.dayNames[s()]},DDD:function(){return LR({y:u(),m:l(),d:a(),_:o(),dayName:Wo.dayNames[s()],short:!0})},dddd:function(){return Wo.dayNames[s()+7]},DDDD:function(){return LR({y:u(),m:l(),d:a(),_:o(),dayName:Wo.dayNames[s()+7]})},m:function(){return l()+1},mm:function(){return wa(l()+1)},mmm:function(){return Wo.monthNames[l()]},mmmm:function(){return Wo.monthNames[l()+12]},yy:function(){return String(u()).slice(2)},yyyy:function(){return wa(u(),4)},h:function(){return d()%12||12},hh:function(){return wa(d()%12||12)},H:function(){return d()},HH:function(){return wa(d())},M:function(){return h()},MM:function(){return wa(h())},s:function(){return m()},ss:function(){return wa(m())},l:function(){return wa(y(),3)},L:function(){return wa(Math.floor(y()/10))},t:function(){return d()<12?Wo.timeNames[0]:Wo.timeNames[1]},tt:function(){return d()<12?Wo.timeNames[2]:Wo.timeNames[3]},T:function(){return d()<12?Wo.timeNames[4]:Wo.timeNames[5]},TT:function(){return d()<12?Wo.timeNames[6]:Wo.timeNames[7]},Z:function(){return r?"GMT":n?"UTC":w_e(e)},o:function(){return(b()>0?"-":"+")+wa(Math.floor(Math.abs(b())/60)*100+Math.abs(b())%60,4)},p:function(){return(b()>0?"-":"+")+wa(Math.floor(Math.abs(b())/60),2)+":"+wa(Math.floor(Math.abs(b())%60),2)},S:function(){return["th","st","nd","rd"][a()%10>3?0:(a()%100-a()%10!=10)*a()%10]},W:function(){return w()},WW:function(){return wa(w())},N:function(){return E()}};return t.replace(v_e,function(k){return k in _?_[k]():k.slice(1,k.length-1)})}var MR={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",paddedShortDate:"mm/dd/yyyy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},Wo={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],timeNames:["a","p","am","pm","A","P","AM","PM"]},wa=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return String(t).padStart(n,"0")},LR=function(t){var n=t.y,r=t.m,i=t.d,o=t._,a=t.dayName,s=t.short,l=s===void 0?!1:s,u=new Date,d=new Date;d.setDate(d[o+"Date"]()-1);var h=new Date;h.setDate(h[o+"Date"]()+1);var m=function(){return u[o+"Date"]()},y=function(){return u[o+"Month"]()},b=function(){return u[o+"FullYear"]()},w=function(){return d[o+"Date"]()},E=function(){return d[o+"Month"]()},_=function(){return d[o+"FullYear"]()},k=function(){return h[o+"Date"]()},P=function(){return h[o+"Month"]()},L=function(){return h[o+"FullYear"]()};return b()===n&&y()===r&&m()===i?l?"Tdy":"Today":_()===n&&E()===r&&w()===i?l?"Ysd":"Yesterday":L()===n&&P()===r&&k()===i?l?"Tmw":"Tomorrow":a},x_e=function(t){var n=new Date(t.getFullYear(),t.getMonth(),t.getDate());n.setDate(n.getDate()-(n.getDay()+6)%7+3);var r=new Date(n.getFullYear(),0,4);r.setDate(r.getDate()-(r.getDay()+6)%7+3);var i=n.getTimezoneOffset()-r.getTimezoneOffset();n.setHours(n.getHours()-i);var o=(n-r)/(864e5*7);return 1+Math.floor(o)},S_e=function(t){var n=t.getDay();return n===0&&(n=7),n},w_e=function(t){return(String(t).match(y_e)||[""]).pop().replace(b_e,"").replace(/GMT\+0000/g,"UTC")};const C_e=(e,t)=>{const{dispatch:n,getState:r}=e;return{emitGenerateImage:i=>{n(_a(!0));const o=r(),{generation:a,postprocessing:s,system:l,canvas:u}=o,d={generationMode:i,generationState:a,postprocessingState:s,canvasState:u,systemState:l};n(q4e());const{generationParameters:h,esrganParameters:m,facetoolParameters:y}=m_e(d);t.emit("generateImage",h,m,y),h.init_mask&&(h.init_mask=h.init_mask.substr(0,64).concat("...")),h.init_img&&(h.init_img=h.init_img.substr(0,64).concat("...")),n(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Image generation requested: ${JSON.stringify({...h,...m,...y})}`}))},emitRunESRGAN:i=>{n(_a(!0));const{postprocessing:{upscalingLevel:o,upscalingDenoising:a,upscalingStrength:s}}=r(),l={upscale:[o,a,s]};t.emit("runPostprocessing",i,{type:"esrgan",...l}),n(Mi({timestamp:Li(new Date,"isoDateTime"),message:`ESRGAN upscale requested: ${JSON.stringify({file:i.url,...l})}`}))},emitRunFacetool:i=>{n(_a(!0));const{postprocessing:{facetoolType:o,facetoolStrength:a,codeformerFidelity:s}}=r(),l={facetool_strength:a};o==="codeformer"&&(l.codeformer_fidelity=s),t.emit("runPostprocessing",i,{type:o,...l}),n(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Face restoration (${o}) requested: ${JSON.stringify({file:i.url,...l})}`}))},emitDeleteImage:i=>{const{url:o,uuid:a,category:s,thumbnail:l}=i;n(dV(i)),t.emit("deleteImage",o,l,a,s)},emitRequestImages:i=>{const o=r().gallery,{earliest_mtime:a}=o.categories[i];t.emit("requestImages",i,a)},emitRequestNewImages:i=>{const o=r().gallery,{latest_mtime:a}=o.categories[i];t.emit("requestLatestImages",i,a)},emitCancelProcessing:()=>{t.emit("cancel")},emitRequestSystemConfig:()=>{t.emit("requestSystemConfig")},emitSearchForModels:i=>{t.emit("searchForModels",i)},emitAddNewModel:i=>{t.emit("addNewModel",i)},emitDeleteModel:i=>{t.emit("deleteModel",i)},emitConvertToDiffusers:i=>{n(W4e()),t.emit("convertToDiffusers",i)},emitMergeDiffusersModels:i=>{n(V4e()),t.emit("mergeDiffusersModels",i)},emitRequestModelChange:i=>{n(H4e()),t.emit("requestModelChange",i)},emitSaveStagingAreaImageToGallery:i=>{t.emit("requestSaveStagingAreaImageToGallery",i)},emitRequestEmptyTempFolder:()=>{t.emit("requestEmptyTempFolder")}}};let bx;const __e=new Uint8Array(16);function k_e(){if(!bx&&(bx=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!bx))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return bx(__e)}const Vi=[];for(let e=0;e<256;++e)Vi.push((e+256).toString(16).slice(1));function E_e(e,t=0){return(Vi[e[t+0]]+Vi[e[t+1]]+Vi[e[t+2]]+Vi[e[t+3]]+"-"+Vi[e[t+4]]+Vi[e[t+5]]+"-"+Vi[e[t+6]]+Vi[e[t+7]]+"-"+Vi[e[t+8]]+Vi[e[t+9]]+"-"+Vi[e[t+10]]+Vi[e[t+11]]+Vi[e[t+12]]+Vi[e[t+13]]+Vi[e[t+14]]+Vi[e[t+15]]).toLowerCase()}const P_e=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),AR={randomUUID:P_e};function gm(e,t,n){if(AR.randomUUID&&!t&&!e)return AR.randomUUID();e=e||{};const r=e.random||(e.rng||k_e)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let i=0;i<16;++i)t[n+i]=r[i];return t}return E_e(r)}const Xk=Sr("socketio/generateImage"),T_e=Sr("socketio/runESRGAN"),M_e=Sr("socketio/runFacetool"),L_e=Sr("socketio/deleteImage"),Zk=Sr("socketio/requestImages"),OR=Sr("socketio/requestNewImages"),A_e=Sr("socketio/cancelProcessing"),O_e=Sr("socketio/requestSystemConfig"),IR=Sr("socketio/searchForModels"),x2=Sr("socketio/addNewModel"),I_e=Sr("socketio/deleteModel"),R_e=Sr("socketio/convertToDiffusers"),D_e=Sr("socketio/mergeDiffusersModels"),XU=Sr("socketio/requestModelChange"),j_e=Sr("socketio/saveStagingAreaImageToGallery"),N_e=Sr("socketio/requestEmptyTempFolder"),$_e=e=>{const{dispatch:t,getState:n}=e;return{onConnect:()=>{try{t(YI(!0)),t(mh(Pt.t("common.statusConnected"))),t(O_e());const r=n().gallery;r.categories.result.latest_mtime?t(OR("result")):t(Zk("result")),r.categories.user.latest_mtime?t(OR("user")):t(Zk("user"))}catch(r){console.error(r)}},onDisconnect:()=>{try{t(YI(!1)),t(mh(Pt.t("common.statusDisconnected"))),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:"Disconnected from server",level:"warning"}))}catch(r){console.error(r)}},onGenerationResult:r=>{try{const i=n(),{activeTab:o}=i.ui,{shouldLoopback:a}=i.postprocessing,{boundingBox:s,generationMode:l,...u}=r,d={uuid:gm(),...u};if(["txt2img","img2img"].includes(l)&&t(hm({category:"result",image:{...d,category:"result"}})),l==="unifiedCanvas"&&r.boundingBox){const{boundingBox:h}=r;t(x3e({image:{...d,category:"temp"},boundingBox:h})),i.canvas.shouldAutoSave&&t(hm({image:{...d,category:"result"},category:"result"}))}if(a)switch(EE[o]){case"img2img":{t(S0(d));break}}t(WC()),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Image generated: ${r.url}`}))}catch(i){console.error(i)}},onIntermediateResult:r=>{try{t(W3e({uuid:gm(),...r,category:"result"})),r.isBase64||t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Intermediate image generated: ${r.url}`}))}catch(i){console.error(i)}},onPostprocessingResult:r=>{try{t(hm({category:"result",image:{uuid:gm(),...r,category:"result"}})),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Postprocessed: ${r.url}`}))}catch(i){console.error(i)}},onProgressUpdate:r=>{try{t(_a(!0)),t($4e(r))}catch(i){console.error(i)}},onError:r=>{const{message:i,additionalData:o}=r;try{t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Server error: ${i}`,level:"error"})),t(XI()),t(WC())}catch(a){console.error(a)}},onGalleryImages:r=>{const{images:i,areMoreImagesAvailable:o,category:a}=r,s=i.map(l=>({uuid:gm(),...l}));t(H3e({images:s,areMoreImagesAvailable:o,category:a})),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Loaded ${i.length} images`}))},onProcessingCanceled:()=>{t(z4e());const{intermediateImage:r}=n().gallery;r&&(r.isBase64||(t(hm({category:"result",image:r})),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Intermediate image saved: ${r.url}`}))),t(WC())),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:"Processing canceled",level:"warning"}))},onImageDeleted:r=>{const{url:i}=r;t(dV(r));const{generation:{initialImage:o,maskPath:a}}=n();(o===i||(o==null?void 0:o.url)===i)&&t(vV()),a===i&&t(xV("")),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Image deleted: ${i}`}))},onSystemConfig:r=>{t(F4e(r)),r.infill_methods.includes("patchmatch")||t(bV(r.infill_methods[0]))},onFoundModels:r=>{const{search_folder:i,found_models:o}=r;t(KV(i)),t(YV(o))},onNewModelAdded:r=>{const{new_model_name:i,model_list:o,update:a}=r;t(Ng(o)),t(_a(!1)),t(mh(Pt.t("modelManager.modelAdded"))),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Model Added: ${i}`,level:"info"})),t(Bu({title:a?`${Pt.t("modelManager.modelUpdated")}: ${i}`:`${Pt.t("modelManager.modelAdded")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelDeleted:r=>{const{deleted_model_name:i,model_list:o}=r;t(Ng(o)),t(_a(!1)),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`${Pt.t("modelmanager:modelAdded")}: ${i}`,level:"info"})),t(Bu({title:`${Pt.t("modelmanager:modelEntryDeleted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelConverted:r=>{const{converted_model_name:i,model_list:o}=r;t(Ng(o)),t(mh(Pt.t("common.statusModelConverted"))),t(_a(!1)),t(Ed(!0)),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Model converted: ${i}`,level:"info"})),t(Bu({title:`${Pt.t("modelmanager:modelConverted")}: ${i}`,status:"success",duration:2500,isClosable:!0}))},onModelsMerged:r=>{const{merged_models:i,merged_model_name:o,model_list:a}=r;t(Ng(a)),t(mh(Pt.t("common.statusMergedModels"))),t(_a(!1)),t(Ed(!0)),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Models merged: ${i}`,level:"info"})),t(Bu({title:`${Pt.t("modelManager.modelsMerged")}: ${o}`,status:"success",duration:2500,isClosable:!0}))},onModelChanged:r=>{const{model_name:i,model_list:o}=r;t(Ng(o)),t(mh(Pt.t("common.statusModelChanged"))),t(_a(!1)),t(Ed(!0)),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Model changed: ${i}`,level:"info"}))},onModelChangeFailed:r=>{const{model_name:i,model_list:o}=r;t(Ng(o)),t(_a(!1)),t(Ed(!0)),t(XI()),t(Mi({timestamp:Li(new Date,"isoDateTime"),message:`Model change failed: ${i}`,level:"error"}))},onTempFolderEmptied:()=>{t(Bu({title:Pt.t("toast.tempFoldersEmptied"),status:"success",duration:2500,isClosable:!0}))}}},F_e=()=>{const{origin:e}=new URL(window.location.href),t=vS(e,{timeout:6e4,path:`${window.location.pathname}socket.io`});let n=!1;return i=>o=>a=>{const{onConnect:s,onDisconnect:l,onError:u,onPostprocessingResult:d,onGenerationResult:h,onIntermediateResult:m,onProgressUpdate:y,onGalleryImages:b,onProcessingCanceled:w,onImageDeleted:E,onSystemConfig:_,onModelChanged:k,onFoundModels:P,onNewModelAdded:L,onModelDeleted:O,onModelConverted:D,onModelsMerged:R,onModelChangeFailed:N,onTempFolderEmptied:W}=$_e(i),{emitGenerateImage:B,emitRunESRGAN:K,emitRunFacetool:ne,emitDeleteImage:z,emitRequestImages:$,emitRequestNewImages:U,emitCancelProcessing:X,emitRequestSystemConfig:Q,emitSearchForModels:G,emitAddNewModel:Y,emitDeleteModel:ee,emitConvertToDiffusers:fe,emitMergeDiffusersModels:ke,emitRequestModelChange:we,emitSaveStagingAreaImageToGallery:xe,emitRequestEmptyTempFolder:Ce}=C_e(i,t);switch(n||(t.on("connect",()=>s()),t.on("disconnect",()=>l()),t.on("error",Se=>u(Se)),t.on("generationResult",Se=>h(Se)),t.on("postprocessingResult",Se=>d(Se)),t.on("intermediateResult",Se=>m(Se)),t.on("progressUpdate",Se=>y(Se)),t.on("galleryImages",Se=>b(Se)),t.on("processingCanceled",()=>{w()}),t.on("imageDeleted",Se=>{E(Se)}),t.on("systemConfig",Se=>{_(Se)}),t.on("foundModels",Se=>{P(Se)}),t.on("newModelAdded",Se=>{L(Se)}),t.on("modelDeleted",Se=>{O(Se)}),t.on("modelConverted",Se=>{D(Se)}),t.on("modelsMerged",Se=>{R(Se)}),t.on("modelChanged",Se=>{k(Se)}),t.on("modelChangeFailed",Se=>{N(Se)}),t.on("tempFolderEmptied",()=>{W()}),n=!0),a.type){case"socketio/generateImage":{B(a.payload);break}case"socketio/runESRGAN":{K(a.payload);break}case"socketio/runFacetool":{ne(a.payload);break}case"socketio/deleteImage":{z(a.payload);break}case"socketio/requestImages":{$(a.payload);break}case"socketio/requestNewImages":{U(a.payload);break}case"socketio/cancelProcessing":{X();break}case"socketio/requestSystemConfig":{Q();break}case"socketio/searchForModels":{G(a.payload);break}case"socketio/addNewModel":{Y(a.payload);break}case"socketio/deleteModel":{ee(a.payload);break}case"socketio/convertToDiffusers":{fe(a.payload);break}case"socketio/mergeDiffusersModels":{ke(a.payload);break}case"socketio/requestModelChange":{we(a.payload);break}case"socketio/saveStagingAreaImageToGallery":{xe(a.payload);break}case"socketio/requestEmptyTempFolder":{Ce();break}}o(a)}},B_e=["cursorPosition","isCanvasInitialized","doesCanvasNeedScaling"].map(e=>`canvas.${e}`),z_e=["currentIteration","currentStatus","currentStep","isCancelable","isConnected","isESRGANAvailable","isGFPGANAvailable","isProcessing","socketId","totalIterations","totalSteps","openModel","cancelOptions.cancelAfter"].map(e=>`system.${e}`),H_e=["categories","currentCategory","currentImage","currentImageUuid","shouldAutoSwitchToNewImages","shouldHoldGalleryOpen","intermediateImage"].map(e=>`gallery.${e}`),ZU=IW({generation:swe,postprocessing:fwe,gallery:X3e,system:X4e,canvas:B3e,ui:s5e,lightbox:J3e}),W_e=VW.getPersistConfig({key:"root",storage:WW,rootReducer:ZU,blacklist:[...B_e,...z_e,...H_e],debounce:300}),V_e=qSe(W_e,ZU),QU=CSe({reducer:V_e,middleware:e=>e({immutableCheck:!1,serializableCheck:!1}).concat(F_e()),devTools:{actionsDenylist:["canvas/setCursorPosition","canvas/setStageCoordinates","canvas/setStageScale","canvas/setIsDrawing","canvas/setBoundingBoxCoordinates","canvas/setBoundingBoxDimensions","canvas/setIsDrawing","canvas/addPointToCurrentLine"]}}),JU=JSe(QU);const NE=S.createContext(null),Te=Nxe,le=Exe;let RR;const $E=()=>({setOpenUploader:e=>{e&&(RR=e)},openUploader:RR}),Hr=lt(e=>e.ui,e=>EE[e.activeTab],{memoizeOptions:{equalityCheck:Pe.isEqual}}),U_e=lt(e=>e.ui,e=>e.activeTab,{memoizeOptions:{equalityCheck:Pe.isEqual}}),yp=lt(e=>e.ui,e=>e,{memoizeOptions:{equalityCheck:Pe.isEqual}}),DR=e=>async(t,n)=>{const{imageFile:r}=e,i=n(),o=Hr(i),a=new FormData;a.append("file",r,r.name),a.append("data",JSON.stringify({kind:"init"}));const l=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:a})).json(),u={uuid:gm(),category:"user",...l};t(hm({image:u,category:"user"})),o==="unifiedCanvas"?t(u4(u)):o==="img2img"&&t(S0(u))};function G_e(){const{t:e}=De();return g.jsxs("div",{className:"work-in-progress nodes-work-in-progress",children:[g.jsx("h1",{children:e("common.nodes")}),g.jsx("p",{children:e("common.nodesDesc")})]})}const q_e=()=>{const{t:e}=De();return g.jsxs("div",{className:"work-in-progress post-processing-work-in-progress",children:[g.jsx("h1",{children:e("common.postProcessing")}),g.jsx("p",{children:e("common.postProcessDesc1")}),g.jsx("p",{children:e("common.postProcessDesc2")}),g.jsx("p",{children:e("common.postProcessDesc3")})]})};function K_e(){const{t:e}=De();return g.jsxs("div",{className:"work-in-progress nodes-work-in-progress",children:[g.jsx("h1",{children:e("common.training")}),g.jsxs("p",{children:[e("common.trainingDesc1"),g.jsx("br",{}),g.jsx("br",{}),e("common.trainingDesc2")]})]})}function Y_e(e){const{i18n:t}=De(),n=localStorage.getItem("i18nextLng");Ke.useEffect(()=>{e()},[e]),Ke.useEffect(()=>{t.on("languageChanged",()=>{e()})},[e,t,n])}const X_e=pc({displayName:"ImageToImageIcon",viewBox:"0 0 3543 3543",path:g.jsx("g",{transform:"matrix(1.10943,0,0,1.10943,-206.981,-213.533)",children:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M688.533,2405.95L542.987,2405.95C349.532,2405.95 192.47,2248.89 192.47,2055.44L192.47,542.987C192.47,349.532 349.532,192.47 542.987,192.47L2527.88,192.47C2721.33,192.47 2878.4,349.532 2878.4,542.987L2878.4,1172.79L3023.94,1172.79C3217.4,1172.79 3374.46,1329.85 3374.46,1523.3C3374.46,1523.3 3374.46,3035.75 3374.46,3035.75C3374.46,3229.21 3217.4,3386.27 3023.94,3386.27L1039.05,3386.27C845.595,3386.27 688.533,3229.21 688.533,3035.75L688.533,2405.95ZM3286.96,2634.37L3286.96,1523.3C3286.96,1378.14 3169.11,1260.29 3023.94,1260.29C3023.94,1260.29 1039.05,1260.29 1039.05,1260.29C893.887,1260.29 776.033,1378.14 776.033,1523.3L776.033,2489.79L1440.94,1736.22L2385.83,2775.59L2880.71,2200.41L3286.96,2634.37ZM2622.05,1405.51C2778.5,1405.51 2905.51,1532.53 2905.51,1688.98C2905.51,1845.42 2778.5,1972.44 2622.05,1972.44C2465.6,1972.44 2338.58,1845.42 2338.58,1688.98C2338.58,1532.53 2465.6,1405.51 2622.05,1405.51ZM2790.9,1172.79L1323.86,1172.79L944.882,755.906L279.97,1509.47L279.97,542.987C279.97,397.824 397.824,279.97 542.987,279.97C542.987,279.97 2527.88,279.97 2527.88,279.97C2673.04,279.97 2790.9,397.824 2790.9,542.987L2790.9,1172.79ZM2125.98,425.197C2282.43,425.197 2409.45,552.213 2409.45,708.661C2409.45,865.11 2282.43,992.126 2125.98,992.126C1969.54,992.126 1842.52,865.11 1842.52,708.661C1842.52,552.213 1969.54,425.197 2125.98,425.197Z"})}),defaultProps:{boxSize:"24px"}}),Z_e=pc({displayName:"NodesIcon",viewBox:"0 0 3543 3543",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z"}),defaultProps:{boxSize:"24px"}}),Q_e=pc({displayName:"PostprocessingIcon",viewBox:"0 0 3543 3543",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z"}),defaultProps:{boxSize:"24px"}}),J_e=pc({displayName:"TextToImageIcon",viewBox:"0 0 3543 3543",path:g.jsx("g",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",transform:"matrix(1.11667,0,0,1.1066,-231.131,-213.062)",children:g.jsx("path",{d:"M2209.59,1137.35L2209.59,1098.17C2177.13,1108.99 2125.74,1121.91 2055.41,1136.94C2054.77,1137.08 2054.14,1137.21 2053.49,1137.35L1662.79,1137.35C1687.75,1101.98 1720.8,1074.35 1761.93,1054.44C1808.52,1031.9 1875.69,1012.22 1963.45,995.386C2081.86,973.146 2163.91,952.409 2209.59,933.174L2209.59,907.929C2209.59,859.241 2197.57,824.529 2173.53,803.792C2149.48,783.054 2104.1,772.686 2037.38,772.686C1992.3,772.686 1957.14,781.552 1931.89,799.284C1906.64,817.015 1886.21,848.121 1870.58,892.601L1640.67,851.127C1666.51,758.56 1710.99,690.037 1774.11,645.557C1837.22,601.077 1930.99,578.837 2055.41,578.837C2168.42,578.837 2252.57,592.211 2307.87,618.959C2363.17,645.707 2402.09,679.668 2424.63,720.842C2447.17,762.016 2458.44,837.602 2458.44,947.6L2456.7,1137.35L3021.34,1137.35C3214.79,1137.35 3371.86,1294.41 3371.86,1487.87C3371.86,1487.87 3371.86,3000.32 3371.86,3000.32C3371.86,3193.78 3214.79,3350.84 3021.34,3350.84C3021.34,3350.84 1036.45,3350.84 1036.45,3350.84C842.991,3350.84 685.93,3193.78 685.93,3000.32L685.93,1487.87C685.93,1400.21 718.174,1320.03 771.448,1258.54L772.123,1257.76L607.408,1257.76L498.311,1558L215.202,1558L730.028,236.22L1012.24,236.22L1373.06,1137.35L2209.59,1137.35ZM3284.36,2598.93L3284.36,1487.87C3284.36,1342.71 3166.5,1224.85 3021.34,1224.85C3021.34,1224.85 1036.45,1224.85 1036.45,1224.85C891.284,1224.85 773.43,1342.71 773.43,1487.87L773.43,2454.35L1438.34,1700.79L2383.22,2740.16L2878.11,2164.98L3284.36,2598.93ZM2619.44,1370.08C2775.89,1370.08 2902.91,1497.1 2902.91,1653.54C2902.91,1809.99 2775.89,1937.01 2619.44,1937.01C2462.99,1937.01 2335.98,1809.99 2335.98,1653.54C2335.98,1497.1 2462.99,1370.08 2619.44,1370.08ZM772.877,1256.89L772.849,1256.93L773.167,1256.57L772.877,1256.89ZM773.634,1256.04L773.563,1256.12L773.985,1255.64L773.634,1256.04ZM774.394,1255.18L774.276,1255.31L774.746,1254.78L774.394,1255.18ZM775.157,1254.32L774.988,1254.51L775.493,1253.95L775.157,1254.32ZM775.923,1253.47L775.698,1253.72L776.237,1253.12L775.923,1253.47ZM776.691,1252.62L776.403,1252.94L776.979,1252.3L776.691,1252.62ZM777.462,1251.77L777.098,1252.17L777.723,1251.49L777.462,1251.77ZM925.081,1155.44C868.026,1174.57 817.508,1207.99 777.775,1251.43C817.511,1207.99 868.031,1174.57 925.081,1155.44ZM925.646,1155.25L925.108,1155.43L926.103,1155.1L925.646,1155.25ZM935.286,1152.2C932.214,1153.12 929.159,1154.09 926.13,1155.09C929.165,1154.09 932.219,1153.12 935.286,1152.2ZM935.716,1152.07L935.384,1152.17L936.292,1151.89L935.716,1152.07ZM936.843,1151.73L936.451,1151.85L937.327,1151.59L936.843,1151.73ZM937.972,1151.4L937.514,1151.53L938.377,1151.28L937.972,1151.4ZM939.102,1151.07L938.57,1151.22L939.438,1150.97L939.102,1151.07ZM940.233,1150.74L939.613,1150.92L940.505,1150.67L940.233,1150.74ZM946.659,1148.98C944.639,1149.51 942.626,1150.07 940.626,1150.63C942.631,1150.06 944.642,1149.51 946.659,1148.98ZM947.056,1148.87L946.829,1148.93L947.659,1148.71L947.056,1148.87ZM948.198,1148.57L947.919,1148.65L948.705,1148.44L948.198,1148.57ZM949.342,1148.28L949.008,1148.37L949.771,1148.17L949.342,1148.28ZM950.488,1147.99L950.096,1148.09L950.848,1147.9L950.488,1147.99ZM951.635,1147.7L951.182,1147.81L951.932,1147.63L951.635,1147.7ZM952.783,1147.42L952.262,1147.55L953.022,1147.36L952.783,1147.42ZM953.933,1147.14L953.327,1147.28L954.115,1147.09L953.933,1147.14ZM958.213,1146.13C956.927,1146.42 955.644,1146.73 954.354,1147.04C955.637,1146.73 956.923,1146.43 958.213,1146.13ZM958.547,1146.06L958.409,1146.09L959.174,1145.91L958.547,1146.06ZM959.704,1145.79L959.517,1145.84L960.229,1145.68L959.704,1145.79ZM960.863,1145.54L960.626,1145.59L961.311,1145.44L960.863,1145.54ZM962.023,1145.28L961.736,1145.35L962.406,1145.2L962.023,1145.28ZM963.184,1145.03L962.846,1145.11L963.508,1144.97L963.184,1145.03ZM964.347,1144.79L963.956,1144.87L964.615,1144.73L964.347,1144.79ZM965.511,1144.55L965.066,1144.64L965.725,1144.5L965.511,1144.55ZM966.677,1144.31L966.172,1144.41L966.838,1144.28L966.677,1144.31ZM967.844,1144.08L967.269,1144.19L967.953,1144.05L967.844,1144.08ZM970.183,1143.62C969.793,1143.69 969.403,1143.77 969.013,1143.85L969.055,1143.84C969.413,1143.77 969.771,1143.7 970.129,1143.63L970.183,1143.62ZM971.354,1143.4L971.245,1143.42L971.882,1143.3L971.354,1143.4ZM972.526,1143.18L972.37,1143.21L972.987,1143.09L972.526,1143.18ZM973.7,1142.96L973.496,1143L974.103,1142.89L973.7,1142.96ZM974.876,1142.75L974.624,1142.8L975.225,1142.69L974.876,1142.75ZM976.052,1142.55L975.754,1142.6L976.349,1142.49L976.052,1142.55ZM977.23,1142.34L976.885,1142.4L977.476,1142.3L977.23,1142.34ZM978.41,1142.14L978.019,1142.21L978.605,1142.11L978.41,1142.14ZM979.59,1141.95L979.156,1142.02L979.736,1141.92L979.59,1141.95ZM980.772,1141.76L980.299,1141.83L980.868,1141.74L980.772,1141.76ZM981.955,1141.57L981.464,1141.65L982.002,1141.56L981.955,1141.57ZM983.14,1141.39L983.1,1141.39L983.605,1141.32L983.14,1141.39ZM984.326,1141.21L984.239,1141.22L984.778,1141.14L984.326,1141.21ZM985.513,1141.03L985.379,1141.05L985.928,1140.97L985.513,1141.03ZM986.702,1140.86L986.521,1140.89L987.073,1140.81L986.702,1140.86ZM987.891,1140.69L987.665,1140.73L988.218,1140.65L987.891,1140.69ZM989.082,1140.53L988.811,1140.57L989.363,1140.49L989.082,1140.53ZM990.275,1140.37L989.96,1140.41L990.508,1140.34L990.275,1140.37ZM991.468,1140.22L991.113,1140.26L991.654,1140.19L991.468,1140.22ZM992.663,1140.07L992.273,1140.12L992.8,1140.05L992.663,1140.07ZM993.859,1139.92L993.447,1139.97L993.948,1139.91L993.859,1139.92ZM995.056,1139.78L994.671,1139.82L995.097,1139.77L995.056,1139.78ZM996.255,1139.64L996.23,1139.64L996.578,1139.6L996.255,1139.64ZM997.454,1139.5L997.383,1139.51L997.852,1139.46L997.454,1139.5ZM998.655,1139.37L998.537,1139.38L999.041,1139.33L998.655,1139.37ZM999.857,1139.24L999.693,1139.26L1000.21,1139.21L999.857,1139.24ZM1001.06,1139.12L1000.85,1139.14L1001.38,1139.09L1001.06,1139.12ZM1002.26,1139L1002.01,1139.03L1002.54,1138.98L1002.26,1139ZM1003.47,1138.89L1003.18,1138.91L1003.7,1138.87L1003.47,1138.89ZM1004.68,1138.78L1004.34,1138.81L1004.86,1138.76L1004.68,1138.78ZM1005.89,1138.67L1005.52,1138.7L1006.02,1138.66L1005.89,1138.67ZM1007.1,1138.57L1006.71,1138.6L1007.18,1138.56L1007.1,1138.57ZM1008.31,1138.47L1007.96,1138.5L1008.35,1138.46L1008.31,1138.47ZM1009.52,1138.37L1009.5,1138.38L1009.72,1138.36L1009.52,1138.37ZM1010.73,1138.28L1010.67,1138.29L1011.1,1138.26L1010.73,1138.28ZM1011.94,1138.2L1011.84,1138.2L1012.32,1138.17L1011.94,1138.2ZM1013.16,1138.12L1013,1138.13L1013.51,1138.09L1013.16,1138.12ZM1014.37,1138.04L1014.17,1138.05L1014.69,1138.02L1014.37,1138.04ZM1015.59,1137.96L1015.35,1137.98L1015.86,1137.95L1015.59,1137.96ZM1016.81,1137.89L1016.52,1137.91L1017.04,1137.88L1016.81,1137.89ZM1018.03,1137.83L1017.7,1137.85L1018.21,1137.82L1018.03,1137.83ZM1019.25,1137.77L1018.89,1137.79L1019.39,1137.76L1019.25,1137.77ZM1020.47,1137.71L1020.1,1137.73L1020.56,1137.71L1020.47,1137.71ZM1021.69,1137.66L1021.36,1137.67L1021.74,1137.66L1021.69,1137.66ZM1022.92,1137.61L1022.91,1137.61L1023.02,1137.61L1022.92,1137.61ZM1024.14,1137.57L1024.09,1137.57L1024.49,1137.55L1024.14,1137.57ZM1025.37,1137.52L1025.27,1137.53L1025.74,1137.51L1025.37,1137.52ZM1026.6,1137.49L1026.45,1137.49L1026.94,1137.48L1026.6,1137.49ZM1027.82,1137.46L1027.63,1137.46L1028.14,1137.45L1027.82,1137.46ZM1029.05,1137.43L1028.81,1137.43L1029.33,1137.42L1029.05,1137.43ZM1030.28,1137.41L1030,1137.41L1030.52,1137.4L1030.28,1137.41ZM1031.51,1137.39L1031.19,1137.39L1031.7,1137.38L1031.51,1137.39ZM1032.75,1137.37L1032.39,1137.38L1032.89,1137.37L1032.75,1137.37ZM1033.98,1137.36L1033.61,1137.36L1034.07,1137.36L1033.98,1137.36ZM1035.21,1137.35L1034.87,1137.36L1035.26,1137.35L1035.21,1137.35ZM1050.1,1035.06L867.977,544.575L689.455,1035.06L1050.1,1035.06Z"})}),defaultProps:{boxSize:"24px"}}),eke=pc({displayName:"TrainingIcon",viewBox:"0 0 3544 3544",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z"}),defaultProps:{boxSize:"24px"}}),tke=pc({displayName:"UnifiedCanvasIcon",viewBox:"0 0 3544 3544",path:g.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z"}),defaultProps:{boxSize:"24px"}}),Ye=Xe((e,t)=>{const{tooltip:n="",tooltipProps:r,isChecked:i,...o}=e;return g.jsx(ui,{label:n,hasArrow:!0,...r,...r!=null&&r.placement?{placement:r.placement}:{placement:"top"},children:g.jsx(Da,{ref:t,"aria-checked":i!==void 0?i:void 0,...o})})}),Hn=Xe((e,t)=>{const{children:n,tooltip:r="",tooltipProps:i,isChecked:o,...a}=e;return g.jsx(ui,{label:r,...i,children:g.jsx(Ra,{ref:t,"aria-checked":o,...a,children:n})})}),Qs=e=>{const{triggerComponent:t,children:n,hasArrow:r=!0,...i}=e;return g.jsxs(J8,{...i,children:[g.jsx(Q8,{children:t}),g.jsxs(tE,{children:[r&&g.jsx(eE,{}),n]})]})},m4=lt(e=>e.lightbox,e=>e,{memoizeOptions:{equalityCheck:Pe.isEqual}}),ta=e=>{const{label:t,isDisabled:n,validValues:r,tooltip:i,tooltipProps:o,...a}=e;return g.jsxs(un,{isDisabled:n,onClick:s=>{s.stopPropagation(),s.nativeEvent.stopImmediatePropagation(),s.nativeEvent.stopPropagation(),s.nativeEvent.cancelBubble=!0},children:[t&&g.jsx(Cn,{children:t}),g.jsx(ui,{label:i,...o,children:g.jsx(iW,{...a,children:r.map(s=>typeof s=="string"||typeof s=="number"?g.jsx("option",{value:s,children:s},s):g.jsx("option",{value:s.value,children:s.key},s.value))})})]})};function nke(){const e=le(i=>i.postprocessing.facetoolType),t=Te(),{t:n}=De(),r=i=>t(pS(i.target.value));return g.jsx(ta,{label:n("parameters.type"),validValues:eCe.concat(),value:e,onChange:r})}var eG={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},jR=Ke.createContext&&Ke.createContext(eG),Hd=globalThis&&globalThis.__assign||function(){return Hd=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{Y(i)},[i]);const ee=S.useMemo(()=>ne!=null&&ne.max?ne.max:a,[a,ne==null?void 0:ne.max]),fe=Ce=>{l(Ce)},ke=Ce=>{Ce.target.value===""&&(Ce.target.value=String(o));const Se=Pe.clamp(y?Math.floor(Number(Ce.target.value)):Number(G),o,ee);l(Se)},we=Ce=>{Y(Ce)},xe=()=>{P&&P()};return g.jsxs(un,{style:k?{display:"flex",flexDirection:"row",alignItems:"center",columnGap:"1rem",margin:0,padding:0}:{},...R,children:[g.jsx(Cn,{...N,mb:-1,children:r}),g.jsxs(Zd,{w:"100%",gap:2,alignItems:"center",children:[g.jsxs(uW,{"aria-label":r,value:i,min:o,max:a,step:s,onChange:fe,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),focusThumbOnChange:!1,isDisabled:O,width:u,...Q,children:[h&&g.jsxs(g.Fragment,{children:[g.jsx(lk,{value:o,insetInlineStart:0,sx:{left:"unset !important"},...W,children:o}),g.jsx(lk,{value:a,insetInlineEnd:0,sx:{left:"unset !important"},...W,children:a})]}),g.jsx(dW,{...B,children:g.jsx(fW,{})}),g.jsx(ui,{hasArrow:!0,placement:"top",isOpen:t,label:`${i}${d}`,hidden:_,...U,children:g.jsx(cW,{...K})})]}),m&&g.jsxs(q8,{min:o,max:ee,step:s,value:G,onChange:we,onBlur:ke,isDisabled:D,...ne,children:[g.jsx(Y8,{width:b,readOnly:w,minWidth:b,...z}),g.jsxs(K8,{...$,children:[g.jsx(Z8,{onClick:()=>l(Number(G))}),g.jsx(X8,{onClick:()=>l(Number(G))})]})]}),E&&g.jsx(Ye,{size:"sm","aria-label":"Reset",tooltip:"Reset",icon:g.jsx(v4,{}),onClick:xe,isDisabled:L,...X})]})]})}function cke(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.facetoolStrength),{t:n}=De(),r=Te();return g.jsx(Nn,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.strength"),step:.05,min:0,max:1,onChange:i=>r(M3(i)),handleReset:()=>r(M3(.75)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}function dke(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.codeformerFidelity),{t:n}=De(),r=Te();return g.jsx(Nn,{isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e,label:n("parameters.codeformerFidelity"),step:.05,min:0,max:1,onChange:i=>r(Pk(i)),handleReset:()=>r(Pk(1)),value:t,withReset:!0,withSliderMarks:!0,withInput:!0})}const FE=()=>{const e=le(t=>t.postprocessing.facetoolType);return g.jsxs(jt,{gap:2,minWidth:"20rem",alignItems:"stretch",children:[g.jsx(nke,{}),g.jsx(cke,{}),e==="codeformer"&&g.jsx(dke,{})]})};function fke(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.upscalingDenoising),{t:n}=De(),r=Te();return g.jsx(Nn,{label:n("parameters.denoisingStrength"),value:t,min:0,max:1,step:.01,onChange:i=>{r(Tk(i))},handleReset:()=>r(Tk(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function hke(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.upscalingStrength),{t:n}=De(),r=Te();return g.jsx(Nn,{label:`${n("parameters.upscale")} ${n("parameters.strength")}`,value:t,min:0,max:1,step:.05,onChange:i=>r(Mk(i)),handleReset:()=>r(Mk(.75)),withSliderMarks:!0,withInput:!0,withReset:!0,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})}function pke(){const e=le(o=>o.system.isESRGANAvailable),t=le(o=>o.postprocessing.upscalingLevel),{t:n}=De(),r=Te(),i=o=>r(LV(Number(o.target.value)));return g.jsx(ta,{isDisabled:!e,label:n("parameters.scale"),value:t,onChange:i,validValues:J5e})}const BE=()=>g.jsxs(jt,{gap:2,minWidth:"20rem",alignItems:"stretch",children:[g.jsx(pke,{}),g.jsx(fke,{}),g.jsx(hke,{})]}),zE=e=>e.postprocessing,gr=e=>e.system,gke=e=>e.system.toastQueue,rG=lt(gr,e=>{const{model_list:t}=e,n=Pe.reduce(t,(r,i,o)=>(i.status==="active"&&(r=o),r),"");return{...t[n],name:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),mke=lt(gr,e=>{const{model_list:t}=e;return Pe.pickBy(t,(r,i)=>{if(r.format==="diffusers")return{name:i,...r}})},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Qk(){return Qk=Object.assign?Object.assign.bind():function(e){for(var t=1;t'),!0):t?e.some(function(n){return t.includes(n)})||e.includes("*"):!0}var _ke=function(t,n,r){r===void 0&&(r=!1);var i=n.alt,o=n.meta,a=n.mod,s=n.shift,l=n.ctrl,u=n.keys,d=t.key,h=t.code,m=t.ctrlKey,y=t.metaKey,b=t.shiftKey,w=t.altKey,E=Pd(h),_=d.toLowerCase();if(!r){if(i===!w&&_!=="alt"||s===!b&&_!=="shift")return!1;if(a){if(!y&&!m)return!1}else if(o===!y&&_!=="meta"||l===!m&&_!=="ctrl")return!1}return u&&u.length===1&&(u.includes(_)||u.includes(E))?!0:u?bke(u):!u},kke=S.createContext(void 0),Eke=function(){return S.useContext(kke)};function lG(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce(function(n,r){return n&&lG(e[r],t[r])},!0):e===t}var Pke=S.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),Tke=function(){return S.useContext(Pke)};function Mke(e){var t=S.useRef(void 0);return lG(t.current,e)||(t.current=e),t.current}var NR=function(t){t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},Lke=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Ze(e,t,n,r){var i=S.useRef(null),o=S.useRef(!1),a=n instanceof Array?r instanceof Array?void 0:r:n,s=n instanceof Array?n:r instanceof Array?r:void 0,l=S.useCallback(t,s??[]),u=S.useRef(l);s?u.current=l:u.current=t;var d=Mke(a),h=Tke(),m=h.enabledScopes,y=Eke();return Lke(function(){if(!((d==null?void 0:d.enabled)===!1||!Cke(m,d==null?void 0:d.scopes))){var b=function(k,P){var L;if(P===void 0&&(P=!1),!(wke(k)&&!sG(k,d==null?void 0:d.enableOnFormTags))){if(i.current!==null&&document.activeElement!==i.current&&!i.current.contains(document.activeElement)){NR(k);return}(L=k.target)!=null&&L.isContentEditable&&!(d!=null&&d.enableOnContentEditable)||r6(e,d==null?void 0:d.splitKey).forEach(function(O){var D,R=i6(O,d==null?void 0:d.combinationKey);if(_ke(k,R,d==null?void 0:d.ignoreModifiers)||(D=R.keys)!=null&&D.includes("*")){if(P&&o.current)return;if(xke(k,R,d==null?void 0:d.preventDefault),!Ske(k,R,d==null?void 0:d.enabled)){NR(k);return}u.current(k,R),P||(o.current=!0)}})}},w=function(k){k.key!==void 0&&(oG(Pd(k.code)),((d==null?void 0:d.keydown)===void 0&&(d==null?void 0:d.keyup)!==!0||d!=null&&d.keydown)&&b(k))},E=function(k){k.key!==void 0&&(aG(Pd(k.code)),o.current=!1,d!=null&&d.keyup&&b(k,!0))};return(i.current||(a==null?void 0:a.document)||document).addEventListener("keyup",E),(i.current||(a==null?void 0:a.document)||document).addEventListener("keydown",w),y&&r6(e,d==null?void 0:d.splitKey).forEach(function(_){return y.addHotkey(i6(_,d==null?void 0:d.combinationKey))}),function(){(i.current||(a==null?void 0:a.document)||document).removeEventListener("keyup",E),(i.current||(a==null?void 0:a.document)||document).removeEventListener("keydown",w),y&&r6(e,d==null?void 0:d.splitKey).forEach(function(_){return y.removeHotkey(i6(_,d==null?void 0:d.combinationKey))})}}},[e,d,m]),i}function Ake(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"}}]})(e)}function Oke(e){return ut({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"}}]})(e)}function Ike(e){return ut({tag:"svg",attr:{viewBox:"0 0 320 512"},child:[{tag:"path",attr:{d:"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"}}]})(e)}function uG(e){return ut({tag:"svg",attr:{viewBox:"0 0 256 512"},child:[{tag:"path",attr:{d:"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"}}]})(e)}function cG(e){return ut({tag:"svg",attr:{viewBox:"0 0 256 512"},child:[{tag:"path",attr:{d:"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"}}]})(e)}function Rke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"}}]})(e)}function Dke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"}}]})(e)}function dG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"}}]})(e)}function jke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"}}]})(e)}function Nke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"}}]})(e)}function y4(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"}}]})(e)}function fG(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"}}]})(e)}function i0(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"}}]})(e)}function hG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"}}]})(e)}function $ke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"}}]})(e)}function HE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"}}]})(e)}function pG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"}}]})(e)}function Fke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"}}]})(e)}function Bke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"}}]})(e)}function gG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"}}]})(e)}function zke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"}}]})(e)}function Hke(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"}}]})(e)}function mG(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"}}]})(e)}function Wke(e){return ut({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"}}]})(e)}function Vke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"}}]})(e)}function Uke(e){return ut({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"}}]})(e)}function Gke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"}}]})(e)}function vG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"}}]})(e)}function qke(e){return ut({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"}}]})(e)}function Kke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"}}]})(e)}function yG(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"}}]})(e)}function Yke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"}}]})(e)}function Xke(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"}}]})(e)}function S2(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"}}]})(e)}function Zke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}function Qke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"}}]})(e)}function Jke(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"}}]})(e)}function WE(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"}}]})(e)}function e7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"}}]})(e)}function t7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"}}]})(e)}function $R(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"}}]})(e)}function VE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}}]})(e)}function n7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"}}]})(e)}function bp(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"}}]})(e)}function r7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"}}]})(e)}function b4(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"}}]})(e)}function i7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"}}]})(e)}function UE(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"}}]})(e)}const an=e=>e.canvas,Or=lt([an,Hr,gr],(e,t,n)=>e.layerState.stagingArea.images.length>0||t==="unifiedCanvas"&&n.isProcessing),bG=e=>e.canvas.layerState.objects.find(_3),xp=e=>e.gallery,o7e=lt([xp,m4,Or,Hr],(e,t,n,r)=>{const{categories:i,currentCategory:o,currentImageUuid:a,shouldPinGallery:s,shouldShowGallery:l,galleryScrollPosition:u,galleryImageMinimumWidth:d,galleryImageObjectFit:h,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,galleryWidth:b,shouldUseSingleGalleryColumn:w}=e,{isLightboxOpen:E}=t;return{currentImageUuid:a,shouldPinGallery:s,shouldShowGallery:l,galleryScrollPosition:u,galleryImageMinimumWidth:d,galleryImageObjectFit:h,galleryGridTemplateColumns:w?"auto":`repeat(auto-fill, minmax(${d}px, auto))`,activeTabName:r,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,images:i[o].images,areMoreImagesAvailable:i[o].areMoreImagesAvailable,currentCategory:o,galleryWidth:b,isLightboxOpen:E,isStaging:n,shouldEnableResize:!(E||r==="unifiedCanvas"&&s),shouldUseSingleGalleryColumn:w}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),a7e=lt([xp,gr,m4,Hr],(e,t,n,r)=>({mayDeleteImage:t.isConnected&&!t.isProcessing,galleryImageObjectFit:e.galleryImageObjectFit,galleryImageMinimumWidth:e.galleryImageMinimumWidth,shouldUseSingleGalleryColumn:e.shouldUseSingleGalleryColumn,activeTabName:r,isLightboxOpen:n.isLightboxOpen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),s7e=lt(gr,e=>{const{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}=e;return{shouldConfirmOnDelete:t,isConnected:n,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),D3=S.forwardRef(({image:e,children:t},n)=>{const{isOpen:r,onOpen:i,onClose:o}=Xd(),a=Te(),{shouldConfirmOnDelete:s,isConnected:l,isProcessing:u}=le(s7e),d=S.useRef(null),h=b=>{b.stopPropagation(),s?i():m()},m=()=>{l&&!u&&e&&a(L_e(e)),o()};Ze("delete",()=>{s?i():m()},[e,s,l,u]);const y=b=>a(GV(!b.target.checked));return g.jsxs(g.Fragment,{children:[S.cloneElement(t,{onClick:e?h:void 0,ref:n}),g.jsx(XH,{isOpen:r,leastDestructiveRef:d,onClose:o,children:g.jsx(sc,{children:g.jsxs(ZH,{className:"modal",children:[g.jsx(dp,{fontSize:"lg",fontWeight:"bold",children:"Delete image"}),g.jsx(t0,{children:g.jsxs(Re,{direction:"column",gap:5,children:[g.jsx(Nt,{children:"Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to."}),g.jsx(un,{children:g.jsxs(Re,{alignItems:"center",children:[g.jsx(Cn,{mb:0,children:"Don't ask me again"}),g.jsx(nE,{checked:!s,onChange:y})]})})]})}),g.jsxs(Vw,{children:[g.jsx(Ra,{ref:d,onClick:o,className:"modal-close-btn",children:"Cancel"}),g.jsx(Ra,{colorScheme:"red",onClick:m,ml:3,children:"Delete"})]})]})})})]})});D3.displayName="DeleteImageModal";const GE=()=>{const e=Te();return t=>{const n=typeof t=="string"?t:Nm(t),[r,i]=pV(n);e(SV(r)),e(wV(i))}},l7e=lt([gr,xp,zE,yp,m4,Hr],(e,t,n,r,i,o)=>{const{isProcessing:a,isConnected:s,isGFPGANAvailable:l,isESRGANAvailable:u}=e,{upscalingLevel:d,facetoolStrength:h}=n,{isLightboxOpen:m}=i,{shouldShowImageDetails:y}=r,{intermediateImage:b,currentImage:w}=t;return{isProcessing:a,isConnected:s,isGFPGANAvailable:l,isESRGANAvailable:u,upscalingLevel:d,facetoolStrength:h,shouldDisableToolbarButtons:Boolean(b)||!w,currentImage:w,shouldShowImageDetails:y,activeTabName:o,isLightboxOpen:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),xG=()=>{var B,K,ne,z,$,U,X,Q;const e=Te(),{isProcessing:t,isConnected:n,isGFPGANAvailable:r,isESRGANAvailable:i,upscalingLevel:o,facetoolStrength:a,shouldDisableToolbarButtons:s,shouldShowImageDetails:l,currentImage:u,isLightboxOpen:d,activeTabName:h}=le(l7e),m=u2(),{t:y}=De(),b=GE(),w=()=>{u&&(d&&e(Wh(!1)),e(S0(u)),e(Uo("img2img")))},E=async()=>{if(!u)return;const G=await fetch(u.url).then(ee=>ee.blob()),Y=[new ClipboardItem({[G.type]:G})];await navigator.clipboard.write(Y),m({title:y("toast.imageCopied"),status:"success",duration:2500,isClosable:!0})},_=()=>{navigator.clipboard.writeText(u?window.location.toString()+u.url:"").then(()=>{m({title:y("toast.imageLinkCopied"),status:"success",duration:2500,isClosable:!0})})};Ze("shift+i",()=>{u?(w(),m({title:y("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.imageNotLoaded"),description:y("toast.imageNotLoadedDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const k=()=>{var G,Y;u&&(u.metadata&&e(yV(u.metadata)),((G=u.metadata)==null?void 0:G.image.type)==="img2img"?e(Uo("img2img")):((Y=u.metadata)==null?void 0:Y.image.type)==="txt2img"&&e(Uo("txt2img")))};Ze("a",()=>{var G,Y;["txt2img","img2img"].includes((Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)==null?void 0:Y.type)?(k(),m({title:y("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.parametersNotSet"),description:y("toast.parametersNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const P=()=>{u!=null&&u.metadata&&e(v2(u.metadata.image.seed))};Ze("s",()=>{var G,Y;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.seed?(P(),m({title:y("toast.seedSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.seedNotSet"),description:y("toast.seedNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const L=S.useCallback(()=>{var G,Y,ee,fe;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.prompt&&b((fe=(ee=u==null?void 0:u.metadata)==null?void 0:ee.image)==null?void 0:fe.prompt)},[(K=(B=u==null?void 0:u.metadata)==null?void 0:B.image)==null?void 0:K.prompt,b]);Ze("p",()=>{var G,Y;(Y=(G=u==null?void 0:u.metadata)==null?void 0:G.image)!=null&&Y.prompt?(L(),m({title:y("toast.promptSet"),status:"success",duration:2500,isClosable:!0})):m({title:y("toast.promptNotSet"),description:y("toast.promptNotSetDesc"),status:"error",duration:2500,isClosable:!0})},[u]);const O=()=>{u&&e(T_e(u))};Ze("Shift+U",()=>{i&&!s&&n&&!t&&o?O():m({title:y("toast.upscalingFailed"),status:"error",duration:2500,isClosable:!0})},[u,i,s,n,t,o]);const D=()=>{u&&e(M_e(u))};Ze("Shift+R",()=>{r&&!s&&n&&!t&&a?D():m({title:y("toast.faceRestoreFailed"),status:"error",duration:2500,isClosable:!0})},[u,r,s,n,t,a]);const R=()=>e(ZV(!l)),N=()=>{u&&(d&&e(Wh(!1)),e(u4(u)),e(Oi(!0)),h!=="unifiedCanvas"&&e(Uo("unifiedCanvas")),m({title:y("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0}))};Ze("i",()=>{u?R():m({title:y("toast.metadataLoadFailed"),status:"error",duration:2500,isClosable:!0})},[u,l]);const W=()=>{e(Wh(!d))};return g.jsxs("div",{className:"current-image-options",children:[g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":`${y("parameters.sendTo")}...`,icon:g.jsx(t7e,{})}),children:g.jsxs("div",{className:"current-image-send-to-popover",children:[g.jsx(Hn,{size:"sm",onClick:w,leftIcon:g.jsx($R,{}),children:y("parameters.sendToImg2Img")}),g.jsx(Hn,{size:"sm",onClick:N,leftIcon:g.jsx($R,{}),children:y("parameters.sendToUnifiedCanvas")}),g.jsx(Hn,{size:"sm",onClick:E,leftIcon:g.jsx(i0,{}),children:y("parameters.copyImage")}),g.jsx(Hn,{size:"sm",onClick:_,leftIcon:g.jsx(i0,{}),children:y("parameters.copyImageToLink")}),g.jsx(zh,{download:!0,href:u==null?void 0:u.url,children:g.jsx(Hn,{leftIcon:g.jsx(HE,{}),size:"sm",w:"100%",children:y("parameters.downloadImage")})})]})}),g.jsx(Ye,{icon:g.jsx(Bke,{}),tooltip:d?`${y("parameters.closeViewer")} (Z)`:`${y("parameters.openInViewer")} (Z)`,"aria-label":d?`${y("parameters.closeViewer")} (Z)`:`${y("parameters.openInViewer")} (Z)`,isChecked:d,onClick:W})]}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{icon:g.jsx(Zke,{}),tooltip:`${y("parameters.usePrompt")} (P)`,"aria-label":`${y("parameters.usePrompt")} (P)`,isDisabled:!((z=(ne=u==null?void 0:u.metadata)==null?void 0:ne.image)!=null&&z.prompt),onClick:L}),g.jsx(Ye,{icon:g.jsx(e7e,{}),tooltip:`${y("parameters.useSeed")} (S)`,"aria-label":`${y("parameters.useSeed")} (S)`,isDisabled:!((U=($=u==null?void 0:u.metadata)==null?void 0:$.image)!=null&&U.seed),onClick:P}),g.jsx(Ye,{icon:g.jsx(jke,{}),tooltip:`${y("parameters.useAll")} (A)`,"aria-label":`${y("parameters.useAll")} (A)`,isDisabled:!["txt2img","img2img"].includes((Q=(X=u==null?void 0:u.metadata)==null?void 0:X.image)==null?void 0:Q.type),onClick:k})]}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{icon:g.jsx(Wke,{}),"aria-label":y("parameters.restoreFaces")}),children:g.jsxs("div",{className:"current-image-postprocessing-popover",children:[g.jsx(FE,{}),g.jsx(Hn,{isDisabled:!r||!u||!(n&&!t)||!a,onClick:D,children:y("parameters.restoreFaces")})]})}),g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{icon:g.jsx(Fke,{}),"aria-label":y("parameters.upscale")}),children:g.jsxs("div",{className:"current-image-postprocessing-popover",children:[g.jsx(BE,{}),g.jsx(Hn,{isDisabled:!i||!u||!(n&&!t)||!o,onClick:O,children:y("parameters.upscaleImage")})]})})]}),g.jsx(Ki,{isAttached:!0,children:g.jsx(Ye,{icon:g.jsx(fG,{}),tooltip:`${y("parameters.info")} (I)`,"aria-label":`${y("parameters.info")} (I)`,isChecked:l,onClick:R})}),g.jsx(D3,{image:u,children:g.jsx(Ye,{icon:g.jsx(bp,{}),tooltip:`${y("parameters.deleteImage")} (Del)`,"aria-label":`${y("parameters.deleteImage")} (Del)`,isDisabled:!u||!n||t,colorScheme:"error"})})]})};var u7e=pc({displayName:"EditIcon",path:g.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[g.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),g.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),SG=pc({displayName:"ExternalLinkIcon",path:g.jsxs("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",children:[g.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),g.jsx("path",{d:"M15 3h6v6"}),g.jsx("path",{d:"M10 14L21 3"})]})}),c7e=pc({displayName:"DeleteIcon",path:g.jsx("g",{fill:"currentColor",children:g.jsx("path",{d:"M19.452 7.5H4.547a.5.5 0 00-.5.545l1.287 14.136A2 2 0 007.326 24h9.347a2 2 0 001.992-1.819L19.95 8.045a.5.5 0 00-.129-.382.5.5 0 00-.369-.163zm-9.2 13a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zm5 0a.75.75 0 01-1.5 0v-9a.75.75 0 011.5 0zM22 4h-4.75a.25.25 0 01-.25-.25V2.5A2.5 2.5 0 0014.5 0h-5A2.5 2.5 0 007 2.5v1.25a.25.25 0 01-.25.25H2a1 1 0 000 2h20a1 1 0 000-2zM9 3.75V2.5a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v1.25a.25.25 0 01-.25.25h-5.5A.25.25 0 019 3.75z"})})});function d7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z"}},{tag:"path",attr:{fill:"none",strokeMiterlimit:"10",strokeWidth:"32",d:"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z"}}]})(e)}const nr=({label:e,value:t,onClick:n,isLink:r,labelPosition:i,withCopy:o=!1})=>g.jsxs(Re,{gap:2,children:[n&&g.jsx(ui,{label:`Recall ${e}`,children:g.jsx(Da,{"aria-label":"Use this parameter",icon:g.jsx(d7e,{}),size:"xs",variant:"ghost",fontSize:20,onClick:n})}),o&&g.jsx(ui,{label:`Copy ${e}`,children:g.jsx(Da,{"aria-label":`Copy ${e}`,icon:g.jsx(i0,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(t.toString())})}),g.jsxs(Re,{direction:i?"column":"row",children:[g.jsxs(Nt,{fontWeight:"semibold",whiteSpace:"pre-wrap",pr:2,children:[e,":"]}),r?g.jsxs(zh,{href:t.toString(),isExternal:!0,wordBreak:"break-all",children:[t.toString()," ",g.jsx(SG,{mx:"2px"})]}):g.jsx(Nt,{overflowY:"scroll",wordBreak:"break-all",children:t.toString()})]})]}),f7e=(e,t)=>e.image.uuid===t.image.uuid,qE=S.memo(({image:e,styleClass:t})=>{var B,K;const n=Te(),r=GE();Ze("esc",()=>{n(ZV(!1))});const i=((B=e==null?void 0:e.metadata)==null?void 0:B.image)||{},o=e==null?void 0:e.dreamPrompt,{cfg_scale:a,fit:s,height:l,hires_fix:u,init_image_path:d,mask_image_path:h,orig_path:m,perlin:y,postprocessing:b,prompt:w,sampler:E,seamless:_,seed:k,steps:P,strength:L,threshold:O,type:D,variations:R,width:N}=i,W=JSON.stringify(e.metadata,null,2);return g.jsx("div",{className:`image-metadata-viewer ${t}`,children:g.jsxs(Re,{gap:1,direction:"column",width:"100%",children:[g.jsxs(Re,{gap:2,children:[g.jsx(Nt,{fontWeight:"semibold",children:"File:"}),g.jsxs(zh,{href:e.url,isExternal:!0,maxW:"calc(100% - 3rem)",children:[e.url.length>64?e.url.substring(0,64).concat("..."):e.url,g.jsx(SG,{mx:"2px"})]})]}),Object.keys(i).length>0?g.jsxs(g.Fragment,{children:[D&&g.jsx(nr,{label:"Generation type",value:D}),((K=e.metadata)==null?void 0:K.model_weights)&&g.jsx(nr,{label:"Model",value:e.metadata.model_weights}),["esrgan","gfpgan"].includes(D)&&g.jsx(nr,{label:"Original image",value:m}),w&&g.jsx(nr,{label:"Prompt",labelPosition:"top",value:typeof w=="string"?w:Nm(w),onClick:()=>r(w)}),k!==void 0&&g.jsx(nr,{label:"Seed",value:k,onClick:()=>n(v2(k))}),O!==void 0&&g.jsx(nr,{label:"Noise Threshold",value:O,onClick:()=>n(Ek(O))}),y!==void 0&&g.jsx(nr,{label:"Perlin Noise",value:y,onClick:()=>n(_k(y))}),E&&g.jsx(nr,{label:"Sampler",value:E,onClick:()=>n(CV(E))}),P&&g.jsx(nr,{label:"Steps",value:P,onClick:()=>n(kk(P))}),a!==void 0&&g.jsx(nr,{label:"CFG scale",value:a,onClick:()=>n(wk(a))}),R&&R.length>0&&g.jsx(nr,{label:"Seed-weight pairs",value:T3(R),onClick:()=>n(kV(T3(R)))}),_&&g.jsx(nr,{label:"Seamless",value:_,onClick:()=>n(_V(_))}),u&&g.jsx(nr,{label:"High Resolution Optimization",value:u,onClick:()=>n(MV(u))}),N&&g.jsx(nr,{label:"Width",value:N,onClick:()=>n(hS(N))}),l&&g.jsx(nr,{label:"Height",value:l,onClick:()=>n(fS(l))}),d&&g.jsx(nr,{label:"Initial image",value:d,isLink:!0,onClick:()=>n(S0(d))}),h&&g.jsx(nr,{label:"Mask image",value:h,isLink:!0,onClick:()=>n(xV(h))}),D==="img2img"&&L&&g.jsx(nr,{label:"Image to image strength",value:L,onClick:()=>n(Ck(L))}),s&&g.jsx(nr,{label:"Image to image fit",value:s,onClick:()=>n(EV(s))}),b&&b.length>0&&g.jsxs(g.Fragment,{children:[g.jsx(Bh,{size:"sm",children:"Postprocessing"}),b.map((ne,z)=>{if(ne.type==="esrgan"){const{scale:$,strength:U,denoise_str:X}=ne;return g.jsxs(Re,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Nt,{size:"md",children:`${z+1}: Upscale (ESRGAN)`}),g.jsx(nr,{label:"Scale",value:$,onClick:()=>n(LV($))}),g.jsx(nr,{label:"Strength",value:U,onClick:()=>n(Mk(U))}),X!==void 0&&g.jsx(nr,{label:"Denoising strength",value:X,onClick:()=>n(Tk(X))})]},z)}else if(ne.type==="gfpgan"){const{strength:$}=ne;return g.jsxs(Re,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Nt,{size:"md",children:`${z+1}: Face restoration (GFPGAN)`}),g.jsx(nr,{label:"Strength",value:$,onClick:()=>{n(M3($)),n(pS("gfpgan"))}})]},z)}else if(ne.type==="codeformer"){const{strength:$,fidelity:U}=ne;return g.jsxs(Re,{pl:"2rem",gap:1,direction:"column",children:[g.jsx(Nt,{size:"md",children:`${z+1}: Face restoration (Codeformer)`}),g.jsx(nr,{label:"Strength",value:$,onClick:()=>{n(M3($)),n(pS("codeformer"))}}),U&&g.jsx(nr,{label:"Fidelity",value:U,onClick:()=>{n(Pk(U)),n(pS("codeformer"))}})]},z)}})]}),o&&g.jsx(nr,{withCopy:!0,label:"Dream Prompt",value:o}),g.jsxs(Re,{gap:2,direction:"column",children:[g.jsxs(Re,{gap:2,children:[g.jsx(ui,{label:"Copy metadata JSON",children:g.jsx(Da,{"aria-label":"Copy metadata JSON",icon:g.jsx(i0,{}),size:"xs",variant:"ghost",fontSize:14,onClick:()=>navigator.clipboard.writeText(W)})}),g.jsx(Nt,{fontWeight:"semibold",children:"Metadata JSON:"})]}),g.jsx("div",{className:"image-json-viewer",children:g.jsx("pre",{children:W})})]})]}):g.jsx(yH,{width:"100%",pt:10,children:g.jsx(Nt,{fontSize:"lg",fontWeight:"semibold",children:"No metadata available"})})]})})},f7e);qE.displayName="ImageMetadataViewer";const wG=lt([xp,yp],(e,t)=>{const{currentCategory:n,currentImage:r,intermediateImage:i}=e,{shouldShowImageDetails:o}=t,a=e.categories[r?r.category:"result"].images,s=a.findIndex(u=>{var d;return u.uuid===((d=e==null?void 0:e.currentImage)==null?void 0:d.uuid)}),l=a.length;return{imageToDisplay:i||r,isIntermediate:Boolean(i),viewerImageToDisplay:r,currentCategory:n,isOnFirstImage:s===0,isOnLastImage:!isNaN(s)&&s===l-1,shouldShowImageDetails:o,shouldShowPrevImageButton:s===0,shouldShowNextImageButton:!isNaN(s)&&s===l-1}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function h7e(){const e=Te(),{isOnFirstImage:t,isOnLastImage:n,shouldShowImageDetails:r,imageToDisplay:i,isIntermediate:o}=le(wG),[a,s]=S.useState(!1),l=()=>{s(!0)},u=()=>{s(!1)},d=()=>{e(CE())},h=()=>{e(wE())};return g.jsxs("div",{className:"current-image-preview",children:[i&&g.jsx(c2,{src:i.url,width:i.width,height:i.height,style:{imageRendering:o?"pixelated":"initial"}}),!r&&g.jsxs("div",{className:"current-image-next-prev-buttons",children:[g.jsx("div",{className:"next-prev-button-trigger-area prev-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!t&&g.jsx(Da,{"aria-label":"Previous image",icon:g.jsx(uG,{className:"next-prev-button"}),variant:"unstyled",onClick:d})}),g.jsx("div",{className:"next-prev-button-trigger-area next-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!n&&g.jsx(Da,{"aria-label":"Next image",icon:g.jsx(cG,{className:"next-prev-button"}),variant:"unstyled",onClick:h})})]}),r&&i&&g.jsx(qE,{image:i,styleClass:"current-image-metadata"})]})}var p7e=globalThis&&globalThis.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),ii=globalThis&&globalThis.__assign||function(){return ii=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u"?void 0:Number(r),maxHeight:typeof i>"u"?void 0:Number(i),minWidth:typeof o>"u"?void 0:Number(o),minHeight:typeof a>"u"?void 0:Number(a)}},S7e=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],WR="__resizable_base__",CG=function(e){v7e(t,e);function t(n){var r=e.call(this,n)||this;return r.ratio=1,r.resizable=null,r.parentLeft=0,r.parentTop=0,r.resizableLeft=0,r.resizableRight=0,r.resizableTop=0,r.resizableBottom=0,r.targetLeft=0,r.targetTop=0,r.appendBase=function(){if(!r.resizable||!r.window)return null;var i=r.parentNode;if(!i)return null;var o=r.window.document.createElement("div");return o.style.width="100%",o.style.height="100%",o.style.position="absolute",o.style.transform="scale(0, 0)",o.style.left="0",o.style.flex="0 0 100%",o.classList?o.classList.add(WR):o.className+=WR,i.appendChild(o),o},r.removeBase=function(i){var o=r.parentNode;o&&o.removeChild(i)},r.ref=function(i){i&&(r.resizable=i)},r.state={isResizing:!1,width:typeof(r.propsSize&&r.propsSize.width)>"u"?"auto":r.propsSize&&r.propsSize.width,height:typeof(r.propsSize&&r.propsSize.height)>"u"?"auto":r.propsSize&&r.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},r.onResizeStart=r.onResizeStart.bind(r),r.onMouseMove=r.onMouseMove.bind(r),r.onMouseUp=r.onMouseUp.bind(r),r}return Object.defineProperty(t.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||y7e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){var n=0,r=0;if(this.resizable&&this.window){var i=this.resizable.offsetWidth,o=this.resizable.offsetHeight,a=this.resizable.style.position;a!=="relative"&&(this.resizable.style.position="relative"),n=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:i,r=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:o,this.resizable.style.position=a}return{width:n,height:r}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sizeStyle",{get:function(){var n=this,r=this.props.size,i=function(s){if(typeof n.state[s]>"u"||n.state[s]==="auto")return"auto";if(n.propsSize&&n.propsSize[s]&&n.propsSize[s].toString().endsWith("%")){if(n.state[s].toString().endsWith("%"))return n.state[s].toString();var l=n.getParentSize(),u=Number(n.state[s].toString().replace("px","")),d=u/l[s]*100;return d+"%"}return o6(n.state[s])},o=r&&typeof r.width<"u"&&!this.state.isResizing?o6(r.width):i("width"),a=r&&typeof r.height<"u"&&!this.state.isResizing?o6(r.height):i("height");return{width:o,height:a}},enumerable:!1,configurable:!0}),t.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var n=this.appendBase();if(!n)return{width:0,height:0};var r=!1,i=this.parentNode.style.flexWrap;i!=="wrap"&&(r=!0,this.parentNode.style.flexWrap="wrap"),n.style.position="relative",n.style.minWidth="100%",n.style.minHeight="100%";var o={width:n.offsetWidth,height:n.offsetHeight};return r&&(this.parentNode.style.flexWrap=i),this.removeBase(n),o},t.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},t.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},t.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var n=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:n.flexBasis!=="auto"?n.flexBasis:void 0})}},t.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},t.prototype.createSizeForCssProperty=function(n,r){var i=this.propsSize&&this.propsSize[r];return this.state[r]==="auto"&&this.state.original[r]===n&&(typeof i>"u"||i==="auto")?"auto":n},t.prototype.calculateNewMaxFromBoundary=function(n,r){var i=this.props.boundsByDirection,o=this.state.direction,a=i&&Bg("left",o),s=i&&Bg("top",o),l,u;if(this.props.bounds==="parent"){var d=this.parentNode;d&&(l=a?this.resizableRight-this.parentLeft:d.offsetWidth+(this.parentLeft-this.resizableLeft),u=s?this.resizableBottom-this.parentTop:d.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(l=a?this.resizableRight:this.window.innerWidth-this.resizableLeft,u=s?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(l=a?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),u=s?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return l&&Number.isFinite(l)&&(n=n&&n"u"?10:o.width,h=typeof i.width>"u"||i.width<0?n:i.width,m=typeof o.height>"u"?10:o.height,y=typeof i.height>"u"||i.height<0?r:i.height,b=l||0,w=u||0;if(s){var E=(m-b)*this.ratio+w,_=(y-b)*this.ratio+w,k=(d-w)/this.ratio+b,P=(h-w)/this.ratio+b,L=Math.max(d,E),O=Math.min(h,_),D=Math.max(m,k),R=Math.min(y,P);n=Sx(n,L,O),r=Sx(r,D,R)}else n=Sx(n,d,h),r=Sx(r,m,y);return{newWidth:n,newHeight:r}},t.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var n=this.parentNode;if(n){var r=n.getBoundingClientRect();this.parentLeft=r.left,this.parentTop=r.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var i=this.props.bounds.getBoundingClientRect();this.targetLeft=i.left,this.targetTop=i.top}if(this.resizable){var o=this.resizable.getBoundingClientRect(),a=o.left,s=o.top,l=o.right,u=o.bottom;this.resizableLeft=a,this.resizableRight=l,this.resizableTop=s,this.resizableBottom=u}},t.prototype.onResizeStart=function(n,r){if(!(!this.resizable||!this.window)){var i=0,o=0;if(n.nativeEvent&&b7e(n.nativeEvent)?(i=n.nativeEvent.clientX,o=n.nativeEvent.clientY):n.nativeEvent&&wx(n.nativeEvent)&&(i=n.nativeEvent.touches[0].clientX,o=n.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var a=this.props.onResizeStart(n,r,this.resizable);if(a===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var s,l=this.window.getComputedStyle(this.resizable);if(l.flexBasis!=="auto"){var u=this.parentNode;if(u){var d=this.window.getComputedStyle(u).flexDirection;this.flexDir=d.startsWith("row")?"row":"column",s=l.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var h={original:{x:i,y:o,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:Dl(Dl({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(n.target).cursor||"auto"}),direction:r,flexBasis:s};this.setState(h)}},t.prototype.onMouseMove=function(n){var r=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&wx(n))try{n.preventDefault(),n.stopPropagation()}catch{}var i=this.props,o=i.maxWidth,a=i.maxHeight,s=i.minWidth,l=i.minHeight,u=wx(n)?n.touches[0].clientX:n.clientX,d=wx(n)?n.touches[0].clientY:n.clientY,h=this.state,m=h.direction,y=h.original,b=h.width,w=h.height,E=this.getParentSize(),_=x7e(E,this.window.innerWidth,this.window.innerHeight,o,a,s,l);o=_.maxWidth,a=_.maxHeight,s=_.minWidth,l=_.minHeight;var k=this.calculateNewSizeFromDirection(u,d),P=k.newHeight,L=k.newWidth,O=this.calculateNewMaxFromBoundary(o,a);this.props.snap&&this.props.snap.x&&(L=HR(L,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(P=HR(P,this.props.snap.y,this.props.snapGap));var D=this.calculateNewSizeFromAspectRatio(L,P,{width:O.maxWidth,height:O.maxHeight},{width:s,height:l});if(L=D.newWidth,P=D.newHeight,this.props.grid){var R=zR(L,this.props.grid[0]),N=zR(P,this.props.grid[1]),W=this.props.snapGap||0;L=W===0||Math.abs(R-L)<=W?R:L,P=W===0||Math.abs(N-P)<=W?N:P}var B={width:L-y.width,height:P-y.height};if(b&&typeof b=="string"){if(b.endsWith("%")){var K=L/E.width*100;L=K+"%"}else if(b.endsWith("vw")){var ne=L/this.window.innerWidth*100;L=ne+"vw"}else if(b.endsWith("vh")){var z=L/this.window.innerHeight*100;L=z+"vh"}}if(w&&typeof w=="string"){if(w.endsWith("%")){var K=P/E.height*100;P=K+"%"}else if(w.endsWith("vw")){var ne=P/this.window.innerWidth*100;P=ne+"vw"}else if(w.endsWith("vh")){var z=P/this.window.innerHeight*100;P=z+"vh"}}var $={width:this.createSizeForCssProperty(L,"width"),height:this.createSizeForCssProperty(P,"height")};this.flexDir==="row"?$.flexBasis=$.width:this.flexDir==="column"&&($.flexBasis=$.height),Js.flushSync(function(){r.setState($)}),this.props.onResize&&this.props.onResize(n,m,this.resizable,B)}},t.prototype.onMouseUp=function(n){var r=this.state,i=r.isResizing,o=r.direction,a=r.original;if(!(!i||!this.resizable)){var s={width:this.size.width-a.width,height:this.size.height-a.height};this.props.onResizeStop&&this.props.onResizeStop(n,o,this.resizable,s),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:Dl(Dl({},this.state.backgroundStyle),{cursor:"auto"})})}},t.prototype.updateSize=function(n){this.setState({width:n.width,height:n.height})},t.prototype.renderResizer=function(){var n=this,r=this.props,i=r.enable,o=r.handleStyles,a=r.handleClasses,s=r.handleWrapperStyle,l=r.handleWrapperClass,u=r.handleComponent;if(!i)return null;var d=Object.keys(i).map(function(h){return i[h]!==!1?S.createElement(m7e,{key:h,direction:h,onResizeStart:n.onResizeStart,replaceStyles:o&&o[h],className:a&&a[h]},u&&u[h]?u[h]:null):null});return S.createElement("div",{className:l,style:s},d)},t.prototype.render=function(){var n=this,r=Object.keys(this.props).reduce(function(a,s){return S7e.indexOf(s)!==-1||(a[s]=n.props[s]),a},{}),i=Dl(Dl(Dl({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(i.flexBasis=this.state.flexBasis);var o=this.props.as||"div";return S.createElement(o,Dl({ref:this.ref,style:i,className:this.props.className},r),this.state.isResizing&&S.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},t.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},t}(S.PureComponent);const Yn=e=>{const{label:t,...n}=e;return g.jsx(Cz,{colorScheme:"accent",...n,children:t})};function _G(e){return ut({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146z"}}]})(e)}function kG(e){return ut({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146zm.122 2.112v-.002.002zm0-.002v.002a.5.5 0 0 1-.122.51L6.293 6.878a.5.5 0 0 1-.511.12H5.78l-.014-.004a4.507 4.507 0 0 0-.288-.076 4.922 4.922 0 0 0-.765-.116c-.422-.028-.836.008-1.175.15l5.51 5.509c.141-.34.177-.753.149-1.175a4.924 4.924 0 0 0-.192-1.054l-.004-.013v-.001a.5.5 0 0 1 .12-.512l3.536-3.535a.5.5 0 0 1 .532-.115l.096.022c.087.017.208.034.344.034.114 0 .23-.011.343-.04L9.927 2.028c-.029.113-.04.23-.04.343a1.779 1.779 0 0 0 .062.46z"}}]})(e)}function w7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l9 2-9 2 .01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zm0 13c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z"}},{tag:"path",attr:{d:"M18.27 14.03l-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z"}}]})(e)}function C7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"}}]})(e)}function _7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}}]})(e)}function k7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 00.12-.61l-1.92-3.32a.488.488 0 00-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 00-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 00-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}}]})(e)}function E7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"}}]})(e)}function EG(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"}}]})(e)}function P7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"}}]})(e)}function T7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 10l5 5 5-5z"}}]})(e)}function M7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M7 14l5-5 5 5z"}}]})(e)}function L7e(e){return ut({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}}]})(e)}function A7e(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function O7e(e,t){e.classList?e.classList.add(t):A7e(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function VR(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function I7e(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=VR(e.className,t):e.setAttribute("class",VR(e.className&&e.className.baseVal||"",t))}const UR={disabled:!1},PG=Ke.createContext(null);var TG=function(t){return t.scrollTop},k1="unmounted",vh="exited",yh="entering",Ug="entered",Jk="exiting",yc=function(e){E8(t,e);function t(r,i){var o;o=e.call(this,r,i)||this;var a=i,s=a&&!a.isMounting?r.enter:r.appear,l;return o.appearStatus=null,r.in?s?(l=vh,o.appearStatus=yh):l=Ug:r.unmountOnExit||r.mountOnEnter?l=k1:l=vh,o.state={status:l},o.nextCallback=null,o}t.getDerivedStateFromProps=function(i,o){var a=i.in;return a&&o.status===k1?{status:vh}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var o=null;if(i!==this.props){var a=this.state.status;this.props.in?a!==yh&&a!==Ug&&(o=yh):(a===yh||a===Ug)&&(o=Jk)}this.updateStatus(!1,o)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,o,a,s;return o=a=s=i,i!=null&&typeof i!="number"&&(o=i.exit,a=i.enter,s=i.appear!==void 0?i.appear:a),{exit:o,enter:a,appear:s}},n.updateStatus=function(i,o){if(i===void 0&&(i=!1),o!==null)if(this.cancelNextCallback(),o===yh){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:Db.findDOMNode(this);a&&TG(a)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===vh&&this.setState({status:k1})},n.performEnter=function(i){var o=this,a=this.props.enter,s=this.context?this.context.isMounting:i,l=this.props.nodeRef?[s]:[Db.findDOMNode(this),s],u=l[0],d=l[1],h=this.getTimeouts(),m=s?h.appear:h.enter;if(!i&&!a||UR.disabled){this.safeSetState({status:Ug},function(){o.props.onEntered(u)});return}this.props.onEnter(u,d),this.safeSetState({status:yh},function(){o.props.onEntering(u,d),o.onTransitionEnd(m,function(){o.safeSetState({status:Ug},function(){o.props.onEntered(u,d)})})})},n.performExit=function(){var i=this,o=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:Db.findDOMNode(this);if(!o||UR.disabled){this.safeSetState({status:vh},function(){i.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Jk},function(){i.props.onExiting(s),i.onTransitionEnd(a.exit,function(){i.safeSetState({status:vh},function(){i.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,o){o=this.setNextCallback(o),this.setState(i,o)},n.setNextCallback=function(i){var o=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,o.nextCallback=null,i(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(i,o){this.setNextCallback(o);var a=this.props.nodeRef?this.props.nodeRef.current:Db.findDOMNode(this),s=i==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],u=l[0],d=l[1];this.props.addEndListener(u,d)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===k1)return null;var o=this.props,a=o.children;o.in,o.mountOnEnter,o.unmountOnExit,o.appear,o.enter,o.exit,o.timeout,o.addEndListener,o.onEnter,o.onEntering,o.onEntered,o.onExit,o.onExiting,o.onExited,o.nodeRef;var s=C8(o,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Ke.createElement(PG.Provider,{value:null},typeof a=="function"?a(i,s):Ke.cloneElement(Ke.Children.only(a),s))},t}(Ke.Component);yc.contextType=PG;yc.propTypes={};function zg(){}yc.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:zg,onEntering:zg,onEntered:zg,onExit:zg,onExiting:zg,onExited:zg};yc.UNMOUNTED=k1;yc.EXITED=vh;yc.ENTERING=yh;yc.ENTERED=Ug;yc.EXITING=Jk;const R7e=yc;var D7e=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return O7e(t,r)})},a6=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return I7e(t,r)})},KE=function(e){E8(t,e);function t(){for(var r,i=arguments.length,o=new Array(i),a=0;ab,Object.values(b));return S.createElement(w.Provider,{value:E},y)}function d(h,m){const y=(m==null?void 0:m[e][l])||s,b=S.useContext(y);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${h}\` must be used within \`${o}\``)}return u.displayName=o+"Provider",[u,d]}const i=()=>{const o=n.map(a=>S.createContext(a));return function(s){const l=(s==null?void 0:s[e])||o;return S.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return i.scopeName=e,[r,j7e(i,...t)]}function j7e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const a=r.reduce((s,{useScope:l,scopeName:u})=>{const h=l(o)[`__scope${u}`];return{...s,...h}},{});return S.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}function N7e(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function LG(...e){return t=>e.forEach(n=>N7e(n,t))}function ps(...e){return S.useCallback(LG(...e),e)}const Wy=S.forwardRef((e,t)=>{const{children:n,...r}=e,i=S.Children.toArray(n),o=i.find(F7e);if(o){const a=o.props.children,s=i.map(l=>l===o?S.Children.count(a)>1?S.Children.only(null):S.isValidElement(a)?a.props.children:null:l);return S.createElement(e7,mn({},r,{ref:t}),S.isValidElement(a)?S.cloneElement(a,void 0,s):null)}return S.createElement(e7,mn({},r,{ref:t}),n)});Wy.displayName="Slot";const e7=S.forwardRef((e,t)=>{const{children:n,...r}=e;return S.isValidElement(n)?S.cloneElement(n,{...B7e(r,n.props),ref:LG(t,n.ref)}):S.Children.count(n)>1?S.Children.only(null):null});e7.displayName="SlotClone";const $7e=({children:e})=>S.createElement(S.Fragment,null,e);function F7e(e){return S.isValidElement(e)&&e.type===$7e}function B7e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...s)=>{o(...s),i(...s)}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}const z7e=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],uc=z7e.reduce((e,t)=>{const n=S.forwardRef((r,i)=>{const{asChild:o,...a}=r,s=o?Wy:t;return S.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),S.createElement(s,mn({},a,{ref:i}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function AG(e,t){e&&Js.flushSync(()=>e.dispatchEvent(t))}function OG(e){const t=e+"CollectionProvider",[n,r]=w2(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,E=Ke.useRef(null),_=Ke.useRef(new Map).current;return Ke.createElement(i,{scope:b,itemMap:_,collectionRef:E},w)},s=e+"CollectionSlot",l=Ke.forwardRef((y,b)=>{const{scope:w,children:E}=y,_=o(s,w),k=ps(b,_.collectionRef);return Ke.createElement(Wy,{ref:k},E)}),u=e+"CollectionItemSlot",d="data-radix-collection-item",h=Ke.forwardRef((y,b)=>{const{scope:w,children:E,..._}=y,k=Ke.useRef(null),P=ps(b,k),L=o(u,w);return Ke.useEffect(()=>(L.itemMap.set(k,{ref:k,..._}),()=>void L.itemMap.delete(k))),Ke.createElement(Wy,{[d]:"",ref:P},E)});function m(y){const b=o(e+"CollectionConsumer",y);return Ke.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const _=Array.from(E.querySelectorAll(`[${d}]`));return Array.from(b.itemMap.values()).sort((L,O)=>_.indexOf(L.ref.current)-_.indexOf(O.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:l,ItemSlot:h},m,r]}const H7e=S.createContext(void 0);function IG(e){const t=S.useContext(H7e);return e||t||"ltr"}function nl(e){const t=S.useRef(e);return S.useEffect(()=>{t.current=e}),S.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function W7e(e,t=globalThis==null?void 0:globalThis.document){const n=nl(e);S.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r),()=>t.removeEventListener("keydown",r)},[n,t])}const t7="dismissableLayer.update",V7e="dismissableLayer.pointerDownOutside",U7e="dismissableLayer.focusOutside";let GR;const G7e=S.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),q7e=S.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:s,onDismiss:l,...u}=e,d=S.useContext(G7e),[h,m]=S.useState(null),y=(n=h==null?void 0:h.ownerDocument)!==null&&n!==void 0?n:globalThis==null?void 0:globalThis.document,[,b]=S.useState({}),w=ps(t,N=>m(N)),E=Array.from(d.layers),[_]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),k=E.indexOf(_),P=h?E.indexOf(h):-1,L=d.layersWithOutsidePointerEventsDisabled.size>0,O=P>=k,D=K7e(N=>{const W=N.target,B=[...d.branches].some(K=>K.contains(W));!O||B||(o==null||o(N),s==null||s(N),N.defaultPrevented||l==null||l())},y),R=Y7e(N=>{const W=N.target;[...d.branches].some(K=>K.contains(W))||(a==null||a(N),s==null||s(N),N.defaultPrevented||l==null||l())},y);return W7e(N=>{P===d.layers.size-1&&(i==null||i(N),!N.defaultPrevented&&l&&(N.preventDefault(),l()))},y),S.useEffect(()=>{if(h)return r&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(GR=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(h)),d.layers.add(h),qR(),()=>{r&&d.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=GR)}},[h,y,r,d]),S.useEffect(()=>()=>{h&&(d.layers.delete(h),d.layersWithOutsidePointerEventsDisabled.delete(h),qR())},[h,d]),S.useEffect(()=>{const N=()=>b({});return document.addEventListener(t7,N),()=>document.removeEventListener(t7,N)},[]),S.createElement(uc.div,mn({},u,{ref:w,style:{pointerEvents:L?O?"auto":"none":void 0,...e.style},onFocusCapture:Zn(e.onFocusCapture,R.onFocusCapture),onBlurCapture:Zn(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:Zn(e.onPointerDownCapture,D.onPointerDownCapture)}))});function K7e(e,t=globalThis==null?void 0:globalThis.document){const n=nl(e),r=S.useRef(!1),i=S.useRef(()=>{});return S.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let u=function(){RG(V7e,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=u,t.addEventListener("click",i.current,{once:!0})):u()}r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Y7e(e,t=globalThis==null?void 0:globalThis.document){const n=nl(e),r=S.useRef(!1);return S.useEffect(()=>{const i=o=>{o.target&&!r.current&&RG(U7e,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function qR(){const e=new CustomEvent(t7);document.dispatchEvent(e)}function RG(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?AG(i,o):i.dispatchEvent(o)}let s6=0;function X7e(){S.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:KR()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:KR()),s6++,()=>{s6===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),s6--}},[])}function KR(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}const l6="focusScope.autoFocusOnMount",u6="focusScope.autoFocusOnUnmount",YR={bubbles:!1,cancelable:!0},Z7e=S.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=S.useState(null),u=nl(i),d=nl(o),h=S.useRef(null),m=ps(t,w=>l(w)),y=S.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;S.useEffect(()=>{if(r){let w=function(_){if(y.paused||!s)return;const k=_.target;s.contains(k)?h.current=k:bh(h.current,{select:!0})},E=function(_){y.paused||!s||s.contains(_.relatedTarget)||bh(h.current,{select:!0})};return document.addEventListener("focusin",w),document.addEventListener("focusout",E),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",E)}}},[r,s,y.paused]),S.useEffect(()=>{if(s){ZR.add(y);const w=document.activeElement;if(!s.contains(w)){const _=new CustomEvent(l6,YR);s.addEventListener(l6,u),s.dispatchEvent(_),_.defaultPrevented||(Q7e(r9e(DG(s)),{select:!0}),document.activeElement===w&&bh(s))}return()=>{s.removeEventListener(l6,u),setTimeout(()=>{const _=new CustomEvent(u6,YR);s.addEventListener(u6,d),s.dispatchEvent(_),_.defaultPrevented||bh(w??document.body,{select:!0}),s.removeEventListener(u6,d),ZR.remove(y)},0)}}},[s,u,d,y]);const b=S.useCallback(w=>{if(!n&&!r||y.paused)return;const E=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,_=document.activeElement;if(E&&_){const k=w.currentTarget,[P,L]=J7e(k);P&&L?!w.shiftKey&&_===L?(w.preventDefault(),n&&bh(P,{select:!0})):w.shiftKey&&_===P&&(w.preventDefault(),n&&bh(L,{select:!0})):_===k&&w.preventDefault()}},[n,r,y.paused]);return S.createElement(uc.div,mn({tabIndex:-1},a,{ref:m,onKeyDown:b}))});function Q7e(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(bh(r,{select:t}),document.activeElement!==n)return}function J7e(e){const t=DG(e),n=XR(t,e),r=XR(t.reverse(),e);return[n,r]}function DG(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function XR(e,t){for(const n of e)if(!e9e(n,{upTo:t}))return n}function e9e(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function t9e(e){return e instanceof HTMLInputElement&&"select"in e}function bh(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&t9e(e)&&t&&e.select()}}const ZR=n9e();function n9e(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=QR(e,t),e.unshift(t)},remove(t){var n;e=QR(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function QR(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function r9e(e){return e.filter(t=>t.tagName!=="A")}const Md=Boolean(globalThis==null?void 0:globalThis.document)?S.useLayoutEffect:()=>{},i9e=S6["useId".toString()]||(()=>{});let o9e=0;function a9e(e){const[t,n]=S.useState(i9e());return Md(()=>{e||n(r=>r??String(o9e++))},[e]),e||(t?`radix-${t}`:"")}function Sp(e){return e.split("-")[0]}function C2(e){return e.split("-")[1]}function k0(e){return["top","bottom"].includes(Sp(e))?"x":"y"}function YE(e){return e==="y"?"height":"width"}function JR(e,t,n){let{reference:r,floating:i}=e;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=k0(t),l=YE(s),u=r[l]/2-i[l]/2,d=s==="x";let h;switch(Sp(t)){case"top":h={x:o,y:r.y-i.height};break;case"bottom":h={x:o,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:a};break;case"left":h={x:r.x-i.width,y:a};break;default:h={x:r.x,y:r.y}}switch(C2(t)){case"start":h[s]-=u*(n&&d?-1:1);break;case"end":h[s]+=u*(n&&d?-1:1)}return h}const s9e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=JR(l,r,s),h=r,m={},y=0;for(let b=0;b({name:"arrow",options:e,async fn(t){const{element:n,padding:r=0}=e??{},{x:i,y:o,placement:a,rects:s,platform:l}=t;if(n==null)return{};const u=jG(r),d={x:i,y:o},h=k0(a),m=C2(a),y=YE(h),b=await l.getDimensions(n),w=h==="y"?"top":"left",E=h==="y"?"bottom":"right",_=s.reference[y]+s.reference[h]-d[h]-s.floating[y],k=d[h]-s.reference[h],P=await(l.getOffsetParent==null?void 0:l.getOffsetParent(n));let L=P?h==="y"?P.clientHeight||0:P.clientWidth||0:0;L===0&&(L=s.floating[y]);const O=_/2-k/2,D=u[w],R=L-b[y]-u[E],N=L/2-b[y]/2+O,W=n7(D,N,R),B=(m==="start"?u[w]:u[E])>0&&N!==W&&s.reference[y]<=s.floating[y];return{[h]:d[h]-(B?Nu9e[t])}function c9e(e,t,n){n===void 0&&(n=!1);const r=C2(e),i=k0(e),o=YE(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=N3(a)),{main:a,cross:N3(a)}}const d9e={start:"end",end:"start"};function tD(e){return e.replace(/start|end/g,t=>d9e[t])}const NG=["top","right","bottom","left"];NG.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);const f9e=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:l}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",flipAlignment:y=!0,...b}=e,w=Sp(r),E=h||(w===a||!y?[N3(a)]:function(N){const W=N3(N);return[tD(N),W,tD(W)]}(a)),_=[a,...E],k=await Vy(t,b),P=[];let L=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&P.push(k[w]),d){const{main:N,cross:W}=c9e(r,o,await(s.isRTL==null?void 0:s.isRTL(l.floating)));P.push(k[N],k[W])}if(L=[...L,{placement:r,overflows:P}],!P.every(N=>N<=0)){var O,D;const N=((O=(D=i.flip)==null?void 0:D.index)!=null?O:0)+1,W=_[N];if(W)return{data:{index:N,overflows:L},reset:{placement:W}};let B="bottom";switch(m){case"bestFit":{var R;const K=(R=L.map(ne=>[ne,ne.overflows.filter(z=>z>0).reduce((z,$)=>z+$,0)]).sort((ne,z)=>ne[1]-z[1])[0])==null?void 0:R[0].placement;K&&(B=K);break}case"initialPlacement":B=a}if(r!==B)return{reset:{placement:B}}}return{}}}};function nD(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function rD(e){return NG.some(t=>e[t]>=0)}const h9e=function(e){let{strategy:t="referenceHidden",...n}=e===void 0?{}:e;return{name:"hide",async fn(r){const{rects:i}=r;switch(t){case"referenceHidden":{const o=nD(await Vy(r,{...n,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:rD(o)}}}case"escaped":{const o=nD(await Vy(r,{...n,altBoundary:!0}),i.floating);return{data:{escapedOffsets:o,escaped:rD(o)}}}default:return{}}}}},p9e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,i=await async function(o,a){const{placement:s,platform:l,elements:u}=o,d=await(l.isRTL==null?void 0:l.isRTL(u.floating)),h=Sp(s),m=C2(s),y=k0(s)==="x",b=["left","top"].includes(h)?-1:1,w=d&&y?-1:1,E=typeof a=="function"?a(o):a;let{mainAxis:_,crossAxis:k,alignmentAxis:P}=typeof E=="number"?{mainAxis:E,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...E};return m&&typeof P=="number"&&(k=m==="end"?-1*P:P),y?{x:k*w,y:_*b}:{x:_*b,y:k*w}}(t,e);return{x:n+i.x,y:r+i.y,data:i}}}};function $G(e){return e==="x"?"y":"x"}const g9e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:E=>{let{x:_,y:k}=E;return{x:_,y:k}}},...l}=e,u={x:n,y:r},d=await Vy(t,l),h=k0(Sp(i)),m=$G(h);let y=u[h],b=u[m];if(o){const E=h==="y"?"bottom":"right";y=n7(y+d[h==="y"?"top":"left"],y,y-d[E])}if(a){const E=m==="y"?"bottom":"right";b=n7(b+d[m==="y"?"top":"left"],b,b-d[E])}const w=s.fn({...t,[h]:y,[m]:b});return{...w,data:{x:w.x-n,y:w.y-r}}}}},m9e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:u=!0}=e,d={x:n,y:r},h=k0(i),m=$G(h);let y=d[h],b=d[m];const w=typeof s=="function"?s({...o,placement:i}):s,E=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(l){const O=h==="y"?"height":"width",D=o.reference[h]-o.floating[O]+E.mainAxis,R=o.reference[h]+o.reference[O]-E.mainAxis;yR&&(y=R)}if(u){var _,k,P,L;const O=h==="y"?"width":"height",D=["top","left"].includes(Sp(i)),R=o.reference[m]-o.floating[O]+(D&&(_=(k=a.offset)==null?void 0:k[m])!=null?_:0)+(D?0:E.crossAxis),N=o.reference[m]+o.reference[O]+(D?0:(P=(L=a.offset)==null?void 0:L[m])!=null?P:0)-(D?E.crossAxis:0);bN&&(b=N)}return{[h]:y,[m]:b}}}},v9e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:i,elements:o}=t,{apply:a,...s}=e,l=await Vy(t,s),u=Sp(n),d=C2(n);let h,m;u==="top"||u==="bottom"?(h=u,m=d===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?"start":"end")?"left":"right"):(m=u,h=d==="end"?"top":"bottom");const y=xh(l.left,0),b=xh(l.right,0),w=xh(l.top,0),E=xh(l.bottom,0),_={availableHeight:r.floating.height-(["left","right"].includes(n)?2*(w!==0||E!==0?w+E:xh(l.top,l.bottom)):l[h]),availableWidth:r.floating.width-(["top","bottom"].includes(n)?2*(y!==0||b!==0?y+b:xh(l.left,l.right)):l[m])},k=await i.getDimensions(o.floating);a==null||a({...t,..._});const P=await i.getDimensions(o.floating);return k.width!==P.width||k.height!==P.height?{reset:{rects:!0}}:{}}}};function FG(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function bc(e){if(e==null)return window;if(!FG(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function _2(e){return bc(e).getComputedStyle(e)}function Qu(e){return FG(e)?"":e?(e.nodeName||"").toLowerCase():""}function BG(){const e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function su(e){return e instanceof bc(e).HTMLElement}function rf(e){return e instanceof bc(e).Element}function XE(e){return typeof ShadowRoot>"u"?!1:e instanceof bc(e).ShadowRoot||e instanceof ShadowRoot}function x4(e){const{overflow:t,overflowX:n,overflowY:r}=_2(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function y9e(e){return["table","td","th"].includes(Qu(e))}function iD(e){const t=/firefox/i.test(BG()),n=_2(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"}function zG(){return!/^((?!chrome|android).)*safari/i.test(BG())}const oD=Math.min,J1=Math.max,$3=Math.round;function Ju(e,t,n){var r,i,o,a;t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect();let l=1,u=1;t&&su(e)&&(l=e.offsetWidth>0&&$3(s.width)/e.offsetWidth||1,u=e.offsetHeight>0&&$3(s.height)/e.offsetHeight||1);const d=rf(e)?bc(e):window,h=!zG()&&n,m=(s.left+(h&&(r=(i=d.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/l,y=(s.top+(h&&(o=(a=d.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,b=s.width/l,w=s.height/u;return{width:b,height:w,top:y,right:m+b,bottom:y+w,left:m,x:m,y}}function Wd(e){return(t=e,(t instanceof bc(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function S4(e){return rf(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function HG(e){return Ju(Wd(e)).left+S4(e).scrollLeft}function b9e(e,t,n){const r=su(t),i=Wd(t),o=Ju(e,r&&function(l){const u=Ju(l);return $3(u.width)!==l.offsetWidth||$3(u.height)!==l.offsetHeight}(t),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Qu(t)!=="body"||x4(i))&&(a=S4(t)),su(t)){const l=Ju(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else i&&(s.x=HG(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function WG(e){return Qu(e)==="html"?e:e.assignedSlot||e.parentNode||(XE(e)?e.host:null)||Wd(e)}function aD(e){return su(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function r7(e){const t=bc(e);let n=aD(e);for(;n&&y9e(n)&&getComputedStyle(n).position==="static";)n=aD(n);return n&&(Qu(n)==="html"||Qu(n)==="body"&&getComputedStyle(n).position==="static"&&!iD(n))?t:n||function(r){let i=WG(r);for(XE(i)&&(i=i.host);su(i)&&!["html","body"].includes(Qu(i));){if(iD(i))return i;i=i.parentNode}return null}(e)||t}function sD(e){if(su(e))return{width:e.offsetWidth,height:e.offsetHeight};const t=Ju(e);return{width:t.width,height:t.height}}function VG(e){const t=WG(e);return["html","body","#document"].includes(Qu(t))?e.ownerDocument.body:su(t)&&x4(t)?t:VG(t)}function F3(e,t){var n;t===void 0&&(t=[]);const r=VG(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=bc(r),a=i?[o].concat(o.visualViewport||[],x4(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(F3(a))}function lD(e,t,n){return t==="viewport"?j3(function(r,i){const o=bc(r),a=Wd(r),s=o.visualViewport;let l=a.clientWidth,u=a.clientHeight,d=0,h=0;if(s){l=s.width,u=s.height;const m=zG();(m||!m&&i==="fixed")&&(d=s.offsetLeft,h=s.offsetTop)}return{width:l,height:u,x:d,y:h}}(e,n)):rf(t)?function(r,i){const o=Ju(r,!1,i==="fixed"),a=o.top+r.clientTop,s=o.left+r.clientLeft;return{top:a,left:s,x:s,y:a,right:s+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(t,n):j3(function(r){var i;const o=Wd(r),a=S4(r),s=(i=r.ownerDocument)==null?void 0:i.body,l=J1(o.scrollWidth,o.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),u=J1(o.scrollHeight,o.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0);let d=-a.scrollLeft+HG(r);const h=-a.scrollTop;return _2(s||o).direction==="rtl"&&(d+=J1(o.clientWidth,s?s.clientWidth:0)-l),{width:l,height:u,x:d,y:h}}(Wd(e)))}function x9e(e){const t=F3(e),n=["absolute","fixed"].includes(_2(e).position)&&su(e)?r7(e):e;return rf(n)?t.filter(r=>rf(r)&&function(i,o){const a=o.getRootNode==null?void 0:o.getRootNode();if(i.contains(o))return!0;if(a&&XE(a)){let s=o;do{if(s&&i===s)return!0;s=s.parentNode||s.host}while(s)}return!1}(r,n)&&Qu(r)!=="body"):[]}const S9e={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?x9e(t):[].concat(n),r],a=o[0],s=o.reduce((l,u)=>{const d=lD(t,u,i);return l.top=J1(d.top,l.top),l.right=oD(d.right,l.right),l.bottom=oD(d.bottom,l.bottom),l.left=J1(d.left,l.left),l},lD(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const i=su(n),o=Wd(n);if(n===o)return t;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Qu(n)!=="body"||x4(o))&&(a=S4(n)),su(n))){const l=Ju(n,!0);s.x=l.x+n.clientLeft,s.y=l.y+n.clientTop}return{...t,x:t.x-a.scrollLeft+s.x,y:t.y-a.scrollTop+s.y}},isElement:rf,getDimensions:sD,getOffsetParent:r7,getDocumentElement:Wd,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:b9e(t,r7(n),r),floating:{...sD(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>_2(e).direction==="rtl"};function w9e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=!0,animationFrame:s=!1}=r,l=i&&!s,u=o&&!s,d=l||u?[...rf(e)?F3(e):[],...F3(t)]:[];d.forEach(b=>{l&&b.addEventListener("scroll",n,{passive:!0}),u&&b.addEventListener("resize",n)});let h,m=null;if(a){let b=!0;m=new ResizeObserver(()=>{b||n(),b=!1}),rf(e)&&!s&&m.observe(e),m.observe(t)}let y=s?Ju(e):null;return s&&function b(){const w=Ju(e);!y||w.x===y.x&&w.y===y.y&&w.width===y.width&&w.height===y.height||n(),y=w,h=requestAnimationFrame(b)}(),n(),()=>{var b;d.forEach(w=>{l&&w.removeEventListener("scroll",n),u&&w.removeEventListener("resize",n)}),(b=m)==null||b.disconnect(),m=null,s&&cancelAnimationFrame(h)}}const C9e=(e,t,n)=>s9e(e,t,{platform:S9e,...n});var i7=typeof document<"u"?S.useLayoutEffect:S.useEffect;function o7(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!o7(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!o7(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function _9e(e){const t=S.useRef(e);return i7(()=>{t.current=e}),t}function k9e(e){let{middleware:t,placement:n="bottom",strategy:r="absolute",whileElementsMounted:i}=e===void 0?{}:e;const o=S.useRef(null),a=S.useRef(null),s=_9e(i),l=S.useRef(null),[u,d]=S.useState({x:null,y:null,strategy:r,placement:n,middlewareData:{}}),[h,m]=S.useState(t);o7(h==null?void 0:h.map(P=>{let{options:L}=P;return L}),t==null?void 0:t.map(P=>{let{options:L}=P;return L}))||m(t);const y=S.useCallback(()=>{!o.current||!a.current||C9e(o.current,a.current,{middleware:h,placement:n,strategy:r}).then(P=>{b.current&&Js.flushSync(()=>{d(P)})})},[h,n,r]);i7(()=>{b.current&&y()},[y]);const b=S.useRef(!1);i7(()=>(b.current=!0,()=>{b.current=!1}),[]);const w=S.useCallback(()=>{if(typeof l.current=="function"&&(l.current(),l.current=null),o.current&&a.current)if(s.current){const P=s.current(o.current,a.current,y);l.current=P}else y()},[y,s]),E=S.useCallback(P=>{o.current=P,w()},[w]),_=S.useCallback(P=>{a.current=P,w()},[w]),k=S.useMemo(()=>({reference:o,floating:a}),[]);return S.useMemo(()=>({...u,update:y,refs:k,reference:E,floating:_}),[u,y,k,E,_])}const E9e=e=>{const{element:t,padding:n}=e;function r(i){return Object.prototype.hasOwnProperty.call(i,"current")}return{name:"arrow",options:e,fn(i){return r(t)?t.current!=null?eD({element:t.current,padding:n}).fn(i):{}:t?eD({element:t,padding:n}).fn(i):{}}}};function P9e(e){const[t,n]=S.useState(void 0);return Md(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,u=Array.isArray(l)?l[0]:l;a=u.inlineSize,s=u.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const UG="Popper",[ZE,GG]=w2(UG),[T9e,qG]=ZE(UG),M9e=e=>{const{__scopePopper:t,children:n}=e,[r,i]=S.useState(null);return S.createElement(T9e,{scope:t,anchor:r,onAnchorChange:i},n)},L9e="PopperAnchor",A9e=S.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=qG(L9e,n),a=S.useRef(null),s=ps(t,a);return S.useEffect(()=>{o.onAnchorChange((r==null?void 0:r.current)||a.current)}),r?null:S.createElement(uc.div,mn({},i,{ref:s}))}),B3="PopperContent",[O9e,RFe]=ZE(B3),[I9e,R9e]=ZE(B3,{hasParent:!1,positionUpdateFns:new Set}),D9e=S.forwardRef((e,t)=>{var n,r,i,o,a,s,l,u;const{__scopePopper:d,side:h="bottom",sideOffset:m=0,align:y="center",alignOffset:b=0,arrowPadding:w=0,collisionBoundary:E=[],collisionPadding:_=0,sticky:k="partial",hideWhenDetached:P=!1,avoidCollisions:L=!0,onPlaced:O,...D}=e,R=qG(B3,d),[N,W]=S.useState(null),B=ps(t,He=>W(He)),[K,ne]=S.useState(null),z=P9e(K),$=(n=z==null?void 0:z.width)!==null&&n!==void 0?n:0,U=(r=z==null?void 0:z.height)!==null&&r!==void 0?r:0,X=h+(y!=="center"?"-"+y:""),Q=typeof _=="number"?_:{top:0,right:0,bottom:0,left:0,..._},G=Array.isArray(E)?E:[E],Y=G.length>0,ee={padding:Q,boundary:G.filter(N9e),altBoundary:Y},{reference:fe,floating:ke,strategy:we,x:xe,y:Ce,placement:Se,middlewareData:Qe,update:tt}=k9e({strategy:"fixed",placement:X,whileElementsMounted:w9e,middleware:[$9e(),p9e({mainAxis:m+U,alignmentAxis:b}),L?g9e({mainAxis:!0,crossAxis:!1,limiter:k==="partial"?m9e():void 0,...ee}):void 0,K?E9e({element:K,padding:w}):void 0,L?f9e({...ee}):void 0,v9e({...ee,apply:({elements:He,availableWidth:Ve,availableHeight:ye})=>{He.floating.style.setProperty("--radix-popper-available-width",`${Ve}px`),He.floating.style.setProperty("--radix-popper-available-height",`${ye}px`)}}),F9e({arrowWidth:$,arrowHeight:U}),P?h9e({strategy:"referenceHidden"}):void 0].filter(j9e)});Md(()=>{fe(R.anchor)},[fe,R.anchor]);const it=xe!==null&&Ce!==null,[xt,Be]=KG(Se),Le=nl(O);Md(()=>{it&&(Le==null||Le())},[it,Le]);const St=(i=Qe.arrow)===null||i===void 0?void 0:i.x,Fe=(o=Qe.arrow)===null||o===void 0?void 0:o.y,at=((a=Qe.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[$t,vt]=S.useState();Md(()=>{N&&vt(window.getComputedStyle(N).zIndex)},[N]);const{hasParent:Jt,positionUpdateFns:sn}=R9e(B3,d),se=!Jt;S.useLayoutEffect(()=>{if(!se)return sn.add(tt),()=>{sn.delete(tt)}},[se,sn,tt]),Md(()=>{se&&it&&Array.from(sn).reverse().forEach(He=>requestAnimationFrame(He))},[se,it,sn]);const Ie={"data-side":xt,"data-align":Be,...D,ref:B,style:{...D.style,animation:it?void 0:"none",opacity:(s=Qe.hide)!==null&&s!==void 0&&s.referenceHidden?0:void 0}};return S.createElement("div",{ref:ke,"data-radix-popper-content-wrapper":"",style:{position:we,left:0,top:0,transform:it?`translate3d(${Math.round(xe)}px, ${Math.round(Ce)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:$t,["--radix-popper-transform-origin"]:[(l=Qe.transformOrigin)===null||l===void 0?void 0:l.x,(u=Qe.transformOrigin)===null||u===void 0?void 0:u.y].join(" ")},dir:e.dir},S.createElement(O9e,{scope:d,placedSide:xt,onArrowChange:ne,arrowX:St,arrowY:Fe,shouldHideArrow:at},se?S.createElement(I9e,{scope:d,hasParent:!0,positionUpdateFns:sn},S.createElement(uc.div,Ie)):S.createElement(uc.div,Ie)))});function j9e(e){return e!==void 0}function N9e(e){return e!==null}const $9e=()=>({name:"anchorCssProperties",fn(e){const{rects:t,elements:n}=e,{width:r,height:i}=t.reference;return n.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),n.floating.style.setProperty("--radix-popper-anchor-height",`${i}px`),{}}}),F9e=e=>({name:"transformOrigin",options:e,fn(t){var n,r,i,o,a;const{placement:s,rects:l,middlewareData:u}=t,h=((n=u.arrow)===null||n===void 0?void 0:n.centerOffset)!==0,m=h?0:e.arrowWidth,y=h?0:e.arrowHeight,[b,w]=KG(s),E={start:"0%",center:"50%",end:"100%"}[w],_=((r=(i=u.arrow)===null||i===void 0?void 0:i.x)!==null&&r!==void 0?r:0)+m/2,k=((o=(a=u.arrow)===null||a===void 0?void 0:a.y)!==null&&o!==void 0?o:0)+y/2;let P="",L="";return b==="bottom"?(P=h?E:`${_}px`,L=`${-y}px`):b==="top"?(P=h?E:`${_}px`,L=`${l.floating.height+y}px`):b==="right"?(P=`${-y}px`,L=h?E:`${k}px`):b==="left"&&(P=`${l.floating.width+y}px`,L=h?E:`${k}px`),{data:{x:P,y:L}}}});function KG(e){const[t,n="center"]=e.split("-");return[t,n]}const B9e=M9e,z9e=A9e,H9e=D9e;function W9e(e,t){return S.useReducer((n,r)=>{const i=t[n][r];return i??n},e)}const YG=e=>{const{present:t,children:n}=e,r=V9e(t),i=typeof n=="function"?n({present:r.isPresent}):S.Children.only(n),o=ps(r.ref,i.ref);return typeof n=="function"||r.isPresent?S.cloneElement(i,{ref:o}):null};YG.displayName="Presence";function V9e(e){const[t,n]=S.useState(),r=S.useRef({}),i=S.useRef(e),o=S.useRef("none"),a=e?"mounted":"unmounted",[s,l]=W9e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return S.useEffect(()=>{const u=_x(r.current);o.current=s==="mounted"?u:"none"},[s]),Md(()=>{const u=r.current,d=i.current;if(d!==e){const m=o.current,y=_x(u);e?l("MOUNT"):y==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(d&&m!==y?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),Md(()=>{if(t){const u=h=>{const y=_x(r.current).includes(h.animationName);h.target===t&&y&&Js.flushSync(()=>l("ANIMATION_END"))},d=h=>{h.target===t&&(o.current=_x(r.current))};return t.addEventListener("animationstart",d),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{t.removeEventListener("animationstart",d),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:S.useCallback(u=>{u&&(r.current=getComputedStyle(u)),n(u)},[])}}function _x(e){return(e==null?void 0:e.animationName)||"none"}function U9e({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,i]=G9e({defaultProp:t,onChange:n}),o=e!==void 0,a=o?e:r,s=nl(n),l=S.useCallback(u=>{if(o){const h=typeof u=="function"?u(e):u;h!==e&&s(h)}else i(u)},[o,e,i,s]);return[a,l]}function G9e({defaultProp:e,onChange:t}){const n=S.useState(e),[r]=n,i=S.useRef(r),o=nl(t);return S.useEffect(()=>{i.current!==r&&(o(r),i.current=r)},[r,i,o]),n}const c6="rovingFocusGroup.onEntryFocus",q9e={bubbles:!1,cancelable:!0},QE="RovingFocusGroup",[a7,XG,K9e]=OG(QE),[Y9e,ZG]=w2(QE,[K9e]),[X9e,Z9e]=Y9e(QE),Q9e=S.forwardRef((e,t)=>S.createElement(a7.Provider,{scope:e.__scopeRovingFocusGroup},S.createElement(a7.Slot,{scope:e.__scopeRovingFocusGroup},S.createElement(J9e,mn({},e,{ref:t}))))),J9e=S.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:u,...d}=e,h=S.useRef(null),m=ps(t,h),y=IG(o),[b=null,w]=U9e({prop:a,defaultProp:s,onChange:l}),[E,_]=S.useState(!1),k=nl(u),P=XG(n),L=S.useRef(!1),[O,D]=S.useState(0);return S.useEffect(()=>{const R=h.current;if(R)return R.addEventListener(c6,k),()=>R.removeEventListener(c6,k)},[k]),S.createElement(X9e,{scope:n,orientation:r,dir:y,loop:i,currentTabStopId:b,onItemFocus:S.useCallback(R=>w(R),[w]),onItemShiftTab:S.useCallback(()=>_(!0),[]),onFocusableItemAdd:S.useCallback(()=>D(R=>R+1),[]),onFocusableItemRemove:S.useCallback(()=>D(R=>R-1),[])},S.createElement(uc.div,mn({tabIndex:E||O===0?-1:0,"data-orientation":r},d,{ref:m,style:{outline:"none",...e.style},onMouseDown:Zn(e.onMouseDown,()=>{L.current=!0}),onFocus:Zn(e.onFocus,R=>{const N=!L.current;if(R.target===R.currentTarget&&N&&!E){const W=new CustomEvent(c6,q9e);if(R.currentTarget.dispatchEvent(W),!W.defaultPrevented){const B=P().filter(U=>U.focusable),K=B.find(U=>U.active),ne=B.find(U=>U.id===b),$=[K,ne,...B].filter(Boolean).map(U=>U.ref.current);QG($)}}L.current=!1}),onBlur:Zn(e.onBlur,()=>_(!1))})))}),e8e="RovingFocusGroupItem",t8e=S.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,...a}=e,s=a9e(),l=o||s,u=Z9e(e8e,n),d=u.currentTabStopId===l,h=XG(n),{onFocusableItemAdd:m,onFocusableItemRemove:y}=u;return S.useEffect(()=>{if(r)return m(),()=>y()},[r,m,y]),S.createElement(a7.ItemSlot,{scope:n,id:l,focusable:r,active:i},S.createElement(uc.span,mn({tabIndex:d?0:-1,"data-orientation":u.orientation},a,{ref:t,onMouseDown:Zn(e.onMouseDown,b=>{r?u.onItemFocus(l):b.preventDefault()}),onFocus:Zn(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:Zn(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){u.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=i8e(b,u.orientation,u.dir);if(w!==void 0){b.preventDefault();let _=h().filter(k=>k.focusable).map(k=>k.ref.current);if(w==="last")_.reverse();else if(w==="prev"||w==="next"){w==="prev"&&_.reverse();const k=_.indexOf(b.currentTarget);_=u.loop?o8e(_,k+1):_.slice(k+1)}setTimeout(()=>QG(_))}})})))}),n8e={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function r8e(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function i8e(e,t,n){const r=r8e(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return n8e[r]}function QG(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function o8e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const a8e=Q9e,s8e=t8e,l8e=["Enter"," "],u8e=["ArrowDown","PageUp","Home"],JG=["ArrowUp","PageDown","End"],c8e=[...u8e,...JG],w4="Menu",[s7,d8e,f8e]=OG(w4),[wp,eq]=w2(w4,[f8e,GG,ZG]),JE=GG(),tq=ZG(),[h8e,C4]=wp(w4),[p8e,eP]=wp(w4),g8e=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=JE(t),[l,u]=S.useState(null),d=S.useRef(!1),h=nl(o),m=IG(i);return S.useEffect(()=>{const y=()=>{d.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>d.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),S.createElement(B9e,s,S.createElement(h8e,{scope:t,open:n,onOpenChange:h,content:l,onContentChange:u},S.createElement(p8e,{scope:t,onClose:S.useCallback(()=>h(!1),[h]),isUsingKeyboardRef:d,dir:m,modal:a},r)))},m8e=S.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=JE(n);return S.createElement(z9e,mn({},i,r,{ref:t}))}),v8e="MenuPortal",[DFe,y8e]=wp(v8e,{forceMount:void 0}),Vd="MenuContent",[b8e,nq]=wp(Vd),x8e=S.forwardRef((e,t)=>{const n=y8e(Vd,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=C4(Vd,e.__scopeMenu),a=eP(Vd,e.__scopeMenu);return S.createElement(s7.Provider,{scope:e.__scopeMenu},S.createElement(YG,{present:r||o.open},S.createElement(s7.Slot,{scope:e.__scopeMenu},a.modal?S.createElement(S8e,mn({},i,{ref:t})):S.createElement(w8e,mn({},i,{ref:t})))))}),S8e=S.forwardRef((e,t)=>{const n=C4(Vd,e.__scopeMenu),r=S.useRef(null),i=ps(t,r);return S.useEffect(()=>{const o=r.current;if(o)return HH(o)},[]),S.createElement(rq,mn({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Zn(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)}))}),w8e=S.forwardRef((e,t)=>{const n=C4(Vd,e.__scopeMenu);return S.createElement(rq,mn({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)}))}),rq=S.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:y,disableOutsideScroll:b,...w}=e,E=C4(Vd,n),_=eP(Vd,n),k=JE(n),P=tq(n),L=d8e(n),[O,D]=S.useState(null),R=S.useRef(null),N=ps(t,R,E.onContentChange),W=S.useRef(0),B=S.useRef(""),K=S.useRef(0),ne=S.useRef(null),z=S.useRef("right"),$=S.useRef(0),U=b?YH:S.Fragment,X=b?{as:Wy,allowPinchZoom:!0}:void 0,Q=Y=>{var ee,fe;const ke=B.current+Y,we=L().filter(it=>!it.disabled),xe=document.activeElement,Ce=(ee=we.find(it=>it.ref.current===xe))===null||ee===void 0?void 0:ee.textValue,Se=we.map(it=>it.textValue),Qe=A8e(Se,ke,Ce),tt=(fe=we.find(it=>it.textValue===Qe))===null||fe===void 0?void 0:fe.ref.current;(function it(xt){B.current=xt,window.clearTimeout(W.current),xt!==""&&(W.current=window.setTimeout(()=>it(""),1e3))})(ke),tt&&setTimeout(()=>tt.focus())};S.useEffect(()=>()=>window.clearTimeout(W.current),[]),X7e();const G=S.useCallback(Y=>{var ee,fe;return z.current===((ee=ne.current)===null||ee===void 0?void 0:ee.side)&&I8e(Y,(fe=ne.current)===null||fe===void 0?void 0:fe.area)},[]);return S.createElement(b8e,{scope:n,searchRef:B,onItemEnter:S.useCallback(Y=>{G(Y)&&Y.preventDefault()},[G]),onItemLeave:S.useCallback(Y=>{var ee;G(Y)||((ee=R.current)===null||ee===void 0||ee.focus(),D(null))},[G]),onTriggerLeave:S.useCallback(Y=>{G(Y)&&Y.preventDefault()},[G]),pointerGraceTimerRef:K,onPointerGraceIntentChange:S.useCallback(Y=>{ne.current=Y},[])},S.createElement(U,X,S.createElement(Z7e,{asChild:!0,trapped:i,onMountAutoFocus:Zn(o,Y=>{var ee;Y.preventDefault(),(ee=R.current)===null||ee===void 0||ee.focus()}),onUnmountAutoFocus:a},S.createElement(q7e,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:y},S.createElement(a8e,mn({asChild:!0},P,{dir:_.dir,orientation:"vertical",loop:r,currentTabStopId:O,onCurrentTabStopIdChange:D,onEntryFocus:Zn(l,Y=>{_.isUsingKeyboardRef.current||Y.preventDefault()})}),S.createElement(H9e,mn({role:"menu","aria-orientation":"vertical","data-state":T8e(E.open),"data-radix-menu-content":"",dir:_.dir},k,w,{ref:N,style:{outline:"none",...w.style},onKeyDown:Zn(w.onKeyDown,Y=>{const fe=Y.target.closest("[data-radix-menu-content]")===Y.currentTarget,ke=Y.ctrlKey||Y.altKey||Y.metaKey,we=Y.key.length===1;fe&&(Y.key==="Tab"&&Y.preventDefault(),!ke&&we&&Q(Y.key));const xe=R.current;if(Y.target!==xe||!c8e.includes(Y.key))return;Y.preventDefault();const Se=L().filter(Qe=>!Qe.disabled).map(Qe=>Qe.ref.current);JG.includes(Y.key)&&Se.reverse(),M8e(Se)}),onBlur:Zn(e.onBlur,Y=>{Y.currentTarget.contains(Y.target)||(window.clearTimeout(W.current),B.current="")}),onPointerMove:Zn(e.onPointerMove,u7(Y=>{const ee=Y.target,fe=$.current!==Y.clientX;if(Y.currentTarget.contains(ee)&&fe){const ke=Y.clientX>$.current?"right":"left";z.current=ke,$.current=Y.clientX}}))})))))))}),l7="MenuItem",uD="menu.itemSelect",C8e=S.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=S.useRef(null),a=eP(l7,e.__scopeMenu),s=nq(l7,e.__scopeMenu),l=ps(t,o),u=S.useRef(!1),d=()=>{const h=o.current;if(!n&&h){const m=new CustomEvent(uD,{bubbles:!0,cancelable:!0});h.addEventListener(uD,y=>r==null?void 0:r(y),{once:!0}),AG(h,m),m.defaultPrevented?u.current=!1:a.onClose()}};return S.createElement(_8e,mn({},i,{ref:l,disabled:n,onClick:Zn(e.onClick,d),onPointerDown:h=>{var m;(m=e.onPointerDown)===null||m===void 0||m.call(e,h),u.current=!0},onPointerUp:Zn(e.onPointerUp,h=>{var m;u.current||(m=h.currentTarget)===null||m===void 0||m.click()}),onKeyDown:Zn(e.onKeyDown,h=>{const m=s.searchRef.current!=="";n||m&&h.key===" "||l8e.includes(h.key)&&(h.currentTarget.click(),h.preventDefault())})}))}),_8e=S.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=nq(l7,n),s=tq(n),l=S.useRef(null),u=ps(t,l),[d,h]=S.useState(!1),[m,y]=S.useState("");return S.useEffect(()=>{const b=l.current;if(b){var w;y(((w=b.textContent)!==null&&w!==void 0?w:"").trim())}},[o.children]),S.createElement(s7.ItemSlot,{scope:n,disabled:r,textValue:i??m},S.createElement(s8e,mn({asChild:!0},s,{focusable:!r}),S.createElement(uc.div,mn({role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0},o,{ref:u,onPointerMove:Zn(e.onPointerMove,u7(b=>{r?a.onItemLeave(b):(a.onItemEnter(b),b.defaultPrevented||b.currentTarget.focus())})),onPointerLeave:Zn(e.onPointerLeave,u7(b=>a.onItemLeave(b))),onFocus:Zn(e.onFocus,()=>h(!0)),onBlur:Zn(e.onBlur,()=>h(!1))}))))}),k8e="MenuRadioGroup";wp(k8e,{value:void 0,onValueChange:()=>{}});const E8e="MenuItemIndicator";wp(E8e,{checked:!1});const P8e="MenuSub";wp(P8e);function T8e(e){return e?"open":"closed"}function M8e(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function L8e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function A8e(e,t,n){const i=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let a=L8e(e,Math.max(o,0));i.length===1&&(a=a.filter(u=>u!==n));const l=a.find(u=>u.toLowerCase().startsWith(i.toLowerCase()));return l!==n?l:void 0}function O8e(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=d>r&&n<(u-s)*(r-l)/(d-l)+s&&(i=!i)}return i}function I8e(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return O8e(n,t)}function u7(e){return t=>t.pointerType==="mouse"?e(t):void 0}const R8e=g8e,D8e=m8e,j8e=x8e,N8e=C8e,iq="ContextMenu",[$8e,jFe]=w2(iq,[eq]),_4=eq(),[F8e,oq]=$8e(iq),B8e=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:o=!0}=e,[a,s]=S.useState(!1),l=_4(t),u=nl(r),d=S.useCallback(h=>{s(h),u(h)},[u]);return S.createElement(F8e,{scope:t,open:a,onOpenChange:d,modal:o},S.createElement(R8e,mn({},l,{dir:i,open:a,onOpenChange:d,modal:o}),n))},z8e="ContextMenuTrigger",H8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...i}=e,o=oq(z8e,n),a=_4(n),s=S.useRef({x:0,y:0}),l=S.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),u=S.useRef(0),d=S.useCallback(()=>window.clearTimeout(u.current),[]),h=m=>{s.current={x:m.clientX,y:m.clientY},o.onOpenChange(!0)};return S.useEffect(()=>d,[d]),S.useEffect(()=>void(r&&d()),[r,d]),S.createElement(S.Fragment,null,S.createElement(D8e,mn({},a,{virtualRef:l})),S.createElement(uc.span,mn({"data-state":o.open?"open":"closed","data-disabled":r?"":void 0},i,{ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Zn(e.onContextMenu,m=>{d(),h(m),m.preventDefault()}),onPointerDown:r?e.onPointerDown:Zn(e.onPointerDown,kx(m=>{d(),u.current=window.setTimeout(()=>h(m),700)})),onPointerMove:r?e.onPointerMove:Zn(e.onPointerMove,kx(d)),onPointerCancel:r?e.onPointerCancel:Zn(e.onPointerCancel,kx(d)),onPointerUp:r?e.onPointerUp:Zn(e.onPointerUp,kx(d))})))}),W8e="ContextMenuContent",V8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=oq(W8e,n),o=_4(n),a=S.useRef(!1);return S.createElement(j8e,mn({},o,r,{ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:s=>{var l;(l=e.onCloseAutoFocus)===null||l===void 0||l.call(e,s),!s.defaultPrevented&&a.current&&s.preventDefault(),a.current=!1},onInteractOutside:s=>{var l;(l=e.onInteractOutside)===null||l===void 0||l.call(e,s),!s.defaultPrevented&&!i.modal&&(a.current=!0)},style:{...e.style,["--radix-context-menu-content-transform-origin"]:"var(--radix-popper-transform-origin)"}}))}),U8e=S.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=_4(n);return S.createElement(N8e,mn({},i,r,{ref:t}))});function kx(e){return t=>t.pointerType!=="mouse"?e(t):void 0}const G8e=B8e,q8e=H8e,K8e=V8e,dd=U8e,Y8e=(e,t)=>e.image.uuid===t.image.uuid&&e.isSelected===t.isSelected,aq=S.memo(e=>{var z,$,U,X,Q,G,Y,ee;const t=Te(),{activeTabName:n,galleryImageObjectFit:r,galleryImageMinimumWidth:i,mayDeleteImage:o,shouldUseSingleGalleryColumn:a}=le(a7e),{image:s,isSelected:l}=e,{url:u,thumbnail:d,uuid:h,metadata:m}=s,[y,b]=S.useState(!1),w=u2(),{t:E}=De(),_=GE(),k=()=>b(!0),P=()=>b(!1),L=()=>{var fe,ke,we,xe;(ke=(fe=s.metadata)==null?void 0:fe.image)!=null&&ke.prompt&&_((xe=(we=s.metadata)==null?void 0:we.image)==null?void 0:xe.prompt),w({title:E("toast.promptSet"),status:"success",duration:2500,isClosable:!0})},O=()=>{s.metadata&&t(v2(s.metadata.image.seed)),w({title:E("toast.seedSet"),status:"success",duration:2500,isClosable:!0})},D=()=>{t(S0(s)),n!=="img2img"&&t(Uo("img2img")),w({title:E("toast.sentToImageToImage"),status:"success",duration:2500,isClosable:!0})},R=()=>{t(u4(s)),t(l4()),n!=="unifiedCanvas"&&t(Uo("unifiedCanvas")),w({title:E("toast.sentToUnifiedCanvas"),status:"success",duration:2500,isClosable:!0})},N=()=>{m&&t(yV(m)),w({title:E("toast.parametersSet"),status:"success",duration:2500,isClosable:!0})},W=async()=>{var fe;if((fe=m==null?void 0:m.image)!=null&&fe.init_image_path&&(await fetch(m.image.init_image_path)).ok){t(Uo("img2img")),t(rwe(m)),w({title:E("toast.initialImageSet"),status:"success",duration:2500,isClosable:!0});return}w({title:E("toast.initialImageNotSet"),description:E("toast.initialImageNotSetDesc"),status:"error",duration:2500,isClosable:!0})},B=()=>t(iI(s)),K=fe=>{fe.dataTransfer.setData("invokeai/imageUuid",h),fe.dataTransfer.effectAllowed="move"},ne=()=>{t(iI(s)),t(Wh(!0))};return g.jsxs(G8e,{onOpenChange:fe=>{t(fV(fe))},children:[g.jsx(q8e,{children:g.jsxs(ko,{position:"relative",className:"hoverable-image",onMouseOver:k,onMouseOut:P,userSelect:"none",draggable:!0,onDragStart:K,children:[g.jsx(c2,{className:"hoverable-image-image",objectFit:a?"contain":r,rounded:"md",src:d||u,loading:"lazy"}),g.jsx("div",{className:"hoverable-image-content",onClick:B,children:l&&g.jsx(Ba,{width:"50%",height:"50%",as:y4,className:"hoverable-image-check"})}),y&&i>=64&&g.jsx("div",{className:"hoverable-image-delete-button",children:g.jsx(D3,{image:s,children:g.jsx(Da,{"aria-label":E("parameters.deleteImage"),icon:g.jsx(n7e,{}),size:"xs",variant:"imageHoverIconButton",fontSize:14,isDisabled:!o})})})]},h)}),g.jsxs(K8e,{className:"hoverable-image-context-menu",sticky:"always",onInteractOutside:fe=>{fe.detail.originalEvent.preventDefault()},children:[g.jsx(dd,{onClickCapture:ne,children:E("parameters.openInViewer")}),g.jsx(dd,{onClickCapture:L,disabled:(($=(z=s==null?void 0:s.metadata)==null?void 0:z.image)==null?void 0:$.prompt)===void 0,children:E("parameters.usePrompt")}),g.jsx(dd,{onClickCapture:O,disabled:((X=(U=s==null?void 0:s.metadata)==null?void 0:U.image)==null?void 0:X.seed)===void 0,children:E("parameters.useSeed")}),g.jsx(dd,{onClickCapture:N,disabled:!["txt2img","img2img"].includes((G=(Q=s==null?void 0:s.metadata)==null?void 0:Q.image)==null?void 0:G.type),children:E("parameters.useAll")}),g.jsx(dd,{onClickCapture:W,disabled:((ee=(Y=s==null?void 0:s.metadata)==null?void 0:Y.image)==null?void 0:ee.type)!=="img2img",children:E("parameters.useInitImg")}),g.jsx(dd,{onClickCapture:D,children:E("parameters.sendToImg2Img")}),g.jsx(dd,{onClickCapture:R,children:E("parameters.sendToUnifiedCanvas")}),g.jsx(dd,{"data-warning":!0,children:g.jsx(D3,{image:s,children:g.jsx("p",{children:E("parameters.deleteImage")})})})]})]})},Y8e);aq.displayName="HoverableImage";const Ex=320,cD=40,X8e={txt2img:{galleryMinWidth:200,galleryMaxWidth:500},img2img:{galleryMinWidth:200,galleryMaxWidth:500},unifiedCanvas:{galleryMinWidth:200,galleryMaxWidth:200},nodes:{galleryMinWidth:200,galleryMaxWidth:500},postprocess:{galleryMinWidth:200,galleryMaxWidth:500},training:{galleryMinWidth:200,galleryMaxWidth:500}},dD=400;function sq(){const e=Te(),{t}=De(),{images:n,currentCategory:r,currentImageUuid:i,shouldPinGallery:o,shouldShowGallery:a,galleryScrollPosition:s,galleryImageMinimumWidth:l,galleryGridTemplateColumns:u,activeTabName:d,galleryImageObjectFit:h,shouldHoldGalleryOpen:m,shouldAutoSwitchToNewImages:y,areMoreImagesAvailable:b,galleryWidth:w,isLightboxOpen:E,isStaging:_,shouldEnableResize:k,shouldUseSingleGalleryColumn:P}=le(o7e),{galleryMinWidth:L,galleryMaxWidth:O}=E?{galleryMinWidth:dD,galleryMaxWidth:dD}:X8e[d],[D,R]=S.useState(w>=Ex),[N,W]=S.useState(!1),[B,K]=S.useState(0),ne=S.useRef(null),z=S.useRef(null),$=S.useRef(null);S.useEffect(()=>{w>=Ex&&R(!1)},[w]);const U=()=>{!o&&e(Lh(!0)),e(V3e(!o)),e(Oi(!0))},X=()=>{a?G():Q()},Q=()=>{e(Lh(!0)),o&&e(Oi(!0))},G=S.useCallback(()=>{e(Lh(!1)),e(fV(!1)),e(U3e(z.current?z.current.scrollTop:0)),setTimeout(()=>o&&e(Oi(!0)),400)},[e,o]),Y=()=>{e(Zk(r))},ee=xe=>{e(Yv(xe))},fe=()=>{m||($.current=window.setTimeout(()=>G(),500))},ke=()=>{$.current&&window.clearTimeout($.current)};Ze("g",()=>{X()},[a,o]),Ze("left",()=>{e(CE())},{enabled:!_||d!=="unifiedCanvas"},[_]),Ze("right",()=>{e(wE())},{enabled:!_||d!=="unifiedCanvas"},[_]),Ze("shift+g",()=>{U()},[o]),Ze("esc",()=>{e(Lh(!1))},{enabled:()=>!o,preventDefault:!0},[o]);const we=32;return Ze("shift+up",()=>{if(l<256){const xe=Pe.clamp(l+we,32,256);e(Yv(xe))}},[l]),Ze("shift+down",()=>{if(l>32){const xe=Pe.clamp(l-we,32,256);e(Yv(xe))}},[l]),S.useEffect(()=>{z.current&&(z.current.scrollTop=s)},[s,a]),S.useEffect(()=>{function xe(Ce){!o&&ne.current&&!ne.current.contains(Ce.target)&&G()}return document.addEventListener("mousedown",xe),()=>{document.removeEventListener("mousedown",xe)}},[G,o]),g.jsx(MG,{nodeRef:ne,in:a||m,unmountOnExit:!0,timeout:200,classNames:"image-gallery-wrapper",children:g.jsxs("div",{className:"image-gallery-wrapper",style:{zIndex:o?1:100},"data-pinned":o,ref:ne,onMouseLeave:o?void 0:fe,onMouseEnter:o?void 0:ke,onMouseOver:o?void 0:ke,children:[g.jsxs(CG,{minWidth:L,maxWidth:o?O:window.innerWidth,className:"image-gallery-popup",handleStyles:{left:{width:"15px"}},enable:{left:k},size:{width:w,height:o?"100%":"100vh"},onResizeStart:(xe,Ce,Se)=>{K(Se.clientHeight),Se.style.height=`${Se.clientHeight}px`,o&&(Se.style.position="fixed",Se.style.right="1rem",W(!0))},onResizeStop:(xe,Ce,Se,Qe)=>{const tt=o?Pe.clamp(Number(w)+Qe.width,L,Number(O)):Number(w)+Qe.width;e(K3e(tt)),Se.removeAttribute("data-resize-alert"),o&&(Se.style.position="relative",Se.style.removeProperty("right"),Se.style.setProperty("height",o?"100%":"100vh"),W(!1),e(Oi(!0)))},onResize:(xe,Ce,Se,Qe)=>{const tt=Pe.clamp(Number(w)+Qe.width,L,Number(o?O:.95*window.innerWidth));tt>=Ex&&!D?R(!0):tttt-cD&&e(Yv(tt-cD)),o&&(tt>=O?Se.setAttribute("data-resize-alert","true"):Se.removeAttribute("data-resize-alert")),Se.style.height=`${B}px`},children:[g.jsxs("div",{className:"image-gallery-header",children:[g.jsx(Ki,{size:"sm",isAttached:!0,variant:"solid",className:"image-gallery-category-btn-group",children:D?g.jsxs(g.Fragment,{children:[g.jsx(Hn,{size:"sm",isChecked:r==="result",onClick:()=>e(rx("result")),children:t("gallery.generations")}),g.jsx(Hn,{size:"sm",isChecked:r==="user",onClick:()=>e(rx("user")),children:t("gallery.uploads")})]}):g.jsxs(g.Fragment,{children:[g.jsx(Ye,{"aria-label":t("gallery.showGenerations"),tooltip:t("gallery.showGenerations"),isChecked:r==="result",icon:g.jsx(Vke,{}),onClick:()=>e(rx("result"))}),g.jsx(Ye,{"aria-label":t("gallery.showUploads"),tooltip:t("gallery.showUploads"),isChecked:r==="user",icon:g.jsx(i7e,{}),onClick:()=>e(rx("user"))})]})}),g.jsxs("div",{className:"image-gallery-header-right-icons",children:[g.jsx(Qs,{isLazy:!0,trigger:"hover",placement:"left",triggerComponent:g.jsx(Ye,{size:"sm","aria-label":t("gallery.gallerySettings"),icon:g.jsx(UE,{}),className:"image-gallery-icon-btn",cursor:"pointer"}),children:g.jsxs("div",{className:"image-gallery-settings-popover",children:[g.jsxs("div",{children:[g.jsx(Nn,{value:l,onChange:ee,min:32,max:256,hideTooltip:!0,label:t("gallery.galleryImageSize")}),g.jsx(Ye,{size:"sm","aria-label":t("gallery.galleryImageResetSize"),tooltip:t("gallery.galleryImageResetSize"),onClick:()=>e(Yv(64)),icon:g.jsx(v4,{}),isChecked:o})]}),g.jsx("div",{children:g.jsx(Yn,{label:t("gallery.maintainAspectRatio"),isChecked:h==="contain",onChange:()=>e(G3e(h==="contain"?"cover":"contain"))})}),g.jsx("div",{children:g.jsx(Yn,{label:t("gallery.autoSwitchNewImages"),isChecked:y,onChange:xe=>e(q3e(xe.target.checked))})}),g.jsx("div",{children:g.jsx(Yn,{label:t("gallery.singleColumnLayout"),isChecked:P,onChange:xe=>e(Y3e(xe.target.checked))})})]})}),g.jsx(Ye,{size:"sm",className:"image-gallery-icon-btn","aria-label":t("gallery.pinGallery"),tooltip:`${t("gallery.pinGallery")} (Shift+G)`,onClick:U,icon:o?g.jsx(_G,{}):g.jsx(kG,{})})]})]}),g.jsx("div",{className:"image-gallery-container",ref:z,children:n.length||b?g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"image-gallery",style:{gridTemplateColumns:u},children:n.map(xe=>{const{uuid:Ce}=xe,Se=i===Ce;return g.jsx(aq,{image:xe,isSelected:Se},Ce)})}),g.jsx(Ra,{onClick:Y,isDisabled:!b,className:"image-gallery-load-more-btn",children:t(b?"gallery.loadMore":"gallery.allImagesLoaded")})]}):g.jsxs("div",{className:"image-gallery-container-placeholder",children:[g.jsx(EG,{}),g.jsx("p",{children:t("gallery.noImagesInGallery")})]})})]}),N&&g.jsx("div",{style:{width:`${w}px`,height:"100%"}})]})})}var ss=function(e,t){return Number(e.toFixed(t))},Z8e=function(e,t){return typeof e=="number"?e:t},yr=function(e,t,n){n&&typeof n=="function"&&n(e,t)},Q8e=function(e){return-Math.cos(e*Math.PI)/2+.5},J8e=function(e){return e},eEe=function(e){return e*e},tEe=function(e){return e*(2-e)},nEe=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},rEe=function(e){return e*e*e},iEe=function(e){return--e*e*e+1},oEe=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},aEe=function(e){return e*e*e*e},sEe=function(e){return 1- --e*e*e*e},lEe=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},uEe=function(e){return e*e*e*e*e},cEe=function(e){return 1+--e*e*e*e*e},dEe=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},lq={easeOut:Q8e,linear:J8e,easeInQuad:eEe,easeOutQuad:tEe,easeInOutQuad:nEe,easeInCubic:rEe,easeOutCubic:iEe,easeInOutCubic:oEe,easeInQuart:aEe,easeOutQuart:sEe,easeInOutQuart:lEe,easeInQuint:uEe,easeOutQuint:cEe,easeInOutQuint:dEe},uq=function(e){typeof e=="number"&&cancelAnimationFrame(e)},Hl=function(e){e.mounted&&(uq(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function cq(e,t,n,r){if(e.mounted){var i=new Date().getTime(),o=1;Hl(e),e.animation=function(){if(!e.mounted)return uq(e.animation);var a=new Date().getTime()-i,s=a/n,l=lq[t],u=l(s);a>=n?(r(o),e.animation=null):e.animation&&(r(u),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function fEe(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function gf(e,t,n,r){var i=fEe(t);if(!(!e.mounted||!i)){var o=e.setTransformState,a=e.transformState,s=a.scale,l=a.positionX,u=a.positionY,d=t.scale-s,h=t.positionX-l,m=t.positionY-u;n===0?o(t.scale,t.positionX,t.positionY):cq(e,r,n,function(y){var b=s+d*y,w=l+h*y,E=u+m*y;o(b,w,E)})}}function hEe(e,t,n){var r=e.offsetWidth,i=e.offsetHeight,o=t.offsetWidth,a=t.offsetHeight,s=o*n,l=a*n,u=r-s,d=i-l;return{wrapperWidth:r,wrapperHeight:i,newContentWidth:s,newDiffWidth:u,newContentHeight:l,newDiffHeight:d}}var pEe=function(e,t,n,r,i,o,a){var s=e>t?n*(a?1:.5):0,l=r>i?o*(a?1:.5):0,u=e-t-s,d=s,h=r-i-l,m=l;return{minPositionX:u,maxPositionX:d,minPositionY:h,maxPositionY:m}},tP=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,i=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=hEe(n,r,t),a=o.wrapperWidth,s=o.wrapperHeight,l=o.newContentWidth,u=o.newDiffWidth,d=o.newContentHeight,h=o.newDiffHeight,m=pEe(a,l,u,s,d,h,Boolean(i));return m},c7=function(e,t,n,r){return r?en?ss(n,2):ss(e,2):ss(e,2)},o0=function(e,t){var n=tP(e,t);return e.bounds=n,n};function k4(e,t,n,r,i,o,a){var s=n.minPositionX,l=n.minPositionY,u=n.maxPositionX,d=n.maxPositionY,h=0,m=0;a&&(h=i,m=o);var y=c7(e,s-h,u+h,r),b=c7(t,l-m,d+m,r);return{x:y,y:b}}function E4(e,t,n,r,i,o){var a=e.transformState,s=a.scale,l=a.positionX,u=a.positionY,d=r-s;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:l,y:u};var h=l-t*d,m=u-n*d,y=k4(h,m,i,o,0,0,null);return y}function k2(e,t,n,r,i){var o=i?r:0,a=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=a?a:e}var fD=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,i=e.wrapperComponent,o=t.target,a=i==null?void 0:i.contains(o),s=r&&o&&a;if(!s)return!1;var l=P4(o,n);return!l},hD=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,i=r.panning.disabled,o=t&&n&&!i;return!!o},gEe=function(e,t){var n=e.transformState,r=n.positionX,i=n.positionY;e.isPanning=!0;var o=t.clientX,a=t.clientY;e.startCoords={x:o-r,y:a-i}},mEe=function(e,t){var n=t.touches,r=e.transformState,i=r.positionX,o=r.positionY;e.isPanning=!0;var a=n.length===1;if(a){var s=n[0].clientX,l=n[0].clientY;e.startCoords={x:s-i,y:l-o}}};function vEe(e){var t=e.transformState,n=t.positionX,r=t.positionY,i=t.scale,o=e.setup,a=o.disabled,s=o.limitToBounds,l=o.centerZoomedOut,u=e.wrapperComponent;if(!(a||!u||!e.bounds)){var d=e.bounds,h=d.maxPositionX,m=d.minPositionX,y=d.maxPositionY,b=d.minPositionY,w=n>h||ny||rh?u.offsetWidth:e.setup.minPositionX||0,k=r>y?u.offsetHeight:e.setup.minPositionY||0,P=E4(e,_,k,i,e.bounds,s||l),L=P.x,O=P.y;return{scale:i,positionX:w?L:n,positionY:E?O:r}}}function yEe(e,t,n,r,i){var o=e.setup.limitToBounds,a=e.wrapperComponent,s=e.bounds,l=e.transformState,u=l.scale,d=l.positionX,h=l.positionY;if(!(a===null||s===null||t===d&&n===h)){var m=k4(t,n,s,o,r,i,a),y=m.x,b=m.y;e.setTransformState(u,y,b)}}var bEe=function(e,t,n){var r=e.startCoords,i=e.transformState,o=e.setup.panning,a=o.lockAxisX,s=o.lockAxisY,l=i.positionX,u=i.positionY;if(!r)return{x:l,y:u};var d=t-r.x,h=n-r.y,m=a?l:d,y=s?u:h;return{x:m,y}},z3=function(e,t){var n=e.setup,r=e.transformState,i=r.scale,o=n.minScale,a=n.disablePadding;return t>0&&i>=o&&!a?t:0},xEe=function(e){var t=e.mounted,n=e.setup,r=n.disabled,i=n.velocityAnimation,o=e.transformState.scale,a=i.disabled,s=!a||o>1||!r||t;return!!s},SEe=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,i=e.setup,o=i.disabled,a=i.velocityAnimation,s=e.transformState.scale,l=a.disabled,u=!l||s>1||!o||t;return!(!u||!n||!r)};function wEe(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,i=n.animationTime,o=n.sensitivity;return r?i*t*o:i}function pD(e,t,n,r,i,o,a,s,l,u){if(i){if(t>a&&n>a){var d=a+(e-a)*u;return d>l?l:do?o:d}}return r?t:c7(e,o,a,i)}function CEe(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function _Ee(e,t){var n=xEe(e);if(n){var r=e.lastMousePosition,i=e.velocityTime,o=e.setup,a=e.wrapperComponent,s=o.velocityAnimation.equalToMove,l=Date.now();if(r&&i&&a){var u=CEe(a,s),d=t.x-r.x,h=t.y-r.y,m=d/u,y=h/u,b=l-i,w=d*d+h*h,E=Math.sqrt(w)/b;e.velocity={velocityX:m,velocityY:y,total:E}}e.lastMousePosition=t,e.velocityTime=l}}function kEe(e){var t=e.velocity,n=e.bounds,r=e.setup,i=e.wrapperComponent,o=SEe(e);if(!(!o||!t||!n||!i)){var a=t.velocityX,s=t.velocityY,l=t.total,u=n.maxPositionX,d=n.minPositionX,h=n.maxPositionY,m=n.minPositionY,y=r.limitToBounds,b=r.alignmentAnimation,w=r.zoomAnimation,E=r.panning,_=E.lockAxisY,k=E.lockAxisX,P=w.animationType,L=b.sizeX,O=b.sizeY,D=b.velocityAlignmentTime,R=D,N=wEe(e,l),W=Math.max(N,R),B=z3(e,L),K=z3(e,O),ne=B*i.offsetWidth/100,z=K*i.offsetHeight/100,$=u+ne,U=d-ne,X=h+z,Q=m-z,G=e.transformState,Y=new Date().getTime();cq(e,P,W,function(ee){var fe=e.transformState,ke=fe.scale,we=fe.positionX,xe=fe.positionY,Ce=new Date().getTime()-Y,Se=Ce/R,Qe=lq[b.animationType],tt=1-Qe(Math.min(1,Se)),it=1-ee,xt=we+a*it,Be=xe+s*it,Le=pD(xt,G.positionX,we,k,y,d,u,U,$,tt),St=pD(Be,G.positionY,xe,_,y,m,h,Q,X,tt);(we!==xt||xe!==Be)&&e.setTransformState(ke,Le,St)})}}function gD(e,t){var n=e.transformState.scale;Hl(e),o0(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?mEe(e,t):gEe(e,t)}function dq(e){var t=e.transformState.scale,n=e.setup,r=n.minScale,i=n.alignmentAnimation,o=i.disabled,a=i.sizeX,s=i.sizeY,l=i.animationTime,u=i.animationType,d=o||t.1&&h;m?kEe(e):dq(e)}}function nP(e,t,n,r){var i=e.setup,o=i.minScale,a=i.maxScale,s=i.limitToBounds,l=k2(ss(t,2),o,a,0,!1),u=o0(e,l),d=E4(e,n,r,l,u,s),h=d.x,m=d.y;return{scale:l,positionX:h,positionY:m}}function fq(e,t,n){var r=e.transformState.scale,i=e.wrapperComponent,o=e.setup,a=o.minScale,s=o.limitToBounds,l=o.zoomAnimation,u=l.disabled,d=l.animationTime,h=l.animationType,m=u||r>=a;if((r>=1||s)&&dq(e),!(m||!i||!e.mounted)){var y=t||i.offsetWidth/2,b=n||i.offsetHeight/2,w=nP(e,a,y,b);w&&gf(e,w,d,h)}}var Ud=function(){return Ud=Object.assign||function(t){for(var n,r=1,i=arguments.length;ra||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaYt.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},HEe=function(e,t){var n=e.setup.pinch,r=n.disabled,i=n.excluded,o=e.isInitialized,a=t.target,s=o&&!r&&a;if(!s)return!1;var l=P4(a,i);return!l},WEe=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,i=n&&!t&&r;return!!i},VEe=function(e,t,n){var r=n.getBoundingClientRect(),i=e.touches,o=ss(i[0].clientX-r.left,5),a=ss(i[0].clientY-r.top,5),s=ss(i[1].clientX-r.left,5),l=ss(i[1].clientY-r.top,5);return{x:(o+s)/2/t,y:(a+l)/2/t}},bq=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},UEe=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,i=e.setup,o=i.maxScale,a=i.minScale,s=i.zoomAnimation,l=i.disablePadding,u=s.size,d=s.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var h=t/r,m=h*n;return k2(ss(m,2),a,o,u,!d&&!l)},GEe=160,qEe=100,KEe=function(e,t){var n=e.props,r=n.onWheelStart,i=n.onZoomStart;e.wheelStopEventTimer||(Hl(e),yr(qn(e),t,r),yr(qn(e),t,i))},YEe=function(e,t){var n=e.props,r=n.onWheel,i=n.onZoom,o=e.contentComponent,a=e.setup,s=e.transformState,l=s.scale,u=a.limitToBounds,d=a.centerZoomedOut,h=a.zoomAnimation,m=a.wheel,y=a.disablePadding,b=h.size,w=h.disabled,E=m.step;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var _=FEe(t,null),k=BEe(e,_,E,!t.ctrlKey);if(l!==k){var P=o0(e,k),L=yq(t,o,l),O=w||b===0||d||y,D=u&&O,R=E4(e,L.x,L.y,k,P,D),N=R.x,W=R.y;e.previousWheelEvent=t,e.setTransformState(k,N,W),yr(qn(e),t,r),yr(qn(e),t,i)}},XEe=function(e,t){var n=e.props,r=n.onWheelStop,i=n.onZoomStop;d7(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(fq(e,t.x,t.y),e.wheelAnimationTimer=null)},qEe);var o=zEe(e,t);o&&(d7(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,yr(qn(e),t,r),yr(qn(e),t,i))},GEe))},ZEe=function(e,t){var n=bq(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1,Hl(e)},QEe=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,i=e.transformState.scale,o=e.setup,a=o.limitToBounds,s=o.centerZoomedOut,l=o.zoomAnimation,u=l.disabled,d=l.size;if(!(r===null||!n)){var h=VEe(t,i,n);if(!(!Number.isFinite(h.x)||!Number.isFinite(h.y))){var m=bq(t),y=UEe(e,m);if(y!==i){var b=o0(e,y),w=u||d===0||s,E=a&&w,_=E4(e,h.x,h.y,y,b,E),k=_.x,P=_.y;e.pinchMidpoint=h,e.lastDistance=m,e.setTransformState(y,k,P)}}}},JEe=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,fq(e,t==null?void 0:t.x,t==null?void 0:t.y)},xq=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;d7(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,yr(qn(e),t,n)},r)},ePe=function(e,t){var n=e.props,r=n.onZoomStart,i=n.onZoom,o=e.setup.doubleClick,a=o.animationTime,s=o.animationType;yr(qn(e),t,r),mq(e,a,s,function(){return yr(qn(e),t,i)}),xq(e,t)};function tPe(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,i=e.transformState,o=e.contentComponent,a=i.scale,s=e.props,l=s.onZoomStart,u=s.onZoom,d=n.doubleClick,h=d.disabled,m=d.mode,y=d.step,b=d.animationTime,w=d.animationType;if(!h&&!r){if(m==="reset")return ePe(e,t);if(!o)return console.error("No ContentComponent found");var E=m==="zoomOut"?-1:1,_=pq(e,E,y);if(a!==_){yr(qn(e),t,l);var k=yq(t,o,a),P=nP(e,_,k.x,k.y);if(!P)return console.error("Error during zoom event. New transformation state was not calculated.");yr(qn(e),t,u),gf(e,P,b,w),xq(e,t)}}}var nPe=function(e,t){var n=e.isInitialized,r=e.setup,i=e.wrapperComponent,o=r.doubleClick,a=o.disabled,s=o.excluded,l=t.target,u=i==null?void 0:i.contains(l),d=n&&l&&u&&!a;if(!d)return!1;var h=P4(l,s);return!h},rPe=function(){function e(t){var n=this;this.mounted=!0,this.onChangeCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){o0(n,n.transformState.scale),n.setup=yD(r)},this.initializeWindowEvents=function(){var r,i=f6(),o=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=o==null?void 0:o.defaultView;a==null||a.addEventListener("mousedown",n.onPanningStart,i),a==null||a.addEventListener("mousemove",n.onPanning,i),a==null||a.addEventListener("mouseup",n.onPanningStop,i),o==null||o.addEventListener("mouseleave",n.clearPanning,i),a==null||a.addEventListener("keyup",n.setKeyUnPressed,i),a==null||a.addEventListener("keydown",n.setKeyPressed,i)},this.cleanupWindowEvents=function(){var r,i,o=f6(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,s=a==null?void 0:a.defaultView;s==null||s.removeEventListener("mousedown",n.onPanningStart,o),s==null||s.removeEventListener("mousemove",n.onPanning,o),s==null||s.removeEventListener("mouseup",n.onPanningStop,o),a==null||a.removeEventListener("mouseleave",n.clearPanning,o),s==null||s.removeEventListener("keyup",n.setKeyUnPressed,o),s==null||s.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),Hl(n),(i=n.observer)===null||i===void 0||i.disconnect()},this.handleInitializeWrapperEvents=function(r){var i=f6();r.addEventListener("wheel",n.onWheelZoom,i),r.addEventListener("dblclick",n.onDoubleClick,i),r.addEventListener("touchstart",n.onTouchPanningStart,i),r.addEventListener("touchmove",n.onTouchPanning,i),r.addEventListener("touchend",n.onTouchPanningStop,i)},this.handleInitialize=function(r){var i=n.setup.centerOnInit;n.applyTransformation(),i&&(n.setCenter(),n.observer=new ResizeObserver(function(){var o;n.setCenter(),(o=n.observer)===null||o===void 0||o.disconnect()}),n.observer.observe(r))},this.onWheelZoom=function(r){var i=n.setup.disabled;if(!i){var o=NEe(n,r);if(o){var a=n.isPressingKeys(n.setup.wheel.activationKeys);a&&(KEe(n,r),YEe(n,r),XEe(n,r))}}},this.onPanningStart=function(r){var i=n.setup.disabled,o=n.props.onPanningStart;if(!i){var a=fD(n,r);if(a){var s=n.isPressingKeys(n.setup.panning.activationKeys);s&&(r.preventDefault(),r.stopPropagation(),Hl(n),gD(n,r),yr(qn(n),r,o))}}},this.onPanning=function(r){var i=n.setup.disabled,o=n.props.onPanning;if(!i){var a=hD(n);if(a){var s=n.isPressingKeys(n.setup.panning.activationKeys);s&&(r.preventDefault(),r.stopPropagation(),mD(n,r.clientX,r.clientY),yr(qn(n),r,o))}}},this.onPanningStop=function(r){var i=n.props.onPanningStop;n.isPanning&&(EEe(n),yr(qn(n),r,i))},this.onPinchStart=function(r){var i=n.setup.disabled,o=n.props,a=o.onPinchingStart,s=o.onZoomStart;if(!i){var l=HEe(n,r);l&&(ZEe(n,r),Hl(n),yr(qn(n),r,a),yr(qn(n),r,s))}},this.onPinch=function(r){var i=n.setup.disabled,o=n.props,a=o.onPinching,s=o.onZoom;if(!i){var l=WEe(n);l&&(r.preventDefault(),r.stopPropagation(),QEe(n,r),yr(qn(n),r,a),yr(qn(n),r,s))}},this.onPinchStop=function(r){var i=n.props,o=i.onPinchingStop,a=i.onZoomStop;n.pinchStartScale&&(JEe(n),yr(qn(n),r,o),yr(qn(n),r,a))},this.onTouchPanningStart=function(r){var i=n.setup.disabled,o=n.props.onPanningStart;if(!i){var a=fD(n,r);if(a){var s=n.lastTouch&&+new Date-n.lastTouch<200;if(s&&r.touches.length===1)n.onDoubleClick(r);else{n.lastTouch=+new Date,Hl(n);var l=r.touches,u=l.length===1,d=l.length===2;u&&(Hl(n),gD(n,r),yr(qn(n),r,o)),d&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var i=n.setup.disabled,o=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(i)return;var a=hD(n);if(!a)return;r.preventDefault(),r.stopPropagation();var s=r.touches[0];mD(n,s.clientX,s.clientY),yr(qn(n),r,o)}else r.touches.length>1&&n.onPinch(r)},this.onTouchPanningStop=function(r){n.onPanningStop(r),n.onPinchStop(r)},this.onDoubleClick=function(r){var i=n.setup.disabled;if(!i){var o=nPe(n,r);o&&tPe(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?Boolean(r.find(function(i){return n.pressedKeys[i]})):!0},this.setTransformState=function(r,i,o){var a=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(i)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=i,n.transformState.positionY=o;var s=qn(n);n.onChangeCallbacks.forEach(function(l){return l(s)}),yr(s,{scale:r,positionX:i,positionY:o},a),n.applyTransformation()}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=vq(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,i,o){return n.props.customTransform?n.props.customTransform(r,i,o):DEe(r,i,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,i=r.scale,o=r.positionX,a=r.positionY,s=n.handleTransformStyles(o,a,i);n.contentComponent.style.transform=s}},this.getContext=function(){return qn(n)},this.onChange=function(r){return n.onChangeCallbacks.has(r)||n.onChangeCallbacks.add(r),function(){n.onChangeCallbacks.delete(r)}},this.init=function(r,i){n.cleanupWindowEvents(),n.wrapperComponent=r,n.contentComponent=i,o0(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(i),n.initializeWindowEvents(),n.isInitialized=!0,yr(qn(n),void 0,n.props.onInit)},this.props=t,this.setup=yD(this.props),this.transformState=hq(this.props)}return e}(),rP=Ke.createContext(null),iPe=function(e,t){return typeof e=="function"?e(t):e},oPe=Ke.forwardRef(function(e,t){var n=S.useState(0),r=n[1],i=e.children,o=S.useRef(new rPe(e)).current,a=iPe(e.children,qn(o)),s=S.useCallback(function(){typeof i=="function"&&r(function(l){return l+1})},[i]);return S.useImperativeHandle(t,function(){return qn(o)},[o]),S.useEffect(function(){o.update(e)},[o,e]),S.useEffect(function(){return o.onChange(s)},[o,e,s]),Ke.createElement(rP.Provider,{value:o},a)});function aPe(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",n==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var sPe=`.transform-component-module_wrapper__7HFJe { + position: relative; + width: -moz-fit-content; + width: fit-content; + height: -moz-fit-content; + height: fit-content; + overflow: hidden; + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; + margin: 0; + padding: 0; +} +.transform-component-module_content__uCDPE { + display: flex; + flex-wrap: wrap; + width: -moz-fit-content; + width: fit-content; + height: -moz-fit-content; + height: fit-content; + margin: 0; + padding: 0; + transform-origin: 0% 0%; +} +.transform-component-module_content__uCDPE img { + pointer-events: none; +} +`,bD={wrapper:"transform-component-module_wrapper__7HFJe",content:"transform-component-module_content__uCDPE"};aPe(sPe);var lPe=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,i=e.contentClass,o=i===void 0?"":i,a=e.wrapperStyle,s=e.contentStyle,l=e.wrapperProps,u=l===void 0?{}:l,d=e.contentProps,h=d===void 0?{}:d,m=S.useContext(rP).init,y=S.useRef(null),b=S.useRef(null);return S.useEffect(function(){var w=y.current,E=b.current;w!==null&&E!==null&&m&&m(w,E)},[]),Ke.createElement("div",Ud({},u,{ref:y,className:"react-transform-wrapper ".concat(bD.wrapper," ").concat(r),style:a}),Ke.createElement("div",Ud({},h,{ref:b,className:"react-transform-component ".concat(bD.content," ").concat(o),style:s}),t))};Ke.forwardRef(function(e,t){var n=S.useRef(null),r=S.useContext(rP);return S.useEffect(function(){return r.onChange(function(i){if(n.current){var o=0,a=0;n.current.style.transform=r.handleTransformStyles(o,a,1/i.state.scale)}})},[r]),Ke.createElement("div",Ud({},e,{ref:jEe([n,t])}))});function uPe({image:e,alt:t,ref:n,styleClass:r}){const[i,o]=S.useState(0),[a,s]=S.useState(!1),l=()=>{o(i===-3?0:i-1)},u=()=>{o(i===3?0:i+1)},d=()=>{s(!a)};return g.jsx(oPe,{centerOnInit:!0,minScale:.1,initialPositionX:50,initialPositionY:50,children:({zoomIn:h,zoomOut:m,resetTransform:y,centerView:b})=>g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"lightbox-image-options",children:[g.jsx(Ye,{icon:g.jsx(lke,{}),"aria-label":"Zoom In",tooltip:"Zoom In",onClick:()=>h(),fontSize:20}),g.jsx(Ye,{icon:g.jsx(uke,{}),"aria-label":"Zoom Out",tooltip:"Zoom Out",onClick:()=>m(),fontSize:20}),g.jsx(Ye,{icon:g.jsx(ake,{}),"aria-label":"Rotate Left",tooltip:"Rotate Left",onClick:l,fontSize:20}),g.jsx(Ye,{icon:g.jsx(ske,{}),"aria-label":"Rotate Right",tooltip:"Rotate Right",onClick:u,fontSize:20}),g.jsx(Ye,{icon:g.jsx(E7e,{}),"aria-label":"Flip Image",tooltip:"Flip Image",onClick:d,fontSize:20}),g.jsx(Ye,{icon:g.jsx(v4,{}),"aria-label":"Reset",tooltip:"Reset",onClick:()=>{y(),o(0),s(!1)},fontSize:20})]}),g.jsx(lPe,{wrapperStyle:{width:"100%",height:"100%"},children:g.jsx("img",{style:{transform:`rotate(${i*90}deg) scaleX(${a?-1:1})`,width:"100%"},src:e,alt:t,ref:n,className:r||"",onLoad:()=>b(1,0,"easeOut")})})]})})}function cPe(){const e=Te(),t=le(m=>m.lightbox.isLightboxOpen),{viewerImageToDisplay:n,shouldShowImageDetails:r,isOnFirstImage:i,isOnLastImage:o}=le(wG),[a,s]=S.useState(!1),l=()=>{s(!0)},u=()=>{s(!1)},d=()=>{e(CE())},h=()=>{e(wE())};return Ze("Esc",()=>{t&&e(Wh(!1))},[t]),g.jsxs("div",{className:"lightbox-container",children:[g.jsx(Ye,{icon:g.jsx(oke,{}),"aria-label":"Exit Viewer",className:"lightbox-close-btn",onClick:()=>{e(Wh(!1))},fontSize:20}),g.jsxs("div",{className:"lightbox-display-container",children:[g.jsxs("div",{className:"lightbox-preview-wrapper",children:[g.jsx(xG,{}),!r&&g.jsxs("div",{className:"current-image-next-prev-buttons",children:[g.jsx("div",{className:"next-prev-button-trigger-area prev-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!i&&g.jsx(Da,{"aria-label":"Previous image",icon:g.jsx(uG,{className:"next-prev-button"}),variant:"unstyled",onClick:d})}),g.jsx("div",{className:"next-prev-button-trigger-area next-button-trigger-area",onMouseOver:l,onMouseOut:u,children:a&&!o&&g.jsx(Da,{"aria-label":"Next image",icon:g.jsx(cG,{className:"next-prev-button"}),variant:"unstyled",onClick:h})})]}),n&&g.jsxs(g.Fragment,{children:[g.jsx(uPe,{image:n.url,styleClass:"lightbox-image"}),r&&g.jsx(qE,{image:n})]})]}),g.jsx(sq,{})]})]})}function dPe(e){const{menuType:t="icon",iconTooltip:n,buttonText:r,menuItems:i,menuProps:o,menuButtonProps:a,menuListProps:s,menuItemProps:l}=e,u=()=>{const d=[];return i.forEach((h,m)=>{d.push(g.jsx(jH,{onClick:h.onClick,fontSize:"0.9rem",...l,children:h.item},m))}),d};return g.jsx(IH,{...o,children:({isOpen:d})=>g.jsxs(g.Fragment,{children:[g.jsx($H,{as:t==="icon"?Da:Ra,tooltip:n,icon:d?g.jsx(M7e,{}):g.jsx(T7e,{}),padding:t==="regular"?"0 0.5rem":0,minWidth:"1rem",minHeight:"1rem",fontSize:"1.5rem",...a,children:t==="regular"&&r}),g.jsx(NH,{zIndex:15,padding:0,borderRadius:"0.5rem",...s,children:u()})]})})}const fPe=lt(gr,e=>({isProcessing:e.isProcessing,isConnected:e.isConnected,isCancelable:e.isCancelable,currentIteration:e.currentIteration,totalIterations:e.totalIterations,cancelType:e.cancelOptions.cancelType,cancelAfter:e.cancelOptions.cancelAfter}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function iP(e){const t=Te(),{btnGroupWidth:n="auto",...r}=e,{isProcessing:i,isConnected:o,isCancelable:a,currentIteration:s,totalIterations:l,cancelType:u,cancelAfter:d}=le(fPe),h=S.useCallback(()=>{t(A_e()),t(qC(null))},[t]),{t:m}=De(),y=d!==null;Ze("shift+x",()=>{(o||i)&&a&&h()},[o,i,a]),S.useEffect(()=>{d!==null&&dt(QI("immediate"))},{item:m("parameters.cancel.schedule"),onClick:()=>t(QI("scheduled"))}];return g.jsxs(Ki,{isAttached:!0,minHeight:"2.5rem",width:n,children:[u==="immediate"?g.jsx(Ye,{icon:g.jsx(L7e,{}),tooltip:m("parameters.cancel.immediate"),"aria-label":m("parameters.cancel.immediate"),isDisabled:!o||!i||!a,onClick:h,colorScheme:"error",...r}):g.jsx(Ye,{icon:y?g.jsx(u3,{color:"var(--text-color)"}):g.jsx(w7e,{}),tooltip:m(y?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),"aria-label":m(y?"parameters.cancel.isScheduled":"parameters.cancel.schedule"),isDisabled:!o||!i||!a||s===l,onClick:()=>{t(qC(y?null:s))},colorScheme:"error",...r}),g.jsx(dPe,{menuItems:b,iconTooltip:m("parameters.cancel.setType"),menuButtonProps:{colorScheme:"error",minWidth:"1.5rem",minHeight:"1.5rem"}})]})}const oP=e=>e.generation;lt(oP,({shouldRandomizeSeed:e,shouldGenerateVariations:t})=>e||t,{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});const Sq=lt([oP,gr,bG,Hr],(e,t,n,r)=>{const{prompt:i,shouldGenerateVariations:o,seedWeights:a,initialImage:s,seed:l}=e,{isProcessing:u,isConnected:d}=t;let h=!0;const m=[];return(!i||Boolean(i.match(/^[\s\r\n]+$/)))&&(h=!1,m.push("Missing prompt")),r==="img2img"&&!s&&(h=!1,m.push("No initial image selected")),u&&(h=!1,m.push("System Busy")),d||(h=!1,m.push("System Disconnected")),o&&(!(_E(a)||a==="")||l===-1)&&(h=!1,m.push("Seed-Weights badly formatted.")),{isReady:h,reasonsWhyNotReady:m}},{memoizeOptions:{equalityCheck:Pe.isEqual,resultEqualityCheck:Pe.isEqual}});function aP(e){const{iconButton:t=!1,...n}=e,r=Te(),{isReady:i}=le(Sq),o=le(Hr),a=()=>{r(Xk(o))},{t:s}=De();return Ze(["ctrl+enter","meta+enter"],()=>{r(Xk(o))},{enabled:()=>i,preventDefault:!0,enableOnFormTags:["input","textarea","select"]},[i,o]),g.jsx("div",{style:{flexGrow:4},children:t?g.jsx(Ye,{"aria-label":s("parameters.invoke"),type:"submit",icon:g.jsx(Xke,{}),isDisabled:!i,onClick:a,flexGrow:1,w:"100%",tooltip:s("parameters.invoke"),tooltipProps:{placement:"bottom"},colorScheme:"accent",...n}):g.jsx(Hn,{"aria-label":s("parameters.invoke"),type:"submit",isDisabled:!i,onClick:a,flexGrow:1,w:"100%",colorScheme:"accent",fontWeight:700,...n,children:"Invoke"})})}const sP=lt([xp,yp,Hr],(e,t,n)=>{const{shouldPinParametersPanel:r,shouldShowParametersPanel:i,shouldHoldParametersPanelOpen:o,shouldUseCanvasBetaLayout:a}=t,{shouldShowGallery:s,shouldPinGallery:l,shouldHoldGalleryOpen:u}=e,d=a&&n==="unifiedCanvas",h=!d&&!(i||o&&!r)&&["txt2img","img2img","unifiedCanvas"].includes(n),m=!(s||u&&!l)&&["txt2img","img2img","unifiedCanvas"].includes(n);return{shouldPinParametersPanel:r,shouldShowProcessButtons:!d&&(!r||!i),shouldShowParametersPanelButton:h,shouldShowParametersPanel:i,shouldShowGallery:s,shouldPinGallery:l,shouldShowGalleryButton:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),hPe=()=>{const e=Te(),{shouldShowParametersPanelButton:t,shouldShowProcessButtons:n,shouldPinParametersPanel:r}=le(sP),i=()=>{e(Vh(!0)),r&&setTimeout(()=>e(Oi(!0)),400)};return t?g.jsxs(Re,{pos:"absolute",transform:"translate(0, -50%)",zIndex:20,minW:"2rem",top:"50%",left:"calc(42px + 2rem)",direction:"column",gap:"0.5rem",children:[g.jsx(Ye,{tooltip:"Show Options Panel (O)",tooltipProps:{placement:"top"},"aria-label":"Show Options Panel",onClick:i,borderRadius:"0 0.5rem 0.5rem 0;",children:g.jsx(VE,{})}),n&&g.jsxs(g.Fragment,{children:[g.jsx(aP,{iconButton:!0,borderRadius:"0 0.5rem 0.5rem 0;"}),g.jsx(iP,{borderRadius:"0 0.5rem 0.5rem 0;"})]})]}):null};function pPe(e){return ut({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{d:"M14 1H3L2 2v11l1 1h11l1-1V2l-1-1zM8 13H3V2h5v11zm6 0H9V2h5v11z"}}]})(e)}const gPe=lt(xp,e=>({resultImages:e.categories.result.images,userImages:e.categories.user.images})),mPe=()=>{const{resultImages:e,userImages:t}=le(gPe);return n=>{const r=e.find(o=>o.uuid===n);if(r)return r;const i=t.find(o=>o.uuid===n);if(i)return i}},vPe=lt([yp,m4,Hr],(e,t,n)=>{const{shouldShowDualDisplay:r,shouldPinParametersPanel:i}=e,{isLightboxOpen:o}=t;return{shouldShowDualDisplay:r,shouldPinParametersPanel:i,isLightboxOpen:o,shouldShowDualDisplayButton:["inpainting"].includes(n),activeTabName:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),lP=e=>{const t=Te(),{optionsPanel:n,children:r,styleClass:i}=e,{activeTabName:o,shouldShowDualDisplay:a,isLightboxOpen:s,shouldShowDualDisplayButton:l}=le(vPe),u=mPe(),d=()=>{t(r5e(!a)),t(Oi(!0))},h=m=>{const y=m.dataTransfer.getData("invokeai/imageUuid"),b=u(y);b&&(o==="img2img"?t(S0(b)):o==="unifiedCanvas"&&t(u4(b)))};return g.jsx("div",{className:i?`workarea-wrapper ${i}`:"workarea-wrapper",children:g.jsxs("div",{className:"workarea-main",children:[n,g.jsxs("div",{className:"workarea-children-wrapper",onDrop:h,children:[r,l&&g.jsx(ui,{label:"Toggle Split View",children:g.jsx("div",{className:"workarea-split-button","data-selected":a,onClick:d,children:g.jsx(pPe,{})})})]}),!s&&g.jsx(sq,{})]})})},yPe=e=>{const{styleClass:t}=e,n=S.useContext(NE),r=()=>{n&&n()};return g.jsx("div",{className:`image-uploader-button-outer ${t}`,onClick:r,children:g.jsxs("div",{className:"image-upload-button",children:[g.jsx(b4,{}),g.jsx(Bh,{size:"lg",children:"Click or Drag and Drop"})]})})},bPe=lt([xp,yp,Hr],(e,t,n)=>{const{currentImage:r,intermediateImage:i}=e,{shouldShowImageDetails:o}=t;return{activeTabName:n,shouldShowImageDetails:o,hasAnImageToDisplay:r||i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),wq=()=>{const{hasAnImageToDisplay:e,activeTabName:t}=le(bPe);return g.jsx("div",{className:"current-image-area","data-tab-name":t,children:e?g.jsxs(g.Fragment,{children:[g.jsx(xG,{}),g.jsx(h7e,{})]}):g.jsx("div",{className:"current-image-display-placeholder",children:g.jsx(P7e,{})})})},xPe=()=>{const e=S.useContext(NE);return g.jsx(Ye,{"aria-label":"Upload Image",tooltip:"Upload Image",icon:g.jsx(b4,{}),onClick:e||void 0})};function SPe(){const e=le(o=>o.generation.initialImage),{t}=De(),n=Te(),r=u2(),i=()=>{r({title:t("toast.parametersFailed"),description:t("toast.parametersFailedDesc"),status:"error",isClosable:!0}),n(vV())};return g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"init-image-preview-header",children:[g.jsx("h2",{children:t("parameters.initialImage")}),g.jsx(xPe,{})]}),e&&g.jsx("div",{className:"init-image-preview",children:g.jsx(c2,{fit:"contain",maxWidth:"100%",maxHeight:"100%",src:typeof e=="string"?e:e.url,onError:i})})]})}const wPe=()=>{const e=le(r=>r.generation.initialImage),{currentImage:t}=le(r=>r.gallery),n=e?g.jsx("div",{className:"image-to-image-area",children:g.jsx(SPe,{})}):g.jsx(yPe,{});return g.jsxs("div",{className:"workarea-split-view",children:[g.jsx("div",{className:"workarea-split-view-left",children:n}),t&&g.jsx("div",{className:"workarea-split-view-right",children:g.jsx(wq,{})})]})};var so=(e=>(e[e.PROMPT=0]="PROMPT",e[e.GALLERY=1]="GALLERY",e[e.OTHER=2]="OTHER",e[e.SEED=3]="SEED",e[e.VARIATIONS=4]="VARIATIONS",e[e.UPSCALE=5]="UPSCALE",e[e.FACE_CORRECTION=6]="FACE_CORRECTION",e[e.IMAGE_TO_IMAGE=7]="IMAGE_TO_IMAGE",e[e.BOUNDING_BOX=8]="BOUNDING_BOX",e[e.SEAM_CORRECTION=9]="SEAM_CORRECTION",e[e.INFILL_AND_SCALING=10]="INFILL_AND_SCALING",e))(so||{});const CPe=()=>{const{t:e}=De();return S.useMemo(()=>({[0]:{text:e("tooltip.feature.prompt"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[1]:{text:e("tooltip.feature.gallery"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[2]:{text:e("tooltip.feature.other"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[3]:{text:e("tooltip.feature.seed"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[4]:{text:e("tooltip.feature.variations"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[5]:{text:e("tooltip.feature.upscale"),href:"link/to/docs/feature1.html",guideImage:"asset/path.gif"},[6]:{text:e("tooltip.feature.faceCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[7]:{text:e("tooltip.feature.imageToImage"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[8]:{text:e("tooltip.feature.boundingBox"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[9]:{text:e("tooltip.feature.seamCorrection"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"},[10]:{text:e("tooltip.feature.infillAndScaling"),href:"link/to/docs/feature3.html",guideImage:"asset/path.gif"}}),[e])},_Pe=e=>CPe()[e],Ea=e=>{const{label:t,isDisabled:n=!1,width:r="auto",formControlProps:i,formLabelProps:o,...a}=e;return g.jsxs(un,{isDisabled:n,width:r,display:"flex",gap:"1rem",alignItems:"center",justifyContent:"space-between",...i,children:[g.jsx(Cn,{my:1,...o,children:t}),g.jsx(nE,{...a})]})};function Cq(){const e=le(i=>i.system.isGFPGANAvailable),t=le(i=>i.postprocessing.shouldRunFacetool),n=Te(),r=i=>n(dwe(i.target.checked));return g.jsx(Ea,{isDisabled:!e,isChecked:t,onChange:r})}const _q=()=>{const e=Te(),t=le(i=>i.generation.seamless),n=i=>e(_V(i.target.checked)),{t:r}=De();return g.jsx(Ea,{label:r("parameters.seamlessTiling"),fontSize:"md",isChecked:t,onChange:n})},kPe=()=>g.jsx(jt,{gap:2,alignItems:"stretch",children:g.jsx(_q,{})});function uP(){const e=le(o=>o.generation.horizontalSymmetryTimePercentage),t=le(o=>o.generation.verticalSymmetryTimePercentage),n=le(o=>o.generation.steps),r=Te(),{t:i}=De();return g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(Nn,{label:i("parameters.hSymmetryStep"),value:e,onChange:o=>r(fI(o)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(fI(0))}),g.jsx(Nn,{label:i("parameters.vSymmetryStep"),value:t,onChange:o=>r(hI(o)),min:0,max:n,step:1,withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>r(hI(0))})]})}function cP(){const e=le(n=>n.generation.shouldUseSymmetry),t=Te();return g.jsx(Ea,{isChecked:e,onChange:n=>t(awe(n.target.checked))})}function EPe(){const e=Te(),t=le(r=>r.generation.perlin),{t:n}=De();return g.jsx(Nn,{label:n("parameters.perlinNoise"),min:0,max:1,step:.05,onChange:r=>e(_k(r)),handleReset:()=>e(_k(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0})}function PPe(){const e=Te(),{t}=De(),n=le(i=>i.generation.shouldRandomizeSeed),r=i=>e(owe(i.target.checked));return g.jsx(Ea,{label:t("parameters.randomizeSeed"),isChecked:n,onChange:r})}const xD=/^-?(0\.)?\.?$/,cc=e=>{const{label:t,isDisabled:n=!1,showStepper:r=!0,isInvalid:i,value:o,onChange:a,min:s,max:l,isInteger:u=!0,formControlProps:d,formLabelProps:h,numberInputFieldProps:m,numberInputStepperProps:y,tooltipProps:b,...w}=e,[E,_]=S.useState(String(o));S.useEffect(()=>{!E.match(xD)&&o!==Number(E)&&_(String(o))},[o,E]);const k=L=>{_(L),L.match(xD)||a(u?Math.floor(Number(L)):Number(L))},P=L=>{const O=Pe.clamp(u?Math.floor(Number(L.target.value)):Number(L.target.value),s,l);_(String(O)),a(O)};return g.jsx(ui,{...b,children:g.jsxs(un,{isDisabled:n,isInvalid:i,...d,children:[t&&g.jsx(Cn,{...h,children:t}),g.jsxs(q8,{value:E,min:s,max:l,keepWithinRange:!0,clampValueOnBlur:!1,onChange:k,onBlur:P,...w,children:[g.jsx(Y8,{...m}),r&&g.jsxs(K8,{children:[g.jsx(Z8,{...y}),g.jsx(X8,{...y})]})]})]})})};function TPe(){const e=Te(),t=le(i=>i.generation.shouldRandomizeSeed),{t:n}=De(),r=()=>e(v2(YU(ME,LE)));return g.jsx(Ra,{size:"sm",isDisabled:t,onClick:r,padding:"0 1.5rem",children:g.jsx("p",{children:n("parameters.shuffle")})})}function MPe(){const e=le(a=>a.generation.seed),t=le(a=>a.generation.shouldRandomizeSeed),n=le(a=>a.generation.shouldGenerateVariations),{t:r}=De(),i=Te(),o=a=>i(v2(a));return g.jsxs(Zd,{gap:2,children:[g.jsx(cc,{label:r("parameters.seed"),step:1,precision:0,flexGrow:1,min:ME,max:LE,isDisabled:t,isInvalid:e<0&&n,onChange:o,value:e,formControlProps:{display:"flex",alignItems:"center",gap:3}}),g.jsx(TPe,{})]})}function LPe(){const e=Te(),t=le(r=>r.generation.threshold),{t:n}=De();return g.jsx(Nn,{label:n("parameters.noiseThreshold"),min:0,max:20,step:.1,onChange:r=>e(Ek(r)),handleReset:()=>e(Ek(0)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0})}const dP=()=>g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(PPe,{}),g.jsx(MPe,{}),g.jsx(LPe,{}),g.jsx(EPe,{})]});function kq(){const e=le(i=>i.system.isESRGANAvailable),t=le(i=>i.postprocessing.shouldRunESRGAN),n=Te(),r=i=>n(cwe(i.target.checked));return g.jsx(Ea,{isDisabled:!e,isChecked:t,onChange:r})}function fP(){const e=le(r=>r.generation.shouldGenerateVariations),t=Te(),n=r=>t(iwe(r.target.checked));return g.jsx(Ea,{isChecked:e,width:"auto",onChange:n})}function Xn(e){const{label:t="",isDisabled:n=!1,isInvalid:r,formControlProps:i,...o}=e;return g.jsxs(un,{isInvalid:r,isDisabled:n,...i,children:[t!==""&&g.jsx(Cn,{children:t}),g.jsx(I8,{...o})]})}function APe(){const e=le(o=>o.generation.seedWeights),t=le(o=>o.generation.shouldGenerateVariations),{t:n}=De(),r=Te(),i=o=>r(kV(o.target.value));return g.jsx(Xn,{label:n("parameters.seedWeights"),value:e,isInvalid:t&&!(_E(e)||e===""),isDisabled:!t,onChange:i})}function OPe(){const e=le(i=>i.generation.variationAmount),t=le(i=>i.generation.shouldGenerateVariations),{t:n}=De(),r=Te();return g.jsx(Nn,{label:n("parameters.variationAmount"),value:e,step:.01,min:0,max:1,isSliderDisabled:!t,isInputDisabled:!t,isResetDisabled:!t,onChange:i=>r(dI(i)),handleReset:()=>r(dI(.1)),withInput:!0,withReset:!0,withSliderMarks:!0})}const hP=()=>g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(OPe,{}),g.jsx(APe,{})]});function SD(){const e=Te(),t=le(o=>o.generation.cfgScale),n=le(o=>o.ui.shouldUseSliders),{t:r}=De(),i=o=>e(wk(o));return n?g.jsx(Nn,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:30,onChange:i,handleReset:()=>e(wk(7.5)),value:t,sliderNumberInputProps:{max:200},withInput:!0,withReset:!0,withSliderMarks:!0}):g.jsx(cc,{label:r("parameters.cfgScale"),step:.5,min:1.01,max:200,onChange:i,value:t,isInteger:!1,numberInputFieldProps:{textAlign:"center"}})}function wD(){const e=le(o=>o.generation.height),t=le(o=>o.ui.shouldUseSliders),n=le(Hr),r=Te(),{t:i}=De();return t?g.jsx(Nn,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:i("parameters.height"),value:e,min:64,step:64,max:2048,onChange:o=>r(fS(o)),handleReset:()=>r(fS(512)),withInput:!0,withReset:!0,withSliderMarks:!0,inputWidth:"6.2rem",sliderNumberInputProps:{max:15360}}):g.jsx(ta,{isDisabled:n==="unifiedCanvas",label:i("parameters.height"),value:e,flexGrow:1,onChange:o=>r(fS(Number(o.target.value))),validValues:Q5e,width:"5.5rem"})}function CD(){const e=le(o=>o.generation.iterations),t=le(o=>o.ui.shouldUseSliders),n=Te(),{t:r}=De(),i=o=>n(oI(o));return t?g.jsx(Nn,{label:r("parameters.images"),step:1,min:1,max:16,onChange:i,handleReset:()=>n(oI(1)),value:e,withInput:!0,withReset:!0,withSliderMarks:!0,sliderNumberInputProps:{max:9999}}):g.jsx(cc,{label:r("parameters.images"),step:1,min:1,max:9999,onChange:i,value:e,numberInputFieldProps:{textAlign:"center"}})}function _D(){const e=le(o=>o.generation.sampler),t=le(rG),n=Te(),{t:r}=De(),i=o=>n(CV(o.target.value));return g.jsx(ta,{label:r("parameters.sampler"),value:e,onChange:i,validValues:t.format==="diffusers"?X5e:Y5e,minWidth:"9rem"})}function kD(){const e=Te(),t=le(o=>o.generation.steps),n=le(o=>o.ui.shouldUseSliders),{t:r}=De(),i=o=>e(kk(o));return n?g.jsx(Nn,{label:r("parameters.steps"),min:1,step:1,onChange:i,handleReset:()=>e(kk(20)),value:t,withInput:!0,withReset:!0,withSliderMarks:!0,sliderNumberInputProps:{max:9999}}):g.jsx(cc,{label:r("parameters.steps"),min:1,max:9999,step:1,onChange:i,value:t,numberInputFieldProps:{textAlign:"center"}})}function ED(){const e=le(o=>o.generation.width),t=le(o=>o.ui.shouldUseSliders),n=le(Hr),{t:r}=De(),i=Te();return t?g.jsx(Nn,{isSliderDisabled:n==="unifiedCanvas",isInputDisabled:n==="unifiedCanvas",isResetDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,min:64,step:64,max:2048,onChange:o=>i(hS(o)),handleReset:()=>i(hS(512)),withInput:!0,withReset:!0,withSliderMarks:!0,inputWidth:"6.2rem",inputReadOnly:!0,sliderNumberInputProps:{max:15360}}):g.jsx(ta,{isDisabled:n==="unifiedCanvas",label:r("parameters.width"),value:e,flexGrow:1,onChange:o=>i(hS(Number(o.target.value))),validValues:Z5e,width:"5.5rem"})}function pP(){return le(t=>t.ui.shouldUseSliders)?g.jsxs(jt,{gap:2,children:[g.jsx(CD,{}),g.jsx(kD,{}),g.jsx(SD,{}),g.jsx(ED,{}),g.jsx(wD,{}),g.jsx(_D,{})]}):g.jsxs(jt,{gap:2,children:[g.jsxs(Zd,{children:[g.jsx(CD,{}),g.jsx(kD,{}),g.jsx(SD,{})]}),g.jsxs(Zd,{children:[g.jsx(ED,{}),g.jsx(wD,{}),g.jsx(_D,{})]})]})}const IPe=lt(gr,e=>e.shouldDisplayGuides),RPe=({children:e,feature:t})=>{const n=le(IPe),{text:r}=_Pe(t);return n?g.jsxs(J8,{trigger:"hover",children:[g.jsx(Q8,{children:g.jsx(ko,{children:e})}),g.jsxs(tE,{className:"guide-popover-content",maxWidth:"400px",onClick:i=>i.preventDefault(),cursor:"initial",children:[g.jsx(eE,{className:"guide-popover-arrow"}),g.jsx("div",{className:"guide-popover-guide-content",children:r})]})]}):null},DPe=Xe(({feature:e,icon:t=_7e},n)=>g.jsx(RPe,{feature:e,children:g.jsx(ko,{ref:n,children:g.jsx(Ba,{marginBottom:"-.15rem",as:t})})}));function jPe(e){const{header:t,feature:n,content:r,additionalHeaderComponents:i}=e;return g.jsxs(um,{children:[g.jsx(sm,{children:g.jsxs(Re,{width:"100%",gap:"0.5rem",align:"center",children:[g.jsx(ko,{flexGrow:1,textAlign:"left",children:t}),i,n&&g.jsx(DPe,{feature:n}),g.jsx(lm,{})]})}),g.jsx(dm,{children:r})]})}const gP=e=>{const{accordionInfo:t}=e,n=le(a=>a.system.openAccordions),r=Te(),i=a=>r(N4e(a)),o=()=>{const a=[];return t&&Object.keys(t).forEach(s=>{const{header:l,feature:u,content:d,additionalHeaderComponents:h}=t[s];a.push(g.jsx(jPe,{header:l,feature:u,content:d,additionalHeaderComponents:h},s))}),a};return g.jsx(v8,{defaultIndex:n,allowMultiple:!0,reduceMotion:!0,onChange:i,children:o()})},NPe=lt(zE,({shouldLoopback:e})=>e),$Pe=()=>{const e=Te(),t=le(NPe),{t:n}=De();return g.jsx(Ye,{"aria-label":n("parameters.toggleLoopback"),tooltip:n("parameters.toggleLoopback"),isChecked:t,icon:g.jsx(Qke,{}),onClick:()=>{e(uwe(!t))}})},mP=()=>{const e=le(Hr);return g.jsxs(Re,{gap:2,children:[g.jsx(aP,{}),e==="img2img"&&g.jsx($Pe,{}),g.jsx(iP,{})]})};function pt(e,t){return n=>n.colorMode==="dark"?t:e}function FPe(e){return!Number.isInteger(parseFloat(e.toString()))}function BPe(e,t="-"){return e.replace(/\s+/g,t)}function Eq(e){const t=BPe(e.toString());return t.includes("\\.")?e:FPe(e)?t.replace(".","\\."):e}function zPe(e,t=""){return[t,Eq(e)].filter(Boolean).join("-")}function HPe(e,t){return`var(${Eq(e)}${t?`, ${t}`:""})`}function WPe(e,t=""){return`--${zPe(e,t)}`}function vP(e,t){const n=WPe(e,t==null?void 0:t.prefix);return{variable:n,reference:HPe(n,VPe(t==null?void 0:t.fallback))}}function VPe(e){return typeof e=="string"?e:e==null?void 0:e.reference}const yP=()=>{const e=le(i=>i.generation.negativePrompt),{colorMode:t}=sp(),n=Te(),{t:r}=De();return g.jsx(un,{children:g.jsx(rE,{id:"negativePrompt",name:"negativePrompt",value:e,onChange:i=>n(wV(i.target.value)),placeholder:r("parameters.negativePrompts"),_focusVisible:{borderColor:pt("error.400","error.600")({colorMode:t})},fontSize:"sm"})})},UPe=lt([e=>e.generation,Hr],(e,t)=>({prompt:e.prompt,activeTabName:t}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),bP=()=>{const e=Te(),{prompt:t,activeTabName:n}=le(UPe),{isReady:r}=le(Sq),i=S.useRef(null),{t:o}=De(),a=l=>{e(SV(l.target.value))};Ze("alt+a",()=>{var l;(l=i.current)==null||l.focus()},[]);const s=l=>{l.key==="Enter"&&l.shiftKey===!1&&r&&(l.preventDefault(),e(Xk(n)))};return g.jsx("div",{className:"prompt-bar",children:g.jsx(un,{isInvalid:t.length===0||Boolean(t.match(/^[\s\r\n]+$/)),children:g.jsx(rE,{id:"prompt",name:"prompt",placeholder:o("parameters.promptPlaceholder"),value:t,onChange:a,onKeyDown:s,resize:"vertical",ref:i,minH:"10rem"})})})},Pq=""+new URL("logo-13003d72.png",import.meta.url).href,GPe=lt(yp,e=>{const{shouldShowParametersPanel:t,shouldHoldParametersPanelOpen:n,shouldPinParametersPanel:r,parametersPanelScrollPosition:i}=e;return{shouldShowParametersPanel:t,shouldHoldParametersPanelOpen:n,shouldPinParametersPanel:r,parametersPanelScrollPosition:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),xP=e=>{const t=Te(),{shouldShowParametersPanel:n,shouldHoldParametersPanelOpen:r,shouldPinParametersPanel:i}=le(GPe),o=S.useRef(null),a=S.useRef(null),s=S.useRef(null),{children:l}=e;Ze("o",()=>{t(Vh(!n)),i&&setTimeout(()=>t(Oi(!0)),400)},[n,i]),Ze("esc",()=>{t(Vh(!1))},{enabled:()=>!i,preventDefault:!0},[i]),Ze("shift+o",()=>{m(),t(Oi(!0))},[i]);const u=S.useCallback(()=>{i||(t(e5e(a.current?a.current.scrollTop:0)),t(Vh(!1)),t(t5e(!1)))},[t,i]),d=()=>{s.current=window.setTimeout(()=>u(),500)},h=()=>{s.current&&window.clearTimeout(s.current)},m=()=>{t(n5e(!i)),t(Oi(!0))};return S.useEffect(()=>{function y(b){o.current&&!o.current.contains(b.target)&&u()}return document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y)}},[u]),g.jsx(MG,{nodeRef:o,in:n||r&&!i,unmountOnExit:!0,timeout:200,classNames:"parameters-panel-wrapper",children:g.jsx("div",{className:"parameters-panel-wrapper","data-pinned":i,tabIndex:1,ref:o,onMouseEnter:i?void 0:h,onMouseOver:i?void 0:h,style:{borderRight:i?"":"0.3rem solid var(--tab-list-text-inactive)"},children:g.jsx("div",{className:"parameters-panel-margin",children:g.jsxs("div",{className:"parameters-panel",ref:a,onMouseLeave:y=>{y.target!==a.current?h():!i&&d()},children:[g.jsx(ui,{label:"Pin Options Panel",children:g.jsx("div",{className:"parameters-panel-pin-button","data-selected":i,onClick:m,children:i?g.jsx(_G,{}):g.jsx(kG,{})})}),!i&&g.jsxs("div",{className:"invoke-ai-logo-wrapper",children:[g.jsx("img",{src:Pq,alt:"invoke-ai-logo"}),g.jsxs("h1",{children:["invoke ",g.jsx("strong",{children:"ai"})]})]}),l]})})})})};function qPe(){const e=Te(),t=le(i=>i.generation.shouldFitToWidthHeight),n=i=>e(EV(i.target.checked)),{t:r}=De();return g.jsx(Ea,{label:r("parameters.imageFit"),isChecked:t,onChange:n})}function Tq(e){const{t}=De(),{label:n=`${t("parameters.strength")}`}=e,r=le(s=>s.generation.img2imgStrength),i=Te(),o=s=>i(Ck(s)),a=()=>{i(Ck(.75))};return g.jsx(Nn,{label:n,step:.01,min:.01,max:1,onChange:o,value:r,isInteger:!1,withInput:!0,withSliderMarks:!0,inputWidth:"5.5rem",withReset:!0,handleReset:a})}function KPe(){const{t:e}=De();return g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(Tq,{label:e("parameters.img2imgStrength")}),g.jsx(qPe,{})]})}function YPe(){const{t:e}=De(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:g.jsx(pP,{})},imageToImage:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:g.jsx(KPe,{})},seed:{header:`${e("parameters.seed")}`,feature:so.SEED,content:g.jsx(dP,{})},variations:{header:`${e("parameters.variations")}`,feature:so.VARIATIONS,content:g.jsx(hP,{}),additionalHeaderComponents:g.jsx(fP,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:so.FACE_CORRECTION,content:g.jsx(FE,{}),additionalHeaderComponents:g.jsx(Cq,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:so.UPSCALE,content:g.jsx(BE,{}),additionalHeaderComponents:g.jsx(kq,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(uP,{}),additionalHeaderComponents:g.jsx(cP,{})},other:{header:`${e("parameters.otherOptions")}`,feature:so.OTHER,content:g.jsx(kPe,{})}};return g.jsxs(xP,{children:[g.jsxs(Re,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(bP,{}),g.jsx(yP,{})]}),g.jsx(mP,{}),g.jsx(gP,{accordionInfo:t})]})}function XPe(){return g.jsx(lP,{optionsPanel:g.jsx(YPe,{}),children:g.jsx(wPe,{})})}const ZPe=()=>g.jsx("div",{className:"workarea-single-view",children:g.jsx(ko,{p:"1rem",h:"100%",children:g.jsx(wq,{})})}),QPe=lt([zE],({hiresFix:e,hiresStrength:t})=>({hiresFix:e,hiresStrength:t}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),JPe=()=>{const{hiresFix:e,hiresStrength:t}=le(QPe),n=Te(),{t:r}=De(),i=a=>{n(pI(a))},o=()=>{n(pI(.75))};return g.jsx(Nn,{label:r("parameters.hiresStrength"),step:.01,min:.01,max:.99,onChange:i,value:t,isInteger:!1,withInput:!0,withSliderMarks:!0,inputWidth:"5.5rem",withReset:!0,handleReset:o,isSliderDisabled:!e,isInputDisabled:!e,isResetDisabled:!e})},eTe=()=>{const e=Te(),t=le(i=>i.postprocessing.hiresFix),{t:n}=De(),r=i=>e(MV(i.target.checked));return g.jsx(Ea,{label:n("parameters.hiresOptim"),fontSize:"md",isChecked:t,onChange:r})},tTe=()=>g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(_q,{}),g.jsx(eTe,{}),g.jsx(JPe,{})]});function nTe(){const{t:e}=De(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:g.jsx(pP,{})},seed:{header:`${e("parameters.seed")}`,feature:so.SEED,content:g.jsx(dP,{})},variations:{header:`${e("parameters.variations")}`,feature:so.VARIATIONS,content:g.jsx(hP,{}),additionalHeaderComponents:g.jsx(fP,{})},face_restore:{header:`${e("parameters.faceRestoration")}`,feature:so.FACE_CORRECTION,content:g.jsx(FE,{}),additionalHeaderComponents:g.jsx(Cq,{})},upscale:{header:`${e("parameters.upscaling")}`,feature:so.UPSCALE,content:g.jsx(BE,{}),additionalHeaderComponents:g.jsx(kq,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(uP,{}),additionalHeaderComponents:g.jsx(cP,{})},other:{header:`${e("parameters.otherOptions")}`,feature:so.OTHER,content:g.jsx(tTe,{})}};return g.jsxs(xP,{children:[g.jsxs(Re,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(bP,{}),g.jsx(yP,{})]}),g.jsx(mP,{}),g.jsx(gP,{accordionInfo:t})]})}function rTe(){return g.jsx(lP,{optionsPanel:g.jsx(nTe,{}),children:g.jsx(ZPe,{})})}var f7={},iTe={get exports(){return f7},set exports(e){f7=e}};/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var oTe=function(t){var n={},r=S,i=Oh,o=Object.assign;function a(f){for(var p="https://reactjs.org/docs/error-decoder.html?invariant="+f,x=1;xae||M[V]!==I[ae]){var he=` +`+M[V].replace(" at new "," at ");return f.displayName&&he.includes("")&&(he=he.replace("",f.displayName)),he}while(1<=V&&0<=ae);break}}}finally{sl=!1,Error.prepareStackTrace=x}return(f=f?f.displayName||f.name:"")?gu(f):""}var Ap=Object.prototype.hasOwnProperty,_c=[],ll=-1;function oa(f){return{current:f}}function On(f){0>ll||(f.current=_c[ll],_c[ll]=null,ll--)}function _n(f,p){ll++,_c[ll]=f.current,f.current=p}var aa={},Vr=oa(aa),di=oa(!1),sa=aa;function ul(f,p){var x=f.type.contextTypes;if(!x)return aa;var T=f.stateNode;if(T&&T.__reactInternalMemoizedUnmaskedChildContext===p)return T.__reactInternalMemoizedMaskedChildContext;var M={},I;for(I in x)M[I]=p[I];return T&&(f=f.stateNode,f.__reactInternalMemoizedUnmaskedChildContext=p,f.__reactInternalMemoizedMaskedChildContext=M),M}function fi(f){return f=f.childContextTypes,f!=null}function _s(){On(di),On(Vr)}function Sf(f,p,x){if(Vr.current!==aa)throw Error(a(168));_n(Vr,p),_n(di,x)}function vu(f,p,x){var T=f.stateNode;if(p=p.childContextTypes,typeof T.getChildContext!="function")return x;T=T.getChildContext();for(var M in T)if(!(M in p))throw Error(a(108,N(f)||"Unknown",M));return o({},x,T)}function ks(f){return f=(f=f.stateNode)&&f.__reactInternalMemoizedMergedChildContext||aa,sa=Vr.current,_n(Vr,f),_n(di,di.current),!0}function wf(f,p,x){var T=f.stateNode;if(!T)throw Error(a(169));x?(f=vu(f,p,sa),T.__reactInternalMemoizedMergedChildContext=f,On(di),On(Vr),_n(Vr,f)):On(di),_n(di,x)}var Di=Math.clz32?Math.clz32:Cf,Op=Math.log,Ip=Math.LN2;function Cf(f){return f>>>=0,f===0?32:31-(Op(f)/Ip|0)|0}var cl=64,Ao=4194304;function dl(f){switch(f&-f){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return f&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return f&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return f}}function yu(f,p){var x=f.pendingLanes;if(x===0)return 0;var T=0,M=f.suspendedLanes,I=f.pingedLanes,V=x&268435455;if(V!==0){var ae=V&~M;ae!==0?T=dl(ae):(I&=V,I!==0&&(T=dl(I)))}else V=x&~M,V!==0?T=dl(V):I!==0&&(T=dl(I));if(T===0)return 0;if(p!==0&&p!==T&&!(p&M)&&(M=T&-T,I=p&-p,M>=I||M===16&&(I&4194240)!==0))return p;if(T&4&&(T|=x&16),p=f.entangledLanes,p!==0)for(f=f.entanglements,p&=T;0x;x++)p.push(f);return p}function Ha(f,p,x){f.pendingLanes|=p,p!==536870912&&(f.suspendedLanes=0,f.pingedLanes=0),f=f.eventTimes,p=31-Di(p),f[p]=x}function kf(f,p){var x=f.pendingLanes&~p;f.pendingLanes=p,f.suspendedLanes=0,f.pingedLanes=0,f.expiredLanes&=p,f.mutableReadLanes&=p,f.entangledLanes&=p,p=f.entanglements;var T=f.eventTimes;for(f=f.expirationTimes;0>=V,M-=V,fo=1<<32-Di(p)+M|x<Gt?(ri=Ot,Ot=null):ri=Ot.sibling;var en=rt(ge,Ot,ve[Gt],Je);if(en===null){Ot===null&&(Ot=ri);break}f&&Ot&&en.alternate===null&&p(ge,Ot),ue=I(en,ue,Gt),Dt===null?Ae=en:Dt.sibling=en,Dt=en,Ot=ri}if(Gt===ve.length)return x(ge,Ot),Vn&&fl(ge,Gt),Ae;if(Ot===null){for(;GtGt?(ri=Ot,Ot=null):ri=Ot.sibling;var Rs=rt(ge,Ot,en.value,Je);if(Rs===null){Ot===null&&(Ot=ri);break}f&&Ot&&Rs.alternate===null&&p(ge,Ot),ue=I(Rs,ue,Gt),Dt===null?Ae=Rs:Dt.sibling=Rs,Dt=Rs,Ot=ri}if(en.done)return x(ge,Ot),Vn&&fl(ge,Gt),Ae;if(Ot===null){for(;!en.done;Gt++,en=ve.next())en=Rt(ge,en.value,Je),en!==null&&(ue=I(en,ue,Gt),Dt===null?Ae=en:Dt.sibling=en,Dt=en);return Vn&&fl(ge,Gt),Ae}for(Ot=T(ge,Ot);!en.done;Gt++,en=ve.next())en=Gn(Ot,ge,Gt,en.value,Je),en!==null&&(f&&en.alternate!==null&&Ot.delete(en.key===null?Gt:en.key),ue=I(en,ue,Gt),Dt===null?Ae=en:Dt.sibling=en,Dt=en);return f&&Ot.forEach(function(Pi){return p(ge,Pi)}),Vn&&fl(ge,Gt),Ae}function ya(ge,ue,ve,Je){if(typeof ve=="object"&&ve!==null&&ve.type===d&&ve.key===null&&(ve=ve.props.children),typeof ve=="object"&&ve!==null){switch(ve.$$typeof){case l:e:{for(var Ae=ve.key,Dt=ue;Dt!==null;){if(Dt.key===Ae){if(Ae=ve.type,Ae===d){if(Dt.tag===7){x(ge,Dt.sibling),ue=M(Dt,ve.props.children),ue.return=ge,ge=ue;break e}}else if(Dt.elementType===Ae||typeof Ae=="object"&&Ae!==null&&Ae.$$typeof===P&&Y0(Ae)===Dt.type){x(ge,Dt.sibling),ue=M(Dt,ve.props),ue.ref=Ua(ge,Dt,ve),ue.return=ge,ge=ue;break e}x(ge,Dt);break}else p(ge,Dt);Dt=Dt.sibling}ve.type===d?(ue=El(ve.props.children,ge.mode,Je,ve.key),ue.return=ge,ge=ue):(Je=Jf(ve.type,ve.key,ve.props,null,ge.mode,Je),Je.ref=Ua(ge,ue,ve),Je.return=ge,ge=Je)}return V(ge);case u:e:{for(Dt=ve.key;ue!==null;){if(ue.key===Dt)if(ue.tag===4&&ue.stateNode.containerInfo===ve.containerInfo&&ue.stateNode.implementation===ve.implementation){x(ge,ue.sibling),ue=M(ue,ve.children||[]),ue.return=ge,ge=ue;break e}else{x(ge,ue);break}else p(ge,ue);ue=ue.sibling}ue=Pl(ve,ge.mode,Je),ue.return=ge,ge=ue}return V(ge);case P:return Dt=ve._init,ya(ge,ue,Dt(ve._payload),Je)}if(U(ve))return In(ge,ue,ve,Je);if(D(ve))return vr(ge,ue,ve,Je);eo(ge,ve)}return typeof ve=="string"&&ve!==""||typeof ve=="number"?(ve=""+ve,ue!==null&&ue.tag===6?(x(ge,ue.sibling),ue=M(ue,ve),ue.return=ge,ge=ue):(x(ge,ue),ue=xg(ve,ge.mode,Je),ue.return=ge,ge=ue),V(ge)):x(ge,ue)}return ya}var Dc=$2(!0),F2=$2(!1),jf={},Do=oa(jf),Ga=oa(jf),ie=oa(jf);function be(f){if(f===jf)throw Error(a(174));return f}function me(f,p){_n(ie,p),_n(Ga,f),_n(Do,jf),f=Q(p),On(Do),_n(Do,f)}function nt(){On(Do),On(Ga),On(ie)}function At(f){var p=be(ie.current),x=be(Do.current);p=G(x,f.type,p),x!==p&&(_n(Ga,f),_n(Do,p))}function nn(f){Ga.current===f&&(On(Do),On(Ga))}var Ft=oa(0);function pn(f){for(var p=f;p!==null;){if(p.tag===13){var x=p.memoizedState;if(x!==null&&(x=x.dehydrated,x===null||wc(x)||xf(x)))return p}else if(p.tag===19&&p.memoizedProps.revealOrder!==void 0){if(p.flags&128)return p}else if(p.child!==null){p.child.return=p,p=p.child;continue}if(p===f)break;for(;p.sibling===null;){if(p.return===null||p.return===f)return null;p=p.return}p.sibling.return=p.return,p=p.sibling}return null}var Nf=[];function X0(){for(var f=0;fx?x:4,f(!0);var T=jc.transition;jc.transition={};try{f(!1),p()}finally{Kt=x,jc.transition=T}}function Wc(){return $i().memoizedState}function iv(f,p,x){var T=Yr(f);if(x={lane:T,action:x,hasEagerState:!1,eagerState:null,next:null},Uc(f))Gc(p,x);else if(x=Rc(f,p,x,T),x!==null){var M=Ei();$o(x,f,T,M),Wf(x,p,T)}}function Vc(f,p,x){var T=Yr(f),M={lane:T,action:x,hasEagerState:!1,eagerState:null,next:null};if(Uc(f))Gc(p,M);else{var I=f.alternate;if(f.lanes===0&&(I===null||I.lanes===0)&&(I=p.lastRenderedReducer,I!==null))try{var V=p.lastRenderedState,ae=I(V,x);if(M.hasEagerState=!0,M.eagerState=ae,q(ae,V)){var he=p.interleaved;he===null?(M.next=M,Rf(p)):(M.next=he.next,he.next=M),p.interleaved=M;return}}catch{}finally{}x=Rc(f,p,M,T),x!==null&&(M=Ei(),$o(x,f,T,M),Wf(x,p,T))}}function Uc(f){var p=f.alternate;return f===kn||p!==null&&p===kn}function Gc(f,p){$f=ln=!0;var x=f.pending;x===null?p.next=p:(p.next=x.next,x.next=p),f.pending=p}function Wf(f,p,x){if(x&4194240){var T=p.lanes;T&=f.pendingLanes,x|=T,p.lanes=x,bu(f,x)}}var Ts={readContext:ho,useCallback:wi,useContext:wi,useEffect:wi,useImperativeHandle:wi,useInsertionEffect:wi,useLayoutEffect:wi,useMemo:wi,useReducer:wi,useRef:wi,useState:wi,useDebugValue:wi,useDeferredValue:wi,useTransition:wi,useMutableSource:wi,useSyncExternalStore:wi,useId:wi,unstable_isNewReconciler:!1},$4={readContext:ho,useCallback:function(f,p){return pi().memoizedState=[f,p===void 0?null:p],f},useContext:ho,useEffect:H2,useImperativeHandle:function(f,p,x){return x=x!=null?x.concat([f]):null,Cu(4194308,4,Rr.bind(null,p,f),x)},useLayoutEffect:function(f,p){return Cu(4194308,4,f,p)},useInsertionEffect:function(f,p){return Cu(4,2,f,p)},useMemo:function(f,p){var x=pi();return p=p===void 0?null:p,f=f(),x.memoizedState=[f,p],f},useReducer:function(f,p,x){var T=pi();return p=x!==void 0?x(p):p,T.memoizedState=T.baseState=p,f={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:f,lastRenderedState:p},T.queue=f,f=f.dispatch=iv.bind(null,kn,f),[T.memoizedState,f]},useRef:function(f){var p=pi();return f={current:f},p.memoizedState=f},useState:z2,useDebugValue:tv,useDeferredValue:function(f){return pi().memoizedState=f},useTransition:function(){var f=z2(!1),p=f[0];return f=rv.bind(null,f[1]),pi().memoizedState=f,[p,f]},useMutableSource:function(){},useSyncExternalStore:function(f,p,x){var T=kn,M=pi();if(Vn){if(x===void 0)throw Error(a(407));x=x()}else{if(x=p(),ni===null)throw Error(a(349));wu&30||ev(T,p,x)}M.memoizedState=x;var I={value:x,getSnapshot:p};return M.queue=I,H2(gl.bind(null,T,I,f),[f]),T.flags|=2048,zf(9,zc.bind(null,T,I,x,p),void 0,null),x},useId:function(){var f=pi(),p=ni.identifierPrefix;if(Vn){var x=Wa,T=fo;x=(T&~(1<<32-Di(T)-1)).toString(32)+x,p=":"+p+"R"+x,x=Nc++,0cg&&(p.flags|=128,T=!0,Yc(M,!1),p.lanes=4194304)}else{if(!T)if(f=pn(I),f!==null){if(p.flags|=128,T=!0,f=f.updateQueue,f!==null&&(p.updateQueue=f,p.flags|=4),Yc(M,!0),M.tail===null&&M.tailMode==="hidden"&&!I.alternate&&!Vn)return Ci(p),null}else 2*Jn()-M.renderingStartTime>cg&&x!==1073741824&&(p.flags|=128,T=!0,Yc(M,!1),p.lanes=4194304);M.isBackwards?(I.sibling=p.child,p.child=I):(f=M.last,f!==null?f.sibling=I:p.child=I,M.last=I)}return M.tail!==null?(p=M.tail,M.rendering=p,M.tail=p.sibling,M.renderingStartTime=Jn(),p.sibling=null,f=Ft.current,_n(Ft,T?f&1|2:f&1),p):(Ci(p),null);case 22:case 23:return id(),x=p.memoizedState!==null,f!==null&&f.memoizedState!==null!==x&&(p.flags|=8192),x&&p.mode&1?go&1073741824&&(Ci(p),Be&&p.subtreeFlags&6&&(p.flags|=8192)):Ci(p),null;case 24:return null;case 25:return null}throw Error(a(156,p.tag))}function fv(f,p){switch(U0(p),p.tag){case 1:return fi(p.type)&&_s(),f=p.flags,f&65536?(p.flags=f&-65537|128,p):null;case 3:return nt(),On(di),On(Vr),X0(),f=p.flags,f&65536&&!(f&128)?(p.flags=f&-65537|128,p):null;case 5:return nn(p),null;case 13:if(On(Ft),f=p.memoizedState,f!==null&&f.dehydrated!==null){if(p.alternate===null)throw Error(a(340));Ac()}return f=p.flags,f&65536?(p.flags=f&-65537|128,p):null;case 19:return On(Ft),null;case 4:return nt(),null;case 10:return Of(p.type._context),null;case 22:case 23:return id(),null;case 24:return null;default:return null}}var vl=!1,Gr=!1,V4=typeof WeakSet=="function"?WeakSet:Set,st=null;function Xc(f,p){var x=f.ref;if(x!==null)if(typeof x=="function")try{x(null)}catch(T){tr(f,p,T)}else x.current=null}function pa(f,p,x){try{x()}catch(T){tr(f,p,T)}}var Zp=!1;function ku(f,p){for(Y(f.containerInfo),st=p;st!==null;)if(f=st,p=f.child,(f.subtreeFlags&1028)!==0&&p!==null)p.return=f,st=p;else for(;st!==null;){f=st;try{var x=f.alternate;if(f.flags&1024)switch(f.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var T=x.memoizedProps,M=x.memoizedState,I=f.stateNode,V=I.getSnapshotBeforeUpdate(f.elementType===f.type?T:ua(f.type,T),M);I.__reactInternalSnapshotBeforeUpdate=V}break;case 3:Be&&Qi(f.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(a(163))}}catch(ae){tr(f,f.return,ae)}if(p=f.sibling,p!==null){p.return=f.return,st=p;break}st=f.return}return x=Zp,Zp=!1,x}function _i(f,p,x){var T=p.updateQueue;if(T=T!==null?T.lastEffect:null,T!==null){var M=T=T.next;do{if((M.tag&f)===f){var I=M.destroy;M.destroy=void 0,I!==void 0&&pa(p,x,I)}M=M.next}while(M!==T)}}function Qp(f,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var x=p=p.next;do{if((x.tag&f)===f){var T=x.create;x.destroy=T()}x=x.next}while(x!==p)}}function Jp(f){var p=f.ref;if(p!==null){var x=f.stateNode;switch(f.tag){case 5:f=X(x);break;default:f=x}typeof p=="function"?p(f):p.current=f}}function hv(f){var p=f.alternate;p!==null&&(f.alternate=null,hv(p)),f.child=null,f.deletions=null,f.sibling=null,f.tag===5&&(p=f.stateNode,p!==null&&vt(p)),f.stateNode=null,f.return=null,f.dependencies=null,f.memoizedProps=null,f.memoizedState=null,f.pendingProps=null,f.stateNode=null,f.updateQueue=null}function Zc(f){return f.tag===5||f.tag===3||f.tag===4}function Ls(f){e:for(;;){for(;f.sibling===null;){if(f.return===null||Zc(f.return))return null;f=f.return}for(f.sibling.return=f.return,f=f.sibling;f.tag!==5&&f.tag!==6&&f.tag!==18;){if(f.flags&2||f.child===null||f.tag===4)continue e;f.child.return=f,f=f.child}if(!(f.flags&2))return f.stateNode}}function eg(f,p,x){var T=f.tag;if(T===5||T===6)f=f.stateNode,p?Wr(x,f,p):_t(x,f);else if(T!==4&&(f=f.child,f!==null))for(eg(f,p,x),f=f.sibling;f!==null;)eg(f,p,x),f=f.sibling}function pv(f,p,x){var T=f.tag;if(T===5||T===6)f=f.stateNode,p?gt(x,f,p):Me(x,f);else if(T!==4&&(f=f.child,f!==null))for(pv(f,p,x),f=f.sibling;f!==null;)pv(f,p,x),f=f.sibling}var jr=null,ga=!1;function ma(f,p,x){for(x=x.child;x!==null;)qr(f,p,x),x=x.sibling}function qr(f,p,x){if(Yt&&typeof Yt.onCommitFiberUnmount=="function")try{Yt.onCommitFiberUnmount(hn,x)}catch{}switch(x.tag){case 5:Gr||Xc(x,p);case 6:if(Be){var T=jr,M=ga;jr=null,ma(f,p,x),jr=T,ga=M,jr!==null&&(ga?Wn(jr,x.stateNode):ar(jr,x.stateNode))}else ma(f,p,x);break;case 18:Be&&jr!==null&&(ga?B0(jr,x.stateNode):F0(jr,x.stateNode));break;case 4:Be?(T=jr,M=ga,jr=x.stateNode.containerInfo,ga=!0,ma(f,p,x),jr=T,ga=M):(Le&&(T=x.stateNode.containerInfo,M=za(T),Sc(T,M)),ma(f,p,x));break;case 0:case 11:case 14:case 15:if(!Gr&&(T=x.updateQueue,T!==null&&(T=T.lastEffect,T!==null))){M=T=T.next;do{var I=M,V=I.destroy;I=I.tag,V!==void 0&&(I&2||I&4)&&pa(x,p,V),M=M.next}while(M!==T)}ma(f,p,x);break;case 1:if(!Gr&&(Xc(x,p),T=x.stateNode,typeof T.componentWillUnmount=="function"))try{T.props=x.memoizedProps,T.state=x.memoizedState,T.componentWillUnmount()}catch(ae){tr(x,p,ae)}ma(f,p,x);break;case 21:ma(f,p,x);break;case 22:x.mode&1?(Gr=(T=Gr)||x.memoizedState!==null,ma(f,p,x),Gr=T):ma(f,p,x);break;default:ma(f,p,x)}}function tg(f){var p=f.updateQueue;if(p!==null){f.updateQueue=null;var x=f.stateNode;x===null&&(x=f.stateNode=new V4),p.forEach(function(T){var M=ab.bind(null,f,T);x.has(T)||(x.add(T),T.then(M,M))})}}function jo(f,p){var x=p.deletions;if(x!==null)for(var T=0;T";case og:return":has("+(vv(f)||"")+")";case ag:return'[role="'+f.value+'"]';case sg:return'"'+f.value+'"';case Qc:return'[data-testname="'+f.value+'"]';default:throw Error(a(365))}}function Jc(f,p){var x=[];f=[f,0];for(var T=0;TM&&(M=V),T&=~I}if(T=M,T=Jn()-T,T=(120>T?120:480>T?480:1080>T?1080:1920>T?1920:3e3>T?3e3:4320>T?4320:1960*U4(T/1960))-T,10f?16:f,Mt===null)var T=!1;else{if(f=Mt,Mt=null,dg=0,Ut&6)throw Error(a(331));var M=Ut;for(Ut|=4,st=f.current;st!==null;){var I=st,V=I.child;if(st.flags&16){var ae=I.deletions;if(ae!==null){for(var he=0;heJn()-xv?Cl(f,0):bv|=x),mi(f,p)}function kv(f,p){p===0&&(f.mode&1?(p=Ao,Ao<<=1,!(Ao&130023424)&&(Ao=4194304)):p=1);var x=Ei();f=ca(f,p),f!==null&&(Ha(f,p,x),mi(f,x))}function q4(f){var p=f.memoizedState,x=0;p!==null&&(x=p.retryLane),kv(f,x)}function ab(f,p){var x=0;switch(f.tag){case 13:var T=f.stateNode,M=f.memoizedState;M!==null&&(x=M.retryLane);break;case 19:T=f.stateNode;break;default:throw Error(a(314))}T!==null&&T.delete(p),kv(f,x)}var Ev;Ev=function(f,p,x){if(f!==null)if(f.memoizedProps!==p.pendingProps||di.current)to=!0;else{if(!(f.lanes&x)&&!(p.flags&128))return to=!1,H4(f,p,x);to=!!(f.flags&131072)}else to=!1,Vn&&p.flags&1048576&&V0(p,Ir,p.index);switch(p.lanes=0,p.tag){case 2:var T=p.type;qa(f,p),f=p.pendingProps;var M=ul(p,Vr.current);Ic(p,x),M=Q0(null,p,T,f,M,x);var I=$c();return p.flags|=1,typeof M=="object"&&M!==null&&typeof M.render=="function"&&M.$$typeof===void 0?(p.tag=1,p.memoizedState=null,p.updateQueue=null,fi(T)?(I=!0,ks(p)):I=!1,p.memoizedState=M.state!==null&&M.state!==void 0?M.state:null,q0(p),M.updater=da,p.stateNode=M,M._reactInternals=p,K0(p,T,f,x),p=fa(null,p,T,!0,I,x)):(p.tag=0,Vn&&I&&ji(p),Fi(null,p,M,x),p=p.child),p;case 16:T=p.elementType;e:{switch(qa(f,p),f=p.pendingProps,M=T._init,T=M(T._payload),p.type=T,M=p.tag=yg(T),f=ua(T,f),M){case 0:p=sv(null,p,T,f,x);break e;case 1:p=Z2(null,p,T,f,x);break e;case 11:p=q2(null,p,T,f,x);break e;case 14:p=ml(null,p,T,ua(T.type,f),x);break e}throw Error(a(306,T,""))}return p;case 0:return T=p.type,M=p.pendingProps,M=p.elementType===T?M:ua(T,M),sv(f,p,T,M,x);case 1:return T=p.type,M=p.pendingProps,M=p.elementType===T?M:ua(T,M),Z2(f,p,T,M,x);case 3:e:{if(Q2(p),f===null)throw Error(a(387));T=p.pendingProps,I=p.memoizedState,M=I.element,R2(f,p),Hp(p,T,null,x);var V=p.memoizedState;if(T=V.element,St&&I.isDehydrated)if(I={element:T,isDehydrated:!1,cache:V.cache,pendingSuspenseBoundaries:V.pendingSuspenseBoundaries,transitions:V.transitions},p.updateQueue.baseState=I,p.memoizedState=I,p.flags&256){M=qc(Error(a(423)),p),p=J2(f,p,T,x,M);break e}else if(T!==M){M=qc(Error(a(424)),p),p=J2(f,p,T,x,M);break e}else for(St&&(Io=O0(p.stateNode.containerInfo),er=p,Vn=!0,Ji=null,Ro=!1),x=F2(p,null,T,x),p.child=x;x;)x.flags=x.flags&-3|4096,x=x.sibling;else{if(Ac(),T===M){p=Ms(f,p,x);break e}Fi(f,p,T,x)}p=p.child}return p;case 5:return At(p),f===null&&Tf(p),T=p.type,M=p.pendingProps,I=f!==null?f.memoizedProps:null,V=M.children,Ce(T,M)?V=null:I!==null&&Ce(T,I)&&(p.flags|=32),X2(f,p),Fi(f,p,V,x),p.child;case 6:return f===null&&Tf(p),null;case 13:return eb(f,p,x);case 4:return me(p,p.stateNode.containerInfo),T=p.pendingProps,f===null?p.child=Dc(p,null,T,x):Fi(f,p,T,x),p.child;case 11:return T=p.type,M=p.pendingProps,M=p.elementType===T?M:ua(T,M),q2(f,p,T,M,x);case 7:return Fi(f,p,p.pendingProps,x),p.child;case 8:return Fi(f,p,p.pendingProps.children,x),p.child;case 12:return Fi(f,p,p.pendingProps.children,x),p.child;case 10:e:{if(T=p.type._context,M=p.pendingProps,I=p.memoizedProps,V=M.value,I2(p,T,V),I!==null)if(q(I.value,V)){if(I.children===M.children&&!di.current){p=Ms(f,p,x);break e}}else for(I=p.child,I!==null&&(I.return=p);I!==null;){var ae=I.dependencies;if(ae!==null){V=I.child;for(var he=ae.firstContext;he!==null;){if(he.context===T){if(I.tag===1){he=Ps(-1,x&-x),he.tag=2;var We=I.updateQueue;if(We!==null){We=We.shared;var ct=We.pending;ct===null?he.next=he:(he.next=ct.next,ct.next=he),We.pending=he}}I.lanes|=x,he=I.alternate,he!==null&&(he.lanes|=x),If(I.return,x,p),ae.lanes|=x;break}he=he.next}}else if(I.tag===10)V=I.type===p.type?null:I.child;else if(I.tag===18){if(V=I.return,V===null)throw Error(a(341));V.lanes|=x,ae=V.alternate,ae!==null&&(ae.lanes|=x),If(V,x,p),V=I.sibling}else V=I.child;if(V!==null)V.return=I;else for(V=I;V!==null;){if(V===p){V=null;break}if(I=V.sibling,I!==null){I.return=V.return,V=I;break}V=V.return}I=V}Fi(f,p,M.children,x),p=p.child}return p;case 9:return M=p.type,T=p.pendingProps.children,Ic(p,x),M=ho(M),T=T(M),p.flags|=1,Fi(f,p,T,x),p.child;case 14:return T=p.type,M=ua(T,p.pendingProps),M=ua(T.type,M),ml(f,p,T,M,x);case 15:return K2(f,p,p.type,p.pendingProps,x);case 17:return T=p.type,M=p.pendingProps,M=p.elementType===T?M:ua(T,M),qa(f,p),p.tag=1,fi(T)?(f=!0,ks(p)):f=!1,Ic(p,x),j2(p,T,M),K0(p,T,M,x),fa(null,p,T,!0,f,x);case 19:return nb(f,p,x);case 22:return Y2(f,p,x)}throw Error(a(156,p.tag))};function Hi(f,p){return Tc(f,p)}function Ka(f,p,x,T){this.tag=f,this.key=x,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=T,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fo(f,p,x,T){return new Ka(f,p,x,T)}function Pv(f){return f=f.prototype,!(!f||!f.isReactComponent)}function yg(f){if(typeof f=="function")return Pv(f)?1:0;if(f!=null){if(f=f.$$typeof,f===w)return 11;if(f===k)return 14}return 2}function vo(f,p){var x=f.alternate;return x===null?(x=Fo(f.tag,p,f.key,f.mode),x.elementType=f.elementType,x.type=f.type,x.stateNode=f.stateNode,x.alternate=f,f.alternate=x):(x.pendingProps=p,x.type=f.type,x.flags=0,x.subtreeFlags=0,x.deletions=null),x.flags=f.flags&14680064,x.childLanes=f.childLanes,x.lanes=f.lanes,x.child=f.child,x.memoizedProps=f.memoizedProps,x.memoizedState=f.memoizedState,x.updateQueue=f.updateQueue,p=f.dependencies,x.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},x.sibling=f.sibling,x.index=f.index,x.ref=f.ref,x}function Jf(f,p,x,T,M,I){var V=2;if(T=f,typeof f=="function")Pv(f)&&(V=1);else if(typeof f=="string")V=5;else e:switch(f){case d:return El(x.children,M,I,p);case h:V=8,M|=8;break;case m:return f=Fo(12,x,p,M|2),f.elementType=m,f.lanes=I,f;case E:return f=Fo(13,x,p,M),f.elementType=E,f.lanes=I,f;case _:return f=Fo(19,x,p,M),f.elementType=_,f.lanes=I,f;case L:return bg(x,M,I,p);default:if(typeof f=="object"&&f!==null)switch(f.$$typeof){case y:V=10;break e;case b:V=9;break e;case w:V=11;break e;case k:V=14;break e;case P:V=16,T=null;break e}throw Error(a(130,f==null?f:typeof f,""))}return p=Fo(V,x,p,M),p.elementType=f,p.type=T,p.lanes=I,p}function El(f,p,x,T){return f=Fo(7,f,T,p),f.lanes=x,f}function bg(f,p,x,T){return f=Fo(22,f,T,p),f.elementType=L,f.lanes=x,f.stateNode={isHidden:!1},f}function xg(f,p,x){return f=Fo(6,f,null,p),f.lanes=x,f}function Pl(f,p,x){return p=Fo(4,f.children!==null?f.children:[],f.key,p),p.lanes=x,p.stateNode={containerInfo:f.containerInfo,pendingChildren:null,implementation:f.implementation},p}function eh(f,p,x,T,M){this.tag=p,this.containerInfo=f,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=it,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Pc(0),this.expirationTimes=Pc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Pc(0),this.identifierPrefix=T,this.onRecoverableError=M,St&&(this.mutableSourceEagerHydrationData=null)}function sb(f,p,x,T,M,I,V,ae,he){return f=new eh(f,p,x,ae,he),p===1?(p=1,I===!0&&(p|=8)):p=0,I=Fo(3,null,null,p),f.current=I,I.stateNode=f,I.memoizedState={element:T,isDehydrated:x,cache:null,transitions:null,pendingSuspenseBoundaries:null},q0(I),f}function Tv(f){if(!f)return aa;f=f._reactInternals;e:{if(W(f)!==f||f.tag!==1)throw Error(a(170));var p=f;do{switch(p.tag){case 3:p=p.stateNode.context;break e;case 1:if(fi(p.type)){p=p.stateNode.__reactInternalMemoizedMergedChildContext;break e}}p=p.return}while(p!==null);throw Error(a(171))}if(f.tag===1){var x=f.type;if(fi(x))return vu(f,x,p)}return p}function Mv(f){var p=f._reactInternals;if(p===void 0)throw typeof f.render=="function"?Error(a(188)):(f=Object.keys(f).join(","),Error(a(268,f)));return f=ne(p),f===null?null:f.stateNode}function th(f,p){if(f=f.memoizedState,f!==null&&f.dehydrated!==null){var x=f.retryLane;f.retryLane=x!==0&&x=We&&I>=Rt&&M<=ct&&V<=rt){f.splice(p,1);break}else if(T!==We||x.width!==he.width||rtV){if(!(I!==Rt||x.height!==he.height||ctM)){We>T&&(he.width+=We-T,he.x=T),ctI&&(he.height+=Rt-I,he.y=I),rtx&&(x=V)),V ")+` + +No matching component was found for: + `)+f.join(" > ")}return null},n.getPublicRootInstance=function(f){if(f=f.current,!f.child)return null;switch(f.child.tag){case 5:return X(f.child.stateNode);default:return f.child.stateNode}},n.injectIntoDevTools=function(f){if(f={bundleType:f.bundleType,version:f.version,rendererPackageName:f.rendererPackageName,rendererConfig:f.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:Sg,findFiberByHostInstance:f.findFiberByHostInstance||Lv,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")f=!1;else{var p=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(p.isDisabled||!p.supportsFiber)f=!0;else{try{hn=p.inject(f),Yt=p}catch{}f=!!p.checkDCE}}return f},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(f,p,x,T){if(!se)throw Error(a(363));f=yv(f,p);var M=Lt(f,x,T).disconnect;return{disconnect:function(){M()}}},n.registerMutableSourceForHydration=function(f,p){var x=p._getVersion;x=x(p._source),f.mutableSourceEagerHydrationData==null?f.mutableSourceEagerHydrationData=[p,x]:f.mutableSourceEagerHydrationData.push(p,x)},n.runWithPriority=function(f,p){var x=Kt;try{return Kt=f,p()}finally{Kt=x}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(f,p,x,T){var M=p.current,I=Ei(),V=Yr(M);return x=Tv(x),p.context===null?p.context=x:p.pendingContext=x,p=Ps(I,V),p.payload={element:f},T=T===void 0?null:T,T!==null&&(p.callback=T),f=pl(M,p,V),f!==null&&($o(f,M,V,I),zp(f,M,V)),V},n};(function(e){e.exports=oTe})(iTe);const aTe=T7(f7);var H3={},sTe={get exports(){return H3},set exports(e){H3=e}},Cp={};/** + * @license React + * react-reconciler-constants.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */Cp.ConcurrentRoot=1;Cp.ContinuousEventPriority=4;Cp.DefaultEventPriority=16;Cp.DiscreteEventPriority=1;Cp.IdleEventPriority=536870912;Cp.LegacyRoot=0;(function(e){e.exports=Cp})(sTe);const PD={children:!0,ref:!0,key:!0,style:!0,forwardedRef:!0,unstable_applyCache:!0,unstable_applyDrawHitFromCache:!0};let TD=!1,MD=!1;const SP=".react-konva-event",lTe=`ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled. +Position of a node will be changed during drag&drop, so you should update state of the react app as well. +Consider to add onDragMove or onDragEnd events. +For more info see: https://github.com/konvajs/react-konva/issues/256 +`,uTe=`ReactKonva: You are using "zIndex" attribute for a Konva node. +react-konva may get confused with ordering. Just define correct order of elements in your render function of a component. +For more info see: https://github.com/konvajs/react-konva/issues/194 +`,cTe={};function T4(e,t,n=cTe){if(!TD&&"zIndex"in t&&(console.warn(uTe),TD=!0),!MD&&t.draggable){var r=t.x!==void 0||t.y!==void 0,i=t.onDragEnd||t.onDragMove;r&&!i&&(console.warn(lTe),MD=!0)}for(var o in n)if(!PD[o]){var a=o.slice(0,2)==="on",s=n[o]!==t[o];if(a&&s){var l=o.substr(2).toLowerCase();l.substr(0,7)==="content"&&(l="content"+l.substr(7,1).toUpperCase()+l.substr(8)),e.off(l,n[o])}var u=!t.hasOwnProperty(o);u&&e.setAttr(o,void 0)}var d=t._useStrictMode,h={},m=!1;const y={};for(var o in t)if(!PD[o]){var a=o.slice(0,2)==="on",b=n[o]!==t[o];if(a&&b){var l=o.substr(2).toLowerCase();l.substr(0,7)==="content"&&(l="content"+l.substr(7,1).toUpperCase()+l.substr(8)),t[o]&&(y[l]=t[o])}!a&&(t[o]!==n[o]||d&&t[o]!==e.getAttr(o))&&(m=!0,h[o]=t[o])}m&&(e.setAttrs(h),mf(e));for(var l in y)e.on(l+SP,y[l])}function mf(e){if(!ft.autoDrawEnabled){var t=e.getLayer()||e.getStage();t&&t.batchDraw()}}const Mq={},dTe={};rp.Node.prototype._applyProps=T4;function fTe(e,t){if(typeof t=="string"){console.error(`Do not use plain text as child of Konva.Node. You are using text: ${t}`);return}e.add(t),mf(e)}function hTe(e,t,n){let r=rp[e];r||(console.error(`Konva has no node with the type ${e}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${e}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),r=rp.Group);const i={},o={};for(var a in t){var s=a.slice(0,2)==="on";s?o[a]=t[a]:i[a]=t[a]}const l=new r(i);return T4(l,o),l}function pTe(e,t,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${e}"`)}function gTe(e,t,n){return!1}function mTe(e){return e}function vTe(){return null}function yTe(){return null}function bTe(e,t,n,r){return dTe}function xTe(){}function STe(e){}function wTe(e,t){return!1}function CTe(){return Mq}function _Te(){return Mq}const kTe=setTimeout,ETe=clearTimeout,PTe=-1;function TTe(e,t){return!1}const MTe=!1,LTe=!0,ATe=!0;function OTe(e,t){t.parent===e?t.moveToTop():e.add(t),mf(e)}function ITe(e,t){t.parent===e?t.moveToTop():e.add(t),mf(e)}function Lq(e,t,n){t._remove(),e.add(t),t.setZIndex(n.getZIndex()),mf(e)}function RTe(e,t,n){Lq(e,t,n)}function DTe(e,t){t.destroy(),t.off(SP),mf(e)}function jTe(e,t){t.destroy(),t.off(SP),mf(e)}function NTe(e,t,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function $Te(e,t,n){}function FTe(e,t,n,r,i){T4(e,i,r)}function BTe(e){e.hide(),mf(e)}function zTe(e){}function HTe(e,t){(t.visible==null||t.visible)&&e.show()}function WTe(e,t){}function VTe(e){}function UTe(){}const GTe=()=>H3.DefaultEventPriority,qTe=Object.freeze(Object.defineProperty({__proto__:null,appendChild:OTe,appendChildToContainer:ITe,appendInitialChild:fTe,cancelTimeout:ETe,clearContainer:VTe,commitMount:$Te,commitTextUpdate:NTe,commitUpdate:FTe,createInstance:hTe,createTextInstance:pTe,detachDeletedInstance:UTe,finalizeInitialChildren:gTe,getChildHostContext:_Te,getCurrentEventPriority:GTe,getPublicInstance:mTe,getRootHostContext:CTe,hideInstance:BTe,hideTextInstance:zTe,idlePriority:Oh.unstable_IdlePriority,insertBefore:Lq,insertInContainerBefore:RTe,isPrimaryRenderer:MTe,noTimeout:PTe,now:Oh.unstable_now,prepareForCommit:vTe,preparePortalMount:yTe,prepareUpdate:bTe,removeChild:DTe,removeChildFromContainer:jTe,resetAfterCommit:xTe,resetTextContent:STe,run:Oh.unstable_runWithPriority,scheduleTimeout:kTe,shouldDeprioritizeSubtree:wTe,shouldSetTextContent:TTe,supportsMutation:ATe,unhideInstance:HTe,unhideTextInstance:WTe,warnsIfNotActing:LTe},Symbol.toStringTag,{value:"Module"}));var KTe=Object.defineProperty,YTe=Object.defineProperties,XTe=Object.getOwnPropertyDescriptors,LD=Object.getOwnPropertySymbols,ZTe=Object.prototype.hasOwnProperty,QTe=Object.prototype.propertyIsEnumerable,AD=(e,t,n)=>t in e?KTe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,OD=(e,t)=>{for(var n in t||(t={}))ZTe.call(t,n)&&AD(e,n,t[n]);if(LD)for(var n of LD(t))QTe.call(t,n)&&AD(e,n,t[n]);return e},JTe=(e,t)=>YTe(e,XTe(t));function Aq(e,t,n){if(!e)return;if(n(e)===!0)return e;let r=t?e.return:e.child;for(;r;){const i=Aq(r,t,n);if(i)return i;r=t?null:r.sibling}}function Oq(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}const wP=Oq(S.createContext(null));class Iq extends S.Component{render(){return S.createElement(wP.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:eMe,ReactCurrentDispatcher:tMe}=S.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function nMe(){const e=S.useContext(wP);if(!e)throw new Error("its-fine: useFiber must be called within a !");const t=S.useId();return S.useMemo(()=>{var r;return(r=eMe.current)!=null?r:Aq(e,!1,i=>{let o=i.memoizedState;for(;o;){if(o.memoizedState===t)return!0;o=o.next}})},[e,t])}function rMe(){var e,t;const n=nMe(),[r]=S.useState(()=>new Map);r.clear();let i=n;for(;i;){const o=(e=i.type)==null?void 0:e._context;o&&o!==wP&&!r.has(o)&&r.set(o,(t=tMe.current)==null?void 0:t.readContext(Oq(o))),i=i.return}return S.useMemo(()=>Array.from(r.keys()).reduce((o,a)=>s=>S.createElement(o,null,S.createElement(a.Provider,JTe(OD({},s),{value:r.get(a)}))),o=>S.createElement(Iq,OD({},o))),[r])}function iMe(e){const t=Ke.useRef();return Ke.useLayoutEffect(()=>{t.current=e}),t.current}const oMe=e=>{const t=Ke.useRef(),n=Ke.useRef(),r=Ke.useRef(),i=iMe(e),o=rMe(),a=s=>{const{forwardedRef:l}=e;l&&(typeof l=="function"?l(s):l.current=s)};return Ke.useLayoutEffect(()=>(n.current=new rp.Stage({width:e.width,height:e.height,container:t.current}),a(n.current),r.current=E1.createContainer(n.current,H3.LegacyRoot,!1,null),E1.updateContainer(Ke.createElement(o,{},e.children),r.current),()=>{rp.isBrowser&&(a(null),E1.updateContainer(null,r.current,null),n.current.destroy())}),[]),Ke.useLayoutEffect(()=>{a(n.current),T4(n.current,e,i),E1.updateContainer(Ke.createElement(o,{},e.children),r.current,null)}),Ke.createElement("div",{ref:t,accessKey:e.accessKey,className:e.className,role:e.role,style:e.style,tabIndex:e.tabIndex,title:e.title})},o1="Layer",dc="Group",fc="Rect",uh="Circle",W3="Line",Rq="Image",aMe="Transformer",E1=aTe(qTe);E1.injectIntoDevTools({findHostInstanceByFiber:()=>null,bundleType:0,version:Ke.version,rendererPackageName:"react-konva"});const sMe=Ke.forwardRef((e,t)=>Ke.createElement(Iq,{},Ke.createElement(oMe,{...e,forwardedRef:t}))),lMe=lt([an,Or],(e,t)=>{const{tool:n,isMovingBoundingBox:r}=e;return{tool:n,isStaging:t,isMovingBoundingBox:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),uMe=()=>{const e=Te(),{tool:t,isStaging:n,isMovingBoundingBox:r}=le(lMe);return{handleDragStart:S.useCallback(()=>{(t==="move"||n)&&!r&&e(k3(!0))},[e,r,n,t]),handleDragMove:S.useCallback(i=>{if(!((t==="move"||n)&&!r))return;const o={x:i.target.x(),y:i.target.y()};e(lV(o))},[e,r,n,t]),handleDragEnd:S.useCallback(()=>{(t==="move"||n)&&!r&&e(k3(!1))},[e,r,n,t])}},cMe=lt([an,Hr,Or],(e,t,n)=>{const{cursorPosition:r,shouldLockBoundingBox:i,shouldShowBoundingBox:o,tool:a,isMaskEnabled:s,shouldSnapToGrid:l}=e;return{activeTabName:t,isCursorOnCanvas:Boolean(r),shouldLockBoundingBox:i,shouldShowBoundingBox:o,tool:a,isStaging:n,isMaskEnabled:s,shouldSnapToGrid:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),dMe=()=>{const e=Te(),{activeTabName:t,shouldShowBoundingBox:n,tool:r,isStaging:i,isMaskEnabled:o,shouldSnapToGrid:a}=le(cMe),s=S.useRef(null),l=KU(),u=()=>e(xE());Ze(["shift+c"],()=>{u()},{enabled:()=>!i,preventDefault:!0},[]);const d=()=>e(m2(!o));Ze(["h"],()=>{d()},{enabled:()=>!i,preventDefault:!0},[o]),Ze(["n"],()=>{e(P3(!a))},{enabled:!0,preventDefault:!0},[a]),Ze("esc",()=>{e(M3e())},{enabled:()=>!0,preventDefault:!0}),Ze("shift+h",()=>{e(j3e(!n))},{enabled:()=>!i,preventDefault:!0},[t,n]),Ze(["space"],h=>{h.repeat||(l==null||l.container().focus(),r!=="move"&&(s.current=r,e(tu("move"))),r==="move"&&s.current&&s.current!=="move"&&(e(tu(s.current)),s.current="move"))},{keyup:!0,keydown:!0,preventDefault:!0},[r,s])},CP=e=>{const t=e.getPointerPosition(),n=e.getAbsoluteTransform().copy();if(!t||!n)return;const r=n.invert().point(t);return{x:r.x,y:r.y}},Dq=()=>{const e=Te(),t=tl(),n=KU();return{updateColorUnderCursor:()=>{if(!n||!t)return;const r=n.getPointerPosition();if(!r)return;const i=Vg.pixelRatio,[o,a,s,l]=t.getContext().getImageData(r.x*i,r.y*i,1,1).data;e(I3e({r:o,g:a,b:s,a:l}))},commitColorUnderCursor:()=>{e(w3e())}}},fMe=lt([Hr,an,Or],(e,t,n)=>{const{tool:r}=t;return{tool:r,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),hMe=e=>{const t=Te(),{tool:n,isStaging:r}=le(fMe),{commitColorUnderCursor:i}=Dq();return S.useCallback(o=>{if(!e.current)return;if(e.current.container().focus(),n==="move"||r){t(k3(!0));return}if(n==="colorPicker"){i();return}const a=CP(e.current);a&&(o.evt.preventDefault(),t(JW(!0)),t(S3e([a.x,a.y])))},[e,n,r,t,i])},pMe=lt([Hr,an,Or],(e,t,n)=>{const{tool:r,isDrawing:i}=t;return{tool:r,isDrawing:i,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),gMe=(e,t,n)=>{const r=Te(),{isDrawing:i,tool:o,isStaging:a}=le(pMe),{updateColorUnderCursor:s}=Dq();return S.useCallback(()=>{if(!e.current)return;const l=CP(e.current);if(l){if(r(R3e(l)),n.current=l,o==="colorPicker"){s();return}!i||o==="move"||a||(t.current=!0,r(XW([l.x,l.y])))}},[t,r,i,a,n,e,o,s])},mMe=()=>{const e=Te();return S.useCallback(()=>{e(k3e())},[e])},vMe=lt([Hr,an,Or],(e,t,n)=>{const{tool:r,isDrawing:i}=t;return{tool:r,isDrawing:i,activeTabName:e,isStaging:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),yMe=(e,t)=>{const n=Te(),{tool:r,isDrawing:i,isStaging:o}=le(vMe);return S.useCallback(()=>{if(r==="move"||o){n(k3(!1));return}if(!t.current&&i&&e.current){const a=CP(e.current);if(!a)return;n(XW([a.x,a.y]))}else t.current=!1;n(JW(!1))},[t,n,i,o,e,r])},bMe=lt([an],e=>{const{isMoveStageKeyHeld:t,stageScale:n}=e;return{isMoveStageKeyHeld:t,stageScale:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),xMe=e=>{const t=Te(),{isMoveStageKeyHeld:n,stageScale:r}=le(bMe);return S.useCallback(i=>{if(!e.current||n)return;i.evt.preventDefault();const o=e.current.getPointerPosition();if(!o)return;const a={x:(o.x-e.current.x())/r,y:(o.y-e.current.y())/r};let s=i.evt.deltaY;i.evt.ctrlKey&&(s=-s);const l=Pe.clamp(r*c3e**s,d3e,f3e),u={x:o.x-a.x*l,y:o.y-a.y*l};t($3e(l)),t(lV(u))},[e,n,r,t])},SMe=lt(an,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageDimensions:r,stageScale:i,shouldDarkenOutsideBoundingBox:o,stageCoordinates:a}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,shouldDarkenOutsideBoundingBox:o,stageCoordinates:a,stageDimensions:r,stageScale:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),wMe=()=>{const{boundingBoxCoordinates:e,boundingBoxDimensions:t,shouldDarkenOutsideBoundingBox:n,stageCoordinates:r,stageDimensions:i,stageScale:o}=le(SMe);return g.jsxs(dc,{children:[g.jsx(fc,{offsetX:r.x/o,offsetY:r.y/o,height:i.height/o,width:i.width/o,fill:"rgba(0,0,0,0.4)",listening:!1,visible:n}),g.jsx(fc,{x:e.x,y:e.y,width:t.width,height:t.height,fill:"rgb(255,255,255)",listening:!1,visible:n,globalCompositeOperation:"destination-out"})]})},CMe=lt([an],e=>{const{stageScale:t,stageCoordinates:n,stageDimensions:r}=e;return{stageScale:t,stageCoordinates:n,stageDimensions:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),_Me={dark:"rgba(255, 255, 255, 0.2)",green:"rgba(255, 255, 255, 0.2)",light:"rgba(0, 0, 0, 0.2)"},kMe=()=>{const{colorMode:e}=sp(),{stageScale:t,stageCoordinates:n,stageDimensions:r}=le(CMe),[i,o]=S.useState([]),a=S.useCallback(s=>s/t,[t]);return S.useLayoutEffect(()=>{const s=_Me[e],{width:l,height:u}=r,{x:d,y:h}=n,m={x1:0,y1:0,x2:l,y2:u,offset:{x:a(d),y:a(h)}},y={x:Math.ceil(a(d)/64)*64,y:Math.ceil(a(h)/64)*64},b={x1:-y.x,y1:-y.y,x2:a(l)-y.x+64,y2:a(u)-y.y+64},E={x1:Math.min(m.x1,b.x1),y1:Math.min(m.y1,b.y1),x2:Math.max(m.x2,b.x2),y2:Math.max(m.y2,b.y2)},_=E.x2-E.x1,k=E.y2-E.y1,P=Math.round(_/64)+1,L=Math.round(k/64)+1,O=Pe.range(0,P).map(R=>g.jsx(W3,{x:E.x1+R*64,y:E.y1,points:[0,0,0,k],stroke:s,strokeWidth:1},`x_${R}`)),D=Pe.range(0,L).map(R=>g.jsx(W3,{x:E.x1,y:E.y1+R*64,points:[0,0,_,0],stroke:s,strokeWidth:1},`y_${R}`));o(O.concat(D))},[t,n,r,e,a]),g.jsx(dc,{children:i})},EMe=lt([e=>e.gallery],e=>e.intermediateImage?e.intermediateImage:null,{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),PMe=e=>{const{...t}=e,n=le(EMe),[r,i]=S.useState(null);if(S.useEffect(()=>{if(!n)return;const u=new Image;u.onload=()=>{i(u)},u.src=n.url},[n]),!(n!=null&&n.boundingBox))return null;const{boundingBox:{x:o,y:a,width:s,height:l}}=n;return r?g.jsx(Rq,{x:o,y:a,width:s,height:l,image:r,listening:!1,...t}):null},Gh=e=>{const{r:t,g:n,b:r,a:i}=e;return`rgba(${t}, ${n}, ${r}, ${i})`},TMe=lt(an,e=>{const{maskColor:t,stageCoordinates:n,stageDimensions:r,stageScale:i}=e;return{stageCoordinates:n,stageDimensions:r,stageScale:i,maskColorString:Gh(t)}}),ID=e=>`data:image/svg+xml;utf8, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`.replaceAll("black",e),MMe=e=>{const{...t}=e,{maskColorString:n,stageCoordinates:r,stageDimensions:i,stageScale:o}=le(TMe),[a,s]=S.useState(null),[l,u]=S.useState(0),d=S.useRef(null),h=S.useCallback(()=>{u(l+1),setTimeout(h,500)},[l]);return S.useEffect(()=>{if(a)return;const m=new Image;m.onload=()=>{s(m)},m.src=ID(n)},[a,n]),S.useEffect(()=>{a&&(a.src=ID(n))},[a,n]),S.useEffect(()=>{const m=setInterval(()=>u(y=>(y+1)%5),50);return()=>clearInterval(m)},[]),!a||!Pe.isNumber(r.x)||!Pe.isNumber(r.y)||!Pe.isNumber(o)||!Pe.isNumber(i.width)||!Pe.isNumber(i.height)?null:g.jsx(fc,{ref:d,offsetX:r.x/o,offsetY:r.y/o,height:i.height/o,width:i.width/o,fillPatternImage:a,fillPatternOffsetY:Pe.isNumber(l)?l:0,fillPatternRepeat:"repeat",fillPatternScale:{x:1/o,y:1/o},listening:!0,globalCompositeOperation:"source-in",...t})},LMe=lt([an],e=>({objects:e.layerState.objects}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),AMe=e=>{const{...t}=e,{objects:n}=le(LMe);return g.jsx(dc,{listening:!1,...t,children:n.filter(bE).map((r,i)=>g.jsx(W3,{points:r.points,stroke:"rgb(0,0,0)",strokeWidth:r.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:r.tool==="brush"?"source-over":"destination-out"},i))})};var ch=S,OMe=function(t,n,r){const i=ch.useRef("loading"),o=ch.useRef(),[a,s]=ch.useState(0),l=ch.useRef(),u=ch.useRef(),d=ch.useRef();return(l.current!==t||u.current!==n||d.current!==r)&&(i.current="loading",o.current=void 0,l.current=t,u.current=n,d.current=r),ch.useLayoutEffect(function(){if(!t)return;var h=document.createElement("img");function m(){i.current="loaded",o.current=h,s(Math.random())}function y(){i.current="failed",o.current=void 0,s(Math.random())}return h.addEventListener("load",m),h.addEventListener("error",y),n&&(h.crossOrigin=n),r&&(h.referrerpolicy=r),h.src=t,function(){h.removeEventListener("load",m),h.removeEventListener("error",y)}},[t,n,r]),[o.current,i.current]};const jq=e=>{const{url:t,x:n,y:r}=e,[i]=OMe(t);return g.jsx(Rq,{x:n,y:r,image:i,listening:!1})},IMe=lt([an],e=>{const{layerState:{objects:t}}=e;return{objects:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),RMe=()=>{const{objects:e}=le(IMe);return e?g.jsx(dc,{name:"outpainting-objects",listening:!1,children:e.map((t,n)=>{if(_3(t))return g.jsx(jq,{x:t.x,y:t.y,url:t.image.url},n);if(g3e(t)){const r=g.jsx(W3,{points:t.points,stroke:t.color?Gh(t.color):"rgb(0,0,0)",strokeWidth:t.strokeWidth*2,tension:0,lineCap:"round",lineJoin:"round",shadowForStrokeEnabled:!1,listening:!1,globalCompositeOperation:t.tool==="brush"?"source-over":"destination-out"},n);return t.clip?g.jsx(dc,{clipX:t.clip.x,clipY:t.clip.y,clipWidth:t.clip.width,clipHeight:t.clip.height,children:r},n):r}else{if(m3e(t))return g.jsx(fc,{x:t.x,y:t.y,width:t.width,height:t.height,fill:Gh(t.color)},n);if(v3e(t))return g.jsx(fc,{x:t.x,y:t.y,width:t.width,height:t.height,fill:"rgb(255, 255, 255)",globalCompositeOperation:"destination-out"},n)}})}):null},DMe=lt([an],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingImage:r,shouldShowStagingOutline:i,boundingBoxCoordinates:{x:o,y:a},boundingBoxDimensions:{width:s,height:l}}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:r,shouldShowStagingOutline:i,x:o,y:a,width:s,height:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),jMe=e=>{const{...t}=e,{currentStagingAreaImage:n,shouldShowStagingImage:r,shouldShowStagingOutline:i,x:o,y:a,width:s,height:l}=le(DMe);return g.jsxs(dc,{...t,children:[r&&n&&g.jsx(jq,{url:n.image.url,x:o,y:a}),i&&g.jsxs(dc,{children:[g.jsx(fc,{x:o,y:a,width:s,height:l,strokeWidth:1,stroke:"white",strokeScaleEnabled:!1}),g.jsx(fc,{x:o,y:a,width:s,height:l,dash:[4,4],strokeWidth:1,stroke:"black",strokeScaleEnabled:!1})]})]})},NMe=lt([an],e=>{const{layerState:{stagingArea:{images:t,selectedImageIndex:n}},shouldShowStagingOutline:r,shouldShowStagingImage:i}=e;return{currentStagingAreaImage:t.length>0?t[n]:void 0,isOnFirstImage:n===0,isOnLastImage:n===t.length-1,shouldShowStagingImage:i,shouldShowStagingOutline:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),$Me=()=>{const e=Te(),{isOnFirstImage:t,isOnLastImage:n,currentStagingAreaImage:r,shouldShowStagingImage:i}=le(NMe),{t:o}=De(),a=S.useCallback(()=>{e(rI(!0))},[e]),s=S.useCallback(()=>{e(rI(!1))},[e]);Ze(["left"],()=>{l()},{enabled:()=>!0,preventDefault:!0}),Ze(["right"],()=>{u()},{enabled:()=>!0,preventDefault:!0}),Ze(["enter"],()=>{d()},{enabled:()=>!0,preventDefault:!0});const l=()=>e(P3e()),u=()=>e(E3e()),d=()=>e(C3e());return r?g.jsx(Re,{pos:"absolute",bottom:"1rem",w:"100%",align:"center",justify:"center",filter:"drop-shadow(0 0.5rem 1rem rgba(0,0,0))",onMouseOver:a,onMouseOut:s,children:g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{tooltip:`${o("unifiedCanvas.previous")} (Left)`,"aria-label":`${o("unifiedCanvas.previous")} (Left)`,icon:g.jsx(Rke,{}),onClick:l,colorScheme:"accent",isDisabled:t}),g.jsx(Ye,{tooltip:`${o("unifiedCanvas.next")} (Right)`,"aria-label":`${o("unifiedCanvas.next")} (Right)`,icon:g.jsx(Dke,{}),onClick:u,colorScheme:"accent",isDisabled:n}),g.jsx(Ye,{tooltip:`${o("unifiedCanvas.accept")} (Enter)`,"aria-label":`${o("unifiedCanvas.accept")} (Enter)`,icon:g.jsx(y4,{}),onClick:d,colorScheme:"accent"}),g.jsx(Ye,{tooltip:o("unifiedCanvas.showHide"),"aria-label":o("unifiedCanvas.showHide"),"data-alert":!i,icon:i?g.jsx(Hke,{}):g.jsx(zke,{}),onClick:()=>e(N3e(!i)),colorScheme:"accent"}),g.jsx(Ye,{tooltip:o("unifiedCanvas.saveToGallery"),"aria-label":o("unifiedCanvas.saveToGallery"),icon:g.jsx(WE,{}),onClick:()=>e(j_e(r.image.url)),colorScheme:"accent"}),g.jsx(Ye,{tooltip:o("unifiedCanvas.discardAll"),"aria-label":o("unifiedCanvas.discardAll"),icon:g.jsx(S2,{style:{transform:"rotate(45deg)"}}),onClick:()=>e(_3e()),colorScheme:"error",fontSize:20})]})}):null},mm=e=>Math.round(e*100)/100,FMe=lt([an],e=>{const{cursorPosition:t}=e,{cursorX:n,cursorY:r}=t?{cursorX:t.x,cursorY:t.y}:{cursorX:-1,cursorY:-1};return{cursorCoordinatesString:`(${mm(n)}, ${mm(r)})`}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function BMe(){const{cursorCoordinatesString:e}=le(FMe),{t}=De();return g.jsx("div",{children:`${t("unifiedcanvas:cursorPosition")}: ${e}`})}const zMe=lt([an],e=>{const{stageDimensions:{width:t,height:n},stageCoordinates:{x:r,y:i},boundingBoxDimensions:{width:o,height:a},scaledBoundingBoxDimensions:{width:s,height:l},boundingBoxCoordinates:{x:u,y:d},stageScale:h,shouldShowCanvasDebugInfo:m,layer:y,boundingBoxScaleMethod:b,shouldPreserveMaskedArea:w}=e;let E="inherit";return(b==="none"&&(o<512||a<512)||b==="manual"&&s*l<512*512)&&(E="var(--status-working-color)"),{activeLayerColor:y==="mask"?"var(--status-working-color)":"inherit",activeLayerString:y.charAt(0).toUpperCase()+y.slice(1),boundingBoxColor:E,boundingBoxCoordinatesString:`(${mm(u)}, ${mm(d)})`,boundingBoxDimensionsString:`${o}×${a}`,scaledBoundingBoxDimensionsString:`${s}×${l}`,canvasCoordinatesString:`${mm(r)}×${mm(i)}`,canvasDimensionsString:`${t}×${n}`,canvasScaleString:Math.round(h*100),shouldShowCanvasDebugInfo:m,shouldShowBoundingBox:b!=="auto",shouldShowScaledBoundingBox:b!=="none",shouldPreserveMaskedArea:w}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),HMe=()=>{const{activeLayerColor:e,activeLayerString:t,boundingBoxColor:n,boundingBoxCoordinatesString:r,boundingBoxDimensionsString:i,scaledBoundingBoxDimensionsString:o,shouldShowScaledBoundingBox:a,canvasCoordinatesString:s,canvasDimensionsString:l,canvasScaleString:u,shouldShowCanvasDebugInfo:d,shouldShowBoundingBox:h,shouldPreserveMaskedArea:m}=le(zMe),{t:y}=De();return g.jsxs("div",{className:"canvas-status-text",children:[g.jsx("div",{style:{color:e},children:`${y("unifiedCanvas.activeLayer")}: ${t}`}),g.jsx("div",{children:`${y("unifiedCanvas.canvasScale")}: ${u}%`}),m&&g.jsx("div",{style:{color:"var(--status-working-color)"},children:"Preserve Masked Area: On"}),h&&g.jsx("div",{style:{color:n},children:`${y("unifiedcanvas:boundingBox")}: ${i}`}),a&&g.jsx("div",{style:{color:n},children:`${y("unifiedcanvas:scaledBoundingBox")}: ${o}`}),d&&g.jsxs(g.Fragment,{children:[g.jsx("div",{children:`${y("unifiedcanvas:boundingBoxPosition")}: ${r}`}),g.jsx("div",{children:`${y("unifiedcanvas:canvasDimensions")}: ${l}`}),g.jsx("div",{children:`${y("unifiedcanvas:canvasPosition")}: ${s}`}),g.jsx(BMe,{})]})]})},WMe=lt(an,e=>{const{boundingBoxCoordinates:t,boundingBoxDimensions:n,stageScale:r,isDrawing:i,isTransformingBoundingBox:o,isMovingBoundingBox:a,tool:s,shouldSnapToGrid:l}=e;return{boundingBoxCoordinates:t,boundingBoxDimensions:n,isDrawing:i,isMovingBoundingBox:a,isTransformingBoundingBox:o,stageScale:r,shouldSnapToGrid:l,tool:s,hitStrokeWidth:20/r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),VMe=e=>{const{...t}=e,n=Te(),{boundingBoxCoordinates:r,boundingBoxDimensions:i,isDrawing:o,isMovingBoundingBox:a,isTransformingBoundingBox:s,stageScale:l,shouldSnapToGrid:u,tool:d,hitStrokeWidth:h}=le(WMe),m=S.useRef(null),y=S.useRef(null),[b,w]=S.useState(!1);S.useEffect(()=>{var ne;!m.current||!y.current||(m.current.nodes([y.current]),(ne=m.current.getLayer())==null||ne.batchDraw())},[]);const E=64*l,_=S.useCallback(ne=>{if(!u){n(BC({x:Math.floor(ne.target.x()),y:Math.floor(ne.target.y())}));return}const z=ne.target.x(),$=ne.target.y(),U=Vl(z,64),X=Vl($,64);ne.target.x(U),ne.target.y(X),n(BC({x:U,y:X}))},[n,u]),k=S.useCallback(()=>{if(!y.current)return;const ne=y.current,z=ne.scaleX(),$=ne.scaleY(),U=Math.round(ne.width()*z),X=Math.round(ne.height()*$),Q=Math.round(ne.x()),G=Math.round(ne.y());n(b1({width:U,height:X})),n(BC({x:u?kd(Q,64):Q,y:u?kd(G,64):G})),ne.scaleX(1),ne.scaleY(1)},[n,u]),P=S.useCallback((ne,z,$)=>{const U=ne.x%E,X=ne.y%E;return{x:kd(z.x,E)+U,y:kd(z.y,E)+X}},[E]),L=()=>{n(HC(!0))},O=()=>{n(HC(!1)),n(zC(!1)),n(tx(!1)),w(!1)},D=()=>{n(zC(!0))},R=()=>{n(HC(!1)),n(zC(!1)),n(tx(!1)),w(!1)},N=()=>{w(!0)},W=()=>{!s&&!a&&w(!1)},B=()=>{n(tx(!0))},K=()=>{n(tx(!1))};return g.jsxs(dc,{...t,children:[g.jsx(fc,{height:i.height,width:i.width,x:r.x,y:r.y,onMouseEnter:B,onMouseOver:B,onMouseLeave:K,onMouseOut:K}),g.jsx(fc,{draggable:!0,fillEnabled:!1,height:i.height,hitStrokeWidth:h,listening:!o&&d==="move",onDragStart:D,onDragEnd:R,onDragMove:_,onMouseDown:D,onMouseOut:W,onMouseOver:N,onMouseEnter:N,onMouseUp:R,onTransform:k,onTransformEnd:O,ref:y,stroke:b?"rgba(255,255,255,0.7)":"white",strokeWidth:(b?8:1)/l,width:i.width,x:r.x,y:r.y}),g.jsx(aMe,{anchorCornerRadius:3,anchorDragBoundFunc:P,anchorFill:"rgba(212,216,234,1)",anchorSize:15,anchorStroke:"rgb(42,42,42)",borderDash:[4,4],borderEnabled:!0,borderStroke:"black",draggable:!1,enabledAnchors:d==="move"?void 0:[],flipEnabled:!1,ignoreStroke:!0,keepRatio:!1,listening:!o&&d==="move",onDragStart:D,onDragEnd:R,onMouseDown:L,onMouseUp:O,onTransformEnd:O,ref:m,rotateEnabled:!1})]})},UMe=lt(an,e=>{const{cursorPosition:t,brushSize:n,colorPickerColor:r,maskColor:i,brushColor:o,tool:a,layer:s,shouldShowBrush:l,isMovingBoundingBox:u,isTransformingBoundingBox:d,stageScale:h,stageDimensions:m,boundingBoxCoordinates:y,boundingBoxDimensions:b,shouldRestrictStrokesToBox:w}=e,E=w?{clipX:y.x,clipY:y.y,clipWidth:b.width,clipHeight:b.height}:{};return{cursorPosition:t,brushX:t?t.x:m.width/2,brushY:t?t.y:m.height/2,radius:n/2,colorPickerOuterRadius:tI/h,colorPickerInnerRadius:(tI-Sk+1)/h,maskColorString:Gh({...i,a:.5}),brushColorString:Gh(o),colorPickerColorString:Gh(r),tool:a,layer:s,shouldShowBrush:l,shouldDrawBrushPreview:!(u||d||!t)&&l,strokeWidth:1.5/h,dotRadius:1.5/h,clip:E}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),GMe=e=>{const{...t}=e,{brushX:n,brushY:r,radius:i,maskColorString:o,tool:a,layer:s,shouldDrawBrushPreview:l,dotRadius:u,strokeWidth:d,brushColorString:h,colorPickerColorString:m,colorPickerInnerRadius:y,colorPickerOuterRadius:b,clip:w}=le(UMe);return l?g.jsxs(dc,{listening:!1,...w,...t,children:[a==="colorPicker"?g.jsxs(g.Fragment,{children:[g.jsx(uh,{x:n,y:r,radius:b,stroke:h,strokeWidth:Sk,strokeScaleEnabled:!1}),g.jsx(uh,{x:n,y:r,radius:y,stroke:m,strokeWidth:Sk,strokeScaleEnabled:!1})]}):g.jsxs(g.Fragment,{children:[g.jsx(uh,{x:n,y:r,radius:i,fill:s==="mask"?o:h,globalCompositeOperation:a==="eraser"?"destination-out":"source-out"}),g.jsx(uh,{x:n,y:r,radius:i,stroke:"rgba(255,255,255,0.4)",strokeWidth:d*2,strokeEnabled:!0,listening:!1}),g.jsx(uh,{x:n,y:r,radius:i,stroke:"rgba(0,0,0,1)",strokeWidth:d,strokeEnabled:!0,listening:!1})]}),g.jsx(uh,{x:n,y:r,radius:u*2,fill:"rgba(255,255,255,0.4)",listening:!1}),g.jsx(uh,{x:n,y:r,radius:u,fill:"rgba(0,0,0,1)",listening:!1})]}):null},qMe=lt([an,Or],(e,t)=>{const{isMaskEnabled:n,stageScale:r,shouldShowBoundingBox:i,isTransformingBoundingBox:o,isMouseOverBoundingBox:a,isMovingBoundingBox:s,stageDimensions:l,stageCoordinates:u,tool:d,isMovingStage:h,shouldShowIntermediates:m,shouldShowGrid:y,shouldRestrictStrokesToBox:b}=e;let w="none";return d==="move"||t?h?w="grabbing":w="grab":o?w=void 0:b&&!a&&(w="default"),{isMaskEnabled:n,isModifyingBoundingBox:o||s,shouldShowBoundingBox:i,shouldShowGrid:y,stageCoordinates:u,stageCursor:w,stageDimensions:l,stageScale:r,tool:d,isStaging:t,shouldShowIntermediates:m}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),Nq=()=>{const{isMaskEnabled:e,isModifyingBoundingBox:t,shouldShowBoundingBox:n,shouldShowGrid:r,stageCoordinates:i,stageCursor:o,stageDimensions:a,stageScale:s,tool:l,isStaging:u,shouldShowIntermediates:d}=le(qMe);dMe();const h=S.useRef(null),m=S.useRef(null),y=S.useCallback(W=>{p_e(W),h.current=W},[]),b=S.useCallback(W=>{h_e(W),m.current=W},[]),w=S.useRef({x:0,y:0}),E=S.useRef(!1),_=xMe(h),k=hMe(h),P=yMe(h,E),L=gMe(h,E,w),O=mMe(),{handleDragStart:D,handleDragMove:R,handleDragEnd:N}=uMe();return g.jsx("div",{className:"inpainting-canvas-container",children:g.jsxs("div",{className:"inpainting-canvas-wrapper",children:[g.jsxs(sMe,{tabIndex:-1,ref:y,className:"inpainting-canvas-stage",style:{...o?{cursor:o}:{}},x:i.x,y:i.y,width:a.width,height:a.height,scale:{x:s,y:s},onTouchStart:k,onTouchMove:L,onTouchEnd:P,onMouseDown:k,onMouseLeave:O,onMouseMove:L,onMouseUp:P,onDragStart:D,onDragMove:R,onDragEnd:N,onContextMenu:W=>W.evt.preventDefault(),onWheel:_,draggable:(l==="move"||u)&&!t,children:[g.jsx(o1,{id:"grid",visible:r,children:g.jsx(kMe,{})}),g.jsx(o1,{id:"base",ref:b,listening:!1,imageSmoothingEnabled:!1,children:g.jsx(RMe,{})}),g.jsxs(o1,{id:"mask",visible:e,listening:!1,children:[g.jsx(AMe,{visible:!0,listening:!1}),g.jsx(MMe,{listening:!1})]}),g.jsx(o1,{children:g.jsx(wMe,{})}),g.jsxs(o1,{id:"preview",imageSmoothingEnabled:!1,children:[!u&&g.jsx(GMe,{visible:l!=="move",listening:!1}),g.jsx(jMe,{visible:u}),d&&g.jsx(PMe,{}),g.jsx(VMe,{visible:n&&!u})]})]}),g.jsx(HMe,{}),g.jsx($Me,{})]})})},KMe=lt(an,bG,Hr,(e,t,n)=>{const{doesCanvasNeedScaling:r,isCanvasInitialized:i}=e;return{doesCanvasNeedScaling:r,activeTabName:n,initialCanvasImage:t,isCanvasInitialized:i}}),$q=()=>{const e=Te(),{doesCanvasNeedScaling:t,activeTabName:n,initialCanvasImage:r,isCanvasInitialized:i}=le(KMe),o=S.useRef(null);return S.useLayoutEffect(()=>{window.setTimeout(()=>{if(!o.current)return;const{clientWidth:a,clientHeight:s}=o.current;e(O3e({width:a,height:s})),e(i?L3e():l4()),e(Oi(!1))},0)},[e,r,t,n,i]),g.jsx("div",{ref:o,className:"inpainting-canvas-area",children:g.jsx(v0,{thickness:"2px",speed:"1s",size:"xl"})})},YMe=lt([an,Hr,gr],(e,t,n)=>{const{futureLayerStates:r}=e;return{canRedo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Fq(){const e=Te(),{canRedo:t,activeTabName:n}=le(YMe),{t:r}=De(),i=()=>{e(T3e())};return Ze(["meta+shift+z","ctrl+shift+z","control+y","meta+y"],()=>{i()},{enabled:()=>t,preventDefault:!0},[n,t]),g.jsx(Ye,{"aria-label":`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,tooltip:`${r("unifiedCanvas.redo")} (Ctrl+Shift+Z)`,icon:g.jsx(Jke,{}),onClick:i,isDisabled:!t})}const XMe=lt([an,Hr,gr],(e,t,n)=>{const{pastLayerStates:r}=e;return{canUndo:r.length>0&&!n.isProcessing,activeTabName:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function Bq(){const e=Te(),{t}=De(),{canUndo:n,activeTabName:r}=le(XMe),i=()=>{e(F3e())};return Ze(["meta+z","ctrl+z"],()=>{i()},{enabled:()=>n,preventDefault:!0},[r,n]),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.undo")} (Ctrl+Z)`,tooltip:`${t("unifiedCanvas.undo")} (Ctrl+Z)`,icon:g.jsx(r7e,{}),onClick:i,isDisabled:!n})}const ZMe=(e,t,n)=>{const r=document.createElement("img");r.addEventListener("load",()=>{const i=document.createElement("canvas");i.width=t,i.height=n;const o=i.getContext("2d");o&&(o.drawImage(r,0,0),i.toBlob(a=>{a&&navigator.clipboard.write([new ClipboardItem({[a.type]:a})])}),i.remove(),r.remove())}),r.src=e},QMe=e=>{const t=document.createElement("a");t.href=e,t.download="",document.body.appendChild(t),t.click(),document.body.removeChild(t),t.remove()},JMe=(e,t,n,r)=>{const i=e.scale(),o=e.getClientRect({relativeTo:e.getParent()});e.scale({x:1/t,y:1/t});const{x:a,y:s,width:l,height:u}=e.getClientRect(),d=r?{x:r.x+n.x,y:r.y+n.y,width:r.width,height:r.height}:{x:a,y:s,width:l,height:u},h=e.toDataURL(d);return e.scale(i),{dataURL:h,boundingBox:{x:o.x,y:o.y,width:l,height:u}}},eLe={cropVisible:!1,cropToBoundingBox:!1,shouldSaveToGallery:!1,shouldDownload:!1,shouldCopy:!1,shouldSetAsInitialImage:!0},Ld=(e=eLe)=>async(t,n)=>{const{cropVisible:r,cropToBoundingBox:i,shouldSaveToGallery:o,shouldDownload:a,shouldCopy:s,shouldSetAsInitialImage:l}=e;t(Y4e("Exporting Image")),t(Ed(!1));const u=n(),{stageScale:d,boundingBoxCoordinates:h,boundingBoxDimensions:m,stageCoordinates:y}=u.canvas,b=tl();if(!b){t(_a(!1)),t(Ed(!0));return}const{dataURL:w,boundingBox:E}=JMe(b,d,y,i?{...h,...m}:void 0);if(!w){t(_a(!1)),t(Ed(!0));return}const _=new FormData;_.append("data",JSON.stringify({dataURL:w,filename:"merged_canvas.png",kind:o?"result":"temp",cropVisible:r}));const P=await(await fetch(`${window.location.origin}/upload`,{method:"POST",body:_})).json(),{url:L,width:O,height:D}=P,R={uuid:gm(),category:o?"result":"user",...P};a&&(QMe(L),t(Bu({title:Pt.t("toast.downloadImageStarted"),status:"success",duration:2500,isClosable:!0}))),s&&(ZMe(L,O,D),t(Bu({title:Pt.t("toast.imageCopied"),status:"success",duration:2500,isClosable:!0}))),o&&(t(hm({image:R,category:"result"})),t(Bu({title:Pt.t("toast.imageSavedToGallery"),status:"success",duration:2500,isClosable:!0}))),l&&(t(D3e({kind:"image",layer:"base",...E,image:R})),t(Bu({title:Pt.t("toast.canvasMerged"),status:"success",duration:2500,isClosable:!0}))),t(_a(!1)),t(mh(Pt.t("common.statusConnected"))),t(Ed(!0))};function tLe(){const e=le(Or),t=tl(),n=le(s=>s.system.isProcessing),r=le(s=>s.canvas.shouldCropToBoundingBoxOnSave),i=Te(),{t:o}=De();Ze(["meta+c","ctrl+c"],()=>{a()},{enabled:()=>!e,preventDefault:!0},[t,n]);const a=()=>{i(Ld({cropVisible:!r,cropToBoundingBox:r,shouldCopy:!0}))};return g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${o("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:g.jsx(i0,{}),onClick:a,isDisabled:e})}function nLe(){const e=Te(),{t}=De(),n=tl(),r=le(Or),i=le(s=>s.system.isProcessing),o=le(s=>s.canvas.shouldCropToBoundingBoxOnSave);Ze(["shift+d"],()=>{a()},{enabled:()=>!r,preventDefault:!0},[n,i]);const a=()=>{e(Ld({cropVisible:!o,cropToBoundingBox:o,shouldDownload:!0}))};return g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${t("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:g.jsx(HE,{}),onClick:a,isDisabled:r})}function rLe(){const e=le(Or),{openUploader:t}=$E(),{t:n}=De();return g.jsx(Ye,{"aria-label":n("common.upload"),tooltip:n("common.upload"),icon:g.jsx(b4,{}),onClick:t,isDisabled:e})}const iLe=lt([an,Or],(e,t)=>{const{layer:n,isMaskEnabled:r}=e;return{layer:n,isMaskEnabled:r,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function oLe(){const e=Te(),{t}=De(),{layer:n,isMaskEnabled:r,isStaging:i}=le(iLe),o=()=>{e(E3(n==="mask"?"base":"mask"))};Ze(["q"],()=>{o()},{enabled:()=>!i,preventDefault:!0},[n]);const a=s=>{const l=s.target.value;e(E3(l)),l==="mask"&&!r&&e(m2(!0))};return g.jsx(ta,{tooltip:`${t("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:n,validValues:GW,onChange:a,isDisabled:i})}function aLe(){const e=Te(),{t}=De(),n=tl(),r=le(Or),i=le(a=>a.system.isProcessing);Ze(["shift+m"],()=>{o()},{enabled:()=>!r,preventDefault:!0},[n,i]);const o=()=>{e(Ld({cropVisible:!1,shouldSetAsInitialImage:!0}))};return g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${t("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:g.jsx(vG,{}),onClick:o,isDisabled:r})}function sLe(){const e=le(o=>o.canvas.tool),t=le(Or),n=Te(),{t:r}=De();Ze(["v"],()=>{i()},{enabled:()=>!t,preventDefault:!0},[]);const i=()=>n(tu("move"));return g.jsx(Ye,{"aria-label":`${r("unifiedCanvas.move")} (V)`,tooltip:`${r("unifiedCanvas.move")} (V)`,icon:g.jsx(dG,{}),isChecked:e==="move"||t,onClick:i})}function lLe(){const e=le(i=>i.ui.shouldPinParametersPanel),t=Te(),{t:n}=De(),r=()=>{t(Vh(!0)),e&&setTimeout(()=>t(Oi(!0)),400)};return g.jsxs(Re,{flexDirection:"column",gap:"0.5rem",children:[g.jsx(Ye,{tooltip:`${n("parameters.showOptionsPanel")} (O)`,tooltipProps:{placement:"top"},"aria-label":n("parameters.showOptionsPanel"),onClick:r,children:g.jsx(VE,{})}),g.jsx(Re,{children:g.jsx(aP,{iconButton:!0})}),g.jsx(Re,{children:g.jsx(iP,{width:"100%",height:"40px",btnGroupWidth:"100%"})})]})}function uLe(){const e=Te(),{t}=De(),n=le(Or),r=()=>{e(SE()),e(l4())};return g.jsx(Ye,{"aria-label":t("unifiedCanvas.clearCanvas"),tooltip:t("unifiedCanvas.clearCanvas"),icon:g.jsx(bp,{}),onClick:r,style:{backgroundColor:"var(--btn-delete-image)"},isDisabled:n})}function zq(e,t,n=250){const[r,i]=S.useState(0);return S.useEffect(()=>{const o=setTimeout(()=>{r===1&&e(),i(0)},n);return r===2&&t(),()=>clearTimeout(o)},[r,e,t,n]),()=>i(o=>o+1)}function cLe(){const e=tl(),t=Te(),{t:n}=De();Ze(["r"],()=>{i()},{enabled:()=>!0,preventDefault:!0},[e]);const r=zq(()=>i(!1),()=>i(!0)),i=(o=!1)=>{const a=tl();if(!a)return;const s=a.getClientRect({skipTransform:!0});t(QW({contentRect:s,shouldScaleTo1:o}))};return g.jsx(Ye,{"aria-label":`${n("unifiedCanvas.resetView")} (R)`,tooltip:`${n("unifiedCanvas.resetView")} (R)`,icon:g.jsx(hG,{}),onClick:r})}function dLe(){const e=le(Or),t=tl(),n=le(s=>s.system.isProcessing),r=le(s=>s.canvas.shouldCropToBoundingBoxOnSave),i=Te(),{t:o}=De();Ze(["shift+s"],()=>{a()},{enabled:()=>!e,preventDefault:!0},[t,n]);const a=()=>{i(Ld({cropVisible:!r,cropToBoundingBox:r,shouldSaveToGallery:!0}))};return g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${o("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:g.jsx(WE,{}),onClick:a,isDisabled:e})}const fLe=lt([an,Or,gr],(e,t,n)=>{const{isProcessing:r}=n,{tool:i}=e;return{tool:i,isStaging:t,isProcessing:r}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),hLe=()=>{const e=Te(),{t}=De(),{tool:n,isStaging:r}=le(fLe);Ze(["b"],()=>{i()},{enabled:()=>!r,preventDefault:!0},[]),Ze(["e"],()=>{o()},{enabled:()=>!r,preventDefault:!0},[n]),Ze(["c"],()=>{a()},{enabled:()=>!r,preventDefault:!0},[n]),Ze(["shift+f"],()=>{s()},{enabled:()=>!r,preventDefault:!0}),Ze(["delete","backspace"],()=>{l()},{enabled:()=>!r,preventDefault:!0});const i=()=>e(tu("brush")),o=()=>e(tu("eraser")),a=()=>e(tu("colorPicker")),s=()=>e(YW()),l=()=>e(KW());return g.jsxs(Re,{flexDirection:"column",gap:"0.5rem",children:[g.jsxs(Ki,{children:[g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.brush")} (B)`,tooltip:`${t("unifiedCanvas.brush")} (B)`,icon:g.jsx(yG,{}),isChecked:n==="brush"&&!r,onClick:i,isDisabled:r}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.eraser")} (E)`,tooltip:`${t("unifiedCanvas.eraser")} (B)`,icon:g.jsx(pG,{}),isChecked:n==="eraser"&&!r,isDisabled:r,onClick:o})]}),g.jsxs(Ki,{children:[g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${t("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:g.jsx(mG,{}),isDisabled:r,onClick:s}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${t("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:g.jsx(S2,{style:{transform:"rotate(45deg)"}}),isDisabled:r,onClick:l})]}),g.jsx(Ye,{"aria-label":`${t("unifiedCanvas.colorPicker")} (C)`,tooltip:`${t("unifiedCanvas.colorPicker")} (C)`,icon:g.jsx(gG,{}),isChecked:n==="colorPicker"&&!r,isDisabled:r,onClick:a,width:"max-content"})]})},M4=Xe((e,t)=>{const{acceptButtonText:n="Accept",acceptCallback:r,cancelButtonText:i="Cancel",cancelCallback:o,children:a,title:s,triggerComponent:l}=e,{isOpen:u,onOpen:d,onClose:h}=Xd(),m=S.useRef(null),y=()=>{r(),h()},b=()=>{o&&o(),h()};return g.jsxs(g.Fragment,{children:[S.cloneElement(l,{onClick:d,ref:t}),g.jsx(XH,{isOpen:u,leastDestructiveRef:m,onClose:h,children:g.jsx(sc,{children:g.jsxs(ZH,{className:"modal",children:[g.jsx(dp,{fontSize:"lg",fontWeight:"bold",children:s}),g.jsx(t0,{children:a}),g.jsxs(Vw,{children:[g.jsx(Ra,{ref:m,onClick:b,className:"modal-close-btn",children:i}),g.jsx(Ra,{colorScheme:"red",onClick:y,ml:3,children:n})]})]})})})]})}),Hq=()=>{const e=le(Or),t=Te(),{t:n}=De(),r=()=>{t(N_e()),t(SE()),t(ZW())};return g.jsxs(M4,{title:n("unifiedCanvas.emptyTempImageFolder"),acceptCallback:r,acceptButtonText:n("unifiedCanvas.emptyFolder"),triggerComponent:g.jsx(Hn,{leftIcon:g.jsx(bp,{}),size:"sm",isDisabled:e,children:n("unifiedCanvas.emptyTempImageFolder")}),children:[g.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderMessage")}),g.jsx("br",{}),g.jsx("p",{children:n("unifiedCanvas.emptyTempImagesFolderConfirm")})]})},Wq=()=>{const e=le(Or),t=Te(),{t:n}=De();return g.jsxs(M4,{title:n("unifiedCanvas.clearCanvasHistory"),acceptCallback:()=>t(ZW()),acceptButtonText:n("unifiedCanvas.clearHistory"),triggerComponent:g.jsx(Hn,{size:"sm",leftIcon:g.jsx(bp,{}),isDisabled:e,children:n("unifiedCanvas.clearCanvasHistory")}),children:[g.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryMessage")}),g.jsx("br",{}),g.jsx("p",{children:n("unifiedCanvas.clearCanvasHistoryConfirm")})]})},pLe=lt([an],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:i}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldShowCanvasDebugInfo:r,shouldShowIntermediates:i}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),gLe=()=>{const e=Te(),{t}=De(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldShowCanvasDebugInfo:i,shouldShowIntermediates:o}=le(pLe);return g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{tooltip:t("unifiedCanvas.canvasSettings"),tooltipProps:{placement:"bottom"},"aria-label":t("unifiedCanvas.canvasSettings"),icon:g.jsx(UE,{})}),children:g.jsxs(Re,{direction:"column",gap:"0.5rem",children:[g.jsx(Yn,{label:t("unifiedCanvas.showIntermediates"),isChecked:o,onChange:a=>e(sV(a.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:a=>e(tV(a.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:a=>e(nV(a.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:i,onChange:a=>e(oV(a.target.checked))}),g.jsx(Wq,{}),g.jsx(Hq,{})]})})},mLe=()=>{const e=le(t=>t.ui.shouldShowParametersPanel);return g.jsxs(Re,{flexDirection:"column",rowGap:"0.5rem",width:"6rem",children:[g.jsx(oLe,{}),g.jsx(hLe,{}),g.jsxs(Re,{gap:"0.5rem",children:[g.jsx(sLe,{}),g.jsx(cLe,{})]}),g.jsxs(Re,{columnGap:"0.5rem",children:[g.jsx(aLe,{}),g.jsx(dLe,{})]}),g.jsxs(Re,{columnGap:"0.5rem",children:[g.jsx(tLe,{}),g.jsx(nLe,{})]}),g.jsxs(Re,{gap:"0.5rem",children:[g.jsx(Bq,{}),g.jsx(Fq,{})]}),g.jsxs(Re,{gap:"0.5rem",children:[g.jsx(rLe,{}),g.jsx(uLe,{})]}),g.jsx(gLe,{}),!e&&g.jsx(lLe,{})]})};function vLe(){const e=Te(),t=le(i=>i.canvas.brushSize),{t:n}=De(),r=le(Or);return Ze(["BracketLeft"],()=>{e(jm(Math.max(t-5,5)))},{enabled:()=>!r,preventDefault:!0},[t]),Ze(["BracketRight"],()=>{e(jm(Math.min(t+5,500)))},{enabled:()=>!r,preventDefault:!0},[t]),g.jsx(Nn,{label:n("unifiedCanvas.brushSize"),value:t,withInput:!0,onChange:i=>e(jm(i)),sliderNumberInputProps:{max:500},inputReadOnly:!1,width:"100px",isCompact:!0})}function L4(){return(L4=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}function h7(e){var t=S.useRef(e),n=S.useRef(function(r){t.current&&t.current(r)});return t.current=e,n.current}var a0=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e0:E.buttons>0)&&i.current?o(RD(i.current,E,s.current)):w(!1)},b=function(){return w(!1)};function w(E){var _=l.current,k=p7(i.current),P=E?k.addEventListener:k.removeEventListener;P(_?"touchmove":"mousemove",y),P(_?"touchend":"mouseup",b)}return[function(E){var _=E.nativeEvent,k=i.current;if(k&&(DD(_),!function(L,O){return O&&!ey(L)}(_,l.current)&&k)){if(ey(_)){l.current=!0;var P=_.changedTouches||[];P.length&&(s.current=P[0].identifier)}k.focus(),o(RD(k,_,s.current)),w(!0)}},function(E){var _=E.which||E.keyCode;_<37||_>40||(E.preventDefault(),a({left:_===39?.05:_===37?-.05:0,top:_===40?.05:_===38?-.05:0}))},w]},[a,o]),d=u[0],h=u[1],m=u[2];return S.useEffect(function(){return m},[m]),Ke.createElement("div",L4({},r,{onTouchStart:d,onMouseDown:d,className:"react-colorful__interactive",ref:i,onKeyDown:h,tabIndex:0,role:"slider"}))}),A4=function(e){return e.filter(Boolean).join(" ")},kP=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,o=A4(["react-colorful__pointer",e.className]);return Ke.createElement("div",{className:o,style:{top:100*i+"%",left:100*n+"%"}},Ke.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Eo=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=Math.pow(10,t)),Math.round(n*e)/n},Uq=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:Eo(e.h),s:Eo(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:Eo(i/2),a:Eo(r,2)}},g7=function(e){var t=Uq(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},h6=function(e){var t=Uq(e);return"hsla("+t.h+", "+t.s+"%, "+t.l+"%, "+t.a+")"},yLe=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var o=Math.floor(t),a=r*(1-n),s=r*(1-(t-o)*n),l=r*(1-(1-t+o)*n),u=o%6;return{r:Eo(255*[r,s,a,a,l,r][u]),g:Eo(255*[l,r,r,s,a,a][u]),b:Eo(255*[a,a,l,r,r,s][u]),a:Eo(i,2)}},bLe=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,o=Math.max(t,n,r),a=o-Math.min(t,n,r),s=a?o===t?(n-r)/a:o===n?2+(r-t)/a:4+(t-n)/a:0;return{h:Eo(60*(s<0?s+6:s)),s:Eo(o?a/o*100:0),v:Eo(o/255*100),a:i}},xLe=Ke.memo(function(e){var t=e.hue,n=e.onChange,r=A4(["react-colorful__hue",e.className]);return Ke.createElement("div",{className:r},Ke.createElement(_P,{onMove:function(i){n({h:360*i.left})},onKey:function(i){n({h:a0(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Eo(t),"aria-valuemax":"360","aria-valuemin":"0"},Ke.createElement(kP,{className:"react-colorful__hue-pointer",left:t/360,color:g7({h:t,s:100,v:100,a:1})})))}),SLe=Ke.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:g7({h:t.h,s:100,v:100,a:1})};return Ke.createElement("div",{className:"react-colorful__saturation",style:r},Ke.createElement(_P,{onMove:function(i){n({s:100*i.left,v:100-100*i.top})},onKey:function(i){n({s:a0(t.s+100*i.left,0,100),v:a0(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Eo(t.s)+"%, Brightness "+Eo(t.v)+"%"},Ke.createElement(kP,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:g7(t)})))}),Gq=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0};function wLe(e,t,n){var r=h7(n),i=S.useState(function(){return e.toHsva(t)}),o=i[0],a=i[1],s=S.useRef({color:t,hsva:o});S.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},a(u)}},[t,e]),S.useEffect(function(){var u;Gq(o,s.current.hsva)||e.equal(u=e.fromHsva(o),s.current.color)||(s.current={hsva:o,color:u},r(u))},[o,e,r]);var l=S.useCallback(function(u){a(function(d){return Object.assign({},d,u)})},[]);return[o,l]}var CLe=typeof window<"u"?S.useLayoutEffect:S.useEffect,_Le=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},jD=new Map,kLe=function(e){CLe(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!jD.has(t)){var n=t.createElement("style");n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,jD.set(t,n);var r=_Le();r&&n.setAttribute("nonce",r),t.head.appendChild(n)}},[])},ELe=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:"linear-gradient(90deg, "+h6(Object.assign({},n,{a:0}))+", "+h6(Object.assign({},n,{a:1}))+")"},o=A4(["react-colorful__alpha",t]),a=Eo(100*n.a);return Ke.createElement("div",{className:o},Ke.createElement("div",{className:"react-colorful__alpha-gradient",style:i}),Ke.createElement(_P,{onMove:function(s){r({a:s.left})},onKey:function(s){r({a:a0(n.a+s.left)})},"aria-label":"Alpha","aria-valuetext":a+"%","aria-valuenow":a,"aria-valuemin":"0","aria-valuemax":"100"},Ke.createElement(kP,{className:"react-colorful__alpha-pointer",left:n.a,color:h6(n)})))},PLe=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,o=e.onChange,a=Vq(e,["className","colorModel","color","onChange"]),s=S.useRef(null);kLe(s);var l=wLe(n,i,o),u=l[0],d=l[1],h=A4(["react-colorful",t]);return Ke.createElement("div",L4({},a,{ref:s,className:h}),Ke.createElement(SLe,{hsva:u,onChange:d}),Ke.createElement(xLe,{hue:u.h,onChange:d}),Ke.createElement(ELe,{hsva:u,onChange:d,className:"react-colorful__last-control"}))},TLe={defaultColor:{r:0,g:0,b:0,a:1},toHsva:bLe,fromHsva:yLe,equal:Gq},MLe=function(e){return Ke.createElement(PLe,L4({},e,{colorModel:TLe}))};const V3=e=>{const{styleClass:t,...n}=e;return g.jsx(MLe,{className:`invokeai__color-picker ${t}`,...n})},LLe=lt([an,Or],(e,t)=>{const{brushColor:n,maskColor:r,layer:i}=e;return{brushColor:n,maskColor:r,layer:i,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function ALe(){const e=Te(),{brushColor:t,maskColor:n,layer:r,isStaging:i}=le(LLe),o=()=>{if(r==="base")return`rgba(${t.r},${t.g},${t.b},${t.a})`;if(r==="mask")return`rgba(${n.r},${n.g},${n.b},${n.a})`};return Ze(["shift+BracketLeft"],()=>{e(Dm({...t,a:Pe.clamp(t.a-.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[t]),Ze(["shift+BracketRight"],()=>{e(Dm({...t,a:Pe.clamp(t.a+.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[t]),g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(ko,{style:{width:"30px",height:"30px",minWidth:"30px",minHeight:"30px",borderRadius:"99999999px",backgroundColor:o(),cursor:"pointer"}}),children:g.jsxs(Re,{minWidth:"15rem",direction:"column",gap:"1rem",width:"100%",children:[r==="base"&&g.jsx(V3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:t,onChange:a=>e(Dm(a))}),r==="mask"&&g.jsx(V3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:n,onChange:a=>e(eV(a))})]})})}function qq(){return g.jsxs(Re,{columnGap:"1rem",alignItems:"center",children:[g.jsx(vLe,{}),g.jsx(ALe,{})]})}function OLe(){const e=Te(),t=le(r=>r.canvas.shouldRestrictStrokesToBox),{t:n}=De();return g.jsx(Yn,{label:n("unifiedCanvas.betaLimitToBox"),isChecked:t,onChange:r=>e(uV(r.target.checked))})}function ILe(){return g.jsxs(Re,{gap:"1rem",alignItems:"center",children:[g.jsx(qq,{}),g.jsx(OLe,{})]})}function RLe(){const e=Te(),{t}=De(),n=()=>e(xE());return g.jsx(Hn,{size:"sm",leftIcon:g.jsx(bp,{}),onClick:n,tooltip:`${t("unifiedCanvas.clearMask")} (Shift+C)`,children:t("unifiedCanvas.betaClear")})}function DLe(){const e=le(i=>i.canvas.isMaskEnabled),t=Te(),{t:n}=De(),r=()=>t(m2(!e));return g.jsx(Yn,{label:`${n("unifiedCanvas.enableMask")} (H)`,isChecked:e,onChange:r})}function jLe(){const e=Te(),{t}=De(),n=le(r=>r.canvas.shouldPreserveMaskedArea);return g.jsx(Yn,{label:t("unifiedCanvas.betaPreserveMasked"),isChecked:n,onChange:r=>e(iV(r.target.checked))})}function NLe(){return g.jsxs(Re,{gap:"1rem",alignItems:"center",children:[g.jsx(qq,{}),g.jsx(DLe,{}),g.jsx(jLe,{}),g.jsx(RLe,{})]})}function $Le(){const e=le(r=>r.canvas.shouldDarkenOutsideBoundingBox),t=Te(),{t:n}=De();return g.jsx(Yn,{label:n("unifiedCanvas.betaDarkenOutside"),isChecked:e,onChange:r=>t(rV(r.target.checked))})}function FLe(){const e=le(r=>r.canvas.shouldShowGrid),t=Te(),{t:n}=De();return g.jsx(Yn,{label:n("unifiedCanvas.showGrid"),isChecked:e,onChange:r=>t(aV(r.target.checked))})}function BLe(){const e=le(i=>i.canvas.shouldSnapToGrid),t=Te(),{t:n}=De(),r=i=>t(P3(i.target.checked));return g.jsx(Yn,{label:`${n("unifiedCanvas.snapToGrid")} (N)`,isChecked:e,onChange:r})}function zLe(){return g.jsxs(Re,{alignItems:"center",gap:"1rem",children:[g.jsx(FLe,{}),g.jsx(BLe,{}),g.jsx($Le,{})]})}const HLe=lt([an],e=>{const{tool:t,layer:n}=e;return{tool:t,layer:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function WLe(){const{tool:e,layer:t}=le(HLe);return g.jsxs(Re,{height:"2rem",minHeight:"2rem",maxHeight:"2rem",alignItems:"center",children:[t=="base"&&["brush","eraser","colorPicker"].includes(e)&&g.jsx(ILe,{}),t=="mask"&&["brush","eraser","colorPicker"].includes(e)&&g.jsx(NLe,{}),e=="move"&&g.jsx(zLe,{})]})}const VLe=lt([an],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ULe=()=>{const e=Te(),{doesCanvasNeedScaling:t}=le(VLe);return S.useLayoutEffect(()=>{e(Oi(!0));const n=Pe.debounce(()=>{e(Oi(!0))},250);return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),g.jsx("div",{className:"workarea-single-view",children:g.jsxs(Re,{flexDirection:"row",width:"100%",height:"100%",columnGap:"1rem",padding:"1rem",children:[g.jsx(mLe,{}),g.jsxs(Re,{width:"100%",height:"100%",flexDirection:"column",rowGap:"1rem",children:[g.jsx(WLe,{}),t?g.jsx($q,{}):g.jsx(Nq,{})]})]})})},GLe=lt([an,Or],(e,t)=>{const{maskColor:n,layer:r,isMaskEnabled:i,shouldPreserveMaskedArea:o}=e;return{layer:r,maskColor:n,maskColorString:Gh(n),isMaskEnabled:i,shouldPreserveMaskedArea:o,isStaging:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),qLe=()=>{const e=Te(),{t}=De(),{layer:n,maskColor:r,isMaskEnabled:i,shouldPreserveMaskedArea:o,isStaging:a}=le(GLe);Ze(["q"],()=>{s()},{enabled:()=>!a,preventDefault:!0},[n]),Ze(["shift+c"],()=>{l()},{enabled:()=>!a,preventDefault:!0},[]),Ze(["h"],()=>{u()},{enabled:()=>!a,preventDefault:!0},[i]);const s=()=>{e(E3(n==="mask"?"base":"mask"))},l=()=>e(xE()),u=()=>e(m2(!i));return g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ki,{children:g.jsx(Ye,{"aria-label":t("unifiedCanvas.maskingOptions"),tooltip:t("unifiedCanvas.maskingOptions"),icon:g.jsx(qke,{}),style:n==="mask"?{backgroundColor:"var(--accent-color)"}:{backgroundColor:"var(--btn-base-color)"},isDisabled:a})}),children:g.jsxs(Re,{direction:"column",gap:"0.5rem",children:[g.jsx(Yn,{label:`${t("unifiedCanvas.enableMask")} (H)`,isChecked:i,onChange:u}),g.jsx(Yn,{label:t("unifiedCanvas.preserveMaskedArea"),isChecked:o,onChange:d=>e(iV(d.target.checked))}),g.jsx(V3,{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:r,onChange:d=>e(eV(d))}),g.jsxs(Hn,{size:"sm",leftIcon:g.jsx(bp,{}),onClick:l,children:[t("unifiedCanvas.clearMask")," (Shift+C)"]})]})})},KLe=lt([an],e=>{const{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:i,shouldShowGrid:o,shouldShowIntermediates:a,shouldSnapToGrid:s,shouldRestrictStrokesToBox:l}=e;return{shouldAutoSave:t,shouldCropToBoundingBoxOnSave:n,shouldDarkenOutsideBoundingBox:r,shouldShowCanvasDebugInfo:i,shouldShowGrid:o,shouldShowIntermediates:a,shouldSnapToGrid:s,shouldRestrictStrokesToBox:l}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),YLe=()=>{const e=Te(),{t}=De(),{shouldAutoSave:n,shouldCropToBoundingBoxOnSave:r,shouldDarkenOutsideBoundingBox:i,shouldShowCanvasDebugInfo:o,shouldShowGrid:a,shouldShowIntermediates:s,shouldSnapToGrid:l,shouldRestrictStrokesToBox:u}=le(KLe);Ze(["n"],()=>{e(P3(!l))},{enabled:!0,preventDefault:!0},[l]);const d=h=>e(P3(h.target.checked));return g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{tooltip:t("unifiedCanvas.canvasSettings"),"aria-label":t("unifiedCanvas.canvasSettings"),icon:g.jsx(UE,{})}),children:g.jsxs(Re,{direction:"column",gap:"0.5rem",children:[g.jsx(Yn,{label:t("unifiedCanvas.showIntermediates"),isChecked:s,onChange:h=>e(sV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.showGrid"),isChecked:a,onChange:h=>e(aV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.snapToGrid"),isChecked:l,onChange:d}),g.jsx(Yn,{label:t("unifiedCanvas.darkenOutsideSelection"),isChecked:i,onChange:h=>e(rV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.autoSaveToGallery"),isChecked:n,onChange:h=>e(tV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.saveBoxRegionOnly"),isChecked:r,onChange:h=>e(nV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.limitStrokesToBox"),isChecked:u,onChange:h=>e(uV(h.target.checked))}),g.jsx(Yn,{label:t("unifiedCanvas.showCanvasDebugInfo"),isChecked:o,onChange:h=>e(oV(h.target.checked))}),g.jsx(Wq,{}),g.jsx(Hq,{})]})})},XLe=lt([an,Or,gr],(e,t,n)=>{const{isProcessing:r}=n,{tool:i,brushColor:o,brushSize:a}=e;return{tool:i,isStaging:t,isProcessing:r,brushColor:o,brushSize:a}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ZLe=()=>{const e=Te(),{tool:t,brushColor:n,brushSize:r,isStaging:i}=le(XLe),{t:o}=De();Ze(["b"],()=>{a()},{enabled:()=>!i,preventDefault:!0},[]),Ze(["e"],()=>{s()},{enabled:()=>!i,preventDefault:!0},[t]),Ze(["c"],()=>{l()},{enabled:()=>!i,preventDefault:!0},[t]),Ze(["shift+f"],()=>{u()},{enabled:()=>!i,preventDefault:!0}),Ze(["delete","backspace"],()=>{d()},{enabled:()=>!i,preventDefault:!0}),Ze(["BracketLeft"],()=>{e(jm(Math.max(r-5,5)))},{enabled:()=>!i,preventDefault:!0},[r]),Ze(["BracketRight"],()=>{e(jm(Math.min(r+5,500)))},{enabled:()=>!i,preventDefault:!0},[r]),Ze(["shift+BracketLeft"],()=>{e(Dm({...n,a:Pe.clamp(n.a-.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[n]),Ze(["shift+BracketRight"],()=>{e(Dm({...n,a:Pe.clamp(n.a+.05,.05,1)}))},{enabled:()=>!i,preventDefault:!0},[n]);const a=()=>e(tu("brush")),s=()=>e(tu("eraser")),l=()=>e(tu("colorPicker")),u=()=>e(YW()),d=()=>e(KW());return g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.brush")} (B)`,tooltip:`${o("unifiedCanvas.brush")} (B)`,icon:g.jsx(yG,{}),isChecked:t==="brush"&&!i,onClick:a,isDisabled:i}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.eraser")} (E)`,tooltip:`${o("unifiedCanvas.eraser")} (E)`,icon:g.jsx(pG,{}),isChecked:t==="eraser"&&!i,isDisabled:i,onClick:s}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.fillBoundingBox")} (Shift+F)`,tooltip:`${o("unifiedCanvas.fillBoundingBox")} (Shift+F)`,icon:g.jsx(mG,{}),isDisabled:i,onClick:u}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,tooltip:`${o("unifiedCanvas.eraseBoundingBox")} (Del/Backspace)`,icon:g.jsx(S2,{style:{transform:"rotate(45deg)"}}),isDisabled:i,onClick:d}),g.jsx(Ye,{"aria-label":`${o("unifiedCanvas.colorPicker")} (C)`,tooltip:`${o("unifiedCanvas.colorPicker")} (C)`,icon:g.jsx(gG,{}),isChecked:t==="colorPicker"&&!i,isDisabled:i,onClick:l}),g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":o("unifiedCanvas.brushOptions"),tooltip:o("unifiedCanvas.brushOptions"),icon:g.jsx(VE,{})}),children:g.jsxs(Re,{minWidth:"15rem",direction:"column",gap:"1rem",width:"100%",children:[g.jsx(Re,{gap:"1rem",justifyContent:"space-between",children:g.jsx(Nn,{label:o("unifiedCanvas.brushSize"),value:r,withInput:!0,onChange:h=>e(jm(h)),sliderNumberInputProps:{max:500},inputReadOnly:!1})}),g.jsx(V3,{style:{width:"100%",paddingTop:"0.5rem",paddingBottom:"0.5rem"},color:n,onChange:h=>e(Dm(h))})]})})]})},QLe=lt([gr,an,Or],(e,t,n)=>{const{isProcessing:r}=e,{tool:i,shouldCropToBoundingBoxOnSave:o,layer:a,isMaskEnabled:s}=t;return{isProcessing:r,isStaging:n,isMaskEnabled:s,tool:i,layer:a,shouldCropToBoundingBoxOnSave:o}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),JLe=()=>{const e=Te(),{isProcessing:t,isStaging:n,isMaskEnabled:r,layer:i,tool:o,shouldCropToBoundingBoxOnSave:a}=le(QLe),s=tl(),{t:l}=De(),{openUploader:u}=$E();Ze(["v"],()=>{d()},{enabled:()=>!n,preventDefault:!0},[]),Ze(["r"],()=>{m()},{enabled:()=>!0,preventDefault:!0},[s]),Ze(["shift+m"],()=>{b()},{enabled:()=>!n,preventDefault:!0},[s,t]),Ze(["shift+s"],()=>{w()},{enabled:()=>!n,preventDefault:!0},[s,t]),Ze(["meta+c","ctrl+c"],()=>{E()},{enabled:()=>!n,preventDefault:!0},[s,t]),Ze(["shift+d"],()=>{_()},{enabled:()=>!n,preventDefault:!0},[s,t]);const d=()=>e(tu("move")),h=zq(()=>m(!1),()=>m(!0)),m=(P=!1)=>{const L=tl();if(!L)return;const O=L.getClientRect({skipTransform:!0});e(QW({contentRect:O,shouldScaleTo1:P}))},y=()=>{e(SE()),e(l4())},b=()=>{e(Ld({cropVisible:!1,shouldSetAsInitialImage:!0}))},w=()=>{e(Ld({cropVisible:!a,cropToBoundingBox:a,shouldSaveToGallery:!0}))},E=()=>{e(Ld({cropVisible:!a,cropToBoundingBox:a,shouldCopy:!0}))},_=()=>{e(Ld({cropVisible:!a,cropToBoundingBox:a,shouldDownload:!0}))},k=P=>{const L=P.target.value;e(E3(L)),L==="mask"&&!r&&e(m2(!0))};return g.jsxs("div",{className:"inpainting-settings",children:[g.jsx(ta,{tooltip:`${l("unifiedCanvas.layer")} (Q)`,tooltipProps:{hasArrow:!0,placement:"top"},value:i,validValues:GW,onChange:k,isDisabled:n}),g.jsx(qLe,{}),g.jsx(ZLe,{}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.move")} (V)`,tooltip:`${l("unifiedCanvas.move")} (V)`,icon:g.jsx(dG,{}),isChecked:o==="move"||n,onClick:d}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.resetView")} (R)`,tooltip:`${l("unifiedCanvas.resetView")} (R)`,icon:g.jsx(hG,{}),onClick:h})]}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.mergeVisible")} (Shift+M)`,tooltip:`${l("unifiedCanvas.mergeVisible")} (Shift+M)`,icon:g.jsx(vG,{}),onClick:b,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.saveToGallery")} (Shift+S)`,tooltip:`${l("unifiedCanvas.saveToGallery")} (Shift+S)`,icon:g.jsx(WE,{}),onClick:w,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,tooltip:`${l("unifiedCanvas.copyToClipboard")} (Cmd/Ctrl+C)`,icon:g.jsx(i0,{}),onClick:E,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.downloadAsImage")} (Shift+D)`,tooltip:`${l("unifiedCanvas.downloadAsImage")} (Shift+D)`,icon:g.jsx(HE,{}),onClick:_,isDisabled:n})]}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Bq,{}),g.jsx(Fq,{})]}),g.jsxs(Ki,{isAttached:!0,children:[g.jsx(Ye,{"aria-label":`${l("common.upload")}`,tooltip:`${l("common.upload")}`,icon:g.jsx(b4,{}),onClick:u,isDisabled:n}),g.jsx(Ye,{"aria-label":`${l("unifiedCanvas.clearCanvas")}`,tooltip:`${l("unifiedCanvas.clearCanvas")}`,icon:g.jsx(bp,{}),onClick:y,style:{backgroundColor:"var(--btn-delete-image)"},isDisabled:n})]}),g.jsx(Ki,{isAttached:!0,children:g.jsx(YLe,{})})]})},eAe=lt([an],e=>{const{doesCanvasNeedScaling:t}=e;return{doesCanvasNeedScaling:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),tAe=()=>{const e=Te(),{doesCanvasNeedScaling:t}=le(eAe);return S.useLayoutEffect(()=>{e(Oi(!0));const n=Pe.debounce(()=>{e(Oi(!0))},250);return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e]),g.jsx("div",{className:"workarea-single-view",children:g.jsx("div",{className:"workarea-split-view-left",children:g.jsxs("div",{className:"inpainting-main-area",children:[g.jsx(JLe,{}),g.jsx("div",{className:"inpainting-canvas-area",children:t?g.jsx($q,{}):g.jsx(Nq,{})})]})})})},nAe=lt(an,e=>{const{boundingBoxDimensions:t,boundingBoxScaleMethod:n}=e;return{boundingBoxDimensions:t,boundingBoxScale:n}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),rAe=()=>{const e=Te(),{boundingBoxDimensions:t}=le(nAe),{t:n}=De(),r=s=>{e(b1({...t,width:Math.floor(s)}))},i=s=>{e(b1({...t,height:Math.floor(s)}))},o=()=>{e(b1({...t,width:Math.floor(512)}))},a=()=>{e(b1({...t,height:Math.floor(512)}))};return g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(Nn,{label:n("parameters.width"),min:64,max:1024,step:64,value:t.width,onChange:r,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:o}),g.jsx(Nn,{label:n("parameters.height"),min:64,max:1024,step:64,value:t.height,onChange:i,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:a})]})},iAe=lt([oP,gr,an],(e,t,n)=>{const{tileSize:r,infillMethod:i}=e,{infill_methods:o}=t,{boundingBoxScaleMethod:a,scaledBoundingBoxDimensions:s}=n;return{boundingBoxScale:a,scaledBoundingBoxDimensions:s,tileSize:r,infillMethod:i,availableInfillMethods:o,isManual:a==="manual"}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),oAe=()=>{const e=Te(),{tileSize:t,infillMethod:n,availableInfillMethods:r,boundingBoxScale:i,isManual:o,scaledBoundingBoxDimensions:a}=le(iAe),{t:s}=De(),l=y=>{e(nx({...a,width:Math.floor(y)}))},u=y=>{e(nx({...a,height:Math.floor(y)}))},d=()=>{e(nx({...a,width:Math.floor(512)}))},h=()=>{e(nx({...a,height:Math.floor(512)}))},m=y=>{e(A3e(y.target.value))};return g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(ta,{label:s("parameters.scaleBeforeProcessing"),validValues:p3e,value:i,onChange:m}),g.jsx(Nn,{isInputDisabled:!o,isResetDisabled:!o,isSliderDisabled:!o,label:s("parameters.scaledWidth"),min:64,max:1024,step:64,value:a.width,onChange:l,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:d}),g.jsx(Nn,{isInputDisabled:!o,isResetDisabled:!o,isSliderDisabled:!o,label:s("parameters.scaledHeight"),min:64,max:1024,step:64,value:a.height,onChange:u,sliderNumberInputProps:{max:4096},withSliderMarks:!0,withInput:!0,inputReadOnly:!0,withReset:!0,handleReset:h}),g.jsx(ta,{label:s("parameters.infillMethod"),value:n,validValues:r,onChange:y=>e(bV(y.target.value))}),g.jsx(Nn,{isInputDisabled:n!=="tile",isResetDisabled:n!=="tile",isSliderDisabled:n!=="tile",label:s("parameters.tileSize"),min:16,max:64,sliderNumberInputProps:{max:256},value:t,onChange:y=>{e(cI(y))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(cI(32))}})]})};function aAe(){const e=Te(),t=le(r=>r.generation.seamBlur),{t:n}=De();return g.jsx(Nn,{label:n("parameters.seamBlur"),min:0,max:64,sliderNumberInputProps:{max:512},value:t,onChange:r=>{e(aI(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(aI(16))}})}function sAe(){const e=Te(),{t}=De(),n=le(r=>r.generation.seamSize);return g.jsx(Nn,{label:t("parameters.seamSize"),min:1,max:256,sliderNumberInputProps:{max:512},value:n,onChange:r=>{e(sI(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>e(sI(96))})}function lAe(){const{t:e}=De(),t=le(r=>r.generation.seamSteps),n=Te();return g.jsx(Nn,{label:e("parameters.seamSteps"),min:1,max:100,sliderNumberInputProps:{max:999},value:t,onChange:r=>{n(lI(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{n(lI(30))}})}function uAe(){const e=Te(),{t}=De(),n=le(r=>r.generation.seamStrength);return g.jsx(Nn,{label:t("parameters.seamStrength"),min:.01,max:.99,step:.01,value:n,onChange:r=>{e(uI(r))},withInput:!0,withSliderMarks:!0,withReset:!0,handleReset:()=>{e(uI(.7))}})}const cAe=()=>g.jsxs(jt,{gap:2,alignItems:"stretch",children:[g.jsx(sAe,{}),g.jsx(aAe,{}),g.jsx(uAe,{}),g.jsx(lAe,{})]});function dAe(){const{t:e}=De(),t={general:{header:`${e("parameters.general")}`,feature:void 0,content:g.jsx(pP,{})},unifiedCanvasImg2Img:{header:`${e("parameters.imageToImage")}`,feature:void 0,content:g.jsx(Tq,{label:e("parameters.img2imgStrength")})},seed:{header:`${e("parameters.seed")}`,feature:so.SEED,content:g.jsx(dP,{})},boundingBox:{header:`${e("parameters.boundingBoxHeader")}`,feature:so.BOUNDING_BOX,content:g.jsx(rAe,{})},seamCorrection:{header:`${e("parameters.seamCorrectionHeader")}`,feature:so.SEAM_CORRECTION,content:g.jsx(cAe,{})},infillAndScaling:{header:`${e("parameters.infillScalingHeader")}`,feature:so.INFILL_AND_SCALING,content:g.jsx(oAe,{})},variations:{header:`${e("parameters.variations")}`,feature:so.VARIATIONS,content:g.jsx(hP,{}),additionalHeaderComponents:g.jsx(fP,{})},symmetry:{header:`${e("parameters.symmetry")}`,content:g.jsx(uP,{}),additionalHeaderComponents:g.jsx(cP,{})}};return g.jsxs(xP,{children:[g.jsxs(Re,{flexDir:"column",rowGap:"0.5rem",children:[g.jsx(bP,{}),g.jsx(yP,{})]}),g.jsx(mP,{}),g.jsx(gP,{accordionInfo:t})]})}function fAe(){const e=le(t=>t.ui.shouldUseCanvasBetaLayout);return g.jsx(lP,{optionsPanel:g.jsx(dAe,{}),styleClass:"inpainting-workarea-overrides",children:e?g.jsx(ULe,{}):g.jsx(tAe,{})})}const ns={txt2img:{title:g.jsx(J_e,{fill:"black"}),workarea:g.jsx(rTe,{}),tooltip:"Text To Image"},img2img:{title:g.jsx(X_e,{fill:"black"}),workarea:g.jsx(XPe,{}),tooltip:"Image To Image"},unifiedCanvas:{title:g.jsx(tke,{fill:"black"}),workarea:g.jsx(fAe,{}),tooltip:"Unified Canvas"},nodes:{title:g.jsx(Z_e,{fill:"black"}),workarea:g.jsx(G_e,{}),tooltip:"Nodes"},postprocess:{title:g.jsx(Q_e,{fill:"black"}),workarea:g.jsx(q_e,{}),tooltip:"Post Processing"},training:{title:g.jsx(eke,{fill:"black"}),workarea:g.jsx(K_e,{}),tooltip:"Training"}};function hAe(){ns.txt2img.tooltip=Pt.t("common.text2img"),ns.img2img.tooltip=Pt.t("common.img2img"),ns.unifiedCanvas.tooltip=Pt.t("common.unifiedCanvas"),ns.nodes.tooltip=Pt.t("common.nodes"),ns.postprocess.tooltip=Pt.t("common.postProcessing"),ns.training.tooltip=Pt.t("common.training")}function pAe(){const e=le(U_e),t=le(u=>u.lightbox.isLightboxOpen),{shouldShowGallery:n,shouldShowParametersPanel:r,shouldPinGallery:i,shouldPinParametersPanel:o}=le(sP);Y_e(hAe);const a=Te();Ze("1",()=>{a(Uo(0))}),Ze("2",()=>{a(Uo(1))}),Ze("3",()=>{a(Uo(2))}),Ze("4",()=>{a(Uo(3))}),Ze("5",()=>{a(Uo(4))}),Ze("6",()=>{a(Uo(5))}),Ze("z",()=>{a(Wh(!t))},[t]),Ze("f",()=>{n||r?(a(Vh(!1)),a(Lh(!1))):(a(Vh(!0)),a(Lh(!0))),(i||o)&&setTimeout(()=>a(Oi(!0)),400)},[n,r]);const s=()=>{const u=[];return Object.keys(ns).forEach(d=>{u.push(g.jsx(ui,{hasArrow:!0,label:ns[d].tooltip,placement:"right",children:g.jsx(bW,{children:ns[d].title})},d))}),u},l=()=>{const u=[];return Object.keys(ns).forEach(d=>{u.push(g.jsx(vW,{children:ns[d].workarea},d))}),u};return g.jsxs(gW,{isLazy:!0,defaultIndex:e,index:e,onChange:u=>{a(Uo(u))},variant:"invokeAI",children:[g.jsx(mW,{children:s()}),g.jsx(yW,{children:t?g.jsx(cPe,{}):l()})]})}var gAe=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["heic","image/heic"],["heif","image/heif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function E2(e,t){var n=mAe(e);if(typeof n.path!="string"){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:typeof t=="string"?t:typeof r=="string"&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}function mAe(e){var t=e.name,n=t&&t.lastIndexOf(".")!==-1;if(n&&!e.type){var r=t.split(".").pop().toLowerCase(),i=gAe.get(r);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var vAe=[".DS_Store","Thumbs.db"];function yAe(e){return g0(this,void 0,void 0,function(){return m0(this,function(t){return U3(e)&&bAe(e.dataTransfer)?[2,CAe(e.dataTransfer,e.type)]:xAe(e)?[2,SAe(e)]:Array.isArray(e)&&e.every(function(n){return"getFile"in n&&typeof n.getFile=="function"})?[2,wAe(e)]:[2,[]]})})}function bAe(e){return U3(e)}function xAe(e){return U3(e)&&U3(e.target)}function U3(e){return typeof e=="object"&&e!==null}function SAe(e){return m7(e.target.files).map(function(t){return E2(t)})}function wAe(e){return g0(this,void 0,void 0,function(){var t;return m0(this,function(n){switch(n.label){case 0:return[4,Promise.all(e.map(function(r){return r.getFile()}))];case 1:return t=n.sent(),[2,t.map(function(r){return E2(r)})]}})})}function CAe(e,t){return g0(this,void 0,void 0,function(){var n,r;return m0(this,function(i){switch(i.label){case 0:return e.items?(n=m7(e.items).filter(function(o){return o.kind==="file"}),t!=="drop"?[2,n]:[4,Promise.all(n.map(_Ae))]):[3,2];case 1:return r=i.sent(),[2,ND(Kq(r))];case 2:return[2,ND(m7(e.files).map(function(o){return E2(o)}))]}})})}function ND(e){return e.filter(function(t){return vAe.indexOf(t.name)===-1})}function m7(e){if(e===null)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,HD(n)];if(e.sizen)return[!1,HD(n)]}return[!0,null]}function _h(e){return e!=null}function BAe(e){var t=e.files,n=e.accept,r=e.minSize,i=e.maxSize,o=e.multiple,a=e.maxFiles,s=e.validator;return!o&&t.length>1||o&&a>=1&&t.length>a?!1:t.every(function(l){var u=Qq(l,n),d=Uy(u,1),h=d[0],m=Jq(l,r,i),y=Uy(m,1),b=y[0],w=s?s(l):null;return h&&b&&!w})}function G3(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function Tx(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function VD(e){e.preventDefault()}function zAe(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function HAe(e){return e.indexOf("Edge/")!==-1}function WAe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return zAe(e)||HAe(e)}function Ol(){for(var e=arguments.length,t=new Array(e),n=0;n1?i-1:0),a=1;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function aOe(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var EP=S.forwardRef(function(e,t){var n=e.children,r=q3(e,YAe),i=iK(r),o=i.open,a=q3(i,XAe);return S.useImperativeHandle(t,function(){return{open:o}},[o]),Ke.createElement(S.Fragment,null,n(Er(Er({},a),{},{open:o})))});EP.displayName="Dropzone";var rK={disabled:!1,getFilesFromEvent:yAe,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};EP.defaultProps=rK;EP.propTypes={children:Rn.func,accept:Rn.objectOf(Rn.arrayOf(Rn.string)),multiple:Rn.bool,preventDropOnDocument:Rn.bool,noClick:Rn.bool,noKeyboard:Rn.bool,noDrag:Rn.bool,noDragEventsBubbling:Rn.bool,minSize:Rn.number,maxSize:Rn.number,maxFiles:Rn.number,disabled:Rn.bool,getFilesFromEvent:Rn.func,onFileDialogCancel:Rn.func,onFileDialogOpen:Rn.func,useFsAccessApi:Rn.bool,autoFocus:Rn.bool,onDragEnter:Rn.func,onDragLeave:Rn.func,onDragOver:Rn.func,onDrop:Rn.func,onDropAccepted:Rn.func,onDropRejected:Rn.func,onError:Rn.func,validator:Rn.func};var x7={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function iK(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=Er(Er({},rK),e),n=t.accept,r=t.disabled,i=t.getFilesFromEvent,o=t.maxSize,a=t.minSize,s=t.multiple,l=t.maxFiles,u=t.onDragEnter,d=t.onDragLeave,h=t.onDragOver,m=t.onDrop,y=t.onDropAccepted,b=t.onDropRejected,w=t.onFileDialogCancel,E=t.onFileDialogOpen,_=t.useFsAccessApi,k=t.autoFocus,P=t.preventDropOnDocument,L=t.noClick,O=t.noKeyboard,D=t.noDrag,R=t.noDragEventsBubbling,N=t.onError,W=t.validator,B=S.useMemo(function(){return GAe(n)},[n]),K=S.useMemo(function(){return UAe(n)},[n]),ne=S.useMemo(function(){return typeof E=="function"?E:GD},[E]),z=S.useMemo(function(){return typeof w=="function"?w:GD},[w]),$=S.useRef(null),U=S.useRef(null),X=S.useReducer(sOe,x7),Q=p6(X,2),G=Q[0],Y=Q[1],ee=G.isFocused,fe=G.isFileDialogActive,ke=S.useRef(typeof window<"u"&&window.isSecureContext&&_&&VAe()),we=function(){!ke.current&&fe&&setTimeout(function(){if(U.current){var je=U.current.files;je.length||(Y({type:"closeDialog"}),z())}},300)};S.useEffect(function(){return window.addEventListener("focus",we,!1),function(){window.removeEventListener("focus",we,!1)}},[U,fe,z,ke]);var xe=S.useRef([]),Ce=function(je){$.current&&$.current.contains(je.target)||(je.preventDefault(),xe.current=[])};S.useEffect(function(){return P&&(document.addEventListener("dragover",VD,!1),document.addEventListener("drop",Ce,!1)),function(){P&&(document.removeEventListener("dragover",VD),document.removeEventListener("drop",Ce))}},[$,P]),S.useEffect(function(){return!r&&k&&$.current&&$.current.focus(),function(){}},[$,k,r]);var Se=S.useCallback(function(ye){N?N(ye):console.error(ye)},[N]),Qe=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye),xe.current=[].concat(JAe(xe.current),[ye.target]),Tx(ye)&&Promise.resolve(i(ye)).then(function(je){if(!(G3(ye)&&!R)){var yt=je.length,Lt=yt>0&&BAe({files:je,accept:B,minSize:a,maxSize:o,multiple:s,maxFiles:l,validator:W}),Me=yt>0&&!Lt;Y({isDragAccept:Lt,isDragReject:Me,isDragActive:!0,type:"setDraggedFiles"}),u&&u(ye)}}).catch(function(je){return Se(je)})},[i,u,Se,R,B,a,o,s,l,W]),tt=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye);var je=Tx(ye);if(je&&ye.dataTransfer)try{ye.dataTransfer.dropEffect="copy"}catch{}return je&&h&&h(ye),!1},[h,R]),it=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye);var je=xe.current.filter(function(Lt){return $.current&&$.current.contains(Lt)}),yt=je.indexOf(ye.target);yt!==-1&&je.splice(yt,1),xe.current=je,!(je.length>0)&&(Y({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),Tx(ye)&&d&&d(ye))},[$,d,R]),xt=S.useCallback(function(ye,je){var yt=[],Lt=[];ye.forEach(function(Me){var _t=Qq(Me,B),Wt=p6(_t,2),Bn=Wt[0],qe=Wt[1],gt=Jq(Me,a,o),Wr=p6(gt,2),ar=Wr[0],Wn=Wr[1],ci=W?W(Me):null;if(Bn&&ar&&!ci)yt.push(Me);else{var xs=[qe,Wn];ci&&(xs=xs.concat(ci)),Lt.push({file:Me,errors:xs.filter(function(il){return il})})}}),(!s&&yt.length>1||s&&l>=1&&yt.length>l)&&(yt.forEach(function(Me){Lt.push({file:Me,errors:[FAe]})}),yt.splice(0)),Y({acceptedFiles:yt,fileRejections:Lt,type:"setFiles"}),m&&m(yt,Lt,je),Lt.length>0&&b&&b(Lt,je),yt.length>0&&y&&y(yt,je)},[Y,s,B,a,o,l,m,y,b,W]),Be=S.useCallback(function(ye){ye.preventDefault(),ye.persist(),se(ye),xe.current=[],Tx(ye)&&Promise.resolve(i(ye)).then(function(je){G3(ye)&&!R||xt(je,ye)}).catch(function(je){return Se(je)}),Y({type:"reset"})},[i,xt,Se,R]),Le=S.useCallback(function(){if(ke.current){Y({type:"openDialog"}),ne();var ye={multiple:s,types:K};window.showOpenFilePicker(ye).then(function(je){return i(je)}).then(function(je){xt(je,null),Y({type:"closeDialog"})}).catch(function(je){qAe(je)?(z(je),Y({type:"closeDialog"})):KAe(je)?(ke.current=!1,U.current?(U.current.value=null,U.current.click()):Se(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):Se(je)});return}U.current&&(Y({type:"openDialog"}),ne(),U.current.value=null,U.current.click())},[Y,ne,z,_,xt,Se,K,s]),St=S.useCallback(function(ye){!$.current||!$.current.isEqualNode(ye.target)||(ye.key===" "||ye.key==="Enter"||ye.keyCode===32||ye.keyCode===13)&&(ye.preventDefault(),Le())},[$,Le]),Fe=S.useCallback(function(){Y({type:"focus"})},[]),at=S.useCallback(function(){Y({type:"blur"})},[]),$t=S.useCallback(function(){L||(WAe()?setTimeout(Le,0):Le())},[L,Le]),vt=function(je){return r?null:je},Jt=function(je){return O?null:vt(je)},sn=function(je){return D?null:vt(je)},se=function(je){R&&je.stopPropagation()},Ie=S.useMemo(function(){return function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},je=ye.refKey,yt=je===void 0?"ref":je,Lt=ye.role,Me=ye.onKeyDown,_t=ye.onFocus,Wt=ye.onBlur,Bn=ye.onClick,qe=ye.onDragEnter,gt=ye.onDragOver,Wr=ye.onDragLeave,ar=ye.onDrop,Wn=q3(ye,ZAe);return Er(Er(b7({onKeyDown:Jt(Ol(Me,St)),onFocus:Jt(Ol(_t,Fe)),onBlur:Jt(Ol(Wt,at)),onClick:vt(Ol(Bn,$t)),onDragEnter:sn(Ol(qe,Qe)),onDragOver:sn(Ol(gt,tt)),onDragLeave:sn(Ol(Wr,it)),onDrop:sn(Ol(ar,Be)),role:typeof Lt=="string"&&Lt!==""?Lt:"presentation"},yt,$),!r&&!O?{tabIndex:0}:{}),Wn)}},[$,St,Fe,at,$t,Qe,tt,it,Be,O,D,r]),He=S.useCallback(function(ye){ye.stopPropagation()},[]),Ve=S.useMemo(function(){return function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},je=ye.refKey,yt=je===void 0?"ref":je,Lt=ye.onChange,Me=ye.onClick,_t=q3(ye,QAe),Wt=b7({accept:B,multiple:s,type:"file",style:{display:"none"},onChange:vt(Ol(Lt,Be)),onClick:vt(Ol(Me,He)),tabIndex:-1},yt,U);return Er(Er({},Wt),_t)}},[U,n,s,Be,r]);return Er(Er({},G),{},{isFocused:ee&&!r,getRootProps:Ie,getInputProps:Ve,rootRef:$,inputRef:U,open:vt(Le)})}function sOe(e,t){switch(t.type){case"focus":return Er(Er({},e),{},{isFocused:!0});case"blur":return Er(Er({},e),{},{isFocused:!1});case"openDialog":return Er(Er({},x7),{},{isFileDialogActive:!0});case"closeDialog":return Er(Er({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return Er(Er({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return Er(Er({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return Er({},x7);default:return e}}function GD(){}const lOe=e=>{const{isDragAccept:t,isDragReject:n,overlaySecondaryText:r,setIsHandlingUpload:i}=e;return Ze("esc",()=>{i(!1)}),g.jsxs("div",{className:"dropzone-container",children:[t&&g.jsx("div",{className:"dropzone-overlay is-drag-accept",children:g.jsxs(Bh,{size:"lg",children:["Upload Image",r]})}),n&&g.jsxs("div",{className:"dropzone-overlay is-drag-reject",children:[g.jsx(Bh,{size:"lg",children:"Invalid Upload"}),g.jsx(Bh,{size:"md",children:"Must be single JPEG or PNG image"})]})]})},uOe=e=>{const{children:t}=e,n=Te(),r=le(Hr),i=u2({}),{t:o}=De(),[a,s]=S.useState(!1),{setOpenUploader:l}=$E(),u=S.useCallback(P=>{s(!0);const L=P.errors.reduce((O,D)=>`${O} +${D.message}`,"");i({title:o("toast.uploadFailed"),description:L,status:"error",isClosable:!0})},[o,i]),d=S.useCallback(async P=>{n(DR({imageFile:P}))},[n]),h=S.useCallback((P,L)=>{L.forEach(O=>{u(O)}),P.forEach(O=>{d(O)})},[d,u]),{getRootProps:m,getInputProps:y,isDragAccept:b,isDragReject:w,isDragActive:E,open:_}=iK({accept:{"image/png":[".png"],"image/jpeg":[".jpg",".jpeg",".png"]},noClick:!0,onDrop:h,onDragOver:()=>s(!0),maxFiles:1});l(_),S.useEffect(()=>{const P=L=>{var N;const O=(N=L.clipboardData)==null?void 0:N.items;if(!O)return;const D=[];for(const W of O)W.kind==="file"&&["image/png","image/jpg"].includes(W.type)&&D.push(W);if(!D.length)return;if(L.stopImmediatePropagation(),D.length>1){i({description:o("toast.uploadFailedMultipleImagesDesc"),status:"error",isClosable:!0});return}const R=D[0].getAsFile();if(!R){i({description:o("toast.uploadFailedUnableToLoadDesc"),status:"error",isClosable:!0});return}n(DR({imageFile:R}))};return document.addEventListener("paste",P),()=>{document.removeEventListener("paste",P)}},[o,n,i,r]);const k=["img2img","unifiedCanvas"].includes(r)?` to ${ns[r].tooltip}`:"";return g.jsx(NE.Provider,{value:_,children:g.jsxs("div",{...m({style:{}}),onKeyDown:P=>{P.key},children:[g.jsx("input",{...y()}),t,E&&a&&g.jsx(lOe,{isDragAccept:b,isDragReject:w,overlaySecondaryText:k,setIsHandlingUpload:s})]})})},cOe=lt(gr,e=>e.log,{memoizeOptions:{resultEqualityCheck:(e,t)=>e.length===t.length}}),dOe=lt(gr,e=>({shouldShowLogViewer:e.shouldShowLogViewer,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),fOe=()=>{const e=Te(),t=le(cOe),{shouldShowLogViewer:n,hasError:r,wasErrorSeen:i}=le(dOe),[o,a]=S.useState(!0),s=S.useRef(null);S.useLayoutEffect(()=>{s.current!==null&&o&&(s.current.scrollTop=s.current.scrollHeight)},[o,t,n]);const l=()=>{e(qV()),e(GC(!n))};Ze("`",()=>{e(GC(!n))},[n]),Ze("esc",()=>{e(GC(!1))});const u=()=>{s.current&&o&&s.current.scrollTop{const{timestamp:m,message:y,level:b}=d;return g.jsxs("div",{className:`console-entry console-${b}-color`,children:[g.jsxs("p",{className:"console-timestamp",children:[m,":"]}),g.jsx("p",{className:"console-message",children:y})]},h)})})}),n&&g.jsx(ui,{hasArrow:!0,label:o?"Autoscroll On":"Autoscroll Off",children:g.jsx(Da,{className:"console-autoscroll-icon-button","data-autoscroll-enabled":o,size:"sm","aria-label":"Toggle autoscroll",variant:"solid",icon:g.jsx(Ike,{}),onClick:()=>a(!o)})}),g.jsx(ui,{hasArrow:!0,label:n?"Hide Console":"Show Console",children:g.jsx(Da,{className:"console-toggle-icon-button","data-error-seen":r||!i,size:"sm",position:"fixed",variant:"solid","aria-label":"Toggle Log Viewer",icon:n?g.jsx(Kke,{}):g.jsx(fG,{}),onClick:l})})]})},hOe=lt(gr,e=>({isProcessing:e.isProcessing,currentStep:e.currentStep,totalSteps:e.totalSteps,currentStatusHasSteps:e.currentStatusHasSteps}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),pOe=()=>{const{isProcessing:e,currentStep:t,totalSteps:n,currentStatusHasSteps:r}=le(hOe),i=t?Math.round(t*100/n):0;return g.jsx(tW,{value:i,isIndeterminate:e&&!r,height:"0.3rem",zIndex:99,variant:"invokeAI"})};function gOe(e){const{title:t,hotkey:n,description:r}=e;return g.jsxs("div",{className:"hotkey-modal-item",children:[g.jsxs("div",{className:"hotkey-info",children:[g.jsx("p",{className:"hotkey-title",children:t}),r&&g.jsx("p",{className:"hotkey-description",children:r})]}),g.jsx("div",{className:"hotkey-key",children:n})]})}function mOe({children:e}){const{isOpen:t,onOpen:n,onClose:r}=Xd(),{t:i}=De(),o=[{title:i("hotkeys.invoke.title"),desc:i("hotkeys.invoke.desc"),hotkey:"Ctrl+Enter"},{title:i("hotkeys.cancel.title"),desc:i("hotkeys.cancel.desc"),hotkey:"Shift+X"},{title:i("hotkeys.focusPrompt.title"),desc:i("hotkeys.focusPrompt.desc"),hotkey:"Alt+A"},{title:i("hotkeys.toggleOptions.title"),desc:i("hotkeys.toggleOptions.desc"),hotkey:"O"},{title:i("hotkeys.pinOptions.title"),desc:i("hotkeys.pinOptions.desc"),hotkey:"Shift+O"},{title:i("hotkeys.toggleViewer.title"),desc:i("hotkeys.toggleViewer.desc"),hotkey:"Z"},{title:i("hotkeys.toggleGallery.title"),desc:i("hotkeys.toggleGallery.desc"),hotkey:"G"},{title:i("hotkeys.maximizeWorkSpace.title"),desc:i("hotkeys.maximizeWorkSpace.desc"),hotkey:"F"},{title:i("hotkeys.changeTabs.title"),desc:i("hotkeys.changeTabs.desc"),hotkey:"1-5"},{title:i("hotkeys.consoleToggle.title"),desc:i("hotkeys.consoleToggle.desc"),hotkey:"`"}],a=[{title:i("hotkeys.setPrompt.title"),desc:i("hotkeys.setPrompt.desc"),hotkey:"P"},{title:i("hotkeys.setSeed.title"),desc:i("hotkeys.setSeed.desc"),hotkey:"S"},{title:i("hotkeys.setParameters.title"),desc:i("hotkeys.setParameters.desc"),hotkey:"A"},{title:i("hotkeys.restoreFaces.title"),desc:i("hotkeys.restoreFaces.desc"),hotkey:"Shift+R"},{title:i("hotkeys.upscale.title"),desc:i("hotkeys.upscale.desc"),hotkey:"Shift+U"},{title:i("hotkeys.showInfo.title"),desc:i("hotkeys.showInfo.desc"),hotkey:"I"},{title:i("hotkeys.sendToImageToImage.title"),desc:i("hotkeys.sendToImageToImage.desc"),hotkey:"Shift+I"},{title:i("hotkeys.deleteImage.title"),desc:i("hotkeys.deleteImage.desc"),hotkey:"Del"},{title:i("hotkeys.closePanels.title"),desc:i("hotkeys.closePanels.desc"),hotkey:"Esc"}],s=[{title:i("hotkeys.previousImage.title"),desc:i("hotkeys.previousImage.desc"),hotkey:"Arrow Left"},{title:i("hotkeys.nextImage.title"),desc:i("hotkeys.nextImage.desc"),hotkey:"Arrow Right"},{title:i("hotkeys.toggleGalleryPin.title"),desc:i("hotkeys.toggleGalleryPin.desc"),hotkey:"Shift+G"},{title:i("hotkeys.increaseGalleryThumbSize.title"),desc:i("hotkeys.increaseGalleryThumbSize.desc"),hotkey:"Shift+Up"},{title:i("hotkeys.decreaseGalleryThumbSize.title"),desc:i("hotkeys.decreaseGalleryThumbSize.desc"),hotkey:"Shift+Down"}],l=[{title:i("hotkeys.selectBrush.title"),desc:i("hotkeys.selectBrush.desc"),hotkey:"B"},{title:i("hotkeys.selectEraser.title"),desc:i("hotkeys.selectEraser.desc"),hotkey:"E"},{title:i("hotkeys.decreaseBrushSize.title"),desc:i("hotkeys.decreaseBrushSize.desc"),hotkey:"["},{title:i("hotkeys.increaseBrushSize.title"),desc:i("hotkeys.increaseBrushSize.desc"),hotkey:"]"},{title:i("hotkeys.decreaseBrushOpacity.title"),desc:i("hotkeys.decreaseBrushOpacity.desc"),hotkey:"Shift + ["},{title:i("hotkeys.increaseBrushOpacity.title"),desc:i("hotkeys.increaseBrushOpacity.desc"),hotkey:"Shift + ]"},{title:i("hotkeys.moveTool.title"),desc:i("hotkeys.moveTool.desc"),hotkey:"V"},{title:i("hotkeys.fillBoundingBox.title"),desc:i("hotkeys.fillBoundingBox.desc"),hotkey:"Shift + F"},{title:i("hotkeys.eraseBoundingBox.title"),desc:i("hotkeys.eraseBoundingBox.desc"),hotkey:"Delete / Backspace"},{title:i("hotkeys.colorPicker.title"),desc:i("hotkeys.colorPicker.desc"),hotkey:"C"},{title:i("hotkeys.toggleSnap.title"),desc:i("hotkeys.toggleSnap.desc"),hotkey:"N"},{title:i("hotkeys.quickToggleMove.title"),desc:i("hotkeys.quickToggleMove.desc"),hotkey:"Hold Space"},{title:i("hotkeys.toggleLayer.title"),desc:i("hotkeys.toggleLayer.desc"),hotkey:"Q"},{title:i("hotkeys.clearMask.title"),desc:i("hotkeys.clearMask.desc"),hotkey:"Shift+C"},{title:i("hotkeys.hideMask.title"),desc:i("hotkeys.hideMask.desc"),hotkey:"H"},{title:i("hotkeys.showHideBoundingBox.title"),desc:i("hotkeys.showHideBoundingBox.desc"),hotkey:"Shift+H"},{title:i("hotkeys.mergeVisible.title"),desc:i("hotkeys.mergeVisible.desc"),hotkey:"Shift+M"},{title:i("hotkeys.saveToGallery.title"),desc:i("hotkeys.saveToGallery.desc"),hotkey:"Shift+S"},{title:i("hotkeys.copyToClipboard.title"),desc:i("hotkeys.copyToClipboard.desc"),hotkey:"Ctrl+C"},{title:i("hotkeys.downloadImage.title"),desc:i("hotkeys.downloadImage.desc"),hotkey:"Shift+D"},{title:i("hotkeys.undoStroke.title"),desc:i("hotkeys.undoStroke.desc"),hotkey:"Ctrl+Z"},{title:i("hotkeys.redoStroke.title"),desc:i("hotkeys.redoStroke.desc"),hotkey:"Ctrl+Shift+Z, Ctrl+Y"},{title:i("hotkeys.resetView.title"),desc:i("hotkeys.resetView.desc"),hotkey:"R"},{title:i("hotkeys.previousStagingImage.title"),desc:i("hotkeys.previousStagingImage.desc"),hotkey:"Arrow Left"},{title:i("hotkeys.nextStagingImage.title"),desc:i("hotkeys.nextStagingImage.desc"),hotkey:"Arrow Right"},{title:i("hotkeys.acceptStagingImage.title"),desc:i("hotkeys.acceptStagingImage.desc"),hotkey:"Enter"}],u=d=>{const h=[];return d.forEach((m,y)=>{h.push(g.jsx(gOe,{title:m.title,description:m.desc,hotkey:m.hotkey},y))}),g.jsx("div",{className:"hotkey-modal-category",children:h})};return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:n}),g.jsxs(Qd,{isOpen:t,onClose:r,children:[g.jsx(sc,{}),g.jsxs(Jd,{className:" modal hotkeys-modal",children:[g.jsx(b0,{className:"modal-close-btn"}),g.jsx("h1",{children:"Keyboard Shorcuts"}),g.jsx("div",{className:"hotkeys-modal-items",children:g.jsxs(v8,{allowMultiple:!0,children:[g.jsxs(um,{children:[g.jsxs(sm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.appHotkeys")}),g.jsx(lm,{})]}),g.jsx(dm,{children:u(o)})]}),g.jsxs(um,{children:[g.jsxs(sm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.generalHotkeys")}),g.jsx(lm,{})]}),g.jsx(dm,{children:u(a)})]}),g.jsxs(um,{children:[g.jsxs(sm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.galleryHotkeys")}),g.jsx(lm,{})]}),g.jsx(dm,{children:u(s)})]}),g.jsxs(um,{children:[g.jsxs(sm,{className:"hotkeys-modal-button",children:[g.jsx("h2",{children:i("hotkeys.unifiedCanvasHotkeys")}),g.jsx(lm,{})]}),g.jsx(dm,{children:u(l)})]})]})})]})]})]})}var qD=Array.isArray,KD=Object.keys,vOe=Object.prototype.hasOwnProperty,yOe=typeof Element<"u";function S7(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=qD(e),r=qD(t),i,o,a;if(n&&r){if(o=e.length,o!=t.length)return!1;for(i=o;i--!==0;)if(!S7(e[i],t[i]))return!1;return!0}if(n!=r)return!1;var s=e instanceof Date,l=t instanceof Date;if(s!=l)return!1;if(s&&l)return e.getTime()==t.getTime();var u=e instanceof RegExp,d=t instanceof RegExp;if(u!=d)return!1;if(u&&d)return e.toString()==t.toString();var h=KD(e);if(o=h.length,o!==KD(t).length)return!1;for(i=o;i--!==0;)if(!vOe.call(t,h[i]))return!1;if(yOe&&e instanceof Element&&t instanceof Element)return e===t;for(i=o;i--!==0;)if(a=h[i],!(a==="_owner"&&e.$$typeof)&&!S7(e[a],t[a]))return!1;return!0}return e!==e&&t!==t}var yd=function(t,n){try{return S7(t,n)}catch(r){if(r.message&&r.message.match(/stack|recursion/i)||r.number===-2146828260)return console.warn("Warning: react-fast-compare does not handle circular references.",r.name,r.message),!1;throw r}},bOe=function(t){return xOe(t)&&!SOe(t)};function xOe(e){return!!e&&typeof e=="object"}function SOe(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||_Oe(e)}var wOe=typeof Symbol=="function"&&Symbol.for,COe=wOe?Symbol.for("react.element"):60103;function _Oe(e){return e.$$typeof===COe}function kOe(e){return Array.isArray(e)?[]:{}}function K3(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Gy(kOe(e),e,t):e}function EOe(e,t,n){return e.concat(t).map(function(r){return K3(r,n)})}function POe(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach(function(i){r[i]=K3(e[i],n)}),Object.keys(t).forEach(function(i){!n.isMergeableObject(t[i])||!e[i]?r[i]=K3(t[i],n):r[i]=Gy(e[i],t[i],n)}),r}function Gy(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||EOe,n.isMergeableObject=n.isMergeableObject||bOe;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):POe(e,t,n):K3(t,n)}Gy.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return Gy(r,i,n)},{})};var w7=Gy,TOe=typeof global=="object"&&global&&global.Object===Object&&global;const oK=TOe;var MOe=typeof self=="object"&&self&&self.Object===Object&&self,LOe=oK||MOe||Function("return this")();const hu=LOe;var AOe=hu.Symbol;const of=AOe;var aK=Object.prototype,OOe=aK.hasOwnProperty,IOe=aK.toString,a1=of?of.toStringTag:void 0;function ROe(e){var t=OOe.call(e,a1),n=e[a1];try{e[a1]=void 0;var r=!0}catch{}var i=IOe.call(e);return r&&(t?e[a1]=n:delete e[a1]),i}var DOe=Object.prototype,jOe=DOe.toString;function NOe(e){return jOe.call(e)}var $Oe="[object Null]",FOe="[object Undefined]",YD=of?of.toStringTag:void 0;function _p(e){return e==null?e===void 0?FOe:$Oe:YD&&YD in Object(e)?ROe(e):NOe(e)}function sK(e,t){return function(n){return e(t(n))}}var BOe=sK(Object.getPrototypeOf,Object);const PP=BOe;function kp(e){return e!=null&&typeof e=="object"}var zOe="[object Object]",HOe=Function.prototype,WOe=Object.prototype,lK=HOe.toString,VOe=WOe.hasOwnProperty,UOe=lK.call(Object);function XD(e){if(!kp(e)||_p(e)!=zOe)return!1;var t=PP(e);if(t===null)return!0;var n=VOe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&lK.call(n)==UOe}function GOe(){this.__data__=[],this.size=0}function uK(e,t){return e===t||e!==e&&t!==t}function O4(e,t){for(var n=e.length;n--;)if(uK(e[n][0],t))return n;return-1}var qOe=Array.prototype,KOe=qOe.splice;function YOe(e){var t=this.__data__,n=O4(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():KOe.call(t,n,1),--this.size,!0}function XOe(e){var t=this.__data__,n=O4(t,e);return n<0?void 0:t[n][1]}function ZOe(e){return O4(this.__data__,e)>-1}function QOe(e,t){var n=this.__data__,r=O4(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function xc(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=oRe}var aRe="[object Arguments]",sRe="[object Array]",lRe="[object Boolean]",uRe="[object Date]",cRe="[object Error]",dRe="[object Function]",fRe="[object Map]",hRe="[object Number]",pRe="[object Object]",gRe="[object RegExp]",mRe="[object Set]",vRe="[object String]",yRe="[object WeakMap]",bRe="[object ArrayBuffer]",xRe="[object DataView]",SRe="[object Float32Array]",wRe="[object Float64Array]",CRe="[object Int8Array]",_Re="[object Int16Array]",kRe="[object Int32Array]",ERe="[object Uint8Array]",PRe="[object Uint8ClampedArray]",TRe="[object Uint16Array]",MRe="[object Uint32Array]",ur={};ur[SRe]=ur[wRe]=ur[CRe]=ur[_Re]=ur[kRe]=ur[ERe]=ur[PRe]=ur[TRe]=ur[MRe]=!0;ur[aRe]=ur[sRe]=ur[bRe]=ur[lRe]=ur[xRe]=ur[uRe]=ur[cRe]=ur[dRe]=ur[fRe]=ur[hRe]=ur[pRe]=ur[gRe]=ur[mRe]=ur[vRe]=ur[yRe]=!1;function LRe(e){return kp(e)&&mK(e.length)&&!!ur[_p(e)]}function TP(e){return function(t){return e(t)}}var vK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ty=vK&&typeof module=="object"&&module&&!module.nodeType&&module,ARe=ty&&ty.exports===vK,m6=ARe&&oK.process,ORe=function(){try{var e=ty&&ty.require&&ty.require("util").types;return e||m6&&m6.binding&&m6.binding("util")}catch{}}();const s0=ORe;var nj=s0&&s0.isTypedArray,IRe=nj?TP(nj):LRe;const RRe=IRe;var DRe=Object.prototype,jRe=DRe.hasOwnProperty;function yK(e,t){var n=T2(e),r=!n&&XIe(e),i=!n&&!r&&gK(e),o=!n&&!r&&!i&&RRe(e),a=n||r||i||o,s=a?UIe(e.length,String):[],l=s.length;for(var u in e)(t||jRe.call(e,u))&&!(a&&(u=="length"||i&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||iRe(u,l)))&&s.push(u);return s}var NRe=Object.prototype;function MP(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||NRe;return e===n}var $Re=sK(Object.keys,Object);const FRe=$Re;var BRe=Object.prototype,zRe=BRe.hasOwnProperty;function HRe(e){if(!MP(e))return FRe(e);var t=[];for(var n in Object(e))zRe.call(e,n)&&n!="constructor"&&t.push(n);return t}function bK(e){return e!=null&&mK(e.length)&&!cK(e)}function LP(e){return bK(e)?yK(e):HRe(e)}function WRe(e,t){return e&&R4(t,LP(t),e)}function VRe(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var URe=Object.prototype,GRe=URe.hasOwnProperty;function qRe(e){if(!P2(e))return VRe(e);var t=MP(e),n=[];for(var r in e)r=="constructor"&&(t||!GRe.call(e,r))||n.push(r);return n}function AP(e){return bK(e)?yK(e,!0):qRe(e)}function KRe(e,t){return e&&R4(t,AP(t),e)}var xK=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rj=xK&&typeof module=="object"&&module&&!module.nodeType&&module,YRe=rj&&rj.exports===xK,ij=YRe?hu.Buffer:void 0,oj=ij?ij.allocUnsafe:void 0;function XRe(e,t){if(t)return e.slice();var n=e.length,r=oj?oj(n):new e.constructor(n);return e.copy(r),r}function SK(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0)&&(n[i]=e[i]);return n}function Sj(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var wj=function(t){return Array.isArray(t)&&t.length===0},Vo=function(t){return typeof t=="function"},D4=function(t){return t!==null&&typeof t=="object"},Kje=function(t){return String(Math.floor(Number(t)))===t},v6=function(t){return Object.prototype.toString.call(t)==="[object String]"},OK=function(t){return S.Children.count(t)===0},y6=function(t){return D4(t)&&Vo(t.then)};function Gi(e,t,n,r){r===void 0&&(r=0);for(var i=AK(t);e&&r=0?[]:{}}}return(o===0?e:i)[a[o]]===n?e:(n===void 0?delete i[a[o]]:i[a[o]]=n,o===0&&n===void 0&&delete r[a[o]],r)}function IK(e,t,n,r){n===void 0&&(n=new WeakMap),r===void 0&&(r={});for(var i=0,o=Object.keys(e);i0?Ie.map(function(Ve){return N(Ve,Gi(se,Ve))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(He).then(function(Ve){return Ve.reduce(function(ye,je,yt){return je==="DO_NOT_DELETE_YOU_WILL_BE_FIRED"||je&&(ye=ru(ye,Ie[yt],je)),ye},{})})},[N]),B=S.useCallback(function(se){return Promise.all([W(se),m.validationSchema?R(se):{},m.validate?D(se):{}]).then(function(Ie){var He=Ie[0],Ve=Ie[1],ye=Ie[2],je=w7.all([He,Ve,ye],{arrayMerge:eNe});return je})},[m.validate,m.validationSchema,W,D,R]),K=Za(function(se){return se===void 0&&(se=L.values),O({type:"SET_ISVALIDATING",payload:!0}),B(se).then(function(Ie){return _.current&&(O({type:"SET_ISVALIDATING",payload:!1}),O({type:"SET_ERRORS",payload:Ie})),Ie})});S.useEffect(function(){a&&_.current===!0&&yd(y.current,m.initialValues)&&K(y.current)},[a,K]);var ne=S.useCallback(function(se){var Ie=se&&se.values?se.values:y.current,He=se&&se.errors?se.errors:b.current?b.current:m.initialErrors||{},Ve=se&&se.touched?se.touched:w.current?w.current:m.initialTouched||{},ye=se&&se.status?se.status:E.current?E.current:m.initialStatus;y.current=Ie,b.current=He,w.current=Ve,E.current=ye;var je=function(){O({type:"RESET_FORM",payload:{isSubmitting:!!se&&!!se.isSubmitting,errors:He,touched:Ve,status:ye,values:Ie,isValidating:!!se&&!!se.isValidating,submitCount:se&&se.submitCount&&typeof se.submitCount=="number"?se.submitCount:0}})};if(m.onReset){var yt=m.onReset(L.values,Be);y6(yt)?yt.then(je):je()}else je()},[m.initialErrors,m.initialStatus,m.initialTouched]);S.useEffect(function(){_.current===!0&&!yd(y.current,m.initialValues)&&(u&&(y.current=m.initialValues,ne()),a&&K(y.current))},[u,m.initialValues,ne,a,K]),S.useEffect(function(){u&&_.current===!0&&!yd(b.current,m.initialErrors)&&(b.current=m.initialErrors||dh,O({type:"SET_ERRORS",payload:m.initialErrors||dh}))},[u,m.initialErrors]),S.useEffect(function(){u&&_.current===!0&&!yd(w.current,m.initialTouched)&&(w.current=m.initialTouched||Mx,O({type:"SET_TOUCHED",payload:m.initialTouched||Mx}))},[u,m.initialTouched]),S.useEffect(function(){u&&_.current===!0&&!yd(E.current,m.initialStatus)&&(E.current=m.initialStatus,O({type:"SET_STATUS",payload:m.initialStatus}))},[u,m.initialStatus,m.initialTouched]);var z=Za(function(se){if(k.current[se]&&Vo(k.current[se].validate)){var Ie=Gi(L.values,se),He=k.current[se].validate(Ie);return y6(He)?(O({type:"SET_ISVALIDATING",payload:!0}),He.then(function(Ve){return Ve}).then(function(Ve){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ve}}),O({type:"SET_ISVALIDATING",payload:!1})})):(O({type:"SET_FIELD_ERROR",payload:{field:se,value:He}}),Promise.resolve(He))}else if(m.validationSchema)return O({type:"SET_ISVALIDATING",payload:!0}),R(L.values,se).then(function(Ve){return Ve}).then(function(Ve){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ve[se]}}),O({type:"SET_ISVALIDATING",payload:!1})});return Promise.resolve()}),$=S.useCallback(function(se,Ie){var He=Ie.validate;k.current[se]={validate:He}},[]),U=S.useCallback(function(se){delete k.current[se]},[]),X=Za(function(se,Ie){O({type:"SET_TOUCHED",payload:se});var He=Ie===void 0?i:Ie;return He?K(L.values):Promise.resolve()}),Q=S.useCallback(function(se){O({type:"SET_ERRORS",payload:se})},[]),G=Za(function(se,Ie){var He=Vo(se)?se(L.values):se;O({type:"SET_VALUES",payload:He});var Ve=Ie===void 0?n:Ie;return Ve?K(He):Promise.resolve()}),Y=S.useCallback(function(se,Ie){O({type:"SET_FIELD_ERROR",payload:{field:se,value:Ie}})},[]),ee=Za(function(se,Ie,He){O({type:"SET_FIELD_VALUE",payload:{field:se,value:Ie}});var Ve=He===void 0?n:He;return Ve?K(ru(L.values,se,Ie)):Promise.resolve()}),fe=S.useCallback(function(se,Ie){var He=Ie,Ve=se,ye;if(!v6(se)){se.persist&&se.persist();var je=se.target?se.target:se.currentTarget,yt=je.type,Lt=je.name,Me=je.id,_t=je.value,Wt=je.checked,Bn=je.outerHTML,qe=je.options,gt=je.multiple;He=Ie||Lt||Me,Ve=/number|range/.test(yt)?(ye=parseFloat(_t),isNaN(ye)?"":ye):/checkbox/.test(yt)?nNe(Gi(L.values,He),Wt,_t):qe&>?tNe(qe):_t}He&&ee(He,Ve)},[ee,L.values]),ke=Za(function(se){if(v6(se))return function(Ie){return fe(Ie,se)};fe(se)}),we=Za(function(se,Ie,He){Ie===void 0&&(Ie=!0),O({type:"SET_FIELD_TOUCHED",payload:{field:se,value:Ie}});var Ve=He===void 0?i:He;return Ve?K(L.values):Promise.resolve()}),xe=S.useCallback(function(se,Ie){se.persist&&se.persist();var He=se.target,Ve=He.name,ye=He.id,je=He.outerHTML,yt=Ie||Ve||ye;we(yt,!0)},[we]),Ce=Za(function(se){if(v6(se))return function(Ie){return xe(Ie,se)};xe(se)}),Se=S.useCallback(function(se){Vo(se)?O({type:"SET_FORMIK_STATE",payload:se}):O({type:"SET_FORMIK_STATE",payload:function(){return se}})},[]),Qe=S.useCallback(function(se){O({type:"SET_STATUS",payload:se})},[]),tt=S.useCallback(function(se){O({type:"SET_ISSUBMITTING",payload:se})},[]),it=Za(function(){return O({type:"SUBMIT_ATTEMPT"}),K().then(function(se){var Ie=se instanceof Error,He=!Ie&&Object.keys(se).length===0;if(He){var Ve;try{if(Ve=Le(),Ve===void 0)return}catch(ye){throw ye}return Promise.resolve(Ve).then(function(ye){return _.current&&O({type:"SUBMIT_SUCCESS"}),ye}).catch(function(ye){if(_.current)throw O({type:"SUBMIT_FAILURE"}),ye})}else if(_.current&&(O({type:"SUBMIT_FAILURE"}),Ie))throw se})}),xt=Za(function(se){se&&se.preventDefault&&Vo(se.preventDefault)&&se.preventDefault(),se&&se.stopPropagation&&Vo(se.stopPropagation)&&se.stopPropagation(),it().catch(function(Ie){console.warn("Warning: An unhandled error was caught from submitForm()",Ie)})}),Be={resetForm:ne,validateForm:K,validateField:z,setErrors:Q,setFieldError:Y,setFieldTouched:we,setFieldValue:ee,setStatus:Qe,setSubmitting:tt,setTouched:X,setValues:G,setFormikState:Se,submitForm:it},Le=Za(function(){return d(L.values,Be)}),St=Za(function(se){se&&se.preventDefault&&Vo(se.preventDefault)&&se.preventDefault(),se&&se.stopPropagation&&Vo(se.stopPropagation)&&se.stopPropagation(),ne()}),Fe=S.useCallback(function(se){return{value:Gi(L.values,se),error:Gi(L.errors,se),touched:!!Gi(L.touched,se),initialValue:Gi(y.current,se),initialTouched:!!Gi(w.current,se),initialError:Gi(b.current,se)}},[L.errors,L.touched,L.values]),at=S.useCallback(function(se){return{setValue:function(He,Ve){return ee(se,He,Ve)},setTouched:function(He,Ve){return we(se,He,Ve)},setError:function(He){return Y(se,He)}}},[ee,we,Y]),$t=S.useCallback(function(se){var Ie=D4(se),He=Ie?se.name:se,Ve=Gi(L.values,He),ye={name:He,value:Ve,onChange:ke,onBlur:Ce};if(Ie){var je=se.type,yt=se.value,Lt=se.as,Me=se.multiple;je==="checkbox"?yt===void 0?ye.checked=!!Ve:(ye.checked=!!(Array.isArray(Ve)&&~Ve.indexOf(yt)),ye.value=yt):je==="radio"?(ye.checked=Ve===yt,ye.value=yt):Lt==="select"&&Me&&(ye.value=ye.value||[],ye.multiple=!0)}return ye},[Ce,ke,L.values]),vt=S.useMemo(function(){return!yd(y.current,L.values)},[y.current,L.values]),Jt=S.useMemo(function(){return typeof s<"u"?vt?L.errors&&Object.keys(L.errors).length===0:s!==!1&&Vo(s)?s(m):s:L.errors&&Object.keys(L.errors).length===0},[s,vt,L.errors,m]),sn=Kn({},L,{initialValues:y.current,initialErrors:b.current,initialTouched:w.current,initialStatus:E.current,handleBlur:Ce,handleChange:ke,handleReset:St,handleSubmit:xt,resetForm:ne,setErrors:Q,setFormikState:Se,setFieldTouched:we,setFieldValue:ee,setFieldError:Y,setStatus:Qe,setSubmitting:tt,setTouched:X,setValues:G,submitForm:it,validateForm:K,validateField:z,isValid:Jt,dirty:vt,unregisterField:U,registerField:$,getFieldProps:$t,getFieldMeta:Fe,getFieldHelpers:at,validateOnBlur:i,validateOnChange:n,validateOnMount:a});return sn}function M2(e){var t=Zje(e),n=e.component,r=e.children,i=e.render,o=e.innerRef;return S.useImperativeHandle(o,function(){return t}),S.createElement(Yje,{value:t},n?S.createElement(n,t):i?i(t):r?Vo(r)?r(t):OK(r)?null:S.Children.only(r):null)}function Qje(e){var t={};if(e.inner){if(e.inner.length===0)return ru(t,e.path,e.message);for(var i=e.inner,n=Array.isArray(i),r=0,i=n?i:i[Symbol.iterator]();;){var o;if(n){if(r>=i.length)break;o=i[r++]}else{if(r=i.next(),r.done)break;o=r.value}var a=o;Gi(t,a.path)||(t=ru(t,a.path,a.message))}}return t}function Jje(e,t,n,r){n===void 0&&(n=!1),r===void 0&&(r={});var i=P7(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function P7(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);Array.isArray(e[r])===!0?t[r]=e[r].map(function(i){return Array.isArray(i)===!0||XD(i)?P7(i):i!==""?i:void 0}):XD(e[r])?t[r]=P7(e[r]):t[r]=e[r]!==""?e[r]:void 0}return t}function eNe(e,t,n){var r=e.slice();return t.forEach(function(o,a){if(typeof r[a]>"u"){var s=n.clone!==!1,l=s&&n.isMergeableObject(o);r[a]=l?w7(Array.isArray(o)?[]:{},o,n):o}else n.isMergeableObject(o)?r[a]=w7(e[a],o,n):e.indexOf(o)===-1&&r.push(o)}),r}function tNe(e){return Array.from(e).filter(function(t){return t.selected}).map(function(t){return t.value})}function nNe(e,t,n){if(typeof e=="boolean")return Boolean(t);var r=[],i=!1,o=-1;if(Array.isArray(e))r=e,o=e.indexOf(n),i=o>=0;else if(!n||n=="true"||n=="false")return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,o).concat(r.slice(o+1)):r}var rNe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?S.useLayoutEffect:S.useEffect;function Za(e){var t=S.useRef(e);return rNe(function(){t.current=e}),S.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;ir?i:r},0);return Array.from(Kn({},t,{length:n+1}))}else return[]},lNe=function(e){qje(t,e);function t(r){var i;return i=e.call(this,r)||this,i.updateArrayField=function(o,a,s){var l=i.props,u=l.name,d=l.formik.setFormikState;d(function(h){var m=typeof s=="function"?s:o,y=typeof a=="function"?a:o,b=ru(h.values,u,o(Gi(h.values,u))),w=s?m(Gi(h.errors,u)):void 0,E=a?y(Gi(h.touched,u)):void 0;return wj(w)&&(w=void 0),wj(E)&&(E=void 0),Kn({},h,{values:b,errors:s?ru(h.errors,u,w):h.errors,touched:a?ru(h.touched,u,E):h.touched})})},i.push=function(o){return i.updateArrayField(function(a){return[].concat(l0(a),[Gje(o)])},!1,!1)},i.handlePush=function(o){return function(){return i.push(o)}},i.swap=function(o,a){return i.updateArrayField(function(s){return aNe(s,o,a)},!0,!0)},i.handleSwap=function(o,a){return function(){return i.swap(o,a)}},i.move=function(o,a){return i.updateArrayField(function(s){return oNe(s,o,a)},!0,!0)},i.handleMove=function(o,a){return function(){return i.move(o,a)}},i.insert=function(o,a){return i.updateArrayField(function(s){return b6(s,o,a)},function(s){return b6(s,o,null)},function(s){return b6(s,o,null)})},i.handleInsert=function(o,a){return function(){return i.insert(o,a)}},i.replace=function(o,a){return i.updateArrayField(function(s){return sNe(s,o,a)},!1,!1)},i.handleReplace=function(o,a){return function(){return i.replace(o,a)}},i.unshift=function(o){var a=-1;return i.updateArrayField(function(s){var l=s?[o].concat(s):[o];return a<0&&(a=l.length),l},function(s){var l=s?[null].concat(s):[null];return a<0&&(a=l.length),l},function(s){var l=s?[null].concat(s):[null];return a<0&&(a=l.length),l}),a},i.handleUnshift=function(o){return function(){return i.unshift(o)}},i.handleRemove=function(o){return function(){return i.remove(o)}},i.handlePop=function(){return function(){return i.pop()}},i.remove=i.remove.bind(Sj(i)),i.pop=i.pop.bind(Sj(i)),i}var n=t.prototype;return n.componentDidUpdate=function(i){this.props.validateOnChange&&this.props.formik.validateOnChange&&!yd(Gi(i.formik.values,i.name),Gi(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(i){var o;return this.updateArrayField(function(a){var s=a?l0(a):[];return o||(o=s[i]),Vo(s.splice)&&s.splice(i,1),s},!0,!0),o},n.pop=function(){var i;return this.updateArrayField(function(o){var a=o;return i||(i=a&&a.pop&&a.pop()),a},!0,!0),i},n.render=function(){var i={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},o=this.props,a=o.component,s=o.render,l=o.children,u=o.name,d=o.formik,h=Ah(d,["validate","validationSchema"]),m=Kn({},i,{form:h,name:u});return a?S.createElement(a,m):s?s(m):l?typeof l=="function"?l(m):OK(l)?null:S.Children.only(l):null},t}(S.Component);lNe.defaultProps={validateOnChange:!0};function uNe(e){const{model:t}=e,r=le(b=>b.system.model_list)[t],i=Te(),{t:o}=De(),a=le(b=>b.system.isProcessing),s=le(b=>b.system.isConnected),[l,u]=S.useState("same"),[d,h]=S.useState("");S.useEffect(()=>{u("same")},[t]);const m=()=>{u("same")},y=()=>{i(R_e({model_name:t,save_location:l,custom_location:l==="custom"&&d!==""?d:null}))};return g.jsxs(M4,{title:`${o("modelManager.convert")} ${t}`,acceptCallback:y,cancelCallback:m,acceptButtonText:`${o("modelManager.convert")}`,triggerComponent:g.jsxs(Hn,{size:"sm","aria-label":o("modelManager.convertToDiffusers"),isDisabled:r.status==="active"||a||!s,className:" modal-close-btn",marginRight:"2rem",children:["🧨 ",o("modelManager.convertToDiffusers")]}),motionPreset:"slideInBottom",children:[g.jsxs(Re,{flexDirection:"column",rowGap:4,children:[g.jsx(Nt,{children:o("modelManager.convertToDiffusersHelpText1")}),g.jsxs(hH,{children:[g.jsx(m1,{children:o("modelManager.convertToDiffusersHelpText2")}),g.jsx(m1,{children:o("modelManager.convertToDiffusersHelpText3")}),g.jsx(m1,{children:o("modelManager.convertToDiffusersHelpText4")}),g.jsx(m1,{children:o("modelManager.convertToDiffusersHelpText5")})]}),g.jsx(Nt,{children:o("modelManager.convertToDiffusersHelpText6")})]}),g.jsxs(Re,{flexDir:"column",gap:4,children:[g.jsxs(Re,{marginTop:"1rem",flexDir:"column",gap:2,children:[g.jsx(Nt,{fontWeight:"bold",children:o("modelManager.convertToDiffusersSaveLocation")}),g.jsx(jy,{value:l,onChange:b=>u(b),children:g.jsxs(Re,{gap:4,children:[g.jsx(qo,{value:"same",children:g.jsx(ui,{label:"Save converted model in the same folder",children:o("modelManager.sameFolder")})}),g.jsx(qo,{value:"root",children:g.jsx(ui,{label:"Save converted model in the InvokeAI root folder",children:o("modelManager.invokeRoot")})}),g.jsx(qo,{value:"custom",children:g.jsx(ui,{label:"Save converted model in a custom folder",children:o("modelManager.custom")})})]})})]}),l==="custom"&&g.jsxs(Re,{flexDirection:"column",rowGap:2,children:[g.jsx(Nt,{fontWeight:"bold",fontSize:"sm",color:"var(--text-color-secondary)",children:o("modelManager.customSaveLocation")}),g.jsx(Xn,{value:d,onChange:b=>{b.target.value!==""&&h(b.target.value)},width:"25rem"})]})]})]})}const cNe=lt([gr],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),Cj=64,_j=2048;function dNe(){const{openModel:e,model_list:t}=le(cNe),n=le(l=>l.system.isProcessing),r=Te(),{t:i}=De(),[o,a]=S.useState({name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,default:!1,format:"ckpt"});S.useEffect(()=>{var l,u,d,h,m,y,b;if(e){const w=Pe.pickBy(t,(E,_)=>Pe.isEqual(_,e));a({name:e,description:(l=w[e])==null?void 0:l.description,config:(u=w[e])==null?void 0:u.config,weights:(d=w[e])==null?void 0:d.weights,vae:(h=w[e])==null?void 0:h.vae,width:(m=w[e])==null?void 0:m.width,height:(y=w[e])==null?void 0:y.height,default:(b=w[e])==null?void 0:b.default,format:"ckpt"})}},[t,e]);const s=l=>{r(x2({...l,width:Number(l.width),height:Number(l.height)}))};return e?g.jsxs(Re,{flexDirection:"column",rowGap:"1rem",width:"100%",children:[g.jsxs(Re,{alignItems:"center",gap:4,justifyContent:"space-between",children:[g.jsx(Nt,{fontSize:"lg",fontWeight:"bold",children:e}),g.jsx(uNe,{model:e})]}),g.jsx(Re,{flexDirection:"column",maxHeight:window.innerHeight-270,overflowY:"scroll",paddingRight:"2rem",children:g.jsx(M2,{enableReinitialize:!0,initialValues:o,onSubmit:s,children:({handleSubmit:l,errors:u,touched:d})=>g.jsx("form",{onSubmit:l,children:g.jsxs(jt,{rowGap:"0.5rem",alignItems:"start",children:[g.jsxs(un,{isInvalid:!!u.description&&d.description,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"description",fontSize:"sm",children:i("modelManager.description")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"description",name:"description",type:"text",width:"lg"}),u.description&&d.description?g.jsx(dr,{children:u.description}):g.jsx(cr,{margin:0,children:i("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.config&&d.config,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"config",fontSize:"sm",children:i("modelManager.config")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"config",name:"config",type:"text",width:"lg"}),u.config&&d.config?g.jsx(dr,{children:u.config}):g.jsx(cr,{margin:0,children:i("modelManager.configValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.weights&&d.weights,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"config",fontSize:"sm",children:i("modelManager.modelLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"weights",name:"weights",type:"text",width:"lg"}),u.weights&&d.weights?g.jsx(dr,{children:u.weights}):g.jsx(cr,{margin:0,children:i("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.vae&&d.vae,children:[g.jsx(Cn,{htmlFor:"vae",fontSize:"sm",children:i("modelManager.vaeLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae",name:"vae",type:"text",width:"lg"}),u.vae&&d.vae?g.jsx(dr,{children:u.vae}):g.jsx(cr,{margin:0,children:i("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(Zd,{width:"100%",children:[g.jsxs(un,{isInvalid:!!u.width&&d.width,children:[g.jsx(Cn,{htmlFor:"width",fontSize:"sm",children:i("modelManager.width")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{id:"width",name:"width",children:({field:h,form:m})=>g.jsx(cc,{id:"width",name:"width",min:Cj,max:_j,step:64,value:m.values.width,onChange:y=>m.setFieldValue(h.name,Number(y))})}),u.width&&d.width?g.jsx(dr,{children:u.width}):g.jsx(cr,{margin:0,children:i("modelManager.widthValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.height&&d.height,children:[g.jsx(Cn,{htmlFor:"height",fontSize:"sm",children:i("modelManager.height")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{id:"height",name:"height",children:({field:h,form:m})=>g.jsx(cc,{id:"height",name:"height",min:Cj,max:_j,step:64,value:m.values.height,onChange:y=>m.setFieldValue(h.name,Number(y))})}),u.height&&d.height?g.jsx(dr,{children:u.height}):g.jsx(cr,{margin:0,children:i("modelManager.heightValidationMsg")})]})]})]}),g.jsx(Hn,{type:"submit",className:"modal-close-btn",isLoading:n,children:i("modelManager.updateModel")})]})})})})]}):g.jsx(Re,{width:"100%",justifyContent:"center",alignItems:"center",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",children:g.jsx(Nt,{fontWeight:"bold",color:"var(--subtext-color-bright)",children:"Pick A Model To Edit"})})}const fNe=lt([gr],e=>{const{openModel:t,model_list:n}=e;return{model_list:n,openModel:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function hNe(){const{openModel:e,model_list:t}=le(fNe),n=le(l=>l.system.isProcessing),r=Te(),{t:i}=De(),[o,a]=S.useState({name:"",description:"",repo_id:"",path:"",vae:{repo_id:"",path:""},default:!1,format:"diffusers"});S.useEffect(()=>{var l,u,d,h,m,y,b,w,E,_,k,P,L,O,D,R;if(e){const N=Pe.pickBy(t,(W,B)=>Pe.isEqual(B,e));a({name:e,description:(l=N[e])==null?void 0:l.description,path:(u=N[e])!=null&&u.path&&((d=N[e])==null?void 0:d.path)!=="None"?(h=N[e])==null?void 0:h.path:"",repo_id:(m=N[e])!=null&&m.repo_id&&((y=N[e])==null?void 0:y.repo_id)!=="None"?(b=N[e])==null?void 0:b.repo_id:"",vae:{repo_id:(E=(w=N[e])==null?void 0:w.vae)!=null&&E.repo_id?(k=(_=N[e])==null?void 0:_.vae)==null?void 0:k.repo_id:"",path:(L=(P=N[e])==null?void 0:P.vae)!=null&&L.path?(D=(O=N[e])==null?void 0:O.vae)==null?void 0:D.path:""},default:(R=N[e])==null?void 0:R.default,format:"diffusers"})}},[t,e]);const s=l=>{const u=l;l.path===""&&delete u.path,l.repo_id===""&&delete u.repo_id,l.vae.path===""&&delete u.vae.path,l.vae.repo_id===""&&delete u.vae.repo_id,r(x2(l))};return e?g.jsxs(Re,{flexDirection:"column",rowGap:"1rem",width:"100%",children:[g.jsx(Re,{alignItems:"center",children:g.jsx(Nt,{fontSize:"lg",fontWeight:"bold",children:e})}),g.jsx(Re,{flexDirection:"column",maxHeight:window.innerHeight-270,overflowY:"scroll",paddingRight:"2rem",children:g.jsx(M2,{enableReinitialize:!0,initialValues:o,onSubmit:s,children:({handleSubmit:l,errors:u,touched:d})=>{var h,m,y,b,w,E,_,k,P,L;return g.jsx("form",{onSubmit:l,children:g.jsxs(jt,{rowGap:"0.5rem",alignItems:"start",children:[g.jsxs(un,{isInvalid:!!u.description&&d.description,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"description",fontSize:"sm",children:i("modelManager.description")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"description",name:"description",type:"text",width:"lg"}),u.description&&d.description?g.jsx(dr,{children:u.description}):g.jsx(cr,{margin:0,children:i("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.path&&d.path,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"path",fontSize:"sm",children:i("modelManager.modelLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"path",name:"path",type:"text",width:"lg"}),u.path&&d.path?g.jsx(dr,{children:u.path}):g.jsx(cr,{margin:0,children:i("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!u.repo_id&&d.repo_id,children:[g.jsx(Cn,{htmlFor:"repo_id",fontSize:"sm",children:i("modelManager.repo_id")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"repo_id",name:"repo_id",type:"text",width:"lg"}),u.repo_id&&d.repo_id?g.jsx(dr,{children:u.repo_id}):g.jsx(cr,{margin:0,children:i("modelManager.repoIDValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!((h=u.vae)!=null&&h.path)&&((m=d.vae)==null?void 0:m.path),children:[g.jsx(Cn,{htmlFor:"vae.path",fontSize:"sm",children:i("modelManager.vaeLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae.path",name:"vae.path",type:"text",width:"lg"}),(y=u.vae)!=null&&y.path&&((b=d.vae)!=null&&b.path)?g.jsx(dr,{children:(w=u.vae)==null?void 0:w.path}):g.jsx(cr,{margin:0,children:i("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!((E=u.vae)!=null&&E.repo_id)&&((_=d.vae)==null?void 0:_.repo_id),children:[g.jsx(Cn,{htmlFor:"vae.repo_id",fontSize:"sm",children:i("modelManager.vaeRepoID")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"lg"}),(k=u.vae)!=null&&k.repo_id&&((P=d.vae)!=null&&P.repo_id)?g.jsx(dr,{children:(L=u.vae)==null?void 0:L.repo_id}):g.jsx(cr,{margin:0,children:i("modelManager.vaeRepoIDValidationMsg")})]})]}),g.jsx(Hn,{type:"submit",className:"modal-close-btn",isLoading:n,children:i("modelManager.updateModel")})]})})}})})]}):g.jsx(Re,{width:"100%",justifyContent:"center",alignItems:"center",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",children:g.jsx(Nt,{fontWeight:"bold",color:"var(--subtext-color-bright)",children:"Pick A Model To Edit"})})}const DK=lt([gr],e=>{const{model_list:t}=e,n=[];return Pe.forEach(t,r=>{n.push(r.weights)}),n});function pNe(){const{t:e}=De();return g.jsx(ko,{position:"absolute",zIndex:2,right:4,top:4,fontSize:"0.7rem",fontWeight:"bold",backgroundColor:"var(--accent-color)",padding:"0.2rem 0.5rem",borderRadius:"0.2rem",alignItems:"center",children:e("modelManager.modelExists")})}function kj({model:e,modelsToAdd:t,setModelsToAdd:n}){const r=le(DK),i=o=>{t.includes(o.target.value)?n(Pe.remove(t,a=>a!==o.target.value)):n([...t,o.target.value])};return g.jsxs(ko,{position:"relative",children:[r.includes(e.location)?g.jsx(pNe,{}):null,g.jsx(Yn,{value:e.name,label:g.jsx(g.Fragment,{children:g.jsxs(jt,{alignItems:"start",children:[g.jsx("p",{style:{fontWeight:"bold"},children:e.name}),g.jsx("p",{style:{fontStyle:"italic"},children:e.location})]})}),isChecked:t.includes(e.name),isDisabled:r.includes(e.location),onChange:i,padding:"1rem",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",_checked:{backgroundColor:"var(--accent-color)",color:"var(--text-color)"},_disabled:{backgroundColor:"var(--background-color-secondary)"}})]})}function gNe(){const e=Te(),{t}=De(),n=le(P=>P.system.searchFolder),r=le(P=>P.system.foundModels),i=le(DK),o=le(P=>P.ui.shouldShowExistingModelsInSearch),a=le(P=>P.system.isProcessing),[s,l]=Ke.useState([]),[u,d]=Ke.useState("v1"),[h,m]=Ke.useState(""),y=()=>{e(KV(null)),e(YV(null)),l([])},b=P=>{e(IR(P.checkpointFolder))},w=()=>{l([]),r&&r.forEach(P=>{i.includes(P.location)||l(L=>[...L,P.name])})},E=()=>{l([])},_=()=>{const P=r==null?void 0:r.filter(O=>s.includes(O.name)),L={v1:"configs/stable-diffusion/v1-inference.yaml",v2:"configs/stable-diffusion/v2-inference-v.yaml",inpainting:"configs/stable-diffusion/v1-inpainting-inference.yaml",custom:h};P==null||P.forEach(O=>{const D={name:O.name,description:"",config:L[u],weights:O.location,vae:"",width:512,height:512,default:!1,format:"ckpt"};e(x2(D))}),l([])},k=()=>{const P=[],L=[];return r&&r.forEach((O,D)=>{i.includes(O.location)?L.push(g.jsx(kj,{model:O,modelsToAdd:s,setModelsToAdd:l},D)):P.push(g.jsx(kj,{model:O,modelsToAdd:s,setModelsToAdd:l},D))}),g.jsxs(g.Fragment,{children:[P,o&&L]})};return g.jsxs(g.Fragment,{children:[n?g.jsxs(Re,{flexDirection:"column",padding:"1rem",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",rowGap:"0.5rem",position:"relative",children:[g.jsx("p",{style:{fontWeight:"bold",fontSize:"0.8rem",backgroundColor:"var(--background-color-secondary)",padding:"0.2rem 1rem",width:"max-content",borderRadius:"0.2rem"},children:t("modelManager.checkpointFolder")}),g.jsx("p",{style:{fontWeight:"bold",fontSize:"0.8rem",maxWidth:"80%"},children:n}),g.jsx(Ye,{"aria-label":t("modelManager.scanAgain"),tooltip:t("modelManager.scanAgain"),icon:g.jsx(v4,{}),position:"absolute",right:16,fontSize:18,disabled:a,onClick:()=>e(IR(n))}),g.jsx(Ye,{"aria-label":t("modelManager.clearCheckpointFolder"),icon:g.jsx(S2,{style:{transform:"rotate(45deg)"}}),position:"absolute",right:5,onClick:y})]}):g.jsx(M2,{initialValues:{checkpointFolder:""},onSubmit:P=>{b(P)},children:({handleSubmit:P})=>g.jsx("form",{onSubmit:P,children:g.jsxs(Zd,{columnGap:"0.5rem",children:[g.jsx(un,{isRequired:!0,width:"max-content",children:g.jsx(fr,{as:Xn,id:"checkpointFolder",name:"checkpointFolder",type:"text",width:"lg",size:"md",label:t("modelManager.checkpointFolder")})}),g.jsx(Ye,{icon:g.jsx(C7e,{}),"aria-label":t("modelManager.findModels"),tooltip:t("modelManager.findModels"),type:"submit",disabled:a})]})})}),r&&g.jsxs(Re,{flexDirection:"column",rowGap:"1rem",children:[g.jsxs(Re,{justifyContent:"space-between",alignItems:"center",children:[g.jsxs("p",{children:[t("modelManager.modelsFound"),": ",r.length]}),g.jsxs("p",{children:[t("modelManager.selected"),": ",s.length]})]}),g.jsxs(Re,{columnGap:"0.5rem",justifyContent:"space-between",children:[g.jsxs(Re,{columnGap:"0.5rem",children:[g.jsx(Hn,{isDisabled:s.length===r.length,onClick:w,children:t("modelManager.selectAll")}),g.jsx(Hn,{isDisabled:s.length===0,onClick:E,children:t("modelManager.deselectAll")}),g.jsx(Yn,{label:t("modelManager.showExisting"),isChecked:o,onChange:()=>e(o5e(!o))})]}),g.jsx(Hn,{isDisabled:s.length===0,onClick:_,backgroundColor:s.length>0?"var(--accent-color) !important":"",children:t("modelManager.addSelected")})]}),g.jsxs(Re,{gap:4,backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",flexDirection:"column",children:[g.jsxs(Re,{gap:4,children:[g.jsx(Nt,{fontWeight:"bold",color:"var(--text-color-secondary)",children:"Pick Model Type:"}),g.jsx(jy,{value:u,onChange:P=>d(P),defaultValue:"v1",name:"model_type",children:g.jsxs(Re,{gap:4,children:[g.jsx(qo,{value:"v1",children:t("modelManager.v1")}),g.jsx(qo,{value:"v2",children:t("modelManager.v2")}),g.jsx(qo,{value:"inpainting",children:t("modelManager.inpainting")}),g.jsx(qo,{value:"custom",children:t("modelManager.customConfig")})]})})]}),u==="custom"&&g.jsxs(Re,{flexDirection:"column",rowGap:2,children:[g.jsx(Nt,{fontWeight:"bold",fontSize:"sm",color:"var(--text-color-secondary)",children:t("modelManager.pathToCustomConfig")}),g.jsx(Xn,{value:h,onChange:P=>{P.target.value!==""&&m(P.target.value)},width:"42.5rem"})]})]}),g.jsxs(Re,{rowGap:"1rem",flexDirection:"column",maxHeight:"18rem",overflowY:"scroll",paddingRight:"1rem",paddingLeft:"0.2rem",borderRadius:"0.2rem",children:[r.length>0?s.length===0&&g.jsx(Nt,{fontWeight:"bold",fontSize:14,padding:"0.5rem",borderRadius:"0.2rem",margin:"0 0.5rem 0 1rem",textAlign:"center",backgroundColor:"var(--notice-color)",boxShadow:"0 0 200px 6px var(--notice-color)",marginTop:"1rem",width:"max-content",children:t("modelManager.selectAndAdd")}):g.jsx(Nt,{fontWeight:"bold",fontSize:14,padding:"0.5rem",borderRadius:"0.2rem",textAlign:"center",backgroundColor:"var(--status-bad-color)",children:t("modelManager.noModelsFound")}),k()]})]})]})}const Ej=64,Pj=2048;function mNe(){const e=Te(),{t}=De(),n=le(u=>u.system.isProcessing);function r(u){return/\s/.test(u)}function i(u){let d;return r(u)&&(d=t("modelManager.cannotUseSpaces")),d}const o={name:"",description:"",config:"configs/stable-diffusion/v1-inference.yaml",weights:"",vae:"",width:512,height:512,format:"ckpt",default:!1},a=u=>{e(x2(u)),e(Uh(null))},[s,l]=Ke.useState(!1);return g.jsxs(g.Fragment,{children:[g.jsx(Ye,{"aria-label":t("common.back"),tooltip:t("common.back"),onClick:()=>e(Uh(null)),width:"max-content",position:"absolute",zIndex:1,size:"sm",right:12,top:3,icon:g.jsx(nG,{})}),g.jsx(gNe,{}),g.jsx(Yn,{label:t("modelManager.addManually"),isChecked:s,onChange:()=>l(!s)}),s&&g.jsx(M2,{initialValues:o,onSubmit:a,children:({handleSubmit:u,errors:d,touched:h})=>g.jsx("form",{onSubmit:u,children:g.jsxs(jt,{rowGap:"0.5rem",children:[g.jsx(Nt,{fontSize:20,fontWeight:"bold",alignSelf:"start",children:t("modelManager.manual")}),g.jsxs(un,{isInvalid:!!d.name&&h.name,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"name",name:"name",type:"text",validate:i,width:"2xl"}),d.name&&h.name?g.jsx(dr,{children:d.name}):g.jsx(cr,{margin:0,children:t("modelManager.nameValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!d.description&&h.description,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"description",name:"description",type:"text",width:"2xl"}),d.description&&h.description?g.jsx(dr,{children:d.description}):g.jsx(cr,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!d.config&&h.config,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"config",fontSize:"sm",children:t("modelManager.config")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"config",name:"config",type:"text",width:"2xl"}),d.config&&h.config?g.jsx(dr,{children:d.config}):g.jsx(cr,{margin:0,children:t("modelManager.configValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!d.weights&&h.weights,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"config",fontSize:"sm",children:t("modelManager.modelLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"weights",name:"weights",type:"text",width:"2xl"}),d.weights&&h.weights?g.jsx(dr,{children:d.weights}):g.jsx(cr,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!d.vae&&h.vae,children:[g.jsx(Cn,{htmlFor:"vae",fontSize:"sm",children:t("modelManager.vaeLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae",name:"vae",type:"text",width:"2xl"}),d.vae&&h.vae?g.jsx(dr,{children:d.vae}):g.jsx(cr,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(Zd,{width:"100%",children:[g.jsxs(un,{isInvalid:!!d.width&&h.width,children:[g.jsx(Cn,{htmlFor:"width",fontSize:"sm",children:t("modelManager.width")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{id:"width",name:"width",children:({field:m,form:y})=>g.jsx(cc,{id:"width",name:"width",min:Ej,max:Pj,step:64,width:"90%",value:y.values.width,onChange:b=>y.setFieldValue(m.name,Number(b))})}),d.width&&h.width?g.jsx(dr,{children:d.width}):g.jsx(cr,{margin:0,children:t("modelManager.widthValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!d.height&&h.height,children:[g.jsx(Cn,{htmlFor:"height",fontSize:"sm",children:t("modelManager.height")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{id:"height",name:"height",children:({field:m,form:y})=>g.jsx(cc,{id:"height",name:"height",min:Ej,max:Pj,width:"90%",step:64,value:y.values.height,onChange:b=>y.setFieldValue(m.name,Number(b))})}),d.height&&h.height?g.jsx(dr,{children:d.height}):g.jsx(cr,{margin:0,children:t("modelManager.heightValidationMsg")})]})]})]}),g.jsx(Hn,{type:"submit",className:"modal-close-btn",isLoading:n,children:t("modelManager.addModel")})]})})})]})}function Lx({children:e}){return g.jsx(Re,{flexDirection:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.5rem",rowGap:"1rem",width:"100%",children:e})}function vNe(){const e=Te(),{t}=De(),n=le(s=>s.system.isProcessing);function r(s){return/\s/.test(s)}function i(s){let l;return r(s)&&(l=t("modelManager.cannotUseSpaces")),l}const o={name:"",description:"",repo_id:"",path:"",format:"diffusers",default:!1,vae:{repo_id:"",path:""}},a=s=>{const l=s;s.path===""&&delete l.path,s.repo_id===""&&delete l.repo_id,s.vae.path===""&&delete l.vae.path,s.vae.repo_id===""&&delete l.vae.repo_id,e(x2(l)),e(Uh(null))};return g.jsxs(Re,{children:[g.jsx(Ye,{"aria-label":t("common.back"),tooltip:t("common.back"),onClick:()=>e(Uh(null)),width:"max-content",position:"absolute",zIndex:1,size:"sm",right:12,top:3,icon:g.jsx(nG,{})}),g.jsx(M2,{initialValues:o,onSubmit:a,children:({handleSubmit:s,errors:l,touched:u})=>{var d,h,m,y,b,w,E,_,k,P;return g.jsx("form",{onSubmit:s,children:g.jsxs(jt,{rowGap:"0.5rem",children:[g.jsx(Lx,{children:g.jsxs(un,{isInvalid:!!l.name&&u.name,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"name",fontSize:"sm",children:t("modelManager.name")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"name",name:"name",type:"text",validate:i,width:"2xl",isRequired:!0}),l.name&&u.name?g.jsx(dr,{children:l.name}):g.jsx(cr,{margin:0,children:t("modelManager.nameValidationMsg")})]})]})}),g.jsx(Lx,{children:g.jsxs(un,{isInvalid:!!l.description&&u.description,isRequired:!0,children:[g.jsx(Cn,{htmlFor:"description",fontSize:"sm",children:t("modelManager.description")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"description",name:"description",type:"text",width:"2xl",isRequired:!0}),l.description&&u.description?g.jsx(dr,{children:l.description}):g.jsx(cr,{margin:0,children:t("modelManager.descriptionValidationMsg")})]})]})}),g.jsxs(Lx,{children:[g.jsx(Nt,{fontWeight:"bold",fontSize:"sm",children:t("modelManager.formMessageDiffusersModelLocation")}),g.jsx(Nt,{fontSize:"sm",fontStyle:"italic",color:"var(--text-color-secondary)",children:t("modelManager.formMessageDiffusersModelLocationDesc")}),g.jsxs(un,{isInvalid:!!l.path&&u.path,children:[g.jsx(Cn,{htmlFor:"path",fontSize:"sm",children:t("modelManager.modelLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"path",name:"path",type:"text",width:"2xl"}),l.path&&u.path?g.jsx(dr,{children:l.path}):g.jsx(cr,{margin:0,children:t("modelManager.modelLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!l.repo_id&&u.repo_id,children:[g.jsx(Cn,{htmlFor:"repo_id",fontSize:"sm",children:t("modelManager.repo_id")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"repo_id",name:"repo_id",type:"text",width:"2xl"}),l.repo_id&&u.repo_id?g.jsx(dr,{children:l.repo_id}):g.jsx(cr,{margin:0,children:t("modelManager.repoIDValidationMsg")})]})]})]}),g.jsxs(Lx,{children:[g.jsx(Nt,{fontWeight:"bold",children:t("modelManager.formMessageDiffusersVAELocation")}),g.jsx(Nt,{fontSize:"sm",fontStyle:"italic",color:"var(--text-color-secondary)",children:t("modelManager.formMessageDiffusersVAELocationDesc")}),g.jsxs(un,{isInvalid:!!((d=l.vae)!=null&&d.path)&&((h=u.vae)==null?void 0:h.path),children:[g.jsx(Cn,{htmlFor:"vae.path",fontSize:"sm",children:t("modelManager.vaeLocation")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae.path",name:"vae.path",type:"text",width:"2xl"}),(m=l.vae)!=null&&m.path&&((y=u.vae)!=null&&y.path)?g.jsx(dr,{children:(b=l.vae)==null?void 0:b.path}):g.jsx(cr,{margin:0,children:t("modelManager.vaeLocationValidationMsg")})]})]}),g.jsxs(un,{isInvalid:!!((w=l.vae)!=null&&w.repo_id)&&((E=u.vae)==null?void 0:E.repo_id),children:[g.jsx(Cn,{htmlFor:"vae.repo_id",fontSize:"sm",children:t("modelManager.vaeRepoID")}),g.jsxs(jt,{alignItems:"start",children:[g.jsx(fr,{as:Xn,id:"vae.repo_id",name:"vae.repo_id",type:"text",width:"2xl"}),(_=l.vae)!=null&&_.repo_id&&((k=u.vae)!=null&&k.repo_id)?g.jsx(dr,{children:(P=l.vae)==null?void 0:P.repo_id}):g.jsx(cr,{margin:0,children:t("modelManager.vaeRepoIDValidationMsg")})]})]})]}),g.jsx(Hn,{type:"submit",className:"modal-close-btn",isLoading:n,children:t("modelManager.addModel")})]})})}})]})}function Tj({text:e,onClick:t}){return g.jsx(Re,{position:"relative",width:"50%",height:"200px",backgroundColor:"var(--background-color)",borderRadius:"0.5rem",justifyContent:"center",alignItems:"center",_hover:{cursor:"pointer",backgroundColor:"var(--accent-color)"},onClick:t,children:g.jsx(Nt,{fontWeight:"bold",children:e})})}function yNe(){const{isOpen:e,onOpen:t,onClose:n}=Xd(),r=le(s=>s.ui.addNewModelUIOption),i=Te(),{t:o}=De(),a=()=>{n(),i(Uh(null))};return g.jsxs(g.Fragment,{children:[g.jsx(Hn,{"aria-label":o("modelManager.addNewModel"),tooltip:o("modelManager.addNewModel"),onClick:t,className:"modal-close-btn",size:"sm",children:g.jsxs(Re,{columnGap:"0.5rem",alignItems:"center",children:[g.jsx(S2,{}),o("modelManager.addNew")]})}),g.jsxs(Qd,{isOpen:e,onClose:a,size:"3xl",closeOnOverlayClick:!1,children:[g.jsx(sc,{}),g.jsxs(Jd,{className:"modal add-model-modal",fontFamily:"Inter",margin:"auto",children:[g.jsx(dp,{children:o("modelManager.addNewModel")}),g.jsx(b0,{marginTop:"0.3rem"}),g.jsxs(t0,{className:"add-model-modal-body",children:[r==null&&g.jsxs(Re,{columnGap:"1rem",children:[g.jsx(Tj,{text:o("modelManager.addCheckpointModel"),onClick:()=>i(Uh("ckpt"))}),g.jsx(Tj,{text:o("modelManager.addDiffuserModel"),onClick:()=>i(Uh("diffusers"))})]}),r=="ckpt"&&g.jsx(mNe,{}),r=="diffusers"&&g.jsx(vNe,{})]})]})]})]})}function Ax(e){const{isProcessing:t,isConnected:n}=le(y=>y.system),r=le(y=>y.system.openModel),{t:i}=De(),o=Te(),{name:a,status:s,description:l}=e,u=()=>{o(XU(a))},d=()=>{o(ZI(a))},h=()=>{o(I_e(a)),o(ZI(null))},m=()=>{switch(s){case"active":return"var(--status-good-color)";case"cached":return"var(--status-working-color)";case"not loaded":return"var(--text-color-secondary)"}};return g.jsxs(Re,{alignItems:"center",padding:"0.5rem 0.5rem",borderRadius:"0.2rem",backgroundColor:a===r?"var(--accent-color)":"",_hover:{backgroundColor:a===r?"var(--accent-color)":"var(--background-color)"},children:[g.jsx(ko,{onClick:d,cursor:"pointer",children:g.jsx(ui,{label:l,hasArrow:!0,placement:"bottom",children:g.jsx(Nt,{fontWeight:"bold",children:a})})}),g.jsx(gH,{onClick:d,cursor:"pointer"}),g.jsxs(Re,{gap:2,alignItems:"center",children:[g.jsx(Nt,{color:m(),children:s}),g.jsx(Ra,{size:"sm",onClick:u,isDisabled:s==="active"||t||!n,className:"modal-close-btn",children:i("modelManager.load")}),g.jsx(Ye,{icon:g.jsx(u7e,{}),size:"sm",onClick:d,"aria-label":"Modify Config",isDisabled:s==="active"||t||!n,className:" modal-close-btn"}),g.jsx(M4,{title:i("modelManager.deleteModel"),acceptCallback:h,acceptButtonText:i("modelManager.delete"),triggerComponent:g.jsx(Ye,{icon:g.jsx(c7e,{}),size:"sm","aria-label":i("modelManager.deleteConfig"),isDisabled:s==="active"||t||!n,className:" modal-close-btn",style:{backgroundColor:"var(--btn-delete-image)"}}),children:g.jsxs(Re,{rowGap:"1rem",flexDirection:"column",children:[g.jsx("p",{style:{fontWeight:"bold"},children:i("modelManager.deleteMsg1")}),g.jsx("p",{style:{color:"var(--text-color-secondary"},children:i("modelManager.deleteMsg2")})]})})]})]})}function bNe(){const e=Te(),{isOpen:t,onOpen:n,onClose:r}=Xd(),i=le(mke),{t:o}=De(),[a,s]=S.useState(Object.keys(i)[0]),[l,u]=S.useState(Object.keys(i)[1]),[d,h]=S.useState("none"),[m,y]=S.useState(""),[b,w]=S.useState(.5),[E,_]=S.useState("weighted_sum"),[k,P]=S.useState("root"),[L,O]=S.useState(""),[D,R]=S.useState(!1),N=Object.keys(i).filter(z=>{if(z!==l&&z!==d)return z}),W=Object.keys(i).filter(z=>{if(z!==a&&z!==d)return z}),B=["none",...Object.keys(i).filter(z=>{if(z!==a&&z!==l)return z})],K=le(z=>z.system.isProcessing),ne=()=>{let z=[a,l,d];z=z.filter(U=>U!=="none");const $={models_to_merge:z,merged_model_name:m!==""?m:z.join("-"),alpha:b,interp:E,model_merge_save_path:k==="root"?null:L,force:D};e(D_e($))};return g.jsxs(g.Fragment,{children:[g.jsx(Hn,{onClick:n,className:"modal-close-btn",size:"sm",children:g.jsx(Re,{columnGap:"0.5rem",alignItems:"center",children:o("modelManager.mergeModels")})}),g.jsxs(Qd,{isOpen:t,onClose:r,size:"4xl",closeOnOverlayClick:!1,children:[g.jsx(sc,{}),g.jsxs(Jd,{className:"modal",fontFamily:"Inter",margin:"auto",children:[g.jsx(dp,{children:o("modelManager.mergeModels")}),g.jsx(b0,{}),g.jsxs(Re,{flexDirection:"column",padding:"1rem",rowGap:4,children:[g.jsxs(Re,{flexDirection:"column",marginBottom:"1rem",padding:"1rem",borderRadius:"0.3rem",backgroundColor:"var(--background-color)",rowGap:1,children:[g.jsx(Nt,{children:o("modelManager.modelMergeHeaderHelp1")}),g.jsx(Nt,{fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.modelMergeHeaderHelp2")})]}),g.jsxs(Re,{columnGap:4,children:[g.jsx(ta,{label:o("modelManager.modelOne"),validValues:N,onChange:z=>s(z.target.value)}),g.jsx(ta,{label:o("modelManager.modelTwo"),validValues:W,onChange:z=>u(z.target.value)}),g.jsx(ta,{label:o("modelManager.modelThree"),validValues:B,onChange:z=>{z.target.value!=="none"?(h(z.target.value),_("add_difference")):(h("none"),_("weighted_sum"))}})]}),g.jsx(Xn,{label:o("modelManager.mergedModelName"),value:m,onChange:z=>y(z.target.value)}),g.jsxs(Re,{flexDir:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",rowGap:2,children:[g.jsx(Nn,{label:o("modelManager.alpha"),min:.01,max:.99,step:.01,value:b,onChange:z=>w(z),withInput:!0,withReset:!0,handleReset:()=>w(.5),withSliderMarks:!0}),g.jsx(Nt,{fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.modelMergeAlphaHelp")})]}),g.jsxs(Re,{columnGap:4,backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",children:[g.jsx(Nt,{fontWeight:"bold",fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.interpolationType")}),g.jsx(jy,{value:E,onChange:z=>_(z),children:g.jsx(Re,{columnGap:4,children:d==="none"?g.jsxs(g.Fragment,{children:[g.jsx(qo,{value:"weighted_sum",children:"weighted_sum"}),g.jsx(qo,{value:"sigmoid",children:"sigmoid"}),g.jsx(qo,{value:"inv_sigmoid",children:"inv_sigmoid"})]}):g.jsx(qo,{value:"add_difference",children:g.jsx(ui,{label:o("modelmanager:modelMergeInterpAddDifferenceHelp"),children:"add_difference"})})})})]}),g.jsxs(Re,{gap:4,flexDirection:"column",backgroundColor:"var(--background-color)",padding:"1rem 1rem",borderRadius:"0.2rem",children:[g.jsxs(Re,{columnGap:4,children:[g.jsx(Nt,{fontWeight:"bold",fontSize:"0.9rem",color:"var(--text-color-secondary)",children:o("modelManager.mergedModelSaveLocation")}),g.jsx(jy,{value:k,onChange:z=>P(z),children:g.jsxs(Re,{columnGap:4,children:[g.jsx(qo,{value:"root",children:o("modelManager.invokeAIFolder")}),g.jsx(qo,{value:"custom",children:o("modelManager.custom")})]})})]}),k==="custom"&&g.jsx(Xn,{label:o("modelManager.mergedModelCustomSaveLocation"),value:L,onChange:z=>O(z.target.value)})]}),g.jsx(Yn,{label:o("modelManager.ignoreMismatch"),isChecked:D,onChange:z=>R(z.target.checked),fontWeight:"bold"}),g.jsx(Hn,{onClick:ne,isLoading:K,isDisabled:k==="custom"&&L==="",className:"modal modal-close-btn",children:o("modelManager.merge")})]})]})]})]})}const xNe=lt(gr,e=>Pe.map(e.model_list,(n,r)=>({name:r,...n})),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}});function x6({label:e,isActive:t,onClick:n}){return g.jsx(Hn,{onClick:n,isActive:t,_active:{backgroundColor:"var(--accent-color)",_hover:{backgroundColor:"var(--accent-color)"}},size:"sm",children:e})}const SNe=()=>{const e=le(xNe),[t,n]=Ke.useState(!1);Ke.useEffect(()=>{const m=setTimeout(()=>{n(!0)},200);return()=>clearTimeout(m)},[]);const[r,i]=S.useState(""),[o,a]=S.useState("all"),[s,l]=S.useTransition(),{t:u}=De(),d=m=>{l(()=>{i(m.target.value)})},h=S.useMemo(()=>{const m=[],y=[],b=[],w=[];return e.forEach((E,_)=>{E.name.toLowerCase().includes(r.toLowerCase())&&(b.push(g.jsx(Ax,{name:E.name,status:E.status,description:E.description},_)),E.format===o&&w.push(g.jsx(Ax,{name:E.name,status:E.status,description:E.description},_))),E.format!=="diffusers"?m.push(g.jsx(Ax,{name:E.name,status:E.status,description:E.description},_)):y.push(g.jsx(Ax,{name:E.name,status:E.status,description:E.description},_))}),r!==""?o==="all"?g.jsx(ko,{marginTop:"1rem",children:b}):g.jsx(ko,{marginTop:"1rem",children:w}):g.jsxs(Re,{flexDirection:"column",rowGap:"1.5rem",children:[o==="all"&&g.jsxs(g.Fragment,{children:[g.jsxs(ko,{children:[g.jsx(Nt,{fontWeight:"bold",backgroundColor:"var(--background-color)",padding:"0.5rem 1rem",borderRadius:"0.5rem",margin:"1rem 0",width:"max-content",fontSize:"14",children:u("modelManager.checkpointModels")}),m]}),g.jsxs(ko,{children:[g.jsx(Nt,{fontWeight:"bold",backgroundColor:"var(--background-color)",padding:"0.5rem 1rem",borderRadius:"0.5rem",marginBottom:"0.5rem",width:"max-content",fontSize:"14",children:u("modelManager.diffusersModels")}),y]})]}),o==="ckpt"&&g.jsx(Re,{flexDirection:"column",marginTop:"1rem",children:m}),o==="diffusers"&&g.jsx(Re,{flexDirection:"column",marginTop:"1rem",children:y})]})},[e,r,u,o]);return g.jsxs(Re,{flexDirection:"column",rowGap:"2rem",width:"50%",minWidth:"50%",children:[g.jsxs(Re,{justifyContent:"space-between",children:[g.jsx(Nt,{fontSize:"1.4rem",fontWeight:"bold",children:u("modelManager.availableModels")}),g.jsxs(Re,{gap:2,children:[g.jsx(yNe,{}),g.jsx(bNe,{})]})]}),g.jsx(Xn,{onChange:d,label:u("modelManager.search")}),g.jsxs(Re,{flexDirection:"column",gap:1,maxHeight:window.innerHeight-360,overflow:"scroll",paddingRight:"1rem",children:[g.jsxs(Re,{columnGap:"0.5rem",children:[g.jsx(x6,{label:u("modelManager.allModels"),onClick:()=>a("all"),isActive:o==="all"}),g.jsx(x6,{label:u("modelManager.checkpointModels"),onClick:()=>a("ckpt"),isActive:o==="ckpt"}),g.jsx(x6,{label:u("modelManager.diffusersModels"),onClick:()=>a("diffusers"),isActive:o==="diffusers"})]}),t?h:g.jsx(Re,{width:"100%",minHeight:"30rem",justifyContent:"center",alignItems:"center",children:g.jsx(v0,{})})]})]})};function wNe({children:e}){const{isOpen:t,onOpen:n,onClose:r}=Xd(),i=le(s=>s.system.model_list),o=le(s=>s.system.openModel),{t:a}=De();return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:n}),g.jsxs(Qd,{isOpen:t,onClose:r,size:"6xl",children:[g.jsx(sc,{}),g.jsxs(Jd,{className:"modal",fontFamily:"Inter",children:[g.jsx(b0,{className:"modal-close-btn"}),g.jsx(dp,{fontWeight:"bold",children:a("modelManager.modelManager")}),g.jsxs(Re,{padding:"0 1.5rem 1.5rem 1.5rem",width:"100%",columnGap:"2rem",children:[g.jsx(SNe,{}),o&&i[o].format==="diffusers"?g.jsx(hNe,{}):g.jsx(dNe,{})]})]})]})]})}const CNe=lt([gr],e=>{const{isProcessing:t,model_list:n}=e;return{models:Pe.map(n,(i,o)=>o),isProcessing:t}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),_Ne=()=>{const e=Te(),{models:t,isProcessing:n}=le(CNe),r=le(rG),i=o=>{e(XU(o.target.value))};return g.jsx(Re,{style:{paddingLeft:"0.3rem"},children:g.jsx(ta,{style:{fontSize:"0.8rem"},tooltip:r.description,isDisabled:n,value:r.name,validValues:t,onChange:i})})},kNe=lt([gr,yp],(e,t)=>{const{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:i,model_list:o,saveIntermediatesInterval:a,enableImageDebugging:s}=e,{shouldUseCanvasBetaLayout:l,shouldUseSliders:u}=t;return{shouldDisplayInProgressType:n,shouldConfirmOnDelete:r,shouldDisplayGuides:i,models:Pe.map(o,(d,h)=>h),saveIntermediatesInterval:a,enableImageDebugging:s,shouldUseCanvasBetaLayout:l,shouldUseSliders:u}},{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),ENe=({children:e})=>{const t=Te(),{t:n}=De(),r=le(P=>P.generation.steps),{isOpen:i,onOpen:o,onClose:a}=Xd(),{isOpen:s,onOpen:l,onClose:u}=Xd(),{shouldDisplayInProgressType:d,shouldConfirmOnDelete:h,shouldDisplayGuides:m,saveIntermediatesInterval:y,enableImageDebugging:b,shouldUseCanvasBetaLayout:w,shouldUseSliders:E}=le(kNe),_=()=>{JU.purge().then(()=>{a(),l()})},k=P=>{P>r&&(P=r),P<1&&(P=1),t(U4e(P))};return g.jsxs(g.Fragment,{children:[S.cloneElement(e,{onClick:o}),g.jsxs(Qd,{isOpen:i,onClose:a,size:"lg",children:[g.jsx(sc,{}),g.jsxs(Jd,{className:"modal settings-modal",children:[g.jsx(dp,{className:"settings-modal-header",children:n("common.settingsLabel")}),g.jsx(b0,{className:"modal-close-btn"}),g.jsxs(t0,{className:"settings-modal-content",children:[g.jsxs("div",{className:"settings-modal-items",children:[g.jsxs("div",{className:"settings-modal-item",style:{gridAutoFlow:"row",rowGap:"0.5rem"},children:[g.jsx(ta,{label:n("settings.displayInProgress"),validValues:tCe,value:d,onChange:P=>t(j4e(P.target.value))}),d==="full-res"&&g.jsx(cc,{label:n("settings.saveSteps"),min:1,max:r,step:1,onChange:k,value:y,width:"auto",textAlign:"center"})]}),g.jsx(Ea,{label:n("settings.confirmOnDelete"),isChecked:h,onChange:P=>t(GV(P.target.checked))}),g.jsx(Ea,{label:n("settings.displayHelpIcons"),isChecked:m,onChange:P=>t(B4e(P.target.checked))}),g.jsx(Ea,{label:n("settings.useCanvasBeta"),isChecked:w,onChange:P=>t(i5e(P.target.checked))}),g.jsx(Ea,{label:n("settings.useSlidersForAll"),isChecked:E,onChange:P=>t(a5e(P.target.checked))})]}),g.jsxs("div",{className:"settings-modal-items",children:[g.jsx("h2",{style:{fontWeight:"bold"},children:"Developer"}),g.jsx(Ea,{label:n("settings.enableImageDebugging"),isChecked:b,onChange:P=>t(G4e(P.target.checked))})]}),g.jsxs("div",{className:"settings-modal-reset",children:[g.jsx(Bh,{size:"md",children:n("settings.resetWebUI")}),g.jsx(Ra,{colorScheme:"red",onClick:_,children:n("settings.resetWebUI")}),g.jsx(Nt,{children:n("settings.resetWebUIDesc1")}),g.jsx(Nt,{children:n("settings.resetWebUIDesc2")})]})]}),g.jsx(Vw,{children:g.jsx(Ra,{onClick:a,className:"modal-close-btn",children:n("common.close")})})]})]}),g.jsxs(Qd,{closeOnOverlayClick:!1,isOpen:s,onClose:u,isCentered:!0,children:[g.jsx(sc,{bg:"blackAlpha.300",backdropFilter:"blur(40px)"}),g.jsx(Jd,{children:g.jsx(t0,{pb:6,pt:6,children:g.jsx(Re,{justifyContent:"center",children:g.jsx(Nt,{fontSize:"lg",children:g.jsx(Nt,{children:n("settings.resetComplete")})})})})})]})]})},PNe=lt(gr,e=>({isConnected:e.isConnected,isProcessing:e.isProcessing,currentIteration:e.currentIteration,totalIterations:e.totalIterations,currentStatus:e.currentStatus,hasError:e.hasError,wasErrorSeen:e.wasErrorSeen}),{memoizeOptions:{resultEqualityCheck:Pe.isEqual}}),TNe=()=>{const{isConnected:e,isProcessing:t,currentIteration:n,totalIterations:r,currentStatus:i,hasError:o,wasErrorSeen:a}=le(PNe),s=Te(),{t:l}=De(),{colorMode:u}=sp();let d;e&&!o?d="ok":d="error";let h=i;t&&(d="working"),h&&t&&r>1&&(h=`${l(h)} (${n}/${r})`);const m=o&&!a?"Click to clear, check logs for details":void 0,y=o&&!a?"pointer":"initial",b=()=>{(o||!a)&&s(qV())};return g.jsx(ui,{label:m,children:g.jsx(Nt,{cursor:y,onClick:b,sx:{fontSize:"xs",fontWeight:"600",textShadow:`${u}.${d}`,color:`${d}.${pt("800","300")({colorMode:u})}`},children:l(h)})})};function MNe(){const{t:e}=De(),{setColorMode:t,colorMode:n}=sp(),r=Te(),i=le(l=>l.ui.currentTheme),o={dark:e("common.darkTheme"),light:e("common.lightTheme"),green:e("common.greenTheme")};S.useEffect(()=>{n!==i&&t(i)},[t,n,i]);const a=l=>{r(J4e(l))},s=()=>{const l=[];return Object.keys(o).forEach(u=>{l.push(g.jsx(Hn,{style:{width:"6rem"},isChecked:i===u,leftIcon:i===u?g.jsx(y4,{}):void 0,size:"sm",onClick:()=>a(u),children:o[u]},u))}),l};return g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":e("common.themeLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx(Yke,{})}),children:g.jsx(jt,{align:"stretch",children:s()})})}function LNe(){const{t:e,i18n:t}=De(),n={ar:e("common.langArabic",{lng:"ar"}),nl:e("common.langDutch",{lng:"nl"}),en:e("common.langEnglish",{lng:"en"}),fr:e("common.langFrench",{lng:"fr"}),de:e("common.langGerman",{lng:"de"}),it:e("common.langItalian",{lng:"it"}),ja:e("common.langJapanese",{lng:"ja"}),pl:e("common.langPolish",{lng:"pl"}),pt_Br:e("common.langBrPortuguese",{lng:"pt_Br"}),ru:e("common.langRussian",{lng:"ru"}),zh_Cn:e("common.langSimplifiedChinese",{lng:"zh_Cn"}),es:e("common.langSpanish",{lng:"es"}),uk:e("common.langUkranian",{lng:"ua"})},r=()=>{const i=[];return Object.keys(n).forEach(o=>{i.push(g.jsx(Hn,{isChecked:localStorage.getItem("i18nextLng")===o,leftIcon:localStorage.getItem("i18nextLng")===o?g.jsx(y4,{}):void 0,onClick:()=>t.changeLanguage(o),"aria-label":n[o],size:"sm",minWidth:"200px",children:n[o]},o))}),i};return g.jsx(Qs,{trigger:"hover",triggerComponent:g.jsx(Ye,{"aria-label":e("common.languagePickerLabel"),tooltip:e("common.languagePickerLabel"),icon:g.jsx(Gke,{}),size:"sm",variant:"link","data-variant":"link",fontSize:26}),children:g.jsx(jt,{children:r()})})}const ANe=()=>{const{t:e}=De(),t=le(n=>n.system.app_version);return g.jsxs(p3,{gridTemplateColumns:"auto max-content",children:[g.jsxs(Re,{alignItems:"center",gap:"0.7rem",ps:"0.5rem",children:[g.jsx(c2,{src:Pq,alt:"invoke-ai-logo",w:"32px",h:"32px"}),g.jsxs(Re,{alignItems:"center",columnGap:"0.6rem",children:[g.jsxs(Nt,{fontSize:"1.4rem",children:["invoke ",g.jsx("strong",{children:"ai"})]}),g.jsx(Nt,{fontWeight:"bold",color:"var(--text-color-secondary)",marginTop:"0.2rem",children:t})]})]}),g.jsxs(Re,{alignItems:"center",gap:"0.5rem",children:[g.jsx(TNe,{}),g.jsx(_Ne,{}),g.jsx(wNe,{children:g.jsx(Ye,{"aria-label":e("modelManager.modelManager"),tooltip:e("modelManager.modelManager"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx($ke,{})})}),g.jsx(mOe,{children:g.jsx(Ye,{"aria-label":e("common.hotkeysLabel"),tooltip:e("common.hotkeysLabel"),size:"sm",variant:"link","data-variant":"link",fontSize:20,icon:g.jsx(Uke,{})})}),g.jsx(MNe,{}),g.jsx(LNe,{}),g.jsx(Ye,{"aria-label":e("common.reportBugLabel"),tooltip:e("common.reportBugLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(zh,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI/issues",children:g.jsx(Nke,{})})}),g.jsx(Ye,{"aria-label":e("common.githubLabel"),tooltip:e("common.githubLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(zh,{isExternal:!0,href:"http://github.com/invoke-ai/InvokeAI",children:g.jsx(Oke,{})})}),g.jsx(Ye,{"aria-label":e("common.discordLabel"),tooltip:e("common.discordLabel"),variant:"link","data-variant":"link",fontSize:20,size:"sm",icon:g.jsx(zh,{isExternal:!0,href:"https://discord.gg/ZmtBAhwWhy",children:g.jsx(Ake,{})})}),g.jsx(ENe,{children:g.jsx(Ye,{"aria-label":e("common.settingsLabel"),tooltip:e("common.settingsLabel"),variant:"link","data-variant":"link",fontSize:22,size:"sm",icon:g.jsx(k7e,{})})})]})]})};function ONe(){async function e(n=""){return await fetch(n,{method:"GET",cache:"no-cache"})}const t=()=>{const n=document.location;e(n+"/flaskwebgui-keep-server-alive").then(i=>i)};(!{}.NODE_ENV||{}.NODE_ENV==="production")&&document.addEventListener("DOMContentLoaded",()=>{t(),setInterval(t,3e3)})}const INe=()=>{const e=Te(),t=le(gke),n=u2();S.useEffect(()=>{t.forEach(r=>{n(r)}),t.length>0&&e(K4e())},[e,n,t])},RNe=()=>{const e=Te(),{shouldShowGalleryButton:t,shouldPinGallery:n}=le(sP),r=()=>{e(Lh(!0)),n&&e(Oi(!0))};return t?g.jsx(Ye,{tooltip:"Show Gallery (G)",tooltipProps:{placement:"top"},"aria-label":"Show Gallery",onClick:r,pos:"absolute",top:"50%",transform:"translate(0, -50%)",zIndex:20,p:0,right:0,borderRadius:"0.5rem 0 0 0.5rem",px:"0.75rem",h:"12rem",w:"2rem",children:g.jsx(EG,{})}):null};ONe();const DNe=()=>(INe(),g.jsxs(p3,{w:"100vw",h:"100vh",children:[g.jsxs(uOe,{children:[g.jsx(pOe,{}),g.jsxs(p3,{gap:"1rem",p:"1rem",gridAutoRows:"min-content auto",w:"100vw",h:"calc(100vh - 0.3rem)",children:[g.jsx(ANe,{}),g.jsx(pAe,{})]}),g.jsx("div",{className:"app-console",children:g.jsx(fOe,{})})]}),g.jsx(hPe,{}),g.jsx(RNe,{})]})),Mj=()=>g.jsx(Re,{width:"100vw",height:"100vh",alignItems:"center",justifyContent:"center",children:g.jsx(v0,{thickness:"2px",speed:"1s",emptyColor:"gray.200",color:"gray.400",size:"xl"})});const jNe={base:{50:"#F2F2F2",100:"#DCDCDB",200:"#C5C5C4",300:"#AEAEAC",400:"#989895",500:"#81817E",600:"#676765",700:"#4D4D4C",800:"#343432",900:"#1A1A19"},accent:{50:"#EFF5F1",100:"#D3E4D9",200:"#B6D3C0",300:"#9AC1A8",400:"#7DB090",500:"#619E77",600:"#4D7F5F",700:"#3A5F47",800:"#273F30",900:"#132018"},working:{50:"#FBF7EA",100:"#F3E9C3",200:"#ECDA9D",300:"#E4CC77",400:"#DDBE50",500:"#D5AF2A",600:"#AB8C21",700:"#806919",800:"#554611",900:"#2B2308"},warning:{50:"#FCF2E9",100:"#F6D9C1",200:"#F0C199",300:"#EAA970",400:"#E59148",500:"#DF7920",600:"#B2611A",700:"#864913",800:"#59300D",900:"#2D1806"},ok:{50:"#ECF8ED",100:"#CAEDCC",200:"#A8E1AB",300:"#86D58A",400:"#64C969",500:"#42BD48",600:"#359739",700:"#27722B",800:"#1A4C1D",900:"#0D260E"},error:{50:"#FFF5F5",100:"#FED7D7",200:"#FEB2B2",300:"#FC8181",400:"#F56565",500:"#E53E3E",600:"#C53030",700:"#9B2C2C",800:"#822727",900:"#63171B"}};function Mn(e,t={}){let n=!1;function r(){if(!n){n=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function i(...d){r();for(const h of d)t[h]=l(h);return Mn(e,t)}function o(...d){for(const h of d)h in t||(t[h]=l(h));return Mn(e,t)}function a(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.selector]))}function s(){return Object.fromEntries(Object.entries(t).map(([h,m])=>[h,m.className]))}function l(d){const y=`chakra-${(["container","root"].includes(d??"")?[e]:[e,d]).filter(Boolean).join("__")}`;return{className:y,selector:`.${y}`,toString:()=>d}}return{parts:i,toPart:l,extend:o,selectors:a,classnames:s,get keys(){return Object.keys(t)},__type:{}}}var NNe=Mn("accordion").parts("root","container","button","panel").extend("icon");Mn("alert").parts("title","description","container").extend("icon","spinner");Mn("avatar").parts("label","badge","container").extend("excessLabel","group");Mn("breadcrumb").parts("link","item","container").extend("separator");Mn("button").parts();Mn("checkbox").parts("control","icon","container").extend("label");Mn("progress").parts("track","filledTrack").extend("label");Mn("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer");Mn("editable").parts("preview","input","textarea");Mn("form").parts("container","requiredIndicator","helperText");Mn("formError").parts("text","icon");var $Ne=Mn("input").parts("addon","field","element");Mn("list").parts("container","item","icon");Mn("menu").parts("button","list","item").extend("groupTitle","command","divider");Mn("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer");var FNe=Mn("numberinput").parts("root","field","stepperGroup","stepper");Mn("pininput").parts("field");var BNe=Mn("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),zNe=Mn("progress").parts("label","filledTrack","track");Mn("radio").parts("container","control","label");var HNe=Mn("select").parts("field","icon"),WNe=Mn("slider").parts("container","track","thumb","filledTrack","mark");Mn("stat").parts("container","label","helpText","number","icon");var VNe=Mn("switch").parts("container","track","thumb");Mn("table").parts("table","thead","tbody","tr","th","td","tfoot","caption");var UNe=Mn("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator");Mn("tag").parts("container","label","closeButton");Mn("card").parts("container","header","body","footer");const{definePartsStyle:GNe,defineMultiStyleConfig:qNe}=cn(NNe.keys),KNe={border:"none",pt:2},YNe=e=>{const{colorScheme:t}=e;return{fontWeight:"600",maxW:"22.5rem",borderRadius:"5",border:"none",bg:pt(`${t}.200`,`${t}.800`)(e),_hover:{bg:pt(`${t}.300`,`${t}.700`)(e)},_expanded:{bg:pt(`${t}.200`,`${t}.800`)(e),borderTopRadius:5,borderBottomRadius:0,_hover:{bg:pt(`${t}.100`,`${t}.700`)(e)}}}},XNe=e=>{const{colorScheme:t}=e;return{bg:pt(`${t}.200`,`${t}.800`)(e),borderTopRadius:0,borderBottomRadius:5,p:"1rem"}},ZNe={},QNe=GNe(e=>({container:KNe,button:YNe(e),panel:XNe(e),icon:ZNe})),JNe=qNe({baseStyle:QNe,defaultProps:{colorScheme:"base"}}),e$e=e=>{const{colorScheme:t}=e,n={bg:pt(`${t}.200`,`${t}.600`)(e),color:pt(`${t}.700`,`${t}.100`)(e),svg:{fill:pt(`${t}.700`,`${t}.100`)(e)}};return{bg:t==="base"?pt(`${t}.300`,`${t}.700`)(e):pt(`${t}.300`,`${t}.700`)(e),color:pt(`${t}.800`,`${t}.100`)(e),svg:{fill:pt(`${t}.800`,`${t}.100`)(e)},_disabled:n,_hover:{bg:t==="base"?pt(`${t}.400`,`${t}.600`)(e):pt(`${t}.400`,`${t}.600`)(e),color:pt("black",`${t}.50`)(e),svg:{fill:pt("black",`${t}.50`)(e)},_disabled:n},_checked:{bg:pt("accent.200","accent.700")(e),color:pt("accent.800","accent.100")(e),svg:{fill:pt("accent.800","accent.100")(e)},_disabled:n,_hover:{bg:pt("accent.300","accent.600")(e),color:pt("accent.900","accent.50")(e),svg:{fill:pt("accent.900","accent.50")(e)},_disabled:n}}}},t$e={variants:{solid:e$e},defaultProps:{variant:"solid",colorScheme:"base"}},n$e=e=>({fontSize:"sm",marginEnd:0,mb:1,fontWeight:"400",transitionProperty:"common",transitionDuration:"normal",whiteSpace:"nowrap",_disabled:{opacity:.4},color:pt("base.600","base.300")(e)}),r$e={baseStyle:n$e},N4=e=>({outline:"none",borderWidth:2,borderStyle:"solid",borderColor:pt("base.300","base.700")(e),bg:pt("base.200","base.900")(e),borderRadius:5,color:pt("base.900","base.100")(e),_hover:{borderColor:pt("accent.400","accent.600")(e),boxShadow:pt("light","dark")(e)},_focus:{borderColor:pt("accent.500","accent.700")(e),boxShadow:pt("light.accent","dark.accent")(e),_hover:{boxShadow:pt("light.accentHover","light.accentHover")(e),borderColor:pt("accent.500","accent.600")(e)}},_invalid:{borderColor:pt("error.400","error.800")(e)},_disabled:{borderColor:pt("base.300","base.700")(e),bg:pt("base.400","base.700")(e),color:pt("base.600","base.400")(e)},_placeholder:{color:pt("base.600","base.400")(e)}}),{definePartsStyle:i$e,defineMultiStyleConfig:o$e}=cn($Ne.keys),a$e=i$e(e=>({field:N4(e)})),s$e=o$e({variants:{invokeAI:a$e},defaultProps:{size:"sm",variant:"invokeAI"}}),{defineMultiStyleConfig:l$e,definePartsStyle:u$e}=cn(FNe.keys),c$e=e=>({height:"2rem"}),d$e=e=>({border:"none",fontWeight:"600",height:"auto",py:1,ps:2,pe:6,...N4(e)}),f$e=e=>({display:"flex"}),h$e=e=>({border:"none",px:2,py:0,mx:-2,my:0,svg:{color:pt("base.600","base.300")(e),width:2.5,height:2.5,_hover:{color:pt("base.900","base.50")(e)}}}),p$e=u$e(e=>({root:c$e(e),field:d$e(e),stepperGroup:f$e(e),stepper:h$e(e)})),g$e=l$e({variants:{outline:p$e},defaultProps:{size:"sm",variant:"outline"}}),{defineMultiStyleConfig:m$e,definePartsStyle:v$e}=cn(BNe.keys),Lj=vP("popper-bg"),Aj=vP("popper-arrow-bg"),Oj=vP("popper-arrow-shadow-color"),y$e=e=>({[Lj.variable]:"colors.base.200",[Aj.variable]:"colors.base.200",[Oj.variable]:"colors.base.500",_dark:{[Aj.variable]:"colors.base.800",[Lj.variable]:"colors.base.800",[Oj.variable]:"colors.base.600"},minW:"unset",width:"unset",p:"1rem",borderWidth:"2px",borderStyle:"solid",borderColor:pt("base.500","base.600")(e),borderRadius:"md",bg:pt("base.200","base.800")(e)}),b$e=v$e(e=>({content:y$e(e)})),x$e=m$e({variants:{invokeAI:b$e},defaultProps:{variant:"invokeAI"}}),{defineMultiStyleConfig:S$e,definePartsStyle:w$e}=cn(zNe.keys),C$e=e=>({bg:pt("accent.400","accent.600")(e),transition:"width 0.2s ease-in-out",_indeterminate:{bgGradient:`linear(to-r, transparent 0%, ${pt("accent.400","accent.600")(e)} 50%, transparent 100%);`}}),_$e=e=>({bg:pt("base.300","base.800")(e)}),k$e=w$e(e=>({filledTrack:C$e(e),track:_$e(e)})),E$e=S$e({variants:{invokeAI:k$e}}),{definePartsStyle:P$e,defineMultiStyleConfig:T$e}=cn(HNe.keys),M$e=e=>({color:pt("base.600","base.300")(e)}),L$e=e=>({fontWeight:"600",...N4(e)}),A$e=P$e(e=>({field:L$e(e),icon:M$e(e)})),O$e=T$e({variants:{outline:A$e},defaultProps:{size:"sm",variant:"outline"}}),{definePartsStyle:I$e,defineMultiStyleConfig:R$e}=cn(WNe.keys),D$e=e=>({bg:pt("base.300","base.400")(e),h:1.5}),j$e=e=>{const{colorScheme:t}=e;return{bg:pt(`${t}.400`,`${t}.500`)(e),h:1.5}},N$e=e=>({w:2,h:4}),$$e=e=>({fontSize:"xs",fontWeight:"500",color:pt("base.800","base.200")(e),mt:2,left:"unset"}),F$e=I$e(e=>({track:D$e(e),filledTrack:j$e(e),thumb:N$e(e),mark:$$e(e)})),B$e=R$e({variants:{invokeAI:F$e},defaultProps:{variant:"invokeAI",colorScheme:"accent"}}),{defineMultiStyleConfig:z$e,definePartsStyle:H$e}=cn(VNe.keys),W$e=e=>{const{colorScheme:t}=e;return{bg:pt("base.400","base.600")(e),_focusVisible:{boxShadow:"none"},_checked:{bg:pt(`${t}.400`,`${t}.500`)(e)}}},V$e=e=>{const{colorScheme:t}=e;return{bg:pt(`${t}.50`,`${t}.50`)(e)}},U$e=H$e(e=>({container:{},track:W$e(e),thumb:V$e(e)})),G$e=z$e({baseStyle:U$e,defaultProps:{size:"md",colorScheme:"accent"}}),{defineMultiStyleConfig:q$e,definePartsStyle:K$e}=cn(UNe.keys),Y$e=e=>({display:"flex",columnGap:"1rem"}),X$e=e=>({}),Z$e=e=>({display:"flex",flexDirection:"column",gap:1,color:pt("base.500","base.700")(e),button:{fontSize:"0.85rem",padding:"0.5rem",borderRadius:5,_selected:{bg:pt("accent.200","accent.700")(e),color:pt("accent.800","accent.100")(e),_hover:{bg:pt("accent.300","accent.600")(e),color:pt("accent.900","accent.50")(e)}},_hover:{bg:pt("base.300","base.600")(e),color:pt("base.900","base.50")(e)}}}),Q$e=e=>({padding:0,height:"100%"}),J$e=K$e(e=>({root:Y$e(e),tab:X$e(e),tablist:Z$e(e),tabpanel:Q$e(e)})),eFe=q$e({variants:{invokeAI:J$e}}),tFe=e=>N4(e),nFe={variants:{outline:tFe},defaultProps:{size:"md",variant:"outline"}},rFe={config:{initialColorMode:"dark",useSystemColorMode:!1,cssVarPrefix:"invokeai"},styles:{global:e=>({body:{bg:pt("base.100","base.900")(e),color:pt("base.800","base.50")(e)}})},fonts:{body:"'Inter', sans-serif"},shadows:{light:{accent:"0 0 10px 0 var(--invokeai-colors-accent-300)",accentHover:"0 0 10px 0 var(--invokeai-colors-accent-400)",ok:"0 0 7px var(--invokeai-colors-ok-600)",working:"0 0 7px var(--invokeai-colors-working-600)",error:"0 0 7px var(--invokeai-colors-error-600)"},dark:{accent:"0 0 10px 0 var(--invokeai-colors-accent-600)",accentHover:"0 0 10px 0 var(--invokeai-colors-accent-500)",ok:"0 0 7px var(--invokeai-colors-ok-400)",working:"0 0 7px var(--invokeai-colors-working-400)",error:"0 0 7px var(--invokeai-colors-error-400)"}},colors:jNe,components:{Button:t$e,Input:s$e,Textarea:nFe,Tabs:eFe,Progress:E$e,Accordion:JNe,FormLabel:r$e,Switch:G$e,NumberInput:g$e,Select:O$e,Slider:B$e,Popover:x$e}},iFe=Xj({key:"invokeai-style-cache",prepend:!0}),oFe=Pce(rFe);ck.createRoot(document.getElementById("root")).render(g.jsx(Ke.StrictMode,{children:g.jsx(Rxe,{store:QU,children:g.jsx(PW,{loading:g.jsx(Mj,{}),persistor:JU,children:g.jsx(wee,{value:iFe,children:g.jsx(Zge,{theme:oFe,children:g.jsx(Ke.Suspense,{fallback:g.jsx(Mj,{}),children:g.jsx(DNe,{})})})})})})})); diff --git a/invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff b/invokeai/frontend/web/dist/assets/inter-all-100-normal-2596a8cd.woff new file mode 100644 index 0000000000000000000000000000000000000000..0306d1d7354d2d3dfd20d493443b8bea57e212ee GIT binary patch literal 131292 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 C5`pjl literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff b/invokeai/frontend/web/dist/assets/inter-all-200-normal-34e907e6.woff new file mode 100644 index 0000000000000000000000000000000000000000..9245b8f0779ad82105f58ef1132aa6f65ba1ca46 GIT binary patch literal 137016 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

    rD-Bs%QT!<=uEH-qL#9wj8s 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 z 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

    1L*kJd+>10ARyasAYt&>5b@{md$8e?vI;T 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff b/invokeai/frontend/web/dist/assets/inter-all-800-normal-ab496fbe.woff new file mode 100644 index 0000000000000000000000000000000000000000..241bb64d8f99e94b311f595308f36a2281cb4b5c GIT binary patch literal 140096 zcmcG$1y~(jmIVqSXmEE3?(Q1g-Q6{~J0!TfU)9^Jc#H z_^R%$I$u@YI@l@k>O0R;g8`9S;y1QGcCvCR&6{$BE*{=|euL_t76t$-IN z1205o9A(56lb2Hh9)AP@ks|^Dr5T|9bV??sq#_6cqC^1#Lih{ zcuol1N$_v5I?b(}+<;{)ARvgnARy!;QZj8#R<=gK>n`p=K#*L4WmC{`?k?5_ZgwCa zz<|FEg8P0y3@j*wje)fZuq*=D4#2v6Q0Gk6yRfr$bOQPCu^I#fKNtkWIJ2mj)xple z1b8no2k<_~_uU*KBG7HgP~TWzf5X5J`A8e^4U_O_3}S9P5(Eo z?GkYrGr5T$36^9Nb6Hds{PQ~1>G%;sH<-9Z2wMi;1O&gu?nxxeoD%p(zAxr}P^X{@ z-_5&SV8jmV&D-Rl(){){*SY!gQpj@dNi#E7#Go`+fsAN8nqx}KLKjP4VIhhO<0rdV zjR>i6x|Of++l-E|aw#ZoBY+;qJtRKH$@4__f_jy?>^gjZxckZ%ME;ufEreUK=f&5E z&SjRAiNao3He%C84Tkjb@CR$wasw?xt!2>Gg&d9&c=*O3)1^#Y@P zqPFeP33m6`K5`HC3gSIQpd8D8BImeQ+ZmzuqB605-EUKS}_asd%UUBR|}b@co!!guci4$>J)`ln9};xSPv1 z!DZC=9z^%{Flb||+BvJJOPxV+A9`;h;=_?&NNalLaIi-AoK+^q@2;#QX zmjo(~V}?37Sq&HK058FM1duu2{9=VUt$Ab^i&Xm=ThzsmdO0FWBG(l%B!ET%x-r0I zEfPsmRT9d2=q@7y=_5n{qaYCaNgf($fM@J$mKf2?ft^uo-BBlj|$F`j$80vNx2HI%;Mr|l}|XlIyAv4?;~ zWnd)0wf@fL-%xxctt9nfzT=E6(^c>_<$N?>hh&V&LXEYf**3wN_+cPt<*2qi5zn-< z5a6^=a!j*JWnil$OA{ti8fj*yOxX{bskCtUkPWxN zDO9(n{xTn*FsaLVOZJV$c5l2H?40%96xj-tSUJuYuT6)B=o#_%r~CURy-<DWo_VKs*t5^~Z&9AF|kF^(Q(}%;D?7m&9Ri zP-(vX=rY9X+uQjOU|+P45!h-W=6yr|O!>S@h|p&rr{;+?O&ir~K^F&?#!3Zw#$9aF zJ{X&9I=wBfRt}P;V#2{osh*{nvm8E25?ueW{R|!&>|vwyIyfO7U#hh`H5*YI?iF1c zeBOU?>O}tczB~uI4>}*ogScZpuOaO$4pxYEfwr*@B?Y*ODvZ?AsK0{k&v2gyA$>be z7#=e0Y1K!9s=h`cS+K6y%OaZNUOt6Yz}V@uLY z4Q#}=6%Y3CIk-rt{IRZR;exx~f!|#_okbJrs%M$%!-i|g5=ajCM|wxj41^afD9y6p z_TNUHJB)Zd4d&b5K6=7vALd}+vU~CMc8Ie+H_Ag}56ClXw2Q^I*^BB2xNSJ?OwZDE zA*l!d5^6NS3qHV~=8jvEnpeT%!EE!S_e$IMjVqzltj2}fBUO=D|F!TBhxO+`ZsOP? z(Pw$yuHY9Y|BpmPk)OheQsWAPzo49F=Fy!sbriIIu{x`rs3H6$KI6G?rXqnl%#jV2 zp57INIe=-&Rc)!QENQ5$IQso%e*Wc}-@`AnGX5y_F?XVh{%Eo#__eUp^L6&Qz%1QY zTDQFil_BuPTj^*0uV@+1+3oJ%zB0A}qAatJ7xHrvUzo4ixfu|b$4QTSG@gS$H3u~}A5ue~Zi2>b zF=l=S*S(kYS96Q3cRQlyU3(hwv+ZC~R3JtHgBTilyCKCT5~?V1h9EOrXRJ z2g8Ino5R4&02ao;%$!G2$A}Zg2)J^FIhwQDHrxr9m7a1MR*Rb zR5b}zHOpu&a#;;_X)W2;T ^msm?C&3okws7; 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff b/invokeai/frontend/web/dist/assets/inter-all-900-normal-50daf4f1.woff new file mode 100644 index 0000000000000000000000000000000000000000..cc3405d57f170e2e801ad0e9466ddea1a71ff763 GIT binary patch literal 135644 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 z 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 xQ@uv2aAv{{Z5(c}M^N literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-100-normal-9747741a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..519ef27e609ded33bdd8461b6e4efb65ba388947 GIT binary patch literal 6432 zcmV+*8QaEF6J224Fu^R6$fk0D>G52nxqwx+4pM9smJ00we>3I0PUCgfIsn34}&o_&A{dT!3I(5ng&;!HFwD}O6 zH9BBqgrtS!mX!=8q=OZuDB{IUg`0CG0_H{6yt`?-hI1BZ!PiZ#VnegevdeesR4IxbJ8cr)v5#BDrufaz>5Ob<+$UQA*7vVj@Q7G@|G z%oqz{##szA0UKr#XP7CL!_4Lmvw#Q8V(Vd++Xl16E|~2EFbC~{IVKY3w0$sFBp|yc z3(PI@!3dN(U?NSkki=wFuNy zZk~8xW&fmjRbEvHGnJC1eElT&L6sn^^&a(xU=IwWAc3Xr z=P75TIP=4cIQ2YGPedU-=)~03U<{7_2IJr^eggz`Li-3kw`kAA-8e53 z=O0cyoUFJD?@&rP;kJkzDck1+Ol1UQ6;~eCSZkvld?g`i;}(f-fmt4WGz&vyT~ue5 z3_iJn;MpVAjtB`Pvnym%CT7+|nB%jLJ~R}NbVFje<58oLI>o6vok_LmEUHa)sJ>;u zag*j+C>dHT&BKr(G8F6=SI+nQXq- zksXq`tKPds?rl&gY6tF5hTNf$uypeoYyfoMaAnjJ-!CWe5PaJa~{#wbMPvMMKYiM>%Y+fT36(Hs;_1r=RkGfHC! zor>$%fV4Wg)-)uvBu#0i7@;JH7)WvFc7Vbh(t2G9B;VkYg%7MQCX=DisgicUI_TM4k_#gZC&dz+v6#z&I8)UHETr)M(!WN#^%S2BW ztC7q=aos93vvJYsUrSzjwi!B*kU}bH*A+XRwKcMF=kRRiWvgwNcG$_s-z@mz+bst_ z{sIJAD9B=_1eOWr{2V@}P?!iJ;qUw?(JWc9kxdM?1y~$K+RIulc`O%drCpNbgHg~N zzN-q!73_MGPGCPAJR=5flv)!uXNrLtKu>YoH@d zNf1k7l;@>~tCZr%m;%B7G*OkUI#{3q(_rERy|V$GqO%R`fJMN(ggCQ}s1cQ*baUYmW7oJjS{5_$(NizI#x|&`>IC4QCe=?e*I_ zHbed-FoO3o5Jz1Vgia^+5Og~`h%v6UdGHy{kHbf!@it><3D>!E*aoxh$*{_bW3M0E zM3AKZd|z)tAeNJ7=jdl(3a?Iob9a7`)pPl*PXaYjM*)dl*W1g3sim)ERX*!Q}n%Ilt1!HSD)N zO9v4KxGI@nR1dWQY0XByU9niBZvR56OU~!)ohFEVbggG&#}I@YSbB9e)Y@0ph2~IK zHUd7gDVPV3z7JqA1QQA*Q_N^*_C*G3W~G8`W#wktfQ|hZL{$s+2t7@Z-k>N!D9BWd zViJwa�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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-200-normal-87d2e1ba.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d94f792fb643feefc688ed52f33fb30a00204f09 GIT binary patch literal 6680 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-300-normal-cff08766.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f98e5b23094c76aacd524cf429548ad1421bb68e GIT binary patch literal 6632 zcmV0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-400-normal-e9493683.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c1c57683d4843e1d12509659d2ac3d507abec336 GIT binary patch literal 6304 zcmV;R7+>diPew8T0RR9102rVE5C8xG05?zo02n_20RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-500-normal-f6bd191e.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d1518426fa4d59bf1c158d62f085c0f1b5a4a576 GIT binary patch literal 6724 zcmV-K8oT9pPew8T0RR9102)L95C8xG060hh02$%{0RR9100000000000000000000 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 aK5C`B~a5dvB-$0002ND9PFY literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-600-normal-9bc492f5.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b0f0af58b549572a8aab55c4b37076d72dc226a2 GIT binary patch literal 6804 zcmV;F8f)cuPew8T0RR9102-745C8xG063Tc02(p?0RR9100000000000000000000 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 C`2q<5 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-700-normal-f6c6dcaf.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..22a09b0bb7128a7218154bd296c6804e9817fe57 GIT binary patch literal 6772 zcmV-)8jIz3Pew8T0RR9102*`v5C8xG062I602&kk0RR9100000000000000000000 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

    rmL-hKd9&j#!V z>c$43OFnbHEi-RxS>S-&gU3%~9~?A;XMA2>PC_oEppY_+SD^xC1&bYA{I^G!G!Q%h#R(5|)&Z;enEzGP+P06S#j4jHn zg?yUm=d+)nkstsX2|9d2ej`(m0A#QT8njeij8dP3oC+wI3ew6yeV`1gf~`%CYN5Y` z;Q64*wQryg2E-_2+65Aeeh6U9tuz;v{kaOT1Z!}BX?%tcv-lhxm|M35Ehcb2b|w}Q zB-*Vnx&kuLq?4fb&qP(wORplr|Gd0|3(SWpz~s6iOf_9}RR>KKu9DCO-`PtD8IqVH zQ6`(1DbiWk50R>0zY3pW#|^m<;%Iz-5`JY`+-!}mmb-QTEvSH=JOJiE>&F21p?RH` zjINezB-ykCj@6-9-sf)}l$T|>Tb`^oyK7Of0}?d&}K|5U*XtJFm{Y|6=|+UXfwzDCA+ zL(@$HGxnapds_?AJUObA?r#A(kXNRW6SN+>mJSMdE5(PU2Z*)2PqTC;Ke`t{>%6M! z65FiIsl>C8)52I*J;K0m`YFD)Sz|O}_)_Yz1_)4A4{o^ZzPwmDf2MTg0lfThYz)Aw zsL-2V$Nw$WodXcaKh#b9xt$pIH_EGk7B$v)d|w7nNf3V zto669@#3~#cac7<1CPe6UQOFH2hyI7!bgjj-uH#|H%^r*mCY{2->3G)|7A_{Xkqb3 zuhid=Ww~)!L>^1@JDXGZZ1!jUvu%+vJCyf)0sFh>kxq`6GM11QU+#VvkMmAgyJ_oT zk*G)LKct3N~BjIL$08G@eB?){nel20H@(1qynQQm?sh za;96G7L?U@m)ofo?jT+bALi)Fw}b$fbWl)8W=TE28UcEBp(83;z!fN05ahJ1prQ1x zptH1T1q0jY3Z|LHSCH73#&RXoFUt)GWhg|_3KrxdXN4w|qL@!L^K3m7D71(`woF-y zaX7MPE=S~w@Sd%oe8qSKI6?^&$ib7Q_~>p*6w6XTK#0Q};L(Z|5^`e4PNwY2doPj7 zR+<8N>;jetD)DUKlUo@1e%%$|OE--zdk*H9D_n#i5$3AIY|@}u%Hh$xER=nTd>kMZ z6SI+YiWwZ#orxDuGZk2KNKJg9G`d(}WI~7FjIT(*gJ-f6!dsviJW4YW_);KQc=9uq W@SOs5*^zbZokITy*WZ)(szv}+dj7fq literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-800-normal-82994ee8.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cad49b6327f40463603c85300b5853dff5ba284e GIT binary patch literal 6836 zcmV;l8cXGOPew8T0RR9102;Ia5C8xG065eD02);Q0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-900-normal-768011c3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d1133f54c205121a2e4da5a5be57e2c5d72febeb GIT binary patch literal 6616 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-200-normal-82562199.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..eb02003206a5389a87e75d16361db2dbb0b294f0 GIT binary patch literal 10040 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 -=9j}Jy_O8E@*g*zvFV1Y?J5qctBdpxUc6* zjXi2V*w9^&Q#Zt>^xx{!b4JmKjJ|#fyLKq2fZ07*Giq9{(U@;)+E{?+c9U$?jpbJV z1O1an$zE?R)&892vmbiir=mL4GET>-8G{vEyJX7kD;i!Bmk0)am6&RvAsRV(lM``# zyp||-4^^r0!gpm-$9=q(>r@yj!zGdz)&YUrR|LRruZ zsk3TI=lQF;AS;Xc3lv~UaXn=B1$Fjw?ODTayp~fBLF{MJiDN9#aO%M58#W(kxwK-$ zekPvK?j>m71kndde(iBw{zzdo92&@L@NPThsphR0t#;Yyiotm?Um3q!Q88DO)O_{a z)Ii&I*U6P09~PPt@9L<3$-?Zisih_|lwZl@gs?Drf~(VMQ;W-H7cIVjxapFT5IR-4 zIO!Xg+I$k7gN(#6t;M*BoTZtWZlpf>;HDdha3f-Q3QVokJ!hO=Z*4+20yMxtfF-~j`APaX&S7$Xv1 z0}{%$vb&ybnhv|4RhIE(YRh#ZM+Mb5seua3#K=||W=LlMtrpA3NH4ND?)(8B4(U@< z+w@GCwzLK$y`j3jC{wv0gWg7YQ3@3HMx_MC}m|(e}tmY3g#mt$g+tkGe61MlxR43{^iDBVH)Gul5SU`XS zSnw92PI6QyQyke2XMaOq5VIXRFSfZuNW&;w#g%ojU((ztVdGo*g??g-h6d^oWO`CS zAFvRAypEmYARMY82o>_G`xKhjfyJLs+(vQlJAYxP$Z)HQZ}PcBbmIbizt% zNlt>4aN_pqcc$+Dt@msxNRsIv>xPj@#y6r^E)9{X?GmKKb?g+232~@~r6C;eL1gh9 z;DKF$JgrYGn``zJKvc|*wU`LNIwP%5M&q$Xm8d>h(!&nmC$OA#>0$UT;c`ez#;j9Mefc}d6d9>7$uB8@n& z*O8#G!^n$|u7F8;2l>r-RWFQ?Ak1Hbmgu6ev}=7GfDUG_;ig8ypTu0xG^{?IDKnC6 z3UiLe=zPa&iM?L=(MFu2^A|W+YNL0s_71>;k(V>sR74Ikv3b)+C4ab(?T>wg@oQ=VPu) zBmux<+q||58z9IiO#4 zw)7}w;wSaUoL#DN06E^$M&JK^`F{xSb=d#&4ac_k$=t z0{}ezI#L1fY=h;Kue<-_7VhE!00#^JkO2ORfXK0yM zd}Hd-iPpDDD27B|9eULKG!$WQ<6m30mC@4GfMqpe;(YyaqWBhd-pC=Z+Iu!TCv@}~ zsB`c`u-tKg4g08jFb{@B?yQ)-ot?f|qiWkFiKg;+>^qtzTGR%Ccmm+fw9$eQ=O(_w z7jMap?}&#I^6d5?v-ijB>Y z6btMdPUlq)bhbXFx{Nte=1KN_uq?tzQC8{+rA+8j=|R|gGm&s7_92_JG$*`J3xZ*Kx}C5DtogK>oM7Q5o*bJGhJxGuk*$yQi@1KsGAwtFqOA{Sbf|qIma=76$&Ei4b~{hrS|OdhTSsDxIme zE{=j6ivQlr#zCJEBSr_k#OP{&IZDJqH9z@`tBWMm8yuAR!=&|R6l)_~q32qB>kt55 zPy`PIL-(O6q?ktPjNL|)P$OeFsk$E zT&ker8;SBwL%A>;%)i1Te!SuQxd^32l{yV4>AJ$&W!7}t7g>eaGG*UKP**9X10PeU zq`nKC9Lzt)BWyp{j=EvK4Z^tL^n;-;Rh5LlAt2#ZJBkHkX8n5J4z=U)F0IX?FoTs= OXl7b literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-300-normal-66b2369e.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..294c7ff84486beb82e6d048c8fcb63cef18731f5 GIT binary patch literal 9948 zcmV<2CL`H*Pew8T0RR9104Cf35C8xG08uCa0499^0RR9100000000000000000000 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 =0bBcG$=!kY@RYytxUA%1Sa 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-500-normal-8b5f6999.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5a1646bce5f5b30acc6475ddd291acd5fb970baa GIT binary patch literal 10184 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 C)u$8y literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-600-normal-2ea11f8c.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3b4d7f4bc492bfc31a2608386b0fe7918abca4b0 GIT binary patch literal 10264 zcmV+zDCgIAPew8T0RR9104Nv$5C8xG08;b-04KTt0RR9100000000000000000000 z0000Qf;=0JE*vTbU_Vn-K~zKlgCG$I3jI{&9Seg%00A}vBm;(e1Rw>3PzN9k2OH-@ zv!Z6SUd-E552m}SB|s|*J_^WAMfDuwz}=y~TI zf7;76=^vr7Pjca(Z;kz(@!dtlQt&F80)$Lg3l$oNNTkxd6#ugCfaZ3;_>CU4WC_TK zXsI4Oa^$EIkWy$zwnQspfMNoQL70sdm=JueefH9uw{sv&h>alBsYoPGDr{_ADmwn6 z#8q50kljE3t1|@-N&g!P`1Vd?hs6mWIC$rjK+<3AyDhMG1RAEkP5>AvY_3(Z>(T>Z zpU2~Pq^@P|CrJf7vWQ?N&>^(aNxW zwhw| zbb))P2`DPn>f`@tF@OdDfTact2Z2H%m@q-GV22>#gy6;v!HXY4kO+i02?!ao5c1?9 z_Sy@fOa+2W145S(gc&mk3l>wODL%4B=@Z<&I!v}(b0ud+>B18xT6%`^v1Vof* z2pSqhoJ5FZ$q=d1AhP8^X{p*u9l%MK~3aGb@)KV8Qx@tzQS~2!E_5z7aWZ3v9#K3ssZ24!PIN$e<|H|69*xlt%VAY~CkF~R`C2<+}i%v?nn zJy48zN{}cqZUrn-K{0YDpIl0mM=|m#Q31uNq#UX#hZ>5irzA%xRx`zGp{O>=?{dJb z2a?n4fXM(TVo(wt4_Hls63kMZV~TZd(?yFAK!CVNlwg%2)+p*aCAdME+@vfvM&e)? zhC^6(2+KMLfe;))BszSO5DOtRVplso5G=t+{3se2;5f_!SvjwH1`>9{)R!1Y7!Cu3 zxseUb5F`-^L1I8+{STNNm?bk3JV7LGs3qb&!3C^ZgT(nSIXn+g6GSm4CDv`pH0Tnu zA$Wo%Sb`9&WcHb02ug?{-sYbny;8;m30HQ37WH|+Mwlv5SR`PRsKQa)XjEXyz>$TL z$7C-r=QX>a-$T9b^L7BQ8GNP*QX}L9Ve_uK#(*wEdW`5hY{;7H+HEpJA%X6On-EBo zW&pecFkgW=1~l&idJBMm3G9CW1Q@uc*4U;l+r0B))JEpXAQ}e)0L=dGTpAOw5eG|k zOZ;mUMz#P0Lx2n$xB-{~3VABbwNkCoX=;Ex(8IM&E)%%`$41iUr%_m$7 z50A!ydW4CU%$Kwv<_SH)iMBb(h8FFLr6`rNiW1q7>HLX$6mY?dBNs8`A2B@{HP$li~-Jxw

    51Qp5ax#Jeq(??Czi#wtch=O3ZGY8j7awGRV9jkVvzY6I+TbNfJJd!*=x; z&3z-O+5vKx;~NhOXD9p@kdV$6{=#JQ@a|f*Ww{*6z|{*l2gGvxJ|HIfpn%N!OcL{> z{wF1=XPXdMh>`yEetiPI`EgeZO=|n^GmsNToq?;3vpOG=4yP+5HkJH0ywsq%~~zvRCIKks8_-4 zj&Wxf(j6G5yAw_yE<-<6cQ#-x@u(Xay*e^c`EsVoR-Q zsCARUv*6uEo?a_HWFhc7fA%NK=SCh1ClhAu31JQ35gBFHfK<{DCvc}cg%|uq@dgg2 z(gXzqjdJGXdzsPY#u|VWgtPFw`rPOWG8`#Fc>#%qF>+?pN<#CD#l%6A ztr#(@euUD2EHUMpf;N>`7vg{qB1*RI7$pn5R&FpeCT9IF7bv)Wjmw;jc)lFMqkGy1 za;o{I+cop;{(J1N3R^je17Xt|OTPA{+*0fDt?|^v3CuS;=Ak5Ug)KAZ64+(;Jk!FD zvj&{Yv1y7+7nlruT;+ZeUk-4bDY+W2f$+;fny%rlE}*B!cqQHGgQ41K%PKvq@c}bP zh!%F*wa?jT67sP>FYSs6*mav^!m&hySa904m;(;#TkGAVky z+gxUiFF3CAAhgiU{7kEV9c+jX+s(7~PZp1dDXP-t)Ngq1SS)y1mO8RKzMLcLQnDOW2={}{dTHoozJrxhgCldUN7?A!jmN&L$^I^uFX60p zziY_nx0B@YFf(hJ@41_aDF=x2j5UrKVc&1__M+S|sW~N2m^njNh1s~5I$jzqE32mM zsC$%dh)vyMNNri#-bO{xJFf3)2L%P0F-E~{9K?ur5lV#R!Sax+crznu1tT`}{Ol`5 zcL_-O<#?6LvzsYUkLOO+Ij}JnbO6!g6)IHU#PiOiG32 z;;-6kA=mcgT?o_hCKw=5*bXja{v~J1s{(|h==V-&fFG;^Q!!1vtAfsn)Qba<`?npa z&J{unE0V9Okt7aC8worcb6AFo2_PkG0~tea=HnY6ZC#yp+di8zvm)$2k=9AbF2hqE zG2)gHiY(HQ2UV979#ehv1#>Nqah2Esr0q==PP$NaT1bp{;XSe*7pOT~!Vv9*k0!Fs?_m=B+SR=7P^uJ}RghfSHzH^7ED6p+=ZnKtyFXMd4^-jdX7)g$794Xh- zqV01bGPJQlPE`Ae?ZQ3)+sTBsb3a0pWp`4U! z)ao@P>I}fJG2{nX=$gS40oKJi(@$jlh8lP4$%u1py;Gi=^Occ>JNEPqcO8V(nzFYPJ9QegLEED)*uAUi| zfe3CU#Cc^nJ#;oSSr(WaJ{t~!;;+dJ6VYP3%>1AwoiZgaRC=%4`X1w0Q8TywuKD4( zWrMFlTOQCW-xR&008+Q%TIbsaXpcdWJMVZN9nj4Oiq3Wc%5=MBwYq+d8DC%>gp0EH zRRIal|6_CT7aQB) zZ)vpqLcdCr?cP+I?Dh@}Fr(@>hbfMKfV4DM^mX5wYii%WKbw00k>dIi5CM5-GTx)M zbfJ%IKKA|}d9{2j(0w2_*1d1s|FAot%RoS{Xorh~b_SqV68I{CI1$dhC!K#kAeRjC zJTP|YH7Q=~hUE8HmSVO6 zJ_l6|H1S|o?!jidprgw^xkJZKF$HwR-&3DWjazBL`QKvY`1xyc%4`o)Y=@_3mB%cb zGk+*&Fq?)ma~|2&+bXPvI_3ewZTytqyU&Cm(PviI)Mp{o$7@jV=-G8lfIQYzXSgK>blD`+fiK~p*!Rd=^wEZ_`zSfdV%^xF6t~L|| z4fTazSC3;UVe992P*vw>hN6~_PUe69HkY5A6fYg#Vd?YbiEFJdj2}q#f6&tA_qabj(K*+^gU;dV%i7)dTjVfkiHp8+ zT$~R1{C+0f^78%4zrN>A$4f8AZ-1*6rFjI3S)KBfDA?upn!3nK14;9uqG%vO2%byx zz*ELV=lg>N$o$Rd=9c!6svw4|dka&gPi!yDgnsxiLlyhU7p9`ni+(7P*;DNN>~Mwi z^PZB-oZb?+6^F|`y|)lp+8?gaklW^Z7SJ0uTXW zbRd3#c%N2$dbb8jPT!*u7h)EMGM~Rn?yjo87n$+&cLM#vg!e0Xrfd)jd*8%xn z4OzF^H8iu&JR)w$A+QX5 zz(2TR&Z%HlbT+2b)~^`6!P7Cn(mE)h!#p?}<3Ys^pTQZ|Ub?E%*oU;j$m*LuDbkk6 zOAIWGoMU%y0v~5kl*&7nM+YL%?I_BHc2}Z1I$x%w`TNcHH#<1tz93GW5LBm5OVr(! zE|Q%UGB;i|28Cyy{KACHGb^F+{nu24B%@)G%u+4F24))R;jLm8D_qMX+L zcGSxgEH!FV(DD{DA7)96)R5a_03yTyx|SjKmdz>k1nZrT3I133w#@t4yELc;! z(bs4(1vf)iC5wHu5`A155nV_*=V2z3cOJZ)Fzt?`fw21<;aC_K_>s=xO9~Uc!o}C7fIpBQKTm6AZ z%zCoYBf0L^3F^9gOG0j5PH!4{-j+au;W;R_*shy;A2#SUE!ZRX%|fGYLi3#*98pR` zJ*b&|CgHRpyP(5Vihtv2-})7nI|TL+Ew>vFmhKXabbv-#dlhpG!G zcyHR-Z9jW)InZveotclAm*g?=Wn}?qknnWi1sn<~JnMEm8g_K?jrVT;ZotwHl+7zG z?}*{uk4bfzKkC6l;Dq8S?O6$D2PLBp)ssTkXnn!T_qXFpSw)A&-q7V#&2IVwvDzQ( zWkG?l6#^)Lrxbk;`DOP^v}a6ojQdPJHn;c4BgblSgJ0jaC_qaiAgxTQ4xj4$k0XDi#ZJTDl7*Nxrxme~-4vimp|` z*khA?(LGmy?~QCSUoxN&z%T30p8_aQU>;D2rWIX{nbG+y^_Bftui2zIWSa4GehP29 zAb6&t;P=}Tt^3M%1B4F8I@P&CbbRNscUh2GpV3N%r;W@>+z!>0n9jw|!gTf?9kV%e zB95`;z6Dz0pa_bRn*b=ppqEYSe3r(tAMcsv5}gqRO#>HA&0LW!e5c?*5M>Y9)(QR( z#04{f^x0YOY%qJ$CtTzwExQT-WPX5zAD}=16ny#tQ1As5V1FG$K}{h(szO@hZo<{_~3I5rL^iTLi==?mOK-r?CHlzoJHRPmTaJ=~pP>2Q;z_euj+oNxy>X$Fbm?1wG?xLlWK)ei7kbDgzdXe&;@#@} zAT6fvv{#nIQe%+Zu}*4n3Y~8w7%TGkob^uT%wDRkkgxm`E>}r&sP;$F()zBtLett!Dv78IW2Rxf#lL8rj07lw_~9U#wn-KOfW6N{ zOJQrVCpF`-h(n=(k0*u1;YN_JEE^oL4N!GtofDF)jS@35^Az(F;8CpxW7*e-ic+u< z*@TXY_kxA@R)rGlZ$UMfD5W@3Q8hOegJ=$LD+=##0K0iwN0ZO}ycgL^RYNKyos||lO zcX+ib=llAX@%hrEC7WBmKOW}u>0s{s{bAF__QO`^U*=X`@2A7f%c;Z%36j7 z0nbPPJY%q7sHnK-J3zj{*C)hOYEIXEjC6{0iTn|HWI?{>s2JFN;rjLe7st!>o&P(g z?yv1XZnW))9hMK;KtGSKPDfOnY+9uaVwGPv1vV>!j{cZIywW4>2wJd32-nUkD zG8sqb=I0wn(kq&V26yy!*4xFnYQ|4192u3rKYw>bUa`UYtd7nZg@$4IyYu&ltTrsW$2}Ox-QK3p4#?b0Z1u z>TYERoU~;14fKU@hSJ{*M^uV_J{01cB9m-wFn&*^{-?#Q7eaYLKzDal@h|}u)NRaG z&ee7Y^6xq%?M)o+;}}y+M|XB0;$iHLta@tLP-Jb0o}v7^)Z(~}Y>7?1vJSixu>siz zceCMbrPr`0)SE|+=VIDphsWR~<;|tTg+D*IX$&Ls=g{Y|fo&1*UJOkBI`pUHm;8%` z7r@ff_2SG6$Ttf)_?sy7NzIcW#4R^yPn2{C%}4@EwFeQJ7ec2jtZzGsSs0bdH&H$T zGuz*gzo7UN^P24pGj_wR0jTt_9~XYm9?y9w3B@*6lw=NMc-*f);{K>VJKHT=*DZ?M z(o<2mdg4A;_Sh4Pm9dDouf{_xt~?s!$)0%^hz!+(S4Aok)XR)UKB=5B?2=FIU7p;ZIcC%+dMB7e)ZYhqtd!? z@bRj3YRDNGdf=6Kat#hPuZv_{vYLkyC|&SQym7+x4uZ5zd^q{kj?ozv0n`!d$QF~w z?4z}(Yw{eees`a90M^`DF$u{Uz8(ymkg4$|c6qevi)T9sCf8Hk8RBE$0<60`Z{dXH zJY~M2per)Hs;y<-f4(KZEtyub+&cmDmm4`)%0_+Llybe5O>ILTg_a*hOBo!XAD-j- z&6UGqDd<~J$<{-QE0fgi?a5G!OAjA16BpjzS;dUf2YZY93LG9CKEzC9(N_rNP`WQ5 zfM-E&lvLi%v#Pkt;Km*5uX|Nm!~vJTi+*p;XpizQXo5jS=&x?md?F_oS=9#pAO9GZ z+u|3M-3HCy#lFMkVvg6PNBXdbj&Q?@BCND=lMWG9==QHwsN|wghczr|VZL6P8gn}7 z=gHm1rDT0$7Zb1(m{)5Vt88**klT%C$Y9zaIWtv&pWGPPm3g32ez}t4S6SB(p_IXK zr98D97%^QD>4j}A>OJKt<(C^dn9D{#$Z0B-E0wpTv?a&Hw?Q+wUYe6jJWlR3ZX&z2 zOjQFzV?h9HT+K`j%E^7k7s*+BK_Zg$k}Zki(tz1u0X13C*MIWVdv>>J3H<{`f%>mi zcL!i!YBS?4@v&i>I?fmU_xLwmsk-gp@s{m99~rMAr~eMyUHELccm0@-8U`LO*1sda z5bOU?_XEUU%{`s_VG~QH8JCm8O;b$m1Qs+();j0nn#qaAp=2<4dA&2fqq?lLy*j>C z)7aJC-q1}0ndwSut0^t-tV!zBF>rIV)px_b>gb7=ly%gmW#r;uW9-6dju{(NUslqA zaay&EJ?w3H9JK>yI+NN-l+{+dryUOmTSHH^;PkwwY7;xP47%=hFVJJKem%NY8v0CiUug;Vg^z{k0`uzx%MX5c~(FoLimi zpRet#8Qt7@rt>n2-!7=-+3gMit0-Pl&1y~P&p&F74VnQfS((=SHWAZZ8F%Gt6cP#f=j+?hgM~zUh4HoK1_NDG`by+*COy-o}D-?mY$HpW@&s? z+gx)e%`_wW6Ztw#E4hW#(KMnz#?*VJ_^?x1(ka^lT(jGJ>QjX}ywV%n{E2^7{)EJ! z>?ouG@JU@P(dCyu28EpfD8v8?Z!&fqcb;aTJ7|h@DhQP7@_xPOo;q-i03!`1Jp33XYH-bhf-tXR3>|~yDC)f1>R8?8!508CCd#D|_vj!z^Oqp|Fpw%n zm_WRZ9F!tC7;+r74pG=6PwbT4mFOrjiGia4Rksn`XCRKxl;1(z$9OuR6u1eU`19a& zIKdqo*ui^UNrEacSf>Gm?2u_y`v+F~Epn+5U9$Dwog`@ui|Q>hpj<7HMJJ0G*@+rA zBNf_sCF67xvE(qKw)-WjnSW{sK$F(q7koHz;{PcnU3Y^b$NXwJx&A?CMiXGZOL{8=I9SMJ=p{||FOsf=1BOVv%{qz^`x-60gVvFZ0UQg z^Yeb|x#!9Jh$g|0H>vfDO>G)R@$?2gb&!8lJoGQ6vD^~<0he#w2~_(^Qpx!-YZcPX z;PJK)w$e`<3p%WHOABu`Re*Kg!helY4=~vhUuRte%wtAjL<5#-LY8ILsCSVK6)k$} z(!y74`2K+16(DXUi~_=dl}xDZWdN(7flG>ofG>-6_}dX}Hq2>>=NOl|lm^@25v@Jd z%Yr8;qT#3$LLMaC_+U-^^w}1N!6yk-0Km)Nll=g^UUl|Uu9Bv${EG@->2a{@8S^0P#zd$sbx)JCxl^;5_A)QMh`>k%ETH>g9}k)kAbQZVWRznPOPdka25+=a~t7%^X?`IEczrl}1Nx5^Ty`dGK;kj)74 zl(wP`EI`&KwQDp8vTsnOvY#*n{zVodbdN@1+M@~&0l~%vh8mSqH>F7ijg2=4+4EeJ zlFPb|7zcmWM+hQm1^=qYi)Zk1a4}@AEiMuYi+^X@SM)&4;3JF37zZE>2OF|O zv!ZUaUI`?M(!uFu|5XA{hHCyqLL>~waU937Rz=vf5jBD~@!T$GtV9qA`xs}vGtYd^ z#|TGg?2}v`9@qZ!WFX1p{oO4vsJgNu1XYKi0a&drxw>Vc3;gE(z|XDsSBxGZPBILt zrKLtKsTv?rV}ufsf=G=N0fEsr7Hxx3hYe<)a=DhfIk$HykY-OXzATeXk@aJusw+H8 z)lTwA7Sp*L^b;WZ5cRDl4I&ob#u5FjX1h9!mN5L5(EB_&{=61nNqwZKi0qG;1pspH#T^`3<7jQx^w zEyzTSc7ONHNToP@xK;P90*GT@ZU{Lg>(kFkt~rw*iO|Bha`eAx=06an3ntvt}VKxB%^vIfw;|&{o`pxMdaEn%fW$JcdAk zhDaXj*;&*+awa%oWg1Qr!x~g* z-`exo{@0?6vdG^=uSFNw;ial3DmkmtC!7U#y1_wR$=Eh-`SHYksb7$zvRDka^rpms~by#WmO6aC16@ zDEn+Ez9~vXv1rH-ZAzk+PzcVN5}c?6jnRXpVaZ(8Hj|1M37+Cv3dQu}!f4X)u zg9&gPKm|Ec0%wZlMMZd1G5(ZCAmtZAQJ4T>1R-}6YOZ1wQ;HH#c_b>7TLHfmP?St6 zA&cT=QZQ3hjTu zEBC7SkYEX-Fhi{n=Lsed(5e)pO$mD*;EaNza4FiD;vIB_LV_h|f+h$-D?XnIir@%7 z#Jc@w&|j1ZNh0b=NFAyx7+V;MW_KDElmqe+;Fpr_*O~2ybg(@vbC`7kuxHOX=ekmX zGX%ZU!Pmd^0`0x7AEZ|S86L0~0SE*h3fK+`*bnN#8~3vjVSsyYi(?}M2n+%Qkaq7* z13d&PZ3o16g1A@PJ%&OtsUp}0p?GIdL-o)$j0{`YBlnuvv(@+N))vE6L*2j`#%@Kr zTK}1CzV`1=4FDl3L6IKt_ILXgryO-ql~JAU>2hC(J2>uYFs<2n&UARoQ)f~uJ&jIl za>ik2)tfSJ!8s!?ShQr>b|F?AAVXiRF;p4s1nTyHh%gSq5kwFWM@T%HOmtalaJ87z zW{o^H7unpTaF@!%9t=6k^_$h}5l2kbBJoQgC{d*WVq$1QQ-PrhM;)(SJY90cWqls& z@sO8X+f0x!PLeJuCrCT#imS|-*vpg!GZl`x=DK#b+3=?zX#(E?2qdxb=xpOHV6ep)Ov=b6Ja9&!07Ly*Rd2j*287qNc=X3qUb*! z)Dbe=!U@0-u#pcNbu3mZIt>kw>js#%!DS#9;8=mV(beb-hE0Vg2qQ+y8}XFwa7I@} z`Y@;l11xkNqnaP-IU*hgMFN4DO67o(rslPduxiaZKp3U06l#r}0)LIg(fTrMn1?O< z%#8Z9ERx*YvZNdc?gl3D6VFLdASd1Rl4QX2qxqO4uY+`F-|*xB+de0p$_Orv??@rB zroFbcfTg7;B+)k8Oo0Y%FsvDk_mvnnQRBI} zW3!_irb?aMm|Sp~5TXy_u!ntS(AB{aW9BaiZ0KzB@PY!Mz=BiexH$Im{3#W#93K!8 z49~`ni9{%(8^=+f(~wI*u)7pciV`Gm7%>gU^s|@aTePl9wEuPGL56ZKmd+3JQ2{L! z!aO0%fsRF~rlP0Y?g1T-4f6*DXNdAdPMJcGQC?GEEIq5WMr4AEtVA2f5wsVr1i*%bK8=aJ9*uDRcP~m8(1~AmKK%1b%QnEq3pOunYq>7DeH6 zyqXBj6|k^Ct7_2&09TtC)J7FteO+}~gG!x^G`NY@w_;#qySq{@-k#3DI%T!<3z>k? zv#00n(~UmFZ1H9-o`;ALuwOIoc6`SW3jNFjz9#mV&sq)3ly`dTqRqSc5@&N*%wV~g z*PZRNTK}S{It-Yb%S=Dcie599<2m6Hkw19o;h1NenM(kJclLrmh9MW&C{-fgg*g-V z&$!ig4@$zWR*>0WsJ2jSjcThR<7`~zbx~c*OeE|qf;`F8ap3>Rq|`XD$tIZ^)+Rj0 zk{2^q&maVT>tB7gQf{m>;bdQ;0IU_vC2|U^0jZ>+AR{WW5?EB+5YPD#JD&JQv#3gU zI6ma81WH#&uN+4Qj29xI#gNb0E;w^J3%ulvB|>=(x7xYL|E%F9(BBix9+Xbw#JUC* zlms%x!4lL?%L$Ll zJWxbfE0TFAR56iMp5mAV6bxzW!zH|u9g;Bj-H&&zys~2tX2TMwTt&uACcH~%6RHXYY8I|q_;AXMx0hXiVTv${MjGV$QW2P!^ja>WQy%nzI4NxmlUCyfn=A-UCO7 zu*2EP0Y6^$8J|LXRHWxjK8_iHJUTM)odY7Zx)S**ye4r>R=T`$HfC6aQVgIb90bUH z;qC!ctH8P{vwrS!&8!sR_A~i%7Mjc8J3L~JHBV9$8uC=#OhjBcGnO~=P;d>7FeGR7iYD*O=4U3Fy)P14!i1BlnYH?N3z+wG z@gpaU(d9jrvy|<$C!9^Qm~A?Tuy<5!4QU0AYz^_8MGIl@6$9~@zl@v8ThF3qo$y)B zC>PH-W>UZe5_tn=2Se^YTgNsox;yX1aVw?^Q z>c@kcS`MoH>5Zdj_N8(m&{@RVX_gnhRgXTX!RF7u>H4Kdb6wj-J>T8!WY3-H+V#r$ zyRsed3w<-G>bhy_vo%+lme0Hnc%KEHR>!dmn9!;A6zP$wOxkA_tD4kefibjT>n>7H zaT(%30GojhQke!WqF{amKfNO-|E4zP;td`-GU0?D9hn!QW&(9;!D*Id|2dGBWQlnm z50@D1v6VPSo!BB0AnBEKPYNe85_O5fZ9z!N?+5HCirLT*1gzX|^|03=vu|J9Aa;GX zF=*~qhwJhZy9o+kcpNE?pS+rc!?zgeX;gZ8GQ%@1nNCeh6P$l#fUV(Oh+l`W@r{_U zn9b=hMh*auQLQn@z}}>&Qy^oT-V{I0sUXR}QOB#}O>6GXwFh|`Z<<;>8}=l5xnv8G zClNwL5$5TNamr=U;U7QO+}!`HjeHjx(++)ewm}TW01pf+<@{tY*EQaCG_HBnE#3|M z<=>s5ro>{WqU!ipHpjL7d7gO(IpTI$vSggxNEC1uZZxm~VY>m>^2+9Z6M?ERoZeu7 z2Z*%-4ZXC>EnUmYZr_5~3sCB_PS0Bazkpt4IAV`z&2 z*0kr_jgA5qFJeT;rz7s=;uSXP*+$|cZxg3x|qQ%xMyzQX73lZ4=YRL@$X z0igTgg^V6cod5dyLUVHW>hLNAO4q*#FIYO9l%4tFwf1_L zduI74Jw&*Di!S^OES@8K$MU4q_@qC=}rR2}}VDNRXtnly)srRBD zLcIU5=)Eo8QI2din!9(&4w=g7n?$zD6SX~GLDi0r;f2dhIsQYPk=Kk8cnbx)cQ|Pq zv?{AKRNUoBHoUSU?u?U1ZS#icji%uPi$sMw~Z4FDe6g+=v>UmY3Y zye}(2!T8OABB-os%kwO7a;|_i>Lz7wn)&uUSyY=ZCGX!BzI2MJOmnZPp?`F&m@#<2Ws@9pv&Q#t9zSAG0+Kvw_gm(5}ruE{Rd}Zcu6?4 z1-xoNLn*Q$k_&j?>U!?X*OjX8$ga_zMu`u*KB&I7?FZtd!$d0SuR_wC@+DKA9cYCa z1=y{mX&}y@b>?c|H-IyV!E@ii`Pk+Ekq4-a4Zf?owwi#4UQ)F(nzUske$!tQZ2cPI z@ui3DJb0y1O4W>Y06g>puGdIzLD(~IT>9FNBL5#CrA#8l1Bg&16%Y-DyU5=;L=~Mn_+0yT6J2C} z=Ay=GZ^~E9ou+t6(Zc5U>+zNNzg3jWejBG#JnpZ@`jn)RuH^;v6vL1DW9MZD+Eivt z^NnXhLu_rBfyT#E4KLp`E1v=0uyy(R!<=$0VSPK#OHb90t~|@;&qJ>jWZ(V!H)7-5 zq~1#^2Lc<7FE2fwxbz11DDR2LFaFr=yVF!{!>?Y{dLjviY0`F=zr7uozbo*(t?>rrST%`v1D*7r-!~Ls_CF^Hvqn- z0bIhtJ&W58H~@Qvdbw@uFRQ$4ya&9ks=Qu`uPfxseJb-b_ZsjrukZw)u{IPb*E3>& zWstA25hYa1=F#>?p;5m3+~NWP0yAicZ3|M`wJ07tbegcg?tIa~j_ztjLIAee+qX5k zx^G!I=FE&@)W9{c(ow9x+5Q~ucid5Y1gYq2;kS4D^ z`j_3hB6Fc6`{(AxcH>bgPw9dvr!sH>X5^t+YJQe{pW(am|6?fZ;zlUhL*3~6C3y?? zj!%9_fv2ErEo}{qRDnXID1HaP!7=eW@|)~0MO)mjgYp~&@Ic6VhHmC`z`SG%2L=K?xO?1{R6j= z3-)KXhGQnJ;nya|x1MCG+6MGm&GN+Xq-LzV$`~{X;E5I^rP}jL8_+d$X<(%zX0Pe1 zYBeY(as~XquiuMZ?exIbs&;I*C#4g13)BgCn@1GwPK;dK1!g@5sy|fgSQksRB}G$T z)}bqYX>We7P_TSk=bMCU8C@C;RPZWIh+cMQ-2)s901m)reidGTZ2i!(E=~A_$QP`v z0e-3xcp}!U3(p-Q*cfEb5>4d`j`2noA-36>fma6`pOXtW%&&F@+*f(f8EC$;c~Yvb zL+DhtgIRLiJ`$urLB9T6s7kEi<$_E@+yCYMhd7e6*4xO2D?8Vb`~zQK&mT1(5p-9{ z5BDfVydW{6X`Ga-m_LyyH=3&`!+rEyO8pIuXH>K4OzvDmxz?z#@2! zIA{2?7!mV7f)lr7-dP@-5T!$-iG>FD+5l zCQml2iVaLNJgFX<1zwZv;PXStiFub}5+P=1DOQaZW7vAaZ?pEslDwC4oh zVDmfq^xJFd$;~$^ZS~UVA>v-X4*G$DV3$Ph3S(-69Pw35eE*_z@qu>`54-?7lU)CZ z3_7*RESU%BRsQMejs95H3BK9(Z$`o;~M%G^GZ1KC!V;zR@tub4i#HE}VA&_Cv$A(Ld-jSykp*(!rJy z0^ra$XEax{I(L3;t{`m=4m|Incmq&MX76_zNzfUY$@FRsO6_`iw%W#Kw(@#utw)6# zn@mrap!ON69_je{bb#pHEzte*)2a*U)1B_$0`1#9Uk-Nt%=z@>7xYi58Q041GxO?& z#BWPKXINn?sOMfCvxd*c4^oaCvS$`^68GJzTdAh3ao9DxM|XpmBgB1hWDPza8tMOI zTlDI|`!&v?Y8J4YlY8U3nAftp1bD}|7^|v#ba#@yvA&V3k13t~t3vvEY0|CA>-<;W z`Z24mT+=;E=Q2+&3#op*bME#zKcUfl>}0+Wa4P}J;sTb{T{BQzQq|uJSk@3=S-lng z#U-_`Ip@3|pVqQzS#JIvON*vQ|BXFz#r$2F(E<|1LXJ<4(8rPIlef`dcmKND`HctP z`~AzRo7nL;Dpn15incAk?Z9S!D?#L!>=!WSOe5^3s7ZdJv>uFF%BWJW~qKT7U zR@UFU8ov6tPfNCCa@o4&gznR-^%-5OHmBgApcU)36T0hFPfzGtx2#OcwDf8{UJYIC zt>`b!XzCiP8g1f$>!SASvv1L7ct*FJx|x7=d)%uf+cIU9e5{g7-67H5%WebQO`g!Q zYFVC=Zt1~H?ju}(J7kV8fx`i#^3h{N%PX}B-=~)*m)e`N#zrHWc2f=l+pWi$)rbu(4{RB?8#)5b6!`o+r~fmeE_JFn)i2-od@*T@pe+q1Hph ztr*lYDxT9*Y9kY0lAp<{PuRCuRBX50z+$;47&!&YRanV4oceD^`q&H73U~j;tFchh z!ix#ntdp;pBGl3Cr@}x-&wbNuzJs=={j?*;l^J5&yaR)NAmr}K( zw9jRw6)X2Cg8&YqH%u9wqfnIBaz;J;_NUo*2XX>{4CGR~`sl98S7AA);Yvx{O|=8p z>?e_I$mWt0pIqGgj2}4)+z)5gDUGecNI+1xch?hv$uoD(-96_gIF@~PtRSHBcT@M54}S!mWuubkGQxr`3i!Hxqj-Ve7nGg<}Vbnu=OjgHh=jeVn3(A`ZJRB_`?Z z_G&D;%TbkTJQ2{jr@&jsmc)D+UO6Ros8bcpUS=PBeo)A+x#oFID*72|c`O1pU}G$l zH2>@cS#&lx3+7zX=bou`Y};kXhXUKhI#z0OU6SomegPPMY9WZ-=6ZT({g52o`VO}` z<+j&z8{Zr%QN4G~;u^F?_J??14P{vWl z-A)&Ld~6w!!InW|Ku2_6YD{P!2Way%GKr^kj#{?s&{`*|59^;NI#aE!EGl&dEwAXL zD}Z7@VS|_LPp*e2f}s0S_APC8I{53~JY^~uoBVI(&<=qn(Rz@5NOSW!hIyg0xR=U@ zmN#J|Jnw(gKlds%y$K%acq8+n^;OjPdJy{D7wcX5Ph8|6Y%>zT4E;eIaH#ss6JTE)rJ8O!|IW_SehL&VkM@zCuK8h3H(NJF8S<7lQw5F4s zt>}8lSq`hCwzRyXmep=(Nq2R&py}bRbg?+KWu={}>i5!INtC~_9H*wVEZ?qgN$n}5 z2#q70#Ll|naxL`<9K*fz+noVsDFR=Hu9bv7Gt??87F)a(6eyzCzZp1dxpq|ctGGl< zNilKtoXrhd@Ux3whOe1)#)SBGh?N&BG0kotEqT3PQxfU=ML*xaNM-rJR96Y=32J=( z=;tHL&p$tDZX|7Y4C(lEwOi6IX`4{-dU5oRZ~E<}I$n=*+sA8%Uw51@9LRl?>++xd zYb!frDi}N3^hEa9Y5aWjbI(Pd(R25pPc()$+!L1ORcq&&Nxv?5*l6#+ZGk#sMnwNj zV^b45>~$!g=m>Yp70U(ZzJFj7Enu^-s+H7@f!qIj{=wk`X=MvJMX^2BFHi!C0+LE@ zJI39%&NY>b-`BVL@@H`^L%(BP<=JUPcAUg&}<8I8@@bd2W@ctR4+hG1|vbb1TW6V1) z6QB-&07Xek=>U}hMdiuEdKkxRW=$}JZwJHqtn~5Bj#kV5R6eo@b#YOxx}%PWk1X~H z1&}F9Qk2I!P)Q2w$jM9(aj-+4INQ!g;%CcA)Qy9x)6lrfR#K|kJC*W9sXa{WBt2xe z5(cGhgJ^}uxsr$tqpWz>wQY0*t#m=sL$FC!NS&xU7dq3ER5H*hOJhR@=l}3)EVW_T z>Mx!C*{+U~t8P_AILcLGk8kXzq(*W5Q zmZnCY#6B`XY^zIpawQg}JrBvDrM;vu-H;WY`2$BkeRjas;3lrbj|Z2972JVt(SJ&c zkGJv+cFZA&j-^AJ=gxsuz87_|5x+LF)umI)G7Ab9>ByR0PYtJrI%K0iCjX)zrv3%XLRr>V?>s8N7 zz(+JpKYypDW>-JZm?q0w^kWOtu}w_fGA)mKW*t}r&&LCcR~r$kB3ZPeio%I|>x`Qf zw6U0l8RKbLNQ+{y4y|NfEeZuVs`}Mh837wHq7c!5WtvdKnK$fhR?D&_+iJ^a7RD}R z*jfbn=L(~s6;-g}jRU<|AOtjUNqM&5r{t;d8!lRZT-8FMUNEZfGHr~{;!%sI%mSrh zx~3BG?u>*0{qX4Pn6L3y3Y-5?r4|6#@aw5v0oZuH$L$~M|7YwLB><4%pa2s1cayXG zqYdr%uW(bGPHNMlA}Li!y zl}iZIW^$OZ8s*Kj11yaZjf;=SxrJh_t}GfWw}?8UiU(WGKwq}mVEPH0bF4Cn-@I#1 zmWkGlQ(PKdJk=8!=yjDIWfp4Q}C~w9o=?seo0S|J@^Lp zS||ZJGf8E;=C|gnYC-jnZ^@Xq-~+@Rt>K5Nm@iZFv(%g|t}1q-?%}`i(&ag1BZ9t3 zv8W9!K)%c)#Z<3Jp|_LO6PyD7@1OK^jYc%eMX`sF!NxgeimGvg(P&A1;Z8$-TW7^j zhT0p^J@D_u2tgzf_&;s5^bB6+OQ=h2IZULV{L4N!q6cCIA7OMLN*G=6JP-a+8_T7~ z4A^E3*S$F4NZBcK%GC#uA@Wy@Jp|aSfq(=&e@Zph%uO{yCkI~qy!go=_|#-j@Q!5A zcIwJth+D~E8CuWah$o5Fgy^T8>p_G;AO&Oy_)=76JE6o@GBTIfR=flUutbWmADcW~ z+BuL%D{$E5brOdy42wJuEb*d*2_**BlB3*T1}sTdsWSv@31)IrTC_xnY@T_t5Sl{8 zi={;jVkMzhB=fu)B5$vacrlptXws&`gc%AdS5#({iancRh5D^x)HF%t0prLs2~Bd3 z3=U>MC!Rt>VYG!{)(weum?YG%AOTyICcBJ@;DC&1P3z8{3r}I5x~NdWoB>5xsgmn{ WENE%RW^J>^{4Q-3euk+80001>o5vIY literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-800-normal-f15d8f83.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f9a1a8cd526040803398458f4e1fb8644616ed7a GIT binary patch literal 10352 zcmV-$D38~7Pew8T0RR9104Q((5C8xG08?N904Nav0RR9100000000000000000000 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 O|0izQAM$tSyEOpg{FO!k literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 b/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-900-normal-b1c13874.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..160f0fff854a8113c0edfd3cf8fe8f43d738e1e0 GIT binary patch literal 10076 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-100-normal-a44b9fc9.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bbff286cb1e5859f5011174e57880883c73870a8 GIT binary patch literal 8152 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-200-normal-9575e0f8.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8041bcbff9ee0fe89db1ec2583d8a4185b3da577 GIT binary patch literal 8356 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-300-normal-d0749e19.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e96490ff2f6246878318ea91c4ca349891fafebc GIT binary patch literal 8308 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-700-normal-9e078f49.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..140147ef940d7cc24fa531cdd88435f659c47e27 GIT binary patch literal 8436 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-200-normal-45dafb12.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8fa4e47281361184c20e1baad36b83edbb8bdefc GIT binary patch literal 5256 zcmV;36nE=)Pew8T0RR9102GJ-5C8xG05ymJ02C?!0RR9100000000000000000000 z0000QfdU(ZSR5(_U_Vn-K~zKlgcuPB3d;n<4GV-000A}vBm;;T1Rw>3UP9;y2aQHCS39E@go0T@a1RS6O57wC z?4f(hq5tUp6|>?a%1_;zO8?fs?0EWPWL}ep-Z`kBG)-r+pwUM3|gt$h#b))+9G<|WbDKEBTa2ErMPe}{lmX#xQHzT2M# zKRZ7Pq7)-c^N54cdpm=trqxdcqDMoUN)r6{=g+ku`MPW$)kWzdO5g$VncS$fC={Vc zDzn|pivRy~rR~gqjV)z#_ioL!afoUIR{@}+)PBkPSGO7iueAoI)uGOWWxBX?UZ3|2 zfT;*8ssOQXQk1D`YRW#o?5FXdYg3Fd#guY_M#L9x?sDjksLH;I$9CIGhtq0QQI^;i6 z$dp%*Z@xi(`wcH6ayaEwxN=-%>4OL(CseR0z1K@P^{|&AV``W-wj9&NoG>@c7YoNCuqZ4B%fl+L z)7Zb*W$Yd{hP}tWU|lXJz+kyCDz*rtVRVdvd13)kPedG6h*e@@>>PF#dx$;5K4D%i z|ICs8c(MBhyjTG6q9k#^H0c-VXXz&Z=|2F{ci{G5(w_kUX>X1HfZPET0vItDIHU{! z)dql-R#|P0wRGsBJLb3(PCDf@u`?`KvSQ7KEj#uC{Aa|dn{K)7j=SQ-OOPnZ1{-a% z%M_kzd(HUAtY~vCd+DB6R2@$0G-%SIZJ+%PIOvdehjlPu$cQl$rq)^Sz6Tz9R6sgjr%aEy36-A5H=JMJbZ@u$gCxIi55?TSHN1vGw`IIj?>t9{I<(%^zIC8=u z%lG`u6<1v&!*AVs47)B+kYFKv{2@o+Pg0(|Y!)l4;Sd23l*&~BEhhjyKY+(z^aV#w zfJ3GcOHFtFzMxnGOb4Kl;#Dd{tO*9m)(J0tVe<;sDYm3*iiJzD0K5k=h%4dY zR+h>s*F!VN$PzfE%Ule$7oC(+$*RH~IG*O^HJt51qB zx=eQUOE<$e(*nC=>c>uXgZBhcL=sE4eiEN8=55f)7C9aU;r%^xm#%8LSu*tRB;!TN zj*v@lgj@r1F_V zM1G#jTFuuZx&9#)uI75r3GSp6DIzGkMv76kpE&Vvh?C)tJ?D>)+Ux^48-c6*HRH*g z_2wQay$4jK3g3&_`oOPn__5}JZ>hd5zts*sXJyKDy*Dm2Y6;FueNv!j29kGp#k|ERQDMS>1#C-aGPcz#> zkQ#Dl4~5qF8NZ~fofS3Oe7qy}Gdu2-Dy(p}FT=f4X^C*X2;pAJum_el4iok^ik*4n zlqcVAoKp7Dq-_RPa)oG@t`=u|4uS{ zfLoOjth)RVIVn8ZXlxDj-UnS;T{li~1tm`EzdArZbY7! zBU3*p-a)XP@!ILDJS_E7C&i`}u)(6c{v1=^z?vBtq$_)iQRUa_?Au>bVf6IhI`I@9;^f`g6P z|A@UaU2y0kjkEl~^TO>?Uc>em(t-mrAnyd?R^V3+9#=Jo%Qx1FYtL^7v$eDV-4W5| znOV^$-O&Mpk0xheF%$P^wSVX;wOCD5X8!(Md%Lv)i?B$GdG)}hh3Zs=deU9HXZf62 zs%>L$k8RVOdVbC`Tk<_hJyo4^Xm6{JOx6$uQ~&ievfe+14r*I3eob+M{%;zhzt6Y$ z>;;E~8hwob+s_Ktd9&&T{lO;ZI@;nhpEnJ^w&eT%33O83dg*JjNt-yZX3g6*D|gfI z*6Cir9rX;K!kW(d!3lpKuAfW01lXJVH@%({B(1*DzyEbf>(`Zk{pE8CX9*mI&o)6Nndq%;Z%&r2yEa^4_VUz$&8GvZ4#dwaXrf$VawxfkrEk{Kub=w*J_C#vtm6iB zZ0!k7ZQ2MmznmPsJ$qrbXqReg%<0zrTP`K1AbrP$J#4q;n(RA{3!S)s4O`}Iu&oL# zDI5H-rM+<`ss4gibsp{D%$#9Ry9+zNiepFF8w@9sIhVW??UO6_HNo>1Ky3A^DxM_iX?T{^ zbf0C=r!!XRL+QD=@BckjZ)hXHbNhJv;aew?jL{_! zv;no>VF%4eaCG9+Gb!2oVER^`6e*!UQx1 zLuIeLC>cFNS-Yp1XAbsZKlv$fQz>?%9Sw(OFYiwNK9;mI;`YJHqytGi$G-1Qp1IuK zFw&7?Hx-x6|Jjcn*#3_o(HtIZrvHeRfyEL*`eZtob_LF=*2eO(*2X-Je{fuQct{+q zEKQl-F9|!(+kvTP#dOSGyxX6_9SeWHdu(EqLzcZs!gA%wET!58kwz@rFk?rLL^ddV;7hkOG}NK5 z)$zAt>9ma4w#jZ?q4mVIL2(y97A89o*is+`e^#B z?a`j8d2}wjmV>ii(CXO?Uc&oW{=S9gWZz%fIz92XJj0^nUCf~PNMpgJvxAKB8V$uoo3n9RW{o{H zeRO)X>)0Nid5rB2f}nV&enw365UhWnk9e~PmVZ%uL2$gYetJyIOe+psXioIiY45v9 z7QK*P96zz6ATS=5|L$7yf(88)FDb=w$#M!YsWb8SSmVZGp76dtSRWR@9$nSA&a}`t z3RqUEd%Gt1~aBg?gPOCy7Y(Bv2xbk@N+l4wsFbS?GJ_PG&ts*lazTLw$+n(Opx zb0_<>8gd&Oz6XuNLrPDF`O4TevwhVM`aSa*{)=}x=2$W6WihNtxx9|m-6^gzAOJ{k z#d)H35R+gNWU2)~T{%jun)~+zl6sl)6Hw4`a9ULudnb?reT6F*@3XP4Hwin3CX_`e zFJP9)1QH5pCgK;5f_9=WHYzR*rjIwwSCQp@5G701G#2=!O1iWI5HnH`M07wO+hSb#C}Mi4FElBRr-g za|SXU;8L#kbnE=e^?v)^>Y1eM88}ska_~5iFpTENg}9DyzAStsPRmk{Mc`2>t7V2q znb~~QnXv~xEyUEI$vmj+2ZK>9TjD@u!!nT#3q>}Z5!of#Rm_qF!m5R6d`x!0=KQe3 zO;Tt^NhEt3p+rKd0VtVJdUmvfUB!@TPzeT`uB>|kIiMNCp%(zxz)jLjRi6n;RP{d# zy0mJUJ6g5Oh^U6mq8e00b*gKwYPbg^q5)oO4HB}}AVH!5_K61NQaOiZQKV|Y0~5-x zdZ>;!xkG3|IfSCJp)^8)gfg?CSVGApYj}jTXbT?~MnuEPM)hdoi4HH*Ynn*PziT3? zwkDENHIekVCXxnfB5ATFl7?y`Icn|dLeT%u0j>n6ctw#?mE`q+P)J~` zbZ?_&y;qWv)fMs)ACJ|NstGfEFy=$nFIe3ZgJ~Aj#*iTpgJA~X_Nu%v#`ObV_{h7l ziA;Ff4T-y~-H=GN8@MH1SJt()QmSRn(94`uDn)b1c?iN^Lim#uno$zTo<=BI;~^;ot23tso*YKvoDm zQUQo7=n8K5GTzOvvB0K|B>_+q=c4e*z-CYYs>a=MF}%J$)#1FcrnvX<27HW9W#cvT zd}{L3Tc@3P|xAe8HC61)p*{71UTpc=24Ot*9;bC3n>n5Y-!M4(SRG2bMhnc-$U@wMzoL?l#MndU(FL}V0`?#_1U$-)CI+9d zr2BA)mC;oO+c!@th%&*i=ivAY!(ngU0gz!BM);ElyruKnDDMLSO>C351w&?5QldOW@Zg7 z^Fa4QfR^V>EyZuEPWhd$Vc6~v;y-0{mBB90^ZOhk28TGjORx@PO;f=$e{zL5yi2h5 zvxb)COfAK~1v+tD`g+k`7-F;0uKMbBl^WTQUf_w~xsv*IV&R4AQw()RkYne@C&EC?|?!l0Vkcb4`D608GRlM_4*dLDw7@Kl{6 zuUYi4<79|Oc$Z)u$QnI(#tA|k-X&Q3Swomw&IH9zB05#);#B-aCip(z&#EW>G(7$w zNhQUf%ucmchzBnp0=De42i2)XT-E+R%F+t}`0elBs{s7|G~i*7{@Qabr3Ao)18Csi zOkJ+Om*`)T#Mo8~x~2b~M|YbB(N! z+f)>sxFtt-*b6*H$SK!whS^7!XPe$d0>UfRIe#I_{R{QR)@|c!#C@3Aq&e5P$*^0D ziks=9jXoU6hB@?Ep_8ckKCVwqeGk@m-)eo7=PRh(7$Y62EjQc@#b-=8PblF92imKy zc+0S67pp!buRcewj(M%ogABv-1I7-9l8ocIw0NXQGGntJ<_h+)S@+B$^d6^RxD-=T z<7hpPX(em0rk7{6uFyKYYNcmQ4Q83aKlcI%b4!AXf5B6R3Ff@J)w`7N_Lu>Fw~_fo z)SzDHC-`+XtJhZpnI|zYYMc!lsBDo@SNMA#A3Hf$lHMTO{r*#i0z{jgZvWv7akJTc z8@}RL0USIonnV^T8jO?p5Ikl=m(szqe^inVkq3iHGK5ZUC**Dt>DAie&?DO!J`M#q zE$q}OK-Iz9ZTr1#_8m(5d3(B~>6!2BthfD)NeHx@z^5z=8L~_5Q!h;mp?P+!Uj3TQC}1AyEQ#4Sb6d+{UJzZ&!nVi7HZj>;$+o@4 zeA3VfNOuc5C#NV)rAxb=#DqEWa&#YpU%S}aXjY6(*V)(wJ^iPn)N+o0Fo#F3h8~@r zj9rdQCuq#0Woo%mOw^{KI~zYYscd>&i4>pGZ~0oeh3H}auBRNl8Su@B)N|Mv)1AEC O(;w5J$tC>D!~+0hdI+Wf literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-300-normal-09d21325.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..97e45aae32c68a61c289a28e3481e7f1a66c2177 GIT binary patch literal 5264 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-600-normal-c37a11b3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0fee707f37f2b99c72a1c6fade5930df7b132d4e GIT binary patch literal 5200 zcmV-W6tC-dPew8T0RR9102ELF5C8xG05z-t02A>50RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-800-normal-bddb6f8e.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3d281d004b4af9dfdafe547fecbb68589963d822 GIT binary patch literal 5200 zcmV-W6tC-dPew8T0RR9102ELF5C8xG05#+Q02A;40RR9100000000000000000000 z0000QfdU(ZSR5(_U_Vn-K~zKlgcuPB3d?B3G7E$b00A}vBm;;T1Rw>3SO*{s2OA16 zqoQ__TB(bohz#K`4|p)7K6G)y(sfUHwQ024Y`^ffRVEbuPwg?)@CqAN3=lWaTE0tf z0S=AgIF10vIUtVl@U+(6pIKa*SiF$&Y^6aoPmN0V5@<*A-Abso$Mf5~_W{MKg=5OX zXe?YfBYI&JMiEw^OSF+Ci&nQ`6|Qu;in1D>x1H!@_r5K$k_b}m|J=$yz;gFSkcdhr zT6%{?RM?3?(y^N|rAd`m#HtZarD+0BpWXle?m?fbp1W@RAcO!iI8m(2d`4E;03UFJs6izj2utLu zT44Ysk+7AbGSXC5NKsu`zkccLO?H3UMqZ$+R)s~#=1gY)WnO??Y84Wp`Lq;wDi#Yo z>8sjzCwEF&gnXe1fldfPWe9E#Tp{k< zA)W#tLAF7{&>>75NSPW)t$N5gU63BVkUlpdw|#(o@e49(60%?cf`CrTkYOv`Jpw>= zUwSI2LOTJk{)beO4d-Hz} z$-Ty?1v-9Pai@f^SwgSB4h6YdltDlhT!|F4LUP`)Idx=qMy6BH#-ym10wek2jIu?yESvGrnroBRcK$-=6r zNCz~T_Je#fL($gAK>%&@tsl^IYvxy1@@J9|GLYaGxbZh*b3Faw$^@u?sLvD7c@v!j z;u@e85im&_f)HWAFbtT59Zrf*M=sdi)O6%Q@Z=#tOymF=g2fo1{u3Yp85o9xfMNJl z01ae#vJ-9kjA&!KJO$fqt55}YH??1T{QCcR^}>t^>ZMe<#AR_cV77J$pM^ z{ZF%sS^it)Rean9)u_2^a`}5XR*r)52b4|HeEAK8j?DT8Xbrdmp8bdv-5?skl-1T) zOM@mY+Ri!e0)a+Nnzb-TWnrE5HrU9LkK69J>z?}_c<7OE5h6v279$o-t}kkQ#rI9C z@3#5jnx7u~MV1_S3KS_(rsA+8jymSJ6HYosk3Iv2j8GUe@x)WlJomy&ue=s7L82td zQlv_=2Ztmn(qt_0+aG`Z^WSM_oK>fu8g)8!nHn}~T$^?sCUxqvi4|)$rp%Z#XvlR7 zdi1*CCSQL11#q`W7l0O6{br=X z$s~IvJX@0W*lwlh-U#HtF3=j2{h6~qI_GAW{;Wo}VKkj?WfUMfFfq8M*H^K$g!IIM z#)M6r7Dr)9EzcW;A8hVio6H+GW~4W3+~_fuL#anc(PpGggpI;so8eJOi#EDtuSm$@ z3b(52UUEN`>u@)9s`%VcV~AP3incP?w*{o0CWy*%D!PAh9%d33n#aI}geWgbO({ic zWdhmox(E@@4bSi$ZZ5=Zzk#K+!LxbCy^nCcuZz}u2Fx3Sz3gUp|GvCs?`chtHSha@ zwi52wJ~l(v)P)_B)yfj(T4S7YHznM?WYJ1m^t7P7wU@-4E$``}n$*;ElOcUY8?iZ6 z04(y%GA1_1C^YbbRHoY2Wkn+HnXoi&Xd?)R1U79xS$4ukr zS|&u>`SUR&2~eH6V}45%XR1&jPVZN!e6`nklHl ztX))gO3T)=wc|sHuz3t^3$GBf@mn}}=rN?@VkY0O#UYb&ZS>|$Y++VETxeu6BYPG( z@oDCfj7^X7GCoo@ew1-29r;{se#vY&dAU!TAUltv%fGC`S@fPFD!mIX(K1|{wWFTp z0r3={@i9c;o(co4t!O`oU0O$ofKrVd0*o``y#VL5u+| z1f3O1n-!f0&@p@(aN*Adpt4tvZh5^o=FeY;yY{F_`TJ+}fAo-?B%8~HY~kXCY|R(O zF62B2Fn6TM*C!2zPCncgDzP|ab*Xd$#dahx_XSOPB0-DzyLq+l@1wly|wbkqlDk;N89=Gs9mm z)xUB>EksNPN(A{T7~K}c{r=q%X*?v%y5+m~fOdR2TPU?XNe%;vtVioAA11@rJ-meG z(3X+o)LWG3@5FKr$+WDLani9QHrOZZ3mlC&&e=PWpdYOn-1gNbm*nFhxqL}@(XK+< zjki(e%;tggiFMl_`XvqB01m`V(?H^!K8fh`1zCnt4gp&#FTynLfcYyb%rO)&L$6} zsl0^f0s?z%^4GVm32rZ4;_`OxrJLYT8z9hs5xCf&`*=f+ef+H>=`abtR|d)SJr=&} zV|kKZT_-sza*P>a_8xKZER81ETqRzwJt;LZm_{>bVSvU4km%&)1OGLlUo}EJaqjhyK7vw5>~Q4zk}IW6;ZH z7>!2+@c$b|KmHXgevs`zSmE>V@UqV!>;SgIl2VhlCIIOGv2?IyIW6XQ7UzJGy+VLV zN#KV(a(3#m9L`D^Qk`+br2|qIzPFW({VP~LMa$9cXZOp%b+Vzam7}3{HPsKC{=v|V zXOB4GPJDBZO^$}TCL6tg7~I$^FC{LfAjQkKASouMFzK+5PeCFrx+u}drzkO+R*+bD zVZbzc7ca&lc$vp4k7Wj$MvnSdsbR(YX$FDI{8j}l*IQ+715SH9ly^I~k@S=4K2{YO zCwGMN>!+G_rq7Y;1{wTGCGgPgaAjt36Z=wJCT} zHwe)DTGA|>ddyAM>;B2TAxoO?+FdT4B;!Mz(utDtwTqoKvpCT@JG)?$m>2n=Q8Jqo z^&5d+kiptRjm9MRPH$4M7N-MtZx}7Xts(0R=yz@k?Fot#Mej&Gf9Dq5SUxMWbhJd}0-CrrWO26Y?AXB+ zzK2GPp6qL4njio?eD7S0zM(1J7V(nJ3Yh&7LOm$gyzIDm&#NGc)M!!pBYgH>(J6smSHSR%c zXRw`Efwy2esZHFI4kv3=urE&&o+6}V^E9!wvj|2>pHw^d|Jsc-1QC3DXWx= z?J2Dc-&9^1l~6;wq2+Z{%L#{TDSo@2t~HRU`^^jqm#h8$8ro*K;{|7dDE-A~=ckE! zhqa^he=cKY-xOJV$7c0KyGZ}|;`f`OFORmg+I8?*#I)%vCmYTQq9BR(y^ItSkbORF zj^f_5$BOGTpU)Ogn*5qZNFSJ&Pk8)|=Gt8kKFvUEA@lh5B$7Yye zH3Hh^|XNu~NVbqqw8XAQaS4L=7P|EQ=RSM32RMJ&b=*%DN zH_lie(E@{5fkCx_L6d<&(}B@H8eAE7OzPj}+|s_THnWSw%;l&r7ktPE(m4V0f^=?x z{2(z0NYAqcKEZk5Uk@MUA^x#0l|G5AV5k*1%kwrLI@xm zK)Dpi2~ZRua|)CO$PbbgD*j_w*G%^Ux9kRV2w1}k1Uk7vME%?##V2kMbL0jwXKoO) z;|8&-+#p8d1`+Lu{T=XWaTZ|j$HnlK#bONV2mcK|{TD&dyD!mMqAHZ>LM5Fb+)d4g z3F@9=>JCEc4Z{8oYmO zn-Iv5Zdw`-Jr6+;=>!q6DWVch8HV--G13mWGR^M+lwJWF;G4F#A)OEm*y@~xEzYyB zp)*NwMa@!wz3|`)l)@2+&<-ww+WB1 zJVb-yCL)~^!9-vpFcEMFfq;`J9fL|5iKCII8eZ2(-x*%g@P9 z0CaE7VL;}q$_1t&tzn^CFt1vg3uF&qN?f~PiBi5Ot->S1K6|<}OAvuwoQF1mG@x65 zjpIVXj;TGfdwMtmKfnpTItig^IoJODZB> z3vyY`%r5x(6(1|j1Q4(beS}C2g=9>D0wvi}B!*XxmL0Bmg!%)b|FM8!q}nxnSW>_i zB@Bau>bI5?GxU-D(Gk<1QVXVFt}}+3lusBgQM6v@DIkmJgE)0wBh}{Z>CBJY3H558{dp0Qh87SQ!95 z4fJ_7_2K{gDv8nn-~j^w9Ke5{5>?rL_WL+_wz%;LoS4)VXCejIIjs1ko2C*s@DZ-( zIS|Q~_zU=3@FfFhDW)`3vpYD#4h$*-&ocS)r&yklE*sznO}IM8(K1QkXP4n+zd2bZ z3r90G_GVt}4Po$u7khM+uoxv@Al87NJcFBDfO#SFbmk8;f0?ECS-Qw0Nh@`{v#DJ4 zqacDkB4DRtq7NEIdiZ9)Lan_D`ZgRq?5}RHUs44{Tpzy7Q6m)0CF5b1tz~Q3ZDge- zfe;X(FEXEmu*;bK0TKER$Z?pejJAZ7s9zhg%lz$WMiku(E%qZkv9BS{r0pZ2b(*CJ zCBM`qDm3kLA5O$yau&YRL)^!JZr8MjI$OX&Ia&Clg(a;Hia@sFQ-7!53%|P*aOkBB zmmSf$rr0SLlcpeusH84Fx&*pB(J~aC7Dw>eHRCrvktVV;W%G$pz(l&sDVhg#I!P$I zk_f8eKFdn{DNlUZr%8u7vE@NZrzBES=G?(W^Ty>W^gBy*;UzY$>7_KV@YDlxLESMpOy7C~2vg;^- zA}Uz{$$>QDLAb|pmzE%G_4wo3lLnofC`<|B#7jqJg5r2&0Un5bTvw^m#bP4!!IUOZ ztmxq-ZDmLo-+4@|wxqWB+ohvp*}#aAI0*xn&k)5>v@|J<)Jwr4o-i)2&S=k3w(*%F z*@>SlhM(7qlOf-JBqmdaD2%PQksp7a{B3+-n+za`vYb9anpEU2Qu?RB07WEo#we&_ zQAACU^&@Y`vqT@Rq6ZX9Y4Z4FhRafM;p4nH@feZO+sVOVUytoyouV%8KiQpat}Oi& KTYW9r3;+Pm#L15U literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 b/invokeai/frontend/web/dist/assets/inter-greek-ext-900-normal-bebcb6fc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c23b86f1d39a1b45987ceeb028a6fae2f2f4a8bc GIT binary patch literal 5032 zcmV;Z6IbkaPew8T0RR91028PH5C8xG05#MA024<50RR9100000000000000000000 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 z z8H^Doom*1O`6m3Na83A8;eU&IRXDfYq~3*LwmpLN;TOBF5={1YsJ3KSoV5RPa%s*l ziOI#?z_q97F&^!!iFs0G>R#OwVQ%i`snh#3-?TZSB##sgAH`+C;rJPp9|3u+FC0Rb z(=W}aB+Y_6SrC5V7-Np=He1O~w{KBADjUaqJDH_?tH8KoSKd@RqP&1K5OkiAn|DH{P%%7HJ#Qay}ha%w<3Q9YrSz-uN# z7C;28i0(w&uS5c;**6=bL8Erf6slBf#pg}(AtU-+mWs@%+ zrA@194Vty!69g!pyito_o;+1i44=GBDGy~D)bV6~offE51UGkH^5W5yN|dRUr9zc9 z|8+O>;X%ktkPun2rOFm^Xli#RMZ0%}2KD&WRZ^3laJ{`BFGBus9fV3_XeamGYY7f( yrqJlMAjW&j7iQp9QMXJNFC~QDLo!cE2iYAQYx4hCALrcgj^Bb`eO{Rk0002pc%7dB literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-100-normal-61cac109.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1ef23573652f263ddc59093737bd3a8a7d207908 GIT binary patch literal 16548 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

    5BjbKPz%2L=TxN$Z{ zJVEsV_<3?Xz<&Qg8^Z9vwaFpWy@4eT0+N$vW`dOe>CaxdE({waVIF)$WTyZLm$9Qt zuo$Qjvax`akC3&o!HG>IxkpD9XJN%ObV3uYf#$RMgyV*U^>R4fp=F?L4^c{(3+7`OEM4=Xt{a-1uSTXUo4Yf5Gq<$MZ~0ohq~6-&y<*g2i| zBiNXG%mJTeL;bhEY^Sx%5GiZdEDz#PmXGz?JVNu`Mi3^#Xc%qr-l;*vpcn1YuMFhF z02l3YT-H%0eU^j&p&cEP6Ue9uw7(v0PCvsHeN=qij**~|A=hjX(=Ls$ZR+NonwJZOGSSbQtQ!3J9|<+ zwxufXR*y=)3RC(f%>SJ&3wocB2bL12q)+Ym1TLK20j7&)L9@m2sn zFuM;bw_w6;zN7_owu_Q5vC=<_Dk6sj=+b6O+SATLGL)t#XiwDh`f4VKf3y|ykf&^Z zc1{5KC{Mr0Z$^i}1V~XPla=(jApyJ6D6mxDIk?xT&NHH9HBc{ zcvr|Lo9h||DF@{s%iCyQ;hJe4%i@*T2*%31!(?`n9GH^6N)@ibV3z83@?k1E4H!4vAt$P{j@>8-gq2)hOzyJt~juqOeyFxIH4k+`gdqoNJrQwLQ7?*9;wB9EMl2TH*<^-)SLZKicU`gaP zvEf#pQ;7-uDsf6^dX${NrsO+qSvV0Uf5rkQpd6~STwsIe`Rg**qMEg8AVy;&bdJf| zVH)|lJV@uO?DJUGdI3U)12h9fZK3u<+jV$-}Ts=?avn@tvY5dL}sQ$W-e7$mZjyl+(*() z8$9Cqc3DAtt}1i|&FKW$*KW$ztxA*sepjzj?{l8S7@^*)>X~f|W*0oGXfZM+M?U}E8H`~_Uk45;~0p8X7jCz5?qLHtRO_5J1sOJF?w$jBR2)>4#(J2(W<3bqt zj5ARW;T!~}(*#ed=%X0Ebk5_MU;M@eXLfJ3bjiAS7>>)tdl{+R*RKE3B}uZ8m1Vj5 z8J5+JjCxldullX$6FP;8zdhES@nzF#R^dg_}?!{hTTZgxq9Frg(S4qQq32kF3;TmNa_y zIQ}OgN(==}963-eQB|U&DQ&0!6yFxm^yAK^nbJ@l$=Om4I(^5+faz4738%{-Uzl{M znD)_$)gY!Q&+lf+(XBJH{?llTG;k6HpAjA%ny{1N=|6MmcOw;&^Bl!Q8dymsRaH~~ z07S&f9<}hxri`$u*W^v4HO;V7K*$hNr6dwb0Dyoa;j_!5+ieVEh*4_45^J<}^kO2; z^Oz`;0z;MWBR5r5RR91H5faWbEHTmHnVA?8$^Q>!^6r|buw-UtCX!TERY3s+L`0B? z>kd~~Wc(lKnaGlfDr;tDMj}Z?RTUIKKtv=-+Fr(3h2{TXXQ>;G{+66!C|QMªx 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 YIibWp^?&tIht8qTWw`N6_B#Lo07d&VN&o-= literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-500-normal-d5333670.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6fc94ad0ccdc6d8823e61c59618767f3206458bf GIT binary patch literal 17552 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-700-normal-ced2d8e0.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8fcc4321c7ef938a64db296f2ce380c632e6c06f GIT binary patch literal 17784 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\ghOT3=ky0L(6H7h9+7U3rWN! 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-900-normal-f2db7f82.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b1c208a14c04f274f82586a3b42b4cd39b1ee8d3 GIT binary patch literal 17176 zcmV)UK(N1ePew8T0RR9107Do65C8xG0J$Up07A6@0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-200-normal-4336e69d.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a822063f136c994ed1bdf1fce0c27fb99681354f GIT binary patch literal 21960 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-300-normal-34623012.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..25be677ce28b7872da5c708702fea7fd447e703e GIT binary patch literal 21848 zcmV)JK)b(pPew8T0RR91099B35C8xG0M}#y095z@0RR9100000000000000000000 z0000QgE|}1avXXFU_Vn-K~zKliBJ&;3WB95f%|L=iaG!RHUcCAlyC$f1%x;UAPff^ zR=hQ1TNX3u4gmj98680dH-_HrNa*paR}Z+uuyGogVP8M{|IbM}#;8I47^r1kUxFUN z@RT81NkTPLRmZ3-;uuysXPGu+c;PzSo8CpA+p^^lrkYEi7m>{@$Q-7+&@3UgHIer0 z6$K(d(vmczpO|+Wi>1NFR#mAZ0@)=J6=k&&NoRrHl*{dp{Y=T{hH@8yaSI<+b6%oo z?Rl%`?q&l>IxNw${)vhM0wLqr5nDiEfE)=&@Ya98)879<(|QmNbVuX}wFh!Liur+` zTMrNzJ)$I~m1+SQ-9tbaBL*!sLb68+8zb@qA~BF?X)y=`gA*0S$g@v9>7V|doxLd~ zS~CfK6R{XN@rf0JN_X+lky0M)yHr{#=5Xm>^+knG&FZVJ0gz*pLs@A98N z4cv9;w)48Pt4pmz%tAO+ehvVl&ponDVUo-H3<9aJ7AX-zfPwZ*np1e+8ovrN5T;-U z7ak>F*jQVo+Ct*Kg6A)FWhEn)g7`~_;QPOYx`tRc_eD3p<>4WuLW^nn>Nm}2>C$4r z4kmpS6lfS201e;*XaEfZ&C^CatvodR+F)g^(3^q;U0TbMJ2%s^Mo@i5iAm-PNE0Dn zsu%k0EPr-;8T}KrUH+uZHD} zpoY@N_k8O@p~Sn_4u$){M$4Rooq=mozftdWl#0}mRY#asVB;S)#-w3ung9nt|7X)| zcMXSJhOp>uhpCc~t}Llla^?M>L(?IkHD?G+I3 z+Ci>EP|SAh4+g}nrZu47n{aw;?Cfj$N^^g8Zi?%9Mk&p8W5NPITxbMs>3nk0OKVCm z%s8LP6F>w7UBWO83&5t}) zQ!6FAYcYVcyrcB-xf{l2Z9DudubhP-HWDrPH&(!Yw*N~@y_gxXvPE3;jCdCm2`M%b zU&Tn}szj<)FVY};B±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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-400-normal-64a98f58.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b0d08940cecb820c35155bcce4d76d7e9f40e08f GIT binary patch literal 20432 zcmV)HK)t_rPew8T0RR9108h{W5C8xG0M{r008eiK0RR9100000000000000000000 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 L=?|qBUf_KIs?>U$ literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-500-normal-4fba9ae6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e78729184be2adb080feca2ea48ff6b97a1e11a2 GIT binary patch literal 22336 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 b/invokeai/frontend/web/dist/assets/inter-latin-ext-900-normal-3cff82a5.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d12b58373dbb359d5176cb98413b7b5214dcfd6 GIT binary patch literal 21768 zcmV)LK)JtnPew8T0RR91096P85C8xG0NfM+092>|0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/index.html b/invokeai/frontend/web/dist/index.html index d37f30450b..ad84d908d4 100644 --- a/invokeai/frontend/web/dist/index.html +++ b/invokeai/frontend/web/dist/index.html @@ -5,8 +5,8 @@ InvokeAI - A Stable Diffusion Toolkit - - + + diff --git a/invokeai/frontend/web/dist/locales/es.json b/invokeai/frontend/web/dist/locales/es.json index 2eff2e1e01..5081ab0799 100644 --- a/invokeai/frontend/web/dist/locales/es.json +++ b/invokeai/frontend/web/dist/locales/es.json @@ -15,7 +15,7 @@ "langSpanish": "Español", "nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.", "postProcessing": "Post-procesamiento", - "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador", + "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador.", "postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.", "postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.", "training": "Entrenamiento", @@ -44,7 +44,26 @@ "statusUpscaling": "Aumentando Tamaño", "statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)", "statusLoadingModel": "Cargando Modelo", - "statusModelChanged": "Modelo cambiado" + "statusModelChanged": "Modelo cambiado", + "statusMergedModels": "Modelos combinados", + "githubLabel": "Github", + "discordLabel": "Discord", + "langEnglish": "Inglés", + "langDutch": "Holandés", + "langFrench": "Francés", + "langGerman": "Alemán", + "langItalian": "Italiano", + "langArabic": "Árabe", + "langJapanese": "Japones", + "langPolish": "Polaco", + "langBrPortuguese": "Portugués brasileño", + "langRussian": "Ruso", + "langSimplifiedChinese": "Chino simplificado", + "langUkranian": "Ucraniano", + "back": "Atrás", + "statusConvertingModel": "Convertir el modelo", + "statusModelConverted": "Modelo adaptado", + "statusMergingModels": "Fusionar modelos" }, "gallery": { "generations": "Generaciones", @@ -284,16 +303,16 @@ "nameValidationMsg": "Introduce un nombre para tu modelo", "description": "Descripción", "descriptionValidationMsg": "Introduce una descripción para tu modelo", - "config": "Config", - "configValidationMsg": "Ruta del archivo de configuración del modelo", + "config": "Configurar", + "configValidationMsg": "Ruta del archivo de configuración del modelo.", "modelLocation": "Ubicación del Modelo", - "modelLocationValidationMsg": "Ruta del archivo de modelo", + "modelLocationValidationMsg": "Ruta del archivo de modelo.", "vaeLocation": "Ubicación VAE", - "vaeLocationValidationMsg": "Ruta del archivo VAE", + "vaeLocationValidationMsg": "Ruta del archivo VAE.", "width": "Ancho", - "widthValidationMsg": "Ancho predeterminado de tu modelo", + "widthValidationMsg": "Ancho predeterminado de tu modelo.", "height": "Alto", - "heightValidationMsg": "Alto predeterminado de tu modelo", + "heightValidationMsg": "Alto predeterminado de tu modelo.", "addModel": "Añadir Modelo", "updateModel": "Actualizar Modelo", "availableModels": "Modelos disponibles", @@ -320,7 +339,61 @@ "deleteModel": "Eliminar Modelo", "deleteConfig": "Eliminar Configuración", "deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?", - "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas." + "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas.", + "safetensorModels": "SafeTensors", + "addDiffuserModel": "Añadir difusores", + "inpainting": "v1 Repintado", + "repoIDValidationMsg": "Repositorio en línea de tu modelo", + "checkpointModels": "Puntos de control", + "convertToDiffusersHelpText4": "Este proceso se realiza una sola vez. Puede tardar entre 30 y 60 segundos dependiendo de las especificaciones de tu ordenador.", + "diffusersModels": "Difusores", + "addCheckpointModel": "Agregar modelo de punto de control/Modelo Safetensor", + "vaeRepoID": "Identificador del repositorio de VAE", + "vaeRepoIDValidationMsg": "Repositorio en línea de tú VAE", + "formMessageDiffusersModelLocation": "Difusores Modelo Ubicación", + "formMessageDiffusersModelLocationDesc": "Por favor, introduzca al menos uno.", + "formMessageDiffusersVAELocation": "Ubicación VAE", + "formMessageDiffusersVAELocationDesc": "Si no se proporciona, InvokeAI buscará el archivo VAE dentro de la ubicación del modelo indicada anteriormente.", + "convert": "Convertir", + "convertToDiffusers": "Convertir en difusores", + "convertToDiffusersHelpText1": "Este modelo se convertirá al formato 🧨 Difusores.", + "convertToDiffusersHelpText2": "Este proceso sustituirá su entrada del Gestor de Modelos por la versión de Difusores del mismo modelo.", + "convertToDiffusersHelpText3": "Su archivo de puntos de control en el disco NO será borrado ni modificado de ninguna manera. Puede volver a añadir su punto de control al Gestor de Modelos si lo desea.", + "convertToDiffusersHelpText5": "Asegúrese de que dispone de suficiente espacio en disco. Los modelos suelen variar entre 4 GB y 7 GB de tamaño.", + "convertToDiffusersHelpText6": "¿Desea transformar este modelo?", + "convertToDiffusersSaveLocation": "Guardar ubicación", + "v1": "v1", + "v2": "v2", + "statusConverting": "Adaptar", + "modelConverted": "Modelo adaptado", + "sameFolder": "La misma carpeta", + "invokeRoot": "Carpeta InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Ubicación personalizada para guardar", + "merge": "Fusión", + "modelsMerged": "Modelos fusionados", + "mergeModels": "Combinar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "mergedModelName": "Nombre del modelo combinado", + "alpha": "Alfa", + "interpolationType": "Tipo de interpolación", + "mergedModelSaveLocation": "Guardar ubicación", + "mergedModelCustomSaveLocation": "Ruta personalizada", + "invokeAIFolder": "Invocar carpeta de la inteligencia artificial", + "modelMergeHeaderHelp2": "Sólo se pueden fusionar difusores. Si desea fusionar un modelo de punto de control, conviértalo primero en difusores.", + "modelMergeAlphaHelp": "Alfa controla la fuerza de mezcla de los modelos. Los valores alfa más bajos reducen la influencia del segundo modelo.", + "modelMergeInterpAddDifferenceHelp": "En este modo, el Modelo 3 se sustrae primero del Modelo 2. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente.", + "ignoreMismatch": "Ignorar discrepancias entre modelos seleccionados", + "modelMergeHeaderHelp1": "Puede combinar hasta tres modelos diferentes para crear una mezcla que se adapte a sus necesidades.", + "inverseSigmoid": "Sigmoideo inverso", + "weightedSum": "Modelo de suma ponderada", + "sigmoid": "Función sigmoide", + "allModels": "Todos los modelos", + "repo_id": "Identificador del repositorio", + "pathToCustomConfig": "Ruta a la configuración personalizada", + "customConfig": "Configuración personalizada" }, "parameters": { "images": "Imágenes", @@ -380,7 +453,22 @@ "info": "Información", "deleteImage": "Eliminar Imagen", "initialImage": "Imagen Inicial", - "showOptionsPanel": "Mostrar panel de opciones" + "showOptionsPanel": "Mostrar panel de opciones", + "symmetry": "Simetría", + "vSymmetryStep": "Paso de simetría V", + "hSymmetryStep": "Paso de simetría H", + "cancel": { + "immediate": "Cancelar inmediatamente", + "schedule": "Cancelar tras la iteración actual", + "isScheduled": "Cancelando", + "setType": "Tipo de cancelación" + }, + "copyImage": "Copiar la imagen", + "general": "General", + "negativePrompts": "Preguntas negativas", + "imageToImage": "Imagen a imagen", + "denoisingStrength": "Intensidad de la eliminación del ruido", + "hiresStrength": "Alta resistencia" }, "settings": { "models": "Modelos", @@ -393,7 +481,8 @@ "resetWebUI": "Restablecer interfaz web", "resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.", "resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.", - "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla." + "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla.", + "useSlidersForAll": "Utilice controles deslizantes para todas las opciones" }, "toast": { "tempFoldersEmptied": "Directorio temporal vaciado", @@ -431,12 +520,12 @@ "feature": { "prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.", "gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.", - "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.", + "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. 'Seamless mosaico' creará patrones repetitivos en la salida. 'Alta resolución' es la generación en dos pasos con img2img: use esta configuración cuando desee una imagen más grande y más coherente sin artefactos. tomar más tiempo de lo habitual txt2img.", "seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.", "variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.", "upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.", "faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.", - "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.", + "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75", "boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.", "seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.", "infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)." diff --git a/invokeai/frontend/web/dist/locales/nl.json b/invokeai/frontend/web/dist/locales/nl.json index 4116914132..46baf83ff9 100644 --- a/invokeai/frontend/web/dist/locales/nl.json +++ b/invokeai/frontend/web/dist/locales/nl.json @@ -43,27 +43,7 @@ "statusUpscaling": "Opschaling", "statusUpscalingESRGAN": "Opschaling (ESRGAN)", "statusLoadingModel": "Laden van model", - "statusModelChanged": "Model gewijzigd", - "githubLabel": "Github", - "discordLabel": "Discord", - "langArabic": "Arabisch", - "langEnglish": "Engels", - "langFrench": "Frans", - "langGerman": "Duits", - "langItalian": "Italiaans", - "langJapanese": "Japans", - "langPolish": "Pools", - "langBrPortuguese": "Portugees (Brazilië)", - "langRussian": "Russisch", - "langSimplifiedChinese": "Chinees (vereenvoudigd)", - "langUkranian": "Oekraïens", - "langSpanish": "Spaans", - "training": "Training", - "back": "Terug", - "statusConvertingModel": "Omzetten van model", - "statusModelConverted": "Model omgezet", - "statusMergingModels": "Samenvoegen van modellen", - "statusMergedModels": "Modellen samengevoegd" + "statusModelChanged": "Model gewijzigd" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -302,7 +282,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -339,61 +319,7 @@ "deleteModel": "Verwijder model", "deleteConfig": "Verwijder configuratie", "deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?", - "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.", - "formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.", - "repoIDValidationMsg": "Online repository van je model", - "formMessageDiffusersModelLocation": "Locatie Diffusers-model", - "convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.", - "convertToDiffusersHelpText6": "Wil je dit model omzetten?", - "allModels": "Alle modellen", - "checkpointModels": "Checkpoints", - "safetensorModels": "SafeTensors", - "addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe", - "addDiffuserModel": "Voeg Diffusers-model toe", - "diffusersModels": "Diffusers", - "repo_id": "Repo-id", - "vaeRepoID": "Repo-id VAE", - "vaeRepoIDValidationMsg": "Online repository van je VAE", - "formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.", - "formMessageDiffusersVAELocation": "Locatie VAE", - "convert": "Omzetten", - "convertToDiffusers": "Omzetten naar Diffusers", - "convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.", - "convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.", - "convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.", - "convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.", - "convertToDiffusersSaveLocation": "Bewaarlocatie", - "v1": "v1", - "v2": "v2", - "inpainting": "v1-inpainting", - "customConfig": "Eigen configuratie", - "pathToCustomConfig": "Pad naar eigen configuratie", - "statusConverting": "Omzetten", - "modelConverted": "Model omgezet", - "sameFolder": "Dezelfde map", - "invokeRoot": "InvokeAI-map", - "custom": "Eigen", - "customSaveLocation": "Eigen bewaarlocatie", - "merge": "Samenvoegen", - "modelsMerged": "Modellen samengevoegd", - "mergeModels": "Voeg modellen samen", - "modelOne": "Model 1", - "modelTwo": "Model 2", - "modelThree": "Model 3", - "mergedModelName": "Samengevoegde modelnaam", - "alpha": "Alfa", - "interpolationType": "Soort interpolatie", - "mergedModelSaveLocation": "Bewaarlocatie", - "mergedModelCustomSaveLocation": "Eigen pad", - "invokeAIFolder": "InvokeAI-map", - "ignoreMismatch": "Negeer discrepanties tussen gekozen modellen", - "modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.", - "modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.", - "modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.", - "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", - "inverseSigmoid": "Keer Sigmoid om", - "sigmoid": "Sigmoid", - "weightedSum": "Gewogen som" + "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt." }, "parameters": { "images": "Afbeeldingen", @@ -453,22 +379,7 @@ "info": "Info", "deleteImage": "Verwijder afbeelding", "initialImage": "Initiële afbeelding", - "showOptionsPanel": "Toon deelscherm Opties", - "symmetry": "Symmetrie", - "hSymmetryStep": "Stap horiz. symmetrie", - "vSymmetryStep": "Stap vert. symmetrie", - "cancel": { - "immediate": "Annuleer direct", - "isScheduled": "Annuleren", - "setType": "Stel annuleervorm in", - "schedule": "Annuleer na huidige iteratie" - }, - "negativePrompts": "Negatieve invoer", - "general": "Algemeen", - "copyImage": "Kopieer afbeelding", - "imageToImage": "Afbeelding naar afbeelding", - "denoisingStrength": "Sterkte ontruisen", - "hiresStrength": "Sterkte hogere resolutie" + "showOptionsPanel": "Toon deelscherm Opties" }, "settings": { "models": "Modellen", @@ -481,8 +392,7 @@ "resetWebUI": "Herstel web-UI", "resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.", "resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.", - "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.", - "useSlidersForAll": "Gebruik schuifbalken voor alle opties" + "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden." }, "toast": { "tempFoldersEmptied": "Tijdelijke map geleegd", diff --git a/invokeai/frontend/web/dist/locales/pt_BR.json b/invokeai/frontend/web/dist/locales/pt_BR.json index 2380f92932..fdfe2270bf 100644 --- a/invokeai/frontend/web/dist/locales/pt_BR.json +++ b/invokeai/frontend/web/dist/locales/pt_BR.json @@ -44,7 +44,26 @@ "statusUpscaling": "Redimensinando", "statusUpscalingESRGAN": "Redimensinando (ESRGAN)", "statusLoadingModel": "Carregando Modelo", - "statusModelChanged": "Modelo Alterado" + "statusModelChanged": "Modelo Alterado", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Árabe", + "langEnglish": "Inglês", + "langDutch": "Holandês", + "langFrench": "Francês", + "langGerman": "Alemão", + "langItalian": "Italiano", + "langJapanese": "Japonês", + "langPolish": "Polonês", + "langSimplifiedChinese": "Chinês", + "langUkranian": "Ucraniano", + "back": "Voltar", + "statusConvertingModel": "Convertendo Modelo", + "statusModelConverted": "Modelo Convertido", + "statusMergingModels": "Mesclando Modelos", + "statusMergedModels": "Modelos Mesclados", + "langRussian": "Russo", + "langSpanish": "Espanhol" }, "gallery": { "generations": "Gerações", @@ -237,7 +256,7 @@ "desc": "Salva a tela atual na galeria" }, "copyToClipboard": { - "title": "Copiar Para a Área de Transferência ", + "title": "Copiar para a Área de Transferência", "desc": "Copia a tela atual para a área de transferência" }, "downloadImage": { @@ -284,7 +303,7 @@ "nameValidationMsg": "Insira um nome para o seu modelo", "description": "Descrição", "descriptionValidationMsg": "Adicione uma descrição para o seu modelo", - "config": "Config", + "config": "Configuração", "configValidationMsg": "Caminho para o arquivo de configuração do seu modelo.", "modelLocation": "Localização do modelo", "modelLocationValidationMsg": "Caminho para onde seu modelo está localizado.", @@ -317,7 +336,52 @@ "deleteModel": "Excluir modelo", "deleteConfig": "Excluir Config", "deleteMsg1": "Tem certeza de que deseja excluir esta entrada do modelo de InvokeAI?", - "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar." + "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar.", + "checkpointModels": "Checkpoints", + "diffusersModels": "Diffusers", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Adicionar Modelo de Checkpoint/Safetensor", + "addDiffuserModel": "Adicionar Diffusers", + "repo_id": "Repo ID", + "vaeRepoID": "VAE Repo ID", + "vaeRepoIDValidationMsg": "Repositório Online do seu VAE", + "scanAgain": "Digitalize Novamente", + "selectAndAdd": "Selecione e Adicione Modelos Listados Abaixo", + "noModelsFound": "Nenhum Modelo Encontrado", + "formMessageDiffusersModelLocation": "Localização dos Modelos Diffusers", + "formMessageDiffusersModelLocationDesc": "Por favor entre com ao menos um.", + "formMessageDiffusersVAELocation": "Localização do VAE", + "formMessageDiffusersVAELocationDesc": "Se não provido, InvokeAI irá procurar pelo arquivo VAE dentro do local do modelo.", + "convertToDiffusers": "Converter para Diffusers", + "convertToDiffusersHelpText1": "Este modelo será convertido para o formato 🧨 Diffusers.", + "convertToDiffusersHelpText5": "Por favor, certifique-se de que você tenha espaço suficiente em disco. Os modelos geralmente variam entre 4GB e 7GB de tamanho.", + "convertToDiffusersHelpText6": "Você deseja converter este modelo?", + "convertToDiffusersSaveLocation": "Local para Salvar", + "v1": "v1", + "v2": "v2", + "inpainting": "v1 Inpainting", + "customConfig": "Configuração personalizada", + "pathToCustomConfig": "Caminho para configuração personalizada", + "convertToDiffusersHelpText3": "Seu arquivo de ponto de verificação no disco NÃO será excluído ou modificado de forma alguma. Você pode adicionar seu ponto de verificação ao Gerenciador de modelos novamente, se desejar.", + "convertToDiffusersHelpText4": "Este é um processo único. Pode levar cerca de 30 a 60s, dependendo das especificações do seu computador.", + "merge": "Mesclar", + "modelsMerged": "Modelos mesclados", + "mergeModels": "Mesclar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "statusConverting": "Convertendo", + "modelConverted": "Modelo Convertido", + "sameFolder": "Mesma pasta", + "invokeRoot": "Pasta do InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Local de salvamento personalizado", + "mergedModelName": "Nome do modelo mesclado", + "alpha": "Alpha", + "allModels": "Todos os Modelos", + "repoIDValidationMsg": "Repositório Online do seu Modelo", + "convert": "Converter", + "convertToDiffusersHelpText2": "Este processo irá substituir sua entrada de Gerenciador de Modelos por uma versão Diffusers do mesmo modelo." }, "parameters": { "images": "Imagems", @@ -442,14 +506,14 @@ "move": "Mover", "resetView": "Resetar Visualização", "mergeVisible": "Fundir Visível", - "saveToGallery": "Save To Gallery", + "saveToGallery": "Salvar na Galeria", "copyToClipboard": "Copiar para a Área de Transferência", "downloadAsImage": "Baixar Como Imagem", "undo": "Desfazer", "redo": "Refazer", "clearCanvas": "Limpar Tela", "canvasSettings": "Configurações de Tela", - "showIntermediates": "Show Intermediates", + "showIntermediates": "Mostrar Intermediários", "showGrid": "Mostrar Grade", "snapToGrid": "Encaixar na Grade", "darkenOutsideSelection": "Escurecer Seleção Externa", diff --git a/invokeai/frontend/web/dist/locales/zh_Hant.json b/invokeai/frontend/web/dist/locales/ro.json similarity index 100% rename from invokeai/frontend/web/dist/locales/zh_Hant.json rename to invokeai/frontend/web/dist/locales/ro.json diff --git a/invokeai/frontend/web/index.html b/invokeai/frontend/web/index.html index 8314e22a7d..04d81e5490 100644 --- a/invokeai/frontend/web/index.html +++ b/invokeai/frontend/web/index.html @@ -5,9 +5,16 @@ InvokeAI - A Stable Diffusion Toolkit + - +

    diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index c907a83cd9..c47042ef95 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -5,28 +5,44 @@ "scripts": { "prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky", "dev": "vite dev", - "build": "tsc && vite build", + "build": "npm run lint && vite build", "preview": "vite preview", - "madge": "madge --circular src/main.tsx", - "lint": "eslint --fix .", + "lint:madge": "madge --circular src/main.tsx", + "lint:eslint": "eslint --max-warnings=0", + "lint:prettier": "prettier --check .", + "lint:tsc": "tsc --noEmit", + "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:tsc && npm run lint:madge", + "fix": "eslint --fix . && prettier --loglevel warn --write . && tsc --noEmit", "lint-staged": "lint-staged", - "prettier": "prettier *.{json,js,ts,html} public/locales/*.json src/**/*.{ts,tsx,scss} --write --loglevel warn .", - "fmt": "npm run prettier -- --write", - "postinstall": "patch-package" + "postinstall": "patch-package && yarn run theme", + "theme": "chakra-cli tokens src/theme/theme.ts", + "theme:watch": "chakra-cli tokens src/theme/theme.ts --watch" + }, + "madge": { + "detectiveOptions": { + "ts": { + "skipTypeImports": true + }, + "tsx": { + "skipTypeImports": true + } + } + }, + "lint-staged": { + "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ + "prettier --write", + "eslint --fix" + ] }, "dependencies": { + "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.17", "@chakra-ui/react": "^2.5.1", - "@emotion/cache": "^11.10.5", + "@chakra-ui/theme-tools": "^2.0.16", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", - "@radix-ui/react-context-menu": "^2.1.1", - "@radix-ui/react-slider": "^1.1.0", - "@radix-ui/react-tooltip": "^1.0.3", "@reduxjs/toolkit": "^1.9.2", - "@types/uuid": "^9.0.0", - "@vitejs/plugin-react-swc": "^3.2.0", - "add": "^2.0.6", + "chakra-ui-contextmenu": "^1.0.5", "dateformat": "^5.0.3", "formik": "^2.2.9", "framer-motion": "^9.0.4", @@ -50,19 +66,21 @@ "react-zoom-pan-pinch": "^2.6.1", "redux-deep-persist": "^1.0.7", "redux-persist": "^6.0.0", - "socket.io": "^4.6.0", "socket.io-client": "^4.6.0", "use-image": "^1.1.0", - "uuid": "^9.0.0", - "yarn": "^1.22.19" + "uuid": "^9.0.0" }, "devDependencies": { + "@chakra-ui/cli": "^2.3.0", + "@fontsource/inter": "^4.5.15", "@types/dateformat": "^5.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "@types/react-transition-group": "^4.4.5", + "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", + "@vitejs/plugin-react-swc": "^3.2.0", "babel-plugin-transform-imports": "^2.0.0", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", @@ -76,26 +94,10 @@ "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.4", "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.3", "terser": "^5.16.4", "vite": "^4.1.2", "vite-plugin-eslint": "^1.8.1", - "vite-tsconfig-paths": "^4.0.5" - }, - "madge": { - "detectiveOptions": { - "ts": { - "skipTypeImports": true - }, - "tsx": { - "skipTypeImports": true - } - } - }, - "lint-staged": { - "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ - "npm run prettier", - "npm run lint" - ] + "vite-tsconfig-paths": "^4.0.5", + "yarn": "^1.22.19" } } diff --git a/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch new file mode 100644 index 0000000000..03db6e8238 --- /dev/null +++ b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +index 937cf0d..7dcc0c0 100644 +--- a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js ++++ b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +@@ -50,7 +50,8 @@ async function readTheme(themeFilePath) { + project: tsConfig.configFileAbsolutePath, + compilerOptions: { + module: "CommonJS", +- esModuleInterop: true ++ esModuleInterop: true, ++ jsx: 'react' + }, + transpileOnly: true, + swc: true diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index c9a3f48c47..00e1202f12 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -10,14 +10,18 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", + "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", + "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", + "langKorean": "한국어", "langPolish": "Polski", + "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -63,7 +67,10 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged" + "statusMergedModels": "Models Merged", + "pinOptionsPanel": "Pin Options Panel", + "loading": "Loading", + "loadingInvokeAI": "Loading Invoke AI" }, "gallery": { "generations": "Generations", @@ -82,7 +89,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shorcuts", + "keyboardShortcuts": "Keyboard Shortcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -387,13 +394,16 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum" + "weightedSum": "Weighted Sum", + "none": "none", + "addDifference": "Add Difference", + "pickModelType": "Pick Model Type" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/dist/locales/he.json b/invokeai/frontend/web/public/locales/he.json similarity index 100% rename from invokeai/frontend/web/dist/locales/he.json rename to invokeai/frontend/web/public/locales/he.json diff --git a/invokeai/frontend/web/dist/locales/ko.json b/invokeai/frontend/web/public/locales/ko.json similarity index 100% rename from invokeai/frontend/web/dist/locales/ko.json rename to invokeai/frontend/web/public/locales/ko.json diff --git a/invokeai/frontend/web/public/locales/nl.json b/invokeai/frontend/web/public/locales/nl.json index 46baf83ff9..4116914132 100644 --- a/invokeai/frontend/web/public/locales/nl.json +++ b/invokeai/frontend/web/public/locales/nl.json @@ -43,7 +43,27 @@ "statusUpscaling": "Opschaling", "statusUpscalingESRGAN": "Opschaling (ESRGAN)", "statusLoadingModel": "Laden van model", - "statusModelChanged": "Model gewijzigd" + "statusModelChanged": "Model gewijzigd", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Arabisch", + "langEnglish": "Engels", + "langFrench": "Frans", + "langGerman": "Duits", + "langItalian": "Italiaans", + "langJapanese": "Japans", + "langPolish": "Pools", + "langBrPortuguese": "Portugees (Brazilië)", + "langRussian": "Russisch", + "langSimplifiedChinese": "Chinees (vereenvoudigd)", + "langUkranian": "Oekraïens", + "langSpanish": "Spaans", + "training": "Training", + "back": "Terug", + "statusConvertingModel": "Omzetten van model", + "statusModelConverted": "Model omgezet", + "statusMergingModels": "Samenvoegen van modellen", + "statusMergedModels": "Modellen samengevoegd" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -282,7 +302,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -319,7 +339,61 @@ "deleteModel": "Verwijder model", "deleteConfig": "Verwijder configuratie", "deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?", - "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt." + "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.", + "formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.", + "repoIDValidationMsg": "Online repository van je model", + "formMessageDiffusersModelLocation": "Locatie Diffusers-model", + "convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.", + "convertToDiffusersHelpText6": "Wil je dit model omzetten?", + "allModels": "Alle modellen", + "checkpointModels": "Checkpoints", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe", + "addDiffuserModel": "Voeg Diffusers-model toe", + "diffusersModels": "Diffusers", + "repo_id": "Repo-id", + "vaeRepoID": "Repo-id VAE", + "vaeRepoIDValidationMsg": "Online repository van je VAE", + "formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.", + "formMessageDiffusersVAELocation": "Locatie VAE", + "convert": "Omzetten", + "convertToDiffusers": "Omzetten naar Diffusers", + "convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.", + "convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.", + "convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.", + "convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.", + "convertToDiffusersSaveLocation": "Bewaarlocatie", + "v1": "v1", + "v2": "v2", + "inpainting": "v1-inpainting", + "customConfig": "Eigen configuratie", + "pathToCustomConfig": "Pad naar eigen configuratie", + "statusConverting": "Omzetten", + "modelConverted": "Model omgezet", + "sameFolder": "Dezelfde map", + "invokeRoot": "InvokeAI-map", + "custom": "Eigen", + "customSaveLocation": "Eigen bewaarlocatie", + "merge": "Samenvoegen", + "modelsMerged": "Modellen samengevoegd", + "mergeModels": "Voeg modellen samen", + "modelOne": "Model 1", + "modelTwo": "Model 2", + "modelThree": "Model 3", + "mergedModelName": "Samengevoegde modelnaam", + "alpha": "Alfa", + "interpolationType": "Soort interpolatie", + "mergedModelSaveLocation": "Bewaarlocatie", + "mergedModelCustomSaveLocation": "Eigen pad", + "invokeAIFolder": "InvokeAI-map", + "ignoreMismatch": "Negeer discrepanties tussen gekozen modellen", + "modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.", + "modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.", + "modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.", + "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", + "inverseSigmoid": "Keer Sigmoid om", + "sigmoid": "Sigmoid", + "weightedSum": "Gewogen som" }, "parameters": { "images": "Afbeeldingen", @@ -379,7 +453,22 @@ "info": "Info", "deleteImage": "Verwijder afbeelding", "initialImage": "Initiële afbeelding", - "showOptionsPanel": "Toon deelscherm Opties" + "showOptionsPanel": "Toon deelscherm Opties", + "symmetry": "Symmetrie", + "hSymmetryStep": "Stap horiz. symmetrie", + "vSymmetryStep": "Stap vert. symmetrie", + "cancel": { + "immediate": "Annuleer direct", + "isScheduled": "Annuleren", + "setType": "Stel annuleervorm in", + "schedule": "Annuleer na huidige iteratie" + }, + "negativePrompts": "Negatieve invoer", + "general": "Algemeen", + "copyImage": "Kopieer afbeelding", + "imageToImage": "Afbeelding naar afbeelding", + "denoisingStrength": "Sterkte ontruisen", + "hiresStrength": "Sterkte hogere resolutie" }, "settings": { "models": "Modellen", @@ -392,7 +481,8 @@ "resetWebUI": "Herstel web-UI", "resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.", "resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.", - "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden." + "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.", + "useSlidersForAll": "Gebruik schuifbalken voor alle opties" }, "toast": { "tempFoldersEmptied": "Tijdelijke map geleegd", diff --git a/invokeai/frontend/web/dist/locales/pt.json b/invokeai/frontend/web/public/locales/pt.json similarity index 100% rename from invokeai/frontend/web/dist/locales/pt.json rename to invokeai/frontend/web/public/locales/pt.json diff --git a/invokeai/frontend/web/public/locales/zh_Hant.json b/invokeai/frontend/web/public/locales/zh_Hant.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/invokeai/frontend/web/public/locales/zh_Hant.json @@ -0,0 +1 @@ +{} diff --git a/invokeai/frontend/web/src/Loading.tsx b/invokeai/frontend/web/src/Loading.tsx index 066315ecd1..671c2cd640 100644 --- a/invokeai/frontend/web/src/Loading.tsx +++ b/invokeai/frontend/web/src/Loading.tsx @@ -1,20 +1,37 @@ -import { Flex, Spinner } from '@chakra-ui/react'; +import { Flex, Spinner, Text } from '@chakra-ui/react'; +import { useTranslation } from 'react-i18next'; + +interface LoaderProps { + showText?: boolean; + text?: string; +} + +// This component loads before the theme so we cannot use theme tokens here + +const Loading = (props: LoaderProps) => { + const { t } = useTranslation(); + const { showText = false, text = t('common.loadingInvokeAI') } = props; -const Loading = () => { return ( - + + {showText && ( + + {text} + + )} ); }; diff --git a/invokeai/frontend/web/src/app/App.scss b/invokeai/frontend/web/src/app/App.scss deleted file mode 100644 index 16655f84d4..0000000000 --- a/invokeai/frontend/web/src/app/App.scss +++ /dev/null @@ -1,21 +0,0 @@ -@use '../styles/Mixins/' as *; - -svg { - fill: var(--svg-color); -} - -.App { - display: grid; - width: 100vw; - height: 100vh; - background-color: var(--background-color); -} - -.app-content { - display: grid; - row-gap: 1rem; - padding: $app-padding; - grid-auto-rows: min-content auto; - width: $app-width; - height: $app-height; -} diff --git a/invokeai/frontend/web/src/app/App.tsx b/invokeai/frontend/web/src/app/App.tsx index d0ed2ab016..3599577ca1 100644 --- a/invokeai/frontend/web/src/app/App.tsx +++ b/invokeai/frontend/web/src/app/App.tsx @@ -9,6 +9,8 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher'; import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton'; import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons'; +import { Box, Grid } from '@chakra-ui/react'; +import { APP_HEIGHT, APP_PADDING, APP_WIDTH } from 'theme/util/constants'; keepGUIAlive(); @@ -16,20 +18,26 @@ const App = () => { useToastWatcher(); return ( -
    + -
    + -
    -
    + + -
    +
    -
    + ); }; diff --git a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx new file mode 100644 index 0000000000..51fad5a431 --- /dev/null +++ b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx @@ -0,0 +1,46 @@ +import { ChakraProvider, extendTheme } from '@chakra-ui/react'; +import { ReactNode, useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; +import { theme as invokeAITheme } from 'theme/theme'; +import { RootState } from './store'; +import { useAppSelector } from './storeHooks'; + +import { greenTeaThemeColors } from 'theme/colors/greenTea'; +import { invokeAIThemeColors } from 'theme/colors/invokeAI'; +import { lightThemeColors } from 'theme/colors/lightTheme'; +import { oceanBlueColors } from 'theme/colors/oceanBlue'; + +type ThemeLocaleProviderProps = { + children: ReactNode; +}; + +const THEMES = { + dark: invokeAIThemeColors, + light: lightThemeColors, + green: greenTeaThemeColors, + ocean: oceanBlueColors, +}; + +function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) { + const { i18n } = useTranslation(); + + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); + + const direction = i18n.dir(); + + const theme = extendTheme({ + ...invokeAITheme, + colors: THEMES[currentTheme as keyof typeof THEMES], + direction, + }); + + useEffect(() => { + document.body.dir = direction; + }, [direction]); + + return {children}; +} + +export default ThemeLocaleProvider; diff --git a/invokeai/frontend/web/src/app/socketio/listeners.ts b/invokeai/frontend/web/src/app/socketio/listeners.ts index 6442564e48..08de671260 100644 --- a/invokeai/frontend/web/src/app/socketio/listeners.ts +++ b/invokeai/frontend/web/src/app/socketio/listeners.ts @@ -392,7 +392,7 @@ const makeSocketIOListeners = ( addLogEntry({ timestamp: dateFormat(new Date(), 'isoDateTime'), message: `${i18n.t( - 'modelmanager:modelAdded' + 'modelManager.modelAdded' )}: ${deleted_model_name}`, level: 'info', }) @@ -400,7 +400,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelEntryDeleted' + 'modelManager.modelEntryDeleted' )}: ${deleted_model_name}`, status: 'success', duration: 2500, @@ -424,7 +424,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelConverted' + 'modelManager.modelConverted' )}: ${converted_model_name}`, status: 'success', duration: 2500, diff --git a/invokeai/frontend/web/src/app/theme.ts b/invokeai/frontend/web/src/app/theme.ts deleted file mode 100644 index 06b28a66ac..0000000000 --- a/invokeai/frontend/web/src/app/theme.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { extendTheme } from '@chakra-ui/react'; -import type { StyleFunctionProps } from '@chakra-ui/styled-system'; - -export const theme = extendTheme({ - config: { - initialColorMode: 'dark', - useSystemColorMode: false, - }, - components: { - Tooltip: { - baseStyle: (props: StyleFunctionProps) => ({ - textColor: props.colorMode === 'dark' ? 'gray.800' : 'gray.100', - }), - }, - Accordion: { - baseStyle: (props: StyleFunctionProps) => ({ - button: { - fontWeight: 'bold', - _hover: { - bgColor: - props.colorMode === 'dark' - ? 'rgba(255,255,255,0.05)' - : 'rgba(0,0,0,0.05)', - }, - }, - panel: { - paddingBottom: 2, - }, - }), - }, - FormLabel: { - baseStyle: { - fontWeight: 'light', - }, - }, - Button: { - variants: { - imageHoverIconButton: (props: StyleFunctionProps) => ({ - bg: props.colorMode === 'dark' ? 'blackAlpha.700' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.700' : 'blackAlpha.700', - _hover: { - bg: - props.colorMode === 'dark' ? 'blackAlpha.800' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.900' : 'blackAlpha.900', - }, - }), - }, - }, - }, -}); diff --git a/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf b/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf deleted file mode 100644 index 8e82c70d1081e2857ada1b73395d4f42c2e8adc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316100 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�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

    6=3(=QnPeuLDdti0n3-y(nd#Q;7fbjCmF@fSxxm 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

    S6KrIX_&}SieWqPQ?{H}=^!9pt?REVP{Y`DH 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%0Dq6U{pGSTfs98Msn(h=U&e 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 z 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%0DT&Wh@IO|A|;!G95D0#OWmq$qIMQoNTay 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

    -=$q^cxC1v6c5*~ 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 z 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 >GjZLQF0IXoz#S94~IrS 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

      N6pK-J!%2% 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 Px}&0SwEu%=SLuJU9z%U0dG>;EXY-e# zV_!CRhO;v9We!Z0y{N|b%go~AbL^O*hzOB}jBrBQASGi^T0*$75qD^F3mIYxBqKeY zc>a8UijD+{l32*oznrsN%G1x4W0nk@px8&n43*@Q$98^s08|9^eXxjoANFJ({zU1i zcWiaaq=qkEdVI?t3LukP+BoV z@^-vv+O-?e1C#VZY~B!vf~mNBGU<*lOr3l)w$f|31$vWhYDl7gO<8ZBOUVa*v~r1G zU8{U3RK#!%Al}G)OYM6#C%ks6125)Rf8U2RS!J8?qb$u?hd_?TBYvg$bY(&zv>#(! z_uiZC7&>|0uNN<_xJc{z{AJQm7e(%Lu6lg)kuGiEk4c6pzC?e45>VR6qTE3Vp45oF zFR5I8;%!<>he{4-iiBroUZTUe=f#@;&!H^vK<=R5jW8z^Zpmip=?bUz?Ze8{-HI3X zbU^2lMdgt;1zTVPgIU`MX_z*llYK*%f;zfZxt;C$j@< zxYti7Ee0v~ESbp1%x~nLX}}Zu%@PG3rLt1~`?mgoHFgZ+kJgL3-h@=;srQOiQ{K#H zPl?6JWxp}(nawBzKrQ)lNi^B@9C`qcdf@JwB0@RnmgMUDe4WFK>7$BBYh;GS`}?fY zLWJiu%gB+izj*A`k4g;4lmAuC%Z37ezNkhk!LbDWjwcQ(;w=8}0R>LhQv-}+r?M&* zl%N5=MMgOOGOOQz;%b>F_(z6XgB)N8y1DjZybU$fnLBD(0Ov@dbhM}tcHoNOEAxiY z)oB?c^9W_XUM!tUve`b&Q?_g&s&3n~NlD{>Oa|!#-R|mta)Zv${%T%+#1!;@R4vnB z1BE<9H@?6E#jOU+KNijH)+idJs=@ZwHWu2pATO0Z4o4p&sI(P1DAq+7Q#$OB>s`86 z2Go&k+3cvS-^*;0Eiohw;oSUHooR2q(Z;2@{IvrRdCGNuNAM zpGbYKh(5WRJ}D#?xZApMqtBO>HqT&;; z?nEwJF4i9$hxMRF)&laSHnTVoD3mx9wYHX3C#fJmo*0Hv5TNh)+aN=Vzj84=VyM3AL-tf1bY{4m^ z$ul?{L`SR+@)aGOq<)+{=YUDUz}{+Y^{cI|;U>dq(m}`}VAe-_yO7>4qPP3g+r2iV z@)$t?v2ovIaJa2ZwQY1*hH2dZ6p>&IwXTlN+v_P1rFhsQcU$;!|r4+J9Eh%Agq{Q(jt)?bz7047lDckK{ zvc#RufB&96{syGFH?(BYnhs+WQE}eseBVCzj-)tM;SLn8d%B}fIV+DiU5js;mohWv9JNm zvEN-F7WmYi6#<<1{#=Xne~7Y!Xqy?OMNqr`*vh1ij_XKGJ~ZT%B|kO04E$IRO+)TYdx{D zEGis5CYs=19QF7&M@d)^M{$7p>%606=FE4$E2OOURJz4Tr9cVrLe`COD_!!dqE{&O dOnHTJefZ`IWl=bJoOzARPmbiMuz8fC{5NLxuU-HE diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.scss b/invokeai/frontend/web/src/common/components/GuidePopover.scss deleted file mode 100644 index 58434270b2..0000000000 --- a/invokeai/frontend/web/src/common/components/GuidePopover.scss +++ /dev/null @@ -1,20 +0,0 @@ -.guide-popover-arrow { - background-color: var(--tab-panel-bg); - box-shadow: none; -} - -.guide-popover-content { - background-color: var(--background-color-secondary); - border: none; -} - -.guide-popover-guide-content { - background: var(--tab-panel-bg); - border: 2px solid var(--tab-hover-color); - border-radius: 0.4rem; - padding: 0.75rem 1rem 0.75rem 1rem; - display: grid; - grid-template-rows: repeat(auto-fill, 1fr); - grid-row-gap: 0.5rem; - justify-content: space-between; -} diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.tsx b/invokeai/frontend/web/src/common/components/GuidePopover.tsx index ca45343588..ee376901e0 100644 --- a/invokeai/frontend/web/src/common/components/GuidePopover.tsx +++ b/invokeai/frontend/web/src/common/components/GuidePopover.tsx @@ -2,6 +2,7 @@ import { Box, Popover, PopoverArrow, + PopoverBody, PopoverContent, PopoverTrigger, } from '@chakra-ui/react'; @@ -34,13 +35,12 @@ const GuidePopover = ({ children, feature }: GuideProps) => { {children} e.preventDefault()} cursor="initial" > - -
      {text}
      + + {text}
      ); diff --git a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx index 1ea35f5881..b1ddaf45d2 100644 --- a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx +++ b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx @@ -5,11 +5,11 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, forwardRef, useDisclosure, } from '@chakra-ui/react'; import { cloneElement, ReactElement, ReactNode, useRef } from 'react'; +import IAIButton from './IAIButton'; type Props = { acceptButtonText?: string; @@ -58,7 +58,7 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { onClose={onClose} > - + {title} @@ -66,16 +66,12 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { {children} - - + diff --git a/invokeai/frontend/web/src/common/components/IAIButton.scss b/invokeai/frontend/web/src/common/components/IAIButton.scss deleted file mode 100644 index 90489a3bda..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIButton.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__button { - background-color: var(--btn-base-color); - place-content: center; - - &:hover { - background-color: var(--btn-base-color-hover); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIButton.tsx b/invokeai/frontend/web/src/common/components/IAIButton.tsx index d25e9decae..ca06e51bf0 100644 --- a/invokeai/frontend/web/src/common/components/IAIButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIButton.tsx @@ -10,19 +10,15 @@ import { ReactNode } from 'react'; export interface IAIButtonProps extends ButtonProps { tooltip?: string; tooltipProps?: Omit; - styleClass?: string; + isChecked?: boolean; children: ReactNode; } const IAIButton = forwardRef((props: IAIButtonProps, forwardedRef) => { - const { children, tooltip = '', tooltipProps, styleClass, ...rest } = props; + const { children, tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( - diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.scss b/invokeai/frontend/web/src/common/components/IAICheckbox.scss deleted file mode 100644 index 3b79c8f4db..0000000000 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.scss +++ /dev/null @@ -1,26 +0,0 @@ -.invokeai__checkbox { - .chakra-checkbox__label { - margin-top: 1px; - color: var(--text-color-secondary); - font-size: 0.9rem; - } - - .chakra-checkbox__control { - width: 1rem; - height: 1rem; - border: none; - border-radius: 0.2rem; - background-color: var(--input-checkbox-bg); - - svg { - width: 0.6rem; - height: 0.6rem; - stroke-width: 3px; - } - - &[data-checked] { - color: var(--text-color); - background-color: var(--input-checkbox-checked-bg); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx index b9c526cf7e..c04a383767 100644 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx +++ b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx @@ -3,13 +3,12 @@ import type { ReactNode } from 'react'; type IAICheckboxProps = CheckboxProps & { label: string | ReactNode; - styleClass?: string; }; const IAICheckbox = (props: IAICheckboxProps) => { - const { label, styleClass, ...rest } = props; + const { label, ...rest } = props; return ( - + {label} ); diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss b/invokeai/frontend/web/src/common/components/IAIColorPicker.scss deleted file mode 100644 index 4b6e29483b..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__color-picker { - .react-colorful__hue-pointer, - .react-colorful__saturation-pointer { - width: 1.5rem; - height: 1.5rem; - border-color: var(--white); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx index 619c5758e6..406966bf88 100644 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx @@ -1,16 +1,35 @@ +import { chakra, ChakraProps } from '@chakra-ui/react'; import { RgbaColorPicker } from 'react-colorful'; import { ColorPickerBaseProps, RgbaColor } from 'react-colorful/dist/types'; -type IAIColorPickerProps = ColorPickerBaseProps & { - styleClass?: string; +type IAIColorPickerProps = Omit, 'color'> & + ChakraProps & { + pickerColor: RgbaColor; + styleClass?: string; + }; + +const ChakraRgbaColorPicker = chakra(RgbaColorPicker, { + baseStyle: { paddingInline: 4 }, + shouldForwardProp: (prop) => !['pickerColor'].includes(prop), +}); + +const colorPickerStyles: NonNullable = { + width: 6, + height: 6, + borderColor: 'base.100', }; const IAIColorPicker = (props: IAIColorPickerProps) => { - const { styleClass, ...rest } = props; + const { styleClass = '', ...rest } = props; return ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.scss b/invokeai/frontend/web/src/common/components/IAIIconButton.scss deleted file mode 100644 index d55e5de4c5..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.scss +++ /dev/null @@ -1,82 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__icon-button { - background: var(--btn-base-color); - cursor: pointer; - - &:hover { - background-color: var(--btn-base-color-hover); - } - - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - - &[disabled] { - cursor: not-allowed; - } - - &[data-variant='link'] { - background: none; - &:hover { - background: none; - } - } - - // Check Box Style - &[data-as-checkbox='true'] { - background-color: var(--btn-base-color); - border: 3px solid var(--btn-base-color); - - svg { - fill: var(--text-color); - } - - &:hover { - background-color: var(--btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - - &[data-selected='true'] { - border-color: var(--accent-color); - svg { - fill: var(--accent-color-hover); - } - &:hover { - svg { - fill: var(--accent-color-hover); - } - } - } - } - - &[data-alert='true'] { - animation-name: pulseColor; - animation-duration: 1s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - - &:hover { - animation: none; - background-color: var(--accent-color-hover); - } - } -} - -@keyframes pulseColor { - 0% { - background-color: var(--accent-color); - } - 50% { - background-color: var(--accent-color-dim); - } - 100% { - background-color: var(--accent-color); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx index 3eedae8e14..4e6e3d7643 100644 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx @@ -7,22 +7,13 @@ import { } from '@chakra-ui/react'; export type IAIIconButtonProps = IconButtonProps & { - styleClass?: string; tooltip?: string; tooltipProps?: Omit; - asCheckbox?: boolean; isChecked?: boolean; }; const IAIIconButton = forwardRef((props: IAIIconButtonProps, forwardedRef) => { - const { - tooltip = '', - styleClass, - tooltipProps, - asCheckbox, - isChecked, - ...rest - } = props; + const { tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( { > diff --git a/invokeai/frontend/web/src/common/components/IAIInput.scss b/invokeai/frontend/web/src/common/components/IAIInput.scss deleted file mode 100644 index ac073fd578..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIInput.scss +++ /dev/null @@ -1,33 +0,0 @@ -.input { - display: grid; - grid-template-columns: max-content auto; - column-gap: 1rem; - align-items: center; - - .input-label { - color: var(--text-color-secondary); - } - - .input-entry { - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.2rem; - font-weight: bold; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - - &[aria-invalid='true'] { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIInput.tsx b/invokeai/frontend/web/src/common/components/IAIInput.tsx index 50f78f30f1..e0d0536c03 100644 --- a/invokeai/frontend/web/src/common/components/IAIInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAIInput.tsx @@ -1,47 +1,37 @@ -import { FormControl, FormLabel, Input, InputProps } from '@chakra-ui/react'; +import { + FormControl, + FormControlProps, + FormLabel, + Input, + InputProps, +} from '@chakra-ui/react'; import { ChangeEvent } from 'react'; interface IAIInputProps extends InputProps { - styleClass?: string; label?: string; - width?: string | number; value?: string; size?: string; onChange?: (e: ChangeEvent) => void; + formControlProps?: Omit; } export default function IAIInput(props: IAIInputProps) { const { label = '', - styleClass, isDisabled = false, - fontSize = 'sm', - width, - size = 'sm', isInvalid, + formControlProps, ...rest } = props; return ( - {label !== '' && ( - - {label} - - )} - + {label !== '' && {label}} + ); } diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.scss b/invokeai/frontend/web/src/common/components/IAINumberInput.scss deleted file mode 100644 index aab88f1021..0000000000 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.scss +++ /dev/null @@ -1,66 +0,0 @@ -.invokeai__number-input-form-control { - display: flex; - align-items: center; - column-gap: 1rem; - - .invokeai__number-input-form-label { - color: var(--text-color-secondary); - - &[data-focus] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } - - .invokeai__number-input-root { - height: 2rem; - display: grid; - grid-template-columns: auto max-content; - column-gap: 0.5rem; - align-items: center; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.3rem; - } - - .invokeai__number-input-field { - border: none; - font-weight: bold; - width: 100%; - height: auto; - font-size: 0.9rem; - padding: 0 0.5rem; - - &:focus { - outline: none; - box-shadow: none; - } - - &:disabled { - opacity: 0.2; - } - } - .invokeai__number-input-stepper { - display: grid; - padding-right: 0.5rem; - - .invokeai__number-input-stepper-button { - border: none; - // expand arrow hitbox - padding: 0 0.5rem; - margin: 0 -0.5rem; - - svg { - width: 10px; - height: 10px; - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx index a88c246c2a..cfe06aa727 100644 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx @@ -9,6 +9,7 @@ import { NumberInputField, NumberInputFieldProps, NumberInputProps, + NumberInputStepper, NumberInputStepperProps, Tooltip, TooltipProps, @@ -20,10 +21,7 @@ import { FocusEvent, useEffect, useState } from 'react'; const numberStringRegex = /^-?(0\.)?\.?$/; interface Props extends Omit { - styleClass?: string; label?: string; - labelFontSize?: string | number; - width?: string | number; showStepper?: boolean; value?: number; onChange: (v: number) => void; @@ -45,12 +43,8 @@ interface Props extends Omit { const IAINumberInput = (props: Props) => { const { label, - labelFontSize = 'sm', - styleClass, isDisabled = false, showStepper = true, - width, - textAlign, isInvalid, value, onChange, @@ -119,29 +113,10 @@ const IAINumberInput = (props: Props) => { - {label && ( - - {label} - - )} + {label && {label}} { clampValueOnBlur={false} onChange={handleOnChange} onBlur={handleBlur} - width={width} {...rest} > - + {showStepper && ( -
      - - -
      + + + + )}
      diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.scss b/invokeai/frontend/web/src/common/components/IAIPopover.scss deleted file mode 100644 index ab2ac26b3a..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIPopover.scss +++ /dev/null @@ -1,12 +0,0 @@ -.invokeai__popover-content { - min-width: unset; - width: unset; - padding: 1rem; - border-radius: 0.5rem; - background-color: var(--background-color); - border: 2px solid var(--border-color); - - .invokeai__popover-arrow { - background-color: var(--background-color) !important; - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.tsx b/invokeai/frontend/web/src/common/components/IAIPopover.tsx index 38a2a24303..c58accebe4 100644 --- a/invokeai/frontend/web/src/common/components/IAIPopover.tsx +++ b/invokeai/frontend/web/src/common/components/IAIPopover.tsx @@ -12,7 +12,6 @@ type IAIPopoverProps = PopoverProps & { triggerComponent: ReactNode; triggerContainerProps?: BoxProps; children: ReactNode; - styleClass?: string; hasArrow?: boolean; }; @@ -20,16 +19,16 @@ const IAIPopover = (props: IAIPopoverProps) => { const { triggerComponent, children, - styleClass, hasArrow = true, + isLazy = true, ...rest } = props; return ( - + {triggerComponent} - - {hasArrow && } + + {hasArrow && } {children} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.scss b/invokeai/frontend/web/src/common/components/IAISelect.scss deleted file mode 100644 index 8891b3b11e..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISelect.scss +++ /dev/null @@ -1,31 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__select { - display: flex; - column-gap: 1rem; - align-items: center; - - .invokeai__select-label { - color: var(--text-color-secondary); - } - - .invokeai__select-picker { - border: 2px solid var(--border-color); - background-color: var(--background-color-secondary); - font-weight: bold; - font-size: 0.9rem; - height: 2rem; - border-radius: 0.2rem; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - } - - .invokeai__select-option { - background-color: var(--background-color-secondary); - color: var(--text-color-secondary); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.tsx b/invokeai/frontend/web/src/common/components/IAISelect.tsx index fa25b8f17f..caff77ed17 100644 --- a/invokeai/frontend/web/src/common/components/IAISelect.tsx +++ b/invokeai/frontend/web/src/common/components/IAISelect.tsx @@ -10,7 +10,6 @@ import { MouseEvent } from 'react'; type IAISelectProps = SelectProps & { label?: string; - styleClass?: string; tooltip?: string; tooltipProps?: Omit; validValues: @@ -21,21 +20,11 @@ type IAISelectProps = SelectProps & { * Customized Chakra FormControl + Select multi-part component. */ const IAISelect = (props: IAISelectProps) => { - const { - label, - isDisabled, - validValues, - tooltip, - tooltipProps, - size = 'sm', - fontSize = 'sm', - styleClass, - ...rest - } = props; + const { label, isDisabled, validValues, tooltip, tooltipProps, ...rest } = + props; return ( ) => { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); @@ -43,36 +32,16 @@ const IAISelect = (props: IAISelectProps) => { e.nativeEvent.cancelBubble = true; }} > - {label && ( - - {label} - - )} + {label && {label}} - {validValues.map((opt) => { return typeof opt === 'string' || typeof opt === 'number' ? ( - ) : ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx index c9eb07d2d3..7e1d2654e3 100644 --- a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx +++ b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx @@ -4,14 +4,15 @@ import { MenuItem, MenuList, MenuProps, - MenuButtonProps, MenuListProps, MenuItemProps, + IconButton, + Button, + IconButtonProps, + ButtonProps, } from '@chakra-ui/react'; import { MouseEventHandler, ReactNode } from 'react'; import { MdArrowDropDown, MdArrowDropUp } from 'react-icons/md'; -import IAIButton from './IAIButton'; -import IAIIconButton from './IAIIconButton'; interface IAIMenuItem { item: ReactNode | string; @@ -22,9 +23,10 @@ interface IAIMenuProps { menuType?: 'icon' | 'regular'; buttonText?: string; iconTooltip?: string; + isLazy?: boolean; menuItems: IAIMenuItem[]; menuProps?: MenuProps; - menuButtonProps?: MenuButtonProps; + menuButtonProps?: IconButtonProps | ButtonProps; menuListProps?: MenuListProps; menuItemProps?: MenuItemProps; } @@ -34,6 +36,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { menuType = 'icon', iconTooltip, buttonText, + isLazy = true, menuItems, menuProps, menuButtonProps, @@ -48,13 +51,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { {menuItem.item} @@ -65,34 +62,20 @@ export default function IAISimpleMenu(props: IAIMenuProps) { }; return ( -
      + {({ isOpen }) => ( <> : } - padding={menuType === 'regular' ? '0 0.5rem' : 0} - backgroundColor="var(--btn-base-color)" - _hover={{ - backgroundColor: 'var(--btn-base-color-hover)', - }} - minWidth="1rem" - minHeight="1rem" - fontSize="1.5rem" + paddingX={0} + paddingY={menuType === 'regular' ? 2 : 0} {...menuButtonProps} > {menuType === 'regular' && buttonText} - + {renderMenuItems()} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.scss b/invokeai/frontend/web/src/common/components/IAISlider.scss deleted file mode 100644 index 21d62d4b07..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISlider.scss +++ /dev/null @@ -1,60 +0,0 @@ -.invokeai__slider-component { - padding-bottom: 0.5rem; - border-radius: 0.5rem; - - .invokeai__slider-component-label { - min-width: max-content; - margin: 0; - font-weight: bold; - color: var(--text-color-secondary); - } - - .invokeai__slider_track { - background-color: var(--tab-color); - } - - .invokeai__slider_track-filled { - background-color: var(--slider-color); - } - - .invokeai__slider-thumb { - width: 4px; - } - - .invokeai__slider-mark { - font-size: 0.75rem; - font-weight: bold; - color: var(--slider-mark-color); - margin-top: 0.3rem; - } - - .invokeai__slider-number-input { - border: none; - font-size: 0.9rem; - font-weight: bold; - height: 2rem; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - - &:focus { - outline: none; - box-shadow: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - } - - .invokeai__slider-number-stepper { - border: none; - } - - &[data-markers='true'] { - .invokeai__slider_container { - margin-top: -1rem; - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.tsx b/invokeai/frontend/web/src/common/components/IAISlider.tsx index 81e0943c4b..1acc64db23 100644 --- a/invokeai/frontend/web/src/common/components/IAISlider.tsx +++ b/invokeai/frontend/web/src/common/components/IAISlider.tsx @@ -37,11 +37,8 @@ export type IAIFullSliderProps = { step?: number; onChange: (v: number) => void; withSliderMarks?: boolean; - sliderMarkLeftOffset?: number; - sliderMarkRightOffset?: number; withInput?: boolean; isInteger?: boolean; - width?: string | number; inputWidth?: string | number; inputReadOnly?: boolean; withReset?: boolean; @@ -52,7 +49,6 @@ export type IAIFullSliderProps = { tooltipSuffix?: string; hideTooltip?: boolean; isCompact?: boolean; - styleClass?: string; sliderFormControlProps?: FormControlProps; sliderFormLabelProps?: FormLabelProps; sliderMarkProps?: Omit; @@ -74,14 +70,11 @@ export default function IAISlider(props: IAIFullSliderProps) { max = 100, step = 1, onChange, - width = '100%', tooltipSuffix = '', withSliderMarks = false, - sliderMarkLeftOffset = 0, - sliderMarkRightOffset = -1, withInput = false, isInteger = false, - inputWidth = '5.5rem', + inputWidth = 16, inputReadOnly = false, withReset = false, hideTooltip = false, @@ -90,7 +83,6 @@ export default function IAISlider(props: IAIFullSliderProps) { isResetDisabled, isSliderDisabled, isInputDisabled, - styleClass, sliderFormControlProps, sliderFormLabelProps, sliderMarkProps, @@ -142,19 +134,13 @@ export default function IAISlider(props: IAIFullSliderProps) { return ( - + {label} @@ -182,23 +164,23 @@ export default function IAISlider(props: IAIFullSliderProps) { onMouseLeave={() => setShowTooltip(false)} focusThumbOnChange={false} isDisabled={isSliderDisabled} - width={width} + // width={width} {...rest} > {withSliderMarks && ( <> {min} {max} @@ -206,23 +188,19 @@ export default function IAISlider(props: IAIFullSliderProps) { )} - - + + @@ -234,13 +212,10 @@ export default function IAISlider(props: IAIFullSliderProps) { value={localInputValue} onChange={handleInputChange} onBlur={handleInputBlur} - className="invokeai__slider-number-field" isDisabled={isInputDisabled} {...sliderNumberInputProps} > onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.scss b/invokeai/frontend/web/src/common/components/IAISwitch.scss deleted file mode 100644 index 168b741520..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISwitch.scss +++ /dev/null @@ -1,24 +0,0 @@ -.invokeai__switch-form-control { - .invokeai__switch-form-label { - color: var(--text-color-secondary); - } - - .invokeai__switch-root { - span { - background-color: var(--switch-bg-color); - span { - background-color: var(--white); - } - } - - &[data-checked] { - span { - background: var(--switch-bg-active-color); - - span { - background-color: var(--white); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.tsx b/invokeai/frontend/web/src/common/components/IAISwitch.tsx index 9d3b4f4415..5ef568f28a 100644 --- a/invokeai/frontend/web/src/common/components/IAISwitch.tsx +++ b/invokeai/frontend/web/src/common/components/IAISwitch.tsx @@ -10,7 +10,6 @@ import { interface Props extends SwitchProps { label?: string; width?: string | number; - styleClass?: string; formControlProps?: FormControlProps; formLabelProps?: FormLabelProps; } @@ -25,34 +24,22 @@ const IAISwitch = (props: Props) => { width = 'auto', formControlProps, formLabelProps, - styleClass, ...rest } = props; return ( - + {label} - + ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx index 39e6578cc8..28d9d32a71 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Box, Flex, Heading } from '@chakra-ui/react'; import { useHotkeys } from 'react-hotkeys-hook'; type ImageUploadOverlayProps = { @@ -11,7 +11,7 @@ type ImageUploadOverlayProps = { const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { const { isDragAccept, - isDragReject, + isDragReject: _isDragAccept, overlaySecondaryText, setIsHandlingUpload, } = props; @@ -21,19 +21,42 @@ const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { }); return ( -
      - {isDragAccept && ( -
      + + + {isDragAccept ? ( Upload Image{overlaySecondaryText} -
      - )} - {isDragReject && ( -
      - Invalid Upload - Must be single JPEG or PNG image -
      - )} -
      + ) : ( + <> + Invalid Upload + Must be single JPEG or PNG image + + )} + + ); }; export default ImageUploadOverlay; diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.scss b/invokeai/frontend/web/src/common/components/ImageUploader.scss deleted file mode 100644 index ee4b31ace7..0000000000 --- a/invokeai/frontend/web/src/common/components/ImageUploader.scss +++ /dev/null @@ -1,74 +0,0 @@ -.dropzone-container { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - z-index: 999; - backdrop-filter: blur(20px); - - .dropzone-overlay { - opacity: 0.5; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - row-gap: 1rem; - align-items: center; - justify-content: center; - background-color: var(--background-color); - - &.is-drag-accept { - box-shadow: inset 0 0 20rem 1rem var(--accent-color); - } - - &.is-drag-reject { - box-shadow: inset 0 0 20rem 1rem var(--status-bad-color); - } - - &.is-handling-upload { - box-shadow: inset 0 0 20rem 1rem var(--status-working-color); - } - } -} - -.image-uploader-button-outer { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - border-radius: 0.5rem; - color: var(--tab-list-text-inactive); - background-color: var(--background-color); - - &:hover { - background-color: var(--background-color-light); - } -} - -.image-upload-button-inner { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; -} - -.image-upload-button { - display: flex; - flex-direction: column; - row-gap: 2rem; - align-items: center; - justify-content: center; - text-align: center; - - svg { - width: 4rem; - height: 4rem; - } - h2 { - font-size: 1.2rem; - } -} diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.tsx b/invokeai/frontend/web/src/common/components/ImageUploader.tsx index 40e31c3947..5397de6ea6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploader.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploader.tsx @@ -1,4 +1,4 @@ -import { useToast } from '@chakra-ui/react'; +import { Box, useToast } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import useImageUploader from 'common/hooks/useImageUploader'; @@ -139,7 +139,7 @@ const ImageUploader = (props: ImageUploaderProps) => { return ( -
      { // Bail out if user hits spacebar - do not open the uploader @@ -156,7 +156,7 @@ const ImageUploader = (props: ImageUploaderProps) => { setIsHandlingUpload={setIsHandlingUpload} /> )} -
      +
      ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx index 1a989b8c8e..6179efe5e6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Flex, Heading, Icon } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useContext } from 'react'; import { FaUpload } from 'react-icons/fa'; @@ -16,15 +16,38 @@ const ImageUploaderButton = (props: ImageUploaderButtonProps) => { }; return ( -
      -
      - - Click or Drag and Drop -
      -
      + + + Click or Drag and Drop + + ); }; diff --git a/invokeai/frontend/web/src/common/components/SubItemHook.tsx b/invokeai/frontend/web/src/common/components/SubItemHook.tsx deleted file mode 100644 index cca79a12ef..0000000000 --- a/invokeai/frontend/web/src/common/components/SubItemHook.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Box } from '@chakra-ui/react'; - -interface SubItemHookProps { - active?: boolean; - width?: string | number; - height?: string | number; - side?: 'left' | 'right'; -} - -export default function SubItemHook(props: SubItemHookProps) { - const { - active = true, - width = '1rem', - height = '1.3rem', - side = 'right', - } = props; - return ( - <> - {side === 'right' && ( - - )} - {side === 'left' && ( - - )} - - ); -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx index 65dc277ed7..c86aa767dd 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx @@ -1,11 +1,27 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function NodesWIP() { const { t } = useTranslation(); return ( -
      -

      {t('common.nodes')}

      -

      {t('common.nodesDesc')}

      -
      + + + {t('common.nodes')} + + {t('common.nodesDesc')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx index fbdfb4b8a5..c98fa5a82b 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx @@ -1,13 +1,29 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export const PostProcessingWIP = () => { const { t } = useTranslation(); return ( -
      -

      {t('common.postProcessing')}

      -

      {t('common.postProcessDesc1')}

      -

      {t('common.postProcessDesc2')}

      -

      {t('common.postProcessDesc3')}

      -
      + + + {t('common.postProcessing')} + + {t('common.postProcessDesc1')} + {t('common.postProcessDesc2')} + {t('common.postProcessDesc3')} + + + ); }; diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx index ff564234a5..23c3209932 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx @@ -1,16 +1,28 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function TrainingWIP() { const { t } = useTranslation(); return ( -
      -

      {t('common.training')}

      -

      - {t('common.trainingDesc1')} -
      -
      - {t('common.trainingDesc2')} -

      -
      + + + {t('common.training')} + + {t('common.trainingDesc1')} + {t('common.trainingDesc2')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss deleted file mode 100644 index 2a17c7bd0a..0000000000 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss +++ /dev/null @@ -1,24 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.work-in-progress { - display: grid; - width: 100%; - height: $app-content-height; - grid-auto-rows: max-content; - background-color: var(--background-color-secondary); - border-radius: 0.4rem; - place-content: center; - place-items: center; - row-gap: 1rem; - - h1 { - font-size: 2rem; - font-weight: bold; - } - - p { - text-align: center; - max-width: 50rem; - color: var(--subtext-color-bright); - } -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx new file mode 100644 index 0000000000..deb9110d56 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx @@ -0,0 +1,24 @@ +import { Flex } from '@chakra-ui/react'; +import { ReactNode } from 'react'; + +type WorkInProgressProps = { + children: ReactNode; +}; + +const WorkInProgress = (props: WorkInProgressProps) => { + const { children } = props; + + return ( + + {children} + + ); +}; + +export default WorkInProgress; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss deleted file mode 100644 index 4a1418392e..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss +++ /dev/null @@ -1,62 +0,0 @@ -.invokeai__slider-root { - position: relative; - display: flex; - align-items: center; - user-select: none; - touch-action: none; - width: 200px; - - &[data-orientation='horizontal'] { - height: 20px; - } - - &[data-orientation='vertical'] { - width: 20px; - height: 200px; - } - - .invokeai__slider-track { - background-color: black; - position: relative; - flex-grow: 1; - border-radius: 9999px; - - &[data-orientation='horizontal'] { - height: 0.25rem; - } - - &[data-orientation='vertical'] { - width: 0.25rem; - } - - .invokeai__slider-range { - position: absolute; - background-color: white; - border-radius: 9999px; - height: 100%; - } - } - - .invokeai__slider-thumb { - display: flex; - align-items: center; - - .invokeai__slider-thumb-div { - all: unset; - display: block; - width: 1rem; - height: 1rem; - background-color: white; - box-shadow: 0 2px 10px rgba(0, 2, 10, 0.3); - border-radius: 100%; - - &:hover { - background-color: violet; - } - - &:focus { - box-shadow: 0 0 0 5px rgba(0, 2, 10, 0.3); - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx deleted file mode 100644 index 52faeb18d3..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { Tooltip } from '@chakra-ui/react'; -import * as Slider from '@radix-ui/react-slider'; - -type IAISliderProps = Slider.SliderProps & { - value: number[]; - tooltipLabel?: string; - orientation?: 'horizontal' | 'vertial'; - trackProps?: Slider.SliderTrackProps; - rangeProps?: Slider.SliderRangeProps; - thumbProps?: Slider.SliderThumbProps; -}; - -const _IAISlider = (props: IAISliderProps) => { - const { - value, - tooltipLabel, - orientation, - trackProps, - rangeProps, - thumbProps, - ...rest - } = props; - return ( - - - - - - -
      - {/*}> - {value && value[0]} - */} - - - - ); -}; - -export default _IAISlider; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss deleted file mode 100644 index 7d0ca8455c..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__tooltip-content { - padding: 0.5rem; - background-color: grey; - border-radius: 0.25rem; - .invokeai__tooltip-arrow { - background-color: grey; - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx deleted file mode 100644 index 539751a8ca..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import * as Tooltip from '@radix-ui/react-tooltip'; -import { ReactNode } from 'react'; - -type IAITooltipProps = Tooltip.TooltipProps & { - trigger: ReactNode; - children: ReactNode; - triggerProps?: Tooltip.TooltipTriggerProps; - contentProps?: Tooltip.TooltipContentProps; - arrowProps?: Tooltip.TooltipArrowProps; -}; - -const IAITooltip = (props: IAITooltipProps) => { - const { trigger, children, triggerProps, contentProps, arrowProps, ...rest } = - props; - - return ( - - - {trigger} - - { - e.preventDefault(); - }} - className="invokeai__tooltip-content" - > - - {children} - - - - - ); -}; - -export default IAITooltip; diff --git a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx index 711d23366a..4898eee899 100644 --- a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx @@ -13,5 +13,8 @@ const ImageToImageIcon = createIcon({ /> ), + defaultProps: { + boxSize: '24px', + }, }); export default ImageToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx index 273deaa8cd..539c33f998 100644 --- a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx @@ -11,6 +11,9 @@ const NodesIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default NodesIcon; diff --git a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx index 29f474b079..b4000568b2 100644 --- a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx @@ -11,6 +11,9 @@ const PostprocessingIcon = createIcon({ d="M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default PostprocessingIcon; diff --git a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx index f6148ea49c..325ea54dda 100644 --- a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx @@ -13,6 +13,9 @@ const TextToImageIcon = createIcon({ ), + defaultProps: { + boxSize: '24px', + }, }); export default TextToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx index a6bf178aab..f925013138 100644 --- a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx @@ -11,6 +11,9 @@ const TrainingIcon = createIcon({ d="M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default TrainingIcon; diff --git a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx index daa8ecf8a9..3cedec04a4 100644 --- a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx @@ -11,6 +11,9 @@ const UnifiedCanvasIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default UnifiedCanvasIcon; diff --git a/invokeai/frontend/web/src/common/util/parameterTranslation.ts b/invokeai/frontend/web/src/common/util/parameterTranslation.ts index f703a96f4a..07b8ac8ea1 100644 --- a/invokeai/frontend/web/src/common/util/parameterTranslation.ts +++ b/invokeai/frontend/web/src/common/util/parameterTranslation.ts @@ -144,8 +144,8 @@ export const frontendToBackendParameters = ( variationAmount, width, shouldUseSymmetry, - horizontalSymmetryTimePercentage, - verticalSymmetryTimePercentage, + horizontalSymmetrySteps, + verticalSymmetrySteps, } = generationState; const { @@ -185,17 +185,17 @@ export const frontendToBackendParameters = ( // Symmetry Settings if (shouldUseSymmetry) { - if (horizontalSymmetryTimePercentage > 0) { + if (horizontalSymmetrySteps > 0) { generationParameters.h_symmetry_time_pct = Math.max( 0, - Math.min(1, horizontalSymmetryTimePercentage / steps) + Math.min(1, horizontalSymmetrySteps / steps) ); } - if (horizontalSymmetryTimePercentage > 0) { + if (verticalSymmetrySteps > 0) { generationParameters.v_symmetry_time_pct = Math.max( 0, - Math.min(1, verticalSymmetryTimePercentage / steps) + Math.min(1, verticalSymmetrySteps / steps) ); } } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx index b57bc1cc16..657f407b5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx @@ -1,3 +1,4 @@ +import { Box, chakra, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { @@ -88,6 +89,10 @@ const selector = createSelector( } ); +const ChakraStage = chakra(Stage, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); + const IAICanvas = () => { const { isMaskEnabled, @@ -135,14 +140,26 @@ const IAICanvas = () => { useCanvasDragMove(); return ( -
      -
      - + + { visible={shouldShowBoundingBox && !isStaging} /> - + -
      -
      + + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx index 9ffed8d70a..e38debae83 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx @@ -1,7 +1,7 @@ // Grid drawing adapted from https://longviewcoder.com/2021/12/08/konva-a-better-grid/ -import { useColorMode } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; +import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { isEqual, range } from 'lodash'; @@ -26,10 +26,13 @@ const gridLinesColor = { dark: 'rgba(255, 255, 255, 0.2)', green: 'rgba(255, 255, 255, 0.2)', light: 'rgba(0, 0, 0, 0.2)', + ocean: 'rgba(136, 148, 184, 0.2)', }; const IAICanvasGrid = () => { - const { colorMode } = useColorMode(); + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); const { stageScale, stageCoordinates, stageDimensions } = useAppSelector(selector); const [gridLines, setGridLines] = useState([]); @@ -42,7 +45,8 @@ const IAICanvasGrid = () => { ); useLayoutEffect(() => { - const gridLineColor = gridLinesColor[colorMode]; + const gridLineColor = + gridLinesColor[currentTheme as keyof typeof gridLinesColor]; const { width, height } = stageDimensions; const { x, y } = stageCoordinates; @@ -108,7 +112,7 @@ const IAICanvasGrid = () => { )); setGridLines(xLines.concat(yLines)); - }, [stageScale, stageCoordinates, stageDimensions, colorMode, unscale]); + }, [stageScale, stageCoordinates, stageDimensions, currentTheme, unscale]); return {gridLines}; }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx index 9e07dce992..3062abae91 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx @@ -1,4 +1,4 @@ -import { Spinner } from '@chakra-ui/react'; +import { Flex, Spinner } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -70,9 +70,19 @@ const IAICanvasResizer = () => { ]); return ( -
      + -
      + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx index 60af853289..74d6382308 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx @@ -115,7 +115,7 @@ const IAICanvasStagingAreaToolbar = () => { return ( { aria-label={`${t('unifiedCanvas.previous')} (Left)`} icon={} onClick={handlePrevImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnFirstImage} /> { aria-label={`${t('unifiedCanvas.next')} (Right)`} icon={} onClick={handleNextImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnLastImage} /> { aria-label={`${t('unifiedCanvas.accept')} (Enter)`} icon={} onClick={handleAccept} - data-selected={true} + colorScheme="accent" /> { onClick={() => dispatch(setShouldShowStagingImage(!shouldShowStagingImage)) } - data-selected={true} + colorScheme="accent" /> { saveStagingAreaImageToGallery(currentStagingAreaImage.image.url) ) } - data-selected={true} + colorScheme="accent" /> } onClick={() => dispatch(discardStagedImages())} - data-selected={true} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" fontSize={20} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx index 83ee94520a..e886a3ad5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx @@ -1,3 +1,4 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -7,6 +8,8 @@ import { useTranslation } from 'react-i18next'; import roundToHundreth from '../util/roundToHundreth'; import IAICanvasStatusTextCursorPos from './IAICanvasStatusText/IAICanvasStatusTextCursorPos'; +const warningColor = 'var(--invokeai-colors-warning-500)'; + const selector = createSelector( [canvasSelector], (canvas) => { @@ -34,11 +37,10 @@ const selector = createSelector( (boundingBoxScaleMethod === 'manual' && scaledBoxWidth * scaledBoxHeight < 512 * 512) ) { - boundingBoxColor = 'var(--status-working-color)'; + boundingBoxColor = warningColor; } - const activeLayerColor = - layer === 'mask' ? 'var(--status-working-color)' : 'inherit'; + const activeLayerColor = layer === 'mask' ? warningColor : 'inherit'; return { activeLayerColor, @@ -87,55 +89,72 @@ const IAICanvasStatusText = () => { const { t } = useTranslation(); return ( -
      -
      + {`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`}
      -
      {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`}
      + >{`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`} + {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`} {shouldPreserveMaskedArea && ( -
      Preserve Masked Area: On -
      + )} {shouldShowBoundingBox && ( -
      {`${t( - 'unifiedcanvas:boundingBox' - )}: ${boundingBoxDimensionsString}`}
      + 'unifiedCanvas.boundingBox' + )}: ${boundingBoxDimensionsString}`} )} {shouldShowScaledBoundingBox && ( -
      {`${t( - 'unifiedcanvas:scaledBoundingBox' - )}: ${scaledBoundingBoxDimensionsString}`}
      + 'unifiedCanvas.scaledBoundingBox' + )}: ${scaledBoundingBoxDimensionsString}`} )} {shouldShowCanvasDebugInfo && ( <> -
      {`${t( - 'unifiedcanvas:boundingBoxPosition' - )}: ${boundingBoxCoordinatesString}`}
      -
      {`${t( - 'unifiedcanvas:canvasDimensions' - )}: ${canvasDimensionsString}`}
      -
      {`${t( - 'unifiedcanvas:canvasPosition' - )}: ${canvasCoordinatesString}`}
      + {`${t( + 'unifiedCanvas.boundingBoxPosition' + )}: ${boundingBoxCoordinatesString}`} + {`${t( + 'unifiedCanvas.canvasDimensions' + )}: ${canvasDimensionsString}`} + {`${t( + 'unifiedCanvas.canvasPosition' + )}: ${canvasCoordinatesString}`} )} -
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx index c77d0cae65..2570290393 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -33,8 +34,8 @@ export default function IAICanvasStatusTextCursorPos() { const { t } = useTranslation(); return ( -
      {`${t( - 'unifiedcanvas:cursorPosition' - )}: ${cursorCoordinatesString}`}
      + {`${t( + 'unifiedCanvas.cursorPosition' + )}: ${cursorCoordinatesString}`} ); } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index bca6728b87..9326f52d2d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -111,17 +111,13 @@ const IAICanvasMaskOptions = () => { aria-label={t('unifiedCanvas.maskingOptions')} tooltip={t('unifiedCanvas.maskingOptions')} icon={} - style={ - layer === 'mask' - ? { backgroundColor: 'var(--accent-color)' } - : { backgroundColor: 'var(--btn-base-color)' } - } + isChecked={layer === 'mask'} isDisabled={isStaging} /> } > - + { } /> dispatch(setMaskColor(newColor))} /> } onClick={handleClearMask}> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx index 72af7f8261..0457d8844c 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx @@ -97,7 +97,7 @@ const IAICanvasSettingsButtonPopover = () => { /> } > - + { aria-label={`${t('unifiedCanvas.brush')} (B)`} tooltip={`${t('unifiedCanvas.brush')} (B)`} icon={} - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -192,7 +192,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (E)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -214,7 +214,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} /> @@ -228,8 +228,8 @@ const IAICanvasToolChooserOptions = () => { /> } > - - + + { /> dispatch(setBrushColor(newColor))} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx index 29fdc40975..4e53039e38 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup } from '@chakra-ui/react'; +import { ButtonGroup, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -68,7 +68,7 @@ export const selector = createSelector( } ); -const IAICanvasOutpaintingControls = () => { +const IAICanvasToolbar = () => { const dispatch = useAppDispatch(); const { isProcessing, @@ -230,7 +230,12 @@ const IAICanvasOutpaintingControls = () => { }; return ( -
      + { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> { tooltip={`${t('unifiedCanvas.clearCanvas')}`} icon={} onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" isDisabled={isStaging} /> -
      +
      ); }; -export default IAICanvasOutpaintingControls; +export default IAICanvasToolbar; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss deleted file mode 100644 index a48454bb8c..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss +++ /dev/null @@ -1,32 +0,0 @@ -.current-image-options { - width: 100%; - display: flex; - justify-content: center; - align-items: center; - column-gap: 0.5em; - - .current-image-send-to-popover, - .current-image-postprocessing-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - max-width: 25rem; - } - - .current-image-send-to-popover { - .invokeai__button { - place-content: start; - } - } - - .chakra-popover__popper { - z-index: 11; - } - - .delete-image-btn { - background-color: var(--btn-base-color); - svg { - fill: var(--btn-delete-image); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx index 92d6aa6d06..be59962556 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { ButtonGroup, Link, useToast } from '@chakra-ui/react'; +import { ButtonGroup, Flex, FlexProps, Link, useToast } from '@chakra-ui/react'; import { runESRGAN, runFacetool } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -102,11 +102,13 @@ const currentImageButtonsSelector = createSelector( } ); +type CurrentImageButtonsProps = FlexProps; + /** * Row of buttons for common actions: * Use as init image, use all params, use seed, upscale, fix faces, details, delete. */ -const CurrentImageButtons = () => { +const CurrentImageButtons = (props: CurrentImageButtonsProps) => { const dispatch = useAppDispatch(); const { isProcessing, @@ -395,7 +397,14 @@ const CurrentImageButtons = () => { }; return ( -
      + { /> } > -
      + { {t('parameters.downloadImage')} -
      +
      } @@ -456,7 +471,7 @@ const CurrentImageButtons = () => { ? `${t('parameters.openInViewer')} (Z)` : `${t('parameters.closeViewer')} (Z)` } - data-selected={isLightboxOpen} + isChecked={isLightboxOpen} onClick={handleLightBox} /> @@ -501,7 +516,12 @@ const CurrentImageButtons = () => { /> } > -
      + { > {t('parameters.restoreFaces')} -
      + { /> } > -
      + { > {t('parameters.upscaleImage')} -
      +
      @@ -548,7 +573,7 @@ const CurrentImageButtons = () => { icon={} tooltip={`${t('parameters.info')} (I)`} aria-label={`${t('parameters.info')} (I)`} - data-selected={shouldShowImageDetails} + isChecked={shouldShowImageDetails} onClick={handleClickShowImageDetails} /> @@ -559,10 +584,10 @@ const CurrentImageButtons = () => { tooltip={`${t('parameters.deleteImage')} (Del)`} aria-label={`${t('parameters.deleteImage')} (Del)`} isDisabled={!currentImage || !isConnected || isProcessing} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" /> -
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss deleted file mode 100644 index 498da35ea6..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss +++ /dev/null @@ -1,83 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.current-image-area { - display: flex; - flex-direction: column; - height: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; -} - -.current-image-preview { - position: relative; - justify-content: center; - align-items: center; - display: flex; - width: 100%; - height: 100%; - - img { - border-radius: 0.5rem; - object-fit: contain; - max-width: 100%; - max-height: 100%; - height: auto; - position: absolute; - } -} - -.current-image-metadata { - grid-area: current-image-preview; -} - -.current-image-next-prev-buttons { - grid-area: current-image-content; - display: flex; - justify-content: space-between; - z-index: 1; - height: 100%; - width: 100%; - pointer-events: none; -} - -.next-prev-button-trigger-area { - width: 7rem; - height: 100%; - width: 15%; - display: grid; - align-items: center; - pointer-events: auto; - - &.prev-button-trigger-area { - justify-content: flex-start; - } - - &.next-button-trigger-area { - justify-content: flex-end; - } -} - -.next-prev-button { - font-size: 4rem; - fill: var(--white); - filter: drop-shadow(0 0 1rem var(--text-color-secondary)); - opacity: 70%; -} - -.current-image-display-placeholder { - background-color: var(--background-color-secondary); - display: grid; - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - border-radius: 0.5rem; - - svg { - width: 10rem; - height: 10rem; - color: var(--svg-color); - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx index a5e9683afd..6c46e14391 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx @@ -1,10 +1,6 @@ +import { Flex, Icon } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; -import { GalleryState } from 'features/gallery/store/gallerySlice'; -import { - activeTabNameSelector, - uiSelector, -} from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; import { MdPhoto } from 'react-icons/md'; @@ -13,14 +9,11 @@ import CurrentImageButtons from './CurrentImageButtons'; import CurrentImagePreview from './CurrentImagePreview'; export const currentImageDisplaySelector = createSelector( - [gallerySelector, uiSelector, activeTabNameSelector], - (gallery: GalleryState, ui, activeTabName) => { + [gallerySelector], + (gallery) => { const { currentImage, intermediateImage } = gallery; - const { shouldShowImageDetails } = ui; return { - activeTabName, - shouldShowImageDetails, hasAnImageToDisplay: currentImage || intermediateImage, }; }, @@ -35,23 +28,42 @@ export const currentImageDisplaySelector = createSelector( * Displays the current image if there is one, plus associated actions. */ const CurrentImageDisplay = () => { - const { hasAnImageToDisplay, activeTabName } = useAppSelector( - currentImageDisplaySelector - ); + const { hasAnImageToDisplay } = useAppSelector(currentImageDisplaySelector); return ( -
      + {hasAnImageToDisplay ? ( <> ) : ( -
      - -
      + + + )} -
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx index 720df07f4a..0f9ffad325 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx @@ -1,47 +1,24 @@ -import { IconButton, Image } from '@chakra-ui/react'; +import { Flex, Image } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import { - GalleryCategory, - GalleryState, - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import { useAppSelector } from 'app/storeHooks'; +import { GalleryState } from 'features/gallery/store/gallerySlice'; import { uiSelector } from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; -import { useState } from 'react'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; import { gallerySelector } from '../store/gallerySelectors'; import ImageMetadataViewer from './ImageMetaDataViewer/ImageMetadataViewer'; +import NextPrevImageButtons from './NextPrevImageButtons'; export const imagesSelector = createSelector( [gallerySelector, uiSelector], (gallery: GalleryState, ui) => { - const { currentCategory, currentImage, intermediateImage } = gallery; + const { currentImage, intermediateImage } = gallery; const { shouldShowImageDetails } = ui; - const tempImages = - gallery.categories[ - currentImage ? (currentImage.category as GalleryCategory) : 'result' - ].images; - const currentImageIndex = tempImages.findIndex( - (i) => i.uuid === gallery?.currentImage?.uuid - ); - const imagesLength = tempImages.length; - return { imageToDisplay: intermediateImage ? intermediateImage : currentImage, isIntermediate: Boolean(intermediateImage), - viewerImageToDisplay: currentImage, - currentCategory, - isOnFirstImage: currentImageIndex === 0, - isOnLastImage: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, shouldShowImageDetails, - shouldShowPrevImageButton: currentImageIndex === 0, - shouldShowNextImageButton: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, }; }, { @@ -52,85 +29,44 @@ export const imagesSelector = createSelector( ); export default function CurrentImagePreview() { - const dispatch = useAppDispatch(); - - const { - isOnFirstImage, - isOnLastImage, - shouldShowImageDetails, - imageToDisplay, - isIntermediate, - } = useAppSelector(imagesSelector); - - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { shouldShowImageDetails, imageToDisplay, isIntermediate } = + useAppSelector(imagesSelector); return ( -
      + {imageToDisplay && ( )} - {!shouldShowImageDetails && ( -
      -
      - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> - )} -
      -
      - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
      -
      - )} + {!shouldShowImageDetails && } {shouldShowImageDetails && imageToDisplay && ( )} -
      +
      ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx index 8b759d9301..734dc3b682 100644 --- a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx @@ -5,11 +5,8 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, + forwardRef, Flex, - FormControl, - FormLabel, - Switch, Text, useDisclosure, } from '@chakra-ui/react'; @@ -17,6 +14,8 @@ import { createSelector } from '@reduxjs/toolkit'; import * as InvokeAI from 'app/invokeai'; import { deleteImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; +import IAISwitch from 'common/components/IAISwitch'; import { systemSelector } from 'features/system/store/systemSelectors'; import { setShouldConfirmOnDelete, @@ -27,7 +26,6 @@ import { isEqual } from 'lodash'; import { ChangeEvent, cloneElement, - forwardRef, ReactElement, SyntheticEvent, useRef, @@ -110,7 +108,7 @@ const DeleteImageModal = forwardRef( onClose={onClose} > - + Delete image @@ -121,28 +119,20 @@ const DeleteImageModal = forwardRef( Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to. - - - Don't ask me again - - - +
      - - + diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss deleted file mode 100644 index b6563f4d7b..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss +++ /dev/null @@ -1,100 +0,0 @@ -.hoverable-image { - display: flex; - justify-content: center; - transition: transform 0.2s ease-out; - - &:hover { - cursor: pointer; - border-radius: 0.5rem; - z-index: 2; - } - - .hoverable-image-image { - width: 100%; - height: 100%; - max-width: 100%; - max-height: 100%; - } - - .hoverable-image-delete-button { - position: absolute; - top: 0.25rem; - right: 0.25rem; - } - - .hoverable-image-content { - display: flex; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - - .hoverable-image-check { - fill: var(--status-good-color); - } - } - - .hoverable-image-icons { - position: absolute; - bottom: -2rem; - display: grid; - width: min-content; - grid-template-columns: repeat(2, max-content); - border-radius: 0.4rem; - background-color: var(--background-color-secondary); - padding: 0.2rem; - gap: 0.2rem; - grid-auto-rows: max-content; - - button { - width: 12px; - height: 12px; - border-radius: 0.2rem; - padding: 10px 0; - flex-shrink: 2; - svg { - width: 12px; - height: 12px; - } - } - } -} - -.hoverable-image-context-menu { - z-index: 15; - padding: 0.4rem; - border-radius: 0.25rem; - background-color: var(--context-menu-bg-color); - box-shadow: var(--context-menu-box-shadow); - - [role='menuitem'] { - font-size: 0.8rem; - line-height: 1rem; - border-radius: 3px; - display: flex; - align-items: center; - height: 1.75rem; - padding: 0 0.5rem; - position: relative; - user-select: none; - cursor: pointer; - outline: none; - - &[data-disabled] { - color: grey; - pointer-events: none; - cursor: not-allowed; - } - - &[data-warning] { - color: var(--status-bad-color); - } - - &[data-highlighted] { - background-color: var(--context-menu-bg-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx index e3e136ea5b..0d034ed976 100644 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx @@ -1,9 +1,15 @@ -import { Box, Icon, IconButton, Image, useToast } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { - setCurrentImage, - setShouldHoldGalleryOpen, -} from 'features/gallery/store/gallerySlice'; + Box, + Flex, + Icon, + Image, + MenuItem, + MenuList, + useTheme, + useToast, +} from '@chakra-ui/react'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { setCurrentImage } from 'features/gallery/store/gallerySlice'; import { setAllImageToImageParameters, setAllParameters, @@ -13,8 +19,7 @@ import { import { DragEvent, memo, useState } from 'react'; import { FaCheck, FaTrashAlt } from 'react-icons/fa'; import DeleteImageModal from './DeleteImageModal'; - -import * as ContextMenu from '@radix-ui/react-context-menu'; +import { ContextMenu } from 'chakra-ui-contextmenu'; import * as InvokeAI from 'app/invokeai'; import { resizeAndScaleCanvas, @@ -24,6 +29,8 @@ import { hoverableImageSelector } from 'features/gallery/store/gallerySelectors' import { setActiveTab } from 'features/ui/store/uiSlice'; import { useTranslation } from 'react-i18next'; import useSetBothPrompts from 'features/parameters/hooks/usePrompt'; +import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; +import IAIIconButton from 'common/components/IAIIconButton'; interface HoverableImageProps { image: InvokeAI.Image; @@ -53,6 +60,7 @@ const HoverableImage = memo((props: HoverableImageProps) => { const [isHovered, setIsHovered] = useState(false); const toast = useToast(); + const { direction } = useTheme(); const { t } = useTranslation(); const setBothPrompts = useSetBothPrompts(); @@ -156,110 +164,146 @@ const HoverableImage = memo((props: HoverableImageProps) => { const handleLightBox = () => { dispatch(setCurrentImage(image)); + dispatch(setIsLightboxOpen(true)); }; return ( - { - dispatch(setShouldHoldGalleryOpen(open)); - }} + + menuProps={{ size: 'sm', isLazy: true }} + renderMenu={() => ( + + + {t('parameters.openInViewer')} + + + {t('parameters.usePrompt')} + + + + {t('parameters.useSeed')} + + + {t('parameters.useAll')} + + + {t('parameters.useInitImg')} + + + {t('parameters.sendToImg2Img')} + + + {t('parameters.sendToUnifiedCanvas')} + + + +

      {t('parameters.deleteImage')}

      +
      +
      +
      + )} > - + {(ref) => ( -
      + {isSelected && ( )} -
      +
      {isHovered && galleryImageMinimumWidth >= 64 && ( -
      + - } size="xs" - variant="imageHoverIconButton" fontSize={14} isDisabled={!mayDeleteImage} /> -
      + )} - - { - e.detail.originalEvent.preventDefault(); - }} - > - - {t('parameters.openInViewer')} - - - {t('parameters.usePrompt')} - - - - {t('parameters.useSeed')} - - - {t('parameters.useAll')} - - - {t('parameters.useInitImg')} - - - {t('parameters.sendToImg2Img')} - - - {t('parameters.sendToUnifiedCanvas')} - - - -

      {t('parameters.deleteImage')}

      -
      -
      -
      - + )} + ); }, memoEqualityCheck); diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css new file mode 100644 index 0000000000..559248dd0f --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css @@ -0,0 +1,35 @@ +.ltr-image-gallery-css-transition-enter { + transform: translateX(150%); +} + +.ltr-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.ltr-image-gallery-css-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-enter { + transform: translateX(-150%); +} + +.rtl-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.rtl-image-gallery-css-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss deleted file mode 100644 index f12fcd418a..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss +++ /dev/null @@ -1,187 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.image-gallery-wrapper-enter { - transform: translateX(150%); -} - -.image-gallery-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper-exit { - transform: translateX(0); -} - -.image-gallery-wrapper-exit-active { - transform: translateX(150%); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper { - &[data-pinned='false'] { - position: fixed; - height: 100vh; - top: 0; - right: 0; - - .image-gallery-popup { - border-radius: 0; - box-shadow: 0 0 1rem var(--text-color-a3); - .image-gallery-container { - max-height: calc($app-height + 5rem); - } - } - } - - .image-gallery-popup { - background-color: var(--background-color-secondary); - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - border-radius: 0.5rem; - border-left-width: 0.3rem; - - border-color: var(--tab-list-text-inactive); - - &[data-resize-alert='true'] { - border-color: var(--status-bad-color); - } - - .image-gallery-header { - display: flex; - align-items: center; - column-gap: 0.5rem; - justify-content: space-between; - - .image-gallery-header-right-icons { - display: flex; - flex-direction: row; - column-gap: 0.5rem; - } - - .image-gallery-icon-btn { - background-color: var(--btn-load-more); - &:hover { - background-color: var(--btn-load-more-hover); - } - } - - .image-gallery-settings-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - div { - display: flex; - column-gap: 0.5rem; - align-items: center; - justify-content: space-between; - } - } - - h1 { - font-weight: bold; - } - } - - .image-gallery-container { - display: flex; - flex-direction: column; - max-height: $app-gallery-popover-height; - overflow-y: scroll; - @include HideScrollbar; - - .image-gallery-container-placeholder { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - background-color: var(--background-color); - border-radius: 0.5rem; - place-items: center; - padding: 2rem; - text-align: center; - - p { - color: var(--subtext-color-bright); - font-family: Inter; - } - - svg { - width: 4rem; - height: 4rem; - color: var(--svg-color); - } - } - - .image-gallery-load-more-btn { - background-color: var(--btn-load-more); - font-size: 0.85rem; - padding: 0.5rem; - margin-top: 1rem; - - &:disabled { - &:hover { - background-color: var(--btn-load-more); - } - } - - &:hover { - background-color: var(--btn-load-more-hover); - } - } - } - } -} - -.image-gallery-category-btn-group { - width: max-content; - column-gap: 0; - justify-content: stretch; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - flex-grow: 1; - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - } -} - -// from https://css-tricks.com/a-grid-of-logos-in-squares/ -.image-gallery { - display: grid; - grid-gap: 0.5rem; - .hoverable-image { - padding: 0.5rem; - position: relative; - &::before { - // for apsect ratio - content: ''; - display: block; - padding-bottom: 100%; - } - .hoverable-image-image { - position: absolute; - max-width: 100%; - - // Alternate Version - // top: 0; - // bottom: 0; - // right: 0; - // left: 0; - // margin: auto; - - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx index 40de29dd36..1b14d9ff67 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx @@ -1,7 +1,14 @@ -import { Button } from '@chakra-ui/button'; import { NumberSize, Resizable } from 're-resizable'; -import { ButtonGroup } from '@chakra-ui/react'; +import { + Box, + ButtonGroup, + Flex, + Grid, + Icon, + chakra, + useTheme, +} from '@chakra-ui/react'; import { requestImages } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -17,7 +24,6 @@ import { setCurrentCategory, setGalleryImageMinimumWidth, setGalleryImageObjectFit, - setGalleryScrollPosition, setGalleryWidth, setShouldAutoSwitchToNewImages, setShouldHoldGalleryOpen, @@ -38,12 +44,19 @@ import React, { } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; -import { BiReset } from 'react-icons/bi'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { FaImage, FaUser, FaWrench } from 'react-icons/fa'; import { MdPhotoLibrary } from 'react-icons/md'; import { CSSTransition } from 'react-transition-group'; import HoverableImage from './HoverableImage'; +import { APP_GALLERY_HEIGHT_PINNED } from 'theme/util/constants'; + +import './ImageGallery.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; + +const ChakraResizeable = chakra(Resizable, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); const GALLERY_SHOW_BUTTONS_MIN_WIDTH = 320; const GALLERY_IMAGE_WIDTH_OFFSET = 40; @@ -64,6 +77,7 @@ const LIGHTBOX_GALLERY_WIDTH = 400; export default function ImageGallery() { const dispatch = useAppDispatch(); + const { direction } = useTheme(); const { t } = useTranslation(); @@ -73,7 +87,6 @@ export default function ImageGallery() { currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryGridTemplateColumns, activeTabName, @@ -107,12 +120,11 @@ export default function ImageGallery() { const timeoutIdRef = useRef(null); useEffect(() => { - if (galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH) { - setShouldShowButtons(false); - } + setShouldShowButtons(galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH); }, [galleryWidth]); const handleSetShouldPinGallery = () => { + !shouldPinGallery && dispatch(setShouldShowGallery(true)); dispatch(setShouldPinGallery(!shouldPinGallery)); dispatch(setDoesCanvasNeedScaling(true)); }; @@ -129,11 +141,6 @@ export default function ImageGallery() { const handleCloseGallery = useCallback(() => { dispatch(setShouldShowGallery(false)); dispatch(setShouldHoldGalleryOpen(false)); - dispatch( - setGalleryScrollPosition( - galleryContainerRef.current ? galleryContainerRef.current.scrollTop : 0 - ) - ); setTimeout( () => shouldPinGallery && dispatch(setDoesCanvasNeedScaling(true)), 400 @@ -239,12 +246,6 @@ export default function ImageGallery() { [galleryImageMinimumWidth] ); - // set gallery scroll position - useEffect(() => { - if (!galleryContainerRef.current) return; - galleryContainerRef.current.scrollTop = galleryScrollPosition; - }, [galleryScrollPosition, shouldShowGallery]); - useEffect(() => { function handleClickOutside(e: MouseEvent) { if ( @@ -267,29 +268,63 @@ export default function ImageGallery() { in={shouldShowGallery || shouldHoldGalleryOpen} unmountOnExit timeout={200} - classNames="image-gallery-wrapper" + classNames={`${direction}-image-gallery-css-transition`} > -
      - -
      + {shouldShowButtons ? ( <> dispatch(setCurrentCategory('result'))} + flexGrow={1} > {t('gallery.generations')} dispatch(setCurrentCategory('user'))} + flexGrow={1} > {t('gallery.uploads')} @@ -414,14 +452,14 @@ export default function ImageGallery() { } onClick={() => dispatch(setCurrentCategory('result'))} /> } onClick={() => dispatch(setCurrentCategory('user'))} /> @@ -429,96 +467,85 @@ export default function ImageGallery() { )} -
      + } - className="image-gallery-icon-btn" - cursor="pointer" /> } > -
      -
      - - dispatch(setGalleryImageMinimumWidth(64))} - icon={} - data-selected={shouldPinGallery} - styleClass="image-gallery-icon-btn" - /> -
      -
      - - dispatch( - setGalleryImageObjectFit( - galleryImageObjectFit === 'contain' - ? 'cover' - : 'contain' - ) + + + dispatch(setGalleryImageMinimumWidth(64)) + } + /> + + dispatch( + setGalleryImageObjectFit( + galleryImageObjectFit === 'contain' + ? 'cover' + : 'contain' ) - } - /> -
      -
      - ) => - dispatch( - setShouldAutoSwitchToNewImages(e.target.checked) - ) - } - /> -
      -
      - ) => - dispatch( - setShouldUseSingleGalleryColumn(e.target.checked) - ) - } - /> -
      -
      + ) + } + /> + ) => + dispatch(setShouldAutoSwitchToNewImages(e.target.checked)) + } + /> + ) => + dispatch( + setShouldUseSingleGalleryColumn(e.target.checked) + ) + } + /> +
      : } /> -
      -
      -
      + + + {images.length || areMoreImagesAvailable ? ( <> -
      {images.map((image) => { @@ -532,34 +559,51 @@ export default function ImageGallery() { /> ); })} -
      - + ) : ( -
      - + +

      {t('gallery.noImagesInGallery')}

      -
      +
      )} -
      -
      + + {isResizing && ( -
      )} -
      + ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss deleted file mode 100644 index 8b59a33579..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-metadata-viewer { - position: absolute; - top: 0; - width: 100%; - border-radius: 0.5rem; - padding: 1rem; - background-color: var(--metadata-bg-color); - overflow: scroll; - max-height: $app-metadata-height; - height: 100%; - z-index: 10; -} - -.image-json-viewer { - border-radius: 0.5rem; - margin: 0 0.5rem 1rem 0.5rem; - padding: 1rem; - overflow-x: scroll; - word-break: break-all; - background-color: var(--metadata-json-bg-color); -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index a06ebc0bc1..192b832454 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -1,5 +1,6 @@ import { ExternalLinkIcon } from '@chakra-ui/icons'; import { + Box, Center, Flex, Heading, @@ -43,6 +44,7 @@ import { memo } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaCopy } from 'react-icons/fa'; import { IoArrowUndoCircleOutline } from 'react-icons/io5'; +import { APP_METADATA_HEIGHT } from 'theme/util/constants'; type MetadataItemProps = { isLink?: boolean; @@ -163,7 +165,22 @@ const ImageMetadataViewer = memo( const metadataJSON = JSON.stringify(image.metadata, null, 2); return ( -
      + File: @@ -316,7 +333,7 @@ const ImageMetadataViewer = memo( if (postprocess.type === 'esrgan') { const { scale, strength, denoise_str } = postprocess; return ( - + {`${ i + 1 }: Upscale (ESRGAN)`} @@ -346,7 +363,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'gfpgan') { const { strength } = postprocess; return ( - + {`${ i + 1 }: Face restoration (GFPGAN)`} @@ -364,7 +381,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'codeformer') { const { strength, fidelity } = postprocess; return ( - + {`${ i + 1 }: Face restoration (Codeformer)`} @@ -417,9 +434,21 @@ const ImageMetadataViewer = memo( Metadata JSON: -
      +
      {metadataJSON}
      -
      +
      ) : ( @@ -430,7 +459,7 @@ const ImageMetadataViewer = memo( )} -
      + ); }, memoEqualityCheck diff --git a/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx new file mode 100644 index 0000000000..0cf41cb057 --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx @@ -0,0 +1,130 @@ +import { ChakraProps, Flex, Grid, IconButton } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { isEqual } from 'lodash'; +import { useState } from 'react'; +import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; +import { gallerySelector } from '../store/gallerySelectors'; +import { + GalleryCategory, + selectNextImage, + selectPrevImage, +} from '../store/gallerySlice'; + +const nextPrevButtonTriggerAreaStyles: ChakraProps['sx'] = { + height: '100%', + width: '15%', + alignItems: 'center', + pointerEvents: 'auto', +}; +const nextPrevButtonStyles: ChakraProps['sx'] = { + color: 'base.100', +}; + +export const nextPrevImageButtonsSelector = createSelector( + gallerySelector, + (gallery) => { + const { currentImage } = gallery; + + const tempImages = + gallery.categories[ + currentImage ? (currentImage.category as GalleryCategory) : 'result' + ].images; + + const currentImageIndex = tempImages.findIndex( + (i) => i.uuid === gallery?.currentImage?.uuid + ); + const imagesLength = tempImages.length; + + return { + isOnFirstImage: currentImageIndex === 0, + isOnLastImage: + !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); + +const NextPrevImageButtons = () => { + const dispatch = useAppDispatch(); + + const { isOnFirstImage, isOnLastImage } = useAppSelector( + nextPrevImageButtonsSelector + ); + + const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = + useState(false); + + const handleCurrentImagePreviewMouseOver = () => { + setShouldShowNextPrevButtons(true); + }; + + const handleCurrentImagePreviewMouseOut = () => { + setShouldShowNextPrevButtons(false); + }; + + const handleClickPrevButton = () => { + dispatch(selectPrevImage()); + }; + + const handleClickNextButton = () => { + dispatch(selectNextImage()); + }; + + return ( + + + {shouldShowNextPrevButtons && !isOnFirstImage && ( + } + variant="unstyled" + onClick={handleClickPrevButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + {shouldShowNextPrevButtons && !isOnLastImage && ( + } + variant="unstyled" + onClick={handleClickNextButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + ); +}; + +export default NextPrevImageButtons; diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts index fc1cb5d996..751eee14d7 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts @@ -19,7 +19,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, shouldHoldGalleryOpen, @@ -34,7 +33,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, galleryGridTemplateColumns: shouldUseSingleGalleryColumn diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts index 52f8c54dc8..c96a3c9aac 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts @@ -31,7 +31,6 @@ export interface GalleryState { }; shouldPinGallery: boolean; shouldShowGallery: boolean; - galleryScrollPosition: number; galleryImageMinimumWidth: number; galleryImageObjectFit: GalleryImageObjectFitType; shouldHoldGalleryOpen: boolean; @@ -49,7 +48,6 @@ const initialState: GalleryState = { currentImageUuid: '', shouldPinGallery: true, shouldShowGallery: true, - galleryScrollPosition: 0, galleryImageMinimumWidth: 64, galleryImageObjectFit: 'cover', shouldHoldGalleryOpen: false, @@ -242,9 +240,6 @@ export const gallerySlice = createSlice({ state.shouldShowGallery = action.payload; }, - setGalleryScrollPosition: (state, action: PayloadAction) => { - state.galleryScrollPosition = action.payload; - }, setGalleryImageMinimumWidth: (state, action: PayloadAction) => { state.galleryImageMinimumWidth = action.payload; }, @@ -286,7 +281,6 @@ export const { selectPrevImage, setShouldPinGallery, setShouldShowGallery, - setGalleryScrollPosition, setGalleryImageMinimumWidth, setGalleryImageObjectFit, setShouldHoldGalleryOpen, diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss deleted file mode 100644 index 99df6b0756..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss +++ /dev/null @@ -1,89 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.lightbox-container { - width: 100%; - height: 100%; - color: var(--text-color); - overflow: hidden; - position: absolute; - left: 0; - top: 0; - background-color: var(--background-color-secondary); - z-index: 30; - animation: popIn 0.3s ease-in; - - .image-gallery-wrapper { - max-height: 100% !important; - - .image-gallery-container { - max-height: calc(100vh - 5rem); - } - } - - .current-image-options { - z-index: 2; - position: absolute; - top: 1rem; - } - - .image-metadata-viewer { - left: 0; - max-height: 100%; - } -} - -.lightbox-close-btn { - z-index: 3; - position: absolute; - left: 1rem; - top: 1rem; - @include BaseButton; -} - -.lightbox-display-container { - display: flex; - flex-direction: row; -} - -.lightbox-preview-wrapper { - overflow: hidden; - background-color: var(--background-color-secondary); - display: grid; - grid-template-columns: auto max-content; - place-items: center; - width: 100vw; - height: 100vh; - - .current-image-next-prev-buttons { - position: absolute; - } - - .lightbox-image { - grid-area: lightbox-content; - border-radius: 0.5rem; - } - - .lightbox-image-options { - position: absolute; - z-index: 2; - left: 1rem; - top: 4.5rem; - user-select: none; - border-radius: 0.5rem; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } -} - -@keyframes popIn { - from { - opacity: 0; - filter: blur(100); - } - to { - opacity: 1; - filter: blur(0); - } -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx index d712b8d97e..79b2655583 100644 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx +++ b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx @@ -1,21 +1,40 @@ -import { IconButton } from '@chakra-ui/react'; +import { Box, Flex, Grid } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import CurrentImageButtons from 'features/gallery/components/CurrentImageButtons'; -import { imagesSelector } from 'features/gallery/components/CurrentImagePreview'; import ImageGallery from 'features/gallery/components/ImageGallery'; import ImageMetadataViewer from 'features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer'; -import { - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import NextPrevImageButtons from 'features/gallery/components/NextPrevImageButtons'; +import { gallerySelector } from 'features/gallery/store/gallerySelectors'; import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; -import { useState } from 'react'; +import { uiSelector } from 'features/ui/store/uiSelectors'; +import { isEqual } from 'lodash'; import { useHotkeys } from 'react-hotkeys-hook'; import { BiExit } from 'react-icons/bi'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; -import ReactPanZoom from './ReactPanZoom'; +import { TransformWrapper } from 'react-zoom-pan-pinch'; +import useImageTransform from '../hooks/useImageTransform'; +import ReactPanZoomButtons from './ReactPanZoomButtons'; +import ReactPanZoomImage from './ReactPanZoomImage'; + +export const lightboxSelector = createSelector( + [gallerySelector, uiSelector], + (gallery, ui) => { + const { currentImage } = gallery; + const { shouldShowImageDetails } = ui; + + return { + viewerImageToDisplay: currentImage, + shouldShowImageDetails, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); export default function Lightbox() { const dispatch = useAppDispatch(); @@ -24,30 +43,18 @@ export default function Lightbox() { ); const { - viewerImageToDisplay, - shouldShowImageDetails, - isOnFirstImage, - isOnLastImage, - } = useAppSelector(imagesSelector); + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + } = useImageTransform(); - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { viewerImageToDisplay, shouldShowImageDetails } = + useAppSelector(lightboxSelector); useHotkeys( 'Esc', @@ -58,66 +65,106 @@ export default function Lightbox() { ); return ( -
      - } - aria-label="Exit Viewer" - className="lightbox-close-btn" - onClick={() => { - dispatch(setIsLightboxOpen(false)); + + + > + + } + aria-label="Exit Viewer" + onClick={() => { + dispatch(setIsLightboxOpen(false)); + }} + fontSize={20} + /> + + -
      -
      - - {!shouldShowImageDetails && ( -
      -
      - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> + + + {viewerImageToDisplay && ( + <> + + {shouldShowImageDetails && ( + )} -
      -
      + )} + + {!shouldShowImageDetails && ( + - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
      -
      - )} - {viewerImageToDisplay && ( - <> - - {shouldShowImageDetails && ( - - )} - - )} -
      - -
      -
      + + + )} + + + + + + + + + ); } diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx deleted file mode 100644 index 9401a97874..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import IAIIconButton from 'common/components/IAIIconButton'; -import * as React from 'react'; -import { - BiReset, - BiRotateLeft, - BiRotateRight, - BiZoomIn, - BiZoomOut, -} from 'react-icons/bi'; -import { MdFlip } from 'react-icons/md'; -import { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch'; - -type ReactPanZoomProps = { - image: string; - styleClass?: string; - alt?: string; - ref?: React.Ref; -}; - -export default function ReactPanZoom({ - image, - alt, - ref, - styleClass, -}: ReactPanZoomProps) { - const [rotation, setRotation] = React.useState(0); - const [flip, setFlip] = React.useState(false); - - const rotateLeft = () => { - if (rotation === -3) { - setRotation(0); - } else { - setRotation(rotation - 1); - } - }; - - const rotateRight = () => { - if (rotation === 3) { - setRotation(0); - } else { - setRotation(rotation + 1); - } - }; - - const flipImage = () => { - setFlip(!flip); - }; - - return ( - - {({ zoomIn, zoomOut, resetTransform, centerView }) => ( - <> -
      - } - aria-label="Zoom In" - tooltip="Zoom In" - onClick={() => zoomIn()} - fontSize={20} - /> - - } - aria-label="Zoom Out" - tooltip="Zoom Out" - onClick={() => zoomOut()} - fontSize={20} - /> - - } - aria-label="Rotate Left" - tooltip="Rotate Left" - onClick={rotateLeft} - fontSize={20} - /> - - } - aria-label="Rotate Right" - tooltip="Rotate Right" - onClick={rotateRight} - fontSize={20} - /> - - } - aria-label="Flip Image" - tooltip="Flip Image" - onClick={flipImage} - fontSize={20} - /> - - } - aria-label="Reset" - tooltip="Reset" - onClick={() => { - resetTransform(); - setRotation(0); - setFlip(false); - }} - fontSize={20} - /> -
      - - {alt} centerView(1, 0, 'easeOut')} - /> - - - )} -
      - ); -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx new file mode 100644 index 0000000000..fffe609ab7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx @@ -0,0 +1,94 @@ +import { ButtonGroup } from '@chakra-ui/react'; +import IAIIconButton from 'common/components/IAIIconButton'; +import { + BiReset, + BiRotateLeft, + BiRotateRight, + BiZoomIn, + BiZoomOut, +} from 'react-icons/bi'; +import { MdFlip } from 'react-icons/md'; +import { useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomButtonsProps = { + flipHorizontally: () => void; + flipVertically: () => void; + rotateCounterClockwise: () => void; + rotateClockwise: () => void; + reset: () => void; +}; + +const ReactPanZoomButtons = ({ + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, +}: ReactPanZoomButtonsProps) => { + const { zoomIn, zoomOut, resetTransform } = useTransformContext(); + + return ( + + } + aria-label="Zoom In" + tooltip="Zoom In" + onClick={() => zoomIn()} + fontSize={20} + /> + + } + aria-label="Zoom Out" + tooltip="Zoom Out" + onClick={() => zoomOut()} + fontSize={20} + /> + + } + aria-label="Rotate Counter-Clockwise" + tooltip="Rotate Counter-Clockwise" + onClick={rotateCounterClockwise} + fontSize={20} + /> + + } + aria-label="Rotate Clockwise" + tooltip="Rotate Clockwise" + onClick={rotateClockwise} + fontSize={20} + /> + + } + aria-label="Flip Horizontally" + tooltip="Flip Horizontally" + onClick={flipHorizontally} + fontSize={20} + /> + + } + aria-label="Flip Vertically" + tooltip="Flip Vertically" + onClick={flipVertically} + fontSize={20} + /> + + } + aria-label="Reset" + tooltip="Reset" + onClick={() => { + resetTransform(); + reset(); + }} + fontSize={20} + /> + + ); +}; + +export default ReactPanZoomButtons; diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx new file mode 100644 index 0000000000..db6a02ae71 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx @@ -0,0 +1,45 @@ +import * as React from 'react'; +import { TransformComponent, useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomProps = { + image: string; + styleClass?: string; + alt?: string; + ref?: React.Ref; + rotation: number; + scaleX: number; + scaleY: number; +}; + +export default function ReactPanZoomImage({ + image, + alt, + ref, + styleClass, + rotation, + scaleX, + scaleY, +}: ReactPanZoomProps) { + const { centerView } = useTransformContext(); + + return ( + + {alt} centerView(1, 0, 'easeOut')} + /> + + ); +} diff --git a/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts new file mode 100644 index 0000000000..c191d7d1d7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts @@ -0,0 +1,50 @@ +import { useState } from 'react'; + +const useImageTransform = () => { + const [rotation, setRotation] = useState(0); + const [scaleX, setScaleX] = useState(1); + const [scaleY, setScaleY] = useState(1); + + const rotateCounterClockwise = () => { + if (rotation === -270) { + setRotation(0); + } else { + setRotation(rotation - 90); + } + }; + + const rotateClockwise = () => { + if (rotation === 270) { + setRotation(0); + } else { + setRotation(rotation + 90); + } + }; + + const flipHorizontally = () => { + setScaleX(scaleX * -1); + }; + + const flipVertically = () => { + setScaleY(scaleY * -1); + }; + + const reset = () => { + setRotation(0); + setScaleX(1); + setScaleY(1); + }; + + return { + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + }; +}; + +export default useImageTransform; diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss deleted file mode 100644 index dcf1b23538..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.advanced-parameters { - padding-top: 0.5rem; - display: grid; - row-gap: 0.5rem; -} - -.advanced-parameters-item { - display: grid; - max-width: $options-bar-max-width; - border: none; - border-top: 0px; - border-radius: 0.4rem; - background-color: var(--tab-panel-bg); - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0 0 0.4rem 0.4rem; - } -} - -.advanced-parameters-panel { - background-color: var(--tab-panel-bg); - border-radius: 0 0 0.4rem 0.4rem; - padding: 1rem; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } - } -} - -.advanced-parameters-header { - border-radius: 0.4rem; - font-weight: bold; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.4rem 0.4rem 0 0; - } - - &:hover { - background-color: var(--tab-hover-color); - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx index af93704c82..b742f5a37e 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx @@ -21,10 +21,10 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { const { header, feature, content, additionalHeaderComponents } = props; return ( - - - - + + + + {header} {additionalHeaderComponents} @@ -32,9 +32,7 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { - - {content} - + {content} ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss deleted file mode 100644 index b7df91c843..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss +++ /dev/null @@ -1,53 +0,0 @@ -.inpainting-bounding-box-settings { - display: flex; - flex-direction: column; - border-radius: 0.4rem; - border: 2px solid var(--tab-color); -} - -.inpainting-bounding-box-header { - background-color: var(--tab-color); - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 0.5rem 1rem; - border-radius: 0.3rem 0.3rem 0 0; - align-items: center; - - button { - width: 0.5rem; - height: 1.2rem; - background: none; - &:hover { - background: none; - } - } - - p { - // font-weight: bold; - } -} - -.inpainting-bounding-box-settings-items { - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - - .inpainting-bounding-box-reset-icon-btn { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - } -} - -.inpainting-bounding-box-dimensions-slider-numberinput { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 1rem; -} - -.inpainting-bounding-box-darken { - width: max-content; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx index b7fd7d4c67..67740cbc02 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx @@ -1,4 +1,4 @@ -import { Box, Flex } from '@chakra-ui/react'; +import { Box, VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; @@ -68,7 +68,7 @@ const BoundingBoxSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetHeight} - sliderMarkRightOffset={-7} /> - + ); }; @@ -108,7 +106,7 @@ export default BoundingBoxSettings; export const BoundingBoxSettingsHeader = () => { const { t } = useTranslation(); return ( - + {t('parameters.boundingBoxHeader')} ); diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx index a1f3759837..187b23cdff 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; @@ -107,7 +107,7 @@ const InfillAndScalingSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetScaledWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetScaledHeight} - sliderMarkRightOffset={-7} /> { isInputDisabled={infillMethod !== 'tile'} isResetDisabled={infillMethod !== 'tile'} isSliderDisabled={infillMethod !== 'tile'} - sliderMarkRightOffset={-4} label={t('parameters.tileSize')} min={16} max={64} @@ -176,7 +173,7 @@ const InfillAndScalingSettings = () => { dispatch(setTileSize(32)); }} /> - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx index e3107e1d72..1f5237615a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx @@ -13,7 +13,6 @@ export default function SeamBlur() { return ( { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx index dccbd89b72..25d14e5eac 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx @@ -14,7 +14,6 @@ export default function SeamSize() { return ( { ); return ( - + {facetoolType === 'codeformer' && } - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx index 908aa7548b..e4d5a9174d 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx @@ -6,12 +6,11 @@ import { useTranslation } from 'react-i18next'; interface ImageToImageStrengthProps { label?: string; - styleClass?: string; } export default function ImageToImageStrength(props: ImageToImageStrengthProps) { const { t } = useTranslation(); - const { label = `${t('parameters.strength')}`, styleClass } = props; + const { label = `${t('parameters.strength')}` } = props; const img2imgStrength = useAppSelector( (state: RootState) => state.generation.img2imgStrength ); @@ -33,10 +32,9 @@ export default function ImageToImageStrength(props: ImageToImageStrengthProps) { onChange={handleChangeStrength} value={img2imgStrength} isInteger={false} - styleClass={styleClass} withInput withSliderMarks - inputWidth="5.5rem" + inputWidth={22} withReset handleReset={handleImg2ImgStrengthReset} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx index 5f99f10b5c..97705da9cc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx @@ -1,10 +1,8 @@ -import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import type { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import IAISwitch from 'common/components/IAISwitch'; -import SubItemHook from 'common/components/SubItemHook'; import { postprocessingSelector } from 'features/parameters/store/postprocessingSelectors'; import { setHiresFix, @@ -24,7 +22,7 @@ const hiresStrengthSelector = createSelector( } ); -const HiresStrength = () => { +export const HiresStrength = () => { const { hiresFix, hiresStrength } = useAppSelector(hiresStrengthSelector); const dispatch = useAppDispatch(); @@ -40,34 +38,30 @@ const HiresStrength = () => { }; return ( - - - - + ); }; /** * Hires Fix Toggle */ -const HiresSettings = () => { +export const HiresToggle = () => { const dispatch = useAppDispatch(); const hiresFix = useAppSelector( @@ -80,16 +74,11 @@ const HiresSettings = () => { dispatch(setHiresFix(e.target.checked)); return ( - - - - + ); }; - -export default HiresSettings; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx index f037e79523..c2dea1cbf8 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx @@ -1,11 +1,11 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeamlessSettings from './SeamlessSettings'; const ImageToImageOutputSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx index 1eaba1eaae..93ba63d065 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx @@ -1,13 +1,14 @@ -import { Flex } from '@chakra-ui/react'; -import HiresSettings from './HiresSettings'; +import { VStack } from '@chakra-ui/react'; +import { HiresStrength, HiresToggle } from './HiresSettings'; import SeamlessSettings from './SeamlessSettings'; const OutputSettings = () => { return ( - + - - + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx index fc649e0400..ddd6a4b24b 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx @@ -1,4 +1,3 @@ -import { Flex } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; @@ -22,14 +21,12 @@ const SeamlessSettings = () => { const { t } = useTranslation(); return ( - - - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx index 37bb7bdbda..e23385d0bc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx @@ -1,19 +1,20 @@ +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function SymmetrySettings() { - const horizontalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.horizontalSymmetryTimePercentage + const horizontalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.horizontalSymmetrySteps ); - const verticalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.verticalSymmetryTimePercentage + const verticalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.verticalSymmetrySteps ); const steps = useAppSelector((state: RootState) => state.generation.steps); @@ -23,33 +24,31 @@ export default function SymmetrySettings() { const { t } = useTranslation(); return ( - <> + dispatch(setHorizontalSymmetryTimePercentage(v))} + value={horizontalSymmetrySteps} + onChange={(v) => dispatch(setHorizontalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setHorizontalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > + handleReset={() => dispatch(setHorizontalSymmetrySteps(0))} + /> dispatch(setVerticalSymmetryTimePercentage(v))} + value={verticalSymmetrySteps} + onChange={(v) => dispatch(setVerticalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setVerticalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > - + handleReset={() => dispatch(setVerticalSymmetrySteps(0))} + /> + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx index 5d9d388098..7aac200b26 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx @@ -1,9 +1,11 @@ +import { HStack } from '@chakra-ui/react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSeed } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; +import ShuffleSeed from './ShuffleSeed'; export default function Seed() { const seed = useAppSelector((state: RootState) => state.generation.seed); @@ -21,18 +23,25 @@ export default function Seed() { const handleChangeSeed = (v: number) => dispatch(setSeed(v)); return ( - + + + + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx index d524ace666..891b528acd 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx @@ -1,8 +1,7 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import Perlin from './Perlin'; import RandomizeSeed from './RandomizeSeed'; import Seed from './Seed'; -import ShuffleSeed from './ShuffleSeed'; import Threshold from './Threshold'; /** @@ -10,19 +9,12 @@ import Threshold from './Threshold'; */ const SeedSettings = () => { return ( - + - - - - - - - - - - - + + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx index ea1721fc61..dbcf201d04 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx @@ -23,7 +23,6 @@ export default function Threshold() { withInput withReset withSliderMarks - sliderMarkRightOffset={-4} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx index de8fb16a9e..291b8f9dc2 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import UpscaleDenoisingStrength from './UpscaleDenoisingStrength'; import UpscaleStrength from './UpscaleStrength'; import UpscaleScale from './UpscaleScale'; @@ -8,11 +8,11 @@ import UpscaleScale from './UpscaleScale'; */ const UpscaleSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx index 82950231a2..d3bc43f7ae 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeedWeights from './SeedWeights'; import VariationAmount from './VariationAmount'; @@ -7,10 +7,10 @@ import VariationAmount from './VariationAmount'; */ const VariationsSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx index bb418fa9c0..6c4cecfe17 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx @@ -26,7 +26,6 @@ export default function MainCFGScale() { onChange={handleChangeCfgScale} handleReset={() => dispatch(setCfgScale(7.5))} value={cfgScale} - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 200 }} withInput withReset @@ -40,10 +39,8 @@ export default function MainCFGScale() { max={200} onChange={handleChangeCfgScale} value={cfgScale} - width="auto" - styleClass="main-settings-block" - textAlign="center" isInteger={false} + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx index e659cd29d3..0068568402 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx @@ -32,8 +32,6 @@ export default function MainHeight() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" sliderNumberInputProps={{ max: 15360 }} /> ) : ( @@ -44,8 +42,6 @@ export default function MainHeight() { flexGrow={1} onChange={(e) => dispatch(setHeight(Number(e.target.value)))} validValues={HEIGHTS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx index 0100c8999c..f9e31c71da 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx @@ -32,7 +32,6 @@ export default function MainIterations() { withInput withReset withSliderMarks - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 9999 }} /> ) : ( @@ -43,10 +42,7 @@ export default function MainIterations() { max={9999} onChange={handleChangeIterations} value={iterations} - width="auto" - labelFontSize={0.5} - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss deleted file mode 100644 index 962bfac1b2..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss +++ /dev/null @@ -1,35 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.main-settings { - display: grid; - row-gap: 1rem; -} - -.main-settings-list { - display: grid; - row-gap: 1rem; -} - -.main-settings-row { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 0.5rem; - max-width: $options-bar-max-width; -} - -.main-settings-block { - border-radius: 0.5rem; - display: grid !important; - grid-template-columns: auto !important; - row-gap: 0.5rem; - - .invokeai__number-input-form-label, - .invokeai__select-label { - font-weight: bold; - font-size: 0.9rem !important; - } - - .invokeai__select-label { - margin: 0; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx deleted file mode 100644 index e11e16d4df..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; -import { useTranslation } from 'react-i18next'; -import ParametersAccordion from '../ParametersAccordion'; -import MainCFGScale from './MainCFGScale'; -import MainHeight from './MainHeight'; -import MainIterations from './MainIterations'; -import MainSampler from './MainSampler'; -import MainSteps from './MainSteps'; -import MainWidth from './MainWidth'; - -export const inputWidth = 'auto'; - -export default function MainSettings() { - const { t } = useTranslation(); - - const shouldUseSliders = useAppSelector( - (state: RootState) => state.ui.shouldUseSliders - ); - - const accordionItems = { - main: { - header: `${t('parameters.general')}`, - feature: undefined, - content: shouldUseSliders ? ( - - - - - - - - - ) : ( - - - - - - - - - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx index 9c3fd09ac3..0f55cca12a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx @@ -26,8 +26,7 @@ export default function MainSampler() { validValues={ activeModel.format === 'diffusers' ? DIFFUSERS_SAMPLERS : SAMPLERS } - styleClass="main-settings-block" - minWidth="9rem" + minWidth={36} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx new file mode 100644 index 0000000000..cad30e58e6 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx @@ -0,0 +1,39 @@ +import { Flex, VStack } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import MainCFGScale from './MainCFGScale'; +import MainHeight from './MainHeight'; +import MainIterations from './MainIterations'; +import MainSampler from './MainSampler'; +import MainSteps from './MainSteps'; +import MainWidth from './MainWidth'; + +export default function MainSettings() { + const shouldUseSliders = useAppSelector( + (state: RootState) => state.ui.shouldUseSliders + ); + + return shouldUseSliders ? ( + + + + + + + + + ) : ( + + + + + + + + + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx index 3be575f7bf..58553bca86 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx @@ -3,7 +3,10 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISlider from 'common/components/IAISlider'; -import { setSteps } from 'features/parameters/store/generationSlice'; +import { + clampSymmetrySteps, + setSteps, +} from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function MainSteps() { @@ -14,7 +17,13 @@ export default function MainSteps() { ); const { t } = useTranslation(); - const handleChangeSteps = (v: number) => dispatch(setSteps(v)); + const handleChangeSteps = (v: number) => { + dispatch(setSteps(v)); + }; + + const handleBlur = () => { + dispatch(clampSymmetrySteps()); + }; return shouldUseSliders ? ( ) : ( @@ -38,9 +46,8 @@ export default function MainSteps() { step={1} onChange={handleChangeSteps} value={steps} - width="auto" - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} + onBlur={handleBlur} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx index 7abffcf657..c133f804e7 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx @@ -32,8 +32,6 @@ export default function MainWidth() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" inputReadOnly sliderNumberInputProps={{ max: 15360 }} /> @@ -45,8 +43,6 @@ export default function MainWidth() { flexGrow={1} onChange={(e) => dispatch(setWidth(Number(e.target.value)))} validValues={WIDTHS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx index 9738b0d30a..019fb02f90 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx @@ -1,4 +1,4 @@ -import { Accordion, ExpandedIndex } from '@chakra-ui/react'; +import { Accordion } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setOpenAccordions } from 'features/system/store/systemSlice'; @@ -30,7 +30,7 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { /** * Stores accordion state in redux so preferred UI setup is retained. */ - const handleChangeAccordionState = (openAccordions: ExpandedIndex) => + const handleChangeAccordionState = (openAccordions: number | number[]) => dispatch(setOpenAccordions(openAccordions)); const renderAccordions = () => { @@ -59,7 +59,6 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { allowMultiple reduceMotion onChange={handleChangeAccordionState} - className="advanced-parameters" > {renderAccordions()} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx index 88eb203fc9..9363bcdfd3 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx @@ -95,12 +95,7 @@ export default function CancelButton( ]; return ( - + {cancelType === 'immediate' ? ( } @@ -108,17 +103,13 @@ export default function CancelButton( aria-label={t('parameters.cancel.immediate')} isDisabled={!isConnected || !isProcessing || !isCancelable} onClick={handleClickCancel} - className="cancel-btn" + colorScheme="error" {...rest} /> ) : ( - ) : ( - - ) + isCancelScheduled ? : } tooltip={ isCancelScheduled @@ -141,7 +132,7 @@ export default function CancelButton( if (isCancelScheduled) dispatch(setCancelAfter(null)); else dispatch(setCancelAfter(currentIteration)); }} - className="cancel-btn" + colorScheme="error" {...rest} /> )} @@ -149,13 +140,8 @@ export default function CancelButton( menuItems={cancelMenuItems} iconTooltip={t('parameters.cancel.setType')} menuButtonProps={{ - backgroundColor: 'var(--destructive-color)', - color: 'var(--text-color)', - minWidth: '1.5rem', - minHeight: '1.5rem', - _hover: { - backgroundColor: 'var(--destructive-color-hover)', - }, + colorScheme: 'error', + minWidth: 5, }} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx index 504714d329..b68f245044 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { readinessSelector } from 'app/selectors/readinessSelector'; import { generateImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -5,6 +6,7 @@ import IAIButton, { IAIButtonProps } from 'common/components/IAIButton'; import IAIIconButton, { IAIIconButtonProps, } from 'common/components/IAIIconButton'; +import { clampSymmetrySteps } from 'features/parameters/store/generationSlice'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; @@ -30,6 +32,7 @@ export default function InvokeButton(props: InvokeButton) { useHotkeys( ['ctrl+enter', 'meta+enter'], () => { + dispatch(clampSymmetrySteps()); dispatch(generateImage(activeTabName)); }, { @@ -41,7 +44,7 @@ export default function InvokeButton(props: InvokeButton) { ); return ( -
      + {iconButton ? ( } isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" tooltip={t('parameters.invoke')} tooltipProps={{ placement: 'bottom' }} + colorScheme="accent" {...rest} /> ) : ( @@ -60,12 +65,15 @@ export default function InvokeButton(props: InvokeButton) { type="submit" isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" + colorScheme="accent" + fontWeight={700} {...rest} > Invoke )} -
      +
      ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx index 9c0ba478d4..09cc991653 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx @@ -21,8 +21,6 @@ const LoopbackButton = () => { } onClick={() => { diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss deleted file mode 100644 index 658ee08177..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss +++ /dev/null @@ -1,56 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.process-buttons { - display: flex; - column-gap: 0.5rem; -} - -.invoke-btn { - flex-grow: 1; - width: 100%; - - @include Button( - $btn-color: var(--accent-color), - $btn-color-hover: var(--accent-color-hover), - $icon-size: 16px - ); -} - -.cancel-btn { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover), - $btn-width: 3rem - ); -} - -.loopback-btn { - &[data-as-checkbox='true'] { - background-color: var(--btn-btn-base-color); - border: 3px solid var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - background-color: var(--btn-btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - &[data-selected='true'] { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx index 0f48fbce8a..e4b3798548 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx @@ -1,3 +1,4 @@ +import { Flex } from '@chakra-ui/react'; import { useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import CancelButton from './CancelButton'; @@ -11,11 +12,11 @@ const ProcessButtons = () => { const activeTabName = useAppSelector(activeTabNameSelector); return ( -
      + {activeTabName === 'img2img' && } -
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx index a8b1961091..da22fa5594 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx @@ -19,19 +19,11 @@ const NegativePromptInput = () => { name="negativePrompt" value={negativePrompt} onChange={(e) => dispatch(setNegativePrompt(e.target.value))} - background="var(--prompt-bg-color)" placeholder={t('parameters.negativePrompts')} - _placeholder={{ fontSize: '0.8rem' }} - borderColor="var(--border-color)" - _hover={{ - borderColor: 'var(--border-color-light)', - }} _focusVisible={{ - borderColor: 'var(--border-color-invalid)', - boxShadow: '0 0 10px var(--box-shadow-color-invalid)', + borderColor: 'error.600', }} - fontSize="0.9rem" - color="var(--text-color-secondary)" + fontSize="sm" /> ); diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss deleted file mode 100644 index e7baf2f5f9..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss +++ /dev/null @@ -1,34 +0,0 @@ -.prompt-bar { - display: grid; - row-gap: 1rem; - - input, - textarea { - background-color: var(--prompt-bg-color); - font-size: 1rem; - border: 2px solid var(--border-color); - - &:hover { - border: 2px solid var(--border-color-light); - } - - &:focus-visible { - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] { - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - - &:disabled { - border: 2px solid var(--border-color); - box-shadow: none; - } - } - - textarea { - min-height: 10rem; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx index 43221f0a8d..3d5c38ddc5 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx @@ -1,4 +1,4 @@ -import { FormControl, Textarea } from '@chakra-ui/react'; +import { Box, FormControl, Textarea } from '@chakra-ui/react'; import { generateImage } from 'app/socketio/actions'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -63,7 +63,7 @@ const PromptInput = () => { }; return ( -
      + @@ -71,19 +71,15 @@ const PromptInput = () => { id="prompt" name="prompt" placeholder={t('parameters.promptPlaceholder')} - size="lg" value={prompt} onChange={handleChangePrompt} onKeyDown={handleKeyDown} resize="vertical" - height={30} ref={promptRef} - _placeholder={{ - color: 'var(--text-color-secondary)', - }} + minH={40} /> -
      + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index e05c49f3f7..1cb3a98204 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -4,6 +4,7 @@ import * as InvokeAI from 'app/invokeai'; import { getPromptAndNegative } from 'common/util/getPromptAndNegative'; import promptToString from 'common/util/promptToString'; import { seedWeightsToString } from 'common/util/seedWeightPairs'; +import { clamp } from 'lodash'; export interface GenerationState { cfgScale: number; @@ -33,8 +34,8 @@ export interface GenerationState { variationAmount: number; width: number; shouldUseSymmetry: boolean; - horizontalSymmetryTimePercentage: number; - verticalSymmetryTimePercentage: number; + horizontalSymmetrySteps: number; + verticalSymmetrySteps: number; } const initialGenerationState: GenerationState = { @@ -64,8 +65,8 @@ const initialGenerationState: GenerationState = { variationAmount: 0.1, width: 512, shouldUseSymmetry: false, - horizontalSymmetryTimePercentage: 0, - verticalSymmetryTimePercentage: 0, + horizontalSymmetrySteps: 0, + verticalSymmetrySteps: 0, }; const initialState: GenerationState = initialGenerationState; @@ -99,6 +100,18 @@ export const generationSlice = createSlice({ setSteps: (state, action: PayloadAction) => { state.steps = action.payload; }, + clampSymmetrySteps: (state) => { + state.horizontalSymmetrySteps = clamp( + state.horizontalSymmetrySteps, + 0, + state.steps + ); + state.verticalSymmetrySteps = clamp( + state.verticalSymmetrySteps, + 0, + state.steps + ); + }, setCfgScale: (state, action: PayloadAction) => { state.cfgScale = action.payload; }, @@ -174,7 +187,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, } = action.payload.image; @@ -237,7 +250,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, strength, @@ -334,22 +347,17 @@ export const generationSlice = createSlice({ setShouldUseSymmetry: (state, action: PayloadAction) => { state.shouldUseSymmetry = action.payload; }, - setHorizontalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.horizontalSymmetryTimePercentage = action.payload; + setHorizontalSymmetrySteps: (state, action: PayloadAction) => { + state.horizontalSymmetrySteps = action.payload; }, - setVerticalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.verticalSymmetryTimePercentage = action.payload; + setVerticalSymmetrySteps: (state, action: PayloadAction) => { + state.verticalSymmetrySteps = action.payload; }, }, }); export const { + clampSymmetrySteps, clearInitialImage, resetParametersState, resetSeed, @@ -384,8 +392,8 @@ export const { setVariationAmount, setWidth, setShouldUseSymmetry, - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } = generationSlice.actions; export default generationSlice.reducer; diff --git a/invokeai/frontend/web/src/features/system/components/Console.scss b/invokeai/frontend/web/src/features/system/components/Console.scss deleted file mode 100644 index e043d58d51..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Console.scss +++ /dev/null @@ -1,75 +0,0 @@ -.console { - width: 100vw; - display: flex; - flex-direction: column; - background: var(--console-bg-color); - overflow: auto; - direction: column; - font-family: monospace; - padding: 0 1rem 1rem 3rem; - border-top-width: 0.3rem; - border-color: var(--resizeable-handle-border-color); - - .console-info-color { - color: var(--error-level-info); - } - - .console-warning-color { - color: var(--error-level-warning); - } - - .console-error-color { - color: var(--status-bad-color); - } - - .console-entry { - display: flex; - column-gap: 0.5rem; - - .console-timestamp { - font-weight: semibold; - } - - .console-message { - word-break: break-all; - } - } -} - -.console-toggle-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 0.5rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-error-seen='true'] { - background: var(--status-bad-color); - &:hover { - background: var(--status-bad-color); - } - } -} - -.console-autoscroll-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 3rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-autoscroll-enabled='true'] { - background: var(--accent-color); - &:hover { - background: var(--accent-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/Console.tsx b/invokeai/frontend/web/src/features/system/components/Console.tsx index 5ed8025730..562b339c59 100644 --- a/invokeai/frontend/web/src/features/system/components/Console.tsx +++ b/invokeai/frontend/web/src/features/system/components/Console.tsx @@ -1,6 +1,7 @@ -import { IconButton, Tooltip } from '@chakra-ui/react'; +import { Flex, Text, Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIIconButton from 'common/components/IAIIconButton'; import { errorSeen, setShouldShowLogViewer, @@ -105,23 +106,47 @@ const Console = () => { style={{ display: 'flex', position: 'fixed', - left: 0, + insetInlineStart: 0, bottom: 0, zIndex: 9999, }} maxHeight="90vh" > -
      + {log.map((entry, i) => { const { timestamp, message, level } = entry; + const colorScheme = level === 'info' ? 'base' : level; return ( -
      -

      {timestamp}:

      -

      {message}

      -
      + + {timestamp}: + {message} + ); })} -
      + )} {shouldShowLogViewer && ( @@ -129,14 +154,18 @@ const Console = () => { hasArrow label={shouldAutoscroll ? 'Autoscroll On' : 'Autoscroll Off'} > - } onClick={() => setShouldAutoscroll(!shouldAutoscroll)} + isChecked={shouldAutoscroll} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 12, + zIndex: '10000', + }} /> )} @@ -144,15 +173,18 @@ const Console = () => { hasArrow label={shouldShowLogViewer ? 'Hide Console' : 'Show Console'} > - : } onClick={handleClickLogViewerToggle} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 2, + zIndex: '10000', + }} + colorScheme={hasError || !wasErrorSeen ? 'error' : 'base'} /> diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss deleted file mode 100644 index afb2b1c61e..0000000000 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss +++ /dev/null @@ -1,87 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.hotkeys-modal { - width: 36rem; - max-width: 36rem; - display: grid; - padding: 1rem; - row-gap: 1rem; - font-family: Inter; - - h1 { - font-size: 1.2rem; - font-weight: bold; - } - - h2 { - font-weight: bold; - } -} - -.hotkeys-modal-button { - display: flex; - align-items: center; - justify-content: space-between; -} - -.hotkeys-modal-items { - max-height: 36rem; - overflow-y: scroll; - @include HideScrollbar; - - .chakra-accordion { - display: grid; - row-gap: 0.5rem; - } - - .chakra-accordion__item { - border: none; - border-radius: 0.3rem; - background-color: var(--tab-hover-color); - } - - button { - border-radius: 0.3rem; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - } -} - -.hotkey-modal-category { - display: grid; - row-gap: 0.5rem; -} - -.hotkey-modal-item { - display: grid; - grid-template-columns: auto max-content; - justify-content: space-between; - align-items: center; - background-color: var(--background-color); - padding: 0.5rem 1rem; - border-radius: 0.3rem; - - .hotkey-info { - display: grid; - - .hotkey-title { - font-weight: bold; - } - - .hotkey-description { - font-size: 0.9rem; - color: var(--text-color-secondary); - } - } - - .hotkey-key { - font-size: 0.8rem; - font-weight: bold; - background-color: var(--background-color-light); - padding: 0.2rem 0.5rem; - border-radius: 0.3rem; - } -} diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx index 57eb512d79..62b7985a6c 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx @@ -4,9 +4,14 @@ import { AccordionIcon, AccordionItem, AccordionPanel, + Divider, + Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, + ModalHeader, ModalOverlay, useDisclosure, } from '@chakra-ui/react'; @@ -297,24 +302,20 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { }, ]; - const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => { - const hotkeyModalItemsToRender: ReactElement[] = []; - - hotkeys.forEach((hotkey, i) => { - hotkeyModalItemsToRender.push( - - ); - }); - - return ( -
      {hotkeyModalItemsToRender}
      - ); - }; + const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => ( + + {hotkeys.map((hotkey, i) => ( + + + {i < hotkeys.length - 1 && } + + ))} + + ); return ( <> @@ -323,16 +324,21 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { })} - - - -

      Keyboard Shorcuts

      -
      + + {t('hotkeys.keyboardShortcuts')} + + - -

      {t('hotkeys.appHotkeys')}

      - + + +

      {t('hotkeys.appHotkeys')}

      + +
      {renderHotkeyModalItems(appHotkeys)} @@ -340,9 +346,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - -

      {t('hotkeys.generalHotkeys')}

      - + + +

      {t('hotkeys.generalHotkeys')}

      + +
      {renderHotkeyModalItems(generalHotkeys)} @@ -350,9 +362,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - -

      {t('hotkeys.galleryHotkeys')}

      - + + +

      {t('hotkeys.galleryHotkeys')}

      + +
      {renderHotkeyModalItems(galleryHotkeys)} @@ -360,16 +378,23 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - -

      {t('hotkeys.unifiedCanvasHotkeys')}

      - + + +

      {t('hotkeys.unifiedCanvasHotkeys')}

      + +
      {renderHotkeyModalItems(unifiedCanvasHotkeys)}
      -
      + +
      diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx index 384192d3fe..b0163169fe 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx @@ -1,3 +1,5 @@ +import { Box, Grid, Text } from '@chakra-ui/react'; + interface HotkeysModalProps { hotkey: string; title: string; @@ -7,12 +9,36 @@ interface HotkeysModalProps { export default function HotkeysModalItem(props: HotkeysModalProps) { const { title, hotkey, description } = props; return ( -
      -
      -

      {title}

      - {description &&

      {description}

      } -
      -
      {hotkey}
      -
      + + + {title} + {description && ( + + {description} + + )} + + + {hotkey} + + ); } diff --git a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx new file mode 100644 index 0000000000..ac7dc39a78 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx @@ -0,0 +1,30 @@ +import { Flex, Text, Image } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import InvokeAILogoImage from 'assets/images/logo.png'; + +const InvokeAILogoComponent = () => { + const appVersion = useAppSelector( + (state: RootState) => state.system.app_version + ); + + return ( + + invoke-ai-logo + + invoke ai + + + {appVersion} + + + ); +}; + +export default InvokeAILogoComponent; diff --git a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx index 9da9c45bde..7f284ee1f6 100644 --- a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx +++ b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx @@ -5,7 +5,7 @@ import IAIButton from 'common/components/IAIButton'; import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { useTranslation } from 'react-i18next'; -import { FaLanguage } from 'react-icons/fa'; +import { FaCheck, FaLanguage } from 'react-icons/fa'; export default function LanguagePicker() { const { t, i18n } = useTranslation(); @@ -15,12 +15,15 @@ export default function LanguagePicker() { en: t('common.langEnglish', { lng: 'en' }), fr: t('common.langFrench', { lng: 'fr' }), de: t('common.langGerman', { lng: 'de' }), + he: t('common.langHebrew', { lng: 'he' }), it: t('common.langItalian', { lng: 'it' }), ja: t('common.langJapanese', { lng: 'ja' }), + ko: t('common.langKorean', { lng: 'ko' }), pl: t('common.langPolish', { lng: 'pl' }), - pt_Br: t('common.langBrPortuguese', { lng: 'pt_Br' }), + pt_BR: t('common.langBrPortuguese', { lng: 'pt_BR' }), + pt: t('common.langPortuguese', { lng: 'pt' }), ru: t('common.langRussian', { lng: 'ru' }), - zh_Cn: t('common.langSimplifiedChinese', { lng: 'zh_Cn' }), + zh_CN: t('common.langSimplifiedChinese', { lng: 'zh_CN' }), es: t('common.langSpanish', { lng: 'es' }), uk: t('common.langUkranian', { lng: 'ua' }), }; @@ -31,9 +34,13 @@ export default function LanguagePicker() { languagesToRender.push( + ) : undefined + } onClick={() => i18n.changeLanguage(lang)} - className="modal-close-btn lang-select-btn" aria-label={LANGUAGES[lang as keyof typeof LANGUAGES]} size="sm" minWidth="200px" diff --git a/invokeai/frontend/web/src/features/system/components/Modal.scss b/invokeai/frontend/web/src/features/system/components/Modal.scss deleted file mode 100644 index 7c97221c6b..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Modal.scss +++ /dev/null @@ -1,11 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.modal { - background-color: var(--background-color-secondary); - color: var(--text-color); - font-family: Inter; -} - -.modal-close-btn { - @include BaseButton; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx index 933b3d925e..8e0cfb2802 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx @@ -71,7 +71,7 @@ export default function AddCheckpointModel() { const [addManually, setAddmanually] = React.useState(false); return ( - <> + } /> @@ -99,7 +99,7 @@ export default function AddCheckpointModel() { > {({ handleSubmit, errors, touched }) => (
      - + {t('modelManager.manual')} @@ -323,6 +323,6 @@ export default function AddCheckpointModel() { )} )} - + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx index a0ba19a075..82cc609879 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx @@ -28,12 +28,14 @@ function FormItemWrapper({ }) { return ( {children} @@ -95,7 +97,7 @@ export default function AddDiffusersModel() { position="absolute" zIndex={1} size="sm" - right={12} + insetInlineEnd={12} top={3} icon={} /> @@ -105,7 +107,7 @@ export default function AddDiffusersModel() { > {({ handleSubmit, errors, touched }) => ( - + {/* Name */} {t('modelManager.formMessageDiffusersModelLocationDesc')} @@ -230,9 +234,11 @@ export default function AddDiffusersModel() { {t('modelManager.formMessageDiffusersVAELocation')} {t('modelManager.formMessageDiffusersVAELocationDesc')} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss deleted file mode 100644 index f8144cd4f8..0000000000 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss +++ /dev/null @@ -1,16 +0,0 @@ -.add-model-modal { - display: flex; -} - -.add-model-modal-body { - display: flex; - flex-direction: column; - row-gap: 1rem; - padding-bottom: 2rem; -} - -.add-model-form { - display: flex; - flex-direction: column; - row-gap: 0.5rem; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx index 269577227f..c6bb802622 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx @@ -1,9 +1,11 @@ import { + Button, Flex, Modal, ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Text, @@ -33,16 +35,11 @@ function AddModelBox({ {text} @@ -71,10 +68,9 @@ export default function AddModel() { aria-label={t('modelManager.addNewModel')} tooltip={t('modelManager.addNewModel')} onClick={onOpen} - className="modal-close-btn" size="sm" > - + {t('modelManager.addNew')} @@ -87,16 +83,12 @@ export default function AddModel() { closeOnOverlayClick={false} > - + {t('modelManager.addNewModel')} - - + + {addNewModelUIOption == null && ( - + dispatch(setAddNewModelUIOption('ckpt'))} @@ -110,6 +102,7 @@ export default function AddModel() { {addNewModelUIOption == 'ckpt' && } {addNewModelUIOption == 'diffusers' && } + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx index 5f58583ff0..9759125a1a 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx @@ -101,7 +101,7 @@ export default function CheckpointModelEdit() { }; return openModel ? ( - + {openModel} @@ -112,7 +112,7 @@ export default function CheckpointModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx index 59fe68a3f9..e25043b1e8 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx @@ -109,7 +109,7 @@ export default function DiffusersModelEdit() { }; return openModel ? ( - + {openModel} @@ -119,7 +119,7 @@ export default function DiffusersModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx index cd10a43856..e994900eec 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Radio, @@ -57,19 +59,19 @@ export default function MergeModels() { const [modelMergeForce, setModelMergeForce] = useState(false); - const modelOneList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelTwo && model !== modelThree) return model; - }); + const modelOneList = Object.keys(diffusersModels).filter( + (model) => model !== modelTwo && model !== modelThree + ); - const modelTwoList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelThree) return model; - }); + const modelTwoList = Object.keys(diffusersModels).filter( + (model) => model !== modelOne && model !== modelThree + ); const modelThreeList = [ - 'none', - ...Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelTwo) return model; - }), + { key: t('modelManager.none'), value: 'none' }, + ...Object.keys(diffusersModels) + .filter((model) => model !== modelOne && model !== modelTwo) + .map((model) => ({ key: model, value: model })), ]; const isProcessing = useAppSelector( @@ -96,8 +98,8 @@ export default function MergeModels() { return ( <> - - + + {t('modelManager.mergeModels')} @@ -109,183 +111,201 @@ export default function MergeModels() { closeOnOverlayClick={false} > - + {t('modelManager.mergeModels')} - - - {t('modelManager.modelMergeHeaderHelp1')} - - {t('modelManager.modelMergeHeaderHelp2')} - - - - setModelOne(e.target.value)} - /> - setModelTwo(e.target.value)} - /> - { - if (e.target.value !== 'none') { - setModelThree(e.target.value); - setModelMergeInterp('add_difference'); - } else { - setModelThree('none'); - setModelMergeInterp('weighted_sum'); - } + + + - - - setMergedModelName(e.target.value)} - /> - - - setModelMergeAlpha(v)} - withInput - withReset - handleReset={() => setModelMergeAlpha(0.5)} - withSliderMarks - sliderMarkRightOffset={-7} - /> - - {t('modelManager.modelMergeAlphaHelp')} - - - - - - {t('modelManager.interpolationType')} - - setModelMergeInterp(v)} - > - - {modelThree === 'none' ? ( - <> - weighted_sum - sigmoid - inv_sigmoid - - ) : ( - - - add_difference - - - )} - - - - - + {t('modelManager.modelMergeHeaderHelp1')} + + {t('modelManager.modelMergeHeaderHelp2')} + + - - {t('modelManager.mergedModelSaveLocation')} + setModelOne(e.target.value)} + /> + setModelTwo(e.target.value)} + /> + { + if (e.target.value !== 'none') { + setModelThree(e.target.value); + setModelMergeInterp('add_difference'); + } else { + setModelThree('none'); + setModelMergeInterp('weighted_sum'); + } + }} + /> + + + setMergedModelName(e.target.value)} + /> + + + setModelMergeAlpha(v)} + withInput + withReset + handleReset={() => setModelMergeAlpha(0.5)} + withSliderMarks + /> + + {t('modelManager.modelMergeAlphaHelp')} + + + + + + {t('modelManager.interpolationType')} - setModelMergeSaveLocType(v) - } + value={modelMergeInterp} + onChange={( + v: + | 'weighted_sum' + | 'sigmoid' + | 'inv_sigmoid' + | 'add_difference' + ) => setModelMergeInterp(v)} > - - {t('modelManager.invokeAIFolder')} - - {t('modelManager.custom')} + {modelThree === 'none' ? ( + <> + + + {t('modelManager.weightedSum')} + + + + {t('modelManager.sigmoid')} + + + + {t('modelManager.inverseSigmoid')} + + + + ) : ( + + + + {t('modelManager.addDifference')} + + + + )} - {modelMergeSaveLocType === 'custom' && ( - setModelMergeCustomSaveLoc(e.target.value)} - /> - )} + + + + {t('modelManager.mergedModelSaveLocation')} + + + setModelMergeSaveLocType(v) + } + > + + + + {t('modelManager.invokeAIFolder')} + + + + + {t('modelManager.custom')} + + + + + + {modelMergeSaveLocType === 'custom' && ( + setModelMergeCustomSaveLoc(e.target.value)} + /> + )} + + + setModelMergeForce(e.target.checked)} + fontWeight="500" + /> + + + {t('modelManager.merge')} + - - setModelMergeForce(e.target.checked)} - fontWeight="bold" - /> - - - {t('modelManager.merge')} - - + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx index 792ce03b4e..5896e634ea 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx @@ -77,7 +77,7 @@ export default function ModelConvert(props: ModelConvertProps) { retrievedModel.status === 'active' || isProcessing || !isConnected } className=" modal-close-btn" - marginRight="2rem" + marginInlineEnd={8} > 🧨 {t('modelManager.convertToDiffusers')} @@ -96,8 +96,8 @@ export default function ModelConvert(props: ModelConvertProps) { - - + + {t('modelManager.convertToDiffusersSaveLocation')} setSaveLocation(v)}> @@ -125,11 +125,7 @@ export default function ModelConvert(props: ModelConvertProps) { {saveLocation === 'custom' && ( - + {t('modelManager.customSaveLocation')} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx index 0eb07850c3..1bea1ba878 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Spinner, Text } from '@chakra-ui/react'; +import { Box, Flex, Heading, Spacer, Spinner, Text } from '@chakra-ui/react'; import IAIInput from 'common/components/IAIInput'; import IAIButton from 'common/components/IAIButton'; @@ -45,9 +45,10 @@ function ModelFilterButton({ @@ -133,23 +134,27 @@ const ModelList = () => { return searchText !== '' ? ( isSelectedFilter === 'all' ? ( - {filteredModelListItemsToRender} + {filteredModelListItemsToRender} ) : ( - {localFilteredModelListItemsToRender} + {localFilteredModelListItemsToRender} ) ) : ( - + {isSelectedFilter === 'all' && ( <> {t('modelManager.checkpointModels')} @@ -157,13 +162,16 @@ const ModelList = () => { {t('modelManager.diffusersModels')} @@ -173,13 +181,13 @@ const ModelList = () => { )} {isSelectedFilter === 'ckpt' && ( - + {ckptModelListItemsToRender} )} {isSelectedFilter === 'diffusers' && ( - + {diffusersModelListItemsToRender} )} @@ -188,15 +196,12 @@ const ModelList = () => { }, [models, searchText, t, isSelectedFilter]); return ( - - - - {t('modelManager.availableModels')} - - - - - + + + {t('modelManager.availableModels')} + + + { gap={1} maxHeight={window.innerHeight - 360} overflow="scroll" - paddingRight="1rem" + paddingInlineEnd={4} > - + setIsSelectedFilter('all')} @@ -234,7 +239,7 @@ const ModelList = () => { ) : ( diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx index 5f90df0c37..9b2b6d29f4 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx @@ -46,30 +46,37 @@ export default function ModelListItem(props: ModelListItemProps) { const statusTextColor = () => { switch (status) { case 'active': - return 'var(--status-good-color)'; + return 'ok.500'; case 'cached': - return 'var(--status-working-color)'; + return 'warning.500'; case 'not loaded': - return 'var(--text-color-secondary)'; + return 'inherit'; } }; return ( - {name} + {name} @@ -79,7 +86,6 @@ export default function ModelListItem(props: ModelListItemProps) { size="sm" onClick={handleChangeModel} isDisabled={status === 'active' || isProcessing || !isConnected} - className="modal-close-btn" > {t('modelManager.load')} @@ -90,7 +96,6 @@ export default function ModelListItem(props: ModelListItemProps) { onClick={openModelHandler} aria-label="Modify Config" isDisabled={status === 'active' || isProcessing || !isConnected} - className=" modal-close-btn" /> } > - +

      {t('modelManager.deleteMsg1')}

      -

      - {t('modelManager.deleteMsg2')} -

      +

      {t('modelManager.deleteMsg2')}

      diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx index def4afe6b6..6d9edf0d89 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, useDisclosure, @@ -53,19 +55,20 @@ export default function ModelManagerModal({ size="6xl" > - - - - {t('modelManager.modelManager')} - - - - {openModel && model_list[openModel]['format'] === 'diffusers' ? ( - - ) : ( - - )} - + + + {t('modelManager.modelManager')} + + + + {openModel && model_list[openModel]['format'] === 'diffusers' ? ( + + ) : ( + + )} + + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx index 08834eb91b..bccf690a63 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx @@ -4,12 +4,13 @@ import IAIIconButton from 'common/components/IAIIconButton'; import React from 'react'; import { - Box, + Badge, Flex, FormControl, HStack, Radio, RadioGroup, + Spacer, Text, VStack, } from '@chakra-ui/react'; @@ -18,8 +19,7 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { systemSelector } from 'features/system/store/systemSelectors'; import { useTranslation } from 'react-i18next'; -import { FaPlus } from 'react-icons/fa'; -import { MdFindInPage } from 'react-icons/md'; +import { FaPlus, FaSearch } from 'react-icons/fa'; import { addNewModel, searchForModels } from 'app/socketio/actions'; import { @@ -48,26 +48,6 @@ const existingModelsSelector = createSelector([systemSelector], (system) => { return existingModels; }); -function ModelExistsTag() { - const { t } = useTranslation(); - return ( - - {t('modelManager.modelExists')} - - ); -} - interface SearchModelEntry { model: FoundModel; modelsToAdd: string[]; @@ -79,6 +59,7 @@ function SearchModelEntry({ modelsToAdd, setModelsToAdd, }: SearchModelEntry) { + const { t } = useTranslation(); const existingModels = useAppSelector(existingModelsSelector); const foundModelsChangeHandler = (e: ChangeEvent) => { @@ -90,33 +71,34 @@ function SearchModelEntry({ }; return ( - - {existingModels.includes(model.location) ? : null} - - -

      {model.name}

      -

      {model.location}

      -
      - + +
      -
      + paddingX={4} + paddingY={2} + borderRadius={4} + > + + {model.name}
      } + isChecked={modelsToAdd.includes(model.name)} + isDisabled={existingModels.includes(model.location)} + onChange={foundModelsChangeHandler} + > + {existingModels.includes(model.location) && ( + {t('modelManager.modelExists')} + )} +
      + + {model.location} + +
      +
      ); } @@ -243,36 +225,38 @@ export default function SearchModels() { <> {searchFolder ? ( -

      - {t('modelManager.checkpointFolder')} -

      -

      - {searchFolder} -

      + + {t('modelManager.checkpointFolder')} + + {searchFolder} +
      + } - position="absolute" - right={16} fontSize={18} disabled={isProcessing} onClick={() => dispatch(searchForModels(searchFolder))} @@ -280,8 +264,6 @@ export default function SearchModels() { } - position="absolute" - right={5} onClick={resetSearchModelHandler} />
      @@ -294,7 +276,7 @@ export default function SearchModels() { > {({ handleSubmit }) => ( - + - } + } aria-label={t('modelManager.findModels')} tooltip={t('modelManager.findModels')} type="submit" disabled={isProcessing} - /> + > + {t('modelManager.findModels')} + )} )} {foundModels && ( - +

      {t('modelManager.modelsFound')}: {foundModels.length} @@ -328,8 +312,8 @@ export default function SearchModels() { {t('modelManager.selected')}: {modelsToAdd.length}

      - - + + 0 ? 'var(--accent-color) !important' : '' - } + colorScheme="accent" > {t('modelManager.addSelected')} - - Pick Model Type: + + {t('modelManager.pickModelType')} - {t('modelManager.v1')} - {t('modelManager.v2')} - - {t('modelManager.inpainting')} + + {t('modelManager.v1')} + + + {t('modelManager.v2')} + + + {t('modelManager.inpainting')} + + + {t('modelManager.customConfig')} - {t('modelManager.customConfig')} {modelType === 'custom' && ( - + {t('modelManager.pathToCustomConfig')} { if (e.target.value !== '') setPathToConfig(e.target.value); }} - width="42.5rem" + width="full" /> )} {foundModels.length > 0 ? ( - modelsToAdd.length === 0 && ( - - {t('modelManager.selectAndAdd')} - - ) + renderFoundModels() ) : ( {t('modelManager.noModelsFound')} )} - - {renderFoundModels()} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx index 7c06604382..ab37213a00 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx @@ -33,11 +33,11 @@ const ModelSelect = () => { return ( { ); }; diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss deleted file mode 100644 index 53b4766c95..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss +++ /dev/null @@ -1,43 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.settings-modal { - max-height: 36rem; - font-family: Inter; - - .settings-modal-content { - display: grid; - row-gap: 2rem; - overflow-y: scroll; - } - - .settings-modal-header { - font-weight: bold; - } - - .settings-modal-items { - display: grid; - row-gap: 0.5rem; - - .settings-modal-item { - display: grid; - grid-auto-flow: column; - background-color: var(--background-color); - padding: 0.4rem 1rem; - border-radius: 0.5rem; - align-items: center; - width: 100%; - } - } - - .settings-modal-reset { - display: grid; - row-gap: 1rem; - - button { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover) - ); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx index 3112fd6995..c203edfc37 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -1,6 +1,7 @@ import { - Button, + ChakraProps, Flex, + Grid, Heading, Modal, ModalBody, @@ -16,6 +17,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { IN_PROGRESS_IMAGE_TYPES } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISelect from 'common/components/IAISelect'; import IAISwitch from 'common/components/IAISwitch'; @@ -70,6 +72,13 @@ const selector = createSelector( } ); +const modalSectionStyles: ChakraProps['sx'] = { + flexDirection: 'column', + gap: 2, + p: 4, + bg: 'base.900', +}; + type SettingsModalProps = { /* The button to open the Settings Modal */ children: ReactElement; @@ -135,20 +144,15 @@ const SettingsModal = ({ children }: SettingsModalProps) => { - - - {t('common.settingsLabel')} - - - -
      -
      + + {t('common.settingsLabel')} + + + + { textAlign="center" /> )} -
      - ) => - dispatch(setShouldConfirmOnDelete(e.target.checked)) - } - /> - ) => - dispatch(setShouldDisplayGuides(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseSliders(e.target.checked)) - } - /> -
      + ) => + dispatch(setShouldConfirmOnDelete(e.target.checked)) + } + /> + ) => + dispatch(setShouldDisplayGuides(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseSliders(e.target.checked)) + } + /> +
      -
      -

      Developer

      - ) => - dispatch(setEnableImageDebugging(e.target.checked)) - } - /> -
      + + + Developer + + ) => + dispatch(setEnableImageDebugging(e.target.checked)) + } + /> + -
      - {t('settings.resetWebUI')} - - {t('settings.resetWebUIDesc1')} - {t('settings.resetWebUIDesc2')} -
      + + {t('settings.resetWebUI')} + + {t('settings.resetWebUI')} + + {t('settings.resetWebUIDesc1')} + {t('settings.resetWebUIDesc2')} + + - +
      @@ -244,15 +245,17 @@ const SettingsModal = ({ children }: SettingsModalProps) => { onClose={onRefreshModalClose} isCentered > - + - + + {t('settings.resetComplete')} + diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss b/invokeai/frontend/web/src/features/system/components/SiteHeader.scss deleted file mode 100644 index 59edc9a403..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss +++ /dev/null @@ -1,31 +0,0 @@ -.site-header { - display: grid; - grid-template-columns: auto max-content; -} - -.site-header-left-side { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - - img { - width: 32px; - height: 32px; - } -} - -.site-header-right-side { - display: flex; - align-items: center; - column-gap: 0.5rem; - - .lang-select-btn { - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color); - } - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx index ccbc425590..6aaa989c89 100644 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx +++ b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx @@ -1,8 +1,7 @@ -import { Flex, Link, Text } from '@chakra-ui/react'; +import { Flex, Grid, Link } from '@chakra-ui/react'; import { FaBug, FaCube, FaDiscord, FaGithub, FaKeyboard } from 'react-icons/fa'; -import InvokeAILogo from 'assets/images/logo.png'; import IAIIconButton from 'common/components/IAIIconButton'; import HotkeysModal from './HotkeysModal/HotkeysModal'; @@ -15,39 +14,21 @@ import ThemeChanger from './ThemeChanger'; import LanguagePicker from './LanguagePicker'; -import type { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; import { useTranslation } from 'react-i18next'; import { MdSettings } from 'react-icons/md'; +import InvokeAILogoComponent from './InvokeAILogoComponent'; /** * Header, includes color mode toggle, settings button, status message. */ const SiteHeader = () => { const { t } = useTranslation(); - const appVersion = useAppSelector( - (state: RootState) => state.system.app_version - ); return ( -
      -
      - invoke-ai-logo - - - invoke ai - - - {appVersion} - - -
      + + -
      + @@ -133,8 +114,8 @@ const SiteHeader = () => { icon={} /> -
      -
      + + ); }; diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss b/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss deleted file mode 100644 index 341d2fcb46..0000000000 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss +++ /dev/null @@ -1,19 +0,0 @@ -.status { - font-size: 0.8rem; - font-weight: bold; -} - -.status-good { - color: var(--status-good-color); - text-shadow: 0 0 10px var(--status-good-glow); -} - -.status-bad { - color: var(--status-bad-color); - text-shadow: 0 0 10px var(--status-bad-glow); -} - -.status-working { - color: var(--status-working-color); - text-shadow: 0 0 10px var(--status-working-glow); -} diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx index bacc199015..f47730d221 100644 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx +++ b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx @@ -37,25 +37,18 @@ const StatusIndicator = () => { const dispatch = useAppDispatch(); const { t } = useTranslation(); - let statusStyle; + let statusIdentifier; + if (isConnected && !hasError) { - statusStyle = 'status-good'; + statusIdentifier = 'ok'; } else { - statusStyle = 'status-bad'; + statusIdentifier = 'error'; } let statusMessage = currentStatus; - const intermediateStatuses = [ - t('common.statusGenerating'), - t('common.statusPreparing'), - t('common.statusSavingImage'), - t('common.statusRestoringFaces'), - t('common.statusUpscaling'), - ]; - - if (intermediateStatuses.includes(statusMessage)) { - statusStyle = 'status-working'; + if (isProcessing) { + statusIdentifier = 'working'; } if (statusMessage) @@ -86,7 +79,11 @@ const StatusIndicator = () => { {t(statusMessage as keyof typeof t)} diff --git a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx index f1597315b8..9114a9d9e1 100644 --- a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx +++ b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx @@ -1,4 +1,4 @@ -import { useColorMode, VStack } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -6,13 +6,12 @@ import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { setCurrentTheme } from 'features/ui/store/uiSlice'; import type { ReactNode } from 'react'; -import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { FaCheck, FaPalette } from 'react-icons/fa'; export default function ThemeChanger() { const { t } = useTranslation(); - const { setColorMode, colorMode } = useColorMode(); + const dispatch = useAppDispatch(); const currentTheme = useAppSelector( (state: RootState) => state.ui.currentTheme @@ -22,16 +21,9 @@ export default function ThemeChanger() { dark: t('common.darkTheme'), light: t('common.lightTheme'), green: t('common.greenTheme'), + ocean: t('common.oceanTheme'), }; - useEffect(() => { - // syncs the redux store theme to the chakra's theme on startup and when - // setCurrentTheme is dispatched - if (colorMode !== currentTheme) { - setColorMode(currentTheme); - } - }, [setColorMode, colorMode, currentTheme]); - const handleChangeTheme = (theme: string) => { dispatch(setCurrentTheme(theme)); }; @@ -42,9 +34,10 @@ export default function ThemeChanger() { Object.keys(THEMES).forEach((theme) => { themesToRender.push( : undefined} size="sm" onClick={() => handleChangeTheme(theme)} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss b/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss deleted file mode 100644 index 0208f30a7f..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss +++ /dev/null @@ -1,55 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.floating-show-hide-button { - position: absolute; - top: 50%; - transform: translate(0, -50%); - z-index: 20; - padding: 0; - background-color: red !important; - - &.left { - left: 0; - border-radius: 0 0.5rem 0.5rem 0; - } - - &.right { - right: 0; - border-radius: 0.5rem 0 0 0.5rem; - } - - @include Button( - $btn-width: 2rem, - $btn-height: 12rem, - $icon-size: 20px, - $btn-color: var(--btn-btn-base-color), - $btn-color-hover: var(--btn-btn-base-color-hover) - ); -} - -.show-hide-button-options { - position: absolute; - transform: translate(0, -50%); - z-index: 20; - min-width: 2rem; - - top: 50%; - left: calc(42px + 2rem); - - border-radius: 0 0.5rem 0.5rem 0; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - button { - border-radius: 0 0.3rem 0.3rem 0; - } -} - -.show-hide-button-gallery { - padding-left: 0.75rem; - padding-right: 0.75rem; - background-color: var(--background-color) !important; - // filter: drop-shadow(0.5rem 0px 1rem var(--floating-button-drop-shadow-color)); -} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx index 928e87f0b1..71b18a60a4 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx @@ -22,8 +22,20 @@ const FloatingGalleryButton = () => { tooltip="Show Gallery (G)" tooltipProps={{ placement: 'top' }} aria-label="Show Gallery" - styleClass="floating-show-hide-button right show-hide-button-gallery" onClick={handleShowGallery} + sx={{ + pos: 'absolute', + top: '50%', + transform: 'translate(0, -50%)', + zIndex: 31, + p: 0, + insetInlineEnd: 0, + px: 3, + h: 48, + w: 8, + borderStartEndRadius: 0, + borderEndEndRadius: 0, + }} > diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx index d9e1722f39..24928db923 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx @@ -1,3 +1,4 @@ +import { ChakraProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -15,6 +16,11 @@ import { isEqual } from 'lodash'; import { FaSlidersH } from 'react-icons/fa'; +const floatingButtonStyles: ChakraProps['sx'] = { + borderStartStartRadius: 0, + borderEndStartRadius: 0, +}; + export const floatingSelector = createSelector( [gallerySelector, uiSelector, activeTabNameSelector], (gallery: GalleryState, ui, activeTabName) => { @@ -76,22 +82,32 @@ const FloatingParametersPanelButtons = () => { }; return shouldShowParametersPanelButton ? ( -
      + {shouldShowProcessButtons && ( <> - - + + )} -
      + ) : null; }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss deleted file mode 100644 index edb307941b..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-to-image-area { - display: flex; - flex-direction: column; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.image-to-image-strength-main-option { - display: flex; - row-gap: 0.5rem !important; - - .invokeai__slider-component-label { - color: var(--text-color-secondary); - font-size: 0.9rem !important; - } -} - -.init-image-preview-header { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - - h2 { - font-weight: bold; - font-size: 0.9rem; - } -} - -.init-image-preview { - position: relative; - height: 100%; - width: 100%; - display: flex; - align-items: center; - justify-content: center; - - img { - border-radius: 0.5rem; - object-fit: contain; - position: absolute; - } -} - -.image-to-image-current-image-display { - position: relative; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx index a3c1ca824d..173985697f 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx @@ -1,33 +1,49 @@ +import { ChakraProps, Flex, Grid } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import ImageUploadButton from 'common/components/ImageUploaderButton'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; import InitImagePreview from './InitImagePreview'; +const workareaSplitViewStyle: ChakraProps['sx'] = { + flexDirection: 'column', + height: '100%', + width: '100%', + gap: 4, + + padding: 4, +}; + const ImageToImageDisplay = () => { const initialImage = useAppSelector( (state: RootState) => state.generation.initialImage ); - const { currentImage } = useAppSelector((state: RootState) => state.gallery); - const imageToImageComponent = initialImage ? ( -
      + -
      + ) : ( ); return ( -
      -
      {imageToImageComponent}
      - {currentImage && ( -
      - -
      - )} -
      + + + {imageToImageComponent} + + + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx deleted file mode 100644 index 98a6bb8ae6..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; -import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; -import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; - -import { useTranslation } from 'react-i18next'; - -export default function ImageToImageOptions() { - const { t } = useTranslation(); - const imageToImageAccordionItems = { - imageToImage: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx index 531e95f161..d5f2268cb8 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx @@ -10,19 +10,29 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; import PromptInput from 'features/parameters/components/PromptInput/PromptInput'; import InvokeOptionsPanel from 'features/ui/components/InvokeParametersPanel'; import { useTranslation } from 'react-i18next'; -import ImageToImageOptions from './ImageToImageOptions'; +import ImageToImageSettings from './ImageToImageSettings'; export default function ImageToImagePanel() { const { t } = useTranslation(); const imageToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + imageToImage: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -60,13 +70,11 @@ export default function ImageToImagePanel() { return ( - + - - ); diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx new file mode 100644 index 0000000000..fb53c7006b --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx @@ -0,0 +1,15 @@ +import { VStack } from '@chakra-ui/react'; +import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; +import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; + +import { useTranslation } from 'react-i18next'; + +export default function ImageToImageSettings() { + const { t } = useTranslation(); + return ( + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx index d8242062a6..9eb26129a7 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx @@ -1,4 +1,4 @@ -import { Image, useToast } from '@chakra-ui/react'; +import { Flex, Image, Text, useToast } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageUploaderIconButton from 'common/components/ImageUploaderIconButton'; @@ -28,22 +28,49 @@ export default function InitImagePreview() { return ( <> -
      -

      {t('parameters.initialImage')}

      + + + {t('parameters.initialImage')} + -
      + {initialImage && ( -
      + -
      + )} ); diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css new file mode 100644 index 0000000000..f43861edba --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css @@ -0,0 +1,35 @@ +.ltr-parameters-panel-transition-enter { + transform: translateX(-150%); +} + +.ltr-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-parameters-panel-transition-exit { + transform: translateX(0); +} + +.ltr-parameters-panel-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-enter { + transform: translateX(150%); +} + +.rtl-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-exit { + transform: translateX(0); +} + +.rtl-parameters-panel-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss deleted file mode 100644 index 69b9755ca8..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss +++ /dev/null @@ -1,90 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.parameters-panel-wrapper-enter { - transform: translateX(-150%); -} - -.parameters-panel-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper-exit { - transform: translateX(0); -} - -.parameters-panel-wrapper-exit-active { - transform: translateX(-150%); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper { - background-color: var(--background-color); - height: $app-content-height; - width: $options-bar-max-width; - max-width: $options-bar-max-width; - - flex-shrink: 0; - position: relative; - overflow-y: scroll; - @include HideScrollbar; - - .parameters-panel { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - height: 100%; - @include HideScrollbar; - background-color: var(--background-color); - } - - &[data-pinned='false'] { - z-index: 20; - - position: fixed; - top: 0; - left: 0; - filter: var(--floating-panel-drop-shadow); - width: calc($options-bar-max-width + 2rem); - max-width: calc($options-bar-max-width + 2rem); - height: 100%; - - .parameters-panel-margin { - margin: 1rem; - } - } - - .parameters-panel-pin-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 1rem; - right: 1rem; - z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - } - svg { - opacity: 0.5; - } - } -} - -.invoke-ai-logo-wrapper { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - padding-top: $progress-bar-thickness; - - img { - width: 32px; - height: 32px; - } - - h1 { - font-size: 1.4rem; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx index 8dcd4f4a78..e7e610df6c 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, Flex, Tooltip, Icon, useTheme } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -15,9 +15,18 @@ import { CSSTransition } from 'react-transition-group'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setParametersPanelScrollPosition } from 'features/ui/store/uiSlice'; -import InvokeAILogo from 'assets/images/logo.png'; import { isEqual } from 'lodash'; import { uiSelector } from '../store/uiSelectors'; +import { useTranslation } from 'react-i18next'; +import { + APP_CONTENT_HEIGHT, + OPTIONS_BAR_MAX_WIDTH, + PROGRESS_BAR_THICKNESS, +} from 'theme/util/constants'; +import InvokeAILogoComponent from 'features/system/components/InvokeAILogoComponent'; + +import './InvokeParametersPanel.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; type Props = { children: ReactNode }; @@ -47,6 +56,8 @@ const optionsPanelSelector = createSelector( const InvokeOptionsPanel = (props: Props) => { const dispatch = useAppDispatch(); + const { direction } = useTheme(); + const { shouldShowParametersPanel, shouldHoldParametersPanelOpen, @@ -60,6 +71,8 @@ const InvokeOptionsPanel = (props: Props) => { const { children } = props; + const { t } = useTranslation(); + // Hotkeys useHotkeys( 'o', @@ -145,11 +158,10 @@ const InvokeOptionsPanel = (props: Props) => { } unmountOnExit timeout={200} - classNames="parameters-panel-wrapper" + classNames={`${direction}-parameters-panel-transition`} > -
      { onMouseOver={ !shouldPinParametersPanel ? cancelCloseOptionsPanelTimer : undefined } - style={{ - borderRight: !shouldPinParametersPanel - ? '0.3rem solid var(--tab-list-text-inactive)' - : '', + sx={{ + borderInlineEndWidth: !shouldPinParametersPanel ? 5 : 0, + borderInlineEndStyle: 'solid', + bg: 'base.900', + borderColor: 'base.700', + height: APP_CONTENT_HEIGHT, + width: OPTIONS_BAR_MAX_WIDTH, + maxWidth: OPTIONS_BAR_MAX_WIDTH, + flexShrink: 0, + position: 'relative', + overflowY: 'scroll', + overflowX: 'hidden', + ...no_scrollbar, + ...(!shouldPinParametersPanel && { + zIndex: 20, + position: 'fixed', + top: 0, + insetInlineStart: 0, + width: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + maxWidth: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + height: '100%', + }), }} > -
      -
      + ) => { if (e.target !== optionsPanelContainerRef.current) { @@ -175,28 +204,44 @@ const InvokeOptionsPanel = (props: Props) => { !shouldPinParametersPanel && setCloseOptionsPanelTimer(); } }} + sx={{ + display: 'flex', + flexDirection: 'column', + rowGap: 2, + height: '100%', + }} > - -
      + - {shouldPinParametersPanel ? : } -
      + +
      {!shouldPinParametersPanel && ( -
      - invoke-ai-logo -

      - invoke ai -

      -
      + + + )} {children} -
      -
      -
      + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss deleted file mode 100644 index 1a113b4148..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.app-tabs { - display: grid; - grid-template-columns: min-content auto; - column-gap: 1rem; - // height: 100%; - height: $app-content-height; -} - -.app-tabs-list { - display: grid; - row-gap: 0.3rem; - grid-auto-rows: min-content; - color: var(--tab-list-text-inactive); - - button { - font-size: 0.85rem; - padding: 0.5rem; - - &:hover { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - - svg { - width: 24px; - height: 24px; - } - - &[aria-selected='true'] { - background-color: var(--tab-list-bg); - color: var(--tab-list-text); - font-weight: bold; - border-radius: 0.3rem; - border: none; - } - } -} - -.app-tabs-panels { - .app-tabs-panel { - padding: 0; - height: 100%; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx index f330fbd0ed..fb16969319 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx @@ -1,16 +1,18 @@ -import { Tab, TabPanel, TabPanels, Tabs, Tooltip } from '@chakra-ui/react'; +import { + Icon, + Tab, + TabList, + TabPanel, + TabPanels, + Tabs, + Tooltip, +} from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import NodesWIP from 'common/components/WorkInProgress/NodesWIP'; import { PostProcessingWIP } from 'common/components/WorkInProgress/PostProcessingWIP'; import TrainingWIP from 'common/components/WorkInProgress/Training'; import useUpdateTranslations from 'common/hooks/useUpdateTranslations'; -import ImageToImageIcon from 'common/icons/ImageToImageIcon'; -import NodesIcon from 'common/icons/NodesIcon'; -import PostprocessingIcon from 'common/icons/PostprocessingIcon'; -import TextToImageIcon from 'common/icons/TextToImageIcon'; -import TrainingIcon from 'common/icons/TrainingIcon'; -import UnifiedCanvasIcon from 'common/icons/UnifiedCanvasIcon'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setShouldShowGallery } from 'features/gallery/store/gallerySlice'; import Lightbox from 'features/lightbox/components/Lightbox'; @@ -23,6 +25,14 @@ import { import i18n from 'i18n'; import { ReactElement } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; +import { + MdDeviceHub, + MdFlashOn, + MdGridOn, + MdPhotoFilter, + MdPhotoLibrary, + MdTextFields, +} from 'react-icons/md'; import { activeTabIndexSelector } from '../store/uiSelectors'; import { floatingSelector } from './FloatingParametersPanelButtons'; import ImageToImageWorkarea from './ImageToImage'; @@ -37,32 +47,32 @@ export interface InvokeTabInfo { export const tabDict: Record = { txt2img: { - title: , + title: , workarea: , tooltip: 'Text To Image', }, img2img: { - title: , + title: , workarea: , tooltip: 'Image To Image', }, unifiedCanvas: { - title: , + title: , workarea: , tooltip: 'Unified Canvas', }, nodes: { - title: , + title: , workarea: , tooltip: 'Nodes', }, postprocess: { - title: , + title: , workarea: , tooltip: 'Post Processing', }, training: { - title: , + title: , workarea: , tooltip: 'Training', }, @@ -152,7 +162,7 @@ export default function InvokeTabs() { key={key} hasArrow label={tabDict[key as keyof typeof tabDict].tooltip} - placement="right" + placement="end" > {tabDict[key as keyof typeof tabDict].title} @@ -165,7 +175,7 @@ export default function InvokeTabs() { const tabPanelsToRender: ReactElement[] = []; Object.keys(tabDict).forEach((key) => { tabPanelsToRender.push( - + {tabDict[key as keyof typeof tabDict].workarea} ); @@ -176,18 +186,14 @@ export default function InvokeTabs() { return ( { dispatch(setActiveTab(index)); }} > -
      {renderTabs()}
      - - {isLightBoxOpen ? : renderTabPanels()} - + {renderTabs()} + {isLightBoxOpen ? : renderTabPanels()}
      ); } diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss deleted file mode 100644 index a3821d9a77..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss +++ /dev/null @@ -1,71 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.workarea-wrapper { - position: relative; - width: 100%; - height: 100%; - - .workarea-main { - display: flex; - column-gap: 1rem; - height: 100%; - - .workarea-children-wrapper { - position: relative; - width: 100%; - height: 100%; - } - .workarea-split-view { - width: 100%; - height: 100%; - display: grid; - grid-template-columns: 1fr 1fr; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - .workarea-split-view-left { - padding-right: 0.5rem; - } - .workarea-split-view-right { - padding-left: 0.5rem; - } - } - - .workarea-single-view { - width: 100%; - height: 100%; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - } - - .workarea-split-view-left, - .workarea-split-view-right { - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - padding: 1rem; - } - } -} -.workarea-split-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 0; - right: 0; - // z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - svg { - opacity: 1; - } - } - svg { - opacity: 0.5; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx index d3aca2dae9..0210d249cf 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, BoxProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageGallery from 'features/gallery/components/ImageGallery'; @@ -8,27 +8,20 @@ import { uiSelector, } from 'features/ui/store/uiSelectors'; import { DragEvent, ReactNode } from 'react'; -import { VscSplitHorizontal } from 'react-icons/vsc'; -import { - setDoesCanvasNeedScaling, - setInitialCanvasImage, -} from 'features/canvas/store/canvasSlice'; +import { setInitialCanvasImage } from 'features/canvas/store/canvasSlice'; import useGetImageByUuid from 'features/gallery/hooks/useGetImageByUuid'; import { lightboxSelector } from 'features/lightbox/store/lightboxSelectors'; -import { setShouldShowDualDisplay } from 'features/ui/store/uiSlice'; import { isEqual } from 'lodash'; const workareaSelector = createSelector( [uiSelector, lightboxSelector, activeTabNameSelector], (ui, lightbox, activeTabName) => { - const { shouldShowDualDisplay, shouldPinParametersPanel } = ui; + const { shouldPinParametersPanel } = ui; const { isLightboxOpen } = lightbox; return { - shouldShowDualDisplay, shouldPinParametersPanel, isLightboxOpen, - shouldShowDualDisplayButton: ['inpainting'].includes(activeTabName), activeTabName, }; }, @@ -39,29 +32,18 @@ const workareaSelector = createSelector( } ); -type InvokeWorkareaProps = { +type InvokeWorkareaProps = BoxProps & { optionsPanel: ReactNode; children: ReactNode; - styleClass?: string; }; const InvokeWorkarea = (props: InvokeWorkareaProps) => { const dispatch = useAppDispatch(); - const { optionsPanel, children, styleClass } = props; - const { - activeTabName, - shouldShowDualDisplay, - isLightboxOpen, - shouldShowDualDisplayButton, - } = useAppSelector(workareaSelector); + const { optionsPanel, children, ...rest } = props; + const { activeTabName, isLightboxOpen } = useAppSelector(workareaSelector); const getImageByUuid = useGetImageByUuid(); - const handleDualDisplay = () => { - dispatch(setShouldShowDualDisplay(!shouldShowDualDisplay)); - dispatch(setDoesCanvasNeedScaling(true)); - }; - const handleDrop = (e: DragEvent) => { const uuid = e.dataTransfer.getData('invokeai/imageUuid'); const image = getImageByUuid(uuid); @@ -74,30 +56,15 @@ const InvokeWorkarea = (props: InvokeWorkareaProps) => { }; return ( -
      -
      + + {optionsPanel} -
      + {children} - {shouldShowDualDisplayButton && ( - -
      - -
      -
      - )} -
      +
      {!isLightboxOpen && } -
      -
      + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss deleted file mode 100644 index 65cfb8a2bc..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.text-to-image-area { - padding: 1rem; - height: 100%; -} diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx index 36cd60fd36..219b70bc2d 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx @@ -1,12 +1,20 @@ +import { Box, Flex } from '@chakra-ui/react'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; const TextToImageDisplay = () => { return ( -
      -
      + + -
      -
      + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx index ee9f7ace3f..09b96be20c 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx @@ -10,7 +10,7 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,11 @@ export default function TextToImagePanel() { const { t } = useTranslation(); const textToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -59,12 +64,11 @@ export default function TextToImagePanel() { return ( - + - ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss deleted file mode 100644 index 6a99c38003..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss +++ /dev/null @@ -1,103 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.inpainting-main-area { - display: flex; - flex-direction: column; - align-items: center; - row-gap: 1rem; - width: 100%; - height: 100%; - - .inpainting-settings { - display: flex; - align-items: center; - column-gap: 0.5rem; - - svg { - transform: scale(0.9); - } - - .inpainting-buttons-group { - display: flex; - align-items: center; - column-gap: 0.5rem; - } - - .inpainting-button-dropdown { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } - - .inpainting-color-picker { - margin-left: 1rem; - } - - .inpainting-brush-options { - display: flex; - align-items: center; - column-gap: 1rem; - } - } -} - -.inpainting-canvas-area { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.inpainting-canvas-spiner { - display: flex; - align-items: center; - width: 100%; - height: 100%; -} - -.inpainting-canvas-container { - display: flex; - position: relative; - height: 100%; - width: 100%; - border-radius: 0.5rem; -} - -.inpainting-canvas-wrapper { - position: relative; -} - -.inpainting-canvas-stage { - outline: none; - border-radius: 0.5rem; - box-shadow: 0px 0px 0px 1px var(--border-color-light); - overflow: hidden; - - canvas { - outline: none; - border-radius: 0.5rem; - } -} - -.inpainting-options-btn { - min-height: 2rem; -} - -.canvas-status-text { - position: absolute; - top: 0; - left: 0; - background-color: var(--background-color); - opacity: 0.65; - display: flex; - flex-direction: column; - font-size: 0.8rem; - padding: 0.25rem; - min-width: 12rem; - border-radius: 0.25rem; - margin: 0.25rem; - pointer-events: none; -} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx index f06c1ae988..2ca4139ed0 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx @@ -1,6 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; -import { Flex } from '@chakra-ui/react'; +import { Box, Flex } from '@chakra-ui/react'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; @@ -45,21 +45,28 @@ const UnifiedCanvasDisplayBeta = () => { }, [dispatch]); return ( -
      + - + {doesCanvasNeedScaling ? : } -
      + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx index 44deea45c6..9b9310b197 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasLimitStrokesToBox from './UnifiedCanvasLimitStrokesToBox'; export default function UnifiedCanvasBaseBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx index 387495598d..1a5e42461b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasColorPicker from './UnifiedCanvasColorPicker'; export default function UnifiedCanvasBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx index f38d274189..0ff57236c2 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx @@ -49,7 +49,6 @@ export default function UnifiedCanvasBrushSize() { onChange={(newSize) => dispatch(setBrushSize(newSize))} sliderNumberInputProps={{ max: 500 }} inputReadOnly={false} - width="100px" isCompact /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index e6957a63d7..73db41d0d3 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -80,38 +80,38 @@ export default function UnifiedCanvasColorPicker() { trigger="hover" triggerComponent={ } > - + {layer === 'base' && ( dispatch(setBrushColor(newColor))} /> )} {layer === 'mask' && ( dispatch(setMaskColor(newColor))} /> )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx index 9e24e0acfb..71f41496ed 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx @@ -6,7 +6,7 @@ import UnifiedCanvasPreserveMask from './UnifiedCanvasPreserveMask'; export default function UnifiedCanvasMaskBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx index 2c5a8277db..8881c93bb1 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx @@ -5,7 +5,7 @@ import UnifiedCanvasSnapToGrid from './UnifiedCanvasSnapToGrid'; export default function UnifiedCanvasMoveSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx index 09c6f38812..4dc3778b71 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx @@ -68,7 +68,7 @@ const UnifiedCanvasSettings = () => { /> } > - + + {layer == 'base' && ['brush', 'eraser', 'colorPicker'].includes(tool) && ( )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx index 6c537d8930..4b73d28749 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx @@ -32,7 +32,7 @@ export default function UnifiedCanvasMoveTool() { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx index 93a67ad574..5880aa037b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx @@ -25,7 +25,7 @@ export default function UnifiedCanvasProcessingButtons() { }; return ( - + } onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} isDisabled={isStaging} + colorScheme="error" /> ); } diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx index 0b941dd706..82b48fe435 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx @@ -113,13 +113,13 @@ const UnifiedCanvasToolSelect = () => { const handleEraseBoundingBox = () => dispatch(addEraseRect()); return ( - + } - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -127,7 +127,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (B)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -152,7 +152,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} width="max-content" diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx index 9860bd12f7..cf41020cbb 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx @@ -23,30 +23,30 @@ const UnifiedCanvasToolbarBeta = () => { ); return ( - + - + - + - + - + - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx index 37e7e71fdb..ac7f086bea 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx @@ -1,9 +1,10 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; -import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; +import IAICanvasToolbar from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { debounce, isEqual } from 'lodash'; @@ -43,16 +44,39 @@ const UnifiedCanvasDisplay = () => { }, [dispatch]); return ( -
      -
      -
      - -
      - {doesCanvasNeedScaling ? : } -
      -
      -
      -
      + + + + + {doesCanvasNeedScaling ? : } + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx index 392648075e..97ba3f23ec 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx @@ -10,7 +10,7 @@ import SymmetryToggle from 'features/parameters/components/AdvancedParameters/Ou import SeedSettings from 'features/parameters/components/AdvancedParameters/Seed/SeedSettings'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,16 @@ export default function UnifiedCanvasPanel() { const { t } = useTranslation(); const unifiedCanvasAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + unifiedCanvasImg2Img: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -55,28 +65,14 @@ export default function UnifiedCanvasPanel() { }, }; - const unifiedCanvasImg2ImgAccordion = { - unifiedCanvasImg2Img: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - ), - }, - }; - return ( - + - - + {/* */} ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx index 49db741541..b35504a2ac 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx @@ -10,10 +10,7 @@ export default function UnifiedCanvasWorkarea() { (state: RootState) => state.ui.shouldUseCanvasBetaLayout ); return ( - } - styleClass="inpainting-workarea-overrides" - > + }> {shouldUseCanvasBetaLayout ? ( ) : ( diff --git a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts index 3bbb6c206f..d9abae23d8 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts @@ -10,7 +10,6 @@ const initialtabsState: UIState = { shouldHoldParametersPanelOpen: false, shouldPinParametersPanel: true, shouldShowParametersPanel: true, - shouldShowDualDisplay: true, shouldShowImageDetails: false, shouldUseCanvasBetaLayout: false, shouldShowExistingModelsInSearch: false, @@ -52,9 +51,6 @@ export const uiSlice = createSlice({ ) => { state.shouldHoldParametersPanelOpen = action.payload; }, - setShouldShowDualDisplay: (state, action: PayloadAction) => { - state.shouldShowDualDisplay = action.payload; - }, setShouldShowImageDetails: (state, action: PayloadAction) => { state.shouldShowImageDetails = action.payload; }, @@ -83,7 +79,6 @@ export const { setShouldHoldParametersPanelOpen, setShouldPinParametersPanel, setShouldShowParametersPanel, - setShouldShowDualDisplay, setShouldShowImageDetails, setShouldUseCanvasBetaLayout, setShouldShowExistingModelsInSearch, diff --git a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts index cd9b3817a1..5885bc3ed7 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts @@ -7,7 +7,6 @@ export interface UIState { shouldHoldParametersPanelOpen: boolean; shouldPinParametersPanel: boolean; shouldShowParametersPanel: boolean; - shouldShowDualDisplay: boolean; shouldShowImageDetails: boolean; shouldUseCanvasBetaLayout: boolean; shouldShowExistingModelsInSearch: boolean; diff --git a/invokeai/frontend/web/src/i18.d.ts b/invokeai/frontend/web/src/i18.d.ts index 61878384e6..90cee53385 100644 --- a/invokeai/frontend/web/src/i18.d.ts +++ b/invokeai/frontend/web/src/i18.d.ts @@ -1,11 +1,16 @@ import 'i18next'; +import en from '../public/locales/en.json'; + declare module 'i18next' { // Extend CustomTypeOptions interface CustomTypeOptions { // Setting Default Namespace As English defaultNS: 'en'; // Custom Types For Resources + resources: { + en: typeof en; + }; // Never Return Null returnNull: false; } diff --git a/invokeai/frontend/web/src/main.tsx b/invokeai/frontend/web/src/main.tsx index 09b99d37f6..edbca0c368 100644 --- a/invokeai/frontend/web/src/main.tsx +++ b/invokeai/frontend/web/src/main.tsx @@ -1,38 +1,36 @@ -import { ChakraProvider } from '@chakra-ui/react'; -import createCache from '@emotion/cache'; -import { CacheProvider } from '@emotion/react'; -import React from 'react'; +import React, { lazy } from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import { store } from './app/store'; import { persistor } from './persistor'; +import '@fontsource/inter/100.css'; +import '@fontsource/inter/200.css'; +import '@fontsource/inter/300.css'; +import '@fontsource/inter/400.css'; +import '@fontsource/inter/500.css'; +import '@fontsource/inter/600.css'; +import '@fontsource/inter/700.css'; +import '@fontsource/inter/800.css'; +import '@fontsource/inter/900.css'; -import App from './app/App'; import Loading from './Loading'; -export const emotionCache = createCache({ - key: 'invokeai-style-cache', - prepend: true, -}); - -// Custom Styling -import './styles/index.scss'; - // Localization import './i18n'; +const App = lazy(() => import('./app/App')); +const ThemeLocaleProvider = lazy(() => import('./app/ThemeLocaleProvider')); + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } persistor={persistor}> - - - }> - - - - + }> + + + + diff --git a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss index 93772d4ef8..ee3795eae5 100644 --- a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss +++ b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss @@ -5,36 +5,36 @@ $btn-height: 100%, $icon-size: 20px ) { - min-width: $btn-width; - min-height: $btn-height; - background-color: $btn-color !important; + // min-width: $btn-width; + // min-height: $btn-height; + // background-color: $btn-color; - &:hover { - background-color: $btn-color-hover; - } + // &:hover { + // background-color: $btn-color-hover; + // } - &:disabled { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color); - } - } + // &:disabled { + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color); + // } + // } - svg { - width: $icon-size; - height: $icon-size; - color: var(--btn-svg-color); - } + // svg { + // width: $icon-size; + // height: $icon-size; + // color: var(--btn-svg-color); + // } } @mixin BaseButton { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color-hover); + // } + // &:disabled { + // &:hover { + // background-color: var(--btn-base-color); + // } + // } } diff --git a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss index 0cf98567be..7f592ffe7c 100644 --- a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss +++ b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss @@ -1,159 +1,159 @@ -@media (max-width: 600px) { - #root { - .app-content { - padding: 5px; - .site-header { - position: fixed; - display: flex; - height: 100px; - z-index: 1; - .site-header-left-side { - position: absolute; - display: flex; - min-width: 145px; - float: left; - padding-left: 0; - } - .site-header-right-side { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; - grid-template-rows: 25px 25px 25px; - grid-template-areas: - 'logoSpace logoSpace logoSpace sampler sampler sampler' - 'status status status status status status' - 'btn1 btn2 btn3 btn4 btn5 btn6'; - row-gap: 15px; - .chakra-popover__popper { - grid-area: logoSpace; - } - > :nth-child(1).chakra-text { - grid-area: status; - width: 100%; - display: flex; - justify-content: center; - } - > :nth-child(2) { - grid-area: sampler; - display: flex; - justify-content: center; - align-items: center; - select { - width: 185px; - margin-top: 10px; - } - .chakra-select__icon-wrapper { - right: 10px; - svg { - margin-top: 10px; - } - } - } - > :nth-child(3) { - grid-area: btn1; - } - > :nth-child(4) { - grid-area: btn2; - } - > :nth-child(6) { - grid-area: btn3; - } - > :nth-child(7) { - grid-area: btn4; - } - > :nth-child(8) { - grid-area: btn5; - } - > :nth-child(9) { - grid-area: btn6; - } - } - } - .app-tabs { - position: fixed; - display: flex; - flex-direction: column; - row-gap: 15px; - max-width: 100%; - overflow: hidden; - margin-top: 120px; - .app-tabs-list { - display: flex; - justify-content: space-between; - } - .app-tabs-panels { - overflow: hidden; - overflow-y: scroll; - .workarea-main { - display: grid; - grid-template-areas: - 'workarea' - 'options' - 'gallery'; - row-gap: 15px; - .parameters-panel-wrapper { - grid-area: options; - width: 100%; - max-width: 100%; - height: inherit; - overflow: inherit; - padding: 0 10px; - .main-settings-row { - max-width: 100%; - } - .advanced-parameters-item { - max-width: 100%; - } - } - .workarea-children-wrapper { - grid-area: workarea; - .workarea-split-view { - display: flex; - flex-direction: column; - } - .current-image-options { - column-gap: 3px; - } - .text-to-image-area { - padding: 0; - } - .current-image-preview { - height: 430px; - } +// @media (max-width: 600px) { +// #root { +// .app-content { +// padding: 5px; +// .site-header { +// position: fixed; +// display: flex; +// height: 100px; +// z-index: 1; +// .site-header-left-side { +// position: absolute; +// display: flex; +// min-width: 145px; +// float: left; +// padding-left: 0; +// } +// .site-header-right-side { +// display: grid; +// grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; +// grid-template-rows: 25px 25px 25px; +// grid-template-areas: +// 'logoSpace logoSpace logoSpace sampler sampler sampler' +// 'status status status status status status' +// 'btn1 btn2 btn3 btn4 btn5 btn6'; +// row-gap: 15px; +// .chakra-popover__popper { +// grid-area: logoSpace; +// } +// > :nth-child(1).chakra-text { +// grid-area: status; +// width: 100%; +// display: flex; +// justify-content: center; +// } +// > :nth-child(2) { +// grid-area: sampler; +// display: flex; +// justify-content: center; +// align-items: center; +// select { +// width: 185px; +// margin-top: 10px; +// } +// .chakra-select__icon-wrapper { +// right: 10px; +// svg { +// margin-top: 10px; +// } +// } +// } +// > :nth-child(3) { +// grid-area: btn1; +// } +// > :nth-child(4) { +// grid-area: btn2; +// } +// > :nth-child(6) { +// grid-area: btn3; +// } +// > :nth-child(7) { +// grid-area: btn4; +// } +// > :nth-child(8) { +// grid-area: btn5; +// } +// > :nth-child(9) { +// grid-area: btn6; +// } +// } +// } +// .app-tabs { +// position: fixed; +// display: flex; +// flex-direction: column; +// row-gap: 15px; +// max-width: 100%; +// overflow: hidden; +// margin-top: 120px; +// .app-tabs-list { +// display: flex; +// justify-content: space-between; +// } +// .app-tabs-panels { +// overflow: hidden; +// overflow-y: scroll; +// .workarea-main { +// display: grid; +// grid-template-areas: +// 'workarea' +// 'options' +// 'gallery'; +// row-gap: 15px; +// .parameters-panel-wrapper { +// grid-area: options; +// width: 100%; +// max-width: 100%; +// height: inherit; +// overflow: inherit; +// padding: 0 10px; +// .main-settings-row { +// max-width: 100%; +// } +// .advanced-parameters-item { +// max-width: 100%; +// } +// } +// .workarea-children-wrapper { +// grid-area: workarea; +// .workarea-split-view { +// display: flex; +// flex-direction: column; +// } +// .current-image-options { +// column-gap: 3px; +// } +// .text-to-image-area { +// padding: 0; +// } +// .current-image-preview { +// height: 430px; +// } - //image 2 image - .image-upload-button { - row-gap: 10px; - padding: 5px; - svg { - width: 2rem; - height: 2rem; - margin-top: 10px; - } - } +// //image 2 image +// .image-upload-button { +// row-gap: 10px; +// padding: 5px; +// svg { +// width: 2rem; +// height: 2rem; +// margin-top: 10px; +// } +// } - //Cavas Painting - .inpainting-settings { - display: flex; - flex-wrap: wrap; - row-gap: 10px; - } - .inpainting-canvas-area { - .konvajs-content { - height: 400px !important; - } - } - } - .image-gallery-wrapper { - grid-area: gallery; - min-height: 400px; - .image-gallery-popup { - width: 100% !important; - max-width: 100% !important; - } - } - } - } - } - } - } -} +// //Cavas Painting +// .inpainting-settings { +// display: flex; +// flex-wrap: wrap; +// row-gap: 10px; +// } +// .inpainting-canvas-area { +// .konvajs-content { +// height: 400px !important; +// } +// } +// } +// .image-gallery-wrapper { +// grid-area: gallery; +// min-height: 400px; +// .image-gallery-popup { +// width: 100% !important; +// max-width: 100% !important; +// } +// } +// } +// } +// } +// } +// } +// } diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss index 13c8a507c1..88d2859cb3 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss @@ -1,4 +1,4 @@ -[data-theme='dark'] { +[data-theme='asdf'] { // General Colors --white: rgb(255, 255, 255); diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss index 4c4f93dfbf..67efb7e3fa 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss @@ -1,138 +1,138 @@ -[data-theme='light'] { - // General Colors - --white: rgb(255, 255, 255); +// [data-theme='light'] { +// // General Colors +// --white: rgb(255, 255, 255); - // Accent Colors - --accent-color-dim: rgb(186, 146, 0); - --accent-color: rgb(235, 185, 5); - --accent-color-bright: rgb(255, 200, 0); - --accent-color-hover: var(--accent-color-bright); +// // Accent Colors +// --accent-color-dim: rgb(186, 146, 0); +// --accent-color: rgb(235, 185, 5); +// --accent-color-bright: rgb(255, 200, 0); +// --accent-color-hover: var(--accent-color-bright); - // App Colors - --root-bg-color: rgb(255, 255, 255); - --background-color: rgb(220, 222, 224); - --background-color-light: rgb(250, 252, 254); - --background-color-secondary: rgb(208, 210, 212); +// // App Colors +// --root-bg-color: rgb(255, 255, 255); +// --background-color: rgb(220, 222, 224); +// --background-color-light: rgb(250, 252, 254); +// --background-color-secondary: rgb(208, 210, 212); - --text-color: rgb(0, 0, 0); - --text-color-secondary: rgb(40, 40, 40); - --subtext-color: rgb(24, 24, 34); - --subtext-color-bright: rgb(142, 144, 146); +// --text-color: rgb(0, 0, 0); +// --text-color-secondary: rgb(40, 40, 40); +// --subtext-color: rgb(24, 24, 34); +// --subtext-color-bright: rgb(142, 144, 146); - --border-color: rgb(200, 200, 200); - --border-color-light: rgb(147, 147, 147); +// --border-color: rgb(200, 200, 200); +// --border-color-light: rgb(147, 147, 147); - --svg-color: rgb(50, 50, 50); +// --svg-color: rgb(50, 50, 50); - --invalid: rgb(255, 75, 75); - --invalid-secondary: rgb(120, 5, 5); +// --invalid: rgb(255, 75, 75); +// --invalid-secondary: rgb(120, 5, 5); - --destructive-color: rgb(237, 51, 51); - --destructive-color-hover: rgb(255, 55, 55); +// --destructive-color: rgb(237, 51, 51); +// --destructive-color-hover: rgb(255, 55, 55); - --warning-color: rgb(224, 142, 42); - --warning-color-hover: rgb(255, 167, 60); +// --warning-color: rgb(224, 142, 42); +// --warning-color-hover: rgb(255, 167, 60); - // Error status colors - --border-color-invalid: rgb(255, 80, 50); - --box-shadow-color-invalid: none; +// // Error status colors +// --border-color-invalid: rgb(255, 80, 50); +// --box-shadow-color-invalid: none; - // Tabs - --tab-color: rgb(202, 204, 206); - --tab-hover-color: rgb(196, 198, 200); - --tab-panel-bg: rgb(206, 208, 210); - --tab-list-bg: rgb(235, 185, 5); - --tab-list-text: rgb(0, 0, 0); - --tab-list-text-inactive: rgb(106, 108, 110); +// // Tabs +// --tab-color: rgb(202, 204, 206); +// --tab-hover-color: rgb(196, 198, 200); +// --tab-panel-bg: rgb(206, 208, 210); +// --tab-list-bg: rgb(235, 185, 5); +// --tab-list-text: rgb(0, 0, 0); +// --tab-list-text-inactive: rgb(106, 108, 110); - // Button Colors - --btn-base-color: rgb(184, 186, 188); - --btn-base-color-hover: rgb(230, 232, 234); +// // Button Colors +// --btn-base-color: rgb(184, 186, 188); +// --btn-base-color-hover: rgb(230, 232, 234); - --btn-load-more: rgb(202, 204, 206); - --btn-load-more-hover: rgb(178, 180, 182); - --btn-svg-color: rgb(0, 0, 0); +// --btn-load-more: rgb(202, 204, 206); +// --btn-load-more-hover: rgb(178, 180, 182); +// --btn-svg-color: rgb(0, 0, 0); - --btn-delete-image: rgb(213, 49, 49); +// --btn-delete-image: rgb(213, 49, 49); - // IAI Button Colors - --btn-checkbox-border-hover: rgb(176, 178, 182); - // Progress Bar Color - --progress-bar-color: rgb(235, 185, 5); +// // IAI Button Colors +// --btn-checkbox-border-hover: rgb(176, 178, 182); +// // Progress Bar Color +// --progress-bar-color: rgb(235, 185, 5); - // Prompt Box Colors - --prompt-bg-color: rgb(225, 227, 229); - // Switch - --switch-bg-color: rgb(178, 180, 182); - --switch-bg-active-color: rgb(235, 185, 5); +// // Prompt Box Colors +// --prompt-bg-color: rgb(225, 227, 229); +// // Switch +// --switch-bg-color: rgb(178, 180, 182); +// --switch-bg-active-color: rgb(235, 185, 5); - // Slider - --slider-color: var(--accent-color); - --slider-mark-color: rgb(0, 0, 0); +// // Slider +// --slider-color: var(--accent-color); +// --slider-mark-color: rgb(0, 0, 0); - // Resizable - --resizeable-handle-border-color: rgb(160, 162, 164); +// // Resizable +// --resizeable-handle-border-color: rgb(160, 162, 164); - // Metadata Viewer - --metadata-bg-color: rgba(230, 230, 230, 0.9); - --metadata-json-bg-color: rgba(0, 0, 0, 0.1); +// // Metadata Viewer +// --metadata-bg-color: rgba(230, 230, 230, 0.9); +// --metadata-json-bg-color: rgba(0, 0, 0, 0.1); - // Status Message - --status-good-color: rgb(21, 126, 0); - --status-good-glow: var(--background-color); - --status-working-color: rgb(235, 141, 0); - --status-working-glow: var(--background-color); - --status-bad-color: rgb(202, 0, 0); - --status-bad-glow: var(--background-color); - --notice-color: rgb(255, 71, 90); +// // Status Message +// --status-good-color: rgb(21, 126, 0); +// --status-good-glow: var(--background-color); +// --status-working-color: rgb(235, 141, 0); +// --status-working-glow: var(--background-color); +// --status-bad-color: rgb(202, 0, 0); +// --status-bad-glow: var(--background-color); +// --notice-color: rgb(255, 71, 90); - // Settings Modal - --settings-modal-bg: rgb(202, 204, 206); +// // Settings Modal +// --settings-modal-bg: rgb(202, 204, 206); - // Input - --input-checkbox-bg: rgb(167, 167, 171); - --input-checkbox-checked-bg: rgb(235, 185, 5); - --input-checkbox-checked-tick: rgb(0, 0, 0); - --input-border-color: rgb(0, 0, 0); - --input-box-shadow-color: none; +// // Input +// --input-checkbox-bg: rgb(167, 167, 171); +// --input-checkbox-checked-bg: rgb(235, 185, 5); +// --input-checkbox-checked-tick: rgb(0, 0, 0); +// --input-border-color: rgb(0, 0, 0); +// --input-box-shadow-color: none; - // Console - --error-level-info: rgb(42, 42, 42); - --error-level-warning: rgb(173, 121, 0); - --error-level-error: rgb(145, 14, 0); - --console-bg-color: rgb(220, 224, 230); - --console-icon-button-bg-color: var(--switch-bg-color); - --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); +// // Console +// --error-level-info: rgb(42, 42, 42); +// --error-level-warning: rgb(173, 121, 0); +// --error-level-error: rgb(145, 14, 0); +// --console-bg-color: rgb(220, 224, 230); +// --console-icon-button-bg-color: var(--switch-bg-color); +// --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); - // Img2Img - --img2img-img-bg-color: rgb(180, 182, 184); +// // Img2Img +// --img2img-img-bg-color: rgb(180, 182, 184); - // Gallery +// // Gallery - // Context Menus - --context-menu-bg-color: var(--background-color); - --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), - 0px 10px 20px -15px rgba(22, 23, 24, 0.2); - --context-menu-bg-color-hover: var(--background-color-secondary); +// // Context Menus +// --context-menu-bg-color: var(--background-color); +// --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), +// 0px 10px 20px -15px rgba(22, 23, 24, 0.2); +// --context-menu-bg-color-hover: var(--background-color-secondary); - // Shadows - --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); +// // Shadows +// --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); - // Canvas - --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); - --inpainting-alerts-icon-color: rgb(0, 0, 0); - --inpainting-alerts-bg-active: rgb(255, 200, 0); - --inpainting-alerts-icon-active: rgb(0, 0, 0); - --inpainting-alerts-bg-alert: var(--invalid); - --inpainting-alerts-icon-alert: rgb(0, 0, 0); +// // Canvas +// --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); +// --inpainting-alerts-icon-color: rgb(0, 0, 0); +// --inpainting-alerts-bg-active: rgb(255, 200, 0); +// --inpainting-alerts-icon-active: rgb(0, 0, 0); +// --inpainting-alerts-bg-alert: var(--invalid); +// --inpainting-alerts-icon-alert: rgb(0, 0, 0); - // Checkerboard - --checkboard-dots-color: rgb(160, 160, 172); +// // Checkerboard +// --checkboard-dots-color: rgb(160, 160, 172); - // Scrollbar - --scrollbar-color: rgb(180, 180, 184); - --scrollbar-color-hover: rgb(150, 150, 154); +// // Scrollbar +// --scrollbar-color: rgb(180, 180, 184); +// --scrollbar-color-hover: rgb(150, 150, 154); - // SubHook - --subhook-color: rgb(0, 0, 0); -} +// // SubHook +// --subhook-color: rgb(0, 0, 0); +// } diff --git a/invokeai/frontend/web/src/styles/_Animations.scss b/invokeai/frontend/web/src/styles/_Animations.scss deleted file mode 100644 index 48fbbc8425..0000000000 --- a/invokeai/frontend/web/src/styles/_Animations.scss +++ /dev/null @@ -1,20 +0,0 @@ -@keyframes slideOut { - from { - transform: translateX(10rem); - } - to { - transform: translateX(0); - } -} - -@keyframes pulse { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.1); - } - 100% { - transform: scale(1); - } -} diff --git a/invokeai/frontend/web/src/styles/_Fonts.scss b/invokeai/frontend/web/src/styles/_Fonts.scss deleted file mode 100644 index fea170026b..0000000000 --- a/invokeai/frontend/web/src/styles/_Fonts.scss +++ /dev/null @@ -1,15 +0,0 @@ -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter.ttf); - font-display: swap; - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter-Bold.ttf); - font-display: swap; - font-weight: 600; - font-style: normal; -} diff --git a/invokeai/frontend/web/src/styles/_Misc.scss b/invokeai/frontend/web/src/styles/_Misc.scss deleted file mode 100644 index 47dec4c061..0000000000 --- a/invokeai/frontend/web/src/styles/_Misc.scss +++ /dev/null @@ -1,45 +0,0 @@ -// .checkerboard { -// background-position: 0px 0px, 10px 10px; -// // background-size: 20px 20px; -// // background-image: linear-gradient( -// // 45deg, -// // #eee 25%, -// // transparent 25%, -// // transparent 75%, -// // #eee 75%, -// // #eee 100% -// // ), -// // linear-gradient(45deg, #eee 25%, white 25%, white 75%, #eee 75%, #eee 100%); -// background: radial-gradient(var(--checkboard-dots-color) 3px, transparent 1px), -// var(--background-color-secondary); -// background-size: 64px 64px; -// } - -* { - scrollbar-width: thick; /* none | auto */ - scrollbar-color: var(--scrollbar-color) transparent; -} - -*::-webkit-scrollbar { - width: 8px; // Vertical Scrollbar Width - height: 8px; // Horizontal Scrollbar Height -} - -*::-webkit-scrollbar-track { - background: transparent; -} - -*::-webkit-scrollbar-thumb { - background: var(--scrollbar-color); - border-radius: 8px; - border: calc(8px / 4) solid var(--scrollbar-color); -} - -*::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-color-hover); - border: calc(8px / 4) solid var(--scrollbar-color-hover); -} - -::-webkit-scrollbar-button { - background: transparent; -} diff --git a/invokeai/frontend/web/src/styles/index.scss b/invokeai/frontend/web/src/styles/index.scss deleted file mode 100644 index afafc17181..0000000000 --- a/invokeai/frontend/web/src/styles/index.scss +++ /dev/null @@ -1,93 +0,0 @@ -// General Imports -@use 'Fonts'; -@use 'Animations'; -@use 'Misc'; - -// Themes -@use './Themes/Colors_Dark'; -@use './Themes/Colors_Light'; -@use './Themes/Colors_Green'; - -// Component Styles - -// app -@use '../app/App.scss'; - -// system -@use '../features/system/components/SiteHeader.scss'; -@use '../features/system/components/StatusIndicator.scss'; -@use '../features/system/components/SettingsModal/SettingsModal.scss'; -@use '../features/system/components/ModelManager/AddModel.scss'; -@use '../features/system/components/HotkeysModal/HotkeysModal.scss'; -@use '../features/system/components/Console.scss'; -@use '../features/system/components/ProgressBar.scss'; - -// parameters -@use '../features/parameters/components/PromptInput/PromptInput.scss'; -@use '../features/parameters/components/ProcessButtons/ProcessButtons.scss'; -@use '../features/parameters/components/MainParameters/MainParameters.scss'; -@use '../features/parameters/components/AccordionItems/AdvancedSettings.scss'; -@use '../features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss'; - -// gallery -@use '../features/gallery/components/CurrentImageDisplay.scss'; -@use '../features/gallery/components/CurrentImageButtons.scss'; -@use '../features/gallery/components/ImageGallery.scss'; -@use '../features/gallery/components/HoverableImage.scss'; -@use '../features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss'; - -// Lightbox -@use '../features/lightbox/components/Lightbox.scss'; - -// Tabs -@use '../features/ui/components/InvokeTabs.scss'; -@use '../features/ui/components/InvokeWorkarea.scss'; -@use '../features/ui/components/InvokeParametersPanel.scss'; -@use '../features/ui/components/TextToImage/TextToImage.scss'; -@use '../features/ui/components/ImageToImage/ImageToImage.scss'; -@use '../features/ui/components/FloatingButton.scss'; -@use '../features/ui/components/UnifiedCanvas/CanvasWorkarea.scss'; - -// Component Shared -@use '../common/components/IAINumberInput.scss'; -@use '../common/components/IAIInput.scss'; -@use '../common/components/IAIIconButton.scss'; -@use '../common/components/IAIButton.scss'; -@use '../common/components/IAISwitch.scss'; -@use '../common/components/IAISelect.scss'; -@use '../common/components/IAISlider.scss'; -@use '../common/components/IAICheckbox.scss'; -@use '../common/components/IAIPopover.scss'; -@use '../common/components/IAIColorPicker.scss'; -@use '../common/components/ImageUploader.scss'; -@use '../common/components/WorkInProgress/WorkInProgress.scss'; -@use '../common/components/GuidePopover.scss'; - -// Component Shared - Radix UI -// @use 'common/components/radix-ui/IAISlider.scss'; -// @use 'common/components/radix-ui/IAITooltip.scss'; - -// Shared Styles -@use './Mixins/' as *; -@use '../features/system/components/Modal.scss'; - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -html, -body { - @include HideScrollbar; - background-color: var(--root-bg-color); - overflow: hidden; -} - -#root { - background-color: var(--root-bg-color); - color: var(--text-color); - font-family: 'Inter', Arial, Helvetica, sans-serif; -} diff --git a/invokeai/frontend/web/src/theme/colors/greenTea.ts b/invokeai/frontend/web/src/theme/colors/greenTea.ts new file mode 100644 index 0000000000..6da7fa3b82 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/greenTea.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const greenTeaThemeColors = { + base: generateColorPalette(223, 10), + accent: generateColorPalette(155, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 50), +}; diff --git a/invokeai/frontend/web/src/theme/colors/invokeAI.ts b/invokeai/frontend/web/src/theme/colors/invokeAI.ts new file mode 100644 index 0000000000..f94430e454 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/invokeAI.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from 'theme/util/generateColorPalette'; + +export const invokeAIThemeColors = { + base: generateColorPalette(225, 15), + accent: generateColorPalette(255, 67), + working: generateColorPalette(47, 67), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(113, 70), + error: generateColorPalette(0, 76), +}; diff --git a/invokeai/frontend/web/src/theme/colors/lightTheme.ts b/invokeai/frontend/web/src/theme/colors/lightTheme.ts new file mode 100644 index 0000000000..3a4d3b8747 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/lightTheme.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const lightThemeColors = { + base: generateColorPalette(223, 10, true), + accent: generateColorPalette(40, 80, true), + working: generateColorPalette(47, 68, true), + warning: generateColorPalette(28, 75, true), + ok: generateColorPalette(122, 49, true), + error: generateColorPalette(0, 50, true), +}; diff --git a/invokeai/frontend/web/src/theme/colors/oceanBlue.ts b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts new file mode 100644 index 0000000000..1f29def485 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const oceanBlueColors = { + base: generateColorPalette(220, 30), + accent: generateColorPalette(210, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 100), +}; diff --git a/invokeai/frontend/web/src/theme/components/accordion.ts b/invokeai/frontend/web/src/theme/components/accordion.ts new file mode 100644 index 0000000000..dfea0aad74 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/accordion.ts @@ -0,0 +1,63 @@ +import { accordionAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIContainer = defineStyle({ + border: 'none', + pt: 2, +}); + +const invokeAIButton = defineStyle((props) => { + const { colorScheme: c } = props; + return { + fontWeight: '600', + fontSize: 'sm', + border: 'none', + borderRadius: 'base', + bg: mode(`${c}.250`, `${c}.800`)(props), + color: mode('base.900', 'base.100')(props), + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + _expanded: { + bg: mode(`${c}.250`, `${c}.750`)(props), + borderBottomRadius: 'none', + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + }, + }; +}); + +const invokeAIPanel = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.200`, `${c}.800`)(props), + borderRadius: 'base', + borderTopRadius: 'none', + p: 4, + }; +}); + +const invokeAIIcon = defineStyle({}); + +const invokeAI = definePartsStyle((props) => ({ + container: invokeAIContainer, + button: invokeAIButton(props), + panel: invokeAIPanel(props), + icon: invokeAIIcon, +})); + +export const accordionTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/button.ts b/invokeai/frontend/web/src/theme/components/button.ts new file mode 100644 index 0000000000..a79a3d356f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/button.ts @@ -0,0 +1,58 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + const { colorScheme: c } = props; + // must specify `_disabled` colors if we override `_hover`, else hover on disabled has no styles + const _disabled = { + bg: mode(`${c}.200`, `${c}.600`)(props), + color: mode(`${c}.700`, `${c}.100`)(props), + svg: { + fill: mode(`${c}.700`, `${c}.100`)(props), + }, + }; + + return { + bg: mode(`${c}.300`, `${c}.700`)(props), + color: mode(`${c}.800`, `${c}.100`)(props), + borderRadius: 'base', + svg: { + fill: mode(`${c}.800`, `${c}.100`)(props), + }, + _disabled, + _hover: { + bg: mode(`${c}.400`, `${c}.650`)(props), + color: mode(`black`, `${c}.50`)(props), + svg: { + fill: mode(`black`, `${c}.50`)(props), + }, + _disabled, + }, + _checked: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + svg: { + fill: mode('accent.800', 'accent.100')(props), + }, + _disabled, + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + svg: { + fill: mode('accent.900', 'accent.50')(props), + }, + _disabled, + }, + }, + }; +}); + +export const buttonTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/checkbox.ts b/invokeai/frontend/web/src/theme/components/checkbox.ts new file mode 100644 index 0000000000..5bdc8a1a66 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/checkbox.ts @@ -0,0 +1,65 @@ +import { checkboxAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIControl = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + _checked: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + + _hover: { + bg: mode(`${c}.600`, `${c}.300`)(props), + borderColor: mode(`${c}.600`, `${c}.300`)(props), + }, + + _disabled: { + borderColor: mode('base.200', 'transparent')(props), + bg: mode('base.200', 'whiteAlpha.300')(props), + color: mode('base.500', 'whiteAlpha.500')(props), + }, + }, + + _indeterminate: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + }, + + _disabled: { + bg: mode('base.100', 'whiteAlpha.100')(props), + borderColor: mode('base.100', 'transparent')(props), + }, + + _focusVisible: { + boxShadow: 'outline', + }, + + _invalid: { + borderColor: mode('red.500', 'red.300')(props), + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + control: invokeAIControl(props), +})); + +export const checkboxTheme = defineMultiStyleConfig({ + variants: { + invokeAI: invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/formLabel.ts b/invokeai/frontend/web/src/theme/components/formLabel.ts new file mode 100644 index 0000000000..d49fd0a36d --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/formLabel.ts @@ -0,0 +1,27 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + return { + fontSize: 'sm', + marginEnd: 0, + mb: 1, + fontWeight: '400', + transitionProperty: 'common', + transitionDuration: 'normal', + whiteSpace: 'nowrap', + _disabled: { + opacity: 0.4, + }, + color: mode('base.600', 'base.300')(props), + }; +}); + +export const formLabelTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/input.ts b/invokeai/frontend/web/src/theme/components/input.ts new file mode 100644 index 0000000000..167da7ef28 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/input.ts @@ -0,0 +1,22 @@ +import { inputAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAI = definePartsStyle((props) => { + return { + field: getInputOutlineStyles(props), + }; +}); + +export const inputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/menu.ts b/invokeai/frontend/web/src/theme/components/menu.ts new file mode 100644 index 0000000000..597e989953 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/menu.ts @@ -0,0 +1,44 @@ +import { menuAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(menuAnatomy.keys); + +// define the base component styles +const invokeAI = definePartsStyle({ + // define the part you're going to style + button: { + // this will style the MenuButton component + fontWeight: '600', + bg: 'base.500', + color: 'base.200', + _hover: { + bg: 'base.600', + color: 'white', + }, + }, + list: { + zIndex: 9999, + bg: 'base.800', + }, + item: { + // this will style the MenuItem and MenuItemOption components + fontSize: 'sm', + bg: 'base.800', + _hover: { + bg: 'base.750', + }, + _focus: { + bg: 'base.700', + }, + }, +}); + +export const menuTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/modal.ts b/invokeai/frontend/web/src/theme/components/modal.ts new file mode 100644 index 0000000000..9e422c7704 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/modal.ts @@ -0,0 +1,55 @@ +import { modalAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIOverlay = defineStyle({ + bg: 'blackAlpha.600', +}); + +const invokeAIDialogContainer = defineStyle({}); + +const invokeAIDialog = defineStyle((props) => { + return { + bg: mode('base.300', 'base.850')(props), + maxH: '80vh', + }; +}); + +const invokeAIHeader = defineStyle((props) => { + return { + fontWeight: '600', + fontSize: 'lg', + color: mode('base.700', 'base.200')(props), + }; +}); + +const invokeAICloseButton = defineStyle({}); + +const invokeAIBody = defineStyle({ + overflowY: 'scroll', +}); + +const invokeAIFooter = defineStyle({}); + +export const invokeAI = definePartsStyle((props) => ({ + overlay: invokeAIOverlay, + dialogContainer: invokeAIDialogContainer, + dialog: invokeAIDialog(props), + header: invokeAIHeader(props), + closeButton: invokeAICloseButton, + body: invokeAIBody, + footer: invokeAIFooter, +})); + +export const modalTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { variant: 'invokeAI', size: 'lg' }, +}); diff --git a/invokeai/frontend/web/src/theme/components/numberInput.ts b/invokeai/frontend/web/src/theme/components/numberInput.ts new file mode 100644 index 0000000000..9d7e773701 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/numberInput.ts @@ -0,0 +1,71 @@ +import { numberInputAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + height: 8, + }; +}); + +const invokeAIField = defineStyle((props) => { + return { + border: 'none', + fontWeight: '600', + height: 'auto', + py: 1, + ps: 2, + pe: 6, + ...getInputOutlineStyles(props), + }; +}); + +const invokeAIStepperGroup = defineStyle((_props) => { + return { + display: 'flex', + }; +}); + +const invokeAIStepper = defineStyle((props) => { + return { + border: 'none', + // expand arrow hitbox + px: 2, + py: 0, + mx: -2, + my: 0, + + svg: { + color: mode('base.600', 'base.300')(props), + width: 2.5, + height: 2.5, + _hover: { + color: mode('base.900', 'base.50')(props), + }, + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + field: invokeAIField(props), + stepperGroup: invokeAIStepperGroup(props), + stepper: invokeAIStepper(props), +})); + +export const numberInputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/popover.ts b/invokeai/frontend/web/src/theme/components/popover.ts new file mode 100644 index 0000000000..d6b5d316ac --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/popover.ts @@ -0,0 +1,42 @@ +import { popoverAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { cssVar } from '@chakra-ui/theme-tools'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const $popperBg = cssVar('popper-bg'); +const $arrowBg = cssVar('popper-arrow-bg'); +const $arrowShadowColor = cssVar('popper-arrow-shadow-color'); + +const invokeAIContent = defineStyle((props) => { + return { + [$arrowBg.variable]: `colors.base.800`, + [$popperBg.variable]: `colors.base.800`, + [$arrowShadowColor.variable]: `colors.base.600`, + minW: 'unset', + width: 'unset', + p: 4, + borderWidth: '2px', + borderStyle: 'solid', + borderColor: mode('base.500', 'base.600')(props), + bg: mode('base.200', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + content: invokeAIContent(props), +})); + +export const popoverTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/progress.ts b/invokeai/frontend/web/src/theme/components/progress.ts new file mode 100644 index 0000000000..4d48830e06 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/progress.ts @@ -0,0 +1,40 @@ +import { progressAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIFilledTrack = defineStyle((props) => ({ + bg: mode('accent.400', 'accent.600')(props), + transition: 'width 0.2s ease-in-out', + _indeterminate: { + bgGradient: `linear(to-r, transparent 0%, ${mode( + 'accent.400', + 'accent.600' + )(props)} 50%, transparent 100%);`, + }, +})); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + filledTrack: invokeAIFilledTrack(props), + track: invokeAITrack(props), +})); + +export const progressTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/scrollbar.ts b/invokeai/frontend/web/src/theme/components/scrollbar.ts new file mode 100644 index 0000000000..5128fb1cb8 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/scrollbar.ts @@ -0,0 +1,31 @@ +export const no_scrollbar = { + '::-webkit-scrollbar': { + display: 'none', + }, + scrollbarWidth: 'none', +}; + +export const scrollbar = { + scrollbarColor: 'accent.600 transparent', + scrollbarWidth: 'thick', + '::-webkit-scrollbar': { + width: '6px', // Vertical Scrollbar Width + height: '6px', // Horizontal Scrollbar Height + }, + '::-webkit-scrollbar-track': { + background: 'transparent', + }, + '::-webkit-scrollbar-thumb': { + background: 'accent.600', + borderRadius: '8px', + borderWidth: '4px', + borderColor: 'accent.600', + }, + '::-webkit-scrollbar-thumb:hover': { + background: 'accent.500', + borderColor: 'accent.500', + }, + '::-webkit-scrollbar-button': { + background: 'transaprent', + }, +}; diff --git a/invokeai/frontend/web/src/theme/components/select.ts b/invokeai/frontend/web/src/theme/components/select.ts new file mode 100644 index 0000000000..bbb438b4d0 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/select.ts @@ -0,0 +1,35 @@ +import { selectAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIIcon = defineStyle((props) => { + return { + color: mode('base.600', 'base.300')(props), + }; +}); + +const invokeAIField = defineStyle((props) => ({ + fontWeight: '600', + ...getInputOutlineStyles(props), +})); + +const invokeAI = definePartsStyle((props) => { + return { + field: invokeAIField(props), + icon: invokeAIIcon(props), + }; +}); + +export const selectTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/slider.ts b/invokeai/frontend/web/src/theme/components/slider.ts new file mode 100644 index 0000000000..1afb188712 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/slider.ts @@ -0,0 +1,53 @@ +import { sliderAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.400')(props), + h: 1.5, + }; +}); + +const invokeAIFilledTrack = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.400`, `${c}.600`)(props), + h: 1.5, + }; +}); + +const invokeAIThumb = defineStyle((_props) => { + return { + w: 2, + h: 4, + }; +}); + +const invokeAIMark = defineStyle((props) => { + return { + fontSize: 'xs', + fontWeight: '500', + color: mode('base.800', 'base.200')(props), + mt: 2, + insetInlineStart: 'unset', + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + track: invokeAITrack(props), + filledTrack: invokeAIFilledTrack(props), + thumb: invokeAIThumb(props), + mark: invokeAIMark(props), +})); + +export const sliderTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/switch.ts b/invokeai/frontend/web/src/theme/components/switch.ts new file mode 100644 index 0000000000..e39b4257b2 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/switch.ts @@ -0,0 +1,47 @@ +import { switchAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`base.400`, `base.600`)(props), + + _focusVisible: { + boxShadow: 'none', + }, + _checked: { + bg: mode(`${c}.400`, `${c}.600`)(props), + }, + }; +}); + +const invokeAIThumb = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`${c}.50`, `${c}.50`)(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + container: {}, + track: invokeAITrack(props), + thumb: invokeAIThumb(props), +})); + +export const switchTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/tabs.ts b/invokeai/frontend/web/src/theme/components/tabs.ts new file mode 100644 index 0000000000..9cd991d8bf --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/tabs.ts @@ -0,0 +1,63 @@ +import { tabsAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + display: 'flex', + columnGap: 4, + }; +}); + +const invokeAITab = defineStyle((_props) => ({})); + +const invokeAITablist = defineStyle((props) => ({ + display: 'flex', + flexDirection: 'column', + gap: 1, + color: mode('base.500', 'base.700')(props), + button: { + fontSize: 'sm', + padding: 2, + borderRadius: 'base', + _selected: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + }, + }, + _hover: { + bg: mode('base.300', 'base.600')(props), + color: mode('base.900', 'base.50')(props), + }, + }, +})); + +const invokeAITabpanel = defineStyle((_props) => ({ + padding: 0, + height: '100%', +})); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + tab: invokeAITab(props), + tablist: invokeAITablist(props), + tabpanel: invokeAITabpanel(props), +})); + +export const tabsTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/text.ts b/invokeai/frontend/web/src/theme/components/text.ts new file mode 100644 index 0000000000..a485289366 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/text.ts @@ -0,0 +1,12 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const subtext = defineStyle((props) => ({ + color: mode('base.700', 'base.400')(props), +})); + +export const textTheme = defineStyleConfig({ + variants: { + subtext, + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/textarea.ts b/invokeai/frontend/web/src/theme/components/textarea.ts new file mode 100644 index 0000000000..85e6e37d3f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/textarea.ts @@ -0,0 +1,14 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const invokeAI = defineStyle((props) => getInputOutlineStyles(props)); + +export const textareaTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/theme.ts b/invokeai/frontend/web/src/theme/theme.ts new file mode 100644 index 0000000000..40df156cdb --- /dev/null +++ b/invokeai/frontend/web/src/theme/theme.ts @@ -0,0 +1,80 @@ +import { ThemeOverride } from '@chakra-ui/react'; +import type { StyleFunctionProps } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { invokeAIThemeColors } from './colors/invokeAI'; +import { accordionTheme } from './components/accordion'; +import { buttonTheme } from './components/button'; +import { checkboxTheme } from './components/checkbox'; +import { formLabelTheme } from './components/formLabel'; +import { inputTheme } from './components/input'; +import { menuTheme } from './components/menu'; +import { modalTheme } from './components/modal'; +import { numberInputTheme } from './components/numberInput'; +import { popoverTheme } from './components/popover'; +import { progressTheme } from './components/progress'; +import { scrollbar } from './components/scrollbar'; +import { selectTheme } from './components/select'; +import { sliderTheme } from './components/slider'; +import { switchTheme } from './components/switch'; +import { tabsTheme } from './components/tabs'; +import { textTheme } from './components/text'; +import { textareaTheme } from './components/textarea'; + +export const theme: ThemeOverride = { + config: { + initialColorMode: 'dark', + useSystemColorMode: false, + cssVarPrefix: 'invokeai', + }, + styles: { + global: (props: StyleFunctionProps) => ({ + body: { + bg: mode('base.100', 'base.900')(props), + color: mode('base.800', 'base.50')(props), + overflow: 'hidden', + }, + ...scrollbar, + }), + }, + direction: 'ltr', + fonts: { + body: `'Inter', sans-serif`, + }, + shadows: { + light: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-300)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-400)`, + ok: `0 0 7px var(--invokeai-colors-ok-600)`, + working: `0 0 7px var(--invokeai-colors-working-600)`, + error: `0 0 7px var(--invokeai-colors-error-600)`, + }, + dark: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-600)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-500)`, + ok: `0 0 7px var(--invokeai-colors-ok-400)`, + working: `0 0 7px var(--invokeai-colors-working-400)`, + error: `0 0 7px var(--invokeai-colors-error-400)`, + }, + }, + colors: { + ...invokeAIThemeColors, + }, + components: { + Button: buttonTheme, // Button and IconButton + Input: inputTheme, + Textarea: textareaTheme, + Tabs: tabsTheme, + Progress: progressTheme, + Accordion: accordionTheme, + FormLabel: formLabelTheme, + Switch: switchTheme, + NumberInput: numberInputTheme, + Select: selectTheme, + Slider: sliderTheme, + Popover: popoverTheme, + Modal: modalTheme, + Checkbox: checkboxTheme, + Menu: menuTheme, + Text: textTheme, + }, +}; diff --git a/invokeai/frontend/web/src/theme/util/constants.ts b/invokeai/frontend/web/src/theme/util/constants.ts new file mode 100644 index 0000000000..85d9185f31 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/constants.ts @@ -0,0 +1,19 @@ +// Calc Values +export const APP_CUTOFF = '0px'; +export const APP_CONTENT_HEIGHT_CUTOFF = 'calc(70px + 1rem)'; // default: 7rem +export const APP_PADDING = 4; +export const PROGRESS_BAR_THICKNESS = 1.5; +export const APP_WIDTH = `calc(100vw - ${APP_CUTOFF})`; +export const APP_HEIGHT = `calc(100vh - ${PROGRESS_BAR_THICKNESS * 4}px)`; +export const APP_CONTENT_HEIGHT = `calc(100vh - ${APP_CONTENT_HEIGHT_CUTOFF})`; +export const APP_GALLERY_HEIGHT_PINNED = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_GALLERY_HEIGHT = 'calc(100vw - 0.3rem + 5rem)'; +export const APP_GALLERY_POPOVER_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_METADATA_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 4.4rem))`; + +// do not touch ffs +export const APP_TEXT_TO_IMAGE_HEIGHT = + 'calc(100vh - 9.4375rem - 1.925rem - 1.15rem)'; + +// option bar +export const OPTIONS_BAR_MAX_WIDTH = '22.5rem'; diff --git a/invokeai/frontend/web/src/theme/util/generateColorPalette.ts b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts new file mode 100644 index 0000000000..abd7939fa1 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts @@ -0,0 +1,80 @@ +type paletteSteps = { + 0: string; + 50: string; + 100: string; + 150: string; + 200: string; + 250: string; + 300: string; + 350: string; + 400: string; + 450: string; + 500: string; + 550: string; + 600: string; + 650: string; + 700: string; + 750: string; + 800: string; + 850: string; + 900: string; + 950: string; + 1000: string; +}; + +/** + * Add two numbers together + * @param {String | Number} hue Hue of the color (0-360) - Reds 0, Greens 120, Blues 240 + * @param {String | Number} saturation Saturation of the color (0-100) + * @param {boolean} light True to generate light color palette + */ +export function generateColorPalette( + hue: string | number, + saturation: string | number, + light = false +) { + hue = String(hue); + saturation = String(saturation); + + const colorSteps = Array.from({ length: 21 }, (_, i) => i * 50); + const lightnessSteps = [ + '0', + '5', + '10', + '15', + '20', + '25', + '30', + '35', + '40', + '45', + '50', + '55', + '59', + '64', + '68', + '73', + '77', + '82', + '86', + '95', + '100', + ]; + + const darkPalette: Partial = {}; + const lightPalette: Partial = {}; + + colorSteps.forEach((colorStep, index) => { + darkPalette[ + colorStep as keyof typeof darkPalette + ] = `hsl(${hue}, ${saturation}%, ${ + lightnessSteps[colorSteps.length - 1 - index] + }%)`; + + lightPalette[ + colorStep as keyof typeof lightPalette + ] = `hsl(${hue}, ${saturation}%, ${lightnessSteps[index]}%)`; + }); + + return light ? lightPalette : darkPalette; +} diff --git a/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts new file mode 100644 index 0000000000..9550df5863 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts @@ -0,0 +1,40 @@ +import { mode, StyleFunctionProps } from '@chakra-ui/theme-tools'; + +export const getInputOutlineStyles = (props: StyleFunctionProps) => ({ + outline: 'none', + borderWidth: 2, + borderStyle: 'solid', + borderColor: mode('base.300', 'base.800')(props), + bg: mode('base.200', 'base.900')(props), + borderRadius: 'base', + color: mode('base.900', 'base.100')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('base.500', 'base.600')(props), + }, + _focus: { + borderColor: mode('accent.600', 'accent.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('accent.700', 'accent.600')(props), + }, + }, + _invalid: { + borderColor: mode('error.300', 'error.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('error.500', 'error.600')(props), + }, + }, + _disabled: { + borderColor: mode('base.300', 'base.700')(props), + bg: mode('base.400', 'base.700')(props), + color: mode('base.600', 'base.400')(props), + _hover: { + borderColor: mode('base.300', 'base.700')(props), + }, + }, + _placeholder: { + color: mode('base.600', 'base.400')(props), + }, +}); diff --git a/invokeai/frontend/web/stats.html b/invokeai/frontend/web/stats.html index 1e7823a4ff..2bb76d8f89 100644 --- a/invokeai/frontend/web/stats.html +++ b/invokeai/frontend/web/stats.html @@ -6157,7 +6157,7 @@ var drawChart = (function (exports) { - + + + - +
      diff --git a/invokeai/frontend/web/dist/locales/en.json b/invokeai/frontend/web/dist/locales/en.json index c9a3f48c47..00e1202f12 100644 --- a/invokeai/frontend/web/dist/locales/en.json +++ b/invokeai/frontend/web/dist/locales/en.json @@ -10,14 +10,18 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", + "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", + "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", + "langKorean": "한국어", "langPolish": "Polski", + "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -63,7 +67,10 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged" + "statusMergedModels": "Models Merged", + "pinOptionsPanel": "Pin Options Panel", + "loading": "Loading", + "loadingInvokeAI": "Loading Invoke AI" }, "gallery": { "generations": "Generations", @@ -82,7 +89,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shorcuts", + "keyboardShortcuts": "Keyboard Shortcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -387,13 +394,16 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum" + "weightedSum": "Weighted Sum", + "none": "none", + "addDifference": "Add Difference", + "pickModelType": "Pick Model Type" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/dist/locales/es.json b/invokeai/frontend/web/dist/locales/es.json index 2eff2e1e01..5081ab0799 100644 --- a/invokeai/frontend/web/dist/locales/es.json +++ b/invokeai/frontend/web/dist/locales/es.json @@ -15,7 +15,7 @@ "langSpanish": "Español", "nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.", "postProcessing": "Post-procesamiento", - "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador", + "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador.", "postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.", "postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.", "training": "Entrenamiento", @@ -44,7 +44,26 @@ "statusUpscaling": "Aumentando Tamaño", "statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)", "statusLoadingModel": "Cargando Modelo", - "statusModelChanged": "Modelo cambiado" + "statusModelChanged": "Modelo cambiado", + "statusMergedModels": "Modelos combinados", + "githubLabel": "Github", + "discordLabel": "Discord", + "langEnglish": "Inglés", + "langDutch": "Holandés", + "langFrench": "Francés", + "langGerman": "Alemán", + "langItalian": "Italiano", + "langArabic": "Árabe", + "langJapanese": "Japones", + "langPolish": "Polaco", + "langBrPortuguese": "Portugués brasileño", + "langRussian": "Ruso", + "langSimplifiedChinese": "Chino simplificado", + "langUkranian": "Ucraniano", + "back": "Atrás", + "statusConvertingModel": "Convertir el modelo", + "statusModelConverted": "Modelo adaptado", + "statusMergingModels": "Fusionar modelos" }, "gallery": { "generations": "Generaciones", @@ -284,16 +303,16 @@ "nameValidationMsg": "Introduce un nombre para tu modelo", "description": "Descripción", "descriptionValidationMsg": "Introduce una descripción para tu modelo", - "config": "Config", - "configValidationMsg": "Ruta del archivo de configuración del modelo", + "config": "Configurar", + "configValidationMsg": "Ruta del archivo de configuración del modelo.", "modelLocation": "Ubicación del Modelo", - "modelLocationValidationMsg": "Ruta del archivo de modelo", + "modelLocationValidationMsg": "Ruta del archivo de modelo.", "vaeLocation": "Ubicación VAE", - "vaeLocationValidationMsg": "Ruta del archivo VAE", + "vaeLocationValidationMsg": "Ruta del archivo VAE.", "width": "Ancho", - "widthValidationMsg": "Ancho predeterminado de tu modelo", + "widthValidationMsg": "Ancho predeterminado de tu modelo.", "height": "Alto", - "heightValidationMsg": "Alto predeterminado de tu modelo", + "heightValidationMsg": "Alto predeterminado de tu modelo.", "addModel": "Añadir Modelo", "updateModel": "Actualizar Modelo", "availableModels": "Modelos disponibles", @@ -320,7 +339,61 @@ "deleteModel": "Eliminar Modelo", "deleteConfig": "Eliminar Configuración", "deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?", - "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas." + "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas.", + "safetensorModels": "SafeTensors", + "addDiffuserModel": "Añadir difusores", + "inpainting": "v1 Repintado", + "repoIDValidationMsg": "Repositorio en línea de tu modelo", + "checkpointModels": "Puntos de control", + "convertToDiffusersHelpText4": "Este proceso se realiza una sola vez. Puede tardar entre 30 y 60 segundos dependiendo de las especificaciones de tu ordenador.", + "diffusersModels": "Difusores", + "addCheckpointModel": "Agregar modelo de punto de control/Modelo Safetensor", + "vaeRepoID": "Identificador del repositorio de VAE", + "vaeRepoIDValidationMsg": "Repositorio en línea de tú VAE", + "formMessageDiffusersModelLocation": "Difusores Modelo Ubicación", + "formMessageDiffusersModelLocationDesc": "Por favor, introduzca al menos uno.", + "formMessageDiffusersVAELocation": "Ubicación VAE", + "formMessageDiffusersVAELocationDesc": "Si no se proporciona, InvokeAI buscará el archivo VAE dentro de la ubicación del modelo indicada anteriormente.", + "convert": "Convertir", + "convertToDiffusers": "Convertir en difusores", + "convertToDiffusersHelpText1": "Este modelo se convertirá al formato 🧨 Difusores.", + "convertToDiffusersHelpText2": "Este proceso sustituirá su entrada del Gestor de Modelos por la versión de Difusores del mismo modelo.", + "convertToDiffusersHelpText3": "Su archivo de puntos de control en el disco NO será borrado ni modificado de ninguna manera. Puede volver a añadir su punto de control al Gestor de Modelos si lo desea.", + "convertToDiffusersHelpText5": "Asegúrese de que dispone de suficiente espacio en disco. Los modelos suelen variar entre 4 GB y 7 GB de tamaño.", + "convertToDiffusersHelpText6": "¿Desea transformar este modelo?", + "convertToDiffusersSaveLocation": "Guardar ubicación", + "v1": "v1", + "v2": "v2", + "statusConverting": "Adaptar", + "modelConverted": "Modelo adaptado", + "sameFolder": "La misma carpeta", + "invokeRoot": "Carpeta InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Ubicación personalizada para guardar", + "merge": "Fusión", + "modelsMerged": "Modelos fusionados", + "mergeModels": "Combinar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "mergedModelName": "Nombre del modelo combinado", + "alpha": "Alfa", + "interpolationType": "Tipo de interpolación", + "mergedModelSaveLocation": "Guardar ubicación", + "mergedModelCustomSaveLocation": "Ruta personalizada", + "invokeAIFolder": "Invocar carpeta de la inteligencia artificial", + "modelMergeHeaderHelp2": "Sólo se pueden fusionar difusores. Si desea fusionar un modelo de punto de control, conviértalo primero en difusores.", + "modelMergeAlphaHelp": "Alfa controla la fuerza de mezcla de los modelos. Los valores alfa más bajos reducen la influencia del segundo modelo.", + "modelMergeInterpAddDifferenceHelp": "En este modo, el Modelo 3 se sustrae primero del Modelo 2. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente.", + "ignoreMismatch": "Ignorar discrepancias entre modelos seleccionados", + "modelMergeHeaderHelp1": "Puede combinar hasta tres modelos diferentes para crear una mezcla que se adapte a sus necesidades.", + "inverseSigmoid": "Sigmoideo inverso", + "weightedSum": "Modelo de suma ponderada", + "sigmoid": "Función sigmoide", + "allModels": "Todos los modelos", + "repo_id": "Identificador del repositorio", + "pathToCustomConfig": "Ruta a la configuración personalizada", + "customConfig": "Configuración personalizada" }, "parameters": { "images": "Imágenes", @@ -380,7 +453,22 @@ "info": "Información", "deleteImage": "Eliminar Imagen", "initialImage": "Imagen Inicial", - "showOptionsPanel": "Mostrar panel de opciones" + "showOptionsPanel": "Mostrar panel de opciones", + "symmetry": "Simetría", + "vSymmetryStep": "Paso de simetría V", + "hSymmetryStep": "Paso de simetría H", + "cancel": { + "immediate": "Cancelar inmediatamente", + "schedule": "Cancelar tras la iteración actual", + "isScheduled": "Cancelando", + "setType": "Tipo de cancelación" + }, + "copyImage": "Copiar la imagen", + "general": "General", + "negativePrompts": "Preguntas negativas", + "imageToImage": "Imagen a imagen", + "denoisingStrength": "Intensidad de la eliminación del ruido", + "hiresStrength": "Alta resistencia" }, "settings": { "models": "Modelos", @@ -393,7 +481,8 @@ "resetWebUI": "Restablecer interfaz web", "resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.", "resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.", - "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla." + "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla.", + "useSlidersForAll": "Utilice controles deslizantes para todas las opciones" }, "toast": { "tempFoldersEmptied": "Directorio temporal vaciado", @@ -431,12 +520,12 @@ "feature": { "prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.", "gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.", - "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.", + "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. 'Seamless mosaico' creará patrones repetitivos en la salida. 'Alta resolución' es la generación en dos pasos con img2img: use esta configuración cuando desee una imagen más grande y más coherente sin artefactos. tomar más tiempo de lo habitual txt2img.", "seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.", "variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.", "upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.", "faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.", - "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.", + "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75", "boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.", "seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.", "infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)." diff --git a/invokeai/frontend/web/dist/locales/pt_BR.json b/invokeai/frontend/web/dist/locales/pt_BR.json index 2380f92932..fdfe2270bf 100644 --- a/invokeai/frontend/web/dist/locales/pt_BR.json +++ b/invokeai/frontend/web/dist/locales/pt_BR.json @@ -44,7 +44,26 @@ "statusUpscaling": "Redimensinando", "statusUpscalingESRGAN": "Redimensinando (ESRGAN)", "statusLoadingModel": "Carregando Modelo", - "statusModelChanged": "Modelo Alterado" + "statusModelChanged": "Modelo Alterado", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Árabe", + "langEnglish": "Inglês", + "langDutch": "Holandês", + "langFrench": "Francês", + "langGerman": "Alemão", + "langItalian": "Italiano", + "langJapanese": "Japonês", + "langPolish": "Polonês", + "langSimplifiedChinese": "Chinês", + "langUkranian": "Ucraniano", + "back": "Voltar", + "statusConvertingModel": "Convertendo Modelo", + "statusModelConverted": "Modelo Convertido", + "statusMergingModels": "Mesclando Modelos", + "statusMergedModels": "Modelos Mesclados", + "langRussian": "Russo", + "langSpanish": "Espanhol" }, "gallery": { "generations": "Gerações", @@ -237,7 +256,7 @@ "desc": "Salva a tela atual na galeria" }, "copyToClipboard": { - "title": "Copiar Para a Área de Transferência ", + "title": "Copiar para a Área de Transferência", "desc": "Copia a tela atual para a área de transferência" }, "downloadImage": { @@ -284,7 +303,7 @@ "nameValidationMsg": "Insira um nome para o seu modelo", "description": "Descrição", "descriptionValidationMsg": "Adicione uma descrição para o seu modelo", - "config": "Config", + "config": "Configuração", "configValidationMsg": "Caminho para o arquivo de configuração do seu modelo.", "modelLocation": "Localização do modelo", "modelLocationValidationMsg": "Caminho para onde seu modelo está localizado.", @@ -317,7 +336,52 @@ "deleteModel": "Excluir modelo", "deleteConfig": "Excluir Config", "deleteMsg1": "Tem certeza de que deseja excluir esta entrada do modelo de InvokeAI?", - "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar." + "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar.", + "checkpointModels": "Checkpoints", + "diffusersModels": "Diffusers", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Adicionar Modelo de Checkpoint/Safetensor", + "addDiffuserModel": "Adicionar Diffusers", + "repo_id": "Repo ID", + "vaeRepoID": "VAE Repo ID", + "vaeRepoIDValidationMsg": "Repositório Online do seu VAE", + "scanAgain": "Digitalize Novamente", + "selectAndAdd": "Selecione e Adicione Modelos Listados Abaixo", + "noModelsFound": "Nenhum Modelo Encontrado", + "formMessageDiffusersModelLocation": "Localização dos Modelos Diffusers", + "formMessageDiffusersModelLocationDesc": "Por favor entre com ao menos um.", + "formMessageDiffusersVAELocation": "Localização do VAE", + "formMessageDiffusersVAELocationDesc": "Se não provido, InvokeAI irá procurar pelo arquivo VAE dentro do local do modelo.", + "convertToDiffusers": "Converter para Diffusers", + "convertToDiffusersHelpText1": "Este modelo será convertido para o formato 🧨 Diffusers.", + "convertToDiffusersHelpText5": "Por favor, certifique-se de que você tenha espaço suficiente em disco. Os modelos geralmente variam entre 4GB e 7GB de tamanho.", + "convertToDiffusersHelpText6": "Você deseja converter este modelo?", + "convertToDiffusersSaveLocation": "Local para Salvar", + "v1": "v1", + "v2": "v2", + "inpainting": "v1 Inpainting", + "customConfig": "Configuração personalizada", + "pathToCustomConfig": "Caminho para configuração personalizada", + "convertToDiffusersHelpText3": "Seu arquivo de ponto de verificação no disco NÃO será excluído ou modificado de forma alguma. Você pode adicionar seu ponto de verificação ao Gerenciador de modelos novamente, se desejar.", + "convertToDiffusersHelpText4": "Este é um processo único. Pode levar cerca de 30 a 60s, dependendo das especificações do seu computador.", + "merge": "Mesclar", + "modelsMerged": "Modelos mesclados", + "mergeModels": "Mesclar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "statusConverting": "Convertendo", + "modelConverted": "Modelo Convertido", + "sameFolder": "Mesma pasta", + "invokeRoot": "Pasta do InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Local de salvamento personalizado", + "mergedModelName": "Nome do modelo mesclado", + "alpha": "Alpha", + "allModels": "Todos os Modelos", + "repoIDValidationMsg": "Repositório Online do seu Modelo", + "convert": "Converter", + "convertToDiffusersHelpText2": "Este processo irá substituir sua entrada de Gerenciador de Modelos por uma versão Diffusers do mesmo modelo." }, "parameters": { "images": "Imagems", @@ -442,14 +506,14 @@ "move": "Mover", "resetView": "Resetar Visualização", "mergeVisible": "Fundir Visível", - "saveToGallery": "Save To Gallery", + "saveToGallery": "Salvar na Galeria", "copyToClipboard": "Copiar para a Área de Transferência", "downloadAsImage": "Baixar Como Imagem", "undo": "Desfazer", "redo": "Refazer", "clearCanvas": "Limpar Tela", "canvasSettings": "Configurações de Tela", - "showIntermediates": "Show Intermediates", + "showIntermediates": "Mostrar Intermediários", "showGrid": "Mostrar Grade", "snapToGrid": "Encaixar na Grade", "darkenOutsideSelection": "Escurecer Seleção Externa", diff --git a/invokeai/frontend/web/dist/locales/ro.json b/invokeai/frontend/web/dist/locales/ro.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/invokeai/frontend/web/dist/locales/ro.json @@ -0,0 +1 @@ +{} diff --git a/invokeai/frontend/web/index.html b/invokeai/frontend/web/index.html index 8314e22a7d..04d81e5490 100644 --- a/invokeai/frontend/web/index.html +++ b/invokeai/frontend/web/index.html @@ -5,9 +5,16 @@ InvokeAI - A Stable Diffusion Toolkit + - +
      diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index c907a83cd9..c47042ef95 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -5,28 +5,44 @@ "scripts": { "prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky", "dev": "vite dev", - "build": "tsc && vite build", + "build": "npm run lint && vite build", "preview": "vite preview", - "madge": "madge --circular src/main.tsx", - "lint": "eslint --fix .", + "lint:madge": "madge --circular src/main.tsx", + "lint:eslint": "eslint --max-warnings=0", + "lint:prettier": "prettier --check .", + "lint:tsc": "tsc --noEmit", + "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:tsc && npm run lint:madge", + "fix": "eslint --fix . && prettier --loglevel warn --write . && tsc --noEmit", "lint-staged": "lint-staged", - "prettier": "prettier *.{json,js,ts,html} public/locales/*.json src/**/*.{ts,tsx,scss} --write --loglevel warn .", - "fmt": "npm run prettier -- --write", - "postinstall": "patch-package" + "postinstall": "patch-package && yarn run theme", + "theme": "chakra-cli tokens src/theme/theme.ts", + "theme:watch": "chakra-cli tokens src/theme/theme.ts --watch" + }, + "madge": { + "detectiveOptions": { + "ts": { + "skipTypeImports": true + }, + "tsx": { + "skipTypeImports": true + } + } + }, + "lint-staged": { + "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ + "prettier --write", + "eslint --fix" + ] }, "dependencies": { + "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.17", "@chakra-ui/react": "^2.5.1", - "@emotion/cache": "^11.10.5", + "@chakra-ui/theme-tools": "^2.0.16", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", - "@radix-ui/react-context-menu": "^2.1.1", - "@radix-ui/react-slider": "^1.1.0", - "@radix-ui/react-tooltip": "^1.0.3", "@reduxjs/toolkit": "^1.9.2", - "@types/uuid": "^9.0.0", - "@vitejs/plugin-react-swc": "^3.2.0", - "add": "^2.0.6", + "chakra-ui-contextmenu": "^1.0.5", "dateformat": "^5.0.3", "formik": "^2.2.9", "framer-motion": "^9.0.4", @@ -50,19 +66,21 @@ "react-zoom-pan-pinch": "^2.6.1", "redux-deep-persist": "^1.0.7", "redux-persist": "^6.0.0", - "socket.io": "^4.6.0", "socket.io-client": "^4.6.0", "use-image": "^1.1.0", - "uuid": "^9.0.0", - "yarn": "^1.22.19" + "uuid": "^9.0.0" }, "devDependencies": { + "@chakra-ui/cli": "^2.3.0", + "@fontsource/inter": "^4.5.15", "@types/dateformat": "^5.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "@types/react-transition-group": "^4.4.5", + "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", + "@vitejs/plugin-react-swc": "^3.2.0", "babel-plugin-transform-imports": "^2.0.0", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", @@ -76,26 +94,10 @@ "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.4", "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.3", "terser": "^5.16.4", "vite": "^4.1.2", "vite-plugin-eslint": "^1.8.1", - "vite-tsconfig-paths": "^4.0.5" - }, - "madge": { - "detectiveOptions": { - "ts": { - "skipTypeImports": true - }, - "tsx": { - "skipTypeImports": true - } - } - }, - "lint-staged": { - "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ - "npm run prettier", - "npm run lint" - ] + "vite-tsconfig-paths": "^4.0.5", + "yarn": "^1.22.19" } } diff --git a/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch new file mode 100644 index 0000000000..03db6e8238 --- /dev/null +++ b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +index 937cf0d..7dcc0c0 100644 +--- a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js ++++ b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +@@ -50,7 +50,8 @@ async function readTheme(themeFilePath) { + project: tsConfig.configFileAbsolutePath, + compilerOptions: { + module: "CommonJS", +- esModuleInterop: true ++ esModuleInterop: true, ++ jsx: 'react' + }, + transpileOnly: true, + swc: true diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index c9a3f48c47..00e1202f12 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -10,14 +10,18 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", + "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", + "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", + "langKorean": "한국어", "langPolish": "Polski", + "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -63,7 +67,10 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged" + "statusMergedModels": "Models Merged", + "pinOptionsPanel": "Pin Options Panel", + "loading": "Loading", + "loadingInvokeAI": "Loading Invoke AI" }, "gallery": { "generations": "Generations", @@ -82,7 +89,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shorcuts", + "keyboardShortcuts": "Keyboard Shortcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -387,13 +394,16 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum" + "weightedSum": "Weighted Sum", + "none": "none", + "addDifference": "Add Difference", + "pickModelType": "Pick Model Type" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/public/locales/he.json b/invokeai/frontend/web/public/locales/he.json new file mode 100644 index 0000000000..0950fb51de --- /dev/null +++ b/invokeai/frontend/web/public/locales/he.json @@ -0,0 +1,593 @@ +{ + "modelManager": { + "cannotUseSpaces": "לא ניתן להשתמש ברווחים", + "addNew": "הוסף חדש", + "vaeLocationValidationMsg": "נתיב למקום שבו ממוקם ה- VAE שלך.", + "height": "גובה", + "load": "טען", + "search": "חיפוש", + "heightValidationMsg": "גובה ברירת המחדל של המודל שלך.", + "addNewModel": "הוסף מודל חדש", + "allModels": "כל המודלים", + "checkpointModels": "נקודות ביקורת", + "diffusersModels": "מפזרים", + "safetensorModels": "טנסורים בטוחים", + "modelAdded": "מודל התווסף", + "modelUpdated": "מודל עודכן", + "modelEntryDeleted": "רשומת המודל נמחקה", + "addCheckpointModel": "הוסף נקודת ביקורת / מודל טנסור בטוח", + "addDiffuserModel": "הוסף מפזרים", + "addManually": "הוספה ידנית", + "manual": "ידני", + "name": "שם", + "description": "תיאור", + "descriptionValidationMsg": "הוסף תיאור למודל שלך", + "config": "תצורה", + "configValidationMsg": "נתיב לקובץ התצורה של המודל שלך.", + "modelLocation": "מיקום המודל", + "modelLocationValidationMsg": "נתיב למקום שבו המודל שלך ממוקם באופן מקומי.", + "repo_id": "מזהה מאגר", + "repoIDValidationMsg": "מאגר מקוון של המודל שלך", + "vaeLocation": "מיקום VAE", + "vaeRepoIDValidationMsg": "המאגר המקוון של VAE שלך", + "width": "רוחב", + "widthValidationMsg": "רוחב ברירת המחדל של המודל שלך.", + "addModel": "הוסף מודל", + "updateModel": "עדכן מודל", + "active": "פעיל", + "modelsFound": "מודלים נמצאו", + "cached": "נשמר במטמון", + "checkpointFolder": "תיקיית נקודות ביקורת", + "findModels": "מצא מודלים", + "scanAgain": "סרוק מחדש", + "selectFolder": "בחירת תיקייה", + "selected": "נבחר", + "selectAll": "בחר הכל", + "deselectAll": "ביטול בחירת הכל", + "showExisting": "הצג קיים", + "addSelected": "הוסף פריטים שנבחרו", + "modelExists": "המודל קיים", + "selectAndAdd": "בחר והוסך מודלים המפורטים להלן", + "deleteModel": "מחיקת מודל", + "deleteConfig": "מחיקת תצורה", + "formMessageDiffusersModelLocation": "מיקום מפזרי המודל", + "formMessageDiffusersModelLocationDesc": "נא להזין לפחות אחד.", + "convertToDiffusersHelpText5": "אנא ודא/י שיש לך מספיק מקום בדיסק. גדלי מודלים בדרך כלל הינם בין 4GB-7GB.", + "convertToDiffusersHelpText1": "מודל זה יומר לפורמט 🧨 המפזרים.", + "convertToDiffusersHelpText2": "תהליך זה יחליף את הרשומה של מנהל המודלים שלך בגרסת המפזרים של אותו המודל.", + "convertToDiffusersHelpText6": "האם ברצונך להמיר מודל זה?", + "convertToDiffusersSaveLocation": "שמירת מיקום", + "inpainting": "v1 צביעת תוך", + "statusConverting": "ממיר", + "modelConverted": "מודל הומר", + "sameFolder": "אותה תיקיה", + "custom": "התאמה אישית", + "merge": "מזג", + "modelsMerged": "מודלים מוזגו", + "mergeModels": "מזג מודלים", + "modelOne": "מודל 1", + "customSaveLocation": "מיקום שמירה מותאם אישית", + "alpha": "אלפא", + "mergedModelSaveLocation": "שמירת מיקום", + "mergedModelCustomSaveLocation": "נתיב מותאם אישית", + "ignoreMismatch": "התעלמות מאי-התאמות בין מודלים שנבחרו", + "modelMergeHeaderHelp1": "ניתן למזג עד שלושה מודלים שונים כדי ליצור שילוב שמתאים לצרכים שלכם.", + "modelMergeAlphaHelp": "אלפא שולט בחוזק מיזוג עבור המודלים. ערכי אלפא נמוכים יותר מובילים להשפעה נמוכה יותר של המודל השני.", + "nameValidationMsg": "הכנס שם למודל שלך", + "vaeRepoID": "מזהה מאגר ה VAE", + "modelManager": "מנהל המודלים", + "model": "מודל", + "availableModels": "מודלים זמינים", + "notLoaded": "לא נטען", + "clearCheckpointFolder": "נקה את תיקיית נקודות הביקורת", + "noModelsFound": "לא נמצאו מודלים", + "delete": "מחיקה", + "deleteMsg1": "האם אתה בטוח שברצונך למחוק רשומת מודל זו מ- InvokeAI?", + "deleteMsg2": "פעולה זו לא תמחק את קובץ נקודת הביקורת מהדיסק שלך. ניתן לקרוא אותם מחדש במידת הצורך.", + "formMessageDiffusersVAELocation": "מיקום VAE", + "formMessageDiffusersVAELocationDesc": "במידה ולא מסופק, InvokeAI תחפש את קובץ ה-VAE במיקום המודל המופיע לעיל.", + "convertToDiffusers": "המרה למפזרים", + "convert": "המרה", + "modelTwo": "מודל 2", + "modelThree": "מודל 3", + "mergedModelName": "שם מודל ממוזג", + "v1": "v1", + "v2": "v2", + "invokeRoot": "תיקיית InvokeAI", + "customConfig": "תצורה מותאמת אישית", + "pathToCustomConfig": "נתיב לתצורה מותאמת אישית", + "interpolationType": "סוג אינטרפולציה", + "invokeAIFolder": "תיקיית InvokeAI", + "sigmoid": "סיגמואיד", + "weightedSum": "סכום משוקלל", + "modelMergeHeaderHelp2": "רק מפזרים זמינים למיזוג. אם ברצונך למזג מודל של נקודת ביקורת, המר אותו תחילה למפזרים.", + "inverseSigmoid": "הפוך סיגמואיד", + "convertToDiffusersHelpText3": "קובץ נקודת הביקורת שלך בדיסק לא יימחק או ישונה בכל מקרה. אתה יכול להוסיף את נקודת הביקורת שלך למנהל המודלים שוב אם תרצה בכך.", + "convertToDiffusersHelpText4": "זהו תהליך חד פעמי בלבד. התהליך עשוי לקחת בסביבות 30-60 שניות, תלוי במפרט המחשב שלך.", + "modelMergeInterpAddDifferenceHelp": "במצב זה, מודל 3 מופחת תחילה ממודל 2. הגרסה המתקבלת משולבת עם מודל 1 עם קצב האלפא שנקבע לעיל." + }, + "common": { + "nodesDesc": "מערכת מבוססת צמתים עבור יצירת תמונות עדיין תחת פיתוח. השארו קשובים לעדכונים עבור הפיצ׳ר המדהים הזה.", + "themeLabel": "ערכת נושא", + "languagePickerLabel": "בחירת שפה", + "githubLabel": "גיטהאב", + "discordLabel": "דיסקורד", + "settingsLabel": "הגדרות", + "darkTheme": "חשוך", + "lightTheme": "מואר", + "langEnglish": "אנגלית", + "langDutch": "הולנדית", + "langArabic": "ערבית", + "langFrench": "צרפתית", + "langGerman": "גרמנית", + "langJapanese": "יפנית", + "langBrPortuguese": "פורטוגזית", + "langRussian": "רוסית", + "langSimplifiedChinese": "סינית", + "langUkranian": "אוקראינית", + "langSpanish": "ספרדית", + "text2img": "טקסט לתמונה", + "img2img": "תמונה לתמונה", + "unifiedCanvas": "קנבס מאוחד", + "nodes": "צמתים", + "postProcessing": "לאחר עיבוד", + "postProcessDesc2": "תצוגה ייעודית תשוחרר בקרוב על מנת לתמוך בתהליכים ועיבודים מורכבים.", + "postProcessDesc3": "ממשק שורת הפקודה של Invoke AI מציע תכונות שונות אחרות כולל Embiggen.", + "close": "סגירה", + "statusConnected": "מחובר", + "statusDisconnected": "מנותק", + "statusError": "שגיאה", + "statusPreparing": "בהכנה", + "statusProcessingCanceled": "עיבוד בוטל", + "statusProcessingComplete": "עיבוד הסתיים", + "statusGenerating": "מייצר", + "statusGeneratingTextToImage": "מייצר טקסט לתמונה", + "statusGeneratingImageToImage": "מייצר תמונה לתמונה", + "statusGeneratingInpainting": "מייצר ציור לתוך", + "statusGeneratingOutpainting": "מייצר ציור החוצה", + "statusIterationComplete": "איטרציה הסתיימה", + "statusRestoringFaces": "משחזר פרצופים", + "statusRestoringFacesCodeFormer": "משחזר פרצופים (CodeFormer)", + "statusUpscaling": "העלאת קנה מידה", + "statusUpscalingESRGAN": "העלאת קנה מידה (ESRGAN)", + "statusModelChanged": "מודל השתנה", + "statusConvertingModel": "ממיר מודל", + "statusModelConverted": "מודל הומר", + "statusMergingModels": "מיזוג מודלים", + "statusMergedModels": "מודלים מוזגו", + "hotkeysLabel": "מקשים חמים", + "reportBugLabel": "דווח באג", + "greenTheme": "ירוק", + "langItalian": "איטלקית", + "upload": "העלאה", + "langPolish": "פולנית", + "training": "אימון", + "load": "טעינה", + "back": "אחורה", + "statusSavingImage": "שומר תמונה", + "statusGenerationComplete": "ייצור הסתיים", + "statusRestoringFacesGFPGAN": "משחזר פרצופים (GFPGAN)", + "statusLoadingModel": "טוען מודל", + "trainingDesc2": "InvokeAI כבר תומך באימון הטמעות מותאמות אישית באמצעות היפוך טקסט באמצעות הסקריפט הראשי.", + "postProcessDesc1": "InvokeAI מציעה מגוון רחב של תכונות עיבוד שלאחר. העלאת קנה מידה של תמונה ושחזור פנים כבר זמינים בממשק המשתמש. ניתן לגשת אליהם מתפריט 'אפשרויות מתקדמות' בכרטיסיות 'טקסט לתמונה' ו'תמונה לתמונה'. ניתן גם לעבד תמונות ישירות, באמצעות לחצני הפעולה של התמונה מעל תצוגת התמונה הנוכחית או בתוך המציג.", + "trainingDesc1": "תהליך עבודה ייעודי לאימון ההטמעות ונקודות הביקורת שלך באמצעות היפוך טקסט ו-Dreambooth מממשק המשתמש." + }, + "hotkeys": { + "toggleGallery": { + "desc": "פתח וסגור את מגירת הגלריה", + "title": "הצג את הגלריה" + }, + "keyboardShortcuts": "קיצורי מקלדת", + "appHotkeys": "קיצורי אפליקציה", + "generalHotkeys": "קיצורי דרך כלליים", + "galleryHotkeys": "קיצורי דרך של הגלריה", + "unifiedCanvasHotkeys": "קיצורי דרך לקנבס המאוחד", + "invoke": { + "title": "הפעל", + "desc": "צור תמונה" + }, + "focusPrompt": { + "title": "התמקדות על הבקשה", + "desc": "התמקדות על איזור הקלדת הבקשה" + }, + "toggleOptions": { + "desc": "פתח וסגור את פאנל ההגדרות", + "title": "הצג הגדרות" + }, + "pinOptions": { + "title": "הצמד הגדרות", + "desc": "הצמד את פאנל ההגדרות" + }, + "toggleViewer": { + "title": "הצג את חלון ההצגה", + "desc": "פתח וסגור את מציג התמונות" + }, + "changeTabs": { + "title": "החלף לשוניות", + "desc": "החלף לאיזור עבודה אחר" + }, + "consoleToggle": { + "desc": "פתח וסגור את הקונסול", + "title": "הצג קונסול" + }, + "setPrompt": { + "title": "הגדרת בקשה", + "desc": "שימוש בבקשה של התמונה הנוכחית" + }, + "restoreFaces": { + "desc": "שחזור התמונה הנוכחית", + "title": "שחזור פרצופים" + }, + "upscale": { + "title": "הגדלת קנה מידה", + "desc": "הגדל את התמונה הנוכחית" + }, + "showInfo": { + "title": "הצג מידע", + "desc": "הצגת פרטי מטא-נתונים של התמונה הנוכחית" + }, + "sendToImageToImage": { + "title": "שלח לתמונה לתמונה", + "desc": "שלח תמונה נוכחית לתמונה לתמונה" + }, + "deleteImage": { + "title": "מחק תמונה", + "desc": "מחק את התמונה הנוכחית" + }, + "closePanels": { + "title": "סגור לוחות", + "desc": "סוגר לוחות פתוחים" + }, + "previousImage": { + "title": "תמונה קודמת", + "desc": "הצג את התמונה הקודמת בגלריה" + }, + "toggleGalleryPin": { + "title": "הצג את מצמיד הגלריה", + "desc": "הצמדה וביטול הצמדה של הגלריה לממשק המשתמש" + }, + "decreaseGalleryThumbSize": { + "title": "הקטנת גודל תמונת גלריה", + "desc": "מקטין את גודל התמונות הממוזערות של הגלריה" + }, + "selectBrush": { + "desc": "בוחר את מברשת הקנבס", + "title": "בחר מברשת" + }, + "selectEraser": { + "title": "בחר מחק", + "desc": "בוחר את מחק הקנבס" + }, + "decreaseBrushSize": { + "title": "הקטנת גודל המברשת", + "desc": "מקטין את גודל מברשת הקנבס/מחק" + }, + "increaseBrushSize": { + "desc": "מגדיל את גודל מברשת הקנבס/מחק", + "title": "הגדלת גודל המברשת" + }, + "decreaseBrushOpacity": { + "title": "הפחת את אטימות המברשת", + "desc": "מקטין את האטימות של מברשת הקנבס" + }, + "increaseBrushOpacity": { + "title": "הגדל את אטימות המברשת", + "desc": "מגביר את האטימות של מברשת הקנבס" + }, + "moveTool": { + "title": "כלי הזזה", + "desc": "מאפשר ניווט על קנבס" + }, + "fillBoundingBox": { + "desc": "ממלא את התיבה התוחמת בצבע מברשת", + "title": "מילוי תיבה תוחמת" + }, + "eraseBoundingBox": { + "desc": "מוחק את אזור התיבה התוחמת", + "title": "מחק תיבה תוחמת" + }, + "colorPicker": { + "title": "בחר בבורר צבעים", + "desc": "בוחר את בורר צבעי הקנבס" + }, + "toggleSnap": { + "title": "הפעל הצמדה", + "desc": "מפעיל הצמדה לרשת" + }, + "quickToggleMove": { + "title": "הפעלה מהירה להזזה", + "desc": "מפעיל זמנית את מצב ההזזה" + }, + "toggleLayer": { + "title": "הפעל שכבה", + "desc": "הפעל בחירת שכבת בסיס/מסיכה" + }, + "clearMask": { + "title": "נקה מסיכה", + "desc": "נקה את כל המסכה" + }, + "hideMask": { + "desc": "הסתרה והצגה של מסיכה", + "title": "הסתר מסיכה" + }, + "showHideBoundingBox": { + "title": "הצגה/הסתרה של תיבה תוחמת", + "desc": "הפעל תצוגה של התיבה התוחמת" + }, + "mergeVisible": { + "title": "מיזוג תוכן גלוי", + "desc": "מיזוג כל השכבות הגלויות של הקנבס" + }, + "saveToGallery": { + "title": "שמור לגלריה", + "desc": "שמור את הקנבס הנוכחי בגלריה" + }, + "copyToClipboard": { + "title": "העתק ללוח ההדבקה", + "desc": "העתק את הקנבס הנוכחי ללוח ההדבקה" + }, + "downloadImage": { + "title": "הורד תמונה", + "desc": "הורד את הקנבס הנוכחי" + }, + "undoStroke": { + "title": "בטל משיכה", + "desc": "בטל משיכת מברשת" + }, + "redoStroke": { + "title": "בצע שוב משיכה", + "desc": "ביצוע מחדש של משיכת מברשת" + }, + "resetView": { + "title": "איפוס תצוגה", + "desc": "אפס תצוגת קנבס" + }, + "previousStagingImage": { + "desc": "תמונת אזור ההערכות הקודמת", + "title": "תמונת הערכות קודמת" + }, + "nextStagingImage": { + "title": "תמנות הערכות הבאה", + "desc": "תמונת אזור ההערכות הבאה" + }, + "acceptStagingImage": { + "desc": "אשר את תמונת איזור ההערכות הנוכחית", + "title": "אשר תמונת הערכות" + }, + "cancel": { + "desc": "ביטול יצירת תמונה", + "title": "ביטול" + }, + "maximizeWorkSpace": { + "title": "מקסם את איזור העבודה", + "desc": "סגור פאנלים ומקסם את איזור העבודה" + }, + "setSeed": { + "title": "הגדר זרע", + "desc": "השתמש בזרע התמונה הנוכחית" + }, + "setParameters": { + "title": "הגדרת פרמטרים", + "desc": "שימוש בכל הפרמטרים של התמונה הנוכחית" + }, + "increaseGalleryThumbSize": { + "title": "הגדל את גודל תמונת הגלריה", + "desc": "מגדיל את התמונות הממוזערות של הגלריה" + }, + "nextImage": { + "title": "תמונה הבאה", + "desc": "הצג את התמונה הבאה בגלריה" + } + }, + "gallery": { + "uploads": "העלאות", + "galleryImageSize": "גודל תמונה", + "gallerySettings": "הגדרות גלריה", + "maintainAspectRatio": "שמור על יחס רוחב-גובה", + "autoSwitchNewImages": "החלף אוטומטית לתמונות חדשות", + "singleColumnLayout": "תצוגת עמודה אחת", + "pinGallery": "הצמד גלריה", + "allImagesLoaded": "כל התמונות נטענו", + "loadMore": "טען עוד", + "noImagesInGallery": "אין תמונות בגלריה", + "galleryImageResetSize": "איפוס גודל", + "generations": "דורות", + "showGenerations": "הצג דורות", + "showUploads": "הצג העלאות" + }, + "parameters": { + "images": "תמונות", + "steps": "צעדים", + "cfgScale": "סולם CFG", + "width": "רוחב", + "height": "גובה", + "sampler": "דוגם", + "seed": "זרע", + "imageToImage": "תמונה לתמונה", + "randomizeSeed": "זרע אקראי", + "variationAmount": "כמות וריאציה", + "seedWeights": "משקלי זרע", + "faceRestoration": "שחזור פנים", + "restoreFaces": "שחזר פנים", + "type": "סוג", + "strength": "חוזק", + "upscale": "הגדלת קנה מידה", + "upscaleImage": "הגדלת קנה מידת התמונה", + "denoisingStrength": "חוזק מנטרל הרעש", + "otherOptions": "אפשרויות אחרות", + "hiresOptim": "אופטימיזצית רזולוציה גבוהה", + "hiresStrength": "חוזק רזולוציה גבוהה", + "codeformerFidelity": "דבקות", + "seamSize": "גודל תפר", + "seamBlur": "טשטוש תפר", + "seamStrength": "חוזק תפר", + "seamSteps": "שלבי תפר", + "scaleBeforeProcessing": "שנה קנה מידה לפני עיבוד", + "scaledWidth": "קנה מידה לאחר שינוי W", + "scaledHeight": "קנה מידה לאחר שינוי H", + "infillMethod": "שיטת מילוי", + "tileSize": "גודל אריח", + "boundingBoxHeader": "תיבה תוחמת", + "seamCorrectionHeader": "תיקון תפר", + "infillScalingHeader": "מילוי וקנה מידה", + "toggleLoopback": "הפעל לולאה חוזרת", + "symmetry": "סימטריה", + "vSymmetryStep": "צעד סימטריה V", + "hSymmetryStep": "צעד סימטריה H", + "invoke": "הפעלה", + "cancel": { + "schedule": "ביטול לאחר האיטרציה הנוכחית", + "isScheduled": "מבטל", + "immediate": "ביטול מיידי", + "setType": "הגדר סוג ביטול" + }, + "negativePrompts": "בקשות שליליות", + "sendTo": "שליחה אל", + "copyImage": "העתקת תמונה", + "downloadImage": "הורדת תמונה", + "sendToImg2Img": "שליחה לתמונה לתמונה", + "sendToUnifiedCanvas": "שליחה אל קנבס מאוחד", + "openInViewer": "פתח במציג", + "closeViewer": "סגור מציג", + "usePrompt": "שימוש בבקשה", + "useSeed": "שימוש בזרע", + "useAll": "שימוש בהכל", + "useInitImg": "שימוש בתמונה ראשונית", + "info": "פרטים", + "showOptionsPanel": "הצג חלונית אפשרויות", + "shuffle": "ערבוב", + "noiseThreshold": "סף רעש", + "perlinNoise": "רעש פרלין", + "variations": "וריאציות", + "imageFit": "התאמת תמונה ראשונית לגודל הפלט", + "general": "כללי", + "upscaling": "מגדיל את קנה מידה", + "scale": "סולם", + "seamlessTiling": "ריצוף חלק", + "img2imgStrength": "חוזק תמונה לתמונה", + "initialImage": "תמונה ראשונית", + "copyImageToLink": "העתקת תמונה לקישור", + "deleteImage": "מחיקת תמונה", + "promptPlaceholder": "הקלד בקשה כאן. [אסימונים שליליים], (העלאת משקל)++ , (הורדת משקל)--, החלפה ומיזוג זמינים (ראה מסמכים)" + }, + "settings": { + "models": "מודלים", + "displayInProgress": "הצגת תמונות בתהליך", + "confirmOnDelete": "אישור בעת המחיקה", + "useCanvasBeta": "שימוש בגרסת ביתא של תצוגת הקנבס", + "useSlidersForAll": "שימוש במחוונים לכל האפשרויות", + "resetWebUI": "איפוס ממשק משתמש", + "resetWebUIDesc1": "איפוס ממשק המשתמש האינטרנטי מאפס רק את המטמון המקומי של הדפדפן של התמונות וההגדרות שנשמרו. זה לא מוחק תמונות מהדיסק.", + "resetComplete": "ממשק המשתמש אופס. יש לבצע רענון דף בכדי לטעון אותו מחדש.", + "enableImageDebugging": "הפעלת איתור באגים בתמונה", + "displayHelpIcons": "הצג סמלי עזרה", + "saveSteps": "שמירת תמונות כל n צעדים", + "resetWebUIDesc2": "אם תמונות לא מופיעות בגלריה או שמשהו אחר לא עובד, נא לנסות איפוס /או אתחול לפני שליחת תקלה ב-GitHub." + }, + "toast": { + "uploadFailed": "העלאה נכשלה", + "uploadFailedMultipleImagesDesc": "תמונות מרובות הודבקו, ניתן להעלות תמונה אחת בלבד בכל פעם", + "imageCopied": "התמונה הועתקה", + "imageLinkCopied": "קישור תמונה הועתק", + "imageNotLoadedDesc": "לא נמצאה תמונה לשליחה למודול תמונה לתמונה", + "imageSavedToGallery": "התמונה נשמרה בגלריה", + "canvasMerged": "קנבס מוזג", + "sentToImageToImage": "נשלח לתמונה לתמונה", + "sentToUnifiedCanvas": "נשלח אל קנבס מאוחד", + "parametersSet": "הגדרת פרמטרים", + "parametersNotSet": "פרמטרים לא הוגדרו", + "parametersNotSetDesc": "לא נמצאו מטא-נתונים עבור תמונה זו.", + "parametersFailedDesc": "לא ניתן לטעון תמונת התחלה.", + "seedSet": "זרע הוגדר", + "seedNotSetDesc": "לא ניתן היה למצוא זרע לתמונה זו.", + "promptNotSetDesc": "לא היתה אפשרות למצוא בקשה עבור תמונה זו.", + "metadataLoadFailed": "טעינת מטא-נתונים נכשלה", + "initialImageSet": "סט תמונה ראשוני", + "initialImageNotSet": "התמונה הראשונית לא הוגדרה", + "initialImageNotSetDesc": "לא ניתן היה לטעון את התמונה הראשונית", + "uploadFailedUnableToLoadDesc": "לא ניתן לטעון את הקובץ", + "tempFoldersEmptied": "התיקייה הזמנית רוקנה", + "downloadImageStarted": "הורדת התמונה החלה", + "imageNotLoaded": "לא נטענה תמונה", + "parametersFailed": "בעיה בטעינת פרמטרים", + "promptNotSet": "בקשה לא הוגדרה", + "upscalingFailed": "העלאת קנה המידה נכשלה", + "faceRestoreFailed": "שחזור הפנים נכשל", + "seedNotSet": "זרע לא הוגדר", + "promptSet": "בקשה הוגדרה" + }, + "tooltip": { + "feature": { + "gallery": "הגלריה מציגה יצירות מתיקיית הפלטים בעת יצירתם. ההגדרות מאוחסנות בתוך קבצים ונגישות באמצעות תפריט הקשר.", + "upscale": "השתמש ב-ESRGAN כדי להגדיל את התמונה מיד לאחר היצירה.", + "imageToImage": "תמונה לתמונה טוענת כל תמונה כראשונית, המשמשת לאחר מכן ליצירת תמונה חדשה יחד עם הבקשה. ככל שהערך גבוה יותר, כך תמונת התוצאה תשתנה יותר. ערכים מ- 0.0 עד 1.0 אפשריים, הטווח המומלץ הוא .25-.75", + "seamCorrection": "שליטה בטיפול בתפרים גלויים המתרחשים בין תמונות שנוצרו על בד הציור.", + "prompt": "זהו שדה הבקשה. הבקשה כוללת אובייקטי יצירה ומונחים סגנוניים. באפשרותך להוסיף משקל (חשיבות אסימון) גם בשורת הפקודה, אך פקודות ופרמטרים של CLI לא יפעלו.", + "variations": "נסה וריאציה עם ערך בין 0.1 ל- 1.0 כדי לשנות את התוצאה עבור זרע נתון. וריאציות מעניינות של הזרע הן בין 0.1 ל -0.3.", + "other": "אפשרויות אלה יאפשרו מצבי עיבוד חלופיים עבור ההרצה. 'ריצוף חלק' ייצור תבניות חוזרות בפלט. 'רזולוציה גבוהה' נוצר בשני שלבים עם img2img: השתמש בהגדרה זו כאשר אתה רוצה תמונה גדולה וקוהרנטית יותר ללא חפצים. פעולה זאת תקח יותר זמן מפעולת טקסט לתמונה רגילה.", + "faceCorrection": "תיקון פנים עם GFPGAN או Codeformer: האלגוריתם מזהה פרצופים בתמונה ומתקן כל פגם. ערך גבוה ישנה את התמונה יותר, וכתוצאה מכך הפרצופים יהיו אטרקטיביים יותר. Codeformer עם נאמנות גבוהה יותר משמר את התמונה המקורית על חשבון תיקון פנים חזק יותר.", + "seed": "ערך הזרע משפיע על הרעש הראשוני שממנו נוצרת התמונה. אתה יכול להשתמש בזרעים שכבר קיימים מתמונות קודמות. 'סף רעש' משמש להפחתת חפצים בערכי CFG גבוהים (נסה את טווח 0-10), ופרלין כדי להוסיף רעשי פרלין במהלך היצירה: שניהם משמשים להוספת וריאציה לתפוקות שלך.", + "infillAndScaling": "נהל שיטות מילוי (המשמשות באזורים עם מסיכה או אזורים שנמחקו בבד הציור) ושינוי קנה מידה (שימושי לגדלים קטנים של תיבות תוחמות).", + "boundingBox": "התיבה התוחמת זהה להגדרות 'רוחב' ו'גובה' עבור 'טקסט לתמונה' או 'תמונה לתמונה'. רק האזור בתיבה יעובד." + } + }, + "unifiedCanvas": { + "layer": "שכבה", + "base": "בסיס", + "maskingOptions": "אפשרויות מסכות", + "enableMask": "הפעלת מסיכה", + "colorPicker": "בוחר הצבעים", + "preserveMaskedArea": "שימור איזור ממוסך", + "clearMask": "ניקוי מסיכה", + "brush": "מברשת", + "eraser": "מחק", + "fillBoundingBox": "מילוי תיבה תוחמת", + "eraseBoundingBox": "מחק תיבה תוחמת", + "copyToClipboard": "העתק ללוח ההדבקה", + "downloadAsImage": "הורדה כתמונה", + "undo": "ביטול", + "redo": "ביצוע מחדש", + "clearCanvas": "ניקוי קנבס", + "showGrid": "הצגת רשת", + "snapToGrid": "הצמדה לרשת", + "darkenOutsideSelection": "הכהיית בחירה חיצונית", + "saveBoxRegionOnly": "שמירת איזור תיבה בלבד", + "limitStrokesToBox": "הגבלת משיכות לקופסא", + "showCanvasDebugInfo": "הצגת מידע איתור באגים בקנבס", + "clearCanvasHistory": "ניקוי הסטוריית קנבס", + "clearHistory": "ניקוי היסטוריה", + "clearCanvasHistoryConfirm": "האם את/ה בטוח/ה שברצונך לנקות את היסטוריית הקנבס?", + "emptyFolder": "ריקון תיקייה", + "emptyTempImagesFolderConfirm": "האם את/ה בטוח/ה שברצונך לרוקן את התיקיה הזמנית?", + "activeLayer": "שכבה פעילה", + "canvasScale": "קנה מידה של קנבס", + "betaLimitToBox": "הגבל לקופסא", + "betaDarkenOutside": "הכההת הבחוץ", + "canvasDimensions": "מידות קנבס", + "previous": "הקודם", + "next": "הבא", + "accept": "אישור", + "showHide": "הצג/הסתר", + "discardAll": "בטל הכל", + "betaClear": "איפוס", + "boundingBox": "תיבה תוחמת", + "scaledBoundingBox": "תיבה תוחמת לאחר שינוי קנה מידה", + "betaPreserveMasked": "שמר מסיכה", + "brushOptions": "אפשרויות מברשת", + "brushSize": "גודל", + "mergeVisible": "מיזוג תוכן גלוי", + "move": "הזזה", + "resetView": "איפוס תצוגה", + "saveToGallery": "שמור לגלריה", + "canvasSettings": "הגדרות קנבס", + "showIntermediates": "הצגת מתווכים", + "autoSaveToGallery": "שמירה אוטומטית בגלריה", + "emptyTempImageFolder": "ריקון תיקיית תמונות זמניות", + "clearCanvasHistoryMessage": "ניקוי היסטוריית הקנבס משאיר את הקנבס הנוכחי ללא שינוי, אך מנקה באופן בלתי הפיך את היסטוריית הביטול והביצוע מחדש.", + "emptyTempImagesFolderMessage": "ריקון תיקיית התמונה הזמנית גם מאפס באופן מלא את הקנבס המאוחד. זה כולל את כל היסטוריית הביטול/ביצוע מחדש, תמונות באזור ההערכות ושכבת הבסיס של בד הציור.", + "boundingBoxPosition": "מיקום תיבה תוחמת", + "canvasPosition": "מיקום קנבס", + "cursorPosition": "מיקום הסמן", + "mask": "מסכה" + } +} diff --git a/invokeai/frontend/web/public/locales/ko.json b/invokeai/frontend/web/public/locales/ko.json new file mode 100644 index 0000000000..888cdc9925 --- /dev/null +++ b/invokeai/frontend/web/public/locales/ko.json @@ -0,0 +1,81 @@ +{ + "common": { + "themeLabel": "테마 설정", + "languagePickerLabel": "언어 설정", + "reportBugLabel": "버그 리포트", + "githubLabel": "Github", + "settingsLabel": "설정", + "darkTheme": "다크 모드", + "lightTheme": "라이트 모드", + "greenTheme": "그린 모드", + "langArabic": "العربية", + "langEnglish": "English", + "langDutch": "Nederlands", + "text2img": "텍스트->이미지", + "unifiedCanvas": "통합 캔버스", + "langFrench": "Français", + "langGerman": "Deutsch", + "langItalian": "Italiano", + "langJapanese": "日本語", + "langBrPortuguese": "Português do Brasil", + "langRussian": "Русский", + "langSpanish": "Español", + "nodes": "노드", + "nodesDesc": "이미지 생성을 위한 노드 기반 시스템은 현재 개발 중입니다. 이 놀라운 기능에 대한 업데이트를 계속 지켜봐 주세요.", + "postProcessing": "후처리", + "postProcessDesc2": "보다 진보된 후처리 작업을 위한 전용 UI가 곧 출시될 예정입니다.", + "postProcessDesc3": "Invoke AI CLI는 Embiggen을 비롯한 다양한 기능을 제공합니다.", + "training": "학습", + "trainingDesc1": "Textual Inversion과 Dreambooth를 이용해 Web UI에서 나만의 embedding 및 checkpoint를 교육하기 위한 전용 워크플로우입니다.", + "trainingDesc2": "InvokeAI는 이미 메인 스크립트를 사용한 Textual Inversion를 이용한 Custom embedding 학습을 지원하고 있습니다.", + "upload": "업로드", + "close": "닫기", + "load": "로드", + "back": "뒤로 가기", + "statusConnected": "연결됨", + "statusDisconnected": "연결 끊김", + "statusError": "에러", + "statusPreparing": "준비 중", + "langSimplifiedChinese": "简体中文", + "statusGenerating": "생성 중", + "statusGeneratingTextToImage": "텍스트->이미지 생성", + "statusGeneratingInpainting": "인페인팅 생성", + "statusGeneratingOutpainting": "아웃페인팅 생성", + "statusGenerationComplete": "생성 완료", + "statusRestoringFaces": "얼굴 복원", + "statusRestoringFacesGFPGAN": "얼굴 복원 (GFPGAN)", + "statusRestoringFacesCodeFormer": "얼굴 복원 (CodeFormer)", + "statusUpscaling": "업스케일링", + "statusUpscalingESRGAN": "업스케일링 (ESRGAN)", + "statusLoadingModel": "모델 로딩중", + "statusModelChanged": "모델 변경됨", + "statusConvertingModel": "모델 컨버팅", + "statusModelConverted": "모델 컨버팅됨", + "statusMergedModels": "모델 병합됨", + "statusMergingModels": "모델 병합중", + "hotkeysLabel": "단축키 설정", + "img2img": "이미지->이미지", + "discordLabel": "Discord", + "langPolish": "Polski", + "postProcessDesc1": "Invoke AI는 다양한 후처리 기능을 제공합니다. 이미지 업스케일링 및 얼굴 복원은 이미 Web UI에서 사용할 수 있습니다. 텍스트->이미지 또는 이미지->이미지 탭의 고급 옵션 메뉴에서 사용할 수 있습니다. 또한 현재 이미지 표시 위, 또는 뷰어에서 액션 버튼을 사용하여 이미지를 직접 처리할 수도 있습니다.", + "langUkranian": "Украї́нська", + "statusProcessingCanceled": "처리 취소됨", + "statusGeneratingImageToImage": "이미지->이미지 생성", + "statusProcessingComplete": "처리 완료", + "statusIterationComplete": "반복(Iteration) 완료", + "statusSavingImage": "이미지 저장" + }, + "gallery": { + "showGenerations": "생성된 이미지 보기", + "generations": "생성된 이미지", + "uploads": "업로드된 이미지", + "showUploads": "업로드된 이미지 보기", + "galleryImageSize": "이미지 크기", + "galleryImageResetSize": "사이즈 리셋", + "gallerySettings": "갤러리 설정", + "maintainAspectRatio": "종횡비 유지" + }, + "unifiedCanvas": { + "betaPreserveMasked": "마스크 레이어 유지" + } +} diff --git a/invokeai/frontend/web/public/locales/nl.json b/invokeai/frontend/web/public/locales/nl.json index 46baf83ff9..4116914132 100644 --- a/invokeai/frontend/web/public/locales/nl.json +++ b/invokeai/frontend/web/public/locales/nl.json @@ -43,7 +43,27 @@ "statusUpscaling": "Opschaling", "statusUpscalingESRGAN": "Opschaling (ESRGAN)", "statusLoadingModel": "Laden van model", - "statusModelChanged": "Model gewijzigd" + "statusModelChanged": "Model gewijzigd", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Arabisch", + "langEnglish": "Engels", + "langFrench": "Frans", + "langGerman": "Duits", + "langItalian": "Italiaans", + "langJapanese": "Japans", + "langPolish": "Pools", + "langBrPortuguese": "Portugees (Brazilië)", + "langRussian": "Russisch", + "langSimplifiedChinese": "Chinees (vereenvoudigd)", + "langUkranian": "Oekraïens", + "langSpanish": "Spaans", + "training": "Training", + "back": "Terug", + "statusConvertingModel": "Omzetten van model", + "statusModelConverted": "Model omgezet", + "statusMergingModels": "Samenvoegen van modellen", + "statusMergedModels": "Modellen samengevoegd" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -282,7 +302,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -319,7 +339,61 @@ "deleteModel": "Verwijder model", "deleteConfig": "Verwijder configuratie", "deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?", - "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt." + "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.", + "formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.", + "repoIDValidationMsg": "Online repository van je model", + "formMessageDiffusersModelLocation": "Locatie Diffusers-model", + "convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.", + "convertToDiffusersHelpText6": "Wil je dit model omzetten?", + "allModels": "Alle modellen", + "checkpointModels": "Checkpoints", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe", + "addDiffuserModel": "Voeg Diffusers-model toe", + "diffusersModels": "Diffusers", + "repo_id": "Repo-id", + "vaeRepoID": "Repo-id VAE", + "vaeRepoIDValidationMsg": "Online repository van je VAE", + "formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.", + "formMessageDiffusersVAELocation": "Locatie VAE", + "convert": "Omzetten", + "convertToDiffusers": "Omzetten naar Diffusers", + "convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.", + "convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.", + "convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.", + "convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.", + "convertToDiffusersSaveLocation": "Bewaarlocatie", + "v1": "v1", + "v2": "v2", + "inpainting": "v1-inpainting", + "customConfig": "Eigen configuratie", + "pathToCustomConfig": "Pad naar eigen configuratie", + "statusConverting": "Omzetten", + "modelConverted": "Model omgezet", + "sameFolder": "Dezelfde map", + "invokeRoot": "InvokeAI-map", + "custom": "Eigen", + "customSaveLocation": "Eigen bewaarlocatie", + "merge": "Samenvoegen", + "modelsMerged": "Modellen samengevoegd", + "mergeModels": "Voeg modellen samen", + "modelOne": "Model 1", + "modelTwo": "Model 2", + "modelThree": "Model 3", + "mergedModelName": "Samengevoegde modelnaam", + "alpha": "Alfa", + "interpolationType": "Soort interpolatie", + "mergedModelSaveLocation": "Bewaarlocatie", + "mergedModelCustomSaveLocation": "Eigen pad", + "invokeAIFolder": "InvokeAI-map", + "ignoreMismatch": "Negeer discrepanties tussen gekozen modellen", + "modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.", + "modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.", + "modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.", + "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", + "inverseSigmoid": "Keer Sigmoid om", + "sigmoid": "Sigmoid", + "weightedSum": "Gewogen som" }, "parameters": { "images": "Afbeeldingen", @@ -379,7 +453,22 @@ "info": "Info", "deleteImage": "Verwijder afbeelding", "initialImage": "Initiële afbeelding", - "showOptionsPanel": "Toon deelscherm Opties" + "showOptionsPanel": "Toon deelscherm Opties", + "symmetry": "Symmetrie", + "hSymmetryStep": "Stap horiz. symmetrie", + "vSymmetryStep": "Stap vert. symmetrie", + "cancel": { + "immediate": "Annuleer direct", + "isScheduled": "Annuleren", + "setType": "Stel annuleervorm in", + "schedule": "Annuleer na huidige iteratie" + }, + "negativePrompts": "Negatieve invoer", + "general": "Algemeen", + "copyImage": "Kopieer afbeelding", + "imageToImage": "Afbeelding naar afbeelding", + "denoisingStrength": "Sterkte ontruisen", + "hiresStrength": "Sterkte hogere resolutie" }, "settings": { "models": "Modellen", @@ -392,7 +481,8 @@ "resetWebUI": "Herstel web-UI", "resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.", "resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.", - "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden." + "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.", + "useSlidersForAll": "Gebruik schuifbalken voor alle opties" }, "toast": { "tempFoldersEmptied": "Tijdelijke map geleegd", diff --git a/invokeai/frontend/web/public/locales/pt.json b/invokeai/frontend/web/public/locales/pt.json new file mode 100644 index 0000000000..39d383e37f --- /dev/null +++ b/invokeai/frontend/web/public/locales/pt.json @@ -0,0 +1,68 @@ +{ + "common": { + "greenTheme": "Verde", + "langArabic": "العربية", + "themeLabel": "Tema", + "reportBugLabel": "Reportar Bug", + "settingsLabel": "Configurações", + "lightTheme": "Claro", + "langBrPortuguese": "Português do Brasil", + "languagePickerLabel": "Seletor de Idioma", + "langDutch": "Nederlands", + "langEnglish": "English", + "hotkeysLabel": "Hotkeys", + "langPolish": "Polski", + "langFrench": "Français", + "langGerman": "Deutsch", + "langItalian": "Italiano", + "langJapanese": "日本語", + "langSimplifiedChinese": "简体中文", + "langSpanish": "Espanhol", + "langRussian": "Русский", + "langUkranian": "Украї́нська", + "text2img": "Texto para Imagem", + "img2img": "Imagem para Imagem", + "unifiedCanvas": "Tela Unificada", + "nodes": "Nós", + "nodesDesc": "Um sistema baseado em nós para a geração de imagens está em desenvolvimento atualmente. Fique atento para atualizações sobre este recurso incrível.", + "postProcessDesc3": "A Interface de Linha de Comando do Invoke AI oferece vários outros recursos, incluindo o Embiggen.", + "postProcessing": "Pós Processamento", + "postProcessDesc1": "O Invoke AI oferece uma ampla variedade de recursos de pós-processamento. O aumento de resolução de imagem e a restauração de rosto já estão disponíveis na interface do usuário da Web. Você pode acessá-los no menu Opções Avançadas das guias Texto para Imagem e Imagem para Imagem. Você também pode processar imagens diretamente, usando os botões de ação de imagem acima da exibição da imagem atual ou no visualizador.", + "postProcessDesc2": "Em breve, uma interface do usuário dedicada será lançada para facilitar fluxos de trabalho de pós-processamento mais avançados.", + "trainingDesc1": "Um fluxo de trabalho dedicado para treinar seus próprios embeddings e checkpoints usando Textual Inversion e Dreambooth da interface da web.", + "trainingDesc2": "O InvokeAI já oferece suporte ao treinamento de embeddings personalizados usando a Inversão Textual por meio do script principal.", + "upload": "Upload", + "statusError": "Erro", + "statusGeneratingTextToImage": "Gerando Texto para Imagem", + "close": "Fechar", + "load": "Abrir", + "back": "Voltar", + "statusConnected": "Conectado", + "statusDisconnected": "Desconectado", + "statusPreparing": "Preparando", + "statusGenerating": "Gerando", + "statusProcessingCanceled": "Processamento Cancelado", + "statusProcessingComplete": "Processamento Completo", + "statusGeneratingImageToImage": "Gerando Imagem para Imagem", + "statusGeneratingInpainting": "Geração de Preenchimento de Lacunas", + "statusIterationComplete": "Iteração Completa", + "statusSavingImage": "Salvando Imagem", + "statusRestoringFacesGFPGAN": "Restaurando Faces (GFPGAN)", + "statusRestoringFaces": "Restaurando Faces", + "statusRestoringFacesCodeFormer": "Restaurando Faces (CodeFormer)", + "statusUpscaling": "Ampliando", + "statusUpscalingESRGAN": "Ampliando (ESRGAN)", + "statusConvertingModel": "Convertendo Modelo", + "statusModelConverted": "Modelo Convertido", + "statusLoadingModel": "Carregando Modelo", + "statusModelChanged": "Modelo Alterado", + "githubLabel": "Github", + "discordLabel": "Discord", + "darkTheme": "Escuro", + "training": "Treinando", + "statusGeneratingOutpainting": "Geração de Ampliação", + "statusGenerationComplete": "Geração Completa", + "statusMergingModels": "Mesclando Modelos", + "statusMergedModels": "Modelos Mesclados" + } +} diff --git a/invokeai/frontend/web/public/locales/zh_Hant.json b/invokeai/frontend/web/public/locales/zh_Hant.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/invokeai/frontend/web/public/locales/zh_Hant.json @@ -0,0 +1 @@ +{} diff --git a/invokeai/frontend/web/src/Loading.tsx b/invokeai/frontend/web/src/Loading.tsx index 066315ecd1..671c2cd640 100644 --- a/invokeai/frontend/web/src/Loading.tsx +++ b/invokeai/frontend/web/src/Loading.tsx @@ -1,20 +1,37 @@ -import { Flex, Spinner } from '@chakra-ui/react'; +import { Flex, Spinner, Text } from '@chakra-ui/react'; +import { useTranslation } from 'react-i18next'; + +interface LoaderProps { + showText?: boolean; + text?: string; +} + +// This component loads before the theme so we cannot use theme tokens here + +const Loading = (props: LoaderProps) => { + const { t } = useTranslation(); + const { showText = false, text = t('common.loadingInvokeAI') } = props; -const Loading = () => { return ( - + + {showText && ( + + {text} + + )} ); }; diff --git a/invokeai/frontend/web/src/app/App.scss b/invokeai/frontend/web/src/app/App.scss deleted file mode 100644 index 16655f84d4..0000000000 --- a/invokeai/frontend/web/src/app/App.scss +++ /dev/null @@ -1,21 +0,0 @@ -@use '../styles/Mixins/' as *; - -svg { - fill: var(--svg-color); -} - -.App { - display: grid; - width: 100vw; - height: 100vh; - background-color: var(--background-color); -} - -.app-content { - display: grid; - row-gap: 1rem; - padding: $app-padding; - grid-auto-rows: min-content auto; - width: $app-width; - height: $app-height; -} diff --git a/invokeai/frontend/web/src/app/App.tsx b/invokeai/frontend/web/src/app/App.tsx index d0ed2ab016..3599577ca1 100644 --- a/invokeai/frontend/web/src/app/App.tsx +++ b/invokeai/frontend/web/src/app/App.tsx @@ -9,6 +9,8 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher'; import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton'; import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons'; +import { Box, Grid } from '@chakra-ui/react'; +import { APP_HEIGHT, APP_PADDING, APP_WIDTH } from 'theme/util/constants'; keepGUIAlive(); @@ -16,20 +18,26 @@ const App = () => { useToastWatcher(); return ( -
      + -
      + -
      -
      + + -
      +
      -
      + ); }; diff --git a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx new file mode 100644 index 0000000000..51fad5a431 --- /dev/null +++ b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx @@ -0,0 +1,46 @@ +import { ChakraProvider, extendTheme } from '@chakra-ui/react'; +import { ReactNode, useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; +import { theme as invokeAITheme } from 'theme/theme'; +import { RootState } from './store'; +import { useAppSelector } from './storeHooks'; + +import { greenTeaThemeColors } from 'theme/colors/greenTea'; +import { invokeAIThemeColors } from 'theme/colors/invokeAI'; +import { lightThemeColors } from 'theme/colors/lightTheme'; +import { oceanBlueColors } from 'theme/colors/oceanBlue'; + +type ThemeLocaleProviderProps = { + children: ReactNode; +}; + +const THEMES = { + dark: invokeAIThemeColors, + light: lightThemeColors, + green: greenTeaThemeColors, + ocean: oceanBlueColors, +}; + +function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) { + const { i18n } = useTranslation(); + + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); + + const direction = i18n.dir(); + + const theme = extendTheme({ + ...invokeAITheme, + colors: THEMES[currentTheme as keyof typeof THEMES], + direction, + }); + + useEffect(() => { + document.body.dir = direction; + }, [direction]); + + return {children}; +} + +export default ThemeLocaleProvider; diff --git a/invokeai/frontend/web/src/app/socketio/listeners.ts b/invokeai/frontend/web/src/app/socketio/listeners.ts index 6442564e48..08de671260 100644 --- a/invokeai/frontend/web/src/app/socketio/listeners.ts +++ b/invokeai/frontend/web/src/app/socketio/listeners.ts @@ -392,7 +392,7 @@ const makeSocketIOListeners = ( addLogEntry({ timestamp: dateFormat(new Date(), 'isoDateTime'), message: `${i18n.t( - 'modelmanager:modelAdded' + 'modelManager.modelAdded' )}: ${deleted_model_name}`, level: 'info', }) @@ -400,7 +400,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelEntryDeleted' + 'modelManager.modelEntryDeleted' )}: ${deleted_model_name}`, status: 'success', duration: 2500, @@ -424,7 +424,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelConverted' + 'modelManager.modelConverted' )}: ${converted_model_name}`, status: 'success', duration: 2500, diff --git a/invokeai/frontend/web/src/app/theme.ts b/invokeai/frontend/web/src/app/theme.ts deleted file mode 100644 index 06b28a66ac..0000000000 --- a/invokeai/frontend/web/src/app/theme.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { extendTheme } from '@chakra-ui/react'; -import type { StyleFunctionProps } from '@chakra-ui/styled-system'; - -export const theme = extendTheme({ - config: { - initialColorMode: 'dark', - useSystemColorMode: false, - }, - components: { - Tooltip: { - baseStyle: (props: StyleFunctionProps) => ({ - textColor: props.colorMode === 'dark' ? 'gray.800' : 'gray.100', - }), - }, - Accordion: { - baseStyle: (props: StyleFunctionProps) => ({ - button: { - fontWeight: 'bold', - _hover: { - bgColor: - props.colorMode === 'dark' - ? 'rgba(255,255,255,0.05)' - : 'rgba(0,0,0,0.05)', - }, - }, - panel: { - paddingBottom: 2, - }, - }), - }, - FormLabel: { - baseStyle: { - fontWeight: 'light', - }, - }, - Button: { - variants: { - imageHoverIconButton: (props: StyleFunctionProps) => ({ - bg: props.colorMode === 'dark' ? 'blackAlpha.700' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.700' : 'blackAlpha.700', - _hover: { - bg: - props.colorMode === 'dark' ? 'blackAlpha.800' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.900' : 'blackAlpha.900', - }, - }), - }, - }, - }, -}); diff --git a/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf b/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf deleted file mode 100644 index 8e82c70d1081e2857ada1b73395d4f42c2e8adc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316100 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�d>qioIPP8A=u`pvh3h!11b92OYQ~<~?KU*@+${PU!*d(Mv&AqxhThiaGx_YXV@BE8jiRp|qdnJro^^_ZT;t|mAt9&p=;ytO3nv^K zAf-ef8;>S!q)mJcGFratGO-Ab7Xv#&hQkBqy;7F}F0~qT{W>5Dca0d(oZIT^#Mj7Z z1jvhGkaU8(h1Us?su&lUpJDa!8xAXHCwqHhb#mg^s|%thJG3?L{!K?m6A~QS>qy+( z1rC8lx$ju8%TP~(`ISKmX{mnV8+D~&kWy(HlD2r>HT`>wI931c}!f9 zfERnB_>r1(;l!Sepa=LcE*#Hw_S%;>86IdNhv~2_4nm1f7SWsTw z8@03YNXaVB!_s$P`o|FI`jqyQ!p-fh(x$sf zTHJ)FFf3z;ozSpe=BZI>KV{cje!ZsnBQY=+QKt0vA2!UtcZ%T~Jj6=z82!$89Oji7c+2J-hGVQe zYytvaGW?$|P^CLpWyh_@3|>nO-{igQ_K?S^yB4Rey9~Y&z#Cv=3CeOHCKSi-#BlCu zCMSl34^9dT8O+5F4i8Qqg1_iB`8ZCeztI#`cdzK^uH7R0dwUJ&?~S9Gb6dL93NIY) z=IBgE@jJQ^amZO`{;SsfQbNMg;Q2C@D@+XyOHB<6O{L4foZPBVpQOP(db~$74}w0*9k3X<@-B zTw!`hXe#T@Z;(N6q9b*^U_Ly36Lr0KN`uK(z@MwWOczyW&+Gqj@-1MoToU`w$?p#j zmK9v!@~yxh1F-m!E;4TNzXmLRG^`}Uw+vWN9F|6^Bk@wA^X zKzo7TstxAbGIcXi@#%!Rlk^RHisvrM5AxSJ_-fTGK<{Ja-ZLR$xs627Uu{<3?CidM z$BiR-te>NFu6{?!XmFZ2;*T`SNVh9>-k-}=r%~E($TPWmcDB*;r%$z)M+OIvWdA{j zE-NncS$qSz2fBbw4N(@T2v!^8Pbj~vpqyeJ@th?c9X|Ig+E*+MlKjR@a=d`&ruCzHQTLVpFsSVDD zVWp3hkAZhnou$0tL~>x}#PZvoC8o1XsgF@-f%{|DvmG5S_9%)Py(xm!@yP7gdqh`( zZ(8EEmbAL~l6Y@SJV_td>pt4|ahOl^4>`_(YbN@6Oc+>;zS#AW`0u(zm;dg(g1$YI z227J7^EP4JE(e?$w~Nz_-G@`9eBlm60~Llom8#L(i+ zrSvbf7bI;{K1F*?WKBkPzJYk?D7;`zRCcJk_3+6=8-C_@haLwvEgt4XyrEOvc0=Bc!Xo+oNr_*0>frg4L!Z{IpozkUB z7SJ`}lscY*&7Y-c#m^(_;v?&IYSKE%MFWYv1I!DRt5*?mC0R*J@U*U7&bhnvb0H%G zI`?-XBa}hci}z&=6GghOx)Eti%*7tdh+^r|QpGZOcv`xIDB87(>K>oax}R6lVEt6x z#S+qa2+|7xRZIZbNMWhezZtq%098B|@?&V^n4wKOe#NyN;zUI94UHu0Mh^M9Q$5l; zsWaYtFAHM7fhra0THS=cmV8UzM@0jZBh^ev4MM=GOem$Q+iG{b$kYcHVaFb(J!GXZ zd670!Sm+r)YxG>+VdWK$c(-5Z30yN=e<3YMj1?VdIU=injyoY9xq?PJWC4v8nnCwu zp>_zLOAl=L|9JcExTuaU?47&2cNc6F5i5!`K|%V8B7ziA#6lAh5LA#Ry(nPAhP{_4 zDqurm!xl9bGTX}q!z5MgL62wmS9fLhbG8>;nvJ~C>3*@OQ+g=zGV5y9#0$Bm#84Cpr zU>IbXh9L-H!rcAwRpg<*l_zq-<=t;*Bwe9bE@b_5GM|w4KNsEJKY-J(p|at(bAltn zm&c^8itRCCW9mC{O|zYsz`B3jp!KHujWeDfNOGG{owxr+pICQVbe~M|igkDB=3(ZY zQsNsjBM8o@-y+5(Y*UZ<8dMPqw~l*?D!5zz2kI%3UZ7hZJ)-Nbln~>ug}d@>O(i+| z?bJ_4M64MbyE>ZpJxG69vzD|zFt=_e=nXxiTR(4?QC zPz8?7K+BjA3pXsX;v{TT`L#Hw*dSo$G585>Cj$)no$QXF|C*!=8_D45WBn$F%E-b` z=$+eV>AmtIdOCi3zqG`oiUTK!(XuisY@AT+%u9Y13f_QoymerpRn)LaPgdt&pEvnH zk(F@|KllEDr0c|s#S1>mwruO+i^`P(n=Jw8p*5Hy^soa5&_)EnOtfPV@wD5R%4DoQ z5c`%8SuzL8=KV54mJ{RJ^Td1|9ZfRw;_?XbpO=V{-f0v4^6Pc*nm)aC z%5t1Y&?;`tWKAGgD;s?WTbpOp%qqTFGWpJe@YE6hF8%CUyWG4m^J;->@dV4yk z-^vV)SPBY(8E}g0;xg9|#z|Z$T~G)1A5$tCuBA_eo$cwDvQqk`Y2%f&>#J7`@n(Or zJ+EIgW)}NH17woxfB@HQN*#N7wiN28=Q#;s7 zLk<0hTV^f^AWpu4tsRV|Q%UdU%?h$)WpC!mX_8dQ2X0;!F+|D310Vxo>k&9q z#`6>Uu+_~0ujb9;yL2;U-`9$fGO$K-+t{>{ZssVPZe$-0I52`4kmnPv*&3Zg9AtM< zVP-Gx0kHvX8e4f_8(2>m;N}if3kHrZ3_6f??264e)0P}}bRVeNv5yM&B|M?=T+gVr zF@&@-GnquXMs{@QK!~wf=T?L`+KwcxvrWx#IdX+Omdj%_A7MVVlnwtds@KFAQ;z{X z2v_SB;n}v6efQ2*$uY;?ItF{TiJ907Z-Et$55`K!GoL;fG3UUreHOyQTE^%i0L$rD z^{tSun%!42_Ak4SRSfn*PJ-0(OWtsYyr@1pMa(6q6~}n8w)o4xWuZ=Nj+^Q zPD-CIrFlS3I@kP6JlB`e^Utct3ZV0f%wzd8Q;rv8$5+0ccaHA7IrAp{^c)G+e2^;8 zk`1LvQ5wTuktO-JGUX`=ZJ@XCy`V&GH%R-C21Cx7IYKqB5k6_+k7TN9dzXQZgS%MA1ZRLaZi^rX%H^ zWaxSN>CMw<^$UxL@?g@kl9Mr~$DEwXofbT~(n<*E~k5#_m?cZGl?FcH%Sk^_ux^B@+ZuBH1+P>%7?kBCyIqYGQP`tF5HFzb z4<)adadPy`(I=*9-m{>|n6Q;#9T1UqkVt`mG64i;f|1BfNR(JJW`f2CJcNxR44K7OG&=GY5Ul@_bhEHvL(?9nf!>zh zBxdiFT^9)bl0?J|9b>QTq)w0>U9e?lFE z;ZSV3P&F-+1nQ{%{Xd|K_fPih=-R;{TBxNj$tD^T7-1!o(H~nVFo$k(<+4KQ8yPPj zj-Y11__$JTzRV4~RNXMvf)NL&Oh}nFEhTNLG&Z`ZC^}}+q`y9^m4$pu5ff(~-@wFE z*m?j7iMxy!Bl>~!>5~1T`lY?kB&s&`1aFkDkqbS91@+}nUqNZmHi61SRR7&Hay98< zZ)o1UT|c`CYvSlq8(WUstk=A7K1#vPkl!fE;a5x+@J0L>u@v3T1u_D-J(Jt@Y7N8n zFCzUGrVJ_v;l5O|1^UAm;*QY-v@1zGG#eZ321nGL+3Awl=s*L+u3Ec>qIt>#O}-fY$k_0ZJ|S9+oa4!vp4qG!YSV@0@38YRCcxY1x2XeEmb zX)+nj4QJVd=dU75xn6Y=F6E}?l&;y6#0EJjHpn&O``oc83~syVSa?tEOr0iq?gn?G@-I3m??{3>bQUgYvL&K z=Uj$p6}LOgcK|P7C=Go^PnVaIK2ML5P8(?sQB4@0Ug+dB75sxJ;zDcAlki)P-;?-D zOX*J+N6rkKe5t@OrFIgt<6}_H;M4eN%PFHUFi6oHe*javaHQ)e8 z_GX`c%#qg*LsqTlHdj8n^vxYOnFKQ@6J9c+W=_fR@wKBvLi}m=u`8uF3a3pA`QD2( zuiATj%;>l%`LWvC7RY+R={VFWcT1KvoxZw5WT1gvJAH@6iUOeH zKN3SBKocdeAt5{HTKYWe`OR(dr0=-3Tlx|B zToK7?zB8#%7UC7PdP@a;t1J|@aHG(VF??rgrYw}%C`0ScvO%m2)gXoq1b1(~v*3qc za7VpKywgkY75dk25bspHV}k~YnA94(bjZ|rY=fEB)reV;-85fNPFABTiw ze#nmJlMI^ElRO_k8l!s;feKXYWhz=r zeL?xWes#0^sDOgC7DgyT3n^$l)4{zTsd3gXVqp9BrwCxCzQDh$U#;)`m&6~48OfnL zNgR;HePkicxg~<8^Z9C;sTYC7TBslS{wF+{CTbk@NpeKQ1VU0HMiyQ6l7aQxVvtEl}@^gU6IIyBg_WuD;reib?URgkqGe?AHafh?R!*a4B z!m}0Ek+a*NR)LdIY-(H1Esf=0b~aaqnn>Tg=E*z(Xxy60T6E!>d(ImfVKQAZAVvtxWXn8 zT8OUDIM=h2#H5mM>mTcF!qAXGZ)BS+wwxHNw9GNAWo$nv4i&3^xCiF>7CKWoYX()H zT>Ik`Qm%^kE?m-2lQnM!{cyJGhip=TJCl}rlQ_Qoy@cB@yG9Qm%O}mhmmjJN95YFk zurp0|lO8!Tku-m(yESen=E-`JBc06Uvg)$Yx}JL|bm4O00t{tAxWQMmWtoL9!gscr z)ML=8ZZlcKHj~IA0IOIMun4SR@fdF|?(I31Ifrv9<_IUqAyQy4YGQz;l59}YTl6U} zQCF@6y2X)pRWwEOl#dt^JgA#58fp9GbiNHz+U+?M*OtWy41Zn-T}=_Jx~I<+9* zB6S+bcVTQhCxOeVMeijad zEeK^xrsY$TcsX@_5Dn}^hS=Cm{%W#i&aq6{#do!Q@(i-{0))e_7y+^3I*m;dusIp8 zB?qGOO#qrQl?E!frLiG`=xR?^faHQ-iEdzEmt-lo`Hg-zjr15D6gQ2y(|hz~<>Q6@ zmy$MQNj-%964GXA|3yD+qOU-!R`p5fH#pXwOrroHY0X+;<@kzGRhJ3>9bHX}^3J@U zaghvoF_n1&PJKZSU!3v&Odgpy!xe%} zykNUItb1(vv*fDD>YS9K$z(-dep)VBRY4ygj;);KJou-D2kGNVu24E#Q@C!&wsQ7a zzD@i24ZXA4A<8dd{3>FD`H@i{!MpRU{}r(Oh^wsySoiot{x}*|TSK&1DjqcX{Tli#fTMX3V^thswZ{U%5`9!FJM3;w^g7F<&^{9+nws z%}vC4%TNWvJm?t95DkO-un9B{I63UYHt@59ZJMx+qG&{5Zg^}{V+PaiQPO=UA(ixL z&8nAki5E#3Gjh@*O>NrZyvT8>#Aog=YxdA*6*~dXzRT_D2n%N5crMG)b>jK$^F6)7 zj*#7JLdrHBlC3AfE9k?UZ*S6vE6|#Eu3p`+edXr2o7P~nvTx0%x0_aNE5Ca64!yH# z1?h70?R8?l^5$TV1m~FxT+^dCyFqU$N$e&2cy{58C@g7XWy5u1XEQ;QkGQc1cT zdro?9AQklNPlxD(ZJd7p(Jqs|$n24Han{D!7fHLN7ir~pJ?_!17Z$)BL2?Jfu{Zd* z%%u-_m(Hcn{2yHURM>%w;#I=11(A8^CL2lvWs7)fMeB`7#44)(^fUUnf@~d=R+vYm z5oB8>#%nze$s=JTtsrfjqRsK+JJxEd*$8FLDUHxni=!8x>>jiNKX#9eWHgVZ(oUYB zH-ViMCb8C=fV0VdR+`Ya`g!75)|%qjs_?e%ytxY2xEOzUt(;o#q<2a@ zW$caKDXb*>6%zUah8JjefUUfsVj?y(+%_@VA;>K1_IJuUR<$v#?7+z|Z?8o=t`wOo zSnn-a9%E}erh0mpqV3}yx+iY03)k=R z$3qEDLq(;#DwqZX8EFBd<9o&Z_m+zLXkG#9>UhO{nYFU`2Gc={iNCl6OvS2-`@D^^ zSn?&_%LaSP^TbHpV_u>&k=1mJnu`!(Qb0EDEMqKo=3s~ECMyK6Zn7G?8(EoyNo*tv zH8#Dq5|44UIK7K+KO-Z_{9$A4CuPJ>B&wo!$BxohD>-hGd*qzw%pgxbW3%nGEp?Al(8jQGZFli z+YS5`8ACANZ-}lNT*Jlg+9zz^!$tBAd$_RO z!ZvQ?K7l#wt&-cy5G@96KdU)w`&k@5AOYs#U@Lg+i|i^U3RzG9n|TOIKcLr9|NKC_ z$=&?g$PAC_+GuQz-${ljJ1Rhi!2C6a&91u`Mzr;^CyXHUjQDQDQb8YO&F{QGXxnjEZaJ5maJAfCW!t9X8S$1(- z5wRh@QwZ3TL3gi%i9MZ)c7P1_$v3?pD#5nY!GdLks{A@N9p9;yDmI8|S1 z;eOL)htrWY&L+oGYK%0-Rkqg})RGI*Zv z-tc^ja4}!j9{8QL2Wv0=Hx19rap-Nsd+MI&Bq{ZerC%$(q5QShEfsQv{$<;Em8rN) zSaU82UXeq)NV|;eoV9eIG;I9&C0z!PQT&hZYW2x-nbLoDy!99KtDQ`aM@#eJam&ns zfOY?34rJjmETY@{+NVzPkJ^~jsXJWJUEVOepMDFS-S0PPf_gV*LatDycnNr>Ibamj zE7VFRfd{KEBf}O(k695OUX~h=AKr!*m>nV(yxB>*;dg|pIv;XbwzmQMrk_He-asZ|!4oBsG0a!r^+ggPwSR_$2FO`!zoi z_k#F{Y~N0VL~YH^J??YSVarSIExFRxa?sFrHm%)UvOH(62x=>Td6phJ<945Jxp0sS zyf>T}(}z1d4$AWjDqb7xmc4uIu#lg83Wo|Eh*`qob4gM{g$`Y^YxBVDip2rYA@xZR zJRMMR3oXiF!4x}Q{?RwV{pgn)H-33ECNwlgc>L!zHCli8@cPgZBSLkb%-It*-6f(; zcU(s{d4R$H_*wWJYL>D@`+FTG1^8R24E&Rh*B8^zmEADl03TTp`gz@n zqjDc*w|8O69nea<*L%|A{Jh4Wk88qyl77n1d%ssP1moruwNq@C)MAoJ3ZSj9|4xx% zGH)FFU{(vnWdsf^=G38ryKuaI2{K_I6%r8>7dLe%mrBQ865P2cVJlgD3OcZ)00arf zpuv3hfmauzN!VC9NEK z>@X)DF`{7TuR-U@BrAkk#ZCaMQtTG2LZTBjb*^pBI__Z)V>x92>4uGw*c-riJAx}PMz^w^T>tt+H6M+_el;XG+? zJf|>5OKz=yEGtBt8bKpt7zD_E;wDTNN{u&RZuBZ${TiECYDr@wR-H~CkZ5nDGE-#? zB)p~=Z8~g-O>a}x(TzRN0r@RTKjwD_KQ(WEh?oS4zEsicg^ext`pd5SEO z8ob=|5}}kV@j+fc-T#u*3O8Tw!0=g%xj(iM%Cq6NiBKM7fE+t4Af|5oF-egALLKcE zo+K*f5f8+ic`<0A3+9F_bp6L;u3-tDN3Zh7q$e&Ddrx~3?yorZC1I}dGWLjrAk^(Nnu{Uw3%f&TW+eRaff zE9su<>5%v-Trya)!KJfANCTpf=IVJFi1Nb-uub$$x@ti8n@EHA;8IT%vuL~KVr?$ZTMvQ`GXAZ9}_L2 z+lT2V`prbfu@heTKOozts3mqh;>(+$NiZ42HmM8A2@T8191)Sp;BH2r4$oflJIHH( z@gXC6_4NBKY*}=#xTqL6#{qgHMdUj?b(|S!+xmwib?5 z(-ay)$I-HBi5vNqK1quPnsn)6(togTd3hW2E^WNAysbjZCt+);4Gtk@DFQ-G+MThh zgzVj9W@6Czn7%e>F>?(41pdJ2(t*6r0nRls|utT;ut}beY~)BE1n# zZGX0tqDec6`EEeN#QLIPJRJPUo6w~(9%va?rvc|Q_DbJB8zXLe5^D_d<%<^#8sU1; z+0x5E@>4$?Q5V4_=dQe7@Yd@p`fNeBXE-DC9Cp!e653#Es=gawNr;nk%=*!e_Rda( zd?Bwt@7T^VZHo8ch_2_mw|7b|@Jkwr=HA7}(Va?9aiKu`DPwaR7rIlUQFBsuK2Gx; zB#=3k%mY4g1khIFg2L8M=@Ae?GX%Nf=KCIsn~X93PbtaYQhu27zo(^p|M#?Y7wI0t zOkIDg?ceL5Ij&24vHmHa0w1!jqCyFGJ415?v}t$I-v=-gkZ&t3iYjVBjC8`ipfj^% z=7O7*!=^Di-_9td_g_qVQ=3ILD&}WTE-1;5N}odqafOCbe|qp;J6po#JzT%^$C;|^ znnL5Cfh?+qjkGu8pJIKSQ2&#{2pYW{wwG>VBru#SY~@B=*wB|58FM-a+k%KwPZwgq z-5m?26lfR888Cp>apY)+l$9~tNJjv*RrJZugjHkPAC(%ApjDaq3p_pN7i6p&tbRkP z*R7<{N^c?V=_NtqG16r>t)TDWj$eMjHPW3MG512oq)U@0Un$DGET0Dp2#>=OuQS|> zKO{9$E=TV(0-luErIN|7_(S9#wZgp;i0s3lb~VR(sX_{IZD)rg1ACA&q`=aW(M}n5 zr_+juL%s(+~l9pacViECnKxFRwX_s<|{FL{c6a=1oxRe-wafWo=Krqy@vto0D zN~7Vc)1Cm7y?=BI7tUM zQee^5O$A5`=JX)9sry~tyzY0p?8+6Ae*HS&)mK7m`nGo8lJ*)8LaN^xjV-?8p|x5`>X<#6F_8`~qD}rS$Sc68FdS z6mpRG2hU%=Cwt>+_p!d!M6zTS{q5pmdP(?Fqv2=#y5kY7NWbmrPNM8)9{hRL%4w+H zcA-kX3+lQlo8}3uLYZN za9Z(m{AAC4+sV|}If1}(PjN#;#xNi$sH?Y-sUc9y{>YZe4fZ-9sc0Qn2v$wTkY($r zwKZE#-Qm7y18Y$mSbfBF;tFEPbVbl-rJK!OlF_Hm(efu|PwDz|>=2|DX6ug4z>z=jjYR>PZv>y8&<(#Azv+35j^xp1Ctdf4d^t-Nr7 z#L`Y%KmUAdr>f6B+mgN^Y+Udz()^Q)bkjYndvx>VHKh5T;JDDT39?5e^p~%{rgvAZ zB3562LkvsktsN^?e!64j@*QNTd(rsx{B}S_rm2tKu9swH63Okuni4{fx64mYDsqEZ z-wb^JHc)6Im?^s<+GQ|aN9-NQ$G=BqX$;B&VPTF?EzITt%pdcW=|7gtzR$ttO`;}5j*T<%rUrlQ+p5`Wr_iu02#30%?2tV#C99vRWaQwdxOc9HH!pOb*? zRrK(y`D6xmNvD$cWq#v5zc6S?${}L7`U0)G_03JX1JJVI#hpTdKsDuC(bgjCH?&dO zV#HXuY3Do>08F*nTTVJ3J4rgOoBaOhtxoIeNdJh3PMOT6NtNDu+hDV|7i>Y+J^fNE+UNPM_UnnY?&J8&1_pyf?!-%EJ! z549`?eLYjeG8jm}Rk5`deE1vn?Xb(MMumSDtwNuPYc2c!z4-kS(#hEG%62GE%WpJf zLkH_82#Cbo0$0q+r);OrmKAI4=rbHZXtJzMeixn=IKPvGNDtP%uaooal0&RGWTO-d zoB{n+4r5R&sQ(=#U4TX~?8ewd!GZ&rS|DzQ7$yK$HV78*4|mBAXTNm3v57Biaqgki zdm=G^cqaN%>uuK@?)-=Q@=|W_Q{lAKQaJoA{`s8qXH-Re;rcxLpyUFd2&eG%*dzRN zg7Xo7J9MA(dIFUoo802oD!ye5SEf*5?pxcqY4uQ&LLAAp<92~ICJyaxv@cW0-0avcWyfGBPLx&u!t!+*xlG5hL_BQVzo38weVOcg^ z6E6K!6Rynr{dcH#NH7#b5#$-b144&Yb8qPYau{ba_a%pExB2gCOX;@X7xiT!U_W{UQNrBh z#0^oxq~-J^9mu`KGoOK#-mQ0O?K>KAYDV8h5{@W@d(!sxd&OPxM|)zG7W5HS8>09m zCvDxjw46`MJsoX5J#8I5>G?6GrDKw3&K~dJ;o)G{3tl3O?;$gi8eszmN_pLEjQ<7l zA@FK3!JQ)BiHrA{MnxgzBdnT@=- z{wZf5QQ-3m08>u#l5Zzxp_kCPHQr4!jm<5`|UsnorG|DSo9|Cy&y%JmR#vK&87#&TrII6FX<2f0Cw z>7*DeYh{)7o5k#!VNyWpW&@l3C#@3B45x3TZ|EDk_>Vt`iSU-wXMf24N1;@f*HDXw zhcFxL@c^BS#46z?$AZkig@WiMVSy3FLw}jV4jjn_0FX-VrAbzkUc%GM++zTAVK-fw z+d1hd{GLYRNclK`C?$Lr%~pQW@HBgm#(+X4q*YJOvlnU3XK~$xZ-~>ocl0W|0{9=VONsbKFrW_Uy|CqHqdM0>=Kigs}vNHB($(Hm92Y~jyhocQ%? zfdRwNhkgcQs}g605gLZ~8_avq$;}if!;1O!eGGCm4#=h!a50!1gCZcggt@r0PA*TT04>Bz&tpuj;wDHpknUaz+lU*lG(;MF^VOxTwy@gM|R%5D@ zaN$kbhh$}jhG%35Er;i3g~1q(mrvwBMVN$eEPa2emJXv5MW$gBOs465p^^brzGFhd zdpY{Q30)Q)R5UTLXF%i4o&gOv9sLz=n};ooFtasNxi=raD8kXH7g^RaY++cZZf5Ro z`XP%VoSak=`G+ThlD@BJ!7&>`+G(jZ7DT0T!EmwwuhRt~HqzC6a4`>sz(U=!ioA7je`t6OT>+snwk)m z=J~N>bOLc5`Xikl1j=zcy5=HjRkH9R37rkV=oj8hXs>ks*q+RG1Va0%J9bR%3m>b2 zeR;DLSy>xq4e?aLj}suJ7fsPytP6Doi$7B#%thQ!ro|?;YzTmEx1v&0V+p-8>A~v9 zn77tsdU8_9)YRnZiq|aA)uhi;pV3j_AToqxqsw5fuooUdv}&;=9l=8VWGPWET}ky; zl0O88<>b|JYD8YIq|L-hqDS59t6|@GUbl+r3u-$-k9HRCyr=`i1|XTGpeJdMJ2uJ} z9}1bSp?s!+)`GOpWA@5XR8Y zvC(e<0*{?&@Y6Cb7#RSA9}9+Ppv8_0O~}jt+mCgLAxom>90*-BYVQ86mVP}Qe6b1j zbMUhwy+Rj9mF~wsa}I2>_IGgbw3(;x3SkdG8DDqo6Vp9^9%Td2&{FTM#Qqc(pNLANMhKBR*mqRG;QBI&~VOkSba zvi=0)4kL7&oAip(4w@6x5ys?)&mMEy!(P&h4%-W z)H^bib}VGv$mKPW7Nf#@^@>1aYc49d0+XRGHPG-&mm zL92G$#J~V|yYBt1d$ymHp0(h>0fjyBa&qt1EqM{N+V zPfpIlDz5Iz#|dxra>bnhHhi!TicBI?EMMl@5usycGJsq2Y0;k8$SpZlpAlgZSws5! z4(~rUvQL~@n$;RUE}<%+edgZ8%hgefjC%V|8QDHE*{)lWV_17!$^GGe9OoAv>JQ&%KJLyogR1-AZZp_?zh+W|L1a-; zq(LMCcBq~BB;k9#G^lDKSpkrsR3&ecy6zU|{O(hq0i_y|f8 zCo8|UbThe19sPV#(S|+HhL2Fk&UiP*)X`Sa1ii;5ly1kYVlizsYl|v};nb zm9-%1ssQnZ4F%@OZ_<)OYpDM0Frnr5r|vGR*tjCLIG{y~z+$U`!FtLe0|)u`S9FrD zRG(^fZ%d1vx5n*AGfS*asEG|35Iwpux`nP)a)s|vmQ=K#G3s!`h_ujJ5;ZNqt@T(p zCx6)^_kK}6`g_%Os!?_D@A`zQP!*7K;@3V_1AlO|-@nvHqIN4^B`++fIW=1TM(4(q;#4 ziT>bW8-RwY!}w&uUY{vi%xZ|yulm?;&qlDO4(SiMuHD*p(r@Euol`*caw{tj3BI=7 zh;*y6+4K_R(i(NB)62nYGlv_v+Gu^jHEZ%;(z=!Lg{qabPO%MP!x6@xy3#K>xF)Nu z(N-<+5Yrk>RW4Fv3mb)nu~gG#QsFOm9>1Pd^7`>zy`0;(X(^rb_%WG7CQ3L0LMERe z3Mrihohh4qg8G~3VCn9nn@O}ZMBH0)k_>V4%0lh}(~H+(dfG_)Fp-J2SZN9!8IanG z`B$d<#+}$OnwzN6$lQa5cackR_D?hGgrlqXGqyY4EEkIx&dx(iH97l^skv78WB)05 zTCV9yH_AHGFj?mh>57|zjMK2c9;`;3jf67Li3ATjeXq@!w2LYDd-I{W` zi^WyP)7bP0?YN)VAF6NyI9vtVf>nmS9ad|CD#*KXhWKD}nDOVhac{UEUaJe?ay#$X zeX`ZbxwX>9A$+F1cxK&9=6KiVAg zdLaZP!Ks3M3hZ*=Si^qWo-lFu+%!6U~=lB^UM_%IUvhQ4|8y z;B>Pw(GeBr7WsTqE3Bs{WhPDCZBfNVzyhxTx?^I>f*A_1@A{XslH~e0o-yy=&q?Yf zEZ}mbXaAQ2lBALh;S~H#Sfe%8!xW?Rzj>J85SQ57|KecM8yo70k^kaYf+!*N&t(rW z>$S1XFbEna2)hQN&Om4;2c*3LEl0hgU%+eE>m|F+p5oelGKm%9NN>9592s%P_8Ss$ zp4OzDD7GE@#dK~6xFOaU{F(JnWe?>~wMD?w7TOmZ02U~KSuaHV7htiuVJ6v{IbCHx zZ8FfS%|8>b@^bpcD;jl{D;K@Ayaxs z)cLE0T0WS42c?pUvkG+dIVR)*2r{i7gA)HSaFM;2tOuD#!i5_8ldzYB#>1a_8lqAB zBx}cfs98`n_F2a`=GWj6o{Rwlq&L)DRP>GTBI0RU+9}L@Uzx)KYr|{gfWe{N6~{vd z9jU6gXheez?vRvc#E4A2c%2r~UtZ9S*SMWWb}t}C=c_IegL$h@-6wsvy`)3v&CT>C z4SunYc;n?7*si*>G3CYF4k-h8W}z~N#4|HP*cJ%)qs9AxQ{i0C!jGK5eS}ugN7d_G z;l)wg;Kk9@?}v#-Gfuesq;5b)#==D3{FB#@WR&G5C=M|%4&Q-oUFTHbLZW;ZKnHUz z71u=V(H6#Ee@Un$o-K$UQwPaM)WQGPZ_e#J)b;6QKs6lvyEBF!Kl&9(CKx%106cn1&ar@2;HF>h{VxmR$I zm%0LvR*1J>lvmD~SAn~O`tjE?mM+b34GX0~*~^w?tHQ&DcI=LONQj1JtX!7u9uYzN zv!C1}!uc;hN`t2~^;yeTWV%O;K#T1b&Xc!_*P;f)ShsCqC16Lmfa_xHA|*B|D^uW^ zU{etl;y)X^;4nz6xeA7Hnixw}M4=gIu(Na=r0!9mBq(I5OEY2b}@T|pCO@K;5O-YhG6%WF|Nl)@> zF{Z;0;s8r(i=DS*FAh%$d1Uxwe|+(h1U}Wu(WGLr;kHf(7(0F6hl=M0V!$ z_qB%()xJM>7>0M5MEb#>?^*Av^g;1|h81nH*=ib_Q!|!ypj&7G{d8(->a^)8sZ(Vg zrzf!p8A;QX-ZUJCqU;OH&ItvQbuS__D?Btk9R(DkfMgWFVm~noS`!|a95PBvUWq-QfkVxz)AQJ9c5J3;3qps#Sc-rq> zz+s(J%EIwws3#$wLvhAa>TJ{`ex5LtMn74IzQ-kKsn!~EzsWUG0+9~JgJNb1p zw=`(3Y^LAJ+#F$@jrEN5J0U_i4mOFTb;^}!U#57Q5*vj|uAtea!iv&Yb4Y%va^*wV za9ch6>LFgknO|AI1-P{wN!`ptC^)sLf8>|>IFd8 zJ}cn-*{L*NJVlbL$fa3hF2vlX?y3~QeQEW6#fWD#{1lSpBbV~VTujUrb@{|ZY9c(` z%W`>!Bp>RKOBW9JTlbq=#85{^s>8F>J}qOo<0j+?vLrHPd7JtfP?!*bD^p}60*YxWnf$9qH4MWYoocywqSN0f<^`| z%r)vtKcP9CANF9%f#Dm!;y|GOz^}(N?9Ft$P;&-OS-NT0ECdqP%<22>g6|Qw-kQXu zPKcC6DMBJ+o_rQCVFK`<_ZRu~^uzW;}j&Y7U?XIIC*pGxwPqSSF36r(+Aia&zqJ(%RlCNAY0p z)Zts_b<6FM5a{G;sJLfhgROl(jP#rJ!05&8l*C_ZVJv5V3{78G@M8gIR{Xet{!Eg} z=rl6zA^WGiyd1S?Eexs;uiquwUtF|kHnuw;B8p0@wl3-?zfAXxv~V98Zf_N2a9Gbf zZ{(1<(|kR$e71zp&n-;s9eVWc9XflctE+W4G-KTld>6#3aF;*_K?rQd8HZ0!8*Sto z7GFdQMVV+_e%PzG5qetKB1)O3cX22wO-;=)GjeKYZRc*6wPxEI50Cj`)})BgyaYd6zmAq&M=Pql7vv;w9Qor{Wna$?XauMNwYa16)GqU>lt48q|w`57&@(^;Lb9Z)i zC7T|RLrX_b_a+C3hqIfDB4_rTpu)f&y<={GjqeN5Lhs|^a8=Bxt&6TL7~Vq5;i zZ6i+aQTcZA4-578`-d0kp5E{RV|Qg3WbRH#+>>sw^=^%OY#)P>g#h;=CZQiJ(9tD$ z0~r`!%=E&*7#l6nWYPdcHGx=J6f)G+M!Rrf61!+FeEE_dIk29vDnB5sP!O-lTk#XG5MKAhQW;32&sPxn0IGN%Kq$}nsJevG9wm@Kt$YeaU*dqX%t*;NcNF!MDX6O{^LRi#I4BeIdu;pyC%glro;bMu$A1#>fZ~8I$_s~ zeDiO02zftL0~y>_K2&(8Hyv!QuFUy|tsp9KJh&MG1_W*^)nctobNdIdRg)d`sp~k4 zxIPgPolYmz%wE1{*wQiMCwaAM%&)orz~O_34w4V;(|ewkLs%f!y+*K1T^2;l zzTMIi-cIB8WSXSxNT`V$HXtg#Ai8DbBuIA-*fiDKp~IAQkTNp}ur)>-HbLcP0T*kC zhSKVLgnYea)6o|9n)mk|Je-h_Fh768GBVMshEF=Ye8=*`vrARBBZ4aeqgyslUO^9b zABwjg0Nl}0|0q@-U63w>ekBSUm5S-{8tVt#Il5!duqCH0AC{5+`bX7=aIoSYI(5(5 z{XYN%k13`$FqT*V@#I9b7}C_xLSymZ0YikLD3#%t+j>q552=!p;dX2i6}@lqdvm%bzpKiaQr1(s1v!yaC~W<8u@U#8Z$6fK~zr2 z0d9td!uhS#XzK&1;vs)Bn0q?7p?s9y3Gew7PibQ+SlD2OFjauP0OCtyVk7(~{f6|Xm>|HR_%GJU-#&1CppF|Wq0 zyS2M8S?W3`H$1-sV)+u8zMM<-ig$BTIymd=8$=s8xw&c^LpTPbhRL4}3ZmPuc*=s< z80cPO6ZQ8=Jwir%=U0cWh>wmN>)6fK_rm#Gx0G{B+uOD+%^j2&*lBX-0nQfP+6my$ zG^1s}L}4(A7rxfZ6UBrGhH32&I!gzn0~7+S)z#WfdvqVdC-oUOtT=G{@->IFVB`c+sjRWF5KyPhTns;GeY1@lvEonW);Zqy-leBzAYg1#OOY=|-A z(O&)YOe^$3f3itvs?aJU8sS0tjLxbK@)n(2JN4spr2!=il(J9dQpcVc;68ZpOEg8p z0LK_4EZnb)1+IiIg`HdgHCaJkFCHY^W)SFShYP2?Ll4>J=CaZmBpk2P z2}Yn-9~*%brs85DR!nCS(`_i3j8J!a(E0wT;=qiz7jm#J!^y3Cl4o?ql1P;`g=L9KDlRputQ%TLi+dVHJm(5 z*sR>Lym-k5&#B{i=Rt#2u-Xk(Q(M=|x@3EHCH5=2N|MZ?R{l~im5>#-`Bw_uXhXi(OXORsDFzeyNtlL|X zzu#EVLUhI8A+U9MG{Gw+6DMC)~4THj?HK+Q?Ye{AT z;=M_k@>O;JyR8P>?$qRuG>Dk2)4bFva%<`#8o{(@>0m^-u%nuEl7Y=5)5b-Nb)Y8b z5i?enFBgrK1DLT=sSF-C$gjWhb4{wu>%SN)$I3g2ohHVK|EqLRu(g{3__`6RdH-nB z%ua6Yxt3Zz1K8VR2}-;5&>6(pm{tc8e^qZ^LVSCB_>yS>9&XT~15_RXKKWIVXTZv7f`j z0`SA1m38VTR#uas9q(EiK>-*9IvRmYZ4XuLJ6#1kicAhs7-^|x00uC}wAaSkQ6ug- zZE!8BnCbz<-`!&Xhzg$Weq8;rg8)5nc=&As+lIXOvp}fn3Xu0H&j}z5_a4@Zmi-gbbs5 zguT)Y_$($ywnq9_887o4 z1w=mLBn_(VkCV4%`J)&c(bY|E+LfwRpeYBBeRS-a@jueQ)Pr+|Am zBboPSmm=PALBQwI;vUNhd6%$(~^Zfeq#>2|JH;8TzX zSK@G!vUNnZv4Y6ftfQI@9?|ak;eDdr^Q0-VRUcZD19Fvm%z1g@yT@y2*;+!@t)+DB z+Iqc*@ z;{wKyr)4;B1?kDUHI$YuJ1@KZVeP?t@i1j%u`{HVD`1I($w#8l+ei+JCJ|;p`A)o# zHAK8Wv(aqnEZz^*-M=K>KU@E^v{1aChWotU#^0I2MT|em?jqp7HkaetT#)-!F?Ff# z{uJ^43%DkY7Vodu-j`0t=l@+KWhDPjh~yIMi^UBDw8w_^+69Ua`62BSYHnxJxmgD< zA+oR(k%k}Ib(3vYFbc^3O~7U(FHHVpB(>5>C2;Y1IC36>fXEWGwx{V zpoGDJ_O9NFgulD{V|dKti)3e^wXvledZacSzgCB8YQ)i=O4}%ab=3QLS@E$sIkBU2 zxYgNlv3Ys1aoKr$W{p!t3>;+N&84O!(LQuoNOv4d>kyQj95i_R_`&QC?(f`E$FVD6 z?+CDW8vRLo%MSe^^6v3%Wl>5cloaLwYGOg$%n_~(s5i83H#b?-EP904(N)ANFEqoW zH$S*F+21j9*rNO%Vf|LbCn1C9ys<1vDg8JDEF3HY8#h_fEc!W)V_%Ku(|h$H{D8k^ zK;*oEEE>~STLU*^9NQuV=S^DyZdo~sKeCJTP4&;~-<@~pLiTo~gUIz6;R{o{Otzm9 zSR~;{8)PxzKW0%`@$Xr%@gS|$vqFEceTc}-`D?p_Goou2sqxN|L{->;K@N7VJEtew zhYTCmy_+gI58FEnJuA1dD?3_s9N^?Mc5Mf%j{fv`#`v;si53|i?C_&`DCgY&Tu%Fs z%5fOpP)??2*Z)=ytfz&TqzCopV6wAGs?aOLsZ~`de+zGbV7;uhTQ&5z9Pu}SmSWp2 zy~VoQK}i3@);~XKHb0~bIoNT=jH199_LCit;^`fD`u=}>`abJxdpvFD_m5Bifo@7^ zd|K>jIaBKp{ierHKS;Fad&hxkLL^j@p)9A+q;g~ zi_e$-=Fs;a9&hYoJ+X@$Uz+@5XOpv!EIji}3g3)mj|_`M>$P0)U%Iv8V`nNR&nR*nHPnnv4QLxko2X6egS0SbV?q(dZ^X!qphtEZIb1^7()`!W9 z#V8&B$W71&uGB7Z@~(mbz0AGRoSKH9lQWW&rgNI2)U@d{Qc{Z)H{VTDP7|Ip?m$RZ zmc|Ia8#w7R2i?An%TSz=-51wj@lXL#K;!TWxG9TTuA=kSh_}n9etY3eV$!z3E8+;Z zD*O7m<1uktfo|6gof(=QI>3V%564mzIsh3q34P%IxAxl&w&@Adk2TUmIv3GNX_rM? zQ{eNmqg>l4o)d>JO09~Q$Vf*C$G?^zLnAb>X3?b}(SS~9E|r2p!@sWUA-_qh)z5#H zwLy^Gz2qe>e&%|S!J50WwolbhWd(Kq^3Urkp5hyt*|dJKe6u`OX2Z{y%cPGa_*9%G zS0wNnQJj|l!UjnFV#KORVJT!^Nq=A|_>)M1Pvrr8M@s&rT#b~Mk+MjhD5g9te=DX~ zr%fq4tb1Y|?z1PVrH}ALS^Z)zSut9CVy?DS*<8hI{Bjd{rRjb-DSIsDwLtsHZ`G#c zw}N5BOX8pz)IYU;Y`~a| zL=HAK7%&pj%=h$2*zB&?yL<2b?)m@o%{k9hcXf4zx8AC*s;;hz6R3ILPMR^>xMz#S z_)cB;T`X}fCd9j#;D~cMLBHa4X^Trqlx}D_&88&Y+nv*Lx-XhdKZF?#xwa~Hov}~L zXwUFuaXx$G%w7)LehmIT@cHS;r#5W6k_n?;ty=MLfIc;LWsg?1JLF$AxcZcW%L+$o z8E3qno^zGkGjr^lRTHnJZq%;!Duln1%y4jSk-YO;9>j#XoJ8Jmt^z(ldsfxZ8F4!-2!@&YZ?P!-;Ogy^NKzW+1&m z^l;Zxr|P`?u}9}@_4$XD#jteFkBZa>sMRG}Wi6Sa$l#Eb#~R;uH~eD(w%Rr0mJsWH zZGkh`+j}--xTm?f0aZVAaQW1M>Q~jM~7JH&_R=ZQ_T~vlmp}enMyz4xq z@-6`3v}aqgsTfO*7RsX`Q^zj&u}p8U)IfDF6@_$VKI|exSwnvKC48V;*~no$W&&- z+bz4Jh8O&DUc0b1UuMm1?;h;Ej-<#wQKgjE#*>hdpwi{PxSNC94*!*}RaE@WaXbzbPZ?%F8yf z-IwZXmnfejCCjJZ_QOq;dvE=b=OS8ebZ>Ahk2&3bR$X^w#UZP{>7WlQ-{|wA#q+u& zFKpd-W%|nxLscD>`{0a6KE-Qg@7_)M*Pgty{frC4OYB&5p0&aAIPWv0a@hW)`2ApK zj9^B;!DQ}fY&U0&$MbIIA1>Z$aW4Mc<@;l?g*|sY$-RChjjiqV>n^74S5-_E9nP-K z&wWnt9+{C2-cz&coF1rWN#$S>x@0kxleuq?Vw<3|V^rp($~TD$7{jhx1;@JYCULG* zHFrnOoBv=hV^G`oKAto8!A^HLrSoUc!vw{ROH5joMoH|2#N&$Q$7RL;*;$eR=3>Xa zuCiw;2mWztvVq(ur}ovKx8CainaYwqdj^%O@69dVv&=cO`K!+108wMT4M=~dm*Uv218 zv{I#_T{e7G+CDB^<&Wc{m8ulB?cJM?t4{AmU+CZe!svJIxyS$NjH)(_1%m1`8`G&> z@eURg^W1mbbS7skDdfC8*wEYa#957Ih*PVp>~q|^+IaUu{Dnq|&Ip(mOHU^-5#%EUFiaWeBIktjbHP0@Rtww@rn6H zO5nO*Cd4wU(!(fVe+Fu3Vf~`U$EYTk)Mj_*@$!%GaCqb;}ZD)ciV0y>M?7GL^ z5<*B|;lk!g_Yy<3^d{@5dz$LSgwype$H%x=A>Sq{dc4-tPFA;pQ*S7rK{sP&s5XXs zMVu7ar)WA0Sv5uqs<~vFMkm)E+?mAPG{sTX zJW3@|qc5Fx4|o6c%DwoUwq#fMT$Se7<`XLQtRvy4RG9-Wn52Jwqx+h>7L)W#5a|E@ z2Tnh^6Pv^M79nmaJMYfr-W+A)1pA|k_{G=kpPaVF-myS6^n2#E@G-utj8rmxznr^Sa;6vkdCy3YKMf>MP>6do}zCx4K) zDhbNWRMg);v7oPN*WvaMw{8FXha}2g1?P`K8uzO7lv;CGOT0%Vojc0?=3MM^Eu{)j zYo0uIH*(*O{Y7PO5jL`VpG#BRSJb3kD%Fx1?&l}m1I`z1TCih_3y)7lUcPCU&WGDn zrTgRWs5*x(ymHrZ-ycnHuFfk};Y?tQty6pNJ5lxAB=^l{-EX?@PgOb2CoNaGUdQU^ z44Q{!=Fgrec%_hMfs0b8Pt~77rt?CxjjD8y*K=!oq<}n z3QNY-8@ZwW`BXJ(*Q;DEsoST*?5G{xpQ)^q&Sh+|dtUGG!^}yROR<~us;)KU8nc*_ z(63CQE~zB$pWms`?ji0)%Fm2Zey`nQ-bK5|iy4)T_s(B<-)WnyiEP?M_vN{c@XEbiZQP#DUuTrLk*A zESWJjY{ZD_Ws23~mH1$1d-ozHZrZ)VY~Cf1;^&SrJjK+*_=z6zA6I{TZB(QHWBK-! z=^^g974K-bw;omvRu5=AqwytGyhy1sDbtiLTD&+C+3B9Il3C?etx`Gd$izh5T${A( zmJSt%HONz}bgR#k6=_+#V&TclRMin9c#5s20Q~43ulRkjjP@+&^EqQ>JeiX5mN1KL zI?uU}#?(`#j=8HHcP={Vu5;Yc!u@SbLsi0f%-OMx8_nz+?IlRPT>p4Ru1(bjJJ%Si z{`|eHbB+6Ul9HV_jTyJ8V~OPMh)n%>tFUm)dEutAoS@4E^I1vPo--g$3)CimH_+nD^m-zxLEP=nSv+wGfacQnOW z%y=1hPn|*xZ=_5Wm`4j@Z}9yp*S4(gGa1L;cW*aqzHT&gU)!9m8x-<*-am5Y_hdI; zum-{n&os+kXJMZC#kNQ=q+88xGc`v>--yt+3pYdK7P zpsKqk{?uqjcyktUC}JlocCqnG+&vZfj=(Si3)#CC>L*o>Jp0&7t-AY%2dd`dDP5a~ z&uH{hkp|6(TEo}{p81}7cH6ytiY#&O;Nn)PNtx=)*i$W+)||a>NU;OK+oRTW-`UI~ zk4yUc6l+zqXWhB268d<l8|9FcZ$Zf`0sLd_Ejqs;sshwzuxRtaqbq z2TSdUUK28AY{k5ruDR1bPMXfw*Eds%>e+iVnEQpp*X2l>iq$6CxGQ@?Jo%C9RnO_) zn$w#Ja955oy*A%_=EvJqbwBqM!p${oS`rV&d!76FGP5KPHoN96$fED|>f7wEMGw^5 zpJzoy-g(krvoDj^Y+}}Na?*1;U zVy+^&0t#eYc6m_2yruF4)Sk?ib&We0EH`Mtkdc)``qam~Q1|xy&9tsl4S}zOqL)sQNE!VeU*S z$>o?Btzztclq+BCVaHXzt#TUWysi9?=UMG@`x`827Q^f<%s(0ZTf_KM$% zT8wX2lp{1I!%zAG_lrjEueA)RHGg$1=DoXM%v>nyjPjD`2TyJk~c{;>hC{f;^NG56JViWk;JyVk1Nqj;SfsdA)9tI?&vd)udSO;W@0WOY?fi3gRMWiq z8vl;g>2%pc#tvD@#iL|^J*Z=Uftc0qKonxKg}0?h-C;MOcm~C{+Z6Bd?RWXeU8`!( zzv#-Em#40(e5>q*c?V5&7Y!X}Wc+ZK75W#di?ORBc>K&M6cM{ZzfT`cl~)P-xz&zYx1Lr? zm1I%1ZziiET6y=I4=?zr{;H< z+ncL+*DY^tdmI=q5&IKq&KM=+z})9PG*uPT%KlbPt#@D3!=EUL>0^gF&Hc?>BZWRu z>mQdo)ms_v82425l5aF6c4AC_)lIqFzo9|RVh1>S(2vh*FnItC>L=fOHK-Z={~lh= zvhCUFa@s(8cwu%px^C$!^X*`8j?+ zZ;q`E>oqClsd7MBXac?99b*%GwXJ1^U}y;4VJs|xU2p*&gPYDnO2`AmN^c4MVJfVF z6L1&aA!a|w3be4TY=t)qXaM+!|@Cu5Pv6M!a6^PN`O1(W;g`b;4uO; zfQo|!vc+rzg8(%*!{IVK=b_HBN>)1<0<&NhQVN7(PzO4}D2fKM^`;*}7&C7dtfmjM`u@#9{5Qzk#O)^9d!5=q3$I*E!vEeHkD zk%;>fk={heCK0kpjBFAko5aC@Y!Y{ev9JVo!37|_iQOVeGD2af2_0Y<%z@2t0&tg< zv?Of}`9hP;!tg~31%DcJ_NM&*?kkbCleKtm}7 z`jWCS^n~%S4EDe!cxrdFU<#uq*?}<9H~_h%K`v=(0CGu#T+$$yG{iH_U3e#w)(^5m zFf@ejutg*t9;PD>>4-zR5fA~th@`h50E$9w=m?=O54OT7z-{{XA{lU-Av;utjxZk9 z!6|qulFg9U&BO8;IM$2M{HaDG6kQ($ENcz&Kb6yWt`{ z0rDp^^2&_7G9$0dU%*!|4c5cAa0}jw1SJCe48qSK{0!;=_!+buw!vwUEJ-0JP_DAn z1>B~m?vXQ=Qq%T`f7!S(;H`yrP z*%efT7J!arM|ZNXhMjO6z8A?s!#PK0pkByYe1HH zkH8IhC6dntflv(UKqnxae1wy48=Qtnh!Xic4SWt&pfwDHuVFpxg)2b0$!`LF<|obh z8vwG+KS88G6379?06z*eflfep1zw62BtHw17X@)&@CT7X$h}Z2KnDva24q|q85c&z zg%1MqElhYt9FPG@0pS%vM~iZA(UT&@@T=H3SPHx0B0K?PRy-Btg-Y-xd?ixCA2tJi zm%#6m_+1jeOBR9}&>n`u0g+NBln3&))N+wvKcM^s2SY>X4r2km3r6pPF93QMjNX+- z?@H%^5NHYgVJfVFLvRgVij;9eMkow5p#uzqIj|W{(4NQ)=y=)AFcQwgBZw6#mjZG_ zMQ8!5;UJK{a-^@k!|reaGAKVCD7)nki&P+=E09MO$ma^=a|QCb!g@GD16XJyh^`7XQ@sgeLPL2+mdJ%O@WWeMyOsX7}r!Ev|)Z$+y40^w96oN9Fd zy{k4tqJ6wiPUyMAQXWb z&>lv?LZGbIJ`Ir&MJE;c)yV;6p$QOX9pqOB`PJD8=iw2MhjmjxZm0;~zz>WvH3N@G z{ZxPs*RKS`zd0%)K zri9;=@S75TGs161_{|8v*)y763f_yfxCZY;TJ{zBB0n61oA6qsl?550Fw}$&K>MW? z?Uz>6bFFaO>NX(H*5qgFAgBP%0smT0hE+g0Ykd`H2erY^HmM;G1VcmMTHD0X0`Rvj z{({PBfIuLi*#^61}Ffd0k<7KhuAr$7pRyYL_fZVzf-)`BV3^ax<3fex=61OXbJsc zDv*|5heUd#uf4gicOB>iBj6%q=#;BId*Bj01-D4wlz`m(B9p%4W#3^ydixQdew3?z zC4e;cBaQt?V}C!$3c=742)jRF_g}*PdZhoW9U=qJ{{b5S{Ty%$eia!=ng%ul^k`61 zk-^AvFzFb)7$GMf8F6YnvzVG|q& z(lWL_Ag^)c)A-gvS(!i@CXj{+LjnDtSQwD|#Iq0y#D5a;pG5p85&ucVe-iPZG!53m zk0O&h!3ekxFGZ#pkRA#`b!Z2~bqevELLN>n1F<60j=&G_lgM-jqyx&<^lH!+2E$C) z4&RD=jUIh{Rb)mtI4m-=BFqz+l@yTm?7T1qRs;Drn>5eH?>YEACj%6M8h}2{As%zi z(H$%X+%p$>F~eTwr2+hzhu`yBKtJI6Jp7zTUd_7#xSg*9@tse6=M&%g#CJaNolkt{ zZvf&u{}%izvcMMtfv^_T0pzuScrPHo7ND~WsQVUjZ6VhdE`V@21NR|XWD)6GloPtc zSU`@8Hi|4JPZkdpS>gks5CQK+mij>ul!W@w8AbwrFQr~tra@ZB2js=F#t;Ta;U*BD z<$ZuOFGr3m$j=o$;WALRR|?bv(y@|!UpZf773o_w6qdqyk<|@gD(n(j!~JWf!#k0+ zxL>;vw!>L?B(jdWW!+&Q>~(KM))W8r*`XY?fzd#k*B=7X7^VT~3k!jk@T16vF92C= z_*!Hm^4>^(Y@|$YTqm;00l3?QUT;nf#C`KJku8L?1%2Lv?rcpCD@;B zwmlFDM`yx`n5Z@yg;I7C~bobjpAdikAmt$EW7#ad;I5rlR zh#b!d-CztXhMhouAAba~A}3NnZa_{akmm{fJ%N6l*bU#quOcUr<4I(461kr20wVyu zIfyz2Ixu2H(Lek*i4{ z2jI_D{JA;;UW8 zCGr-Xd`p_%Qs&-;iTsusYQi44B=WvDklrZtC5o`4JHrgNH*WyMBW401(^#&@_Jg+~ zZcO(WmRh!x2$h z6JVmf&UKwNvW&dY2&Tbqcqz)kjz~B;j>8>zD~j<(m9QSPhmo)V_Q8GN^GQGA>sJKo1Ah3efbZay zs6;N{WnrRCa8Oj@l#mq)LkRFrHE~B^QcvQE@D2PbDhX*wk{L)x66}+l5tS6bk`{vA zfV`6Kg%_fdRRi)SIq66~2?!_oYf&i-AiNaifViayg+*{tR7&zECFx2@x>Ay^lv80H zAfHr;p*kS9RLCtgaZA%nR9fPhE*+3(>9fHEh!T~7e9fo>*E13y|0=*r@&0E;1>jde zBT<2kMP+IMZc&+uZ{|KgSV8y~v=NYFmYJfm;!oB#z_o0|I~!qSPXn!ixMzPODn}`3 z0w+b~^aJFP^S-EDgp-Sx$)BYF!uo6#kPo?21L5ah0arxj$p_q@XNRb~MPVR36_u|a zEEe^7Wx!p2{K?OK`3D2C$WI>Re<-SeFJu5@SOB>dSO(~1fn#tD@T)+ysDcR~BM@Fe z(!w%Xs^A{LpMtmHrKmz(U?_YG-@_A#5>=Qm3KK?Q!YE8W6|M*5Q{k@wnG{|K=u~0! zr7&qM`~cpHDq=z!$OWaKEugDKB19D}0J{Kp#gJz)(o)<9HV7Y!Lv3gSeSxx8VjhIS z0k{D8Q3AaxX#jdvGCLFpbfsiV=n33Yl6y+!figfGOA*IXq^lI^3MO5_1)(PNgPrhB zRA~#+!eAL zs}Q#;N8m2}BC0BRU6r_3?Fz)X>Sa+(Csoz3t2PX#!$F|@Rf~jQMO6<3@})ZWRG$x* zAXZe39Dsakj05azAiw`EHHV0*ISV!d>0*3HF+QYfbpYg13wf}(m8x9{W&pCRO@7zO z1l?c{Ag{Wqp$ZHD(qGR9dc#do^~vA*q_;llum7{C29(JL699c}fG#vZ7aE|i4HcjV z4MU(YbOz$ra4Jxq8ivCyQH>HpHYf`%fxK(90*GrP^tiDQThiWk zwWxMMKsfDw6V)EQXulkgXNMGkZg)U;IvfGy`DG#K1?c3L=z7P}PzNZRozSCBi(nU! z_nnAuXUbRSj8GKn0=m%|d3HuFohi$mufj`FUC^yAnV=*zgq|=FR>2{-4&-0g1dtUd zk6oKWUqH@X*TGS^4aAEv9@Q-;Q~+e%Z2-)Gjc@`;f468+-IGHes0?jj2+V=4a0VWN zTT~BZ)gwPthYk=53t$Ia0OZ_LgY-}sYC~rj4NG7TT!tS-^>RW06o>lI9mc~7H~`n+ z7g4=^AP9n?G4zJXum%ppO?V@!j~`@*a?l+5!*mFPV{jMVi|U&cK7$Zw1%qG~Y=%>C zA7VuHO9}a)Dzt-PFb{}Re+!6v|DsSE@TdPqQC~S=6%hXc=)!=(FbOCt0||FvPFM;1 zMGZnv21NjI8k`>phvuXjf*gkOj2KFp9r^`K1Y|Pwx~O3s4=2pw=yYfqQ6tI&=^F7; z)X3_9K8|w15>cbGLNJ^L%EM^tyD?1x`HdL~3q*}IfHE?6F5D9}Zm6j7#bKtX2|kbs zIG<1#I>SDoE}K{uC?gZw!&fj4@M9wJnz$QI!Vf@wG06mfAk0a`Z!)r*Ox!1vKap!c#Zmcm#7&U5U&~J*^I-03}>Q4Gm-U7 z&S(B4YF05A2Rq<|sM(1jJ0O$U4PhD}n>iT)cXL+2c_4jr(T};6p&t&&r5l4TQD%ny4*PL~RX(o-i3m$5!s& zdPdYXbY>fVZzGQ3$UD3ZkYC~G`F8SUJ2Kn85_ZBxQ9IhfaKO!uweSqk_noOA8Y@&i{sSBz zApZ`ufT=+I4_p;>kT@LtS=1rYa_EDoZ(70EKzzTs0*?Uy4!huUr~*x(6AT309$pT6 z;WRuGW-~()Kwd}6LTkY7kyE0MCW0XlE$Ukz2!I=+j^%-1XbI%qF=T%Xc^Nt9H zoH!p}2840^m8cWgoj{LH2spapl4@D-&sHC2Dm+o zUY^CDbNF$t67+$kfc^PufJ`nVgk$g!VnkgGf?6<7)TLw)F6z5tK-?JHP*>2gtC>Z8 zpAn`3x_2!*l!4lSY_Dw-^#l6x!y-5duSH$Q{dIKw`e4`$_eI^v1Kf9mJiS4l-q;1` z>WwH-H;Knh;&_ud-wXrt=@#<7RR!7tx_XPW-JU4wPFg^ocecj!K-69I>uz@lg&D9B z4gvn(BhB}a)jec-4?iMs8_@_l!CFy~=uzZ!I3wzQR=}V8-1nd)jDR7d}9qy_gGI0KNaw z67^GYcna@Dy-W2+;V7tr&_?=*dXbF8GGmHfM^wS^jPVFo-DEr}EIK^q{PBx^)V+6V^1O87>!WVwK}GgnDVfs9g;-jvv-WWU~&U%_e7 zQsGysH=?CBAUOoV9nsQ|e&!l!={Qd}N3`^;vYo!OXcJwhqK@jEmHyL1IOV9cm^!Km3bAMft!HeK_#Fbu<>rtPoiZZKe8+U z{K|4vw5&};%SK*g>j<}ju(Px4s+UZd=)5qs&bYHQ{E7ZWqLObVoi7%QNWR{m&NlBf zsD16Xh?pViJ2RxH1X+6T5Z}p)u{;s0xRn3@4(?l4aZh$gX%%txnH+}neAZuXpT z+GY>wZM8%W;L06memwsNvnSVk$GfwS{~3jd*I)5m+S%7#?IB3QeUnOff~Ilz_!N=N z)I>{NFJ*lKm#p#KCChy;%Ld;lS?`-fR`?c?6+SIw4YN59c>TB{U;LF@+YPf=!7~At z!W`HEC*$oK8}Fn$=c{1}cI99V$Bp%r?yHy!;@rtfy|#qe$3|IkVn4w+C`*~)y51Qs ztl%okokL`UbA_yT?2{FaNLdl*pJ%m$`N+m&IS}WMXM&@WwEM5&`SH{HOqaBC-b9wa zK^QuE0P_(Tkn@i)%xcok%q4?9-s`L=W&a*?4rS&~a5a=XRu=Nc5qI4gjL!T6o@Kw= z^^zRUV9y*^DauXazvJ}Zo?FQB-y+1b=P%ujmFM<#pELNk0KNQ_*ME2Z>9zm<@sNKA z%MR~TK8A6_bKml?Y+MWJ>GRg}!e@r(n$KsRUwo>2Ub?DyUU>bPBNhI}zxaE7^UG8- z0Qr9;L=L#xQlD{dT_(ImTrbM?e}^iv&+3NT9+J{5C_VpU?sIQb^y#la4?n$bIVtBe zh%4s*P3$oK9;=1t*H51_zU`&ZKf}B&b^et1Qry}iRZYx)$p=YeyYX2qnY?BK>EwG% z8YSo;8GKhG^LRge%1IlaT%K*-^M5)6BrZ(z zvGljn{CW5Zs!FeqB)lNKe13~}H`xNHXI5%Fu7ID4@?0e&} z?L9*sv0ihJ<8#SvgI(2lZ1;N{FNsqJXcBLB@KpDn+jeod;^XoH_mlLso?-e-33E)8 zyv9mTDr21Nh>u5EBa@vbvEw@z=0P=YTcMlBt=INUhRojkxW{W>TfVmMi97bp<@!@t zXtxi1EMyzU8cdsy=U%znvNzKb$JY`@-5+N9cqV?#lfN=u*SO~}I`}DX{_gzKYya(I zR@?g24?C>C=hN%|!7)A5UJ2azXP5E)vcqfI$A8evoPd5$lwK}>nQ9D|usA%EG4neT zNPZ(oCKy>|`5)J$JjdmX;hsa7qvP!tU{1qs0pCK0#epBcA9K$tsc5Y79L5|MZ*RMu zf!zXU9_iqvK)m_!{9l`G&6+%CKc}r3Lb9x17ZSXT17$$7jVOd!eU z94Uo9p8r=&WKjGg-utV{3a3qJS>=q9Ri-ok{G$Jc#b`LZvJK1i?s z4V*iu3k=C;=4V095W=?UE>pc`f7&GQslFMq%G(aoo3a_RCvSvLO6FSD@R)yK;T zeY_`Syg4Jzl>ON4fp0jk1VNCS^9aoHm}_A(^o5Bq%(Bx#hdo=e+gHJ?6tO|Lp)b}s>+N1o0yekwDTzKltw&%{h^L+vIJf$ z$?sYxAvTV)(#*LR9YfEYy&!_)uYiRItXk64xmIeLyC90OlHL;L8i^Y)F9FX|@9_*w zp7GAi($w0I&Loekhs@&f_Mx~v!!f1{KYY4!JOI0+(%B^(|0QWzeFk486gwgbIf@Q1qR2uq@rkr(=Z@u+Uuz0MxlG{6G^Ko1&1Ld85TA~ipo)rkz z`4p8CRtMRh;8*H{4sz7l!!zgOn3y?3ra0QjH0Mj1VdJeo`pGymm27gl>1&oJo|B{t z?#FXH#p}KZ?ufsMJJP)z#+acp+6-0OF>gV*IT$}e4AuPW$gRW|$BksbNlgz}X!*dwntj8Qh_ak~TNMipM zL_PCv+(Wko7&CxKh#-#JI`%18J)J$!5p}7a-7h$+)7;kLd6JpW-@GYU_DPTOP_^ z8>wrImukqktWZQVgI)Z64)%VRNZG8($T~}ZEF@aNl^jjxC`gWI+zISMYU4{-) z(kGgaWCv&|9jT>;V}P1s1ge~l`|{GpnNuREUv@fb$|7fBRSh1b2rB$HepR!dOS5#00;zo-}3chjb@`U5Dw@X*WCU#KjS zpg;9rd|jwB)j~VW^{a99BlU{ctuW)={w2sL;Ryp}k?%0Jo?uM*_jYnOdE^tSQu-ZM zDKlVxJjQH=T`TNbeLVIF)yhHYc*@!LBr6kluWjOP9xSj)a8#uPKaT$`zyIDZ*H+~R zM}5c2Vp!rcN*4NzQrY6q7yo{qTFQK^pL`N4>+kX1By;|T!}7-0ri@(rolqsdkRYqv z{D{wDmB~7+oN>rx-!ixX(o^Om30uj_gsrfn&F%`7J-+O-9Z%|yrt7In?K_iu!Re8k zHi;@r0JLMieka%ze{S3Tzd$=X?f)-e+V9iodwuN7C2B~y6WVv3CyfzubOLVyD>-k1>AR-maItV*q_TrzP!&G}L<`#BruG zzr;{Kp0G{({P+H9YuQ7;;Spbv)Dp-0o02xVkKM*_)TQ3GsU|x_K5WK*tfRK88b<}`%6U!f8%nb15||CdjNa*LDOK!#fZeC?Qca3EYjWNQd3RI!Xt!;& z!SAP}E17mhzNfyuj2*S}hZUH6sN-)Dhh4O%#_4$^kY`1Ey@Cv5_Q-z9d`H?zXXsy? zlqAs!xQB1kq8I-jkF-2DQbyOsj_;GArxWfGO#2xzjc51eMBP{jqkybnrilH_IY&RF zyWLMAy}ihrdS-6fgPeNN?-;4u?RL9AU^7C##+>17ATzAIGTt#%1{tMj&lOWWoaH2s ztEVh5LezHr>0^&S)1Mn>_wDR7cxfODJ|5H7`+@YGuuaK z>{?No%X6`X}PT!}2#L^!aPB|H2=b7CnC*KDc(Vuzx|ry|hZikqK%rj=*~ZM>*EaO&0Z&w``W6{%9#%C>QGq z^ALJ7gYyMGgXot5@$JL4aO$g(jQdaI*gKZM_(7O6H)H%R=}mk$qm#R6Ki)+*uGu;S zVP4o~#aj+K%VbAqHJh?DRri%pBT#-MUVYS!vDoCW0_=^06y%fe!gOG9<& zAQJT$yGC{!4D)B~CSf)J+igzHgD{_QaV4f*p4($qf$p#wS)PgG1Af`=KV;(E&W9B6 zIeZ3zamUnQ^5G|_56K~`*_mCAYD*8sW%|;8pN_1)`B;W+lW~vB$Z3-OjIec`^4QY` zcbo0;L9Q*gipiz;IXPqO@=F{Giu^`gf7@bGSKDKc_PB~&huigqw?1dA7=MP5{)#Y& zxJ-sLke~aL!bPA38x@Udrvp8I9|ffMLpcZl5#?9ue2VdG{U8g?ymFAS&P&Vzs%O@fO7=60y1A=8=1BkZgww8T z80WLc=u()R zmA%@f_nPgW_g?PDzr#F}&gm6YPA}EuonBL!-u?^ydRJ@ao3vKl(Em-8^R?b`l|ZF; z7GigqSM>eAk#pKm`ayf-su>`y=mW2_&-L^Yh2F1XOmiFhG>ADZ!+nD7Z6BiYh`d8? z?~fsq@Ps+!XU$D{>%g;ffb_QCnKAbBp8D}(f()`Aox1APzs~ZLPZ^%$h2>Pj7INK4 zE0^#q8-5HWJyI!`wWl8@U)KwB?T+R{9R4KF%paT_b28Fn(!c`)iM9+D}_i zB0lS48`HQ6{Vn3n8)h$J^Xbp^S`0Ifc0e5T#Iibxsa%OO^_%1g=bAWlY&9_=MDrw- z{dbCG8v(2~$l`rq`$64dA1AjrH?e&P!bF!j zHsLBM`3zMu z)W}dfL){FGGc?Q4KEt96%QEcG@YX+(e+vH${@MIX`&aa@;or!=iGMTy7XCy1$N6vZ z-{F7E|BC-D|DXNe_`3sq1F{8t5zs4OV8HNz2?0|B76p70a5vy-z%PL+P!Dtlx>yc5 zRbb}8tbw@#^91G(ED=~EuvTEbz`=pz1Lp^Z1#S!68Mr_2QsCvltAY0d9|b-Me4a_m zy)PMtYh=3JRWGmpzWDf7jk%t0N4E(Sf%vLZ`Z zmhD+~XE~VVNS2dX&Stro<#Cpuvr1NH){Vx#rNO`KhQvbzR z7BA&WNVyhLZitlI#7p^`3^D$R{Zsn~_-FSo<6qgocD$6o@DKGL@4wZ5m;VX>YyNlq zU;DockbuMic>{U|^bHsk5E?KsV0yr^fLmTE)6@)fc%_^&Fe6gV`8QH-8aO0ydf@uN zt%2JE_r**3Zs5asDLasIl24@EE?&x6ewXqEq}(cK7gAn^l*6;^%CaxZ;Vj3pocUeK zj(?DHC{lill#~96l(mQi5uZg=i>MvZBBC`??h-LGVs*rhh(i&NBYus{7?~@wXk>8Y z7cUi34v3dBf@a)2UekwzA0>U--L9aXmg8#jM>Y5_{_xhryAK~e3VM|Ok?}}-aF}qZ zBOh#hu=2rz2X!74c<|YS7Z094_#V5n4|+c6@}MK}m~{W!`*rUZjVykT{=^@@NY}mI zktre`Mm&gE8!_DW1EMm!g0=+FV$ISeOV=!p8(!dLCI0KF%p zh2q@d#I0G~#;j{L$LwHEwk#Ld?4M6sNFNW+&$yp$WB(GAj5Fi@6STx;9z0Aa3DYK| z=1PeC64p;RGU0tpo978%`}r_uJ^ttCm9JlgIP;^eZTgjgQ18+2Ib)y2{p>4oS3las z+xPr<&bRuX{QTPZwe#!X*VV7PU*Aux|K!k*djFsQ?0EVitGFMtkG(&?R(|M~{qsBK zcOmWw$$stl+|kWZ&3Nf-?#Sop>L}qT>Dc6$oaSV5ibWC;3a7=R)a+K%!QC6x*efdHr$P`&F$CXR@snja7%B9Mv{%WWirY5QR ztQ&otMT0M@@6}I^QjXe=(vFRe_0A6Jy;fQa(dugLv@zO5ZI-rH`&K)vUD1Bge$!38 zgkDy!sJEs58l|t&*Xi5zUHW-PSw~GrImZI$3`YUuXXBNly77ynmgBIqqhqUMpJTFP zoujT}i?f?!uVbF$k>jzmoj%TS$T7~@&+*W)-!a8m-&xn$z)_TEqm$>7!PCl;Qc_J? zNo#2%ZRL!dm2+~!oW%0;6;+6;#Dd3V9dlT7d97Nf)~hh}gMLHrttC`Zn$l8fmX=IQ zuT|B))H-UNwD#H-ZL79TTW@61-s=hUgu0*Z(k;ha-AA9mvu+YK@jfG~zFT~?#F9Wo zOF}J)RM)CW4c__G)M`jAt)?{88k?iEdeTnoEbX-}(n0GgUuxZ?qt;!fGY0#$HdSV5 z(`2SLT~=yKWj(9(p4T?W1ua}IYTM?O)75ExgSxKoS2xs4 z{j&O5zoLH8uUd_?GRzMfrj<1}S?B0sR@Ev?b7^3X(Hb%nbdb5u98bUOwM^4LXba>A zIi*r+=d|ywI#yd%NQ-5)3h^${en5!oN8sZf*eU4DXgUuI&Lr-o_ zu>!S|=16IwwUpV~4B2e4thcVjr6rfrT1M4Q&m~DTQ<7?lq?6WzcS$|vind#>YI{^o zJ%y^Jr&J^L+G>zAzC)*Y6mJZ9aM zfm#RUs~yrS=;hT!y^@O1_iCxltL8PWoYhCGqSa@+(A3r{YpqeqsBBazrt`gqq}*CTzk9;Tl%cj({g*V+C&laj%jN>Tob|a?K>I>#qqVj!SiAKB+5{_$b>DhmWz`mGiyfD&l8(!co7M^| zo4Lku&k^Yu=onF%2HFgei4secej&csMzH$z8j&=@phC0VM2RcVu4Xpak!RABfa5L6?XMQk$vr3pp zt#E6*dEPnJnr7{=wppdDVD_z?;+*Q7>>TeLXEih*m>0|^&I!(mW`uLP)y6r^x@>)G z-ZXDmo2-r2bo0Ko#aicjVjZ*kTgA*H)*!2vWm*-jC@Yl}ZGEs}tXRu!d0gUB=6BX% z^Pbhw>ZD4!GP|C+f?Qc#SsfEp0_T^`zLLo?UWUk4xuNds4~=dTD3$e_`Yjo(-pLmI zHp?lcl9DRB3fAwa_WE5lSii?6mXUgdx~fO&_vNN~U}QHc8ug9t#snjqQPwDDls76E zb&YyP7o)3H*%)TEx4txn>z^5+#t37KG1eGoj5ikOJB>y30eTn{_1wlJV~H!9dCS_P zzt^MmXk(!@+?Cyx!wcwm+LcEZdV?*lgZ)A zYm9c~bA9g0FJqa17i6C1UD+IYB2QI9BbAZbNMfE*Ma{E@CHeFiddA=C?BHvNp|KH7 zF+(?;DyQsMJA=8M}==#(r(M zalklad}Eb2juqPIoV{KH!>Jc z41eR9Il)R}ZnSoqTU-(5R#&9DY+N-G7|#tq>7U8 znT#J*ajSwVVU<(8^rET{Z!!8>U0g+7#q`tqas7;bLO-jYG(*jouHvo|=62Up-EHhs zSBxvJlCDyYGmdkP^NuTy?;Y12w;gvJF;0ima=KjoT>V{NxdupbjjwvN^1S7*AQiNV z%)F>2jkG4xSZgXxv}V#&Yc9>S7SdJgE#0&}(p~E-J+yw(Q|m92wDF9f&Xm>Ka#^FT zU?bm^vO=592*oNnt!A3hEA3Ur(nR=;>8MJ%ehbXH;M5!D@hBT8-B0sxf*!HCC^$#_0{z z*LoKfO{Vy}O#N_fU)VVQPs!TrJf@)iQmA+M~}?d-eHhpT0ot*B7b-`XWA` zUZYOxYtb$;LUC_6vOM1BaPT#I>=?B#-{d@IVzxIDPdk<)VHbPX|FiS# zAg}9N|8K4Deb>(?$xS9Rd-hBwGvRFWgPjxJY)`WH+3DeO;pyRN>5=C0^r&FPuuafD zY!|GAuOU{(*Ac6PajXW}3amOt;sX$L)1yhMj1hu-BWJ_6GB$z0u6IkDK@H4D*3~ z!pyTX)1%X4(qq%((&N(;qP3%SqIIM7qV=P0QTM1EbjI98mtf7HYp_Mmwe_MFY~4qa)H&Y%M)Cx;Q;8x-~sLXbEaT zkDzDJE9f2c2{woZMuVck(U53pG%VUT8XimyrUlc3$AcMIiJ2KZ8Qm7$9^Db$8Qm4# z9o-Y%YrnDI+C}y|`@Q|a{%C)SHjOq5)(zGR)(^S|8>VNZXQpSRXQ$^x`$hXl2Sf+r zi;I(kQ-UeMqrp?@x#{`o1<{ewQPI)qMbR|dkL=Isb?NoVrb*v;mw4xR*Lb(| zqhxk`V0=(KIyp5S5s!>VC8xx9#COKK$9pBCkZh#vYkBP^|yh*%S+%xVK*U}r~$K$=@ebSqf)6<*NThd$8 z+tS<9JJLJj@#$UZ-RV8)z3F}F{pkbl;`pO@cKluZef&fGb^J~ImRsF*a3#00TP6N6 z{?&!9P5My$NBnpE52E)NXB`4kC8gNJHf|GPp(y$%`ZZ3YKVlyai++lJkE1wFAC7*D zgXpj5?>I~!Nhd|WL_bGAq?6+$`Z3PprP3+squzP%hPc7*`uG8Jra2>iD1JD8F#XW& z=Js@ZyS>~VZujJhWMXn{a%pmLa#eC=azS!=a&>ZHa$Ry!a#?aoa!oQOc{O<~StnUL zxih&VSs~dkc_e9{%yPH6N8Q~BpY({E>KR)D10n@JbcPF>^62c zyGJ}Vo)&)_FN%MPe~y2Ne~W*2k;`0Lx0GAet(MG7A51<@_D%*R`y_+Y8`AUAOVSDH zW$A_K73sCwCa=q|0kXZ>}QmEJ+7%8vJ zTL7~%RBQo^)X#Rrh+VfQW;5sx#2f|{o9=}3kA?0`%-K-MD==3;cO~X#sLa#@Bl(e) zF<_p9%Ipd-v!HttgPE~lFJiui?oDE`vG@nT+I|oWAXp>DPrQ@(E~wZD#J58S6Rb%D zm~Y52;twYBWE9DqRtmt@RPligJ0echl zaAI$R9zpE=&?AX`1bP&)FGG(evE26=@d*&i zb$1i2XW?g=Nj{r=FSdb`I+3(MJOwIt0rBO~2f%~a{sj6EapD^f6MH&TYzJcL4=0gW zj!z~|>O|57@yAffD~KP1D)G74o=V&<&}jr~X8}eeIatdIFgD4-+*%OK05d@ho>U^} zQ;LN?tt8NA6lqh>DqBOJ1LCKH!Asy3@B)~n$aSw0e>QYBG3!BJ18<-$*P(9`Bfjw# zG2%aSNPH>uZDRUE-vM)RE$SF!yc{Fven71JeIBu6pz}$%6m$VGzd=7Fp@Dux!j+(6 zYY`n#djQP4=Fg%0S+pCrmnPvJP{}LsCqpG40Q0l>30xxm zv_bs|;X%+9i1gWJMG_tiZBL}{#!O01cnEZ5B7M18g@lJfS0&P~o7G4-0t){Sf(g(L z1oOi930x9f0Bs_eD-KLE2`+?oB$z)AOeYdt1no>PryQ6yi1dpFJ|u+KK~b-Q^l_#u z!Q3-`8kYnwL)Rvlj}9=8k|XU_p5FrIr~_%Ac^jPtU7ujyIxyXcv}x0wU@jX!jZ36` zn+nO-rK{KmUdq)%@b4h-^R|lAe-9Eq1MR6u-S#4(MSSw<=MLPrxTWf`N~2OUf71n4;Bd8pJ4u#&gKl((UW z6Z;tS2<08Mam&I0#P{{}Ia_m9nE$BnUPKG|L`~-c3*jJ#Fh=(5- zIS+WLf62$A$WLeJVm$Rz2f&>3JR(m4kDB*7|U{+^k? zYYxQrGb9`geU^Cf1@Q@?6Oc9x!WW>57hjNj3!4J*6<{6oWfHW5N;yG@W@2U$84H_N z3BLQq&sHj1L*;M4E(eviEr@NUJp+3I^iAafsMs3V3!!rqsfV|Ty$Je_B6adEu@^(% zQ>1?85_<{seS-DXzWEF61IhYNMxSFd_=+y(2ohe-V4kp1naf< z`AHH;eio8Y%J`Wg>3>c_vE>)aHqbALT^{2Q=id>m z6XRzliOe6E9|+ct@pF?T5c~W@u%3*co+R?VXrw)WoGbSYw2gtj9xmcbf(j%^P`z2@&6 zu(`ZT2zCdkr&Ntp<3CdnKqd?;skXeZDa*P_jZYY_35unV!Xplgyq z%G6a6TdqZ99w=N}84X>B$ha?*`UVzd3)dqu1`O9HR?6Cq$apa9POOx>Ok`{rR)`fF zREhKlVGFTSp*014M%Y7vpN2h&JsjFgk@I_lJ}A4SvjGVtFB_6T^0|?+Ido$p?>*rr zM4o#x*CyEE(9MW_71|f{L;7=}{fW$XVwEt*JO!0~fbS=Qut9<&p>jWAKd=SK-#NF$ zwlE!RMXaQ^HL-FZ^e_24>siokiIud(zk!(#6`uxn3RLPzkh+jE121hv>I3+JQ5H z{w7G8hbnWRBM82c55kdP6!;#DR=$IdQT~LA?S$XJIO4B{jwe=p_AuhFfr{?}{I*^Y z9zl|$q2epRijN#c@bBFMtcd1VvEebqNQ3R?2iHv2sj&6r|$+Qm-KW1bPm!H$%@Q_73QI z#6AZ-pZJHMQun~lhF(Cd)X{|`X@*K&f}|7lVv>}hmyo14^iqO<6A*-#5&sYLa^h}* zUO^IRM^_U3J9_#S{L9Pzr7l6T04nt-JPoc@UV~moyreOaSZQBUe;}zqZy-qv^hQP6 zgw%~N6o`$4Awcp6l2@R&l4KI}He$thZdarp#HIkh!5PRrOL!NyKZM>*k~N{yHtq#d zru#_zD)fGmYy^FP#8R#YN&GHU>IUFukK7L=(l^W}$$C(!KM+g4#GgPcX@5jwIah1}@b6`U@Dq}Vy+0-R zec=GVn~{UxAPK_HNFw(BoFq~wUx2TXj->Go!SBfi;kP8&1G)(OgL8154Tw7mYKTL- zupx0LLUEGdPKHLr9Ro$W0{%^H{=OvdOzt>rd*V)kCd3^JO^Jj3ZARRw&^E-uw{2VE zPJ%8)l3k(gNU{rbY2uECE<-$QC-Z26J07|m@qa;4_k#Z!x&rZkKvyLG7ifEee>azp z&t#0|XJUJ0unNlf0CZL2;j?x%;!cCEPLlJX9Z2#Jv_um04YnibgmgBBb|&s@=o+94 z@_a6IP2%9gwkvUGK-VJfbm-ayze63^b%_56igqRVSD^4Y!7qfa54s`!Gojsyhrih} zaTA~wk_?4biIcLl5d8LGU~43K654}!v=ezY3m)yp_9FQGn85ZX$z9Ms1iz^k*bRvP z5Gu9?_`TP_ZbXvXpkgDCO8z$?_yzsIZc38Fpqml=d$YjyCH@I$Kaz+)_b2#GszAnt zLgJxyl881)@*8w>lA!Ko3?cKT$?wn|h@TDJ5e!1!Lg-+U%zzFdejZfpI2PwD3mpf> zBb@`Fl5ZgM+A{tYQt<`JD@dh19u1Dgw)lm#B@j#9iBAJrW0CbC!R-%~_5+;UM|=?k zouH?a_zb8LNSl?kKyV-QED}iFokPri(DR7Q0m$5F&c{%xKM)-Xy?_KAp%;=sY<3a2 z7`zKEA%T?XQX=o!@?IwdQty{5bD>v|;BDxYMAmccRYbnSuvZgV8?o0ABR+Di@;>xB zVunK}Djz_vCo=bHZ&akdZXz;QCu1x@=0fZ(%6#ap#JmB$4crdooI6M$<-L>0e2Epm z2a)7c+5?E{(0fR<3slMvq7hK34-iTH+)tveQ0aFb#__(;N5CX(?*yF;reOPE=%XYN z`#(k^_>H^=3W?ZZ8cD=wrjtl~>TzW~=nU`#(mVk=6FiOWQ=!k0Nb2NS1$mNjr+psh zNS(YuqLI)SNhJRDlCnPZWfGkYeT76)Z?i}$<$aa-_n@;$B4w36NNoQrc#}lp7jKb7 z$}$JQms7F1)CcfVKav(m#Kv=pNBgnjD_aB_8!0$$3E5 z_o8;hqt2tH6-f^^6#~hpTo0ri(Q+i%9J)O5PeNB9QnqMC62SMO_KK8M@+3%ES0<(x zbQL0NjM1u!*kCn9%DOs{wbQ5r2_A!rU4R({Z33O(15ZIa1F@ypqYLqqAj*dA_9lK<2KZ3TOdn$5Bm@JoF&)-Wl~&rb4A`V&myR$_A4D&c@DbPn;QrwW(4C09cSdL%0)E>hkbX1g zGw80wj)Lw6cE`0dpnDK`7m4-+dw~UDZzAut(LN-RJPjcD?Uf)JNUZq4AmuISVB)WX z4j~EJax|3qm!QLx`OtldKMgvZB;wcm5kCpKKS{rW9zgtL=z%2t8hQ}%4?_gNN_jwX60q*ElLOI zt;#~^ZAugLcI9*E9mK=#k=z5|cm9LuF5*Sy9w2!bD*gogy-+2ckL~-27rmdP3!o1W z^BVL)?|q`VECtSk)`TMO?1@iSo=@EDOfrf90t43&Bkz68^W z7hisy_^+WeNOC0f3F0NanI!!VD)lGCKeO=L|b61#(-3Voe~t3jm>K(HC~ zO(JVD(OV=q13HJuJZmI%Aan#`caVtRy-U3K)O#cm`_Cm_>fwEYU+f5?4~UmKn@3W~ z|9qtrRQyKx3VcY+2GEZPexogjJ|<>E=qDuU2mO?o(a?oN-hHFbh><>3{2t(U*ywX# zz_#PCE&c(LgQ0S7_(dw$enaxHwd57#WAR1U1~S%;#6N(H%_Au%ka2hP1Ceoh^ds>n zKz|}$(*7Czf_q6Be+md(|bbAsb{SG^j7{1eCClbS7I_ySb_)3S} z!5&BlzR+QB5~Kb*3?(u0-eDMVF?3%r9PiEv^lB2rh8-r77=GX3F%rWsIy??wNBp){ z&_U9Y@{SLJQb2+gpoWC)p&<$2CnZZl*q{`VK(>(&A%u^W90_FGlduj&{)7NFD5XT! zt4bLOQ0`J2BI`>f*jfl+i_%gg+zZ-{1ai*OB!rzx%aB0MS(b$RK$jzdoU=R$2SBBq zAUFiNB9Zl+l9U+)heB5(vaVBFnFJ%Cs}Nb|DXmI^kyZF{URs~XT0*HC37&;^C$ip9Dib5NuMnC0E>($27_sYyB%BZ3h#0Z)#zf|?OPdfQ z_S=+%KSDPnMr_%agg-&W?|~7!im!w4XQ=o$FjCe!k@@CQgBU6I=0xV5OIr{lHb6fi z$UJmuD`LbRTN9a&E^R~1E>QF*g3Q;Jwj*X&==MbBZc955vm10rBJ;SVorsb4wKI`9 z-IAmW%;8W;3&=cWNv;Rx2&h~GWX`fA?GTt#pwjk$m9(Y30dp!;+8D5MpM8iq4LX2W zx#vJ)PKOR6R_;HTmoOl*o5=rD4QMo86blcXp-W#7djpkC=<0`x7f|_5flo zfgVV#wAq7*xdtlt12SJ(l6wGiEmYD4GIv>$w1Bw|D%S&h0#w>LFcYDpi9HcIhM39F zu|(zzOXG-{0v%6e?yz(ik#EjQQa3>65lcr9`39|YB#}AA(ow`rg&s|0ez9~6G0#Ac zB{COSlClBwEL6$^WL~f&WdP;{sN@^S++XP=BHxykP9`!BSQ0+~<|U}qJ&^gtlGHbl z@6Jl66PYh8ok7ei&@+k587XQj1A-Ny*ORaf^ac{Nhu%oS zcF>zhuo6`A3c?U7bqs=)p;E6PjG)rLgJ2b?)Ds9}=p7_j6?!KL9aQQb1gk-%zCkGc znA9Z*R)a`+JNi9)2c9?DPwf^^DT5 z#E8v)BeK3x`W^g(J_Nqn6abHR7}%{T0ZZdRXXr9uMI7H6x-#g1=>Zp=W^eVXGGC1aKLS4}@M0P`+R)bRs|+GPl$u+>1QGr<(2q58?O*&_}=|Y{TwN zlfk37c3tRWBtShO5_wLrA#@smkEC*c_(aoFxOPA2GvHZl9|(O8Jdbq5Cg^XP(9Z-@ zpy*?S0M|63j}Z`iENDVMBOuy)&@_vr7eHSHuOUsb+3O^|2#P+VX%3Eyo!$oTAR0BZ_t^7`gA) z;9FdK74&=XBhDAQ{tSM>_Jh!0i8&Pd8!;oHzY{BI{6Vbb?-uHKfwkIj>+q@D&e7IZ_BoCe*9 z#FECwB$jhGA<1~C*c2qMLnR-;qwbrj~YG#3)bmRwTUZYFz7}6G>8nUQc2Jy@AAXzStMUaxbwXi2j6%?LaK)+(KlYuK89X^MB2^kvN6k zPGrun`3@3$=$#}S1{J#lnNw`Oo5*}&^F82R+$)0KN79F(_Y;|4Y<_^m0rWutdqjUh z$9v^{axLsud(Y|{~SESNK)O~jl5Z3Z2YXV|M_ClbSc9XpfsL+F~s%Jw>7UECLb z(6JkFsPm5KBZL4x-El(_!_FPIC2kNDZBRh`)1c$d#EI@j+-}gliIcMIL!2BNK%AUA zkhnddk}hy)!yUygAh`l6_5#U7=unbe3mrz1OQHLcl3WGdk091&&~bl~pe=Sh zfFzeg4lVk2&A>;%;=X|*FM|6Px-xNJL%R_79du3573cf{ z#k~agGxP-F7C}!Z?tAFj#Qgw$g}C3L@B_j976facPY{xOpvdDIXb)bFp^n$UIX;2H zhJx=D1YIVA8*uHrP}H*!qaAla-3tzN)&+GfIMh`aq$9Z3pp%Gu3yQiH^5dxUE>iDu z9R4IY+`9{WNN}%1XAn0V3R?^AO(^O~$d5mbZIB;F-E;vC{?X-G;ub((An|k17m0fZ zD)$qcybb-7#Ct%$B|ZuQm_NsT3`Je7>2UsM(2a=u2s(tgPoTqzLwak%Zi1T=1YMUW z?q%po#G!t=?nc~v=)S})gq{G-V7+ujeuNZx@A?yQXmeeECJy!375*W(Nzh-3!!x)m z>RWJVlU?Blf}4U@9+X3HsN;2)1IV9yAG$j6DC>I1koYg?@x!S?|=}SS-4Sp-c z8w9~E*O3%uycK^JQk3!bZX|`RQOq3oAv6SSaNsg%Td*#+KZmXdw!&OZGjwYr|Hfke zHY7w}GJjhV!iVN>N5aRU+mjIfF@FcJ57Lo)4Is7w9Z0OCH;7o&!~DU-!UyJ~PUjzp z{$VfZLBx)Q9t=)Ec~^yA1TMw)$4l4bo+n7Jz_uajwNUtgkWPeJ;*rJz*hTPg=X*iP_o zLfa6;C<+$9jzR(-U$7KOmWH+?i5!!CfSA3(f@MfD6S^!xJgs1XTn`YZJ6NzhN#s5& zkR*VvNRqRl?TP;mx)Mnwk7z4GBKKc~c=RU=P{)Fw3tf%)>Cn}Qe;-;Ri5zbt{(ERM z@e80G31W-~3p$ZR%F&r51E6b=L~PTABu_xsBp!aWpeykoK-VH3KCxhJlDrIEha}UW z>w;d$|9a5gU}J291)G3@*p~Ya0z7u}V*F7hQ?}wJbmdHtg&%U4FF^ye0Npmo^#t7x zgCw|8w{5UaaD#3~!3x1kx*Z2SgZaAcf)z}A-S)vQW*yze4>p?PbUVebyPl@oZLocd zZns@xdnwb5H7e$mK_ z9*=|NtfpyPunfLg=5hSaI=&g^b`q=?73rtJ8c{=!XF(O;F7li+bad_;(of_A-8$|U?jd0I1(!u2L}5G2ViBQ zIj9EZoaSH`92t%yTjI-uao8Gz?H%x6{60MPhUI7X#j3?PoHr83$Kvm6<*AHAs$+u< zg6{bL{zzNS7#|D`y5Xvk_`acge)gd_r#t>yq`vkNcj|}p4hi-RT5wG{s04j5+qhG( zbFeMgaEbHQ4~jFF%w=(Gw>;NlagUL>OY{Gv#(b@h)Q1E;aECHHY&iZq^#7Xrt~jF^ zSB*ga{?|GO<~A6DqvKG*A^7`nly(TV55}>P!G8F!*hxy>ZSmGlI75z&&#&&Arz_ST zi~mc$rCye_=)Wl(iu4i17-#U#jr@G6#hvrJjl&v|++AvsXB+|@hW!ypdw8Dz@r&;# zxn_;;j1q2xYqm!{%DK(KzbS9?KPjw-zx~(B6_ib&2mPP!TjXX4*0zQqy+iQdq4=-l z^Kk4-KE%Ru-@d_)`Sv*YQ}be5(6`2-EaJPPaD`Y@YWfhUc;o)C%=Wl`oByY4{w?{w zNRz%YHfY86Smf(a_q`M*d1wSnZWIOqSAyUp|TrG1Ep?VIPV z@Pe_yuBcVd^f&X(a$(7VUB9!M=8He18#Yg3LJ^+6kj{o<^9mGS#uZG~f=3w*x zq%tb6x1IB{?~gNvBb~8%N|M5nID1I2JGP2ma_9VRQoB3hsQ7_+@EAPZzi(-yD6KBshSp3Gd)aC#180f z`j`#OhGrwPvDw6IYBn={5k02AY1K$FTbL~oooj2ejoH?0XSO#xm>tbdW@odD+12c3 zb~k&NJ9*CU$Bjfn7Yv$}XYMx-m

      6=3(=QnPeuLDdti0n3-y(nd#Q;7fbjCmF@fSxxm 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

      S6KrIX_&}SieWqPQ?{H}=^!9pt?REVP{Y`DH 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%0Dq6U{pGSTfs98Msn(h=U&e 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 z zMK|2GYz}+|pRy*n1q1A5eg4RQY}p$8Z_#g!B03k|JqH|IZA-bCZ58sSyL8$2FZcgP z)Vp=vwV>G_#oWvbzzb%ex~$qIeJYX>7Nu-CKgOvG1WtB7P8>5d91qR*@7vS7x9PyY z-mW`z!skEmbwe9F2d+8_8YVSi9i3!KHJMCFsJ3^OnxT8JzBCW%y?EzxJPf*bg&-1wF;sYIv7Oe1d~J<p}>`dsgR6Y(UEdNf^yONXnaX=!5Ma?hY*+ySs7sGz2?tM}Z~sRB_#oRk`B34%WT> zVrA9e?bpThIN>*WP9`T6;Kq`t=ihu&e*TpyP3RKNH9+C_Y8lfxcCilp=sJb0WO@tMLdGfE;hD({YOP!0JqoO*)BRLw?yf&FBS0Y1e)$K^eA9cvac`E`v@fU7XpmgoZDshNj5ESo=G zFX^sY!6TyLR^&v!Y1)%sFdMk#K4#e|Fx-K+wZoMlooF~_uvy3H*nXdDb}am0OTyi` z`ttJf|A)P|kBhR*{>QKTVIF`11{`(75l0=BjEss}YsnpOP&6_!YpvLpZQWfzo7=jr z+sAFKz3-U;smQ3*wIU;ziY>NSm(0q_id@#EA|pd1LnIn;#1TgrhGFLWKKDH%m=Epu z_51$$TG>Ijek`YI3Sbtd{ehrsS@;i z*xQAX9A%q_Fwru!DJ;QvKcDnO+ovrpRWE(hnwVrZ=NA=~+?Jbl82zZ;Zl@wb zgI^--G{&BbdKwJ`dS+cR-{l>2Cbz%c*cH);`k4!EzWvUXcU|e^TG2kmjmxMgh4l%m z?=H&Jc|GmjCl2qL2UCoKMmF|@OIR&Qs}~>|^+7cHkB+6R+;HztZ^)fh>J5A($Xd*x?G$_bQ(~$ zfD85yCyg=cBB6CGh$?roUYCNV17bvgArO);Lu>+992!9LR(NT&iOI=EV`@Bo6)>mS zY*Wo>MWJKEp&()y0nb85# z6wo1Dvsn=PPwr~__@lO++xPnVO<7rJgN0~5WT2C)*pv_RR>h{@94XfM`>@yybT?z< zq2Kt{*7`;2kfW8vW*l-KfE5t_>{;E)qW*urQcoRTb7}qJM3(k|DN5@#|w<9xoJ&aTcb)EGju zHWa^pm`uXRgAxavMRNSuN$Kg6tW$Z$@hE^2AN{M$1Dxnq>97)XAk9WK0e=WOP$gAk z2_pN++1K2#Y}rqK@$28+RZ?;R$}|JHg|>mC>pk74+W*3%uk2*sM>SS351wq=9!jv! z8XE{`CuCYKDJb}Fskufb>|l#_^<2o4L}Px`fG0ElVgA0=7}E=rnyap*ihy|vl)#D( zGB!nbsNv;>@ZT=~FUA6_^&qCeQ)4_`K_0{wS?>wI??~@p5KySI#|Xj_mI!pV6XpI8 zlcE6|W3`!6Q1?Qwhb#gdWP+KUa|E5(7hJ3!r4FPb6^Wk%cd7imJjTzgcs{F! zcMMm zpp`v{3i~pdY{$_*E|txVY15HiF+IbeMU7i+lF0?-N6|Cl?fXHKe9(mIU0w~Eus|LZ z1Gbd%h9fxYJ>JGgui3^BzwX!@;VCOl%t zzWLU-det9LH?X8&+59O^{@`cGwvbfm0(b{VJz+=PmZ~jvJKlrN>pHT_UA6NtJZYcp zczJ_6Docd&XI^i_QII!yb(IkW!^xXxO(`dtK3#;WKGb#SM1UV-GM)OOoq2nqr+p{T zNe1XHkqw>lGqc%U#=~{t0E#V+{+AtC0`wzsDgZ3XF74gc zFYBOO?C5r?GJuoIiur2C{C@cZ53F3d@}A$8+>wQ+iiAb2=;S^}^+TEpw@1BctN9jY zabN|cqFrAw-e5cosLY2R<0N=IH7QeUXDTLRvUVo|PH*G>fd$BC`V~5l$LICFX;Jr-Fmi z!NFu-j9<2_s;UM}y?;11q}7GY>3rAMyJ~6_3J;)jikMZo()p!b?eI}k=uvj*4 z9<7khGO)z^c>X?Ba$dm7LN~#AQ3CyU#+F!7S62byabYt+FlJ?;GnMqcX4f-X6B6al zsn$_STZVSlqSLGA+{#kSl{Bh~vr6^L5MRZ-B%0_E zN@U6&nJ>{Xif@Ixg-e&CeF0+y7F2ymSJUBYXB-Qx23?KMqiexKLQW&ap+oK?x*{DF z^Hz;`jxu7`<62gu>!rkIsctny{!Slt_O;s8YjvvEQXEu@tBTxfv1^@uRP+w-{O%pb zDk;RMc;<8MRIX)b?<-W4s7Se_7A_;I#Ata|oEr%aBeVqeN_{$nGD~rI?CB`d?Eocb zVid-M!{HTW=Axn+OzvgN@|P}}tDnL&ZEM(i z7uV8~OT`i6QP$OWp#48@zSakL_$%zSVYo2pzet#q|_|vy@GOg+e$WYyG`wCfL)9uk|kI za?Xhrxl?PLfaSQ=MU@fjhc@XSM zKPpGw1UfDU9jVXcrJ&;s(2-ToQ&7~_$j>eH_2uiT9Vn3Oa1<6^T`>1@cxxm{`XH29 z;9&Mhf*kMj#b2?o0P&KZ3($BWnnSxe7k3A|WMrKV!%s7h>*&ZOyDJ_fVLje2_k7sc z=zs)=3xFu)D6Vt?iiMLSv9iQdGZk(baR7-u%{^rh>ADELz!asIA}8jGPRm5wEtry~FcK{bR^f z6(qMCG%c2y7YsXJsh+H|>8~R95eFNMDNX^|lU~=DR4gE=(3N73D<5FRDQtTJ;pPp( zwd_y_P_nqo@i#p%4+}IhDOw~h^G;gr5#zqf{VY?~`LMP&`K%1fFJfT5r*%7c^|jX1 z{fWv^}u*ikwSmqqt>pkY{J$5n}g4YB;retG6f>!HxK`RqG z!;OXhFcym&z6rhFIBB}gHp!@Wp^LVFYRb4fJx&)!6P*Y;!xI0J<|+a|UIeOH!H-r@ zEtfn#a#BuCWo1r|!*QAYs#%yK(UpMaEx*m41G3#Ii+l3&_FRAomCl|rdO7E!O?g&4 z-ENp2Ke)fGEnjI>F_!%Y`u!39ho``HdRfeDY(yvG^G|xM!K=?`U%fh))+~H=HLNcJ z`>#qYt#4Vqy7dj<_+My5&dC-_cfc6zA}<9N4R{^w_XPrkI&1IjW@h}|YV?UFxMmDS zBYa|b#fxP+7C4z!W|6ljlp$aFcW1U!o!86Hp4X!#@`xO0QTMm2`$r=&qa;U6%ZzA3 z%V|l24wt*2)naj&=ut6k7}KAsHe^lG$ZI&{=i#f})EgF!taGj_y?JRJQzr}wwBvXSQji<}{GwHOyI zI5vg{64aVHoTXjC0}<6Qv+yJ&+2C)F^|7Sm&V}b$+|E(Otq!(}^D-Q%*6G?zp)2Ny zQZII_U_G;1*M@e^hGW}sY-6+*4w|Lmz%F`?(fvaDgcHwvx|r=j<9nJOeC6rU1-|7B zYQ*-ZaUI!z`RV<+bnLH?V}$0hry&YbRiYT8YHvH&fv0ieX$a#=_5)tk3S{O{76d&{ zEcz6+#)?PAi`z+8v_}eX1hR|q60;#yZx`q?=nIE~^<;vZXnPgYWM%lv|-=$=X zgOw}uBbpgD89gaoOyy%h!bZm6Y@R&7jvh@PVHABT+u_L0r4isfL?0N9YW*-wvNNxA z<~`P_+`mHQ{?QiaLEJ2H3B~lz!JE|JiNgQ6h~@6$T4UE#j5=JO$V5jIUFrE^S5>jP zjgZj>vO*9eg;I}Eg)Cj3l26V&mbiyzxO%KVcI;~PSWIrkL{<+}pY^-zJ6T1|ak#j+4#x%zUpf8+3%SK@$HGYh zk4nP5FTHfH>tUCm?dZ_bdw*IQ7Kq9dPQbNLzKSJ}x)z^h0o-I2pV^Ea@v9}}Vgzz_ zvwE1Z;IB4*gTrBGew>`HMm;{=Op02&58ZOhLv)d#)f%Mt`0j3UaVuAgX&|EKh$Lvm z6~F@y<>pBQ;OET!V_c)or%H8y3MkAhO5F=F#;fjsSqOeE=rQaA-SG_#n{pkqW?}T*xeNX_PU*1 z2C{B4GF)6^qx*@|6gpcLOSsXfZQqWot0YqPrzgDtj{Av`aXs6v zFrI$ONC_@ITGgMX&Dk>2Pe(~yv2wdAWzNApBiz=g?mtJ}|FqgU;|j!YBS&PZN2ml* zWfWcKtRqM^sT^9Z9^s8$<7^HcJrhQ(7E%v*mipMUjJ8^)V5DbYq{rdTsIL}e8KlB$ zt_i)7mk|(;vow)-m~+h>Rte(0;%4`(v$GDas2K_H=+5oux{C5xW27#!hEwb6N$7p< zW*gQ~w3}*UN|HvBx+Dpgmt2p=1$)B?GV>-eRO$kt3G#`FZY(dfoY|}9jK`iLHa~eL zGKn|i`gn>~oQ5X0s_C%2kIm|sj*UrG*w+S1W#F#tY)kx|Gtx7!z41=`+>?i-@)uYwH{Xl&NW+Rd zufGDT2iw@8Zw}_!S(VTuvU_AnaJ#G5%>!aV2`)SN!Q&n~drIOn?_4#HIhBY@g$922 zU}BoGLd$g7Bex{%o4T|p?;=xSp{es33c{5b!VmB-)bISHtFEqV+?@{O&OH?gVez&V ztFy(jv_OgAK7}0SZOW$xC!cbu-5&0d=7)PBiI%`!sD#YvQincjv~#>{5BK6)Q#p_4 zdW`%{Xp}Qw*``Kl%ZU6CuEx5^RPFA(8*WDu3FVYv)86;XC4mPX*zI~=(!s59)YIMF z?My{Fa~jhdQ^$@sn<>|f7rSJbRnO~rz|1VjW=IG6QP9Wl<@a_U{`zb5u@4Oo4fM~F z*eYEA zS7YIMb;$#HYDAcO0CVYlBX$uU4)l5P8Ogbk?~b|a933E}S?6E_?QoFSi(!!k z2Zpu7A$Ww;&);Q_(YJWI(Sstpeg=-Y0~|xWpD6NA`C8wZN4nPL!W(}O-197es*$TA z_iEN{srlRAx7j22^6uB662_f-X6cGo%z$?xE`ty(P9BjbnlklVQ_pv&Taw+rWBYrb zwEX9z)?FWZwTm4^8krRz$CZ_lLgHTe@3F|h9NVUT5B2X4#ah;To+D^7<(RphM<9l9+OX`5H z=ZkI@ujitJ^dJQcI2jJDb;^ibhY_J%TdL3)tGT6kpOA37@92qr+ul9s?=xEgNah=N zS}1b)OW>+2wgb7wj7mh4880B}6bBSnQv*E|_p>ow)}*0tn(Lb2YeI>NItTLsowS&{ zj2(c`tC3li(oYwyyv{HE1iRI0ztB`0Edn3>jtCqtjvJ>x*Hm$pe@6^X036;!t$Ak5 zn4Xpt7Ew(kD5j<+VR0ru_#I)W&@pB!jMm>0-vCioDsfgtsGMQFk-m>v!Z8cUNqZ|6 zLZpCf|ClkR>Y$ii5wk`VTg=YtNL)sb%ED2KRS~sH&RP|pd3RRz?i$a&yV%pjuBBQ& zbJYDetNTYUglohspV3E+*q2@EQI1hZ5hWC=eRl<`RXs^mC8wJE7%P1zE62(S#v5u5 z<5hVe1_#fDk1kYeJEInRxw`&UR=&|{?6Ecbx$jmn%_Po#uDkvJt$=e`0mR9%b;}u? zEOC7?&Wf%>lu`Tt!pC&2v#n&<$FP#IRv%?0pL=wDDlZz&HM%IfuH;Np^n&bavhnn9 zKL6~S2S45R%oeIR81oruvu0Vv{Wuju_I?NS&2wxcdjRZdf}I9Wg3QmEqIYwa9~H3m zY$v{doIQ{CRxGF6_{{|fBl#os&~8g2zvVtuZbjw>y7Q2vkri3QZ|cZ_u~-r*k@@Nu z_qi7WuyGKUnZq;!=Zx*zdq8hWfaq5eSHIP+6o%oX|pjBjjn5>bf=vD zQCa!9tOfLC6YhH425!$G|bwG`cK z7kfNm-hW~LYbWH~Ub1+bH4n*|pRm1LTDI0fP9#4EVI~cL=j2~&&&XK58jxvwWUkgBQct!o}|Sj%9BuGUDBR2?ORP=a7+9?+S~BZaO_aR#PARW#-uXO^`lABs{3 z4X#ZluOICR5ddy)4~4uI%VcAK>P1EC)ZBw7T!SYh|HO1W;dDG9Aup|wOYvHW#MEDL z&du|2iQBP)ErfqE99bf6u6gOXM`#(iSaAo;jm*_Y>47AcLe)p1ysG&X^m;S)oUPr| zK#^)5F5Tt8D#r-rx{XyM;BMo_azJSzjYWfa=OiwNyBT$SYPhv<=ld|Ps#z)f6O4?f z0Pm>=@rr>(Qpu^9wvwIOB^RnB1GM@h^zhrSM3URt0KAO`u3+Yas5mW;(AOn`e4FGV z1vVciht*7)mfC z@y8E+)vJy7B`HIIT&?G)0I8dfI$$>2^o)x#^c0RCM!8_b<1MifaXqhEjJIMW{s$v* zB}RfWh%UlN2-(1LEdb~gxLe$$nl^b~{Nr0b%+AJ?DlROXr{LqVBiSgA2mxCnr=&1w@@l}OzFCZ<%EnaOl16xWp zvp``&_G3~i(-Qm+0?OR#2l7!{PQ@8M46_Z`5FvLpaXhAMWR8sLoiu4#lbfT4+$C@e zIq;|0Mx<3UQ+^aFIeT7L%VYXZc#ryrPonE_iXnc`$3{(a5oIhWUzSp=om^b-(R3i9 z)2CRilP6pCI-OpJTm$_8pc)gox$U%lKUE=HLI$MyexAJ2AmdB@~nZA z^xhV)*Ke`-y)I*NOumwg#Trq77|kCoM){>k9p!ASD&oh0oF!8QTZxT){_LzFC}5rN z|8-*PAjZLKr)zUm*cwRKqOhZng|*tS`(Zs#<%#LXHEuNF<4wp1r3TL+;btjD!O@=f z@5o_v-UjWXiy_eeywoSVRXx_NQa=!*K2{u16m+Qev<#1pcWgDK9@(fKxkf!wS>o_$ z`xBM>r5Lk^F&D{$n2W1XHlOb9yNj*BWV}nIr73~oPr8S5o!e468T5c=GrUOSw>H@^*BdvyC5osN6@ zb1JtmN=o84*H7sbyqVj|je&?914qbmu8ez=`vO}dx0E%r05^^M89>4n+>=}b_b;vq z|95fkar?P|0wU??ut)U3TCQD-T49RFl%i@TuF!G>t>nMaCWpX;hI)U_-K$ou`spc2{U2@Lgi72?BEL*<{_PN$v2XvLcWY45=YF(L z*h(!Fv|Dbw?STjG*y?)uqV1bux&}3q(qu7bkiHVrtqr6Z)PRfbG|cHc>Qn zb%~sxz~fQ-NwVtLlZMK0RW zCYWlc?23n>uyD4qZ$FB^#_~1Y+Qr7!Ex4vjIS-^`v@3Gz?+Y?hyHUd&j`grP(|-Gk z6)RlNxW@Ve3^nm0DQ3Os^LxDmAyK0<=v`&WCwf_&juJ7#;ou-ruFG6w!JLWk_#ulj z05|K{Br$LtXLCKHQh`=-22jChRqMj&tPr4-Eg`g279dZ)%E?f`V;5Ipu}3UUmWSs= z(hcqqaYiIcNt`9EjNaPX=#A!cI?iat8B;;mSZtUxS@NLi9TAI=^TIZ0q-8Qp7cecI z3_WY>@}ba|aqdVn)d&Iq72)p$xg&qFivqVGFOOuzT&VkMirMz`q^Hw+2Aa^sVz;;B z%D=&-m*C0{jA%aQXWA{dIGqg*O`YCTs4HwU_Io><8kR4=VWRgPpvaZ14c)r8yc3Il zffCNzZHpIgV+nCiG2XyV^*hCZQ_O;jKT72i@i*zL`!7+aHMg{Cve0+KD38#3{N6k_A z;ow=$865Y=zFQWqWtCl%sU-$MShHV{W1F+e@Esr2hu|T z7{ULIx}_PRw>NLt{4PPtsHb(bx%80VXb{y#*NE?G46bQ@q+&8**pKiKy4mvahB$$R z_%Z30Nn`bFsOM1EH^&BDfbYfnV~3nblJN!5(F7$_&}ley$~BEz>4bs|{i{WW1Oc=- zMoBq8>a28j_J;Hmr&_F&j5vqa7j%le-k_&UPakHaQw;Qadj|lvi&rb5OvKm`qF^le z&}bF#A7FXnL;SD}`EVwczy?FYSa>HS9=vizm`+vFe6|C!&OoLhXW=ar{N|SeV-T@P zOb33EEOxtvu!967tf#es4%OcceSHSA%*^;bAv|?zxW{1VX$yzjT#qUo3=IlogSu*= zJbTOu4Pg8D0mraR#4(L!;QuP8gLxu5Ib)=YHA9x$oVcY{OpV-8Q{-Xh9 zrXm`CU`6cT$}m$@6z~}EsUZQ$b)>F|g?LRxwZ4Am&U^%dJnV&t2M_N70)H7~OeR3$ z6#nmJO-K+jB+z}u4x0~~tpeX?aCic4DW4t6&V~4I#2vLnR_JrA=-rc%lf#5sNvfR( z_94b@Mgdnzs<9E9Be&GG!Pv#~UHYk0_2H0#?`Af=h$x!2j9F!^)zH;t5cN($4^O&l zgF-DQuC)%-nv16?#H>?dnUOjA`uD#C7WKdf4U15_Vis!X6H8OE;~8+A%!&L&-0;ta z*PhHp?d~jYN7(`_8ek)0yD9QuBrTH0@7co;Vw90tk(!#o`i~v$>FGIoG8C7Rnx|CB zyjy(saA@r9RQYHL)p7^4N;@42VBT5Nv< zqULu{u}irG%uvdVdW^lvB>-qp&i=zq#-0V-LT(B^ujSUl$Ia|qi=2Yq3j5o8w3AS4 zbm}B+Psf)B=OL+vwnunt&+dHO)9mPWH@~~bn#&$x`_^fj-L##(*nea_5wlo z#Bi`5pAj`p3HSRBeX(!f7l)4bM^e*iXV=Thm=eCa1Y>$J#*`uoWSuhaJPhRJ*zQRE zYty#lZB3tlv@= zIdG}0j;vb8vhtOj_hnoWW^h2`duJmup!3u`4gOaXjk&0De2D*JR#qRJe%&;!% zIZ?;fYkppcpP%Pq?Ca!(_~vtj{ndOp3p{xLV0G&hwGp>;mJexcpZaDkjsAXR0s^4} z30E#1A@#Fzoagu;t-yjOJoxN6)Q$l^?D4E4uZRoI3IKk?gdr}M<51ZUNyN!1W(z(~ zyX3O0tjjVcS=K$P>OTpztBlSEvJ$CZ7S{H;5YM|3Z@VZX!Yz6Y==e) z*mlB@S1JvFi8>yPra1~_JsHdLQEB%umT}nFzrAjs92`P+ z6~2*EI=YV>5AZ2S5Fe8e4)~6Cceq`eVVL$B-l;)FX?9BU5ai{034RINloY)VD^xv? zN?*uP1I{TWb5^>6`8&Y12RsAJFnLy{TkX|Es|6j#lzf-8&Y-xBV6wtZTq<-lu?)P0 zlWt;Re6v0rq$?ZAFI%m!=8put7J1KPc5BYxd^SJhOw~W)f%W| zx&0kSzk;Jz;3@CGQ(i`#tJf7QBCr$to3?MMEH7V|7rB{0X-F!A|H$@(Iag0U z*7UNI8sprGS^i_-B{rfGBVxZ-@ntW(U=Qyxpse%z-}GiKL+2Z|{r>?^OUC{{0M&N` z*|TP)^NoRV*#Vcq=c}n{f^{32Z@P7Y$!Hpj9NM-2PdHvO;!a2Xz|)VV(sEsSdBt-cbIuwE ztHC^^twy&d$Lx8oqP$!Q;c7Qjy&o{=+&eECbuQKZ>{i+Q&!g#JwoGmSiaYMCT zwxj9HLvYMch*MdxvvF&ys!+^h?dvH>-CX{UIvi=TvO7-sPVUsR$8qnge7N@=xDAUQcS~*uOl6FM z@<}-dML<;=(AsOXbfEL_HF`*g|0U^A#nHLCa4w@>S@q&XCt`P^oKJb4bJ0TRuwjyw z3fa5BzYr99Mi^!uP*D6PnoiRq7P}oSUBrM$;-yS9gh;-WsXyu+)Bf>zay_0rCeOsC z77{RJLP?P-Vai10$lwxXvLa&eMk1zcWZYxakDWo{JLqmD-bQyT@z5jm=2M0nql&>- zo^G9|7qpgL}%5y+iCX>K=%S3Al#@@J|B9 zUEJA33{)npDp5J8OtdI0ge$w0)4=YbkLsDAF4T1sadTpHMCf_wTtZEq%0y+k5Cj!b zHYyX13LljzXFGBFrs%Bd*l2Jr8k^DF;G`bAG!{i?Y8n~)Qvb;X*!xGgF6jzB<03?2 zVCHBtGFn?3P#8wBW0D^Gz$4CH1oI|;VklHwo2P)p?lqwKL;bsLo?z;f3|xe>=FNlX zQi}JZAJR^UGPiKM?dT)a0f5Rkt`S}h*lx{3Gn6gxqs&wHWU}b6T2iz~ksLG0#qZp? zL9ufXdMPMalsjN zy)xT=i4mr5#NV@?w5oD<@6nGoUk5952~7Jt5YD*` zOVwh;N^+=irNo?s9`&(%VUtq#tsPLvJL4>I5m--iQ|Dd=PrZ2o=>KN)uPWt<_QKW5-gk0-wg45BSX#0Qf zZ673ksT>D=Q1qyx`E@Nd=V!#cQKjVeuygmEbKW zsiP{`yyZ{6(egzvM5Y=V`Hg0Cix#8c5-KW|EmJgzzWfy)m09>#$``U-z(SP3You4U z!bmyWMW&iFpC|{3N!upj?xok5pcT~Q_P=ZHUOEdwe<(J!3La$Z7yy1R;k$M}31=6I z+O>9ttX8Y5$~o3-?nMcZzWxBhL-1I6j`eeByXaac4#7_{=oTVD|8SWT%`7ce>qHaW zp>hIlHr-@YGQdT-O67YaXp#z=5Y{2iD&W5u^%}AQJCFrUm0nc7hgm1H3N)!^%b_VV zB<6r$U1m(mhahX^tejQR0}_1NPJul3Zu(#_w6)=bBA1hJog`c*hU=rXsKl(m_e+?~ z$TW0Iti{fWl45_>;x~i43`Qrt`0zq2y(KuuEjULeQ{(&8TS8|tC7DfnF{mU43zC$X zNq)u^k*heXl?pR21ApEgxlRH~i-nZMiSXd-jSYkyLJW$9REIuBm~Ys)&K|knr3(Z^ zJ>0(5d1(KvCm~JcND$Dsam(NhbznATbC+{ha`Pd)>tKh#D~|0Q{!bYp_;~Qy#l(5^ zP9x2StoPX2n^-nwX=-X-{d}xLoh1kgPSM1a8-98JH?!G)6kTeZ5SZM0ejo&eDcVrEK;z_WHn+}ZLti>Eb+YSemD+^$xCWFWPNyz$ zMo=m@+#T)~w`|#N4KIqMV8MbRpItXZP*KWCCP5qDbu_ucM! zTnpDi_r~kH+7=-js0+SG3tz?8^J_qvT>vmwK)TRzCYf8gl8o0}%=e}4({3tG%2J;> zCr5eLWJ#z4D7iMKknaw%HPGt|;0?8(w62YA*sQ4ahExfe>*{i=RS;v6oyYT#CqqGn zauv`GQdF{Y4Y-HWQVG@c5CB!F@BpZ=8B|z>{mCnd`tGIq7TUX4Om=$=Y>=Ko8DFJEXz8j;M28kyVwSQHSG zyuR5J|3eh1+_7WFUfyQEH(Ec5TRB7KhQrPT<0Nwml8VrBtZ&#YTK(G|+nfin{2}TF zEY3LbbRL!KjQmeh#Q}@YXF2uOlbfG>t8eo6soFT z?{X$Yye*#|LF4ub)-hVQxx8%CTWzf$Y<;Bik(xd2Uc(ft#Xe`wb-!MF102G2xY#cC z4s4C}q#6LLcnjJ4P58eZrTf?X1a&HA2HJK${V)pLD+PjFVpwC07fMBhToNFFQJ)|o zc+%$&hgjse@5o8_WdFc$1l9UaBAnt6gwQ_TV1%VGjLuCc#xr@mUPeXKBx6z{*7G_M z{v5^!`;_we0IR!1VaPWyTq=f6`A&t(;N5g4XcLVF0sEyG#~IvL7~>Phm`xKhF12ON zo@`Ey^oI~eN{Z)0CyyQT9_#7x`3HFjAn2F@T_|)Ih17U)GH#o#S7cq9=bn&3)jyA|`aE4%s_j9QHP0xrPE(NXHy(TBqRKoZPZy5PLwn zxpj!$*(Z1H+(1~XYw=Y{5n1 z*+*)zdh@?ap%eWFKKrV@Etdhq2X%#nR&3p@R=6db-0S(EQw!?=Pz`nkP^yqNd|SiE zrCPL0towdDk@A(`Y+BpR!_zqMG~+HDB~MVJ~}$E#ba5O3r_LIg9&mg5-u+kep#HoN?hm`8sLp_XNoiC`Box z3&hFSP5ZtWxy9qLTsTa=PL-A^7`buaLyHyC(h6xgDo(B~s4T8|Y6+~5NHI!Jt^iaF zHP0fepwDVJ$p#~<$;qw3!O{6sTdU3^samn10IYbFIbkX|1y4BaQGT&nov=oLSyX4i z4{`MzoPZ+N)4?}nH^PHZ@#_A5eUjN8DdHMnD&7W9!0o_@-o>qFgzg5!i5kh@61gt& zGj78R$PI0k`Nn^?mg-S^`I?-|vuvIP@Xl96T7V))#c1H+C2l3N!;2@)$8@0WWd+|^ zCEK|jGQawkDWy7^58HM%wIb~jn@F$Popp~%66~FgV*rXjy#I@?o=~vSAMEQH5JSL| zBjtaPX=P2Ag;{@~bW8|H$Z;l0DlG_wjPaN+*h!rs_u@%icv8x#BJamcT!DECAcJni zI(9nBy-tJ2u z{TTdE-1zC~4Vh+SD8g2d4umrD5jarSPwngpKEvOd2aFaZF|x1KRn~(Eg|_hf)%bZY zWJBBQ2k|}hK;m!nZ2GTId%E!}y)EyzREn^iwGp@moxWa<4+aMYhheZFKJ7Fkq0vwA z{Lnzp;qGo!rw;Rprc~+xI!3$U@5WO{ekK0B{4%Y~g;Ki~b zqa+^y9kBCTo6vbi&?R_nBxmt7Pc`~Zo*Dq0ZkQMSGQ4$OIf|tN2eEjJGp)=iwxO)d`KR#gQJsXP&eXZ zsgqt*%3hCSZv|zkg4pFab_yt)3qRI9d{WZ)6PUAsqaTok9cJ^6^UzsDx!;oiJ6gBN z!rHdBwckT_Me~bFyX#S^)yo;U;?=8oRmjdljl_0T?yLV z1lmml?P6RxaqDfj-FDq1ukV|W{=Q|)+b0r4&sRIQZY?V)C{uXRr^^G3b>+`*DXf31 z>64b0PZ~e*t+TU$7LM}BG|SBkm<;K;4J?D$6vSLDe~;zI^RQeSWC8dGMbXY>V8#(U zwpEiKQgt}~I`XH4C#sh(b6kmvgNClQb>lZw8)xNV^_ZXg!#Twzzxp+@ntwb?EZ;yZ z-7YD-c%b>?&klBbj(R=cc7OcYXP@kT|ARfBALu@Cpqu!G(`uaBFrgPXlp^GX@`>J# z_PrnBp7(x!pglA+a0gb=>(zB*tje|ist!g#1&Z^_u8SpRJ(ng zK@V5^TH*DHx1vKuIeCUyxy0t+d}PU@(#nO1MZP*ka$T5euID7nxHPt}Y0oDII=jC0 zbRF*8^T{XwdH8_C*u2Ga5FG)4$yme?j1k*P%k1NSD`u?$0+NdbJ z(@zoA74t#MrJ!XNX5}S#3M-xh{AV`T<|K7s`PZ2O2d~?mQv~-oEFe}Y-k4Jh4<>m? z@t@qpPrcdl#WD9;Zelpq6iiA&Vclmle^&CdnV;3w*XJ^Xjk&r~2dvCXz-yO8ekarw zvP@cS%8p1*)PzwT#qP5l#iuc%S~PkY-rKOL0PZA3t+5(pNGd>KeOXNdA+Zsy++s;% z^?Ua0`JnORy{!j3;qg8|_Rqi3}ah*KX7v` zcG$0hkigDrrNo$Sr7ox!gI>MPw}Cm}4WiavOjTb#M-p=mamczP)@ zU!`kH+Ih$$;>QIX@Cbn(8h0MztlOeW_^ZK7^TA7GK~a|iiZ`5>HauwKIzLrh-$xZ; zLpEFWeY9|0fEK6uq*;E-d>$gOZ21fll%Wjpx%neoR%`119yC}78c_C0K4_2y8pOA^ zw;cHP*zsOpD7XMt?py?vu0;up-$rU8zm5;LY<>Lk$7?==YdDvR@94s*m(QQSU`*If zp;-llrTQrT$Upg91$;V?_(Jt7pLj38Q!d3trCq!7r#~qvDPE{dx|PTS`we#`JC220 z1M_l)zo*DMYV^6#IYYO~b%4kGNvO#b~%RP`$sVTY4 zAf1tWh36q6m3l+EmM+n3p72cz+4zXPI1T0HHXFNuc&tDkE&R+}9jbHSJrY3Z=Fj41 ziH5|_u1Ct|GFtCosaJ_lmxTwy`@?PF{gFwLWqbgh9VdZn>-dfiIEF4L4O~$-LbAhQ zwVp-xxDm3uwmK*F_G-20igBV3%Rqw>DPVdeNcIh|c+>@UJ#+?fod&BF)IUwoxRGF+ zYpX)ZUxJeNf|5T1B^QE{gs>G03TkVy+E^aB*RZ!`ID0XEa>sevUnC=Xd8%#pWhQTX z{d)Yo($cD*oyoSz+U6B2nmaoF8iUvVQGB(-`lI{ivFDVPMY(uWM#eOwQxi_Kb@U@o z{Mc8n1;p=)LTH1d;tRC1Eu4J-v5l&)^Hw3)`3n4a0TH<#b5_k~PWIO*s$mDK)!bJ& zH`ELvTOn&#RaLFZ&PI5Hf?X}*{j;;1-=wZ%YFuHlxPIr(-QPMjfrE{6(zP!5UXtdR zOmn>6CR%p`3y9UvCd@P1w!%@e0v#^PVVIH^1R3h$O27xVM&Tpelg+M|X7nc|0V~=2 z^+5z((JC!2-aOu9(29C((C0a+(f0SB7|4GV}ZhXQ)7hz~plLw-q>+k{0(wyKCC zLdq%8CPDiS+k`?@UbjF?V2Tm1hT#XOR+%Kk!#5){z7$?YWvmzA3}o9=q>_39(7FhK zfUy}Fji0{acDrBwtf{T7CH03Woc=>&GaM)^18iNyXTXCEAp(hpO-fpvnb3+-Pf)w_ zugIL4g2ytHV!h0}-K*zA_zX~h5+TX}dn;j$&u1L_ErL*;ngF=~nt_O6d?WnU2v}2& zsx?v+_vFrw={Ol~03LK<~#jC6SW0s6Y8&|1``aG2 zNB*Q;zvP-peY+pchf6HBt=86b>Sp9DSA_r&g8c+Bq=l9Cv}9h%Vbj-o45k*_o^ zBjd*oWOXQ6SFA$3v(WPavc*VM{Uma4+^ZcOC&H{`=gtyWe8IRbEc;vA1}uvyW3C=? zzS{b)Q!F>{p@+WcYx2Ejn`G8D+fl2oTAWRSO zD^@(ds*{oDW$xsu@|gex@p}It zs=p0~2K;{S;e#Cqza11q8q;L!L3vKgGEH4&#=Cam!Qc z@-5eIejnV{_V$wx&4<^o7>0zp-Ja}zbKloPr!^hj++2%ElM_b1f^vnDA=U%72XK!=6VbWMZ z%u^)U2H|>R`(GUJ9IGwT?i4n)_^x&!W~w5s9v80lZr_-TboV0HJOwx)vhA7&O7QdB z>oD}yY!7f@3X~hK>8uxHP?2y;_#KkYpJbGjJg@*TGI)`ctr2d$3hl}(Fzbx-7UClH z$R3#rRD!zA2N;;_VJzkVWt=@{K~br;v#z{o?vw|ILyx?Gs6$`#sZ%E=i^1N`LyF*LiI!gry2r%-B1=s0?cThVspKM^F5-<_dkOp*MlQ(2S<`FUkHw57G;hlKi$-H zbYl5GdXw-o+}`xkJmgp@RU~zrHo>MnvHOu&VBwa??}bgzO6ap#j6Dje`D>XhCm!Cr z_l}=rh@xSF4e3!%{gmsA@3>>%zWD!%rgRER#mskU+82ZGehE=z&w z($Z$+XOEeGnv9+t$C_-YAPV$ zJ>H|<-uO734kx092Tl|n!pP$+IF}QMMPh@Cwc0pClCLks178*f5dkU_IM#!vspE$B z@7sUU5H?*hJ9DNj6hR_Y>_ptzCsKKWv`fssD*{gt^3-Vl_ATVnZTlo_o=k-^=H}#~ z@(4C@Lx0-EKc5F@owCLKE`LVGmDd&J-SU7P-H8g>KB$(lhK?jIwe{Le$#*2R^OmdkiUVbaB6hVjL9BcrfnXJ8rQZ{;;tTJw?c< zX73@xLNeurUVW^x^0CLOc69|0zvz}~PL2bDT-IdXvb1i`almiKWKc1~3Zb^PE=v}D z{I8%TYtfoTh=u(F!(9&?Ney_e5rLnN+2<7as+(nr2VN}{=pV$YMUxcp>5b!r?)?Y% z9q@+y!k8(US6!K5HuVq1Pe7k)j63V>FJlA{wX~&o60y;TV47CD;aTnIj<3GpH{^7JnDku@B@J z>*uSM3^O7A2SX6r&4%!2Q^OmF3>+-LjAB=EYwHJpht{ue?&wPapBCgRe5Inlcj&P? z&7N?oqY-)J%A;|Q?QoSL5Y8g&)k#@CEfg9!^jYhthXCdoJJDza1ki-wWGFBYL=bJ5 z(7@o(*cV6?Q_})7QJ_dk z?Q|`Ke0?oC464SjCPa+7hUd0#cRj()FgcMEF>(4VAl2JiU2Yi4Vkw7`C!A-{DI%lk zV5f_lJ=+zn;7#?y?!>cE<(wbj*=UuhX>4q3-2GPvn$!?j>{pT1hR5FP>g-FNVx8R6 z_;H6KV|Cft6%{tDu%Z7Y&Kq>1la82}nj9aW3kCFB;i-;z#6H!P#bX4n(}TnDt6NyU zeDMthnC_JbSX0`5h)V)*RmW##Po$1`CbZKV@vQ<4&o?%L*P7(SN-G+}iBm5zPPask z_^1k2jd1@JY+KCrdA~cCAdv3y=A69i3k$ChyP98kM3QR$x~-*)pP4Z;9f}6Ta=@Pw z^`J-P{(8netW6EZo#^ck%j0;B$c4MQyg@!`Qu-tl8ZNT1*&N2c0vg^9_4f}By9BhS z6P;}MVZn>Cq;iTzFY55Oka>a$5YBHsM|#{S_TW~9_&QP}EF49qN}zZpDDD8osh04y zpm>sL&dLJQtV=N!F3l^t;g?kMq7LiU^+~r~e^2`Sg)?AM4D+UpyQ3;uTy8OOuSdJ& zP*T+lS(y7vqenLDljC_koU;?c&CTg6{;-01-g&i!PXO_0QVLHVNke?50ty+MxaR8k z&nnOf&BZXLmPkpG&6aow4%#=~ZQJ&+t73hA{Eb)n zU%;|%>+!3QKk^ndK5b3>pV=KU>%d&#YBJ@7!2t7o)!EsZTC{w*ojDVVK6iJg-FV01 zoU11SEkK=l9~ExAW@clw>!a{$+$MXIM^Sby=2LfIZ6E;Z)|mK)5fQw`UiBeaX8F| zBa!}o(U@us51u>`kW(U&uER$MS)$oI&YY@a{hmXp)PSfurai47!ov?^X^&zINH{<- zhDex&hTXFRUADQS!$&=ceml7SoK!_-?{tMS8gc7kc+OcvKBoQ<^q zLyU_`l6x@rWXDkz0P2}K3uCWC+o(FXJ8L(p7$udz_jTirCqdcG4Z9A!Q--fncV}gd zIo9z}4P04&ZSLqbWwEV*)?>JQTn2oB7}dB&MB2ntC#W(8$In$dp!1Oe+VlRyZ)AogriF&W|T4iE4U^zsR9%YWY;2XbSlJ#wD_lw6ww z8QiL!|6{&^Eg{29<(MbX*iM=2yhE(dC1oKjTXx6q)li39{CNgzdnT#_#yqmMww9&M z$5Lj2g>~(K_IRVq^>^rD(I|^PPd|{LG*CR}N{u(0n0~@^pdL^Xtp{O;BS9A}QzTT_ za$`s^AD@wVvmYH8(I?7)iXB=EuyafwnhUbv5ghQ1pBW}$HcrsH{;ueN`!RBq=R<44 zA7kWh#mE^mrcSn6t?3iZm;LOXVxzvXgsd1zQ+$=h?Aa2no1%Tzmoe$mTafPXP+Uo) z-n8@=^QW*wD7zmH22iEl$$eR-Li$({C6c!RBBgX)z_ZadWFzwXQsphWJxWrw%_78Bbq>A#t zwu>3X|GRq4UDwaa0kVBPCi_Io*hwBj+kJG6M?cp(mdU7 zl3u_s{r&;mFOQT>-0xtBQ?m-S;0Zl=;yblMxs{!q5AwE%WpfsWoCc*24c?JWDVN56 zSGbC>5V1^j!kMdB2viRP_<`t%@hX+jLo!4t2psIBPp6O6;o3Uzw`l@%5vw zOv(0VJnMO`{m{s@{byVovFIqN)N2!!&$>2mP@maw#+A{O<9t*;eb>P0;F%@9>5LD?k+DWbhDJt4#=5MTk&%(1B94eS;)nwb^M0T6-k@l@ z-~D}mKdu8f%zgLXbI(2Z{6Ezp?7;7;0D-)O3qlEDB@~9{F$_-#voXAW_5?x^>Qzlh z^7HQJW^jrAger1>LY7PQABwI6#^Z!2HBKBXD}*mlU{^0iZ#g_SG<}CE2o6gvADWiCI9XtoKo zBZNlu5W=J36Cq6c@18*DL{A`m8vX>rs0*HOaZI-10l>#S=#L-ZRg@p+;Uk?PqBKKZ zR}}9E64RudKf7d-X^lc(@Cfv!V>m=@hQn~kUl41*6$2w;Tg2qsWEh(9Yk-g%>j>_^ zQ=F)g=1^JbNvM1YV;EuQg{zR~0wsjJiV!7G#vYmpVR$I!^3s?cM{p#}-ba9>gF&D; zdocdf*eITj=MOXn@}AJv;W#Fo0mF%A(G+e*}NpKk82Fr~de9r3YX-wDJ<{ z!n@do+knsa;9ShY6Z9VMCzT)8d{Ece_<~*f!<7!l$`$Ls>d@Km%3FNBzRTlp{d7}x zb@hhNx;&mhRO)XR-ZsUz^HqcgrKDVwpoK3}BsfmZC}h7z@yTf^DOD(dyHplTbG60I z`kD7Hdt|9I(tPg#PbYO~fBFBR+m^^>eR$*0nI@viW4WBgN|b(AFSDj(*|7>7%|Vb{7w(ES?26 z=6mX10Utab4ee#+lzyuc&m|7j%W75mDe*f(k_^JMuNduZejmIY zKI`4&m?Pa7N{AH?=inSC@7U^fYoQ*P+<)*3h~Khyz_hBYthK2coj&;b;Hjty@$rhY z^FNW7_1W;{52Q_+GzqR{w=G?sh3w^uN$@RbqKgm(9nXpod5+vV;wR2)25>q!O}G)+ zXbrtR$2vSmyZeO*#CgW{2Y6k$UTZ*-tw5k}K&3a2v5g&RfPA3Q@Bz`KhGO^B04iIk zU8Dd;pih60bE|{kdIlt1k1Bo@r&77Eg563DU4sfLeyOJ?ZtNtO3vAH_t^Zh87oHWS zWe8jHdhs#jZ*AYVZ{LrHI-IKRGf3zU_2iq3drrY4$^!@Tj#xV$)+r^Q0i)VHy6%Fi zS6-Pj2a%toc7abixuvseiknP89@A2?7ZFdMN_;y)gxc^A23rSnpi~-tUkRlRqF#c`8V{YBL+YsWO2Ls1aD2f-s0qnPM z*EI)s$gM*fhj*q>(lWUvNNLidaK~%Nc=J}}7hdlN>*fUaP?J<}%~&KAYCi7n?mm9_ zqgjvvZ;@2NJ+QbnI5iOAg26LBMX|r0p{Z}z|MuW49~f#Qrug#;5vw zqobPI-pzo9Oz{`^b68c|&XZE?{3~Nmi+=_v-eyPO@HGhACB@1cU@@_yN(b`wqTR(! zV6EI(Bt%;#w_9QQFhELbfG$yKe}nmL4Y2uH_6|~pQhN-Aj}1^v{#{mwl1j9K?Z&<8OoNn_4Rrp&McUP}1VO2Y8gRr?tx;z4tPI&n^gk zk5dbKWp|H1=2y9ScRv6zB+Bn=t9@0N{D$OtSvOu~5TDgT*Ceri(rE@D+oB3E zKiJ<7dL>??(+omC6SR(sx5h_+7e3kD0XGo%_43G#6!ZrM0!YxI^Y@?V= z@>*lKju$zIR#fhVcWKpT142o)0sP-(MAjVW)Nu%cMgiItq&L(!H5?8G&W_0Y2PG#e zAa`{g@f zWU+!|f#p2KV+=(F6S{d;0&iai-u?!7yBK&&b)3}tx8B-8b(Tod`op;LUE#l3wEnfq ztzYkJQ$qrrn>XhzeQM4uq{uUS_tij)_n`EMFlB7dzKsOkLX^RJXUAJmpzGq|=Fgu$ zoohipF*#ye{V$k()VwQFI_-%{N<;>VQJQ{D0%B-|FgSGNrz?Vum{H*@7p6d%9Ne8*E zXH`PkM^Z-NY~)~Q!RsG*QkjDlIdwW6jQU3=Oov=8Bd+>ZzyDaL&lL%c-K6AkI+*v= zg9z%(;#eL8S$r_)YR;IkUBJVD)OkpSprH_PE>PbR>uK>g-lk7tQ^VnI-Nn& z-+R2HeNVfeoq>=S;GwTY&4xi|xLPHlW?fIm!L}o(onZq(4dOccPWGTS3Un$eI2-i? zQ3btG%S$dbr;Ug-YD8{efN+iQti*Y>*L$Lu6O6HzSgkJr+v@<5)(tY1z)8>z_d~iP z9WhLQDAwH8_EU$?k6I9P)03`764f{iXr;hNAP}&2rA+sRBtDG|h-Q=dTA8cAd#^0< z6|f>%;sZ-m3}V_#-xcXk?!68$cm>#Z7qIU>U|$ZfFKko&A+9h`^D67$B0$d~;EkJ#WX@0z)1?u4+q4<}r0d5cqSlgGFzZ)~GvuoT zamH9sTQ`L47?dz|2CZr_({>dvrXZCbYS%!Z_CN-~atFb`~QwG4Uhe zJ5v?HNeysv`t<2097EjwmS;9Le08{Ajg&+_pQpKT^K0eh&4O@v6FkL=5NWF!H8mw0 zS}T#cncMWpE%Ab2%UqndXnx9NF=lf>bcXN}#uzsU6}A#&4|oc)x9Xa%ei-KjXq+_~ zgTWXU?C&|!+}aOiFgI{Y2n$p3I#u9ghZpt+&~vj{KhmTdgmM^xy=pare>GgODkuRT z)d_(>c$6L#PHTuX>ID~n^2jkKcevBdgcYu6n2S)bL|(z5MrR&lwQ8LFz(ByIk%Dli z#(@D9Q@g@^hub^4{6Q*o#}Z&WQxFt0g+fcVLq7$?m#~smGOmG>VQSzSgeo*ev)}}k za-+6_6Z%CrehE00Tqt;goTX?sK1nu!>*zLbKvwk!!&hwBu;HJ_eS_vn$#TuV$Hsro zuDt8+d(vWc6cebMv~WSrc;652SL80fAReD9>peQC^Kr z`qvQpy^Ruppp|iPpnJZg#UZQ{@=d0wFuE%eKqp7ViK_hc*-O$9#IlCHpuH!~*WdQ> zTQzC8>RvT2OzL^6^r`1Q@d176e87&sN)G9-`~mZC({KgWX{uiOu)`a7Upkn(wd^JJ z{V6l@;a-m;J}!BZFc@&DeVxbr{#!!?(fG&d6OMpJ>P(<_>K3>c$R3}<7LVuTfJ+Mk z$qlOEf``!XGwr(?HkO9&)o~@Se6(|C&AN5#YIf{7eA4R`{L#@dlV;3awCK*v88dEt zD4os$%B((k(~P880rzUqxdji=0(FAOVIyI8ElyYiViaLoIaoGxf0e5Nl~sE_(|Co-PC z5ZZLhn=J!Z%9|cHaZ-fmL_fP=`!$bU>GAkg0&Wy}|3$ShZ3ZF%(>VrG{0^6NBpvaR z*cjf`#N-f+u%($Zvtir3dHhoO{|*L3_%&Q(e$9PvA)EA3z>XO`p0LX%vgF?{Su%IZ zbwqsB$G+e1_m2&c9Lpc4k3R}5!ZoQN2Z#?y%sDjBRNU3J@L)(Vk6*1z|6w zj?InDM^5$hfT!>4*uA3~URy;`{V1b0A~9v&;=H_h<6*NRD&(T3y(49+Mbi&N*y@}T zL~72!afFmXeW?vM7)U%&bNvBHB6@IYP!l;aHZ}%?EXavkjD(c@lyzC$mK7Rs|R8 z0hcD=!UEvJLg2zpcrY@--GH>Umm_`c4CIj+jnK_RZ00y@Y_{6DenU+?SnLPFMI7-j zj(Yn{@kt1ZTq6Bx{HKA-?_9L_m(c;2)Q_3PIo&B>$u z)Ah)nu>(SfE9_wHwnLz7Y8|{ti@`mwX3y)N_}wG_kJN%IEW8;xQ>JinxS-5n={1~* zOXh5>2ZrhG5W6ebTGf*IH!e#DgH^`i> zP_ts?ilf%M(%?JLps9K7lWu=JY;UiDe|k-L$bS72c>Gm4!&V0pHAfKo*U~Z@5ujIv zwCMA~9F;@3^uHuDqY|?gW=w(^Z-gb#hr5lpCjBo-k9LUkh@U<+%Cmd#*E^ebf3>IC zbNFcY@y;Wj{}nBALc1%w$DqOh5*}?G*Tr;TzL0|1-}Yl`>kkKydH>hM>eG;wbVxH! z`l@sK?G3oWNHe~c_}XFzvx@lEEnY+~ety5}<$ip{|6Q*FrB~CXdXY}eV7nm4kezLG zP(R`eDgQ$eX~mU^dP5Uc&ft(n{JfbW!;jpXw9DsK*g1TKL)!2Q`Z>;y${B`@2~Jd2 z>M3Iq|Ej^cC;pYZV28BQnR`hq?JttG(uh+kCc;_642n`(>3c8UdKi7Pup@IoGiDPp z(p6NDiHa(`-38Hqv8uGCyga0r8TrxPl#JOKvnKk2r(-RnBDLXGtKV;B+nr8re$K4e zh-n93Nr!B{TzbU(M&(Yuss77<@9rKj$6aAf8RRH0@~IZ8GhK*FdS$$;x0w72avm=ffND1rVEB zsI5w3a<9^OlO{!*M(G1x-p+uk_ds(i%&9Ozis?|6G_%^U>}yB&wQPT{vizm_P;4y0 zC3r1JVk*)#FNTEo2gub9_cNPXdPdH;HGh`e2O2TatqKe<{yBk%wP|qG#9+_}0d_#g zbp*QnUN6$t^&ac>561CkF3PCtJ=uqVZwN|aIBt1n80-xOPWAdk!yuLI=pT%Q-x=#) z=^W?n>Nz!FinCatcQR?ARo9VS0FnbDzWdG$Kx}Gl6(P0=Y6!k?Qp5oTo50|o4nC5B z8Q>HNhU$6Th+UkFU8HO+6hCDlUE-QGurIH99wAU`perRRx05Xq`2b}->@%h~ zxy-y-ip&a(ULq>d(ls^n~<#ru=QsgZTha5D6RPqmm?7#d&842=^Xl&O*bD5nizQW9_c!}3JH3q6v z5f?4K5*q-wBfxk9r+O5I#l=bX+e0TsB_8NPiA`f8o|@1L(5}Qtz+i+%N z9-3&-P^2>P(6Y}sUj?v)PIoONf%NAh?X=ZzOjoz6j#=+qF6Qy_1pUaoT>L_*24;|$+t zqHNmGKF{9`%El}-J2L~?hG^Rk&^EvVX*6WGkY=B}{As))Y007T&{mf?sCTV{hAlyE zWf7Tv9ZYbCH2Tz2|MQ--;Ux~O7xo;EN%G279zqIC&;rhKXoH-a!g@@8cuz1$0q@Y`UNMBn%doF2u&>u)b(HIfJd;paEt6smC5zmqK@Go9TC8?K<|&7B;$0BNa=`Uk z1XRA-S~?g1H3fZ2gXp+Wwc?{j@cgw-ZDmGA<)*kXCf5kln7B>v?*M_`@&25WA7>%C zKv>C~AqOz-xf9}VDAE?^GQgp%2=@ecJ9im0^rvv~zX1lm0^dJpr@`1yxbh-EoF2t`}~70>!9CfhCvEnMxVuS3Z_1l#izpE7ef}(cjSFf z!QPR7>S*lUXzZOCd#AFmS%ZQ=OTo7M72orvrJ5)IQGeQQXRs1EopTUFxl;D+UWi@I z;<|h;)`q``%zFb;u9>)KI0XB-Fm{T_B*2M!8LEsPFXSEpy;&u;pShI@BL z4mbh_yo>8MBKqRZN;jO;6z|=#dhrEkgy-0y_Ctr-0)u#Bzej{$9R4|hWX?#dZLAGR ze_>7&c&z~{ix=c|4c%7foj6?Aw1Q#>rRv3GUsywK2Uk&v-@BZMbhxK9}^a}9`=Vm*!!t?uq2r4V| zDJvY_?c8`nwD2rt;T|072N2O5f8KBSElK+85I2MxTo^D7X^;fm;n+mTRrn6Rft{PH z-gZ9kKvYQv2-}3tG6_68sLVVJgU=<$EkRe7OM5bGT&iJyZrtH8I(uWln>YlcWy99$ zVBjJCr=GT;*zKrj0+Thjh{5;rT1sMyg#^?FS$P# z&R6!xpi2!siyhqA`JTOV;1x0a#0=r$x&6r->YIAru*jBrZmoG(D@l|Tp*$IMD*+f4 zS^L9;xZsR~9fy8wWu`N&@1^6OSs*=NSW{C~wPDlRH)^ci+qT)IJO^Tv)oS%g7XMZT zbi6O(^(tGZ(}yEbcybm){Y1rclB{*eUc{g{?qD5m)pX+z6tWcN={hs&S6QZc_b#~s zT~9)8DMRSnPH2kiVLGdVobw`oOLKcVs9ymmIG{IF^&zW`ebC3PMY4^%5Cnm61tcD6KX$s$f2MQS=E_%_ckgblor9!}nTQ&j4Xy8!(xW4sZg+9{ zm;17=xiRYoUQlmQhdUABSFPQ;r}*Lc3F zT>Xsr%=%AG#o3y-BK;h1oqFx${zFGaXm%zy>K9?_R-Rm4NvkT+CmwH*||r+de{0fG$`okZ+iWw+k4<3e*CWA20Un$r@IZ0ESRVfGQ!6sM8p`DL!Y3U zW7c$ub1_;KHj>%~;9iODp#=*T%$#}M&5z6hh}Yu*vIh+NCL$|q+O%Jc=RCXKtyuSx z;|5rd??F7%G;mcjk%Q$<+{_Q607Mb$+<)9YGE4mUnn3JG+t?U29GA%vM1>&2!2#4N zgEd~SkANBKbXRBR*B{o_?fCbu?H_F4vBSp;;c7UVK=FX6!v11`hlzk+N!sE;&S_Ae z^r6^2z6Jz8=Trr8MBOp{`+r0NhwfemqXSazpYq}(FuEhA7S-dtgSsf#*2j&AHfo$u zN~=*9n>UXPhjmu`SfMowurrj0i{i~E0E;MBTUxL^*p9TbX~Y5Yi0uiv?jY~HN2020 zy@-D?z`NrLaE%2#JooIuI;TU{@sx0DoU;K6C8`zq+ciBWpxgMjLtMzUa4pQu+{D~5 z;sD)TCE7dO)0`6}>dLs)_`a5V1PovXc$Q-3cG!6N)!L7FgIeeD+;)^B24QuGO2r z^BgqHLiMLbvq$voSw~^>4mU%fd35^^U3g|h+~g#y0s9mfG}tHvc^(+>d5XV*uwt(@ z>2A_-mCNk~E~Cw@25RA?3Z3ws^(4zAgVrg%rSI63Tt zS#miNq?=W}%T53DEF3COJ!o)Pp3}i68U|e&Uk}V=W7RHpOB&nDCGa`7{WSv*R|0!$ zRgb2o9?U@OnoLWirQFUo*bNd4!j<_*wpcJL#_!t=wV%uxj##~Ux3|5KT(>s2`utJ9 zM44E7oPdvu>kyJN8NuEH47D*P)I#P}I%A}k*K{5{(9zj(sIy<-W2U6cyk>&NhdL34 z))Qohl?G3F;Gb1O=;jLN`QZMO_$}CftkvxZ7bFDGL2U-d13?^NOh`7FMvlcc*pRIu za15OFaeu(=WLz=hUYGan;&Rv;Y)7#})(y~ZFi_&aFflyScL*v~*ce*b%TCz5&DZ7T zqUPf3G9s<8{>pFr;k}CI*RESzx>Y08tovt6yLn3T$S|8=?eP?N$T@lMe$LjQ=AEFOgdznd*EcXOj@pWJz4pkpHI5a&fMaY(2n9pd={^jlY>DX27XxD zMw)~GKXB@J=dt5mohPNB_jpflKOJ*~h$Dr7xJu(c!>9&KDdZMV+PDGu_okgxlOXEk-M@1 zm6t8SgI)@1PrUtsWxtz0BP$Np#lV>}2ZIgdLnp&s?PxOeT!|zsGKt_Hn<%8ozY3xr z#-@au3-7)0wq=XSx${H$a{CZ8<5^YVEt5uM$jLv#*a7xhSm7-1XZ7`;d1n=7Kp=02 zn25dS3k$K8b%;I%)4_R=1@v*0=~z?K>g3vwBBTllOQvS95|A5eC2Xpb?aBaG0Z$dQ zKXa5O9KX3ueipy5u<+3b^Ya#5WAu6V49Val*X?EgHVXWyZ9|^wR9xYyv4uG~h2ndc z3rwRz)O46BIwlhCn_8IIwFt5n`j7m$|6o@@!?dyE5bdEyG7(->39)80;!3AITQ`Nfz^H!D}VhRN(}&GNM;baZuf zb{#$932OB^L+?SjU?DWJmxuaY!}ft%1JUqnv0Xa#F)G2&fMJGU)ycEeIL|N zh#J?Dl!3cX$y4%%>LzA1h-#CW9Xosy8H-xP*rKAg#&=&Wd$sm3i@E-RqN0ap$Fh#i ztJ4tzi##T(sx~NFUK=9_tdGh{9Up+E0s)}7X5hc5QVYC>hde}xLi(FkJVKdV@F^M% z!$erzgoFuWBH(!jTEMH}GC4@G#!^5GWu~E9hHeWjpri$q6m8!OfT7sI*JJkh5%Ng) z%R(1EJIi>!0^rr1YeKLUg%!Pm)r9))TTEu3zd@`9Jj~z0P^Cva?-s zUs7Xm`6jYo3=Iv!k7p{5d_xlbMaFIlja_lx*or#o>^{-FFEV!dxv@RxjSb%Nys>GY z)jz|Kcv`jVym5_ZJD$alpUs({sX(jlyq<)<%5vqNL%fKL9l*&UYf6D0+7GVTB#3G zjC4--h3=c*t17(7@Bo!#hPkCP+&2@01#v3|E0{Ds$9b=})=qkZgQakIf4-jZdPEMOCKMlCRv=U5;}+?fhub6-#j zm@Otrc3(f*)yo@3#>I^ug$rUOQhY$%K|C7#&%p6Pyaw@pE?jf)I9LlL{Q=o}p!RzPN*ley`nielvzo~I;gq)&>_)ZI0TvnK zN`p=fU2b5++)+#JyUxH)e*VguHLrYrk{PbMZ;1%UIE~|tR+f zjtp!erQ>grY*FRww|ST)eNkTCqI3(A7pyNAA(FY|^gObgD?G|^wJP7;dY-apf{(*q zxJD5fr!UV@FG6`DM_Mc+BN5em@~8*TpkBz#@avDT=K(shGOsd z>O}-x7#uzwU=pz&#ft(f?+Cisn}KGZz59=nYH4Ly*s}3dQYLs ze1E2#ZWP|!5Pi}S^D;w9(>R;DtSKq6X%zp##WK5epVK)Xczzd{bn^VBIGJSpev|YN zSA7!P3mh(IOV{C@do)kgf&Kgz4$kn$5Cm{Sv!RQkwgEi#N?lciN-SSU5S!D7p56f?9|FkeAX4o<0U;a)vi}scrJH)q~hPJ~8e>&LK z`jh9d#~W})_>Z+6Kv>6_0a(ROw5^aiCcv1f!wnjY2?tjOH+{;WwbE$-?=;>vKGt9| zhG|qz$o^qQQv|YRVNX^m*+R>(jQ6nvbFl+ght3sSI~QR@CvcWdLlbohV7pKCEX3W} zA<$;SE4@hb>>E{8Rd4LO74t-$O}T~P;3Z?1ausz-u!|b$jrQY&5^h%^Jj{W zu&vxP+`HU+T)Et`I3wbB6pEYAQCrAe!2;|MR`nbh*1zE=^>~TfgyZ=Ue%=c?z>2F@ z&bPx=%k5#*x-cOn2GQF}`1q~^mCeLFEfM{if^>!J<(8+ApJM~Rd`YrPII{QPQH@j3 z96h-Ah>K5Nf`lvh8<(_xG%C&s$`78{ z35RA_k(?$tI_tW-11MYO=^oT*BlPHG6!5obTm1M~eSCauj2`a#NbnA&CVmDGh3|~i z#lXi^A3HuiKF&ao6E`ao*${V2x|CtwAgK5ktO9q-asVKiyS1}*q(iYwdCHHQhBPWe z9MA<%K(1M!KpN);fYFWZP`WKte%wCPdx+!H053JbOW6|7Rmu2MOk^sJt;Q3S2Vivc z$9Hr;%f}GEcz*A_!+Y2M=icO%cz$o|u-@Dl+2|g&nXtykkUJeS zC##>G?UY?4?b29AenfU@!4U6DtT1^JosE3Qod9WkiDYpQ@hE}5yPI>%2ebralD2@} za{vXDpSKTrWL)$~NY)cVBl$^;7^+M>^?&yy1*McH)&93nBJZQ~R!4JE&`W+2w@e{F za2z^sT3DF8Q2I#{)g{-bpqetPnv2XT=iGyo(@syi=&Tg9Q=a6%_^cM4d)TFCMf@^esP`-iQqGPI_j zVfn==r9)m=h*IuVPV6T6tllbr&&K!vh(pQ)6d3OvHjhoAdE6TMnLTvcC=1^bVD>GH zXLeBRYZ+9EE)zV(BVhLAs3PQ3dqldI`_v1=lrUda)ticT{r8aG6 zH#D)YnG)jrA**03RnVaSZXQ_qR4$LB%FB17Msp#;iUo(AOM%ABl6fx$ zDD3B$lP$Hg7j(Z{a3|cWZdvfS9j56#XF4d?Nu(?<$QbEfEJt9cz$S1z#J@+RLYZS* z3*$2-mc22Q)AmOEz6eU(wenvJ;YD;0B##{Msc|AWG;Rgs-3;~fIKFsX5IGJH_459p z;8%g&Yi{}RM<_{qbb>kHIn>rIAt+97ikmUn=TybcjuW7B6(VEfP-83tO7{Q?c}pt2 zapZ(4fq>B*32i)haYKyN7ziXy9u4ac`Xl3-iYrEtJR&^ttr)&l8s05qK@s+jY})g% zca)onBAb$$U4Pqj*xJ6~<#lB*Z`fJC30Af(-*lWZk>M@Obh4$nL%0Su+v#C}A1YCN z>`|()$Zul1AWbcLcot0c>(E{jvcGe?-*pKmkM>A{EA03uYf8U4LvjF-geAhWO+7ZG zNmUXyEgtzp^BNpW@z>z!Dq**1Md(Qj%#RgNv6taP#mKm|5(@M8@Khe-f|&2tSi`^{N;9?8vTI2Oq3x1hkmhYYql)nXWm|BqyLEc03dSQ>FVX z6*V;*@r*CN@j{-2uLJYfN?~9k1L?9Adlf&X<(1jkQ^nbOs&p5>q2+pH!-5sN4WHN+ zQuS|QFNgmjD=Yu;q9+z1@78OuJ!%||^8JRy zFxQ2lP^(^_bh#~3@E<+U)^@miKrl~X3C?FoIA9!bmgvK;ff*0k6t70AvQDRZVoHjy z>+9WL9ck;LWapc|Y+c)GhB+nKvUaWc%Dlf6Ju%a_7I_gw{eV7A`U_+yXH2ZQODsVVdC$juc+iV20(yMhOog1F`qmo1>ygz2Hj z-~^RgjY{5!phSx@7D!6ahR4EX)n7$M;AKHT08d=P0gFGW++7zDLU?T@fi0i7| zr71o{w7XcI9T^vDY_I~kK!hEt++2qPKgCtB)mtnjtC&`3Z^tAsh7#pUHzOD_7K>+w z+f;bApiwJI0QK%7dM@&uNDX*4Ie=Fw&tC#7BQq#t)XP2q^~1(`nrVE<-^wr^k}vDp z+L$t?__VwV@_!D;h-BL(ZN2O%rP68GaVK<>ZimWeU^e{P?sl+NcZn0=V(S(BZMG6rhBK@WfboCtjzM-yiJ}mkHsf|ly zUa1{~sSerxeqgP0WZ|!peZ%QF#;O7O1|B(DW;3}$9tc_``vS8_(NtExxBUmsDq|ss zqD`ctwx;jvDIv^Nz$UZ7;#uP-PlxMN{KZf;%< zev9>dM8u?URPwaR;l2YqP|2Zb&z{er=BWLu%g4t2g0+K84ib zb0{lvBW%O6o1gG@b2D7=q9P1_=uzPu6B+Q6?NqRdaoe|7BSQQA9p4;5F%@{DO__Pa z;zf&Zm^t%ixIeh486LWM=0v@Q=T7e3@g6dPJV8lQxTpUiesCqv_d(w_z-z+6ll1lm zf`Tz&QUZdp;ouF@r2-M;1#A*|dy_U>{9u&9U>;=|6{S;AY z_@;Spe^N$G&0P6yWo`NNJAm3qtBM4A9cpR#;m{VhWsK(g`nS?y!hy4n3-QdL@A%EF zMRAI#GmVw2XG3SxZ@-{3Taa-%=<`u*B5i~yobvV$z!L(qK7Hm{pqmvoeT1R+d3Ac6r!&U^O9ie3 zR2`l_q)unjYMJ&JY>IdI5WS*%krZ951zDTmN$lX3F)|f^SSbNA@{OoSaaUq*W&(Gt z*c%h}CKi3=4RFWOCCH=#A@Rx5(x6f$6{(`nVvq*4-CA2SGes&PFJqB%;jx+<0OLlf z6>bp?oE;^TYw-U%*2ozg1lJHk@%B=70aAqtGE&*?b#>wzAeL7_EUI}fu8BSmxeNv$ z84;BV@>8*ftFQ(e)?f~;A*`k*F)=9#Oms^+psACPpMIUgfisZd#J0gpRvdN`4B=S9 z*|Wgg>ziaTQ0n5QL-(7E>l#*1RJU@SI}mn&H8&UfcF93UeFzDL4#pajc}g6z8JL8i z9^Yf*ZCHaN3M@@~d%NG?-rm;U-q;9Da%c_Hu!dBe5sD)j89Kuwu*%UhuDUEKwW@02 z!nG?));At#WnEOcU2#)+lz;MtQc+%ws_pQJ{$htV;A{QjlaFiRaSeY>1QE>wGid?28F8 z(;)iz;L=DmtyuPM0A|uHN?Jg&L91-=2eO^h0yf*Fkz9`K`wv4TxC^>=c@x+>`sty^ z$oR?WQ&*SCF3)vn_V^zzKEY=+`cNK)+`@wRe}u*F z2iaD>FtSofopzD-VmMWCaQ)cDM9hs#0!b-QND9IsLQ_`ue~gV|lWmGm7F7ow!Qc_8 zleuByh;?o4%EWsicsOYCs06Ce4*XR}S-NcaT1+yEI%q|-mRxvHIWE33&^G4_xx{=-6EIg{`}XY#C}C29GgJ==@J+5@iJh%5 zJ^0{*IXN3Q5(;hK{vh)2!T7pnFO|r`Bnzd#;LJFjYgkQocFj|voLphQ=xVN9y?UdI zBJ+u1UW%N{85wdaX|4vIRLI*!?>bNh)WH>8?w*YiKf#NdOI^SUDk}?+mf46 zQzK7AvQy&ZqFssK7G4}6;%knWuHG;Wyz4xkPETi)Iq@81u=7qfP&P(Dx(@nE7!T#l z^{Gi0fT@&8p}dC|o@!b8;@$#2+&*-wt5BV9_^Cb*D@b}X0n#R5GTDWUHt=sUQV90i z{55_Yv@$0-m#u+LtP!M&xF8m~A_O8w4)H0tL|82Drx*pj3AC%&^HA0bl1F1g&o|)t zka35epSZR(^CCui4tw1zM@=bu|{u>WG9cG7Uf*zimr<}g*y`1 z*GP5qd$;y9B)Ukm9zJ7W#nq0teq_mygz^MH8OAMHl13i;rX}-@KQ%No{A8TJq_B|w z<$?MihF2+MEy!O%_7Of-hE~b#go5vCK3i^A^BQg^-g}t45*BT&8f_$(r+n67=aJx2 zAlXrXccKu4!v+&(LwVX1avNE!dbM4+G7UkZs8A=kw1WddL8sRW>GT=)w(55ignd-# zLUuA?O;}_S1ea#`)gWv~v-*QWZ0t=~jhmWO6kc8qJ?t$r%*Tgjr2Iwm@Xce{ zp$}k{{|i1+{jcLlRDV}qUb(oXSc~MJlxt3Mg?l_mi5C+gurr;9-7%OeSYIaLSRfga zCNkDy@rW-I7lU#XrEpKhN)h`ZhTCjl5f69wGwq16q8Y9ym+s=$kAVjs zdjul&9Pp)$P$?z?Dyx}~%SWY&Vua>Yu{X4TO7b7vT3-GRl#1NyXVc)XxkO$1>bvDD z6QN{4%{-@Q=X9=goQYbtN;Msll$)vqY{m;sv)tOU=U<0ScF6{rTgU*=QEUaTl`5h7 zjc0C#_O?L!4YG42!GJ#ns?j76BwTOU)l|4rJ*aaOzwkztcO^L26&kn@=ZoCl35^qzaN8;NevD;Li zMyrv@8nTAh+NC(v4*QyXyJSESAxuEl8aYCr;CZSS(ZH3}AZG#RDBy|&P{De<9Ne1~ zadK6%h09cFyEJl`>XJvJFH+{UfcMzlw4m!`*d7BTA zjyGy!M(TBTdwMwJ8_&*vfctz~luNs6)~pExl4s+lU!xiaHSug*2h?6-g?MM48d;6S zsJ!y3%}|(ZXbc1z{h5V@h4+agiX4t2q3wrncJKZwm{e4hG)kgOUgFERsiS$HL95p4 zj4F8P2mPmxb$F4`Qg%N=@i<9Z0ZJAvn7pS>pZ4{h@}n#PGmbFFMx(O~(;@rx1$-Pt zEGZ85dajxdHGQ1NbBYK2%?K^xytAZQ3Paq-x5^X}Tz& zRCc?~_TNH_EhPS=kS)9@*hWpSshNHW(7h`3M@RQx0(^@1mI6M3n9WOo@KqUt!z@QxQY#du0%rrMB65Y73zw|}XjxHl{!d6M zRH@$Mp%*IELs5jBX!1)SKH*tqCnsSSCSw;av+-;M=3%i3;n2ij8p>SKg55!{P}h8J zO2J;t2Adq3mpr%mkZtR6iv{T149$_ljZdey{@heq*&I4W1b(UPV$)VRNKg7AQ==}zMD_NQ zRjXNrQ-e^J=7!CC5k0Gjj!y`?N8_&|Z%sv@**Ca%;WMhbC$$EW4n!bbs`}IVPt~dL zEdb4<%B5sEc_?LMamYhd{g=!r7`{ZReSEsP4rQ$sI;E+ocyrtC!@*)i+ravuMJnNb z->HBg>O3BlbyA~}pXh>i&Of*Uv66gAtkoJf(x3yYhA%wJVnWJ2imZNy#}%w-?Qg(d#J9J4rQ1X&YQP{8^UkFRm&9s9FV`|qA?H!F9{Vp&@+!Dl}m!> zc^NzoeOw&77>G)SfykkU)&RwlVsrxZN;;bjWz--=_{HaC5Gh!F9bhz9)hp+5ZD}thm(j zogua!H=2wmPhJd9Rt&?FC*v-PCqNY@E4vMAwNGeGk-2~vroCv zK$6kWaJ>sQA0<~Q^p3fO8xaI`qs;jOWjv6I8XDLzgb_Kn`+}1+3)F-x(@n#HMvUm$ zBcILUBBIOEhCkz=#{m~ybr#~O$bz?x`8U2;woXSUhK#~3(N&k{>y+aQo9sGP6= zPcW;_%BueV2{Tn3zOd)mUq^IUy&9{4pWd$CbYS&xZ24GQefcTXmV4Wo307lHhQ4<*eocJsz|{ z&`QdByi1--L<*X8-tYJ9ZfYzmBZQ&A`?uAFcjOBRsQvIURDB<_)v6m3NPh*xjxOQ& z+m&x0PY{5FD=*Ofxz6eS{=*R#6}8|Fuc8)=f>Q7xDFrV@_RD3uHcEr~0p6ZdJ({s8 zW8pHQ(Q1aEKl~zq67kvLgih8c#u;3sPxPG`aB43`^~#4)Jv(+`QRuW^hFyrqE{vtC z&uA{6Kh96dzn2o_=lu1d5H+FR-vVjf#U&=n24vg}vgmZ)eYrf- z1e25)B78ivgp{9VFS1kJU0j>MG#tb$}GbyYSvGo+m?OQFKDW=!kyr zzdr&@YCrs!HzGa(<`?|I^ztq*mqG!rDa>YTY=rJU4GuOhM?O9;Ir;KYu%-r3B#dM^ zp{KQ}>AegjJh}&$@;wM)-zEri(x5|oSyh#pS%oBn36G|+dR89|MZ`C!Evfm-@O9ty zmi})W8st9+%coj`>xb&zF4V5`Ll=|FQsDoQD*aNr*ZBA9>hDqQK&Oie_nG@o!&PP6 z!i9e%y@}$5zg9KN?E9J~{!5jqwbdl*^79v@O`o1|*W+aNgsN?9{uCYCU*U8(U-`VX zb=QYTs{h$BrW>1?kE*dSaXYJ2=9oyeGl63R2v0#;)j)qAB6<5xBR2T(f%b##NR6N| znY(m4(p|fl^c2(qK;spV{=<>_u(PWRmL1e7bdJKsMEwK2!C)GNOFI@Ogx-!;Y$)=x zIjiJd`5ktJV#g`-*WA!;l}5e?WKJMX&1y33J8eW26yxcApS}rG>RX@g`zaQwoJah$ zZ|`fNG8U?J-@C&vM zG=!5RKs%Br?of=YmQ+?Q z5fQL%G#eOVcmvE}HbS}6hV~*q&Crnnr#7Xy-E!VzNG4ggO&q4GOo#CVNCsbamUvG( zE>koipXv_6-69ehy*ijB13I4!3+wo}TzprhvHA8n#|M~3t%hPp8tg~J3y@rW@bK|I z-Y{xhylr$O@9#P+t`ZPQtcH6N3jLv40sT*dT5|IL+$xjTYbu7lnCf4QfY%cU3RN3q zfnyM>JMs9~1o2&Ye`aET=3#%xo-hgfBTKX?DTb{`@YR%PwI+^DvfJ$w!wqZKTBeY( z|857VKq(?0sm~++nsNe3P~Zu8+jS{d$2|pOX3nD&SdS{$?5Xe~v$^P+uU=aF(hh5m zEXi@LO=%EwTO1H@VdF`aTdtw(J75t6=dyoPZ)8G6T@>Ej~|1{h}g$4t-q z!(SCy$l(BMCBEv2vRFpP=z_id5Z_{>^!hM9=%!TWB8A5m3o5AL_@^8iD7WC@6?B6A zI(DMRcRJvPLyKFH*XCgDH(~8Fu=Xif`{ke*TyO6j#82l*C9<9VF==_2+gqYc@Ut=XIrrs@U#q(jQeL}sqa@$W{uN}sMAx|c-JqRX}MSkw7SQut|{JbvAIMNz8 z)5q(>O)*AtJQCH&_HqUR4m`zFp>phK5Bvxs41(UIXC`P6Q5pk=Sg4+5>I#!Qh1??= z4YWYUnJmDKIM6Eqx61)H;>5Ym&P-Ul3#HW{kd$a>3DVg9UbnKoB@9+?b2Y5qVJRu( zasYexdZ*crn_wqrJ=GnzU}*><~Ih8|3I5O?$yKO~^8((GCDbC3l1A*kD? zL8*9+l&5+DE{U^AQ;g9_kKPDvozvjX$jJE3O^IW!NW0p!47`BmffJEc~K3c z?EtDj)9LCx^R%_gU>GsNpws9Kdciz0N~hy|$0(PIth*OsDp$OX$a}^Gm`wxB(g8EN z$J1n=Jii}a3#x$s-IWwxc{><)YIjI~6jpBdX)r*Eld_Sc>OtMgf3)G4w7&Bs)d$Fv zvcbnEIW_gUx%D2;%#hcN@Vg1VUC)OMG0`t0OzaH9RNxhf0+@k-w?oWe+fPN_mgr*#z_Ha zwERf^#e`xdNFMkqfhgjS0(^!B2gO(ecnB2F1^MgfWdKG+7&_78~?XicW37b{!22$y=4#aq9* z#iiZ#T1CqVsO1&z`Qf-0oCiV_Vngng?oqAS)`h!;vd*vLZ)t(=*~2(`%aH4`4lR$n z3SJ6I%Y_1OHMfyF1fL?gaeJ{N zG0uih+%Fqb$e^;8tAL>-(Wz@|X=zwrYSjhd*l-Y9!+dV_cP?#P)oMBnkV8|TJilAm zDXeb4d#KR#J?*6o1&!n@lv~>l!IUricbllIa5&cQ7i`!6K7A6ZLo?))ic!SgY&XiGb@&RmqY_&S^5`J_U8SGHQLyxPMNkNKjt+FO zp4QeMy#XWu@neo~b>UVj8ji8RzDdBoDK{Kz^Lh_k{rsX})%2AMx5=iy zA)Or%C*KLSWfml&I;lY_;+B*G#PC^M3YQL?Ras@HXua)h$g87*%u>9=Q9*Bolv_|a z;(rte|03oT8^=&j%!$Nyq;rHzAl_89wK1Ehw}F}j0#++>9EY@Z6ovd8WYq+~{ zUZ_oEpE0*8FEQwy#R-U_>}BuEP&8&{rc9r{dp8Ig+${AdoYTIuscZM{>C=61?2{?C zdcAew+Q4J86ak67#yt%4XepnUAc)$GjN}n!-|4ZmyvKxBz70%Rl+M7;FvsX+3lbQZ zHq+#Jcjo5bFwWrJQ~9^Db#H&vQ2QoI?QwKPc=ev%lr}})yPxTsf$WSGy5#I>z zFwn?jmDRd-?OgfX&qa*L zqYB~ImVMcB5I#=Th#KCH`irt2SNBGzfAViZo!ZlhVJD9ka-8-YIT?`rYORYi7!jtN z&OAuZRvr0(-L%EwaJ(uN=-@0|TRR``d&ua_#d0=Sfr%e$VH?!Emx90ik@8KDq1$%gZlplfMqtl4tFz#)D(F;~QanFFrmw;{xZ<}Ivr z-6sg!@hx1aSlYGu2=#9J;`P!w0K_arQ&9V*lrNS5;!Jvm$O1WW<{8PtA4Yy(aixQ!A}oz>V#f_XHgnDLVm6QLwUI(l$wZEdYiV+)>h zs&`P36Xa`6;wli1rv)A(g?5Sbr^M+`z%JRaOXL~Ol5ypjo0}HSHGJP(|JJ(Nw<@aF zR#v*LkhUO{S|kfp!Z*gauy1n!{de%9_BXbsm{r@EPo0rbwytAg764c-O9WN;%tx#q z$LSeX$Qh&}2izPWQA2#?*M8}9ap9&p#P!Jcqg~Pk>x&i6tEMJ%QK6E1LDVlV%FVqq z_s(14uMY2g?rBF`6C(FagNW44M?BGT$Ps9Y?0BD)}l?YvZfHm~`N3j`WbRqV8mOE&ji1 zV@qHBj1<|bWOlyO(mx(JoIcg3)8c2$(dKQ4#d(5vfPHtfnX`zeLUW9qmykHB@0uWw8qO>PBhm0M+}FR4gX!cD*LW-w#G z4q)moK)DbT&jYzS0zH^q9frBpxfvt=`DQg~RzGGXs;pEkoRn{aKz&>IGu!LBn%=E? z_w&Idkd-yqr*e|BppeM`mMZZ%vtnLq>bvR|q+h%1>JcN74GhK?>-}@_w0cD09EVka z+UJ@Fl1|sXSq@LM$5qc(e|gNsAKB;-=R;}-AaSh}VS8l-5POrAMif1id-L3k)N7`U z@U_+>zDVZcVxF%9KkzPy{d+rGy9JZkmULU;94zXy&>`H0RDwmK$ax1h^1(A+QJgAJ zeX`hanCA!2_`KavGz13KFiT3fPkXyPo}7_(sCX+fqF<0a9NBD6Vy5ci;v{gQ8wEIR2;i3 zK1L_`yk5wPsL4)gFOY;0BTyI-mQDj8B8@|p2$`tTn0UG#sT>H)azk{GJgq1mh%`{K zQ>N_L;WbVG!#O6**ZS#)wRyRE@3+`AvX>PaUisP^IkzCcZtKT;aKDPsiK*0lA2L9p zE}LGzARPch6Yd+^--ZZyxu&P)xo?BP)4f440(#ceM9n^^o4)0fmZT#R?{iiylvR0? z;oJ2s99q!Wcj{%yQQudUk^94EYy)>U$lgk)i2Q|Me<;aR@Eg}0I9tpIOF2VskMO&K z)8=A(_Q>sDVEMPPZTu6Hd2yEX01-;*0d-~NPE8VAdY;B(sgM5e{#y@5z z84p1|-i!KQZ68;Hg-7x^U2q@(pOYYRhf2t&Xo!zTCemR4(S7?`JxC&ox5Q#{66U!Q zriJ8GO#28{%bkEQw*8dF3%Uk;HGNW3^U()2o9ddH_apS{bT8D7M_Zf4=VYp?coj~^ zUR;M0PqxD`*bDN|gFVPxn`~xFD^@xjDJkXU77M*_h8-$T3Tzl$ircAnuQeFfLX|^= zE?Km57S+;5rh^L_(vws$Br*tJySAvPs)}B0sS|ub4c7>mHaNLP(ypgAHKo!^q!26% z@>MhgHQ@AP&`ozZrY9Na^i`q-O7MoPw5)G{1BeTKE6g6hF3 zO0|2TO^bHGYga&=(vsFM-z=-B_-Ie-l5E^B^&v9S2(#1*JP7ePh;USh(p#)VeA^l0 zfnEbPdrupf`y&SrcuX2pwhLG3B2Bt*3ZjTH!ki8agMO1RjqXZtIc{fkVxoW>#bAmU zX-=Fn)(BRKbA_WSqu}!%h6H)IUwm7+S18LOX*cI$FRsU4kW^2>km>SynlJq}W?jXH z+qQlF{JKwZqB}eB?a=1e=Seq10kH&`LYB&`51qaFkmd!%TFbW~=l&NK!4{zTC5LKDI{oX(GhhcyLM;vjq zQPCzNmy9(k(g8=MBBP>WTesL^TiRt?ch_1g*XGWQibiF|8Wj~46%`ehTU2b3kxNEK zE*a`%s1u@&IN}Hc3^U(z?wv6$cYp2vzVGA84B(x6-}}DjJ@0wXdCqe}CUC-P`AHM7 zbxJdZs9aFUjq0tae+_t4D6|qiik<-(fY94(jCWJ)*kVaD5=0^xc4|4X7g>Yeqd|9c z#ELOu*J8xZ#fXv5k17<2RaFHA0lVys{29h&G5`2fP&yU!uN?^}*=H2?pv{ui3MH~w zlGFj#+S(I_>JqmMoChcSZV1U7ZbxF0E%{ADoQOzGD`%8-iUSj>lh6TA z&Qq4!$X`Uvk+*wu(V6R1`Af>}!E{#*NJLpMh(#u$0I*Q{p}hQwPk6Mm@6IDN z!)n}WZ19-I2o*tMVZp;X;xO+Qrkn_zNVy8Wbn@h523&@j@EE*M=R*&j598=z0x|Fz zz-t3^CC8_zvar4tMWB`es3%heBZp>N{d{Dj{~Tbxc5>+ej;Yb>Va?^C8XL_VVosJ)>dOtqM&-cSO!L`>iHy% zIDSq%M4Vpd6cY^0f85DNTnR<_21}O7U|DX+zI{1tu?7?~ER~Nm)?i$=?3OIUvOnIt z?55e6LbGpLcJE!RRKg;pvM>x>#sV0TXRY#rrxfu9bbRj3%gEIJb$YnB||I%#J^<1|A!d7Q2&I9us4A6 zykyWpni0A~(jHR5krVgIcM|<`i~y~nl&?i=C}m^aWAHWK)!9|EMZgVrb@`gR)-A-O zR*pqbdk==&DCGox_;ujw@jz)`4);hd%;5*)de}7>?~(KJ@5od315WLPIr($JHoFX{ zNDNV}J8s#M^bBuSj$tpHoj2pUH^;Ra(sK+`um020Kh0-PadB8yi^(-1E??sHLqcjL zv8%F@=FKuEuj*->hkc5?I6Ae7+TQKm9cvw;#5KTF2RMUL2izKm5kftuxIF))Z59*f zwVLv4&W3s6c92!l0D#a~;ULMLAtXr3#{}$D^{yo2H)vEijyI&FB09Wsr@NW2NUkk4eUoRhj2tN{j zD!d|mPuLM&6J9SLEAjJR!%g9XFm4CHt@xYp?csIdcf!r#e}I!-F{_iq+rrO=cZCl_ z`wYuRH~#-MTx&fF99~0Np^?|%N~XgUnL|~%uY^oqkFZJ>bio~wrNSexy$0@*prl>8 z6dRe{V$PlO6x|8!sR8L*&d-(_ZKTXzQFKD$&2WWwZQI)V>8`z=u6_MZv3Fmn`LA}A z7gS_=Me;k|0m~I7i*L@eW=x|DwDC;#Gdl#Uwer#Vples4XV*s-YXaoM3-+|T96Bi5 z)@p*Rr_0>`q#t8rehIqH(@s=p*$48>{1sitdW~AGLp& zrB`>q)lmNwh3)R)oA$vy+y;%ZG_usmI%||PG8$;;_7}8FD>VkY17721mE-nWz z+LN*{H=efmtQ}uoI8~dUlZWm4;wy4yO*I+ynxO;#YHGCVXY#OXBQ5W|`Vy9%u25p|*=F(pB( zk3;Zz6kyZTaI#w6ceJ;A-#2@EhEdWS4EY1D)!blkH5VMDJ)Kh=MbL(GsSwn_g5rdK zTlT1vN(W=7DkA8OI;iU~c`Vmav`DXy<3s)XAoK1C(B%V1dcFREV~7m*2SX}=N{wj~ zQ}qJkJY)616BsEGLMQUW{qVpY21iK5DGY#&!WpMeJqv5wS0T^t+xOBGDVdE`QQVqV4{@zwuiLlySe}f(RA}eb8s19sy ze0Dvta+B`FtG*;Brz8|YS6on32I>2u>GL*xOJ$dj54oOmjKK~$U@+hxCVvPlEBJ%S ztr9_zl4x)}H`#|T^fMUEQAJFL5Tj>T7o3q;PeKE5;v51LHs)Hue zsvB;@k{W;&y(qE>@%#BuqV3`B*caUuxrVE6&cpxzCftMYShplRJ7>W@M0&?MO$VoDD*sR@>(Wf5|LS>{lBH+#3Xw-*0k@0Z&&t z)+XP|4YFNVi03Q9^HJRr6QqbTjdRKI21_~i4!fDJbaY;ZKbOItXoLLdBb%^$S{BLT zJy_?%a0d{ah_Hs}o!)S-B)__HiD+{bs5hcgsR$+>nd7hGDwtjVh6N0dtsOq^N)))O zW~KP47m|`yXye-DDzdai#8$6bvT;?e+^{KZa%o5$lvK)2uBAopgOl&nC!k|M-=ITW zPv`=&GeRF=?d=l45KI(VR@SN~bTF9G$sfh+c8RmwUEsu6^@K9+e?-5mU<}#6N>%{b zyOf||wNk*ZwFPume~#D_GZy|DK8w4GrWr>Le$~7r7u))W5`UFB^hrx=Yi1^Wvrb96 zf;OKl9kcEtY_n-!T8N*>caffeaV3X<#zTsr$#m|uE3GU0`I)V0vp6lehlbw zUM!qrXD+xM+7K~!h*?%KJn9sWZfj~<2TxHH*s?^mwZvp9$(LBZE79SouU|?ojQW?~ z+wNI<6@)V83Ed3WxdX>~G&<&0tYibUrXOBx%3Q|+SkGpWK{ZKk9xlYe_e^z7-L0>qa820!)gkRx8 zCJ4p!@TcKsp<;dA+I;+$4Fd}Zal{`6VY2n9oK>LwfH806s;iZmT3t<)R)vwJB1#rN zQn3)W;I{DB%6=An*@gVWe{Y|M|#}YSJ%@^i10ma+Uz>t%H;1?ccwP!cs9Mw*17~+X+4D8nfhjuHjR;aXyAcDwB8)Pc| zI8<0L!UedpNs+MG7LJ{Zd6Nza8v_ZW4EzK=rTHMPM>7HD6M%+BxMQkOqNKvMj?fM@ z!0YR20dBTK^V*!?t&otEBdTJb;k&yt7Dfs%?(JY+abS-Sh_twDqdupNH%pr0?CfF# z0>rUpir~4iiPP3bs`*h3QIn8*c5+!+F0Q@Z{is?M&p`}0Rb5@ExHz;@d4h7x5m$7M zT!tseLKldwtyb%D%4A(F-a0k#0W3_&YGmnI?j~Q#)k~My+S)KhKHcLB0!o{n7C#bD za|gCGBeBPggmy&kpd;af_}wJdgUGGygNUmP*mH7fYjY-RovOHaHZ&M=^51^8(+yZA z0I^^`zEOPOv$TA~D!w8sp0ltH;g&1`pijctECIkG3javBBR_Mj55|+vFe|4JD+8=s zei;CoF3!_1ALmYui1KkU-yq&-hlB!}isNjU3MsD|4*^PXz4L zM_g7QVL{b3!K@Aq96cI1c61mPJ`_0lEJ&CcV1f5d14LbD z81Sj%j(&zgU5U<@_>uDv1ds<-xG#&fQJo)oWcdfa5G4M5+f*mAo!LOp$?w_R;nKk0 zB7Y(Hi1W(CXT4LhZ?m)Q(ZTH$f1Nd9Cp=W8h^17q7vSUDsJp{zJc5DkPqV_o=Z2Q3 zMN~jq4cT4*AJ)0huFA+}^Yv`e0`@_4WDjH6trSa3?!66s(a)0eW7`m&-ca4>(^9PyfTn+3;EEu!O;E;F|K+hxgHWn zkS-f~KvYo*?V5#Pji(GzXf@@1S|}I{$LX~RNm_=wetw^S0E4O$M~;GI5VX+|Y@EUa z1Go-dKzu;H+{pK?gBSO_@ACC2@94O=<11Tg{6+Xi8PyIx%z~=(bv^!wg2IW|A(WkxMHwO{;vmH z!BYGegMD%m^Z(^&-+%gOyMFBG-hcY&x_<0vuKb@z6WRF?TE%{$h|(O4=ENqycZX+t z+x+pGlM`AK@85FnI~8Azu-|4*m6I6ry~HbxgtR33{Fd_mQs_ASA=&9F~byuBr;UxA#UH zaAt-0Qury~P~Qh6@O2^7AGsSiV573Lj$Fxa4rR?}uSOlvz3d&;vcka8{-Kx?nnx(z zH7>`PI>9_a*xONEZL=ATXZ>`ZeID5A?w*gzn)L{oZ^HK@i8o|KHa}PQ+$-y41;zhPB+5p8v$trVnLqOR#7JLyw9>gZ`vPbNKb2iMeeHU8^d{60Q%KE_&!A=<%9 z_H*o$>Cgh5e}%^V0oK&dYaUu4m#4WA{`e*M+&#kjCm&xu9}8S@6mNC2Sn+yyclXa> zY|xPn_J$dtC)R{V;HFiMP$U6Pz>6TWXGgNbkHba#X?PgL8m0iOwOjzP@5>7TX`hGB zCBgiE7RTeT_kEJa>~Opg&hME`kU}|t1>@katd0W!Rv(`t`tmQBY-U<-*CFTF-EEC< zmabdtb|52a($sTiW?m3%do&6P;&v2EV_RB#L{a1zug$*@_^*(!eN(0vRdesaW8qLe z$>nQv?u!A9++2FITPad@kUb&Hx7+8>hhzHy3N`Gb{`SNS9ca4Y3U?E(l^HISK z&I7z&fC$549KS%>oQnX1tQBYLw7PSPV4!b=qd>FaLEk9cd4$_Y|UlL=(3WKw#ylMeUaJS}X}P+#c5}#*b>o$=RFpk=Bl@8R)?a&c zkJG{)5wFj*_+P+Wkaz$d<9eVYu|8xNE5G%*9`Xb0UE81 zlVF&vRq{;;VkOt4Q$5V9kc`9xXPm5AW6ZpcxIRX6!u^0R9?)%|$7I`UHbS#WJ11aYVqRHtHOkFlDAzXQc38 zS^_LGibowh5pbiQsDcu{@QMaJpu^0HeYq7KdK+{o;g#)>z%1yc8BAn9seSO`{DubN zQ}%DJ2f1i*aYIAh%da#vZtHAo`RIe@mR+BNt^+RCC576q2Ee3U4DK#75P;;ctz(aH z%a^(Yi{+egPH~{CE2weu$A--kZ%hY~w{psFU8HT-ap@38_%l>MNgc5)nulFGeq%oP z&90SaU>8uwA@J_|*a^hA0h_>55RbA*KA>=z5(S~p#upUk!gJ(vFe@74ml(=%-mOd> zew{8KH={-RuAe%^dBw%opX=nc{jCz$gqlBBDQB^bF0>v-c`2*YTO1DSJUo8EOcU)c zF;xNHxM^v0A12;*$}jQ1Utq=AIoDEexi+5H-MwoUDwTQ(|x2*Rgzg$4fxJK0N^t4K-XF+A(LPnPK{?)rSrp=nsjgaHrvc z?H%tpHTc6sVdv)Oh=7Xz01T2aX%bs20k?5E`G4esLd?lsW|Xw1abTG0jf^v` zwjqt*>)p>?Qi@gTJ$8T`&uY-rjLa?liygZ)STf`<b9@DW1oV zLO3`uFwF6*o!CHA*(c=na7g?KRY=-kAEd6^+lQ!WFi2eQ!@=O{ClwuVDgz*oKEd`1 zw`f7XTuppP<;=#V6CVpz-5s*uz3k8PRegV75KTb75qKLME}<|xyO119%a_wDA}ORr;>yPCJJ@?r zGq?0UO4UZWcvZ(2sw+y7OZ+|*H%v0NnY*i$vX)9AoB)4eOyD-6ZzrHeXi;i@{>((t zG7p(w1#_~pQoq33_05c&YZgG;;QwQXO9lpFF^#>)0gL3QtbB98Qea25dN?R?REP^q zra5rSLm9CO-I6(`;75@2`uaN8tLO9r)ZF`G1fM_njO9v@4%Xnpm@|X?+DWg3-68HXCq7F|zqD%5 z{_H$LlIQ1#wr|9W(ei0a%NHNxhc|ny>#V7$Ii7d68PI~#U*ksuK>S{5bwX;oDP6s{ z+jns1PG4_7koGhTr3rPuluID#SYdYQOvrtb)sjm)313J$EkLlJh_TnPwZiWU3z285 z{I-t&-OtJwu$D*{GQWt4ClijX=Q?v?tF&-k8!4ATRzMKSF4p3}K5KQt*y)xFrqPP3 z8;k zFdmSq`!Q$bB79Y#)e*?Bami6e)JK38gel2InAJLcyg|<)SzWJ>7l#9fcX>Rnwb&Xt zv9(5yI-uDQ?p4ZI5jyihjMWVoD?7&OB8=5Vd3k&Gq@}&}R_y&h7&n$LaryZO7lK&< zOK6k(KO09Qg~!N06?^}`I;M~Ohhv%#j~C!-c#XbCuIJW+Ea7_jeF5J8o3VZmq)x;- zFA%MR1a0L0aby4Jsbl}hj~n(4KNxm-hF*tJ{}o1^ceY57DonLBxk&j)%r-0R7huC5fXFk8VzrBX4TnJ5;Ms9B#E+d~nW_y9 z?Azgzt8h?#N}LUhL_Z4-IfZyUwR>V{WN0W9!DNb{C|+n}Bz-D~1j)QU5>kzu>T-Y( z0;V-`Y>)~OkzW+ty&1hvh_5l|eJy&Q7~gYAji{l%&E_^NttFCEv4eV9wp&gO(g3{B z(a{FSFDitSzt_$zZY9!T$JVYM$om>ZIPP}}7K>Hu#(P(nS9B}c=v48d6nC71J7(gJ zKfxU*WM-P@UJX^6JvQV;YG^^h`I^A4x1gh5e!oLug#mXE2x&Erx-PxNnioUzsFp3V z*(R%<>ZB=F>-iVwP$&Z9?~dQJNxyd!KHnxzhogE8wMyl7*Y2NGayk4*yX4~&tc=AR z5S28ZJgWmxBCTftN#h?whF5KDsd&Q<9Dh@_O`tD(guWwJfwWxYDcZd~oCKcVvHfWcZ%^Md4md8Q)Xt$ws}s?pcqUpW&qxNgP`FXcKImP{0lz^h(<)w&e9SbsD9h%r!v-xD;5{pVgp>c%hvksQ{Ua61NjhMS1;9da%7$cM0qjaJ+2i(`~Uq<;tf^+-TSt zZHDMb=|aC^g}4PpsT!_WR8z-g~V2v3E{b=Fl#E z6KhgcJ@mr2=3F~Q=R+*5n=vxwKngsIpIY#jC;1{)E=j^!*HA)XH3G4;UGTCG68=&+ zu>+EWHFbJVQ{{XBT@*P09iUKC^S0L+AMtg3aZnWF##_dy-KL6F8{X^c{OH*S);&Ca7=y*=gK329OHi#oG_| zQXa{sv8%&LYSg3cIuPv zjagg|z?O|UfW!f+New@G4cj+&71u_km2lLuTChL)+8iC-GI$0Xl(ig>d8YMC$Vh+{ z3N;v9wU!IRE#||vsk75)Fo0i2ul!A(TesmU?!i+mz*A6tm28?Jn?61q53qbG_-F4m zZ2C$&*>cusN6Ygs)>_jmDk=&8Qijsp?rLcsY`;Ii3Hp1%`7Eo(%%Hq&WJJpoLs$7( zApPfmSn~TtSysgbtgEl5WYzAYh+nzIvW%T?H0429cd|$0%I1dPhh~>ATak+ur=4rB zT_mqN)$(5DCB$m=Sji%66yAwZD5a;-Kd4(POt_M8xerGJsZR*kSVON7KMvgJC_QXP z&RH()#&u0i`(Y$b%gmahbIYq+%KCRZJOBPnZSAHVK7QIo*%xJ6Gn9UX{irJ_xbCKs zlDtG;`{Uq0hE9P>ib#lQ1K$FB55KHlnK%G|%K5P@@9}^s15&P1gHFdyVz`DXRdJ+c zS20eh2uF4$N;`l%Mq$U!!ANN@+5eOj3A;U;$3;UyoPtF(vk&LkX99~PQCg-pN z7^{cGf@$f~fY^8(L$VF~ZzM_h7Xe=aAPBjS*brzx76Vao6?Y}TI#+T(VMj5PNQRTg z$@yOm=zNF@S^Zr!@BX8KMV{{u238P3UHU(cF4;S$kFF`?@r2lq8R3;@9$}sMEx%WjYSmS0`9lJdF~mXJGj z&$sPCI=$Y%rSWkp0azNjL*;&d(?+7oOpYhI39mmfGXnCflvndabnwwyL#+Ux&(B?Nc{cYP|M*fOCn4CW56*heo z&R+!J+zI$v{Ft2kSP=M+M9h{W`2QpD!>o=g`RS1lTRuE^UhzE(;NtH=4?w;#ZV$;5 z8BH6LacTBs9p@BwH`LVF@nlK}{*QWjH?7x?nUawh;g$M-8-xX>zS<~WT3q*0#GFU& z$TpX{a?K-e`Yl%$U?2Fd9An=Kp?nmn!*2Er+5rc`q(2}};mT_Yi{@Z^pf(yov__{W3a5*#)0ZUJUMv%J+ac^x9Ymie3+dAPB#**e#jRvuvh1|3J#}SDS z`TIg~SYQM(#KxLZN4?$yfiN2dbTvGDycg92<@mi$ht1=m{a)OH8y)J0u7D#A%Oya3 zLt1!=3O3B!8PJxQz9#3$%A9C)@uLvWGzbb5ApacPEBea4GYvS>0- zNS1Sm`#=NEv|}gGEqIMiA5Z*TpjiO+SUea+>}8n8y)@8FTjBr!7y;F6YiW2&V#>zG}QE<@Rzz{jm01C?zI;{DjgWs7ja zJ}v>PRRV;YjOj1fVD$HIP{Fh;!}GUIfAjvdYyr^sN4bg6j}zG-dqG=fnyqno1{-2>l4AM+e%Bq_H@V$OQeqz);wkFd7UT_6JezC=Sjira1Z6>TbvsJ^*m= z10nMU!c^6PC}DbED<)HE)ZyoSQpifjGboUYF)BD&h+%GIE zyYgae?2zQDS0M#(G~SS;aq59;=^aM)&d_oH@eu_+qLGFB_^?w1f*&4tnpDSv?gz?dEji6J$&{d1 zpE%@_^dQ#>jBrfk2mHr|oqAQgVVoKUAq>L=m3$wH(PQ!^s4?9zi-OS>x#uECh3zJG zEutnAJU*<|V=EpCff7I@XT@-T`lJ*U8}fB~_8bn0+A$Vm0z2;8-__BvV=sn7OyCev zki@}b{^P^QY7}t)A>3bYFya0@=5QkJ4^x$%n(j}nIZo#gpd(2eoqMn`ps19+%FU4c zTOs*;>nAVIgX>k+?bZ1MD` zTF=tX2m!AE0Q}bt^yjlPB zYah0J&@-*z&vsy@4$Hd#W8Hm4vj*B;ZFr?~A|sm(imC6*E$w>;vG<>LeOZ|uGe!Z< zJ){R)S{QhLe|Kj;H%i=1*^%3YcY9NR1-uU(;!+#$eLolR>1>3L+QFalF?&9(EIa;_ zr`A?JSi9NN`Od>tRXtW~nog}1CtO}mxr*;1ZrqCf(u=wkWko+R8pceU`wP$(IDiY- z?2^=xVT{bs=&Gm|4k}t0-d-q5*r|#ZPE@;R84^H|AQ}w9K%gI#5Muan?_p$OniAmr zRjUzm)|=9ddM%GSrzZx(8a?(gxIC)t(NeMs;Ykry7PO?@Px$*G3IYnR!5cG*+0j4j zo)rW=9vH4OP?`Oi;{c*?E%KYaihK8etR^?#U~q5uqr?v58(14D1iZJ z1WGofoWpV84#jWSx@d935J(D!;P4USpzEV@b_?X}kB~Fs&B=qDkuRAG)g#p}zU@D7 zSdGanHFg73jC%~?&VvIXQ3%Paf$)B4I^4+efC-m`w%-ruiwl-G2B8)<&41~>8WS*@ z0=)QW7J}G zLuF`tJa(94#$j(09~p&FS0y>g8t#G>_BRHHi0D5t65-r3YCfT*rTMkDKkMv#^Qotw zuf=4n#>rtXj@?M0#=F?o_R13NNB!4loQ-;a8)V%YEd9DJ5?WIFDVFZ>BtBAvP*9?8eU z;X|#SD*>3u0&&|MP!i??>!c7JPQ6_&0nEy+)8>+K|VyEnG?h9_la&a#AE&|d-=10#=PgX&5M4IkXr9Auyt zf~OT5d`?Put82K*SB`V3D3D`?qV%T5Q9>jk&}h*1y(;8yx)m##p%H)_wPBI`FD z4u~vux@UX)mVdP8!j=h&Wpg5)Ik~77ZQwWU7<8(P`i_qdrAzU(*c#W>w-1+=&c&7| zEAn#(L-2Dg+@MNuXYiVb_M87*jYMh@uDv1?SQS zh9UU825az%uvSX-9X%ERgeu5T8Z$+YfjNNiM~@%3BzXviDP$SlXT|F7z{bR=C>R8; zTaJ^sxn@kJTFDKUx|?ZTZglco}h9*;Cj`P(wKkOdT;dVfggEw-^r_^f0Qpp*3Z~Co&Ub=+EdyNuPftP zqv!X2*BYc4{fqX?pNO`H!&B3U(U&}GvUZHM>3==OXpcO`*6;3eCYd-XM@T4@&lh9o z(^H)KiBm^SevYUVVbo$z@h_j7tEvz$zAL$sG5<^E>9|g=l=G$+yoA#gQ^uHnIt~F;oU>Pd?W-qUt3MYDRej^ zrCbLR`Q^xNO7+%mJ~eepPW9T2p3X17==f|mnq4YM@uU9k<_+s>>pTYI%~4BP{g*`< zvlh%TNrXp*A2sC~YYG)r8fdHfABQlWg7WpV&FYdob#F&Mx~)z^4xtFI_19aPLPy&x>?qhgO-8sCs_w6S z_2Z5_6;3F*F#Erh`f! zKaS$;@KE5yaldaUUQCz(aZ8_imf1Wtc@QLoaAmmMxVlT=u&Iz#Xf|lp;gQ6;K^&f_ zkbq1q1P2uTW3?c!7BV~yGHihiTOh-zLyijojfy8yJF0RDjYYla5$^F0hiJhG)o{@9 z)jceig_uVh@|5SHxK1AS%;) zxETErV~?Wj@00xj443FA%&BTdZwS3bvpXaKShq4f2!DARL_NfLLJJ_OKkx5CyzC`9DFykz$>A2Af(ov7xvQ>nTqZT`2byWC+$e!_J&%w?J~PMNcK>SX6XyhRIYTRfVoGD2(#AH81=;q55AA&4`#8U zbkL;-zwsHYQ_UB_Mw2mP+zp_%_V+vEbQ7(4zxwqeTmGFmPqd&nt0{t^1gOh}>c91f zt^}hoWw^8X!!~HOpsk#;eLjXyG$aQ5#}+QR63T5aCs$eJM8K7a&@Tj-GC7he#G8;j zd(#4ZqCs{-9Y&&EE$nVl(%DKc&lsmq8U1H7LgM+d_DTm)&Jv-aVNb*fXI$^sT|0N| z7qUxjXOMSPSQcjF=3jZ!(yL+AtwT7RfRs(ZO{~Z74(P0yUiy%d>&MU1$^&G7C9hXF3sjh&KiNfxDvVM+`Zd2PHQS+7e>HEVr+ zM*~5)EKdZEA3XwMoWO{n5_x1KB1?}O4njR}PTj~5JJbitlkjlBdFq7AgbR{_jr>T^ zzYlw!?n8k9h^jUEG+WwE`JU-vwi z*Y2bs6&-2P-?|d7xVgCIxpz9c1`u>L>XOnkGNz}ecOs0YZ0zb`4cKf`j*-Orv2dNW z{p|D8S?`g+SI;^ej(5TagJlvHcy*w6+siL)?r3`g=ZJp2zF?Uh%Z>uHs1ugmI79Ec z5^*m-JBC!2^RXkGhb)t9`Orfms)glqlMo`+BhBR~yfRe@zn_Y&EgJ`LZZ5O@z15M@yyW|^?AVOPKvXEBF%v^2f(Y$eiKmjGKw{D}Do>i>>&;4il#BCPO3 z&yC!c>R8{{*3sqDnl0bcT`Isc;MaOY8Tk>6{Ha>Z80sBDY(gi%d*8RO``hE#zi3s` zcx-4wsIL?p8aUb;`ksc<=}`+L6iG~maDv%UiSi z2wrMV)Tdc27V{Xe+=Wm?XlMkKtyp13j{E$E#7MyVW#{$-fnhB)qe_o`6cOA<)=>5; z56a%tFRIAvdPvigkfz^3^W6w(x)IWZJbFIVTzS;aq#b-9^2cn9vz2Wb)+cxCa z)cyIPYhG$2fO21STu zy$O?2LSE!7@(WMXgT}%oSDc~;Q?UEa;LgRy7KdPI&ICZaM*QQ2*%$tiBE2m#7(N33 z{U%u#a<;Nu&^ByR-Bom+*!IADAjOnqq?77!j4|1NWV~tif@{ibwu*`~X+%x8_r$oY zoGZ!-q5jrG5xy-y%BxsW6ovRv)KL3?Z5Y4&mlvd`#RUM2U$*QAD$$Ur;gD_!i{O66 zk1Fwk&amoK)tIC;rzL9ii3!?xkdPpDCt1P_-f^`~pF9Z!-Q&$N5$E@mqu}o!0uKYZ zX748e2XU^#v%l(8l{iapn2?rY&7kXugfDSC`qg^C?Eb!Mc4$d_Z1L=7gJmqN3rOr+3H1BLOIeOEs1yxvb(!kxi+nxZKEZ^zNrW^Yjerk>FKPVL|NVJ7Y`|5CRHEg@lazsE}05 zI!$$jdJhkb1`+QVJ_di~092hCju{S>H;(uCd`En}A*f|9#gtC!FG;{+%SQzp0dF$i zNw6zsY1M;1&u8shzw!06IKOY--ow7Yu$VYuvSsol=r{&oVKtk{P2$EX+64f$8CwufNsw?#BRl zb$kf+@~iAn2DC_avO4j%GY!3u67d}s-@2WB;i__QgTs<$u>S-ge~Ex^tK+~=fzGTn z$Vq_Mo+k;qre*6Jb$M_t8fCy8J;{gE{;eOr z)ASax$k)D(C;5WVDAe#Pv0eCEzaiTWDDF1-+1_SX(WAtvB~4snJSZspkAt0e&;`UJ zcfWylJi);MVhWe@B9FzMBn3}07EfZd@GQLgF2>dZ6;Fyf0TP}JnlCU z_ZyG`mm|ZIYx?f4ysZTrLb~w++!Cyqv73X2i8FoI0Kvkv)*rUwAtnU$ zqA%JMkYMV%yMia1qtr7`Mr({`e0r!gzF1p~!9$<{m>mfm#eBP`9YO}E39A9gaV_y) zd*$IkR2=42EAz_F?(-Rq^0QMC8Y*JMo_!qdHsN19J6GKL-7WbR8^nq3%C%cgxv_~# zCw9bc?%*w^;164X=hg>8MyDV*;~^H`t2F=~6m5#~+!Xt&K}#qzYhbNW=BGhrlsYz>NSC-MPz8v12=P;x@W5Nv`@)S5%@^j7}Z&0|hsUp@2eO253(GUP6 zL2p+T07t}Xw^#^TEJ2r(g%KYD+_D0?c8xZK$M75CRXidX##F4CupLLF)G%--s5)mL z%%zI?`wkuQVZ4mM07nE;|8jDH6T5GM`GInqLJ8!0Uvr*MFeu;?K?ms(MGu<8BcN4DaQPUX{eH*+Aw5o&gM4}SJ3VT^XF^5a zpxe;i{$UHzD}MY6W%#vkxD4pOi%y<0UH-^#w6AH;t?d=^OAiJz#i{8c_;@dmV%f|*cc7k92z(ZR77CPmF4kebNP-6qz)gli( zhQCM^e0lZrgcYL{vo-Oz*ecglzt&P)`{}_g5TH2od6}7wjhnj;co*U!lfpeDODvO~ z2sIH@hS13VwkmLT>V*_-@3@NE& zjecy4At0#51Gyl1fENdEa0OD$4hnz6$gG$W^7eRp#UVgBF#9JM4WOqOLTd6*XuzjU zh(}?Ckx`T_+tu080VWSU$t&9NfV^E%YHbh0M$LwNxS%I~4Lwl`Juz-mzj+*7X2!J9 zj+bBUgmbOq#YXS0sUXj)V3mfYx#=0%KN*h`^rq<=&71YfS4Q(B#p_Z)6<9Hue_jW$&v-*7>WS-eZ7Z6I@FffLa0-Wj#jU4TZ6FKM!=N{6V@G@ zeJf(9g_DLt;y0kcm1CEY`&4yZi)Y2bT190p@p%L!XOc$4A^t4U^A>rNUAfq~ysWzS zT0pc5i?OTt4BMQ^-0wi|u$Sw`_j3Rd$H58oHv5LV1RHM_1stnKL#sPWm!#-v& zJIo0%fr$e33jCDCO$I*f0OW2z)Z$MNPdo=y7Z<@)x`><2U4UIyvy{}(@Ya?cp2Oxv z2yCvnBNdLa-@`|7pZN4T=Y#8zjDceb^mFC9N1Q;KPkqia@w!_}N|!9f=}VRb4P|9z zm#I5uTr;f`6g8_JYzd_;!q|d`4NPo*Sq65=xUROpHI$TGmeP%W{+-t0aJ<~*VL2rz znnISZJ#x43kD&EV;+{|_^j^xi^QXqpr_UgO`ruRG8F-|kVol9^-q4r}uf3)8wvwWP zf|8Q9W(?f>ea3UIhj*eHp=&xG5^tFt+*WxxEH1^$UIdo{u};oL%|R<3w7ENEx)5lF z^9`Zij~ZMbJS(Yz;bWLT&ZKbgh_~lx2m%^sFrtK%G#N2yauH)If!d1Q-IPO)FMpr+ z2umDq0bN6!bHczu#4^712Z5?$p4~?<7ZdP5WB5>@$Kz^%i|iQ;+(UDLx*r%0Mbwmn zJ0_X;f4l$CQQx6Hur(e!+=se4hmHn$ePWU!B?VQiKwK$M*oF_P6IAfD`+R+qzy*{* z{Jmq1rr^MFKN5MxP~SoPS3ls3DC6_Nvx*(1hUTWIT`ZzTu`9q_mrHI$uAu7jUCiuK zB5-=V%eL45_A?Y|J@b9sa&-2Gclo!UIAgp1Uws0RI$(%T?=LrUv^aR)FgaMS3yR$> z$2ck0Ece%BeC8Z{hA_y9cy>LWJ~=qhP#*&<=j1`V?*$<8FoD z&VlwUL3^%7du~H}rlCEPwzPfz6&CxiK5yHy<%72y8ynyLV9S=Cw7J(7U3b2J%TvTL zfK>~}FSSp;pJmu!$a;T+Epiv{Q6IM+6J;kCDx{{ch?6-pg-R*~|T zKa`iea*%<&r!`^E$Ay*nN(RU?4r&|ARpMJ(K>{yo+G6t9G7c=yI@2~Wfu`j`bz4IbHWv8f5?50ef%)qR5@am++>nn4Ji=eZvM_e-Qg$IAw@I3NAtd+fg|TC}Jk? zE7d525#srfMD;L45k_0s^@s(YNq7Q*n}#Jp@zBp>;e(rU1oLR-^&aF`8CtL3ZFv(p^ce(%}&+Voa_ z(Ho4<3Rtlt=hAUby2R4)zQ_q$e~cBgpUDd7w)R{RDf)My*4MF-S= zzuo=%#2>W#f7==!t>M4-+|kFyoASgLTa?HOd2=S?i6`TU!Q+a>4?+f~x!_>4=7AaS z9oV@m9jrYsav9d>_B`1cyNbI2L6UoD(dItGlQp4}l5)xTY=$6(G5b#gT}sp2t?;&Q2RJ=#MgJYZ-|dePQeMlt`m|T=Ot?0NqxshP#8(j zCB`Fy&W#{PlRiptf6AdzE2z(0v_Heb*oA2Sg=l{&+Mk$!_G6a7oRi^Mc!XR$LK8oW zwNs7iyT$f>O_TC3lb>OA85EiX#xY1b)Tx zaHd0BRKz?D4W6lNLi69Z2ejs#s|pJ*HERRgn?1V*wP~}mW=+rz?4nH{C9T4qr=Ngg z#n1HOo-kv&2>`bPySjECL=Bz^GjvHnXASoE595jPqyhrw$fyYo4-b!mjSAIXc$#Mq z0g<6%$ag(9#MB9>5Eov>!b(r*&=Usq#Hq3?KSON^x9E+i(#Qt^dnW%BqOoZM18I=n zKqASVfUShVrOY~X9&`h8qS2#j^r+f`wRXh{)QNIoZyqTmUz(U35i!X8%X0#*Rea`v z5pF36n$aQ8+Y8Z>O#GUPE2QEIRI5%N6Y5jh7lrXGyN7uCDaQFUe@|Jhjja=Ei))Kf z1MtF0`#x!HEve0E1;KjrR{(sO!?C@$Y#Dm74eX zA^i?koKRZ=Q0OQ7CS90A%?F4Ri(@_<4e*`cc;jt$tWr-w3)iz7bJ?ay0qQse^g1_7 zsc&z$+sn#szvgW1!S`VymzC9{Eh#!Gp^H`zjxbf6PNy3f&`}e?U$k!@e8DI@$n%kk z4Gvmo64C24Zn5#Fu?MD>0j7=@44MjgkQg-K^2@hu!H|2sW^+tK##Whsr)f!Qn2=*K z<(#T#6~R$@jr5I(ULzYeX7`bznd1VXBK@F?Sz@PJuCX&=?Uu;aZmo2NPyG06)0yg1 zT0y8Tw_CE|(cNqcwF51YNBO@yGlu*+^_q~J|Kh5#bt%?g)KUp%rCWk*f3L0o$+_Qu zF7ebJm?5_`7#oQR=&h;ft??MKc+AxVoJ&~{_^NkB)2&f$MOrCj14QapVUzUJIT?2B zdY?cdP77;s*jT&d(B>5UtSCQcu07k$%JN|~5<;v4zEzYyf7q4|cD33)d+Cl611hj*4-VJDn9@a0u^yh>95CN%`LR(8nbSn_|23U&g zSgk6D>OV214XvAAZft6O)(xvlYRuW9M(}5NIK_unVR{#iYk zr-#uTLUmz;qDIAuC)kt|8>c}b-HXQ%bQ zDEB`xj?+;AC(1fi#yIpZ?%fQrI5{NJcR!v!Ityc?bH*WaJ@(yrA^%AJ!q5SUN&^RH z+v$V%-8i}*Q~ETfX;gBrMr}WOBsUk7+vv81yA-7$kHM+u(@dwi!;6>zFnDo(yM*&S zm^`$p#JBvJG3ZrVdE;@9nAIo(8V&~p2>1$6T5T~18nBhX3c{@5Gvka7u9h*>)uz+h2dj9>uF z`HEvxK?$diUzJe4^xiwm%iBNi?&)d=JBvdI?ST`X4-Q3E@{KiX=EMJYvFydaDDrcD zRZXJ{K$VpV2oeq=QaE@5Dh`II6Xqw15fk+&yvrzDwGw}E@}W^~r81^wjOh%t%8XW- z(JC`qrB;zC4Fs#cpc^&Tx%DmFNtCB1OZR!l=en%oJOm%A*`vbU1*}XG&j54#9-0#c z&e=&cr~Y&#r*tZcLhnBo(WlMGI1ez|;8E9U|EIK>ESPw-`BWJe16fPi9H@9hJ%ug+ z+mDL9-1o5+_0&&rfh^ZbobDomM0_dNz5xAk8Lmy$w0?^Iplp+PU9>+==@eo8$vsRW7app7L+__gxn1K=1N{|We`E0t zKPxWA>kT)cYrgB!)6jno6OX)nWPiqKH3Anv{2u@pR6raVJaJloo(AX}e_FqH?>!pQ zrI{ycLIb_u{Ob?Ny-O=itk1I1XT<*UKlWLLU~V-323r9!y(#^VKfc4dx{`BBqx6Ew zr8#Hych%K>tz0!Zad^f2*+CBw-R`=VxH!k(f| z3S#2f`khXZzLU=}r)rloNakt!M$(@ylRr>DNl-sI7thJL$KCAnH$r{WMQ9N%>z)XZr%X> z=|;V$Gx*ehVD$yqX89A}8-du>V;V%Z6~1?_?17eNMC|OCwNEQ0A7EQ>Wh2AR2hMAZ zFYEwGu`0;>L)PHQeK^i1Nq{L$vcO(*v3n55bFoAhLtb1!ewFVO+s%>96MJgKT*f@p?$z6GHci;fUT^9_fTIqqfx;jMgmS798#Pxs+CE;O6tz^Mf zC$E_ny(aO5#M?_-T3YP*E~RU7n>G=A9!F%8^3H9FT~)8w)-72Ax+Gi`CR>P1DhCr4 zRy~?mv^$QC74?i0S5(lzEWlO$&*)(z7WE z4hKen&+O2`Fcv^drbR_2R$8nkiw(P%W>?%m z%8Khz#gcz(t?Pj}-7r51@dSP!k6-$xq#jc1c=e#12R#iX>YHqsi|vk$IsLZ&e4pUix!jBQb{iM7MI%E z+?$n^olViw1i^LMzkcB^{c7O%A$Xj z^TK|rT^;sQ!POQ?ZLv5UzA7(ygPNLK+iYP!Xd=)Sbd&NbmuV47%gamUpX4@ncguAI zB0wstO1lb+^8rt7V>vF>x^)`|{VHEO(Oo3n^*y+a~LLsv` zU^N6$-^O6k!=)zAA!;=t!cJ|qnp%uz&%@4^BAy*0{(x4i&}fUV28|WkTAQ2Dc+Oiz zBO6V?LZ>21A3E8otUH(0vRb~oF$WD*73LQgc9p_1cg3T<>&zWNt2HBIF`CV?slh0@ z6!LeXxdBtiM-4WcLjk=7&D94DR@cLFd&!<9+!yUY^_J6cU**6@px}K`q(!XG>?mVw z6Uf;yeHvH^7+|>nL*3f|Hd&tg|974|d1;%rX$d8ifB_>`j1aNY>KK+r5hvVVwm$^Z)&R|Nr^*X`8nv&vU!2}3$}`@DPa-Msl+6F@mB3W+vIG^aI#*98Sed7{`lI{Cgfu9BBZ zo$AjlW1Ws}rEV9z2ij~DyST1b=rQaca`vRu?^-I!WP6?OZWwDp(Ya3s~f8c7|g;59#k4H zPXru@2lkF9zO(zke%Af7AMO0+6SXxTy4Q9Cn;+BR0lxWMzwQvsoXmoZs zJD@^icVl}697FUjr?gZrf8DJ9MtqnMPxvkfPK7Mqj#H_;Ke;%IXGOs+b+xImv4 z#q;MESZ(RNJhDLKQo`wPeHQTQB2j8ih;hFF%{OzpUrAa_egQW3FTWqWqQF>kesSrU zg~~YPNv6w7>pY;0kq~L$4afRkDvFEUH6PqR{836!Jh>)l{jC z`g^BRD*qFy)RCiPfic9B=yT>&Kv}%xj!NOb?5;1>t-9{xH`RZ9)v6UG$znBs-YnOG z#qPy>_m35)_2DD0|M6(}%_Bz+eQV3tAKm`!cXz$`(>;6X;S3uKOAtJh^6B28w{45(nG2Ky9-s zkAMCCE%!aLKm1z%A3|L_)laNj_l4Waiq3P+EvX0;48Cz7;+!_aK5-)YyI=GGNArsZ zO<$^9zNGr5FOV*6GZyIWl0XcduPy=rRzuLs7F0eQ%krrS0IuKZd<=xs6PavZO>ds()|S zp~KzXhvjpLVi>mBh69scA61={5v1hv7tt5*lYEqIY+w2%B_&y}pyo{$dfV`@jRkd1 z?s3rw=?#{0PcifLkIFqOz%Yhc(QfkoxOof*bln?)CaS%Mj(+)z?-72CfOKL27pZ75Amw!M`B;+)R5uLVMn8&HFzn`{)}xIvQo!=?3#--BDOjw3`wt4Tk>yGp@?d zPn9J7d}T?0V48HW_U!$2|C{d&zVmwDFZZr%`TV~uXD@37J}M*o9#A%}yYqjm_#<7o z@slSKIwhfG;>S-~%p{g8nQob$Z#EeJium(q^!r{rL(m6T7JCB1%^H-{8~exB;yH?! z$UW^2ruVG%_uc``Ub{y$yGAgwWLJr_O3ZNLkzjtMWnWq)3~E+0+0(ygnP|;CTq$y>XS~n5*Ohvy5-gLl zj_iS%dY?dPm&kG9m9(#O*n{$6a8N!-kB;=SSZSG*7UlZIOE}p$aj=q!wUoCYCU5tN zC8ST#?MLpa#VPLg(ZZ0(UCoES(3}Vv`pwOzmIqS?|GU&HbcW*5ef$k-ibBbEAOJOflmg>IUmf&VB`+Rnm0r|Wi9x>jk~E#fTZiwb#?|WYSNm`Rx7YPGO%0Yfrs-_q@fbTw^0|#OyjgMzmOJvm=>K!i=4DbdRU4o zJz?isXV_EO-RBHyqgG_qHg!Y8l15wL zF|W~LjtVP|Ok*rzO-0R?U;wk4NU>b7uLZp%C{sm(x+4IOu@%K)!N;`TDD=iiZ>H>- z(ux%f63Zm94ZB%2sO5xSJp7uWNFHDNLm$=2}KH7AO0W_r}{7M`ZYpicHe3BjhoN$gESJXA^VDfm#@*nFyy=ujZ6>HYqeEYh4Wq65S_{$tO zIUF}pDM945?M*qAyYIaoQf9WHg{3(@eK>p+wCl9=QaO2wY;=!*Hm!p1lu(zGH9U>pudf>IMrq2Hqjx5XhsaL#AbVK>$yv9oLpt4~37bjy6W^TBtvhw5qe(%OleR#pF(bo?jR!d660QQ8p z3YQU}^JVpG`_1mU72K~oYXIhPn_A~K|EitjwWiL_AHQLBfArpJGy%ybUZ9l0y*2Kl zH-6kn`aeof8%@GwK)7$s&Z72zlQtO=f~(uK$tDx&+Y5_H*&)VGyi0kyW5-S=gL*tR z8J`KS4W%K|8Q%;b!s-6k-aL`i8LYGBx#pD?s+mOe=xbWN8md2v@w1S}R$zZJuTH>7 zs(_pvlb-63B<_Lwg5Ik&^zit2GC6Yi&~M*5OSr0ij>`hInMluMfY<){Pk;Ed&ZIw^ zGCStaG8xCuB+}{l(QMCvEsrHpBED|4oOgL;#rXw(V?6xIUefkX?xs^T`DJMGGti{0 zS@L&jQXMvyT~aFZQ*3*6*nwL4c9|F%3! zoQN)vs&bp_uh8Tq8D@c-*%!+DXfp5M8*2Wv632$S%hf*uSl55!k7~KJNw*q33mobj zf0-uD1s4FtpYL=MgQSt7PI+>YJdHn~#N)vOum2UAEOi$RzVgZ|Zx9DB^F`_$?vFI! zQCwYB)d1UhNFKT`UHiXEli&O+WO#md>c>t*B5xl(di34Vv~gN#Y3YpO;(SB)qkohf zpZ@CdmAokT6`jlLFU0L^vr)D+ zkvoS?$Lo?-GFRzLE+eln`KOSPUS3#kH8T$$IfJ!jFmmuWq0oT??4YM&k=L^OOz!YI zgM)PJ80gFMx_)mLIwK|Z{Ht(aepMTV~70nVLJ8cySqtq>KEI#>YYyE@e$x6J}phG zy^K;hvdY(Wjg8W4)QxRj^Dy{$!>2ShB0zTV#WfEh>EcKdYpOMwWTX7AW28UuxPoFo zuaHe*pLW*1z!QEE-6}IyXecFK6>O!P9UC-G$0xKtG}DKFp%4E~AIj;&we&%kR(<8Y zy{FQ7ixysDHKq;tqfO~E$>hR?IqA~}4*cdg^{Ux?&yu!%P+sY)O_Yhe<*Z%{HI zX!-J&LF2T1Y2(e33&9Yie%487V0Pes&!d!Ef6U`P@l&#eKMy4F8Syk`%&$}PaAQlu zxuMTa$i45K2(c!BY#}8Lz&hHK0I5dUp@i-+Nprq}36cOz$P7;WC`1w$Wn?}YGqs8( zsOBt5(iouO2M9ENSm?g#y+Cg7>?}DZWg?jbGX(Sp^A%@~0WeMjm*+By0^NcX4H zr+Q*e(dPpY&Ux~5fHeFUSj45I-|bZzMdR}9a~=2537@X3+OKvUEfv)uW3#1nI8ooy zvW9xr(rK`U)1{Q%%_Ka{@euFuTH%bqlYYG!k|dM zQfK5MU0tcvo;{lkJ4DE43vCr^uAS^#H)I3hhzH)YW-G-@x-}b?Y42`0M^0Ik+L}Oz z-(Utdsj4_JgwZFATX|=66qzBuNg1KzVsvYVwt|<_-y7+#tN|pwv@_|iF+8$6Y&j6t zxX_W6zci$4`l*@AO5%pd?bA7;T-(HR6{PLYJiNMlJvC6s8qB# zL*}JEQ)6Q|T*;5dnk+3X>u=*c&!>q;MN`^LU5?4}pFG>FTMy6L#zogWoI~8_`QUD` z;`$)_J@NAepo6X1Vzn|5YtVo(uUSV_%l;a?c5@DVOJ z6nX8H-hzVE(9d3c@x_+ia`whAZE4)Il(7O~8{TR9Uk8 z^x?w?y1ToNre{@ERV}^hDjRT-N#_3-hfcqyq2XUvvE#i+z;cMc{~{CJcX{QJzV{m_&HFCv9aVvI7yWSHEhB|X@r{lAYf zrly!qYEV`xGXPK=rMe%b-uY33?>!Y}l(mbW=LBT|*O7=AX$>ln_)1|lnRr|zN<%>rFe}Vu_Ux?vk;wWnLngSm?Ra^8I-;a+R?p{xpI?sYCUz za%}Z4D!DgSP4c3f0&^&Cd(Eo)Ps%a9eJvpljNq#JHH>$o98QLEhtI3!H>a8mC67S9 zQ#O#24HzWFx@%$Z?SOi+W7a9W#&r#HbZRT*(_0v?TPUvRWogUpV3&9-@RZk~BF3r{ zMpaCt3EG)Z#Yp7X&}pF-%_?;i5>Y124ixzyirOUQ8F1|v>@mC9PKFPxlW7{=}gj5B{hcD zG?r4#yw1lkr{eA`Fk{xj#+8*KE@2jB<%vsZ;dEL!gB4ZM*5-DT1$6s=wm;S;pSyM8 zm)md_g6B~v0_xY9Z9YRq9S*;b2TEF6LZQaS=FhBc{v4_qyN}*g)k2fODJf*bAY*03 zXXyO_2??GJREj5b3l@A-Yr7Q4`b1beUKUUDz6@b_mUrdxY@nS`B}t@ySclJ$OU6)J zK5vc&(8Y*r=f_&}TXxkZWmosZ;lt^yL9VBL2a$#Lr*)`OgiSY-E-X64I znr7gnvV!D;J(RLQso}^l>1riR#)IAWfo0eWclniBE1R!n8U0w>xB4<5130{aHmk#- zNo$hvWq*Ls=^oS#hVK{ZeUn+ON@x>J5_1_}BW*HjZQ|a5Yj8iPkn*-IvPA)%3zZ7| zSwUHO74KG+m$kOKTq5DapiO8UVTLO-`jmH0PiAyg{5$)qh^cgDZd11~;}6JsrGVvfp9Ly- zJP}hIF0%iuH+o-+Ek=N^6!+`as>=|f{3VN}AGf@&xp^rwV~$7qp5IYXF-)3^x_tAC zn*nJJZR{FdP$7DJN=?l_O~SBBzO+~z{^|4E9lCdpMxq06lhW_>>6l8TsMCkKx;ka? zNsj3+#fFBR_5GHQTs@DhfTR8WZ$`B8$;FGKwiVH`jUw=t`r$FHBZ8>4S~D zGmRV~4~cA+!aY=jZrcip4?X!#7?BLTKv_2#vI+Iqg@U+;YZmgT0NXR0c?}(>F zaOO%%h?gv^tXb}!mhULL$`y+pewqE-RkwZ_iAM&Ep@9jjXuN9$%7jd$^A@wxjcxX> zX}togy$`%4l{2l{u`+*4Ye#Rw()igg-u;Os?xt#F9tkmgUObYszG)#;Q{q{&q#Bjw zB-c7CerQ==>r~?%?GHY@qo;p+HBqq@*zBvQ1K7IrO~3JU*dBZ7iMA@D%+<{0>eCU= zr`A=mf?~8_P2i*SRc1kvHn-h~3{Sv8H(UR?xv6r=qB#a;sB6!j=N=`~c?$$3Gwdt@ zWpa;h8@WX{$V6)#U$h3dJ+*UJ|LgCJ7dhS44QtmDNk-HK`r0p`Cwc4>+pY0*p~G2I zd(A>;(L}tj_xF*&%U`|PVks`1Gk;E=s=PZ8O`m^J;TZK`O-5tIz>!Eqq3k!KF>3Y+Yf&*}FU&O2MbCLhsyZ0SUL|*Ufc}>smRFwF= zEN%2})@{%Ch^ofr7dX!I)GUbad!dbN3kF)SyVJLl>01CPTux@hIx;Yorc;^OnI^S! zcYh37=5sz}&z`4h$eMc-F)4RpN4}G1q>QnE)A{wV$iGl-q<7aqjRWGBXf>@+Oc$1n zXD+*w4=yVfr(f&YBcea;?CdmDFS4Z1zSCd84pcc^Ot0i|@$fH>n9{||*4Q}Vr_q3} z;ht(1&|W0_ABy`78(OY+FTHmqdv7;v)~y}W#c@_*I|9U-rRCSOY^a7_pJP4j6;J2f z(@-8q{(dX(BUvT%nSy&7t~uXn8y!4-+Ii764fiaAiFNDC%Rm0*>$$`Z z!JJoQD`k>rPA@QP*>GmtZADm{GpSLzUn_x^zjn39J(oO@dPHEO`!dJ*^QN1{sdvKR z=tQoyps=_w-*W1=zl)qWorZcBc#Pw39vV1w7UPaNx2Sl|l~omG)2ExKUwU=U~x&F(N0m<1=~R+56T7t5&Tl z`uPt<(5FNqXc}MC4MVCDy0()|qElxs@)wrchf7Zk(Yx3?!-pd$BGRfIRPS&e9)6)3 zX+O&z|3i7BvbqYCB>P0bTz*BdZDQK8+Pfv$@1k7MSH)Ahb^p2?w?|gd-6x*Wf1$2= zPC%LFZn>6S=rs|aJPwIRbJmm%Bjok`dZxB-7|P0O8)xsRp1jp(NU9N5{07IB6%|&b zsIfCXrF21=R&LtxWT-!!`=v=^jp6pUcQ}iFgl9RRHaFi=+j1T2IJ*Zt%QESu&SaKz ze@Cr%SckqjSz5@x{a`#*dL1$PiwaWlBR}fs==jMovwhBG)qxkh#mebpV#XZ#0}U7n zd?&T{ECVh?16mo7-x(#jWMq#WJNE9$OhJKTPDvnuD0M$%f$E|aH#OSw^%yu#Cy5fx z1TQrj%@*AWR>Pa&QEAi8U=gAKV;a3PoigQ;E97KiG^s1*js@exithAKK$c&Sp~^CC z!{Zu{y&7riLrx(sfF`7bCv9HD&O)WWFK0Z@ zV?3)eD>>>5+rR$9u08+N+Wsx9FQad4L#DZz9 zO?76DcASUOU(F#WY#Cc+GnShli$U#p6IEm{M|Qn_M?4bv8U~bEkyF^5lF9IqBS+qN zJ7QJGu+=8XFIHS^wFdIJqx3+gWb{}%y@}paOpu&`^NRg>x-@*_Rq*a-Y;BC+lBl5o#cy&V+D|L-vNXkiI*DIPCQ_Ocd(%*SGLwXr>yV`tWS7kb? z+a>=81n`@X=*#tb%lGhSEibnc%&_zDk;8|N?&L2C@HX%jC7xD&I*<`+96MuZGP>bQ zw7kJ7uux`gFJ-j6H0-PZB4I&d*8XI*8lLg*QkY@~(nJ?Uw6^M(SR!Nv+@Pg&yhYzS zAnZQ9r7!A2Mq{}F#N<&vA(tg&n`zN+9}t&TBX~Y1Nm)FmZ@NGnSVpPTy1-03FkBo= zd_n$51&$wu+5>t-$^1VZuLtFn&!%wX?93;17Nm+4t+BU~5Lmn_wvdQsZxtzvt(hW5 z>p3rF?Z_C}DmKXEg~n|!ye(#}yn8ZTq4BPjv&7rGw;_5Jbw2aM-eECw*_yR$SAA%j zc!$u&%^&E6bYg3jyzbMhiImx|xtk<=^y73B{eO7lctYgNSx{CscbZX*4fY4TiYnll zT7gMYp=imkGWU@d1qqjm^qcka6aJIq-B(n0;oK6V7=8P-{{AD8F_Gse3w%Sb;5fTK zOJNr?PtunqZ4T3*Fd5^Zx7yp;_bSah+HB#vXv)jd-Jm3-b+=M<@S;&>{$LzBw&-Hk zT1IG#&cz0}pSTNeCJMi)Au+5|r|POjrOwK?GUc4ThlRO^ZOA)3%Hvw+kM4lWmeJA@iS3Yvy=$Q%ZuZE9f8YYgNM-(hSQ_{ z1HS|GuwQXrbW78~8#;$$31Tl6jzcG$mbduel>-CO)m(9@aQpnzRP($`-LnCNSuKPA z#qGb|)e`}xo*M8KheGd)rY44H_ltXbdis)^N)fm5~E93{Cj6G+M+ zQ$XQ#hJFN)Y4@Q zaw7GWl}@8Sub@~R9p{=!ydFNwC0yl3d}e3?&khDe*>&UuwP;e-OZaKwsVF0RnLBSz z(-N1{>0Vk>T~>*K@iQN(T>7z=jmy~se*%BrgIc~VaKCEIl{I4ETiDVRza9_@;iGE6 z#r?2eGRC zdfj9c!IjL!d2u6766Z`~{FP^SS6-#W4n74cx}z^}s$J5rzdU8CTwk^CB4XV*&Q}%V$e7r)qNFznRRn=eo zMql4vzV_UpaI9v`Z*sd!gZi@hAG!Tw*l3?XS3Imqvr>yB*`a3Fc?p*;C3<%R($H0t4Ee? z773DlNxwR}gj@zQY1eU3jc1NW$QLTqVuu~c)y$VvAI5u(%*B$b0k}#Fl^DhhoTcbh zjN@v?v7WnEF^*M|qPKfII;RM`}+-U zpf+B4nC_@@+lKq0YhPYh*T7k>H5ONk3y7ndQ(5V^yvA7nPB?F5sOz19T(`TncIk!A zva%&jtF`g|FDN@C4pC#NOHw<#fR*?ElUH2`QU58t=5?Q_sabi`U09R@y3xcYUGgk7 zFlDN=ghri#`O^1k%pt^eg3^}?V}CXY?ord(B)zWgp4e?TXYb# zo?_6dTouS6@s!EvvycG*1_WV)-AwrkNK1TrOsJ+@iiQ~R{RUurn{+BmK~Vw}>hddk zi!q=xK-`+_Rm+TA$Bak`W*IZ`VP@n4U@cI#U5yR>9_vFSQeS_CIU3r*u-yOigzeI$ z)w_4UNzAd&X`tnjzQ@xxw;OC^72b%dWUuEGtbXUd?yiyG1(wwDER~mB#Qx-R?bz{) zgl*xPdoYw=V;%WTcX!HIXYp&=sa>>Es*qaT9m_ajdQbsIK(lzl>4YMy0>=wf&H0V|=^vY~NV_0nZ^Ya2dV&QSUo0qH(^ zK(A0eRI*&3umrtwY|hIFmYQ7htT)>nJJs&vYB~}bPB1G}v!m8MdJ@B^2AN9orKZ$; zKSl_ECPA-a)Te#3VJj>t+`!;`$A%-3Ge%2%qQqKSiY71gct@mAtQyrV@EMW7q+l@K zmz{wrZ^J@nKw=hVGXv9i?2w+J^6Bx{p4-{8_m#e1VuuDKE2_=rQz?L}>U>7)d8M)oKp(NsG2sZ zv2lh8qyk@oO&B+2`z5hAEl`$>0j#B8($conoNcvQrm^UYawivk zdwcu$`}$LujZ*#H?JWKuU_73kO8vgKXD6S%nsB>qFzLF+3*EJKE3R1R zE?e4s9iq$EF(3}Wm=B?c>}AMzGw2~>S#dm4eeE6Ba>90PCZtT$24bDJQof+jQ?iGp z%z~BF#*Ty-ullLaXifzSQ+SW!r_My*O$syVWYfMpBssjK3~@4^2v`*nIet22m~JQE zv`D_KF_6?akprpdsH~-%+KNL?Kc0Xe=cm}nEydHQ_JwSc^joq%Lc|hy5rXk;{H0A>O!QMpDYwOLg~Ji%6pD^?)^t!&|lUysf{$>pagTKdmsG4oDlUh|(Z zh3!waeT9{cIXNBf`kVf?#85U9Q%dDKL7Rfo?-1~tq&8h_`PnACpU^) zcE@j{CQo2?FYee%HGeElL7~)mZ?7YbHjs8)fhYP3QSS38)iaWTVwUFm^`ESf{@cr8 zPnX-1p@8P4%Xb=%N8Wxr0=gLIf%7`e7MSh73fn;(%=TZV<9!f;*-ZH+8Utwti;%AI z<{`Edy%>G>Oaf~uA1jOsajBf0^qUnkfDcuYCc2hnWF}%QX4vh8B~~8>R(=au;xfDT zgGP!eGNKcH{aH1CO7fE^$TG&u$#_Y;m5kHScXYJcWdi?3BRNId+ML}oykKhx^MVFz*bQm{=LM<(k%4O_V?Ou|2DSOtEdo3Ie>UO(=qDhu`ZG~z> zaD||7OIlXk9$brU#40_aCs;2*2~N75N|_OGA2AYHBBf#^M1j>8RDus-Px?2fa_?!G zj-A;|!3OECW*+Y|$hE{Wx(|JowZVTc-@H%3ozG&1c#wEWswS`VG5Y;6`h7F~mdME^ z^t({=fIt4VZD0FJ+qMTcZFy+YY6=grrbD~ni12dbzza~51cWM9g3|TCY!CsHexqwS zTYhaBxiqfj$x3&yQ1g*D-_i0H0(y3g`}*R|)r)Hp1%ILGTK8y)m|1+u}n0S@f} zga2*Oe(oK~A@-q)v@_%ni-~~T%O>t)J99DWh&iWI8ObqVxALEwJKa7vpD7T=B3l9V z$OAz!@eut)x)#Yz^C3D_w9* zfR;#Z(#HR<@=(^~{|O9&#zWsTe!thA|7{*B)0wkmRMRwTNp9d#VGNk3cxaA~(oj(7 zXgqRU^3VtP5FVSQ(dE!qHMDgTv?XQEtD&vAF;&y1)Y#!35OqC=W4Tu~G&EG0V~09X zt2z&n;LHYZkJ=D0_i6Ug=j7I{e({D%7zmgbDT@0EeOC$C)(V&sszc{8!MT!VAQl7> z%mzegP&;HaCGxPH<{>qX3}f#`>q05eBkr@S@^Ch7CK6lKrQ%6>fu#JRk|vg(-0tH^ z(!7h*=m``Bys@Mq(Jlb9G@Al?WPu4BSpsU~wb4ouG~BVQy6T2? zD>NPKWo@T_Rpu^rVuh;TTrz@uZJXFv(Cy2M3QH zOUN~CFJ$B43RKFGqSFK@Tq%cT%?f%Huz9M*qE4jMkpv|ZF)J7i=>#&dVYba)bk3}x zX~Sx9F$G1X#&OQHfSCj1hPKk{n3Z~FMb<{DVOFY{l?$a#?3rh?7TDe^9&0-B-p9RO z?^pL~N^y^-6gzYMc_f_vlTuuuDaAK9QsM7qwPJ^+6-N=%adk+oI2k>s6`zxTO`omQ z)Z$7_Ee=cD(fFt)`Wl_6#raY#{{B%h?-T6gQZJ6j>grZjma~sE-@u~im_$PyrnY*w z#&_k~37&KO{Q&r8(7gT@ihSMtMJ5Mr)U*kmOw)`p)~3?Za1*%DOtq8(y<#EQ7u02e z)oi5rG;Y!2>GqQ8#TN4fBB~C(lM5uq{W@tzV{C~Cmin=pNvDjk8Z}THk4MPdI2@;% zU>t8vJbotWv!FN~e`hd!G#XE2s8Kk9x|6+*tf7!5aVu1!CR1j~{3o*>EMk5n8cfDP zIGG;@^MkgFDEpt^?|O09uKwTuzW*h;<$*N@rb}ClmTLMPgdRC`w^avip-@v(^QUVo zuerX?<+`|Rh1}9=eSQ;uK1Mki*UZDJmtfYe$$c!VrM-fVE2Y9eXzSodljgE-i8jTp z?H&62gBe8N^rJPH;|Mu+WaleUFz+LV`2&yJ^}Q54z}F?MNXSvb>5OE@*QWMZ;b6@;g1dB{txxeW9}pT-zS~VMq#x2u!n);mw1)DLL)4 zdOYLg-swk!Yj58l&0R=VF1NFQj?M`zXdaB2oz;?MSJbS6kQyu9 z%4-AbK6|~UjSZSp?;!1`oHwl(bv|pT_gOB{6A=qMN^||z=`Q!RXm203Wu$51 zx8ak1aX3(`d99zv_#)Ff@5Ti7G{&!1iSsPJYi;d^+@4FWUAy-BtCuXPTl<+7GIDsa zFFzv4{DhrSn&W>exdr9`aI3M=@sv-Wij5>Uu^s17f?96fIqc30%xeA|OR-5kYs2(4 z4i!><17$R!eMga7AI2NBeHb&!H#!l5_(`4WC%-hDLno~cIZ7%|imxfN;l2g&_^DKE zd?axe&SEuz8HNS%l(ZifY6uxMff`|VJT7^=p#C&>K&BsmS5+`<`_1TM?7!nA=o2|) z{XlA)k{YBhcrG*PWG1I?-|louCjX<}U;V0g&rg0cSb%w@mlifR`}2FAgG1cknjk7E zGult3(WZfcepq&u$Mcc$n&lTe&XOLloRizy{Q1>4Bb5Ey21|}f)#a82mP3_UTLJ`^ z-%xvP^|G28&xMzkEnHF`cu+T?mss9um=F+jQsc-zWH>X##h5~tWJ$Mr%!|gLmpr@v z982LW`>Z0HFpgoTG4pvc`?;QFG}W`k(5UR$)G8#(yuBSNEW60P2zvr+@MnX09`-8H z6F^#oIgCj)@mYHKT%e?{uc--R!0%q``yC_(1%B8T>ysIDt0jQb!X{z&=_+oRGzN$p zfXObCLQsy|T~o89tnA{I&Dv|zx?5LP*WC)iNQtKeLkuzym{>K<#EQh3q39onApmA* zD{)9VOUf^&mGq^^8|H#(j{HJ;$7jh&{!e_D=HHfiC?Fmrcm&7REuOO0fqoB6C8(7O z3+Aj}-`~H1V%{*0;4*f>?LirSU*^`dC|w=U-H_Cgw)#voC=x-);W=;U?2gG8d>M0o zA!B$EcaplRjHM{5DBBhuaJLN%xZAfl2L?OP6a2E=S-nsDkCMg|2aEa!*1O93*EwCG zmJN|IXCw9{zZUTB(@qGG&N)*F@6v`yC)1`dbmtyD9tj}bp>eHN_*KwLX`^sB!CwlS znZqtQRx7k0r1DydGBo`0BoQ8vJ!q9F$u%mNOAqGKgBkQd#_>x}vC`g05dQ|ys$N@P ztE<8-I(=TTpVjOW_0q(rG`r(uSP*UIjf3v>13kTH6J9y-@WM|12W61cHvU48T3K0h zSs98~U*KUcXb!oi?Kp+hz{B|}Di?3W<$DZnHnYHGv}lSh&!a_iXi-7`=!6)I<=NcK z;ee-AhAZEzJi}ZfVI&e;aG5Iq*+uGQ=>+sC`~Q#%6gX#02xpODu!lJ=3#|vcuK$mf zOtr>TXwMeqpK4N!HO_3GQZZW%m?OhOQL`b(UX~?*+FI>VwVpl7kip^aXYu(AIU@S* zaNK81QK}bTl++Y4<71G&A7j2ZFR7~bS*n8?kr?{ey^N?aEL(Lm#)S8cxXi;p<(ntP zLt~@Mg*#q)ruDl?0_pSWcf-wn`UV(H&=iSucJ}wnblSM8_0%N68mX^m7xC#kVIe`C zyL!1M*hxcVzvwm~6kv()J)BQ6I18;Ix!|A#WIycHQ-(T9G{4Pila0@g`qhlO^v7IH ztE3e}M!J}KhRHlJ+(Q^GrS&rF%un`2Sl7qp8;mn!-XXU5V9|0l7N!YE+qUfw>cuqY zV)YN(0;ckOL?dhYEma~Y5A!YM(AA3J2 z2*%o&)Jq<6)^C}JzLgX?Gi;^YgW`*d9`!J5`k^!<_8;tkUbsKC&(9bs!D=te5ff<4 zV?yuJ&cQD*d(C>ojN?_33>k&#$I!C~+}nNNGgLq2adru4gF z-sYVB`+H-tL1xay%suf$kA1TMiw=fIB6}plUMvV~_3G_*hjBBH!^5L0kCIbYai`_n z>3Z&T1#^R>BJ3<_`vQ1$ZuGzoAkmh{ft~2FJNIHafp6%$x!IqjOhi%*#)Rk4@)D|z5)yZ(Kp&ApY1x8;EJb_5u1QZ@5`_|bMb^v?@ z24#yjo)V8Fqq<}z^^Y;0wT$PYsF=Ob)Ap79(P^k?rm)i)RyFVc&pJA&@RJzqBU4G| zb31oF$tdq4uFU6~l^`Hz4_o2OVH2k^k`u1wjC3`12XQeOtadw58&vQaod_AGcrD*x1)MXml*T9^L$=wQFx?3a(oKFZIpR17BQnQU$MHW@#7z^`0$NQU%Ew#X&fEwX-_lq za$Zh>-#U)jTtbiz0%IM)ClTkpUS{gMoFyajg2pd4t}0)^?A#CI%F`kVr9OfD&IDlQ zPAB5y!SfO+#56H+N|qy)`#h#YWIB+R*!_%pqs2$&RWmL?ET6_aA`!S+GCsCRNvmfz z;k5A^EX5LpDnsxrreLup*MvTT70OXyW_2ZSS^Ly6(jDL@#e$y1il+CIr&2ZA>;c&@ z^JX1ROJS5AAawds^mo60I6h@7U&!n(WOij97#V9KktrsJqcRk-w6bx)wxnm(ti`E% zf#&Hvd)NgSFJo7Cw?|k8Hk-oXZkH>z4rztA^_U71G7R186-_=}Zw~-%uo-Kbj}Y#jzcy5*F3$qZKYQ z+O@TfO}E_A)ba&n)Z41q$$eHM3S$Lq{7TDf6yyC-cSz;{ce&;`an2Xx2nptum0gK` za^vdC6}PTiE&RA>+cEEah4E^m>j^k>81n0YEl7yyi-;;g!@9K}SwQDEA$LppZ5ze! z(wmB8xO^gU=1}D5>6B7zK|SzUQ&xy-d@P>e6KpgLqYtaK)Fv?eVcMH$#bGFPL47Jc zk@giC&r*q#%DB;!XK;CLY-c(ZN{0<57~e3d#J5-6C2Z4U+Nn|`nHK9`**c^Tc7H| zD(f@oCeB3rhy42aPUp3gTidLQVF&DfVERWg0@v+9R4!PbD-n6FEs*EAFjoc$s2xr04csJbG%vwnT*_rlGK{;mR`6DVir={T|p7N`%Yn0G=Z0#Jt_Vw$VZ@!8|Y#?)_Gfj_^ z03GaX0>=q?nP765*^Cl?t;c{lLeZ6!uPB{LWO6NYVFIR^))F&zH{W#4>XuH%hev>* zkXVsywyD@K7p6XeH0tOFp;>u(o~uTd2sQ}Klz{zDO%()nR93zi9|du|x^zNJP%JxX zF~ex2-<%*1TXDWwO^=SI;<)?sZIXBliu5|tX38mZ16+M(O~+T^Km?khn+~ReS*^$p zO^}61+tqWS37JjX=%}r=+rc(cQXa_?q{I6=*p4XR=kw>X1*T~_fhVLj z()uaLXUU{EIyzqHkBam8{`n&MYDZt+I~M0sEC4r_I}Lq-GN(C;m*8Fgpx+UT^Kxl; zltGaE-Eg@x_Xr!nz7xg|Xg{7ic z2e3{^EW;xR8l8zmVrGZ-If{99}Mo-5{;9}03VJj}kWk2Ia6QEV_>w>F>o-<}(ylN_KR?>cb z27f-?!sNYavGqY~Vf|cchpN9HA5A|)F zXt1}_YUSE$jyuOb!-W&fbWe!JBQ$P?ZTViuml|E()uQ( zo$~U#ZsxrUbccwaKSy0$yNUV2K2@Ps};IIo(g(mV;S86v%Imt0VW9)Dz9R*SnmvtIFfy;3#&bf!s-=Qv17P-q)Pfk}-M zvv$=&i)D^GppQf*>@|$((}X@}#nP{^n{=x7iHKP5D~u@8`OeXEO2E4jt(g)~Nq!?wifIy*=DIlU~f(GVTl(b3DDTQ_) zl@nCU$nm647oP|erm^a!QToyeLXuDvI44Js{;tcl3?IXqqsLRINndXI>!!bME;o<< z&ZEDYz-VdhEMM$`{^ysMcM=7`HX!?Y(JYIl%rnQPL=%YmnSeBjv|84$?K}7eJpPS? zeQU8gw0gB}{{Cn@e(<-)VxvU`j7UL%G;7A&?8#(q#ph*8j1CM>itICj`VTO}Coq=F zIw-g_tn|`gP!z-#l0Br!;&e6u-|@4lQGVQvN$wFSbtgPZ5Jf<-L7o0@PXicz4sa@Umojy z%I;brlGkYM91$Z*X=yUB)dbfmEk#TTZ1wBOtzR%{8 zcpJBh928L1oQPAdRlbS~U=XTQVW)O#Gj}rc?LzL9%blpKtjEZ#D0>_s#nUB}nnAa+ zznaTaEMPsezs<{q?-PbNiD|ef&*-9=3uZ9^Q!SU3nm^F;CGAVvL+W;Ws7|Qe&E3sq z>e|7wT|!(#dw0Q++6?vU*40lnJEkHrTe8iT(laJC39`$MkAYSjXthDenkeK+WhQ*U zKZ8EJx8xpm1Yp+E6g0W+KX^VM)IUEznB6@pxwf<$UCEXIhv0atv?!dLi~QSP4CACa zxO-2}!Tv+Pe0KW-)x@XXO5|Hh=AU&z?=m8Zs{bcoc&EnO%orN}()>s(basNI4fX@G zH1)0QEJfvs4sBMwaz>??$?SUNI+?o96dh#0(Iro+IY$Q{ICtvmS(@pQ=T=N!{ZDQB ztCW-dR=50C<+(fj4N7~@U6#D(eD0Lx&{I8lf2*|Xm;YI-D6jPXZ%y?(dzUuZs&((V z%b)e)FWe>Di$9I5HoSl9E<5C1DD?XGSJ`{U>b-qG*Q(`0C*Uktto{dLJgSIrUYTjk z-Q4lgk&$@f%{?8Pt669(L2-RLb5HKJj$OY-D13ES2QhtjXVyxt_&*uk@%|Z|qJ!*u z(bm8R>EQ3Lnh$=%2ebYFeNNpcO9}X?e9|)o<@`l@oANQ=3O)Q^>0{2{zyHAR2mAYa z_CC9#v-5#fc$}KaHBdv+f{$kYiB}uQ5^{@{UbH2%A>X&9ZTmN#?d~6nM*j$Blh&aB z%YDlRR`h%KX8ZpmZ>`cw&O4@~25G;EX^_#age2>O z@px-B(%bFYPI|8-&i_4r+o|!GS_j$jc;7mh+H?NqdeioU?2aZI$8c(2`?Fo-{rf?u zJn?UG>i^Ytb;&#YdArVW_^JL+wJY2IE%IB<=XQ|4+4G0wxvoi`aYVkDC;!Qu;qQ|G z-rtjmJjXiut-mwE**5K$-}s;$@K;)v{l<3rji&eB!|a=)ZG*_JgQ-?!`QJ|YjqH5< zH)e5%{MOoYqxE<9=lAp^D+Sa4_m9>4XJe1NewLTNXLU~XVCvj#5B~ACWXGsoUVHty zwtrwer>_0~=eh5np^$8^dvZ>hPHjsAR`bCT{O^5hN+*)p3I0KyNWZJM59{nYT`S7@ zIw@Rey4+t=in8-7J>KOaYu%6@Z&_8<)I(BFyXN4|db~R{kN4X>Q|T1G^*&q|M$OGFaP^DVu;dPi3mZ|) zD>MH-W9L9lMa80=f#+85stH zKiyK8tDcqU7zzBreKsZ?;5fB))&xk&41heMSA2yNDa&-)Ok4o1n9k{x5v9_ZJTpIG z0tucP&*}(MUTs-Z!^Eg)76Pi@j*JY;oO<_o#nV$>?FUFYn{(vI(P%WWYL!?Z0Smid zF>f|`snJkUUQX!>FBXE5`?h*93ydn8C#~H}8TX}(`-ixL9QR8Z_Y(4}+OaF@Bfs3S z!{f;t{1H~}Z|?5O`m%TKL|OG(+V`jDdX{6T21zyDZ!UFLtf;O4RvRn<_i_M#%Sn~8 zH{>NXJ4qIEiNn53nk~rgDLvtqy7Js(gT0LUuloB({pJ&c{l7dIYi?>nzS>}K3ms0V z*7KdtLSP%jO64bp-{_T4Jk15_T4sA+Z_e&2Ppph)V$P9~aL7b|4*^ShVy65an*k zQs|VQdNm{UF-EGMky;d0<`T-e{ncm*?xezq!x72Bh?yUKl>oQJP9=J151`}c_w4x& z?&=o_l){l54~H}_*2`haSeD~=60RzSak)$4|MCdSwt;V)^i$hXk?=tM8n-#dd3nzM zey4&}HECV6s%GHGX{%$wRajMP8yao|Us5qgqQ5bJ_@=pTz4g|MttSBxGI}}D-+t>` z-x`pg`18hwaSZ|D#hI@QF51%i=+nD*bw1Ym$j&`IzYT>V;kOug?8H{pY`du3bCtV5 zoFcE!p?$la-s+blsYMlnz`)VGNx`7{fXWq*O#nJiL`O40YkXvkD9`a>pnvfsE{6n0 zPLL?(0$>2R00F^bsL%14fOCTNmJ0=B>n1$X> zgnoqT0NHglAF4kes+X8FnWK^X5~4`+N}HkJAQoJ+*NYil=jp~94c!`Xka&c3U~|#n z;C`DeR$t%Jf^{t3*a(hOH?YKKZf&hzvV`gxuFW~y_mE@5O7waM1gq}YEmz;8IhI69 z*z7}!c%D0V?EZH97%=#ur*#ghNKxJh`ZQaUc6)UcXmMY!SZzLl?$y(6Vw8;EAy*Ut$ z_$=GEOR%fcX#;1Z3(oUyex!5v?j4VBd+@tm2VNf>JRBOp5#}IlI+0LL_I7>uD}G`_ zCqNBAG{Aly){Q6b^Ew#?yv%RPh$^L21}Om?Gh0BNo=E^t#n2kW5Ugr0W;JnUD_@r0 z6lIf3+S0M_o2=&89C-m_b8x^UXL0 z%NIC{RdPvO;W#V#s@;8aQ{duY;Ql9H?vKy%crJr_r_C!X8}ILbhp_6mU)l4m2mP&& ze7|e|vB9DKeS5z1nDi6lb2aKW!P%rkSjFWq8jGLxvxa#G55}qB#qlu-u^!DBRc!Ps zIk_#wEaSlk(t&3`5oJz^Mk8J$aq?ZRm_B=!Fb+A?_$_d@sNfVVs>EgC*1~635S(t- zLQu^5(KzvSLS7;Rg4l-{Tk%;r#SA9wl)yDAEHW4&>&*sB3_ge$5u)8>fDKML0xK1EN#8+)yNcW}Q~AuNN@?2T16xxGsJ_BIk_cv(2* zK+Xm|$f_H3w21~B|EbcP-DOz1_;1q{{X5t}iB4_Kd(Ss><1r>2Y` zI-5wQ#f}|6?vKg}n&+j#kM;Mb9akZ7dj-j0@&KjZI3*; zb9eV2Lx+01c0cnqZR1$rT2Ls)!ni)A4~_t{O?qOH2&C1^`D8N)z|hBoQYtbfz>Am# zF$!$77701!gtQE`xA=6%3BN;)MNcJD)QK&i2ITl)Y7|gYo~iexr~)JgLO5oDyT% z9Y#tEw?aQRK|l4-&&Q#kg#*9d^*HqK-M;?u3y4Ymkz_57^JY3+^Q9LzHt-8cPy50# zTbZ+H7*=DV#l|AL!|I>=_Q1eT`06VV9*7ry2#;-Qx_-VjiWB!>(zdiIu#gN6^>CG? zcBlEx{@NRtI@uc&LkTq{Q$>te%P#*YRhcfa8;=borp?osP2o&yqWb{r%{ONOd_LXY z{%x=Wy@$ep*|u;0!NEZVOk?3tsB?S3?OuGzjQGI5ula)yegmQ5(QVsah8%vrfB)}} zr3xe8!9A{B&@6>1@A ziC`YV3yMLEPUOO10$Ks)*lCy!KDTnpx<(H6cHc!f7p8$_^7IDe|+yVXC9eM zCPN4zh8Tw!V~nXqq!?*RCl5lzG)--^Xj9CkTuUud>ZM+4xq4>K@DRg8MT;6SrIAuD zQlzm`ikM=G5s^k3V;Tac7-I|}hA@PXOy>N)YoD2r2@kcs|NH;l-{Q0Q$awRw={ggj59(4%md5O(aw!h#*upe8Gf zt*!C#bdsYz1YfRZX*r9i@>c{>;tnOxv4Kv1u2~PsAi5F>fR)Q^1 zNg@G%2dNG>dj*5!MZw`+@Wo4R(o3cXOLmKrF?fedZ)o>-@sbUC$&O%2)Pp*yW*E_4 zz9d485wsbf2U=(@(ZWzWx9BB{sU)j|MMglS`cSLRXNMpSFSSiC1sD0SQWsz*ywnc8 zRN-fp3iSk-F!V%Sc-w}t!X!W&)`Owi^m4)4oFi-doMplwys%7Y&#sS@dgyF`dmGi` z(vr^Wqx5bIgOEy+mT`1R$8bsSMSD9W-v}!g??wVh)JU=x)Yb3SX&v=gNODU3Oug-f z9Y355++dHfr$cI3N(}4$$L`0hy_i_RjkHRq`lz@#oI)$TS3F^xZh$32UCe0=3Po4c}3m zECd&V{l#)@xE9gC#$J(z$EnXMT%Ijv<%Jvf#E;f%ub77ODl zX|dh}NZ%;a6NHl_>GdN*lplTwLhdW@ducnJ_Wo86h zNKv^$Efh`|Hg82ndLrbfSEOcCkT@20yl7n<9IunFOHNFPOGrtX7^jYzH?MF?Q{!<6 zl|F22nsVzr(Ylrnx9RXZ*rk4DlA9-83%fe6>H8TdnTt@^URZYS1wo*u{*7&dfBZQz zibL+V2tZ~yhvu0f#UYDK8+L8>#lhS3yF)bQE&77jxnyf@0J+X99-dD4_1=z=8a-jaD98Tmhu{%*O{ zjNtT#Okj)1N?X33(7I(x#0J8G&(&Aw8AdPM_V_w9#h_LQsp( zI1C7IEHv&yP>g)WFcdj~PJ*HW8^YyscOQaL<5PzAB@v&=ET7H7H=ycrPCxFH)jGhs7j3bVSG8R~p+EMCUDeCjfem~6`oj&2Oq zWuhG6&^iioLv`&o;IP!a+)&KQK;sou)_uH_b)qsu3)D@xhSmcc=Ffx0d0H%Cu?=++ z7R6)ar7#tz$0Q>=Qu>HCT!@2yNc9N^Sx`$84q~YDfP*$nZNdSfWCY8HR;`h}0EYx0 ztHO;_VEi=?pD}%QX2&OaSoPwQBGpNuc5DDPs)3E4?i{AwnQ%QhxuIUwWT&&pm zYSZAjcu1MwZ8{DKblL|^hhXL5>v^yG@fjj37Fpda(H@eYtbYF#)*ebfHb3H}>b*q! z|5&{h;s1>(&XsT&f()&${w;`t-m0(jb)EK%J>6C3+XZRTE?=FDC(D_(*eFkYRIDxY z#+#uPxcNp~rXM;bf2IxD;1?9EAYD|!{kOs>{6)ww^g!utIC~ME+4s+!lE-SrflK29 z#rQ+o=#^{}tMwS-zFP8=8CbU{Xg3|t%0DT&Wh@IO|A|;!G95D0#OWmq$qIMQoNTay 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

      -=$q^cxC1v6c5*~ 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 z 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 >GjZLQF0IXoz#S94~IrS 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

        N6pK-J!%2% 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 Px}&0SwEu%=SLuJU9z%U0dG>;EXY-e# zV_!CRhO;v9We!Z0y{N|b%go~AbL^O*hzOB}jBrBQASGi^T0*$75qD^F3mIYxBqKeY zc>a8UijD+{l32*oznrsN%G1x4W0nk@px8&n43*@Q$98^s08|9^eXxjoANFJ({zU1i zcWiaaq=qkEdVI?t3LukP+BoV z@^-vv+O-?e1C#VZY~B!vf~mNBGU<*lOr3l)w$f|31$vWhYDl7gO<8ZBOUVa*v~r1G zU8{U3RK#!%Al}G)OYM6#C%ks6125)Rf8U2RS!J8?qb$u?hd_?TBYvg$bY(&zv>#(! z_uiZC7&>|0uNN<_xJc{z{AJQm7e(%Lu6lg)kuGiEk4c6pzC?e45>VR6qTE3Vp45oF zFR5I8;%!<>he{4-iiBroUZTUe=f#@;&!H^vK<=R5jW8z^Zpmip=?bUz?Ze8{-HI3X zbU^2lMdgt;1zTVPgIU`MX_z*llYK*%f;zfZxt;C$j@< zxYti7Ee0v~ESbp1%x~nLX}}Zu%@PG3rLt1~`?mgoHFgZ+kJgL3-h@=;srQOiQ{K#H zPl?6JWxp}(nawBzKrQ)lNi^B@9C`qcdf@JwB0@RnmgMUDe4WFK>7$BBYh;GS`}?fY zLWJiu%gB+izj*A`k4g;4lmAuC%Z37ezNkhk!LbDWjwcQ(;w=8}0R>LhQv-}+r?M&* zl%N5=MMgOOGOOQz;%b>F_(z6XgB)N8y1DjZybU$fnLBD(0Ov@dbhM}tcHoNOEAxiY z)oB?c^9W_XUM!tUve`b&Q?_g&s&3n~NlD{>Oa|!#-R|mta)Zv${%T%+#1!;@R4vnB z1BE<9H@?6E#jOU+KNijH)+idJs=@ZwHWu2pATO0Z4o4p&sI(P1DAq+7Q#$OB>s`86 z2Go&k+3cvS-^*;0Eiohw;oSUHooR2q(Z;2@{IvrRdCGNuNAM zpGbYKh(5WRJ}D#?xZApMqtBO>HqT&;; z?nEwJF4i9$hxMRF)&laSHnTVoD3mx9wYHX3C#fJmo*0Hv5TNh)+aN=Vzj84=VyM3AL-tf1bY{4m^ z$ul?{L`SR+@)aGOq<)+{=YUDUz}{+Y^{cI|;U>dq(m}`}VAe-_yO7>4qPP3g+r2iV z@)$t?v2ovIaJa2ZwQY1*hH2dZ6p>&IwXTlN+v_P1rFhsQcU$;!|r4+J9Eh%Agq{Q(jt)?bz7047lDckK{ zvc#RufB&96{syGFH?(BYnhs+WQE}eseBVCzj-)tM;SLn8d%B}fIV+DiU5js;mohWv9JNm zvEN-F7WmYi6#<<1{#=Xne~7Y!Xqy?OMNqr`*vh1ij_XKGJ~ZT%B|kO04E$IRO+)TYdx{D zEGis5CYs=19QF7&M@d)^M{$7p>%606=FE4$E2OOURJz4Tr9cVrLe`COD_!!dqE{&O dOnHTJefZ`IWl=bJoOzARPmbiMuz8fC{5NLxuU-HE diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.scss b/invokeai/frontend/web/src/common/components/GuidePopover.scss deleted file mode 100644 index 58434270b2..0000000000 --- a/invokeai/frontend/web/src/common/components/GuidePopover.scss +++ /dev/null @@ -1,20 +0,0 @@ -.guide-popover-arrow { - background-color: var(--tab-panel-bg); - box-shadow: none; -} - -.guide-popover-content { - background-color: var(--background-color-secondary); - border: none; -} - -.guide-popover-guide-content { - background: var(--tab-panel-bg); - border: 2px solid var(--tab-hover-color); - border-radius: 0.4rem; - padding: 0.75rem 1rem 0.75rem 1rem; - display: grid; - grid-template-rows: repeat(auto-fill, 1fr); - grid-row-gap: 0.5rem; - justify-content: space-between; -} diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.tsx b/invokeai/frontend/web/src/common/components/GuidePopover.tsx index ca45343588..ee376901e0 100644 --- a/invokeai/frontend/web/src/common/components/GuidePopover.tsx +++ b/invokeai/frontend/web/src/common/components/GuidePopover.tsx @@ -2,6 +2,7 @@ import { Box, Popover, PopoverArrow, + PopoverBody, PopoverContent, PopoverTrigger, } from '@chakra-ui/react'; @@ -34,13 +35,12 @@ const GuidePopover = ({ children, feature }: GuideProps) => { {children} e.preventDefault()} cursor="initial" > - -
        {text}
        + + {text}
        ); diff --git a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx index 1ea35f5881..b1ddaf45d2 100644 --- a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx +++ b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx @@ -5,11 +5,11 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, forwardRef, useDisclosure, } from '@chakra-ui/react'; import { cloneElement, ReactElement, ReactNode, useRef } from 'react'; +import IAIButton from './IAIButton'; type Props = { acceptButtonText?: string; @@ -58,7 +58,7 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { onClose={onClose} > - + {title} @@ -66,16 +66,12 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { {children} - - + diff --git a/invokeai/frontend/web/src/common/components/IAIButton.scss b/invokeai/frontend/web/src/common/components/IAIButton.scss deleted file mode 100644 index 90489a3bda..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIButton.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__button { - background-color: var(--btn-base-color); - place-content: center; - - &:hover { - background-color: var(--btn-base-color-hover); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIButton.tsx b/invokeai/frontend/web/src/common/components/IAIButton.tsx index d25e9decae..ca06e51bf0 100644 --- a/invokeai/frontend/web/src/common/components/IAIButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIButton.tsx @@ -10,19 +10,15 @@ import { ReactNode } from 'react'; export interface IAIButtonProps extends ButtonProps { tooltip?: string; tooltipProps?: Omit; - styleClass?: string; + isChecked?: boolean; children: ReactNode; } const IAIButton = forwardRef((props: IAIButtonProps, forwardedRef) => { - const { children, tooltip = '', tooltipProps, styleClass, ...rest } = props; + const { children, tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( - diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.scss b/invokeai/frontend/web/src/common/components/IAICheckbox.scss deleted file mode 100644 index 3b79c8f4db..0000000000 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.scss +++ /dev/null @@ -1,26 +0,0 @@ -.invokeai__checkbox { - .chakra-checkbox__label { - margin-top: 1px; - color: var(--text-color-secondary); - font-size: 0.9rem; - } - - .chakra-checkbox__control { - width: 1rem; - height: 1rem; - border: none; - border-radius: 0.2rem; - background-color: var(--input-checkbox-bg); - - svg { - width: 0.6rem; - height: 0.6rem; - stroke-width: 3px; - } - - &[data-checked] { - color: var(--text-color); - background-color: var(--input-checkbox-checked-bg); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx index b9c526cf7e..c04a383767 100644 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx +++ b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx @@ -3,13 +3,12 @@ import type { ReactNode } from 'react'; type IAICheckboxProps = CheckboxProps & { label: string | ReactNode; - styleClass?: string; }; const IAICheckbox = (props: IAICheckboxProps) => { - const { label, styleClass, ...rest } = props; + const { label, ...rest } = props; return ( - + {label} ); diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss b/invokeai/frontend/web/src/common/components/IAIColorPicker.scss deleted file mode 100644 index 4b6e29483b..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__color-picker { - .react-colorful__hue-pointer, - .react-colorful__saturation-pointer { - width: 1.5rem; - height: 1.5rem; - border-color: var(--white); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx index 619c5758e6..406966bf88 100644 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx @@ -1,16 +1,35 @@ +import { chakra, ChakraProps } from '@chakra-ui/react'; import { RgbaColorPicker } from 'react-colorful'; import { ColorPickerBaseProps, RgbaColor } from 'react-colorful/dist/types'; -type IAIColorPickerProps = ColorPickerBaseProps & { - styleClass?: string; +type IAIColorPickerProps = Omit, 'color'> & + ChakraProps & { + pickerColor: RgbaColor; + styleClass?: string; + }; + +const ChakraRgbaColorPicker = chakra(RgbaColorPicker, { + baseStyle: { paddingInline: 4 }, + shouldForwardProp: (prop) => !['pickerColor'].includes(prop), +}); + +const colorPickerStyles: NonNullable = { + width: 6, + height: 6, + borderColor: 'base.100', }; const IAIColorPicker = (props: IAIColorPickerProps) => { - const { styleClass, ...rest } = props; + const { styleClass = '', ...rest } = props; return ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.scss b/invokeai/frontend/web/src/common/components/IAIIconButton.scss deleted file mode 100644 index d55e5de4c5..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.scss +++ /dev/null @@ -1,82 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__icon-button { - background: var(--btn-base-color); - cursor: pointer; - - &:hover { - background-color: var(--btn-base-color-hover); - } - - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - - &[disabled] { - cursor: not-allowed; - } - - &[data-variant='link'] { - background: none; - &:hover { - background: none; - } - } - - // Check Box Style - &[data-as-checkbox='true'] { - background-color: var(--btn-base-color); - border: 3px solid var(--btn-base-color); - - svg { - fill: var(--text-color); - } - - &:hover { - background-color: var(--btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - - &[data-selected='true'] { - border-color: var(--accent-color); - svg { - fill: var(--accent-color-hover); - } - &:hover { - svg { - fill: var(--accent-color-hover); - } - } - } - } - - &[data-alert='true'] { - animation-name: pulseColor; - animation-duration: 1s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - - &:hover { - animation: none; - background-color: var(--accent-color-hover); - } - } -} - -@keyframes pulseColor { - 0% { - background-color: var(--accent-color); - } - 50% { - background-color: var(--accent-color-dim); - } - 100% { - background-color: var(--accent-color); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx index 3eedae8e14..4e6e3d7643 100644 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx @@ -7,22 +7,13 @@ import { } from '@chakra-ui/react'; export type IAIIconButtonProps = IconButtonProps & { - styleClass?: string; tooltip?: string; tooltipProps?: Omit; - asCheckbox?: boolean; isChecked?: boolean; }; const IAIIconButton = forwardRef((props: IAIIconButtonProps, forwardedRef) => { - const { - tooltip = '', - styleClass, - tooltipProps, - asCheckbox, - isChecked, - ...rest - } = props; + const { tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( { > diff --git a/invokeai/frontend/web/src/common/components/IAIInput.scss b/invokeai/frontend/web/src/common/components/IAIInput.scss deleted file mode 100644 index ac073fd578..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIInput.scss +++ /dev/null @@ -1,33 +0,0 @@ -.input { - display: grid; - grid-template-columns: max-content auto; - column-gap: 1rem; - align-items: center; - - .input-label { - color: var(--text-color-secondary); - } - - .input-entry { - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.2rem; - font-weight: bold; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - - &[aria-invalid='true'] { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIInput.tsx b/invokeai/frontend/web/src/common/components/IAIInput.tsx index 50f78f30f1..e0d0536c03 100644 --- a/invokeai/frontend/web/src/common/components/IAIInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAIInput.tsx @@ -1,47 +1,37 @@ -import { FormControl, FormLabel, Input, InputProps } from '@chakra-ui/react'; +import { + FormControl, + FormControlProps, + FormLabel, + Input, + InputProps, +} from '@chakra-ui/react'; import { ChangeEvent } from 'react'; interface IAIInputProps extends InputProps { - styleClass?: string; label?: string; - width?: string | number; value?: string; size?: string; onChange?: (e: ChangeEvent) => void; + formControlProps?: Omit; } export default function IAIInput(props: IAIInputProps) { const { label = '', - styleClass, isDisabled = false, - fontSize = 'sm', - width, - size = 'sm', isInvalid, + formControlProps, ...rest } = props; return ( - {label !== '' && ( - - {label} - - )} - + {label !== '' && {label}} + ); } diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.scss b/invokeai/frontend/web/src/common/components/IAINumberInput.scss deleted file mode 100644 index aab88f1021..0000000000 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.scss +++ /dev/null @@ -1,66 +0,0 @@ -.invokeai__number-input-form-control { - display: flex; - align-items: center; - column-gap: 1rem; - - .invokeai__number-input-form-label { - color: var(--text-color-secondary); - - &[data-focus] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } - - .invokeai__number-input-root { - height: 2rem; - display: grid; - grid-template-columns: auto max-content; - column-gap: 0.5rem; - align-items: center; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.3rem; - } - - .invokeai__number-input-field { - border: none; - font-weight: bold; - width: 100%; - height: auto; - font-size: 0.9rem; - padding: 0 0.5rem; - - &:focus { - outline: none; - box-shadow: none; - } - - &:disabled { - opacity: 0.2; - } - } - .invokeai__number-input-stepper { - display: grid; - padding-right: 0.5rem; - - .invokeai__number-input-stepper-button { - border: none; - // expand arrow hitbox - padding: 0 0.5rem; - margin: 0 -0.5rem; - - svg { - width: 10px; - height: 10px; - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx index a88c246c2a..cfe06aa727 100644 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx @@ -9,6 +9,7 @@ import { NumberInputField, NumberInputFieldProps, NumberInputProps, + NumberInputStepper, NumberInputStepperProps, Tooltip, TooltipProps, @@ -20,10 +21,7 @@ import { FocusEvent, useEffect, useState } from 'react'; const numberStringRegex = /^-?(0\.)?\.?$/; interface Props extends Omit { - styleClass?: string; label?: string; - labelFontSize?: string | number; - width?: string | number; showStepper?: boolean; value?: number; onChange: (v: number) => void; @@ -45,12 +43,8 @@ interface Props extends Omit { const IAINumberInput = (props: Props) => { const { label, - labelFontSize = 'sm', - styleClass, isDisabled = false, showStepper = true, - width, - textAlign, isInvalid, value, onChange, @@ -119,29 +113,10 @@ const IAINumberInput = (props: Props) => { - {label && ( - - {label} - - )} + {label && {label}} { clampValueOnBlur={false} onChange={handleOnChange} onBlur={handleBlur} - width={width} {...rest} > - + {showStepper && ( -
        - - -
        + + + + )}
        diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.scss b/invokeai/frontend/web/src/common/components/IAIPopover.scss deleted file mode 100644 index ab2ac26b3a..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIPopover.scss +++ /dev/null @@ -1,12 +0,0 @@ -.invokeai__popover-content { - min-width: unset; - width: unset; - padding: 1rem; - border-radius: 0.5rem; - background-color: var(--background-color); - border: 2px solid var(--border-color); - - .invokeai__popover-arrow { - background-color: var(--background-color) !important; - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.tsx b/invokeai/frontend/web/src/common/components/IAIPopover.tsx index 38a2a24303..c58accebe4 100644 --- a/invokeai/frontend/web/src/common/components/IAIPopover.tsx +++ b/invokeai/frontend/web/src/common/components/IAIPopover.tsx @@ -12,7 +12,6 @@ type IAIPopoverProps = PopoverProps & { triggerComponent: ReactNode; triggerContainerProps?: BoxProps; children: ReactNode; - styleClass?: string; hasArrow?: boolean; }; @@ -20,16 +19,16 @@ const IAIPopover = (props: IAIPopoverProps) => { const { triggerComponent, children, - styleClass, hasArrow = true, + isLazy = true, ...rest } = props; return ( - + {triggerComponent} - - {hasArrow && } + + {hasArrow && } {children} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.scss b/invokeai/frontend/web/src/common/components/IAISelect.scss deleted file mode 100644 index 8891b3b11e..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISelect.scss +++ /dev/null @@ -1,31 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__select { - display: flex; - column-gap: 1rem; - align-items: center; - - .invokeai__select-label { - color: var(--text-color-secondary); - } - - .invokeai__select-picker { - border: 2px solid var(--border-color); - background-color: var(--background-color-secondary); - font-weight: bold; - font-size: 0.9rem; - height: 2rem; - border-radius: 0.2rem; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - } - - .invokeai__select-option { - background-color: var(--background-color-secondary); - color: var(--text-color-secondary); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.tsx b/invokeai/frontend/web/src/common/components/IAISelect.tsx index fa25b8f17f..caff77ed17 100644 --- a/invokeai/frontend/web/src/common/components/IAISelect.tsx +++ b/invokeai/frontend/web/src/common/components/IAISelect.tsx @@ -10,7 +10,6 @@ import { MouseEvent } from 'react'; type IAISelectProps = SelectProps & { label?: string; - styleClass?: string; tooltip?: string; tooltipProps?: Omit; validValues: @@ -21,21 +20,11 @@ type IAISelectProps = SelectProps & { * Customized Chakra FormControl + Select multi-part component. */ const IAISelect = (props: IAISelectProps) => { - const { - label, - isDisabled, - validValues, - tooltip, - tooltipProps, - size = 'sm', - fontSize = 'sm', - styleClass, - ...rest - } = props; + const { label, isDisabled, validValues, tooltip, tooltipProps, ...rest } = + props; return ( ) => { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); @@ -43,36 +32,16 @@ const IAISelect = (props: IAISelectProps) => { e.nativeEvent.cancelBubble = true; }} > - {label && ( - - {label} - - )} + {label && {label}} - {validValues.map((opt) => { return typeof opt === 'string' || typeof opt === 'number' ? ( - ) : ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx index c9eb07d2d3..7e1d2654e3 100644 --- a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx +++ b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx @@ -4,14 +4,15 @@ import { MenuItem, MenuList, MenuProps, - MenuButtonProps, MenuListProps, MenuItemProps, + IconButton, + Button, + IconButtonProps, + ButtonProps, } from '@chakra-ui/react'; import { MouseEventHandler, ReactNode } from 'react'; import { MdArrowDropDown, MdArrowDropUp } from 'react-icons/md'; -import IAIButton from './IAIButton'; -import IAIIconButton from './IAIIconButton'; interface IAIMenuItem { item: ReactNode | string; @@ -22,9 +23,10 @@ interface IAIMenuProps { menuType?: 'icon' | 'regular'; buttonText?: string; iconTooltip?: string; + isLazy?: boolean; menuItems: IAIMenuItem[]; menuProps?: MenuProps; - menuButtonProps?: MenuButtonProps; + menuButtonProps?: IconButtonProps | ButtonProps; menuListProps?: MenuListProps; menuItemProps?: MenuItemProps; } @@ -34,6 +36,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { menuType = 'icon', iconTooltip, buttonText, + isLazy = true, menuItems, menuProps, menuButtonProps, @@ -48,13 +51,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { {menuItem.item} @@ -65,34 +62,20 @@ export default function IAISimpleMenu(props: IAIMenuProps) { }; return ( -
        + {({ isOpen }) => ( <> : } - padding={menuType === 'regular' ? '0 0.5rem' : 0} - backgroundColor="var(--btn-base-color)" - _hover={{ - backgroundColor: 'var(--btn-base-color-hover)', - }} - minWidth="1rem" - minHeight="1rem" - fontSize="1.5rem" + paddingX={0} + paddingY={menuType === 'regular' ? 2 : 0} {...menuButtonProps} > {menuType === 'regular' && buttonText} - + {renderMenuItems()} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.scss b/invokeai/frontend/web/src/common/components/IAISlider.scss deleted file mode 100644 index 21d62d4b07..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISlider.scss +++ /dev/null @@ -1,60 +0,0 @@ -.invokeai__slider-component { - padding-bottom: 0.5rem; - border-radius: 0.5rem; - - .invokeai__slider-component-label { - min-width: max-content; - margin: 0; - font-weight: bold; - color: var(--text-color-secondary); - } - - .invokeai__slider_track { - background-color: var(--tab-color); - } - - .invokeai__slider_track-filled { - background-color: var(--slider-color); - } - - .invokeai__slider-thumb { - width: 4px; - } - - .invokeai__slider-mark { - font-size: 0.75rem; - font-weight: bold; - color: var(--slider-mark-color); - margin-top: 0.3rem; - } - - .invokeai__slider-number-input { - border: none; - font-size: 0.9rem; - font-weight: bold; - height: 2rem; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - - &:focus { - outline: none; - box-shadow: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - } - - .invokeai__slider-number-stepper { - border: none; - } - - &[data-markers='true'] { - .invokeai__slider_container { - margin-top: -1rem; - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.tsx b/invokeai/frontend/web/src/common/components/IAISlider.tsx index 81e0943c4b..1acc64db23 100644 --- a/invokeai/frontend/web/src/common/components/IAISlider.tsx +++ b/invokeai/frontend/web/src/common/components/IAISlider.tsx @@ -37,11 +37,8 @@ export type IAIFullSliderProps = { step?: number; onChange: (v: number) => void; withSliderMarks?: boolean; - sliderMarkLeftOffset?: number; - sliderMarkRightOffset?: number; withInput?: boolean; isInteger?: boolean; - width?: string | number; inputWidth?: string | number; inputReadOnly?: boolean; withReset?: boolean; @@ -52,7 +49,6 @@ export type IAIFullSliderProps = { tooltipSuffix?: string; hideTooltip?: boolean; isCompact?: boolean; - styleClass?: string; sliderFormControlProps?: FormControlProps; sliderFormLabelProps?: FormLabelProps; sliderMarkProps?: Omit; @@ -74,14 +70,11 @@ export default function IAISlider(props: IAIFullSliderProps) { max = 100, step = 1, onChange, - width = '100%', tooltipSuffix = '', withSliderMarks = false, - sliderMarkLeftOffset = 0, - sliderMarkRightOffset = -1, withInput = false, isInteger = false, - inputWidth = '5.5rem', + inputWidth = 16, inputReadOnly = false, withReset = false, hideTooltip = false, @@ -90,7 +83,6 @@ export default function IAISlider(props: IAIFullSliderProps) { isResetDisabled, isSliderDisabled, isInputDisabled, - styleClass, sliderFormControlProps, sliderFormLabelProps, sliderMarkProps, @@ -142,19 +134,13 @@ export default function IAISlider(props: IAIFullSliderProps) { return ( - + {label} @@ -182,23 +164,23 @@ export default function IAISlider(props: IAIFullSliderProps) { onMouseLeave={() => setShowTooltip(false)} focusThumbOnChange={false} isDisabled={isSliderDisabled} - width={width} + // width={width} {...rest} > {withSliderMarks && ( <> {min} {max} @@ -206,23 +188,19 @@ export default function IAISlider(props: IAIFullSliderProps) { )} - - + + @@ -234,13 +212,10 @@ export default function IAISlider(props: IAIFullSliderProps) { value={localInputValue} onChange={handleInputChange} onBlur={handleInputBlur} - className="invokeai__slider-number-field" isDisabled={isInputDisabled} {...sliderNumberInputProps} > onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.scss b/invokeai/frontend/web/src/common/components/IAISwitch.scss deleted file mode 100644 index 168b741520..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISwitch.scss +++ /dev/null @@ -1,24 +0,0 @@ -.invokeai__switch-form-control { - .invokeai__switch-form-label { - color: var(--text-color-secondary); - } - - .invokeai__switch-root { - span { - background-color: var(--switch-bg-color); - span { - background-color: var(--white); - } - } - - &[data-checked] { - span { - background: var(--switch-bg-active-color); - - span { - background-color: var(--white); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.tsx b/invokeai/frontend/web/src/common/components/IAISwitch.tsx index 9d3b4f4415..5ef568f28a 100644 --- a/invokeai/frontend/web/src/common/components/IAISwitch.tsx +++ b/invokeai/frontend/web/src/common/components/IAISwitch.tsx @@ -10,7 +10,6 @@ import { interface Props extends SwitchProps { label?: string; width?: string | number; - styleClass?: string; formControlProps?: FormControlProps; formLabelProps?: FormLabelProps; } @@ -25,34 +24,22 @@ const IAISwitch = (props: Props) => { width = 'auto', formControlProps, formLabelProps, - styleClass, ...rest } = props; return ( - + {label} - + ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx index 39e6578cc8..28d9d32a71 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Box, Flex, Heading } from '@chakra-ui/react'; import { useHotkeys } from 'react-hotkeys-hook'; type ImageUploadOverlayProps = { @@ -11,7 +11,7 @@ type ImageUploadOverlayProps = { const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { const { isDragAccept, - isDragReject, + isDragReject: _isDragAccept, overlaySecondaryText, setIsHandlingUpload, } = props; @@ -21,19 +21,42 @@ const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { }); return ( -
        - {isDragAccept && ( -
        + + + {isDragAccept ? ( Upload Image{overlaySecondaryText} -
        - )} - {isDragReject && ( -
        - Invalid Upload - Must be single JPEG or PNG image -
        - )} -
        + ) : ( + <> + Invalid Upload + Must be single JPEG or PNG image + + )} + + ); }; export default ImageUploadOverlay; diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.scss b/invokeai/frontend/web/src/common/components/ImageUploader.scss deleted file mode 100644 index ee4b31ace7..0000000000 --- a/invokeai/frontend/web/src/common/components/ImageUploader.scss +++ /dev/null @@ -1,74 +0,0 @@ -.dropzone-container { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - z-index: 999; - backdrop-filter: blur(20px); - - .dropzone-overlay { - opacity: 0.5; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - row-gap: 1rem; - align-items: center; - justify-content: center; - background-color: var(--background-color); - - &.is-drag-accept { - box-shadow: inset 0 0 20rem 1rem var(--accent-color); - } - - &.is-drag-reject { - box-shadow: inset 0 0 20rem 1rem var(--status-bad-color); - } - - &.is-handling-upload { - box-shadow: inset 0 0 20rem 1rem var(--status-working-color); - } - } -} - -.image-uploader-button-outer { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - border-radius: 0.5rem; - color: var(--tab-list-text-inactive); - background-color: var(--background-color); - - &:hover { - background-color: var(--background-color-light); - } -} - -.image-upload-button-inner { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; -} - -.image-upload-button { - display: flex; - flex-direction: column; - row-gap: 2rem; - align-items: center; - justify-content: center; - text-align: center; - - svg { - width: 4rem; - height: 4rem; - } - h2 { - font-size: 1.2rem; - } -} diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.tsx b/invokeai/frontend/web/src/common/components/ImageUploader.tsx index 40e31c3947..5397de6ea6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploader.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploader.tsx @@ -1,4 +1,4 @@ -import { useToast } from '@chakra-ui/react'; +import { Box, useToast } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import useImageUploader from 'common/hooks/useImageUploader'; @@ -139,7 +139,7 @@ const ImageUploader = (props: ImageUploaderProps) => { return ( -
        { // Bail out if user hits spacebar - do not open the uploader @@ -156,7 +156,7 @@ const ImageUploader = (props: ImageUploaderProps) => { setIsHandlingUpload={setIsHandlingUpload} /> )} -
        +
        ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx index 1a989b8c8e..6179efe5e6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Flex, Heading, Icon } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useContext } from 'react'; import { FaUpload } from 'react-icons/fa'; @@ -16,15 +16,38 @@ const ImageUploaderButton = (props: ImageUploaderButtonProps) => { }; return ( -
        -
        - - Click or Drag and Drop -
        -
        + + + Click or Drag and Drop + + ); }; diff --git a/invokeai/frontend/web/src/common/components/SubItemHook.tsx b/invokeai/frontend/web/src/common/components/SubItemHook.tsx deleted file mode 100644 index cca79a12ef..0000000000 --- a/invokeai/frontend/web/src/common/components/SubItemHook.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Box } from '@chakra-ui/react'; - -interface SubItemHookProps { - active?: boolean; - width?: string | number; - height?: string | number; - side?: 'left' | 'right'; -} - -export default function SubItemHook(props: SubItemHookProps) { - const { - active = true, - width = '1rem', - height = '1.3rem', - side = 'right', - } = props; - return ( - <> - {side === 'right' && ( - - )} - {side === 'left' && ( - - )} - - ); -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx index 65dc277ed7..c86aa767dd 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx @@ -1,11 +1,27 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function NodesWIP() { const { t } = useTranslation(); return ( -
        -

        {t('common.nodes')}

        -

        {t('common.nodesDesc')}

        -
        + + + {t('common.nodes')} + + {t('common.nodesDesc')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx index fbdfb4b8a5..c98fa5a82b 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx @@ -1,13 +1,29 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export const PostProcessingWIP = () => { const { t } = useTranslation(); return ( -
        -

        {t('common.postProcessing')}

        -

        {t('common.postProcessDesc1')}

        -

        {t('common.postProcessDesc2')}

        -

        {t('common.postProcessDesc3')}

        -
        + + + {t('common.postProcessing')} + + {t('common.postProcessDesc1')} + {t('common.postProcessDesc2')} + {t('common.postProcessDesc3')} + + + ); }; diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx index ff564234a5..23c3209932 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx @@ -1,16 +1,28 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function TrainingWIP() { const { t } = useTranslation(); return ( -
        -

        {t('common.training')}

        -

        - {t('common.trainingDesc1')} -
        -
        - {t('common.trainingDesc2')} -

        -
        + + + {t('common.training')} + + {t('common.trainingDesc1')} + {t('common.trainingDesc2')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss deleted file mode 100644 index 2a17c7bd0a..0000000000 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss +++ /dev/null @@ -1,24 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.work-in-progress { - display: grid; - width: 100%; - height: $app-content-height; - grid-auto-rows: max-content; - background-color: var(--background-color-secondary); - border-radius: 0.4rem; - place-content: center; - place-items: center; - row-gap: 1rem; - - h1 { - font-size: 2rem; - font-weight: bold; - } - - p { - text-align: center; - max-width: 50rem; - color: var(--subtext-color-bright); - } -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx new file mode 100644 index 0000000000..deb9110d56 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx @@ -0,0 +1,24 @@ +import { Flex } from '@chakra-ui/react'; +import { ReactNode } from 'react'; + +type WorkInProgressProps = { + children: ReactNode; +}; + +const WorkInProgress = (props: WorkInProgressProps) => { + const { children } = props; + + return ( + + {children} + + ); +}; + +export default WorkInProgress; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss deleted file mode 100644 index 4a1418392e..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss +++ /dev/null @@ -1,62 +0,0 @@ -.invokeai__slider-root { - position: relative; - display: flex; - align-items: center; - user-select: none; - touch-action: none; - width: 200px; - - &[data-orientation='horizontal'] { - height: 20px; - } - - &[data-orientation='vertical'] { - width: 20px; - height: 200px; - } - - .invokeai__slider-track { - background-color: black; - position: relative; - flex-grow: 1; - border-radius: 9999px; - - &[data-orientation='horizontal'] { - height: 0.25rem; - } - - &[data-orientation='vertical'] { - width: 0.25rem; - } - - .invokeai__slider-range { - position: absolute; - background-color: white; - border-radius: 9999px; - height: 100%; - } - } - - .invokeai__slider-thumb { - display: flex; - align-items: center; - - .invokeai__slider-thumb-div { - all: unset; - display: block; - width: 1rem; - height: 1rem; - background-color: white; - box-shadow: 0 2px 10px rgba(0, 2, 10, 0.3); - border-radius: 100%; - - &:hover { - background-color: violet; - } - - &:focus { - box-shadow: 0 0 0 5px rgba(0, 2, 10, 0.3); - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx deleted file mode 100644 index 52faeb18d3..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { Tooltip } from '@chakra-ui/react'; -import * as Slider from '@radix-ui/react-slider'; - -type IAISliderProps = Slider.SliderProps & { - value: number[]; - tooltipLabel?: string; - orientation?: 'horizontal' | 'vertial'; - trackProps?: Slider.SliderTrackProps; - rangeProps?: Slider.SliderRangeProps; - thumbProps?: Slider.SliderThumbProps; -}; - -const _IAISlider = (props: IAISliderProps) => { - const { - value, - tooltipLabel, - orientation, - trackProps, - rangeProps, - thumbProps, - ...rest - } = props; - return ( - - - - - - -
        - {/*}> - {value && value[0]} - */} - - - - ); -}; - -export default _IAISlider; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss deleted file mode 100644 index 7d0ca8455c..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__tooltip-content { - padding: 0.5rem; - background-color: grey; - border-radius: 0.25rem; - .invokeai__tooltip-arrow { - background-color: grey; - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx deleted file mode 100644 index 539751a8ca..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import * as Tooltip from '@radix-ui/react-tooltip'; -import { ReactNode } from 'react'; - -type IAITooltipProps = Tooltip.TooltipProps & { - trigger: ReactNode; - children: ReactNode; - triggerProps?: Tooltip.TooltipTriggerProps; - contentProps?: Tooltip.TooltipContentProps; - arrowProps?: Tooltip.TooltipArrowProps; -}; - -const IAITooltip = (props: IAITooltipProps) => { - const { trigger, children, triggerProps, contentProps, arrowProps, ...rest } = - props; - - return ( - - - {trigger} - - { - e.preventDefault(); - }} - className="invokeai__tooltip-content" - > - - {children} - - - - - ); -}; - -export default IAITooltip; diff --git a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx index 711d23366a..4898eee899 100644 --- a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx @@ -13,5 +13,8 @@ const ImageToImageIcon = createIcon({ /> ), + defaultProps: { + boxSize: '24px', + }, }); export default ImageToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx index 273deaa8cd..539c33f998 100644 --- a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx @@ -11,6 +11,9 @@ const NodesIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default NodesIcon; diff --git a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx index 29f474b079..b4000568b2 100644 --- a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx @@ -11,6 +11,9 @@ const PostprocessingIcon = createIcon({ d="M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default PostprocessingIcon; diff --git a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx index f6148ea49c..325ea54dda 100644 --- a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx @@ -13,6 +13,9 @@ const TextToImageIcon = createIcon({ ), + defaultProps: { + boxSize: '24px', + }, }); export default TextToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx index a6bf178aab..f925013138 100644 --- a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx @@ -11,6 +11,9 @@ const TrainingIcon = createIcon({ d="M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default TrainingIcon; diff --git a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx index daa8ecf8a9..3cedec04a4 100644 --- a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx @@ -11,6 +11,9 @@ const UnifiedCanvasIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default UnifiedCanvasIcon; diff --git a/invokeai/frontend/web/src/common/util/parameterTranslation.ts b/invokeai/frontend/web/src/common/util/parameterTranslation.ts index f703a96f4a..07b8ac8ea1 100644 --- a/invokeai/frontend/web/src/common/util/parameterTranslation.ts +++ b/invokeai/frontend/web/src/common/util/parameterTranslation.ts @@ -144,8 +144,8 @@ export const frontendToBackendParameters = ( variationAmount, width, shouldUseSymmetry, - horizontalSymmetryTimePercentage, - verticalSymmetryTimePercentage, + horizontalSymmetrySteps, + verticalSymmetrySteps, } = generationState; const { @@ -185,17 +185,17 @@ export const frontendToBackendParameters = ( // Symmetry Settings if (shouldUseSymmetry) { - if (horizontalSymmetryTimePercentage > 0) { + if (horizontalSymmetrySteps > 0) { generationParameters.h_symmetry_time_pct = Math.max( 0, - Math.min(1, horizontalSymmetryTimePercentage / steps) + Math.min(1, horizontalSymmetrySteps / steps) ); } - if (horizontalSymmetryTimePercentage > 0) { + if (verticalSymmetrySteps > 0) { generationParameters.v_symmetry_time_pct = Math.max( 0, - Math.min(1, verticalSymmetryTimePercentage / steps) + Math.min(1, verticalSymmetrySteps / steps) ); } } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx index b57bc1cc16..657f407b5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx @@ -1,3 +1,4 @@ +import { Box, chakra, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { @@ -88,6 +89,10 @@ const selector = createSelector( } ); +const ChakraStage = chakra(Stage, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); + const IAICanvas = () => { const { isMaskEnabled, @@ -135,14 +140,26 @@ const IAICanvas = () => { useCanvasDragMove(); return ( -
        -
        - + + { visible={shouldShowBoundingBox && !isStaging} /> - + -
        -
        + + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx index 9ffed8d70a..e38debae83 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx @@ -1,7 +1,7 @@ // Grid drawing adapted from https://longviewcoder.com/2021/12/08/konva-a-better-grid/ -import { useColorMode } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; +import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { isEqual, range } from 'lodash'; @@ -26,10 +26,13 @@ const gridLinesColor = { dark: 'rgba(255, 255, 255, 0.2)', green: 'rgba(255, 255, 255, 0.2)', light: 'rgba(0, 0, 0, 0.2)', + ocean: 'rgba(136, 148, 184, 0.2)', }; const IAICanvasGrid = () => { - const { colorMode } = useColorMode(); + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); const { stageScale, stageCoordinates, stageDimensions } = useAppSelector(selector); const [gridLines, setGridLines] = useState([]); @@ -42,7 +45,8 @@ const IAICanvasGrid = () => { ); useLayoutEffect(() => { - const gridLineColor = gridLinesColor[colorMode]; + const gridLineColor = + gridLinesColor[currentTheme as keyof typeof gridLinesColor]; const { width, height } = stageDimensions; const { x, y } = stageCoordinates; @@ -108,7 +112,7 @@ const IAICanvasGrid = () => { )); setGridLines(xLines.concat(yLines)); - }, [stageScale, stageCoordinates, stageDimensions, colorMode, unscale]); + }, [stageScale, stageCoordinates, stageDimensions, currentTheme, unscale]); return {gridLines}; }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx index 9e07dce992..3062abae91 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx @@ -1,4 +1,4 @@ -import { Spinner } from '@chakra-ui/react'; +import { Flex, Spinner } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -70,9 +70,19 @@ const IAICanvasResizer = () => { ]); return ( -
        + -
        + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx index 60af853289..74d6382308 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx @@ -115,7 +115,7 @@ const IAICanvasStagingAreaToolbar = () => { return ( { aria-label={`${t('unifiedCanvas.previous')} (Left)`} icon={} onClick={handlePrevImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnFirstImage} /> { aria-label={`${t('unifiedCanvas.next')} (Right)`} icon={} onClick={handleNextImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnLastImage} /> { aria-label={`${t('unifiedCanvas.accept')} (Enter)`} icon={} onClick={handleAccept} - data-selected={true} + colorScheme="accent" /> { onClick={() => dispatch(setShouldShowStagingImage(!shouldShowStagingImage)) } - data-selected={true} + colorScheme="accent" /> { saveStagingAreaImageToGallery(currentStagingAreaImage.image.url) ) } - data-selected={true} + colorScheme="accent" /> } onClick={() => dispatch(discardStagedImages())} - data-selected={true} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" fontSize={20} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx index 83ee94520a..e886a3ad5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx @@ -1,3 +1,4 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -7,6 +8,8 @@ import { useTranslation } from 'react-i18next'; import roundToHundreth from '../util/roundToHundreth'; import IAICanvasStatusTextCursorPos from './IAICanvasStatusText/IAICanvasStatusTextCursorPos'; +const warningColor = 'var(--invokeai-colors-warning-500)'; + const selector = createSelector( [canvasSelector], (canvas) => { @@ -34,11 +37,10 @@ const selector = createSelector( (boundingBoxScaleMethod === 'manual' && scaledBoxWidth * scaledBoxHeight < 512 * 512) ) { - boundingBoxColor = 'var(--status-working-color)'; + boundingBoxColor = warningColor; } - const activeLayerColor = - layer === 'mask' ? 'var(--status-working-color)' : 'inherit'; + const activeLayerColor = layer === 'mask' ? warningColor : 'inherit'; return { activeLayerColor, @@ -87,55 +89,72 @@ const IAICanvasStatusText = () => { const { t } = useTranslation(); return ( -
        -
        + {`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`}
        -
        {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`}
        + >{`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`} + {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`} {shouldPreserveMaskedArea && ( -
        Preserve Masked Area: On -
        + )} {shouldShowBoundingBox && ( -
        {`${t( - 'unifiedcanvas:boundingBox' - )}: ${boundingBoxDimensionsString}`}
        + 'unifiedCanvas.boundingBox' + )}: ${boundingBoxDimensionsString}`} )} {shouldShowScaledBoundingBox && ( -
        {`${t( - 'unifiedcanvas:scaledBoundingBox' - )}: ${scaledBoundingBoxDimensionsString}`}
        + 'unifiedCanvas.scaledBoundingBox' + )}: ${scaledBoundingBoxDimensionsString}`} )} {shouldShowCanvasDebugInfo && ( <> -
        {`${t( - 'unifiedcanvas:boundingBoxPosition' - )}: ${boundingBoxCoordinatesString}`}
        -
        {`${t( - 'unifiedcanvas:canvasDimensions' - )}: ${canvasDimensionsString}`}
        -
        {`${t( - 'unifiedcanvas:canvasPosition' - )}: ${canvasCoordinatesString}`}
        + {`${t( + 'unifiedCanvas.boundingBoxPosition' + )}: ${boundingBoxCoordinatesString}`} + {`${t( + 'unifiedCanvas.canvasDimensions' + )}: ${canvasDimensionsString}`} + {`${t( + 'unifiedCanvas.canvasPosition' + )}: ${canvasCoordinatesString}`} )} -
        +
        ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx index c77d0cae65..2570290393 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -33,8 +34,8 @@ export default function IAICanvasStatusTextCursorPos() { const { t } = useTranslation(); return ( -
        {`${t( - 'unifiedcanvas:cursorPosition' - )}: ${cursorCoordinatesString}`}
        + {`${t( + 'unifiedCanvas.cursorPosition' + )}: ${cursorCoordinatesString}`} ); } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index bca6728b87..9326f52d2d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -111,17 +111,13 @@ const IAICanvasMaskOptions = () => { aria-label={t('unifiedCanvas.maskingOptions')} tooltip={t('unifiedCanvas.maskingOptions')} icon={} - style={ - layer === 'mask' - ? { backgroundColor: 'var(--accent-color)' } - : { backgroundColor: 'var(--btn-base-color)' } - } + isChecked={layer === 'mask'} isDisabled={isStaging} /> } > - + { } /> dispatch(setMaskColor(newColor))} /> } onClick={handleClearMask}> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx index 72af7f8261..0457d8844c 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx @@ -97,7 +97,7 @@ const IAICanvasSettingsButtonPopover = () => { /> } > - + { aria-label={`${t('unifiedCanvas.brush')} (B)`} tooltip={`${t('unifiedCanvas.brush')} (B)`} icon={} - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -192,7 +192,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (E)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -214,7 +214,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} /> @@ -228,8 +228,8 @@ const IAICanvasToolChooserOptions = () => { /> } > - - + + { /> dispatch(setBrushColor(newColor))} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx index 29fdc40975..4e53039e38 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup } from '@chakra-ui/react'; +import { ButtonGroup, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -68,7 +68,7 @@ export const selector = createSelector( } ); -const IAICanvasOutpaintingControls = () => { +const IAICanvasToolbar = () => { const dispatch = useAppDispatch(); const { isProcessing, @@ -230,7 +230,12 @@ const IAICanvasOutpaintingControls = () => { }; return ( -
        + { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> { tooltip={`${t('unifiedCanvas.clearCanvas')}`} icon={} onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" isDisabled={isStaging} /> -
        +
        ); }; -export default IAICanvasOutpaintingControls; +export default IAICanvasToolbar; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss deleted file mode 100644 index a48454bb8c..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss +++ /dev/null @@ -1,32 +0,0 @@ -.current-image-options { - width: 100%; - display: flex; - justify-content: center; - align-items: center; - column-gap: 0.5em; - - .current-image-send-to-popover, - .current-image-postprocessing-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - max-width: 25rem; - } - - .current-image-send-to-popover { - .invokeai__button { - place-content: start; - } - } - - .chakra-popover__popper { - z-index: 11; - } - - .delete-image-btn { - background-color: var(--btn-base-color); - svg { - fill: var(--btn-delete-image); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx index 92d6aa6d06..be59962556 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { ButtonGroup, Link, useToast } from '@chakra-ui/react'; +import { ButtonGroup, Flex, FlexProps, Link, useToast } from '@chakra-ui/react'; import { runESRGAN, runFacetool } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -102,11 +102,13 @@ const currentImageButtonsSelector = createSelector( } ); +type CurrentImageButtonsProps = FlexProps; + /** * Row of buttons for common actions: * Use as init image, use all params, use seed, upscale, fix faces, details, delete. */ -const CurrentImageButtons = () => { +const CurrentImageButtons = (props: CurrentImageButtonsProps) => { const dispatch = useAppDispatch(); const { isProcessing, @@ -395,7 +397,14 @@ const CurrentImageButtons = () => { }; return ( -
        + { /> } > -
        + { {t('parameters.downloadImage')} -
        +
        } @@ -456,7 +471,7 @@ const CurrentImageButtons = () => { ? `${t('parameters.openInViewer')} (Z)` : `${t('parameters.closeViewer')} (Z)` } - data-selected={isLightboxOpen} + isChecked={isLightboxOpen} onClick={handleLightBox} /> @@ -501,7 +516,12 @@ const CurrentImageButtons = () => { /> } > -
        + { > {t('parameters.restoreFaces')} -
        + { /> } > -
        + { > {t('parameters.upscaleImage')} -
        +
        @@ -548,7 +573,7 @@ const CurrentImageButtons = () => { icon={} tooltip={`${t('parameters.info')} (I)`} aria-label={`${t('parameters.info')} (I)`} - data-selected={shouldShowImageDetails} + isChecked={shouldShowImageDetails} onClick={handleClickShowImageDetails} /> @@ -559,10 +584,10 @@ const CurrentImageButtons = () => { tooltip={`${t('parameters.deleteImage')} (Del)`} aria-label={`${t('parameters.deleteImage')} (Del)`} isDisabled={!currentImage || !isConnected || isProcessing} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" /> -
        +
        ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss deleted file mode 100644 index 498da35ea6..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss +++ /dev/null @@ -1,83 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.current-image-area { - display: flex; - flex-direction: column; - height: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; -} - -.current-image-preview { - position: relative; - justify-content: center; - align-items: center; - display: flex; - width: 100%; - height: 100%; - - img { - border-radius: 0.5rem; - object-fit: contain; - max-width: 100%; - max-height: 100%; - height: auto; - position: absolute; - } -} - -.current-image-metadata { - grid-area: current-image-preview; -} - -.current-image-next-prev-buttons { - grid-area: current-image-content; - display: flex; - justify-content: space-between; - z-index: 1; - height: 100%; - width: 100%; - pointer-events: none; -} - -.next-prev-button-trigger-area { - width: 7rem; - height: 100%; - width: 15%; - display: grid; - align-items: center; - pointer-events: auto; - - &.prev-button-trigger-area { - justify-content: flex-start; - } - - &.next-button-trigger-area { - justify-content: flex-end; - } -} - -.next-prev-button { - font-size: 4rem; - fill: var(--white); - filter: drop-shadow(0 0 1rem var(--text-color-secondary)); - opacity: 70%; -} - -.current-image-display-placeholder { - background-color: var(--background-color-secondary); - display: grid; - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - border-radius: 0.5rem; - - svg { - width: 10rem; - height: 10rem; - color: var(--svg-color); - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx index a5e9683afd..6c46e14391 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx @@ -1,10 +1,6 @@ +import { Flex, Icon } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; -import { GalleryState } from 'features/gallery/store/gallerySlice'; -import { - activeTabNameSelector, - uiSelector, -} from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; import { MdPhoto } from 'react-icons/md'; @@ -13,14 +9,11 @@ import CurrentImageButtons from './CurrentImageButtons'; import CurrentImagePreview from './CurrentImagePreview'; export const currentImageDisplaySelector = createSelector( - [gallerySelector, uiSelector, activeTabNameSelector], - (gallery: GalleryState, ui, activeTabName) => { + [gallerySelector], + (gallery) => { const { currentImage, intermediateImage } = gallery; - const { shouldShowImageDetails } = ui; return { - activeTabName, - shouldShowImageDetails, hasAnImageToDisplay: currentImage || intermediateImage, }; }, @@ -35,23 +28,42 @@ export const currentImageDisplaySelector = createSelector( * Displays the current image if there is one, plus associated actions. */ const CurrentImageDisplay = () => { - const { hasAnImageToDisplay, activeTabName } = useAppSelector( - currentImageDisplaySelector - ); + const { hasAnImageToDisplay } = useAppSelector(currentImageDisplaySelector); return ( -
        + {hasAnImageToDisplay ? ( <> ) : ( -
        - -
        + + + )} -
        +
        ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx index 720df07f4a..0f9ffad325 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx @@ -1,47 +1,24 @@ -import { IconButton, Image } from '@chakra-ui/react'; +import { Flex, Image } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import { - GalleryCategory, - GalleryState, - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import { useAppSelector } from 'app/storeHooks'; +import { GalleryState } from 'features/gallery/store/gallerySlice'; import { uiSelector } from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; -import { useState } from 'react'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; import { gallerySelector } from '../store/gallerySelectors'; import ImageMetadataViewer from './ImageMetaDataViewer/ImageMetadataViewer'; +import NextPrevImageButtons from './NextPrevImageButtons'; export const imagesSelector = createSelector( [gallerySelector, uiSelector], (gallery: GalleryState, ui) => { - const { currentCategory, currentImage, intermediateImage } = gallery; + const { currentImage, intermediateImage } = gallery; const { shouldShowImageDetails } = ui; - const tempImages = - gallery.categories[ - currentImage ? (currentImage.category as GalleryCategory) : 'result' - ].images; - const currentImageIndex = tempImages.findIndex( - (i) => i.uuid === gallery?.currentImage?.uuid - ); - const imagesLength = tempImages.length; - return { imageToDisplay: intermediateImage ? intermediateImage : currentImage, isIntermediate: Boolean(intermediateImage), - viewerImageToDisplay: currentImage, - currentCategory, - isOnFirstImage: currentImageIndex === 0, - isOnLastImage: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, shouldShowImageDetails, - shouldShowPrevImageButton: currentImageIndex === 0, - shouldShowNextImageButton: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, }; }, { @@ -52,85 +29,44 @@ export const imagesSelector = createSelector( ); export default function CurrentImagePreview() { - const dispatch = useAppDispatch(); - - const { - isOnFirstImage, - isOnLastImage, - shouldShowImageDetails, - imageToDisplay, - isIntermediate, - } = useAppSelector(imagesSelector); - - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { shouldShowImageDetails, imageToDisplay, isIntermediate } = + useAppSelector(imagesSelector); return ( -
        + {imageToDisplay && ( )} - {!shouldShowImageDetails && ( -
        -
        - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> - )} -
        -
        - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
        -
        - )} + {!shouldShowImageDetails && } {shouldShowImageDetails && imageToDisplay && ( )} -
        +
        ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx index 8b759d9301..734dc3b682 100644 --- a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx @@ -5,11 +5,8 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, + forwardRef, Flex, - FormControl, - FormLabel, - Switch, Text, useDisclosure, } from '@chakra-ui/react'; @@ -17,6 +14,8 @@ import { createSelector } from '@reduxjs/toolkit'; import * as InvokeAI from 'app/invokeai'; import { deleteImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; +import IAISwitch from 'common/components/IAISwitch'; import { systemSelector } from 'features/system/store/systemSelectors'; import { setShouldConfirmOnDelete, @@ -27,7 +26,6 @@ import { isEqual } from 'lodash'; import { ChangeEvent, cloneElement, - forwardRef, ReactElement, SyntheticEvent, useRef, @@ -110,7 +108,7 @@ const DeleteImageModal = forwardRef( onClose={onClose} > - + Delete image @@ -121,28 +119,20 @@ const DeleteImageModal = forwardRef( Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to. - - - Don't ask me again - - - +
        - - + diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss deleted file mode 100644 index b6563f4d7b..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss +++ /dev/null @@ -1,100 +0,0 @@ -.hoverable-image { - display: flex; - justify-content: center; - transition: transform 0.2s ease-out; - - &:hover { - cursor: pointer; - border-radius: 0.5rem; - z-index: 2; - } - - .hoverable-image-image { - width: 100%; - height: 100%; - max-width: 100%; - max-height: 100%; - } - - .hoverable-image-delete-button { - position: absolute; - top: 0.25rem; - right: 0.25rem; - } - - .hoverable-image-content { - display: flex; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - - .hoverable-image-check { - fill: var(--status-good-color); - } - } - - .hoverable-image-icons { - position: absolute; - bottom: -2rem; - display: grid; - width: min-content; - grid-template-columns: repeat(2, max-content); - border-radius: 0.4rem; - background-color: var(--background-color-secondary); - padding: 0.2rem; - gap: 0.2rem; - grid-auto-rows: max-content; - - button { - width: 12px; - height: 12px; - border-radius: 0.2rem; - padding: 10px 0; - flex-shrink: 2; - svg { - width: 12px; - height: 12px; - } - } - } -} - -.hoverable-image-context-menu { - z-index: 15; - padding: 0.4rem; - border-radius: 0.25rem; - background-color: var(--context-menu-bg-color); - box-shadow: var(--context-menu-box-shadow); - - [role='menuitem'] { - font-size: 0.8rem; - line-height: 1rem; - border-radius: 3px; - display: flex; - align-items: center; - height: 1.75rem; - padding: 0 0.5rem; - position: relative; - user-select: none; - cursor: pointer; - outline: none; - - &[data-disabled] { - color: grey; - pointer-events: none; - cursor: not-allowed; - } - - &[data-warning] { - color: var(--status-bad-color); - } - - &[data-highlighted] { - background-color: var(--context-menu-bg-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx index e3e136ea5b..0d034ed976 100644 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx @@ -1,9 +1,15 @@ -import { Box, Icon, IconButton, Image, useToast } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { - setCurrentImage, - setShouldHoldGalleryOpen, -} from 'features/gallery/store/gallerySlice'; + Box, + Flex, + Icon, + Image, + MenuItem, + MenuList, + useTheme, + useToast, +} from '@chakra-ui/react'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { setCurrentImage } from 'features/gallery/store/gallerySlice'; import { setAllImageToImageParameters, setAllParameters, @@ -13,8 +19,7 @@ import { import { DragEvent, memo, useState } from 'react'; import { FaCheck, FaTrashAlt } from 'react-icons/fa'; import DeleteImageModal from './DeleteImageModal'; - -import * as ContextMenu from '@radix-ui/react-context-menu'; +import { ContextMenu } from 'chakra-ui-contextmenu'; import * as InvokeAI from 'app/invokeai'; import { resizeAndScaleCanvas, @@ -24,6 +29,8 @@ import { hoverableImageSelector } from 'features/gallery/store/gallerySelectors' import { setActiveTab } from 'features/ui/store/uiSlice'; import { useTranslation } from 'react-i18next'; import useSetBothPrompts from 'features/parameters/hooks/usePrompt'; +import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; +import IAIIconButton from 'common/components/IAIIconButton'; interface HoverableImageProps { image: InvokeAI.Image; @@ -53,6 +60,7 @@ const HoverableImage = memo((props: HoverableImageProps) => { const [isHovered, setIsHovered] = useState(false); const toast = useToast(); + const { direction } = useTheme(); const { t } = useTranslation(); const setBothPrompts = useSetBothPrompts(); @@ -156,110 +164,146 @@ const HoverableImage = memo((props: HoverableImageProps) => { const handleLightBox = () => { dispatch(setCurrentImage(image)); + dispatch(setIsLightboxOpen(true)); }; return ( - { - dispatch(setShouldHoldGalleryOpen(open)); - }} + + menuProps={{ size: 'sm', isLazy: true }} + renderMenu={() => ( + + + {t('parameters.openInViewer')} + + + {t('parameters.usePrompt')} + + + + {t('parameters.useSeed')} + + + {t('parameters.useAll')} + + + {t('parameters.useInitImg')} + + + {t('parameters.sendToImg2Img')} + + + {t('parameters.sendToUnifiedCanvas')} + + + +

        {t('parameters.deleteImage')}

        +
        +
        +
        + )} > - + {(ref) => ( -
        + {isSelected && ( )} -
        +
        {isHovered && galleryImageMinimumWidth >= 64 && ( -
        + - } size="xs" - variant="imageHoverIconButton" fontSize={14} isDisabled={!mayDeleteImage} /> -
        + )} - - { - e.detail.originalEvent.preventDefault(); - }} - > - - {t('parameters.openInViewer')} - - - {t('parameters.usePrompt')} - - - - {t('parameters.useSeed')} - - - {t('parameters.useAll')} - - - {t('parameters.useInitImg')} - - - {t('parameters.sendToImg2Img')} - - - {t('parameters.sendToUnifiedCanvas')} - - - -

        {t('parameters.deleteImage')}

        -
        -
        -
        - + )} + ); }, memoEqualityCheck); diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css new file mode 100644 index 0000000000..559248dd0f --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css @@ -0,0 +1,35 @@ +.ltr-image-gallery-css-transition-enter { + transform: translateX(150%); +} + +.ltr-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.ltr-image-gallery-css-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-enter { + transform: translateX(-150%); +} + +.rtl-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.rtl-image-gallery-css-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss deleted file mode 100644 index f12fcd418a..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss +++ /dev/null @@ -1,187 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.image-gallery-wrapper-enter { - transform: translateX(150%); -} - -.image-gallery-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper-exit { - transform: translateX(0); -} - -.image-gallery-wrapper-exit-active { - transform: translateX(150%); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper { - &[data-pinned='false'] { - position: fixed; - height: 100vh; - top: 0; - right: 0; - - .image-gallery-popup { - border-radius: 0; - box-shadow: 0 0 1rem var(--text-color-a3); - .image-gallery-container { - max-height: calc($app-height + 5rem); - } - } - } - - .image-gallery-popup { - background-color: var(--background-color-secondary); - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - border-radius: 0.5rem; - border-left-width: 0.3rem; - - border-color: var(--tab-list-text-inactive); - - &[data-resize-alert='true'] { - border-color: var(--status-bad-color); - } - - .image-gallery-header { - display: flex; - align-items: center; - column-gap: 0.5rem; - justify-content: space-between; - - .image-gallery-header-right-icons { - display: flex; - flex-direction: row; - column-gap: 0.5rem; - } - - .image-gallery-icon-btn { - background-color: var(--btn-load-more); - &:hover { - background-color: var(--btn-load-more-hover); - } - } - - .image-gallery-settings-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - div { - display: flex; - column-gap: 0.5rem; - align-items: center; - justify-content: space-between; - } - } - - h1 { - font-weight: bold; - } - } - - .image-gallery-container { - display: flex; - flex-direction: column; - max-height: $app-gallery-popover-height; - overflow-y: scroll; - @include HideScrollbar; - - .image-gallery-container-placeholder { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - background-color: var(--background-color); - border-radius: 0.5rem; - place-items: center; - padding: 2rem; - text-align: center; - - p { - color: var(--subtext-color-bright); - font-family: Inter; - } - - svg { - width: 4rem; - height: 4rem; - color: var(--svg-color); - } - } - - .image-gallery-load-more-btn { - background-color: var(--btn-load-more); - font-size: 0.85rem; - padding: 0.5rem; - margin-top: 1rem; - - &:disabled { - &:hover { - background-color: var(--btn-load-more); - } - } - - &:hover { - background-color: var(--btn-load-more-hover); - } - } - } - } -} - -.image-gallery-category-btn-group { - width: max-content; - column-gap: 0; - justify-content: stretch; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - flex-grow: 1; - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - } -} - -// from https://css-tricks.com/a-grid-of-logos-in-squares/ -.image-gallery { - display: grid; - grid-gap: 0.5rem; - .hoverable-image { - padding: 0.5rem; - position: relative; - &::before { - // for apsect ratio - content: ''; - display: block; - padding-bottom: 100%; - } - .hoverable-image-image { - position: absolute; - max-width: 100%; - - // Alternate Version - // top: 0; - // bottom: 0; - // right: 0; - // left: 0; - // margin: auto; - - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx index 40de29dd36..1b14d9ff67 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx @@ -1,7 +1,14 @@ -import { Button } from '@chakra-ui/button'; import { NumberSize, Resizable } from 're-resizable'; -import { ButtonGroup } from '@chakra-ui/react'; +import { + Box, + ButtonGroup, + Flex, + Grid, + Icon, + chakra, + useTheme, +} from '@chakra-ui/react'; import { requestImages } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -17,7 +24,6 @@ import { setCurrentCategory, setGalleryImageMinimumWidth, setGalleryImageObjectFit, - setGalleryScrollPosition, setGalleryWidth, setShouldAutoSwitchToNewImages, setShouldHoldGalleryOpen, @@ -38,12 +44,19 @@ import React, { } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; -import { BiReset } from 'react-icons/bi'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { FaImage, FaUser, FaWrench } from 'react-icons/fa'; import { MdPhotoLibrary } from 'react-icons/md'; import { CSSTransition } from 'react-transition-group'; import HoverableImage from './HoverableImage'; +import { APP_GALLERY_HEIGHT_PINNED } from 'theme/util/constants'; + +import './ImageGallery.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; + +const ChakraResizeable = chakra(Resizable, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); const GALLERY_SHOW_BUTTONS_MIN_WIDTH = 320; const GALLERY_IMAGE_WIDTH_OFFSET = 40; @@ -64,6 +77,7 @@ const LIGHTBOX_GALLERY_WIDTH = 400; export default function ImageGallery() { const dispatch = useAppDispatch(); + const { direction } = useTheme(); const { t } = useTranslation(); @@ -73,7 +87,6 @@ export default function ImageGallery() { currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryGridTemplateColumns, activeTabName, @@ -107,12 +120,11 @@ export default function ImageGallery() { const timeoutIdRef = useRef(null); useEffect(() => { - if (galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH) { - setShouldShowButtons(false); - } + setShouldShowButtons(galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH); }, [galleryWidth]); const handleSetShouldPinGallery = () => { + !shouldPinGallery && dispatch(setShouldShowGallery(true)); dispatch(setShouldPinGallery(!shouldPinGallery)); dispatch(setDoesCanvasNeedScaling(true)); }; @@ -129,11 +141,6 @@ export default function ImageGallery() { const handleCloseGallery = useCallback(() => { dispatch(setShouldShowGallery(false)); dispatch(setShouldHoldGalleryOpen(false)); - dispatch( - setGalleryScrollPosition( - galleryContainerRef.current ? galleryContainerRef.current.scrollTop : 0 - ) - ); setTimeout( () => shouldPinGallery && dispatch(setDoesCanvasNeedScaling(true)), 400 @@ -239,12 +246,6 @@ export default function ImageGallery() { [galleryImageMinimumWidth] ); - // set gallery scroll position - useEffect(() => { - if (!galleryContainerRef.current) return; - galleryContainerRef.current.scrollTop = galleryScrollPosition; - }, [galleryScrollPosition, shouldShowGallery]); - useEffect(() => { function handleClickOutside(e: MouseEvent) { if ( @@ -267,29 +268,63 @@ export default function ImageGallery() { in={shouldShowGallery || shouldHoldGalleryOpen} unmountOnExit timeout={200} - classNames="image-gallery-wrapper" + classNames={`${direction}-image-gallery-css-transition`} > -
        - -
        + {shouldShowButtons ? ( <> dispatch(setCurrentCategory('result'))} + flexGrow={1} > {t('gallery.generations')} dispatch(setCurrentCategory('user'))} + flexGrow={1} > {t('gallery.uploads')} @@ -414,14 +452,14 @@ export default function ImageGallery() { } onClick={() => dispatch(setCurrentCategory('result'))} /> } onClick={() => dispatch(setCurrentCategory('user'))} /> @@ -429,96 +467,85 @@ export default function ImageGallery() { )} -
        + } - className="image-gallery-icon-btn" - cursor="pointer" /> } > -
        -
        - - dispatch(setGalleryImageMinimumWidth(64))} - icon={} - data-selected={shouldPinGallery} - styleClass="image-gallery-icon-btn" - /> -
        -
        - - dispatch( - setGalleryImageObjectFit( - galleryImageObjectFit === 'contain' - ? 'cover' - : 'contain' - ) + + + dispatch(setGalleryImageMinimumWidth(64)) + } + /> + + dispatch( + setGalleryImageObjectFit( + galleryImageObjectFit === 'contain' + ? 'cover' + : 'contain' ) - } - /> -
        -
        - ) => - dispatch( - setShouldAutoSwitchToNewImages(e.target.checked) - ) - } - /> -
        -
        - ) => - dispatch( - setShouldUseSingleGalleryColumn(e.target.checked) - ) - } - /> -
        -
        + ) + } + /> + ) => + dispatch(setShouldAutoSwitchToNewImages(e.target.checked)) + } + /> + ) => + dispatch( + setShouldUseSingleGalleryColumn(e.target.checked) + ) + } + /> +
        : } /> -
        -
        -
        + + + {images.length || areMoreImagesAvailable ? ( <> -
        {images.map((image) => { @@ -532,34 +559,51 @@ export default function ImageGallery() { /> ); })} -
        - + ) : ( -
        - + +

        {t('gallery.noImagesInGallery')}

        -
        +
        )} -
        -
        + + {isResizing && ( -
        )} -
        + ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss deleted file mode 100644 index 8b59a33579..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-metadata-viewer { - position: absolute; - top: 0; - width: 100%; - border-radius: 0.5rem; - padding: 1rem; - background-color: var(--metadata-bg-color); - overflow: scroll; - max-height: $app-metadata-height; - height: 100%; - z-index: 10; -} - -.image-json-viewer { - border-radius: 0.5rem; - margin: 0 0.5rem 1rem 0.5rem; - padding: 1rem; - overflow-x: scroll; - word-break: break-all; - background-color: var(--metadata-json-bg-color); -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index a06ebc0bc1..192b832454 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -1,5 +1,6 @@ import { ExternalLinkIcon } from '@chakra-ui/icons'; import { + Box, Center, Flex, Heading, @@ -43,6 +44,7 @@ import { memo } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaCopy } from 'react-icons/fa'; import { IoArrowUndoCircleOutline } from 'react-icons/io5'; +import { APP_METADATA_HEIGHT } from 'theme/util/constants'; type MetadataItemProps = { isLink?: boolean; @@ -163,7 +165,22 @@ const ImageMetadataViewer = memo( const metadataJSON = JSON.stringify(image.metadata, null, 2); return ( -
        + File: @@ -316,7 +333,7 @@ const ImageMetadataViewer = memo( if (postprocess.type === 'esrgan') { const { scale, strength, denoise_str } = postprocess; return ( - + {`${ i + 1 }: Upscale (ESRGAN)`} @@ -346,7 +363,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'gfpgan') { const { strength } = postprocess; return ( - + {`${ i + 1 }: Face restoration (GFPGAN)`} @@ -364,7 +381,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'codeformer') { const { strength, fidelity } = postprocess; return ( - + {`${ i + 1 }: Face restoration (Codeformer)`} @@ -417,9 +434,21 @@ const ImageMetadataViewer = memo( Metadata JSON: -
        +
        {metadataJSON}
        -
        +
        ) : ( @@ -430,7 +459,7 @@ const ImageMetadataViewer = memo( )} -
        + ); }, memoEqualityCheck diff --git a/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx new file mode 100644 index 0000000000..0cf41cb057 --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx @@ -0,0 +1,130 @@ +import { ChakraProps, Flex, Grid, IconButton } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { isEqual } from 'lodash'; +import { useState } from 'react'; +import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; +import { gallerySelector } from '../store/gallerySelectors'; +import { + GalleryCategory, + selectNextImage, + selectPrevImage, +} from '../store/gallerySlice'; + +const nextPrevButtonTriggerAreaStyles: ChakraProps['sx'] = { + height: '100%', + width: '15%', + alignItems: 'center', + pointerEvents: 'auto', +}; +const nextPrevButtonStyles: ChakraProps['sx'] = { + color: 'base.100', +}; + +export const nextPrevImageButtonsSelector = createSelector( + gallerySelector, + (gallery) => { + const { currentImage } = gallery; + + const tempImages = + gallery.categories[ + currentImage ? (currentImage.category as GalleryCategory) : 'result' + ].images; + + const currentImageIndex = tempImages.findIndex( + (i) => i.uuid === gallery?.currentImage?.uuid + ); + const imagesLength = tempImages.length; + + return { + isOnFirstImage: currentImageIndex === 0, + isOnLastImage: + !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); + +const NextPrevImageButtons = () => { + const dispatch = useAppDispatch(); + + const { isOnFirstImage, isOnLastImage } = useAppSelector( + nextPrevImageButtonsSelector + ); + + const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = + useState(false); + + const handleCurrentImagePreviewMouseOver = () => { + setShouldShowNextPrevButtons(true); + }; + + const handleCurrentImagePreviewMouseOut = () => { + setShouldShowNextPrevButtons(false); + }; + + const handleClickPrevButton = () => { + dispatch(selectPrevImage()); + }; + + const handleClickNextButton = () => { + dispatch(selectNextImage()); + }; + + return ( + + + {shouldShowNextPrevButtons && !isOnFirstImage && ( + } + variant="unstyled" + onClick={handleClickPrevButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + {shouldShowNextPrevButtons && !isOnLastImage && ( + } + variant="unstyled" + onClick={handleClickNextButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + ); +}; + +export default NextPrevImageButtons; diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts index fc1cb5d996..751eee14d7 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts @@ -19,7 +19,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, shouldHoldGalleryOpen, @@ -34,7 +33,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, galleryGridTemplateColumns: shouldUseSingleGalleryColumn diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts index 52f8c54dc8..c96a3c9aac 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts @@ -31,7 +31,6 @@ export interface GalleryState { }; shouldPinGallery: boolean; shouldShowGallery: boolean; - galleryScrollPosition: number; galleryImageMinimumWidth: number; galleryImageObjectFit: GalleryImageObjectFitType; shouldHoldGalleryOpen: boolean; @@ -49,7 +48,6 @@ const initialState: GalleryState = { currentImageUuid: '', shouldPinGallery: true, shouldShowGallery: true, - galleryScrollPosition: 0, galleryImageMinimumWidth: 64, galleryImageObjectFit: 'cover', shouldHoldGalleryOpen: false, @@ -242,9 +240,6 @@ export const gallerySlice = createSlice({ state.shouldShowGallery = action.payload; }, - setGalleryScrollPosition: (state, action: PayloadAction) => { - state.galleryScrollPosition = action.payload; - }, setGalleryImageMinimumWidth: (state, action: PayloadAction) => { state.galleryImageMinimumWidth = action.payload; }, @@ -286,7 +281,6 @@ export const { selectPrevImage, setShouldPinGallery, setShouldShowGallery, - setGalleryScrollPosition, setGalleryImageMinimumWidth, setGalleryImageObjectFit, setShouldHoldGalleryOpen, diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss deleted file mode 100644 index 99df6b0756..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss +++ /dev/null @@ -1,89 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.lightbox-container { - width: 100%; - height: 100%; - color: var(--text-color); - overflow: hidden; - position: absolute; - left: 0; - top: 0; - background-color: var(--background-color-secondary); - z-index: 30; - animation: popIn 0.3s ease-in; - - .image-gallery-wrapper { - max-height: 100% !important; - - .image-gallery-container { - max-height: calc(100vh - 5rem); - } - } - - .current-image-options { - z-index: 2; - position: absolute; - top: 1rem; - } - - .image-metadata-viewer { - left: 0; - max-height: 100%; - } -} - -.lightbox-close-btn { - z-index: 3; - position: absolute; - left: 1rem; - top: 1rem; - @include BaseButton; -} - -.lightbox-display-container { - display: flex; - flex-direction: row; -} - -.lightbox-preview-wrapper { - overflow: hidden; - background-color: var(--background-color-secondary); - display: grid; - grid-template-columns: auto max-content; - place-items: center; - width: 100vw; - height: 100vh; - - .current-image-next-prev-buttons { - position: absolute; - } - - .lightbox-image { - grid-area: lightbox-content; - border-radius: 0.5rem; - } - - .lightbox-image-options { - position: absolute; - z-index: 2; - left: 1rem; - top: 4.5rem; - user-select: none; - border-radius: 0.5rem; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } -} - -@keyframes popIn { - from { - opacity: 0; - filter: blur(100); - } - to { - opacity: 1; - filter: blur(0); - } -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx index d712b8d97e..79b2655583 100644 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx +++ b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx @@ -1,21 +1,40 @@ -import { IconButton } from '@chakra-ui/react'; +import { Box, Flex, Grid } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import CurrentImageButtons from 'features/gallery/components/CurrentImageButtons'; -import { imagesSelector } from 'features/gallery/components/CurrentImagePreview'; import ImageGallery from 'features/gallery/components/ImageGallery'; import ImageMetadataViewer from 'features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer'; -import { - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import NextPrevImageButtons from 'features/gallery/components/NextPrevImageButtons'; +import { gallerySelector } from 'features/gallery/store/gallerySelectors'; import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; -import { useState } from 'react'; +import { uiSelector } from 'features/ui/store/uiSelectors'; +import { isEqual } from 'lodash'; import { useHotkeys } from 'react-hotkeys-hook'; import { BiExit } from 'react-icons/bi'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; -import ReactPanZoom from './ReactPanZoom'; +import { TransformWrapper } from 'react-zoom-pan-pinch'; +import useImageTransform from '../hooks/useImageTransform'; +import ReactPanZoomButtons from './ReactPanZoomButtons'; +import ReactPanZoomImage from './ReactPanZoomImage'; + +export const lightboxSelector = createSelector( + [gallerySelector, uiSelector], + (gallery, ui) => { + const { currentImage } = gallery; + const { shouldShowImageDetails } = ui; + + return { + viewerImageToDisplay: currentImage, + shouldShowImageDetails, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); export default function Lightbox() { const dispatch = useAppDispatch(); @@ -24,30 +43,18 @@ export default function Lightbox() { ); const { - viewerImageToDisplay, - shouldShowImageDetails, - isOnFirstImage, - isOnLastImage, - } = useAppSelector(imagesSelector); + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + } = useImageTransform(); - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { viewerImageToDisplay, shouldShowImageDetails } = + useAppSelector(lightboxSelector); useHotkeys( 'Esc', @@ -58,66 +65,106 @@ export default function Lightbox() { ); return ( -
        - } - aria-label="Exit Viewer" - className="lightbox-close-btn" - onClick={() => { - dispatch(setIsLightboxOpen(false)); + + + > + + } + aria-label="Exit Viewer" + onClick={() => { + dispatch(setIsLightboxOpen(false)); + }} + fontSize={20} + /> + + -
        -
        - - {!shouldShowImageDetails && ( -
        -
        - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> + + + {viewerImageToDisplay && ( + <> + + {shouldShowImageDetails && ( + )} -
        -
        + )} + + {!shouldShowImageDetails && ( + - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
        -
        - )} - {viewerImageToDisplay && ( - <> - - {shouldShowImageDetails && ( - - )} - - )} -
        - -
        -
        + + + )} + + + + + + + + + ); } diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx deleted file mode 100644 index 9401a97874..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import IAIIconButton from 'common/components/IAIIconButton'; -import * as React from 'react'; -import { - BiReset, - BiRotateLeft, - BiRotateRight, - BiZoomIn, - BiZoomOut, -} from 'react-icons/bi'; -import { MdFlip } from 'react-icons/md'; -import { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch'; - -type ReactPanZoomProps = { - image: string; - styleClass?: string; - alt?: string; - ref?: React.Ref; -}; - -export default function ReactPanZoom({ - image, - alt, - ref, - styleClass, -}: ReactPanZoomProps) { - const [rotation, setRotation] = React.useState(0); - const [flip, setFlip] = React.useState(false); - - const rotateLeft = () => { - if (rotation === -3) { - setRotation(0); - } else { - setRotation(rotation - 1); - } - }; - - const rotateRight = () => { - if (rotation === 3) { - setRotation(0); - } else { - setRotation(rotation + 1); - } - }; - - const flipImage = () => { - setFlip(!flip); - }; - - return ( - - {({ zoomIn, zoomOut, resetTransform, centerView }) => ( - <> -
        - } - aria-label="Zoom In" - tooltip="Zoom In" - onClick={() => zoomIn()} - fontSize={20} - /> - - } - aria-label="Zoom Out" - tooltip="Zoom Out" - onClick={() => zoomOut()} - fontSize={20} - /> - - } - aria-label="Rotate Left" - tooltip="Rotate Left" - onClick={rotateLeft} - fontSize={20} - /> - - } - aria-label="Rotate Right" - tooltip="Rotate Right" - onClick={rotateRight} - fontSize={20} - /> - - } - aria-label="Flip Image" - tooltip="Flip Image" - onClick={flipImage} - fontSize={20} - /> - - } - aria-label="Reset" - tooltip="Reset" - onClick={() => { - resetTransform(); - setRotation(0); - setFlip(false); - }} - fontSize={20} - /> -
        - - {alt} centerView(1, 0, 'easeOut')} - /> - - - )} -
        - ); -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx new file mode 100644 index 0000000000..fffe609ab7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx @@ -0,0 +1,94 @@ +import { ButtonGroup } from '@chakra-ui/react'; +import IAIIconButton from 'common/components/IAIIconButton'; +import { + BiReset, + BiRotateLeft, + BiRotateRight, + BiZoomIn, + BiZoomOut, +} from 'react-icons/bi'; +import { MdFlip } from 'react-icons/md'; +import { useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomButtonsProps = { + flipHorizontally: () => void; + flipVertically: () => void; + rotateCounterClockwise: () => void; + rotateClockwise: () => void; + reset: () => void; +}; + +const ReactPanZoomButtons = ({ + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, +}: ReactPanZoomButtonsProps) => { + const { zoomIn, zoomOut, resetTransform } = useTransformContext(); + + return ( + + } + aria-label="Zoom In" + tooltip="Zoom In" + onClick={() => zoomIn()} + fontSize={20} + /> + + } + aria-label="Zoom Out" + tooltip="Zoom Out" + onClick={() => zoomOut()} + fontSize={20} + /> + + } + aria-label="Rotate Counter-Clockwise" + tooltip="Rotate Counter-Clockwise" + onClick={rotateCounterClockwise} + fontSize={20} + /> + + } + aria-label="Rotate Clockwise" + tooltip="Rotate Clockwise" + onClick={rotateClockwise} + fontSize={20} + /> + + } + aria-label="Flip Horizontally" + tooltip="Flip Horizontally" + onClick={flipHorizontally} + fontSize={20} + /> + + } + aria-label="Flip Vertically" + tooltip="Flip Vertically" + onClick={flipVertically} + fontSize={20} + /> + + } + aria-label="Reset" + tooltip="Reset" + onClick={() => { + resetTransform(); + reset(); + }} + fontSize={20} + /> + + ); +}; + +export default ReactPanZoomButtons; diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx new file mode 100644 index 0000000000..db6a02ae71 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx @@ -0,0 +1,45 @@ +import * as React from 'react'; +import { TransformComponent, useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomProps = { + image: string; + styleClass?: string; + alt?: string; + ref?: React.Ref; + rotation: number; + scaleX: number; + scaleY: number; +}; + +export default function ReactPanZoomImage({ + image, + alt, + ref, + styleClass, + rotation, + scaleX, + scaleY, +}: ReactPanZoomProps) { + const { centerView } = useTransformContext(); + + return ( + + {alt} centerView(1, 0, 'easeOut')} + /> + + ); +} diff --git a/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts new file mode 100644 index 0000000000..c191d7d1d7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts @@ -0,0 +1,50 @@ +import { useState } from 'react'; + +const useImageTransform = () => { + const [rotation, setRotation] = useState(0); + const [scaleX, setScaleX] = useState(1); + const [scaleY, setScaleY] = useState(1); + + const rotateCounterClockwise = () => { + if (rotation === -270) { + setRotation(0); + } else { + setRotation(rotation - 90); + } + }; + + const rotateClockwise = () => { + if (rotation === 270) { + setRotation(0); + } else { + setRotation(rotation + 90); + } + }; + + const flipHorizontally = () => { + setScaleX(scaleX * -1); + }; + + const flipVertically = () => { + setScaleY(scaleY * -1); + }; + + const reset = () => { + setRotation(0); + setScaleX(1); + setScaleY(1); + }; + + return { + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + }; +}; + +export default useImageTransform; diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss deleted file mode 100644 index dcf1b23538..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.advanced-parameters { - padding-top: 0.5rem; - display: grid; - row-gap: 0.5rem; -} - -.advanced-parameters-item { - display: grid; - max-width: $options-bar-max-width; - border: none; - border-top: 0px; - border-radius: 0.4rem; - background-color: var(--tab-panel-bg); - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0 0 0.4rem 0.4rem; - } -} - -.advanced-parameters-panel { - background-color: var(--tab-panel-bg); - border-radius: 0 0 0.4rem 0.4rem; - padding: 1rem; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } - } -} - -.advanced-parameters-header { - border-radius: 0.4rem; - font-weight: bold; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.4rem 0.4rem 0 0; - } - - &:hover { - background-color: var(--tab-hover-color); - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx index af93704c82..b742f5a37e 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx @@ -21,10 +21,10 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { const { header, feature, content, additionalHeaderComponents } = props; return ( - - - - + + + + {header} {additionalHeaderComponents} @@ -32,9 +32,7 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { - - {content} - + {content} ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss deleted file mode 100644 index b7df91c843..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss +++ /dev/null @@ -1,53 +0,0 @@ -.inpainting-bounding-box-settings { - display: flex; - flex-direction: column; - border-radius: 0.4rem; - border: 2px solid var(--tab-color); -} - -.inpainting-bounding-box-header { - background-color: var(--tab-color); - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 0.5rem 1rem; - border-radius: 0.3rem 0.3rem 0 0; - align-items: center; - - button { - width: 0.5rem; - height: 1.2rem; - background: none; - &:hover { - background: none; - } - } - - p { - // font-weight: bold; - } -} - -.inpainting-bounding-box-settings-items { - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - - .inpainting-bounding-box-reset-icon-btn { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - } -} - -.inpainting-bounding-box-dimensions-slider-numberinput { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 1rem; -} - -.inpainting-bounding-box-darken { - width: max-content; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx index b7fd7d4c67..67740cbc02 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx @@ -1,4 +1,4 @@ -import { Box, Flex } from '@chakra-ui/react'; +import { Box, VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; @@ -68,7 +68,7 @@ const BoundingBoxSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetHeight} - sliderMarkRightOffset={-7} /> - + ); }; @@ -108,7 +106,7 @@ export default BoundingBoxSettings; export const BoundingBoxSettingsHeader = () => { const { t } = useTranslation(); return ( - + {t('parameters.boundingBoxHeader')} ); diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx index a1f3759837..187b23cdff 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; @@ -107,7 +107,7 @@ const InfillAndScalingSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetScaledWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetScaledHeight} - sliderMarkRightOffset={-7} /> { isInputDisabled={infillMethod !== 'tile'} isResetDisabled={infillMethod !== 'tile'} isSliderDisabled={infillMethod !== 'tile'} - sliderMarkRightOffset={-4} label={t('parameters.tileSize')} min={16} max={64} @@ -176,7 +173,7 @@ const InfillAndScalingSettings = () => { dispatch(setTileSize(32)); }} /> - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx index e3107e1d72..1f5237615a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx @@ -13,7 +13,6 @@ export default function SeamBlur() { return ( { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx index dccbd89b72..25d14e5eac 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx @@ -14,7 +14,6 @@ export default function SeamSize() { return ( { ); return ( - + {facetoolType === 'codeformer' && } - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx index 908aa7548b..e4d5a9174d 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx @@ -6,12 +6,11 @@ import { useTranslation } from 'react-i18next'; interface ImageToImageStrengthProps { label?: string; - styleClass?: string; } export default function ImageToImageStrength(props: ImageToImageStrengthProps) { const { t } = useTranslation(); - const { label = `${t('parameters.strength')}`, styleClass } = props; + const { label = `${t('parameters.strength')}` } = props; const img2imgStrength = useAppSelector( (state: RootState) => state.generation.img2imgStrength ); @@ -33,10 +32,9 @@ export default function ImageToImageStrength(props: ImageToImageStrengthProps) { onChange={handleChangeStrength} value={img2imgStrength} isInteger={false} - styleClass={styleClass} withInput withSliderMarks - inputWidth="5.5rem" + inputWidth={22} withReset handleReset={handleImg2ImgStrengthReset} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx index 5f99f10b5c..97705da9cc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx @@ -1,10 +1,8 @@ -import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import type { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import IAISwitch from 'common/components/IAISwitch'; -import SubItemHook from 'common/components/SubItemHook'; import { postprocessingSelector } from 'features/parameters/store/postprocessingSelectors'; import { setHiresFix, @@ -24,7 +22,7 @@ const hiresStrengthSelector = createSelector( } ); -const HiresStrength = () => { +export const HiresStrength = () => { const { hiresFix, hiresStrength } = useAppSelector(hiresStrengthSelector); const dispatch = useAppDispatch(); @@ -40,34 +38,30 @@ const HiresStrength = () => { }; return ( - - - - + ); }; /** * Hires Fix Toggle */ -const HiresSettings = () => { +export const HiresToggle = () => { const dispatch = useAppDispatch(); const hiresFix = useAppSelector( @@ -80,16 +74,11 @@ const HiresSettings = () => { dispatch(setHiresFix(e.target.checked)); return ( - - - - + ); }; - -export default HiresSettings; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx index f037e79523..c2dea1cbf8 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx @@ -1,11 +1,11 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeamlessSettings from './SeamlessSettings'; const ImageToImageOutputSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx index 1eaba1eaae..93ba63d065 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx @@ -1,13 +1,14 @@ -import { Flex } from '@chakra-ui/react'; -import HiresSettings from './HiresSettings'; +import { VStack } from '@chakra-ui/react'; +import { HiresStrength, HiresToggle } from './HiresSettings'; import SeamlessSettings from './SeamlessSettings'; const OutputSettings = () => { return ( - + - - + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx index fc649e0400..ddd6a4b24b 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx @@ -1,4 +1,3 @@ -import { Flex } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; @@ -22,14 +21,12 @@ const SeamlessSettings = () => { const { t } = useTranslation(); return ( - - - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx index 37bb7bdbda..e23385d0bc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx @@ -1,19 +1,20 @@ +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function SymmetrySettings() { - const horizontalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.horizontalSymmetryTimePercentage + const horizontalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.horizontalSymmetrySteps ); - const verticalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.verticalSymmetryTimePercentage + const verticalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.verticalSymmetrySteps ); const steps = useAppSelector((state: RootState) => state.generation.steps); @@ -23,33 +24,31 @@ export default function SymmetrySettings() { const { t } = useTranslation(); return ( - <> + dispatch(setHorizontalSymmetryTimePercentage(v))} + value={horizontalSymmetrySteps} + onChange={(v) => dispatch(setHorizontalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setHorizontalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > + handleReset={() => dispatch(setHorizontalSymmetrySteps(0))} + /> dispatch(setVerticalSymmetryTimePercentage(v))} + value={verticalSymmetrySteps} + onChange={(v) => dispatch(setVerticalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setVerticalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > - + handleReset={() => dispatch(setVerticalSymmetrySteps(0))} + /> + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx index 5d9d388098..7aac200b26 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx @@ -1,9 +1,11 @@ +import { HStack } from '@chakra-ui/react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSeed } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; +import ShuffleSeed from './ShuffleSeed'; export default function Seed() { const seed = useAppSelector((state: RootState) => state.generation.seed); @@ -21,18 +23,25 @@ export default function Seed() { const handleChangeSeed = (v: number) => dispatch(setSeed(v)); return ( - + + + + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx index d524ace666..891b528acd 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx @@ -1,8 +1,7 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import Perlin from './Perlin'; import RandomizeSeed from './RandomizeSeed'; import Seed from './Seed'; -import ShuffleSeed from './ShuffleSeed'; import Threshold from './Threshold'; /** @@ -10,19 +9,12 @@ import Threshold from './Threshold'; */ const SeedSettings = () => { return ( - + - - - - - - - - - - - + + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx index ea1721fc61..dbcf201d04 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx @@ -23,7 +23,6 @@ export default function Threshold() { withInput withReset withSliderMarks - sliderMarkRightOffset={-4} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx index de8fb16a9e..291b8f9dc2 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import UpscaleDenoisingStrength from './UpscaleDenoisingStrength'; import UpscaleStrength from './UpscaleStrength'; import UpscaleScale from './UpscaleScale'; @@ -8,11 +8,11 @@ import UpscaleScale from './UpscaleScale'; */ const UpscaleSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx index 82950231a2..d3bc43f7ae 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeedWeights from './SeedWeights'; import VariationAmount from './VariationAmount'; @@ -7,10 +7,10 @@ import VariationAmount from './VariationAmount'; */ const VariationsSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx index bb418fa9c0..6c4cecfe17 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx @@ -26,7 +26,6 @@ export default function MainCFGScale() { onChange={handleChangeCfgScale} handleReset={() => dispatch(setCfgScale(7.5))} value={cfgScale} - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 200 }} withInput withReset @@ -40,10 +39,8 @@ export default function MainCFGScale() { max={200} onChange={handleChangeCfgScale} value={cfgScale} - width="auto" - styleClass="main-settings-block" - textAlign="center" isInteger={false} + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx index e659cd29d3..0068568402 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx @@ -32,8 +32,6 @@ export default function MainHeight() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" sliderNumberInputProps={{ max: 15360 }} /> ) : ( @@ -44,8 +42,6 @@ export default function MainHeight() { flexGrow={1} onChange={(e) => dispatch(setHeight(Number(e.target.value)))} validValues={HEIGHTS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx index 0100c8999c..f9e31c71da 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx @@ -32,7 +32,6 @@ export default function MainIterations() { withInput withReset withSliderMarks - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 9999 }} /> ) : ( @@ -43,10 +42,7 @@ export default function MainIterations() { max={9999} onChange={handleChangeIterations} value={iterations} - width="auto" - labelFontSize={0.5} - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss deleted file mode 100644 index 962bfac1b2..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss +++ /dev/null @@ -1,35 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.main-settings { - display: grid; - row-gap: 1rem; -} - -.main-settings-list { - display: grid; - row-gap: 1rem; -} - -.main-settings-row { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 0.5rem; - max-width: $options-bar-max-width; -} - -.main-settings-block { - border-radius: 0.5rem; - display: grid !important; - grid-template-columns: auto !important; - row-gap: 0.5rem; - - .invokeai__number-input-form-label, - .invokeai__select-label { - font-weight: bold; - font-size: 0.9rem !important; - } - - .invokeai__select-label { - margin: 0; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx deleted file mode 100644 index e11e16d4df..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; -import { useTranslation } from 'react-i18next'; -import ParametersAccordion from '../ParametersAccordion'; -import MainCFGScale from './MainCFGScale'; -import MainHeight from './MainHeight'; -import MainIterations from './MainIterations'; -import MainSampler from './MainSampler'; -import MainSteps from './MainSteps'; -import MainWidth from './MainWidth'; - -export const inputWidth = 'auto'; - -export default function MainSettings() { - const { t } = useTranslation(); - - const shouldUseSliders = useAppSelector( - (state: RootState) => state.ui.shouldUseSliders - ); - - const accordionItems = { - main: { - header: `${t('parameters.general')}`, - feature: undefined, - content: shouldUseSliders ? ( - - - - - - - - - ) : ( - - - - - - - - - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx index 9c3fd09ac3..0f55cca12a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx @@ -26,8 +26,7 @@ export default function MainSampler() { validValues={ activeModel.format === 'diffusers' ? DIFFUSERS_SAMPLERS : SAMPLERS } - styleClass="main-settings-block" - minWidth="9rem" + minWidth={36} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx new file mode 100644 index 0000000000..cad30e58e6 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx @@ -0,0 +1,39 @@ +import { Flex, VStack } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import MainCFGScale from './MainCFGScale'; +import MainHeight from './MainHeight'; +import MainIterations from './MainIterations'; +import MainSampler from './MainSampler'; +import MainSteps from './MainSteps'; +import MainWidth from './MainWidth'; + +export default function MainSettings() { + const shouldUseSliders = useAppSelector( + (state: RootState) => state.ui.shouldUseSliders + ); + + return shouldUseSliders ? ( + + + + + + + + + ) : ( + + + + + + + + + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx index 3be575f7bf..58553bca86 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx @@ -3,7 +3,10 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISlider from 'common/components/IAISlider'; -import { setSteps } from 'features/parameters/store/generationSlice'; +import { + clampSymmetrySteps, + setSteps, +} from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function MainSteps() { @@ -14,7 +17,13 @@ export default function MainSteps() { ); const { t } = useTranslation(); - const handleChangeSteps = (v: number) => dispatch(setSteps(v)); + const handleChangeSteps = (v: number) => { + dispatch(setSteps(v)); + }; + + const handleBlur = () => { + dispatch(clampSymmetrySteps()); + }; return shouldUseSliders ? ( ) : ( @@ -38,9 +46,8 @@ export default function MainSteps() { step={1} onChange={handleChangeSteps} value={steps} - width="auto" - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} + onBlur={handleBlur} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx index 7abffcf657..c133f804e7 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx @@ -32,8 +32,6 @@ export default function MainWidth() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" inputReadOnly sliderNumberInputProps={{ max: 15360 }} /> @@ -45,8 +43,6 @@ export default function MainWidth() { flexGrow={1} onChange={(e) => dispatch(setWidth(Number(e.target.value)))} validValues={WIDTHS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx index 9738b0d30a..019fb02f90 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx @@ -1,4 +1,4 @@ -import { Accordion, ExpandedIndex } from '@chakra-ui/react'; +import { Accordion } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setOpenAccordions } from 'features/system/store/systemSlice'; @@ -30,7 +30,7 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { /** * Stores accordion state in redux so preferred UI setup is retained. */ - const handleChangeAccordionState = (openAccordions: ExpandedIndex) => + const handleChangeAccordionState = (openAccordions: number | number[]) => dispatch(setOpenAccordions(openAccordions)); const renderAccordions = () => { @@ -59,7 +59,6 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { allowMultiple reduceMotion onChange={handleChangeAccordionState} - className="advanced-parameters" > {renderAccordions()} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx index 88eb203fc9..9363bcdfd3 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx @@ -95,12 +95,7 @@ export default function CancelButton( ]; return ( - + {cancelType === 'immediate' ? ( } @@ -108,17 +103,13 @@ export default function CancelButton( aria-label={t('parameters.cancel.immediate')} isDisabled={!isConnected || !isProcessing || !isCancelable} onClick={handleClickCancel} - className="cancel-btn" + colorScheme="error" {...rest} /> ) : ( - ) : ( - - ) + isCancelScheduled ? : } tooltip={ isCancelScheduled @@ -141,7 +132,7 @@ export default function CancelButton( if (isCancelScheduled) dispatch(setCancelAfter(null)); else dispatch(setCancelAfter(currentIteration)); }} - className="cancel-btn" + colorScheme="error" {...rest} /> )} @@ -149,13 +140,8 @@ export default function CancelButton( menuItems={cancelMenuItems} iconTooltip={t('parameters.cancel.setType')} menuButtonProps={{ - backgroundColor: 'var(--destructive-color)', - color: 'var(--text-color)', - minWidth: '1.5rem', - minHeight: '1.5rem', - _hover: { - backgroundColor: 'var(--destructive-color-hover)', - }, + colorScheme: 'error', + minWidth: 5, }} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx index 504714d329..b68f245044 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { readinessSelector } from 'app/selectors/readinessSelector'; import { generateImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -5,6 +6,7 @@ import IAIButton, { IAIButtonProps } from 'common/components/IAIButton'; import IAIIconButton, { IAIIconButtonProps, } from 'common/components/IAIIconButton'; +import { clampSymmetrySteps } from 'features/parameters/store/generationSlice'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; @@ -30,6 +32,7 @@ export default function InvokeButton(props: InvokeButton) { useHotkeys( ['ctrl+enter', 'meta+enter'], () => { + dispatch(clampSymmetrySteps()); dispatch(generateImage(activeTabName)); }, { @@ -41,7 +44,7 @@ export default function InvokeButton(props: InvokeButton) { ); return ( -
        + {iconButton ? ( } isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" tooltip={t('parameters.invoke')} tooltipProps={{ placement: 'bottom' }} + colorScheme="accent" {...rest} /> ) : ( @@ -60,12 +65,15 @@ export default function InvokeButton(props: InvokeButton) { type="submit" isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" + colorScheme="accent" + fontWeight={700} {...rest} > Invoke )} -
        +
        ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx index 9c0ba478d4..09cc991653 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx @@ -21,8 +21,6 @@ const LoopbackButton = () => { } onClick={() => { diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss deleted file mode 100644 index 658ee08177..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss +++ /dev/null @@ -1,56 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.process-buttons { - display: flex; - column-gap: 0.5rem; -} - -.invoke-btn { - flex-grow: 1; - width: 100%; - - @include Button( - $btn-color: var(--accent-color), - $btn-color-hover: var(--accent-color-hover), - $icon-size: 16px - ); -} - -.cancel-btn { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover), - $btn-width: 3rem - ); -} - -.loopback-btn { - &[data-as-checkbox='true'] { - background-color: var(--btn-btn-base-color); - border: 3px solid var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - background-color: var(--btn-btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - &[data-selected='true'] { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx index 0f48fbce8a..e4b3798548 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx @@ -1,3 +1,4 @@ +import { Flex } from '@chakra-ui/react'; import { useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import CancelButton from './CancelButton'; @@ -11,11 +12,11 @@ const ProcessButtons = () => { const activeTabName = useAppSelector(activeTabNameSelector); return ( -
        + {activeTabName === 'img2img' && } -
        +
        ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx index a8b1961091..da22fa5594 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx @@ -19,19 +19,11 @@ const NegativePromptInput = () => { name="negativePrompt" value={negativePrompt} onChange={(e) => dispatch(setNegativePrompt(e.target.value))} - background="var(--prompt-bg-color)" placeholder={t('parameters.negativePrompts')} - _placeholder={{ fontSize: '0.8rem' }} - borderColor="var(--border-color)" - _hover={{ - borderColor: 'var(--border-color-light)', - }} _focusVisible={{ - borderColor: 'var(--border-color-invalid)', - boxShadow: '0 0 10px var(--box-shadow-color-invalid)', + borderColor: 'error.600', }} - fontSize="0.9rem" - color="var(--text-color-secondary)" + fontSize="sm" /> ); diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss deleted file mode 100644 index e7baf2f5f9..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss +++ /dev/null @@ -1,34 +0,0 @@ -.prompt-bar { - display: grid; - row-gap: 1rem; - - input, - textarea { - background-color: var(--prompt-bg-color); - font-size: 1rem; - border: 2px solid var(--border-color); - - &:hover { - border: 2px solid var(--border-color-light); - } - - &:focus-visible { - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] { - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - - &:disabled { - border: 2px solid var(--border-color); - box-shadow: none; - } - } - - textarea { - min-height: 10rem; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx index 43221f0a8d..3d5c38ddc5 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx @@ -1,4 +1,4 @@ -import { FormControl, Textarea } from '@chakra-ui/react'; +import { Box, FormControl, Textarea } from '@chakra-ui/react'; import { generateImage } from 'app/socketio/actions'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -63,7 +63,7 @@ const PromptInput = () => { }; return ( -
        + @@ -71,19 +71,15 @@ const PromptInput = () => { id="prompt" name="prompt" placeholder={t('parameters.promptPlaceholder')} - size="lg" value={prompt} onChange={handleChangePrompt} onKeyDown={handleKeyDown} resize="vertical" - height={30} ref={promptRef} - _placeholder={{ - color: 'var(--text-color-secondary)', - }} + minH={40} /> -
        + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index e05c49f3f7..1cb3a98204 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -4,6 +4,7 @@ import * as InvokeAI from 'app/invokeai'; import { getPromptAndNegative } from 'common/util/getPromptAndNegative'; import promptToString from 'common/util/promptToString'; import { seedWeightsToString } from 'common/util/seedWeightPairs'; +import { clamp } from 'lodash'; export interface GenerationState { cfgScale: number; @@ -33,8 +34,8 @@ export interface GenerationState { variationAmount: number; width: number; shouldUseSymmetry: boolean; - horizontalSymmetryTimePercentage: number; - verticalSymmetryTimePercentage: number; + horizontalSymmetrySteps: number; + verticalSymmetrySteps: number; } const initialGenerationState: GenerationState = { @@ -64,8 +65,8 @@ const initialGenerationState: GenerationState = { variationAmount: 0.1, width: 512, shouldUseSymmetry: false, - horizontalSymmetryTimePercentage: 0, - verticalSymmetryTimePercentage: 0, + horizontalSymmetrySteps: 0, + verticalSymmetrySteps: 0, }; const initialState: GenerationState = initialGenerationState; @@ -99,6 +100,18 @@ export const generationSlice = createSlice({ setSteps: (state, action: PayloadAction) => { state.steps = action.payload; }, + clampSymmetrySteps: (state) => { + state.horizontalSymmetrySteps = clamp( + state.horizontalSymmetrySteps, + 0, + state.steps + ); + state.verticalSymmetrySteps = clamp( + state.verticalSymmetrySteps, + 0, + state.steps + ); + }, setCfgScale: (state, action: PayloadAction) => { state.cfgScale = action.payload; }, @@ -174,7 +187,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, } = action.payload.image; @@ -237,7 +250,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, strength, @@ -334,22 +347,17 @@ export const generationSlice = createSlice({ setShouldUseSymmetry: (state, action: PayloadAction) => { state.shouldUseSymmetry = action.payload; }, - setHorizontalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.horizontalSymmetryTimePercentage = action.payload; + setHorizontalSymmetrySteps: (state, action: PayloadAction) => { + state.horizontalSymmetrySteps = action.payload; }, - setVerticalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.verticalSymmetryTimePercentage = action.payload; + setVerticalSymmetrySteps: (state, action: PayloadAction) => { + state.verticalSymmetrySteps = action.payload; }, }, }); export const { + clampSymmetrySteps, clearInitialImage, resetParametersState, resetSeed, @@ -384,8 +392,8 @@ export const { setVariationAmount, setWidth, setShouldUseSymmetry, - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } = generationSlice.actions; export default generationSlice.reducer; diff --git a/invokeai/frontend/web/src/features/system/components/Console.scss b/invokeai/frontend/web/src/features/system/components/Console.scss deleted file mode 100644 index e043d58d51..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Console.scss +++ /dev/null @@ -1,75 +0,0 @@ -.console { - width: 100vw; - display: flex; - flex-direction: column; - background: var(--console-bg-color); - overflow: auto; - direction: column; - font-family: monospace; - padding: 0 1rem 1rem 3rem; - border-top-width: 0.3rem; - border-color: var(--resizeable-handle-border-color); - - .console-info-color { - color: var(--error-level-info); - } - - .console-warning-color { - color: var(--error-level-warning); - } - - .console-error-color { - color: var(--status-bad-color); - } - - .console-entry { - display: flex; - column-gap: 0.5rem; - - .console-timestamp { - font-weight: semibold; - } - - .console-message { - word-break: break-all; - } - } -} - -.console-toggle-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 0.5rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-error-seen='true'] { - background: var(--status-bad-color); - &:hover { - background: var(--status-bad-color); - } - } -} - -.console-autoscroll-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 3rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-autoscroll-enabled='true'] { - background: var(--accent-color); - &:hover { - background: var(--accent-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/Console.tsx b/invokeai/frontend/web/src/features/system/components/Console.tsx index 5ed8025730..562b339c59 100644 --- a/invokeai/frontend/web/src/features/system/components/Console.tsx +++ b/invokeai/frontend/web/src/features/system/components/Console.tsx @@ -1,6 +1,7 @@ -import { IconButton, Tooltip } from '@chakra-ui/react'; +import { Flex, Text, Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIIconButton from 'common/components/IAIIconButton'; import { errorSeen, setShouldShowLogViewer, @@ -105,23 +106,47 @@ const Console = () => { style={{ display: 'flex', position: 'fixed', - left: 0, + insetInlineStart: 0, bottom: 0, zIndex: 9999, }} maxHeight="90vh" > -
        + {log.map((entry, i) => { const { timestamp, message, level } = entry; + const colorScheme = level === 'info' ? 'base' : level; return ( -
        -

        {timestamp}:

        -

        {message}

        -
        + + {timestamp}: + {message} + ); })} -
        + )} {shouldShowLogViewer && ( @@ -129,14 +154,18 @@ const Console = () => { hasArrow label={shouldAutoscroll ? 'Autoscroll On' : 'Autoscroll Off'} > - } onClick={() => setShouldAutoscroll(!shouldAutoscroll)} + isChecked={shouldAutoscroll} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 12, + zIndex: '10000', + }} /> )} @@ -144,15 +173,18 @@ const Console = () => { hasArrow label={shouldShowLogViewer ? 'Hide Console' : 'Show Console'} > - : } onClick={handleClickLogViewerToggle} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 2, + zIndex: '10000', + }} + colorScheme={hasError || !wasErrorSeen ? 'error' : 'base'} /> diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss deleted file mode 100644 index afb2b1c61e..0000000000 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss +++ /dev/null @@ -1,87 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.hotkeys-modal { - width: 36rem; - max-width: 36rem; - display: grid; - padding: 1rem; - row-gap: 1rem; - font-family: Inter; - - h1 { - font-size: 1.2rem; - font-weight: bold; - } - - h2 { - font-weight: bold; - } -} - -.hotkeys-modal-button { - display: flex; - align-items: center; - justify-content: space-between; -} - -.hotkeys-modal-items { - max-height: 36rem; - overflow-y: scroll; - @include HideScrollbar; - - .chakra-accordion { - display: grid; - row-gap: 0.5rem; - } - - .chakra-accordion__item { - border: none; - border-radius: 0.3rem; - background-color: var(--tab-hover-color); - } - - button { - border-radius: 0.3rem; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - } -} - -.hotkey-modal-category { - display: grid; - row-gap: 0.5rem; -} - -.hotkey-modal-item { - display: grid; - grid-template-columns: auto max-content; - justify-content: space-between; - align-items: center; - background-color: var(--background-color); - padding: 0.5rem 1rem; - border-radius: 0.3rem; - - .hotkey-info { - display: grid; - - .hotkey-title { - font-weight: bold; - } - - .hotkey-description { - font-size: 0.9rem; - color: var(--text-color-secondary); - } - } - - .hotkey-key { - font-size: 0.8rem; - font-weight: bold; - background-color: var(--background-color-light); - padding: 0.2rem 0.5rem; - border-radius: 0.3rem; - } -} diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx index 57eb512d79..62b7985a6c 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx @@ -4,9 +4,14 @@ import { AccordionIcon, AccordionItem, AccordionPanel, + Divider, + Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, + ModalHeader, ModalOverlay, useDisclosure, } from '@chakra-ui/react'; @@ -297,24 +302,20 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { }, ]; - const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => { - const hotkeyModalItemsToRender: ReactElement[] = []; - - hotkeys.forEach((hotkey, i) => { - hotkeyModalItemsToRender.push( - - ); - }); - - return ( -
        {hotkeyModalItemsToRender}
        - ); - }; + const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => ( + + {hotkeys.map((hotkey, i) => ( + + + {i < hotkeys.length - 1 && } + + ))} + + ); return ( <> @@ -323,16 +324,21 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { })} - - - -

        Keyboard Shorcuts

        -
        + + {t('hotkeys.keyboardShortcuts')} + + - -

        {t('hotkeys.appHotkeys')}

        - + + +

        {t('hotkeys.appHotkeys')}

        + +
        {renderHotkeyModalItems(appHotkeys)} @@ -340,9 +346,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
        - -

        {t('hotkeys.generalHotkeys')}

        - + + +

        {t('hotkeys.generalHotkeys')}

        + +
        {renderHotkeyModalItems(generalHotkeys)} @@ -350,9 +362,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
        - -

        {t('hotkeys.galleryHotkeys')}

        - + + +

        {t('hotkeys.galleryHotkeys')}

        + +
        {renderHotkeyModalItems(galleryHotkeys)} @@ -360,16 +378,23 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
        - -

        {t('hotkeys.unifiedCanvasHotkeys')}

        - + + +

        {t('hotkeys.unifiedCanvasHotkeys')}

        + +
        {renderHotkeyModalItems(unifiedCanvasHotkeys)}
        -
        + +
        diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx index 384192d3fe..b0163169fe 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx @@ -1,3 +1,5 @@ +import { Box, Grid, Text } from '@chakra-ui/react'; + interface HotkeysModalProps { hotkey: string; title: string; @@ -7,12 +9,36 @@ interface HotkeysModalProps { export default function HotkeysModalItem(props: HotkeysModalProps) { const { title, hotkey, description } = props; return ( -
        -
        -

        {title}

        - {description &&

        {description}

        } -
        -
        {hotkey}
        -
        + + + {title} + {description && ( + + {description} + + )} + + + {hotkey} + + ); } diff --git a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx new file mode 100644 index 0000000000..ac7dc39a78 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx @@ -0,0 +1,30 @@ +import { Flex, Text, Image } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import InvokeAILogoImage from 'assets/images/logo.png'; + +const InvokeAILogoComponent = () => { + const appVersion = useAppSelector( + (state: RootState) => state.system.app_version + ); + + return ( + + invoke-ai-logo + + invoke ai + + + {appVersion} + + + ); +}; + +export default InvokeAILogoComponent; diff --git a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx index 9da9c45bde..7f284ee1f6 100644 --- a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx +++ b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx @@ -5,7 +5,7 @@ import IAIButton from 'common/components/IAIButton'; import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { useTranslation } from 'react-i18next'; -import { FaLanguage } from 'react-icons/fa'; +import { FaCheck, FaLanguage } from 'react-icons/fa'; export default function LanguagePicker() { const { t, i18n } = useTranslation(); @@ -15,12 +15,15 @@ export default function LanguagePicker() { en: t('common.langEnglish', { lng: 'en' }), fr: t('common.langFrench', { lng: 'fr' }), de: t('common.langGerman', { lng: 'de' }), + he: t('common.langHebrew', { lng: 'he' }), it: t('common.langItalian', { lng: 'it' }), ja: t('common.langJapanese', { lng: 'ja' }), + ko: t('common.langKorean', { lng: 'ko' }), pl: t('common.langPolish', { lng: 'pl' }), - pt_Br: t('common.langBrPortuguese', { lng: 'pt_Br' }), + pt_BR: t('common.langBrPortuguese', { lng: 'pt_BR' }), + pt: t('common.langPortuguese', { lng: 'pt' }), ru: t('common.langRussian', { lng: 'ru' }), - zh_Cn: t('common.langSimplifiedChinese', { lng: 'zh_Cn' }), + zh_CN: t('common.langSimplifiedChinese', { lng: 'zh_CN' }), es: t('common.langSpanish', { lng: 'es' }), uk: t('common.langUkranian', { lng: 'ua' }), }; @@ -31,9 +34,13 @@ export default function LanguagePicker() { languagesToRender.push( + ) : undefined + } onClick={() => i18n.changeLanguage(lang)} - className="modal-close-btn lang-select-btn" aria-label={LANGUAGES[lang as keyof typeof LANGUAGES]} size="sm" minWidth="200px" diff --git a/invokeai/frontend/web/src/features/system/components/Modal.scss b/invokeai/frontend/web/src/features/system/components/Modal.scss deleted file mode 100644 index 7c97221c6b..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Modal.scss +++ /dev/null @@ -1,11 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.modal { - background-color: var(--background-color-secondary); - color: var(--text-color); - font-family: Inter; -} - -.modal-close-btn { - @include BaseButton; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx index 933b3d925e..8e0cfb2802 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx @@ -71,7 +71,7 @@ export default function AddCheckpointModel() { const [addManually, setAddmanually] = React.useState(false); return ( - <> + } /> @@ -99,7 +99,7 @@ export default function AddCheckpointModel() { > {({ handleSubmit, errors, touched }) => (
        - + {t('modelManager.manual')} @@ -323,6 +323,6 @@ export default function AddCheckpointModel() { )} )} - + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx index a0ba19a075..82cc609879 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx @@ -28,12 +28,14 @@ function FormItemWrapper({ }) { return ( {children} @@ -95,7 +97,7 @@ export default function AddDiffusersModel() { position="absolute" zIndex={1} size="sm" - right={12} + insetInlineEnd={12} top={3} icon={} /> @@ -105,7 +107,7 @@ export default function AddDiffusersModel() { > {({ handleSubmit, errors, touched }) => ( - + {/* Name */} {t('modelManager.formMessageDiffusersModelLocationDesc')} @@ -230,9 +234,11 @@ export default function AddDiffusersModel() { {t('modelManager.formMessageDiffusersVAELocation')} {t('modelManager.formMessageDiffusersVAELocationDesc')} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss deleted file mode 100644 index f8144cd4f8..0000000000 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss +++ /dev/null @@ -1,16 +0,0 @@ -.add-model-modal { - display: flex; -} - -.add-model-modal-body { - display: flex; - flex-direction: column; - row-gap: 1rem; - padding-bottom: 2rem; -} - -.add-model-form { - display: flex; - flex-direction: column; - row-gap: 0.5rem; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx index 269577227f..c6bb802622 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx @@ -1,9 +1,11 @@ import { + Button, Flex, Modal, ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Text, @@ -33,16 +35,11 @@ function AddModelBox({ {text} @@ -71,10 +68,9 @@ export default function AddModel() { aria-label={t('modelManager.addNewModel')} tooltip={t('modelManager.addNewModel')} onClick={onOpen} - className="modal-close-btn" size="sm" > - + {t('modelManager.addNew')} @@ -87,16 +83,12 @@ export default function AddModel() { closeOnOverlayClick={false} > - + {t('modelManager.addNewModel')} - - + + {addNewModelUIOption == null && ( - + dispatch(setAddNewModelUIOption('ckpt'))} @@ -110,6 +102,7 @@ export default function AddModel() { {addNewModelUIOption == 'ckpt' && } {addNewModelUIOption == 'diffusers' && } + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx index 5f58583ff0..9759125a1a 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx @@ -101,7 +101,7 @@ export default function CheckpointModelEdit() { }; return openModel ? ( - + {openModel} @@ -112,7 +112,7 @@ export default function CheckpointModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx index 59fe68a3f9..e25043b1e8 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx @@ -109,7 +109,7 @@ export default function DiffusersModelEdit() { }; return openModel ? ( - + {openModel} @@ -119,7 +119,7 @@ export default function DiffusersModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx index cd10a43856..e994900eec 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Radio, @@ -57,19 +59,19 @@ export default function MergeModels() { const [modelMergeForce, setModelMergeForce] = useState(false); - const modelOneList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelTwo && model !== modelThree) return model; - }); + const modelOneList = Object.keys(diffusersModels).filter( + (model) => model !== modelTwo && model !== modelThree + ); - const modelTwoList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelThree) return model; - }); + const modelTwoList = Object.keys(diffusersModels).filter( + (model) => model !== modelOne && model !== modelThree + ); const modelThreeList = [ - 'none', - ...Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelTwo) return model; - }), + { key: t('modelManager.none'), value: 'none' }, + ...Object.keys(diffusersModels) + .filter((model) => model !== modelOne && model !== modelTwo) + .map((model) => ({ key: model, value: model })), ]; const isProcessing = useAppSelector( @@ -96,8 +98,8 @@ export default function MergeModels() { return ( <> - - + + {t('modelManager.mergeModels')} @@ -109,183 +111,201 @@ export default function MergeModels() { closeOnOverlayClick={false} > - + {t('modelManager.mergeModels')} - - - {t('modelManager.modelMergeHeaderHelp1')} - - {t('modelManager.modelMergeHeaderHelp2')} - - - - setModelOne(e.target.value)} - /> - setModelTwo(e.target.value)} - /> - { - if (e.target.value !== 'none') { - setModelThree(e.target.value); - setModelMergeInterp('add_difference'); - } else { - setModelThree('none'); - setModelMergeInterp('weighted_sum'); - } + + + - - - setMergedModelName(e.target.value)} - /> - - - setModelMergeAlpha(v)} - withInput - withReset - handleReset={() => setModelMergeAlpha(0.5)} - withSliderMarks - sliderMarkRightOffset={-7} - /> - - {t('modelManager.modelMergeAlphaHelp')} - - - - - - {t('modelManager.interpolationType')} - - setModelMergeInterp(v)} - > - - {modelThree === 'none' ? ( - <> - weighted_sum - sigmoid - inv_sigmoid - - ) : ( - - - add_difference - - - )} - - - - - + {t('modelManager.modelMergeHeaderHelp1')} + + {t('modelManager.modelMergeHeaderHelp2')} + + - - {t('modelManager.mergedModelSaveLocation')} + setModelOne(e.target.value)} + /> + setModelTwo(e.target.value)} + /> + { + if (e.target.value !== 'none') { + setModelThree(e.target.value); + setModelMergeInterp('add_difference'); + } else { + setModelThree('none'); + setModelMergeInterp('weighted_sum'); + } + }} + /> + + + setMergedModelName(e.target.value)} + /> + + + setModelMergeAlpha(v)} + withInput + withReset + handleReset={() => setModelMergeAlpha(0.5)} + withSliderMarks + /> + + {t('modelManager.modelMergeAlphaHelp')} + + + + + + {t('modelManager.interpolationType')} - setModelMergeSaveLocType(v) - } + value={modelMergeInterp} + onChange={( + v: + | 'weighted_sum' + | 'sigmoid' + | 'inv_sigmoid' + | 'add_difference' + ) => setModelMergeInterp(v)} > - - {t('modelManager.invokeAIFolder')} - - {t('modelManager.custom')} + {modelThree === 'none' ? ( + <> + + + {t('modelManager.weightedSum')} + + + + {t('modelManager.sigmoid')} + + + + {t('modelManager.inverseSigmoid')} + + + + ) : ( + + + + {t('modelManager.addDifference')} + + + + )} - {modelMergeSaveLocType === 'custom' && ( - setModelMergeCustomSaveLoc(e.target.value)} - /> - )} + + + + {t('modelManager.mergedModelSaveLocation')} + + + setModelMergeSaveLocType(v) + } + > + + + + {t('modelManager.invokeAIFolder')} + + + + + {t('modelManager.custom')} + + + + + + {modelMergeSaveLocType === 'custom' && ( + setModelMergeCustomSaveLoc(e.target.value)} + /> + )} + + + setModelMergeForce(e.target.checked)} + fontWeight="500" + /> + + + {t('modelManager.merge')} + - - setModelMergeForce(e.target.checked)} - fontWeight="bold" - /> - - - {t('modelManager.merge')} - - + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx index 792ce03b4e..5896e634ea 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx @@ -77,7 +77,7 @@ export default function ModelConvert(props: ModelConvertProps) { retrievedModel.status === 'active' || isProcessing || !isConnected } className=" modal-close-btn" - marginRight="2rem" + marginInlineEnd={8} > 🧨 {t('modelManager.convertToDiffusers')} @@ -96,8 +96,8 @@ export default function ModelConvert(props: ModelConvertProps) { - - + + {t('modelManager.convertToDiffusersSaveLocation')} setSaveLocation(v)}> @@ -125,11 +125,7 @@ export default function ModelConvert(props: ModelConvertProps) { {saveLocation === 'custom' && ( - + {t('modelManager.customSaveLocation')} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx index 0eb07850c3..1bea1ba878 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Spinner, Text } from '@chakra-ui/react'; +import { Box, Flex, Heading, Spacer, Spinner, Text } from '@chakra-ui/react'; import IAIInput from 'common/components/IAIInput'; import IAIButton from 'common/components/IAIButton'; @@ -45,9 +45,10 @@ function ModelFilterButton({ @@ -133,23 +134,27 @@ const ModelList = () => { return searchText !== '' ? ( isSelectedFilter === 'all' ? ( - {filteredModelListItemsToRender} + {filteredModelListItemsToRender} ) : ( - {localFilteredModelListItemsToRender} + {localFilteredModelListItemsToRender} ) ) : ( - + {isSelectedFilter === 'all' && ( <> {t('modelManager.checkpointModels')} @@ -157,13 +162,16 @@ const ModelList = () => { {t('modelManager.diffusersModels')} @@ -173,13 +181,13 @@ const ModelList = () => { )} {isSelectedFilter === 'ckpt' && ( - + {ckptModelListItemsToRender} )} {isSelectedFilter === 'diffusers' && ( - + {diffusersModelListItemsToRender} )} @@ -188,15 +196,12 @@ const ModelList = () => { }, [models, searchText, t, isSelectedFilter]); return ( - - - - {t('modelManager.availableModels')} - - - - - + + + {t('modelManager.availableModels')} + + + { gap={1} maxHeight={window.innerHeight - 360} overflow="scroll" - paddingRight="1rem" + paddingInlineEnd={4} > - + setIsSelectedFilter('all')} @@ -234,7 +239,7 @@ const ModelList = () => { ) : ( diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx index 5f90df0c37..9b2b6d29f4 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx @@ -46,30 +46,37 @@ export default function ModelListItem(props: ModelListItemProps) { const statusTextColor = () => { switch (status) { case 'active': - return 'var(--status-good-color)'; + return 'ok.500'; case 'cached': - return 'var(--status-working-color)'; + return 'warning.500'; case 'not loaded': - return 'var(--text-color-secondary)'; + return 'inherit'; } }; return ( - {name} + {name} @@ -79,7 +86,6 @@ export default function ModelListItem(props: ModelListItemProps) { size="sm" onClick={handleChangeModel} isDisabled={status === 'active' || isProcessing || !isConnected} - className="modal-close-btn" > {t('modelManager.load')} @@ -90,7 +96,6 @@ export default function ModelListItem(props: ModelListItemProps) { onClick={openModelHandler} aria-label="Modify Config" isDisabled={status === 'active' || isProcessing || !isConnected} - className=" modal-close-btn" /> } > - +

        {t('modelManager.deleteMsg1')}

        -

        - {t('modelManager.deleteMsg2')} -

        +

        {t('modelManager.deleteMsg2')}

        diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx index def4afe6b6..6d9edf0d89 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, useDisclosure, @@ -53,19 +55,20 @@ export default function ModelManagerModal({ size="6xl" > - - - - {t('modelManager.modelManager')} - - - - {openModel && model_list[openModel]['format'] === 'diffusers' ? ( - - ) : ( - - )} - + + + {t('modelManager.modelManager')} + + + + {openModel && model_list[openModel]['format'] === 'diffusers' ? ( + + ) : ( + + )} + + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx index 08834eb91b..bccf690a63 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx @@ -4,12 +4,13 @@ import IAIIconButton from 'common/components/IAIIconButton'; import React from 'react'; import { - Box, + Badge, Flex, FormControl, HStack, Radio, RadioGroup, + Spacer, Text, VStack, } from '@chakra-ui/react'; @@ -18,8 +19,7 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { systemSelector } from 'features/system/store/systemSelectors'; import { useTranslation } from 'react-i18next'; -import { FaPlus } from 'react-icons/fa'; -import { MdFindInPage } from 'react-icons/md'; +import { FaPlus, FaSearch } from 'react-icons/fa'; import { addNewModel, searchForModels } from 'app/socketio/actions'; import { @@ -48,26 +48,6 @@ const existingModelsSelector = createSelector([systemSelector], (system) => { return existingModels; }); -function ModelExistsTag() { - const { t } = useTranslation(); - return ( - - {t('modelManager.modelExists')} - - ); -} - interface SearchModelEntry { model: FoundModel; modelsToAdd: string[]; @@ -79,6 +59,7 @@ function SearchModelEntry({ modelsToAdd, setModelsToAdd, }: SearchModelEntry) { + const { t } = useTranslation(); const existingModels = useAppSelector(existingModelsSelector); const foundModelsChangeHandler = (e: ChangeEvent) => { @@ -90,33 +71,34 @@ function SearchModelEntry({ }; return ( - - {existingModels.includes(model.location) ? : null} - - -

        {model.name}

        -

        {model.location}

        -
        - + +
        -
        + paddingX={4} + paddingY={2} + borderRadius={4} + > + + {model.name}
        } + isChecked={modelsToAdd.includes(model.name)} + isDisabled={existingModels.includes(model.location)} + onChange={foundModelsChangeHandler} + > + {existingModels.includes(model.location) && ( + {t('modelManager.modelExists')} + )} +
        + + {model.location} + +
        +
        ); } @@ -243,36 +225,38 @@ export default function SearchModels() { <> {searchFolder ? ( -

        - {t('modelManager.checkpointFolder')} -

        -

        - {searchFolder} -

        + + {t('modelManager.checkpointFolder')} + + {searchFolder} +
        + } - position="absolute" - right={16} fontSize={18} disabled={isProcessing} onClick={() => dispatch(searchForModels(searchFolder))} @@ -280,8 +264,6 @@ export default function SearchModels() { } - position="absolute" - right={5} onClick={resetSearchModelHandler} />
        @@ -294,7 +276,7 @@ export default function SearchModels() { > {({ handleSubmit }) => ( - + - } + } aria-label={t('modelManager.findModels')} tooltip={t('modelManager.findModels')} type="submit" disabled={isProcessing} - /> + > + {t('modelManager.findModels')} + )} )} {foundModels && ( - +

        {t('modelManager.modelsFound')}: {foundModels.length} @@ -328,8 +312,8 @@ export default function SearchModels() { {t('modelManager.selected')}: {modelsToAdd.length}

        - - + + 0 ? 'var(--accent-color) !important' : '' - } + colorScheme="accent" > {t('modelManager.addSelected')} - - Pick Model Type: + + {t('modelManager.pickModelType')} - {t('modelManager.v1')} - {t('modelManager.v2')} - - {t('modelManager.inpainting')} + + {t('modelManager.v1')} + + + {t('modelManager.v2')} + + + {t('modelManager.inpainting')} + + + {t('modelManager.customConfig')} - {t('modelManager.customConfig')} {modelType === 'custom' && ( - + {t('modelManager.pathToCustomConfig')} { if (e.target.value !== '') setPathToConfig(e.target.value); }} - width="42.5rem" + width="full" /> )} {foundModels.length > 0 ? ( - modelsToAdd.length === 0 && ( - - {t('modelManager.selectAndAdd')} - - ) + renderFoundModels() ) : ( {t('modelManager.noModelsFound')} )} - - {renderFoundModels()} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx index 7c06604382..ab37213a00 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx @@ -33,11 +33,11 @@ const ModelSelect = () => { return ( { ); }; diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss deleted file mode 100644 index 53b4766c95..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss +++ /dev/null @@ -1,43 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.settings-modal { - max-height: 36rem; - font-family: Inter; - - .settings-modal-content { - display: grid; - row-gap: 2rem; - overflow-y: scroll; - } - - .settings-modal-header { - font-weight: bold; - } - - .settings-modal-items { - display: grid; - row-gap: 0.5rem; - - .settings-modal-item { - display: grid; - grid-auto-flow: column; - background-color: var(--background-color); - padding: 0.4rem 1rem; - border-radius: 0.5rem; - align-items: center; - width: 100%; - } - } - - .settings-modal-reset { - display: grid; - row-gap: 1rem; - - button { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover) - ); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx index 3112fd6995..c203edfc37 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -1,6 +1,7 @@ import { - Button, + ChakraProps, Flex, + Grid, Heading, Modal, ModalBody, @@ -16,6 +17,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { IN_PROGRESS_IMAGE_TYPES } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISelect from 'common/components/IAISelect'; import IAISwitch from 'common/components/IAISwitch'; @@ -70,6 +72,13 @@ const selector = createSelector( } ); +const modalSectionStyles: ChakraProps['sx'] = { + flexDirection: 'column', + gap: 2, + p: 4, + bg: 'base.900', +}; + type SettingsModalProps = { /* The button to open the Settings Modal */ children: ReactElement; @@ -135,20 +144,15 @@ const SettingsModal = ({ children }: SettingsModalProps) => { - - - {t('common.settingsLabel')} - - - -
        -
        + + {t('common.settingsLabel')} + + + + { textAlign="center" /> )} -
        - ) => - dispatch(setShouldConfirmOnDelete(e.target.checked)) - } - /> - ) => - dispatch(setShouldDisplayGuides(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseSliders(e.target.checked)) - } - /> -
        + ) => + dispatch(setShouldConfirmOnDelete(e.target.checked)) + } + /> + ) => + dispatch(setShouldDisplayGuides(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseSliders(e.target.checked)) + } + /> +
        -
        -

        Developer

        - ) => - dispatch(setEnableImageDebugging(e.target.checked)) - } - /> -
        + + + Developer + + ) => + dispatch(setEnableImageDebugging(e.target.checked)) + } + /> + -
        - {t('settings.resetWebUI')} - - {t('settings.resetWebUIDesc1')} - {t('settings.resetWebUIDesc2')} -
        + + {t('settings.resetWebUI')} + + {t('settings.resetWebUI')} + + {t('settings.resetWebUIDesc1')} + {t('settings.resetWebUIDesc2')} + + - +
        @@ -244,15 +245,17 @@ const SettingsModal = ({ children }: SettingsModalProps) => { onClose={onRefreshModalClose} isCentered > - + - + + {t('settings.resetComplete')} + diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss b/invokeai/frontend/web/src/features/system/components/SiteHeader.scss deleted file mode 100644 index 59edc9a403..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss +++ /dev/null @@ -1,31 +0,0 @@ -.site-header { - display: grid; - grid-template-columns: auto max-content; -} - -.site-header-left-side { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - - img { - width: 32px; - height: 32px; - } -} - -.site-header-right-side { - display: flex; - align-items: center; - column-gap: 0.5rem; - - .lang-select-btn { - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color); - } - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx index ccbc425590..6aaa989c89 100644 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx +++ b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx @@ -1,8 +1,7 @@ -import { Flex, Link, Text } from '@chakra-ui/react'; +import { Flex, Grid, Link } from '@chakra-ui/react'; import { FaBug, FaCube, FaDiscord, FaGithub, FaKeyboard } from 'react-icons/fa'; -import InvokeAILogo from 'assets/images/logo.png'; import IAIIconButton from 'common/components/IAIIconButton'; import HotkeysModal from './HotkeysModal/HotkeysModal'; @@ -15,39 +14,21 @@ import ThemeChanger from './ThemeChanger'; import LanguagePicker from './LanguagePicker'; -import type { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; import { useTranslation } from 'react-i18next'; import { MdSettings } from 'react-icons/md'; +import InvokeAILogoComponent from './InvokeAILogoComponent'; /** * Header, includes color mode toggle, settings button, status message. */ const SiteHeader = () => { const { t } = useTranslation(); - const appVersion = useAppSelector( - (state: RootState) => state.system.app_version - ); return ( -
        -
        - invoke-ai-logo - - - invoke ai - - - {appVersion} - - -
        + + -
        + @@ -133,8 +114,8 @@ const SiteHeader = () => { icon={} /> -
        -
        + + ); }; diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss b/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss deleted file mode 100644 index 341d2fcb46..0000000000 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss +++ /dev/null @@ -1,19 +0,0 @@ -.status { - font-size: 0.8rem; - font-weight: bold; -} - -.status-good { - color: var(--status-good-color); - text-shadow: 0 0 10px var(--status-good-glow); -} - -.status-bad { - color: var(--status-bad-color); - text-shadow: 0 0 10px var(--status-bad-glow); -} - -.status-working { - color: var(--status-working-color); - text-shadow: 0 0 10px var(--status-working-glow); -} diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx index bacc199015..f47730d221 100644 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx +++ b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx @@ -37,25 +37,18 @@ const StatusIndicator = () => { const dispatch = useAppDispatch(); const { t } = useTranslation(); - let statusStyle; + let statusIdentifier; + if (isConnected && !hasError) { - statusStyle = 'status-good'; + statusIdentifier = 'ok'; } else { - statusStyle = 'status-bad'; + statusIdentifier = 'error'; } let statusMessage = currentStatus; - const intermediateStatuses = [ - t('common.statusGenerating'), - t('common.statusPreparing'), - t('common.statusSavingImage'), - t('common.statusRestoringFaces'), - t('common.statusUpscaling'), - ]; - - if (intermediateStatuses.includes(statusMessage)) { - statusStyle = 'status-working'; + if (isProcessing) { + statusIdentifier = 'working'; } if (statusMessage) @@ -86,7 +79,11 @@ const StatusIndicator = () => { {t(statusMessage as keyof typeof t)} diff --git a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx index f1597315b8..9114a9d9e1 100644 --- a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx +++ b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx @@ -1,4 +1,4 @@ -import { useColorMode, VStack } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -6,13 +6,12 @@ import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { setCurrentTheme } from 'features/ui/store/uiSlice'; import type { ReactNode } from 'react'; -import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { FaCheck, FaPalette } from 'react-icons/fa'; export default function ThemeChanger() { const { t } = useTranslation(); - const { setColorMode, colorMode } = useColorMode(); + const dispatch = useAppDispatch(); const currentTheme = useAppSelector( (state: RootState) => state.ui.currentTheme @@ -22,16 +21,9 @@ export default function ThemeChanger() { dark: t('common.darkTheme'), light: t('common.lightTheme'), green: t('common.greenTheme'), + ocean: t('common.oceanTheme'), }; - useEffect(() => { - // syncs the redux store theme to the chakra's theme on startup and when - // setCurrentTheme is dispatched - if (colorMode !== currentTheme) { - setColorMode(currentTheme); - } - }, [setColorMode, colorMode, currentTheme]); - const handleChangeTheme = (theme: string) => { dispatch(setCurrentTheme(theme)); }; @@ -42,9 +34,10 @@ export default function ThemeChanger() { Object.keys(THEMES).forEach((theme) => { themesToRender.push( : undefined} size="sm" onClick={() => handleChangeTheme(theme)} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss b/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss deleted file mode 100644 index 0208f30a7f..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss +++ /dev/null @@ -1,55 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.floating-show-hide-button { - position: absolute; - top: 50%; - transform: translate(0, -50%); - z-index: 20; - padding: 0; - background-color: red !important; - - &.left { - left: 0; - border-radius: 0 0.5rem 0.5rem 0; - } - - &.right { - right: 0; - border-radius: 0.5rem 0 0 0.5rem; - } - - @include Button( - $btn-width: 2rem, - $btn-height: 12rem, - $icon-size: 20px, - $btn-color: var(--btn-btn-base-color), - $btn-color-hover: var(--btn-btn-base-color-hover) - ); -} - -.show-hide-button-options { - position: absolute; - transform: translate(0, -50%); - z-index: 20; - min-width: 2rem; - - top: 50%; - left: calc(42px + 2rem); - - border-radius: 0 0.5rem 0.5rem 0; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - button { - border-radius: 0 0.3rem 0.3rem 0; - } -} - -.show-hide-button-gallery { - padding-left: 0.75rem; - padding-right: 0.75rem; - background-color: var(--background-color) !important; - // filter: drop-shadow(0.5rem 0px 1rem var(--floating-button-drop-shadow-color)); -} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx index 928e87f0b1..71b18a60a4 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx @@ -22,8 +22,20 @@ const FloatingGalleryButton = () => { tooltip="Show Gallery (G)" tooltipProps={{ placement: 'top' }} aria-label="Show Gallery" - styleClass="floating-show-hide-button right show-hide-button-gallery" onClick={handleShowGallery} + sx={{ + pos: 'absolute', + top: '50%', + transform: 'translate(0, -50%)', + zIndex: 31, + p: 0, + insetInlineEnd: 0, + px: 3, + h: 48, + w: 8, + borderStartEndRadius: 0, + borderEndEndRadius: 0, + }} > diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx index d9e1722f39..24928db923 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx @@ -1,3 +1,4 @@ +import { ChakraProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -15,6 +16,11 @@ import { isEqual } from 'lodash'; import { FaSlidersH } from 'react-icons/fa'; +const floatingButtonStyles: ChakraProps['sx'] = { + borderStartStartRadius: 0, + borderEndStartRadius: 0, +}; + export const floatingSelector = createSelector( [gallerySelector, uiSelector, activeTabNameSelector], (gallery: GalleryState, ui, activeTabName) => { @@ -76,22 +82,32 @@ const FloatingParametersPanelButtons = () => { }; return shouldShowParametersPanelButton ? ( -
        + {shouldShowProcessButtons && ( <> - - + + )} -
        + ) : null; }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss deleted file mode 100644 index edb307941b..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-to-image-area { - display: flex; - flex-direction: column; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.image-to-image-strength-main-option { - display: flex; - row-gap: 0.5rem !important; - - .invokeai__slider-component-label { - color: var(--text-color-secondary); - font-size: 0.9rem !important; - } -} - -.init-image-preview-header { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - - h2 { - font-weight: bold; - font-size: 0.9rem; - } -} - -.init-image-preview { - position: relative; - height: 100%; - width: 100%; - display: flex; - align-items: center; - justify-content: center; - - img { - border-radius: 0.5rem; - object-fit: contain; - position: absolute; - } -} - -.image-to-image-current-image-display { - position: relative; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx index a3c1ca824d..173985697f 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx @@ -1,33 +1,49 @@ +import { ChakraProps, Flex, Grid } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import ImageUploadButton from 'common/components/ImageUploaderButton'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; import InitImagePreview from './InitImagePreview'; +const workareaSplitViewStyle: ChakraProps['sx'] = { + flexDirection: 'column', + height: '100%', + width: '100%', + gap: 4, + + padding: 4, +}; + const ImageToImageDisplay = () => { const initialImage = useAppSelector( (state: RootState) => state.generation.initialImage ); - const { currentImage } = useAppSelector((state: RootState) => state.gallery); - const imageToImageComponent = initialImage ? ( -
        + -
        + ) : ( ); return ( -
        -
        {imageToImageComponent}
        - {currentImage && ( -
        - -
        - )} -
        + + + {imageToImageComponent} + + + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx deleted file mode 100644 index 98a6bb8ae6..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; -import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; -import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; - -import { useTranslation } from 'react-i18next'; - -export default function ImageToImageOptions() { - const { t } = useTranslation(); - const imageToImageAccordionItems = { - imageToImage: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx index 531e95f161..d5f2268cb8 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx @@ -10,19 +10,29 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; import PromptInput from 'features/parameters/components/PromptInput/PromptInput'; import InvokeOptionsPanel from 'features/ui/components/InvokeParametersPanel'; import { useTranslation } from 'react-i18next'; -import ImageToImageOptions from './ImageToImageOptions'; +import ImageToImageSettings from './ImageToImageSettings'; export default function ImageToImagePanel() { const { t } = useTranslation(); const imageToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + imageToImage: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -60,13 +70,11 @@ export default function ImageToImagePanel() { return ( - + - - ); diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx new file mode 100644 index 0000000000..fb53c7006b --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx @@ -0,0 +1,15 @@ +import { VStack } from '@chakra-ui/react'; +import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; +import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; + +import { useTranslation } from 'react-i18next'; + +export default function ImageToImageSettings() { + const { t } = useTranslation(); + return ( + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx index d8242062a6..9eb26129a7 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx @@ -1,4 +1,4 @@ -import { Image, useToast } from '@chakra-ui/react'; +import { Flex, Image, Text, useToast } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageUploaderIconButton from 'common/components/ImageUploaderIconButton'; @@ -28,22 +28,49 @@ export default function InitImagePreview() { return ( <> -
        -

        {t('parameters.initialImage')}

        + + + {t('parameters.initialImage')} + -
        + {initialImage && ( -
        + -
        + )} ); diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css new file mode 100644 index 0000000000..f43861edba --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css @@ -0,0 +1,35 @@ +.ltr-parameters-panel-transition-enter { + transform: translateX(-150%); +} + +.ltr-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-parameters-panel-transition-exit { + transform: translateX(0); +} + +.ltr-parameters-panel-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-enter { + transform: translateX(150%); +} + +.rtl-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-exit { + transform: translateX(0); +} + +.rtl-parameters-panel-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss deleted file mode 100644 index 69b9755ca8..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss +++ /dev/null @@ -1,90 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.parameters-panel-wrapper-enter { - transform: translateX(-150%); -} - -.parameters-panel-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper-exit { - transform: translateX(0); -} - -.parameters-panel-wrapper-exit-active { - transform: translateX(-150%); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper { - background-color: var(--background-color); - height: $app-content-height; - width: $options-bar-max-width; - max-width: $options-bar-max-width; - - flex-shrink: 0; - position: relative; - overflow-y: scroll; - @include HideScrollbar; - - .parameters-panel { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - height: 100%; - @include HideScrollbar; - background-color: var(--background-color); - } - - &[data-pinned='false'] { - z-index: 20; - - position: fixed; - top: 0; - left: 0; - filter: var(--floating-panel-drop-shadow); - width: calc($options-bar-max-width + 2rem); - max-width: calc($options-bar-max-width + 2rem); - height: 100%; - - .parameters-panel-margin { - margin: 1rem; - } - } - - .parameters-panel-pin-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 1rem; - right: 1rem; - z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - } - svg { - opacity: 0.5; - } - } -} - -.invoke-ai-logo-wrapper { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - padding-top: $progress-bar-thickness; - - img { - width: 32px; - height: 32px; - } - - h1 { - font-size: 1.4rem; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx index 8dcd4f4a78..e7e610df6c 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, Flex, Tooltip, Icon, useTheme } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -15,9 +15,18 @@ import { CSSTransition } from 'react-transition-group'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setParametersPanelScrollPosition } from 'features/ui/store/uiSlice'; -import InvokeAILogo from 'assets/images/logo.png'; import { isEqual } from 'lodash'; import { uiSelector } from '../store/uiSelectors'; +import { useTranslation } from 'react-i18next'; +import { + APP_CONTENT_HEIGHT, + OPTIONS_BAR_MAX_WIDTH, + PROGRESS_BAR_THICKNESS, +} from 'theme/util/constants'; +import InvokeAILogoComponent from 'features/system/components/InvokeAILogoComponent'; + +import './InvokeParametersPanel.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; type Props = { children: ReactNode }; @@ -47,6 +56,8 @@ const optionsPanelSelector = createSelector( const InvokeOptionsPanel = (props: Props) => { const dispatch = useAppDispatch(); + const { direction } = useTheme(); + const { shouldShowParametersPanel, shouldHoldParametersPanelOpen, @@ -60,6 +71,8 @@ const InvokeOptionsPanel = (props: Props) => { const { children } = props; + const { t } = useTranslation(); + // Hotkeys useHotkeys( 'o', @@ -145,11 +158,10 @@ const InvokeOptionsPanel = (props: Props) => { } unmountOnExit timeout={200} - classNames="parameters-panel-wrapper" + classNames={`${direction}-parameters-panel-transition`} > -
        { onMouseOver={ !shouldPinParametersPanel ? cancelCloseOptionsPanelTimer : undefined } - style={{ - borderRight: !shouldPinParametersPanel - ? '0.3rem solid var(--tab-list-text-inactive)' - : '', + sx={{ + borderInlineEndWidth: !shouldPinParametersPanel ? 5 : 0, + borderInlineEndStyle: 'solid', + bg: 'base.900', + borderColor: 'base.700', + height: APP_CONTENT_HEIGHT, + width: OPTIONS_BAR_MAX_WIDTH, + maxWidth: OPTIONS_BAR_MAX_WIDTH, + flexShrink: 0, + position: 'relative', + overflowY: 'scroll', + overflowX: 'hidden', + ...no_scrollbar, + ...(!shouldPinParametersPanel && { + zIndex: 20, + position: 'fixed', + top: 0, + insetInlineStart: 0, + width: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + maxWidth: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + height: '100%', + }), }} > -
        -
        + ) => { if (e.target !== optionsPanelContainerRef.current) { @@ -175,28 +204,44 @@ const InvokeOptionsPanel = (props: Props) => { !shouldPinParametersPanel && setCloseOptionsPanelTimer(); } }} + sx={{ + display: 'flex', + flexDirection: 'column', + rowGap: 2, + height: '100%', + }} > - -
        + - {shouldPinParametersPanel ? : } -
        + +
        {!shouldPinParametersPanel && ( -
        - invoke-ai-logo -

        - invoke ai -

        -
        + + + )} {children} -
        -
        -
        + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss deleted file mode 100644 index 1a113b4148..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.app-tabs { - display: grid; - grid-template-columns: min-content auto; - column-gap: 1rem; - // height: 100%; - height: $app-content-height; -} - -.app-tabs-list { - display: grid; - row-gap: 0.3rem; - grid-auto-rows: min-content; - color: var(--tab-list-text-inactive); - - button { - font-size: 0.85rem; - padding: 0.5rem; - - &:hover { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - - svg { - width: 24px; - height: 24px; - } - - &[aria-selected='true'] { - background-color: var(--tab-list-bg); - color: var(--tab-list-text); - font-weight: bold; - border-radius: 0.3rem; - border: none; - } - } -} - -.app-tabs-panels { - .app-tabs-panel { - padding: 0; - height: 100%; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx index f330fbd0ed..fb16969319 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx @@ -1,16 +1,18 @@ -import { Tab, TabPanel, TabPanels, Tabs, Tooltip } from '@chakra-ui/react'; +import { + Icon, + Tab, + TabList, + TabPanel, + TabPanels, + Tabs, + Tooltip, +} from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import NodesWIP from 'common/components/WorkInProgress/NodesWIP'; import { PostProcessingWIP } from 'common/components/WorkInProgress/PostProcessingWIP'; import TrainingWIP from 'common/components/WorkInProgress/Training'; import useUpdateTranslations from 'common/hooks/useUpdateTranslations'; -import ImageToImageIcon from 'common/icons/ImageToImageIcon'; -import NodesIcon from 'common/icons/NodesIcon'; -import PostprocessingIcon from 'common/icons/PostprocessingIcon'; -import TextToImageIcon from 'common/icons/TextToImageIcon'; -import TrainingIcon from 'common/icons/TrainingIcon'; -import UnifiedCanvasIcon from 'common/icons/UnifiedCanvasIcon'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setShouldShowGallery } from 'features/gallery/store/gallerySlice'; import Lightbox from 'features/lightbox/components/Lightbox'; @@ -23,6 +25,14 @@ import { import i18n from 'i18n'; import { ReactElement } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; +import { + MdDeviceHub, + MdFlashOn, + MdGridOn, + MdPhotoFilter, + MdPhotoLibrary, + MdTextFields, +} from 'react-icons/md'; import { activeTabIndexSelector } from '../store/uiSelectors'; import { floatingSelector } from './FloatingParametersPanelButtons'; import ImageToImageWorkarea from './ImageToImage'; @@ -37,32 +47,32 @@ export interface InvokeTabInfo { export const tabDict: Record = { txt2img: { - title: , + title: , workarea: , tooltip: 'Text To Image', }, img2img: { - title: , + title: , workarea: , tooltip: 'Image To Image', }, unifiedCanvas: { - title: , + title: , workarea: , tooltip: 'Unified Canvas', }, nodes: { - title: , + title: , workarea: , tooltip: 'Nodes', }, postprocess: { - title: , + title: , workarea: , tooltip: 'Post Processing', }, training: { - title: , + title: , workarea: , tooltip: 'Training', }, @@ -152,7 +162,7 @@ export default function InvokeTabs() { key={key} hasArrow label={tabDict[key as keyof typeof tabDict].tooltip} - placement="right" + placement="end" > {tabDict[key as keyof typeof tabDict].title} @@ -165,7 +175,7 @@ export default function InvokeTabs() { const tabPanelsToRender: ReactElement[] = []; Object.keys(tabDict).forEach((key) => { tabPanelsToRender.push( - + {tabDict[key as keyof typeof tabDict].workarea} ); @@ -176,18 +186,14 @@ export default function InvokeTabs() { return ( { dispatch(setActiveTab(index)); }} > -
        {renderTabs()}
        - - {isLightBoxOpen ? : renderTabPanels()} - + {renderTabs()} + {isLightBoxOpen ? : renderTabPanels()}
        ); } diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss deleted file mode 100644 index a3821d9a77..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss +++ /dev/null @@ -1,71 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.workarea-wrapper { - position: relative; - width: 100%; - height: 100%; - - .workarea-main { - display: flex; - column-gap: 1rem; - height: 100%; - - .workarea-children-wrapper { - position: relative; - width: 100%; - height: 100%; - } - .workarea-split-view { - width: 100%; - height: 100%; - display: grid; - grid-template-columns: 1fr 1fr; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - .workarea-split-view-left { - padding-right: 0.5rem; - } - .workarea-split-view-right { - padding-left: 0.5rem; - } - } - - .workarea-single-view { - width: 100%; - height: 100%; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - } - - .workarea-split-view-left, - .workarea-split-view-right { - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - padding: 1rem; - } - } -} -.workarea-split-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 0; - right: 0; - // z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - svg { - opacity: 1; - } - } - svg { - opacity: 0.5; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx index d3aca2dae9..0210d249cf 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, BoxProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageGallery from 'features/gallery/components/ImageGallery'; @@ -8,27 +8,20 @@ import { uiSelector, } from 'features/ui/store/uiSelectors'; import { DragEvent, ReactNode } from 'react'; -import { VscSplitHorizontal } from 'react-icons/vsc'; -import { - setDoesCanvasNeedScaling, - setInitialCanvasImage, -} from 'features/canvas/store/canvasSlice'; +import { setInitialCanvasImage } from 'features/canvas/store/canvasSlice'; import useGetImageByUuid from 'features/gallery/hooks/useGetImageByUuid'; import { lightboxSelector } from 'features/lightbox/store/lightboxSelectors'; -import { setShouldShowDualDisplay } from 'features/ui/store/uiSlice'; import { isEqual } from 'lodash'; const workareaSelector = createSelector( [uiSelector, lightboxSelector, activeTabNameSelector], (ui, lightbox, activeTabName) => { - const { shouldShowDualDisplay, shouldPinParametersPanel } = ui; + const { shouldPinParametersPanel } = ui; const { isLightboxOpen } = lightbox; return { - shouldShowDualDisplay, shouldPinParametersPanel, isLightboxOpen, - shouldShowDualDisplayButton: ['inpainting'].includes(activeTabName), activeTabName, }; }, @@ -39,29 +32,18 @@ const workareaSelector = createSelector( } ); -type InvokeWorkareaProps = { +type InvokeWorkareaProps = BoxProps & { optionsPanel: ReactNode; children: ReactNode; - styleClass?: string; }; const InvokeWorkarea = (props: InvokeWorkareaProps) => { const dispatch = useAppDispatch(); - const { optionsPanel, children, styleClass } = props; - const { - activeTabName, - shouldShowDualDisplay, - isLightboxOpen, - shouldShowDualDisplayButton, - } = useAppSelector(workareaSelector); + const { optionsPanel, children, ...rest } = props; + const { activeTabName, isLightboxOpen } = useAppSelector(workareaSelector); const getImageByUuid = useGetImageByUuid(); - const handleDualDisplay = () => { - dispatch(setShouldShowDualDisplay(!shouldShowDualDisplay)); - dispatch(setDoesCanvasNeedScaling(true)); - }; - const handleDrop = (e: DragEvent) => { const uuid = e.dataTransfer.getData('invokeai/imageUuid'); const image = getImageByUuid(uuid); @@ -74,30 +56,15 @@ const InvokeWorkarea = (props: InvokeWorkareaProps) => { }; return ( -
        -
        + + {optionsPanel} -
        + {children} - {shouldShowDualDisplayButton && ( - -
        - -
        -
        - )} -
        +
        {!isLightboxOpen && } -
        -
        + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss deleted file mode 100644 index 65cfb8a2bc..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.text-to-image-area { - padding: 1rem; - height: 100%; -} diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx index 36cd60fd36..219b70bc2d 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx @@ -1,12 +1,20 @@ +import { Box, Flex } from '@chakra-ui/react'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; const TextToImageDisplay = () => { return ( -
        -
        + + -
        -
        + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx index ee9f7ace3f..09b96be20c 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx @@ -10,7 +10,7 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,11 @@ export default function TextToImagePanel() { const { t } = useTranslation(); const textToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -59,12 +64,11 @@ export default function TextToImagePanel() { return ( - + - ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss deleted file mode 100644 index 6a99c38003..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss +++ /dev/null @@ -1,103 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.inpainting-main-area { - display: flex; - flex-direction: column; - align-items: center; - row-gap: 1rem; - width: 100%; - height: 100%; - - .inpainting-settings { - display: flex; - align-items: center; - column-gap: 0.5rem; - - svg { - transform: scale(0.9); - } - - .inpainting-buttons-group { - display: flex; - align-items: center; - column-gap: 0.5rem; - } - - .inpainting-button-dropdown { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } - - .inpainting-color-picker { - margin-left: 1rem; - } - - .inpainting-brush-options { - display: flex; - align-items: center; - column-gap: 1rem; - } - } -} - -.inpainting-canvas-area { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.inpainting-canvas-spiner { - display: flex; - align-items: center; - width: 100%; - height: 100%; -} - -.inpainting-canvas-container { - display: flex; - position: relative; - height: 100%; - width: 100%; - border-radius: 0.5rem; -} - -.inpainting-canvas-wrapper { - position: relative; -} - -.inpainting-canvas-stage { - outline: none; - border-radius: 0.5rem; - box-shadow: 0px 0px 0px 1px var(--border-color-light); - overflow: hidden; - - canvas { - outline: none; - border-radius: 0.5rem; - } -} - -.inpainting-options-btn { - min-height: 2rem; -} - -.canvas-status-text { - position: absolute; - top: 0; - left: 0; - background-color: var(--background-color); - opacity: 0.65; - display: flex; - flex-direction: column; - font-size: 0.8rem; - padding: 0.25rem; - min-width: 12rem; - border-radius: 0.25rem; - margin: 0.25rem; - pointer-events: none; -} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx index f06c1ae988..2ca4139ed0 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx @@ -1,6 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; -import { Flex } from '@chakra-ui/react'; +import { Box, Flex } from '@chakra-ui/react'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; @@ -45,21 +45,28 @@ const UnifiedCanvasDisplayBeta = () => { }, [dispatch]); return ( -
        + - + {doesCanvasNeedScaling ? : } -
        + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx index 44deea45c6..9b9310b197 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasLimitStrokesToBox from './UnifiedCanvasLimitStrokesToBox'; export default function UnifiedCanvasBaseBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx index 387495598d..1a5e42461b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasColorPicker from './UnifiedCanvasColorPicker'; export default function UnifiedCanvasBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx index f38d274189..0ff57236c2 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx @@ -49,7 +49,6 @@ export default function UnifiedCanvasBrushSize() { onChange={(newSize) => dispatch(setBrushSize(newSize))} sliderNumberInputProps={{ max: 500 }} inputReadOnly={false} - width="100px" isCompact /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index e6957a63d7..73db41d0d3 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -80,38 +80,38 @@ export default function UnifiedCanvasColorPicker() { trigger="hover" triggerComponent={ } > - + {layer === 'base' && ( dispatch(setBrushColor(newColor))} /> )} {layer === 'mask' && ( dispatch(setMaskColor(newColor))} /> )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx index 9e24e0acfb..71f41496ed 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx @@ -6,7 +6,7 @@ import UnifiedCanvasPreserveMask from './UnifiedCanvasPreserveMask'; export default function UnifiedCanvasMaskBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx index 2c5a8277db..8881c93bb1 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx @@ -5,7 +5,7 @@ import UnifiedCanvasSnapToGrid from './UnifiedCanvasSnapToGrid'; export default function UnifiedCanvasMoveSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx index 09c6f38812..4dc3778b71 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx @@ -68,7 +68,7 @@ const UnifiedCanvasSettings = () => { /> } > - + + {layer == 'base' && ['brush', 'eraser', 'colorPicker'].includes(tool) && ( )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx index 6c537d8930..4b73d28749 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx @@ -32,7 +32,7 @@ export default function UnifiedCanvasMoveTool() { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx index 93a67ad574..5880aa037b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx @@ -25,7 +25,7 @@ export default function UnifiedCanvasProcessingButtons() { }; return ( - + } onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} isDisabled={isStaging} + colorScheme="error" /> ); } diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx index 0b941dd706..82b48fe435 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx @@ -113,13 +113,13 @@ const UnifiedCanvasToolSelect = () => { const handleEraseBoundingBox = () => dispatch(addEraseRect()); return ( - + } - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -127,7 +127,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (B)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -152,7 +152,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} width="max-content" diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx index 9860bd12f7..cf41020cbb 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx @@ -23,30 +23,30 @@ const UnifiedCanvasToolbarBeta = () => { ); return ( - + - + - + - + - + - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx index 37e7e71fdb..ac7f086bea 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx @@ -1,9 +1,10 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; -import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; +import IAICanvasToolbar from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { debounce, isEqual } from 'lodash'; @@ -43,16 +44,39 @@ const UnifiedCanvasDisplay = () => { }, [dispatch]); return ( -
        -
        -
        - -
        - {doesCanvasNeedScaling ? : } -
        -
        -
        -
        + + + + + {doesCanvasNeedScaling ? : } + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx index 392648075e..97ba3f23ec 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx @@ -10,7 +10,7 @@ import SymmetryToggle from 'features/parameters/components/AdvancedParameters/Ou import SeedSettings from 'features/parameters/components/AdvancedParameters/Seed/SeedSettings'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,16 @@ export default function UnifiedCanvasPanel() { const { t } = useTranslation(); const unifiedCanvasAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + unifiedCanvasImg2Img: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -55,28 +65,14 @@ export default function UnifiedCanvasPanel() { }, }; - const unifiedCanvasImg2ImgAccordion = { - unifiedCanvasImg2Img: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - ), - }, - }; - return ( - + - - + {/* */} ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx index 49db741541..b35504a2ac 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx @@ -10,10 +10,7 @@ export default function UnifiedCanvasWorkarea() { (state: RootState) => state.ui.shouldUseCanvasBetaLayout ); return ( - } - styleClass="inpainting-workarea-overrides" - > + }> {shouldUseCanvasBetaLayout ? ( ) : ( diff --git a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts index 3bbb6c206f..d9abae23d8 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts @@ -10,7 +10,6 @@ const initialtabsState: UIState = { shouldHoldParametersPanelOpen: false, shouldPinParametersPanel: true, shouldShowParametersPanel: true, - shouldShowDualDisplay: true, shouldShowImageDetails: false, shouldUseCanvasBetaLayout: false, shouldShowExistingModelsInSearch: false, @@ -52,9 +51,6 @@ export const uiSlice = createSlice({ ) => { state.shouldHoldParametersPanelOpen = action.payload; }, - setShouldShowDualDisplay: (state, action: PayloadAction) => { - state.shouldShowDualDisplay = action.payload; - }, setShouldShowImageDetails: (state, action: PayloadAction) => { state.shouldShowImageDetails = action.payload; }, @@ -83,7 +79,6 @@ export const { setShouldHoldParametersPanelOpen, setShouldPinParametersPanel, setShouldShowParametersPanel, - setShouldShowDualDisplay, setShouldShowImageDetails, setShouldUseCanvasBetaLayout, setShouldShowExistingModelsInSearch, diff --git a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts index cd9b3817a1..5885bc3ed7 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts @@ -7,7 +7,6 @@ export interface UIState { shouldHoldParametersPanelOpen: boolean; shouldPinParametersPanel: boolean; shouldShowParametersPanel: boolean; - shouldShowDualDisplay: boolean; shouldShowImageDetails: boolean; shouldUseCanvasBetaLayout: boolean; shouldShowExistingModelsInSearch: boolean; diff --git a/invokeai/frontend/web/src/i18.d.ts b/invokeai/frontend/web/src/i18.d.ts index 61878384e6..90cee53385 100644 --- a/invokeai/frontend/web/src/i18.d.ts +++ b/invokeai/frontend/web/src/i18.d.ts @@ -1,11 +1,16 @@ import 'i18next'; +import en from '../public/locales/en.json'; + declare module 'i18next' { // Extend CustomTypeOptions interface CustomTypeOptions { // Setting Default Namespace As English defaultNS: 'en'; // Custom Types For Resources + resources: { + en: typeof en; + }; // Never Return Null returnNull: false; } diff --git a/invokeai/frontend/web/src/main.tsx b/invokeai/frontend/web/src/main.tsx index 09b99d37f6..edbca0c368 100644 --- a/invokeai/frontend/web/src/main.tsx +++ b/invokeai/frontend/web/src/main.tsx @@ -1,38 +1,36 @@ -import { ChakraProvider } from '@chakra-ui/react'; -import createCache from '@emotion/cache'; -import { CacheProvider } from '@emotion/react'; -import React from 'react'; +import React, { lazy } from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import { store } from './app/store'; import { persistor } from './persistor'; +import '@fontsource/inter/100.css'; +import '@fontsource/inter/200.css'; +import '@fontsource/inter/300.css'; +import '@fontsource/inter/400.css'; +import '@fontsource/inter/500.css'; +import '@fontsource/inter/600.css'; +import '@fontsource/inter/700.css'; +import '@fontsource/inter/800.css'; +import '@fontsource/inter/900.css'; -import App from './app/App'; import Loading from './Loading'; -export const emotionCache = createCache({ - key: 'invokeai-style-cache', - prepend: true, -}); - -// Custom Styling -import './styles/index.scss'; - // Localization import './i18n'; +const App = lazy(() => import('./app/App')); +const ThemeLocaleProvider = lazy(() => import('./app/ThemeLocaleProvider')); + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } persistor={persistor}> - - - }> - - - - + }> + + + + diff --git a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss index 93772d4ef8..ee3795eae5 100644 --- a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss +++ b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss @@ -5,36 +5,36 @@ $btn-height: 100%, $icon-size: 20px ) { - min-width: $btn-width; - min-height: $btn-height; - background-color: $btn-color !important; + // min-width: $btn-width; + // min-height: $btn-height; + // background-color: $btn-color; - &:hover { - background-color: $btn-color-hover; - } + // &:hover { + // background-color: $btn-color-hover; + // } - &:disabled { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color); - } - } + // &:disabled { + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color); + // } + // } - svg { - width: $icon-size; - height: $icon-size; - color: var(--btn-svg-color); - } + // svg { + // width: $icon-size; + // height: $icon-size; + // color: var(--btn-svg-color); + // } } @mixin BaseButton { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color-hover); + // } + // &:disabled { + // &:hover { + // background-color: var(--btn-base-color); + // } + // } } diff --git a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss index 0cf98567be..7f592ffe7c 100644 --- a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss +++ b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss @@ -1,159 +1,159 @@ -@media (max-width: 600px) { - #root { - .app-content { - padding: 5px; - .site-header { - position: fixed; - display: flex; - height: 100px; - z-index: 1; - .site-header-left-side { - position: absolute; - display: flex; - min-width: 145px; - float: left; - padding-left: 0; - } - .site-header-right-side { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; - grid-template-rows: 25px 25px 25px; - grid-template-areas: - 'logoSpace logoSpace logoSpace sampler sampler sampler' - 'status status status status status status' - 'btn1 btn2 btn3 btn4 btn5 btn6'; - row-gap: 15px; - .chakra-popover__popper { - grid-area: logoSpace; - } - > :nth-child(1).chakra-text { - grid-area: status; - width: 100%; - display: flex; - justify-content: center; - } - > :nth-child(2) { - grid-area: sampler; - display: flex; - justify-content: center; - align-items: center; - select { - width: 185px; - margin-top: 10px; - } - .chakra-select__icon-wrapper { - right: 10px; - svg { - margin-top: 10px; - } - } - } - > :nth-child(3) { - grid-area: btn1; - } - > :nth-child(4) { - grid-area: btn2; - } - > :nth-child(6) { - grid-area: btn3; - } - > :nth-child(7) { - grid-area: btn4; - } - > :nth-child(8) { - grid-area: btn5; - } - > :nth-child(9) { - grid-area: btn6; - } - } - } - .app-tabs { - position: fixed; - display: flex; - flex-direction: column; - row-gap: 15px; - max-width: 100%; - overflow: hidden; - margin-top: 120px; - .app-tabs-list { - display: flex; - justify-content: space-between; - } - .app-tabs-panels { - overflow: hidden; - overflow-y: scroll; - .workarea-main { - display: grid; - grid-template-areas: - 'workarea' - 'options' - 'gallery'; - row-gap: 15px; - .parameters-panel-wrapper { - grid-area: options; - width: 100%; - max-width: 100%; - height: inherit; - overflow: inherit; - padding: 0 10px; - .main-settings-row { - max-width: 100%; - } - .advanced-parameters-item { - max-width: 100%; - } - } - .workarea-children-wrapper { - grid-area: workarea; - .workarea-split-view { - display: flex; - flex-direction: column; - } - .current-image-options { - column-gap: 3px; - } - .text-to-image-area { - padding: 0; - } - .current-image-preview { - height: 430px; - } +// @media (max-width: 600px) { +// #root { +// .app-content { +// padding: 5px; +// .site-header { +// position: fixed; +// display: flex; +// height: 100px; +// z-index: 1; +// .site-header-left-side { +// position: absolute; +// display: flex; +// min-width: 145px; +// float: left; +// padding-left: 0; +// } +// .site-header-right-side { +// display: grid; +// grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; +// grid-template-rows: 25px 25px 25px; +// grid-template-areas: +// 'logoSpace logoSpace logoSpace sampler sampler sampler' +// 'status status status status status status' +// 'btn1 btn2 btn3 btn4 btn5 btn6'; +// row-gap: 15px; +// .chakra-popover__popper { +// grid-area: logoSpace; +// } +// > :nth-child(1).chakra-text { +// grid-area: status; +// width: 100%; +// display: flex; +// justify-content: center; +// } +// > :nth-child(2) { +// grid-area: sampler; +// display: flex; +// justify-content: center; +// align-items: center; +// select { +// width: 185px; +// margin-top: 10px; +// } +// .chakra-select__icon-wrapper { +// right: 10px; +// svg { +// margin-top: 10px; +// } +// } +// } +// > :nth-child(3) { +// grid-area: btn1; +// } +// > :nth-child(4) { +// grid-area: btn2; +// } +// > :nth-child(6) { +// grid-area: btn3; +// } +// > :nth-child(7) { +// grid-area: btn4; +// } +// > :nth-child(8) { +// grid-area: btn5; +// } +// > :nth-child(9) { +// grid-area: btn6; +// } +// } +// } +// .app-tabs { +// position: fixed; +// display: flex; +// flex-direction: column; +// row-gap: 15px; +// max-width: 100%; +// overflow: hidden; +// margin-top: 120px; +// .app-tabs-list { +// display: flex; +// justify-content: space-between; +// } +// .app-tabs-panels { +// overflow: hidden; +// overflow-y: scroll; +// .workarea-main { +// display: grid; +// grid-template-areas: +// 'workarea' +// 'options' +// 'gallery'; +// row-gap: 15px; +// .parameters-panel-wrapper { +// grid-area: options; +// width: 100%; +// max-width: 100%; +// height: inherit; +// overflow: inherit; +// padding: 0 10px; +// .main-settings-row { +// max-width: 100%; +// } +// .advanced-parameters-item { +// max-width: 100%; +// } +// } +// .workarea-children-wrapper { +// grid-area: workarea; +// .workarea-split-view { +// display: flex; +// flex-direction: column; +// } +// .current-image-options { +// column-gap: 3px; +// } +// .text-to-image-area { +// padding: 0; +// } +// .current-image-preview { +// height: 430px; +// } - //image 2 image - .image-upload-button { - row-gap: 10px; - padding: 5px; - svg { - width: 2rem; - height: 2rem; - margin-top: 10px; - } - } +// //image 2 image +// .image-upload-button { +// row-gap: 10px; +// padding: 5px; +// svg { +// width: 2rem; +// height: 2rem; +// margin-top: 10px; +// } +// } - //Cavas Painting - .inpainting-settings { - display: flex; - flex-wrap: wrap; - row-gap: 10px; - } - .inpainting-canvas-area { - .konvajs-content { - height: 400px !important; - } - } - } - .image-gallery-wrapper { - grid-area: gallery; - min-height: 400px; - .image-gallery-popup { - width: 100% !important; - max-width: 100% !important; - } - } - } - } - } - } - } -} +// //Cavas Painting +// .inpainting-settings { +// display: flex; +// flex-wrap: wrap; +// row-gap: 10px; +// } +// .inpainting-canvas-area { +// .konvajs-content { +// height: 400px !important; +// } +// } +// } +// .image-gallery-wrapper { +// grid-area: gallery; +// min-height: 400px; +// .image-gallery-popup { +// width: 100% !important; +// max-width: 100% !important; +// } +// } +// } +// } +// } +// } +// } +// } diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss index 13c8a507c1..88d2859cb3 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss @@ -1,4 +1,4 @@ -[data-theme='dark'] { +[data-theme='asdf'] { // General Colors --white: rgb(255, 255, 255); diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss index 4c4f93dfbf..67efb7e3fa 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss @@ -1,138 +1,138 @@ -[data-theme='light'] { - // General Colors - --white: rgb(255, 255, 255); +// [data-theme='light'] { +// // General Colors +// --white: rgb(255, 255, 255); - // Accent Colors - --accent-color-dim: rgb(186, 146, 0); - --accent-color: rgb(235, 185, 5); - --accent-color-bright: rgb(255, 200, 0); - --accent-color-hover: var(--accent-color-bright); +// // Accent Colors +// --accent-color-dim: rgb(186, 146, 0); +// --accent-color: rgb(235, 185, 5); +// --accent-color-bright: rgb(255, 200, 0); +// --accent-color-hover: var(--accent-color-bright); - // App Colors - --root-bg-color: rgb(255, 255, 255); - --background-color: rgb(220, 222, 224); - --background-color-light: rgb(250, 252, 254); - --background-color-secondary: rgb(208, 210, 212); +// // App Colors +// --root-bg-color: rgb(255, 255, 255); +// --background-color: rgb(220, 222, 224); +// --background-color-light: rgb(250, 252, 254); +// --background-color-secondary: rgb(208, 210, 212); - --text-color: rgb(0, 0, 0); - --text-color-secondary: rgb(40, 40, 40); - --subtext-color: rgb(24, 24, 34); - --subtext-color-bright: rgb(142, 144, 146); +// --text-color: rgb(0, 0, 0); +// --text-color-secondary: rgb(40, 40, 40); +// --subtext-color: rgb(24, 24, 34); +// --subtext-color-bright: rgb(142, 144, 146); - --border-color: rgb(200, 200, 200); - --border-color-light: rgb(147, 147, 147); +// --border-color: rgb(200, 200, 200); +// --border-color-light: rgb(147, 147, 147); - --svg-color: rgb(50, 50, 50); +// --svg-color: rgb(50, 50, 50); - --invalid: rgb(255, 75, 75); - --invalid-secondary: rgb(120, 5, 5); +// --invalid: rgb(255, 75, 75); +// --invalid-secondary: rgb(120, 5, 5); - --destructive-color: rgb(237, 51, 51); - --destructive-color-hover: rgb(255, 55, 55); +// --destructive-color: rgb(237, 51, 51); +// --destructive-color-hover: rgb(255, 55, 55); - --warning-color: rgb(224, 142, 42); - --warning-color-hover: rgb(255, 167, 60); +// --warning-color: rgb(224, 142, 42); +// --warning-color-hover: rgb(255, 167, 60); - // Error status colors - --border-color-invalid: rgb(255, 80, 50); - --box-shadow-color-invalid: none; +// // Error status colors +// --border-color-invalid: rgb(255, 80, 50); +// --box-shadow-color-invalid: none; - // Tabs - --tab-color: rgb(202, 204, 206); - --tab-hover-color: rgb(196, 198, 200); - --tab-panel-bg: rgb(206, 208, 210); - --tab-list-bg: rgb(235, 185, 5); - --tab-list-text: rgb(0, 0, 0); - --tab-list-text-inactive: rgb(106, 108, 110); +// // Tabs +// --tab-color: rgb(202, 204, 206); +// --tab-hover-color: rgb(196, 198, 200); +// --tab-panel-bg: rgb(206, 208, 210); +// --tab-list-bg: rgb(235, 185, 5); +// --tab-list-text: rgb(0, 0, 0); +// --tab-list-text-inactive: rgb(106, 108, 110); - // Button Colors - --btn-base-color: rgb(184, 186, 188); - --btn-base-color-hover: rgb(230, 232, 234); +// // Button Colors +// --btn-base-color: rgb(184, 186, 188); +// --btn-base-color-hover: rgb(230, 232, 234); - --btn-load-more: rgb(202, 204, 206); - --btn-load-more-hover: rgb(178, 180, 182); - --btn-svg-color: rgb(0, 0, 0); +// --btn-load-more: rgb(202, 204, 206); +// --btn-load-more-hover: rgb(178, 180, 182); +// --btn-svg-color: rgb(0, 0, 0); - --btn-delete-image: rgb(213, 49, 49); +// --btn-delete-image: rgb(213, 49, 49); - // IAI Button Colors - --btn-checkbox-border-hover: rgb(176, 178, 182); - // Progress Bar Color - --progress-bar-color: rgb(235, 185, 5); +// // IAI Button Colors +// --btn-checkbox-border-hover: rgb(176, 178, 182); +// // Progress Bar Color +// --progress-bar-color: rgb(235, 185, 5); - // Prompt Box Colors - --prompt-bg-color: rgb(225, 227, 229); - // Switch - --switch-bg-color: rgb(178, 180, 182); - --switch-bg-active-color: rgb(235, 185, 5); +// // Prompt Box Colors +// --prompt-bg-color: rgb(225, 227, 229); +// // Switch +// --switch-bg-color: rgb(178, 180, 182); +// --switch-bg-active-color: rgb(235, 185, 5); - // Slider - --slider-color: var(--accent-color); - --slider-mark-color: rgb(0, 0, 0); +// // Slider +// --slider-color: var(--accent-color); +// --slider-mark-color: rgb(0, 0, 0); - // Resizable - --resizeable-handle-border-color: rgb(160, 162, 164); +// // Resizable +// --resizeable-handle-border-color: rgb(160, 162, 164); - // Metadata Viewer - --metadata-bg-color: rgba(230, 230, 230, 0.9); - --metadata-json-bg-color: rgba(0, 0, 0, 0.1); +// // Metadata Viewer +// --metadata-bg-color: rgba(230, 230, 230, 0.9); +// --metadata-json-bg-color: rgba(0, 0, 0, 0.1); - // Status Message - --status-good-color: rgb(21, 126, 0); - --status-good-glow: var(--background-color); - --status-working-color: rgb(235, 141, 0); - --status-working-glow: var(--background-color); - --status-bad-color: rgb(202, 0, 0); - --status-bad-glow: var(--background-color); - --notice-color: rgb(255, 71, 90); +// // Status Message +// --status-good-color: rgb(21, 126, 0); +// --status-good-glow: var(--background-color); +// --status-working-color: rgb(235, 141, 0); +// --status-working-glow: var(--background-color); +// --status-bad-color: rgb(202, 0, 0); +// --status-bad-glow: var(--background-color); +// --notice-color: rgb(255, 71, 90); - // Settings Modal - --settings-modal-bg: rgb(202, 204, 206); +// // Settings Modal +// --settings-modal-bg: rgb(202, 204, 206); - // Input - --input-checkbox-bg: rgb(167, 167, 171); - --input-checkbox-checked-bg: rgb(235, 185, 5); - --input-checkbox-checked-tick: rgb(0, 0, 0); - --input-border-color: rgb(0, 0, 0); - --input-box-shadow-color: none; +// // Input +// --input-checkbox-bg: rgb(167, 167, 171); +// --input-checkbox-checked-bg: rgb(235, 185, 5); +// --input-checkbox-checked-tick: rgb(0, 0, 0); +// --input-border-color: rgb(0, 0, 0); +// --input-box-shadow-color: none; - // Console - --error-level-info: rgb(42, 42, 42); - --error-level-warning: rgb(173, 121, 0); - --error-level-error: rgb(145, 14, 0); - --console-bg-color: rgb(220, 224, 230); - --console-icon-button-bg-color: var(--switch-bg-color); - --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); +// // Console +// --error-level-info: rgb(42, 42, 42); +// --error-level-warning: rgb(173, 121, 0); +// --error-level-error: rgb(145, 14, 0); +// --console-bg-color: rgb(220, 224, 230); +// --console-icon-button-bg-color: var(--switch-bg-color); +// --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); - // Img2Img - --img2img-img-bg-color: rgb(180, 182, 184); +// // Img2Img +// --img2img-img-bg-color: rgb(180, 182, 184); - // Gallery +// // Gallery - // Context Menus - --context-menu-bg-color: var(--background-color); - --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), - 0px 10px 20px -15px rgba(22, 23, 24, 0.2); - --context-menu-bg-color-hover: var(--background-color-secondary); +// // Context Menus +// --context-menu-bg-color: var(--background-color); +// --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), +// 0px 10px 20px -15px rgba(22, 23, 24, 0.2); +// --context-menu-bg-color-hover: var(--background-color-secondary); - // Shadows - --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); +// // Shadows +// --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); - // Canvas - --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); - --inpainting-alerts-icon-color: rgb(0, 0, 0); - --inpainting-alerts-bg-active: rgb(255, 200, 0); - --inpainting-alerts-icon-active: rgb(0, 0, 0); - --inpainting-alerts-bg-alert: var(--invalid); - --inpainting-alerts-icon-alert: rgb(0, 0, 0); +// // Canvas +// --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); +// --inpainting-alerts-icon-color: rgb(0, 0, 0); +// --inpainting-alerts-bg-active: rgb(255, 200, 0); +// --inpainting-alerts-icon-active: rgb(0, 0, 0); +// --inpainting-alerts-bg-alert: var(--invalid); +// --inpainting-alerts-icon-alert: rgb(0, 0, 0); - // Checkerboard - --checkboard-dots-color: rgb(160, 160, 172); +// // Checkerboard +// --checkboard-dots-color: rgb(160, 160, 172); - // Scrollbar - --scrollbar-color: rgb(180, 180, 184); - --scrollbar-color-hover: rgb(150, 150, 154); +// // Scrollbar +// --scrollbar-color: rgb(180, 180, 184); +// --scrollbar-color-hover: rgb(150, 150, 154); - // SubHook - --subhook-color: rgb(0, 0, 0); -} +// // SubHook +// --subhook-color: rgb(0, 0, 0); +// } diff --git a/invokeai/frontend/web/src/styles/_Animations.scss b/invokeai/frontend/web/src/styles/_Animations.scss deleted file mode 100644 index 48fbbc8425..0000000000 --- a/invokeai/frontend/web/src/styles/_Animations.scss +++ /dev/null @@ -1,20 +0,0 @@ -@keyframes slideOut { - from { - transform: translateX(10rem); - } - to { - transform: translateX(0); - } -} - -@keyframes pulse { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.1); - } - 100% { - transform: scale(1); - } -} diff --git a/invokeai/frontend/web/src/styles/_Fonts.scss b/invokeai/frontend/web/src/styles/_Fonts.scss deleted file mode 100644 index fea170026b..0000000000 --- a/invokeai/frontend/web/src/styles/_Fonts.scss +++ /dev/null @@ -1,15 +0,0 @@ -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter.ttf); - font-display: swap; - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter-Bold.ttf); - font-display: swap; - font-weight: 600; - font-style: normal; -} diff --git a/invokeai/frontend/web/src/styles/_Misc.scss b/invokeai/frontend/web/src/styles/_Misc.scss deleted file mode 100644 index 47dec4c061..0000000000 --- a/invokeai/frontend/web/src/styles/_Misc.scss +++ /dev/null @@ -1,45 +0,0 @@ -// .checkerboard { -// background-position: 0px 0px, 10px 10px; -// // background-size: 20px 20px; -// // background-image: linear-gradient( -// // 45deg, -// // #eee 25%, -// // transparent 25%, -// // transparent 75%, -// // #eee 75%, -// // #eee 100% -// // ), -// // linear-gradient(45deg, #eee 25%, white 25%, white 75%, #eee 75%, #eee 100%); -// background: radial-gradient(var(--checkboard-dots-color) 3px, transparent 1px), -// var(--background-color-secondary); -// background-size: 64px 64px; -// } - -* { - scrollbar-width: thick; /* none | auto */ - scrollbar-color: var(--scrollbar-color) transparent; -} - -*::-webkit-scrollbar { - width: 8px; // Vertical Scrollbar Width - height: 8px; // Horizontal Scrollbar Height -} - -*::-webkit-scrollbar-track { - background: transparent; -} - -*::-webkit-scrollbar-thumb { - background: var(--scrollbar-color); - border-radius: 8px; - border: calc(8px / 4) solid var(--scrollbar-color); -} - -*::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-color-hover); - border: calc(8px / 4) solid var(--scrollbar-color-hover); -} - -::-webkit-scrollbar-button { - background: transparent; -} diff --git a/invokeai/frontend/web/src/styles/index.scss b/invokeai/frontend/web/src/styles/index.scss deleted file mode 100644 index afafc17181..0000000000 --- a/invokeai/frontend/web/src/styles/index.scss +++ /dev/null @@ -1,93 +0,0 @@ -// General Imports -@use 'Fonts'; -@use 'Animations'; -@use 'Misc'; - -// Themes -@use './Themes/Colors_Dark'; -@use './Themes/Colors_Light'; -@use './Themes/Colors_Green'; - -// Component Styles - -// app -@use '../app/App.scss'; - -// system -@use '../features/system/components/SiteHeader.scss'; -@use '../features/system/components/StatusIndicator.scss'; -@use '../features/system/components/SettingsModal/SettingsModal.scss'; -@use '../features/system/components/ModelManager/AddModel.scss'; -@use '../features/system/components/HotkeysModal/HotkeysModal.scss'; -@use '../features/system/components/Console.scss'; -@use '../features/system/components/ProgressBar.scss'; - -// parameters -@use '../features/parameters/components/PromptInput/PromptInput.scss'; -@use '../features/parameters/components/ProcessButtons/ProcessButtons.scss'; -@use '../features/parameters/components/MainParameters/MainParameters.scss'; -@use '../features/parameters/components/AccordionItems/AdvancedSettings.scss'; -@use '../features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss'; - -// gallery -@use '../features/gallery/components/CurrentImageDisplay.scss'; -@use '../features/gallery/components/CurrentImageButtons.scss'; -@use '../features/gallery/components/ImageGallery.scss'; -@use '../features/gallery/components/HoverableImage.scss'; -@use '../features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss'; - -// Lightbox -@use '../features/lightbox/components/Lightbox.scss'; - -// Tabs -@use '../features/ui/components/InvokeTabs.scss'; -@use '../features/ui/components/InvokeWorkarea.scss'; -@use '../features/ui/components/InvokeParametersPanel.scss'; -@use '../features/ui/components/TextToImage/TextToImage.scss'; -@use '../features/ui/components/ImageToImage/ImageToImage.scss'; -@use '../features/ui/components/FloatingButton.scss'; -@use '../features/ui/components/UnifiedCanvas/CanvasWorkarea.scss'; - -// Component Shared -@use '../common/components/IAINumberInput.scss'; -@use '../common/components/IAIInput.scss'; -@use '../common/components/IAIIconButton.scss'; -@use '../common/components/IAIButton.scss'; -@use '../common/components/IAISwitch.scss'; -@use '../common/components/IAISelect.scss'; -@use '../common/components/IAISlider.scss'; -@use '../common/components/IAICheckbox.scss'; -@use '../common/components/IAIPopover.scss'; -@use '../common/components/IAIColorPicker.scss'; -@use '../common/components/ImageUploader.scss'; -@use '../common/components/WorkInProgress/WorkInProgress.scss'; -@use '../common/components/GuidePopover.scss'; - -// Component Shared - Radix UI -// @use 'common/components/radix-ui/IAISlider.scss'; -// @use 'common/components/radix-ui/IAITooltip.scss'; - -// Shared Styles -@use './Mixins/' as *; -@use '../features/system/components/Modal.scss'; - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -html, -body { - @include HideScrollbar; - background-color: var(--root-bg-color); - overflow: hidden; -} - -#root { - background-color: var(--root-bg-color); - color: var(--text-color); - font-family: 'Inter', Arial, Helvetica, sans-serif; -} diff --git a/invokeai/frontend/web/src/theme/colors/greenTea.ts b/invokeai/frontend/web/src/theme/colors/greenTea.ts new file mode 100644 index 0000000000..6da7fa3b82 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/greenTea.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const greenTeaThemeColors = { + base: generateColorPalette(223, 10), + accent: generateColorPalette(155, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 50), +}; diff --git a/invokeai/frontend/web/src/theme/colors/invokeAI.ts b/invokeai/frontend/web/src/theme/colors/invokeAI.ts new file mode 100644 index 0000000000..f94430e454 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/invokeAI.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from 'theme/util/generateColorPalette'; + +export const invokeAIThemeColors = { + base: generateColorPalette(225, 15), + accent: generateColorPalette(255, 67), + working: generateColorPalette(47, 67), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(113, 70), + error: generateColorPalette(0, 76), +}; diff --git a/invokeai/frontend/web/src/theme/colors/lightTheme.ts b/invokeai/frontend/web/src/theme/colors/lightTheme.ts new file mode 100644 index 0000000000..3a4d3b8747 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/lightTheme.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const lightThemeColors = { + base: generateColorPalette(223, 10, true), + accent: generateColorPalette(40, 80, true), + working: generateColorPalette(47, 68, true), + warning: generateColorPalette(28, 75, true), + ok: generateColorPalette(122, 49, true), + error: generateColorPalette(0, 50, true), +}; diff --git a/invokeai/frontend/web/src/theme/colors/oceanBlue.ts b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts new file mode 100644 index 0000000000..1f29def485 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const oceanBlueColors = { + base: generateColorPalette(220, 30), + accent: generateColorPalette(210, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 100), +}; diff --git a/invokeai/frontend/web/src/theme/components/accordion.ts b/invokeai/frontend/web/src/theme/components/accordion.ts new file mode 100644 index 0000000000..dfea0aad74 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/accordion.ts @@ -0,0 +1,63 @@ +import { accordionAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIContainer = defineStyle({ + border: 'none', + pt: 2, +}); + +const invokeAIButton = defineStyle((props) => { + const { colorScheme: c } = props; + return { + fontWeight: '600', + fontSize: 'sm', + border: 'none', + borderRadius: 'base', + bg: mode(`${c}.250`, `${c}.800`)(props), + color: mode('base.900', 'base.100')(props), + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + _expanded: { + bg: mode(`${c}.250`, `${c}.750`)(props), + borderBottomRadius: 'none', + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + }, + }; +}); + +const invokeAIPanel = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.200`, `${c}.800`)(props), + borderRadius: 'base', + borderTopRadius: 'none', + p: 4, + }; +}); + +const invokeAIIcon = defineStyle({}); + +const invokeAI = definePartsStyle((props) => ({ + container: invokeAIContainer, + button: invokeAIButton(props), + panel: invokeAIPanel(props), + icon: invokeAIIcon, +})); + +export const accordionTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/button.ts b/invokeai/frontend/web/src/theme/components/button.ts new file mode 100644 index 0000000000..a79a3d356f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/button.ts @@ -0,0 +1,58 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + const { colorScheme: c } = props; + // must specify `_disabled` colors if we override `_hover`, else hover on disabled has no styles + const _disabled = { + bg: mode(`${c}.200`, `${c}.600`)(props), + color: mode(`${c}.700`, `${c}.100`)(props), + svg: { + fill: mode(`${c}.700`, `${c}.100`)(props), + }, + }; + + return { + bg: mode(`${c}.300`, `${c}.700`)(props), + color: mode(`${c}.800`, `${c}.100`)(props), + borderRadius: 'base', + svg: { + fill: mode(`${c}.800`, `${c}.100`)(props), + }, + _disabled, + _hover: { + bg: mode(`${c}.400`, `${c}.650`)(props), + color: mode(`black`, `${c}.50`)(props), + svg: { + fill: mode(`black`, `${c}.50`)(props), + }, + _disabled, + }, + _checked: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + svg: { + fill: mode('accent.800', 'accent.100')(props), + }, + _disabled, + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + svg: { + fill: mode('accent.900', 'accent.50')(props), + }, + _disabled, + }, + }, + }; +}); + +export const buttonTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/checkbox.ts b/invokeai/frontend/web/src/theme/components/checkbox.ts new file mode 100644 index 0000000000..5bdc8a1a66 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/checkbox.ts @@ -0,0 +1,65 @@ +import { checkboxAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIControl = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + _checked: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + + _hover: { + bg: mode(`${c}.600`, `${c}.300`)(props), + borderColor: mode(`${c}.600`, `${c}.300`)(props), + }, + + _disabled: { + borderColor: mode('base.200', 'transparent')(props), + bg: mode('base.200', 'whiteAlpha.300')(props), + color: mode('base.500', 'whiteAlpha.500')(props), + }, + }, + + _indeterminate: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + }, + + _disabled: { + bg: mode('base.100', 'whiteAlpha.100')(props), + borderColor: mode('base.100', 'transparent')(props), + }, + + _focusVisible: { + boxShadow: 'outline', + }, + + _invalid: { + borderColor: mode('red.500', 'red.300')(props), + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + control: invokeAIControl(props), +})); + +export const checkboxTheme = defineMultiStyleConfig({ + variants: { + invokeAI: invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/formLabel.ts b/invokeai/frontend/web/src/theme/components/formLabel.ts new file mode 100644 index 0000000000..d49fd0a36d --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/formLabel.ts @@ -0,0 +1,27 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + return { + fontSize: 'sm', + marginEnd: 0, + mb: 1, + fontWeight: '400', + transitionProperty: 'common', + transitionDuration: 'normal', + whiteSpace: 'nowrap', + _disabled: { + opacity: 0.4, + }, + color: mode('base.600', 'base.300')(props), + }; +}); + +export const formLabelTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/input.ts b/invokeai/frontend/web/src/theme/components/input.ts new file mode 100644 index 0000000000..167da7ef28 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/input.ts @@ -0,0 +1,22 @@ +import { inputAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAI = definePartsStyle((props) => { + return { + field: getInputOutlineStyles(props), + }; +}); + +export const inputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/menu.ts b/invokeai/frontend/web/src/theme/components/menu.ts new file mode 100644 index 0000000000..597e989953 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/menu.ts @@ -0,0 +1,44 @@ +import { menuAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(menuAnatomy.keys); + +// define the base component styles +const invokeAI = definePartsStyle({ + // define the part you're going to style + button: { + // this will style the MenuButton component + fontWeight: '600', + bg: 'base.500', + color: 'base.200', + _hover: { + bg: 'base.600', + color: 'white', + }, + }, + list: { + zIndex: 9999, + bg: 'base.800', + }, + item: { + // this will style the MenuItem and MenuItemOption components + fontSize: 'sm', + bg: 'base.800', + _hover: { + bg: 'base.750', + }, + _focus: { + bg: 'base.700', + }, + }, +}); + +export const menuTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/modal.ts b/invokeai/frontend/web/src/theme/components/modal.ts new file mode 100644 index 0000000000..9e422c7704 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/modal.ts @@ -0,0 +1,55 @@ +import { modalAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIOverlay = defineStyle({ + bg: 'blackAlpha.600', +}); + +const invokeAIDialogContainer = defineStyle({}); + +const invokeAIDialog = defineStyle((props) => { + return { + bg: mode('base.300', 'base.850')(props), + maxH: '80vh', + }; +}); + +const invokeAIHeader = defineStyle((props) => { + return { + fontWeight: '600', + fontSize: 'lg', + color: mode('base.700', 'base.200')(props), + }; +}); + +const invokeAICloseButton = defineStyle({}); + +const invokeAIBody = defineStyle({ + overflowY: 'scroll', +}); + +const invokeAIFooter = defineStyle({}); + +export const invokeAI = definePartsStyle((props) => ({ + overlay: invokeAIOverlay, + dialogContainer: invokeAIDialogContainer, + dialog: invokeAIDialog(props), + header: invokeAIHeader(props), + closeButton: invokeAICloseButton, + body: invokeAIBody, + footer: invokeAIFooter, +})); + +export const modalTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { variant: 'invokeAI', size: 'lg' }, +}); diff --git a/invokeai/frontend/web/src/theme/components/numberInput.ts b/invokeai/frontend/web/src/theme/components/numberInput.ts new file mode 100644 index 0000000000..9d7e773701 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/numberInput.ts @@ -0,0 +1,71 @@ +import { numberInputAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + height: 8, + }; +}); + +const invokeAIField = defineStyle((props) => { + return { + border: 'none', + fontWeight: '600', + height: 'auto', + py: 1, + ps: 2, + pe: 6, + ...getInputOutlineStyles(props), + }; +}); + +const invokeAIStepperGroup = defineStyle((_props) => { + return { + display: 'flex', + }; +}); + +const invokeAIStepper = defineStyle((props) => { + return { + border: 'none', + // expand arrow hitbox + px: 2, + py: 0, + mx: -2, + my: 0, + + svg: { + color: mode('base.600', 'base.300')(props), + width: 2.5, + height: 2.5, + _hover: { + color: mode('base.900', 'base.50')(props), + }, + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + field: invokeAIField(props), + stepperGroup: invokeAIStepperGroup(props), + stepper: invokeAIStepper(props), +})); + +export const numberInputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/popover.ts b/invokeai/frontend/web/src/theme/components/popover.ts new file mode 100644 index 0000000000..d6b5d316ac --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/popover.ts @@ -0,0 +1,42 @@ +import { popoverAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { cssVar } from '@chakra-ui/theme-tools'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const $popperBg = cssVar('popper-bg'); +const $arrowBg = cssVar('popper-arrow-bg'); +const $arrowShadowColor = cssVar('popper-arrow-shadow-color'); + +const invokeAIContent = defineStyle((props) => { + return { + [$arrowBg.variable]: `colors.base.800`, + [$popperBg.variable]: `colors.base.800`, + [$arrowShadowColor.variable]: `colors.base.600`, + minW: 'unset', + width: 'unset', + p: 4, + borderWidth: '2px', + borderStyle: 'solid', + borderColor: mode('base.500', 'base.600')(props), + bg: mode('base.200', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + content: invokeAIContent(props), +})); + +export const popoverTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/progress.ts b/invokeai/frontend/web/src/theme/components/progress.ts new file mode 100644 index 0000000000..4d48830e06 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/progress.ts @@ -0,0 +1,40 @@ +import { progressAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIFilledTrack = defineStyle((props) => ({ + bg: mode('accent.400', 'accent.600')(props), + transition: 'width 0.2s ease-in-out', + _indeterminate: { + bgGradient: `linear(to-r, transparent 0%, ${mode( + 'accent.400', + 'accent.600' + )(props)} 50%, transparent 100%);`, + }, +})); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + filledTrack: invokeAIFilledTrack(props), + track: invokeAITrack(props), +})); + +export const progressTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/scrollbar.ts b/invokeai/frontend/web/src/theme/components/scrollbar.ts new file mode 100644 index 0000000000..5128fb1cb8 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/scrollbar.ts @@ -0,0 +1,31 @@ +export const no_scrollbar = { + '::-webkit-scrollbar': { + display: 'none', + }, + scrollbarWidth: 'none', +}; + +export const scrollbar = { + scrollbarColor: 'accent.600 transparent', + scrollbarWidth: 'thick', + '::-webkit-scrollbar': { + width: '6px', // Vertical Scrollbar Width + height: '6px', // Horizontal Scrollbar Height + }, + '::-webkit-scrollbar-track': { + background: 'transparent', + }, + '::-webkit-scrollbar-thumb': { + background: 'accent.600', + borderRadius: '8px', + borderWidth: '4px', + borderColor: 'accent.600', + }, + '::-webkit-scrollbar-thumb:hover': { + background: 'accent.500', + borderColor: 'accent.500', + }, + '::-webkit-scrollbar-button': { + background: 'transaprent', + }, +}; diff --git a/invokeai/frontend/web/src/theme/components/select.ts b/invokeai/frontend/web/src/theme/components/select.ts new file mode 100644 index 0000000000..bbb438b4d0 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/select.ts @@ -0,0 +1,35 @@ +import { selectAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIIcon = defineStyle((props) => { + return { + color: mode('base.600', 'base.300')(props), + }; +}); + +const invokeAIField = defineStyle((props) => ({ + fontWeight: '600', + ...getInputOutlineStyles(props), +})); + +const invokeAI = definePartsStyle((props) => { + return { + field: invokeAIField(props), + icon: invokeAIIcon(props), + }; +}); + +export const selectTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/slider.ts b/invokeai/frontend/web/src/theme/components/slider.ts new file mode 100644 index 0000000000..1afb188712 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/slider.ts @@ -0,0 +1,53 @@ +import { sliderAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.400')(props), + h: 1.5, + }; +}); + +const invokeAIFilledTrack = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.400`, `${c}.600`)(props), + h: 1.5, + }; +}); + +const invokeAIThumb = defineStyle((_props) => { + return { + w: 2, + h: 4, + }; +}); + +const invokeAIMark = defineStyle((props) => { + return { + fontSize: 'xs', + fontWeight: '500', + color: mode('base.800', 'base.200')(props), + mt: 2, + insetInlineStart: 'unset', + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + track: invokeAITrack(props), + filledTrack: invokeAIFilledTrack(props), + thumb: invokeAIThumb(props), + mark: invokeAIMark(props), +})); + +export const sliderTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/switch.ts b/invokeai/frontend/web/src/theme/components/switch.ts new file mode 100644 index 0000000000..e39b4257b2 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/switch.ts @@ -0,0 +1,47 @@ +import { switchAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`base.400`, `base.600`)(props), + + _focusVisible: { + boxShadow: 'none', + }, + _checked: { + bg: mode(`${c}.400`, `${c}.600`)(props), + }, + }; +}); + +const invokeAIThumb = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`${c}.50`, `${c}.50`)(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + container: {}, + track: invokeAITrack(props), + thumb: invokeAIThumb(props), +})); + +export const switchTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/tabs.ts b/invokeai/frontend/web/src/theme/components/tabs.ts new file mode 100644 index 0000000000..9cd991d8bf --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/tabs.ts @@ -0,0 +1,63 @@ +import { tabsAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + display: 'flex', + columnGap: 4, + }; +}); + +const invokeAITab = defineStyle((_props) => ({})); + +const invokeAITablist = defineStyle((props) => ({ + display: 'flex', + flexDirection: 'column', + gap: 1, + color: mode('base.500', 'base.700')(props), + button: { + fontSize: 'sm', + padding: 2, + borderRadius: 'base', + _selected: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + }, + }, + _hover: { + bg: mode('base.300', 'base.600')(props), + color: mode('base.900', 'base.50')(props), + }, + }, +})); + +const invokeAITabpanel = defineStyle((_props) => ({ + padding: 0, + height: '100%', +})); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + tab: invokeAITab(props), + tablist: invokeAITablist(props), + tabpanel: invokeAITabpanel(props), +})); + +export const tabsTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/text.ts b/invokeai/frontend/web/src/theme/components/text.ts new file mode 100644 index 0000000000..a485289366 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/text.ts @@ -0,0 +1,12 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const subtext = defineStyle((props) => ({ + color: mode('base.700', 'base.400')(props), +})); + +export const textTheme = defineStyleConfig({ + variants: { + subtext, + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/textarea.ts b/invokeai/frontend/web/src/theme/components/textarea.ts new file mode 100644 index 0000000000..85e6e37d3f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/textarea.ts @@ -0,0 +1,14 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const invokeAI = defineStyle((props) => getInputOutlineStyles(props)); + +export const textareaTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/theme.ts b/invokeai/frontend/web/src/theme/theme.ts new file mode 100644 index 0000000000..40df156cdb --- /dev/null +++ b/invokeai/frontend/web/src/theme/theme.ts @@ -0,0 +1,80 @@ +import { ThemeOverride } from '@chakra-ui/react'; +import type { StyleFunctionProps } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { invokeAIThemeColors } from './colors/invokeAI'; +import { accordionTheme } from './components/accordion'; +import { buttonTheme } from './components/button'; +import { checkboxTheme } from './components/checkbox'; +import { formLabelTheme } from './components/formLabel'; +import { inputTheme } from './components/input'; +import { menuTheme } from './components/menu'; +import { modalTheme } from './components/modal'; +import { numberInputTheme } from './components/numberInput'; +import { popoverTheme } from './components/popover'; +import { progressTheme } from './components/progress'; +import { scrollbar } from './components/scrollbar'; +import { selectTheme } from './components/select'; +import { sliderTheme } from './components/slider'; +import { switchTheme } from './components/switch'; +import { tabsTheme } from './components/tabs'; +import { textTheme } from './components/text'; +import { textareaTheme } from './components/textarea'; + +export const theme: ThemeOverride = { + config: { + initialColorMode: 'dark', + useSystemColorMode: false, + cssVarPrefix: 'invokeai', + }, + styles: { + global: (props: StyleFunctionProps) => ({ + body: { + bg: mode('base.100', 'base.900')(props), + color: mode('base.800', 'base.50')(props), + overflow: 'hidden', + }, + ...scrollbar, + }), + }, + direction: 'ltr', + fonts: { + body: `'Inter', sans-serif`, + }, + shadows: { + light: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-300)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-400)`, + ok: `0 0 7px var(--invokeai-colors-ok-600)`, + working: `0 0 7px var(--invokeai-colors-working-600)`, + error: `0 0 7px var(--invokeai-colors-error-600)`, + }, + dark: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-600)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-500)`, + ok: `0 0 7px var(--invokeai-colors-ok-400)`, + working: `0 0 7px var(--invokeai-colors-working-400)`, + error: `0 0 7px var(--invokeai-colors-error-400)`, + }, + }, + colors: { + ...invokeAIThemeColors, + }, + components: { + Button: buttonTheme, // Button and IconButton + Input: inputTheme, + Textarea: textareaTheme, + Tabs: tabsTheme, + Progress: progressTheme, + Accordion: accordionTheme, + FormLabel: formLabelTheme, + Switch: switchTheme, + NumberInput: numberInputTheme, + Select: selectTheme, + Slider: sliderTheme, + Popover: popoverTheme, + Modal: modalTheme, + Checkbox: checkboxTheme, + Menu: menuTheme, + Text: textTheme, + }, +}; diff --git a/invokeai/frontend/web/src/theme/util/constants.ts b/invokeai/frontend/web/src/theme/util/constants.ts new file mode 100644 index 0000000000..85d9185f31 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/constants.ts @@ -0,0 +1,19 @@ +// Calc Values +export const APP_CUTOFF = '0px'; +export const APP_CONTENT_HEIGHT_CUTOFF = 'calc(70px + 1rem)'; // default: 7rem +export const APP_PADDING = 4; +export const PROGRESS_BAR_THICKNESS = 1.5; +export const APP_WIDTH = `calc(100vw - ${APP_CUTOFF})`; +export const APP_HEIGHT = `calc(100vh - ${PROGRESS_BAR_THICKNESS * 4}px)`; +export const APP_CONTENT_HEIGHT = `calc(100vh - ${APP_CONTENT_HEIGHT_CUTOFF})`; +export const APP_GALLERY_HEIGHT_PINNED = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_GALLERY_HEIGHT = 'calc(100vw - 0.3rem + 5rem)'; +export const APP_GALLERY_POPOVER_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_METADATA_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 4.4rem))`; + +// do not touch ffs +export const APP_TEXT_TO_IMAGE_HEIGHT = + 'calc(100vh - 9.4375rem - 1.925rem - 1.15rem)'; + +// option bar +export const OPTIONS_BAR_MAX_WIDTH = '22.5rem'; diff --git a/invokeai/frontend/web/src/theme/util/generateColorPalette.ts b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts new file mode 100644 index 0000000000..abd7939fa1 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts @@ -0,0 +1,80 @@ +type paletteSteps = { + 0: string; + 50: string; + 100: string; + 150: string; + 200: string; + 250: string; + 300: string; + 350: string; + 400: string; + 450: string; + 500: string; + 550: string; + 600: string; + 650: string; + 700: string; + 750: string; + 800: string; + 850: string; + 900: string; + 950: string; + 1000: string; +}; + +/** + * Add two numbers together + * @param {String | Number} hue Hue of the color (0-360) - Reds 0, Greens 120, Blues 240 + * @param {String | Number} saturation Saturation of the color (0-100) + * @param {boolean} light True to generate light color palette + */ +export function generateColorPalette( + hue: string | number, + saturation: string | number, + light = false +) { + hue = String(hue); + saturation = String(saturation); + + const colorSteps = Array.from({ length: 21 }, (_, i) => i * 50); + const lightnessSteps = [ + '0', + '5', + '10', + '15', + '20', + '25', + '30', + '35', + '40', + '45', + '50', + '55', + '59', + '64', + '68', + '73', + '77', + '82', + '86', + '95', + '100', + ]; + + const darkPalette: Partial = {}; + const lightPalette: Partial = {}; + + colorSteps.forEach((colorStep, index) => { + darkPalette[ + colorStep as keyof typeof darkPalette + ] = `hsl(${hue}, ${saturation}%, ${ + lightnessSteps[colorSteps.length - 1 - index] + }%)`; + + lightPalette[ + colorStep as keyof typeof lightPalette + ] = `hsl(${hue}, ${saturation}%, ${lightnessSteps[index]}%)`; + }); + + return light ? lightPalette : darkPalette; +} diff --git a/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts new file mode 100644 index 0000000000..9550df5863 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts @@ -0,0 +1,40 @@ +import { mode, StyleFunctionProps } from '@chakra-ui/theme-tools'; + +export const getInputOutlineStyles = (props: StyleFunctionProps) => ({ + outline: 'none', + borderWidth: 2, + borderStyle: 'solid', + borderColor: mode('base.300', 'base.800')(props), + bg: mode('base.200', 'base.900')(props), + borderRadius: 'base', + color: mode('base.900', 'base.100')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('base.500', 'base.600')(props), + }, + _focus: { + borderColor: mode('accent.600', 'accent.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('accent.700', 'accent.600')(props), + }, + }, + _invalid: { + borderColor: mode('error.300', 'error.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('error.500', 'error.600')(props), + }, + }, + _disabled: { + borderColor: mode('base.300', 'base.700')(props), + bg: mode('base.400', 'base.700')(props), + color: mode('base.600', 'base.400')(props), + _hover: { + borderColor: mode('base.300', 'base.700')(props), + }, + }, + _placeholder: { + color: mode('base.600', 'base.400')(props), + }, +}); diff --git a/invokeai/frontend/web/stats.html b/invokeai/frontend/web/stats.html index 1e7823a4ff..85ec9a055a 100644 --- a/invokeai/frontend/web/stats.html +++ b/invokeai/frontend/web/stats.html @@ -6157,7 +6157,7 @@ var drawChart = (function (exports) { - + + + - +
        diff --git a/invokeai/frontend/web/dist/locales/en.json b/invokeai/frontend/web/dist/locales/en.json index c9a3f48c47..00e1202f12 100644 --- a/invokeai/frontend/web/dist/locales/en.json +++ b/invokeai/frontend/web/dist/locales/en.json @@ -10,14 +10,18 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", + "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", + "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", + "langKorean": "한국어", "langPolish": "Polski", + "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -63,7 +67,10 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged" + "statusMergedModels": "Models Merged", + "pinOptionsPanel": "Pin Options Panel", + "loading": "Loading", + "loadingInvokeAI": "Loading Invoke AI" }, "gallery": { "generations": "Generations", @@ -82,7 +89,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shorcuts", + "keyboardShortcuts": "Keyboard Shortcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -387,13 +394,16 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum" + "weightedSum": "Weighted Sum", + "none": "none", + "addDifference": "Add Difference", + "pickModelType": "Pick Model Type" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/dist/locales/es.json b/invokeai/frontend/web/dist/locales/es.json index 2eff2e1e01..5081ab0799 100644 --- a/invokeai/frontend/web/dist/locales/es.json +++ b/invokeai/frontend/web/dist/locales/es.json @@ -15,7 +15,7 @@ "langSpanish": "Español", "nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.", "postProcessing": "Post-procesamiento", - "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador", + "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador.", "postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.", "postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.", "training": "Entrenamiento", @@ -44,7 +44,26 @@ "statusUpscaling": "Aumentando Tamaño", "statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)", "statusLoadingModel": "Cargando Modelo", - "statusModelChanged": "Modelo cambiado" + "statusModelChanged": "Modelo cambiado", + "statusMergedModels": "Modelos combinados", + "githubLabel": "Github", + "discordLabel": "Discord", + "langEnglish": "Inglés", + "langDutch": "Holandés", + "langFrench": "Francés", + "langGerman": "Alemán", + "langItalian": "Italiano", + "langArabic": "Árabe", + "langJapanese": "Japones", + "langPolish": "Polaco", + "langBrPortuguese": "Portugués brasileño", + "langRussian": "Ruso", + "langSimplifiedChinese": "Chino simplificado", + "langUkranian": "Ucraniano", + "back": "Atrás", + "statusConvertingModel": "Convertir el modelo", + "statusModelConverted": "Modelo adaptado", + "statusMergingModels": "Fusionar modelos" }, "gallery": { "generations": "Generaciones", @@ -284,16 +303,16 @@ "nameValidationMsg": "Introduce un nombre para tu modelo", "description": "Descripción", "descriptionValidationMsg": "Introduce una descripción para tu modelo", - "config": "Config", - "configValidationMsg": "Ruta del archivo de configuración del modelo", + "config": "Configurar", + "configValidationMsg": "Ruta del archivo de configuración del modelo.", "modelLocation": "Ubicación del Modelo", - "modelLocationValidationMsg": "Ruta del archivo de modelo", + "modelLocationValidationMsg": "Ruta del archivo de modelo.", "vaeLocation": "Ubicación VAE", - "vaeLocationValidationMsg": "Ruta del archivo VAE", + "vaeLocationValidationMsg": "Ruta del archivo VAE.", "width": "Ancho", - "widthValidationMsg": "Ancho predeterminado de tu modelo", + "widthValidationMsg": "Ancho predeterminado de tu modelo.", "height": "Alto", - "heightValidationMsg": "Alto predeterminado de tu modelo", + "heightValidationMsg": "Alto predeterminado de tu modelo.", "addModel": "Añadir Modelo", "updateModel": "Actualizar Modelo", "availableModels": "Modelos disponibles", @@ -320,7 +339,61 @@ "deleteModel": "Eliminar Modelo", "deleteConfig": "Eliminar Configuración", "deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?", - "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas." + "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas.", + "safetensorModels": "SafeTensors", + "addDiffuserModel": "Añadir difusores", + "inpainting": "v1 Repintado", + "repoIDValidationMsg": "Repositorio en línea de tu modelo", + "checkpointModels": "Puntos de control", + "convertToDiffusersHelpText4": "Este proceso se realiza una sola vez. Puede tardar entre 30 y 60 segundos dependiendo de las especificaciones de tu ordenador.", + "diffusersModels": "Difusores", + "addCheckpointModel": "Agregar modelo de punto de control/Modelo Safetensor", + "vaeRepoID": "Identificador del repositorio de VAE", + "vaeRepoIDValidationMsg": "Repositorio en línea de tú VAE", + "formMessageDiffusersModelLocation": "Difusores Modelo Ubicación", + "formMessageDiffusersModelLocationDesc": "Por favor, introduzca al menos uno.", + "formMessageDiffusersVAELocation": "Ubicación VAE", + "formMessageDiffusersVAELocationDesc": "Si no se proporciona, InvokeAI buscará el archivo VAE dentro de la ubicación del modelo indicada anteriormente.", + "convert": "Convertir", + "convertToDiffusers": "Convertir en difusores", + "convertToDiffusersHelpText1": "Este modelo se convertirá al formato 🧨 Difusores.", + "convertToDiffusersHelpText2": "Este proceso sustituirá su entrada del Gestor de Modelos por la versión de Difusores del mismo modelo.", + "convertToDiffusersHelpText3": "Su archivo de puntos de control en el disco NO será borrado ni modificado de ninguna manera. Puede volver a añadir su punto de control al Gestor de Modelos si lo desea.", + "convertToDiffusersHelpText5": "Asegúrese de que dispone de suficiente espacio en disco. Los modelos suelen variar entre 4 GB y 7 GB de tamaño.", + "convertToDiffusersHelpText6": "¿Desea transformar este modelo?", + "convertToDiffusersSaveLocation": "Guardar ubicación", + "v1": "v1", + "v2": "v2", + "statusConverting": "Adaptar", + "modelConverted": "Modelo adaptado", + "sameFolder": "La misma carpeta", + "invokeRoot": "Carpeta InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Ubicación personalizada para guardar", + "merge": "Fusión", + "modelsMerged": "Modelos fusionados", + "mergeModels": "Combinar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "mergedModelName": "Nombre del modelo combinado", + "alpha": "Alfa", + "interpolationType": "Tipo de interpolación", + "mergedModelSaveLocation": "Guardar ubicación", + "mergedModelCustomSaveLocation": "Ruta personalizada", + "invokeAIFolder": "Invocar carpeta de la inteligencia artificial", + "modelMergeHeaderHelp2": "Sólo se pueden fusionar difusores. Si desea fusionar un modelo de punto de control, conviértalo primero en difusores.", + "modelMergeAlphaHelp": "Alfa controla la fuerza de mezcla de los modelos. Los valores alfa más bajos reducen la influencia del segundo modelo.", + "modelMergeInterpAddDifferenceHelp": "En este modo, el Modelo 3 se sustrae primero del Modelo 2. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente.", + "ignoreMismatch": "Ignorar discrepancias entre modelos seleccionados", + "modelMergeHeaderHelp1": "Puede combinar hasta tres modelos diferentes para crear una mezcla que se adapte a sus necesidades.", + "inverseSigmoid": "Sigmoideo inverso", + "weightedSum": "Modelo de suma ponderada", + "sigmoid": "Función sigmoide", + "allModels": "Todos los modelos", + "repo_id": "Identificador del repositorio", + "pathToCustomConfig": "Ruta a la configuración personalizada", + "customConfig": "Configuración personalizada" }, "parameters": { "images": "Imágenes", @@ -380,7 +453,22 @@ "info": "Información", "deleteImage": "Eliminar Imagen", "initialImage": "Imagen Inicial", - "showOptionsPanel": "Mostrar panel de opciones" + "showOptionsPanel": "Mostrar panel de opciones", + "symmetry": "Simetría", + "vSymmetryStep": "Paso de simetría V", + "hSymmetryStep": "Paso de simetría H", + "cancel": { + "immediate": "Cancelar inmediatamente", + "schedule": "Cancelar tras la iteración actual", + "isScheduled": "Cancelando", + "setType": "Tipo de cancelación" + }, + "copyImage": "Copiar la imagen", + "general": "General", + "negativePrompts": "Preguntas negativas", + "imageToImage": "Imagen a imagen", + "denoisingStrength": "Intensidad de la eliminación del ruido", + "hiresStrength": "Alta resistencia" }, "settings": { "models": "Modelos", @@ -393,7 +481,8 @@ "resetWebUI": "Restablecer interfaz web", "resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.", "resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.", - "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla." + "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla.", + "useSlidersForAll": "Utilice controles deslizantes para todas las opciones" }, "toast": { "tempFoldersEmptied": "Directorio temporal vaciado", @@ -431,12 +520,12 @@ "feature": { "prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.", "gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.", - "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.", + "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. 'Seamless mosaico' creará patrones repetitivos en la salida. 'Alta resolución' es la generación en dos pasos con img2img: use esta configuración cuando desee una imagen más grande y más coherente sin artefactos. tomar más tiempo de lo habitual txt2img.", "seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.", "variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.", "upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.", "faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.", - "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.", + "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75", "boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.", "seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.", "infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)." diff --git a/invokeai/frontend/web/dist/locales/pt_BR.json b/invokeai/frontend/web/dist/locales/pt_BR.json index 2380f92932..fdfe2270bf 100644 --- a/invokeai/frontend/web/dist/locales/pt_BR.json +++ b/invokeai/frontend/web/dist/locales/pt_BR.json @@ -44,7 +44,26 @@ "statusUpscaling": "Redimensinando", "statusUpscalingESRGAN": "Redimensinando (ESRGAN)", "statusLoadingModel": "Carregando Modelo", - "statusModelChanged": "Modelo Alterado" + "statusModelChanged": "Modelo Alterado", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Árabe", + "langEnglish": "Inglês", + "langDutch": "Holandês", + "langFrench": "Francês", + "langGerman": "Alemão", + "langItalian": "Italiano", + "langJapanese": "Japonês", + "langPolish": "Polonês", + "langSimplifiedChinese": "Chinês", + "langUkranian": "Ucraniano", + "back": "Voltar", + "statusConvertingModel": "Convertendo Modelo", + "statusModelConverted": "Modelo Convertido", + "statusMergingModels": "Mesclando Modelos", + "statusMergedModels": "Modelos Mesclados", + "langRussian": "Russo", + "langSpanish": "Espanhol" }, "gallery": { "generations": "Gerações", @@ -237,7 +256,7 @@ "desc": "Salva a tela atual na galeria" }, "copyToClipboard": { - "title": "Copiar Para a Área de Transferência ", + "title": "Copiar para a Área de Transferência", "desc": "Copia a tela atual para a área de transferência" }, "downloadImage": { @@ -284,7 +303,7 @@ "nameValidationMsg": "Insira um nome para o seu modelo", "description": "Descrição", "descriptionValidationMsg": "Adicione uma descrição para o seu modelo", - "config": "Config", + "config": "Configuração", "configValidationMsg": "Caminho para o arquivo de configuração do seu modelo.", "modelLocation": "Localização do modelo", "modelLocationValidationMsg": "Caminho para onde seu modelo está localizado.", @@ -317,7 +336,52 @@ "deleteModel": "Excluir modelo", "deleteConfig": "Excluir Config", "deleteMsg1": "Tem certeza de que deseja excluir esta entrada do modelo de InvokeAI?", - "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar." + "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar.", + "checkpointModels": "Checkpoints", + "diffusersModels": "Diffusers", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Adicionar Modelo de Checkpoint/Safetensor", + "addDiffuserModel": "Adicionar Diffusers", + "repo_id": "Repo ID", + "vaeRepoID": "VAE Repo ID", + "vaeRepoIDValidationMsg": "Repositório Online do seu VAE", + "scanAgain": "Digitalize Novamente", + "selectAndAdd": "Selecione e Adicione Modelos Listados Abaixo", + "noModelsFound": "Nenhum Modelo Encontrado", + "formMessageDiffusersModelLocation": "Localização dos Modelos Diffusers", + "formMessageDiffusersModelLocationDesc": "Por favor entre com ao menos um.", + "formMessageDiffusersVAELocation": "Localização do VAE", + "formMessageDiffusersVAELocationDesc": "Se não provido, InvokeAI irá procurar pelo arquivo VAE dentro do local do modelo.", + "convertToDiffusers": "Converter para Diffusers", + "convertToDiffusersHelpText1": "Este modelo será convertido para o formato 🧨 Diffusers.", + "convertToDiffusersHelpText5": "Por favor, certifique-se de que você tenha espaço suficiente em disco. Os modelos geralmente variam entre 4GB e 7GB de tamanho.", + "convertToDiffusersHelpText6": "Você deseja converter este modelo?", + "convertToDiffusersSaveLocation": "Local para Salvar", + "v1": "v1", + "v2": "v2", + "inpainting": "v1 Inpainting", + "customConfig": "Configuração personalizada", + "pathToCustomConfig": "Caminho para configuração personalizada", + "convertToDiffusersHelpText3": "Seu arquivo de ponto de verificação no disco NÃO será excluído ou modificado de forma alguma. Você pode adicionar seu ponto de verificação ao Gerenciador de modelos novamente, se desejar.", + "convertToDiffusersHelpText4": "Este é um processo único. Pode levar cerca de 30 a 60s, dependendo das especificações do seu computador.", + "merge": "Mesclar", + "modelsMerged": "Modelos mesclados", + "mergeModels": "Mesclar modelos", + "modelOne": "Modelo 1", + "modelTwo": "Modelo 2", + "modelThree": "Modelo 3", + "statusConverting": "Convertendo", + "modelConverted": "Modelo Convertido", + "sameFolder": "Mesma pasta", + "invokeRoot": "Pasta do InvokeAI", + "custom": "Personalizado", + "customSaveLocation": "Local de salvamento personalizado", + "mergedModelName": "Nome do modelo mesclado", + "alpha": "Alpha", + "allModels": "Todos os Modelos", + "repoIDValidationMsg": "Repositório Online do seu Modelo", + "convert": "Converter", + "convertToDiffusersHelpText2": "Este processo irá substituir sua entrada de Gerenciador de Modelos por uma versão Diffusers do mesmo modelo." }, "parameters": { "images": "Imagems", @@ -442,14 +506,14 @@ "move": "Mover", "resetView": "Resetar Visualização", "mergeVisible": "Fundir Visível", - "saveToGallery": "Save To Gallery", + "saveToGallery": "Salvar na Galeria", "copyToClipboard": "Copiar para a Área de Transferência", "downloadAsImage": "Baixar Como Imagem", "undo": "Desfazer", "redo": "Refazer", "clearCanvas": "Limpar Tela", "canvasSettings": "Configurações de Tela", - "showIntermediates": "Show Intermediates", + "showIntermediates": "Mostrar Intermediários", "showGrid": "Mostrar Grade", "snapToGrid": "Encaixar na Grade", "darkenOutsideSelection": "Escurecer Seleção Externa", diff --git a/invokeai/frontend/web/dist/locales/ro.json b/invokeai/frontend/web/dist/locales/ro.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/invokeai/frontend/web/dist/locales/ro.json @@ -0,0 +1 @@ +{} diff --git a/invokeai/frontend/web/index.html b/invokeai/frontend/web/index.html index 8314e22a7d..04d81e5490 100644 --- a/invokeai/frontend/web/index.html +++ b/invokeai/frontend/web/index.html @@ -5,9 +5,16 @@ InvokeAI - A Stable Diffusion Toolkit + - +
        diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index c907a83cd9..c47042ef95 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -5,28 +5,44 @@ "scripts": { "prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky", "dev": "vite dev", - "build": "tsc && vite build", + "build": "npm run lint && vite build", "preview": "vite preview", - "madge": "madge --circular src/main.tsx", - "lint": "eslint --fix .", + "lint:madge": "madge --circular src/main.tsx", + "lint:eslint": "eslint --max-warnings=0", + "lint:prettier": "prettier --check .", + "lint:tsc": "tsc --noEmit", + "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:tsc && npm run lint:madge", + "fix": "eslint --fix . && prettier --loglevel warn --write . && tsc --noEmit", "lint-staged": "lint-staged", - "prettier": "prettier *.{json,js,ts,html} public/locales/*.json src/**/*.{ts,tsx,scss} --write --loglevel warn .", - "fmt": "npm run prettier -- --write", - "postinstall": "patch-package" + "postinstall": "patch-package && yarn run theme", + "theme": "chakra-cli tokens src/theme/theme.ts", + "theme:watch": "chakra-cli tokens src/theme/theme.ts --watch" + }, + "madge": { + "detectiveOptions": { + "ts": { + "skipTypeImports": true + }, + "tsx": { + "skipTypeImports": true + } + } + }, + "lint-staged": { + "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ + "prettier --write", + "eslint --fix" + ] }, "dependencies": { + "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.17", "@chakra-ui/react": "^2.5.1", - "@emotion/cache": "^11.10.5", + "@chakra-ui/theme-tools": "^2.0.16", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", - "@radix-ui/react-context-menu": "^2.1.1", - "@radix-ui/react-slider": "^1.1.0", - "@radix-ui/react-tooltip": "^1.0.3", "@reduxjs/toolkit": "^1.9.2", - "@types/uuid": "^9.0.0", - "@vitejs/plugin-react-swc": "^3.2.0", - "add": "^2.0.6", + "chakra-ui-contextmenu": "^1.0.5", "dateformat": "^5.0.3", "formik": "^2.2.9", "framer-motion": "^9.0.4", @@ -50,19 +66,21 @@ "react-zoom-pan-pinch": "^2.6.1", "redux-deep-persist": "^1.0.7", "redux-persist": "^6.0.0", - "socket.io": "^4.6.0", "socket.io-client": "^4.6.0", "use-image": "^1.1.0", - "uuid": "^9.0.0", - "yarn": "^1.22.19" + "uuid": "^9.0.0" }, "devDependencies": { + "@chakra-ui/cli": "^2.3.0", + "@fontsource/inter": "^4.5.15", "@types/dateformat": "^5.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "@types/react-transition-group": "^4.4.5", + "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", + "@vitejs/plugin-react-swc": "^3.2.0", "babel-plugin-transform-imports": "^2.0.0", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", @@ -76,26 +94,10 @@ "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.4", "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.3", "terser": "^5.16.4", "vite": "^4.1.2", "vite-plugin-eslint": "^1.8.1", - "vite-tsconfig-paths": "^4.0.5" - }, - "madge": { - "detectiveOptions": { - "ts": { - "skipTypeImports": true - }, - "tsx": { - "skipTypeImports": true - } - } - }, - "lint-staged": { - "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ - "npm run prettier", - "npm run lint" - ] + "vite-tsconfig-paths": "^4.0.5", + "yarn": "^1.22.19" } } diff --git a/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch new file mode 100644 index 0000000000..03db6e8238 --- /dev/null +++ b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +index 937cf0d..7dcc0c0 100644 +--- a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js ++++ b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js +@@ -50,7 +50,8 @@ async function readTheme(themeFilePath) { + project: tsConfig.configFileAbsolutePath, + compilerOptions: { + module: "CommonJS", +- esModuleInterop: true ++ esModuleInterop: true, ++ jsx: 'react' + }, + transpileOnly: true, + swc: true diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index c9a3f48c47..00e1202f12 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -10,14 +10,18 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", + "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", + "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", + "langKorean": "한국어", "langPolish": "Polski", + "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -63,7 +67,10 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged" + "statusMergedModels": "Models Merged", + "pinOptionsPanel": "Pin Options Panel", + "loading": "Loading", + "loadingInvokeAI": "Loading Invoke AI" }, "gallery": { "generations": "Generations", @@ -82,7 +89,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shorcuts", + "keyboardShortcuts": "Keyboard Shortcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -387,13 +394,16 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum" + "weightedSum": "Weighted Sum", + "none": "none", + "addDifference": "Add Difference", + "pickModelType": "Pick Model Type" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/public/locales/he.json b/invokeai/frontend/web/public/locales/he.json new file mode 100644 index 0000000000..0950fb51de --- /dev/null +++ b/invokeai/frontend/web/public/locales/he.json @@ -0,0 +1,593 @@ +{ + "modelManager": { + "cannotUseSpaces": "לא ניתן להשתמש ברווחים", + "addNew": "הוסף חדש", + "vaeLocationValidationMsg": "נתיב למקום שבו ממוקם ה- VAE שלך.", + "height": "גובה", + "load": "טען", + "search": "חיפוש", + "heightValidationMsg": "גובה ברירת המחדל של המודל שלך.", + "addNewModel": "הוסף מודל חדש", + "allModels": "כל המודלים", + "checkpointModels": "נקודות ביקורת", + "diffusersModels": "מפזרים", + "safetensorModels": "טנסורים בטוחים", + "modelAdded": "מודל התווסף", + "modelUpdated": "מודל עודכן", + "modelEntryDeleted": "רשומת המודל נמחקה", + "addCheckpointModel": "הוסף נקודת ביקורת / מודל טנסור בטוח", + "addDiffuserModel": "הוסף מפזרים", + "addManually": "הוספה ידנית", + "manual": "ידני", + "name": "שם", + "description": "תיאור", + "descriptionValidationMsg": "הוסף תיאור למודל שלך", + "config": "תצורה", + "configValidationMsg": "נתיב לקובץ התצורה של המודל שלך.", + "modelLocation": "מיקום המודל", + "modelLocationValidationMsg": "נתיב למקום שבו המודל שלך ממוקם באופן מקומי.", + "repo_id": "מזהה מאגר", + "repoIDValidationMsg": "מאגר מקוון של המודל שלך", + "vaeLocation": "מיקום VAE", + "vaeRepoIDValidationMsg": "המאגר המקוון של VAE שלך", + "width": "רוחב", + "widthValidationMsg": "רוחב ברירת המחדל של המודל שלך.", + "addModel": "הוסף מודל", + "updateModel": "עדכן מודל", + "active": "פעיל", + "modelsFound": "מודלים נמצאו", + "cached": "נשמר במטמון", + "checkpointFolder": "תיקיית נקודות ביקורת", + "findModels": "מצא מודלים", + "scanAgain": "סרוק מחדש", + "selectFolder": "בחירת תיקייה", + "selected": "נבחר", + "selectAll": "בחר הכל", + "deselectAll": "ביטול בחירת הכל", + "showExisting": "הצג קיים", + "addSelected": "הוסף פריטים שנבחרו", + "modelExists": "המודל קיים", + "selectAndAdd": "בחר והוסך מודלים המפורטים להלן", + "deleteModel": "מחיקת מודל", + "deleteConfig": "מחיקת תצורה", + "formMessageDiffusersModelLocation": "מיקום מפזרי המודל", + "formMessageDiffusersModelLocationDesc": "נא להזין לפחות אחד.", + "convertToDiffusersHelpText5": "אנא ודא/י שיש לך מספיק מקום בדיסק. גדלי מודלים בדרך כלל הינם בין 4GB-7GB.", + "convertToDiffusersHelpText1": "מודל זה יומר לפורמט 🧨 המפזרים.", + "convertToDiffusersHelpText2": "תהליך זה יחליף את הרשומה של מנהל המודלים שלך בגרסת המפזרים של אותו המודל.", + "convertToDiffusersHelpText6": "האם ברצונך להמיר מודל זה?", + "convertToDiffusersSaveLocation": "שמירת מיקום", + "inpainting": "v1 צביעת תוך", + "statusConverting": "ממיר", + "modelConverted": "מודל הומר", + "sameFolder": "אותה תיקיה", + "custom": "התאמה אישית", + "merge": "מזג", + "modelsMerged": "מודלים מוזגו", + "mergeModels": "מזג מודלים", + "modelOne": "מודל 1", + "customSaveLocation": "מיקום שמירה מותאם אישית", + "alpha": "אלפא", + "mergedModelSaveLocation": "שמירת מיקום", + "mergedModelCustomSaveLocation": "נתיב מותאם אישית", + "ignoreMismatch": "התעלמות מאי-התאמות בין מודלים שנבחרו", + "modelMergeHeaderHelp1": "ניתן למזג עד שלושה מודלים שונים כדי ליצור שילוב שמתאים לצרכים שלכם.", + "modelMergeAlphaHelp": "אלפא שולט בחוזק מיזוג עבור המודלים. ערכי אלפא נמוכים יותר מובילים להשפעה נמוכה יותר של המודל השני.", + "nameValidationMsg": "הכנס שם למודל שלך", + "vaeRepoID": "מזהה מאגר ה VAE", + "modelManager": "מנהל המודלים", + "model": "מודל", + "availableModels": "מודלים זמינים", + "notLoaded": "לא נטען", + "clearCheckpointFolder": "נקה את תיקיית נקודות הביקורת", + "noModelsFound": "לא נמצאו מודלים", + "delete": "מחיקה", + "deleteMsg1": "האם אתה בטוח שברצונך למחוק רשומת מודל זו מ- InvokeAI?", + "deleteMsg2": "פעולה זו לא תמחק את קובץ נקודת הביקורת מהדיסק שלך. ניתן לקרוא אותם מחדש במידת הצורך.", + "formMessageDiffusersVAELocation": "מיקום VAE", + "formMessageDiffusersVAELocationDesc": "במידה ולא מסופק, InvokeAI תחפש את קובץ ה-VAE במיקום המודל המופיע לעיל.", + "convertToDiffusers": "המרה למפזרים", + "convert": "המרה", + "modelTwo": "מודל 2", + "modelThree": "מודל 3", + "mergedModelName": "שם מודל ממוזג", + "v1": "v1", + "v2": "v2", + "invokeRoot": "תיקיית InvokeAI", + "customConfig": "תצורה מותאמת אישית", + "pathToCustomConfig": "נתיב לתצורה מותאמת אישית", + "interpolationType": "סוג אינטרפולציה", + "invokeAIFolder": "תיקיית InvokeAI", + "sigmoid": "סיגמואיד", + "weightedSum": "סכום משוקלל", + "modelMergeHeaderHelp2": "רק מפזרים זמינים למיזוג. אם ברצונך למזג מודל של נקודת ביקורת, המר אותו תחילה למפזרים.", + "inverseSigmoid": "הפוך סיגמואיד", + "convertToDiffusersHelpText3": "קובץ נקודת הביקורת שלך בדיסק לא יימחק או ישונה בכל מקרה. אתה יכול להוסיף את נקודת הביקורת שלך למנהל המודלים שוב אם תרצה בכך.", + "convertToDiffusersHelpText4": "זהו תהליך חד פעמי בלבד. התהליך עשוי לקחת בסביבות 30-60 שניות, תלוי במפרט המחשב שלך.", + "modelMergeInterpAddDifferenceHelp": "במצב זה, מודל 3 מופחת תחילה ממודל 2. הגרסה המתקבלת משולבת עם מודל 1 עם קצב האלפא שנקבע לעיל." + }, + "common": { + "nodesDesc": "מערכת מבוססת צמתים עבור יצירת תמונות עדיין תחת פיתוח. השארו קשובים לעדכונים עבור הפיצ׳ר המדהים הזה.", + "themeLabel": "ערכת נושא", + "languagePickerLabel": "בחירת שפה", + "githubLabel": "גיטהאב", + "discordLabel": "דיסקורד", + "settingsLabel": "הגדרות", + "darkTheme": "חשוך", + "lightTheme": "מואר", + "langEnglish": "אנגלית", + "langDutch": "הולנדית", + "langArabic": "ערבית", + "langFrench": "צרפתית", + "langGerman": "גרמנית", + "langJapanese": "יפנית", + "langBrPortuguese": "פורטוגזית", + "langRussian": "רוסית", + "langSimplifiedChinese": "סינית", + "langUkranian": "אוקראינית", + "langSpanish": "ספרדית", + "text2img": "טקסט לתמונה", + "img2img": "תמונה לתמונה", + "unifiedCanvas": "קנבס מאוחד", + "nodes": "צמתים", + "postProcessing": "לאחר עיבוד", + "postProcessDesc2": "תצוגה ייעודית תשוחרר בקרוב על מנת לתמוך בתהליכים ועיבודים מורכבים.", + "postProcessDesc3": "ממשק שורת הפקודה של Invoke AI מציע תכונות שונות אחרות כולל Embiggen.", + "close": "סגירה", + "statusConnected": "מחובר", + "statusDisconnected": "מנותק", + "statusError": "שגיאה", + "statusPreparing": "בהכנה", + "statusProcessingCanceled": "עיבוד בוטל", + "statusProcessingComplete": "עיבוד הסתיים", + "statusGenerating": "מייצר", + "statusGeneratingTextToImage": "מייצר טקסט לתמונה", + "statusGeneratingImageToImage": "מייצר תמונה לתמונה", + "statusGeneratingInpainting": "מייצר ציור לתוך", + "statusGeneratingOutpainting": "מייצר ציור החוצה", + "statusIterationComplete": "איטרציה הסתיימה", + "statusRestoringFaces": "משחזר פרצופים", + "statusRestoringFacesCodeFormer": "משחזר פרצופים (CodeFormer)", + "statusUpscaling": "העלאת קנה מידה", + "statusUpscalingESRGAN": "העלאת קנה מידה (ESRGAN)", + "statusModelChanged": "מודל השתנה", + "statusConvertingModel": "ממיר מודל", + "statusModelConverted": "מודל הומר", + "statusMergingModels": "מיזוג מודלים", + "statusMergedModels": "מודלים מוזגו", + "hotkeysLabel": "מקשים חמים", + "reportBugLabel": "דווח באג", + "greenTheme": "ירוק", + "langItalian": "איטלקית", + "upload": "העלאה", + "langPolish": "פולנית", + "training": "אימון", + "load": "טעינה", + "back": "אחורה", + "statusSavingImage": "שומר תמונה", + "statusGenerationComplete": "ייצור הסתיים", + "statusRestoringFacesGFPGAN": "משחזר פרצופים (GFPGAN)", + "statusLoadingModel": "טוען מודל", + "trainingDesc2": "InvokeAI כבר תומך באימון הטמעות מותאמות אישית באמצעות היפוך טקסט באמצעות הסקריפט הראשי.", + "postProcessDesc1": "InvokeAI מציעה מגוון רחב של תכונות עיבוד שלאחר. העלאת קנה מידה של תמונה ושחזור פנים כבר זמינים בממשק המשתמש. ניתן לגשת אליהם מתפריט 'אפשרויות מתקדמות' בכרטיסיות 'טקסט לתמונה' ו'תמונה לתמונה'. ניתן גם לעבד תמונות ישירות, באמצעות לחצני הפעולה של התמונה מעל תצוגת התמונה הנוכחית או בתוך המציג.", + "trainingDesc1": "תהליך עבודה ייעודי לאימון ההטמעות ונקודות הביקורת שלך באמצעות היפוך טקסט ו-Dreambooth מממשק המשתמש." + }, + "hotkeys": { + "toggleGallery": { + "desc": "פתח וסגור את מגירת הגלריה", + "title": "הצג את הגלריה" + }, + "keyboardShortcuts": "קיצורי מקלדת", + "appHotkeys": "קיצורי אפליקציה", + "generalHotkeys": "קיצורי דרך כלליים", + "galleryHotkeys": "קיצורי דרך של הגלריה", + "unifiedCanvasHotkeys": "קיצורי דרך לקנבס המאוחד", + "invoke": { + "title": "הפעל", + "desc": "צור תמונה" + }, + "focusPrompt": { + "title": "התמקדות על הבקשה", + "desc": "התמקדות על איזור הקלדת הבקשה" + }, + "toggleOptions": { + "desc": "פתח וסגור את פאנל ההגדרות", + "title": "הצג הגדרות" + }, + "pinOptions": { + "title": "הצמד הגדרות", + "desc": "הצמד את פאנל ההגדרות" + }, + "toggleViewer": { + "title": "הצג את חלון ההצגה", + "desc": "פתח וסגור את מציג התמונות" + }, + "changeTabs": { + "title": "החלף לשוניות", + "desc": "החלף לאיזור עבודה אחר" + }, + "consoleToggle": { + "desc": "פתח וסגור את הקונסול", + "title": "הצג קונסול" + }, + "setPrompt": { + "title": "הגדרת בקשה", + "desc": "שימוש בבקשה של התמונה הנוכחית" + }, + "restoreFaces": { + "desc": "שחזור התמונה הנוכחית", + "title": "שחזור פרצופים" + }, + "upscale": { + "title": "הגדלת קנה מידה", + "desc": "הגדל את התמונה הנוכחית" + }, + "showInfo": { + "title": "הצג מידע", + "desc": "הצגת פרטי מטא-נתונים של התמונה הנוכחית" + }, + "sendToImageToImage": { + "title": "שלח לתמונה לתמונה", + "desc": "שלח תמונה נוכחית לתמונה לתמונה" + }, + "deleteImage": { + "title": "מחק תמונה", + "desc": "מחק את התמונה הנוכחית" + }, + "closePanels": { + "title": "סגור לוחות", + "desc": "סוגר לוחות פתוחים" + }, + "previousImage": { + "title": "תמונה קודמת", + "desc": "הצג את התמונה הקודמת בגלריה" + }, + "toggleGalleryPin": { + "title": "הצג את מצמיד הגלריה", + "desc": "הצמדה וביטול הצמדה של הגלריה לממשק המשתמש" + }, + "decreaseGalleryThumbSize": { + "title": "הקטנת גודל תמונת גלריה", + "desc": "מקטין את גודל התמונות הממוזערות של הגלריה" + }, + "selectBrush": { + "desc": "בוחר את מברשת הקנבס", + "title": "בחר מברשת" + }, + "selectEraser": { + "title": "בחר מחק", + "desc": "בוחר את מחק הקנבס" + }, + "decreaseBrushSize": { + "title": "הקטנת גודל המברשת", + "desc": "מקטין את גודל מברשת הקנבס/מחק" + }, + "increaseBrushSize": { + "desc": "מגדיל את גודל מברשת הקנבס/מחק", + "title": "הגדלת גודל המברשת" + }, + "decreaseBrushOpacity": { + "title": "הפחת את אטימות המברשת", + "desc": "מקטין את האטימות של מברשת הקנבס" + }, + "increaseBrushOpacity": { + "title": "הגדל את אטימות המברשת", + "desc": "מגביר את האטימות של מברשת הקנבס" + }, + "moveTool": { + "title": "כלי הזזה", + "desc": "מאפשר ניווט על קנבס" + }, + "fillBoundingBox": { + "desc": "ממלא את התיבה התוחמת בצבע מברשת", + "title": "מילוי תיבה תוחמת" + }, + "eraseBoundingBox": { + "desc": "מוחק את אזור התיבה התוחמת", + "title": "מחק תיבה תוחמת" + }, + "colorPicker": { + "title": "בחר בבורר צבעים", + "desc": "בוחר את בורר צבעי הקנבס" + }, + "toggleSnap": { + "title": "הפעל הצמדה", + "desc": "מפעיל הצמדה לרשת" + }, + "quickToggleMove": { + "title": "הפעלה מהירה להזזה", + "desc": "מפעיל זמנית את מצב ההזזה" + }, + "toggleLayer": { + "title": "הפעל שכבה", + "desc": "הפעל בחירת שכבת בסיס/מסיכה" + }, + "clearMask": { + "title": "נקה מסיכה", + "desc": "נקה את כל המסכה" + }, + "hideMask": { + "desc": "הסתרה והצגה של מסיכה", + "title": "הסתר מסיכה" + }, + "showHideBoundingBox": { + "title": "הצגה/הסתרה של תיבה תוחמת", + "desc": "הפעל תצוגה של התיבה התוחמת" + }, + "mergeVisible": { + "title": "מיזוג תוכן גלוי", + "desc": "מיזוג כל השכבות הגלויות של הקנבס" + }, + "saveToGallery": { + "title": "שמור לגלריה", + "desc": "שמור את הקנבס הנוכחי בגלריה" + }, + "copyToClipboard": { + "title": "העתק ללוח ההדבקה", + "desc": "העתק את הקנבס הנוכחי ללוח ההדבקה" + }, + "downloadImage": { + "title": "הורד תמונה", + "desc": "הורד את הקנבס הנוכחי" + }, + "undoStroke": { + "title": "בטל משיכה", + "desc": "בטל משיכת מברשת" + }, + "redoStroke": { + "title": "בצע שוב משיכה", + "desc": "ביצוע מחדש של משיכת מברשת" + }, + "resetView": { + "title": "איפוס תצוגה", + "desc": "אפס תצוגת קנבס" + }, + "previousStagingImage": { + "desc": "תמונת אזור ההערכות הקודמת", + "title": "תמונת הערכות קודמת" + }, + "nextStagingImage": { + "title": "תמנות הערכות הבאה", + "desc": "תמונת אזור ההערכות הבאה" + }, + "acceptStagingImage": { + "desc": "אשר את תמונת איזור ההערכות הנוכחית", + "title": "אשר תמונת הערכות" + }, + "cancel": { + "desc": "ביטול יצירת תמונה", + "title": "ביטול" + }, + "maximizeWorkSpace": { + "title": "מקסם את איזור העבודה", + "desc": "סגור פאנלים ומקסם את איזור העבודה" + }, + "setSeed": { + "title": "הגדר זרע", + "desc": "השתמש בזרע התמונה הנוכחית" + }, + "setParameters": { + "title": "הגדרת פרמטרים", + "desc": "שימוש בכל הפרמטרים של התמונה הנוכחית" + }, + "increaseGalleryThumbSize": { + "title": "הגדל את גודל תמונת הגלריה", + "desc": "מגדיל את התמונות הממוזערות של הגלריה" + }, + "nextImage": { + "title": "תמונה הבאה", + "desc": "הצג את התמונה הבאה בגלריה" + } + }, + "gallery": { + "uploads": "העלאות", + "galleryImageSize": "גודל תמונה", + "gallerySettings": "הגדרות גלריה", + "maintainAspectRatio": "שמור על יחס רוחב-גובה", + "autoSwitchNewImages": "החלף אוטומטית לתמונות חדשות", + "singleColumnLayout": "תצוגת עמודה אחת", + "pinGallery": "הצמד גלריה", + "allImagesLoaded": "כל התמונות נטענו", + "loadMore": "טען עוד", + "noImagesInGallery": "אין תמונות בגלריה", + "galleryImageResetSize": "איפוס גודל", + "generations": "דורות", + "showGenerations": "הצג דורות", + "showUploads": "הצג העלאות" + }, + "parameters": { + "images": "תמונות", + "steps": "צעדים", + "cfgScale": "סולם CFG", + "width": "רוחב", + "height": "גובה", + "sampler": "דוגם", + "seed": "זרע", + "imageToImage": "תמונה לתמונה", + "randomizeSeed": "זרע אקראי", + "variationAmount": "כמות וריאציה", + "seedWeights": "משקלי זרע", + "faceRestoration": "שחזור פנים", + "restoreFaces": "שחזר פנים", + "type": "סוג", + "strength": "חוזק", + "upscale": "הגדלת קנה מידה", + "upscaleImage": "הגדלת קנה מידת התמונה", + "denoisingStrength": "חוזק מנטרל הרעש", + "otherOptions": "אפשרויות אחרות", + "hiresOptim": "אופטימיזצית רזולוציה גבוהה", + "hiresStrength": "חוזק רזולוציה גבוהה", + "codeformerFidelity": "דבקות", + "seamSize": "גודל תפר", + "seamBlur": "טשטוש תפר", + "seamStrength": "חוזק תפר", + "seamSteps": "שלבי תפר", + "scaleBeforeProcessing": "שנה קנה מידה לפני עיבוד", + "scaledWidth": "קנה מידה לאחר שינוי W", + "scaledHeight": "קנה מידה לאחר שינוי H", + "infillMethod": "שיטת מילוי", + "tileSize": "גודל אריח", + "boundingBoxHeader": "תיבה תוחמת", + "seamCorrectionHeader": "תיקון תפר", + "infillScalingHeader": "מילוי וקנה מידה", + "toggleLoopback": "הפעל לולאה חוזרת", + "symmetry": "סימטריה", + "vSymmetryStep": "צעד סימטריה V", + "hSymmetryStep": "צעד סימטריה H", + "invoke": "הפעלה", + "cancel": { + "schedule": "ביטול לאחר האיטרציה הנוכחית", + "isScheduled": "מבטל", + "immediate": "ביטול מיידי", + "setType": "הגדר סוג ביטול" + }, + "negativePrompts": "בקשות שליליות", + "sendTo": "שליחה אל", + "copyImage": "העתקת תמונה", + "downloadImage": "הורדת תמונה", + "sendToImg2Img": "שליחה לתמונה לתמונה", + "sendToUnifiedCanvas": "שליחה אל קנבס מאוחד", + "openInViewer": "פתח במציג", + "closeViewer": "סגור מציג", + "usePrompt": "שימוש בבקשה", + "useSeed": "שימוש בזרע", + "useAll": "שימוש בהכל", + "useInitImg": "שימוש בתמונה ראשונית", + "info": "פרטים", + "showOptionsPanel": "הצג חלונית אפשרויות", + "shuffle": "ערבוב", + "noiseThreshold": "סף רעש", + "perlinNoise": "רעש פרלין", + "variations": "וריאציות", + "imageFit": "התאמת תמונה ראשונית לגודל הפלט", + "general": "כללי", + "upscaling": "מגדיל את קנה מידה", + "scale": "סולם", + "seamlessTiling": "ריצוף חלק", + "img2imgStrength": "חוזק תמונה לתמונה", + "initialImage": "תמונה ראשונית", + "copyImageToLink": "העתקת תמונה לקישור", + "deleteImage": "מחיקת תמונה", + "promptPlaceholder": "הקלד בקשה כאן. [אסימונים שליליים], (העלאת משקל)++ , (הורדת משקל)--, החלפה ומיזוג זמינים (ראה מסמכים)" + }, + "settings": { + "models": "מודלים", + "displayInProgress": "הצגת תמונות בתהליך", + "confirmOnDelete": "אישור בעת המחיקה", + "useCanvasBeta": "שימוש בגרסת ביתא של תצוגת הקנבס", + "useSlidersForAll": "שימוש במחוונים לכל האפשרויות", + "resetWebUI": "איפוס ממשק משתמש", + "resetWebUIDesc1": "איפוס ממשק המשתמש האינטרנטי מאפס רק את המטמון המקומי של הדפדפן של התמונות וההגדרות שנשמרו. זה לא מוחק תמונות מהדיסק.", + "resetComplete": "ממשק המשתמש אופס. יש לבצע רענון דף בכדי לטעון אותו מחדש.", + "enableImageDebugging": "הפעלת איתור באגים בתמונה", + "displayHelpIcons": "הצג סמלי עזרה", + "saveSteps": "שמירת תמונות כל n צעדים", + "resetWebUIDesc2": "אם תמונות לא מופיעות בגלריה או שמשהו אחר לא עובד, נא לנסות איפוס /או אתחול לפני שליחת תקלה ב-GitHub." + }, + "toast": { + "uploadFailed": "העלאה נכשלה", + "uploadFailedMultipleImagesDesc": "תמונות מרובות הודבקו, ניתן להעלות תמונה אחת בלבד בכל פעם", + "imageCopied": "התמונה הועתקה", + "imageLinkCopied": "קישור תמונה הועתק", + "imageNotLoadedDesc": "לא נמצאה תמונה לשליחה למודול תמונה לתמונה", + "imageSavedToGallery": "התמונה נשמרה בגלריה", + "canvasMerged": "קנבס מוזג", + "sentToImageToImage": "נשלח לתמונה לתמונה", + "sentToUnifiedCanvas": "נשלח אל קנבס מאוחד", + "parametersSet": "הגדרת פרמטרים", + "parametersNotSet": "פרמטרים לא הוגדרו", + "parametersNotSetDesc": "לא נמצאו מטא-נתונים עבור תמונה זו.", + "parametersFailedDesc": "לא ניתן לטעון תמונת התחלה.", + "seedSet": "זרע הוגדר", + "seedNotSetDesc": "לא ניתן היה למצוא זרע לתמונה זו.", + "promptNotSetDesc": "לא היתה אפשרות למצוא בקשה עבור תמונה זו.", + "metadataLoadFailed": "טעינת מטא-נתונים נכשלה", + "initialImageSet": "סט תמונה ראשוני", + "initialImageNotSet": "התמונה הראשונית לא הוגדרה", + "initialImageNotSetDesc": "לא ניתן היה לטעון את התמונה הראשונית", + "uploadFailedUnableToLoadDesc": "לא ניתן לטעון את הקובץ", + "tempFoldersEmptied": "התיקייה הזמנית רוקנה", + "downloadImageStarted": "הורדת התמונה החלה", + "imageNotLoaded": "לא נטענה תמונה", + "parametersFailed": "בעיה בטעינת פרמטרים", + "promptNotSet": "בקשה לא הוגדרה", + "upscalingFailed": "העלאת קנה המידה נכשלה", + "faceRestoreFailed": "שחזור הפנים נכשל", + "seedNotSet": "זרע לא הוגדר", + "promptSet": "בקשה הוגדרה" + }, + "tooltip": { + "feature": { + "gallery": "הגלריה מציגה יצירות מתיקיית הפלטים בעת יצירתם. ההגדרות מאוחסנות בתוך קבצים ונגישות באמצעות תפריט הקשר.", + "upscale": "השתמש ב-ESRGAN כדי להגדיל את התמונה מיד לאחר היצירה.", + "imageToImage": "תמונה לתמונה טוענת כל תמונה כראשונית, המשמשת לאחר מכן ליצירת תמונה חדשה יחד עם הבקשה. ככל שהערך גבוה יותר, כך תמונת התוצאה תשתנה יותר. ערכים מ- 0.0 עד 1.0 אפשריים, הטווח המומלץ הוא .25-.75", + "seamCorrection": "שליטה בטיפול בתפרים גלויים המתרחשים בין תמונות שנוצרו על בד הציור.", + "prompt": "זהו שדה הבקשה. הבקשה כוללת אובייקטי יצירה ומונחים סגנוניים. באפשרותך להוסיף משקל (חשיבות אסימון) גם בשורת הפקודה, אך פקודות ופרמטרים של CLI לא יפעלו.", + "variations": "נסה וריאציה עם ערך בין 0.1 ל- 1.0 כדי לשנות את התוצאה עבור זרע נתון. וריאציות מעניינות של הזרע הן בין 0.1 ל -0.3.", + "other": "אפשרויות אלה יאפשרו מצבי עיבוד חלופיים עבור ההרצה. 'ריצוף חלק' ייצור תבניות חוזרות בפלט. 'רזולוציה גבוהה' נוצר בשני שלבים עם img2img: השתמש בהגדרה זו כאשר אתה רוצה תמונה גדולה וקוהרנטית יותר ללא חפצים. פעולה זאת תקח יותר זמן מפעולת טקסט לתמונה רגילה.", + "faceCorrection": "תיקון פנים עם GFPGAN או Codeformer: האלגוריתם מזהה פרצופים בתמונה ומתקן כל פגם. ערך גבוה ישנה את התמונה יותר, וכתוצאה מכך הפרצופים יהיו אטרקטיביים יותר. Codeformer עם נאמנות גבוהה יותר משמר את התמונה המקורית על חשבון תיקון פנים חזק יותר.", + "seed": "ערך הזרע משפיע על הרעש הראשוני שממנו נוצרת התמונה. אתה יכול להשתמש בזרעים שכבר קיימים מתמונות קודמות. 'סף רעש' משמש להפחתת חפצים בערכי CFG גבוהים (נסה את טווח 0-10), ופרלין כדי להוסיף רעשי פרלין במהלך היצירה: שניהם משמשים להוספת וריאציה לתפוקות שלך.", + "infillAndScaling": "נהל שיטות מילוי (המשמשות באזורים עם מסיכה או אזורים שנמחקו בבד הציור) ושינוי קנה מידה (שימושי לגדלים קטנים של תיבות תוחמות).", + "boundingBox": "התיבה התוחמת זהה להגדרות 'רוחב' ו'גובה' עבור 'טקסט לתמונה' או 'תמונה לתמונה'. רק האזור בתיבה יעובד." + } + }, + "unifiedCanvas": { + "layer": "שכבה", + "base": "בסיס", + "maskingOptions": "אפשרויות מסכות", + "enableMask": "הפעלת מסיכה", + "colorPicker": "בוחר הצבעים", + "preserveMaskedArea": "שימור איזור ממוסך", + "clearMask": "ניקוי מסיכה", + "brush": "מברשת", + "eraser": "מחק", + "fillBoundingBox": "מילוי תיבה תוחמת", + "eraseBoundingBox": "מחק תיבה תוחמת", + "copyToClipboard": "העתק ללוח ההדבקה", + "downloadAsImage": "הורדה כתמונה", + "undo": "ביטול", + "redo": "ביצוע מחדש", + "clearCanvas": "ניקוי קנבס", + "showGrid": "הצגת רשת", + "snapToGrid": "הצמדה לרשת", + "darkenOutsideSelection": "הכהיית בחירה חיצונית", + "saveBoxRegionOnly": "שמירת איזור תיבה בלבד", + "limitStrokesToBox": "הגבלת משיכות לקופסא", + "showCanvasDebugInfo": "הצגת מידע איתור באגים בקנבס", + "clearCanvasHistory": "ניקוי הסטוריית קנבס", + "clearHistory": "ניקוי היסטוריה", + "clearCanvasHistoryConfirm": "האם את/ה בטוח/ה שברצונך לנקות את היסטוריית הקנבס?", + "emptyFolder": "ריקון תיקייה", + "emptyTempImagesFolderConfirm": "האם את/ה בטוח/ה שברצונך לרוקן את התיקיה הזמנית?", + "activeLayer": "שכבה פעילה", + "canvasScale": "קנה מידה של קנבס", + "betaLimitToBox": "הגבל לקופסא", + "betaDarkenOutside": "הכההת הבחוץ", + "canvasDimensions": "מידות קנבס", + "previous": "הקודם", + "next": "הבא", + "accept": "אישור", + "showHide": "הצג/הסתר", + "discardAll": "בטל הכל", + "betaClear": "איפוס", + "boundingBox": "תיבה תוחמת", + "scaledBoundingBox": "תיבה תוחמת לאחר שינוי קנה מידה", + "betaPreserveMasked": "שמר מסיכה", + "brushOptions": "אפשרויות מברשת", + "brushSize": "גודל", + "mergeVisible": "מיזוג תוכן גלוי", + "move": "הזזה", + "resetView": "איפוס תצוגה", + "saveToGallery": "שמור לגלריה", + "canvasSettings": "הגדרות קנבס", + "showIntermediates": "הצגת מתווכים", + "autoSaveToGallery": "שמירה אוטומטית בגלריה", + "emptyTempImageFolder": "ריקון תיקיית תמונות זמניות", + "clearCanvasHistoryMessage": "ניקוי היסטוריית הקנבס משאיר את הקנבס הנוכחי ללא שינוי, אך מנקה באופן בלתי הפיך את היסטוריית הביטול והביצוע מחדש.", + "emptyTempImagesFolderMessage": "ריקון תיקיית התמונה הזמנית גם מאפס באופן מלא את הקנבס המאוחד. זה כולל את כל היסטוריית הביטול/ביצוע מחדש, תמונות באזור ההערכות ושכבת הבסיס של בד הציור.", + "boundingBoxPosition": "מיקום תיבה תוחמת", + "canvasPosition": "מיקום קנבס", + "cursorPosition": "מיקום הסמן", + "mask": "מסכה" + } +} diff --git a/invokeai/frontend/web/public/locales/ko.json b/invokeai/frontend/web/public/locales/ko.json new file mode 100644 index 0000000000..888cdc9925 --- /dev/null +++ b/invokeai/frontend/web/public/locales/ko.json @@ -0,0 +1,81 @@ +{ + "common": { + "themeLabel": "테마 설정", + "languagePickerLabel": "언어 설정", + "reportBugLabel": "버그 리포트", + "githubLabel": "Github", + "settingsLabel": "설정", + "darkTheme": "다크 모드", + "lightTheme": "라이트 모드", + "greenTheme": "그린 모드", + "langArabic": "العربية", + "langEnglish": "English", + "langDutch": "Nederlands", + "text2img": "텍스트->이미지", + "unifiedCanvas": "통합 캔버스", + "langFrench": "Français", + "langGerman": "Deutsch", + "langItalian": "Italiano", + "langJapanese": "日本語", + "langBrPortuguese": "Português do Brasil", + "langRussian": "Русский", + "langSpanish": "Español", + "nodes": "노드", + "nodesDesc": "이미지 생성을 위한 노드 기반 시스템은 현재 개발 중입니다. 이 놀라운 기능에 대한 업데이트를 계속 지켜봐 주세요.", + "postProcessing": "후처리", + "postProcessDesc2": "보다 진보된 후처리 작업을 위한 전용 UI가 곧 출시될 예정입니다.", + "postProcessDesc3": "Invoke AI CLI는 Embiggen을 비롯한 다양한 기능을 제공합니다.", + "training": "학습", + "trainingDesc1": "Textual Inversion과 Dreambooth를 이용해 Web UI에서 나만의 embedding 및 checkpoint를 교육하기 위한 전용 워크플로우입니다.", + "trainingDesc2": "InvokeAI는 이미 메인 스크립트를 사용한 Textual Inversion를 이용한 Custom embedding 학습을 지원하고 있습니다.", + "upload": "업로드", + "close": "닫기", + "load": "로드", + "back": "뒤로 가기", + "statusConnected": "연결됨", + "statusDisconnected": "연결 끊김", + "statusError": "에러", + "statusPreparing": "준비 중", + "langSimplifiedChinese": "简体中文", + "statusGenerating": "생성 중", + "statusGeneratingTextToImage": "텍스트->이미지 생성", + "statusGeneratingInpainting": "인페인팅 생성", + "statusGeneratingOutpainting": "아웃페인팅 생성", + "statusGenerationComplete": "생성 완료", + "statusRestoringFaces": "얼굴 복원", + "statusRestoringFacesGFPGAN": "얼굴 복원 (GFPGAN)", + "statusRestoringFacesCodeFormer": "얼굴 복원 (CodeFormer)", + "statusUpscaling": "업스케일링", + "statusUpscalingESRGAN": "업스케일링 (ESRGAN)", + "statusLoadingModel": "모델 로딩중", + "statusModelChanged": "모델 변경됨", + "statusConvertingModel": "모델 컨버팅", + "statusModelConverted": "모델 컨버팅됨", + "statusMergedModels": "모델 병합됨", + "statusMergingModels": "모델 병합중", + "hotkeysLabel": "단축키 설정", + "img2img": "이미지->이미지", + "discordLabel": "Discord", + "langPolish": "Polski", + "postProcessDesc1": "Invoke AI는 다양한 후처리 기능을 제공합니다. 이미지 업스케일링 및 얼굴 복원은 이미 Web UI에서 사용할 수 있습니다. 텍스트->이미지 또는 이미지->이미지 탭의 고급 옵션 메뉴에서 사용할 수 있습니다. 또한 현재 이미지 표시 위, 또는 뷰어에서 액션 버튼을 사용하여 이미지를 직접 처리할 수도 있습니다.", + "langUkranian": "Украї́нська", + "statusProcessingCanceled": "처리 취소됨", + "statusGeneratingImageToImage": "이미지->이미지 생성", + "statusProcessingComplete": "처리 완료", + "statusIterationComplete": "반복(Iteration) 완료", + "statusSavingImage": "이미지 저장" + }, + "gallery": { + "showGenerations": "생성된 이미지 보기", + "generations": "생성된 이미지", + "uploads": "업로드된 이미지", + "showUploads": "업로드된 이미지 보기", + "galleryImageSize": "이미지 크기", + "galleryImageResetSize": "사이즈 리셋", + "gallerySettings": "갤러리 설정", + "maintainAspectRatio": "종횡비 유지" + }, + "unifiedCanvas": { + "betaPreserveMasked": "마스크 레이어 유지" + } +} diff --git a/invokeai/frontend/web/public/locales/nl.json b/invokeai/frontend/web/public/locales/nl.json index 46baf83ff9..4116914132 100644 --- a/invokeai/frontend/web/public/locales/nl.json +++ b/invokeai/frontend/web/public/locales/nl.json @@ -43,7 +43,27 @@ "statusUpscaling": "Opschaling", "statusUpscalingESRGAN": "Opschaling (ESRGAN)", "statusLoadingModel": "Laden van model", - "statusModelChanged": "Model gewijzigd" + "statusModelChanged": "Model gewijzigd", + "githubLabel": "Github", + "discordLabel": "Discord", + "langArabic": "Arabisch", + "langEnglish": "Engels", + "langFrench": "Frans", + "langGerman": "Duits", + "langItalian": "Italiaans", + "langJapanese": "Japans", + "langPolish": "Pools", + "langBrPortuguese": "Portugees (Brazilië)", + "langRussian": "Russisch", + "langSimplifiedChinese": "Chinees (vereenvoudigd)", + "langUkranian": "Oekraïens", + "langSpanish": "Spaans", + "training": "Training", + "back": "Terug", + "statusConvertingModel": "Omzetten van model", + "statusModelConverted": "Model omgezet", + "statusMergingModels": "Samenvoegen van modellen", + "statusMergedModels": "Modellen samengevoegd" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -282,7 +302,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -319,7 +339,61 @@ "deleteModel": "Verwijder model", "deleteConfig": "Verwijder configuratie", "deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?", - "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt." + "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.", + "formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.", + "repoIDValidationMsg": "Online repository van je model", + "formMessageDiffusersModelLocation": "Locatie Diffusers-model", + "convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.", + "convertToDiffusersHelpText6": "Wil je dit model omzetten?", + "allModels": "Alle modellen", + "checkpointModels": "Checkpoints", + "safetensorModels": "SafeTensors", + "addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe", + "addDiffuserModel": "Voeg Diffusers-model toe", + "diffusersModels": "Diffusers", + "repo_id": "Repo-id", + "vaeRepoID": "Repo-id VAE", + "vaeRepoIDValidationMsg": "Online repository van je VAE", + "formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.", + "formMessageDiffusersVAELocation": "Locatie VAE", + "convert": "Omzetten", + "convertToDiffusers": "Omzetten naar Diffusers", + "convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.", + "convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.", + "convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.", + "convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.", + "convertToDiffusersSaveLocation": "Bewaarlocatie", + "v1": "v1", + "v2": "v2", + "inpainting": "v1-inpainting", + "customConfig": "Eigen configuratie", + "pathToCustomConfig": "Pad naar eigen configuratie", + "statusConverting": "Omzetten", + "modelConverted": "Model omgezet", + "sameFolder": "Dezelfde map", + "invokeRoot": "InvokeAI-map", + "custom": "Eigen", + "customSaveLocation": "Eigen bewaarlocatie", + "merge": "Samenvoegen", + "modelsMerged": "Modellen samengevoegd", + "mergeModels": "Voeg modellen samen", + "modelOne": "Model 1", + "modelTwo": "Model 2", + "modelThree": "Model 3", + "mergedModelName": "Samengevoegde modelnaam", + "alpha": "Alfa", + "interpolationType": "Soort interpolatie", + "mergedModelSaveLocation": "Bewaarlocatie", + "mergedModelCustomSaveLocation": "Eigen pad", + "invokeAIFolder": "InvokeAI-map", + "ignoreMismatch": "Negeer discrepanties tussen gekozen modellen", + "modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.", + "modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.", + "modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.", + "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", + "inverseSigmoid": "Keer Sigmoid om", + "sigmoid": "Sigmoid", + "weightedSum": "Gewogen som" }, "parameters": { "images": "Afbeeldingen", @@ -379,7 +453,22 @@ "info": "Info", "deleteImage": "Verwijder afbeelding", "initialImage": "Initiële afbeelding", - "showOptionsPanel": "Toon deelscherm Opties" + "showOptionsPanel": "Toon deelscherm Opties", + "symmetry": "Symmetrie", + "hSymmetryStep": "Stap horiz. symmetrie", + "vSymmetryStep": "Stap vert. symmetrie", + "cancel": { + "immediate": "Annuleer direct", + "isScheduled": "Annuleren", + "setType": "Stel annuleervorm in", + "schedule": "Annuleer na huidige iteratie" + }, + "negativePrompts": "Negatieve invoer", + "general": "Algemeen", + "copyImage": "Kopieer afbeelding", + "imageToImage": "Afbeelding naar afbeelding", + "denoisingStrength": "Sterkte ontruisen", + "hiresStrength": "Sterkte hogere resolutie" }, "settings": { "models": "Modellen", @@ -392,7 +481,8 @@ "resetWebUI": "Herstel web-UI", "resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.", "resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.", - "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden." + "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.", + "useSlidersForAll": "Gebruik schuifbalken voor alle opties" }, "toast": { "tempFoldersEmptied": "Tijdelijke map geleegd", diff --git a/invokeai/frontend/web/public/locales/pt.json b/invokeai/frontend/web/public/locales/pt.json new file mode 100644 index 0000000000..39d383e37f --- /dev/null +++ b/invokeai/frontend/web/public/locales/pt.json @@ -0,0 +1,68 @@ +{ + "common": { + "greenTheme": "Verde", + "langArabic": "العربية", + "themeLabel": "Tema", + "reportBugLabel": "Reportar Bug", + "settingsLabel": "Configurações", + "lightTheme": "Claro", + "langBrPortuguese": "Português do Brasil", + "languagePickerLabel": "Seletor de Idioma", + "langDutch": "Nederlands", + "langEnglish": "English", + "hotkeysLabel": "Hotkeys", + "langPolish": "Polski", + "langFrench": "Français", + "langGerman": "Deutsch", + "langItalian": "Italiano", + "langJapanese": "日本語", + "langSimplifiedChinese": "简体中文", + "langSpanish": "Espanhol", + "langRussian": "Русский", + "langUkranian": "Украї́нська", + "text2img": "Texto para Imagem", + "img2img": "Imagem para Imagem", + "unifiedCanvas": "Tela Unificada", + "nodes": "Nós", + "nodesDesc": "Um sistema baseado em nós para a geração de imagens está em desenvolvimento atualmente. Fique atento para atualizações sobre este recurso incrível.", + "postProcessDesc3": "A Interface de Linha de Comando do Invoke AI oferece vários outros recursos, incluindo o Embiggen.", + "postProcessing": "Pós Processamento", + "postProcessDesc1": "O Invoke AI oferece uma ampla variedade de recursos de pós-processamento. O aumento de resolução de imagem e a restauração de rosto já estão disponíveis na interface do usuário da Web. Você pode acessá-los no menu Opções Avançadas das guias Texto para Imagem e Imagem para Imagem. Você também pode processar imagens diretamente, usando os botões de ação de imagem acima da exibição da imagem atual ou no visualizador.", + "postProcessDesc2": "Em breve, uma interface do usuário dedicada será lançada para facilitar fluxos de trabalho de pós-processamento mais avançados.", + "trainingDesc1": "Um fluxo de trabalho dedicado para treinar seus próprios embeddings e checkpoints usando Textual Inversion e Dreambooth da interface da web.", + "trainingDesc2": "O InvokeAI já oferece suporte ao treinamento de embeddings personalizados usando a Inversão Textual por meio do script principal.", + "upload": "Upload", + "statusError": "Erro", + "statusGeneratingTextToImage": "Gerando Texto para Imagem", + "close": "Fechar", + "load": "Abrir", + "back": "Voltar", + "statusConnected": "Conectado", + "statusDisconnected": "Desconectado", + "statusPreparing": "Preparando", + "statusGenerating": "Gerando", + "statusProcessingCanceled": "Processamento Cancelado", + "statusProcessingComplete": "Processamento Completo", + "statusGeneratingImageToImage": "Gerando Imagem para Imagem", + "statusGeneratingInpainting": "Geração de Preenchimento de Lacunas", + "statusIterationComplete": "Iteração Completa", + "statusSavingImage": "Salvando Imagem", + "statusRestoringFacesGFPGAN": "Restaurando Faces (GFPGAN)", + "statusRestoringFaces": "Restaurando Faces", + "statusRestoringFacesCodeFormer": "Restaurando Faces (CodeFormer)", + "statusUpscaling": "Ampliando", + "statusUpscalingESRGAN": "Ampliando (ESRGAN)", + "statusConvertingModel": "Convertendo Modelo", + "statusModelConverted": "Modelo Convertido", + "statusLoadingModel": "Carregando Modelo", + "statusModelChanged": "Modelo Alterado", + "githubLabel": "Github", + "discordLabel": "Discord", + "darkTheme": "Escuro", + "training": "Treinando", + "statusGeneratingOutpainting": "Geração de Ampliação", + "statusGenerationComplete": "Geração Completa", + "statusMergingModels": "Mesclando Modelos", + "statusMergedModels": "Modelos Mesclados" + } +} diff --git a/invokeai/frontend/web/public/locales/zh_Hant.json b/invokeai/frontend/web/public/locales/zh_Hant.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/invokeai/frontend/web/public/locales/zh_Hant.json @@ -0,0 +1 @@ +{} diff --git a/invokeai/frontend/web/src/Loading.tsx b/invokeai/frontend/web/src/Loading.tsx index 066315ecd1..671c2cd640 100644 --- a/invokeai/frontend/web/src/Loading.tsx +++ b/invokeai/frontend/web/src/Loading.tsx @@ -1,20 +1,37 @@ -import { Flex, Spinner } from '@chakra-ui/react'; +import { Flex, Spinner, Text } from '@chakra-ui/react'; +import { useTranslation } from 'react-i18next'; + +interface LoaderProps { + showText?: boolean; + text?: string; +} + +// This component loads before the theme so we cannot use theme tokens here + +const Loading = (props: LoaderProps) => { + const { t } = useTranslation(); + const { showText = false, text = t('common.loadingInvokeAI') } = props; -const Loading = () => { return ( - + + {showText && ( + + {text} + + )} ); }; diff --git a/invokeai/frontend/web/src/app/App.scss b/invokeai/frontend/web/src/app/App.scss deleted file mode 100644 index 16655f84d4..0000000000 --- a/invokeai/frontend/web/src/app/App.scss +++ /dev/null @@ -1,21 +0,0 @@ -@use '../styles/Mixins/' as *; - -svg { - fill: var(--svg-color); -} - -.App { - display: grid; - width: 100vw; - height: 100vh; - background-color: var(--background-color); -} - -.app-content { - display: grid; - row-gap: 1rem; - padding: $app-padding; - grid-auto-rows: min-content auto; - width: $app-width; - height: $app-height; -} diff --git a/invokeai/frontend/web/src/app/App.tsx b/invokeai/frontend/web/src/app/App.tsx index d0ed2ab016..3599577ca1 100644 --- a/invokeai/frontend/web/src/app/App.tsx +++ b/invokeai/frontend/web/src/app/App.tsx @@ -9,6 +9,8 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher'; import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton'; import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons'; +import { Box, Grid } from '@chakra-ui/react'; +import { APP_HEIGHT, APP_PADDING, APP_WIDTH } from 'theme/util/constants'; keepGUIAlive(); @@ -16,20 +18,26 @@ const App = () => { useToastWatcher(); return ( -
        + -
        + -
        -
        + + -
        +
        -
        + ); }; diff --git a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx new file mode 100644 index 0000000000..51fad5a431 --- /dev/null +++ b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx @@ -0,0 +1,46 @@ +import { ChakraProvider, extendTheme } from '@chakra-ui/react'; +import { ReactNode, useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; +import { theme as invokeAITheme } from 'theme/theme'; +import { RootState } from './store'; +import { useAppSelector } from './storeHooks'; + +import { greenTeaThemeColors } from 'theme/colors/greenTea'; +import { invokeAIThemeColors } from 'theme/colors/invokeAI'; +import { lightThemeColors } from 'theme/colors/lightTheme'; +import { oceanBlueColors } from 'theme/colors/oceanBlue'; + +type ThemeLocaleProviderProps = { + children: ReactNode; +}; + +const THEMES = { + dark: invokeAIThemeColors, + light: lightThemeColors, + green: greenTeaThemeColors, + ocean: oceanBlueColors, +}; + +function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) { + const { i18n } = useTranslation(); + + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); + + const direction = i18n.dir(); + + const theme = extendTheme({ + ...invokeAITheme, + colors: THEMES[currentTheme as keyof typeof THEMES], + direction, + }); + + useEffect(() => { + document.body.dir = direction; + }, [direction]); + + return {children}; +} + +export default ThemeLocaleProvider; diff --git a/invokeai/frontend/web/src/app/socketio/listeners.ts b/invokeai/frontend/web/src/app/socketio/listeners.ts index 6442564e48..08de671260 100644 --- a/invokeai/frontend/web/src/app/socketio/listeners.ts +++ b/invokeai/frontend/web/src/app/socketio/listeners.ts @@ -392,7 +392,7 @@ const makeSocketIOListeners = ( addLogEntry({ timestamp: dateFormat(new Date(), 'isoDateTime'), message: `${i18n.t( - 'modelmanager:modelAdded' + 'modelManager.modelAdded' )}: ${deleted_model_name}`, level: 'info', }) @@ -400,7 +400,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelEntryDeleted' + 'modelManager.modelEntryDeleted' )}: ${deleted_model_name}`, status: 'success', duration: 2500, @@ -424,7 +424,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelmanager:modelConverted' + 'modelManager.modelConverted' )}: ${converted_model_name}`, status: 'success', duration: 2500, diff --git a/invokeai/frontend/web/src/app/theme.ts b/invokeai/frontend/web/src/app/theme.ts deleted file mode 100644 index 06b28a66ac..0000000000 --- a/invokeai/frontend/web/src/app/theme.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { extendTheme } from '@chakra-ui/react'; -import type { StyleFunctionProps } from '@chakra-ui/styled-system'; - -export const theme = extendTheme({ - config: { - initialColorMode: 'dark', - useSystemColorMode: false, - }, - components: { - Tooltip: { - baseStyle: (props: StyleFunctionProps) => ({ - textColor: props.colorMode === 'dark' ? 'gray.800' : 'gray.100', - }), - }, - Accordion: { - baseStyle: (props: StyleFunctionProps) => ({ - button: { - fontWeight: 'bold', - _hover: { - bgColor: - props.colorMode === 'dark' - ? 'rgba(255,255,255,0.05)' - : 'rgba(0,0,0,0.05)', - }, - }, - panel: { - paddingBottom: 2, - }, - }), - }, - FormLabel: { - baseStyle: { - fontWeight: 'light', - }, - }, - Button: { - variants: { - imageHoverIconButton: (props: StyleFunctionProps) => ({ - bg: props.colorMode === 'dark' ? 'blackAlpha.700' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.700' : 'blackAlpha.700', - _hover: { - bg: - props.colorMode === 'dark' ? 'blackAlpha.800' : 'whiteAlpha.800', - color: - props.colorMode === 'dark' ? 'whiteAlpha.900' : 'blackAlpha.900', - }, - }), - }, - }, - }, -}); diff --git a/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf b/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf deleted file mode 100644 index 8e82c70d1081e2857ada1b73395d4f42c2e8adc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316100 zcmcG133wDm^ZxYA?(8O&ccOcwEAO{dgNC-DVB9}lQBBz{k zsepojhzNol9;k@lr{IZ-h!-NCpmHQTz5lnmXLctc2tLpM_n?rx(^FktU0q#WUEQNF zMNul^FNdOZdaOgoCLcDbu4wU>0R(sI)w9ppj~h-?w4RE>8tI+-B(|F~w=i3A%y278 z;*_3!9%>qKBD0;MP8|j+!}|1%>-)cNzU-tpKFP!Hk0oae&w8lQuj}#rsG_7U963BE z3wTA)zleX`Bgalnt2wd$gCJg3QR}rDl{!47;oHMIDr)bRcpftfK+V6azJ>Q&ubJ{UVLd3eD50}B-Ofl>JVKN-WPWCfOGI)3kr^0hLDXQW>Cl#Nr= z@A@i=ekE&M&V(1YMUPk1pB__`lnq(qQ?o|ti{|2aHj#VfZ{(>8SKMvsZ}lkseM9^$e^ykbJ*v14!4YL;csQd!5iC3? zTn*uk)e~wX^*C>AcqNpU&JMXtnG=qGi>T$l@(yqBYbsYMUO_G$y)vWQ4AVRthV% zacWfFzCMc*6BqTt-z|IeXxXx74_o`T?0KTkg5JFs^ugaRb!!pRjdhEO>25Wq?4uTQ z?uBYUHH&cLxVuW=e}JRg(D+HtBwOPZtGu4UR9hpf`0z|NN#aDu?Jr-Pj$bG_BorS% zzVhz!u7&=3%lh#k*JeK+=fa?^lbPycD&51zVhF)v8ux=UuJ<1 z|DKIe1AO&c{T!u>epX7<4>`gT`Q_wZX4291kqdp&^GREG_vm=js?(1KY`%)J{A*!5 zG>emf0^=G{_SO@)ug3yb@F$?D4sV#m#jpxes+Sm6(IMfXObacqx}suYT11yRmiW$1 ztUf=ui?tckVN$yXnSUHP2G?SHtMhpF$?U|%V`|N4IJ@(7uy~~eE31rO1S_Wr4@eZO zL?{i5vl3Fdk{(gJks4834~-%tR#R=(G)BW{C)T1%XKmEZS!pf$c8YIQzxmE5(;D^e z)$74}Ek;iql-0VnpG()Q=;RgE>sIg7q)GCc`|4Kjz>ka@xvpMX#JGn?LvY(9S3ZHR z_SRGyTjCG2y4EGT)`$B9U3|#fx@*HB1(Qd6?m?R!_=zSFB@UKen0wRU>-#;&d7<{G zXGAH6Kfv+#%|Q2ckH0Ba_3q`C1_f+fX4jx%dUi+VM?)Vqb36~QjpwL<1?mZOl}`hW zQlDCyD4trHXua$5Yh=j+g7bj|t{W}A(Db8(4rAUi-#+<|*B0|<8@hh}Wwp9rSm=k{8L&OP0=v7Y7H z>xIugZKUXqdTxcU9BnqOdz zo*nk$n28_dZQ}3##5=O#uf344Y7}3=;s)mTUcZFD?pEggzGlj6IaMk-r+vL@i+4F2 zkv}1ERy?cw=!D+m=7V`rxtKcQ1oK(!l3;SLag3M(^AgY37YkL}%d6UP_Xzzffybid zOWcYh3gtmlak;qnDc%ttL9(I*U>qyulyK!iB^skAytb}a4h@fvjH%Ns9P+-G=4xN? z&-)CxpYfTjfVuXw`WLijX#eWrX#Z(y|IekhU*FJuV(jGiH~l{ACZ_y*l7;9PwAqr4 z^*dCoz-pKUU-QqNZ8R`1 zL0!y?KAL=!ea3pQp6s(5DR1%1&|Gj3(9<2O1Su_u2e^rK;7nBxii`v^dT8i9aW!l^ z3)|X!cubWpRodny{tG65c=dX&7QnYL$3t1eU%nTXA;bb>5(y28)I})RM75EZ6HdYu zqeJ2;Y_(84iIXoN@pRVAhLevY@ho+h4fmJNvC31uKKfC*s28JC)I*|#Nk1k``U93h zziXGOF6~j~^c;8WyJx9!PoVqnn|h0Tkrq^JE~Iims#u@!ni}TL;OOQmdKYth-I!o> zcP&S7P({@dUb{}DI+wjxEUESSA=%fox|YkT?W z-`R_)*^cI?GwW!higM z)tV2ZM^@p8unJXZ{nJMpgCJ=d$RyuhPl`G6r6JI++__d~6b*U4__2)G$%S8*&VwA^ zuJOX{#Bvgkjxt*}uW{b3s&?Bbh13uG-pCKITNwY;Y{EP)JrYYZ_z0MSCwzSWZ zvI4!D7=@36fJ;wP!YmON!&8(4Hk?MYET66<*znONuIr;G)$viM4w0oZly0`tX3&etVw94tm>fqu%wzb=L^aY22E4%I9CN8$%I zkm^M*_~d~}-p*G(`o~{CtpjB{@>~_fI#6_fU~eBjMtRX{x2vUCAByr=A4bypkQ5sA z)A~^2SG@zp`jF^M7VATaUsH~V^`W3&rk1b#pUOjGeMruTzaOwZq<%m<1i!H5d$~ui zCTzKI&LbG}sb+YPbB{n91OYV2+pxv9nR-n}GI2!>yuyCEW53b-?PiGoE zES3F&|9@qvR#yoh0Zqa0^AHD9+{@qxJ2bCiPvD+^NDIU# zfx}S~Z>*;`0ycZ6i8p4#Mt}V9qvf^M8&8^9UJx%t>tKk?p`jq`c1sC(VH&bFl_*42-#w( z6y)ZL&MYy+ts(2uM=3IRBFmQ;oYJ;9Iiw$8w=H{}-8`vUoaZgeu6Xt;s`p*vD2-RR zLHD6>cxa{aSa3#01%)-mgc%*}>$|IL&!Dv@vudO^tkgI-G0)l6lcu%x98FqrcvL;r z%{ppr1`hQTMytV_lMBngfZD8Qu@9hVOc@XSu;k6J8P3CnuW4&MZ)tIUtce&6-K&zW^)^RoYr8({pQ4ZO&+ zIOpeiw?Cg@IveugF4o}J<)O~>F4;Znuj8M8_8C93e)Q4Vzv!+HPBf(fc!A5!?u{RJeNSgraL+ucE7z=1&-^>S0%F{!lwjo%@?%3{ z;pzC@*n4EswV!uV)#R7Y&uluPd5zXJJ5G(~@%PNLGo7`3>h$8yWy(E%SQbH1(pe*62_;U-E%8jY&W6*>Bk?SCo5YQYq$)mqvU)^umO?+L7=0RS zl1>U+W}~n8@C+6u6qoq<1`1GLQ92Y?xnfHNOEbfxB6No%k$=y-{k5D0uwftUVh>$e z6$-ib%z3)+x@!w&U)i+sOm>2CMH|Dvs9I(u|GBzd?Or!l+ohOsA}@$_EIM#$27>w| zGgB9qVac<6m(_DrxliH>?G86AFnn`RxjMuY9^r@s650V(0l8%`BDl zEcjP^-=>zg+TB|tOr`loDCMf#l=2(l21wkll-~$zCvm${LTR8(61OX*oxWWuzY*?` zEN@rJZ$w~3;+9gv%DQI3nwIn;*&b~i+s%7WP3wFV6U-B zNG3$NpZtGJY=|<@#D*XP#%Ns|Ip-&Ach&eMzwB(BRH1U0s*mQx7oPVEFuB$Ir?T3+ z9c&elolvcblF_vbcT)hBq@$+qV7<;jv5_J6QKN4i5f+dbtTo|KJgRZ^@c@< z?S5(Hs^{6B1AKS&?JVwx^%lXxJ-hbq-K9l(zWR|L-DdT)aKE4#_USP3&93-94(4^R*o~JPEito7h3Z12%7_@-IL;`w7=;lXgbn1&0Yo zEoB_CJgpH>e#PH}zXZINiEj}2l9hymewmIY{0`VH#T(D#jT~XZgjuEGY+xVaE zm?z4w0X|Lae@Z&Jj%#v#4fi*fZ1gYB`~743HuN07)r zj_{*P*p+v*tpfMi73XWRyp|wvpIveO*Tm6FpyRVE&Ko8!$Dz-zI4cPI@s0|eLV2HE zamJYVCjuAa!h45)^ga&>l+y3ila9e=yKV|PK0D-iMA)Hs*cSr#*&(}ReeyFkUmwNS z!pvzjb2@$y<4|N%^ubtT=Km><+@dEPxqLP6sjp?JG{ex}a+spC#H)d{&is`s)<^H7 z(2zjI5F->r%ptqhtjH?u;x{qCloaD@s@_Ch`VxJZ=w3;i+-*TcPxJN>YF-jg@m{y# z6flzI)4fYu^OGa_@m?lzivcFfPj^0ND^CF|iRbEN!~hd?!~m0cp59#yuoUB1F}dYCw_E(^ z&kHsAl?gNK?(scMGoYhSGVx{9FNk#vwcc2z<4L zLr$gigOFdT{igpcYgQeC&W2~HUQDI>dt!L}$}S3yHhOzm90>{PByq_JYP7T&Q4{Yz z3=pQoc`rJbVt`Nrlkk`#;7zp%7u)MG(b`Y!Z9Yj^%~d8trU)Z zm!I1(o0U7&JEu*Dc_UB(2pGP$`MaD! zU2y!AvNCMbOm2;9L3`Pr`_%7Mm*Li!QD}U87B1mb?J3Wgq7_;^_ZSC3Yp*e$-bJ0| z1uv7;_Aunqdl@Hqlz5H;A^30%N3(nit0r;dL@_$~`UjE@uWrZPBV1u{vYFBdDh2DT zfckJ20Xsu~1n2r0BV!rD=S{S{e(H9$n&*41gErc;O5ep2Jg2p$p7^5u#0U?^vK{`j z1C9f%i{=~;V#1wpU31r^UZVJTGZqsQR#}VGU6d|h%4B2uW#h^GzEeB$8d`Tq=7l0i zra(QJG2*^%{G$dBbms1&y;^ntr*YM4vJgLsLexMLg5tEIWRSC#=~iyRB+BB>|I)x_ zRfI%S_!p*xvgkD*KADE4Ro;yijx6uGsUDNKajaPRe7!T_-i?HlKOo9SAp#3r!JaoC zE9>D^?eAeLWQ9rZpdHs2=)3TqN_+o$6q=(^*e@=WnJXskq-Qv-W-^=){_a(NE5e#Y zHjrE-J0Z(Of+`(#Z*fm_m<>@+=&_c(0+LVx0>gd68TuIAg8g*r^}TAC+PsR|Tn*zx zf{ZKtf^j8?55b_>=p1%aaYh%Obv7=1R|+X0NeDGU3RN9wsUvV$T_*7?P3FcSTupWQ z@O(G=j_4TsDeu6--Kx8%cb!FF^fBn%?RQhl$Z5s;IW9;v1%EdSawYSHp1BpU6njFO z0H*|P2q=V;P-2e6qU8;tu7>fXMPW z$_+~z#pt9d!i5w|kz^qySw2f0Z_+60vF=o80H6z zqpoF;MiA|p-4+aHHUV8=dj_vQk{mg`F2ccm^YlG-dD(-)?xA+snd@?rctx3dC6Y3H z>+)!O9nRm`q?P>YYjyiX)a+4j^ei^XUP;1Ce z-OF|dX%pFW-m`*d9$z5)Q@-l!RqDMKLN|*`9W$4SXR=gVFHx_`@)^oi8;*I$#7DFH z6tTsIh`{SK0}7l{<3I-%Pt_BJ?q0$#YlQB$XkqHE=p~)BgZML!1~w7nQuMxh!gY#z zO~eArA{JPIA{}v7M4WObu<^^pmbaB%5fkh#Yw+&;D*qqv;qkD&EQnQLuNu6|lb6=7 zzx1U1+o6bUY=6qc4Qy@i`I6ONvxa~6<(K@kHEURXq@z#}vMg40RPlo%jp8nq%cRxY z({b;GDbIT)7lrr4rt>9hv1t7ZNlM0(&=YM%Pmg7A#$h-Myc^tQ-AVWt zcWcteC!B{)%(}Z!N6c}zp5uwU7s(PM7u_GbQ;--~nev$8!Yiub(M@CS#*FJQ3+DXy zr5Qc%&W}5VpW{c){m0Yq9$50pj7Eo)S(;KLv|Y;5kEgH=Hk@pmERQ_`8&0D};u)-| z4X4o|@l4a1lJtA|@KiNkt?1*&Pd|s~Qy&^{qYve1Xnyzc0F{i2M5d<`c~m+@(OOj2 z^?T7r-f+&Vl`Ga6J%F`&d@^HA8;3U!X;?Sso|Lk1{es-yFD$H=(=fGjljgzt*P&6= zBH~;)1l<(j2o#fyU&7N}ooo`r3d59GuIp8?!VnUpRA`AKMH=BaOJZfF`S4?|)9Pau zE@l-e`7Cv>pT3PwkPFLQt30g-P5Os*1Rs33k5Bgz&~Mu<4gqW0FLEpv&x{!q(^ltiC#g@5{4{e#7 z_%*gwY?({EmJk1vg^Dfn0^&!^(j*^BsU}UMlx9C)AB$Q4G0|`K5n#vdBj#gT0Ww+M z-j0ujS0V8+Y_aSI)DL6eEAOut)=Jdd{ zUUyd)PhO%Y?jGLZURqsdAv-QqK9P$XtS(23cYgC;4BRQ7s0fH+MOfg4I8e`LcoJ_u zA&(J>tzK-F;mIGMcG09pAr0)N^RL8{D|p9YKDjBLtm3~|^#m~aMEP4h+2FxdJa7s&4ws-Xr4zv8+oDF>4kSToc7UZjt@ukr})WT zY;gazscEYdZ_#3TFP0|%u>KFV$_ zg$+k2E85SU#!xK^?Cdhxd2`0r-o2ln!OuD4JXa@b6^ojc#uw^I#sU`0Mn&Y#ArDk! z(%LE_q3V?>ZJ3gU(QfvWnK-MBvzpJB^In}OrB*%4B4=z#NFX`L%sERI#wd|M%M+zY zEP)7j4-F@^0VCL4!eE@lmO@0>Kba@heSlDRpD$1u+-OnkE-J6R&a&Rv&-(MRm#1n~ z?ymak$t!1g0;~P9`qe$CKLm%4b1|VIlsR&T&Y{IR^yC-TMe4~9?DHqgj!`!;gV*Ne z-OBU)(+^Mauh+35kIhd_Th!&&2yLrph_+P<$;E`$%rv#;d#N?Z2Snx28i`Ldn^=$a)DEb2pWz z#XN9~-3(=-tRE{e8^2hIA?g6#KF9-H?ts0BLDWD_H%>!DvAQkpr0FC~XKiE6CbbXm z)WG;sD7=*GMfTYfTczGvat*luuS;Qpt41xqj)Puz5;0gH5nK`jpt@3vmi9vVb=~C( z*Zf)^6dsP+>94(7*e%xW#fcxy8fwI7%rkmve8;ELVMuy9j~mH2Hni1f&OcV4XOV7Y z9l!AQ)~lNv)n&1L_S!y^YKPP74><7LmYS$`Gf9v+sBd_P$pR z@;&_3-;5vFXBgxOTQSJdW)F|x<kDu4XFhVW zEw0gfvNE>}>b*AWJ8tkZjJ?l>oxjKuk7&+Ur_Ot1RJ#@lk33kRLCut<@8-S9e_!=1 zd+?i)3p%tNAKxLV-F+<|Wo3Uj$imjGP3jnj~@ZdnKN(hz%Vj z3kiy7mk*!FWQ?I?`5a&Q5yi?+R>Qs5eD#v%OZr)~8&9~gw^;dn{Y6{(<5qds5xt0g zWzi|~t`Gmk6{)6Kbi~La`ZQ8N2P4H-kL(}Jmh`-Me}%`$o- zv0953v1%0AX;^LbK|WkN!V)i@NA``%_!(||m$kO{pe>o%yGOg&7UxI&nVW@t{b9xi zZ~cDmfq}~hs@<2Sk6PK^`RePkCl3C=|9Z6LeeIGu#E);=VZq36_}OPyv5+_O-d&nf zvq5O=@c4G49%++J6DHDw#zU_fk}+&9_;gfebn1k(Dl#fW@EYA5Sz{4F%+$P~y?a>4 zZ&t9@tWh3s`7+Nx$X`F3{pYaBkFD>qVQ-U!)Xb)DvPm5dXOEuU+WFY`tmB>`8`F$m z!?t+VAK{l)H-HOSJ#y9To>^TR1TzQQ5#1&2m5jnS!A=S$5P70jp&cOllcFy*7W2N= z&W}z(&J<{kIMyigC|yWv-7M^xcwN|0%CDq+?lnRSQjDx(OJ(PSu;>*gd7UkTJgs*dw!q9cTC6wVzF-UI0sK1=B8|h$QgLo!d(QG%+{dUN zcQ!5jbK?F{qxMe(XP_3)$Q_UHuP~>icZeCp)b;Ig*eSd3V<8#*#&4?&qKx^aR1*IY z|918Hv?Hxbs|+0|SQqB$d7&U_id;07#8X&bp$HNuvn9)?D_3kd12f7N>mR5VqRQBOzU32`nP0rJG z!`3cxTqHlau5{_R7>A4Tzu4W*D~=}^pBKZIxQ?0l{$lt7SC+)7y*B<2>t^6x;8U%7 z-9y1=ZQ{Q~z4@*{8y#BgNHWc-F1!vH7Lmp)hXZi}N068ynglK+LUKiGLA*7(F|gUy%AdL=qG0-1^8V!{88 zkii&pyFi@b7CI<#ai$#Pqp?rX804`5GaRI;0$E7}Q*({|>`T@s2#bdmY+^9$!@e~3 z^Fe%CMLr!CBis3OVWx8_V%?7vzJsa-DWT3MMb+u5jM_<@VmJ~{Q{{1tl6Z=SoGKq3 z8osjpX!W=lzOp>c2NKV6RFUP4_oxXzJm38WQbd@7!xXN3x6FzYjY8XKZ;7d$+4_p? zIrgjZw3^Gy^C1=a5MEJz(m-jWqk7Pzcog-J(ZPXuH24v8gm>|=Xjhh+AnKJk@hS1q zc#X_VZ;pt#;78!teSB36)8585cS{?tI3JX__59%ZRjUlvMb%;iofS<@VckVjB~F%B;_1rISWs(b`O#oC zl$IKPcC|ZXVij-3ppxNtd%K+6imqG#`WU3XmW*U5a_uG=B;AmBmO8@5IO(3m)07<& z$Jz=q_Tl+1w8x?^OoA+*=h`Yvi=XrYY|bvfOlO$Uuh!ul2S_L_<`VE7jCu) zFV<^%;V}FsJXox0KM#f7-8xfu|`%L`0cw?0pp%^^DvMKNyrDBzXEn(Ahv~mfk(Ur&4|ecs(d;-pHSltul@m z>xW4y>V!tG0TXY^F_04^c7^fRI*of2y_N@FDPztxaDu#rX<}bp6c>8?JCWB@6vPkF z0Ev@YNZfKEB~JP*amy7giKm+`>KdGI0z1C)`T8q@{WWkoZ8%&`k7S>3)Dg5oSWS4! zEWDQDf^x)AtS5-A(Q6gmWH+!&R!8OQSgnDHMSnWn!Xu;x{q*<#(Q#QFsfkt-{8hU+ zt4&FVmV}@W)C8uiGPda_Q6;59)^6m8h=?Y!g|eCs+JFesb>|nkCtuq7+PSCaYu7ww z^h!m4&wP8!(q)Mck7(3jhOw>x{5A9Y|KZ%rlCBiitoPLF1^vrc;JbpW!U-JV{lR%m zuY`luF_b18iTiJGq&gO!E>61F)^YNc&N*XQ5)>XCQCd>!WMAxj?+!`Z4d^T@adQ6$} zRhu@^A0L(4t=6KC#!p_1;o0G^m`jOyl0I`wxaF1b=QC=iFJ#JE`1i^(h3+$ve3AAMU%H;tm~^!ynr@-4FgI;Ph&JHto`&GN#j8al zQb%b&r``#~k(;(DXV%4GVV%>;F;8`{-C=)%CPLecc~GPOYS#r~j_dI*8!K)hh%Ws+9Urn-MxRNRZzDauz?R|d2aUD;7d`1f6j+py?5 ztQg;=Q6i*mUK;i9hWjtbCJb0D(Z^eMU zY+&owL)nnltp`~m3&g!sQk3q62*hR)PC^T4rAMkEV!Zo=W_)e$SodWHAIGBOCTBo) z$rxoW-cyxL-pfv}UPIc+IB|;>?gc2rt2sHji|u zOMjj-bo0kKbGLS#GB#&HD9f+8oBt~8BwJoKa@s2aLzg6kbWH4DyK8oAu3jVUlr)s( zsx@g^%uqVYlA+{Z6*H6rd;)-W=)}0MA(p|TgU5CQ3136SgaY4Yg!e+gCUXK9L^@I@ zN+XkxYcz1FMNqi7P)K+AVrSG)R%{jsy7R12S;L&67k$P~uh~<6Ne(TaZPfQGB3u+$VKNmH%&lb;JotL!vKiOhx8NVxUobU%x$(xrY?=9=LK)(fAhz)$7%&TEV9iSyVA0^&iZ?8hL6} z-p=%vf#s_;q4_7JJIz1UTBUR;`la8@$Ar)z44RPD>OxyG*lAOkgkxBncnY~PR(TS- zz*QyN`?DSoVTRH5Yjo&_w%lm=RBlF5AKwhx+>GZTAgP{zh5z{c4tC%6CwGpiUXE?& zLxO8&>?||#>F(W@j2yirzU$LfUt`1J6}j2tuk?R1mZ^ox^|mt-SfA`u3l@BkIsSvW z^FGP}Goo_AWG%sbit?FYQsU4ARpOb-w>BJ8rNl8+elDiUY&b;mG*t?mrb?6-6VS9$ z-}}aTj~Y)?rAhBw<&2mrMg25Yn)vt1r(&vZB4;)te7^R27iNn)y`I#$qBY2w$Eb7HELoYt~9a{bwzrb@{X zb-t9}bUoK52doiId=#DBw#w5SBXP_z*Tftn>0pjA%j3QuS)SxgcHP8H?q$6+$Cz}2 zT@}R~Q=A{nG0l9n(i~$_$#XRnbBrvFImX0u_20xCBXNsM%rWVL3a(=qYvW~-CgZQN zH0BtSm&NJ^RF2{)DITWM( zSziQ0B?gqp>y5>&X7U~uM9CwgB0@DYsxNk1VRrYj9p$Qz+4ER}FToL(0VQ~H?)8+y6d%Gi73Yhe=8bRT3|EHO zc>@nSz}p<`9n__`3_0x(LwFDzcl%LpJ7dCN+l-DQR7iyn8M^+hs`OUpKi^rULX4&bnt#f+s z=6|n*XvZS*k1b|QjCCj|hx;sG#iReJQs+F+^uM*a{NuaVjq7lZ2DZI%;VvwAFSr`( zD-rQ&0v70|De}O~o2EkV%8wq*C(XTB&|qMLs?BN)8f^5qJ73z#OKZN&E?buWqPYj8 z7d885{<6JO^kDQz6$SBxJN5~y8;jK`WCIF8Jw5 z)J4lucr*S-za6`eemQgQ+hf?X{LI(+t5vmC?dI7t7ObxM4oka=Yd=m>uZ=IDUi&1Q z_jqI4`6G*ZByPx_{pFLabGOzHHh4JWxsRb`W3f*Kt$~(xq|u9gs_sJjgf@veQsODf zZW~VX2;sV(9#6U|OOp=E(pd}vRv+#!og+(Aoj%%h5F2NEY|ZUVpvj*q!XLwC9fxd2~wc8qLBU8lS+2tXRX}y`!gA zbQ5lx-gWh{(GQe&@i%ox`F7oJon}dF3ES&gWB1-9&+t{q@KmEKBe1`R?ErEZDaF7p zU}m%9WcgTEhh9|Z@Jhe&iIQ?1W_gjL!6&vlPv2@v-eU7!)x^#RjD!Y4P<8Si8@0Fj~^raPSZa+$Ox-MTIrnf`Qq{1W6SX}!BX+N4=0 zruFK;_j%bPJrlopIb&1*`9BxbFVV0&tGoMQce*1|mFj*|hq=d?l>Q8jc!47hFrEoq z_{218N!;h7AxMZ`vvAB>`z0Ohd)sh*GW*lS4;I50=;y6^%e;)}s!3n_$mzu}6q-!9 zQU=lErr5@b#{FaPIT)sU=RL_>->m-O32@#pV%2junp?8H<5GibTgtG${5Q{pGW_M@ z>yFY#o0J)N#EoTAHrg4%yFLR5m8+qpP$Nq=hv6L!)kjLkJ>%9UH;h>>x(X`-+F2~uNo1B_3zqf zme8qrjXKd2j^^|EoBzwIu$>1s&D1|C0vbJ&}jVoYh(I0>Aomw;_{A6Qy=9$^G}VNetO2t zQ`STAGFrB8jDn;%S>9D$gii#HorXXPpLnN< z@j?L-iC^`$5djjSGgt&jBz{fVECM8gen2g=yzcrlgaRaEiA%TD2MEGoD~WMq~E$F0>E z-Ppu&G{U=@QVG0c5)Ua!LA&Vb_N64!t!kIZq!M9#gV}?8ThV|L*U<0cZc;Cfr&WuOH^IaC(%KsBO7gxhhqBED3WYW3lw73l0N2N?yANX z2KRV!X#Q)#)w6a_+sS`?QN%}gjj2(Qy@<)~Q=7|eY|K7BHM&u+CQof(Rojm5yoq)9 zGAB#gB|@dQuD;E0&eishJoeO6?`3A6oIUp#-6}K5*yvi107|f&rQ@*3E*?CA6Y{Tl z*Aw`_A!`mNcN_V@L-*g;VpMx0=wtrHPHIf|CzBTL53Zj5imx$wyT(=zVlN)!yFRtK zw$2xq(FKVVWN~T;vfN1fw~fO9g9GA97p8I{bsDDV)BHz?>)pjLB^+zqJ~SLr8Ym4k zQ5uH$m>7T(CzX(RmKh2cctAf3cim!tD0Hc`EKf#2QqQqbCqpc$q$qFLs4KqG8CWVa zWe3=L7!zQa93Y6TiO@%|3!{a?2e1x(c|W!xxcM)yZ2aF`hM%9A)qieRZHi|;f_hiy zug&MiK2IZUUcrX=#b9a&>^cad8iZz{zZ1P#q^DkJtyxjEJ61(E{gz&x(OCPj^eWZm zMMb#2XfA?C)Q%vmKauY$ZWA-F$)wF9Gl}%J#!-!q0=A>~(zi0YjIMWI)9MLxjCV_G zFmaHy_)tc}04M99Iok}e7J3d7uEZjS{A;m3-2)6!80Y6)p5bG-02zqFL?XfwR| zSMmKf7HU(GtRlvYt+CJ?Q&omksAlDIL9g5-A zp(GY+6=iscolJ2p9P*_t@}i*~qejJN99@zCqVu|nYQzYfGdH1HwBs1-;0$P(aj<}Q zChE!Blp9C2p0Y~SF{q7G*5@9G`VcWJtv(qpr*M+oL$%dTaxPJQTx!dzEvwWY*)`+v z(>MG}qC8n$ zX|S@qG6!x4Tr9gG%hxB89raET%noZtj4AxzdEIeW9nC zd<{jZ2yEgE{52a(GxJI}8cugwci|MQ(MSw4+7vP7wMu;D5Ezk+@@(Ag)ZUs*n#j}iE4;3LHxCGiX{JYerqQ7=u* z63^sF4n)^9!#!`4goM#75+l0CI+AWCBj89nWO!oktCcH6r1xiSk|sB4T)SDNhLPh* zipKE;xd|^UjLK<{*12)>AlEr@n!Fasju6e<_dAqI&-#S)t0dDol4*Vt%!S$-Io%<5 zT(QT4D{*LnC7I53{3I4w&@c5*u{$a8JZC+zU_tVoI@&K>ToboI2yq?Zw$2c^!sx~k zpr+)7Zt$`F-H?d7gP=vnqvXK zZx^jyV;prR(@h;xCGi0}PF*cpn~G5=?moG#z4njQm0;ye(){^J!)SOGlYy&@Z=|Y9 zLu03NKlDhP;)}y3B95}gG=nREtUp~IK7w-Les6^4g4DX(zZ=K0&aBdQd8V`+z*t1< zh#rmD_U6+*d4O#oyD>_9){#CHe5m0V;YygbYMwLd0*A=&`Iv z)+r4{hh5Lbi#eL(* z9S@|dr{Y2=5k7*UW#Iv;+JMEf%Sag?lWL@}9k`UJHLI?!We1s8?d0(oxLxz6qONBR zJuw)6M5-4&nX*bv_%V!pQ*mWX0Iu99wu*2$X7cpq@RW8`VrSS@<4tv>$HDsze)iCa z_T!?eM&H+a4pZB1<|CYEc(7W{$nq?4KH|0ffAZ>t2b)EVV?cc<1UH$gdRs@rLG5J#=8fNamkvA6QcYWREE!j#Q~H?`K~0sd|3{ z93q~%@D!I&Q4Ly%=L>Z-@8^uZ%#F+1X?gs?n~$>DLKLEJF?`Q@3!y_Zu@-J2V&|U@ zreS@U5b7xC7Tr!1OzVl^ribS9F+@#j-`M2n`=YDDy~%v*nFO|j_e(0~FW@dIsvXoG z!tGb-_(=|za2hXS#Vt}}gQPnciW@<2pbWA3bkC9%AB`S&e%rGjKhc8sYZ+U&b#3-o zJFPSSjQ3Oj9{zH6_L1>})}PGe$*S6^PmLz`)r-?E%c{JUjiZjIP*nuo<$_@^?->zc z2A4Ccg}AX@e5Fb_OH>~mOV+7lgVv12#^k*BB>&};@A|%V@@V4pH`B*`ke_;T%W!HM zn`?MF4d~FQ&STjrzyI-O>#RZ1>ATZMADP^7(SP#YAyUlBK8SOh6lb6qs%n(yJ<>#o zzrD~bA$~mthjuZ9l{g~{^B`#`;krKAODIY^+KCMo*;zN$hC<&~!?36MN+U|-m?sAE zD&v@zCX!~Te3ZmtC^8@*G8E79s+#RR_Xx));=QiMLG4u=y#JrCvC;uQYR15g~4eJRymb#Xp2Id!m+IYd_1u#bw&u8Lt*$Cj@*zm*N z2rQ7GYu?{YU2A~ai|HEWd5EQl)V1PGi@vko8O_;t*1S!vI_27jKi>2DCA$u;Wr|M) zZ)0BB=l$K(hYQ8^fg~*SK{U#z56>7`;)d5qm2l`oPoWQ>BK1Lvz|sdewzkrw51*CL z2P#kc0Nkbzzd#@M`$gv-;jAs*TWcJ2XntH@;A~Aeom%(bhANFxzzCfpRkoE~Ww9hz zXbmic?E66v4cdXVZ{zdpHhf#R;zKvKf6mJB{`1o&%;L#Uj_#D*j@G8j%3g4l$+>Dljca&C_W%|+xoXI>XZS2e`3P*2HW2InWGt9M%Am< z?7lv8ZeIOIu8J*tlkUnRR+-+*0VqdOAyX}vVfZismSqYuTjdJT_XC!S0ZBaFCYI0m zHMX6^!q(3k)oFYj&Hk){6buV0bOd<1=H)G)tnKi$6N1s!Krk;Lm`IgsbR{9Gt*YKj z&90Md%J(1gPIHw0f}l%4oj%xtb~)I;$lF|%R) zUwmRKrE0zD>^}G1|Ih;?yJZ}CrnhmblxR-Upf(zX9HM1hkPpOD~ zh**JjVx5)Va*EsJU*FndZ1d_h+SKhgyi^8461V>_UN6H2=>gsPX$MOa3)Rp2x@U;7 zi?L1hi=Y}tY$W!THTwkVs*Q~7e_$xSW%JmsEhENGo7(i!nePU_^x}>|Gv1#x{ldC2 zZ{&9`mBaZn9`4-X;Z|`h^r0TD_^rd&(VF&6#N&TkNE`Q&=bG0`=u$JR|8f#3SG6~WE__tK^-b42hnuiu<5 zi8yddB6GPRvX4ruoivHUZ?p;H=woR%G>aC^QnON&Bc^6&iE1x7`B54*l6DpoQ#E)vR*ZH&ZV3?O;erxxW_h@vM@?Q1+HqW5`jv?v#fAB_ zS`zee-{|LJRM6&BUm@Z9i*5aiefHZn8ixJKcVgGM&#%9-KG+`G`Ez_^F@FoA=4IY4rD0oUIUbA)4X4%Fvz%NBjD>)pv(O zliEM=ak69(t z%_@l-3uErag7Z4QxAa$fW<4YQAGpv5asK0ufm?4C{&P?I!~-1`;(-pAC!Lf+vryXN zHn*Wk$7sE3mQL^LFAW#iL^C@0Q3P;I!DpI#ACfk%5-{;pHk1NZW}SZ8IbB6JAtT$; z>gIRXYXk*u4+j0Cl1-fZYFNc$VWPS@chNJ?%F-f8V~JC8y)^jDun~4C_$4_Vo$i+o zB1NVYa`kuRRy;|V76KAS_WVa8dtOK_;9DPlT>n`q=aU+&jY%hqz3Zn>+4ClyVC22i z2`xc~+*T8R(^<=3o^D$;@wfC#e)^OGVB*7o`{}gx;X|CeB^_8f^p}NW8$8WVpCVwA z4nFYiwzlkDO=xRg;@Fz6DYoXH7Mg~wc@w|tP4I2aXVKQYiCk8j`>e_u>9p zVR+mNfnz-(YZadq5C6NbzE5qnh$^5MHJJYYWZ&gg?Qa$NcGP3&o9 zcPaQ{o33DM`u0j0TU}t9F1J_c35$F#9a)m zv$v-vyZR4?O`GZQcv9}os0mTxfPmGc+eC|O3oMoBdA9dL;8eYm1EO}KOVkucf_%?7 zTK2TWsjIXT^eJl71Du1ViDMak$kCC68s43$P!5AZMN5b}+;9 zfwQgcWCoarw#g8Q9Cx3!+Ex1dC9?St5L(A!*NuLDVdYZ zRO}*7E0!cJs&`F=phYq)l9F#vkM>DEB2o`6nJTTv^ZvIpV;6g|Y-z*~OJU2DdIk1K z8>3j(G%{W(Ssu~}hL7KnK0S}q`jnYui#?KmBgKVF{PGt{^_Z=36oZDW5)R6nD(ssW(gx65^3p?xbbBTJBlv^ zwkjdx0xZYxM|@kVvRv}}7MBPKh&%7dO%!*Qp$*{N{8F~OHr#a{3(e-$A~QSFLbGC5 z{`KiY_(=TBykFSEZ~T`<#8={uUEgJ7o!|D{g{jjoxRo25u}Lfv{KXdSq9t!`Vl~;U z^WU+Vtj2SP7O@9!CBMiTet42K+P0N{`q3GF<~h0AcJ$E0d|!MJoAbU8vLj%#zGD4% zpR5&My=HoYq-BX%VgL2?GPjG*3n<@vNs?!+v}1wxrHQu99eC9Th$a3M1U0BW5ji!kw`H?eh{r{>b<0$)#cYlP`w#~u|7i= zq@Cr-vRU`lNNjr)tihtRH7PV+k<1?czW8%(P<6`|0N*6J>d3gnXTNZ zto#CPHc#%F-LhJ%(1z*lQjTp%g1?y6wRbJ2#;OIBiAsHQC7QnpKJNxeVK^uh&&pC` zd2-VFVC$g=gIjvRkN+o4}~h!uk9S3O7G+~URh+To|+(x*GK zgoT|0JcV{lr5@@`Wf*0aM_x@EP(O z$X;A$Vt)?-^fP!aVpfhdw~Zp1)QG+_M^S8g{k)o;8uVL~z@#$Qtj0H12<=_qA4f#w z?&HWu7~@FnxL6x7#tX7TY&G3+B-tuAM-nQBr25%Ll8BOtmX)RoJ~nKsP^@N(9a_pz ztU93#YlJdTbx?*6EM@RBVJQQ;&Vi4)TdYADQmC`MM}hlkkTS?n2)Yb7DT8PVl;Jy{ zGOQ8GAn`2o2sbH%zgE98EG1kl#i+bp8InZ(qztzAe9DmKz2N*1qpv=!p|cTE)^to= zm7QU<+vJF-RVS*h*cfhs6Q^~>23VbDwH(fEd|F_;G4aXs2aI81=g;loAD!eM^Huk= zEg?(CXDwiCSPH-X{nwjV-FL9(+S3tVrD^XbeLA%0R=H)PQ!lK#nCm?kHgtIZ4z0RY zif;Jr%gaBTfMgXV%{VJ~sYv-^wD~Qo7CAz7qS-yOm&V$)N{y=?Q@vqg)6aOJv)#Yr z7B{x)T?RgYxaiMiT({0U*4-oXM+Ngi3PO}|VZoAj8F zl-J?p>>2y#KV0Pa^Ix`L>3M!-apTTW-#s#A-0l(V6>ZSn+W<=@ltCzZvQ+d5r05bQ zm6m9_h?k@pQ>eWrO6M&R11P0*j#)aZSn0`ZqpdXAJfclm0x}yU4Y#n^spsP>X+G+K z{jBn?w-8aJNQ&Swu#FG@6>0tgCpuyn5q%5`qGPW|sy~)R^qeWl`28e?1ETDGV(Q?c z<1n0fb2)XF>`tfd2&X(@Y%SuNB%F<-*=}A9){{lN!|H5i?CT5s#tD@z7?-m&gl(?L zSMk&D@(*`2cJ4b?c?_~B<|mJvUC|ML=K6%smcRUM!{~b19r_O+8g|Z`dvVnZry8}a z+^t22KBK#W73^Q>U%@NGh9Itsl^1kiP`X0Hf?ag=2pkpU0OBTF93Y~fa32+o-k`m& zur_B;vaTmLEIfIcu^0IlC-|T551!kF?OnYgy~~(K)Kzn4Z+8B$$Gc$W_5II%UoWgY z|LKcYJ#*RMwiCNgd4_fCG_gbWvK2E52NM_gQrQRKf)+WLTjjB67zesrx29%&o5z23 zEhR+AR7tfLAF-L$IsQ6}*zrL00|`^6^q$Xu{AT>Q*69z-%SxG*ICDl~qu54s($eNQ zw-gR_Zuu{(Rxth2i~Xh~4Qii%kJ=4frKyR#QNdb>&tS-1-^do)*Pi50*p51J57um5v3;!xeb)S(N0Zr6)|O=z zj(Q}nS{aR>2)s|zlipngLb1kihYFIE{{uCNtBZ6af3}fK;=R2V^>g;1_iU5IhE&^HF|f~lkUI-+GXti7wu|Oq5b`n6721|+01NLnQEFo z^u3irROg*D(XQH}Ro0#!?RR4LBr2v3-B&_A>Ps$Q^Vp8=tsZLk@S{x%_WpOmn>$%Y zR`1CZ-#5!XI4||BRRh&io)NCB!b&Z=wuyPLO?392CoaGC%eb$e@3LZA*OpU`=Q|>( zd7|bE0lh^hwU_!M#791bfmumZvCp(TP;H zg@1PHfBYr71K`q0_7D!3XX1eQh~)_>yT`{RMK^C9w{%(iJ|7mXUvoCY-}zm7v>P^f z!s>1V)~7G{X|etEyEtmT>C~{AEgy)eA3dyXk0nD{+6T+gm>zry?scm!HBO}A`5ayi z1|cRa%$2Tf_=NYX8(07S))gKLmkP()@}qo-^I6d?tPRx7^|(|wp9Z^>s<1a$H3pTc z$FbV_QgljFPn}YE>3Rf<7;8*%M7pwI5hnP9j^w0WnY}5aTa6~>a zjsqx`Cixu2|Hjv>D4pZ7-Vp1VFsV4!@gE#pW3>JsUiV-{)SGAz_1|bM&hhC8v@aFSP>sep-e()uVfegRgnX6*>y`# z#9f%Rz(6w$4!S8>?%K(Pl;A`rP`lI{EbY%v@@GdG`Pi}><>%>{som%H(Gz$5Ht9(G z3eQWWu|{n*KGl&mE3^R3tBJ@O>^XkISyH*v8UeR_2TNR=mbRuJ)ljz4!JM2!jmjFI zx*K{5h7|PbRWO8zf0dk>ne4fR1}JF22+*X{qh_A#Rgs4^Q9Y{Pt zKP{_RC7!FFk?ubt=^bp`FLqs$ z<#DVKqrz8yiA#>U9k>>#lY-CUIQA1Fsc!`;_7i03JlFj;Dl`ZsK1Pu?V;}By z#US+I`TCovh0(z}9SJz{7G=6axf#>j89(z{#?S0Hd$b~pr5K5>6usskPs&z22ZbpO zw6R*1omZ>!HvD)+evC>xx)!|#7DZXHwXqdd>H3(d#CT(f1r>r3Lb2)+cPBEX1+GG^ z4Mvc2hWnO7nuUn}MGfprp2S|cQvN1;(Npdc+r=M8Wj90kO|W&-;V$A1-0G#h>uCk@ zf{ZXt+XVShOt#ZTJ`P`WiO|IVqP?ys*(RQFrTi^E$W#7T-kWVk%iST&E!yHn6>1UJ z6;CUTKB_4zAQxU%kj|bJ-6U~R4~eI-!KLCUjN5Q>*Jb%EO$L)&AUy_h@ZtHcm;L3% zpq1sb)g__>J3_R9kQ=s@;uzXv{->5_)$rqMyghp#-yr-i0%V=pN#0pkjGxu2hGHmc zi1E7yn}#+C8p5^5MlJdziy;-=hm)Nr9CluOD$%SFjy|C(9f#3h&~^BF;h1`%Krp&= z<3Fv{0#q!7$*IO&HX-0=nEL)&_I7xq)-8q%S#tQPc5iWf;DL9j)8OG&g9k4;yddr< zOJ^?`AnB~-dAUu?3j9E`IaApIi{C3|`=ZZxdx)PdEj8ebw@8(WdZu@lBi4=y`z9IYC{VkgAnQMRJA)KBm6^cUHU)qMF0L%r>f=5A4;!2AlS-0u>O@z zboFwL13M*|k>NcAW3YyCF(u-8FAO;J9r`pHg6##titvxzd=vRLcJb=*w|-*_rHBVX#9u(fFc@*{IEnZ> zN7>ImzqPM4F+;PYm}#`^7aEtM$UvOLX><{eW0tk0%|JJch>S!tM5>G|OCw0q$YSe+ z)(TvV6p3duOxw5B2}Am$L|-uNku06>uI8l!pOOlhX^H3Q-wFdOYb66qIIP+vVMhP| zDxy_C9W6EM&r~qpeK^?%S-)Ktv?uwxtrSh=lKWKF4CB+Z-|n_zz+jUN%7af2VX#nw zdaUX=W)7GdRn>aDEk9O~zr|zK#0E>xyW3W&#E**sbL)&_RME5g3o{O+f}d9S6w3oN z-8%wAPi81fMP{?aVLMEGlycaHgEJFP#hHPM&^RGiXk2-$t;B9ZR8-x{VPTYaj2vFd z^|I@pfs5MQyx!`kuVx0V5uLFtJnRMIGLqo4J0{sBs0!kIXgxC+lGe3As!1 zde>=EiC>Bv-)Hvn*?s)iv!Jfc#x__H`s7P>%)jw0gt7 zjlM8Ewfyp#7T>ETLVXtl-M4<6R;sXsdqcuPTi=hI=MDqf+ti zV3k|o?(T3FZR;1$&iCJEWB3?;f~Oa&);;sDzsh6YJ3#)JNz&{sm=+OD+l;6ddfn+VOmGEc}5ar z(Y5P!O`4x3uG@K=)#i&w?is@vUAVKZ=m*hDUmA7fZ92^-nz!jxW#db`O$U5nX{F=X zHVibacd;A^DfNSWyVxGy^Q0PjgZ10JoA0<`{HBIZU)!b2+Udq`bUH(yzlHy}Zy*0@ zGwar4cF$h(dP9FHT!zGc`c`|KSn24@GlKV&pZWo=`o6uPk>5y;AeoT%I55;mJzn^< z)|h8iB;t(=+(VB}O^; zVCMhdI;Rvhb39O#;0$Ji`SV&b>&f?MZP+lr5d!%QqdONbqOnpS_=rI+@9TLRxwIt2 zjkksgvY(@Z0vFBji~Z9DfzH(o&4t{6%$)v4RbxFBY*>eHmZP zMtUlQddh#I)z|8s0gY|=c*QHA8zj%Nq#|6ZM$<>RL{EpQ4hHR`SY>1cj-AnFLm1WO zOyF;DKJ{C6jy=U$C(h=4&A#T-jW=1BSszYh6Hh(KU&}i^dGcv?oewWO$ol?zm5n%l zlyAKH3*Y`Gn=;^~yoLJ*4?VCjZ+kyyfq8%jD&bB8FO|hL`r$#;eb~}aDat~73u2W` zwd;r3_HTGLzwsVEikbZ#dp`4vO~>+2j^VHHf#O)xHNNoJF?=|syt>{<-gqwi@h|qP z>qRY0$we(eP?Y)Dgwz~LFb;;}LjkCOVxp=Tan#_-LAfk<&*=hu`5^hs z8J5f(1*iA0T+f-YJBB~?$NC9x7xWmuV=POpn9Z^n4w8*vte^nbmTowMzm{ZIgzS$t zIAE-Jg@tY${K9v0Ru~5w@U|HL&B4l2`Z9xdL3xs_JH9v?NS49-37#y%mnb5&3)6w) zI}|Sp`~>hkd_xuZIN+FPAM3e3mmgve@Kv!B`((C!g#BBg z=$$IDebuvi6-;W-_tE9UM?n;)(11+YGVnfA-4SVk;_TG)%SRxv0EHOn9*d5+?<}O8( z{C>axd++l;FJ^(AJNL|)GiPSboHnmS`3xmpK)!35r@v%HiP zRP7IJFfRH*mh#b8^R%rbQY8vGm6wu*T#EHC>(!`i3#C!r0WIe~>HruT z&zs9#hSqDWZ*Jx6WyyL=OXNfK8saLH4yA48o;41VX6)So!^~dNI@dDz82e*rKZ9*5 zn1zDXzR*ri8qDI$c|T&_3uO3x!15PSK2Y-qCM{`tAur4wkgPi2ZOPKo6hc^?8)+>0 zk(1NU6iVUX*o)pufpHmul#a@?f7?jvc@}&=kQ8ijtt?lSo>-(lPa8J}tTy{0v z&}rzVK9~2|ha{XO+sjJbFPDN+Cp2u}?9!mo_|!n`wOD#_7bF*qO(E+Tnf&BU>J9+& zgY9mmi=jVt`jh&dIKfu_$@WmEm{tCVwll={;kwY_E7-GBC)rQysb}EqfU%pm*mw~o3`z@W!oo?QyR=bGqZGHBh=rUVgc^O&k!Mz1-$NTzC@}^dvV|+Ws zwrL&Hc^8#hvXten+4}PPGT-GL-@!gER|ieM1|%tgxk7e=%3Rk$$_(SsRMv%db(1zq zl?+d1PkE4GF_NTQlN%X28Ia*gOX$`rBMTNOeNnmGJIoq@I0c*Ko|A12TtBdzmDBUv(JX{KU}0MomqlCR4n#z5xVlIJG{*}8 z%crO;6{ktp=@?7@OqYU5K1|uz8O+3b#OG1+#&4$nPDppMy%6b?tRxOjje#xSqiun@qrSIf9 zkj~Z_UD-zF^CS2uUlQe!Cw8F1f006Q!m=KP3vUjh%rv%(o%L$T?T~cGDctyDu@%cN(C=rrWUF$P#G2#nlsFQKuhZi z#_~|YJfj74*x1S``ToYr)VHQ@OAqCgp^W@7dw%qp(SizF&HgZ}o-bIs7c3`2!h~Jg z$|O!g(llil<4$k#Bf9jNCj9ghOZd!Ove=ZL9@4~5i5G{DyfB5XCY+6mI-5|5h3l*T z$fiN~n}7Kt4b5gW<~mz6==RFAOJM^pEnInfurxSpy4h$!gvw?S=#L_<2$Nw@5hUQG zFpH?b!sh18rB!kOt)mdbDSA#JY<)gW(1|cs+57|EmSI;iEf4e+3}tW5PV<=+Ih=Va z9IS-f$uIlw&?Lg{tRDtw*8DgH?>pfygS(t8aFpX>H#pfAiP6^iZJXX;O7i%cwIody0qDBs_{lj{Q^OR6lQ6z6N^nrb+OTH!*6)8 zn407#xbOJ-#*>%+W5e2%cev~M-`Z9V=RQCu0jG;>2pfgW)l8 zdFS-utcU;B=?xNQj;~dFeDdT5Srm04w!=6vMEpxrL|CbdO+{11#qe+*5&t0fZ;*Uwo#aL9 zK2KEHL!CAniL|Ur@ld>@2nJD^qu@;o+v1^>*{BU!?~6j9E{5xvKV5XYIFx)y{DNOI zxP*b(pi1;d(_fvoxfVdA=CuuzGDGNf{w8dM20DKmF0TXYvF)r^{zlAkRkvbEa~R@C zHGnTC42*m_^8Lh4;0n;(IYwkgpzHMdFYNFHQEKI1Mwxa}r`T2gM2B{;@_K*PRVn^A z@Y;^1!xb9QT@j6d!T-65{{;RYK!dfCFd}~ds0gOT+RTL^vF%HeP6wr8zMzud74C&# zo8;VKq`#B7t=7fZ%eGYa)t|N^6Z$_>je5&+oAuP_Pk9boV{FD=uqjXb|1&Ds--<_!<^IQ?JjB#VFqqRxYZEn zPI2o;gyKs&&4M~t-9QO)lW`crFipqU-vw>N@f|BbzP`YT|7i+a6rz>xF6+u3O<0H9 z?Z?wy+?{%|4D75MaUMF0l=sc}P*%lZ$Jyka zh2V430SH7AWfpvEv=Dezw?vUD4)PMM*;$s!YOt*b(#Z1QX{xn84eUDhLnfQcvgRBm z-^`F1KGVN!I!WKBHx2V>6W;U|&7u};?;^6IanGs2T?)Ezht2ql8Sdeg_e)b4`Jbhp zuW8gnwqVSUQ`njemY2GP91c>mghQcyw~u0%&ayLyK+8pWnPzv*DuMTLi1fF`LByh} zhJ=1bK>9>b?&VRYa|G>_6?HZl<%dGNeOoPn(>@U{;-7mDB9AC4QHAn3WpZVwV z`;+dZcPnRaO%XN??105o2=x#gxV-0YYig7a8@5|<@Fi>Re23*06JaXt)AdU08MZhm zXzQfMbk49wi8el1^L9~(>umY6r)=Ft$)nSV7M}6l0+TvXUAkY2`m+nh+hxi`u0Azj zAA7enjV#b61XeR11_EQYJKPPqH58{;KEs@pq%I^sjB4oF_B-QyeoHYu#ihl%dU?OG zDP8??wAdHkaq%YanHe;+V#adQpM~&RL^L-16&+3S(RS6eTtem9FXSsjsl@ze6m~V> z7`yOX8ox2%{MIP;sW}VKexE&5ZcmM>Iwi69w-ev&?x!X1c8NXa?X0OC_@$2ib{(#O zM3a$unYub=+zqgb2Cfb6xTt{g7YA_*mxEN@(X||uahMc;i_uoTGXzzVH#5&i?7+Si zRPj)+#UmZdx&O{i@2T|y=~H~q?qz!(4q4pQdr{1=g&llS^)pztQ}j4%(P8TN@Ctby zb@FeJLc04Mp1Hnft5`GkA&1SmNNpoe#>btF9eQH?gfr2=jR#xdDh9YDRNyHu{Lyz1 z0Xb>DiJ|*8d~ z4X>Gwxf$l`=QxMBs23eEwrZbKu&dN<=B21nS0+xlHg4DzjPnSP>@a*>G3&e>OzWs1 z6%N62J&2B~T9#{7ur10mB9>(RNp@%RZmNG|{N;tU;|CpK2X~fs={7Mie17LHvwC%n z@6)=}YVz1PXk4w7AFI+88u<2C>VF}4%}^F>Fvwb;6^UI(UPws1HY#xX3U66!FtGkn z+qm1AK!%5WY8|oY>k;y~U4(q9QeT}JLIrrBYUc=03%w-==r-g)#Y>*t=Wr8;g zql45$yJ{`_xONZwu(WvxomAd`mcP%Gu0iA5XqWoTy*w#}{jrluc8P5gIkU~A9$%dF zuTE0MrI_h3Pb;?}Okw4L{tpW|+HXKRs5X5^+n_3mgf9|~VL2s@doaBu%?a!}Bh7kg z?772`y94B!f=j5l*+Q$a$lr4yFhas{ba1fZ1`T0I;YMRebdsWoT2iTgJNmcS-)Hy` zhu;3wjlB1;!;hb`1AAgFOpqr}|I}`FMEHz$U6Vrw%=XqDJpS_gs_b-m$EMDeT$@yh zX0hy-%8%IA6Njn&oyrT@?(fY!4;xO}#Gj8IaUtHO|NeN3;U|DDwrb^PEM%4VrD*Q9 z)?!B%*tpt?Bd~*GD_ODSv2Z5;d6R!J_vUw!E|T+uj){IGrOuo)t2iyvjyUo$=_32# zC{f$_FX%SAocdr++uh`HVISG=)U$B&c_Stz5X~I-K(=4&=-ayOAm7e0J4dyMx-i3U z*5KyNTMkTWn{qZH>gwE%?Zeu5`GXM!ieh>5G%asqaO@Crq+%4PgVM+(A}(QeauQuo zRk9YgWhI?fE`q$JwXG_-@d{4Xa+A~S^6u6%9xU4t;1k_?%*5r}D0RfyJdI)QwZzsL zo2ND73iv?AfzY{S!Jqcrbou;-nGt%%OCIdcyjR>1f;75(rk++VGs0E_3oUXNOZNZCgHZ47rWyvjbL$H0r*pdLTk z`^6oBrL2j7$le)PS|C=q9az>v$riq@KSy)32%N(Di!{fJ)aPrz3TFiZlU9L6h8SNe^RN=yVtM1Mg=+k;fx8YE zgPSCAU!9{P@@vC50^5j%EfTZKM%F9AYeMYMOSiYJzU$snl6-w4e#>jrKcy$!+=t{Y zG}GWNotWc$!g?mzR&8>8^yt5$R=LO3t?gB|Vsk2SJmJSfM~6v=SvnSDzIXgvsxWnX z5V_|USvLN-dG&_`q!FJSnAjmdCD*j&vl!c({Xsd$)2oB*0-RV`{7oy%2_ZPC<(%xI z9K+FDkoVj2)o?uH0?)VQv#}L&!AULW?wbm zk9j`i!v6l#yM?{}r*{kcj;95E%!gb^fq!~hNCys?vvJY>enkx-`0%GXP7Oipe|l#n zT^2%*I&xgNQ7N0OIcF;8Z{?TgV=12E=<+jUf?zYA)5Ka#9C3EzCJdaiEY!RPT1ztN z6l~PYr7p^PgQDF=JJ`AFH`uA&yQsyF*Qxn#7UmrvJS&xGQA*IHcG`3vyiyv+raNrn zks~;p*QUNWza<VEm9=Z}~_=kh+tVU*i!~c^{l^-}}f;H9h)p=+6l*l{y zP5Es0nAgucF3LH>sr6IyDvGJn4&~`Z;LL%)0H0dbQNBbls9JwfUVTx&E{7x7OD&(5 zw^_i?{H8oDub05ngO>}IQtPkCOW;#0Zv)DcxYwqszeCw?yuW$dQ9eN!0YrUdW*sZa zV^F@+d|G~e^JVN;(e6x?uNI7?!cR8AnTYbk#bD7l^>-Hg3w}b9rfuF!9k-!Z;#PEA zYU@a{V?E^a<7RZN4em?hTQ&AZdm=khjwfGrW`>Q;s_>Dzdi+i@!EMR#mnT#J`C zbNH@bP7kRc6(7&eRhTthdPNy?1AWaZQU@#R6Z>=P1$U5%oiA3hqOP;i(=ZfmFEu_> z4x?=wA?nJicrN5BFg8#0%Y)*mKp^AW1nz$4+XQ4AM@LjCqfsK<4o~kp)oay~I}iS3 zN7rnoCU>H)u-|W7oO>Z+)$X;|4v^GsVV`@RtvYr#Fyjl_tG~sLG_DiWIwJf-*ySaw z-^N!rTzJ)SK~#Ktjq3Hbj0xDg&SRxVY|RFq)`9KWPgIW@VczY@`=Cz(<8ucsSkv7x z1I0g6ppcrW11FHs?5@&6)?c=#WmMhU#jcf&^Q4X!-(wwS=ct*8hj`l3qavRc7B)YA z#FScZJfpLKJc1*ae|~5u?toX1G?JrhSyl7oC`3Dm_BK}Qw@|a&M@hf7<2?59*xpCu zsvj%gVrbCNaSh33LS)z&7i^hll!3pK&z6Zlv&ZWyKV#bwKInA0UEBHNe8wINuRQkJ z__#B%Imf}*qItpZsVjc7CUBS->IH$(-U?c_BuY}fxCyh-&6Kt>K1a- zm0iSMon0`0$kheaho^;CZx9jZJ>M{3mB(?}?1u zBMoJ{s0%o|4@BYXf?eQ+DwxG&pc8Y6d&Vl)VWhlAD{NcTsNc-Cw%eGl5B~&{!22Ti zW=oGsCCu2_ik6>pL0Q~~B4AbGYi_{_*Fh38KhLtra|CD*o0i_tzd`@mon*(>HE4S6 z_H}%>vOkYN8@dM}C{4nm8_fJ^)L5RiDLUW}_I&~t}Gg<$~>Z+FU+DGQh}vlBo#_w`Dze|FR0&^&(=f~ zsm~W?6;3Lys1q{GH}L0Zt`>n)Sbq_WVg>cZ!mPrXmoM9hzH%j!TArqPRis_M*Q@0# zsFW)6h<5qH%*%DUp&}Sb#h$B5)Y2%WfHq=LR$(mD#1?_gcXv_SJh>2tSd!J+vosU2 zB$MV4QgZQ3TVP~&i^klGQ5|L5s@1t&WJg=iSyz4@ITEPabo3R{VwNu5GesVs0Tbk(q-TI84m00(GUUZ8?FL7S2^rrM8k_ zY;qs{=*Rp&!s*_3O)J*TV`a*l-w}>U?@@O!Fcvl{$J(GU8BG!kIDC1 z*|OKzj>nm7^Hpo({bGGTt&*KfCO@B(@?>U-5;LEq%z2(%5>solak$w4Osy*1-Cs-y z6CGrD-Ee(8(gSe&1wTD(ro|9+G9HmWRf zTFBlXIr3#Jxs2}DaiB}x{yNQK_T`U}xBoc4PpZm_J!jhw@1j1WyG=7UZe(${Sq@vh z>oEB}r_aXBeaEA&%pUm%nPFZDJjMK6q0Ub^PRviWoX{gVZTY`>Q4eQqPzY(uA%NgqxKfK-# zM=&vwMN#K#))?|@158ZVCb^6#@`tJGlQ<+nQnYs|=R)~zNr=0^^i?)YaZi7^Vs~bY zWofV6Lube_;{eQMZgVu*990{Y=fgSvM=h(Mx(5@>N7&IE~Ikc#lL=Ow?IpY+D6@~4}?SgWwp{S9i zPXKlZz2f2tU&3uIv{`H%1@OB11YCXRzNT&A-~!CC^&naVjKd)czeR+N;7>bhiIEO+e;CxD)*cN`$DQM(EjmpgjmUyn*7AlgI35>A_k^332XECap;g? zz57g%Sh%#7thXK^iv_FZ_F39<1ABP%AbY%p_V@(%>(Ru&0onBQ>f9&LbLOR?gHBBy zn_*W*7qVi=oGVd7_< z#{K$Gv+`O8?QuR*s&NP1lOUmRM^FxNARv}deO(HO2{Y$tT0?&spGx+yVkWJ`uDDeS zFzO6BlC6=uZX$b|c+*Pro!}ZFm#Fr4sO=nz_-@h|OlXR|8vpCcUBO9kwH|yj!8kd; z0dKZhvZV&x;b?mHnWj|vyCKP)!WRV?pQue5&>Y5RGqcoJ)4?r7dr}=A?Irvc%&S8H zH#$&8?E<%sPClIAN)3c;im_%^L;^(-c072HyTs8zSE8qm@IAONs+|S*Zb#`4P zCzmdbt0)z;a}jBlRNlN};^A@R=RErSd}$-%-gmLuC)uyN0?_Tw7{4B(+vh~LCGD5I z<)ZwgKBGvvtaQxVuC6con`k)y${B_)#fEGq^SeTj#2pN%F9Zlp5D~?1<+f8Lw+|aK^==Lp#xj}Q#UXkE=9T_ zX>aAvBjpWR*PECSZEaRsvq8pRMf5+GT5tteOyQd$D)|eN*;<4s!Z;v^ zbvn}c*$h!~f)gvlIf0wfP#sPbs=&`3L1gX=B6h8ESo&}%5I5PwnqmsPfR$68!S5>A z#U9;`iMdVHcXjDfzkblvp7jIPNEN$u*+tcPIeWAVWeoyXjjV6{T&&oq&-8BOEwbCO zi|lTV%)UlG@>1^!8~erI7{~VN8jZZg9`D-09^V>?lvEQp^qqWTykP)3))utChK|{y z_k8l;q3Kz-qyJOv9#lu0I(y`sxIXjE`A~T7mA>+Vym&vaAsp3k$an6A_^W zy9B4oTG(;;%7*fvfm3l#Jtq^n5!UwR6YHNl7z<@N=p-Gm#eBeTPI$hgS&BiF`Agy8 zYBIehjiY5OTppTplE0U3jM0DKteyWFhV_X~0=n3j_()kE&9jS!zukHiu))AAXv_1~LY7W|aYM+$v^0@al zCX1;hk)KHT`u^xS)zp)=%iS zpLRR{>J zng@}Ef-X}-3R=p3zHF=ofUSqXb~bYebJo^ikN-^n4Jx_ZE|CGhMdE3%oEKW*=cT7VHBwEUzaKMYmZOBZ3ZLBWu@WuNUI44t(z?5tM{t;IY z??2$1MVr6H+33hQ0+@q+byLjte~tOyh@q`xs6=l-kVX^;yssE*1MdQY=x^s?Gz|eN z=4Si9EHRPg{|(?e0o?d^;4|S|Z4RhfS?eyyKL^ z3s)Y494SJ~!UB1R%x=8Q<@ zjM;gH?J_27%d_`|+!fLnt#C`~W?cn@an%3=Ko1KIr|LOo($zw%3HQlzHVA_Qqd5?6 zE0&&l4{yyT_ucv;={2=nyM~>9bC^9}MUz?#^BI-o?3zTb#;4j-O+q~;Twm;WovnUg z|B$V^x`0am&@K*E`o#00_EG01vLglqw!08G_HBk-%2m)dTwUzWIgWpzddN@S#`VU3 zy96cIaGct+Zc5a1ws+4S@_GJ(I_}xS_PrQ2-_vvcsJK)wuT*(87i^?He5J^K2In!{ z&=Pjx0$cv(4NJR1!Le5p5-!J#yp)u9B^KmBw41o7P=r17<8Hw={1!g$6zt&Y0L4B2 z#Gat7$1-Eb5{-(X-K;a*T$d9qC%bdfww$%Jg%-0Q?e5499V1xg=zDV({W1x1Y*j-h zA5=D4IfFs9!l{XOl*^jszL7Q2^I=r~9Sy!FjeWauXV*kui3aYCm1^)441D`LEM#{w z6F*&mBaB1D%QG03Hb3nY2KdMIS7*H)!W48g;Y9#PhRu z^_<#XqG6}U=hRepdMSvyq_Vre_#fQ8umP2+6Oj}Wy|AMZ+{k4*NB|%dP7}Y0QLB!2 zz!dh1s($8*alT8sDmrm`$REOT@*trK!`djBFa(%6(zx_^UMN^(zXyIO#Q3gFAWm`IYosoCvpu zPK-Mu!>j|rK{YR+MDPtZFO;b0I6DjU_;;;-Fk8!-Js$gD{?ZqdZnH$=pNP#_N@WkY z1k~@pZN!vwBgo&=(|;$mKlJnxh1@0mDw5MSv!D0ooMmVCpC$i0`wo-i7Pi^UHz{~u z%&EAjeM8vjdC4Pi@YX@&DvV3|)wBC5VBo6>euvR(!2042QLCKs-m+ zt(s|PBO7$8T)wzn6>pE~2*j<54RxP%F>SX`F*CMPHVYkWC<87Yj?1pj;0!7YOC5wO zGBL3ZnjD)dvJFHRu4gG4_y_}?#??WjtGBd~gEFXeiT%q5&+jBTg~WLroSK=@gOKHS zMa~yC@2Wy;^@DZ|AG$WgciHeK%*bvNU8KI5&nfVjoTn+K`K;0H88fx{z&5Ua&1;vg zQzdNvxp-($7pGC}#}PBU+@d>p^=?zCNoy+c%V8?Fd^!8|0MLdBR98yK)tG$!fVN{H zHy~Kxn~BI{1>_PLUEi^7Jd@>{i&SqXGFe*8iw#}i=bIYZKDJW{nqO=SyUim+U-5*M zZ)w2A`7CRfNLabxT4al8zn$!_g%FLfOX%!G)BM=Pk0?06D?ARBpGXue1bl};a2gZ> zxC43xPMJrH$IG$+*)6vOQazL~LyEGWwJ!~l%yKJI<=jhJmvUKIEG8=pqkt2!ZY3N-G*vO% zKs64p_-m7&f~#!ZBHdeuH%Cy(B?w1N4clfMa2sddet@$)HGAah)r+_41Kc&S$Tq3 zVTo0s6A^JT&@AFk1Q~lGiY(;sLCXl*^9yoH)7QTI;2G-Ox;he`X}``NOXi{tj--Sy`Uc6i6Ox$0X*BsHg@OeIrejUB9GI-0Q#Xv zf0%}nZ|ZtmSK=R8tW(e}nIc)NxS0=j4K>t7`4F0O-d8&-DtE50uFI+#BjyDsUmG#v zT5|B*DEl>0?Aj=350!WAb546pNyY#o zzY%FZL@W0*WUQ~2M}b?2M*M!Vj1=~~WA4t5IxYK^%4HkmdN~1ed(PZJeU`A7r?)Y- zwU*9kWrPvb2C)i_m-m{Vq z#E5m&bkXz!Ir%{4I|Q3Xjcms$vA>S=q*bejSY@)eWM2q0*4Z1d@8eQkddPW}2Njb;f zt*JzdE&QV0-G;cicC}|8<4(nFq*`aGBsI#NY?zA-D78FmR%lw*yI}Z63s1I^qV_i;;{*>WA3L_ZQH$0_0~0; zyV?|MS$W9z$x9x@yu8VNqz2@jlj_#mTCcEE=C(u5P6LT|;yjaXA~Dz0=dVX9xm>|} zoZ=#;3ag@7`WH+6hcA{|+>kD5#x3$B@?12Q&BqL@_?dbfAUep_>AW93VmBW>GA2^b zK8u5bSB7$SKg`aaKEW>U!{7v=%^yr{mJ&Ix&;;>jV3mee*TP&f(|+-j?lWI~i`=)t zYzZ7 zReDet<5Rr!rvb&5ej0!%uviPkB2A}w3yP&##;2?uOD@A^uy)3$%6ar-+@nYGv78ag zoSdP`{4W}%dCpmY*J@5<;awwUE4M#7n3mqJmtBaeCMRK?SmQxk-I|Ev+sD#EDPpteI>HxF%2n{uCNtK>eTp4tJ1^ce@*Of2pl<}8o>flAJw z$8xs?h1GT$&Q4`!vKddFpr;;Koj#lT%>A*Dx)^auh{;vE>!)AzWw3rxPHomeO|Qfn z81u@=DUj)d@u|qyKwTYlDG$L`ZO|niLs~`T82?(sjU7eka`*-#2CJ&Z5kfM=R#QTD zTL`e)daImVod^FIp0f>XB~i29O(>{Y3!*vW z#x2&-q2epq1>KR}!COC!kGnbBV@#-h&l-JOdHETa()Y$jRNi1uW-q;_4E!#jMqHDi z-n~bj{2Yh=*9AM-oBGdp*L)TRJ8|tNw-uP#e=*a4!6%T-G)yhSy3#l~)8R)B?NsMYsOf& z21R&-6l@daEOkc=uM_36nc}DPiFGK^A!c##%6C%|-Yx64Fs4&!+HW!K7k2(E97TMy z4KRC^+D#4LEmV>GtkD8f*TAISjaINbcOJ64Y4y6t`$@A|?$uFW=q`0e+Wos(VaM4! z6a7>yYntfy-|^GlU}v?p{}0hJIQ`EUJ=dp!x66tMO;s2X5g@kKPC_DfRlcQQDM+$~ z`z$=pl%&#~>UWQC3;%`KlI8l(=-fPZKkIE17&p&Y>tbr8{8JVg8puBy8nATTeB*2upk&-;@mDJIA6h$P zi&&N&u3H8$;l>lCj)QS3XI@?P495mwhr^y???AO z9&dNTrbT4Xka3NjCJcjTn_QXv)=`b~Jx`F+UVG2F%+f4N@w)2`Z zy2HpHhE*GWWlHR+=$w7v<&Aj(=CyR0>N?|&C6$ZqCZ9Gw0w(^kQQ1h`HLV7Q=+d#y z{U}%UW}yk8tp>G1~;-t9vcoZJesllh9>gGZjlYA0-P<_3G1&RzbXeg#+~OzcZq|9znTXX z2Fu^s?`UKX_LReDL{;k`>{mpjLpxwALaY&sYei^Qf0*?f|7gzKhhtgT8)zXVMD#9x zOGY2o_sun`f^f-a*WNs*`gHKO-ZgSxF&CFacBcZH zu*tYD21%7d?QG>X8HOuz<7ZSat?z~*u#v82=U%e5)NkK+j>;Hyama{c%?K^gM1&*$BAjsK*+4Slr1-mtAZCRHRtTyEesVJO1 zfNnf01geS;ju>ih0J~pI{G5v2@G~-Vy{$or40a zHfJ?ShqLwn|1(QTJpZyT2jnytQ32dR!HyGzEL<^jr^(&OVY~5#_P8<33@gPz3RFB; z4a1f)Y#o^9$HmH$FWh#w4X0o%3_MF3zth_k&c^*Mcs!%t9;Yu`+2qtCQfAG+&Gwzr zQilF;{D2kRd#s8G*;JoR>Zg5fnCx7_<-xQ=RBa>CNw%T#a2d;2?d^Jmo(BD;_xArc?i{=l=sbQ}ce& z?FZM{a#uryha;V3MMYPovm})ack%Y6hKBV1-q2 z7p_aC>aDmqd_Psr099UwrH6E19@cSEAD130D$~GU5&2O83+7^~yl^G^xM|2(mcj1y znC!KM-97OmJ92;m`(_Lnu%>U5u!Ihw8T~P2Lon`UAR4C8NK-rn+*Ujbm z4VGj_V2PX#;vN-qs6K=cF}xyh6^iD9kWh#j@T1{c#KP_fm$7nI`KNa-UElyNuX)9m zT#3CjA>+zn^16PVybcpxTRraLD55KD$*YK^-9nazg)Z+Nw0uC&R3D$j;BHep`b@37 zm~`vo@69P&%GS7XW%iu8+3A}Mwx!C>xfj2lRITe6 zFRw9OeaE*2f6NwL_)Z-VcW!#ODq{-2Q90Gp3IY0D0qP9J8&85|BXk8=FzQKiayr?+ z!hk$rSB_m}=Z=@9Eqp+Jq*C>kUmUTIJ)CmCv8GnR zUsl{S?{0%o9_*d}zOrgRXBcvp(~bYSzUu7*b4vALON{gwt87=g2VG)KeMh@<%Vq;5xP3gP2%gV@}XMW1{CZyIHo?>>i_$! z8-+`lo+lLZ#}Za#0h5fh+GwpkVGJul$?E!*b4y*lt}exG0^ESR8vHR7eHGDJ{w9}4 zE=Cu6AljSE4f#9Bnx-+`;S#);m3Hv0b(E@aIL7wgxyrU&p^bj?`}UdV>p!no-}!#h zlE}Ny6QpCt8fGOov)gBHu`@d|$mL!{dPqomc*KhC-B+OfBuqs=OfggYrmYFqEcAqj zwIcfAo92^_QOCPiC=d%oOfYj`o#-R*IL02Wr&WIQdiR;{@3){&?|FVo?_1Pj$69vj z5y!*WMtV@J_6$OTefngPaVI`^|THJ&;E(nN~ z#nl0j67*nCyzw2p9P>1pc)neHuhN=-zX=Rhi59U;8k^tEyvx(U_6FO73&~8daB%JSJw628cnl1dG`-#5!}#wbUUQB z^fcVd}W+bS9-?lv~Sz zwV?06+7?vDix1O}Ks%F*G54?0g z@1=AIysUb~;kFa2YTTmBtw*IKX@eu1U*kzAGO(tE_L)oMfqZT`1C*s%FK37LpEaw0 zn<#hC1~7CTKr08OAs1$phB8(I4%?U`9TLV+2s!RhCCh*+;;zwxi?o4x)S#gUINZ5? zcpL6RjXBCvDSlQMhwTw*f^FU!bkB$FY=S)`@1?RGbHGlx0Xt)*DHPX4MlJ3#1(yIF zcMrCfi*~9!wT$y`)xTMrVIJ-=9b`68*-v%$ou@|IJI(CfCA=Z+3!62pZ(>HLyw3VSX1#nVj%tN9?}jCiMqQ?O)9pUz8TWtN70XUzlM*3uhfnbD$B* z&E6C#Z^+9*qbbJg%2}Oa>W2y80%Ik&QE^4J*g?@pXRAg?A&M!EGz*fpe5=@imZACm zpfv3Pc4z-Nc6EEFYJfh^JYTIv2a(3)Cu#Hzl)274yF0dT*V<-CI z+8}&dziLJ34sOV&FAv>@Sc3Zrc(k^V(6~fgl*FJgPK;okuc+Lz_!)rD!ZRotTF_Iv9=3)K|JN0ELJE@Th>Ip|VUXx6< zwXKag?05AI8ObcjDJQnzJ<_-X(V(y4%Rz>>fIiL4;q!OYT0ekVf$Q_@3Hbg+;JZsY zDy_aCEh8s(RY@**P1bZXpE-RQ-oaS;>@Lw4?T%?V5eG6>c<}W z%ox-%*Ty0G$)TT@&b-)i(2P#(QQt`|r9Ua2#e)IS32jYu)`X3_HLd~`mL+K25GRBQ zQ=J;YT^zI7$r_W`K}`e4vC-DtIxXUmF-@RD6%E;G#zPU)wmxMq1v>I;wnT0PbbjXO zQ0tbH`cm~yKu7zUqw`or$A_x-o7B=+lEqUzXu8?ByVwhT7F?6zt>ezK)4_PC;Yt*Z zrCd(p69T6z2(AeDMf8>>pU=={J0ZE5$rl7CaEIzh7A8sha+X@eS)mGIfrXHcm&ClU zA}O!fNhJ8&xOX4*q%3MfwO~(d2h(4h+0WO+%T_WuE+t!( zqNdcs$*WiW&|SZ>-{xksSzpE>D+Xz3^j{+%?RE)meGkElW9PM&sQH{p!UW|YSGVGukX8`O6=TD($26_7S(*}3^z3J z@)>J5eT2TdII-Dc_K_{P_ns~I5^r0-9Q(O?Ye#u{??cl^Z|K&0Q}p1Yv5;QO@=9Tr z{(&oJn`1@3jJ3K`UMWmBUeZD>p<1ZZT9mXj)p19iAW?!tj(DqEK^^zPI$#hEr;Vv( z4!d6LlDRcXJn~*r73h|r4AJvrm8uGZVW%I&2EtZJrr+{zh~I8(XKrn0ottw`lKPDe zchR}IaB&)n5I5X*iF|NKVSR@G4c*(3yr1>^beC`};0|ncutzo)a!S5`F+bCY*g5V_ z?23GCeAKZvX>owCk;#=5({HWw4tD)@Lc(imxMLeNc%7K|n*F$K^zGH~=16B*tJks5 z%a;>w_=m6py>KUf7c&QA zB%3Ftn)Ur0iOgcKOd2Dl`^8elbIdH56C;bI{&Bw~Ec)cg;-w4|afNM|&pmW;0!!c@ zsky<+Jl@bAcOm_)9qE8El7>mC?238n=SVz1DXr2*$baOwqm3|x$bWDrIxvjsnNFwp zVxS58`YI*9u&xrHgKxa9`b=NsnLhr@SI>%T3g0V^L}&$V049HiHUdQ(cWAWMOZ%E@ zVQ~4FkPu9ArcRnY=EA5^7siY|KWfx@8lC^wSd?O&D0~r`L9TxlQsv|s@h-$#rMr@3k5{~GE4_UqQKuI#L4TGh@luFcHy9|fn{p8k^0~G3GVeIA zBTd>V@%MY4*xYnj@QJtwsM}SkDV4@-LS1(uVDZch&QfVOuO4ZHREzg}9^ce_SeFx% z9-tF}s9aW@p9U*@O3c!JrXyl13dsY$GCv}L;%AxPXo+X?NpXIFVIMMcB!ZW?%nanT z{$|}E`wtT3gD4xnC60(zClImz3YCJJP71M-UE9UAJL2>ec36 zZ?!Y4iAxdrX?AcPLxZHr(7u%Td7twGR^|+EnzB**QU-&gIv#3|3FM;%lF?FEfjr9f zr3%U&6;Y1PMQc~(KR56Fx96zGpYwXUkNEvnS%4~?Af7x=Xyj|EP8%Af^$+;I)gDE4?c5L#!Ht4662NGf^2xM^e%X=H$8_bi#MZW zp_vNbG=x(LI2&st=h?zm-T&UawsC=g4=&rI`5-OO9aJHP7X|X)AbwB}us9sc?+YM; zuqKFD!sF2=Ny7LV$*tkl<-T2>0i zODT9MBmbpQ1a}r}@z%B}u*WQ7k!&K=)TwOnBPp^h0#dISHWeyuoQiTvk(VV+wq}@aGMH906mEJ=E=B_k zGnDDWl<7I6k&IygTMCJQq8~Lf=OBUg*PP~2~SB0 z7n-D@ZRUi9CMU~}**5YwG*wH(Q?%XN4D~>HXm|>sssq?SV1y-(4*{nL|A+y==*^}9 zD*4?IU~z!0myHG)eYvYSugg$Y!cq@2tUpv+TzjVaQP?7i!4BFQVMny4|M2V{4LLI< ze08XM&-y+HRcb2@J)hWnLsT2@`aVJI(0_O+k3IHBYzJTGdeM;wvnF^4H+BdgYK-}N z85sKp<>)qPV}whAgNO|%K$EAmFrjI4PdD)VwBB2znssg5t|ub;^n))Xg>Db5A!xU;1C>ne6dT^Q_>Ff1YQu$2ao~)7+@Z zLNhqcDswTtH-A+!kC*VtAW4`EOl22H7fSgefEz{7=er-*}wr0J#Yt7!DM@GgH7xy1N}0^dNAW_o)Y zZ^2P3nAWpn?3ERJqpuca+#-)O%$6n?6TraF<#@#pLXidDv{D@H?OhefM)o#}0)w=) zumU?Wm3pzYQ^~Uem8?jfQ&|S}oXU<=M9@gWPwzHwe)kh4unFp4YywF6oK7fyIyaDV zn?}Rjus2SnN4j&ubW;HuEGQGuJJmX%vlDqzx#|iT=dJ9Zh%X2SE;z0`Ho|2BjSG+K zQW6bn8|&pgx_#F5S}j}F978r6Z?3Rd&whS1e*7b{{Qrl>*ro3N-xr&1(YGt(8=K?OH011N*17YuTrjpzo`^ zO!Jy%RpBe)BoeC%4+-d#z7DfMR$yT$MbMfCkyiP)G}@HIb#XHC8Cg0)>BO}UaJ$r5 zmeWd)(nzy>`s+od*}c-!f;vs|@tM>qXkrC5vpX;PgBFqA%ChxA=kjV3;L zNR!Am18INQ&n*7oV$z=*P9x5-oJ9*+?)hjMaUPRPvz#<(qpwZw*r&s!PJr2`@qUgV>Shj^HbR44C*xeJSmF=xZ&qnwtzO`AG)n3ZbK%dd>xut z>GihU-4IC{|Hp3Y8>i)=+t25hrkZ6Y=68DeCW+y8gE4SI=ggNU6bb?EKG zyPc=W_545Xc0S))Areve8i8vePZ#Cc|A}AMP|xT^OGmxAR@b9Vow1(ZFzPrk>V|({ z)Oj(nb5h(~T-=RYnfL$3po(U=QdRhvsF@Nh;qVLvl9QDc{KMfNmH**B)Y^;e!P*1+ z*TR>q=^@&4IOoJ+Hb5GyRFyJWMWh(PZ_{U$v9Hu_$r4QD;YtPFSSapz0=h;T7r=%r z;-sdC;@JwJYIWcWR%<&mSC6%XO9wQkP(W6j#Qdemy-H({70ZvSD8Z8cdPUdJA;-G5*$d$9hHQeooIn)U1)zH=}uVKFYCe;m>1*hUUi z+5US6eF=-P-NMJ{Rcs3}*9cnZFJWoR4^F}v2@4MokHZHpV=Few0(b%CSXdzyyYSt1hn8Vt^BXufsX&cb3u?Ac7 z1=voOae<_@jmbwpp6;_}Sy@z$T=tOjf&2G}4os0M+%UeR9>!NUr1GM+R~=yIIrTO`7!9x+XoD zKJ7_T(i7B3qRLH7evxof||y4Enjuryp0Dw{-s?-xBYvyZDW~y z;P_G2wfRK%dPC{Ls-7*HxH+}2w#IYfmf1_z0fiIte(ge_ARGvVvdXCuu1V(uT1~@q z;-g_<`KhKmG5Ybs=cJE&u=oYb${Igz%&5`hM~_pM51#XQB71jtaLU68WI?S5k6XQZ z+~Cpc*8_TQt%f$5|A`eI3RP~ADtgEtLiN+!L;HDn_V2INXx(y8Xm|H+S`7W|>D)}a~OUEQmJV%9ByI)Cr!tkZUi_`Y?62A!Lh*=6Y& zxiTss+M}el!@=nEC!?lkZRj&VC%JcM+|k);o0Z4VRYL=!Jxj?Q_K%#KIVJfIL;Y&* z&B`yfDBHZ2bMNX4OIbAq6O7R06zi+p1-H9tps97obmB`mx0#t7LAhMR7kLLq^i36V zxG7RrJ#Rn|gwLtRKAmE6Bh{m(fWxPV^nT*?j8-;wmKJv9`cS0+WgD0!;f_@`U@8Rxeh z;o;rFu7!(_ddBvi*~F*P^6keXL@-|j!&A= z)!cWaazU?Ni!Tjn(u92NTvy^|44kUHo8PQ?4Y}%wq@2GzG=YlbJN$^ z^>M*0-J-Kp@mTHbriM-9jU~>OIe}FaY>}L7RPmZx%A=ZC;VbPRdW3h@o*^D~?7pD3 zWA}xU+^CYIOZm_T8*358sctBwbSG2c;YshUFBGelZq7C6ie6iM?~e z*pz3I!g#JdaSg@ejDKf(I~&fD_Ii<~oU?S6-UNA7&|{LD)RtZ#ZMh5FG2*6GXc@Wd z#J}Vps;k2`kF8Ky0;JOfvXm(=Gi8%cLWDE}6NbkvoDiU1vStWbG;n1^*VJiVu|vN0 z^63*?gFdl+QYdN&r0Yc{k|yLxtOR{z`Y zJXcJUA|`Z-xYDX;^C89-H3YSbt7ALhl*0chBp3yQ--Iq4J4tjlBl2-9lMGu+5DEE| zl#vuuNNcr)drElPk@S?qnZc=DEozVKIDWkNmqJa90bY`IBcPK%l_T0{3z6|e&VBWxF=HOByi}~F537gz zy7h0@F0zYP|7xU>(MSH}ls{Lj_;bqb?OuJoa{Kk4;N{n2$8B_{JG$d$=#B@*QAhX; zOolZ$MxtW}^qXIBqc>`rx~GPZIFgo8lop=iVOou}ptq9Z65?A&dU{5-5ft<5_wG3A z#kO6~GdlV;B5$=@CoEY#He|d{xAFQ8H9&`K|JEV!ZZ=K^LrZHtpTW!$Ij_}E#%4WO zI`Owj+D%-CHlZEd1~`(D1Do}5F(GvtO8m>5m*1^^J!$CE{r-pA2e)?a+iqWSnpN9o zwU%!}|LO?}?yk{dY!j#=dY}ypXl`K9SgUkQn;ExF8ouzS`CT*Xx*EIGcXv=L9zTYI z7N5=QE!B_sYOXCyj(~HtEbP=iUHEWUzDY387cz#y?ar#TYfPiGtQ#z~+ zmOh0fpF1Fp;R1AAiH|8hsKR<9dzST z{)uBSX??kf2W_insqWTtiDz7#r&nw&On-mdw?TNzlTJ>;oc>;(0|t0{MgbAVZv~-i z1{Zj^PQeD05q`M0CM3Hh?B=3qw{ElrOp-$AoipT!(uTy7(Fnh!QU+_bl7bsjrf!VL zQUKBm?--wEgluK7E>HBseCqbFo~5(?#~_xmc$Q{K;P7nb4;i?)PIa4&!)F%KU;20O z38XheJG%{F1Z;2Lq`1)F_=3%nKQ}s{TcnS)fScgnCpth{qo1v2Xw5KN{{;()*%A~w z7P4%z7%AuiFqK{fWa?)yXu)3PJXbx=%6hzN)uXXvAFc8ZZ_zBGTla|OEh6}rlm1+_ z>d#5K&li0r1qDv&(`QOx(4;X!bzV9Sd!9eOvEUh%o(SAx8a$@k8YH&(9TCbx%INX8cb zlm6hLsca+3WEBMHN;Pxul%UKbsn|tfsh*}aNmE9Eu!UOn>k10Q<#HB{dpnPQu@xk! zgTKuxs+h2(M^0ey_#QF|!V=?a<4y&Y1a^znO?w$dNFw&ebteY4@U9bVbj$o&uC8sH zHfm9$NrQzW7H!*tA#2RP<+iBbe<5iu%$Wf@1#m5c7MK&R@DuV#>sC!In;NyL)2qYs zV~nW1*M@Xxq9TvgH92ACYPKr*_d*jK*oIZf&QP3SvI}emj{8Jf(!13fuNt-ZFlimp z!()u{DAz@+_%STy+yQQiv^{j-K!5>-#SH2gE5^%Mw6nkzEkTguCB*$q^`D^!fB}@; zxML{XKv0OxT8pW*$VFLkRN`%+mPDTt#|6eqNb42V=0Z8}DLuKtY&{!&DTSLWrEz&$ z1vgk)3^2`*Y6UP%3XB+w1OOPDL6Qphk&g5#@IDQf+$TsYdQ)eq1GPqx1kfEs14}I6 z406tJX0l*#crI4XEQq>{3a;;U-NLNAdL`DVL06y$#%D-Zn$q$(mu6-3%EGj(gHT6m z#$79!H|{$?ipNsAtivS82|OtiwLmNqPhQi8ydP~x?tnOOzUq&sq~n+~PSKBlDEz3t z1Jte2IJ^vkt&~5B;mE*J;%3rfdL7YQl=x{5PbMWPQ>Ug3n>Lw$h{wfN_~{Adm`n5` z-3h-WCypIFcdnLfnfk!~%%^u%C!$N*qy;U37hc1(V}A z=}h6+_1=a#sMm=WR4R01EP2{KuvKPo#8AMfeQV*J(LENAEZ`8g?l&^IRZrhmK7GOh zi*6_E9NKsBw|TSyUqc&ZkWo`d0e`=@qg*WOwoS0J z*H}zoHw>PsZV?6PSM*x0jg-Nkfh#iwf2taAXHir_fbM;i;=g7NBQbe$Wr;;-pzCnQhFzBOz1?W{?IM{b+-e!0g$7uVP>ZZR$yu`YqF z1_e3?wjRvC>9=~&&~0XFi-mD9i$lW}N5?I+P@8_A2IG|nO*~t*@@d-CrKv9rxtCP(nQ+p2ey8Bc&(LO) zuJHQ~9|4Nh$|-`MI2mPSE?n@_`iqnCh6crE0cBOpc@o2h(NFx}%rDU<@=L@4h-(|5 z)uLc0I*WhEZN+2TX@x?QkCYUeCnWIik#dHmpb;-ROQ^|h{eQeG(OH$!a@%9SrEqMzK>)h{VRGdblNOTl~swnDMo_?dbC@88dKInBqTxSyQZ$|4XiljQKaN3Me5R^F}*Ltc?8Aj&{L*$fa`jlX#Oy?&6@^gJkH`Fqf%luIWXRa_shWtXG z5`kKC1}W}x${T&kYWhI% z<5*AsGNdT%1wUekl(#H}5tdSa!IPBe2+PR76P8jPT|p`T(r1E~;IHGyyc;uq3=a?Z z#EGRlp%_2b^A&wZOkTbqCiLx#xKX3x28|h2n|w`blIo-hy@LSsZ|IFD>$h!K_ua;= z8$gPJA-@_SxHFm-V`i&#Vw_m48oD6$iNLpCSG>EV2&JGC%-=@ibzpVvq_Z#7v0+R^ z!QMV(E^H_{&^=+*PhddtR#1TCSmRScXapa>9gghGxPnXeV`2qXy>{pw-tD|@*tqkrHoIX5$;>3W2a9^Jx0(~cp zxsa24Y)ICi$+NO=nT9PI(7FTc#k?+cact|}u{DfKgXe^WkE&r@WAdN@3xYAEy&&B5 zM&D)bYvdR1%Zd3A=tW8n52Kg3-)Ud?ZQFjA+k@CW6OA5h|7#HUhdd|)OW*Jm)xmrH zqX$6Tf$?7D`5~_P#B-TEsi{iw3?7~m-Zrt$r%urJdR9+tG{HAzSHh^vreTYt+I0@= z<~_i!VN0&(qq|L=qShs*ZX3u@#c0)m?n?va_rtrf%y_Y}*E3%FtD!s$9)-Nkg5-#WPj20~x z=Xm$(zcw*#SKOVb?p{$}cW=>!sUx~!4Q$q}6lQtP*6BR*N&10LrpA1r@uTNjrjOo7 zKdtqFC|>B3Gq2{g z@8>cs)GfkMsmc_Bow6>i_=!q6MblceSUOG~%=DdccbfNV?Kz-zcl*vm6@)_PM!@Zw4_gAJjvvjZu?bO$$rdySMv`jjxbgTF18vC*dl z($#{woPs4O*Xl)g2;OonTYbtvx|*kQ3Pei!GOJ-Q!2>cR8*+*pAa9n-*y~gJltFgT zr}!bIfm{oxpj>NqX;1zE2i`#R0%2n~&jvsHfOsOMD^d!Ovb1z9e+$}wD$yG$EY|c2 z>d39&Gmz2^DF>0#6e&&RlA*kAG4vu>Lx_1z2JD zR>dF374C9!!T{u4X5EIRkpQ}rQ6)7*+(~csEK7Dt7!WnrGX3! z%K)(8wL)0NKTxgHon{^et&U?arQi7wWEpEe60>K_PxNf%_xuC#Tebr{An)cMXt#*p zB8O8fg|zjSs)r7Qfzw{fduWgF9^$|!Pw1S-j{#r>KZ;wSF8p#s(fP~+N#s^!=McVg zf?KC}cPdR9E!Mt7e5Q4{Nk2}?p`Y$_nu%zDM9~!Wo9gQ8?k8|k1~oAGe$q5+Je3%L zgf4{7$rfv$p#{_0-z3#0O&~_MI!>j97!H4a6V|1vZe8+4ND1bPur6W7!FH*f62=!{ z1+p?&fpSV9?i}WF3T9hQ>BSdeJ+N9>4|2*tekaxgOKDP8W+x`C7E&;2av3*3-Yl2F zE|pXIltISy$SHnEX&~3a^vEeV?~Ry|i-Y(z4^j z+l7x-x!>j6br65n;SIc=l*8Me;fsDdh`6CBl!}+7`_;46-64r%&(K|%A57U8T^2*> zv_I_a?ZATJKCV~)AZ6l(%JX^9eWhyf>2K$sPDniS?fjn;iLH0PeqQcT5#2P$l1|TA z@N?qe)AQz?P9S#PeIvcx2ZVQBgJVL}UCd%%<1Ri;?w+01Be_R*HvfAv zQdvgUg|Xw#KTYnDC1>OocaU`|ROrZ~YIVwWBtS7hG4S6zqpZ*wm;ZTZ%~Q`!9lI|+ ze&5)s=TeDPWMDvOU%$Y9WKqJt(bLbS3_mk<%>INIQ2_zr5y5>TKf6~x1`Er^V8nr; zLl2BdmcQ;NcaM+n&OUbQ5-Ozg_y6!VMI?R4>>Vq?Ed%{1N;N~_6zdsSJn8b{aNv|X{l!> zXB8&Aj0(^d|JdsPdR#U8tC$H1I~)o=f}&IDy=poGFy^hiJ%$-40g-j{Y?#+_@?T%C zw@ZawAYD0xuA+CzUc^}`qO!UIDbS8WVTnzqpNimAYV=ux&?xU)%k%5%DDdLJtrx4cuXRkxaj;2MEs%Vj*v?p096@C(VYCaj(Qea+}(rxj)6r!h7{# z{hNV7?-10_rrhtOC^Rc8G;H)}u7>^>@$%@Pkj%`GpwWhJ21~tNcyH|eKZT{p3gM58jI(88c@kh>)mYrIX5O39? z^Q2|RR?N_Ph5C$8U>sE$I8g^~+RKB}yTt|S!AR;_sY6fNx+CkczxwPj@;8(AsN$p+z3+B)+?ApxKt9zLQUVRhbbXi}uQ_TIa9 z_j(UY#u7b-YWau(k08T1aEW4%c#<2h9)W?Em5B{Di)8tLY15*jr%n}5=7jgn$>|%; zo<&cJ>-jVzS8QH9u9wsM(A`9JvU6F@g{wbcdH?>)2Ot<>x>Xv60}qgPI{!rSV4jj3|_eFaA)_n`+bdDMYy|OkojC&f^sWr&9#hzJY#%(Eu{7KDAOQkgNWa%aKY(XW)l|+L4aGGx7No}r7CBWl(z&wTh zlqgKe+(6pdj!bH=BN#FjBAP;Rp|n`0Lb4W_c0947o9RfkI}IUtDAx25PtxUO(AfJX z9Q>C|p+A$kSC3vJ;NN9>riZpg^%WicWdqRB`VGKo;>F8!=)aMlk`7^6Sz$8y(f?8j z`5~H_;!2vNcGYdBT1>-KznP>ic<6lh@B!p(4kU8ukO;Nwz9&!ic@M*_Ub9hjqOb^( zYuPgmP3DswB*R(*w~*BzJtEcV^~fQ~{fOwa_xba^-I9lTD@e&I@v?MQP1!Q=uz@u@ zLfF~5G!o!pNu~WjPgo^IU>${41GTm$WO9Ibd5^L+${d{w1*z(#rJ4w_kRDTKV}6o~ zM`M17CP&;!&#FCTf(KcRywbG}v@hv?>o?Me`iVQqnA#^!SkUpPzDPVox2gkBeMm8+ zxTU2f1!A$3quz*=6b)6hMM?$$HZ<}^N~&f%NCT1Lm9eGH7$A@dFFaDI9Nc)PGnOuc z{4X|aUbnj1HSyH`O+LfBW=z_VjrtDKF)2xrj{2FJ9Sp^i1yYW51X{*y?c3<|c-h*A z1jwPJh;%adpG-d(dxk|0sUBQCDRW`rn|7{Ft(5570O#C#Em`9kTy z7hpX@nK>lzmSv%`LjuXeC93_!)?JTBg>GN& zGPwJy^mGMRd{jD0BV@qrRlVG)SpJ06Y>J*LlUi;l+WLEYhITQg!x3<{4h;Xi_&l4GvNE;SEb)zu!c&v=|r^0T9ftUahPF{Wd#iR^eKs`^e~fd^GD9N z?AS8ITReP@;OuD`2zIRinha_1HpiGX8y2cI9lB1?yu&Aq#h65piTlbZH5&{zrFy9z z?h6GZhIclDr|@;!Q)bFSK7)EM{%zE#JByaw9y#Lnk^zGgV`CB$;oL1pIUX(=vow>q z(5Fwy>OXdzj-FDR?gQ9K|sot`km%m`X^1nB9JWBxUy-Lz0VRosF2D05^a zpK3or6cmB*0|&S|>{B6wlF|KlP}NlLi;0iXkt#qDFwb+1lJq@ykVgvMgvLDMVl+dQ z^QG0$b4Yo@#US=v^i#x|lFQfF{EzZR2T=ZFOQT$X>$SEf$6Zr4qX)Dm zulctUs6JO46_`R2{&`?nnS*2tUiF&)OETt^U(-U4+(c2*O>>R=z>1@!8-#_dI9w?+ z#YkT5rn$~>AGI}6i&Hk!TqE81x39G(as^LRNYq!r0>?VC;Z>s^}mkZvO?)yIWNN64-9gPmVtRmN%PeBcAOEcBB0=Kc6Dyoom<} z#wvQ^lN0e#O(dPlW}cPc-&EWxayvjc1(K=C+c9x9tb@0A{??AkRC?m=55%WB6k7ka z9YU61LY_c_5HlFVd{$wFmAsESJrSH|x^ee=SF)S_w!Eiat zKeTOFS(n$3aqq;KJ#ER>iA=XNF{S09S4YMYVl;>64D?NM0 zZ`6iA<7yZ81V9DHRztNt;4`h5x)|1*PIm_niY#z3JTO6J(})8`T(p=UyJkRie(a=4 zM~Lf>$%jkkl*kL_spP>O;jWXw=rysi`PlA1(o;oqN{%E;Ji`Flk_Q?xK|@>18j=m9 zU}(!iCCgV57LtRyXfxG@A>3C#L$>C(W z9mvG4i3Zu`pK*t|A}mg}Dix+6_;1+Y52}LT%L_zL@Zm-PH9$e%Kur8S4zFBY3J5w& z+59DiK}E`zFDd$3TUiQPjz-H#`j#svpQe8&pJ;cpuDpl513}e{4)AZZre!2lg+H{0 zT0jgWV)i;WionKNISfuPKLp1^^8<4X1OA2-ZOW9YJA|r#8!Y?T(!{9Jp zfOXJBG1kaR+>ZUD@GuexRP@P30nf^s`+PrAmv-Pw>0=FBRL2x!Rey@i)ErlxK}I4T zgdfAfa9#RP^B1YBtT`4RMkxD9X+-L3KH)C4vNYHD4@?<{yOa%CY1~@_<<3uNRIv)e z@fYe`mV>L|Dy6;BL7gk-EH70UMH>yyUX2WjjGz0xCzHtK{Wk`+%yWNGfK3QHUFtZc~EN1kRU#Cxi5&w zBLgQYI%H^JNh2LXpBK!h{wYDKMBd()c}K5#RS z0aHovyDU6~@7A&$tV}r%rzOiT_EDy2=CV@Yw&0VltfZ_;6@yy`vn^q!^Du_6mBWQF z6HyyX2Nbk9pB3xYtx)E&Pt8H4y0N)=W6ft93yZQuWDy?=n=e@kzN`smzhaB!092T5 z#eZsuY!nX{d#v|JX^ z<4h^xDAg3Po=7`28cH|mI-|?jWJqVFK)>FX)-pb)eu=AOL#!C)z@RmJc(^D!vUm-+ z8p|Rr_PhqOR@@?;9SlYzuny$eyE3yRWOq)+^OgJC0)H#-jXOV@kTDm=;Ta6y=d)a6 zIuO?Zt{n$-ARVHeACN8iWM@7t;-aZL^~die#~)}1vNY{nE;>a{;yR7FkTvf7m@(%8 zWz1h4qFp;iw{IWa(KWgQKLF0d^64A7!oUX)wCfo(f9lSXNh6j_wmf)1UdhS07=7ui z1@7W(77ShfXIKBnU3>Mv=#1e1Kf<4bL&$r^De4y3+>AaFd(Ipd$bz-C{0V(t6@gY5 zX3Sp1Z|qZKcGmeN+OYwFW5y8=;xTU8v~1#z?=gV^V@tGrJy!=i*UrnAyV3b{zT5KU zojce&xHb}mv7{UE8pWzjn#78ZqKD{#vC=tISh1pgCx@n;SVWUfO&vP5U$Md!N5U7> zDn+bnB&uu-LI6EbQ52tmVSv*wyu;+;1j9dUd)(UaPgx{YC(UqE!iB84y?Eh zDXYK{Uv3*rd;5Q>sb$rMJVV_`Wb6EdH#Gd^Gju5ho;1W>Z;2`2+*ZqW|HD1*JDl?`NJOya0Z zurT~#3$Db94I}qy{I%@tYq=*+=E~m_ujUYC_SNwdu4ZRnopAiP?tA>zY+90Yb)rkS z^H0v-oiP4t4$A!WQ|`4KV(u8>^pjJBvr~klu=6;;Ifgrz|J2Mz0cVs! zBDajdjRX<-UsVUxwPY4ozPOQ>PxuHv;)yhi|Me*!q22J5gG>@JB3U`cVX)PWDb(G+ zh_Sd;<7}uQ%J$qPc4hT=#jMhMYDZOdz;7x$<6$=xqLioVzqfvF#yj)QtF$e&E%=rL zSN8KxndUVxshO9L9}J6Es88`s|SKC6EH?*ZQ%?Z9)T6? zT|vP)DQhvYEQ=h`iX%H-@pb>yj^t~+yNbYLU#(t6pU~M?uh7}_$!Zcf_;7Jvp61Zt zAqR`ab+5Ef{v=6!4TkG#R_uzd*lOHn(yx%b&xewd4t>s>Q+x=XJ#@$z{fV=uF;MwW zIPjQ9_kU?UM(V>AuvPId4NLF24IEsX{Jr@Yx!-ayQ?te_gp_^&5RXKGn2@Y_*5OsF z5g#i3YF_cdA%hPU&&fka^bOKdu0Yq#D;T9Z5O^jXD$biD_qaGuHw?mBrLPnLvh^q2 znM7mab*>D|FoiPFVpER^aWMlYAw1KHyhb&u*h;xf6EFFyzPYarzJH(JdLPPqdQMvM zp_`uZOP-bFvQOZNWl=p%hO5R)27_w`ArGK2-{tIxuptW7C|;u#ORh6e3?#o*6N2a> zKS;ea@EO6B4M-6K$IM9Z0ke!kt`JQ^Ol@o=FIGJt30XU01TmC#e$fkz!an`QM5@AR z8La$qU#-WrL@k4Zj0Bi+3V3Hx|15`SVrK*(8F2^I;-`;-T2K>PvYYnieq&*P(J3p% zEn|2LMkT#vGei%}Ga+3-)`K2zd+4}C5Z<2e@+Qd5}DhY4(&DI7PysQQxkjD!= zhz-M*RTo=G5lUaylBTQjU?Xn#Z=!eck9foCMSnn>3KC&FU&PkXRRn9Gucti4M!2K{ z9F)f^ACL$(zM8#CA59^=?CZw%pLKOZ#2Qte;|e}cP(I+|;qDyGV~kiGDzN%kSKt9e zdo_!>qo3ZOvUXW@c{WON_#dQf;xCQke^BOg1yY}q$6!a!(XrzC;(k11P0le;rN;oO z))!FdyPdud3>Kfu`d=QH8&~jA2Bee$y=1?G+iIlEs@b&KBtfMT;RK&O!o+EdOdeHp zM~aH2C^+q4ZC16^YLmb{^eFtv zHl(YM9V0R1KIZ{T(=PbDPhyT8qpN8{Gc#Ue2s;Ze4D09TXft6+`)DkPXA`pzsi& z3}0zZ4}M$~Il)55Dsl!0ovO&0F8EfFGn*e(Ma~*Nw~Cyf#IGvPAx6T4DsoKtpR35J zEzGMT$5wXXT*bUb^Rpev}-K)qM$A?ytlP#E6kuwvavMZfASloT8B4<6n zriz@Os#+oBXY#g+Iv3>)TG{Aa0Qs&IT0H@;*_Gzh z=l4{R(?GyGNu_lf3LUD*`9@jQ{5T1_tEkhfs@1EE(#M@Oko_`>q+HG)sRG&xp=K31 ztNEu@uE^E90T>Qm}8*+6>|*KzhaJo`d7>`Q2&ZK2I^li$3Xon<`}4dg`6_#Uopo({VV1e zsDH&AbDmZ{)=CS0YZW;L>R%C>6(S;4x^|S-Rjs!&>R%DsSAwbvXa?$Ev5tZISIntb z)e2D>sDH&e2I^li$3Xon<`}4d#T*0mub5+?{uOf!)W2emf%;d>F;M@CIR@%qF~>mt zE9Mxef5jXF^{<#?p#Bwd%BX+E90T>Qm}8*+6>|*KzhVxf{)v@Qu`=o}*TKE40GGWJ zxJjERpozl-2>3AsqhjxVvcauQfznSKOM1T}F-1jm^*g$o^v=i++P|Idh8S!)O<74F z96L&HZXl5%vxCQckF#TuG+2F2U01Xh8nIQZ=7nyhp?JZ^L$GSN@nEDwzzj2pL>AbJ zrBibw5juDJbTuz-Gw9-(z{jLu&+N(+D)I`rqI~Hh`~krVbn+sRASkfBk1M|k#> zr4v(@yJ{-`r1`k8`3ct$3CpqMwlG;5$4%tNepW!nvYRd^gZSR;6Jzo{U>#6>){RMw zO__UJHa5hJJ%Tb1g5m*5cuQ9n6_J5&Ne^v;(wFw8`*!W z)hbPjdKQhc4$GVy`0f4N-2319&mIwKO*T5@Kcr8;gVlcI+qYyLslJNTe)`>~ztGQh zOy+m1eQ0)Qvsv`Uv*+~ojHZEE!7j@`Y>6mFBt&1_{%@4@-C9iUvoXM&c}aWK8{|2V z`CBz7dX=ugc&vh6<1wIJhXv>Jz<5B_ULVWZ=8LGjT{|WGuNd@OWKWKAOjypzR3U7n zr+%iVcO52upF$W@gt*SD7Y+NiyZg*x8hVO!&}1&@8L}*X=Pm-voC`Gn&MUg?B+25h z(EDA+^&dFec{0Lemdt>b_lKBq^E-q7)n7G&&1()|0!=#Q@_9wWg(OK#RUTeMfrlF?096yPENKU_eksSce%`l!0H6D1cX zwi57~`9+Bc+tWqWRP~5X_^XH>eV)6AbiFPO66=+eavkr^xtkMTG&%J^s<_}cy7kz^ z*TnnSeG+}uycU;6+S7%m(nET3;@gc2o==V4nW5WKB3|i5dtP^ip!9caC4%T1PsABe zYqe*a3Q;y?f6w|AV5N62@WrJre5adKg9H_n)##-mfn-nC#nPD zcx-5Aw)F6r!(19baTW{B+Ty>&W**)3`g-e-mUSHK_8UZu+H9b&f!l^-hltL)gv#7MTC<(Xhv z=%~D;r%N(b!X(PVKcS;`Ha%1g}KucnRik}g6BAbLTsuA%X4P(+y@6vwKX zV}0<7gwjWFkzWswDs|;>!VVTpnrwmRZ+TQy_>GMbUd4H)Y|Xs;TM!-iC5N3JHnroFUVdsSFpudP)`Po5`^N`A)yhkos}$4A@1R9- zQ`dA0T7$rdEXL@%izMv>IrEvMpUNw}x2<;WV1;%K$v_yHzxF;T? zotRe&4@OAw)F zgd0zPymg0m>YsDdMr2CM={x$VfR@bZ-rliKM=MSJ8CPasy6BM=Ha%N>Q&eO^v&bY9 z-Eyk-3tLVQb<4{MM$n8zAAqIt4Yo%~ZE%OMzTncNP8iKm78pk1g0^TW zjet2v0qG-5V5>_9x`w<`Npl@&wH3Yz;t?stHX!`$Bzhw*Ye(Eu7#QZ_i3+MQzOmTIcn%-mf{^`3BBIvIte`m6@6M@Qe#9>N~4U!Db=gf0;B-XJgLZNAyy)b5YUcc zt0QUfH|+%LY<3Dey8w5kOk`NZa65wrzZDZ*!xf>bf$MMd^4^#MQkK+Mg8Ha-69OGM1q}PJ_m}M;V>l`gZEHIb`eXsnh0>U5DtQvr9`tLg}*e^w54TPno94`))H4E?{(jI z>7^CJl9Pw6AZ@@#<&`#6T~ObZr_-8ga$qUwCeoA>Yz%BkBLs|r9|TOJo^NqB7k+^0 zpfUX@*nU8li|JyHv?(q4gEXBnliqm#lHQ&=mDm9>ig5@vI*VCrgqQzNAl6Q0tFyMW zw6vAag$7VK1i$Lkjy>wzA<{OZCzwsy4XBGIqvH62Fn&|KTh>d|*HE5Eh*yo(B%l!{>gW z4>pj2v!`b*Sz^?<(9yG9SD*S$OXs)qbd>h_c8LFG(k$np;SXv4nw?VGo;BaECs$|- zHuNh3Df>d1Elf-SH_xG|jp<6Hf9kTfVJ#uz0eYl>)VeKq1 zYIFGT&UKms9g1!4D*I>(Jr6+;xSoMjXk zR7I!SiC_3yWHZ@JL$zJG4d;mcs#WyP&!ATuGSf1~P%Vw(-bkj(OA{Y`JL5(cX*ATk z`|y(N%AsSGegUf|_QGKr%HT`xQUqB`gi)DknGE`AVv7J%@LkCLDId7mBR$;GNTaM9 zGv+;<2wJ+FpCA;de#MBFArJ73EUm@X$XOUoxI1J&;1Uu|M%`m!fV-08FP>93`s1mRk<;j>V=Jy_qzLX?OAbyD zx~?xdE-cxKK<9`_c~Uw=Gv?7;=?c9}mYpIah_Hy*lKkKDKGIfP0{u-|Lho^d=v`?k zsLVm|6x%@)zlJ6aHaXAqbS(9(uo+Yi7&0o}jc-kFzQ9y}pfNA8j*@{#lzcn1VP}(=sCXyy#LuNistG#$Jai7p5vqd)bkJRr z%>TxPB6^2>*bA$4bYqVy@x}SaaX5dBmabe&uSt(c z&(2-GcCs4f_LdC$lnOJ-`46_yqTBm7k9u8@zU=r$Ch}q z({RhK&2HIbkW|fZ&xQtX*-abgnaOQt-A3HmnDNKe%Vbu;6@MINdy>FE2@o{=ZO{IO zY=A-o1%@q(1-RWYeiCY*P-_NTR*oKG-c@EeqQNRLg2L~3Mwgx=yZ7wbvn^DJ5}>zy_TL{2a`(6)wpQv9Fsd6fppxuwir$TGVoc9Y_vDL}-#TX{N1F@(yAam0~}%P%g=9PzC>Rjd8BGP~bt# z1E|Q1nhkT^{7+1A(flW-svr%9*-vRneSz-`Zr2xl{Sp=j3eQT8mPgm!jiH-M{RJPo znS}C%OwIt6^ZyC*f}%g>>mraZQ_b;U#|d;?@E;g5RSMx-P%}sFD!7ev(zpGI5qFse zmTciZ&?TzApTX>YR;c1ud{*#r^ag1I{n)kQ10R9%S7toMev8nQAu@vV?qr{y|Orev=iX#YQSu7p505brj-glN;n|Al?{6B*nL^1}KB}BeFDJXF;50YHH`Go244Z{X)nEY# zJziWeVS5g~Q|o>P8XC`}0+JLGo&>k$;h}@YHzXR&OmNp|1fq(LQE(-<#D(-{<8FEo zZ1T#1DEWibCMW4Ax{S+=ip?NoM9hE@;zF{8hH!6!hYkx0N=_~<<=WC#!ramiuw{-@ z)cceOd4&dUD8hA42c*Yr2(|NQ9r{=4Jyu3D?o$v34~&T{(-4_V1Ao832x6b&XuT`{ z&GHLnBAF@w4bxs(h9oi>63QE>y+}aqb(5i*DVM)kR-dp-x=v;S+z!Z-1Go@#BAuBK zW76VC9XZ_<@V}NP(?~a&giRV(3i=_Q)6)<6x@xYnDtAIKdw&+G+LBx(&)!1{O9%RIh2%O621~2(Yx|I;^yc9SWMTdB8$w>&ueinWU zy+-WlRB0G#c0S@-1+;mdMe=CJ^Zd8J0q;pAH_7yy{jc#>Tr@evkfvTzK91JZ(tF|o zv6k$Sld&tZ)D)ry1b4LIWx20Tl+5J5Na1ZwI9_#>Ufo-u?S57INi7i=J`as+UBoXoy(h}IM%Qpvm zd(OehnT1})UC*EZt%^S-SQ-{9-CdO+8lPQOIzZ0P(O2|jw5eotSu$~ZP6 zW_!k{^upwkkeLeV*kFOQuVq3h{VcVE2IXVL9@TtRZJ@0a^H;Q$z^#bsRw`ldVaL>s z|K)GNNPCBGa#T7$n{%P<&rnyc-M7+dp}F=h-}s1hekM{~f2N(dc5{&0vV7UIw1Zrh z+&D?SIEPu%wY_|G?fV}&yIImrp_iPPCtcagn`+K|?DT&492cqDP8E7EO zs&I#8HZA7X%(uH}iwgl8eg~New^K3U34CcVg;*;lOJVBm2v;lDA$87nJ2fkAjA z9iuwFKVet5V_IZxZTa61ntej(^(inn zcpH6R7`}IR$mY$YS#wMKNhhXGUFz=m>!&7;_Mx*Aat}?gw`@+YZQB^U=U{9B5w`^8 zD#+(sTvX{3$bopc_y9Gj^Z7j=#eAe=>!ovfG@PG~tw)Ow(Yxp-i_$h#9SMKFov_Rd zk4#`Wao;hAtKu@nd_$Zvd5uBD;OuPi(oK<)4DDb-mjz&iw@GOJFenJ(jkZ>Kvl9v z{Ptmk_NF(mC&mqJ+BN^iBkNcCVQ#;0y1mP!L4)S``_CJ+XdY1CFU}N}t1rX;7~G?W zjqL3O4)3jSDMSbbo}WT2>D$MT=m$bfN&M*1gXs2M#O|}|%DjF1=5>sLWf9D!WH@uH zgaa!_8P2;WWpG9&(9;@Xw?lO;udpx=a9s3o_K1LEv;+9mXZTn#nY`XnsY98682OA= z0cI^i-#&f9kTWNVBS$9=qS~+GBMC_jt^W2CArt+9XFV=t?DftKCp+k z5geDmr#XK?rIqbCY#719(u2cg=C=kWRu|~?#>2LiY~P{ToMK0>w_f&+#J+n=2E1D# zs%*nUTwFrJZTl5`8y5O)0UV7?k?zxk(rnp=+Xm+ut`;`3V+`mzUMKyA4DCngb&gbf z{FoR^_nG6Hy-%NF%npb%ge69~sMmz`RepbPLMTU!y@fS4h)$kp4LP@-)!`@O%1qzG z0ndA4HgL>{1dAP$;(8_a@8sZ0wvq`6Ed%@lTQ=#Sx-x&?zWE))LdbKc*hMW{d9`aj za7o=Jb-l58k4b6thte!TrT(ZfFTJ7QHJhXix}-E$Pk3b38MkEl429>O>W*Cd7NokA z!Bv;ulX`F7&`0by9HukHr8LoKEe_K6K zN~!zF?VAWv9R54GOJ~q5E*SypCq0uEpjxsNE8O6jEP^ot#Ew0m5#fe*AN`H*>PuH% zA=|h!nk6fgiN#v(8={tiFnfKZyL1`a0*~SWMnsm4mwbf3AfKDeUy#3amt@sGcFcmp z=a(i_oJ1EH#Xyu?3&qPh#DX~(co=XpC3})W`z8$u3r#ZGe*iA#Qt9tBMSaM7Ky+6) zxLmz_d2M=}xLX2NM{y_JXxtJFGgyZDq#V$awU>S&aWnv;b$=3*5gU`95gnbW_ADwg zrP&atlcqr_!-Io{4M#UZ#DjFc+EMO?0anRDi1Olq!UH;7?RfZbZ7{C`EwKuIklvQo zFD(Q+nO=P56SE}iA%+;$QTLOnfPE9lXaqs!;M|1m2fo<$g zKCwNF&t6OQQc3jmjvd5h+9IKeZL3CWMke?2tES*c8vyNW)Ehv-a_WH+xF9k}c)vI% z;y07|^w#}5^cq=2d>4>}(AIw5UiOV0<_-#T=;hn9Nka!$CLBf;$grq*dvr-Oad zK2z)1)ai-|+$uzH3uVD1Y~gv^t>pP58@#>EK*yl(qtC*&V3|CkD9HsLJ+gVk3YBai znJ7w1o+)FcLiJpE>{yIEtO2|kNQK=;bi2^jji~3+Kcmm=aZ3*SWh${iBu)!utm2`r ze9)Kj54(@>zF0|d#Z@tavs5RsQ#A-e(yPSX2Pvk~8+72Z@;aBH4r5Krp@mtbEKAj8 zm&gv+Y�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

        6=3(=QnPeuLDdti0n3-y(nd#Q;7fbjCmF@fSxxm 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

        S6KrIX_&}SieWqPQ?{H}=^!9pt?REVP{Y`DH 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%0Dq6U{pGSTfs98Msn(h=U&e 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 z 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%0DT&Wh@IO|A|;!G95D0#OWmq$qIMQoNTay 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

        -=$q^cxC1v6c5*~ zg~oVx#~8yLeAYwB1UNr0_x* zRCGJP4x8-F7^}6?qW97BcWYS+cRFc6(TM&okil{oB?Nd;T9k&Nm%t})HtD?&#nEG6 zMZ{8p_C6Q$?=yn~;*S^*VwjX>b0^!YmJ^Dx%&)Q|t9rDN4W2pyM0B1STqY$2?C=m5 zqX0j{6z1ePW{#O~mD8Cp*1Sw=w)CpyMhyYlG#>PAr@i4crtb~ON1H6_y=5>LbaT6rL)mjtu#aw~q3|cEGFA6=;Zw=Rf@a9jUOXF{TfOqy&^(n87)J7WR zVxsY{K58a()1T_KU6pkFLzZMZK43~3IIcdW_h&}1HOUyqV?wPlKhf7m|4$&GEhLCd zY`QjI^_r&~I)p%bhYsnJTu>v`TgW!BSOiOGhQ2ozg3o4Fr)@?Q-pwLkWLkj^JT*mY z(k1=qSu_w_gJ_K*U8!qzu{F|zbr0gh(7Jgunn_wPw1yf%LbdjGP%ip{Kt~Ibl9Cv- zV!<|~p$#td$V9Xu#OI7DD5$O7R#vtxGZQY%ctZ+CIL(t*4EVYb|~eYzCWPhp-AR zq%3XuDudr-@-JT{==W8?LMpH@!3jHWCn88VkvA0-OKf8$$v`m;g|Hn0cVTF41}drx zAsu$H4T_6F&de&22Y0!)pDjnmzJq8^Uk;>$Wa10x0rXbAV*kd zu$MH$!p_#)i;xi9mOzUgzUpLg-3~{0H_~Ud(u((lfHcG@l5R8_kVZRY3v?tpq{DEI zhOttaaUQ-=u$_lXj46mp*NlJ%hD*2{h6RRzYXlru0Apm2b5S^WRaF?apx1L73V|;y z}f9|)o$&0~-r?SQj0^;sBBvI8CHF%l~|;FZgG0@%G{V1AM0 zkKczbrDT5!YK_3!pCrpk;Gw*@I^4mU1_qkIwc$!YMDYy>B9iG)4~-cK(P+#7CdDuh zW-(+5IT|~z0L(MssE%wdq%OfDUF;ZNssqE7`*fi015nmvDF((4Qj*D(giG6D)&Yog z$O3M?$7qZv2Qd{KIT03&9DVG};5(%_Uc>_s0N$&>Y?l|A91RVQfFl6+0Z`O^Y$|@9 zQwF0m$VPjPZx0mX^Kwi0XJ)+dDkC(QWd;fDC?13~XE?yjzT$ z$B024#2M-5oPcdy5NGE{HDnMuZ~&jLWk9qe@&ak|Y4YtTF05ubybRKzGDQ!@QNwCz z(uqiuz*@yT#&}&iLUX{d2yT;dU3^wnJR!@$dh9-*onCa=!QwmP<2zyA+JnpCQI!IK zM)H+BD+}WlAfQj?yR8_qh1J!C#XDf&B1Rk_mEdPwhNuPE46ul?t-ulh!7yoL)qxrq z(+P$;e1oG7(G46u>^vyej(A2;5Hul3sMk_}85&I&p-c*^n28m!1~RV>#0I0!Oa)|M zcaB@CDPX*&5JXQ(eV_y5i>E#SYUR?(lpH|WsZEvPDewfI{jiI*8Xs=x>uW%tf?UZ; z()8&`ph0#h=SVjLj~-_0>$A~U9a2YYAka$jsCw-79(*M*7J~E2i^It)*adJ#q;+*w zWps6Ioy>S)&1g6QN+qi_EZof!T?o`3$1uPiG&MEFPn#CMI~$a|iSM49%_xq*T!PCI z2*5Jef)siIOD`BOz-59TO-zgr3585@am@r!nin&FLKJR_S zPTdx01)fOJ`R8E$85_f{kZ3zZvn%*6S$DjhmOp!Tep=w|r)Fw%(QOHkgIe&OsXc{3 zHQTu2Wj3K`NiH;Pu=`<88<^i|u5;Hcl%vJaabVUl0|ENAhf5%J0U@#Ut1r z!}rpBzsN_lyI3Rv7(jsiByF~#YUujA3owZX5q|PJxc4qTl?}0%4YRKsd@)D6OS>vC zq`EDVF(S$lWs$kZ5*R#ty61GiU-MWD<|ssljE*pPEPje;eWIt&@0I(`A|bsy4Y4at z5HZ31T#~ppbna{)qH~@dL=+OlytQH%9AT1%&YbQ&t-8(H5R8h>4h*SgY=t85i$S#v z4W8}o={*C%k;P!NMmwUR1oVE{Zi6TcvPeF3?o6+*e~^NdXa=**ZbvCR27)5Q);)uI z3`UDB%1*GGBFDszi8KMqz`&VLyFNXGO!pQz2O!i)0LgI7*tr>DIVLUBM>u8^`wD0R z*$+9<&t%PT1>y#W{T*J@4}rn#{xyeZAnJr3RKlYDfNY6GTyn#!$;S#PI;=Ph1;>(K zrE!P7;z(nn9Q?cw)?ELFfCvAUhlOV!wof>eNIW~C{cTv%z1^O054x)#p(`fw6m;mE z;E~N!5Cwy}vL78uM~art(-C<%Gk8qm6wojQ>8*dYHoCd_sLwoTyE--XYTG%ZuLVXz z=19cLH4L0Na}GvCu+y{3{(iER==aN3yZS2~8%BU*#w-G_g_j=DiI)_sh>DAbA_S1n zyNqRemn~yfZ+Hoscf%#DD8U8@1?0^?8D(Pd67%n(HQ4C>gW`VHi91cfS6GR#8fvKo zf^q9LWa0jHyu$7eYr_EDFY7f}a3|H!Kf1(7+QIv&gf&=0cvON5Fl48D5q*X*)Ej&{ z)u50RA=Ki~(;=rpFiR?NeE8|iajClrt2~zOZXUiHI1PJpSW73rUrsERNrV?RyhdrO}4q>tscTT~pX>^Iu^9A%NRHF8h(1+dIM)#&)_Ffug z=dn^Byq8HBm6wCtLQihh@iGbU(m12OQbzaD@F*5oKQ!X`R7d#zVVKFH8n9C$%qQSZ z8UbCGEg>)y>?=F&r04rDTOy6>*r(Sq5G+9@m65FogUUxG67>=^4hW*y(Iu!4hTA=2 zz5}BH+Nd5bN5AMfy@a4BG_x+%Z{pqp@pLgdnG9G^ z!|3}%(2M)ysl6LRy@nE_?+(MxB=PhG!?05g7tGwS5=-d$L0T2+f#lKn3@gz^C4$tU z9d~Bnb@@3a=5VkCVbq4#1-%?2&{QeN<3;i56P%x^#(Y zR06IKAsR<_6Sgi|f}&9IR4TDcFG0_*!K)FDMx$1aFkFc_2X2;Xp_xD!zMz({mJ7Ic zh!W^&x;Gv#<&rJ`;ys=>0#^hR;p>7~8U|Aam4LkiS^=1-?LBxYBVh{NFEEur_Ye0T z!7q8~Kdc1di9BgUe-kyMT?yd{ZAL8@)DVVOLH(dxru(Vq=yl0iEou<+XuVz{v|`fe zy#S_Ry5STs%@=i0n+Z?!3M)Zv2>AnXKebyQ=V$`8;?nmf(Y;+koL+cuSZfIqrmqaF z9uN@Sqj?ne^h=f?+|UY<`ngLGCh7SXjEYOvK_!SU`utFZ>bRgpXe5bV8`1LMY`CD8 z!+Id>{&1|Cf_z|T%qa|5r40>m+aZP=5T%61^yTixfCeyq7r8q$c1AuM_laSHA#}mh zFLpl-P9hT_XdpL(cND`s8L_5;-(ttTY%76}&J}cm#^_YM6lw#NvY=Eb1Gku$0hDU< ziZ)Xrn->)k{gS=x2E^3!ijt7F4D-ws6-x9&$!t|Y4DArxj7~!$EPOSf(zFxhMy`z1 zF0pzE9-==u%4w}0Jtx9i^||=wuo8j}bm*N(qm^Fic!fa}R^khB&Z6xCs`H%lg?x6{ z^GEW|M8l{%=@kZ1*q9Z(b8iqw;bWFK^RRoxdh$6rXF*}~l|+mWqFqEeE((cgsi50C zhatHT?y#2j5LF89L1^sJs!p$qK3|N6|KB+05DrBviCbf~^R2x6dMq%0d9InB9-7HK zot_?A0|d?O9*vVQEPgJYIjn{>szK+OF`H<_U$82L)!?K1gB&waTUrk;7?EKmN>F0N zR2QS?0xX3}7}53%cxK$KAZ+r5lwo+Sq+STtL1X^1bfG}ptMkm%0)pkD>%cJG`RBRj zOSV^xq0wA3;WHU8CA5Cf%ne~klo-i1hq%DYudibM9?)qUwfds-E36K|H3v%&L^Lj_ zq;g59rqkFM!8g-lMdRaw5}{R-7g32IRY5z@Z+;E#KpMg%lG(bu9 zuW9WY!7~eJs1{{(Zx8pKSS^EGGsXp=x_k{6g*fIk zFR}bWZsfwJfa(iz%$AWHb2eH}v9FTB2V4uzHvyC%q00{*T(_#-27TESVPT&JCIizhqokk`5~~m}3mb zv>S^c!Z%25Z$9T%s;XXmwV^FA(dkqxJmccyySv*z?(I9vjI5*Ml>mu8;>{ z%RAsTXal~X<(`P9CZ{v$im{GJgF6DiUK#5!4umGrsVW z{U)gLj_LaoU$-S)NMDI4?0h2L$Qy-n%3hrpBEl< z^THiuR#w0#u`-?sH1xp9k3s8lkb7sldHEs)hC(Ra%(k{niXoyXcsFFl$7fML3o}Jz z>xk~R+4`xLKD!;BBnc9}8)Iv0L--KC-_gTSJCVPb^%xhQeE439ZdlNc6N+TEo`5J?4||*YAE>QJ@lq2@}FF!$s4G z&_$+t*wX)iGSI1Gk$oMuVWi8)oBoIH+{K=dTozY00#@&m_H^tiz&Ab`7-;MeYsJ+b zH;+TB*0Cx?FIi;DLRRtgl7-}Dg^1RQ6_q}-zfJmbK|xS!g~WgnTVUkpZ)@1KWs6!7 z4@*@e)O065?&?ZTwp!aQmI#x-_mlQ^)kB8hvSGbvoYCfpiBC*S?C7xBoIsA%5eq{> zwL(yb#{kUp=)YOO3*|Pv26z!xPQq3qM@Ek9qrWVGZ~g6BLZFupXiRU{?vsCcwEtXR z4kE_irrpn1c(ZZKVtEbhf!C0Z;y&(Ok&TpHx5=Ot1GO{5t6z}^uc?Ei73Xr-i+%ktSoifHskjHRx}_B+S7M@T z{``k#KxMp@2_Jg)lznyvd!wqV>ZRA4ySm=}^<%+U(1u_4Wt7c?V;fZGI1YfOA?Tw% zw$+ynlV{lnJkjQuE8?$+Me94;+CDsa7RKulktPq^I{*?c2KxF}yqsX^=&&%~$-g(j zI_&R0zbOG@F(om^<{#2j_!9V;wEE@q6oY0xQ4AycmUeTBq_8&3dKc@!(u5O1pCAGm z-l;r?CO?N#l#?+NrEWqgwgIWQwAtoAA&JDtf7tp|4m=6-wAu2MxDU3j$wMZoN#gja z^sWyKZjxcc2H&4%K*^pWj<0DC%ez~rmx9_Yh$!Fn`yEYC7ONN(i`>$zS@$Dhfix#0 zMx|gpwr_>hvyVFNm})o#C)#7jkP`OGpElORgAtPrzSDq|r>j)B(nR?E z=MXW?fBn7xK_;0qN4}p5tw8Rk<(~pktot#o8kip$vALpbM_$lmC@s zhUi1>RyT*iw;?_wMfMt<&WShQ^H4tOex1RO2}ce41%C(w<_ST^cEE<`(eX=uSTue5 z^eI!|_8!^O^5(Y6%F2Ds&3{;vL!K|%L-OiZo6KKPcTI6P#>K~2O-9nR%O=wp(1C<8 z2w?;l+yEjhVBGizPkoH+^MQcTjGJH=)9X`rsnQTqG)50$A?rDI>{$D$z5$B=;*Lc4 zmp*23OaPRyd@~w7aQrY)l=oeNGSF%#ByCPT&vw2pdV}R=m0QpBS{uHG5SR7&R+}H;&Id6zzmBn)g|T@pjm;Ed%;(6;J96p* z1Q4P_UO3?+r;`@c9z$YcQ&TpqbBd#s+K!HnGqTMR86D4@ZiCI%vN{*8PjvjddE4O= z*C6|FeGbS*C98yuni5st(){khLnmbuRtZCd%4&09t^7tJ3wpc_?~(7*0%@I-8sO^q!6&aA8a-G_E!;vpE- z9k5_`87eDF5XKHEPYr2l)noIpBKySgd#TV;pMwE6QA?!u*yqhkM0Mu4jLf8S$mWIq zbL$zA;?bwV<2DGgI_9>Fw_KzQ5l-?C#7kGyBZ*e4p?CKaqL=05DLBl4tWk9_OeNWy6HsqkCr8 zr{;{=nAAP$gwn*;>N67)$B+DD*R#0@tPW5AkCbvA1rNkmiPvyP@f_6%#bhRm2{v0w z&}@#?g@UI+KzdG&@JM3(>Xq?vIN5g@r}&$u=lSHmu>d3ExL*;Qw739h8INmUneFoTqpiLa=5dM+xH zJ`vya(NXeZ`R0qZKdf1|cHR&9wk^48Y=9b$qTFk&Z2I%DYcn!X;o@1*P#x?aKqa10 zMdU_D-9p?XtMy0OaMwoT9+@R_2jLJ6S3gjpWx|VZIvmwfm{F()f!$Rz`N&WE$w$uU11c9v~4EWKOT(%MS=2~wr$3rq}ko&??vm~{)2%pDzD zatIdC9@Bg(u-Q&zg(6?%X7+nwaY}ZcXoPqO%DhN4;1uzdNqhNCqGx z*Z^o*aAOEW#;@Yx7WIt51TQO0A(Y>OaTsiRa| zWB;5vSfghRW`hS>jAOq)vPQ*Y{Tg^Pi(w`%c?p`PRUx2~h*$6v3b+qT`(cVxH9(!kpy#4`{ ztvWM!YQTT`|mQnHq6J; zXuVuEBp>(*fGIODgc%qj-VU}Q>;ccugF{?{Jgj`Ie#7T>i{wyBUGumKwt`!M`pfv{ z5ee-8+t%!2(dC7O<>f9{d9}+`Ej`Dgg=ENOc=Zdc7yB`x&Q3f^C}hJQa*jV2rWIq7 z^cY{OO44BLiJ=Tj(%eEWMRXCRA?qGKF3_1h=>4D3`}?pWeux!8;wR^+A~ql$g^g~C ztvdAik*>b;X5Glpz}E*4<^k2m;UCdxCKRPiL=p1cpS1qtZ;k9W92h|8?g*SVIg~By zmwV+Sa;Myb7?Nm2U%Zd7w`R77-?+8zR@wkS@5O4|30|>EZQI!n4i1p);T(1V0qhDF z%eqANw*u75x?8zH{#>qMKBZ1Rgv1)zKtg#G0}^grNcM2~nc1k?UCULOS7fGNdrjJP z-=FvWS?OulmzF+S4A!>_3uG5KghrgQ3stZl2xk28@n>ZhL z6s-rXo2zp`F0TB(%(x3&3#42M;#9;*3;TUZyN_Q3Uc5a*ccr<)l_1oREKi z?M9MxzNc7ps3Ub^Vq%^%jIULkEoeOa{sV|F*a@HY#Rtltx&u)^8$eXw!m54??M?8; zVacciLxhU={9_LftC{w6>)+VldemR+U^}AvIu9PG2R^MrV#TL`x>g{LhTE25xA_JJ zlWoaYOiG#v0cwJkBC%zgeQN3qaK?dex{rL+JbkdW{mZVevG99)L!;n(#21;oExxk{ zL6{9a0yh*G0CV_FAJ&U@f^|Zo#Vd|GH!yJA+mRR?3TgP5q@;;SNvmE&A`+%V{L~i# zmL3Ew%>gWtPT_}urP!91kB{J2db--0KSV_STtXF^2Q3HJ=Ybs?b4krm)=+r9#%x9c zOz0Ct?Xkls$dl;SDn^?v^YI+yoT~wxtkv9V4*WS=`8CNsTxTavl}yFOH(i^KmpwJV z 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 >GjZLQF0IXoz#S94~IrS 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

          N6pK-J!%2% z(SAEB@4y?y_{U7%pgwE%?yWh=_Zm(6^9I`pNTlnI=H`8Jf$2;gdwU5%_E*gIu$YhQ zbp=k%LuT8o-90w-#Duwis{I&7L1r%JcJ zLJ?Im#vvn{q6a_=jE6%UjwDkxafE^=j~zSK+Sz$FjNNedOwf@ip>Po^4h#%UK_oX4 zA)8I=?zhoPchO5Z^wLH2(s0>Jp+aye6P%Ur*Ee59lIfz+&4;!Y(kr8rLrDWV4sChP z3?RI5B$C!gdDcS=BW|v_Lj-gB3y4a-IepY~fxGQRKYJ>-xtX^w^Es&++bnO|eryM-^-YXk6Yh)`A4-DOxM}T8dY;sJeTz0jpR_jVxF))W=U?84zOuH%$ zUwqJhmdd0(ejw4Wi`<`q_(N3~Y-eIzS6i3R?49RSwM$i~TosT^K;2z-HBnYM9-QU@PYhSY>7FXkfDcPKtg5S` zb7c&DIhwv4Kwl1^FC|t?`j;vqns_N#h@R6b-hHp|bzsc-wB@e~|H=VBy$aL}XfZ4)b3PGtKUOo?c4eV(z% z(0SY|S51OZ{2vi33?R|CPyvAkzp+U&?}wOGUTe#-fNOAyw?D|5lOG*%DWgWCkphA&9izBf znms8Egit=O4F?Ai(Sou0vS9d=27u7+Lb<3!Et|JGGDgoHj~I^DRgW$=ucX{DI-|MT z?cPBQ?pUWQbJWDU9(?e@;^^|Jcm|b?%C!7r$Bq^RQ{M}+MqM{)(j++Qr;N%<00@Rc z@PvwRThFXeMCEnnnlGLHJ*pO$3`GkYdI--GFHp7C))pLQs%mv{7vXTITk0nm$BwS9 z4wMx|qmnrG(AgeU)sh{Yo0+CrR*3F!C8x2#SW5+t9+o%5sAPHbko^u!H{4$7lV!yc z6SVM|HlBjldbT~RIpZsnjc^3tl$Di+9~-_RGH;cT*J+?C8*Jj1kV3f9Pb(?)8SbAnEcYL$WSKRT;uXsn}zgv3d<_rm~N~z zwwih2GB^B1<8Camr?9|Ejq8kyjg(R&#cacjtBo;{nd+83eqB9t8Y#nSA^fk5LywBG zO-zaWLaban9>)`(nC|&72Hri^Ed>AeY`qbOb`h|d11$O3^ zUjGPN^zhy{cgqTprQ+?i6M>yv!w%6lj)a0$k#bO^%^vsvoUT`!)AcM2sy{R<|K%Kp z^a<0<_L zGLk)){-CU3N%KnbAfdCfy_@6+r)K#5P5!UX!ei7Y+36%)cTTy^=;}BZ!N{X56yr`& zQK-`grI3PrPL{aDJm4Sopa|!kITfHtK)j8(W!ve~t*r=TO)&^k+AZDTF!d7p^|7hS zxzi_GTXj7dwNHk96cNXOQFo}D)$cx@_!+-lX`l-FWzy<5+7|p>!nUx zxcv;PfMjLS(cmTP6EdIPLhf7el!SXK`}N56!5Uj1;&9+XGghU4yA-VWj^O|9qQJ^0 zR|~uXvKlXI$1+?5>|aTW0YFH&resQ*+!FQTUVw&m5i5p7;k#Hd5)?Rq4u!+D#b`bf z1XYG^bJ!DCpWHgMx_ahJeLOx3IVra@9i?k@gu6flJeIokb4Ex&=~|p(^L1HNV<~!d zi*S+_vLKSJKO6@;D9Bq`L5kbemc@kwE_)iKvMID|+8itA3aB6AtKi_f+?U zY1KXJdm3r$@rM@RI?Si#p=p-z&S|)43usda3umxYE;X`f!;A?=E_>W)+-#H^<>q<1 z*|UVLQ-P5#)j{evG*m)f(?YfisWAr+dPM`7b{Q8jFzj&|ylO!(H5|#%@0NmES}r^T zvk-~-cQ?v0 zypBa?Tux43JD4`7eivG|bQLu8cC6_ElBG2%8OO|}Gih-Y^^)eVtoSQifTJWG@@_0s z?wj^14`?T7*wvg%!gu$;AjTY6eQC(y2q6y94XwELyQtU~M(wq^5)Nll2!7>TOQ+ET=WbVghv&{D|5oSD`PUO;Ubt)$4D-6-wcUq4-MLJnv-2W?@M{Y)^c_$C+}z1CrV-blHe+&b z?zI=TQ#P#q!fW;G5pF@$o3UUf3lW%KQZ&0!BoH~?qO2DWEE%V~j+pzYcoIbIViceh zPydY@pZoKBjH37c{M^Qk?}V>lSYHu-NAFKH<9HK-7Z1Q)WL$wtlQT$#YM(+wuD;Z& z?(0gl+Y{ruPx()svnA-OSS_IwV}Y0K`hj*?Gh0Ia0%sMOo#zmpz3lqKx&M*ee{VH* znK`UhRQzfJ1MLfBs*AkJdM0> z6VM-VBW&6N9Uc`%6JLy%I*TimD_QRq_T>sa%4?-$Nxp|9zLzDbEb?3N$_YIIS47p* ze}~!Ca1PQv6P35cgJ`~ZB+#PY!l^M`c~K{s)Bee}eRlhM8+O#|lesWyTYthld(OPH zHC*Itu=71)g;nwNnR6ZsQ8W$u?2tzdwRdIFSM^_=WqyTuma@o#|8bTOir&9@mZj0N{r=gJ`T0fH3~{k5JoU6IfMne&wG}`Qhy5{qk}3zb@5l_QzFE#f@640xOI$~k!Rnpu6DVGTvNo=$t${*YrDd{O6jPY!1diO zua3HDws<>wNOw1Hxh$nqD$sH9&e+xch^rgJ)k(Zxf5w?)<;RbIBPhHqfD^KUQ;tXj zhFU=e+OG+DPZF2#nN3eRFsr;AhOHY%XWF!{fQWv$SD(t)mYewW>mg%m#~tvdu^g@C z0eoYBBTKSBMs=2+l%JM;1^nM*bp&()aD0kNf`q^X2{pk@D{z@Xh&uXn%Wj|G;@)VDA4S z{q!>DFXV~}>8BFJ$Hnll2rp+D| zLt0IbEQ#Cl?z`Jw*mN-Hiwhpy^uo4x-=*Z^5-yA><8h3dJuSm}s_CpVwM?d5?AG%) zZQAkC7yfqJz>(LMOq_AYqDAH9H%%(Y9pY?j_;}k>u%SJ*?c;_v=aAfjNjH_3FIsfx zEfY(AG%T^x|HVf;HtD z>W zjoqh2zn`z8I5HVM^r|ei86s3zlC7uaZl%a^kkdso zY~h_!?&Vq}GsY!c%LuN;wr$&f3qHACwBo#^mD{#`CaIROM8XGZj-A-DdOYiC4(3~L zwDPBd>t{yE|7v$jy+^Izg($n#Ei=<@RrOu#r-an{ zQ!ogXl?|zXeaDVydevrSS-)G#%8Cb~I)pyiQP(Fg>-xzB6R9!vmT9a>gY6yh0O3gr zE6|hb*`_*=s4FFIrtH89A$qA)i_*GMgyD7O0x44y7r7~wY3tLcd1qbIS>HvQRz3Xe z2mX8S^?&^O%d0lM{QAfK(IqJUH%wV@ Px}&0SwEu%=SLuJU9z%U0dG>;EXY-e# zV_!CRhO;v9We!Z0y{N|b%go~AbL^O*hzOB}jBrBQASGi^T0*$75qD^F3mIYxBqKeY zc>a8UijD+{l32*oznrsN%G1x4W0nk@px8&n43*@Q$98^s08|9^eXxjoANFJ({zU1i zcWiaaq=qkEdVI?t3LukP+BoV z@^-vv+O-?e1C#VZY~B!vf~mNBGU<*lOr3l)w$f|31$vWhYDl7gO<8ZBOUVa*v~r1G zU8{U3RK#!%Al}G)OYM6#C%ks6125)Rf8U2RS!J8?qb$u?hd_?TBYvg$bY(&zv>#(! z_uiZC7&>|0uNN<_xJc{z{AJQm7e(%Lu6lg)kuGiEk4c6pzC?e45>VR6qTE3Vp45oF zFR5I8;%!<>he{4-iiBroUZTUe=f#@;&!H^vK<=R5jW8z^Zpmip=?bUz?Ze8{-HI3X zbU^2lMdgt;1zTVPgIU`MX_z*llYK*%f;zfZxt;C$j@< zxYti7Ee0v~ESbp1%x~nLX}}Zu%@PG3rLt1~`?mgoHFgZ+kJgL3-h@=;srQOiQ{K#H zPl?6JWxp}(nawBzKrQ)lNi^B@9C`qcdf@JwB0@RnmgMUDe4WFK>7$BBYh;GS`}?fY zLWJiu%gB+izj*A`k4g;4lmAuC%Z37ezNkhk!LbDWjwcQ(;w=8}0R>LhQv-}+r?M&* zl%N5=MMgOOGOOQz;%b>F_(z6XgB)N8y1DjZybU$fnLBD(0Ov@dbhM}tcHoNOEAxiY z)oB?c^9W_XUM!tUve`b&Q?_g&s&3n~NlD{>Oa|!#-R|mta)Zv${%T%+#1!;@R4vnB z1BE<9H@?6E#jOU+KNijH)+idJs=@ZwHWu2pATO0Z4o4p&sI(P1DAq+7Q#$OB>s`86 z2Go&k+3cvS-^*;0Eiohw;oSUHooR2q(Z;2@{IvrRdCGNuNAM zpGbYKh(5WRJ}D#?xZApMqtBO>HqT&;; z?nEwJF4i9$hxMRF)&laSHnTVoD3mx9wYHX3C#fJmo*0Hv5TNh)+aN=Vzj84=VyM3AL-tf1bY{4m^ z$ul?{L`SR+@)aGOq<)+{=YUDUz}{+Y^{cI|;U>dq(m}`}VAe-_yO7>4qPP3g+r2iV z@)$t?v2ovIaJa2ZwQY1*hH2dZ6p>&IwXTlN+v_P1rFhsQcU$;!|r4+J9Eh%Agq{Q(jt)?bz7047lDckK{ zvc#RufB&96{syGFH?(BYnhs+WQE}eseBVCzj-)tM;SLn8d%B}fIV+DiU5js;mohWv9JNm zvEN-F7WmYi6#<<1{#=Xne~7Y!Xqy?OMNqr`*vh1ij_XKGJ~ZT%B|kO04E$IRO+)TYdx{D zEGis5CYs=19QF7&M@d)^M{$7p>%606=FE4$E2OOURJz4Tr9cVrLe`COD_!!dqE{&O dOnHTJefZ`IWl=bJoOzARPmbiMuz8fC{5NLxuU-HE diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.scss b/invokeai/frontend/web/src/common/components/GuidePopover.scss deleted file mode 100644 index 58434270b2..0000000000 --- a/invokeai/frontend/web/src/common/components/GuidePopover.scss +++ /dev/null @@ -1,20 +0,0 @@ -.guide-popover-arrow { - background-color: var(--tab-panel-bg); - box-shadow: none; -} - -.guide-popover-content { - background-color: var(--background-color-secondary); - border: none; -} - -.guide-popover-guide-content { - background: var(--tab-panel-bg); - border: 2px solid var(--tab-hover-color); - border-radius: 0.4rem; - padding: 0.75rem 1rem 0.75rem 1rem; - display: grid; - grid-template-rows: repeat(auto-fill, 1fr); - grid-row-gap: 0.5rem; - justify-content: space-between; -} diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.tsx b/invokeai/frontend/web/src/common/components/GuidePopover.tsx index ca45343588..ee376901e0 100644 --- a/invokeai/frontend/web/src/common/components/GuidePopover.tsx +++ b/invokeai/frontend/web/src/common/components/GuidePopover.tsx @@ -2,6 +2,7 @@ import { Box, Popover, PopoverArrow, + PopoverBody, PopoverContent, PopoverTrigger, } from '@chakra-ui/react'; @@ -34,13 +35,12 @@ const GuidePopover = ({ children, feature }: GuideProps) => { {children} e.preventDefault()} cursor="initial" > - -
          {text}
          + + {text}
          ); diff --git a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx index 1ea35f5881..b1ddaf45d2 100644 --- a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx +++ b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx @@ -5,11 +5,11 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, forwardRef, useDisclosure, } from '@chakra-ui/react'; import { cloneElement, ReactElement, ReactNode, useRef } from 'react'; +import IAIButton from './IAIButton'; type Props = { acceptButtonText?: string; @@ -58,7 +58,7 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { onClose={onClose} > - + {title} @@ -66,16 +66,12 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { {children} - - + diff --git a/invokeai/frontend/web/src/common/components/IAIButton.scss b/invokeai/frontend/web/src/common/components/IAIButton.scss deleted file mode 100644 index 90489a3bda..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIButton.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__button { - background-color: var(--btn-base-color); - place-content: center; - - &:hover { - background-color: var(--btn-base-color-hover); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIButton.tsx b/invokeai/frontend/web/src/common/components/IAIButton.tsx index d25e9decae..ca06e51bf0 100644 --- a/invokeai/frontend/web/src/common/components/IAIButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIButton.tsx @@ -10,19 +10,15 @@ import { ReactNode } from 'react'; export interface IAIButtonProps extends ButtonProps { tooltip?: string; tooltipProps?: Omit; - styleClass?: string; + isChecked?: boolean; children: ReactNode; } const IAIButton = forwardRef((props: IAIButtonProps, forwardedRef) => { - const { children, tooltip = '', tooltipProps, styleClass, ...rest } = props; + const { children, tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( - diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.scss b/invokeai/frontend/web/src/common/components/IAICheckbox.scss deleted file mode 100644 index 3b79c8f4db..0000000000 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.scss +++ /dev/null @@ -1,26 +0,0 @@ -.invokeai__checkbox { - .chakra-checkbox__label { - margin-top: 1px; - color: var(--text-color-secondary); - font-size: 0.9rem; - } - - .chakra-checkbox__control { - width: 1rem; - height: 1rem; - border: none; - border-radius: 0.2rem; - background-color: var(--input-checkbox-bg); - - svg { - width: 0.6rem; - height: 0.6rem; - stroke-width: 3px; - } - - &[data-checked] { - color: var(--text-color); - background-color: var(--input-checkbox-checked-bg); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx index b9c526cf7e..c04a383767 100644 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx +++ b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx @@ -3,13 +3,12 @@ import type { ReactNode } from 'react'; type IAICheckboxProps = CheckboxProps & { label: string | ReactNode; - styleClass?: string; }; const IAICheckbox = (props: IAICheckboxProps) => { - const { label, styleClass, ...rest } = props; + const { label, ...rest } = props; return ( - + {label} ); diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss b/invokeai/frontend/web/src/common/components/IAIColorPicker.scss deleted file mode 100644 index 4b6e29483b..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__color-picker { - .react-colorful__hue-pointer, - .react-colorful__saturation-pointer { - width: 1.5rem; - height: 1.5rem; - border-color: var(--white); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx index 619c5758e6..406966bf88 100644 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx @@ -1,16 +1,35 @@ +import { chakra, ChakraProps } from '@chakra-ui/react'; import { RgbaColorPicker } from 'react-colorful'; import { ColorPickerBaseProps, RgbaColor } from 'react-colorful/dist/types'; -type IAIColorPickerProps = ColorPickerBaseProps & { - styleClass?: string; +type IAIColorPickerProps = Omit, 'color'> & + ChakraProps & { + pickerColor: RgbaColor; + styleClass?: string; + }; + +const ChakraRgbaColorPicker = chakra(RgbaColorPicker, { + baseStyle: { paddingInline: 4 }, + shouldForwardProp: (prop) => !['pickerColor'].includes(prop), +}); + +const colorPickerStyles: NonNullable = { + width: 6, + height: 6, + borderColor: 'base.100', }; const IAIColorPicker = (props: IAIColorPickerProps) => { - const { styleClass, ...rest } = props; + const { styleClass = '', ...rest } = props; return ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.scss b/invokeai/frontend/web/src/common/components/IAIIconButton.scss deleted file mode 100644 index d55e5de4c5..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.scss +++ /dev/null @@ -1,82 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__icon-button { - background: var(--btn-base-color); - cursor: pointer; - - &:hover { - background-color: var(--btn-base-color-hover); - } - - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - - &[disabled] { - cursor: not-allowed; - } - - &[data-variant='link'] { - background: none; - &:hover { - background: none; - } - } - - // Check Box Style - &[data-as-checkbox='true'] { - background-color: var(--btn-base-color); - border: 3px solid var(--btn-base-color); - - svg { - fill: var(--text-color); - } - - &:hover { - background-color: var(--btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - - &[data-selected='true'] { - border-color: var(--accent-color); - svg { - fill: var(--accent-color-hover); - } - &:hover { - svg { - fill: var(--accent-color-hover); - } - } - } - } - - &[data-alert='true'] { - animation-name: pulseColor; - animation-duration: 1s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - - &:hover { - animation: none; - background-color: var(--accent-color-hover); - } - } -} - -@keyframes pulseColor { - 0% { - background-color: var(--accent-color); - } - 50% { - background-color: var(--accent-color-dim); - } - 100% { - background-color: var(--accent-color); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx index 3eedae8e14..4e6e3d7643 100644 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx @@ -7,22 +7,13 @@ import { } from '@chakra-ui/react'; export type IAIIconButtonProps = IconButtonProps & { - styleClass?: string; tooltip?: string; tooltipProps?: Omit; - asCheckbox?: boolean; isChecked?: boolean; }; const IAIIconButton = forwardRef((props: IAIIconButtonProps, forwardedRef) => { - const { - tooltip = '', - styleClass, - tooltipProps, - asCheckbox, - isChecked, - ...rest - } = props; + const { tooltip = '', tooltipProps, isChecked, ...rest } = props; return ( { > diff --git a/invokeai/frontend/web/src/common/components/IAIInput.scss b/invokeai/frontend/web/src/common/components/IAIInput.scss deleted file mode 100644 index ac073fd578..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIInput.scss +++ /dev/null @@ -1,33 +0,0 @@ -.input { - display: grid; - grid-template-columns: max-content auto; - column-gap: 1rem; - align-items: center; - - .input-label { - color: var(--text-color-secondary); - } - - .input-entry { - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.2rem; - font-weight: bold; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - - &[aria-invalid='true'] { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIInput.tsx b/invokeai/frontend/web/src/common/components/IAIInput.tsx index 50f78f30f1..e0d0536c03 100644 --- a/invokeai/frontend/web/src/common/components/IAIInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAIInput.tsx @@ -1,47 +1,37 @@ -import { FormControl, FormLabel, Input, InputProps } from '@chakra-ui/react'; +import { + FormControl, + FormControlProps, + FormLabel, + Input, + InputProps, +} from '@chakra-ui/react'; import { ChangeEvent } from 'react'; interface IAIInputProps extends InputProps { - styleClass?: string; label?: string; - width?: string | number; value?: string; size?: string; onChange?: (e: ChangeEvent) => void; + formControlProps?: Omit; } export default function IAIInput(props: IAIInputProps) { const { label = '', - styleClass, isDisabled = false, - fontSize = 'sm', - width, - size = 'sm', isInvalid, + formControlProps, ...rest } = props; return ( - {label !== '' && ( - - {label} - - )} - + {label !== '' && {label}} + ); } diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.scss b/invokeai/frontend/web/src/common/components/IAINumberInput.scss deleted file mode 100644 index aab88f1021..0000000000 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.scss +++ /dev/null @@ -1,66 +0,0 @@ -.invokeai__number-input-form-control { - display: flex; - align-items: center; - column-gap: 1rem; - - .invokeai__number-input-form-label { - color: var(--text-color-secondary); - - &[data-focus] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] + .invokeai__number-input-root { - outline: none; - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - } - - .invokeai__number-input-root { - height: 2rem; - display: grid; - grid-template-columns: auto max-content; - column-gap: 0.5rem; - align-items: center; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - border-radius: 0.3rem; - } - - .invokeai__number-input-field { - border: none; - font-weight: bold; - width: 100%; - height: auto; - font-size: 0.9rem; - padding: 0 0.5rem; - - &:focus { - outline: none; - box-shadow: none; - } - - &:disabled { - opacity: 0.2; - } - } - .invokeai__number-input-stepper { - display: grid; - padding-right: 0.5rem; - - .invokeai__number-input-stepper-button { - border: none; - // expand arrow hitbox - padding: 0 0.5rem; - margin: 0 -0.5rem; - - svg { - width: 10px; - height: 10px; - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx index a88c246c2a..cfe06aa727 100644 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx @@ -9,6 +9,7 @@ import { NumberInputField, NumberInputFieldProps, NumberInputProps, + NumberInputStepper, NumberInputStepperProps, Tooltip, TooltipProps, @@ -20,10 +21,7 @@ import { FocusEvent, useEffect, useState } from 'react'; const numberStringRegex = /^-?(0\.)?\.?$/; interface Props extends Omit { - styleClass?: string; label?: string; - labelFontSize?: string | number; - width?: string | number; showStepper?: boolean; value?: number; onChange: (v: number) => void; @@ -45,12 +43,8 @@ interface Props extends Omit { const IAINumberInput = (props: Props) => { const { label, - labelFontSize = 'sm', - styleClass, isDisabled = false, showStepper = true, - width, - textAlign, isInvalid, value, onChange, @@ -119,29 +113,10 @@ const IAINumberInput = (props: Props) => { - {label && ( - - {label} - - )} + {label && {label}} { clampValueOnBlur={false} onChange={handleOnChange} onBlur={handleBlur} - width={width} {...rest} > - + {showStepper && ( -
          - - -
          + + + + )}
          diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.scss b/invokeai/frontend/web/src/common/components/IAIPopover.scss deleted file mode 100644 index ab2ac26b3a..0000000000 --- a/invokeai/frontend/web/src/common/components/IAIPopover.scss +++ /dev/null @@ -1,12 +0,0 @@ -.invokeai__popover-content { - min-width: unset; - width: unset; - padding: 1rem; - border-radius: 0.5rem; - background-color: var(--background-color); - border: 2px solid var(--border-color); - - .invokeai__popover-arrow { - background-color: var(--background-color) !important; - } -} diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.tsx b/invokeai/frontend/web/src/common/components/IAIPopover.tsx index 38a2a24303..c58accebe4 100644 --- a/invokeai/frontend/web/src/common/components/IAIPopover.tsx +++ b/invokeai/frontend/web/src/common/components/IAIPopover.tsx @@ -12,7 +12,6 @@ type IAIPopoverProps = PopoverProps & { triggerComponent: ReactNode; triggerContainerProps?: BoxProps; children: ReactNode; - styleClass?: string; hasArrow?: boolean; }; @@ -20,16 +19,16 @@ const IAIPopover = (props: IAIPopoverProps) => { const { triggerComponent, children, - styleClass, hasArrow = true, + isLazy = true, ...rest } = props; return ( - + {triggerComponent} - - {hasArrow && } + + {hasArrow && } {children} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.scss b/invokeai/frontend/web/src/common/components/IAISelect.scss deleted file mode 100644 index 8891b3b11e..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISelect.scss +++ /dev/null @@ -1,31 +0,0 @@ -@use '../../styles/Mixins/' as *; - -.invokeai__select { - display: flex; - column-gap: 1rem; - align-items: center; - - .invokeai__select-label { - color: var(--text-color-secondary); - } - - .invokeai__select-picker { - border: 2px solid var(--border-color); - background-color: var(--background-color-secondary); - font-weight: bold; - font-size: 0.9rem; - height: 2rem; - border-radius: 0.2rem; - - &:focus { - outline: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - } - - .invokeai__select-option { - background-color: var(--background-color-secondary); - color: var(--text-color-secondary); - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.tsx b/invokeai/frontend/web/src/common/components/IAISelect.tsx index fa25b8f17f..caff77ed17 100644 --- a/invokeai/frontend/web/src/common/components/IAISelect.tsx +++ b/invokeai/frontend/web/src/common/components/IAISelect.tsx @@ -10,7 +10,6 @@ import { MouseEvent } from 'react'; type IAISelectProps = SelectProps & { label?: string; - styleClass?: string; tooltip?: string; tooltipProps?: Omit; validValues: @@ -21,21 +20,11 @@ type IAISelectProps = SelectProps & { * Customized Chakra FormControl + Select multi-part component. */ const IAISelect = (props: IAISelectProps) => { - const { - label, - isDisabled, - validValues, - tooltip, - tooltipProps, - size = 'sm', - fontSize = 'sm', - styleClass, - ...rest - } = props; + const { label, isDisabled, validValues, tooltip, tooltipProps, ...rest } = + props; return ( ) => { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); @@ -43,36 +32,16 @@ const IAISelect = (props: IAISelectProps) => { e.nativeEvent.cancelBubble = true; }} > - {label && ( - - {label} - - )} + {label && {label}} - {validValues.map((opt) => { return typeof opt === 'string' || typeof opt === 'number' ? ( - ) : ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx index c9eb07d2d3..7e1d2654e3 100644 --- a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx +++ b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx @@ -4,14 +4,15 @@ import { MenuItem, MenuList, MenuProps, - MenuButtonProps, MenuListProps, MenuItemProps, + IconButton, + Button, + IconButtonProps, + ButtonProps, } from '@chakra-ui/react'; import { MouseEventHandler, ReactNode } from 'react'; import { MdArrowDropDown, MdArrowDropUp } from 'react-icons/md'; -import IAIButton from './IAIButton'; -import IAIIconButton from './IAIIconButton'; interface IAIMenuItem { item: ReactNode | string; @@ -22,9 +23,10 @@ interface IAIMenuProps { menuType?: 'icon' | 'regular'; buttonText?: string; iconTooltip?: string; + isLazy?: boolean; menuItems: IAIMenuItem[]; menuProps?: MenuProps; - menuButtonProps?: MenuButtonProps; + menuButtonProps?: IconButtonProps | ButtonProps; menuListProps?: MenuListProps; menuItemProps?: MenuItemProps; } @@ -34,6 +36,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { menuType = 'icon', iconTooltip, buttonText, + isLazy = true, menuItems, menuProps, menuButtonProps, @@ -48,13 +51,7 @@ export default function IAISimpleMenu(props: IAIMenuProps) { {menuItem.item} @@ -65,34 +62,20 @@ export default function IAISimpleMenu(props: IAIMenuProps) { }; return ( -
          + {({ isOpen }) => ( <> : } - padding={menuType === 'regular' ? '0 0.5rem' : 0} - backgroundColor="var(--btn-base-color)" - _hover={{ - backgroundColor: 'var(--btn-base-color-hover)', - }} - minWidth="1rem" - minHeight="1rem" - fontSize="1.5rem" + paddingX={0} + paddingY={menuType === 'regular' ? 2 : 0} {...menuButtonProps} > {menuType === 'regular' && buttonText} - + {renderMenuItems()} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.scss b/invokeai/frontend/web/src/common/components/IAISlider.scss deleted file mode 100644 index 21d62d4b07..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISlider.scss +++ /dev/null @@ -1,60 +0,0 @@ -.invokeai__slider-component { - padding-bottom: 0.5rem; - border-radius: 0.5rem; - - .invokeai__slider-component-label { - min-width: max-content; - margin: 0; - font-weight: bold; - color: var(--text-color-secondary); - } - - .invokeai__slider_track { - background-color: var(--tab-color); - } - - .invokeai__slider_track-filled { - background-color: var(--slider-color); - } - - .invokeai__slider-thumb { - width: 4px; - } - - .invokeai__slider-mark { - font-size: 0.75rem; - font-weight: bold; - color: var(--slider-mark-color); - margin-top: 0.3rem; - } - - .invokeai__slider-number-input { - border: none; - font-size: 0.9rem; - font-weight: bold; - height: 2rem; - background-color: var(--background-color-secondary); - border: 2px solid var(--border-color); - - &:focus { - outline: none; - box-shadow: none; - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &:disabled { - opacity: 0.2; - } - } - - .invokeai__slider-number-stepper { - border: none; - } - - &[data-markers='true'] { - .invokeai__slider_container { - margin-top: -1rem; - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.tsx b/invokeai/frontend/web/src/common/components/IAISlider.tsx index 81e0943c4b..1acc64db23 100644 --- a/invokeai/frontend/web/src/common/components/IAISlider.tsx +++ b/invokeai/frontend/web/src/common/components/IAISlider.tsx @@ -37,11 +37,8 @@ export type IAIFullSliderProps = { step?: number; onChange: (v: number) => void; withSliderMarks?: boolean; - sliderMarkLeftOffset?: number; - sliderMarkRightOffset?: number; withInput?: boolean; isInteger?: boolean; - width?: string | number; inputWidth?: string | number; inputReadOnly?: boolean; withReset?: boolean; @@ -52,7 +49,6 @@ export type IAIFullSliderProps = { tooltipSuffix?: string; hideTooltip?: boolean; isCompact?: boolean; - styleClass?: string; sliderFormControlProps?: FormControlProps; sliderFormLabelProps?: FormLabelProps; sliderMarkProps?: Omit; @@ -74,14 +70,11 @@ export default function IAISlider(props: IAIFullSliderProps) { max = 100, step = 1, onChange, - width = '100%', tooltipSuffix = '', withSliderMarks = false, - sliderMarkLeftOffset = 0, - sliderMarkRightOffset = -1, withInput = false, isInteger = false, - inputWidth = '5.5rem', + inputWidth = 16, inputReadOnly = false, withReset = false, hideTooltip = false, @@ -90,7 +83,6 @@ export default function IAISlider(props: IAIFullSliderProps) { isResetDisabled, isSliderDisabled, isInputDisabled, - styleClass, sliderFormControlProps, sliderFormLabelProps, sliderMarkProps, @@ -142,19 +134,13 @@ export default function IAISlider(props: IAIFullSliderProps) { return ( - + {label} @@ -182,23 +164,23 @@ export default function IAISlider(props: IAIFullSliderProps) { onMouseLeave={() => setShowTooltip(false)} focusThumbOnChange={false} isDisabled={isSliderDisabled} - width={width} + // width={width} {...rest} > {withSliderMarks && ( <> {min} {max} @@ -206,23 +188,19 @@ export default function IAISlider(props: IAIFullSliderProps) { )} - - + + @@ -234,13 +212,10 @@ export default function IAISlider(props: IAIFullSliderProps) { value={localInputValue} onChange={handleInputChange} onBlur={handleInputBlur} - className="invokeai__slider-number-field" isDisabled={isInputDisabled} {...sliderNumberInputProps} > onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> onChange(Number(localInputValue))} - className="invokeai__slider-number-stepper" /> diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.scss b/invokeai/frontend/web/src/common/components/IAISwitch.scss deleted file mode 100644 index 168b741520..0000000000 --- a/invokeai/frontend/web/src/common/components/IAISwitch.scss +++ /dev/null @@ -1,24 +0,0 @@ -.invokeai__switch-form-control { - .invokeai__switch-form-label { - color: var(--text-color-secondary); - } - - .invokeai__switch-root { - span { - background-color: var(--switch-bg-color); - span { - background-color: var(--white); - } - } - - &[data-checked] { - span { - background: var(--switch-bg-active-color); - - span { - background-color: var(--white); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.tsx b/invokeai/frontend/web/src/common/components/IAISwitch.tsx index 9d3b4f4415..5ef568f28a 100644 --- a/invokeai/frontend/web/src/common/components/IAISwitch.tsx +++ b/invokeai/frontend/web/src/common/components/IAISwitch.tsx @@ -10,7 +10,6 @@ import { interface Props extends SwitchProps { label?: string; width?: string | number; - styleClass?: string; formControlProps?: FormControlProps; formLabelProps?: FormLabelProps; } @@ -25,34 +24,22 @@ const IAISwitch = (props: Props) => { width = 'auto', formControlProps, formLabelProps, - styleClass, ...rest } = props; return ( - + {label} - + ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx index 39e6578cc8..28d9d32a71 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Box, Flex, Heading } from '@chakra-ui/react'; import { useHotkeys } from 'react-hotkeys-hook'; type ImageUploadOverlayProps = { @@ -11,7 +11,7 @@ type ImageUploadOverlayProps = { const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { const { isDragAccept, - isDragReject, + isDragReject: _isDragAccept, overlaySecondaryText, setIsHandlingUpload, } = props; @@ -21,19 +21,42 @@ const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { }); return ( -
          - {isDragAccept && ( -
          + + + {isDragAccept ? ( Upload Image{overlaySecondaryText} -
          - )} - {isDragReject && ( -
          - Invalid Upload - Must be single JPEG or PNG image -
          - )} -
          + ) : ( + <> + Invalid Upload + Must be single JPEG or PNG image + + )} + + ); }; export default ImageUploadOverlay; diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.scss b/invokeai/frontend/web/src/common/components/ImageUploader.scss deleted file mode 100644 index ee4b31ace7..0000000000 --- a/invokeai/frontend/web/src/common/components/ImageUploader.scss +++ /dev/null @@ -1,74 +0,0 @@ -.dropzone-container { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - z-index: 999; - backdrop-filter: blur(20px); - - .dropzone-overlay { - opacity: 0.5; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - row-gap: 1rem; - align-items: center; - justify-content: center; - background-color: var(--background-color); - - &.is-drag-accept { - box-shadow: inset 0 0 20rem 1rem var(--accent-color); - } - - &.is-drag-reject { - box-shadow: inset 0 0 20rem 1rem var(--status-bad-color); - } - - &.is-handling-upload { - box-shadow: inset 0 0 20rem 1rem var(--status-working-color); - } - } -} - -.image-uploader-button-outer { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - border-radius: 0.5rem; - color: var(--tab-list-text-inactive); - background-color: var(--background-color); - - &:hover { - background-color: var(--background-color-light); - } -} - -.image-upload-button-inner { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; -} - -.image-upload-button { - display: flex; - flex-direction: column; - row-gap: 2rem; - align-items: center; - justify-content: center; - text-align: center; - - svg { - width: 4rem; - height: 4rem; - } - h2 { - font-size: 1.2rem; - } -} diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.tsx b/invokeai/frontend/web/src/common/components/ImageUploader.tsx index 40e31c3947..5397de6ea6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploader.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploader.tsx @@ -1,4 +1,4 @@ -import { useToast } from '@chakra-ui/react'; +import { Box, useToast } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import useImageUploader from 'common/hooks/useImageUploader'; @@ -139,7 +139,7 @@ const ImageUploader = (props: ImageUploaderProps) => { return ( -
          { // Bail out if user hits spacebar - do not open the uploader @@ -156,7 +156,7 @@ const ImageUploader = (props: ImageUploaderProps) => { setIsHandlingUpload={setIsHandlingUpload} /> )} -
          +
          ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx index 1a989b8c8e..6179efe5e6 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx @@ -1,4 +1,4 @@ -import { Heading } from '@chakra-ui/react'; +import { Flex, Heading, Icon } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useContext } from 'react'; import { FaUpload } from 'react-icons/fa'; @@ -16,15 +16,38 @@ const ImageUploaderButton = (props: ImageUploaderButtonProps) => { }; return ( -
          -
          - - Click or Drag and Drop -
          -
          + + + Click or Drag and Drop + + ); }; diff --git a/invokeai/frontend/web/src/common/components/SubItemHook.tsx b/invokeai/frontend/web/src/common/components/SubItemHook.tsx deleted file mode 100644 index cca79a12ef..0000000000 --- a/invokeai/frontend/web/src/common/components/SubItemHook.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Box } from '@chakra-ui/react'; - -interface SubItemHookProps { - active?: boolean; - width?: string | number; - height?: string | number; - side?: 'left' | 'right'; -} - -export default function SubItemHook(props: SubItemHookProps) { - const { - active = true, - width = '1rem', - height = '1.3rem', - side = 'right', - } = props; - return ( - <> - {side === 'right' && ( - - )} - {side === 'left' && ( - - )} - - ); -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx index 65dc277ed7..c86aa767dd 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx @@ -1,11 +1,27 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function NodesWIP() { const { t } = useTranslation(); return ( -
          -

          {t('common.nodes')}

          -

          {t('common.nodesDesc')}

          -
          + + + {t('common.nodes')} + + {t('common.nodesDesc')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx index fbdfb4b8a5..c98fa5a82b 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx @@ -1,13 +1,29 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export const PostProcessingWIP = () => { const { t } = useTranslation(); return ( -
          -

          {t('common.postProcessing')}

          -

          {t('common.postProcessDesc1')}

          -

          {t('common.postProcessDesc2')}

          -

          {t('common.postProcessDesc3')}

          -
          + + + {t('common.postProcessing')} + + {t('common.postProcessDesc1')} + {t('common.postProcessDesc2')} + {t('common.postProcessDesc3')} + + + ); }; diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx index ff564234a5..23c3209932 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx @@ -1,16 +1,28 @@ +import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; +import WorkInProgress from './WorkInProgress'; export default function TrainingWIP() { const { t } = useTranslation(); return ( -
          -

          {t('common.training')}

          -

          - {t('common.trainingDesc1')} -
          -
          - {t('common.trainingDesc2')} -

          -
          + + + {t('common.training')} + + {t('common.trainingDesc1')} + {t('common.trainingDesc2')} + + + ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss deleted file mode 100644 index 2a17c7bd0a..0000000000 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss +++ /dev/null @@ -1,24 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.work-in-progress { - display: grid; - width: 100%; - height: $app-content-height; - grid-auto-rows: max-content; - background-color: var(--background-color-secondary); - border-radius: 0.4rem; - place-content: center; - place-items: center; - row-gap: 1rem; - - h1 { - font-size: 2rem; - font-weight: bold; - } - - p { - text-align: center; - max-width: 50rem; - color: var(--subtext-color-bright); - } -} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx new file mode 100644 index 0000000000..deb9110d56 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx @@ -0,0 +1,24 @@ +import { Flex } from '@chakra-ui/react'; +import { ReactNode } from 'react'; + +type WorkInProgressProps = { + children: ReactNode; +}; + +const WorkInProgress = (props: WorkInProgressProps) => { + const { children } = props; + + return ( + + {children} + + ); +}; + +export default WorkInProgress; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss deleted file mode 100644 index 4a1418392e..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss +++ /dev/null @@ -1,62 +0,0 @@ -.invokeai__slider-root { - position: relative; - display: flex; - align-items: center; - user-select: none; - touch-action: none; - width: 200px; - - &[data-orientation='horizontal'] { - height: 20px; - } - - &[data-orientation='vertical'] { - width: 20px; - height: 200px; - } - - .invokeai__slider-track { - background-color: black; - position: relative; - flex-grow: 1; - border-radius: 9999px; - - &[data-orientation='horizontal'] { - height: 0.25rem; - } - - &[data-orientation='vertical'] { - width: 0.25rem; - } - - .invokeai__slider-range { - position: absolute; - background-color: white; - border-radius: 9999px; - height: 100%; - } - } - - .invokeai__slider-thumb { - display: flex; - align-items: center; - - .invokeai__slider-thumb-div { - all: unset; - display: block; - width: 1rem; - height: 1rem; - background-color: white; - box-shadow: 0 2px 10px rgba(0, 2, 10, 0.3); - border-radius: 100%; - - &:hover { - background-color: violet; - } - - &:focus { - box-shadow: 0 0 0 5px rgba(0, 2, 10, 0.3); - } - } - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx deleted file mode 100644 index 52faeb18d3..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { Tooltip } from '@chakra-ui/react'; -import * as Slider from '@radix-ui/react-slider'; - -type IAISliderProps = Slider.SliderProps & { - value: number[]; - tooltipLabel?: string; - orientation?: 'horizontal' | 'vertial'; - trackProps?: Slider.SliderTrackProps; - rangeProps?: Slider.SliderRangeProps; - thumbProps?: Slider.SliderThumbProps; -}; - -const _IAISlider = (props: IAISliderProps) => { - const { - value, - tooltipLabel, - orientation, - trackProps, - rangeProps, - thumbProps, - ...rest - } = props; - return ( - - - - - - -
          - {/*}> - {value && value[0]} - */} - - - - ); -}; - -export default _IAISlider; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss deleted file mode 100644 index 7d0ca8455c..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss +++ /dev/null @@ -1,8 +0,0 @@ -.invokeai__tooltip-content { - padding: 0.5rem; - background-color: grey; - border-radius: 0.25rem; - .invokeai__tooltip-arrow { - background-color: grey; - } -} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx deleted file mode 100644 index 539751a8ca..0000000000 --- a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import * as Tooltip from '@radix-ui/react-tooltip'; -import { ReactNode } from 'react'; - -type IAITooltipProps = Tooltip.TooltipProps & { - trigger: ReactNode; - children: ReactNode; - triggerProps?: Tooltip.TooltipTriggerProps; - contentProps?: Tooltip.TooltipContentProps; - arrowProps?: Tooltip.TooltipArrowProps; -}; - -const IAITooltip = (props: IAITooltipProps) => { - const { trigger, children, triggerProps, contentProps, arrowProps, ...rest } = - props; - - return ( - - - {trigger} - - { - e.preventDefault(); - }} - className="invokeai__tooltip-content" - > - - {children} - - - - - ); -}; - -export default IAITooltip; diff --git a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx index 711d23366a..4898eee899 100644 --- a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx @@ -13,5 +13,8 @@ const ImageToImageIcon = createIcon({ /> ), + defaultProps: { + boxSize: '24px', + }, }); export default ImageToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx index 273deaa8cd..539c33f998 100644 --- a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx @@ -11,6 +11,9 @@ const NodesIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default NodesIcon; diff --git a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx index 29f474b079..b4000568b2 100644 --- a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx @@ -11,6 +11,9 @@ const PostprocessingIcon = createIcon({ d="M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default PostprocessingIcon; diff --git a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx index f6148ea49c..325ea54dda 100644 --- a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx @@ -13,6 +13,9 @@ const TextToImageIcon = createIcon({ ), + defaultProps: { + boxSize: '24px', + }, }); export default TextToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx index a6bf178aab..f925013138 100644 --- a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx @@ -11,6 +11,9 @@ const TrainingIcon = createIcon({ d="M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default TrainingIcon; diff --git a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx index daa8ecf8a9..3cedec04a4 100644 --- a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx @@ -11,6 +11,9 @@ const UnifiedCanvasIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z" /> ), + defaultProps: { + boxSize: '24px', + }, }); export default UnifiedCanvasIcon; diff --git a/invokeai/frontend/web/src/common/util/parameterTranslation.ts b/invokeai/frontend/web/src/common/util/parameterTranslation.ts index f703a96f4a..07b8ac8ea1 100644 --- a/invokeai/frontend/web/src/common/util/parameterTranslation.ts +++ b/invokeai/frontend/web/src/common/util/parameterTranslation.ts @@ -144,8 +144,8 @@ export const frontendToBackendParameters = ( variationAmount, width, shouldUseSymmetry, - horizontalSymmetryTimePercentage, - verticalSymmetryTimePercentage, + horizontalSymmetrySteps, + verticalSymmetrySteps, } = generationState; const { @@ -185,17 +185,17 @@ export const frontendToBackendParameters = ( // Symmetry Settings if (shouldUseSymmetry) { - if (horizontalSymmetryTimePercentage > 0) { + if (horizontalSymmetrySteps > 0) { generationParameters.h_symmetry_time_pct = Math.max( 0, - Math.min(1, horizontalSymmetryTimePercentage / steps) + Math.min(1, horizontalSymmetrySteps / steps) ); } - if (horizontalSymmetryTimePercentage > 0) { + if (verticalSymmetrySteps > 0) { generationParameters.v_symmetry_time_pct = Math.max( 0, - Math.min(1, verticalSymmetryTimePercentage / steps) + Math.min(1, verticalSymmetrySteps / steps) ); } } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx index b57bc1cc16..657f407b5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx @@ -1,3 +1,4 @@ +import { Box, chakra, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { @@ -88,6 +89,10 @@ const selector = createSelector( } ); +const ChakraStage = chakra(Stage, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); + const IAICanvas = () => { const { isMaskEnabled, @@ -135,14 +140,26 @@ const IAICanvas = () => { useCanvasDragMove(); return ( -
          -
          - + + { visible={shouldShowBoundingBox && !isStaging} /> - + -
          -
          + + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx index 9ffed8d70a..e38debae83 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx @@ -1,7 +1,7 @@ // Grid drawing adapted from https://longviewcoder.com/2021/12/08/konva-a-better-grid/ -import { useColorMode } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; +import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { isEqual, range } from 'lodash'; @@ -26,10 +26,13 @@ const gridLinesColor = { dark: 'rgba(255, 255, 255, 0.2)', green: 'rgba(255, 255, 255, 0.2)', light: 'rgba(0, 0, 0, 0.2)', + ocean: 'rgba(136, 148, 184, 0.2)', }; const IAICanvasGrid = () => { - const { colorMode } = useColorMode(); + const currentTheme = useAppSelector( + (state: RootState) => state.ui.currentTheme + ); const { stageScale, stageCoordinates, stageDimensions } = useAppSelector(selector); const [gridLines, setGridLines] = useState([]); @@ -42,7 +45,8 @@ const IAICanvasGrid = () => { ); useLayoutEffect(() => { - const gridLineColor = gridLinesColor[colorMode]; + const gridLineColor = + gridLinesColor[currentTheme as keyof typeof gridLinesColor]; const { width, height } = stageDimensions; const { x, y } = stageCoordinates; @@ -108,7 +112,7 @@ const IAICanvasGrid = () => { )); setGridLines(xLines.concat(yLines)); - }, [stageScale, stageCoordinates, stageDimensions, colorMode, unscale]); + }, [stageScale, stageCoordinates, stageDimensions, currentTheme, unscale]); return {gridLines}; }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx index 9e07dce992..3062abae91 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx @@ -1,4 +1,4 @@ -import { Spinner } from '@chakra-ui/react'; +import { Flex, Spinner } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -70,9 +70,19 @@ const IAICanvasResizer = () => { ]); return ( -
          + -
          + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx index 60af853289..74d6382308 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx @@ -115,7 +115,7 @@ const IAICanvasStagingAreaToolbar = () => { return ( { aria-label={`${t('unifiedCanvas.previous')} (Left)`} icon={} onClick={handlePrevImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnFirstImage} /> { aria-label={`${t('unifiedCanvas.next')} (Right)`} icon={} onClick={handleNextImage} - data-selected={true} + colorScheme="accent" isDisabled={isOnLastImage} /> { aria-label={`${t('unifiedCanvas.accept')} (Enter)`} icon={} onClick={handleAccept} - data-selected={true} + colorScheme="accent" /> { onClick={() => dispatch(setShouldShowStagingImage(!shouldShowStagingImage)) } - data-selected={true} + colorScheme="accent" /> { saveStagingAreaImageToGallery(currentStagingAreaImage.image.url) ) } - data-selected={true} + colorScheme="accent" /> } onClick={() => dispatch(discardStagedImages())} - data-selected={true} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" fontSize={20} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx index 83ee94520a..e886a3ad5d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx @@ -1,3 +1,4 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -7,6 +8,8 @@ import { useTranslation } from 'react-i18next'; import roundToHundreth from '../util/roundToHundreth'; import IAICanvasStatusTextCursorPos from './IAICanvasStatusText/IAICanvasStatusTextCursorPos'; +const warningColor = 'var(--invokeai-colors-warning-500)'; + const selector = createSelector( [canvasSelector], (canvas) => { @@ -34,11 +37,10 @@ const selector = createSelector( (boundingBoxScaleMethod === 'manual' && scaledBoxWidth * scaledBoxHeight < 512 * 512) ) { - boundingBoxColor = 'var(--status-working-color)'; + boundingBoxColor = warningColor; } - const activeLayerColor = - layer === 'mask' ? 'var(--status-working-color)' : 'inherit'; + const activeLayerColor = layer === 'mask' ? warningColor : 'inherit'; return { activeLayerColor, @@ -87,55 +89,72 @@ const IAICanvasStatusText = () => { const { t } = useTranslation(); return ( -
          -
          + {`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`}
          -
          {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`}
          + >{`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`} + {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`} {shouldPreserveMaskedArea && ( -
          Preserve Masked Area: On -
          + )} {shouldShowBoundingBox && ( -
          {`${t( - 'unifiedcanvas:boundingBox' - )}: ${boundingBoxDimensionsString}`}
          + 'unifiedCanvas.boundingBox' + )}: ${boundingBoxDimensionsString}`} )} {shouldShowScaledBoundingBox && ( -
          {`${t( - 'unifiedcanvas:scaledBoundingBox' - )}: ${scaledBoundingBoxDimensionsString}`}
          + 'unifiedCanvas.scaledBoundingBox' + )}: ${scaledBoundingBoxDimensionsString}`} )} {shouldShowCanvasDebugInfo && ( <> -
          {`${t( - 'unifiedcanvas:boundingBoxPosition' - )}: ${boundingBoxCoordinatesString}`}
          -
          {`${t( - 'unifiedcanvas:canvasDimensions' - )}: ${canvasDimensionsString}`}
          -
          {`${t( - 'unifiedcanvas:canvasPosition' - )}: ${canvasCoordinatesString}`}
          + {`${t( + 'unifiedCanvas.boundingBoxPosition' + )}: ${boundingBoxCoordinatesString}`} + {`${t( + 'unifiedCanvas.canvasDimensions' + )}: ${canvasDimensionsString}`} + {`${t( + 'unifiedCanvas.canvasPosition' + )}: ${canvasCoordinatesString}`} )} -
          +
          ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx index c77d0cae65..2570290393 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -33,8 +34,8 @@ export default function IAICanvasStatusTextCursorPos() { const { t } = useTranslation(); return ( -
          {`${t( - 'unifiedcanvas:cursorPosition' - )}: ${cursorCoordinatesString}`}
          + {`${t( + 'unifiedCanvas.cursorPosition' + )}: ${cursorCoordinatesString}`} ); } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index bca6728b87..9326f52d2d 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -111,17 +111,13 @@ const IAICanvasMaskOptions = () => { aria-label={t('unifiedCanvas.maskingOptions')} tooltip={t('unifiedCanvas.maskingOptions')} icon={} - style={ - layer === 'mask' - ? { backgroundColor: 'var(--accent-color)' } - : { backgroundColor: 'var(--btn-base-color)' } - } + isChecked={layer === 'mask'} isDisabled={isStaging} /> } > - + { } /> dispatch(setMaskColor(newColor))} /> } onClick={handleClearMask}> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx index 72af7f8261..0457d8844c 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx @@ -97,7 +97,7 @@ const IAICanvasSettingsButtonPopover = () => { /> } > - + { aria-label={`${t('unifiedCanvas.brush')} (B)`} tooltip={`${t('unifiedCanvas.brush')} (B)`} icon={} - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -192,7 +192,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (E)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -214,7 +214,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} /> @@ -228,8 +228,8 @@ const IAICanvasToolChooserOptions = () => { /> } > - - + + { /> dispatch(setBrushColor(newColor))} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx index 29fdc40975..4e53039e38 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup } from '@chakra-ui/react'; +import { ButtonGroup, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -68,7 +68,7 @@ export const selector = createSelector( } ); -const IAICanvasOutpaintingControls = () => { +const IAICanvasToolbar = () => { const dispatch = useAppDispatch(); const { isProcessing, @@ -230,7 +230,12 @@ const IAICanvasOutpaintingControls = () => { }; return ( -
          + { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> { tooltip={`${t('unifiedCanvas.clearCanvas')}`} icon={} onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" isDisabled={isStaging} /> -
          +
          ); }; -export default IAICanvasOutpaintingControls; +export default IAICanvasToolbar; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss deleted file mode 100644 index a48454bb8c..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss +++ /dev/null @@ -1,32 +0,0 @@ -.current-image-options { - width: 100%; - display: flex; - justify-content: center; - align-items: center; - column-gap: 0.5em; - - .current-image-send-to-popover, - .current-image-postprocessing-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - max-width: 25rem; - } - - .current-image-send-to-popover { - .invokeai__button { - place-content: start; - } - } - - .chakra-popover__popper { - z-index: 11; - } - - .delete-image-btn { - background-color: var(--btn-base-color); - svg { - fill: var(--btn-delete-image); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx index 92d6aa6d06..be59962556 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { ButtonGroup, Link, useToast } from '@chakra-ui/react'; +import { ButtonGroup, Flex, FlexProps, Link, useToast } from '@chakra-ui/react'; import { runESRGAN, runFacetool } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -102,11 +102,13 @@ const currentImageButtonsSelector = createSelector( } ); +type CurrentImageButtonsProps = FlexProps; + /** * Row of buttons for common actions: * Use as init image, use all params, use seed, upscale, fix faces, details, delete. */ -const CurrentImageButtons = () => { +const CurrentImageButtons = (props: CurrentImageButtonsProps) => { const dispatch = useAppDispatch(); const { isProcessing, @@ -395,7 +397,14 @@ const CurrentImageButtons = () => { }; return ( -
          + { /> } > -
          + { {t('parameters.downloadImage')} -
          +
          } @@ -456,7 +471,7 @@ const CurrentImageButtons = () => { ? `${t('parameters.openInViewer')} (Z)` : `${t('parameters.closeViewer')} (Z)` } - data-selected={isLightboxOpen} + isChecked={isLightboxOpen} onClick={handleLightBox} /> @@ -501,7 +516,12 @@ const CurrentImageButtons = () => { /> } > -
          + { > {t('parameters.restoreFaces')} -
          + { /> } > -
          + { > {t('parameters.upscaleImage')} -
          +
          @@ -548,7 +573,7 @@ const CurrentImageButtons = () => { icon={} tooltip={`${t('parameters.info')} (I)`} aria-label={`${t('parameters.info')} (I)`} - data-selected={shouldShowImageDetails} + isChecked={shouldShowImageDetails} onClick={handleClickShowImageDetails} /> @@ -559,10 +584,10 @@ const CurrentImageButtons = () => { tooltip={`${t('parameters.deleteImage')} (Del)`} aria-label={`${t('parameters.deleteImage')} (Del)`} isDisabled={!currentImage || !isConnected || isProcessing} - style={{ backgroundColor: 'var(--btn-delete-image)' }} + colorScheme="error" /> -
          +
          ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss deleted file mode 100644 index 498da35ea6..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss +++ /dev/null @@ -1,83 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.current-image-area { - display: flex; - flex-direction: column; - height: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; -} - -.current-image-preview { - position: relative; - justify-content: center; - align-items: center; - display: flex; - width: 100%; - height: 100%; - - img { - border-radius: 0.5rem; - object-fit: contain; - max-width: 100%; - max-height: 100%; - height: auto; - position: absolute; - } -} - -.current-image-metadata { - grid-area: current-image-preview; -} - -.current-image-next-prev-buttons { - grid-area: current-image-content; - display: flex; - justify-content: space-between; - z-index: 1; - height: 100%; - width: 100%; - pointer-events: none; -} - -.next-prev-button-trigger-area { - width: 7rem; - height: 100%; - width: 15%; - display: grid; - align-items: center; - pointer-events: auto; - - &.prev-button-trigger-area { - justify-content: flex-start; - } - - &.next-button-trigger-area { - justify-content: flex-end; - } -} - -.next-prev-button { - font-size: 4rem; - fill: var(--white); - filter: drop-shadow(0 0 1rem var(--text-color-secondary)); - opacity: 70%; -} - -.current-image-display-placeholder { - background-color: var(--background-color-secondary); - display: grid; - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - border-radius: 0.5rem; - - svg { - width: 10rem; - height: 10rem; - color: var(--svg-color); - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx index a5e9683afd..6c46e14391 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx @@ -1,10 +1,6 @@ +import { Flex, Icon } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; -import { GalleryState } from 'features/gallery/store/gallerySlice'; -import { - activeTabNameSelector, - uiSelector, -} from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; import { MdPhoto } from 'react-icons/md'; @@ -13,14 +9,11 @@ import CurrentImageButtons from './CurrentImageButtons'; import CurrentImagePreview from './CurrentImagePreview'; export const currentImageDisplaySelector = createSelector( - [gallerySelector, uiSelector, activeTabNameSelector], - (gallery: GalleryState, ui, activeTabName) => { + [gallerySelector], + (gallery) => { const { currentImage, intermediateImage } = gallery; - const { shouldShowImageDetails } = ui; return { - activeTabName, - shouldShowImageDetails, hasAnImageToDisplay: currentImage || intermediateImage, }; }, @@ -35,23 +28,42 @@ export const currentImageDisplaySelector = createSelector( * Displays the current image if there is one, plus associated actions. */ const CurrentImageDisplay = () => { - const { hasAnImageToDisplay, activeTabName } = useAppSelector( - currentImageDisplaySelector - ); + const { hasAnImageToDisplay } = useAppSelector(currentImageDisplaySelector); return ( -
          + {hasAnImageToDisplay ? ( <> ) : ( -
          - -
          + + + )} -
          +
          ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx index 720df07f4a..0f9ffad325 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx @@ -1,47 +1,24 @@ -import { IconButton, Image } from '@chakra-ui/react'; +import { Flex, Image } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import { - GalleryCategory, - GalleryState, - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import { useAppSelector } from 'app/storeHooks'; +import { GalleryState } from 'features/gallery/store/gallerySlice'; import { uiSelector } from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; -import { useState } from 'react'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; import { gallerySelector } from '../store/gallerySelectors'; import ImageMetadataViewer from './ImageMetaDataViewer/ImageMetadataViewer'; +import NextPrevImageButtons from './NextPrevImageButtons'; export const imagesSelector = createSelector( [gallerySelector, uiSelector], (gallery: GalleryState, ui) => { - const { currentCategory, currentImage, intermediateImage } = gallery; + const { currentImage, intermediateImage } = gallery; const { shouldShowImageDetails } = ui; - const tempImages = - gallery.categories[ - currentImage ? (currentImage.category as GalleryCategory) : 'result' - ].images; - const currentImageIndex = tempImages.findIndex( - (i) => i.uuid === gallery?.currentImage?.uuid - ); - const imagesLength = tempImages.length; - return { imageToDisplay: intermediateImage ? intermediateImage : currentImage, isIntermediate: Boolean(intermediateImage), - viewerImageToDisplay: currentImage, - currentCategory, - isOnFirstImage: currentImageIndex === 0, - isOnLastImage: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, shouldShowImageDetails, - shouldShowPrevImageButton: currentImageIndex === 0, - shouldShowNextImageButton: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, }; }, { @@ -52,85 +29,44 @@ export const imagesSelector = createSelector( ); export default function CurrentImagePreview() { - const dispatch = useAppDispatch(); - - const { - isOnFirstImage, - isOnLastImage, - shouldShowImageDetails, - imageToDisplay, - isIntermediate, - } = useAppSelector(imagesSelector); - - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { shouldShowImageDetails, imageToDisplay, isIntermediate } = + useAppSelector(imagesSelector); return ( -
          + {imageToDisplay && ( )} - {!shouldShowImageDetails && ( -
          -
          - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> - )} -
          -
          - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
          -
          - )} + {!shouldShowImageDetails && } {shouldShowImageDetails && imageToDisplay && ( )} -
          +
          ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx index 8b759d9301..734dc3b682 100644 --- a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx @@ -5,11 +5,8 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - Button, + forwardRef, Flex, - FormControl, - FormLabel, - Switch, Text, useDisclosure, } from '@chakra-ui/react'; @@ -17,6 +14,8 @@ import { createSelector } from '@reduxjs/toolkit'; import * as InvokeAI from 'app/invokeai'; import { deleteImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; +import IAISwitch from 'common/components/IAISwitch'; import { systemSelector } from 'features/system/store/systemSelectors'; import { setShouldConfirmOnDelete, @@ -27,7 +26,6 @@ import { isEqual } from 'lodash'; import { ChangeEvent, cloneElement, - forwardRef, ReactElement, SyntheticEvent, useRef, @@ -110,7 +108,7 @@ const DeleteImageModal = forwardRef( onClose={onClose} > - + Delete image @@ -121,28 +119,20 @@ const DeleteImageModal = forwardRef( Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to. - - - Don't ask me again - - - +
          - - + diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss deleted file mode 100644 index b6563f4d7b..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss +++ /dev/null @@ -1,100 +0,0 @@ -.hoverable-image { - display: flex; - justify-content: center; - transition: transform 0.2s ease-out; - - &:hover { - cursor: pointer; - border-radius: 0.5rem; - z-index: 2; - } - - .hoverable-image-image { - width: 100%; - height: 100%; - max-width: 100%; - max-height: 100%; - } - - .hoverable-image-delete-button { - position: absolute; - top: 0.25rem; - right: 0.25rem; - } - - .hoverable-image-content { - display: flex; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - - .hoverable-image-check { - fill: var(--status-good-color); - } - } - - .hoverable-image-icons { - position: absolute; - bottom: -2rem; - display: grid; - width: min-content; - grid-template-columns: repeat(2, max-content); - border-radius: 0.4rem; - background-color: var(--background-color-secondary); - padding: 0.2rem; - gap: 0.2rem; - grid-auto-rows: max-content; - - button { - width: 12px; - height: 12px; - border-radius: 0.2rem; - padding: 10px 0; - flex-shrink: 2; - svg { - width: 12px; - height: 12px; - } - } - } -} - -.hoverable-image-context-menu { - z-index: 15; - padding: 0.4rem; - border-radius: 0.25rem; - background-color: var(--context-menu-bg-color); - box-shadow: var(--context-menu-box-shadow); - - [role='menuitem'] { - font-size: 0.8rem; - line-height: 1rem; - border-radius: 3px; - display: flex; - align-items: center; - height: 1.75rem; - padding: 0 0.5rem; - position: relative; - user-select: none; - cursor: pointer; - outline: none; - - &[data-disabled] { - color: grey; - pointer-events: none; - cursor: not-allowed; - } - - &[data-warning] { - color: var(--status-bad-color); - } - - &[data-highlighted] { - background-color: var(--context-menu-bg-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx index e3e136ea5b..0d034ed976 100644 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx @@ -1,9 +1,15 @@ -import { Box, Icon, IconButton, Image, useToast } from '@chakra-ui/react'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { - setCurrentImage, - setShouldHoldGalleryOpen, -} from 'features/gallery/store/gallerySlice'; + Box, + Flex, + Icon, + Image, + MenuItem, + MenuList, + useTheme, + useToast, +} from '@chakra-ui/react'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { setCurrentImage } from 'features/gallery/store/gallerySlice'; import { setAllImageToImageParameters, setAllParameters, @@ -13,8 +19,7 @@ import { import { DragEvent, memo, useState } from 'react'; import { FaCheck, FaTrashAlt } from 'react-icons/fa'; import DeleteImageModal from './DeleteImageModal'; - -import * as ContextMenu from '@radix-ui/react-context-menu'; +import { ContextMenu } from 'chakra-ui-contextmenu'; import * as InvokeAI from 'app/invokeai'; import { resizeAndScaleCanvas, @@ -24,6 +29,8 @@ import { hoverableImageSelector } from 'features/gallery/store/gallerySelectors' import { setActiveTab } from 'features/ui/store/uiSlice'; import { useTranslation } from 'react-i18next'; import useSetBothPrompts from 'features/parameters/hooks/usePrompt'; +import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; +import IAIIconButton from 'common/components/IAIIconButton'; interface HoverableImageProps { image: InvokeAI.Image; @@ -53,6 +60,7 @@ const HoverableImage = memo((props: HoverableImageProps) => { const [isHovered, setIsHovered] = useState(false); const toast = useToast(); + const { direction } = useTheme(); const { t } = useTranslation(); const setBothPrompts = useSetBothPrompts(); @@ -156,110 +164,146 @@ const HoverableImage = memo((props: HoverableImageProps) => { const handleLightBox = () => { dispatch(setCurrentImage(image)); + dispatch(setIsLightboxOpen(true)); }; return ( - { - dispatch(setShouldHoldGalleryOpen(open)); - }} + + menuProps={{ size: 'sm', isLazy: true }} + renderMenu={() => ( + + + {t('parameters.openInViewer')} + + + {t('parameters.usePrompt')} + + + + {t('parameters.useSeed')} + + + {t('parameters.useAll')} + + + {t('parameters.useInitImg')} + + + {t('parameters.sendToImg2Img')} + + + {t('parameters.sendToUnifiedCanvas')} + + + +

          {t('parameters.deleteImage')}

          +
          +
          +
          + )} > - + {(ref) => ( -
          + {isSelected && ( )} -
          +
          {isHovered && galleryImageMinimumWidth >= 64 && ( -
          + - } size="xs" - variant="imageHoverIconButton" fontSize={14} isDisabled={!mayDeleteImage} /> -
          + )} - - { - e.detail.originalEvent.preventDefault(); - }} - > - - {t('parameters.openInViewer')} - - - {t('parameters.usePrompt')} - - - - {t('parameters.useSeed')} - - - {t('parameters.useAll')} - - - {t('parameters.useInitImg')} - - - {t('parameters.sendToImg2Img')} - - - {t('parameters.sendToUnifiedCanvas')} - - - -

          {t('parameters.deleteImage')}

          -
          -
          -
          - + )} + ); }, memoEqualityCheck); diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css new file mode 100644 index 0000000000..559248dd0f --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css @@ -0,0 +1,35 @@ +.ltr-image-gallery-css-transition-enter { + transform: translateX(150%); +} + +.ltr-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.ltr-image-gallery-css-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-enter { + transform: translateX(-150%); +} + +.rtl-image-gallery-css-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-image-gallery-css-transition-exit { + transform: translateX(0); +} + +.rtl-image-gallery-css-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss deleted file mode 100644 index f12fcd418a..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss +++ /dev/null @@ -1,187 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.image-gallery-wrapper-enter { - transform: translateX(150%); -} - -.image-gallery-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper-exit { - transform: translateX(0); -} - -.image-gallery-wrapper-exit-active { - transform: translateX(150%); - transition: all 120ms ease-out; -} - -.image-gallery-wrapper { - &[data-pinned='false'] { - position: fixed; - height: 100vh; - top: 0; - right: 0; - - .image-gallery-popup { - border-radius: 0; - box-shadow: 0 0 1rem var(--text-color-a3); - .image-gallery-container { - max-height: calc($app-height + 5rem); - } - } - } - - .image-gallery-popup { - background-color: var(--background-color-secondary); - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - border-radius: 0.5rem; - border-left-width: 0.3rem; - - border-color: var(--tab-list-text-inactive); - - &[data-resize-alert='true'] { - border-color: var(--status-bad-color); - } - - .image-gallery-header { - display: flex; - align-items: center; - column-gap: 0.5rem; - justify-content: space-between; - - .image-gallery-header-right-icons { - display: flex; - flex-direction: row; - column-gap: 0.5rem; - } - - .image-gallery-icon-btn { - background-color: var(--btn-load-more); - &:hover { - background-color: var(--btn-load-more-hover); - } - } - - .image-gallery-settings-popover { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - div { - display: flex; - column-gap: 0.5rem; - align-items: center; - justify-content: space-between; - } - } - - h1 { - font-weight: bold; - } - } - - .image-gallery-container { - display: flex; - flex-direction: column; - max-height: $app-gallery-popover-height; - overflow-y: scroll; - @include HideScrollbar; - - .image-gallery-container-placeholder { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - background-color: var(--background-color); - border-radius: 0.5rem; - place-items: center; - padding: 2rem; - text-align: center; - - p { - color: var(--subtext-color-bright); - font-family: Inter; - } - - svg { - width: 4rem; - height: 4rem; - color: var(--svg-color); - } - } - - .image-gallery-load-more-btn { - background-color: var(--btn-load-more); - font-size: 0.85rem; - padding: 0.5rem; - margin-top: 1rem; - - &:disabled { - &:hover { - background-color: var(--btn-load-more); - } - } - - &:hover { - background-color: var(--btn-load-more-hover); - } - } - } - } -} - -.image-gallery-category-btn-group { - width: max-content; - column-gap: 0; - justify-content: stretch; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - flex-grow: 1; - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color-hover); - } - } - } -} - -// from https://css-tricks.com/a-grid-of-logos-in-squares/ -.image-gallery { - display: grid; - grid-gap: 0.5rem; - .hoverable-image { - padding: 0.5rem; - position: relative; - &::before { - // for apsect ratio - content: ''; - display: block; - padding-bottom: 100%; - } - .hoverable-image-image { - position: absolute; - max-width: 100%; - - // Alternate Version - // top: 0; - // bottom: 0; - // right: 0; - // left: 0; - // margin: auto; - - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx index 40de29dd36..1b14d9ff67 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx @@ -1,7 +1,14 @@ -import { Button } from '@chakra-ui/button'; import { NumberSize, Resizable } from 're-resizable'; -import { ButtonGroup } from '@chakra-ui/react'; +import { + Box, + ButtonGroup, + Flex, + Grid, + Icon, + chakra, + useTheme, +} from '@chakra-ui/react'; import { requestImages } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -17,7 +24,6 @@ import { setCurrentCategory, setGalleryImageMinimumWidth, setGalleryImageObjectFit, - setGalleryScrollPosition, setGalleryWidth, setShouldAutoSwitchToNewImages, setShouldHoldGalleryOpen, @@ -38,12 +44,19 @@ import React, { } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; -import { BiReset } from 'react-icons/bi'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { FaImage, FaUser, FaWrench } from 'react-icons/fa'; import { MdPhotoLibrary } from 'react-icons/md'; import { CSSTransition } from 'react-transition-group'; import HoverableImage from './HoverableImage'; +import { APP_GALLERY_HEIGHT_PINNED } from 'theme/util/constants'; + +import './ImageGallery.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; + +const ChakraResizeable = chakra(Resizable, { + shouldForwardProp: (prop) => !['sx'].includes(prop), +}); const GALLERY_SHOW_BUTTONS_MIN_WIDTH = 320; const GALLERY_IMAGE_WIDTH_OFFSET = 40; @@ -64,6 +77,7 @@ const LIGHTBOX_GALLERY_WIDTH = 400; export default function ImageGallery() { const dispatch = useAppDispatch(); + const { direction } = useTheme(); const { t } = useTranslation(); @@ -73,7 +87,6 @@ export default function ImageGallery() { currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryGridTemplateColumns, activeTabName, @@ -107,12 +120,11 @@ export default function ImageGallery() { const timeoutIdRef = useRef(null); useEffect(() => { - if (galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH) { - setShouldShowButtons(false); - } + setShouldShowButtons(galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH); }, [galleryWidth]); const handleSetShouldPinGallery = () => { + !shouldPinGallery && dispatch(setShouldShowGallery(true)); dispatch(setShouldPinGallery(!shouldPinGallery)); dispatch(setDoesCanvasNeedScaling(true)); }; @@ -129,11 +141,6 @@ export default function ImageGallery() { const handleCloseGallery = useCallback(() => { dispatch(setShouldShowGallery(false)); dispatch(setShouldHoldGalleryOpen(false)); - dispatch( - setGalleryScrollPosition( - galleryContainerRef.current ? galleryContainerRef.current.scrollTop : 0 - ) - ); setTimeout( () => shouldPinGallery && dispatch(setDoesCanvasNeedScaling(true)), 400 @@ -239,12 +246,6 @@ export default function ImageGallery() { [galleryImageMinimumWidth] ); - // set gallery scroll position - useEffect(() => { - if (!galleryContainerRef.current) return; - galleryContainerRef.current.scrollTop = galleryScrollPosition; - }, [galleryScrollPosition, shouldShowGallery]); - useEffect(() => { function handleClickOutside(e: MouseEvent) { if ( @@ -267,29 +268,63 @@ export default function ImageGallery() { in={shouldShowGallery || shouldHoldGalleryOpen} unmountOnExit timeout={200} - classNames="image-gallery-wrapper" + classNames={`${direction}-image-gallery-css-transition`} > -
          - -
          + {shouldShowButtons ? ( <> dispatch(setCurrentCategory('result'))} + flexGrow={1} > {t('gallery.generations')} dispatch(setCurrentCategory('user'))} + flexGrow={1} > {t('gallery.uploads')} @@ -414,14 +452,14 @@ export default function ImageGallery() { } onClick={() => dispatch(setCurrentCategory('result'))} /> } onClick={() => dispatch(setCurrentCategory('user'))} /> @@ -429,96 +467,85 @@ export default function ImageGallery() { )} -
          + } - className="image-gallery-icon-btn" - cursor="pointer" /> } > -
          -
          - - dispatch(setGalleryImageMinimumWidth(64))} - icon={} - data-selected={shouldPinGallery} - styleClass="image-gallery-icon-btn" - /> -
          -
          - - dispatch( - setGalleryImageObjectFit( - galleryImageObjectFit === 'contain' - ? 'cover' - : 'contain' - ) + + + dispatch(setGalleryImageMinimumWidth(64)) + } + /> + + dispatch( + setGalleryImageObjectFit( + galleryImageObjectFit === 'contain' + ? 'cover' + : 'contain' ) - } - /> -
          -
          - ) => - dispatch( - setShouldAutoSwitchToNewImages(e.target.checked) - ) - } - /> -
          -
          - ) => - dispatch( - setShouldUseSingleGalleryColumn(e.target.checked) - ) - } - /> -
          -
          + ) + } + /> + ) => + dispatch(setShouldAutoSwitchToNewImages(e.target.checked)) + } + /> + ) => + dispatch( + setShouldUseSingleGalleryColumn(e.target.checked) + ) + } + /> +
          : } /> -
          -
          -
          + + + {images.length || areMoreImagesAvailable ? ( <> -
          {images.map((image) => { @@ -532,34 +559,51 @@ export default function ImageGallery() { /> ); })} -
          - + ) : ( -
          - + +

          {t('gallery.noImagesInGallery')}

          -
          +
          )} -
          -
          + + {isResizing && ( -
          )} -
          + ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss deleted file mode 100644 index 8b59a33579..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-metadata-viewer { - position: absolute; - top: 0; - width: 100%; - border-radius: 0.5rem; - padding: 1rem; - background-color: var(--metadata-bg-color); - overflow: scroll; - max-height: $app-metadata-height; - height: 100%; - z-index: 10; -} - -.image-json-viewer { - border-radius: 0.5rem; - margin: 0 0.5rem 1rem 0.5rem; - padding: 1rem; - overflow-x: scroll; - word-break: break-all; - background-color: var(--metadata-json-bg-color); -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index a06ebc0bc1..192b832454 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -1,5 +1,6 @@ import { ExternalLinkIcon } from '@chakra-ui/icons'; import { + Box, Center, Flex, Heading, @@ -43,6 +44,7 @@ import { memo } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaCopy } from 'react-icons/fa'; import { IoArrowUndoCircleOutline } from 'react-icons/io5'; +import { APP_METADATA_HEIGHT } from 'theme/util/constants'; type MetadataItemProps = { isLink?: boolean; @@ -163,7 +165,22 @@ const ImageMetadataViewer = memo( const metadataJSON = JSON.stringify(image.metadata, null, 2); return ( -
          + File: @@ -316,7 +333,7 @@ const ImageMetadataViewer = memo( if (postprocess.type === 'esrgan') { const { scale, strength, denoise_str } = postprocess; return ( - + {`${ i + 1 }: Upscale (ESRGAN)`} @@ -346,7 +363,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'gfpgan') { const { strength } = postprocess; return ( - + {`${ i + 1 }: Face restoration (GFPGAN)`} @@ -364,7 +381,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'codeformer') { const { strength, fidelity } = postprocess; return ( - + {`${ i + 1 }: Face restoration (Codeformer)`} @@ -417,9 +434,21 @@ const ImageMetadataViewer = memo( Metadata JSON: -
          +
          {metadataJSON}
          -
          +
          ) : ( @@ -430,7 +459,7 @@ const ImageMetadataViewer = memo( )} -
          + ); }, memoEqualityCheck diff --git a/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx new file mode 100644 index 0000000000..0cf41cb057 --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx @@ -0,0 +1,130 @@ +import { ChakraProps, Flex, Grid, IconButton } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { isEqual } from 'lodash'; +import { useState } from 'react'; +import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; +import { gallerySelector } from '../store/gallerySelectors'; +import { + GalleryCategory, + selectNextImage, + selectPrevImage, +} from '../store/gallerySlice'; + +const nextPrevButtonTriggerAreaStyles: ChakraProps['sx'] = { + height: '100%', + width: '15%', + alignItems: 'center', + pointerEvents: 'auto', +}; +const nextPrevButtonStyles: ChakraProps['sx'] = { + color: 'base.100', +}; + +export const nextPrevImageButtonsSelector = createSelector( + gallerySelector, + (gallery) => { + const { currentImage } = gallery; + + const tempImages = + gallery.categories[ + currentImage ? (currentImage.category as GalleryCategory) : 'result' + ].images; + + const currentImageIndex = tempImages.findIndex( + (i) => i.uuid === gallery?.currentImage?.uuid + ); + const imagesLength = tempImages.length; + + return { + isOnFirstImage: currentImageIndex === 0, + isOnLastImage: + !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); + +const NextPrevImageButtons = () => { + const dispatch = useAppDispatch(); + + const { isOnFirstImage, isOnLastImage } = useAppSelector( + nextPrevImageButtonsSelector + ); + + const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = + useState(false); + + const handleCurrentImagePreviewMouseOver = () => { + setShouldShowNextPrevButtons(true); + }; + + const handleCurrentImagePreviewMouseOut = () => { + setShouldShowNextPrevButtons(false); + }; + + const handleClickPrevButton = () => { + dispatch(selectPrevImage()); + }; + + const handleClickNextButton = () => { + dispatch(selectNextImage()); + }; + + return ( + + + {shouldShowNextPrevButtons && !isOnFirstImage && ( + } + variant="unstyled" + onClick={handleClickPrevButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + {shouldShowNextPrevButtons && !isOnLastImage && ( + } + variant="unstyled" + onClick={handleClickNextButton} + boxSize={16} + sx={nextPrevButtonStyles} + /> + )} + + + ); +}; + +export default NextPrevImageButtons; diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts index fc1cb5d996..751eee14d7 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts @@ -19,7 +19,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, shouldHoldGalleryOpen, @@ -34,7 +33,6 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, - galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, galleryGridTemplateColumns: shouldUseSingleGalleryColumn diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts index 52f8c54dc8..c96a3c9aac 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts @@ -31,7 +31,6 @@ export interface GalleryState { }; shouldPinGallery: boolean; shouldShowGallery: boolean; - galleryScrollPosition: number; galleryImageMinimumWidth: number; galleryImageObjectFit: GalleryImageObjectFitType; shouldHoldGalleryOpen: boolean; @@ -49,7 +48,6 @@ const initialState: GalleryState = { currentImageUuid: '', shouldPinGallery: true, shouldShowGallery: true, - galleryScrollPosition: 0, galleryImageMinimumWidth: 64, galleryImageObjectFit: 'cover', shouldHoldGalleryOpen: false, @@ -242,9 +240,6 @@ export const gallerySlice = createSlice({ state.shouldShowGallery = action.payload; }, - setGalleryScrollPosition: (state, action: PayloadAction) => { - state.galleryScrollPosition = action.payload; - }, setGalleryImageMinimumWidth: (state, action: PayloadAction) => { state.galleryImageMinimumWidth = action.payload; }, @@ -286,7 +281,6 @@ export const { selectPrevImage, setShouldPinGallery, setShouldShowGallery, - setGalleryScrollPosition, setGalleryImageMinimumWidth, setGalleryImageObjectFit, setShouldHoldGalleryOpen, diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss deleted file mode 100644 index 99df6b0756..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss +++ /dev/null @@ -1,89 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.lightbox-container { - width: 100%; - height: 100%; - color: var(--text-color); - overflow: hidden; - position: absolute; - left: 0; - top: 0; - background-color: var(--background-color-secondary); - z-index: 30; - animation: popIn 0.3s ease-in; - - .image-gallery-wrapper { - max-height: 100% !important; - - .image-gallery-container { - max-height: calc(100vh - 5rem); - } - } - - .current-image-options { - z-index: 2; - position: absolute; - top: 1rem; - } - - .image-metadata-viewer { - left: 0; - max-height: 100%; - } -} - -.lightbox-close-btn { - z-index: 3; - position: absolute; - left: 1rem; - top: 1rem; - @include BaseButton; -} - -.lightbox-display-container { - display: flex; - flex-direction: row; -} - -.lightbox-preview-wrapper { - overflow: hidden; - background-color: var(--background-color-secondary); - display: grid; - grid-template-columns: auto max-content; - place-items: center; - width: 100vw; - height: 100vh; - - .current-image-next-prev-buttons { - position: absolute; - } - - .lightbox-image { - grid-area: lightbox-content; - border-radius: 0.5rem; - } - - .lightbox-image-options { - position: absolute; - z-index: 2; - left: 1rem; - top: 4.5rem; - user-select: none; - border-radius: 0.5rem; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } -} - -@keyframes popIn { - from { - opacity: 0; - filter: blur(100); - } - to { - opacity: 1; - filter: blur(0); - } -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx index d712b8d97e..79b2655583 100644 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx +++ b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx @@ -1,21 +1,40 @@ -import { IconButton } from '@chakra-ui/react'; +import { Box, Flex, Grid } from '@chakra-ui/react'; +import { createSelector } from '@reduxjs/toolkit'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import CurrentImageButtons from 'features/gallery/components/CurrentImageButtons'; -import { imagesSelector } from 'features/gallery/components/CurrentImagePreview'; import ImageGallery from 'features/gallery/components/ImageGallery'; import ImageMetadataViewer from 'features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer'; -import { - selectNextImage, - selectPrevImage, -} from 'features/gallery/store/gallerySlice'; +import NextPrevImageButtons from 'features/gallery/components/NextPrevImageButtons'; +import { gallerySelector } from 'features/gallery/store/gallerySelectors'; import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; -import { useState } from 'react'; +import { uiSelector } from 'features/ui/store/uiSelectors'; +import { isEqual } from 'lodash'; import { useHotkeys } from 'react-hotkeys-hook'; import { BiExit } from 'react-icons/bi'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; -import ReactPanZoom from './ReactPanZoom'; +import { TransformWrapper } from 'react-zoom-pan-pinch'; +import useImageTransform from '../hooks/useImageTransform'; +import ReactPanZoomButtons from './ReactPanZoomButtons'; +import ReactPanZoomImage from './ReactPanZoomImage'; + +export const lightboxSelector = createSelector( + [gallerySelector, uiSelector], + (gallery, ui) => { + const { currentImage } = gallery; + const { shouldShowImageDetails } = ui; + + return { + viewerImageToDisplay: currentImage, + shouldShowImageDetails, + }; + }, + { + memoizeOptions: { + resultEqualityCheck: isEqual, + }, + } +); export default function Lightbox() { const dispatch = useAppDispatch(); @@ -24,30 +43,18 @@ export default function Lightbox() { ); const { - viewerImageToDisplay, - shouldShowImageDetails, - isOnFirstImage, - isOnLastImage, - } = useAppSelector(imagesSelector); + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + } = useImageTransform(); - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; + const { viewerImageToDisplay, shouldShowImageDetails } = + useAppSelector(lightboxSelector); useHotkeys( 'Esc', @@ -58,66 +65,106 @@ export default function Lightbox() { ); return ( -
          - } - aria-label="Exit Viewer" - className="lightbox-close-btn" - onClick={() => { - dispatch(setIsLightboxOpen(false)); + + + > + + } + aria-label="Exit Viewer" + onClick={() => { + dispatch(setIsLightboxOpen(false)); + }} + fontSize={20} + /> + + -
          -
          - - {!shouldShowImageDetails && ( -
          -
          - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - /> + + + {viewerImageToDisplay && ( + <> + + {shouldShowImageDetails && ( + )} -
          -
          + )} + + {!shouldShowImageDetails && ( + - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - /> - )} -
          -
          - )} - {viewerImageToDisplay && ( - <> - - {shouldShowImageDetails && ( - - )} - - )} -
          - -
          -
          + + + )} + + + + + + + + + ); } diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx deleted file mode 100644 index 9401a97874..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import IAIIconButton from 'common/components/IAIIconButton'; -import * as React from 'react'; -import { - BiReset, - BiRotateLeft, - BiRotateRight, - BiZoomIn, - BiZoomOut, -} from 'react-icons/bi'; -import { MdFlip } from 'react-icons/md'; -import { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch'; - -type ReactPanZoomProps = { - image: string; - styleClass?: string; - alt?: string; - ref?: React.Ref; -}; - -export default function ReactPanZoom({ - image, - alt, - ref, - styleClass, -}: ReactPanZoomProps) { - const [rotation, setRotation] = React.useState(0); - const [flip, setFlip] = React.useState(false); - - const rotateLeft = () => { - if (rotation === -3) { - setRotation(0); - } else { - setRotation(rotation - 1); - } - }; - - const rotateRight = () => { - if (rotation === 3) { - setRotation(0); - } else { - setRotation(rotation + 1); - } - }; - - const flipImage = () => { - setFlip(!flip); - }; - - return ( - - {({ zoomIn, zoomOut, resetTransform, centerView }) => ( - <> -
          - } - aria-label="Zoom In" - tooltip="Zoom In" - onClick={() => zoomIn()} - fontSize={20} - /> - - } - aria-label="Zoom Out" - tooltip="Zoom Out" - onClick={() => zoomOut()} - fontSize={20} - /> - - } - aria-label="Rotate Left" - tooltip="Rotate Left" - onClick={rotateLeft} - fontSize={20} - /> - - } - aria-label="Rotate Right" - tooltip="Rotate Right" - onClick={rotateRight} - fontSize={20} - /> - - } - aria-label="Flip Image" - tooltip="Flip Image" - onClick={flipImage} - fontSize={20} - /> - - } - aria-label="Reset" - tooltip="Reset" - onClick={() => { - resetTransform(); - setRotation(0); - setFlip(false); - }} - fontSize={20} - /> -
          - - {alt} centerView(1, 0, 'easeOut')} - /> - - - )} -
          - ); -} diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx new file mode 100644 index 0000000000..fffe609ab7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx @@ -0,0 +1,94 @@ +import { ButtonGroup } from '@chakra-ui/react'; +import IAIIconButton from 'common/components/IAIIconButton'; +import { + BiReset, + BiRotateLeft, + BiRotateRight, + BiZoomIn, + BiZoomOut, +} from 'react-icons/bi'; +import { MdFlip } from 'react-icons/md'; +import { useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomButtonsProps = { + flipHorizontally: () => void; + flipVertically: () => void; + rotateCounterClockwise: () => void; + rotateClockwise: () => void; + reset: () => void; +}; + +const ReactPanZoomButtons = ({ + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, +}: ReactPanZoomButtonsProps) => { + const { zoomIn, zoomOut, resetTransform } = useTransformContext(); + + return ( + + } + aria-label="Zoom In" + tooltip="Zoom In" + onClick={() => zoomIn()} + fontSize={20} + /> + + } + aria-label="Zoom Out" + tooltip="Zoom Out" + onClick={() => zoomOut()} + fontSize={20} + /> + + } + aria-label="Rotate Counter-Clockwise" + tooltip="Rotate Counter-Clockwise" + onClick={rotateCounterClockwise} + fontSize={20} + /> + + } + aria-label="Rotate Clockwise" + tooltip="Rotate Clockwise" + onClick={rotateClockwise} + fontSize={20} + /> + + } + aria-label="Flip Horizontally" + tooltip="Flip Horizontally" + onClick={flipHorizontally} + fontSize={20} + /> + + } + aria-label="Flip Vertically" + tooltip="Flip Vertically" + onClick={flipVertically} + fontSize={20} + /> + + } + aria-label="Reset" + tooltip="Reset" + onClick={() => { + resetTransform(); + reset(); + }} + fontSize={20} + /> + + ); +}; + +export default ReactPanZoomButtons; diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx new file mode 100644 index 0000000000..db6a02ae71 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx @@ -0,0 +1,45 @@ +import * as React from 'react'; +import { TransformComponent, useTransformContext } from 'react-zoom-pan-pinch'; + +type ReactPanZoomProps = { + image: string; + styleClass?: string; + alt?: string; + ref?: React.Ref; + rotation: number; + scaleX: number; + scaleY: number; +}; + +export default function ReactPanZoomImage({ + image, + alt, + ref, + styleClass, + rotation, + scaleX, + scaleY, +}: ReactPanZoomProps) { + const { centerView } = useTransformContext(); + + return ( + + {alt} centerView(1, 0, 'easeOut')} + /> + + ); +} diff --git a/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts new file mode 100644 index 0000000000..c191d7d1d7 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts @@ -0,0 +1,50 @@ +import { useState } from 'react'; + +const useImageTransform = () => { + const [rotation, setRotation] = useState(0); + const [scaleX, setScaleX] = useState(1); + const [scaleY, setScaleY] = useState(1); + + const rotateCounterClockwise = () => { + if (rotation === -270) { + setRotation(0); + } else { + setRotation(rotation - 90); + } + }; + + const rotateClockwise = () => { + if (rotation === 270) { + setRotation(0); + } else { + setRotation(rotation + 90); + } + }; + + const flipHorizontally = () => { + setScaleX(scaleX * -1); + }; + + const flipVertically = () => { + setScaleY(scaleY * -1); + }; + + const reset = () => { + setRotation(0); + setScaleX(1); + setScaleY(1); + }; + + return { + rotation, + scaleX, + scaleY, + flipHorizontally, + flipVertically, + rotateCounterClockwise, + rotateClockwise, + reset, + }; +}; + +export default useImageTransform; diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss deleted file mode 100644 index dcf1b23538..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.advanced-parameters { - padding-top: 0.5rem; - display: grid; - row-gap: 0.5rem; -} - -.advanced-parameters-item { - display: grid; - max-width: $options-bar-max-width; - border: none; - border-top: 0px; - border-radius: 0.4rem; - background-color: var(--tab-panel-bg); - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0 0 0.4rem 0.4rem; - } -} - -.advanced-parameters-panel { - background-color: var(--tab-panel-bg); - border-radius: 0 0 0.4rem 0.4rem; - padding: 1rem; - - button { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } - } -} - -.advanced-parameters-header { - border-radius: 0.4rem; - font-weight: bold; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.4rem 0.4rem 0 0; - } - - &:hover { - background-color: var(--tab-hover-color); - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx index af93704c82..b742f5a37e 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx @@ -21,10 +21,10 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { const { header, feature, content, additionalHeaderComponents } = props; return ( - - - - + + + + {header} {additionalHeaderComponents} @@ -32,9 +32,7 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { - - {content} - + {content} ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss deleted file mode 100644 index b7df91c843..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss +++ /dev/null @@ -1,53 +0,0 @@ -.inpainting-bounding-box-settings { - display: flex; - flex-direction: column; - border-radius: 0.4rem; - border: 2px solid var(--tab-color); -} - -.inpainting-bounding-box-header { - background-color: var(--tab-color); - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 0.5rem 1rem; - border-radius: 0.3rem 0.3rem 0 0; - align-items: center; - - button { - width: 0.5rem; - height: 1.2rem; - background: none; - &:hover { - background: none; - } - } - - p { - // font-weight: bold; - } -} - -.inpainting-bounding-box-settings-items { - padding: 1rem; - display: flex; - flex-direction: column; - row-gap: 1rem; - - .inpainting-bounding-box-reset-icon-btn { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - } -} - -.inpainting-bounding-box-dimensions-slider-numberinput { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 1rem; -} - -.inpainting-bounding-box-darken { - width: max-content; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx index b7fd7d4c67..67740cbc02 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx @@ -1,4 +1,4 @@ -import { Box, Flex } from '@chakra-ui/react'; +import { Box, VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; @@ -68,7 +68,7 @@ const BoundingBoxSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetHeight} - sliderMarkRightOffset={-7} /> - + ); }; @@ -108,7 +106,7 @@ export default BoundingBoxSettings; export const BoundingBoxSettingsHeader = () => { const { t } = useTranslation(); return ( - + {t('parameters.boundingBoxHeader')} ); diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx index a1f3759837..187b23cdff 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; @@ -107,7 +107,7 @@ const InfillAndScalingSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetScaledWidth} - sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetScaledHeight} - sliderMarkRightOffset={-7} /> { isInputDisabled={infillMethod !== 'tile'} isResetDisabled={infillMethod !== 'tile'} isSliderDisabled={infillMethod !== 'tile'} - sliderMarkRightOffset={-4} label={t('parameters.tileSize')} min={16} max={64} @@ -176,7 +173,7 @@ const InfillAndScalingSettings = () => { dispatch(setTileSize(32)); }} /> - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx index e3107e1d72..1f5237615a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx @@ -13,7 +13,6 @@ export default function SeamBlur() { return ( { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx index dccbd89b72..25d14e5eac 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx @@ -14,7 +14,6 @@ export default function SeamSize() { return ( { ); return ( - + {facetoolType === 'codeformer' && } - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx index 908aa7548b..e4d5a9174d 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx @@ -6,12 +6,11 @@ import { useTranslation } from 'react-i18next'; interface ImageToImageStrengthProps { label?: string; - styleClass?: string; } export default function ImageToImageStrength(props: ImageToImageStrengthProps) { const { t } = useTranslation(); - const { label = `${t('parameters.strength')}`, styleClass } = props; + const { label = `${t('parameters.strength')}` } = props; const img2imgStrength = useAppSelector( (state: RootState) => state.generation.img2imgStrength ); @@ -33,10 +32,9 @@ export default function ImageToImageStrength(props: ImageToImageStrengthProps) { onChange={handleChangeStrength} value={img2imgStrength} isInteger={false} - styleClass={styleClass} withInput withSliderMarks - inputWidth="5.5rem" + inputWidth={22} withReset handleReset={handleImg2ImgStrengthReset} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx index 5f99f10b5c..97705da9cc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx @@ -1,10 +1,8 @@ -import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import type { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import IAISwitch from 'common/components/IAISwitch'; -import SubItemHook from 'common/components/SubItemHook'; import { postprocessingSelector } from 'features/parameters/store/postprocessingSelectors'; import { setHiresFix, @@ -24,7 +22,7 @@ const hiresStrengthSelector = createSelector( } ); -const HiresStrength = () => { +export const HiresStrength = () => { const { hiresFix, hiresStrength } = useAppSelector(hiresStrengthSelector); const dispatch = useAppDispatch(); @@ -40,34 +38,30 @@ const HiresStrength = () => { }; return ( - - - - + ); }; /** * Hires Fix Toggle */ -const HiresSettings = () => { +export const HiresToggle = () => { const dispatch = useAppDispatch(); const hiresFix = useAppSelector( @@ -80,16 +74,11 @@ const HiresSettings = () => { dispatch(setHiresFix(e.target.checked)); return ( - - - - + ); }; - -export default HiresSettings; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx index f037e79523..c2dea1cbf8 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx @@ -1,11 +1,11 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeamlessSettings from './SeamlessSettings'; const ImageToImageOutputSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx index 1eaba1eaae..93ba63d065 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx @@ -1,13 +1,14 @@ -import { Flex } from '@chakra-ui/react'; -import HiresSettings from './HiresSettings'; +import { VStack } from '@chakra-ui/react'; +import { HiresStrength, HiresToggle } from './HiresSettings'; import SeamlessSettings from './SeamlessSettings'; const OutputSettings = () => { return ( - + - - + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx index fc649e0400..ddd6a4b24b 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx @@ -1,4 +1,3 @@ -import { Flex } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; @@ -22,14 +21,12 @@ const SeamlessSettings = () => { const { t } = useTranslation(); return ( - - - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx index 37bb7bdbda..e23385d0bc 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx @@ -1,19 +1,20 @@ +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function SymmetrySettings() { - const horizontalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.horizontalSymmetryTimePercentage + const horizontalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.horizontalSymmetrySteps ); - const verticalSymmetryTimePercentage = useAppSelector( - (state: RootState) => state.generation.verticalSymmetryTimePercentage + const verticalSymmetrySteps = useAppSelector( + (state: RootState) => state.generation.verticalSymmetrySteps ); const steps = useAppSelector((state: RootState) => state.generation.steps); @@ -23,33 +24,31 @@ export default function SymmetrySettings() { const { t } = useTranslation(); return ( - <> + dispatch(setHorizontalSymmetryTimePercentage(v))} + value={horizontalSymmetrySteps} + onChange={(v) => dispatch(setHorizontalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setHorizontalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > + handleReset={() => dispatch(setHorizontalSymmetrySteps(0))} + /> dispatch(setVerticalSymmetryTimePercentage(v))} + value={verticalSymmetrySteps} + onChange={(v) => dispatch(setVerticalSymmetrySteps(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setVerticalSymmetryTimePercentage(0))} - sliderMarkRightOffset={-6} - > - + handleReset={() => dispatch(setVerticalSymmetrySteps(0))} + /> + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx index 5d9d388098..7aac200b26 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx @@ -1,9 +1,11 @@ +import { HStack } from '@chakra-ui/react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSeed } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; +import ShuffleSeed from './ShuffleSeed'; export default function Seed() { const seed = useAppSelector((state: RootState) => state.generation.seed); @@ -21,18 +23,25 @@ export default function Seed() { const handleChangeSeed = (v: number) => dispatch(setSeed(v)); return ( - + + + + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx index d524ace666..891b528acd 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx @@ -1,8 +1,7 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import Perlin from './Perlin'; import RandomizeSeed from './RandomizeSeed'; import Seed from './Seed'; -import ShuffleSeed from './ShuffleSeed'; import Threshold from './Threshold'; /** @@ -10,19 +9,12 @@ import Threshold from './Threshold'; */ const SeedSettings = () => { return ( - + - - - - - - - - - - - + + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx index ea1721fc61..dbcf201d04 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx @@ -23,7 +23,6 @@ export default function Threshold() { withInput withReset withSliderMarks - sliderMarkRightOffset={-4} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx index de8fb16a9e..291b8f9dc2 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import UpscaleDenoisingStrength from './UpscaleDenoisingStrength'; import UpscaleStrength from './UpscaleStrength'; import UpscaleScale from './UpscaleScale'; @@ -8,11 +8,11 @@ import UpscaleScale from './UpscaleScale'; */ const UpscaleSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx index 82950231a2..d3bc43f7ae 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx @@ -1,4 +1,4 @@ -import { Flex } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import SeedWeights from './SeedWeights'; import VariationAmount from './VariationAmount'; @@ -7,10 +7,10 @@ import VariationAmount from './VariationAmount'; */ const VariationsSettings = () => { return ( - + - + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx index bb418fa9c0..6c4cecfe17 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx @@ -26,7 +26,6 @@ export default function MainCFGScale() { onChange={handleChangeCfgScale} handleReset={() => dispatch(setCfgScale(7.5))} value={cfgScale} - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 200 }} withInput withReset @@ -40,10 +39,8 @@ export default function MainCFGScale() { max={200} onChange={handleChangeCfgScale} value={cfgScale} - width="auto" - styleClass="main-settings-block" - textAlign="center" isInteger={false} + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx index e659cd29d3..0068568402 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx @@ -32,8 +32,6 @@ export default function MainHeight() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" sliderNumberInputProps={{ max: 15360 }} /> ) : ( @@ -44,8 +42,6 @@ export default function MainHeight() { flexGrow={1} onChange={(e) => dispatch(setHeight(Number(e.target.value)))} validValues={HEIGHTS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx index 0100c8999c..f9e31c71da 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx @@ -32,7 +32,6 @@ export default function MainIterations() { withInput withReset withSliderMarks - sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 9999 }} /> ) : ( @@ -43,10 +42,7 @@ export default function MainIterations() { max={9999} onChange={handleChangeIterations} value={iterations} - width="auto" - labelFontSize={0.5} - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss deleted file mode 100644 index 962bfac1b2..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss +++ /dev/null @@ -1,35 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.main-settings { - display: grid; - row-gap: 1rem; -} - -.main-settings-list { - display: grid; - row-gap: 1rem; -} - -.main-settings-row { - display: grid; - grid-template-columns: repeat(3, auto); - column-gap: 0.5rem; - max-width: $options-bar-max-width; -} - -.main-settings-block { - border-radius: 0.5rem; - display: grid !important; - grid-template-columns: auto !important; - row-gap: 0.5rem; - - .invokeai__number-input-form-label, - .invokeai__select-label { - font-weight: bold; - font-size: 0.9rem !important; - } - - .invokeai__select-label { - margin: 0; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx deleted file mode 100644 index e11e16d4df..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; -import { useTranslation } from 'react-i18next'; -import ParametersAccordion from '../ParametersAccordion'; -import MainCFGScale from './MainCFGScale'; -import MainHeight from './MainHeight'; -import MainIterations from './MainIterations'; -import MainSampler from './MainSampler'; -import MainSteps from './MainSteps'; -import MainWidth from './MainWidth'; - -export const inputWidth = 'auto'; - -export default function MainSettings() { - const { t } = useTranslation(); - - const shouldUseSliders = useAppSelector( - (state: RootState) => state.ui.shouldUseSliders - ); - - const accordionItems = { - main: { - header: `${t('parameters.general')}`, - feature: undefined, - content: shouldUseSliders ? ( - - - - - - - - - ) : ( - - - - - - - - - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx index 9c3fd09ac3..0f55cca12a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx @@ -26,8 +26,7 @@ export default function MainSampler() { validValues={ activeModel.format === 'diffusers' ? DIFFUSERS_SAMPLERS : SAMPLERS } - styleClass="main-settings-block" - minWidth="9rem" + minWidth={36} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx new file mode 100644 index 0000000000..cad30e58e6 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx @@ -0,0 +1,39 @@ +import { Flex, VStack } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import MainCFGScale from './MainCFGScale'; +import MainHeight from './MainHeight'; +import MainIterations from './MainIterations'; +import MainSampler from './MainSampler'; +import MainSteps from './MainSteps'; +import MainWidth from './MainWidth'; + +export default function MainSettings() { + const shouldUseSliders = useAppSelector( + (state: RootState) => state.ui.shouldUseSliders + ); + + return shouldUseSliders ? ( + + + + + + + + + ) : ( + + + + + + + + + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx index 3be575f7bf..58553bca86 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx @@ -3,7 +3,10 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISlider from 'common/components/IAISlider'; -import { setSteps } from 'features/parameters/store/generationSlice'; +import { + clampSymmetrySteps, + setSteps, +} from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function MainSteps() { @@ -14,7 +17,13 @@ export default function MainSteps() { ); const { t } = useTranslation(); - const handleChangeSteps = (v: number) => dispatch(setSteps(v)); + const handleChangeSteps = (v: number) => { + dispatch(setSteps(v)); + }; + + const handleBlur = () => { + dispatch(clampSymmetrySteps()); + }; return shouldUseSliders ? ( ) : ( @@ -38,9 +46,8 @@ export default function MainSteps() { step={1} onChange={handleChangeSteps} value={steps} - width="auto" - styleClass="main-settings-block" - textAlign="center" + numberInputFieldProps={{ textAlign: 'center' }} + onBlur={handleBlur} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx index 7abffcf657..c133f804e7 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx @@ -32,8 +32,6 @@ export default function MainWidth() { withInput withReset withSliderMarks - sliderMarkRightOffset={-8} - inputWidth="6.2rem" inputReadOnly sliderNumberInputProps={{ max: 15360 }} /> @@ -45,8 +43,6 @@ export default function MainWidth() { flexGrow={1} onChange={(e) => dispatch(setWidth(Number(e.target.value)))} validValues={WIDTHS} - styleClass="main-settings-block" - width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx index 9738b0d30a..019fb02f90 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx @@ -1,4 +1,4 @@ -import { Accordion, ExpandedIndex } from '@chakra-ui/react'; +import { Accordion } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setOpenAccordions } from 'features/system/store/systemSlice'; @@ -30,7 +30,7 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { /** * Stores accordion state in redux so preferred UI setup is retained. */ - const handleChangeAccordionState = (openAccordions: ExpandedIndex) => + const handleChangeAccordionState = (openAccordions: number | number[]) => dispatch(setOpenAccordions(openAccordions)); const renderAccordions = () => { @@ -59,7 +59,6 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { allowMultiple reduceMotion onChange={handleChangeAccordionState} - className="advanced-parameters" > {renderAccordions()} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx index 88eb203fc9..9363bcdfd3 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx @@ -95,12 +95,7 @@ export default function CancelButton( ]; return ( - + {cancelType === 'immediate' ? ( } @@ -108,17 +103,13 @@ export default function CancelButton( aria-label={t('parameters.cancel.immediate')} isDisabled={!isConnected || !isProcessing || !isCancelable} onClick={handleClickCancel} - className="cancel-btn" + colorScheme="error" {...rest} /> ) : ( - ) : ( - - ) + isCancelScheduled ? : } tooltip={ isCancelScheduled @@ -141,7 +132,7 @@ export default function CancelButton( if (isCancelScheduled) dispatch(setCancelAfter(null)); else dispatch(setCancelAfter(currentIteration)); }} - className="cancel-btn" + colorScheme="error" {...rest} /> )} @@ -149,13 +140,8 @@ export default function CancelButton( menuItems={cancelMenuItems} iconTooltip={t('parameters.cancel.setType')} menuButtonProps={{ - backgroundColor: 'var(--destructive-color)', - color: 'var(--text-color)', - minWidth: '1.5rem', - minHeight: '1.5rem', - _hover: { - backgroundColor: 'var(--destructive-color-hover)', - }, + colorScheme: 'error', + minWidth: 5, }} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx index 504714d329..b68f245044 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx @@ -1,3 +1,4 @@ +import { Box } from '@chakra-ui/react'; import { readinessSelector } from 'app/selectors/readinessSelector'; import { generateImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -5,6 +6,7 @@ import IAIButton, { IAIButtonProps } from 'common/components/IAIButton'; import IAIIconButton, { IAIIconButtonProps, } from 'common/components/IAIIconButton'; +import { clampSymmetrySteps } from 'features/parameters/store/generationSlice'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; @@ -30,6 +32,7 @@ export default function InvokeButton(props: InvokeButton) { useHotkeys( ['ctrl+enter', 'meta+enter'], () => { + dispatch(clampSymmetrySteps()); dispatch(generateImage(activeTabName)); }, { @@ -41,7 +44,7 @@ export default function InvokeButton(props: InvokeButton) { ); return ( -
          + {iconButton ? ( } isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" tooltip={t('parameters.invoke')} tooltipProps={{ placement: 'bottom' }} + colorScheme="accent" {...rest} /> ) : ( @@ -60,12 +65,15 @@ export default function InvokeButton(props: InvokeButton) { type="submit" isDisabled={!isReady} onClick={handleClickGenerate} - className="invoke-btn" + flexGrow={1} + w="100%" + colorScheme="accent" + fontWeight={700} {...rest} > Invoke )} -
          +
          ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx index 9c0ba478d4..09cc991653 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx @@ -21,8 +21,6 @@ const LoopbackButton = () => { } onClick={() => { diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss deleted file mode 100644 index 658ee08177..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss +++ /dev/null @@ -1,56 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.process-buttons { - display: flex; - column-gap: 0.5rem; -} - -.invoke-btn { - flex-grow: 1; - width: 100%; - - @include Button( - $btn-color: var(--accent-color), - $btn-color-hover: var(--accent-color-hover), - $icon-size: 16px - ); -} - -.cancel-btn { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover), - $btn-width: 3rem - ); -} - -.loopback-btn { - &[data-as-checkbox='true'] { - background-color: var(--btn-btn-base-color); - border: 3px solid var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - background-color: var(--btn-btn-base-color); - border-color: var(--btn-checkbox-border-hover); - svg { - fill: var(--text-color); - } - } - &[data-selected='true'] { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - &:hover { - border-color: var(--accent-color); - background-color: var(--btn-btn-base-color); - svg { - fill: var(--text-color); - } - } - } - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx index 0f48fbce8a..e4b3798548 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx @@ -1,3 +1,4 @@ +import { Flex } from '@chakra-ui/react'; import { useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import CancelButton from './CancelButton'; @@ -11,11 +12,11 @@ const ProcessButtons = () => { const activeTabName = useAppSelector(activeTabNameSelector); return ( -
          + {activeTabName === 'img2img' && } -
          +
          ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx index a8b1961091..da22fa5594 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx @@ -19,19 +19,11 @@ const NegativePromptInput = () => { name="negativePrompt" value={negativePrompt} onChange={(e) => dispatch(setNegativePrompt(e.target.value))} - background="var(--prompt-bg-color)" placeholder={t('parameters.negativePrompts')} - _placeholder={{ fontSize: '0.8rem' }} - borderColor="var(--border-color)" - _hover={{ - borderColor: 'var(--border-color-light)', - }} _focusVisible={{ - borderColor: 'var(--border-color-invalid)', - boxShadow: '0 0 10px var(--box-shadow-color-invalid)', + borderColor: 'error.600', }} - fontSize="0.9rem" - color="var(--text-color-secondary)" + fontSize="sm" /> ); diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss deleted file mode 100644 index e7baf2f5f9..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss +++ /dev/null @@ -1,34 +0,0 @@ -.prompt-bar { - display: grid; - row-gap: 1rem; - - input, - textarea { - background-color: var(--prompt-bg-color); - font-size: 1rem; - border: 2px solid var(--border-color); - - &:hover { - border: 2px solid var(--border-color-light); - } - - &:focus-visible { - border: 2px solid var(--input-border-color); - box-shadow: 0 0 10px 0 var(--input-box-shadow-color); - } - - &[aria-invalid='true'] { - border: 2px solid var(--border-color-invalid); - box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); - } - - &:disabled { - border: 2px solid var(--border-color); - box-shadow: none; - } - } - - textarea { - min-height: 10rem; - } -} diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx index 43221f0a8d..3d5c38ddc5 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx @@ -1,4 +1,4 @@ -import { FormControl, Textarea } from '@chakra-ui/react'; +import { Box, FormControl, Textarea } from '@chakra-ui/react'; import { generateImage } from 'app/socketio/actions'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -63,7 +63,7 @@ const PromptInput = () => { }; return ( -
          + @@ -71,19 +71,15 @@ const PromptInput = () => { id="prompt" name="prompt" placeholder={t('parameters.promptPlaceholder')} - size="lg" value={prompt} onChange={handleChangePrompt} onKeyDown={handleKeyDown} resize="vertical" - height={30} ref={promptRef} - _placeholder={{ - color: 'var(--text-color-secondary)', - }} + minH={40} /> -
          + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index e05c49f3f7..1cb3a98204 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -4,6 +4,7 @@ import * as InvokeAI from 'app/invokeai'; import { getPromptAndNegative } from 'common/util/getPromptAndNegative'; import promptToString from 'common/util/promptToString'; import { seedWeightsToString } from 'common/util/seedWeightPairs'; +import { clamp } from 'lodash'; export interface GenerationState { cfgScale: number; @@ -33,8 +34,8 @@ export interface GenerationState { variationAmount: number; width: number; shouldUseSymmetry: boolean; - horizontalSymmetryTimePercentage: number; - verticalSymmetryTimePercentage: number; + horizontalSymmetrySteps: number; + verticalSymmetrySteps: number; } const initialGenerationState: GenerationState = { @@ -64,8 +65,8 @@ const initialGenerationState: GenerationState = { variationAmount: 0.1, width: 512, shouldUseSymmetry: false, - horizontalSymmetryTimePercentage: 0, - verticalSymmetryTimePercentage: 0, + horizontalSymmetrySteps: 0, + verticalSymmetrySteps: 0, }; const initialState: GenerationState = initialGenerationState; @@ -99,6 +100,18 @@ export const generationSlice = createSlice({ setSteps: (state, action: PayloadAction) => { state.steps = action.payload; }, + clampSymmetrySteps: (state) => { + state.horizontalSymmetrySteps = clamp( + state.horizontalSymmetrySteps, + 0, + state.steps + ); + state.verticalSymmetrySteps = clamp( + state.verticalSymmetrySteps, + 0, + state.steps + ); + }, setCfgScale: (state, action: PayloadAction) => { state.cfgScale = action.payload; }, @@ -174,7 +187,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, } = action.payload.image; @@ -237,7 +250,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - hires_fix, + _hires_fix, width, height, strength, @@ -334,22 +347,17 @@ export const generationSlice = createSlice({ setShouldUseSymmetry: (state, action: PayloadAction) => { state.shouldUseSymmetry = action.payload; }, - setHorizontalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.horizontalSymmetryTimePercentage = action.payload; + setHorizontalSymmetrySteps: (state, action: PayloadAction) => { + state.horizontalSymmetrySteps = action.payload; }, - setVerticalSymmetryTimePercentage: ( - state, - action: PayloadAction - ) => { - state.verticalSymmetryTimePercentage = action.payload; + setVerticalSymmetrySteps: (state, action: PayloadAction) => { + state.verticalSymmetrySteps = action.payload; }, }, }); export const { + clampSymmetrySteps, clearInitialImage, resetParametersState, resetSeed, @@ -384,8 +392,8 @@ export const { setVariationAmount, setWidth, setShouldUseSymmetry, - setHorizontalSymmetryTimePercentage, - setVerticalSymmetryTimePercentage, + setHorizontalSymmetrySteps, + setVerticalSymmetrySteps, } = generationSlice.actions; export default generationSlice.reducer; diff --git a/invokeai/frontend/web/src/features/system/components/Console.scss b/invokeai/frontend/web/src/features/system/components/Console.scss deleted file mode 100644 index e043d58d51..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Console.scss +++ /dev/null @@ -1,75 +0,0 @@ -.console { - width: 100vw; - display: flex; - flex-direction: column; - background: var(--console-bg-color); - overflow: auto; - direction: column; - font-family: monospace; - padding: 0 1rem 1rem 3rem; - border-top-width: 0.3rem; - border-color: var(--resizeable-handle-border-color); - - .console-info-color { - color: var(--error-level-info); - } - - .console-warning-color { - color: var(--error-level-warning); - } - - .console-error-color { - color: var(--status-bad-color); - } - - .console-entry { - display: flex; - column-gap: 0.5rem; - - .console-timestamp { - font-weight: semibold; - } - - .console-message { - word-break: break-all; - } - } -} - -.console-toggle-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 0.5rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-error-seen='true'] { - background: var(--status-bad-color); - &:hover { - background: var(--status-bad-color); - } - } -} - -.console-autoscroll-icon-button { - background: var(--console-icon-button-bg-color); - position: fixed; - left: 0.5rem; - bottom: 3rem; - z-index: 10000; - - &:hover { - background: var(--console-icon-button-bg-color-hover); - } - - &[data-autoscroll-enabled='true'] { - background: var(--accent-color); - &:hover { - background: var(--accent-color-hover); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/Console.tsx b/invokeai/frontend/web/src/features/system/components/Console.tsx index 5ed8025730..562b339c59 100644 --- a/invokeai/frontend/web/src/features/system/components/Console.tsx +++ b/invokeai/frontend/web/src/features/system/components/Console.tsx @@ -1,6 +1,7 @@ -import { IconButton, Tooltip } from '@chakra-ui/react'; +import { Flex, Text, Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIIconButton from 'common/components/IAIIconButton'; import { errorSeen, setShouldShowLogViewer, @@ -105,23 +106,47 @@ const Console = () => { style={{ display: 'flex', position: 'fixed', - left: 0, + insetInlineStart: 0, bottom: 0, zIndex: 9999, }} maxHeight="90vh" > -
          + {log.map((entry, i) => { const { timestamp, message, level } = entry; + const colorScheme = level === 'info' ? 'base' : level; return ( -
          -

          {timestamp}:

          -

          {message}

          -
          + + {timestamp}: + {message} + ); })} -
          + )} {shouldShowLogViewer && ( @@ -129,14 +154,18 @@ const Console = () => { hasArrow label={shouldAutoscroll ? 'Autoscroll On' : 'Autoscroll Off'} > - } onClick={() => setShouldAutoscroll(!shouldAutoscroll)} + isChecked={shouldAutoscroll} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 12, + zIndex: '10000', + }} /> )} @@ -144,15 +173,18 @@ const Console = () => { hasArrow label={shouldShowLogViewer ? 'Hide Console' : 'Show Console'} > - : } onClick={handleClickLogViewerToggle} + sx={{ + position: 'fixed', + insetInlineStart: 2, + bottom: 2, + zIndex: '10000', + }} + colorScheme={hasError || !wasErrorSeen ? 'error' : 'base'} /> diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss deleted file mode 100644 index afb2b1c61e..0000000000 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss +++ /dev/null @@ -1,87 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.hotkeys-modal { - width: 36rem; - max-width: 36rem; - display: grid; - padding: 1rem; - row-gap: 1rem; - font-family: Inter; - - h1 { - font-size: 1.2rem; - font-weight: bold; - } - - h2 { - font-weight: bold; - } -} - -.hotkeys-modal-button { - display: flex; - align-items: center; - justify-content: space-between; -} - -.hotkeys-modal-items { - max-height: 36rem; - overflow-y: scroll; - @include HideScrollbar; - - .chakra-accordion { - display: grid; - row-gap: 0.5rem; - } - - .chakra-accordion__item { - border: none; - border-radius: 0.3rem; - background-color: var(--tab-hover-color); - } - - button { - border-radius: 0.3rem; - - &[aria-expanded='true'] { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - } -} - -.hotkey-modal-category { - display: grid; - row-gap: 0.5rem; -} - -.hotkey-modal-item { - display: grid; - grid-template-columns: auto max-content; - justify-content: space-between; - align-items: center; - background-color: var(--background-color); - padding: 0.5rem 1rem; - border-radius: 0.3rem; - - .hotkey-info { - display: grid; - - .hotkey-title { - font-weight: bold; - } - - .hotkey-description { - font-size: 0.9rem; - color: var(--text-color-secondary); - } - } - - .hotkey-key { - font-size: 0.8rem; - font-weight: bold; - background-color: var(--background-color-light); - padding: 0.2rem 0.5rem; - border-radius: 0.3rem; - } -} diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx index 57eb512d79..62b7985a6c 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx @@ -4,9 +4,14 @@ import { AccordionIcon, AccordionItem, AccordionPanel, + Divider, + Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, + ModalHeader, ModalOverlay, useDisclosure, } from '@chakra-ui/react'; @@ -297,24 +302,20 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { }, ]; - const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => { - const hotkeyModalItemsToRender: ReactElement[] = []; - - hotkeys.forEach((hotkey, i) => { - hotkeyModalItemsToRender.push( - - ); - }); - - return ( -
          {hotkeyModalItemsToRender}
          - ); - }; + const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => ( + + {hotkeys.map((hotkey, i) => ( + + + {i < hotkeys.length - 1 && } + + ))} + + ); return ( <> @@ -323,16 +324,21 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { })} - - - -

          Keyboard Shorcuts

          -
          + + {t('hotkeys.keyboardShortcuts')} + + - -

          {t('hotkeys.appHotkeys')}

          - + + +

          {t('hotkeys.appHotkeys')}

          + +
          {renderHotkeyModalItems(appHotkeys)} @@ -340,9 +346,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
          - -

          {t('hotkeys.generalHotkeys')}

          - + + +

          {t('hotkeys.generalHotkeys')}

          + +
          {renderHotkeyModalItems(generalHotkeys)} @@ -350,9 +362,15 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
          - -

          {t('hotkeys.galleryHotkeys')}

          - + + +

          {t('hotkeys.galleryHotkeys')}

          + +
          {renderHotkeyModalItems(galleryHotkeys)} @@ -360,16 +378,23 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
          - -

          {t('hotkeys.unifiedCanvasHotkeys')}

          - + + +

          {t('hotkeys.unifiedCanvasHotkeys')}

          + +
          {renderHotkeyModalItems(unifiedCanvasHotkeys)}
          -
          + +
          diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx index 384192d3fe..b0163169fe 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx @@ -1,3 +1,5 @@ +import { Box, Grid, Text } from '@chakra-ui/react'; + interface HotkeysModalProps { hotkey: string; title: string; @@ -7,12 +9,36 @@ interface HotkeysModalProps { export default function HotkeysModalItem(props: HotkeysModalProps) { const { title, hotkey, description } = props; return ( -
          -
          -

          {title}

          - {description &&

          {description}

          } -
          -
          {hotkey}
          -
          + + + {title} + {description && ( + + {description} + + )} + + + {hotkey} + + ); } diff --git a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx new file mode 100644 index 0000000000..ac7dc39a78 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx @@ -0,0 +1,30 @@ +import { Flex, Text, Image } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import InvokeAILogoImage from 'assets/images/logo.png'; + +const InvokeAILogoComponent = () => { + const appVersion = useAppSelector( + (state: RootState) => state.system.app_version + ); + + return ( + + invoke-ai-logo + + invoke ai + + + {appVersion} + + + ); +}; + +export default InvokeAILogoComponent; diff --git a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx index 9da9c45bde..7f284ee1f6 100644 --- a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx +++ b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx @@ -5,7 +5,7 @@ import IAIButton from 'common/components/IAIButton'; import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { useTranslation } from 'react-i18next'; -import { FaLanguage } from 'react-icons/fa'; +import { FaCheck, FaLanguage } from 'react-icons/fa'; export default function LanguagePicker() { const { t, i18n } = useTranslation(); @@ -15,12 +15,15 @@ export default function LanguagePicker() { en: t('common.langEnglish', { lng: 'en' }), fr: t('common.langFrench', { lng: 'fr' }), de: t('common.langGerman', { lng: 'de' }), + he: t('common.langHebrew', { lng: 'he' }), it: t('common.langItalian', { lng: 'it' }), ja: t('common.langJapanese', { lng: 'ja' }), + ko: t('common.langKorean', { lng: 'ko' }), pl: t('common.langPolish', { lng: 'pl' }), - pt_Br: t('common.langBrPortuguese', { lng: 'pt_Br' }), + pt_BR: t('common.langBrPortuguese', { lng: 'pt_BR' }), + pt: t('common.langPortuguese', { lng: 'pt' }), ru: t('common.langRussian', { lng: 'ru' }), - zh_Cn: t('common.langSimplifiedChinese', { lng: 'zh_Cn' }), + zh_CN: t('common.langSimplifiedChinese', { lng: 'zh_CN' }), es: t('common.langSpanish', { lng: 'es' }), uk: t('common.langUkranian', { lng: 'ua' }), }; @@ -31,9 +34,13 @@ export default function LanguagePicker() { languagesToRender.push( + ) : undefined + } onClick={() => i18n.changeLanguage(lang)} - className="modal-close-btn lang-select-btn" aria-label={LANGUAGES[lang as keyof typeof LANGUAGES]} size="sm" minWidth="200px" diff --git a/invokeai/frontend/web/src/features/system/components/Modal.scss b/invokeai/frontend/web/src/features/system/components/Modal.scss deleted file mode 100644 index 7c97221c6b..0000000000 --- a/invokeai/frontend/web/src/features/system/components/Modal.scss +++ /dev/null @@ -1,11 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.modal { - background-color: var(--background-color-secondary); - color: var(--text-color); - font-family: Inter; -} - -.modal-close-btn { - @include BaseButton; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx index 933b3d925e..8e0cfb2802 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx @@ -71,7 +71,7 @@ export default function AddCheckpointModel() { const [addManually, setAddmanually] = React.useState(false); return ( - <> + } /> @@ -99,7 +99,7 @@ export default function AddCheckpointModel() { > {({ handleSubmit, errors, touched }) => (
          - + {t('modelManager.manual')} @@ -323,6 +323,6 @@ export default function AddCheckpointModel() { )} )} - + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx index a0ba19a075..82cc609879 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx @@ -28,12 +28,14 @@ function FormItemWrapper({ }) { return ( {children} @@ -95,7 +97,7 @@ export default function AddDiffusersModel() { position="absolute" zIndex={1} size="sm" - right={12} + insetInlineEnd={12} top={3} icon={} /> @@ -105,7 +107,7 @@ export default function AddDiffusersModel() { > {({ handleSubmit, errors, touched }) => ( - + {/* Name */} {t('modelManager.formMessageDiffusersModelLocationDesc')} @@ -230,9 +234,11 @@ export default function AddDiffusersModel() { {t('modelManager.formMessageDiffusersVAELocation')} {t('modelManager.formMessageDiffusersVAELocationDesc')} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss deleted file mode 100644 index f8144cd4f8..0000000000 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss +++ /dev/null @@ -1,16 +0,0 @@ -.add-model-modal { - display: flex; -} - -.add-model-modal-body { - display: flex; - flex-direction: column; - row-gap: 1rem; - padding-bottom: 2rem; -} - -.add-model-form { - display: flex; - flex-direction: column; - row-gap: 0.5rem; -} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx index 269577227f..c6bb802622 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx @@ -1,9 +1,11 @@ import { + Button, Flex, Modal, ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Text, @@ -33,16 +35,11 @@ function AddModelBox({ {text} @@ -71,10 +68,9 @@ export default function AddModel() { aria-label={t('modelManager.addNewModel')} tooltip={t('modelManager.addNewModel')} onClick={onOpen} - className="modal-close-btn" size="sm" > - + {t('modelManager.addNew')} @@ -87,16 +83,12 @@ export default function AddModel() { closeOnOverlayClick={false} > - + {t('modelManager.addNewModel')} - - + + {addNewModelUIOption == null && ( - + dispatch(setAddNewModelUIOption('ckpt'))} @@ -110,6 +102,7 @@ export default function AddModel() { {addNewModelUIOption == 'ckpt' && } {addNewModelUIOption == 'diffusers' && } + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx index 5f58583ff0..9759125a1a 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx @@ -101,7 +101,7 @@ export default function CheckpointModelEdit() { }; return openModel ? ( - + {openModel} @@ -112,7 +112,7 @@ export default function CheckpointModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx index 59fe68a3f9..e25043b1e8 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx @@ -109,7 +109,7 @@ export default function DiffusersModelEdit() { }; return openModel ? ( - + {openModel} @@ -119,7 +119,7 @@ export default function DiffusersModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingRight="2rem" + paddingInlineEnd={8} > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} ) : ( - - Pick A Model To Edit - + Pick A Model To Edit ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx index cd10a43856..e994900eec 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, Radio, @@ -57,19 +59,19 @@ export default function MergeModels() { const [modelMergeForce, setModelMergeForce] = useState(false); - const modelOneList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelTwo && model !== modelThree) return model; - }); + const modelOneList = Object.keys(diffusersModels).filter( + (model) => model !== modelTwo && model !== modelThree + ); - const modelTwoList = Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelThree) return model; - }); + const modelTwoList = Object.keys(diffusersModels).filter( + (model) => model !== modelOne && model !== modelThree + ); const modelThreeList = [ - 'none', - ...Object.keys(diffusersModels).filter((model) => { - if (model !== modelOne && model !== modelTwo) return model; - }), + { key: t('modelManager.none'), value: 'none' }, + ...Object.keys(diffusersModels) + .filter((model) => model !== modelOne && model !== modelTwo) + .map((model) => ({ key: model, value: model })), ]; const isProcessing = useAppSelector( @@ -96,8 +98,8 @@ export default function MergeModels() { return ( <> - - + + {t('modelManager.mergeModels')} @@ -109,183 +111,201 @@ export default function MergeModels() { closeOnOverlayClick={false} > - + {t('modelManager.mergeModels')} - - - {t('modelManager.modelMergeHeaderHelp1')} - - {t('modelManager.modelMergeHeaderHelp2')} - - - - setModelOne(e.target.value)} - /> - setModelTwo(e.target.value)} - /> - { - if (e.target.value !== 'none') { - setModelThree(e.target.value); - setModelMergeInterp('add_difference'); - } else { - setModelThree('none'); - setModelMergeInterp('weighted_sum'); - } + + + - - - setMergedModelName(e.target.value)} - /> - - - setModelMergeAlpha(v)} - withInput - withReset - handleReset={() => setModelMergeAlpha(0.5)} - withSliderMarks - sliderMarkRightOffset={-7} - /> - - {t('modelManager.modelMergeAlphaHelp')} - - - - - - {t('modelManager.interpolationType')} - - setModelMergeInterp(v)} - > - - {modelThree === 'none' ? ( - <> - weighted_sum - sigmoid - inv_sigmoid - - ) : ( - - - add_difference - - - )} - - - - - + {t('modelManager.modelMergeHeaderHelp1')} + + {t('modelManager.modelMergeHeaderHelp2')} + + - - {t('modelManager.mergedModelSaveLocation')} + setModelOne(e.target.value)} + /> + setModelTwo(e.target.value)} + /> + { + if (e.target.value !== 'none') { + setModelThree(e.target.value); + setModelMergeInterp('add_difference'); + } else { + setModelThree('none'); + setModelMergeInterp('weighted_sum'); + } + }} + /> + + + setMergedModelName(e.target.value)} + /> + + + setModelMergeAlpha(v)} + withInput + withReset + handleReset={() => setModelMergeAlpha(0.5)} + withSliderMarks + /> + + {t('modelManager.modelMergeAlphaHelp')} + + + + + + {t('modelManager.interpolationType')} - setModelMergeSaveLocType(v) - } + value={modelMergeInterp} + onChange={( + v: + | 'weighted_sum' + | 'sigmoid' + | 'inv_sigmoid' + | 'add_difference' + ) => setModelMergeInterp(v)} > - - {t('modelManager.invokeAIFolder')} - - {t('modelManager.custom')} + {modelThree === 'none' ? ( + <> + + + {t('modelManager.weightedSum')} + + + + {t('modelManager.sigmoid')} + + + + {t('modelManager.inverseSigmoid')} + + + + ) : ( + + + + {t('modelManager.addDifference')} + + + + )} - {modelMergeSaveLocType === 'custom' && ( - setModelMergeCustomSaveLoc(e.target.value)} - /> - )} + + + + {t('modelManager.mergedModelSaveLocation')} + + + setModelMergeSaveLocType(v) + } + > + + + + {t('modelManager.invokeAIFolder')} + + + + + {t('modelManager.custom')} + + + + + + {modelMergeSaveLocType === 'custom' && ( + setModelMergeCustomSaveLoc(e.target.value)} + /> + )} + + + setModelMergeForce(e.target.checked)} + fontWeight="500" + /> + + + {t('modelManager.merge')} + - - setModelMergeForce(e.target.checked)} - fontWeight="bold" - /> - - - {t('modelManager.merge')} - - + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx index 792ce03b4e..5896e634ea 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx @@ -77,7 +77,7 @@ export default function ModelConvert(props: ModelConvertProps) { retrievedModel.status === 'active' || isProcessing || !isConnected } className=" modal-close-btn" - marginRight="2rem" + marginInlineEnd={8} > 🧨 {t('modelManager.convertToDiffusers')} @@ -96,8 +96,8 @@ export default function ModelConvert(props: ModelConvertProps) { - - + + {t('modelManager.convertToDiffusersSaveLocation')} setSaveLocation(v)}> @@ -125,11 +125,7 @@ export default function ModelConvert(props: ModelConvertProps) { {saveLocation === 'custom' && ( - + {t('modelManager.customSaveLocation')} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx index 0eb07850c3..1bea1ba878 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Spinner, Text } from '@chakra-ui/react'; +import { Box, Flex, Heading, Spacer, Spinner, Text } from '@chakra-ui/react'; import IAIInput from 'common/components/IAIInput'; import IAIButton from 'common/components/IAIButton'; @@ -45,9 +45,10 @@ function ModelFilterButton({ @@ -133,23 +134,27 @@ const ModelList = () => { return searchText !== '' ? ( isSelectedFilter === 'all' ? ( - {filteredModelListItemsToRender} + {filteredModelListItemsToRender} ) : ( - {localFilteredModelListItemsToRender} + {localFilteredModelListItemsToRender} ) ) : ( - + {isSelectedFilter === 'all' && ( <> {t('modelManager.checkpointModels')} @@ -157,13 +162,16 @@ const ModelList = () => { {t('modelManager.diffusersModels')} @@ -173,13 +181,13 @@ const ModelList = () => { )} {isSelectedFilter === 'ckpt' && ( - + {ckptModelListItemsToRender} )} {isSelectedFilter === 'diffusers' && ( - + {diffusersModelListItemsToRender} )} @@ -188,15 +196,12 @@ const ModelList = () => { }, [models, searchText, t, isSelectedFilter]); return ( - - - - {t('modelManager.availableModels')} - - - - - + + + {t('modelManager.availableModels')} + + + { gap={1} maxHeight={window.innerHeight - 360} overflow="scroll" - paddingRight="1rem" + paddingInlineEnd={4} > - + setIsSelectedFilter('all')} @@ -234,7 +239,7 @@ const ModelList = () => { ) : ( diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx index 5f90df0c37..9b2b6d29f4 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx @@ -46,30 +46,37 @@ export default function ModelListItem(props: ModelListItemProps) { const statusTextColor = () => { switch (status) { case 'active': - return 'var(--status-good-color)'; + return 'ok.500'; case 'cached': - return 'var(--status-working-color)'; + return 'warning.500'; case 'not loaded': - return 'var(--text-color-secondary)'; + return 'inherit'; } }; return ( - {name} + {name} @@ -79,7 +86,6 @@ export default function ModelListItem(props: ModelListItemProps) { size="sm" onClick={handleChangeModel} isDisabled={status === 'active' || isProcessing || !isConnected} - className="modal-close-btn" > {t('modelManager.load')} @@ -90,7 +96,6 @@ export default function ModelListItem(props: ModelListItemProps) { onClick={openModelHandler} aria-label="Modify Config" isDisabled={status === 'active' || isProcessing || !isConnected} - className=" modal-close-btn" /> } > - +

          {t('modelManager.deleteMsg1')}

          -

          - {t('modelManager.deleteMsg2')} -

          +

          {t('modelManager.deleteMsg2')}

          diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx index def4afe6b6..6d9edf0d89 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx @@ -1,8 +1,10 @@ import { Flex, Modal, + ModalBody, ModalCloseButton, ModalContent, + ModalFooter, ModalHeader, ModalOverlay, useDisclosure, @@ -53,19 +55,20 @@ export default function ModelManagerModal({ size="6xl" > - - - - {t('modelManager.modelManager')} - - - - {openModel && model_list[openModel]['format'] === 'diffusers' ? ( - - ) : ( - - )} - + + + {t('modelManager.modelManager')} + + + + {openModel && model_list[openModel]['format'] === 'diffusers' ? ( + + ) : ( + + )} + + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx index 08834eb91b..bccf690a63 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx @@ -4,12 +4,13 @@ import IAIIconButton from 'common/components/IAIIconButton'; import React from 'react'; import { - Box, + Badge, Flex, FormControl, HStack, Radio, RadioGroup, + Spacer, Text, VStack, } from '@chakra-ui/react'; @@ -18,8 +19,7 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { systemSelector } from 'features/system/store/systemSelectors'; import { useTranslation } from 'react-i18next'; -import { FaPlus } from 'react-icons/fa'; -import { MdFindInPage } from 'react-icons/md'; +import { FaPlus, FaSearch } from 'react-icons/fa'; import { addNewModel, searchForModels } from 'app/socketio/actions'; import { @@ -48,26 +48,6 @@ const existingModelsSelector = createSelector([systemSelector], (system) => { return existingModels; }); -function ModelExistsTag() { - const { t } = useTranslation(); - return ( - - {t('modelManager.modelExists')} - - ); -} - interface SearchModelEntry { model: FoundModel; modelsToAdd: string[]; @@ -79,6 +59,7 @@ function SearchModelEntry({ modelsToAdd, setModelsToAdd, }: SearchModelEntry) { + const { t } = useTranslation(); const existingModels = useAppSelector(existingModelsSelector); const foundModelsChangeHandler = (e: ChangeEvent) => { @@ -90,33 +71,34 @@ function SearchModelEntry({ }; return ( - - {existingModels.includes(model.location) ? : null} - - -

          {model.name}

          -

          {model.location}

          -
          - + +
          -
          + paddingX={4} + paddingY={2} + borderRadius={4} + > + + {model.name}
          } + isChecked={modelsToAdd.includes(model.name)} + isDisabled={existingModels.includes(model.location)} + onChange={foundModelsChangeHandler} + > + {existingModels.includes(model.location) && ( + {t('modelManager.modelExists')} + )} +
          + + {model.location} + +
          +
          ); } @@ -243,36 +225,38 @@ export default function SearchModels() { <> {searchFolder ? ( -

          - {t('modelManager.checkpointFolder')} -

          -

          - {searchFolder} -

          + + {t('modelManager.checkpointFolder')} + + {searchFolder} +
          + } - position="absolute" - right={16} fontSize={18} disabled={isProcessing} onClick={() => dispatch(searchForModels(searchFolder))} @@ -280,8 +264,6 @@ export default function SearchModels() { } - position="absolute" - right={5} onClick={resetSearchModelHandler} />
          @@ -294,7 +276,7 @@ export default function SearchModels() { > {({ handleSubmit }) => ( - + - } + } aria-label={t('modelManager.findModels')} tooltip={t('modelManager.findModels')} type="submit" disabled={isProcessing} - /> + > + {t('modelManager.findModels')} + )} )} {foundModels && ( - +

          {t('modelManager.modelsFound')}: {foundModels.length} @@ -328,8 +312,8 @@ export default function SearchModels() { {t('modelManager.selected')}: {modelsToAdd.length}

          - - + + 0 ? 'var(--accent-color) !important' : '' - } + colorScheme="accent" > {t('modelManager.addSelected')} - - Pick Model Type: + + {t('modelManager.pickModelType')} - {t('modelManager.v1')} - {t('modelManager.v2')} - - {t('modelManager.inpainting')} + + {t('modelManager.v1')} + + + {t('modelManager.v2')} + + + {t('modelManager.inpainting')} + + + {t('modelManager.customConfig')} - {t('modelManager.customConfig')} {modelType === 'custom' && ( - + {t('modelManager.pathToCustomConfig')} { if (e.target.value !== '') setPathToConfig(e.target.value); }} - width="42.5rem" + width="full" /> )} {foundModels.length > 0 ? ( - modelsToAdd.length === 0 && ( - - {t('modelManager.selectAndAdd')} - - ) + renderFoundModels() ) : ( {t('modelManager.noModelsFound')} )} - - {renderFoundModels()} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx index 7c06604382..ab37213a00 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx @@ -33,11 +33,11 @@ const ModelSelect = () => { return ( { ); }; diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss deleted file mode 100644 index 53b4766c95..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss +++ /dev/null @@ -1,43 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.settings-modal { - max-height: 36rem; - font-family: Inter; - - .settings-modal-content { - display: grid; - row-gap: 2rem; - overflow-y: scroll; - } - - .settings-modal-header { - font-weight: bold; - } - - .settings-modal-items { - display: grid; - row-gap: 0.5rem; - - .settings-modal-item { - display: grid; - grid-auto-flow: column; - background-color: var(--background-color); - padding: 0.4rem 1rem; - border-radius: 0.5rem; - align-items: center; - width: 100%; - } - } - - .settings-modal-reset { - display: grid; - row-gap: 1rem; - - button { - @include Button( - $btn-color: var(--destructive-color), - $btn-color-hover: var(--destructive-color-hover) - ); - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx index 3112fd6995..c203edfc37 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -1,6 +1,7 @@ import { - Button, + ChakraProps, Flex, + Grid, Heading, Modal, ModalBody, @@ -16,6 +17,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { IN_PROGRESS_IMAGE_TYPES } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import IAIButton from 'common/components/IAIButton'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISelect from 'common/components/IAISelect'; import IAISwitch from 'common/components/IAISwitch'; @@ -70,6 +72,13 @@ const selector = createSelector( } ); +const modalSectionStyles: ChakraProps['sx'] = { + flexDirection: 'column', + gap: 2, + p: 4, + bg: 'base.900', +}; + type SettingsModalProps = { /* The button to open the Settings Modal */ children: ReactElement; @@ -135,20 +144,15 @@ const SettingsModal = ({ children }: SettingsModalProps) => { - - - {t('common.settingsLabel')} - - - -
          -
          + + {t('common.settingsLabel')} + + + + { textAlign="center" /> )} -
          - ) => - dispatch(setShouldConfirmOnDelete(e.target.checked)) - } - /> - ) => - dispatch(setShouldDisplayGuides(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseSliders(e.target.checked)) - } - /> -
          + ) => + dispatch(setShouldConfirmOnDelete(e.target.checked)) + } + /> + ) => + dispatch(setShouldDisplayGuides(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseSliders(e.target.checked)) + } + /> +
          -
          -

          Developer

          - ) => - dispatch(setEnableImageDebugging(e.target.checked)) - } - /> -
          + + + Developer + + ) => + dispatch(setEnableImageDebugging(e.target.checked)) + } + /> + -
          - {t('settings.resetWebUI')} - - {t('settings.resetWebUIDesc1')} - {t('settings.resetWebUIDesc2')} -
          + + {t('settings.resetWebUI')} + + {t('settings.resetWebUI')} + + {t('settings.resetWebUIDesc1')} + {t('settings.resetWebUIDesc2')} + + - +
          @@ -244,15 +245,17 @@ const SettingsModal = ({ children }: SettingsModalProps) => { onClose={onRefreshModalClose} isCentered > - + - + + {t('settings.resetComplete')} + diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss b/invokeai/frontend/web/src/features/system/components/SiteHeader.scss deleted file mode 100644 index 59edc9a403..0000000000 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss +++ /dev/null @@ -1,31 +0,0 @@ -.site-header { - display: grid; - grid-template-columns: auto max-content; -} - -.site-header-left-side { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - - img { - width: 32px; - height: 32px; - } -} - -.site-header-right-side { - display: flex; - align-items: center; - column-gap: 0.5rem; - - .lang-select-btn { - &[data-selected='true'] { - background-color: var(--accent-color); - &:hover { - background-color: var(--accent-color); - } - } - } -} diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx index ccbc425590..6aaa989c89 100644 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx +++ b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx @@ -1,8 +1,7 @@ -import { Flex, Link, Text } from '@chakra-ui/react'; +import { Flex, Grid, Link } from '@chakra-ui/react'; import { FaBug, FaCube, FaDiscord, FaGithub, FaKeyboard } from 'react-icons/fa'; -import InvokeAILogo from 'assets/images/logo.png'; import IAIIconButton from 'common/components/IAIIconButton'; import HotkeysModal from './HotkeysModal/HotkeysModal'; @@ -15,39 +14,21 @@ import ThemeChanger from './ThemeChanger'; import LanguagePicker from './LanguagePicker'; -import type { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; import { useTranslation } from 'react-i18next'; import { MdSettings } from 'react-icons/md'; +import InvokeAILogoComponent from './InvokeAILogoComponent'; /** * Header, includes color mode toggle, settings button, status message. */ const SiteHeader = () => { const { t } = useTranslation(); - const appVersion = useAppSelector( - (state: RootState) => state.system.app_version - ); return ( -
          -
          - invoke-ai-logo - - - invoke ai - - - {appVersion} - - -
          + + -
          + @@ -133,8 +114,8 @@ const SiteHeader = () => { icon={} /> -
          -
          + + ); }; diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss b/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss deleted file mode 100644 index 341d2fcb46..0000000000 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss +++ /dev/null @@ -1,19 +0,0 @@ -.status { - font-size: 0.8rem; - font-weight: bold; -} - -.status-good { - color: var(--status-good-color); - text-shadow: 0 0 10px var(--status-good-glow); -} - -.status-bad { - color: var(--status-bad-color); - text-shadow: 0 0 10px var(--status-bad-glow); -} - -.status-working { - color: var(--status-working-color); - text-shadow: 0 0 10px var(--status-working-glow); -} diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx index bacc199015..f47730d221 100644 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx +++ b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx @@ -37,25 +37,18 @@ const StatusIndicator = () => { const dispatch = useAppDispatch(); const { t } = useTranslation(); - let statusStyle; + let statusIdentifier; + if (isConnected && !hasError) { - statusStyle = 'status-good'; + statusIdentifier = 'ok'; } else { - statusStyle = 'status-bad'; + statusIdentifier = 'error'; } let statusMessage = currentStatus; - const intermediateStatuses = [ - t('common.statusGenerating'), - t('common.statusPreparing'), - t('common.statusSavingImage'), - t('common.statusRestoringFaces'), - t('common.statusUpscaling'), - ]; - - if (intermediateStatuses.includes(statusMessage)) { - statusStyle = 'status-working'; + if (isProcessing) { + statusIdentifier = 'working'; } if (statusMessage) @@ -86,7 +79,11 @@ const StatusIndicator = () => { {t(statusMessage as keyof typeof t)} diff --git a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx index f1597315b8..9114a9d9e1 100644 --- a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx +++ b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx @@ -1,4 +1,4 @@ -import { useColorMode, VStack } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -6,13 +6,12 @@ import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { setCurrentTheme } from 'features/ui/store/uiSlice'; import type { ReactNode } from 'react'; -import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { FaCheck, FaPalette } from 'react-icons/fa'; export default function ThemeChanger() { const { t } = useTranslation(); - const { setColorMode, colorMode } = useColorMode(); + const dispatch = useAppDispatch(); const currentTheme = useAppSelector( (state: RootState) => state.ui.currentTheme @@ -22,16 +21,9 @@ export default function ThemeChanger() { dark: t('common.darkTheme'), light: t('common.lightTheme'), green: t('common.greenTheme'), + ocean: t('common.oceanTheme'), }; - useEffect(() => { - // syncs the redux store theme to the chakra's theme on startup and when - // setCurrentTheme is dispatched - if (colorMode !== currentTheme) { - setColorMode(currentTheme); - } - }, [setColorMode, colorMode, currentTheme]); - const handleChangeTheme = (theme: string) => { dispatch(setCurrentTheme(theme)); }; @@ -42,9 +34,10 @@ export default function ThemeChanger() { Object.keys(THEMES).forEach((theme) => { themesToRender.push( : undefined} size="sm" onClick={() => handleChangeTheme(theme)} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss b/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss deleted file mode 100644 index 0208f30a7f..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss +++ /dev/null @@ -1,55 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.floating-show-hide-button { - position: absolute; - top: 50%; - transform: translate(0, -50%); - z-index: 20; - padding: 0; - background-color: red !important; - - &.left { - left: 0; - border-radius: 0 0.5rem 0.5rem 0; - } - - &.right { - right: 0; - border-radius: 0.5rem 0 0 0.5rem; - } - - @include Button( - $btn-width: 2rem, - $btn-height: 12rem, - $icon-size: 20px, - $btn-color: var(--btn-btn-base-color), - $btn-color-hover: var(--btn-btn-base-color-hover) - ); -} - -.show-hide-button-options { - position: absolute; - transform: translate(0, -50%); - z-index: 20; - min-width: 2rem; - - top: 50%; - left: calc(42px + 2rem); - - border-radius: 0 0.5rem 0.5rem 0; - - display: flex; - flex-direction: column; - row-gap: 0.5rem; - - button { - border-radius: 0 0.3rem 0.3rem 0; - } -} - -.show-hide-button-gallery { - padding-left: 0.75rem; - padding-right: 0.75rem; - background-color: var(--background-color) !important; - // filter: drop-shadow(0.5rem 0px 1rem var(--floating-button-drop-shadow-color)); -} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx index 928e87f0b1..71b18a60a4 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx @@ -22,8 +22,20 @@ const FloatingGalleryButton = () => { tooltip="Show Gallery (G)" tooltipProps={{ placement: 'top' }} aria-label="Show Gallery" - styleClass="floating-show-hide-button right show-hide-button-gallery" onClick={handleShowGallery} + sx={{ + pos: 'absolute', + top: '50%', + transform: 'translate(0, -50%)', + zIndex: 31, + p: 0, + insetInlineEnd: 0, + px: 3, + h: 48, + w: 8, + borderStartEndRadius: 0, + borderEndEndRadius: 0, + }} > diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx index d9e1722f39..24928db923 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx @@ -1,3 +1,4 @@ +import { ChakraProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -15,6 +16,11 @@ import { isEqual } from 'lodash'; import { FaSlidersH } from 'react-icons/fa'; +const floatingButtonStyles: ChakraProps['sx'] = { + borderStartStartRadius: 0, + borderEndStartRadius: 0, +}; + export const floatingSelector = createSelector( [gallerySelector, uiSelector, activeTabNameSelector], (gallery: GalleryState, ui, activeTabName) => { @@ -76,22 +82,32 @@ const FloatingParametersPanelButtons = () => { }; return shouldShowParametersPanelButton ? ( -
          + {shouldShowProcessButtons && ( <> - - + + )} -
          + ) : null; }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss deleted file mode 100644 index edb307941b..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.image-to-image-area { - display: flex; - flex-direction: column; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.image-to-image-strength-main-option { - display: flex; - row-gap: 0.5rem !important; - - .invokeai__slider-component-label { - color: var(--text-color-secondary); - font-size: 0.9rem !important; - } -} - -.init-image-preview-header { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - - h2 { - font-weight: bold; - font-size: 0.9rem; - } -} - -.init-image-preview { - position: relative; - height: 100%; - width: 100%; - display: flex; - align-items: center; - justify-content: center; - - img { - border-radius: 0.5rem; - object-fit: contain; - position: absolute; - } -} - -.image-to-image-current-image-display { - position: relative; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx index a3c1ca824d..173985697f 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx @@ -1,33 +1,49 @@ +import { ChakraProps, Flex, Grid } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import ImageUploadButton from 'common/components/ImageUploaderButton'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; import InitImagePreview from './InitImagePreview'; +const workareaSplitViewStyle: ChakraProps['sx'] = { + flexDirection: 'column', + height: '100%', + width: '100%', + gap: 4, + + padding: 4, +}; + const ImageToImageDisplay = () => { const initialImage = useAppSelector( (state: RootState) => state.generation.initialImage ); - const { currentImage } = useAppSelector((state: RootState) => state.gallery); - const imageToImageComponent = initialImage ? ( -
          + -
          + ) : ( ); return ( -
          -
          {imageToImageComponent}
          - {currentImage && ( -
          - -
          - )} -
          + + + {imageToImageComponent} + + + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx deleted file mode 100644 index 98a6bb8ae6..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; -import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; -import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; - -import { useTranslation } from 'react-i18next'; - -export default function ImageToImageOptions() { - const { t } = useTranslation(); - const imageToImageAccordionItems = { - imageToImage: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - - - - ), - }, - }; - return ; -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx index 531e95f161..d5f2268cb8 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx @@ -10,19 +10,29 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; import PromptInput from 'features/parameters/components/PromptInput/PromptInput'; import InvokeOptionsPanel from 'features/ui/components/InvokeParametersPanel'; import { useTranslation } from 'react-i18next'; -import ImageToImageOptions from './ImageToImageOptions'; +import ImageToImageSettings from './ImageToImageSettings'; export default function ImageToImagePanel() { const { t } = useTranslation(); const imageToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + imageToImage: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -60,13 +70,11 @@ export default function ImageToImagePanel() { return ( - + - - ); diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx new file mode 100644 index 0000000000..fb53c7006b --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx @@ -0,0 +1,15 @@ +import { VStack } from '@chakra-ui/react'; +import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; +import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; + +import { useTranslation } from 'react-i18next'; + +export default function ImageToImageSettings() { + const { t } = useTranslation(); + return ( + + + + + ); +} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx index d8242062a6..9eb26129a7 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx @@ -1,4 +1,4 @@ -import { Image, useToast } from '@chakra-ui/react'; +import { Flex, Image, Text, useToast } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageUploaderIconButton from 'common/components/ImageUploaderIconButton'; @@ -28,22 +28,49 @@ export default function InitImagePreview() { return ( <> -
          -

          {t('parameters.initialImage')}

          + + + {t('parameters.initialImage')} + -
          + {initialImage && ( -
          + -
          + )} ); diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css new file mode 100644 index 0000000000..f43861edba --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css @@ -0,0 +1,35 @@ +.ltr-parameters-panel-transition-enter { + transform: translateX(-150%); +} + +.ltr-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.ltr-parameters-panel-transition-exit { + transform: translateX(0); +} + +.ltr-parameters-panel-transition-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-enter { + transform: translateX(150%); +} + +.rtl-parameters-panel-transition-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.rtl-parameters-panel-transition-exit { + transform: translateX(0); +} + +.rtl-parameters-panel-transition-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss deleted file mode 100644 index 69b9755ca8..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss +++ /dev/null @@ -1,90 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.parameters-panel-wrapper-enter { - transform: translateX(-150%); -} - -.parameters-panel-wrapper-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper-exit { - transform: translateX(0); -} - -.parameters-panel-wrapper-exit-active { - transform: translateX(-150%); - transition: all 120ms ease-out; -} - -.parameters-panel-wrapper { - background-color: var(--background-color); - height: $app-content-height; - width: $options-bar-max-width; - max-width: $options-bar-max-width; - - flex-shrink: 0; - position: relative; - overflow-y: scroll; - @include HideScrollbar; - - .parameters-panel { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - height: 100%; - @include HideScrollbar; - background-color: var(--background-color); - } - - &[data-pinned='false'] { - z-index: 20; - - position: fixed; - top: 0; - left: 0; - filter: var(--floating-panel-drop-shadow); - width: calc($options-bar-max-width + 2rem); - max-width: calc($options-bar-max-width + 2rem); - height: 100%; - - .parameters-panel-margin { - margin: 1rem; - } - } - - .parameters-panel-pin-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 1rem; - right: 1rem; - z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - } - svg { - opacity: 0.5; - } - } -} - -.invoke-ai-logo-wrapper { - display: flex; - align-items: center; - column-gap: 0.7rem; - padding-left: 0.5rem; - padding-top: $progress-bar-thickness; - - img { - width: 32px; - height: 32px; - } - - h1 { - font-size: 1.4rem; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx index 8dcd4f4a78..e7e610df6c 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, Flex, Tooltip, Icon, useTheme } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -15,9 +15,18 @@ import { CSSTransition } from 'react-transition-group'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setParametersPanelScrollPosition } from 'features/ui/store/uiSlice'; -import InvokeAILogo from 'assets/images/logo.png'; import { isEqual } from 'lodash'; import { uiSelector } from '../store/uiSelectors'; +import { useTranslation } from 'react-i18next'; +import { + APP_CONTENT_HEIGHT, + OPTIONS_BAR_MAX_WIDTH, + PROGRESS_BAR_THICKNESS, +} from 'theme/util/constants'; +import InvokeAILogoComponent from 'features/system/components/InvokeAILogoComponent'; + +import './InvokeParametersPanel.css'; +import { no_scrollbar } from 'theme/components/scrollbar'; type Props = { children: ReactNode }; @@ -47,6 +56,8 @@ const optionsPanelSelector = createSelector( const InvokeOptionsPanel = (props: Props) => { const dispatch = useAppDispatch(); + const { direction } = useTheme(); + const { shouldShowParametersPanel, shouldHoldParametersPanelOpen, @@ -60,6 +71,8 @@ const InvokeOptionsPanel = (props: Props) => { const { children } = props; + const { t } = useTranslation(); + // Hotkeys useHotkeys( 'o', @@ -145,11 +158,10 @@ const InvokeOptionsPanel = (props: Props) => { } unmountOnExit timeout={200} - classNames="parameters-panel-wrapper" + classNames={`${direction}-parameters-panel-transition`} > -
          { onMouseOver={ !shouldPinParametersPanel ? cancelCloseOptionsPanelTimer : undefined } - style={{ - borderRight: !shouldPinParametersPanel - ? '0.3rem solid var(--tab-list-text-inactive)' - : '', + sx={{ + borderInlineEndWidth: !shouldPinParametersPanel ? 5 : 0, + borderInlineEndStyle: 'solid', + bg: 'base.900', + borderColor: 'base.700', + height: APP_CONTENT_HEIGHT, + width: OPTIONS_BAR_MAX_WIDTH, + maxWidth: OPTIONS_BAR_MAX_WIDTH, + flexShrink: 0, + position: 'relative', + overflowY: 'scroll', + overflowX: 'hidden', + ...no_scrollbar, + ...(!shouldPinParametersPanel && { + zIndex: 20, + position: 'fixed', + top: 0, + insetInlineStart: 0, + width: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + maxWidth: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, + height: '100%', + }), }} > -
          -
          + ) => { if (e.target !== optionsPanelContainerRef.current) { @@ -175,28 +204,44 @@ const InvokeOptionsPanel = (props: Props) => { !shouldPinParametersPanel && setCloseOptionsPanelTimer(); } }} + sx={{ + display: 'flex', + flexDirection: 'column', + rowGap: 2, + height: '100%', + }} > - -
          + - {shouldPinParametersPanel ? : } -
          + +
          {!shouldPinParametersPanel && ( -
          - invoke-ai-logo -

          - invoke ai -

          -
          + + + )} {children} -
          -
          -
          + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss deleted file mode 100644 index 1a113b4148..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.app-tabs { - display: grid; - grid-template-columns: min-content auto; - column-gap: 1rem; - // height: 100%; - height: $app-content-height; -} - -.app-tabs-list { - display: grid; - row-gap: 0.3rem; - grid-auto-rows: min-content; - color: var(--tab-list-text-inactive); - - button { - font-size: 0.85rem; - padding: 0.5rem; - - &:hover { - background-color: var(--tab-hover-color); - border-radius: 0.3rem; - } - - svg { - width: 24px; - height: 24px; - } - - &[aria-selected='true'] { - background-color: var(--tab-list-bg); - color: var(--tab-list-text); - font-weight: bold; - border-radius: 0.3rem; - border: none; - } - } -} - -.app-tabs-panels { - .app-tabs-panel { - padding: 0; - height: 100%; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx index f330fbd0ed..fb16969319 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx @@ -1,16 +1,18 @@ -import { Tab, TabPanel, TabPanels, Tabs, Tooltip } from '@chakra-ui/react'; +import { + Icon, + Tab, + TabList, + TabPanel, + TabPanels, + Tabs, + Tooltip, +} from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import NodesWIP from 'common/components/WorkInProgress/NodesWIP'; import { PostProcessingWIP } from 'common/components/WorkInProgress/PostProcessingWIP'; import TrainingWIP from 'common/components/WorkInProgress/Training'; import useUpdateTranslations from 'common/hooks/useUpdateTranslations'; -import ImageToImageIcon from 'common/icons/ImageToImageIcon'; -import NodesIcon from 'common/icons/NodesIcon'; -import PostprocessingIcon from 'common/icons/PostprocessingIcon'; -import TextToImageIcon from 'common/icons/TextToImageIcon'; -import TrainingIcon from 'common/icons/TrainingIcon'; -import UnifiedCanvasIcon from 'common/icons/UnifiedCanvasIcon'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setShouldShowGallery } from 'features/gallery/store/gallerySlice'; import Lightbox from 'features/lightbox/components/Lightbox'; @@ -23,6 +25,14 @@ import { import i18n from 'i18n'; import { ReactElement } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; +import { + MdDeviceHub, + MdFlashOn, + MdGridOn, + MdPhotoFilter, + MdPhotoLibrary, + MdTextFields, +} from 'react-icons/md'; import { activeTabIndexSelector } from '../store/uiSelectors'; import { floatingSelector } from './FloatingParametersPanelButtons'; import ImageToImageWorkarea from './ImageToImage'; @@ -37,32 +47,32 @@ export interface InvokeTabInfo { export const tabDict: Record = { txt2img: { - title: , + title: , workarea: , tooltip: 'Text To Image', }, img2img: { - title: , + title: , workarea: , tooltip: 'Image To Image', }, unifiedCanvas: { - title: , + title: , workarea: , tooltip: 'Unified Canvas', }, nodes: { - title: , + title: , workarea: , tooltip: 'Nodes', }, postprocess: { - title: , + title: , workarea: , tooltip: 'Post Processing', }, training: { - title: , + title: , workarea: , tooltip: 'Training', }, @@ -152,7 +162,7 @@ export default function InvokeTabs() { key={key} hasArrow label={tabDict[key as keyof typeof tabDict].tooltip} - placement="right" + placement="end" > {tabDict[key as keyof typeof tabDict].title} @@ -165,7 +175,7 @@ export default function InvokeTabs() { const tabPanelsToRender: ReactElement[] = []; Object.keys(tabDict).forEach((key) => { tabPanelsToRender.push( - + {tabDict[key as keyof typeof tabDict].workarea} ); @@ -176,18 +186,14 @@ export default function InvokeTabs() { return ( { dispatch(setActiveTab(index)); }} > -
          {renderTabs()}
          - - {isLightBoxOpen ? : renderTabPanels()} - + {renderTabs()} + {isLightBoxOpen ? : renderTabPanels()}
          ); } diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss deleted file mode 100644 index a3821d9a77..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss +++ /dev/null @@ -1,71 +0,0 @@ -@use '../../../styles/Mixins/' as *; - -.workarea-wrapper { - position: relative; - width: 100%; - height: 100%; - - .workarea-main { - display: flex; - column-gap: 1rem; - height: 100%; - - .workarea-children-wrapper { - position: relative; - width: 100%; - height: 100%; - } - .workarea-split-view { - width: 100%; - height: 100%; - display: grid; - grid-template-columns: 1fr 1fr; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - .workarea-split-view-left { - padding-right: 0.5rem; - } - .workarea-split-view-right { - padding-left: 0.5rem; - } - } - - .workarea-single-view { - width: 100%; - height: 100%; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - } - - .workarea-split-view-left, - .workarea-split-view-right { - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - row-gap: 1rem; - background-color: var(--background-color-secondary); - border-radius: 0.5rem; - padding: 1rem; - } - } -} -.workarea-split-button { - position: absolute; - cursor: pointer; - padding: 0.5rem; - top: 0; - right: 0; - // z-index: 20; - - &[data-selected='true'] { - top: 0; - right: 0; - svg { - opacity: 1; - } - } - svg { - opacity: 0.5; - } -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx index d3aca2dae9..0210d249cf 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx @@ -1,4 +1,4 @@ -import { Tooltip } from '@chakra-ui/react'; +import { Box, BoxProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageGallery from 'features/gallery/components/ImageGallery'; @@ -8,27 +8,20 @@ import { uiSelector, } from 'features/ui/store/uiSelectors'; import { DragEvent, ReactNode } from 'react'; -import { VscSplitHorizontal } from 'react-icons/vsc'; -import { - setDoesCanvasNeedScaling, - setInitialCanvasImage, -} from 'features/canvas/store/canvasSlice'; +import { setInitialCanvasImage } from 'features/canvas/store/canvasSlice'; import useGetImageByUuid from 'features/gallery/hooks/useGetImageByUuid'; import { lightboxSelector } from 'features/lightbox/store/lightboxSelectors'; -import { setShouldShowDualDisplay } from 'features/ui/store/uiSlice'; import { isEqual } from 'lodash'; const workareaSelector = createSelector( [uiSelector, lightboxSelector, activeTabNameSelector], (ui, lightbox, activeTabName) => { - const { shouldShowDualDisplay, shouldPinParametersPanel } = ui; + const { shouldPinParametersPanel } = ui; const { isLightboxOpen } = lightbox; return { - shouldShowDualDisplay, shouldPinParametersPanel, isLightboxOpen, - shouldShowDualDisplayButton: ['inpainting'].includes(activeTabName), activeTabName, }; }, @@ -39,29 +32,18 @@ const workareaSelector = createSelector( } ); -type InvokeWorkareaProps = { +type InvokeWorkareaProps = BoxProps & { optionsPanel: ReactNode; children: ReactNode; - styleClass?: string; }; const InvokeWorkarea = (props: InvokeWorkareaProps) => { const dispatch = useAppDispatch(); - const { optionsPanel, children, styleClass } = props; - const { - activeTabName, - shouldShowDualDisplay, - isLightboxOpen, - shouldShowDualDisplayButton, - } = useAppSelector(workareaSelector); + const { optionsPanel, children, ...rest } = props; + const { activeTabName, isLightboxOpen } = useAppSelector(workareaSelector); const getImageByUuid = useGetImageByUuid(); - const handleDualDisplay = () => { - dispatch(setShouldShowDualDisplay(!shouldShowDualDisplay)); - dispatch(setDoesCanvasNeedScaling(true)); - }; - const handleDrop = (e: DragEvent) => { const uuid = e.dataTransfer.getData('invokeai/imageUuid'); const image = getImageByUuid(uuid); @@ -74,30 +56,15 @@ const InvokeWorkarea = (props: InvokeWorkareaProps) => { }; return ( -
          -
          + + {optionsPanel} -
          + {children} - {shouldShowDualDisplayButton && ( - -
          - -
          -
          - )} -
          +
          {!isLightboxOpen && } -
          -
          + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss deleted file mode 100644 index 65cfb8a2bc..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.text-to-image-area { - padding: 1rem; - height: 100%; -} diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx index 36cd60fd36..219b70bc2d 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx @@ -1,12 +1,20 @@ +import { Box, Flex } from '@chakra-ui/react'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; const TextToImageDisplay = () => { return ( -
          -
          + + -
          -
          + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx index ee9f7ace3f..09b96be20c 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx @@ -10,7 +10,7 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,11 @@ export default function TextToImagePanel() { const { t } = useTranslation(); const textToImageAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -59,12 +64,11 @@ export default function TextToImagePanel() { return ( - + - ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss deleted file mode 100644 index 6a99c38003..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss +++ /dev/null @@ -1,103 +0,0 @@ -@use '../../../../styles/Mixins/' as *; - -.inpainting-main-area { - display: flex; - flex-direction: column; - align-items: center; - row-gap: 1rem; - width: 100%; - height: 100%; - - .inpainting-settings { - display: flex; - align-items: center; - column-gap: 0.5rem; - - svg { - transform: scale(0.9); - } - - .inpainting-buttons-group { - display: flex; - align-items: center; - column-gap: 0.5rem; - } - - .inpainting-button-dropdown { - display: flex; - flex-direction: column; - row-gap: 0.5rem; - } - - .inpainting-color-picker { - margin-left: 1rem; - } - - .inpainting-brush-options { - display: flex; - align-items: center; - column-gap: 1rem; - } - } -} - -.inpainting-canvas-area { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - row-gap: 1rem; - width: 100%; - height: 100%; -} - -.inpainting-canvas-spiner { - display: flex; - align-items: center; - width: 100%; - height: 100%; -} - -.inpainting-canvas-container { - display: flex; - position: relative; - height: 100%; - width: 100%; - border-radius: 0.5rem; -} - -.inpainting-canvas-wrapper { - position: relative; -} - -.inpainting-canvas-stage { - outline: none; - border-radius: 0.5rem; - box-shadow: 0px 0px 0px 1px var(--border-color-light); - overflow: hidden; - - canvas { - outline: none; - border-radius: 0.5rem; - } -} - -.inpainting-options-btn { - min-height: 2rem; -} - -.canvas-status-text { - position: absolute; - top: 0; - left: 0; - background-color: var(--background-color); - opacity: 0.65; - display: flex; - flex-direction: column; - font-size: 0.8rem; - padding: 0.25rem; - min-width: 12rem; - border-radius: 0.25rem; - margin: 0.25rem; - pointer-events: none; -} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx index f06c1ae988..2ca4139ed0 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx @@ -1,6 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; -import { Flex } from '@chakra-ui/react'; +import { Box, Flex } from '@chakra-ui/react'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; @@ -45,21 +45,28 @@ const UnifiedCanvasDisplayBeta = () => { }, [dispatch]); return ( -
          + - + {doesCanvasNeedScaling ? : } -
          + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx index 44deea45c6..9b9310b197 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasLimitStrokesToBox from './UnifiedCanvasLimitStrokesToBox'; export default function UnifiedCanvasBaseBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx index 387495598d..1a5e42461b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasColorPicker from './UnifiedCanvasColorPicker'; export default function UnifiedCanvasBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx index f38d274189..0ff57236c2 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx @@ -49,7 +49,6 @@ export default function UnifiedCanvasBrushSize() { onChange={(newSize) => dispatch(setBrushSize(newSize))} sliderNumberInputProps={{ max: 500 }} inputReadOnly={false} - width="100px" isCompact /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index e6957a63d7..73db41d0d3 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -80,38 +80,38 @@ export default function UnifiedCanvasColorPicker() { trigger="hover" triggerComponent={ } > - + {layer === 'base' && ( dispatch(setBrushColor(newColor))} /> )} {layer === 'mask' && ( dispatch(setMaskColor(newColor))} /> )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx index 9e24e0acfb..71f41496ed 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx @@ -6,7 +6,7 @@ import UnifiedCanvasPreserveMask from './UnifiedCanvasPreserveMask'; export default function UnifiedCanvasMaskBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx index 2c5a8277db..8881c93bb1 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx @@ -5,7 +5,7 @@ import UnifiedCanvasSnapToGrid from './UnifiedCanvasSnapToGrid'; export default function UnifiedCanvasMoveSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx index 09c6f38812..4dc3778b71 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx @@ -68,7 +68,7 @@ const UnifiedCanvasSettings = () => { /> } > - + + {layer == 'base' && ['brush', 'eraser', 'colorPicker'].includes(tool) && ( )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx index 6c537d8930..4b73d28749 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx @@ -32,7 +32,7 @@ export default function UnifiedCanvasMoveTool() { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - data-selected={tool === 'move' || isStaging} + isChecked={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx index 93a67ad574..5880aa037b 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx @@ -25,7 +25,7 @@ export default function UnifiedCanvasProcessingButtons() { }; return ( - + } onClick={handleResetCanvas} - style={{ backgroundColor: 'var(--btn-delete-image)' }} isDisabled={isStaging} + colorScheme="error" /> ); } diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx index 0b941dd706..82b48fe435 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx @@ -113,13 +113,13 @@ const UnifiedCanvasToolSelect = () => { const handleEraseBoundingBox = () => dispatch(addEraseRect()); return ( - + } - data-selected={tool === 'brush' && !isStaging} + isChecked={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -127,7 +127,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (B)`} icon={} - data-selected={tool === 'eraser' && !isStaging} + isChecked={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -152,7 +152,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - data-selected={tool === 'colorPicker' && !isStaging} + isChecked={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} width="max-content" diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx index 9860bd12f7..cf41020cbb 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx @@ -23,30 +23,30 @@ const UnifiedCanvasToolbarBeta = () => { ); return ( - + - + - + - + - + - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx index 37e7e71fdb..ac7f086bea 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx @@ -1,9 +1,10 @@ +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; -import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; +import IAICanvasToolbar from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { debounce, isEqual } from 'lodash'; @@ -43,16 +44,39 @@ const UnifiedCanvasDisplay = () => { }, [dispatch]); return ( -
          -
          -
          - -
          - {doesCanvasNeedScaling ? : } -
          -
          -
          -
          + + + + + {doesCanvasNeedScaling ? : } + + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx index 392648075e..97ba3f23ec 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx @@ -10,7 +10,7 @@ import SymmetryToggle from 'features/parameters/components/AdvancedParameters/Ou import SeedSettings from 'features/parameters/components/AdvancedParameters/Seed/SeedSettings'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; +import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,6 +22,16 @@ export default function UnifiedCanvasPanel() { const { t } = useTranslation(); const unifiedCanvasAccordions = { + general: { + header: `${t('parameters.general')}`, + feature: undefined, + content: , + }, + unifiedCanvasImg2Img: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: , + }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -55,28 +65,14 @@ export default function UnifiedCanvasPanel() { }, }; - const unifiedCanvasImg2ImgAccordion = { - unifiedCanvasImg2Img: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: ( - - ), - }, - }; - return ( - + - - + {/* */} ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx index 49db741541..b35504a2ac 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx @@ -10,10 +10,7 @@ export default function UnifiedCanvasWorkarea() { (state: RootState) => state.ui.shouldUseCanvasBetaLayout ); return ( - } - styleClass="inpainting-workarea-overrides" - > + }> {shouldUseCanvasBetaLayout ? ( ) : ( diff --git a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts index 3bbb6c206f..d9abae23d8 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts @@ -10,7 +10,6 @@ const initialtabsState: UIState = { shouldHoldParametersPanelOpen: false, shouldPinParametersPanel: true, shouldShowParametersPanel: true, - shouldShowDualDisplay: true, shouldShowImageDetails: false, shouldUseCanvasBetaLayout: false, shouldShowExistingModelsInSearch: false, @@ -52,9 +51,6 @@ export const uiSlice = createSlice({ ) => { state.shouldHoldParametersPanelOpen = action.payload; }, - setShouldShowDualDisplay: (state, action: PayloadAction) => { - state.shouldShowDualDisplay = action.payload; - }, setShouldShowImageDetails: (state, action: PayloadAction) => { state.shouldShowImageDetails = action.payload; }, @@ -83,7 +79,6 @@ export const { setShouldHoldParametersPanelOpen, setShouldPinParametersPanel, setShouldShowParametersPanel, - setShouldShowDualDisplay, setShouldShowImageDetails, setShouldUseCanvasBetaLayout, setShouldShowExistingModelsInSearch, diff --git a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts index cd9b3817a1..5885bc3ed7 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts @@ -7,7 +7,6 @@ export interface UIState { shouldHoldParametersPanelOpen: boolean; shouldPinParametersPanel: boolean; shouldShowParametersPanel: boolean; - shouldShowDualDisplay: boolean; shouldShowImageDetails: boolean; shouldUseCanvasBetaLayout: boolean; shouldShowExistingModelsInSearch: boolean; diff --git a/invokeai/frontend/web/src/i18.d.ts b/invokeai/frontend/web/src/i18.d.ts index 61878384e6..90cee53385 100644 --- a/invokeai/frontend/web/src/i18.d.ts +++ b/invokeai/frontend/web/src/i18.d.ts @@ -1,11 +1,16 @@ import 'i18next'; +import en from '../public/locales/en.json'; + declare module 'i18next' { // Extend CustomTypeOptions interface CustomTypeOptions { // Setting Default Namespace As English defaultNS: 'en'; // Custom Types For Resources + resources: { + en: typeof en; + }; // Never Return Null returnNull: false; } diff --git a/invokeai/frontend/web/src/main.tsx b/invokeai/frontend/web/src/main.tsx index 09b99d37f6..edbca0c368 100644 --- a/invokeai/frontend/web/src/main.tsx +++ b/invokeai/frontend/web/src/main.tsx @@ -1,38 +1,36 @@ -import { ChakraProvider } from '@chakra-ui/react'; -import createCache from '@emotion/cache'; -import { CacheProvider } from '@emotion/react'; -import React from 'react'; +import React, { lazy } from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import { store } from './app/store'; import { persistor } from './persistor'; +import '@fontsource/inter/100.css'; +import '@fontsource/inter/200.css'; +import '@fontsource/inter/300.css'; +import '@fontsource/inter/400.css'; +import '@fontsource/inter/500.css'; +import '@fontsource/inter/600.css'; +import '@fontsource/inter/700.css'; +import '@fontsource/inter/800.css'; +import '@fontsource/inter/900.css'; -import App from './app/App'; import Loading from './Loading'; -export const emotionCache = createCache({ - key: 'invokeai-style-cache', - prepend: true, -}); - -// Custom Styling -import './styles/index.scss'; - // Localization import './i18n'; +const App = lazy(() => import('./app/App')); +const ThemeLocaleProvider = lazy(() => import('./app/ThemeLocaleProvider')); + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } persistor={persistor}> - - - }> - - - - + }> + + + + diff --git a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss index 93772d4ef8..ee3795eae5 100644 --- a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss +++ b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss @@ -5,36 +5,36 @@ $btn-height: 100%, $icon-size: 20px ) { - min-width: $btn-width; - min-height: $btn-height; - background-color: $btn-color !important; + // min-width: $btn-width; + // min-height: $btn-height; + // background-color: $btn-color; - &:hover { - background-color: $btn-color-hover; - } + // &:hover { + // background-color: $btn-color-hover; + // } - &:disabled { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color); - } - } + // &:disabled { + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color); + // } + // } - svg { - width: $icon-size; - height: $icon-size; - color: var(--btn-svg-color); - } + // svg { + // width: $icon-size; + // height: $icon-size; + // color: var(--btn-svg-color); + // } } @mixin BaseButton { - background-color: var(--btn-base-color); - &:hover { - background-color: var(--btn-base-color-hover); - } - &:disabled { - &:hover { - background-color: var(--btn-base-color); - } - } + // background-color: var(--btn-base-color); + // &:hover { + // background-color: var(--btn-base-color-hover); + // } + // &:disabled { + // &:hover { + // background-color: var(--btn-base-color); + // } + // } } diff --git a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss index 0cf98567be..7f592ffe7c 100644 --- a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss +++ b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss @@ -1,159 +1,159 @@ -@media (max-width: 600px) { - #root { - .app-content { - padding: 5px; - .site-header { - position: fixed; - display: flex; - height: 100px; - z-index: 1; - .site-header-left-side { - position: absolute; - display: flex; - min-width: 145px; - float: left; - padding-left: 0; - } - .site-header-right-side { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; - grid-template-rows: 25px 25px 25px; - grid-template-areas: - 'logoSpace logoSpace logoSpace sampler sampler sampler' - 'status status status status status status' - 'btn1 btn2 btn3 btn4 btn5 btn6'; - row-gap: 15px; - .chakra-popover__popper { - grid-area: logoSpace; - } - > :nth-child(1).chakra-text { - grid-area: status; - width: 100%; - display: flex; - justify-content: center; - } - > :nth-child(2) { - grid-area: sampler; - display: flex; - justify-content: center; - align-items: center; - select { - width: 185px; - margin-top: 10px; - } - .chakra-select__icon-wrapper { - right: 10px; - svg { - margin-top: 10px; - } - } - } - > :nth-child(3) { - grid-area: btn1; - } - > :nth-child(4) { - grid-area: btn2; - } - > :nth-child(6) { - grid-area: btn3; - } - > :nth-child(7) { - grid-area: btn4; - } - > :nth-child(8) { - grid-area: btn5; - } - > :nth-child(9) { - grid-area: btn6; - } - } - } - .app-tabs { - position: fixed; - display: flex; - flex-direction: column; - row-gap: 15px; - max-width: 100%; - overflow: hidden; - margin-top: 120px; - .app-tabs-list { - display: flex; - justify-content: space-between; - } - .app-tabs-panels { - overflow: hidden; - overflow-y: scroll; - .workarea-main { - display: grid; - grid-template-areas: - 'workarea' - 'options' - 'gallery'; - row-gap: 15px; - .parameters-panel-wrapper { - grid-area: options; - width: 100%; - max-width: 100%; - height: inherit; - overflow: inherit; - padding: 0 10px; - .main-settings-row { - max-width: 100%; - } - .advanced-parameters-item { - max-width: 100%; - } - } - .workarea-children-wrapper { - grid-area: workarea; - .workarea-split-view { - display: flex; - flex-direction: column; - } - .current-image-options { - column-gap: 3px; - } - .text-to-image-area { - padding: 0; - } - .current-image-preview { - height: 430px; - } +// @media (max-width: 600px) { +// #root { +// .app-content { +// padding: 5px; +// .site-header { +// position: fixed; +// display: flex; +// height: 100px; +// z-index: 1; +// .site-header-left-side { +// position: absolute; +// display: flex; +// min-width: 145px; +// float: left; +// padding-left: 0; +// } +// .site-header-right-side { +// display: grid; +// grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; +// grid-template-rows: 25px 25px 25px; +// grid-template-areas: +// 'logoSpace logoSpace logoSpace sampler sampler sampler' +// 'status status status status status status' +// 'btn1 btn2 btn3 btn4 btn5 btn6'; +// row-gap: 15px; +// .chakra-popover__popper { +// grid-area: logoSpace; +// } +// > :nth-child(1).chakra-text { +// grid-area: status; +// width: 100%; +// display: flex; +// justify-content: center; +// } +// > :nth-child(2) { +// grid-area: sampler; +// display: flex; +// justify-content: center; +// align-items: center; +// select { +// width: 185px; +// margin-top: 10px; +// } +// .chakra-select__icon-wrapper { +// right: 10px; +// svg { +// margin-top: 10px; +// } +// } +// } +// > :nth-child(3) { +// grid-area: btn1; +// } +// > :nth-child(4) { +// grid-area: btn2; +// } +// > :nth-child(6) { +// grid-area: btn3; +// } +// > :nth-child(7) { +// grid-area: btn4; +// } +// > :nth-child(8) { +// grid-area: btn5; +// } +// > :nth-child(9) { +// grid-area: btn6; +// } +// } +// } +// .app-tabs { +// position: fixed; +// display: flex; +// flex-direction: column; +// row-gap: 15px; +// max-width: 100%; +// overflow: hidden; +// margin-top: 120px; +// .app-tabs-list { +// display: flex; +// justify-content: space-between; +// } +// .app-tabs-panels { +// overflow: hidden; +// overflow-y: scroll; +// .workarea-main { +// display: grid; +// grid-template-areas: +// 'workarea' +// 'options' +// 'gallery'; +// row-gap: 15px; +// .parameters-panel-wrapper { +// grid-area: options; +// width: 100%; +// max-width: 100%; +// height: inherit; +// overflow: inherit; +// padding: 0 10px; +// .main-settings-row { +// max-width: 100%; +// } +// .advanced-parameters-item { +// max-width: 100%; +// } +// } +// .workarea-children-wrapper { +// grid-area: workarea; +// .workarea-split-view { +// display: flex; +// flex-direction: column; +// } +// .current-image-options { +// column-gap: 3px; +// } +// .text-to-image-area { +// padding: 0; +// } +// .current-image-preview { +// height: 430px; +// } - //image 2 image - .image-upload-button { - row-gap: 10px; - padding: 5px; - svg { - width: 2rem; - height: 2rem; - margin-top: 10px; - } - } +// //image 2 image +// .image-upload-button { +// row-gap: 10px; +// padding: 5px; +// svg { +// width: 2rem; +// height: 2rem; +// margin-top: 10px; +// } +// } - //Cavas Painting - .inpainting-settings { - display: flex; - flex-wrap: wrap; - row-gap: 10px; - } - .inpainting-canvas-area { - .konvajs-content { - height: 400px !important; - } - } - } - .image-gallery-wrapper { - grid-area: gallery; - min-height: 400px; - .image-gallery-popup { - width: 100% !important; - max-width: 100% !important; - } - } - } - } - } - } - } -} +// //Cavas Painting +// .inpainting-settings { +// display: flex; +// flex-wrap: wrap; +// row-gap: 10px; +// } +// .inpainting-canvas-area { +// .konvajs-content { +// height: 400px !important; +// } +// } +// } +// .image-gallery-wrapper { +// grid-area: gallery; +// min-height: 400px; +// .image-gallery-popup { +// width: 100% !important; +// max-width: 100% !important; +// } +// } +// } +// } +// } +// } +// } +// } diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss index 13c8a507c1..88d2859cb3 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss @@ -1,4 +1,4 @@ -[data-theme='dark'] { +[data-theme='asdf'] { // General Colors --white: rgb(255, 255, 255); diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss index 4c4f93dfbf..67efb7e3fa 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss @@ -1,138 +1,138 @@ -[data-theme='light'] { - // General Colors - --white: rgb(255, 255, 255); +// [data-theme='light'] { +// // General Colors +// --white: rgb(255, 255, 255); - // Accent Colors - --accent-color-dim: rgb(186, 146, 0); - --accent-color: rgb(235, 185, 5); - --accent-color-bright: rgb(255, 200, 0); - --accent-color-hover: var(--accent-color-bright); +// // Accent Colors +// --accent-color-dim: rgb(186, 146, 0); +// --accent-color: rgb(235, 185, 5); +// --accent-color-bright: rgb(255, 200, 0); +// --accent-color-hover: var(--accent-color-bright); - // App Colors - --root-bg-color: rgb(255, 255, 255); - --background-color: rgb(220, 222, 224); - --background-color-light: rgb(250, 252, 254); - --background-color-secondary: rgb(208, 210, 212); +// // App Colors +// --root-bg-color: rgb(255, 255, 255); +// --background-color: rgb(220, 222, 224); +// --background-color-light: rgb(250, 252, 254); +// --background-color-secondary: rgb(208, 210, 212); - --text-color: rgb(0, 0, 0); - --text-color-secondary: rgb(40, 40, 40); - --subtext-color: rgb(24, 24, 34); - --subtext-color-bright: rgb(142, 144, 146); +// --text-color: rgb(0, 0, 0); +// --text-color-secondary: rgb(40, 40, 40); +// --subtext-color: rgb(24, 24, 34); +// --subtext-color-bright: rgb(142, 144, 146); - --border-color: rgb(200, 200, 200); - --border-color-light: rgb(147, 147, 147); +// --border-color: rgb(200, 200, 200); +// --border-color-light: rgb(147, 147, 147); - --svg-color: rgb(50, 50, 50); +// --svg-color: rgb(50, 50, 50); - --invalid: rgb(255, 75, 75); - --invalid-secondary: rgb(120, 5, 5); +// --invalid: rgb(255, 75, 75); +// --invalid-secondary: rgb(120, 5, 5); - --destructive-color: rgb(237, 51, 51); - --destructive-color-hover: rgb(255, 55, 55); +// --destructive-color: rgb(237, 51, 51); +// --destructive-color-hover: rgb(255, 55, 55); - --warning-color: rgb(224, 142, 42); - --warning-color-hover: rgb(255, 167, 60); +// --warning-color: rgb(224, 142, 42); +// --warning-color-hover: rgb(255, 167, 60); - // Error status colors - --border-color-invalid: rgb(255, 80, 50); - --box-shadow-color-invalid: none; +// // Error status colors +// --border-color-invalid: rgb(255, 80, 50); +// --box-shadow-color-invalid: none; - // Tabs - --tab-color: rgb(202, 204, 206); - --tab-hover-color: rgb(196, 198, 200); - --tab-panel-bg: rgb(206, 208, 210); - --tab-list-bg: rgb(235, 185, 5); - --tab-list-text: rgb(0, 0, 0); - --tab-list-text-inactive: rgb(106, 108, 110); +// // Tabs +// --tab-color: rgb(202, 204, 206); +// --tab-hover-color: rgb(196, 198, 200); +// --tab-panel-bg: rgb(206, 208, 210); +// --tab-list-bg: rgb(235, 185, 5); +// --tab-list-text: rgb(0, 0, 0); +// --tab-list-text-inactive: rgb(106, 108, 110); - // Button Colors - --btn-base-color: rgb(184, 186, 188); - --btn-base-color-hover: rgb(230, 232, 234); +// // Button Colors +// --btn-base-color: rgb(184, 186, 188); +// --btn-base-color-hover: rgb(230, 232, 234); - --btn-load-more: rgb(202, 204, 206); - --btn-load-more-hover: rgb(178, 180, 182); - --btn-svg-color: rgb(0, 0, 0); +// --btn-load-more: rgb(202, 204, 206); +// --btn-load-more-hover: rgb(178, 180, 182); +// --btn-svg-color: rgb(0, 0, 0); - --btn-delete-image: rgb(213, 49, 49); +// --btn-delete-image: rgb(213, 49, 49); - // IAI Button Colors - --btn-checkbox-border-hover: rgb(176, 178, 182); - // Progress Bar Color - --progress-bar-color: rgb(235, 185, 5); +// // IAI Button Colors +// --btn-checkbox-border-hover: rgb(176, 178, 182); +// // Progress Bar Color +// --progress-bar-color: rgb(235, 185, 5); - // Prompt Box Colors - --prompt-bg-color: rgb(225, 227, 229); - // Switch - --switch-bg-color: rgb(178, 180, 182); - --switch-bg-active-color: rgb(235, 185, 5); +// // Prompt Box Colors +// --prompt-bg-color: rgb(225, 227, 229); +// // Switch +// --switch-bg-color: rgb(178, 180, 182); +// --switch-bg-active-color: rgb(235, 185, 5); - // Slider - --slider-color: var(--accent-color); - --slider-mark-color: rgb(0, 0, 0); +// // Slider +// --slider-color: var(--accent-color); +// --slider-mark-color: rgb(0, 0, 0); - // Resizable - --resizeable-handle-border-color: rgb(160, 162, 164); +// // Resizable +// --resizeable-handle-border-color: rgb(160, 162, 164); - // Metadata Viewer - --metadata-bg-color: rgba(230, 230, 230, 0.9); - --metadata-json-bg-color: rgba(0, 0, 0, 0.1); +// // Metadata Viewer +// --metadata-bg-color: rgba(230, 230, 230, 0.9); +// --metadata-json-bg-color: rgba(0, 0, 0, 0.1); - // Status Message - --status-good-color: rgb(21, 126, 0); - --status-good-glow: var(--background-color); - --status-working-color: rgb(235, 141, 0); - --status-working-glow: var(--background-color); - --status-bad-color: rgb(202, 0, 0); - --status-bad-glow: var(--background-color); - --notice-color: rgb(255, 71, 90); +// // Status Message +// --status-good-color: rgb(21, 126, 0); +// --status-good-glow: var(--background-color); +// --status-working-color: rgb(235, 141, 0); +// --status-working-glow: var(--background-color); +// --status-bad-color: rgb(202, 0, 0); +// --status-bad-glow: var(--background-color); +// --notice-color: rgb(255, 71, 90); - // Settings Modal - --settings-modal-bg: rgb(202, 204, 206); +// // Settings Modal +// --settings-modal-bg: rgb(202, 204, 206); - // Input - --input-checkbox-bg: rgb(167, 167, 171); - --input-checkbox-checked-bg: rgb(235, 185, 5); - --input-checkbox-checked-tick: rgb(0, 0, 0); - --input-border-color: rgb(0, 0, 0); - --input-box-shadow-color: none; +// // Input +// --input-checkbox-bg: rgb(167, 167, 171); +// --input-checkbox-checked-bg: rgb(235, 185, 5); +// --input-checkbox-checked-tick: rgb(0, 0, 0); +// --input-border-color: rgb(0, 0, 0); +// --input-box-shadow-color: none; - // Console - --error-level-info: rgb(42, 42, 42); - --error-level-warning: rgb(173, 121, 0); - --error-level-error: rgb(145, 14, 0); - --console-bg-color: rgb(220, 224, 230); - --console-icon-button-bg-color: var(--switch-bg-color); - --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); +// // Console +// --error-level-info: rgb(42, 42, 42); +// --error-level-warning: rgb(173, 121, 0); +// --error-level-error: rgb(145, 14, 0); +// --console-bg-color: rgb(220, 224, 230); +// --console-icon-button-bg-color: var(--switch-bg-color); +// --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); - // Img2Img - --img2img-img-bg-color: rgb(180, 182, 184); +// // Img2Img +// --img2img-img-bg-color: rgb(180, 182, 184); - // Gallery +// // Gallery - // Context Menus - --context-menu-bg-color: var(--background-color); - --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), - 0px 10px 20px -15px rgba(22, 23, 24, 0.2); - --context-menu-bg-color-hover: var(--background-color-secondary); +// // Context Menus +// --context-menu-bg-color: var(--background-color); +// --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), +// 0px 10px 20px -15px rgba(22, 23, 24, 0.2); +// --context-menu-bg-color-hover: var(--background-color-secondary); - // Shadows - --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); +// // Shadows +// --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); - // Canvas - --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); - --inpainting-alerts-icon-color: rgb(0, 0, 0); - --inpainting-alerts-bg-active: rgb(255, 200, 0); - --inpainting-alerts-icon-active: rgb(0, 0, 0); - --inpainting-alerts-bg-alert: var(--invalid); - --inpainting-alerts-icon-alert: rgb(0, 0, 0); +// // Canvas +// --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); +// --inpainting-alerts-icon-color: rgb(0, 0, 0); +// --inpainting-alerts-bg-active: rgb(255, 200, 0); +// --inpainting-alerts-icon-active: rgb(0, 0, 0); +// --inpainting-alerts-bg-alert: var(--invalid); +// --inpainting-alerts-icon-alert: rgb(0, 0, 0); - // Checkerboard - --checkboard-dots-color: rgb(160, 160, 172); +// // Checkerboard +// --checkboard-dots-color: rgb(160, 160, 172); - // Scrollbar - --scrollbar-color: rgb(180, 180, 184); - --scrollbar-color-hover: rgb(150, 150, 154); +// // Scrollbar +// --scrollbar-color: rgb(180, 180, 184); +// --scrollbar-color-hover: rgb(150, 150, 154); - // SubHook - --subhook-color: rgb(0, 0, 0); -} +// // SubHook +// --subhook-color: rgb(0, 0, 0); +// } diff --git a/invokeai/frontend/web/src/styles/_Animations.scss b/invokeai/frontend/web/src/styles/_Animations.scss deleted file mode 100644 index 48fbbc8425..0000000000 --- a/invokeai/frontend/web/src/styles/_Animations.scss +++ /dev/null @@ -1,20 +0,0 @@ -@keyframes slideOut { - from { - transform: translateX(10rem); - } - to { - transform: translateX(0); - } -} - -@keyframes pulse { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.1); - } - 100% { - transform: scale(1); - } -} diff --git a/invokeai/frontend/web/src/styles/_Fonts.scss b/invokeai/frontend/web/src/styles/_Fonts.scss deleted file mode 100644 index fea170026b..0000000000 --- a/invokeai/frontend/web/src/styles/_Fonts.scss +++ /dev/null @@ -1,15 +0,0 @@ -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter.ttf); - font-display: swap; - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url(../assets/fonts/Inter/Inter-Bold.ttf); - font-display: swap; - font-weight: 600; - font-style: normal; -} diff --git a/invokeai/frontend/web/src/styles/_Misc.scss b/invokeai/frontend/web/src/styles/_Misc.scss deleted file mode 100644 index 47dec4c061..0000000000 --- a/invokeai/frontend/web/src/styles/_Misc.scss +++ /dev/null @@ -1,45 +0,0 @@ -// .checkerboard { -// background-position: 0px 0px, 10px 10px; -// // background-size: 20px 20px; -// // background-image: linear-gradient( -// // 45deg, -// // #eee 25%, -// // transparent 25%, -// // transparent 75%, -// // #eee 75%, -// // #eee 100% -// // ), -// // linear-gradient(45deg, #eee 25%, white 25%, white 75%, #eee 75%, #eee 100%); -// background: radial-gradient(var(--checkboard-dots-color) 3px, transparent 1px), -// var(--background-color-secondary); -// background-size: 64px 64px; -// } - -* { - scrollbar-width: thick; /* none | auto */ - scrollbar-color: var(--scrollbar-color) transparent; -} - -*::-webkit-scrollbar { - width: 8px; // Vertical Scrollbar Width - height: 8px; // Horizontal Scrollbar Height -} - -*::-webkit-scrollbar-track { - background: transparent; -} - -*::-webkit-scrollbar-thumb { - background: var(--scrollbar-color); - border-radius: 8px; - border: calc(8px / 4) solid var(--scrollbar-color); -} - -*::-webkit-scrollbar-thumb:hover { - background: var(--scrollbar-color-hover); - border: calc(8px / 4) solid var(--scrollbar-color-hover); -} - -::-webkit-scrollbar-button { - background: transparent; -} diff --git a/invokeai/frontend/web/src/styles/index.scss b/invokeai/frontend/web/src/styles/index.scss deleted file mode 100644 index afafc17181..0000000000 --- a/invokeai/frontend/web/src/styles/index.scss +++ /dev/null @@ -1,93 +0,0 @@ -// General Imports -@use 'Fonts'; -@use 'Animations'; -@use 'Misc'; - -// Themes -@use './Themes/Colors_Dark'; -@use './Themes/Colors_Light'; -@use './Themes/Colors_Green'; - -// Component Styles - -// app -@use '../app/App.scss'; - -// system -@use '../features/system/components/SiteHeader.scss'; -@use '../features/system/components/StatusIndicator.scss'; -@use '../features/system/components/SettingsModal/SettingsModal.scss'; -@use '../features/system/components/ModelManager/AddModel.scss'; -@use '../features/system/components/HotkeysModal/HotkeysModal.scss'; -@use '../features/system/components/Console.scss'; -@use '../features/system/components/ProgressBar.scss'; - -// parameters -@use '../features/parameters/components/PromptInput/PromptInput.scss'; -@use '../features/parameters/components/ProcessButtons/ProcessButtons.scss'; -@use '../features/parameters/components/MainParameters/MainParameters.scss'; -@use '../features/parameters/components/AccordionItems/AdvancedSettings.scss'; -@use '../features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss'; - -// gallery -@use '../features/gallery/components/CurrentImageDisplay.scss'; -@use '../features/gallery/components/CurrentImageButtons.scss'; -@use '../features/gallery/components/ImageGallery.scss'; -@use '../features/gallery/components/HoverableImage.scss'; -@use '../features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss'; - -// Lightbox -@use '../features/lightbox/components/Lightbox.scss'; - -// Tabs -@use '../features/ui/components/InvokeTabs.scss'; -@use '../features/ui/components/InvokeWorkarea.scss'; -@use '../features/ui/components/InvokeParametersPanel.scss'; -@use '../features/ui/components/TextToImage/TextToImage.scss'; -@use '../features/ui/components/ImageToImage/ImageToImage.scss'; -@use '../features/ui/components/FloatingButton.scss'; -@use '../features/ui/components/UnifiedCanvas/CanvasWorkarea.scss'; - -// Component Shared -@use '../common/components/IAINumberInput.scss'; -@use '../common/components/IAIInput.scss'; -@use '../common/components/IAIIconButton.scss'; -@use '../common/components/IAIButton.scss'; -@use '../common/components/IAISwitch.scss'; -@use '../common/components/IAISelect.scss'; -@use '../common/components/IAISlider.scss'; -@use '../common/components/IAICheckbox.scss'; -@use '../common/components/IAIPopover.scss'; -@use '../common/components/IAIColorPicker.scss'; -@use '../common/components/ImageUploader.scss'; -@use '../common/components/WorkInProgress/WorkInProgress.scss'; -@use '../common/components/GuidePopover.scss'; - -// Component Shared - Radix UI -// @use 'common/components/radix-ui/IAISlider.scss'; -// @use 'common/components/radix-ui/IAITooltip.scss'; - -// Shared Styles -@use './Mixins/' as *; -@use '../features/system/components/Modal.scss'; - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -html, -body { - @include HideScrollbar; - background-color: var(--root-bg-color); - overflow: hidden; -} - -#root { - background-color: var(--root-bg-color); - color: var(--text-color); - font-family: 'Inter', Arial, Helvetica, sans-serif; -} diff --git a/invokeai/frontend/web/src/theme/colors/greenTea.ts b/invokeai/frontend/web/src/theme/colors/greenTea.ts new file mode 100644 index 0000000000..6da7fa3b82 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/greenTea.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const greenTeaThemeColors = { + base: generateColorPalette(223, 10), + accent: generateColorPalette(155, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 50), +}; diff --git a/invokeai/frontend/web/src/theme/colors/invokeAI.ts b/invokeai/frontend/web/src/theme/colors/invokeAI.ts new file mode 100644 index 0000000000..f94430e454 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/invokeAI.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from 'theme/util/generateColorPalette'; + +export const invokeAIThemeColors = { + base: generateColorPalette(225, 15), + accent: generateColorPalette(255, 67), + working: generateColorPalette(47, 67), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(113, 70), + error: generateColorPalette(0, 76), +}; diff --git a/invokeai/frontend/web/src/theme/colors/lightTheme.ts b/invokeai/frontend/web/src/theme/colors/lightTheme.ts new file mode 100644 index 0000000000..3a4d3b8747 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/lightTheme.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const lightThemeColors = { + base: generateColorPalette(223, 10, true), + accent: generateColorPalette(40, 80, true), + working: generateColorPalette(47, 68, true), + warning: generateColorPalette(28, 75, true), + ok: generateColorPalette(122, 49, true), + error: generateColorPalette(0, 50, true), +}; diff --git a/invokeai/frontend/web/src/theme/colors/oceanBlue.ts b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts new file mode 100644 index 0000000000..1f29def485 --- /dev/null +++ b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts @@ -0,0 +1,10 @@ +import { generateColorPalette } from '../util/generateColorPalette'; + +export const oceanBlueColors = { + base: generateColorPalette(220, 30), + accent: generateColorPalette(210, 80), + working: generateColorPalette(47, 68), + warning: generateColorPalette(28, 75), + ok: generateColorPalette(122, 49), + error: generateColorPalette(0, 100), +}; diff --git a/invokeai/frontend/web/src/theme/components/accordion.ts b/invokeai/frontend/web/src/theme/components/accordion.ts new file mode 100644 index 0000000000..dfea0aad74 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/accordion.ts @@ -0,0 +1,63 @@ +import { accordionAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIContainer = defineStyle({ + border: 'none', + pt: 2, +}); + +const invokeAIButton = defineStyle((props) => { + const { colorScheme: c } = props; + return { + fontWeight: '600', + fontSize: 'sm', + border: 'none', + borderRadius: 'base', + bg: mode(`${c}.250`, `${c}.800`)(props), + color: mode('base.900', 'base.100')(props), + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + _expanded: { + bg: mode(`${c}.250`, `${c}.750`)(props), + borderBottomRadius: 'none', + _hover: { + bg: mode(`${c}.300`, `${c}.700`)(props), + }, + }, + }; +}); + +const invokeAIPanel = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.200`, `${c}.800`)(props), + borderRadius: 'base', + borderTopRadius: 'none', + p: 4, + }; +}); + +const invokeAIIcon = defineStyle({}); + +const invokeAI = definePartsStyle((props) => ({ + container: invokeAIContainer, + button: invokeAIButton(props), + panel: invokeAIPanel(props), + icon: invokeAIIcon, +})); + +export const accordionTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/button.ts b/invokeai/frontend/web/src/theme/components/button.ts new file mode 100644 index 0000000000..a79a3d356f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/button.ts @@ -0,0 +1,58 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + const { colorScheme: c } = props; + // must specify `_disabled` colors if we override `_hover`, else hover on disabled has no styles + const _disabled = { + bg: mode(`${c}.200`, `${c}.600`)(props), + color: mode(`${c}.700`, `${c}.100`)(props), + svg: { + fill: mode(`${c}.700`, `${c}.100`)(props), + }, + }; + + return { + bg: mode(`${c}.300`, `${c}.700`)(props), + color: mode(`${c}.800`, `${c}.100`)(props), + borderRadius: 'base', + svg: { + fill: mode(`${c}.800`, `${c}.100`)(props), + }, + _disabled, + _hover: { + bg: mode(`${c}.400`, `${c}.650`)(props), + color: mode(`black`, `${c}.50`)(props), + svg: { + fill: mode(`black`, `${c}.50`)(props), + }, + _disabled, + }, + _checked: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + svg: { + fill: mode('accent.800', 'accent.100')(props), + }, + _disabled, + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + svg: { + fill: mode('accent.900', 'accent.50')(props), + }, + _disabled, + }, + }, + }; +}); + +export const buttonTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'base', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/checkbox.ts b/invokeai/frontend/web/src/theme/components/checkbox.ts new file mode 100644 index 0000000000..5bdc8a1a66 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/checkbox.ts @@ -0,0 +1,65 @@ +import { checkboxAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIControl = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + _checked: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + + _hover: { + bg: mode(`${c}.600`, `${c}.300`)(props), + borderColor: mode(`${c}.600`, `${c}.300`)(props), + }, + + _disabled: { + borderColor: mode('base.200', 'transparent')(props), + bg: mode('base.200', 'whiteAlpha.300')(props), + color: mode('base.500', 'whiteAlpha.500')(props), + }, + }, + + _indeterminate: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode('white', 'base.900')(props), + }, + + _disabled: { + bg: mode('base.100', 'whiteAlpha.100')(props), + borderColor: mode('base.100', 'transparent')(props), + }, + + _focusVisible: { + boxShadow: 'outline', + }, + + _invalid: { + borderColor: mode('red.500', 'red.300')(props), + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + control: invokeAIControl(props), +})); + +export const checkboxTheme = defineMultiStyleConfig({ + variants: { + invokeAI: invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/formLabel.ts b/invokeai/frontend/web/src/theme/components/formLabel.ts new file mode 100644 index 0000000000..d49fd0a36d --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/formLabel.ts @@ -0,0 +1,27 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const invokeAI = defineStyle((props) => { + return { + fontSize: 'sm', + marginEnd: 0, + mb: 1, + fontWeight: '400', + transitionProperty: 'common', + transitionDuration: 'normal', + whiteSpace: 'nowrap', + _disabled: { + opacity: 0.4, + }, + color: mode('base.600', 'base.300')(props), + }; +}); + +export const formLabelTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/input.ts b/invokeai/frontend/web/src/theme/components/input.ts new file mode 100644 index 0000000000..167da7ef28 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/input.ts @@ -0,0 +1,22 @@ +import { inputAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAI = definePartsStyle((props) => { + return { + field: getInputOutlineStyles(props), + }; +}); + +export const inputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/menu.ts b/invokeai/frontend/web/src/theme/components/menu.ts new file mode 100644 index 0000000000..597e989953 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/menu.ts @@ -0,0 +1,44 @@ +import { menuAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(menuAnatomy.keys); + +// define the base component styles +const invokeAI = definePartsStyle({ + // define the part you're going to style + button: { + // this will style the MenuButton component + fontWeight: '600', + bg: 'base.500', + color: 'base.200', + _hover: { + bg: 'base.600', + color: 'white', + }, + }, + list: { + zIndex: 9999, + bg: 'base.800', + }, + item: { + // this will style the MenuItem and MenuItemOption components + fontSize: 'sm', + bg: 'base.800', + _hover: { + bg: 'base.750', + }, + _focus: { + bg: 'base.700', + }, + }, +}); + +export const menuTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/modal.ts b/invokeai/frontend/web/src/theme/components/modal.ts new file mode 100644 index 0000000000..9e422c7704 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/modal.ts @@ -0,0 +1,55 @@ +import { modalAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIOverlay = defineStyle({ + bg: 'blackAlpha.600', +}); + +const invokeAIDialogContainer = defineStyle({}); + +const invokeAIDialog = defineStyle((props) => { + return { + bg: mode('base.300', 'base.850')(props), + maxH: '80vh', + }; +}); + +const invokeAIHeader = defineStyle((props) => { + return { + fontWeight: '600', + fontSize: 'lg', + color: mode('base.700', 'base.200')(props), + }; +}); + +const invokeAICloseButton = defineStyle({}); + +const invokeAIBody = defineStyle({ + overflowY: 'scroll', +}); + +const invokeAIFooter = defineStyle({}); + +export const invokeAI = definePartsStyle((props) => ({ + overlay: invokeAIOverlay, + dialogContainer: invokeAIDialogContainer, + dialog: invokeAIDialog(props), + header: invokeAIHeader(props), + closeButton: invokeAICloseButton, + body: invokeAIBody, + footer: invokeAIFooter, +})); + +export const modalTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { variant: 'invokeAI', size: 'lg' }, +}); diff --git a/invokeai/frontend/web/src/theme/components/numberInput.ts b/invokeai/frontend/web/src/theme/components/numberInput.ts new file mode 100644 index 0000000000..9d7e773701 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/numberInput.ts @@ -0,0 +1,71 @@ +import { numberInputAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + height: 8, + }; +}); + +const invokeAIField = defineStyle((props) => { + return { + border: 'none', + fontWeight: '600', + height: 'auto', + py: 1, + ps: 2, + pe: 6, + ...getInputOutlineStyles(props), + }; +}); + +const invokeAIStepperGroup = defineStyle((_props) => { + return { + display: 'flex', + }; +}); + +const invokeAIStepper = defineStyle((props) => { + return { + border: 'none', + // expand arrow hitbox + px: 2, + py: 0, + mx: -2, + my: 0, + + svg: { + color: mode('base.600', 'base.300')(props), + width: 2.5, + height: 2.5, + _hover: { + color: mode('base.900', 'base.50')(props), + }, + }, + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + field: invokeAIField(props), + stepperGroup: invokeAIStepperGroup(props), + stepper: invokeAIStepper(props), +})); + +export const numberInputTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/popover.ts b/invokeai/frontend/web/src/theme/components/popover.ts new file mode 100644 index 0000000000..d6b5d316ac --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/popover.ts @@ -0,0 +1,42 @@ +import { popoverAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { cssVar } from '@chakra-ui/theme-tools'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const $popperBg = cssVar('popper-bg'); +const $arrowBg = cssVar('popper-arrow-bg'); +const $arrowShadowColor = cssVar('popper-arrow-shadow-color'); + +const invokeAIContent = defineStyle((props) => { + return { + [$arrowBg.variable]: `colors.base.800`, + [$popperBg.variable]: `colors.base.800`, + [$arrowShadowColor.variable]: `colors.base.600`, + minW: 'unset', + width: 'unset', + p: 4, + borderWidth: '2px', + borderStyle: 'solid', + borderColor: mode('base.500', 'base.600')(props), + bg: mode('base.200', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + content: invokeAIContent(props), +})); + +export const popoverTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/progress.ts b/invokeai/frontend/web/src/theme/components/progress.ts new file mode 100644 index 0000000000..4d48830e06 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/progress.ts @@ -0,0 +1,40 @@ +import { progressAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIFilledTrack = defineStyle((props) => ({ + bg: mode('accent.400', 'accent.600')(props), + transition: 'width 0.2s ease-in-out', + _indeterminate: { + bgGradient: `linear(to-r, transparent 0%, ${mode( + 'accent.400', + 'accent.600' + )(props)} 50%, transparent 100%);`, + }, +})); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.800')(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + filledTrack: invokeAIFilledTrack(props), + track: invokeAITrack(props), +})); + +export const progressTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/scrollbar.ts b/invokeai/frontend/web/src/theme/components/scrollbar.ts new file mode 100644 index 0000000000..5128fb1cb8 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/scrollbar.ts @@ -0,0 +1,31 @@ +export const no_scrollbar = { + '::-webkit-scrollbar': { + display: 'none', + }, + scrollbarWidth: 'none', +}; + +export const scrollbar = { + scrollbarColor: 'accent.600 transparent', + scrollbarWidth: 'thick', + '::-webkit-scrollbar': { + width: '6px', // Vertical Scrollbar Width + height: '6px', // Horizontal Scrollbar Height + }, + '::-webkit-scrollbar-track': { + background: 'transparent', + }, + '::-webkit-scrollbar-thumb': { + background: 'accent.600', + borderRadius: '8px', + borderWidth: '4px', + borderColor: 'accent.600', + }, + '::-webkit-scrollbar-thumb:hover': { + background: 'accent.500', + borderColor: 'accent.500', + }, + '::-webkit-scrollbar-button': { + background: 'transaprent', + }, +}; diff --git a/invokeai/frontend/web/src/theme/components/select.ts b/invokeai/frontend/web/src/theme/components/select.ts new file mode 100644 index 0000000000..bbb438b4d0 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/select.ts @@ -0,0 +1,35 @@ +import { selectAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIIcon = defineStyle((props) => { + return { + color: mode('base.600', 'base.300')(props), + }; +}); + +const invokeAIField = defineStyle((props) => ({ + fontWeight: '600', + ...getInputOutlineStyles(props), +})); + +const invokeAI = definePartsStyle((props) => { + return { + field: invokeAIField(props), + icon: invokeAIIcon(props), + }; +}); + +export const selectTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'sm', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/slider.ts b/invokeai/frontend/web/src/theme/components/slider.ts new file mode 100644 index 0000000000..1afb188712 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/slider.ts @@ -0,0 +1,53 @@ +import { sliderAnatomy as parts } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + return { + bg: mode('base.300', 'base.400')(props), + h: 1.5, + }; +}); + +const invokeAIFilledTrack = defineStyle((props) => { + const { colorScheme: c } = props; + return { + bg: mode(`${c}.400`, `${c}.600`)(props), + h: 1.5, + }; +}); + +const invokeAIThumb = defineStyle((_props) => { + return { + w: 2, + h: 4, + }; +}); + +const invokeAIMark = defineStyle((props) => { + return { + fontSize: 'xs', + fontWeight: '500', + color: mode('base.800', 'base.200')(props), + mt: 2, + insetInlineStart: 'unset', + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + track: invokeAITrack(props), + filledTrack: invokeAIFilledTrack(props), + thumb: invokeAIThumb(props), + mark: invokeAIMark(props), +})); + +export const sliderTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/switch.ts b/invokeai/frontend/web/src/theme/components/switch.ts new file mode 100644 index 0000000000..e39b4257b2 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/switch.ts @@ -0,0 +1,47 @@ +import { switchAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAITrack = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`base.400`, `base.600`)(props), + + _focusVisible: { + boxShadow: 'none', + }, + _checked: { + bg: mode(`${c}.400`, `${c}.600`)(props), + }, + }; +}); + +const invokeAIThumb = defineStyle((props) => { + const { colorScheme: c } = props; + + return { + bg: mode(`${c}.50`, `${c}.50`)(props), + }; +}); + +const invokeAI = definePartsStyle((props) => ({ + container: {}, + track: invokeAITrack(props), + thumb: invokeAIThumb(props), +})); + +export const switchTheme = defineMultiStyleConfig({ + variants: { invokeAI }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + colorScheme: 'accent', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/tabs.ts b/invokeai/frontend/web/src/theme/components/tabs.ts new file mode 100644 index 0000000000..9cd991d8bf --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/tabs.ts @@ -0,0 +1,63 @@ +import { tabsAnatomy as parts } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyle, +} from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(parts.keys); + +const invokeAIRoot = defineStyle((_props) => { + return { + display: 'flex', + columnGap: 4, + }; +}); + +const invokeAITab = defineStyle((_props) => ({})); + +const invokeAITablist = defineStyle((props) => ({ + display: 'flex', + flexDirection: 'column', + gap: 1, + color: mode('base.500', 'base.700')(props), + button: { + fontSize: 'sm', + padding: 2, + borderRadius: 'base', + _selected: { + bg: mode('accent.200', 'accent.700')(props), + color: mode('accent.800', 'accent.100')(props), + _hover: { + bg: mode('accent.300', 'accent.600')(props), + color: mode('accent.900', 'accent.50')(props), + }, + }, + _hover: { + bg: mode('base.300', 'base.600')(props), + color: mode('base.900', 'base.50')(props), + }, + }, +})); + +const invokeAITabpanel = defineStyle((_props) => ({ + padding: 0, + height: '100%', +})); + +const invokeAI = definePartsStyle((props) => ({ + root: invokeAIRoot(props), + tab: invokeAITab(props), + tablist: invokeAITablist(props), + tabpanel: invokeAITabpanel(props), +})); + +export const tabsTheme = defineMultiStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/text.ts b/invokeai/frontend/web/src/theme/components/text.ts new file mode 100644 index 0000000000..a485289366 --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/text.ts @@ -0,0 +1,12 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { mode } from '@chakra-ui/theme-tools'; + +const subtext = defineStyle((props) => ({ + color: mode('base.700', 'base.400')(props), +})); + +export const textTheme = defineStyleConfig({ + variants: { + subtext, + }, +}); diff --git a/invokeai/frontend/web/src/theme/components/textarea.ts b/invokeai/frontend/web/src/theme/components/textarea.ts new file mode 100644 index 0000000000..85e6e37d3f --- /dev/null +++ b/invokeai/frontend/web/src/theme/components/textarea.ts @@ -0,0 +1,14 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; +import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; + +const invokeAI = defineStyle((props) => getInputOutlineStyles(props)); + +export const textareaTheme = defineStyleConfig({ + variants: { + invokeAI, + }, + defaultProps: { + size: 'md', + variant: 'invokeAI', + }, +}); diff --git a/invokeai/frontend/web/src/theme/theme.ts b/invokeai/frontend/web/src/theme/theme.ts new file mode 100644 index 0000000000..40df156cdb --- /dev/null +++ b/invokeai/frontend/web/src/theme/theme.ts @@ -0,0 +1,80 @@ +import { ThemeOverride } from '@chakra-ui/react'; +import type { StyleFunctionProps } from '@chakra-ui/styled-system'; +import { mode } from '@chakra-ui/theme-tools'; +import { invokeAIThemeColors } from './colors/invokeAI'; +import { accordionTheme } from './components/accordion'; +import { buttonTheme } from './components/button'; +import { checkboxTheme } from './components/checkbox'; +import { formLabelTheme } from './components/formLabel'; +import { inputTheme } from './components/input'; +import { menuTheme } from './components/menu'; +import { modalTheme } from './components/modal'; +import { numberInputTheme } from './components/numberInput'; +import { popoverTheme } from './components/popover'; +import { progressTheme } from './components/progress'; +import { scrollbar } from './components/scrollbar'; +import { selectTheme } from './components/select'; +import { sliderTheme } from './components/slider'; +import { switchTheme } from './components/switch'; +import { tabsTheme } from './components/tabs'; +import { textTheme } from './components/text'; +import { textareaTheme } from './components/textarea'; + +export const theme: ThemeOverride = { + config: { + initialColorMode: 'dark', + useSystemColorMode: false, + cssVarPrefix: 'invokeai', + }, + styles: { + global: (props: StyleFunctionProps) => ({ + body: { + bg: mode('base.100', 'base.900')(props), + color: mode('base.800', 'base.50')(props), + overflow: 'hidden', + }, + ...scrollbar, + }), + }, + direction: 'ltr', + fonts: { + body: `'Inter', sans-serif`, + }, + shadows: { + light: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-300)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-400)`, + ok: `0 0 7px var(--invokeai-colors-ok-600)`, + working: `0 0 7px var(--invokeai-colors-working-600)`, + error: `0 0 7px var(--invokeai-colors-error-600)`, + }, + dark: { + accent: `0 0 10px 0 var(--invokeai-colors-accent-600)`, + accentHover: `0 0 10px 0 var(--invokeai-colors-accent-500)`, + ok: `0 0 7px var(--invokeai-colors-ok-400)`, + working: `0 0 7px var(--invokeai-colors-working-400)`, + error: `0 0 7px var(--invokeai-colors-error-400)`, + }, + }, + colors: { + ...invokeAIThemeColors, + }, + components: { + Button: buttonTheme, // Button and IconButton + Input: inputTheme, + Textarea: textareaTheme, + Tabs: tabsTheme, + Progress: progressTheme, + Accordion: accordionTheme, + FormLabel: formLabelTheme, + Switch: switchTheme, + NumberInput: numberInputTheme, + Select: selectTheme, + Slider: sliderTheme, + Popover: popoverTheme, + Modal: modalTheme, + Checkbox: checkboxTheme, + Menu: menuTheme, + Text: textTheme, + }, +}; diff --git a/invokeai/frontend/web/src/theme/util/constants.ts b/invokeai/frontend/web/src/theme/util/constants.ts new file mode 100644 index 0000000000..85d9185f31 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/constants.ts @@ -0,0 +1,19 @@ +// Calc Values +export const APP_CUTOFF = '0px'; +export const APP_CONTENT_HEIGHT_CUTOFF = 'calc(70px + 1rem)'; // default: 7rem +export const APP_PADDING = 4; +export const PROGRESS_BAR_THICKNESS = 1.5; +export const APP_WIDTH = `calc(100vw - ${APP_CUTOFF})`; +export const APP_HEIGHT = `calc(100vh - ${PROGRESS_BAR_THICKNESS * 4}px)`; +export const APP_CONTENT_HEIGHT = `calc(100vh - ${APP_CONTENT_HEIGHT_CUTOFF})`; +export const APP_GALLERY_HEIGHT_PINNED = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_GALLERY_HEIGHT = 'calc(100vw - 0.3rem + 5rem)'; +export const APP_GALLERY_POPOVER_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; +export const APP_METADATA_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 4.4rem))`; + +// do not touch ffs +export const APP_TEXT_TO_IMAGE_HEIGHT = + 'calc(100vh - 9.4375rem - 1.925rem - 1.15rem)'; + +// option bar +export const OPTIONS_BAR_MAX_WIDTH = '22.5rem'; diff --git a/invokeai/frontend/web/src/theme/util/generateColorPalette.ts b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts new file mode 100644 index 0000000000..abd7939fa1 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts @@ -0,0 +1,80 @@ +type paletteSteps = { + 0: string; + 50: string; + 100: string; + 150: string; + 200: string; + 250: string; + 300: string; + 350: string; + 400: string; + 450: string; + 500: string; + 550: string; + 600: string; + 650: string; + 700: string; + 750: string; + 800: string; + 850: string; + 900: string; + 950: string; + 1000: string; +}; + +/** + * Add two numbers together + * @param {String | Number} hue Hue of the color (0-360) - Reds 0, Greens 120, Blues 240 + * @param {String | Number} saturation Saturation of the color (0-100) + * @param {boolean} light True to generate light color palette + */ +export function generateColorPalette( + hue: string | number, + saturation: string | number, + light = false +) { + hue = String(hue); + saturation = String(saturation); + + const colorSteps = Array.from({ length: 21 }, (_, i) => i * 50); + const lightnessSteps = [ + '0', + '5', + '10', + '15', + '20', + '25', + '30', + '35', + '40', + '45', + '50', + '55', + '59', + '64', + '68', + '73', + '77', + '82', + '86', + '95', + '100', + ]; + + const darkPalette: Partial = {}; + const lightPalette: Partial = {}; + + colorSteps.forEach((colorStep, index) => { + darkPalette[ + colorStep as keyof typeof darkPalette + ] = `hsl(${hue}, ${saturation}%, ${ + lightnessSteps[colorSteps.length - 1 - index] + }%)`; + + lightPalette[ + colorStep as keyof typeof lightPalette + ] = `hsl(${hue}, ${saturation}%, ${lightnessSteps[index]}%)`; + }); + + return light ? lightPalette : darkPalette; +} diff --git a/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts new file mode 100644 index 0000000000..9550df5863 --- /dev/null +++ b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts @@ -0,0 +1,40 @@ +import { mode, StyleFunctionProps } from '@chakra-ui/theme-tools'; + +export const getInputOutlineStyles = (props: StyleFunctionProps) => ({ + outline: 'none', + borderWidth: 2, + borderStyle: 'solid', + borderColor: mode('base.300', 'base.800')(props), + bg: mode('base.200', 'base.900')(props), + borderRadius: 'base', + color: mode('base.900', 'base.100')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('base.500', 'base.600')(props), + }, + _focus: { + borderColor: mode('accent.600', 'accent.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('accent.700', 'accent.600')(props), + }, + }, + _invalid: { + borderColor: mode('error.300', 'error.700')(props), + boxShadow: 'none', + _hover: { + borderColor: mode('error.500', 'error.600')(props), + }, + }, + _disabled: { + borderColor: mode('base.300', 'base.700')(props), + bg: mode('base.400', 'base.700')(props), + color: mode('base.600', 'base.400')(props), + _hover: { + borderColor: mode('base.300', 'base.700')(props), + }, + }, + _placeholder: { + color: mode('base.600', 'base.400')(props), + }, +}); diff --git a/invokeai/frontend/web/stats.html b/invokeai/frontend/web/stats.html index 1e7823a4ff..85ec9a055a 100644 --- a/invokeai/frontend/web/stats.html +++ b/invokeai/frontend/web/stats.html @@ -6157,7 +6157,7 @@ var drawChart = (function (exports) { - + + - +
          diff --git a/invokeai/frontend/web/dist/locales/en.json b/invokeai/frontend/web/dist/locales/en.json index 00e1202f12..c9a3f48c47 100644 --- a/invokeai/frontend/web/dist/locales/en.json +++ b/invokeai/frontend/web/dist/locales/en.json @@ -10,18 +10,14 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", - "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", - "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", - "langKorean": "한국어", "langPolish": "Polski", - "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -67,10 +63,7 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged", - "pinOptionsPanel": "Pin Options Panel", - "loading": "Loading", - "loadingInvokeAI": "Loading Invoke AI" + "statusMergedModels": "Models Merged" }, "gallery": { "generations": "Generations", @@ -89,7 +82,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shortcuts", + "keyboardShortcuts": "Keyboard Shorcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -394,16 +387,13 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum", - "none": "none", - "addDifference": "Add Difference", - "pickModelType": "Pick Model Type" + "weightedSum": "Weighted Sum" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/dist/locales/es.json b/invokeai/frontend/web/dist/locales/es.json index 5081ab0799..2eff2e1e01 100644 --- a/invokeai/frontend/web/dist/locales/es.json +++ b/invokeai/frontend/web/dist/locales/es.json @@ -15,7 +15,7 @@ "langSpanish": "Español", "nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.", "postProcessing": "Post-procesamiento", - "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador.", + "postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador", "postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.", "postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.", "training": "Entrenamiento", @@ -44,26 +44,7 @@ "statusUpscaling": "Aumentando Tamaño", "statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)", "statusLoadingModel": "Cargando Modelo", - "statusModelChanged": "Modelo cambiado", - "statusMergedModels": "Modelos combinados", - "githubLabel": "Github", - "discordLabel": "Discord", - "langEnglish": "Inglés", - "langDutch": "Holandés", - "langFrench": "Francés", - "langGerman": "Alemán", - "langItalian": "Italiano", - "langArabic": "Árabe", - "langJapanese": "Japones", - "langPolish": "Polaco", - "langBrPortuguese": "Portugués brasileño", - "langRussian": "Ruso", - "langSimplifiedChinese": "Chino simplificado", - "langUkranian": "Ucraniano", - "back": "Atrás", - "statusConvertingModel": "Convertir el modelo", - "statusModelConverted": "Modelo adaptado", - "statusMergingModels": "Fusionar modelos" + "statusModelChanged": "Modelo cambiado" }, "gallery": { "generations": "Generaciones", @@ -303,16 +284,16 @@ "nameValidationMsg": "Introduce un nombre para tu modelo", "description": "Descripción", "descriptionValidationMsg": "Introduce una descripción para tu modelo", - "config": "Configurar", - "configValidationMsg": "Ruta del archivo de configuración del modelo.", + "config": "Config", + "configValidationMsg": "Ruta del archivo de configuración del modelo", "modelLocation": "Ubicación del Modelo", - "modelLocationValidationMsg": "Ruta del archivo de modelo.", + "modelLocationValidationMsg": "Ruta del archivo de modelo", "vaeLocation": "Ubicación VAE", - "vaeLocationValidationMsg": "Ruta del archivo VAE.", + "vaeLocationValidationMsg": "Ruta del archivo VAE", "width": "Ancho", - "widthValidationMsg": "Ancho predeterminado de tu modelo.", + "widthValidationMsg": "Ancho predeterminado de tu modelo", "height": "Alto", - "heightValidationMsg": "Alto predeterminado de tu modelo.", + "heightValidationMsg": "Alto predeterminado de tu modelo", "addModel": "Añadir Modelo", "updateModel": "Actualizar Modelo", "availableModels": "Modelos disponibles", @@ -339,61 +320,7 @@ "deleteModel": "Eliminar Modelo", "deleteConfig": "Eliminar Configuración", "deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?", - "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas.", - "safetensorModels": "SafeTensors", - "addDiffuserModel": "Añadir difusores", - "inpainting": "v1 Repintado", - "repoIDValidationMsg": "Repositorio en línea de tu modelo", - "checkpointModels": "Puntos de control", - "convertToDiffusersHelpText4": "Este proceso se realiza una sola vez. Puede tardar entre 30 y 60 segundos dependiendo de las especificaciones de tu ordenador.", - "diffusersModels": "Difusores", - "addCheckpointModel": "Agregar modelo de punto de control/Modelo Safetensor", - "vaeRepoID": "Identificador del repositorio de VAE", - "vaeRepoIDValidationMsg": "Repositorio en línea de tú VAE", - "formMessageDiffusersModelLocation": "Difusores Modelo Ubicación", - "formMessageDiffusersModelLocationDesc": "Por favor, introduzca al menos uno.", - "formMessageDiffusersVAELocation": "Ubicación VAE", - "formMessageDiffusersVAELocationDesc": "Si no se proporciona, InvokeAI buscará el archivo VAE dentro de la ubicación del modelo indicada anteriormente.", - "convert": "Convertir", - "convertToDiffusers": "Convertir en difusores", - "convertToDiffusersHelpText1": "Este modelo se convertirá al formato 🧨 Difusores.", - "convertToDiffusersHelpText2": "Este proceso sustituirá su entrada del Gestor de Modelos por la versión de Difusores del mismo modelo.", - "convertToDiffusersHelpText3": "Su archivo de puntos de control en el disco NO será borrado ni modificado de ninguna manera. Puede volver a añadir su punto de control al Gestor de Modelos si lo desea.", - "convertToDiffusersHelpText5": "Asegúrese de que dispone de suficiente espacio en disco. Los modelos suelen variar entre 4 GB y 7 GB de tamaño.", - "convertToDiffusersHelpText6": "¿Desea transformar este modelo?", - "convertToDiffusersSaveLocation": "Guardar ubicación", - "v1": "v1", - "v2": "v2", - "statusConverting": "Adaptar", - "modelConverted": "Modelo adaptado", - "sameFolder": "La misma carpeta", - "invokeRoot": "Carpeta InvokeAI", - "custom": "Personalizado", - "customSaveLocation": "Ubicación personalizada para guardar", - "merge": "Fusión", - "modelsMerged": "Modelos fusionados", - "mergeModels": "Combinar modelos", - "modelOne": "Modelo 1", - "modelTwo": "Modelo 2", - "modelThree": "Modelo 3", - "mergedModelName": "Nombre del modelo combinado", - "alpha": "Alfa", - "interpolationType": "Tipo de interpolación", - "mergedModelSaveLocation": "Guardar ubicación", - "mergedModelCustomSaveLocation": "Ruta personalizada", - "invokeAIFolder": "Invocar carpeta de la inteligencia artificial", - "modelMergeHeaderHelp2": "Sólo se pueden fusionar difusores. Si desea fusionar un modelo de punto de control, conviértalo primero en difusores.", - "modelMergeAlphaHelp": "Alfa controla la fuerza de mezcla de los modelos. Los valores alfa más bajos reducen la influencia del segundo modelo.", - "modelMergeInterpAddDifferenceHelp": "En este modo, el Modelo 3 se sustrae primero del Modelo 2. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente.", - "ignoreMismatch": "Ignorar discrepancias entre modelos seleccionados", - "modelMergeHeaderHelp1": "Puede combinar hasta tres modelos diferentes para crear una mezcla que se adapte a sus necesidades.", - "inverseSigmoid": "Sigmoideo inverso", - "weightedSum": "Modelo de suma ponderada", - "sigmoid": "Función sigmoide", - "allModels": "Todos los modelos", - "repo_id": "Identificador del repositorio", - "pathToCustomConfig": "Ruta a la configuración personalizada", - "customConfig": "Configuración personalizada" + "deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas." }, "parameters": { "images": "Imágenes", @@ -453,22 +380,7 @@ "info": "Información", "deleteImage": "Eliminar Imagen", "initialImage": "Imagen Inicial", - "showOptionsPanel": "Mostrar panel de opciones", - "symmetry": "Simetría", - "vSymmetryStep": "Paso de simetría V", - "hSymmetryStep": "Paso de simetría H", - "cancel": { - "immediate": "Cancelar inmediatamente", - "schedule": "Cancelar tras la iteración actual", - "isScheduled": "Cancelando", - "setType": "Tipo de cancelación" - }, - "copyImage": "Copiar la imagen", - "general": "General", - "negativePrompts": "Preguntas negativas", - "imageToImage": "Imagen a imagen", - "denoisingStrength": "Intensidad de la eliminación del ruido", - "hiresStrength": "Alta resistencia" + "showOptionsPanel": "Mostrar panel de opciones" }, "settings": { "models": "Modelos", @@ -481,8 +393,7 @@ "resetWebUI": "Restablecer interfaz web", "resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.", "resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.", - "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla.", - "useSlidersForAll": "Utilice controles deslizantes para todas las opciones" + "resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla." }, "toast": { "tempFoldersEmptied": "Directorio temporal vaciado", @@ -520,12 +431,12 @@ "feature": { "prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.", "gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.", - "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. 'Seamless mosaico' creará patrones repetitivos en la salida. 'Alta resolución' es la generación en dos pasos con img2img: use esta configuración cuando desee una imagen más grande y más coherente sin artefactos. tomar más tiempo de lo habitual txt2img.", + "other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.", "seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.", "variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.", "upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.", "faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.", - "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75", + "imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.", "boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.", "seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.", "infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)." diff --git a/invokeai/frontend/web/dist/locales/pt_BR.json b/invokeai/frontend/web/dist/locales/pt_BR.json index fdfe2270bf..2380f92932 100644 --- a/invokeai/frontend/web/dist/locales/pt_BR.json +++ b/invokeai/frontend/web/dist/locales/pt_BR.json @@ -44,26 +44,7 @@ "statusUpscaling": "Redimensinando", "statusUpscalingESRGAN": "Redimensinando (ESRGAN)", "statusLoadingModel": "Carregando Modelo", - "statusModelChanged": "Modelo Alterado", - "githubLabel": "Github", - "discordLabel": "Discord", - "langArabic": "Árabe", - "langEnglish": "Inglês", - "langDutch": "Holandês", - "langFrench": "Francês", - "langGerman": "Alemão", - "langItalian": "Italiano", - "langJapanese": "Japonês", - "langPolish": "Polonês", - "langSimplifiedChinese": "Chinês", - "langUkranian": "Ucraniano", - "back": "Voltar", - "statusConvertingModel": "Convertendo Modelo", - "statusModelConverted": "Modelo Convertido", - "statusMergingModels": "Mesclando Modelos", - "statusMergedModels": "Modelos Mesclados", - "langRussian": "Russo", - "langSpanish": "Espanhol" + "statusModelChanged": "Modelo Alterado" }, "gallery": { "generations": "Gerações", @@ -256,7 +237,7 @@ "desc": "Salva a tela atual na galeria" }, "copyToClipboard": { - "title": "Copiar para a Área de Transferência", + "title": "Copiar Para a Área de Transferência ", "desc": "Copia a tela atual para a área de transferência" }, "downloadImage": { @@ -303,7 +284,7 @@ "nameValidationMsg": "Insira um nome para o seu modelo", "description": "Descrição", "descriptionValidationMsg": "Adicione uma descrição para o seu modelo", - "config": "Configuração", + "config": "Config", "configValidationMsg": "Caminho para o arquivo de configuração do seu modelo.", "modelLocation": "Localização do modelo", "modelLocationValidationMsg": "Caminho para onde seu modelo está localizado.", @@ -336,52 +317,7 @@ "deleteModel": "Excluir modelo", "deleteConfig": "Excluir Config", "deleteMsg1": "Tem certeza de que deseja excluir esta entrada do modelo de InvokeAI?", - "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar.", - "checkpointModels": "Checkpoints", - "diffusersModels": "Diffusers", - "safetensorModels": "SafeTensors", - "addCheckpointModel": "Adicionar Modelo de Checkpoint/Safetensor", - "addDiffuserModel": "Adicionar Diffusers", - "repo_id": "Repo ID", - "vaeRepoID": "VAE Repo ID", - "vaeRepoIDValidationMsg": "Repositório Online do seu VAE", - "scanAgain": "Digitalize Novamente", - "selectAndAdd": "Selecione e Adicione Modelos Listados Abaixo", - "noModelsFound": "Nenhum Modelo Encontrado", - "formMessageDiffusersModelLocation": "Localização dos Modelos Diffusers", - "formMessageDiffusersModelLocationDesc": "Por favor entre com ao menos um.", - "formMessageDiffusersVAELocation": "Localização do VAE", - "formMessageDiffusersVAELocationDesc": "Se não provido, InvokeAI irá procurar pelo arquivo VAE dentro do local do modelo.", - "convertToDiffusers": "Converter para Diffusers", - "convertToDiffusersHelpText1": "Este modelo será convertido para o formato 🧨 Diffusers.", - "convertToDiffusersHelpText5": "Por favor, certifique-se de que você tenha espaço suficiente em disco. Os modelos geralmente variam entre 4GB e 7GB de tamanho.", - "convertToDiffusersHelpText6": "Você deseja converter este modelo?", - "convertToDiffusersSaveLocation": "Local para Salvar", - "v1": "v1", - "v2": "v2", - "inpainting": "v1 Inpainting", - "customConfig": "Configuração personalizada", - "pathToCustomConfig": "Caminho para configuração personalizada", - "convertToDiffusersHelpText3": "Seu arquivo de ponto de verificação no disco NÃO será excluído ou modificado de forma alguma. Você pode adicionar seu ponto de verificação ao Gerenciador de modelos novamente, se desejar.", - "convertToDiffusersHelpText4": "Este é um processo único. Pode levar cerca de 30 a 60s, dependendo das especificações do seu computador.", - "merge": "Mesclar", - "modelsMerged": "Modelos mesclados", - "mergeModels": "Mesclar modelos", - "modelOne": "Modelo 1", - "modelTwo": "Modelo 2", - "modelThree": "Modelo 3", - "statusConverting": "Convertendo", - "modelConverted": "Modelo Convertido", - "sameFolder": "Mesma pasta", - "invokeRoot": "Pasta do InvokeAI", - "custom": "Personalizado", - "customSaveLocation": "Local de salvamento personalizado", - "mergedModelName": "Nome do modelo mesclado", - "alpha": "Alpha", - "allModels": "Todos os Modelos", - "repoIDValidationMsg": "Repositório Online do seu Modelo", - "convert": "Converter", - "convertToDiffusersHelpText2": "Este processo irá substituir sua entrada de Gerenciador de Modelos por uma versão Diffusers do mesmo modelo." + "deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar." }, "parameters": { "images": "Imagems", @@ -506,14 +442,14 @@ "move": "Mover", "resetView": "Resetar Visualização", "mergeVisible": "Fundir Visível", - "saveToGallery": "Salvar na Galeria", + "saveToGallery": "Save To Gallery", "copyToClipboard": "Copiar para a Área de Transferência", "downloadAsImage": "Baixar Como Imagem", "undo": "Desfazer", "redo": "Refazer", "clearCanvas": "Limpar Tela", "canvasSettings": "Configurações de Tela", - "showIntermediates": "Mostrar Intermediários", + "showIntermediates": "Show Intermediates", "showGrid": "Mostrar Grade", "snapToGrid": "Encaixar na Grade", "darkenOutsideSelection": "Escurecer Seleção Externa", diff --git a/invokeai/frontend/web/dist/locales/ro.json b/invokeai/frontend/web/dist/locales/ro.json deleted file mode 100644 index 0967ef424b..0000000000 --- a/invokeai/frontend/web/dist/locales/ro.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/invokeai/frontend/web/index.html b/invokeai/frontend/web/index.html index 04d81e5490..8314e22a7d 100644 --- a/invokeai/frontend/web/index.html +++ b/invokeai/frontend/web/index.html @@ -5,16 +5,9 @@ InvokeAI - A Stable Diffusion Toolkit - - +
          diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index c47042ef95..c907a83cd9 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -5,44 +5,28 @@ "scripts": { "prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky", "dev": "vite dev", - "build": "npm run lint && vite build", + "build": "tsc && vite build", "preview": "vite preview", - "lint:madge": "madge --circular src/main.tsx", - "lint:eslint": "eslint --max-warnings=0", - "lint:prettier": "prettier --check .", - "lint:tsc": "tsc --noEmit", - "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:tsc && npm run lint:madge", - "fix": "eslint --fix . && prettier --loglevel warn --write . && tsc --noEmit", + "madge": "madge --circular src/main.tsx", + "lint": "eslint --fix .", "lint-staged": "lint-staged", - "postinstall": "patch-package && yarn run theme", - "theme": "chakra-cli tokens src/theme/theme.ts", - "theme:watch": "chakra-cli tokens src/theme/theme.ts --watch" - }, - "madge": { - "detectiveOptions": { - "ts": { - "skipTypeImports": true - }, - "tsx": { - "skipTypeImports": true - } - } - }, - "lint-staged": { - "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ - "prettier --write", - "eslint --fix" - ] + "prettier": "prettier *.{json,js,ts,html} public/locales/*.json src/**/*.{ts,tsx,scss} --write --loglevel warn .", + "fmt": "npm run prettier -- --write", + "postinstall": "patch-package" }, "dependencies": { - "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.17", "@chakra-ui/react": "^2.5.1", - "@chakra-ui/theme-tools": "^2.0.16", + "@emotion/cache": "^11.10.5", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", + "@radix-ui/react-context-menu": "^2.1.1", + "@radix-ui/react-slider": "^1.1.0", + "@radix-ui/react-tooltip": "^1.0.3", "@reduxjs/toolkit": "^1.9.2", - "chakra-ui-contextmenu": "^1.0.5", + "@types/uuid": "^9.0.0", + "@vitejs/plugin-react-swc": "^3.2.0", + "add": "^2.0.6", "dateformat": "^5.0.3", "formik": "^2.2.9", "framer-motion": "^9.0.4", @@ -66,21 +50,19 @@ "react-zoom-pan-pinch": "^2.6.1", "redux-deep-persist": "^1.0.7", "redux-persist": "^6.0.0", + "socket.io": "^4.6.0", "socket.io-client": "^4.6.0", "use-image": "^1.1.0", - "uuid": "^9.0.0" + "uuid": "^9.0.0", + "yarn": "^1.22.19" }, "devDependencies": { - "@chakra-ui/cli": "^2.3.0", - "@fontsource/inter": "^4.5.15", "@types/dateformat": "^5.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "@types/react-transition-group": "^4.4.5", - "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", - "@vitejs/plugin-react-swc": "^3.2.0", "babel-plugin-transform-imports": "^2.0.0", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", @@ -94,10 +76,26 @@ "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.4", "rollup-plugin-visualizer": "^5.9.0", + "sass": "^1.58.3", "terser": "^5.16.4", "vite": "^4.1.2", "vite-plugin-eslint": "^1.8.1", - "vite-tsconfig-paths": "^4.0.5", - "yarn": "^1.22.19" + "vite-tsconfig-paths": "^4.0.5" + }, + "madge": { + "detectiveOptions": { + "ts": { + "skipTypeImports": true + }, + "tsx": { + "skipTypeImports": true + } + } + }, + "lint-staged": { + "**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [ + "npm run prettier", + "npm run lint" + ] } } diff --git a/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch b/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch deleted file mode 100644 index 03db6e8238..0000000000 --- a/invokeai/frontend/web/patches/@chakra-ui+cli+2.3.0.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js -index 937cf0d..7dcc0c0 100644 ---- a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js -+++ b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js -@@ -50,7 +50,8 @@ async function readTheme(themeFilePath) { - project: tsConfig.configFileAbsolutePath, - compilerOptions: { - module: "CommonJS", -- esModuleInterop: true -+ esModuleInterop: true, -+ jsx: 'react' - }, - transpileOnly: true, - swc: true diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index 00e1202f12..c9a3f48c47 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -10,18 +10,14 @@ "darkTheme": "Dark", "lightTheme": "Light", "greenTheme": "Green", - "oceanTheme": "Ocean", "langArabic": "العربية", "langEnglish": "English", "langDutch": "Nederlands", "langFrench": "Français", "langGerman": "Deutsch", - "langHebrew": "עברית", "langItalian": "Italiano", "langJapanese": "日本語", - "langKorean": "한국어", "langPolish": "Polski", - "langPortuguese": "Português", "langBrPortuguese": "Português do Brasil", "langRussian": "Русский", "langSimplifiedChinese": "简体中文", @@ -67,10 +63,7 @@ "statusConvertingModel": "Converting Model", "statusModelConverted": "Model Converted", "statusMergingModels": "Merging Models", - "statusMergedModels": "Models Merged", - "pinOptionsPanel": "Pin Options Panel", - "loading": "Loading", - "loadingInvokeAI": "Loading Invoke AI" + "statusMergedModels": "Models Merged" }, "gallery": { "generations": "Generations", @@ -89,7 +82,7 @@ "noImagesInGallery": "No Images In Gallery" }, "hotkeys": { - "keyboardShortcuts": "Keyboard Shortcuts", + "keyboardShortcuts": "Keyboard Shorcuts", "appHotkeys": "App Hotkeys", "generalHotkeys": "General Hotkeys", "galleryHotkeys": "Gallery Hotkeys", @@ -394,16 +387,13 @@ "mergedModelCustomSaveLocation": "Custom Path", "invokeAIFolder": "Invoke AI Folder", "ignoreMismatch": "Ignore Mismatches Between Selected Models", - "modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.", + "modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.", "modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.", "modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.", "modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.", "inverseSigmoid": "Inverse Sigmoid", "sigmoid": "Sigmoid", - "weightedSum": "Weighted Sum", - "none": "none", - "addDifference": "Add Difference", - "pickModelType": "Pick Model Type" + "weightedSum": "Weighted Sum" }, "parameters": { "general": "General", diff --git a/invokeai/frontend/web/public/locales/he.json b/invokeai/frontend/web/public/locales/he.json deleted file mode 100644 index 0950fb51de..0000000000 --- a/invokeai/frontend/web/public/locales/he.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "modelManager": { - "cannotUseSpaces": "לא ניתן להשתמש ברווחים", - "addNew": "הוסף חדש", - "vaeLocationValidationMsg": "נתיב למקום שבו ממוקם ה- VAE שלך.", - "height": "גובה", - "load": "טען", - "search": "חיפוש", - "heightValidationMsg": "גובה ברירת המחדל של המודל שלך.", - "addNewModel": "הוסף מודל חדש", - "allModels": "כל המודלים", - "checkpointModels": "נקודות ביקורת", - "diffusersModels": "מפזרים", - "safetensorModels": "טנסורים בטוחים", - "modelAdded": "מודל התווסף", - "modelUpdated": "מודל עודכן", - "modelEntryDeleted": "רשומת המודל נמחקה", - "addCheckpointModel": "הוסף נקודת ביקורת / מודל טנסור בטוח", - "addDiffuserModel": "הוסף מפזרים", - "addManually": "הוספה ידנית", - "manual": "ידני", - "name": "שם", - "description": "תיאור", - "descriptionValidationMsg": "הוסף תיאור למודל שלך", - "config": "תצורה", - "configValidationMsg": "נתיב לקובץ התצורה של המודל שלך.", - "modelLocation": "מיקום המודל", - "modelLocationValidationMsg": "נתיב למקום שבו המודל שלך ממוקם באופן מקומי.", - "repo_id": "מזהה מאגר", - "repoIDValidationMsg": "מאגר מקוון של המודל שלך", - "vaeLocation": "מיקום VAE", - "vaeRepoIDValidationMsg": "המאגר המקוון של VAE שלך", - "width": "רוחב", - "widthValidationMsg": "רוחב ברירת המחדל של המודל שלך.", - "addModel": "הוסף מודל", - "updateModel": "עדכן מודל", - "active": "פעיל", - "modelsFound": "מודלים נמצאו", - "cached": "נשמר במטמון", - "checkpointFolder": "תיקיית נקודות ביקורת", - "findModels": "מצא מודלים", - "scanAgain": "סרוק מחדש", - "selectFolder": "בחירת תיקייה", - "selected": "נבחר", - "selectAll": "בחר הכל", - "deselectAll": "ביטול בחירת הכל", - "showExisting": "הצג קיים", - "addSelected": "הוסף פריטים שנבחרו", - "modelExists": "המודל קיים", - "selectAndAdd": "בחר והוסך מודלים המפורטים להלן", - "deleteModel": "מחיקת מודל", - "deleteConfig": "מחיקת תצורה", - "formMessageDiffusersModelLocation": "מיקום מפזרי המודל", - "formMessageDiffusersModelLocationDesc": "נא להזין לפחות אחד.", - "convertToDiffusersHelpText5": "אנא ודא/י שיש לך מספיק מקום בדיסק. גדלי מודלים בדרך כלל הינם בין 4GB-7GB.", - "convertToDiffusersHelpText1": "מודל זה יומר לפורמט 🧨 המפזרים.", - "convertToDiffusersHelpText2": "תהליך זה יחליף את הרשומה של מנהל המודלים שלך בגרסת המפזרים של אותו המודל.", - "convertToDiffusersHelpText6": "האם ברצונך להמיר מודל זה?", - "convertToDiffusersSaveLocation": "שמירת מיקום", - "inpainting": "v1 צביעת תוך", - "statusConverting": "ממיר", - "modelConverted": "מודל הומר", - "sameFolder": "אותה תיקיה", - "custom": "התאמה אישית", - "merge": "מזג", - "modelsMerged": "מודלים מוזגו", - "mergeModels": "מזג מודלים", - "modelOne": "מודל 1", - "customSaveLocation": "מיקום שמירה מותאם אישית", - "alpha": "אלפא", - "mergedModelSaveLocation": "שמירת מיקום", - "mergedModelCustomSaveLocation": "נתיב מותאם אישית", - "ignoreMismatch": "התעלמות מאי-התאמות בין מודלים שנבחרו", - "modelMergeHeaderHelp1": "ניתן למזג עד שלושה מודלים שונים כדי ליצור שילוב שמתאים לצרכים שלכם.", - "modelMergeAlphaHelp": "אלפא שולט בחוזק מיזוג עבור המודלים. ערכי אלפא נמוכים יותר מובילים להשפעה נמוכה יותר של המודל השני.", - "nameValidationMsg": "הכנס שם למודל שלך", - "vaeRepoID": "מזהה מאגר ה VAE", - "modelManager": "מנהל המודלים", - "model": "מודל", - "availableModels": "מודלים זמינים", - "notLoaded": "לא נטען", - "clearCheckpointFolder": "נקה את תיקיית נקודות הביקורת", - "noModelsFound": "לא נמצאו מודלים", - "delete": "מחיקה", - "deleteMsg1": "האם אתה בטוח שברצונך למחוק רשומת מודל זו מ- InvokeAI?", - "deleteMsg2": "פעולה זו לא תמחק את קובץ נקודת הביקורת מהדיסק שלך. ניתן לקרוא אותם מחדש במידת הצורך.", - "formMessageDiffusersVAELocation": "מיקום VAE", - "formMessageDiffusersVAELocationDesc": "במידה ולא מסופק, InvokeAI תחפש את קובץ ה-VAE במיקום המודל המופיע לעיל.", - "convertToDiffusers": "המרה למפזרים", - "convert": "המרה", - "modelTwo": "מודל 2", - "modelThree": "מודל 3", - "mergedModelName": "שם מודל ממוזג", - "v1": "v1", - "v2": "v2", - "invokeRoot": "תיקיית InvokeAI", - "customConfig": "תצורה מותאמת אישית", - "pathToCustomConfig": "נתיב לתצורה מותאמת אישית", - "interpolationType": "סוג אינטרפולציה", - "invokeAIFolder": "תיקיית InvokeAI", - "sigmoid": "סיגמואיד", - "weightedSum": "סכום משוקלל", - "modelMergeHeaderHelp2": "רק מפזרים זמינים למיזוג. אם ברצונך למזג מודל של נקודת ביקורת, המר אותו תחילה למפזרים.", - "inverseSigmoid": "הפוך סיגמואיד", - "convertToDiffusersHelpText3": "קובץ נקודת הביקורת שלך בדיסק לא יימחק או ישונה בכל מקרה. אתה יכול להוסיף את נקודת הביקורת שלך למנהל המודלים שוב אם תרצה בכך.", - "convertToDiffusersHelpText4": "זהו תהליך חד פעמי בלבד. התהליך עשוי לקחת בסביבות 30-60 שניות, תלוי במפרט המחשב שלך.", - "modelMergeInterpAddDifferenceHelp": "במצב זה, מודל 3 מופחת תחילה ממודל 2. הגרסה המתקבלת משולבת עם מודל 1 עם קצב האלפא שנקבע לעיל." - }, - "common": { - "nodesDesc": "מערכת מבוססת צמתים עבור יצירת תמונות עדיין תחת פיתוח. השארו קשובים לעדכונים עבור הפיצ׳ר המדהים הזה.", - "themeLabel": "ערכת נושא", - "languagePickerLabel": "בחירת שפה", - "githubLabel": "גיטהאב", - "discordLabel": "דיסקורד", - "settingsLabel": "הגדרות", - "darkTheme": "חשוך", - "lightTheme": "מואר", - "langEnglish": "אנגלית", - "langDutch": "הולנדית", - "langArabic": "ערבית", - "langFrench": "צרפתית", - "langGerman": "גרמנית", - "langJapanese": "יפנית", - "langBrPortuguese": "פורטוגזית", - "langRussian": "רוסית", - "langSimplifiedChinese": "סינית", - "langUkranian": "אוקראינית", - "langSpanish": "ספרדית", - "text2img": "טקסט לתמונה", - "img2img": "תמונה לתמונה", - "unifiedCanvas": "קנבס מאוחד", - "nodes": "צמתים", - "postProcessing": "לאחר עיבוד", - "postProcessDesc2": "תצוגה ייעודית תשוחרר בקרוב על מנת לתמוך בתהליכים ועיבודים מורכבים.", - "postProcessDesc3": "ממשק שורת הפקודה של Invoke AI מציע תכונות שונות אחרות כולל Embiggen.", - "close": "סגירה", - "statusConnected": "מחובר", - "statusDisconnected": "מנותק", - "statusError": "שגיאה", - "statusPreparing": "בהכנה", - "statusProcessingCanceled": "עיבוד בוטל", - "statusProcessingComplete": "עיבוד הסתיים", - "statusGenerating": "מייצר", - "statusGeneratingTextToImage": "מייצר טקסט לתמונה", - "statusGeneratingImageToImage": "מייצר תמונה לתמונה", - "statusGeneratingInpainting": "מייצר ציור לתוך", - "statusGeneratingOutpainting": "מייצר ציור החוצה", - "statusIterationComplete": "איטרציה הסתיימה", - "statusRestoringFaces": "משחזר פרצופים", - "statusRestoringFacesCodeFormer": "משחזר פרצופים (CodeFormer)", - "statusUpscaling": "העלאת קנה מידה", - "statusUpscalingESRGAN": "העלאת קנה מידה (ESRGAN)", - "statusModelChanged": "מודל השתנה", - "statusConvertingModel": "ממיר מודל", - "statusModelConverted": "מודל הומר", - "statusMergingModels": "מיזוג מודלים", - "statusMergedModels": "מודלים מוזגו", - "hotkeysLabel": "מקשים חמים", - "reportBugLabel": "דווח באג", - "greenTheme": "ירוק", - "langItalian": "איטלקית", - "upload": "העלאה", - "langPolish": "פולנית", - "training": "אימון", - "load": "טעינה", - "back": "אחורה", - "statusSavingImage": "שומר תמונה", - "statusGenerationComplete": "ייצור הסתיים", - "statusRestoringFacesGFPGAN": "משחזר פרצופים (GFPGAN)", - "statusLoadingModel": "טוען מודל", - "trainingDesc2": "InvokeAI כבר תומך באימון הטמעות מותאמות אישית באמצעות היפוך טקסט באמצעות הסקריפט הראשי.", - "postProcessDesc1": "InvokeAI מציעה מגוון רחב של תכונות עיבוד שלאחר. העלאת קנה מידה של תמונה ושחזור פנים כבר זמינים בממשק המשתמש. ניתן לגשת אליהם מתפריט 'אפשרויות מתקדמות' בכרטיסיות 'טקסט לתמונה' ו'תמונה לתמונה'. ניתן גם לעבד תמונות ישירות, באמצעות לחצני הפעולה של התמונה מעל תצוגת התמונה הנוכחית או בתוך המציג.", - "trainingDesc1": "תהליך עבודה ייעודי לאימון ההטמעות ונקודות הביקורת שלך באמצעות היפוך טקסט ו-Dreambooth מממשק המשתמש." - }, - "hotkeys": { - "toggleGallery": { - "desc": "פתח וסגור את מגירת הגלריה", - "title": "הצג את הגלריה" - }, - "keyboardShortcuts": "קיצורי מקלדת", - "appHotkeys": "קיצורי אפליקציה", - "generalHotkeys": "קיצורי דרך כלליים", - "galleryHotkeys": "קיצורי דרך של הגלריה", - "unifiedCanvasHotkeys": "קיצורי דרך לקנבס המאוחד", - "invoke": { - "title": "הפעל", - "desc": "צור תמונה" - }, - "focusPrompt": { - "title": "התמקדות על הבקשה", - "desc": "התמקדות על איזור הקלדת הבקשה" - }, - "toggleOptions": { - "desc": "פתח וסגור את פאנל ההגדרות", - "title": "הצג הגדרות" - }, - "pinOptions": { - "title": "הצמד הגדרות", - "desc": "הצמד את פאנל ההגדרות" - }, - "toggleViewer": { - "title": "הצג את חלון ההצגה", - "desc": "פתח וסגור את מציג התמונות" - }, - "changeTabs": { - "title": "החלף לשוניות", - "desc": "החלף לאיזור עבודה אחר" - }, - "consoleToggle": { - "desc": "פתח וסגור את הקונסול", - "title": "הצג קונסול" - }, - "setPrompt": { - "title": "הגדרת בקשה", - "desc": "שימוש בבקשה של התמונה הנוכחית" - }, - "restoreFaces": { - "desc": "שחזור התמונה הנוכחית", - "title": "שחזור פרצופים" - }, - "upscale": { - "title": "הגדלת קנה מידה", - "desc": "הגדל את התמונה הנוכחית" - }, - "showInfo": { - "title": "הצג מידע", - "desc": "הצגת פרטי מטא-נתונים של התמונה הנוכחית" - }, - "sendToImageToImage": { - "title": "שלח לתמונה לתמונה", - "desc": "שלח תמונה נוכחית לתמונה לתמונה" - }, - "deleteImage": { - "title": "מחק תמונה", - "desc": "מחק את התמונה הנוכחית" - }, - "closePanels": { - "title": "סגור לוחות", - "desc": "סוגר לוחות פתוחים" - }, - "previousImage": { - "title": "תמונה קודמת", - "desc": "הצג את התמונה הקודמת בגלריה" - }, - "toggleGalleryPin": { - "title": "הצג את מצמיד הגלריה", - "desc": "הצמדה וביטול הצמדה של הגלריה לממשק המשתמש" - }, - "decreaseGalleryThumbSize": { - "title": "הקטנת גודל תמונת גלריה", - "desc": "מקטין את גודל התמונות הממוזערות של הגלריה" - }, - "selectBrush": { - "desc": "בוחר את מברשת הקנבס", - "title": "בחר מברשת" - }, - "selectEraser": { - "title": "בחר מחק", - "desc": "בוחר את מחק הקנבס" - }, - "decreaseBrushSize": { - "title": "הקטנת גודל המברשת", - "desc": "מקטין את גודל מברשת הקנבס/מחק" - }, - "increaseBrushSize": { - "desc": "מגדיל את גודל מברשת הקנבס/מחק", - "title": "הגדלת גודל המברשת" - }, - "decreaseBrushOpacity": { - "title": "הפחת את אטימות המברשת", - "desc": "מקטין את האטימות של מברשת הקנבס" - }, - "increaseBrushOpacity": { - "title": "הגדל את אטימות המברשת", - "desc": "מגביר את האטימות של מברשת הקנבס" - }, - "moveTool": { - "title": "כלי הזזה", - "desc": "מאפשר ניווט על קנבס" - }, - "fillBoundingBox": { - "desc": "ממלא את התיבה התוחמת בצבע מברשת", - "title": "מילוי תיבה תוחמת" - }, - "eraseBoundingBox": { - "desc": "מוחק את אזור התיבה התוחמת", - "title": "מחק תיבה תוחמת" - }, - "colorPicker": { - "title": "בחר בבורר צבעים", - "desc": "בוחר את בורר צבעי הקנבס" - }, - "toggleSnap": { - "title": "הפעל הצמדה", - "desc": "מפעיל הצמדה לרשת" - }, - "quickToggleMove": { - "title": "הפעלה מהירה להזזה", - "desc": "מפעיל זמנית את מצב ההזזה" - }, - "toggleLayer": { - "title": "הפעל שכבה", - "desc": "הפעל בחירת שכבת בסיס/מסיכה" - }, - "clearMask": { - "title": "נקה מסיכה", - "desc": "נקה את כל המסכה" - }, - "hideMask": { - "desc": "הסתרה והצגה של מסיכה", - "title": "הסתר מסיכה" - }, - "showHideBoundingBox": { - "title": "הצגה/הסתרה של תיבה תוחמת", - "desc": "הפעל תצוגה של התיבה התוחמת" - }, - "mergeVisible": { - "title": "מיזוג תוכן גלוי", - "desc": "מיזוג כל השכבות הגלויות של הקנבס" - }, - "saveToGallery": { - "title": "שמור לגלריה", - "desc": "שמור את הקנבס הנוכחי בגלריה" - }, - "copyToClipboard": { - "title": "העתק ללוח ההדבקה", - "desc": "העתק את הקנבס הנוכחי ללוח ההדבקה" - }, - "downloadImage": { - "title": "הורד תמונה", - "desc": "הורד את הקנבס הנוכחי" - }, - "undoStroke": { - "title": "בטל משיכה", - "desc": "בטל משיכת מברשת" - }, - "redoStroke": { - "title": "בצע שוב משיכה", - "desc": "ביצוע מחדש של משיכת מברשת" - }, - "resetView": { - "title": "איפוס תצוגה", - "desc": "אפס תצוגת קנבס" - }, - "previousStagingImage": { - "desc": "תמונת אזור ההערכות הקודמת", - "title": "תמונת הערכות קודמת" - }, - "nextStagingImage": { - "title": "תמנות הערכות הבאה", - "desc": "תמונת אזור ההערכות הבאה" - }, - "acceptStagingImage": { - "desc": "אשר את תמונת איזור ההערכות הנוכחית", - "title": "אשר תמונת הערכות" - }, - "cancel": { - "desc": "ביטול יצירת תמונה", - "title": "ביטול" - }, - "maximizeWorkSpace": { - "title": "מקסם את איזור העבודה", - "desc": "סגור פאנלים ומקסם את איזור העבודה" - }, - "setSeed": { - "title": "הגדר זרע", - "desc": "השתמש בזרע התמונה הנוכחית" - }, - "setParameters": { - "title": "הגדרת פרמטרים", - "desc": "שימוש בכל הפרמטרים של התמונה הנוכחית" - }, - "increaseGalleryThumbSize": { - "title": "הגדל את גודל תמונת הגלריה", - "desc": "מגדיל את התמונות הממוזערות של הגלריה" - }, - "nextImage": { - "title": "תמונה הבאה", - "desc": "הצג את התמונה הבאה בגלריה" - } - }, - "gallery": { - "uploads": "העלאות", - "galleryImageSize": "גודל תמונה", - "gallerySettings": "הגדרות גלריה", - "maintainAspectRatio": "שמור על יחס רוחב-גובה", - "autoSwitchNewImages": "החלף אוטומטית לתמונות חדשות", - "singleColumnLayout": "תצוגת עמודה אחת", - "pinGallery": "הצמד גלריה", - "allImagesLoaded": "כל התמונות נטענו", - "loadMore": "טען עוד", - "noImagesInGallery": "אין תמונות בגלריה", - "galleryImageResetSize": "איפוס גודל", - "generations": "דורות", - "showGenerations": "הצג דורות", - "showUploads": "הצג העלאות" - }, - "parameters": { - "images": "תמונות", - "steps": "צעדים", - "cfgScale": "סולם CFG", - "width": "רוחב", - "height": "גובה", - "sampler": "דוגם", - "seed": "זרע", - "imageToImage": "תמונה לתמונה", - "randomizeSeed": "זרע אקראי", - "variationAmount": "כמות וריאציה", - "seedWeights": "משקלי זרע", - "faceRestoration": "שחזור פנים", - "restoreFaces": "שחזר פנים", - "type": "סוג", - "strength": "חוזק", - "upscale": "הגדלת קנה מידה", - "upscaleImage": "הגדלת קנה מידת התמונה", - "denoisingStrength": "חוזק מנטרל הרעש", - "otherOptions": "אפשרויות אחרות", - "hiresOptim": "אופטימיזצית רזולוציה גבוהה", - "hiresStrength": "חוזק רזולוציה גבוהה", - "codeformerFidelity": "דבקות", - "seamSize": "גודל תפר", - "seamBlur": "טשטוש תפר", - "seamStrength": "חוזק תפר", - "seamSteps": "שלבי תפר", - "scaleBeforeProcessing": "שנה קנה מידה לפני עיבוד", - "scaledWidth": "קנה מידה לאחר שינוי W", - "scaledHeight": "קנה מידה לאחר שינוי H", - "infillMethod": "שיטת מילוי", - "tileSize": "גודל אריח", - "boundingBoxHeader": "תיבה תוחמת", - "seamCorrectionHeader": "תיקון תפר", - "infillScalingHeader": "מילוי וקנה מידה", - "toggleLoopback": "הפעל לולאה חוזרת", - "symmetry": "סימטריה", - "vSymmetryStep": "צעד סימטריה V", - "hSymmetryStep": "צעד סימטריה H", - "invoke": "הפעלה", - "cancel": { - "schedule": "ביטול לאחר האיטרציה הנוכחית", - "isScheduled": "מבטל", - "immediate": "ביטול מיידי", - "setType": "הגדר סוג ביטול" - }, - "negativePrompts": "בקשות שליליות", - "sendTo": "שליחה אל", - "copyImage": "העתקת תמונה", - "downloadImage": "הורדת תמונה", - "sendToImg2Img": "שליחה לתמונה לתמונה", - "sendToUnifiedCanvas": "שליחה אל קנבס מאוחד", - "openInViewer": "פתח במציג", - "closeViewer": "סגור מציג", - "usePrompt": "שימוש בבקשה", - "useSeed": "שימוש בזרע", - "useAll": "שימוש בהכל", - "useInitImg": "שימוש בתמונה ראשונית", - "info": "פרטים", - "showOptionsPanel": "הצג חלונית אפשרויות", - "shuffle": "ערבוב", - "noiseThreshold": "סף רעש", - "perlinNoise": "רעש פרלין", - "variations": "וריאציות", - "imageFit": "התאמת תמונה ראשונית לגודל הפלט", - "general": "כללי", - "upscaling": "מגדיל את קנה מידה", - "scale": "סולם", - "seamlessTiling": "ריצוף חלק", - "img2imgStrength": "חוזק תמונה לתמונה", - "initialImage": "תמונה ראשונית", - "copyImageToLink": "העתקת תמונה לקישור", - "deleteImage": "מחיקת תמונה", - "promptPlaceholder": "הקלד בקשה כאן. [אסימונים שליליים], (העלאת משקל)++ , (הורדת משקל)--, החלפה ומיזוג זמינים (ראה מסמכים)" - }, - "settings": { - "models": "מודלים", - "displayInProgress": "הצגת תמונות בתהליך", - "confirmOnDelete": "אישור בעת המחיקה", - "useCanvasBeta": "שימוש בגרסת ביתא של תצוגת הקנבס", - "useSlidersForAll": "שימוש במחוונים לכל האפשרויות", - "resetWebUI": "איפוס ממשק משתמש", - "resetWebUIDesc1": "איפוס ממשק המשתמש האינטרנטי מאפס רק את המטמון המקומי של הדפדפן של התמונות וההגדרות שנשמרו. זה לא מוחק תמונות מהדיסק.", - "resetComplete": "ממשק המשתמש אופס. יש לבצע רענון דף בכדי לטעון אותו מחדש.", - "enableImageDebugging": "הפעלת איתור באגים בתמונה", - "displayHelpIcons": "הצג סמלי עזרה", - "saveSteps": "שמירת תמונות כל n צעדים", - "resetWebUIDesc2": "אם תמונות לא מופיעות בגלריה או שמשהו אחר לא עובד, נא לנסות איפוס /או אתחול לפני שליחת תקלה ב-GitHub." - }, - "toast": { - "uploadFailed": "העלאה נכשלה", - "uploadFailedMultipleImagesDesc": "תמונות מרובות הודבקו, ניתן להעלות תמונה אחת בלבד בכל פעם", - "imageCopied": "התמונה הועתקה", - "imageLinkCopied": "קישור תמונה הועתק", - "imageNotLoadedDesc": "לא נמצאה תמונה לשליחה למודול תמונה לתמונה", - "imageSavedToGallery": "התמונה נשמרה בגלריה", - "canvasMerged": "קנבס מוזג", - "sentToImageToImage": "נשלח לתמונה לתמונה", - "sentToUnifiedCanvas": "נשלח אל קנבס מאוחד", - "parametersSet": "הגדרת פרמטרים", - "parametersNotSet": "פרמטרים לא הוגדרו", - "parametersNotSetDesc": "לא נמצאו מטא-נתונים עבור תמונה זו.", - "parametersFailedDesc": "לא ניתן לטעון תמונת התחלה.", - "seedSet": "זרע הוגדר", - "seedNotSetDesc": "לא ניתן היה למצוא זרע לתמונה זו.", - "promptNotSetDesc": "לא היתה אפשרות למצוא בקשה עבור תמונה זו.", - "metadataLoadFailed": "טעינת מטא-נתונים נכשלה", - "initialImageSet": "סט תמונה ראשוני", - "initialImageNotSet": "התמונה הראשונית לא הוגדרה", - "initialImageNotSetDesc": "לא ניתן היה לטעון את התמונה הראשונית", - "uploadFailedUnableToLoadDesc": "לא ניתן לטעון את הקובץ", - "tempFoldersEmptied": "התיקייה הזמנית רוקנה", - "downloadImageStarted": "הורדת התמונה החלה", - "imageNotLoaded": "לא נטענה תמונה", - "parametersFailed": "בעיה בטעינת פרמטרים", - "promptNotSet": "בקשה לא הוגדרה", - "upscalingFailed": "העלאת קנה המידה נכשלה", - "faceRestoreFailed": "שחזור הפנים נכשל", - "seedNotSet": "זרע לא הוגדר", - "promptSet": "בקשה הוגדרה" - }, - "tooltip": { - "feature": { - "gallery": "הגלריה מציגה יצירות מתיקיית הפלטים בעת יצירתם. ההגדרות מאוחסנות בתוך קבצים ונגישות באמצעות תפריט הקשר.", - "upscale": "השתמש ב-ESRGAN כדי להגדיל את התמונה מיד לאחר היצירה.", - "imageToImage": "תמונה לתמונה טוענת כל תמונה כראשונית, המשמשת לאחר מכן ליצירת תמונה חדשה יחד עם הבקשה. ככל שהערך גבוה יותר, כך תמונת התוצאה תשתנה יותר. ערכים מ- 0.0 עד 1.0 אפשריים, הטווח המומלץ הוא .25-.75", - "seamCorrection": "שליטה בטיפול בתפרים גלויים המתרחשים בין תמונות שנוצרו על בד הציור.", - "prompt": "זהו שדה הבקשה. הבקשה כוללת אובייקטי יצירה ומונחים סגנוניים. באפשרותך להוסיף משקל (חשיבות אסימון) גם בשורת הפקודה, אך פקודות ופרמטרים של CLI לא יפעלו.", - "variations": "נסה וריאציה עם ערך בין 0.1 ל- 1.0 כדי לשנות את התוצאה עבור זרע נתון. וריאציות מעניינות של הזרע הן בין 0.1 ל -0.3.", - "other": "אפשרויות אלה יאפשרו מצבי עיבוד חלופיים עבור ההרצה. 'ריצוף חלק' ייצור תבניות חוזרות בפלט. 'רזולוציה גבוהה' נוצר בשני שלבים עם img2img: השתמש בהגדרה זו כאשר אתה רוצה תמונה גדולה וקוהרנטית יותר ללא חפצים. פעולה זאת תקח יותר זמן מפעולת טקסט לתמונה רגילה.", - "faceCorrection": "תיקון פנים עם GFPGAN או Codeformer: האלגוריתם מזהה פרצופים בתמונה ומתקן כל פגם. ערך גבוה ישנה את התמונה יותר, וכתוצאה מכך הפרצופים יהיו אטרקטיביים יותר. Codeformer עם נאמנות גבוהה יותר משמר את התמונה המקורית על חשבון תיקון פנים חזק יותר.", - "seed": "ערך הזרע משפיע על הרעש הראשוני שממנו נוצרת התמונה. אתה יכול להשתמש בזרעים שכבר קיימים מתמונות קודמות. 'סף רעש' משמש להפחתת חפצים בערכי CFG גבוהים (נסה את טווח 0-10), ופרלין כדי להוסיף רעשי פרלין במהלך היצירה: שניהם משמשים להוספת וריאציה לתפוקות שלך.", - "infillAndScaling": "נהל שיטות מילוי (המשמשות באזורים עם מסיכה או אזורים שנמחקו בבד הציור) ושינוי קנה מידה (שימושי לגדלים קטנים של תיבות תוחמות).", - "boundingBox": "התיבה התוחמת זהה להגדרות 'רוחב' ו'גובה' עבור 'טקסט לתמונה' או 'תמונה לתמונה'. רק האזור בתיבה יעובד." - } - }, - "unifiedCanvas": { - "layer": "שכבה", - "base": "בסיס", - "maskingOptions": "אפשרויות מסכות", - "enableMask": "הפעלת מסיכה", - "colorPicker": "בוחר הצבעים", - "preserveMaskedArea": "שימור איזור ממוסך", - "clearMask": "ניקוי מסיכה", - "brush": "מברשת", - "eraser": "מחק", - "fillBoundingBox": "מילוי תיבה תוחמת", - "eraseBoundingBox": "מחק תיבה תוחמת", - "copyToClipboard": "העתק ללוח ההדבקה", - "downloadAsImage": "הורדה כתמונה", - "undo": "ביטול", - "redo": "ביצוע מחדש", - "clearCanvas": "ניקוי קנבס", - "showGrid": "הצגת רשת", - "snapToGrid": "הצמדה לרשת", - "darkenOutsideSelection": "הכהיית בחירה חיצונית", - "saveBoxRegionOnly": "שמירת איזור תיבה בלבד", - "limitStrokesToBox": "הגבלת משיכות לקופסא", - "showCanvasDebugInfo": "הצגת מידע איתור באגים בקנבס", - "clearCanvasHistory": "ניקוי הסטוריית קנבס", - "clearHistory": "ניקוי היסטוריה", - "clearCanvasHistoryConfirm": "האם את/ה בטוח/ה שברצונך לנקות את היסטוריית הקנבס?", - "emptyFolder": "ריקון תיקייה", - "emptyTempImagesFolderConfirm": "האם את/ה בטוח/ה שברצונך לרוקן את התיקיה הזמנית?", - "activeLayer": "שכבה פעילה", - "canvasScale": "קנה מידה של קנבס", - "betaLimitToBox": "הגבל לקופסא", - "betaDarkenOutside": "הכההת הבחוץ", - "canvasDimensions": "מידות קנבס", - "previous": "הקודם", - "next": "הבא", - "accept": "אישור", - "showHide": "הצג/הסתר", - "discardAll": "בטל הכל", - "betaClear": "איפוס", - "boundingBox": "תיבה תוחמת", - "scaledBoundingBox": "תיבה תוחמת לאחר שינוי קנה מידה", - "betaPreserveMasked": "שמר מסיכה", - "brushOptions": "אפשרויות מברשת", - "brushSize": "גודל", - "mergeVisible": "מיזוג תוכן גלוי", - "move": "הזזה", - "resetView": "איפוס תצוגה", - "saveToGallery": "שמור לגלריה", - "canvasSettings": "הגדרות קנבס", - "showIntermediates": "הצגת מתווכים", - "autoSaveToGallery": "שמירה אוטומטית בגלריה", - "emptyTempImageFolder": "ריקון תיקיית תמונות זמניות", - "clearCanvasHistoryMessage": "ניקוי היסטוריית הקנבס משאיר את הקנבס הנוכחי ללא שינוי, אך מנקה באופן בלתי הפיך את היסטוריית הביטול והביצוע מחדש.", - "emptyTempImagesFolderMessage": "ריקון תיקיית התמונה הזמנית גם מאפס באופן מלא את הקנבס המאוחד. זה כולל את כל היסטוריית הביטול/ביצוע מחדש, תמונות באזור ההערכות ושכבת הבסיס של בד הציור.", - "boundingBoxPosition": "מיקום תיבה תוחמת", - "canvasPosition": "מיקום קנבס", - "cursorPosition": "מיקום הסמן", - "mask": "מסכה" - } -} diff --git a/invokeai/frontend/web/public/locales/ko.json b/invokeai/frontend/web/public/locales/ko.json deleted file mode 100644 index 888cdc9925..0000000000 --- a/invokeai/frontend/web/public/locales/ko.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "common": { - "themeLabel": "테마 설정", - "languagePickerLabel": "언어 설정", - "reportBugLabel": "버그 리포트", - "githubLabel": "Github", - "settingsLabel": "설정", - "darkTheme": "다크 모드", - "lightTheme": "라이트 모드", - "greenTheme": "그린 모드", - "langArabic": "العربية", - "langEnglish": "English", - "langDutch": "Nederlands", - "text2img": "텍스트->이미지", - "unifiedCanvas": "통합 캔버스", - "langFrench": "Français", - "langGerman": "Deutsch", - "langItalian": "Italiano", - "langJapanese": "日本語", - "langBrPortuguese": "Português do Brasil", - "langRussian": "Русский", - "langSpanish": "Español", - "nodes": "노드", - "nodesDesc": "이미지 생성을 위한 노드 기반 시스템은 현재 개발 중입니다. 이 놀라운 기능에 대한 업데이트를 계속 지켜봐 주세요.", - "postProcessing": "후처리", - "postProcessDesc2": "보다 진보된 후처리 작업을 위한 전용 UI가 곧 출시될 예정입니다.", - "postProcessDesc3": "Invoke AI CLI는 Embiggen을 비롯한 다양한 기능을 제공합니다.", - "training": "학습", - "trainingDesc1": "Textual Inversion과 Dreambooth를 이용해 Web UI에서 나만의 embedding 및 checkpoint를 교육하기 위한 전용 워크플로우입니다.", - "trainingDesc2": "InvokeAI는 이미 메인 스크립트를 사용한 Textual Inversion를 이용한 Custom embedding 학습을 지원하고 있습니다.", - "upload": "업로드", - "close": "닫기", - "load": "로드", - "back": "뒤로 가기", - "statusConnected": "연결됨", - "statusDisconnected": "연결 끊김", - "statusError": "에러", - "statusPreparing": "준비 중", - "langSimplifiedChinese": "简体中文", - "statusGenerating": "생성 중", - "statusGeneratingTextToImage": "텍스트->이미지 생성", - "statusGeneratingInpainting": "인페인팅 생성", - "statusGeneratingOutpainting": "아웃페인팅 생성", - "statusGenerationComplete": "생성 완료", - "statusRestoringFaces": "얼굴 복원", - "statusRestoringFacesGFPGAN": "얼굴 복원 (GFPGAN)", - "statusRestoringFacesCodeFormer": "얼굴 복원 (CodeFormer)", - "statusUpscaling": "업스케일링", - "statusUpscalingESRGAN": "업스케일링 (ESRGAN)", - "statusLoadingModel": "모델 로딩중", - "statusModelChanged": "모델 변경됨", - "statusConvertingModel": "모델 컨버팅", - "statusModelConverted": "모델 컨버팅됨", - "statusMergedModels": "모델 병합됨", - "statusMergingModels": "모델 병합중", - "hotkeysLabel": "단축키 설정", - "img2img": "이미지->이미지", - "discordLabel": "Discord", - "langPolish": "Polski", - "postProcessDesc1": "Invoke AI는 다양한 후처리 기능을 제공합니다. 이미지 업스케일링 및 얼굴 복원은 이미 Web UI에서 사용할 수 있습니다. 텍스트->이미지 또는 이미지->이미지 탭의 고급 옵션 메뉴에서 사용할 수 있습니다. 또한 현재 이미지 표시 위, 또는 뷰어에서 액션 버튼을 사용하여 이미지를 직접 처리할 수도 있습니다.", - "langUkranian": "Украї́нська", - "statusProcessingCanceled": "처리 취소됨", - "statusGeneratingImageToImage": "이미지->이미지 생성", - "statusProcessingComplete": "처리 완료", - "statusIterationComplete": "반복(Iteration) 완료", - "statusSavingImage": "이미지 저장" - }, - "gallery": { - "showGenerations": "생성된 이미지 보기", - "generations": "생성된 이미지", - "uploads": "업로드된 이미지", - "showUploads": "업로드된 이미지 보기", - "galleryImageSize": "이미지 크기", - "galleryImageResetSize": "사이즈 리셋", - "gallerySettings": "갤러리 설정", - "maintainAspectRatio": "종횡비 유지" - }, - "unifiedCanvas": { - "betaPreserveMasked": "마스크 레이어 유지" - } -} diff --git a/invokeai/frontend/web/public/locales/nl.json b/invokeai/frontend/web/public/locales/nl.json index 4116914132..46baf83ff9 100644 --- a/invokeai/frontend/web/public/locales/nl.json +++ b/invokeai/frontend/web/public/locales/nl.json @@ -43,27 +43,7 @@ "statusUpscaling": "Opschaling", "statusUpscalingESRGAN": "Opschaling (ESRGAN)", "statusLoadingModel": "Laden van model", - "statusModelChanged": "Model gewijzigd", - "githubLabel": "Github", - "discordLabel": "Discord", - "langArabic": "Arabisch", - "langEnglish": "Engels", - "langFrench": "Frans", - "langGerman": "Duits", - "langItalian": "Italiaans", - "langJapanese": "Japans", - "langPolish": "Pools", - "langBrPortuguese": "Portugees (Brazilië)", - "langRussian": "Russisch", - "langSimplifiedChinese": "Chinees (vereenvoudigd)", - "langUkranian": "Oekraïens", - "langSpanish": "Spaans", - "training": "Training", - "back": "Terug", - "statusConvertingModel": "Omzetten van model", - "statusModelConverted": "Model omgezet", - "statusMergingModels": "Samenvoegen van modellen", - "statusMergedModels": "Modellen samengevoegd" + "statusModelChanged": "Model gewijzigd" }, "gallery": { "generations": "Gegenereerde afbeeldingen", @@ -302,7 +282,7 @@ "name": "Naam", "nameValidationMsg": "Geef een naam voor je model", "description": "Beschrijving", - "descriptionValidationMsg": "Voeg een beschrijving toe voor je model", + "descriptionValidationMsg": "Voeg een beschrijving toe voor je model.", "config": "Configuratie", "configValidationMsg": "Pad naar het configuratiebestand van je model.", "modelLocation": "Locatie model", @@ -339,61 +319,7 @@ "deleteModel": "Verwijder model", "deleteConfig": "Verwijder configuratie", "deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?", - "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.", - "formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.", - "repoIDValidationMsg": "Online repository van je model", - "formMessageDiffusersModelLocation": "Locatie Diffusers-model", - "convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.", - "convertToDiffusersHelpText6": "Wil je dit model omzetten?", - "allModels": "Alle modellen", - "checkpointModels": "Checkpoints", - "safetensorModels": "SafeTensors", - "addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe", - "addDiffuserModel": "Voeg Diffusers-model toe", - "diffusersModels": "Diffusers", - "repo_id": "Repo-id", - "vaeRepoID": "Repo-id VAE", - "vaeRepoIDValidationMsg": "Online repository van je VAE", - "formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.", - "formMessageDiffusersVAELocation": "Locatie VAE", - "convert": "Omzetten", - "convertToDiffusers": "Omzetten naar Diffusers", - "convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.", - "convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.", - "convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.", - "convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.", - "convertToDiffusersSaveLocation": "Bewaarlocatie", - "v1": "v1", - "v2": "v2", - "inpainting": "v1-inpainting", - "customConfig": "Eigen configuratie", - "pathToCustomConfig": "Pad naar eigen configuratie", - "statusConverting": "Omzetten", - "modelConverted": "Model omgezet", - "sameFolder": "Dezelfde map", - "invokeRoot": "InvokeAI-map", - "custom": "Eigen", - "customSaveLocation": "Eigen bewaarlocatie", - "merge": "Samenvoegen", - "modelsMerged": "Modellen samengevoegd", - "mergeModels": "Voeg modellen samen", - "modelOne": "Model 1", - "modelTwo": "Model 2", - "modelThree": "Model 3", - "mergedModelName": "Samengevoegde modelnaam", - "alpha": "Alfa", - "interpolationType": "Soort interpolatie", - "mergedModelSaveLocation": "Bewaarlocatie", - "mergedModelCustomSaveLocation": "Eigen pad", - "invokeAIFolder": "InvokeAI-map", - "ignoreMismatch": "Negeer discrepanties tussen gekozen modellen", - "modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.", - "modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.", - "modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.", - "modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.", - "inverseSigmoid": "Keer Sigmoid om", - "sigmoid": "Sigmoid", - "weightedSum": "Gewogen som" + "deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt." }, "parameters": { "images": "Afbeeldingen", @@ -453,22 +379,7 @@ "info": "Info", "deleteImage": "Verwijder afbeelding", "initialImage": "Initiële afbeelding", - "showOptionsPanel": "Toon deelscherm Opties", - "symmetry": "Symmetrie", - "hSymmetryStep": "Stap horiz. symmetrie", - "vSymmetryStep": "Stap vert. symmetrie", - "cancel": { - "immediate": "Annuleer direct", - "isScheduled": "Annuleren", - "setType": "Stel annuleervorm in", - "schedule": "Annuleer na huidige iteratie" - }, - "negativePrompts": "Negatieve invoer", - "general": "Algemeen", - "copyImage": "Kopieer afbeelding", - "imageToImage": "Afbeelding naar afbeelding", - "denoisingStrength": "Sterkte ontruisen", - "hiresStrength": "Sterkte hogere resolutie" + "showOptionsPanel": "Toon deelscherm Opties" }, "settings": { "models": "Modellen", @@ -481,8 +392,7 @@ "resetWebUI": "Herstel web-UI", "resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.", "resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.", - "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.", - "useSlidersForAll": "Gebruik schuifbalken voor alle opties" + "resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden." }, "toast": { "tempFoldersEmptied": "Tijdelijke map geleegd", diff --git a/invokeai/frontend/web/public/locales/pt.json b/invokeai/frontend/web/public/locales/pt.json deleted file mode 100644 index 39d383e37f..0000000000 --- a/invokeai/frontend/web/public/locales/pt.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "common": { - "greenTheme": "Verde", - "langArabic": "العربية", - "themeLabel": "Tema", - "reportBugLabel": "Reportar Bug", - "settingsLabel": "Configurações", - "lightTheme": "Claro", - "langBrPortuguese": "Português do Brasil", - "languagePickerLabel": "Seletor de Idioma", - "langDutch": "Nederlands", - "langEnglish": "English", - "hotkeysLabel": "Hotkeys", - "langPolish": "Polski", - "langFrench": "Français", - "langGerman": "Deutsch", - "langItalian": "Italiano", - "langJapanese": "日本語", - "langSimplifiedChinese": "简体中文", - "langSpanish": "Espanhol", - "langRussian": "Русский", - "langUkranian": "Украї́нська", - "text2img": "Texto para Imagem", - "img2img": "Imagem para Imagem", - "unifiedCanvas": "Tela Unificada", - "nodes": "Nós", - "nodesDesc": "Um sistema baseado em nós para a geração de imagens está em desenvolvimento atualmente. Fique atento para atualizações sobre este recurso incrível.", - "postProcessDesc3": "A Interface de Linha de Comando do Invoke AI oferece vários outros recursos, incluindo o Embiggen.", - "postProcessing": "Pós Processamento", - "postProcessDesc1": "O Invoke AI oferece uma ampla variedade de recursos de pós-processamento. O aumento de resolução de imagem e a restauração de rosto já estão disponíveis na interface do usuário da Web. Você pode acessá-los no menu Opções Avançadas das guias Texto para Imagem e Imagem para Imagem. Você também pode processar imagens diretamente, usando os botões de ação de imagem acima da exibição da imagem atual ou no visualizador.", - "postProcessDesc2": "Em breve, uma interface do usuário dedicada será lançada para facilitar fluxos de trabalho de pós-processamento mais avançados.", - "trainingDesc1": "Um fluxo de trabalho dedicado para treinar seus próprios embeddings e checkpoints usando Textual Inversion e Dreambooth da interface da web.", - "trainingDesc2": "O InvokeAI já oferece suporte ao treinamento de embeddings personalizados usando a Inversão Textual por meio do script principal.", - "upload": "Upload", - "statusError": "Erro", - "statusGeneratingTextToImage": "Gerando Texto para Imagem", - "close": "Fechar", - "load": "Abrir", - "back": "Voltar", - "statusConnected": "Conectado", - "statusDisconnected": "Desconectado", - "statusPreparing": "Preparando", - "statusGenerating": "Gerando", - "statusProcessingCanceled": "Processamento Cancelado", - "statusProcessingComplete": "Processamento Completo", - "statusGeneratingImageToImage": "Gerando Imagem para Imagem", - "statusGeneratingInpainting": "Geração de Preenchimento de Lacunas", - "statusIterationComplete": "Iteração Completa", - "statusSavingImage": "Salvando Imagem", - "statusRestoringFacesGFPGAN": "Restaurando Faces (GFPGAN)", - "statusRestoringFaces": "Restaurando Faces", - "statusRestoringFacesCodeFormer": "Restaurando Faces (CodeFormer)", - "statusUpscaling": "Ampliando", - "statusUpscalingESRGAN": "Ampliando (ESRGAN)", - "statusConvertingModel": "Convertendo Modelo", - "statusModelConverted": "Modelo Convertido", - "statusLoadingModel": "Carregando Modelo", - "statusModelChanged": "Modelo Alterado", - "githubLabel": "Github", - "discordLabel": "Discord", - "darkTheme": "Escuro", - "training": "Treinando", - "statusGeneratingOutpainting": "Geração de Ampliação", - "statusGenerationComplete": "Geração Completa", - "statusMergingModels": "Mesclando Modelos", - "statusMergedModels": "Modelos Mesclados" - } -} diff --git a/invokeai/frontend/web/public/locales/zh_Hant.json b/invokeai/frontend/web/public/locales/zh_Hant.json deleted file mode 100644 index 0967ef424b..0000000000 --- a/invokeai/frontend/web/public/locales/zh_Hant.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/invokeai/frontend/web/src/Loading.tsx b/invokeai/frontend/web/src/Loading.tsx index 671c2cd640..066315ecd1 100644 --- a/invokeai/frontend/web/src/Loading.tsx +++ b/invokeai/frontend/web/src/Loading.tsx @@ -1,37 +1,20 @@ -import { Flex, Spinner, Text } from '@chakra-ui/react'; -import { useTranslation } from 'react-i18next'; - -interface LoaderProps { - showText?: boolean; - text?: string; -} - -// This component loads before the theme so we cannot use theme tokens here - -const Loading = (props: LoaderProps) => { - const { t } = useTranslation(); - const { showText = false, text = t('common.loadingInvokeAI') } = props; +import { Flex, Spinner } from '@chakra-ui/react'; +const Loading = () => { return ( - - {showText && ( - - {text} - - )} + ); }; diff --git a/invokeai/frontend/web/src/app/App.scss b/invokeai/frontend/web/src/app/App.scss new file mode 100644 index 0000000000..16655f84d4 --- /dev/null +++ b/invokeai/frontend/web/src/app/App.scss @@ -0,0 +1,21 @@ +@use '../styles/Mixins/' as *; + +svg { + fill: var(--svg-color); +} + +.App { + display: grid; + width: 100vw; + height: 100vh; + background-color: var(--background-color); +} + +.app-content { + display: grid; + row-gap: 1rem; + padding: $app-padding; + grid-auto-rows: min-content auto; + width: $app-width; + height: $app-height; +} diff --git a/invokeai/frontend/web/src/app/App.tsx b/invokeai/frontend/web/src/app/App.tsx index 3599577ca1..d0ed2ab016 100644 --- a/invokeai/frontend/web/src/app/App.tsx +++ b/invokeai/frontend/web/src/app/App.tsx @@ -9,8 +9,6 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher'; import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton'; import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons'; -import { Box, Grid } from '@chakra-ui/react'; -import { APP_HEIGHT, APP_PADDING, APP_WIDTH } from 'theme/util/constants'; keepGUIAlive(); @@ -18,26 +16,20 @@ const App = () => { useToastWatcher(); return ( - +
          - +
          - - +
          +
          - +
          - +
          ); }; diff --git a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx deleted file mode 100644 index 51fad5a431..0000000000 --- a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { ChakraProvider, extendTheme } from '@chakra-ui/react'; -import { ReactNode, useEffect } from 'react'; -import { useTranslation } from 'react-i18next'; -import { theme as invokeAITheme } from 'theme/theme'; -import { RootState } from './store'; -import { useAppSelector } from './storeHooks'; - -import { greenTeaThemeColors } from 'theme/colors/greenTea'; -import { invokeAIThemeColors } from 'theme/colors/invokeAI'; -import { lightThemeColors } from 'theme/colors/lightTheme'; -import { oceanBlueColors } from 'theme/colors/oceanBlue'; - -type ThemeLocaleProviderProps = { - children: ReactNode; -}; - -const THEMES = { - dark: invokeAIThemeColors, - light: lightThemeColors, - green: greenTeaThemeColors, - ocean: oceanBlueColors, -}; - -function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) { - const { i18n } = useTranslation(); - - const currentTheme = useAppSelector( - (state: RootState) => state.ui.currentTheme - ); - - const direction = i18n.dir(); - - const theme = extendTheme({ - ...invokeAITheme, - colors: THEMES[currentTheme as keyof typeof THEMES], - direction, - }); - - useEffect(() => { - document.body.dir = direction; - }, [direction]); - - return {children}; -} - -export default ThemeLocaleProvider; diff --git a/invokeai/frontend/web/src/app/socketio/listeners.ts b/invokeai/frontend/web/src/app/socketio/listeners.ts index 08de671260..6442564e48 100644 --- a/invokeai/frontend/web/src/app/socketio/listeners.ts +++ b/invokeai/frontend/web/src/app/socketio/listeners.ts @@ -392,7 +392,7 @@ const makeSocketIOListeners = ( addLogEntry({ timestamp: dateFormat(new Date(), 'isoDateTime'), message: `${i18n.t( - 'modelManager.modelAdded' + 'modelmanager:modelAdded' )}: ${deleted_model_name}`, level: 'info', }) @@ -400,7 +400,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelManager.modelEntryDeleted' + 'modelmanager:modelEntryDeleted' )}: ${deleted_model_name}`, status: 'success', duration: 2500, @@ -424,7 +424,7 @@ const makeSocketIOListeners = ( dispatch( addToast({ title: `${i18n.t( - 'modelManager.modelConverted' + 'modelmanager:modelConverted' )}: ${converted_model_name}`, status: 'success', duration: 2500, diff --git a/invokeai/frontend/web/src/app/theme.ts b/invokeai/frontend/web/src/app/theme.ts new file mode 100644 index 0000000000..06b28a66ac --- /dev/null +++ b/invokeai/frontend/web/src/app/theme.ts @@ -0,0 +1,52 @@ +import { extendTheme } from '@chakra-ui/react'; +import type { StyleFunctionProps } from '@chakra-ui/styled-system'; + +export const theme = extendTheme({ + config: { + initialColorMode: 'dark', + useSystemColorMode: false, + }, + components: { + Tooltip: { + baseStyle: (props: StyleFunctionProps) => ({ + textColor: props.colorMode === 'dark' ? 'gray.800' : 'gray.100', + }), + }, + Accordion: { + baseStyle: (props: StyleFunctionProps) => ({ + button: { + fontWeight: 'bold', + _hover: { + bgColor: + props.colorMode === 'dark' + ? 'rgba(255,255,255,0.05)' + : 'rgba(0,0,0,0.05)', + }, + }, + panel: { + paddingBottom: 2, + }, + }), + }, + FormLabel: { + baseStyle: { + fontWeight: 'light', + }, + }, + Button: { + variants: { + imageHoverIconButton: (props: StyleFunctionProps) => ({ + bg: props.colorMode === 'dark' ? 'blackAlpha.700' : 'whiteAlpha.800', + color: + props.colorMode === 'dark' ? 'whiteAlpha.700' : 'blackAlpha.700', + _hover: { + bg: + props.colorMode === 'dark' ? 'blackAlpha.800' : 'whiteAlpha.800', + color: + props.colorMode === 'dark' ? 'whiteAlpha.900' : 'blackAlpha.900', + }, + }), + }, + }, + }, +}); diff --git a/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf b/invokeai/frontend/web/src/assets/fonts/Inter/Inter-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8e82c70d1081e2857ada1b73395d4f42c2e8adc9 GIT binary patch literal 316100 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�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

          6=3(=QnPeuLDdti0n3-y(nd#Q;7fbjCmF@fSxxm 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

          S6KrIX_&}SieWqPQ?{H}=^!9pt?REVP{Y`DH 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%0Dq6U{pGSTfs98Msn(h=U&e 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 z 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%0DT&Wh@IO|A|;!G95D0#OWmq$qIMQoNTay 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

          -=$q^cxC1v6c5*~ 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 z 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 >GjZLQF0IXoz#S94~IrS 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

            N6pK-J!%2% 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 Px}&0SwEu%=SLuJU9z%U0dG>;EXY-e# zV_!CRhO;v9We!Z0y{N|b%go~AbL^O*hzOB}jBrBQASGi^T0*$75qD^F3mIYxBqKeY zc>a8UijD+{l32*oznrsN%G1x4W0nk@px8&n43*@Q$98^s08|9^eXxjoANFJ({zU1i zcWiaaq=qkEdVI?t3LukP+BoV z@^-vv+O-?e1C#VZY~B!vf~mNBGU<*lOr3l)w$f|31$vWhYDl7gO<8ZBOUVa*v~r1G zU8{U3RK#!%Al}G)OYM6#C%ks6125)Rf8U2RS!J8?qb$u?hd_?TBYvg$bY(&zv>#(! z_uiZC7&>|0uNN<_xJc{z{AJQm7e(%Lu6lg)kuGiEk4c6pzC?e45>VR6qTE3Vp45oF zFR5I8;%!<>he{4-iiBroUZTUe=f#@;&!H^vK<=R5jW8z^Zpmip=?bUz?Ze8{-HI3X zbU^2lMdgt;1zTVPgIU`MX_z*llYK*%f;zfZxt;C$j@< zxYti7Ee0v~ESbp1%x~nLX}}Zu%@PG3rLt1~`?mgoHFgZ+kJgL3-h@=;srQOiQ{K#H zPl?6JWxp}(nawBzKrQ)lNi^B@9C`qcdf@JwB0@RnmgMUDe4WFK>7$BBYh;GS`}?fY zLWJiu%gB+izj*A`k4g;4lmAuC%Z37ezNkhk!LbDWjwcQ(;w=8}0R>LhQv-}+r?M&* zl%N5=MMgOOGOOQz;%b>F_(z6XgB)N8y1DjZybU$fnLBD(0Ov@dbhM}tcHoNOEAxiY z)oB?c^9W_XUM!tUve`b&Q?_g&s&3n~NlD{>Oa|!#-R|mta)Zv${%T%+#1!;@R4vnB z1BE<9H@?6E#jOU+KNijH)+idJs=@ZwHWu2pATO0Z4o4p&sI(P1DAq+7Q#$OB>s`86 z2Go&k+3cvS-^*;0Eiohw;oSUHooR2q(Z;2@{IvrRdCGNuNAM zpGbYKh(5WRJ}D#?xZApMqtBO>HqT&;; z?nEwJF4i9$hxMRF)&laSHnTVoD3mx9wYHX3C#fJmo*0Hv5TNh)+aN=Vzj84=VyM3AL-tf1bY{4m^ z$ul?{L`SR+@)aGOq<)+{=YUDUz}{+Y^{cI|;U>dq(m}`}VAe-_yO7>4qPP3g+r2iV z@)$t?v2ovIaJa2ZwQY1*hH2dZ6p>&IwXTlN+v_P1rFhsQcU$;!|r4+J9Eh%Agq{Q(jt)?bz7047lDckK{ zvc#RufB&96{syGFH?(BYnhs+WQE}eseBVCzj-)tM;SLn8d%B}fIV+DiU5js;mohWv9JNm zvEN-F7WmYi6#<<1{#=Xne~7Y!Xqy?OMNqr`*vh1ij_XKGJ~ZT%B|kO04E$IRO+)TYdx{D zEGis5CYs=19QF7&M@d)^M{$7p>%606=FE4$E2OOURJz4Tr9cVrLe`COD_!!dqE{&O dOnHTJefZ`IWl=bJoOzARPmbiMuz8fC{5NLxuU-HE literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.scss b/invokeai/frontend/web/src/common/components/GuidePopover.scss new file mode 100644 index 0000000000..58434270b2 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/GuidePopover.scss @@ -0,0 +1,20 @@ +.guide-popover-arrow { + background-color: var(--tab-panel-bg); + box-shadow: none; +} + +.guide-popover-content { + background-color: var(--background-color-secondary); + border: none; +} + +.guide-popover-guide-content { + background: var(--tab-panel-bg); + border: 2px solid var(--tab-hover-color); + border-radius: 0.4rem; + padding: 0.75rem 1rem 0.75rem 1rem; + display: grid; + grid-template-rows: repeat(auto-fill, 1fr); + grid-row-gap: 0.5rem; + justify-content: space-between; +} diff --git a/invokeai/frontend/web/src/common/components/GuidePopover.tsx b/invokeai/frontend/web/src/common/components/GuidePopover.tsx index ee376901e0..ca45343588 100644 --- a/invokeai/frontend/web/src/common/components/GuidePopover.tsx +++ b/invokeai/frontend/web/src/common/components/GuidePopover.tsx @@ -2,7 +2,6 @@ import { Box, Popover, PopoverArrow, - PopoverBody, PopoverContent, PopoverTrigger, } from '@chakra-ui/react'; @@ -35,12 +34,13 @@ const GuidePopover = ({ children, feature }: GuideProps) => { {children} e.preventDefault()} cursor="initial" > - - {text} + +
            {text}
            ); diff --git a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx index b1ddaf45d2..1ea35f5881 100644 --- a/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx +++ b/invokeai/frontend/web/src/common/components/IAIAlertDialog.tsx @@ -5,11 +5,11 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, + Button, forwardRef, useDisclosure, } from '@chakra-ui/react'; import { cloneElement, ReactElement, ReactNode, useRef } from 'react'; -import IAIButton from './IAIButton'; type Props = { acceptButtonText?: string; @@ -58,7 +58,7 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { onClose={onClose} > - + {title} @@ -66,12 +66,16 @@ const IAIAlertDialog = forwardRef((props: Props, ref) => { {children} - + + diff --git a/invokeai/frontend/web/src/common/components/IAIButton.scss b/invokeai/frontend/web/src/common/components/IAIButton.scss new file mode 100644 index 0000000000..90489a3bda --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAIButton.scss @@ -0,0 +1,8 @@ +.invokeai__button { + background-color: var(--btn-base-color); + place-content: center; + + &:hover { + background-color: var(--btn-base-color-hover); + } +} diff --git a/invokeai/frontend/web/src/common/components/IAIButton.tsx b/invokeai/frontend/web/src/common/components/IAIButton.tsx index ca06e51bf0..d25e9decae 100644 --- a/invokeai/frontend/web/src/common/components/IAIButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIButton.tsx @@ -10,15 +10,19 @@ import { ReactNode } from 'react'; export interface IAIButtonProps extends ButtonProps { tooltip?: string; tooltipProps?: Omit; - isChecked?: boolean; + styleClass?: string; children: ReactNode; } const IAIButton = forwardRef((props: IAIButtonProps, forwardedRef) => { - const { children, tooltip = '', tooltipProps, isChecked, ...rest } = props; + const { children, tooltip = '', tooltipProps, styleClass, ...rest } = props; return ( - diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.scss b/invokeai/frontend/web/src/common/components/IAICheckbox.scss new file mode 100644 index 0000000000..3b79c8f4db --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAICheckbox.scss @@ -0,0 +1,26 @@ +.invokeai__checkbox { + .chakra-checkbox__label { + margin-top: 1px; + color: var(--text-color-secondary); + font-size: 0.9rem; + } + + .chakra-checkbox__control { + width: 1rem; + height: 1rem; + border: none; + border-radius: 0.2rem; + background-color: var(--input-checkbox-bg); + + svg { + width: 0.6rem; + height: 0.6rem; + stroke-width: 3px; + } + + &[data-checked] { + color: var(--text-color); + background-color: var(--input-checkbox-checked-bg); + } + } +} diff --git a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx index c04a383767..b9c526cf7e 100644 --- a/invokeai/frontend/web/src/common/components/IAICheckbox.tsx +++ b/invokeai/frontend/web/src/common/components/IAICheckbox.tsx @@ -3,12 +3,13 @@ import type { ReactNode } from 'react'; type IAICheckboxProps = CheckboxProps & { label: string | ReactNode; + styleClass?: string; }; const IAICheckbox = (props: IAICheckboxProps) => { - const { label, ...rest } = props; + const { label, styleClass, ...rest } = props; return ( - + {label} ); diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.scss b/invokeai/frontend/web/src/common/components/IAIColorPicker.scss new file mode 100644 index 0000000000..4b6e29483b --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.scss @@ -0,0 +1,8 @@ +.invokeai__color-picker { + .react-colorful__hue-pointer, + .react-colorful__saturation-pointer { + width: 1.5rem; + height: 1.5rem; + border-color: var(--white); + } +} diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx index 406966bf88..619c5758e6 100644 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx @@ -1,35 +1,16 @@ -import { chakra, ChakraProps } from '@chakra-ui/react'; import { RgbaColorPicker } from 'react-colorful'; import { ColorPickerBaseProps, RgbaColor } from 'react-colorful/dist/types'; -type IAIColorPickerProps = Omit, 'color'> & - ChakraProps & { - pickerColor: RgbaColor; - styleClass?: string; - }; - -const ChakraRgbaColorPicker = chakra(RgbaColorPicker, { - baseStyle: { paddingInline: 4 }, - shouldForwardProp: (prop) => !['pickerColor'].includes(prop), -}); - -const colorPickerStyles: NonNullable = { - width: 6, - height: 6, - borderColor: 'base.100', +type IAIColorPickerProps = ColorPickerBaseProps & { + styleClass?: string; }; const IAIColorPicker = (props: IAIColorPickerProps) => { - const { styleClass = '', ...rest } = props; + const { styleClass, ...rest } = props; return ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.scss b/invokeai/frontend/web/src/common/components/IAIIconButton.scss new file mode 100644 index 0000000000..d55e5de4c5 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAIIconButton.scss @@ -0,0 +1,82 @@ +@use '../../styles/Mixins/' as *; + +.invokeai__icon-button { + background: var(--btn-base-color); + cursor: pointer; + + &:hover { + background-color: var(--btn-base-color-hover); + } + + &[data-selected='true'] { + background-color: var(--accent-color); + &:hover { + background-color: var(--accent-color-hover); + } + } + + &[disabled] { + cursor: not-allowed; + } + + &[data-variant='link'] { + background: none; + &:hover { + background: none; + } + } + + // Check Box Style + &[data-as-checkbox='true'] { + background-color: var(--btn-base-color); + border: 3px solid var(--btn-base-color); + + svg { + fill: var(--text-color); + } + + &:hover { + background-color: var(--btn-base-color); + border-color: var(--btn-checkbox-border-hover); + svg { + fill: var(--text-color); + } + } + + &[data-selected='true'] { + border-color: var(--accent-color); + svg { + fill: var(--accent-color-hover); + } + &:hover { + svg { + fill: var(--accent-color-hover); + } + } + } + } + + &[data-alert='true'] { + animation-name: pulseColor; + animation-duration: 1s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + + &:hover { + animation: none; + background-color: var(--accent-color-hover); + } + } +} + +@keyframes pulseColor { + 0% { + background-color: var(--accent-color); + } + 50% { + background-color: var(--accent-color-dim); + } + 100% { + background-color: var(--accent-color); + } +} diff --git a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx index 4e6e3d7643..3eedae8e14 100644 --- a/invokeai/frontend/web/src/common/components/IAIIconButton.tsx +++ b/invokeai/frontend/web/src/common/components/IAIIconButton.tsx @@ -7,13 +7,22 @@ import { } from '@chakra-ui/react'; export type IAIIconButtonProps = IconButtonProps & { + styleClass?: string; tooltip?: string; tooltipProps?: Omit; + asCheckbox?: boolean; isChecked?: boolean; }; const IAIIconButton = forwardRef((props: IAIIconButtonProps, forwardedRef) => { - const { tooltip = '', tooltipProps, isChecked, ...rest } = props; + const { + tooltip = '', + styleClass, + tooltipProps, + asCheckbox, + isChecked, + ...rest + } = props; return ( { > diff --git a/invokeai/frontend/web/src/common/components/IAIInput.scss b/invokeai/frontend/web/src/common/components/IAIInput.scss new file mode 100644 index 0000000000..ac073fd578 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAIInput.scss @@ -0,0 +1,33 @@ +.input { + display: grid; + grid-template-columns: max-content auto; + column-gap: 1rem; + align-items: center; + + .input-label { + color: var(--text-color-secondary); + } + + .input-entry { + background-color: var(--background-color-secondary); + border: 2px solid var(--border-color); + border-radius: 0.2rem; + font-weight: bold; + + &:focus { + outline: none; + border: 2px solid var(--input-border-color); + box-shadow: 0 0 10px 0 var(--input-box-shadow-color); + } + + &:disabled { + opacity: 0.2; + } + + &[aria-invalid='true'] { + outline: none; + border: 2px solid var(--border-color-invalid); + box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); + } + } +} diff --git a/invokeai/frontend/web/src/common/components/IAIInput.tsx b/invokeai/frontend/web/src/common/components/IAIInput.tsx index e0d0536c03..50f78f30f1 100644 --- a/invokeai/frontend/web/src/common/components/IAIInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAIInput.tsx @@ -1,37 +1,47 @@ -import { - FormControl, - FormControlProps, - FormLabel, - Input, - InputProps, -} from '@chakra-ui/react'; +import { FormControl, FormLabel, Input, InputProps } from '@chakra-ui/react'; import { ChangeEvent } from 'react'; interface IAIInputProps extends InputProps { + styleClass?: string; label?: string; + width?: string | number; value?: string; size?: string; onChange?: (e: ChangeEvent) => void; - formControlProps?: Omit; } export default function IAIInput(props: IAIInputProps) { const { label = '', + styleClass, isDisabled = false, + fontSize = 'sm', + width, + size = 'sm', isInvalid, - formControlProps, ...rest } = props; return ( - {label !== '' && {label}} - + {label !== '' && ( + + {label} + + )} + ); } diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.scss b/invokeai/frontend/web/src/common/components/IAINumberInput.scss new file mode 100644 index 0000000000..aab88f1021 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAINumberInput.scss @@ -0,0 +1,66 @@ +.invokeai__number-input-form-control { + display: flex; + align-items: center; + column-gap: 1rem; + + .invokeai__number-input-form-label { + color: var(--text-color-secondary); + + &[data-focus] + .invokeai__number-input-root { + outline: none; + border: 2px solid var(--input-border-color); + box-shadow: 0 0 10px 0 var(--input-box-shadow-color); + } + + &[aria-invalid='true'] + .invokeai__number-input-root { + outline: none; + border: 2px solid var(--border-color-invalid); + box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); + } + } + + .invokeai__number-input-root { + height: 2rem; + display: grid; + grid-template-columns: auto max-content; + column-gap: 0.5rem; + align-items: center; + background-color: var(--background-color-secondary); + border: 2px solid var(--border-color); + border-radius: 0.3rem; + } + + .invokeai__number-input-field { + border: none; + font-weight: bold; + width: 100%; + height: auto; + font-size: 0.9rem; + padding: 0 0.5rem; + + &:focus { + outline: none; + box-shadow: none; + } + + &:disabled { + opacity: 0.2; + } + } + .invokeai__number-input-stepper { + display: grid; + padding-right: 0.5rem; + + .invokeai__number-input-stepper-button { + border: none; + // expand arrow hitbox + padding: 0 0.5rem; + margin: 0 -0.5rem; + + svg { + width: 10px; + height: 10px; + } + } + } +} diff --git a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx index cfe06aa727..a88c246c2a 100644 --- a/invokeai/frontend/web/src/common/components/IAINumberInput.tsx +++ b/invokeai/frontend/web/src/common/components/IAINumberInput.tsx @@ -9,7 +9,6 @@ import { NumberInputField, NumberInputFieldProps, NumberInputProps, - NumberInputStepper, NumberInputStepperProps, Tooltip, TooltipProps, @@ -21,7 +20,10 @@ import { FocusEvent, useEffect, useState } from 'react'; const numberStringRegex = /^-?(0\.)?\.?$/; interface Props extends Omit { + styleClass?: string; label?: string; + labelFontSize?: string | number; + width?: string | number; showStepper?: boolean; value?: number; onChange: (v: number) => void; @@ -43,8 +45,12 @@ interface Props extends Omit { const IAINumberInput = (props: Props) => { const { label, + labelFontSize = 'sm', + styleClass, isDisabled = false, showStepper = true, + width, + textAlign, isInvalid, value, onChange, @@ -113,10 +119,29 @@ const IAINumberInput = (props: Props) => { - {label && {label}} + {label && ( + + {label} + + )} { clampValueOnBlur={false} onChange={handleOnChange} onBlur={handleBlur} + width={width} {...rest} > - + {showStepper && ( - - - - +
            + + +
            )}
            diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.scss b/invokeai/frontend/web/src/common/components/IAIPopover.scss new file mode 100644 index 0000000000..ab2ac26b3a --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAIPopover.scss @@ -0,0 +1,12 @@ +.invokeai__popover-content { + min-width: unset; + width: unset; + padding: 1rem; + border-radius: 0.5rem; + background-color: var(--background-color); + border: 2px solid var(--border-color); + + .invokeai__popover-arrow { + background-color: var(--background-color) !important; + } +} diff --git a/invokeai/frontend/web/src/common/components/IAIPopover.tsx b/invokeai/frontend/web/src/common/components/IAIPopover.tsx index c58accebe4..38a2a24303 100644 --- a/invokeai/frontend/web/src/common/components/IAIPopover.tsx +++ b/invokeai/frontend/web/src/common/components/IAIPopover.tsx @@ -12,6 +12,7 @@ type IAIPopoverProps = PopoverProps & { triggerComponent: ReactNode; triggerContainerProps?: BoxProps; children: ReactNode; + styleClass?: string; hasArrow?: boolean; }; @@ -19,16 +20,16 @@ const IAIPopover = (props: IAIPopoverProps) => { const { triggerComponent, children, + styleClass, hasArrow = true, - isLazy = true, ...rest } = props; return ( - + {triggerComponent} - - {hasArrow && } + + {hasArrow && } {children} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.scss b/invokeai/frontend/web/src/common/components/IAISelect.scss new file mode 100644 index 0000000000..8891b3b11e --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAISelect.scss @@ -0,0 +1,31 @@ +@use '../../styles/Mixins/' as *; + +.invokeai__select { + display: flex; + column-gap: 1rem; + align-items: center; + + .invokeai__select-label { + color: var(--text-color-secondary); + } + + .invokeai__select-picker { + border: 2px solid var(--border-color); + background-color: var(--background-color-secondary); + font-weight: bold; + font-size: 0.9rem; + height: 2rem; + border-radius: 0.2rem; + + &:focus { + outline: none; + border: 2px solid var(--input-border-color); + box-shadow: 0 0 10px 0 var(--input-box-shadow-color); + } + } + + .invokeai__select-option { + background-color: var(--background-color-secondary); + color: var(--text-color-secondary); + } +} diff --git a/invokeai/frontend/web/src/common/components/IAISelect.tsx b/invokeai/frontend/web/src/common/components/IAISelect.tsx index caff77ed17..fa25b8f17f 100644 --- a/invokeai/frontend/web/src/common/components/IAISelect.tsx +++ b/invokeai/frontend/web/src/common/components/IAISelect.tsx @@ -10,6 +10,7 @@ import { MouseEvent } from 'react'; type IAISelectProps = SelectProps & { label?: string; + styleClass?: string; tooltip?: string; tooltipProps?: Omit; validValues: @@ -20,11 +21,21 @@ type IAISelectProps = SelectProps & { * Customized Chakra FormControl + Select multi-part component. */ const IAISelect = (props: IAISelectProps) => { - const { label, isDisabled, validValues, tooltip, tooltipProps, ...rest } = - props; + const { + label, + isDisabled, + validValues, + tooltip, + tooltipProps, + size = 'sm', + fontSize = 'sm', + styleClass, + ...rest + } = props; return ( ) => { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); @@ -32,16 +43,36 @@ const IAISelect = (props: IAISelectProps) => { e.nativeEvent.cancelBubble = true; }} > - {label && {label}} + {label && ( + + {label} + + )} - {validValues.map((opt) => { return typeof opt === 'string' || typeof opt === 'number' ? ( - ) : ( - ); diff --git a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx index 7e1d2654e3..c9eb07d2d3 100644 --- a/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx +++ b/invokeai/frontend/web/src/common/components/IAISimpleMenu.tsx @@ -4,15 +4,14 @@ import { MenuItem, MenuList, MenuProps, + MenuButtonProps, MenuListProps, MenuItemProps, - IconButton, - Button, - IconButtonProps, - ButtonProps, } from '@chakra-ui/react'; import { MouseEventHandler, ReactNode } from 'react'; import { MdArrowDropDown, MdArrowDropUp } from 'react-icons/md'; +import IAIButton from './IAIButton'; +import IAIIconButton from './IAIIconButton'; interface IAIMenuItem { item: ReactNode | string; @@ -23,10 +22,9 @@ interface IAIMenuProps { menuType?: 'icon' | 'regular'; buttonText?: string; iconTooltip?: string; - isLazy?: boolean; menuItems: IAIMenuItem[]; menuProps?: MenuProps; - menuButtonProps?: IconButtonProps | ButtonProps; + menuButtonProps?: MenuButtonProps; menuListProps?: MenuListProps; menuItemProps?: MenuItemProps; } @@ -36,7 +34,6 @@ export default function IAISimpleMenu(props: IAIMenuProps) { menuType = 'icon', iconTooltip, buttonText, - isLazy = true, menuItems, menuProps, menuButtonProps, @@ -51,7 +48,13 @@ export default function IAISimpleMenu(props: IAIMenuProps) { {menuItem.item} @@ -62,20 +65,34 @@ export default function IAISimpleMenu(props: IAIMenuProps) { }; return ( - + {({ isOpen }) => ( <> : } - paddingX={0} - paddingY={menuType === 'regular' ? 2 : 0} + padding={menuType === 'regular' ? '0 0.5rem' : 0} + backgroundColor="var(--btn-base-color)" + _hover={{ + backgroundColor: 'var(--btn-base-color-hover)', + }} + minWidth="1rem" + minHeight="1rem" + fontSize="1.5rem" {...menuButtonProps} > {menuType === 'regular' && buttonText} - + {renderMenuItems()} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.scss b/invokeai/frontend/web/src/common/components/IAISlider.scss new file mode 100644 index 0000000000..21d62d4b07 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAISlider.scss @@ -0,0 +1,60 @@ +.invokeai__slider-component { + padding-bottom: 0.5rem; + border-radius: 0.5rem; + + .invokeai__slider-component-label { + min-width: max-content; + margin: 0; + font-weight: bold; + color: var(--text-color-secondary); + } + + .invokeai__slider_track { + background-color: var(--tab-color); + } + + .invokeai__slider_track-filled { + background-color: var(--slider-color); + } + + .invokeai__slider-thumb { + width: 4px; + } + + .invokeai__slider-mark { + font-size: 0.75rem; + font-weight: bold; + color: var(--slider-mark-color); + margin-top: 0.3rem; + } + + .invokeai__slider-number-input { + border: none; + font-size: 0.9rem; + font-weight: bold; + height: 2rem; + background-color: var(--background-color-secondary); + border: 2px solid var(--border-color); + + &:focus { + outline: none; + box-shadow: none; + border: 2px solid var(--input-border-color); + box-shadow: 0 0 10px 0 var(--input-box-shadow-color); + } + + &:disabled { + opacity: 0.2; + } + } + + .invokeai__slider-number-stepper { + border: none; + } + + &[data-markers='true'] { + .invokeai__slider_container { + margin-top: -1rem; + } + } +} diff --git a/invokeai/frontend/web/src/common/components/IAISlider.tsx b/invokeai/frontend/web/src/common/components/IAISlider.tsx index 1acc64db23..81e0943c4b 100644 --- a/invokeai/frontend/web/src/common/components/IAISlider.tsx +++ b/invokeai/frontend/web/src/common/components/IAISlider.tsx @@ -37,8 +37,11 @@ export type IAIFullSliderProps = { step?: number; onChange: (v: number) => void; withSliderMarks?: boolean; + sliderMarkLeftOffset?: number; + sliderMarkRightOffset?: number; withInput?: boolean; isInteger?: boolean; + width?: string | number; inputWidth?: string | number; inputReadOnly?: boolean; withReset?: boolean; @@ -49,6 +52,7 @@ export type IAIFullSliderProps = { tooltipSuffix?: string; hideTooltip?: boolean; isCompact?: boolean; + styleClass?: string; sliderFormControlProps?: FormControlProps; sliderFormLabelProps?: FormLabelProps; sliderMarkProps?: Omit; @@ -70,11 +74,14 @@ export default function IAISlider(props: IAIFullSliderProps) { max = 100, step = 1, onChange, + width = '100%', tooltipSuffix = '', withSliderMarks = false, + sliderMarkLeftOffset = 0, + sliderMarkRightOffset = -1, withInput = false, isInteger = false, - inputWidth = 16, + inputWidth = '5.5rem', inputReadOnly = false, withReset = false, hideTooltip = false, @@ -83,6 +90,7 @@ export default function IAISlider(props: IAIFullSliderProps) { isResetDisabled, isSliderDisabled, isInputDisabled, + styleClass, sliderFormControlProps, sliderFormLabelProps, sliderMarkProps, @@ -134,13 +142,19 @@ export default function IAISlider(props: IAIFullSliderProps) { return ( - + {label} @@ -164,23 +182,23 @@ export default function IAISlider(props: IAIFullSliderProps) { onMouseLeave={() => setShowTooltip(false)} focusThumbOnChange={false} isDisabled={isSliderDisabled} - // width={width} + width={width} {...rest} > {withSliderMarks && ( <> {min} {max} @@ -188,19 +206,23 @@ export default function IAISlider(props: IAIFullSliderProps) { )} - - + + @@ -212,10 +234,13 @@ export default function IAISlider(props: IAIFullSliderProps) { value={localInputValue} onChange={handleInputChange} onBlur={handleInputBlur} + className="invokeai__slider-number-field" isDisabled={isInputDisabled} {...sliderNumberInputProps} > onChange(Number(localInputValue))} + className="invokeai__slider-number-stepper" /> onChange(Number(localInputValue))} + className="invokeai__slider-number-stepper" /> diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.scss b/invokeai/frontend/web/src/common/components/IAISwitch.scss new file mode 100644 index 0000000000..168b741520 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/IAISwitch.scss @@ -0,0 +1,24 @@ +.invokeai__switch-form-control { + .invokeai__switch-form-label { + color: var(--text-color-secondary); + } + + .invokeai__switch-root { + span { + background-color: var(--switch-bg-color); + span { + background-color: var(--white); + } + } + + &[data-checked] { + span { + background: var(--switch-bg-active-color); + + span { + background-color: var(--white); + } + } + } + } +} diff --git a/invokeai/frontend/web/src/common/components/IAISwitch.tsx b/invokeai/frontend/web/src/common/components/IAISwitch.tsx index 5ef568f28a..9d3b4f4415 100644 --- a/invokeai/frontend/web/src/common/components/IAISwitch.tsx +++ b/invokeai/frontend/web/src/common/components/IAISwitch.tsx @@ -10,6 +10,7 @@ import { interface Props extends SwitchProps { label?: string; width?: string | number; + styleClass?: string; formControlProps?: FormControlProps; formLabelProps?: FormLabelProps; } @@ -24,22 +25,34 @@ const IAISwitch = (props: Props) => { width = 'auto', formControlProps, formLabelProps, + styleClass, ...rest } = props; return ( - + {label} - + ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx index 28d9d32a71..39e6578cc8 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploadOverlay.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Heading } from '@chakra-ui/react'; +import { Heading } from '@chakra-ui/react'; import { useHotkeys } from 'react-hotkeys-hook'; type ImageUploadOverlayProps = { @@ -11,7 +11,7 @@ type ImageUploadOverlayProps = { const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { const { isDragAccept, - isDragReject: _isDragAccept, + isDragReject, overlaySecondaryText, setIsHandlingUpload, } = props; @@ -21,42 +21,19 @@ const ImageUploadOverlay = (props: ImageUploadOverlayProps) => { }); return ( - - - {isDragAccept ? ( +
            + {isDragAccept && ( +
            Upload Image{overlaySecondaryText} - ) : ( - <> - Invalid Upload - Must be single JPEG or PNG image - - )} - - +
            + )} + {isDragReject && ( +
            + Invalid Upload + Must be single JPEG or PNG image +
            + )} +
            ); }; export default ImageUploadOverlay; diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.scss b/invokeai/frontend/web/src/common/components/ImageUploader.scss new file mode 100644 index 0000000000..ee4b31ace7 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/ImageUploader.scss @@ -0,0 +1,74 @@ +.dropzone-container { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + z-index: 999; + backdrop-filter: blur(20px); + + .dropzone-overlay { + opacity: 0.5; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + row-gap: 1rem; + align-items: center; + justify-content: center; + background-color: var(--background-color); + + &.is-drag-accept { + box-shadow: inset 0 0 20rem 1rem var(--accent-color); + } + + &.is-drag-reject { + box-shadow: inset 0 0 20rem 1rem var(--status-bad-color); + } + + &.is-handling-upload { + box-shadow: inset 0 0 20rem 1rem var(--status-working-color); + } + } +} + +.image-uploader-button-outer { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border-radius: 0.5rem; + color: var(--tab-list-text-inactive); + background-color: var(--background-color); + + &:hover { + background-color: var(--background-color-light); + } +} + +.image-upload-button-inner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.image-upload-button { + display: flex; + flex-direction: column; + row-gap: 2rem; + align-items: center; + justify-content: center; + text-align: center; + + svg { + width: 4rem; + height: 4rem; + } + h2 { + font-size: 1.2rem; + } +} diff --git a/invokeai/frontend/web/src/common/components/ImageUploader.tsx b/invokeai/frontend/web/src/common/components/ImageUploader.tsx index 5397de6ea6..40e31c3947 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploader.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploader.tsx @@ -1,4 +1,4 @@ -import { Box, useToast } from '@chakra-ui/react'; +import { useToast } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import useImageUploader from 'common/hooks/useImageUploader'; @@ -139,7 +139,7 @@ const ImageUploader = (props: ImageUploaderProps) => { return ( - { // Bail out if user hits spacebar - do not open the uploader @@ -156,7 +156,7 @@ const ImageUploader = (props: ImageUploaderProps) => { setIsHandlingUpload={setIsHandlingUpload} /> )} - +

          k`dD%Oq-FGvtZa7vl=NRMebJriyObJqizc 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

          ); }; diff --git a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx index 6179efe5e6..1a989b8c8e 100644 --- a/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx +++ b/invokeai/frontend/web/src/common/components/ImageUploaderButton.tsx @@ -1,4 +1,4 @@ -import { Flex, Heading, Icon } from '@chakra-ui/react'; +import { Heading } from '@chakra-ui/react'; import { ImageUploaderTriggerContext } from 'app/contexts/ImageUploaderTriggerContext'; import { useContext } from 'react'; import { FaUpload } from 'react-icons/fa'; @@ -16,38 +16,15 @@ const ImageUploaderButton = (props: ImageUploaderButtonProps) => { }; return ( - - - - Click or Drag and Drop - - +
          + + Click or Drag and Drop +
          +
          ); }; diff --git a/invokeai/frontend/web/src/common/components/SubItemHook.tsx b/invokeai/frontend/web/src/common/components/SubItemHook.tsx new file mode 100644 index 0000000000..cca79a12ef --- /dev/null +++ b/invokeai/frontend/web/src/common/components/SubItemHook.tsx @@ -0,0 +1,55 @@ +import { Box } from '@chakra-ui/react'; + +interface SubItemHookProps { + active?: boolean; + width?: string | number; + height?: string | number; + side?: 'left' | 'right'; +} + +export default function SubItemHook(props: SubItemHookProps) { + const { + active = true, + width = '1rem', + height = '1.3rem', + side = 'right', + } = props; + return ( + <> + {side === 'right' && ( + + )} + {side === 'left' && ( + + )} + + ); +} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx index c86aa767dd..65dc277ed7 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/NodesWIP.tsx @@ -1,27 +1,11 @@ -import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; -import WorkInProgress from './WorkInProgress'; export default function NodesWIP() { const { t } = useTranslation(); return ( - - - {t('common.nodes')} - - {t('common.nodesDesc')} - - - +
          +

          {t('common.nodes')}

          +

          {t('common.nodesDesc')}

          +
          ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx index c98fa5a82b..fbdfb4b8a5 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/PostProcessingWIP.tsx @@ -1,29 +1,13 @@ -import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; -import WorkInProgress from './WorkInProgress'; export const PostProcessingWIP = () => { const { t } = useTranslation(); return ( - - - {t('common.postProcessing')} - - {t('common.postProcessDesc1')} - {t('common.postProcessDesc2')} - {t('common.postProcessDesc3')} - - - +
          +

          {t('common.postProcessing')}

          +

          {t('common.postProcessDesc1')}

          +

          {t('common.postProcessDesc2')}

          +

          {t('common.postProcessDesc3')}

          +
          ); }; diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx index 23c3209932..ff564234a5 100644 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/Training.tsx @@ -1,28 +1,16 @@ -import { Flex, Heading, Text, VStack } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; -import WorkInProgress from './WorkInProgress'; export default function TrainingWIP() { const { t } = useTranslation(); return ( - - - {t('common.training')} - - {t('common.trainingDesc1')} - {t('common.trainingDesc2')} - - - +
          +

          {t('common.training')}

          +

          + {t('common.trainingDesc1')} +
          +
          + {t('common.trainingDesc2')} +

          +
          ); } diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss new file mode 100644 index 0000000000..2a17c7bd0a --- /dev/null +++ b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.scss @@ -0,0 +1,24 @@ +@use '../../../styles/Mixins/' as *; + +.work-in-progress { + display: grid; + width: 100%; + height: $app-content-height; + grid-auto-rows: max-content; + background-color: var(--background-color-secondary); + border-radius: 0.4rem; + place-content: center; + place-items: center; + row-gap: 1rem; + + h1 { + font-size: 2rem; + font-weight: bold; + } + + p { + text-align: center; + max-width: 50rem; + color: var(--subtext-color-bright); + } +} diff --git a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx b/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx deleted file mode 100644 index deb9110d56..0000000000 --- a/invokeai/frontend/web/src/common/components/WorkInProgress/WorkInProgress.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import { ReactNode } from 'react'; - -type WorkInProgressProps = { - children: ReactNode; -}; - -const WorkInProgress = (props: WorkInProgressProps) => { - const { children } = props; - - return ( - - {children} - - ); -}; - -export default WorkInProgress; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss new file mode 100644 index 0000000000..4a1418392e --- /dev/null +++ b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.scss @@ -0,0 +1,62 @@ +.invokeai__slider-root { + position: relative; + display: flex; + align-items: center; + user-select: none; + touch-action: none; + width: 200px; + + &[data-orientation='horizontal'] { + height: 20px; + } + + &[data-orientation='vertical'] { + width: 20px; + height: 200px; + } + + .invokeai__slider-track { + background-color: black; + position: relative; + flex-grow: 1; + border-radius: 9999px; + + &[data-orientation='horizontal'] { + height: 0.25rem; + } + + &[data-orientation='vertical'] { + width: 0.25rem; + } + + .invokeai__slider-range { + position: absolute; + background-color: white; + border-radius: 9999px; + height: 100%; + } + } + + .invokeai__slider-thumb { + display: flex; + align-items: center; + + .invokeai__slider-thumb-div { + all: unset; + display: block; + width: 1rem; + height: 1rem; + background-color: white; + box-shadow: 0 2px 10px rgba(0, 2, 10, 0.3); + border-radius: 100%; + + &:hover { + background-color: violet; + } + + &:focus { + box-shadow: 0 0 0 5px rgba(0, 2, 10, 0.3); + } + } + } +} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx new file mode 100644 index 0000000000..52faeb18d3 --- /dev/null +++ b/invokeai/frontend/web/src/common/components/radix-ui/IAISlider.tsx @@ -0,0 +1,44 @@ +import { Tooltip } from '@chakra-ui/react'; +import * as Slider from '@radix-ui/react-slider'; + +type IAISliderProps = Slider.SliderProps & { + value: number[]; + tooltipLabel?: string; + orientation?: 'horizontal' | 'vertial'; + trackProps?: Slider.SliderTrackProps; + rangeProps?: Slider.SliderRangeProps; + thumbProps?: Slider.SliderThumbProps; +}; + +const _IAISlider = (props: IAISliderProps) => { + const { + value, + tooltipLabel, + orientation, + trackProps, + rangeProps, + thumbProps, + ...rest + } = props; + return ( + + + + + + +
          + {/*}> + {value && value[0]} + */} + + + + ); +}; + +export default _IAISlider; diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss new file mode 100644 index 0000000000..7d0ca8455c --- /dev/null +++ b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.scss @@ -0,0 +1,8 @@ +.invokeai__tooltip-content { + padding: 0.5rem; + background-color: grey; + border-radius: 0.25rem; + .invokeai__tooltip-arrow { + background-color: grey; + } +} diff --git a/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx new file mode 100644 index 0000000000..539751a8ca --- /dev/null +++ b/invokeai/frontend/web/src/common/components/radix-ui/IAITooltip.tsx @@ -0,0 +1,40 @@ +import * as Tooltip from '@radix-ui/react-tooltip'; +import { ReactNode } from 'react'; + +type IAITooltipProps = Tooltip.TooltipProps & { + trigger: ReactNode; + children: ReactNode; + triggerProps?: Tooltip.TooltipTriggerProps; + contentProps?: Tooltip.TooltipContentProps; + arrowProps?: Tooltip.TooltipArrowProps; +}; + +const IAITooltip = (props: IAITooltipProps) => { + const { trigger, children, triggerProps, contentProps, arrowProps, ...rest } = + props; + + return ( + + + {trigger} + + { + e.preventDefault(); + }} + className="invokeai__tooltip-content" + > + + {children} + + + + + ); +}; + +export default IAITooltip; diff --git a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx index 4898eee899..711d23366a 100644 --- a/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/ImageToImageIcon.tsx @@ -13,8 +13,5 @@ const ImageToImageIcon = createIcon({ /> ), - defaultProps: { - boxSize: '24px', - }, }); export default ImageToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx index 539c33f998..273deaa8cd 100644 --- a/invokeai/frontend/web/src/common/icons/NodesIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/NodesIcon.tsx @@ -11,9 +11,6 @@ const NodesIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 0,515.578 0,770.787L0,2766.03C0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM3427.88,770.787L3427.88,2766.03C3427.88,2957.53 3272.4,3113.01 3080.9,3113.01C3080.9,3113.01 462.407,3113.01 462.407,3113.01C270.906,3113.01 115.431,2957.53 115.431,2766.03L115.431,770.787C115.431,579.286 270.906,423.812 462.407,423.812L3080.9,423.812C3272.4,423.812 3427.88,579.286 3427.88,770.787ZM1214.23,1130.69L1321.47,1130.69C1324.01,1130.69 1326.54,1130.53 1329.05,1130.2C1329.05,1130.2 1367.3,1125.33 1397.94,1149.8C1421.63,1168.72 1437.33,1204.3 1437.33,1265.48L1437.33,2078.74L1220.99,2078.74C1146.83,2078.74 1086.61,2138.95 1086.61,2213.12L1086.61,2762.46C1086.61,2836.63 1146.83,2896.84 1220.99,2896.84L1770.34,2896.84C1844.5,2896.84 1904.71,2836.63 1904.71,2762.46L1904.71,2213.12C1904.71,2138.95 1844.5,2078.74 1770.34,2078.74L1554,2078.74L1554,1604.84C1625.84,1658.19 1703.39,1658.1 1703.39,1658.1C1703.54,1658.1 1703.69,1658.11 1703.84,1658.11L2362.2,1658.11L2362.2,1874.44C2362.2,1948.61 2422.42,2008.82 2496.58,2008.82L3045.93,2008.82C3120.09,2008.82 3180.3,1948.61 3180.3,1874.44L3180.3,1325.1C3180.3,1250.93 3120.09,1190.72 3045.93,1190.72L2496.58,1190.72C2422.42,1190.72 2362.2,1250.93 2362.2,1325.1L2362.2,1558.97L2362.2,1541.44L1704.23,1541.44C1702.2,1541.37 1650.96,1539.37 1609.51,1499.26C1577.72,1468.49 1554,1416.47 1554,1331.69L1554,1265.48C1554,1153.86 1513.98,1093.17 1470.76,1058.64C1411.24,1011.1 1338.98,1012.58 1319.15,1014.03L1214.23,1014.03L1214.23,796.992C1214.23,722.828 1154.02,662.617 1079.85,662.617L530.507,662.617C456.343,662.617 396.131,722.828 396.131,796.992L396.131,1346.34C396.131,1420.5 456.343,1480.71 530.507,1480.71L1079.85,1480.71C1154.02,1480.71 1214.23,1420.5 1214.23,1346.34L1214.23,1130.69Z" /> ), - defaultProps: { - boxSize: '24px', - }, }); export default NodesIcon; diff --git a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx index b4000568b2..29f474b079 100644 --- a/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/PostprocessingIcon.tsx @@ -11,9 +11,6 @@ const PostprocessingIcon = createIcon({ d="M709.477,1596.53L992.591,1275.66L2239.09,2646.81L2891.95,1888.03L3427.88,2460.51L3427.88,994.78C3427.88,954.66 3421.05,916.122 3408.5,880.254L3521.9,855.419C3535.8,899.386 3543.31,946.214 3543.31,994.78L3543.31,2990.02C3543.31,3245.23 3336.11,3452.43 3080.9,3452.43C3080.9,3452.43 462.407,3452.43 462.407,3452.43C207.197,3452.43 -0,3245.23 -0,2990.02L-0,994.78C-0,739.571 207.197,532.373 462.407,532.373L505.419,532.373L504.644,532.546L807.104,600.085C820.223,601.729 832.422,607.722 841.77,617.116C850.131,625.517 855.784,636.21 858.055,647.804L462.407,647.804C270.906,647.804 115.431,803.279 115.431,994.78L115.431,2075.73L-0,2101.5L115.431,2127.28L115.431,2269.78L220.47,2150.73L482.345,2209.21C503.267,2211.83 522.722,2221.39 537.63,2236.37C552.538,2251.35 562.049,2270.9 564.657,2291.93L671.84,2776.17L779.022,2291.93C781.631,2270.9 791.141,2251.35 806.05,2236.37C820.958,2221.39 840.413,2211.83 861.334,2209.21L1353.15,2101.5L861.334,1993.8C840.413,1991.18 820.958,1981.62 806.05,1966.64C791.141,1951.66 781.631,1932.11 779.022,1911.08L709.477,1596.53ZM671.84,1573.09L725.556,2006.07C726.863,2016.61 731.63,2026.4 739.101,2033.91C746.573,2041.42 756.323,2046.21 766.808,2047.53L1197.68,2101.5L766.808,2155.48C756.323,2156.8 746.573,2161.59 739.101,2169.09C731.63,2176.6 726.863,2186.4 725.556,2196.94L671.84,2629.92L618.124,2196.94C616.817,2186.4 612.05,2176.6 604.579,2169.09C597.107,2161.59 587.357,2156.8 576.872,2155.48L146.001,2101.5L576.872,2047.53C587.357,2046.21 597.107,2041.42 604.579,2033.91C612.05,2026.4 616.817,2016.61 618.124,2006.07L671.84,1573.09ZM609.035,1710.36L564.657,1911.08C562.049,1932.11 552.538,1951.66 537.63,1966.64C522.722,1981.62 503.267,1991.18 482.345,1993.8L328.665,2028.11L609.035,1710.36ZM2297.12,938.615L2451.12,973.003C2480.59,976.695 2507.99,990.158 2528.99,1011.26C2549.99,1032.37 2563.39,1059.9 2567.07,1089.52L2672.73,1566.9C2634.5,1580.11 2593.44,1587.29 2550.72,1587.29C2344.33,1587.29 2176.77,1419.73 2176.77,1213.34C2176.77,1104.78 2223.13,1006.96 2297.12,938.615ZM2718.05,76.925L2793.72,686.847C2795.56,701.69 2802.27,715.491 2812.8,726.068C2823.32,736.644 2837.06,743.391 2851.83,745.242L3458.78,821.28L2851.83,897.318C2837.06,899.168 2823.32,905.916 2812.8,916.492C2802.27,927.068 2795.56,940.87 2793.72,955.712L2718.05,1565.63L2642.38,955.712C2640.54,940.87 2633.83,927.068 2623.3,916.492C2612.78,905.916 2599.04,899.168 2584.27,897.318L1977.32,821.28L2584.27,745.242C2599.04,743.391 2612.78,736.644 2623.3,726.068C2633.83,715.491 2640.54,701.69 2642.38,686.847L2718.05,76.925ZM2883.68,1043.06C2909.88,1094.13 2924.67,1152.02 2924.67,1213.34C2924.67,1335.4 2866.06,1443.88 2775.49,1512.14L2869.03,1089.52C2871.07,1073.15 2876.07,1057.42 2883.68,1043.06ZM925.928,201.2L959.611,472.704C960.431,479.311 963.42,485.455 968.105,490.163C972.79,494.871 978.904,497.875 985.479,498.698L1255.66,532.546L985.479,566.395C978.904,567.218 972.79,570.222 968.105,574.93C963.42,579.638 960.431,585.781 959.611,592.388L925.928,863.893L892.245,592.388C891.425,585.781 888.436,579.638 883.751,574.93C879.066,570.222 872.952,567.218 866.378,566.395L596.195,532.546L866.378,498.698C872.952,497.875 879.066,494.871 883.751,490.163C888.436,485.455 891.425,479.311 892.245,472.704L925.928,201.2ZM2864.47,532.373L3080.9,532.373C3258.7,532.373 3413.2,632.945 3490.58,780.281L3319.31,742.773C3257.14,683.925 3173.2,647.804 3080.9,647.804L2927.07,647.804C2919.95,642.994 2913.25,637.473 2907.11,631.298C2886.11,610.194 2872.71,582.655 2869.03,553.04L2864.47,532.373ZM1352.36,532.373L2571.64,532.373L2567.07,553.04C2563.39,582.655 2549.99,610.194 2528.99,631.298C2522.85,637.473 2516.16,642.994 2509.03,647.804L993.801,647.804C996.072,636.21 1001.73,625.517 1010.09,617.116C1019.43,607.722 1031.63,601.729 1044.75,600.085L1353.15,532.546L1352.36,532.373Z" /> ), - defaultProps: { - boxSize: '24px', - }, }); export default PostprocessingIcon; diff --git a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx index 325ea54dda..f6148ea49c 100644 --- a/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TextToImageIcon.tsx @@ -13,9 +13,6 @@ const TextToImageIcon = createIcon({ ), - defaultProps: { - boxSize: '24px', - }, }); export default TextToImageIcon; diff --git a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx index f925013138..a6bf178aab 100644 --- a/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/TrainingIcon.tsx @@ -11,9 +11,6 @@ const TrainingIcon = createIcon({ d="M0,768.593L0,2774.71C0,2930.6 78.519,3068.3 198.135,3150.37C273.059,3202.68 364.177,3233.38 462.407,3233.38C462.407,3233.38 3080.9,3233.38 3080.9,3233.38C3179.13,3233.38 3270.25,3202.68 3345.17,3150.37C3464.79,3068.3 3543.31,2930.6 3543.31,2774.71L3543.31,768.593C3543.31,517.323 3339.31,313.324 3088.04,313.324L455.269,313.324C203.999,313.324 0,517.323 0,768.593ZM3427.88,775.73L3427.88,2770.97C3427.88,2962.47 3272.4,3117.95 3080.9,3117.95L462.407,3117.95C270.906,3117.95 115.431,2962.47 115.431,2770.97C115.431,2770.97 115.431,775.73 115.431,775.73C115.431,584.229 270.906,428.755 462.407,428.755C462.407,428.755 3080.9,428.755 3080.9,428.755C3272.4,428.755 3427.88,584.229 3427.88,775.73ZM796.24,1322.76L796.24,1250.45C796.24,1199.03 836.16,1157.27 885.331,1157.27C885.331,1157.27 946.847,1157.27 946.847,1157.27C996.017,1157.27 1035.94,1199.03 1035.94,1250.45L1035.94,1644.81L2507.37,1644.81L2507.37,1250.45C2507.37,1199.03 2547.29,1157.27 2596.46,1157.27C2596.46,1157.27 2657.98,1157.27 2657.98,1157.27C2707.15,1157.27 2747.07,1199.03 2747.07,1250.45L2747.07,1322.76C2756.66,1319.22 2767.02,1317.29 2777.83,1317.29C2777.83,1317.29 2839.34,1317.29 2839.34,1317.29C2888.51,1317.29 2928.43,1357.21 2928.43,1406.38L2928.43,1527.32C2933.51,1526.26 2938.77,1525.71 2944.16,1525.71L2995.3,1525.71C3036.18,1525.71 3069.37,1557.59 3069.37,1596.86C3069.37,1596.86 3069.37,1946.44 3069.37,1946.44C3069.37,1985.72 3036.18,2017.6 2995.3,2017.6C2995.3,2017.6 2944.16,2017.6 2944.16,2017.6C2938.77,2017.6 2933.51,2017.04 2928.43,2015.99L2928.43,2136.92C2928.43,2186.09 2888.51,2226.01 2839.34,2226.01L2777.83,2226.01C2767.02,2226.01 2756.66,2224.08 2747.07,2220.55L2747.07,2292.85C2747.07,2344.28 2707.15,2386.03 2657.98,2386.03C2657.98,2386.03 2596.46,2386.03 2596.46,2386.03C2547.29,2386.03 2507.37,2344.28 2507.37,2292.85L2507.37,1898.5L1035.94,1898.5L1035.94,2292.85C1035.94,2344.28 996.017,2386.03 946.847,2386.03C946.847,2386.03 885.331,2386.03 885.331,2386.03C836.16,2386.03 796.24,2344.28 796.24,2292.85L796.24,2220.55C786.651,2224.08 776.29,2226.01 765.482,2226.01L703.967,2226.01C654.796,2226.01 614.876,2186.09 614.876,2136.92L614.876,2015.99C609.801,2017.04 604.539,2017.6 599.144,2017.6C599.144,2017.6 548.003,2017.6 548.003,2017.6C507.125,2017.6 473.937,1985.72 473.937,1946.44C473.937,1946.44 473.937,1596.86 473.937,1596.86C473.937,1557.59 507.125,1525.71 548.003,1525.71L599.144,1525.71C604.539,1525.71 609.801,1526.26 614.876,1527.32L614.876,1406.38C614.876,1357.21 654.796,1317.29 703.967,1317.29C703.967,1317.29 765.482,1317.29 765.482,1317.29C776.29,1317.29 786.651,1319.22 796.24,1322.76ZM977.604,1250.45C977.604,1232.7 963.822,1218.29 946.847,1218.29L885.331,1218.29C868.355,1218.29 854.573,1232.7 854.573,1250.45L854.573,2292.85C854.573,2310.61 868.355,2325.02 885.331,2325.02L946.847,2325.02C963.822,2325.02 977.604,2310.61 977.604,2292.85L977.604,1250.45ZM2565.7,1250.45C2565.7,1232.7 2579.49,1218.29 2596.46,1218.29L2657.98,1218.29C2674.95,1218.29 2688.73,1232.7 2688.73,1250.45L2688.73,2292.85C2688.73,2310.61 2674.95,2325.02 2657.98,2325.02L2596.46,2325.02C2579.49,2325.02 2565.7,2310.61 2565.7,2292.85L2565.7,1250.45ZM673.209,1406.38L673.209,2136.92C673.209,2153.9 686.991,2167.68 703.967,2167.68L765.482,2167.68C782.458,2167.68 796.24,2153.9 796.24,2136.92L796.24,1406.38C796.24,1389.41 782.458,1375.63 765.482,1375.63L703.967,1375.63C686.991,1375.63 673.209,1389.41 673.209,1406.38ZM2870.1,1406.38L2870.1,2136.92C2870.1,2153.9 2856.32,2167.68 2839.34,2167.68L2777.83,2167.68C2760.85,2167.68 2747.07,2153.9 2747.07,2136.92L2747.07,1406.38C2747.07,1389.41 2760.85,1375.63 2777.83,1375.63L2839.34,1375.63C2856.32,1375.63 2870.1,1389.41 2870.1,1406.38ZM614.876,1577.5C610.535,1574.24 605.074,1572.3 599.144,1572.3L548.003,1572.3C533.89,1572.3 522.433,1583.3 522.433,1596.86L522.433,1946.44C522.433,1960 533.89,1971.01 548.003,1971.01L599.144,1971.01C605.074,1971.01 610.535,1969.07 614.876,1965.81L614.876,1577.5ZM2928.43,1965.81L2928.43,1577.5C2932.77,1574.24 2938.23,1572.3 2944.16,1572.3L2995.3,1572.3C3009.42,1572.3 3020.87,1583.3 3020.87,1596.86L3020.87,1946.44C3020.87,1960 3009.42,1971.01 2995.3,1971.01L2944.16,1971.01C2938.23,1971.01 2932.77,1969.07 2928.43,1965.81ZM2507.37,1703.14L1035.94,1703.14L1035.94,1840.16L2507.37,1840.16L2507.37,1898.38L2507.37,1659.46L2507.37,1703.14Z" /> ), - defaultProps: { - boxSize: '24px', - }, }); export default TrainingIcon; diff --git a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx index 3cedec04a4..daa8ecf8a9 100644 --- a/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx +++ b/invokeai/frontend/web/src/common/icons/UnifiedCanvasIcon.tsx @@ -11,9 +11,6 @@ const UnifiedCanvasIcon = createIcon({ d="M3543.31,770.787C3543.31,515.578 3336.11,308.38 3080.9,308.38L462.407,308.38C207.197,308.38 -0,515.578 -0,770.787L-0,2766.03C-0,3021.24 207.197,3228.44 462.407,3228.44L3080.9,3228.44C3336.11,3228.44 3543.31,3021.24 3543.31,2766.03C3543.31,2766.03 3543.31,770.787 3543.31,770.787ZM922.933,3113.01L462.407,3113.01C437.741,3113.01 413.674,3110.43 390.453,3105.52L390.453,2899.11L922.933,2899.11L922.933,3113.01ZM947.933,2899.11L947.933,3113.01L1480.41,3113.01L1480.41,2899.11L947.933,2899.11ZM1505.41,2899.11L1505.41,3113.01L2037.89,3113.01L2037.89,2899.11L1505.41,2899.11ZM2062.89,2899.11L2062.89,3113.01L2595.37,3113.01L2595.37,2899.11L2062.89,2899.11ZM3152.85,3105.52C3129.63,3110.43 3105.57,3113.01 3080.9,3113.01L2620.37,3113.01L2620.37,2899.11L3152.85,2899.11L3152.85,3105.52ZM365.453,3099.26L365.408,3099.24C354.521,3096.07 343.79,3092.37 333.266,3088.14C315.377,3080.95 298.094,3072.26 281.651,3062.2C263.114,3050.85 245.648,3037.77 229.544,3023.17C213.34,3008.49 198.518,2992.28 185.34,2974.83C174.102,2959.94 164.06,2944.16 155.353,2927.66C150.517,2918.5 146.102,2909.13 142.102,2899.57L141.91,2899.11L365.453,2899.11L365.453,3099.26ZM3401.4,2899.11C3361.33,2995.39 3279.12,3069.8 3177.85,3099.26L3177.85,2899.11L3401.4,2899.11ZM132.624,2874.11C121.465,2840.08 115.431,2803.76 115.431,2766.03L115.431,2341.63L365.453,2341.63L365.453,2874.11L132.624,2874.11ZM922.933,918.103L922.933,669.193L390.453,669.193L390.453,1201.67L731.014,1201.67L731.014,1226.67L390.453,1226.67L390.453,1759.15L731.014,1759.15L731.014,1784.15L390.453,1784.15L390.453,2316.63L731.014,2316.63L731.014,2341.63L390.453,2341.63L390.453,2874.11L922.933,2874.11L922.933,2625.2C931.122,2627.1 939.463,2628.6 947.933,2629.66L947.933,2874.11L1480.41,2874.11L1480.41,2631.62L1505.41,2631.62L1505.41,2874.11L2037.89,2874.11L2037.89,2631.62L2062.89,2631.62L2062.89,2874.11L2595.37,2874.11L2595.37,2629.66C2603.85,2628.6 2612.18,2627.1 2620.37,2625.2L2620.37,2874.11L3152.85,2874.11L3152.85,2341.63L2812.29,2341.63L2812.29,2316.63L3152.85,2316.63L3152.85,1784.15L2812.29,1784.15L2812.29,1759.15L3152.85,1759.15L3152.85,1226.67L2812.29,1226.67L2812.29,1201.67L3152.85,1201.67L3152.85,669.193L2620.37,669.193L2620.37,918.103C2612.18,916.203 2603.84,914.708 2595.37,913.642L2595.37,669.193L2062.89,669.193L2062.89,911.688L2037.89,911.688L2037.89,669.193L1505.41,669.193L1505.41,911.688L1480.41,911.688L1480.41,669.193L947.933,669.193L947.933,913.642C939.462,914.708 931.123,916.203 922.933,918.103ZM3427.88,2341.63L3427.88,2766.03C3427.88,2803.76 3421.84,2840.08 3410.68,2874.11L3177.85,2874.11L3177.85,2341.63L3427.88,2341.63ZM2494.01,2603.04L2524.53,2603.04C2541.26,2603.04 2557.62,2601.44 2573.47,2598.39L2598.02,2593.66L2588.56,2544.56L2564.01,2549.29C2551.23,2551.75 2538.03,2553.04 2524.53,2553.04L2494.01,2553.04L2494.01,2603.04ZM1294.01,2603.04L1394.01,2603.04L1394.01,2553.04L1294.01,2553.04L1294.01,2603.04ZM1894.01,2603.04L1994.01,2603.04L1994.01,2553.04L1894.01,2553.04L1894.01,2603.04ZM2194.01,2603.04L2294.01,2603.04L2294.01,2553.04L2194.01,2553.04L2194.01,2603.04ZM1144.01,2603.04L1244.01,2603.04L1244.01,2553.04L1144.01,2553.04L1144.01,2603.04ZM1444.01,2603.04L1544.01,2603.04L1544.01,2553.04L1444.01,2553.04L1444.01,2603.04ZM1594.01,2603.04L1694.01,2603.04L1694.01,2553.04L1594.01,2553.04L1594.01,2603.04ZM2344.01,2603.04L2444.01,2603.04L2444.01,2553.04L2344.01,2553.04L2344.01,2603.04ZM2044.01,2603.04L2144.01,2603.04L2144.01,2553.04L2044.01,2553.04L2044.01,2603.04ZM994.01,2603.04L1094.01,2603.04L1094.01,2553.04L994.01,2553.04L994.01,2603.04ZM1744.01,2603.04L1844.01,2603.04L1844.01,2553.04L1744.01,2553.04L1744.01,2603.04ZM864.145,2551.46C878.835,2562.5 894.741,2572 911.624,2579.74L934.352,2590.15L955.18,2544.7L932.452,2534.28C918.844,2528.05 906.024,2520.39 894.185,2511.49L874.199,2496.47L844.16,2536.44L864.145,2551.46ZM2674.44,2554.92C2689.46,2544.16 2703.28,2531.82 2715.65,2518.14L2732.42,2499.61L2695.35,2466.06L2678.58,2484.6C2668.59,2495.63 2657.44,2505.59 2645.32,2514.28L2625,2528.84L2654.12,2569.48L2674.44,2554.92ZM865.632,1911.31L1339.59,1374.15L2030.89,2134.59L2392.97,1713.77L2677.68,2017.9L2677.68,2324.93C2677.68,2424.23 2597.06,2504.85 2497.76,2504.85C2497.76,2504.85 1045.55,2504.85 1045.55,2504.85C946.251,2504.85 865.632,2424.23 865.632,2324.93L865.632,1911.31ZM771.251,2417.22C776.455,2435.14 783.552,2452.26 792.313,2468.35L804.27,2490.3L848.18,2466.39L836.223,2444.43C829.171,2431.49 823.457,2417.7 819.268,2403.28L812.297,2379.27L764.28,2393.21L771.251,2417.22ZM2770.36,2422.83C2775.83,2405.47 2779.52,2387.33 2781.2,2368.61L2783.43,2343.71L2733.64,2339.24L2731.4,2364.14C2730.05,2379.21 2727.08,2393.82 2722.67,2407.79L2715.15,2431.63L2762.84,2446.67L2770.36,2422.83ZM761.068,2236.12L761.068,2336.12L811.068,2336.12L811.068,2236.12L761.068,2236.12ZM3177.85,1784.15L3177.85,2316.63L3427.88,2316.63L3427.88,1784.15L3177.85,1784.15ZM115.431,1784.15L115.431,2316.63L365.453,2316.63L365.453,1784.15L115.431,1784.15ZM2782.24,2291.41L2782.24,2191.41L2732.24,2191.41L2732.24,2291.41L2782.24,2291.41ZM761.068,2086.12L761.068,2186.12L811.068,2186.12L811.068,2086.12L761.068,2086.12ZM2782.24,2141.41L2782.24,2041.4L2732.24,2041.4L2732.24,2141.41L2782.24,2141.41ZM761.068,1936.12L761.068,2036.12L811.068,2036.12L811.068,1936.12L761.068,1936.12ZM2782.24,1991.4L2782.24,1891.4L2732.24,1891.4L2732.24,1991.4L2782.24,1991.4ZM761.068,1786.12L761.068,1886.12L811.068,1886.12L811.068,1786.12L761.068,1786.12ZM2782.24,1841.4L2782.24,1741.41L2732.24,1741.41L2732.24,1841.4L2782.24,1841.4ZM3177.85,1226.67L3177.85,1759.15L3427.88,1759.15L3427.88,1226.67L3177.85,1226.67ZM115.431,1226.67L115.431,1759.15L365.453,1759.15L365.453,1226.67L115.431,1226.67ZM761.068,1636.12L761.068,1736.12L811.068,1736.12L811.068,1636.12L761.068,1636.12ZM2782.24,1691.41L2782.24,1591.41L2732.24,1591.41L2732.24,1691.41L2782.24,1691.41ZM761.068,1486.12L761.068,1586.12L811.068,1586.12L811.068,1486.12L761.068,1486.12ZM2203.72,1132.2C2318.18,1132.2 2411.11,1225.13 2411.11,1339.59C2411.11,1454.05 2318.18,1546.98 2203.72,1546.98C2089.26,1546.98 1996.33,1454.05 1996.33,1339.59C1996.33,1225.13 2089.26,1132.2 2203.72,1132.2ZM2782.24,1541.41L2782.24,1441.41L2732.24,1441.41L2732.24,1541.41L2782.24,1541.41ZM761.068,1336.12L761.068,1436.12L811.068,1436.12L811.068,1336.12L761.068,1336.12ZM2782.24,1391.41L2782.24,1291.41L2732.24,1291.41L2732.24,1391.41L2782.24,1391.41ZM761.068,1186.12L761.068,1286.12L811.068,1286.12L811.068,1186.12L761.068,1186.12ZM2732.24,1197.98L2732.24,1241.41L2782.24,1241.41L2782.24,1172.98L2781.03,1172.98C2780.06,1162.82 2778.49,1152.83 2776.36,1143.04L2771.04,1118.62L2722.18,1129.24L2727.5,1153.67C2730.61,1167.95 2732.24,1182.78 2732.24,1197.98ZM3412.74,669.193L3412.89,669.694C3414.66,675.5 3416.28,681.348 3417.73,687.238C3420.46,698.265 3422.65,709.427 3424.28,720.67C3425.85,731.554 3426.91,742.513 3427.45,753.497C3427.74,759.256 3427.87,765.021 3427.88,770.787L3427.88,1201.67L3177.85,1201.67L3177.85,669.193L3412.74,669.193ZM115.431,1201.67L115.431,770.787C115.436,765.021 115.572,759.256 115.855,753.497C116.395,742.513 117.453,731.554 119.031,720.67C120.66,709.427 122.844,698.265 125.574,687.238C127.032,681.348 128.65,675.5 130.414,669.694L130.567,669.193L365.453,669.193L365.453,1201.67L115.431,1201.67ZM804.386,1055C794.186,1070.26 785.572,1086.67 778.777,1103.99L769.647,1127.26L816.194,1145.52L825.324,1122.25C830.797,1108.3 837.738,1095.08 845.955,1082.79L859.848,1062L818.279,1034.21L804.386,1055ZM2730.5,1043.14C2719.39,1028.39 2706.73,1014.86 2692.77,1002.81L2673.84,986.48L2641.17,1024.34L2660.1,1040.67C2671.37,1050.39 2681.59,1061.31 2690.56,1073.22L2705.6,1093.19L2745.54,1063.11L2730.5,1043.14ZM933.266,954.821C915.698,961.006 898.998,969.041 883.402,978.694L862.144,991.851L888.457,1034.37L909.715,1021.21C922.275,1013.44 935.723,1006.96 949.871,1001.98L973.452,993.681L956.848,946.518L933.266,954.821ZM2596.18,950.378C2578.71,945.327 2560.49,942.072 2541.72,940.832L2516.78,939.183L2513.48,989.074L2538.43,990.723C2553.54,991.722 2568.22,994.341 2582.28,998.409L2606.3,1005.36L2620.19,957.325L2596.18,950.378ZM2165.09,940.265L2065.09,940.265L2065.09,990.265L2165.09,990.265L2165.09,940.265ZM1865.08,940.265L1765.08,940.265L1765.08,990.265L1865.08,990.265L1865.08,940.265ZM1115.08,940.265L1015.08,940.265L1015.08,990.265L1115.08,990.265L1115.08,940.265ZM2015.09,940.265L1915.09,940.265L1915.09,990.265L2015.09,990.265L2015.09,940.265ZM2315.09,940.265L2215.09,940.265L2215.09,990.265L2315.09,990.265L2315.09,940.265ZM1265.08,940.265L1165.08,940.265L1165.08,990.265L1265.08,990.265L1265.08,940.265ZM1415.08,940.265L1315.08,940.265L1315.08,990.265L1415.08,990.265L1415.08,940.265ZM1565.08,940.265L1465.08,940.265L1465.08,990.265L1565.08,990.265L1565.08,940.265ZM1715.08,940.265L1615.08,940.265L1615.08,990.265L1715.08,990.265L1715.08,940.265ZM2465.09,940.265L2365.09,940.265L2365.09,990.265L2465.09,990.265L2465.09,940.265ZM365.453,437.562L365.453,644.193L139.286,644.193C178.303,544.782 261.917,467.677 365.453,437.562ZM922.933,423.812L922.933,644.193L390.453,644.193L390.453,431.295C413.674,426.391 437.741,423.812 462.407,423.812L922.933,423.812ZM947.933,423.812L947.933,644.193L1480.41,644.193L1480.41,423.812L947.933,423.812ZM1505.41,423.812L1505.41,644.193L2037.89,644.193L2037.89,423.812L1505.41,423.812ZM2062.89,423.812L2062.89,644.193L2595.37,644.193L2595.37,423.812L2062.89,423.812ZM2620.37,423.812L3080.9,423.812C3105.57,423.812 3129.63,426.391 3152.85,431.295L3152.85,644.193L2620.37,644.193L2620.37,423.812ZM3177.85,437.562C3281.38,467.669 3365,544.774 3404.02,644.193L3177.85,644.193L3177.85,437.562Z" /> ), - defaultProps: { - boxSize: '24px', - }, }); export default UnifiedCanvasIcon; diff --git a/invokeai/frontend/web/src/common/util/parameterTranslation.ts b/invokeai/frontend/web/src/common/util/parameterTranslation.ts index 07b8ac8ea1..f703a96f4a 100644 --- a/invokeai/frontend/web/src/common/util/parameterTranslation.ts +++ b/invokeai/frontend/web/src/common/util/parameterTranslation.ts @@ -144,8 +144,8 @@ export const frontendToBackendParameters = ( variationAmount, width, shouldUseSymmetry, - horizontalSymmetrySteps, - verticalSymmetrySteps, + horizontalSymmetryTimePercentage, + verticalSymmetryTimePercentage, } = generationState; const { @@ -185,17 +185,17 @@ export const frontendToBackendParameters = ( // Symmetry Settings if (shouldUseSymmetry) { - if (horizontalSymmetrySteps > 0) { + if (horizontalSymmetryTimePercentage > 0) { generationParameters.h_symmetry_time_pct = Math.max( 0, - Math.min(1, horizontalSymmetrySteps / steps) + Math.min(1, horizontalSymmetryTimePercentage / steps) ); } - if (verticalSymmetrySteps > 0) { + if (horizontalSymmetryTimePercentage > 0) { generationParameters.v_symmetry_time_pct = Math.max( 0, - Math.min(1, verticalSymmetrySteps / steps) + Math.min(1, verticalSymmetryTimePercentage / steps) ); } } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx index 657f407b5d..b57bc1cc16 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx @@ -1,4 +1,3 @@ -import { Box, chakra, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { @@ -89,10 +88,6 @@ const selector = createSelector( } ); -const ChakraStage = chakra(Stage, { - shouldForwardProp: (prop) => !['sx'].includes(prop), -}); - const IAICanvas = () => { const { isMaskEnabled, @@ -140,26 +135,14 @@ const IAICanvas = () => { useCanvasDragMove(); return ( - - - +
          + { visible={shouldShowBoundingBox && !isStaging} /> - + - - +
          +
          ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx index e38debae83..9ffed8d70a 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasGrid.tsx @@ -1,7 +1,7 @@ // Grid drawing adapted from https://longviewcoder.com/2021/12/08/konva-a-better-grid/ +import { useColorMode } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { isEqual, range } from 'lodash'; @@ -26,13 +26,10 @@ const gridLinesColor = { dark: 'rgba(255, 255, 255, 0.2)', green: 'rgba(255, 255, 255, 0.2)', light: 'rgba(0, 0, 0, 0.2)', - ocean: 'rgba(136, 148, 184, 0.2)', }; const IAICanvasGrid = () => { - const currentTheme = useAppSelector( - (state: RootState) => state.ui.currentTheme - ); + const { colorMode } = useColorMode(); const { stageScale, stageCoordinates, stageDimensions } = useAppSelector(selector); const [gridLines, setGridLines] = useState([]); @@ -45,8 +42,7 @@ const IAICanvasGrid = () => { ); useLayoutEffect(() => { - const gridLineColor = - gridLinesColor[currentTheme as keyof typeof gridLinesColor]; + const gridLineColor = gridLinesColor[colorMode]; const { width, height } = stageDimensions; const { x, y } = stageCoordinates; @@ -112,7 +108,7 @@ const IAICanvasGrid = () => { )); setGridLines(xLines.concat(yLines)); - }, [stageScale, stageCoordinates, stageDimensions, currentTheme, unscale]); + }, [stageScale, stageCoordinates, stageDimensions, colorMode, unscale]); return {gridLines}; }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx index 3062abae91..9e07dce992 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasResizer.tsx @@ -1,4 +1,4 @@ -import { Flex, Spinner } from '@chakra-ui/react'; +import { Spinner } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -70,19 +70,9 @@ const IAICanvasResizer = () => { ]); return ( - +
          - +
          ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx index 74d6382308..60af853289 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStagingAreaToolbar.tsx @@ -115,7 +115,7 @@ const IAICanvasStagingAreaToolbar = () => { return ( { aria-label={`${t('unifiedCanvas.previous')} (Left)`} icon={} onClick={handlePrevImage} - colorScheme="accent" + data-selected={true} isDisabled={isOnFirstImage} /> { aria-label={`${t('unifiedCanvas.next')} (Right)`} icon={} onClick={handleNextImage} - colorScheme="accent" + data-selected={true} isDisabled={isOnLastImage} /> { aria-label={`${t('unifiedCanvas.accept')} (Enter)`} icon={} onClick={handleAccept} - colorScheme="accent" + data-selected={true} /> { onClick={() => dispatch(setShouldShowStagingImage(!shouldShowStagingImage)) } - colorScheme="accent" + data-selected={true} /> { saveStagingAreaImageToGallery(currentStagingAreaImage.image.url) ) } - colorScheme="accent" + data-selected={true} /> } onClick={() => dispatch(discardStagedImages())} - colorScheme="error" + data-selected={true} + style={{ backgroundColor: 'var(--btn-delete-image)' }} fontSize={20} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx index e886a3ad5d..83ee94520a 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText.tsx @@ -1,4 +1,3 @@ -import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -8,8 +7,6 @@ import { useTranslation } from 'react-i18next'; import roundToHundreth from '../util/roundToHundreth'; import IAICanvasStatusTextCursorPos from './IAICanvasStatusText/IAICanvasStatusTextCursorPos'; -const warningColor = 'var(--invokeai-colors-warning-500)'; - const selector = createSelector( [canvasSelector], (canvas) => { @@ -37,10 +34,11 @@ const selector = createSelector( (boundingBoxScaleMethod === 'manual' && scaledBoxWidth * scaledBoxHeight < 512 * 512) ) { - boundingBoxColor = warningColor; + boundingBoxColor = 'var(--status-working-color)'; } - const activeLayerColor = layer === 'mask' ? warningColor : 'inherit'; + const activeLayerColor = + layer === 'mask' ? 'var(--status-working-color)' : 'inherit'; return { activeLayerColor, @@ -89,72 +87,55 @@ const IAICanvasStatusText = () => { const { t } = useTranslation(); return ( - - +
          {`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`} - {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`} + >{`${t('unifiedCanvas.activeLayer')}: ${activeLayerString}`}
          +
          {`${t('unifiedCanvas.canvasScale')}: ${canvasScaleString}%`}
          {shouldPreserveMaskedArea && ( - Preserve Masked Area: On - +

        k`dD%Oq-FGvtZa7vl=NRMebJriyObJqizc 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

        )} {shouldShowBoundingBox && ( - {`${t( - 'unifiedCanvas.boundingBox' - )}: ${boundingBoxDimensionsString}`} + 'unifiedcanvas:boundingBox' + )}: ${boundingBoxDimensionsString}`}
        )} {shouldShowScaledBoundingBox && ( - {`${t( - 'unifiedCanvas.scaledBoundingBox' - )}: ${scaledBoundingBoxDimensionsString}`} + 'unifiedcanvas:scaledBoundingBox' + )}: ${scaledBoundingBoxDimensionsString}`}

      k`dD%Oq-FGvtZa7vl=NRMebJriyObJqizc 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

      )} {shouldShowCanvasDebugInfo && ( <> - {`${t( - 'unifiedCanvas.boundingBoxPosition' - )}: ${boundingBoxCoordinatesString}`} - {`${t( - 'unifiedCanvas.canvasDimensions' - )}: ${canvasDimensionsString}`} - {`${t( - 'unifiedCanvas.canvasPosition' - )}: ${canvasCoordinatesString}`} +
      {`${t( + 'unifiedcanvas:boundingBoxPosition' + )}: ${boundingBoxCoordinatesString}`}
      +
      {`${t( + 'unifiedcanvas:canvasDimensions' + )}: ${canvasDimensionsString}`}
      +
      {`${t( + 'unifiedcanvas:canvasPosition' + )}: ${canvasCoordinatesString}`}
      )} - +
      ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx index 2570290393..c77d0cae65 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasStatusText/IAICanvasStatusTextCursorPos.tsx @@ -1,4 +1,3 @@ -import { Box } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; @@ -34,8 +33,8 @@ export default function IAICanvasStatusTextCursorPos() { const { t } = useTranslation(); return ( - {`${t( - 'unifiedCanvas.cursorPosition' - )}: ${cursorCoordinatesString}`} +
      {`${t( + 'unifiedcanvas:cursorPosition' + )}: ${cursorCoordinatesString}`}
      ); } diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index 9326f52d2d..bca6728b87 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -111,13 +111,17 @@ const IAICanvasMaskOptions = () => { aria-label={t('unifiedCanvas.maskingOptions')} tooltip={t('unifiedCanvas.maskingOptions')} icon={} - isChecked={layer === 'mask'} + style={ + layer === 'mask' + ? { backgroundColor: 'var(--accent-color)' } + : { backgroundColor: 'var(--btn-base-color)' } + } isDisabled={isStaging} /> } > - + { } /> dispatch(setMaskColor(newColor))} /> } onClick={handleClearMask}> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx index 0457d8844c..72af7f8261 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasSettingsButtonPopover.tsx @@ -97,7 +97,7 @@ const IAICanvasSettingsButtonPopover = () => { /> } > - + { aria-label={`${t('unifiedCanvas.brush')} (B)`} tooltip={`${t('unifiedCanvas.brush')} (B)`} icon={} - isChecked={tool === 'brush' && !isStaging} + data-selected={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -192,7 +192,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (E)`} icon={} - isChecked={tool === 'eraser' && !isStaging} + data-selected={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -214,7 +214,7 @@ const IAICanvasToolChooserOptions = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - isChecked={tool === 'colorPicker' && !isStaging} + data-selected={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} /> @@ -228,8 +228,8 @@ const IAICanvasToolChooserOptions = () => { /> } > - - + + { /> dispatch(setBrushColor(newColor))} /> diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx index 4e53039e38..29fdc40975 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolbar.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup, Flex } from '@chakra-ui/react'; +import { ButtonGroup } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -68,7 +68,7 @@ export const selector = createSelector( } ); -const IAICanvasToolbar = () => { +const IAICanvasOutpaintingControls = () => { const dispatch = useAppDispatch(); const { isProcessing, @@ -230,12 +230,7 @@ const IAICanvasToolbar = () => { }; return ( - +
      { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - isChecked={tool === 'move' || isStaging} + data-selected={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> { tooltip={`${t('unifiedCanvas.clearCanvas')}`} icon={} onClick={handleResetCanvas} - colorScheme="error" + style={{ backgroundColor: 'var(--btn-delete-image)' }} isDisabled={isStaging} /> - +
      ); }; -export default IAICanvasToolbar; +export default IAICanvasOutpaintingControls; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss new file mode 100644 index 0000000000..a48454bb8c --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.scss @@ -0,0 +1,32 @@ +.current-image-options { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + column-gap: 0.5em; + + .current-image-send-to-popover, + .current-image-postprocessing-popover { + display: flex; + flex-direction: column; + row-gap: 0.5rem; + max-width: 25rem; + } + + .current-image-send-to-popover { + .invokeai__button { + place-content: start; + } + } + + .chakra-popover__popper { + z-index: 11; + } + + .delete-image-btn { + background-color: var(--btn-base-color); + svg { + fill: var(--btn-delete-image); + } + } +} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx index be59962556..92d6aa6d06 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageButtons.tsx @@ -1,7 +1,7 @@ import { createSelector } from '@reduxjs/toolkit'; import { isEqual } from 'lodash'; -import { ButtonGroup, Flex, FlexProps, Link, useToast } from '@chakra-ui/react'; +import { ButtonGroup, Link, useToast } from '@chakra-ui/react'; import { runESRGAN, runFacetool } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -102,13 +102,11 @@ const currentImageButtonsSelector = createSelector( } ); -type CurrentImageButtonsProps = FlexProps; - /** * Row of buttons for common actions: * Use as init image, use all params, use seed, upscale, fix faces, details, delete. */ -const CurrentImageButtons = (props: CurrentImageButtonsProps) => { +const CurrentImageButtons = () => { const dispatch = useAppDispatch(); const { isProcessing, @@ -397,14 +395,7 @@ const CurrentImageButtons = (props: CurrentImageButtonsProps) => { }; return ( - +
      { /> } > - +
      { {t('parameters.downloadImage')} - +
      } @@ -471,7 +456,7 @@ const CurrentImageButtons = (props: CurrentImageButtonsProps) => { ? `${t('parameters.openInViewer')} (Z)` : `${t('parameters.closeViewer')} (Z)` } - isChecked={isLightboxOpen} + data-selected={isLightboxOpen} onClick={handleLightBox} />
      @@ -516,12 +501,7 @@ const CurrentImageButtons = (props: CurrentImageButtonsProps) => { /> } > - +
      { > {t('parameters.restoreFaces')} - +
      { /> } > - +
      { > {t('parameters.upscaleImage')} - +
      @@ -573,7 +548,7 @@ const CurrentImageButtons = (props: CurrentImageButtonsProps) => { icon={} tooltip={`${t('parameters.info')} (I)`} aria-label={`${t('parameters.info')} (I)`} - isChecked={shouldShowImageDetails} + data-selected={shouldShowImageDetails} onClick={handleClickShowImageDetails} /> @@ -584,10 +559,10 @@ const CurrentImageButtons = (props: CurrentImageButtonsProps) => { tooltip={`${t('parameters.deleteImage')} (Del)`} aria-label={`${t('parameters.deleteImage')} (Del)`} isDisabled={!currentImage || !isConnected || isProcessing} - colorScheme="error" + style={{ backgroundColor: 'var(--btn-delete-image)' }} /> -
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss new file mode 100644 index 0000000000..498da35ea6 --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.scss @@ -0,0 +1,83 @@ +@use '../../../styles/Mixins/' as *; + +.current-image-area { + display: flex; + flex-direction: column; + height: 100%; + row-gap: 1rem; + background-color: var(--background-color-secondary); + border-radius: 0.5rem; +} + +.current-image-preview { + position: relative; + justify-content: center; + align-items: center; + display: flex; + width: 100%; + height: 100%; + + img { + border-radius: 0.5rem; + object-fit: contain; + max-width: 100%; + max-height: 100%; + height: auto; + position: absolute; + } +} + +.current-image-metadata { + grid-area: current-image-preview; +} + +.current-image-next-prev-buttons { + grid-area: current-image-content; + display: flex; + justify-content: space-between; + z-index: 1; + height: 100%; + width: 100%; + pointer-events: none; +} + +.next-prev-button-trigger-area { + width: 7rem; + height: 100%; + width: 15%; + display: grid; + align-items: center; + pointer-events: auto; + + &.prev-button-trigger-area { + justify-content: flex-start; + } + + &.next-button-trigger-area { + justify-content: flex-end; + } +} + +.next-prev-button { + font-size: 4rem; + fill: var(--white); + filter: drop-shadow(0 0 1rem var(--text-color-secondary)); + opacity: 70%; +} + +.current-image-display-placeholder { + background-color: var(--background-color-secondary); + display: grid; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + border-radius: 0.5rem; + + svg { + width: 10rem; + height: 10rem; + color: var(--svg-color); + } +} diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx index 6c46e14391..a5e9683afd 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImageDisplay.tsx @@ -1,6 +1,10 @@ -import { Flex, Icon } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/storeHooks'; +import { GalleryState } from 'features/gallery/store/gallerySlice'; +import { + activeTabNameSelector, + uiSelector, +} from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; import { MdPhoto } from 'react-icons/md'; @@ -9,11 +13,14 @@ import CurrentImageButtons from './CurrentImageButtons'; import CurrentImagePreview from './CurrentImagePreview'; export const currentImageDisplaySelector = createSelector( - [gallerySelector], - (gallery) => { + [gallerySelector, uiSelector, activeTabNameSelector], + (gallery: GalleryState, ui, activeTabName) => { const { currentImage, intermediateImage } = gallery; + const { shouldShowImageDetails } = ui; return { + activeTabName, + shouldShowImageDetails, hasAnImageToDisplay: currentImage || intermediateImage, }; }, @@ -28,42 +35,23 @@ export const currentImageDisplaySelector = createSelector( * Displays the current image if there is one, plus associated actions. */ const CurrentImageDisplay = () => { - const { hasAnImageToDisplay } = useAppSelector(currentImageDisplaySelector); + const { hasAnImageToDisplay, activeTabName } = useAppSelector( + currentImageDisplaySelector + ); return ( - +
      {hasAnImageToDisplay ? ( <> ) : ( - - - +
      + +
      )} - +
      ); }; diff --git a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx index 0f9ffad325..720df07f4a 100644 --- a/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/CurrentImagePreview.tsx @@ -1,24 +1,47 @@ -import { Flex, Image } from '@chakra-ui/react'; +import { IconButton, Image } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppSelector } from 'app/storeHooks'; -import { GalleryState } from 'features/gallery/store/gallerySlice'; +import { useAppDispatch, useAppSelector } from 'app/storeHooks'; +import { + GalleryCategory, + GalleryState, + selectNextImage, + selectPrevImage, +} from 'features/gallery/store/gallerySlice'; import { uiSelector } from 'features/ui/store/uiSelectors'; import { isEqual } from 'lodash'; +import { useState } from 'react'; +import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; import { gallerySelector } from '../store/gallerySelectors'; import ImageMetadataViewer from './ImageMetaDataViewer/ImageMetadataViewer'; -import NextPrevImageButtons from './NextPrevImageButtons'; export const imagesSelector = createSelector( [gallerySelector, uiSelector], (gallery: GalleryState, ui) => { - const { currentImage, intermediateImage } = gallery; + const { currentCategory, currentImage, intermediateImage } = gallery; const { shouldShowImageDetails } = ui; + const tempImages = + gallery.categories[ + currentImage ? (currentImage.category as GalleryCategory) : 'result' + ].images; + const currentImageIndex = tempImages.findIndex( + (i) => i.uuid === gallery?.currentImage?.uuid + ); + const imagesLength = tempImages.length; + return { imageToDisplay: intermediateImage ? intermediateImage : currentImage, isIntermediate: Boolean(intermediateImage), + viewerImageToDisplay: currentImage, + currentCategory, + isOnFirstImage: currentImageIndex === 0, + isOnLastImage: + !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, shouldShowImageDetails, + shouldShowPrevImageButton: currentImageIndex === 0, + shouldShowNextImageButton: + !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, }; }, { @@ -29,44 +52,85 @@ export const imagesSelector = createSelector( ); export default function CurrentImagePreview() { - const { shouldShowImageDetails, imageToDisplay, isIntermediate } = - useAppSelector(imagesSelector); + const dispatch = useAppDispatch(); + + const { + isOnFirstImage, + isOnLastImage, + shouldShowImageDetails, + imageToDisplay, + isIntermediate, + } = useAppSelector(imagesSelector); + + const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = + useState(false); + + const handleCurrentImagePreviewMouseOver = () => { + setShouldShowNextPrevButtons(true); + }; + + const handleCurrentImagePreviewMouseOut = () => { + setShouldShowNextPrevButtons(false); + }; + + const handleClickPrevButton = () => { + dispatch(selectPrevImage()); + }; + + const handleClickNextButton = () => { + dispatch(selectNextImage()); + }; return ( - +
      {imageToDisplay && ( )} - {!shouldShowImageDetails && } + {!shouldShowImageDetails && ( +
      +
      + {shouldShowNextPrevButtons && !isOnFirstImage && ( + } + variant="unstyled" + onClick={handleClickPrevButton} + /> + )} +
      +
      + {shouldShowNextPrevButtons && !isOnLastImage && ( + } + variant="unstyled" + onClick={handleClickNextButton} + /> + )} +
      +
      + )} {shouldShowImageDetails && imageToDisplay && ( )} - +
      ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx index 734dc3b682..8b759d9301 100644 --- a/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/DeleteImageModal.tsx @@ -5,8 +5,11 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, - forwardRef, + Button, Flex, + FormControl, + FormLabel, + Switch, Text, useDisclosure, } from '@chakra-ui/react'; @@ -14,8 +17,6 @@ import { createSelector } from '@reduxjs/toolkit'; import * as InvokeAI from 'app/invokeai'; import { deleteImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import IAIButton from 'common/components/IAIButton'; -import IAISwitch from 'common/components/IAISwitch'; import { systemSelector } from 'features/system/store/systemSelectors'; import { setShouldConfirmOnDelete, @@ -26,6 +27,7 @@ import { isEqual } from 'lodash'; import { ChangeEvent, cloneElement, + forwardRef, ReactElement, SyntheticEvent, useRef, @@ -108,7 +110,7 @@ const DeleteImageModal = forwardRef( onClose={onClose} > - + Delete image @@ -119,20 +121,28 @@ const DeleteImageModal = forwardRef( Are you sure? Deleted images will be sent to the Bin. You can restore from there if you wish to. - + + + Don't ask me again + + +
      - + + diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss new file mode 100644 index 0000000000..b6563f4d7b --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.scss @@ -0,0 +1,100 @@ +.hoverable-image { + display: flex; + justify-content: center; + transition: transform 0.2s ease-out; + + &:hover { + cursor: pointer; + border-radius: 0.5rem; + z-index: 2; + } + + .hoverable-image-image { + width: 100%; + height: 100%; + max-width: 100%; + max-height: 100%; + } + + .hoverable-image-delete-button { + position: absolute; + top: 0.25rem; + right: 0.25rem; + } + + .hoverable-image-content { + display: flex; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + align-items: center; + justify-content: center; + + .hoverable-image-check { + fill: var(--status-good-color); + } + } + + .hoverable-image-icons { + position: absolute; + bottom: -2rem; + display: grid; + width: min-content; + grid-template-columns: repeat(2, max-content); + border-radius: 0.4rem; + background-color: var(--background-color-secondary); + padding: 0.2rem; + gap: 0.2rem; + grid-auto-rows: max-content; + + button { + width: 12px; + height: 12px; + border-radius: 0.2rem; + padding: 10px 0; + flex-shrink: 2; + svg { + width: 12px; + height: 12px; + } + } + } +} + +.hoverable-image-context-menu { + z-index: 15; + padding: 0.4rem; + border-radius: 0.25rem; + background-color: var(--context-menu-bg-color); + box-shadow: var(--context-menu-box-shadow); + + [role='menuitem'] { + font-size: 0.8rem; + line-height: 1rem; + border-radius: 3px; + display: flex; + align-items: center; + height: 1.75rem; + padding: 0 0.5rem; + position: relative; + user-select: none; + cursor: pointer; + outline: none; + + &[data-disabled] { + color: grey; + pointer-events: none; + cursor: not-allowed; + } + + &[data-warning] { + color: var(--status-bad-color); + } + + &[data-highlighted] { + background-color: var(--context-menu-bg-color-hover); + } + } +} diff --git a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx index 0d034ed976..e3e136ea5b 100644 --- a/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/HoverableImage.tsx @@ -1,15 +1,9 @@ -import { - Box, - Flex, - Icon, - Image, - MenuItem, - MenuList, - useTheme, - useToast, -} from '@chakra-ui/react'; +import { Box, Icon, IconButton, Image, useToast } from '@chakra-ui/react'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import { setCurrentImage } from 'features/gallery/store/gallerySlice'; +import { + setCurrentImage, + setShouldHoldGalleryOpen, +} from 'features/gallery/store/gallerySlice'; import { setAllImageToImageParameters, setAllParameters, @@ -19,7 +13,8 @@ import { import { DragEvent, memo, useState } from 'react'; import { FaCheck, FaTrashAlt } from 'react-icons/fa'; import DeleteImageModal from './DeleteImageModal'; -import { ContextMenu } from 'chakra-ui-contextmenu'; + +import * as ContextMenu from '@radix-ui/react-context-menu'; import * as InvokeAI from 'app/invokeai'; import { resizeAndScaleCanvas, @@ -29,8 +24,6 @@ import { hoverableImageSelector } from 'features/gallery/store/gallerySelectors' import { setActiveTab } from 'features/ui/store/uiSlice'; import { useTranslation } from 'react-i18next'; import useSetBothPrompts from 'features/parameters/hooks/usePrompt'; -import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; -import IAIIconButton from 'common/components/IAIIconButton'; interface HoverableImageProps { image: InvokeAI.Image; @@ -60,7 +53,6 @@ const HoverableImage = memo((props: HoverableImageProps) => { const [isHovered, setIsHovered] = useState(false); const toast = useToast(); - const { direction } = useTheme(); const { t } = useTranslation(); const setBothPrompts = useSetBothPrompts(); @@ -164,146 +156,110 @@ const HoverableImage = memo((props: HoverableImageProps) => { const handleLightBox = () => { dispatch(setCurrentImage(image)); - dispatch(setIsLightboxOpen(true)); }; return ( - - menuProps={{ size: 'sm', isLazy: true }} - renderMenu={() => ( - - - {t('parameters.openInViewer')} - - - {t('parameters.usePrompt')} - - - - {t('parameters.useSeed')} - - - {t('parameters.useAll')} - - - {t('parameters.useInitImg')} - - - {t('parameters.sendToImg2Img')} - - - {t('parameters.sendToUnifiedCanvas')} - - - -

      {t('parameters.deleteImage')}

      -
      -
      -
      - )} + { + dispatch(setShouldHoldGalleryOpen(open)); + }} > - {(ref) => ( + - +
      {isSelected && ( )} - +
      {isHovered && galleryImageMinimumWidth >= 64 && ( - +
      - } size="xs" + variant="imageHoverIconButton" fontSize={14} isDisabled={!mayDeleteImage} /> - +
      )}
      - )} - +
      + { + e.detail.originalEvent.preventDefault(); + }} + > + + {t('parameters.openInViewer')} + + + {t('parameters.usePrompt')} + + + + {t('parameters.useSeed')} + + + {t('parameters.useAll')} + + + {t('parameters.useInitImg')} + + + {t('parameters.sendToImg2Img')} + + + {t('parameters.sendToUnifiedCanvas')} + + + +

      {t('parameters.deleteImage')}

      +
      +
      +
      +
      ); }, memoEqualityCheck); diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css deleted file mode 100644 index 559248dd0f..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.css +++ /dev/null @@ -1,35 +0,0 @@ -.ltr-image-gallery-css-transition-enter { - transform: translateX(150%); -} - -.ltr-image-gallery-css-transition-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.ltr-image-gallery-css-transition-exit { - transform: translateX(0); -} - -.ltr-image-gallery-css-transition-exit-active { - transform: translateX(150%); - transition: all 120ms ease-out; -} - -.rtl-image-gallery-css-transition-enter { - transform: translateX(-150%); -} - -.rtl-image-gallery-css-transition-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.rtl-image-gallery-css-transition-exit { - transform: translateX(0); -} - -.rtl-image-gallery-css-transition-exit-active { - transform: translateX(-150%); - transition: all 120ms ease-out; -} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss new file mode 100644 index 0000000000..f12fcd418a --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.scss @@ -0,0 +1,187 @@ +@use '../../../styles/Mixins/' as *; + +.image-gallery-wrapper-enter { + transform: translateX(150%); +} + +.image-gallery-wrapper-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.image-gallery-wrapper-exit { + transform: translateX(0); +} + +.image-gallery-wrapper-exit-active { + transform: translateX(150%); + transition: all 120ms ease-out; +} + +.image-gallery-wrapper { + &[data-pinned='false'] { + position: fixed; + height: 100vh; + top: 0; + right: 0; + + .image-gallery-popup { + border-radius: 0; + box-shadow: 0 0 1rem var(--text-color-a3); + .image-gallery-container { + max-height: calc($app-height + 5rem); + } + } + } + + .image-gallery-popup { + background-color: var(--background-color-secondary); + padding: 1rem; + display: flex; + flex-direction: column; + row-gap: 1rem; + border-radius: 0.5rem; + border-left-width: 0.3rem; + + border-color: var(--tab-list-text-inactive); + + &[data-resize-alert='true'] { + border-color: var(--status-bad-color); + } + + .image-gallery-header { + display: flex; + align-items: center; + column-gap: 0.5rem; + justify-content: space-between; + + .image-gallery-header-right-icons { + display: flex; + flex-direction: row; + column-gap: 0.5rem; + } + + .image-gallery-icon-btn { + background-color: var(--btn-load-more); + &:hover { + background-color: var(--btn-load-more-hover); + } + } + + .image-gallery-settings-popover { + display: flex; + flex-direction: column; + row-gap: 0.5rem; + + div { + display: flex; + column-gap: 0.5rem; + align-items: center; + justify-content: space-between; + } + } + + h1 { + font-weight: bold; + } + } + + .image-gallery-container { + display: flex; + flex-direction: column; + max-height: $app-gallery-popover-height; + overflow-y: scroll; + @include HideScrollbar; + + .image-gallery-container-placeholder { + display: flex; + flex-direction: column; + row-gap: 0.5rem; + background-color: var(--background-color); + border-radius: 0.5rem; + place-items: center; + padding: 2rem; + text-align: center; + + p { + color: var(--subtext-color-bright); + font-family: Inter; + } + + svg { + width: 4rem; + height: 4rem; + color: var(--svg-color); + } + } + + .image-gallery-load-more-btn { + background-color: var(--btn-load-more); + font-size: 0.85rem; + padding: 0.5rem; + margin-top: 1rem; + + &:disabled { + &:hover { + background-color: var(--btn-load-more); + } + } + + &:hover { + background-color: var(--btn-load-more-hover); + } + } + } + } +} + +.image-gallery-category-btn-group { + width: max-content; + column-gap: 0; + justify-content: stretch; + + button { + background-color: var(--btn-base-color); + &:hover { + background-color: var(--btn-base-color-hover); + } + flex-grow: 1; + &[data-selected='true'] { + background-color: var(--accent-color); + &:hover { + background-color: var(--accent-color-hover); + } + } + } +} + +// from https://css-tricks.com/a-grid-of-logos-in-squares/ +.image-gallery { + display: grid; + grid-gap: 0.5rem; + .hoverable-image { + padding: 0.5rem; + position: relative; + &::before { + // for apsect ratio + content: ''; + display: block; + padding-bottom: 100%; + } + .hoverable-image-image { + position: absolute; + max-width: 100%; + + // Alternate Version + // top: 0; + // bottom: 0; + // right: 0; + // left: 0; + // margin: auto; + + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } +} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx index 1b14d9ff67..40de29dd36 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGallery.tsx @@ -1,14 +1,7 @@ +import { Button } from '@chakra-ui/button'; import { NumberSize, Resizable } from 're-resizable'; -import { - Box, - ButtonGroup, - Flex, - Grid, - Icon, - chakra, - useTheme, -} from '@chakra-ui/react'; +import { ButtonGroup } from '@chakra-ui/react'; import { requestImages } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -24,6 +17,7 @@ import { setCurrentCategory, setGalleryImageMinimumWidth, setGalleryImageObjectFit, + setGalleryScrollPosition, setGalleryWidth, setShouldAutoSwitchToNewImages, setShouldHoldGalleryOpen, @@ -44,19 +38,12 @@ import React, { } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; +import { BiReset } from 'react-icons/bi'; import { BsPinAngle, BsPinAngleFill } from 'react-icons/bs'; import { FaImage, FaUser, FaWrench } from 'react-icons/fa'; import { MdPhotoLibrary } from 'react-icons/md'; import { CSSTransition } from 'react-transition-group'; import HoverableImage from './HoverableImage'; -import { APP_GALLERY_HEIGHT_PINNED } from 'theme/util/constants'; - -import './ImageGallery.css'; -import { no_scrollbar } from 'theme/components/scrollbar'; - -const ChakraResizeable = chakra(Resizable, { - shouldForwardProp: (prop) => !['sx'].includes(prop), -}); const GALLERY_SHOW_BUTTONS_MIN_WIDTH = 320; const GALLERY_IMAGE_WIDTH_OFFSET = 40; @@ -77,7 +64,6 @@ const LIGHTBOX_GALLERY_WIDTH = 400; export default function ImageGallery() { const dispatch = useAppDispatch(); - const { direction } = useTheme(); const { t } = useTranslation(); @@ -87,6 +73,7 @@ export default function ImageGallery() { currentImageUuid, shouldPinGallery, shouldShowGallery, + galleryScrollPosition, galleryImageMinimumWidth, galleryGridTemplateColumns, activeTabName, @@ -120,11 +107,12 @@ export default function ImageGallery() { const timeoutIdRef = useRef(null); useEffect(() => { - setShouldShowButtons(galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH); + if (galleryWidth >= GALLERY_SHOW_BUTTONS_MIN_WIDTH) { + setShouldShowButtons(false); + } }, [galleryWidth]); const handleSetShouldPinGallery = () => { - !shouldPinGallery && dispatch(setShouldShowGallery(true)); dispatch(setShouldPinGallery(!shouldPinGallery)); dispatch(setDoesCanvasNeedScaling(true)); }; @@ -141,6 +129,11 @@ export default function ImageGallery() { const handleCloseGallery = useCallback(() => { dispatch(setShouldShowGallery(false)); dispatch(setShouldHoldGalleryOpen(false)); + dispatch( + setGalleryScrollPosition( + galleryContainerRef.current ? galleryContainerRef.current.scrollTop : 0 + ) + ); setTimeout( () => shouldPinGallery && dispatch(setDoesCanvasNeedScaling(true)), 400 @@ -246,6 +239,12 @@ export default function ImageGallery() { [galleryImageMinimumWidth] ); + // set gallery scroll position + useEffect(() => { + if (!galleryContainerRef.current) return; + galleryContainerRef.current.scrollTop = galleryScrollPosition; + }, [galleryScrollPosition, shouldShowGallery]); + useEffect(() => { function handleClickOutside(e: MouseEvent) { if ( @@ -268,63 +267,29 @@ export default function ImageGallery() { in={shouldShowGallery || shouldHoldGalleryOpen} unmountOnExit timeout={200} - classNames={`${direction}-image-gallery-css-transition`} + classNames="image-gallery-wrapper" > - - - +
      {shouldShowButtons ? ( <> dispatch(setCurrentCategory('result'))} - flexGrow={1} > {t('gallery.generations')} dispatch(setCurrentCategory('user'))} - flexGrow={1} > {t('gallery.uploads')} @@ -452,14 +414,14 @@ export default function ImageGallery() { } onClick={() => dispatch(setCurrentCategory('result'))} /> } onClick={() => dispatch(setCurrentCategory('user'))} /> @@ -467,85 +429,96 @@ export default function ImageGallery() { )} - +
      } + className="image-gallery-icon-btn" + cursor="pointer" /> } > - - - dispatch(setGalleryImageMinimumWidth(64)) - } - /> - - dispatch( - setGalleryImageObjectFit( - galleryImageObjectFit === 'contain' - ? 'cover' - : 'contain' +
      +
      + + dispatch(setGalleryImageMinimumWidth(64))} + icon={} + data-selected={shouldPinGallery} + styleClass="image-gallery-icon-btn" + /> +
      +
      + + dispatch( + setGalleryImageObjectFit( + galleryImageObjectFit === 'contain' + ? 'cover' + : 'contain' + ) ) - ) - } - /> - ) => - dispatch(setShouldAutoSwitchToNewImages(e.target.checked)) - } - /> - ) => - dispatch( - setShouldUseSingleGalleryColumn(e.target.checked) - ) - } - /> - + } + /> +
      +
      + ) => + dispatch( + setShouldAutoSwitchToNewImages(e.target.checked) + ) + } + /> +
      +
      + ) => + dispatch( + setShouldUseSingleGalleryColumn(e.target.checked) + ) + } + /> +
      +
      : } /> - - - +
      +
      +
      {images.length || areMoreImagesAvailable ? ( <> - {images.map((image) => { @@ -559,51 +532,34 @@ export default function ImageGallery() { /> ); })} - - + ) : ( - - +
      +

      {t('gallery.noImagesInGallery')}

      - +
      )} -
      - +
      + {isResizing && ( - )} - + ); } diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss new file mode 100644 index 0000000000..8b59a33579 --- /dev/null +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss @@ -0,0 +1,23 @@ +@use '../../../../styles/Mixins/' as *; + +.image-metadata-viewer { + position: absolute; + top: 0; + width: 100%; + border-radius: 0.5rem; + padding: 1rem; + background-color: var(--metadata-bg-color); + overflow: scroll; + max-height: $app-metadata-height; + height: 100%; + z-index: 10; +} + +.image-json-viewer { + border-radius: 0.5rem; + margin: 0 0.5rem 1rem 0.5rem; + padding: 1rem; + overflow-x: scroll; + word-break: break-all; + background-color: var(--metadata-json-bg-color); +} diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index 192b832454..a06ebc0bc1 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -1,6 +1,5 @@ import { ExternalLinkIcon } from '@chakra-ui/icons'; import { - Box, Center, Flex, Heading, @@ -44,7 +43,6 @@ import { memo } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { FaCopy } from 'react-icons/fa'; import { IoArrowUndoCircleOutline } from 'react-icons/io5'; -import { APP_METADATA_HEIGHT } from 'theme/util/constants'; type MetadataItemProps = { isLink?: boolean; @@ -165,22 +163,7 @@ const ImageMetadataViewer = memo( const metadataJSON = JSON.stringify(image.metadata, null, 2); return ( - +
      File: @@ -333,7 +316,7 @@ const ImageMetadataViewer = memo( if (postprocess.type === 'esrgan') { const { scale, strength, denoise_str } = postprocess; return ( - + {`${ i + 1 }: Upscale (ESRGAN)`} @@ -363,7 +346,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'gfpgan') { const { strength } = postprocess; return ( - + {`${ i + 1 }: Face restoration (GFPGAN)`} @@ -381,7 +364,7 @@ const ImageMetadataViewer = memo( } else if (postprocess.type === 'codeformer') { const { strength, fidelity } = postprocess; return ( - + {`${ i + 1 }: Face restoration (Codeformer)`} @@ -434,21 +417,9 @@ const ImageMetadataViewer = memo( Metadata JSON: - +
      {metadataJSON}
      - +
      ) : ( @@ -459,7 +430,7 @@ const ImageMetadataViewer = memo( )}
      - +
      ); }, memoEqualityCheck diff --git a/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx b/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx deleted file mode 100644 index 0cf41cb057..0000000000 --- a/invokeai/frontend/web/src/features/gallery/components/NextPrevImageButtons.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { ChakraProps, Flex, Grid, IconButton } from '@chakra-ui/react'; -import { createSelector } from '@reduxjs/toolkit'; -import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import { isEqual } from 'lodash'; -import { useState } from 'react'; -import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; -import { gallerySelector } from '../store/gallerySelectors'; -import { - GalleryCategory, - selectNextImage, - selectPrevImage, -} from '../store/gallerySlice'; - -const nextPrevButtonTriggerAreaStyles: ChakraProps['sx'] = { - height: '100%', - width: '15%', - alignItems: 'center', - pointerEvents: 'auto', -}; -const nextPrevButtonStyles: ChakraProps['sx'] = { - color: 'base.100', -}; - -export const nextPrevImageButtonsSelector = createSelector( - gallerySelector, - (gallery) => { - const { currentImage } = gallery; - - const tempImages = - gallery.categories[ - currentImage ? (currentImage.category as GalleryCategory) : 'result' - ].images; - - const currentImageIndex = tempImages.findIndex( - (i) => i.uuid === gallery?.currentImage?.uuid - ); - const imagesLength = tempImages.length; - - return { - isOnFirstImage: currentImageIndex === 0, - isOnLastImage: - !isNaN(currentImageIndex) && currentImageIndex === imagesLength - 1, - }; - }, - { - memoizeOptions: { - resultEqualityCheck: isEqual, - }, - } -); - -const NextPrevImageButtons = () => { - const dispatch = useAppDispatch(); - - const { isOnFirstImage, isOnLastImage } = useAppSelector( - nextPrevImageButtonsSelector - ); - - const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = - useState(false); - - const handleCurrentImagePreviewMouseOver = () => { - setShouldShowNextPrevButtons(true); - }; - - const handleCurrentImagePreviewMouseOut = () => { - setShouldShowNextPrevButtons(false); - }; - - const handleClickPrevButton = () => { - dispatch(selectPrevImage()); - }; - - const handleClickNextButton = () => { - dispatch(selectNextImage()); - }; - - return ( - - - {shouldShowNextPrevButtons && !isOnFirstImage && ( - } - variant="unstyled" - onClick={handleClickPrevButton} - boxSize={16} - sx={nextPrevButtonStyles} - /> - )} - - - {shouldShowNextPrevButtons && !isOnLastImage && ( - } - variant="unstyled" - onClick={handleClickNextButton} - boxSize={16} - sx={nextPrevButtonStyles} - /> - )} - - - ); -}; - -export default NextPrevImageButtons; diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts index 751eee14d7..fc1cb5d996 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySelectors.ts @@ -19,6 +19,7 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, + galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, shouldHoldGalleryOpen, @@ -33,6 +34,7 @@ export const imageGallerySelector = createSelector( currentImageUuid, shouldPinGallery, shouldShowGallery, + galleryScrollPosition, galleryImageMinimumWidth, galleryImageObjectFit, galleryGridTemplateColumns: shouldUseSingleGalleryColumn diff --git a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts index c96a3c9aac..52f8c54dc8 100644 --- a/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts +++ b/invokeai/frontend/web/src/features/gallery/store/gallerySlice.ts @@ -31,6 +31,7 @@ export interface GalleryState { }; shouldPinGallery: boolean; shouldShowGallery: boolean; + galleryScrollPosition: number; galleryImageMinimumWidth: number; galleryImageObjectFit: GalleryImageObjectFitType; shouldHoldGalleryOpen: boolean; @@ -48,6 +49,7 @@ const initialState: GalleryState = { currentImageUuid: '', shouldPinGallery: true, shouldShowGallery: true, + galleryScrollPosition: 0, galleryImageMinimumWidth: 64, galleryImageObjectFit: 'cover', shouldHoldGalleryOpen: false, @@ -240,6 +242,9 @@ export const gallerySlice = createSlice({ state.shouldShowGallery = action.payload; }, + setGalleryScrollPosition: (state, action: PayloadAction) => { + state.galleryScrollPosition = action.payload; + }, setGalleryImageMinimumWidth: (state, action: PayloadAction) => { state.galleryImageMinimumWidth = action.payload; }, @@ -281,6 +286,7 @@ export const { selectPrevImage, setShouldPinGallery, setShouldShowGallery, + setGalleryScrollPosition, setGalleryImageMinimumWidth, setGalleryImageObjectFit, setShouldHoldGalleryOpen, diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss new file mode 100644 index 0000000000..99df6b0756 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.scss @@ -0,0 +1,89 @@ +@use '../../../styles/Mixins/' as *; + +.lightbox-container { + width: 100%; + height: 100%; + color: var(--text-color); + overflow: hidden; + position: absolute; + left: 0; + top: 0; + background-color: var(--background-color-secondary); + z-index: 30; + animation: popIn 0.3s ease-in; + + .image-gallery-wrapper { + max-height: 100% !important; + + .image-gallery-container { + max-height: calc(100vh - 5rem); + } + } + + .current-image-options { + z-index: 2; + position: absolute; + top: 1rem; + } + + .image-metadata-viewer { + left: 0; + max-height: 100%; + } +} + +.lightbox-close-btn { + z-index: 3; + position: absolute; + left: 1rem; + top: 1rem; + @include BaseButton; +} + +.lightbox-display-container { + display: flex; + flex-direction: row; +} + +.lightbox-preview-wrapper { + overflow: hidden; + background-color: var(--background-color-secondary); + display: grid; + grid-template-columns: auto max-content; + place-items: center; + width: 100vw; + height: 100vh; + + .current-image-next-prev-buttons { + position: absolute; + } + + .lightbox-image { + grid-area: lightbox-content; + border-radius: 0.5rem; + } + + .lightbox-image-options { + position: absolute; + z-index: 2; + left: 1rem; + top: 4.5rem; + user-select: none; + border-radius: 0.5rem; + + display: flex; + flex-direction: column; + row-gap: 0.5rem; + } +} + +@keyframes popIn { + from { + opacity: 0; + filter: blur(100); + } + to { + opacity: 1; + filter: blur(0); + } +} diff --git a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx index 79b2655583..d712b8d97e 100644 --- a/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx +++ b/invokeai/frontend/web/src/features/lightbox/components/Lightbox.tsx @@ -1,40 +1,21 @@ -import { Box, Flex, Grid } from '@chakra-ui/react'; -import { createSelector } from '@reduxjs/toolkit'; +import { IconButton } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; import CurrentImageButtons from 'features/gallery/components/CurrentImageButtons'; +import { imagesSelector } from 'features/gallery/components/CurrentImagePreview'; import ImageGallery from 'features/gallery/components/ImageGallery'; import ImageMetadataViewer from 'features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer'; -import NextPrevImageButtons from 'features/gallery/components/NextPrevImageButtons'; -import { gallerySelector } from 'features/gallery/store/gallerySelectors'; +import { + selectNextImage, + selectPrevImage, +} from 'features/gallery/store/gallerySlice'; import { setIsLightboxOpen } from 'features/lightbox/store/lightboxSlice'; -import { uiSelector } from 'features/ui/store/uiSelectors'; -import { isEqual } from 'lodash'; +import { useState } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { BiExit } from 'react-icons/bi'; -import { TransformWrapper } from 'react-zoom-pan-pinch'; -import useImageTransform from '../hooks/useImageTransform'; -import ReactPanZoomButtons from './ReactPanZoomButtons'; -import ReactPanZoomImage from './ReactPanZoomImage'; - -export const lightboxSelector = createSelector( - [gallerySelector, uiSelector], - (gallery, ui) => { - const { currentImage } = gallery; - const { shouldShowImageDetails } = ui; - - return { - viewerImageToDisplay: currentImage, - shouldShowImageDetails, - }; - }, - { - memoizeOptions: { - resultEqualityCheck: isEqual, - }, - } -); +import { FaAngleLeft, FaAngleRight } from 'react-icons/fa'; +import ReactPanZoom from './ReactPanZoom'; export default function Lightbox() { const dispatch = useAppDispatch(); @@ -43,18 +24,30 @@ export default function Lightbox() { ); const { - rotation, - scaleX, - scaleY, - flipHorizontally, - flipVertically, - rotateCounterClockwise, - rotateClockwise, - reset, - } = useImageTransform(); + viewerImageToDisplay, + shouldShowImageDetails, + isOnFirstImage, + isOnLastImage, + } = useAppSelector(imagesSelector); - const { viewerImageToDisplay, shouldShowImageDetails } = - useAppSelector(lightboxSelector); + const [shouldShowNextPrevButtons, setShouldShowNextPrevButtons] = + useState(false); + + const handleCurrentImagePreviewMouseOver = () => { + setShouldShowNextPrevButtons(true); + }; + + const handleCurrentImagePreviewMouseOut = () => { + setShouldShowNextPrevButtons(false); + }; + + const handleClickPrevButton = () => { + dispatch(selectPrevImage()); + }; + + const handleClickNextButton = () => { + dispatch(selectNextImage()); + }; useHotkeys( 'Esc', @@ -65,106 +58,66 @@ export default function Lightbox() { ); return ( - - + } + aria-label="Exit Viewer" + className="lightbox-close-btn" + onClick={() => { + dispatch(setIsLightboxOpen(false)); }} - > - - } - aria-label="Exit Viewer" - onClick={() => { - dispatch(setIsLightboxOpen(false)); - }} - fontSize={20} - /> - - + fontSize={20} + /> - - - {viewerImageToDisplay && ( - <> - - {shouldShowImageDetails && ( - - )} - - )} - - {!shouldShowImageDetails && ( - +
      + + {!shouldShowImageDetails && ( +
      +
      - - - )} - - - - - - - - - + {shouldShowNextPrevButtons && !isOnFirstImage && ( + } + variant="unstyled" + onClick={handleClickPrevButton} + /> + )} +
      +
      + {shouldShowNextPrevButtons && !isOnLastImage && ( + } + variant="unstyled" + onClick={handleClickNextButton} + /> + )} +
      +
      + )} + {viewerImageToDisplay && ( + <> + + {shouldShowImageDetails && ( + + )} + + )} +
      + + + ); } diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx new file mode 100644 index 0000000000..9401a97874 --- /dev/null +++ b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoom.tsx @@ -0,0 +1,135 @@ +import IAIIconButton from 'common/components/IAIIconButton'; +import * as React from 'react'; +import { + BiReset, + BiRotateLeft, + BiRotateRight, + BiZoomIn, + BiZoomOut, +} from 'react-icons/bi'; +import { MdFlip } from 'react-icons/md'; +import { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch'; + +type ReactPanZoomProps = { + image: string; + styleClass?: string; + alt?: string; + ref?: React.Ref; +}; + +export default function ReactPanZoom({ + image, + alt, + ref, + styleClass, +}: ReactPanZoomProps) { + const [rotation, setRotation] = React.useState(0); + const [flip, setFlip] = React.useState(false); + + const rotateLeft = () => { + if (rotation === -3) { + setRotation(0); + } else { + setRotation(rotation - 1); + } + }; + + const rotateRight = () => { + if (rotation === 3) { + setRotation(0); + } else { + setRotation(rotation + 1); + } + }; + + const flipImage = () => { + setFlip(!flip); + }; + + return ( + + {({ zoomIn, zoomOut, resetTransform, centerView }) => ( + <> +
      + } + aria-label="Zoom In" + tooltip="Zoom In" + onClick={() => zoomIn()} + fontSize={20} + /> + + } + aria-label="Zoom Out" + tooltip="Zoom Out" + onClick={() => zoomOut()} + fontSize={20} + /> + + } + aria-label="Rotate Left" + tooltip="Rotate Left" + onClick={rotateLeft} + fontSize={20} + /> + + } + aria-label="Rotate Right" + tooltip="Rotate Right" + onClick={rotateRight} + fontSize={20} + /> + + } + aria-label="Flip Image" + tooltip="Flip Image" + onClick={flipImage} + fontSize={20} + /> + + } + aria-label="Reset" + tooltip="Reset" + onClick={() => { + resetTransform(); + setRotation(0); + setFlip(false); + }} + fontSize={20} + /> +
      + + {alt} centerView(1, 0, 'easeOut')} + /> + + + )} +
      + ); +} diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx deleted file mode 100644 index fffe609ab7..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomButtons.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import { ButtonGroup } from '@chakra-ui/react'; -import IAIIconButton from 'common/components/IAIIconButton'; -import { - BiReset, - BiRotateLeft, - BiRotateRight, - BiZoomIn, - BiZoomOut, -} from 'react-icons/bi'; -import { MdFlip } from 'react-icons/md'; -import { useTransformContext } from 'react-zoom-pan-pinch'; - -type ReactPanZoomButtonsProps = { - flipHorizontally: () => void; - flipVertically: () => void; - rotateCounterClockwise: () => void; - rotateClockwise: () => void; - reset: () => void; -}; - -const ReactPanZoomButtons = ({ - flipHorizontally, - flipVertically, - rotateCounterClockwise, - rotateClockwise, - reset, -}: ReactPanZoomButtonsProps) => { - const { zoomIn, zoomOut, resetTransform } = useTransformContext(); - - return ( - - } - aria-label="Zoom In" - tooltip="Zoom In" - onClick={() => zoomIn()} - fontSize={20} - /> - - } - aria-label="Zoom Out" - tooltip="Zoom Out" - onClick={() => zoomOut()} - fontSize={20} - /> - - } - aria-label="Rotate Counter-Clockwise" - tooltip="Rotate Counter-Clockwise" - onClick={rotateCounterClockwise} - fontSize={20} - /> - - } - aria-label="Rotate Clockwise" - tooltip="Rotate Clockwise" - onClick={rotateClockwise} - fontSize={20} - /> - - } - aria-label="Flip Horizontally" - tooltip="Flip Horizontally" - onClick={flipHorizontally} - fontSize={20} - /> - - } - aria-label="Flip Vertically" - tooltip="Flip Vertically" - onClick={flipVertically} - fontSize={20} - /> - - } - aria-label="Reset" - tooltip="Reset" - onClick={() => { - resetTransform(); - reset(); - }} - fontSize={20} - /> - - ); -}; - -export default ReactPanZoomButtons; diff --git a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx b/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx deleted file mode 100644 index db6a02ae71..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/components/ReactPanZoomImage.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import * as React from 'react'; -import { TransformComponent, useTransformContext } from 'react-zoom-pan-pinch'; - -type ReactPanZoomProps = { - image: string; - styleClass?: string; - alt?: string; - ref?: React.Ref; - rotation: number; - scaleX: number; - scaleY: number; -}; - -export default function ReactPanZoomImage({ - image, - alt, - ref, - styleClass, - rotation, - scaleX, - scaleY, -}: ReactPanZoomProps) { - const { centerView } = useTransformContext(); - - return ( - - {alt} centerView(1, 0, 'easeOut')} - /> - - ); -} diff --git a/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts b/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts deleted file mode 100644 index c191d7d1d7..0000000000 --- a/invokeai/frontend/web/src/features/lightbox/hooks/useImageTransform.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { useState } from 'react'; - -const useImageTransform = () => { - const [rotation, setRotation] = useState(0); - const [scaleX, setScaleX] = useState(1); - const [scaleY, setScaleY] = useState(1); - - const rotateCounterClockwise = () => { - if (rotation === -270) { - setRotation(0); - } else { - setRotation(rotation - 90); - } - }; - - const rotateClockwise = () => { - if (rotation === 270) { - setRotation(0); - } else { - setRotation(rotation + 90); - } - }; - - const flipHorizontally = () => { - setScaleX(scaleX * -1); - }; - - const flipVertically = () => { - setScaleY(scaleY * -1); - }; - - const reset = () => { - setRotation(0); - setScaleX(1); - setScaleY(1); - }; - - return { - rotation, - scaleX, - scaleY, - flipHorizontally, - flipVertically, - rotateCounterClockwise, - rotateClockwise, - reset, - }; -}; - -export default useImageTransform; diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss new file mode 100644 index 0000000000..dcf1b23538 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/AdvancedSettings.scss @@ -0,0 +1,54 @@ +@use '../../../../styles/Mixins/' as *; + +.advanced-parameters { + padding-top: 0.5rem; + display: grid; + row-gap: 0.5rem; +} + +.advanced-parameters-item { + display: grid; + max-width: $options-bar-max-width; + border: none; + border-top: 0px; + border-radius: 0.4rem; + background-color: var(--tab-panel-bg); + + &[aria-expanded='true'] { + background-color: var(--tab-hover-color); + border-radius: 0 0 0.4rem 0.4rem; + } +} + +.advanced-parameters-panel { + background-color: var(--tab-panel-bg); + border-radius: 0 0 0.4rem 0.4rem; + padding: 1rem; + + button { + background-color: var(--btn-base-color); + &:hover { + background-color: var(--btn-base-color-hover); + } + + &:disabled { + &:hover { + background-color: var(--btn-base-color); + } + } + } +} + +.advanced-parameters-header { + border-radius: 0.4rem; + font-weight: bold; + + &[aria-expanded='true'] { + background-color: var(--tab-hover-color); + border-radius: 0.4rem 0.4rem 0 0; + } + + &:hover { + background-color: var(--tab-hover-color); + } +} diff --git a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx index b742f5a37e..af93704c82 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AccordionItems/InvokeAccordionItem.tsx @@ -21,10 +21,10 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { const { header, feature, content, additionalHeaderComponents } = props; return ( - - - - + + + + {header} {additionalHeaderComponents} @@ -32,7 +32,9 @@ export default function InvokeAccordionItem(props: InvokeAccordionItemProps) { - {content} + + {content} + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss new file mode 100644 index 0000000000..b7df91c843 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss @@ -0,0 +1,53 @@ +.inpainting-bounding-box-settings { + display: flex; + flex-direction: column; + border-radius: 0.4rem; + border: 2px solid var(--tab-color); +} + +.inpainting-bounding-box-header { + background-color: var(--tab-color); + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 0.5rem 1rem; + border-radius: 0.3rem 0.3rem 0 0; + align-items: center; + + button { + width: 0.5rem; + height: 1.2rem; + background: none; + &:hover { + background: none; + } + } + + p { + // font-weight: bold; + } +} + +.inpainting-bounding-box-settings-items { + padding: 1rem; + display: flex; + flex-direction: column; + row-gap: 1rem; + + .inpainting-bounding-box-reset-icon-btn { + background-color: var(--btn-base-color); + &:hover { + background-color: var(--btn-base-color-hover); + } + } +} + +.inpainting-bounding-box-dimensions-slider-numberinput { + display: grid; + grid-template-columns: repeat(3, auto); + column-gap: 1rem; +} + +.inpainting-bounding-box-darken { + width: max-content; +} diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx index 67740cbc02..b7fd7d4c67 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.tsx @@ -1,4 +1,4 @@ -import { Box, VStack } from '@chakra-ui/react'; +import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; @@ -68,7 +68,7 @@ const BoundingBoxSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetWidth} + sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetHeight} + sliderMarkRightOffset={-7} /> - + ); }; @@ -106,7 +108,7 @@ export default BoundingBoxSettings; export const BoundingBoxSettingsHeader = () => { const { t } = useTranslation(); return ( - + {t('parameters.boundingBoxHeader')} ); diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx index 187b23cdff..a1f3759837 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/InfillAndScalingSettings.tsx @@ -1,4 +1,4 @@ -import { VStack } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISelect from 'common/components/IAISelect'; @@ -107,7 +107,7 @@ const InfillAndScalingSettings = () => { }; return ( - + { inputReadOnly withReset handleReset={handleResetScaledWidth} + sliderMarkRightOffset={-7} /> { inputReadOnly withReset handleReset={handleResetScaledHeight} + sliderMarkRightOffset={-7} /> { isInputDisabled={infillMethod !== 'tile'} isResetDisabled={infillMethod !== 'tile'} isSliderDisabled={infillMethod !== 'tile'} + sliderMarkRightOffset={-4} label={t('parameters.tileSize')} min={16} max={64} @@ -173,7 +176,7 @@ const InfillAndScalingSettings = () => { dispatch(setTileSize(32)); }} /> - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx index 1f5237615a..e3107e1d72 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamBlur.tsx @@ -13,6 +13,7 @@ export default function SeamBlur() { return ( { return ( - + - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx index 25d14e5eac..dccbd89b72 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Canvas/SeamCorrection/SeamSize.tsx @@ -14,6 +14,7 @@ export default function SeamSize() { return ( { ); return ( - + {facetoolType === 'codeformer' && } - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx index e4d5a9174d..908aa7548b 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength.tsx @@ -6,11 +6,12 @@ import { useTranslation } from 'react-i18next'; interface ImageToImageStrengthProps { label?: string; + styleClass?: string; } export default function ImageToImageStrength(props: ImageToImageStrengthProps) { const { t } = useTranslation(); - const { label = `${t('parameters.strength')}` } = props; + const { label = `${t('parameters.strength')}`, styleClass } = props; const img2imgStrength = useAppSelector( (state: RootState) => state.generation.img2imgStrength ); @@ -32,9 +33,10 @@ export default function ImageToImageStrength(props: ImageToImageStrengthProps) { onChange={handleChangeStrength} value={img2imgStrength} isInteger={false} + styleClass={styleClass} withInput withSliderMarks - inputWidth={22} + inputWidth="5.5rem" withReset handleReset={handleImg2ImgStrengthReset} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx index 97705da9cc..5f99f10b5c 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/HiresSettings.tsx @@ -1,8 +1,10 @@ +import { Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import type { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import IAISwitch from 'common/components/IAISwitch'; +import SubItemHook from 'common/components/SubItemHook'; import { postprocessingSelector } from 'features/parameters/store/postprocessingSelectors'; import { setHiresFix, @@ -22,7 +24,7 @@ const hiresStrengthSelector = createSelector( } ); -export const HiresStrength = () => { +const HiresStrength = () => { const { hiresFix, hiresStrength } = useAppSelector(hiresStrengthSelector); const dispatch = useAppDispatch(); @@ -38,30 +40,34 @@ export const HiresStrength = () => { }; return ( - + + + + ); }; /** * Hires Fix Toggle */ -export const HiresToggle = () => { +const HiresSettings = () => { const dispatch = useAppDispatch(); const hiresFix = useAppSelector( @@ -74,11 +80,16 @@ export const HiresToggle = () => { dispatch(setHiresFix(e.target.checked)); return ( - + + + + ); }; + +export default HiresSettings; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx index c2dea1cbf8..f037e79523 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/ImageToImageOutputSettings.tsx @@ -1,11 +1,11 @@ -import { VStack } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import SeamlessSettings from './SeamlessSettings'; const ImageToImageOutputSettings = () => { return ( - + - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx index 93ba63d065..1eaba1eaae 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/OutputSettings.tsx @@ -1,14 +1,13 @@ -import { VStack } from '@chakra-ui/react'; -import { HiresStrength, HiresToggle } from './HiresSettings'; +import { Flex } from '@chakra-ui/react'; +import HiresSettings from './HiresSettings'; import SeamlessSettings from './SeamlessSettings'; const OutputSettings = () => { return ( - + - - - + +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx index ddd6a4b24b..fc649e0400 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SeamlessSettings.tsx @@ -1,3 +1,4 @@ +import { Flex } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISwitch from 'common/components/IAISwitch'; @@ -21,12 +22,14 @@ const SeamlessSettings = () => { const { t } = useTranslation(); return ( - + + + ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx index e23385d0bc..37bb7bdbda 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Output/SymmetrySettings.tsx @@ -1,20 +1,19 @@ -import { VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAISlider from 'common/components/IAISlider'; import { - setHorizontalSymmetrySteps, - setVerticalSymmetrySteps, + setHorizontalSymmetryTimePercentage, + setVerticalSymmetryTimePercentage, } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function SymmetrySettings() { - const horizontalSymmetrySteps = useAppSelector( - (state: RootState) => state.generation.horizontalSymmetrySteps + const horizontalSymmetryTimePercentage = useAppSelector( + (state: RootState) => state.generation.horizontalSymmetryTimePercentage ); - const verticalSymmetrySteps = useAppSelector( - (state: RootState) => state.generation.verticalSymmetrySteps + const verticalSymmetryTimePercentage = useAppSelector( + (state: RootState) => state.generation.verticalSymmetryTimePercentage ); const steps = useAppSelector((state: RootState) => state.generation.steps); @@ -24,31 +23,33 @@ export default function SymmetrySettings() { const { t } = useTranslation(); return ( - + <> dispatch(setHorizontalSymmetrySteps(v))} + value={horizontalSymmetryTimePercentage} + onChange={(v) => dispatch(setHorizontalSymmetryTimePercentage(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setHorizontalSymmetrySteps(0))} - /> + handleReset={() => dispatch(setHorizontalSymmetryTimePercentage(0))} + sliderMarkRightOffset={-6} + > dispatch(setVerticalSymmetrySteps(v))} + value={verticalSymmetryTimePercentage} + onChange={(v) => dispatch(setVerticalSymmetryTimePercentage(v))} min={0} max={steps} step={1} withInput withSliderMarks withReset - handleReset={() => dispatch(setVerticalSymmetrySteps(0))} - /> - + handleReset={() => dispatch(setVerticalSymmetryTimePercentage(0))} + sliderMarkRightOffset={-6} + > + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx index 7aac200b26..5d9d388098 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Seed.tsx @@ -1,11 +1,9 @@ -import { HStack } from '@chakra-ui/react'; import { NUMPY_RAND_MAX, NUMPY_RAND_MIN } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import { setSeed } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; -import ShuffleSeed from './ShuffleSeed'; export default function Seed() { const seed = useAppSelector((state: RootState) => state.generation.seed); @@ -23,25 +21,18 @@ export default function Seed() { const handleChangeSeed = (v: number) => dispatch(setSeed(v)); return ( - - - - + ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx index 891b528acd..d524ace666 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/SeedSettings.tsx @@ -1,7 +1,8 @@ -import { VStack } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import Perlin from './Perlin'; import RandomizeSeed from './RandomizeSeed'; import Seed from './Seed'; +import ShuffleSeed from './ShuffleSeed'; import Threshold from './Threshold'; /** @@ -9,12 +10,19 @@ import Threshold from './Threshold'; */ const SeedSettings = () => { return ( - + - - - - + + + + + + + + + + +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx index dbcf201d04..ea1721fc61 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Seed/Threshold.tsx @@ -23,6 +23,7 @@ export default function Threshold() { withInput withReset withSliderMarks + sliderMarkRightOffset={-4} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx index 291b8f9dc2..de8fb16a9e 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Upscale/UpscaleSettings.tsx @@ -1,4 +1,4 @@ -import { VStack } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import UpscaleDenoisingStrength from './UpscaleDenoisingStrength'; import UpscaleStrength from './UpscaleStrength'; import UpscaleScale from './UpscaleScale'; @@ -8,11 +8,11 @@ import UpscaleScale from './UpscaleScale'; */ const UpscaleSettings = () => { return ( - + - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx index d3bc43f7ae..82950231a2 100644 --- a/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/AdvancedParameters/Variations/VariationsSettings.tsx @@ -1,4 +1,4 @@ -import { VStack } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import SeedWeights from './SeedWeights'; import VariationAmount from './VariationAmount'; @@ -7,10 +7,10 @@ import VariationAmount from './VariationAmount'; */ const VariationsSettings = () => { return ( - + - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx index 6c4cecfe17..bb418fa9c0 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainCFGScale.tsx @@ -26,6 +26,7 @@ export default function MainCFGScale() { onChange={handleChangeCfgScale} handleReset={() => dispatch(setCfgScale(7.5))} value={cfgScale} + sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 200 }} withInput withReset @@ -39,8 +40,10 @@ export default function MainCFGScale() { max={200} onChange={handleChangeCfgScale} value={cfgScale} + width="auto" + styleClass="main-settings-block" + textAlign="center" isInteger={false} - numberInputFieldProps={{ textAlign: 'center' }} /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx index 0068568402..e659cd29d3 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainHeight.tsx @@ -32,6 +32,8 @@ export default function MainHeight() { withInput withReset withSliderMarks + sliderMarkRightOffset={-8} + inputWidth="6.2rem" sliderNumberInputProps={{ max: 15360 }} /> ) : ( @@ -42,6 +44,8 @@ export default function MainHeight() { flexGrow={1} onChange={(e) => dispatch(setHeight(Number(e.target.value)))} validValues={HEIGHTS} + styleClass="main-settings-block" + width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx index f9e31c71da..0100c8999c 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainIterations.tsx @@ -32,6 +32,7 @@ export default function MainIterations() { withInput withReset withSliderMarks + sliderMarkRightOffset={-5} sliderNumberInputProps={{ max: 9999 }} /> ) : ( @@ -42,7 +43,10 @@ export default function MainIterations() { max={9999} onChange={handleChangeIterations} value={iterations} - numberInputFieldProps={{ textAlign: 'center' }} + width="auto" + labelFontSize={0.5} + styleClass="main-settings-block" + textAlign="center" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss new file mode 100644 index 0000000000..962bfac1b2 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.scss @@ -0,0 +1,35 @@ +@use '../../../../styles/Mixins/' as *; + +.main-settings { + display: grid; + row-gap: 1rem; +} + +.main-settings-list { + display: grid; + row-gap: 1rem; +} + +.main-settings-row { + display: grid; + grid-template-columns: repeat(3, auto); + column-gap: 0.5rem; + max-width: $options-bar-max-width; +} + +.main-settings-block { + border-radius: 0.5rem; + display: grid !important; + grid-template-columns: auto !important; + row-gap: 0.5rem; + + .invokeai__number-input-form-label, + .invokeai__select-label { + font-weight: bold; + font-size: 0.9rem !important; + } + + .invokeai__select-label { + margin: 0; + } +} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx new file mode 100644 index 0000000000..e11e16d4df --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainParameters.tsx @@ -0,0 +1,52 @@ +import { Flex } from '@chakra-ui/react'; +import { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; +import { useTranslation } from 'react-i18next'; +import ParametersAccordion from '../ParametersAccordion'; +import MainCFGScale from './MainCFGScale'; +import MainHeight from './MainHeight'; +import MainIterations from './MainIterations'; +import MainSampler from './MainSampler'; +import MainSteps from './MainSteps'; +import MainWidth from './MainWidth'; + +export const inputWidth = 'auto'; + +export default function MainSettings() { + const { t } = useTranslation(); + + const shouldUseSliders = useAppSelector( + (state: RootState) => state.ui.shouldUseSliders + ); + + const accordionItems = { + main: { + header: `${t('parameters.general')}`, + feature: undefined, + content: shouldUseSliders ? ( + + + + + + + + + ) : ( + + + + + + + + + + + + + ), + }, + }; + return ; +} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx index 0f55cca12a..9c3fd09ac3 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSampler.tsx @@ -26,7 +26,8 @@ export default function MainSampler() { validValues={ activeModel.format === 'diffusers' ? DIFFUSERS_SAMPLERS : SAMPLERS } - minWidth={36} + styleClass="main-settings-block" + minWidth="9rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx deleted file mode 100644 index cad30e58e6..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSettings.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Flex, VStack } from '@chakra-ui/react'; -import { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; -import MainCFGScale from './MainCFGScale'; -import MainHeight from './MainHeight'; -import MainIterations from './MainIterations'; -import MainSampler from './MainSampler'; -import MainSteps from './MainSteps'; -import MainWidth from './MainWidth'; - -export default function MainSettings() { - const shouldUseSliders = useAppSelector( - (state: RootState) => state.ui.shouldUseSliders - ); - - return shouldUseSliders ? ( - - - - - - - - - ) : ( - - - - - - - - - - - - - ); -} diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx index 58553bca86..3be575f7bf 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainSteps.tsx @@ -3,10 +3,7 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISlider from 'common/components/IAISlider'; -import { - clampSymmetrySteps, - setSteps, -} from 'features/parameters/store/generationSlice'; +import { setSteps } from 'features/parameters/store/generationSlice'; import { useTranslation } from 'react-i18next'; export default function MainSteps() { @@ -17,13 +14,7 @@ export default function MainSteps() { ); const { t } = useTranslation(); - const handleChangeSteps = (v: number) => { - dispatch(setSteps(v)); - }; - - const handleBlur = () => { - dispatch(clampSymmetrySteps()); - }; + const handleChangeSteps = (v: number) => dispatch(setSteps(v)); return shouldUseSliders ? ( ) : ( @@ -46,8 +38,9 @@ export default function MainSteps() { step={1} onChange={handleChangeSteps} value={steps} - numberInputFieldProps={{ textAlign: 'center' }} - onBlur={handleBlur} + width="auto" + styleClass="main-settings-block" + textAlign="center" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx index c133f804e7..7abffcf657 100644 --- a/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/MainParameters/MainWidth.tsx @@ -32,6 +32,8 @@ export default function MainWidth() { withInput withReset withSliderMarks + sliderMarkRightOffset={-8} + inputWidth="6.2rem" inputReadOnly sliderNumberInputProps={{ max: 15360 }} /> @@ -43,6 +45,8 @@ export default function MainWidth() { flexGrow={1} onChange={(e) => dispatch(setWidth(Number(e.target.value)))} validValues={WIDTHS} + styleClass="main-settings-block" + width="5.5rem" /> ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx index 019fb02f90..9738b0d30a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ParametersAccordion.tsx @@ -1,4 +1,4 @@ -import { Accordion } from '@chakra-ui/react'; +import { Accordion, ExpandedIndex } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { setOpenAccordions } from 'features/system/store/systemSlice'; @@ -30,7 +30,7 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { /** * Stores accordion state in redux so preferred UI setup is retained. */ - const handleChangeAccordionState = (openAccordions: number | number[]) => + const handleChangeAccordionState = (openAccordions: ExpandedIndex) => dispatch(setOpenAccordions(openAccordions)); const renderAccordions = () => { @@ -59,6 +59,7 @@ const ParametersAccordion = (props: ParametersAccordionsType) => { allowMultiple reduceMotion onChange={handleChangeAccordionState} + className="advanced-parameters" > {renderAccordions()} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx index 9363bcdfd3..88eb203fc9 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/CancelButton.tsx @@ -95,7 +95,12 @@ export default function CancelButton( ]; return ( - + {cancelType === 'immediate' ? ( } @@ -103,13 +108,17 @@ export default function CancelButton( aria-label={t('parameters.cancel.immediate')} isDisabled={!isConnected || !isProcessing || !isCancelable} onClick={handleClickCancel} - colorScheme="error" + className="cancel-btn" {...rest} /> ) : ( : + isCancelScheduled ? ( + + ) : ( + + ) } tooltip={ isCancelScheduled @@ -132,7 +141,7 @@ export default function CancelButton( if (isCancelScheduled) dispatch(setCancelAfter(null)); else dispatch(setCancelAfter(currentIteration)); }} - colorScheme="error" + className="cancel-btn" {...rest} /> )} @@ -140,8 +149,13 @@ export default function CancelButton( menuItems={cancelMenuItems} iconTooltip={t('parameters.cancel.setType')} menuButtonProps={{ - colorScheme: 'error', - minWidth: 5, + backgroundColor: 'var(--destructive-color)', + color: 'var(--text-color)', + minWidth: '1.5rem', + minHeight: '1.5rem', + _hover: { + backgroundColor: 'var(--destructive-color-hover)', + }, }} /> diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx index b68f245044..504714d329 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/InvokeButton.tsx @@ -1,4 +1,3 @@ -import { Box } from '@chakra-ui/react'; import { readinessSelector } from 'app/selectors/readinessSelector'; import { generateImage } from 'app/socketio/actions'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -6,7 +5,6 @@ import IAIButton, { IAIButtonProps } from 'common/components/IAIButton'; import IAIIconButton, { IAIIconButtonProps, } from 'common/components/IAIIconButton'; -import { clampSymmetrySteps } from 'features/parameters/store/generationSlice'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; @@ -32,7 +30,6 @@ export default function InvokeButton(props: InvokeButton) { useHotkeys( ['ctrl+enter', 'meta+enter'], () => { - dispatch(clampSymmetrySteps()); dispatch(generateImage(activeTabName)); }, { @@ -44,7 +41,7 @@ export default function InvokeButton(props: InvokeButton) { ); return ( - +
      {iconButton ? ( } isDisabled={!isReady} onClick={handleClickGenerate} - flexGrow={1} - w="100%" + className="invoke-btn" tooltip={t('parameters.invoke')} tooltipProps={{ placement: 'bottom' }} - colorScheme="accent" {...rest} /> ) : ( @@ -65,15 +60,12 @@ export default function InvokeButton(props: InvokeButton) { type="submit" isDisabled={!isReady} onClick={handleClickGenerate} - flexGrow={1} - w="100%" - colorScheme="accent" - fontWeight={700} + className="invoke-btn" {...rest} > Invoke )} - +
      ); } diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx index 09cc991653..9c0ba478d4 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/Loopback.tsx @@ -21,6 +21,8 @@ const LoopbackButton = () => { } onClick={() => { diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss new file mode 100644 index 0000000000..658ee08177 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.scss @@ -0,0 +1,56 @@ +@use '../../../../styles/Mixins/' as *; + +.process-buttons { + display: flex; + column-gap: 0.5rem; +} + +.invoke-btn { + flex-grow: 1; + width: 100%; + + @include Button( + $btn-color: var(--accent-color), + $btn-color-hover: var(--accent-color-hover), + $icon-size: 16px + ); +} + +.cancel-btn { + @include Button( + $btn-color: var(--destructive-color), + $btn-color-hover: var(--destructive-color-hover), + $btn-width: 3rem + ); +} + +.loopback-btn { + &[data-as-checkbox='true'] { + background-color: var(--btn-btn-base-color); + border: 3px solid var(--btn-btn-base-color); + svg { + fill: var(--text-color); + } + &:hover { + background-color: var(--btn-btn-base-color); + border-color: var(--btn-checkbox-border-hover); + svg { + fill: var(--text-color); + } + } + &[data-selected='true'] { + border-color: var(--accent-color); + background-color: var(--btn-btn-base-color); + svg { + fill: var(--text-color); + } + &:hover { + border-color: var(--accent-color); + background-color: var(--btn-btn-base-color); + svg { + fill: var(--text-color); + } + } + } + } +} diff --git a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx index e4b3798548..0f48fbce8a 100644 --- a/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/ProcessButtons/ProcessButtons.tsx @@ -1,4 +1,3 @@ -import { Flex } from '@chakra-ui/react'; import { useAppSelector } from 'app/storeHooks'; import { activeTabNameSelector } from 'features/ui/store/uiSelectors'; import CancelButton from './CancelButton'; @@ -12,11 +11,11 @@ const ProcessButtons = () => { const activeTabName = useAppSelector(activeTabNameSelector); return ( - +
      {activeTabName === 'img2img' && } - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx index da22fa5594..a8b1961091 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/NegativePromptInput.tsx @@ -19,11 +19,19 @@ const NegativePromptInput = () => { name="negativePrompt" value={negativePrompt} onChange={(e) => dispatch(setNegativePrompt(e.target.value))} + background="var(--prompt-bg-color)" placeholder={t('parameters.negativePrompts')} - _focusVisible={{ - borderColor: 'error.600', + _placeholder={{ fontSize: '0.8rem' }} + borderColor="var(--border-color)" + _hover={{ + borderColor: 'var(--border-color-light)', }} - fontSize="sm" + _focusVisible={{ + borderColor: 'var(--border-color-invalid)', + boxShadow: '0 0 10px var(--box-shadow-color-invalid)', + }} + fontSize="0.9rem" + color="var(--text-color-secondary)" /> ); diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss new file mode 100644 index 0000000000..e7baf2f5f9 --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.scss @@ -0,0 +1,34 @@ +.prompt-bar { + display: grid; + row-gap: 1rem; + + input, + textarea { + background-color: var(--prompt-bg-color); + font-size: 1rem; + border: 2px solid var(--border-color); + + &:hover { + border: 2px solid var(--border-color-light); + } + + &:focus-visible { + border: 2px solid var(--input-border-color); + box-shadow: 0 0 10px 0 var(--input-box-shadow-color); + } + + &[aria-invalid='true'] { + border: 2px solid var(--border-color-invalid); + box-shadow: 0 0 10px 0 var(--box-shadow-color-invalid); + } + + &:disabled { + border: 2px solid var(--border-color); + box-shadow: none; + } + } + + textarea { + min-height: 10rem; + } +} diff --git a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx index 3d5c38ddc5..43221f0a8d 100644 --- a/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/PromptInput/PromptInput.tsx @@ -1,4 +1,4 @@ -import { Box, FormControl, Textarea } from '@chakra-ui/react'; +import { FormControl, Textarea } from '@chakra-ui/react'; import { generateImage } from 'app/socketio/actions'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; @@ -63,7 +63,7 @@ const PromptInput = () => { }; return ( - +
      @@ -71,15 +71,19 @@ const PromptInput = () => { id="prompt" name="prompt" placeholder={t('parameters.promptPlaceholder')} + size="lg" value={prompt} onChange={handleChangePrompt} onKeyDown={handleKeyDown} resize="vertical" + height={30} ref={promptRef} - minH={40} + _placeholder={{ + color: 'var(--text-color-secondary)', + }} /> - +
      ); }; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index 1cb3a98204..e05c49f3f7 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -4,7 +4,6 @@ import * as InvokeAI from 'app/invokeai'; import { getPromptAndNegative } from 'common/util/getPromptAndNegative'; import promptToString from 'common/util/promptToString'; import { seedWeightsToString } from 'common/util/seedWeightPairs'; -import { clamp } from 'lodash'; export interface GenerationState { cfgScale: number; @@ -34,8 +33,8 @@ export interface GenerationState { variationAmount: number; width: number; shouldUseSymmetry: boolean; - horizontalSymmetrySteps: number; - verticalSymmetrySteps: number; + horizontalSymmetryTimePercentage: number; + verticalSymmetryTimePercentage: number; } const initialGenerationState: GenerationState = { @@ -65,8 +64,8 @@ const initialGenerationState: GenerationState = { variationAmount: 0.1, width: 512, shouldUseSymmetry: false, - horizontalSymmetrySteps: 0, - verticalSymmetrySteps: 0, + horizontalSymmetryTimePercentage: 0, + verticalSymmetryTimePercentage: 0, }; const initialState: GenerationState = initialGenerationState; @@ -100,18 +99,6 @@ export const generationSlice = createSlice({ setSteps: (state, action: PayloadAction) => { state.steps = action.payload; }, - clampSymmetrySteps: (state) => { - state.horizontalSymmetrySteps = clamp( - state.horizontalSymmetrySteps, - 0, - state.steps - ); - state.verticalSymmetrySteps = clamp( - state.verticalSymmetrySteps, - 0, - state.steps - ); - }, setCfgScale: (state, action: PayloadAction) => { state.cfgScale = action.payload; }, @@ -187,7 +174,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - _hires_fix, + hires_fix, width, height, } = action.payload.image; @@ -250,7 +237,7 @@ export const generationSlice = createSlice({ threshold, perlin, seamless, - _hires_fix, + hires_fix, width, height, strength, @@ -347,17 +334,22 @@ export const generationSlice = createSlice({ setShouldUseSymmetry: (state, action: PayloadAction) => { state.shouldUseSymmetry = action.payload; }, - setHorizontalSymmetrySteps: (state, action: PayloadAction) => { - state.horizontalSymmetrySteps = action.payload; + setHorizontalSymmetryTimePercentage: ( + state, + action: PayloadAction + ) => { + state.horizontalSymmetryTimePercentage = action.payload; }, - setVerticalSymmetrySteps: (state, action: PayloadAction) => { - state.verticalSymmetrySteps = action.payload; + setVerticalSymmetryTimePercentage: ( + state, + action: PayloadAction + ) => { + state.verticalSymmetryTimePercentage = action.payload; }, }, }); export const { - clampSymmetrySteps, clearInitialImage, resetParametersState, resetSeed, @@ -392,8 +384,8 @@ export const { setVariationAmount, setWidth, setShouldUseSymmetry, - setHorizontalSymmetrySteps, - setVerticalSymmetrySteps, + setHorizontalSymmetryTimePercentage, + setVerticalSymmetryTimePercentage, } = generationSlice.actions; export default generationSlice.reducer; diff --git a/invokeai/frontend/web/src/features/system/components/Console.scss b/invokeai/frontend/web/src/features/system/components/Console.scss new file mode 100644 index 0000000000..e043d58d51 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/Console.scss @@ -0,0 +1,75 @@ +.console { + width: 100vw; + display: flex; + flex-direction: column; + background: var(--console-bg-color); + overflow: auto; + direction: column; + font-family: monospace; + padding: 0 1rem 1rem 3rem; + border-top-width: 0.3rem; + border-color: var(--resizeable-handle-border-color); + + .console-info-color { + color: var(--error-level-info); + } + + .console-warning-color { + color: var(--error-level-warning); + } + + .console-error-color { + color: var(--status-bad-color); + } + + .console-entry { + display: flex; + column-gap: 0.5rem; + + .console-timestamp { + font-weight: semibold; + } + + .console-message { + word-break: break-all; + } + } +} + +.console-toggle-icon-button { + background: var(--console-icon-button-bg-color); + position: fixed; + left: 0.5rem; + bottom: 0.5rem; + z-index: 10000; + + &:hover { + background: var(--console-icon-button-bg-color-hover); + } + + &[data-error-seen='true'] { + background: var(--status-bad-color); + &:hover { + background: var(--status-bad-color); + } + } +} + +.console-autoscroll-icon-button { + background: var(--console-icon-button-bg-color); + position: fixed; + left: 0.5rem; + bottom: 3rem; + z-index: 10000; + + &:hover { + background: var(--console-icon-button-bg-color-hover); + } + + &[data-autoscroll-enabled='true'] { + background: var(--accent-color); + &:hover { + background: var(--accent-color-hover); + } + } +} diff --git a/invokeai/frontend/web/src/features/system/components/Console.tsx b/invokeai/frontend/web/src/features/system/components/Console.tsx index 562b339c59..5ed8025730 100644 --- a/invokeai/frontend/web/src/features/system/components/Console.tsx +++ b/invokeai/frontend/web/src/features/system/components/Console.tsx @@ -1,7 +1,6 @@ -import { Flex, Text, Tooltip } from '@chakra-ui/react'; +import { IconButton, Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import IAIIconButton from 'common/components/IAIIconButton'; import { errorSeen, setShouldShowLogViewer, @@ -106,47 +105,23 @@ const Console = () => { style={{ display: 'flex', position: 'fixed', - insetInlineStart: 0, + left: 0, bottom: 0, zIndex: 9999, }} maxHeight="90vh" > - +
      {log.map((entry, i) => { const { timestamp, message, level } = entry; - const colorScheme = level === 'info' ? 'base' : level; return ( - - {timestamp}: - {message} - +
      +

      {timestamp}:

      +

      {message}

      +
      ); })} - +
      )} {shouldShowLogViewer && ( @@ -154,18 +129,14 @@ const Console = () => { hasArrow label={shouldAutoscroll ? 'Autoscroll On' : 'Autoscroll Off'} > - } onClick={() => setShouldAutoscroll(!shouldAutoscroll)} - isChecked={shouldAutoscroll} - sx={{ - position: 'fixed', - insetInlineStart: 2, - bottom: 12, - zIndex: '10000', - }} /> )} @@ -173,18 +144,15 @@ const Console = () => { hasArrow label={shouldShowLogViewer ? 'Hide Console' : 'Show Console'} > - : } onClick={handleClickLogViewerToggle} - sx={{ - position: 'fixed', - insetInlineStart: 2, - bottom: 2, - zIndex: '10000', - }} - colorScheme={hasError || !wasErrorSeen ? 'error' : 'base'} /> diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss new file mode 100644 index 0000000000..afb2b1c61e --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.scss @@ -0,0 +1,87 @@ +@use '../../../../styles/Mixins/' as *; + +.hotkeys-modal { + width: 36rem; + max-width: 36rem; + display: grid; + padding: 1rem; + row-gap: 1rem; + font-family: Inter; + + h1 { + font-size: 1.2rem; + font-weight: bold; + } + + h2 { + font-weight: bold; + } +} + +.hotkeys-modal-button { + display: flex; + align-items: center; + justify-content: space-between; +} + +.hotkeys-modal-items { + max-height: 36rem; + overflow-y: scroll; + @include HideScrollbar; + + .chakra-accordion { + display: grid; + row-gap: 0.5rem; + } + + .chakra-accordion__item { + border: none; + border-radius: 0.3rem; + background-color: var(--tab-hover-color); + } + + button { + border-radius: 0.3rem; + + &[aria-expanded='true'] { + background-color: var(--tab-hover-color); + border-radius: 0.3rem; + } + } +} + +.hotkey-modal-category { + display: grid; + row-gap: 0.5rem; +} + +.hotkey-modal-item { + display: grid; + grid-template-columns: auto max-content; + justify-content: space-between; + align-items: center; + background-color: var(--background-color); + padding: 0.5rem 1rem; + border-radius: 0.3rem; + + .hotkey-info { + display: grid; + + .hotkey-title { + font-weight: bold; + } + + .hotkey-description { + font-size: 0.9rem; + color: var(--text-color-secondary); + } + } + + .hotkey-key { + font-size: 0.8rem; + font-weight: bold; + background-color: var(--background-color-light); + padding: 0.2rem 0.5rem; + border-radius: 0.3rem; + } +} diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx index 62b7985a6c..57eb512d79 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModal.tsx @@ -4,14 +4,9 @@ import { AccordionIcon, AccordionItem, AccordionPanel, - Divider, - Flex, Modal, - ModalBody, ModalCloseButton, ModalContent, - ModalFooter, - ModalHeader, ModalOverlay, useDisclosure, } from '@chakra-ui/react'; @@ -302,20 +297,24 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { }, ]; - const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => ( - - {hotkeys.map((hotkey, i) => ( - - - {i < hotkeys.length - 1 && } - - ))} - - ); + const renderHotkeyModalItems = (hotkeys: HotkeyList[]) => { + const hotkeyModalItemsToRender: ReactElement[] = []; + + hotkeys.forEach((hotkey, i) => { + hotkeyModalItemsToRender.push( + + ); + }); + + return ( +
      {hotkeyModalItemsToRender}
      + ); + }; return ( <> @@ -324,21 +323,16 @@ export default function HotkeysModal({ children }: HotkeysModalProps) { })} - - {t('hotkeys.keyboardShortcuts')} - - + + + +

      Keyboard Shorcuts

      +
      - - -

      {t('hotkeys.appHotkeys')}

      - -
      + +

      {t('hotkeys.appHotkeys')}

      +
      {renderHotkeyModalItems(appHotkeys)} @@ -346,15 +340,9 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - - -

      {t('hotkeys.generalHotkeys')}

      - -
      + +

      {t('hotkeys.generalHotkeys')}

      +
      {renderHotkeyModalItems(generalHotkeys)} @@ -362,15 +350,9 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - - -

      {t('hotkeys.galleryHotkeys')}

      - -
      + +

      {t('hotkeys.galleryHotkeys')}

      +
      {renderHotkeyModalItems(galleryHotkeys)} @@ -378,23 +360,16 @@ export default function HotkeysModal({ children }: HotkeysModalProps) {
      - - -

      {t('hotkeys.unifiedCanvasHotkeys')}

      - -
      + +

      {t('hotkeys.unifiedCanvasHotkeys')}

      +
      {renderHotkeyModalItems(unifiedCanvasHotkeys)}
      - - +
      diff --git a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx index b0163169fe..384192d3fe 100644 --- a/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/HotkeysModal/HotkeysModalItem.tsx @@ -1,5 +1,3 @@ -import { Box, Grid, Text } from '@chakra-ui/react'; - interface HotkeysModalProps { hotkey: string; title: string; @@ -9,36 +7,12 @@ interface HotkeysModalProps { export default function HotkeysModalItem(props: HotkeysModalProps) { const { title, hotkey, description } = props; return ( - - - {title} - {description && ( - - {description} - - )} - - - {hotkey} - - +
      +
      +

      {title}

      + {description &&

      {description}

      } +
      +
      {hotkey}
      +
      ); } diff --git a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx deleted file mode 100644 index ac7dc39a78..0000000000 --- a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Flex, Text, Image } from '@chakra-ui/react'; -import { RootState } from 'app/store'; -import { useAppSelector } from 'app/storeHooks'; -import InvokeAILogoImage from 'assets/images/logo.png'; - -const InvokeAILogoComponent = () => { - const appVersion = useAppSelector( - (state: RootState) => state.system.app_version - ); - - return ( - - invoke-ai-logo - - invoke ai - - - {appVersion} - - - ); -}; - -export default InvokeAILogoComponent; diff --git a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx index 7f284ee1f6..9da9c45bde 100644 --- a/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx +++ b/invokeai/frontend/web/src/features/system/components/LanguagePicker.tsx @@ -5,7 +5,7 @@ import IAIButton from 'common/components/IAIButton'; import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { useTranslation } from 'react-i18next'; -import { FaCheck, FaLanguage } from 'react-icons/fa'; +import { FaLanguage } from 'react-icons/fa'; export default function LanguagePicker() { const { t, i18n } = useTranslation(); @@ -15,15 +15,12 @@ export default function LanguagePicker() { en: t('common.langEnglish', { lng: 'en' }), fr: t('common.langFrench', { lng: 'fr' }), de: t('common.langGerman', { lng: 'de' }), - he: t('common.langHebrew', { lng: 'he' }), it: t('common.langItalian', { lng: 'it' }), ja: t('common.langJapanese', { lng: 'ja' }), - ko: t('common.langKorean', { lng: 'ko' }), pl: t('common.langPolish', { lng: 'pl' }), - pt_BR: t('common.langBrPortuguese', { lng: 'pt_BR' }), - pt: t('common.langPortuguese', { lng: 'pt' }), + pt_Br: t('common.langBrPortuguese', { lng: 'pt_Br' }), ru: t('common.langRussian', { lng: 'ru' }), - zh_CN: t('common.langSimplifiedChinese', { lng: 'zh_CN' }), + zh_Cn: t('common.langSimplifiedChinese', { lng: 'zh_Cn' }), es: t('common.langSpanish', { lng: 'es' }), uk: t('common.langUkranian', { lng: 'ua' }), }; @@ -34,13 +31,9 @@ export default function LanguagePicker() { languagesToRender.push( - ) : undefined - } + data-selected={localStorage.getItem('i18nextLng') === lang} onClick={() => i18n.changeLanguage(lang)} + className="modal-close-btn lang-select-btn" aria-label={LANGUAGES[lang as keyof typeof LANGUAGES]} size="sm" minWidth="200px" diff --git a/invokeai/frontend/web/src/features/system/components/Modal.scss b/invokeai/frontend/web/src/features/system/components/Modal.scss new file mode 100644 index 0000000000..7c97221c6b --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/Modal.scss @@ -0,0 +1,11 @@ +@use '../../../styles/Mixins/' as *; + +.modal { + background-color: var(--background-color-secondary); + color: var(--text-color); + font-family: Inter; +} + +.modal-close-btn { + @include BaseButton; +} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx index 8e0cfb2802..933b3d925e 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddCheckpointModel.tsx @@ -71,7 +71,7 @@ export default function AddCheckpointModel() { const [addManually, setAddmanually] = React.useState(false); return ( - + <> } /> @@ -99,7 +99,7 @@ export default function AddCheckpointModel() { > {({ handleSubmit, errors, touched }) => (
      - + {t('modelManager.manual')} @@ -323,6 +323,6 @@ export default function AddCheckpointModel() { )} )} - + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx index 5f8a2bc33b..a0ba19a075 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddDiffusersModel.tsx @@ -28,14 +28,12 @@ function FormItemWrapper({ }) { return ( {children} @@ -97,7 +95,7 @@ export default function AddDiffusersModel() { position="absolute" zIndex={1} size="sm" - insetInlineEnd={12} + right={12} top={3} icon={} /> @@ -107,7 +105,7 @@ export default function AddDiffusersModel() { > {({ handleSubmit, errors, touched }) => ( - + {/* Name */} {t('modelManager.formMessageDiffusersModelLocationDesc')} @@ -234,11 +230,9 @@ export default function AddDiffusersModel() { {t('modelManager.formMessageDiffusersVAELocation')} {t('modelManager.formMessageDiffusersVAELocationDesc')} @@ -292,7 +286,11 @@ export default function AddDiffusersModel() { - + {t('modelManager.addModel')} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss new file mode 100644 index 0000000000..f8144cd4f8 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.scss @@ -0,0 +1,16 @@ +.add-model-modal { + display: flex; +} + +.add-model-modal-body { + display: flex; + flex-direction: column; + row-gap: 1rem; + padding-bottom: 2rem; +} + +.add-model-form { + display: flex; + flex-direction: column; + row-gap: 0.5rem; +} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx index ad8437e845..269577227f 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/AddModel.tsx @@ -1,11 +1,9 @@ import { - Button, Flex, Modal, ModalBody, ModalCloseButton, ModalContent, - ModalFooter, ModalHeader, ModalOverlay, Text, @@ -35,11 +33,16 @@ function AddModelBox({ {text} @@ -68,9 +71,10 @@ export default function AddModel() { aria-label={t('modelManager.addNewModel')} tooltip={t('modelManager.addNewModel')} onClick={onOpen} + className="modal-close-btn" size="sm" > - + {t('modelManager.addNew')} @@ -83,12 +87,16 @@ export default function AddModel() { closeOnOverlayClick={false} > - + {t('modelManager.addNewModel')} - - + + {addNewModelUIOption == null && ( - + dispatch(setAddNewModelUIOption('ckpt'))} @@ -102,7 +110,6 @@ export default function AddModel() { {addNewModelUIOption == 'ckpt' && } {addNewModelUIOption == 'diffusers' && } - diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx index b7573f7b56..5f58583ff0 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/CheckpointModelEdit.tsx @@ -101,7 +101,7 @@ export default function CheckpointModelEdit() { }; return openModel ? ( - + {openModel} @@ -112,7 +112,7 @@ export default function CheckpointModelEdit() { flexDirection="column" maxHeight={window.innerHeight - 270} overflowY="scroll" - paddingInlineEnd={8} + paddingRight="2rem" > {({ handleSubmit, errors, touched }) => ( - + {/* Description */} {!!errors.description && touched.description ? ( {errors.description} @@ -162,7 +162,7 @@ export default function CheckpointModelEdit() { id="config" name="config" type="text" - width="full" + width="lg" /> {!!errors.config && touched.config ? ( {errors.config} @@ -188,7 +188,7 @@ export default function CheckpointModelEdit() { id="weights" name="weights" type="text" - width="full" + width="lg" /> {!!errors.weights && touched.weights ? ( {errors.weights} @@ -211,7 +211,7 @@ export default function CheckpointModelEdit() { id="vae" name="vae" type="text" - width="full" + width="lg" /> {!!errors.vae && touched.vae ? ( {errors.vae} @@ -316,15 +316,15 @@ export default function CheckpointModelEdit() { ) : ( - Pick A Model To Edit + + Pick A Model To Edit + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx index a21aee672c..59fe68a3f9 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/DiffusersModelEdit.tsx @@ -109,13 +109,18 @@ export default function DiffusersModelEdit() { }; return openModel ? ( - + {openModel} - + {({ handleSubmit, errors, touched }) => ( - + {/* Description */} {!!errors.description && touched.description ? ( {errors.description} @@ -164,7 +169,7 @@ export default function DiffusersModelEdit() { id="path" name="path" type="text" - width="full" + width="lg" /> {!!errors.path && touched.path ? ( {errors.path} @@ -187,7 +192,7 @@ export default function DiffusersModelEdit() { id="repo_id" name="repo_id" type="text" - width="full" + width="lg" /> {!!errors.repo_id && touched.repo_id ? ( {errors.repo_id} @@ -212,7 +217,7 @@ export default function DiffusersModelEdit() { id="vae.path" name="vae.path" type="text" - width="full" + width="lg" /> {!!errors.vae?.path && touched.vae?.path ? ( {errors.vae?.path} @@ -237,7 +242,7 @@ export default function DiffusersModelEdit() { id="vae.repo_id" name="vae.repo_id" type="text" - width="full" + width="lg" /> {!!errors.vae?.repo_id && touched.vae?.repo_id ? ( {errors.vae?.repo_id} @@ -264,15 +269,15 @@ export default function DiffusersModelEdit() { ) : ( - Pick A Model To Edit + + Pick A Model To Edit + ); } diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx index 3b1905979c..cd10a43856 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/MergeModels.tsx @@ -1,10 +1,8 @@ import { Flex, Modal, - ModalBody, ModalCloseButton, ModalContent, - ModalFooter, ModalHeader, ModalOverlay, Radio, @@ -59,19 +57,19 @@ export default function MergeModels() { const [modelMergeForce, setModelMergeForce] = useState(false); - const modelOneList = Object.keys(diffusersModels).filter( - (model) => model !== modelTwo && model !== modelThree - ); + const modelOneList = Object.keys(diffusersModels).filter((model) => { + if (model !== modelTwo && model !== modelThree) return model; + }); - const modelTwoList = Object.keys(diffusersModels).filter( - (model) => model !== modelOne && model !== modelThree - ); + const modelTwoList = Object.keys(diffusersModels).filter((model) => { + if (model !== modelOne && model !== modelThree) return model; + }); const modelThreeList = [ - { key: t('modelManager.none'), value: 'none' }, - ...Object.keys(diffusersModels) - .filter((model) => model !== modelOne && model !== modelTwo) - .map((model) => ({ key: model, value: model })), + 'none', + ...Object.keys(diffusersModels).filter((model) => { + if (model !== modelOne && model !== modelTwo) return model; + }), ]; const isProcessing = useAppSelector( @@ -98,8 +96,8 @@ export default function MergeModels() { return ( <> - - + + {t('modelManager.mergeModels')} @@ -111,201 +109,183 @@ export default function MergeModels() { closeOnOverlayClick={false} > - + {t('modelManager.mergeModels')} - - - - {t('modelManager.modelMergeHeaderHelp1')} - - {t('modelManager.modelMergeHeaderHelp2')} - - - - setModelOne(e.target.value)} - /> - setModelTwo(e.target.value)} - /> - { - if (e.target.value !== 'none') { - setModelThree(e.target.value); - setModelMergeInterp('add_difference'); - } else { - setModelThree('none'); - setModelMergeInterp('weighted_sum'); - } - }} - /> - - - setMergedModelName(e.target.value)} + + + {t('modelManager.modelMergeHeaderHelp1')} + + {t('modelManager.modelMergeHeaderHelp2')} + + + + setModelOne(e.target.value)} /> - - setModelTwo(e.target.value)} + /> + { + if (e.target.value !== 'none') { + setModelThree(e.target.value); + setModelMergeInterp('add_difference'); + } else { + setModelThree('none'); + setModelMergeInterp('weighted_sum'); + } }} - > - setModelMergeAlpha(v)} - withInput - withReset - handleReset={() => setModelMergeAlpha(0.5)} - withSliderMarks - /> - - {t('modelManager.modelMergeAlphaHelp')} - - + /> + - setMergedModelName(e.target.value)} + /> + + + setModelMergeAlpha(v)} + withInput + withReset + handleReset={() => setModelMergeAlpha(0.5)} + withSliderMarks + sliderMarkRightOffset={-7} + /> + + {t('modelManager.modelMergeAlphaHelp')} + + + + + - - {t('modelManager.interpolationType')} + {t('modelManager.interpolationType')} + + setModelMergeInterp(v)} + > + + {modelThree === 'none' ? ( + <> + weighted_sum + sigmoid + inv_sigmoid + + ) : ( + + + add_difference + + + )} + + + + + + + + {t('modelManager.mergedModelSaveLocation')} setModelMergeInterp(v)} + value={modelMergeSaveLocType} + onChange={(v: 'root' | 'custom') => + setModelMergeSaveLocType(v) + } > - {modelThree === 'none' ? ( - <> - - - {t('modelManager.weightedSum')} - - - - {t('modelManager.sigmoid')} - - - - {t('modelManager.inverseSigmoid')} - - - - ) : ( - - - - {t('modelManager.addDifference')} - - - - )} + + {t('modelManager.invokeAIFolder')} + + {t('modelManager.custom')} - - - - {t('modelManager.mergedModelSaveLocation')} - - - setModelMergeSaveLocType(v) - } - > - - - - {t('modelManager.invokeAIFolder')} - - - - - {t('modelManager.custom')} - - - - - - {modelMergeSaveLocType === 'custom' && ( - setModelMergeCustomSaveLoc(e.target.value)} - /> - )} - - - setModelMergeForce(e.target.checked)} - fontWeight="500" - /> - - - {t('modelManager.merge')} - + {modelMergeSaveLocType === 'custom' && ( + setModelMergeCustomSaveLoc(e.target.value)} + /> + )} - - + + setModelMergeForce(e.target.checked)} + fontWeight="bold" + /> + + + {t('modelManager.merge')} + + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx index 5896e634ea..792ce03b4e 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelConvert.tsx @@ -77,7 +77,7 @@ export default function ModelConvert(props: ModelConvertProps) { retrievedModel.status === 'active' || isProcessing || !isConnected } className=" modal-close-btn" - marginInlineEnd={8} + marginRight="2rem" > 🧨 {t('modelManager.convertToDiffusers')} @@ -96,8 +96,8 @@ export default function ModelConvert(props: ModelConvertProps) { - - + + {t('modelManager.convertToDiffusersSaveLocation')} setSaveLocation(v)}> @@ -125,7 +125,11 @@ export default function ModelConvert(props: ModelConvertProps) { {saveLocation === 'custom' && ( - + {t('modelManager.customSaveLocation')} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx index ad5b9b9072..0eb07850c3 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelList.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Heading, Spacer, Spinner, Text } from '@chakra-ui/react'; +import { Box, Flex, Spinner, Text } from '@chakra-ui/react'; import IAIInput from 'common/components/IAIInput'; import IAIButton from 'common/components/IAIButton'; @@ -45,10 +45,9 @@ function ModelFilterButton({ @@ -134,27 +133,23 @@ const ModelList = () => { return searchText !== '' ? ( isSelectedFilter === 'all' ? ( - {filteredModelListItemsToRender} + {filteredModelListItemsToRender} ) : ( - {localFilteredModelListItemsToRender} + {localFilteredModelListItemsToRender} ) ) : ( - + {isSelectedFilter === 'all' && ( <> {t('modelManager.checkpointModels')} @@ -162,16 +157,13 @@ const ModelList = () => { {t('modelManager.diffusersModels')} @@ -181,13 +173,13 @@ const ModelList = () => { )} {isSelectedFilter === 'ckpt' && ( - + {ckptModelListItemsToRender} )} {isSelectedFilter === 'diffusers' && ( - + {diffusersModelListItemsToRender} )} @@ -196,12 +188,15 @@ const ModelList = () => { }, [models, searchText, t, isSelectedFilter]); return ( - - - {t('modelManager.availableModels')} - - - + + + + {t('modelManager.availableModels')} + + + + + { - + setIsSelectedFilter('all')} @@ -239,7 +234,7 @@ const ModelList = () => { ) : ( diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx index 9b2b6d29f4..5f90df0c37 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelListItem.tsx @@ -46,37 +46,30 @@ export default function ModelListItem(props: ModelListItemProps) { const statusTextColor = () => { switch (status) { case 'active': - return 'ok.500'; + return 'var(--status-good-color)'; case 'cached': - return 'warning.500'; + return 'var(--status-working-color)'; case 'not loaded': - return 'inherit'; + return 'var(--text-color-secondary)'; } }; return ( - {name} + {name} @@ -86,6 +79,7 @@ export default function ModelListItem(props: ModelListItemProps) { size="sm" onClick={handleChangeModel} isDisabled={status === 'active' || isProcessing || !isConnected} + className="modal-close-btn" > {t('modelManager.load')} @@ -96,6 +90,7 @@ export default function ModelListItem(props: ModelListItemProps) { onClick={openModelHandler} aria-label="Modify Config" isDisabled={status === 'active' || isProcessing || !isConnected} + className=" modal-close-btn" /> } > - +

      {t('modelManager.deleteMsg1')}

      -

      {t('modelManager.deleteMsg2')}

      +

      + {t('modelManager.deleteMsg2')} +

      diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx index 5de4faa80b..def4afe6b6 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/ModelManagerModal.tsx @@ -1,10 +1,8 @@ import { Flex, Modal, - ModalBody, ModalCloseButton, ModalContent, - ModalFooter, ModalHeader, ModalOverlay, useDisclosure, @@ -52,23 +50,22 @@ export default function ModelManagerModal({ - - - {t('modelManager.modelManager')} - - - - {openModel && model_list[openModel]['format'] === 'diffusers' ? ( - - ) : ( - - )} - - - + + + + {t('modelManager.modelManager')} + + + + {openModel && model_list[openModel]['format'] === 'diffusers' ? ( + + ) : ( + + )} + diff --git a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx index 4798382537..08834eb91b 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelManager/SearchModels.tsx @@ -4,13 +4,12 @@ import IAIIconButton from 'common/components/IAIIconButton'; import React from 'react'; import { - Badge, + Box, Flex, FormControl, HStack, Radio, RadioGroup, - Spacer, Text, VStack, } from '@chakra-ui/react'; @@ -19,7 +18,8 @@ import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { systemSelector } from 'features/system/store/systemSelectors'; import { useTranslation } from 'react-i18next'; -import { FaPlus, FaSearch } from 'react-icons/fa'; +import { FaPlus } from 'react-icons/fa'; +import { MdFindInPage } from 'react-icons/md'; import { addNewModel, searchForModels } from 'app/socketio/actions'; import { @@ -48,6 +48,26 @@ const existingModelsSelector = createSelector([systemSelector], (system) => { return existingModels; }); +function ModelExistsTag() { + const { t } = useTranslation(); + return ( + + {t('modelManager.modelExists')} + + ); +} + interface SearchModelEntry { model: FoundModel; modelsToAdd: string[]; @@ -59,7 +79,6 @@ function SearchModelEntry({ modelsToAdd, setModelsToAdd, }: SearchModelEntry) { - const { t } = useTranslation(); const existingModels = useAppSelector(existingModelsSelector); const foundModelsChangeHandler = (e: ChangeEvent) => { @@ -71,34 +90,33 @@ function SearchModelEntry({ }; return ( - - + {existingModels.includes(model.location) ? : null} + + +

      {model.name}

      +

      {model.location}

      +
      + } - paddingX={4} - paddingY={2} - borderRadius={4} - > - - {model.name}
      } - isChecked={modelsToAdd.includes(model.name)} - isDisabled={existingModels.includes(model.location)} - onChange={foundModelsChangeHandler} - > - {existingModels.includes(model.location) && ( - {t('modelManager.modelExists')} - )} -
      - - {model.location} - -
      -
      + isChecked={modelsToAdd.includes(model.name)} + isDisabled={existingModels.includes(model.location)} + onChange={foundModelsChangeHandler} + padding="1rem" + backgroundColor="var(--background-color)" + borderRadius="0.5rem" + _checked={{ + backgroundColor: 'var(--accent-color)', + color: 'var(--text-color)', + }} + _disabled={{ + backgroundColor: 'var(--background-color-secondary)', + }} + > + ); } @@ -225,38 +243,36 @@ export default function SearchModels() { <> {searchFolder ? ( - - - {t('modelManager.checkpointFolder')} - - {searchFolder} - - + {t('modelManager.checkpointFolder')} +

      +

      + {searchFolder} +

      } + position="absolute" + right={16} fontSize={18} disabled={isProcessing} onClick={() => dispatch(searchForModels(searchFolder))} @@ -264,6 +280,8 @@ export default function SearchModels() { } + position="absolute" + right={5} onClick={resetSearchModelHandler} />
      @@ -276,34 +294,32 @@ export default function SearchModels() { > {({ handleSubmit }) => ( - - + + - } + } aria-label={t('modelManager.findModels')} tooltip={t('modelManager.findModels')} type="submit" disabled={isProcessing} - paddingX={10} - > - {t('modelManager.findModels')} - + /> )} )} {foundModels && ( - +

      {t('modelManager.modelsFound')}: {foundModels.length} @@ -312,8 +328,8 @@ export default function SearchModels() { {t('modelManager.selected')}: {modelsToAdd.length}

      - - + + 0 ? 'var(--accent-color) !important' : '' + } > {t('modelManager.addSelected')} - - {t('modelManager.pickModelType')} + + Pick Model Type: - - {t('modelManager.v1')} - - - {t('modelManager.v2')} - + {t('modelManager.v1')} + {t('modelManager.v2')} - {t('modelManager.inpainting')} - - - {t('modelManager.customConfig')} + {t('modelManager.inpainting')} + {t('modelManager.customConfig')} {modelType === 'custom' && ( - + {t('modelManager.pathToCustomConfig')} { if (e.target.value !== '') setPathToConfig(e.target.value); }} - width="full" + width="42.5rem" /> )} {foundModels.length > 0 ? ( - renderFoundModels() + modelsToAdd.length === 0 && ( + + {t('modelManager.selectAndAdd')} + + ) ) : ( {t('modelManager.noModelsFound')} )} + + {renderFoundModels()} )} diff --git a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx index ab37213a00..7c06604382 100644 --- a/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx +++ b/invokeai/frontend/web/src/features/system/components/ModelSelect.tsx @@ -33,11 +33,11 @@ const ModelSelect = () => { return ( { ); }; diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss new file mode 100644 index 0000000000..53b4766c95 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.scss @@ -0,0 +1,43 @@ +@use '../../../../styles/Mixins/' as *; + +.settings-modal { + max-height: 36rem; + font-family: Inter; + + .settings-modal-content { + display: grid; + row-gap: 2rem; + overflow-y: scroll; + } + + .settings-modal-header { + font-weight: bold; + } + + .settings-modal-items { + display: grid; + row-gap: 0.5rem; + + .settings-modal-item { + display: grid; + grid-auto-flow: column; + background-color: var(--background-color); + padding: 0.4rem 1rem; + border-radius: 0.5rem; + align-items: center; + width: 100%; + } + } + + .settings-modal-reset { + display: grid; + row-gap: 1rem; + + button { + @include Button( + $btn-color: var(--destructive-color), + $btn-color-hover: var(--destructive-color-hover) + ); + } + } +} diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx index c203edfc37..3112fd6995 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -1,7 +1,6 @@ import { - ChakraProps, + Button, Flex, - Grid, Heading, Modal, ModalBody, @@ -17,7 +16,6 @@ import { createSelector } from '@reduxjs/toolkit'; import { IN_PROGRESS_IMAGE_TYPES } from 'app/constants'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; -import IAIButton from 'common/components/IAIButton'; import IAINumberInput from 'common/components/IAINumberInput'; import IAISelect from 'common/components/IAISelect'; import IAISwitch from 'common/components/IAISwitch'; @@ -72,13 +70,6 @@ const selector = createSelector( } ); -const modalSectionStyles: ChakraProps['sx'] = { - flexDirection: 'column', - gap: 2, - p: 4, - bg: 'base.900', -}; - type SettingsModalProps = { /* The button to open the Settings Modal */ children: ReactElement; @@ -144,15 +135,20 @@ const SettingsModal = ({ children }: SettingsModalProps) => { - - {t('common.settingsLabel')} - - - - + + + {t('common.settingsLabel')} + + + +
      +
      { textAlign="center" /> )} - ) => - dispatch(setShouldConfirmOnDelete(e.target.checked)) - } - /> - ) => - dispatch(setShouldDisplayGuides(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) - } - /> - ) => - dispatch(setShouldUseSliders(e.target.checked)) - } - /> - +
      + ) => + dispatch(setShouldConfirmOnDelete(e.target.checked)) + } + /> + ) => + dispatch(setShouldDisplayGuides(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseCanvasBetaLayout(e.target.checked)) + } + /> + ) => + dispatch(setShouldUseSliders(e.target.checked)) + } + /> +
      - - - Developer - - ) => - dispatch(setEnableImageDebugging(e.target.checked)) - } - /> - +
      +

      Developer

      + ) => + dispatch(setEnableImageDebugging(e.target.checked)) + } + /> +
      - - {t('settings.resetWebUI')} - - {t('settings.resetWebUI')} - - {t('settings.resetWebUIDesc1')} - {t('settings.resetWebUIDesc2')} - -
      +
      + {t('settings.resetWebUI')} + + {t('settings.resetWebUIDesc1')} + {t('settings.resetWebUIDesc2')} +
      - +
      @@ -245,17 +244,15 @@ const SettingsModal = ({ children }: SettingsModalProps) => { onClose={onRefreshModalClose} isCentered > - + - - + {t('settings.resetComplete')} - diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.scss b/invokeai/frontend/web/src/features/system/components/SiteHeader.scss new file mode 100644 index 0000000000..59edc9a403 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/SiteHeader.scss @@ -0,0 +1,31 @@ +.site-header { + display: grid; + grid-template-columns: auto max-content; +} + +.site-header-left-side { + display: flex; + align-items: center; + column-gap: 0.7rem; + padding-left: 0.5rem; + + img { + width: 32px; + height: 32px; + } +} + +.site-header-right-side { + display: flex; + align-items: center; + column-gap: 0.5rem; + + .lang-select-btn { + &[data-selected='true'] { + background-color: var(--accent-color); + &:hover { + background-color: var(--accent-color); + } + } + } +} diff --git a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx index 6aaa989c89..ccbc425590 100644 --- a/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx +++ b/invokeai/frontend/web/src/features/system/components/SiteHeader.tsx @@ -1,7 +1,8 @@ -import { Flex, Grid, Link } from '@chakra-ui/react'; +import { Flex, Link, Text } from '@chakra-ui/react'; import { FaBug, FaCube, FaDiscord, FaGithub, FaKeyboard } from 'react-icons/fa'; +import InvokeAILogo from 'assets/images/logo.png'; import IAIIconButton from 'common/components/IAIIconButton'; import HotkeysModal from './HotkeysModal/HotkeysModal'; @@ -14,21 +15,39 @@ import ThemeChanger from './ThemeChanger'; import LanguagePicker from './LanguagePicker'; +import type { RootState } from 'app/store'; +import { useAppSelector } from 'app/storeHooks'; import { useTranslation } from 'react-i18next'; import { MdSettings } from 'react-icons/md'; -import InvokeAILogoComponent from './InvokeAILogoComponent'; /** * Header, includes color mode toggle, settings button, status message. */ const SiteHeader = () => { const { t } = useTranslation(); + const appVersion = useAppSelector( + (state: RootState) => state.system.app_version + ); return ( - - +
      +
      + invoke-ai-logo + + + invoke ai + + + {appVersion} + + +
      - +
      @@ -114,8 +133,8 @@ const SiteHeader = () => { icon={} /> - - +
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss b/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss new file mode 100644 index 0000000000..341d2fcb46 --- /dev/null +++ b/invokeai/frontend/web/src/features/system/components/StatusIndicator.scss @@ -0,0 +1,19 @@ +.status { + font-size: 0.8rem; + font-weight: bold; +} + +.status-good { + color: var(--status-good-color); + text-shadow: 0 0 10px var(--status-good-glow); +} + +.status-bad { + color: var(--status-bad-color); + text-shadow: 0 0 10px var(--status-bad-glow); +} + +.status-working { + color: var(--status-working-color); + text-shadow: 0 0 10px var(--status-working-glow); +} diff --git a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx index f47730d221..bacc199015 100644 --- a/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx +++ b/invokeai/frontend/web/src/features/system/components/StatusIndicator.tsx @@ -37,18 +37,25 @@ const StatusIndicator = () => { const dispatch = useAppDispatch(); const { t } = useTranslation(); - let statusIdentifier; - + let statusStyle; if (isConnected && !hasError) { - statusIdentifier = 'ok'; + statusStyle = 'status-good'; } else { - statusIdentifier = 'error'; + statusStyle = 'status-bad'; } let statusMessage = currentStatus; - if (isProcessing) { - statusIdentifier = 'working'; + const intermediateStatuses = [ + t('common.statusGenerating'), + t('common.statusPreparing'), + t('common.statusSavingImage'), + t('common.statusRestoringFaces'), + t('common.statusUpscaling'), + ]; + + if (intermediateStatuses.includes(statusMessage)) { + statusStyle = 'status-working'; } if (statusMessage) @@ -79,11 +86,7 @@ const StatusIndicator = () => { {t(statusMessage as keyof typeof t)} diff --git a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx index 9114a9d9e1..f1597315b8 100644 --- a/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx +++ b/invokeai/frontend/web/src/features/system/components/ThemeChanger.tsx @@ -1,4 +1,4 @@ -import { VStack } from '@chakra-ui/react'; +import { useColorMode, VStack } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -6,12 +6,13 @@ import IAIIconButton from 'common/components/IAIIconButton'; import IAIPopover from 'common/components/IAIPopover'; import { setCurrentTheme } from 'features/ui/store/uiSlice'; import type { ReactNode } from 'react'; +import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { FaCheck, FaPalette } from 'react-icons/fa'; export default function ThemeChanger() { const { t } = useTranslation(); - + const { setColorMode, colorMode } = useColorMode(); const dispatch = useAppDispatch(); const currentTheme = useAppSelector( (state: RootState) => state.ui.currentTheme @@ -21,9 +22,16 @@ export default function ThemeChanger() { dark: t('common.darkTheme'), light: t('common.lightTheme'), green: t('common.greenTheme'), - ocean: t('common.oceanTheme'), }; + useEffect(() => { + // syncs the redux store theme to the chakra's theme on startup and when + // setCurrentTheme is dispatched + if (colorMode !== currentTheme) { + setColorMode(currentTheme); + } + }, [setColorMode, colorMode, currentTheme]); + const handleChangeTheme = (theme: string) => { dispatch(setCurrentTheme(theme)); }; @@ -34,10 +42,9 @@ export default function ThemeChanger() { Object.keys(THEMES).forEach((theme) => { themesToRender.push( : undefined} size="sm" onClick={() => handleChangeTheme(theme)} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss b/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss new file mode 100644 index 0000000000..0208f30a7f --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/FloatingButton.scss @@ -0,0 +1,55 @@ +@use '../../../styles/Mixins/' as *; + +.floating-show-hide-button { + position: absolute; + top: 50%; + transform: translate(0, -50%); + z-index: 20; + padding: 0; + background-color: red !important; + + &.left { + left: 0; + border-radius: 0 0.5rem 0.5rem 0; + } + + &.right { + right: 0; + border-radius: 0.5rem 0 0 0.5rem; + } + + @include Button( + $btn-width: 2rem, + $btn-height: 12rem, + $icon-size: 20px, + $btn-color: var(--btn-btn-base-color), + $btn-color-hover: var(--btn-btn-base-color-hover) + ); +} + +.show-hide-button-options { + position: absolute; + transform: translate(0, -50%); + z-index: 20; + min-width: 2rem; + + top: 50%; + left: calc(42px + 2rem); + + border-radius: 0 0.5rem 0.5rem 0; + + display: flex; + flex-direction: column; + row-gap: 0.5rem; + + button { + border-radius: 0 0.3rem 0.3rem 0; + } +} + +.show-hide-button-gallery { + padding-left: 0.75rem; + padding-right: 0.75rem; + background-color: var(--background-color) !important; + // filter: drop-shadow(0.5rem 0px 1rem var(--floating-button-drop-shadow-color)); +} diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx index 71b18a60a4..928e87f0b1 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingGalleryButton.tsx @@ -22,20 +22,8 @@ const FloatingGalleryButton = () => { tooltip="Show Gallery (G)" tooltipProps={{ placement: 'top' }} aria-label="Show Gallery" + styleClass="floating-show-hide-button right show-hide-button-gallery" onClick={handleShowGallery} - sx={{ - pos: 'absolute', - top: '50%', - transform: 'translate(0, -50%)', - zIndex: 31, - p: 0, - insetInlineEnd: 0, - px: 3, - h: 48, - w: 8, - borderStartEndRadius: 0, - borderEndEndRadius: 0, - }} >
      diff --git a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx index 24928db923..d9e1722f39 100644 --- a/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/FloatingParametersPanelButtons.tsx @@ -1,4 +1,3 @@ -import { ChakraProps, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAIIconButton from 'common/components/IAIIconButton'; @@ -16,11 +15,6 @@ import { isEqual } from 'lodash'; import { FaSlidersH } from 'react-icons/fa'; -const floatingButtonStyles: ChakraProps['sx'] = { - borderStartStartRadius: 0, - borderEndStartRadius: 0, -}; - export const floatingSelector = createSelector( [gallerySelector, uiSelector, activeTabNameSelector], (gallery: GalleryState, ui, activeTabName) => { @@ -82,32 +76,22 @@ const FloatingParametersPanelButtons = () => { }; return shouldShowParametersPanelButton ? ( - +
      {shouldShowProcessButtons && ( <> - - + + )} - +
      ) : null; }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss new file mode 100644 index 0000000000..edb307941b --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImage.scss @@ -0,0 +1,50 @@ +@use '../../../../styles/Mixins/' as *; + +.image-to-image-area { + display: flex; + flex-direction: column; + row-gap: 1rem; + width: 100%; + height: 100%; +} + +.image-to-image-strength-main-option { + display: flex; + row-gap: 0.5rem !important; + + .invokeai__slider-component-label { + color: var(--text-color-secondary); + font-size: 0.9rem !important; + } +} + +.init-image-preview-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + + h2 { + font-weight: bold; + font-size: 0.9rem; + } +} + +.init-image-preview { + position: relative; + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + + img { + border-radius: 0.5rem; + object-fit: contain; + position: absolute; + } +} + +.image-to-image-current-image-display { + position: relative; +} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx index 173985697f..a3c1ca824d 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageDisplay.tsx @@ -1,49 +1,33 @@ -import { ChakraProps, Flex, Grid } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppSelector } from 'app/storeHooks'; import ImageUploadButton from 'common/components/ImageUploaderButton'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; import InitImagePreview from './InitImagePreview'; -const workareaSplitViewStyle: ChakraProps['sx'] = { - flexDirection: 'column', - height: '100%', - width: '100%', - gap: 4, - - padding: 4, -}; - const ImageToImageDisplay = () => { const initialImage = useAppSelector( (state: RootState) => state.generation.initialImage ); + const { currentImage } = useAppSelector((state: RootState) => state.gallery); + const imageToImageComponent = initialImage ? ( - +
      - +
      ) : ( ); return ( - - - {imageToImageComponent} - - - - - +
      +
      {imageToImageComponent}
      + {currentImage && ( +
      + +
      + )} +
      ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx new file mode 100644 index 0000000000..98a6bb8ae6 --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageOptions.tsx @@ -0,0 +1,26 @@ +import { Flex } from '@chakra-ui/react'; +import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; +import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; +import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; + +import { useTranslation } from 'react-i18next'; + +export default function ImageToImageOptions() { + const { t } = useTranslation(); + const imageToImageAccordionItems = { + imageToImage: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: ( + + + + + ), + }, + }; + return ; +} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx index d5f2268cb8..531e95f161 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImagePanel.tsx @@ -10,29 +10,19 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; +import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; import PromptInput from 'features/parameters/components/PromptInput/PromptInput'; import InvokeOptionsPanel from 'features/ui/components/InvokeParametersPanel'; import { useTranslation } from 'react-i18next'; -import ImageToImageSettings from './ImageToImageSettings'; +import ImageToImageOptions from './ImageToImageOptions'; export default function ImageToImagePanel() { const { t } = useTranslation(); const imageToImageAccordions = { - general: { - header: `${t('parameters.general')}`, - feature: undefined, - content: , - }, - imageToImage: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: , - }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -70,11 +60,13 @@ export default function ImageToImagePanel() { return ( - + + + ); diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx deleted file mode 100644 index fb53c7006b..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/ImageToImageSettings.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { VStack } from '@chakra-ui/react'; -import ImageFit from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageFit'; -import ImageToImageStrength from 'features/parameters/components/AdvancedParameters/ImageToImage/ImageToImageStrength'; - -import { useTranslation } from 'react-i18next'; - -export default function ImageToImageSettings() { - const { t } = useTranslation(); - return ( - - - - - ); -} diff --git a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx index 9eb26129a7..d8242062a6 100644 --- a/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx +++ b/invokeai/frontend/web/src/features/ui/components/ImageToImage/InitImagePreview.tsx @@ -1,4 +1,4 @@ -import { Flex, Image, Text, useToast } from '@chakra-ui/react'; +import { Image, useToast } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageUploaderIconButton from 'common/components/ImageUploaderIconButton'; @@ -28,49 +28,22 @@ export default function InitImagePreview() { return ( <> - - - {t('parameters.initialImage')} - +
      +

      {t('parameters.initialImage')}

      - +
      {initialImage && ( - +
      - +
      )} ); diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css deleted file mode 100644 index f43861edba..0000000000 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.css +++ /dev/null @@ -1,35 +0,0 @@ -.ltr-parameters-panel-transition-enter { - transform: translateX(-150%); -} - -.ltr-parameters-panel-transition-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.ltr-parameters-panel-transition-exit { - transform: translateX(0); -} - -.ltr-parameters-panel-transition-exit-active { - transform: translateX(-150%); - transition: all 120ms ease-out; -} - -.rtl-parameters-panel-transition-enter { - transform: translateX(150%); -} - -.rtl-parameters-panel-transition-enter-active { - transform: translateX(0); - transition: all 120ms ease-out; -} - -.rtl-parameters-panel-transition-exit { - transform: translateX(0); -} - -.rtl-parameters-panel-transition-exit-active { - transform: translateX(150%); - transition: all 120ms ease-out; -} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss new file mode 100644 index 0000000000..69b9755ca8 --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.scss @@ -0,0 +1,90 @@ +@use '../../../styles/Mixins/' as *; + +.parameters-panel-wrapper-enter { + transform: translateX(-150%); +} + +.parameters-panel-wrapper-enter-active { + transform: translateX(0); + transition: all 120ms ease-out; +} + +.parameters-panel-wrapper-exit { + transform: translateX(0); +} + +.parameters-panel-wrapper-exit-active { + transform: translateX(-150%); + transition: all 120ms ease-out; +} + +.parameters-panel-wrapper { + background-color: var(--background-color); + height: $app-content-height; + width: $options-bar-max-width; + max-width: $options-bar-max-width; + + flex-shrink: 0; + position: relative; + overflow-y: scroll; + @include HideScrollbar; + + .parameters-panel { + display: flex; + flex-direction: column; + row-gap: 0.5rem; + height: 100%; + @include HideScrollbar; + background-color: var(--background-color); + } + + &[data-pinned='false'] { + z-index: 20; + + position: fixed; + top: 0; + left: 0; + filter: var(--floating-panel-drop-shadow); + width: calc($options-bar-max-width + 2rem); + max-width: calc($options-bar-max-width + 2rem); + height: 100%; + + .parameters-panel-margin { + margin: 1rem; + } + } + + .parameters-panel-pin-button { + position: absolute; + cursor: pointer; + padding: 0.5rem; + top: 1rem; + right: 1rem; + z-index: 20; + + &[data-selected='true'] { + top: 0; + right: 0; + } + svg { + opacity: 0.5; + } + } +} + +.invoke-ai-logo-wrapper { + display: flex; + align-items: center; + column-gap: 0.7rem; + padding-left: 0.5rem; + padding-top: $progress-bar-thickness; + + img { + width: 32px; + height: 32px; + } + + h1 { + font-size: 1.4rem; + } +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx index e7e610df6c..8dcd4f4a78 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeParametersPanel.tsx @@ -1,4 +1,4 @@ -import { Box, Flex, Tooltip, Icon, useTheme } from '@chakra-ui/react'; +import { Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import { @@ -15,18 +15,9 @@ import { CSSTransition } from 'react-transition-group'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setParametersPanelScrollPosition } from 'features/ui/store/uiSlice'; +import InvokeAILogo from 'assets/images/logo.png'; import { isEqual } from 'lodash'; import { uiSelector } from '../store/uiSelectors'; -import { useTranslation } from 'react-i18next'; -import { - APP_CONTENT_HEIGHT, - OPTIONS_BAR_MAX_WIDTH, - PROGRESS_BAR_THICKNESS, -} from 'theme/util/constants'; -import InvokeAILogoComponent from 'features/system/components/InvokeAILogoComponent'; - -import './InvokeParametersPanel.css'; -import { no_scrollbar } from 'theme/components/scrollbar'; type Props = { children: ReactNode }; @@ -56,8 +47,6 @@ const optionsPanelSelector = createSelector( const InvokeOptionsPanel = (props: Props) => { const dispatch = useAppDispatch(); - const { direction } = useTheme(); - const { shouldShowParametersPanel, shouldHoldParametersPanelOpen, @@ -71,8 +60,6 @@ const InvokeOptionsPanel = (props: Props) => { const { children } = props; - const { t } = useTranslation(); - // Hotkeys useHotkeys( 'o', @@ -158,10 +145,11 @@ const InvokeOptionsPanel = (props: Props) => { } unmountOnExit timeout={200} - classNames={`${direction}-parameters-panel-transition`} + classNames="parameters-panel-wrapper" > - { onMouseOver={ !shouldPinParametersPanel ? cancelCloseOptionsPanelTimer : undefined } - sx={{ - borderInlineEndWidth: !shouldPinParametersPanel ? 5 : 0, - borderInlineEndStyle: 'solid', - bg: 'base.900', - borderColor: 'base.700', - height: APP_CONTENT_HEIGHT, - width: OPTIONS_BAR_MAX_WIDTH, - maxWidth: OPTIONS_BAR_MAX_WIDTH, - flexShrink: 0, - position: 'relative', - overflowY: 'scroll', - overflowX: 'hidden', - ...no_scrollbar, - ...(!shouldPinParametersPanel && { - zIndex: 20, - position: 'fixed', - top: 0, - insetInlineStart: 0, - width: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, - maxWidth: `calc(${OPTIONS_BAR_MAX_WIDTH} + 2rem)`, - height: '100%', - }), + style={{ + borderRight: !shouldPinParametersPanel + ? '0.3rem solid var(--tab-list-text-inactive)' + : '', }} > - - +
      ) => { if (e.target !== optionsPanelContainerRef.current) { @@ -204,44 +175,28 @@ const InvokeOptionsPanel = (props: Props) => { !shouldPinParametersPanel && setCloseOptionsPanelTimer(); } }} - sx={{ - display: 'flex', - flexDirection: 'column', - rowGap: 2, - height: '100%', - }} > - - +
      - - + {shouldPinParametersPanel ? : } +
      {!shouldPinParametersPanel && ( - - - +
      + invoke-ai-logo +

      + invoke ai +

      +
      )} {children} - - - +
      + + ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss new file mode 100644 index 0000000000..1a113b4148 --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.scss @@ -0,0 +1,46 @@ +@use '../../../styles/Mixins/' as *; + +.app-tabs { + display: grid; + grid-template-columns: min-content auto; + column-gap: 1rem; + // height: 100%; + height: $app-content-height; +} + +.app-tabs-list { + display: grid; + row-gap: 0.3rem; + grid-auto-rows: min-content; + color: var(--tab-list-text-inactive); + + button { + font-size: 0.85rem; + padding: 0.5rem; + + &:hover { + background-color: var(--tab-hover-color); + border-radius: 0.3rem; + } + + svg { + width: 24px; + height: 24px; + } + + &[aria-selected='true'] { + background-color: var(--tab-list-bg); + color: var(--tab-list-text); + font-weight: bold; + border-radius: 0.3rem; + border: none; + } + } +} + +.app-tabs-panels { + .app-tabs-panel { + padding: 0; + height: 100%; + } +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx index fb16969319..f330fbd0ed 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeTabs.tsx @@ -1,18 +1,16 @@ -import { - Icon, - Tab, - TabList, - TabPanel, - TabPanels, - Tabs, - Tooltip, -} from '@chakra-ui/react'; +import { Tab, TabPanel, TabPanels, Tabs, Tooltip } from '@chakra-ui/react'; import { RootState } from 'app/store'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import NodesWIP from 'common/components/WorkInProgress/NodesWIP'; import { PostProcessingWIP } from 'common/components/WorkInProgress/PostProcessingWIP'; import TrainingWIP from 'common/components/WorkInProgress/Training'; import useUpdateTranslations from 'common/hooks/useUpdateTranslations'; +import ImageToImageIcon from 'common/icons/ImageToImageIcon'; +import NodesIcon from 'common/icons/NodesIcon'; +import PostprocessingIcon from 'common/icons/PostprocessingIcon'; +import TextToImageIcon from 'common/icons/TextToImageIcon'; +import TrainingIcon from 'common/icons/TrainingIcon'; +import UnifiedCanvasIcon from 'common/icons/UnifiedCanvasIcon'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { setShouldShowGallery } from 'features/gallery/store/gallerySlice'; import Lightbox from 'features/lightbox/components/Lightbox'; @@ -25,14 +23,6 @@ import { import i18n from 'i18n'; import { ReactElement } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; -import { - MdDeviceHub, - MdFlashOn, - MdGridOn, - MdPhotoFilter, - MdPhotoLibrary, - MdTextFields, -} from 'react-icons/md'; import { activeTabIndexSelector } from '../store/uiSelectors'; import { floatingSelector } from './FloatingParametersPanelButtons'; import ImageToImageWorkarea from './ImageToImage'; @@ -47,32 +37,32 @@ export interface InvokeTabInfo { export const tabDict: Record = { txt2img: { - title: , + title: , workarea: , tooltip: 'Text To Image', }, img2img: { - title: , + title: , workarea: , tooltip: 'Image To Image', }, unifiedCanvas: { - title: , + title: , workarea: , tooltip: 'Unified Canvas', }, nodes: { - title: , + title: , workarea: , tooltip: 'Nodes', }, postprocess: { - title: , + title: , workarea: , tooltip: 'Post Processing', }, training: { - title: , + title: , workarea: , tooltip: 'Training', }, @@ -162,7 +152,7 @@ export default function InvokeTabs() { key={key} hasArrow label={tabDict[key as keyof typeof tabDict].tooltip} - placement="end" + placement="right" > {tabDict[key as keyof typeof tabDict].title} @@ -175,7 +165,7 @@ export default function InvokeTabs() { const tabPanelsToRender: ReactElement[] = []; Object.keys(tabDict).forEach((key) => { tabPanelsToRender.push( - + {tabDict[key as keyof typeof tabDict].workarea} ); @@ -186,14 +176,18 @@ export default function InvokeTabs() { return ( { dispatch(setActiveTab(index)); }} > - {renderTabs()} - {isLightBoxOpen ? : renderTabPanels()} +
      {renderTabs()}
      + + {isLightBoxOpen ? : renderTabPanels()} +
      ); } diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss new file mode 100644 index 0000000000..a3821d9a77 --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.scss @@ -0,0 +1,71 @@ +@use '../../../styles/Mixins/' as *; + +.workarea-wrapper { + position: relative; + width: 100%; + height: 100%; + + .workarea-main { + display: flex; + column-gap: 1rem; + height: 100%; + + .workarea-children-wrapper { + position: relative; + width: 100%; + height: 100%; + } + .workarea-split-view { + width: 100%; + height: 100%; + display: grid; + grid-template-columns: 1fr 1fr; + background-color: var(--background-color-secondary); + border-radius: 0.5rem; + .workarea-split-view-left { + padding-right: 0.5rem; + } + .workarea-split-view-right { + padding-left: 0.5rem; + } + } + + .workarea-single-view { + width: 100%; + height: 100%; + background-color: var(--background-color-secondary); + border-radius: 0.5rem; + } + + .workarea-split-view-left, + .workarea-split-view-right { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + row-gap: 1rem; + background-color: var(--background-color-secondary); + border-radius: 0.5rem; + padding: 1rem; + } + } +} +.workarea-split-button { + position: absolute; + cursor: pointer; + padding: 0.5rem; + top: 0; + right: 0; + // z-index: 20; + + &[data-selected='true'] { + top: 0; + right: 0; + svg { + opacity: 1; + } + } + svg { + opacity: 0.5; + } +} diff --git a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx index 0210d249cf..d3aca2dae9 100644 --- a/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/InvokeWorkarea.tsx @@ -1,4 +1,4 @@ -import { Box, BoxProps, Flex } from '@chakra-ui/react'; +import { Tooltip } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import ImageGallery from 'features/gallery/components/ImageGallery'; @@ -8,20 +8,27 @@ import { uiSelector, } from 'features/ui/store/uiSelectors'; import { DragEvent, ReactNode } from 'react'; +import { VscSplitHorizontal } from 'react-icons/vsc'; -import { setInitialCanvasImage } from 'features/canvas/store/canvasSlice'; +import { + setDoesCanvasNeedScaling, + setInitialCanvasImage, +} from 'features/canvas/store/canvasSlice'; import useGetImageByUuid from 'features/gallery/hooks/useGetImageByUuid'; import { lightboxSelector } from 'features/lightbox/store/lightboxSelectors'; +import { setShouldShowDualDisplay } from 'features/ui/store/uiSlice'; import { isEqual } from 'lodash'; const workareaSelector = createSelector( [uiSelector, lightboxSelector, activeTabNameSelector], (ui, lightbox, activeTabName) => { - const { shouldPinParametersPanel } = ui; + const { shouldShowDualDisplay, shouldPinParametersPanel } = ui; const { isLightboxOpen } = lightbox; return { + shouldShowDualDisplay, shouldPinParametersPanel, isLightboxOpen, + shouldShowDualDisplayButton: ['inpainting'].includes(activeTabName), activeTabName, }; }, @@ -32,18 +39,29 @@ const workareaSelector = createSelector( } ); -type InvokeWorkareaProps = BoxProps & { +type InvokeWorkareaProps = { optionsPanel: ReactNode; children: ReactNode; + styleClass?: string; }; const InvokeWorkarea = (props: InvokeWorkareaProps) => { const dispatch = useAppDispatch(); - const { optionsPanel, children, ...rest } = props; - const { activeTabName, isLightboxOpen } = useAppSelector(workareaSelector); + const { optionsPanel, children, styleClass } = props; + const { + activeTabName, + shouldShowDualDisplay, + isLightboxOpen, + shouldShowDualDisplayButton, + } = useAppSelector(workareaSelector); const getImageByUuid = useGetImageByUuid(); + const handleDualDisplay = () => { + dispatch(setShouldShowDualDisplay(!shouldShowDualDisplay)); + dispatch(setDoesCanvasNeedScaling(true)); + }; + const handleDrop = (e: DragEvent) => { const uuid = e.dataTransfer.getData('invokeai/imageUuid'); const image = getImageByUuid(uuid); @@ -56,15 +74,30 @@ const InvokeWorkarea = (props: InvokeWorkareaProps) => { }; return ( - - +
      +
      {optionsPanel} - +
      {children} - + {shouldShowDualDisplayButton && ( + +
      + +
      +
      + )} +
      {!isLightboxOpen && } - -
      +
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss new file mode 100644 index 0000000000..65cfb8a2bc --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImage.scss @@ -0,0 +1,6 @@ +@use '../../../../styles/Mixins/' as *; + +.text-to-image-area { + padding: 1rem; + height: 100%; +} diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx index 219b70bc2d..36cd60fd36 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImageDisplay.tsx @@ -1,20 +1,12 @@ -import { Box, Flex } from '@chakra-ui/react'; import CurrentImageDisplay from 'features/gallery/components/CurrentImageDisplay'; const TextToImageDisplay = () => { return ( - - +
      +
      - - +
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx index 09b96be20c..ee9f7ace3f 100644 --- a/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/TextToImage/TextToImagePanel.tsx @@ -10,7 +10,7 @@ import UpscaleSettings from 'features/parameters/components/AdvancedParameters/U import UpscaleToggle from 'features/parameters/components/AdvancedParameters/Upscale/UpscaleToggle'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; +import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,11 +22,6 @@ export default function TextToImagePanel() { const { t } = useTranslation(); const textToImageAccordions = { - general: { - header: `${t('parameters.general')}`, - feature: undefined, - content: , - }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -64,11 +59,12 @@ export default function TextToImagePanel() { return ( - + + ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss new file mode 100644 index 0000000000..6a99c38003 --- /dev/null +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/CanvasWorkarea.scss @@ -0,0 +1,103 @@ +@use '../../../../styles/Mixins/' as *; + +.inpainting-main-area { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 1rem; + width: 100%; + height: 100%; + + .inpainting-settings { + display: flex; + align-items: center; + column-gap: 0.5rem; + + svg { + transform: scale(0.9); + } + + .inpainting-buttons-group { + display: flex; + align-items: center; + column-gap: 0.5rem; + } + + .inpainting-button-dropdown { + display: flex; + flex-direction: column; + row-gap: 0.5rem; + } + + .inpainting-color-picker { + margin-left: 1rem; + } + + .inpainting-brush-options { + display: flex; + align-items: center; + column-gap: 1rem; + } + } +} + +.inpainting-canvas-area { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + row-gap: 1rem; + width: 100%; + height: 100%; +} + +.inpainting-canvas-spiner { + display: flex; + align-items: center; + width: 100%; + height: 100%; +} + +.inpainting-canvas-container { + display: flex; + position: relative; + height: 100%; + width: 100%; + border-radius: 0.5rem; +} + +.inpainting-canvas-wrapper { + position: relative; +} + +.inpainting-canvas-stage { + outline: none; + border-radius: 0.5rem; + box-shadow: 0px 0px 0px 1px var(--border-color-light); + overflow: hidden; + + canvas { + outline: none; + border-radius: 0.5rem; + } +} + +.inpainting-options-btn { + min-height: 2rem; +} + +.canvas-status-text { + position: absolute; + top: 0; + left: 0; + background-color: var(--background-color); + opacity: 0.65; + display: flex; + flex-direction: column; + font-size: 0.8rem; + padding: 0.25rem; + min-width: 12rem; + border-radius: 0.25rem; + margin: 0.25rem; + pointer-events: none; +} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx index 2ca4139ed0..f06c1ae988 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasDisplayBeta.tsx @@ -1,6 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; -import { Box, Flex } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; @@ -45,28 +45,21 @@ const UnifiedCanvasDisplayBeta = () => { }, [dispatch]); return ( - +
      - + {doesCanvasNeedScaling ? : } - +
      ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx index 9b9310b197..44deea45c6 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBaseBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasLimitStrokesToBox from './UnifiedCanvasLimitStrokesToBox'; export default function UnifiedCanvasBaseBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx index 1a5e42461b..387495598d 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSettings.tsx @@ -4,7 +4,7 @@ import UnifiedCanvasColorPicker from './UnifiedCanvasColorPicker'; export default function UnifiedCanvasBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx index 0ff57236c2..f38d274189 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasBrushSize.tsx @@ -49,6 +49,7 @@ export default function UnifiedCanvasBrushSize() { onChange={(newSize) => dispatch(setBrushSize(newSize))} sliderNumberInputProps={{ max: 500 }} inputReadOnly={false} + width="100px" isCompact /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index 73db41d0d3..e6957a63d7 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -80,38 +80,38 @@ export default function UnifiedCanvasColorPicker() { trigger="hover" triggerComponent={ } > - + {layer === 'base' && ( dispatch(setBrushColor(newColor))} /> )} {layer === 'mask' && ( dispatch(setMaskColor(newColor))} /> )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx index 71f41496ed..9e24e0acfb 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMaskBrushSettings.tsx @@ -6,7 +6,7 @@ import UnifiedCanvasPreserveMask from './UnifiedCanvasPreserveMask'; export default function UnifiedCanvasMaskBrushSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx index 8881c93bb1..2c5a8277db 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasMoveSettings.tsx @@ -5,7 +5,7 @@ import UnifiedCanvasSnapToGrid from './UnifiedCanvasSnapToGrid'; export default function UnifiedCanvasMoveSettings() { return ( - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx index 4dc3778b71..09c6f38812 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasSettings.tsx @@ -68,7 +68,7 @@ const UnifiedCanvasSettings = () => { /> } > - + + {layer == 'base' && ['brush', 'eraser', 'colorPicker'].includes(tool) && ( )} diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx index 4b73d28749..6c537d8930 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasMoveTool.tsx @@ -32,7 +32,7 @@ export default function UnifiedCanvasMoveTool() { aria-label={`${t('unifiedCanvas.move')} (V)`} tooltip={`${t('unifiedCanvas.move')} (V)`} icon={} - isChecked={tool === 'move' || isStaging} + data-selected={tool === 'move' || isStaging} onClick={handleSelectMoveTool} /> ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx index 5880aa037b..93a67ad574 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasProcessingButtons.tsx @@ -25,7 +25,7 @@ export default function UnifiedCanvasProcessingButtons() { }; return ( - + } onClick={handleResetCanvas} + style={{ backgroundColor: 'var(--btn-delete-image)' }} isDisabled={isStaging} - colorScheme="error" /> ); } diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx index 82b48fe435..0b941dd706 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbar/UnifiedCanvasToolSelect.tsx @@ -113,13 +113,13 @@ const UnifiedCanvasToolSelect = () => { const handleEraseBoundingBox = () => dispatch(addEraseRect()); return ( - + } - isChecked={tool === 'brush' && !isStaging} + data-selected={tool === 'brush' && !isStaging} onClick={handleSelectBrushTool} isDisabled={isStaging} /> @@ -127,7 +127,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.eraser')} (E)`} tooltip={`${t('unifiedCanvas.eraser')} (B)`} icon={} - isChecked={tool === 'eraser' && !isStaging} + data-selected={tool === 'eraser' && !isStaging} isDisabled={isStaging} onClick={handleSelectEraserTool} /> @@ -152,7 +152,7 @@ const UnifiedCanvasToolSelect = () => { aria-label={`${t('unifiedCanvas.colorPicker')} (C)`} tooltip={`${t('unifiedCanvas.colorPicker')} (C)`} icon={} - isChecked={tool === 'colorPicker' && !isStaging} + data-selected={tool === 'colorPicker' && !isStaging} isDisabled={isStaging} onClick={handleSelectColorPickerTool} width="max-content" diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx index cf41020cbb..9860bd12f7 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolbarBeta.tsx @@ -23,30 +23,30 @@ const UnifiedCanvasToolbarBeta = () => { ); return ( - + - + - + - + - + - + diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx index ac7f086bea..37e7e71fdb 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasDisplay.tsx @@ -1,10 +1,9 @@ -import { Box, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; // import IAICanvas from 'features/canvas/components/IAICanvas'; import { useAppDispatch, useAppSelector } from 'app/storeHooks'; import IAICanvas from 'features/canvas/components/IAICanvas'; import IAICanvasResizer from 'features/canvas/components/IAICanvasResizer'; -import IAICanvasToolbar from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; +import IAICanvasOutpaintingControls from 'features/canvas/components/IAICanvasToolbar/IAICanvasToolbar'; import { canvasSelector } from 'features/canvas/store/canvasSelectors'; import { setDoesCanvasNeedScaling } from 'features/canvas/store/canvasSlice'; import { debounce, isEqual } from 'lodash'; @@ -44,39 +43,16 @@ const UnifiedCanvasDisplay = () => { }, [dispatch]); return ( - - - - - {doesCanvasNeedScaling ? : } - - - +
      +
      +
      + +
      + {doesCanvasNeedScaling ? : } +
      +
      +
      +
      ); }; diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx index 97ba3f23ec..392648075e 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasPanel.tsx @@ -10,7 +10,7 @@ import SymmetryToggle from 'features/parameters/components/AdvancedParameters/Ou import SeedSettings from 'features/parameters/components/AdvancedParameters/Seed/SeedSettings'; import GenerateVariationsToggle from 'features/parameters/components/AdvancedParameters/Variations/GenerateVariations'; import VariationsSettings from 'features/parameters/components/AdvancedParameters/Variations/VariationsSettings'; -import MainSettings from 'features/parameters/components/MainParameters/MainSettings'; +import MainSettings from 'features/parameters/components/MainParameters/MainParameters'; import ParametersAccordion from 'features/parameters/components/ParametersAccordion'; import ProcessButtons from 'features/parameters/components/ProcessButtons/ProcessButtons'; import NegativePromptInput from 'features/parameters/components/PromptInput/NegativePromptInput'; @@ -22,16 +22,6 @@ export default function UnifiedCanvasPanel() { const { t } = useTranslation(); const unifiedCanvasAccordions = { - general: { - header: `${t('parameters.general')}`, - feature: undefined, - content: , - }, - unifiedCanvasImg2Img: { - header: `${t('parameters.imageToImage')}`, - feature: undefined, - content: , - }, seed: { header: `${t('parameters.seed')}`, feature: Feature.SEED, @@ -65,14 +55,28 @@ export default function UnifiedCanvasPanel() { }, }; + const unifiedCanvasImg2ImgAccordion = { + unifiedCanvasImg2Img: { + header: `${t('parameters.imageToImage')}`, + feature: undefined, + content: ( + + ), + }, + }; + return ( - + - {/* */} + + ); diff --git a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx index b35504a2ac..49db741541 100644 --- a/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx +++ b/invokeai/frontend/web/src/features/ui/components/UnifiedCanvas/UnifiedCanvasWorkarea.tsx @@ -10,7 +10,10 @@ export default function UnifiedCanvasWorkarea() { (state: RootState) => state.ui.shouldUseCanvasBetaLayout ); return ( - }> + } + styleClass="inpainting-workarea-overrides" + > {shouldUseCanvasBetaLayout ? ( ) : ( diff --git a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts index d9abae23d8..3bbb6c206f 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiSlice.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiSlice.ts @@ -10,6 +10,7 @@ const initialtabsState: UIState = { shouldHoldParametersPanelOpen: false, shouldPinParametersPanel: true, shouldShowParametersPanel: true, + shouldShowDualDisplay: true, shouldShowImageDetails: false, shouldUseCanvasBetaLayout: false, shouldShowExistingModelsInSearch: false, @@ -51,6 +52,9 @@ export const uiSlice = createSlice({ ) => { state.shouldHoldParametersPanelOpen = action.payload; }, + setShouldShowDualDisplay: (state, action: PayloadAction) => { + state.shouldShowDualDisplay = action.payload; + }, setShouldShowImageDetails: (state, action: PayloadAction) => { state.shouldShowImageDetails = action.payload; }, @@ -79,6 +83,7 @@ export const { setShouldHoldParametersPanelOpen, setShouldPinParametersPanel, setShouldShowParametersPanel, + setShouldShowDualDisplay, setShouldShowImageDetails, setShouldUseCanvasBetaLayout, setShouldShowExistingModelsInSearch, diff --git a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts index 5885bc3ed7..cd9b3817a1 100644 --- a/invokeai/frontend/web/src/features/ui/store/uiTypes.ts +++ b/invokeai/frontend/web/src/features/ui/store/uiTypes.ts @@ -7,6 +7,7 @@ export interface UIState { shouldHoldParametersPanelOpen: boolean; shouldPinParametersPanel: boolean; shouldShowParametersPanel: boolean; + shouldShowDualDisplay: boolean; shouldShowImageDetails: boolean; shouldUseCanvasBetaLayout: boolean; shouldShowExistingModelsInSearch: boolean; diff --git a/invokeai/frontend/web/src/i18.d.ts b/invokeai/frontend/web/src/i18.d.ts index 90cee53385..61878384e6 100644 --- a/invokeai/frontend/web/src/i18.d.ts +++ b/invokeai/frontend/web/src/i18.d.ts @@ -1,16 +1,11 @@ import 'i18next'; -import en from '../public/locales/en.json'; - declare module 'i18next' { // Extend CustomTypeOptions interface CustomTypeOptions { // Setting Default Namespace As English defaultNS: 'en'; // Custom Types For Resources - resources: { - en: typeof en; - }; // Never Return Null returnNull: false; } diff --git a/invokeai/frontend/web/src/main.tsx b/invokeai/frontend/web/src/main.tsx index edbca0c368..09b99d37f6 100644 --- a/invokeai/frontend/web/src/main.tsx +++ b/invokeai/frontend/web/src/main.tsx @@ -1,36 +1,38 @@ -import React, { lazy } from 'react'; +import { ChakraProvider } from '@chakra-ui/react'; +import createCache from '@emotion/cache'; +import { CacheProvider } from '@emotion/react'; +import React from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import { store } from './app/store'; import { persistor } from './persistor'; -import '@fontsource/inter/100.css'; -import '@fontsource/inter/200.css'; -import '@fontsource/inter/300.css'; -import '@fontsource/inter/400.css'; -import '@fontsource/inter/500.css'; -import '@fontsource/inter/600.css'; -import '@fontsource/inter/700.css'; -import '@fontsource/inter/800.css'; -import '@fontsource/inter/900.css'; +import App from './app/App'; import Loading from './Loading'; +export const emotionCache = createCache({ + key: 'invokeai-style-cache', + prepend: true, +}); + +// Custom Styling +import './styles/index.scss'; + // Localization import './i18n'; -const App = lazy(() => import('./app/App')); -const ThemeLocaleProvider = lazy(() => import('./app/ThemeLocaleProvider')); - ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } persistor={persistor}> - }> - - - - + + + }> + + + + diff --git a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss index ee3795eae5..93772d4ef8 100644 --- a/invokeai/frontend/web/src/styles/Mixins/Buttons.scss +++ b/invokeai/frontend/web/src/styles/Mixins/Buttons.scss @@ -5,36 +5,36 @@ $btn-height: 100%, $icon-size: 20px ) { - // min-width: $btn-width; - // min-height: $btn-height; - // background-color: $btn-color; + min-width: $btn-width; + min-height: $btn-height; + background-color: $btn-color !important; - // &:hover { - // background-color: $btn-color-hover; - // } + &:hover { + background-color: $btn-color-hover; + } - // &:disabled { - // background-color: var(--btn-base-color); - // &:hover { - // background-color: var(--btn-base-color); - // } - // } + &:disabled { + background-color: var(--btn-base-color); + &:hover { + background-color: var(--btn-base-color); + } + } - // svg { - // width: $icon-size; - // height: $icon-size; - // color: var(--btn-svg-color); - // } + svg { + width: $icon-size; + height: $icon-size; + color: var(--btn-svg-color); + } } @mixin BaseButton { - // background-color: var(--btn-base-color); - // &:hover { - // background-color: var(--btn-base-color-hover); - // } - // &:disabled { - // &:hover { - // background-color: var(--btn-base-color); - // } - // } + background-color: var(--btn-base-color); + &:hover { + background-color: var(--btn-base-color-hover); + } + &:disabled { + &:hover { + background-color: var(--btn-base-color); + } + } } diff --git a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss index 7f592ffe7c..0cf98567be 100644 --- a/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss +++ b/invokeai/frontend/web/src/styles/Mixins/_Responsive.scss @@ -1,159 +1,159 @@ -// @media (max-width: 600px) { -// #root { -// .app-content { -// padding: 5px; -// .site-header { -// position: fixed; -// display: flex; -// height: 100px; -// z-index: 1; -// .site-header-left-side { -// position: absolute; -// display: flex; -// min-width: 145px; -// float: left; -// padding-left: 0; -// } -// .site-header-right-side { -// display: grid; -// grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; -// grid-template-rows: 25px 25px 25px; -// grid-template-areas: -// 'logoSpace logoSpace logoSpace sampler sampler sampler' -// 'status status status status status status' -// 'btn1 btn2 btn3 btn4 btn5 btn6'; -// row-gap: 15px; -// .chakra-popover__popper { -// grid-area: logoSpace; -// } -// > :nth-child(1).chakra-text { -// grid-area: status; -// width: 100%; -// display: flex; -// justify-content: center; -// } -// > :nth-child(2) { -// grid-area: sampler; -// display: flex; -// justify-content: center; -// align-items: center; -// select { -// width: 185px; -// margin-top: 10px; -// } -// .chakra-select__icon-wrapper { -// right: 10px; -// svg { -// margin-top: 10px; -// } -// } -// } -// > :nth-child(3) { -// grid-area: btn1; -// } -// > :nth-child(4) { -// grid-area: btn2; -// } -// > :nth-child(6) { -// grid-area: btn3; -// } -// > :nth-child(7) { -// grid-area: btn4; -// } -// > :nth-child(8) { -// grid-area: btn5; -// } -// > :nth-child(9) { -// grid-area: btn6; -// } -// } -// } -// .app-tabs { -// position: fixed; -// display: flex; -// flex-direction: column; -// row-gap: 15px; -// max-width: 100%; -// overflow: hidden; -// margin-top: 120px; -// .app-tabs-list { -// display: flex; -// justify-content: space-between; -// } -// .app-tabs-panels { -// overflow: hidden; -// overflow-y: scroll; -// .workarea-main { -// display: grid; -// grid-template-areas: -// 'workarea' -// 'options' -// 'gallery'; -// row-gap: 15px; -// .parameters-panel-wrapper { -// grid-area: options; -// width: 100%; -// max-width: 100%; -// height: inherit; -// overflow: inherit; -// padding: 0 10px; -// .main-settings-row { -// max-width: 100%; -// } -// .advanced-parameters-item { -// max-width: 100%; -// } -// } -// .workarea-children-wrapper { -// grid-area: workarea; -// .workarea-split-view { -// display: flex; -// flex-direction: column; -// } -// .current-image-options { -// column-gap: 3px; -// } -// .text-to-image-area { -// padding: 0; -// } -// .current-image-preview { -// height: 430px; -// } +@media (max-width: 600px) { + #root { + .app-content { + padding: 5px; + .site-header { + position: fixed; + display: flex; + height: 100px; + z-index: 1; + .site-header-left-side { + position: absolute; + display: flex; + min-width: 145px; + float: left; + padding-left: 0; + } + .site-header-right-side { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; + grid-template-rows: 25px 25px 25px; + grid-template-areas: + 'logoSpace logoSpace logoSpace sampler sampler sampler' + 'status status status status status status' + 'btn1 btn2 btn3 btn4 btn5 btn6'; + row-gap: 15px; + .chakra-popover__popper { + grid-area: logoSpace; + } + > :nth-child(1).chakra-text { + grid-area: status; + width: 100%; + display: flex; + justify-content: center; + } + > :nth-child(2) { + grid-area: sampler; + display: flex; + justify-content: center; + align-items: center; + select { + width: 185px; + margin-top: 10px; + } + .chakra-select__icon-wrapper { + right: 10px; + svg { + margin-top: 10px; + } + } + } + > :nth-child(3) { + grid-area: btn1; + } + > :nth-child(4) { + grid-area: btn2; + } + > :nth-child(6) { + grid-area: btn3; + } + > :nth-child(7) { + grid-area: btn4; + } + > :nth-child(8) { + grid-area: btn5; + } + > :nth-child(9) { + grid-area: btn6; + } + } + } + .app-tabs { + position: fixed; + display: flex; + flex-direction: column; + row-gap: 15px; + max-width: 100%; + overflow: hidden; + margin-top: 120px; + .app-tabs-list { + display: flex; + justify-content: space-between; + } + .app-tabs-panels { + overflow: hidden; + overflow-y: scroll; + .workarea-main { + display: grid; + grid-template-areas: + 'workarea' + 'options' + 'gallery'; + row-gap: 15px; + .parameters-panel-wrapper { + grid-area: options; + width: 100%; + max-width: 100%; + height: inherit; + overflow: inherit; + padding: 0 10px; + .main-settings-row { + max-width: 100%; + } + .advanced-parameters-item { + max-width: 100%; + } + } + .workarea-children-wrapper { + grid-area: workarea; + .workarea-split-view { + display: flex; + flex-direction: column; + } + .current-image-options { + column-gap: 3px; + } + .text-to-image-area { + padding: 0; + } + .current-image-preview { + height: 430px; + } -// //image 2 image -// .image-upload-button { -// row-gap: 10px; -// padding: 5px; -// svg { -// width: 2rem; -// height: 2rem; -// margin-top: 10px; -// } -// } + //image 2 image + .image-upload-button { + row-gap: 10px; + padding: 5px; + svg { + width: 2rem; + height: 2rem; + margin-top: 10px; + } + } -// //Cavas Painting -// .inpainting-settings { -// display: flex; -// flex-wrap: wrap; -// row-gap: 10px; -// } -// .inpainting-canvas-area { -// .konvajs-content { -// height: 400px !important; -// } -// } -// } -// .image-gallery-wrapper { -// grid-area: gallery; -// min-height: 400px; -// .image-gallery-popup { -// width: 100% !important; -// max-width: 100% !important; -// } -// } -// } -// } -// } -// } -// } -// } + //Cavas Painting + .inpainting-settings { + display: flex; + flex-wrap: wrap; + row-gap: 10px; + } + .inpainting-canvas-area { + .konvajs-content { + height: 400px !important; + } + } + } + .image-gallery-wrapper { + grid-area: gallery; + min-height: 400px; + .image-gallery-popup { + width: 100% !important; + max-width: 100% !important; + } + } + } + } + } + } + } +} diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss index 88d2859cb3..13c8a507c1 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Dark.scss @@ -1,4 +1,4 @@ -[data-theme='asdf'] { +[data-theme='dark'] { // General Colors --white: rgb(255, 255, 255); diff --git a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss index 67efb7e3fa..4c4f93dfbf 100644 --- a/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss +++ b/invokeai/frontend/web/src/styles/Themes/_Colors_Light.scss @@ -1,138 +1,138 @@ -// [data-theme='light'] { -// // General Colors -// --white: rgb(255, 255, 255); +[data-theme='light'] { + // General Colors + --white: rgb(255, 255, 255); -// // Accent Colors -// --accent-color-dim: rgb(186, 146, 0); -// --accent-color: rgb(235, 185, 5); -// --accent-color-bright: rgb(255, 200, 0); -// --accent-color-hover: var(--accent-color-bright); + // Accent Colors + --accent-color-dim: rgb(186, 146, 0); + --accent-color: rgb(235, 185, 5); + --accent-color-bright: rgb(255, 200, 0); + --accent-color-hover: var(--accent-color-bright); -// // App Colors -// --root-bg-color: rgb(255, 255, 255); -// --background-color: rgb(220, 222, 224); -// --background-color-light: rgb(250, 252, 254); -// --background-color-secondary: rgb(208, 210, 212); + // App Colors + --root-bg-color: rgb(255, 255, 255); + --background-color: rgb(220, 222, 224); + --background-color-light: rgb(250, 252, 254); + --background-color-secondary: rgb(208, 210, 212); -// --text-color: rgb(0, 0, 0); -// --text-color-secondary: rgb(40, 40, 40); -// --subtext-color: rgb(24, 24, 34); -// --subtext-color-bright: rgb(142, 144, 146); + --text-color: rgb(0, 0, 0); + --text-color-secondary: rgb(40, 40, 40); + --subtext-color: rgb(24, 24, 34); + --subtext-color-bright: rgb(142, 144, 146); -// --border-color: rgb(200, 200, 200); -// --border-color-light: rgb(147, 147, 147); + --border-color: rgb(200, 200, 200); + --border-color-light: rgb(147, 147, 147); -// --svg-color: rgb(50, 50, 50); + --svg-color: rgb(50, 50, 50); -// --invalid: rgb(255, 75, 75); -// --invalid-secondary: rgb(120, 5, 5); + --invalid: rgb(255, 75, 75); + --invalid-secondary: rgb(120, 5, 5); -// --destructive-color: rgb(237, 51, 51); -// --destructive-color-hover: rgb(255, 55, 55); + --destructive-color: rgb(237, 51, 51); + --destructive-color-hover: rgb(255, 55, 55); -// --warning-color: rgb(224, 142, 42); -// --warning-color-hover: rgb(255, 167, 60); + --warning-color: rgb(224, 142, 42); + --warning-color-hover: rgb(255, 167, 60); -// // Error status colors -// --border-color-invalid: rgb(255, 80, 50); -// --box-shadow-color-invalid: none; + // Error status colors + --border-color-invalid: rgb(255, 80, 50); + --box-shadow-color-invalid: none; -// // Tabs -// --tab-color: rgb(202, 204, 206); -// --tab-hover-color: rgb(196, 198, 200); -// --tab-panel-bg: rgb(206, 208, 210); -// --tab-list-bg: rgb(235, 185, 5); -// --tab-list-text: rgb(0, 0, 0); -// --tab-list-text-inactive: rgb(106, 108, 110); + // Tabs + --tab-color: rgb(202, 204, 206); + --tab-hover-color: rgb(196, 198, 200); + --tab-panel-bg: rgb(206, 208, 210); + --tab-list-bg: rgb(235, 185, 5); + --tab-list-text: rgb(0, 0, 0); + --tab-list-text-inactive: rgb(106, 108, 110); -// // Button Colors -// --btn-base-color: rgb(184, 186, 188); -// --btn-base-color-hover: rgb(230, 232, 234); + // Button Colors + --btn-base-color: rgb(184, 186, 188); + --btn-base-color-hover: rgb(230, 232, 234); -// --btn-load-more: rgb(202, 204, 206); -// --btn-load-more-hover: rgb(178, 180, 182); -// --btn-svg-color: rgb(0, 0, 0); + --btn-load-more: rgb(202, 204, 206); + --btn-load-more-hover: rgb(178, 180, 182); + --btn-svg-color: rgb(0, 0, 0); -// --btn-delete-image: rgb(213, 49, 49); + --btn-delete-image: rgb(213, 49, 49); -// // IAI Button Colors -// --btn-checkbox-border-hover: rgb(176, 178, 182); -// // Progress Bar Color -// --progress-bar-color: rgb(235, 185, 5); + // IAI Button Colors + --btn-checkbox-border-hover: rgb(176, 178, 182); + // Progress Bar Color + --progress-bar-color: rgb(235, 185, 5); -// // Prompt Box Colors -// --prompt-bg-color: rgb(225, 227, 229); -// // Switch -// --switch-bg-color: rgb(178, 180, 182); -// --switch-bg-active-color: rgb(235, 185, 5); + // Prompt Box Colors + --prompt-bg-color: rgb(225, 227, 229); + // Switch + --switch-bg-color: rgb(178, 180, 182); + --switch-bg-active-color: rgb(235, 185, 5); -// // Slider -// --slider-color: var(--accent-color); -// --slider-mark-color: rgb(0, 0, 0); + // Slider + --slider-color: var(--accent-color); + --slider-mark-color: rgb(0, 0, 0); -// // Resizable -// --resizeable-handle-border-color: rgb(160, 162, 164); + // Resizable + --resizeable-handle-border-color: rgb(160, 162, 164); -// // Metadata Viewer -// --metadata-bg-color: rgba(230, 230, 230, 0.9); -// --metadata-json-bg-color: rgba(0, 0, 0, 0.1); + // Metadata Viewer + --metadata-bg-color: rgba(230, 230, 230, 0.9); + --metadata-json-bg-color: rgba(0, 0, 0, 0.1); -// // Status Message -// --status-good-color: rgb(21, 126, 0); -// --status-good-glow: var(--background-color); -// --status-working-color: rgb(235, 141, 0); -// --status-working-glow: var(--background-color); -// --status-bad-color: rgb(202, 0, 0); -// --status-bad-glow: var(--background-color); -// --notice-color: rgb(255, 71, 90); + // Status Message + --status-good-color: rgb(21, 126, 0); + --status-good-glow: var(--background-color); + --status-working-color: rgb(235, 141, 0); + --status-working-glow: var(--background-color); + --status-bad-color: rgb(202, 0, 0); + --status-bad-glow: var(--background-color); + --notice-color: rgb(255, 71, 90); -// // Settings Modal -// --settings-modal-bg: rgb(202, 204, 206); + // Settings Modal + --settings-modal-bg: rgb(202, 204, 206); -// // Input -// --input-checkbox-bg: rgb(167, 167, 171); -// --input-checkbox-checked-bg: rgb(235, 185, 5); -// --input-checkbox-checked-tick: rgb(0, 0, 0); -// --input-border-color: rgb(0, 0, 0); -// --input-box-shadow-color: none; + // Input + --input-checkbox-bg: rgb(167, 167, 171); + --input-checkbox-checked-bg: rgb(235, 185, 5); + --input-checkbox-checked-tick: rgb(0, 0, 0); + --input-border-color: rgb(0, 0, 0); + --input-box-shadow-color: none; -// // Console -// --error-level-info: rgb(42, 42, 42); -// --error-level-warning: rgb(173, 121, 0); -// --error-level-error: rgb(145, 14, 0); -// --console-bg-color: rgb(220, 224, 230); -// --console-icon-button-bg-color: var(--switch-bg-color); -// --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); + // Console + --error-level-info: rgb(42, 42, 42); + --error-level-warning: rgb(173, 121, 0); + --error-level-error: rgb(145, 14, 0); + --console-bg-color: rgb(220, 224, 230); + --console-icon-button-bg-color: var(--switch-bg-color); + --console-icon-button-bg-color-hover: var(--resizeable-handle-border-color); -// // Img2Img -// --img2img-img-bg-color: rgb(180, 182, 184); + // Img2Img + --img2img-img-bg-color: rgb(180, 182, 184); -// // Gallery + // Gallery -// // Context Menus -// --context-menu-bg-color: var(--background-color); -// --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), -// 0px 10px 20px -15px rgba(22, 23, 24, 0.2); -// --context-menu-bg-color-hover: var(--background-color-secondary); + // Context Menus + --context-menu-bg-color: var(--background-color); + --context-menu-box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), + 0px 10px 20px -15px rgba(22, 23, 24, 0.2); + --context-menu-bg-color-hover: var(--background-color-secondary); -// // Shadows -// --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); + // Shadows + --floating-button-drop-shadow-color: rgba(0, 0, 0, 0.7); -// // Canvas -// --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); -// --inpainting-alerts-icon-color: rgb(0, 0, 0); -// --inpainting-alerts-bg-active: rgb(255, 200, 0); -// --inpainting-alerts-icon-active: rgb(0, 0, 0); -// --inpainting-alerts-bg-alert: var(--invalid); -// --inpainting-alerts-icon-alert: rgb(0, 0, 0); + // Canvas + --inpainting-alerts-bg: rgba(220, 222, 224, 0.75); + --inpainting-alerts-icon-color: rgb(0, 0, 0); + --inpainting-alerts-bg-active: rgb(255, 200, 0); + --inpainting-alerts-icon-active: rgb(0, 0, 0); + --inpainting-alerts-bg-alert: var(--invalid); + --inpainting-alerts-icon-alert: rgb(0, 0, 0); -// // Checkerboard -// --checkboard-dots-color: rgb(160, 160, 172); + // Checkerboard + --checkboard-dots-color: rgb(160, 160, 172); -// // Scrollbar -// --scrollbar-color: rgb(180, 180, 184); -// --scrollbar-color-hover: rgb(150, 150, 154); + // Scrollbar + --scrollbar-color: rgb(180, 180, 184); + --scrollbar-color-hover: rgb(150, 150, 154); -// // SubHook -// --subhook-color: rgb(0, 0, 0); -// } + // SubHook + --subhook-color: rgb(0, 0, 0); +} diff --git a/invokeai/frontend/web/src/styles/_Animations.scss b/invokeai/frontend/web/src/styles/_Animations.scss new file mode 100644 index 0000000000..48fbbc8425 --- /dev/null +++ b/invokeai/frontend/web/src/styles/_Animations.scss @@ -0,0 +1,20 @@ +@keyframes slideOut { + from { + transform: translateX(10rem); + } + to { + transform: translateX(0); + } +} + +@keyframes pulse { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.1); + } + 100% { + transform: scale(1); + } +} diff --git a/invokeai/frontend/web/src/styles/_Fonts.scss b/invokeai/frontend/web/src/styles/_Fonts.scss new file mode 100644 index 0000000000..fea170026b --- /dev/null +++ b/invokeai/frontend/web/src/styles/_Fonts.scss @@ -0,0 +1,15 @@ +@font-face { + font-family: 'Inter'; + src: url(../assets/fonts/Inter/Inter.ttf); + font-display: swap; + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Inter'; + src: url(../assets/fonts/Inter/Inter-Bold.ttf); + font-display: swap; + font-weight: 600; + font-style: normal; +} diff --git a/invokeai/frontend/web/src/styles/_Misc.scss b/invokeai/frontend/web/src/styles/_Misc.scss new file mode 100644 index 0000000000..47dec4c061 --- /dev/null +++ b/invokeai/frontend/web/src/styles/_Misc.scss @@ -0,0 +1,45 @@ +// .checkerboard { +// background-position: 0px 0px, 10px 10px; +// // background-size: 20px 20px; +// // background-image: linear-gradient( +// // 45deg, +// // #eee 25%, +// // transparent 25%, +// // transparent 75%, +// // #eee 75%, +// // #eee 100% +// // ), +// // linear-gradient(45deg, #eee 25%, white 25%, white 75%, #eee 75%, #eee 100%); +// background: radial-gradient(var(--checkboard-dots-color) 3px, transparent 1px), +// var(--background-color-secondary); +// background-size: 64px 64px; +// } + +* { + scrollbar-width: thick; /* none | auto */ + scrollbar-color: var(--scrollbar-color) transparent; +} + +*::-webkit-scrollbar { + width: 8px; // Vertical Scrollbar Width + height: 8px; // Horizontal Scrollbar Height +} + +*::-webkit-scrollbar-track { + background: transparent; +} + +*::-webkit-scrollbar-thumb { + background: var(--scrollbar-color); + border-radius: 8px; + border: calc(8px / 4) solid var(--scrollbar-color); +} + +*::-webkit-scrollbar-thumb:hover { + background: var(--scrollbar-color-hover); + border: calc(8px / 4) solid var(--scrollbar-color-hover); +} + +::-webkit-scrollbar-button { + background: transparent; +} diff --git a/invokeai/frontend/web/src/styles/index.scss b/invokeai/frontend/web/src/styles/index.scss new file mode 100644 index 0000000000..afafc17181 --- /dev/null +++ b/invokeai/frontend/web/src/styles/index.scss @@ -0,0 +1,93 @@ +// General Imports +@use 'Fonts'; +@use 'Animations'; +@use 'Misc'; + +// Themes +@use './Themes/Colors_Dark'; +@use './Themes/Colors_Light'; +@use './Themes/Colors_Green'; + +// Component Styles + +// app +@use '../app/App.scss'; + +// system +@use '../features/system/components/SiteHeader.scss'; +@use '../features/system/components/StatusIndicator.scss'; +@use '../features/system/components/SettingsModal/SettingsModal.scss'; +@use '../features/system/components/ModelManager/AddModel.scss'; +@use '../features/system/components/HotkeysModal/HotkeysModal.scss'; +@use '../features/system/components/Console.scss'; +@use '../features/system/components/ProgressBar.scss'; + +// parameters +@use '../features/parameters/components/PromptInput/PromptInput.scss'; +@use '../features/parameters/components/ProcessButtons/ProcessButtons.scss'; +@use '../features/parameters/components/MainParameters/MainParameters.scss'; +@use '../features/parameters/components/AccordionItems/AdvancedSettings.scss'; +@use '../features/parameters/components/AdvancedParameters/Canvas/BoundingBox/BoundingBoxSettings.scss'; + +// gallery +@use '../features/gallery/components/CurrentImageDisplay.scss'; +@use '../features/gallery/components/CurrentImageButtons.scss'; +@use '../features/gallery/components/ImageGallery.scss'; +@use '../features/gallery/components/HoverableImage.scss'; +@use '../features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.scss'; + +// Lightbox +@use '../features/lightbox/components/Lightbox.scss'; + +// Tabs +@use '../features/ui/components/InvokeTabs.scss'; +@use '../features/ui/components/InvokeWorkarea.scss'; +@use '../features/ui/components/InvokeParametersPanel.scss'; +@use '../features/ui/components/TextToImage/TextToImage.scss'; +@use '../features/ui/components/ImageToImage/ImageToImage.scss'; +@use '../features/ui/components/FloatingButton.scss'; +@use '../features/ui/components/UnifiedCanvas/CanvasWorkarea.scss'; + +// Component Shared +@use '../common/components/IAINumberInput.scss'; +@use '../common/components/IAIInput.scss'; +@use '../common/components/IAIIconButton.scss'; +@use '../common/components/IAIButton.scss'; +@use '../common/components/IAISwitch.scss'; +@use '../common/components/IAISelect.scss'; +@use '../common/components/IAISlider.scss'; +@use '../common/components/IAICheckbox.scss'; +@use '../common/components/IAIPopover.scss'; +@use '../common/components/IAIColorPicker.scss'; +@use '../common/components/ImageUploader.scss'; +@use '../common/components/WorkInProgress/WorkInProgress.scss'; +@use '../common/components/GuidePopover.scss'; + +// Component Shared - Radix UI +// @use 'common/components/radix-ui/IAISlider.scss'; +// @use 'common/components/radix-ui/IAITooltip.scss'; + +// Shared Styles +@use './Mixins/' as *; +@use '../features/system/components/Modal.scss'; + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html, +body { + @include HideScrollbar; + background-color: var(--root-bg-color); + overflow: hidden; +} + +#root { + background-color: var(--root-bg-color); + color: var(--text-color); + font-family: 'Inter', Arial, Helvetica, sans-serif; +} diff --git a/invokeai/frontend/web/src/theme/colors/greenTea.ts b/invokeai/frontend/web/src/theme/colors/greenTea.ts deleted file mode 100644 index 6da7fa3b82..0000000000 --- a/invokeai/frontend/web/src/theme/colors/greenTea.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { generateColorPalette } from '../util/generateColorPalette'; - -export const greenTeaThemeColors = { - base: generateColorPalette(223, 10), - accent: generateColorPalette(155, 80), - working: generateColorPalette(47, 68), - warning: generateColorPalette(28, 75), - ok: generateColorPalette(122, 49), - error: generateColorPalette(0, 50), -}; diff --git a/invokeai/frontend/web/src/theme/colors/invokeAI.ts b/invokeai/frontend/web/src/theme/colors/invokeAI.ts deleted file mode 100644 index cf5b4221b7..0000000000 --- a/invokeai/frontend/web/src/theme/colors/invokeAI.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { generateColorPalette } from 'theme/util/generateColorPalette'; - -export const invokeAIThemeColors = { - base: generateColorPalette(225, 15), - accent: generateColorPalette(250, 50), - working: generateColorPalette(47, 67), - warning: generateColorPalette(28, 75), - ok: generateColorPalette(113, 70), - error: generateColorPalette(0, 76), -}; diff --git a/invokeai/frontend/web/src/theme/colors/lightTheme.ts b/invokeai/frontend/web/src/theme/colors/lightTheme.ts deleted file mode 100644 index 3a4d3b8747..0000000000 --- a/invokeai/frontend/web/src/theme/colors/lightTheme.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { generateColorPalette } from '../util/generateColorPalette'; - -export const lightThemeColors = { - base: generateColorPalette(223, 10, true), - accent: generateColorPalette(40, 80, true), - working: generateColorPalette(47, 68, true), - warning: generateColorPalette(28, 75, true), - ok: generateColorPalette(122, 49, true), - error: generateColorPalette(0, 50, true), -}; diff --git a/invokeai/frontend/web/src/theme/colors/oceanBlue.ts b/invokeai/frontend/web/src/theme/colors/oceanBlue.ts deleted file mode 100644 index 1f29def485..0000000000 --- a/invokeai/frontend/web/src/theme/colors/oceanBlue.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { generateColorPalette } from '../util/generateColorPalette'; - -export const oceanBlueColors = { - base: generateColorPalette(220, 30), - accent: generateColorPalette(210, 80), - working: generateColorPalette(47, 68), - warning: generateColorPalette(28, 75), - ok: generateColorPalette(122, 49), - error: generateColorPalette(0, 100), -}; diff --git a/invokeai/frontend/web/src/theme/components/accordion.ts b/invokeai/frontend/web/src/theme/components/accordion.ts deleted file mode 100644 index dfea0aad74..0000000000 --- a/invokeai/frontend/web/src/theme/components/accordion.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { accordionAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIContainer = defineStyle({ - border: 'none', - pt: 2, -}); - -const invokeAIButton = defineStyle((props) => { - const { colorScheme: c } = props; - return { - fontWeight: '600', - fontSize: 'sm', - border: 'none', - borderRadius: 'base', - bg: mode(`${c}.250`, `${c}.800`)(props), - color: mode('base.900', 'base.100')(props), - _hover: { - bg: mode(`${c}.300`, `${c}.700`)(props), - }, - _expanded: { - bg: mode(`${c}.250`, `${c}.750`)(props), - borderBottomRadius: 'none', - _hover: { - bg: mode(`${c}.300`, `${c}.700`)(props), - }, - }, - }; -}); - -const invokeAIPanel = defineStyle((props) => { - const { colorScheme: c } = props; - return { - bg: mode(`${c}.200`, `${c}.800`)(props), - borderRadius: 'base', - borderTopRadius: 'none', - p: 4, - }; -}); - -const invokeAIIcon = defineStyle({}); - -const invokeAI = definePartsStyle((props) => ({ - container: invokeAIContainer, - button: invokeAIButton(props), - panel: invokeAIPanel(props), - icon: invokeAIIcon, -})); - -export const accordionTheme = defineMultiStyleConfig({ - variants: { invokeAI }, - defaultProps: { - variant: 'invokeAI', - colorScheme: 'base', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/button.ts b/invokeai/frontend/web/src/theme/components/button.ts deleted file mode 100644 index a79a3d356f..0000000000 --- a/invokeai/frontend/web/src/theme/components/button.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -import { mode } from '@chakra-ui/theme-tools'; - -const invokeAI = defineStyle((props) => { - const { colorScheme: c } = props; - // must specify `_disabled` colors if we override `_hover`, else hover on disabled has no styles - const _disabled = { - bg: mode(`${c}.200`, `${c}.600`)(props), - color: mode(`${c}.700`, `${c}.100`)(props), - svg: { - fill: mode(`${c}.700`, `${c}.100`)(props), - }, - }; - - return { - bg: mode(`${c}.300`, `${c}.700`)(props), - color: mode(`${c}.800`, `${c}.100`)(props), - borderRadius: 'base', - svg: { - fill: mode(`${c}.800`, `${c}.100`)(props), - }, - _disabled, - _hover: { - bg: mode(`${c}.400`, `${c}.650`)(props), - color: mode(`black`, `${c}.50`)(props), - svg: { - fill: mode(`black`, `${c}.50`)(props), - }, - _disabled, - }, - _checked: { - bg: mode('accent.200', 'accent.700')(props), - color: mode('accent.800', 'accent.100')(props), - svg: { - fill: mode('accent.800', 'accent.100')(props), - }, - _disabled, - _hover: { - bg: mode('accent.300', 'accent.600')(props), - color: mode('accent.900', 'accent.50')(props), - svg: { - fill: mode('accent.900', 'accent.50')(props), - }, - _disabled, - }, - }, - }; -}); - -export const buttonTheme = defineStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - colorScheme: 'base', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/checkbox.ts b/invokeai/frontend/web/src/theme/components/checkbox.ts deleted file mode 100644 index 5bdc8a1a66..0000000000 --- a/invokeai/frontend/web/src/theme/components/checkbox.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { checkboxAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIControl = defineStyle((props) => { - const { colorScheme: c } = props; - - return { - _checked: { - bg: mode(`${c}.500`, `${c}.200`)(props), - borderColor: mode(`${c}.500`, `${c}.200`)(props), - color: mode('white', 'base.900')(props), - - _hover: { - bg: mode(`${c}.600`, `${c}.300`)(props), - borderColor: mode(`${c}.600`, `${c}.300`)(props), - }, - - _disabled: { - borderColor: mode('base.200', 'transparent')(props), - bg: mode('base.200', 'whiteAlpha.300')(props), - color: mode('base.500', 'whiteAlpha.500')(props), - }, - }, - - _indeterminate: { - bg: mode(`${c}.500`, `${c}.200`)(props), - borderColor: mode(`${c}.500`, `${c}.200`)(props), - color: mode('white', 'base.900')(props), - }, - - _disabled: { - bg: mode('base.100', 'whiteAlpha.100')(props), - borderColor: mode('base.100', 'transparent')(props), - }, - - _focusVisible: { - boxShadow: 'outline', - }, - - _invalid: { - borderColor: mode('red.500', 'red.300')(props), - }, - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - control: invokeAIControl(props), -})); - -export const checkboxTheme = defineMultiStyleConfig({ - variants: { - invokeAI: invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - colorScheme: 'accent', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/formLabel.ts b/invokeai/frontend/web/src/theme/components/formLabel.ts deleted file mode 100644 index d49fd0a36d..0000000000 --- a/invokeai/frontend/web/src/theme/components/formLabel.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const invokeAI = defineStyle((props) => { - return { - fontSize: 'sm', - marginEnd: 0, - mb: 1, - fontWeight: '400', - transitionProperty: 'common', - transitionDuration: 'normal', - whiteSpace: 'nowrap', - _disabled: { - opacity: 0.4, - }, - color: mode('base.600', 'base.300')(props), - }; -}); - -export const formLabelTheme = defineStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/input.ts b/invokeai/frontend/web/src/theme/components/input.ts deleted file mode 100644 index 167da7ef28..0000000000 --- a/invokeai/frontend/web/src/theme/components/input.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { inputAnatomy as parts } from '@chakra-ui/anatomy'; -import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system'; -import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAI = definePartsStyle((props) => { - return { - field: getInputOutlineStyles(props), - }; -}); - -export const inputTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - size: 'sm', - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/menu.ts b/invokeai/frontend/web/src/theme/components/menu.ts deleted file mode 100644 index 597e989953..0000000000 --- a/invokeai/frontend/web/src/theme/components/menu.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { menuAnatomy } from '@chakra-ui/anatomy'; -import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(menuAnatomy.keys); - -// define the base component styles -const invokeAI = definePartsStyle({ - // define the part you're going to style - button: { - // this will style the MenuButton component - fontWeight: '600', - bg: 'base.500', - color: 'base.200', - _hover: { - bg: 'base.600', - color: 'white', - }, - }, - list: { - zIndex: 9999, - bg: 'base.800', - }, - item: { - // this will style the MenuItem and MenuItemOption components - fontSize: 'sm', - bg: 'base.800', - _hover: { - bg: 'base.750', - }, - _focus: { - bg: 'base.700', - }, - }, -}); - -export const menuTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/modal.ts b/invokeai/frontend/web/src/theme/components/modal.ts deleted file mode 100644 index 9e422c7704..0000000000 --- a/invokeai/frontend/web/src/theme/components/modal.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { modalAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIOverlay = defineStyle({ - bg: 'blackAlpha.600', -}); - -const invokeAIDialogContainer = defineStyle({}); - -const invokeAIDialog = defineStyle((props) => { - return { - bg: mode('base.300', 'base.850')(props), - maxH: '80vh', - }; -}); - -const invokeAIHeader = defineStyle((props) => { - return { - fontWeight: '600', - fontSize: 'lg', - color: mode('base.700', 'base.200')(props), - }; -}); - -const invokeAICloseButton = defineStyle({}); - -const invokeAIBody = defineStyle({ - overflowY: 'scroll', -}); - -const invokeAIFooter = defineStyle({}); - -export const invokeAI = definePartsStyle((props) => ({ - overlay: invokeAIOverlay, - dialogContainer: invokeAIDialogContainer, - dialog: invokeAIDialog(props), - header: invokeAIHeader(props), - closeButton: invokeAICloseButton, - body: invokeAIBody, - footer: invokeAIFooter, -})); - -export const modalTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { variant: 'invokeAI', size: 'lg' }, -}); diff --git a/invokeai/frontend/web/src/theme/components/numberInput.ts b/invokeai/frontend/web/src/theme/components/numberInput.ts deleted file mode 100644 index 9d7e773701..0000000000 --- a/invokeai/frontend/web/src/theme/components/numberInput.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { numberInputAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; -import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIRoot = defineStyle((_props) => { - return { - height: 8, - }; -}); - -const invokeAIField = defineStyle((props) => { - return { - border: 'none', - fontWeight: '600', - height: 'auto', - py: 1, - ps: 2, - pe: 6, - ...getInputOutlineStyles(props), - }; -}); - -const invokeAIStepperGroup = defineStyle((_props) => { - return { - display: 'flex', - }; -}); - -const invokeAIStepper = defineStyle((props) => { - return { - border: 'none', - // expand arrow hitbox - px: 2, - py: 0, - mx: -2, - my: 0, - - svg: { - color: mode('base.600', 'base.300')(props), - width: 2.5, - height: 2.5, - _hover: { - color: mode('base.900', 'base.50')(props), - }, - }, - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - root: invokeAIRoot(props), - field: invokeAIField(props), - stepperGroup: invokeAIStepperGroup(props), - stepper: invokeAIStepper(props), -})); - -export const numberInputTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - size: 'sm', - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/popover.ts b/invokeai/frontend/web/src/theme/components/popover.ts deleted file mode 100644 index d6b5d316ac..0000000000 --- a/invokeai/frontend/web/src/theme/components/popover.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { popoverAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { cssVar } from '@chakra-ui/theme-tools'; -import { mode } from '@chakra-ui/theme-tools'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const $popperBg = cssVar('popper-bg'); -const $arrowBg = cssVar('popper-arrow-bg'); -const $arrowShadowColor = cssVar('popper-arrow-shadow-color'); - -const invokeAIContent = defineStyle((props) => { - return { - [$arrowBg.variable]: `colors.base.800`, - [$popperBg.variable]: `colors.base.800`, - [$arrowShadowColor.variable]: `colors.base.600`, - minW: 'unset', - width: 'unset', - p: 4, - borderWidth: '2px', - borderStyle: 'solid', - borderColor: mode('base.500', 'base.600')(props), - bg: mode('base.200', 'base.800')(props), - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - content: invokeAIContent(props), -})); - -export const popoverTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/progress.ts b/invokeai/frontend/web/src/theme/components/progress.ts deleted file mode 100644 index 4d48830e06..0000000000 --- a/invokeai/frontend/web/src/theme/components/progress.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { progressAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIFilledTrack = defineStyle((props) => ({ - bg: mode('accent.400', 'accent.600')(props), - transition: 'width 0.2s ease-in-out', - _indeterminate: { - bgGradient: `linear(to-r, transparent 0%, ${mode( - 'accent.400', - 'accent.600' - )(props)} 50%, transparent 100%);`, - }, -})); - -const invokeAITrack = defineStyle((props) => { - return { - bg: mode('base.300', 'base.800')(props), - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - filledTrack: invokeAIFilledTrack(props), - track: invokeAITrack(props), -})); - -export const progressTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/scrollbar.ts b/invokeai/frontend/web/src/theme/components/scrollbar.ts deleted file mode 100644 index 5128fb1cb8..0000000000 --- a/invokeai/frontend/web/src/theme/components/scrollbar.ts +++ /dev/null @@ -1,31 +0,0 @@ -export const no_scrollbar = { - '::-webkit-scrollbar': { - display: 'none', - }, - scrollbarWidth: 'none', -}; - -export const scrollbar = { - scrollbarColor: 'accent.600 transparent', - scrollbarWidth: 'thick', - '::-webkit-scrollbar': { - width: '6px', // Vertical Scrollbar Width - height: '6px', // Horizontal Scrollbar Height - }, - '::-webkit-scrollbar-track': { - background: 'transparent', - }, - '::-webkit-scrollbar-thumb': { - background: 'accent.600', - borderRadius: '8px', - borderWidth: '4px', - borderColor: 'accent.600', - }, - '::-webkit-scrollbar-thumb:hover': { - background: 'accent.500', - borderColor: 'accent.500', - }, - '::-webkit-scrollbar-button': { - background: 'transaprent', - }, -}; diff --git a/invokeai/frontend/web/src/theme/components/select.ts b/invokeai/frontend/web/src/theme/components/select.ts deleted file mode 100644 index bbb438b4d0..0000000000 --- a/invokeai/frontend/web/src/theme/components/select.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { selectAnatomy as parts } from '@chakra-ui/anatomy'; -import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; -import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; -import { mode } from '@chakra-ui/theme-tools'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIIcon = defineStyle((props) => { - return { - color: mode('base.600', 'base.300')(props), - }; -}); - -const invokeAIField = defineStyle((props) => ({ - fontWeight: '600', - ...getInputOutlineStyles(props), -})); - -const invokeAI = definePartsStyle((props) => { - return { - field: invokeAIField(props), - icon: invokeAIIcon(props), - }; -}); - -export const selectTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - size: 'sm', - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/slider.ts b/invokeai/frontend/web/src/theme/components/slider.ts deleted file mode 100644 index 1afb188712..0000000000 --- a/invokeai/frontend/web/src/theme/components/slider.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { sliderAnatomy as parts } from '@chakra-ui/anatomy'; -import { createMultiStyleConfigHelpers, defineStyle } from '@chakra-ui/react'; -import { mode } from '@chakra-ui/theme-tools'; - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAITrack = defineStyle((props) => { - return { - bg: mode('base.300', 'base.400')(props), - h: 1.5, - }; -}); - -const invokeAIFilledTrack = defineStyle((props) => { - const { colorScheme: c } = props; - return { - bg: mode(`${c}.400`, `${c}.600`)(props), - h: 1.5, - }; -}); - -const invokeAIThumb = defineStyle((_props) => { - return { - w: 2, - h: 4, - }; -}); - -const invokeAIMark = defineStyle((props) => { - return { - fontSize: 'xs', - fontWeight: '500', - color: mode('base.800', 'base.200')(props), - mt: 2, - insetInlineStart: 'unset', - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - track: invokeAITrack(props), - filledTrack: invokeAIFilledTrack(props), - thumb: invokeAIThumb(props), - mark: invokeAIMark(props), -})); - -export const sliderTheme = defineMultiStyleConfig({ - variants: { invokeAI }, - defaultProps: { - variant: 'invokeAI', - colorScheme: 'accent', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/switch.ts b/invokeai/frontend/web/src/theme/components/switch.ts deleted file mode 100644 index e39b4257b2..0000000000 --- a/invokeai/frontend/web/src/theme/components/switch.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { switchAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAITrack = defineStyle((props) => { - const { colorScheme: c } = props; - - return { - bg: mode(`base.400`, `base.600`)(props), - - _focusVisible: { - boxShadow: 'none', - }, - _checked: { - bg: mode(`${c}.400`, `${c}.600`)(props), - }, - }; -}); - -const invokeAIThumb = defineStyle((props) => { - const { colorScheme: c } = props; - - return { - bg: mode(`${c}.50`, `${c}.50`)(props), - }; -}); - -const invokeAI = definePartsStyle((props) => ({ - container: {}, - track: invokeAITrack(props), - thumb: invokeAIThumb(props), -})); - -export const switchTheme = defineMultiStyleConfig({ - variants: { invokeAI }, - defaultProps: { - size: 'md', - variant: 'invokeAI', - colorScheme: 'accent', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/tabs.ts b/invokeai/frontend/web/src/theme/components/tabs.ts deleted file mode 100644 index 9cd991d8bf..0000000000 --- a/invokeai/frontend/web/src/theme/components/tabs.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { tabsAnatomy as parts } from '@chakra-ui/anatomy'; -import { - createMultiStyleConfigHelpers, - defineStyle, -} from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(parts.keys); - -const invokeAIRoot = defineStyle((_props) => { - return { - display: 'flex', - columnGap: 4, - }; -}); - -const invokeAITab = defineStyle((_props) => ({})); - -const invokeAITablist = defineStyle((props) => ({ - display: 'flex', - flexDirection: 'column', - gap: 1, - color: mode('base.500', 'base.700')(props), - button: { - fontSize: 'sm', - padding: 2, - borderRadius: 'base', - _selected: { - bg: mode('accent.200', 'accent.700')(props), - color: mode('accent.800', 'accent.100')(props), - _hover: { - bg: mode('accent.300', 'accent.600')(props), - color: mode('accent.900', 'accent.50')(props), - }, - }, - _hover: { - bg: mode('base.300', 'base.600')(props), - color: mode('base.900', 'base.50')(props), - }, - }, -})); - -const invokeAITabpanel = defineStyle((_props) => ({ - padding: 0, - height: '100%', -})); - -const invokeAI = definePartsStyle((props) => ({ - root: invokeAIRoot(props), - tab: invokeAITab(props), - tablist: invokeAITablist(props), - tabpanel: invokeAITabpanel(props), -})); - -export const tabsTheme = defineMultiStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/text.ts b/invokeai/frontend/web/src/theme/components/text.ts deleted file mode 100644 index a485289366..0000000000 --- a/invokeai/frontend/web/src/theme/components/text.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -import { mode } from '@chakra-ui/theme-tools'; - -const subtext = defineStyle((props) => ({ - color: mode('base.700', 'base.400')(props), -})); - -export const textTheme = defineStyleConfig({ - variants: { - subtext, - }, -}); diff --git a/invokeai/frontend/web/src/theme/components/textarea.ts b/invokeai/frontend/web/src/theme/components/textarea.ts deleted file mode 100644 index 85e6e37d3f..0000000000 --- a/invokeai/frontend/web/src/theme/components/textarea.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -import { getInputOutlineStyles } from '../util/getInputOutlineStyles'; - -const invokeAI = defineStyle((props) => getInputOutlineStyles(props)); - -export const textareaTheme = defineStyleConfig({ - variants: { - invokeAI, - }, - defaultProps: { - size: 'md', - variant: 'invokeAI', - }, -}); diff --git a/invokeai/frontend/web/src/theme/theme.ts b/invokeai/frontend/web/src/theme/theme.ts deleted file mode 100644 index 40df156cdb..0000000000 --- a/invokeai/frontend/web/src/theme/theme.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { ThemeOverride } from '@chakra-ui/react'; -import type { StyleFunctionProps } from '@chakra-ui/styled-system'; -import { mode } from '@chakra-ui/theme-tools'; -import { invokeAIThemeColors } from './colors/invokeAI'; -import { accordionTheme } from './components/accordion'; -import { buttonTheme } from './components/button'; -import { checkboxTheme } from './components/checkbox'; -import { formLabelTheme } from './components/formLabel'; -import { inputTheme } from './components/input'; -import { menuTheme } from './components/menu'; -import { modalTheme } from './components/modal'; -import { numberInputTheme } from './components/numberInput'; -import { popoverTheme } from './components/popover'; -import { progressTheme } from './components/progress'; -import { scrollbar } from './components/scrollbar'; -import { selectTheme } from './components/select'; -import { sliderTheme } from './components/slider'; -import { switchTheme } from './components/switch'; -import { tabsTheme } from './components/tabs'; -import { textTheme } from './components/text'; -import { textareaTheme } from './components/textarea'; - -export const theme: ThemeOverride = { - config: { - initialColorMode: 'dark', - useSystemColorMode: false, - cssVarPrefix: 'invokeai', - }, - styles: { - global: (props: StyleFunctionProps) => ({ - body: { - bg: mode('base.100', 'base.900')(props), - color: mode('base.800', 'base.50')(props), - overflow: 'hidden', - }, - ...scrollbar, - }), - }, - direction: 'ltr', - fonts: { - body: `'Inter', sans-serif`, - }, - shadows: { - light: { - accent: `0 0 10px 0 var(--invokeai-colors-accent-300)`, - accentHover: `0 0 10px 0 var(--invokeai-colors-accent-400)`, - ok: `0 0 7px var(--invokeai-colors-ok-600)`, - working: `0 0 7px var(--invokeai-colors-working-600)`, - error: `0 0 7px var(--invokeai-colors-error-600)`, - }, - dark: { - accent: `0 0 10px 0 var(--invokeai-colors-accent-600)`, - accentHover: `0 0 10px 0 var(--invokeai-colors-accent-500)`, - ok: `0 0 7px var(--invokeai-colors-ok-400)`, - working: `0 0 7px var(--invokeai-colors-working-400)`, - error: `0 0 7px var(--invokeai-colors-error-400)`, - }, - }, - colors: { - ...invokeAIThemeColors, - }, - components: { - Button: buttonTheme, // Button and IconButton - Input: inputTheme, - Textarea: textareaTheme, - Tabs: tabsTheme, - Progress: progressTheme, - Accordion: accordionTheme, - FormLabel: formLabelTheme, - Switch: switchTheme, - NumberInput: numberInputTheme, - Select: selectTheme, - Slider: sliderTheme, - Popover: popoverTheme, - Modal: modalTheme, - Checkbox: checkboxTheme, - Menu: menuTheme, - Text: textTheme, - }, -}; diff --git a/invokeai/frontend/web/src/theme/util/constants.ts b/invokeai/frontend/web/src/theme/util/constants.ts deleted file mode 100644 index 85d9185f31..0000000000 --- a/invokeai/frontend/web/src/theme/util/constants.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Calc Values -export const APP_CUTOFF = '0px'; -export const APP_CONTENT_HEIGHT_CUTOFF = 'calc(70px + 1rem)'; // default: 7rem -export const APP_PADDING = 4; -export const PROGRESS_BAR_THICKNESS = 1.5; -export const APP_WIDTH = `calc(100vw - ${APP_CUTOFF})`; -export const APP_HEIGHT = `calc(100vh - ${PROGRESS_BAR_THICKNESS * 4}px)`; -export const APP_CONTENT_HEIGHT = `calc(100vh - ${APP_CONTENT_HEIGHT_CUTOFF})`; -export const APP_GALLERY_HEIGHT_PINNED = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; -export const APP_GALLERY_HEIGHT = 'calc(100vw - 0.3rem + 5rem)'; -export const APP_GALLERY_POPOVER_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 6rem))`; -export const APP_METADATA_HEIGHT = `calc(100vh - (${APP_CONTENT_HEIGHT_CUTOFF} + 4.4rem))`; - -// do not touch ffs -export const APP_TEXT_TO_IMAGE_HEIGHT = - 'calc(100vh - 9.4375rem - 1.925rem - 1.15rem)'; - -// option bar -export const OPTIONS_BAR_MAX_WIDTH = '22.5rem'; diff --git a/invokeai/frontend/web/src/theme/util/generateColorPalette.ts b/invokeai/frontend/web/src/theme/util/generateColorPalette.ts deleted file mode 100644 index abd7939fa1..0000000000 --- a/invokeai/frontend/web/src/theme/util/generateColorPalette.ts +++ /dev/null @@ -1,80 +0,0 @@ -type paletteSteps = { - 0: string; - 50: string; - 100: string; - 150: string; - 200: string; - 250: string; - 300: string; - 350: string; - 400: string; - 450: string; - 500: string; - 550: string; - 600: string; - 650: string; - 700: string; - 750: string; - 800: string; - 850: string; - 900: string; - 950: string; - 1000: string; -}; - -/** - * Add two numbers together - * @param {String | Number} hue Hue of the color (0-360) - Reds 0, Greens 120, Blues 240 - * @param {String | Number} saturation Saturation of the color (0-100) - * @param {boolean} light True to generate light color palette - */ -export function generateColorPalette( - hue: string | number, - saturation: string | number, - light = false -) { - hue = String(hue); - saturation = String(saturation); - - const colorSteps = Array.from({ length: 21 }, (_, i) => i * 50); - const lightnessSteps = [ - '0', - '5', - '10', - '15', - '20', - '25', - '30', - '35', - '40', - '45', - '50', - '55', - '59', - '64', - '68', - '73', - '77', - '82', - '86', - '95', - '100', - ]; - - const darkPalette: Partial = {}; - const lightPalette: Partial = {}; - - colorSteps.forEach((colorStep, index) => { - darkPalette[ - colorStep as keyof typeof darkPalette - ] = `hsl(${hue}, ${saturation}%, ${ - lightnessSteps[colorSteps.length - 1 - index] - }%)`; - - lightPalette[ - colorStep as keyof typeof lightPalette - ] = `hsl(${hue}, ${saturation}%, ${lightnessSteps[index]}%)`; - }); - - return light ? lightPalette : darkPalette; -} diff --git a/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts b/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts deleted file mode 100644 index 9550df5863..0000000000 --- a/invokeai/frontend/web/src/theme/util/getInputOutlineStyles.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { mode, StyleFunctionProps } from '@chakra-ui/theme-tools'; - -export const getInputOutlineStyles = (props: StyleFunctionProps) => ({ - outline: 'none', - borderWidth: 2, - borderStyle: 'solid', - borderColor: mode('base.300', 'base.800')(props), - bg: mode('base.200', 'base.900')(props), - borderRadius: 'base', - color: mode('base.900', 'base.100')(props), - boxShadow: 'none', - _hover: { - borderColor: mode('base.500', 'base.600')(props), - }, - _focus: { - borderColor: mode('accent.600', 'accent.700')(props), - boxShadow: 'none', - _hover: { - borderColor: mode('accent.700', 'accent.600')(props), - }, - }, - _invalid: { - borderColor: mode('error.300', 'error.700')(props), - boxShadow: 'none', - _hover: { - borderColor: mode('error.500', 'error.600')(props), - }, - }, - _disabled: { - borderColor: mode('base.300', 'base.700')(props), - bg: mode('base.400', 'base.700')(props), - color: mode('base.600', 'base.400')(props), - _hover: { - borderColor: mode('base.300', 'base.700')(props), - }, - }, - _placeholder: { - color: mode('base.600', 'base.400')(props), - }, -}); diff --git a/invokeai/frontend/web/stats.html b/invokeai/frontend/web/stats.html index 10ba44cc34..1e7823a4ff 100644 --- a/invokeai/frontend/web/stats.html +++ b/invokeai/frontend/web/stats.html @@ -6157,7 +6157,7 @@ var drawChart = (function (exports) {

    k`dD%Oq-FGvtZa7vl=NRMebJriyObJqizc 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

    2)YMmdo0(!2$JRGhL=i;- zY?x`C3vp&G(7R%DlFBEFXs+KNwAj?Cb>uFS^5$}+O_0|TjFV|9PkYLzOrKF4T@ZMs zFde^O%+(R|D8J-tgG&%U(Kw7VIQVLsPZRaz78zV?;m5ZTRjpK~B+K*s?pA#^KS2~KCTv6V?LFL4A`%Q%h#ZklKGZO_oP&N!OGcVRXk$)<)?7P;&0kwIk8mDuw6 z&^^c%Glo~s={JtpuI#~Xcq8$dCtOTZxS_p%!qP2RS|*41iJhG3CC3>=i%ID0bI zAY|T%=Md4nr3IPgZXok3J9>Y`GG9oKOk!#dqZ_^UsCT^I6vHEbX`|23bg3yd`^xUc5)7NbekWd2L!rxS$Z5 zFl z*%8_!6&)FY*Fwi-_pZ^9Ha2X*WyB*&1nQwBhbZ7@QVgbV$Ea^tb6K1;6~aQ*JzY*OL}{#iWjB#8nCn~{-_+oG4@Nacsay5yYj7CIP;<(k;0-+ne&1& z{xfPUj^Qh_;j2Screj-A@vBT#=D3t$e1^Kc_;@yv@s;Vk%Ys^O&YY^Rv>1Uu^t#59IY{k0J{D-SL`xhGX$FH#Nv#>9x}ktN;SWG* zc~sXlrwu8+nOr?i7-J2M8II$;abk^3Jw0ooY!Ot^<8i#^!M-Xo@7w$-WO9vcs$l|u z8KYpI&Xpo_M#)dz^7#y3*JBU$DG|?I={0)=aJrDUT%F6as5{F8GrJ79j2l~EnqFbM z<^#R*L>(j%eJC1dKJ;YNIta7Pf{F1yRo5psbhEUnI@8u4)V^lQ zygg}E_w40H6?3xRjH~9H_ASOm*fxrabsc|P0M-b7%gttgqc{|bfpKW`;+EY{Z%SL_@_yzzy`aqH3e7=|()#oZDPs2j`S z+>4b8)_=(jUnxFd0%Zz&?{+vmSXZ*F?4`wsDP>$Ig zV9@R$yb#s%R&%B&iOYHEv( zk}aOAX}pE?Gboe}zI4jW(rWy?z+uIcBln*7)FQY`NNoPpF7eV&{6Z>TFa?<>j7Y&5 z2v(iEUzrL9M-pCgGFgwI&PNog1vuZZ?Mj27I|>^f4W8++pvl&(phH&wjMTW}UXY9&7PMEnMtBF;PVUJA`~x zmU!joO*EjRZgk0B0>TC^F5Ouzob9V7v}?r$M+KF(*yMMLTLv9ka&$YIj(5Ta+LUCQJd~sim$NmJ5#4{FSv7E44Gi{3+@d&fEwwsjHWv# znSZ4p?Qth^Zi8=1bC5+$sX{*!lW3D0M+>}?V+W*rCnrHGYYV~kaE*$7372D6gSk)``*;cnL{|t-SSt4>{c#OMX!(z!3ahUHH+r*s5@I=hc{JqGL=gQ# zzW;Ek*mR%_IJnro#r+Asvi9xZweo(TN#2D+LeIYZI3i~8AatsY=-6N;a&bIKuAsN> zXM-)qhM*U&UO^JQ>~5~3DM?v)kMnA{_%6q{8M;q>>fXOul$+h#h2sUdu(6N?At%=s zfR8PPITA6N(pMLH41jQX!oe=-eK?+W%A9svo$|le=>$0vT6I&m;`Wv`mc2B~NkE|x z&MngowKf2mSERNnR{k1*gcp5i0d+la-D-5}6bpER={C!#=yJue-fWIOAt@Knt^B5O zRX#b#9Ty!(#utp0=S>lQgA<@{TrRP*nB_zcJIURLK9q~~mp&rZ} z3C$}(I1QD%Zq}&3Z>y{ZoSQdqwTY?RW#4kIdb3GxtY8OIyd`4qaOq$kcz5r-B8haZ zLd1p!l+uO0yq1IkR=t`IYM3{y!1^v6ef%G^7K6HLeh80RP`A5UEP&LV4B@W0b#(6# z{dioJDGF-*nCo_H^f52idNmQq`fe7UzkToVZGNSuNt9>!KV1#zJyQ86>FB#zTl8&P z418nz<;&*R!{!5n)z{dyH*Jih7vsVdw^Go_KZk; zZ!{mHdKAOOG{cMWZw%&XIp!DMKt~gQI-p*l+H4KF?;w?8BEen8Ujx2szL&7MY;Oz^ z8Q?>z4GN%CNBL9zbt}SB9UWh4KuoDNB%x9r^B=cLoRK94#E@#|X?wQuR`yf&uW%86 z^%{~usg4e}FyPEM7|~p>KljXhdfva7Xy*nMNuUM>Ixj@#OkTWSWMOzY{riBR-qPA= zeje@Up^UM{eLs>GRX*puY0lxe@|QoA9=)XMFhjyj==y}tFSc!Qyl5gHzwe0n5)9o-riB=(Yo|pxvF)e#hB00p*1djqLJ^VL5Rlq36xdJ{ z*m4-#@ob0K>ASqMjedF}B{1NmiN&;sjzrbnw|ku>usPxv~5tY6h`_G%mY}eE4r< z*+~cz_97ox_AZUYlpp1T5Q2K0yXhUQoBeCau z{;Cb*DX8}Is$=y6^@gt@AAYj>1)k{+XS!ap_j=a%y4v^pUND<{FxxsXTXHZvHW8a* z5!)saTdEN|&N7=qGTR0+TS_uJ_Tzm04-2~mUgkU)Niml`VyjEq$y3I&E3>keA{)o~ zL6Rv0?kJT}!c<1!l4|{SuED|mK(@WHd<5cO!Qn{+;tUkTh{Np}28lu~>;{P=-66TrRCD=u{r_5 zH7Ll1rEwR!t~Y*rI5=wc0B z9qt9)(vj8|{ajK;7W=<3tLaFB5b~@zhT)>$F%-o`SqU7+roW>}QcSbrS(cA}$I?7A z{_=*>qZ33MrVC*7i4N1VKb`HU1yF5iX+45t8+2$iMJ`((9ch~;*mGZ;^}Da%3`S0H zmJl(>{v0(1hE(g-OQ?)9q$)^ME#*YRi*QB|BMQdD?-mM*k%B17jg|pTHi(vnY1)mJ z1@=c$6d(_0nv#MntDTYoOSiv54a?l%+;}hOL~7esOzyWgqKj3tXG~RoL9;K5TUw(elfs*)kTU67-O7#n%G1etT2wAaWZm z;($r!Kx%yJ=Qv{`XT`&O?h};`eyHjwLPB-e-YvpO8}t8L71~ClZ-qAbaW;jv=p|}l6QSpD zJaoD%e(iI}Xn$IM@%#Yc*(K!JN8~ZYxl!vBaG7fxrAHa6XfN8k6!xq;PHc+f3Xyi$ zvF?ZI55it5YB2VHj%XeqW>?f{>DW%TA6OgXcDA>Du;qol#Dl$}lkKyAxrUm!#+tbK zLVJxsdjr8es!LOGjbeSHRm#oZN|H9lo;Kq0v(x`)Z{N@Eyq|q@KYQwa4&1GFhOhRH zt#+5K_MfeGrLXp_t@ijjOKCk>#n;{=YkM3NTfXromr10UJ8%;|2Hdmi>A$=z7dsJY zb`n=<#L^r*CNG@%(ctReY;6|IJ(mUi!CSAEP24lVl&`T>fB#KE*F>hb+vAF9gG6c-3Dvgc5F^ z#+8>;IJF8hqGef6h74HiVZ?Ha@a6*r+!1ZPC-YWyel|zb5?Cq2FW~U3-ixj5uzMq7 zw=@JbDuWn*+xC$DA4R&_??Ja(7^r`?gd6Rf_!_s?Qs%1R+ulL+#aTVi?3FIoI6T&f zZCdY8T6a-e-_nLbnE1`>*?;cYns!n?tSh3Z|9*dw=ld!AyDJpfhieUUqq_$!f9-P8 z&0NpGJ*knffhN6uOl~UAt7_xk*Yr$hYk!#R1(z~Fh)wQR%BN39A2mQ(8#O{+*vfor z1S1o##`~4MlzdgPrvG>H|DXT4Y4zKD5f2h9+eJ)9k4a2Ij7%a>OoCNDkJC*;9Ze!( z4ufP4!)OkNO^^G{6VKDiaY`?GOiu=mhe|Viijo43l0HKs|D`0~rli0p)nERqetoJw zd8z?>s^0Oc{&SCaEr`??2Fn#`ruXIfLF{j9k8tJhumq4d`Hz=>3Vl zJ|jBkkB@`0#%34ahR?U09)CqX`b|9gR6O2?U(juR!-V+?isRe^)_&>B`voot@2jAV zAD@_?fQcW!s-K{<5TAh%zY>uU0g(s-kuU?1C`7Ih1=UtUE7C|Mrd#EMhTU6Rsb%=2 zNWLNR@0#@R>pfkJB++E(dD|18x~XP^wOU6FCld{v`QknL;snjo9WBID1ud6ThT1YJ z%cU00p_KZH`cn`x4e5GB#TpLtgZ%x+_491amm;O~x6>o0G{CYXnd)AHwW5)g>BfSO z^7jJlwih`om#HDiE;C+-lAhb*V)lhJOc}sItf~y9txy__dhsz)`}T$X)VhZgI8AgK z4uYfvhhT2>ZNBN;4;Ib?gVeM*Ja)oFp%w2KKC2;Yak7WKXrgFRDF_#m3F5p~1BDTD zl5lsuX|p??bd?LnW(U3@1A*kpm?b}Ecw)-E4wIM>B35#u3UNaPanIQP+~_YPZQ``w z)*yZ(*}ZrvsE#}eufAs@F*iwBk>?w}BB=M%nnI)qC=4Uf3+IL1UyYdJc4XgQQGQm{ z_g5umxE=NPS0^U89qsp5n4c9scSrEFYU-nA;T3hF)^ZnaIreL`QQ#6j;_7~x6jQ?} zb@Hy`g+aB83C;*o*}80jGph8x+0pxN(st5zEISP+yG6^jAvIZiS^TDR@_lj|)>W&r z)oZ1DrGyo$7p?QgGdGvR`is3}jneoAt38=@H@DWdJzpo;i;U}`mPjYx@nAE|Z7x#pSMrfHL^AP0X`Rw-#uPof2$!ud_`sGcevT$IG72%E$4N@Ux2f ztjxi9iybfZO~82bKPyu(-g?K&ozJK8&+79tZ^ui-&z4n=m$9G1BFD>_&n7t&pqbDl zvGbRV=Fq&M^OrSd(7c!)%cCSM^OpcqQ_9F6LKL-gWod){tAoC+gMqJP;S6M3|CU9M7>I>sYqb=UdI% z#y9I)uAtT>=hkyJwzo_yuiH$dxol%)I<0GOWTCbl32Hx2WdcJP!1f`uI>Iqu;~j3H$EdM5%u-+Dn|`Xt>b5w-^FHng zV-u&3b%0dB-lJw^x3Z4yG9>B=Ar~cpl>c3rT*OvFE=D0PAIgwi)P+JWT0$uwLb*u9 z!AvezeKsG)p-9vNV=_vFDW81ILI z%MVThZA)k|HWwTFP>hsg#-Ciu5Mw4-2b3{+glivB9BHZ-P7(`qaRL~|E~p1Xf67o13TgGef) zJwi^b_!itg!|pE;hEzs{5#om_#{?zsvfF;a(rpo<819!NMAZhw0a@(Kx3e6Gf!9r_ zfY}5UYtTFClybiuypD9$qz_!NGCs3!3Y5u;Cr;9cG9E?3(|PkJ{VcyKTAai?OnZu4Pf_}>mE zfIu07x}bE)deFMQk|0QZ&+?-W7RwGI2~gcu?G!+%N+PB*L?2P>l2EBiVJCV9=V{}uzUuDQZ7P#k$`fsd^*N#E=paIpysiBCMZ)be7LCuW6F$ALTxs)rHLfx zzejohG{beHX!+wsrP~&0;+Sb|iRh=qeLe1(X-7*=6`Z28 zrz`f7?5NGkm@)Xl%@6QIqBqM?>oaR@qSYkaQyVWaubm-QPOLJIjfjZb%eG$01eu3r zV>bn30!Fn#36|QlK1kVgpF4s+MA0WEE}O}aOp<+A(K|#bn?boy zg1K1HH)S@P#i3A=`*`M808=)-w8?)gSz4~g-TxO`^f(gr0;P-Mhcfyuh~EF5gf3b~ z;5%`c_&-I5iDb?}&lF6GMNIE-U;=-OZVl;X&v zEfWN54{dON9`@fbng$aU(1wlAwv~HFWe7Dut+>a$|?k%8rr@QI<$X4B}`=;B%#8 zf9~Srej^Jy;guo=K|kv4;C)UISMPIcod9zm6n(X<+tjDh`DV;E!cMbQEqOGMK5G0K zR`%Qde8=%v`+RY6zNR*Z`ya4eZlA*`+XTx+nYrVlrGrwF-1Bpv9v9i{HP$FW6>%xf zh^gQkwW+ZA@??TzZ2<`Ok&too{G#vqtWy+-ww@s<|GV4O>RR)6-`=>ZTJd#`T9U(V?t zIz^e|(>tijV8WNZ?EH9OtoV4dn(8pY-RW4THp@Ktg4)ze+VAD~*m23}bxG=V#ro+e zpsiB8B=g~$62J9+CPCQn#b*nEp-qMKQzp~?fYI3zpD4#vGL3y6=Gqaztm{-N&ut#= zzrxwQjbbk~>GllhQ~ggE{O1a@k+Kbu%K!pu{`jTFVKC33XYkDYw=`!#UI>+bWzgV) zp63SV{@Ne!Iab|q&RY8ZWLDhz;QAE!eW^p|)&CnU{mBrG5^{CLa`pWykfJhT4E$qr zkg9_OKNIGec;I+{dqfFhZT&+r36ekeA%3_-CpstpaE@(oj(m6mx|rX|9HM;$)4uBI zC>zT_0G;RW7sHEP7D;}~5oJkUbM3=oK>Z6FRRnbCvS{>>|o|_vMi(I~0K0C;|^O zj#!zD2TyQFuIKQAw?qTK&j+^nrOtaQFT3HcO;xIC=AB0gaX`D6;EJdC*_erYrLRF2s^oI6uKL5!)tiH(UY7{_$* zxP2Do+Mx`r>vZV)Z5Hi6ob7*QKT_z!46$~SJB3K-lmFs4$z4+ame$kySKyqnZJM#A zmhsPRmaiIBnM{3Z1PjKF42cl?F;IN}znVZ)qWf+E&^K}+-4MArJ*0xK#N@)J!*U6B zai70nD-tp+mWwx2Dgb3J61F^+OLYCjx*l%G@c-aqu}Pyy`F8YY@x2e+itOQ6{|^u| zi=Em;oKk%zp#I;H;{Tj&vs@j=ULDe09phdd@#PxU|4gU;?~y%+b-P0RZhYsH$7s7c zT-H@tKa!^)7=^5VuMw{BTgm~}jW`UYOY}VdEt5p*N;+DSDcivZ2Rmm11^K4I>TbgNXU^zcG=h#6JY* zKU@gTH;UTT3W1R~^79;WZ1e$VC3{IV%7v|FNr$!<77lz@X0iVt%-jUS1Dz@7Uz(Rs z{Eht|kOkj{cv~w=>pBzIew*`m0$sFtZ{%Mo^na48e@}@1y+mtV-8o$SJD)fs(=&6e zR`AB2aq!KEK9zm+uN+-*p;zTH&wn2`+ynl_ydnTTv1!{(pT4DOF?=(obre}^OId42 zdVSk+eT%X^xIHWn6h!|>Ocsp#)>pV=)gY|T*ae`MGR4QYXOO2q-)dpPuP?FX` z$<|TI*5Q-ZuGBx7#*u$;1@}=>_hDoAaa8xAAMRtU?jug_6R@v?vQvq{GfCrphjYD7 zdv5N(MOH+wMeK>M@>`KT&|!V>GRSuP3azkZql>08oH@>Jm(jD$uc#PGMoDU71vv{w zg>kM^Qe{y-f%i64^v5>wC}my;uUNzfnkJ-gp(Gli_w3;a-6vKf5d|juP6%eg1ul(_ zSW$^aagG{tIoWt6k$&%PU49z0)&d4#$*MBn3#u|Y^IBx6@LD9Quv*}H;5ss_6E`C` zhVOy5OmRE2pYl&=bojTS8CX=l!v!4kmVcx@O>my0W;=DOjT*rmYXsg{Xm<*{2~*8$ zktF_EIEMO^y3)^Iv`cx0k>=10LGD7Zm|6#y6I&a$+(($mUdu#$<-e96PXZ(W(i+}; zTu{Tcr=3=${}8Z{^4w7vpSUKw_V>?lOw|iq(o!S8BMo`^9I+@~?tyOfmiBZBR!Gwt z4eZjKBvvZM!0z+-x7C{D|6uHzgF9=Qb(~GIv8`Wh+qP|EW81cE+t$Xm&5bs;lbiSb zzFT$wyj4?kFg<7bRP~uU)6>t>>3}gnqBP?eK!P;gIN?84!oSxEfOLRF!apSukglC5 z?K9)aSuCRZqO8H~6SC}rU67KTzQ`9SmcH0cFvCn#Ml5If1Xuq-ZO&P%E}hSImMfAtC4 z2J)$QV3)xStqX`QaK+#6Uj70Yx!9OqW*kT*JWxY1=81#TH+8AO14D^2d81vi!e6_u z!ceKg(c%4V9LhnFS`t=qA=*f@h_z1WFGy)Ihn;{X#7dEjo!B~LY!ULcHnhK*1JHT= zYoCC{YL1z5M%%~FCiI=Xx49%G>SW~#a`+^%BqJ4HqL3`=Ql*qYQNpr`bp4hr7_?Cl z{cvpvqliQ3(Jco$b&{2k8H$xgkU9k$mxoQu2a2y4ORjYZR4?5mqeKtvxX@li_n%ow zX1(t2h}!WheKhXq+;P5ck37kHlM`tvzQL{_XCq&`A1U;DYtK>MOQHgm#;dwlT2rr>Xcct zCjZtqT&#DPT{%}}<%cF2T?@8@)h>n7Ytd5GDI-&ilxA2tkE%?6Wm2j&YMbU+AUY@C z>LqiIU0(pird+2376r#G+ci%cFldS+v=j&;Z05O{=%|;l#(gTB5tBo%Bi4&rR@-GR zfI1iP>hy5ILYEX~o}rwvvXs!z#~V6K$B-#@#=V_K5}Flz9AgV?wz@Xb%i+!(Q^}H= z{XBw0$ak7ObQi0sFFBB#im-zqYwy&g+I4i4&DZuUPc;!1o24rTD^v$(=He2YL6}o1 zeHRf9PZZUr-55e17^^|_Dv_E3D7&Iv`D^AaDRzof&*B*@N@1l@^k5c?1RZ-<&AvD|7MD{Mo#28+97ND?@ph!_kfFpUNKIh z=We=>0YyO3&8&EkR~fz*D)COj)9mPP+WP@9ng^-Bu(!?Gk>4otkYh^(k0$F@wi-yys9ks!T$yno`&gWeyGr-U^(GHW-+|HsxK`bth=y*h# zHL+0^S*=jk0$j7SO^_F2kaGr3DB1iQ`|H2fkvcHynU7|{|H9@NHAuC6GVXoI@GMjs zOnb1T%(1AmM&nMt)!|^0F*kC=6v9V4YS#)j3o37^8R(oX{m55SZr6C7?%?b1*r00k z^LlCk^A)KjmMVBBL%Arpema@-?n?kU#HLrj;tQJCrra^j{EaMxA zey6y(?guyDji`>^r`SJ!lGAcG0lxLr%XP86!`niwLA4&^Qm|!CM-6HfcFC#fihUw( z=)?G%KgXEKjoIy|dk&3Yf((RvaJA4hQ*NO55eyc*R*U|c3FI!ki=^`+=3OG=+mMgY zr@l|)h!+@zughAfk8`w_K5xPHr1BlqgDEdd?#q*DPtalV3sx2D&hz(qGu74PQ~jf; zn1Z@oe&f9-0$%Zek3ztDf)*#7BRl5;V%m(sI(=&&&t&LP{hLqfG3`{byUY%ZK2b(g z$=rJ!Q~x%Ho8FHz4JR?ITWZm z|Dr+uvmrD&?c4*`<#uDD>f-D?6m@Vf49N1Tg9kcC>n5G&{%pBY7+x3!{kI~lw4f^@cgVIfH1rzq2l=|$4c)82W6?%oyLV!j zLSG?a-3|U>^tnKKAn2ihdq63oZG4@V1&WK9fxA|c1+9`uBY8WxVA5uwo10_l{@K*4 z)kE1QM=R@{_r>x4SH|?eL=HS`=A?)Owrl&(` z8#Q*py)d+(i#l%MS%cuJS(AWQo1iBV`3Lmi#=bqcm9%Hdt=>Q*Y?(8mZHgR%R9lob)b}lh&AVAhxQ^oMn-}#qJZ5kc2ZY6IVZ?@_-1Y zK{Ca4QkOG~LW?rnCNgrY7wZeo>&EO38eOc~E(ME-27c=`S)nvJ`v)(LyR!#0hWHE! zdukE;(sMsp0{62ou!*92TFw>W(*lP<@>#o-U=9cShLHm4;^C>UkBVGncw#D(#MC+( zNO~NSYAASs4iDPXSjFh>51mN#JTqZCzo)?}fJ&N0(2H03w%!s`;=O;j1`FEEC@=DE zqJc{V>W3cCb+cS3B%u#2?Oks3Ms8IvM`s|T|7(i($g~YYuDg6_-ij> z)7Ci(st;Tew~0Yjx1?jB2|UlLUA<~Ni9(YaIJ1D--8o@bqFM4p=s_c`!yR65OT4*7 z%83Eqx^n&;=hPxA^ZIRsFZ2W`LAemW9t91xZblx#8Pxp5m(J6sadAj|=vvCcl>T#i z7%N#bJ@&Zi-+8`Lp`GKIgw;OE85_#z^4XwlVYfs*@DaWhl4Mk4dZL)ITRCRAjS>kz zc47t%mVVvBl)fM`W&AUzhYwE}&b~oXlhjzYL@C4&M^al19S=GZEiDrTqr34&FvS|Ja z6A=!PykdMhIWr~y^NRp}k9myIYA%Y|FB(+yHVda5IEuu5M{OHk-4UOw7sDgwWDLoY zEmZLwwWRj7FSDa#0to?@Q2v}`4FVpG^5KEIFh;h-QtagjMgjgewjYb!mQKat(mn-by8lUGoCXS%Pp-g>TbuHLqHxEH7+YZ;p5GKUvSmP;6T7nr?e zjH1#Tkp^GLCIX5q;;6%tnTu#qp!#4b<~dVMG*kttY>=U78>daCIS}oMi1q@Kl5pY7Ugq)fY{fizo7X^~NFwp;|l zsm^bH?m^OTH5g5>rdYn&X<>6us~@eXHh;Yb;!-aP#0+sUvEnb+fk`zewqzBnXRy@4 zS~2a6X=*@@$u1A@n!K$7vyPUmrWT2bkBG}9&AC(p*yI$J>^}u-9R%@p2f>y39l04fTWGq4X-~eHC6;)SO z7t&aEs&6cwZ`L1wai^-Sx@R@c)(#yPK&@-~=p1)SRaczG9Gu6)7m~-L2?#LASWZYdw ze@2UCb5xJkcqOD1d*aQ()km9l0^M0i%=dAL`woP^v^L&5*PGtk+?#X=FI=U)(O?S^ z0Wwi#NM(XPI>x`QiEiGYd1&FzH%m$f?v}T)j=O4h(KrDjv|Ok2Yo<(UIjvh`Xpv|0 zmutCUlN}ho#&H$4%kPSo&_z*dm4kQJ;*JaE2*| zFotvB645c+Wh;diIUQg$n|WbOhZu2>6#7XL8Bp`v0@8#I+8ILrsvlk_V!yGLo$%^V zM|zBAv>qyWm*BN!0!8#bTUG%+L@i->-Z0uc z08N=D(JtcoeH}+Ope$WsQ2Hfc{o6N7(8Elb=|!_$H66|USMHhg9;oDB(>jKuX_WNF z;TjuYg2`q>Jrz`ZKsAba#+p4;zYaYcWNT6$9HOn_eobWr6D(D&5_>GcTd2^nze{~K zKj`@+eFggp-LU5p;I@8c=~(Op`+3{MG@Ulz$vkkYKkk(l>8|9mJq+k?fbPU2ZPoWW z-3K;oe9GZ$-GSJtzzeji_W&XfCmMul^f=i_EDGUK6j80fyqwxbR&B~@`$#>LtcN)E|Y2`sm`FD+hDstZk22#I$lg1mGv zhaegNy*QY|NX8dx2<|Qn$s7-<=GSWLl9d(}E99yD(gKlp>8AOOH$fbf-)NzOwu5=k z)ffe8Y}7tJ)}yS7roS!zq+ zY0>*Zo<}h@zEC(APn15!{W}n+4FTN9BfZtJlLUIoXarzOzgRP&*xI;#6z;ZxZim+5ep4f|J0~fAR+CcLSODD4( z;33Ge4sF`G{+>UD47AGzYaLWQVRbRU3x3!XHqPNXwm|SaIk|00a8yqVxF&j1G|iPi z3hMS_!qvF0Z(Zn?-zB@!YF`y?(UvZ3{N1|d6e8QyHA_u(@CYEeELu2T^oL*VVy3^M z{U)a6zi~D^1nN+ge)&;1nl|0;>Y&RTpXk^Ti@?J;GuKY1{l|I8EX)Ns4Rz{|+GL%S$S!q!(x31lDu)qNucXU~;BA?u;uDq>SzylWF3=cwy`r z-Q~WeXvdEG2c{PrgK4%2O?sYp)+h_%H#W=IqyZ$D_8txZnUi#$y~kCQ!;QXUK(?{D zYltF_J<*=`VCR%*?A5$edw#Sq_Kj+r#saj^*a3JKLd^=ZNYa7*4x|1% z1pV!fk3hhxMg^QwQvTJ+HgGOTh(tx@T5JC^s3Bs-<)rYD@%*nzXt)tHCGY2rmC%vi z*bzn~&ce4H`gepIA%K*S7_**%8~zRNZ{x^3{|Tme*N9r-*&vSNPkay>r$=YNc~8Z0V*lu7wF%3;Yjl>-R9JZ zcGsGkK>3wMq^$X52c`79@t_pgzKIS+3(7)eOpHL8)>v6Qhc*R1G7!HKi)pv~Kjan90uKbH-nQZ2_KCXYS)=6{I3b(;+s=Uk!>NUz&Q>E{_L9O^=iAs$AiY3tj@X-0{vLb^2W2S#tuzb zYBZwgxTAQq1lkg4S!cOvP#`@g(xaLCxu#}Ar4l0U`XEXo zPTcIM?eOhbUE=XWuNO)`FTEc4Z~vK)szOf6F987pPULQEZ-j1?Zp3b^ZV_jE87ScI zKOO}f^cewD+lePJ1%bDB@ppAED_Prcw(x2Msv$~+Vob<9M|_g26{WPC{(F>H!B^25 zSMe|rpaON2K&0F-UVi=E>n}uIJ_Pq_dz@Z;v!#n8XXlx#9i;?q3C)B*k_i$C5{we0 z-)=>~-T1fvQG&7dl10t*XuZarWGw-(w!R2RlyD%aO$Q`SdNS3v>%FkC_8)t)!^IwR z^XVOP!|wNKUlXarsRlOhs$6rf{$O2D%NkAMPE^H=11UdJ8vEnCeXNml+{rx_y*XX1 zJv9lwc_xTeXyL&hOCcNCBx+lplTnt;S(f=qE;*1S6S3s;ob6VhtNtqeitn~RPbZQ3 z_>tMcj@=aZhT8dZmB12Fq?=K!(@`V`VWLcGB8oT8*FZpZE4n?_;}s|8P~$JE+{`c4 zr1+~jUMYbT(O@i5kRn;Kd{0TXqtZjB_E+Whyl!{l0B6n91Ko$#v6F<}-;~S0`FLk$ zAC}*kg&b6kb``B|7OhTaja=CEGMV)#o<*w%^=kErX32$36^;ZZ2@8nJW6S)MJ)3M+ zi%gfl*3o~%WX+|`9>S;38fwm3E-eJ*m@TFoqG)y^s{1Xg1X7G;SnFzeIFi88wX>d; zjJd-)e`dXBP4u7sw&ODZNzoxK(O&{j3u1X)ubB~6CJi|ig|A@#3lg$4)o)1E~ z=UNtES>~_V2H`9Z4?Fu~B_ApyAKZqYs!4!rGYGB?JbM;=YZkQI4*N9^A7U3y*Z|?O zAK~Y~kEnhgj6nM|KZ&#ei#B)$wZkWJNn&0BWRyEHW+^%IoD_@f7K>OU-tcM3BX*ap zjLL9%BTL8|8; zDh5M%(B%7&;^n>Y3Q#JFG%WM5%wq7c&kR@v416*tXkXTyU8SI$x3P206!^zKrynD; zCW5txRkTNBHixrYurGt&To6e6jovVFg7wZ7+MG`@!IuqmMrqGP9yR$Ib_zzzUWMnh$5LnYON(#bhiT-S}R8v!y+_L|GNCma(?WSi`LEyM*EXbzNCwaH(RN(KxrV zW91CZCN|yzzhrcc?i}07*PPor#c#XQZA*Aj){Ee{3tQll!!(&rW3&pmFu^G{6OYM-|41Bvmz#Bqd zjNY~94mP_1(JisTquW#I@^8JtbJlW0$KN&b3ZYZr=N&?S#@g8vdk@$t_wBEJ2K@mS zK=>0}m>`Is{YL>I98!6#znge~@~EHHXdy4M0|9YSsJIiw3rUcosn79kESu zp8YH<8p%sE^5u;C?v2K_DxCysX+c|);Jv{@4tD$DKv?UvwdlR6@Vk69P04W`$#E^q zab3!BjmdGH%5h!Dadj5?MKX^DaFYixW{@~2@kk)P#=nDYeH-wa0C>$Bzx3gsrRt-l&5NwF5b}6Jb8*+w2GB9>Df0m^IKQ zEtycB?6sO45Tx#N0NGf2Y|gWuD$6s@dhV*`vkVWyskh+1};h-J|l^Wy9VYZh^9Pkjk7kt#7viehXak07{{X z00w&1ef*tS_U<#Z}FM-vtO@(i8J!@gciae3?pXG z5JfcH9)qmJpyWHa-jEP2Vo1H}biOk=OxTcvl1w!Z+K{9IpjupE2>+KbrqF)hID=@q zKw}>#gLt~oeP4B*_Od8@Ux1T5V~pCT^lG2(^_#}_7enst5K%%`h`$UGLnLZjfO_;< zM0R`QYV2DisCyfG!bsSGd*e3+dAQz7rMYS2$>4MW_FGszPUY#B%Xq^~hN^C7MZ7S% z-bKSv?T|$b=h;XT|3^_y+00_%gZ7pcmK9djM#i~JOh@+EPDTBtd9qtK1~;R?G5dAAlvf~{5~$PkgHuDAAY9ye!dg1$EGkef3k}_++7jf zKd{?>q>}Q3MGQdLP>Gz#KqrfCM(9G6m>cchL~~t=nLO96T?77;Hv&3IU$} zKg&58_riGUr161D2;yC#FSY0fvDF(p=mvG%#Tr?pQh2&5|W1|7*fS@HvZZeZ^f87kcUPHlY3p_ZGLZhYgm+>6e)0*q4F0JT)HvWoIIWjSSK zM@9SJGLOo9%dU)aw9017PR=sf%F4ez9_75h#NJMSOgSrN>mDx#J8S6Zuq{?Qt8MAU z{$tAB+O~_G4+`G8JBzUoS|3}3Oai3C=85yhtnM=QN^^^>GBTbE3qM(nrkrs6DPjgF z>_xMX(FaNFMYI=Mur?8&20?Gcxe;duVQwV55U&OyZzQ}BcLw2aq}~y~05{@5;RH#8 z@kw7BF@af@mukkfspJ5hklVahS)@e-SUbr)0rTPokZMuvEU3pyyOR8D^H!!2UbJa1 zrypC6XoYO@y&OQnd2!gFB6&gBFvWQZ6Zz1}_KEx~Wk;mJ5VPAd5V!_)nXn=K3ax;w zfXd4bJcGpS1`4_3GjqLb>vzYam#6`W9WO*ZFXFYU-JGYW2OKO{}n4O@|Aan4|#g{eNdQR`9C z0lkom>Si8#ceCi4b!IcU@at@s*skYm$;w9=O!}Yd2W%Z_t73cyysxOPv!>dWG#_>E znvv(pfM_VBcrdv*)>Z78JkZCHyT12cZhH7h(Azy@Ju;7FqB)pt(Du-rg+OmbJ~5Bj z6_2@<=b1tPi9svw9{_nUNA4_eY4nlOlk^LeGXV4U9lAriP;`Rkb$f$=j*aK$lJuzK z(SfvqrJxXw84bFCAg1=JQeKX27^La(<}XLZ@!zHrK7*m09iB#H+ROP8f!7U=k<4XM z+Y2Py%#CkA=r7-q9@&)_-}8qi(izQ#H7-xH+VkXYOJCd2zf16#6pZB(GL(w(l;sn+ zm=u)6#3Dqf3Q4mOyt)^oCNGfl!*+2SWf2Umnrnj;D zrbBgB`nGnwPoJ?rpLTs-25g;BN=U}v;F3d}pH}}dg&G8y-BC@I>g?2>67!h$>e)Ci6i{H$u$s7JBgP1Kd^d3)^8Li z_fg~jAC2=*RNYUzZ|utf`!}WmN_Kc%mH*gm)az>{Kd< zLQoZ2*OZ>aW=*c{uBpo%Br)KtXhKA0e4QWnmih|;{9_J z6+@-&q_V}-5kWUxf7`!TNr;i06%ok{g`T8Jms=efmu)T_fM{0gmvefBIpagFCRJam zuhD^RHqxd!+ggICr#2q5>f}vaC*-BVY*Y}!cHyd7 zoOBU_r7VYCU!t+ClSC4t`TKkFlEj5hbK5RBqgGRw0_v#Nk+@df*nNp;;@9T1p-XCG zXV6yhIc=lPN}8-z8SYtzmhlRTRi>XPQ{>h1iC31E|FOet-A1f)<+U~xqx(rs+|Z4? z0O{`w(HWCgg6FJ}V`}LhpdDKOVG*xs|1q{_FUbC#gBMWVo&7uFr&SajO^upaB<74j zQKmXeVA7S7*AVw{nN?31u$qDSjeC~F&YTL?>8ZR<3MV#PoD%Eh||%|g+bPaf%#{!{XaYaH~H-9`-j0ajM(!qj578o-ga zA@ATFg$`fdnV8%5z#Wv1ZPD4oHxH?bP05*zQ@8)dP66xENT6fGx?8TeE0j}GkxP(V zaV^R#mdqbb;Tp5g0M4S87b%^)R0!j8xfIdo*g>-(Leg;6#=-quVU?Tbk-c0Xw(Wu( z*RnrC2tJt}+ocIlWq))qZh=2-3(BFgGA7F^_VKJfCa=$ZGN7Ip27DN=!@7u#I>kl6D=}P!;nX!c^i7Wwb{g%O zKxygE;B~gw;p$!nNNDY44dEazTg)&34+l-5F`YN38DLB6%t-lrY{5nz&=#iuGCu;z zXt%N7q}T>eI;ttaSH7^(WOf}ZXs1%m?-ZBzgehrTh)}8;wh;@tG(HgysWCq3HOlTbd=qVZOviKN||rY0m?QbDm3jx)krJhM$1)QpLZv~e65>O?jz6y5IxWA&3{66?yGJiQH zxe9o3MxJtx2cw@fTHF{EW4Zt-)hG(Xr?|pFEDF=7xM&@v&15`|elm=)A%6+N=%1xz z>I6ucQpnu?U8PxdKstZ9U%hyPzasCogb>e*vyZq#CC}eXE{sDhdblSVOk^*rVPm}~ zOifrP>ACvwK!cterVtjd5MAP7b-h^oqDaAX4Fyw=B#WIVK4;81Gv@Kh08((7BmTs- zSz|!PWH{+U{@71*#mZRBgMPBIiwjsW@AzvC# zyA#&D)gLI>-{i>=(Snt8=1UGHKMC;W^H=Xf+{7bonDREFPFR^DrUFzOwSxOP#9>vx zisB+&0ly27O5ITOaW0`5N!zq%?z7&~bMCko9JkFprvLEon7HI!b$OfBm?ypNbK;baNyO3-wDh4;`F_<(bG1~1hWV3Y==g)#m!oaO zVcRu+1~?_MdyWCHk(@$3RhlU+7aL6`QfRbV&Ko9ZJHM+CSZr3S)w%&VuJiBeO+!tk zIs)s#=&d`mLKBtc?^?sZ;x20@sXE`)z<%Sv9(;<*Wm@H1@CfzI`9Jr4E>_x)D=JhJ?jkPQD=bwOy9}TH+mqv;m&;H)|8LL7 zvw!a|uK4a``cCioYEpm;yRDOqRl@qw1M&B*@L9-9%Lfx#1>}dU(Sxlpbb!JQ5fwEF zWV1JA4g~?Tt>d=&EXk;lLKsv*&~C&B{%_$tz#@F+Q4ePqfm^ClKDRW2|N zIz9q#V}(%o?&}o~8b>UH!T;MhK}xLF$0`cQjSjWlg7)hx>_OFzr7bKiwStCOA`Sy<%I(mtAfXqy~2AO~S441G}j zCLEHRRSr?EjcmPfHgh?1PHP7H5ckx3-y7c?MjAVfrp$KMPv2L(Q@amv!qe1{|jjd#@-?n<1a?P*Fn<7BqTjiIf5ftxb7S1pq> z+hoXw@mlpmX5TWa5(;yKYUy9ICCphWHbSMdCQejaaz>{x6#URh(BeZyN3k+hjI5Mr z>N}?gq(>05FHYD$-y3yvBeCHS*wQ$nID#;-(2+?u5HhHrOiM0b?iD?RX^nUM;ZVvCZK+ zfQgCZLueH*HoS1nbBol=k^VBByx86Mfx>S^+=40wJYZz#8{!x5@ar~uEXRKg#bj7p zObX1;x-z=ESq-?PJEa>c)9BnN5g>sD%sJLT--rp}2fT4wL=FP+T7&6Gs^siP9612H zOFmL{fN>rN?1YRn^J44;PQUxm+gA+Hx5x}(oF$(QB&-eUQ-;0}gAG;(eI z^5~`ZOy(8nyPaaB`qENqJZbQ5YUG^62M^IA@r4Wq50n7JfB=*@ZAxnUUmw=d-hV%L zWec>6yh9LM9q*~C3zpoY6&6m7Hw)B@T2$r&(fLs?@LemC9Xrj-4;@M)XAadBXWEck`3n!>yv|c5Nta6sHKDxAI#_=yIxA{Ijz~$w zazFsa%6{VtMwWsy<(Sz;N=_Luul89vQg#xwLn7^AvWJFUQK@&(x??MULYzdvK7mE4 zF$xHI#|uz33t=_&ahHuiRlyW@JA+bxASv{RoiamF85vhaCGIsa#VNKZunU)5zb6tA zKqrfFRQTO0BchfeQ7XzTJ`Tu7XB5&j^K)5-KQ2P!ma%Xuk_VWB1XvIWnj;BXARf&@ zPZl$&ik&=Q-P{pCH<`7=LmOdS6Ec&fS;_aRs zwY$Wavm%aAo2;)(M%bk*_!3mLf7TFbd#%+zdi4kCcj|;HOmKM-ei)HYbaqLFGFovt z@6t7~`~uFy!^DR<7WT6^;Vlf)DHiT=8hbRA>QII~-1}aQws!wZ`*O~kB=GO}QVDdv z<$Wo5U41S$Lb~Mm+bP@K%7*OUqZ)kMkXnpVH44lj*$q_&IhwxM`k*w3EW$>7*@^o_ zxkJH&3c?6FgQ~P-3hsf@yU~pCY-50J>O}WQ=|1|1AbJ$cy>bF1dHUf6W9i*d_K8Ch zEVZ~3-qD2JG<-?e*|-vYqUz>}ERD2&0!~yxK^xjra%gT55rAc&>>^tBDN@UviPdog zQXrLtG#+KLdz$iIHDhw?7&BaQ3%3@;Dr%=>B*RWkeu_>j_PfTk0&`HY%SnGS37T5` zsSx36h=OHU6M0+~>K2+76MsejdH)7~#??Ukl)g}imglpy;BQWyX8%VYq?&!s z8VwzsK0Zuee>l`Zqdsb zhgT&X_%v$Aou#ZMXqrw~uYK^fE?z=PzCt|$iP_D~Bo(9#HRK~^6oh9tThC(~Q3vxh ziKQSlGKkG+`E-}DS?3quNAjo5wA>h6YA|D4P3efOtU25B=y0v{53kZo)uukAY`12)EXHg|a2br8 zhx0U>J#H>qcJ|b?V(*8ve=bkJIt^?Av8_hid2h;B8Z7DXeXYXY`o61uP53r?edbv= z$$Um(TM)Lav8n@8oeZ}Vpq~$S&eQ5orIK zYWJ~h4$^G)>1+-Ya}Og!#mlE3Meeu5C4M;Y%kBc>jVtfWO8zy_cD{Q@aK(DkNs_y0 zS^L$xwcSSZIB(soW|Luig!UrOP7|HwcHnd4ys25ed-RrX8S^nevJ~vV-wnaxX2E+OJCZLs2RM_1Ys73ITMFU zr(Gp?rTRu=lfC77b^)w6XaeY$0`xfphF}4S#iJo=w5#1W2V1mnen4;?<~W7P>{6BX z)4?6CS?FYkxTvW=l?53US;iz8kV4LV!nO8NJGLI@E}C3N{a3X6R`w%$AmCRVxaZ+_ z6@2oN8*e=XV^1V_DoXFuVC-$H15}(c&)YvEv%R2Fs}fY;vVLa4WkG2}YeQ+nZ^CUt zz2l<%xD_xhw2q2ywoj6rmxnEvU@1mhN?2c%&QR2{kh>@XZBC6@6yQ`4JCzPJ27^tB zXBHNnlgE@9F#b6t^;0G}*CL!cuec#DWsFFZ{P(f9l5M`>e9R;i%)zoM;3v%n+xHskFN?L_ZZo|cC5)e=Ah$W$P^DJJPYS)-L6K2l1xhv6L0&F)lTLbv_(7ub6?-I3RNU#eJ z9cqf=O~Pw#IX1}T&4422grNBdc~0QsR3MW$f^l-m^k=&9$uD`d&(wxn-=yfTl0C*0 z(NT6RiUW%z>AX3{_~B6i7FD7}mUKQrWUJVLNMhKM}M5INal!DdqEts?KZ9Jo2Cb&*U{ddsZpy66VO&jAJy zVg~3!1_+~5w5<{@r_{?iZx4R>7tC*VGc5&Tohu;R zBBAg6lj`9r>e1iPozAbSJExu>dH4^BKFf691XId!&y`T8V(B{a1)l}>U5r)1bm!J6{VGi#rCg3y)(g!Sl zJ`%XwjSl2UWB`2KGhY{lyBE$Q{@T4>7YD>;6wY%`H|=RBhF|xGB0)25vr)`+J0tq$n$j^8J@PddTcEUsv zcuMrBN=%TBf158>AX(IYHOpgbnKfGFPt^~x&ZMkUY8~uvT4blR*Is76UE+<`{*gURje zOTV1j|3w_f;Wm&up4!HV*z@N`+3=R6PCa%m0RV#%%)~@VRX8mAk0p2Pji?e}DvgXOpltnp8@y5BX3Imv+QM2vK{!j~=9Ai|3<>sjj z`TDCOf6-{_yf-z4JZo6U+(^x7?z@&YD}-*vE~EPXtS0-U*3^49Y4U#_F&Da#n-|^J z%ZncREtwhi1^ba3G<3>^v|Ml{sh-e7wx{{p6I6KuiDWCwhw|n68V^QtI)bE}Cqq&u zlqoTr#G0y)VNKX)zOEQh-jobRW&R5)W|kExE8m*rIjALZ*K=JrV8WVEjGv&+UXWcJc9WggE^bw0)Uf zj#Y>JX3Qx*$oSF{2a35J7b(v`e0A#1WA>Inz&nBO_G~bhh%@WQ*%(~DHhbo zd^1u_(HWphXho{cpYz7WsW7PXgcQnbermPfN3vD2i(-q^6l{xj&!)C?f6#7`f&EAw$2H<0NC}n99s+-t zdisEwmVLxtp@88&;d$-EMB5;>RBeb(s5V?LLpRlqvzyRI!vooMmFh(2rgp*8&}RP4 zkaGbNiCYdo;tSFn;4gVw<-k zQ5WGuSATyG3FTADw{JGXG&83+2so)Vr2dfU$GmrCn3?6fM)ySd(3+HgjZNFS*9$kv z`wHJ|$_P0r)= zmhH;8cZaf^MIZddua}gE=q*t|cy9vrcV2Dqm!w{D9*eh3m+8GT)cP#j;4j&oq&ymL zsV=m8YpC@(zm%z?wPLE!Erx zN_CzaNv6b|gkAcMV}{^2*oX!2u?R}iE)ET#1)Ao(E1C#tvqU5tKu+3+tGOu=frPYK zOhS?&A|+uLnc||D9|fjnu0h5%E^$pqbM=QG9O|eZhK7(c>7gwMhBz=*-yT*(YBBm7hrPX1z{nx#c4S& zInAJ{xe?8JFsj%(+u5AV6vz6iN(_?Wz(ULnlrub?pNk87PGnMeeTgI3#&CJ|avJs? zp)vH)$)+Inj>aRhUHXlEC%-mL&YbVq^B&zX7!F}04lXGV1s9+T&Z%DT=@bT5d@3Kl zJZE4yGrzaLlutZZDJUi>A0C5rh0Ceg_39KQJaD28g*9t$c;M9K)_n>Vt~wu%6kU`! zh%G}VbuPv!(go#Ik@ow98On6wbYG{GX^>08jMG*>1%z5bcxuubg9!D%fu9?%O%=OS2#1UQcNehN}|zp zwb*2IjhJq9t+NR0#O|W&oyFMTEXPJM!|5h5ztPPSZK7M8YuGAgC*9`!g6(3?(;X6x zr8^}WPj`XeFE%aRBjL+*uY|ADePYkh{bKXb1CscZ9>ie|?@Nz}O-YZ5_Z~ei!3Xq& zL^J70Ck;+XaGE;N9D2qniL+wj^qhDv(DM>_^n!So=|u^)(@RcOTo&^R{lwXXD`F{g0b{d@ut$xB$z}$cV5C55}c=BI@R!%m{;l7PIY`E<~91QMC0gp zVpG%aB{)HUkZ3UdQM`BQPZGRGe->{V{Y8Sw^jGoL)8E8ip}#x1@P`(tjjKLH~7{;y*E2InERBW$HT-0`Xp<#(5Dj@mkT)>43O+t!drXPupRPW&45c`>ik7sRhgUlj8OeM$Vm^kp%%=qut6p|6UmO>D~m*y6e zgys?d7R@VWFU{xNM1JQl6cE#c7IgNa5cs`mZ_y&+<)B5yt4)hJ6;WLL)U<^7OK3?k z&1fkx7inqmo7~=^WyLE`%ZY!KmKS@ERuHcjt>`pICGnr7m7V>lBBmUzDyA&0CjMwz zT}(wBOLT?Sk?0z&>y$w~v0Z3=r!pF#A?l%#*tck7u}f(au`B5R z!0)VBMf$G9s?hf&R++xtux7Q2Y{5mTA=71NmZ6Vs6P7gLoE5L1N?1i!JPrF5{ErgVtdBy_0QigcLR z+nQu@C5MiB+I;B$`C$ihW4uIma;Hxr_x8 z&87>*l%b2n=BA6q=A}!V_p#LZ2+N!gv0UtVx8I}y2=@a)ne1rHCW4jMAwPU zK-Xgf=3=9S7wIOk#pq@UFVig&-lAK@E~eYWW~AFCT26OJc%SZ+@FCrW-Rxd;k3@gd zy%M&e`y~34?iV|b9uPZ*9u%9O9uixS9+v1LJ%Xd`%k-E;7wB<`x27i~-i4kNTbG^^ zn~9zlyNaF>o0XoG#1nc>?1%Kc*dp|TLI_N7CWAPB6cjjB8mI-s@PZQ zHL(Nfb+Jw94T-m>H*t&Ik=~YgcX~(SZRlNzH>3B&j-vO)4xtakW}^=!yh0yIc$+?! z@Bw`ywg7!9_Bj1i>`D5W*wgfLv8U)4Vo%U7@eTVa{Z?#9zZ2VtevkjyoX2<)?@fJ) z_oRWu2T>#OAv7lOzBClugT^J^pGFcNO0C5E(S*bY(q|+-j6N&zUi3MM52nwHtxsPN zTaUgd@jmn=iJs7xB|d<@BGEteRf&G3uSxV5eO;p8=o?~-(l;eKOy9!W9KM+*k?0&v zD)Heonb-+5x!A2Vh1g9rHPWz))3g#FL(?HWdmPOm@v$_c#7ELh5+6Y`i)}!&Nc5Oy zmFPUpCedd!J92Q|Q8cGS4`?olPo%lUenj&~d;-lY_A<>U_6W@{(Jfj)qMNj!*mbm! z*tN8<*om}=M2~1uu^VVHu`6kDNqk02h&@V6itSEIi7iY^OLT~q5!;)V6*6C2U; zVqq$X{exB%`zEaf&S(FmwIsSkYlH8cL_j|fdysx8(S7<6x^SA8X;<(Y#2l`*R)~LvuEZ)l#A@+w z(KX^frfVgZiLR4adAeR=_2>qPwWk{;Hi~YNSVp=T+t{V)cI;r+p*yjQ-G=TKTZ!(G zSbw@#Y%{t~Yzw+yVgu*_CmRmp5Qh(>hjENOj2@TRYDA8?tN$gH~8CUQ-u1ahUy(V@5y$)W>iA?mCM62m-u^Z_f ziH6d7B$`I=i>*coOCb}ouV-(1w!$s(>Nl|`x&+3KTi{Q z25;h7=Vd%6(P{d;_=V^T5}lzhIu7I!eC?TdG zE$LiDDKUtZmY_B*<6J^nF-K@Q=Q7HR*-9%oS5eWqj!LMETd0DnxQlAe9aKk6JVq^W z{lP$5M}ir&uGpNkp7S~Ci|I%kpdqI}NE=CTiZ(_QJjDMbm`>jjTa~^miM;eZF-Ph9 z&NX}>(E|FR*!J`ziO$lGod;+t(Qw*K?CZ3-L_25;NqkLPO0<)s-RBTT=Ol*t} z7dx1a(D!X39~~`zF*?RMh_R9=NXI$%F<$&$bb^>-bfTDl=p<(sCQCGdP7#}fPIZ!D zn)4~9J3eMO`!G|YU38WtzNNFpf1S>8j$p16!#w9G7K;BGUF00YV)53{CC*ta6>l9~ z=A6TFCplI)pJAnw604jquv(%~bdA`z=~{^pTPJoKT`$oF>Leb}jS?ZYNfHm~X7Ml6 zEzT8eb)LgE=SysNUce6L26j3xVwZChyPcP?M}p;auagStKS|_b3^q8)!ah8 zziMu&;d?c=DqGiY_p5o4dN0;G|)ntzpl>$mIcVj4B$)a(Oq zndvLK|FrP#mEqtUfb`%EEW^Y102u+^!_p6S`595%t1^=4>@%{sEoBtZ+-FpAXUb@z zzt8C6?vycLi=Q#!Eh=NdEd77zoLIAica%(~=A4?7!`nutfUS9^gtvrD1-tW14ett>1~%xK7Ty># z9qigOJ-m@*2H2@*MtFzFOlqF5IWxQ^WER+AXI6M`$ZW8G&FpaZojG6&n>pbgJafS= zHgm(Bc;C6Xv*31w0)L8(wtyvK6tg{g8T(hv)UuO}~ux3&9{i)_+qG!$G z>icueB}ChrCDr$rnoEh^G)s$JbCwb9X_ggx=PV~W)GRM{&{;t=saa9%qqCCeCbP2G z)n*mZP-a!Jx6Nvzr_AbNhnqD-TbVV*J~wNL<}YiD9c9)L{a@A<`^u~*I=rl}mVfpJ zqRGpKYWeqUB>KE;td@W0CZg5LrfT{3Zzfv0Y_4|4np=pjE?cVQV|FXi*kx zvg|2#h1pB=W!YQo4YQAE&a$uAA!a|(pJjisPs{=Sd0XwGu1*cIkD(Vyjbu{X>KqCd-tVqch( zM2nV_)!te26w!+1RIwAxX`-FV>0-Z@Gek#~GsUhgXNjgNXN%oi&Jp+5oU4`}gY(3G zGv|x_V=fS#P%acV@?0ct=ebxT^7D3y=sR<%M&#%4GBtcHx?J>3xk3$Jm#!2IQ?63O z*Ql#SYn5x%@b&6i(OTs?HGJ*5UUXNvK@DHWZWIkxZc@YNoSQ|zm0Q&CIpy~tDIeOjIt9Y&rJZ`JawXfpDgcx#mB z#XUSPh<8VMQQXM$lIY;`vf8fZE24?dt7`eNdQJ54d0pJ=@`h;T^QO4r&%5Hjm-j?ZpZCShFCU1uKK;f0F9SqppMl~Qm_ees&tP#E%n;GvXQ;RlW|(O4 z^P#vG<|EPF=3{Y3$tR-0&8Om~lFvkso6p64C0~d>H(!cdOTJQ{$7_BK?=JZUw!HaP zEgz%b!LB#o!`n=LfIVw|gtv zvE6cIW#2q>tCe-#F?H+1zP8&C_O;!{u&?blg?(+eSz(8GY0d2lUr+h#cZ2)pZg-7% zc+EZFj&>*t2q#K5M7iI_E~0&^+)x5Q``)DNz8)#+m z^Jo=t-*!*XYT{m?)y028YoHeA&(hlBKc;n1m-7jO?dANZ6D!ovmP4psM%=wq}67iqXOU1RLmx;TGUM~I> zdWHA}^h$|#(yJueOs|$`3B5+#L-bm)rt~^-m(%OTT}f}ijqLO3P2$d_H%k~vZxL5O zZ^dowN9gSmM$tROe@5@b{hW`c4~Tn(K8OySPof>gdeP^_ZJ;lRn@3;98|*FgO}x$C zN8iD_>|OLdaf|8u;4!w9qF>@`b`AOszGYXT--|m)e-L++{wS89J;jRCUJ_=}-r`Qs zKIqRrO$Uf2=|Bu(8yzOT79B1wPDhAK(vjkd(@~N-Nk@w_I!01w=vYY|rQ^f}I$lyI z=mc>QohXT}bdsbF(aDlJPN#rtvP;ov64K~&Ngbmz#Kq`L%;NkMO%s=(>B!(^3!5pa zBQ#4=hiSH?4$vG4nKW0Nr+Jb(Nb|)NqXpth(iK?A%VyD4;2Ikl-6|o6?v=pnts4WM zd+S1zVk4*%>r73o6AfY`X?gJv(Mn>&X=QOUXf26GU?Sj`R)*dGsE!!agi^KYc{(A^ND;BecEP!?c6g zgS4aA1GJO){6Abu`=QG5=4NqjTZp-xOboz9oJReH(m_gnatF*f{!wST_ApY%=XBmP31qrPJPGxwH@ZvuDup zn841X(=eTVip~@}NoR?jp=n|#Xf|@#2kBg~iFCf$G`dhMldcAjZK4F-h)wJm-6FPw zZWrVJRWBj#7wW|QNllU~XlZf3(X!%xrRBu+rq#s#L2HTonKl>qJH1g{f7(f0PudOL z*?ivXC&hMCC$@)H5!*!@itVF~(3pLMHWxcg-xu3UKNH(ezY;q@XNw)DbHupDHmEOt z3he}b7NYtz9dp>8ZkLGbNW)>^8fMGs1aa-@46(U%rr1K7E;gTLh%KhsQgogpMd!I< zb7-E}0{WBKJo>ZPBKn&Yo%4Bz&i@cwL;n<8NBRG;pV@Gm_i zHl7|9n?jF>WzeHyljt$A>GZf5_p;_Dww;zkdG;z=Ln1!b7H^9?McZI3IFk5 zz^aJjap#z!68IR$o{_-EIKGtxKG$nwV(V!F#rZ{FS^~}4+h_~$m@rX?-Xe*~^j1mC zqPIyRhu$uU0(yreexrBdQTBS;UXs_-4wAf;c9i7(w38$sq@D2u`(gT|BwwOWfv=6L zMthckgN6CY><8f~M+Bw9p^i;vS1;>*#J z;!D#~;!D!f;_s$q#Q#Feitj+niO;3w#TTa)#K&kw@n6zP678dv#TTPh#FwH~CE7}> zNwktymnfgskZ2XHB|e|lmS{h%BhflqSG=e7#FwS@#kZ#o#FwBA#s5qjNpyfVmS{C? zBGED0RQ&(6nfN@~92f9BE$D@~jE!}dqXWA=?T9Yyi)dGI%V;-=xR>pYi~E2kBvy(lZkF@>dwGi^SY?+6FiAcCVpN7UDdUK2?aF z!GG<(vq;P)(7Ow?Glm?AYkJOjsn_(LJ*W5TGI($o@+r+*wKa+S z%1bkPPJXR(mk9cC*;Q$e%Pw^RR`4#$warS1*Gj@wX73csmC}6M3Pe8QQM@UCAb0|5 z%{i5$3SL%@SCrsM#2<>V=ObZHW%)w@58PMY=CK@R$S<4hi4iwV5<2CwN5oMGkE3#S`H1^2qgT*F!K(;8(chj_BS&)FA0ge{`sZ{vtXz zbl|(w!#ek09Y2uRFvQJ<6^0GJQf_O)YzTs8Zmm^-EC)4cj)NL78$w&v#i4E5P@5iQ z(%Dhc)DdC5J9TZ^s*7cmG-YJVm%4Uq(yHsu9s`EA3KmAnM{7o-fs)~<9;h8B;gy-%p^=F+pRy#*kV*l>{47LZtv0f=N4 znR0Et;z;~h$|$+vo;jQ4uOct?Z->Z+(6CHsSl`Zbba}K})N&alo=!_L*&AX@!{bHN zxvolXS4H%(t5&zGrYJ0bw}?i1{S|RNgmQkJM$RMdTVdSyE4|Lj>gh7~{Vce+&s3IW z^D6EGWa@TBESlqtJD+#YUaAVb&kv;q=j-~A8^Y?_`%3q%dmI7MM~+t|t)%B>$HecX zeJW%*v@AzSmJ(5vg~w*mGGvli^mOFWWBD3`i+g1X9&L#z<+OAemyi#DJYEH2M;+=r zVnZtn>j)KlT}=M91O?Y;U1Fo4`eEcZ);rcmJ~-zjsxN~n^?m~nRRt_=7aRCZ`MsdlDH*$*TjuyoldTs^%Kt< z{lv2vDA(=OCc)F?b-;O~nX4n^J(NQf`GQn{5W<(UmQ;7H(PO~^%gC3T6sP8Lvb`9JxB|qHA_tK%!2a?lhzOUhW_pZNjHch*PZPQ7< z3v^Y9cz)tbos;6Wj3|N%`GA%O&6E3gK(NPoLm8;nhG1%Yb1A5S1^fE=SwdTN!r`Hn zu_Y)FC;*y~YRbTa_V`WbrXAJuj~qdrk4`(cDc*jtMp}XX>n2^-6R%%K83=Deeg$dP z)Ui49Uiwm>rr*@B>(fuYGPwEb3 zAZ@#8YlBcIdUA=PE7Fcn90M&UE9^Dh;idjnB)?s;;zf`}GSia>n15(pDYR8XKVKi* zFsMOgtORw!4MPKg0;u1hVWUP_2dj;zW}wbTj_CQ+jPcbD)|_8}{5K+uGOl0O6Lo!~ zey?CY=JAEzLA6jFG>;gN6GsiuHNCNZg#0wtwb7qF;NE1VB{Q#KS_708Du5T*0qTmZ4T6ftU0I-K_tJt6|nO*0eMuljMVy*$4T{GC93ODH&R3DY>&BFdysMyCvZu?$a> zsjnsHDZ|%xr~!4Tx5G+v9_I1}@(uDuq)(D!bsu!IG}qd1xOS;Oa`pXEPg8EQN`0UL zZ3jyVGBS8py=xPdhAGlnnU@MQsHlbv$ZqN)3W1KuI|%yj+`cu5FgBDhNJB z%7xPOQGzECYZMRG&yf91@?!)~k$2$bO#X4|G{GmMTcz?V^>T4_xHaA*A7YJl#f^}| zgB(aj?miZ+Szd5XSio zFp|vx!Cj6$6z7FFnzNLH!v1g@W z&w0kzeogs9!rQ6K7@x@addl7N`GhL13LXp6qbnmI#&@eEv*wnBv?CiFHKjC1vQaj# z0CxUY%eSs3DSe?90O=sARwmQPMj>ItfNYXNw*xyQkn>YoyKsG z4#pajwC1rxL%)y!a+}@97(cZ3^J^GN2M_`B%G%@CeVuYrKmOT1^!(R{P=k%QgO(_H zUC`hCUH?;0_#yQ!>Ut~-1zb$4ZcQDN^UllX^r`wU`aON>`7G4-TmP&qy;z@p4oT<| z>T(~wjjAq<+kbyPU}nu<#2N{j0w8<+unO9w{N;$n9sY$~ct~cZ6#Q>(Q&Wg-e()R} zwuX0-%%fJNf`$%0tXf(Oe(TkGU2FL_wRasJdiY;?^UBbL!&*pe06T2Jm5SSM42xn| z6ST+}lbxfVeqM(||321?UM37$mcD}rYV9*t&{%C{8=9*^#0 z*92t}@$)kP*0RnE^5A3NASp<;SXwey&Ax}a9nC^D3)5@l)k@g(P09&9{{VICQ53QT z)zwm^fb~^v@%qu)?*1w3$xl#+Z)#*Y0#WxJpBg1Ev8Zg$qf)A}Gz3IO*jYg)H z_OIYsP5ayul?(xjxYb6?bg(r5%Z1sY&4|b!_*1SsXU0>O;{Wn*g}*8noq zmwtkLX~UmuS&*AsGDQX2*%pDcleN-Sv?DY*5wn5ysgvuM5Xyvjy}~KW>{cuZ9xZqh z;Woi537&|r@$|Z#N*6p`X$RmT{aE-68ng5*%cNhR1dyy^wy<$Y1wH_wG45~5nsTWq zcaxDjx#9Zt4=NUU#nMrR3F;aBr3! zraFk3;nmXd1Jy>fs*qKbMdfo{^e*T1O8r!z-L$nqLmcM1i+rlGzMB4mE$XGi`jw4b zNbc{K{`X_<2K{=S_fW_WsFh1v@eIdrzd5A$90@n{|Gn!f5;hFkz~b@00BQ?1+}eNw z`Ebid`44chg-ok{Y{e7KUFK`(hWY`3ZVQ5;d6O zzoz^v!lMk{pYaT)_dMat4E{FbD{4^w4S?;8tqJA$Ami^vwlMfPgXb~6lJN_K_vH5D zwv4asNlPk;*neAH#_TU-d_Cjtewm;psV^J(@4#0}Ew#BH7BWAO>%tGl^;u?rXh~*& z(ChMXvtP({;TPljAhUnSb>Sc5dP}pP$aUc-<9f8&Us{scU-Y_lweTCiF8pR(UoZSe z=R8TGit@GKA6yexbedIBU^D2`xpX8)f%6^!zUQT~+FOfXmL9RWN^aZOs!yL*Y&X^T zh08%|`K?qcS;Cb@5Mw@P)k~F<00=)txUUK>uINrHbRj%nZ!W!E%H<5pLcTCgjrYnF ze2gB*$JW$x6OYzUQtmuQcDD8ZA6JqqD10Ps|k{WC0e znDi=4YmDG2me1Hk+D7=hmAnN{wM@iKsb1ZV9+>==Zux*!hP%$+@Gin-{3HGD3IZ(C zbmY1p0CJENrSMpak1h2JgctDq zV%5|LjV3%vT}C;|VtoB`<^3xBC*;QJ-Wd3bpY*2+#t{pkTPuiuNR3-2jc}}&M(8^a zC=pqtW68?m^~&kwcQI*qcyFxVfM6G=wTp9AwY&%-y$S}G75#D-O7-TJA%c>+WgP{j z(lZ4gqyK|F@o48d6YnQ@ob!UYZV66nmPl_a5Ii32COIH@g7Y%x+Ga~jlbuu0E%4-p zL{!BjCra=nVvj<&;%5I0%b%w7F@mR97vbf?o8E$_T6^NAlvDPKzX+Xm0zb>ch9-vf|yS?u4zCwQHx)573~41S8&3CcbB|FPxuEr8sX=NEV5 zb)pyHC>X$6s4k-%-Qabi#2ke(-0@g`vHA@*V@q}3uoSS-AD~cQ8Ovns*C;HssxkVr zRL@247Js;|c=5gwTgS$49;QO^b0_t`-k$Q`j3McLh8|hwbW$0zKaELb<1vY?7z|!R z1s7Lz>wTI$$3a4j7zZ)&c}j_@g2C}IxrNJF>Uy?O4~Uj6ofOec zefqagA-?5@Zx!zH(RzQR_4e7N!b4RqDgt@(!*u#_I{E#~ok854I2426s^E#zMpqD0 zeS)W}l55&zd!>}CSV?lOcF7@Jru<3Yjp*v-T6AXF@THkjdhIRg;gkER<**O!1m&EE zy-8+z$z-0-Z=u}`YQno2Gy#L)nSw{7`L0NzDg;l)JE1gvl;BC|5LP_M83R{M@>RhT zagobKW#p$T5w3bFIEx%5-W54z(x)lSXyiD*CzIfgbdi_se7P_3n!SUh18qjW-6yb9 z09)sk+kaZp-RHokmP0<~rCxQP*>QZ9&3x?xwYdUWHYxBoDUg@%9lj~HUgv-+A@=AQ zdqr8~&iwdw&(h13B#}@WnLhh`EQj{y`jmA4l&9tQm2q^q2S zLlwGOf#_DWYll1#{3NKgf($T!82gcje}yH7v*{(Y#^mtUgJ z`z)a6=^?ttSG>s2B_!z@A$iCjrJXBX^g4&qz`{-NQke-&ApFT@phrySDrlagv-_Oy z-xw^{DnB#iS)hk(Q5WNoZ9V`#XS)rWt?5}p{ z?|AB8cw3^Ts!RV!|r zaAT%$;~3zBI5QV#O9bynxj0)QxUE3&cvNCa4}vG4e2;QQ<9^sj@F>Q`SrqC+ZM~>8 ztt%R@ZNdX&*-lr^=x-GbR;~Nw6LQw(YxS z=yM&b`@U11v?bhp=AM^@dpx;$hJ4AyV+2o8lJIgDuk?|NtCf{!0R;CKJYQ*zTMIcV z=i~bEtvc$OZfX^;-sAS1`!)q+(_%uJP>TJzq?R4I- zoi?sCHIAtsWLNHzD>3{EI?1kNI78T#-^rDCj4QYK5mjefcI7_Nf5^B}k6l^o9L-y9 zo;Tid^IZVzlbXnOWz@I*sGaMbG2o#LL>-gS^JTAF z6p!CUouuE{c;gfV({TZSjgHOz=m1XSy7U}IurJGcRg!hf(|VCU@%tapyGXT;Dm_xGXS@N!n`kOk5jg&%ThT4v33os7J`q`^uOX(@mMnQB- z2`~R23SPcUzkEq6!qSEdW5-_Hs5enztNvq7j(%-x*0gWt&HH9*5u0gIfh=UF@Q{V` z7z9@ZPsGn-0F0g@JdDnC*pe|)5PF0emWgQgB0WV5@obINU)wVj_bch{!7O8EX^{&2 zgdE}rWrZF(&E>n4rTS1edNLLlyL9P6xl!c29QqCwx>WMhaV~9+`|Nc{I`0gw1DEaJt$00p2RDdb6=o2AM*BsWD}&;9ZYZdIY+$Eo_} z_WB_7TwAI4zZkk;mXpOSN@_hOPEZhX#maL1a-nt>H(!5oY}~~U^(OcXDk{{yRam3n zCEogV)%LjK^X8pOARAw+9nlgQM{^x4aNaZm=ag&WMRg0Fj7dt7K1%Q;aAL)SoEdUG z41&i9o+9tV%LP{jPsHuS!iiaLx||Dw+X@UG!Z`2CySS$M;yymrKgW)wd+Q0ReR-rj(rb4GFD_ zLk-O#A&nZ6#(*752(ZTb>VKYId}&6Hta~K5gCwLsPa;_bxxeR>@{OhGEBU&(a#+s5g9UFV_-*+u+}I^Y$PeLi%zAjKV3}Tb zE2W?|-2e8f7DcIy?Z%RAc&IGX^1@-Q$rq#I&ug-yIcSJ{$DBi zqkEtwej<)!chmO&A7DqoeQ&NSpC<+MJ1a**L(I19G}-GO$*s+C!I&PuMwfNEX|Fzb7wHYqMvs$e|Tt967Rrs!}M4MbvObuebVZGt~6rPY&t-q}QppwOa7aW8;?&ZQ;8GM?d%K+^h48 zrvai}mmH-6D14)bc2>)*XSL*9zQLnJu+5HqnufT4r4c60of_rzUau&@lTanBu=Eik zJr9!-0Fho5JP~)tjO%uho`=b1;5<@r-q_`Gu3Z$IuWQZ#F!Hj4E*^>V5aPj=Pl}|0oav8@Mh=dNsO=)?#*#n7&4q96}~;H=NrA#VxH5I znSXLqBC}eJ%ouja-%o@t*VgXNL}>p69JE z7w2zuzW1JUBVZ~`J*vI~Hr7gpR+D8VtP{3+6s-F0LZg4!o0`#1ALv2FJ3D`V)AoVw z^(|hWbUB^ea@GQEHs&m+F?it7D9Ob82_A>COk5RwEbN0|!K({C4!u^I-c}%ZJi23& z1A-@@T_(O#@Hg-r@MOA0fCZ z*D>*Sf_o`}xUGT4oFShySX7d&0<2|j>;J}W(+waA9g zXpX4kPzxOHjl-{K@p$PK?Uc86>Izc>DOE-Zi~xv zSsv>hOsQT){#*q{`R?KdV5zn3a;}MkWgrMCgv*R0=tsVv<7d+Sc_EONzh5C9?uUmL zYIP0}6I)AXN|GIEQZh;2naGMzYl4rFyiJ={Y|oP3)wvK4^Fz+|>vz1|?)iCbv;(>9 z<|e};n=GwYZ;&IA%5XZlN>&ONjRD_X41)I)JPrk70LkDgG0_h7g_(~zN@X&Cqx%ag z%=xh{DZhNqwb=@U74ay_WSuH_A|4{RIX7eA1Ne+j_0n{#}PuXs6MV|V-q!0T0hMViOYPAsOJT(#Y> zHDSCe<125p5E@I}lYkmyc#QkI5sN-mfmw8upOM&SoY_!6P?s@&68LIVEO)fFxl92} zLDXUdq!{EHJmN#c==_VUaoCSoCYGdGUoCmpGINo9I&0CxFtT#Pld`hCXGCf~2EkRq z6LCuuj}kly{=tgi{REFAoTb<8)D*$f<%Pg`q~LrExq+F!L%&Kn_yPDcyGgj)gN&z` z(GKgNlEqTpkMg$%5A5l%Sl&<~Xhy!+G%T!JTt|{EZi!j4qNArE%*18J5$x2m3s;-4@8Q5jn8ae8tb?bM3{pJY6b7^aT&)c#ovgLq=b>7gj2G3tLe=zrC zGyl|W8^%?(ZSk%O7}hzjSX;_=2!=KQR&pMNPG#s!hQEwO3F(CC8yxJuL196aaR{B0 zhEEx!Vw6u#@)rg(}f&!&HP+=bkZu4<*D5Z=~>x!Gu>B3+;@fE zC-^DBzlUScQ1I!3UxULCD(s39b|t|sPz3KMcpTxtxjft!BINvzYC;uZZ$Du#O>eT- z`3KYA*5wuDeqIYh%Y9pm|&;3^A-uF&US2gIXZ zRP=8GMRD&T{%z#Q^WA$9;fIf0IaaI4QO@s#Csg5yM06LxRSL3Q@Uqd8E#&yg;{-Ry z>X?Gk)ZRi$s@xEoiqtWJr^sVrxr-|Wg2%&sE?wJfonW$NiWF?pdRbVr2={_KS2^0M zvvTYK1O9b6B9`3qyP5t?St8}NC4&YndF{2u0|zdCt#52>U-J3aY%iK(-V5UIC0{O|A`mw-6OKU0Hwn&m%D7F>&E_N-K8Bh7pnRTDloaRx+uJHQ2-e3 zIqzCi)>+Ti*V-AuO=Bi6?k$5`zu`8bXZCM^4(8)Jw$DKfgzsBF~ zEf|uk-^`C#v+S4j)lT?e*k}50?{`b;9v-!6)Oxpo*~t7kx_y;0{%rK>l5vj1$=ioI zo!kwyp5fZOp5gBRTwKi*JQ_!ra_VlzF|2l8wSGd}SPdE(&%d~q;6mBcJG?^qg|)`a zoz$CB)kFG?b?Z>w!wU~2*7M2v*k13A+~nooOi1|V{Z$3=2?c>C(U@QFq0uKsz1JND z7Xzx(V`=opji}y%eW=!kt@@4KIr`OYPA6B+j11&P!bSkWLGT2)TFPxcF0NcA@FC^8 z-IP9rrRPmulIgxG;=U{NKEY23{yp42=;Q-fm$?t6_^2(*A%yo%e*b9R+^?bDgI=cz1@i z$mCtsC0&laEvW4yMtQfA=KRhrH6M`r1Gw@a+XXM{>ue#%PhKjxu!eRkC8epog_KnJ zWoRl=#|WMxFM;JQt`rC!k7{t~q@Dc5WX%-mLzC9a!kR@m3G#&A>LUF_lw-1fk4V3O z@Lf#)QFCt9UobMsFO@S6()h#uq^yEe;MIzq!KE#Wu@ytwosb}3f8H>Os)c-VeCkfz zzvvLEyMCR1{oumfH|kZBCY)cs@N;C!`|vsuWL;|`b2eW zpL*QDb!+wO-xy|n6QA%+AhSf?Iy8Owv-A;FD}4u0Ym=pB>-JG=ole6|Dt8}?_(ZW6 zDcs5;zQEv-g7YaAJ$->#Y|tJm(5+z&Y9unlcU~%E>4mTKud}wJ7N=GfZ?x~JeR0#$ zA5&&tTQO!^Qq?_G*E|gT3XQpW3&oyI{&w-~{p<9b2XggmANGECWcsC3rap)W$CN;e!N;0{>t;}^3T;LXea*KBfkYc&{FL7i^8-&(UgTbudj`* z`$A3srd6XSYM(vcB1_u~GqwzrlvR>t*!1EHk2lQbEU>1L0;mqHA5#R@kWLoY=rAbE z7#>!Zq;6m7XFuA3TAa)*{*YL5Ve_(UDQ{k1q4jvH<$|1xe=kVcJ!H}S<;zdbeI@G4 zBir5%JcDBI-bAC%O#SxVIs2$BhxH%V?~3cVec!t1A!|mZ92&bZBmVUFX@jx8$~n>f{sB?VL=L**fT zQip}+gbwd&Z|YyGt7Fv@?AG#I3|lx9y{9J(7}nS#WhxS`SD~zc#IkZptw&653~k*# z=}(M9ZfzoMnkDpD*N#M^h=piq=&;#+>vXH>*TT2!h_H`4y`VRHgtHx8iFNXsq3My& z%E}rmZut6uhXc_-v=_xYo+@v&D0~TO!ZQHu)wj%(L2mw)gpIs2L9a>2933sMG8Zm9 zs9!g^b(hPsmBdQ66Um%b#*xKNvn9kbkRVe#u6h$=>am$21oOwWY4r`EtHxwDU`*Nh zvq`}f3IR(=_S-`uCdLjJysVdgd+M(f?tqTZG|vAN*I2D8Ezrmx6&0A*sCf#K_6;*sH@S(iWCyw#?M$RAYmOscfMG@DwZi* z|997aocL0QxCwIx{&&%urB}b6K62gg=Vl(AU&FCLnq0Ek+R3rFXB}~^eJh5%tn%JJ$o_J#0=ESyb+qNgRvE%I6cynI&^Zoq` zeRNl^T2-soZbBx4uz z-RIR(Tg9X5_-im6otO=c{;*5hIaj4`-dCel=;sR5Wr;VB)6iScHXpYGp#0D#p}^({ zL;o=DuX{r|Cp5Ds*l-5|BlkJZK`mOt)}j)>frn7Uv-+3eo9q1r49gyo{=5RMJmc@{ z?WaaX*z9YCDp9KUfYR9$-qyL*#u};jZiuTy_qaAoHHr#t;nIi-zr{O33}zYNSfzEdf|YD5$#>^mlG4_q+8#> z(f%9d|NRM7CHLR{!z^Y8wd-Gp=nJx_%7F^Psj~lThInEixz5yW|16IEb{^(HOun4R zj=2$Gy$`^OlQg%b4TNE2O5mAsLg~h#HQ7p`;_LPBREmYhLXW|wKfNKmM(4dww^68CDFZYHEWJ&p2BQ{4h;E{737;9oRdSC z7>PUDkY_v_f5sB%tF4i?$CeH*zuy`(KAkCyr8|`jm2MYpLcHCd<5_5QpY#n0^~ScI z2omZ(${7y4U{o?jDYWHP1AFbS!ydz#vR^Q}x5<1?^zJ9Nc+C&7theqA_LxW6#{HN* zEx!oS>kJ}&t&SN#`e8X7b(!>wn1BTzESW5w(GOpCvaMH}YmVm9rwL(?GZ|iZ84TsQ z<`WaKL^Twe9#4Hko}av&ja9O{TQ|X==f{E>SW=(9&p;>fbGY&Jk@awh5%9|%)-nY{4Jj+taA}7|{M}d$LQnBLu&Pwvj}kofiIjB`4KK`8ML3ud35Z(0t1?5DlI_ zSbZ7NX07jkd4`roW>9ns_eTv@jLqJf+COj3^tWed#?s?Cg(sYxm4qu3-fb;!%wl+y z_x6B>u_zcTP2RK-Wxq#uKpus_E;fnL7rmQc=fjdz3bl)J2-Ws*aBzsZIqh9`;iB`) zkImwViYFa8sH}&wwh=nipDa*+T4o$%K`ph%%ZUHgvZ15krW|HDP%`}k=o_bR%6&v% z{al3g@}Lv=$#fiTZ8W`ox&Q#QOm#Xnz_}{$V%vStZQy5VAxL21Tq%6#58voje9a!M z8WH#FGUT2<{tda#g2GZ=#hYKGOX1nTC1YIXR{Y;f1$|k!-TA zoq&}nDcNZ0bSxWs0~4|jOj~4<2Kci8&1*vUyo-cU1vqk%m4~B3I}cltF349b%SA|3 zT|5!?qR5i za3aFv^b8ETPoR)D!Gz9DeuVG1Fol-<823Q^k;`_tw7)Vjof_=SKk36U^pGSd*MHP6PjA6x;*F#^Vre^s?t%I7rJSKR z_fR>b7o1!0qRJ}v%B%$=r*IdmkmlZW(;H$d#oopDc- z7CI+S-{h#kJaY~Muya4}om zu8#gn$y_0|ECm;z0$!37k}g<-^c_P5(o9lpYBv{Vr(y&;$8e9=cLgT4`McR;xyKtk z>debyMH}V}2ls0xIuIE@?v9rs77|lX?`%>X0xvkY)l$qW#EV<$&D2ZH2iEJwgJLRa zZ?BD8Vx*w@&J4Me!`$N;G0|<7x{q$Am~rNw2qeXd6x(T{N%bKwwB?71%c)mU4yBJW zVfB5@M36}ar$$@@aKoLjnNKFTA~4>~8=k4)@8qp}hCNZ)rEuqqq>3gT>H7WU24$C> zej>#Lt`bc>tHflY`a~a*2^y7U)#D%6DDf`xMwZ9YrG~xd>cRbn(F23^(Aw^~2K~qr zgEfZG(qUsOk9ezsks2Qa8;Jvb+qK@K1dtOn{)(^pqGJavT-|S)Hr|oX2yjYZGh~<4^&Z1B^1?g z5A_$ZS+#*TY^|C@Bp~$x-FA`D4sPYbHA#(O7w--L`sC{-6cUU&Lq+Fj96arZZfeE=_v(vdWLpJeVgp6Yq7e6H03)sQMqE#vsxd&417K1p(ah* z7ZpJ6sXe(apCnD=i?bJhTR9;3?FDfFxIRb1%e7QacL}O-1ZboT?sa+(uHb2cVq52M z7v30FjPZc2L%+Cpja{YkRn+M4`uB}(1hjID+MCDP$CR^6$kTNdl($XAF|pb2S*!*) zK_v^r!3R2L{|1VJ|KX7y%0)Yq80GJGZQT<|6J#x9-vVVBfv9e1Om;F3lDPjkP72)= zhlZ$IRMdS4%#}SLL!CQs6lYIcw=K`FCTiuieNK4}YuaOQ3W>F5&RaT!=967|MUgZ()4%%@b{i#BYw-`=8eEUfEX^C3H1_MlzeuHJj4#~>7^M7ke{Xwve9 z^{`o$#0L^T*_s%f{2QFr1@(>uFr{?TSKEYPBuityr945k3Y#RKayVvJTZA z5+{Tf%m52$Pk|bUH38j|VF>KVa>9jv@Gk`f2$e&FFTaN^@*&HogZ1x{WMzW(=SxWc zi+nRDzBYj<(oN!lmIpJ?ec>#>1xRGmY5e`;ugHu7|L5!ZrNi6Wu?4u5EinD38xbCkR^b*v=Yh{oQ(N9=N`6sWNFF5;nqqz2q|%b08)q8g$?FliCuZ=Q!+wK$%h>+Q zP@;9F(|8q$G|5%CT8!*LW?i3>bg|`S(RiPC$f)E_tVwHpHD&}$;hrHUWVIV%t_JHS zpv-^+?@S`n$tTsmFfNl5E#i0VAfwO>^G$B4ryazo8F>2_lFtqM%^P&o=&{%M>9N}x zup~W>R=~658N(UUzXnsM5~H@I^#%<~n1R(3&g!v>7TND3W%E~)H-emCNlvV!GQ6x7 zejZNlr*%;;LSdm;|MDdmv*5Ro&tYdABamj+UwCw>;*C`3S^2G&8j~WcL|pTDU)g#M z?OMDApRid^C_j_(tM!R~=2`45>TgiU$zO5VYNG=`w31jah6uN@I8Ioad|tK{GtT?f zc~)my8Od7I1HPwlO`-TL^Cwg8OiHZs8K{np1|zcU8cGRqb2Gi9tLi)uQS>N(w{(FL zi%=$p!fS8ojD7oi7hrOtT+`>j@e%wbFDa31(#Y07uR=0A48NvAQQWhG?^hHCgqhLs zufdGSZ@VX1rWgR{bw1T0Sago1g@D?| z3wCAaQ>yl(-}6eU`P4r*rKwc?GdkdBRc%4Z@`kX$(4rNuYh0{Djztk4oa%wIg}K_J z>PKQ!9pTtSJ3c$DWajs&A8KL|{su_7T{6DVM{(oG{ zTkiC`e@J~#ZN?S>Le&4C-h7MUYHHI6eYdO-!{diE$rg*$?s7%PrGUs?9Z>o}U`g{7 z+0(R)L=Ut)|v2*WW0T3~Tq#X2w%745NT@<8^s8$uzuvz?>=2wfZc zz`L`Pf8*-W=yXGQrnR%SqovcwCZ6zNaTbx9^yCY;0Lgy(TpJs2|)HJr{BE z0ocJ5&cRQ*yJ~)U@#*gm-Wv88+Mt`oECwrr(a?_?^C-KbzntTdz;F`rIfbrzf~}*J zXsZ%RJ=l+jJ70ne(ab?$pGs?tuhrx9FGXDUW4w;fc2h#3K{4bayMbbXwEI!v*WV~M z$WYwMwSPD+KvMtz{CI6%G^I*|T!K#&gy5ot3IxPYgAIteo_6@MZUo1=O@j3~A4WDj z+~d@Ul7~|9B|*M(GGnI!ez(`mPlXXWz33@I1F@07Iwc%U}=PDI|OC(*T$ULZ6Q&&e}XJi^vB&2($azu|l+J)n}?rww0le89lAPmIWSyJ0dh?uM=N6 zB2E!0x}uTDj(K97wWm_@vtNr;ShwNLO=^fg{OZ{T;q>W;+&O#Oi?r~1OL@TMrU{q^ znG!LL?rGE|%zF2rjiXm_JOvq8Vuz1}DG67-X399$E+yPHR#PTdcdpWd3e9eLNQkib_j)*pz3W@_pgR7Ouh(pH#`x*H zf~bXyiqeB@JrfsCG@iKV(`^+NXCH_2ss4~|3O~>J~?SO~-a@6_3O1;@MR?7zv153qzsMRZpnt6`V{89%Y>VdKk z${n|@-@8esXKo|^T-NSm`B0|WT<*8Re94emfQe*PLwimkBf0oz8?GKSiP-;1B%$=@ z*o^BWrY2}XuA|r>=ouXQ0yVB?%=V99N^=y|$h`4U>Mim41m?~>sU6zjb@M$~7~?Lh z7bx>H-l%T{!EoCDNR{m1`<{-py~NpK@w`}?@f~DB_ZFgK^94Ip@b~cO!$qUJ-89c| z*I-abD%TWHo6t#zj_t}fd$PGKCE+fq3#fTa*=op*w^CzN(1=j`hF?auxk}xy*-E<` zxyWB+?9P}r7gYR4Ps!DgQ~R6Ddqg;?>%ioeuZ-@^Ew(9KwW`OUeJ#@6zH6~gEiBd# z2V)DN;2yPGu#2Ms!HLl|t68#3qXA3(q;n1E{MBzqJjj=6Z5Bjc%nhhzgNDwVG^%38 z0?JvVqmph1{PC!(_Z%u%U7}jR+?o0JZ#H|Q<}@{TTTjsM@(PZ1hn_pVbvJejboy56 z?kZe2RgRFo(4f=oUscA3$^2=T**s=VCT_ZNt7xQCrSdIW%#RR+*Po^VNc^@(`j01a zg>?~l%?38d4!S^!Mox_&yS9cMPw<&5-78ILiXTlBWg@O_9i@J)v|Tnqn$!AcZ2X`r zaXs!0r}9)x)|i2X?#R7A0w2-XY-tPE9WvzP*GO)06f=0Fi{vvZ>K0MHGrbF`RV=?5 za?)VCEmNX^u5SffH^a(sGFbzxK%gDgd(4BvOgTP@VDJQrXD}a!00Bi#N%NR%N82Hj z-tl*}%^sYL$&hz_%~6v*m(>yjSNZwd{!rCnd|1~i7Sh(PO24N?ZiO`lu%nmdO6&9h z_%lhR9ZP;#TE(+cAR0QTvce$iMG17CPi@r5_Gr-^#3`g?(#E%XcavCA?LeZ6(a}%| zbM;~u#H189c#lsHdFL$YLGh9}HT0Pb)qFVYvEoxTK{Qw3c$!t&KwzE0_A1=`zDZHN%UIB^wrDY&9c#aH)LRLM~ zv+MtU2K0;;)S&la9m_FEBb<{vVC5Nc+kG{$J(xnC-AW%T0T~GX0`z>o2R%Z27+U4@ zZyfF$isw#VG&(O7^cxpEE4Vga9}J47h}?XShMx8dc)HWDIjyW5U$?`0rqv-HGB`hy z7l&wMBoJ^ptv&A}7``Cj55~$&GZLUtS6|3immtHWF(@Av18o7$(dWpE6TM2)sT(ox z&ZztfF{qK}v0-+mjkedfJ`aVQ;lU1CJxK-R4MD8YKLQ7RDpPQ#pS{py{~da_XIycz zl|K%YU8f&8Puo>7nN^-)S}ibx9c|ubFwb?>478iCHdr%$zAVe7++~=s#xMCl6a#Et zC(?R#f`3)tG+dO%l z%+U!r?+3VTkG*-k-wbz~At4pMp{D#zPnSJbV-H;W3LN*f6quuOl_C5<=0HN%B*9Dp zJX8l5$-@&R`FO4;Ro61S`n+&|STDOS-X2z<-WAT0amGf(dbq3wVtH8$unG9OWhphN zl_+T9a`LezWId+47{6<>0ZKQhTP}>|bQ9j5Vz1&^o|A`B%%4jeK?YU%MLi`DcZ-pw zXQZSI$8Zc)pKPAravLm2nr`9B*D}#Xlub)=3_kL$iN(V6RP!MH($f#?6$`I{Esh{$ za#Le{k&}PJ7o-Lb+nU6r$S;@33)OrO{T(Y5_^dzCsP>~7 zuo&vJrb^}7%7M?26>k*l5LjeSw!12I*h=S`Ue36qaen7IF@bygt>D`6T;i#JHrd&_ zx*l-|+G%?lxjz17sP|xXU^-new3pYsQ)lMA=sfN`@h(l2F=Tkc|NM+=BsO;u9+msi zXFvH8nMLIWiN{NVX31x`13oXPsxlG8IVjo$7w5|848Eu{$RBX7-xFI_z^OKK7N?zgB@_vgv&#lBiugfI*8XR&IAInaSo| zazOm~qn=mPRDtJC`hhx6b+(X_QRtwnf*xGUY>-105khFYRU!3xG2g9-h2=7ZKQA+N==V~SxPG5Oy z3F!6jq8$D3`mz_O+v%y3MQ9S|r^t&tB>8ReWvVwUrVof#4TXAF<0lkX2EEJ^O#gh|i8eVHI9 zw@^D5#)s=ts3Til#x~^mrVF3*X%A(cukw1T8a_V_KEUjJ)`XpHiEx3js~K=8K%1BD zq0q7h?JHP_kKjPAA`s{tnrCeElX!{3#K24hxuo^LJtE7p-O~xE;!~R?h}i8#a8Eh$vBNpt~7UK)%Jrn>mJmS%}mnTz-f{Y+kNg6+zIM*0$X zc!Hd}#gCT8cMm1z;W>*q(`hHFLKW0?j3^$>E9WlWOKdg7-Of?_zOnTxt-09Y;W=!@}*)XGt}it*0mcvz72Z2QxK&_H9P^~PMnPDAh1q0-Dn;EMZLo9lWg!M{{BYnrSkKX1uh z>z%VmL2oXvb4-ry>Bf@A8iqb>rj&oZE|%er*|c6h4g;*0X)Jcmx76cjP3$S#I5eO_!7Q4zbhNZT6737A>-`%3#!ATJs z66;ABBG%>8KpJ%&Ii%ghKGTnvZ8Z_*X!-#WT5k$iSQ}bJHX-Zz)#yL zSXPt(kafS^(=|d;*6_UE#+xlBX#$7Z!v? zgq7tLgcbP5kn;GaA(H{Jma|-z*v*Uq_gz;4p{#9@J6mttZ-d>uEGk>Nx@y^-bh}pj z&@lDd*L-ecGZ~@Adu1{^wg78^*)HW1OTB>yIg%ItjaaK1&oi#hnbp27K+`VCZaA>FO%ihB)^_1dawk!xZJq{;oJdMP-K(KgR-TTXhVCVPIBKZLrfgtXxA{J-M56hxgSByTab4hgs9fC_s;z z%;CJZ8E2MobUGY}TpfrUeS)z)^id+#h+W?Nun-lKray)dzvu=)P-(T$T5!vou+*<0 zgg%@x^)gG~9!u5+c!L52B?T%GAi;kGZy8zI!;r$$BA>1bs8~`SDX*l${FM;L#nOLD zBWWqlXr9r#NRsF%q4F;cUHti!B>$ZD7KX&3pD~;r&u@koEuI}ZXU?d)twR-KHy#^C zRg9%Y-w`l%k)dho?>d)IinJ?jawwLgUnh5j zoQyOWSGqqKzNztDSiRxlB&avz{-~PQ=h>at8v*pzU0z5)t~gYLcT6yQCFH+H43JTU zMF4#UPeszvQ%`_c3>Z?5D;qFz&&!1^edu41*3jC2^h!TW>f#=bW)-Tq`L?+9d{|mq-44033t3T& zz-|w>{9Vw(osurbgLEM`{XQW?^ahzi5&M~HMRzBi+L&7PZY`OM4hoNr>M5Mae|2dY z)*%GZm-%3U=KXeN`}8LR?oPI;rB&|%nC$X5j<9}S>RlUodyJZ7y*{R98do6+O9G|3 z@9$z2tImpZht-<1CIPbgBOCSFM1* zG;GczEPXHZu$(|nY0#1zr=$s}Ft@7!k;J2oCQ+DL!M@@!;G?s!K~J!?L8k~+vccE- z?BI*%KukZ&W$rTAmkr@m%P~LFq@h~(`Nun+e^UdX&e4ZV5hV|$1Y?(wQN#2U!wlxB zr2mbWpQ}b`i6}>D858hg62x*C-tl{+pX@IfBUF8WsfWmJ7$O^#mlsn@ptLhzy+>;F zPfj;bC(2r6L<%l>rQI?A+JAMdt+~Q}frlxr6hp-#C80#qyM)fK}QWC%xS%xu5aJlB)@)skicoo}NnD-1{&FNx;^McRY!3{5lVdP$GPfcY1*1A~Ibnl8f9 zDa;aY;)Y&P9wXS@Q$&pcD{PGdIP98!7KDNz0bSaTN8p3&tSdlj+UbMw&y~GhqICKR z*Tvy{u}X@nY(9Jy*~dxBtE1|(&*O3*liTgpM?A3ip5E+bpvj+>&}L($nuWut9Jh`& zLsc_sU9~da=)C;qTxY3xYZ%A+uW=*83IJaL2r|}aPs8sdwK}tia&sZ8TI)I!|Mmz!=$N+Qd{`k}3NCZAXg7%x(Y`B}{+kIu zINZKOAUJ?;4=6ptKAgLb5Fszrd85z^$)z2M<$zi>v@E4>z84=z7o#Ng8`@4U!M5$i z{|KubB{)9gPe^r2UpX>w)YKE#FnmRUUNW^4*uF6Am@Licj8}i?8@3Tp@dYm$!k^bS z4BBJn{=;=PIVU~b3z6K^(@q1#Uj7k!21Y=2&DwZPv@uN2{Cu`a!D%+-nf}wo@}zy7 z>}e*=(K{oK#5!Pp94AlT^^fS|pv|*Zd!52L7zfhr4lm7#f3HE9!^E?VC=@Q`h#!39 zCw}vRc6Pzl^TFINYpvpt`)E>SY7x7Jth)WMNsDLsp|v0Qv*}>ru>I+`M}uPf`^e4dbmz%T630VuU)oS>`Z!chx)gGxIAdu#2)WJw@&&<(<>9+y z(1iVhJ!4LpW@4N*GX{q1PN=11=I(nssl`spRmL(iGPDj_tupmWO*^6u2khX+=xjxf z8)ROU^+dFI8B>9V=Rhyo6rsfjqHVQvFJ$9w>0AfXZbQpIe+|37N@cU{acjNb5Nr9IaNl>jLB1M8zUk(d-n;vOcv+htk?JNi zRWIYBf{7t@DVzaScmZ_#E#qOosOsN*IGRo>j+G=vcv+d$5C1OrL#g08l<3JdYNcYE zxa?P*TU`rg=BI35(RO|-M<*Ca<)mMp@4UE(WBYVUz=jxlK-O!7=m0Ah=D`|e3PQsE z+lX$=C%b^H+-S`l-Ts^YQ0p=@lPhqUtbONousbr@g|550NqeoJG4F(E6M%1dubCwq zD7u=YteUP|WO~R{t2UZ=HbKX_ibRWnk8nE@c#iRw0d*UmmA|{bWRO$AGQ7CEnFL1V zk#8mePRtsTlp)pR*J(#Q)+tu4v-3sTHk=`SwLNX~iAeM5ta~*I9V0I3HzCb~_Kc)R z&3S-`$#JHiQ zbV(#lzM`&zrp$@9Iin}6_#{t%MIefdHp}0<-UAFv>QPb~B*oj%HoxGfT*+{JOXPO1 zva7CDJ{cq|#2FrrX=z3X)j5Avr9xle?zW4K&dc#10gYnC!oGvbVVS07>B_3+93qHZ z$!3}@B%x3{P)(^odT5ERY+`T>`lbO$4p#L)tYjOT?_t6$nuI@_Q3=tfs5Hd_;Q_c1 zYNA-+7Tld~_LFd&n#zA(@0{lsXeK)xw;LK8)ml3CsqU;dZ{v7{W`t$zv1i7$ysYF; zMdiiI+zwdbCpIHnyL^KcE|GnivF*DxZn;mqn4bvmxj_S34`K!sw7&+npAk~V&BpGG z%SQOV1Zfrn2*qcajfDmFYpD_BDjjMd_K39Xwbuyd^*o*O#LP5|&gM0PBq@Q{3aQ#y zJI(GjDc)C*J&lGCZQJ|mX{EaTVsT~rN!J6@F9_zFTj*jKS^)gTr9f5J& z)1v#}d9TRj|LRH3q1}50!1UfOW7e6x>i#f&Hd!-6pGM}^HV9h!VH0uW0 zaurcq{I>nSxHLlz%`4DUx9CI-Qm572d+!QxoYU+ORv- z=A?^oCq{XtnS!4p8Ac}IWI`r3RK#MOIl|7zy$1T;ytbdm)0qO(xp#=AdSe5}cCuO^ zVyq=scd?<;p?0E~*+XNib_aQ($XF?uAgIqpxkJMls83r>6oeDV$SdgP*CaEcIv z1)(_Q&r>wsAI#g{TzHTI!PnWu44NTMZo4l;4pT7eMJb`4;bDrQ6$_Q^s1z{a&}Gz@ zs!HqJ^D4azj^$C%@a?n$c2AVRom&h+w5v>q`#FNy@139KUEELAvv|E<5jS8bkXJ_f zu@C0)Z3eP5yuo~Wuon|vu&?RNYHM{E0c zmMcSKDFNGMY!xH6`5sV?C?8076wjFs(|7ml%?lr|8ph%>7|WvvROGNzL$Dt&wMI2V zs9qEe>{>p_A*B|vvHRtKl8%NQZTkMgcM|oMAD5f;DQ^k2s)2~ybC;dFP>77)4BJ}# z>23IY?zr)hOg`X(Q5)bjPzAuM=W?|pRnZ91Q7LUI#tsgb{l8*`tuyb{L%5 zA)vd=v;6wqO1ON8C3(f@j0%e<#%{`4g~@^p{2y=5(f^22&E7xTx<=gkPoutwO069K zoZ|Lsbx_8FF2KdX8J59;vpe%gadMzed6zvKj}{PYz_e9}?h=uP$-Vc87Tq6)bQoY764cm_+R?-oml@AN3*@^hksUrkEF$3dX6vXIC+o?^f!7@t;J+aZ8~m4auf?7OG> zj``LK#To0XJq!syTtn3mHX;|iW}L%s-y}wo#7=wG6;(0A0NRu03s^NcTAO(uJWd1k!-JdaZX;F`6_ix5d0e`^99G8k1ee0rdGg&UxQ z3L<}@`(`@4EZPwiClC^DCKJ#cv?6$9CA(~U=+~3na314@+vA092G;N{>t?7UkseON z=o{j*PUcFjx}vxims~G(b3lv96nwBS$AafZgaZv;Ns8}K}^s%CZkdhr~MZI{D8VnNMr5h^FZGk5RRnR;G z8KGoP)DV7Q7Hm(CAp{##Merd|UIJax!1mKS5NW4i>(#Wza*fwAZK;sPy2-Zg&9sX+ z#CWs~PdDvZCxGQM0xteYDpM?An6JVo_8_#gG5;A=`ell5o^4j`_5M{T(CG~JBmozy7unx2h^B}w{+j*WjT&L ziOE4a>>Iv@&z5-{*_m8tTTbn=sfckY_u7HhKb9D+W`l>R?YmCT)--NE!`X@AJ4~~; zXCgQ&&YfBuMWU17I+CcL?E62DPYtZ>ipNBYlilhQMo=`@RqA1rxO!Gc{$+ZW^!oN5 zgTQZdIK0JtPxy00^b@55^O~~P5}ci!J!|E-@up|}XVq=*P0GYtAl={2()qER?`(OQ z8$=}^vGt4>8Tx^ZZlc2nJxu?UKv81%$N06O0Q_Z?mJ*yIHO6=9%1V61^K?Q9jRcqA*7 z;%|{p#H+)(m~g$5AeB%Pybf4YI6oot`=zwq8jbGsU zLYVHif3$IMhx7ui2PwKH^9)YtaE3l4QYbTvtd7qcA~DXHKPF?I987lO`3^IB;GvyQ z0D8Z88^J2AE*P(Fh4QcTlq^HdLhZNx#R7|YVX&;OxHBUuxy&#pkSx|7jiJ_E=_~6e zXT~Ki*iEghP4?abRE52i-^}DMM>7=j6usJ`$7BqXMy_Nq%TVuEW{qZBf-%D3w$V_ew6Tuh3@l(gAi+VJj#gBNwGIH^ZYD#5xhw% zZ`r%d>}Df_DLzzEA9O7=^H>~?=QKfdlB9(dZu$>l{PU-*OQ=F-fA*@i$gjzB1 zPGcj_D{i3wEU*U&25GQ!TA2ID{GOswfRNXn)a>e~&BE&L+r1oPJU&?q4!b)b-o5N! zJ>(GXg>trGvwT4Fwt^WFrWkklTwy3bHemmxJ1-qxQD1WSviW7zJJ}ubn6bOmQyqCs zNS*w#z>Dn(enY)|`@4csPbBz zm-o}5l(*SOI|@|_6EBDNSp5mcXb2qC6pP!|DXcR;sp^A$MRK^@IYFbtNch3*TeS-4 zXO}Gjx{PB4Sd%A0N;?N6PYynV!e1lQh7m;N&M=n*^qBOH!P0xnY8{=8q?!ftJOgvC zOX3m^{tm8`dTp)li;`~WS$*RMBr^AjdClbj!V~HbTl}rS^#vK~2zc%;Suo%;iOgr( z)Y6qQ?|CUAd*`s9q|{*+gAk1IXpvYS`*9>NDj;O!%!7}eA`;P!BWdwu&+W30Ki~_gFXm8o{p4`!T+}r?F zP>MbqkY&$R2Lq2@gux{TR;L^N9@?-;+lyDnS$APno%f>iG(Hr@qvC0FTy-aP=4qvU-mg2kSlJQQx8Qn_Z040603R+R^Sr&_P=0bq@^8|gMahnB&^}jN z0XbL~7mT|$ZdXQw9#AjhB*1?+o6Mo`)b+mnt0ik2rF(AVe;y{`p#YDDT{8+IWuO&R z7Xqr>i~HdG@qBNTTk@n}kGs4>c;I z!w-aa%Wcd$?Txq1X}S+yvz;#1tVI`>2$U}2e^_5UIk;O|IVT<^sd}-5s$)*0Gy3JLt>>L-ln~4U9YhY zN*k#$YqKj`+9H$Fz@Qt1EW~}fpZiKr*XalneLL?^vRh3sOz(qH8iZ>^#i9dBSi@D(j6wo4$rk^aW}_yt&JU@{$Gu-31&=B><8XO^V5$_N94a6VKWVM zkFI^<|Nhw#1d0Ech|Zh$gSf>tmo2`Q^xo|+x@_5n`nvyrCh{LEF?cS#E&WmvK%GAv znQwNS`=V~m=?spe1d3|4+qV@ZtL$lUGZ28B(R}X~Mm4mPtay{V{_zkP%kZ9OiG8c4 zenGD`8vS;j##i^XTN91vb}A@I=pFS|Y3b5=>G*#3GUG$(mioL|4u!;7v2mNa9z8>V zQhEf-Z+1`9`zQMB?h%xEr#$#9uH%G{S}JR%FyKsHkryUDbu0JkZeMp$X&W?BQK+-E$eYq+f9kkQ|L^s>?m ztwOJlOtUs|6(*-=Q$+>qtZfT+OzpzC`4=6tzLnjj+gc=k09Xm~k(p$o0g#{IZnD~3RA65!<8XY2x_e8|7WO% z$Ue%jsr)G!*~$9H;-b_Xig8LgcspFMQ|6%oXFH?7DOnpM=Mjp|K7q&i?0tSiz={*M zBNJn~&piO2QS3@saFGiQYo*q3^Fm`W!#SX8fw74XIY*L0(PkjXv2@gSNGh|gyW&Ay zK`Cw#-FOSr^tADSbL*MCi|G@b!$78`_P2}j1Ugo4wC3A!)%9HOv~}+;cqL?|EKhN^caQWp$nk;kzq~p)Xgz@!1 zv@%{sqS-VLolsuJ5)9LI^$I)%Z3lz_2&VKMgKhi4KPI&>)_#STYx+|4q*`RQkN8b6 zZypLBaXyigyY0;%-2z5+68QXI(00hK{w#YPrCXAFL8$9ZtbuWqwLv?OmM3{1eP4R6Z?hX$a31Zbd%P zXHd)?Oe0zAtR!U|yumVGO`C&gO%dvHeU|W^QfZIEIppGs1HW@e3_ey2odO-G%w4o* zc?Df1vde$?xv8)t6G$-CGb(1rMmq9WmQc1lOh>R{A`^AX<*Dj!BP`_Te&&7H*~7sj z(-Mqhik(f@R-jLpm|;mHW^zaY(H%|CD`CWP%ALQ4WB&UPAZr;t06}*J1hl2HcpV+f z=FBy!ySu_~0w$u=Bh9k$Zw&FF)(^61g$q65JksrtN}Zus%!A(2VNtEQyAi+RC3yjEq>32A5aF3k=H&)c(D8zO&I%zR0u^65@?pO*%5ra$(a5{xc+! zv6||P9<+)TZeIN^)lh~zex%6$xHZy#*S;yd#4CPHtl8(~Rle@F3V<1miZx5D1|lZ%M}nnI zSnp-8HC4Q81T0`2RDs&<%Ik9zXRQzB{%ef?Du1z4vOuM| zuk==ZqQ$Z>F;4~3gfS+5{tEql=SBJ`MaB}#kx|SQoNnBa-<>x&x>*8%(h9w0^Bbtd1EZR!X?(<4V>~U ziTl;m3HBYuZN&kwaKVBFhLPEeBaV*9MVwg{*etP1EW!3SrLFrtE^oi*=AxV;z!Tt4 zXm5o1Z`M|yoH{fl$H=uM2L|q_VJ&{18IQkiwU4)-b9h4dnE<}2cG$piHhye;mdnFU zj0CJ(Npq46s&|^0=pL=4V=e+cRk=UG)J4slSX1>K`7?$BzNBd>(m~NloIAeFf zl9Rr2CvBPLP<6{gQ6#;DM^)5ku)jHL^YZxKEjC|RZY%6eD}ULr?D~{R*Q0z46H2C) zi2b(VG`<*6`i z@<7*<3<4dhrD^)QfmNQAV{%feuLxbINu8X?1CkcT{`pv#Ozt3)lgTikar{l)c@v4_ zA9Zgg1pl>uY?2bkUziuZEbf`P)+reA;yL({X#V)=VI`Wsg+%k;jo(_M`J9Il8aP=1tvSGTnltMmDrfyp;V85VF}@7kQ*`(y0E3>?DL#>&k!)$ z;ZJ7>M{TDp>v&^mcET{C1%2-lK5Hy|sL)5`K}YQ*-RS{<_G0p}aCKwk zRopVJ?nQYOzmE$w8HMg9qaK;&c?zkfc|wq>+kVq$p>Vy32)sEW0`b%oR&v&tV~AY{ zL!_qw{Wz2)a~<9H@@~u(J$+VWyh-Bg+#6z5>}{UNM_{Rf)M?1}mhH=O<#ZdMSls-( zG0n;t?FJkD#$`=3a0^o4in(+6AJrR;UDuA^c?ujO2Pd2#Q)kqMemYL)b?JUK!<8<*Sq z;$xd4i8lHrGsXRJ=We{TFPcbh;X=;N0IP(x*WBzGS`GmdTxaO!im=87w(}pUcFJT&uFW_;<1;G#r&4p$A@reC3=s$=< z1E?vO<~JdqI}SFbtLvhUG?h@(T#LUPeb(RqY&0&J$t7Ke@=;Ov@hx)$zMUc9*zDQI z##0Xy8}XYhTkx9=`r?7W~_r z5*kaTJG6{W>`$y%$x`}L)_{biO*{MHS8KlD(CgP>#+UVAFP2}k279kr!=GH&tZ(g0 zcnW?){y*hX?OqMzhx>v6H=#K+C;tio^wk$3aU2sXi(Sgd0e8)m$4m1~LY7R>xq6Ad zo~DxZxi{uF9Q0j#XVT{PQYotihi$;lyQd zSg-)U)-8#*Z|dJCXj!!Zol|=S{Z_U4w3M;)56>tU@6;ox*TB&BHTwK=*ne5ai6>_# z+>~pZ-{+?N;-`5l-5JRDF-$l#WlHuW+CzwrpD~pvdqUq@4gK3J8rN)i=Q54T{^mQa z^?(gC+V~s&e(o`&b(^W(S`TdI)ZAtIhTmr%9h+sK0?BRiy~ERBgmgm`fwG%wRhU2Q z#zVeUlpcPo$cM->$H!kBKH}m=Ts@OpdJ|koSH3TW7z{Xx?9Lw=re9kac4;!DHVHq< z$iVlvAOW=|)s<4KD~9aV3TXu_P%=0G>DZ;d)c`qDoN0C|ge^_@j0)!KeteP;VKDF$ zsllA-vn_rOt@*b(h=0G-G#l}BuC#fg;&rmJ;qaYvKo_vN_Ql_3(y4D=1hc@V%}Q(_R#05@I%|_=Gftf|OP18; z%sd*TO1Vkm0CU5Ne6zu6UaiV=<)m1!O-|08YqLi`Ds8y$&M}-FGs^CpB33ll4!>8u zt$tK=JO0uxD719pn^oetHQk2q!`;aI9nR+O{62Y#D_1f=KQ0QNzLM{^7|A#Hmu&9E zN$y3qJgb;cm<;clv9a<==EtTe;bsz15D*DB)S$5fa}8ZtwSHH<{;KK;Ks7qZ2P#$h zTL>`^NfP*$$Bv38`B@;HPcwzMw5gNcV88*cNN#|*lz!y;_!Zt?xn@~8hft-EJBXb@#o#I#3@t0M-!#8f+vgN@z z#8c%{eRGvxhkSk1PPqc7cjEfyIeJ|V`IOEuwXx0IC1lx(rD9{T=bAM_I%&i7Z(a20 zTPG=l*}Ng058HawP;Vw`@%atL-JJ-#Oo6Nt(mb_L&GF$O+@5ly*I$@@5@+w;11&FP zLFELli5$Qex{8;)!=Lcj`@uvt?5F{pu7#DdAv=vi$Q(Q}eL-id-M9f7UUwk9EEmtc zs2G{Qhj~yU%75?sh194U%etO63a>Tu98l`WpZqjZYrJ9#eaz~ek|!-TKOe`J{L232 zHtcsClX!935q$XIL1=zt+Qq~%j{8f8UBPb>F~$Lk5qu)pUkPJWk`GTv4e?8#-|;k_ zhM(fcc>1Z1p*#H|KJFR`Jluem(31SikJ$Y|5ur+DHARH~nLeT4Tz=+%NtHSH-xKsi z*OT<-64Znc)JP9%;B>Z4b@$-EYd^qAgxJ=NN!Hq^53Z!@875w@;dL6DT z6nbnf{lSuhU*7?cj$RS5_?{M+ecB-~4vYHoOJP)9`zIFX}89PCWyEbI4A-Q|@2K zdxg*DOIM@EZdkB%PY54(bM@58oqqKm&}E3XB(8%Jsmq@y^jeAEWG=tHqOLF3VDzSm zkw=FOJGOkqk-?IKfjsSh?gl)}xKO5vhoNBz8-h zZ)~ie!GCS64{#$ocN;m|Ul;!Akmy6)8X3t!>+bg2f8eyklW#@89&$W!cpOOawNs!% z@)rDMS?(&tq0g3{`ias5#ODn(-Wn=d(R@}8IP{OE0L_wZ&0lu&MLTC~T;soGIC0-x zDllo-nlrVFInCHJVd2HV^nok-Zp)M&Ej#B zVu9d>N#n?05nUlQf77;Vu56|tQe_{~wOy&kjIBz7iyA44xhE36Jai(RB0G_N#3ZSh zT=)eE8+rnUzIY8okL`=W@6xy7_v>IIc>IC&`d`Q#vjp)S0Fl@{P&=H(lB zJbv{TG~bwjPdvJVQx5W_N|A@$Q-ruws=l^FHx=Yndg2W9qu_V?eD z$2ACfHy0Ns|Cpct8!B~1=#JUvYxlfw|A}VBmb?hFyDhKUlIJzAExi{+1}g)?x~Zw9ykNl*$R zF5{YbAbySmFDmZj_<>e;eJ-78+=Sa}#ZquEiBcp8xmyAL39tA-FD)pN+DQq$X%o24F|0 zn{<9zKo8kPNWsn0U{8!_w3tR0HQ@H}ysdaS2O&WB$?^Im^OmLZrCQOEQZ+HgAk!e@uhm+Y5b;x5}Kse==|Rtx)TuV=};*oO^GU3;z_Ca4F>J z(v?r=LR+s={A2P~+Nk|@eBt;Je8EV_?nmm~!={$1>UQv7)DG{kA9wj*Q9ym0e0}mC z$;h@m7T=R*b*2h%Vl7VHENXW`h|gym?XIR4bcwLD-3*CMpV}o4)pSYotq^miQFj<%Esrn`|k@} zwFh7w*lkM&+w}l@RtD}Fy#rs!UVeAx+8RBUmyEePdn0vQ>bGagjKkx{AD%H~k01YZWa{{Ulp(|v zZ+z-V)*Merb5u~811fO#c8Xs+H??b^{81sDRO;zokR0jx&cW|VbL_xhQx_iXpyR(_YrpIK0EX(|(I#W$8aEJeKniLX-%jkF5 z{Xa~Wx+Z_@8`^#%-@_cXDU8_y!e{?Y>Q9WJ$b^` zz-A)z7W<$~uQm`5eJB5}|KIM#!8$eRP*G)S%0Dsn-*4U{81v?(+%argde)A+Y(k`H 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 Ql`ng-Tz|d#XTq|70qXiJq5uE@ literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff b/invokeai/frontend/web/dist/assets/inter-all-400-normal-f824029b.woff new file mode 100644 index 0000000000000000000000000000000000000000..db0f8d1c3e8aef8508c48833d5a9efb202a0f25d GIT binary patch literal 129252 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:pNEhwkd-ntpgnWg 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 a_rzl_Zwe?QAX};U!MBHqpsFVk5B>{4H7Mx- literal 0 HcmV?d00001 diff --git a/invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff b/invokeai/frontend/web/dist/assets/inter-all-500-normal-94e08ad8.woff new file mode 100644 index 0000000000000000000000000000000000000000..ec2c08d3a3ea2203fb009c7e073237f3c6d6007d GIT binary patch literal 138892 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 z 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%0D5D$TmQR*jfKSRBPnlA z@4G_tgb5W~oVRjT3khYQls|npm}1qr-r-^9v8`-9J!Dr6x+c?a5q@r4 zJiEttqJXSKmSq#PwZuA=suBnJaHb~xq4!C(EuojM22C^ zxuczfnIJN-ncCMz`Pb(UPBG@2b|lf8ZZeZz zZHwdFh2kfP(@fvLrI%lh?&Y7pbh596#feW}2{Ny@r4PC<1#$C3_vqfjTIu);=eH=PT zh#RFWY^(RQ58Pxg-C(BnBKPXHVfRj7vne2SdZoNUV7$B^LfZKUV&dbns0YIkz-KS< z70;47zO=eVaGvwC>U#Ll^ExWe4)EsTv{5_xG5kT{ggVfHz*n9;7ENA3R$OebR@3#E4F%8TIWZg!AN{i&Uo(MBkO|1~SBJh^DXPH! zzQ&-i0J&KgOm43WZmu@ACo3@7lqPeYo`GObq^rQ-AbQP5d-n4rE}%ifTB|dI1Kx}g zha8~#SOc&QMetiF_K@`3+2)`7%42Mm8SZXs^2B!jO=q-{mgJag+tZaywHM^5;^0Q2K)W%QTNZuzX;>t=DcE?lVMZE=iQC-%Y~eO z^S&xOf1A`{nq91cKa&SN#?AJts+@r&9by{b$(>;?S-6R)Je=eOSLR9?J*1+~)`~UV zGWIVP^!G|l;R(>MnbhC{1j-8&szXWET;^9b(!qQ}6r|H=62qG23by%oq@ptVE#j^9 ztd?6E2*g!XY%zO!hgo0u-uBmk)9ExZwA;X-%Nra|H^Zw8)0exwie z%+y?+Il`tArh*>a%)p<9FMvZRQPMdc0EJJ3=YHgE(8EoD#Jam6cyYEs;^?&&e5pvQ zLQbm9cV0LBDamk4atR=#QREc5;XI_&+y&_T=8^|{hAsF+P%^Q3Lgg1$)4%W4`Yh7( z1``|B!PG~UfUgvTvgW3#K~2lm5T3%4r%`s64oktglasQby>3A+>9YnZr#jh>vb{!` z(9rCh%QTGbXrxsBu#LarjfzZ3^(+faFEYvS+2KL?09DE;JXtIYekkTcDJbu%OPDIE zr$EtEI+}Gr0(P9Y)n}p62Fr`UMg7IaE08-=$t7a{^M?zNnD~$7DV}S!&Y-cGH(c*X zD*)O&Tam;9TUmge$o?ZTx-!>iRsL{yIUUATZqIgif(ZYA zcv5U}xKrhCnqO~rZ+mB2p!z>NnZvLCP{(n@UlcA_`kNs4`@EQc6i!_Z8F&dhdLzjw zc4u|IfkCL&p%_wmVtLmiA9l-NAoY?xnZ-O>NYxK{d%w1)1wMlb4%g8J{QwS-R;PFN z>Zk~M{AFz2%0O~pzq@$#mp1dE(s~)V0#mlb=ir9Igy$=SUyJrjo1d<81UI#Zs6LsM z4yV0J{D06W^*?BA`G27?#DQW{vT}QvbK%TV<9S4BeVDIAf;L%!&9c;D{k^oI zX~~zWa><3hJbJx63Dj3A`Grt_dS2o)7`H1vX*{yrm!=UehNx)o!V%uoG>=%EinOm; za!zTmfSWNLVJvwua7fVl%pjjW8`PZjC{K1Kf`We&eu5^+M9T}f$MJ)`r{05hLGC!^zvEV(5!0)`1y?8Jmh z=k<6DQ8{miUoNF4PiTb(C1A(s$L=`?Iih(aAPr=$P*;9&WUk1;3-zHHb2%Dss9x=7 zQS7WruY7%`d(;L#%5=fD%l{g0fT^RFfm!oMOy& z9hITczRPoWIjG1bOr14sQy_9mVK7D#D&qc`!`Z^58n~gppn+WH@#DNubOrYlLv2cu zYXq7y^hlq>liJA+Il_B|1d%8F3qA8%{$~pCEJI>2t2;xt6=^nA^vJCwRnyR5aF9Hu zY#%Nj6NG!D)=aJ2fUre8H9Ji|St%9B8yH61%AZ{AFho}jcK+NxY)s3K{ADLPWzMvU zH=gwmsC(U5Il9G~c1M3FH&_-157npcrbUq3M1vmbSW2N9ddc!IdBd{8i6z0y*wO+` z{PB)Id#jAA+L+j=GSq0Q%2g&>hvB6Eiz)ScIFzj_Sfz9zWlhE@v%{O*0c1#h^GwDg+5k%jvF8cgx9okytE*a**ZebizatMo%eyA&?G z>11|lumN(B5*YU+N)5oK(a(3ZG_2jc=op*xnelnjVKr7u*Exi>yJ2NnXLYzaU)3qU zKj)pA3&Ds;Rc1IapVMujdPr4~cHtQTbcq==W^*IToKxF#L>GnW3k$`$l_ok_9T z$37RmF|=eyqN){5?kOM@b)vOG>1_OzBA29Ec1iv}FwsZF`!u&Opx$$cl2yVYT3R&%URgI3O^>a42w2%QhJ?!>E@9KlSL#_n}F33H58u|4bXnq2?7)Dq+S z=XzWPV!2I$>bs^`=PohUz-kz|kkNF5aLId0a9xg1Wc_P>rG*R1`MH(S-_J0N6pimt zY=RCs-R!R{^=bWIP|>P32UR2ek9%bqK!t7_$oi(myknZ8l>I29*WnSKR}YZK)0Av> zTbt{3*TF%t%qGd9<59{fxE*KF!cu#U@?2^A<5S#yhvM$*67&9TlX)!D55-edvaQ#} z01*Ol;!WiUh<9R0d;*GRme5RBe1&v_NTKb>WV5f@>JbyXrhRuK!Kh8+%WKuIu9(SO z>3L9Cl!vNt22szdYg+5kjab@?=V^j8eb4!f7{8`Ua0>?hT zAU$iiF%l#Bsx_*zn2xuqYL<J4|jtcsU_^PP3dewfe!BkYbvG zBMgAb9v4LV=->nbG=KMa_uhVH+m1F}RM`UN9|ND@p{5Xz(w@MEaPQmisaHbEh-^FgK?f zBgNj;-#Ke>__#kab`3^f@1a^g3I6$KEUwXuU#dg4czmS|ig(qAr*(d}Rg}PDU+b?} zzDP1(o?e=haY6XsB}%r-F1O;Q`hfT1(EMN35y|j>q16EHf1%Z=1ckfzXvU(Fy~t#ri7RuS&;X7hImX{DoUJQ1MzREiPIK2-bh z&e67KvbQV3J1+Ee-TI;DPRz?$gxn~i>aTMF^MSjljp8e_{vo6R(FOX)iaXK|!fae<`a!_G0}1rj2&0W}hatMM^)l ztt!Wi6zlAm9iKS6-Y-479KPkn{W&?L;D^Ph8-|O?6Lsk|9ZaoOitzS#_KwdcgpJzip1|Y=80?0 zyNtSm#C)%3)HGTxcF*c>J%uI)LPE$loAKw}#pBQx%&}_^75ZpVH*c)vE6entvhq1v z#uLj#P^X9wHzEiGlo@Kd|BCA?*j03Z%{>l72mh9tKkg*ipTw=;EU+&bM+nEVwv+Wq zTooN-PgE=avdT1Pn(OeSUZ_~kn$z^E1>Av{pw^gL%)>q#AvA^2doib;YW2Zv>D5B% zfqOj=Pb+ezP~qQ(L6`&m0Yx@0MumE{Kp;-{?{~q1a2?2ZhuRF*7i8FvxUW-3>cJ1f zt%I24B1-;SKo5GzMJ6JStXlv}xx8{)WW8R>nwmggu zWqxM*#QV{vd&^>OBqWT9;D(2|WNM?u`b$i1;E#+|va}4vr9%#q4S)^gFE6&CAd<9u ztS$s;_e@NzCOf1-om|q3>cJhj9g_gb)IChkBN$Cu{1v=RHg=2d+_=gb*}rEfn*NWk zMBKlt*{iN_Y#0(C=m;dsSBM`hGm~)=#CD6|<3Jn#!D{|9?7}$)$S7WKzSa|MG8dnC zvZmAkG$Y>{XKw5)CyNP>xMNB+6c#$dtuMh-?+MR@t6%W|;gR^4a%)NIs+9XidM z00@h?*pDD|<@y+I`-{;X7XODq{A#j4n^sc~L=G|=37^c*QIkXb^%SAhSYUwNgyM20 zWfTULlF-Us&tDJ_iBi8r8JX2zej~J^`x-Fbr za$NYCg;oPv7#R(&X&Yc$jjP?P!CSnUC9M|@GhGCPJNC+2HYE0ZqM|BrI#s$%9A?qi zy%mfTZmUH#uSb0&w@C89oqPfvX_;!@S&&v6+U1)b;oBAdV8JXQ-SS1K2k&_#a-E7X zL)wF^Sjd9p2B{FU8Z7Z`R#8z`EH^<|A}=XNnqp$d=kg-C#+6f{IwNklHL+e~x%l3y zp1JFW;U~BV%w4mBGoGo(lVFc=z2>#R1We&8)*Us~(T2_vUH%}!*qFO1%@Rgcj#y1i zQY;~At^2$B*yT@{d%sr6c`DDcwy^FG6-!sz`0~FPxSl4>HdMb#!%4eYP7q(^h%&8@ zP5}Q$16Q2@V&HnPY@{{@V1!<<3kdhVW0EG&Rvyvw5HnLmS5AsUQi5O|9Dq7tJr$Sl z6G#t2{G`>ZC*f}F2mJEyInSqv9g-0mIg1cA5F!4)bdw?N5)q*Z|1-kRcsP@)MhfsV zTD43UenC!URWYTr)}JUP-~U7{_ZXW0OtE0VBg)KXgl>Js3&d8Q9R7r!KKnG|IAvqF zPtmuYriC6rtU!M4Pdq-#}59t%9r7tA=wA zLy^nOZI?Md__^QeTN7?W%Oy+j)!Uo!$3;-bGt+a@+JOVt!U$o8OdtBh_K!F;&*LgC zxYXtnUU4Oh(BeLG5J2v$m^KM77vho6pCb+hk{D~Dyb+ZECdl&p())9G_+PF$zo0z- z3163Wxq%NA6@lZ8o6v>0gdDy(cej__@vmdl~;@L_9V`aN&;OhxH2Qr|u03*q7!t z-NzUj)?S0ZZM=(*Y}^bEHw&TKM%M57^HVj$a;JP)zVdTM=P}MTXWmUZ3!!hGL(rM{ z`v}lFa@4(>)NPB9g|Vq*?L)RDnvp6&^vNLBKJq5yiN861H$I8`KZ!awWA>#nhw-Xs zxAC4Gli%ezgmfN#D1Q3Q#1MD)(5=wp#QiHU^5OYHkS|i*u z;m}%sd#WDE3rJJt$V$rsS<8HsUZ<_L>*nP@@V@8QNm*El%eb>o@UEgQ;BX`D^WiZS z9oc*szHwaA-VreRSgPmD;JQ$^;bvUQt(%_v5Db(}k3!)4w-9p1a~HmQIqYFfaah9f zv72*mjcFaw$7bT*k)qkJK+Jx5YW8dYzc>5+?^eIA2=M{D5xrJc6MjeIt!n0~j+s@n zN#a7+R<89-b(%J8+r2Ihz=y;LT5Qks{N6QmRfw(X>|8O2Fm;X!@soAL9KPf$5@ z$;qvWhIB^TH<4IjAWdvXw)0Bx(R*2xv};7qF{zzS1zac^wGD6l@EjK%&;>i46uI2F=GUlIR&cHV$#gZqZ{ZdIdgE%)>j(}~DjG7qZlj-20n z;DVr`~bMv_vHS!GvpRJ4m2mzaSIUS}YgxDd#`D!y-A z4C&1hqKBwBmSy5PE563T>qo+RCKp~pe_=h3&oR#{e7O}Bz6w-Pl+0bM*v2_mv<9x? zEN9#D%o#lH%o&1mCqlfJq8>$VuJ)b)@nuN7JuMuFKHXS-MS$GGPTfM@wtT8A77tTe zuy=7?Q{E+5h3q;QG4&N2!E|+2NkK1T{6N=zj@zI`!$Fs+1-cNUTt4Y+rvYrptoH24 zD^O>4z}j0AtO8QIxvoTj9E3xht74cGFM}LoYi*_U$+3s69r_+TTW-wW#*hAa&~ji4 zqnbmFJ$*iY1dv_nl-}IVqZo>R6J z`>cwhN<|hvfqky(C{(Fn$sNbv@OV)4#AV_KV$c|b{4FJ@@hzw9i|HPu{Ay#5M$e=u7egohhP=++A<&TWoR`!uS=J_*~F8XsqqGyXJ+E-iZuMWip_AB zk!cpLjt@OjhqdZA`&`QE$LaOK(AX);*)_6*Wv^B*qgQ%O|0nl!xpKVn)NN>P=h3=h zTYbA)VS~btO(f%1XVltZ-mAmJ*fjb`iG{v1aD04 z6@755W3Q1N+IqF?+}pBx7t_S`p;Ir8y|}lu6#A4WdJV3x;J)e9@+nSNM`w|%B+iPb z>XN|uPsJ?OWsm^l#jZ14dAmos7bEI&+HqcJ|*myOdC z+8$z4xHI?*RAKEzf53{{qGE)vUDGi)sjlqW4CM=*AcK{Q4oFCgLO$u3Ps66h45OCnpmd;x>^acN+D|0w9sw&>jke`(zl zU?JmKZX$anzJ#jyJYEmb%*7V!J2?WZ&s%Vifu8Jgd`oULD>m!hjL2&XJC6@(*1z5O z?tv48fuDqs56U*mSDh0=&D(UI)HggXZr08>V-PEPy(!vAjW^WlZ+$7O0NCg&+LS8f zrQ~IgpH#dzz-QnuPTx>wL>SJ+zxbn5-`h6+?}DtkyB`;a`Fsx2*~;}I)X<4iBk z2NTkE>JVv)G+}N;yZG5Bn6&!->Fa|x5_kF)P-pv^vT3fuPS)ZsPARc3bh<(lT7Qb!yq#8mdLO`UFaYsHkKdqtIhi$jNZ*+=_>@7w?9BmN@GIi; zUu!eDj4IF&+SSf{fFG~LU$Ni&50DQ!1yJ{K7A2CrI6`SyP)-=3w6L@s7Z%xuEDV5! zLUGXd7y&-puu9^dn#!gU_x>w=T=q@&Z#3ese)@S z`!596^mCpmvR#k-46oBG=)IHAiG_^xJ^n=95Kq!|;u>N7RHirnwJr z$zoiJgGx$Z2`H9;;lo8-G*;@E#P0IL^EmXie_U_VGK0YEk!?3(5-Az4-(VA*9bmAu zbp4R;%k7YjrE0%)exqh;(;L8L&oN}(7_{RByt{CHt z|4Ir62#2bZ5l6I?E;O>KzT~$k28kg0iJcUvNgULmFD`mg%+CfaaT&E@<(h}9`tYC4 z#v~otP&Rq-NxyXb^l=(~j1O)902d!TfxvIcyYU)fN~`eVX&2wW-W9)nLDrVoXjCItx0#eylTrK|G9Glun@d(K@hOLI&^Xx;wWGE`H(EG z1bP+5-p2Pgv=@!lW(eyS_g+5RJMCsl`&pl}=iQ4c7o)eIQh6v2^A8cLo@r`DT;sc= z89FBFkD4M(YWpDNXI#$eDe%p?6I?UB@O5ZXqu#gz|9K~D^y((>9F=-K8DAfi)Fm^Q ze^@$BK2!Nf*@b<$Y{sDF(Mn$)z3MW~X~C#26Z(%YKdv-opN~qh-%jWeBm9K&2vt+t zXPMSCAvLO(WjYe1OR0IY7i>5%Wq>b1a12??E-`h%nrSvJ6s*g!ibu-N!gHoh{J08+ z(^Zy^naHY?@L5SJIDwFSAg_t6AQ=FP_q`Z0g;ru0cnop0V?CwxU#ReIVX>R(87p@t-Sk6$34OFm`jEcr1&qtRJV zi9w!1(3j{KO6H)Zb~8JPB5{_Q+1tov{U1HT0goODru-P?4J_dF^VcBu%QuL-imyV( zKg$;VGb0_UoD$|LY803(8^$rflFYiE|jCB0w#wmPpL#I_jvgW@@7;8<8#2@~C-K3+fZfAD+3hb}I!r^X?8b znC+YA8+WKH1KUD#W_eFeg=%uhKfn?q|E$>Q!W%PX4; zIvXbWukicFb#7qt1|o#zE^9EeEZN)`zFTDvr zIql+G2tUyfO5qN;fHT}8D`!)@4R67gWl#mOAw>oL#W(~{QX#x-2LkaXSoXsAc!%bo z59|eerYf!pDysXO!H1v;xR9(zMT>eu-Cs0Br}PL+aucfbUuNXuCiXb9BXVvZztth5 zS9;;w8=%F(!(h33(3QP7l+As}To}J4-#d7LoA=7md!g3iMYwEL^d0==0QRhbzo}HT zA|ElFnM_YT!WbQ7_y6^%O$^E2I$)p#^$o)k53dbxc$Nz1}tDs zxhw|HQP$MM63c}!}d##>T!8QX8x{r80^U$Ko zwXB%p(1`uIbYJDrRsHVSJ2cHqPH=Hi0M>qZ?)n0PD-9NRYI6!@EP zw1dl5eEuX+FGOn|Us8ETDsY-edyaoY0#gU~VC(){G871Z1D$VA|2s9SRFC<=q_fRX z8#)&ni<3e7w25KK`tr+Ry!5=5oih!8yEQ5N3^dqU4E46u!WaMAmG!6sYS=D59KIFI zHf+I%ZpQ412rV8zWMOpI@V)gIzlRVHb)hQc!(Z8R@QRcbI2IQSPUyZ7UpjUSAK4B3 zxMOiKN1}VgF7_OIY=U@$5h3lAdiIzBH9`l_Ws@qt%AAx__?I<62fr&bP=}=A-RazE zg}TtrW$eYfplusBCZFn7sb!D}ulB#US0AUE@Z{p?AAhoOH*xVEfKmI#E!qXJ7Mkqe z3zq8u_AD5?JCc0h;_JzKf=Pxwv2pt%07mRf30^uBV93&tuw`BV-plG`0k=B!?tG)F z7I;hW)2%h3b%WjW zA1Ohv?czhDwh-N83v{_PelO{o7_XdY$M8LhdJu3QXW*Ck6ZXLmv*)N*PcDFI;P08( zV-r{(Jp!F}fU1A8f#=Dv77A{Tp;d_P9#BY66 zEc-W+n^@-t?2F);K;_ou@wFj;7ui=P>%y=T#QPf0^YWYTOPc1ZF z{q)!n%s@IIlZ}?V0}wONjlA1?D^R(!Y}>bz@dMq*k9W5pYNt|(IAqI3 zrC!z=i9BvC-Pe3wC}V>8suFH;Cd?A7WQ5Wh?3ix2xDFUkcN4L@iFMcy70P7W7(X@c zcHR@M=GWpkg}do`+?`dn zd^`R!s9SJ?zaBeQIZKPfh$S4mOF32*SyAe=Sz<_go9BPSK?8Ac*xDEp8^HRNY$;Ha zIom}f6RhQH@mtD1iA=1l!|Q4WqL8l_aiXxBNa&QFA`1zj<@v;wY*6G;=}>`PC^6*A|jk2OvPUU!4w8V)YcMs z2`eV!FTzv=(3K#%LJ+ApJjQf2?aIu>vtTUt)cIEO?MVq@G`Uz*MSX0_N_p8UxZXx} zcJ}y-7v*!MB7i)xC-Xvsm>vQ%FN8>fc9z2Vt4@icK0z$yk`RlB(S}l9Pk6dfotwG; z;)N_yD#4-vi4-H$6txt~knJhGm)Teyovb=TFa8w|U~I(z3G|VRsB8qRP47ATPS&_o z8>__U%4-qR8&z|^B3J?lNb<)jllqirWAjDCcBvTLegf=Zg?;mJk zqwpJc@Pe87_#vgGXXa>#a8C2L<-Urv;77}6WZU_rIYUHbW)Ed5eh8+7k@JPCx{c&# zkPGrfVmLG;YIaBr@QOsGLmc;NPbf?EjhXg#^h$ck9ms&jC8J?r#Q}+=i#Dn=bR!{I zGBjXhx%dn=!@JgPfWB}GTEJhh6Po8V2|t}bC_k!d)ml*-qm#~L_V-+HBqFqEe2r>f z2RaWO+1xGfDgL|YJ)WsbO9viOl~K3WHtXeZ{{5xYWxb(aUc#7V0|B}(60WX=-f#!3 zp$Wn6T(ljZz+sP<;;WzLvaHoe*N!7P%48wCl(|`N)(2Iq+Q_Lzl+tg&=ya%gI|r)W zUFta>zs1S#%WyI-oo3m(#@+hu8nKQc7nkJh7%+O@*tqMH$wF_cl94G`!N_IeGO>vW z-)I6+P)H{=1iBK)6$m=_e%MS=uq@^t;4hdn_d-6Y6#T&`PJ@sU8ftGCpSb_-)_8^l!Ioen_zRPz@cSB}lSM$oga{@?H;bl=_OT)Ovu@VMTh*E%1`Kct(@5ee0?CRN z3<&(4_+qS-?m8(-Pj=m}^)P3I2qICl@Hw5VuMs5u1oMz{XP;Eo!?`QRu}`o7tV&gx z#_%#XYVeDghq9FKd1Wc(DeAoHG`ZvVG`VBxA?>s(=zCff^aW|^plP&@L1G=y24cAt z+)H|%Pp#ZEx+2fKjypAB!l}6UlM^PKgxJb&@dSz(t%7xbEovz_kBBSb4`||p=gtid zo;UADbcg2#kDN1SWbj-B5XEfb0@W4VP|#$;;^=BR6NrrmK(;r9#}C z3eo5BE}$ZV|Gy&G3drSDpLbi)Q1{27oA0S>5B#P7;NJ|ZoAVrKLmnAzyAl_;SIt9CA#e5$E87e{U z637_}877q)$V72tWpfC`M}&xO@Uj%fOwj@9QYUov9ZJT=vmK+IvpRdqQVtE;x1n>` zkR#DYN#1s{UT{W%#JuqRvJE)Xg=FqHSb+`=+PlFa%=5_jqonc7FF^Szo_W%)8$Bke}2?8gyaSaq52t1U+LjjXdMx=v1N$D{D zffBP{iDHCbiTi;}JKT#s0f=xUQiaRJT5WMJI0<5XVJe|aBt1)3jj5p~T?}fN)dy?} z3Fwn}Yl4`_wW7pFQzD}oQ-suTet-sUN#Qh|bF55PME;U)Nz-XQ-Vgm$IS_@Jsd2Rs zY{c4ss5^$1iTR~&5pGH0G@arGw2iw1r4mk}gM(ra^z`8Fu#J^>NNJMF9-*bBmrrl%gy$!XuL8r-f#~Knz-HEJ7c_Q-gOEC1)>D%%m(m$^ zH6%|}RQsoj*x%P`|7-P}FM+7PiWm`QJo!vDMvMOmM*JNkqun+MBaz_rstC%@ctUd( zRO?5M8fsVY1A8Y|*6|~sSsMb?)U%f0?MeEHmnD3Yc*b}`BEu7&X@1M@kl)Gl_a>4* zhS0&wQk96VX1f?qP81u7gv@gygquPrH&R2m9C6B$G85Hh7_lwe(LHvctPpWXhj2?g z;sr3X1$H3*f+OHBNWm%i5oFzCyvUwW$TDKQNTH3SQ2)w8_CWR*^f+xJq`+S|LbT6; zEd1ym6JaD2a_59XBT_M`NH&?2X)K#g2gY=!H60im2|R_uXHfVIrY&724Nx1t8(&AP zL44p1_Qsav-9TooY@wsWUSoDXWG3T_xT`^PecTOS_^AZRDz`Nu?|irNOYAjWU1bZI zHM3Jlgf?(MzqtV%gw{eLVn`uxQm8FrQ8me5M^l+tRAw!{l+n7n>}+q~8OMjP9e=}di{0XWNG*!_w zzPId{gho<0Wz#EC_j5_~ZT~cG;sNrFd_6#Du8Ev^2WqKZ1J#pSs5Mc@to;5%tcc0- z7(d>_b=)}Dc0=vPd$^4q%dQixA(aJcsK_)6ogKjz2D!qib14I8Ti5YdwaOPiYN5Igh;#Dx71X^$atZ)EVQ z@IGE`2M%WhcFg{$z`{|zJlYNjVub&Y#!lLFGicC|PHkexZMZ$s-M5qVs6-*_R~Q0x zpQ+7{=X%hm|Nn^+E^^ZI4UNh0zVp8r-dq|k2VPkaGf+LI zxyE)w+lgO2##2W1g zg>in|CHV<@TtvgSR^HUj#P#VT`~%CN2`t0k@Y$O9g1qZUA)O6Y<}xb;Ur{w>Q)D{o zi)6r1W@$kzj#(Sl!bBz`PjQ)OL%d`Z#N+f)5M+4U5Q0YGbci2?ml(1su=?47!-o$% zgVoqu{SAAIixeD^>F|z(j~fxfj)+6E;2wXTK6j~&TB6RhanhE{+^o`NpJ>H~=B(jw z_vnobwD;)DJQ!m)s&D`3_PG33qu#yEGNI14{Tr&R#`o_fCf7}5veCE3)`dDeOCTv)aw|CC4uxvx%^s}DNT#mmjWxCwKlknf7XB;$yq&s&Z z8O&A!ti<ks0>BPOnFyDWxN3c8ZQ+{IC>kPu|A}iXxq%Kz{fJLU(3YDvD~(lsg`CE1YlH06(PL~hL1Qe*kZ5d2&QOib z33GVfq-JG+SPRjPN=*kfsG6CcJ*(RQr~bBG-NQyR%z~6jnX@|f>D~jt+SWZPei7)+ zKZ}oNUb~)&kDZ$@s}mb#+qR{Zg;kYm`jH+1Q2=A3?5v6flGccqM~qb!R8y=d?9;!kL2c;|nVLL0us~LaTS1{L;JPpL%%G@kzcB{!>W{ z_bVBS-NpV+neTqxIl$lL_U&PF2MwA#?3a$GucUwhlUxImT&8%(=C%qOh%Khldylu$v0AajPBZXbdT=h zI~PEHYto)}8{M6P$$K|({bzS^PVx`PSZ&3wJ{q*7jU!JlXafz6r6!6sO7Q|o2G(YP z`_SO`Z;tPHP`&2Y8U~%u#Ey0z)NY(ht-n^xUcIB_J(myHJiU8$Gn}#W;C}4tnBZVN z8cyU7>(tKCrccA=-6pM{wP-aVp^z=+!Uze}*3VGgMx^e~hR9G|vE(mWIR5thhXCVl z%zuQHALHX<#*L4QiIXh}&%Bp}OKybEzB3W@z%e{w`SOJD*j1vpUL=PgMdt!lyO1~y zw0HMOpJLm&yS2A-bK?-_SaFCu>S|}}I>4^IGXj)AV4&!ajMN8OHc~idWAdF61EW8^ z)HPobx#ZZV(LO%0{9<7Q=eX4?`0Q4pHM2T+T%7o91|ivDg%l}8Zh6p3(VK5?{bvx!>q1BqJ8Ws{$So?Yo_NtXq}gbFWwU- zLQSTWQvh0v|K7C+|Gh>~NNDC`f0=k$OE)x7q(#dZLDqm3pM=XLeT9g7(YM@Qy4Taf zilxt(zmGrGP6Ue==kug6xtCtn2)~J+}1wtB!y75L)S$1Bn z+xhjYb=9a(#DW0lX#vJuw++Dy&x}YZS&=%O86MEXr)%wt#(hR*2lk&n!kF*AYGmrU z@#(LXwcB|1u5;F;$;e)A(ajDUHx587N{6O8FJ-I97 zq*awRTMi5>DLW)5O%+)tt9;x|{zW`=VlZc-_b=*T+O}5BR*eP&yFMS}i@ld#iH$zE zsDqhJ&Dw2E+b`N5y#kjn8M5qZvHNrn-=#g8JDAk!YU#Mb*JHZ7yq(+BfsW%wG;7(T zMs0_t-Iw_foa!c9)h)DLgAVoU+nWuVy%;N(#$L`F(lyx5tYiK9olNaUbjt-<{)CH5 zhX_XpPIdKgY}&t}>3~LE2D@drk^d$=nl&42VBW8(qlfEM#Gr?wRU@^$YfV{TLLctY zaJux;A_I-Hwq&bD#)fp!mleZ?#oTbIJ?Bb%z!o11?;|l1@ms8eH@V_+9Q;PSqrvnz*c4$r?&yRDDOZx_ z16n?=d9-*_`FuQ+Xd^|ZqN+i4wp1gcd+A$vgKEAE$NKZNcf?hD_2 zO^q4L509-qo0*t+)(sdYyt5f;Z&oL`S!iHniLy%73SM_qG=CCa2Vd2sh)Ap$rI=nT*_P=I%>>)ai$P{}3J2|iyU>f@Q;N72f&o6lwGi8b1$qs@ zKDjR6gBp@IMaYEgFyS}47%LeR%8ALRXcqY{g0B~$JhTcwxcj z$QjS3N>LcjD3Iho1~zg46LZnE(+0qN6w~ZcOFRMQG`!;q({ZHPEyh~7afc&JC{dOu zU%h(8ny`i?N~9EpQGfO=;e1up5Vfvc+o+k2BD0N(irEkb_wJ9hqvR9%tQFn(z{dKoAqnnPV6|O z00D9#4ERVGP+xm#mlO)x%1V`jX_tL3Hum0v1OHTgQ8jEx-^ebV zqnw;3RC`(NE&Dd(-QvaXGAY!W%djNxjF zBvbRM?-TzQR#8I`=ui`onX<1zHF?s!9X7HN%bBaB)d@|Qdss^v) zp;0yTe^oU~bj@>P@{WCq^zljLhYG96@G2iXlIR*^m|&`FNSe;utqY063(n#oVx)B2L|QrB!=*vPEf zRsUKUIlJg%P(LsK*M0+B!bPrZ9uyoh#4B{i8o`xG_wkAH5GFG-+ylq>2(vZnVAX%E z4w63N5LE{?T|_5JLxSVqY4q(E+>4LDw;=0YT-?1Z=TYt3N4N}#Xy1Mm`*zB^yu5c) z)b9tpbNu{sy}fh&{c^lX9f?c|=RoSHsbR{`a!mh6IhOd3j&Z*jPqiHLjOk~r;3h^_ z$}uKImQqZ_SnQh(t4flH7!$6rDf9PGIW{m$oJgcPV_KaBb<6s7{z#%mOV)hUF>)F2 z_FdLgdsjkdj9S<*DU6l%kaiQ_O46nnqq(~VXZiXs6r~OA2&Pm~4H;iJ9(`*qW>;f8vrbgCo;2%;f~Gm*S|3B}^RPAa9joZ{yLr9(t=WH=*^1BKg_k{7p2!{WrwbBsYJ|9!HM7? zYY6*HeV;Liduj39z#IU&UOJEQ6|k?keFuX*zM()k1L80UDu}_;832_?Ei;Bvt6wRr z$yMN#X3?k}s&{ZUv2z<$rw+~{wClV94u>?|$c!=4Iau4&r6*Tg`43y8B4NxT1fq~+ zw@BA2i!KDB13Wp*h-9i@UA7L^XBZAGV3sIOt`J5mjv)pGv(LG7#XVBMM64X?>yaoV z;`qm)~z+pe}y)C28Tpq{N&B>~k0h&B>oL-hr>;E4b*w?VC4m-MV@GE+J$T zhnR(mb7~dUTxM%wqYvwK@LA~of{=Ls%(JT%ZArE`!pyd$`g)XJ2S%#Wyltb(IW3nH z`qSZVSMOG7e!+<)z@MLfVQh~%V_q^&L;%6UcHV>Ac=(46*?KLYFwA34miIB8(**Nq z_5(MRU~Z|FM3y$vsQ)pW3tvZd|5tDdu6d^WY)j4QZa3i~q%iV(>KEXxN ziHAoW>J;qgFrs6}(4Ow%YB+#H><9J0F_Z@IdZw4)%PtoVkfd^*)8~~STFVlGhm-!T zk6NG(n$<>o8&5m+w`-4~`ls}Z@tya4^3wE(sj-(PPq{Q9Jv4q@`pfxF##J{)D%ogj8?BTT^7EzA#SOk88S=3OF_4CYo#e?1*$`+=KRJ4eCAp zSYq1gxN4saVh7F4(rK|LDrP_7?t(sJy3LB{Grk+kWhx$ZCCpv;b(7EVRU`X5-#_R+ zJb3HagoC3G6YlyZcNx(>Fc|?VX6`e~btcdONi4%{c!pYOlTK!eCrx_UGu)wTMAw&- zCh<+b!it@~_!T~!yBr_H@4dDGjbTK}H&K@dBZioJ7>K9j3~7e}(;6P4)9KhIjC-x!;E-(+7Jvxa}&{ktn&$s|@KYnB$@=LB(=w2mR8j~#g zQWjfL{1X>%68-26^YAM7^=g^uxUr5K$hDDgmmbPV=fI5OvT&K5$_-@wmCL~C{CR?F zoh*-Q!-pYOy&Q3El(BpmNny}Y?h;p9ZbwmQVuc)KJ(cTNPd@D2IUIaWv>fS=XR-&F z4UAlN8lm!h0-1_uaZc=K0y!f>#O(pe^O4!`zuM~HnZMiWkm}q?b;h*1a}oihI!;bW zIxj)m;(TU5*M>kYNDy~HpQ}ytT$CUQIG^Jwo=XxW66Zq-XGI{F)ezNn!5oq)sqCNLT*qNF_h+p%!dD^Vu)w{Q86U7CJLsU1FiK|B^L<9 zm_lxUr;I6OHWJ7ksq>sk=j~-S{2yyeFyp^zON5x#crG)W%_79ylZZ*cS*()D7d0P? zf1&yG`dRTINLvuz*I@Dq()&`ITjG4#R|Zr~N<1XbaEkej1PLV&Z(8cD1SuAhnB|-afs{xP2LfqA zA@3x}1tEpm!_^~@_Y$Nrf#_4n2MI!A$&>lzK_LHBLQrR}4d@ccM`?^7RYh^N;l^(z z3h1gO3d!cBddW55T-6Gf>`w|;$43|g`|uGk7(a@dJUJ>deM&880aZaqjGv6ZVG@D# z;QoC(_U+xd_W%Mk3?asobEFQ+mHJks4*m+Y9r_|7sOw~dN=o{AAY0yxYWrvSuIwenbU81v(VDwjg zU_TLzElFGcM_N{sDd)$*TSy${n>cxNaIjB8sHevS<`ENpBq4rZXliJBX3RxB&ul-3 z0fV}9b1NLsrL&u>gYP^Kw;6+nB~;hZn-=6VZ=mRAgAiATw3{kf_C(1tRx4SyqLSsw z$d?Vrh0Jw4mAk#am^oL0+w*((e|2NZC_hFM>K~B84GH!CLc?k>@o*&jgqz^*mz?Tv zA6oBvC$b56-AHCWWkC3*kv49 z^*W}UpH~Emc?YICyUxPI@Qrf7h!tYL)f~Zk};9J~uivCh}n1gae~vLMJSU zyE3I~P`eZ#hv3eMBith+-3LXC(sQ5b6_BH^Fq}DPV4AaY+Q30G4HbqteqJ-(3!C+6 z+0(a~Q>*U7;Q8Rr4ub|cbRJ9?=}idyLK)dY(x&K*K>tFSs^zmj!-a5i>l4Ds;C{)e zI+lgOl#^3B2X>q|yhpGd%O-LjA}>jd()kCcb?$y-73JmV_5R!24z_oR?BLZxWF~e( zh}*4D+Y5mW`7KL%U!Ed9iXy_n3(w;kFy)M#C(9jPMwWEO(3QcBn+=(Z_qqu z62u?pvY#lVp#<^7>$p0!l(_^MP4YaTkVchx2;?6I6NrTb=}9oprFj}lkijHR1;uPB zLA(j%3oX?|g5;_OvX>bL0_jc!8if$W^)fUikRAlGoS6w+IQc(Fv{DO}au;E*V+I3lbRbR@!0!iqzZxDr`Je%zo1&7^|< zED<*fDsJHaT->l9{+qlJ+07Aoqi__vM51XlON5Am3K94}5F+e{KS~j?dX`8Lg@@SN zQuRGKGON|RH2is1b4Z%k;us($D=0H9#ggI}AdoKXka z&#h(N2*zN1NEDp8vIFd8KB-c#W-lvG^GPIyL7QY%*u8SAA6LOmY&GR4wi-YB&>@_6 z@E}33l8t2|6uUGV5w-KLxDQ!5cEbHmfgS7uy55hC=4%l@vAIsSgh{bw4_xPghv>yY ziXyS7v!o-A%doJ_w4muPI$xzf&4@FiS zW5d`(WGEtWVoH!O_7Ho6<}s5X{%jHZi9#Am5Ks0HSBI7|mms4_o(B}tNRy|Cbd{0V zRT88p!917dX)HkolROm^v!w*_CXg?*RFg^y5z;xK5O0}j%932DG2a0lLWDX|UlG$) zA9RfsjufuW)qs2wT19H5^1;6;Z!YUk)BO?BZLQFw=^rTubKZpBveyaGmJ$4kQu$Z3 zyaO$7!Ox`SJxOJEq;xY{u0uI(t?GkLsv6E5qU9WEIZIhaCEYr&e?yn0sF_LiuK!KF zmVA+#Zj!!3L${dTNlM>C!)m=%-5?-cxWnVe z9T_Knj6eJ^!gJWS$<0r<9LCGlX|DHMj<8;crh{MSfHxC=Od1CV6 z2+BPF0RLdv>RU81Wrv^dwv>rmhaU|M2=EUI^dIpD<|*3wY)MQx93FN+%zZ2*Aka_D z{dMC1F;mOe{h@?#fO4Bd{Z%ikc!}x`wZm(NP-Qe(bFk52Y~bJTo%4iUOgNtIi!+`; z@f+BM3u$A>?zHOALA}FzI&YgXPuf%Kjr4FI)y;X6dQUCO-?$O`v9Zdj98!`$kuv7R zzu0HHs6JN_pBOckomC4+t_u~A3VAp1qv>y}jQCADBc=Bz>2+xO0F6L$ziBCbn3yj6 zDsNJmuDkk&bX!`U=ih)I0>+X*&-GX2(#6uyjQoBL9q}3dJel|g zg_x-o*h3RMNAP$D7Wh2B7*^q-;)~>1$Dd~}Ncc!*<^etn9bZZK0G07Y%veQwrMF+1 z8#LX`7r_nO3^6c(|A$j5T-3WyZToyPt?vx#9TwKR--r_+6sQLJcUyUNuPW zGyEQIr^12OOO5$xJhq<}6>CpH1_O#wUefrzB>&@@sSD$EV z+tjOTwKWH!sco~t1lL@}SuRO;KqW4F5tn2LDB&73Yz zzrH_v=G_;s@X(sP4z9J|v-`6)k&?Pw7WdP~!bwhH7 zlfZ}Me|XN2dAZIj|kD}PcemMbT6Ums18N^C+BOpldy3>hPzvat80c^Cs)@_ zo!nd%Q#Qo8r4Ja8?&daSz#{h!9o^kKb{P0m?~^fW4CY`9PcNK@8aTfUFIPm0PAN68 z7ZlbYoIS!9%RF?NAXaJ}8RRmF8zNgR8h`)JxE(7ZmvE)uC7DbcHl$5y7|bn zVICgcrMs_h_ijUncIi3Xw^w&>aeC8HH;)b?CizB_mB?U$h;5kr7?FT8W7(0T0meh8HH`Q5^2#e2H1Ft?;3 zzRm61(7=*H!?%hsFMtFuohNSq(gyIm&&gV~w6j_@CqB@ps!COUmEVPDkP$5B!^$v1 zgn*9(lC9`Y$28dknb?zItt4lbz@EJV9G*c$TAabXd-^zCrK&LD_oz6911TO}?jmZp zN*x{xsfqvsiK_5H`XtXV{uXYilS&|C%3mNW1j2sVK-CEOQBfkW>N|H>+r{-e5AU|o z)cUXL@}mux9@^OvAlp zaFi-lG?9^!uG8+jgf9`tGtPVBgc{<*-Lnb+Y`k9 zc}OzOk&$9GObbc0YU%4N1Nj9<^FpgvnJ&c8PhZ6WXhi61`P6!7*lPwD!IS6b^WH^yQ z#_>7o5=qj8-mC7JU9CutPpg@o>Z)IVdU|`hXS%x81x7dAgHdmv;_Cw?=e|*yZ=LN% zWuNj?)ZravSZ3t>^&oF8iWnvx(N(`hHoy|ewQ^}Lz<=B(%Z|FN=0o+dTOo(7MD!K3 zXGQVQnKxQ5#;fz#L_YA9LsO<4eCd?~e=j)j@}#`H$@tNU5vTsUnW*0y7tyi%_Q4Y+ z2WJ$`I9MWfWd}|Q;q22SWZ*ESIh_te&WQ(FJeOomGh-$tBvF$ISi-0rX+_C z6vc6(?Jyohv^G=3Z2fXpX!X4UZocpuZ{D0&x*L?|*Fm3E=Ds1HPJ9w5pE|yFDE;rC z8i<*7>)pkBp;LJ|blO|IiC6Atol|)KTkgC=S@z&y{y0n@aF+;`3>@($cv1yR6`&)C zTvygu_p^#>d#0Aua+FR^WfiQV%AUzBdzNDnHR4 z$KgsVFHOagfd4^DG0(%c0MWi{=>kOkP9iL`qwOdt4FuqSnCHyp`m1mv(oP%(;!8UV z4!{WHlk1*Ay5!#r)X%EvL#^nEJopPcI(<>)V? zd8j|RDyVG+)l{&z<^C!L|sTt4o3NgL=TDq~grBQY@r1{yV;(!L82ql@|-5F~h< z9z%Nk`B3&qn&*N+zAnu1HCa`Lb*?QAeWhr$VcI8xW;sO^qok&k#fR8^_9RJnVF zxsXyr)ogRYO66W_spvPLepgo?&$bu7*NLY`S15N|OR1^`D4bZS46_Y`#9Y% z;OQb~nBLVeDa$bztx)cvs%99rGHj(eU+ND<{o$@Y7BvsX{V>maE6hbKhZ<&pYLP3= z1-7aQCRjd>V+KS8%LWK^K?#)itpZk7ZGWhLYJXVG%B+HFI=rbr9UjHXSXq_*Ast?2 z6$t4tdw~NKcg1;uqHb;lI=1#4KnipST@o1==3W#pljYWf<+fw%b!m!iQ-Xb2)~V${ z^g&kWB4PR&rCItwvgh*={Y=ouvDs~WMAur!dIE{udVU`OALC`%q07sV7z>E+fmmg| zy1gQL*XpvvEA4~#&?G=9TbW&@ls?& z6STegYah*9laJ35;JW1#R-Sm#{75ibW~b64l!KDDHa~w&9NG5-69=EKM)$|ZOf@MjRMshz^pA{l6Q_oSU-yc@t1_HtYE6NJ$(H0Ow9(N=c zB}mD_R*BbWGqP)LtMTrOt9epo#416l9uf=1{Q zEiTHHK0k6Ilgy_xw`HPW^!P zj9eVQ7iKL=J^@3yw$_Yb&(`rM<;prUhEU4LPR|l8-(PT+C*Oqj~0`R4dK8^?9h^tebN#J5;~T%>ddn4?DF^hA%#loB}L>JX#aZO2{@S}aHXCIZ@|+lNk? zH1zgK^ln-~AQT=hs=2eoeyjRz6_rhB7;ZWu|H`OxRsYQ~;|aepG8{nsmUO4% zDyLV|bvGa}EXCud;YOslh^5P=77#65Q;usAeFzb(ktkzJHMzcooUJoa&YszU4tV>6 z58hTE7hB_H_1>PBT+-8+kK2$Cw?HoG*_uRH7@2q(fP(K6sJnqq(n>U}sn>y=z zbJ(Bm@+ptEx#_cWxMah=w`ZNlC6F>+6A|T=&m_DoBFflotW*am#HdmIs-GyK^w8{* z-V5}L?Ui;V%~pHkekC1X{nf6N$9_ky{Z~k7woxOF=m06jJswLrq2Z{A=n48|yR7T1 z6xI;*Z{Q0->k8`%qMy#gT^avU!6((L;fH=My=2>!;O8}bqtYwr9s2M(Jiby*)i?LiJ9P^c;k%| z{g62^WjidL1(mb-W;%io;Mw@y+`ru#CuG*^bVQL9(f%Q8MB49vBonO>Bl8hIE1@Io zdAwN~;8-c^J%N_Z2M94-Cd9CG`*!$AiitOLrlG44I^Q$S^EaK>H^1Xdl>9 z*i@4>sB5=Dd>3>b)UE5FteQ;&2!v5PE3tEvIH$8fAP7n|?K?TI8Nrt(k9!FbAC?G! zAGOAggez~sgz?gcW8En^w$5px0Q#zrl!IpS@_wa$ciQU6T^2Uey2O>>m z4ug{IMMc|78XBB^>9%4RU9_#VbZb%3*3u(KoITFk&)+HDR+=%oe?$K<{rZi;-RKPY zP02ixF{)p`Q5hLy`nuna^c`bg1f%&o*A#CbmL5JV_Y!b!$+psxZN;e5 z(181I`yy(;F^Jk%`SNha=)QeNXM}H!EL6xC)2{&)=$kN#09>jhdfwIB$tIcXK*2w& zSSHKF@HZt9zgZiqC^qxpQY!SE1-WH(wyT}2l^8vO7Mcu!Hd8`&j7$%FsrT?i%5{)? z5h8n1>Te7j?!vNI)(q<^>nfHdVu*96hsO{v$=!f4#L2IP#SklgYc zxjoq`qQlvGV4BVC7Ul$tgCFz6@u-nB*{$#ZTE=#BrU577i6Egku>-ar@iCw?@plT$ zu4Z>vTldk!khTvBpmX_L{v9vdx0jdk@5+Hq*#jNsmP3d7DTVd?XU(j(7FEOJ^st~@ zE;RQ#n&r?13ii(BKh+l&)iat9-!M<|-bA92Idgvff_e^me^J6sM@wyi& zcPZz#AXhGwkpdESh$&oYu;&nk{F{)-5ur%|Vvz@c+jIsG^oqsXt@4AVF~d{Td|Zoa zIc_VS4;EYc;>E0au|gELRc#YKqLTf$(v(|dOAt3-;_4();>Kcy@AefzI051*Vuq!e zZwe@c#9hlNEt*=k(sE3fqXnQ+z*#YJ!{;%=i1SR{mmNN7dG}yz-<|R9EAOLCvptVC z&sHC_^d+oWZkFgSSHr=S(1eneaE-oM#}>4_b0CtJuGO`sQ;M$Wa1Fe{$J2V{67y^E zYzgALhh*>4jUM(=CMS&U?o1c=yeI>oc%oYZRvqgOapF4LaX>^*(M00n8)0o>!a%|S zPB%ugPH1+d)l3u!v`I!=&jgy^l);-l(GVxD>*HtaScTq8`>9M@wftP^k3Y0yvwyul~RcOB{%_8c^bqd<*S>a7Xr zUVEhFCG~Iefi1yD16kUn5L4!6tJ+r(HETH?r+y7{1XVLlIcQ!6jnd;8mNIA1Bid_` zG{5;t^=mqg!yK74!i2XI=Hgb4^mgevtrs-jOOYqUI(&~yUv=y?yBdi75B8e+CC#^I zn5P;W`4w7aOE!D2u~EPTHX%&A5R5oy2*Y6`#d(JV{e|X3PGh5eRHFR5u@Q41!J2x( zWf4ykj|YEl^1aF!t0wx}2tP_ZLPDsOW=)N_26Z};Yn^2koOKnPg%yZcHH#1>73K1~ zD|dAiwvcbMH}Fe&`KC=U6279?8G##c`xT7D1)0nFrI@-AI>1SIA9~E6&$sgjc?ACn z|9tpu$ASgW9aBzOQ_o`_a$&gI&>lMA_B|KzA?`!GpIt;erCh7V_Y08>hByMYV0a4XaqS z-JW*6JAa({h8O>&W@o2<_>z*7^YdKO;qu-4zUL$d2c~3ar+oOFoYP`x^BiMuI8M_L zx0LQu2GZXy1sN>4AmgMX$Q=yLbZR07$64 z0}?M@5UoFm)*nRc4^k_sAYQztPNG1x{vcX^5UoGRWmqBq>kp#!2hsY2X#HK~fBiwU z{vcX^kVqOgt^auttv^VtM1sW09uTcRh}It@5ywF550Z>`)B1y?!fyOue-N!dh}IuO z>kp#!2hsY2X#GL7{vcaWwxVo9*$(o*{vcX^5UoFm)*s|w{fD=grusL?U&^jJKB^=M zclDE*WJAa#88izC?r;QM!{HV^EUe@1?vf>j!!C;jhb2w~cXy&#vJxXKfs5df%yi}Y z^_vKC_QzPy`*nZaU0q%MUR8azM5W<^=LPGFd7Pf-x zK1T-MzKpGm1Yfa)_4w?_5zO8W@|b;tmtWy62C?nNnVQp^zLJfSys&6hQ4!elAI|o@ zdAYDx)iETS60ICf#@0q6%Ek5Sykh4%#{nAg4G}gmX%nSjDriJwE-dHX z=p0%G4}7X@bR&|Df>669t~8N~6LNcMRF@rub^FJ=vDZmkw4R@FltT2 z;0Vm!wF_J#eu!8-vLZBh-;|0u+wcvJ$jybVVB88W>6_nt%zL^L8A#8aM{F3?A{;}C ziZCqPbL58M&f8vxe}ixjx*=X@n9Jk`;kV{&`AMCKJPp}Zyb*N*y2i&tyTcfBF^1>V>-lRy zwuUl0;NUl74^K;ohd$g<`#OJJg9Xy<#kqTUPSRzTQ15NMRt_Gp?(6QSyKk5>=jTpG zeJ&$gJRitaFoCP)WXV<;{4{wZUkbUJNqvi6@^Wr-I#vRYZb*U4U zUY!yM9|fHPmyOTqawl+1XRTcwQgB_)NxblA@nPu5afx>AC(}BHl>+Z{Fi{Q9Dz@8T z)bZ3-X^Bf{t=1)YY|^5qW;7V>Q}L(!$1yH-&ROtEW9^jNmP^zx@(^b4SoC<8f7UAF zgd{wDc=03n{A3PHPH}Lh*V6Hs6PxvXBj%n8!k2+lt}fL_MoHD?UiwXF6~t$xiJTEI|I(8JgB;5kH!19>na%=|=nxAxj z$>mLjaFQ%V|dixgt73l3f?$ET1=|{%bXlzP&N+^jhdSLig?M=#y zobEMk3B1jsNwdrU2JFCdGGv_);KCp6S0p`q;PYr(m3iob1F63Q}X zc-VB2w4GI_58r^n;1`bZSH2wT)pdB| zX=9H}0qM`qQ+Ii#+`JN={rCmWi^lmzvgq;Nz0Z8l9PnGQo%O~i`05B2tnAmm<9DCC z-l)0c)Z!CI`)?T=6spFgruas-uhIZ|7S9q>LO%26YsyqxlKbqbx! z9Qe@s5hAa$$rq_DvZ{KRh&613(a?p*LzbXHrWJz zr(F2nD>pHN4Rpp7C`XUEXud&Gj@4BqR!L$+AxTA9cB+z7vd^|GZ5y-~{|=>VvYJNp z`_7`|C63fiwQl?#Pe{qkNg8Y2$nsL~N>C8AzSnO0oaJ8ALpKasw6}Mkz1{=YhfW`~ zeD>6m4zXR@BB6tMXoBli@Ve`M7rd?-9gIZ|_VYSE4H!9U)W`rRPh=jJ z;A}W!%oj6Rk<`^wq`L4II8oW7*aC5vox#b*8RDdwD7BpB&=)UW$ac9n0t>MKN95(f zRxp4HTXQjfC+3BR3j@V9EF7G7!UNWr-ZI#;CN#<7gvYQxV{i|;!QUa7F|3D2fq+-I zuulkvg@wUDj_oxciph4!r_P;xszu|2r@?D8^HJf?wOj|9EGhY^nxK znyx7+Djm-jbqrG*yEhvWy<_EP?fRXJ+}w9VU^FY7*2MF1*OAy{&gLz%SBF6PO;`{V zi8(uWf~!0%3S75u$DF7jEZhK&AuHzw2HJgnw0Vc-9lKZlTi`nWg+=siJHpdvWvhu_ zAI2w#&M~+1M?=GCHI}K3{u-#BOtbDn^>z3JoYrB+UFMdI8Eg2AT-UA%3q5+CW}Q2v z+lqE=?C$Z&sVbgkc<^{DZe1BX-tP(&i$<9;Zv1^NZ;-KOVP$aUeF)aXLKhinJ^bxg zE-rg?>p@^8GSfyvv`O2_ zQpL+b+Y~SNlyHOo5RDPmM%4cllv}+5*&*x%r+nx8tmA9v6isIJl!SSA1AG(bJ`3pE zZ-u4lhb!lOEUvX>aZB=KjDTq9&xWwM&r@%M~}avJc0+7 z1AN(U?BD*g0qJAHhK~pu#VZ`mf(>Y_M%=gv*U~C)rKuK?wcm*n4-;QVrj}x5sg&>I zpuHdxkGd|-fL`g)9WG|);}>`?6B=*WjyJM`Uv6k8xAC!D43s~cY)O%C?t*5|SL1PZ z0=?IvA4|em@O%h+;p1PRIb1DVfr$2WVg~yO7tyiVY#RY`k{b|%xkjun+*YYcSd=!S zw`B_(ak%t_HN0B{ok1zx`R}?QB9W|?1#Uf$9(Mjnv0JQ2T@m?06lCc z!2QDV&0|@HhB`PfiQSmQ^!TaCg_Pd4I7iu#?+<)}U>L6`dbJ@080>0k%EZi#L<+UHJvm6RxaJ z3v9BjdNkPeBn(t(eKk%WkMUY7s zjMIf_(24)(A|lW3y!E?|_FDk|v`91IxANoLd_f~Yly{V%FdR*SzeOlXY583YzX-ik z&!7Ke+&J?m6>AM{9uIamG1M&(nmhi}AAe6;?mbFULA7_pf|u4=Sr{8A=pf97 zrN-6#n;Y@acd^=HC`1}I56LzXLLCTR(Vw9o?x$xTLg$c4ajS>1)c`lV_YdkDz6^iH z2xU2QgQ4`1VHQ-v?3F9<*~Rtuw>4}84qt5^IyTU&z!A;L%)+fE-t|X>828z|B6Vc5 zDx?Z7K?sqwQ;YIYNqCFa0l>gt92|{-L>R#$k75KQw>Zior3HAF4w0saM9KjH{Ouw8 zk{%%n3FP%_JPH-~99I|g?S%UWIq^5`jBe(Y>5pO6idw~QHv^9`8YaRZx^FkA$A@F& zp)>58x%&oz%q*87ijIaktlCvzq z9r<)sDeGecpwsMo3QP)r$tv4~dud`Eq_V&Uar7$sSXH_O6AW$MT-BO1bUyipNIi=P zkRi;K<`9+aA;j*eZA>&58?#XHHd9r3zllKW;{kYGC8DLISV-e7#nNlI)M}ucF+u9d zn0!#{;MET|$z|{a+oTQ`_q?cn4+0(#@~`5)11@T$jXO`Wn_UnUM8JXt5wIW%2q+@b ziy+c_7f?AwM8u9*0TnAMq9S(e*sx*my?4*<*~@t<$Zlr8nIx>}o$tM0|LKxsGJPg9 z&phS-kZ}C@4d7QiT3qqcXcF#6QJO0?)>?f#Nd$b4!+mmz;vGhzWwd&`!bRBAR_QJjG`4@>|qoqe@XBL1OyMk zpj@U;^dglR$G{x@ftX0Y;BbKO;D9jpFbqP)Fw;3I))D_GTG^akiOMxpVh$kYAYv3K zjX@hmpj`B4Y(Q94Y;a%r9YDBgvspu3>v{^U#@zJz)_RIv2 zu!xyHvj$Ar3QuQ-g?S{*@}CizG_&s#pQtFGgoR-T=889A3&|OjX(K6+>633)fVlw7 zG}hIn9b;bugVOJzRFFPTWZJ+SdZ1E+spb}=4B{n?v5;()nF+~sZ2*6dU?Y`ok}%wS zdWeF9h4c`~lRZ#~R4=)YFn3qNV|?EG%3em_G|%9D?P_gbX64WMfQboF!ZI<@lWaxl z+-wP>;OJp6Px2)CB>)=E6@lb&!mhv7nqhb^cnrf#dmXzM=8@tn6Q46}=s_@>R2mKA ziYcI`sUEU(*`_?yC80~|d~8}1FbfMt&G#fsTwR&6n030$GJ){31tWn7Fg6o?W3Z`tNVz}nOn#uY{-h6>k4+b#{Vt1g$1MnI z)+DH8Y|dgg&Ii4*@1m(IYuhQT+ky>D&)zRk$@#&@p-K6`$KYGJAMHkOdr!PIapJY{ z8518(pZ|$lAaNS*D|z2S=l8E1;05_CwNn-!pB8uAl)gAyRnAR zQhr`bZf{CL`M@FE^)-yP^5a^%Gmgn^`G=SkO-;g!jX&=G);#-3RBLWx(3&QzqK)XA zjbEuvcx)-Gc0xu14$Do_~uOyrSzCE9+?I2kb2*`Ghr`Z z;!o}YorkiSP(n)9wnJY;k7V}pXe_>PpeU##bNRyr)}q68|2t5Yz+ADl)%`9RAi>Pd zN@$9a*e~CFjLw&ChJeonSF@9DY>K|0A3UJkX>elbpse+2-NV0yC9WRey=2_@GQTZS zNfCN}_6)kX=`L&q=UDKCkI*z~{m7UtnQd&Ic4!x5-XkjaF}k%rF%xmY>&A{hn3{TU z{GNlj=I7Y85)b)bgvR(8aK(gtuOWYaym;}$$C!-tICQJD`lamp)b;D9I>yEZfhPLO zXHfpj3>a%&oWX}nbs2nlS-nhlW6JvVQ*Z`>Vg}c71`Zkpi}df?AIIiZWCqc#7Fr1R&+NcQo`%Bte<^@&Nywym#-TZ? z3^lWz=;DfdV(sN;?dcwd&$w~$8EHXxjMsUd+~K_uv9nNyhUItQr+WJ#qjng|vdYSH z?|3Y$uW6_9;(`YRhsOcLva{~2@0XR;Z`jsEh=_Ogi%Rftk0lm(Ttmre)#$qI1@A4o z#N8S_uLk`E+jgBrs@VOo70pHC=rpbfro7~eaH=dWKvK-u)gcs_0a@H6#mbc@ndoRV zX%j4>kJZk~l4jPnpks=;k$9Aza~Dv7D(Xi#o)9z#Xbi_AMbo(pFs{kHdpc+`ZtFvK zCMwkMpc)V)r~0&-jHDwRZ>3g5|Df>5fc_CJjvWI%RCoc+lW%a1h<0)g3!A@gT{CnM zy0ySrVQ4EfPvbQu=d-FyUO!L8tFz~zDVlZ`MtMm%Aw&@613C9jv2;xn#5Q#9)WnlCp$aiSS2htL*y+%>r?=%^~6h|6lbS2w4C zie)3^`{kkh7irp_uqh?joTNRO@)85N?HqI&9o(=59YGH#EgcF0u;|7MSP9;7Y-C7g zj~+vVv$D6u$8X6d(4JheY!%s3C2s`copB`uA-xLs*3FK6pfrz5Erv@VE;k=HL8wgxXD|fHBX;HRM{rBUB_-F zvqldJ3D6)`z&O_?8i_d9*6R8I{~=q@KYhrT~a_t^87stlTpSyVeRqOSR}R= zHw-IPiLYeBO9p!n;v*c#|4AgpNbtl_K}ku2xN>=hpx!RxCE4k4<$Z?vZ0_X(@(jd9 zpR9CAjk_`)SPBr522pE;__}rRZFJW1(OrLzO)1$(S}q^J*AeqEm7wK;Lo~Q*B1K_a z&~EZcd`>pqMQ}9PnclIMTg^MuY>Qn{8}m%FeM{rZapXPHU^-YH&#zE~C^Iv{)`$8A zklW1HL%R{Q)zC8U(nuQY{1~L8hGgU;<+a{;*1wVlb5n6DnXFb}$%}3(a6VCW)fWqu z=~Osn`fhe`18FeOeEnlD=b&2LJEpjIF4pyqBh6P)M`;SUxtr`=r9r?%pW20^Umb_O z;oJ`}^CZEN1d0*Bjt?-4n0c2j;TMy*GAX7yd9xrQT{Wr`!0P-gfYrg{)l#v}FOzP1k66O?{=^d0c zZ)@GkD+_0`3^~)Cp#?u?dORQ*W=Y}@^I(T7M)oGq;zHb>4L%M&vloWk#?cod9XLpR zA)SY1NcbMz{=ym3&nQq1VpZHB`7z$w4sT8}1J3UckV%4B73l0Zx0FyAQcsCD9%)T} z3)fRmOr!6&^l-;vzMCDL7^=^3-_5<<13M~0iwv%Sq} zu*}HJu#&hK&V7|X?bUq4vRA$2?8NJs#9YkoR&~b6hcY(n8(B*krIEZub+*ACH5MWm z!LMM=xGZP`c4!Go^%ykB!+XF0sC6GS$i44?0h*(DTlID+uHFd=-mWQiS4=C^vS-j* z%}fHAM)Lnv-h?Zn*x-?x>cJ!Vi8rX}D{#PkqBB1O`oVny9*DEQ%C11A8qN6Z+y1!K zn$){jZ+5j;!}|wBMg#*{UXEt10zv6zXQ*`g67E_oui{&T*4wT-zCzyPfQeT zxOS}p*@~OOeD_y8e56G?Vfs6evvT)Mo@bV_f~Xt0N)4^`tncEMjz31p#d&Y z-y3j>AVA{$-^%|)E3~M88+CI2QLOkGzi}{zJpCJlBh&cmRg$r+AzGnn_`jU7tl>Xq zETK+v$E5-6KdH3gtcakBmZ3wECd!9Qi86&TB64w-sy;4v;93)|B>e>M9qoYdfbQeA z&*j_R_{R#8oRqtL)6#r>($ZiyX=RF+R|@%&O5mh-*+0;1jjtk`4@a+`9N`pj4=44( zKaH=~t|>nb6p|05XzCvIl<7`a*MrT+)c8F*0wp}Bjj;*nVY(?t*rxsz)$l4dGc#p~ z0?Wpsmye)a0S{%?z?eq6Eo zb6)RZ{q$$v%Q**w-~0hdXU9AMw_1uN^xr^=l6T?jyiKSht4-l>1t`ly+(GRY=+v|v^y)#*;v_s1#tYg7xnc#iL<$V(%HDI_Pp|- zj>u~i4_6=)l$S)XaR-Sd82wlsM&*Bc`;60RulCM(HWZRJyvo`WtRdygH_d=-5+_)R49TjCETdEkOE%V;Cj?+~TA3Y+AHW>~!M+7XtauW=?-z zQ1E>E%x8H}(=*0yR7meQyHV1c3%>bG9m=wtRs)dKu)C%|$;*2(z2Iqn{!`y>@!qLJ zEaNWGSy5mzP6F(1N+GT|kzdTON| zjB6y4aRvlFrA}l*uH?tq>_X30tpdZHpap$&(G{J!g&3q9AgD+(Nx3Z&U1N4|ZJGYc zZA|#PmC*LU?Ss%}1*%2WMY9I&9CkmmGL>8S=bw_5wL_%yxw9WW(6)aPHM$$BcXSG2 z#7iytbJrT~8QY)5&yu&_pXFF#l01_WAa#kSh4*v&*hwrUD5e?^bxlDqOb#l-93ztq zOx3QlMbGPkh9~GrJ^*)pD@bM!JcAzWAAX~Jz?Yj7?^ZZN#R3%U_xrTOv;iw(ChW+t z8N7eYRrsh}!cup*soJ{Bs+WxacqG#*fHD7p{IYxemO;+DJx=L z)Ari9hC6W0V_9CW$3$43e%9!$zk;!`n#a(Q6W38?)e>lNfV(I8rd$H=cCWvdIAniz z`i=|@{VmG;CD3GB8OYXYY13JcP<3PO^y@*JQZkqNyG@NF9B!^uI-STtDcqSn_%z-y zbVYaGMosxj2pmVjJ*lyswUy9sm?3!y&$P|NmsC6Y*Ry?H_1#Jv5h zKTiWF1g2siG?c$+1n) z$+Q#J77#r!>(qVaxozD|(^F~Z-~|KPSTal-chB~*L%Tvln@-Jab(k^Gv{BKuLdB^orGCrXp_`xarJ8Kh^~+Z2o{yc6A;8=9E4=rD5V2K36z$yPro)1HVwxH6Vz z@m5Js=Zyj8QIupkOVrl)h^ossRV@gYhJ?#Y#Bi2PYDAH95$=vzazkD-hXQdk7Bpy$ zY;C_Ejf{ z3t!DRhn3fZ@t<=5981?yjJh;N)C0n^=U>Z|Y*40x<$o?0HoSZZ{{N|Lnp%Nrk1SbF zvdEK<%|b#ZSZk?X-2z}Fh=9n9mUQ)6R)UJVnUTJ}x>IyXufK>0#m!v+umD|su@ikNk%6T~Y2lnDz3fX` zq5V={pwFXC=ZemvO+3$_V&UUqMVMtk@8o>xodnb$t9B)7?4nu_29|Ce8jv=P*Zm*5 zUl*^z+a(`QuYHiAsCBg)IMB!>A!=Y~gK*Hr%mlM7kLK2tY(h$O{$b+Mu+7o)LzBI@ z6z(%FVL2`#6Pp$^;~_oORE)LW4**0wNYEfzW_b(cR*Fa=CGxS51~6qHZ81K@JP9bRQ~6WK6Q{e0rKN2sChzCrk%K$*AbL@m?huZBEnhE%D^m!tEhPegV7?t6l+HMUQ-kIP#XP+ z`Nlk@SZTmoLe^ZM%V|dm%{x7>cl^B&9}$+25Eh=mgm@(NDU)`tX^ zb;s|aaxs)>Dx9Lehg0hCAygT@g0e4X&TUeak#nEax;|xWYNPD?psksV3bO9*}F3+H<6Wo)@bB5VOu(jzvSkUGu(Fe6dwGMisiDwWb4C&UnzH|bTQS}lTf61k&%73%rF%! zGb9FlP&>V*o~Mp3QN$F6F09eEQh5_P$u?G+!qpIA$oJj{m8{( z+b_`{p1LhqTeszHf_Whn~{?YR_t>E zZ;-&qv$jLlKAz2Fl*DvIuMlFgfZ2q~(5K0-kIwR|4J+C|09t~CzzVaSAX|=yMNs*N z>}T@9+!4ADW?x)oJ0WxY%1j=l=)()Pf|QlKCe~cG6PJbG;1C7kL*{Uy+;G(bA*9-z z0r4j?1k*vmh|laX7^B}|U(aRj79JNpy2{QaD8`S@}2Bz6Q&`d)Ja;0*>4fws6eUjMB(mf@c0jeErDhu*0D9ap17j$%AZgbxU`evBn#Eu%~M%dZz?SJ`ZGr?i*=&ZTPIxKBF(@O0J;2Rii-nl^8UN zi0cv|hyFwd3!+s$qeOZRmq7=UcAeo)vOUS3%j8jY2f~zk2f}USK!|e)Bl{PN*|Wkv zY;D_uwlktBpyzQXz!BDHXDtXaVZn?+578eirLf)ycF+o1uRx=f@6lqF3gnWzbU$(w zm5vS}Ij-dP(y6KvzW*2_pi`Hj8=#wl+Q4JpG~h97NX~VP4Mo*G6GDbO6GEnwz`H!m ze!=^m3F&APOaS1XY(%RGSe`=EG0~~F0fJ!7#WZw`H3c`DqLVof(Dj82z~YZlCl*?w zDw6>&GZxwVFPFrigXkROy)ZI_58Np{4rE`ndH~6nJ%+n;hc)1xk;#HTXIL$`H%i*P z`Y>C$0)`OXqDpK7x|QFGd+=)!vCtJ6sMdPgl(Fak$LeN}r+6$|bj_I*hD^NuU7@U}Eh^hiSK#DA8Zfy+?Z{jj*1CF0oA!T7zD0 z%)B`H=xdNxqphfD+{N0Q3h4d05FwxoKciz6IkgwZK^g>9BgN9H;K>&=H$t;DL~xC( z?1#tJ_?OmZ;tnTV&Vb4Mq>(G2{p`%tQfNO{Q5If2rnASryrrLK(z?t$rS5{_g^S2_ z(L&+6_uF{$Fz3X?@!u#3HAWS~%Gfb#V>7iZLl+O5nXO2*5c>lwUJpvm)n_&%B}kC6 z_!c@+0Z;*bZry@D6&2{nt+{)Na`N7}_!_>K9mCzGJ1BIy%XBvsd>WG9zK7&fr_hr3 zZ_$#|K+XR=Z~m8}qA&C3eV&i&GXYbXk9mW38_J0a<#8_cc{4GAIgKS1`gIl(P~W)B zTI?5I=xr-}XXF^nBr> z6`LV$<7xn;TD=ji*tBxtA`*^!dkV--K-_VVO+D`0Gudj&Oq(H*wDTS-Co5;4X4WOM z@eTf_4q!fOKNyF<$Z+W6aN>2(S+Q6+n%RYd>2J-LZ5*V9B-vfldz7%8rhWc0%8W8=&!_lpSdIla=Vxu~cxk8(bWpuqf5ec2Mzvczmq^C;DyMj}Tq; z+gbE@XWNfxb=9D=(B@X#QHSz8J@XEYYCGa!L0|9uL$$G*ZNEIC0CXt|zR5nTsmyPG z$UfI-$v)%OT*VdcgkPD;#~maz<~Xq8*?3AEUM%}e<8U{MGLs=yABfuF zgXAhP>pI|A`-ODZ1q-GP>HzED7I zlX}puI9!t_5}FDI@!Nn3btv*3-bYRy%RCy9+Iv$~2*py{sby?6dyFqs7aux1Q+D+V zxBX7R)fe9D)Vr^5WJ0$)EpfmeQI4OM^r{Vk*zkz>_=xaW`nTAyu*Af$u-LjQost+H zmI#m-7M=*5PD|WQE2{WEaNH{)!OJr?mb>nmkl^W_kRWX(-f)k^SGcRTA}xB9^e#TU zHvdWOia0qIPbp1VSl!IWL%T7w)zs>2(NIO%McILElwIHm$VOWAHL}<~IM^=ACMzf~ z8+XMcZa8a?*GqlMTmT&)I^MVx%%YPL#~=Cztpzj&i=Q-aK)tfoktxzsNa0hMv{=r)O(JY*=vW2-@(-=qNh71L*7{nMQ?Ar%rh? z+i2L)YzkD*;3{J!aVLtDjG0MmS}khCHE+()TDooA`)PO4w(OK(H6+)oIsM_yZ=+WQ zX)>?$bQ8;>a6e3y)-uM}l_P_*Xe9^>7_}?adY)7TRPWxWp*8xN#`{wpv&DZ}phG}_ z1OCa!gA^&a@vE}><@l~1-fx1>T)!T6{lU+!M}G>aG-);D%Uef{=x-jZh^UzJdd6`}MQM zxk#%EeC>Ms6)qb)stD&W0Ov4)&!LdyfLAF$E|p8g<`y_l#gppcKZF!2-jEOi;n8>x z54wOCYyw3m+aX*vH}Jj#Pc&RvXMUuS%E!ATgv)}}W=NI1SyHp_J_Y&b6T*8njEy?J zW>P&6k`r|GKbk+`cp9i)yh|kB&l`+Tp4O4S)nCTfUwp4|R{dT^-v7#+O0MFcjn&Um zb@@17x>`steP5SeD^cAaq}*V!TpxA6H2PkDF+EL9R6S#+%ZXQ&rsCmCsw)aq>keEV z;D*j13uxzRJZw>*rfPUR`C}K@KNcl^b^~LGOcfw!E5{BJ*V!Jp|<@o!7?Yt;3;?!Li*<9&qszy zPAcQ$HfQDTO&M~0a!6saA$s0!E6CY4$I!A5Z&C5t&^=&!IrUNY?$og-Gq*0eHOw-> z+j{(dVlOS0O|x>Wz*F~3j&0vk#!prrqe$-rvz51rj$U*Sl~;@T7>Y@s+s~t6X+iE_p=Xgqck{`TMptY22xE zLif=#y!E7S51{?$?cbvEszcE4M#$ru#qGn(26|7c%CyhDGBzc2mFJ{D&a|fgguTf$ zeNxXbWqk@J__iRa%0(4KHRKr<#`Qh!N`H9bJeF22Tv)j@CMYNdN$TB87w*}!Feof6 zNW2oOM=WC<#LHNd3@L$K-azkf%1<(){G>MN-YC5Piw~F1q6lTxUo}qUAtw%_DF%#T zU+tQu(kOX{>R|aM3TksO#q>Knk-P=`7X7YFIl(MuC)OO3^`?M2hn!`;)L}w9U=NJ^ zzjM$?G6))cn{XKAz$9)WMJr0V5bmLBj!0whDj?Q2ic;Dc4Sdgq(7m`5u;A@m-m&u= z=_0{04s--bu!#ku-tFp3lSIRPY#O&VAQr&47h0QKSs1twAH{b;;}R@al9$aaT--Zq zSpuX@C~}>&n|lKi2YXvbt?*XS#eb}gJPG~J5hnG*su_1jM&xfyYBk7g@%;F?@s^l> zIgd-@UaNBPLabX`sVu;an97ae?yEM4jUcvSgyB>3j9X8;b7Sak+~uv;uHkrVa6D!G zcxE`BV$I_#w5K{6E})iMf`YKTS*Gz&(MGuk572O=DV@yAp09|O0AEzKI6RV~q)U0B z`!+mq5-J#TElT9kyj;VCvJq{O#gk2)WX06xXYD5`jzQHkr;Zoi$pxnPyFpUdF(1gKI~o2Q+NVC>xjz zyI6?)+4$-@Rj85C-}YinEm3caD6C)|jTE^d51ON^=B)5~NdF9^!XJ8B;rnGH8us}u zp_>v-yqWWO{zG6_plADzqTg47{kGy+Yr=zkVqn~djm8dcff84wXll^lD1<#~v;5g; z^a3ek&!8v8E1=CGSdJ1lovPZ+Y@aYJX;k~d2RTx?HtxI;c%gradCW~HeV&bA#QRZH zqk`cM!`*5p)=k~3^iFi3Z*F;vd9ZPlu1&E&6lkd2iMuh%#n`#2*$}U^O-a&wS2I@+ zw!*+)Qkhv)|KH!e^Hau)y+3^>_B zH3JT>0+<0OeC=a+VEex8KFU_JglL%l%Ih*QzU6fP$@B7dL1TGeJu7hNXwxYSuJRho zw6cYKr|KK8a4o7^*DJwJZC(Cd*?R2BZIc|L`UhC`@PeaIG07v^)5pfvQ&hQjkd+wSo|EF37;oRH57#2hKOhQg zOGgmSvtK0PL(BG=q%5$q^0GEfT-wdj4ca7~g=N-TR&im=V@9GC0iE)>p&S zH73T@H8#Gt8@WbCZf`uWG{V%KNv7^5G20jQ`UOsZ@0cA*Pr1eSzDQaTOZoz~-nm2A z8kl!?irFc!H5AztD2-W7E=v9vZ`x#I#d8M9N+go~bHF9qs56*X1);94Z(-xi776Pn z?}hf|>(GO}Q_B-t%w*<8?JmgM9vZ%FT7G4WVn3J& zXfQ>|zG7V}E#C7W1^gBxIvbOcGk^Q`b(p9IKPWO95S>pR^?}#@8VGLT?pe17ZyqT1 zv(C>&Ds+DaFgtdG)*QgYHmz{nB#(j=XaP+CuohM&cY^LyFbj28 zWoo(MuU?_zSFebPCYLPVuZky9VQ4Gpa~fH-Z;w|wi9|9Ty+=dQqrppO!fxpI5E4Nv zZfY>Pi=w&Yq^-k7Mo#RL)MMn}ir7CkEN_uIi7 z+Q{AiC>n?EdLa(kp?Nh#8;dLFDWVqq_GM$+{<|i)kud0ji!88fO_OOXk?P<$O>i8r z`wW9WWFOf*Vsk9oMo>qufYZ)OvQ;(yis3m&v8it~2$#AOLd(qbGd0TdS zPYTsy@$9r+*{BB_xXt+ zd*@hwb^M62_P=>Ax;OIM?--@+6KE7$pfhL#3Ja`uU;k{$q^-CPo4Mm`I_@7rm61<_ z|9&Mh9r45FtuWHjz5xgGOVGz59@{Tx9s>8%id=MvJ1#p_usJ9r37R-WSua5MZ_^`q zOkbA;PpGJk%u!fhpz%^{spw|s?{>|_HuTSYUS`@!wyL< z7ovA(ucIe(=78bV^PpE)y}znz+qT0PNmjSR*zqGK7y>07^Xz^g(GwR%W^9`~5OMl6D!<$24qA8m zG(^<2IraYisWvA+d^j-rSmwB)rOKiUX#EAt3uwc|`CRGHF~g6Jl$@M~{=9SpJu57P zme($W&a@8)_w7A&c>nH$!1SD*n_txVFUi!}T~}(-(rT{kteqzLt8-C)?(CkFlq$j! z?mRh#$JiLJ-o2=P{}EqA4KKp$PKk2aCfK5Y7T_yQzGL(XU#~{qT=Z#Q-o?3LI{LF} zD))ibY_#8PN$$EG&GaJ|WlUP+tn3Kx=#H|%9B8nw@>`+4PT1UwdHc|(x!~?xJaO2< zNPX>y#TmIJ?u^{<30iqN^#tf|@_Gd!dyk+M*kESf>--m+RGB*mV#w($>{a|-zcqXd zaYy!|jjy~mq1Pu;PeUv+oc%I?;Lc3d@XFNu*QD9pag98-DZgoTqIwe!73k<1>FWG9 zjgtO*2T6W20?ih+&;GSlvMvACLHJv02JO+ann%(O|JJg3|JFssaEGF#OXP;Ul?VlD zt0lE0@Fzv-S&_3A_iEE`dRpNM79EwAfnMbw(0xe>I`<+BbkG)h#?+gmF9)xg9<+9H zIY{vA+<5LX*55r3`rHV51}<NalI6ttiIN)!j+H6InI zOWYyJ43!V*N~s#L;^75i_&WI{%G-7Owie2TT*CZ4#P*Sd$^(BSe6kLn3&k$G#KWJ$v}S~ANmqbwF_FH4!w%k zA`WGg&+U_i6IE~*>9sf!KI{IdLTuOcJB?p4_qU{l3zL4Eo9|-P*~6o=l?&RFJY`Dq z;E9t4Svosgc5`+ny4nydv1W_}UG3UDJk@tfLnNzY?TC7>^b5*YslZ(tz$j#`amZ*{ z8k)i**>8|cR&}D9lOEUq#{)I9?=%F?2y>713Fu+#eLkQtyk}HUxQ%VUo7yR*;U?Wo z0~|F5u820pCq!Im2;C6g%X?F1(s8O{x-BKc*V*h5+}0x2ls+LBb=-7C?3bb^PiRa0 zq6PN{cw!zO!KjH*M-!Yc;2*38BcuhN*%)|=THO($dWyJF^a)kb_Z*Gua>OqTxo0@P zpCSQ{WP~HZ<7eEZdeIoFoSQ2dtePTN6p4I4(SC?2=FWD0&K!A;0*@R4E7TDFB0rq> zK5mpGQp{VOL=wq0@B9qeV+Vzi+%uYx!V9=^$tmh(UFK4rsR(9Z1a^{B%CXfT=RPi_ zH=!C7y*e0^2@c%nG!zeINthjShngz@q6S z*Q5k;gIj$GGfz%vG@+XPqC))QsPl_(?i*pKxX1YP?_ukECSYc$Z)QecYhQI>cfYzo zTW{I#TK?laTbs3VveN1|&bw<@M@Z538|%@^q*ZS#4ZrbyExX}Ecb zM*BcVbjyok6l1ssh*r;e-rfgnz`#Hc?6?Mt7o(xz7W5}d_v0GS3@YCVEe3Df2?;|e zP-5+TZnE6?M-i_9R`%g0k6OQel!G6Dp93o`8j-zxVyI(}U>?TF9Szg47h#-?1%9-# z(0BEDd}vs8-)21V~0IInz1@Nr^NocBoQ{nHTl52#f;ssYGf348tjlr+skd=JM8-*1K zsXfm%qDJEoGx?iZ9*tlAio@MQM99)=E>+%=7a_kUAyhW&4IgD&C>c9L5-*RUK#|88 zb01VCxSbT(nb{ebSeY1NFavR(nwA0w&Zzy1_({Z1x zXDLbTR_-_SUbO~yt0C2im%ynd^TMVeiU*{14{w$C=C2t_;Sv3-ro=nZGTQfu~L0|o1z2z%9eDVZ3RK3OO zOUIdq-sVsLaJWF;AaL0PAD`T10j6QT-7Ncs;+!tYIxv=mauXGmEx(n@DWct_yo4ym z65Yn7V!Gz*Z9LOe94lF({)+hc#8d$PWXz|UhO7eB&<&SzVIYSUE6~`&LNo)$_J=O$ zng^a`W7&bIi$*r3Cnybfug9S!Du)Kx@JrV~Z5}UTz4BiL=hwsD-sQm7S<^OYH9pax zu^!Cv>Thq`v7dDdgHZ#A&)l(A)&hKcI&|$UPtM2W@R@FrU5talXQXQU8;?3`Wbs5k?-XAge4<`uBMNuaw&%+C+3UiimnWBR;5I|Cr+o-<;jc?!@HZHwo($KCQQ@X`dv~mcW#r4&kDZ)tLt<0=Ghu`st zw!KYvd-Bsr@+g0QtUV48z{X$Sq`l?l?M>S2ZedMp~W50O3U1 z@wHKFi*cdHmT0>bE*V*P#IaAbpA4%IaB_&3thiLP0ZyVGLH&o}-pj)EYmMtCxaSqC zM+UAw%BCHjkIH*vm-nmKUA#`RhjDka_aX?`UiQ8E%Jwkfxbp^Y8Q5&;leO6v{*EaQ z&G65`!h4h_o?t0#BI=;IgRf{iv8pn4KVZREBiam?V52q>!{Jnz;jV-8D7c zb9?$k=xD|I_yzdOG@12^BTeqDX}s}vcv)J%)aBvJBKl7bj+~fM*C|=3IWCK#bVYv< zqM#e!@*S=8JW}pBYyRlj$9i~1_tV^=ID$=}1D0P|vKe{7p1|YWg2O@m zGZL3xU$haqz~MmuVR&-2!;|YAU!aayoK*A?#FwIccC-W<>saUq1$j-L++N5J_BLpc z9Jh>!eyiAYE>F{3Y%~!c{%G!I#^oWK2`AgOZ(=NOWZz-<0MN)eg!;hyWMkzR*{Yb{zzD<4h0j{cf7WQNs5^p|WN+$WZ~s6Bc@*HWNZjuU0#L=AZC zJ8MSQ*i2@u%P8}6a-TkZ`)GQ>qqk2r(w{v;`6%b@TbKl+D4MFKC>A3g|9I$O+bJHo zqY6nOF)C$-^G8OS!oox8Vjd1wUqqDn!H$k3rr)6bJrW$6cGGPaW*)v~vM;?wi6qJW zBF&`CZJB1bfvdBSk{3)!sF}Fr13&v%BmYdqD|-NaQoKQ*nC<91v*X((*>z4rE6LBC z)QESlCZWoRZqv`%)c?mEN0*s)wXdc6h*N$k%>jf6zRArwNr@Ep5gCbCEkkNnf+xS z3>*EwSAVAY0tu*E1FFl95=q_q27N!fw&JnZ=-&C_zIbTz(#*1 z0!g=+SkCeiMBT8u4$+t9A#P*d?uD<%Tjji3P@J>q^Q?OHX-8T7$1V`HicN5ToAQ-r zS==2`pJ}mt$@9il$j~L}I%vY1tuI7ZpI4$k7tgpQ9dlitg7X?0wdbR*C8jKl$9XvtXSS#gfWY!yk>8Y@i+g$<4 zT-<$O(kS(jHUvO1{bvn@n51UmJseGvK&{4($3D>AX1*Xn1M&#z*M`?p1ER-4<=tzW{zWKmtRL zpG5^oaU1PDPS3l2av5~Faq|Y4mu-7?3%ZrPMq%jDRrCOby<7`cYAsW>^F`@6dM6W$ z!{_1fQG9ry7#>E#MU(RqwSjty0$07ZNJgpTb#@YZe{=VQIzIdh10_vQavE{)V&#y< znFC~dh@FH>-)7zOR^S^-UcDLl(tTu?d1A36Wk zD@yC)S1(&OEx&ZBqpx@G7dXbW6*$zZH+y;L+_^(-f`XB6=Dc~CJ%WR|W+cQmFi?qx zE|`~T8ybpS@GE>1&R$l>5mRwgM$!CX_!aK4C){cHBKyeGEkxV38P$q+AVRzgS~Fl~ zXJP;*Hg;0tEJGKt9X$>M0~rpJ>gh6eAXBDjub-Akcg_Pi5(AA!AM^0!HJZp-& zL0U94&2LIOl;_7ErhVafG)kJHQq_4?pjp}ZI`wAucivM*bJ4R#F--|RhNNTVB>btM zfqI))9!5I#JzUBe7(28sE_labD~i}yoWBmv|2@vX zftWv^pKu73;sbGuIh#`hbWFr>sQS3}HXsrdqUj#Blao%B`TWkz~y`O!b zpg#D2L`ciH1t9=^f*b)HgZcotgg67V((4-2sj7YZ0K1MB&9ob8HEe>37URYZ8fr9^ zWy;JPI+(O;q}8y2mbOuw)*TG>8Z^;rt%s@kY&JusE6)^ZYy&Vevy;luicIc&W_2bE z%#dduMh6c!I(+dkZoyo3rD_aOYvKKH*cssv+B6Xo&;fSk?URUrTyJAnq7pF*5c4+0 zXLJB!66sFFFUrZ=I2RY3i@rJ+FfvoP(5FEQecmZcy@?V}<6Nq7E~nMG=o!gstD!M{ zl>4}Yji{( zO`g=G9V$iXv>UUxfjl8;`4ynxTQ*xlwUale8j~H0t%recW7JMLwa3ZP=RSOfh_uvj zNjI5mNbt?|zQc$6;&iTTiRzt@jsO(mk4FvGj;uzVa!}5cm`9|hhSh#xOM*jgl2q$& z;*Rai#!I$fO=)5r$IDx={KQ8x0Nq!{D-+NoY!%f3?PwDXZPBA>V;~%;!_pA$yqxA4 z1H_-Ih`p=E<5QO8tdp@0vqo%>o@UXbqf^rs?b79R-bCM$={B*wrUZAj*4I3!XGSrK zNqBO9Rwb#q^Ng`B|06ocCo``O2UXVfOjHB$ONsF55&2VARz|oAT$CzPwT>5_SPP74 zfdj)+r$R-Py)R7b5oc@@8r-#mcjL9PoF&1 z8~4F^nz9{Ge|clUL_kn4uu`KU*J&&n=&5n<_4T<_Q*$dPr&0aJWF`-3-=vFihfek# z2F{w4l02-XK{vM2vQuYoCa>2}|D=N7hV`)Q)X}<&B!B9__H zm>*NvugaxoPkY#Sa?AAS$sVxMr>BFREIU8XeT=`YqrH9I4PFOx*m%s-$i|b;gz_X` z=ntGaJu|&}Em5=R{tIrJzg;hTm#QtZrfuHJv+wLP8XC3AOUatCeJy;mJ$;pd@F@#|7~F5F6Q!iAggTg#Lo zW|k>-5ts>_ja$)PY=tf5{=d==g04aKvHBaC((C6|3~k)Dt`)D-S4TyyO3zpwablf= zk1;_y_W!2_bRVd0z?MwytSyNHwq_EhU5^wu?Lj#L*N&-8$78%6w?Kkf{gxu5#jK8P zYWpv2QxbvGKXe@(+c1&T_yCY9H~5Krsy`Z69ANue*;IJNv1`G{{$H7>v?5Dt%d-I+ z3wn(*;lnZ$zB9Z3%ov1Ne^xOKxxRoh^v%=|^0qK!p z08x=ai33YDTNSn0h7@JJN9`FHy)-^`MTGB2XL(2O%y9qIDOr7H9L1cedgXTh?@KlT zGx)dCVGFYE0hj;15*{k5FG%ph8!qjOI%(u!Qmh>Tnyim#YsZ`LGXe+o7c5lej(%J1 zqRrE7;$jRo4cs`UaBs-`*Z~vVw6r`Y*hB_4X&4z69u_F=+sAcm_b&eabnlIv;m}#G z(DvRM?aZwMVmD>B8&)2(B-(FsV03PZc5*Hr6<6FlT{Jd{jAE=0BugRXqQ)> z>D$qD<>S&LajIrGm54@QR);}FQu4;jGTv>InVqm0lIep7k<4Y~8>E68c24eAE001_ z(RzTiWEOyJ)IihQH8rb?w1MWSCakk;@iIp%OKUEb={_YhAgd+a6f+iB2@JDO=;^4_ z&0MR2Zmh1OojI<{5!~mm@v5SyHW47(XMK7EkFBnrvU#{kNQ_lxY2;Mrr1&_iPF?yv zJbm`8d~JqdXM@QZ{#k*oQY`|UExH+U`@pRc+R0LYHsciboL3~hp1WWmQ&XYL)Djc|*bF^$eFEyZcO z;60MChz`;8C)t)F@@R`^ak*X%8hGW#&ReslDzKklpm%g5 zZ9G{eeUxDfn*=V;=$Ba*cwOuYP zpvzd7go;{rLaF?xhDqJ*l(HRr%e?0&xXZE!goVd@`u8Z@zjL}v53jyKF7_!$2d|cI zUpl&Ih0TbBRyJ|LedGGmJ!Xy{SCHcBWAEh?r)*NO8S?3?*wOHy}L3shd+zGs6zy5aep=>e9YdhwvbmAA<}#qMBpJG*S$m zbXx*&$KqI5BJDT-LY}3}#P|qm|2hx2MM~J@)X(}?qJ;zW@c(6`g1I9#6Q1Jcr zsx;+MBMIjv2(uM75L0 zcauh9GKe7(+yj@{7taNuU29 zYFsF7N5)D(JO6o{WMq%7XZ6T6JGp9JM0#xdNxY}bDj8XLw1<0?pV(PYB}#o) zUKFIhzM;c0CA}GM5+`xaqB17G%`prw^JDO>c*iJi&M69+o#HygaO_3;&w)oSjT>5M zI$&0qY&?8GSCK8=w3?u=_%C*p%gOOo2UWuv=t@a=%>Z-FnY{j97s~C|)@r){Gg?d@&5+e56qjg39|^|G_?haTjR<8;Kf?iQ(-`%z+Ku=qn zo)GD1W9iu2%EqxbK3AMxv+l%+b&>uAgbpC^Z}n6T5~lj?O^r9)DjhpeJ=GNE_LVa*O%E(_AO(s~++k+3YRoS@`ECAcI^*!Wf*EfQPVe~Dc6$vt9zF=Y zzwO`-n}zyx>*gC`7Fs&q+iQF&Q99#1(FxT$LFr8TKd*EaQW&CEI-3!O^~=1w^GauK zvGoJ7CR#*8f2?6<+PY6S&3-vp!^}ZNHSRygqZQUdv()G}-UsWP;il@d;i?vz0hnoe zxi*#QL`lB+a@y2g)e1EOngTmwPD>PA@eiY-TI(91S?TZoM5(oMIvG;YLT(9j3H(s{ zpU*S77T+L`%hjx$Z;`2IQM3yoG?vaqqrXu!q5GNpyn6>-UixiX->%vO?+$b%ssd~| z-8Hc@b|BF%Ya&=HSFv$5AZw_}VO!`?{T>rkx*W_*{vGGTN?Z|zpA{4(Z^2_!G{aPx z44To&6c3k9QEUesUQZK9Eg0`m>qonw>r4o`A+vw^@+6T>k{^NN#Mz&f-KR{2GgE!& zhVD(Un*eNqP3zV3n~4owhL+XNT8!>pU57S>4Y&;n$h_=BsbAc(nA8RRqe>*MwOucu zhg;8}d&?*O4lNecW{Pjd^NP45|NH!9Qtd*EP+ zhxi_2191`g&u0`oFM$0FltD7LsZ0K0mQq@9)ib62YmO7Q9~qVdumcbz)+q1U^n}|| z^KaIZDk4-W!QrsH2#Y0fP4MEd98Obp!i{BoxSJSWP$yB8p5w!V#PH*M_yyHFMwbsy z!{MyP@;hp5MH0%$#MozrTyX9i_}KYk_&h#*8wTI1;KP>*;Yn%D@-WIKOn_b#1#%_9Czy?r}lf2THB^5X6i6XQalP4SP8 z>@Z+KE7Ml)mL`cyTX$&XM$yzowwa_C?gc4tO{r%L7ywPLjz4W9=`|4@hW2PFI1CRM zVrS3#Hieyr8UC}f&4c^QPbALPud(_PCpr6L22Ir&I88!Fz!)ua$mG-a{agCithU5l zPKoJlh-(q%dwTk}Qk?q8GKZnQL+x$YuFYVtA@YGM!r1gIj7-N_e85>){hUQ3TFhbC zGTeZ}OQF}$e!tElhi%5p(P%*#@TZA?>~>NsAxnmxJ}Jenzq6Z#d9UdcQo8zj`E>5w zXKY;Ph;AktEjr;oHf!x+WrCf{c5LmA&L@X%wCQh^<(y1Vg>X6Z{_Aoy3P?Fl?p@3s z3MQmj^z-W5*_@P<{h!OhV$F&83mu}7DSn|cjiu;4RgTNQ#cDI3_^xVPH(FAHHp%Z| z%qKEfX555o>)sieQ(4buu*)zzJ3X?nXQIO~ocaz<{rQ)vKMSdItF3wu9sUog@8V(V zC8idKNs3oKAp?5sVlYF8(e;d}Uu}ETjZ&LlN5^NU$IR$~lRw1Coqw5pVqNlS)&H1W zJ;EA%&#PBCyXstxPp;7#rLfZvL^Gk|s z74d|H{)%xCmJph(ALLgrd)_H`q z1-lKA*MAj-y1{DG_9BoWKaBi1-uS9-*&$=t6xsCbbccaqretmdncH-qzs0>19&1E>FuW#5h9W2c3ndng*c1zlJTromI=&}UTo5bZ$T zGnWpAwlMc6`*_VSzik^dsz-94Ns*&6w&FzvTsR~x#*H+?^&*&2q<*t&bBIeCRj}l` z?D`K5HoN~bdZXls@-{+@nesR>dl?WG8b?2i35$%6j|_{EU9ZlS=W?&y6BFG%5)u>$ z|M9>-3aIV$QCX_wKEM4M)B_1o+ug9QbA4XSAAaTd!T9v$zFFaa%*!}`q$)0UrNrx0 zpWLAIAkUsx`ec*qj|c+Nzjfa9pL%E~@|wAH5VV1LWxrJn9@!(=DK}~a?h#5t-KU02 zPfH`~DV}1P9Dp5QMh7^7nAvPYK1M8wNuI?Nu{fNh_>FmwQ)H?3!FyRGAA`h{k*i#e z-z>#>-51|XlPLMLzQUCqNMe#JrXpCvPGX%{>PJLRT~X)E6!!5}md9I4`f*STC=*x-0Wnyr*|ejJIce-4!=!lxiQ% z%0h+ikTd)>QSzFS3EiXa4k1RY7$a8tr*LH+P%^QbfLhB)V23P-VnmDF9au9vNU=>q z04A4WbGo^7D_(s^WJZ$DpgzB{KEsk8y6VgHx$p8<-XF#!bL%rQ1JZl0nh-g`vds1_ z-D>8CMV%{D1%+Rh72MDskmFyR-g(xV0J|lAIk==8eA0L*kEiS@${Ik|wh7MIwvO`- zyxso~dZ=b#LD!u-WKC(BVt~nk`;b&Nc)Gt4BnO8l`x-$|$8LI0PsGmf@GG$P@icFV z%9>f5q}^Dy_HrVG?m-XEqLnw8$;b_?PeY5-#qKF1$D|B;pQ3C#dh0a%;(cveqPF_} zy?s{tFr54PV`)=wj+=0OLJoR@CUY-Q9_&TL3-)llmHojVbg`+n$Y}i;af{c*eo(uB zX${UcscqeK%u+q)tn)zc(TzGhvZy2;Tx;mjaqLiX7Up5XquB>o8?7;KIzV8#e-ixI z5tii7fhIiUDvyw$_I^^Qerh0sK?ue`Sfn8#LkL~EEzX}%bjiat+P~$+Qutz8lAlv_ z(c3vXlFkj@?7d^KEzQy{I@em$wr$(CZQHhO+qTU$ZQHhO>&|!Y{e9=0@6U~Uf1ijE z(LFkPbX8?O{bY@-%1kXsq%56oD9oB}KuhlK$DPBvijRir!>vH))c)GfS4>BVCOMae zehbqyo+5f+b^3K}#1sdc-PN7a54{c9A*`q*PnfX`bT;C#j_LH{@o_{4=6sckBb?{a zM;Hu**)6@#cBJ!e$y22p^9GHBQf+C~SV z=T5mERW&x_oiR525lYo+@6`i}-erm2O4Ml@XkTT+u}I6rbQYQT9hX?0+*q4kZ*z&~ z;dnFPhV9GUOLyVd^p3Pf~p=)gzhW8Re;}E$7A9&SN^<>PRm6` zJ{!zYf8ALVH z$(ra9c7j%wmP4AF^7dwtR4Wg)4b4~%Zg!)Gb(?wZQZN>^SRQ7#e-v*JdyMAmi!d~^ zbNxkNW*$fYrZAGJ*Dt_tAdxr+=(1aPj-?Jd@o4?-WsE>zFpx97%)NJNuHal?f%EKA zhGM!Iq4V|vzE8zu=YpmMm*cyJ7y#5Ouq6;`uUI5J5@V0+%1P#G?7?|Jyo&-~?s(iv zJaOEdSAfFjREbMmX+bcue}#zQ%Au`_-stypnCp$8OFpbRg;f{kj#J@bl2lGw6AGPx zKCnXHb?nWjLY;+F7jg0pmYeY#bt7qkX|nWwIt~&! zVtU!HMt4o-6)Hj#>ryQ~KIFlFRaFl;pS9_W<*2IA#xI`RaBbE4;(*p7V=w@nL%Is`?-J6>bDv$X@D zX92<#9ku({nn9ijnvPBx*&a!2Jjc#W1APA~YBqUb#Y8o|ZL zh@IkZ^2z=5IPFMqaq+v1<3Qw;mjlyqMrG;@&44t?zz04 zyu_cY+`oh)0U5B%-)ZKEy3zk`d41+pfh60C7lnF@!++}P4)u#)4i`;~P7z3Gl;Q?X z0RN5kkCp-Ku8iZaWO^$7F4AMMv6)|^Ji17F}bENF_;PGk#*Z zgoGr{5t)0vWbFv=zb*26^zQE&QHG#w|AOL4_AM%7=qmUeMZiyj+tLJhrS!PodOi%J z8G@zof`sGn@ZY+=aQ2W}>zT)-hS#0I5?%mi4MNPE|D;>iFX5e!O+7rX&f<9Wl^nls z&;5=Fy6*8=4^trp{N#rDjON$&Tc;cE#So6t_P~F5;eWU}3w1a-#pje;YkLHRc;>42 z5m;#x7Z=_vE(N|n7|0#Wv@g-WLE%hKkLljiX}rSG=-p{=BgR;^sgHACiF!Em+NIam zHK|-WdH;&rugRn{H<2@u3+Ts~)n{!7;#~M_gaqF4R)2T_6X%tY8zL>)iH?iIXwhNw z*vnfF`kSxVzCu;7%^#38gX*%H(LVxz*?+s2!x=0z0~kLuH-GZ#4{z!N#>wt`KZ@4y zEG%?Ez0p-?lIs?tTT+HBs&?b(^nyRL3Z`zue^j_8a-Dwnkkg)qeJ>D`-|#(iUV4UP z3Apd33yGnVwGvFeMdj(&e90~Y9D}{z;^?Y+bhkrL)rr~f{+5hq?V(MA_F3i?_@nUTlcKztKJ2p0q+PGQF&fKvusIR*`Ahg73;3WVwm@#b4FP zrL-?73mQqWe)o=IJn!1+*3!a-PT}ij5gYh7@-68Ex7fX2p#;vLH))uOT%GtAh@^S2 z%=E4po4!UJPZ~fyk%l!f1&FGfu=FcUpZLD$utrd_OU zFqMTg><1d{Fj=7!6^WCITNGcod)IlDpyku*xR-%k$(?sW2iKwDj$~h^P z-;1B#@Zar{t~oW9i!W7%<7(b@r#Q(V%4R!~Rgk3JCA=i!b$}>eJ4k%PRfHJVOx~E? zHtipD;vAuPt#G7KUt(fd8X#bBYAhmbJ^ATBtcj`iD%rd*QN-=7 z{6#*o8)uq<4IazNPJhJMqx)J>bO8_D78S$5i-IN|2170c+WcZG6zFGS6>G2?o?%g& zP>3lL8TNoYH3>G`B&n=0kGUYEn*UqSMnR)oW{XWWmr>7S3(BkzhoX?n8Cv$^@b-48vX>0J!n&|)-pVkR5|>;Qg2rMO7oTV@ zQB_Tz(}_jW<#IGcwJ)X=_gwI~#mOR%*dnK8TqGhG)iUix1 zlswl%PVR%?Ge6XLU$omN)&pW_v7trPnA0G~4kwPC)=?ZVN>pqs^%x$FI}yiQT`~Vr z@JJ8gM$O)uG_(YjAdIGlX6t3=o;oF~w^g-vb+#IQ7@Q3e7?n2lcJ=2Qi-tE>eGLm2 zi-Ma)A6FCUi(M`|$tP2jh)6_~>aeP;pU{={;ej00gv^d3!H?9-1`@Z`Rpwnyd3ws< z$dsf}XLNM)8PD|hKiP-3ksjzTL34iBkUyV*CfHh8DHrWX34RrOU%!B+pO^jjGg2O&FMo`8EWA%9MKvKD^##UK$;%9QN7 zmMASgJvsha;*(^KkToYq(*84-+MX_yShjEtzsvQ;M?5Ie&So>BEVYN#12#qC@K?c6 z#vd;XtO#)nc1_UH#GK^s$oydH9sb1M^q`UbScW^R69X{chULJXTum93<0t8?^=GYl zpB-0}fWebb4#g}8cbGJLBD=7Va=rqYQ_2?xVnKoX0>7~16(c>(OMwSsl$1%k;jn!+ zasDO*s7N%l-H}qMEF$`$irKQ(e`yq4@Q0=cCEc)qrn}qKF3)rd$?U$xCh0tl*2v^2*j|YFt6aXChl+A7ZF%HFrp$q z;=E1A9+Mlv{ozlc5dDUHOiqq3Lu`t5-7gi6BRbor%M(1CtrrKGQ{}(E+sVYUhbmA< z!VF-4<*tVshL>Q$^av?N+wwuif~29L^T3&C?*GXeKTUz*Aye7iE5?s(m>LK%b#1d_1T(d&SpMUmWWkg?ZlADcr#FwhzwJ$-k1;H}Tv979EoL8_G#LcOmZe5?d7)-;9&xOI|Sbm#}pqTVgI`%?mHyw2FfjrTvyBfBjXTXvjm{7C8>d5Q&X9TKMCBVfvPk zDWrp6hjSIr`?`!lN8UvYbF~`4O`jqHmf)~#S~r3naQ)Hp;OwzZsXN12$8x#YprRR6 zqlh!U;0wooF@;M-WIfL<&e@H1J11+YCBgFPP>wzl5;rZg!Ux~x6WwHh;fldi^FdS1 zktQrIvZs|+rw3`sdM$0Y(R;bo_6TV;taR{!{GKFwGGwrBKfGje4MnWp;h^Ic>$ah^ zGvbNX5Xm6ygeP*9=$u?kZcF^wg5ku|peQ${rt&_EYm?1%`{YBH#jdNxoo&074uX!i zk?_gb5RLe^kYW$Xk%=h6I%de|k?oO+@J@bc|L~BU`R{U!L%PfO(W8cCyvq(lM4605 zwk;U~-p>$xr^EqCTj}i2mVvFP!0zB#c(LOHGDiCGJ-t~7dZ4=eC5F;tbBV^MGSjn+ ze)cWlOVdmyEUL=5zpGLhsXlQBCsDLlbGF72Us$Ui&TC!utZyQs-He%k@_k5tQ`)3e zypAAH?Qu&kV8kwq322g?-osNd)Ve&;E@|J&7lOdmb9? zl8sc~a%five@uFwWi{6*kky%XS!Ypu=rF{iiDVF%CT1{2ct>0QE~i86jA}ihdNuS! zJrK-x6K4!(LAeK8bQ6{>XHQ#bf-{bXiu(v7%%ap&f9%@JgnpmGETk@^QD6F9920xm z&CfHwBwse6fROc5?$i!08gvb``4l`q0(?qvwjuN~=(d&QbI@6u!j@h%o|9xcG>7t-L6J{Ci)Hlu&Rf@tUpr8RKyd!z z8FbYU`EJ6b%p+54uN_vI-U*u+*`V`;2i(MJv`yT;)oA^v3Jp~um4)XY=+I=`O;LOo z+|7+BN~T|KdYO>sT#sxE3iLB#qkUVZ*k%&hx)auC5^y@qVnsIoYkp=Z$$U{W$%S(* zA?awhMhS8cQZw9xgelX4G-0!E$DpX}zs-pVE0{(WMVEvLR>gC*z_`GY7Ld45refHa zO%eCqF=;y*Appd5fX`_V37irIYeI@m43Y%yA@Wj$uk|U3XX(8Op=QJ{#s_O>NW;%5 z0*I)Yk&g)(OpU}K-b+<4|Wc7PhdrO}gW*E0inQrF>VLvZII^TODM zS8ciuFPgCXI=RPJZD^eDF2JVXJenL<$ZhW~RY|tbTz65)WN3r+16x;KH5W`{)}z`$ zPq0M6w_82%X1{)k{a*jOXgbLZjemL&VXF~!ZFcXH@f}0y0Pwpxh;jb7POCgDzvm6j z?1?VWGYO6!BGx!+cvu*p`zeLb!3TyrCzx_uzKhUgmzK_`wI*9r&)%hPC>VPPxW6j5>;L@h3=3#3L~+^fvy>!t`3d z@gn0}mR&zu{trkJx^z$|Hu|ZkHC?UP?15v=Em}&oO>%>Wq zbBoAT4J*Qfs-#{wH_2#=-@{FmVJJ?) z7{ph#*t|A;8UB24ng?iHt6kxS=%XYwbI(Y@c0S_F>T%Md%o%l)i>c3~_h$(;1kPM% zqRC$H{gKnGApEb3t@1L5pqSm?c^vU00@h(N5=W+O-&Z{!a0Stf{7MGg`-; zkjIMITJu)xT$cUv`-DU3%LR3n2wqg_W2<9c*O3BJ(Tl)N;8%;wb{kuL1;Q|#6V8ph z-fxB9RDcuN8wTckaPI)=s7ZEAmNr_IBsPq)u; zq5zz_xfj%w97U9&)Yh;@W?gh+aNj{b)86C`&S?q~yn`<<23j8x>P^4p_7-uEB;Ggw zIv&JIJ{_YMbeRyznROd)oWFsOQXGKPv*=4~EQzv*1d9Gz&!}GL2YY%3lauHLv%&#> zE!Km*Q?6}N%~t|D+mXhP99zD?D4o36cF&RDF~e9TL}Bas0qN-n8f zQ8&79LW8K4y1|Qdo^bF8#4}`CzTv)uzCcktOgQW8bse1#9Wb&;`4?a|POIARR;M&%$O%IlHhc>pq z1bSFYHG|=AlLNy+*P@+|yib&CV}pnyPc`I>xpk+4RJ`U#aDvX3zZQURVteNt&4}Sx z+@8k{k&`bz<~R;SmwA_n)Nd_VV7w#UFCmCxRPmI|a2@afZ7GYHtq#F>q_9gs4{6h{ zP+G0FnU!$!f1DgfIIBP{^d4zV2_RX#Jjo*_P}>}QaDI6Fso!&;Z67*NajjQ2-oA2= zv$zyzI?lGtR~6-L&fuu@ZriyzSdT4iaj3wkoKXOEi73Q&KQlN~{uz5ZheFW_QR}<# zYQkwTToAy8h*kNxKzCw(FRj%LR#nw9yJGDN%}w)6$kV3Y-OJL2^g{fke8$gsYsD9D zgLN83{4{Nv&vn(A>;$=p{YjPx$<)t~{#o{wCxD_d`J`fWSysnieK z!M;q$85cNQNCb+}<%^pNt0^abxz|I}{AD1r0S^HDw}m-{-ytWr-Toc@qpK9|$q`&g zU(9BTy)nWD(?cP_LkjcG(M?91ImPp zr#}j+St%QAWA?eaLSP3XdFpJ@HPWwK!$<7%k_LaxtDAKI7t}(+a^k;NE`d*5cte`J zDWLYkl@SpN=rY`0%u4Ljv6b9BKkcnV8tPCR@;uU0=%#ek zv>*Srn?eXkcJg6bidwvT+iOVhduUO8eAGnasrwZueBYS2X-2*!?QNN!Bqf1x|pjV|?& zmh6?FbSQUWQU0Art}e2$^YPwkT+p>V06A4rK#G(uU0i3gzo0rXuWnFlNAo*!Imi@e zt{Mn%+aLp3mZ!F+M?~DgF~Ni7Y1@BufjI$*d&+3nsnKH(a0Tc3-7opcXw?1> zO(0h}?~2w`uX}KH`$}^Gh@YbMK5-uUXgCD~+6o`p_U3AsO4_#koD?z1bO{V>u zwY;C`Ae{+yL#lyI;!>6IY!!;TUi{$1Ze2aTpqoJ4351E>U|~=FqVd)n1&5sAKD(OH9^|sDf4cg_7J@Fmb2Eq8uH_$~uDBbet%Be%yAO@2CP4UM;>zRb zMu7YsOnrLXn-f~to>WFvYo*4;`bqxZL81NrBp6k0z(08Jm*m3pOzCMpG$S*;mg47XcA-B$;ID#$cCfyP zWfQCiDuPmOKhNb_vbf}mYE8~QW~f>zhP+EJ?O~=`8qOz4lobZxNXwphC>LcbIf=mw0V>9#59jP{Ok9mAOxP_{S%IE1 z+Dd9{iTg!3Uh1!aS)y3LojtE%fcQ7xSGb_^OaQ zUAI)>wRQLl4k6blUcK6r{u%8Z{$bVx3fT_W7REbk8z&{Lb}jY`R7zp zt4e*F`|xy>HTEd%vMH1fYX(R@?SIOGKLY@af00(=6+<{fOsvB{0Y!;!p}!r2UECAZ zKaX`b=vwv@n3o>|zhdO441!lj&4-drqtHgUU(U>I_(s|LkOBB^nB+g_ z{Ay4cTyk9_oc{w!ssanpQ)RX8{BE`0{NEpQmw0XZUM`xw?;5~?ozVB}eTF&t#I_Gi zyKeTgy={^JdW0pZ8(^Y0TshSLa5VGL1ue+5AGL4oVYlD#S*H3w8^8;kofqN z@ehpKpHMpiVPN{K!;53j0fOgS=rS@X17L=X&6VTXV=@VaH+ts1x)xDUY4SPty<3$toA2`F8iyzCQ~Nnfhnj> z>RF3)e1Trarfxj!E{C#Y?;?!V2Xn1FPwpsn5kVN4^5YcO1{0*dFBN!-BbUzvky-Y> ztoLRx=A$I24&oiWXN9<>5FX^gSD_A2GTVjg;BR@Qro1LIBIZGBq4vW+?QA^%r!{CT z)oHtf)6Zeon8Jf1ax1hk&1U=LZ31rB=xI?2xwE;XI!YrN6$0*#nB|w~%ETfvEwqSt zFT{?q62iP+T&X?a(7D(=U*VCE`tTTRVcFjYWZd`!L}nv|%6MHlT|+L0MU+yfW3t8e z=uS7Q44(Yv;0hU2k;Zld$2K$Jua?K0KEj^2zjnkn7&x*tiL( zgvuh?Jrly@|1+?K;TD*C=CBbVB6Ye@HOoE3Z$ZyzdYymYP@p=1y>b2i?v@~UkcZAA z^l?LIb4Nrr!UyyuLiiGkh{)>=?=8a~ju#vzKI4lmsS5-W+dlwvhetM(A_l*ICFY=z zwghR+oWT~wmB7_cVpvSOm)Zf*usUHjA#n?t6Pw-#*`qqP{F+Iuxl{8~)ccMIjg;?? zJFOoQW>1y^&qxL#E(nroFMx5aA3~@`I?3x#o4LSPsJ%9DW;}RIL1@GDPj*!Jo1Yz1 z&x{2)^IsN&*z1q%DF6UG=TTM0!^#FpbynFcVg?#g=2(& zFvdq&t<{re*!yYaYNr#VA6@F4^|I-0j(Us`t^FaXS&Is?zGIDgv<#~wa96iZpiJ}% z;p~pah!87&=#^=)tP7S^i3cUWsZfV7n{6}ST}zz#?-cxyANVBC91Q{QSBAu{_Osf+ zMyDJ~AKj0-+& zjc}Gnd2fbv!qkppQ<_UyeH0#$j zu8$+w=zZlFB7i6=lRyz}h|SX66{uV$g90j(qDiziUrj3xo9K<|J@#lQdM`T#>Reii3QblgaFwpE@ z1x7R>vat<Ai8VlQik`~4un@i1>)a44H4GAeMq!O^*%1a{^vtp;s zZ0#5V+B#f^4Ngnw-)Dd~L5qv-Q#9f}IvVl(yIq>RalrM^I$P$J4&IoHqo5jqj+qca z@%MNo+B3M7i8@+;A(yLvMq!9YhHx~?9om*z8LWhT zdGuR&b6t1qw%T7Vsd1Sb9lQkEdq&B1Ip=s2l9P^01xLn21StQ4i3!=etU*IY2rUVk z$}0d{dPe$(VlL2UY9D&EL5-Uf9mdh~t|%ykwjug=aP5sgXvExnPFdw40Lu&FH02bp z-B2AUm${hmn{Aj2T}w)FJ^+%Ln9mP~{@K`3sBESDGgu}D63mcNmAUil%*E|@{VnAq zT0e8N!BpkQV8p+MIYm-Bm}J+ekE;MTtz>rUzgpMEaqQanj8`cp2%TNRy@@)`&%IXz zyHrfXVwCz1JV^qbqS8jd2aLS1oNePn@GMCsjnwI2O;%Q7{X*x9{T+>guUcBEwl?Qt ze^kfjKC!erVM223nzAjhk{mt9SVH5l+K;uc_5_J|tO&}Ho%d^#&cT^mfI=7_q+MJV z!fib(-dhZzvLH5UJcMnv4w z=TV-!=+HWMkAR^aFh1XvBPSB`p|j8ie?Qq{9JgmB%QNc1LadA%RXUIeTOS46wjg4# zMzFV`i1<(wz&yX#CnJ1d_XSu-3PEER7f=bL4q8=ylfoFK4Um+U4ZD>FFl9p;F_XZB zw3yF_&6lRNP|yd+2)LGjSIq8jWA(q|bu0sM-F~iF!t4epp77ux8>)ih5Sc(4-whYU zUCW?5kOaz9@PEy)|1BQBwxU4Z;2ZHoIMtBZ6$6(#>KGu{~P7n;TX zN1A#Fse``z-A@M0wOhH+`lUVb(0Zgo2#r^A!PP7pkviBz%BcIJF=?o!8@o_@m_x(R zJH}nb&^u!j=I#(u9ir+GQXlrS1~3a`(E;3r-ubk&=yqhvaqr9qS)#Z45F38Q7a({0 z@M(U36mLS>=`ZM2DHlqMv@ zvMxp93R%ey2L#?=a;GR|5*%*~enFN;04c70%O4o|CUdbNCS_t2?hMJTmB&yA$E)#; zx*DO`6rwKHAt$fKk>IlsYCn@G>$_h(K_`QOhJ~<)ro1A+bYVo6`?M-7hjYgk1vJOQbDk02D4d9+9B}u3?-j`f3fb$6{6=O-R&mz#=--Kn7 z5;97ki`tbmA!=vy>tGq@6+4>?2)j6dUb4~l_0t5Gi=d7a+BQo|tQ$G~mY>fu!ZTMQ z7Oc9@|87C+r}ErnhA>!-^k|tMU!&QfwVkap8d6%8m0-wni z`fITqsHh9*0ef$aWGZ+J>*SMs*wM?h(JCT{oLz*+tTZX zluX*HjW)UHViz2zAmwpV(ClpfXOeG-!$Ld!Hb{UmJ)gQIX-pOJH(+ap2d-Lr-H-G2$xnE>Xt}J6I@zUR5J9VQ2>b95@K_k>4wX3a?ox{@5+N{({ zh6^DxBNa6=)^nDT5~BXW_>rRlX@c5>akL!_UB;5H-pKhwp<+JRyj%mrS$?r`aZjsp z)eh8#$CK+rD;r$aO4wSKMo2RyZ%uki)=;FtcPfquQhHtRr{-X!c5GB~>21&{86SqR zJ?ODE;y%zBZM;?J;hqWFi1)%rJg@bEi5aF0LzIj_VR6=W z9y!jfM5r>99`f6``C}_FiGC9^$6zTh#D}-mHEfkk53=VM^MfJbyxMd&tW~9e1uz|y zhb8&|Nvd4NyB&j|MmT*2k3b_65F62pPC1BIzcBV3W#}_kEY|W#C73Xnui1%r>dTJ@=?tff}Sxg`*1k~ z-z3^Fv!j58$7*Nu8E75RCNfTXq!n!AUR``&(&uO<+hn{5L-kP88&T5{5Bsnxt{7a;+C=IMep(y+Th}N>Z1=6c?w+xT z4KI4S*!It)KEBEwW9_98!?z>CcI5kJ)U-qCC?uN>12a9o$0 z%9Q=B+Y%B|zgwf=|X-o$q3K1Rj)}$>)=VPS$lu^6~pur(*Elia}`%u5CE% z83ngT&z~18J<4( zftUkNrV}Ce%tOD(gBe~tL?2{`!5J6@zlTVoe_hYm{cy1m(w4(zEI!J7zB^5LJ=vJAi*7bE_0O{x)~l!HUQmkA|`HXv-EOIaSJ87oObMjtTUvc_tW@5)gNt`jm@TntV29Boo3u1F%qZ#sY}9%m(0#{ z9jKbli+5JXJ}}oc1ZI6hy&bIDW`*~pSO6=*!3SnYc>D!zch1wjN|N-SJtiL$v_XC$dA@#FBLcvckdXk4?7uNx*PLRR_yPG~ zg|^prl67Z||8fxiZ7)8*vIfE3Fo1=#$A|8NK@X{OFY+n(v(C2Db!ZOD&|MkAmFjn1 zbj$_%p7>O ziYFCJ&Xyk-CfhT~*>HliNe-XLg)hXHh@f+pK}HAtn-UrN8^Y=1WDxUN|a2q**nob~Xm{@bm!blaxzuHCsbssEeLk7pao zZ@PyEzuTKYv=%n6FE9d@OuP}bZf`&$mQ<`Bv23nzJeEwN8MF27fI_xZv<|*#EU`ki zOuPxb>1@Gbrc|r}xoWNPe5OpI1-tX@0fW|bq!zAVC^CcAY^)Kj;b=mm)^xNUsbZ;e zz1D2J8LR#2g2VP?qz<8EDzn}8bgT)ZARSE%7DAf8ljG@q{)D52hTe>j`B>B+_G7mh?{ zuU_FXRztbCmL6-RBy2EFQ!^|zF2Fx?#Uw;IDNen0XDV0Uj0>@WTxFcdubL{mEb!LSruxp+e|`696tJcVRSHv7X- zm0a04eIoHBGL<~}By%S7#j@pGxddY>^(M3BJcSf%F89Y%7TuXxJp$nG-4(H2Nmz|k70}|;hHkaMGBnuYn&DQ6g*#r|B?M}Dn-T9Pj zAOD?SEU-V~RGl-)Vf&9`b4p#u^KsIJ=i_1A#^>X4+UM7AATVTn#Z+53e4#L80_99s zFnA)dWPGJ`M>Kk)(PRRZY)>F?Br@fE#WZ^)a-}lm0_7}sD0C*XrF^9fXDoK7)1?BH z9PdBCP-x8h3#oPp#8PR@21}W45Xe+&&H9V!P8iHqtIY<>*v>QN@@dP7G6xA0aOp>%GD@+tOH!Dn%c1JTz6f;&cOpmg#GfGsFc0*EB6f;s%RFZOHT2Pd*a#~Q5@q%Jp z5H*luT$FU6YFrSvuxebC_P}yn5HrzoT$FO*dRUOK@p@R4@%aPEIHD^6$uwb05Xm@Z zY7ogZ<%%H5IBKXM$u#N6Fu^!(=`g`G?Fm8IIHE5>*)(BKQQ0_VZc*7Z<&I(5IBKk6 z*)-|QanU$#?QzjG?G1wIIHD(l=`>+SlIb{RW|HYN<%Xi^IBKM#=``uYvf(&x<+9;4 z?FGa6Fk&FX`8eS~)A2B7Vbk$A<$>e*FlzFDC^-k$72s#n9smI2+W+!y|4Xu!KEFXp zV|zgHOLhGr@Cs%5AqXmM`yz1jMe!r>%T4nm@QPLSBM7Qp_at!h1mPv{%M9Zs@QM`W zB?zh<=f-ghB$0~C3#mOu3 z%gxIx@`}~XD+;RJ&n$BDgwZYX%Z$@4@`{wzEefif*Uobbq}k8&E3Dhj^GdYc&kJh2 z-!OD@`G7I>OZ9>=^a|yKF$^m0hB9>X#fUTX%gu^2^orGtGYqQTjx==hgpf7#%Z!pW z^oo>}H4LhpmezF(q?p(BE3BH=^-8py*9~gCo;Y@L1)w?hN)4hpb_*4xIrb|ZrrLM% zC8*o?$}OtfcZ)Tw+xM$It~_?~M6f;f%1p97c8gTBJ@%_yw%&INWVqk=Dr~ymcT04> z5CCBScz>kotNcFztMSM&l7s6L@PWX~>j#Jo$OnX=35pj4ua2r0grE%wCj_sCC?|xV z1xYsuuYqYdh@kTuj3{0eUW_O~6P&ClULD=6C_x(-%_v?CSyatxjqJqvJD5g181SzI@O$e%{ zIdu%Hrg?1;ET=g&6fLKDEf}uHISm}I$N6o5KTz~5umVsF8=wSH^lPXFQ4Cvv2vYQ` zhze2+n~)5X^y`=olMLIxA*kwC;3cRUHoz&W>etXMsv5R{F|6uWku|IuHlaB#>({Y8 zE*rLgfneFMz=>cvY=Dtu*{`9QWI1dBp=jB!BB^LOY(lYY+OK1|Y&vZJf#JGaL6G6P z-+-X$yj#Pt>Ac?p!ST9VMbYuP--O}$e3OCY#0C6^yd+vI|1Dl_ZmV9G8-x#FpMNvI zuc%!9U?>uaw!ffQe357pu~x98TK(Zj5{ZrvrV#&5IpFnUFD$`HcwwOZkWGa)%mcNiha+PY6@n*1;M)T!LlgYN9fJk%} ztJBd&kc3M0=3l4dtpE|3>`vFmqs?KThy_{uS zd%v8fY=6C+=Y0PL1c#>-ET!GW7Yv7|60T&ug(nn`rxYq@Jf$}ri>DH)=6nT5B$uxg zETcapS1gyW60TzZNvLN&S1DA%e97*3HdiH5!~F>iiB4}hP)fH?ESXMkHB`xVk4&jv zZ#h`bbk1zKR&O<2&GinA$!>o!P{wdft=VROIaI~*jLqqOcQIJOa?K6;Ukuy+-)mg| zKKc9?!@{e=@&O6_Uxxkv!LZjnd^Z39fInC;-TogG+XVxA|P2efGnbUJCMT5A4ZrgC_hS=!Y^J{m@KS*TA0EooMxCTq`YdF zA|Ty*kSwD8dZ5C~7lf!RC^v|x!Y@{os4T2@n5e=hl%%LEq_n80A|TbYpe&;GxUkGC z5XHD8s4&U6%r8;ZxFoD`*|^LnlI6H0q_XL_EFjbQuq2}M`M}b{8vw~XAlnbg(kEIF z$vmXGAIZ`ym>|hKs5mdl(l6OC!91*aKhe^|A3@nXAU{so(kEU~**v6vUfI$soMG8K zsJw33(l6b9(LAjEe&N!?7lP?LAUBNZ(kE7u={%%%oaxdll%nZ8sI;u<(l6Dr;XJJM zyz$&45X1R2pfJt(+$T}f@ie4y-SONjlH>U_sIu+(+%MDp@ieUS{l94TspWsbR^n$` z@GsE*(Ch!57W{vn7W@me7{EWEy%4tfKTKFEnn%_DZubeo3ggA7gA(P%sG=I@#ApH{ z=|?FeD(gq7Lo)40sbV_rMr(Zi!O1E^^TWxi1LMWXsv_&h$ZGt<$;&Fk%gf8EgVW8+ zs-oM@%4+Ss0u!X!E+ZSJ*slE}s9P_>E2>+s zf-|gJFQeP9TCe>=u-z`gO0wOqf>N~IE~8qu+^+v$|AK%GL&fN|QQK0k)KP|qr$ZRu z8Eso2VuZ+TC`R7X9CED7hbKp);nUxJ`hb#+CC$+33if}{ZQUNS^(G4N_7g5AzmF6+ zBWDv=d7{aH+H*o7AX~E9?#40X>h;|j-C!HdyRtA|u-fkRMS;|0LUBM}j)S;)qsc?s z^GH2b=?(iKpjdOh9O+zG*vkanGrOVO6J2FFfK3OUnT#&h2rXGf+C2C?CcPR$0%1UF zMsBmFi1}RYI}b@Ec6*0-|3Se<`-A@3)^U)8hN99R{YOoPQBt)Q?-?B)*(}P5kaER# zC%$2~CrG5)HyA99W^@JmIsVWidaq%>Ck&!R6N=+G%Lo+pkUFy@lB>SvzDS7W%ne&Q ze$zK5bPA?H@sI<*%o{TrDei1*uxDs*w*Xhsx*4e13I|=WNUVp*R%~%U zYM6O0SqtPllqU?T@`0~_A#5PFWPwe6bnP3^< zL3$U}u+^#63SoTUh2>{?lBzo0N8k|4F~(qf%gqzh=m!z=;Iah~Gx1BRI!NT|N8Aw1 zn15rxNOJ9XLLA!b%RZ%kw4eFcc6{Ac8ot%RMkKqBOUJ&yx7Gg3=9^7#H=E6;i-9}; zh%Le!F6tH@+0yg+H~K!y&oiz)Iz~E+SaKMyeiWI^0<)j;&(rO(@fu{hI6i50^fmhj zUIMz%APFZd7_Y;GEK%(|1eIpu;!a4JTL{IPYUtPQV7dZL| zY<9S}zqbEEY_~Q{vG_okrq=2f=n%jhJdZHCp&aX&O|wZJXR_QQTW+jpJdaqU*5Y2y z>t$1}k9Q2W?hiz%WdEZNZy1hqoXUp%fk_9+q8s`ekaK z?bu{UoM-JdU#CFlsDtA9^@26-INZLwW|_(;NpNeOH`I!H`gwug zq&z>7U&pXqUD@lq7VYM2?(3D)Y9zDX`q_{VG&feabFn_(in+%zT*I=yqEgD|bG#m; zyUAhBA3~$k+@L>KUFcUqj#=#XSdnf3Mf-BRhN^<^5?HdB)ZQoa_(;_&pEmY6#D$7wx(WwaCE@Etp7z}(;FGdg1BMr_Z$>sBPS;ab$~u;ywMePVCbVK3r1p<4HYln0*wr;IC)N;+%9)3i8^ zlUBCqr)Fhp4kl`@BkHlmB~iw&Oe_<(NYioGKt-mUGWUhV1%ygV8%xw`Ov4oe0hJ~# z%@j*S3{(;V#RWcE{LXadzu!6co_pW-KJW89@45G!-?j?zq${UelD1>hXUv$4d?J7J z!fB~Kgu8-IBBQMi+Vo!vmF6p9+BhQC$=y59?Yx?zZq0?-dyx@gXef-D^)Y)}MPi~7 z1Pit{apCa>(SFx8VZe{u3*j$-0)i4Dk+gHk;}|Vxr;N}Vua&x6dR|vJsv*HhEZ-kj zi>tlQd0*-`6w2mN0TDM^EuyiP%)Lr5yz>@Of=4N8_>U=3@dsz(&Dm5B2hL-#z0~h8cbhIC>9sb;l3^qYF_`B>`-~(a?P&D;X9>n= zu`dB*BP?!Z3Q8M-F9ejxdg8gc(=!V%Ia|V35X}22^#T0@jbP^_EkVcCj6~&uedG|V zo!C!9x~>i8|DLx|TNEPqI^REw{lE5I>iK((0HQe4lgrZIrb|zapU?7^?iJny1>M>c z^2}LQ#55*0mjC2i9@4d+$1L`*e^(H6B0{O+-3CW#zU@klb)b8PBAV&VlZM2-5k>D- z726AVVJ@;cz=p4+`Z=OtR_jZN`1Jq2ZHunPuKP1IWyxUEg(y7>h(Dr$XZ;n;r70kk zn<76HcA09+Z6ax0H zdL5ZtHRUUJf!nP|?q@l#m8Z|EeGnz{Hv+`Fnh!Szxe}_ke-;1Q`yP3pJ-XW5Vja4+y&+$hURjWhrnZLLY8|Hxbz-u z@)On4Y&<_(oYmSPd4}3Rt3-_vtQPk9DF@);2S!Qi5u60RE<7w>BXd#k?FlK zqo}g3d`(^kOd*O^cusG~U37@NLS5QZ6Ep}33^#S%5A)m2Jq~aDjp3J^U$E2!D9jc-`Yl4nkfv>W2I#$NlV;YMff%aPxG1hi!wPAz6QACWJ zO#;}$H;#IxSoVwB)Y+cJ(*;IMTK)mtb5@6&0m=0exU|ronA)#>+EAQl0tb&&0#Bs? zHXr8VbcVZ6<=rLMl5H#bCr{R8^u=BRyFAYsKWZ2@C$w_D>~pYw$HrIUL;l|bP6i@> zyg#pDd(%M7#eVO?$bU4izrvOUDu&SA+MXfZ&^ub2a$fMNk(WEYH`#5HaW?CR+`{vW zJx6@&rh5V>-P&Fla??dC=3=7ME6+!IJZhNx!(?APEAyqBHJ>EPWRxXIind6&*Pp%5 zr`3>#V_wv~=%){|=%CADe%SP&k+L|0DS6uJ3*HUhjxiHO4$td29qy_5ziN&#K-l67QeFRiso-B){w+huQy z0sjKI`QN>a(dS92M{HT8732@UI)0ew%+!8=0pz;J>`%wPO?UKanps3Ig{1&WI;syF z=Sv4j?bGctg+eYsD`pi6DTSn{k=FLKrhW8LEGQJK(Q+JPEA>uegY3whty}}WNF!;H zETZA(a_@?nXR)=8$MBjTg1fFAr@GCBJ$c?RQ4o6~0vgM4rd`?mFoDw1`tB`zhLN-H zAF=Ocd7D_+CWWt;<$ZKR|u`RXVJ@SV#ltX!?cC+rB-#TNP)&9+BDQ@ zs`>fkkCT_RE0)~q^q4=~fZ^kmVx)J$GGU}7-)gr7+8O!ZY@oZTL9iU^aoaIOW@}E! z;#ATM(?hU_+?bPDpx5zlt8~vekC3u6q*}V`UBIFPRjZCY&3o)POPW&bBaeswXd?fO z4l)e({nuXeILhSq7pCr6lbc>&?C;xhlfJZa=(HNdR`1f7Z*K%f)s3$o1V8z55v%vY zDdmysfpv)ozPo7z9Z%o7?{Zu)4ca7(s#Z{$*w%|x0~pK0w@S}SFmQdnpK`#xAU`N_ zeu_fv?{w!7Ro3fk9ER*V9YB`VH^e_jmo7qbN2de~Qk&Z!I|I^Jsnc^QEZ#&i%(6=! z%tu*)*blD(Up{E_;s}A|3v$*mHWd;qq%`kJtXZ%KC?qk7SP(N7_Vyy&8Q^KC^clt)`fAoWXMzb z#J4h2+xnnlUl@k+G2snECtyKkuAn9dVP+;ub=YoSeDXH=uCX`ghFcwE({rJsT9I-BS|kg53P7_1R= z^(kT1Wm`>K0Yd(sNJNR~;|e(oEnij=VC8MQVmX-5-7pkzlk|} zx2vt{;>$)3ZPBN8#>k6#F7uhj!u16kZAj>)u~|Ca0}pDj8B;`NgtH%@Y5|As>InC^ zkAtyJMCA{MqRrSlTzT24qFxiVe&Q5G=6DG0&5PnbaE)k6y&o*`e1MCJEgGLc(^u{K zVx{VQ07hc_RB~?V;EJr0)wVJ-px%~@lX1`rUP%CUv}y*O^ArcKKZt7I1i45EEBsRs zdFH5D^K$yo&tyy7)K8uBj5i2T^-aRqjhE_UholBcs6I>sX#H>ez|*uJ>&DfW?`(GPeR3SWIvfp+0(fjKu zlh1IDHBLtZR+mmKsGz1=04=6x)TyqK6>5@Vifll36jgRIKwt}Dn~=knr({2rkYk6= z4Gw93^tB2|4ngfnEzG(VPo}09@;!FvmaNx@uv!H|oX9D6EOD8K8Xmq!NHjCEFc*gg zai8JTwe3}m95R|eO!Q^sR-|J@_{)WvWk#w1AUkz<*v>Y5bbDDTvaw$Db(~uJiAMl! zd#*r~!^r0QeVS^m=C#BLCy0EI^Kf*<*&$LF!=1<*5lnx}xtO@ty!3CEZw}yfcJy@j zVy+hNj&_Wk(ZTzZ1c8B}!Bh19PP(L4yk`gLb6f&n-z{K}AM#-=`7hBy;-Ydesj*R3TGK%VGvLd5Ri97A3;6>f4*;O0>1uL^Dkc_fpC0xbgwh~oqB zLzRH#E0Ke>M7!a+c&=|MmYLuqM_GmLfZfpvLZ zz&0QLUOpOIxEcZLhCo2Mnn2!>2AN@JB$*iM8i0Uq`2gFn{3_JFy22*FN?=_R@HGLj z5aZoqcA8i^xB%;xKtMirfq;;W5Ho*cx3Ja+w!2IQ0YNMP)=fbLke^!Wy4Zlc1N#De z9}ch(K*NGUSm|0C0_!w^{Xh)t2U%9lukbe3_6{KL-ur-n;01$#7-SX|GuzqN83Nx+ z^y_{he-#sm@IaRpy{`sezi#RJfP4YF0TCXB2A6Frls?V0Ts>cDuw4D~Qulw;*ewy2 zGM1TWjyEHnSjeLI&bz2pm4+8CaEpOcgs`LQiI4w7HKd zC3>vT-n?x#3Uy!eT*szQE8kXgPn#Gy!UrWe3Z#VNQ0vTO1D;T|epKk`;@?jYQWyetF4J6D;K zCklIES%{1p)acU2!yYY}%XKyMG*&@dmvY!@n7FdH>Bx$bc!kzHRoQjx z1iOD~A9(-+fOt;fE5`7i%Ge*&bcU0eoJ4S^LH>3Vq&*(u3Z~+$aYhd2rc#Y@P7XSl0y5EJY*K~0{AvNChU^uI z^G(7FHisN)BG&N{H&)96S&6eQ$`d=Y7a0tnthTZQ{GxrNapY%81dv-?O{5#)GOE3g zqI!GiG_jOz9Fv?j&G9F5uG-Dv$zPiEg zk=X9--srx~W0N0y<$ z*^H|VVsWlk-7apIYIlb*#wuIjm|M5S$x_YM%SW5J06qrDBfmz?*XZ(^qHKe8?ht8PKC_E73_ zdO6#bKG~UXTe$SUXtD>2AELbbim-z+!PTesaC|H@(32MPLsTn2(vTj%7ZEc|GP7$f znX948arVLBrs78l?7gse6u?y+A>S);Q9Wia>4{m5qQP@`Jpl%$l@; zw}0GvRaU9=d{H{2x&m%VS$bh&yr2A(K>=Mo<9Z5wp+B2+Ck#i?>=r#^GW{$B zrB0Cuf*u8T(MhtAb3)H8X@Sq}t=3TCJBBjsTUM-nN7vT{!1q`D$+4*7jz>gSPoD6_ zk402&Zy{|3Y$!D6pK*lW%ood;_;4C~Mq%;xzzq?vbVhn-7Il@DOxf#`Hy?RpbXdP{ zYA-pS^LA&x;{;pl0t9tVR?*sl=}=49fte>Bv@GXclrMyS4SHvhvTwV`kqtYsJ=@E& zg(Jk4Iu@B@0gu5V7N#n)vxfI z*VoV#r>BtPuNZJG4DS31$!u~^GSW~1+)4qoM+Mob&FEW>ic-sv% zwe~LD%yxz~=0$g7_`{h7DTSFqp$NhJ4VQKbQnD*_G3zrsob~Y6g;8i z7)-f%wPf)A&wV+%W3V?0k2C4QtZhBQ{laAaMWyZ*HdvY zO%Simkw58!G@7w@o08n=6Bb?IW?i!G=`*4pJ}^Fn)6&J^TPTiI(_2{J)Pz_N;?#;+ zAmKC)TeziHsaf)9*7RH2u2mOUVy@LESQ@T1GF!lLRY{ycbJew;dU4gNoKUwlSf6rw z)aaa`dmvK!RnEvfZMVY4^F4eLF#PN_Y=ar;6P`G&$e>inAZj!OYnDP?YidwJMPkrg zPGDGHo-<^$%rDb03J;O=Y8U=#KOp_9peuPL=CF_hBIf+#fC)`U*yIsSg2XrmO%`RB zYDF|0M9Te$a<=i)X-c@>@__vKSMF+&ukh{=JrCaYFA|7v@`9I> z1@75V-nhFu&o3Q-<%Y{feSqcQ%QA#Y@EoqA>aCoJ5_Y@X{B+uDQ{K~2YiVRjkw^Iz zGZ>}dI~c{Ax9jn@rB;LoiqJmWt>@T#`C?Fh+FXip+lt+VGql=GeW&b@jvGPUb<@7~%W(FJNV7XcnG9vSQ79qY>(%PGq#>xQAPlKX1f z+e$`^WJA(FF!qQYa~ZXcMz$UDI7O!XC7&OBZ6!>S($l9VJg;L3DD5sP>XmCKhNL}) zuIp!TQSbCV92+vFBcwG`S7FF1{9pE823be9h!JOTT$=jZdkZj{hpH9 z`wm)d3@P#IbO8&XZytlyjo7g4pNTUphcix(Gm4o$td>5`o<8cDJ_)WVN=wt@-QBO* zQ=mDpui2fT**~w@Tdz5IdvgF$(;So5l%mm;u-cTt*%ZgKHVMWh>W#OfiH*>d&e+ z;7(k&ZE~lM=s(zQ~X7UB1YPM9A`o%|}Pz`Y9Ii#F~m0FzwT2 zDuj|U6}DH8=95sLPGzaf7(Qg7ya=7VQt-MZT+ily{%Nc+{#t4O65jyKUF6o zSZYGX+a}Q(u0Zjxu)Rh_Ec7`$ckeyM$XMs z>4$x8)%Gxr{SYa5W3pG}3IsU4Y@`h27MgZHcR0yRAsE$$2%&q~``x*TYeqJdYlG^` z^|`T^R2hUVbSd#KKCLcI4C;C@IWAUf>z}jQz>q|_Mlq&vDR?EL9=yfUBW`q2pP(UM z&n{!ez3e1=sGPYfilYp;A<94v(huEy4T?oS=>Ow}zuzw@RLp&rOzoCLtNGSbRpm0t zTO}obBW!0kjm_KS$h^$V$}TFCd{h~iJm6r&5LV|>&1PUUFI6t5nN~xJ^Od11kBfU!VfowagHw{^#=cG^Z zjM3Bk!DI(aS9{05@cH^90;7+}19KEZ^x)9GZRVC31by-+SVIh%m_Zw1x>&hz(yVs_ zbcw?|e_s)L$ypCh4+cA&JGT`!DHq&{Y1-Z5%GIgN<#5-zwY?`tILcM>(&faHY?Kq4 zTCU`sY_zwJgO9sbc1^+V$N1Wn2IZ~pJo=R$1ABCoq*14=-nR(X3avrQe7mvaavlfg zhrV=+)8||(&XTmd+#TGdYp-~LobTx;UyTRYOsX|9)jFIl-h@mYx1Eb(93g6cnuJbX zm$>geylAoW=tNGwu?(hlWI?(_1GxHnVYd*y#`9qJ=`{4n<2}ekzS6tz`@YTHyg{jqPjU;m7g!#2%r0CR zyCfcd8=TwR*j`5}nET^>;?$;Tm>Ip$%0VgagPOkgWQFPTZP0!LDv-(qym~P?sIqD7ZyU7*tQ0kLA^G*+Hz$hS5Z58Y8GQ(U@Vl9VF z`?R(tW{!?kK6EBNr@RRd+lT~b5HnqhmgWGdVvDDacGtMjBROG-aV!+iER1u~>AnA_^f*_I*F9>*e6y8ou=G~r_eW9#F1U@)4^_iv zPtl|JCMF}hCtlhac@2JGvl9-%yG_Lrv4`fd2kEo>GqQ)(vIpC2YrT!x%`ws%6d{o!x@zyn|rW&2}MeHMfxemS+v7ld zN_$j)Z5DWtipKp{?3NN>8FW9Y(Kq}&I^2X83;p*{;DKmB#ycb{{I_13&>C@F8~zw{ zi9&=K=rAil7WLK`0gi(K!$yZDTZ8fpJ_v3H$QuBsS({w)K|1Pm^2p|EGr;_aF_}*g z%|P-aVz{t~E}{L$$I;AfHK#I(u};C^CxeDZ_AzE|88)4!FRDX&iB<8qoTJ;>{uqWr zD_4rq$iw<R+=bVU<^@%<8V)N6-%S4Q<_8R;16bNRadB+gDX8J_#^@Lxj|ErP?B zLO`bO>+oauTPy&`I%Ev7+`joM(yyb!WKzo^bk;Ez^_Qwsa$hMPJz!3J5M~IS-c#tp z7+|0o3rWm*cRa_saWOdMl`^3BbBtJY@%UEQu>^KLw*Mi@oZXPho03@=os~ zyI00{3QTAhUo(nz{mFYUyBRcW?#WO1RqzU%4h)fIlP7+0ivB?|k4*F>R}V7{Ab|=s z*8omcA>D-zvsJCZB-}DAs95N}%6+`*2@1rY<>wKOT!G0W9Z>}4_#)ArjDg~Ke74Yr z=aQdtQ0!2iWeQ?NtLU4Qt+s7usE8%)9#XSH26x>2|6zY!J6cxogLd`ej$&Hld4pWY;ZRK{qjINU$LM4KwU+<7 zo)(TiphRWl?9swlGEBeOna8Z{&Ep1U|0R~)>)s<-D}6_=Nu{)LBLzL=u>Z9`d0kxL zP9wEO#dJi5S}N@N98YEbz;kaqk(V6dTuJ7l_h(4@d55_!&t^)IGu}ADBsVW3^V3$p^^>end;vi^A+Js;a+~dhUX;?yPs{`C(h*&^td-YL>nem)Ml;O(rR3+yp2$mK zd~N4KicT6`8aq{XbU&3YIp^AKJY{udxz_Ut#l~W3dsaGyR}H5l{-m1Wd2_?dO(z>i ze!!ay?k5WAgmsb78bFyy=v@BW#B}a!B>d}1%qP;Eo29a`)%NmL>(RC*CGF2t702E& za(U@lEM|R?86-U&!jS;>JmDA9sF*yOgVt&PxN*t|011&8E`aR$4&nv!{yc%|5}@+* zxB{^5FqGG$;(Bf!?74ULu6=V))5+ePVq@pc*|bp!NqQY^>+d=6yup_SEZ%$)rU~tg zNEeOA5F?J`rzrR=g*hVse*-rO&Xrl;NQb{O_+IaB#JidQf?pGcg*69AG>4Bi`%yNB zmNf^N1GV7sIGlk!5s*hV+E6yyayr|PdH#usT>O84U5KO}gF^BMQz4^&%Gi!65G^uy zUA4D_w08`Di;3VxmyG5yeV$*mGE~B8_MhMz0ZV8^E|ZBuHby*O0Z2{@u;xqnq|D^f zIB*2D;153jkjsK#+LOhy#fUKFS4f>sM>Cj;Rjw<9J2jDkU=b=8&Hi8Eh)5`J&%Enl1w)+mpwi`>W zzqOz6v|w(ZXbzL9Vm?wr2|u%$Y}ktEn<~XGv_7Ho#3n(l%7n8pKu&ukG>Ly95WpON z2c(JxY|i9|wqybr0}4O}GvQt8fvO0o&YPAeeSQ|s_orw`#r-R|vMC2&7Ij##bN+(P z;N^z&46X!ID)`!6jfro6qSpnQ3V~sVdt^5N7_n!$dTY4` zuiLu9+WJP@ddkL(;43dV>{A9k(5j+^P->DJ{lbr~fwh#X!(@Cx&VrkhC+$0#A6r*e zk=uLEd^x1e_Wwfha56h&2lq<@e+W}XOTSiCs25vZDHc{QxsAim@#7Q+*1&t@1?&Lq zI$ArqjI(4gUW&K}Uqh1omy@Px2KJHP1jrdLlFmUM6 zo#fHKc(R2Z`l0ue7$_o=C{TD2$BKPQkdH5fHT)MXiB?}Cpr1MwZ^Tptj#-zF`u%ZR z2W9QNG0|@>V-wyWs+I=d`#D}LWgWm_7WM3B?9w3Es&kA%EP@`0AhfBEj310pFt`6T z69FF@$&zxmfk7Wr{bGNf@6KAx*Je@Yq~IZBRBQ6mU=&S8yP8d zUiwohMC;DOzjUZ(@v98@ObPyh+1nv0FcOFLt`RIRToDmr_M2QS*9Ue1#(s^!vuf=x zajID?69JvCz&qC1`LYM3Z`F)?VM19#R~Y{>OjjJ$nqX1@hbMP37I0K1qL4DMlRG(A z1*Mnz|2@#MD{+Q zeM#uNYxGd7aAFE;@`x^YLxOL_@PtNK#fN$$&1#LeY|H&BIH#<14J7BNKh z>ne}z>N<@OTutp_aouNZJ|F4S?LT*v$25I{MQT(%1Z%DqnNBpByhuNa5o(^!V@uU% zOWbA4L}rVLV@pvO+EbLahxDXgOzFtnSo^~A7jA5a?s+7^>qR2%%&Eb?;~4b_+4sHk z7_m^~PtF5`s;`7`$zv#m3=zj;UrB3SQh#X{7d~qE}o$OX0*KIg66JB^)aJQU&HQ6uM&jPYE+o&hT5kl{OCB1PxRf11Dv6#s|$ zn}WBI#N?j>bW#GhJuj{MiJP?<_Vd?{>TjG2S16V^yo0bz06BNRK8# z1_9Ah>;u_e*5WA1bTClsK2 zpYQVliWrGR7-={^TAW;5A*d!kkIPgsn=nDNh(W1XoVip1C>wI_QzeK1a8mgaG5P36`xsie+|7!D2$2!{j*vL| zzh3^-W(vUrOgZG^CeknrCSsK8kQsiv@%CmKhW%nBk#rhxjzpey&CfGYVwb7KbpH&$ z8N>gF!G1|TuMyc@^yhkwVniVxsGQbGDZ}cN9tVdUJU7m~IurgYrhtz+b#5Ydpm@7` zsnr362ts22x%ZA~H{LzpMyXEX??{{2FH&k3pPAN2$!zQKAWOAMYn3mfO16;X)mQ1X zzes3kajWx$8}{Ii8q!ZB>xSY7&D*F$3Wx{@eJej7gs65Y*%)-3O7ddki?OhBDyMx-#`HpSC%rjc&epfHo1z!B1K8`a&XA>}{FLA&4Q7vt z;NzdJA&B`*A1g{4s3NBs#k%vS0p-@ z%$yHFg#7v&{|$Kjn9C-uFP6fE&#l0E{U85D_J0M_U5AM+$%!3{iEYh^T@RWqez%zZ z|B+Sviz_}|{vq};x`ucNXRn64>i6Gr&&``y{i zj#$K&Y0!ph(3XqLhLFsbp(uK|Bz@pNcg24{sx1P-1%WH9F>xM-6c2c~F4Zo^GKHlDtkH>sLX&uFcnsTY^t2 zaGizz847|_h`|L#|C_m~K353;7xoWdDLXjD^DI}NcQvZ{^UK4TZfn!Ac!&W-|cRJxutLopFRJqapZGmjZk7MD5L71)gUh2v^ zCf?IB>C2MMS7yyu9J7nFt2Y8Yv zV|;C-2?ME&5+3LO%>y~ftcCLM9@e|p!J>*5X?qCfv|b<6L~dM82c8WBX_}-_HQULV z>a_wyOmIwCb`ibb*ncxn|0fV}-aOa#>)xSzH~RaKAWtNq`PL<4 ze;0{z(ayv^S7{z_u->llJ|uEAdr6;^!W6{o?QOnn&6z(-+u3ctY(7~(unRrh>&j&r z9u~6n3;60&?_o^Vaq@XIGBn9VtG~6Zl1`#T^fv*Zf}Z)+M^L}=KCWSnu4JNNQH@@> z`9eRzO{*ovJ>J;&FA1m(Kf1yq%=pcEpRlDdx+&!YZ3ZZJp~Nc)>nk+tYw0EPL;Ae6 zUsL1XnU=riL;u1)BmjonI4X8NWV%gKv`G>{qh_D&oxbXD?QY+?A zWQb-ta`MatXd|IbIDc4g7=63vRNgo=F$Q%9tTG;Nvp8;PYIrKI8c38IK6qC*2;q}x$;HPJ z7jb&M*-6EC^A>(S%<7mY=$H>qP;*lZK_UtXi)yd>LiOLov}+c%#XcC10Z^PTF*g!#5H?W)#w@c> z(>_Xvw2-ZyKCZf5(m%A=b=6ihudQeH&sRui_Lr@g)v8%6$I=ZlC!}2k*hJF-7ZBaK zR=Og!AA#;7a{*pd6m<#tE_EltMw0c!M$LYs3pYNEgfx5-IMH6Y8XuvY9&wB$bV+Yl2MUG2QpG$D=3=p5B*wpZv>S(?`^T(L5RNzzeBNL9WnB*SUyY2j z?eeVXFowU(%3$Yu@1#q-Q8i#jCXmnIm+$>gRx&X4hkqT?a)#hBV*C=rdua^l(Rswq z8Z>`VYyEK+?!qG)+F0agZJ)QVL|sN!ZVj;aEK(ZYGut;j&z;<9W+X4pN*`+kLS$y3 z9jhzLr6v}B^Q5RNKbvSWFkO`FoJElIlo-aSeH4yP+9KRnEdKH&ihv){jCN8G)6N9F z^7`-`fu!<4p>l1uP?hLdZVZO~D+y=}qw(m2usq)JFf~ z0kzFNjg!n3Eo}FYsBsS!oA})J<&h+cmk0jHov_<>f$Kktrd zOoNa9m_4$_MV7?WGg>b1xsQfpaQdfldaH2;FVnk1())(f`ALiHu!`&) z6aLKE?89yR;jERZjsq<<#60sJN0r-R8y%@(LU7?$@Dp@Lb@c>&knk% zzd7m6y?T%T(Aq6DZUH-^Bzi8B zObO0jeqA;sH+yVeZwoouhe{Nl2?C%au|Pmp&z!N0v>>%U((uJPZRxO&VP`jX-JkKT z(`xf==ujLvscIXNO9v~YF_2b1sp3QA;d|*lV(9}E2KIzmwv2y}!{1r@AWFh@c0atE zJ<-S=lgMq=$XyrdEkWrW1L;q33hWWH|KkLiuZ7hfsnr3RRe??uziT65sw8=-0+}Wv z3~*Y6to>A1kEu&^+z#CfP8oxR?nUL}r(+*#FtYj>LJh|YC9j7cgg*eFT|;{Q?7`4L z{X*QZ{&MaIQN0=58R2OWA$sDx9YjEKoPF^Y3lGIBS&AMhUW)IPI@jgVyA_=;&}%6c z(Iew8D&K2k|MArwKL^jB-HtD3u9NmNzNE6#-e;L7NHuyxLHR)f(I3B9KeGqNv5hWk zi~W1plyHxuw~05>6P!5=W#f9ygLV`HCDT>5ueP6q@?!N|WYj{n4$ z`d2CSuK@55#nK#-)*Pr2lST9^tNSPug-IwGs{@zXu%+&p!Izc|it+;`G-Zrc zOHCE@e6iI!Ru6ErBOl$iUraoIGBdsL%TiKUttf-(0qtdG9iWK?W7a@cG$r&+AAs_U3+A>EOb!YwB+G^4aS{!sVd8R5K+9e%hetC z5UOHP)rnx3{8%)^$Su$IE0^+h8DoHcb+&kR+k)roG1#=|_EH)TggmJl!c9=v)Kj=7Rdv&I@`On>BtV=Xg)k-R# zHcRrd^Tqrec!|{C4d9xb{_FMXTz}^`QgQS$^e1VN;DPGH0}xt8#^mx4C_G;t38va11_sj{?r|4wfMuztH> zzn*-*^>*2C-6$g#r{4|$@I-4~M_s>{0qz+4opqmdA*EYBQhM=pKJRz~n%nF;7k@f3 z=TVUVdz~#zBjuLbPZgtYE|~xA-lYa9au;@@5FOnfO2r1hw&&$RA!WZnbdrve;_yV= zckID^-`krPpgRi|*6{M$exP+udpK~=pXHu3`*z7>_(DE_B=Z^Ii9#zHZWz!i|NW?z z;Od@ofVS}DB{i(xzI@$tk>&cWW1K*JXZ_$|5!pFn2@ZC)e32Vak^b{XYe#a;Pt5X@ zY)vj&!0VCxZeHSBRC}$D2@tI3yJmsk!E3(O49OoU7c2zGrsnim93R_ z!zXMRG8IU}a$?W3=^+`h8Mo7o!9AYJj9cZQflOg_(qlDi%crdMBFa}zfzkPADt28HLr&;1u-TRn>l3b;FYjy_~m^v=@^ny_V+N?cSx z@Ck|sPT@AINM#!h9;<`IaQG}m;+uTDMrCHdD8^w^-l2xL6{Nb17VdI^^9MC}j zj7tb&uaT|JBWCp1XM{orB*ja{_vYeiPEvT@l$O#pIp}KHja;ma zl||4~KC@x^i`7h3^0{c|No30f1GMWDN?pvLJH^|06^V+$i_K$vf|ImHk;}l5I69(b zn?E@)fBi9j6G)4Ac(40zzkhz4Lfq$)%!9{T_>eVi)~gR7q_G|;vye=j<;fQxYI*}i9epyc zT$S|5u2oXelPOk5@m%8w$R=Eo%>)}Z)|XQBZzpahBr3qCCX39%0%$nuQ(2=9CJQZk z3M69$IORs>R)4Zc7UNtbQoZb31*(MAROT))#>ZT0oQ&)&l(}$eozTo*stxOtoPBkS zJPbh8@>C)mx$-P6+*l+1P*ZEok}f%h`;a~{91=V560b(Cv>Jb-uljjGC>)Z_Z(ZZ~g z2N^*&jv9F-k&oo)bIIh>#R4HA*P>Bb>msOAmrAboLr+k}B{FzQs~O5r#7{MmM7|+$ zPhj?0tE`M)8_~qyh~2+_*HDouF+A#2q+5=>724)g7Af!-A^CA521~3RgB_hry1tJccaxCEFxY~ zQI16u(gH&^WM?Y>dc14XC;39@QMGyE4NJqF^3!{o8^>)dyAa)2z%?ED&&=BJYpF^O zZXuH*&3E4`N)E=iD#?=bXm1kJsRd~e%$7T>QBJ)^H258`#cNv^>n7BWxrZH{QFZ*ZPSR$+J> zouo$xsaDZTnOrxp2554$M%wXdaf5lA%x$&mRVZA|?`+WUj;T=@cTkR}C@K;@)OB57 z2I?37^oCSW@>(-abr)Fh#*BwB8Py|Lu#9s$`^!1ShEwYf#t-#ayRAYz4Z>RTF!QLl zLK)w7j$3{dRGg=cwd7dW91XM-Oq6Q;WZ{UisvJD_aPxzoxpnvkKcD2-q*hs(8etT6 ztly9_YUI;wg_q`fP~vK(oVM7ZX3QU62@Y<^(%Y3neerSrL=d)*t`!m6b{wxygrOFn zJZ1(*L_MC7OcoJ!oYGu4?4Qw$l(QLpM^`I8*k(F&JoxkEb+p@CQ(%$RBL|vdXTtZjs(pq2O!C!!8?XYECvrk-+ zZ0_LjULez4Q+94+d0#+UU35zMrLi%Ou zY0j8vX@E`Nux`=F7|CroNuT3sp~H~!s{h9D9j?w-@|?6KWNfRjiG1v+u=#jw&!|~# zYzM7bXzWK~>;Bk*aDaMT^ZM8+d^6G5&&cLos;!CUGOE3b)}K`S zUQIew)KJ8rqhd&6Jy)^PGu3{3@tWnI4GXv^C4@?b%yzJqld$Cdne$7S45f~VGgKv7 z#90>-KQRP28pcZMaiv@(YfC%b zT)93j4O8x+>KRuStN3ZPEpA}nUGTVPElV7K)=E(BM^%DSQg0T87y(rtV-D~3Tzykr zbZ$UBTwyULTChm#wg4VPat||FwMu1@c}jVJ;N8`F@$-&GcvFW0)Lw0S&(SXmaie_k ztg|17KQccL27Q3_r^6wk@1Y1_PY#0}tF58iL~7874ArNFUy9l)eyvl&IkfHe>ZicN zjPV~Eia?NKyAraEk3^Dtw|uGOVfe5GpOrA>xe^3QCUyt}htg z)k@DGoGQ|c{kQW!tGIe?i;*2 zvXk>F-U(<8`g1PQb2Yx-EBpIL_V~Q9Ja()dj7Ud@$lbL`7ini6f5w<`wRC?9;Q5S$ z$Mh&znk~X>JsR7Nc*-%#=9#uo^YNce-Ht4Fd9KK;?3-ij2i#l%dR$|@A2PR~;xtl=em!yVrNiD)YOOErqj!*MH6H*JYQ_nIq zYE_`pXq6;nPEwrGozF>MYo9Wo&w`>%@!{Hy_i~u>e4ibf!OZB^;V7#W-Q&ge{@I+F z=cj!Xcz7pY8J$1?8cHmVgd!~;i_(^sPhu(>8&13n7r38IC5-ZZ+Dpv&*UVaVk`KK^ zt_Ggc9yeYcpv`Zjb1W@7kH4oXt%WX2Hm_#kSB<)rjf7hos-?%~wC*8I#`k!okFs2X z;9gF&oDMu)>duJ72~@`!pY8x|#imQsXGgPtCy*`w^}`$t?Dm0lCci6i6ZN%PX1`|U zuEN{_BaeVo+AcU2Pz~hyzh1&;JY=3%``|x-etH>-Djt)02~d6+o9ws<+#K6{Twle1 zIX&ksvOyeB`pI!NL1{!7+g!0R9ccX~4tlWqZ4rj)jhEr9 zWOUQ%eZ=+*3R7Vvl0wWzbhGLG7MB$u=vEY$?sb!YEHI4cRU&P){!ADD}@QEo;HZ2{QX8W|l83 zja3$sCN)1dZe(_l-<;Yy%THaUPCbug&ZHc3&y0`JAPN@S|^+~XcE4hDD>7< zli5&yNHy-qq+u^hRz=1CZZvh#6nDV1eL+82s};(#UM(%dVj7K1qaJP->^ap^2NwDy z?31r2x3ftw?a7>U=gRkWj1uk@|LK*o_5;rqW1eCnlj1y%g9E6H3$79cY3ZMJkLfh2 zw8u4%r4?@4vyNn}4!s^4&Qn^>jtF44Ul8cT5pF-u>2tI2P9t0E949nZ-cG#m;ZMnR z-oUiqYIIJEc;7%u+{(OF$>u=!GX#>uhM`p0I1{3T(1*&Spiv4}OYg*Qsf394)oodW zNW_;ahAXAc&}kiu55gLL?iDL!sMcg3={DG>K&MV9;wlGzO0~QYh22#aoI6N`MMy4P z8&ZG8&ux$ks`+I7_Ji)S&U^a9uz05R0Ti5X zVa_Kud`Y|j89Z@3ezng~d%>|=6R|!paG>~Deuowxm~;gszr;&QlIqRMA{Fb4jUAk> z8PKScUB|k&b((zoO?g>*S-N=CX~Ic3Z3_Q0^ebpDfDHw$^%L}d_xb%` z%mo|tqJ3vfRJT@B)-@;(v&%;WJ8z81o;uk#$#->ic#pYU; zrdk#@-d%ludz&}EC^^@OHJFwq8<|!7ksw_SLL|R+d)9mq`{0&))QB|R+ zm7o$6rl5j6r!Y%Sdw7O4@({%5AR~VGBi-_4K4lAfP7U#340>`=>LMud6H)3i$P_M> z6j#qKLA#m(IWj+yhA!IuvJ;E-;c{Sl*but$Uhqs!f?hmDwxrulX+Qs8LOWJOl8Q zC^DYVM58dus+s54uJT(j#qQO#2iiLlO-WA-LoR37k2v?xI^CVK@f&H(ZLA#wi#?*A zwC82Vo-hDqiOtx9`rKFHJB{UYgEv5pw|i%jvH26xE4U4X4 z_8-jwaKr$qHPz{$y%e}^!P0PLegDZFR$M(RN4TcdR_6=pZGnQC)`{DM$y$yLge46IQn6*<9 zXUO4oZ9C`awNwAKwfo4sLW5`FXS*}})5+mR#s!egSlxV=dKB95$by~bqx>UcHZ^UG z48)9(biqxzTx-(lRk0gfk|!f1PqL7X6v55-+)dwunl{jgb>}G)0qr;|p z3#;h8l;7D}kFDE1Bn4kBw<+O}wj*Bn-; z3V1)e`vAA@PR^wb$^g+$%;(6%zU!vRD0G{ooy)Y#R=T_W7gq3LYbu352Y)M(t;D}FE8!s!A6LEZ^H z1v*i0lh=ekusFavz}oMek9r((EOuOSY^o-woW5UExQwE@)>DZKdJ-O21t#4uo9?q+ z2n!|^*c>I#+vWVaYGRFW{q0!DJd3_EC2NfEI_z=YLs;LLRcDF&)XPc2-G_U`$~vl= zY_UqLkP-vdBZ6(!~A)=z2C`4%S@-% z|0KTu$&UcRZ_=vzFPvMfY$2P9|@~N%dFc04zvaCDKoD za>~p_2g%`;$&|oHMo`;xweZe;2C35Y?91IQagz@zWZ!l)agC@FpjHL8g_c~nXJ4}_G4Bpnp2=9lB2 zyAjw4ATKnuM~S}J@cHSJ?^U6&+_j@4S{)gWQJWmdvulDTBKc$lMB+NU#TH z_tiuL(zulCH?Bk13S!3p$Jjdu*RnnD!*NdR!}b62|`NrH@IGh$jI4 zJ^pQqSg)TyE?lqMN;j%E)`OlMc#k`-*^k>~FEqk6n1>0 z9^R!-kE7qBgfB4pL5X}8ys9u*jAI7EiQ;|hl~Xv7!T}XqgxB^Bq+b{am-4-kS;EzB znNpX(pTKxlDv&*+RIyY%yCS=@8pf5emb>P*?YE=f?EeDXS5@D8r*!EU|8_OXu4BAN zzXNYfQmmFg_WD@=h_OJilgJE)S!d8%U=ids+;tw3l#lk(XfaSfdmT;QSNAwGW&fJ) zeoNy?PYHf2#%*b<&<$;QFnE!u^>=>re3Acx?K#`gkKBguc+g?XLl{8*OGvdqX>h=` zq3&^%iCN=Y76+YLs%TKAuDtR7z>HYB#dCzOi(@j<8Zlt+|~{HTh(xoNnIqYlbOX zsfxrso_kK`sPtrJR*QuWeXad)kC@dAd%7#KC}N-iAo&RNj-C}#d@{mxbgFPyWBLfC z1(Aofa@X=6&db!tFL#pmCi4}vIX$~>Bs=nQ$rj#zTgGuQD{Pl=!fUFWFNYWdWXi#+ zmf3MZ72R>WYgwNX<-ka7WY5}uWrbtR-BzR2+c?#H7}JaPI@ zf;00c`Dpv}8pUrsh)!X2NKch6Imwog~4GD{jP{ZtV;Oq7M}i@ z96#Oa>-pChJqXllw;%%c-xkW}dAuR|NGaI*^ zXGZU9V|ygYAMBgka+o~~o?^=Vg+JloL=Jd@Kgu~hm@=}pM#QXMeAke&P$nIx^(JF< zH>m7pIF8wEOV1PoyB*@4YuHs=LxsBwGBQB{GZkbnigv@Y_KEkl6Fupo(}r#%Z6laG zVWxNC_gO>qPc-tS(7hcMB{&yPcldw7*!ZG)LTHeH?vyeM(79G8e|!sY7?` z8$@F2uk4=zcR`H8Q&erenxD?}_@)ah+>?%h>A$Vo7aKpZ z1su2M-70fGjU%da)whUf9!H`ya)mdGGvh1$wt}N{AZK-GX!u|~-wivQsS`Np+<_)- zvmmJnbNEE5Kw|cZ8?0xsVxrAM>c&F?2cDT*+B_6GtqKeM$S`9PMV-@OeQEmR`5M36 z9JkbT8)G={YKCfcEIu!1 zvU~OyO|Lo!(R8#M%DDQ#0LJV?bzAbxioMnYT}+kZvmU%95v{aN_sw=A-LT(f@~yF z6|PK{#JnuL6a%+g0l(-7=@Y)E)TUJ*O!}izsBJ3Xh42ITGX%|Ywg)N)WTsz38D#vZ zu6g%Q6Ch#g)J;mocjoMHO_MR9Ic4MOKFo&pR`o^H*%wKLHc+(hK#nmsqxi-ABcc7) zpYqLLcI0?3@>cl;^8=cDXZ9YZO&m{t3p=ojSkBcMK5Qyo!qrv&sh4v%?TjXYR=>VggVtNLJ8)PR6x9Y4T@iypn`Be^d>5pj{m4*RxU>BM* z&lB|cIWs!qN#eL1nuJX^rnK-PvMOL!xvz0TZpj~iD0qGhzQYU}LJvAZ8`&VeMY)uP z|CUR#WVbf`A}Y@U+4^HC#16d^7CXY)dkCDci~Sc@92evk9OSeoXIfGCoBR!03K9m3tMcXN zD(n+eQgu+nKJ1XV8y?TT^-pO%3eA1{TPi2AX~x9BHwcLp;)Js(7KE+52H0hTnWg?k zY_oj}{9bU=D_Acq9enuUY=O`XtFySaaDkQ8i@YlzR1OKs(-iHp<0~!0YQSPH5wBp& z)eCctF@z7Yi=mSppL<%vqdl7Qo}2$SNFp(D@h+4+aJ;!hS~Yf-vDvot?guw#f)$+` z%I)L@R|6UEZWsFix*Pr`dyClOhyM;{H5$v<)oaLkyZ&%XB33}?>Q%Yn?;0}Gg?xZG zBwJJ`ygO?GbR9ho5nG`-HJKdBwU&%C>L!rs5BA63Vm#os>p95)UR;A-COYoNh0jKTu3>*nu+I!D(7HU8pB?#xfsy^OB+? z2uhujJ4zn}kz=d(U9?qAE-w1xn@|8s!*U$cuiM`AK30}eIo+*?wZe4aqzl4OH>)Fk zCQ#r0=AqEpYW!z!d~yDt1nfm06JwgU$tE<}mM*0xwAqo+N~|mq4shKd*CEgI>ccKx zc&`i-Q??xyGw3ZoytkTJ7N{Q}n}UC-yuf&V@IwA4IpvfL^4iyYzztgf2PeT8ozxS!$aBa@FEM+ngNKD_b zagB?M3{Bk0L=%J$Z?VH(v+vmXZ$?sGuse)man898lIXr@qZj$mv3uT7^}Wa0Vzf-b zyuh9bg56Oa*5|$TpsBEJkjBXdje+k=zs$2Jy5<_GIIo7yS-DXcS0qZ4wu$D~=~g z;EvVFfj5%JD6XBL0iu2$O{S~3Fyiib8&hz>XPVdv)nJgO@gKowa_-z1wkyjZeaLeI0nZ9L76WdG~eJ|HYC3=9bh z+39%8RosyDi#+uH+I5=y+2?r+5*7&cPrt|R60`I9uFXcuv`ZRDleMHKDdlGKWgxuD z{O0E#B;8iM;RH*H#k-v*HrKS;(TYmb*GC{O)gph)5GNxG{&F3dWW7RjRwl@&J$V`zkQYXvu17k*L^+m~280VHclA@B_rDHOr9a8WW_=E#k}})b>nb zXAdNXu zYKsoFjivSF#79B;PT1lb=pkSQcpgN8K9EcX3;{&{pM!)LcLey*1i-;^U@(MG31?Cd zz!Pr1kkY^KU!aAC??KnHR*buFn7n##pciKRPdDjx{1>~|9}WX=Lu@CXesAbG9B4-I z=00{i5Bpkt$RF5Z@+Llhrri?vGVSPhk1V?9uhnkc*dM@5wQ)4$T)MA2GKM}Ib(PVb z(_q;g{YG!N7F3Kq@n+}jqe(k~?kFVU{d#}^1^JYA)-qG6uT?wz8?+Xb%e`O+W`UL@&YO0y zO8v-}1Z}2hUM?gvhl`{GhHVY2wWJ!x$_GstW-K+47N9HM-Fw3|4?WLj?%s@0>1T*U zGFIXjxf4Fn2s1_H7L^RN%esb2vv8eLS;-bi%qEDMrBMMg^>b{xfX!mmCu1d?e##+? z{sOo}WXyKiO1@cE8yMYYUI^16M$99HZjx9U)aO{G1KqF{yQV+GF=f|hikutG8f|3`gMj_8gqnpz5(6e5qCgsr~+A7X+DkGR+scMzTV+p}rnU?KC^0Vnt z*C**K*jMnDEtdedfggokSN@W(Nf|=SM_bSXfzD zcxxJ|!;s@IT`z!3WUMgll(>Sd02eLv5QscL2N7l{@)tRJxWR4sDv=N2o0&|hb`14z z6FcCGaZ?!S@zA=T7{1B2qYkenRdJL?#aiTw4#`ys%y+o2&0dl!3yqYBiTB0=JhU)} zAnE|!IGDpohF2;GuFjtlIUbTtZ`IZ%E6vJQC{z2T1;QUvjq@At0ywBW=%ItQgLyC2 zKMPb@seEWf2J!!}-W7dhauI*gkpAKQWBw}ZF7hdvll+x(Y!)h^CeXEWjAzwHOs0xk zp?Im(p&Ywj$fNw%B6qzOzAVr}4z7}RN%bs@qhffmm7|lTP}4G%~^U&j&;e} zSyj3m(n4d3AP=9~i7tqKa>z?c4~gVEIQ|a#u>;9m^^f1vq<>^dsR64ZM(Yg^b*S<$yF7VX1^XvlYt(E?lRyg612PPG&nG zK#*n~+O%<=T|9>jw8;c(9#lPJb7vN;t!`w5S)uJSvw&HfUezqf8a#J4bD>^44NsP{`uwLR+MBk}~poAxL;4 z49$e1s5T=9@m4@O#W)KeFomOqes}jd)6lq1kfHcsNm+>yb3K*$l zjG|CfeR1DCJCO~@&+<0a}wKv)3-4FQrfrwnF?_37!*Oc2~ob zYT!L6SuSd9SkalPZYaB^SOu5Xh0z)_*-?DKUIH-S#}x}NY{zvXy#$AvB^NOy4?uu9KM1o@;ND%{QLwQC|%gzh+U{%NL^T6!p`{8P{7|S z9(f#$8GaMniDyxH{`U{D4>d0<8QXBy@M=WLAqx3oOvpS(eB$dB#k8FM2h=x#H<21w zu`pqv0yWe?rOP8{=b7sr#RM&Jjf6iE3E~Oj4B{k- zfONq9IA9DQ&QN>BtZH(!UgJ)@mH=2=Uj!tII}q2V0}>}a8Ee~gUs+lDk3HGoV~@Fb zb&t8=_WQJMeyPE$1UBs|-*Bw{U|CSj8cpI#RKbh`DL+yi`{TTQte$h+!8I1WIbEzZ zH3`0XE`U{N?!gyJE)&@(Vq2b*QI^b6mia~|F_0u3vE=iT?e;rY?M>PDZhIdyy=Ju@Z@~2;MkvJptvN$o5#bSDdUvjlYOe6Q5+G zf@M>@Vgd=0{#c>_d9prwnjOySxp3=c((6&&i&l?n)oK$>5(}Hk>YW>Th);nU~!HRsJ&<^r-z=F|02)H@N?{T5aHDMr#Pb+z2=N#Gb-Sucu4 zTwxusSsz&w{ii*4y!s$1+9V} z>}jFkZt#(HU=wv9m30ub`ncP@5S_u)t0As+px62sPkQ*D!JuqGU|xQ)c3>lRAi2A! z)4Pm-J)CYn=o<_hco4Bb*wG-WuwL3YI6^uyx6xp((NK^VIOzNz5&2*e`LN^pAQXG9 zWdRmt{u-?i&ThCWv`_OBPYW<_MW9zbd?u41;^9X@y(eXolr_sqG0$!`k45GQpO!dcbID3h z9GZO9nncqYfZOb6bxiAM<0Zwvw4*IeD}9mm8Ju}xuf2n~ei0EMdO;T;eQ^<>eEFfQ zKZFNOwht**-isg)rK~{BJP*etiU9XQk5xd=D}93gW!=$P3d(U8JJ&>xe+)bQ6qz*< ztTn8xH6pz^oZXCl74+_cNYZck{xc_7_d>qa`4kg;SzmjU=3MwmgSURCV6+U5Fw_c_ z-Qr->K2tzO9Tu|z@+u;Gt<8Ig`4BYswB`jC|CX?3P3OzB0W0qbB4Af%L(Tv6t7YFnHEWpleU~uYGuM?hdY3B38TAV*I~I=6 zY$BsA@GAz_=#H_ie2uxSV?2A=aup}q)|E}p3bZZJ?%#2b*hrAO1V-L3-hky$oWKKn z=2d`20R>ag@hqDNK%$h;wRyH&A|6tM7$xC#pqpo zu3*z!5S!KAs_r7p$E<(T{+ga^L>i7tkN@0feyN zLIgp4Y(EMJ;gQQ@{oTX@lt%rmMhkgR90>3u@=z)AGTs=WBGzjgGgAxxJhClE{ZF(0}S11C~hFk1T8;4kAus-gyx}cJ$O*x%BsB zLTH-l7xdjZ?HGU^kc%3xpd&J7e2*e8H%71qh(%36R*K-a- zp7)$y{&v_c=Y5LW%57jS{);l%aJfGlv9EtwPDm^HZBB0g;qVwg_$ihJ5dT1GRhVZx z&x%I&5{Z00=emEVwyjDhhFV(C(jfS#H}O;5PA3o4xgZ5Fsa#AHv{ zy9!zchj6+2u)Xx1hL<4Uq;^h7f8Y!X8?=fA!;T)E2g`vR%7Hfx3Ue6o)1dOvC-D<6 z@^Lfqe}4yn_)ns8P7n|V=pYj5K=11YZJ|aMnVN*8L>D%$zdlQPT21oR$;hX^;jxQQ zY{2`mA)l1TH4BPo*RJI0NEYeePQQ%A38`n*)Me zgu6`Bd%tRSIc)Z5@OJ5Q_K3H4xq0>|eRf%~w}zXctQ{mXr%ishSpmNXE_nc@P(}a) zz3DvlWEQ!IHvONE_2=StdCzwz{c81W7q%w-A&FZLZa1!^52*xRe%Q~LJp)vc zaQmO6CHf_4fo%qa=n+F|Rj2bE$zehU>=dLbdC&&L6#$ju3Il{Q!k9w)eWQ$D(*^4L zI2lCKh3@+*>oiwI+57w)WEo>rKBd?Dv~R?p#Fq5AcSFAtIz#-Wf6+&xwFam~pGRc3 zHLS+IM}oSyvL%d!9k@5NMz@6PzE+x8OYoBGbLB zKdK!vkKs5UY2^D`lv6gdnE0r*WrbyhRke|EAsy46J+@Qv`^qfYASrYm`L~4tMq$Yu z%G*!F=-+jtFE(DGLly-ZV3LcVk3h}js)xWE$+dT(TNFw|{XEHe3VW>*s;_qF&-?7H zAsDy6I(sMFKy~)1JHcyjX|@AdUw+{Cae9SZ?{fR_F@E&(o`5|yhN1hDUgqI`lji;T zPL-AP*_Gr+1^Yx5AVlnaY{dg}0JQ<)-;B!Sr)$|oN9?z5g$r`a@v zIMvn0I(S2~4gR|`^qCLm`oJ5Jwqx;;_j*y!5I|Lbu_EzGoH{^Z*z+5|8LK7Av~H?C zFqE3pZLmIYWf4JHB#^uJ2QrvEQ1&TD)fCIqzaYi`Uf*VGP42OwVHh5ng7TaLgBkm_ z&{{#37M$GhvL%nX^q5N zV|)x5QpERT67}g9#3N(E4&Qs$>oM63zYsa812c<^JLC9NiFQlD8gj>lEq%Xj&7*IGt(qMej z*G5cWmc^B-QEe(204L-w?@b1I5fRQ#B9Gs!cmbqZ1Un1rsnV__KijN@afAnb+RN$3 zmLqy0t6VQTP;g!xHmGo35H?J4Ucy8^w32-yA9L9eNif9hwloB;eqAP9NWXjwAS1vuulOD8%4m?Q zUW^d7sC}YR5p^~SZ!d$CTvGK`FV4prw}@U8TQ+MHX;4XI3U}71IjmZds5TC4HpkX% z((G6(=~|z0(Ox8WIgO~P6Lob8?P{+Ly;v~hKFZ5EB@WG6U}rztoSw1AaN?hCt&6l< z9?}lDr#WEIaw1mU|4vqhPSu`TYTfU{>sLm&r>pS{615vBwx_L%@*eQKp}EeQXjM}Gt^3f3 zyhsK_Lm|h5$;Pp)V$bA(K8@V>ee`nCAxwha?HTEkdMy8%gV_dc3(Z*w^j6>%^@v^Z zm|J<7DFhJfx8VK(kOi~n&H|T4A1OXdy+SzyFz-H~+qDWsCaB-GHwb81xo@vXj@q9b zNa~pj3gMa1p$iCNYOgEhWLbwn8lP^@*ej0D8cTTfhjMnf8&GJj=1chBHrPipmq~0d zk!>?KurHk~eMh=wR$hHC9vew!G#1u4JxyyblDjN?Z9~tN5HQIZ%EhHA6yhn$CvY*z zDTs)Kf1#BpMEHJ=ip7gdTg%;^)ebP4cFj$upH9Y?Pg+i?Zm+ANV8Q{CY__h= zeiix$%~xyUN*gi7$+agtGsVyG37jsM6oyAZAWO8Ei2fs~w8d)wWieEL`(iZ z#I6P`j%okLz)dfyHqP*Gmi50B-2X>KqPaTG(%cZ3ePO`rxjMn~n4CuyH#>j*Rt23cU2fLCpOe?hsm^-mtq&zY)!mn7TsYfsL;O=LRxi4q*q zsm}}_g)DbnQzQ*Cwk#A&(W;sI);TAf6}VUqs~$fM&+i~83$1HPFW|B!S9jOcWDk<) z@l`c0#drsge8}i!D{-%7%cY-GmxkXcoAIEL8~k1&@5P~y63Ni@%aRDMEjTGFFRH9s z8tS7TcWz$?R0>$`4K#!&%fi!@hpK=(CRdH03|jF1Ig5y*QFTz-VrmOx7_7hVKPV@} zNX!ZgXNE#gQl`tUj*QDR6%If&DfY`cy}_LGqEwTpE&Z<1hHEm^qCVeRg7{5kG-lPo zlekXELy6fSFNp2JSvRk8X}2R|9bk*lAG*dpeTC!_TkkpPA_zxO4!6EUZCfXSEJ%IU zGkHbqLaVWD7o1V6p+gRJRO?7ot7hcB^lQR$bK1ZqwV@+utN4PZL3<@lMzaj}JVVoH z1=T9kPlPe@dilgFOVj_@VYY4~*17UV3yQ)0q$Y0Y)}5cE=TcW2IeO!9g69%ki zV1DC)Ik6+Bf@OLtuY=r)6&I((zn4mhG1ud0t?PyOq16u$Lw-ZRLQ~3mp|xBbol&ZI zI()P6n?IRbs-*vvY~lt7BW1VYC;k8n3sqriv0Dw`$lHKt@Sa?oH}723ZF}GzO53*R z{PCd!UD>AOT-vG2e`BYBWoabPv3}hxSIia4DXGXMNVd2Z^$kn1O~(QS+;$ z_I)aZQMqi2$V=>?X%HbvxJtv|ey))6?aRnsE)eT>L5^$LA3;Q)Opoo-gy*t9+CT4r zKWz)jp|Ub2%f&b0&ECngvWM5ockdA%IV&Q-27Jp!%K&oWkhwqTzThsMj*`5Yc>!B& zmbwePi8T*P;8`6grKI*Aa>q`j@`BD;`GyHGE#-Ic$y>qC2;~<%+XyFTNVa|4t53=6 zbD#8R7li?Tjn?5@L`R+CA`lemufuTa8XWqj#|b+O_l%)5^=9xo+Ujt1t^&k0_p*j? zke1D7=z)iWrqCHLn$q;KrL<=x{XMqeA`fT^(=E-8Kr-5F>^I4`!IO?^3hTJh0eldLG)w3cb|{ULQZn{ zFC#LoqQp1@x8)O*Vj5}$UG1*u9$O30RsvuTWFY3A`7Sx-Iq?SBHsMU9>;!)%YSZG1 zp83cQ@A<%S)xTpNxfX6ltMu$Zf35V_dYhSIQ0PFe!1ptEe1-ckYjJ|Du=F-j+gYR7 zf;?Yb9+i%=xv{P}j9Dr1&N)EYW<-U?-p@W#>G+)v6Qt*}R8J~p>XejEk&)ZE5N2f? zGLNdUb$p{F{2E{u8#?lYzaoRiet@9;qV?pwwXX0H$( zqG2`NSo@+#fpm3w6OSbGoo8NW%sEr0@yP%ZaOoqy#I;!?K*nS^$wK}ZteHY(Eaow6 zuu`h_B>)5X%jfv$bMXb?W5)vj&3BOpI=yv>w{^&u+SBfYC2#cyDt5R5cSN*6<(%1) zgE1@t-hBS*Lx`JLqzz-!O4o<^z!!Rb&`17v z4)R%O3?XwA3}e3q&x8Yy7Q#-jF0sbE1jnlyg*YT8*%*U_$|%+vMaQ3l5A+4VS=iqg z=neP{pbZh~p4zwAVzypCGH76+AKTlsP$XJLLOSE5+Gd4I1W8_EXy*%)T6bBM#fH;WNM~kZ#mB zVX@d?Jdr}J*?dtyLDTWwgur35SgqC#z;j-FH}C4I%GD8AkB0AEnH3sn%x7!$|BAb; z8K-K0Hv|8P>xbgHtm=pUy{M{C5srTQZFzkCk96(o|1as+ZS{XAvHI`f|7h`#D*FFE z{2wj;QN_naMY*!Tr#kz1(@}Y;qRf5hN$Vf|b$)x+{5Mxt<@e-MlrGcC--1VI@6P{S z_qkkYJFciumcNgs8^~Dw6olM{99bXM{a3QyK z;-P$`Kt4pE-a|Zs0ij|LB_ob-sE~C!%*|AO1UA%Yx>&ubiVj&RtaevU!w%UF=BXeO z!o^TBT1kHJo?A{0xZ-b2=!v6I1#crBotqBXIg-$Kp;NbY+(CbEKRF=qUe6vxxiCaN z!6tq}{<$OIB#x{w5&kb;@|F4=bN1%HQlu6;qiQBf1x9|yN8p{X5J7J1Uh$xDMAAR` zdW-@Tk1jGVuKbW2EhKvhuW(e}e8z(du8D%dl8bE9=F0%g%4_Qn=j7A|%iFire zdOkD?&@gK8U4@Ovb5z(NU5l8fARZFXXYR6|MV@V*rJe;m&1VX3n#Q<3)K*m^MN>;T z%RI~6&phnhcj?gLq-#eS7CE%Ek8U5@D$51PL7WN07*x9rhvZ_BMUrhLU2mApT+W=+ zoWVZCJ@wxA#y5kJ!cL4VKFrGbgAPs$3vpifS&XKIP-cw#k1l z6EQ5dQg9*fQBtxX5$100=DA~kY1p}j1cHT;PL>*(lx5%jp_&MD@T;{(%hrahk}F5E zpSy{Qi6YfBxw2vWQSI9VbrG}u^hP4K-ne^oDk8RNFy$;=*k@T15Vel zpW>d}CX(w=*DW6xmhAUN6}O9_Zd|3y0Rp*~!t|@$foMKe3Q##JQXhQ5La{?yA-^_G zQTmzhkR-4Eq4LUAiF33)O+jmv%o@2dw6)KFTjutrX?$**3|T*3t9HobTV_>4ZiZMb zWjR~Il%;GVSUPL$M7bqvcnU+#2b}~hHdJ&JD_zCFLUFFPb9z8>1Tp*Sgbn-AppzSk z4Ufp0#va8Ugo%ZLd@PLvl!um5(9{VuZis0v{D=O|%pKLQJ)Ip3cJVLJ?*%^5^L`uz z2z%B2X$z!v5Eqtres;Z4&!%k+T3w>1*c6hQE{F?ha+ge*%JE@=Gu+4S3JV+ROq03E zaeg3UY{%+)q4erSB?n4=iGqYYEkje&q!0EgLNZtm~|UEkf-ucA{O5M=~GP{3{;Y?5+ctn8-eaR`H_43pd<%$i3|8 zuhYqkU44I1`K*YV(L{j<3=Mok{Nf!f@1ndBNAP{dgn2sch&VEFZ18}=!BUJ}KFXDimP;h2mjl96= zb|1UFFj>ApbOYGsbfZIe^jIf(vs^!#E#4R0!SIJhZmeIQyi{LEy#jr=Qw&vJn=6eb z^*>Auos)PGAezO$P{0s?5`gFtffA=pNNoQXnmF3~-|Mbqj((YU2x6=4JymtdoO`sw z%%T2nj&@m###A6OKZ>PXXzmnU{+p?Jc#fY#DbTqf#0;KVB=46}NQEL1mLPwlUyR+) zn9<+tn575(n~9J&e0U>_ZczAp2VOC?H`vs9$xU%J%V;&kzM_OlLdr}dKca?=s0IkL z`iVP7SZ@<#BgCN0Nw$pBs8SB=`J2ZvsSD7W%BG!Am^F8`cLP%pI#(pxcbb+T+Z9L7 z9jYtNwIH|h7aqfToTrSFu9oC$LV1?8vHnzaRMdnVkr0dKfB=k?{Kn-CEd->?F|&&l zoibwH?6Yzt?Zjz@gxkVo4h=e^QtzR4##a7>I0=J&0*g@nEFk0=FF?~MgwxQ&T{Z+& z0aMuR2ul5dEZ-k?$^=DeXjB!IxL3~@r_e0VCRB3sk@$-MI$4yx!tYKA39Ss7LP2`* zX+SPIqma6ZkJBRjX%QN?jG04$EWivT!2Fkh8M1&m($O6BWHFLJ5%hMy zL!V#p4&U`D#n=pu+2L*MwKk93S`SQjNl1r{r~P`ekiOUw5swFDX{h5{qlAv?k%K+O z@bCa=Zgon32o=IdBqiY!RB))O*@f0`q)tZ~ih6X3z1@?ec9$4(R>Tl%ll62+2|INJ zUW2Ok&+8*?Z#3IRum2$Tq)w>71eX`#hyC)2&Mv7?LN6}oS-K&TTfljIocL>oh5aH% zcn8CHiiLZe#uiPfGL&Ht|FKu2rPcr1ww&`W0o)T`DvrUsyf2BMqsQq+NShpgH)Xq9 zS)biAs?NI&smUN&BhM6)U0Z6MYqC>^pDZxKQjI&|8BN$t!B_E+$q_pkS7SPisK=?jHuemPGIK27s)@_+I{uG#0PQP=hwB=zdG{kUl$F3mN> zt;$Vm23HU{6Qd?4HU4YRBb1@3MQIF0mGcmv!@x1QMJH<%UX^s<)1Vc1p0b*tVKQO8 z_LsM1@d{Gn4eAL<)NXDjsUT&jJ|8KgAUwOtdLG-5Dww-bGzGbVUUWv&r>l(BI=}c% z@-c^JmS=tCYuV+q6nu?sLci_9-FHs+?pRB6WvW8mLR0^=pR1W9W##%=_rnyX`Bwi* zoeA4&N?UYg&Dow?n{%aqc$H4FHuW)OyCutIF=j)YQ-9-w{qr0XBdq1S@ zb9n;JXnxP*47@P%Y$g;lV^9<{a%RD}mY!`%oBrl&@w@;gw zBOf17c!YYMYv+_byV3K`zI&(#l|5t%|QzyMs}9PV3mbynE9vt4CC*{D|y-O zrVVI96hMp+6C%W-Pb=4?!*--Ywb%H0n`Y_0Mct$AyTbb*J9*caGIOU1+%jM5io}!t zzQpP<@$pM{XGDyVeOj<853RmmB}l`;hce;^rO8k=n6NyPLmSFyzv3w-_wk@uq?6c{ zj03wXbWX(Sj?xP5{1+KA*j~LBUIYORUx!;7=S56w;nh!As7-r-kUgX)D1D{*xO^xc^qxXCpfBYl#H+h>1+Y8q>BA={Kga!qb^>I7mi@C;xOJLnW zV?e(opwAgF1P4eg9t}~YS?#(#*rIv&1A=ci!zoN=ldQC#4sLhN!XQ1wMN5TM5@1kZ z9+RL)4!Q6N*W62O-+G$6Y;+yGN+g3W@@g3^N4g3?0Rgx`evz(xIW$8S<-9TnYVpCmCa z2Ujl6T#UYyu)Zjjp`d9ldszh9lp3?h&mk{*Divr12A2}gBqTB?hbcW^1Un=NE1jHc z9!`~4TpyP*_Dh4TXWl_wiqwc1H!(R&YuX-~eTMuH#5AEJOa00oy=_MQ5cs<=c9v$h z9p3BskaBAfMXHh=Ih-Bk)Mzy`O3U2jrb@$&T6Os{}fq9Zt-W)^x@F)O_ zGSNIsDxb1Gux4Dwrc}MH%j5t)Bb(C#{;G(*t>I{&CL^=M0`IECy{+Tu052og(*k(A z(9x}S`p}yr_W9h4ClBT&kLHhHdzkGxPj}(_YYpD6r^hVGIv~?Zk!n>S4j)_&F<9=W zupH_T8R=ocW>V;#0?)WCxEZK*k#u8v^Q_9c$Ob*^06hp1J#-;GgyAXrRtcw5>eZaL z2Oq*K=8--Rx*j3AK7EQ_InP|_n^f*OjCXnM19OBXS%&6M4o$XU^`Mk`u@3`zHIq4| z1POU_3PIy?oa9pIlYp9&kgF5_oRi?~#>}T#o%Qd?6%cNbpjr%?TDY=W^f$WG`Ay}U z$mMSy{$rxgGHqFeg;E@}ygr2l8uhRN_4NKF_5;7}gP<>Lo?S#9Zet?+M$1#z->};> zzwjqU5`6~lf{}-yoON23rIG_xsUfD!aJnEv4wD;4pFY}GG}(G}mW?Al6qb8Eyb9Zg zc%Q$yfp$L{DPawFhr~aPGd8DernU8&UqFSuX+XFyb@P0-biE+z(=Ax#ul}=P_;( z#UoL6B|dsoQ6$aS1+y6RX8uI$LhJge=Aq_wmW>$y<^h*=nhk4DtJ=#0kj@e9k0IWV z5!sJ^q9X&FBYhSV(I3Bl>Pc|=nGF)=@VsFHPLm*gz~bj4fxFyjL5_q6z}G$Vbx^r_ z;XUGS+<)uffVhmpd+zC^J@3Tu>HJV2Xu@qWjG6vTyx(ftv(9>l|#A58o zVu-@BtWZ5iK|K#by}~fHgj_w#RlV#*y)00z#Je?Tk0$41y~1LwK#Hq?zIB9-cOZjz zOqjFFb9D@iX9RnI89mW=%oZE`G4WkaHX^=r0J3vLbZq;`d;4&}NcWz)=7zk*0RzDi z^7+n8&vch>*KOBnSD;R#PNYu04oYSh;B$Z=fD~dU^eX~Skq%9f5z_Ij>2d{dsiQ?PiUfIXNn4LZKGRjC z=blVkD#zhxTT8-xWwF9()%&$ho7mQ(xav3hvRE6F%h{K1Iko?bD30B2Aay*ol>@2! z&#jWd9dVsn>|6o>1~r(Gk%F>tSmYl|@HjC4&mcNH*N;}8I=hy`@prb4Q?!Y1#hIFd z+RU+_Hs%_URfyp^$j!y+ap~GgCh>N-Qxtnj8PfecOdUZ@=I~JO z^I6C$rEPJce?g`qKQ2_wfKg3)_#?&G{Lqu_=%`8d+%&ZM#~OozP|U=k?iUo0Q;LhT zfsC`}$+{V;Cye;F|oyp^37+1JgB9_o?E4Euunn;SHA%89&O za4n&h&`r9h@zxzwc>;-SE5nQW<@y#6MtnMgtdu8BTqc+)KAXgns`t~Hu+MB=A)vf5 z8I01*5-Mhv1vx9T_<4243Zw{lB|U65>Uc)Nmasi`RmAVT^Y91#vo+& z${=MP&p>59$AD!{$Dny(+hBT*2RWt0o4AVqU0f~XDbZ zvR$d)!YO^QyL5uMN?cXUEv_cXO|o60Kia7&sN)n1YGl3%xu)nGP$jq`+3L@6>*7=x z)Nw)rWja5#+V3OLBGE~{MPdTBMYHGAF4&LcR65u(r;W^$-$A@7m~Dr%MS1JtlskAn z`xm)Z7C}rc3~x|Bh;4t+ZjqktNDap|;vh&7jnp0jf0t_dfQg1}#9qFD{vqLI?ZjA1 zKebeKh*q#RTsK1})sCZ!&_~?^#dVePMEkaO!PCHI{@s9M0TP)@7C+(((i`9}i!XUY z;{D6NSeDo=*@uFk;Vm6Z`Q-Q|VJpCgn4j^Dx!c$_Z%4c?!iVP79`lJc_1$-M-Q+xGZ|P2x2WP1DS=K>InVqCOYH!I-^apFG^*O+PQ;|5anQUS> zYdlG+9*#8OHXuVG;Fc-bEz#Tpie#2)Upn8MI8AIJyd|h4RS$TIV4EUCKH!xp(e2pG z1ZsJfYCpSFop@EMA>7s9BvlV)if~&vLovXbDb+32%mzwjo(oyJ#GRN;>Yjaupa*Qk z9QarmHE9=z8qf?)ebE{H3wg6dI2%Al(ub?DDIS50yje_4oFObJZWo#2qL3d2rfQ~6 z$~i86LrZ=AhYuX;vk)yis|+w)sGJ2-M$wnsn4t)@G}I|($(AgyI4Rkfq6pqJ)G2k& zwk4-3rLQrA>Gx((u>dj6$AqdF$l?Hz|2r+CF`NJe`k|6MIg0QfPgNJ=n%zdG=}=?g6nO^vTJlAoc&F=_|vU`ro)w z5d@`6T1h3PyE{jSlz@W3Xo1lk0t0CnHM&7cxE*l=e|*#-cil!H^R%gRjB}=6w(Jx;rauga6S${DTkDn$@ICXLEb$m0<&;O3p@?~ zYCbx?x;B-|*jp~Eq^bpuAwHrNHEO#C{gm(7Ho&18b2eWGwRyJhV1hr5gNdUH5__pN zSk?BGL>1a_KxL_&+x$3I6FX}r#eBVDD%PS-Um%#)JN7u0<09sE6V2vQMJVWPDtEUO zC}@K6Wu}V()0Sb2LEaSzjA#IrPEZf^l0H`IoVva+U$u@pYl~_g98{0^28vE~1Xa|& z*y}ya+so`jtZ)n{^7QPm@N~jQh#m5bp>_y1E7rxW+u#Fp*aR(cbfFkC6~H5CnOl%^ zk#ThhR25n^;b%TNc4v+ndzNsS^jN0&M{2PV8Y;2i3pxp|Zfta@Jl~EAE1ssx_jFM> zjd%ZhaIN_o8tTbCh9dSv2YaUMDBv_qsA=kbCP(4k_0EQ}o3p^nVOF0>_|i;08dkzm z-=m9a$r^jr3mY>Xni#F9+S$7ay#Z|$JAOFC=pavScsQ}R5Nq)7e`iM1&6jaY;JQM7ecQuacjAaySSBD2_~A~w z&0_~Z+@=&j?nHH`5d06Ve=+-sWKDb{=({yO{qy=m}0bGIGZ=|purfJs^A!7Y7F zipNj{Msj4iD@OG6#5A|xi-_mM2tKwG*yLGZvjGYvJ0eN{?!H2KQaNUwndzx{ONI90 zshXhZtx_=~MPd1=+;*cadFr>>*9dZ}B1<*QNCL$COol<%VV7dt8Rk}FjlJ2*%j6U3 zEJOiZ8f-=M8bvdu?W(#FjY&lya)xBY9)JA=p-mj5$7u|-_Mkoy)hx{yaltmSEgqu2 zR-c=esri?|pEF%=ID#|cieHj^vT*QVhLHcQzePYm56dLSQRx8fc_F39^M zxk(8pLdZeqd4!kkHcoJcwapxbzH*Hy5i;%1x07|Dmuf&2o)O@C9ts?O%a)R+MMig~GW-tOkcBN~AgHEK2_HSF6DT}QtR6s{|K%f>F4KBaXW z?e}2AUi-ci6uVQ-1EVd#4*43)EixG*u46QuA4oVe&w$J|4R!VMx;L6{_pBZW@ab6@9LQebGlk9_`P(i8h`9L;e53sM(u`c+WyfxySNH^`A zY$ElXWFqdILN^(oQ1=HuW@k-)A*edF2o!-}0+k>lL8*uhP!pm66q;%ZDo8y9C8frL z>X;7UJPDqv1CfS`17JgqfhZ9bR^_^6O;T5|Cb4UXCV57rCQ(M1CRs+5CW&!`CPhXp zEN)v$RCjG?hogpI+a9c!%>C}u^2i+u`oK) zjBGk$<2X9VHiJZP{{9d;Ri0wo8QfUJ%Cz(&i_|zJi#P+EMcx{jMU;`8mE23>t+^kL zZbLAjgXOVz6u|zuDNNUCrsQH-{tWIM?F`@>bQwZ_N1*1}j$4h!4j#C%SjahQF@6c+ z>EW%k=CEx77RtZqjmf*{!_Ot?waO=8Zj+@~@yw8f96#}6Xu$AeI~TtDxUX`ZhL}LR z))a43m;=VRPw;Nu-+i)I?j)Iy@Q-~!KnFaDk2L(i7X?AR*xHOIZ~0kHI`~QFL;9JQ zvK5KxRV#XL;Gwf}+u=3V<1*acsxC6G=2PIBP70Su(JL0WO8s z1N#?Nsh}zRO!Ahusm-Itg_uRvm;cPubfmGwZ_{Y7oviYwA#nJc5f%JD5E}df*GRu_k;ud7CY>muZ1f!a0HK%N?Q8)p?? zMYRYCRkg?iO*Js5x|$j&0zx#O0Ui8U^f#2O3(o z6LL^$Z|ft973MNB(WuZ?anmv{DL#T&2I$x2Y@L_NtsOjM<967<_Md7D(d zk5iqbiXfBgz6uoPNxiL(#J2)_guuujG(?r!%t4ixY1`r_YGYS06Ar>oN|Wt{9)^>f zF=m(_2N}Ip+9kn`3-ZaQh=3oJy=>yWwkM8ofi6l=k*g`pvDBN-1|1y&+Rui=tc1UgvK8!aAXwkRlYXR85Y%w!`w*7>a8h?#2oS-1w z`KQEBx)g-H_n+CYMB%0fr+Yh$=2qD#2vD%zQ0%3 zEH4Ipsp6|)tXh}YkkBjihz9dOY879VdDXhihQwa|x^{U!Aa+eXPzekf(=^A1!!$#= z%ugpOHH|>79Wox^qDMKzK9)sXQQY23n%mB7qC(Qbn{F=5T=g8+P;8Hm~+gRN|GLN zBs6Y<*qi$(*{K&8h4DqgvPAy z)F#|;tX(F$v1sDA4JyP0J60!;C;%g~cgyM#M5@_)n0DbKvD`(u%~M=SS~F9sm4Y`x zRf)Ja(5h;)yeH^D`Q@r`I+sF;k&_FS|mOYFvUTi4#*h zSN9k19+l_}^Axx-aYbHZA6Kyl)12Co>Y9=_Aa4=f!PJpY0Oj}G_Kj9rqsWczgX9Bx zxmB|xIpw6tI!W%-)!$w>Uz$7ufbj%(-;ru3@qCzn#psOu+v|!{U9=d_!1jf?<^+8& zO|ev@h+F`%Yw$e>T>3gnetF#NgnC9V^qvb&ejUyvSsV~~m2$tie=jw3{CZ~-7q*qg z)8)%_TCQ?uSW^qK?VYxcrK>&yjcmpZ~=;S1IuovjCfd7Y!%YllfZU!t;kRyo-$y1Aq*dRjmB2Sxkz|7e8%#P+%PNpK{Z zhS6}8M!4k3OSHej$J2K4jTq5ut>by4G6^-P4e>})FWQ2pC-%%M76n##6+Ld1Qh(lx zQpY>OO~Vr0P9tA>%}cvK$0yMi{|yUKYOUxQ{#V^Lt4f5gjrkin;;Z#1Pp7~3)d3^> z-!C#nzP!v3S)~(q?dB46?aB1q3c|D7`q8>GjO{Z$OmH!2h|y4CNO<_GmT>=bZ8gHo znh0KPrG0i+x@DecJ+iiY<2u4DKcCJ#b&-;;243Pe zG}+DIFILgEUsaHRbF937Lt(a87xqloZT7z)0Z5j-siC6B3r;LXE%ue}1L?*Qm0ZSU zn-=cuaD=5@z3;Fiqj#%)IV5)WK;9?iVCs~oH3YczJ0GEM#R?y_w619#=E^G^s{oOj(V|V!0`}h8P_aC!rXv+XS+slqfJo(--8xYkbbiap4osSDc&bXogO4KL!mR- zc=A{T`3WAqDJb9zYc>H{G|TzA#)~P)L0Tt40!QQ$hKEE)e6CeMxJ$ODKIBG0DjvI+ zx>o$1QKUH2QpV<2xZVcQ$vH=CWIsbJ*aPVG8BOjb+om#5PrOVP_D;iqo2a6u z)lE+L2-3lMbVw{OceHh_BjrLKkbTiN!c8C1AbHn!$Nfy+Iy-2MJXI#IdGw1j#V{d! z*}9~O$SM_hg34{8*kXh)Zdo`h{bSAR9w}ZcN*I-o%^2XMB6f%o6R_oAtTo37w zcf@st)zEhJiIYBmxw}$mxo2M8KTyKXKeRFO7IS|3_LURG)pPgCE3zfNQ)+utlvtb7 zM(m%9W9-x1kBA@*vsyFCMWNxv*Os3>QWh~Sb(ZDa6O(NgrQ9cy4gKU0BcHb1W~N8< zJ$>dnx6CbVoN5+bEG?JCLFLJAi#%?7Jsl16gy;2({nb?mf_F`hE%6w-YJR%7KasR6o)bkXri_UnOAt#IcdiJTHela93;3O#6A)ylxzBh_aBpc1 ze_%SNzBBtH1ZoI9+NQyg8f#whPVf%liW^Jh>L-RR7pZk$sM$YC##{;$&RhZ$#$0-n zsIxYErxuw%7%fB@!Vhtd{p9XaEo8UQ{+F$~Yfcj;h@K(*f*a>JWVRx~`U@Wx3APjK zZ62_cQmmQ_g~Z!`c<2Hqf(c#Xu<;4vFp8zJuJ$?a3Es7;9Lqj4g&}Zj3WUOgpdv7G z{|3m6Lk+Y%K>^9WFS`TAY}ZV4ruqV8?Q+PGqvLarWY|qB1%*?W)r1Z7b0(O;di0U; z`r6f~!9L-FacL?=sEx<3MNViZh^i<>@rf$xSZ^Ds&=#)u zJ{L9BVco`bCdzyVt^_3%;KTnVh-wxG+Wl68+Ypa$gH&kq`Fi`d)rZ$^Ni|4Pa(4c% zSia17U&_d@rW0<{P=G&1gOkRu4=wge5LHI?k>x*MQynKW_%~z)*IS{Yrd(uu8-AGF zwO2v?EZb*KHqo51gk(=$;};2@Iiro&2?1QyyvN4UnGeVb4v?`^yLC0fZgUojnkErS zoKC6E5=_|eo_n=$VNdG7EC^{xM9iRxop;cJH8E&>94|Co%^yh)cPT&l{kPX82*$d0 zL{D7^BBU-K@vJWK^1iP2@@rkx<=eXQOUb&7OVhg6%b>dO%O_}_6REL*zKeW71igGV z=>wym>aEsw-DMV<^2BeacFku3+54Z^4T$e}&ma`?3g4c0#gKzQ#H> z)2p9T6?G)DOqi{?Olk)1VD`uNqxOvr^}TLK2w#U72;OPi^B%m1$oYT^AJc;7I)dw3 z>#>v6E?EA=hfKdn80n)$3C_&5F=qt|x*)K3KG%Rj9SHswEsn%WtXPLU%*6-T!xZx1PUd+$^<64-$@&YkezYyO3sy=O&Jy>~K?BR$dtDK5m?wLb^UseA^^ z;VsVkF72`Qx$CkvgnuHMSD=nO$d4XN^$QiG5K~{Km{*e`nFn+di%DBY(H6V*HuVdZ zaQovPVEU8iUGvkrBC;G)BKDMfzOGPN4eek$AMCuUX$BP`WYf6>v#laHi)M8|S&RzE zW^-3y7UJo3B0~JS7Qt|xL7Iv33Wq%q8p}P98Y?{zT~OTV+f!yTHY7QcU%XjlB)TY7 z_!;x6q-{5t!p&uS`k*F>OTk6qKBgH0PImCMHf*Og^RrnV;9|{_8+qkGnm!ZBk)eGS**MTB$OBh`T$a z$7<|bfoc)1=)g+>bWUg*I_@$WU45yvO>{!LqkR%PZm}i?Unf=^BO&f6WMxJd6*Kt) z0BYN6qsl8Czqwd)rJ~hd%aRa>!3*SzZB+A~?)Fk>k}ObJ&g*$dNTLK;QXI7b4WJ*`28iLl!p`uKb8cR%lC)C6Y4UnaWypA zw#`nN6*9SeE_F+iim2e?L4Ptk=Jsl}9?2Ptv(m`8^z>1A91@io={LzNP_Nbq&wn0u zFIPjiqp4b4nXl+}kYxU#uje+>{^Jc{;O)C;d1nkL@_QBrJub|XX4i4W2FjX;`}7#< z2XOs_6HG%R=bCS+G!#p^@XHXW99LMhaj?10?eFg@zAe&e+;}Bn?0#^nIK*Z0 z>MEn%&gG)nq!o6cDJhi4HIm^`NbkNkINe~(YK`mg<5e_!IOlS!FQ7@iLX%JE!v>wF zqvBh7Ij%)vfTDAft_Uw+bW_-ySr3KVh}|Sn33>Ouf00uz6Vm@}M=V4l4O(n$9x4vA z5CIS^O&ql4{CJlV04RC-(~RHc{m`1pug0Irs8>VZxOL zOy??cCL9oYoj(MfS-UlBih#`?topySf^Ps*hL&$T)PR9nFq}^N4NJ+*Tii(UL6@w) zD}hP<)r|d{%S2V$ zUjm<}LW?xgiH1xq5x)qmm_pqGiv2=FN2HViz_EIZkBf6oMJ(r(GaNYxRkfqAnxS&6 zPtiafA$N_b6}F?5L`EzJM?}>jLMWW5lh*u`vz>maMh=|awt9l7vpbL5tEnC4Lm+D+n{AX67^l?B1`Y2qx7PIA;lz5?BDIU3=_)CCarUi z12vxZ*LjukoV%I-aevh~QQb%7ewxl_!DPF5LsreWn6{L_H`g=#L>3b28X2K4zgnrh zv6^{7xUeYxv~J(iKyY2Xafvbm+p)*f24A-MPDt};FJ`>0wsH-Xy`m(1eWF`On|$}; z`J$2I;X;7+=Lv^P#6jnA%}6vh_ckks-fC}&ESfJ;o)+Hsr#pL%^$k$aU~!XW1^;V0 z*|pZ-OlDJLOWjBJ3d4JlO;5*Jdk=e^=H6}gueQ#sIbnEY0QvBlVy~|rRR)+|{~aHH zXMEs}^fQ~bF#snM^m>9h93@<*g8`cm2FO2qB@RK6u9i%oOF1MahBmSJ+TA76xmBV% z(i*nwpAgzcs%n>QgAt8?A$Fq2^b27QT&Iahokkrpo?woI%nQR*uWLP$3_+aZ7kETZ zZ|z!eAzk0!=GfpRhPP&XIW4CoWcrqi>wP-8b#7LISM!El@vk=cNt2+Y^8F+WR?hF??7B9lT_Krr zY)CF|;7iYEm+@4k)PcAAMOR=-)q-PY+na(z$DDnlN<@ND95%V_3LDV+hyhCduoPvfClc_h z6Jp;EG#N(3F3Tc(NsFkAS04p+bsB57Ey)&g_Il!NK3aP!U!uML5*i&q9!rKKtA8{< zUKtr1fYAMTkO>z<`FuyP=kzH}Ac`M0YDW{-&kQc$mJ@q_kNhdpyQEKbquh>{45Xzg z7=15+`TfuO3g0upx;T;5YtNrBW*hlVD(F*y1TOEZ(#Q56=7jg(?L}j+4}N_wjRl+N zrCb?K|G1cLfjU7F%jOA^~MGXzOhaTgEj?P@E3vy)V7XqGD zA0~`YQAic|uBt}IGPhBval7aGUO7es7P-8GfO8 zpHwCG>*U$S7X5~0Qg)%Q9EyWwTu>*c@RbY~Lz6C?f& zhvtC!0UN%Hm=bOyEdlL_2sKW~ud?A6bArP&^I@%%O(LOA7X7(vafnZstxZD>y8GHR zgyzALiVN)eK}HyVg;U>H7?`=_H)eG8lf0#)d!q3#@XvrgZW+RQJpJC72WA+lPG8k5 zQdsO_>bu956>*}muyr@9DA`_B`*OPhoRX3vCy>4N6nc^w z$(84kl`rzwPut#fRaHFTkf^vZu@9$M@?4Htdt`3%GUYt}=na9XJlWEXy`r%ly2o9wvntqKGGQo4tj>n z*W&J$)EAM7?8FaD6CnU0uiCdQPFWF;`zJ-$jGJb9`jn;Nz54Y>mFPZK-y6$cN7+#? z^|#(kC{Z64HR}13wXPN?5B=;x@v>g{9M(pE`#?~*W^Y`;kD9Is zF73Aumc|T_zgxqZdU9J=sj*=~jZ-JR9QX*uany-BSZMAG?6J8!cS?F;+LURLyOE4-?NJ_(plzkPP`^Ij_t?>=Xy5Kpo5 z9bB<!CsA#QI$>iX<(0r0UC4nSX%9&)o}-$a=RRjvA4%rq~f_rjYW>bhdK1Rxa@ z0hZarxD~+Y!XVDNKeHeg^@x@P-=EIl-1=tTR=V2+3B!X99$3Q{%clFa!}4@BCIW8P z7z5XYPke?6lJn8Q(2no!oU2XuQAL_S2{wxdeh%ZYDf2DMzO{C0M65zob>_ad3*xk!n0xJ#5<=$^2lu=6mA(7EJbcsT*XT?vI66r9=hd=aRABp!OC3FwnO7}b%lXb^~BCj|Gs&VI>t+DdK zgtTS=Q^hN?Xp*CaAp}C~z&2YMF#wXx|JG{W@jgR<%aMDwGPTygo2TsY%Hxb(f982I z6oqKE-ft5gll-%lg6bbL1pPIzSd{l_9gUgx;iSLrO9``vgoC($Y~1;`)Jymx-jJKv zA=(&LoUZ978U;6F1i--JRV~HHQWH3lu2>tfwOX-u>U0k<`O5w zQQu)To7MFTPg~0UQqD^+y=XQMb)@hVIe<#0W}gN|GAS6$M_0TgaQt|(QxaH9StzD6 zrDxbMrP9_{3(=@=Q~gaY2y}ioj6WCL4SVDkapAf?I%yKS&#-S;Gr}py9}(K|UjOg< zQr#oedg0PdW<@Pz)CH$CrxbpqV(}Q${=~^8IpdWC(}#z7CZ;=f%FzMX`)PTy^?nw* zn?^6bW%(UhGXZ-Bk~A{gQQk^u+1CG5JEG{8eivy;Q-SFbYVpfu!Jz4!PuMf~`>U_+M)=={Ji(Z%cb}A4 z9Reb!oQ*9H=y~JZpqULs3haH~ZVe2Td^Y3{O!Fr6vdu$-rG=AK9KMN@`9D%M8rXW= zBlY2C-uR}n%qt@N_faK~Kf#nH#C&7N$(HN?HyckOZF9VFFbD8m@SLI*pOh<)uOZ4@ ziDyyJ~Uq6Nf*oMtpty-u%Tu|lP}96s)>(S2 z2G@Yd2#T)-Umi!W{Y_#0SCiwq8ag?C$ZhwmrH3HPKf>YUhS6x(T6u$@^35y7;$ten z<}3d)=t-}gawZN>0E%XK=ZEWvE^cutTcS+n?kJQEP53`1+9Ij^OkEBw34deuFwd;z0Fa^&f20k_6iU0w}B3(kVOO#VA>pZ$}w{VMox^eIYM zA^{6{M^H9&O+TrN0dp0Ol~Xy7gV%kRlrg~S+j*2I3elN^DuL_&qX5;DhlRwawH$bt zTvW)qar~NaEif9z*;7ZT)A{j~b7Dv5yB@1rw<5NLbm?O4`Kwo|zf{OWZi>`I6a$hC zh#|VsFpET&T^AwuB~`J4V`An6)=20B&`(;wGt%KMY(zR7d|LkD{fPj6mxVBW&@U}H zGdzR8o0xneAiW%k=tb;}p;uHHUxPm5-)X9Xr_@ru7;*3Y_O`hq3FK@rq#M-BX=@k^ zs&laS^D&uUmY@5?YG(5CxLVvd>}Dn4U$*3ERxW|I$SJbNTG$SZJKs=R{SAlVfx*E1 zX-j}fDA%s>4hV3AZ(HleF6oZMmuzrjw|&M^w7?w3R`v30l@LbzH<-RrkG&l&Ygi%g z)NOsDMeFe8Qh~hD-hjIl7DoKBMsNO|G$!B}`vW$k+31Yr-i8bc7BZol5+0t>AkH!FL)zUw;-`CrIa#8bA{{)Ik zmVJ#VKKtcSUB)|6YA5PEBkX$eEvhQ$zrH!ku`%mq_ytOrWcozhFHIiSS-pW<(F`@< zVpaIUnVV1JF@zrib%h3SwOg$4iAbq#2(8_|LxvO#KK}5Z{Atdcd7nZTvN(n?gAa`yFC(8eZqS zw5rz?gktLv8Npr`r|0+cfhCTq%Upy{GkrJx<&j87;Uude zAL5~S_mFtJSx|6JE8UgTqF}PAVX>f9g}_i| zd%fbE?Y$jaGpP31^?g~A#Of=1xsCjf(dPU$zth^(QTCx$>sa+qgx^2$X;kTGeDAgR z&G|gDn1Eq2cU-sev!?ma@pvu&z_IQAIzuOuB?Oi@pjK+4N7hv;{mf_R0d}`BHRO7js zs2e@tk`?^XyY1NLj}Xx_`If++9532?U+Lp8e4~^?dKd_^cg** z4>*6O@;<@#$Az-o2Xkoi)|F(VBNt``t!iXJNm;pM*vG?<^C7Mi7~TGuPl~w$MzhjM z5JaM_vV|lPs!@JvraqNBp0Sxc|LUrya`SgvHC^yf)YDV$>jSb` zg}7YP#D+N0DN>9YU0m`i+u$lEf%si!3g0It=#e{ylScvtosLLI z{{ruheIdhTgx|M(lsh`!=F{)g?Kyf`cVyy_H^w+^*4=4L}=j(kkAeXExsv zHW#jKWxv_WleC(M!y% zaSj}}Th<3_MXT1kbL@#VyH-5TEeB|bMvu_zd%hqvQGW=M_-7%d5YK?8x3$)HZt`Y_ ze=#Vvn3>VCMm3i5oC&vmkvSUmQJ77u^3~(f4o`k4`0u1ka*I3vPSmD~43Do%!wl6t zvz<4Ek@htxGYkl=nrll$L3Yk@qtyLV4bG8zdy}Z$&2YfmlmXuAg?jo$+e@WRMuwlt zBgL?HO0mm!6KzHE($8F=Pj@Xta?zw=evb(3U;LaD& zBlzt1!Pu>sb+V7|^UW9C!W^vu90o8dzmZ7!IN(xUT(gyzzF4_thD7^pF19Ed#kTeG z-I*BF&>)nrQ=!zNV+3~3r4aT<_feKHDrrqJyAJ)ypfro7MCoC@Nawc`Xr?zX*`sFI;1!3l4OWKfgTIs|tB@m&AimWfC#t43@_fAVM@!>YK( zYl2{s8{O#hl+B%g@~u+eO}A)}zc;K`oT04-{kS6{+yh>QL&~t|dnkvA;0F6+ZyNf3 zmvlSBygv%@n;b|oU6sO98!pR0qVh*{n%!5R4bNi6f2k~V|-a})-( z+elfPRz1hRd=xTc|7F#2Pcv-y(n2p8oCm)pE030~{9i!$CRAk8`H#S}*j3-q4|ulU z|FgMNtag&^jL3yY6NDxzI=ME~u;;}0vhtf59$o}$HsvM)GkDEXV_Mg@9GgTA-w*2* z4dr;gAh7@PY&B-h?kP$9=!RDNGEci~f!6RNAANE)3FAWaxF}~I)c0Qgfm@+_UrNYikeRhPfyIWmDuSW8a2(hh)PIPMD)m%zQl4&d--p*-@MWKinN(e3w&{iSO=u1gOv; zC^cUa#!E_lE?c@SaWyu~td9Q$kY64HNSjeF;xZWuV)3(<_p&0Nj-pJy%wG5^FA~ot zUqeMgBspNYCS06XFFyu6!`P!a2qkHGlZsaQSVnHFNa5|DyNn&5WUmwOq+*I<93c~x zg~26N&2BE_&Tj$k-+P**0>658hoSh=TZypQBBlOiyG|@^9pZ6s5NN$wv#4TaNG+GX z=Dktl4y*f^IqmB1a%ktHIKF*1)%GMC^Amo!T9RD)ikw}SD27eVJpw!px%Ntoy*obj&DQ7Bo}(+W4{@j_019N`C4`UO#914p{>&enIw1{IM(jbsZ!*_}pAV+2aMN zBY8Iv1g)*v(z6m@Vm!#PvsqE$bb9(t{vS(5E|B(Lw_fgu#Ye1w&6!p^?V!>yP`YK& z@r6dnlB$3Bw-`f+y-G3hL$x^uh)&u^i%4-an}LeyM$ z9pR)8L&OsrO;0sCNAOz>HgQFh`%1q1_D85Z(q5{8?oQBUr?zQEW(Jq8a*J2vTCtb8 zgsm1ZjeFm0dd!X??6EFR*+6}{?C#i%Nu3LQ^hv|e-5e5}+sefkCRP_bj(15Y_G+yE zn@JnI%=)aE4r6{_FD0A{c4w1FKKf2cK%_&DaM&yjQML^!+!bfr!|L3l7f|*4rRFna z6pK=-mT4d6tgxJMxN1BVVfD}C@Om1kg5=?+o0FXkhy|y(y?o&LBr0}J{UG8wJPHMI z@%wOn8EyD%YE)*rc^I*Is0^p#@zGW`g{HiquzQlS{?_jm7k86h0`Vb5af8cy%5k3K zl~O(tK+3cn9kQ$N=k9>Lh`pq3HM7Pq^B0Q&O`NlTzF+<`O`3jTlteUk*GW;xs^R2m z{E_6oq2$5ntm>7a)R(U7w{p{GN1cw!;W8njZDO9s0o?G>>&n+3zPLTymt(&&fO{zI z8#|C_`OY`4c{WdPN&c00ebaNuXBSGyR%_sSaIPveAO*^f14CV`-pKMbB#FOco<-OC4VI5AqHjdo@x5gx)WSj9SS|{fE zedTSh_eKM+Wr)B1Q8;LwTDrc-j|F4;Bm}+@L65cYbz(g=X8)Q<4bk3UQiS#=RVgzJ zGTa48;l<}^Z*u=m=2oJZB4W+ouJ2KDqW=H_7)_#|kZHwIVISu+1X$EvR{0CZdfQWj zD-7)n?2~7&VF_3Nri}DoEnGcj2B*Cp^!}u-qz~>^==IeMY?cGnrVmI1-@9!=8P|Iu zTtiw0Y^g#`T5_G~dfD}&g;KJfM4$P=^DMG|pDhaAG)w+qiO+$u|1+aPm0_hr?;aYpW8jIrPF$j)_>;e-o3DLPs-ME$iC(H>k0LkAs4P<#5U9c8 zBkFj*@}J;tvRw(#gZ( z(&|@TH~@|<2-Ybr7xJxbuH?#jk+YAAcYeFAWU_}`Czs)U8p>dXx7#RI%?DGeJf*q5 z-g7s=2kN>u|4&CLq=M&sa{M?R+JaH|%SR;NbhFf=If)ca+LiU}UlfWstAYHx2;Df| zcjxLbckZCR(u&WjVdz)lp1bO>iNdJ30g>;LxRBjx8psllK_ZJI@5ULuqeesZ6aO`D zM$c;=ATFs-t{@;A93zXB91w(r2(+N^PUl@kRE}|csxVg9zkSh*q}#`%sC(|)uun`% zx_`v^8v@oZ=X+PKAKvHh995ZH`PBf@)*lvtYFsX1lk)zy0!|Rim;giSH}H@#0US8V9>`RSfF=Z=Dq=<4ZR z=y06TWh82>i$NF4`4Ju`LPpM-NQ0T}U)Fivi@y4&!BpNpgYJrd`MUbj;6mS-5?}kh z4ETM4vHSht#pz8G2kgvLED_Cf*BHH%zBG?_#;$a#ckn8*)0F~GOrrCR2l^C8U(&$G zL8shVLXg5T1cM~m_nH`!=qcL6piQ$-WMX=i;Dn^@;w;_LGvR3bdiG48D#x_3Nrk-& zkBZuib5ldWr*kPC+jAfZRcm+g;@rld^x*^Z$=N6HMJ0z=22)BsSO?^y-KS4Eqhw;` zFCCfpG_)=6gVy&Za15E>-|v4je@3Op+g0WX9~1bl1TI2cJj)%2&Pg}7+W+EVceaaJ zpCeCzWcTakzbc;Y8kCPDB$q?2v7caNPdg!o{j6idw|Eubd8!xT3v>GYB{`iWmPEvlc-Q6&bb9kC@$v z8TG87nfBo+1p=_cctkU{;v_rcI(5Roy+y9)H(E?{A%e60qUpntS#;(lJuzHwc9jFL zFY@9Nl4;#Yj^=#TDN-M-+E?^iZAc>0jIwoB@|%AZP)7x3@Sd^pd`(XP&`VTlvPK3X zP^;;#!S&C#zQ|`V+#UOA0l$?*N_hnW7jc(l+#aw@#s@bb) zN?ttn5)0Rx?)ln#xVtWRzT514+dH!8<0#u+-3+Mm$Pn6NQavzUdEOr59>uHme*nHfLBA840QiNXP`bQFI(BpEYFnmQq3B=pX~k76 z`)tZbY&o zv~`h@>!(i3?QyJW+}od`p_pdko%klg|1dmMdi!j~MIU~F|5?;%%!y^;@h$tV9y)qM z?65);k7^`9rv%wq&C+shs2mL3|+a!g_(F#Cm}^ z^fumm;2?^)v`{&bQsgZz))xQ}Spn#hF|Y#aUSmJLTkQ)J`_Fwc{xD4HcMda5>Oo|> zVuzkqo;GGGaMTK_?hjE@%8%BJE)SM=gNL2FwC23Od8%&Z@e*?8 zOYiIaP6@tP`a|dQ3|2GlUkJ>|htfy~ht;hKz$W{jwJ2-3>k(N;R3C0Ab^Q*_ZW z9$p$Bv}L(Rq*c>e7Q_y5(n+=U;u>%Jfl9r(WQ&Yq%|B6>0|)V8S}9C_*-}uSb;DD( z(Ml0DV?YJGv&I4BBUSqXul?sfUPY<{3Usz!2nYoNm@3GF!AoOx+@%2x5`A3x%Sp_?w~-2XU&(^5vpc zx>>B!0X+r8Y^Hp+&VOWF$+vnE^*R>{MPdf)@}ywNi>*75rYk5okQPa(yS?)ZF)VkI zqI2xd#oj0IpF8|egip^!qgJ2ssFJjM)?R$=L)vTa9$wiC#eaqme`A~wY#6a8sZ0I7 zZ!F(|{F|qB-G(|BDQEy)2`#vN65|YUY03{dOMaa+?YFG#AIH;?>;_AcTm?K>*Gz`g z4kQ2n8_T6S_=B#Qy9c~AARwS-#g@a`C=E~GJ0EFT>9uI&2d6!%B<|r^nYVjb6;Bj@ z1b_OCVK8gnxpmf_5%skd6qAXppgfEEZ&{;*$_2`=3Jey@a9br)hs2S3U`NEP!GV*@rmbG z=rgTDi5+L}iEl+#+Zt8uGgF!4Tz^{n?vafw7F1a@N5qPSFEvKc+-X*6oY!_1<(@`c zEX6MN!nslNJ|5U=pg&n8YBAz%H)2OWkI*|GufIPN5knRX${{UNk6C+%>x+F=I=rnk zwoQ=$7fpYE9>#|>J67-Nu?9p^2Km$mcL;ztoH?YlW|@{z_r!%$vwF``GD=})313NR zrLmc=p5CzjOCy97Vbfw`*x3!XHlV*NO&^7MxRW2<$entD-JhiwnCbX_T(}4&c1RAJ zbTA$z9>iOUi|YqkSfg!Isw_ekzs=2^ksWp&T|yJ{@^Fx{2LB8Q@-Rqd$xtKw>GYbe zwn%jRXIhPt@LG@1KlZMFFbgH24GV`Z?3G zt=AyAqMN#2Y>rV2KAM16QdOW&s60R!HO-!(H*w}dPm zIW?sqldlhH98I>{rQ!dtt$?bk@tSa#G}`dc))r?9;Do0#4j)h+%Xy0W7v+bQi@X72 zBdQ6Y$;qJUV>lm8%e4q0a2YvJ_gAA6>Zu@=QAxT zANx7ZqNpZkZ)l@}U9^s6JI#{SbO@>to%ZS>L*>FV2xTr=UUh+5efpAwMw;9dnfq%6=GUd86t5ccP_zZw> z$B@g(rgx~-t4R8`awg~Lrtcw-c}4inYUMn`^bkDQK|0}WLuq80XzpQy#(8Pz9FX=J z5gK3gRI7W*_j`~$PkXS#tEN}^3gw3Plb~RG?$3z`pATUZbc{$OgwFo8k;q&5A2c2S?)(F@ulOSn%v_~wR;Cu)`eUNXiN-CS~ z1L1^l#s10^;Vr`5po$X`-1$} zIap|0%vxnvLDVYh?bY8WqLgnk#oo3r!=q6^tDvsUQBugb&n1+k>>v73^4O0C;eW&5 z3=FA~{1z(2T?g%3*hA>71)HieUDUr{>O;u&)DH>7!)Y|OKC?HDPI)Th%pcT`C!BrP zMi{22)Q>;ve$@7bMcTMEl*tFUfGYqJwd1({w5dm7NHC$6LM^mS>Dy7+fD(m%xa?zL zFS?En3L})Vw#PC&2jPfnivWR2sv=i`vQQ1c4_WMQq_PSQgBNep92~v@uRw`jf{b=6 z2ZTvB8L#M?xvPJRSbs9A>pe>txeK>7KPR;=N=dOTHpkz$5Baqr3eC=N&1~X^ul42P zgRCLZvg4A*IjNGY&8IwvbJFnezQZUdONs)@aUkccFPK5y<%z*OUn+K&r$0UaPu*of zrf}3k`58wG+arY`c)5~`o;*>yn5yB9%1Ys}SXO)FKxwCnhwYt#;gy}F2i0HMDX9OD zkNfnRg}qXWrns+|gr<0f+5cy({w!Y6(&|lQXKLw>_9hrS2ww(Z5{V4L2WV>$pA#Tx zVIU5mTT(vs39OPM3#KQaRcyPp z1Lw|XeNE{BZ*w)<_jCW3lz49S?8D>2Nb$FB7aShY>21*q|AbeFWd`jSGwR@|t_uz( z;5LFwM6`dHU&D9Bd%8>7k@y`#e)5N4R^K(l^+QtT;IMF!EsYCWKEgD0J5XZJcbm2A z5I%BW68`h3(tgWF+ao7_G7O=_6LS)eEbNA~oS{_ZaYRg~&_?ej_f^mT**vauz4)Dp zNe7ePoqKG&+=}@a@&Qbpm@g$(NegUe_3kW?M%9mcRGp+z)ma&?m95StX~N%n44Obr z0DDP2N9=KiwWK+3%~Na5`8*oS*~&#R%EiuuDQBJFe1UepI8f}$?;|m4`i$N;OgS!2 zFvy#4It~EH{<=^ouRAb|^oyR7WRZfj-XWxIKw$YdYYb|4>AVaDhk8c}$YR0|Ts#En z%hMpJnB3h~rgebDB$44`lpz!`ysn4s zPxKwJEePLc;Ge54po|u3>O(!$>N$p*cgavInYG}Thnmn^UYo_zAu(FN!B`aUCJ<@^QHfQyM4UR2ma)z z!(=Mi=*sFf7wfq-{de1WR2DCPKY3;jUb`qYDx;G&Yn-)w<&2C~_%T+C3dHXg&E7o2 z)>gbSVPTg=gKYg+dqh>bLzt6kZ(ymcupC249p~(hZ#6K$m&|!*J}-KuStVw>X|FdD zL7sZg8YF?{7sMxj!So-^BK`(&K4r58;atsv4}PW={D}WWNvlT9T8d(I#}ooGGp(pB zLMDr?@xnPk{HDXG;&N%H+}Y z`)B(4{Rg1;Zk8|_O|@w6=Fqu0S8c{K`&6tMpiP)}&+4cwcD6tg8(}i>?$5bdOg+t} zo7P7K@;B^x@FvWD@+yO(!{2D%{jFLW@p4_fC7; zsfi0Fx9Z-x)m!b5Z=(*4@!$KAYo8I#JmU6_AHP4L^~7xnVi)IDtGUX4sS&ZdJUy96 ztTs`ny>cb+FGTwEON|EC^Q_RUdcP#{Z8?hZ2)X<5y8C4LVZ(w!OM8sI_egV?Stbtq z*LfV#0>j##i>U_ykEtxu$)gozZue}>0FXhCmN)1nqV!av0O$9`qf@% zO32QV#@k1rob!VcH2rbT+1}YMo#)Gs=>VT{;e>P$fSrYtnp5{yFLB(=!`s=$Li9D9 zckm#Jymk#m9z2Niet&OEw{BbBo4U1Ix2@Gqp|}SRP{OHGc=dw^c+DwPbMB1=**E9S zyP3V<##}HlT{3?uVJY;zWR>HUcIh$693FhmM{=fyplLD2rS6CqpeT?ty=)Jz+-m4wP-IGJzLt|J1M@s9*ZYbty zJayvuVhWs&N-d^tTt+f{VUW?4^LR7}+?>cx9Z!o%In1Lv0}w`)j^g%eW#mC z$pxZ-l-C5BEzjB75jB;%!BcmGGgnTQ>OnEjv@*T?AR(vJ86~B?@>jvlls0n;4KH6H3^GEQhdYQ|wMLFGy z57D>c4M7z|0@l%{^R#TrIEFdrtWt1lwNlD+z*D!UoVPGcw^qkF=UTOvM_x*}i(RXV znH=glNwbxg?EBoqXVC>H!}%UNx6Tuq!FDHnBiagkobYToXh^?{^JVZ2>~fNR5vt7P z7}KwSLPPpxoUcXQVGW4({IC|5Jq7;S=B{7;oaPfpR**^Z1;@ERb>{;d)o@sD*e8}Q3it~1S zprO3Q_%wqySjP?zGuXa0w>Cb@AVNM-ohW(nL$Jt#P^koQlNB0aXyt3cFo(1 zYHZ(%uN|1RdqfpCV#v4&)w>I%zzCTo7?RflI3c|}@G{xv~;{j-AHW}RARw;21+QbgO6VG@M&(w!j z^!Pj93wAvIUQJ+!%LBE;+#p?qd8ca_-`0ypgG^R3Wy0oR+OZKt#G^LY=8}Q9A_IOxbR_N2Itzpdn*4U*3`= zIuUHD7r$?ICp0K^e8tATwTB*cP@`;bIAVAD(%B=1i{|H6s~r8JRs^YJ&8@Z;{r_Ql$GZHLis`h<7~4{bJZ|B_zHacNe^o_=N#3Dz=ohwYgKi2m-SL?*%Sg{RU4 zAH25Ll6?ciVuO7fR(vz1gDGm(o?&&%STPpOemy%H3RDDN{+o!LLxW z&Qst9=x-U}I@u!We9C7N9wCFygDI!O?&DLPgZNoq3<6C&U9~x3&&D7~@;}db= zMal; zO?gJ`af3JXJsZ|+(e^5|^d_dEO07q>_6_k3?q2tFky-ff2BXb5sAJzi(X6`2_b!_D zl+yfsYQDR+9*KNBnDxX^I^aX4w;z4<-s1&!8N7Vjg0(=<*Kn^3CE(=yE{JtN;3oTX0HQx7kZ zdIDN(NFB?03d&(zxmY57mQ<%Wy-O22w;YrDf*a?RIlm*#pq$F#@`ITiqaIch1c_cp zFot|zCV6R#Qsku;eoai;GP1=iSy-8xC6k}_%e=@E3pq?4+>G{iOM_4-a{UxlT!YSE z#s%LZv}VSXwZ3SmAN~;E%*Q`(M?d|7%xUomtsXOVp0_FS%Uh}E7Hnc^i`yvY)_7l|N$ciM*s1?fM9 z>DxtTa#8)SK1a=+QaG?f=PE8H zeAA_ZV2a6KOaw)cam*DW(ha<5w-)H`MF&fv`e4b^sTSch@_u%*e)k}+MpavkjCklo zClXrVF2CKETvX9qqi1I+&AAC$u9O|6&y`=x7jpI7kBBTI5|O^5ssGWX)KOQ>5kzE7 znkVCF0$0Hj+$?|;C@oLEPl7U0VxP9nI=AjrKV$R%ChXaX>Y#ENCw>V{*)=KYz}!gT zecM7yN}=h^?rq;{5)m?b@6_)r_KFz@H+g*=eO}e?Sb{HpP?Ebm!l7?lP5Wb zADR5___yC^_wJHK?YkcTD?9s}QN<PUMcAozW zDfkNbPrTT?iIy{}%tOr(y%wkl;7LYL?oLZPLQHiMP-3MozZ7mck0MniQ8dpaTT)1i zH;%Q-@PxK>M5}3_e8$c#&xI}!N7E12tl{Y=09!z%R$4PSPk~;jDouZ}MEWdq3QJGM z8eyDkoAR3(SB{$o8q&`<@6fn09O^@sM`JdFjVdAE+u5C&v&qGub;=x&Wu`DP?Px?04Md ztM@D)NnOASHR!GcQBAic91YPI7LMN;bmR1#_i8FXpd`G3TZGon=(=)<)Ft=Y*t~X& zZCjn0rsY&QD~*+a#z67QV1wDSt@;MIHf9}=J34vW0HmoX+w|0gi6=wKDre=UwmHMs zMfY7dOp|^kY23IZ+utAnkQ_9S*hAuM&C$8-mIlv%Fn#UBZ1L9h>v+Q}y_v(knIMA$ z<=cszr}5N@6N)KtIx4N0x^WrFZ~{2DMsPj`4YG5orreeDcr+B;G_D+$d?esJO&sUc zmegWfTzG1^ytGTb%6SgwR%sJd;noyzUPk%~+&F*Ac{%AM6@g_4Ay5`mI6?IrvzVYsmV7kR3woM%YC z()6^R(0t9&OZ*Uk1E=xf$|;pHN0)NVAf-L$NwASgQ7&q=kn=2Q3mu%b2GGiuz44g6 zlvwgnF5?vCGMa&gxS^r+fH)LonZ}n)Zhv!eYr!8a7W{EKUgw6_YpG4+i?URerKP59 zp@t_Vfku^!ngmLjA?>IkJWnH%1rnOnd|%#Tn>4ZZ3gxS_o4> z0iibOd_W|knFwmiUS2j5 zG!W>Zn#|QaiCr^<-P!1{U!yi}cI`T6&$RI0@l;eF_X%nc-l|)-IXlzaTtTzY7=;{I zHrZ_ZTE9^qUurZh4eeKIixb6)?cXYo0-DU6g!>3*i<)auNmTpji+yzTOok9)dH}f! z=!3|qfjzrS8RS=8`4MHHp>8M^O;=XcU3gZ>_brbq`3fET^pI*4O*G9bhZoGby+_e(2^Qno`CTJo)515THGALk-&V z`LdqRi6bPR!p3MI(>ajnJWq5E(K0$tEPEH6Q#q<&TulXrME7W8Qp~1m{zCJ$M_}%YCkD5MB+&*J)jq<2%gC?8PdInCl zz5faqhsH1NUwieGne}SoTjhP7)_erH0OlOljy5&C047(gpb&N1n_Y~rZBbQr1C5-s zZ21)4!;b*LcD&YnOai)!Z+{`RAAd)+DZ6@fFWYU=#fD9%Yz3(M6J*6}2eh6T#ovMQ zSQg6TnZx=ml2(Y<;-uLmuYddyrlvq$kuSBR=yWxI4m;=kpWuRpUT!$5;K zOw*8eyQDWNH1-YdR{Qi*TdiX6EbY{-y2+$M8Oyz2mpXG5t$JteYhj$mQp(qnK+t&_ zDG9HVWq~|BH8-MAL!sC{`TA?r3eUzj@f@R8IZXuwuDC1OALiFH$fgddPhw$ z#KaZ&^`=eu&2nhqk>%?*tDhWX{ez19C_OGJKB#-+EKN`z0_U`GGI&`KWa3me?oTM- zt`tq?r{b>q6gxO5>i^#h_NX`{=_(rhza8vRwpr4XDX%1(OUj>pivGpj1k2(8g)X$j zm-x}p5Z~ncfh|6d0DU4&?jwf=k;4Tk``{Vs6g-15^8625hL(&JF-G~8RUk(?VjmMA zLxGH8F{bFf@Uqy7kB|)UBQ9RbfIpxeJ_+r_t@t=}P@9;kO|S5E`Fhs~4kFvBe3-Sn zr6z7*>Ge)&Z$nvM)0>{!9OJGYe)0{c6yAYxe}l!}FsASpo+Q12KW5$?JMPYOd?)LE z3XH!GSMef1`(ePdH!$evVZ8FqbG-f_IENlfpLJ&Fu!33XM?w^PWP6vLrBp*<)cv)Kg`tz6s=BktkRC8V2h;#~+&ez_t$=WY^C#j{mN>V&`J*@q56B&fK< zQm1v#;)gxi%^hZy0Lmi#r6Efjv7WKB;tb^XaYI95{H-*hT(@V>bNi>uK{}@d{n#iE0?4IQ!NpYsJSoy~T zG_hC@GWbaX4!2p|2bPk7h~9A z9_=wbp-KOavxCD(qtB5hIBFWl^^`-#su(+NkrW*{#Z(R%dxNErpSrE&l#X)9SoSna zvFYUKxYHC^&QfNTbVn`Zlx=d#A(pa0PNCiLR%Y)HIn1n~rb8sJavfr=GmQ^G6*`8b zm+Kgo<6&6`QQVRj?I5xRykPKYin$s(3B0V;tfZnt#nzJ?+SbcCloh!^a%j0A=V+C)23PT8vIpw_9UdVmoaciJ`EW^i*`m5p)BF2>l0JIU{C z-b}%Pm7($EU6MDqWW`EjeSC{kv}mgCEwv`hBVDdqqw*)r`wnqPGn4O?TqaCo#89!7 z|1OKI$2iKg9>n|0cokya9W3axq->}`o@saoCX#9`C#8V2o2pPz@C%}j=p41u``9LH?=f48@)b+I?;Erru~~~Y?V2}B zSP&=&Xx&3<)hjhkw&N-c2OaCqJI9vfiP)>w3bQ(gcXGvM|AiV z5qy+{oE?bC0@zSx#Y_X4nt%;is*H$0qCrR{6JF%RZqvFY_Sd&p)Ov~+7rnU72TF75 zRB7vl4f$FQXTT4P`QRVT)z9E9g(wzE*Z;)3iV1ReB8XeCebqp-m(sfp`j7n(qi{~K z8<#FEg46JnZwGhbq_m2gfL(BX^+0S+H)i?~Z29x*rF@XuuJ|0^L%mlMH>wf~(Ip^F z+$fzqHY@VTxg=c^s8Ufbf~d8<{3g@nckIImKsX~DCS53yKol7`g6D7 ztokP3iyyB}RU!2*-c{{WoQF78bOd846;8fx4z=HU*tF}J(2Vwd?ObD2i2)~9q$Qdhw7abJPzYs+soC>Xshx$sg4rs+u_OCvji4e|D zgAvkXDmVSG70-W1-=%8YO9Yz3vxX50HYVATm@Pk+kQ(nkq@zhqsUA!M40~amyE86)yld8&F^@lw00l**Y#rO$_2F_R~x@s}a@Bg9?1 zhBH6n;7>T?+6{>RFzb3;{EZo~bmrCA*sC*Z;YCXGi#Vg`3!ZiEEJXcX1o4;fsZr0@ zEV~~U|6u9r=ZReBZ&Ou?j0fhbmh`~ELVNM#X~h6!PN-Ve#Peqq<-=fpJ`4qW^>cU% z_PC&wC8QD2*j(or8`3(Zt3*W{iY-M)bo$nycs6M8s1UvZjeh(S8wX0#6`cq+6Bb@j zenN8O91Qe$_O=QdbNz7N9ck?|rcbc38JC&a=?z|UK)3*rOvD{LVSZ;FgX&fB75y59 zx>KOe3vTguvYUgFtdzNI&8ebUb3}U3<>e|hXSrHT71-c66$=S3rP05wTd|_JND#Sz z-%vmpT|{cKl^e%217#1f297*k$&|DXr463rvtvrTjO+=mY{q3|IlTq%15j*(b0C6S zEMtad3^RWCLK@5{k7hEM+y=Q5evMzu{_#ka{QEjc-&}&0-_h^t0w7G&rRzW?)@8S)5qQ^$1 zyE36y-j_K<1=`12*GUzk*lTxt#^IBks&u=T0OI5gU;3`Bg)@a$|3EEtlh0YC0`VZL z;CJYMi<+SQ1;yc{HxA2Q+34cz$Qe2qX_jUpAHlCV6z^B<} zMgM_gU=LiE4bbKrzYbrNOz~Sh@%6A@lT$#*dBhgg+GUICZ(3Rav4UIib|L>a4JKRA zD||)W?UyyNt%PHD8&;*GUgNLKjtJ1@k>0H3Zhfb^ptK<7FK)po)Ta(X#dYI4DeFaeyn_e@mFA>F>M^bBu7c%WU~4azPS zfcz7;5eo9tw+`sPbsBt@?!Ltb)~trkZ+Ixa2Xn9<4i*dgEQ*YrK0gIC-z2VVcKULdc8w!m&V-(L zwIRYOkNMlhc|p3D>d`jwUK0w$f$1nCJ-fHU9t`q4q3j z3MY!!;S+_Uw*;)lH&0yKjbAVF%O7WISnu1^B)_B*}IZ$QCeyF)L2Y(*;%VE!=~`gUfa$<( zI1PKfi$`=tn~3 z_^$2u-BuLNS%d$A*2QL*U;!dJK#zH||q+P(x8zNN-9e&Cla8{>0zZK(Q5 zBI)8TDsyI)O6CD?Vkpa7>_%7i?`LgiFZ*5Q9XWm&IKrN%0FUtq{GI%pbY8Kq_;kqG z1^LfL0(8rHzjok`RZiU+ZGERQ$G9_oya&I>z8@aLDyVx6UuZn#>gZfB$lo*N?e@@` z4NSn!*uDV*I@rV{<_QKFRqzCE0POq=CR7JcbJm>;qm)DPhD59n@;{Vw4hq$|3VW$= z{;OP%lX%^oD|q`UuBm5or=D4%{tJAe5~tDwd;CS(qF*^|MZt(2`2C_8pp>Q7CrsEx z&HVHYnX1WB`;Ka5H09+6e;(@fo;76op(cXc_a@3~P4HQ8V0Ly7$t`ID`KvaKlgb=jRq)Vi#nrQR zFcpyDuN<{1EY;&0@)K~^oA~IKWl(KLXl}ffaoaoi^eM;7kPhwkZp8<$jauW`dv$8^ zsy-eomD$*F8yx?ZyB~Vpz6{O>It;R%3i_YCFL(Klm*V#L^A9}d1k{PYFgf|wl;kTD zQ?HJd?Zljz|EcPzA-e_V2@{ND>oDH5)H)1GPi&eVC+a_=M&Y@)R@Ds3P1pi|Yyen` zAMc3C9c;de?*skTj2*kw6~Hxj+?c!pWc5Ffo8cDfxysQkL%T7HFpP8eb{TBLb((c= zOv=6KS&t`4lB@> zU%<1_wsQG5Y2i8OEZX#o{Mk^A;rTiLT=cChzs_kbd?rLP{6E9zL$h-A=4jzdz#T27 zaLG$sFS`YUyJhYBeY)Jv->1v%mD4x_}3Yyt#tu!cq0b@ihplFJvoeX62TBAtKy*PdiYR#ak{7<$Gzc8RG^j#1> ze32)B*PKBMhE994IS4ZFr&F21!zMZcteoJP(HHQt&Cpm_wibU_vK7Bu(#1=Jm)<$v zUbDRXruP-b^__h>AszqN@NGb9=lBKAQ~bXhs9-1P&(%EkEB1&8sn}g0Fp1m=;=v8N zK&Yy@L+HO2iS;D+`fyCY)Cje1}0>l>NPJWdX8)V zd4osJ?SCm zy93P0*m)ShFYHhW`nd4Q_|~u#%nvLE{=g8t3do8)ZX!TxTAaB|?{wQio%%&X70@lf z7cYeIoJ@bv5&ZDb#+#v}2|*i5+aMBZSQ|JLL%#3Ua-EKMV^I!WqIr&|npAcscJxmT zy%ur{Sa6rYtDmKJ+<^;@O@6yGLJ2{J3+K&U2hcCe^Ww$y*#L9X$1SUh7gb&lHMbvz z25SJ?r`^isEuA9MU8kOnbR4~PWMEKCzs~-xW_H*V(Ay)*$20p}#IV!TyG$JJMD212 zdFL2;_8Qi5b{6`E@{Kp0mNLaWo1vx7oGr+Bre`4fD9+n2C_#sYf#2bs8FRX)4vgQo z^4_Gj`S|+KeeshgOdLmDUalItAB4qF1N>W$`_nw^0<gJNb!4~GKwqkl)d6BRIt_9+Rd$Y zef^fr!tKY;aIG%Q&3j7ueD3(u&=e4e*f=5xmEd5p`8D^V^V0qeCLCg0BG_d_M0 zNk@ip{PXHH!na49`d2L1j`A&~qg-by{6K4e0bdS7(UxDpv(Tt=`8R3dIcPfC^o#u2 z=sv^qbN;#LV7dG`TKEz$LDYp*y!2WTu0qIy8Oz$3XdXk%%&0B|d!!_B=&Y@+I2NXs z-Db_bj`ap-xh6%Y9l5w{)}fA00KWYqAN_3`Ji`y03I4?^Rp^#9ef+7z34!T#8noUS zJ@U=aoK8ti8#$ZSZU>e3Pq=#M&=*=b%ey(=YO8 zLv4oV=lpXKF3YcTS__{Eu?+vu@cCd{uHGCidIPQim4U3AsWl6B2E2mnWbChb7LsLjQ zbPy*=gJJcqS0mZk+82Mpf5p6K#%b^Q?xO7FldqutRRF;}__@?~G;T7=dFNds+8hq* zpc3%2swSsilUG6$QuLlqAZcU-lRx9IKhxG{C{^=ixTw1Dtr9h&CD5TNUv2I%JOUwY z?kx|T5cr64 z`RA6@V)>0I9y)|%_{@@74F9#C;PXrRF*+NvdULe!B_;86IF+m=aCeoyw!Kl91t%(5 zNZ`IIq=iS~xeOjn;FEO5YVj<>k6FD*1fHz=poM41coGOaU00=rXX2M=E#gq`l9ysn zCRelItyb2+TQ}o0&+391XicN)Q)k4AofA*k;#*VO)_0Hh@857($K3#3;f1+Pn@Tlx z8kr9$isJ_T>4)>GWu)_N;F06!Q@IAzt!lDwN73gVJ$b;dRF$fUeWm$oQ&RN`>9Jx4 zsoIQ5yS&!Ps*Q<8a%ADnK_ipN+k}!C&@ua6YwFztDO_6boiaSfZFl~q8!zyoHS59l zQutZ?_0s7DS0mSNS$=*ifcq4$lWuML_#DG;B*<6Z#t&_6L!4vdZ-if(yXfiIy6S>I z`>hxXms#t_uVwWXz#Nz+j-yY7exKZhF3O5$**uGQ(RsA6{NH3GCvI-&R?8Z*Dc z24ykEG-n&m+QC@9gVNrf7;Re%&CYHqS=}3Q@Vmns3MV$)R?B(JpivneI%UU?%y3i? zjDg?4ef^mG_~u6QyLkJ4A}8%1*<<14eklbb%`;z2OS>_;h(2+%%GqE~m3OM9XzefH z%V80lOcON3mco@7pDpI8qKKqctf7sN<3U--LLED`Fj=a!*Q_*0mwJ5H{a`c)ugppg zpXV`PXZHFXT{e$B*4@!1@Bx09u@;Emq}llW;YG_v-CNLP%Vc%5X4jhRTBSBeD=s}Q)h|6Ikvl{UA88NfuZDIH z>valnk2w^x9G}1Q7@x?4gif=QV$&S~95drb&Fm~hs_${P>RbYsBYJKFYc^Q_Cf)on zK6dytcz&xh?(*2Nm&etKJ27h132rdH2@Mg4+=%d#B_cV-RE0req!}cNtfC`u4??Uu zS~c!ayJe@OUZ-w}2;T0I}U9dvCNBa)U^?KHFj?5u?GLxgTLc_AR@I>+|;%+Ur$K{CGau*zv8FUSL4F_ zw( zXv;6)S!i^*{F}7!95e%M`bGY1^nl^{IsaUAs4TzEX)Syv+tU9DpO5}7S8t9Mz64Cs zVl7<16fQ<-Lb=Isq~%Ve1JYt2tHrViO)Q7~gBG4q9*eF@3(rL9WK9ONfj97;2Nz-IkQFfDX0=(6y$4_) z_$=d(vSUm0;Cpx`{(>K4&)2*Fe)JMXYIOG9(422Mp8F2&>eFG_flCpq z@s+pJHbWd(b637a(+5`)k4VLo?3p(#krTk}kPGqu}y*CD>NzgD zaGVoxwTF1$mR%4G!c~|^w6w=w#cG_pYYTLL2rnh|@e2ue7mj)d%90Wdoot3K(acbO z2&$xoZ((pYL;2Ha?JwZVd3&_w7w{~ud%66ZwD26xA8q9e679>fdYN|SqO$h=K3#6-@6+Y>%ITZ_koxuyI7gtYwrpe>id^(|NK!#~Qg zbo!DfEfeR8NVY<=qi#{D8lG6@E}DF$SF|FZcB2SP8r9;fK%&&TmtTt(jav2TDYb&p zJSnLUpQL4bwl@k5w^N)d+L&|1rLk?Rrf#RQ6}^i(JB|!)ux&Ss%l=qwu4+wW*A}Ec zx+;?YHuCEi+xyvTF{*EGYG3B|jV+#vY2&)&Jy?)m7-wkU48rEaP=EC{y!YV)yn8$3 zKvu&3OsQnVih*7$qWh->wBk;vTEA{Fi`mOmN0v;_ppHPLAtn`Rb44}jI zg`;(m&0QACBuQ&*bn4#|rczkevy8q{}Cj( zr>SjXIl~NLn=~BfiU{8=Uu@&wtKBA43)jNrvYX$92rO35PYT3E5d8Hn>QollOrOs zdAx{Q0+rV80CD=_Nxri@SKw#6w&GW-V6|t!&|!{)YyraD2MiB(OFI=6adg7im6rMn z|J<;w3sK<(vS0hpB4Ygnl$rDgXT}YMIJ`nygfqY&UJIs0NH8mYC2H;w3Y2wK`p8N+ zOnZtx@v!D`!rhX^098P$zZ#5U3z2DsR$wN1@0xf;k?^Y2pR_Uofb6uo^ z%=vqi*qW3yl2y0Z{L;L{Gl{xPkrR?(*+&?9YT}zE8H2JsAo|=iX=y3`*7z9L1&nj? zvqM?M`&s}pkILyAzT8_nsHss+YNPGIhT^L2&b_>K8>AIZr-fe6k)D9pCB57kV==y=;aJ>wCv!ANQi3+;gsg>geOke z1^aCknMPm{`iVC{gQ+W?Gu|K@UVghZkhPjcOApSjeP8?9Vof0sufRR3>2w*rYYa59 zAAf5(x0dwXO>A%kzu4tXn%$dppDAnhDY@G&mn>%RJ4)wra9+`&q(HN}C^wab3z99? zE#>A2&EO2wlV(fOaUMYR@t-x7q2RF$E= zt~es9@2{F66^P%;HG>njmd+ybz=6u^#P3rW;FVGyEh>;@69FAziabrGQbL9(oN!gV zLLl{El1aFU6lA;ns=O^LTbrYX$W9)P?Ae4piP#wMR3StoSOZ;&1o`C0lc6RrPkby5 zQm_ucJU3#*IjFYI&8=zEz}X=-KAYii+!|-o{)3 z%dK0X-qn~N7oi^i+C5|E&}mPm;=5w2n5+2i)~)#7l^CJ`l1{)+r>RZps!VuKcNhzK zRVM$9YSVqUjQ{rJ2FaQSPq=_PLJC+xV;GNH<3G&XUsZtrKS1k)y# z=kZ0Jv|swl=}HI(bX~F~B=N#n(lHHGm2HQ)*K_u44PCLQS+zwkW^B1tUKZRm?iC4q zm&PC$*uEoo{JA$cw|EHnb3P&}){_KyFCxZwjuv5k$kRggNp6q}aWf$ZFXh`7eW2yi zrK!sIMX0P8LgYNom2(zlKpIXCM_NxZii3F7-ga|V_r>S&BJk-xJv{N2W<*J@_*RXE z)xZR-ID}D1qC*QdSE?v$5R6s?zhj(Srt$BV+{-zL~MUlyBxJN)zKUlnz!Dy@Sx9}RABAw&T@8kX3wn4Z1 z_n_PM?RfvaiFv(y=S`fnrg!f(d0w63 z!-*3gW@J8`sF9i!3q;vAfawO)a2NCs`MO>skO|%Kp0Q~FDWl*NZo3D6nK2s-4seT# zF2F_z#eIdsI8V=L{5|g4^qf1Rix6+De#=&uM8$k2Mpf5}n9O#yoQO%jFb9!#!!oX@VzHx(u|87-e5uM|knCHdMFFW_(aXMSsL^dyzVD-52 z=-EHvFIe^(!p^rFcV>F_&}=s@@#6R*Yt8=7MM1-P_~spt1G{E7R5ys6>6e(-Uz%0A z?X%~U$BLb-zv^kGU42DG4|@&@v7!q;eyWr$DA->j<&;ZS81fl^T$NTwZI4kVn4@N<+L8cX>#=r7*Do=X`pG^NwZ%Y-k(c5Vku$ z?NUO3YtMi!(Btrfix7C1oMRO8iCW~g$CvP)!{@;N&eDBgy#ZeleHR5Uopg87n2Ted zPg}n{^~L-z*@Ph}*jc$={0~MrLa@5FvQbUEE)rCl?N_rZ7i;&BayxNn62apNX{-`8 zlh0}{6pZ*1wlW}m8j~j#Gnx2u zc8?C!0gDwXU5m_k*HvJrcWHH8o)@$mGN$8^xSJaW@4>6Te!$C5svuGow?B^DZ2Gty(cr#|>p$-|GSVdx9$tnv*EIXmt9n&=$jta8bt(H-LZt}L346m(Y* ztEjXG8s;nq6x0Bf%KQqt>(Wm?oW+u~i(3SzV3M@6GM>R37uyQwi)~e?_}V6+u((jL zDz*as;sU|G?xROI?$INHb3eg8MrF>hTWYK^fPRdKHEDfEB4Jx;f*UC7%WqoZkRm_D zDjZh)PB6k&b;OV{_&9m35(R8q^V%;1_rUR2zj~(O-x|NeC&Ym-AR*QL08--hNt1m!=KH zmxP9?Yx)56SveL*;px2a9$YtU!n+O>FXMS=*>_fO-~w;z;bQ~7xAOpgvV1-@%puL_ zO&U}vcO%`vl@<={!^^fSrKT%JWM7a?Oi9&>`$0v2x(ic>7SC`OJ7l&<%JG`>G&S|< z9Iu>Fji-m>R|`uJj(_+NG5{?DBSo9**Kx?LTl^t>!^*kE5`6T_7kq4Cv+kDohJOGx zG<60SxFv-mp32LL8*T?tQolD z6rS1}8mXb@>LgrrtumLWb}2sZB38ylApZEmyWa0NZ^(juV7CZAKez@Ltu+_aKMYj} ze-%I^wZC$D9e< zaTaIw89FW@jMZs~_f={a(tXh6MjmZI=#vrF#y9Wr)Llh6wP1je`^X;75gnSlHde=N z51kKso8N$Gaj`o89E3M_Yg)_RsGZrku-G$WxzAuXd|AIfIf2w+&T9OajG613VYGFN zJ}td_Hto_}zm0LX&}rVWJI8g7IiJ>|dr+&!y;`>G_($cAwPW++XI_sjJcZwaF*p}Z z?bVZN6g=0dHTVz>^R@~hRd1QU^cr4XhRXA*{P+j#cn|>MB>)Rnu@1 zp22*4FrKw)lCeWtYCC0!1kyVp>sK z#VK`^rQkId|J9_0Ay-pe4)qV71k>4gX}{ENT}JnWbH!NTiZR#<)78@_pXwM@$urJ@ zpRgbFW=_ZJ0-{@Xo`6>o#~9gv{)zYso|CF-92EooSZG@7qwM_skg{`;9gfp@Q^Il5 zJ$-%?5!-u_kI0rjKhmOmWZn6!GG`{DwV5~Za<|t?Dp_lssh1w%p$@XPr4o{?0WI&8 zpED*4c#>*5)Vy;Z%;x|!b#I9;*mMAx%#Hc+Ml_)x^>@4 zuUdxx6kjHUEqgyH=Gx3o2}7*=HxGB}A1Wn)j?^0jbz|UOb{ZFE(Y4hWr=algl>MJ# z5l=lUs2a;0Fe=yS2C^#yurW|I{;pDfC!Zd8m%6P!&IC99xRJt`aKPit8DTN$+1R2i z6)MV9#4!^>q}bP*z1VLx#RFDN4v}AUkvgVNs$cUwe3;0Vht?$Cn^Ohq ze#Jj<%B2#x30=QK8W?1U>?)c^t?RK`xl%{d(xwOjSdxEA0E_bEIdY^=xC*<2siC+- z{c;j-{E+?R9^iC+&yK0K z9}}i_``0u*RZb=2+nCv7@>W_y4>|gmse^*jDDSY0Mm??qiKb$4tiDT&(3x%=-U~gd znug8n+dgIso@?qqVVU>RqU`LVrCzzIer6C+Z|P(FW-I zOolA?#?u7!q*rwN+Ar$)rVnb7i;w>G7e2PAx!*LO`b)p9A6T~kdgp)Fn8J%!v{RhL zJ6Dj8)*C^(x&?n(-2(3tgQY2WhGNGxoO0fr{t!BW1NE^co+X7tq$7HfI#fHTBN|E_ zJ!p(1nQIC`DH{PADyc#O7?^5qXjzOPp4g{0;ZYyAEwEoY-gw)apKFP+X>?V|L=mbVr3bG};PnFAP2pUG~-K z)DjwXc3*(s;_O?2_yq3qO2_>Bjezab`(0bN<)rVlsebsz;Muc+fot#3wxd^PW!je` ziiCI2V}0@+{9sKps`|DN%=V7#K7V4Lq=He+#y!lObSb)MCF0PYlK!f%;zPu1=AA}j zm(|wFjUhA5FH;JW`H-Z3i=Xn<8sH`A5zfiI@LU+IS2tm4P|opI`W6$m4WD!~70+=V z={RAk`0#t2GE;qD-I>2OV|=%%p=x&#U2HehY0B`9QC;KkMRgPYW=Op462wvW?<#UV zjjCvLz3L!VBipGxT|1sGj?QVLKt<@t5Oz+&?Gj;Q+t|EG|pCJdW)<1QYC zpI?JY<3{76tH<%371gRy-$k0UBWH!C$tsPnq(w~BMB*_WjbB>}jV6{2Wsc_Mx9sT` zEaW%ha{dDN_N&yddHwrfJv(s4;K;Kn3vt04Y!BH5+kNt4@lY5MxX^peDm+bdEm2eXe9r!{-~XOKuJx*G ztE8vohdSZk(5ajcVVHfsg_ZvGU#VtG^lkA7GicB>#|`i{yam@Uf;Ny0Bfmhe zb$BwK^*7$O4gp#~c=WBz38N(#0RIhVRmK(|G0|uqz6kxH2g$k~A(1#&qcSq#ocxw1 z+ai_PPjgD@PIMP{ddSqSUJHXm=l8=)w?Uh87oqh=uY0HQQhp3n=JpOwpJ+2hXO6MIDn(>;|DxjqE++hz}3QC z`40b<4i&-$VE^suzaVE$$rEu3>2(X#is@5YaYp*`ywF@$aXi~~H2Rf1qfu5{s?G7M zX5*I+CqXoEKC|a2G~Q#1XPa-Fbp09VwOo8MY6twW7GNLV@gOpPFhJ1y$Ud22?Er%F z%^~y|jD;GYgvC&6?tJ`XbwU=Njt_c`>z0qN9xK3y_dwI(JEEhug*irM_X*z-fdIu5 z3SVlblZAYN3BV6kS5d^O7m5eyjpXqk9T3m1ZKklv)Esrx^s)n0{<33Xwkm4OXd30f zj_C9W!PKbYSAO~fyyiGS%<;rr@@pH|pFRn8+fOb^JQ{lfue%?+J^&zOLu6Eb2tdGw zxPY1c0s77w6g0aJK)>1Mb3u`pdTXY!o~4wR`#n4Rdv2a&sb@U%R%#wDo(r|zX9NV# z^Yok-9FXn7ukJO~+iS9m%VaO_DQ<{E3rRyVRkby}1ExffH87NY8)}A(VQC~(>r(Gm zbk;hOuU1z4*x6u4dS~Pnd~5G9e0`4zMAF`QuIU{7XbtRzUJoKRhCt9d(lx`{k#?v^ z*F3?K@Jsw12jRza=aV6nlnpW9;x)c&J~TOc20HG=SB7nmiX>e#V!HdVZ4t~fS0Pzk zYcrp@7F7EUtikF(EwMu3e2JR@r~lJJtF-nl(hJ3lpa|}QJM@NI-+$nSngzEQ+Q68y z1^26F!CivfspjpU@4r-RMt5dkVVnoU>Cp1&HQp^s^h}kGY*@D3g z4StF;yn=H`41yal219+1M*E@u+THl*xzl+65g6{hG;C90N+^ygGtpxm-_fDB|p6tQRl#J(;9sK8YM(><=$7)TMtdn zv#Li#ZwO|l$cxB^ev%L%D)bc8U)ffK6jdoh6;(kK(ftD(K9SNzx#eZpLEA>>~Nsv-E0pk;ZyKT&t>0 zzE`h>7=?x6N%p-4qmZgQK4%oxggU6S#A1fgoMBiXAI3yQEfxL#ULKgDqP83T{+#?7 z!)pA)6EPh#$~!QL5ISUOofP;=!77SN0($T7E+Q1<>{Xh#jp>DfyZ_}W+S zm6f5}6Cm89--w`2Ar3u9cjJ%ZMD=6u)x*+0tyuAL+>8_)JjAQ-oWW5ywuFI$=hR-+ znpBIx4{FZ`er58Z6&~Mg<9c^a=n(ACB|WEK@j`x9Sizl?na?JrTpK&{nLqy1b)H?H zN$w$g0G1rXk50BTsA~}Hhd6Yz1wK^gsBdbjulK|bAu3el zqsaUAI>pZ?CB>)1;C3Y?6oKL^mG(6*X%#K`AqY{#QW2Le>dT19eKOBbS~B$ZTs$6I z2RbkJo;cClH?{p>sYsE>MW^~!z^l5aGS}j@lkrB9`smQIWXisFWco3gt%7{SXs0v6 zgs;#VW9Tx*yF*ZG*RgIr#`ja;#fr^fL3DmCSGuJ6^%>d{mikPX;6q!=`PA5XW1@qV z@5t`%aZVkQ0}cU7N&B`gW=Ez&tB9GyYe+N7Gl39QDTWbiry*9MMo0r!Wt4-rq;RS{ zAzfEwi%Pi>CQM_w!qb$-_KkcY?Xxo~&pG}jZAANEO(XgXFj%n}KiGU2-=mG_JEW`; zgZX(icHErMnl&Q6V~1q_LnWjQYvZ=dZ79cZ#FsLbnPs<#E!m}%cX9`pqHDmOZXNnQ)a8djP4-M(~up{Hoh;LQOm}8B~5lR@i z1wUjAWQ2l#SNz;aR1n^zruuXUX)n#FmVA0qyKZY^JvF43q)sa$`n>#r_Q9k5tEsp0 z?g+pbyYYXk+OpBEZ)jv8>e4GGBFk|c7!%25K(9$b4ue(>!5dDV=DWZsE*>g{;751^ zp0({Au7QIlK_!lcP8viIIh7*fcnkX)WPDRwFGEA#>GVmw!EGW#1Oq4{oGxYHzeAul zctX_HckmpRO~QXm83@20y9qi3Q8`caV9#B}(_j>K(|Lzqe|N-h5U0(@m%hXBa&AEf z>)z88;0y3yP^D<1wiuwEgwEO((et&XrUdykRokydV4^$*rihdC$>__gWcGxw_cZyr zgHQ$kr5LL%#Up>2C}Y$RHKq68RH2jV-N-)G^f(s%n69^W)KLR_x1n_Sub(nt)!VrV z9)2u{nkU{` zhnHk*ZWEf;3-1X_>&&+S54;8OjQ($Blz<6Slwbl54dhK|0!jciZ7`uEu^S@B#&6|G zk?K?+h0n*wc~?RTrlf#L=d>_z?nOuuK2lOjG^DtJb68p@^=Z5XJgDO~>6q>$~vAy zG1pOi5}V;In*g>zUw8=)P#;c0o8`7+Z!8a;?_asH+4y}iNtYJ%_gi!#EaK33eLXOP z9!?%1O#yuKUf}1;{>GWb<0k_LW534~ZfZWj@v3xs{QS<)b?%txCH=ZAkdAGDo^Tgh zL1TCX1NUsh$FcXf4fxXA3{lZyXwUW`4hk`JHwdejf87+KSGAsNlW4VbPrvb?b7?)8 zT*-2tgWuz6PyV9!CzI;6FvNA*Tk(TKPRyFRssE7eF)?SymXv^Ti7uIxUpXZW{fwwm z`5*#uVvzP42-uhC3OWqZLC({Y17XBm=(pXtWx@C4GOT{2}mwYIsYrTXV5N^P-iSZ#bu!*q|Ael{tMH$Wr=9{}yi1 zzmbS`5Xob>xJa7Q2?cqNX0Dg)9HO1$7tO`WD=Kht(QUpHE<){L`M(E@akcSk(Ez`|m=~OXy z8Q!9s^Z8bl28e@NIE5Q5^A~}vz6-UW2i{9RoSnL-PKw%{-}=vbxT8`8bl`IEd7YfE z^oV<$J0ke=uS@F@{MAGF*HrJQq@*;B6BT`!rZM7;`?xwZ z_|6`%dzlI1u3aEz;=9rwd{>xJOieHE6GV5lh**wldYQOr*DhR?$uI#}!7`z{a0K!4pt0iXs2>VP)DP(};KK!fVNUsBAj~Q4B0gM^ zBFrHZocib3pn)g@8Ki$1q!MC~0U8MKoU;(C*h3%#3FLAGh?fj$O=@*yrMzXxSk6fZ zQXC-=9}NVZfjz|9!I?mOWypO3xyvAaaw#h=TIjBrK_LDVf&k4?q;QTZ7o^K9;x+N0 z%uMEViFaAs&K(pf=e-VZXcy^yH0~nF+*RQK?^K9p1{34bfFba%OPuRkhrTLw-s|9o z4w3ziCS4@8_aK=+vIEj^$}F@@p$9uusFZWC1HV-vNsps}7D*bvo1GCNm>3+v@k~4> z)Cp}=E(AV|!G}RH6ORcY{BuT#Nd;0Y{z(;Iy-S?STKfvrRiLvIcHo}?B0L#UBK@GX zcE%3y8fbmPOYjd$`(mMpbJWmIeK0O|2A{P;5ihEXNOqDaBrxJ*7?CktYlJj#ag!Eq z&EPCuh%QZ6J^x3#HA`pt#I@+B%E6Mi;2ewAf)A~|Lfr|hOv2A~Gq^Q_vvh_V&$vM@*feWdk z*Q0l}FM2JTsgzJHY8)=U+p)tH5T`^lZ@90ycvyxiGru7YRxJL89tR72Cjd_xg%cPL}6Bx@6aI3j^ z!IvY)g`aRic2%H(RwC}?x?(Oo`Gu@(tPhp>%a3j>W@#i!wYI0Aei z1*hOV$hpgT8FPVBjxpy&1z1ujv9yo_SeO92eanRu@WByyA9RNtoOhRtFqYN|=cTpA zv|@Bu@sgCWQlztSlFkJ)qH_uSA%kZycm@~7c1|U#FAfszG={C@pM!}t`AHUAwQZ$J z{CRE()Zr5G5ZCKOHI{G z@z8ec5B@m53Qg4`G*G`(p<}zy4)jmo35b{ZUq|MN+%Wm0lzVSCwAFCGHCW@@c$UBy zOQb1x(RDFXFVufTkvE01pkQ` zMflONLF=PB_O@1JWG$lMnYUGd%%l)H88|C4847UvJ5qW!DSefWaBvofid*E;KaFs3t~kW`5YbmyQhtaFOG<}0v=*bp zO){Qe4RL5q#yI(t0N5A@1sUVT{}0BvFc)8gCgsO?`@xPrO<;_&7Y8ZnnRGsB z>JzeR-i5Vdrszc=3uxmBFdM%R z`oDb}fz9D5f)b1$C>kOrW-yJVhDF!Oz_nltJrZ?Q=qHY<@ghF9C`S`+2_soGI)wO> zx~RNXUK3bb;u6l{V~XY|!i(l8ul@Z|S6@<73*BNLcJkm*h!7~eR9=wpu85bg(%|IW z1ZQXI5v&9!Sb+=iZ4-P)*(zLGz(=ZQbJ@~J1n4}UqL9M`fsw+xetic8Z^PF&Qz*zY zFgMW*=O{5aKg#+a758ebRwMG zh!A!{0!oLw{eM8Cmj1WyZc*+g@uLHlSRPAuaX4UR z8|E!l))f26uEN1W^C(K5))BdUGDNg7$k5D`Ljq46^cYfQBibC1QxbhVfxEH@6uB9% z7Z~7I26Kb@XY}ir(LX5N0L%<#Kh4O+#fv!mLY#{4tp->PbzxlL9T*Q5s{mHv`#9y! z5-`3L5Am1r`z4F<`^yRBPcRZtE+`fyUYy+<|dm zNg8$!Pq=djPr&z9LF0r=V6>Q`OGvm(oDMI-?=C0&qS?l>uXu|J4{S;c%}f2iZMM>J z5iZWncsiRlG$T;c?7(@H2@76lQ0k?E|2xgb#kAS|Bl=|yAUHM6#>K^*|EJB?j$0#S ztx+(tU`tT>G5fE^Yd(05m_0xC&9x?-otjK?{+9zaJ0@=W)GiKo-KAC7`IiHfWUM$q z6)0L!M~qgLx*(Y=jGWuwe1AZxJBRC)Foh$w-;YpaO&g& ze0k3rMfEXJ&0APEs@qVvvOz+>kXV3(Si44GX>HL^RoO7XD|D2SQCg024KI{)qm&2uL0TFZo*>HV`w>k*&V8yZ(_8vaIuv^k9N0TO zty|}jaq$VAI;W*04y_X0gdr+D7L)ED_j^Cv|8kQj7fzT^DF1XE(xJl;NAk1%P{A$r z&g4mVQd93tntUe}Q2QYr9f!1UPf~}{Gx2SHj}WB%h)gt^@|r6{YmFpgV9Z)*WFohb zR>^#3v*z>N-TV6v`Rl{UJrDJ&{itf>cy4rb?*VP%-K+hvDtqnD_n(DjaBYBZ_s)iy zyAB`39v#LyH6H<|mie`J=w#zkcSV=+8?qLxCM4|OcM0PO2~2CyNYhB9>Cn2!NK>(F zx4L6gA(57SUf!Y-Z=d3=J4rv#)1KK9G<*b1QkA{i(0|=GtE+4t%IQ|goIWStBF2x8=+r5UK-zC{|i-ICzsPB1%6pvN17aKB& zwAR4vWTptk9tjWdg{4cu<^gB52kgYVYV$QoXF&S_?Mx0E zb&py^Qu`Y!x^Ik{dNX93JAu`sT&;a(b zY)Th!(nyW+yw-4x{AYRvn!a-6cvn5>G8{Z{FC%s8KCn zsJeA67!zxVyWz*0owx ztKPDv{jjdfp=w_8ts5RQ@%C0 zi{p;KS7;-i{*DB5sS3U+m}3?ikYJfyazI%{?8?;C$$89-oI2qb4}v_^$ZN(ai4G}M zu>2Gunn$RQti}%ulK_$mq0Z_RQ0sOwK=N(;WQE_#u|3G27m@?>#&rW2eYq>iA68U3 zxe)$XwUTC}*;cN?j|!8)qsQ31fUy^nq5GKC{^KqsBaVhf7J0^Ey2Ju~^)#|H0^sRI z;c%`6=yk^PAi8HK#4@x-doRo8EEI5nC_2 zk(G_A3c4K~+c^@7#_;b2Z=L=`*sQ17MoJAujO8E_mL|NsMQRq+F<_uF>K5xAb8uwT zfrS2XE=HC3_~FhWHX|dQLu>`4=#M$;{_PUpY+U~~sZBrYaTwCA$FM3ORQ|-jO?$t1@%yxE z8+ru0W(0*~_8ib}<8|t^m^7zRX>)*Zk*#~$#odeuI>6ddI`@S}_)8VTuCdilWzHcj%)bnl%ZH^`7Q z$g-j=Q{HQXnJi?`rz@`0l1E9&_vTEzm8#C?`q>9|>^ih9Oo(XV(N+)F`NF?VeYPjd6}=|Xj8nGa*2x(nlYMNFsiK`G)uzI>|%-+Oeia- z7RYrt^Txc$XlUS|u~iJ6%EIqckSDS`840*NdVE&n$n5h6@U(uzb}$rWw_%pygrmb$1Gt?Smc zwAQetyh33t7!>RfYw3fok+O&V)b>6;?H#?nRjByVrlnjV51rZyt34gt4;bE;RiSUn*XyN>a$;l7ryM(lA73|uR{2a``o%}90_uXX8&+GlNy?ti% z??1!GJDbL#isMp*KBNv)Eo**W+zcu%ZgHSj$*6m**T{o0WN{l9+rvmD#)X$IZd{5Y zWj$Hj;@@mq_cocVZPEiiB|V=kZj(3mN@w#bMQFt8tIs6jUrZ-p6_sCpKI#~|#Pmxz z$d;ej?uJ#MGXBb@kj-Ga{%|RrMWcT9NpIKF1*pIEdW@#6^GNsd$@J)*q3I7^rJ_el zx%Vq92r;0mTXTwM<1XfXO9qo%G7 zEv;JWTh*ExGk9+Qycx!wI<{+G-&U_)?VOm|>#6x-BmNV&MD?X?L35CuO*@z|T`)T? zQ_7tV2KG%%>Q`=3y@!3ye!8T6QTJ%ySmZ7#tAZkZ0c8UJMbK9v?Vz-?WTb0-SMvZ> zagmPYviSLj!64MbB}K8Fb5oi*#|6mOCCDmXJEWacP$v?>nsBk{EYY)s=8gE zg?n*3q~6>%HIgrJTao_5a*SsqQl22-$xrY+aTIFdt6+m)oI8)7LMwbzh43thk}&2V z1TO*1ag=5*hS6+Lx|FjR>5LR=-`}B+S%==kjg43fbPJ&#j%c)pi!s)@X;$6EPN+c@ z9E#HtatWs4gpy+#N{sA?JW8$g$&JWxkgy4Fhb`cvfbzIF)%~5)0@Yn=kiiFc=E{24cA*sP^#Z}^Y?d67=8eS38Cy3nsnr@kIe;Vb?8a)To#>Fesxiygiy zfUwt>G%r_mUba}XlP%Uv6wJ`Wmuq(*8qek%;$A$6!qr0l4}2Y0*SUWcOapmO#-9Yz zhyesa-Jcu5WKAOr6WLHqCVf!Gom390D#myZnLIVjaim32H@>yBv7WAFmRItz=#(e? z$AG+uE(2nHd`303Zo*A}jPEwkC8l(^SJg>7{5z8O$N{- zoyX7B^ex$!kQ_sLxfW`I+G@9<^49^ZYk#>Z8L_WgsVH>*n<>jDMx-U(m^$rxQrfW5 z8>YRR*Dbt*V?>v(!#bo4Z|7?h?cLVbHlF|JlN%bo*+^wPFLclxPtUmlq4SJY1{+6& z=K2&g>eZ@M?`F+Tgg*L4Gf@`iSDID(!lQAL++~17}+r`xwN%0 zxyUI#f94*Fiys#^pmW%gWN9F0v7>jZWJe|$6x_qd!mYl+$|LeCpM0~- zq1V!WezD-nC#ciG`Na!@YqesQ&`BJHc+EB?bW#r%M?HH+Q0x+p2+fo(429Oq$u2%o zJ(W)sL!UmyzE7W)l%TFSlmC;;=ah=G2o)_OkTH0=;LU#_kOB&!X9=7s0GI#&@Nk4P ze|0z_6}piM8?g${%OubW4H;1vWJm+NjJqh<5y(Xu;wBji%~+mGG9(5s6KXO%mu1Kh zybN-LP6YC&22yfGstdCi%1y<90%2D!nQ#4(y%a{2!c z1xK9uTfvdk8Yk5e`mkDWm2!bV8ZpT2GRk-rw~0Usx|5n^Gg7?1MZY$D9l^EoK3~5C; zff?kX45=p>%B3F3kl`fHF$Q@oLxS*RVL3mBK%SK4;nwmI1oBjdM3LH^Se|DxBoxmO zq8Q}44Dls-a#^VtG9-cI8NeVfWr!bvjNm5_$SWD*N=hM?=XEI_k|%~?ej`JI2_&AC zdMiV=Ny*$X!H_`S$q+jN>B=DQWynP-g}W-46UYY{Vo4wk804c2S&d(lxe-VppGqM_ z4(tSG1oBxP=etS*g=X;Tm+J~BH0uh<*1zPX&{FWw$Y6@PzmdT@zra60=h<`6!QY;T zj~yF6eEhg-(3l2o1uI;Lzv55$=9R5GH*Vd$dHZ$*$O|DZRB&Pj)1?wvm+ z_3w5TA3;Dpm+`kr-8B%hu>c&Y z(xIzczn-g)pPu11G1YaFF4gw+DfuXH1Y=XumfwqAmj4vHnxy}k03dL&{e4Cy4U3N- zI5McOTMYM&8+Cf@xI^J7L({U7uIUe)JIJAnYuk3N2b|kDxO8(EG^<~~%z?h6^>p>7 z3?4L_o*DZfBs3=tXF``lnb2kDKz4^d9Bdkb4{*0}wD4h90e1wy$NtKTyZ-X!J~NIC zEBVO3C#CDk^xOPH;wmo&arIMA#qd8Au|0i8jSjF4Gk?~edn>)HBi5bh7PVza+(muQ zxqwXzGaqwFaHeypSC6usA6#ApuEDXCWZk2nyv-zjeJbTpO+WKwI z>^t_+yzTFeuzpCF#0k0$*98$X`?yOP-eX34w;j}$;}Z2-kG(YS04Sy&O1EvDKg-#} zciE8Wjf2k&?d2NUtal6NCe|%N1Ma!DZPTk)o3^fm zkpl>Ux{Q%cN+m0fE!Q@`7pz!_SFVn~hLd|<6HW$q8=a!lc-3HH%^!0qy=`FYcweVL zd*DV3{acT_G`q!^U~2tw)0%BM{&&2nmN&8cigyA>S1# z#YHLfd5f$L{qY>K=SiGWBzqp-NFZK#BNxiOBak{WBnWThZ?ilWGQBkZuIBnLw6dTW%5`Mka(Bzuxd4 z|J#B?`7MwIN99EOL?&t&PZkjsTSVahg++w__`6kv)=n58s`}I3mTT`!n3SvGrP0r` zT0ru=relDWq|CIYCFvL-5M73=0mH?i*}@9GP`S9Gcnt-&q)&VgVFgztiC}c?8mV-) zVmkndKz6@hC{8IAulYjtUU3RZ;m}F}^99Ow6}Q2aytVo^Z!HeHas|)1dX*Y)@QK_c z)t=HbiH*qorP0NZTQ)lBQ-{#@Z9<(sjf)qnoq=ANoo-|Ggk)TDzk4?HA*EZ8(#D$7 zV9YVCc5)t}oHyi*6O(E2c7r>9N*XOzJBBx9b}j@VWgKvKx@F_2@=(myGGqXO=(17`N-0E0=eUYS*J;StrqO!Ew&(~V)KP(mrk8xw zZK85wa7`|P3lUnyh6u^!hyJ3xrJ^-U_d!UvyGoy>OALdhXv%^NwnwaG1php_{AX6) zk(IA6&Sd4?No7~%bWORo-&ku)KI$yjz`4t;oD(Z&tyow}x6X%O&}B_UKe^sxzo^$* zJfNYQq+cwho29px(@!%WU~fxKs|KmsAOrT!+!2w*4YV6s>BVyW3fdk2Eu9A&5Twv! z>C=yd3_hBfc`O7Jy#j+=x(^QMUG#d$vGlB?!6C;ovW^Z0WzWDsm+m2hdJ)5;qM{T? zi5PW;*tsRrUrA@4M7U3y=n>&Dc`|=1BJs>>aq!j4m>QnTGBV=C zq~u+LZw32$`w#N<3j7}RYYt?Uav*MBRMft>h}iv6QTrc6^p213O@HkB4V*9h&z#Yr zoT-xX6K6)E@o3`z_uPU1R-SP$`qYH6+XDl)kDYL81mm8sk9Q!f3feJd;=!Sz2PTZ& z8FDMc$H(tKaZlBiWiPdNSBtj(ri65gv0Ff0OP*Hh$^;*( z>PHrjGRL?UI-Cvs`=fN8w1*48vqSMLjA0j4g*`ZlNm1h8KXeE5=@{(jvMXyr!i5PZ zKNv%$szGkOLY%tML-ygLw-w9w?Zbh5n0mf|)Z`x}jw}2Z2XB{>FO|H>>xq@(oMxRA zy0djsrF4Nnmj1R<(l63EIlU`Mw_xdK<@7-`UGY^}r!-x6YlU=2R$dhELm&dKwpbtp zs%EpD)5wB+e+a?&f>;1&u><1JATd`sN|te6`=&uNIYK*d#+j0#1l{p*F&9?g0Qx}y zi^Kx{o{W!V<}Tt35b{9A2S6OQa>rCza&vX zih$>-4{0#rH=QGn%pe(RLXx-#Pzlnb_P2U80)@DrFs%oxnCT4G=Cn^zOsNPK-q|yy zQ(&Lo&D(T=o3JO%IoQRum0eeHzhYZK z94s_fJ^oNtx^+VWsNx+l+*hT)`S$J2&LgAA@H$7z#1K(I6r)5^3~dn$xqhk;RH-7* zVZy-VF`k~u$zow_pT4oNefz{x8wqg@@2S)MKUr!k+02FFpr!u)OM`-P$sp!hepK1Nudbqc1>+Y@^w<)>r6c3LneaX+|;NH5m2mA5UFfcM=zNqcEYUj>D2b_kV z;mN9m5|T@gT5;)R+v^GpRx z!ZvcWw1%-K^aCbB33?~QP6aL`Ts1&1K5BaYwho=0+Eqe;lB9jy3N(zpcv2%Mje3cR z_VE;srEaWRsl}Kf-~5U94y!iC_3A}S`=+M!UY6c`7;&}K!q!-I-o%<<3XsCMW+efo zw!;C5;B`(4gRfY(q(sUS3rb#+%ub!fJvnO)S8xWn`LHRD!Jd1U?2)56(V> zArmWL+po05W6Op<9xD%ht|(W0j7R;qg{OE>@7UPhY_VW}{Bq%eq7&jG9HnZcnMPu{ zX(aiB0pRPmFhCW*h+*EUMqBUS-|9Sa1SwP?cEPdAYpjrMxm$aaq5}2pn`*$Hz;{@r zx7cO#5sPi2Vz$6dx z6geC;vTw9~#+X6=l}k#B=8Ai89vRI_arlq@2oWOoiaYRDRcAK7!Op_WfedkVHyj7` zuiS)2IFhW>Nye8i8{mng_ziJCzNP9xiia1OQPG#sQ!J&bCKE_>aWhnxK*Gcm*g_|S zKt>i7pjrr|Sqh($-bzf@2VN6)h_~BTyr_pI1Nii-F0>p5!CljO)`Uj($i}wo6K>V@W%t zOR6X{>z6v(`8ghJ(d}e#-~2^w!d;d}#FFvJOEI0L+~^I_2~?SJIVLuwhB-5*wsctShQYenZhx=@njH5?{LIIM6M}zWkO`ob>A* zOnRl*b`~19X$+oSbhn)%n@*Gd)QvDgmHMh`F%iuIHD|HPKohytk{#;V>R&;6wQf~D zDpLWp<2{X_BR->EXQasIqj8TpcM?b4$(dW25Py5_(8$PP!@?s}sK`aJ`#Vx>De~X~ z?%jhaCO-d`~10KM~HoQ8Y5}>rv5QRRF$S~{3Vo$b+7=T z5g_N%`9gN+i+c|SpY|`8pv@5uhcZZ)E4fZnCY0Pgq8gC6Z43C!&Ye&Jl%lG#@OET@ zy3I~|wVhA2GPUK-al zPa^(JnMuq4;xCk**rp){0e~=ilQ8LU1a)`mi)Dv(ruHxJp+LzUlqYYB-%CpB&ZtPU zqUvlMkSII42AQ2ZqXJ$Gn~YN21Vh!XrTQi#c(Inq?G8`I{Ll){H)~0l@6<8hR3d!b!XwW0WOS7)wIq^*C(K6N6)BOE1tth&oGlLgYcB z$iYzwYwGZrf=*re1`H^IJ79k&tmZhy&g<{A`rUK#!}W6wQ4xIV$3QeRkQ52@|K6RaSlmc}-=X zc0UzrBt>n`k-VM%1lbd2mX%G%?x9Kk@Yz#6pO)Dn(Ll|)PA&!-jDe;`1BFv)u(EOV z?hLi73P3b{DqCIt%F2l|CQg`9rq6bs4R9n1hz9=C$B_T&Q{A7I$werpY~}>H$PTsh z0B^^0iq1-wk6mjk?aR!abolvkopE0uA+QH+F=r|jk(g+i6|*2K zS^g1KIvykD`_cswrkcAF_NL-o6y}meHj*FpV+#q$i@~SJ>c5{@v;p z6y=}!$x#EGGzj6hBfB3aCv@@)KpIuRLHolLAq@fa-yBU~hC@)7NzYwo)A)3EVUEL0n(=}rk zY38XrOB-iAjyH>#_blyQGxj>EJ#{Zr*8%9WWEjzBQUETiEXTMOZ@3L7)ZXjUnyg~- z0$hrDs+*+f8iVpg(%jrvU6s;si?XEalnl#@r@r~-RIQ$-*1Ou_IY~)5RuHFABTm7W zloM-WB2LT*H~EEz1iJ|YFX-!g_x;aKqG@$96ngmo9&?huu6MtG?j)voScaUsUBm?T zy!>*&aMRBO#ufvHTP;?TR_tNcmzrPmGf%8N@{CM#h>`9zIkWgVS|QGxc(FafndPqg zm0kaxto$77OIqW_WTiQ-yLQIoS&`8ji7Tes*VvbccO&twFU1@7mG+g)_=}DaZaK&U zNKdAzgO$uJI&BqC>LWgzH1x=(N7ST#FuuZ{H5#HMtVf$;0{*y^&3B zgcMqTH`c6HW34o%NMPIgMkWM|pWTx(!+j9JVJw#wu%p@WJGqlj)l%?M9ccRV82e$m z)>Px(*!l=u*H%}zS5~%H*R)ku1!^!u94Hlh{4sFM4Wk#q^eHfFiu{(B%9G?dxEyL* zWM5A<`$b-Qhil@;D0F384Kl4$Y36DwZsw)Vt8$wQxPH+h`we0{N1jAx@R1p&FIogY zxn^d@HdGyi*yjFqGxut{HvbP>;yGup#B&zxTb)pD{GX5>C8_U=Kb>uJ_2#{0L4vX>`ts$IqBK zmO)I~j)m=9#7=|t^+iazu5V98MVJPtV`f;G7&GAW@$6FVY7%L(;RB5$j$mgR8zef>#A;TEX-74Da{ zzsmaxLFO?N6oOf+b^Wzk@k@i@OhQO_(@9We?hfD8FIaG_HY zL$0R@Z)6^}Q4S=6aNZg{!xEvO@|82w@`#Go#m&yW5k8IC`}1#{V-=}$8e9l>@B@k3 zS!Pe+&pWqtEaQ{-fxOWvVLBYyH{X297>ytP)7ZuAdUiXzJ9=|iK8>mSB~!+IW@um^ zm&N5iRWp(;8ySj^$c?`ZI4zeNBZd)?l?-a5ox|5!3iG>t|dZ zboJjaJ^q%*PrLf&L(V?yoN(;zG=Rk4 z2-U4cK6rJmz>DJvyb}g3gxeu`+ADISd}`qW`IOu^4YJF>2k)fG;B6_dXqLVDoVj*O z5boriBzYQnE>ND+AO&t;FiG|_S5!2EcQQhnD;QU*%=PR5x{YjiVg!KZ-@S_KoLl(w z`kn}IEdDruyuXYzH}+99%pOK#>c7QQq>(llMly)?m1&R+w=bM5dz&lDTZol3gagZ7 z{=AC1041kPlZ!|kR#CTFDk{)^m_7VxD`mX%|;cN#zw(b>ni6ZtCd;2r7*_k_{$PhQUr z5BDPvv zY5gpIrX?o&5yfcwQS^f&FbRQOaX>sN!a(nJ{Q2&5$dqfmqq^wezKD=mJcjZ75tzxv zjueZWSUhW`Ueep>Mr0T<3Z*Mq zujP6I4)66+aFJM9Dg2sgm$*N zOuy1Hj=)mw>LCXWc#wI$x>(8>TCTId9K3#jA1z+8Fm9h}R}VNFeG=JWs&E9O^0!Qt zj$l+JjQy8ydw`KEi~=Y;@BO!Hdxy1cBdi^#cFYaRpmw9RcV{--ptfy?Rao1vy~TRY zj%U6x&OEwAFRwfO=kmJih`H>X)M=mrr{vTrYk~FH9%qfQ#^~W=Yr&~gPKgsxJ!z#{ zZ>?ghZ!qZGa27g=&P&}UISZT{!JyUGDzV=DSk=nS>mS034e8a3_0Cel+~q4hT1*2h<3wz1?AW?BnOYx@{rNOhTN{eK@#pYEcI>Y#pD*i!mF4&UI8lFb-%za;>(7jH z{Y6)%ztNl9#buism#gkgZX)BPH^>CD5oEUX1DPiyK{m@oknLt2NSWCHayFt}c(I~o z3rK=_29hOvKswkVkRE0?$XK%gBuA!ztTyvO)<_b_R!ITL69ZCZ3P8@98juUN8|1oq z2y)k)0eLC$;iXN2`3jOKc_2wL6eLCBKvK;HkTl5x$&dt)ObLQyNd`zZiW}bpkGuf! ziWkIZPJ#GkBuGG}f%I$h7G#jz1eqjmkhyKrKnl!7kV44@DKT$B%23KtDo`p(A`aP0 zK@QuCL5|y7K+f1>L9W_YT#LfWHI)@%{zx0@AK602NgEKYKgeuz2t?}-vRUSWX#GLT z%r=m^`nM3Re>q5kIS!H~Ye2OAAXkpDGnIKw!5UoFmSJFVV z{vcX^5UoFm)*nRc52E!4(fWgE{Xw+;AX>KlJ+qP}nwr$qtnC-Z>t?cV=Qa4V1Tbu9W+JAX-l?JsxtJH$4 z{x>;|yIT_o4dGSmSoEV6SJhOwlnFC_|Hf~bxCbsB{=6W<8~5k}Mq&R4nBnV(@h@TU z(uWIA{$t`265M#J_Y&Q5fA*s;$tyiO8LXcL>{>3O?`8>C*F$$v;P2Q`f2s@Cch;}o zsujpIp`{C}|a6nZ$v^03rNDbckn>(cgC?AJHr-EK=yKAZon;>L}NXY-z%Skeu)I3CAi z`ZFxSWx2WV0$M(Xu8GgeGz#Z^o(4>DF21yM&=U+QD#YMN0~cLfy>*)YY{ zr2z;D&(~RKs_g~&3dTobbaiq60T4yf`~kyLGqbY`CNi92K#~CkC5nic5D@_ZMRHDx zNEQ`PQ4s|Um=!TADwuORbIv)7;mmh>o{`<@{kms%0rh;I=l`Ymyk%y3dOC;ds$W%Y zIRHNQuR;I)fW~iIon7JEf5Es9=rOeZkiXV1V%^BYhoRsCT6gUsT5}q5nd=i?SL_6O zS_xX8QPg*Qknbe#kW2lh$EQr`QIY*Sl24uh>`7<@x&)ZX7f4qTU?w#{7*|zQm{KsH{k5P6`p8G?HNA}%y*Pw^e_L<> zyl}aMd^NLa3u%c^-VEvqP0BMChZ~9IG3V$y7^#_~y=X}f2$HDYjV_M+7)^V90G)c8 zyAKB4<^3gJ<&Wv8lPeW7(y!0SyEs8Q;TGC)px`a^I`je(Za3AVv8zLLOpC8ZuS*fX zt)g~T(t&Ye%Shgl-e>L#s|rG|2%MX`qcqs1485l?b;Q7j3l~ z{d4v{+Wh-|@Vt2)ELLlyCAzEUq*O*kZXO*|7+{DtF-H6e+l;}L(BXK^F|b@a=GEG) zl<-xFPZHNg{$|!}4{&(o-Bmu9PUjNve0C6Qb&9GL`XX#z_kS!+JbDVZPInmG&ajJN zSfaG9Y}gL(4RzVpl!;}Fog$R&+1>|#Hq!jUNP|Y9asREHN+p@tvP5B(Iw7o58Vo0R z47rK_{3*Fy=k=o@lk`u;E4nu-p$8~lNiGu;zO^=z%c9Q@74Z0}<{Ug1O@;9>j(b6q z6vHq8c{rYn5~_vZAlOou@RD`0W`JlxOIPLohLbYTRy5eJ3k=7JHkuvr9eCT6vsXIq zk++Fqf!0XMG%{{t*wVAb!^h27U_IE-1(#BY->!a;G)hWKG_yuDZQI1ixF0yQg9prZ zE1p*@V<)zCZXWEOPHUMqXXWA;C?)qvIsDgJ}f%m)qEvh(v5Mpa14#+?gzzChc z3Zp;4J~@WYtU~ARj;|b&|7r#5TmEK};ypuLaWCK(N|tK6Q@WHr8jiZqT=_%WOC7(9r_y;AbF zZr8Q1&mPpj`U%>KI5z%ahT@Q>v`nd3Fa{MfZ+R^yNwI)`{}>%vUkR>{+|sgVhL7J` z=9fLMU%&Zdd}ePQA2Bm4rD2`;ZDj7y-Xx?}?-UHZ)#erqJtb=_Lw6fDnQ&!n8!WGF z+!)=(A-J6L`NJCB1!px@lx_WrW`WCSF7Ck&j=0v_ZIwaRYJ=f^f)vFrNS$=P%$3wT~p)` z_jo?L_&mC^%*BCL&{>L^4E@f*dC0m?%NElMpFwiIUj5nZ)d3RdgsvyicD;R}Rj3@9Xzv-tXwvMtZnpe(mse z8#h#vYvl&MNv-HZ@o_1~i?^bLJQksm(5a*%-(mc2(aXMJ6|6q79S@}*yA(K@`8{>EMBW%O6M z5!#75e5-|<;0a!EOD;$4(T>mHT3(KheEN)zEm{OUaH(o>BRtXg19w>)3N2J4{ToK zw`lne{$WOEySMIf$ZG6@MLDI5!Fd__bMrxTb5k{RWOK2Qx2g)=JhU18RRP_W6pvlJ zSi^Ns*WR{$JzCfs z{}RUTKpn6NI@FBs3NFjhpPR^l5C;ph2U516YX_^)hsEH82hLgzn{C^+EUYacMI=R$ zK|bTFHoKRS=3{yXT-U4UNDf6-5b-FE1t0q*%A8+*N|}Om^NxLF>2>-~pvObD6gL-uHd7r!` zE`CECF@n!m${ewJlrhytG(7Hrmle_LfEJC#!q}^jw!Ic{D}>VrUEv?CgJ$WBdkj9$ zzyprGdW(9ZgEv60a1MHWZN>9KBi3c1{O}Cctyq46-L?+8eZv4h{vaA#h9>jaU@FAl z1}uu34;^9q+Y$vbrjwA8pNqE838T8rzFa$G=Y|3O%qFkj7Yf!;_4ENsF|L7CV16B4 z=s5RE$`a7p@@#s|vZ4CzT7bQNySBQo(J+L~lYKzJ#B**AE=3>VOlTsW38^arE&PUm zCLJo44j8gA6R#U&H_;MF2Nk(T>x*7I@Q-x;2|7C7u`dd{hMvs62@{l$A>e`@nrLur zSNY|nA)6+{{qkin1AXP6K?k~fj}DId1-<@)@Rzuhu;}S}bn5Quy;IS*BTE-NUTC$% z_F&266Qc;hjz`{AVeb{$Ob9sTT@sFT8ivalX0&1dqNDpXyc$zAz}skBcFpB(()+G}>e}VU|8ZD^J73(+Bn+k4Q4=VQdv? z{{jrpqm{^J znUl5wx*n)p2O$TaCh|b!Go6Nq7`VIWHN6C3+Ttv zEaEG^q!@iTUh&7GPOf0*TN)ZY)BBqvYA#8tt<=VK$0r%tpPCZNg4J&%j4Yai4HP3d zt>+|{zw<}|AjLmiIQndy%a5@= z->T~Z|I9?xcm-%3hj`3eBDE`lm=9NrI=ypE$HPC zXHyhMe35AORkaBLvrkw=FZ{zv z)N)JE9?iC@BmgI2*B}WF^q>OeqLU*6!x8|JLV}XGB?7|ex_4ZHmsebzQb{|bu57MS zPOJ)0#$OU~?VEFF=@8M*052!)r#OiWlu~6438`K8We}l8R7?zxFfs5mX2ePd3(pVL z>_o1dJVSP!J}+S#afEHuV3p@!QJsmY0mAbo{H#i!9Lq`iLfH<{b$Y`j9GZ&Zpd*C4 z;vW7Y^rVK^lavzo7_B^q^Es$mIH+Ij37cX9c+BZ+g)63V^=B)BX3f8Uw5T0EH^SX7 zc)suKsHxlFkNHCf_m5cUKPx0^hWFwDfq?^}76%{1VNbyjW!9oJ`0Zf?(;O=482Kl*5x*1>_u1E(_Us2~2k|pqd%&|2>?M-xY%6{? zJxcxrHq)cnN2g&D`tu?G9;TcOzok@SoYoPf&^(Iwx2v_9%)%ej0dsSL*fKZQXFs3- zeg;9Z(dkgdJ_>#ax+sq?0E1iMCx0q6!wA0p7=|f+8g>p!iQ~2 zpR}btCPoF{o@xNJRA1zUg34ouDWme>!4*$M{NAZ23J2@_HvaYQT>#V2^lsB~GN%pD zY2sO$kulwsFGPpzyI>WUHXQ?P)*oRyI6Om3&y6|@25bEvf$#o}Ut-%Uo-@sN^4G@TP`@oGfbNusLpwH%yA}BhapBn}G=y%S z%ir9@G**1vN?Ydgx7fi#U_O6+6QiYgzm?qH;@AI6Ogyxb@M7bE+rO2-mQsPCbqt9$ zQO;BwGafqAmcnvvE)}^CQo)Cnt+r_01}mQlpFoEr?#HLZRhF-f?Go<#>`=!x0NqE2 z`i%^>>o{0~j<+4$zC(YX_yL2G3B=Uu&>wEmwo$8>u8%7`%EmqLA0N6Cect51XMf=G z4WQHIw~i&ZmP}gEyW6e@mfbo;tQ?cGcS^_Kx}d+RDgyT%9JUd-?V;l-_@+b0D-jb+ zbetHBwWq)7F~J`{;+eOeo{kcjQG~Mm_71&Pd0C5+g<=s0mLGz8ZEH);7Z__-kIS!f zDkKUKXnh9<-Fo=}31+_S2mOVsF`MrVI=t#I#C%?GH*@5(Z9%st4-H)1J3Mx1MB17W zcA=kphc5_npPiOI*JBl{ScsmTJc_PV--Zp)BM5@v3ur}FrAKW~Z`Jv;sY!1u`$2j4 z(2J!Jap_wX(=49HY00YW9cX*(pvNEF4 zv31bwz4UtVmMz6SA|m<&ixfg4<-be>>op3A@b|<-(qmA~2WYlNdUM*=tx!@yrF9h49_8Pl5z4WmMH~mw^M$bI zqv3*Go8(|Xf1}%XYWX+Bw9V$48eGW}+$;Zp5lZA`)dg<1!r9Fa%!4vD)xz?Tg*tU;Z zY;0lN50BN?d^$R&OvP*B=UP|geTu0)z~`X3%A9%*y{$H*+AnJle6^yT%)atDgzo_D zZr?_?$sOJ|k8^WSvc_1Zx%jhGKA7FZc&kk$Spr%4*gcBsPmFH>nt2#j(I;!?7Df2xsSN~(cPE2)}IF0YC98yXoM z;1{j&`yp^eNND2l;NV1A@AK!iPyuF-gPvDXg11*f60XD&?f{xCvk@v$SCZR@e#f7W z|BNQeY>pl^LaQOn5O@6}{t0@gTuwx7wd|J;6j1(LpzO6QNSLJ-W<-UT#TqJRWcag& zvWQZ20&T0>igutI6IP}{5UhIe4mN{t1Q+Nt+`&H4yC7p@c=*N)VsMl%l3pbnF8fBL z@0reoS`?V-2W5m_za^L_P3$Cuq9&4q9IXn)90PhNrgLe^kvl5+ER&0XZCzsB&{B$5 z9dLwsPhbJMcIPgg^$@r1IqoP7K)d(sISpxOCjQWw+a>uTdoO+n>+;BPbo(urIKXSqzn2Y+c$_oc+tQY1hfg&vVI#!!e}{q+vL zfDjnlQh^@lcK>GCu*q?h!bs9mndM? zjEZM#XlYS5oo4{1VBft(&tWn67NrJv8R*u_(##GfLrRFHr+a^kwzjy)$8eE*z_3n( zry83XyO^7KPit=4oGANkVbkf+0ymJttF!4AICZ@>mZh!4HQPc_s#j9+C4=1^2@$U2 z|4AhI3<$?jLHBqf?ir zl7OD~fXh!wEkd=+3!TXXkFyu15@FEO3HxntVQdbpUN#YZSUzv_GwdO17r_e{V zo~EtW(6uQ{glP2Teb>OQdM&)#4vvLBXk0CNCTk4sG&IJhre}MweUNZ+yN7STX^X?&4(+PSE9V-tgBc4Ko#wL8?KZ2Y*g z-X$UWR?Tx4x$_Dz)9o|3eb#%BEinEALXYi7+wU9iK#%tRMuSyK=142Hi}B>!x7LqbqfW8Nmd8WmAnG2F)QDRiF^B zQKP)Plat}wz|_=%J|jkGPJqE^GtwO~z$-D)YrqKg71IspxRYp&=4fKAjimppvBxbg$r6}JQOs; znQg%}E0W!)x0q?lFby-bsJ~Z4Z@-KdL=7Gi6C+d%V*UN2B8K?K%5I>SV1!1hE7d17 ztXHpyP@H-huF4XP=VG_~x+)BqKy6tZu0=w?-~@VZlD}U9smTk_L+8;%QUlQtXa6{{ z1~*YCtj6gdmOVj>8&m(S+ja2?NnY?{x5r>xls{RMWLiCVKoXYHXt8FS|F;vC(*K$; zOC95nOR~9N0po~bvjZw+yD4rms}-S42LeCgs4vH5F1#fXsnd7J-&&sTfQh#~7;H3F zsC~2ViwL+_ibZ~znSOp*SuhjV^YJKe?@{E(v=*#y?&L0`Y>js+jv$WS@N<-{=n0R> z=lG}b?!g1aODIbh%Dh!9BWFY5@Y?5!Stwlj8(z>_ z)!Ohj#8;E@ndEm|>UN?Eym}+5m(uCuzHGQGb1eOEYR#tZM?8y;ZCFy2$j z*vO-og6WyZ;Ic0MFnVX)FVF8-h~J1)(;Z^A7WsJ28>NT%WpBZE`vtW0nZt7Q{uB{^ z|&2nI^R6xU?iL{M$+e`iygnHUa zrESt!EG-^OoB8dWo-9mg2!ic2S2-!wCS|0xL2aBs^vEZ{U5AlKD$^xQI%GzN{^r!W zeSDV}a=ypxkMrkzo&#l{=gj*!n{MG0<_J0dF5wO^S~73vw~4ta9ETn>ZUlP3a^uVX zo;B<5ve_SI&-&2QI--BlaGUUcBZjNG<|L=5GVr5fEl$MxOFsIt9P+r)Dj}8%X>ox@D{fH1^oR6a$8vr&y$D?2jzWQj9Zo!nu zq5%V@v%f1!bI@YuFP>sD6s1fudcGRWet-5mv|Wk*Mt>F-gsn<=p13BG-;AC@OE#-E zMN-B;BKNcjdIChd@s{#6J(IBTC0#_8KmUvy%i(ACZT+(hBQf!_h{W6=5Xx(DhwkMl z5%X#Y`h-m3{7zwh+`M0zeK+tz_af5wW|uW8&=*-5nH+C8-X&W^-V|2DD{}p`-SrismIHW_+^q6I9Dn0P_Ii!0%B>GWKvJpiwsLwS_IPx*i8Ha^D}R<=Xm-utmY%24HTz% zP79Vm49rC}SAIt?mgFjaA3n(?WAt*31$&^;On|vcYDLyWTaLQJkGKmXYI6qz$n9qtKDJp3vUMoqDIn)D|RhU0~ z$`=c3h8HQ8#l;t-e!HM>=hDw5GojJmBcMMIP-%W%#+W|SM?h0(0k9N3I9rC!qmxUp z-n0$Kg60<~x}f>6XwcAhrX#B-j=eHI?@rOs{6r7?zSepU*N#oTkmXR20fsq~?S^sN zh@g<-sQGxYY%0ClkiRYNM7Ao3sBVLMR)-(g9KB<6&^!IQJErZeTZ)HFTk>PK+`g@- zVcL)%u73_(WHw_SzP@Jq7p3~ahd}JEk3j!C%x9r4pG;;Sc zO_<;e&>CEv47=zud0^4FNntiy{$VRR$#fp@r%WQU^#1xRK!ElA?vF?LGORyGHJ7w=AX83 z?ugIqn2Vt{hlJ%O(x!M0);V>s)fJ~CU3mfqq4-OsCjzgc1iEF=%z!4%^~M3`+p<%0 z{no8@Y&!TTvh|ub8C)W9rWX)!4xfZPSf6h}&Y3~_4!zrf&Yr%ZZbrr(+PAbwi{FlF zt@=9|1Z6rCSqi_L9Drz!o=%F5X2~R991~S#Wo_l;}qP@ z)iPrN^h1GazZRDa69@-yaD?~i_pcFt05Up zWg!1jPIBtSNfQ$nzAHY1sxKyAM%8D)QlVskV(M~ZR1hOPg#K%u>?1`#==z`Yg{>by zg71IIo2Du-d9qOIN>+bDc6VmU2-9oD>g%c20~NSlK&D!GW=_iT1jrtcF(JcaF?w<6 z8hSJj;v~US`VG!-$x|$ZMJ|5*eA70Lr(f{Dg=Kj437nRKC(^tZV*=wlv>(V0M<0M7 zWmQ$CEo4q&cTn>bwWQ&d&u}=UYIv2EPqi3=xbUiL7g8X)Hfxkv zgLYI|S0Y)kS?Hb2CnVpqU2L#x(6_IUaBtJ8PyAxB4t+wlPPvDR|0h^{y}RJk>^q9B z{Kuc?f_6jXzRq{ZeTEPP-Lg`D!T9L`84QJPodN$#$yXrYOes=sN?(E5KFLX!rt=g- zD-iK6i_rqQ0$Ly*IfyF`>dLlN%1H?2P7no(Nyq@5P}Y!;+LvDj;X)q6t&o9RL7Ora zPfBXP{MthK7^(QI!pqlv&n&Kpb9}tq~2)&SwV_OK`-5YqZI0~a;qEZ1;qoUH7 zV82nL`~p%^e*9d;?*1UKyMGti-JbQKTB=Y2fjC6fhf{U2N2cN;C@gs^z8tgZn-M&M zibT~HS#Ju08v1$zsW^? zKEVrwsAGtfyka~Kzlr0IBvhcxQ#cf^!ZgED;ZUegfX@W_X~{I8nDJJlEjTRKhI+yt zLfJ9UO52xtjDZR?80ox-H^};`i_p#bNJ0Xo1o^cSSE7_$AXqd6OTz- zllWF>!Jw&IqUl#)BL9>=gk{lt&Bhd?E*8EMfoTE^pIFCcz#M2VG+nZQw?s)@pcx$2 zMz&y1Pa?^4lwt^k(7t%-8+%!?OKe@vMre;C;(nAv65WJvf0F^elc|#@l5!0iXCfJ- zu%QEyJ~{!F%rTUTCPEEZvlGxA+!7Pz!wxcUE{0e%9h#t9XJN=CyN3{Sp$z?XIHJ_2=;3&~ z)XP(drC186MVt}T%49z$#VvSNibz{S&QNMW6OkjKGb|eFf-Hx;8_=l& zmZ19=o<1s?3v(8rN!1S^5YlnjlT+^d01l_`yGy@&;yHf>R9D@aSMwCwp%|wQm+|b zjFU$d=&y0F&n*sw7U2sv`$3a$#JVwO4#l!`iV+nJp!l;ao!?Fm!o9eFGe_q5m8HyI zP76{pe}&+@PZ7_V^P%_+4v}9GLSp$re6Vt{5OV2DI|_(xMTV1wkyX(|wS=pA0EPsw zGV#ND`(%eUExUIdkqX?f$`{#MjnNB^ODD(XO1>#GNm;Iz!P;UPR9Dv);1GI!VrlQB zUggKoTfQkh1LdQS&=?AMA}q+q^oFYpLqJJY+F;bImWXo@_%N&~Mt3{Zxw;@rH0y{~ zq0ONAV$%7ngtO=_n(*oc47?iGy@OK^+X8SxRp1BBnbFV^x~E>50?a`F`ABbEdZjz7Ol&|hRo)`Yx})Cnl+lo$;~B}VatXn7Wb(OTNft~_$&IxN4; zCTGu;l8(S%J_lOU=p(4=!DjR*7DE|3J#}ymTAe;>xp?4&F64Y_Scw!XPog`k5<)0i z{zCRaxxUe%df#CZOmy;Xp*2LH4G^Jl)f`D!=*#ZkCy}KR<$6uGA0oE~9TK@L@|?gB-NMaBMH&uud}18+SA1fWuW-?f4DgSM8RAFS#4!N@kaye*(QA-hXgnf}el9^de5#+C3)5 zyECINnh~dc6_Di9qeVa_h2??Jtq!Xa*Df;I+)E~MSJ(>fYvirP|86HsPQm{ain8O zX^DH<@$??vgN}VewkrMtmrk}~VoF4HV%*)}#JH857;y^TWJ}{Hs)@Kg+d4F-9WgEz z=u-X&j5Rc~CKk&b>9vRcBN2n=e+AX|M_6%KIya?=G7u~7ogi6{*_MR}ci(4tX8I_GrUx>c*iE*586;f`J)bbMVqmI^62ISo1|fJGodMZ zfxcEeobC#fK?c)-1qn<8*<^5?{$LsUie5mIKBM{!OR|}OZgP6))-v>IdGhYmo%euy zjj*^U=j^u$2cgfqLZYfy_zoRBIN=*!&2k|8HL5M!?321Xc{wy%M&!p>p|BeFvFU$S zcvEYyirbdK$f- z-YKYeZ0t19!c!zm8O*ij@_yEN)5Yo65j6%h%QUbLD{VzHyFPyWSo9F>-?k02m7#!+=690+26sk7`-`D6!@3HvM0YCIp_}W?7gExya-61$Nhw8NgRZe4o~ zH0ru!CceS*Y%gZmro(bPOLKWL@8(ey?S$6@j$ZefqJW(3)ldRm%vJb-!_h!4P52H| zAWY&hK4ARRuC_%Ji>DL*#!@ia{~Tw@xK=O2{sIJKf3_nq<`CIHm@b@n&p#TIa=qtXI8&#Yas z9(`Q^*^r!&GnsLQtVQTk^BoT147*+qSB;ifl4QNnl6+XJgRf9~T}mlI7AoKd2rHXVOnAhII8;;9+Uu5SdsZy=U$Py32Y)x0;ZAFtJh@vf=Jy{8^9)p-aw?o@YqmH7Ack9vP8`+T6BV}Po@WN3p&dCcS z@U_QtNTuJl0SbaPM;}KI54TZLXx--U!(jHjP43PtC#S5PxovWGjCOI(-dP*0+2&IX z1<(o?x~cS~nhK?xzL&oIY9xJ$>+=E^c>sQ8A`3pU|s4lB&67Bbb?(RI)d-g+7Dk z67=oQ(a%xs#iP(0-K|0Uw(NpvV6VfZ_3KgIb)-NQyS9LP4OpNMBl*4>wqI>C!V3XNjgCsC zr$b6)R9ae8WD3;X(Ua4o$X!%Aw0_9;eJDR5{DEEGNlD&=5)=93K1oSF7)>GxP~Gqs zRIdo?1~sM^NC+U~w;#}6gcmMMPJCL0RYujHFME3^lr?Y-aX6m z#?I;0dk&x8t+$na+tr{8#dy^*4LgmV?H_5>ykF7^I%(9ExgA|>nj8NGNoNnD&G#)% zpwl~{-N+qD7UM3A$v!{cB5_9w1;R zIb}~BXiPtcMp=`#1apki@VEGl1d><6Nf~#I^%R5CXer7Z7_}$apB>4%o(4Dc*Vz0m z*pY1BR=;Wf*psX?_9!cx54z}2K5b2w_k=-f@gJ{6Fwow?3kEvadr?3oOFlypW+H_1Xk($qP;rPc&uJN>Lg&gm{<4aOuK2<)~wVvXoK1 z^F-nKgzCN8_D+EMS#wVVt0^ZK?q8L%NIahg@h*{gKW{fAzb4K=rgv49$@l>$o3jFRmt`~Gcoe5 zcq-)bmD0nQ!P1!0BIVLG7mO!Mv}hU^5*Q7dfm|30hv`8OP>R+EoJMQ-&&*Ew;rVP& zI3--9d$6bUmi$b`E2O;(meUn<3)l_`{B(W}F!XT627Vs7Qh?7?Z@DI1E6SpwqKE)6 zG|^Ylc8+yKw>cJHF>POh&yJmF-~AcwZOLG+ev?}9KRRNZC=7;vqQ zprwERi58s+IRxfsM}16O6+U89{Efoj<2nuNWl?x)q*AHQoaSU0Fr(0ZS#?SOLl)OEH_MUNkhSna%hLrC3 ze?uQvwec+;>RGTM(sAtXqeA>o^vNI0n}BA>)WZoh{fAM@52U{Hxc+7 zrs6JUDzKj<-#ziJRY#UAIZ_qo?;pm0tiMN%7wz4<$UiX9Uv(uKnOI_*D@bf(jVY1k z-YEMgyp>eMTjBQ(c-k0`IS5~6?(-#BHi5@hWJO(HM_W$o4~iI1$^mjGE61+_zz zZs;N>Acz6KMHdyJH<%S%;n#gqcM7PJ$U&Mz9j2tjUY95z#|o)z0CfK5eHhJwk$g5q z%g6BU{6*!gdV@HiZ)-0fLk~f553uOPlivliZ{Ebojp3h2_KA9Xpe@Rk%{w#yE|ww| z28gFXW}aW9n-kiacwm-4IkoQvgJld_$<3HNewuyQ$^`JuTjV$IH2(z59J_ULY#iDq zV$q9A|5GsVBw=uuZpt|}%D-@JbgM|qmF21BQJpZqGlTc#KPe~R#aOp?se)9&j}PMS zE7z&2K(yEhcj(zyKAX%xy1}FFeJK|9j$yz~@eMM!sfK$qGIOb|dE(-$ut)B@GDHAg|Ol4t$WW>DA!jGCv zb<|d2uzti^Nqzuav-{-x-a`6-Ae#|GwYr>7U$bWb>w}8bfUusHDf##*3*D95$6{2N zTf5Y;lFLNO3n{gQv7Sw|8T7nq$I-XSkP8>s04V1F?I^~Esi9&NP@Ay!*-V+SVBJTz zjuTUF%)s>Dj2%chaTaq0P5ehk*eKBWyHoxwe+61q==zb<=t?ETt}B_mbf9}L9{|XF zyv($#TPz!lE*SpS=r9C4v{?JT0Np}g6qC=O2Ni3<{CA?8v2^d&HB9;N=-_y(g43yt zOow8~8K3Qpn^T7}5V#E(v!^<3sfHR+J9iX|SKqqyTQtMBcvqZrn5B-bQTN2&ps84h zn{%j#nX7?ymdDtAiIRPHCvF+u8JjJWNKJ=%A17_sUtXQiU&f$6v~)sFuAqS0gZp)w z)Q;>B01~M=V+!Vu65(fypV?yc5EjOxME)Z+P1e z$b&Y+7kK}2$6GkeUw>OA^6jL&nr}ze1I)J*=ly=cK7UVcKZSLqRRGs|r7l4OLDW+x zO2T~ee|I}wE@GzlOSYZu=+tp&AC2uNKu}qSa{_3ZRy2`qQGOtp?>fY{Dig=94gFfz z;k`#+-(Ju&+>#ah4+ej*pw72g7{yjC;AAt7u?R^EVbOGi{ z`{Su#BB1>0wbTrSyo9k1zu;5z^N7BhS9DO1cHN*nKi)MVw!39_-Z;WPAU0;m;3$E0 z?H3(6#6L!Qq+{HC8=L-Jt)iB6w(bjU`-Fw`!`$m$eZw#pJCty-XK>rm3KeR*%der% zhFJ4Pt$IT=>C~-WTbAfII593@NE~5n`y~*z_QINgSs{HQef+z1@p#}jBe+}G&=7lD zPmP`ehdU;&PyeVW4D60P)GU5ggt@i(z#ffa*F>9Jn+>3#){k2zv6ndt8gT+3p)pgp z1zIu0pSa-(gX{zOg)kPXp%O-nNnT`lTJOuQ)o3(|L@8*+gxJO0GRNpyK1QadM((~n z7OpljH8bjm_p^Pt*(YdpP+4ohHTt>H31Et!zjSikz!d_j&?b0{GC%~zT$3wsk;}jMc z>|pD8K+#>+t-dXy*Tj;xfP;@86XpkPht@KOMdpWm3FPEf5RLm>JUR^}8VX$IL(_(2egez5dlodY!<%|1Bo` z6!Y8A|2;0M_}}B!?n1Yr-TxL>u|XAgoAM=RfVI2Y3WTFMk$W*jL7HsPDu|}Jh=UMe z8#pC;1==x!`NDU%?7S*;_! zYXjuBVEDvw2s;(#BfnPjA8q6M>_p3y6haky`^0snd(D2BJK61z0A4|#<=TT>5 zgKiS1U)&D*D6zXEoNO7;2?PIY+zz;dEOA&irp^K}V5>3luP8!K4Aef=BxGconW;gO z`rm;j>rHtHofHk3zTTNHv-YP*in>kBLJIU?1~fWw2n-ftMDh5M;|5HN0s}BCM=uWY z)pSt)MC2jwD|M}18SRBGhF;y)*`lX|Vb=#ICf%Mm@m2Y#(&S;iy*leTUEM$RXd-m& z#?B)fnFy6{2z(SB(Bg<8n?IL10*{n*muInBNPTKfgYTswm1BZ-Xq zbXe2v3k{ClZbA$2sP-zjvCuzZdlqfkKkzilKzBU8B2TnPN!nv8U&$2{Yret;hBI|g zE8ydPR^bB$Pg{qJojuun~)ByOe%koe-h0@ zTIl*8kXSn@0S-ZH&)F-F=B}-D%NVplSz3rbpWKU1;`1<=-q$I9zy2jEM|_nvbnP^0 zuVPgNu^F<7uap#FdfbpqY;%&as%(Zr+1jw=?B(c)=eZWvHZT)jgZo?PIyWuVE5!v+ z$pUD81dPD$6SCYl^8O3{0sk1J;9MO47c}j=;zV{zs$F>RMGtbmJvoF9e&tshf4Yoz zp@2v*@UFaGoL7Mhv5P-0v=AZD$ixsPFe}v-XSQGs<8o0v#f^2&wGArO1rgrL z*oqng7z(Dco`>TJKv*+E6bdl8S*@N!=!w&4)st3F(26rBAOhG{Td!T;(rU|?V-SJA+m|?6elWxRfyuWYw{e(Hq%kv(W2v*U&xeHO=(O1u(*o+p0HiSifcC z7H~EnnG&C31nroyZ>o;IPU@C_zO3raSO(oT!r>`qA{EP3$wGzN^!m5j=zd=t!a4l0 zG7alu%gktf4?@mhX2Si}53u>?(-5L)z3aw}U9ERty}B)POKe*BT9C{?kJjDjcnz&R zKMy2p!$-z$PGhf4LhrBLLXT$8hBnxqug)a&&(3vgckNogW(P*UP07feYzobp0{Ncn z@=>GY*LTY&;gf{v>S=hs9Z}v1u0iw5Ryetf9KU6@S^c2Q+7*V%L(a^0hizex*rcrgc+vfo!x%(R3zg z?%n&f*hnXE)}`rt(8pPj?KEvnQmLPIW51b+StUIfnekJ!@)WV7vd-x_gd91FR-kXj z#dmTaZaI~{DQf&Jbb~vFMe=Wr-$2CCBWTTYr*-J{*-@t;TxmS{*7&GR>8G-{$K~E3 z)#i_DY~u8U-KzuDgUHqaAL?|q|CdTh{(A$l!#jX=%i06~wN}#d|JFcwPHBM^diJ$O z((b?2toXk*5k*s3c%L|gCt^!s;ccixMWly6VX~);o-oa>d7s?a$+K8An_dTP_Pzp_ zl`GJ(*J&^S<=T6Xx=%r;mY-ksOl`Z5F>G9Il&p`b9y3lSC=%e z%J`iKKvSWD2o1BV91M5w2dz2TUyrOBJS#srf9yC{$U?=;-UHBd_B15lzx1!kS69xO zx_WsTy1^3_ehf>O?oioDqfCG?5x{($2Cwvh*7OZUK4Q=i`YN>Ml40&wic9`Bml%7; z8y&?ABFBG~^Adz^C_AcPnYRVm&h9#x=1JlC9FE75XX!1O8lkAI1`(QK%Ewft*dx6q zpTR~dn!jRRzL;L?xDCw*L9dYcQ2Xq)#DLt=l&~zyr~;gPFHH4GC{2vU(Z?sZHk7%* zj?uN160LnhQwCEnsyj>OUqfN<(d}jzX1C36RQ-%`$pz`Njmc*k&pX}r=`X@1x%9Bx z{0_#9-*^fCsiyrE_k{;~(5 z3Ei8YlC*GPQp)_fZZ;j=+&bF0p~JC-g|SHmlM=06U9CIy=t1z{;LEmUnu~bw+ClvoDdHDq{C%9>50L;zGQp8(?kj(^K{SS{;^(u4%DJKjlQ^6RYQ_Zr znC1Mbp0&)~T9kJ09+)B;5c%P>FYy!D1TpRUPuK+Bv}Y{}!Ep!h_h~|2oWx`xO}$hn zE+H{Zz!FTrQ9>&+zCj!Q?GE}hszJjJ^nLjftoV<~C=!-qcvf1wr z>3yjc+QYNHBWg!-1JMN8G!;KVg}P}lEG)@zkyz>)@_qV5cn3Jyx*skPERfp22s7qz* zflC!UFgwemi)US67f*Gdt%vk=W4|fhtt?x)*f#c=>}zA~47pAHCV98AXxYt9(|5|? zE?rzGNo@ySh7?M_di^@pf@cbjj<#TluZCa?QZ!c49!8%>_j4=HquCRg^=BY`0&02& z+D}FWYu2DbupD?BEpSJ7AblX1q6h92BTwQr`NzrO)12<*YoP#+u>wHr60QQ$K8 z4H`X&*QA@F<%d8&d)Xlf8cTtq9jC*4%Q~ne!HyPnl3?C@+(v+n<6H&~bm4U7W@J=M z@^f+W6)a8lMkyL`#L`r~T8@c@&~{)~ucLud&^rhkK0FNl0~yz5-BR!&Y2lHiFJr>f zq}PeDsjQs|Pf!Ly8F&uIeI}pDcSMHDZQnyO6wQl)FP@2{GvN#0xfK2>MVjz+CX(Pe zGLCPA!tr`7mA$UTiV8R+ABRKeyC<1k? zH!CL)vH$61?R5XrVUu=%UujU`wq@r1tULF!2+$ARlJ2jzR!2X=7B^_;{FM~Vji$;QUxo@M+xjqPWz9vCZB0eQ zl!c{9D~1R!=>5>lX7xw3<-sFV{c)u=G_xGP^TU$zkGpea&4;d=HrQ|ax&X7F!M1jT zgD6m(m$qT-2qmY6Kz~~(qX^a*^N=XU4%Og%F_rTflOebyQg)wuK8f+c1Pt*{$}(Rz zOJmSOT6YKE4cfw*y(oX#GBgb`1`#*L{fI1!i$_g0MpODC9NDhks+$2p!yB4nH9SML z=Dx~st%#K1TRS@0cfYu!tY~Y~W>=dwGo&Ybcskj%_pmbmEoXQ}$tJH7Kf*RXFDZ3AZaHr*5|<%UAo>Z9OO5itH8Bx;9iMm% zR2*x?g)vpZK`TeD+saqK!hQq%JOE;Ydxo`6G@Hvs##AOW&)yP!dEMZ`rmjADvCSir zJGD=ZdffEz}3m#O(U6jK{#OD!?klKS6AFj zJ#i7+;v$MtTS8ZgYd6OFSawyb58x*Q#nug{08VYFJ`Qladf0#g!-jeRcyW=p)@yCN zb8o%Y+Pmwl)Dzkm-wTb-cf3~J)T3GKgeXTq;`!=a8LO{}kMazFZ`)#3gK9--x7krr$gDaI|eoEB1|D;j?4c zq7C$M=-sPZFJt3g-JCqw<1nm@i%i^EBp$h^N=U0a9IN znf$2sy*16MZicT-c1T;n*T`Av!ykLjl;87HV_xwy$gByet*i1~uR+Wwv-#dsBcd;AQ z>B?QNY-r{&XMWCXxB}gsgFWGj2h3WOGZU_K>mKYO+sz-OzoLc9uFPLcNI0+l$sy&} z=dVLO;J7C?DMc%!xa9kUOtn>6N>nb9gq#((uT%r4W%Zly5Ram9=3;vE8Cj!Y!LM&&3G^_QmM4bSYft8Jb5{=oZaWAdki$^~4`F672QaGP%3goCRi@c7 ze#?~m1f`BEHUVe+OUMGgS$j^!tNbn}dQVVf1 z=07J>|Bux}3z;#s8In?TLvb42lu_hsa>(O*(nrV-e|rQo+{STYDx`9FyC&&iQ!r|% zF|p)9+dX6?_vO- zsp-1>8VT%YaSaxTQ{7+c1LHCYb|vV1i1ZJPf|#NHQHOt_96U9vTms?D2K0jdXFycc zfd0`jyyJNYyJK}5!Y<54Uv}lMFTImtm3h0QC}&k|DMdGEfzJO+8<^u6B2I8U4z~x} zd+e~nB5UiSsaZ=UXce;_ny-Hi4vUtc^Dp>$Degn7^EDE!52M;;`Zt+{s z!$2Ox#l?XmS0XJK2dn9;UnwMe4lS5+9;Z~w-Y^ z*_j4t=mr8$9y%YLW^=#^If1UkxI^;}VS~HcXYMPs2)rj zIv81GbQ-%p$%dnl8`v!Pe9C+Li7k7x{8twZ)|7!B%f^k2+<0Mb&-wfLDd-m4sG)MK z;HBxf^rRph(Iu)Nc*6a67eud7DeLp!JrFtZC3Gfp@_%tX#86rMQLG%I*RULh|3xk2 zGn#Sozi5TH^SSio*#DvpLQ{##5A11!UXHQFN#4L18>c&0Jpl-;U zko7hZ*5=RbZa-rxv4i#+9G5IcXI`P;hx8t3KKk?+tKsJ+L;DkG>qVr3uWY5OA$Mu7%qveWzLLFDJ z@bCXSPt12uy5Bu1x-MTnt!P=f+rWXYjN6KeqUkG^_wXLz0_?KoQ>QIk+SAL!4ZX#2 zrY^^E2DmA1FJD$PZFxmcuK})#+bi+6IKJ0Fmv74|)WNToFP}PfB@P|n%3U5cd-f=M z{{ZBbURIXw6cE50kq`$zKLr{!uPohR=up%fzrr_x+@*$b$X7g-I(JT*!_Z;4#m?}j z;j{F;K)evNtP$0cxJMD(DcUk%>1b|Oro#LID%9WsI{>u zmhLi*hLaJXjhgGhRb+_XOf|YDe-M2{t6Gr~1?5G6mLhBTBlA)S=uhJs>%nDYj4l`H zU5``@i#)7VDSwM2AvaV7&-9QDB!_}tksj?*SrmDg_JZS~D0Z?^srD5?bJFv5@Mv1_ z0`i;6Ysg`m65S|C%48(`sR&>FDu9oXPD8hzG6qU1l@;QKhHP+nic;PH46OopOA&Nc zeh|g)lDi~6vsDbI^3ex8h4Yz2c9VuE2{aXs1;QdlhJ|Q`uAX2g2P~pJMK7HBdEVTQ zv*!F$Hv6Bl!gPSqlL|%yjHeqZwlY3UVi{OH-}4+SN=ndOe1oo+eLQ{o>-hr*&VRk~ zJIwk>G2b?GJ(PMfw}$pTe}#Zjq=7yYtV7%HFf$w6 z-LjLRR+C0ew9QQ0m}oU_tYIL{lUem@XWCY)5&lohq;*U47W$exnl1G)Ip3d)RdTXP zDk9quETxVTDVmKBXcf1l z<^&3%pcY3#>L@_e<>ZIaN|-j1b|ju&PSoI3G;k`~b*X@frCfvl3_9rI4r$aQ6mk-$ zvJ0oOqb?PF6KU-((52t-FSn6Y9+4=$aVj=AiiVhxqY1`BN#)__8H9~5gfqv`$I5ji z@|`;<ONjzeS_Tnuu zBYBGRl}R@dK+}-q2R!YLqAblEa04B7ONw!=H1g(S)l#6(y`2 z1P{j_f*#_Q1P!erA8vh!o7aIG#*V=#Yocri`Vzp47xZQw(OX5TA`QJ~yU5z1ZLMO# z4Bd}y3pg`*s-!o+Q2MvPA|NhgMdQJ$VTbP&J_Xgy8rkH=e+?UNV`uKHXKI!z{kv#_ z&+_S=6Ya9Rt?l$=7xXcnAr~t=xjMaYqQKHZP=hGxo+Ll zdMy}=cD8Na$;!IB!=NdCc6RM7dgC-%&I~!oM5LIA@U|B{P>_BQ*Ch^f7DRq5skZ?? z$gE=*SGTb~6GtVcw$bg}+M**sw{|0D0!)vKPj6vh%^k7sVAY42?~)miQZh25SEr5^ zHXWJr>8Z&R(;^1g;asJh73!nuAut8%EHn{KYbn09bWquEQnQy=@ByAsg;4{Ro zIug=9_~1l~a5sV5*Qax0&m_X^L*~(yi2{Retsh~~O^9k9Il{sw%{~w_i37Pv zrA$=~2ddxyI~5^TJvd83E7#XXVfIrsqMDhB)z}1&($@wDuTIZgJM4H>xBezxfkOs* z{!0z|S`V+QL3Nr|`sSFp&8b@J?yPf)?x_`(i0<| znyOe&2LFkvs(5#*1|8Zw)3KYqGhEnSRni<06{<=?5LI& zz@NNiGxT%#uPjzt?knjia0i=-a7d{*%Phr7=lEavg~Q8a?fXy6<19Pb*bVVNpbVqd&GjXLzhESSycL&-+G=hPXgY#p)2}xbD{>O0b`4C$k~5D2dQZMnkhmpz z)TWrwRl@^Hhq1vii9vzELjxjWmS{FDZ@ocT;gI|Lh|u!Lq>7*cW87Jb{>ekU;!4t; zrtHBI@CJEy{GW3*msrAo&KasuXD7J+Ukl)+7z7kvdz~bMkhaEnOpmn{%wN`f+0n*) zK9zqGT%cbtR25|dH`zzFOK=PcYOyDwdcv%oesdz@a(gvt;-1$z(6d>i!2$k$-jYE* zTnnr^`FYW{oB1{)XZ43x57sor12(EUy+z7~sC8jJae?8vQB5Oqac8u}4P&5DMYV3o z)m9AxslGS_>`jTQc22Q+-CclNt5)r7e5Ogi0Rck*{KETrX)lLVligh6-Z@os_D-MR zWEC7fb8w7qvk`OAuJ(h;j>Bal7tI6pcC$>i0i>3Wj)YuSbiG1vMO${bl$>t&vIIOe z56Jhh9%u`ivZtcz6)%H`Tx3pxq8H|?>JW~w2hmm_nqX^+BNJA(V)5-NbY=-UQ*CpZuDL1=qX&}j z>VHI?2d7}Jk)!6+6Lzxn2e$N(hMameyLh?4sYmv3o^a|JxwgQct*jH+NWrm-N<7ck zEap+g6-MJacP@~w2~g*cbMKD7qVQLup#xJ(6{5nFd?|VZ5u8$4I^wZIpkCNSfH12q z6laxi$)RU&+tMo#K7ZS&1PM#CO*J$J_D;*`1i)%)-fV_(K4t5=S$DMOGZ?$V4FAj) zn9K!MCZR{VL^(P(w&~nhQ#)MS(a{E%qyo42HH}nCzh0jJ=iiVd!9A<1FGrE>{KK6y zR|l31j*N`z+Rn=3#_3C!WD9bQI~Yz$_a5ohGQ+~lxm~9g{7DFCf+~sMqk&uu|4L)D zusGNW)?qCgj7ZUWfg#s$yX2d@#d_uqfDOfS_P}|zd#^6tdJZjK2(Z6&?I=(<<2s$xJS|XjxHE-3rDC3Z zqbns(H6DkI`=ny2WChFG<6$L_!5==-NLG(-G5}SGD}2X4;`h@I$Z#^e z&vWOWknsqY_~}#VjCJeqw>o&Y=%g_g1D0D0%knR0zc3YbZ3Ql%YUi`mR(Q{?99S9~ zoax%Aaj%Sa{yvRle*TVqTLZX%+6OI+nu3m@L(8y8;1VydY?`$*F>&*VR;lYkRt*ob z3Crm*qEFM1Oge)9+NmQux0z&OE@1Q#9%V6z{a(r=H6%omsM@aDUhz7iULfS%ue7WQ z&G%^1q<>!6+?6Yj`?>>o_;~tjHVWV}Syx5WGVPGn$qs32g0F9Cw&vct+^}X*d67fn zyuL3Y02AUHn1EKyT0~KZDSf?Ujs*Ahg2S6T~ZDANPShokB0iuaRwBFm}!|r*Sblb^*Sd4&hP8)Po+h9ljfDlTcUizX2=r zTiCUbHEXHUr6&>a@D$@dd3ybzn}gHYgnLP!INbY{){XwZhLY8j_lynb)un$g%N7<8 zAJE6rbAWjZi=Tp;TcY<@u4s&C)hnuXtIn;AdnB}J-Fa85p3$vacWH?yU8|OzXcxQ$ zGqtxQF@pS-p>zZTqPm8RInLOT%w6@EX-JXP-g>q66|_lT6AW;os`~hes-a$@LyzOj7^S<}||fy=DxJO|spiUU(iG`VHCBMIexN)p4r5mpZw zWhA!Tk0M}>q+fgL)!H{ueXY8&$J~Y4GcJRZYmld^wcw;m9=!6RC=YfYl!B@08F;@~ zhm%&LH_492)ZsI2RdXueIEC|1Y2dd2TN|Cs$V|hn_IX&C$UPi{#yG z9UUFJpWi;aXnP~AtBtjc=t2(Jaavuh7)YZn*3!*{@g zE+L&whk@6aejUs@w6Qi&Q^l;@2G4mNRUIsdHThqu2Qm#PWPR?3;VjSW>EPJ2r=z1Q zjD$XpwtafrIreeI=Zce6RmT91RSos@96D^^!1`iZ_YjJyNDv45z4gu3-CZ{}f}jHM zpRu@PJ{T47K~*wi0?lZM8#8ZkuPY80;ocJ83&T;K25$C_y#RVS*||Xq^t5;C3DDEY zzNaf8P@rs4_Dr}0J)A-YXtq{jy=gYMz`GR= zvDNf0^y|{4JFct-H%w`%8H`z}muu}AYl{8mim_7{lq>7l(iC8u=O7`NSbG5-3nsdT zX!NM(04S}NqJtq6t>)J0K<} z4ilkpCg1C78=4b`o>S0tu#np&TFHLvZJL@7&_$8W4dp?zX(OU(ojSt(1K|T-z=G(Z zI3bShBY3kz6eUX%j9(bp6XP6481s(vB6g9u<2bwlVyI4Te*D`BdMcXBTtxGv{vSV9 ziw?qZWT4jJWqAz=+ z^S?s+C#wbTDu?-%MMM=3^eJL3K+pahda>>jy1i`7Z7`|y`x9nB*W;$>Qj5H^sOCud zjFU;;bCO1H8B08*;UXBw((8(#ulGX{IPT{%%zHb1HM)9b4N~liocIp}-x*u_<=}8! zg2-Y|@A?v4Mz<@(61*iY?-ai1mFs?_L_05K%s!Lkyfc_mLh+f z0g%?4!&kdeW$ICDxJYa>+7Xs3a(vJf+Pm*{z8%b-`)T&F>7e|NGE`CJ~$5mT#(tH=AUQ+ zvtS;-#c9C>V!oK)3M~8i>r3nKe#t3aqC66Zqri5PlKs56Oh^rD8ZU1YiGeR*P};yZkWPTRA~w^wy)YZ1Fw- zH%83*%hW>GM8nXTA2wzhSfKkh9oTZ2=KnpL`O+A6q3j)H_$vi`NWZ_guve6?TKRs; z073b_k2K~dwR@rk#uc$EH6qCdLP$j2Uv18H&L124a-9($8WbNN6p}#CP7Dr8ObiN6 z98q2n=jhkZqf>jQW!Rsqua{3pOBZQZkJwm`{?XC>$q#Fy)7e%r^ROq#el{JWmbA1m z?nBYk4bF)5#O)vv6f^Zru|&Z{eO$D(XFVsOL%7`*_sH}c>DV1OFFn{{oa#Fx+bW>v zoM@ts`H<6R17wo#6Hv3j?b(1y=pb04MSxRCadPGc{FJ~KPK)g;qf`ml6Tc{ox&)5) zbpCQ;Y;A3ikscYYHo$c@hF!+U6Rzg@&%pg-TQoR}qJhR~`20GJ>C66m8q`G2h^f?Q zO&JP@jDKx;oTjQ?Op_%A@s56d`*-f(v}Am|wa-BBj_qACh6iRim}<1Pj+xieyrp~B zjxpseEsgu46G;)Ptb;qIyAW5kg*cz;|2ZF>@AB#FtIj9W!R$ZfgQcJOc$$`JJF3G`&&*TO;T`zwFJSGKo-&2=ByE+Kmo>P^c9g^K z#Lz$f{N*n{e@VK#Bl)~@uYdjg1@0+7)#s|7l8~c;E#V%}GZsS!bO4=BEQC*8yQ@2@ zmHnX!d0Byzy5jFY;P1o#^?L*SJvIj0QTTo;e1fjdKPOP%%^E`Ui}~V`|9eNkzI&z) zqy2}2|G#y&bU;#qOM1uP&MRrhAG$)_&;N5qhwkisWpEtLvZZXX#mp>=nOT-*#LUdh z%w#b$Gc#Gt%*?WwnVDhr-TU6#efwu)_xDCj^z=+j_f%(|I$70~ohLp*_*eJT`#S-% zeDxne5sXkgsfi-0g>XsGVBe)cXTYXi9K>V&ssTe*@R}fUKtrJO4{6jS^sgB^uzI@X z=wnCz`wae$x_ox~k?ZAO3rxGucY11c`SEYNL;SRIf5p5561K*VERR*hiQUx}7lNk@ ziKq_8b)y+?ti$thwpN>_cvBB!bvweRi9@@9h{%0mPs0VpBz0 zFIOX*L%c%-CS785@fA+sHy608SW+f`1zzb1T8f(urtuETONu>qYfOov0723jkW_OEDM!%ur7US57;L+Htr? z9`FgI#{!N=k#xb)_)FF-y!(89oDpl?g8mS;icqE^LS&2sZH`N7)*LV#-ad^`CkEBY zfsLt;*ZxFn&e`UD6}U#?HNd8fit4@j93Q@7d3hf$Ntv%dDv6yv)gc=uyQ+o;0l{%r zG=&ux$KJ~Xo@FV`g%`jqy(Z+Y1VxBzlt>4PP*L7`sjwY9jF8ljD7#C+zjLtP-_-bT zBUz|MAHKu9DZIV9ysna@Yj&}V6F!$-C;8!9Dl|=J44J~z(rcxH;pr~h*9f^EK%hrd zgypJ=3vfE*#_d4JDt&W3g8B^?!kpAxklQf!GxjL2_nF24`Cde3i?@?g0`fPbO-}}Y zf4=+bW^Bj29LWysj!yvH>b;4%eCZ#}UDnxDy@o(2bBUPw!-#}C1DvX@i|Ho@-E zRLsz;EJNmXD&p?^ZSjUa1jI&|H5J)|sf2^RUV9C$15muBWvRbg`~O@eJC>}#Fun!i zO9YRy*LXjz+jqukNi-pM^HE_y8WOYY8M7Ih%r4{X&xLPJ3{3{5)V!t5lWrnCl;6C= zw9&b^iZ-P^Kd!;!B+N$~6C}%Ym0~2FFq2pH&Hr#YbOOD#RfhRP*-KX|x}z|T-i>sc zR-Rht?uP^0n`sKA*$^=4_`V!cLU>O$A^um<$L2aNlm{I_8rZU|00Lz%s{?#5|JzHy@pT@z`bv&LU@HXW{FgX!& zwGm{FElB&}-6fcrdCf&fEbCU+@?+gB@Ccu3k3YZV4{~H7rv7T|DLt-F%}!Gpnh(p# zz}BxS4=a~J7$)4^)rZ*{>B}zDWOg=jd7EcT(HPTCi}@C0>k?aG<5C`@l6r!mYE}|) zNWau80w6Fd!06c^r$zTbiKXpVcR5u#U7i|7q87vstc)&uZ2?Blg0Y=hj~}GhOOOY9 zR}&H+PI5Bpc-LmNj4Eu$iiOvRlcVb^AExUo?USX58#jCb?UgupngfarFXVI>y~7Oa z-FeKjy3Wt~bh$sQsA+Q=Iy4n~o4w~xSE2dOsDpTsMmS)J&qWZ|*JD z^E@r~d)N>Z6bAqjuu#fX$UKTSq; z5rLdMPsU)CVtV|0M!sa*FrA^d#WWXXKHy~_=1hAvVm@PM9A@7&n)#Id!coJ4n1B*c zMc*t+s)MmHq9qqh!)Hz@z&!ueZ5mt)6M;A8Pj>Jtyg$ zS{0UDO?6maUT`g!O9QQd&&LD__k#|H zVTo;!ox)fIpF}n;v^p&so))lp5R%L32l&W4S&c5EAoiQ|ie56kfY(?L$6E^0Md@Z1 za!<=L(xKO^Tu|`f zn=qcW#ZOq-~5J7kZRLU5(>N`Pv*tdgnmJwTS zSHVPIU!kacM{?k(wE^20ilqh9j#ohDX$jPu)+>}Jo!^2i26Ii6$2Yf#V9vKWbKxlp zy6WGgeTWDg>30wmgA(ST08wunecz6d?FjUz6&+ilc-@d4@U@nHp~^!=R#CaA$Xjbk zb{{YKs95tlwMgNeI)l?34qcdlPb!h#80*amK@kV8AvC!S${8i}8a|#g{a9oYP zt0Qvrk|6U2dx5LZx`S7zg;>R?Y04d=GQEd)%hQNuHT@=!9vb-Wyj`OqS9`mHg)o!v zlabVwEhtvPnG)2YrZVcQIR9B%&{!6SjG$?y=44<|?jbM)YgtG|7=A<+jciyxD{V>u z(=ia1`OAV3%+Yqh)}{iGFUxpFmFFNj@S|wb2ek6X2IaFnP2)XC{QPdk! zNN(Bk0JZQ>II%96T3BhkbvI6i1L6A-e|OW?4S}l<9BhG)WrY$%FVFC@s2QVR>8e0y zk?3sjTO$?tjDU-_%^VQNPm0#)Hyta`;7>@!m<=M@((G|nBVK9S@6>k`Gc=`tdF7qh zuj2s^W*ykk@kgufcW_eN4oEk@ZrEY@3c`&~2>2R~)%#DX?FWU&qsw_}kH6!Z z)DPvbhuP6IzKwho4vWwaF?H48po+|B8Z(~0RU$o#d8@|4jzmyPZ-Zn-P8cTWzRX5Z zkS-yY1b4XSq^IhiX=(la2CsreL$>Wy3G)Cq)G5B>22$J9UAH@}uLu2dOJn|npc^WQ z-z!XT24D!Qj5H?vD9ytJo#|VlmD6NM=kA3&v3|i+py0Yx6^~(^)g=RQaDL8kwOqm9 z?ee(HAIo1xDZo1XDRbme3y^dYcu0!xEH=r1MVPJ5BRA6ZI%(pw2IN6xaWz{E7iFfL zbV|uZ;*5mgN1#ER1#WZl1dUt7>&##1SoCahJ0(itC@&XO9ZKCTIAk=i#v(Uh&v8v> zS92Bq856JBz#=%`Arn30b6oGTL5E5My_kNuqHqB4Aqg<+rM z745+4q-j&xxr|4h_JTa3OZDHt1#p=%^_Co($mnsh1b-<|!gtVWK@E}g1RIBiXN8?k&X~lGO_PuTTeZzPmHdGAywl*0Z^QpnL+eRj&@=>@v zoFwX>(J$4)}@7yiy%pS)`xu zjecW5Zt#}+1anCpX~GLAh%p@BZtQP;*^;5h@C-!eH^3#G%hZ67Dswzj9q+Mr ziR2XiFR?)}VbkR~?yjF$86x|HO+sSuhdJ)6w_$x>5=hUymxrKCbM{XFM5a$R#8Ejz zpF4Qte7U>7LT_Pq5*U)pJl1Q|8&Ptqja~ua0>!Mt@jFPOI=mOB-_DIXlIert3n;?q+5h4cC=NYf za~G87OGMQ9N;o!kt{2gOPKm`|;WxrYe}c}Q!da=MNOZTu__H&;fqKeRt=Zot=Mfy? zi?|In&!d>mGKP}8C~QNooLRg%dJe&xrQ`L76!E0$=nb-q9lR1UHwZnnLf znf980sd>hU^T5fAMsM-hEB`zExHnUHp6A!<1QTYCQRiZrMYK=%$cCqCw%EZ?zfp6Tg*v&UhN? zKp;HQYI*`4r8-w*Hn+M%0>02GoWL^DYy)#rEtRSRAi;V;;WCO&mBd+>s^Iicuyh*s1K>Oed>qDx7^RkHh*geEPPl;RI#jyeq*8DaB}U`8 zY4{EW3Ho;KZN<8A{mQOTV|g5ZF|jzN2Y^Q+H8E&)_L>R_mx|GACjN89UA$1A>xXO+ zHJ)w0w#vpUawrZTGB^bUG!c8ks}d0)5nfyb*B&JpxT|m3eYoM~O7B9n_D#So5D8Y( z0)|{F5y2~w5|G&EX~i=+-%2kjH0k-tW>sOe;wZ}5*6uVFwOF<2MKyD7B6GdCJk%Q8 zpj53)JylrWbi6P?s{4)Q7%TaFn%+lJ+FR%Fj)D9R_;;mDr{^rwAn3i5iOzcevTyJ# zLu-0!R2@T|Gq8{wL5;^}L^k-WIm@p)y=|P~B^~P6k+dDAeRQn=M%LzeJ(>P^@y$Sg z2Y(Fy5o&PCT|v>`1m=x~N??Fec&Go3LC8)fKO`;$hm)}kP8S9^q#Rdj`Vh1n@DU;C zWvW54f=_mfIx0tDM9v2{&w_W2z3D2PLY2eH^7f^!BMr zwqhKSXCbtTN#c3)SexV2D8)66{750aT(hRE{rT8D-b(frlAzIb&LH9;znGe^k9O7N z>PR~apB8VW@m7bI!Y<7vJ@JU~D5v~6$02(;kFfJ~TIp!5g9EZE2vVYOy4h{jdskWH zYV`G}+B1W5C)&Zw?w|rHf!Nr!FhD{B4{&QLCqZX+Y*~C zHZ(4#_lWL^;8-m!k;?%j9PWKY^GWVq*?;jk0Z?*c_sM;9L}2mqJ8)Up)UDyOS;B1_ zheDk%eKmN+;^|GdbI=f-HeG4(?_{Cc#WZYM*2FCfcY1O-IXxEn(GV}{{edpjv0}qn z;sHz1wk@<$sLtdeg}6*1hN-|L?1TDKv@Eqia8H0M@<3DGAXV&G{K{PAv||VeIfwVR z6{VcG-f!mBK6M zrc8o!^lM^tA(2i5Ym0tBkM|qVV2r6oj;T&q0t+L^-C^AC=;W4_DHz?OAKng;>lDF+ z>}ulJpQNqGWK-a}w+QG`b;EkFXhjr`K6JtGW@blnWDo@D(HxU9t{ZR%vK2Y{OgXWb>^x%)L5hQe$BFcY z4drww!UA>yA0TQWR2h9+D&mT<^QP3Ut$c*;twj^1FIO?GSHNzngirdnn)^tQZy+Eb zpkV8n->rvq5P0rEaA3Z^00CLMX~X&FeO*a*@p0?T6W1K}pN|kA-~V+4i0g`huA%Oh z`Zc?suR!DWt3SPtVeM~Xir=>=AQj4xhpsF8X)dZtDy@T?4$hm9Um_6hteHgUcj_U& z{R~SU~&w zrrxeSHZEV4mrpA?7WFF|u3>GpAV3BYOg~lf)}ND0-6x)U%z!(lkR^qNLpo*c#b#0w zhEEoALIIsAF`QkT+|$bBwtO?J(?vtGwNUn3A}>5Nh^b|}~?3*paK5u{FZp@(0V zjX2xox*t}U-bL+kA~WD7NNPeq#27j8qc)4ZeQ8eYYeQ?24D0&QI?5tiwQpjj#Cbdg zUNx5Fvs-ab7e0H@y=d7^J7fzGdf9jpH0qToX5sThPe{fVs4SHwu9OP!Rw9R+88Yal z@9z0 zApjL#0vFM)H24?#JIjk~1~W;tG5{u$Q~elu4@fI+s;d6TGhNuX=KSSs3ucg+_O}>^ zpB26-dvY05=OP)&XM>X}&g_RUr|^fjx>=sEh?SA=py=4iy*g6gwd?mfX4(GgM{$N9 zUteXT(8}s-OPxoz4#Exd+Q9#@q+*&JPD|^=g6Y~1%zjZ3%96vWE5Cg&^^xFlvc1jj zRgK6hF2uAN-##LCSBB4zD)9nG23AI5o?r!f%UQGBtVK18@|~g-XwY-&K)i$PWs}Gp zd&RhUbJPJp{VX{b4lgTwKYrRzA{49M(FbJT??c|>Jps$bL>l=5JY|A*;jgDeo23`y z4K#__8gS<#AEiIfN|tm&rA4CNI2-X(Tjg{A^l#+~x9gBQzu=R>SId>6TV zf^&6SkFb_ubf8SCynkEfOP$^KJUJU6%|^V7#yc``fn`A@kDx_v(E<2!xe$Jg-cRPw z!|Amfns9jGs{P8!)0uh)*B7jz;&*~Jh;99GL_oY@j+xxrpru$;+J;CyjgN8=lVfF^ zE-$7a*Mmjw{==!)>N$-@_JBK@(tmp{Zd&|3b57gJPhX6DJ<-K~w2|vJG&ut90xd3+ z>gR@A$Qto}K}7!uQxek8NzWU)Wy)93@N0(EKA`7=M+%cY7++n8`b9M;qq9$QPd@{#+24RBGeGde!RLycHaYLn+GVRm@SfbgMK03 zY!gusdtnH5i>iPTVDM~6W}wZQ?2Wi605_KjYjg&}iabT`7UAZEqb86iG!@Pr*?NU@ zzomjQEntNw=n-_7g1Z7OO0F13>CTlQb0>8r#9%LL$&yC~vZDjC3Y-ey$!BxNmX{t7 z2fo(jvIErNvPfdNyopJs<<4LRM1kp0J*wZ8!CR0l?u-f~-{uU~{NaR|;Ew>?$?pMY zQ+N4SsijXVrvAIeAm9hZSLrP&Hl?DBI?m$bG8uh~z_p8(Ny?gNuA$~fZnH~g@pFj! z_)G)k#pPR3FTZP4GF7=rjJ!c4N0zj{>S$s>rl14cBRkd+C1&K(BDm%5+@9QxLP@1% zosM^t6E*rx`&QF#j2>A_1R)*}=}%eAwwP@X^Cb9KB49rIfizU;6LGA*2TczS24xb^;z1pXgXEtqY?je!JV~>euct#ia%a11(EOHUq z9CAW#QLc7@%-@nLY6mDOR3F)X`^BTJ&ng4ayyE;%iQbb&diP;*_w|1Re^KYfaoy<@ zZUD6aNpY}Dk%q?-GXR??!Ci`^BZWU-b*->oeC*dq4KkI(F5Jds2*C7ja>$ z)u6JK!s5Eff&wkQXzlMNugp|p4dqNSW{@W;EepPsEFu=O1E*rT9IQs*v25lIu2SzA zg?0S!h4J0cdB>3~9T1A746@Yr!vF9Fam51-B9_yqSOBNdNElHj3}30p>RMZM)w#Tc zPvbHKWv%Rc4G#SN9a{a&C`#3Gho0k@)m52of>w& z(d5Xcx1=Z1iLuXzu}@&+$R!wpma_npHcd=9dxnlTlPSs+@hf|9&?aVXtVn!<~nr;_|IEqsMy;wTow|5$?o7su^JcyYr7v4&= zCCfXX4Fs6EhG(?LFu5~rnq(*xR&Up(8x$-if?c(D+p!FFViLgUpXv|+_(Ne8$RF*! zJ^eLz&G*dNluawITNl4;Xz}YsaKWTzylTJOJ>3(zu4xD1=EH5UYWF+WwViSqrSCG! z%MH76DP%`Lo8vs(Qmqv`|1vRmdGIlLJPlESG4qI}bZYf>)>gL3e+NC)j+AslPaS-F zZccYpIhpN3##61zOOl(q^x&@X4#^E(){{h2(a5lDG5hFR$y?0bT4SW2%K zlNLp14h=Djzy0woU5r{@uu5gDhG{r>=|g5=G4-hU4FYuj0CSS**qqJ1ycAQWt?33_ zeql2g;rt`4t?azzK#6>JhEULHvbI&&x&Y62m$W&P4Rk57tjVwK!fF9luazn_)Ul z^x>faUqF8}HT9@2Bsx=Pd_o@G`xw<=&&NK}eEHGnU4BG0?19L>QHf3sxC#X70oH{5 zOa#5d<#({ZcE8NPk0ySX;DfBfAYf_?-RT!~VXI#z9OSlBkn3)!KIQYOZl?yJ2_ICy z8s^hVFSS&S8H8yi|1B1_JYhKb^D_TO%E^WJFO7f%1WdfHJgPx>j<0ibG|a zv(}=piq=i12^f0pz=LiTk-ygc07lt6bu6-WcF0&oqzNZ}sQ_aqOq?G^`G^zIFb+ku z?xh1Od$?8&5yMpcj$ijf5isOnbLdDf;vJ+bF&r<8;_tp*RYXZc*n=Sk*v5JS42DxL zt0AiFa_l(T=Vpl9Cmkm3R&t%n9*v8f=Fw_FY?w`iVMXI6LgqI!46rVX#-1MC7aGHW z)FOmJ9~^B4zJ45Kho=Sogi)+Xj*uQ_Gb(LC61{SKO zx00stMV*nqGsV&mbxFXLzTfg&C*@5`_E>Wgq?JC^zr1$KYU13op(}6ZlIz#F;j}NR zxB_fKPAlatqb{OVmZGvA+9(n_N)b6v?Y$sR6g6RGgnmW3kbf%)Um7K`7e>e$qc6N+ zAFJEr)7cRwi{<{^Gs)Pm9I@ZZ?rW7X#rmj3C`(4=ec!@_r7;1|p;s~FO2I!w%yt!V z##n#Afmi?y{|(J3f?zsrn?e73Hi++f?W8#$&B9KsfDfgO9km&qQmbD zNyg6a|PRRBrn=DPtRsG@A9v_McvAiVE9cG*vewWXR6TR$j z-5R5c7cab+vcz6FoYrMcR;m5e`0bh}=jw7N|z1ueazGE+uDSEZts|` zbHe)3K9EOLZrPl*koP=$^oZZ?iCwYGN%hO32Px7$_A^_Y*MwoJ#ed%^l0eY1%>qrw z?P_G(kZ9NcZrOckX$C+f8VplBSm8AwEt+~TtUuX2rG6T0|K&?yWs@Cd>k#!?zVLNP zuyXx%vA*Q<>VgKt zZOe%0s&o-rN)5-at&H75QHbCMFy09Ont6nJN~Izl2Z+X!d?|iXIf%;nH8HrgPATJ&m8^vb)`N zuubWGU*%3TTW!&vh;8%f_^Pe#dx)0pjL5t;MJ%=dc9=pl`;e!2kQYHzD=z!6GqJ^k z>HFO(;PiJ=cTKbQN`QVNwV2}8lTPu^9q@CCC=g%boSkpAfe(gEp)^0?uy7DSei`w+ z1MV>+i#*6ubK5$R`4VftoR&E8CE&=Y-HZmQVu%sQLt1+}wl`N)H#FT~s zv0+r5#ihdZdnX=$QoI_v-1$%*_KhFrJfCrh3^H%+G7#Hk?t6yn7X}$EBi=qE$JeK| zABW8Le2glS+C*AZVp%m8VX%DcMf%)}K>2M5gMGuC3P`YeZVGzytjS9a>10b8Hz$B5 z>ck_2ePY~s$o|j9F*SSevz%|MI00r-RWOOAZ?sO-x41czgvl|6aWbt;yrEoi{Xx5M zVpPk*_(m-#^OSquE1!V&?M@qE_qe{j=60R30k$T&YJkBzRFp=ztdZl8z^A745BCr)X-1r+`kR%tD53w>|E)sNo!0wGp7r zn^Xd9SGNk?(U~PGpx=Dvf$g-LJ9mmKvoJ9~H%HHyJawOHHkpy5?Io=euT6?}Bu<4a zjXYiEAvsDdhqxB6SrC^9GNX*nhM=dZS3p2^NdW3J`1Ds zL=Tgmb_g$)fkaXtz#aORR))VxP4Iq}>`V6hpTRjai+fN^^94Zcn$8ap!pBt6SI|kc z=WEv$(gn~M%~f=eX}ncurdvdEgMo}tD_H&2#?0|OZs!}z)y7I2obnTw1uCbLt{uvYz}d&Zdp^$9>4|RHFP=J(5xq^`$1CX--3&_UqbAx zX>p^3iw+qUJQKlhjCsar$Rm2B4$Gs_E%6x7aX!NH=7K*!zw!-5T6*K3w9XqP^}e+| zfj?ejZwk#*N*Tmqb%Q1S37%{AS=Tt8^!z}Uv+)7G_eh%X4z&!7JwT4Wh#_X(5)iuS8aMm8DWpHGz6f$xwVzJ<7R2VN zJS2T|F2ga1!5=PTizgbmrs<1rIGtUCyZ=MxhUnxWi3(O9`|%1^=k_v0<8;Qi^PlT; z3zCslsI0^4!EL-Ep}Pg42i8Ml&!%eLs0|R&-C$k{)t`@2Zfvt7o&R(0K?Z*`+z?Zp zz(d3)c=I*`&a~J;-J-gz-I7b`|7;i0L8irQ8h(TU(!WjYPDE)c_Er9PfK0qOa>x~d zQ>JQ^_D=WvnC(TvAn9B<5^8M#Z%Nnu*Ix$S7Dnnp*r#s{s&5( z9l~DS@H*x?P$NZ&qrWRVq)6~gz8-zzCz=YO_oYr4OWSiFxKE{H4e&HxQ*G)u-JAa+ ze_>99;Tdg9LFk~K{>=k#hvae^55)fhDMPYtV`pKB5Vt+%gs1b3!^OT*My?Je_DnQo z#TLk+8`$&FW`g3&)@RE))|jBPy|0KHhRGzg2#P%Bq$Qg|L@L`qzY1`Px%4$M6Q=^D z=$FK2`NvyaGD5IfllBj{b0I_+ZV`{uFo1B?F}bQMVjcY^xN-ouJ9BKqKY+TS>x#nE zjxsJ_Od(#hPoU-*2~LqCDT@(>ce$4DAI>eAl1mgL#QAzuAN$pET#`+GoHgq!`_Il2 zEloDUHS+f2`koVoQSVICO!=JGt-^w}1 zf8rl{-95aC*Xy%FwshyWhjZ!3`l3r3QntCp)5pdKDy591zcJ~{VWmw+;R@$@W2pRx z%iH@u)ys!EJEE!(y6dJ=BCU4C)3_U#S%eK%8?AQ3tX50osGLuV8Yd2)5U0ZPrD`8r zOpGhtLCg>~Y7I#*FZ9tf2Dc6+%uVcd!Yz+4B$UA|2Ltm<^{>))aHF zv|`5$hHj*wc7qtBE1PWw$$ui)>k3-q2Qbudu44`{IXlF@rUZ*Yj|ixFn%En--;f4S zf~E-b1h@2Zzv1@I?`8aRR@k{&g$yo7LsFRK9`K9Y#W|FiOeU5*dIhx!qN*?71~8By zaZ-w)xHG3N;P$pLTg+xy!y4dEGEs9w3Z|^beH+&mf^x{((S>s8;HIa}bPZ@p)rkTv zx%5LGC(P>8+{VlB(G&k6n+|UYuP4VQ&Ky0Fu?NSuH-(5^oR0~2JordN!-?EGYe%C; zj?prfOhgkN8#&9<2eNnZC2976=7u>^O;lkSFs{}R@F=LNmADA2kB-AR;>34wiMYs8 z#J&5>640QeI)tRXujT!Nh!6a^RFL|GInxPu*D32t1nP8FK0&?SgyVL3kkk4a%hLS%7G1 z@&bant953#SQL|mJx$_42fl#YpI^m^-LJHuFydpqgafB5^~7$XgAfB78EyM2#InvX#svTs)}A0F2VDwQbz_T zJvtMxA!*DS-2BB~+3bev4Y(15X@BG6qeoLtao|)#Th}FpzKkE{J8lR{-aIHW{HAeC zDNVb=obgPwHW~1~F*2gGF~E0Glt;K=+NWz=7plP1?eWMYAH^17%v$XFyKYlPNZ>?I z20`5pob!PJ22Cx9$1UNvQF{Q5cZNT><Gih5$%n8#=FKss!gO;gUa^yn*qItG`Qpr1yT|=}tMx|1KCv|2>-ScSDtdX$+bn(Wl}_PbB|#0nfi_Qotm-p-Nh|vEB$k? zZ{uS^2J2)dXd}Xyt$cZavg+pd6hrjqPa@{PXF6c+SLM~AMMR-}Q$d>#C^<{55M)I| zE}JWZ5M=a1a0fsF1uYIB;R)jM77!9gN=On|3N&a8q&SvMvi~jehMs45JR$?f#gx?2 zj+nQnMj^qx^Bm&?NFc_sQ!M7>#T>xhS)LNIzEKI0N6#g$#OkN9z9r%hrchE3n+@5f zF~(4Nj^PI+yqL9q^)-$|g-FvWu`1i_=<5lV&=El-uDT4b_K-uf@Y!rH9w@n1N5y>J z+h=0nF^nxW5G!mZ742+~gsB_gXKl;tj8@_MPRSG${H;+4lZt>(oguv3;ylr4 zQb--qXcn}|uv`o)(P%2#Z45Qi?Gp>I<#sk2pvpZZLp1v85pq-6cl%a~<>!uS+8>07 zM$<#~0WX(J)QXK=&W=Us|Vz3<_$K@X}v_Jg7vF7eaTE zTG<3SJFrCFCn>1Jo>JN&TIPuss1z5Qi9DYJ&WkmnxoG!WVr>W7U6U2Z4!7q`nOXqu zg()jAV~=c7y91UaWdQrZKI^o7=#i)li3BvTM26ttPr8b0v=2a$8DrrXIZu6~Qi~br zbe4aCm}HxhULw|^s94O5B3J%$TsmRDF*MFfA;1cuYmIH3kMzoj6Dd9uP(`ytXruR$ zRXSq&aLrkpYo|vwlQKzTh+=%P3{=b|D1QRMS|KH>{3I9-EkaVG6#uDiOAeesmW}Gf zJ&PE>B-R%?dn7sm4dcLeI+zm5bLlJC3$_l$LQixcR<#qL9{eCIIm` zA)pg=&17GZt$r^fg=9V#%1C3tui}c}gcTFTaWWSPU9rPZeN9yBpi3rx4cn0-$TQRu z^|ef7m`@{hJOs;TpSC(Y+ygx#B&5z1!fCnB^Z3jL1jNNfm(?3#!Yqv#;Tt3c7Zo6~ z9(PkD{Yg%C4b}m$(7+9pNMH=s`1!Z@LcU?;ZDUc00o)lvS#kH__=GQo4RgOjLasCYx4|cj+B^$J+twI*pbbKo;V(Ip7-8i*npcUpv~Au_vYusgS$SY^k!#ezSuT1 zXX;?Yv#TB-_G>dYmQT_>FiFg16o zaB~clw~t^9FM^K@i_1~X_whe(CKAgB+ z4svQrIKUb|UQ})#YGOUKFzkIuK<(aeQ3Sj@OAmdzuojVkrjCpvp3?~%sm~%XcNG7u z-mThP#dWKt=gohDdVKyMH8eun;Ef3wpD(8MPZ@B(&_6&J6dmH?17^c7>=D}BN`=64 zAI92`>)~KD`@U|O!mD2iheWaJ!*V~d1BX@_(@``B++-pQ8PhoeEBI0a{1U$MfjvgO zrHgf~LMAPD5R(NR8^NmcL=L|nyGC_3i%b?5Ft8rs=fQl{&Sn<=;}4S(9u@!ZI}vLOg_uGR1Ej;PKK%HEMCb?*chRi{ z_x@NMv127@W@*eKF@~tRY0zy$6i7e#Ras_N z9lLBcTIuQW)QO>s9oaVSHDxy)t7Keq{Eqg$B@^boU4a_t5+8h|9bobZX;6)T9Fw`D z*pqqp=STkXDC_*09GyBN6B{6VUIR4hg0rvMr~>Bb<{JY>zU`^LelI|2V1Ecx%Z zPhJuw6?}6Mq%q@CuSseG(5T_TU)hKJjFt;OZb#Lp466(CCrV-he^(vWySQ=)DID#q zgEck}DU=3U7dcS(XN^kwpxcK{3DQUb?JjODLJB7UN)G|5t@xVoHFt|s45_s3lPW|> zGu)}zbFsdX{VvRZx5E*~(h`5Z;pi_L8$>T71gcIpK6zAqfAYAPuQ&RZ+&qBt0b9d^ zMIpehY){{RgPy|!cZ{h2j4T@v#$tju)QqnGjAIY(MH3U2feTmT$IC&W9~dSZ-}o(v z;qVirJ%Z$))Rq6pLwOr#2=ook{q2i441lPBjR0Zc`i|?m;uQ;OEhL93^w*>^$60o@ z@tmXKegZ4O?obvs$KZspHQvX9XRYpm^A%fk9~uYU!|w?lR%19htVSsdvX2ehjm`3N z&u)4&T#x)YNxrX?MZ+DgINsC_XOeIoIkM(wq~Tbho*RuzP#xbv!yXa;*Gy6xiXHN- zCOTOkyHuphR4o;609yJwY;DJ_!30;_iijQb3H6avVS_}A?%{+t`J_Pl5+8DyXp^kL za>OmKVl51RrswqtO~+VWo=46phB<24Sk4_G+ZAw6W?owC3*V}!rZ4RCxA=pV|D{^o zLfL3?kLrWRPt73m4uW=cVQw^PWx_{~ACk_!z?`G|n z`ITbn8nRMtz)2MoR>dmU70Z5rGWeGzyZM(Jt-dCOtBcpI3a{E7ixc|a1$_B8;e4mM z`H8!{Nkso3=Jp1JBT|ajW7h2SOTs2?$I}6d zXqN5wM&ql0Bu2gH%n@h6dc0ONr*_w_uAeYYMblILwv|zVhZ+YCBi8rCw?r?kDo=d*; z@!R^wj`(Fx)mf8l&VQS8by8i&^M1mG|Ltzf#^>#R%IDj6aAA=Tq!Z$fQ!)3>GuoV9;sR8ub^_oN(BzmKzQJW_dxv<8eCg%%?hF&}p?e z?=EI~AmH=5J?t!`yAbd}`$2*bezo?O&wn)a-;n*<-phb|0~gd407H|sB?>?lH`NP3 zlXgV{qKX;H0nwx!8T(NsEbaQyWIUls6GZjJNE0RPDGL(B&CLoDrQNX%6U2SUJrr$#}uB z%!?XGu`EbB(ALk3TUgaENPFNp&Wo97IW9=K@ZQZ!*m&J7$oPQ5vJC42U|Gj)Ng`NA zO${PgCtXn_Sw;*MBv~gMna5eiEFH#Kr#xY3>WB3uXd1@tsVnM7%`GY#Cf#u?>qm?= zEE^`AxzFmytUb;ero16>9f$QqaGl2O$TJ*A%}g?!CfzVJ9Y>5*G@T}#*w-A#tX$Td zro0e%?uHFyc<#p?=-cl`Eo|EFCp`!}??z1io0GE%T|vH*`#?ZgR{qPT|K6$a`3^-9 z(+x#jqU#4kR3Iw|LsDVe8%~%fN*qpHW||jHRHUjOPEzH%BSDx8M3x{fHH?!WDpZu0 zAgOem9V5(_WEvwbx2zo_D%P|gBdPYhq0Y$>{6U>pq8~<`TOcn^onK);TAq_9PF0>) zW?ojFTcmDYo?qpDVv&<8jBSxuYMf?~Td1sVkzeV&a+;Gb&2^erZrysCTdeJVnqTex zf}@)w0D+@lq8EgtS0E>hV^Co?n68^AMwYH$W>%E0SEOc~ZcycRprM;9gs!1qYLuj* zSE!_{VNmI`xT>2k#kQ(nZq>M|SFGi{YEbRMu>-mP$$Y}?9{ zpljPHv#4s@F4C}W+pY4r@Yu=~!S~oHHOcbWE>zL>*sXNgc-_jE;d|XFx9NP{F4p-# z0sC5w`m*Y8<^K(^8u#48*@Qm+Zz#Wh`GTQ?34o($LJgYYv9@qpy+&u{u!r=EcP>A^9N;NoI18yVZ1g3mQkD7T5zlj@)~$f3ko`*aICYcC{nC*nlQ8t zv+6ij4RhL%cuuow7+OwqS_r)Nvl;|m_j8*dpm0n}hyXa|H7JrurWH(sNahVN6e*@< zR0S#Kby(&Jrd3>r3Fgi3FtoKx$P%=5Yd@$fYge!>D(f~NaI9*V(KW2<*5SF&Ygh3- z&g(Y6LE_mjA&KBQtU;4!+OJ@lWIAksV`$kgqp4^)ti!Rd+ppretUGLiBJkcUp~&#w zuEEfE+^pc(blh%05_sJ#W9WF@t|RcjzsMl+5Q6j<29lSR#c|k!GN{QrSX@Qn9wbuvA)u z=|YiKu(Vd|{n0}4=5GN&P$VX+@mheGLeWGDtI39+kVI0YYJ>55kd#K_`BH<)rY}Gw zDwD(MU@cHWrE0y|>2SkeL?)}l_5NTzSVrgbD+JhMel_ur!3U2=!@mM-|4AnS7;iCD%PRi}`GYP&wNPo8?Na)le1hD?Bcj{aJr0^C6vPtNr<4CHEsfkNeHpKsoy*AJl&`Y}>!v z`d{1ke=#hwDxv^5;Qur1{{zEb@(WynfPj5r!F2O~qu5R`L|H;#a3n>B9wb50+yHc8 z)$ITb0bnc;T}W{ThyjqS=|>mQyzWo_B^XMY1e6~kO%@a{El3hpKQ2fX5Kc8r5>j3^ zOa@4|>?Mh4Kkuph5(q?92FeYfstAe|CMXN5?I)-R2qh{i3n?uqssN-K=9NXX?&tsh z0z|Sb0u?4${t8M|)-MWcoY(&q5Xp306jE7t{0orjxLXv_dB0=t{^bwL)-T%!%ib%R zAHg=Lx*NgX1B{ns8&I5+Wbc!#8)qBRyd7`q77V9p?3W*-Y3da(uV@@pKdor$5l**k z98g}hZ0eJ4J8K-$em!&P76`_5?w1?Fb?Fr=&Tt-7JIrwD5lYr{9#HzL>Cz|FwB|gd z^|=vSEHdF+*_ZhsimxNLvy5y|#^7*N^teC(6ydV3hs`TU*Z)5(_`e<&{0p==5MQ7@6SnzpAuI*Uqw;@^`y`RdFdBU*K!tC zUe$6Dly2Q}9@Tcya_Jk4?{*eioaJ^An5^w~9@(_vcKLstf1k0@{M%>cxbFa#WB}HKoGu^!VKv9k+PBZEP``#EguJ<{65&*yYNdG3i z4(B_gXOUHUV#z?+^T45?TXNWL$1>;W_1+j=;s1}at~;v9tBtosr51&{7-gvlNQ3NY z7{>|9NT~x*By3QSKv)S7Ql*GM!jvT;Q9!|>gkg(ln1KWc5Gp7`2qT0bK_UrB2$19p zj_YfVZ`l2Ou7k@-pVk}#LAqU27@l<@?aIeXL|68yAR@j5!@i2i8AbZ)~;TZ%)? zZ+CVU8}^LK3vw9=nX?V_wluj$uiZdFY2f$D3(EPUeaz3%U6f^1|y(T)5-Dv*x zs9rLw>tq48r8}hbpPMr{!A$C~qw#ihfCZHpwAg=M7wXM5!h&plbU3p>22}e2T23qsACb^(F zg!-+pg(44XhgMWJu-7zV#m+wK`7ODu)i|15R^PWSH7O3u(savNsJ+M*>pqCIPmOw2 z|3u^>MIZAbg7OaLy0<9`;(+b21w)DLO;9mJV(mMFwMMp>+Lg^)XC&=Guk2L}OJsld z6Wvl8gPlO=ZhmBmGhLPfSzxI^FWia_)i~4uY5|Ijz(HxSyw5ZTGE4GdW`gGuM@$Ax9!a_~F>AP_EDL<3UxJmWqj5;0~MzNnI!@IJL4p;cfb!oNvn@ij6FdGsZ6^|P-13s3^3^F zXinrw($CKt22clpt`pE$%!`%Y1AiO)GY~x{vM8vO6v$Psy@Z2DN@kEr;%cz?L#s8a z!|CP6V~bE&X>8aZ+q_%!=_J6hGRg%;VBK))>+aGnSF?FNM+vsaO1=dS_*K)8E?vng z&@iz=hc)|aX$;nKprkSn-ZT_&4b7JdXx$}Iq$uoFhry25x4emb4dK>bF2*~Tt`n^l z=e#DyrXHw^)*stZRAFhQVszmjLpa2$YwOPntkt`j#c+AiSe(h2EYmWQo{J69tWfZR z6;=9?(=c)J%6|_U`;u-SP>ofyid@m+)PwkL<@$wc9wYgBWkc+4r`E+K9Ct;Z1#H#2 z&~e*^Hn1k;(VX3gpBMmXN1-eaj}5N$x32W6F)ZLZP`erUBbN!-qt>W#SYYM?^dv@7aW;G$4P=7YM>64k)Wufvv5h1cSuTGjZRXial>gZCGF^%M8OaIdu$oDj5 z>`@2Aj;YekdUZMe+ADO(rSTZJHMu9ND_Rf9b;ssevh$lMtfD%BzbwZd+(Zki>-{pSazvD2IlJ8YJlkIyx zRO;fL+Na3wtx}J*?Qsi$HT5*j>EI5A=FW&Dd$XA#XNAjvZC^z7b7=MlmCqEpH1OM= z-Rk=kpDvN5lqpDNBQ#AwUa)MY#TPW!=M6m=3F2cur$5&V&nN6}wSGFT)8|p!8@M1X z7eMNrYy5-c{Lrdq*{|^daOtPV$7i9lIe>#A*OSX4gGK2oLDn+x!_*UB>3QkxA&^x0 z+W}m~CetQg2W;iuFXmtU)G71RzJl~U80OK=9@%Uw2~|5Q#1US(>Ds$baS=~e0_&}>zr2@l|~!4%lWcSQ01WLmUsL|Db^8`x^8tbC|$;nw_u06s?K(;=oli1XAvCc(Lz;jztOR{wNRN~CPrfRFSc5aoqF)LX> zw-C6YHa9#rrR^Rtl?R>D1XWB7zU<3ODkk*wfpx=+JF=9SsbC2QB5_&RhF-G`yG>fx zsPY{K`CK<}I1KhwVw?%8zuD^q1ra5Wb*2BK|a9UF?kl&^3@^3h7+&|N6Tnu6L%=-cE0eq{QTAKwaeMM6mr&) zl0j;lqc+|l&bcTDh)Wz$y{yB{)DLnVFE_lH0N82DC{Y{jyqNizP))EZU%YUkCbd5@ z&iU*hYU-5q4M?{6iCdSB*6!c_mV3&&)wY%-G-XWy#)bf9bVd}YzyVopq`^-7Eyw+hPb2g2+IKFG< zCH|T4QO5Uk{ZZ7kH;xvIcurbxaV#%)H;-|*>wOlv3O^e0y5{vj&oH&e<`#D`WMNoW zN=`pwrmBL#t|=DchWJ6}dsfwJ9DLB@6DaH!GNjvGzSDFL>C`Hx17HFn3F}bltH=lk)vNFa|0$ zBh6s5=<&iVb0rhx3HYxWhUW~l{lp$lWp@5TD`RXry_~F*>|b!qkusNVGZr;np?>AW zI6fnluc9t<)|qppLS)z7q+v~8SLPQycWU@Y6Zv0s;344ezVw=B5c*}Gm8$X8Zu;B{ ze%phN{oKkSld51px)nwI`;Wkcg5KSu&M!Xyh}C>;pYUAn$hR>^zImYQF_rw|p<7Tt zvPUC3yi!7<6g1zc7|Js-s_A`Yu^=8J7?iG0F0rt#edZ7o_*sGE9;c-Vx#f>-hbn@Dz>Lp!Q%C)qv zeS*6JOI1)n+~kKIj1$JD&T>)`mU^A`3{ed*wXVTFVf^V=V2?}K)Q1?+_B${$5;=YP z@&mYeqR{Rb(v2C;c;*n=nE2F>=kly1JTiA`KBLA6H_tvf(Bupv2ru)?mKGHTjL9{HJIRx-b_lYgk0QrLL1vygtyri-L-UmIR@o*;LIkd*_` zyij2mk%-~zww3fsp4z+lwQ_L{a`>7Yh-nz_dH3AJQyJo1SBYJf{V8wJ`bB{(V*VxI zrNI>il0#UjJTIRp91@;F6kqUWS%GN!gpiGS;rE4v$dPNqBg(7p=HBuC2#v&?^oLOd zQgY6slM=d6Mhir3X0b~+_UOr&4JKlA^a(b`$jHQ)8{o_6Dp61c%IeytHhrA!Peqp| z=W#H%a?*-*i_M?8krF7t7s!x3i5WydjeCmvmrUVTXJxs05at3QL=`-#gj(5|&;G6D9-^ zimj}gyehHgoo@Q<_$A0+T%L`x^41Z)oN&>DGZ`i;2YAPtUchtXukp{oo8NA&6|er) zGDJ82G#tT!n!wd-nOvn2)W1&wOM`o-BDf9SB{<6~)L)iZFE{QZ`s+a|Nq8E>3ukG7 iPRm)#S$}f#5E|-6aVj1b26LcTaG4cXulwxcrrz?$dqx_U-@P z_r1qgtEgJv+MB)CT64@X$DA8?B}qvza4;}12ufZsRM2n87DUkZUp@cjM@n2m5)2I7 z1~fPkG!UI_n2k_MSxF7_84?Ukc>@fb@u~EjokdFRohTTX`VJTv=@S^3XkCZDxrdS( z3p*H?>jvngnxJM#(QPNHrY@om2Ij^K`Yr%!;^(W2QYN-W4xm04Ffb-IFfg+a7Usir z3nOPxUv3d-4D8<;s)dcGIjFA+3|t5k41$&c>WXW@(#*&d41BW(G=}?EW9l)Iv;=j6 z`astKMha?_#6R&mEp1&qz`(Z%!N5>w!N6#ScrM82ZR|}z<1Vkkz|ed_eG_oszT(;% zc{qSUK!UCX3^W#u6dn;A+Rn(<4Ad6|ng<-vJm9jjs;@iPJG+2EK!L80I0y{PG^4PH z%gMpX40J3dE9f|wU(FIaEYM@g*wEC_aKq>$*xNVPV3Nb|P|8gOil-U2%jZiCw#$FM zv;$sswu_||ER@EYn7$F+%U>DzM7X%h!uSid}9zJg>dmUB|e!gtP|f&vUT zHUx)gtuVP!<`rw?Z8m2_r6dfGp|mdNJv1S<@r!uR{JM8@S+&FgNOu*_sKV9jTPQbD zPm3>Moy(j_V+Gxa+!W>wTCAy~q4&02Wkx#2I?Ld#3)#F=%-^Zp@G7dT9ozLH2~PC| z3?sMTyy3@}YCYC6`sHre^=lh}u8gXD<|f!;j2p|0*_gm6$MTA`rAv4>c83(5;TtXDv71@Qx{{E``3L z`2#x*y$m4a9;X(T8vDmOINW~fRkxmpKl=z1Zoq7y3S$O6Zt~75^&a{`k6k)DbYw=# zJ;UpsYHoXVzPWv9AG&+<0_HnGq8=@Ls^q*^(;24u{BCUhx)B)dKa!mIl0RkKOHW}x zynNky$?Qj-xnXgM=f|As{8R2eN4~?;{>5FuBGP{jTvCmN-6$w?Rip4Nm zJS`O)kPO z2lH6!nM08#(8LA1;II+POA}Ka<+H$ebRgvpvn+S59)Mkp!j*LU$gmt1A(P_{^X&_x z3S5IU|9Ky5Z#;Rn;AKZF8}cV`c1haZk3bShI&fK9atKv%NO8!MwS7;<;szD&B;k&8 z-}5zZCz&RnO)K7r((R=tzcDn}uaFTqQU#_F`)gYZ>%)m@0Z3eFCR?pCZtw7u(>BsP z0-=VRy4szq`ka_T`FxX0i*U=k!_DC_tQJ zOlzNUl(bBX5g@l8G-g3y9ch}Hl5aXq9_6G!y?2zChkeJB;$|~@JN21iqh+&2L;{iC z3Y=AM%e&Q3-{aziXY?LL@`uf!ZX0p||2Ic&oXmw4k(NX3m0LmNTj$jN>_@>KF&E*X zO79lIQrgb7l-sg~hK4Z<^bXday^y?J3p*CIXuI?8EkatamjHNslBt+C|7}W(K7a=%25c5#duR zIU+Unsi^Wz&%O2y^cuY_wDe+PG`lqYj)|LwHiu?=GhVEp>S>z3mcrg{Bl;3v^OuKI z#7$$7z7V|%2o1joKlA$%y;U}lGT4dzUTFJ%8-GvMLn*t4AL&#sUu5%6FMw^}JKmS^ zPiV=)&weSPUc>v*RFW8JpE1rqhQIS+>oG=W7^%CU{;Ww)mL0UqE_yROo)@!M>*LGH zxaFbUtrfaA-Q8V4Z0=c(t{>{vE5(~Yu-3q!Yw?5c4fGxb!(=>K|F?^B_pqPQ)d-As z)1$a3)JfH|Nf@2{pDaH;c`@SX)C*~nma%`VGOU6DH?kn!X1sYi+1joy_pogvTYKxA zq_hzd*9kqgJhmUu@O zEyqX`wzFz__GoG)^pm_^3E^kzYWapZYyH0ehPYMdU9RBa?>W| zKIVUwI@@P@Y{YR}4H~a1tV%axt?t}B=Qs&9+$zndW34X0V=W^NwD{@PV@@ltX$daH ziYvMZ@bNmJ=9fZ^z%HdYJgq8YurURveiZh5w(lzd52+yxSzV{LU0?XqSN;BQe7?MB za@H&v!`=~&PPP3!KttYZ7P1q6?<6ZZjJMt}3}|NN-zgA?61#k#@sPORk&fi?Y0Zh5 zRqq`lrbhfbEUJ=}lH9nGLVQ{!F4Z^hXt~~xsus@>x=LWF&d>17>O8A=KHWzmXYU;< zw|vwtM>sYLO+N z);;Lctl%bD-dXqrZ22P@q4Cj+^f!1fPHp3;wQ#b9{7PdMW>Q4vZEEz52>U@GYGgFT z_yu|~aH;XyBh-E1BT9!^7tK2RcA>o%t@?m$B(W1KVmB!b1v|PE8@vfAiU|iZJUh{J zE-VK-MF<-QM=ozI8-Xk8_QJ==M{(WP!%acHe+ZN>`*OkXf}jg6(xNQ z=WrJLa5Y3p4YhR+^l=rkRSiHV3tOjJ@TdxdKO4=vh6lfv~JUEU-&`xi7j0qc^S*RU^Z%z2@FQCmY$ViN-GcVxGflvlU+``ERNfyS*O}xf2 zNtC=sG0CR9A5@dVc+F~3A)1V3Q(~GdhEklG>_OA-VQH1D?O~db{LaJXCMCebs3Mu) z!+I?h<<7Vx+5XNvy#CG(W&!-}1I#knomtTG=ADVuQZ(#RwHsrvV&gPkRqY8QJ^%bz ze#7voQ&&Y@sdVdHMQ**$DYutf;c9QxO_tz~iJLgV-hrEX-(gzjn$VGhF`hmLI6cum zmk+wyeNIriWPOejx@djwRC+Sh4*7Z?s9m^pk*J*%^wg-`m~`c+9ar_-sh!1Em8spg zS0M`=Vpk{&oYYn@3*4qx1PUBOSJ2H}Q&-LR9F|wz_FQgPefKV>JU%2X4ND?Moq67BO?dAKnizr0!Sp+NI;3&MjA_fzXxqkny->bT8o#73Fz`mU2W&od zdcNex`+uN%@;<~n**EB~ZZvp4Ubp4<=RfN#Cwb8j9YSlSk;=~`OmwrVol(cy=xQ(=j(E0P z*M8J%n0pB-PtNG~f!FFWPPpivTY5FIj>Z?^Sw2xj@tO)lsYzDo*P=O#6|X z*1LGUN%(}5Htd-;4y8LFp*upQJ7lIihNUZGP(hwr+WghJIpVna6G3yZ-}S!R*@hxC zTT*LN5JVrxr(k(wcD1A-PGTcIj-)|GbB-V>&#->a&orJPg`Qt6JR|m#hXwREB=on; z^o@iN-VdPb?{XyovF&R=$Cnv%o!7oQipv$iDw3w6kCntKQ4Mz~Q42_!$>DZgh-^7g z5?l>ehd+?yZ zXlYyDG2<@Mnkk-rb(;J8AF>+NU+c?E1PK-fT5XIubUY%3ffj4~ZyGLfUWS5vde-mW zYdIs$*L5LRZ$>*@Jy0tHRc1zXy!c(R zLnCB$(4mhl6N=FkZcK9s@7e^H0(TI%Z_B4}NJ_-&b19QP4x%c@3W-~|0#dC>?F$miqeJcHGiJ$)JTENHz6Vy;M-U@I;#)rJ7UEFXM zrb%?fF*#{CXN(d@qoj0JdIA2;Q&yVI^RDr(S`4+WlOA2FLJkyVq7!9A`Q!;qM|L%AT9CXb^FPY z1F+InjtH-$&OWya$gI{8GSN=LitYE~^hbifQsW;qP>?GS2PSu>^LOb=WfBQ5@yN4m zGx_nBtdI!8yTcl1JdTGsPFNKRP;{QKHFWxG>$To;){H%$@TP2C`8+WLg#4u<#uK-% z{0D#q_WQ_Zrln9-p!GZo*#9IcgTp%|Fj-SwiLE7Gs1gJ)(p6(1FfCkmILG- z_6))*GsPM@THj`TaUs5ojCeL`-Tm}BasA4rIchH`)|zj-moYte+3%4?^R0hoeQjeD zJ%47Iai2(|D&`$+eV(nk3-Pcg&B%)2o@^yJ;*NR#d*nt3hSq)o%_VbaB>x)1XDqho zayA63_^^2Gr^bW}{z9v1#oG-a?mR=gn|6&;Xg;_Vf;a(OZu~dkeW2*ivvTsoK3F zO((1NwPwr9BPreilE#tVmpAdM>DzJ=M#Q(wKSr(C7p7Pa5RdOMYAcjnV7;0=Af?=&1=^j>iuba`wy ziMmQPK^d3tBD1_rc zhU3VV=s=g~2+(w(@@x34ar}~SoFmb*?R#ij&v09p4|Y`)Rojp?<2KWpITV9d zuhp7G>C2>3Tp0!Y2k_(d7@lp} zNwNx!e3LiK=Oa5(9P>kOnfyHu&(F5s9R6-s@B5;az_*jXi&L{Due$^VUn_cq&ua}4 zv<60%Wrg}lXdr?bok|iuzxXW`y;@*No>~Ct&d><91zi@a+2eNK>!SPv#gS`b&rNx^ zlg1&iYasWTcM%`h!qCD@5ly1)ybgANuMO27eNDh0`ygZ!j61iR-j4atG<{zbX6Md= ze5fQMvBYK3IztY#P(_taM*rEzIUUKGzIuc@OuX&rRw6edEH?OHT5<2$X8K^Z$B67^{QVgoC%3w9>>{7-xQr?mEKUi%_s}8* zfeUH_iB+@xWbnwQrN z3`_tyLMFqE7`F!sKLX_qbJk+m)hWZF`v`=PP80DMYZTL8yOzuiY-=kUiV2cGt|h