From 6a2c9e386f4326c75ef141f3f543d7fa26dcfd23 Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Mon, 29 Jan 2024 18:28:35 +0800 Subject: [PATCH 01/65] feat: folder drag drop --- __init__.py | 41 ++++++------ ui/src/Api.ts | 12 +++- ui/src/App.tsx | 8 +-- .../RecentFilesDrawer/FilesListFolderItem.tsx | 62 ++++++++++++------- .../RecentFilesDrawer/RecentFilesDrawer.tsx | 4 +- ui/src/RecentFilesDrawer/WorkflowListItem.tsx | 42 ++++++++----- ui/src/db-tables/FoldersTable.ts | 27 ++++++-- ui/src/db-tables/WorkflowsTable.ts | 5 +- ui/src/utils.tsx | 19 +++--- 9 files changed, 135 insertions(+), 85 deletions(-) diff --git a/__init__.py b/__init__.py index 6638cef..18eed92 100644 --- a/__init__.py +++ b/__init__.py @@ -261,6 +261,22 @@ def file_handle(name, file, existFlowIds, fileList): else: fileList.append(fileInfo) +def folder_handle(path, existFlowIds): + fileList = [] + for item in os.listdir(path): + item_path = os.path.join(path, item) + if os.path.isfile(item_path) and item_path.endswith('.json'): + with open(item_path, 'r') as f: + file_handle(item, f, existFlowIds, fileList) + + elif os.path.isdir(item_path): + fileList.append({ + 'name': item, + 'list': folder_handle(item_path, existFlowIds) + }) + return fileList + + # Scan all files and subfolders in the local save directory. # For files, compare the extra.workspace_info.id in the json format file with the flow of the current DB to determine whether it is a flow that needs to be added; # For subfolders, scan the json files in the subfolder and use the same processing method as the file to determine whether it is a flow that needs to be added; @@ -270,29 +286,8 @@ async def scan_local_new_files(request): path = reqJson['path'] existFlowIds = reqJson['existFlowIds'] - fileList = [] - folderList = [] - - for item in os.listdir(path): - item_path = os.path.join(path, item) - if os.path.isfile(item_path) and item_path.endswith('.json'): - with open(item_path, 'r') as f: - file_handle(item, f, existFlowIds, fileList) - - elif os.path.isdir(item_path): - folder = { - 'name': item, - 'list': [] - } - for sub_item in os.listdir(item_path): - sub_item_path = os.path.join(item_path, sub_item) - if os.path.isfile(sub_item_path) and sub_item_path.endswith('.json'): - with open(sub_item_path, 'r') as f: - file_handle(sub_item, f, existFlowIds, folder['list']) - - if len(folder['list']) > 0: - folderList.append(folder) - return web.Response(text=json.dumps({'fileList': fileList, 'folderList': folderList}), content_type='application/json') + fileList = folder_handle(path, existFlowIds) + return web.Response(text=json.dumps(fileList), content_type='application/json') @server.PromptServer.instance.routes.post("/workspace/delete_folder") diff --git a/ui/src/Api.ts b/ui/src/Api.ts index 4ae1547..cd36b3d 100644 --- a/ui/src/Api.ts +++ b/ui/src/Api.ts @@ -122,6 +122,16 @@ export async function openWorkflowsFolder() { } } +export type ScanLocalFile = { + name: string; + json: string; +}; +export type ScanLocalFolder = { + name: string; + list: ScanLocalResult[]; +}; +export type ScanLocalResult = ScanLocalFile | ScanLocalFolder; + export async function scanLocalNewFiles(path: string, existFlowIds: string[]) { try { const response = await fetch("/workspace/scan_local_new_files", { @@ -134,7 +144,7 @@ export async function scanLocalNewFiles(path: string, existFlowIds: string[]) { existFlowIds, }), }); - const result = await response.json(); + const result: ScanLocalResult[] = await response.json(); return result; } catch (error) { console.error("Error scan local new files:", error); diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 12d7afb..daa4bcf 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -154,11 +154,9 @@ export default function App() { await userSettingsTable?.getSetting("myWorkflowsDir"); const allFlows = await workflowsTable?.listAll(); const existFlowIds = (allFlows && allFlows.map((flow) => flow.id)) || []; - const { fileList, folderList } = await scanLocalNewFiles( - myWorkflowsDir!, - existFlowIds, - ); - await syncNewFlowOfLocalDisk(fileList, folderList); + const fileList = await scanLocalNewFiles(myWorkflowsDir!, existFlowIds); + if (!fileList || fileList.length === 0) return; + await syncNewFlowOfLocalDisk(fileList); } }; diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx index e7d0f6e..4f1078d 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx @@ -4,7 +4,14 @@ import { isFolder, workflowsTable, } from "../db-tables/WorkspaceDB"; -import { useState, memo, useContext, useEffect, MouseEvent } from "react"; +import { + useState, + memo, + useContext, + useEffect, + MouseEvent, + DragEvent, +} from "react"; import { IconChevronDown, IconChevronRight } from "@tabler/icons-react"; import { RecentFilesContext } from "../WorkspaceContext"; import WorkflowListItem from "./WorkflowListItem"; @@ -22,8 +29,12 @@ export default memo(function FilesListFolderItem({ folder }: Props) { const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 }); const [isMenuOpen, setIsMenuOpen] = useState(false); const { colorMode } = useColorMode(); - const { draggingFile, refreshFolderStamp, onRefreshFilesList } = - useContext(RecentFilesContext); + const { + draggingFile, + setDraggingFile, + refreshFolderStamp, + onRefreshFilesList, + } = useContext(RecentFilesContext); const activeStyle = colorMode === "light" ? { backgroundColor: "#E2E8F0" } @@ -45,6 +56,22 @@ export default memo(function FilesListFolderItem({ folder }: Props) { setMenuPosition({ x: event.clientX, y: event.clientY }); setIsMenuOpen(true); }; + const handleDrop = async () => { + if (!draggingFile) return setIsActive(false); + if (isFolder(draggingFile)) { + if (draggingFile.id === folder.id) return setIsActive(false); + await foldersTable?.update({ + id: draggingFile.id, + parentFolderID: folder.id, + }); + } else if (!isFolder(draggingFile)) { + await workflowsTable?.updateFlow(draggingFile.id, { + parentFolderID: folder.id, + }); + } + await onRefreshFilesList?.(); + setIsActive(false); + }; useEffect(() => { if (!!folder.isCollapse === isCollapsed) return; foldersTable?.update({ @@ -62,22 +89,14 @@ export default memo(function FilesListFolderItem({ folder }: Props) { setIsCollapsed(!isCollapsed); }} onContextMenu={handleContextMenu} + draggable="true" onDragOver={(e) => { e.preventDefault(); setIsActive(true); }} - onDragLeave={() => { - setIsActive(false); - }} - onDrop={async () => { - if (draggingFile && !isFolder(draggingFile)) { - await workflowsTable?.updateFlow(draggingFile.id, { - parentFolderID: folder.id, - }); - await onRefreshFilesList?.(); - } - setIsActive(false); - }} + onDragLeave={() => setIsActive(false)} + onDragStart={() => setDraggingFile?.(folder)} + onDrop={handleDrop} _hover={activeStyle} style={isActive || isMenuOpen ? activeStyle : undefined} > @@ -97,14 +116,13 @@ export default memo(function FilesListFolderItem({ folder }: Props) { {folder.name} - - setIsMenuOpen(false)} - folder={folder} - /> + setIsMenuOpen(false)} + folder={folder} + /> {!isCollapsed && ( {children.map((file) => { diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index d03157d..e25f467 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -31,7 +31,7 @@ import { sortFileItem } from "../utils"; import WorkflowListItem from "./WorkflowListItem"; import MultipleSelectionOperation from "./MultipleSelectionOperation"; import { ESortTypes, sortTypeLocalStorageKey } from "./types"; -// @ts-ignore +// @ts-expect-error ComfyUI import import { app } from "/scripts/app.js"; import { insertWorkflowToCanvas3 } from "./InsertWorkflowToCanvas"; import FilesListFolderItem from "./FilesListFolderItem"; @@ -129,7 +129,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { useEffect(() => { loadLatestWorkflows(); - const handleDrop = async (e: any) => { + const handleDrop = async (e: { canvasX: number; canvasY: number }) => { if (draggingWorkflowID.current) { const flow = await workflowsTable?.get(draggingWorkflowID.current); flow && diff --git a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx index 9b9e133..013b43f 100644 --- a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx +++ b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx @@ -11,10 +11,14 @@ import { Tooltip, } from "@chakra-ui/react"; import { IconExternalLink } from "@tabler/icons-react"; -import { isFolder, workflowsTable } from "../db-tables/WorkspaceDB"; +import { + foldersTable, + isFolder, + workflowsTable, +} from "../db-tables/WorkspaceDB"; import { formatTimestamp, openWorkflowInNewTab, isImageFormat } from "../utils"; import AddTagToWorkflowPopover from "./AddTagToWorkflowPopover"; -import { useState, memo, ChangeEvent, useContext } from "react"; +import { MouseEvent, useState, memo, ChangeEvent, useContext } from "react"; import WorkflowListItemRightClickMenu from "./WorkflowListItemRightClickMenu"; import DeleteConfirm from "../components/DeleteConfirm"; import { RecentFilesContext, WorkspaceContext } from "../WorkspaceContext"; @@ -43,7 +47,7 @@ export default memo(function WorkflowListItem({ workflow }: Props) { multiSelectedFlowsID.includes(workflow.id); const { curFlowID, loadWorkflowID } = useContext(WorkspaceContext); const isSelected = curFlowID === workflow.id; - const handleContextMenu = (event: any) => { + const handleContextMenu = (event: MouseEvent) => { event.preventDefault(); setMenuPosition({ x: event.clientX, y: event.clientY }); setIsMenuOpen(true); @@ -54,6 +58,24 @@ export default memo(function WorkflowListItem({ workflow }: Props) { }; const hoverBgColor = colorMode === "light" ? "gray.200" : "#4A5568"; + const handleDrop = async () => { + if (!draggingFile) return setIsDraggingOver(false); + if (isFolder(draggingFile)) { + if (draggingFile.id === workflow.parentFolderID) + return setIsDraggingOver(false); + await foldersTable?.update({ + id: draggingFile.id, + parentFolderID: workflow.parentFolderID, + }); + } else { + await workflowsTable?.updateFlow(draggingFile.id, { + parentFolderID: workflow.parentFolderID, + }); + } + await onRefreshFilesList?.(); + setIsDraggingOver(false); + }; + const basicInfoComp = ( { setIsDraggingOver(false); }} - onDrop={async () => { - if (draggingFile && !isFolder(draggingFile)) { - await workflowsTable?.updateFlow(draggingFile.id, { - parentFolderID: workflow.parentFolderID, - }); - await onRefreshFilesList?.(); - } - setIsDraggingOver(false); - }} + onDrop={handleDrop} backgroundColor={ isSelected ? "teal.200" : isMenuOpen ? hoverBgColor : undefined } color={isSelected && !isMultiSelecting ? "#333" : undefined} draggable={!isMultiSelecting} - onDragStart={(e) => { - setDraggingFile && setDraggingFile(workflow); - }} + onDragStart={() => setDraggingFile?.(workflow)} borderRadius={6} px={1} py={1} diff --git a/ui/src/db-tables/FoldersTable.ts b/ui/src/db-tables/FoldersTable.ts index 62a87ec..ab40491 100644 --- a/ui/src/db-tables/FoldersTable.ts +++ b/ui/src/db-tables/FoldersTable.ts @@ -23,7 +23,10 @@ export class FoldersTable extends TableBase { name: string; parentFolderID?: string; }): Promise { - const uniqueName = await this.generateUniqueName(input.name); + const uniqueName = await this.generateUniqueName( + input.name, + input.parentFolderID, + ); const folder: Folder = { id: uuidv4(), name: uniqueName, @@ -53,11 +56,27 @@ export class FoldersTable extends TableBase { if (input.name != null) { newRecord.updateTime = Date.now(); } + const allFolders = await this.listAll(); + const folderWithSameName = allFolders.find( + (f) => + f.parentFolderID == newRecord.parentFolderID && // use == instead of ===, because parentFolderID can be null or undefined + f.name === newRecord.name && + f.id !== newRecord.id, + ); + if (folderWithSameName != null) { + input.name = await this.generateUniqueName( + newRecord.name, + newRecord.parentFolderID ?? undefined, + ); + } await indexdb.folders.update(input.id, input); this.saveDiskDB(); // folder moved or renamed - move all workflows to the right directory(not required when folded state changes) - if (input.name != null || input.parentFolderID != null) { + if ( + input.name != folder.name || + input.parentFolderID != folder.parentFolderID + ) { validateOrSaveAllJsonFileMyWorkflows(true); } } @@ -109,10 +128,10 @@ export class FoldersTable extends TableBase { this.saveDiskDB(); } - public async generateUniqueName(name?: string) { + public async generateUniqueName(name?: string, parentFolderID?: string) { let newFlowName = name ?? "New folder"; const folderNameList = await this.listAll().then((list) => - list.map((f) => f.name), + list.filter((f) => f.parentFolderID == parentFolderID).map((f) => f.name), ); if (folderNameList.includes(newFlowName)) { let num = 2; diff --git a/ui/src/db-tables/WorkflowsTable.ts b/ui/src/db-tables/WorkflowsTable.ts index c455e26..53d2ac6 100644 --- a/ui/src/db-tables/WorkflowsTable.ts +++ b/ui/src/db-tables/WorkflowsTable.ts @@ -113,10 +113,7 @@ export class WorkflowsTable extends TableBase { } await this.saveDiskDB(); // save to my_workflows/ - if ( - Object.prototype.hasOwnProperty.call(input, "name") || - Object.prototype.hasOwnProperty.call(input, "parentFolderID") - ) { + if ("name" in input || "parentFolderID" in input) { // renamed file or moved file folder await deleteJsonFileMyWorkflows(before); await saveJsonFileMyWorkflows(after); diff --git a/ui/src/utils.tsx b/ui/src/utils.tsx index 71e734c..7f61a94 100644 --- a/ui/src/utils.tsx +++ b/ui/src/utils.tsx @@ -1,5 +1,5 @@ // @ts-ignore -import { deleteFile, updateFile } from "./Api"; +import { ScanLocalFile, ScanLocalFolder, ScanLocalResult, deleteFile, updateFile } from "./Api"; import { ESortTypes } from "./RecentFilesDrawer/types"; import { workflowsTable, @@ -157,6 +157,7 @@ export async function validateOrSaveAllJsonFileMyWorkflows( for (const workflow of flowList) { const fullPath = await generateFilePathAbsolute(workflow); if (workflow.filePath != fullPath) { + console.log(workflow.filePath, fullPath); // file path changed workflow.filePath != null && (await deleteFile(workflow.filePath, deleteEmptyFolder)); @@ -546,16 +547,15 @@ export function getFileUrl(relativePath: string) { } export async function syncNewFlowOfLocalDisk( - singleFlowList: Workflow[], - folderList: { - name: string; - list: Workflow[]; - }[], + scanList: ScanLocalResult[], + parentFolderID?: string, ) { - if (singleFlowList.length) { - await workflowsTable?.batchCreateFlows(singleFlowList, true); + const fileList = scanList.filter((s): s is ScanLocalFile => "json" in s); + if (fileList.length) { + await workflowsTable?.batchCreateFlows(fileList, true, parentFolderID); } + const folderList = scanList.filter((s): s is ScanLocalFolder => "list" in s); if (folderList.length) { const currentFolderList = await foldersTable?.listAll(); @@ -571,11 +571,12 @@ export async function syncNewFlowOfLocalDisk( } else { const newFolder = await foldersTable?.create({ name: folder.name, + parentFolderID, }); folderId = newFolder?.id; } - await workflowsTable?.batchCreateFlows(folder.list, true, folderId); + await syncNewFlowOfLocalDisk(folder.list, folderId); } } } From 941aa7cb13f568649e5fffb61413838fb389a55f Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Mon, 29 Jan 2024 18:58:07 +0800 Subject: [PATCH 02/65] fix: drag style --- .../RecentFilesDrawer/FilesListFolderItem.tsx | 9 +-- ui/src/RecentFilesDrawer/ItemsList.tsx | 68 +++++++++++++++++++ .../RecentFilesDrawer/RecentFilesDrawer.tsx | 8 +-- ui/src/RecentFilesDrawer/WorkflowListItem.tsx | 37 ---------- 4 files changed, 72 insertions(+), 50 deletions(-) create mode 100644 ui/src/RecentFilesDrawer/ItemsList.tsx diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx index 4f1078d..a8b31a0 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx @@ -18,6 +18,7 @@ import WorkflowListItem from "./WorkflowListItem"; import FilesListFolderItemRightClickMenu from "./FilesListFolderItemRightClickMenu"; import { ESortTypes, sortTypeLocalStorageKey } from "./types"; import { Folder, Workflow } from "../types/dbTypes"; +import ItemsList from "./ItemsList"; type Props = { folder: Folder; @@ -125,13 +126,7 @@ export default memo(function FilesListFolderItem({ folder }: Props) { /> {!isCollapsed && ( - {children.map((file) => { - if (isFolder(file)) { - return ; - } else { - return ; - } - })} + )} diff --git a/ui/src/RecentFilesDrawer/ItemsList.tsx b/ui/src/RecentFilesDrawer/ItemsList.tsx new file mode 100644 index 0000000..01b142c --- /dev/null +++ b/ui/src/RecentFilesDrawer/ItemsList.tsx @@ -0,0 +1,68 @@ +import { useContext, useState } from "react"; +import { RecentFilesContext } from "../WorkspaceContext"; +import { + foldersTable, + isFolder, + workflowsTable, +} from "../db-tables/WorkspaceDB"; +import { Folder, Workflow } from "../types/dbTypes"; +import FilesListFolderItem from "./FilesListFolderItem"; +import WorkflowListItem from "./WorkflowListItem"; +import { Box } from "@chakra-ui/react"; + +export default function ItemsList({ + items, +}: { + items: Array; +}) { + const folders = items + .filter(isFolder) + .sort((a, b) => a.name.localeCompare(b.name)); + const workflows = items + .filter((item): item is Workflow => !isFolder(item)) + .sort((a, b) => a.name.localeCompare(b.name)); + const parentFolderID = workflows[0]?.parentFolderID; + + const [isDraggingOver, setIsDraggingOver] = useState(false); + const { onRefreshFilesList, draggingFile } = useContext(RecentFilesContext); + + const handleDrop = async () => { + if (!draggingFile) return setIsDraggingOver(false); + if (isFolder(draggingFile)) { + if (draggingFile.id === parentFolderID) return setIsDraggingOver(false); + await foldersTable?.update({ + id: draggingFile.id, + parentFolderID: parentFolderID, + }); + } else { + await workflowsTable?.updateFlow(draggingFile.id, { + parentFolderID: parentFolderID, + }); + } + await onRefreshFilesList?.(); + setIsDraggingOver(false); + }; + + return ( + <> + {folders.map((folder) => ( + + ))} + { + e.preventDefault(); + setIsDraggingOver(true); + }} + onDragLeave={() => { + setIsDraggingOver(false); + }} + onDrop={handleDrop} + > + {workflows.map((workflow) => ( + + ))} + + + ); +} diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index e25f467..9eb3fee 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -41,6 +41,7 @@ import { openWorkflowsFolder } from "../Api"; import { Folder, Workflow } from "../types/dbTypes"; import ImportFileButton from "./ImportFileButton"; import MyTagsRow from "./MyTagsRow"; +import ItemsList from "./ItemsList"; type Props = { onClose: () => void; @@ -325,12 +326,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { onUpdateSearchValue={onUpdateSearchValue} /> - {currentRenderingData.map((n) => { - if (isFolder(n)) { - return ; - } - return ; - })} + diff --git a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx index 013b43f..57e6708 100644 --- a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx +++ b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx @@ -11,11 +11,6 @@ import { Tooltip, } from "@chakra-ui/react"; import { IconExternalLink } from "@tabler/icons-react"; -import { - foldersTable, - isFolder, - workflowsTable, -} from "../db-tables/WorkspaceDB"; import { formatTimestamp, openWorkflowInNewTab, isImageFormat } from "../utils"; import AddTagToWorkflowPopover from "./AddTagToWorkflowPopover"; import { MouseEvent, useState, memo, ChangeEvent, useContext } from "react"; @@ -29,7 +24,6 @@ type Props = { }; export default memo(function WorkflowListItem({ workflow }: Props) { const { colorMode } = useColorMode(); - const [isDraggingOver, setIsDraggingOver] = useState(false); const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 }); const [isMenuOpen, setIsMenuOpen] = useState(false); const { @@ -38,8 +32,6 @@ export default memo(function WorkflowListItem({ workflow }: Props) { onMultiSelectFlow, onDeleteFlow, multiSelectedFlowsID, - onRefreshFilesList, - draggingFile, } = useContext(RecentFilesContext); const isChecked = multiSelectedFlowsID && @@ -58,36 +50,10 @@ export default memo(function WorkflowListItem({ workflow }: Props) { }; const hoverBgColor = colorMode === "light" ? "gray.200" : "#4A5568"; - const handleDrop = async () => { - if (!draggingFile) return setIsDraggingOver(false); - if (isFolder(draggingFile)) { - if (draggingFile.id === workflow.parentFolderID) - return setIsDraggingOver(false); - await foldersTable?.update({ - id: draggingFile.id, - parentFolderID: workflow.parentFolderID, - }); - } else { - await workflowsTable?.updateFlow(draggingFile.id, { - parentFolderID: workflow.parentFolderID, - }); - } - await onRefreshFilesList?.(); - setIsDraggingOver(false); - }; - const basicInfoComp = ( { - e.preventDefault(); - setIsDraggingOver(true); - }} - onDragLeave={() => { - setIsDraggingOver(false); - }} - onDrop={handleDrop} backgroundColor={ isSelected ? "teal.200" : isMenuOpen ? hoverBgColor : undefined } @@ -132,9 +98,6 @@ export default memo(function WorkflowListItem({ workflow }: Props) { - {isDraggingOver && ( - - )} ); From 6358cbd2934530094f9d514b9e4d9f28551d8037 Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Mon, 29 Jan 2024 21:01:03 +0800 Subject: [PATCH 03/65] feat: remove getRecords;fix image duplication issue --- ui/src/App.tsx | 7 +++++-- ui/src/db-tables/ChangelogsTable.ts | 14 ++------------ ui/src/db-tables/MediaTable.ts | 6 +----- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 12d7afb..f96aad7 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -452,7 +452,7 @@ export default function App() { window.addEventListener("beforeunload", handleBeforeUnload); - api.addEventListener("executed", (e: any) => { + const handleExecuted = (e: any) => { e.detail?.output?.images?.forEach( (im: { filename: string; subfolder: string; type: string }) => { if (im.type === "output") { @@ -467,12 +467,15 @@ export default function App() { } }, ); - }); + }; + + api.addEventListener("executed", handleExecuted); return () => { // window.removeEventListener("message", authTokenListener); window.removeEventListener("keydown", shortcutListener); window.removeEventListener("change", fileInputListener); window.removeEventListener("beforeunload", handleBeforeUnload); + window.removeEventListener("executed", handleExecuted); clearInterval(autoSaveTimer.current); }; }, []); diff --git a/ui/src/db-tables/ChangelogsTable.ts b/ui/src/db-tables/ChangelogsTable.ts index f9ef55e..6c9b100 100644 --- a/ui/src/db-tables/ChangelogsTable.ts +++ b/ui/src/db-tables/ChangelogsTable.ts @@ -20,21 +20,11 @@ export class ChangelogsTable extends TableBase { .equals(workflowID) .reverse() .sortBy("createTime"); - if (objects?.length) return objects; - - const records = await this.getRecords(); - return Object.values(records) - .filter((c) => c.workflowID === workflowID) - .sort((a, b) => b.createTime - a.createTime); + return objects; } public async getLastestByWorkflowID(workflowID: string): Promise { const objects = await this.listByWorkflowID(workflowID); - if (objects?.length) return objects[0]; - const records = await this.getRecords(); - const all = Object.values(records) - .filter((c) => c.workflowID === workflowID) - .sort((a, b) => b.createTime - a.createTime); - return all[0]; + return objects[0]; } public async create(input: { json: string; diff --git a/ui/src/db-tables/MediaTable.ts b/ui/src/db-tables/MediaTable.ts index 2200769..5fdbd0a 100644 --- a/ui/src/db-tables/MediaTable.ts +++ b/ui/src/db-tables/MediaTable.ts @@ -15,11 +15,7 @@ export class MediaTable extends TableBase { .equals(workflowID) .reverse() .sortBy("createTime"); - if (medias.length > 0) return medias; - const records = await this.getRecords(); - return Object.values(records) - .filter((c) => c.workflowID === workflowID) - .sort((a, b) => b.createTime - a.createTime); + return medias; } public async create(input: { From 0a56d12eff5cc681903cc3dcbd603b039cb0283c Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Tue, 30 Jan 2024 12:43:06 +0800 Subject: [PATCH 04/65] feat: add folders on top setting --- .../RecentFilesDrawer/FilesListFolderItem.tsx | 12 +++-- ui/src/RecentFilesDrawer/ItemsList.tsx | 53 +++++++++++++------ .../RecentFilesDrawer/RecentFilesDrawer.tsx | 35 ++++++++++-- ui/src/RecentFilesDrawer/types.ts | 1 + ui/src/db-tables/FoldersTable.ts | 18 +++---- 5 files changed, 84 insertions(+), 35 deletions(-) diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx index a8b31a0..078bc69 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx @@ -14,7 +14,6 @@ import { } from "react"; import { IconChevronDown, IconChevronRight } from "@tabler/icons-react"; import { RecentFilesContext } from "../WorkspaceContext"; -import WorkflowListItem from "./WorkflowListItem"; import FilesListFolderItemRightClickMenu from "./FilesListFolderItemRightClickMenu"; import { ESortTypes, sortTypeLocalStorageKey } from "./types"; import { Folder, Workflow } from "../types/dbTypes"; @@ -57,7 +56,9 @@ export default memo(function FilesListFolderItem({ folder }: Props) { setMenuPosition({ x: event.clientX, y: event.clientY }); setIsMenuOpen(true); }; - const handleDrop = async () => { + const handleDrop = async (e: DragEvent) => { + e.preventDefault(); + e.stopPropagation(); if (!draggingFile) return setIsActive(false); if (isFolder(draggingFile)) { if (draggingFile.id === folder.id) return setIsActive(false); @@ -93,9 +94,14 @@ export default memo(function FilesListFolderItem({ folder }: Props) { draggable="true" onDragOver={(e) => { e.preventDefault(); + e.stopPropagation(); setIsActive(true); }} - onDragLeave={() => setIsActive(false)} + onDragLeave={(e) => { + e.preventDefault(); + e.stopPropagation(); + setIsActive(false); + }} onDragStart={() => setDraggingFile?.(folder)} onDrop={handleDrop} _hover={activeStyle} diff --git a/ui/src/RecentFilesDrawer/ItemsList.tsx b/ui/src/RecentFilesDrawer/ItemsList.tsx index 01b142c..63cdbd3 100644 --- a/ui/src/RecentFilesDrawer/ItemsList.tsx +++ b/ui/src/RecentFilesDrawer/ItemsList.tsx @@ -1,4 +1,4 @@ -import { useContext, useState } from "react"; +import { DragEvent, useContext, useEffect, useState } from "react"; import { RecentFilesContext } from "../WorkspaceContext"; import { foldersTable, @@ -9,24 +9,27 @@ import { Folder, Workflow } from "../types/dbTypes"; import FilesListFolderItem from "./FilesListFolderItem"; import WorkflowListItem from "./WorkflowListItem"; import { Box } from "@chakra-ui/react"; +import { folderOnTopLocalStorageKey } from "./types"; export default function ItemsList({ items, }: { items: Array; }) { - const folders = items - .filter(isFolder) - .sort((a, b) => a.name.localeCompare(b.name)); - const workflows = items - .filter((item): item is Workflow => !isFolder(item)) - .sort((a, b) => a.name.localeCompare(b.name)); + const [folderOnTop, setFolderOnTop] = useState( + window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", + ); + const folders = items.filter(isFolder); + const workflows = items.filter((item): item is Workflow => !isFolder(item)); const parentFolderID = workflows[0]?.parentFolderID; const [isDraggingOver, setIsDraggingOver] = useState(false); - const { onRefreshFilesList, draggingFile } = useContext(RecentFilesContext); + const { onRefreshFilesList, draggingFile, refreshFolderStamp } = + useContext(RecentFilesContext); - const handleDrop = async () => { + const handleDrop = async (e: DragEvent) => { + e.preventDefault(); + e.stopPropagation(); if (!draggingFile) return setIsDraggingOver(false); if (isFolder(draggingFile)) { if (draggingFile.id === parentFolderID) return setIsDraggingOver(false); @@ -43,25 +46,43 @@ export default function ItemsList({ setIsDraggingOver(false); }; + useEffect(() => { + setFolderOnTop( + window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", + ); + }, [refreshFolderStamp]); + return ( <> - {folders.map((folder) => ( - - ))} + {folderOnTop && + folders.map((folder) => ( + + ))} { e.preventDefault(); + e.stopPropagation(); setIsDraggingOver(true); }} - onDragLeave={() => { + onDragLeave={(e) => { + console.log(e.target); + e.preventDefault(); + e.stopPropagation(); setIsDraggingOver(false); }} onDrop={handleDrop} > - {workflows.map((workflow) => ( - - ))} + {folderOnTop + ? workflows.map((workflow) => ( + + )) + : items.map((n) => { + if (isFolder(n)) { + return ; + } + return ; + })} ); diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index 9eb3fee..7cf7852 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -12,8 +12,16 @@ import { Box, Flex, Tooltip, + Switch, } from "@chakra-ui/react"; -import { useEffect, useState, useRef, useCallback, useContext } from "react"; +import { + useEffect, + useState, + useRef, + useCallback, + useContext, + ChangeEvent, +} from "react"; import { workflowsTable, isFolder, @@ -28,13 +36,15 @@ import { import { RecentFilesContext, WorkspaceContext } from "../WorkspaceContext"; import RecentFilesDrawerMenu from "./RecentFilesDrawerMenu"; import { sortFileItem } from "../utils"; -import WorkflowListItem from "./WorkflowListItem"; import MultipleSelectionOperation from "./MultipleSelectionOperation"; -import { ESortTypes, sortTypeLocalStorageKey } from "./types"; +import { + ESortTypes, + folderOnTopLocalStorageKey, + sortTypeLocalStorageKey, +} from "./types"; // @ts-expect-error ComfyUI import import { app } from "/scripts/app.js"; import { insertWorkflowToCanvas3 } from "./InsertWorkflowToCanvas"; -import FilesListFolderItem from "./FilesListFolderItem"; import { useDebounce } from "../customHooks/useDebounce"; import SearchInput from "../components/SearchInput"; import { openWorkflowsFolder } from "../Api"; @@ -69,6 +79,9 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { (window.localStorage.getItem(sortTypeLocalStorageKey) as ESortTypes) ?? ESortTypes.RECENTLY_MODIFIED, ); + const folderOnTopRef = useRef( + window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", + ); const loadLatestWorkflows = async () => { const all = (await workflowsTable?.listFolderContent()) ?? []; @@ -113,6 +126,13 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { !isFilter && setRefreshFolderStamp(Date.now()); }; + const onFolderOnTopChange = (e: ChangeEvent) => { + const state = e.target.checked; + folderOnTopRef.current = state; + window.localStorage.setItem(folderOnTopLocalStorageKey, state.toString()); + !isFilter && setRefreshFolderStamp(Date.now()); + }; + useEffect(() => { filterFlows(); }, [debounceSearchValue, selectedTag]); @@ -320,6 +340,13 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { + + Folders on Top + + { if (folder == null) { return; } + const nameChanged = input.name != undefined && input.name != folder.name; + const parentFolderChanged = + input.parentFolderID != undefined && + input.parentFolderID != folder.parentFolderID; const newRecord = { ...folder, ...input, @@ -56,14 +60,7 @@ export class FoldersTable extends TableBase { if (input.name != null) { newRecord.updateTime = Date.now(); } - const allFolders = await this.listAll(); - const folderWithSameName = allFolders.find( - (f) => - f.parentFolderID == newRecord.parentFolderID && // use == instead of ===, because parentFolderID can be null or undefined - f.name === newRecord.name && - f.id !== newRecord.id, - ); - if (folderWithSameName != null) { + if (parentFolderChanged) { input.name = await this.generateUniqueName( newRecord.name, newRecord.parentFolderID ?? undefined, @@ -73,10 +70,7 @@ export class FoldersTable extends TableBase { this.saveDiskDB(); // folder moved or renamed - move all workflows to the right directory(not required when folded state changes) - if ( - input.name != folder.name || - input.parentFolderID != folder.parentFolderID - ) { + if (nameChanged || parentFolderChanged) { validateOrSaveAllJsonFileMyWorkflows(true); } } From 1399adfce394976914799d4b5184093906416d2e Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Tue, 30 Jan 2024 12:57:30 +0800 Subject: [PATCH 05/65] fix: drag flicker --- .../RecentFilesDrawer/FilesListFolderItem.tsx | 1 + ui/src/RecentFilesDrawer/ItemsList.tsx | 22 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx index 078bc69..1820e93 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx @@ -106,6 +106,7 @@ export default memo(function FilesListFolderItem({ folder }: Props) { onDrop={handleDrop} _hover={activeStyle} style={isActive || isMenuOpen ? activeStyle : undefined} + className="droppable" > {isCollapsed ? ( diff --git a/ui/src/RecentFilesDrawer/ItemsList.tsx b/ui/src/RecentFilesDrawer/ItemsList.tsx index 63cdbd3..d87dce2 100644 --- a/ui/src/RecentFilesDrawer/ItemsList.tsx +++ b/ui/src/RecentFilesDrawer/ItemsList.tsx @@ -27,6 +27,20 @@ export default function ItemsList({ const { onRefreshFilesList, draggingFile, refreshFolderStamp } = useContext(RecentFilesContext); + const handleDragLeave = (e: DragEvent) => { + e.preventDefault(); + e.stopPropagation(); + const targetIsDroppable = + e.relatedTarget instanceof Element && + e.relatedTarget.classList.contains("droppable") && + e.relatedTarget !== e.currentTarget; + const targetIsChild = e.currentTarget.contains(e.relatedTarget as Node); + // fixes a bug where the dragleave event is fired when dragging over a child element, causing elements to flicker + if (targetIsDroppable || !targetIsChild) { + setIsDraggingOver(false); + } + }; + const handleDrop = async (e: DragEvent) => { e.preventDefault(); e.stopPropagation(); @@ -65,13 +79,9 @@ export default function ItemsList({ e.stopPropagation(); setIsDraggingOver(true); }} - onDragLeave={(e) => { - console.log(e.target); - e.preventDefault(); - e.stopPropagation(); - setIsDraggingOver(false); - }} + onDragLeave={handleDragLeave} onDrop={handleDrop} + className="droppable" > {folderOnTop ? workflows.map((workflow) => ( From 75447025d32a834f69125636c0717f1cf37af5d1 Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Tue, 30 Jan 2024 17:54:40 +0800 Subject: [PATCH 06/65] fix: put folder on top into userSettings table --- ui/src/RecentFilesDrawer/ItemsList.tsx | 11 ++++--- .../RecentFilesDrawer/RecentFilesDrawer.tsx | 29 +++++++++++-------- ui/src/RecentFilesDrawer/types.ts | 1 - ui/src/types/dbTypes.ts | 1 + 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/ui/src/RecentFilesDrawer/ItemsList.tsx b/ui/src/RecentFilesDrawer/ItemsList.tsx index d87dce2..0f00bdd 100644 --- a/ui/src/RecentFilesDrawer/ItemsList.tsx +++ b/ui/src/RecentFilesDrawer/ItemsList.tsx @@ -10,15 +10,14 @@ import FilesListFolderItem from "./FilesListFolderItem"; import WorkflowListItem from "./WorkflowListItem"; import { Box } from "@chakra-ui/react"; import { folderOnTopLocalStorageKey } from "./types"; +import { userSettingsTable } from "../db-tables/WorkspaceDB"; export default function ItemsList({ items, }: { items: Array; }) { - const [folderOnTop, setFolderOnTop] = useState( - window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", - ); + const [folderOnTop, setFolderOnTop] = useState(false); const folders = items.filter(isFolder); const workflows = items.filter((item): item is Workflow => !isFolder(item)); const parentFolderID = workflows[0]?.parentFolderID; @@ -61,9 +60,9 @@ export default function ItemsList({ }; useEffect(() => { - setFolderOnTop( - window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", - ); + userSettingsTable?.getSetting("foldersOnTop").then((res) => { + setFolderOnTop(res ?? false); + }); }, [refreshFolderStamp]); return ( diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index 7cf7852..dd364a3 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -26,6 +26,7 @@ import { workflowsTable, isFolder, foldersTable, + userSettingsTable, } from "../db-tables/WorkspaceDB"; import { IconChevronDown, @@ -37,11 +38,7 @@ import { RecentFilesContext, WorkspaceContext } from "../WorkspaceContext"; import RecentFilesDrawerMenu from "./RecentFilesDrawerMenu"; import { sortFileItem } from "../utils"; import MultipleSelectionOperation from "./MultipleSelectionOperation"; -import { - ESortTypes, - folderOnTopLocalStorageKey, - sortTypeLocalStorageKey, -} from "./types"; +import { ESortTypes, sortTypeLocalStorageKey } from "./types"; // @ts-expect-error ComfyUI import import { app } from "/scripts/app.js"; import { insertWorkflowToCanvas3 } from "./InsertWorkflowToCanvas"; @@ -79,9 +76,12 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { (window.localStorage.getItem(sortTypeLocalStorageKey) as ESortTypes) ?? ESortTypes.RECENTLY_MODIFIED, ); - const folderOnTopRef = useRef( - window.localStorage.getItem(folderOnTopLocalStorageKey) === "true", - ); + const [folderOnTop, setFolderOnTop] = useState(false); + useEffect(() => { + userSettingsTable?.getSetting("foldersOnTop").then((res) => { + setFolderOnTop(res ?? false); + }); + }, []); const loadLatestWorkflows = async () => { const all = (await workflowsTable?.listFolderContent()) ?? []; @@ -128,9 +128,14 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { const onFolderOnTopChange = (e: ChangeEvent) => { const state = e.target.checked; - folderOnTopRef.current = state; - window.localStorage.setItem(folderOnTopLocalStorageKey, state.toString()); - !isFilter && setRefreshFolderStamp(Date.now()); + userSettingsTable + ?.upsert({ + foldersOnTop: state, + }) + .then(() => { + setFolderOnTop(state); + !isFilter && setRefreshFolderStamp(Date.now()); + }); }; useEffect(() => { @@ -343,7 +348,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { Folders on Top diff --git a/ui/src/RecentFilesDrawer/types.ts b/ui/src/RecentFilesDrawer/types.ts index e8fbe2c..53ecff8 100644 --- a/ui/src/RecentFilesDrawer/types.ts +++ b/ui/src/RecentFilesDrawer/types.ts @@ -2,7 +2,6 @@ * The key value of the sort type in the local cache */ export const sortTypeLocalStorageKey = "CWM_WORKFLOWS_SORT_TYPE"; -export const folderOnTopLocalStorageKey = "CWM_WORKFLOWS_FOLDER_ON_TOP"; export enum ESortTypes { /** diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index 554902c..16b1e8f 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -54,6 +54,7 @@ export type UserSettings = { }; autoSave?: boolean; twoWaySync?: boolean; + foldersOnTop?: boolean; }; export interface PanelPosition { From 251b0ea595b120783a716f8a496acc5e1a392128 Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 01:43:57 +0800 Subject: [PATCH 07/65] feat: add folder import --- .../FilesListFolderItemRightClickMenu.tsx | 29 +- ui/src/RecentFilesDrawer/ImportFileButton.tsx | 27 -- .../ImportFlowsFileInput.tsx | 281 ++++++++++++++---- .../RecentFilesDrawer/RecentFilesDrawer.tsx | 4 +- ui/src/RecentFilesDrawer/types.ts | 18 ++ ui/src/db-tables/FoldersTable.ts | 9 +- 6 files changed, 257 insertions(+), 111 deletions(-) delete mode 100644 ui/src/RecentFilesDrawer/ImportFileButton.tsx diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItemRightClickMenu.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItemRightClickMenu.tsx index 58daba8..ad8a62e 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItemRightClickMenu.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItemRightClickMenu.tsx @@ -1,10 +1,9 @@ import { Box, Menu, MenuList, MenuItem } from "@chakra-ui/react"; -import { MouseEvent, useContext, useRef, useState } from "react"; +import { MouseEvent, useContext, useState } from "react"; import { RecentFilesContext } from "../WorkspaceContext"; import { workflowsTable, foldersTable } from "../db-tables/WorkspaceDB"; import EditFolderNameModal from "../components/EditFolderName"; import { - IconFileImport, IconFolderPlus, IconPencil, IconPlus, @@ -48,7 +47,6 @@ export default function FilesListFolderItemRightClickMenu({ }); onRefreshFilesList && onRefreshFilesList(); }; - const fileInputRef = useRef(null); const openDeleteConfirm = async (e: MouseEvent) => { e.stopPropagation(); @@ -87,7 +85,12 @@ export default function FilesListFolderItemRightClickMenu({ return ( <> - + } @@ -114,22 +117,14 @@ export default function FilesListFolderItemRightClickMenu({ }> New file - { - e.stopPropagation(); - fileInputRef.current?.click(); - }} - icon={} - > - Import workflows - + - + {isRenameOpen && ( (null); - - return ( - - ); -} diff --git a/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx b/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx index 063d3e3..fee3ac0 100644 --- a/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx +++ b/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx @@ -1,82 +1,239 @@ -import { ChangeEvent, useContext } from "react"; -import { workflowsTable } from "../db-tables/WorkspaceDB"; +import { ChangeEvent, useContext, useRef, useState } from "react"; +import { Button, Menu, MenuButton, MenuList, MenuItem } from "@chakra-ui/react"; +import { IconFileImport } from "@tabler/icons-react"; +import { workflowsTable, foldersTable } from "../db-tables/WorkspaceDB"; import { RecentFilesContext } from "../WorkspaceContext"; import { getPngMetadata } from "../utils"; -import { ImportWorkflow } from "./types"; +import { ImportWorkflow, importMenuItemList } from "./types"; +interface WorkflowFile { + name: string; + json: string; +} + +interface TreeNode { + name: string; + isFile: boolean; + file?: WorkflowFile; + children?: TreeNode[]; + parentFolderID?: string; +} + +interface HTMLInputDirectoryElement extends HTMLInputElement { + webkitdirectory: boolean; +} interface Props { - fileInputRef: React.RefObject; + onlyImportFile?: boolean; parentFolderID?: string; } export default function ImportFlowsFileInput({ parentFolderID, - fileInputRef, + onlyImportFile = false, }: Props) { const { onRefreshFilesList } = useContext(RecentFilesContext); + const [importType, setImportType] = useState("file"); // file/folder + const fileInputRef = useRef(null); + + const onClick = (type: string) => { + setImportType(type); + if (type === "folder") { + fileInputRef.current!.setAttribute("webkitdirectory", ""); + } else { + fileInputRef.current!.removeAttribute("webkitdirectory"); + } + fileInputRef.current?.click(); + }; + + const parseFile = async (file: File): Promise => { + if (file.type === "image/png") { + const pngInfo = await getPngMetadata(file); + // @ts-expect-error + const flowJson = pngInfo?.workflow; + if (flowJson) { + return { + json: flowJson, + name: file.name.replace(".png", ""), + }; + } + } else if ( + file.type === "application/json" || + file.name?.endsWith(".json") + ) { + return await new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = (e) => { + try { + const result = e.target?.result; + if (typeof result === "string") { + resolve({ + json: result, + name: file.name.replace(".json", ""), + }); + } else { + reject(new Error("File content is not a string")); + } + } catch (error) { + reject(error); + } + }; + reader.onerror = reject; + reader.readAsText(file); + }); + } + return null; + }; + + const createFileAndFolderFormTree = async (treeNode: TreeNode) => { + // Traverse the folders in the tree through queue breadth first, creating folders and files under the current folder in sequence; + const queue = [treeNode]; + while (queue.length > 0) { + const currentNode = queue.shift(); + + if (currentNode && !currentNode.isFile) { + const folder = await foldersTable?.create({ + name: currentNode.name, + parentFolderID: currentNode.parentFolderID, + }); + if (currentNode.children && currentNode.children.length) { + const fileList: WorkflowFile[] = []; + currentNode.children.forEach((child) => { + if (child.isFile && child.file) { + fileList.push(child.file); + } else { + child.parentFolderID = folder?.id; + queue.push(child); + } + }); + if (fileList.length) { + await workflowsTable?.batchCreateFlows( + fileList, + undefined, + folder?.id, + ); + } + } + } + } + onRefreshFilesList?.(); + }; + const handleFileChange = async (event: ChangeEvent) => { const files = event.target.files; if (!files) return; - const parsedFileList: ImportWorkflow[] = []; - for (const file of files) { - if (file.type === "image/png") { - const pngInfo = await getPngMetadata(file); - // @ts-expect-error - const flowJson = pngInfo?.workflow; - if (flowJson) { - parsedFileList.push({ - json: flowJson, - name: file.name.replace(".png", ""), - }); - } - } else if ( - file.type === "application/json" || - file.name?.endsWith(".json") - ) { - await new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = (e) => { - try { - const result = e.target?.result; - if (typeof result === "string") { - parsedFileList.push({ - json: result, - name: file.name.replace(".json", ""), - }); - resolve(""); - } else { - reject(new Error("File content is not a string")); - } - } catch (error) { - reject(error); - } - }; - reader.onerror = reject; - reader.readAsText(file); - }); - } - } - if (parsedFileList.length) { - await workflowsTable?.batchCreateFlows( - parsedFileList, - undefined, - parentFolderID, - ); - onRefreshFilesList && onRefreshFilesList(); + if (importType === "folder") { + // Create a root node based on the selected directory + const rootNode: TreeNode = { + name: files[0].webkitRelativePath.split("/")[0], + isFile: false, + children: [], + }; + + // Create nested tree file structure from file path + for (const file of files) { + if (file.name !== ".DS_Store") { + const splitPath = file.webkitRelativePath.split("/"); + let currentLevel = rootNode.children ?? []; + + // Start traversing the second part of the path + for (let index = 1; index < splitPath.length; index++) { + const part = splitPath[index]; + let existingNode = currentLevel.find( + (child) => child.name === part, + ); + + if (!existingNode) { + existingNode = { + name: part, + isFile: index === splitPath.length - 1, + children: index === splitPath.length - 1 ? undefined : [], + }; + + if (existingNode.isFile) { + const parseFileResult = await parseFile(file); + if (parseFileResult) { + existingNode.file = parseFileResult; + } + } + currentLevel.push(existingNode); + } + + if (existingNode && !existingNode.isFile) { + currentLevel = existingNode.children!; + } + } + } + } + createFileAndFolderFormTree(rootNode); + } else { + const parsedFileList: ImportWorkflow[] = []; + + for (const file of files) { + const parseFileResult = await parseFile(file); + if (parseFileResult) { + parsedFileList.push(parseFileResult); + } + } + if (parsedFileList.length) { + await workflowsTable?.batchCreateFlows( + parsedFileList, + undefined, + parentFolderID, + ); + onRefreshFilesList && onRefreshFilesList(); + } } }; return ( - { - e.stopPropagation(); - }} - /> + <> + {onlyImportFile ? ( + { + e.stopPropagation(); + onClick("file"); + }} + icon={} + > + Import workflows + + ) : ( + + } + variant="outline" + iconSpacing={1} + size={"sm"} + colorScheme="teal" + > + Import + + + {importMenuItemList.map((item, index) => ( + { + onClick(item.type); + }} + > + {item.title} + + ))} + + + )} + { + e.stopPropagation(); + }} + /> + ); } diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index d03157d..a5da7a1 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -39,8 +39,8 @@ import { useDebounce } from "../customHooks/useDebounce"; import SearchInput from "../components/SearchInput"; import { openWorkflowsFolder } from "../Api"; import { Folder, Workflow } from "../types/dbTypes"; -import ImportFileButton from "./ImportFileButton"; import MyTagsRow from "./MyTagsRow"; +import ImportFlowsFileInput from "./ImportFlowsFileInput"; type Props = { onClose: () => void; @@ -225,7 +225,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { Login */} - + extends HTMLAttributes { + webkitdirectory?: string; + } +} diff --git a/ui/src/db-tables/FoldersTable.ts b/ui/src/db-tables/FoldersTable.ts index 62a87ec..7001b85 100644 --- a/ui/src/db-tables/FoldersTable.ts +++ b/ui/src/db-tables/FoldersTable.ts @@ -23,7 +23,10 @@ export class FoldersTable extends TableBase { name: string; parentFolderID?: string; }): Promise { - const uniqueName = await this.generateUniqueName(input.name); + const uniqueName = await this.generateUniqueName( + input.name, + input.parentFolderID, + ); const folder: Folder = { id: uuidv4(), name: uniqueName, @@ -109,10 +112,10 @@ export class FoldersTable extends TableBase { this.saveDiskDB(); } - public async generateUniqueName(name?: string) { + public async generateUniqueName(name?: string, parentFolderID?: string) { let newFlowName = name ?? "New folder"; const folderNameList = await this.listAll().then((list) => - list.map((f) => f.name), + list.filter((f) => f.parentFolderID == parentFolderID).map((f) => f.name), ); if (folderNameList.includes(newFlowName)) { let num = 2; From 6bda357eaaa6e99c10993089bf8849daf9e6097f Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 02:15:14 +0800 Subject: [PATCH 08/65] feat: Only perform workflow duplicate name verification under the same file --- ui/src/db-tables/WorkflowsTable.ts | 4 ++-- ui/src/utils.tsx | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ui/src/db-tables/WorkflowsTable.ts b/ui/src/db-tables/WorkflowsTable.ts index c455e26..e8bc18b 100644 --- a/ui/src/db-tables/WorkflowsTable.ts +++ b/ui/src/db-tables/WorkflowsTable.ts @@ -53,7 +53,7 @@ export class WorkflowsTable extends TableBase { public async createFlow(input: Partial): Promise { const { id, json, name } = input; - const newFlowName = await generateUniqueName(name); + const newFlowName = await generateUniqueName(name, input.parentFolderID); const uuid = id ?? uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' const time = Date.now(); const newWorkflow: Workflow = { @@ -146,7 +146,7 @@ export class WorkflowsTable extends TableBase { const newFlowName = flow.name && isOverwriteExistingFile ? flow.name - : await generateUniqueName(flow.name); + : await generateUniqueName(flow.name, parentFolderID); const uuid = uuidv4(); const time = Date.now(); const newWorkflow: Workflow = { diff --git a/ui/src/utils.tsx b/ui/src/utils.tsx index 71e734c..24b877f 100644 --- a/ui/src/utils.tsx +++ b/ui/src/utils.tsx @@ -220,7 +220,10 @@ export function insertWorkflowToCanvas(json: string, insertPos?: number[]) { canvas = null; } -export async function generateUniqueName(name?: string) { +export async function generateUniqueName( + name?: string, + parentFolderID?: string, +) { /** * Generate a unique name * For imported scenes, the default name is the file name. @@ -230,7 +233,9 @@ export async function generateUniqueName(name?: string) { */ let newFlowName = name ?? "Untitled Flow"; const flowList = (await workflowsTable?.listAll()) ?? []; - const flowNameList = flowList.map((flow) => flow.name); + const flowNameList = flowList + .filter((f) => f.parentFolderID == parentFolderID) + .map((flow) => flow.name); if (flowNameList.includes(newFlowName)) { let num = 2; let flag = true; From f81108e4a7d75824cbf85a7c30524111b37d90ae Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 13:14:54 +0800 Subject: [PATCH 09/65] feat: If the currently open flow is deleted during batch deletion, clear the curFlow related cache. --- ui/src/App.tsx | 4 ++++ ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ui/src/App.tsx b/ui/src/App.tsx index aa5645c..b8e5647 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -100,6 +100,8 @@ export default function App() { workflowsTable?.updateCurWorkflowID(id); if (id == null) { document.title = "ComfyUI"; + window.location.hash = ""; + localStorage.removeItem("curFlowID"); return; } if (getWorkflowIdInUrlHash()) { @@ -196,8 +198,10 @@ export default function App() { const flow = await workflowsTable?.get(id); + // If the currently loaded flow does not exist, you need to clear the URL hash and localStorage to avoid popping up another prompt that the flow does not exist when refreshing the page. if (flow == null) { alert("Error: Workflow not found! id: " + id); + setCurFlowIDAndName(null, ""); return; } setCurFlowIDAndName(id, flow.name); diff --git a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx index 0176ea9..a79cffe 100644 --- a/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx +++ b/ui/src/RecentFilesDrawer/RecentFilesDrawer.tsx @@ -61,7 +61,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { >([]); const aloneFlowsAndFoldersRef = useRef>([]); const allFlowsRef = useRef>([]); - const { loadWorkflowID } = useContext(WorkspaceContext); + const { loadWorkflowID, curFlowID } = useContext(WorkspaceContext); const [selectedTag, setSelectedTag] = useState(); const [multipleState, setMultipleState] = useState(false); const [selectedKeys, setSelectedKeys] = useState([]); @@ -188,6 +188,12 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { const batchOperationCallback = (type: string, value: unknown) => { switch (type) { case "batchDelete": + curFlowID && + workflowsTable?.get(curFlowID).then((res) => { + if (!res) { + loadWorkflowID?.(null); + } + }); loadLatestWorkflows(); setMultipleState(false); setSelectedKeys([]); From 86197272785bfcc7b7c40cb3bfc44f8b024fdadf Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 13:26:55 +0800 Subject: [PATCH 10/65] fix: Multi-tab autosave logic optimization --- ui/src/db-tables/WorkflowsTable.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src/db-tables/WorkflowsTable.ts b/ui/src/db-tables/WorkflowsTable.ts index a45715f..5060725 100644 --- a/ui/src/db-tables/WorkflowsTable.ts +++ b/ui/src/db-tables/WorkflowsTable.ts @@ -46,7 +46,10 @@ export class WorkflowsTable extends TableBase { public async latestVersionCheck() { if (this._curWorkflow) { const curFlowInDB = await this.get(this._curWorkflow.id); - return curFlowInDB?.updateTime === this._curWorkflow.updateTime; + if (curFlowInDB) { + return curFlowInDB?.updateTime === this._curWorkflow.updateTime; + } + return true; } return true; } From 6286b52627b3d96bfb383b3d8f27f5557e5ad8f8 Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Wed, 31 Jan 2024 16:10:30 +0800 Subject: [PATCH 11/65] fix: hover check --- ui/src/RecentFilesDrawer/ItemsList.tsx | 25 ++++++++----------------- ui/src/db-tables/FoldersTable.ts | 4 ++-- ui/src/utils.tsx | 1 - 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/ui/src/RecentFilesDrawer/ItemsList.tsx b/ui/src/RecentFilesDrawer/ItemsList.tsx index 0f00bdd..e9cabd5 100644 --- a/ui/src/RecentFilesDrawer/ItemsList.tsx +++ b/ui/src/RecentFilesDrawer/ItemsList.tsx @@ -9,7 +9,6 @@ import { Folder, Workflow } from "../types/dbTypes"; import FilesListFolderItem from "./FilesListFolderItem"; import WorkflowListItem from "./WorkflowListItem"; import { Box } from "@chakra-ui/react"; -import { folderOnTopLocalStorageKey } from "./types"; import { userSettingsTable } from "../db-tables/WorkspaceDB"; export default function ItemsList({ @@ -26,20 +25,6 @@ export default function ItemsList({ const { onRefreshFilesList, draggingFile, refreshFolderStamp } = useContext(RecentFilesContext); - const handleDragLeave = (e: DragEvent) => { - e.preventDefault(); - e.stopPropagation(); - const targetIsDroppable = - e.relatedTarget instanceof Element && - e.relatedTarget.classList.contains("droppable") && - e.relatedTarget !== e.currentTarget; - const targetIsChild = e.currentTarget.contains(e.relatedTarget as Node); - // fixes a bug where the dragleave event is fired when dragging over a child element, causing elements to flicker - if (targetIsDroppable || !targetIsChild) { - setIsDraggingOver(false); - } - }; - const handleDrop = async (e: DragEvent) => { e.preventDefault(); e.stopPropagation(); @@ -72,13 +57,19 @@ export default function ItemsList({ ))} { e.preventDefault(); e.stopPropagation(); setIsDraggingOver(true); }} - onDragLeave={handleDragLeave} + onDragLeave={(e) => { + e.preventDefault(); + e.stopPropagation(); + setIsDraggingOver(false); + }} onDrop={handleDrop} className="droppable" > diff --git a/ui/src/db-tables/FoldersTable.ts b/ui/src/db-tables/FoldersTable.ts index 7dd9595..3553519 100644 --- a/ui/src/db-tables/FoldersTable.ts +++ b/ui/src/db-tables/FoldersTable.ts @@ -49,9 +49,9 @@ export class FoldersTable extends TableBase { if (folder == null) { return; } - const nameChanged = input.name != undefined && input.name != folder.name; + const nameChanged = "name" in input && input.name != folder.name; const parentFolderChanged = - input.parentFolderID != undefined && + "parentFolderID" in input && input.parentFolderID != folder.parentFolderID; const newRecord = { ...folder, diff --git a/ui/src/utils.tsx b/ui/src/utils.tsx index 7f61a94..1e2882c 100644 --- a/ui/src/utils.tsx +++ b/ui/src/utils.tsx @@ -157,7 +157,6 @@ export async function validateOrSaveAllJsonFileMyWorkflows( for (const workflow of flowList) { const fullPath = await generateFilePathAbsolute(workflow); if (workflow.filePath != fullPath) { - console.log(workflow.filePath, fullPath); // file path changed workflow.filePath != null && (await deleteFile(workflow.filePath, deleteEmptyFolder)); From bba5fb11f667382886aa50f9ee88703bb66ab540 Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Wed, 31 Jan 2024 18:49:35 +0800 Subject: [PATCH 12/65] disable twoway sync until this feature is ready --- ui/src/RecentFilesDrawer/WorkspaceSettingsModal.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui/src/RecentFilesDrawer/WorkspaceSettingsModal.tsx b/ui/src/RecentFilesDrawer/WorkspaceSettingsModal.tsx index eebfe40..1e6209d 100644 --- a/ui/src/RecentFilesDrawer/WorkspaceSettingsModal.tsx +++ b/ui/src/RecentFilesDrawer/WorkspaceSettingsModal.tsx @@ -27,7 +27,6 @@ import { userSettingsTable } from "../db-tables/WorkspaceDB"; import { ShortcutSettings } from "../settings/ShortcutSettings"; import { validateOrSaveAllJsonFileMyWorkflows } from "../utils"; import AutoSaveSettings from "../settings/AutoSaveSettings"; -import TwoWaySyncSettings from "../settings/TwoWaySyncSettings"; export default function WorkspaceSettingsModal({ onClose, @@ -288,7 +287,7 @@ export default function WorkspaceSettingsModal({ - + {/* */} From b461110ea32b99f3400ce371ecf883539386af03 Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 19:37:51 +0800 Subject: [PATCH 13/65] feat: move generateUniqueName to workflowsTable --- ui/src/db-tables/WorkflowsTable.ts | 37 +++++++++++++++++++++++++--- ui/src/utils.tsx | 39 ++++++------------------------ 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/ui/src/db-tables/WorkflowsTable.ts b/ui/src/db-tables/WorkflowsTable.ts index 5060725..e1268a6 100644 --- a/ui/src/db-tables/WorkflowsTable.ts +++ b/ui/src/db-tables/WorkflowsTable.ts @@ -1,6 +1,6 @@ import { foldersTable } from "./WorkspaceDB"; import { Workflow } from "../types/dbTypes"; -import { generateUniqueName, sortFileItem } from "../utils"; +import { sortFileItem } from "../utils"; import { v4 as uuidv4 } from "uuid"; import { TableBase } from "./TableBase"; import { indexdb } from "./indexdb"; @@ -54,9 +54,40 @@ export class WorkflowsTable extends TableBase { return true; } + async generateUniqueName(name?: string, parentFolderID?: string) { + /** + * Generate a unique name + * For imported scenes, the default name is the file name. + * For new scenes, the default name is Untitled Flow. + * Get the full workflow list. If the default name already exists, search incrementally starting from 2. + * Looks for a unique name in the format `${default name} ${number}`. + */ + let newFlowName = name ?? "Untitled Flow"; + const flowList = (await this.listAll()) ?? []; + const flowNameList = flowList + .filter((f) => f.parentFolderID == parentFolderID) + .map((flow) => flow.name); + if (flowNameList.includes(newFlowName)) { + let num = 2; + let flag = true; + while (flag) { + if (flowNameList.includes(`${newFlowName} ${num}`)) { + num++; + } else { + newFlowName = `${newFlowName} ${num}`; + flag = false; + } + } + } + return newFlowName; + } + public async createFlow(input: Partial): Promise { const { id, json, name } = input; - const newFlowName = await generateUniqueName(name, input.parentFolderID); + const newFlowName = await this.generateUniqueName( + name, + input.parentFolderID, + ); const uuid = id ?? uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' const time = Date.now(); const newWorkflow: Workflow = { @@ -146,7 +177,7 @@ export class WorkflowsTable extends TableBase { const newFlowName = flow.name && isOverwriteExistingFile ? flow.name - : await generateUniqueName(flow.name, parentFolderID); + : await this.generateUniqueName(flow.name, parentFolderID); const uuid = uuidv4(); const time = Date.now(); const newWorkflow: Workflow = { diff --git a/ui/src/utils.tsx b/ui/src/utils.tsx index a88fb97..1c6fc95 100644 --- a/ui/src/utils.tsx +++ b/ui/src/utils.tsx @@ -1,5 +1,11 @@ // @ts-ignore -import { ScanLocalFile, ScanLocalFolder, ScanLocalResult, deleteFile, updateFile } from "./Api"; +import { + ScanLocalFile, + ScanLocalFolder, + ScanLocalResult, + deleteFile, + updateFile, +} from "./Api"; import { ESortTypes } from "./RecentFilesDrawer/types"; import { workflowsTable, @@ -221,37 +227,6 @@ export function insertWorkflowToCanvas(json: string, insertPos?: number[]) { canvas = null; } -export async function generateUniqueName( - name?: string, - parentFolderID?: string, -) { - /** - * Generate a unique name - * For imported scenes, the default name is the file name. - * For new scenes, the default name is Untitled Flow. - * Get the full workflow list. If the default name already exists, search incrementally starting from 2. - * Looks for a unique name in the format `${default name} ${number}`. - */ - let newFlowName = name ?? "Untitled Flow"; - const flowList = (await workflowsTable?.listAll()) ?? []; - const flowNameList = flowList - .filter((f) => f.parentFolderID == parentFolderID) - .map((flow) => flow.name); - if (flowNameList.includes(newFlowName)) { - let num = 2; - let flag = true; - while (flag) { - if (flowNameList.includes(`${newFlowName} ${num}`)) { - num++; - } else { - newFlowName = `${newFlowName} ${num}`; - flag = false; - } - } - } - return newFlowName; -} - export function getPngMetadata(file: File) { return new Promise((resolve, reject) => { const reader = new FileReader(); From f043816c7becefda528274a977282720224c1361 Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Wed, 31 Jan 2024 19:40:45 +0800 Subject: [PATCH 14/65] fix discard changes not actually discarding changes and the isDirty always come back --- dist/workspace_web/App-EbJ8EOYb.js | 15 - dist/workspace_web/GalleryModal-N7Rbh-G9.js | 1 - dist/workspace_web/IconTrash-ijlGQSgv.js | 1 - .../InstallMissingModelsButton-CR0pkpRT.js | 1 - .../ModelManagerTopbar-NeKA5IAs.js | 7 - .../RecentFilesDrawer-pKne9d7L.js | 18 - dist/workspace_web/assets/App-JXePnJiV.css | 1 - dist/workspace_web/chunk-24I2HV4N-zY_d-lSh.js | 1 - dist/workspace_web/chunk-JARCRF6W-po8hqWTL.js | 1 - dist/workspace_web/chunk-NTCQBYKE-HF59WNUB.js | 1 - dist/workspace_web/input.js | 687 ------------------ ui/src/App.tsx | 13 +- ui/src/components/VersionHistoryDrawer.tsx | 4 + 13 files changed, 15 insertions(+), 736 deletions(-) delete mode 100644 dist/workspace_web/App-EbJ8EOYb.js delete mode 100644 dist/workspace_web/GalleryModal-N7Rbh-G9.js delete mode 100644 dist/workspace_web/IconTrash-ijlGQSgv.js delete mode 100644 dist/workspace_web/InstallMissingModelsButton-CR0pkpRT.js delete mode 100644 dist/workspace_web/ModelManagerTopbar-NeKA5IAs.js delete mode 100644 dist/workspace_web/RecentFilesDrawer-pKne9d7L.js delete mode 100644 dist/workspace_web/assets/App-JXePnJiV.css delete mode 100644 dist/workspace_web/chunk-24I2HV4N-zY_d-lSh.js delete mode 100644 dist/workspace_web/chunk-JARCRF6W-po8hqWTL.js delete mode 100644 dist/workspace_web/chunk-NTCQBYKE-HF59WNUB.js delete mode 100644 dist/workspace_web/input.js diff --git a/dist/workspace_web/App-EbJ8EOYb.js b/dist/workspace_web/App-EbJ8EOYb.js deleted file mode 100644 index 8e171bd..0000000 --- a/dist/workspace_web/App-EbJ8EOYb.js +++ /dev/null @@ -1,15 +0,0 @@ -var oi=Object.defineProperty;var si=(t,e,n)=>e in t?oi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var oe=(t,e,n)=>(si(t,typeof e!="symbol"?e+"":e,n),n);import{r as g,c as jt,m as Me,u as at,f as ee,j as x,B as Ge,a as ai,b as J,d as ce,o as Ve,e as ln,g as Pe,I as ii,h as or,i as hr,k as Ae,l as li,n as ci,p as ui,q as di,s as sr,t as fi,v as hi,w as pi,x as mi,y as vi,z as Ss,A as yi,C as Is,D as gi,E as wi,F as bi,P as co,M as Ps,G as js,H as As,J as Ns,K as Fs,L as Ms,N as Rs,O as xi,R as uo,_ as fo}from"./input.js";import{app as Ie}from"/scripts/app.js";import{api as Ho}from"/scripts/api.js";function _i(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var ki=_i();function Ci(t){const e=Object.assign({},t);for(let n in e)e[n]===void 0&&delete e[n];return e}var Ei=Object.defineProperty,Oi=(t,e,n)=>e in t?Ei(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,re=(t,e,n)=>(Oi(t,typeof e!="symbol"?e+"":e,n),n);function Jo(t){return t.sort((e,n)=>{const r=e.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 Di=t=>typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE;function Yo(t,e,n){let r=t+1;return n&&r>=e&&(r=0),r}function Go(t,e,n){let r=t-1;return n&&r<0&&(r=e),r}var Or=typeof window<"u"?g.useLayoutEffect:g.useEffect,Wn=t=>t,Si=class{constructor(){re(this,"descendants",new Map),re(this,"register",t=>{if(t!=null)return Di(t)?this.registerNode(t):e=>{this.registerNode(e,t)}}),re(this,"unregister",t=>{this.descendants.delete(t);const e=Jo(Array.from(this.descendants.keys()));this.assignIndex(e)}),re(this,"destroy",()=>{this.descendants.clear()}),re(this,"assignIndex",t=>{this.descendants.forEach(e=>{const n=t.indexOf(e.node);e.index=n,e.node.dataset.index=e.index.toString()})}),re(this,"count",()=>this.descendants.size),re(this,"enabledCount",()=>this.enabledValues().length),re(this,"values",()=>Array.from(this.descendants.values()).sort((e,n)=>e.index-n.index)),re(this,"enabledValues",()=>this.values().filter(t=>!t.disabled)),re(this,"item",t=>{if(this.count()!==0)return this.values()[t]}),re(this,"enabledItem",t=>{if(this.enabledCount()!==0)return this.enabledValues()[t]}),re(this,"first",()=>this.item(0)),re(this,"firstEnabled",()=>this.enabledItem(0)),re(this,"last",()=>this.item(this.descendants.size-1)),re(this,"lastEnabled",()=>{const t=this.enabledValues().length-1;return this.enabledItem(t)}),re(this,"indexOf",t=>{var e,n;return t&&(n=(e=this.descendants.get(t))==null?void 0:e.index)!=null?n:-1}),re(this,"enabledIndexOf",t=>t==null?-1:this.enabledValues().findIndex(e=>e.node.isSameNode(t))),re(this,"next",(t,e=!0)=>{const n=Yo(t,this.count(),e);return this.item(n)}),re(this,"nextEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=Yo(r,this.enabledCount(),e);return this.enabledItem(o)}),re(this,"prev",(t,e=!0)=>{const n=Go(t,this.count()-1,e);return this.item(n)}),re(this,"prevEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=Go(r,this.enabledCount()-1,e);return this.enabledItem(o)}),re(this,"registerNode",(t,e)=>{if(!t||this.descendants.has(t))return;const n=Array.from(this.descendants.keys()).concat(t),r=Jo(n);e!=null&&e.disabled&&(e.disabled=!!e.disabled);const o={node:t,index:-1,...e};this.descendants.set(t,o),this.assignIndex(r)})}};function Ii(){const t=g.useRef(new Si);return Or(()=>()=>t.current.destroy()),t.current}var[Pi,Ts]=jt({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function ji(t){const e=Ts(),[n,r]=g.useState(-1),o=g.useRef(null);Or(()=>()=>{o.current&&e.unregister(o.current)},[]),Or(()=>{if(!o.current)return;const a=Number(o.current.dataset.index);n!=a&&!Number.isNaN(a)&&r(a)});const s=Wn(t?e.register(t):e.register);return{descendants:e,index:n,enabledIndex:e.enabledIndexOf(o.current),register:Me(s,o)}}function Ai(){return[Wn(Pi),()=>Wn(Ts()),()=>Ii(),o=>ji(o)]}function Ni(t){const{value:e,defaultValue:n,onChange:r,shouldUpdate:o=(f,h)=>f!==h}=t,s=at(r),a=at(o),[i,l]=g.useState(n),u=e!==void 0,c=u?e:i,d=at(f=>{const m=typeof f=="function"?f(c):f;a(c,m)&&(u||l(m),s(m))},[u,s,c,a]);return[c,d]}function Bs(t){return g.Children.toArray(t).filter(e=>g.isValidElement(e))}var Gt=ee((t,e)=>{const{icon:n,children:r,isRound:o,"aria-label":s,...a}=t,i=n||r,l=g.isValidElement(i)?g.cloneElement(i,{"aria-hidden":!0,focusable:!1}):null;return x.jsx(Ge,{padding:"0",borderRadius:o?"full":void 0,ref:e,"aria-label":s,...a,children:l})});Gt.displayName="IconButton";var[Fi,Ls]=ai("Card"),Mi=ee(function(e,n){const{className:r,...o}=e,s=Ls();return x.jsx(J.div,{ref:n,className:ce("chakra-card__body",r),__css:s.body,...o})}),Ri=ee(function(e,n){const{className:r,...o}=e,s=Ls();return x.jsx(J.div,{ref:n,className:ce("chakra-card__header",r),__css:s.header,...o})}),Ti=ee(function(e,n){const{className:r,children:o,direction:s="column",justify:a,align:i,...l}=Ve(e),u=ln("Card",e);return x.jsx(J.div,{ref:n,className:ce("chakra-card",r),__css:{display:"flex",flexDirection:s,justifyContent:a,alignItems:i,position:"relative",minWidth:0,wordWrap:"break-word",...u.container},...l,children:x.jsx(Fi,{value:u,children:o})})}),[Bi,Ws]=jt({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Li,At]=jt({strict:!1,name:"FormControlContext"});function Wi(t){const{id:e,isRequired:n,isInvalid:r,isDisabled:o,isReadOnly:s,...a}=t,i=g.useId(),l=e||`field-${i}`,u=`${l}-label`,c=`${l}-feedback`,d=`${l}-helptext`,[f,h]=g.useState(!1),[m,p]=g.useState(!1),[w,y]=g.useState(!1),v=g.useCallback((b={},P=null)=>({id:d,...b,ref:Me(P,O=>{O&&p(!0)})}),[d]),_=g.useCallback((b={},P=null)=>({...b,ref:P,"data-focus":Pe(w),"data-disabled":Pe(o),"data-invalid":Pe(r),"data-readonly":Pe(s),id:b.id!==void 0?b.id:u,htmlFor:b.htmlFor!==void 0?b.htmlFor:l}),[l,o,w,r,s,u]),k=g.useCallback((b={},P=null)=>({id:c,...b,ref:Me(P,O=>{O&&h(!0)}),"aria-live":"polite"}),[c]),E=g.useCallback((b={},P=null)=>({...b,...a,ref:P,role:"group","data-focus":Pe(w),"data-disabled":Pe(o),"data-invalid":Pe(r),"data-readonly":Pe(s)}),[a,o,w,r,s]),C=g.useCallback((b={},P=null)=>({...b,ref:P,role:"presentation","aria-hidden":!0,children:b.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!s,isDisabled:!!o,isFocused:!!w,onFocus:()=>y(!0),onBlur:()=>y(!1),hasFeedbackText:f,setHasFeedbackText:h,hasHelpText:m,setHasHelpText:p,id:l,labelId:u,feedbackId:c,helpTextId:d,htmlProps:a,getHelpTextProps:v,getErrorMessageProps:k,getRootProps:E,getLabelProps:_,getRequiredIndicatorProps:C}}var ho=ee(function(e,n){const r=ln("Form",e),o=Ve(e),{getRootProps:s,htmlProps:a,...i}=Wi(o),l=ce("chakra-form-control",e.className);return x.jsx(Li,{value:i,children:x.jsx(Bi,{value:r,children:x.jsx(J.div,{...s({},n),className:l,__css:r.container})})})});ho.displayName="FormControl";var Ki=ee(function(e,n){const r=At(),o=Ws(),s=ce("chakra-form__helper-text",e.className);return x.jsx(J.div,{...r==null?void 0:r.getHelpTextProps(e,n),__css:o.helperText,className:s})});Ki.displayName="FormHelperText";var[$i,Ui]=jt({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),po=ee((t,e)=>{const n=ln("FormError",t),r=Ve(t),o=At();return o!=null&&o.isInvalid?x.jsx($i,{value:n,children:x.jsx(J.div,{...o==null?void 0:o.getErrorMessageProps(r,e),className:ce("chakra-form__error-message",t.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});po.displayName="FormErrorMessage";var qi=ee((t,e)=>{const n=Ui(),r=At();if(!(r!=null&&r.isInvalid))return null;const o=ce("chakra-form__error-icon",t.className);return x.jsx(ii,{ref:e,"aria-hidden":!0,...t,__css:n.icon,className:o,children:x.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"})})});qi.displayName="FormErrorIcon";var mo=ee(function(e,n){var r;const o=or("FormLabel",e),s=Ve(e),{className:a,children:i,requiredIndicator:l=x.jsx(Ks,{}),optionalIndicator:u=null,...c}=s,d=At(),f=(r=d==null?void 0:d.getLabelProps(c,n))!=null?r:{ref:n,...c};return x.jsxs(J.label,{...f,className:ce("chakra-form__label",s.className),__css:{display:"block",textAlign:"start",...o},children:[i,d!=null&&d.isRequired?l:u]})});mo.displayName="FormLabel";var Ks=ee(function(e,n){const r=At(),o=Ws();if(!(r!=null&&r.isRequired))return null;const s=ce("chakra-form__required-indicator",e.className);return x.jsx(J.span,{...r==null?void 0:r.getRequiredIndicatorProps(e,n),__css:o.requiredIndicator,className:s})});Ks.displayName="RequiredIndicator";function zi(t){const{isDisabled:e,isInvalid:n,isReadOnly:r,isRequired:o,...s}=Vi(t);return{...s,disabled:e,readOnly:r,required:o,"aria-invalid":hr(n),"aria-required":hr(o),"aria-readonly":hr(r)}}function Vi(t){var e,n,r;const o=At(),{id:s,disabled:a,readOnly:i,required:l,isRequired:u,isInvalid:c,isReadOnly:d,isDisabled:f,onFocus:h,onBlur:m,...p}=t,w=t["aria-describedby"]?[t["aria-describedby"]]:[];return o!=null&&o.hasFeedbackText&&(o!=null&&o.isInvalid)&&w.push(o.feedbackId),o!=null&&o.hasHelpText&&w.push(o.helpTextId),{...p,"aria-describedby":w.join(" ")||void 0,id:s??(o==null?void 0:o.id),isDisabled:(e=a??f)!=null?e:o==null?void 0:o.isDisabled,isReadOnly:(n=i??d)!=null?n:o==null?void 0:o.isReadOnly,isRequired:(r=l??u)!=null?r:o==null?void 0:o.isRequired,isInvalid:c??(o==null?void 0:o.isInvalid),onFocus:Ae(o==null?void 0:o.onFocus,h),onBlur:Ae(o==null?void 0:o.onBlur,m)}}function $t(t,e,n,r){const o=at(n);return g.useEffect(()=>{const s=typeof t=="function"?t():t??document;if(!(!n||!s))return s.addEventListener(e,o,r),()=>{s.removeEventListener(e,o,r)}},[e,t,r,o,n]),()=>{const s=typeof t=="function"?t():t??document;s==null||s.removeEventListener(e,o,r)}}var $s={exports:{}},Hi="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Ji=Hi,Yi=Ji;function Us(){}function qs(){}qs.resetWarningCache=Us;var Gi=function(){function t(r,o,s,a,i,l){if(l!==Yi){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}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:qs,resetWarningCache:Us};return n.PropTypes=n,n};$s.exports=Gi();var Xi=$s.exports;const nt=li(Xi);function Zi(t){const e=t.ownerDocument.defaultView||window,{overflow:n,overflowX:r,overflowY:o}=e.getComputedStyle(t);return/auto|scroll|overlay|hidden/.test(n+o+r)}function Qi(t){return t.localName==="html"?t:t.assignedSlot||t.parentElement||t.ownerDocument.documentElement}function zs(t){return["html","body","#document"].includes(t.localName)?t.ownerDocument.body:ci(t)&&Zi(t)?t:zs(Qi(t))}var el=ki?g.useLayoutEffect:g.useEffect;function Xo(t,e=[]){const n=g.useRef(t);return el(()=>{n.current=t}),g.useCallback((...r)=>{var o;return(o=n.current)==null?void 0:o.call(n,...r)},e)}function tl(t,e){const n=g.useId();return g.useMemo(()=>t||[e,n].filter(Boolean).join("-"),[t,e,n])}function nl(t,e){const n=t!==void 0;return[n,n&&typeof t<"u"?t:e]}function rl(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=Xo(n),a=Xo(e),[i,l]=g.useState(t.defaultIsOpen||!1),[u,c]=nl(r,i),d=tl(o,"disclosure"),f=g.useCallback(()=>{u||l(!1),a==null||a()},[u,a]),h=g.useCallback(()=>{u||l(!0),s==null||s()},[u,s]),m=g.useCallback(()=>{(c?f:h)()},[c,h,f]);return{isOpen:!!c,onOpen:h,onClose:f,onToggle:m,isControlled:u,getButtonProps:(p={})=>({...p,"aria-expanded":c,"aria-controls":d,onClick:ui(p.onClick,m)}),getDisclosureProps:(p={})=>({...p,hidden:!c,id:d})}}var ar=ee(function(e,n){const{htmlSize:r,...o}=e,s=ln("Input",o),a=Ve(o),i=zi(a),l=ce("chakra-input",e.className);return x.jsx(J.input,{size:r,...i,__css:s.field,ref:n,className:l})});ar.displayName="Input";ar.id="Input";var ol=Object.freeze(["base","sm","md","lg","xl","2xl"]);function sl(t,e){return Array.isArray(t)?t.map(n=>n===null?null:e(n)):di(t)?Object.keys(t).reduce((n,r)=>(n[r]=e(t[r]),n),{}):t!=null?e(t):null}function af(t,e=ol){const n={};return t.forEach((r,o)=>{const s=e[o];r!=null&&(n[s]=r)}),n}var Kn=ee(function(e,n){const r=or("Text",e),{className:o,align:s,decoration:a,casing:i,...l}=Ve(e),u=Ci({textAlign:e.align,textDecoration:e.decoration,textTransform:e.casing});return x.jsx(J.p,{ref:n,className:ce("chakra-text",e.className),...u,...l,__css:r})});Kn.displayName="Text";var Vs=t=>x.jsx(J.div,{className:"chakra-stack__divider",...t,__css:{...t.__css,borderWidth:0,alignSelf:"stretch",borderColor:"inherit",width:"auto",height:"auto"}});Vs.displayName="StackDivider";var Hs=t=>x.jsx(J.div,{className:"chakra-stack__item",...t,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...t.__css}});Hs.displayName="StackItem";function al(t){const{spacing:e,direction:n}=t,r={column:{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":sl(n,o=>r[o])}}var vo=ee((t,e)=>{const{isInline:n,direction:r,align:o,justify:s,spacing:a="0.5rem",wrap:i,children:l,divider:u,className:c,shouldWrapChildren:d,...f}=t,h=n?"row":r??"column",m=g.useMemo(()=>al({spacing:a,direction:h}),[a,h]),p=!!u,w=!d&&!p,y=g.useMemo(()=>{const _=Bs(l);return w?_:_.map((k,E)=>{const C=typeof k.key<"u"?k.key:E,b=E+1===_.length,O=d?x.jsx(Hs,{children:k},C):k;if(!p)return O;const D=g.cloneElement(u,{__css:m}),A=b?null:D;return x.jsxs(g.Fragment,{children:[O,A]},C)})},[u,m,p,w,d,l]),v=ce("chakra-stack",c);return x.jsx(J.div,{ref:e,display:"flex",alignItems:o,justifyContent:s,flexDirection:h,flexWrap:i,gap:p?void 0:a,className:v,...f,children:y})});vo.displayName="Stack";var xt=ee((t,e)=>x.jsx(vo,{align:"center",...t,direction:"row",ref:e}));xt.displayName="HStack";var Js=ee(function(e,n){const r=or("Heading",e),{className:o,...s}=Ve(e);return x.jsx(J.h2,{ref:n,className:ce("chakra-heading",e.className),...s,__css:r})});Js.displayName="Heading";var yo=J("div");yo.displayName="Box";var Ys=ee(function(e,n){const{size:r,centerContent:o=!0,...s}=e,a=o?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return x.jsx(yo,{ref:n,boxSize:r,__css:{...a,flexShrink:0,flexGrow:0},...s})});Ys.displayName="Square";var il=ee(function(e,n){const{size:r,...o}=e;return x.jsx(Ys,{size:r,ref:n,borderRadius:"9999px",...o})});il.displayName="Circle";var Gs=ee(function(e,n){const{direction:r,align:o,justify:s,wrap:a,basis:i,grow:l,shrink:u,...c}=e,d={display:"flex",flexDirection:r,alignItems:o,justifyContent:s,flexWrap:a,flexBasis:i,flexGrow:l,flexShrink:u};return x.jsx(J.div,{ref:n,__css:d,...c})});Gs.displayName="Flex";function ll(t){const{key:e}=t;return e.length===1||e.length>1&&/[^a-zA-Z0-9]/.test(e)}function cl(t={}){const{timeout:e=300,preventDefault:n=()=>!0}=t,[r,o]=g.useState([]),s=g.useRef(),a=()=>{s.current&&(clearTimeout(s.current),s.current=null)},i=()=>{a(),s.current=setTimeout(()=>{o([]),s.current=null},e)};g.useEffect(()=>a,[]);function l(u){return c=>{if(c.key==="Backspace"){const d=[...r];d.pop(),o(d);return}if(ll(c)){const d=r.concat(c.key);n(c)&&(c.preventDefault(),c.stopPropagation()),o(d),u(d.join("")),i()}}}return l}function ul(t,e,n,r){if(e==null)return r;if(!r)return t.find(a=>n(a).toLowerCase().startsWith(e.toLowerCase()));const o=t.filter(s=>n(s).toLowerCase().startsWith(e.toLowerCase()));if(o.length>0){let s;return o.includes(r)?(s=o.indexOf(r)+1,s===o.length&&(s=0),o[s]):(s=t.indexOf(o[0]),t[s])}return r}function dl(){const t=g.useRef(new Map),e=t.current,n=g.useCallback((o,s,a,i)=>{t.current.set(a,{type:s,el:o,options:i}),o.addEventListener(s,a,i)},[]),r=g.useCallback((o,s,a,i)=>{o.removeEventListener(s,a,i),t.current.delete(a)},[]);return g.useEffect(()=>()=>{e.forEach((o,s)=>{r(o.el,o.type,s,o.options)})},[r,e]),{add:n,remove:r}}function pr(t){const e=t.target,{tagName:n,isContentEditable:r}=e;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function fl(t={}){const{ref:e,isDisabled:n,isFocusable:r,clickOnEnter:o=!0,clickOnSpace:s=!0,onMouseDown:a,onMouseUp:i,onClick:l,onKeyDown:u,onKeyUp:c,tabIndex:d,onMouseOver:f,onMouseLeave:h,...m}=t,[p,w]=g.useState(!0),[y,v]=g.useState(!1),_=dl(),k=S=>{S&&S.tagName!=="BUTTON"&&w(!1)},E=p?d:d||0,C=n&&!r,b=g.useCallback(S=>{if(n){S.stopPropagation(),S.preventDefault();return}S.currentTarget.focus(),l==null||l(S)},[n,l]),P=g.useCallback(S=>{y&&pr(S)&&(S.preventDefault(),S.stopPropagation(),v(!1),_.remove(document,"keyup",P,!1))},[y,_]),O=g.useCallback(S=>{if(u==null||u(S),n||S.defaultPrevented||S.metaKey||!pr(S.nativeEvent)||p)return;const H=o&&S.key==="Enter";s&&S.key===" "&&(S.preventDefault(),v(!0)),H&&(S.preventDefault(),S.currentTarget.click()),_.add(document,"keyup",P,!1)},[n,p,u,o,s,_,P]),D=g.useCallback(S=>{if(c==null||c(S),n||S.defaultPrevented||S.metaKey||!pr(S.nativeEvent)||p)return;s&&S.key===" "&&(S.preventDefault(),v(!1),S.currentTarget.click())},[s,p,n,c]),A=g.useCallback(S=>{S.button===0&&(v(!1),_.remove(document,"mouseup",A,!1))},[_]),B=g.useCallback(S=>{if(S.button!==0)return;if(n){S.stopPropagation(),S.preventDefault();return}p||v(!0),S.currentTarget.focus({preventScroll:!0}),_.add(document,"mouseup",A,!1),a==null||a(S)},[n,p,a,_,A]),M=g.useCallback(S=>{S.button===0&&(p||v(!1),i==null||i(S))},[i,p]),L=g.useCallback(S=>{if(n){S.preventDefault();return}f==null||f(S)},[n,f]),X=g.useCallback(S=>{y&&(S.preventDefault(),v(!1)),h==null||h(S)},[y,h]),U=Me(e,k);return p?{...m,ref:U,type:"button","aria-disabled":C?void 0:n,disabled:C,onClick:b,onMouseDown:a,onMouseUp:i,onKeyUp:c,onKeyDown:u,onMouseOver:f,onMouseLeave:h}:{...m,ref:U,role:"button","data-active":Pe(y),"aria-disabled":n?"true":void 0,tabIndex:C?void 0:E,onClick:b,onMouseDown:B,onMouseUp:M,onKeyUp:D,onKeyDown:O,onMouseOver:L,onMouseLeave:X}}function hl(t){const e=t.current;if(!e)return!1;const n=pi(e);return!n||e.contains(n)?!1:!!mi(n)}function pl(t,e){const{shouldFocus:n,visible:r,focusRef:o}=e,s=n&&!r;sr(()=>{if(!s||hl(t))return;const a=(o==null?void 0:o.current)||t.current;let i;if(a)return i=requestAnimationFrame(()=>{a.focus({preventScroll:!0})}),()=>{cancelAnimationFrame(i)}},[s,t,o])}var ml={preventScroll:!0,shouldFocus:!1};function lf(t,e=ml){const{focusRef:n,preventScroll:r,shouldFocus:o,visible:s}=e,a=vl(t)?t.current:t,i=o&&s,l=g.useRef(i),u=g.useRef(s);fi(()=>{!u.current&&s&&(l.current=i),u.current=s},[s,i]);const c=g.useCallback(()=>{if(!(!s||!a||!l.current)&&(l.current=!1,!a.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var d;(d=n.current)==null||d.focus({preventScroll:r})});else{const d=hi(a);d.length>0&&requestAnimationFrame(()=>{d[0].focus({preventScroll:r})})}},[s,r,a,n]);sr(()=>{c()},[c]),$t(a,"transitionend",c)}function vl(t){return"current"in t}var vt=(t,e)=>({var:t,varRef:e?`var(${t}, ${e})`:`var(${t})`}),de={arrowShadowColor:vt("--popper-arrow-shadow-color"),arrowSize:vt("--popper-arrow-size","8px"),arrowSizeHalf:vt("--popper-arrow-size-half"),arrowBg:vt("--popper-arrow-bg"),transformOrigin:vt("--popper-transform-origin"),arrowOffset:vt("--popper-arrow-offset")};function yl(t){if(t.includes("top"))return"1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("bottom"))return"-1px -1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("right"))return"-1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("left"))return"1px -1px 0px 0 var(--popper-arrow-shadow-color)"}var gl={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"},wl=t=>gl[t],Zo={scroll:!0,resize:!0};function bl(t){let e;return typeof t=="object"?e={enabled:!0,options:{...Zo,...t}}:e={enabled:t,options:Zo},e}var xl={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:t})=>{t.styles.popper.width=`${t.rects.reference.width}px`},effect:({state:t})=>()=>{const e=t.elements.reference;t.elements.popper.style.width=`${e.offsetWidth}px`}},_l={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:t})=>{Qo(t)},effect:({state:t})=>()=>{Qo(t)}},Qo=t=>{t.elements.popper.style.setProperty(de.transformOrigin.var,wl(t.placement))},kl={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:t})=>{Cl(t)}},Cl=t=>{var e;if(!t.placement)return;const n=El(t.placement);if((e=t.elements)!=null&&e.arrow&&n){Object.assign(t.elements.arrow.style,{[n.property]:n.value,width:de.arrowSize.varRef,height:de.arrowSize.varRef,zIndex:-1});const r={[de.arrowSizeHalf.var]:`calc(${de.arrowSize.varRef} / 2 - 1px)`,[de.arrowOffset.var]:`calc(${de.arrowSizeHalf.varRef} * -1)`};for(const o in r)t.elements.arrow.style.setProperty(o,r[o])}},El=t=>{if(t.startsWith("top"))return{property:"bottom",value:de.arrowOffset.varRef};if(t.startsWith("bottom"))return{property:"top",value:de.arrowOffset.varRef};if(t.startsWith("left"))return{property:"right",value:de.arrowOffset.varRef};if(t.startsWith("right"))return{property:"left",value:de.arrowOffset.varRef}},Ol={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:t})=>{es(t)},effect:({state:t})=>()=>{es(t)}},es=t=>{if(!t.elements.arrow)return;const e=t.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!e)return;const n=yl(t.placement);n&&e.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(e.style,{transform:"rotate(45deg)",background:de.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},Dl={"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"}},Sl={"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 Il(t,e="ltr"){var n,r;const o=((n=Dl[t])==null?void 0:n[e])||t;return e==="ltr"?o:(r=Sl[t])!=null?r:o}var ye="top",ke="bottom",Ce="right",ge="left",go="auto",cn=[ye,ke,Ce,ge],Ot="start",Xt="end",Pl="clippingParents",Xs="viewport",Tt="popper",jl="reference",ts=cn.reduce(function(t,e){return t.concat([e+"-"+Ot,e+"-"+Xt])},[]),Zs=[].concat(cn,[go]).reduce(function(t,e){return t.concat([e,e+"-"+Ot,e+"-"+Xt])},[]),Al="beforeRead",Nl="read",Fl="afterRead",Ml="beforeMain",Rl="main",Tl="afterMain",Bl="beforeWrite",Ll="write",Wl="afterWrite",Kl=[Al,Nl,Fl,Ml,Rl,Tl,Bl,Ll,Wl];function Re(t){return t?(t.nodeName||"").toLowerCase():null}function be(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ft(t){var e=be(t).Element;return t instanceof e||t instanceof Element}function _e(t){var e=be(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function wo(t){if(typeof ShadowRoot>"u")return!1;var e=be(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function $l(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},s=e.elements[n];!_e(s)||!Re(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(a){var i=o[a];i===!1?s.removeAttribute(a):s.setAttribute(a,i===!0?"":i)}))})}function Ul(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],s=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),i=a.reduce(function(l,u){return l[u]="",l},{});!_e(o)||!Re(o)||(Object.assign(o.style,i),Object.keys(s).forEach(function(l){o.removeAttribute(l)}))})}}const ql={name:"applyStyles",enabled:!0,phase:"write",fn:$l,effect:Ul,requires:["computeStyles"]};function Ne(t){return t.split("-")[0]}var it=Math.max,$n=Math.min,Dt=Math.round;function Dr(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Qs(){return!/^((?!chrome|android).)*safari/i.test(Dr())}function St(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var r=t.getBoundingClientRect(),o=1,s=1;e&&_e(t)&&(o=t.offsetWidth>0&&Dt(r.width)/t.offsetWidth||1,s=t.offsetHeight>0&&Dt(r.height)/t.offsetHeight||1);var a=ft(t)?be(t):window,i=a.visualViewport,l=!Qs()&&n,u=(r.left+(l&&i?i.offsetLeft:0))/o,c=(r.top+(l&&i?i.offsetTop:0))/s,d=r.width/o,f=r.height/s;return{width:d,height:f,top:c,right:u+d,bottom:c+f,left:u,x:u,y:c}}function bo(t){var e=St(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function ea(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&wo(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function qe(t){return be(t).getComputedStyle(t)}function zl(t){return["table","td","th"].indexOf(Re(t))>=0}function et(t){return((ft(t)?t.ownerDocument:t.document)||window.document).documentElement}function ir(t){return Re(t)==="html"?t:t.assignedSlot||t.parentNode||(wo(t)?t.host:null)||et(t)}function ns(t){return!_e(t)||qe(t).position==="fixed"?null:t.offsetParent}function Vl(t){var e=/firefox/i.test(Dr()),n=/Trident/i.test(Dr());if(n&&_e(t)){var r=qe(t);if(r.position==="fixed")return null}var o=ir(t);for(wo(o)&&(o=o.host);_e(o)&&["html","body"].indexOf(Re(o))<0;){var s=qe(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function un(t){for(var e=be(t),n=ns(t);n&&zl(n)&&qe(n).position==="static";)n=ns(n);return n&&(Re(n)==="html"||Re(n)==="body"&&qe(n).position==="static")?e:n||Vl(t)||e}function xo(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ut(t,e,n){return it(t,$n(e,n))}function Hl(t,e,n){var r=Ut(t,e,n);return r>n?n:r}function ta(){return{top:0,right:0,bottom:0,left:0}}function na(t){return Object.assign({},ta(),t)}function ra(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var Jl=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,na(typeof e!="number"?e:ra(e,cn))};function Yl(t){var e,n=t.state,r=t.name,o=t.options,s=n.elements.arrow,a=n.modifiersData.popperOffsets,i=Ne(n.placement),l=xo(i),u=[ge,Ce].indexOf(i)>=0,c=u?"height":"width";if(!(!s||!a)){var d=Jl(o.padding,n),f=bo(s),h=l==="y"?ye:ge,m=l==="y"?ke:Ce,p=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],w=a[l]-n.rects.reference[l],y=un(s),v=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,_=p/2-w/2,k=d[h],E=v-f[c]-d[m],C=v/2-f[c]/2+_,b=Ut(k,C,E),P=l;n.modifiersData[r]=(e={},e[P]=b,e.centerOffset=b-C,e)}}function Gl(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||ea(e.elements.popper,o)&&(e.elements.arrow=o))}const Xl={name:"arrow",enabled:!0,phase:"main",fn:Yl,effect:Gl,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function It(t){return t.split("-")[1]}var Zl={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ql(t,e){var n=t.x,r=t.y,o=e.devicePixelRatio||1;return{x:Dt(n*o)/o||0,y:Dt(r*o)/o||0}}function rs(t){var e,n=t.popper,r=t.popperRect,o=t.placement,s=t.variation,a=t.offsets,i=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,d=t.isFixed,f=a.x,h=f===void 0?0:f,m=a.y,p=m===void 0?0:m,w=typeof c=="function"?c({x:h,y:p}):{x:h,y:p};h=w.x,p=w.y;var y=a.hasOwnProperty("x"),v=a.hasOwnProperty("y"),_=ge,k=ye,E=window;if(u){var C=un(n),b="clientHeight",P="clientWidth";if(C===be(n)&&(C=et(n),qe(C).position!=="static"&&i==="absolute"&&(b="scrollHeight",P="scrollWidth")),C=C,o===ye||(o===ge||o===Ce)&&s===Xt){k=ke;var O=d&&C===E&&E.visualViewport?E.visualViewport.height:C[b];p-=O-r.height,p*=l?1:-1}if(o===ge||(o===ye||o===ke)&&s===Xt){_=Ce;var D=d&&C===E&&E.visualViewport?E.visualViewport.width:C[P];h-=D-r.width,h*=l?1:-1}}var A=Object.assign({position:i},u&&Zl),B=c===!0?Ql({x:h,y:p},be(n)):{x:h,y:p};if(h=B.x,p=B.y,l){var M;return Object.assign({},A,(M={},M[k]=v?"0":"",M[_]=y?"0":"",M.transform=(E.devicePixelRatio||1)<=1?"translate("+h+"px, "+p+"px)":"translate3d("+h+"px, "+p+"px, 0)",M))}return Object.assign({},A,(e={},e[k]=v?p+"px":"",e[_]=y?h+"px":"",e.transform="",e))}function ec(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,a=s===void 0?!0:s,i=n.roundOffsets,l=i===void 0?!0:i,u={placement:Ne(e.placement),variation:It(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,rs(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,rs(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const tc={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ec,data:{}};var wn={passive:!0};function nc(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,s=o===void 0?!0:o,a=r.resize,i=a===void 0?!0:a,l=be(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,wn)}),i&&l.addEventListener("resize",n.update,wn),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,wn)}),i&&l.removeEventListener("resize",n.update,wn)}}const rc={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:nc,data:{}};var oc={left:"right",right:"left",bottom:"top",top:"bottom"};function In(t){return t.replace(/left|right|bottom|top/g,function(e){return oc[e]})}var sc={start:"end",end:"start"};function os(t){return t.replace(/start|end/g,function(e){return sc[e]})}function _o(t){var e=be(t),n=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:n,scrollTop:r}}function ko(t){return St(et(t)).left+_o(t).scrollLeft}function ac(t,e){var n=be(t),r=et(t),o=n.visualViewport,s=r.clientWidth,a=r.clientHeight,i=0,l=0;if(o){s=o.width,a=o.height;var u=Qs();(u||!u&&e==="fixed")&&(i=o.offsetLeft,l=o.offsetTop)}return{width:s,height:a,x:i+ko(t),y:l}}function ic(t){var e,n=et(t),r=_o(t),o=(e=t.ownerDocument)==null?void 0:e.body,s=it(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=it(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+ko(t),l=-r.scrollTop;return qe(o||n).direction==="rtl"&&(i+=it(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:a,x:i,y:l}}function Co(t){var e=qe(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function oa(t){return["html","body","#document"].indexOf(Re(t))>=0?t.ownerDocument.body:_e(t)&&Co(t)?t:oa(ir(t))}function qt(t,e){var n;e===void 0&&(e=[]);var r=oa(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),s=be(r),a=o?[s].concat(s.visualViewport||[],Co(r)?r:[]):r,i=e.concat(a);return o?i:i.concat(qt(ir(a)))}function Sr(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function lc(t,e){var n=St(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function ss(t,e,n){return e===Xs?Sr(ac(t,n)):ft(e)?lc(e,n):Sr(ic(et(t)))}function cc(t){var e=qt(ir(t)),n=["absolute","fixed"].indexOf(qe(t).position)>=0,r=n&&_e(t)?un(t):t;return ft(r)?e.filter(function(o){return ft(o)&&ea(o,r)&&Re(o)!=="body"}):[]}function uc(t,e,n,r){var o=e==="clippingParents"?cc(t):[].concat(e),s=[].concat(o,[n]),a=s[0],i=s.reduce(function(l,u){var c=ss(t,u,r);return l.top=it(c.top,l.top),l.right=$n(c.right,l.right),l.bottom=$n(c.bottom,l.bottom),l.left=it(c.left,l.left),l},ss(t,a,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function sa(t){var e=t.reference,n=t.element,r=t.placement,o=r?Ne(r):null,s=r?It(r):null,a=e.x+e.width/2-n.width/2,i=e.y+e.height/2-n.height/2,l;switch(o){case ye:l={x:a,y:e.y-n.height};break;case ke:l={x:a,y:e.y+e.height};break;case Ce:l={x:e.x+e.width,y:i};break;case ge:l={x:e.x-n.width,y:i};break;default:l={x:e.x,y:e.y}}var u=o?xo(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Ot:l[u]=l[u]-(e[c]/2-n[c]/2);break;case Xt:l[u]=l[u]+(e[c]/2-n[c]/2);break}}return l}function Zt(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,s=n.strategy,a=s===void 0?t.strategy:s,i=n.boundary,l=i===void 0?Pl:i,u=n.rootBoundary,c=u===void 0?Xs:u,d=n.elementContext,f=d===void 0?Tt:d,h=n.altBoundary,m=h===void 0?!1:h,p=n.padding,w=p===void 0?0:p,y=na(typeof w!="number"?w:ra(w,cn)),v=f===Tt?jl:Tt,_=t.rects.popper,k=t.elements[m?v:f],E=uc(ft(k)?k:k.contextElement||et(t.elements.popper),l,c,a),C=St(t.elements.reference),b=sa({reference:C,element:_,strategy:"absolute",placement:o}),P=Sr(Object.assign({},_,b)),O=f===Tt?P:C,D={top:E.top-O.top+y.top,bottom:O.bottom-E.bottom+y.bottom,left:E.left-O.left+y.left,right:O.right-E.right+y.right},A=t.modifiersData.offset;if(f===Tt&&A){var B=A[o];Object.keys(D).forEach(function(M){var L=[Ce,ke].indexOf(M)>=0?1:-1,X=[ye,ke].indexOf(M)>=0?"y":"x";D[M]+=B[X]*L})}return D}function dc(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,i=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?Zs:l,c=It(r),d=c?i?ts:ts.filter(function(m){return It(m)===c}):cn,f=d.filter(function(m){return u.indexOf(m)>=0});f.length===0&&(f=d);var h=f.reduce(function(m,p){return m[p]=Zt(t,{placement:p,boundary:o,rootBoundary:s,padding:a})[Ne(p)],m},{});return Object.keys(h).sort(function(m,p){return h[m]-h[p]})}function fc(t){if(Ne(t)===go)return[];var e=In(t);return[os(t),e,os(e)]}function hc(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,a=n.altAxis,i=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,f=n.altBoundary,h=n.flipVariations,m=h===void 0?!0:h,p=n.allowedAutoPlacements,w=e.options.placement,y=Ne(w),v=y===w,_=l||(v||!m?[In(w)]:fc(w)),k=[w].concat(_).reduce(function(K,V){return K.concat(Ne(V)===go?dc(e,{placement:V,boundary:c,rootBoundary:d,padding:u,flipVariations:m,allowedAutoPlacements:p}):V)},[]),E=e.rects.reference,C=e.rects.popper,b=new Map,P=!0,O=k[0],D=0;D=0,X=L?"width":"height",U=Zt(e,{placement:A,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),S=L?M?Ce:ge:M?ke:ye;E[X]>C[X]&&(S=In(S));var H=In(S),j=[];if(s&&j.push(U[B]<=0),i&&j.push(U[S]<=0,U[H]<=0),j.every(function(K){return K})){O=A,P=!1;break}b.set(A,j)}if(P)for(var R=m?3:1,$=function(V){var ie=k.find(function(pe){var le=b.get(pe);if(le)return le.slice(0,V).every(function(Oe){return Oe})});if(ie)return O=ie,"break"},z=R;z>0;z--){var W=$(z);if(W==="break")break}e.placement!==O&&(e.modifiersData[r]._skip=!0,e.placement=O,e.reset=!0)}}const pc={name:"flip",enabled:!0,phase:"main",fn:hc,requiresIfExists:["offset"],data:{_skip:!1}};function as(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function is(t){return[ye,Ce,ke,ge].some(function(e){return t[e]>=0})}function mc(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,s=e.modifiersData.preventOverflow,a=Zt(e,{elementContext:"reference"}),i=Zt(e,{altBoundary:!0}),l=as(a,r),u=as(i,o,s),c=is(l),d=is(u);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const vc={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:mc};function yc(t,e,n){var r=Ne(t),o=[ge,ye].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,a=s[0],i=s[1];return a=a||0,i=(i||0)*o,[ge,Ce].indexOf(r)>=0?{x:i,y:a}:{x:a,y:i}}function gc(t){var e=t.state,n=t.options,r=t.name,o=n.offset,s=o===void 0?[0,0]:o,a=Zs.reduce(function(c,d){return c[d]=yc(d,e.rects,s),c},{}),i=a[e.placement],l=i.x,u=i.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[r]=a}const wc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:gc};function bc(t){var e=t.state,n=t.name;e.modifiersData[n]=sa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const xc={name:"popperOffsets",enabled:!0,phase:"read",fn:bc,data:{}};function _c(t){return t==="x"?"y":"x"}function kc(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,s=o===void 0?!0:o,a=n.altAxis,i=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,f=n.tether,h=f===void 0?!0:f,m=n.tetherOffset,p=m===void 0?0:m,w=Zt(e,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),y=Ne(e.placement),v=It(e.placement),_=!v,k=xo(y),E=_c(k),C=e.modifiersData.popperOffsets,b=e.rects.reference,P=e.rects.popper,O=typeof p=="function"?p(Object.assign({},e.rects,{placement:e.placement})):p,D=typeof O=="number"?{mainAxis:O,altAxis:O}:Object.assign({mainAxis:0,altAxis:0},O),A=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,B={x:0,y:0};if(C){if(s){var M,L=k==="y"?ye:ge,X=k==="y"?ke:Ce,U=k==="y"?"height":"width",S=C[k],H=S+w[L],j=S-w[X],R=h?-P[U]/2:0,$=v===Ot?b[U]:P[U],z=v===Ot?-P[U]:-b[U],W=e.elements.arrow,K=h&&W?bo(W):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:ta(),ie=V[L],pe=V[X],le=Ut(0,b[U],K[U]),Oe=_?b[U]/2-R-le-ie-D.mainAxis:$-le-ie-D.mainAxis,ur=_?-b[U]/2+R+le+pe+D.mainAxis:z+le+pe+D.mainAxis,Rt=e.elements.arrow&&un(e.elements.arrow),ne=Rt?k==="y"?Rt.clientTop||0:Rt.clientLeft||0:0,De=(M=A==null?void 0:A[k])!=null?M:0,yn=S+Oe-De-ne,dr=S+ur-De,Lo=Ut(h?$n(H,yn):H,S,h?it(j,dr):j);C[k]=Lo,B[k]=Lo-S}if(i){var Wo,ni=k==="x"?ye:ge,ri=k==="x"?ke:Ce,tt=C[E],gn=E==="y"?"height":"width",Ko=tt+w[ni],$o=tt-w[ri],fr=[ye,ge].indexOf(y)!==-1,Uo=(Wo=A==null?void 0:A[E])!=null?Wo:0,qo=fr?Ko:tt-b[gn]-P[gn]-Uo+D.altAxis,zo=fr?tt+b[gn]+P[gn]-Uo-D.altAxis:$o,Vo=h&&fr?Hl(qo,tt,zo):Ut(h?qo:Ko,tt,h?zo:$o);C[E]=Vo,B[E]=Vo-tt}e.modifiersData[r]=B}}const Cc={name:"preventOverflow",enabled:!0,phase:"main",fn:kc,requiresIfExists:["offset"]};function Ec(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Oc(t){return t===be(t)||!_e(t)?_o(t):Ec(t)}function Dc(t){var e=t.getBoundingClientRect(),n=Dt(e.width)/t.offsetWidth||1,r=Dt(e.height)/t.offsetHeight||1;return n!==1||r!==1}function Sc(t,e,n){n===void 0&&(n=!1);var r=_e(e),o=_e(e)&&Dc(e),s=et(e),a=St(t,o,n),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((Re(e)!=="body"||Co(s))&&(i=Oc(e)),_e(e)?(l=St(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=ko(s))),{x:a.left+i.scrollLeft-l.x,y:a.top+i.scrollTop-l.y,width:a.width,height:a.height}}function Ic(t){var e=new Map,n=new Set,r=[];t.forEach(function(s){e.set(s.name,s)});function o(s){n.add(s.name);var a=[].concat(s.requires||[],s.requiresIfExists||[]);a.forEach(function(i){if(!n.has(i)){var l=e.get(i);l&&o(l)}}),r.push(s)}return t.forEach(function(s){n.has(s.name)||o(s)}),r}function Pc(t){var e=Ic(t);return Kl.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function jc(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function Ac(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var ls={placement:"bottom",modifiers:[],strategy:"absolute"};function cs(){for(var t=arguments.length,e=new Array(t),n=0;n{}),_=g.useCallback(()=>{var D;!e||!m.current||!p.current||((D=v.current)==null||D.call(v),w.current=Mc(m.current,p.current,{placement:y,modifiers:[Ol,kl,_l,{...xl,enabled:!!f},{name:"eventListeners",...bl(a)},{name:"arrow",options:{padding:s}},{name:"offset",options:{offset:i??[0,l]}},{name:"flip",enabled:!!u,options:{padding:8}},{name:"preventOverflow",enabled:!!d,options:{boundary:c}},...n??[]],strategy:o}),w.current.forceUpdate(),v.current=w.current.destroy)},[y,e,n,f,a,s,i,l,u,d,c,o]);g.useEffect(()=>()=>{var D;!m.current&&!p.current&&((D=w.current)==null||D.destroy(),w.current=null)},[]);const k=g.useCallback(D=>{m.current=D,_()},[_]),E=g.useCallback((D={},A=null)=>({...D,ref:Me(k,A)}),[k]),C=g.useCallback(D=>{p.current=D,_()},[_]),b=g.useCallback((D={},A=null)=>({...D,ref:Me(C,A),style:{...D.style,position:o,minWidth:f?void 0:"max-content",inset:"0 auto auto 0"}}),[o,C,f]),P=g.useCallback((D={},A=null)=>{const{size:B,shadowColor:M,bg:L,style:X,...U}=D;return{...U,ref:A,"data-popper-arrow":"",style:Rc(D)}},[]),O=g.useCallback((D={},A=null)=>({...D,ref:A,"data-popper-arrow-inner":""}),[]);return{update(){var D;(D=w.current)==null||D.update()},forceUpdate(){var D;(D=w.current)==null||D.forceUpdate()},transformOrigin:de.transformOrigin.varRef,referenceRef:k,popperRef:C,getPopperProps:b,getArrowProps:P,getArrowInnerProps:O,getReferenceProps:E}}function Rc(t){const{size:e,shadowColor:n,bg:r,style:o}=t,s={...o,position:"absolute"};return e&&(s["--popper-arrow-size"]=e),n&&(s["--popper-arrow-shadow-color"]=n),r&&(s["--popper-arrow-bg"]=r),s}function ia(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=at(n),a=at(e),[i,l]=g.useState(t.defaultIsOpen||!1),u=r!==void 0?r:i,c=r!==void 0,d=g.useId(),f=o??`disclosure-${d}`,h=g.useCallback(()=>{c||l(!1),a==null||a()},[c,a]),m=g.useCallback(()=>{c||l(!0),s==null||s()},[c,s]),p=g.useCallback(()=>{u?h():m()},[u,m,h]);function w(v={}){return{...v,"aria-expanded":u,"aria-controls":f,onClick(_){var k;(k=v.onClick)==null||k.call(v,_),p()}}}function y(v={}){return{...v,hidden:!u,id:f}}return{isOpen:u,onOpen:m,onClose:h,onToggle:p,isControlled:c,getButtonProps:w,getDisclosureProps:y}}function Tc(t){const{ref:e,handler:n,enabled:r=!0}=t,o=at(n),a=g.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;g.useEffect(()=>{if(!r)return;const i=d=>{mr(d,e)&&(a.isPointerDown=!0)},l=d=>{if(a.ignoreEmulatedMouseEvents){a.ignoreEmulatedMouseEvents=!1;return}a.isPointerDown&&n&&mr(d,e)&&(a.isPointerDown=!1,o(d))},u=d=>{a.ignoreEmulatedMouseEvents=!0,n&&a.isPointerDown&&mr(d,e)&&(a.isPointerDown=!1,o(d))},c=la(e.current);return c.addEventListener("mousedown",i,!0),c.addEventListener("mouseup",l,!0),c.addEventListener("touchstart",i,!0),c.addEventListener("touchend",u,!0),()=>{c.removeEventListener("mousedown",i,!0),c.removeEventListener("mouseup",l,!0),c.removeEventListener("touchstart",i,!0),c.removeEventListener("touchend",u,!0)}},[n,e,o,a,r])}function mr(t,e){var n;const r=t.target;return r&&!la(r).contains(r)?!1:!((n=e.current)!=null&&n.contains(r))}function la(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function Bc(t){const{isOpen:e,ref:n}=t,[r,o]=g.useState(e),[s,a]=g.useState(!1);return g.useEffect(()=>{s||(o(e),a(!0))},[e,s,r]),$t(()=>n.current,"animationend",()=>{o(e)}),{present:!(e?!1:!r),onComplete(){var l;const u=vi(n.current),c=new u.CustomEvent("animationend",{bubbles:!0});(l=n.current)==null||l.dispatchEvent(c)}}}function Lc(t){const{wasSelected:e,enabled:n,isSelected:r,mode:o="unmount"}=t;return!!(!n||r||o==="keepMounted"&&e)}var[Wc,Kc,$c,Uc]=Ai(),[qc,dn]=jt({strict:!1,name:"MenuContext"});function zc(t,...e){const n=g.useId(),r=t||n;return g.useMemo(()=>e.map(o=>`${o}-${r}`),[r,e])}function ca(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function us(t){return ca(t).activeElement===t}function Vc(t={}){const{id:e,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:o,autoSelect:s=!0,isLazy:a,isOpen:i,defaultIsOpen:l,onClose:u,onOpen:c,placement:d="bottom-start",lazyBehavior:f="unmount",direction:h,computePositionOnMount:m=!1,...p}=t,w=g.useRef(null),y=g.useRef(null),v=$c(),_=g.useCallback(()=>{requestAnimationFrame(()=>{var W;(W=w.current)==null||W.focus({preventScroll:!1})})},[]),k=g.useCallback(()=>{const W=setTimeout(()=>{var K;if(o)(K=o.current)==null||K.focus();else{const V=v.firstEnabled();V&&M(V.index)}});H.current.add(W)},[v,o]),E=g.useCallback(()=>{const W=setTimeout(()=>{const K=v.lastEnabled();K&&M(K.index)});H.current.add(W)},[v]),C=g.useCallback(()=>{c==null||c(),s?k():_()},[s,k,_,c]),{isOpen:b,onOpen:P,onClose:O,onToggle:D}=ia({isOpen:i,defaultIsOpen:l,onClose:u,onOpen:C});Tc({enabled:b&&r,ref:w,handler:W=>{var K;(K=y.current)!=null&&K.contains(W.target)||O()}});const A=aa({...p,enabled:b||m,placement:d,direction:h}),[B,M]=g.useState(-1);sr(()=>{b||M(-1)},[b]),pl(w,{focusRef:y,visible:b,shouldFocus:!0});const L=Bc({isOpen:b,ref:w}),[X,U]=zc(e,"menu-button","menu-list"),S=g.useCallback(()=>{P(),_()},[P,_]),H=g.useRef(new Set([]));g.useEffect(()=>{const W=H.current;return()=>{W.forEach(K=>clearTimeout(K)),W.clear()}},[]);const j=g.useCallback(()=>{P(),k()},[k,P]),R=g.useCallback(()=>{P(),E()},[P,E]),$=g.useCallback(()=>{var W,K;const V=ca(w.current),ie=(W=w.current)==null?void 0:W.contains(V.activeElement);if(!(b&&!ie))return;const le=(K=v.item(B))==null?void 0:K.node;le==null||le.focus({preventScroll:!0})},[b,B,v]),z=g.useRef(null);return{openAndFocusMenu:S,openAndFocusFirstItem:j,openAndFocusLastItem:R,onTransitionEnd:$,unstable__animationState:L,descendants:v,popper:A,buttonId:X,menuId:U,forceUpdate:A.forceUpdate,orientation:"vertical",isOpen:b,onToggle:D,onOpen:P,onClose:O,menuRef:w,buttonRef:y,focusedIndex:B,closeOnSelect:n,closeOnBlur:r,autoSelect:s,setFocusedIndex:M,isLazy:a,lazyBehavior:f,initialFocusRef:o,rafId:z}}function Hc(t={},e=null){const n=dn(),{onToggle:r,popper:o,openAndFocusFirstItem:s,openAndFocusLastItem:a}=n,i=g.useCallback(l=>{const u=l.key,d={Enter:s,ArrowDown:s,ArrowUp:a}[u];d&&(l.preventDefault(),l.stopPropagation(),d(l))},[s,a]);return{...t,ref:Me(n.buttonRef,e,o.referenceRef),id:n.buttonId,"data-active":Pe(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:Ae(t.onClick,r),onKeyDown:Ae(t.onKeyDown,i)}}function Ir(t){var e;return Gc(t)&&!!((e=t==null?void 0:t.getAttribute("role"))!=null&&e.startsWith("menuitem"))}function Jc(t={},e=null){const n=dn();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within ");const{focusedIndex:r,setFocusedIndex:o,menuRef:s,isOpen:a,onClose:i,menuId:l,isLazy:u,lazyBehavior:c,unstable__animationState:d}=n,f=Kc(),h=cl({preventDefault:y=>y.key!==" "&&Ir(y.target)}),m=g.useCallback(y=>{if(!y.currentTarget.contains(y.target))return;const v=y.key,k={Tab:C=>C.preventDefault(),Escape:i,ArrowDown:()=>{const C=f.nextEnabled(r);C&&o(C.index)},ArrowUp:()=>{const C=f.prevEnabled(r);C&&o(C.index)}}[v];if(k){y.preventDefault(),k(y);return}const E=h(C=>{const b=ul(f.values(),C,P=>{var O,D;return(D=(O=P==null?void 0:P.node)==null?void 0:O.textContent)!=null?D:""},f.item(r));if(b){const P=f.indexOf(b.node);o(P)}});Ir(y.target)&&E(y)},[f,r,h,i,o]),p=g.useRef(!1);a&&(p.current=!0);const w=Lc({wasSelected:p.current,enabled:u,mode:c,isSelected:d.present});return{...t,ref:Me(s,e),children:w?t.children:null,tabIndex:-1,role:"menu",id:l,style:{...t.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:Ae(t.onKeyDown,m)}}function Yc(t={}){const{popper:e,isOpen:n}=dn();return e.getPopperProps({...t,style:{visibility:n?"visible":"hidden",...t.style}})}function ua(t={},e=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onClick:s,onFocus:a,isDisabled:i,isFocusable:l,closeOnSelect:u,type:c,...d}=t,f=dn(),{setFocusedIndex:h,focusedIndex:m,closeOnSelect:p,onClose:w,menuRef:y,isOpen:v,menuId:_,rafId:k}=f,E=g.useRef(null),C=`${_}-menuitem-${g.useId()}`,{index:b,register:P}=Uc({disabled:i&&!l}),O=g.useCallback(S=>{n==null||n(S),!i&&h(b)},[h,b,i,n]),D=g.useCallback(S=>{r==null||r(S),E.current&&!us(E.current)&&O(S)},[O,r]),A=g.useCallback(S=>{o==null||o(S),!i&&h(-1)},[h,i,o]),B=g.useCallback(S=>{s==null||s(S),Ir(S.currentTarget)&&(u??p)&&w()},[w,s,p,u]),M=g.useCallback(S=>{a==null||a(S),h(b)},[h,a,b]),L=b===m,X=i&&!l;sr(()=>{if(v)return L&&!X&&E.current?(k.current&&cancelAnimationFrame(k.current),k.current=requestAnimationFrame(()=>{var S;(S=E.current)==null||S.focus({preventScroll:!0}),k.current=null})):y.current&&!us(y.current)&&y.current.focus({preventScroll:!0}),()=>{k.current&&cancelAnimationFrame(k.current)}},[L,X,y,v]);const U=fl({onClick:B,onFocus:M,onMouseEnter:O,onMouseMove:D,onMouseLeave:A,ref:Me(P,E,e),isDisabled:i,isFocusable:l});return{...d,...U,type:c??U.type,id:C,role:"menuitem",tabIndex:L?0:-1}}function cf(t={},e=null){const{type:n="radio",isChecked:r,...o}=t;return{...ua(o,e),role:`menuitem${n}`,"aria-checked":r}}function uf(t={}){const{children:e,type:n="radio",value:r,defaultValue:o,onChange:s,...a}=t,l=n==="radio"?"":[],[u,c]=Ni({defaultValue:o??l,value:r,onChange:s}),d=g.useCallback(m=>{if(n==="radio"&&typeof u=="string"&&c(m),n==="checkbox"&&Array.isArray(u)){const p=u.includes(m)?u.filter(w=>w!==m):u.concat(m);c(p)}},[u,c,n]),h=Bs(e).map(m=>{if(m.type.id!=="MenuItemOption")return m;const p=y=>{var v,_;d(m.props.value),(_=(v=m.props).onClick)==null||_.call(v,y)},w=n==="radio"?m.props.value===u:u.includes(m.props.value);return g.cloneElement(m,{type:n,onClick:p,isChecked:w})});return{...a,children:h}}function Gc(t){var e;if(!Xc(t))return!1;const n=(e=t.ownerDocument.defaultView)!=null?e:window;return t instanceof n.HTMLElement}function Xc(t){return t!=null&&typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE}var[Zc,fn]=jt({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),da=t=>{const{children:e}=t,n=ln("Menu",t),r=Ve(t),{direction:o}=Ss(),{descendants:s,...a}=Vc({...r,direction:o}),i=g.useMemo(()=>a,[a]),{isOpen:l,onClose:u,forceUpdate:c}=i;return x.jsx(Wc,{value:s,children:x.jsx(qc,{value:i,children:x.jsx(Zc,{value:n,children:yi(e,{isOpen:l,onClose:u,forceUpdate:c})})})})};da.displayName="Menu";var fa=ee((t,e)=>{const n=fn();return x.jsx(J.span,{ref:e,...t,__css:n.command,className:"chakra-menu__command"})});fa.displayName="MenuCommand";var Qc=ee((t,e)=>{const{type:n,...r}=t,o=fn(),s=r.as||n?n??void 0:"button",a=g.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...o.item}),[o.item]);return x.jsx(J.button,{ref:e,type:s,...r,__css:a})}),ha=t=>{const{className:e,children:n,...r}=t,o=fn(),s=g.Children.only(n),a=g.isValidElement(s)?g.cloneElement(s,{focusable:"false","aria-hidden":!0,className:ce("chakra-menu__icon",s.props.className)}):null,i=ce("chakra-menu__icon-wrapper",e);return x.jsx(J.span,{className:i,...r,__css:o.icon,children:a})};ha.displayName="MenuIcon";var wt=ee((t,e)=>{const{icon:n,iconSpacing:r="0.75rem",command:o,commandSpacing:s="0.75rem",children:a,...i}=t,l=ua(i,e),c=n||o?x.jsx("span",{style:{pointerEvents:"none",flex:1},children:a}):a;return x.jsxs(Qc,{...l,className:ce("chakra-menu__menuitem",l.className),children:[n&&x.jsx(ha,{fontSize:"0.8em",marginEnd:r,children:n}),c,o&&x.jsx(fa,{marginStart:s,children:o})]})});wt.displayName="MenuItem";var eu={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"}}},tu=J(Is.div),pa=ee(function(e,n){var r,o;const{rootProps:s,motionProps:a,...i}=e,{isOpen:l,onTransitionEnd:u,unstable__animationState:c}=dn(),d=Jc(i,n),f=Yc(s),h=fn();return x.jsx(J.div,{...f,__css:{zIndex:(o=e.zIndex)!=null?o:(r=h.list)==null?void 0:r.zIndex},children:x.jsx(tu,{variants:eu,initial:!1,animate:l?"enter":"exit",__css:{outline:0,...h.list},...a,className:ce("chakra-menu__menu-list",d.className),...d,onUpdate:u,onAnimationComplete:gi(c.onComplete,d.onAnimationComplete)})})});pa.displayName="MenuList";var nu=ee((t,e)=>{const n=fn();return x.jsx(J.button,{ref:e,...t,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...n.button}})}),ma=ee((t,e)=>{const{children:n,as:r,...o}=t,s=Hc(o,e),a=r||nu;return x.jsx(a,{...s,className:ce("chakra-menu__menu-button",t.className),children:x.jsx(J.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:t.children})})});ma.displayName="MenuButton";var ru={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]}}}},Pr=t=>{var e;return((e=t.current)==null?void 0:e.ownerDocument)||document},Pn=t=>{var e,n;return((n=(e=t.current)==null?void 0:e.ownerDocument)==null?void 0:n.defaultView)||window};function ou(t={}){const{openDelay:e=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:o,closeOnScroll:s,closeOnPointerDown:a=o,closeOnEsc:i=!0,onOpen:l,onClose:u,placement:c,id:d,isOpen:f,defaultIsOpen:h,arrowSize:m=10,arrowShadowColor:p,arrowPadding:w,modifiers:y,isDisabled:v,gutter:_,offset:k,direction:E,...C}=t,{isOpen:b,onOpen:P,onClose:O}=ia({isOpen:f,defaultIsOpen:h,onOpen:l,onClose:u}),{referenceRef:D,getPopperProps:A,getArrowInnerProps:B,getArrowProps:M}=aa({enabled:b,placement:c,arrowPadding:w,modifiers:y,gutter:_,offset:k,direction:E}),L=g.useId(),U=`tooltip-${d??L}`,S=g.useRef(null),H=g.useRef(),j=g.useCallback(()=>{H.current&&(clearTimeout(H.current),H.current=void 0)},[]),R=g.useRef(),$=g.useCallback(()=>{R.current&&(clearTimeout(R.current),R.current=void 0)},[]),z=g.useCallback(()=>{$(),O()},[O,$]),W=su(S,z),K=g.useCallback(()=>{if(!v&&!H.current){b&&W();const ne=Pn(S);H.current=ne.setTimeout(P,e)}},[W,v,b,P,e]),V=g.useCallback(()=>{j();const ne=Pn(S);R.current=ne.setTimeout(z,n)},[n,z,j]),ie=g.useCallback(()=>{b&&r&&V()},[r,V,b]),pe=g.useCallback(()=>{b&&a&&V()},[a,V,b]),le=g.useCallback(ne=>{b&&ne.key==="Escape"&&V()},[b,V]);$t(()=>Pr(S),"keydown",i?le:void 0),$t(()=>{if(!s)return null;const ne=S.current;if(!ne)return null;const De=zs(ne);return De.localName==="body"?Pn(S):De},"scroll",()=>{b&&s&&z()},{passive:!0,capture:!0}),g.useEffect(()=>{v&&(j(),b&&O())},[v,b,O,j]),g.useEffect(()=>()=>{j(),$()},[j,$]),$t(()=>S.current,"pointerleave",V);const Oe=g.useCallback((ne={},De=null)=>({...ne,ref:Me(S,De,D),onPointerEnter:Ae(ne.onPointerEnter,dr=>{dr.pointerType!=="touch"&&K()}),onClick:Ae(ne.onClick,ie),onPointerDown:Ae(ne.onPointerDown,pe),onFocus:Ae(ne.onFocus,K),onBlur:Ae(ne.onBlur,V),"aria-describedby":b?U:void 0}),[K,V,pe,b,U,ie,D]),ur=g.useCallback((ne={},De=null)=>A({...ne,style:{...ne.style,[de.arrowSize.var]:m?`${m}px`:void 0,[de.arrowShadowColor.var]:p}},De),[A,m,p]),Rt=g.useCallback((ne={},De=null)=>{const yn={...ne.style,position:"relative",transformOrigin:de.transformOrigin.varRef};return{ref:De,...C,...ne,id:U,role:"tooltip",style:yn}},[C,U]);return{isOpen:b,show:K,hide:V,getTriggerProps:Oe,getTooltipProps:Rt,getTooltipPositionerProps:ur,getArrowProps:M,getArrowInnerProps:B}}var vr="chakra-ui:close-tooltip";function su(t,e){return g.useEffect(()=>{const n=Pr(t);return n.addEventListener(vr,e),()=>n.removeEventListener(vr,e)},[e,t]),()=>{const n=Pr(t),r=Pn(t);n.dispatchEvent(new r.CustomEvent(vr))}}function au(t,e=[]){const n=Object.assign({},t);for(const r of e)r in n&&delete n[r];return n}function iu(t,e){const n={};for(const r of e)r in t&&(n[r]=t[r]);return n}var lu=J(Is.div),_t=ee((t,e)=>{var n,r;const o=or("Tooltip",t),s=Ve(t),a=Ss(),{children:i,label:l,shouldWrapChildren:u,"aria-label":c,hasArrow:d,bg:f,portalProps:h,background:m,backgroundColor:p,bgColor:w,motionProps:y,...v}=s,_=(r=(n=m??p)!=null?n:f)!=null?r:w;if(_){o.bg=_;const A=wi(a,"colors",_);o[de.arrowBg.var]=A}const k=ou({...v,direction:a.direction}),E=typeof i=="string"||u;let C;if(E)C=x.jsx(J.span,{display:"inline-block",tabIndex:0,...k.getTriggerProps(),children:i});else{const A=g.Children.only(i);C=g.cloneElement(A,k.getTriggerProps(A.props,A.ref))}const b=!!c,P=k.getTooltipProps({},e),O=b?au(P,["role","id"]):P,D=iu(P,["role","id"]);return l?x.jsxs(x.Fragment,{children:[C,x.jsx(bi,{children:k.isOpen&&x.jsx(co,{...h,children:x.jsx(J.div,{...k.getTooltipPositionerProps(),__css:{zIndex:o.zIndex,pointerEvents:"none"},children:x.jsxs(lu,{variants:ru,initial:"exit",animate:"enter",exit:"exit",...y,...O,__css:o,children:[l,b&&x.jsx(J.span,{srOnly:!0,...D,children:c}),d&&x.jsx(J.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:x.jsx(J.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:o.bg}})})]})})})})]}):x.jsx(x.Fragment,{children:i})});_t.displayName="Tooltip";let bn;const cu=new Uint8Array(16);function uu(){if(!bn&&(bn=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!bn))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return bn(cu)}const ue=[];for(let t=0;t<256;++t)ue.push((t+256).toString(16).slice(1));function du(t,e=0){return ue[t[e+0]]+ue[t[e+1]]+ue[t[e+2]]+ue[t[e+3]]+"-"+ue[t[e+4]]+ue[t[e+5]]+"-"+ue[t[e+6]]+ue[t[e+7]]+"-"+ue[t[e+8]]+ue[t[e+9]]+"-"+ue[t[e+10]]+ue[t[e+11]]+ue[t[e+12]]+ue[t[e+13]]+ue[t[e+14]]+ue[t[e+15]]}const fu=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ds={randomUUID:fu};function Qt(t,e,n){if(ds.randomUUID&&!e&&!t)return ds.randomUUID();t=t||{};const r=t.random||(t.rng||uu)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let o=0;o<16;++o)e[n+o]=r[o];return e}return du(r)}async function hu(t){console.warn("[workspace deprecated] getDB is deprecated",t);try{const e=await fetch(`/workspace/get_db?table=${t}`);return e.ok?await e.json():void 0}catch(e){console.error("Error fetching workspace:",e);return}}async function pu(t,e){try{return await(await fetch("/workspace/save_db",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:t,json:e})})).text()}catch(n){console.error("Error saving workspace:",n)}}async function va(t,e){try{return await(await fetch("/workspace/update_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:t,json_str:e})})).text()}catch(n){alert("Error saving workflow .json file: "+n),console.error("Error saving workspace:",n)}}async function ya(t,e=!1){try{return await(await fetch("/workspace/delete_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:t,deleteEmptyFolder:e})})).text()}catch(n){console.error("Error deleting file:",n)}}async function mu(t){try{return await(await fetch("/workspace/get_system_dir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absolute_dir:t??""})})).json()}catch(e){console.error("Error getting workflows dir:",e)}}async function df(){try{return await(await fetch("/workspace/open_workflow_file_browser",{method:"POST",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error open workflows folder:",t)}}async function vu(t,e){try{return await(await fetch("/workspace/scan_local_new_files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,existFlowIds:e})})).json()}catch(n){console.error("Error scan local new files:",n)}}async function ff(){try{return await(await fetch("/model_manager/get_model_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function hf(){try{return await(await fetch("/model_manager/get_folder_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function yu(t){try{return await(await fetch("/workspace/delete_folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_path:t})})).text()}catch(e){console.error("Error move file:",e)}}const gu="backup",Un="workspace";let xn=null;function wu(){return new Promise((t,e)=>{const n=indexedDB.open("WorkspaceDB",3);n.onupgradeneeded=r=>{const o=r.target.result;o.objectStoreNames.contains(Un)||o.createObjectStore(Un,{keyPath:"id"})},n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{e(r.target.error)}})}async function bu(){try{return xn==null&&(xn=await wu()),new Promise((t,e)=>{if(xn==null)return e("indexDB is null");const o=xn.transaction([Un],"readonly").objectStore(Un).get(gu);o.onsuccess=()=>{o.result?t(o.result.value):t(void 0)},o.onerror=()=>e(o.error)})}catch(t){console.error("Error while reading from database:",t)}}async function xu(){try{return await bu()}catch(t){console.error("Error retrieving data from IndexedDB:",t)}}const Q=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,se=Object.keys,he=Array.isArray;function ve(t,e){return typeof e!="object"||se(e).forEach(function(n){t[n]=e[n]}),t}typeof Promise>"u"||Q.Promise||(Q.Promise=Promise);const en=Object.getPrototypeOf,_u={}.hasOwnProperty;function xe(t,e){return _u.call(t,e)}function Pt(t,e){typeof e=="function"&&(e=e(en(t))),(typeof Reflect>"u"?se:Reflect.ownKeys)(e).forEach(n=>{$e(t,n,e[n])})}const ga=Object.defineProperty;function $e(t,e,n,r){ga(t,e,ve(n&&xe(n,"get")&&typeof n.get=="function"?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function kt(t){return{from:function(e){return t.prototype=Object.create(e.prototype),$e(t.prototype,"constructor",t),{extend:Pt.bind(null,t.prototype)}}}}const ku=Object.getOwnPropertyDescriptor;function Eo(t,e){let n;return ku(t,e)||(n=en(t))&&Eo(n,e)}const Cu=[].slice;function qn(t,e,n){return Cu.call(t,e,n)}function wa(t,e){return e(t)}function Lt(t){if(!t)throw new Error("Assertion Failed")}function ba(t){Q.setImmediate?setImmediate(t):setTimeout(t,0)}function xa(t,e){return t.reduce((n,r,o)=>{var s=e(r,o);return s&&(n[s[0]]=s[1]),n},{})}function Ue(t,e){if(xe(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var n=[],r=0,o=e.length;r["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>Q[t]),Ou=Ca.map(t=>Q[t]);xa(Ca,t=>[t,!0]);let Je=null;function hn(t){Je=typeof WeakMap<"u"&&new WeakMap;const e=jr(t);return Je=null,e}function jr(t){if(!t||typeof t!="object")return t;let e=Je&&Je.get(t);if(e)return e;if(he(t)){e=[],Je&&Je.set(t,e);for(var n=0,r=t.length;n=0)e=t;else{const s=en(t);for(var o in e=s===Object.prototype?{}:Object.create(s),Je&&Je.set(t,e),t)xe(t,o)&&(e[o]=jr(t[o]))}return e}const{toString:Du}={};function Ar(t){return Du.call(t).slice(8,-1)}const Nr=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Su=typeof Nr=="symbol"?function(t){var e;return t!=null&&(e=t[Nr])&&e.apply(t)}:function(){return null},bt={};function We(t){var e,n,r,o;if(arguments.length===1){if(he(t))return t.slice();if(this===bt&&typeof t=="string")return[t];if(o=Su(t)){for(n=[];!(r=o.next()).done;)n.push(r.value);return n}if(t==null)return[t];if(typeof(e=t.length)=="number"){for(n=new Array(e);e--;)n[e]=t[e];return n}return[t]}for(e=arguments.length,n=new Array(e);e--;)n[e]=arguments[e];return n}const Oo=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var Te=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Ea(t,e){Te=t,Oa=e}var Oa=()=>!0;const Iu=!new Error("").stack;function mt(){if(Iu)try{throw mt.arguments,new Error}catch(t){return t}return new Error}function Fr(t,e){var n=t.stack;return n?(e=e||0,n.indexOf(t.name)===0&&(e+=(t.name+t.message).split(` -`).length),n.split(` -`).slice(e).filter(Oa).map(r=>` -`+r).join("")):""}var Da=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Do=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(Da),Pu={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function Ct(t,e){this._e=mt(),this.name=t,this.message=e}function Sa(t,e){return t+". Errors: "+Object.keys(e).map(n=>e[n].toString()).filter((n,r,o)=>o.indexOf(n)===r).join(` -`)}function zn(t,e,n,r){this._e=mt(),this.failures=e,this.failedKeys=r,this.successCount=n,this.message=Sa(t,e)}function zt(t,e){this._e=mt(),this.name="BulkError",this.failures=Object.keys(e).map(n=>e[n]),this.failuresByPos=e,this.message=Sa(t,e)}kt(Ct).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+Fr(this._e,2))}},toString:function(){return this.name+": "+this.message}}),kt(zn).from(Ct),kt(zt).from(Ct);var So=Do.reduce((t,e)=>(t[e]=e+"Error",t),{});const ju=Ct;var T=Do.reduce((t,e)=>{var n=e+"Error";function r(o,s){this._e=mt(),this.name=n,o?typeof o=="string"?(this.message=`${o}${s?` - `+s:""}`,this.inner=s||null):typeof o=="object"&&(this.message=`${o.name} ${o.message}`,this.inner=o):(this.message=Pu[e]||n,this.inner=null)}return kt(r).from(ju),t[e]=r,t},{});T.Syntax=SyntaxError,T.Type=TypeError,T.Range=RangeError;var fs=Da.reduce((t,e)=>(t[e+"Error"]=T[e],t),{}),jn=Do.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=T[e]),t),{});function G(){}function tn(t){return t}function Au(t,e){return t==null||t===tn?e:function(n){return e(t(n))}}function ht(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function Nu(t,e){return t===G?e:function(){var n=t.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?ht(r,this.onsuccess):r),o&&(this.onerror=this.onerror?ht(o,this.onerror):o),s!==void 0?s:n}}function Fu(t,e){return t===G?e:function(){t.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?ht(n,this.onsuccess):n),r&&(this.onerror=this.onerror?ht(r,this.onerror):r)}}function Mu(t,e){return t===G?e:function(n){var r=t.apply(this,arguments);ve(n,r);var o=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var a=e.apply(this,arguments);return o&&(this.onsuccess=this.onsuccess?ht(o,this.onsuccess):o),s&&(this.onerror=this.onerror?ht(s,this.onerror):s),r===void 0?a===void 0?void 0:a:ve(r,a)}}function Ru(t,e){return t===G?e:function(){return e.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function Io(t,e){return t===G?e:function(){var n=t.apply(this,arguments);if(n&&typeof n.then=="function"){for(var r=this,o=arguments.length,s=new Array(o);o--;)s[o]=arguments[o];return n.then(function(){return e.apply(r,s)})}return e.apply(this,arguments)}}jn.ModifyError=zn,jn.DexieError=Ct,jn.BulkError=zt;var nn={};const Ia=100,[Mr,Vn,Rr]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,en(t),t];const e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,en(e),t]})(),Pa=Vn&&Vn.then,An=Mr&&Mr.constructor,Po=!!Rr;var Tr=!1,Tu=Rr?()=>{Rr.then(_n)}:Q.setImmediate?setImmediate.bind(null,_n):Q.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{_n(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(_n,0)},Vt=function(t,e){Wt.push([t,e]),Hn&&(Tu(),Hn=!1)},Br=!0,Hn=!0,lt=[],Nn=[],Lr=null,Wr=tn,Et={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ms,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{ms(t[0],t[1])}catch{}})}},F=Et,Wt=[],ct=0,Fn=[];function N(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=G,this._lib=!1;var e=this._PSD=F;if(Te&&(this._stackHolder=mt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==nn)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&$r(this,this._value))}this._state=null,this._value=null,++e.ref,Aa(this,t)}const Kr={get:function(){var t=F,e=Jn;function n(r,o){var s=!t.global&&(t!==F||e!==Jn);const a=s&&!ze();var i=new N((l,u)=>{jo(this,new ja(Yn(r,t,s,a),Yn(o,t,s,a),l,u,t))});return Te&&Ma(i,this),i}return n.prototype=nn,n},set:function(t){$e(this,"then",t&&t.prototype===nn?Kr:{get:function(){return t},set:Kr.set})}};function ja(t,e,n,r,o){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=n,this.reject=r,this.psd=o}function Aa(t,e){try{e(n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var r=t._lib&&pn();n&&typeof n.then=="function"?Aa(t,(o,s)=>{n instanceof N?n._then(o,s):n.then(o,s)}):(t._state=!0,t._value=n,Na(t)),r&&mn()}},$r.bind(null,t))}catch(n){$r(t,n)}}function $r(t,e){if(Nn.push(e),t._state===null){var n=t._lib&&pn();e=Wr(e),t._state=!1,t._value=e,Te&&e!==null&&typeof e=="object"&&!e._promise&&function(r,o,s){try{r.apply(null,s)}catch(a){o&&o(a)}}(()=>{var r=Eo(e,"stack");e._promise=t,$e(e,"stack",{get:()=>Tr?r&&(r.get?r.get.apply(e):r.value):t.stack})}),function(r){lt.some(o=>o._value===r._value)||lt.push(r)}(t),Na(t),n&&mn()}}function Na(t){var e=t._listeners;t._listeners=[];for(var n=0,r=e.length;n{--ct==0&&Ao()},[]))}function jo(t,e){if(t._state!==null){var n=t._state?e.onFulfilled:e.onRejected;if(n===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++ct,Vt(Bu,[n,t,e])}else t._listeners.push(e)}function Bu(t,e,n){try{Lr=e;var r,o=e._value;e._state?r=t(o):(Nn.length&&(Nn=[]),r=t(o),Nn.indexOf(o)===-1&&function(s){for(var a=lt.length;a;)if(lt[--a]._value===s._value)return void lt.splice(a,1)}(e)),n.resolve(r)}catch(s){n.reject(s)}finally{Lr=null,--ct==0&&Ao(),--n.psd.ref||n.psd.finalize()}}function Fa(t,e,n){if(e.length===n)return e;var r="";if(t._state===!1){var o,s,a=t._value;a!=null?(o=a.name||"Error",s=a.message||a,r=Fr(a,0)):(o=a,s=""),e.push(o+(s?": "+s:"")+r)}return Te&&((r=Fr(t._stackHolder,2))&&e.indexOf(r)===-1&&e.push(r),t._prev&&Fa(t._prev,e,n)),e}function Ma(t,e){var n=e?e._numPrev+1:0;n<100&&(t._prev=e,t._numPrev=n)}function _n(){pn()&&mn()}function pn(){var t=Br;return Br=!1,Hn=!1,t}function mn(){var t,e,n;do for(;Wt.length>0;)for(t=Wt,Wt=[],n=t.length,e=0;e0);Br=!0,Hn=!0}function Ao(){var t=lt;lt=[],t.forEach(r=>{r._PSD.onunhandled.call(null,r._value,r)});for(var e=Fn.slice(0),n=e.length;n;)e[--n]()}function kn(t){return new N(nn,!1,t)}function te(t,e){var n=F;return function(){var r=pn(),o=F;try{return Ze(n,!0),t.apply(this,arguments)}catch(s){e&&e(s)}finally{Ze(o,!1),r&&mn()}}}Pt(N.prototype,{then:Kr,_then:function(t,e){jo(this,new ja(null,null,t,e,F))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],n=arguments[1];return typeof e=="function"?this.then(null,r=>r instanceof e?n(r):kn(r)):this.then(null,r=>r&&r.name===e?n(r):kn(r))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),kn(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Tr=!0;var t=Fa(this,[],20).join(` -From previous: `);return this._state!==null&&(this._stack=t),t}finally{Tr=!1}}},timeout:function(t,e){return t<1/0?new N((n,r)=>{var o=setTimeout(()=>r(new T.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,o))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&$e(N.prototype,Symbol.toStringTag,"Dexie.Promise"),Et.env=Ra(),Pt(N,{all:function(){var t=We.apply(null,arguments).map(Cn);return new N(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((o,s)=>N.resolve(o).then(a=>{t[s]=a,--r||e(t)},n))})},resolve:t=>{if(t instanceof N)return t;if(t&&typeof t.then=="function")return new N((n,r)=>{t.then(n,r)});var e=new N(nn,!0,t);return Ma(e,Lr),e},reject:kn,race:function(){var t=We.apply(null,arguments).map(Cn);return new N((e,n)=>{t.map(r=>N.resolve(r).then(e,n))})},PSD:{get:()=>F,set:t=>F=t},totalEchoes:{get:()=>Jn},newPSD:Xe,usePSD:Ft,scheduler:{get:()=>Vt,set:t=>{Vt=t}},rejectionMapper:{get:()=>Wr,set:t=>{Wr=t}},follow:(t,e)=>new N((n,r)=>Xe((o,s)=>{var a=F;a.unhandleds=[],a.onunhandled=s,a.finalize=ht(function(){(function(i){function l(){i(),Fn.splice(Fn.indexOf(l),1)}Fn.push(l),++ct,Vt(()=>{--ct==0&&Ao()},[])})(()=>{this.unhandleds.length===0?o():s(this.unhandleds[0])})},a.finalize),t()},e,n,r))}),An&&(An.allSettled&&$e(N,"allSettled",function(){const t=We.apply(null,arguments).map(Cn);return new N(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((o,s)=>N.resolve(o).then(a=>r[s]={status:"fulfilled",value:a},a=>r[s]={status:"rejected",reason:a}).then(()=>--n||e(r)))})}),An.any&&typeof AggregateError<"u"&&$e(N,"any",function(){const t=We.apply(null,arguments).map(Cn);return new N((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const o=new Array(r);t.forEach((s,a)=>N.resolve(s).then(i=>e(i),i=>{o[a]=i,--r||n(new AggregateError(o))}))})}));const fe={awaits:0,echoes:0,id:0};var Lu=0,Mn=[],yr=0,Jn=0,Wu=0;function Xe(t,e,n,r){var o=F,s=Object.create(o);s.parent=o,s.ref=0,s.global=!1,s.id=++Wu;var a=Et.env;s.env=Po?{Promise:N,PromiseProp:{value:N,configurable:!0,writable:!0},all:N.all,race:N.race,allSettled:N.allSettled,any:N.any,resolve:N.resolve,reject:N.reject,nthen:hs(a.nthen,s),gthen:hs(a.gthen,s)}:{},e&&ve(s,e),++o.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var i=Ft(s,t,n,r);return s.ref===0&&s.finalize(),i}function Nt(){return fe.id||(fe.id=++Lu),++fe.awaits,fe.echoes+=Ia,fe.id}function ze(){return!!fe.awaits&&(--fe.awaits==0&&(fe.id=0),fe.echoes=fe.awaits*Ia,!0)}function Cn(t){return fe.echoes&&t&&t.constructor===An?(Nt(),t.then(e=>(ze(),e),e=>(ze(),ae(e)))):t}function Ku(t){++Jn,fe.echoes&&--fe.echoes!=0||(fe.echoes=fe.id=0),Mn.push(F),Ze(t,!0)}function $u(){var t=Mn[Mn.length-1];Mn.pop(),Ze(t,!1)}function Ze(t,e){var n=F;if((e?!fe.echoes||yr++&&t===F:!yr||--yr&&t===F)||Ta(e?Ku.bind(null,t):$u),t!==F&&(F=t,n===Et&&(Et.env=Ra()),Po)){var r=Et.env.Promise,o=t.env;Vn.then=o.nthen,r.prototype.then=o.gthen,(n.global||t.global)&&(Object.defineProperty(Q,"Promise",o.PromiseProp),r.all=o.all,r.race=o.race,r.resolve=o.resolve,r.reject=o.reject,o.allSettled&&(r.allSettled=o.allSettled),o.any&&(r.any=o.any))}}function Ra(){var t=Q.Promise;return Po?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(Q,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Vn.then,gthen:t.prototype.then}:{}}function Ft(t,e,n,r,o){var s=F;try{return Ze(t,!0),e(n,r,o)}finally{Ze(s,!1)}}function Ta(t){Pa.call(Mr,t)}function Yn(t,e,n,r){return typeof t!="function"?t:function(){var o=F;n&&Nt(),Ze(e,!0);try{return t.apply(this,arguments)}finally{Ze(o,!1),r&&Ta(ze)}}}function hs(t,e){return function(n,r){return t.call(this,Yn(n,e),Yn(r,e))}}(""+Pa).indexOf("[native code]")===-1&&(Nt=ze=G);const ps="unhandledrejection";function ms(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,o={promise:e,reason:t};if(Q.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(ps,!0,!0),ve(r,o)):Q.CustomEvent&&ve(r=new CustomEvent(ps,{detail:o}),o),r&&Q.dispatchEvent&&(dispatchEvent(r),!Q.PromiseRejectionEvent&&Q.onunhandledrejection))try{Q.onunhandledrejection(r)}catch{}Te&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var ae=N.reject;function Ur(t,e,n,r){if(t.idbdb&&(t._state.openComplete||F.letThrough||t._vip)){var o=t._createTransaction(e,n,t._dbSchema);try{o.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===So.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Ur(t,e,n,r))):ae(s)}return o._promise(e,(s,a)=>Xe(()=>(F.trans=o,r(s,a,o)))).then(s=>o._completion.then(()=>s))}if(t._state.openComplete)return ae(new T.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return ae(new T.DatabaseClosed);t.open().catch(G)}return t._state.dbReadyPromise.then(()=>Ur(t,e,n,r))}const vs="3.2.4",st="￿",qr=-1/0,Be="Invalid key provided. Keys must be of type string, number, Date or Array.",Ba="String expected.",Ht=[],lr=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Uu=lr,qu=lr,La=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),cr="__dbnames",gr="readonly",wr="readwrite";function pt(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const Wa={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function En(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=hn(e))[t],e)}class zu{_trans(e,n,r){const o=this._tx||F.trans,s=this.name;function a(l,u,c){if(!c.schema[s])throw new T.NotFound("Table "+s+" not part of transaction");return n(c.idbtrans,c)}const i=pn();try{return o&&o.db===this.db?o===F.trans?o._promise(e,a,r):Xe(()=>o._promise(e,a,r),{trans:o,transless:F.transless||F}):Ur(this.db,e,[this.name],a)}finally{i&&mn()}}get(e,n){return e&&e.constructor===Object?this.where(e).first(n):this._trans("readonly",r=>this.core.get({trans:r,key:e}).then(o=>this.hook.reading.fire(o))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(he(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=se(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&n.every(c=>u.keyPath.indexOf(c)>=0)&&u.keyPath.every(c=>n.indexOf(c)>=0))[0];if(r&&this.db._maxKey!==st)return this.where(r.name).equals(r.keyPath.map(u=>e[u]));!r&&Te&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:o}=this.schema,s=this.db._deps.indexedDB;function a(u,c){try{return s.cmp(u,c)===0}catch{return!1}}const[i,l]=n.reduce(([u,c],d)=>{const f=o[d],h=e[d];return[u||f,u||!f?pt(c,f&&f.multi?m=>{const p=Ue(m,d);return he(p)&&p.some(w=>a(h,w))}:m=>a(h,Ue(m,d))):c]},[null,null]);return i?this.where(i.name).equals(e[i.keyPath]).filter(l):r?this.filter(l):this.where(n).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,he(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const o=Object.create(e.prototype);for(var s in r)if(xe(r,s))try{o[s]=r[s]}catch{}return o};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),e}defineClass(){return this.mapToClass(function(e){ve(this,e)})}add(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=En(o)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"add",keys:n!=null?[n]:null,values:[s]})).then(a=>a.numFailures?N.reject(a.failures[0]):a.lastResult).then(a=>{if(o)try{Se(e,o,a)}catch{}return a})}update(e,n){if(typeof e!="object"||he(e))return this.where(":id").equals(e).modify(n);{const r=Ue(e,this.schema.primKey.keyPath);if(r===void 0)return ae(new T.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?se(n).forEach(o=>{Se(e,o,n[o])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=En(o)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"put",values:[s],keys:n!=null?[n]:null})).then(a=>a.numFailures?N.reject(a.failures[0]):a.lastResult).then(a=>{if(o)try{Se(e,o,a)}catch{}return a})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?N.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:Wa})).then(e=>e.numFailures?N.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(o=>this.hook.reading.fire(o))))}bulkAdd(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:i,keyPath:l}=this.schema.primKey;if(l&&o)throw new T.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new T.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&i?e.map(En(l)):e;return this.core.mutate({trans:a,type:"add",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:f,lastResult:h,failures:m})=>{if(d===0)return s?f:h;throw new zt(`${this.name}.bulkAdd(): ${d} of ${u} operations failed`,m)})})}bulkPut(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:i,keyPath:l}=this.schema.primKey;if(l&&o)throw new T.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new T.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&i?e.map(En(l)):e;return this.core.mutate({trans:a,type:"put",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:f,lastResult:h,failures:m})=>{if(d===0)return s?f:h;throw new zt(`${this.name}.bulkPut(): ${d} of ${u} operations failed`,m)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:o,failures:s})=>{if(r===0)return o;throw new zt(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,s)})}}function Jt(t){var e={},n=function(a,i){if(i){for(var l=arguments.length,u=new Array(l-1);--l;)u[l-1]=arguments[l];return e[a].subscribe.apply(null,u),t}if(typeof a=="string")return e[a]};n.addEventType=s;for(var r=1,o=arguments.length;rpt(r(),e()):e,t.justLimit=n&&!r}function Rn(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new T.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function ys(t,e,n){const r=Rn(t,e.schema);return e.openCursor({trans:n,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function On(t,e,n,r){const o=t.replayFilter?pt(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},a=(i,l,u)=>{if(!o||o(l,u,f=>l.stop(f),f=>l.fail(f))){var c=l.primaryKey,d=""+c;d==="[object ArrayBuffer]"&&(d=""+new Uint8Array(c)),xe(s,d)||(s[d]=!0,e(i,l,u))}};return Promise.all([t.or._iterate(a,n),gs(ys(t,r,n),t.algorithm,a,!t.keysOnly&&t.valueMapper)])}return gs(ys(t,r,n),pt(t.algorithm,o),e,!t.keysOnly&&t.valueMapper)}function gs(t,e,n,r){var o=te(r?(s,a,i)=>n(r(s),a,i):n);return t.then(s=>{if(s)return s.start(()=>{var a=()=>s.continue();e&&!e(s,i=>a=i,i=>{s.stop(i),a=G},i=>{s.fail(i),a=G})||o(s.value,s,i=>a=i),a()})})}function me(t,e){try{const n=ws(t),r=ws(e);if(n!==r)return n==="Array"?1:r==="Array"?-1:n==="binary"?1:r==="binary"?-1:n==="string"?1:r==="string"?-1:n==="Date"?1:r!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return t>e?1:tOn(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,o=r.table.core;if(yt(r,!0))return o.count({trans:n,query:{index:Rn(r,o.schema),range:r.range}}).then(a=>Math.min(a,r.limit));var s=0;return On(r,()=>(++s,!1),n,o).then(()=>s)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),o=r[0],s=r.length-1;function a(u,c){return c?a(u[r[c]],c-1):u[o]}var i=this._ctx.dir==="next"?1:-1;function l(u,c){var d=a(u,s),f=a(c,s);return df?i:0}return this.toArray(function(u){return u.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&yt(r,!0)&&r.limit>0){const{valueMapper:o}=r,s=Rn(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:s,range:r.range}}).then(({result:a})=>o?a.map(o):a)}{const o=[];return On(r,s=>o.push(s),n,r.table.core).then(()=>o)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,yt(n)?xr(n,()=>{var r=e;return(o,s)=>r===0||(r===1?(--r,!1):(s(()=>{o.advance(r),r=0}),!1))}):xr(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),xr(this._ctx,()=>{var n=e;return function(r,o,s){return--n<=0&&o(s),n>=0}},!0),this}until(e,n){return br(this._ctx,function(r,o,s){return!e(r.value)||(o(s),n)}),this}first(e){return this.limit(1).toArray(function(n){return n[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){var n,r;return br(this._ctx,function(o){return e(o.value)}),n=this._ctx,r=e,n.isMatch=pt(n.isMatch,r),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.key,o)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.primaryKey,o)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&yt(n,!0)&&n.limit>0)return this._read(o=>{var s=Rn(n,n.table.core.schema);return n.table.core.query({trans:o,values:!1,limit:n.limit,query:{index:s,range:n.range}})}).then(({result:o})=>o).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.primaryKey)}).then(function(){return r}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(n){return n[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,n=e.index&&e.table.schema.idxByName[e.index];if(!n||!n.multi)return this;var r={};return br(this._ctx,function(o){var s=o.primaryKey.toString(),a=xe(r,s);return r[s]=!0,!a}),this}modify(e){var n=this._ctx;return this._write(r=>{var o;if(typeof e=="function")o=e;else{var s=se(e),a=s.length;o=function(p){for(var w=!1,y=0;y{const{failures:y,numFailures:v}=w;f+=p-v;for(let _ of se(y))d.push(y[_])};return this.clone().primaryKeys().then(p=>{const w=y=>{const v=Math.min(c,p.length-y);return i.getMany({trans:r,keys:p.slice(y,y+v),cache:"immutable"}).then(_=>{const k=[],E=[],C=l?[]:null,b=[];for(let O=0;O0&&i.mutate({trans:r,type:"add",values:k}).then(O=>{for(let D in O.failures)b.splice(parseInt(D),1);m(k.length,O)})).then(()=>(E.length>0||P&&typeof e=="object")&&i.mutate({trans:r,type:"put",keys:C,values:E,criteria:P,changeSpec:typeof e!="function"&&e}).then(O=>m(E.length,O))).then(()=>(b.length>0||P&&e===_r)&&i.mutate({trans:r,type:"delete",keys:b,criteria:P}).then(O=>m(b.length,O))).then(()=>p.length>y+v&&w(y+c))})};return w(0).then(()=>{if(d.length>0)throw new zn("Error modifying one or more objects",d,f,h);return p.length})})})}delete(){var e=this._ctx,n=e.range;return yt(e)&&(e.isPrimKey&&!qu||n.type===3)?this._write(r=>{const{primaryKey:o}=e.table.core.schema,s=n;return e.table.core.count({trans:r,query:{index:o,range:s}}).then(a=>e.table.core.mutate({trans:r,type:"deleteRange",range:s}).then(({failures:i,lastResult:l,results:u,numFailures:c})=>{if(c)throw new zn("Could not delete some values",Object.keys(i).map(d=>i[d]),a-c);return a-c}))}):this.modify(_r)}}const _r=(t,e)=>e.value=null;function Hu(t,e){return te?-1:t===e?0:1}function we(t,e,n){var r=t instanceof $a?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function gt(t){return new t.Collection(t,()=>Ka("")).limit(0)}function Yu(t,e,n,r,o,s){for(var a=Math.min(t.length,r.length),i=-1,l=0;l=0?t.substr(0,i)+e[i]+n.substr(i+1):null;o(t[l],u)<0&&(i=l)}return atypeof p=="string"))return we(t,Ba);function f(p){o=function(y){return y==="next"?v=>v.toUpperCase():v=>v.toLowerCase()}(p),s=function(y){return y==="next"?v=>v.toLowerCase():v=>v.toUpperCase()}(p),a=p==="next"?Hu:Ju;var w=n.map(function(y){return{lower:s(y),upper:o(y)}}).sort(function(y,v){return a(y.lower,v.lower)});i=w.map(function(y){return y.upper}),l=w.map(function(y){return y.lower}),u=p,c=p==="next"?"":r}f("next");var h=new t.Collection(t,()=>He(i[0],l[d-1]+r));h._ondirectionchange=function(p){f(p)};var m=0;return h._addAlgorithm(function(p,w,y){var v=p.key;if(typeof v!="string")return!1;var _=s(v);if(e(_,l,m))return!0;for(var k=null,E=m;E0)&&(k=C)}return w(k!==null?function(){p.continue(k+c)}:y),!1}),h}function He(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Ka(t){return{type:1,lower:t,upper:t}}class $a{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,o){r=r!==!1,o=o===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||o)&&(!r||!o)?gt(this):new this.Collection(this,()=>He(e,n,!r,!o))}catch{return we(this,Be)}}equals(e){return e==null?we(this,Be):new this.Collection(this,()=>Ka(e))}above(e){return e==null?we(this,Be):new this.Collection(this,()=>He(e,void 0,!0))}aboveOrEqual(e){return e==null?we(this,Be):new this.Collection(this,()=>He(e,void 0,!1))}below(e){return e==null?we(this,Be):new this.Collection(this,()=>He(void 0,e,!1,!0))}belowOrEqual(e){return e==null?we(this,Be):new this.Collection(this,()=>He(void 0,e))}startsWith(e){return typeof e!="string"?we(this,Ba):this.between(e,e+st,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):Dn(this,(n,r)=>n.indexOf(r[0])===0,[e],st)}equalsIgnoreCase(e){return Dn(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=We.apply(bt,arguments);return e.length===0?gt(this):Dn(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=We.apply(bt,arguments);return e.length===0?gt(this):Dn(this,(n,r)=>r.some(o=>n.indexOf(o)===0),e,st)}anyOf(){const e=We.apply(bt,arguments);let n=this._cmp;try{e.sort(n)}catch{return we(this,Be)}if(e.length===0)return gt(this);const r=new this.Collection(this,()=>He(e[0],e[e.length-1]));r._ondirectionchange=s=>{n=s==="next"?this._ascending:this._descending,e.sort(n)};let o=0;return r._addAlgorithm((s,a,i)=>{const l=s.key;for(;n(l,e[o])>0;)if(++o,o===e.length)return a(i),!1;return n(l,e[o])===0||(a(()=>{s.continue(e[o])}),!1)}),r}notEqual(e){return this.inAnyRange([[qr,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=We.apply(bt,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return we(this,Be)}const n=e.reduce((r,o)=>r?r.concat([[r[r.length-1][1],o]]):[[qr,o]],null);return n.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,n){const r=this._cmp,o=this._ascending,s=this._descending,a=this._min,i=this._max;if(e.length===0)return gt(this);if(!e.every(v=>v[0]!==void 0&&v[1]!==void 0&&o(v[0],v[1])<=0))return we(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",T.InvalidArgument);const l=!n||n.includeLowers!==!1,u=n&&n.includeUppers===!0;let c,d=o;function f(v,_){return d(v[0],_[0])}try{c=e.reduce(function(v,_){let k=0,E=v.length;for(;k0){C[0]=a(C[0],_[0]),C[1]=i(C[1],_[1]);break}}return k===E&&v.push(_),v},[]),c.sort(f)}catch{return we(this,Be)}let h=0;const m=u?v=>o(v,c[h][1])>0:v=>o(v,c[h][1])>=0,p=l?v=>s(v,c[h][0])>0:v=>s(v,c[h][0])>=0;let w=m;const y=new this.Collection(this,()=>He(c[0][0],c[c.length-1][1],!l,!u));return y._ondirectionchange=v=>{v==="next"?(w=m,d=o):(w=p,d=s),c.sort(f)},y._addAlgorithm((v,_,k)=>{for(var E=v.key;w(E);)if(++h,h===c.length)return _(k),!1;return!!function(C){return!m(C)&&!p(C)}(E)||(this._cmp(E,c[h][1])===0||this._cmp(E,c[h][0])===0||_(()=>{d===o?v.continue(c[h][0]):v.continue(c[h][1])}),!1)}),y}startsWithAnyOf(){const e=We.apply(bt,arguments);return e.every(n=>typeof n=="string")?e.length===0?gt(this):this.inAnyRange(e.map(n=>[n,n+st])):we(this,"startsWithAnyOf() only works with strings")}}function je(t){return te(function(e){return rn(e),t(e.target.error),!1})}function rn(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const on="storagemutated",Ye="x-storagemutated-1",Qe=Jt(null,on);class Gu{_lock(){return Lt(!F.global),++this._reculock,this._reculock!==1||F.global||(F.lockOwnerFor=this),this}_unlock(){if(Lt(!F.global),--this._reculock==0)for(F.global||(F.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{Ft(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&F.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Lt(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new T.DatabaseClosed(r);case"MissingAPIError":throw new T.MissingAPI(r.message,r);default:throw new T.OpenFailed(r)}if(!this.active)throw new T.TransactionInactive;return Lt(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=te(o=>{rn(o),this._reject(e.error)}),e.onabort=te(o=>{rn(o),this.active&&this._reject(new T.Abort(e.error)),this.active=!1,this.on("abort").fire(o)}),e.oncomplete=te(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&Qe.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return ae(new T.ReadOnly("Transaction is readonly"));if(!this.active)return ae(new T.TransactionInactive);if(this._locked())return new N((s,a)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(s,a)},F])});if(r)return Xe(()=>{var s=new N((a,i)=>{this._lock();const l=n(a,i,this);l&&l.then&&l.then(a,i)});return s.finally(()=>this._unlock()),s._lib=!0,s});var o=new N((s,a)=>{var i=n(s,a,this);i&&i.then&&i.then(s,a)});return o._lib=!0,o}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=N.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var o=n.idbtrans.objectStore(n.storeNames[0]);(function a(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(o.get(-1/0).onsuccess=a)})()}var s=n._waitingFor;return new N((a,i)=>{r.then(l=>n._waitingQueue.push(te(a.bind(null,l))),l=>n._waitingQueue.push(te(i.bind(null,l)))).finally(()=>{n._waitingFor===s&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new T.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(xe(n,e))return n[e];const r=this.schema[e];if(!r)throw new T.NotFound("Table "+e+" not part of transaction");const o=new this.db.Table(e,r,this);return o.core=this.db.core.table(e),n[e]=o,o}}function zr(t,e,n,r,o,s,a){return{name:t,keyPath:e,unique:n,multi:r,auto:o,compound:s,src:(n&&!a?"&":"")+(r?"*":"")+(o?"++":"")+Ua(e)}}function Ua(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function qa(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:xa(n,r=>[r.name,r])}}let sn=t=>{try{return t.only([[]]),sn=()=>[[]],[[]]}catch{return sn=()=>st,st}};function Vr(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>Ue(r,e)}(t):e=>Ue(e,t)}function xs(t){return[].slice.call(t)}let Xu=0;function Yt(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Zu(t,e,n){function r(l){if(l.type===3)return null;if(l.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:u,upper:c,lowerOpen:d,upperOpen:f}=l;return u===void 0?c===void 0?null:e.upperBound(c,!!f):c===void 0?e.lowerBound(u,!!d):e.bound(u,c,!!d,!!f)}const{schema:o,hasGetAll:s}=function(l,u){const c=xs(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(d=>u.objectStore(d)).map(d=>{const{keyPath:f,autoIncrement:h}=d,m=he(f),p=f==null,w={},y={name:d.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:p,compound:m,keyPath:f,autoIncrement:h,unique:!0,extractKey:Vr(f)},indexes:xs(d.indexNames).map(v=>d.index(v)).map(v=>{const{name:_,unique:k,multiEntry:E,keyPath:C}=v,b={name:_,compound:he(C),keyPath:C,unique:k,multiEntry:E,extractKey:Vr(C)};return w[Yt(C)]=b,b}),getIndexByKeyPath:v=>w[Yt(v)]};return w[":id"]=y.primaryKey,f!=null&&(w[Yt(f)]=y.primaryKey),y})},hasGetAll:c.length>0&&"getAll"in u.objectStore(c[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,n),a=o.tables.map(l=>function(u){const c=u.name;return{name:c,schema:u,mutate:function({trans:d,type:f,keys:h,values:m,range:p}){return new Promise((w,y)=>{w=te(w);const v=d.objectStore(c),_=v.keyPath==null,k=f==="put"||f==="add";if(!k&&f!=="delete"&&f!=="deleteRange")throw new Error("Invalid operation type: "+f);const{length:E}=h||m||{length:1};if(h&&m&&h.length!==m.length)throw new Error("Given keys array must have same length as given values array.");if(E===0)return w({numFailures:0,failures:{},results:[],lastResult:void 0});let C;const b=[],P=[];let O=0;const D=B=>{++O,rn(B)};if(f==="deleteRange"){if(p.type===4)return w({numFailures:O,failures:P,results:[],lastResult:void 0});p.type===3?b.push(C=v.clear()):b.push(C=v.delete(r(p)))}else{const[B,M]=k?_?[m,h]:[m,null]:[h,null];if(k)for(let L=0;L{const M=B.target.result;b.forEach((L,X)=>L.error!=null&&(P[X]=L.error)),w({numFailures:O,failures:P,results:f==="delete"?h:b.map(L=>L.result),lastResult:M})};C.onerror=B=>{D(B),A(B)},C.onsuccess=A})},getMany:({trans:d,keys:f})=>new Promise((h,m)=>{h=te(h);const p=d.objectStore(c),w=f.length,y=new Array(w);let v,_=0,k=0;const E=b=>{const P=b.target;y[P._pos]=P.result,++k===_&&h(y)},C=je(m);for(let b=0;bnew Promise((h,m)=>{h=te(h);const p=d.objectStore(c).get(f);p.onsuccess=w=>h(w.target.result),p.onerror=je(m)}),query:function(d){return f=>new Promise((h,m)=>{h=te(h);const{trans:p,values:w,limit:y,query:v}=f,_=y===1/0?void 0:y,{index:k,range:E}=v,C=p.objectStore(c),b=k.isPrimaryKey?C:C.index(k.name),P=r(E);if(y===0)return h({result:[]});if(d){const O=w?b.getAll(P,_):b.getAllKeys(P,_);O.onsuccess=D=>h({result:D.target.result}),O.onerror=je(m)}else{let O=0;const D=w||!("openKeyCursor"in b)?b.openCursor(P):b.openKeyCursor(P),A=[];D.onsuccess=B=>{const M=D.result;return M?(A.push(w?M.value:M.primaryKey),++O===y?h({result:A}):void M.continue()):h({result:A})},D.onerror=je(m)}})}(s),openCursor:function({trans:d,values:f,query:h,reverse:m,unique:p}){return new Promise((w,y)=>{w=te(w);const{index:v,range:_}=h,k=d.objectStore(c),E=v.isPrimaryKey?k:k.index(v.name),C=m?p?"prevunique":"prev":p?"nextunique":"next",b=f||!("openKeyCursor"in E)?E.openCursor(r(_),C):E.openKeyCursor(r(_),C);b.onerror=je(y),b.onsuccess=te(P=>{const O=b.result;if(!O)return void w(null);O.___id=++Xu,O.done=!1;const D=O.continue.bind(O);let A=O.continuePrimaryKey;A&&(A=A.bind(O));const B=O.advance.bind(O),M=()=>{throw new Error("Cursor not stopped")};O.trans=d,O.stop=O.continue=O.continuePrimaryKey=O.advance=()=>{throw new Error("Cursor not started")},O.fail=te(y),O.next=function(){let L=1;return this.start(()=>L--?this.continue():this.stop()).then(()=>this)},O.start=L=>{const X=new Promise((S,H)=>{S=te(S),b.onerror=je(H),O.fail=H,O.stop=j=>{O.stop=O.continue=O.continuePrimaryKey=O.advance=M,S(j)}}),U=()=>{if(b.result)try{L()}catch(S){O.fail(S)}else O.done=!0,O.start=()=>{throw new Error("Cursor behind last entry")},O.stop()};return b.onsuccess=te(S=>{b.onsuccess=U,U()}),O.continue=D,O.continuePrimaryKey=A,O.advance=B,U(),X},w(O)},y)})},count({query:d,trans:f}){const{index:h,range:m}=d;return new Promise((p,w)=>{const y=f.objectStore(c),v=h.isPrimaryKey?y:y.index(h.name),_=r(m),k=_?v.count(_):v.count();k.onsuccess=te(E=>p(E.target.result)),k.onerror=je(w)})}}}(l)),i={};return a.forEach(l=>i[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!i[l])throw new Error(`Table '${l}' not found`);return i[l]},MIN_KEY:-1/0,MAX_KEY:sn(e),schema:o}}function Hr({_novip:t},e){const n=e.db,r=function(o,s,{IDBKeyRange:a,indexedDB:i},l){return{dbcore:function(c,d){return d.reduce((f,{create:h})=>({...f,...h(f)}),c)}(Zu(s,a,l),o.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(o=>{const s=o.name;t.core.schema.tables.some(a=>a.name===s)&&(o.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=o.core))})}function Gn({_novip:t},e,n,r){n.forEach(o=>{const s=r[o];e.forEach(a=>{const i=Eo(a,o);(!i||"value"in i&&i.value===void 0)&&(a===t.Transaction.prototype||a instanceof t.Transaction?$e(a,o,{get(){return this.table(o)},set(l){ga(this,o,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):a[o]=new t.Table(o,s))})})}function Jr({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function Qu(t,e){return t._cfg.version-e._cfg.version}function ed(t,e,n,r){const o=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,o);s.create(n),s._completion.catch(r);const a=s._reject.bind(s),i=F.transless||F;Xe(()=>{F.trans=s,F.transless=i,e===0?(se(o).forEach(l=>{kr(n,l,o[l].primKey,o[l].indexes)}),Hr(t,n),N.follow(()=>t.on.populate.fire(s)).catch(a)):function({_novip:l},u,c,d){const f=[],h=l._versions;let m=l._dbSchema=Gr(l,l.idbdb,d),p=!1;const w=h.filter(v=>v._cfg.version>=u);function y(){return f.length?N.resolve(f.shift()(c.idbtrans)).then(y):N.resolve()}return w.forEach(v=>{f.push(()=>{const _=m,k=v._cfg.dbschema;Xr(l,_,d),Xr(l,k,d),m=l._dbSchema=k;const E=za(_,k);E.add.forEach(b=>{kr(d,b[0],b[1].primKey,b[1].indexes)}),E.change.forEach(b=>{if(b.recreate)throw new T.Upgrade("Not yet support for changing primary key");{const P=d.objectStore(b.name);b.add.forEach(O=>Yr(P,O)),b.change.forEach(O=>{P.deleteIndex(O.name),Yr(P,O)}),b.del.forEach(O=>P.deleteIndex(O))}});const C=v._cfg.contentUpgrade;if(C&&v._cfg.version>u){Hr(l,d),c._memoizedTables={},p=!0;let b=_a(k);E.del.forEach(A=>{b[A]=_[A]}),Jr(l,[l.Transaction.prototype]),Gn(l,[l.Transaction.prototype],se(b),b),c.schema=b;const P=Oo(C);let O;P&&Nt();const D=N.follow(()=>{if(O=C(c),O&&P){var A=ze.bind(null,null);O.then(A,A)}});return O&&typeof O.then=="function"?N.resolve(O):D.then(()=>O)}}),f.push(_=>{(!p||!Uu)&&function(k,E){[].slice.call(E.db.objectStoreNames).forEach(C=>k[C]==null&&E.db.deleteObjectStore(C))}(v._cfg.dbschema,_),Jr(l,[l.Transaction.prototype]),Gn(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),y().then(()=>{var v,_;_=d,se(v=m).forEach(k=>{_.db.objectStoreNames.contains(k)||kr(_,k,v[k].primKey,v[k].indexes)})})}(t,e,s,n).catch(a)})}function za(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const o=t[r],s=e[r];if(o){const a={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(o.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||o.primKey.auto!==s.primKey.auto&&!lr)a.recreate=!0,n.change.push(a);else{const i=o.idxByName,l=s.idxByName;let u;for(u in i)l[u]||a.del.push(u);for(u in l){const c=i[u],d=l[u];c?c.src!==d.src&&a.change.push(d):a.add.push(d)}(a.del.length>0||a.add.length>0||a.change.length>0)&&n.change.push(a)}}else n.add.push([r,s])}return n}function kr(t,e,n,r){const o=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(s=>Yr(o,s)),o}function Yr(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function Gr(t,e,n){const r={};return qn(e.objectStoreNames,0).forEach(o=>{const s=n.objectStore(o);let a=s.keyPath;const i=zr(Ua(a),a||"",!1,!1,!!s.autoIncrement,a&&typeof a!="string",!0),l=[];for(let c=0;c{if(e[r]!==null){var o=e[r].split(",").map((a,i)=>{const l=(a=a.trim()).replace(/([&*]|\+\+)/g,""),u=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return zr(l,u||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),he(u),i===0)}),s=o.shift();if(s.multi)throw new T.Schema("Primary key cannot be multi-valued");o.forEach(a=>{if(a.auto)throw new T.Schema("Only primary key can be marked as autoIncrement (++)");if(!a.keyPath)throw new T.Schema("Index must have a name and cannot be an empty string")}),n[r]=qa(r,s,o)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?ve(this._cfg.storesSource,e):e;const r=n._versions,o={};let s={};return r.forEach(a=>{ve(o,a._cfg.storesSource),s=a._cfg.dbschema={},a._parseStoresSpec(o,s)}),n._dbSchema=s,Jr(n,[n._allTables,n,n.Transaction.prototype]),Gn(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],se(s),s),n._storeNames=se(s),this}upgrade(e){return this._cfg.contentUpgrade=Io(this._cfg.contentUpgrade||G,e),this}}function No(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new ut(cr,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function Fo(t){return t&&typeof t.databases=="function"}function Zr(t){return Xe(function(){return F.letThrough=!0,t()})}function nd(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){var n=function(){return indexedDB.databases().finally(e)};t=setInterval(n,100),n()}).finally(function(){return clearInterval(t)}):Promise.resolve()}function rd(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?ae(e.dbOpenError):t);Te&&(e.openCanceller._stackHolder=mt()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function o(){if(e.openCanceller!==r)throw new T.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,a=null,i=!1;return N.race([r,(typeof navigator>"u"?N.resolve():nd()).then(()=>new N((l,u)=>{if(o(),!n)throw new T.MissingAPI;const c=t.name,d=e.autoSchema?n.open(c):n.open(c,Math.round(10*t.verno));if(!d)throw new T.MissingAPI;d.onerror=je(u),d.onblocked=te(t._fireOnBlocked),d.onupgradeneeded=te(f=>{if(a=d.transaction,e.autoSchema&&!t._options.allowEmptyDB){d.onerror=rn,a.abort(),d.result.close();const m=n.deleteDatabase(c);m.onsuccess=m.onerror=te(()=>{u(new T.NoSuchDatabase(`Database ${c} doesnt exist`))})}else{a.onerror=je(u);var h=f.oldVersion>Math.pow(2,62)?0:f.oldVersion;i=h<1,t._novip.idbdb=d.result,ed(t,h/10,a,u)}},u),d.onsuccess=te(()=>{a=null;const f=t._novip.idbdb=d.result,h=qn(f.objectStoreNames);if(h.length>0)try{const p=f.transaction((m=h).length===1?m[0]:m,"readonly");e.autoSchema?function({_novip:w},y,v){w.verno=y.version/10;const _=w._dbSchema=Gr(0,y,v);w._storeNames=qn(y.objectStoreNames,0),Gn(w,[w._allTables],se(_),_)}(t,f,p):(Xr(t,t._dbSchema,p),function(w,y){const v=za(Gr(0,w.idbdb,y),w._dbSchema);return!(v.add.length||v.change.some(_=>_.add.length||_.change.length))}(t,p)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),Hr(t,p)}catch{}var m;Ht.push(t),f.onversionchange=te(p=>{e.vcFired=!0,t.on("versionchange").fire(p)}),f.onclose=te(p=>{t.on("close").fire(p)}),i&&function({indexedDB:p,IDBKeyRange:w},y){!Fo(p)&&y!==cr&&No(p,w).put({name:y}).catch(G)}(t._deps,c),l()},u)}))]).then(()=>(o(),e.onReadyBeingFired=[],N.resolve(Zr(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(Io,G);return e.onReadyBeingFired=[],N.resolve(Zr(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{a&&a.abort()}catch{}return r===e.openCanceller&&t._close(),ae(l)}).finally(()=>{e.openComplete=!0,s()})}function Qr(t){var e=s=>t.next(s),n=o(e),r=o(s=>t.throw(s));function o(s){return a=>{var i=s(a),l=i.value;return i.done?l:l&&typeof l.then=="function"?l.then(n,r):he(l)?Promise.all(l).then(n,r):n(l)}}return o(e)()}function od(t,e,n){var r=arguments.length;if(r<2)throw new T.InvalidArgument("Too few arguments");for(var o=new Array(r-1);--r;)o[r-1]=arguments[r];return n=o.pop(),[t,ka(o),n]}function Va(t,e,n,r,o){return N.resolve().then(()=>{const s=F.transless||F,a=t._createTransaction(e,n,t._dbSchema,r),i={trans:a,transless:s};if(r)a.idbtrans=r.idbtrans;else try{a.create(),t._state.PR1398_maxLoop=3}catch(d){return d.name===So.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Va(t,e,n,null,o))):ae(d)}const l=Oo(o);let u;l&&Nt();const c=N.follow(()=>{if(u=o.call(a,a),u)if(l){var d=ze.bind(null,null);u.then(d,d)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=Qr(u))},i);return(u&&typeof u.then=="function"?N.resolve(u).then(d=>a.active?d:ae(new T.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>u)).then(d=>(r&&a._resolve(),a._completion.then(()=>d))).catch(d=>(a._reject(d),ae(d)))})}function Sn(t,e,n){const r=he(t)?t.slice():[t];for(let o=0;o0,y={...f,isVirtual:w,keyTail:d,keyLength:p,extractKey:Vr(c),unique:!w&&f.unique};return m.push(y),y.isPrimaryKey||s.push(y),p>1&&a(p===2?c[0]:c.slice(0,p-1),d+1,f),m.sort((v,_)=>v.keyTail-_.keyTail),y}const i=a(r.primaryKey.keyPath,0,r.primaryKey);o[":id"]=[i];for(const c of r.indexes)a(c.keyPath,0,c);function l(c){const d=c.query.index;return d.isVirtual?{...c,query:{index:d,range:(f=c.query.range,h=d.keyTail,{type:f.type===1?2:f.type,lower:Sn(f.lower,f.lowerOpen?t.MAX_KEY:t.MIN_KEY,h),lowerOpen:!0,upper:Sn(f.upper,f.upperOpen?t.MIN_KEY:t.MAX_KEY,h),upperOpen:!0})}}:c;var f,h}return{...n,schema:{...r,primaryKey:i,indexes:s,getIndexByKeyPath:function(c){const d=o[Yt(c)];return d&&d[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:d,isVirtual:f,keyLength:h}=c.query.index;return f?n.openCursor(l(c)).then(m=>m&&function(p){return Object.create(p,{continue:{value:function(y){y!=null?p.continue(Sn(y,c.reverse?t.MAX_KEY:t.MIN_KEY,d)):c.unique?p.continue(p.key.slice(0,h).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,d)):p.continue()}},continuePrimaryKey:{value(y,v){p.continuePrimaryKey(Sn(y,t.MAX_KEY,d),v)}},primaryKey:{get:()=>p.primaryKey},key:{get(){const y=p.key;return h===1?y[0]:y.slice(0,h)}},value:{get:()=>p.value}})}(m)):n.openCursor(c)}}}}}};function Mo(t,e,n,r){return n=n||{},r=r||"",se(t).forEach(o=>{if(xe(e,o)){var s=t[o],a=e[o];if(typeof s=="object"&&typeof a=="object"&&s&&a){const i=Ar(s);i!==Ar(a)?n[r+o]=e[o]:i==="Object"?Mo(s,a,n,r+o+"."):s!==a&&(n[r+o]=e[o])}else s!==a&&(n[r+o]=e[o])}else n[r+o]=void 0}),se(e).forEach(o=>{xe(t,o)||(n[r+o]=e[o])}),n}const ad={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(s){const a=F.trans,{deleting:i,creating:l,updating:u}=a.table(e).hook;switch(s.type){case"add":if(l.fire===G)break;return a._promise("readwrite",()=>c(s),!0);case"put":if(l.fire===G&&u.fire===G)break;return a._promise("readwrite",()=>c(s),!0);case"delete":if(i.fire===G)break;return a._promise("readwrite",()=>c(s),!0);case"deleteRange":if(i.fire===G)break;return a._promise("readwrite",()=>function(f){return d(f.trans,f.range,1e4)}(s),!0)}return n.mutate(s);function c(f){const h=F.trans,m=f.keys||function(p,w){return w.type==="delete"?w.keys:w.keys||w.values.map(p.extractKey)}(r,f);if(!m)throw new Error("Keys missing");return(f=f.type==="add"||f.type==="put"?{...f,keys:m}:{...f}).type!=="delete"&&(f.values=[...f.values]),f.keys&&(f.keys=[...f.keys]),function(p,w,y){return w.type==="add"?Promise.resolve([]):p.getMany({trans:w.trans,keys:y,cache:"immutable"})}(n,f,m).then(p=>{const w=m.map((y,v)=>{const _=p[v],k={onerror:null,onsuccess:null};if(f.type==="delete")i.fire.call(k,y,_,h);else if(f.type==="add"||_===void 0){const E=l.fire.call(k,y,f.values[v],h);y==null&&E!=null&&(y=E,f.keys[v]=y,r.outbound||Se(f.values[v],r.keyPath,y))}else{const E=Mo(_,f.values[v]),C=u.fire.call(k,E,y,_,h);if(C){const b=f.values[v];Object.keys(C).forEach(P=>{xe(b,P)?b[P]=C[P]:Se(b,P,C[P])})}}return k});return n.mutate(f).then(({failures:y,results:v,numFailures:_,lastResult:k})=>{for(let E=0;E(w.forEach(v=>v.onerror&&v.onerror(y)),Promise.reject(y)))})}function d(f,h,m){return n.query({trans:f,values:!1,query:{index:r,range:h},limit:m}).then(({result:p})=>c({type:"delete",keys:p,trans:f}).then(w=>w.numFailures>0?Promise.reject(w.failures[0]):p.length({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const o=Ha(r.keys,r.trans._cache,r.cache==="clone");return o?N.resolve(o):n.getMany(r).then(s=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?hn(s):s},s))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Ro(t){return!("from"in t)}const Le=function(t,e){if(!this){const n=new Le;return t&&"d"in t&&ve(n,t),n}ve(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function an(t,e,n){const r=me(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Ro(t))return ve(t,{from:e,to:n,d:1});const o=t.l,s=t.r;if(me(n,t.from)<0)return o?an(o,e,n):t.l={from:e,to:n,d:1,l:null,r:null},_s(t);if(me(e,t.to)>0)return s?an(s,e,n):t.r={from:e,to:n,d:1,l:null,r:null},_s(t);me(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),me(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const a=!t.r;o&&!t.l&&Xn(t,o),s&&a&&Xn(t,s)}function Xn(t,e){Ro(e)||function n(r,{from:o,to:s,l:a,r:i}){an(r,o,s),a&&n(r,a),i&&n(r,i)}(t,e)}function ld(t,e){const n=eo(e);let r=n.next();if(r.done)return!1;let o=r.value;const s=eo(t);let a=s.next(o.from),i=a.value;for(;!r.done&&!a.done;){if(me(i.from,o.to)<=0&&me(i.to,o.from)>=0)return!0;me(o.from,i.from)<0?o=(r=n.next(i.from)).value:i=(a=s.next(o.from)).value}return!1}function eo(t){let e=Ro(t)?null:{s:0,n:t};return{next(n){const r=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,r)for(;e.n.l&&me(n,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!r||me(n,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function _s(t){var e,n;const r=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((n=t.l)===null||n===void 0?void 0:n.d)||0),o=r>1?"r":r<-1?"l":"";if(o){const s=o==="r"?"l":"r",a={...t},i=t[o];t.from=i.from,t.to=i.to,t[o]=i[o],a[o]=i[s],t[s]=a,a.d=ks(a)}t.d=ks(t)}function ks({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}Pt(Le.prototype,{add(t){return Xn(this,t),this},addKey(t){return an(this,t,t),this},addKeys(t){return t.forEach(e=>an(this,e,e)),this},[Nr](){return eo(this)}});const cd={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new Le(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const o=t.table(r),{schema:s}=o,{primaryKey:a}=s,{extractKey:i,outbound:l}=a,u={...o,mutate:f=>{const h=f.trans,m=h.mutatedParts||(h.mutatedParts={}),p=C=>{const b=`idb://${e}/${r}/${C}`;return m[b]||(m[b]=new Le)},w=p(""),y=p(":dels"),{type:v}=f;let[_,k]=f.type==="deleteRange"?[f.range]:f.type==="delete"?[f.keys]:f.values.length<50?[[],f.values]:[];const E=f.trans._cache;return o.mutate(f).then(C=>{if(he(_)){v!=="delete"&&(_=C.results),w.addKeys(_);const b=Ha(_,E);b||v==="add"||y.addKeys(_),(b||k)&&function(P,O,D,A){function B(M){const L=P(M.name||"");function X(S){return S!=null?M.extractKey(S):null}const U=S=>M.multiEntry&&he(S)?S.forEach(H=>L.addKey(H)):L.addKey(S);(D||A).forEach((S,H)=>{const j=D&&X(D[H]),R=A&&X(A[H]);me(j,R)!==0&&(j!=null&&U(j),R!=null&&U(R))})}O.indexes.forEach(B)}(p,s,b,k)}else if(_){const b={from:_.lower,to:_.upper};y.add(b),w.add(b)}else w.add(n),y.add(n),s.indexes.forEach(b=>p(b.name).add(n));return C})}},c=({query:{index:f,range:h}})=>{var m,p;return[f,new Le((m=h.lower)!==null&&m!==void 0?m:t.MIN_KEY,(p=h.upper)!==null&&p!==void 0?p:t.MAX_KEY)]},d={get:f=>[a,new Le(f.key)],getMany:f=>[a,new Le().addKeys(f.keys)],count:c,query:c,openCursor:c};return se(d).forEach(f=>{u[f]=function(h){const{subscr:m}=F;if(m){const p=k=>{const E=`idb://${e}/${r}/${k}`;return m[E]||(m[E]=new Le)},w=p(""),y=p(":dels"),[v,_]=d[f](h);if(p(v.name||"").add(_),!v.isPrimaryKey){if(f!=="count"){const k=f==="query"&&l&&h.values&&o.query({...h,values:!1});return o[f].apply(this,arguments).then(E=>{if(f==="query"){if(l&&h.values)return k.then(({result:b})=>(w.addKeys(b),E));const C=h.values?E.result.map(i):E.result;h.values?w.addKeys(C):y.addKeys(C)}else if(f==="openCursor"){const C=E,b=h.values;return C&&Object.create(C,{key:{get:()=>(y.addKey(C.primaryKey),C.key)},primaryKey:{get(){const P=C.primaryKey;return y.addKey(P),P}},value:{get:()=>(b&&w.addKey(C.primaryKey),C.value)}})}return E})}y.add(n)}}return o[f].apply(this,arguments)}}),u}}}};class ut{constructor(e,n){this._middlewares={},this.verno=0;const r=ut.dependencies;this._options=n={addons:ut.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:o}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:G,dbReadyPromise:null,cancelOpen:G,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var a;s.dbReadyPromise=new N(i=>{s.dbReadyResolve=i}),s.openCanceller=new N((i,l)=>{s.cancelOpen=l}),this._state=s,this.name=e,this.on=Jt(this,"populate","blocked","versionchange","close",{ready:[Io,G]}),this.on.ready.subscribe=wa(this.on.ready.subscribe,i=>(l,u)=>{ut.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||N.resolve().then(l),u&&i(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),u&&i(l);else{i(l);const d=this;u||i(function f(){d.on.ready.unsubscribe(l),d.on.ready.unsubscribe(f)})}})}),this.Collection=(a=this,Bt(Vu.prototype,function(i,l){this.db=a;let u=Wa,c=null;if(l)try{u=l()}catch(m){c=m}const d=i._ctx,f=d.table,h=f.hook.reading.fire;this._ctx={table:f,index:d.index,isPrimKey:!d.index||f.schema.primKey.keyPath&&d.index===f.schema.primKey.name,range:u,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:c,or:d.or,valueMapper:h!==tn?h:null}})),this.Table=function(i){return Bt(zu.prototype,function(l,u,c){this.db=i,this._tx=c,this.name=l,this.schema=u,this.hook=i._allTables[l]?i._allTables[l].hook:Jt(null,{creating:[Nu,G],reading:[Au,tn],updating:[Mu,G],deleting:[Fu,G]})})}(this),this.Transaction=function(i){return Bt(Gu.prototype,function(l,u,c,d,f){this.db=i,this.mode=l,this.storeNames=u,this.schema=c,this.chromeTransactionDurability=d,this.idbtrans=null,this.on=Jt(this,"complete","error","abort"),this.parent=f||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new N((h,m)=>{this._resolve=h,this._reject=m}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},h=>{var m=this.active;return this.active=!1,this.on.error.fire(h),this.parent?this.parent._reject(h):m&&this.idbtrans&&this.idbtrans.abort(),ae(h)})})}(this),this.Version=function(i){return Bt(td.prototype,function(l){this.db=i,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(i){return Bt($a.prototype,function(l,u,c){this.db=i,this._ctx={table:l,index:u===":id"?null:u,or:c};const d=i._deps.indexedDB;if(!d)throw new T.MissingAPI;this._cmp=this._ascending=d.cmp.bind(d),this._descending=(f,h)=>d.cmp(h,f),this._max=(f,h)=>d.cmp(f,h)>0?f:h,this._min=(f,h)=>d.cmp(f,h)<0?f:h,this._IDBKeyRange=i._deps.IDBKeyRange})}(this),this.on("versionchange",i=>{i.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",i=>{!i.newVersion||i.newVersionnew this.Transaction(i,l,u,this._options.chromeTransactionDurability,c),this._fireOnBlocked=i=>{this.on("blocked").fire(i),Ht.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(i))},this.use(sd),this.use(ad),this.use(cd),this.use(id),this.vip=Object.create(this,{_vip:{value:!0}}),o.forEach(i=>i(this))}version(e){if(isNaN(e)||e<.1)throw new T.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new T.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(o=>o._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(Qu),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||F.letThrough||this._vip)?e():new N((n,r)=>{if(this._state.openComplete)return r(new T.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new T.DatabaseClosed);this.open().catch(G)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:o}){o&&this.unuse({stack:e,name:o});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:n,level:r??10,name:o}),s.sort((a,i)=>a.level-i.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(o=>r?o.create!==r:!!n&&o.name!==n)),this}open(){return rd(this)}_close(){const e=this._state,n=Ht.indexOf(this);if(n>=0&&Ht.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new N(r=>{e.dbReadyResolve=r}),e.openCanceller=new N((r,o)=>{e.cancelOpen=o})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new T.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new N((r,o)=>{const s=()=>{this.close();var a=this._deps.indexedDB.deleteDatabase(this.name);a.onsuccess=te(()=>{(function({indexedDB:i,IDBKeyRange:l},u){!Fo(i)&&u!==cr&&No(i,l).delete(u).catch(G)})(this._deps,this.name),r()}),a.onerror=je(o),a.onblocked=this._fireOnBlocked};if(e)throw new T.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return se(this._allTables).map(e=>this._allTables[e])}transaction(){const e=od.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let o=F.trans;o&&o.db===this&&e.indexOf("!")===-1||(o=null);const s=e.indexOf("?")!==-1;let a,i;e=e.replace("!","").replace("?","");try{if(i=n.map(u=>{var c=u instanceof this.Table?u.name:u;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===gr)a=gr;else{if(e!="rw"&&e!=wr)throw new T.InvalidArgument("Invalid transaction mode: "+e);a=wr}if(o){if(o.mode===gr&&a===wr){if(!s)throw new T.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");o=null}o&&i.forEach(u=>{if(o&&o.storeNames.indexOf(u)===-1){if(!s)throw new T.SubTransaction("Table "+u+" not included in parent transaction.");o=null}}),s&&o&&!o.active&&(o=null)}}catch(u){return o?o._promise(null,(c,d)=>{d(u)}):ae(u)}const l=Va.bind(null,this,a,i,o,r);return o?o._promise(a,l,"lock"):F.trans?Ft(F.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!xe(this._allTables,e))throw new T.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const ud=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class dd{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[ud](){return this}}function Ja(t,e){return se(e).forEach(n=>{Xn(t[n]||(t[n]=new Le),e[n])}),t}function fd(t){let e,n=!1;const r=new dd(o=>{const s=Oo(t);let a=!1,i={},l={};const u={get closed(){return a},unsubscribe:()=>{a=!0,Qe.storagemutated.unsubscribe(h)}};o.start&&o.start(u);let c=!1,d=!1;function f(){return se(l).some(p=>i[p]&&ld(i[p],l[p]))}const h=p=>{Ja(i,p),f()&&m()},m=()=>{if(c||a)return;i={};const p={},w=function(y){s&&Nt();const v=()=>Xe(t,{subscr:y,trans:null}),_=F.trans?Ft(F.transless,v):v();return s&&_.then(ze,ze),_}(p);d||(Qe(on,h),d=!0),c=!0,Promise.resolve(w).then(y=>{n=!0,e=y,c=!1,a||(f()?m():(i={},l=p,o.next&&o.next(y)))},y=>{c=!1,n=!1,o.error&&o.error(y),u.unsubscribe()})};return m(),u});return r.hasValue=()=>n,r.getValue=()=>e,r}let to;try{to={indexedDB:Q.indexedDB||Q.mozIndexedDB||Q.webkitIndexedDB||Q.msIndexedDB,IDBKeyRange:Q.IDBKeyRange||Q.webkitIDBKeyRange}}catch{to={indexedDB:null,IDBKeyRange:null}}const rt=ut;function Tn(t){let e=Ke;try{Ke=!0,Qe.storagemutated.fire(t)}finally{Ke=e}}Pt(rt,{...jn,delete:t=>new rt(t,{addons:[]}).delete(),exists:t=>new rt(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return Fo(e)?Promise.resolve(e.databases()).then(r=>r.map(o=>o.name).filter(o=>o!==cr)):No(e,n).toCollection().primaryKeys()}(rt.dependencies).then(t)}catch{return ae(new T.MissingAPI)}},defineClass:()=>function(t){ve(this,t)},ignoreTransaction:t=>F.trans?Ft(F.transless,t):t(),vip:Zr,async:function(t){return function(){try{var e=Qr(t.apply(this,arguments));return e&&typeof e.then=="function"?e:N.resolve(e)}catch(n){return ae(n)}}},spawn:function(t,e,n){try{var r=Qr(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:N.resolve(r)}catch(o){return ae(o)}},currentTransaction:{get:()=>F.trans||null},waitFor:function(t,e){const n=N.resolve(typeof t=="function"?rt.ignoreTransaction(t):t).timeout(e||6e4);return F.trans?F.trans.waitFor(n):n},Promise:N,debug:{get:()=>Te,set:t=>{Ea(t,t==="dexie"?()=>!0:La)}},derive:kt,extend:ve,props:Pt,override:wa,Events:Jt,on:Qe,liveQuery:fd,extendObservabilitySet:Ja,getByKeyPath:Ue,setByKeyPath:Se,delByKeyPath:function(t,e){typeof e=="string"?Se(t,e,void 0):"length"in e&&[].map.call(e,function(n){Se(t,n,void 0)})},shallowClone:_a,deepClone:hn,getObjectDiff:Mo,cmp:me,asap:ba,minKey:qr,addons:[],connections:Ht,errnames:So,dependencies:to,semVer:vs,version:vs.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),rt.maxKey=sn(rt.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Qe(on,t=>{if(!Ke){let e;lr?(e=document.createEvent("CustomEvent"),e.initCustomEvent(Ye,!0,!0,t)):e=new CustomEvent(Ye,{detail:t}),Ke=!0,dispatchEvent(e),Ke=!1}}),addEventListener(Ye,({detail:t})=>{Ke||Tn(t)}));let Ke=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(Ye);typeof t.unref=="function"&&t.unref(),Qe(on,e=>{Ke||t.postMessage(e)}),t.onmessage=e=>{e.data&&Tn(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){Qe(on,e=>{try{Ke||(typeof localStorage<"u"&&localStorage.setItem(Ye,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:Ye,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===Ye){const n=JSON.parse(e.newValue);n&&Tn(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===Ye&&Tn(e.changedParts)})}N.rejectionMapper=function(t,e){if(!t||t instanceof Ct||t instanceof TypeError||t instanceof SyntaxError||!t.name||!fs[t.name])return t;var n=new fs[t.name](e||t.message,t);return"stack"in t&&$e(n,"stack",{get:function(){return this.inner.stack}}),n},Ea(Te,La);var Bn=(t=>(t.MOVE_TO_ROOT_FOLDER="moveToRootFolder",t.DELETE="delete",t))(Bn||{});const hd="comfyui_workspace_db";class pd extends ut{constructor(){super(hd);oe(this,"workflows");oe(this,"changelogs");oe(this,"media");oe(this,"folders");oe(this,"tags");oe(this,"userSettings");oe(this,"models");oe(this,"cache");this.version(1).stores({workflows:"&id, name, parentFolderID",changelogs:"&id, workflowID",media:"&id, workflowID",folders:"&id, name, parentFolderID",tags:"&name",userSettings:"&id",models:"&id, fileName, fileHash",cache:"&id"}).upgrade(n=>{})}}const Z=new pd;class Mt{constructor(e){oe(this,"tableName");this.tableName=e}async saveDiskDB(){const e=await Z[this.tableName].toArray(),n={};e.forEach(r=>{n[r.id??r.name]=r}),pu(this.tableName,JSON.stringify(n))}async add(e){return await Z[this.tableName].add(e),await this.saveDiskDB(),e}async put(e){return await Z[this.tableName].put(e),await this.saveDiskDB(),e}async listAll(){return await Z[this.tableName].toArray()}async batchQuery(e){return await Z[this.tableName].bulkGet(e)}async getRecords(){console.warn("[DEPRECATED] getRecords() call, should only be used for one-time backfill for indexdb",this.tableName);const e=await hu(this.tableName);let n;try{n=e!=null?JSON.parse(e):null}catch{}if(n==null){const r=await xu()??"{}";n=JSON.parse(r)[this.tableName]}return n??{}}async get(e){return await Z[this.tableName].get(e)}async delete(e){await Z[this.tableName].delete(e),await this.saveDiskDB()}}const Qn=class Qn extends Mt{constructor(){super("changelogs")}static async load(){return new Qn}async listByWorkflowID(e){const n=await Z.changelogs.where("workflowID").equals(e).reverse().sortBy("createTime");if(n!=null&&n.length)return n;const r=await this.getRecords();return Object.values(r).filter(o=>o.workflowID===e).sort((o,s)=>s.createTime-o.createTime)}async getLastestByWorkflowID(e){const n=await this.listByWorkflowID(e);if(n!=null&&n.length)return n[0];const r=await this.getRecords();return Object.values(r).filter(s=>s.workflowID===e).sort((s,a)=>a.createTime-s.createTime)[0]}async create(e){const n=await this.getLastestByWorkflowID(e.workflowID);if(n!=null&&n.json===e.json)return null;const r={id:Qt(),json:e.json,workflowID:e.workflowID,createTime:Date.now()};return await Z.changelogs.add(r),await this.saveDiskDB(),r}};oe(Qn,"TABLE_NAME","changelogs");let no=Qn;const pf="CWM_WORKFLOWS_SORT_TYPE";var ot=(t=>(t.RECENTLY_MODIFIED="newest",t.OLDEST_MODIFIED="oldest",t.AZ="name A-Z",t.ZA="name Z-A",t))(ot||{});const Ya="comfyspace_tracking",Ga="workspace_info";async function Kt(t){const e=await To(t);if(e==null)return;const n=await Bo(t);await(I==null?void 0:I.updateFlow(t.id,{filePath:n??void 0}));const r=t.json,o=JSON.parse(r);o.extra[Ga]={id:t.id,name:t.name},delete o.extra[Ya],await va(e,JSON.stringify(o))}async function Cr(t){if(t.name==null)return;const e=await To(t);e!=null&&ya(e)}async function To(t){let e=vd(t.name)+".json",n=t.parentFolderID;for(;n!=null;){const r=await(Y==null?void 0:Y.get(n));if(r==null)break;e=`${r.name}/${e}`,n=r.parentFolderID??void 0}return e??null}async function Bo(t){const e=await To(t);let n=await(q==null?void 0:q.getSetting("myWorkflowsDir"));return n?(n.endsWith("/")||(n=n+"/"),n+e):(console.error("myWorkflowsDir is not set"),null)}async function md(t){const e=await(Y==null?void 0:Y.get(t));let n=e==null?void 0:e.parentFolderID,r=e==null?void 0:e.name;for(;n;){const s=await(Y==null?void 0:Y.get(n));if(s==null)break;r=`${s.name}/${r}`,n=s.parentFolderID??void 0}let o=await(q==null?void 0:q.getSetting("myWorkflowsDir"));return o?(o.endsWith("/")||(o=o+"/"),o+r):(console.error("myWorkflowsDir is not set"),null)}async function mf(t){const e=await(I==null?void 0:I.listAll())??[],n=await(Y==null?void 0:Y.listAll())??[],r=[t];let o=0;for(;r.length>0;){const s=r.shift();if(s){for(const i of e)i.parentFolderID===s&&o++;const a=n.filter(i=>i.parentFolderID===s).map(i=>i.id);a.length&&r.push(...a)}}return o}function vd(t){return t=t.replace(/[\\/:*?"<>|]/g,"_"),t.trim()}function yd(t,e=!1){const n=new Date(t),r=String(n.getDate()).padStart(2,"0"),o=String(n.getMonth()+1).padStart(2,"0"),s=n.getFullYear(),a=String(n.getHours()).padStart(2,"0"),i=String(n.getMinutes()).padStart(2,"0"),l=String(n.getSeconds()).padStart(2,"0"),u=`${o}-${r}-${s} ${a}:${i}`;return e?u+`:${l}`:u}async function Xa(t=!1){const e=await(I==null?void 0:I.listAll())??[];for(const n of e){const r=await Bo(n);n.filePath!=r&&(n.filePath!=null&&await ya(n.filePath,t),await Kt(n))}}const gd=(t,e=ot.RECENTLY_MODIFIED)=>{const n=[...t];switch(e){case ot.AZ:n.sort((r,o)=>r.name.localeCompare(o.name));break;case ot.ZA:n.sort((r,o)=>o.name.localeCompare(r.name));break;case ot.RECENTLY_MODIFIED:n.sort((r,o)=>o.updateTime-r.updateTime);break;case ot.OLDEST_MODIFIED:n.sort((r,o)=>r.updateTime-o.updateTime);break}return n};async function Cs(t){let e=t??"Untitled Flow";const r=(await(I==null?void 0:I.listAll())??[]).map(o=>o.name);if(r.includes(e)){let o=2,s=!0;for(;s;)r.includes(`${e} ${o}`)?o++:(e=`${e} ${o}`,s=!1)}return e}function vf(t){return new Promise((e,n)=>{const r=new FileReader;r.onload=o=>{const s=new Uint8Array(o.target.result),a=new DataView(s.buffer);a.getUint32(0)!==2303741511&&(console.error("Not a valid PNG file"),n());let i=8;const l={};for(;iString.fromCharCode(p)).join("");l[f]=m}i+=12+u}e(l)},r.readAsArrayBuffer(t)})}function wd(t){const e=new Uint16Array(t.slice(0,2))[0]===18761;function n(a,i,l){const u=t.slice(a,a+l);if(l===2)return new DataView(u.buffer,u.byteOffset,u.byteLength).getUint16(0,i);if(l===4)return new DataView(u.buffer,u.byteOffset,u.byteLength).getUint32(0,i)}const r=n(4,e,4);function o(a){const i=n(a,e,2),l={};for(let u=0;u{const n=new FileReader;n.onload=r=>{var l;const o=new Uint8Array((l=r==null?void 0:r.target)==null?void 0:l.result),s=new DataView(o.buffer);if(s.getUint32(0)!==1380533830||s.getUint32(8)!==1464156752){console.error("Not a valid WEBP file"),e();return}let a=12;const i={};for(;a{const n=new FileReader;n.onload=r=>{const o=new Uint8Array(r.target.result),s=new DataView(o.buffer),a=new TextDecoder;if(s.getUint32(0)==440786851){let i=12;for(;i>8*(4-c)&~(1<<7*c),f=a.decode(o.slice(i+2+c,i+2+c+d)),h=JSON.parse(f);e(h);return}}i+=1}}else if(s.getUint32(4)==1718909296&&s.getUint32(8)==1769172845){let i=o.length-4;for(;i>16;){if(s.getUint32(i)==1684108385&&s.getUint32(i-8)==2841865588){s.getUint32(i+4),s.getUint32(i+8);const l=s.getUint32(i-4)-4*4,u=a.decode(o.slice(i+12,i+12+l)),c=JSON.parse(u);e(c);return}i-=1}}else{console.error("Unknown magic: "+s.getUint32(0)),e();return}},n.readAsArrayBuffer(t)})}const bd=async t=>{const e=await(q==null?void 0:q.getSetting("shortcuts").then(n=>n==null?void 0:n.save));return e?xd(t,e):!1},xd=(t,e)=>{const n=e.split("+"),r={Control:t.ctrlKey,Shift:t.shiftKey,Alt:t.altKey,Command:t.metaKey,[t.key.toUpperCase()]:!0};return n.every(o=>r[o])};function bf(t){const e=["png","jpg","jpeg","gif","bmp","webp"],n=t.split(".").pop();return n!=null&&e.includes(n)}function _d(t){return`/workspace/view_media?filename=${t}`}async function kd(t,e){if(t.length&&await(I==null?void 0:I.batchCreateFlows(t,!0)),e.length){const n=await(Y==null?void 0:Y.listAll());for(const r of e){const o=n==null?void 0:n.find(a=>a.name===r.name);let s;if(o)s=o.id;else{const a=await(Y==null?void 0:Y.create({name:r.name}));s=a==null?void 0:a.id}await(I==null?void 0:I.batchCreateFlows(r.list,!0,s))}}}function Es(){const e=window.location.hash.slice(1).split("/").find(n=>n.includes("workspaceId@"));return e?e.split("@")[1]:null}function Za(t){const e=window.location.hash.slice(1).split("/"),n=e.findIndex(o=>o.includes("workspaceId@")),r=`workspaceId@${t}`;return n>=0?e[n]=r:e.push(r),`${e.join("/")}`}const Cd=t=>{const e=Za(t);window.open(`${window.location.origin}/#${e}`)};async function Ed(){const t=await(I==null?void 0:I.listAll())??[];for(const e of t)try{const n=await Bo(e),r=JSON.parse(e.json);r.extra[Ga]={id:e.id,name:e.name},delete r.extra[Ya],n&&await va(n,JSON.stringify(r))}catch(n){console.error(n)}}const ro={last_node_id:9,last_link_id:9,nodes:[{id:7,type:"CLIPTextEncode",pos:[413,389],size:{0:425.27801513671875,1:180.6060791015625},flags:{},order:3,mode:0,inputs:[{name:"clip",type:"CLIP",link:5}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[6],slot_index:0}],properties:{},widgets_values:["text, watermark"]},{id:6,type:"CLIPTextEncode",pos:[415,186],size:{0:422.84503173828125,1:164.31304931640625},flags:{},order:2,mode:0,inputs:[{name:"clip",type:"CLIP",link:3}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[4],slot_index:0}],properties:{},widgets_values:["beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"]},{id:5,type:"EmptyLatentImage",pos:[473,609],size:{0:315,1:106},flags:{},order:1,mode:0,outputs:[{name:"LATENT",type:"LATENT",links:[2],slot_index:0}],properties:{},widgets_values:[512,512,1]},{id:3,type:"KSampler",pos:[863,186],size:{0:315,1:262},flags:{},order:4,mode:0,inputs:[{name:"model",type:"MODEL",link:1},{name:"positive",type:"CONDITIONING",link:4},{name:"negative",type:"CONDITIONING",link:6},{name:"latent_image",type:"LATENT",link:2}],outputs:[{name:"LATENT",type:"LATENT",links:[7],slot_index:0}],properties:{},widgets_values:[0x8e7ff42ed37e,!0,20,8,"euler","normal",1]},{id:8,type:"VAEDecode",pos:[1209,188],size:{0:210,1:46},flags:{},order:5,mode:0,inputs:[{name:"samples",type:"LATENT",link:7},{name:"vae",type:"VAE",link:8}],outputs:[{name:"IMAGE",type:"IMAGE",links:[9],slot_index:0}],properties:{}},{id:9,type:"SaveImage",pos:[1451,189],size:{0:210,1:26},flags:{},order:6,mode:0,inputs:[{name:"images",type:"IMAGE",link:9}],properties:{}},{id:4,type:"CheckpointLoaderSimple",pos:[26,474],size:{0:315,1:98},flags:{},order:0,mode:0,outputs:[{name:"MODEL",type:"MODEL",links:[1],slot_index:0},{name:"CLIP",type:"CLIP",links:[3,5],slot_index:1},{name:"VAE",type:"VAE",links:[8],slot_index:2}],properties:{},widgets_values:["v1-5-pruned-emaonly.ckpt"]}],links:[[1,4,0,3,0,"MODEL"],[2,5,0,3,3,"LATENT"],[3,4,1,6,0,"CLIP"],[4,6,0,3,1,"CONDITIONING"],[5,4,1,7,0,"CLIP"],[6,7,0,3,2,"CONDITIONING"],[7,3,0,8,0,"LATENT"],[8,4,2,8,1,"VAE"],[9,8,0,9,0,"IMAGE"]],groups:[],config:{},extra:{},version:.4},er=class er extends Mt{constructor(){super("workflows");oe(this,"_curWorkflow",null)}get curWorkflow(){return this._curWorkflow}static async load(){return new er}updateCurWorkflowID(n){if(n==null){this._curWorkflow=null;return}this.get(n).then(r=>{this._curWorkflow=r??null})}async latestVersionCheck(){if(this._curWorkflow){const n=await this.get(this._curWorkflow.id);return(n==null?void 0:n.updateTime)===this._curWorkflow.updateTime}return!0}async createFlow(n){const{id:r,json:o,name:s}=n,a=await Cs(s),i=r??Qt(),l=Date.now(),u={...n,id:i,json:o??JSON.stringify(ro),name:a,updateTime:l,createTime:l};return await Z.workflows.add(u),this.saveDiskDB(),Kt(u),u}async updateFlow(n,r){const o=await this.get(n);if(o==null)return;const s={...o,...r,id:n},a=JSON.stringify(o),i=JSON.stringify(s);if(a===i)return;const l=s,u=Object.keys(r);if(u.length===1&&["tags","parentFolderID"].includes(u[0])||(l.updateTime=Date.now(),l.parentFolderID!=null&&await(Y==null?void 0:Y.update({id:l.parentFolderID,updateTime:Date.now()}))),await Z.workflows.update(n,l),this._curWorkflow&&this._curWorkflow.id===n&&(this._curWorkflow=l),await this.saveDiskDB(),Object.prototype.hasOwnProperty.call(r,"name")||Object.prototype.hasOwnProperty.call(r,"parentFolderID")){await Cr(o),await Kt(s);return}r.json!=null&&await Kt(s)}async batchCreateFlows(n=[],r=!1,o){const s=[];for(const a of n){const i=a.name&&r?a.name:await Cs(a.name),l=Qt(),u=Date.now(),c={id:l,name:i,json:a.json,parentFolderID:o,updateTime:u,createTime:u,tags:[]};s.push(c),await Kt(c)}await Z.workflows.bulkAdd(s),this.saveDiskDB()}async deleteFlow(n){const r=await this.get(n);r&&Cr({...r}),await Z.workflows.delete(n),this.saveDiskDB()}async batchDeleteFlow(n){const r=await Z.workflows.bulkGet(n);for(const o of r)o&&await Cr(o);await Z.workflows.bulkDelete(n),this.saveDiskDB()}async listFolderContent(n,r){const o=await this.listAll().then(i=>i.filter(l=>l.parentFolderID==n))??[],s=await(Y==null?void 0:Y.listAll().then(i=>i.filter(l=>l.parentFolderID==n)))??[],a=[...o,...s];return gd(a,r??ot.RECENTLY_MODIFIED)}};oe(er,"TABLE_NAME","workflows");let oo=er;const tr=class tr extends Mt{constructor(){super("folders")}static async load(){return new tr}async create(e){const n=await this.generateUniqueName(e.name),r={id:Qt(),name:n,parentFolderID:e.parentFolderID??null,updateTime:Date.now(),createTime:Date.now(),type:"folder"};return await Z.folders.add(r),this.saveDiskDB(),r}async update(e){const n=await this.get(e.id);n!=null&&({...n,...e},e.name!=null,await Z.folders.update(e.id,e),this.saveDiskDB(),(e.name!=null||e.parentFolderID!=null)&&Xa(!0))}async deleteFolder(e,n=Bn.DELETE){const r=await md(e),o=await(I==null?void 0:I.listAll())??[],s=await this.listAll(),a=[e];for(;a.length>0;){const i=a.shift();if(i){for(const u of o)if(u.parentFolderID===i)switch(n){case Bn.DELETE:await(I==null?void 0:I.deleteFlow(u.id));break;case Bn.MOVE_TO_ROOT_FOLDER:await(I==null?void 0:I.updateFlow(u.id,{parentFolderID:void 0}));break}await Z.folders.delete(i);const l=s.filter(u=>u.parentFolderID===i).map(u=>u.id);l.length&&a.push(...l)}}r&&await yu(r),this.saveDiskDB()}async generateUniqueName(e){let n=e??"New folder";const r=await this.listAll().then(o=>o.map(s=>s.name));if(r.includes(n)){let o=2,s=!0;for(;s;)r.includes(`${n} ${o}`)?o++:(n=`${n} ${o}`,s=!1)}return n}};oe(tr,"TABLE_NAME","folders");let so=tr;class Qa extends Mt{constructor(){super("media")}async listByWorkflowID(e){const n=await Z.media.where("workflowID").equals(e).reverse().sortBy("createTime");if(n.length>0)return n;const r=await this.getRecords();return Object.values(r).filter(o=>o.workflowID===e).sort((o,s)=>s.createTime-o.createTime)}async create(e){const n=e.localPath.split(".").pop();if(n==null)return null;const r={id:Qt(),localPath:e.localPath,workflowID:e.workflowID,createTime:Date.now(),format:n},o=await(I==null?void 0:I.get(e.workflowID)),s=new Set((o==null?void 0:o.mediaIDs)??[]).add(r.id);return await(I==null?void 0:I.updateFlow(e.workflowID,{mediaIDs:Array.from(s),coverMediaPath:r.localPath})),Z.media.add(r),this.saveDiskDB(),r}}oe(Qa,"TABLE_NAME","media");const nr=class nr extends Mt{constructor(){super("userSettings");oe(this,"defaultSettings");oe(this,"DEFAULT_USER","guest");oe(this,"_autoSave",!1);this.defaultSettings={id:this.DEFAULT_USER,topBarStyle:{top:0,left:0},myWorkflowsDir:"",shortcuts:{save:"Shift+S"},autoSave:!0,twoWaySync:!1}}get autoSave(){return this._autoSave}async getSetting(n){const r=await this.get(this.DEFAULT_USER);return(r==null?void 0:r[n])??this.defaultSettings[n]}async upsert(n){const o={...await this.get(this.DEFAULT_USER)??this.defaultSettings,...n};await this.put(o),Object.prototype.hasOwnProperty.call(n,"autoSave")&&n.autoSave!==void 0&&(this._autoSave=n.autoSave)}static async load(){const n=new nr,r=await mu();return n.defaultSettings.myWorkflowsDir=`${r.dir_path}/my_workflows`,await n.getSetting("autoSave").then(o=>{n._autoSave=o??!0}),n}};oe(nr,"TABLE_NAME","userSettings");let ao=nr;const rr=class rr extends Mt{constructor(){super("tags")}static async load(){return new rr}};oe(rr,"TABLE_NAME","tags");let io=rr;function xf(t){return t.type==="folder"}let I=null,Ln=null,q=null,Y=null,Fe=null,dt=null;async function Od(){const t=async()=>{I=await oo.load()},e=async()=>{Ln=await io.load()},n=async()=>{q=await ao.load()},r=async()=>{Y=await so.load()},o=async()=>{Fe=await no.load()},s=async()=>{dt=new Qa};await Promise.all([t(),e(),n(),r(),o(),s()]),localStorage.getItem("WORKSPACE_INDEXDB_BACKFILL")!=="true"&&(await Dd(),localStorage.setItem("WORKSPACE_INDEXDB_BACKFILL","true"))}async function Dd(){const t=async()=>{try{const a=await(I==null?void 0:I.getRecords());a&&await Z.workflows.bulkAdd(Object.values(a))}catch(a){console.error(a)}},e=async()=>{try{const a=await(Y==null?void 0:Y.getRecords());a&&await Z.folders.bulkAdd(Object.values(a))}catch(a){console.error(a)}},n=async()=>{try{const a=await(dt==null?void 0:dt.getRecords());a&&await Z.media.bulkAdd(Object.values(a))}catch(a){console.error(a)}},r=async()=>{try{const a=await(Fe==null?void 0:Fe.getRecords());a&&await Z.changelogs.bulkAdd(Object.values(a))}catch(a){console.error(a)}},o=async()=>{try{const a=await(Ln==null?void 0:Ln.getRecords());a&&await Z.tags.bulkAdd(Object.values(a))}catch(a){console.error(a)}},s=async()=>{try{const a=q,i=await a.getRecords().then(l=>l[a.DEFAULT_USER]?l[a.DEFAULT_USER]:l);await Z.userSettings.put({...a.defaultSettings,...i})}catch(a){console.error(a)}};await Promise.all([t(),e(),n(),r(),o(),s()])}const vn=g.createContext({curFlowID:null,loadWorkflowID:()=>{},saveCurWorkflow:()=>{},discardUnsavedChanges:()=>{},isDirty:!1,loadNewWorkflow:()=>{},loadFilePath:()=>{},setRoute:()=>{}}),_f=g.createContext({refreshFolderStamp:0,setRefreshFolderStamp:()=>{}}),Er={x:0,y:0};function Sd({children:t,onDragEnd:e}){const n=g.useRef(Er),r=g.useRef(!1),[o,s]=g.useState(Er),a=c=>{var d,f,h;if(!(!(c.target instanceof Element)||!(c.target.parentNode instanceof Element))&&[(d=c.target)==null?void 0:d.id,(h=(f=c.target)==null?void 0:f.parentNode)==null?void 0:h.id].includes("dragPanelIcon")){n.current={x:c.clientX,y:c.clientY},r.current=!0,window.addEventListener("mousemove",i),window.addEventListener("mouseup",l);const m=document.getElementsByTagName("body")[0];m.style.userSelect="none"}},i=g.useCallback(c=>{const d={x:c.clientX-n.current.x,y:c.clientY-n.current.y};s(d)},[]),l=g.useCallback(()=>{s(d=>(e(d),Er)),r.current=!1;const c=document.getElementsByTagName("body")[0];c.style.userSelect="auto",window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",l)},[e,i]),u={transform:`translate(${o.x}px, ${o.y}px)`,zIndex:r.current?1e3:1};return x.jsx("div",{style:u,onMouseDown:a,children:t})}var Id={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},Pd=Object.defineProperty,jd=Object.defineProperties,Ad=Object.getOwnPropertyDescriptors,Zn=Object.getOwnPropertySymbols,ei=Object.prototype.hasOwnProperty,ti=Object.prototype.propertyIsEnumerable,Os=(t,e,n)=>e in t?Pd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ds=(t,e)=>{for(var n in e||(e={}))ei.call(e,n)&&Os(t,n,e[n]);if(Zn)for(var n of Zn(e))ti.call(e,n)&&Os(t,n,e[n]);return t},Nd=(t,e)=>jd(t,Ad(e)),Fd=(t,e)=>{var n={};for(var r in t)ei.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Zn)for(var r of Zn(t))e.indexOf(r)<0&&ti.call(t,r)&&(n[r]=t[r]);return n},Ee=(t,e,n)=>{const r=g.forwardRef((o,s)=>{var a=o,{color:i="currentColor",size:l=24,stroke:u=2,children:c}=a,d=Fd(a,["color","size","stroke","children"]);return g.createElement("svg",Ds(Nd(Ds({ref:s},Id),{width:l,height:l,stroke:i,strokeWidth:u,className:`tabler-icon tabler-icon-${t}`}),d),[...n.map(([f,h])=>g.createElement(f,h)),...c||[]])});return r.propTypes={color:nt.string,size:nt.oneOfType([nt.string,nt.number]),stroke:nt.oneOfType([nt.string,nt.number])},r.displayName=`${e}`,r},Md=Ee("arrow-back-up-double","IconArrowBackUpDouble",[["path",{d:"M13 14l-4 -4l4 -4",key:"svg-0"}],["path",{d:"M8 14l-4 -4l4 -4",key:"svg-1"}],["path",{d:"M9 10h7a4 4 0 1 1 0 8h-1",key:"svg-2"}]]),Rd=Ee("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),lo=Ee("device-floppy","IconDeviceFloppy",[["path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M14 4l0 4l-6 0l0 -4",key:"svg-2"}]]),Td=Ee("download","IconDownload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]),Bd=Ee("external-link","IconExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]),Ld=Ee("folder","IconFolder",[["path",{d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2",key:"svg-0"}]]),Wd=Ee("grip-vertical","IconGripVertical",[["path",{d:"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}],["path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-3"}],["path",{d:"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-4"}],["path",{d:"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-5"}]]),Kd=Ee("history","IconHistory",[["path",{d:"M12 8l0 4l2 2",key:"svg-0"}],["path",{d:"M3.05 11a9 9 0 1 1 .5 4m-.5 5v-5h5",key:"svg-1"}]]),$d=Ee("photo","IconPhoto",[["path",{d:"M15 8h.01",key:"svg-0"}],["path",{d:"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z",key:"svg-1"}],["path",{d:"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",key:"svg-2"}],["path",{d:"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",key:"svg-3"}]]),Ud=Ee("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),qd=Ee("triangle-inverted-filled","IconTriangleInvertedFilled",[["path",{d:"M20.118 3h-16.225a2.914 2.914 0 0 0 -2.503 4.371l8.116 13.549a2.917 2.917 0 0 0 4.987 .005l8.11 -13.539a2.914 2.914 0 0 0 -2.486 -4.386z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),zd=Ee("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function Vd({backgroundColor:t}){const e=t===void 0?"rgba(0,0,0,0.5)":t??void 0;return x.jsx("div",{style:{position:"fixed",top:0,bottom:0,left:0,right:0,backgroundColor:e}})}function Hd({onClose:t}){const{curFlowID:e,isDirty:n}=g.useContext(vn),[r,o]=g.useState(null),[s,a]=g.useState(),[i,l]=g.useState([]);return g.useEffect(()=>{(async c=>{var p;const d=await(I==null?void 0:I.get(c));if(!d||!c){alert("No current workflow found!");return}a(d);const f=await(Fe==null?void 0:Fe.listByWorkflowID(c));l(f??[]);const h=f==null?void 0:f.filter(w=>w.json===(d==null?void 0:d.lastSavedJson)),m=(p=h==null?void 0:h[0])==null?void 0:p.id;m&&o(m)})(e??"")},[]),!e||!s?null:x.jsxs(Ti,{width:400,height:"100vh",pl:4,pr:5,pt:4,gap:0,position:"fixed",top:0,left:0,zIndex:1e3,children:[x.jsx(Ri,{pb:1,mb:0,children:x.jsxs(Gs,{justifyContent:"space-between",alignItems:"center",children:[x.jsx(Js,{size:"md",children:"Version History"}),x.jsx(Gt,{size:"sm",icon:x.jsx(zd,{}),onClick:t,variant:"ghost","aria-label":"close version history"})]})}),x.jsxs(Mi,{overflowY:"auto",gap:0,children:[x.jsx(Kn,{mb:4,children:"All the saved changes of this workflow"}),x.jsx(vo,{divider:x.jsx(Vs,{}),spacing:2,children:i==null?void 0:i.map(u=>x.jsxs(Ge,{size:"sm",variant:"ghost",onClick:()=>{if(n){alert("You have unsaved changes, please save or discard your changes to proceed switching version, in case losing your changes.");return}Ie.loadGraphData(JSON.parse(u.json)),I==null||I.updateFlow(e,{lastSavedJson:u.json}),t()},isActive:u.id===r,children:["Saved at ",yd(u.createTime,!0)]}))})]})]})}function Jd(){const{curFlowID:t,onDuplicateWorkflow:e,discardUnsavedChanges:n,saveCurWorkflow:r}=g.useContext(vn),[o,s]=g.useState(!1),[a,i]=g.useState(!1),[l,u]=g.useState(""),[c,d]=g.useState(""),[f,h]=g.useState(),[m,p]=g.useState(!1),[w,y]=g.useState("");g.useEffect(()=>{t&&(I==null||I.get(t).then(D=>{u((D==null?void 0:D.name)??""),h(D)}))},[t]);const v=D=>{u(D.target.value),c&&d("")},_=()=>{if(!t){alert("Flow ID is required");return}e==null||e(t,l),k()},k=()=>{s(!1)},E=g.useCallback(async()=>{const D=t?await(I==null?void 0:I.get(t)):null;if(!D){alert("Workspace does not exist");return}const A=new Blob([D.json],{type:"application/json"}),B=URL.createObjectURL(A),M=document.createElement("a");M.href=B,M.download=`${D.name}.json`,document.body.appendChild(M),M.click(),document.body.removeChild(M),URL.revokeObjectURL(B)},[t]),[C,b]=g.useState(),P=()=>{b(setTimeout(()=>p(!1),300))},O=()=>{p(!0),clearTimeout(C),b(void 0),q==null||q.getSetting("shortcuts").then(D=>{y(D==null?void 0:D.save)})};return x.jsxs(x.Fragment,{children:[x.jsxs(da,{isLazy:!0,isOpen:m,gutter:4,children:[x.jsx(ma,{as:"div",onMouseEnter:O,onMouseLeave:P,children:x.jsx(Gt,{icon:x.jsx(Rd,{size:20}),"aria-label":"menu",size:"xs",backgroundColor:"#323232",color:"white"})}),x.jsxs(co,{children:[x.jsxs(pa,{minWidth:150,zIndex:1e3,onMouseEnter:O,onMouseLeave:P,children:[x.jsx(wt,{onClick:r,icon:x.jsx(lo,{size:20}),iconSpacing:1,command:w,children:"Save"}),x.jsx(_t,{label:"Revert workflow to your last saved version. You will lose all changes made since your last save.",children:x.jsx(wt,{onClick:n,icon:x.jsx(Md,{size:20}),iconSpacing:1,isDisabled:(f==null?void 0:f.lastSavedJson)==null,children:"Discard unsaved changes"})}),x.jsx(wt,{onClick:E,icon:x.jsx(Td,{size:20}),iconSpacing:1,children:"Download"}),x.jsx(wt,{onClick:()=>s(!0),icon:x.jsx(lo,{size:20}),iconSpacing:1,children:"Save As"}),x.jsx(wt,{onClick:()=>i(!0),icon:x.jsx(Kd,{size:20}),iconSpacing:1,children:"Versions History"})]}),m&&x.jsx(Vd,{backgroundColor:null})]})]}),a&&x.jsx(Hd,{onClose:()=>i(!1)}),o&&x.jsxs(Ps,{isOpen:!0,onClose:k,children:[x.jsx(js,{}),x.jsxs(As,{children:[x.jsx(Ns,{children:"Save As"}),x.jsx(Fs,{}),x.jsx(Ms,{children:x.jsxs(ho,{isInvalid:!!c,children:[x.jsx(mo,{children:"Workflow name"}),x.jsx(ar,{value:l,onChange:v,autoFocus:!0,onKeyUp:D=>{D.code==="Enter"&&!c&&_()}}),c&&x.jsx(po,{children:c})]})}),x.jsxs(Rs,{children:[x.jsx(Ge,{colorScheme:"teal",mr:3,onClick:_,isDisabled:!l||!!c,children:"Save"}),x.jsx(Ge,{onClick:k,children:"Cancel"})]})]})]})]})}function Yd({displayName:t,updateFlowName:e,isDirty:n}){const{isOpen:r,onOpen:o,onClose:s}=rl(),{curFlowID:a}=g.useContext(vn),[i,l]=g.useState(t),[u,c]=g.useState(""),d=()=>{l(t),o()},f=p=>{l(p.target.value),u&&c("")},h=async()=>{if(a){const p=i.trim();if(l(p),t===p)return m();const w=await(I==null?void 0:I.listAll())??[];(w==null?void 0:w.map(v=>v.name)).includes(p)?c("The name is duplicated, please modify it and submit again."):(await(I==null?void 0:I.updateFlow(a,{name:p})),e(p),m())}},m=()=>{c(""),s()};return a==null?null:x.jsxs(xt,{children:[x.jsx(_t,{label:t,placement:"bottom",children:x.jsxs(Kn,{as:"div",color:"white",onClick:d,maxW:240,fontWeight:500,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:[x.jsx("div",{style:{width:8,display:"inline-block"},children:x.jsx(Kn,{as:"span",children:n&&"* "})}),t]})}),x.jsxs(Ps,{isOpen:r,onClose:m,children:[x.jsx(js,{}),x.jsxs(As,{children:[x.jsx(Ns,{children:"Edit workflow name"}),x.jsx(Fs,{}),x.jsx(Ms,{children:x.jsxs(ho,{isInvalid:!!u,children:[x.jsx(mo,{children:"Workflow name"}),x.jsx(ar,{value:i,onChange:f,autoFocus:!0,onKeyUp:p=>{p.code==="Enter"&&!u&&h()}}),u&&x.jsx(po,{children:u})]})}),x.jsxs(Rs,{children:[x.jsx(Ge,{colorScheme:"teal",mr:3,onClick:h,isDisabled:!i||!!u,children:"Save"}),x.jsx(Ge,{onClick:m,children:"Cancel"})]})]})]})]})}function Gd({updatePanelPosition:t,positionStyle:e,curFlowName:n,setCurFlowName:r}){const{isDirty:o,loadNewWorkflow:s,saveCurWorkflow:a,setRoute:i,curFlowID:l}=g.useContext(vn);return x.jsx(Sd,{onDragEnd:u=>{t({top:u.y,left:u.x},!0)},children:x.jsxs(xt,{style:{padding:2,position:"fixed",...e},justifyContent:"space-between",alignItems:"center",gap:2,draggable:!1,id:"workspaceManagerPanel",className:"workspaceManagerPanel",children:[x.jsx(Ge,{size:"sm","aria-label":"workspace folder",onClick:()=>i("recentFlows"),px:2,children:x.jsxs(xt,{gap:1,children:[x.jsx(Ld,{size:21}),x.jsx(qd,{size:8})]})}),x.jsx(_t,{label:"New workflow",children:x.jsx(Ge,{size:"sm",variant:"outline",colorScheme:"teal","aria-label":"new workflow",onClick:()=>s(),px:2,py:2,children:x.jsx(xt,{gap:0,children:x.jsx(Ud,{size:16,color:"white"})})})}),x.jsx(Yd,{isDirty:o,displayName:n??"",updateFlowName:u=>{r(u),requestAnimationFrame(()=>{t()})}}),l&&x.jsxs(xt,{gap:"1px",children:[x.jsx(_t,{label:"Open gallery",children:x.jsx(Gt,{onClick:()=>i("gallery"),icon:x.jsx($d,{size:20,color:"white"}),size:"sm","aria-label":"open gallery",variant:"ghost"})}),x.jsx(Jd,{})]}),l&&o?x.jsx(_t,{label:"Save workflow",children:x.jsx(Gt,{style:{width:22},onClick:a,icon:x.jsx(lo,{size:22,color:"white"}),size:"xs","aria-label":"save workspace",variant:"ghost"})}):x.jsx("div",{style:{width:22}}),x.jsx(Wd,{id:"dragPanelIcon",className:"dragPanelIcon",cursor:"move",size:15,color:"#FFF"})]})})}const Xd=uo.lazy(()=>fo(()=>import("./RecentFilesDrawer-pKne9d7L.js"),__vite__mapDeps([0,1,2,3,4,5]))),Zd=uo.lazy(()=>fo(()=>import("./GalleryModal-N7Rbh-G9.js"),__vite__mapDeps([6,1,2,3,5]))),Qd=uo.lazy(()=>fo(()=>import("./ModelManagerTopbar-NeKA5IAs.js").then(t=>t.M),__vite__mapDeps([7,1,3,4]))),ef=["download_progress","download_error","model_list"];function tf(){const[t,e]=g.useState(null),[n,r]=g.useState("root"),[o,s]=g.useState(!0),[a,i]=g.useState(null),l=g.useRef(null),[u,c]=g.useState(),[d,f]=g.useState(!1),h=g.useRef(null),{showDialog:m}=xi(),[p,w]=g.useState(!1);g.useRef(!1);const y=g.useRef(0),v=g.useRef("hide"),_=g.useCallback(()=>{if(l.current){const j=JSON.stringify(Ie.graph.serialize());I==null||I.updateFlow(l.current,{lastSavedJson:j,json:j}),Fe==null||Fe.create({workflowID:l.current,json:j})}},[]),k=async()=>{if(confirm("Are you sure you want to discard unsaved changes? This will revert current workflow to your last saved version. You will lose all changes made since your last save.")&&l.current){const R=await(I==null?void 0:I.get(l.current));R&&R.lastSavedJson&&Ie.loadGraphData(JSON.parse(R.lastSavedJson))}},E=(j,R)=>{if(l.current=j,i(j),e(R),I==null||I.updateCurWorkflowID(j),j==null){document.title="ComfyUI";return}if(Es()){const $=Za(j);window.location.hash=$,document.title=R+" - ComfyUI"}else localStorage.setItem("curFlowID",j),document.title="ComfyUI - "+R},C=async()=>{b(),localStorage.removeItem("workspace"),localStorage.removeItem("comfyspace");try{await Od(),await(q==null?void 0:q.getSetting("topBarStyle").then($=>{X($,!1)}))}catch($){console.error("error loading db",$)}s(!1);let j=null;if(j=Es(),j==null&&(j=localStorage.getItem("curFlowID")),j&&D(j),localStorage.getItem("REWRITTEN_ALL_LOCAL_DISK_FILE")==="true"?await Xa():(await Ed(),localStorage.setItem("REWRITTEN_ALL_LOCAL_DISK_FILE","true")),await(q==null?void 0:q.getSetting("twoWaySync"))){const $=await(q==null?void 0:q.getSetting("myWorkflowsDir")),z=await(I==null?void 0:I.listAll()),W=z&&z.map(ie=>ie.id)||[],{fileList:K,folderList:V}=await vu($,W);await kd(K,V)}},b=()=>{ef.forEach(j=>{Ho.addEventListener(j,()=>null)})},P=async()=>{if(l.current!=null){const j=await(I==null?void 0:I.get(l.current));return!!j&&O(j)}return!1},O=j=>{if(j.lastSavedJson==null)return!0;const R=Ie.graph.serialize()??{};let $={};try{$=j!=null&&j.lastSavedJson?JSON.parse(j==null?void 0:j.lastSavedJson):{}}catch(W){console.error("error parsing json",W)}return!(JSON.stringify(R)===JSON.stringify($))},D=async j=>{if(Ie.graph==null){console.error("app.graph is null cannot load workflow");return}const R=await(I==null?void 0:I.get(j));if(R==null){alert("Error: Workflow not found! id: "+j);return}E(j,R.name),Ie.ui.dialog.close(),Ie.loadGraphData(JSON.parse(R.json)),r("root")},A=async j=>{if(j===null){E(null,""),Ie.graph.clear();return}if((await(q==null?void 0:q.getSetting("autoSave"))??!0)||!d){D(j);return}m(`Do you want to save the changes you made to, ${t}?`,[{label:"Open in new tab",icon:x.jsx(Bd,{}),onClick:()=>{Cd(j)}},{label:"Save",colorScheme:"teal",onClick:()=>{_(),D(j)}},{label:"Discard",colorScheme:"red",onClick:()=>{D(j)}}])},B=async j=>{const R=(j==null?void 0:j.json)??JSON.stringify(ro),$=await(I==null?void 0:I.createFlow({json:R,name:j==null?void 0:j.name}));$&&await A($.id),r("root")},M=async(j,R=!1)=>{const $=j.split("/").pop()??j;R?_():B({name:$});const z=await fetch(_d(j)),W=await z.blob(),K=new File([W],$,{type:z.headers.get("Content-Type")||""});await Ie.handleFile(K),r("root")},L=async(j,R)=>{const $=await(I==null?void 0:I.get(j));if($==null)return;const z=await(I==null?void 0:I.createFlow({json:$.json,lastSavedJson:$.lastSavedJson,name:R||$.name,parentFolderID:$.parentFolderID,tags:$.tags}));z&&await A(z.id)},X=g.useCallback((j,R=!1)=>{const{top:$=0,left:z=0}=u||{};let{top:W=0,left:K=0}=j??{};W+=$,K+=z;const V=document.documentElement.clientWidth,ie=document.documentElement.clientHeight,pe=document.getElementById("workspaceManagerPanel"),le=(pe==null?void 0:pe.offsetWidth)||392;W+36>ie&&(W=ie-36),K+le>=V&&(K=V-le),c({top:Math.max(0,W),left:Math.max(0,K)}),R&&(q==null||q.upsert({topBarStyle:{top:W,left:K}}))},[u]),U=async j=>{await bd(j)&&_()},S=g.useCallback(j=>{if(l.current==null)return;let R=j.filename;j.subfolder!=null&&j.subfolder!==""&&(R=j.subfolder+"/"+R),dt==null||dt.create({workflowID:l.current,localPath:R})},[]),H=g.useCallback(()=>{r("root")},[]);return g.useEffect(()=>{C(),w(!0),y.current=setInterval(async()=>{const z=await(q==null?void 0:q.getSetting("autoSave"))??!0;if(l.current!=null&&z){const W=await(I==null?void 0:I.latestVersionCheck());if(v.current!=="disabled"&&!W)v.current="show",m(`This notification is to inform you that it appears you've opened the same workflow in multiple tabs. If all tabs are set to auto-save, this may lead to conflicts and potential data loss. - -You might want to consider disabling auto-save to prevent this. We will remind you to save changes if you leave a page with unsaved work.`,[{label:"Do Not Remind Again",onClick:()=>{v.current="disabled"}},{label:"Disable Auto-Save",colorScheme:"teal",onClick:()=>{q==null||q.upsert({autoSave:!1})}}],!0);else{const K=JSON.stringify(Ie.graph.serialize());K!=null&&await(I==null?void 0:I.updateFlow(l.current,{json:K}))}}P().then(W=>{f(W)})},1e3),window.addEventListener("keydown",U);const j=document.getElementById("comfy-file-input"),R=async()=>{if(j&&j.files&&j.files.length>0){const z=await(I==null?void 0:I.createFlow({name:j.files[0].name,json:JSON.stringify(ro)}));z&&E(z.id,z.name??"Unknown name")}};j==null||j.addEventListener("change",R);const $=z=>{const W=(q==null?void 0:q.autoSave)??!0,K=!!(I!=null&&I.curWorkflow)&&O(I==null?void 0:I.curWorkflow);!W&&K&&(z.preventDefault(),z.returnValue="You have unsaved changes!",m("Please save or discard your changes before leaving, or your changes will be lost.",[{label:"Save",colorScheme:"teal",onClick:()=>{_()}},{label:"Discard",colorScheme:"red",onClick:()=>{k()}}]))};return window.addEventListener("beforeunload",$),Ho.addEventListener("executed",z=>{var W,K,V,ie,pe,le;(V=(K=(W=z.detail)==null?void 0:W.output)==null?void 0:K.images)==null||V.forEach(Oe=>{Oe.type==="output"&&S(Oe)}),(le=(pe=(ie=z.detail)==null?void 0:ie.output)==null?void 0:pe.gifs)==null||le.forEach(Oe=>{Oe.type==="output"&&S(Oe)})}),()=>{window.removeEventListener("keydown",U),window.removeEventListener("change",R),window.removeEventListener("beforeunload",$),clearInterval(y.current)}},[]),o||!u?null:x.jsx(vn.Provider,{value:{curFlowID:a,onDuplicateWorkflow:L,loadWorkflowID:A,discardUnsavedChanges:k,saveCurWorkflow:_,isDirty:d,loadNewWorkflow:B,loadFilePath:M,setRoute:r},children:x.jsx("div",{ref:h,className:"workspace_manager",children:x.jsx(co,{containerRef:h,children:x.jsxs(yo,{style:{width:"100vh",position:"absolute",top:0,left:0,lineHeight:"24px"},zIndex:1e3,draggable:!1,children:[x.jsx(Gd,{curFlowName:t,setCurFlowName:e,updatePanelPosition:X,positionStyle:u}),p&&x.jsx(g.Suspense,{children:x.jsx(Qd,{})}),p&&n==="recentFlows"&&x.jsx(g.Suspense,{children:x.jsx(Xd,{onClose:H,onClickNewFlow:()=>{B(),r("root")}})}),n==="gallery"&&x.jsx(Zd,{onclose:()=>r("root")})]})})})})}const kf=Object.freeze(Object.defineProperty({__proto__:null,default:tf},Symbol.toStringTag,{value:"Module"}));export{wf as $,Td as A,yo as B,zd as C,ho as D,mo as E,Gs as F,po as G,xt as H,Gt as I,Y as J,vf as K,ro as L,ha as M,mf as N,Bn as O,Rd as P,pf as Q,_f as R,Qc as S,Kn as T,ot as U,Ti as V,vn as W,Ld as X,df as Y,gd as Z,gf as _,af as a,yf as a0,Js as a1,dt as a2,Vi as a3,sl as a4,Ci as a5,Z as a6,hf as a7,rl as a8,ff as a9,Ri as aa,$t as ab,ia as ac,aa as ad,Bc as ae,pl as af,lf as ag,Lc as ah,de as ai,kf as aj,ol as b,uf as c,cf as d,Ee as e,vo as f,ar as g,q as h,Vs as i,_t as j,mu as k,da as l,ma as m,pa as n,wt as o,zi as p,Ud as q,xf as r,bf as s,Ln as t,fn as u,Xa as v,I as w,yd as x,Cd as y,Bd as z}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/RecentFilesDrawer-pKne9d7L.js","workspace_web/input.js","workspace_web/IconTrash-ijlGQSgv.js","workspace_web/chunk-JARCRF6W-po8hqWTL.js","workspace_web/chunk-24I2HV4N-zY_d-lSh.js","workspace_web/chunk-NTCQBYKE-HF59WNUB.js","workspace_web/GalleryModal-N7Rbh-G9.js","workspace_web/ModelManagerTopbar-NeKA5IAs.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} \ No newline at end of file diff --git a/dist/workspace_web/GalleryModal-N7Rbh-G9.js b/dist/workspace_web/GalleryModal-N7Rbh-G9.js deleted file mode 100644 index 66b80ae..0000000 --- a/dist/workspace_web/GalleryModal-N7Rbh-G9.js +++ /dev/null @@ -1 +0,0 @@ -import{f as X,h as Z,o as q,j as s,b as Q,d as V,r as u,F as re,C as ae,B as U,O as he,M as xe,G as ue,H as de,J as ge,K as fe,L as je}from"./input.js";import{p as we,e as N,F as j,s as D,I as f,_ as ve,$ as ye,a0 as pe,K as be,B as ee,g as se,T as _,j as C,A as te,x as ne,W as Ce,H as $,a1 as ke,C as Ie,f as Pe,a2 as Y,w as G}from"./App-EbJ8EOYb.js";import{a as ze,S as Oe,C as R,I as Me}from"./IconTrash-ijlGQSgv.js";import{I as oe}from"./chunk-JARCRF6W-po8hqWTL.js";import{V as le}from"./chunk-NTCQBYKE-HF59WNUB.js";import"/scripts/app.js";import"/scripts/api.js";var F=X(function(e,n){const i=Z("Link",e),{className:l,isExternal:o,...r}=q(e);return s.jsx(Q.a,{target:o?"_blank":void 0,rel:o?"noopener":void 0,ref:n,className:V("chakra-link",l),...r,__css:i})});F.displayName="Link";function Se(t,e=[]){const n=Object.assign({},t);for(const i of e)i in n&&delete n[i];return n}var _e=["h","minH","height","minHeight"],W=X((t,e)=>{const n=Z("Textarea",t),{className:i,rows:l,...o}=q(t),r=we(o),x=l?Se(n,_e):n;return s.jsx(Q.textarea,{ref:e,rows:l,...r,className:V("chakra-textarea",i),__css:x})});W.displayName="Textarea";var Fe=N("arrow-left","IconArrowLeft",[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]]),Ne=N("chevron-left","IconChevronLeft",[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]]),ie=N("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]),Te=N("pin-filled","IconPinFilled",[["path",{d:"M15.113 3.21l.094 .083l5.5 5.5a1 1 0 0 1 -1.175 1.59l-3.172 3.171l-1.424 3.797a1 1 0 0 1 -.158 .277l-.07 .08l-1.5 1.5a1 1 0 0 1 -1.32 .082l-.095 -.083l-2.793 -2.792l-3.793 3.792a1 1 0 0 1 -1.497 -1.32l.083 -.094l3.792 -3.793l-2.792 -2.793a1 1 0 0 1 -.083 -1.32l.083 -.094l1.5 -1.5a1 1 0 0 1 .258 -.187l.098 -.042l3.796 -1.425l3.171 -3.17a1 1 0 0 1 1.497 -1.26z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),Be=N("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);const Ee=({setMediaAct:t,media:e,currentNum:n})=>{const[i,l]=u.useState(0);u.useEffect(()=>{n!==void 0&&l(n)},[n]);const o=a=>{const d=(i+a+e.length)%e.length;l(d),t&&t(e[d])},r={width:"100%",height:"100%"},x={enter:a=>({x:a>0?500:-500,opacity:1}),center:{x:0,opacity:1},exit:a=>({x:a<0?500:-500,opacity:1})};return s.jsxs(j,{justifyContent:"center",alignItems:"center",position:"relative",width:r.width,height:r.height,overflow:"hidden",children:[s.jsx(re,{custom:i,children:e.map((a,d)=>s.jsx(ae.div,{custom:d-i,variants:x,initial:"enter",animate:"center",exit:"exit",transition:{x:{type:"spring",stiffness:300,damping:30},opacity:{duration:.2}},style:{position:"absolute",cursor:"pointer",width:"100%",height:"100%",display:d===i?"block":"none"},onClick:()=>{window.open(a.imageUrl)},children:D(a.imageUrl)?s.jsx(oe,{src:a.imageUrl,alt:`image-${a.id}`,width:"100%",height:"100%",objectFit:"contain"}):s.jsx("video",{style:{objectFit:"contain"},width:"100%",height:"100%",src:a.imageUrl,loop:!0,autoPlay:!0,muted:!0,children:s.jsx("track",{kind:"captions"})})},a.id))}),s.jsx(f,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Previous image",icon:s.jsx(Ne,{}),onClick:()=>o(-1),position:"absolute",left:"0",zIndex:"2"}),s.jsx(f,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Next image",icon:s.jsx(ze,{}),onClick:()=>o(1),position:"absolute",right:"0",zIndex:"2"})]})};function Ke(t){const e=t.split(".").pop();return fetch(t).then(n=>{if(!n.ok)throw new Error("Network response was not ok");return n.blob()}).then(async n=>{const i=t.split("/").pop()??"",l=new File([n],i);if(ve(t))return ye(l);if(e==="webp")return pe(l);const o=await be(l),r=JSON.parse(o==null?void 0:o.prompt),x=JSON.parse(o==null?void 0:o.workflow);return{prompt:r,workflow:x}})}const m=t=>{if(typeof t=="string")return t};function H(t){navigator.clipboard.writeText(t).then(function(){}).catch(function(e){console.error("Unable to copy to clipboard: ",e)})}function ce(t,e){var d,w,g,T,B,v,k,I,E,P,z,c,h,y,p,O,M,J;const n=m((T=(g=t==null?void 0:t[(w=(d=e==null?void 0:e.inputs)==null?void 0:d.model)==null?void 0:w[0]])==null?void 0:g.inputs)==null?void 0:T.ckpt_name)??m((k=(v=t==null?void 0:t[((B=Object.keys(t))==null?void 0:B.find(K=>{var b,S;return(S=(b=t[K])==null?void 0:b.inputs)==null?void 0:S.ckpt_name}))??""])==null?void 0:v.inputs)==null?void 0:k.ckpt_name)??"",i=m((z=(P=t==null?void 0:t[(E=(I=e==null?void 0:e.inputs)==null?void 0:I.positive)==null?void 0:E[0]])==null?void 0:P.inputs)==null?void 0:z.text),l=m((p=(y=t==null?void 0:t[(h=(c=e==null?void 0:e.inputs)==null?void 0:c.negative)==null?void 0:h[0]])==null?void 0:y.inputs)==null?void 0:p.text),o=["seed","sampler_name","scheduler","steps","cfg"].reduce((K,b)=>{var S,L;return(S=e==null?void 0:e.inputs)!=null&&S[b]?{...K,[b]:(L=e==null?void 0:e.inputs)==null?void 0:L[b]}:K},{}),r=(J=t==null?void 0:t[(M=(O=e==null?void 0:e.inputs)==null?void 0:O.latent_image)==null?void 0:M[0]])==null?void 0:J.inputs,x=r==null?void 0:r.width,a=r==null?void 0:r.height;return{ckptName:n,positive:i,negative:l,...o,width:x,height:a}}const $e=t=>{var l;const{prompt:e,workflow:n}=t;console.log(n);const i=e==null?void 0:e[((l=Object.keys(e))==null?void 0:l.find(o=>e[o].class_type==="KSampler"))??""];return ce(e,i)},me=({metaData:t})=>{const e=$e(t);return s.jsxs(le,{spacing:2,align:"stretch",children:[s.jsx(ee,{children:s.jsx(U,{size:"sm",onClick:()=>H(JSON.stringify(e)),children:"Copy all"})}),Object.keys(e??{}).map(n=>{var i,l;return s.jsxs(j,{gap:2,children:[s.jsxs(j,{gap:1,alignItems:"center",flexBasis:"200px",children:[n,s.jsx(f,{size:"xm",onClick:()=>H((e==null?void 0:e[n])??""),"aria-label":"copy text",icon:s.jsx(ie,{}),variant:"ghost"})]}),(i=e==null?void 0:e[n])!=null&&i.length&&((l=e==null?void 0:e[n])==null?void 0:l.length)>300?s.jsx(W,{readOnly:!0,value:e==null?void 0:e[n]}):s.jsx(se,{readOnly:!0,value:e==null?void 0:e[n]})]},`meta${n}`)})]})},Ae=t=>{var e,n,i;return((i=(n=(e=Object.keys(t==null?void 0:t.prompt))==null?void 0:e.filter)==null?void 0:n.call(e,l=>{var o,r;return((r=(o=t==null?void 0:t.prompt)==null?void 0:o[l])==null?void 0:r.class_type)==="KSampler"}))==null?void 0:i.length)>1},He=t=>{const{prompt:e}=t,n=Object.keys(e);return(n==null?void 0:n.filter(l=>{var o;return((o=e==null?void 0:e[l])==null?void 0:o.class_type)==="KSampler"})).reduce((l,o,r)=>{const x=e==null?void 0:e[o],a=ce(e,x),d=Object.keys(a).reduce((w,g)=>({...w,[`${g}_${r+1}`]:a==null?void 0:a[g]}),{});return{...l,...d}},{})},Ge=({metaData:t})=>{var n;const e=He(t);return s.jsxs(le,{spacing:2,align:"stretch",children:[s.jsx(ee,{children:s.jsx(U,{size:"sm",onClick:()=>H(JSON.stringify(e)),children:"Copy all"})}),(n=Object.keys(e??{}))==null?void 0:n.filter(i=>!!(e!=null&&e[i])).map(i=>{var l,o;return s.jsxs(j,{gap:2,children:[s.jsxs(j,{gap:1,alignItems:"center",flexBasis:"200px",children:[i,s.jsx(f,{size:"xm",onClick:()=>H((e==null?void 0:e[i])??""),"aria-label":"copy text",icon:s.jsx(ie,{}),variant:"ghost"})]}),(l=e==null?void 0:e[i])!=null&&l.length&&((o=e==null?void 0:e[i])==null?void 0:o.length)>300?s.jsx(W,{readOnly:!0,value:e==null?void 0:e[i]}):s.jsx(se,{readOnly:!0,value:e==null?void 0:e[i]})]},`meta${i}`)})]})},Re=({media:t})=>{const[e,n]=u.useState(),i=async l=>{try{const o=await Ke(`/workspace/view_media?filename=${l.localPath}`);n(o)}catch(o){console.log(o)}};return u.useEffect(()=>{t&&i(t)},[t]),s.jsxs(j,{overflowY:"auto",mb:4,direction:"column",gap:2,flex:1,children:[s.jsxs(Oe,{alignItems:"center",columns:2,spacing:2,children:[s.jsxs(j,{alignItems:"center",gap:1,children:[s.jsx(_,{children:t==null?void 0:t.localPath}),s.jsx(C,{label:"Donwload image from gallery",children:s.jsx(F,{href:`/workspace/view_media?filename=${t==null?void 0:t.localPath}`,download:t==null?void 0:t.localPath,children:s.jsx(f,{size:"sm",icon:s.jsx(te,{size:19}),"aria-label":"donwload image from gallery"})})})]}),s.jsxs(j,{gap:1,alignItems:"center",children:[s.jsx(_,{children:"Create Time:"}),s.jsx(_,{children:ne((t==null?void 0:t.createTime)??0,!0)})]})]}),(()=>{if(!t||!e)return null;const l={metaData:e,media:t};return Ae(e)&&s.jsx(Ge,{...l})||s.jsx(me,{...l})})()]})},Ue=({mediaList:t,media:e})=>{const[n,i]=u.useState();return u.useEffect(()=>{e&&i(e)},[e]),s.jsxs(j,{gap:3,h:"100%",children:[s.jsx(j,{flex:1,children:s.jsx(Ee,{media:t.map(l=>({id:l.id,imageUrl:`/workspace/view_media?filename=${l.localPath}`})),currentNum:t==null?void 0:t.findIndex(l=>l.id===(n==null?void 0:n.id)),setMediaAct:l=>i(t==null?void 0:t.find(o=>o.id===l.id))})}),s.jsx(Re,{media:n})]})},A=200;function Qe({onclose:t}){const{curFlowID:e,loadFilePath:n}=u.useContext(Ce),[i,l]=u.useState(""),[o,r]=u.useState([]),[x,a]=u.useState(!1),[d,w]=u.useState(""),[g,T]=u.useState([]),{showDialog:B}=he(),[v,k]=u.useState(),I=async()=>{var h;if(e==null)return;const c=await((h=Y)==null?void 0:h.listByWorkflowID(e));T(c??[])};if(u.useEffect(()=>{var c;I(),e&&((c=G)==null||c.get(e).then(h=>{h&&(l(h.name),h!=null&&h.coverMediaPath&&w(h==null?void 0:h.coverMediaPath))}))},[]),e==null)return null;const E=()=>{I()},P=c=>{if(x){o.includes(c.id)?r(o.filter(h=>h!==c.id)):r([...o,c.id]);return}k(c)},z=g.length>0&&o.length===g.length;return s.jsxs(xe,{isOpen:!0,onClose:t,blockScrollOnMount:!0,children:[s.jsx(ue,{}),s.jsxs(de,{width:"90%",maxWidth:"90vw",height:"90vh",children:[s.jsxs(ge,{children:[s.jsx($,{gap:2,mb:2,children:s.jsxs(ke,{size:"md",mr:2,children:[!!v&&s.jsx(f,{onClick:()=>k(void 0),variant:"ghost",mr:1,"aria-label":"back",icon:s.jsx(Fe,{})}),"Gallery - ",i]})}),x&&s.jsxs($,{gap:3,children:[s.jsx(R,{isChecked:z,onChange:()=>{r(z?[]:g.map(c=>c.id))},children:"All"}),s.jsxs(_,{fontSize:16,children:[o.length," Selected"]}),s.jsx(f,{size:"sm",icon:s.jsx(Ie,{size:19}),onClick:()=>a(!1),"aria-label":"cancel"})]})]}),s.jsx(fe,{}),s.jsx(je,{overflowY:"auto",children:v?s.jsx(Ue,{mediaList:g,media:v}):s.jsx($,{wrap:"wrap",children:g.map(c=>{if(c.localPath==null)return null;const h=D(c.localPath)?s.jsxs(F,{isExternal:!0,onClick:()=>P(c),position:"relative",children:[x&&s.jsx(R,{isChecked:o.includes(c.id),position:"absolute",top:2,left:2}),s.jsx(oe,{borderRadius:3,boxSize:A+"px",objectFit:"cover",src:`/workspace/view_media?filename=${c.localPath}`,alt:"workflow image renamed or moved from output folder"})]}):s.jsxs(F,{isExternal:!0,onClick:()=>P(c),children:[x&&s.jsx(R,{isChecked:o.includes(c.id)}),s.jsx("video",{width:A,height:A,src:`/workspace/view_media?filename=${c.localPath}`,loop:!0,autoPlay:!0,muted:!0,children:s.jsx("track",{kind:"captions"})})]}),y=d!=null&&d===c.localPath;return s.jsxs(Pe,{width:A,justifyContent:"space-between",mb:2,children:[s.jsx(C,{label:ne(c.createTime,!0),children:h}),s.jsx(C,{label:c.localPath,children:s.jsx(_,{color:"GrayText",noOfLines:1,children:c.localPath})}),s.jsxs($,{justifyContent:"space-between",hidden:x,children:[s.jsx(C,{label:"Set as cover",children:s.jsx(f,{size:"sm",variant:"ghost",icon:y?s.jsx(Te,{size:19}):s.jsx(Be,{size:19}),"aria-label":"set as cover",isActive:y,onClick:()=>{var p;(p=G)==null||p.updateFlow(e,{coverMediaPath:c.localPath}),w(c.localPath)}})}),s.jsx(U,{flexGrow:1,onClick:()=>B("How do you want to load this workflow?",[{label:"Load in new workflow",onClick:()=>{n(c.localPath)},colorScheme:"teal"},{label:"Overwrite current workflow",onClick:()=>n(c.localPath,!0),colorScheme:"red"}]),size:"sm",children:"Load"}),s.jsx(C,{label:"Donwload image from gallery",children:s.jsx(F,{href:`/workspace/view_media?filename=${c.localPath}`,download:c.localPath,children:s.jsx(f,{size:"sm",variant:"ghost",icon:s.jsx(te,{size:19}),"aria-label":"donwload image from gallery"})})}),s.jsx(C,{label:"Remove image from gallery",children:s.jsx(f,{size:"sm",variant:"ghost",icon:s.jsx(Me,{size:19}),"aria-label":"remove image from gallery",colorScheme:"red",onClick:async()=>{var O,M;confirm("Are you sure to remove this image from gallery? (won't delete image on your disk)")&&(await((O=Y)==null?void 0:O.delete(c.id)),y&&(await((M=G)==null?void 0:M.updateFlow(e,{coverMediaPath:void 0})),w("")),E())}})})]})]})})})})]})]})}export{Qe as default}; diff --git a/dist/workspace_web/IconTrash-ijlGQSgv.js b/dist/workspace_web/IconTrash-ijlGQSgv.js deleted file mode 100644 index 3775595..0000000 --- a/dist/workspace_web/IconTrash-ijlGQSgv.js +++ /dev/null @@ -1 +0,0 @@ -import{c as ge,r,j as u,b as E,u as X,t as Y,s as xe,g as s,k as m,m as ie,Y as Z,f as de,e as we,o as Ie,D as Se,d as Ee,z as Pe,a5 as Le}from"./input.js";import{a3 as Me,a4 as fe,e as me}from"./App-EbJ8EOYb.js";import{G as De}from"./chunk-JARCRF6W-po8hqWTL.js";var[lt,Re]=ge({name:"CheckboxGroupContext",strict:!1});function _e(e){const[o,t]=r.useState(e),[a,d]=r.useState(!1);return e!==o&&(d(!0),t(e)),a}function je(e){return u.jsx(E.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...e,children:u.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function Fe(e){return u.jsx(E.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...e,children:u.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function Ae(e){const{isIndeterminate:o,isChecked:t,...a}=e,d=o?Fe:je;return t||o?u.jsx(E.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:u.jsx(d,{...a})}):null}var Be={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},Ge=()=>typeof document<"u",ce=!1,G=null,g=!1,J=!1,Q=new Set;function ee(e,o){Q.forEach(t=>t(e,o))}var Ke=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function Te(e){return!(e.metaKey||!Ke&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function le(e){g=!0,Te(e)&&(G="keyboard",ee("keyboard",e))}function S(e){if(G="pointer",e.type==="mousedown"||e.type==="pointerdown"){g=!0;const o=e.composedPath?e.composedPath()[0]:e.target;let t=!1;try{t=o.matches(":focus-visible")}catch{}if(t)return;ee("pointer",e)}}function Ne(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function He(e){Ne(e)&&(g=!0,G="virtual")}function Ue(e){e.target===window||e.target===document||(!g&&!J&&(G="virtual",ee("virtual",e)),g=!1,J=!1)}function Ve(){g=!1,J=!0}function ue(){return G!=="pointer"}function We(){if(!Ge()||ce)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...t){g=!0,e.apply(this,t)},document.addEventListener("keydown",le,!0),document.addEventListener("keyup",le,!0),document.addEventListener("click",He,!0),window.addEventListener("focus",Ue,!0),window.addEventListener("blur",Ve,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",S,!0),document.addEventListener("pointermove",S,!0),document.addEventListener("pointerup",S,!0)):(document.addEventListener("mousedown",S,!0),document.addEventListener("mousemove",S,!0),document.addEventListener("mouseup",S,!0)),ce=!0}function $e(e){We(),e(ue());const o=()=>e(ue());return Q.add(o),()=>{Q.delete(o)}}function ze(e,o=[]){const t=Object.assign({},e);for(const a of o)a in t&&delete t[a];return t}function Oe(e={}){const o=Me(e),{isDisabled:t,isReadOnly:a,isRequired:d,isInvalid:i,id:v,onBlur:x,onFocus:P,"aria-describedby":b}=o,{defaultChecked:C,isChecked:L,isFocusable:W,onChange:$,isIndeterminate:f,name:M,value:K,tabIndex:T=void 0,"aria-label":D,"aria-labelledby":R,"aria-invalid":k,...z}=e,_=ze(z,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),j=X($),N=X(x),F=X(P),[w,O]=r.useState(!1),[y,H]=r.useState(!1),[A,te]=r.useState(!1),[B,I]=r.useState(!1);r.useEffect(()=>$e(O),[]);const h=r.useRef(null),[ne,he]=r.useState(!0),[pe,U]=r.useState(!!C),q=L!==void 0,c=q?L:pe,ae=r.useCallback(n=>{if(a||t){n.preventDefault();return}q||U(c?n.target.checked:f?!0:n.target.checked),j==null||j(n)},[a,t,c,q,f,j]);Y(()=>{h.current&&(h.current.indeterminate=!!f)},[f]),xe(()=>{t&&H(!1)},[t,H]),Y(()=>{const n=h.current;if(!(n!=null&&n.form))return;const l=()=>{U(!!C)};return n.form.addEventListener("reset",l),()=>{var p;return(p=n.form)==null?void 0:p.removeEventListener("reset",l)}},[]);const oe=t&&!W,se=r.useCallback(n=>{n.key===" "&&I(!0)},[I]),re=r.useCallback(n=>{n.key===" "&&I(!1)},[I]);Y(()=>{if(!h.current)return;h.current.checked!==c&&U(h.current.checked)},[h.current]);const ve=r.useCallback((n={},l=null)=>{const p=V=>{y&&V.preventDefault(),I(!0)};return{...n,ref:l,"data-active":s(B),"data-hover":s(A),"data-checked":s(c),"data-focus":s(y),"data-focus-visible":s(y&&w),"data-indeterminate":s(f),"data-disabled":s(t),"data-invalid":s(i),"data-readonly":s(a),"aria-hidden":!0,onMouseDown:m(n.onMouseDown,p),onMouseUp:m(n.onMouseUp,()=>I(!1)),onMouseEnter:m(n.onMouseEnter,()=>te(!0)),onMouseLeave:m(n.onMouseLeave,()=>te(!1))}},[B,c,t,y,w,A,f,i,a]),ke=r.useCallback((n={},l=null)=>({...n,ref:l,"data-active":s(B),"data-hover":s(A),"data-checked":s(c),"data-focus":s(y),"data-focus-visible":s(y&&w),"data-indeterminate":s(f),"data-disabled":s(t),"data-invalid":s(i),"data-readonly":s(a)}),[B,c,t,y,w,A,f,i,a]),ye=r.useCallback((n={},l=null)=>({..._,...n,ref:ie(l,p=>{p&&he(p.tagName==="LABEL")}),onClick:m(n.onClick,()=>{var p;ne||((p=h.current)==null||p.click(),requestAnimationFrame(()=>{var V;(V=h.current)==null||V.focus({preventScroll:!0})}))}),"data-disabled":s(t),"data-checked":s(c),"data-invalid":s(i)}),[_,t,c,i,ne]),be=r.useCallback((n={},l=null)=>({...n,ref:ie(h,l),type:"checkbox",name:M,value:K,id:v,tabIndex:T,onChange:m(n.onChange,ae),onBlur:m(n.onBlur,N,()=>H(!1)),onFocus:m(n.onFocus,F,()=>H(!0)),onKeyDown:m(n.onKeyDown,se),onKeyUp:m(n.onKeyUp,re),required:d,checked:c,disabled:oe,readOnly:a,"aria-label":D,"aria-labelledby":R,"aria-invalid":k?!!k:i,"aria-describedby":b,"aria-disabled":t,style:Be}),[M,K,v,ae,N,F,se,re,d,c,oe,a,D,R,k,i,b,t,T]),Ce=r.useCallback((n={},l=null)=>({...n,ref:l,onMouseDown:m(n.onMouseDown,qe),"data-disabled":s(t),"data-checked":s(c),"data-invalid":s(i)}),[c,t,i]);return{state:{isInvalid:i,isFocused:y,isChecked:c,isActive:B,isHovered:A,isIndeterminate:f,isDisabled:t,isReadOnly:a,isRequired:d},getRootProps:ye,getCheckboxProps:ve,getIndicatorProps:ke,getInputProps:be,getLabelProps:Ce,htmlProps:_}}function qe(e){e.preventDefault(),e.stopPropagation()}var Xe={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},Ye={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},Je=Z({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),Qe=Z({from:{opacity:0},to:{opacity:1}}),Ze=Z({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),et=de(function(o,t){const a=Re(),d={...a,...o},i=we("Checkbox",d),v=Ie(o),{spacing:x="0.5rem",className:P,children:b,iconColor:C,iconSize:L,icon:W=u.jsx(Ae,{}),isChecked:$,isDisabled:f=a==null?void 0:a.isDisabled,onChange:M,inputProps:K,...T}=v;let D=$;a!=null&&a.value&&v.value&&(D=a.value.includes(v.value));let R=M;a!=null&&a.onChange&&v.value&&(R=Se(a.onChange,M));const{state:k,getInputProps:z,getCheckboxProps:_,getLabelProps:j,getRootProps:N}=Oe({...T,isDisabled:f,isChecked:D,onChange:R}),F=_e(k.isChecked),w=r.useMemo(()=>({animation:F?k.isIndeterminate?`${Qe} 20ms linear, ${Ze} 200ms linear`:`${Je} 200ms linear`:void 0,fontSize:L,color:C,...i.icon}),[C,L,F,k.isIndeterminate,i.icon]),O=r.cloneElement(W,{__css:w,isIndeterminate:k.isIndeterminate,isChecked:k.isChecked});return u.jsxs(E.label,{__css:{...Ye,...i.container},className:Ee("chakra-checkbox",P),...N(),children:[u.jsx("input",{className:"chakra-checkbox__input",...z(K,t)}),u.jsx(E.span,{__css:{...Xe,...i.control},className:"chakra-checkbox__control",..._(),children:O}),b&&u.jsx(E.span,{className:"chakra-checkbox__label",...j(),__css:{marginStart:x,...i.label},children:b})]})});et.displayName="Checkbox";var tt=de(function(o,t){const{columns:a,spacingX:d,spacingY:i,spacing:v,minChildWidth:x,...P}=o,b=Pe(),C=x?at(x,b):ot(a);return u.jsx(De,{ref:t,gap:v,columnGap:d,rowGap:i,templateColumns:C,...P})});tt.displayName="SimpleGrid";function nt(e){return typeof e=="number"?`${e}px`:e}function at(e,o){return fe(e,t=>{const a=Le("sizes",t,nt(t))(o);return t===null?null:`repeat(auto-fit, minmax(${a}, 1fr))`})}function ot(e){return fe(e,o=>o===null?null:`repeat(${o}, minmax(0, 1fr))`)}var ut=me("chevron-right","IconChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]),dt=me("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);export{et as C,dt as I,tt as S,ut as a}; diff --git a/dist/workspace_web/InstallMissingModelsButton-CR0pkpRT.js b/dist/workspace_web/InstallMissingModelsButton-CR0pkpRT.js deleted file mode 100644 index d5bf925..0000000 --- a/dist/workspace_web/InstallMissingModelsButton-CR0pkpRT.js +++ /dev/null @@ -1 +0,0 @@ -import{r as l,j as e,B as p,P as f}from"./input.js";import{app as o}from"/scripts/app.js";import{G as x,I as j}from"./ModelManagerTopbar-NeKA5IAs.js";import{T as h,H as v,z as m,B as w,V as _,aa as M,F as y,a1 as E}from"./App-EbJ8EOYb.js";import{V as I}from"./chunk-NTCQBYKE-HF59WNUB.js";import{I as S,G as k}from"./chunk-JARCRF6W-po8hqWTL.js";import"/scripts/api.js";import"./chunk-24I2HV4N-zY_d-lSh.js";function b({model:s}){const[n,t]=l.useState([]),r=C(s.received_value),d=async()=>{const i=await(await fetch(`https://huggingface.co/api/models?limit=3&search=${r}&full=true`)).json(),a=[];i.slice(0,1).forEach(({modelId:c,siblings:g})=>{a.push({name:c,downloadUrl:`https://huggingface.co/${c}/resolve/main/`,url:`https://huggingface.co/${c}/tree/main`})}),t(a)};return l.useEffect(()=>{d()},[]),e.jsx(x,{p:3,shadow:"md",borderWidth:"1px",children:e.jsxs(I,{align:"start",children:[e.jsx(h,{children:s.class_type}),e.jsxs(v,{ml:3,children:[e.jsxs(h,{children:[s.input_name,": "]}),e.jsx(h,{color:"red.400",children:s.received_value})]}),n.map(({url:u,name:i})=>e.jsx(p,{size:"sm",onClick:a=>{a.stopPropagation(),window.open(u,"_blank")},leftIcon:e.jsx(S,{width:5,src:"https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.png"}),rightIcon:e.jsx(m,{size:20}),children:i})),e.jsx(p,{colorScheme:"blue",mt:5,iconSpacing:1,leftIcon:e.jsx(m,{size:20}),size:"sm",onClick:()=>{window.open(`https://civitai.com/search/models?sortBy=models_v5&query=${r}`,"_blank")},children:"Search in CivitAI"})]})})}function C(s){return s.replace(/^.*(\\|\/|\:)/,"").replace(/\.[^/.]+$/,"").replaceAll("_"," ").replace(/([A-Z])/g," $1").trim()}function z({onClose:s,missingModels:n}){l.useEffect(()=>(o.canvasEl.addEventListener("click",s),()=>{o.canvasEl.removeEventListener("click",s)}),[]);const t=440;return e.jsx(f,{children:e.jsx(w,{style:{width:t},children:e.jsxs(_,{width:t,height:"100vh",p:4,gap:2,position:"fixed",top:0,left:0,shadow:"xl",zIndex:1e3,overflowY:"auto",children:[e.jsx(M,{children:e.jsxs(y,{justifyContent:"space-between",alignContent:"center",children:[e.jsxs(E,{size:"md",mr:2,children:["Missing Models (",n.length,")"]}),e.jsx(j,{})]})}),e.jsx(k,{templateColumns:"1",gap:1,marginTop:2,children:n.map(r=>e.jsx(b,{model:r},r.received_value))})]})})})}function G({}){const[s,n]=l.useState(!1),[t,r]=l.useState([]);return l.useEffect(()=>{const d=o.queuePrompt;o.queuePrompt=async function(){try{await d.apply(o,[...arguments])}finally{const u=o.lastNodeErrors??{};r(Object.values(u).flatMap(i=>i.errors.filter(a=>a.type==="value_not_in_list").map(a=>{const{input_name:c,received_value:g}=a.extra_info;return{class_type:i.class_type,input_name:c,received_value:g}})))}}},[]),t.length===0?null:e.jsxs(e.Fragment,{children:[e.jsxs(p,{size:"sm","aria-label":"missing models",px:2,onClick:()=>n(!0),children:["Install Missing (",t.length,")"]}),s&&e.jsx(z,{onClose:()=>n(!1),missingModels:t})]})}export{G as default}; diff --git a/dist/workspace_web/ModelManagerTopbar-NeKA5IAs.js b/dist/workspace_web/ModelManagerTopbar-NeKA5IAs.js deleted file mode 100644 index c5e685a..0000000 --- a/dist/workspace_web/ModelManagerTopbar-NeKA5IAs.js +++ /dev/null @@ -1,7 +0,0 @@ -import{f as k,r as d,j as e,b as C,d as z,Y as N,c as ge,o as X,e as Z,g as xe,a6 as je,B as v,a2 as O,a7 as ye,G as ee,a8 as ve,J as te,L as se,N as _e,S as Se,M as we,H as be,K as Ce,P as Me,_ as Ie}from"./input.js";import{a5 as ke,a4 as Ee,p as Te,a6 as D,F as P,T as M,B as ne,V as oe,f as K,j as $,A as Ae,H as T,g as G,a7 as Le,a8 as ae,a1 as re,a9 as Pe,aa as De}from"./App-EbJ8EOYb.js";import{I as le,G as Re}from"./chunk-JARCRF6W-po8hqWTL.js";import{app as L}from"/scripts/app.js";import{api as R}from"/scripts/api.js";import{b as ie,P as Ne,c as Be,d as ze,e as Oe,f as Ke}from"./chunk-24I2HV4N-zY_d-lSh.js";var ce=k(function(s,r){const{spacing:o="0.5rem",spacingX:a,spacingY:n,children:i,justify:c,direction:l,align:u,className:h,shouldWrapChildren:p,...g}=s,_=d.useMemo(()=>p?d.Children.map(i,(j,y)=>e.jsx(U,{children:j},y)):i,[i,p]);return e.jsx(C.div,{ref:r,className:z("chakra-wrap",h),...g,children:e.jsx(C.ul,{className:"chakra-wrap__list",__css:{display:"flex",flexWrap:"wrap",justifyContent:c,alignItems:u,flexDirection:l,listStyleType:"none",gap:o,columnGap:a,rowGap:n,padding:"0"},children:_})})});ce.displayName="Wrap";var U=k(function(s,r){const{className:o,...a}=s;return e.jsx(C.li,{ref:r,__css:{display:"flex",alignItems:"flex-start"},className:z("chakra-wrap__listitem",o),...a})});U.displayName="WrapItem";function q(t){return Ee(t,s=>s==="auto"?"auto":`span ${s}/span ${s}`)}var de=k(function(s,r){const{area:o,colSpan:a,colStart:n,colEnd:i,rowEnd:c,rowSpan:l,rowStart:u,...h}=s,p=ke({gridArea:o,gridColumn:q(a),gridRow:q(l),gridColumnStart:n,gridColumnEnd:i,gridRowStart:u,gridRowEnd:c});return e.jsx(C.div,{ref:r,__css:p,...h})});de.displayName="GridItem";function Ge(t,s,r){return(t-s)*100/(r-s)}N({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});N({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var Ue=N({"0%":{left:"-40%"},"100%":{left:"100%"}}),We=N({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function Ve(t){const{value:s=0,min:r,max:o,valueText:a,getValueText:n,isIndeterminate:i,role:c="progressbar"}=t,l=Ge(s,r,o);return{bind:{"data-indeterminate":i?"":void 0,"aria-valuemax":o,"aria-valuemin":r,"aria-valuenow":i?void 0:s,"aria-valuetext":(()=>{if(s!=null)return typeof n=="function"?n(s,l):a})(),role:c},percent:l,value:s}}var[He,Ye]=ge({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Fe=k((t,s)=>{const{min:r,max:o,value:a,isIndeterminate:n,role:i,...c}=t,l=Ve({value:a,min:r,max:o,isIndeterminate:n,role:i}),h={height:"100%",...Ye().filledTrack};return e.jsx(C.div,{ref:s,style:{width:`${l.percent}%`,...c.style},...l.bind,...c,__css:h})}),ue=k((t,s)=>{var r;const{value:o,min:a=0,max:n=100,hasStripe:i,isAnimated:c,children:l,borderRadius:u,isIndeterminate:h,"aria-label":p,"aria-labelledby":g,"aria-valuetext":_,title:j,role:y,...f}=X(t),m=Z("Progress",t),I=u??((r=m.track)==null?void 0:r.borderRadius),E={animation:`${We} 1s linear infinite`},x={...!h&&i&&c&&E,...h&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${Ue} 1s ease infinite normal none running`}},S={overflow:"hidden",position:"relative",...m.track};return e.jsx(C.div,{ref:s,borderRadius:I,__css:S,...f,children:e.jsxs(He,{value:m,children:[e.jsx(Fe,{"aria-label":p,"aria-labelledby":g,"aria-valuetext":_,min:a,max:n,value:o,isIndeterminate:h,css:x,borderRadius:I,title:j,role:y}),l]})})});ue.displayName="Progress";var pe=k(function(s,r){const{children:o,placeholder:a,className:n,...i}=s;return e.jsxs(C.select,{...i,ref:r,className:z("chakra-select",n),children:[a&&e.jsx("option",{value:"",children:a}),o]})});pe.displayName="SelectField";function $e(t,s){const r={},o={};for(const[a,n]of Object.entries(t))s.includes(a)?r[a]=n:o[a]=n;return[r,o]}var W=k((t,s)=>{var r;const o=Z("Select",t),{rootProps:a,placeholder:n,icon:i,color:c,height:l,h:u,minH:h,minHeight:p,iconColor:g,iconSize:_,...j}=X(t),[y,f]=$e(j,je),m=Te(f),I={width:"100%",height:"fit-content",position:"relative",color:c},E={paddingEnd:"2rem",...o.field,_focus:{zIndex:"unset",...(r=o.field)==null?void 0:r._focus}};return e.jsxs(C.div,{className:"chakra-select__wrapper",__css:I,...y,...a,children:[e.jsx(pe,{ref:s,height:u??l,minH:h??p,placeholder:n,...m,__css:E,children:t.children}),e.jsx(he,{"data-disabled":xe(m.disabled),...(g||c)&&{color:g||c},__css:o.icon,..._&&{fontSize:_},children:i})]})});W.displayName="Select";var qe=t=>e.jsx("svg",{viewBox:"0 0 24 24",...t,children:e.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),Je=C("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),he=t=>{const{children:s=e.jsx(qe,{}),...r}=t,o=d.cloneElement(s,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return e.jsx(Je,{...r,className:"chakra-select__icon-wrapper",children:d.isValidElement(s)?o:null})};he.displayName="SelectIcon";function Qe({selectedModel:t,setSelectedModel:s,modelTypeList:r}){const o=a=>{s(a)};return e.jsx(ce,{children:r.map(a=>e.jsx(U,{children:e.jsx(v,{colorScheme:"blue",variant:t===a?"solid":"outline",onClick:()=>o(a),size:"sm",children:a})},a))})}const Xe={checkpoints:"CheckpointLoaderSimple",vae:"VAELoader",loras:"LoraLoader",controlnet:"ControlNetLoader",upscale_models:"UpscaleModelLoader"};function Ze({data:t}){const[s,r]=d.useState("https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/27fd7433-cb0a-4a87-88c1-21ccb2b1a842/width=450/00060-881622046.jpeg"),[o,a]=d.useState(!t.file_hash),[n,i]=d.useState();d.useEffect(()=>{a(!t.file_hash),c()},[t.file_hash]);const c=async()=>{var h,p;const u=await D.models.get(t.model_name+"@"+t.model_type);if(u!=null)i(u),(h=u.imageUrl)!=null&&h.length&&r(u.imageUrl);else if(t.file_hash!=null)try{const g=`https://civitai.com/api/v1/model-versions/by-hash/${t.file_hash}`,j=await(await fetch(g)).json(),y=(p=j==null?void 0:j.images)==null?void 0:p.at(0),f=y==null?void 0:y.url;f&&r(f),D.models.add({id:t.model_name+"@"+t.model_type,fileHash:t.file_hash,fileFolder:t.model_type,fileName:t.model_name,civitModelID:j.modelId,civitModelVersionID:j.id,imageUrl:f??null})}catch{}},l=u=>{const h=Xe[t.model_type];h&&(u.dataTransfer.setData("eventName","WorkspaceManagerAddNode"),u.dataTransfer.setData("modelRelativePath",t.model_name+t.model_extension),u.dataTransfer.setData("nodeType",h))};return o?e.jsxs(P,{position:"relative",borderRadius:4,bg:"rgba(0, 0, 0, 0.5)",height:178,justifyContent:"center",alignItems:"center",children:[e.jsx(O,{}),e.jsx(M,{position:"absolute",bottom:"0",left:"0",right:"0",bg:"rgba(0, 0, 0, 0.5)",color:"white",textAlign:"center",p:"0",fontSize:12,borderBottomRightRadius:4,borderBottomLeftRadius:4,children:t.model_name})]}):e.jsxs(ne,{position:"relative",borderRadius:4,draggable:!0,onDragStart:l,children:[e.jsx(le,{src:s,draggable:!1,boxSize:"100%",height:178,objectFit:"cover",borderRadius:4,onClick:()=>{(n==null?void 0:n.civitModelID)==null||(n==null?void 0:n.civitModelVersionID)==null||window.open(`https://civitai.com/models/${n==null?void 0:n.civitModelID}?modelVersionId=${n==null?void 0:n.civitModelVersionID}`)}}),e.jsx(M,{position:"absolute",bottom:"0",left:"0",right:"0",bg:"rgba(0, 0, 0, 0.5)",color:"white",textAlign:"center",p:"0",fontSize:12,borderBottomRightRadius:4,borderBottomLeftRadius:4,children:t.model_name})]})}function et({list:t}){return e.jsx(Re,{templateColumns:"repeat(3, 1fr)",gap:1,marginTop:2,children:t.map(s=>e.jsx(de,{children:e.jsx(Ze,{data:s})},s.model_name))})}const tt=async t=>{window.dispatchEvent(new CustomEvent("model_install_message",{detail:`Installing model ${t.filename} to ${t.save_path}, check progress in the server console.`}));try{const r=await(await R.fetchApi("/model_manager/install_model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).text();window.dispatchEvent(new CustomEvent("model_install_message",{detail:r}))}catch(s){console.error("Failed to connect to the server:",s)}};function J(t,s=1){const a=t/1024;return a>=1024?(a/1024).toFixed(s)+" GB":a.toFixed(s)+" MB"}const Q=280;function st({model:t,onClickInstallModel:s,installing:r}){var p,g,_,j,y;const o=(j=(_=(g=(p=t.modelVersions)==null?void 0:p.at(0))==null?void 0:g.images)==null?void 0:_.at(0))==null?void 0:j.url,a=t.modelVersions,n=a==null?void 0:a.map(f=>{var m;return(m=f==null?void 0:f.files)==null?void 0:m.at(0)}),[i,c]=d.useState(((y=n==null?void 0:n.at(0))==null?void 0:y.name)??""),l=n==null?void 0:n.find(f=>(f==null?void 0:f.name)===i),u=()=>{window.open(`https://civitai.com/models/${t.id}`)},h=d.useCallback(()=>{if(l==null){console.error("no file is find by name",i);return}s(l,t)},[i]);return e.jsxs(oe,{width:Q,justifyContent:"space-between",mb:2,gap:1,children:[e.jsx(le,{borderRadius:3,boxSize:Q+"px",objectFit:"cover",src:o,alt:"model cover image",cursor:"pointer",onClick:()=>u()}),e.jsxs(K,{p:1,children:[e.jsx($,{label:t.name,children:e.jsx(M,{fontWeight:500,noOfLines:1,children:t.name})}),e.jsxs(P,{justifyContent:"space-between",alignItems:"center",children:[e.jsx(v,{borderRadius:14,noOfLines:1,size:"xs",colorScheme:"teal",maxWidth:"40%",flexShrink:1,variant:"outline",px:1,cursor:"text",children:e.jsx(M,{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:t.type})}),e.jsx(v,{leftIcon:e.jsx(Ae,{size:18}),iconSpacing:1,borderRadius:10,size:"sm",py:1,colorScheme:"teal",type:"submit",onClick:()=>h(),isDisabled:!!(i&&r.includes(i)),children:"Install"})]}),e.jsxs(T,{children:[e.jsx(W,{size:"md",style:{paddingLeft:4},onChange:f=>{c(f.target.value)},children:n==null?void 0:n.map(f=>{const m=f==null?void 0:f.name;return m?e.jsx("option",{value:m,style:{padding:0},children:m},f.id):null})}),(l==null?void 0:l.sizeKB)&&e.jsx($,{label:J(l.sizeKB),children:e.jsx(M,{flexShrink:1,noOfLines:1,width:"40%",children:J(l.sizeKB)})})]})]})]})}function nt({searchQuery:t,setSearchQuery:s,onSearch:r}){return e.jsxs(P,{gap:1,alignItems:"center",grow:1,children:[e.jsx(G,{placeholder:"Search models in CivitAI",width:"60%",value:t,onChange:o=>s(o.target.value),onKeyUp:o=>{o.code==="Enter"&&r()}}),e.jsx(v,{size:"sm",onClick:()=>r(),colorScheme:"teal",children:"Search"})]})}function ot({isOpen:t,onClose:s,selectFolder:r}){const[o,a]=d.useState(""),[n,i]=d.useState([]),[c,l]=d.useState(""),u=d.useRef(null);d.useEffect(()=>{h()},[]);const h=async()=>{const p=await Le();p&&i(p.filter(g=>!["custom_nodes","config","saved_prompts"].includes(g)))};return e.jsx(ye,{isOpen:t,leastDestructiveRef:u,onClose:s,children:e.jsx(ee,{children:e.jsxs(ve,{children:[e.jsx(te,{fontSize:"lg",fontWeight:"bold",children:"Choose Folder"}),e.jsxs(se,{children:[e.jsx(M,{children:"Model download url"}),e.jsx(G,{placeholder:"https://civitai.com/api/download/models/311399",onChange:p=>l(p.target.value),value:c}),e.jsx(W,{placeholder:"Select option",value:o,onChange:p=>a(p.target.value),children:n.map(p=>e.jsx("option",{value:p,children:p},p))})]}),e.jsxs(_e,{children:[e.jsx(v,{ref:u,onClick:s,children:"Cancel"}),e.jsx(v,{onClick:()=>r(o,c),ml:3,isDisabled:c.length===0,children:"Confirm"})]})]})})})}function at(){const{colorMode:t}=Se(),s=ie(),[r,o]=d.useState([]);return d.useEffect(()=>{R.addEventListener("download_progress",a=>{o(a.detail)}),R.addEventListener("download_error",a=>{s({title:"Download Error",description:a.detail,status:"error",duration:4e3,isClosable:!0})})},[]),e.jsx(K,{spacing:5,pos:"absolute",bottom:"0",left:"0",width:"50%",zIndex:80,backgroundColor:t==="light"?"white":"#242424",paddingX:5,children:r.map(({save_path:a,progress:n})=>e.jsxs(T,{children:[e.jsx(M,{fontSize:16,width:"40%",children:a.replace(/^.*[\\/]/,"")}),e.jsx(ue,{isIndeterminate:!n,hasStripe:!0,width:"50%",value:n}),e.jsxs(M,{fontSize:16,width:"10%",children:[n.toFixed(1),"%"]})]},a))})}const me="WORKSPACE_CIVIT_API_KEY_STORAGE_KEY";function rt(){return localStorage.getItem(me)}function lt(t){localStorage.setItem(me,t)}function it(){const[t,s]=d.useState(""),{onOpen:r,onClose:o,isOpen:a}=ae(),n=()=>{lt(t),o()};return e.jsxs(Ne,{isOpen:a,onOpen:r,onClose:o,placement:"right",closeOnBlur:!1,children:[e.jsx(Be,{children:e.jsx(v,{size:"sm",py:1,mr:8,children:"Set API Key"})}),e.jsxs(ze,{p:5,children:[e.jsx(Oe,{}),e.jsx(Ke,{}),e.jsxs(K,{spacing:4,children:[e.jsx(G,{value:t,onChange:i=>s(i.target.value),placeholder:"API Key"}),e.jsx(v,{size:"sm",py:1,mr:8,onClick:n,children:"Save"})]})]})]})}const ct=["Checkpoint","TextualInversion","Hypernetwork","LORA","Controlnet","Upscaler","VAE"],dt=2,ut={Checkpoint:"checkpoints",TextualInversion:"embeddings",Hypernetwork:"hypernetworks",LORA:"loras",Controlnet:"controlnet",Upscaler:"upscale_models",VAE:"vae"};function pt({onclose:t,searchQuery:s="",modelType:r}){const[o,a]=d.useState([]),[n,i]=d.useState(!1),[c,l]=d.useState(r),u=ie(),[h,p]=d.useState([]),[g,_]=d.useState(s),{isOpen:j,onOpen:y,onClose:f}=ae(),m=d.useRef(),I=d.useCallback(async()=>{var F;i(!0);const x={limit:"30",nsfw:"false"};g!==""&&(x.query=g),c!=null&&(x.types=c);const w=`https://civitai.com/api/v1/models?${new URLSearchParams(x).toString()}`,b=await((F=D.cache)==null?void 0:F.get(w));if((b==null?void 0:b.value)!=null)try{const{data:B,timestamp:fe}=JSON.parse(b==null?void 0:b.value);if((Date.now()-fe)/(1e3*60*60*24){var b;if(!((b=m.current)!=null&&b.downloadUrl)){console.error("file.downloadUrl is null");return}if(!m.current.name&&(m.current.name=m.current.downloadUrl.split("/").pop(),!m.current.name)){console.error("file.downloadUrl is malformed");return}u({title:"Installing...",description:m.current.name,status:"info",duration:4e3,isClosable:!0}),m.current.name!=null&&p(Y=>{var A;return[...Y,((A=m.current)==null?void 0:A.name)??""]});let S=m.current.downloadUrl;const w=rt();w&&(S+=`?token=${w}`),tt({filename:m.current.name,name:m.current.name,save_path:x,url:S}),f()},V=(x,S)=>{const w=ut[S.type];m.current=x,w==null?y():E(w)},H=()=>{y()};return d.useEffect(()=>{I()},[c]),e.jsxs(e.Fragment,{children:[e.jsxs(we,{isOpen:!0,onClose:t,blockScrollOnMount:!0,children:[e.jsx(ee,{}),e.jsxs(be,{width:"90%",maxWidth:"90vw",height:"90vh",children:[e.jsxs(te,{children:[e.jsxs(T,{gap:2,mb:2,alignItems:"center",children:[e.jsx(re,{size:"md",mr:2,children:"Models"}),e.jsx(nt,{searchQuery:g,setSearchQuery:_,onSearch:I}),e.jsx(v,{size:"sm",py:1,mr:8,onClick:H,children:"Custom URL Install"}),e.jsx(it,{})]}),e.jsxs(T,{gap:2,mb:2,wrap:"wrap",children:[e.jsx(v,{size:"sm",py:1,onClick:()=>{l(void 0)},isActive:c==null,children:"All"}),ct.map(x=>e.jsx(v,{size:"sm",py:1,isActive:c===x,onClick:()=>{l(x)},children:x},x))]}),n&&e.jsx(O,{thickness:"4px",emptyColor:"gray.200",color:"pink.500",size:"lg"})]}),e.jsx(Ce,{}),e.jsxs(se,{overflowY:"auto",children:[e.jsx(T,{wrap:"wrap",children:o==null?void 0:o.map(x=>e.jsx(st,{model:x,onClickInstallModel:V,installing:h},x.id))}),e.jsx(at,{})]})]})]}),e.jsx(ot,{isOpen:j,onClose:f,selectFolder:(x,S)=>{m.current={id:0,downloadUrl:S},E(x)}})]})}function ht(){const[t,s]=d.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(v,{size:"sm",colorScheme:"teal",onClick:()=>s(!0),children:"Install Models"}),t&&e.jsx(pt,{modelType:"Checkpoint",onclose:()=>s(!1)})]})}const mt=()=>{const[t,s]=d.useState(["checkpoints"]),[r,o]=d.useState([]),[a,n]=d.useState(!0);d.useEffect(()=>{i(),R.addEventListener("model_list",l=>{c(l.detail)})},[]);const i=async()=>{const l=await Pe();c(l)},c=async l=>{if(!l)return;n(!1);const u=Array.from(new Set(l.map(p=>p.model_type))),h=u.indexOf("checkpoints");h>=0&&u.splice(h,1),u.unshift("checkpoints"),s(u),o(l)};return{modelTypeList:t,modelsList:r,loading:a}};function ft({onClose:t}){const[s,r]=d.useState("checkpoints"),{loading:o,modelTypeList:a,modelsList:n}=mt(),[i,c]=d.useState([]);d.useEffect(()=>{const h=n.filter(p=>p.model_type===s);c(h)},[s,n]),d.useEffect(()=>(L.canvasEl.addEventListener("click",t),()=>{L.canvasEl.removeEventListener("click",t)}),[]);const l=440,u=()=>e.jsxs(e.Fragment,{children:[e.jsx(Qe,{modelTypeList:a,setSelectedModel:r,selectedModel:s}),e.jsx(et,{list:i}),o&&e.jsx(P,{justifyContent:"center",alignItems:"center",height:"100%",children:e.jsx(O,{})})]});return e.jsx(Me,{children:e.jsx(ne,{style:{width:l},children:e.jsxs(oe,{width:l,height:"100vh",p:4,gap:2,position:"fixed",top:0,left:0,shadow:"xl",zIndex:1e3,overflowY:"auto",children:[e.jsx(De,{children:e.jsxs(P,{justifyContent:"space-between",alignContent:"center",children:[e.jsx(re,{size:"md",mr:2,children:"Models"}),e.jsx(ht,{})]})}),u()]})})})}const gt=d.lazy(()=>Ie(()=>import("./InstallMissingModelsButton-CR0pkpRT.js"),__vite__mapDeps([0,1,2,3,4,5,6])));function xt({}){const[t,s]=d.useState(!1),r=async o=>{if(o.dataTransfer.getData("eventName")!=="WorkspaceManagerAddNode")return;const n=o.dataTransfer.getData("modelRelativePath"),i=o.dataTransfer.getData("nodeType"),c=LiteGraph.createNode(i);c.pos=[o.canvasX,o.canvasY],c.configure({widgets_values:[n]}),L.graph.add(c)};return d.useEffect(()=>(L.canvasEl.addEventListener("drop",r),()=>{L.canvasEl.removeEventListener("drop",r)}),[]),e.jsxs(T,{position:"fixed",top:2,right:2,gap:2,children:[e.jsx(gt,{}),e.jsx(v,{size:"sm",colorScheme:"blue","aria-label":"My models",onClick:()=>s(!0),px:1,children:"Models"}),t&&e.jsx(ft,{onClose:()=>s(!1)})]})}const Ct=Object.freeze(Object.defineProperty({__proto__:null,default:xt},Symbol.toStringTag,{value:"Module"}));export{de as G,ht as I,Ct as M}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/InstallMissingModelsButton-CR0pkpRT.js","workspace_web/input.js","workspace_web/App-EbJ8EOYb.js","workspace_web/assets/App-JXePnJiV.css","workspace_web/chunk-NTCQBYKE-HF59WNUB.js","workspace_web/chunk-JARCRF6W-po8hqWTL.js","workspace_web/chunk-24I2HV4N-zY_d-lSh.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} \ No newline at end of file diff --git a/dist/workspace_web/RecentFilesDrawer-pKne9d7L.js b/dist/workspace_web/RecentFilesDrawer-pKne9d7L.js deleted file mode 100644 index d642a4b..0000000 --- a/dist/workspace_web/RecentFilesDrawer-pKne9d7L.js +++ /dev/null @@ -1,18 +0,0 @@ -import{f as Fe,h as Vn,o as Bn,j as w,b as Te,d as Ye,Q as Gr,r as F,z as Pt,q as Nn,c as Yr,e as Be,I as Ke,M as mt,G as vt,H as gt,J as bt,K as yt,L as xt,B as xe,S as Jt,T as et,U as Kr,V as Xr,W as qr,X as $n,Y as Jr,Z as ie,$ as ae,a0 as Qr,a1 as Un,R as se,a2 as ei,a3 as pn,a4 as lt,l as ti,N as ni,O as ri}from"./input.js";import{b as ii,a as ai,u as si,c as oi,d as li,S as ui,M as Hn,e as Ee,H as ye,I as be,t as $e,f as Ue,T as we,g as it,h as Re,i as ci,B as de,F as tt,j as Me,k as mn,v as di,l as at,m as Wn,n as Mt,o as Le,p as hi,R as He,w as ke,q as Qt,W as en,r as rt,s as fi,x as Zn,y as pi,z as mi,A as vi,C as tn,D as gi,E as bi,G as yi,J as Ze,K as xi,L as wi,N as Si,O as Rt,P as nn,Q as Ut,U as vn,V as _i,X as Ci,Y as ki,Z as Ft}from"./App-EbJ8EOYb.js";import{I as rn,C as jt,S as Oi,a as Ii}from"./IconTrash-ijlGQSgv.js";import{u as Gn,a as Yn,b as Ei,P as Kn,c as Xn,d as qn,e as Jn,f as Qn}from"./chunk-24I2HV4N-zY_d-lSh.js";import{V as gn}from"./chunk-NTCQBYKE-HF59WNUB.js";import{I as Pi}from"./chunk-JARCRF6W-po8hqWTL.js";import{app as ut}from"/scripts/app.js";import"/scripts/api.js";var er=Fe(function(e,n){const{borderLeftWidth:a,borderBottomWidth:t,borderTopWidth:i,borderRightWidth:s,borderWidth:r,borderStyle:l,borderColor:u,...f}=Vn("Divider",e),{className:p,orientation:y="horizontal",__css:h,...g}=Bn(e),d={vertical:{borderLeftWidth:a||s||r||"1px",height:"100%"},horizontal:{borderBottomWidth:t||i||r||"1px",width:"100%"}};return w.jsx(Te.hr,{ref:n,"aria-orientation":y,...g,__css:{...f,border:"0",borderColor:u,borderStyle:l,...d[y],...h},className:Ye("chakra-divider",p)})});er.displayName="Divider";function Mi(o,e={}){const{ssr:n=!0,fallback:a}=e,{getWindow:t}=Gr(),i=Array.isArray(o)?o:[o];let s=Array.isArray(a)?a:[a];s=s.filter(u=>u!=null);const[r,l]=F.useState(()=>i.map((u,f)=>({media:u,matches:n?!!s[f]:t().matchMedia(u).matches})));return F.useEffect(()=>{const u=t();l(i.map(y=>({media:y,matches:u.matchMedia(y).matches})));const f=i.map(y=>u.matchMedia(y)),p=y=>{l(h=>h.slice().map(g=>g.media===y.media?{...g,matches:y.matches}:g))};return f.forEach(y=>{typeof y.addListener=="function"?y.addListener(p):y.addEventListener("change",p)}),()=>{f.forEach(y=>{typeof y.removeListener=="function"?y.removeListener(p):y.removeEventListener("change",p)})}},[t]),r.map(u=>u.matches)}function ji(o,e,n=ii){let a=Object.keys(o).indexOf(e);if(a!==-1)return o[e];let t=n.indexOf(e);for(;t>=0;){const i=n[t];if(o.hasOwnProperty(i)){a=t;break}t-=1}if(a!==-1){const i=n[a];return o[i]}}function Di(o){var e,n;const a=Nn(o)?o:{fallback:o??"base"},i=Pt().__breakpoints.details.map(({minMaxQuery:u,breakpoint:f})=>({breakpoint:f,query:u.replace("@media screen and ","")})),s=i.map(u=>u.breakpoint===a.fallback),l=Mi(i.map(u=>u.query),{fallback:s,ssr:a.ssr}).findIndex(u=>u==!0);return(n=(e=i[l])==null?void 0:e.breakpoint)!=null?n:a.fallback}function zi(o,e){var n;const a=Nn(e)?e:{fallback:e??"base"},t=Di(a),i=Pt();if(!t)return;const s=Array.from(((n=i.__breakpoints)==null?void 0:n.keys)||[]),r=Array.isArray(o)?Object.fromEntries(Object.entries(ai(o,s)).map(([l,u])=>[l,u])):o;return ji(r,t,s)}var tr=Fe((o,e)=>{const{title:n,children:a,className:t,...i}=o,s=Ye("chakra-menu__group__title",t),r=si();return w.jsxs("div",{ref:e,className:"chakra-menu__group",role:"group",children:[n&&w.jsx(Te.p,{className:s,...i,__css:r.groupTitle,children:n}),a]})});tr.displayName="MenuGroup";var nr=o=>{const{className:e,title:n,...a}=o,t=oi(a);return w.jsx(tr,{title:n,className:Ye("chakra-menu__option-group",e),...t})};nr.displayName="MenuOptionGroup";var Ri=o=>w.jsx("svg",{viewBox:"0 0 14 14",width:"1em",height:"1em",...o,children:w.jsx("polygon",{fill:"currentColor",points:"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039"})}),an=Fe((o,e)=>{const{icon:n,iconSpacing:a="0.75rem",...t}=o,i=li(t,e);return w.jsxs(ui,{...i,className:Ye("chakra-menu__menuitem-option",t.className),children:[n!==null&&w.jsx(Hn,{fontSize:"0.8em",marginEnd:a,opacity:o.isChecked?1:0,children:n||w.jsx(Ri,{})}),w.jsx("span",{style:{flex:1},children:i.children})]})});an.id="MenuItemOption";an.displayName="MenuItemOption";var rr=Fe(function(e,n){const{getHeaderProps:a}=Gn(),t=Yn();return w.jsx(Te.header,{...a(e,n),className:Ye("chakra-popover__header",e.className),__css:t.header})});rr.displayName="PopoverHeader";var sn=Fe(function(e,n){const{getBodyProps:a}=Gn(),t=Yn();return w.jsx(Te.div,{...a(e,n),className:Ye("chakra-popover__body",e.className),__css:t.body})});sn.displayName="PopoverBody";var[Fi,ir]=Yr({name:"TagStylesContext",errorMessage:`useTagStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),on=Fe((o,e)=>{const n=Be("Tag",o),a=Bn(o),t={display:"inline-flex",verticalAlign:"top",alignItems:"center",maxWidth:"100%",...n.container};return w.jsx(Fi,{value:n,children:w.jsx(Te.span,{ref:e,...a,__css:t})})});on.displayName="Tag";var Ti=Fe((o,e)=>{const n=ir();return w.jsx(Te.span,{ref:e,noOfLines:1,...o,__css:n.label})});Ti.displayName="TagLabel";var Ai=Fe((o,e)=>w.jsx(Ke,{ref:e,verticalAlign:"top",marginEnd:"0.5rem",...o}));Ai.displayName="TagLeftIcon";var Li=Fe((o,e)=>w.jsx(Ke,{ref:e,verticalAlign:"top",marginStart:"0.5rem",...o}));Li.displayName="TagRightIcon";var ar=o=>w.jsx(Ke,{verticalAlign:"inherit",viewBox:"0 0 512 512",...o,children:w.jsx("path",{fill:"currentColor",d:"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z"})});ar.displayName="TagCloseIcon";var Vi=Fe((o,e)=>{const{isDisabled:n,children:a,...t}=o,s={display:"flex",alignItems:"center",justifyContent:"center",outline:"0",...ir().closeButton};return w.jsx(Te.button,{ref:e,"aria-label":"close",...t,type:"button",disabled:n,__css:s,children:a||w.jsx(ar,{})})});Vi.displayName="TagCloseButton";var Bi=Ee("chevron-up","IconChevronUp",[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]]),Ni=Ee("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),sr=Ee("file-import","IconFileImport",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M5 13v-8a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-5.5m-9.5 -2h7m-3 -3l3 3l-3 3",key:"svg-1"}]]),or=Ee("folder-plus","IconFolderPlus",[["path",{d:"M12 19h-7a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v3.5",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]),$i=Ee("list-check","IconListCheck",[["path",{d:"M3.5 5.5l1.5 1.5l2.5 -2.5",key:"svg-0"}],["path",{d:"M3.5 11.5l1.5 1.5l2.5 -2.5",key:"svg-1"}],["path",{d:"M3.5 17.5l1.5 1.5l2.5 -2.5",key:"svg-2"}],["path",{d:"M11 6l9 0",key:"svg-3"}],["path",{d:"M11 12l9 0",key:"svg-4"}],["path",{d:"M11 18l9 0",key:"svg-5"}]]),Ui=Ee("menu-2","IconMenu2",[["path",{d:"M4 6l16 0",key:"svg-0"}],["path",{d:"M4 12l16 0",key:"svg-1"}],["path",{d:"M4 18l16 0",key:"svg-2"}]]),Hi=Ee("moon","IconMoon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z",key:"svg-0"}]]),Wi=Ee("pencil","IconPencil",[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]]),Zi=Ee("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),Gi=Ee("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),Yi=Ee("sun","IconSun",[["path",{d:"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]),lr=Ee("tag","IconTag",[["path",{d:"M7.5 7.5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3z",key:"svg-1"}]]);function Ki({onclose:o}){const[e,n]=F.useState([]),a=async()=>{var i;const t=await((i=$e)==null?void 0:i.listAll());n(t??[])};return F.useEffect(()=>{a()},[]),w.jsxs(mt,{isOpen:!0,onClose:o,children:[w.jsx(vt,{}),w.jsxs(gt,{children:[w.jsx(bt,{children:"My Tags"}),w.jsx(yt,{}),w.jsx(xt,{children:e.map(t=>w.jsxs(ye,{children:[w.jsx(on,{children:t.name}),w.jsx(be,{onClick:async()=>{var i;await((i=$e)==null?void 0:i.delete(t.name)),a()},"aria-label":"delete-tag",colorScheme:"red",variant:"ghost",icon:w.jsx(rn,{})})]}))})]})]})}function Xi(){const[o,e]=F.useState(""),[n,a]=F.useState(!1),t=()=>a(!0),i=()=>a(!1),s=async l=>{var f;l.preventDefault();let u="";l.ctrlKey&&(u+="Control+"),l.shiftKey&&(u+="Shift+"),l.altKey&&(u+="Alt+"),u.length>0&&!["Control","Shift","Alt"].includes(l.key)&&(u+=l.key.toUpperCase(),await((f=Re)==null?void 0:f.upsert({shortcuts:{save:u}})),r())},r=()=>{var l;(l=Re)==null||l.getSetting("shortcuts").then(u=>{var f;e((u==null?void 0:u.save)??((f=Re)==null?void 0:f.defaultSettings.shortcuts))})};return F.useEffect(()=>{r()},[]),w.jsxs(Ue,{children:[w.jsx(we,{children:"Keyboard Shortcut - Save current workflow"}),n&&w.jsx(we,{color:"gray.500",children:"Press shortcut key combinations to setup"}),w.jsx(it,{value:o,onKeyDown:s,onFocus:t,onBlur:i,placeholder:"Press a key combination",readOnly:!0})]})}function qi(){const[o,e]=F.useState(!1),n=()=>{var a;(a=Re)==null||a.getSetting("autoSave").then(t=>{e(!!t)})};return F.useEffect(()=>{n()},[]),w.jsx(Ue,{children:w.jsx(jt,{isChecked:o,onChange:async a=>{var t;await((t=Re)==null?void 0:t.upsert({autoSave:a.target.checked})),n()},children:"Enable auto save workflow"})})}function Ji(){const[o,e]=F.useState(!1),n=()=>{var a;(a=Re)==null||a.getSetting("twoWaySync").then(t=>{e(!!t)})};return F.useEffect(()=>{n()},[]),w.jsxs(Ue,{children:[w.jsx(we,{color:"GrayText",children:"If true this will auto detect when you have new .json files added to your workspace saving directory in your disk and automatically import them into your workspace for you"}),w.jsx(jt,{isChecked:o,onChange:async a=>{var t;await((t=Re)==null?void 0:t.upsert({twoWaySync:a.target.checked})),n()},children:"Enable two way sync (Experimental)"})]})}function Qi({onClose:o}){const[e,n]=F.useState(!1),[a,t]=F.useState(!1),[i,s]=F.useState(""),[r,l]=F.useState([]),[u,f]=F.useState([]),[p,y]=F.useState(!1),h=F.useRef(null),g=Ei();F.useEffect(()=>{var E;(E=Re)==null||E.getSetting("myWorkflowsDir").then(D=>{s(D)})},[]);const d=async E=>{const{dir_path:D="",dir_contents:j=[],error:B=""}=await mn(E??"");return B.includes("Operation not permitted")?(y(!0),m(),{isError:!0}):{dirList:j,dirPath:D}},b=async()=>{const{isError:E=!1,dirList:D=[]}=await d(i);E||(f(D),t(!0),l(i&&i.split("/").filter(j=>!!j)||[]))},m=()=>{t(!1),n(!1),l([])},x=async E=>{var B,q;if(E){const{error:k=""}=await mn(E);if(k.includes("Not a directory")){g({title:"The directory address you entered is invalid, please re-enter it.",status:"warning",duration:5e3,position:"top",isClosable:!0});return}}const D=E??`/${r.join("/")}`;await((B=Re)==null?void 0:B.upsert({myWorkflowsDir:D}));const j=await((q=Re)==null?void 0:q.getSetting("myWorkflowsDir"))??"";s(j),E&&y(!1),m(),di()},S=async()=>{const{dirPath:E,dirList:D}=await d("");l(E.split("/").filter(j=>!!j)),f(D)},O=async(E,D)=>{var k;let j="";E===-1&&D?j=`/${r.concat([D]).join("/")}`:j=`/${r.slice(0,E+1).join("/")}`;const{isError:B=!1,dirList:q=[]}=await d(j);B||(f(q),l((k=j.slice(1))==null?void 0:k.split("/")))},I=()=>{t(!0),n(!0)},P=w.jsxs(de,{textAlign:"end",mb:4,children:[w.jsx(it,{placeholder:"Please enter the absolute path directory address",ref:h,mt:2,mb:2}),w.jsx(xe,{colorScheme:"teal",mr:3,size:"sm",onClick:()=>{var E,D;(E=h==null?void 0:h.current)!=null&&E.value&&x((D=h==null?void 0:h.current)==null?void 0:D.value)},children:"Save"})]});return w.jsxs(w.Fragment,{children:[w.jsxs(mt,{isOpen:!0,onClose:o,size:"xl",children:[w.jsx(vt,{}),w.jsxs(gt,{children:[w.jsx(bt,{children:"Settings"}),w.jsx(yt,{}),w.jsx(xt,{pb:14,children:w.jsx(ye,{children:w.jsxs(gn,{divider:w.jsx(ci,{borderColor:"gray.500"}),spacing:4,align:"stretch",w:"100%",children:[w.jsxs(de,{mb:4,children:[w.jsx(we,{mb:2,fontWeight:500,children:"Workspace Save Directory"}),a?e?P:w.jsxs(gn,{spacing:2,alignItems:"start",children:[w.jsx(Ue,{spacing:"2px",direction:"row",wrap:"wrap",children:r.map((E,D)=>w.jsxs(w.Fragment,{children:["/",w.jsx(xe,{colorScheme:"teal",variant:"link",minW:1,onClick:()=>{O(D)},children:E},`${E}-${D}`)]}))}),w.jsx(Oi,{columns:2,spacing:3,maxHeight:500,width:"100%",overflowY:"auto",children:u.map((E,D)=>w.jsx(xe,{size:"sm",leftIcon:w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:w.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),justifyContent:"start",onClick:()=>{O(-1,E)},children:E},`${E}-${D}`))}),w.jsxs(de,{w:"100%",textAlign:"end",children:[w.jsx(xe,{colorScheme:"teal",size:"sm",onClick:()=>{x()},children:"Save"}),w.jsx(xe,{size:"sm",onClick:S,mr:2,ml:2,children:"Reset"}),w.jsx(xe,{size:"sm",onClick:m,children:"Cancel"})]})]}):w.jsxs(tt,{children:[w.jsx(on,{overflowWrap:"anywhere",children:i}),w.jsx(Me,{label:"Choose folder",children:w.jsx(be,{"aria-label":"Select folder",size:"sm",ml:2,icon:w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.4rem",height:"1.4srem"},children:w.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),onClick:b})}),w.jsx(Me,{label:"Input absolute path",children:w.jsx(be,{"aria-label":"Enter folder address",size:"sm",ml:2,icon:w.jsx(Ni,{size:19}),onClick:I,variant:"ghost"})})]})]}),w.jsx(Xi,{}),w.jsx(qi,{}),w.jsx(Ji,{})]})})})]})]}),w.jsxs(mt,{isOpen:p,onClose:()=>y(!1),size:"xl",children:[w.jsx(vt,{}),w.jsxs(gt,{children:[w.jsx(bt,{children:"Kind tips"}),w.jsx(yt,{}),w.jsx(xt,{children:w.jsxs(de,{children:[navigator.userAgent.indexOf("Mac OS X")!==-1?w.jsxs(we,{fontWeight:500,children:["There is no permission to access the folder. You need to grant full disk access permission to the terminal that starts the ComfyUI program. For details, refer to the",w.jsx(xe,{colorScheme:"teal",variant:"link",as:"a",ml:2,target:"_block",href:`https://stackoverflow.com/questions/58479686/permissionerror-errno-1-operation-not-permitted-after-macos - -catalina-update`,children:"Document"}),", or you can manually enter the absolute path of the folder in the input box below to save."]}):w.jsx(we,{fontWeight:500,children:"You do not have permission to access the folder. It is recommended that you manually enter the absolute path address of the required folder."}),P]})})]})]})]})}const Tt=16;function ea({}){const[o,e]=F.useState(!1),[n,a]=F.useState(!1),{colorMode:t,toggleColorMode:i}=Jt();return w.jsxs(w.Fragment,{children:[w.jsxs(at,{isLazy:!0,children:[w.jsx(Wn,{as:be,"aria-label":"Options",icon:w.jsx(Ui,{}),size:"sm",variant:"outline"}),w.jsxs(Mt,{children:[w.jsx(Le,{onClick:()=>a(!0),icon:w.jsx(Gi,{size:16}),fontSize:16,children:"Settings"}),w.jsx(Le,{onClick:()=>e(!0),icon:w.jsx(lr,{size:Tt}),fontSize:16,children:"Manage Tags"}),w.jsxs(Le,{onClick:i,icon:t==="light"?w.jsx(Hi,{size:Tt}):w.jsx(Yi,{size:Tt}),fontSize:16,children:[t==="light"?"Dark":"Light"," Mode"]})]})]}),o&&w.jsx(Ki,{onclose:()=>e(!1)}),n&&w.jsx(Qi,{onClose:()=>a(!1)})]})}function bn(o,e){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(o);e&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable})),n.push.apply(n,a)}return n}function re(o){for(var e=1;eo.length)&&(e=o.length);for(var n=0,a=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(o,a)&&(n[a]=o[a])}return n}var ia=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];function aa(o){var e=o.defaultInputValue,n=e===void 0?"":e,a=o.defaultMenuIsOpen,t=a===void 0?!1:a,i=o.defaultValue,s=i===void 0?null:i,r=o.inputValue,l=o.menuIsOpen,u=o.onChange,f=o.onInputChange,p=o.onMenuClose,y=o.onMenuOpen,h=o.value,g=Ne(o,ia),d=F.useState(r!==void 0?r:n),b=Ve(d,2),m=b[0],x=b[1],S=F.useState(l!==void 0?l:t),O=Ve(S,2),I=O[0],P=O[1],E=F.useState(h!==void 0?h:s),D=Ve(E,2),j=D[0],B=D[1],q=F.useCallback(function(J,$){typeof u=="function"&&u(J,$),B(J)},[u]),k=F.useCallback(function(J,$){var te;typeof f=="function"&&(te=f(J,$)),x(te!==void 0?te:J)},[f]),A=F.useCallback(function(){typeof y=="function"&&y(),P(!0)},[y]),v=F.useCallback(function(){typeof p=="function"&&p(),P(!1)},[p]),L=r!==void 0?r:m,W=l!==void 0?l:I,N=h!==void 0?h:j;return re(re({},g),{},{inputValue:L,menuIsOpen:W,onChange:q,onInputChange:k,onMenuClose:v,onMenuOpen:A,value:N})}function sa(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function yn(o,e){for(var n=0;n"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 ca(o){if(o===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return o}function da(o,e){if(e&&($n(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ca(o)}function ha(o){var e=ua();return function(){var a=wt(o),t;if(e){var i=wt(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return da(this,t)}}function fa(o){if(Array.isArray(o))return Ht(o)}function pa(o){if(typeof Symbol<"u"&&o[Symbol.iterator]!=null||o["@@iterator"]!=null)return Array.from(o)}function ma(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cr(o){return fa(o)||pa(o)||ur(o)||ma()}function va(o,e){return e||(e=o.slice(0)),Object.freeze(Object.defineProperties(o,{raw:{value:Object.freeze(e)}}))}const ga=Math.min,ba=Math.max,St=Math.round,ct=Math.floor,_t=o=>({x:o,y:o});function ya(o){return{...o,top:o.y,left:o.x,right:o.x+o.width,bottom:o.y+o.height}}function dr(o){return fr(o)?(o.nodeName||"").toLowerCase():"#document"}function je(o){var e;return(o==null||(e=o.ownerDocument)==null?void 0:e.defaultView)||window}function hr(o){var e;return(e=(fr(o)?o.ownerDocument:o.document)||window.document)==null?void 0:e.documentElement}function fr(o){return o instanceof Node||o instanceof je(o).Node}function Wt(o){return o instanceof Element||o instanceof je(o).Element}function ln(o){return o instanceof HTMLElement||o instanceof je(o).HTMLElement}function xn(o){return typeof ShadowRoot>"u"?!1:o instanceof ShadowRoot||o instanceof je(o).ShadowRoot}function pr(o){const{overflow:e,overflowX:n,overflowY:a,display:t}=un(o);return/auto|scroll|overlay|hidden|clip/.test(e+a+n)&&!["inline","contents"].includes(t)}function xa(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function wa(o){return["html","body","#document"].includes(dr(o))}function un(o){return je(o).getComputedStyle(o)}function Sa(o){if(dr(o)==="html")return o;const e=o.assignedSlot||o.parentNode||xn(o)&&o.host||hr(o);return xn(e)?e.host:e}function mr(o){const e=Sa(o);return wa(e)?o.ownerDocument?o.ownerDocument.body:o.body:ln(e)&&pr(e)?e:mr(e)}function Ct(o,e,n){var a;e===void 0&&(e=[]),n===void 0&&(n=!0);const t=mr(o),i=t===((a=o.ownerDocument)==null?void 0:a.body),s=je(t);return i?e.concat(s,s.visualViewport||[],pr(t)?t:[],s.frameElement&&n?Ct(s.frameElement):[]):e.concat(t,Ct(t,[],n))}function _a(o){const e=un(o);let n=parseFloat(e.width)||0,a=parseFloat(e.height)||0;const t=ln(o),i=t?o.offsetWidth:n,s=t?o.offsetHeight:a,r=St(n)!==i||St(a)!==s;return r&&(n=i,a=s),{width:n,height:a,$:r}}function cn(o){return Wt(o)?o:o.contextElement}function At(o){const e=cn(o);if(!ln(e))return _t(1);const n=e.getBoundingClientRect(),{width:a,height:t,$:i}=_a(e);let s=(i?St(n.width):n.width)/a,r=(i?St(n.height):n.height)/t;return(!s||!Number.isFinite(s))&&(s=1),(!r||!Number.isFinite(r))&&(r=1),{x:s,y:r}}const Ca=_t(0);function ka(o){const e=je(o);return!xa()||!e.visualViewport?Ca:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function Oa(o,e,n){return e===void 0&&(e=!1),!n||e&&n!==je(o)?!1:e}function wn(o,e,n,a){e===void 0&&(e=!1),n===void 0&&(n=!1);const t=o.getBoundingClientRect(),i=cn(o);let s=_t(1);e&&(a?Wt(a)&&(s=At(a)):s=At(o));const r=Oa(i,n,a)?ka(i):_t(0);let l=(t.left+r.x)/s.x,u=(t.top+r.y)/s.y,f=t.width/s.x,p=t.height/s.y;if(i){const y=je(i),h=a&&Wt(a)?je(a):a;let g=y.frameElement;for(;g&&a&&h!==y;){const d=At(g),b=g.getBoundingClientRect(),m=un(g),x=b.left+(g.clientLeft+parseFloat(m.paddingLeft))*d.x,S=b.top+(g.clientTop+parseFloat(m.paddingTop))*d.y;l*=d.x,u*=d.y,f*=d.x,p*=d.y,l+=x,u+=S,g=je(g).frameElement}}return ya({width:f,height:p,x:l,y:u})}function Ia(o,e){let n=null,a;const t=hr(o);function i(){clearTimeout(a),n&&n.disconnect(),n=null}function s(r,l){r===void 0&&(r=!1),l===void 0&&(l=1),i();const{left:u,top:f,width:p,height:y}=o.getBoundingClientRect();if(r||e(),!p||!y)return;const h=ct(f),g=ct(t.clientWidth-(u+p)),d=ct(t.clientHeight-(f+y)),b=ct(u),x={rootMargin:-h+"px "+-g+"px "+-d+"px "+-b+"px",threshold:ba(0,ga(1,l))||1};let S=!0;function O(I){const P=I[0].intersectionRatio;if(P!==l){if(!S)return s();P?s(!1,P):a=setTimeout(()=>{s(!1,1e-7)},100)}S=!1}try{n=new IntersectionObserver(O,{...x,root:t.ownerDocument})}catch{n=new IntersectionObserver(O,x)}n.observe(o)}return s(!0),i}function Ea(o,e,n,a){a===void 0&&(a={});const{ancestorScroll:t=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:r=typeof IntersectionObserver=="function",animationFrame:l=!1}=a,u=cn(o),f=t||i?[...u?Ct(u):[],...Ct(e)]:[];f.forEach(m=>{t&&m.addEventListener("scroll",n,{passive:!0}),i&&m.addEventListener("resize",n)});const p=u&&r?Ia(u,n):null;let y=-1,h=null;s&&(h=new ResizeObserver(m=>{let[x]=m;x&&x.target===u&&h&&(h.unobserve(e),cancelAnimationFrame(y),y=requestAnimationFrame(()=>{h&&h.observe(e)})),n()}),u&&!l&&h.observe(u),h.observe(e));let g,d=l?wn(o):null;l&&b();function b(){const m=wn(o);d&&(m.x!==d.x||m.y!==d.y||m.width!==d.width||m.height!==d.height)&&n(),d=m,g=requestAnimationFrame(b)}return n(),()=>{f.forEach(m=>{t&&m.removeEventListener("scroll",n),i&&m.removeEventListener("resize",n)}),p&&p(),h&&h.disconnect(),h=null,l&&cancelAnimationFrame(g)}}var Zt=F.useLayoutEffect,Pa=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],kt=function(){};function Ma(o,e){return e?e[0]==="-"?o+e:o+"__"+e:o}function ja(o,e){for(var n=arguments.length,a=new Array(n>2?n-2:0),t=2;t-1}function Da(o){return Dt(o)?window.innerHeight:o.clientHeight}function gr(o){return Dt(o)?window.pageYOffset:o.scrollTop}function Ot(o,e){if(Dt(o)){window.scrollTo(0,e);return}o.scrollTop=e}function za(o){var e=getComputedStyle(o),n=e.position==="absolute",a=/(auto|scroll)/;if(e.position==="fixed")return document.documentElement;for(var t=o;t=t.parentElement;)if(e=getComputedStyle(t),!(n&&e.position==="static")&&a.test(e.overflow+e.overflowY+e.overflowX))return t;return document.documentElement}function Ra(o,e,n,a){return n*((o=o/a-1)*o*o+1)+e}function dt(o,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:200,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:kt,t=gr(o),i=e-t,s=10,r=0;function l(){r+=s;var u=Ra(r,t,i,n);Ot(o,u),rn.bottom?Ot(o,Math.min(e.offsetTop+e.clientHeight-o.offsetHeight+t,o.scrollHeight)):a.top-t1?n-1:0),t=1;t=g)return{placement:"bottom",maxHeight:e};if(j>=g&&!s)return i&&dt(l,B,k),{placement:"bottom",maxHeight:e};if(!s&&j>=a||s&&E>=a){i&&dt(l,B,k);var A=s?E-O:j-O;return{placement:"bottom",maxHeight:A}}if(t==="auto"||s){var v=e,L=s?P:D;return L>=a&&(v=Math.min(L-O-r,e)),{placement:"top",maxHeight:v}}if(t==="bottom")return i&&Ot(l,B),{placement:"bottom",maxHeight:e};break;case"top":if(P>=g)return{placement:"top",maxHeight:e};if(D>=g&&!s)return i&&dt(l,q,k),{placement:"top",maxHeight:e};if(!s&&D>=a||s&&P>=a){var W=e;return(!s&&D>=a||s&&P>=a)&&(W=s?P-I:D-I),i&&dt(l,q,k),{placement:"top",maxHeight:W}}return{placement:"bottom",maxHeight:e};default:throw new Error('Invalid placement provided "'.concat(t,'".'))}return u}function Wa(o){var e={bottom:"top",top:"bottom"};return o?e[o]:"bottom"}var yr=function(e){return e==="auto"?"bottom":e},Za=function(e,n){var a,t=e.placement,i=e.theme,s=i.borderRadius,r=i.spacing,l=i.colors;return re((a={label:"menu"},et(a,Wa(t),"100%"),et(a,"position","absolute"),et(a,"width","100%"),et(a,"zIndex",1),a),n?{}:{backgroundColor:l.neutral0,borderRadius:s,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:r.menuGutter,marginTop:r.menuGutter})},xr=F.createContext(null),Ga=function(e){var n=e.children,a=e.minMenuHeight,t=e.maxMenuHeight,i=e.menuPlacement,s=e.menuPosition,r=e.menuShouldScrollIntoView,l=e.theme,u=F.useContext(xr)||{},f=u.setPortalPlacement,p=F.useRef(null),y=F.useState(t),h=Ve(y,2),g=h[0],d=h[1],b=F.useState(null),m=Ve(b,2),x=m[0],S=m[1],O=l.spacing.controlHeight;return Zt(function(){var I=p.current;if(I){var P=s==="fixed",E=r&&!P,D=Ha({maxHeight:t,menuEl:I,minHeight:a,placement:i,shouldScroll:E,isFixedPosition:P,controlHeight:O});d(D.maxHeight),S(D.placement),f==null||f(D.placement)}},[t,i,s,r,a,f,O]),n({ref:p,placerProps:re(re({},e),{},{placement:x||yr(i),maxHeight:g})})},Ya=function(e){var n=e.children,a=e.innerRef,t=e.innerProps;return ie("div",ae({},me(e,"menu",{menu:!0}),{ref:a},t),n)},Ka=Ya,Xa=function(e,n){var a=e.maxHeight,t=e.theme.spacing.baseUnit;return re({maxHeight:a,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},n?{}:{paddingBottom:t,paddingTop:t})},qa=function(e){var n=e.children,a=e.innerProps,t=e.innerRef,i=e.isMulti;return ie("div",ae({},me(e,"menuList",{"menu-list":!0,"menu-list--is-multi":i}),{ref:t},a),n)},wr=function(e,n){var a=e.theme,t=a.spacing.baseUnit,i=a.colors;return re({textAlign:"center"},n?{}:{color:i.neutral40,padding:"".concat(t*2,"px ").concat(t*3,"px")})},Ja=wr,Qa=wr,es=function(e){var n=e.children,a=n===void 0?"No options":n,t=e.innerProps,i=Ne(e,$a);return ie("div",ae({},me(re(re({},i),{},{children:a,innerProps:t}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),t),a)},ts=function(e){var n=e.children,a=n===void 0?"Loading...":n,t=e.innerProps,i=Ne(e,Ua);return ie("div",ae({},me(re(re({},i),{},{children:a,innerProps:t}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),t),a)},ns=function(e){var n=e.rect,a=e.offset,t=e.position;return{left:n.left,position:t,top:a,width:n.width,zIndex:1}},rs=function(e){var n=e.appendTo,a=e.children,t=e.controlElement,i=e.innerProps,s=e.menuPlacement,r=e.menuPosition,l=F.useRef(null),u=F.useRef(null),f=F.useState(yr(s)),p=Ve(f,2),y=p[0],h=p[1],g=F.useMemo(function(){return{setPortalPlacement:h}},[]),d=F.useState(null),b=Ve(d,2),m=b[0],x=b[1],S=F.useCallback(function(){if(t){var E=Fa(t),D=r==="fixed"?0:window.pageYOffset,j=E[y]+D;(j!==(m==null?void 0:m.offset)||E.left!==(m==null?void 0:m.rect.left)||E.width!==(m==null?void 0:m.rect.width))&&x({offset:j,rect:E})}},[t,r,y,m==null?void 0:m.offset,m==null?void 0:m.rect.left,m==null?void 0:m.rect.width]);Zt(function(){S()},[S]);var O=F.useCallback(function(){typeof u.current=="function"&&(u.current(),u.current=null),t&&l.current&&(u.current=Ea(t,l.current,S,{elementResize:"ResizeObserver"in window}))},[t,S]);Zt(function(){O()},[O]);var I=F.useCallback(function(E){l.current=E,O()},[O]);if(!n&&r!=="fixed"||!m)return null;var P=ie("div",ae({ref:I},me(re(re({},e),{},{offset:m.offset,position:r,rect:m.rect}),"menuPortal",{"menu-portal":!0}),i),a);return ie(xr.Provider,{value:g},n?Qr.createPortal(P,n):P)},is=function(e){var n=e.isDisabled,a=e.isRtl;return{label:"container",direction:a?"rtl":void 0,pointerEvents:n?"none":void 0,position:"relative"}},as=function(e){var n=e.children,a=e.innerProps,t=e.isDisabled,i=e.isRtl;return ie("div",ae({},me(e,"container",{"--is-disabled":t,"--is-rtl":i}),a),n)},ss=function(e,n){var a=e.theme.spacing,t=e.isMulti,i=e.hasValue,s=e.selectProps.controlShouldRenderValue;return re({alignItems:"center",display:t&&i&&s?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},n?{}:{padding:"".concat(a.baseUnit/2,"px ").concat(a.baseUnit*2,"px")})},os=function(e){var n=e.children,a=e.innerProps,t=e.isMulti,i=e.hasValue;return ie("div",ae({},me(e,"valueContainer",{"value-container":!0,"value-container--is-multi":t,"value-container--has-value":i}),a),n)},ls=function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},us=function(e){var n=e.children,a=e.innerProps;return ie("div",ae({},me(e,"indicatorsContainer",{indicators:!0}),a),n)},kn,cs=["size"],ds=["innerProps","isRtl","size"],hs={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},Sr=function(e){var n=e.size,a=Ne(e,cs);return ie("svg",ae({height:n,width:n,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:hs},a))},dn=function(e){return ie(Sr,ae({size:20},e),ie("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},_r=function(e){return ie(Sr,ae({size:20},e),ie("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Cr=function(e,n){var a=e.isFocused,t=e.theme,i=t.spacing.baseUnit,s=t.colors;return re({label:"indicatorContainer",display:"flex",transition:"color 150ms"},n?{}:{color:a?s.neutral60:s.neutral20,padding:i*2,":hover":{color:a?s.neutral80:s.neutral40}})},fs=Cr,ps=function(e){var n=e.children,a=e.innerProps;return ie("div",ae({},me(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),a),n||ie(_r,null))},ms=Cr,vs=function(e){var n=e.children,a=e.innerProps;return ie("div",ae({},me(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),a),n||ie(dn,null))},gs=function(e,n){var a=e.isDisabled,t=e.theme,i=t.spacing.baseUnit,s=t.colors;return re({label:"indicatorSeparator",alignSelf:"stretch",width:1},n?{}:{backgroundColor:a?s.neutral10:s.neutral20,marginBottom:i*2,marginTop:i*2})},bs=function(e){var n=e.innerProps;return ie("span",ae({},n,me(e,"indicatorSeparator",{"indicator-separator":!0})))},ys=Jr(kn||(kn=va([` - 0%, 80%, 100% { opacity: 0; } - 40% { opacity: 1; } -`]))),xs=function(e,n){var a=e.isFocused,t=e.size,i=e.theme,s=i.colors,r=i.spacing.baseUnit;return re({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:t,lineHeight:1,marginRight:t,textAlign:"center",verticalAlign:"middle"},n?{}:{color:a?s.neutral60:s.neutral20,padding:r*2})},Lt=function(e){var n=e.delay,a=e.offset;return ie("span",{css:Un({animation:"".concat(ys," 1s ease-in-out ").concat(n,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:a?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},ws=function(e){var n=e.innerProps,a=e.isRtl,t=e.size,i=t===void 0?4:t,s=Ne(e,ds);return ie("div",ae({},me(re(re({},s),{},{innerProps:n,isRtl:a,size:i}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),n),ie(Lt,{delay:0,offset:a}),ie(Lt,{delay:160,offset:!0}),ie(Lt,{delay:320,offset:!a}))},Ss=function(e,n){var a=e.isDisabled,t=e.isFocused,i=e.theme,s=i.colors,r=i.borderRadius,l=i.spacing;return re({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:l.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},n?{}:{backgroundColor:a?s.neutral5:s.neutral0,borderColor:a?s.neutral10:t?s.primary:s.neutral20,borderRadius:r,borderStyle:"solid",borderWidth:1,boxShadow:t?"0 0 0 1px ".concat(s.primary):void 0,"&:hover":{borderColor:t?s.primary:s.neutral30}})},_s=function(e){var n=e.children,a=e.isDisabled,t=e.isFocused,i=e.innerRef,s=e.innerProps,r=e.menuIsOpen;return ie("div",ae({ref:i},me(e,"control",{control:!0,"control--is-disabled":a,"control--is-focused":t,"control--menu-is-open":r}),s,{"aria-disabled":a||void 0}),n)},Cs=_s,ks=["data"],Os=function(e,n){var a=e.theme.spacing;return n?{}:{paddingBottom:a.baseUnit*2,paddingTop:a.baseUnit*2}},Is=function(e){var n=e.children,a=e.cx,t=e.getStyles,i=e.getClassNames,s=e.Heading,r=e.headingProps,l=e.innerProps,u=e.label,f=e.theme,p=e.selectProps;return ie("div",ae({},me(e,"group",{group:!0}),l),ie(s,ae({},r,{selectProps:p,theme:f,getStyles:t,getClassNames:i,cx:a}),u),ie("div",null,n))},Es=function(e,n){var a=e.theme,t=a.colors,i=a.spacing;return re({label:"group",cursor:"default",display:"block"},n?{}:{color:t.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:i.baseUnit*3,paddingRight:i.baseUnit*3,textTransform:"uppercase"})},Ps=function(e){var n=vr(e);n.data;var a=Ne(n,ks);return ie("div",ae({},me(e,"groupHeading",{"group-heading":!0}),a))},Ms=Is,js=["innerRef","isDisabled","isHidden","inputClassName"],Ds=function(e,n){var a=e.isDisabled,t=e.value,i=e.theme,s=i.spacing,r=i.colors;return re(re({visibility:a?"hidden":"visible",transform:t?"translateZ(0)":""},zs),n?{}:{margin:s.baseUnit/2,paddingBottom:s.baseUnit/2,paddingTop:s.baseUnit/2,color:r.neutral80})},kr={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},zs={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":re({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},kr)},Rs=function(e){return re({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},kr)},Fs=function(e){var n=e.cx,a=e.value,t=vr(e),i=t.innerRef,s=t.isDisabled,r=t.isHidden,l=t.inputClassName,u=Ne(t,js);return ie("div",ae({},me(e,"input",{"input-container":!0}),{"data-value":a||""}),ie("input",ae({className:n({input:!0},l),ref:i,style:Rs(r),disabled:s},u)))},Ts=Fs,As=function(e,n){var a=e.theme,t=a.spacing,i=a.borderRadius,s=a.colors;return re({label:"multiValue",display:"flex",minWidth:0},n?{}:{backgroundColor:s.neutral10,borderRadius:i/2,margin:t.baseUnit/2})},Ls=function(e,n){var a=e.theme,t=a.borderRadius,i=a.colors,s=e.cropWithEllipsis;return re({overflow:"hidden",textOverflow:s||s===void 0?"ellipsis":void 0,whiteSpace:"nowrap"},n?{}:{borderRadius:t/2,color:i.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},Vs=function(e,n){var a=e.theme,t=a.spacing,i=a.borderRadius,s=a.colors,r=e.isFocused;return re({alignItems:"center",display:"flex"},n?{}:{borderRadius:i/2,backgroundColor:r?s.dangerLight:void 0,paddingLeft:t.baseUnit,paddingRight:t.baseUnit,":hover":{backgroundColor:s.dangerLight,color:s.danger}})},Or=function(e){var n=e.children,a=e.innerProps;return ie("div",a,n)},Bs=Or,Ns=Or;function $s(o){var e=o.children,n=o.innerProps;return ie("div",ae({role:"button"},n),e||ie(dn,{size:14}))}var Us=function(e){var n=e.children,a=e.components,t=e.data,i=e.innerProps,s=e.isDisabled,r=e.removeProps,l=e.selectProps,u=a.Container,f=a.Label,p=a.Remove;return ie(u,{data:t,innerProps:re(re({},me(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":s})),i),selectProps:l},ie(f,{data:t,innerProps:re({},me(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:l},n),ie(p,{data:t,innerProps:re(re({},me(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(n||"option")},r),selectProps:l}))},Hs=Us,Ws=function(e,n){var a=e.isDisabled,t=e.isFocused,i=e.isSelected,s=e.theme,r=s.spacing,l=s.colors;return re({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},n?{}:{backgroundColor:i?l.primary:t?l.primary25:"transparent",color:a?l.neutral20:i?l.neutral0:"inherit",padding:"".concat(r.baseUnit*2,"px ").concat(r.baseUnit*3,"px"),":active":{backgroundColor:a?void 0:i?l.primary:l.primary50}})},Zs=function(e){var n=e.children,a=e.isDisabled,t=e.isFocused,i=e.isSelected,s=e.innerRef,r=e.innerProps;return ie("div",ae({},me(e,"option",{option:!0,"option--is-disabled":a,"option--is-focused":t,"option--is-selected":i}),{ref:s,"aria-disabled":a},r),n)},Gs=Zs,Ys=function(e,n){var a=e.theme,t=a.spacing,i=a.colors;return re({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},n?{}:{color:i.neutral50,marginLeft:t.baseUnit/2,marginRight:t.baseUnit/2})},Ks=function(e){var n=e.children,a=e.innerProps;return ie("div",ae({},me(e,"placeholder",{placeholder:!0}),a),n)},Xs=Ks,qs=function(e,n){var a=e.isDisabled,t=e.theme,i=t.spacing,s=t.colors;return re({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},n?{}:{color:a?s.neutral40:s.neutral80,marginLeft:i.baseUnit/2,marginRight:i.baseUnit/2})},Js=function(e){var n=e.children,a=e.isDisabled,t=e.innerProps;return ie("div",ae({},me(e,"singleValue",{"single-value":!0,"single-value--is-disabled":a}),t),n)},Qs=Js,eo={ClearIndicator:vs,Control:Cs,DropdownIndicator:ps,DownChevron:_r,CrossIcon:dn,Group:Ms,GroupHeading:Ps,IndicatorsContainer:us,IndicatorSeparator:bs,Input:Ts,LoadingIndicator:ws,Menu:Ka,MenuList:qa,MenuPortal:rs,LoadingMessage:ts,NoOptionsMessage:es,MultiValue:Hs,MultiValueContainer:Bs,MultiValueLabel:Ns,MultiValueRemove:$s,Option:Gs,Placeholder:Xs,SelectContainer:as,SingleValue:Qs,ValueContainer:os},to=function(e){return re(re({},eo),e.components)},On=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function no(o,e){return!!(o===e||On(o)&&On(e))}function ro(o,e){if(o.length!==e.length)return!1;for(var n=0;n1?"s":""," ").concat(i.join(","),", selected.");case"select-option":return s?"option ".concat(t," is disabled. Select another option."):"option ".concat(t,", selected.");default:return""}},onFocus:function(e){var n=e.context,a=e.focused,t=e.options,i=e.label,s=i===void 0?"":i,r=e.selectValue,l=e.isDisabled,u=e.isSelected,f=function(g,d){return g&&g.length?"".concat(g.indexOf(d)+1," of ").concat(g.length):""};if(n==="value"&&r)return"value ".concat(s," focused, ").concat(f(r,a),".");if(n==="menu"){var p=l?" disabled":"",y="".concat(u?"selected":"focused").concat(p);return"option ".concat(s," ").concat(y,", ").concat(f(t,a),".")}return""},onFilter:function(e){var n=e.inputValue,a=e.resultsMessage;return"".concat(a).concat(n?" for search term "+n:"",".")}},lo=function(e){var n=e.ariaSelection,a=e.focusedOption,t=e.focusedValue,i=e.focusableOptions,s=e.isFocused,r=e.selectValue,l=e.selectProps,u=e.id,f=l.ariaLiveMessages,p=l.getOptionLabel,y=l.inputValue,h=l.isMulti,g=l.isOptionDisabled,d=l.isSearchable,b=l.menuIsOpen,m=l.options,x=l.screenReaderStatus,S=l.tabSelectsValue,O=l["aria-label"],I=l["aria-live"],P=F.useMemo(function(){return re(re({},oo),f||{})},[f]),E=F.useMemo(function(){var v="";if(n&&P.onChange){var L=n.option,W=n.options,N=n.removedValue,J=n.removedValues,$=n.value,te=function(he){return Array.isArray(he)?null:he},T=N||L||te($),z=T?p(T):"",ee=W||J||void 0,X=ee?ee.map(p):[],G=re({isDisabled:T&&g(T,r),label:z,labels:X},n);v=P.onChange(G)}return v},[n,P,g,r,p]),D=F.useMemo(function(){var v="",L=a||t,W=!!(a&&r&&r.includes(a));if(L&&P.onFocus){var N={focused:L,label:p(L),isDisabled:g(L,r),isSelected:W,options:i,context:L===a?"menu":"value",selectValue:r};v=P.onFocus(N)}return v},[a,t,p,g,P,i,r]),j=F.useMemo(function(){var v="";if(b&&m.length&&P.onFilter){var L=x({count:i.length});v=P.onFilter({inputValue:y,resultsMessage:L})}return v},[i,y,b,P,m,x]),B=F.useMemo(function(){var v="";if(P.guidance){var L=t?"value":b?"menu":"input";v=P.guidance({"aria-label":O,context:L,isDisabled:a&&g(a,r),isMulti:h,isSearchable:d,tabSelectsValue:S})}return v},[O,a,t,h,g,d,b,P,r,S]),q="".concat(D," ").concat(j," ").concat(B),k=ie(F.Fragment,null,ie("span",{id:"aria-selection"},E),ie("span",{id:"aria-context"},q)),A=(n==null?void 0:n.action)==="initial-input-focus";return ie(F.Fragment,null,ie(In,{id:u},A&&k),ie(In,{"aria-live":I,"aria-atomic":"false","aria-relevant":"additions text"},s&&!A&&k))},uo=lo,Gt=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],co=new RegExp("["+Gt.map(function(o){return o.letters}).join("")+"]","g"),Ir={};for(var Vt=0;Vt-1}},mo=["innerRef"];function vo(o){var e=o.innerRef,n=Ne(o,mo),a=Na(n,"onExited","in","enter","exit","appear");return ie("input",ae({ref:e},a,{css:Un({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var go=function(e){e.cancelable&&e.preventDefault(),e.stopPropagation()};function bo(o){var e=o.isEnabled,n=o.onBottomArrive,a=o.onBottomLeave,t=o.onTopArrive,i=o.onTopLeave,s=F.useRef(!1),r=F.useRef(!1),l=F.useRef(0),u=F.useRef(null),f=F.useCallback(function(b,m){if(u.current!==null){var x=u.current,S=x.scrollTop,O=x.scrollHeight,I=x.clientHeight,P=u.current,E=m>0,D=O-I-S,j=!1;D>m&&s.current&&(a&&a(b),s.current=!1),E&&r.current&&(i&&i(b),r.current=!1),E&&m>D?(n&&!s.current&&n(b),P.scrollTop=O,j=!0,s.current=!0):!E&&-m>S&&(t&&!r.current&&t(b),P.scrollTop=0,j=!0,r.current=!0),j&&go(b)}},[n,a,t,i]),p=F.useCallback(function(b){f(b,b.deltaY)},[f]),y=F.useCallback(function(b){l.current=b.changedTouches[0].clientY},[]),h=F.useCallback(function(b){var m=l.current-b.changedTouches[0].clientY;f(b,m)},[f]),g=F.useCallback(function(b){if(b){var m=La?{passive:!1}:!1;b.addEventListener("wheel",p,m),b.addEventListener("touchstart",y,m),b.addEventListener("touchmove",h,m)}},[h,y,p]),d=F.useCallback(function(b){b&&(b.removeEventListener("wheel",p,!1),b.removeEventListener("touchstart",y,!1),b.removeEventListener("touchmove",h,!1))},[h,y,p]);return F.useEffect(function(){if(e){var b=u.current;return g(b),function(){d(b)}}},[e,g,d]),function(b){u.current=b}}var Pn=["boxSizing","height","overflow","paddingRight","position"],Mn={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function jn(o){o.preventDefault()}function Dn(o){o.stopPropagation()}function zn(){var o=this.scrollTop,e=this.scrollHeight,n=o+this.offsetHeight;o===0?this.scrollTop=1:n===e&&(this.scrollTop=o-1)}function Rn(){return"ontouchstart"in window||navigator.maxTouchPoints}var Fn=!!(typeof window<"u"&&window.document&&window.document.createElement),Qe=0,We={capture:!1,passive:!1};function yo(o){var e=o.isEnabled,n=o.accountForScrollbars,a=n===void 0?!0:n,t=F.useRef({}),i=F.useRef(null),s=F.useCallback(function(l){if(Fn){var u=document.body,f=u&&u.style;if(a&&Pn.forEach(function(g){var d=f&&f[g];t.current[g]=d}),a&&Qe<1){var p=parseInt(t.current.paddingRight,10)||0,y=document.body?document.body.clientWidth:0,h=window.innerWidth-y+p||0;Object.keys(Mn).forEach(function(g){var d=Mn[g];f&&(f[g]=d)}),f&&(f.paddingRight="".concat(h,"px"))}u&&Rn()&&(u.addEventListener("touchmove",jn,We),l&&(l.addEventListener("touchstart",zn,We),l.addEventListener("touchmove",Dn,We))),Qe+=1}},[a]),r=F.useCallback(function(l){if(Fn){var u=document.body,f=u&&u.style;Qe=Math.max(Qe-1,0),a&&Qe<1&&Pn.forEach(function(p){var y=t.current[p];f&&(f[p]=y)}),u&&Rn()&&(u.removeEventListener("touchmove",jn,We),l&&(l.removeEventListener("touchstart",zn,We),l.removeEventListener("touchmove",Dn,We)))}},[a]);return F.useEffect(function(){if(e){var l=i.current;return s(l),function(){r(l)}}},[e,s,r]),function(l){i.current=l}}var xo=function(e){var n=e.target;return n.ownerDocument.activeElement&&n.ownerDocument.activeElement.blur()},wo={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function So(o){var e=o.children,n=o.lockEnabled,a=o.captureEnabled,t=a===void 0?!0:a,i=o.onBottomArrive,s=o.onBottomLeave,r=o.onTopArrive,l=o.onTopLeave,u=bo({isEnabled:t,onBottomArrive:i,onBottomLeave:s,onTopArrive:r,onTopLeave:l}),f=yo({isEnabled:n}),p=function(h){u(h),f(h)};return ie(F.Fragment,null,n&&ie("div",{onClick:xo,css:wo}),e(p))}var _o={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},Co=function(e){var n=e.name,a=e.onFocus;return ie("input",{required:!0,name:n,tabIndex:-1,"aria-hidden":"true",onFocus:a,css:_o,value:"",onChange:function(){}})},ko=Co,Oo=function(e){return e.label},Io=function(e){return e.label},Eo=function(e){return e.value},Po=function(e){return!!e.isDisabled},Mo={clearIndicator:ms,container:is,control:Ss,dropdownIndicator:fs,group:Os,groupHeading:Es,indicatorsContainer:ls,indicatorSeparator:gs,input:Ds,loadingIndicator:xs,loadingMessage:Qa,menu:Za,menuList:Xa,menuPortal:ns,multiValue:As,multiValueLabel:Ls,multiValueRemove:Vs,noOptionsMessage:Ja,option:Ws,placeholder:Ys,singleValue:qs,valueContainer:ss},jo={primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},Do=4,Pr=4,zo=38,Ro=Pr*2,Fo={baseUnit:Pr,controlHeight:zo,menuGutter:Ro},$t={borderRadius:Do,colors:jo,spacing:Fo},To={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:Cn(),captureMenuScroll:!Cn(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:po(),formatGroupLabel:Oo,getOptionLabel:Io,getOptionValue:Eo,isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:Po,loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!Ta(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var n=e.count;return"".concat(n," result").concat(n!==1?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function Tn(o,e,n,a){var t=zr(o,e,n),i=Rr(o,e,n),s=Dr(o,e),r=It(o,e);return{type:"option",data:e,isDisabled:t,isSelected:i,label:s,value:r,index:a}}function Mr(o,e){return o.options.map(function(n,a){if("options"in n){var t=n.options.map(function(s,r){return Tn(o,s,e,r)}).filter(function(s){return An(o,s)});return t.length>0?{type:"group",data:n,options:t,index:a}:void 0}var i=Tn(o,n,e,a);return An(o,i)?i:void 0}).filter(Va)}function jr(o){return o.reduce(function(e,n){return n.type==="group"?e.push.apply(e,cr(n.options.map(function(a){return a.data}))):e.push(n.data),e},[])}function Ao(o,e){return jr(Mr(o,e))}function An(o,e){var n=o.inputValue,a=n===void 0?"":n,t=e.data,i=e.isSelected,s=e.label,r=e.value;return(!Tr(o)||!i)&&Fr(o,{label:s,value:r,data:t},a)}function Lo(o,e){var n=o.focusedValue,a=o.selectValue,t=a.indexOf(n);if(t>-1){var i=e.indexOf(n);if(i>-1)return n;if(t-1?n:e[0]}var Dr=function(e,n){return e.getOptionLabel(n)},It=function(e,n){return e.getOptionValue(n)};function zr(o,e,n){return typeof o.isOptionDisabled=="function"?o.isOptionDisabled(e,n):!1}function Rr(o,e,n){if(n.indexOf(e)>-1)return!0;if(typeof o.isOptionSelected=="function")return o.isOptionSelected(e,n);var a=It(o,e);return n.some(function(t){return It(o,t)===a})}function Fr(o,e,n){return o.filterOption?o.filterOption(e,n):!0}var Tr=function(e){var n=e.hideSelectedOptions,a=e.isMulti;return n===void 0?a:n},Bo=1,Ar=function(o){la(n,o);var e=ha(n);function n(a){var t;if(sa(this,n),t=e.call(this,a),t.state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},t.blockOptionHover=!1,t.isComposing=!1,t.commonProps=void 0,t.initialTouchX=0,t.initialTouchY=0,t.instancePrefix="",t.openAfterFocus=!1,t.scrollToFocusedOptionOnUpdate=!1,t.userIsDragging=void 0,t.controlRef=null,t.getControlRef=function(r){t.controlRef=r},t.focusedOptionRef=null,t.getFocusedOptionRef=function(r){t.focusedOptionRef=r},t.menuListRef=null,t.getMenuListRef=function(r){t.menuListRef=r},t.inputRef=null,t.getInputRef=function(r){t.inputRef=r},t.focus=t.focusInput,t.blur=t.blurInput,t.onChange=function(r,l){var u=t.props,f=u.onChange,p=u.name;l.name=p,t.ariaOnChange(r,l),f(r,l)},t.setValue=function(r,l,u){var f=t.props,p=f.closeMenuOnSelect,y=f.isMulti,h=f.inputValue;t.onInputChange("",{action:"set-value",prevInputValue:h}),p&&(t.setState({inputIsHiddenAfterUpdate:!y}),t.onMenuClose()),t.setState({clearFocusValueOnUpdate:!0}),t.onChange(r,{action:l,option:u})},t.selectOption=function(r){var l=t.props,u=l.blurInputOnSelect,f=l.isMulti,p=l.name,y=t.state.selectValue,h=f&&t.isOptionSelected(r,y),g=t.isOptionDisabled(r,y);if(h){var d=t.getOptionValue(r);t.setValue(y.filter(function(b){return t.getOptionValue(b)!==d}),"deselect-option",r)}else if(!g)f?t.setValue([].concat(cr(y),[r]),"select-option",r):t.setValue(r,"select-option");else{t.ariaOnChange(r,{action:"select-option",option:r,name:p});return}u&&t.blurInput()},t.removeValue=function(r){var l=t.props.isMulti,u=t.state.selectValue,f=t.getOptionValue(r),p=u.filter(function(h){return t.getOptionValue(h)!==f}),y=ft(l,p,p[0]||null);t.onChange(y,{action:"remove-value",removedValue:r}),t.focusInput()},t.clearValue=function(){var r=t.state.selectValue;t.onChange(ft(t.props.isMulti,[],null),{action:"clear",removedValues:r})},t.popValue=function(){var r=t.props.isMulti,l=t.state.selectValue,u=l[l.length-1],f=l.slice(0,l.length-1),p=ft(r,f,f[0]||null);t.onChange(p,{action:"pop-value",removedValue:u})},t.getValue=function(){return t.state.selectValue},t.cx=function(){for(var r=arguments.length,l=new Array(r),u=0;uy||p>y}},t.onTouchEnd=function(r){t.userIsDragging||(t.controlRef&&!t.controlRef.contains(r.target)&&t.menuListRef&&!t.menuListRef.contains(r.target)&&t.blurInput(),t.initialTouchX=0,t.initialTouchY=0)},t.onControlTouchEnd=function(r){t.userIsDragging||t.onControlMouseDown(r)},t.onClearIndicatorTouchEnd=function(r){t.userIsDragging||t.onClearIndicatorMouseDown(r)},t.onDropdownIndicatorTouchEnd=function(r){t.userIsDragging||t.onDropdownIndicatorMouseDown(r)},t.handleInputChange=function(r){var l=t.props.inputValue,u=r.currentTarget.value;t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange(u,{action:"input-change",prevInputValue:l}),t.props.menuIsOpen||t.onMenuOpen()},t.onInputFocus=function(r){t.props.onFocus&&t.props.onFocus(r),t.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(t.openAfterFocus||t.props.openMenuOnFocus)&&t.openMenu("first"),t.openAfterFocus=!1},t.onInputBlur=function(r){var l=t.props.inputValue;if(t.menuListRef&&t.menuListRef.contains(document.activeElement)){t.inputRef.focus();return}t.props.onBlur&&t.props.onBlur(r),t.onInputChange("",{action:"input-blur",prevInputValue:l}),t.onMenuClose(),t.setState({focusedValue:null,isFocused:!1})},t.onOptionHover=function(r){t.blockOptionHover||t.state.focusedOption===r||t.setState({focusedOption:r})},t.shouldHideSelectedOptions=function(){return Tr(t.props)},t.onValueInputFocus=function(r){r.preventDefault(),r.stopPropagation(),t.focus()},t.onKeyDown=function(r){var l=t.props,u=l.isMulti,f=l.backspaceRemovesValue,p=l.escapeClearsValue,y=l.inputValue,h=l.isClearable,g=l.isDisabled,d=l.menuIsOpen,b=l.onKeyDown,m=l.tabSelectsValue,x=l.openMenuOnFocus,S=t.state,O=S.focusedOption,I=S.focusedValue,P=S.selectValue;if(!g&&!(typeof b=="function"&&(b(r),r.defaultPrevented))){switch(t.blockOptionHover=!0,r.key){case"ArrowLeft":if(!u||y)return;t.focusValue("previous");break;case"ArrowRight":if(!u||y)return;t.focusValue("next");break;case"Delete":case"Backspace":if(y)return;if(I)t.removeValue(I);else{if(!f)return;u?t.popValue():h&&t.clearValue()}break;case"Tab":if(t.isComposing||r.shiftKey||!d||!m||!O||x&&t.isOptionSelected(O,P))return;t.selectOption(O);break;case"Enter":if(r.keyCode===229)break;if(d){if(!O||t.isComposing)return;t.selectOption(O);break}return;case"Escape":d?(t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange("",{action:"menu-close",prevInputValue:y}),t.onMenuClose()):h&&p&&t.clearValue();break;case" ":if(y)return;if(!d){t.openMenu("first");break}if(!O)return;t.selectOption(O);break;case"ArrowUp":d?t.focusOption("up"):t.openMenu("last");break;case"ArrowDown":d?t.focusOption("down"):t.openMenu("first");break;case"PageUp":if(!d)return;t.focusOption("pageup");break;case"PageDown":if(!d)return;t.focusOption("pagedown");break;case"Home":if(!d)return;t.focusOption("first");break;case"End":if(!d)return;t.focusOption("last");break;default:return}r.preventDefault()}},t.instancePrefix="react-select-"+(t.props.instanceId||++Bo),t.state.selectValue=Sn(a.value),a.menuIsOpen&&t.state.selectValue.length){var i=t.buildFocusableOptions(),s=i.indexOf(t.state.selectValue[0]);t.state.focusedOption=i[s]}return t}return oa(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&_n(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(t){var i=this.props,s=i.isDisabled,r=i.menuIsOpen,l=this.state.isFocused;(l&&!s&&t.isDisabled||l&&r&&!t.menuIsOpen)&&this.focusInput(),l&&s&&!t.isDisabled?this.setState({isFocused:!1},this.onMenuClose):!l&&!s&&t.isDisabled&&this.inputRef===document.activeElement&&this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(_n(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(t,i){this.props.onInputChange(t,i)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(t){var i=this,s=this.state,r=s.selectValue,l=s.isFocused,u=this.buildFocusableOptions(),f=t==="first"?0:u.length-1;if(!this.props.isMulti){var p=u.indexOf(r[0]);p>-1&&(f=p)}this.scrollToFocusedOptionOnUpdate=!(l&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:u[f]},function(){return i.onMenuOpen()})}},{key:"focusValue",value:function(t){var i=this.state,s=i.selectValue,r=i.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var l=s.indexOf(r);r||(l=-1);var u=s.length-1,f=-1;if(s.length){switch(t){case"previous":l===0?f=0:l===-1?f=u:f=l-1;break;case"next":l>-1&&l0&&arguments[0]!==void 0?arguments[0]:"first",i=this.props.pageSize,s=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var l=0,u=r.indexOf(s);s||(u=-1),t==="up"?l=u>0?u-1:r.length-1:t==="down"?l=(u+1)%r.length:t==="pageup"?(l=u-i,l<0&&(l=0)):t==="pagedown"?(l=u+i,l>r.length-1&&(l=r.length-1)):t==="last"&&(l=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[l],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?typeof this.props.theme=="function"?this.props.theme($t):re(re({},$t),this.props.theme):$t}},{key:"getCommonProps",value:function(){var t=this.clearValue,i=this.cx,s=this.getStyles,r=this.getClassNames,l=this.getValue,u=this.selectOption,f=this.setValue,p=this.props,y=p.isMulti,h=p.isRtl,g=p.options,d=this.hasValue();return{clearValue:t,cx:i,getStyles:s,getClassNames:r,getValue:l,hasValue:d,isMulti:y,isRtl:h,options:g,selectOption:u,selectProps:p,setValue:f,theme:this.getTheme()}}},{key:"hasValue",value:function(){var t=this.state.selectValue;return t.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var t=this.props,i=t.isClearable,s=t.isMulti;return i===void 0?s:i}},{key:"isOptionDisabled",value:function(t,i){return zr(this.props,t,i)}},{key:"isOptionSelected",value:function(t,i){return Rr(this.props,t,i)}},{key:"filterOption",value:function(t,i){return Fr(this.props,t,i)}},{key:"formatOptionLabel",value:function(t,i){if(typeof this.props.formatOptionLabel=="function"){var s=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(t,{context:i,inputValue:s,selectValue:r})}else return this.getOptionLabel(t)}},{key:"formatGroupLabel",value:function(t){return this.props.formatGroupLabel(t)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var t=this.props,i=t.isDisabled,s=t.isSearchable,r=t.inputId,l=t.inputValue,u=t.tabIndex,f=t.form,p=t.menuIsOpen,y=t.required,h=this.getComponents(),g=h.Input,d=this.state,b=d.inputIsHidden,m=d.ariaSelection,x=this.commonProps,S=r||this.getElementId("input"),O=re(re(re({"aria-autocomplete":"list","aria-expanded":p,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":y,role:"combobox"},p&&{"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox")}),!s&&{"aria-readonly":!0}),this.hasValue()?(m==null?void 0:m.action)==="initial-input-focus"&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return s?F.createElement(g,ae({},x,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:S,innerRef:this.getInputRef,isDisabled:i,isHidden:b,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:u,form:f,type:"text",value:l},O)):F.createElement(vo,ae({id:S,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:kt,onFocus:this.onInputFocus,disabled:i,tabIndex:u,inputMode:"none",form:f,value:""},O))}},{key:"renderPlaceholderOrValue",value:function(){var t=this,i=this.getComponents(),s=i.MultiValue,r=i.MultiValueContainer,l=i.MultiValueLabel,u=i.MultiValueRemove,f=i.SingleValue,p=i.Placeholder,y=this.commonProps,h=this.props,g=h.controlShouldRenderValue,d=h.isDisabled,b=h.isMulti,m=h.inputValue,x=h.placeholder,S=this.state,O=S.selectValue,I=S.focusedValue,P=S.isFocused;if(!this.hasValue()||!g)return m?null:F.createElement(p,ae({},y,{key:"placeholder",isDisabled:d,isFocused:P,innerProps:{id:this.getElementId("placeholder")}}),x);if(b)return O.map(function(D,j){var B=D===I,q="".concat(t.getOptionLabel(D),"-").concat(t.getOptionValue(D));return F.createElement(s,ae({},y,{components:{Container:r,Label:l,Remove:u},isFocused:B,isDisabled:d,key:q,index:j,removeProps:{onClick:function(){return t.removeValue(D)},onTouchEnd:function(){return t.removeValue(D)},onMouseDown:function(A){A.preventDefault()}},data:D}),t.formatOptionLabel(D,"value"))});if(m)return null;var E=O[0];return F.createElement(f,ae({},y,{data:E,isDisabled:d}),this.formatOptionLabel(E,"value"))}},{key:"renderClearIndicator",value:function(){var t=this.getComponents(),i=t.ClearIndicator,s=this.commonProps,r=this.props,l=r.isDisabled,u=r.isLoading,f=this.state.isFocused;if(!this.isClearable()||!i||l||!this.hasValue()||u)return null;var p={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return F.createElement(i,ae({},s,{innerProps:p,isFocused:f}))}},{key:"renderLoadingIndicator",value:function(){var t=this.getComponents(),i=t.LoadingIndicator,s=this.commonProps,r=this.props,l=r.isDisabled,u=r.isLoading,f=this.state.isFocused;if(!i||!u)return null;var p={"aria-hidden":"true"};return F.createElement(i,ae({},s,{innerProps:p,isDisabled:l,isFocused:f}))}},{key:"renderIndicatorSeparator",value:function(){var t=this.getComponents(),i=t.DropdownIndicator,s=t.IndicatorSeparator;if(!i||!s)return null;var r=this.commonProps,l=this.props.isDisabled,u=this.state.isFocused;return F.createElement(s,ae({},r,{isDisabled:l,isFocused:u}))}},{key:"renderDropdownIndicator",value:function(){var t=this.getComponents(),i=t.DropdownIndicator;if(!i)return null;var s=this.commonProps,r=this.props.isDisabled,l=this.state.isFocused,u={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return F.createElement(i,ae({},s,{innerProps:u,isDisabled:r,isFocused:l}))}},{key:"renderMenu",value:function(){var t=this,i=this.getComponents(),s=i.Group,r=i.GroupHeading,l=i.Menu,u=i.MenuList,f=i.MenuPortal,p=i.LoadingMessage,y=i.NoOptionsMessage,h=i.Option,g=this.commonProps,d=this.state.focusedOption,b=this.props,m=b.captureMenuScroll,x=b.inputValue,S=b.isLoading,O=b.loadingMessage,I=b.minMenuHeight,P=b.maxMenuHeight,E=b.menuIsOpen,D=b.menuPlacement,j=b.menuPosition,B=b.menuPortalTarget,q=b.menuShouldBlockScroll,k=b.menuShouldScrollIntoView,A=b.noOptionsMessage,v=b.onMenuScrollToTop,L=b.onMenuScrollToBottom;if(!E)return null;var W=function(ee,X){var G=ee.type,ce=ee.data,he=ee.isDisabled,oe=ee.isSelected,le=ee.label,ge=ee.value,pe=d===ce,_e=he?void 0:function(){return t.onOptionHover(ce)},Ce=he?void 0:function(){return t.selectOption(ce)},c="".concat(t.getElementId("option"),"-").concat(X),U={id:c,onClick:Ce,onMouseMove:_e,onMouseOver:_e,tabIndex:-1};return F.createElement(h,ae({},g,{innerProps:U,data:ce,isDisabled:he,isSelected:oe,key:c,label:le,type:G,value:ge,isFocused:pe,innerRef:pe?t.getFocusedOptionRef:void 0}),t.formatOptionLabel(ee.data,"menu"))},N;if(this.hasOptions())N=this.getCategorizedOptions().map(function(z){if(z.type==="group"){var ee=z.data,X=z.options,G=z.index,ce="".concat(t.getElementId("group"),"-").concat(G),he="".concat(ce,"-heading");return F.createElement(s,ae({},g,{key:ce,data:ee,options:X,Heading:r,headingProps:{id:he,data:z.data},label:t.formatGroupLabel(z.data)}),z.options.map(function(oe){return W(oe,"".concat(G,"-").concat(oe.index))}))}else if(z.type==="option")return W(z,"".concat(z.index))});else if(S){var J=O({inputValue:x});if(J===null)return null;N=F.createElement(p,g,J)}else{var $=A({inputValue:x});if($===null)return null;N=F.createElement(y,g,$)}var te={minMenuHeight:I,maxMenuHeight:P,menuPlacement:D,menuPosition:j,menuShouldScrollIntoView:k},T=F.createElement(Ga,ae({},g,te),function(z){var ee=z.ref,X=z.placerProps,G=X.placement,ce=X.maxHeight;return F.createElement(l,ae({},g,te,{innerRef:ee,innerProps:{onMouseDown:t.onMenuMouseDown,onMouseMove:t.onMenuMouseMove,id:t.getElementId("listbox")},isLoading:S,placement:G}),F.createElement(So,{captureEnabled:m,onTopArrive:v,onBottomArrive:L,lockEnabled:q},function(he){return F.createElement(u,ae({},g,{innerRef:function(le){t.getMenuListRef(le),he(le)},isLoading:S,maxHeight:ce,focusedOption:d}),N)}))});return B||j==="fixed"?F.createElement(f,ae({},g,{appendTo:B,controlElement:this.controlRef,menuPlacement:D,menuPosition:j}),T):T}},{key:"renderFormField",value:function(){var t=this,i=this.props,s=i.delimiter,r=i.isDisabled,l=i.isMulti,u=i.name,f=i.required,p=this.state.selectValue;if(f&&!this.hasValue()&&!r)return F.createElement(ko,{name:u,onFocus:this.onValueInputFocus});if(!(!u||r))if(l)if(s){var y=p.map(function(d){return t.getOptionValue(d)}).join(s);return F.createElement("input",{name:u,type:"hidden",value:y})}else{var h=p.length>0?p.map(function(d,b){return F.createElement("input",{key:"i-".concat(b),name:u,type:"hidden",value:t.getOptionValue(d)})}):F.createElement("input",{name:u,type:"hidden",value:""});return F.createElement("div",null,h)}else{var g=p[0]?this.getOptionValue(p[0]):"";return F.createElement("input",{name:u,type:"hidden",value:g})}}},{key:"renderLiveRegion",value:function(){var t=this.commonProps,i=this.state,s=i.ariaSelection,r=i.focusedOption,l=i.focusedValue,u=i.isFocused,f=i.selectValue,p=this.getFocusableOptions();return F.createElement(uo,ae({},t,{id:this.getElementId("live-region"),ariaSelection:s,focusedOption:r,focusedValue:l,isFocused:u,selectValue:f,focusableOptions:p}))}},{key:"render",value:function(){var t=this.getComponents(),i=t.Control,s=t.IndicatorsContainer,r=t.SelectContainer,l=t.ValueContainer,u=this.props,f=u.className,p=u.id,y=u.isDisabled,h=u.menuIsOpen,g=this.state.isFocused,d=this.commonProps=this.getCommonProps();return F.createElement(r,ae({},d,{className:f,innerProps:{id:p,onKeyDown:this.onKeyDown},isDisabled:y,isFocused:g}),this.renderLiveRegion(),F.createElement(i,ae({},d,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:y,isFocused:g,menuIsOpen:h}),F.createElement(l,ae({},d,{isDisabled:y}),this.renderPlaceholderOrValue(),this.renderInput()),F.createElement(s,ae({},d,{isDisabled:y}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(t,i){var s=i.prevProps,r=i.clearFocusValueOnUpdate,l=i.inputIsHiddenAfterUpdate,u=i.ariaSelection,f=i.isFocused,p=i.prevWasFocused,y=t.options,h=t.value,g=t.menuIsOpen,d=t.inputValue,b=t.isMulti,m=Sn(h),x={};if(s&&(h!==s.value||y!==s.options||g!==s.menuIsOpen||d!==s.inputValue)){var S=g?Ao(t,m):[],O=r?Lo(i,m):null,I=Vo(i,S);x={selectValue:m,focusedOption:I,focusedValue:O,clearFocusValueOnUpdate:!1}}var P=l!=null&&t!==s?{inputIsHidden:l,inputIsHiddenAfterUpdate:void 0}:{},E=u,D=f&&p;return f&&!D&&(E={value:ft(b,m,m[0]||null),options:m,action:"initial-input-focus"},D=!p),(u==null?void 0:u.action)==="initial-input-focus"&&(E=null),re(re(re({},x),P),{},{prevProps:t,ariaSelection:E,prevWasFocused:D})}}]),n}(F.Component);Ar.defaultProps=To;var No=F.forwardRef(function(o,e){var n=aa(o);return F.createElement(Ar,ae({ref:e},n))}),$o=No,Uo=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"];function Yt(){return Yt=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(n[t]=o[t]);return n}var Lr=function(e){e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme;var n=Ho(e,Uo);return Yt({},n)},Wo=function(e){var n=typeof e=="string";return n&&["sm","md","lg"].includes(e)},Zo=function(e){return Wo(e)?e:e==="xs"?"sm":e==="xl"?"lg":"md"},De=function(e){var n=Pt(),a=Zo(n.components.Input.defaultProps.size),t=e??a,i=zi(typeof t=="string"?[t]:t,{fallback:"md"})||a;return i};function Ge(){return Ge=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(n[t]=o[t]);return n}var Jo=function(e){var n=e.className,a=e.cx,t=e.children,i=e.innerRef,s=e.innerProps,r=e.isDisabled,l=e.isFocused,u=e.menuIsOpen,f=e.selectProps,p=f.chakraStyles,y=f.size,h=f.variant,g=f.focusBorderColor,d=f.errorBorderColor,b=f.isInvalid,m=f.isReadOnly,x=De(y),S=Be("Input",{size:x,variant:h,focusBorderColor:g,errorBorderColor:d}),O=S.field,I=O.height,P=O.h,E=qo(O,Xo),D=I||P,j=Ie({},E,{position:"relative",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",padding:0,overflow:"hidden",height:"auto",minH:D},r?{pointerEvents:"none"}:{}),B=p!=null&&p.control?p.control(j,e):j;return se.createElement(de,Ie({ref:i,className:a({control:!0,"control--is-disabled":r,"control--is-focused":l,"control--menu-is-open":u},n),sx:B},s,{"data-focus":l?!0:void 0,"data-focus-visible":l?!0:void 0,"data-invalid":b?!0:void 0,"data-disabled":r?!0:void 0,"data-readonly":m?!0:void 0}),t)},Qo=function(e){var n=e.className,a=e.cx,t=e.selectProps,i=t.chakraStyles,s=t.useBasicStyles,r=t.variant,l=Ie({opacity:1},s||r!=="outline"?{display:"none"}:{}),u=i!=null&&i.indicatorSeparator?i.indicatorSeparator(l,e):l;return se.createElement(er,{className:a({"indicator-separator":!0},n),sx:u,orientation:"vertical"})},el=function(e){return se.createElement(Ke,Ie({role:"presentation",focusable:"false","aria-hidden":"true"},e),se.createElement("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"}))},tl=function(e){var n=e.children,a=e.className,t=e.cx,i=e.innerProps,s=e.selectProps,r=s.chakraStyles,l=s.useBasicStyles,u=s.size,f=s.focusBorderColor,p=s.errorBorderColor,y=s.variant,h=De(u),g=Be("Input",{size:h,variant:y,focusBorderColor:f,errorBorderColor:p}),d={sm:"16px",md:"20px",lg:"24px"},b=d[h],m=Ie({},g.addon,{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",borderRadius:0,borderWidth:0,fontSize:b},l&&{background:"transparent",padding:0,width:6,marginRight:2,marginLeft:1,cursor:"inherit"}),x=r!=null&&r.dropdownIndicator?r.dropdownIndicator(m,e):m,S={height:"1em",width:"1em"},O=r!=null&&r.downChevron?r.downChevron(S,e):S;return se.createElement(de,Ie({},i,{className:t({indicator:!0,"dropdown-indicator":!0},a),sx:x}),n||se.createElement(el,{sx:O}))},nl=function(e){return se.createElement(Ke,Ie({focusable:"false","aria-hidden":!0},e),se.createElement("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"}))},rl=function(e){var n=e.children,a=e.className,t=e.cx,i=e.innerProps,s=e.selectProps,r=s.chakraStyles,l=s.size,u=De(l),f=Vn("CloseButton",{size:u}),p=Ie({},f,{marginX:1,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer"}),y=r!=null&&r.clearIndicator?r.clearIndicator(p,e):p,h={width:"1em",height:"1em"},g=r!=null&&r.crossIcon?r.crossIcon(h,e):h;return se.createElement(de,Ie({role:"button",className:t({indicator:!0,"clear-indicator":!0},a),sx:y,"aria-label":"Clear selected options"},i),n||se.createElement(nl,{sx:g}))},il=function(e){var n=e.className,a=e.cx,t=e.innerProps,i=e.selectProps,s=i.chakraStyles,r=i.size,l=e.color,u=e.emptyColor,f=e.speed,p=e.thickness,y=e.spinnerSize,h=De(r),g={sm:"xs",md:"sm",lg:"md"},d=g[h],b={marginRight:3},m=s!=null&&s.loadingIndicator?s.loadingIndicator(b,e):b;return se.createElement(ei,Ie({className:a({indicator:!0,"loading-indicator":!0},n),sx:m},t,{size:y||d,color:l,emptyColor:u,speed:f,thickness:p}))};const al=Jo;var sl=["innerRef","isDisabled","isHidden","inputClassName"];function nt(){return nt=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(n[t]=o[t]);return n}var ll=function(e){var n=e.className,a=e.cx,t=e.value,i=e.selectProps,s=i.chakraStyles,r=i.isReadOnly,l=Lr(e),u=l.innerRef,f=l.isDisabled,p=l.isHidden,y=l.inputClassName,h=ol(l,sl),g={gridArea:"1 / 2",minW:"2px",border:0,margin:0,outline:0,padding:0},d={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content",color:"inherit",marginX:"0.125rem",paddingY:"0.125rem",visibility:f?"hidden":"visible",transform:t?"translateZ(0)":"",_after:nt({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre",padding:0},g)},b=s!=null&&s.inputContainer?s.inputContainer(d,e):d,m=nt({background:0,opacity:p?0:1,width:"100%"},g),x=s!=null&&s.input?s.input(m,e):m;return se.createElement(de,{className:a({"input-container":!0},n),"data-value":t||"",sx:b},se.createElement(Te.input,nt({className:a({input:!0},y),ref:u,sx:x,disabled:f,readOnly:r?!0:void 0},h)))};const ul=ll;var cl=["data"];function dl(o,e){if(o==null)return{};var n={},a=Object.keys(o),t,i;for(i=0;i=0)&&(n[t]=o[t]);return n}function Se(){return Se=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(n[t]=o[t]);return n}var Ll=function(e){var n,a=e.components,t=a===void 0?{}:a;e.theme;var i=e.size,s=e.colorScheme,r=s===void 0?"gray":s,l=e.isDisabled,u=e.isInvalid,f=e.isReadOnly,p=e.required,y=e.isRequired,h=e.inputId,g=e.tagVariant,d=e.selectedOptionStyle,b=d===void 0?"color":d,m=e.selectedOptionColorScheme,x=e.selectedOptionColor,S=e.variant,O=e.focusBorderColor,I=e.errorBorderColor,P=e.chakraStyles,E=P===void 0?{}:P,D=e.onFocus,j=e.onBlur,B=e.menuIsOpen,q=Al(e,Tl),k=Pt(),A=k.components.Input.defaultProps.variant,v=hi({id:h,isDisabled:l,isInvalid:u,isRequired:y,isReadOnly:f,onFocus:D,onBlur:j}),L=B??(v.readOnly?!1:void 0),W=b,N=["color","check"];N.includes(b)||(W="color");var J=m||x||"blue";typeof J!="string"&&(J="blue");var $=Et({components:Et({},Fl,t),colorScheme:r,size:i,tagVariant:g,selectedOptionStyle:W,selectedOptionColorScheme:J,variant:S??A,chakraStyles:E,focusBorderColor:O,errorBorderColor:I,onFocus:v.onFocus,onBlur:v.onBlur,isDisabled:v.disabled,isInvalid:!!v["aria-invalid"],inputId:v.id,isReadOnly:v.readOnly,required:p??v.required,menuIsOpen:L},q,{"aria-invalid":(n=q["aria-invalid"])!=null?n:v["aria-invalid"]});return $};const Vl=Ll;function qt(){return qt=Object.assign?Object.assign.bind():function(o){for(var e=1;e({value:g,label:g})))??[],[r,l]=F.useState(s),u=async()=>{var g,d;await((g=$e)==null?void 0:g.put({name:t,workflowIDs:[],updateTime:Date.now()})),await((d=$e)==null?void 0:d.listAll().then(b=>a(b??[]))),i("")},f=async()=>{var d;const g=await((d=$e)==null?void 0:d.listAll());a(g??[])};if($e==null)return alert("Error: TagsTable is not loaded"),null;const p=n.map(g=>({value:g.name,label:g.name})),y=37*5;return w.jsxs(Kn,{isLazy:!0,onOpen:f,children:[w.jsx(Xn,{children:w.jsx(be,{"aria-label":"Delete confirm",size:"sm",variant:"ghost",icon:w.jsx(lr,{color:"#718096"})})}),w.jsxs(qn,{children:[w.jsx(Jn,{}),w.jsx(Qn,{}),w.jsx(rr,{children:w.jsx("b",{children:o.name})}),w.jsxs(sn,{children:[w.jsx(Nl,{isMulti:!0,name:"tags",options:p,menuIsOpen:!0,value:r,onChange:async g=>{var d;l(g),await((d=ke)==null?void 0:d.updateFlow(o.id,{tags:g.map(b=>b.value)})),await(e==null?void 0:e())},chakraStyles:{dropdownIndicator:g=>({...g,p:0,w:"30px"}),menuList:g=>({...g,shadow:"none",pt:0})},placeholder:"Select tags",closeMenuOnSelect:!1,maxMenuHeight:y}),w.jsxs(ye,{gap:4,mt:Math.min(y,Math.max(n.length,3)*37),children:[w.jsx(it,{placeholder:"New tag name",size:"sm",mt:6,mb:6,variant:"flushed",value:t,onChange:g=>{i(g.target.value.trim())}}),w.jsx(xe,{iconSpacing:1,leftIcon:w.jsx(Qt,{size:16}),colorScheme:"teal",variant:"solid",size:"xs",px:5,isDisabled:t.length===0,onClick:u,children:"New Tag"})]})]})]})]})}function Ul({menuPosition:o,workflowID:e,onClose:n}){const{onDuplicateWorkflow:a}=F.useContext(en);return w.jsx(w.Fragment,{children:w.jsx(de,{position:"absolute",top:o.y,left:o.x,children:w.jsx(at,{isOpen:!0,onClose:n,children:w.jsx(Mt,{children:w.jsx(Le,{onClick:()=>a&&a(e),children:"Duplicate"})})})})})}function Br(o){const{promptMessage:e="Are you sure you want to delete this?",variant:n="ghost",onDelete:a,isDisabled:t=!1,tooltipText:i}=o;return w.jsx(Kn,{isLazy:!0,placement:"auto",children:({onClose:s})=>w.jsxs(w.Fragment,{children:[w.jsx(Xn,{children:w.jsx(de,{children:w.jsx(Me,{hasArrow:!0,label:i,placement:"bottom",children:w.jsx(be,{"aria-label":"Delete confirm",size:"sm",icon:w.jsx(rn,{color:"#F56565"}),isDisabled:t,variant:n})})})}),w.jsxs(qn,{children:[w.jsx(Jn,{}),w.jsx(Qn,{onClick:s}),w.jsxs(sn,{children:[w.jsx(we,{mb:4,pr:4,fontWeight:600,children:e}),w.jsx(xe,{colorScheme:"red",size:"sm",onClick:()=>{a(),s()},children:"Yes, delete"})]})]})]})})}const Nr=F.memo(function({workflow:e}){const{colorMode:n}=Jt(),[a,t]=F.useState(!1),[i,s]=F.useState({x:0,y:0}),[r,l]=F.useState(!1),{setDraggingFile:u,isMultiSelecting:f,onMultiSelectFlow:p,onDeleteFlow:y,multiSelectedFlowsID:h,onRefreshFilesList:g,draggingFile:d}=F.useContext(He),b=h&&h.length>0&&h.includes(e.id),{curFlowID:m,loadWorkflowID:x}=F.useContext(en),S=m===e.id,O=B=>{B.preventDefault(),s({x:B.clientX,y:B.clientY}),l(!0)},[I,P]=F.useState(!1),E=()=>{l(!1)},D=n==="light"?"gray.200":"#4A5568",j=w.jsxs(de,{flexShrink:1,flexGrow:1,onDragOver:B=>{B.preventDefault(),t(!0)},onDragLeave:()=>{t(!1)},onDrop:async()=>{var B;d&&!rt(d)&&(await((B=ke)==null?void 0:B.updateFlow(d.id,{parentFolderID:e.parentFolderID})),await(g==null?void 0:g())),t(!1)},backgroundColor:S?"teal.200":r?D:void 0,color:S&&!f?"#333":void 0,draggable:!f,onDragStart:B=>{u&&u(e)},borderRadius:6,px:1,py:1,onClick:()=>{!f&&x(e.id)},_hover:{bg:D},children:[w.jsxs(ye,{children:[e.coverMediaPath!=null&&(fi(e.coverMediaPath)?w.jsx(Pi,{borderRadius:3,boxSize:"60px",objectFit:"cover",src:`/workspace/view_media?filename=${e.coverMediaPath}`,alt:e.name??"workflow cover image"}):w.jsx("video",{width:60,height:60,src:`/workspace/view_media?filename=${e.coverMediaPath}`,muted:!0,children:w.jsx("track",{kind:"captions"})})),w.jsxs(Ue,{textAlign:"left",gap:0,children:[w.jsx(we,{fontWeight:"500",children:e.name??"untitled"}),w.jsxs(we,{color:"GrayText",ml:2,fontSize:"sm",children:["Updated: ",Zn(e.updateTime)]})]})]}),a&&w.jsx(de,{width:"100%",mt:2,height:"2px",backgroundColor:"#4299E1"})]});return w.jsxs(ye,{w:"100%",mb:1,justify:"space-between",onContextMenu:O,onMouseEnter:()=>{P(!0)},onMouseLeave:()=>{P(!1)},children:[f?w.jsx(jt,{isChecked:b,spacing:4,onChange:B=>{p&&p(e.id,B.target.checked)},children:j}):w.jsxs(w.Fragment,{children:[j,w.jsxs(tt,{width:"90px",justifyContent:"flex-end",children:[I&&w.jsx($l,{workflow:e}),w.jsx(Me,{label:"Open in new tab",children:w.jsx(be,{"aria-label":"Open in new tab",size:"sm",variant:"ghost",onClick:()=>pi(e.id),icon:w.jsx(mi,{color:"#718096",size:23})})}),w.jsx(Br,{promptMessage:"Are you sure you want to delete this workflow?",onDelete:()=>{y&&y(e.id)}})]})]}),r&&w.jsx(Ul,{menuPosition:i,onClose:E,workflowID:e.id})]})});function pt(o){throw new Error('Could not dynamically require "'+o+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var $r={exports:{}};/*! - -JSZip v3.10.1 - A JavaScript class for generating and reading zip files - - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/main/LICENSE -*/(function(o,e){(function(n){o.exports=n()})(function(){return function n(a,t,i){function s(u,f){if(!t[u]){if(!a[u]){var p=typeof pt=="function"&&pt;if(!f&&p)return p(u,!0);if(r)return r(u,!0);var y=new Error("Cannot find module '"+u+"'");throw y.code="MODULE_NOT_FOUND",y}var h=t[u]={exports:{}};a[u][0].call(h.exports,function(g){var d=a[u][1][g];return s(d||g)},h,h.exports,n,a,t,i)}return t[u].exports}for(var r=typeof pt=="function"&&pt,l=0;l>2,h=(3&u)<<4|f>>4,g=1>6:64,d=2>4,f=(15&y)<<4|(h=r.indexOf(l.charAt(d++)))>>2,p=(3&h)<<6|(g=r.indexOf(l.charAt(d++))),x[b++]=u,h!==64&&(x[b++]=f),g!==64&&(x[b++]=p);return x}},{"./support":30,"./utils":32}],2:[function(n,a,t){var i=n("./external"),s=n("./stream/DataWorker"),r=n("./stream/Crc32Probe"),l=n("./stream/DataLengthProbe");function u(f,p,y,h,g){this.compressedSize=f,this.uncompressedSize=p,this.crc32=y,this.compression=h,this.compressedContent=g}u.prototype={getContentWorker:function(){var f=new s(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new l("data_length")),p=this;return f.on("end",function(){if(this.streamInfo.data_length!==p.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),f},getCompressedWorker:function(){return new s(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},u.createWorkerFrom=function(f,p,y){return f.pipe(new r).pipe(new l("uncompressedSize")).pipe(p.compressWorker(y)).pipe(new l("compressedSize")).withStreamInfo("compression",p)},a.exports=u},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,a,t){var i=n("./stream/GenericWorker");t.STORE={magic:"\0\0",compressWorker:function(){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},t.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,a,t){var i=n("./utils"),s=function(){for(var r,l=[],u=0;u<256;u++){r=u;for(var f=0;f<8;f++)r=1&r?3988292384^r>>>1:r>>>1;l[u]=r}return l}();a.exports=function(r,l){return r!==void 0&&r.length?i.getTypeOf(r)!=="string"?function(u,f,p,y){var h=s,g=y+p;u^=-1;for(var d=y;d>>8^h[255&(u^f[d])];return-1^u}(0|l,r,r.length,0):function(u,f,p,y){var h=s,g=y+p;u^=-1;for(var d=y;d>>8^h[255&(u^f.charCodeAt(d))];return-1^u}(0|l,r,r.length,0):0}},{"./utils":32}],5:[function(n,a,t){t.base64=!1,t.binary=!1,t.dir=!1,t.createFolders=!0,t.date=null,t.compression=null,t.compressionOptions=null,t.comment=null,t.unixPermissions=null,t.dosPermissions=null},{}],6:[function(n,a,t){var i=null;i=typeof Promise<"u"?Promise:n("lie"),a.exports={Promise:i}},{lie:37}],7:[function(n,a,t){var i=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",s=n("pako"),r=n("./utils"),l=n("./stream/GenericWorker"),u=i?"uint8array":"array";function f(p,y){l.call(this,"FlateWorker/"+p),this._pako=null,this._pakoAction=p,this._pakoOptions=y,this.meta={}}t.magic="\b\0",r.inherits(f,l),f.prototype.processChunk=function(p){this.meta=p.meta,this._pako===null&&this._createPako(),this._pako.push(r.transformTo(u,p.data),!1)},f.prototype.flush=function(){l.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},f.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this._pako=null},f.prototype._createPako=function(){this._pako=new s[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var p=this;this._pako.onData=function(y){p.push({data:y,meta:p.meta})}},t.compressWorker=function(p){return new f("Deflate",p)},t.uncompressWorker=function(){return new f("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,a,t){function i(h,g){var d,b="";for(d=0;d>>=8;return b}function s(h,g,d,b,m,x){var S,O,I=h.file,P=h.compression,E=x!==u.utf8encode,D=r.transformTo("string",x(I.name)),j=r.transformTo("string",u.utf8encode(I.name)),B=I.comment,q=r.transformTo("string",x(B)),k=r.transformTo("string",u.utf8encode(B)),A=j.length!==I.name.length,v=k.length!==B.length,L="",W="",N="",J=I.dir,$=I.date,te={crc32:0,compressedSize:0,uncompressedSize:0};g&&!d||(te.crc32=h.crc32,te.compressedSize=h.compressedSize,te.uncompressedSize=h.uncompressedSize);var T=0;g&&(T|=8),E||!A&&!v||(T|=2048);var z=0,ee=0;J&&(z|=16),m==="UNIX"?(ee=798,z|=function(G,ce){var he=G;return G||(he=ce?16893:33204),(65535&he)<<16}(I.unixPermissions,J)):(ee=20,z|=function(G){return 63&(G||0)}(I.dosPermissions)),S=$.getUTCHours(),S<<=6,S|=$.getUTCMinutes(),S<<=5,S|=$.getUTCSeconds()/2,O=$.getUTCFullYear()-1980,O<<=4,O|=$.getUTCMonth()+1,O<<=5,O|=$.getUTCDate(),A&&(W=i(1,1)+i(f(D),4)+j,L+="up"+i(W.length,2)+W),v&&(N=i(1,1)+i(f(q),4)+k,L+="uc"+i(N.length,2)+N);var X="";return X+=` -\0`,X+=i(T,2),X+=P.magic,X+=i(S,2),X+=i(O,2),X+=i(te.crc32,4),X+=i(te.compressedSize,4),X+=i(te.uncompressedSize,4),X+=i(D.length,2),X+=i(L.length,2),{fileRecord:p.LOCAL_FILE_HEADER+X+D+L,dirRecord:p.CENTRAL_FILE_HEADER+i(ee,2)+X+i(q.length,2)+"\0\0\0\0"+i(z,4)+i(b,4)+D+L+q}}var r=n("../utils"),l=n("../stream/GenericWorker"),u=n("../utf8"),f=n("../crc32"),p=n("../signature");function y(h,g,d,b){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=g,this.zipPlatform=d,this.encodeFileName=b,this.streamFiles=h,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}r.inherits(y,l),y.prototype.push=function(h){var g=h.meta.percent||0,d=this.entriesCount,b=this._sources.length;this.accumulate?this.contentBuffer.push(h):(this.bytesWritten+=h.data.length,l.prototype.push.call(this,{data:h.data,meta:{currentFile:this.currentFile,percent:d?(g+100*(d-b-1))/d:100}}))},y.prototype.openedSource=function(h){this.currentSourceOffset=this.bytesWritten,this.currentFile=h.file.name;var g=this.streamFiles&&!h.file.dir;if(g){var d=s(h,g,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:d.fileRecord,meta:{percent:0}})}else this.accumulate=!0},y.prototype.closedSource=function(h){this.accumulate=!1;var g=this.streamFiles&&!h.file.dir,d=s(h,g,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(d.dirRecord),g)this.push({data:function(b){return p.DATA_DESCRIPTOR+i(b.crc32,4)+i(b.compressedSize,4)+i(b.uncompressedSize,4)}(h),meta:{percent:100}});else for(this.push({data:d.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},y.prototype.flush=function(){for(var h=this.bytesWritten,g=0;g=this.index;l--)u=(u<<8)+this.byteAt(l);return this.index+=r,u},readString:function(r){return i.transformTo("string",this.readData(r))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var r=this.readInt(4);return new Date(Date.UTC(1980+(r>>25&127),(r>>21&15)-1,r>>16&31,r>>11&31,r>>5&63,(31&r)<<1))}},a.exports=s},{"../utils":32}],19:[function(n,a,t){var i=n("./Uint8ArrayReader");function s(r){i.call(this,r)}n("../utils").inherits(s,i),s.prototype.readData=function(r){this.checkOffset(r);var l=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,l},a.exports=s},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,a,t){var i=n("./DataReader");function s(r){i.call(this,r)}n("../utils").inherits(s,i),s.prototype.byteAt=function(r){return this.data.charCodeAt(this.zero+r)},s.prototype.lastIndexOfSignature=function(r){return this.data.lastIndexOf(r)-this.zero},s.prototype.readAndCheckSignature=function(r){return r===this.readData(4)},s.prototype.readData=function(r){this.checkOffset(r);var l=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,l},a.exports=s},{"../utils":32,"./DataReader":18}],21:[function(n,a,t){var i=n("./ArrayReader");function s(r){i.call(this,r)}n("../utils").inherits(s,i),s.prototype.readData=function(r){if(this.checkOffset(r),r===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+r);return this.index+=r,l},a.exports=s},{"../utils":32,"./ArrayReader":17}],22:[function(n,a,t){var i=n("../utils"),s=n("../support"),r=n("./ArrayReader"),l=n("./StringReader"),u=n("./NodeBufferReader"),f=n("./Uint8ArrayReader");a.exports=function(p){var y=i.getTypeOf(p);return i.checkSupport(y),y!=="string"||s.uint8array?y==="nodebuffer"?new u(p):s.uint8array?new f(i.transformTo("uint8array",p)):new r(i.transformTo("array",p)):new l(p)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,a,t){t.LOCAL_FILE_HEADER="PK",t.CENTRAL_FILE_HEADER="PK",t.CENTRAL_DIRECTORY_END="PK",t.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",t.ZIP64_CENTRAL_DIRECTORY_END="PK",t.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,a,t){var i=n("./GenericWorker"),s=n("../utils");function r(l){i.call(this,"ConvertWorker to "+l),this.destType=l}s.inherits(r,i),r.prototype.processChunk=function(l){this.push({data:s.transformTo(this.destType,l.data),meta:l.meta})},a.exports=r},{"../utils":32,"./GenericWorker":28}],25:[function(n,a,t){var i=n("./GenericWorker"),s=n("../crc32");function r(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(r,i),r.prototype.processChunk=function(l){this.streamInfo.crc32=s(l.data,this.streamInfo.crc32||0),this.push(l)},a.exports=r},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,a,t){var i=n("../utils"),s=n("./GenericWorker");function r(l){s.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}i.inherits(r,s),r.prototype.processChunk=function(l){if(l){var u=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=u+l.data.length}s.prototype.processChunk.call(this,l)},a.exports=r},{"../utils":32,"./GenericWorker":28}],27:[function(n,a,t){var i=n("../utils"),s=n("./GenericWorker");function r(l){s.call(this,"DataWorker");var u=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(f){u.dataIsReady=!0,u.data=f,u.max=f&&f.length||0,u.type=i.getTypeOf(f),u.isPaused||u._tickAndRepeat()},function(f){u.error(f)})}i.inherits(r,s),r.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this.data=null},r.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},r.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},r.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,u=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,u);break;case"uint8array":l=this.data.subarray(this.index,u);break;case"array":case"nodebuffer":l=this.data.slice(this.index,u)}return this.index=u,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},a.exports=r},{"../utils":32,"./GenericWorker":28}],28:[function(n,a,t){function i(s){this.name=s||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(s){this.emit("data",s)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(s){this.emit("error",s)}return!0},error:function(s){return!this.isFinished&&(this.isPaused?this.generatedError=s:(this.isFinished=!0,this.emit("error",s),this.previous&&this.previous.error(s),this.cleanUp()),!0)},on:function(s,r){return this._listeners[s].push(r),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(s,r){if(this._listeners[s])for(var l=0;l "+s:s}},a.exports=i},{}],29:[function(n,a,t){var i=n("../utils"),s=n("./ConvertWorker"),r=n("./GenericWorker"),l=n("../base64"),u=n("../support"),f=n("../external"),p=null;if(u.nodestream)try{p=n("../nodejs/NodejsStreamOutputAdapter")}catch{}function y(g,d){return new f.Promise(function(b,m){var x=[],S=g._internalType,O=g._outputType,I=g._mimeType;g.on("data",function(P,E){x.push(P),d&&d(E)}).on("error",function(P){x=[],m(P)}).on("end",function(){try{var P=function(E,D,j){switch(E){case"blob":return i.newBlob(i.transformTo("arraybuffer",D),j);case"base64":return l.encode(D);default:return i.transformTo(E,D)}}(O,function(E,D){var j,B=0,q=null,k=0;for(j=0;j"u")t.blob=!1;else{var i=new ArrayBuffer(0);try{t.blob=new Blob([i],{type:"application/zip"}).size===0}catch{try{var s=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);s.append(i),t.blob=s.getBlob("application/zip").size===0}catch{t.blob=!1}}}try{t.nodestream=!!n("readable-stream").Readable}catch{t.nodestream=!1}},{"readable-stream":16}],31:[function(n,a,t){for(var i=n("./utils"),s=n("./support"),r=n("./nodejsUtils"),l=n("./stream/GenericWorker"),u=new Array(256),f=0;f<256;f++)u[f]=252<=f?6:248<=f?5:240<=f?4:224<=f?3:192<=f?2:1;u[254]=u[254]=1;function p(){l.call(this,"utf-8 decode"),this.leftOver=null}function y(){l.call(this,"utf-8 encode")}t.utf8encode=function(h){return s.nodebuffer?r.newBufferFrom(h,"utf-8"):function(g){var d,b,m,x,S,O=g.length,I=0;for(x=0;x>>6:(b<65536?d[S++]=224|b>>>12:(d[S++]=240|b>>>18,d[S++]=128|b>>>12&63),d[S++]=128|b>>>6&63),d[S++]=128|63&b);return d}(h)},t.utf8decode=function(h){return s.nodebuffer?i.transformTo("nodebuffer",h).toString("utf-8"):function(g){var d,b,m,x,S=g.length,O=new Array(2*S);for(d=b=0;d>10&1023,O[b++]=56320|1023&m)}return O.length!==b&&(O.subarray?O=O.subarray(0,b):O.length=b),i.applyFromCharCode(O)}(h=i.transformTo(s.uint8array?"uint8array":"array",h))},i.inherits(p,l),p.prototype.processChunk=function(h){var g=i.transformTo(s.uint8array?"uint8array":"array",h.data);if(this.leftOver&&this.leftOver.length){if(s.uint8array){var d=g;(g=new Uint8Array(d.length+this.leftOver.length)).set(this.leftOver,0),g.set(d,this.leftOver.length)}else g=this.leftOver.concat(g);this.leftOver=null}var b=function(x,S){var O;for((S=S||x.length)>x.length&&(S=x.length),O=S-1;0<=O&&(192&x[O])==128;)O--;return O<0||O===0?S:O+u[x[O]]>S?O:S}(g),m=g;b!==g.length&&(s.uint8array?(m=g.subarray(0,b),this.leftOver=g.subarray(b,g.length)):(m=g.slice(0,b),this.leftOver=g.slice(b,g.length))),this.push({data:t.utf8decode(m),meta:h.meta})},p.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=p,i.inherits(y,l),y.prototype.processChunk=function(h){this.push({data:t.utf8encode(h.data),meta:h.meta})},t.Utf8EncodeWorker=y},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,a,t){var i=n("./support"),s=n("./base64"),r=n("./nodejsUtils"),l=n("./external");function u(d){return d}function f(d,b){for(var m=0;m>8;this.dir=!!(16&this.externalFileAttributes),h==0&&(this.dosPermissions=63&this.externalFileAttributes),h==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var h=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=h.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=h.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=h.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=h.readInt(4))}},readExtraFields:function(h){var g,d,b,m=h.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});h.index+4>>6:(h<65536?y[b++]=224|h>>>12:(y[b++]=240|h>>>18,y[b++]=128|h>>>12&63),y[b++]=128|h>>>6&63),y[b++]=128|63&h);return y},t.buf2binstring=function(p){return f(p,p.length)},t.binstring2buf=function(p){for(var y=new i.Buf8(p.length),h=0,g=y.length;h>10&1023,x[g++]=56320|1023&d)}return f(x,g)},t.utf8border=function(p,y){var h;for((y=y||p.length)>p.length&&(y=p.length),h=y-1;0<=h&&(192&p[h])==128;)h--;return h<0||h===0?y:h+l[p[h]]>y?h:y}},{"./common":41}],43:[function(n,a,t){a.exports=function(i,s,r,l){for(var u=65535&i|0,f=i>>>16&65535|0,p=0;r!==0;){for(r-=p=2e3>>1:s>>>1;r[l]=s}return r}();a.exports=function(s,r,l,u){var f=i,p=u+l;s^=-1;for(var y=u;y>>8^f[255&(s^r[y])];return-1^s}},{}],46:[function(n,a,t){var i,s=n("../utils/common"),r=n("./trees"),l=n("./adler32"),u=n("./crc32"),f=n("./messages"),p=0,y=4,h=0,g=-2,d=-1,b=4,m=2,x=8,S=9,O=286,I=30,P=19,E=2*O+1,D=15,j=3,B=258,q=B+j+1,k=42,A=113,v=1,L=2,W=3,N=4;function J(c,U){return c.msg=f[U],U}function $(c){return(c<<1)-(4c.avail_out&&(V=c.avail_out),V!==0&&(s.arraySet(c.output,U.pending_buf,U.pending_out,V,c.next_out),c.next_out+=V,U.pending_out+=V,c.total_out+=V,c.avail_out-=V,U.pending-=V,U.pending===0&&(U.pending_out=0))}function z(c,U){r._tr_flush_block(c,0<=c.block_start?c.block_start:-1,c.strstart-c.block_start,U),c.block_start=c.strstart,T(c.strm)}function ee(c,U){c.pending_buf[c.pending++]=U}function X(c,U){c.pending_buf[c.pending++]=U>>>8&255,c.pending_buf[c.pending++]=255&U}function G(c,U){var V,C,_=c.max_chain_length,M=c.strstart,H=c.prev_length,Z=c.nice_match,R=c.strstart>c.w_size-q?c.strstart-(c.w_size-q):0,Y=c.window,Q=c.w_mask,K=c.prev,ne=c.strstart+B,fe=Y[M+H-1],ue=Y[M+H];c.prev_length>=c.good_match&&(_>>=2),Z>c.lookahead&&(Z=c.lookahead);do if(Y[(V=U)+H]===ue&&Y[V+H-1]===fe&&Y[V]===Y[M]&&Y[++V]===Y[M+1]){M+=2,V++;do;while(Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&Y[++M]===Y[++V]&&MR&&--_!=0);return H<=c.lookahead?H:c.lookahead}function ce(c){var U,V,C,_,M,H,Z,R,Y,Q,K=c.w_size;do{if(_=c.window_size-c.lookahead-c.strstart,c.strstart>=K+(K-q)){for(s.arraySet(c.window,c.window,K,K,0),c.match_start-=K,c.strstart-=K,c.block_start-=K,U=V=c.hash_size;C=c.head[--U],c.head[U]=K<=C?C-K:0,--V;);for(U=V=K;C=c.prev[--U],c.prev[U]=K<=C?C-K:0,--V;);_+=K}if(c.strm.avail_in===0)break;if(H=c.strm,Z=c.window,R=c.strstart+c.lookahead,Y=_,Q=void 0,Q=H.avail_in,Y=j)for(M=c.strstart-c.insert,c.ins_h=c.window[M],c.ins_h=(c.ins_h<=j&&(c.ins_h=(c.ins_h<=j)if(C=r._tr_tally(c,c.strstart-c.match_start,c.match_length-j),c.lookahead-=c.match_length,c.match_length<=c.max_lazy_match&&c.lookahead>=j){for(c.match_length--;c.strstart++,c.ins_h=(c.ins_h<=j&&(c.ins_h=(c.ins_h<=j&&c.match_length<=c.prev_length){for(_=c.strstart+c.lookahead-j,C=r._tr_tally(c,c.strstart-1-c.prev_match,c.prev_length-j),c.lookahead-=c.prev_length-1,c.prev_length-=2;++c.strstart<=_&&(c.ins_h=(c.ins_h<c.pending_buf_size-5&&(V=c.pending_buf_size-5);;){if(c.lookahead<=1){if(ce(c),c.lookahead===0&&U===p)return v;if(c.lookahead===0)break}c.strstart+=c.lookahead,c.lookahead=0;var C=c.block_start+V;if((c.strstart===0||c.strstart>=C)&&(c.lookahead=c.strstart-C,c.strstart=C,z(c,!1),c.strm.avail_out===0)||c.strstart-c.block_start>=c.w_size-q&&(z(c,!1),c.strm.avail_out===0))return v}return c.insert=0,U===y?(z(c,!0),c.strm.avail_out===0?W:N):(c.strstart>c.block_start&&(z(c,!1),c.strm.avail_out),v)}),new le(4,4,8,4,he),new le(4,5,16,8,he),new le(4,6,32,32,he),new le(4,4,16,16,oe),new le(8,16,32,32,oe),new le(8,16,128,128,oe),new le(8,32,128,256,oe),new le(32,128,258,1024,oe),new le(32,258,258,4096,oe)],t.deflateInit=function(c,U){return Ce(c,U,x,15,8,0)},t.deflateInit2=Ce,t.deflateReset=_e,t.deflateResetKeep=pe,t.deflateSetHeader=function(c,U){return c&&c.state?c.state.wrap!==2?g:(c.state.gzhead=U,h):g},t.deflate=function(c,U){var V,C,_,M;if(!c||!c.state||5>8&255),ee(C,C.gzhead.time>>16&255),ee(C,C.gzhead.time>>24&255),ee(C,C.level===9?2:2<=C.strategy||C.level<2?4:0),ee(C,255&C.gzhead.os),C.gzhead.extra&&C.gzhead.extra.length&&(ee(C,255&C.gzhead.extra.length),ee(C,C.gzhead.extra.length>>8&255)),C.gzhead.hcrc&&(c.adler=u(c.adler,C.pending_buf,C.pending,0)),C.gzindex=0,C.status=69):(ee(C,0),ee(C,0),ee(C,0),ee(C,0),ee(C,0),ee(C,C.level===9?2:2<=C.strategy||C.level<2?4:0),ee(C,3),C.status=A);else{var H=x+(C.w_bits-8<<4)<<8;H|=(2<=C.strategy||C.level<2?0:C.level<6?1:C.level===6?2:3)<<6,C.strstart!==0&&(H|=32),H+=31-H%31,C.status=A,X(C,H),C.strstart!==0&&(X(C,c.adler>>>16),X(C,65535&c.adler)),c.adler=1}if(C.status===69)if(C.gzhead.extra){for(_=C.pending;C.gzindex<(65535&C.gzhead.extra.length)&&(C.pending!==C.pending_buf_size||(C.gzhead.hcrc&&C.pending>_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),T(c),_=C.pending,C.pending!==C.pending_buf_size));)ee(C,255&C.gzhead.extra[C.gzindex]),C.gzindex++;C.gzhead.hcrc&&C.pending>_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),C.gzindex===C.gzhead.extra.length&&(C.gzindex=0,C.status=73)}else C.status=73;if(C.status===73)if(C.gzhead.name){_=C.pending;do{if(C.pending===C.pending_buf_size&&(C.gzhead.hcrc&&C.pending>_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),T(c),_=C.pending,C.pending===C.pending_buf_size)){M=1;break}M=C.gzindex_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),M===0&&(C.gzindex=0,C.status=91)}else C.status=91;if(C.status===91)if(C.gzhead.comment){_=C.pending;do{if(C.pending===C.pending_buf_size&&(C.gzhead.hcrc&&C.pending>_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),T(c),_=C.pending,C.pending===C.pending_buf_size)){M=1;break}M=C.gzindex_&&(c.adler=u(c.adler,C.pending_buf,C.pending-_,_)),M===0&&(C.status=103)}else C.status=103;if(C.status===103&&(C.gzhead.hcrc?(C.pending+2>C.pending_buf_size&&T(c),C.pending+2<=C.pending_buf_size&&(ee(C,255&c.adler),ee(C,c.adler>>8&255),c.adler=0,C.status=A)):C.status=A),C.pending!==0){if(T(c),c.avail_out===0)return C.last_flush=-1,h}else if(c.avail_in===0&&$(U)<=$(V)&&U!==y)return J(c,-5);if(C.status===666&&c.avail_in!==0)return J(c,-5);if(c.avail_in!==0||C.lookahead!==0||U!==p&&C.status!==666){var Z=C.strategy===2?function(R,Y){for(var Q;;){if(R.lookahead===0&&(ce(R),R.lookahead===0)){if(Y===p)return v;break}if(R.match_length=0,Q=r._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++,Q&&(z(R,!1),R.strm.avail_out===0))return v}return R.insert=0,Y===y?(z(R,!0),R.strm.avail_out===0?W:N):R.last_lit&&(z(R,!1),R.strm.avail_out===0)?v:L}(C,U):C.strategy===3?function(R,Y){for(var Q,K,ne,fe,ue=R.window;;){if(R.lookahead<=B){if(ce(R),R.lookahead<=B&&Y===p)return v;if(R.lookahead===0)break}if(R.match_length=0,R.lookahead>=j&&0R.lookahead&&(R.match_length=R.lookahead)}if(R.match_length>=j?(Q=r._tr_tally(R,1,R.match_length-j),R.lookahead-=R.match_length,R.strstart+=R.match_length,R.match_length=0):(Q=r._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++),Q&&(z(R,!1),R.strm.avail_out===0))return v}return R.insert=0,Y===y?(z(R,!0),R.strm.avail_out===0?W:N):R.last_lit&&(z(R,!1),R.strm.avail_out===0)?v:L}(C,U):i[C.level].func(C,U);if(Z!==W&&Z!==N||(C.status=666),Z===v||Z===W)return c.avail_out===0&&(C.last_flush=-1),h;if(Z===L&&(U===1?r._tr_align(C):U!==5&&(r._tr_stored_block(C,0,0,!1),U===3&&(te(C.head),C.lookahead===0&&(C.strstart=0,C.block_start=0,C.insert=0))),T(c),c.avail_out===0))return C.last_flush=-1,h}return U!==y?h:C.wrap<=0?1:(C.wrap===2?(ee(C,255&c.adler),ee(C,c.adler>>8&255),ee(C,c.adler>>16&255),ee(C,c.adler>>24&255),ee(C,255&c.total_in),ee(C,c.total_in>>8&255),ee(C,c.total_in>>16&255),ee(C,c.total_in>>24&255)):(X(C,c.adler>>>16),X(C,65535&c.adler)),T(c),0=V.w_size&&(M===0&&(te(V.head),V.strstart=0,V.block_start=0,V.insert=0),Y=new s.Buf8(V.w_size),s.arraySet(Y,U,Q-V.w_size,V.w_size,0),U=Y,Q=V.w_size),H=c.avail_in,Z=c.next_in,R=c.input,c.avail_in=Q,c.next_in=0,c.input=U,ce(V);V.lookahead>=j;){for(C=V.strstart,_=V.lookahead-(j-1);V.ins_h=(V.ins_h<>>=j=D>>>24,S-=j,(j=D>>>16&255)===0)L[f++]=65535&D;else{if(!(16&j)){if(!(64&j)){D=O[(65535&D)+(x&(1<>>=j,S-=j),S<15&&(x+=v[l++]<>>=j=D>>>24,S-=j,!(16&(j=D>>>16&255))){if(!(64&j)){D=I[(65535&D)+(x&(1<>>=j,S-=j,(j=f-p)>3,x&=(1<<(S-=B<<3))-1,i.next_in=l,i.next_out=f,i.avail_in=l>>24&255)+(k>>>8&65280)+((65280&k)<<8)+((255&k)<<24)}function x(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function S(k){var A;return k&&k.state?(A=k.state,k.total_in=k.total_out=A.total=0,k.msg="",A.wrap&&(k.adler=1&A.wrap),A.mode=g,A.last=0,A.havedict=0,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new i.Buf32(d),A.distcode=A.distdyn=new i.Buf32(b),A.sane=1,A.back=-1,y):h}function O(k){var A;return k&&k.state?((A=k.state).wsize=0,A.whave=0,A.wnext=0,S(k)):h}function I(k,A){var v,L;return k&&k.state?(L=k.state,A<0?(v=0,A=-A):(v=1+(A>>4),A<48&&(A&=15)),A&&(A<8||15=N.wsize?(i.arraySet(N.window,A,v-N.wsize,N.wsize,0),N.wnext=0,N.whave=N.wsize):(L<(W=N.wsize-N.wnext)&&(W=L),i.arraySet(N.window,A,v-L,W,N.wnext),(L-=W)?(i.arraySet(N.window,A,v-L,L,0),N.wnext=L,N.whave=N.wsize):(N.wnext+=W,N.wnext===N.wsize&&(N.wnext=0),N.whave>>8&255,v.check=r(v.check,M,2,0),z=T=0,v.mode=2;break}if(v.flags=0,v.head&&(v.head.done=!1),!(1&v.wrap)||(((255&T)<<8)+(T>>8))%31){k.msg="incorrect header check",v.mode=30;break}if((15&T)!=8){k.msg="unknown compression method",v.mode=30;break}if(z-=4,c=8+(15&(T>>>=4)),v.wbits===0)v.wbits=c;else if(c>v.wbits){k.msg="invalid window size",v.mode=30;break}v.dmax=1<>8&1),512&v.flags&&(M[0]=255&T,M[1]=T>>>8&255,v.check=r(v.check,M,2,0)),z=T=0,v.mode=3;case 3:for(;z<32;){if($===0)break e;$--,T+=L[N++]<>>8&255,M[2]=T>>>16&255,M[3]=T>>>24&255,v.check=r(v.check,M,4,0)),z=T=0,v.mode=4;case 4:for(;z<16;){if($===0)break e;$--,T+=L[N++]<>8),512&v.flags&&(M[0]=255&T,M[1]=T>>>8&255,v.check=r(v.check,M,2,0)),z=T=0,v.mode=5;case 5:if(1024&v.flags){for(;z<16;){if($===0)break e;$--,T+=L[N++]<>>8&255,v.check=r(v.check,M,2,0)),z=T=0}else v.head&&(v.head.extra=null);v.mode=6;case 6:if(1024&v.flags&&($<(G=v.length)&&(G=$),G&&(v.head&&(c=v.head.extra_len-v.length,v.head.extra||(v.head.extra=new Array(v.head.extra_len)),i.arraySet(v.head.extra,L,N,G,c)),512&v.flags&&(v.check=r(v.check,L,G,N)),$-=G,N+=G,v.length-=G),v.length))break e;v.length=0,v.mode=7;case 7:if(2048&v.flags){if($===0)break e;for(G=0;c=L[N+G++],v.head&&c&&v.length<65536&&(v.head.name+=String.fromCharCode(c)),c&&G<$;);if(512&v.flags&&(v.check=r(v.check,L,G,N)),$-=G,N+=G,c)break e}else v.head&&(v.head.name=null);v.length=0,v.mode=8;case 8:if(4096&v.flags){if($===0)break e;for(G=0;c=L[N+G++],v.head&&c&&v.length<65536&&(v.head.comment+=String.fromCharCode(c)),c&&G<$;);if(512&v.flags&&(v.check=r(v.check,L,G,N)),$-=G,N+=G,c)break e}else v.head&&(v.head.comment=null);v.mode=9;case 9:if(512&v.flags){for(;z<16;){if($===0)break e;$--,T+=L[N++]<>9&1,v.head.done=!0),k.adler=v.check=0,v.mode=12;break;case 10:for(;z<32;){if($===0)break e;$--,T+=L[N++]<>>=7&z,z-=7&z,v.mode=27;break}for(;z<3;){if($===0)break e;$--,T+=L[N++]<>>=1)){case 0:v.mode=14;break;case 1:if(B(v),v.mode=20,A!==6)break;T>>>=2,z-=2;break e;case 2:v.mode=17;break;case 3:k.msg="invalid block type",v.mode=30}T>>>=2,z-=2;break;case 14:for(T>>>=7&z,z-=7&z;z<32;){if($===0)break e;$--,T+=L[N++]<>>16^65535)){k.msg="invalid stored block lengths",v.mode=30;break}if(v.length=65535&T,z=T=0,v.mode=15,A===6)break e;case 15:v.mode=16;case 16:if(G=v.length){if($>>=5,z-=5,v.ndist=1+(31&T),T>>>=5,z-=5,v.ncode=4+(15&T),T>>>=4,z-=4,286>>=3,z-=3}for(;v.have<19;)v.lens[H[v.have++]]=0;if(v.lencode=v.lendyn,v.lenbits=7,V={bits:v.lenbits},U=u(0,v.lens,0,19,v.lencode,0,v.work,V),v.lenbits=V.bits,U){k.msg="invalid code lengths set",v.mode=30;break}v.have=0,v.mode=19;case 19:for(;v.have>>16&255,ge=65535&_,!((oe=_>>>24)<=z);){if($===0)break e;$--,T+=L[N++]<>>=oe,z-=oe,v.lens[v.have++]=ge;else{if(ge===16){for(C=oe+2;z>>=oe,z-=oe,v.have===0){k.msg="invalid bit length repeat",v.mode=30;break}c=v.lens[v.have-1],G=3+(3&T),T>>>=2,z-=2}else if(ge===17){for(C=oe+3;z>>=oe)),T>>>=3,z-=3}else{for(C=oe+7;z>>=oe)),T>>>=7,z-=7}if(v.have+G>v.nlen+v.ndist){k.msg="invalid bit length repeat",v.mode=30;break}for(;G--;)v.lens[v.have++]=c}}if(v.mode===30)break;if(v.lens[256]===0){k.msg="invalid code -- missing end-of-block",v.mode=30;break}if(v.lenbits=9,V={bits:v.lenbits},U=u(f,v.lens,0,v.nlen,v.lencode,0,v.work,V),v.lenbits=V.bits,U){k.msg="invalid literal/lengths set",v.mode=30;break}if(v.distbits=6,v.distcode=v.distdyn,V={bits:v.distbits},U=u(p,v.lens,v.nlen,v.ndist,v.distcode,0,v.work,V),v.distbits=V.bits,U){k.msg="invalid distances set",v.mode=30;break}if(v.mode=20,A===6)break e;case 20:v.mode=21;case 21:if(6<=$&&258<=te){k.next_out=J,k.avail_out=te,k.next_in=N,k.avail_in=$,v.hold=T,v.bits=z,l(k,X),J=k.next_out,W=k.output,te=k.avail_out,N=k.next_in,L=k.input,$=k.avail_in,T=v.hold,z=v.bits,v.mode===12&&(v.back=-1);break}for(v.back=0;le=(_=v.lencode[T&(1<>>16&255,ge=65535&_,!((oe=_>>>24)<=z);){if($===0)break e;$--,T+=L[N++]<>pe)])>>>16&255,ge=65535&_,!(pe+(oe=_>>>24)<=z);){if($===0)break e;$--,T+=L[N++]<>>=pe,z-=pe,v.back+=pe}if(T>>>=oe,z-=oe,v.back+=oe,v.length=ge,le===0){v.mode=26;break}if(32&le){v.back=-1,v.mode=12;break}if(64&le){k.msg="invalid literal/length code",v.mode=30;break}v.extra=15&le,v.mode=22;case 22:if(v.extra){for(C=v.extra;z>>=v.extra,z-=v.extra,v.back+=v.extra}v.was=v.length,v.mode=23;case 23:for(;le=(_=v.distcode[T&(1<>>16&255,ge=65535&_,!((oe=_>>>24)<=z);){if($===0)break e;$--,T+=L[N++]<>pe)])>>>16&255,ge=65535&_,!(pe+(oe=_>>>24)<=z);){if($===0)break e;$--,T+=L[N++]<>>=pe,z-=pe,v.back+=pe}if(T>>>=oe,z-=oe,v.back+=oe,64&le){k.msg="invalid distance code",v.mode=30;break}v.offset=ge,v.extra=15&le,v.mode=24;case 24:if(v.extra){for(C=v.extra;z>>=v.extra,z-=v.extra,v.back+=v.extra}if(v.offset>v.dmax){k.msg="invalid distance too far back",v.mode=30;break}v.mode=25;case 25:if(te===0)break e;if(G=X-te,v.offset>G){if((G=v.offset-G)>v.whave&&v.sane){k.msg="invalid distance too far back",v.mode=30;break}ce=G>v.wnext?(G-=v.wnext,v.wsize-G):v.wnext-G,G>v.length&&(G=v.length),he=v.window}else he=W,ce=J-v.offset,G=v.length;for(teE?(j=ce[he+b[A]],z[ee+b[A]]):(j=96,0),x=1<>J)+(S-=x)]=D<<24|j<<16|B|0,S!==0;);for(x=1<>=1;if(x!==0?(T&=x-1,T+=x):T=0,A++,--X[k]==0){if(k===L)break;k=p[y+b[A]]}if(W>>7)]}function ee(_,M){_.pending_buf[_.pending++]=255&M,_.pending_buf[_.pending++]=M>>>8&255}function X(_,M,H){_.bi_valid>m-H?(_.bi_buf|=M<<_.bi_valid&65535,ee(_,_.bi_buf),_.bi_buf=M>>m-_.bi_valid,_.bi_valid+=H-m):(_.bi_buf|=M<<_.bi_valid&65535,_.bi_valid+=H)}function G(_,M,H){X(_,H[2*M],H[2*M+1])}function ce(_,M){for(var H=0;H|=1&_,_>>>=1,H<<=1,0<--M;);return H>>>1}function he(_,M,H){var Z,R,Y=new Array(b+1),Q=0;for(Z=1;Z<=b;Z++)Y[Z]=Q=Q+H[Z-1]<<1;for(R=0;R<=M;R++){var K=_[2*R+1];K!==0&&(_[2*R]=ce(Y[K]++,K))}}function oe(_){var M;for(M=0;M>1;1<=H;H--)pe(_,Y,H);for(R=ne;H=_.heap[1],_.heap[1]=_.heap[_.heap_len--],pe(_,Y,1),Z=_.heap[1],_.heap[--_.heap_max]=H,_.heap[--_.heap_max]=Z,Y[2*R]=Y[2*H]+Y[2*Z],_.depth[R]=(_.depth[H]>=_.depth[Z]?_.depth[H]:_.depth[Z])+1,Y[2*H+1]=Y[2*Z+1]=R,_.heap[1]=R++,pe(_,Y,1),2<=_.heap_len;);_.heap[--_.heap_max]=_.heap[1],function(ue,Oe){var Xe,ze,qe,ve,st,zt,Ae=Oe.dyn_tree,hn=Oe.max_code,Hr=Oe.stat_desc.static_tree,Wr=Oe.stat_desc.has_stree,Zr=Oe.stat_desc.extra_bits,fn=Oe.stat_desc.extra_base,Je=Oe.stat_desc.max_length,ot=0;for(ve=0;ve<=b;ve++)ue.bl_count[ve]=0;for(Ae[2*ue.heap[ue.heap_max]+1]=0,Xe=ue.heap_max+1;Xe>=7;R>>=1)if(1&fe&&K.dyn_ltree[2*ne]!==0)return s;if(K.dyn_ltree[18]!==0||K.dyn_ltree[20]!==0||K.dyn_ltree[26]!==0)return r;for(ne=32;ne>>3,(Y=_.static_len+3+7>>>3)<=R&&(R=Y)):R=Y=H+5,H+4<=R&&M!==-1?C(_,M,H,Z):_.strategy===4||Y===R?(X(_,2+(Z?1:0),3),_e(_,q,k)):(X(_,4+(Z?1:0),3),function(K,ne,fe,ue){var Oe;for(X(K,ne-257,5),X(K,fe-1,5),X(K,ue-4,4),Oe=0;Oe>>8&255,_.pending_buf[_.d_buf+2*_.last_lit+1]=255&M,_.pending_buf[_.l_buf+_.last_lit]=255&H,_.last_lit++,M===0?_.dyn_ltree[2*H]++:(_.matches++,M--,_.dyn_ltree[2*(v[H]+p+1)]++,_.dyn_dtree[2*z(M)]++),_.last_lit===_.lit_bufsize-1},t._tr_align=function(_){X(_,2,3),G(_,S,q),function(M){M.bi_valid===16?(ee(M,M.bi_buf),M.bi_buf=0,M.bi_valid=0):8<=M.bi_valid&&(M.pending_buf[M.pending++]=255&M.bi_buf,M.bi_buf>>=8,M.bi_valid-=8)}(_)}},{"../utils/common":41}],53:[function(n,a,t){a.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,a,t){(function(i){(function(s,r){if(!s.setImmediate){var l,u,f,p,y=1,h={},g=!1,d=s.document,b=Object.getPrototypeOf&&Object.getPrototypeOf(s);b=b&&b.setTimeout?b:s,l={}.toString.call(s.process)==="[object process]"?function(O){process.nextTick(function(){x(O)})}:function(){if(s.postMessage&&!s.importScripts){var O=!0,I=s.onmessage;return s.onmessage=function(){O=!1},s.postMessage("","*"),s.onmessage=I,O}}()?(p="setImmediate$"+Math.random()+"$",s.addEventListener?s.addEventListener("message",S,!1):s.attachEvent("onmessage",S),function(O){s.postMessage(p+O,"*")}):s.MessageChannel?((f=new MessageChannel).port1.onmessage=function(O){x(O.data)},function(O){f.port2.postMessage(O)}):d&&"onreadystatechange"in d.createElement("script")?(u=d.documentElement,function(O){var I=d.createElement("script");I.onreadystatechange=function(){x(O),I.onreadystatechange=null,u.removeChild(I),I=null},u.appendChild(I)}):function(O){setTimeout(x,0,O)},b.setImmediate=function(O){typeof O!="function"&&(O=new Function(""+O));for(var I=new Array(arguments.length-1),P=0;P"u"?i===void 0?this:i:self)}).call(this,typeof lt<"u"?lt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})($r);var Hl=$r.exports;const Wl=ti(Hl);function Zl(o){const{multipleState:e,changeMultipleState:n,selectedKeys:a,isSelectedAll:t,batchOperationCallback:i}=o,s=async()=>{var y;const l=await((y=ke)==null?void 0:y.batchQuery(a)),u=`ComfyUI workflow ${Zn(Date.now())}`,f=new Wl,p=f.folder(u);l&&l.forEach(h=>{p&&p.file(`${h.name}.json`,h.json)}),f.generateAsync({type:"blob"}).then(function(h){const g=document.createElement("a");g.href=window.URL.createObjectURL(h),g.download=`${u}.zip`,document.body.appendChild(g),g.click(),document.body.removeChild(g)})},r=a.length===0;return w.jsx(ye,{spacing:2,wrap:"wrap",mb:0,children:e?w.jsxs(w.Fragment,{children:[w.jsx(jt,{isChecked:t,onChange:l=>{i("selectAll",l.target.checked)}}),w.jsx(Me,{hasArrow:!0,label:"Download Zip",placement:"bottom",children:w.jsx(be,{isDisabled:r,"aria-label":"Batch export",size:"sm",icon:w.jsx(vi,{size:21}),onClick:s})}),w.jsx(Me,{hasArrow:!0,label:"Batch deletion",children:w.jsx(Br,{isDisabled:r,variant:"solid",promptMessage:`Are you sure you want to delete these ${a.length} checked workflows?`,tooltipText:"Delete selected",onDelete:async()=>{var l;await((l=ke)==null?void 0:l.batchDeleteFlow(a)),i("batchDelete")}})}),a.length>0&&w.jsx(we,{fontWeight:600,children:`Selected ${a.length}`}),w.jsx(Me,{hasArrow:!0,label:"Exit multi-select",children:w.jsx(be,{"aria-label":"Close multi-select operation",size:"sm",icon:w.jsx(tn,{}),onClick:()=>{n(!1)}})})]}):w.jsx(Me,{hasArrow:!0,label:"Select multiple",placement:"bottom-start",children:w.jsx(be,{"aria-label":"Start multi-select operation",size:"sm",variant:"outline",icon:w.jsx($i,{size:21}),onClick:()=>{n(!0)}})})})}function Gl(o,e){var d,b;const n=JSON.parse(o),a=n.nodes,t=n.links,i=LiteGraph.LLink,s={};let r=app.graph.last_node_id;for(let m=0;mn.nodes[f].pos[0]&&(p[0]=n.nodes[f].pos[0],y[0]=f),p[1]>n.nodes[f].pos[1]&&(p[1]=n.nodes[f].pos[1],y[1]=f)):(p=[n.nodes[f].pos[0],n.nodes[f].pos[1]],y=[f,f]);const h=[],g={};for(var f=0;f{P.link=l[P.link]}),(b=S.outputs)==null||b.forEach(P=>{var E;P.links=(E=P.links)==null?void 0:E.map(D=>l[D])});const O=e?[e[0]-11,e[1]-11]:app.canvas.graph_mouse;S.pos[0]+=O[0]-p[0],S.pos[1]+=O[1]-p[1];let I=LiteGraph.createNode(S.type);I||(LiteGraph.debug&&console.log("Node not found or has errors: "+S.type),I=new LGraphNode,I.last_serialization=S,I.has_errors=!0),I.id=S.id,app.graph.add(I,!0),h.push(I),g[I.id]=S}h.forEach(m=>{m.configure(g[m.id])})}function Yl({folder:o,onclose:e}){const[n,a]=F.useState(o.name),[t,i]=F.useState(""),{onRefreshFilesList:s}=F.useContext(He),r=u=>{a(u.target.value),t&&i("")},l=async()=>{var p,y;const u=n.trim();if(a(u),u===o.name)return e();(await((p=Ze)==null?void 0:p.listAll().then(h=>h.map(g=>g.name)))??[]).includes(u)?i("The name is duplicated, please modify it and submit again."):(await((y=Ze)==null?void 0:y.update({id:o.id,name:u})),s&&s(),e())};return w.jsxs(mt,{isOpen:!0,onClose:e,children:[w.jsx(vt,{}),w.jsxs(gt,{children:[w.jsx(bt,{children:"Edit folder name"}),w.jsx(yt,{}),w.jsx(xt,{children:w.jsxs(gi,{isInvalid:!!t,children:[w.jsx(bi,{children:"Folder name"}),w.jsx(it,{value:n,onChange:r,autoFocus:!0,onKeyUp:u=>{u.code==="Enter"&&!t&&l()}}),t&&w.jsx(yi,{children:t})]})}),w.jsxs(ni,{children:[w.jsx(xe,{colorScheme:"teal",mr:3,onClick:l,isDisabled:!n||!!t,children:"Save"}),w.jsx(xe,{onClick:e,children:"Cancel"})]})]})]})}function Ur({parentFolderID:o,fileInputRef:e}){const{onRefreshFilesList:n}=F.useContext(He),a=async t=>{var r,l;const i=t.target.files;if(!i)return;const s=[];for(const u of i)if(u.type==="image/png"){const f=await xi(u),p=f==null?void 0:f.workflow;p&&s.push({json:p,name:u.name.replace(".png","")})}else(u.type==="application/json"||(r=u.name)!=null&&r.endsWith(".json"))&&await new Promise((f,p)=>{const y=new FileReader;y.onload=h=>{var g;try{const d=(g=h.target)==null?void 0:g.result;typeof d=="string"?(s.push({json:d,name:u.name.replace(".json","")}),f("")):p(new Error("File content is not a string"))}catch(d){p(d)}},y.onerror=p,y.readAsText(u)});s.length&&(await((l=ke)==null?void 0:l.batchCreateFlows(s,void 0,o)),n&&n())};return w.jsx("input",{style:{display:"none"},ref:e,type:"file",accept:".json,image/png",multiple:!0,onChange:a,onClick:t=>{t.stopPropagation()}})}function Kl({menuPosition:o,isopen:e,folder:n,onClose:a}){const[t,i]=F.useState(!1),{onRefreshFilesList:s}=F.useContext(He),{showDialog:r}=ri(),l=async h=>{var g;h.stopPropagation(),await((g=Ze)==null?void 0:g.create({name:"New Folder",parentFolderID:n.id})),s&&s()},u=async h=>{var g;h.stopPropagation(),await((g=ke)==null?void 0:g.createFlow({json:JSON.stringify(wi),parentFolderID:n.id})),s&&s()},f=F.useRef(null),p=async h=>{h.stopPropagation();const g=await Si(n.id);g>0?r(`Do you want to delete the ${g} files inside the folder too?`,[{label:"Keep and move to root directory",colorScheme:"teal",onClick:()=>{y(Rt.MOVE_TO_ROOT_FOLDER)}},{label:"Delete all files",colorScheme:"red",onClick:()=>{y(Rt.DELETE)}}]):y(Rt.DELETE)},y=async h=>{var g;await((g=Ze)==null?void 0:g.deleteFolder(n.id,h)),a(),s&&s()};return w.jsxs(w.Fragment,{children:[w.jsx(de,{position:"absolute",top:o.y,left:o.x,children:w.jsx(at,{isOpen:e,onClose:a,isLazy:!0,children:w.jsxs(Mt,{children:[w.jsx(Le,{icon:w.jsx(Wi,{size:19}),onClick:h=>{h.preventDefault(),h.stopPropagation(),i(!0)},children:"Rename"}),w.jsx(Le,{icon:w.jsx(rn,{size:19}),onClick:p,children:"Delete"}),w.jsx(Le,{onClick:l,icon:w.jsx(or,{size:19}),children:"New folder"}),w.jsx(Le,{onClick:u,icon:w.jsx(Qt,{size:19}),children:"New file"}),w.jsx(Le,{onClick:h=>{var g;h.stopPropagation(),(g=f.current)==null||g.click()},icon:w.jsx(sr,{size:19}),children:"Import workflows"})]})})}),w.jsx(Ur,{parentFolderID:n.id,fileInputRef:f}),t&&w.jsx(Yl,{folder:n,onclose:()=>i(!1)})]})}const Xl=F.memo(function o({folder:e}){const[n,a]=F.useState(!1),[t,i]=F.useState(e.isCollapse??!1),[s,r]=F.useState([]),[l,u]=F.useState({x:0,y:0}),[f,p]=F.useState(!1),{colorMode:y}=Jt(),{draggingFile:h,refreshFolderStamp:g,onRefreshFilesList:d}=F.useContext(He),b=y==="light"?{backgroundColor:"#E2E8F0"}:{backgroundColor:"#4A5568"};F.useEffect(()=>{var x;(x=ke)==null||x.listFolderContent(e.id,window.localStorage.getItem(Ut)).then(S=>{r(S)})},[e.id,g]);const m=x=>{x.preventDefault(),u({x:x.clientX,y:x.clientY}),p(!0)};return F.useEffect(()=>{var x;!!e.isCollapse!==t&&((x=Ze)==null||x.update({id:e.id,isCollapse:t}))},[t]),w.jsxs(Ue,{children:[w.jsxs(ye,{w:"100%",as:"button",py:1,onClick:()=>{i(!t)},onContextMenu:m,onDragOver:x=>{x.preventDefault(),a(!0)},onDragLeave:()=>{a(!1)},onDrop:async()=>{var x;h&&!rt(h)&&(await((x=ke)==null?void 0:x.updateFlow(h.id,{parentFolderID:e.id})),await(d==null?void 0:d())),a(!1)},_hover:b,style:n||f?b:void 0,children:[w.jsxs(ye,{gap:1,children:[t?w.jsx(Ii,{size:20}):w.jsx(nn,{size:20}),w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:w.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})})]}),w.jsx(we,{children:e.name}),w.jsx(Kl,{isopen:f,menuPosition:l,onClose:()=>p(!1),folder:e})]}),!t&&w.jsx(Ue,{ml:4,gap:0,children:s.map(x=>rt(x)?w.jsx(o,{folder:x},x.id):w.jsx(Nr,{workflow:x},x.id))})]})}),ql=(o,e)=>{const[n,a]=F.useState(o);return F.useEffect(()=>{const t=setTimeout(()=>{a(o)},e);return()=>{clearTimeout(t)}},[o,e]),n},Jl={position:"absolute",marginLeft:"10px",width:"20px",height:"20px",top:"50%",color:"#A0AEC0",transform:"translateY(-50%)"};function Ql(o){const{searchValue:e,onUpdateSearchValue:n}=o,a=e!=="";return w.jsxs(de,{style:{position:"relative"},mb:2,children:[w.jsx(Zi,{style:Jl}),a&&w.jsx(be,{size:"xs",position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",cursor:"pointer",background:"none",zIndex:"100",icon:w.jsx(tn,{width:15,height:15}),onClick:()=>n(""),"aria-label":"clear input button"}),w.jsx(it,{placeholder:"Search",size:"sm",paddingLeft:"35px",paddingBlock:"5px",value:e,onChange:({target:t})=>n(t.value)})]})}function eu({}){const o=F.useRef(null);return w.jsxs(xe,{leftIcon:w.jsx(sr,{size:18}),variant:"outline",iconSpacing:1,size:"sm",colorScheme:"teal",onClick:()=>{var e;(e=o.current)==null||e.click()},children:["Import",w.jsx(Ur,{fileInputRef:o})]})}const Ln=6;function tu({setSelectedTag:o,selectedTag:e}){const[n,a]=F.useState(!1),[t,i]=F.useState([]);return F.useEffect(()=>{var s;(s=$e)==null||s.listAll().then(r=>{i(r)})},[]),w.jsxs(ye,{spacing:2,wrap:"wrap",mb:0,children:[e!=null&&w.jsx(be,{"aria-label":"Close",size:"sm",icon:w.jsx(tn,{}),onClick:()=>{o(void 0)}}),t.slice(0,n?void 0:Ln).map(s=>w.jsx(xe,{variant:"solid",width:"auto",flexShrink:0,size:"sm",borderRadius:15,py:4,onClick:()=>{o(s.name)},isActive:e===s.name,children:s.name},s.name)),(t.length??0)>Ln&&w.jsx(be,{"aria-label":"Show-all-tags",size:"sm",icon:n?w.jsx(Bi,{}):w.jsx(nn,{}),onClick:()=>a(!n)})]})}function cu({onClose:o,onClickNewFlow:e}){const[n,a]=F.useState([]),t=F.useRef([]),i=F.useRef([]),{loadWorkflowID:s}=F.useContext(en),[r,l]=F.useState(),[u,f]=F.useState(!1),[p,y]=F.useState([]),[h,g]=F.useState(0),[d,b]=F.useState(""),m=ql(d,400),x=F.useRef(null),[S,O]=F.useState(null),I=F.useRef(window.localStorage.getItem(Ut)??vn.RECENTLY_MODIFIED),P=async()=>{var N,J;const W=await((N=ke)==null?void 0:N.listFolderContent())??[];t.current=W,await((J=ke)==null?void 0:J.listAll().then($=>{i.current=$})),D(),g(Date.now())},E=!!r||!!m,D=()=>{if(E){const W=i.current.filter(N=>{var te;let J=!0,$=!0;return r&&(J=!!((te=N.tags)!=null&&te.includes(r))),m&&($=!!N.name.toLocaleLowerCase().includes(m.toLocaleLowerCase())),J&&$});a(Ft(W,I.current))}else a(Ft(t.current,I.current))},j=W=>{a(Ft(n,W)),I.current=W,window.localStorage.setItem(Ut,W),!E&&g(Date.now())};F.useEffect(()=>{D()},[m,r]);const B=F.useCallback(async W=>{var N,J,$;await((N=ke)==null?void 0:N.deleteFlow(W)),(($=(J=ke)==null?void 0:J.curWorkflow)==null?void 0:$.id)===W&&await(s==null?void 0:s(null)),await P()},[r,m]);F.useEffect(()=>{P();const W=async N=>{var J;if(x.current){const $=await((J=ke)==null?void 0:J.get(x.current));$&&$.json&&Gl($.json,[N.canvasX,N.canvasY])}};return ut.canvasEl.addEventListener("drop",W),ut.canvasEl.addEventListener("click",o),()=>{ut.canvasEl.removeEventListener("drop",W),ut.canvasEl.removeEventListener("click",o)}},[]);const q=F.useCallback((W,N)=>{y(J=>{const $=[...J];return N?$.push(W):$.splice($.indexOf(W),1),$})},[]),k=(W,N)=>{switch(W){case"batchDelete":P(),f(!1),y([]);return;case"selectAll":y(N?i.current.map(J=>J.id):[]);return}},A=W=>{O(W),rt(W)||(x.current=W.id)},v=W=>{b(W)},L=450;return w.jsx(He.Provider,{value:{onRefreshFilesList:P,draggingFile:S??void 0,setDraggingFile:A,isMultiSelecting:u,onMultiSelectFlow:q,multiSelectedFlowsID:p,onDeleteFlow:B,refreshFolderStamp:h,setRefreshFolderStamp:g},children:w.jsx(de,{style:{width:L},children:w.jsxs(_i,{width:L,height:"100vh",pl:4,pr:5,pt:4,gap:4,position:"absolute",top:0,left:0,shadow:"xl",zIndex:1e3,children:[w.jsxs(tt,{alignItems:"center",justifyContent:"space-between",children:[w.jsxs(ye,{gap:4,children:[w.jsx(ye,{gap:2,children:w.jsx(we,{fontSize:19,fontWeight:600,children:"☕️Workspace"})}),w.jsx(eu,{}),w.jsx(Me,{label:"Open workspace save directory",children:w.jsx(be,{"aria-label":"Open workspace save directory",size:"sm",icon:w.jsx(Ci,{}),variant:"outline",colorScheme:"teal",onClick:()=>ki()})}),w.jsx(Me,{label:"New workflow",children:w.jsx(be,{"aria-label":"New workflow",size:"sm",icon:w.jsx(Qt,{}),variant:"outline",colorScheme:"teal",onClick:e})})]}),w.jsx(ye,{alignItems:"center",children:w.jsx(ea,{})})]}),w.jsxs(tt,{direction:"column",h:"calc(100% - 64px)",children:[w.jsx(tu,{selectedTag:r,setSelectedTag:l}),w.jsxs(ye,{mb:2,mt:2,p:0,justifyContent:"space-between",children:[w.jsxs(ye,{children:[i.current.length>0?w.jsx(Zl,{multipleState:u,changeMultipleState:W=>{f(W),!W&&y([])},selectedKeys:p,isSelectedAll:p.length===i.current.length,batchOperationCallback:k}):w.jsx(de,{}),!u&&w.jsx(Me,{hasArrow:!0,label:"New folder",placement:"bottom-start",children:w.jsx(be,{size:"sm",variant:"outline",icon:w.jsx(or,{size:21}),onClick:async()=>{var W;await((W=Ze)==null?void 0:W.create({name:"New Folder"})),P()},"aria-label":"new folder button"})})]}),w.jsxs(at,{closeOnSelect:!0,children:[w.jsx(Wn,{as:xe,variant:"ghost",size:"xs",pr:0,rightIcon:w.jsx(nn,{size:"16"}),children:w.jsxs(ye,{children:[w.jsx(we,{children:"Sort by:"}),w.jsx(we,{display:"inline-block",children:I.current})]})}),w.jsx(Mt,{children:w.jsx(nr,{value:I.current,type:"radio",onChange:W=>j(W),children:Object.values(vn).map((W,N)=>w.jsx(an,{value:W,children:W},N))})})]})]}),w.jsx(Ql,{searchValue:d,onUpdateSearchValue:v}),w.jsx(tt,{overflowY:"auto",overflowX:"hidden",direction:"column",children:n.map(W=>rt(W)?w.jsx(Xl,{folder:W},W.id):w.jsx(Nr,{workflow:W},W.id))})]})]})})})}export{cu as default}; diff --git a/dist/workspace_web/assets/App-JXePnJiV.css b/dist/workspace_web/assets/App-JXePnJiV.css deleted file mode 100644 index 70b9d44..0000000 --- a/dist/workspace_web/assets/App-JXePnJiV.css +++ /dev/null @@ -1 +0,0 @@ -.dragPanelIcon{display:none!important}.workspaceManagerPanel:hover .dragPanelIcon{display:block!important} diff --git a/dist/workspace_web/chunk-24I2HV4N-zY_d-lSh.js b/dist/workspace_web/chunk-24I2HV4N-zY_d-lSh.js deleted file mode 100644 index b87f423..0000000 --- a/dist/workspace_web/chunk-24I2HV4N-zY_d-lSh.js +++ /dev/null @@ -1 +0,0 @@ -import{a9 as Ce,aa as be,r as t,ab as xe,c as oe,m as k,k as f,e as Te,o as ke,z as Re,j as y,A as _e,b as O,d as L,f as $,ac as Se,C as Be,D as Ee}from"./input.js";import{ab as Ae,ac as De,ad as Oe,ae as Me,af as Ne,ag as Fe,ah as Ie,ai as H}from"./App-EbJ8EOYb.js";function so(e){const{theme:o}=Ce(),n=be();return t.useMemo(()=>xe(o.direction,{...n,...e}),[e,o.direction,n])}function je(e){return"current"in e}var re=()=>typeof window<"u";function He(){var e;const o=navigator.userAgentData;return(e=o==null?void 0:o.platform)!=null?e:navigator.platform}var ze=e=>re()&&e.test(navigator.vendor),Ve=e=>re()&&e.test(He()),Le=()=>Ve(/mac|iphone|ipad|ipod/i),$e=()=>Le()&&ze(/apple/i);function Ke(e){const{ref:o,elements:n,enabled:u}=e,c=()=>{var s,d;return(d=(s=o.current)==null?void 0:s.ownerDocument)!=null?d:document};Ae(c,"pointerdown",s=>{if(!$e()||!u)return;const d=s.target,h=(n??[o]).some(a=>{const v=je(a)?a.current:a;return(v==null?void 0:v.contains(d))||v===d});c().activeElement!==d&&h&&(s.preventDefault(),d.focus())})}var[Ue,R]=oe({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[Ge,K]=oe({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function qe(e){const o=t.Children.only(e.children),{getTriggerProps:n}=R();return t.cloneElement(o,n(o.props,o.ref))}qe.displayName="PopoverTrigger";var x={click:"click",hover:"hover"};function Je(e={}){const{closeOnBlur:o=!0,closeOnEsc:n=!0,initialFocusRef:u,id:c,returnFocusOnClose:s=!0,autoFocus:d=!0,arrowSize:P,arrowShadowColor:h,trigger:a=x.click,openDelay:v=200,closeDelay:C=200,isLazy:M,lazyBehavior:te="unmount",computePositionOnMount:se,...ae}=e,{isOpen:l,onClose:m,onOpen:N,onToggle:U}=De(e),F=t.useRef(null),_=t.useRef(null),b=t.useRef(null),T=t.useRef(!1),G=t.useRef(!1);l&&(G.current=!0);const[q,ie]=t.useState(!1),[J,ce]=t.useState(!1),le=t.useId(),ue=c??le,[Q,S,B,E]=["popover-trigger","popover-content","popover-header","popover-body"].map(r=>`${r}-${ue}`),{referenceRef:A,getArrowProps:de,getPopperProps:W,getArrowInnerProps:pe,forceUpdate:ve}=Oe({...ae,enabled:l||!!se}),X=Me({isOpen:l,ref:b});Ke({enabled:l,ref:_}),Ne(b,{focusRef:_,visible:l,shouldFocus:s&&a===x.click}),Fe(b,{focusRef:u,visible:l,shouldFocus:d&&a===x.click});const Y=Ie({wasSelected:G.current,enabled:M,mode:te,isSelected:X.present}),fe=t.useCallback((r={},p=null)=>{const i={...r,style:{...r.style,transformOrigin:H.transformOrigin.varRef,[H.arrowSize.var]:P?`${P}px`:void 0,[H.arrowShadowColor.var]:h},ref:k(b,p),children:Y?r.children:null,id:S,tabIndex:-1,role:"dialog",onKeyDown:f(r.onKeyDown,g=>{n&&g.key==="Escape"&&m()}),onBlur:f(r.onBlur,g=>{const D=ee(g),j=z(b.current,D),we=z(_.current,D);l&&o&&(!j&&!we)&&m()}),"aria-labelledby":q?B:void 0,"aria-describedby":J?E:void 0};return a===x.hover&&(i.role="tooltip",i.onMouseEnter=f(r.onMouseEnter,()=>{T.current=!0}),i.onMouseLeave=f(r.onMouseLeave,g=>{g.nativeEvent.relatedTarget!==null&&(T.current=!1,setTimeout(()=>m(),C))})),i},[Y,S,q,B,J,E,a,n,m,l,o,C,h,P]),me=t.useCallback((r={},p=null)=>W({...r,style:{visibility:l?"visible":"hidden",...r.style}},p),[l,W]),ge=t.useCallback((r,p=null)=>({...r,ref:k(p,F,A)}),[F,A]),w=t.useRef(),I=t.useRef(),Z=t.useCallback(r=>{F.current==null&&A(r)},[A]),Pe=t.useCallback((r={},p=null)=>{const i={...r,ref:k(_,p,Z),id:Q,"aria-haspopup":"dialog","aria-expanded":l,"aria-controls":S};return a===x.click&&(i.onClick=f(r.onClick,U)),a===x.hover&&(i.onFocus=f(r.onFocus,()=>{w.current===void 0&&N()}),i.onBlur=f(r.onBlur,g=>{const D=ee(g),j=!z(b.current,D);l&&o&&j&&m()}),i.onKeyDown=f(r.onKeyDown,g=>{g.key==="Escape"&&m()}),i.onMouseEnter=f(r.onMouseEnter,()=>{T.current=!0,w.current=window.setTimeout(()=>N(),v)}),i.onMouseLeave=f(r.onMouseLeave,()=>{T.current=!1,w.current&&(clearTimeout(w.current),w.current=void 0),I.current=window.setTimeout(()=>{T.current===!1&&m()},C)})),i},[Q,l,S,a,Z,U,N,o,m,v,C]);t.useEffect(()=>()=>{w.current&&clearTimeout(w.current),I.current&&clearTimeout(I.current)},[]);const he=t.useCallback((r={},p=null)=>({...r,id:B,ref:k(p,i=>{ie(!!i)})}),[B]),ye=t.useCallback((r={},p=null)=>({...r,id:E,ref:k(p,i=>{ce(!!i)})}),[E]);return{forceUpdate:ve,isOpen:l,onAnimationComplete:X.onComplete,onClose:m,getAnchorProps:ge,getArrowProps:de,getArrowInnerProps:pe,getPopoverPositionerProps:me,getPopoverProps:fe,getTriggerProps:Pe,getHeaderProps:he,getBodyProps:ye}}function z(e,o){return e===o||(e==null?void 0:e.contains(o))}function ee(e){var o;const n=e.currentTarget.ownerDocument.activeElement;return(o=e.relatedTarget)!=null?o:n}function Qe(e){const o=Te("Popover",e),{children:n,...u}=ke(e),c=Re(),s=Je({...u,direction:c.direction});return y.jsx(Ue,{value:s,children:y.jsx(Ge,{value:o,children:_e(n,{isOpen:s.isOpen,onClose:s.onClose,forceUpdate:s.forceUpdate})})})}Qe.displayName="Popover";var V=(e,o)=>o?`${e}.${o}, ${o}`:void 0;function We(e){var o;const{bg:n,bgColor:u,backgroundColor:c,shadow:s,boxShadow:d,shadowColor:P}=e,{getArrowProps:h,getArrowInnerProps:a}=R(),v=K(),C=(o=n??u)!=null?o:c,M=s??d;return y.jsx(O.div,{...h(),className:"chakra-popover__arrow-positioner",children:y.jsx(O.div,{className:L("chakra-popover__arrow",e.className),...a(e),__css:{"--popper-arrow-shadow-color":V("colors",P),"--popper-arrow-bg":V("colors",C),"--popper-arrow-shadow":V("shadows",M),...v.arrow}})})}We.displayName="PopoverArrow";var Xe=$(function(o,n){const{onClose:u}=R(),c=K();return y.jsx(Se,{size:"sm",onClick:u,className:L("chakra-popover__close-btn",o.className),__css:c.closeButton,ref:n,...o})});Xe.displayName="PopoverCloseButton";function Ye(e){if(e)return{enter:{...e.enter,visibility:"visible"},exit:{...e.exit,transitionEnd:{visibility:"hidden"}}}}var Ze={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]}}},eo=O(Be.section),ne=$(function(o,n){const{variants:u=Ze,...c}=o,{isOpen:s}=R();return y.jsx(eo,{ref:n,variants:Ye(u),initial:!1,animate:s?"enter":"exit",...c})});ne.displayName="PopoverTransition";var oo=$(function(o,n){const{rootProps:u,motionProps:c,...s}=o,{getPopoverProps:d,getPopoverPositionerProps:P,onAnimationComplete:h}=R(),a=K(),v={position:"relative",display:"flex",flexDirection:"column",...a.content};return y.jsx(O.div,{...P(u),__css:a.popper,className:"chakra-popover__popper",children:y.jsx(ne,{...c,...d(s,n),onAnimationComplete:Ee(h,s.onAnimationComplete),className:L("chakra-popover__content",o.className),__css:v})})});oo.displayName="PopoverContent";export{Qe as P,K as a,so as b,qe as c,oo as d,We as e,Xe as f,R as u}; diff --git a/dist/workspace_web/chunk-JARCRF6W-po8hqWTL.js b/dist/workspace_web/chunk-JARCRF6W-po8hqWTL.js deleted file mode 100644 index 0a45016..0000000 --- a/dist/workspace_web/chunk-JARCRF6W-po8hqWTL.js +++ /dev/null @@ -1 +0,0 @@ -import{f as v,j as b,r as h,t as E,b as w}from"./input.js";var k=v(function(r,a){const{htmlWidth:e,htmlHeight:t,alt:i,...l}=r;return b.jsx("img",{width:e,height:t,ref:a,alt:i,...l})});k.displayName="NativeImage";function G(n){const{loading:r,src:a,srcSet:e,onLoad:t,onError:i,crossOrigin:l,sizes:u,ignoreFallback:g}=n,[c,m]=h.useState("pending");h.useEffect(()=>{m(a?"loading":"pending")},[a]);const s=h.useRef(),p=h.useCallback(()=>{if(!a)return;d();const o=new Image;o.src=a,l&&(o.crossOrigin=l),e&&(o.srcset=e),u&&(o.sizes=u),r&&(o.loading=r),o.onload=f=>{d(),m("loaded"),t==null||t(f)},o.onerror=f=>{d(),m("failed"),i==null||i(f)},s.current=o},[a,l,e,u,t,i,r]),d=()=>{s.current&&(s.current.onload=null,s.current.onerror=null,s.current=null)};return E(()=>{if(!g)return c==="loading"&&p(),()=>{d()}},[c,p,g]),g?"loaded":c}var x=(n,r)=>n!=="loaded"&&r==="beforeLoadOrError"||n==="failed"&&r==="onError";function y(n,r=[]){const a=Object.assign({},n);for(const e of r)e in a&&delete a[e];return a}var N=v(function(r,a){const{fallbackSrc:e,fallback:t,src:i,srcSet:l,align:u,fit:g,loading:c,ignoreFallback:m,crossOrigin:s,fallbackStrategy:p="beforeLoadOrError",referrerPolicy:d,...o}=r,f=e!==void 0||t!==void 0,I=c!=null||m||!f,R=G({...r,crossOrigin:s,ignoreFallback:I}),j=x(R,p),F={ref:a,objectFit:g,objectPosition:u,...I?o:y(o,["onError","onLoad"])};return j?t||b.jsx(w.img,{as:k,className:"chakra-image__placeholder",src:e,...F}):b.jsx(w.img,{as:k,src:i,srcSet:l,crossOrigin:s,loading:c,referrerPolicy:d,className:"chakra-image",...F})});N.displayName="Image";var C=v(function(r,a){const{templateAreas:e,gap:t,rowGap:i,columnGap:l,column:u,row:g,autoFlow:c,autoRows:m,templateRows:s,autoColumns:p,templateColumns:d,...o}=r,f={display:"grid",gridTemplateAreas:e,gridGap:t,gridRowGap:i,gridColumnGap:l,gridAutoColumns:p,gridColumn:u,gridRow:g,gridAutoFlow:c,gridAutoRows:m,gridTemplateRows:s,gridTemplateColumns:d};return b.jsx(w.div,{ref:a,__css:f,...o})});C.displayName="Grid";export{C as G,N as I}; diff --git a/dist/workspace_web/chunk-NTCQBYKE-HF59WNUB.js b/dist/workspace_web/chunk-NTCQBYKE-HF59WNUB.js deleted file mode 100644 index 89bc366..0000000 --- a/dist/workspace_web/chunk-NTCQBYKE-HF59WNUB.js +++ /dev/null @@ -1 +0,0 @@ -import{f as t}from"./App-EbJ8EOYb.js";import{f as o,j as s}from"./input.js";var e=o((a,r)=>s.jsx(t,{align:"center",...a,direction:"column",ref:r}));e.displayName="VStack";export{e as V}; diff --git a/dist/workspace_web/input.js b/dist/workspace_web/input.js deleted file mode 100644 index 01b259f..0000000 --- a/dist/workspace_web/input.js +++ /dev/null @@ -1,687 +0,0 @@ -function Kk(e,t){for(var r=0;rn[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const Yk="modulepreload",Xk=function(e){return"/"+e},cm={},Qk=function(t,r,n){if(!r||r.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(r.map(i=>{if(i=Xk(i),i in cm)return;cm[i]=!0;const a=i.endsWith(".css"),s=a?'[rel="stylesheet"]':"";if(!!n)for(let c=o.length-1;c>=0;c--){const d=o[c];if(d.href===i&&(!a||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${s}`))return;const u=document.createElement("link");if(u.rel=a?"stylesheet":Yk,a||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),a)return new Promise((c,d)=>{u.addEventListener("load",c),u.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i})};var os=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var U0={exports:{}},nu={},H0={exports:{}},W={};/** - * @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 za=Symbol.for("react.element"),qk=Symbol.for("react.portal"),Zk=Symbol.for("react.fragment"),Jk=Symbol.for("react.strict_mode"),eC=Symbol.for("react.profiler"),tC=Symbol.for("react.provider"),rC=Symbol.for("react.context"),nC=Symbol.for("react.forward_ref"),oC=Symbol.for("react.suspense"),iC=Symbol.for("react.memo"),aC=Symbol.for("react.lazy"),dm=Symbol.iterator;function sC(e){return e===null||typeof e!="object"?null:(e=dm&&e[dm]||e["@@iterator"],typeof e=="function"?e:null)}var G0={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},K0=Object.assign,Y0={};function ti(e,t,r){this.props=e,this.context=t,this.refs=Y0,this.updater=r||G0}ti.prototype.isReactComponent={};ti.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")};ti.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function X0(){}X0.prototype=ti.prototype;function Xf(e,t,r){this.props=e,this.context=t,this.refs=Y0,this.updater=r||G0}var Qf=Xf.prototype=new X0;Qf.constructor=Xf;K0(Qf,ti.prototype);Qf.isPureReactComponent=!0;var fm=Array.isArray,Q0=Object.prototype.hasOwnProperty,qf={current:null},q0={key:!0,ref:!0,__self:!0,__source:!0};function Z0(e,t,r){var n,o={},i=null,a=null;if(t!=null)for(n in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)Q0.call(t,n)&&!q0.hasOwnProperty(n)&&(o[n]=t[n]);var s=arguments.length-2;if(s===1)o.children=r;else if(1>>1,ne=z[B];if(0>>1;Bo(Kt,V))weo(Fe,Kt)?(z[B]=Fe,z[we]=V,B=we):(z[B]=Kt,z[Ge]=V,B=Ge);else if(weo(Fe,V))z[B]=Fe,z[we]=V,B=we;else break e}}return N}function o(z,N){var V=z.sortIndex-N.sortIndex;return V!==0?V:z.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],u=[],c=1,d=null,f=3,p=!1,g=!1,y=!1,k=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(z){for(var N=r(u);N!==null;){if(N.callback===null)n(u);else if(N.startTime<=z)n(u),N.sortIndex=N.expirationTime,t(l,N);else break;N=r(u)}}function C(z){if(y=!1,v(z),!g)if(r(l)!==null)g=!0,He(_);else{var N=r(u);N!==null&&it(C,N.startTime-z)}}function _(z,N){g=!1,y&&(y=!1,m(A),A=-1),p=!0;var V=f;try{for(v(N),d=r(l);d!==null&&(!(d.expirationTime>N)||z&&!ee());){var B=d.callback;if(typeof B=="function"){d.callback=null,f=d.priorityLevel;var ne=B(d.expirationTime<=N);N=e.unstable_now(),typeof ne=="function"?d.callback=ne:d===r(l)&&n(l),v(N)}else n(l);d=r(l)}if(d!==null)var U=!0;else{var Ge=r(u);Ge!==null&&it(C,Ge.startTime-N),U=!1}return U}finally{d=null,f=V,p=!1}}var $=!1,T=null,A=-1,M=5,I=-1;function ee(){return!(e.unstable_now()-Iz||125B?(z.sortIndex=V,t(u,z),r(l)===null&&z===r(u)&&(y?(m(A),A=-1):y=!0,it(C,V-B))):(z.sortIndex=ne,t(l,z),g||p||(g=!0,He(_))),z},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(z){var N=f;return function(){var V=f;f=N;try{return z.apply(this,arguments)}finally{f=V}}}})(ry);ty.exports=ry;var yC=ty.exports;/** - * @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 ny=S,wt=yC;function R(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bd=Object.prototype.hasOwnProperty,bC=/^[: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]*$/,mm={},vm={};function SC(e){return bd.call(vm,e)?!0:bd.call(mm,e)?!1:bC.test(e)?vm[e]=!0:(mm[e]=!0,!1)}function xC(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function wC(e,t,r,n){if(t===null||typeof t>"u"||xC(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.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 ot(e,t,r,n,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var Ue={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ue[e]=new ot(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ue[t]=new ot(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ue[e]=new ot(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ue[e]=new ot(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){Ue[e]=new ot(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ue[e]=new ot(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ue[e]=new ot(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ue[e]=new ot(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ue[e]=new ot(e,5,!1,e.toLowerCase(),null,!1,!1)});var Jf=/[\-:]([a-z])/g;function eh(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(Jf,eh);Ue[t]=new ot(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(Jf,eh);Ue[t]=new ot(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(Jf,eh);Ue[t]=new ot(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ue[e]=new ot(e,1,!1,e.toLowerCase(),null,!1,!1)});Ue.xlinkHref=new ot("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ue[e]=new ot(e,1,!1,e.toLowerCase(),null,!0,!0)});function th(e,t,r,n){var o=Ue.hasOwnProperty(t)?Ue[t]:null;(o!==null?o.type!==0:n||!(2s||o[a]!==i[s]){var l=` -`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{uc=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?_i(e):""}function kC(e){switch(e.tag){case 5:return _i(e.type);case 16:return _i("Lazy");case 13:return _i("Suspense");case 19:return _i("SuspenseList");case 0:case 2:case 15:return e=cc(e.type,!1),e;case 11:return e=cc(e.type.render,!1),e;case 1:return e=cc(e.type,!0),e;default:return""}}function kd(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 io:return"Fragment";case oo:return"Portal";case Sd:return"Profiler";case rh:return"StrictMode";case xd:return"Suspense";case wd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ay:return(e.displayName||"Context")+".Consumer";case iy:return(e._context.displayName||"Context")+".Provider";case nh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case oh:return t=e.displayName||null,t!==null?t:kd(e.type)||"Memo";case Wr:t=e._payload,e=e._init;try{return kd(e(t))}catch{}}return null}function CC(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 kd(t);case 8:return t===rh?"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 ln(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ly(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _C(e){var t=ly(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var o=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){n=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ss(e){e._valueTracker||(e._valueTracker=_C(e))}function uy(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=ly(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function pl(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 Cd(e,t){var r=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function ym(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=ln(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function cy(e,t){t=t.checked,t!=null&&th(e,"checked",t,!1)}function _d(e,t){cy(e,t);var r=ln(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Pd(e,t.type,r):t.hasOwnProperty("defaultValue")&&Pd(e,t.type,ln(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bm(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Pd(e,t,r){(t!=="number"||pl(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Pi=Array.isArray;function Eo(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=ls.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function na(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Li={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},PC=["Webkit","ms","Moz","O"];Object.keys(Li).forEach(function(e){PC.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Li[t]=Li[e]})});function py(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Li.hasOwnProperty(e)&&Li[e]?(""+t).trim():t+"px"}function my(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,o=py(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,o):e[r]=o}}var TC=be({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 $d(e,t){if(t){if(TC[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(R(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(R(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(R(61))}if(t.style!=null&&typeof t.style!="object")throw Error(R(62))}}function Ad(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 Rd=null;function ih(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Md=null,$o=null,Ao=null;function wm(e){if(e=Ia(e)){if(typeof Md!="function")throw Error(R(280));var t=e.stateNode;t&&(t=lu(t),Md(e.stateNode,e.type,t))}}function vy(e){$o?Ao?Ao.push(e):Ao=[e]:$o=e}function gy(){if($o){var e=$o,t=Ao;if(Ao=$o=null,wm(e),t)for(e=0;e>>=0,e===0?32:31-(OC(e)/BC|0)|0}var us=64,cs=4194304;function Ti(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 yl(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,o=e.suspendedLanes,i=e.pingedLanes,a=r&268435455;if(a!==0){var s=a&~o;s!==0?n=Ti(s):(i&=a,i!==0&&(n=Ti(i)))}else a=r&~o,a!==0?n=Ti(a):i!==0&&(n=Ti(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&o)&&(o=n&-n,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function Fa(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ut(t),e[t]=r}function WC(e,t){var r=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 n=e.eventTimes;for(e=e.expirationTimes;0=Bi),Rm=" ",Mm=!1;function Ly(e,t){switch(e){case"keyup":return g_.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Oy(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ao=!1;function b_(e,t){switch(e){case"compositionend":return Oy(t);case"keypress":return t.which!==32?null:(Mm=!0,Rm);case"textInput":return e=t.data,e===Rm&&Mm?null:e;default:return null}}function S_(e,t){if(ao)return e==="compositionend"||!hh&&Ly(e,t)?(e=Dy(),Vs=ch=Xr=null,ao=!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:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Im(r)}}function Vy(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Vy(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Wy(){for(var e=window,t=pl();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=pl(e.document)}return t}function ph(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 $_(e){var t=Wy(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Vy(r.ownerDocument.documentElement,r)){if(n!==null&&ph(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=r.textContent.length,i=Math.min(n.start,o);n=n.end===void 0?i:Math.min(n.end,o),!e.extend&&i>n&&(o=n,n=i,i=o),o=Lm(r,i);var a=Lm(r,n);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,so=null,Od=null,Ni=null,Bd=!1;function Om(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Bd||so==null||so!==pl(n)||(n=so,"selectionStart"in n&&ph(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ni&&ua(Ni,n)||(Ni=n,n=xl(Od,"onSelect"),0co||(e.current=Hd[co],Hd[co]=null,co--)}function ae(e,t){co++,Hd[co]=e.current,e.current=t}var un={},qe=hn(un),ut=hn(!1),jn=un;function Wo(e,t){var r=e.type.contextTypes;if(!r)return un;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in r)o[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ct(e){return e=e.childContextTypes,e!=null}function kl(){fe(ut),fe(qe)}function Hm(e,t,r){if(qe.current!==un)throw Error(R(168));ae(qe,t),ae(ut,r)}function Zy(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var o in n)if(!(o in t))throw Error(R(108,CC(e)||"Unknown",o));return be({},r,n)}function Cl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||un,jn=qe.current,ae(qe,e),ae(ut,ut.current),!0}function Gm(e,t,r){var n=e.stateNode;if(!n)throw Error(R(169));r?(e=Zy(e,t,jn),n.__reactInternalMemoizedMergedChildContext=e,fe(ut),fe(qe),ae(qe,e)):fe(ut),ae(ut,r)}var br=null,uu=!1,Cc=!1;function Jy(e){br===null?br=[e]:br.push(e)}function N_(e){uu=!0,Jy(e)}function pn(){if(!Cc&&br!==null){Cc=!0;var e=0,t=te;try{var r=br;for(te=1;e>=a,o-=a,wr=1<<32-Ut(t)+o|r<A?(M=T,T=null):M=T.sibling;var I=f(m,T,v[A],C);if(I===null){T===null&&(T=M);break}e&&T&&I.alternate===null&&t(m,T),h=i(I,h,A),$===null?_=I:$.sibling=I,$=I,T=M}if(A===v.length)return r(m,T),me&&xn(m,A),_;if(T===null){for(;AA?(M=T,T=null):M=T.sibling;var ee=f(m,T,I.value,C);if(ee===null){T===null&&(T=M);break}e&&T&&ee.alternate===null&&t(m,T),h=i(ee,h,A),$===null?_=ee:$.sibling=ee,$=ee,T=M}if(I.done)return r(m,T),me&&xn(m,A),_;if(T===null){for(;!I.done;A++,I=v.next())I=d(m,I.value,C),I!==null&&(h=i(I,h,A),$===null?_=I:$.sibling=I,$=I);return me&&xn(m,A),_}for(T=n(m,T);!I.done;A++,I=v.next())I=p(T,m,A,I.value,C),I!==null&&(e&&I.alternate!==null&&T.delete(I.key===null?A:I.key),h=i(I,h,A),$===null?_=I:$.sibling=I,$=I);return e&&T.forEach(function(ze){return t(m,ze)}),me&&xn(m,A),_}function k(m,h,v,C){if(typeof v=="object"&&v!==null&&v.type===io&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case as:e:{for(var _=v.key,$=h;$!==null;){if($.key===_){if(_=v.type,_===io){if($.tag===7){r(m,$.sibling),h=o($,v.props.children),h.return=m,m=h;break e}}else if($.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Wr&&Jm(_)===$.type){r(m,$.sibling),h=o($,v.props),h.ref=vi(m,$,v),h.return=m,m=h;break e}r(m,$);break}else t(m,$);$=$.sibling}v.type===io?(h=Fn(v.props.children,m.mode,C,v.key),h.return=m,m=h):(C=Qs(v.type,v.key,v.props,null,m.mode,C),C.ref=vi(m,h,v),C.return=m,m=C)}return a(m);case oo:e:{for($=v.key;h!==null;){if(h.key===$)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){r(m,h.sibling),h=o(h,v.children||[]),h.return=m,m=h;break e}else{r(m,h);break}else t(m,h);h=h.sibling}h=Mc(v,m.mode,C),h.return=m,m=h}return a(m);case Wr:return $=v._init,k(m,h,$(v._payload),C)}if(Pi(v))return g(m,h,v,C);if(di(v))return y(m,h,v,C);gs(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,h!==null&&h.tag===6?(r(m,h.sibling),h=o(h,v),h.return=m,m=h):(r(m,h),h=Rc(v,m.mode,C),h.return=m,m=h),a(m)):r(m,h)}return k}var Ho=s1(!0),l1=s1(!1),La={},ur=hn(La),ha=hn(La),pa=hn(La);function An(e){if(e===La)throw Error(R(174));return e}function kh(e,t){switch(ae(pa,t),ae(ha,e),ae(ur,La),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Ed(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Ed(t,e)}fe(ur),ae(ur,t)}function Go(){fe(ur),fe(ha),fe(pa)}function u1(e){An(pa.current);var t=An(ur.current),r=Ed(t,e.type);t!==r&&(ae(ha,e),ae(ur,r))}function Ch(e){ha.current===e&&(fe(ur),fe(ha))}var ve=hn(0);function Al(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.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 _c=[];function _h(){for(var e=0;e<_c.length;e++)_c[e]._workInProgressVersionPrimary=null;_c.length=0}var Hs=Lr.ReactCurrentDispatcher,Pc=Lr.ReactCurrentBatchConfig,Vn=0,ye=null,Ae=null,Ie=null,Rl=!1,Vi=!1,ma=0,W_=0;function Ke(){throw Error(R(321))}function Ph(e,t){if(t===null)return!1;for(var r=0;rr?r:4,e(!0);var n=Pc.transition;Pc.transition={};try{e(!1),t()}finally{te=r,Pc.transition=n}}function _1(){return It().memoizedState}function H_(e,t,r){var n=nn(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},P1(e))T1(t,r);else if(r=n1(e,t,r,n),r!==null){var o=tt();Ht(r,e,n,o),E1(r,t,n)}}function G_(e,t,r){var n=nn(e),o={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(P1(e))T1(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,r);if(o.hasEagerState=!0,o.eagerState=s,Gt(s,a)){var l=t.interleaved;l===null?(o.next=o,xh(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}r=n1(e,t,o,n),r!==null&&(o=tt(),Ht(r,e,n,o),E1(r,t,n))}}function P1(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function T1(e,t){Vi=Rl=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function E1(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,sh(e,r)}}var Ml={readContext:Dt,useCallback:Ke,useContext:Ke,useEffect:Ke,useImperativeHandle:Ke,useInsertionEffect:Ke,useLayoutEffect:Ke,useMemo:Ke,useReducer:Ke,useRef:Ke,useState:Ke,useDebugValue:Ke,useDeferredValue:Ke,useTransition:Ke,useMutableSource:Ke,useSyncExternalStore:Ke,useId:Ke,unstable_isNewReconciler:!1},K_={readContext:Dt,useCallback:function(e,t){return Zt().memoizedState=[e,t===void 0?null:t],e},useContext:Dt,useEffect:tv,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Gs(4194308,4,S1.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Gs(4194308,4,e,t)},useInsertionEffect:function(e,t){return Gs(4,2,e,t)},useMemo:function(e,t){var r=Zt();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Zt();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=H_.bind(null,ye,e),[n.memoizedState,e]},useRef:function(e){var t=Zt();return e={current:e},t.memoizedState=e},useState:ev,useDebugValue:Ah,useDeferredValue:function(e){return Zt().memoizedState=e},useTransition:function(){var e=ev(!1),t=e[0];return e=U_.bind(null,e[1]),Zt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=ye,o=Zt();if(me){if(r===void 0)throw Error(R(407));r=r()}else{if(r=t(),Le===null)throw Error(R(349));Vn&30||f1(n,t,r)}o.memoizedState=r;var i={value:r,getSnapshot:t};return o.queue=i,tv(p1.bind(null,n,i,e),[e]),n.flags|=2048,ga(9,h1.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=Zt(),t=Le.identifierPrefix;if(me){var r=kr,n=wr;r=(n&~(1<<32-Ut(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=ma++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=a.createElement(r,{is:n.is}):(e=a.createElement(r),r==="select"&&(a=e,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):e=a.createElementNS(e,r),e[nr]=t,e[fa]=n,L1(e,t,!1,!1),t.stateNode=e;e:{switch(a=Ad(r,n),r){case"dialog":ce("cancel",e),ce("close",e),o=n;break;case"iframe":case"object":case"embed":ce("load",e),o=n;break;case"video":case"audio":for(o=0;oYo&&(t.flags|=128,n=!0,gi(i,!1),t.lanes=4194304)}else{if(!n)if(e=Al(a),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),gi(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!me)return Ye(t),null}else 2*ke()-i.renderingStartTime>Yo&&r!==1073741824&&(t.flags|=128,n=!0,gi(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(r=i.last,r!==null?r.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=ke(),t.sibling=null,r=ve.current,ae(ve,n?r&1|2:r&1),t):(Ye(t),null);case 22:case 23:return Ih(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?gt&1073741824&&(Ye(t),t.subtreeFlags&6&&(t.flags|=8192)):Ye(t),null;case 24:return null;case 25:return null}throw Error(R(156,t.tag))}function t2(e,t){switch(vh(t),t.tag){case 1:return ct(t.type)&&kl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Go(),fe(ut),fe(qe),_h(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(fe(ve),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(R(340));Uo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return fe(ve),null;case 4:return Go(),null;case 10:return Sh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var bs=!1,Qe=!1,r2=typeof WeakSet=="function"?WeakSet:Set,D=null;function mo(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Se(e,t,n)}else r.current=null}function nf(e,t,r){try{r()}catch(n){Se(e,t,n)}}var cv=!1;function n2(e,t){if(jd=bl,e=Wy(),ph(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var a=0,s=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var p;d!==r||o!==0&&d.nodeType!==3||(s=a+o),d!==i||n!==0&&d.nodeType!==3||(l=a+n),d.nodeType===3&&(a+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===r&&++u===o&&(s=a),f===i&&++c===n&&(l=a),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(Nd={focusedElem:e,selectionRange:r},bl=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var y=g.memoizedProps,k=g.memoizedState,m=t.stateNode,h=m.getSnapshotBeforeUpdate(t.elementType===t.type?y:jt(t.type,y),k);m.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(C){Se(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return g=cv,cv=!1,g}function Wi(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&nf(t,r,i)}o=o.next}while(o!==n)}}function fu(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function of(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function j1(e){var t=e.alternate;t!==null&&(e.alternate=null,j1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[nr],delete t[fa],delete t[Ud],delete t[B_],delete t[j_])),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 N1(e){return e.tag===5||e.tag===3||e.tag===4}function dv(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||N1(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 af(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=wl));else if(n!==4&&(e=e.child,e!==null))for(af(e,t,r),e=e.sibling;e!==null;)af(e,t,r),e=e.sibling}function sf(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(sf(e,t,r),e=e.sibling;e!==null;)sf(e,t,r),e=e.sibling}var Ne=null,Nt=!1;function Or(e,t,r){for(r=r.child;r!==null;)V1(e,t,r),r=r.sibling}function V1(e,t,r){if(lr&&typeof lr.onCommitFiberUnmount=="function")try{lr.onCommitFiberUnmount(ou,r)}catch{}switch(r.tag){case 5:Qe||mo(r,t);case 6:var n=Ne,o=Nt;Ne=null,Or(e,t,r),Ne=n,Nt=o,Ne!==null&&(Nt?(e=Ne,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Ne.removeChild(r.stateNode));break;case 18:Ne!==null&&(Nt?(e=Ne,r=r.stateNode,e.nodeType===8?kc(e.parentNode,r):e.nodeType===1&&kc(e,r),sa(e)):kc(Ne,r.stateNode));break;case 4:n=Ne,o=Nt,Ne=r.stateNode.containerInfo,Nt=!0,Or(e,t,r),Ne=n,Nt=o;break;case 0:case 11:case 14:case 15:if(!Qe&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){o=n=n.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&nf(r,t,a),o=o.next}while(o!==n)}Or(e,t,r);break;case 1:if(!Qe&&(mo(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){Se(r,t,s)}Or(e,t,r);break;case 21:Or(e,t,r);break;case 22:r.mode&1?(Qe=(n=Qe)||r.memoizedState!==null,Or(e,t,r),Qe=n):Or(e,t,r);break;default:Or(e,t,r)}}function fv(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new r2),t.forEach(function(n){var o=f2.bind(null,e,n);r.has(n)||(r.add(n),n.then(o,o))})}}function Ot(e,t){var r=t.deletions;if(r!==null)for(var n=0;no&&(o=a),n&=~i}if(n=o,n=ke()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*i2(n/1960))-n,10e?16:e,Qr===null)var n=!1;else{if(e=Qr,Qr=null,Dl=0,Y&6)throw Error(R(331));var o=Y;for(Y|=4,D=e.current;D!==null;){var i=D,a=i.child;if(D.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lke()-Fh?zn(e,0):zh|=r),dt(e,t)}function Q1(e,t){t===0&&(e.mode&1?(t=cs,cs<<=1,!(cs&130023424)&&(cs=4194304)):t=1);var r=tt();e=zr(e,t),e!==null&&(Fa(e,t,r),dt(e,r))}function d2(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Q1(e,r)}function f2(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(R(314))}n!==null&&n.delete(t),Q1(e,r)}var q1;q1=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||ut.current)lt=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return lt=!1,J_(e,t,r);lt=!!(e.flags&131072)}else lt=!1,me&&t.flags&1048576&&e1(t,Pl,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Ks(e,t),e=t.pendingProps;var o=Wo(t,qe.current);Mo(t,r),o=Th(null,t,n,e,o,r);var i=Eh();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ct(n)?(i=!0,Cl(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,wh(t),o.updater=cu,t.stateNode=o,o._reactInternals=t,Qd(t,n,e,r),t=Jd(null,t,n,!0,i,r)):(t.tag=0,me&&i&&mh(t),Je(null,t,o,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Ks(e,t),e=t.pendingProps,o=n._init,n=o(n._payload),t.type=n,o=t.tag=p2(n),e=jt(n,e),o){case 0:t=Zd(null,t,n,e,r);break e;case 1:t=sv(null,t,n,e,r);break e;case 11:t=iv(null,t,n,e,r);break e;case 14:t=av(null,t,n,jt(n.type,e),r);break e}throw Error(R(306,n,""))}return t;case 0:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:jt(n,o),Zd(e,t,n,o,r);case 1:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:jt(n,o),sv(e,t,n,o,r);case 3:e:{if(F1(t),e===null)throw Error(R(387));n=t.pendingProps,i=t.memoizedState,o=i.element,o1(e,t),$l(t,n,null,r);var a=t.memoizedState;if(n=a.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Ko(Error(R(423)),t),t=lv(e,t,n,r,o);break e}else if(n!==o){o=Ko(Error(R(424)),t),t=lv(e,t,n,r,o);break e}else for(yt=en(t.stateNode.containerInfo.firstChild),bt=t,me=!0,Vt=null,r=l1(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Uo(),n===o){t=Fr(e,t,r);break e}Je(e,t,n,r)}t=t.child}return t;case 5:return u1(t),e===null&&Kd(t),n=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Vd(n,o)?a=null:i!==null&&Vd(n,i)&&(t.flags|=32),z1(e,t),Je(e,t,a,r),t.child;case 6:return e===null&&Kd(t),null;case 13:return D1(e,t,r);case 4:return kh(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Ho(t,null,n,r):Je(e,t,n,r),t.child;case 11:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:jt(n,o),iv(e,t,n,o,r);case 7:return Je(e,t,t.pendingProps,r),t.child;case 8:return Je(e,t,t.pendingProps.children,r),t.child;case 12:return Je(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,ae(Tl,n._currentValue),n._currentValue=a,i!==null)if(Gt(i.value,a)){if(i.children===o.children&&!ut.current){t=Fr(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===n){if(i.tag===1){l=Pr(-1,r&-r),l.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}i.lanes|=r,l=i.alternate,l!==null&&(l.lanes|=r),Yd(i.return,r,t),s.lanes|=r;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(R(341));a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),Yd(a,r,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Je(e,t,o.children,r),t=t.child}return t;case 9:return o=t.type,n=t.pendingProps.children,Mo(t,r),o=Dt(o),n=n(o),t.flags|=1,Je(e,t,n,r),t.child;case 14:return n=t.type,o=jt(n,t.pendingProps),o=jt(n.type,o),av(e,t,n,o,r);case 15:return R1(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:jt(n,o),Ks(e,t),t.tag=1,ct(n)?(e=!0,Cl(t)):e=!1,Mo(t,r),a1(t,n,o),Qd(t,n,o,r),Jd(null,t,n,!0,e,r);case 19:return I1(e,t,r);case 22:return M1(e,t,r)}throw Error(R(156,t.tag))};function Z1(e,t){return Cy(e,t)}function h2(e,t,r,n){this.tag=e,this.key=r,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=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function zt(e,t,r,n){return new h2(e,t,r,n)}function Oh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function p2(e){if(typeof e=="function")return Oh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===nh)return 11;if(e===oh)return 14}return 2}function on(e,t){var r=e.alternate;return r===null?(r=zt(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Qs(e,t,r,n,o,i){var a=2;if(n=e,typeof e=="function")Oh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case io:return Fn(r.children,o,i,t);case rh:a=8,o|=8;break;case Sd:return e=zt(12,r,t,o|2),e.elementType=Sd,e.lanes=i,e;case xd:return e=zt(13,r,t,o),e.elementType=xd,e.lanes=i,e;case wd:return e=zt(19,r,t,o),e.elementType=wd,e.lanes=i,e;case sy:return pu(r,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case iy:a=10;break e;case ay:a=9;break e;case nh:a=11;break e;case oh:a=14;break e;case Wr:a=16,n=null;break e}throw Error(R(130,e==null?e:typeof e,""))}return t=zt(a,r,t,o),t.elementType=e,t.type=n,t.lanes=i,t}function Fn(e,t,r,n){return e=zt(7,e,n,t),e.lanes=r,e}function pu(e,t,r,n){return e=zt(22,e,n,t),e.elementType=sy,e.lanes=r,e.stateNode={isHidden:!1},e}function Rc(e,t,r){return e=zt(6,e,null,t),e.lanes=r,e}function Mc(e,t,r){return t=zt(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function m2(e,t,r,n,o){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=fc(0),this.expirationTimes=fc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fc(0),this.identifierPrefix=n,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Bh(e,t,r,n,o,i,a,s,l){return e=new m2(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=zt(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},wh(i),e}function v2(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rb)}catch(e){console.error(e)}}rb(),ey.exports=Ct;var Wh=ey.exports,Sv=Wh;yd.createRoot=Sv.createRoot,yd.hydrateRoot=Sv.hydrateRoot;function x2(e){if(e.sheet)return e.sheet;for(var t=0;t0?Ve(oi,--ft):0,Xo--,Ee===10&&(Xo=1,Su--),Ee}function St(){return Ee=ft2||Sa(Ee)>3?"":" "}function F2(e,t){for(;--t&&St()&&!(Ee<48||Ee>102||Ee>57&&Ee<65||Ee>70&&Ee<97););return Oa(e,qs()+(t<6&&cr()==32&&St()==32))}function hf(e){for(;St();)switch(Ee){case e:return ft;case 34:case 39:e!==34&&e!==39&&hf(Ee);break;case 40:e===41&&hf(e);break;case 92:St();break}return ft}function D2(e,t){for(;St()&&e+Ee!==57;)if(e+Ee===84&&cr()===47)break;return"/*"+Oa(t,ft-1)+"*"+bu(e===47?e:St())}function I2(e){for(;!Sa(cr());)St();return Oa(e,ft)}function L2(e){return lb(Js("",null,null,null,[""],e=sb(e),0,[0],e))}function Js(e,t,r,n,o,i,a,s,l){for(var u=0,c=0,d=a,f=0,p=0,g=0,y=1,k=1,m=1,h=0,v="",C=o,_=i,$=n,T=v;k;)switch(g=h,h=St()){case 40:if(g!=108&&Ve(T,d-1)==58){ff(T+=q(Zs(h),"&","&\f"),"&\f")!=-1&&(m=-1);break}case 34:case 39:case 91:T+=Zs(h);break;case 9:case 10:case 13:case 32:T+=z2(g);break;case 92:T+=F2(qs()-1,7);continue;case 47:switch(cr()){case 42:case 47:ws(O2(D2(St(),qs()),t,r),l);break;default:T+="/"}break;case 123*y:s[u++]=tr(T)*m;case 125*y:case 59:case 0:switch(h){case 0:case 125:k=0;case 59+c:m==-1&&(T=q(T,/\f/g,"")),p>0&&tr(T)-d&&ws(p>32?wv(T+";",n,r,d-1):wv(q(T," ","")+";",n,r,d-2),l);break;case 59:T+=";";default:if(ws($=xv(T,t,r,u,c,o,s,v,C=[],_=[],d),i),h===123)if(c===0)Js(T,t,$,$,C,i,d,s,_);else switch(f===99&&Ve(T,3)===110?100:f){case 100:case 108:case 109:case 115:Js(e,$,$,n&&ws(xv(e,$,$,0,0,o,s,v,o,C=[],d),_),o,_,d,s,n?C:_);break;default:Js(T,$,$,$,[""],_,0,s,_)}}u=c=p=0,y=m=1,v=T="",d=a;break;case 58:d=1+tr(T),p=g;default:if(y<1){if(h==123)--y;else if(h==125&&y++==0&&M2()==125)continue}switch(T+=bu(h),h*y){case 38:m=c>0?1:(T+="\f",-1);break;case 44:s[u++]=(tr(T)-1)*m,m=1;break;case 64:cr()===45&&(T+=Zs(St())),f=cr(),c=d=tr(v=T+=I2(qs())),h++;break;case 45:g===45&&tr(T)==2&&(y=0)}}return i}function xv(e,t,r,n,o,i,a,s,l,u,c){for(var d=o-1,f=o===0?i:[""],p=Gh(f),g=0,y=0,k=0;g0?f[m]+" "+h:q(h,/&\f/g,f[m])))&&(l[k++]=v);return xu(e,t,r,o===0?Uh:s,l,u,c)}function O2(e,t,r){return xu(e,t,r,nb,bu(R2()),ba(e,2,-2),0)}function wv(e,t,r,n){return xu(e,t,r,Hh,ba(e,0,n),ba(e,n+1,-1),n)}function Fo(e,t){for(var r="",n=Gh(e),o=0;o6)switch(Ve(e,t+1)){case 109:if(Ve(e,t+4)!==45)break;case 102:return q(e,/(.+:)(.+)-([^]+)/,"$1"+Q+"$2-$3$1"+Ol+(Ve(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~ff(e,"stretch")?cb(q(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(Ve(e,t+1)!==115)break;case 6444:switch(Ve(e,tr(e)-3-(~ff(e,"!important")&&10))){case 107:return q(e,":",":"+Q)+e;case 101:return q(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Q+(Ve(e,14)===45?"inline-":"")+"box$3$1"+Q+"$2$3$1"+Xe+"$2box$3")+e}break;case 5936:switch(Ve(e,t+11)){case 114:return Q+e+Xe+q(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Q+e+Xe+q(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Q+e+Xe+q(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Q+e+Xe+e+e}return e}var K2=function(t,r,n,o){if(t.length>-1&&!t.return)switch(t.type){case Hh:t.return=cb(t.value,t.length);break;case ob:return Fo([bi(t,{value:q(t.value,"@","@"+Q)})],o);case Uh:if(t.length)return A2(t.props,function(i){switch($2(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Fo([bi(t,{props:[q(i,/:(read-\w+)/,":"+Ol+"$1")]})],o);case"::placeholder":return Fo([bi(t,{props:[q(i,/:(plac\w+)/,":"+Q+"input-$1")]}),bi(t,{props:[q(i,/:(plac\w+)/,":"+Ol+"$1")]}),bi(t,{props:[q(i,/:(plac\w+)/,Xe+"input-$1")]})],o)}return""})}},Y2=[K2],X2=function(t){var r=t.key;if(r==="css"){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(y){var k=y.getAttribute("data-emotion");k.indexOf(" ")!==-1&&(document.head.appendChild(y),y.setAttribute("data-s",""))})}var o=t.stylisPlugins||Y2,i={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+r+' "]'),function(y){for(var k=y.getAttribute("data-emotion").split(" "),m=1;m=4;++n,o-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&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 aP={animationIterationCount:1,aspectRatio: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},sP=/[A-Z]|^ms/g,lP=/_EMO_([^_]+?)_([^]*?)_EMO_/g,vb=function(t){return t.charCodeAt(1)===45},_v=function(t){return t!=null&&typeof t!="boolean"},zc=ub(function(e){return vb(e)?e:e.replace(sP,"-$&").toLowerCase()}),Pv=function(t,r){switch(t){case"animation":case"animationName":if(typeof r=="string")return r.replace(lP,function(n,o,i){return rr={name:o,styles:i,next:rr},o})}return aP[t]!==1&&!vb(t)&&typeof r=="number"&&r!==0?r+"px":r};function xa(e,t,r){if(r==null)return"";if(r.__emotion_styles!==void 0)return r;switch(typeof r){case"boolean":return"";case"object":{if(r.anim===1)return rr={name:r.name,styles:r.styles,next:rr},r.name;if(r.styles!==void 0){var n=r.next;if(n!==void 0)for(;n!==void 0;)rr={name:n.name,styles:n.styles,next:rr},n=n.next;var o=r.styles+";";return o}return uP(e,t,r)}case"function":{if(e!==void 0){var i=rr,a=r(e);return rr=i,xa(e,t,a)}break}}if(t==null)return r;var s=t[r];return s!==void 0?s:r}function uP(e,t,r){var n="";if(Array.isArray(r))for(var o=0;oE.jsx(Ba,{styles:xb}),xP=({scope:e=""})=>E.jsx(Ba,{styles:Sb` - 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%; - margin: 0; - font-feature-settings: "kern"; - } - - ${e} :where(*, *::before, *::after) { - border-width: 0; - border-style: solid; - box-sizing: border-box; - word-wrap: break-word; - } - - main { - display: block; - } - - ${e} hr { - border-top-width: 1px; - box-sizing: content-box; - height: 0; - overflow: visible; - } - - ${e} :where(pre, code, kbd,samp) { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; - font-size: 1em; - } - - ${e} a { - background-color: transparent; - color: inherit; - text-decoration: inherit; - } - - ${e} abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - ${e} :where(b, strong) { - font-weight: bold; - } - - ${e} small { - font-size: 80%; - } - - ${e} :where(sub,sup) { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - ${e} sub { - bottom: -0.25em; - } - - ${e} sup { - top: -0.5em; - } - - ${e} img { - border-style: none; - } - - ${e} :where(button, input, optgroup, select, textarea) { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - } - - ${e} :where(button, input) { - overflow: visible; - } - - ${e} :where(button, select) { - text-transform: none; - } - - ${e} :where( - button::-moz-focus-inner, - [type="button"]::-moz-focus-inner, - [type="reset"]::-moz-focus-inner, - [type="submit"]::-moz-focus-inner - ) { - border-style: none; - padding: 0; - } - - ${e} fieldset { - padding: 0.35em 0.75em 0.625em; - } - - ${e} legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; - } - - ${e} progress { - vertical-align: baseline; - } - - ${e} textarea { - overflow: auto; - } - - ${e} :where([type="checkbox"], [type="radio"]) { - box-sizing: border-box; - padding: 0; - } - - ${e} input[type="number"]::-webkit-inner-spin-button, - ${e} input[type="number"]::-webkit-outer-spin-button { - -webkit-appearance: none !important; - } - - ${e} input[type="number"] { - -moz-appearance: textfield; - } - - ${e} input[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; - } - - ${e} input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none !important; - } - - ${e} ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; - } - - ${e} details { - display: block; - } - - ${e} summary { - display: list-item; - } - - template { - display: none; - } - - [hidden] { - display: none !important; - } - - ${e} :where( - blockquote, - dl, - dd, - h1, - h2, - h3, - h4, - h5, - h6, - hr, - figure, - p, - pre - ) { - margin: 0; - } - - ${e} button { - background: transparent; - padding: 0; - } - - ${e} fieldset { - margin: 0; - padding: 0; - } - - ${e} :where(ol, ul) { - margin: 0; - padding: 0; - } - - ${e} textarea { - resize: vertical; - } - - ${e} :where(button, [role="button"]) { - cursor: pointer; - } - - ${e} button::-moz-focus-inner { - border: 0 !important; - } - - ${e} table { - border-collapse: collapse; - } - - ${e} :where(h1, h2, h3, h4, h5, h6) { - font-size: inherit; - font-weight: inherit; - } - - ${e} :where(button, input, optgroup, select, textarea) { - padding: 0; - line-height: inherit; - color: inherit; - } - - ${e} :where(img, svg, video, canvas, audio, iframe, embed, object) { - display: block; - } - - ${e} :where(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; - } - - ${e} select::-ms-expand { - display: none; - } - - ${xb} - `});function wP(e,t){return`${e} returned \`undefined\`. Seems you forgot to wrap component within ${t}`}function mn(e={}){const{name:t,strict:r=!0,hookName:n="useContext",providerName:o="Provider",errorMessage:i,defaultValue:a}=e,s=S.createContext(a);s.displayName=t;function l(){var u;const c=S.useContext(s);if(!c&&r){const d=new Error(i??wP(n,o));throw d.name="ContextError",(u=Error.captureStackTrace)==null||u.call(Error,d,l),d}return c}return[s.Provider,l,s]}var[kP,CP]=mn({strict:!1,name:"PortalManagerContext"});function wb(e){const{children:t,zIndex:r}=e;return E.jsx(kP,{value:{zIndex:r},children:t})}wb.displayName="PortalManager";var wa=globalThis!=null&&globalThis.document?S.useLayoutEffect:S.useEffect,[kb,_P]=mn({strict:!1,name:"PortalContext"}),ep="chakra-portal",PP=".chakra-portal",TP=e=>E.jsx("div",{className:"chakra-portal-zIndex",style:{position:"absolute",zIndex:e.zIndex,top:0,left:0,right:0},children:e.children}),EP=e=>{const{appendToParentPortal:t,children:r}=e,[n,o]=S.useState(null),i=S.useRef(null),[,a]=S.useState({});S.useEffect(()=>a({}),[]);const s=_P(),l=CP();wa(()=>{if(!n)return;const c=n.ownerDocument,d=t?s??c.body:c.body;if(!d)return;i.current=c.createElement("div"),i.current.className=ep,d.appendChild(i.current),a({});const f=i.current;return()=>{d.contains(f)&&d.removeChild(f)}},[n]);const u=l!=null&&l.zIndex?E.jsx(TP,{zIndex:l==null?void 0:l.zIndex,children:r}):r;return i.current?Wh.createPortal(E.jsx(kb,{value:i.current,children:u}),i.current):E.jsx("span",{ref:c=>{c&&o(c)}})},$P=e=>{const{children:t,containerRef:r,appendToParentPortal:n}=e,o=r.current,i=o??(typeof window<"u"?document.body:void 0),a=S.useMemo(()=>{const l=o==null?void 0:o.ownerDocument.createElement("div");return l&&(l.className=ep),l},[o]),[,s]=S.useState({});return wa(()=>s({}),[]),wa(()=>{if(!(!a||!i))return i.appendChild(a),()=>{i.removeChild(a)}},[a,i]),i&&a?Wh.createPortal(E.jsx(kb,{value:n?a:null,children:t}),a):null};function ja(e){const t={appendToParentPortal:!0,...e},{containerRef:r,...n}=t;return r?E.jsx($P,{containerRef:r,...n}):E.jsx(EP,{...n})}ja.className=ep;ja.selector=PP;ja.displayName="Portal";function AP(){const e=S.useContext(Qo);if(!e)throw Error("useTheme: `theme` is undefined. Seems you forgot to wrap your app in `` or ``");return e}var zu=S.createContext({});zu.displayName="ColorModeContext";function Fu(){const e=S.useContext(zu);if(e===void 0)throw new Error("useColorMode must be used within a ColorModeProvider");return e}function dB(e,t){const{colorMode:r}=Fu();return r==="dark"?t:e}var ks={light:"chakra-ui-light",dark:"chakra-ui-dark"};function RP(e={}){const{preventTransition:t=!0}=e,r={setDataset:n=>{const o=t?r.preventTransition():void 0;document.documentElement.dataset.theme=n,document.documentElement.style.colorScheme=n,o==null||o()},setClassName(n){document.body.classList.add(n?ks.dark:ks.light),document.body.classList.remove(n?ks.light:ks.dark)},query(){return window.matchMedia("(prefers-color-scheme: dark)")},getSystemTheme(n){var o;return((o=r.query().matches)!=null?o:n==="dark")?"dark":"light"},addListener(n){const o=r.query(),i=a=>{n(a.matches?"dark":"light")};return typeof o.addListener=="function"?o.addListener(i):o.addEventListener("change",i),()=>{typeof o.removeListener=="function"?o.removeListener(i):o.removeEventListener("change",i)}},preventTransition(){const n=document.createElement("style");return n.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(n),()=>{window.getComputedStyle(document.body),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.head.removeChild(n)})})}}};return r}var MP="chakra-ui-color-mode";function zP(e){return{ssr:!1,type:"localStorage",get(t){if(!(globalThis!=null&&globalThis.document))return t;let r;try{r=localStorage.getItem(e)||t}catch{}return r||t},set(t){try{localStorage.setItem(e,t)}catch{}}}}var FP=zP(MP),Bl=()=>{};function $v(e,t){return e.type==="cookie"&&e.ssr?e.get(t):t}function Cb(e){const{value:t,children:r,options:{useSystemColorMode:n,initialColorMode:o,disableTransitionOnChange:i}={},colorModeManager:a=FP}=e,s=o==="dark"?"dark":"light",[l,u]=S.useState(()=>$v(a,s)),[c,d]=S.useState(()=>$v(a)),{getSystemTheme:f,setClassName:p,setDataset:g,addListener:y}=S.useMemo(()=>RP({preventTransition:i}),[i]),k=o==="system"&&!l?c:l,m=S.useCallback(C=>{const _=C==="system"?f():C;u(_),p(_==="dark"),g(_),a.set(_)},[a,f,p,g]);wa(()=>{o==="system"&&d(f())},[]),S.useEffect(()=>{const C=a.get();if(C){m(C);return}if(o==="system"){m("system");return}m(s)},[a,s,o,m]);const h=S.useCallback(()=>{m(k==="dark"?"light":"dark")},[k,m]);S.useEffect(()=>{if(n)return y(m)},[n,y,m]);const v=S.useMemo(()=>({colorMode:t??k,toggleColorMode:t?Bl:h,setColorMode:t?Bl:m,forced:t!==void 0}),[k,h,m,t]);return E.jsx(zu.Provider,{value:v,children:r})}Cb.displayName="ColorModeProvider";function _b(e){const t=S.useMemo(()=>({colorMode:"dark",toggleColorMode:Bl,setColorMode:Bl,forced:!0}),[]);return E.jsx(zu.Provider,{value:t,...e})}_b.displayName="DarkMode";var DP=new Set(["dark","light","system"]);function IP(e){let t=e;return DP.has(t)||(t="light"),t}function LP(e={}){const{initialColorMode:t="light",type:r="localStorage",storageKey:n="chakra-ui-color-mode"}=e,o=IP(t),i=r==="cookie",a=`(function(){try{var a=function(o){var l="(prefers-color-scheme: dark)",v=window.matchMedia(l).matches?"dark":"light",e=o==="system"?v:o,d=document.documentElement,m=document.body,i="chakra-ui-light",n="chakra-ui-dark",s=e==="dark";return m.classList.add(s?n:i),m.classList.remove(s?i:n),d.style.colorScheme=e,d.dataset.theme=e,e},u=a,h="${o}",r="${n}",t=document.cookie.match(new RegExp("(^| )".concat(r,"=([^;]+)"))),c=t?t[2]:null;c?a(c):document.cookie="".concat(r,"=").concat(a(h),"; max-age=31536000; path=/")}catch(a){}})(); - `,s=`(function(){try{var a=function(c){var v="(prefers-color-scheme: dark)",h=window.matchMedia(v).matches?"dark":"light",r=c==="system"?h:c,o=document.documentElement,s=document.body,l="chakra-ui-light",d="chakra-ui-dark",i=r==="dark";return s.classList.add(i?d:l),s.classList.remove(i?l:d),o.style.colorScheme=r,o.dataset.theme=r,r},n=a,m="${o}",e="${n}",t=localStorage.getItem(e);t?a(t):localStorage.setItem(e,a(m))}catch(a){}})(); - `;return`!${i?a:s}`.trim()}function OP(e={}){const{nonce:t}=e;return E.jsx("script",{id:"chakra-script",nonce:t,dangerouslySetInnerHTML:{__html:LP(e)}})}function BP(){const e=Fu(),t=AP();return{...e,theme:t}}function jP(e,t,r){var n,o;if(t==null)return t;const i=a=>{var s,l;return(l=(s=e.__breakpoints)==null?void 0:s.asArray)==null?void 0:l[a]};return(o=(n=i(t))!=null?n:i(r))!=null?o:r}function NP(e,t,r){var n,o;if(t==null)return t;const i=a=>{var s,l;return(l=(s=e.__cssMap)==null?void 0:s[a])==null?void 0:l.value};return(o=(n=i(t))!=null?n:i(r))!=null?o:r}function fB(e,t,r){const n=Array.isArray(t)?t:[t],o=Array.isArray(r)?r:[r];return i=>{const a=o.filter(Boolean),s=n.map((l,u)=>{var c,d;if(e==="breakpoints")return jP(i,l,(c=a[u])!=null?c:l);const f=`${e}.${l}`;return NP(i,f,(d=a[u])!=null?d:l)});return Array.isArray(t)?s:s[0]}}var Be=(...e)=>e.filter(Boolean).join(" ");function dr(e){const t=typeof e;return e!=null&&(t==="object"||t==="function")&&!Array.isArray(e)}function ar(e,...t){return VP(e)?e(...t):e}var VP=e=>typeof e=="function",Av=e=>e?"":void 0,hB=e=>e?!0:void 0;function $i(...e){return function(r){e.some(n=>(n==null||n(r),r==null?void 0:r.defaultPrevented))}}function pB(...e){return function(r){e.forEach(n=>{n==null||n(r)})}}var jl={exports:{}};jl.exports;(function(e,t){var r=200,n="__lodash_hash_undefined__",o=800,i=16,a=9007199254740991,s="[object Arguments]",l="[object Array]",u="[object AsyncFunction]",c="[object Boolean]",d="[object Date]",f="[object Error]",p="[object Function]",g="[object GeneratorFunction]",y="[object Map]",k="[object Number]",m="[object Null]",h="[object Object]",v="[object Proxy]",C="[object RegExp]",_="[object Set]",$="[object String]",T="[object Undefined]",A="[object WeakMap]",M="[object ArrayBuffer]",I="[object DataView]",ee="[object Float32Array]",ze="[object Float64Array]",Pe="[object Int8Array]",oe="[object Int16Array]",ue="[object Int32Array]",He="[object Uint8Array]",it="[object Uint8ClampedArray]",z="[object Uint16Array]",N="[object Uint32Array]",V=/[\\^$.*+?()[\]{}|]/g,B=/^\[object .+?Constructor\]$/,ne=/^(?:0|[1-9]\d*)$/,U={};U[ee]=U[ze]=U[Pe]=U[oe]=U[ue]=U[He]=U[it]=U[z]=U[N]=!0,U[s]=U[l]=U[M]=U[c]=U[I]=U[d]=U[f]=U[p]=U[y]=U[k]=U[h]=U[C]=U[_]=U[$]=U[A]=!1;var Ge=typeof os=="object"&&os&&os.Object===Object&&os,Kt=typeof self=="object"&&self&&self.Object===Object&&self,we=Ge||Kt||Function("return this")(),Fe=t&&!t.nodeType&&t,mt=Fe&&!0&&e&&!e.nodeType&&e,Yt=mt&&mt.exports===Fe,Lt=Yt&&Ge.process,Xt=function(){try{var b=mt&&mt.require&&mt.require("util").types;return b||Lt&&Lt.binding&&Lt.binding("util")}catch{}}(),si=Xt&&Xt.isTypedArray;function Xa(b,x,P){switch(P.length){case 0:return b.call(x);case 1:return b.call(x,P[0]);case 2:return b.call(x,P[0],P[1]);case 3:return b.call(x,P[0],P[1],P[2])}return b.apply(x,P)}function Dw(b,x){for(var P=-1,F=Array(b);++P-1}function nk(b,x){var P=this.__data__,F=es(P,b);return F<0?(++this.size,P.push([b,x])):P[F][1]=x,this}vr.prototype.clear=Jw,vr.prototype.delete=ek,vr.prototype.get=tk,vr.prototype.has=rk,vr.prototype.set=nk;function qn(b){var x=-1,P=b==null?0:b.length;for(this.clear();++x1?P[K-1]:void 0,he=K>2?P[2]:void 0;for(ie=b.length>3&&typeof ie=="function"?(K--,ie):void 0,he&&Mk(P[0],P[1],he)&&(ie=K<3?void 0:ie,K=1),x=Object(x);++F-1&&b%1==0&&b0){if(++x>=o)return arguments[0]}else x=0;return b.apply(void 0,arguments)}}function jk(b){if(b!=null){try{return qa.call(b)}catch{}try{return b+""}catch{}}return""}function ns(b,x){return b===x||b!==b&&x!==x}var tc=em(function(){return arguments}())?em:function(b){return ui(b)&&mr.call(b,"callee")&&!Ww.call(b,"callee")},rc=Array.isArray;function nc(b){return b!=null&&im(b.length)&&!oc(b)}function Nk(b){return ui(b)&&nc(b)}var om=Hw||Gk;function oc(b){if(!bn(b))return!1;var x=ts(b);return x==p||x==g||x==u||x==v}function im(b){return typeof b=="number"&&b>-1&&b%1==0&&b<=a}function bn(b){var x=typeof b;return b!=null&&(x=="object"||x=="function")}function ui(b){return b!=null&&typeof b=="object"}function Vk(b){if(!ui(b)||ts(b)!=h)return!1;var x=Qp(b);if(x===null)return!0;var P=mr.call(x,"constructor")&&x.constructor;return typeof P=="function"&&P instanceof P&&qa.call(P)==Nw}var am=si?Iw(si):yk;function Wk(b){return Tk(b,sm(b))}function sm(b){return nc(b)?pk(b,!0):bk(b)}var Uk=Ek(function(b,x,P,F){tm(b,x,P,F)});function Hk(b){return function(){return b}}function lm(b){return b}function Gk(){return!1}e.exports=Uk})(jl,jl.exports);var WP=jl.exports;const sr=Yf(WP);var UP=e=>/!(important)?$/.test(e),Rv=e=>typeof e=="string"?e.replace(/!(important)?$/,"").trim():e,HP=(e,t)=>r=>{const n=String(t),o=UP(n),i=Rv(n),a=e?`${e}.${i}`:i;let s=dr(r.__cssMap)&&a in r.__cssMap?r.__cssMap[a].varRef:t;return s=Rv(s),o?`${s} !important`:s};function tp(e){const{scale:t,transform:r,compose:n}=e;return(i,a)=>{var s;const l=HP(t,i)(a);let u=(s=r==null?void 0:r(l,a))!=null?s:l;return n&&(u=n(u,a)),u}}var Cs=(...e)=>t=>e.reduce((r,n)=>n(r),t);function Et(e,t){return r=>{const n={property:r,scale:e};return n.transform=tp({scale:e,transform:t}),n}}var GP=({rtl:e,ltr:t})=>r=>r.direction==="rtl"?e:t;function KP(e){const{property:t,scale:r,transform:n}=e;return{scale:r,property:GP(t),transform:r?tp({scale:r,compose:n}):n}}var Pb=["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 YP(){return["translateX(var(--chakra-translate-x, 0))","translateY(var(--chakra-translate-y, 0))",...Pb].join(" ")}function XP(){return["translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)",...Pb].join(" ")}var QP={"--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(" ")},qP={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 ZP(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 JP={"row-reverse":{space:"--chakra-space-x-reverse",divide:"--chakra-divide-x-reverse"},"column-reverse":{space:"--chakra-space-y-reverse",divide:"--chakra-divide-y-reverse"}},mf={"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"},eT=new Set(Object.values(mf)),vf=new Set(["none","-moz-initial","inherit","initial","revert","unset"]),tT=e=>e.trim();function rT(e,t){if(e==null||vf.has(e))return e;if(!(gf(e)||vf.has(e)))return`url('${e}')`;const o=/(^[a-z-A-Z]+)\((.*)\)/g.exec(e),i=o==null?void 0:o[1],a=o==null?void 0:o[2];if(!i||!a)return e;const s=i.includes("-gradient")?i:`${i}-gradient`,[l,...u]=a.split(",").map(tT).filter(Boolean);if((u==null?void 0:u.length)===0)return e;const c=l in mf?mf[l]:l;u.unshift(c);const d=u.map(f=>{if(eT.has(f))return f;const p=f.indexOf(" "),[g,y]=p!==-1?[f.substr(0,p),f.substr(p+1)]:[f],k=gf(y)?y:y&&y.split(" "),m=`colors.${g}`,h=m in t.__cssMap?t.__cssMap[m].varRef:g;return k?[h,...Array.isArray(k)?k:[k]].join(" "):h});return`${s}(${d.join(", ")})`}var gf=e=>typeof e=="string"&&e.includes("(")&&e.includes(")"),nT=(e,t)=>rT(e,t??{});function oT(e){return/^var\(--.+\)$/.test(e)}var iT=e=>{const t=parseFloat(e.toString()),r=e.toString().replace(String(t),"");return{unitless:!r,value:t,unit:r}},qt=e=>t=>`${e}(${t})`,G={filter(e){return e!=="auto"?e:QP},backdropFilter(e){return e!=="auto"?e:qP},ring(e){return ZP(G.px(e))},bgClip(e){return e==="text"?{color:"transparent",backgroundClip:"text"}:{backgroundClip:e}},transform(e){return e==="auto"?YP():e==="auto-gpu"?XP():e},vh(e){return e==="$100vh"?"var(--chakra-vh)":e},px(e){if(e==null)return e;const{unitless:t}=iT(e);return t||typeof e=="number"?`${e}px`:e},fraction(e){return typeof e!="number"||e>1?e:`${e*100}%`},float(e,t){const r={left:"right",right:"left"};return t.direction==="rtl"?r[e]:e},degree(e){if(oT(e)||e==null)return e;const t=typeof e=="string"&&!e.endsWith("deg");return typeof e=="number"||t?`${e}deg`:e},gradient:nT,blur:qt("blur"),opacity:qt("opacity"),brightness:qt("brightness"),contrast:qt("contrast"),dropShadow:qt("drop-shadow"),grayscale:qt("grayscale"),hueRotate:e=>qt("hue-rotate")(G.degree(e)),invert:qt("invert"),saturate:qt("saturate"),sepia:qt("sepia"),bgImage(e){return e==null||gf(e)||vf.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:r,divide:n}=(t=JP[e])!=null?t:{},o={flexDirection:e};return r&&(o[r]=1),n&&(o[n]=1),o}},w={borderWidths:Et("borderWidths"),borderStyles:Et("borderStyles"),colors:Et("colors"),borders:Et("borders"),gradients:Et("gradients",G.gradient),radii:Et("radii",G.px),space:Et("space",Cs(G.vh,G.px)),spaceT:Et("space",Cs(G.vh,G.px)),degreeT(e){return{property:e,transform:G.degree}},prop(e,t,r){return{property:e,scale:t,...t&&{transform:tp({scale:t,transform:r})}}},propT(e,t){return{property:e,transform:t}},sizes:Et("sizes",Cs(G.vh,G.px)),sizesT:Et("sizes",Cs(G.vh,G.fraction)),shadows:Et("shadows"),logical:KP,blur:Et("blur",G.blur)},el={background:w.colors("background"),backgroundColor:w.colors("backgroundColor"),backgroundImage:w.gradients("backgroundImage"),backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundAttachment:!0,backgroundClip:{transform:G.bgClip},bgSize:w.prop("backgroundSize"),bgPosition:w.prop("backgroundPosition"),bg:w.colors("background"),bgColor:w.colors("backgroundColor"),bgPos:w.prop("backgroundPosition"),bgRepeat:w.prop("backgroundRepeat"),bgAttachment:w.prop("backgroundAttachment"),bgGradient:w.gradients("backgroundImage"),bgClip:{transform:G.bgClip}};Object.assign(el,{bgImage:el.backgroundImage,bgImg:el.backgroundImage});var X={border:w.borders("border"),borderWidth:w.borderWidths("borderWidth"),borderStyle:w.borderStyles("borderStyle"),borderColor:w.colors("borderColor"),borderRadius:w.radii("borderRadius"),borderTop:w.borders("borderTop"),borderBlockStart:w.borders("borderBlockStart"),borderTopLeftRadius:w.radii("borderTopLeftRadius"),borderStartStartRadius:w.logical({scale:"radii",property:{ltr:"borderTopLeftRadius",rtl:"borderTopRightRadius"}}),borderEndStartRadius:w.logical({scale:"radii",property:{ltr:"borderBottomLeftRadius",rtl:"borderBottomRightRadius"}}),borderTopRightRadius:w.radii("borderTopRightRadius"),borderStartEndRadius:w.logical({scale:"radii",property:{ltr:"borderTopRightRadius",rtl:"borderTopLeftRadius"}}),borderEndEndRadius:w.logical({scale:"radii",property:{ltr:"borderBottomRightRadius",rtl:"borderBottomLeftRadius"}}),borderRight:w.borders("borderRight"),borderInlineEnd:w.borders("borderInlineEnd"),borderBottom:w.borders("borderBottom"),borderBlockEnd:w.borders("borderBlockEnd"),borderBottomLeftRadius:w.radii("borderBottomLeftRadius"),borderBottomRightRadius:w.radii("borderBottomRightRadius"),borderLeft:w.borders("borderLeft"),borderInlineStart:{property:"borderInlineStart",scale:"borders"},borderInlineStartRadius:w.logical({scale:"radii",property:{ltr:["borderTopLeftRadius","borderBottomLeftRadius"],rtl:["borderTopRightRadius","borderBottomRightRadius"]}}),borderInlineEndRadius:w.logical({scale:"radii",property:{ltr:["borderTopRightRadius","borderBottomRightRadius"],rtl:["borderTopLeftRadius","borderBottomLeftRadius"]}}),borderX:w.borders(["borderLeft","borderRight"]),borderInline:w.borders("borderInline"),borderY:w.borders(["borderTop","borderBottom"]),borderBlock:w.borders("borderBlock"),borderTopWidth:w.borderWidths("borderTopWidth"),borderBlockStartWidth:w.borderWidths("borderBlockStartWidth"),borderTopColor:w.colors("borderTopColor"),borderBlockStartColor:w.colors("borderBlockStartColor"),borderTopStyle:w.borderStyles("borderTopStyle"),borderBlockStartStyle:w.borderStyles("borderBlockStartStyle"),borderBottomWidth:w.borderWidths("borderBottomWidth"),borderBlockEndWidth:w.borderWidths("borderBlockEndWidth"),borderBottomColor:w.colors("borderBottomColor"),borderBlockEndColor:w.colors("borderBlockEndColor"),borderBottomStyle:w.borderStyles("borderBottomStyle"),borderBlockEndStyle:w.borderStyles("borderBlockEndStyle"),borderLeftWidth:w.borderWidths("borderLeftWidth"),borderInlineStartWidth:w.borderWidths("borderInlineStartWidth"),borderLeftColor:w.colors("borderLeftColor"),borderInlineStartColor:w.colors("borderInlineStartColor"),borderLeftStyle:w.borderStyles("borderLeftStyle"),borderInlineStartStyle:w.borderStyles("borderInlineStartStyle"),borderRightWidth:w.borderWidths("borderRightWidth"),borderInlineEndWidth:w.borderWidths("borderInlineEndWidth"),borderRightColor:w.colors("borderRightColor"),borderInlineEndColor:w.colors("borderInlineEndColor"),borderRightStyle:w.borderStyles("borderRightStyle"),borderInlineEndStyle:w.borderStyles("borderInlineEndStyle"),borderTopRadius:w.radii(["borderTopLeftRadius","borderTopRightRadius"]),borderBottomRadius:w.radii(["borderBottomLeftRadius","borderBottomRightRadius"]),borderLeftRadius:w.radii(["borderTopLeftRadius","borderBottomLeftRadius"]),borderRightRadius:w.radii(["borderTopRightRadius","borderBottomRightRadius"])};Object.assign(X,{rounded:X.borderRadius,roundedTop:X.borderTopRadius,roundedTopLeft:X.borderTopLeftRadius,roundedTopRight:X.borderTopRightRadius,roundedTopStart:X.borderStartStartRadius,roundedTopEnd:X.borderStartEndRadius,roundedBottom:X.borderBottomRadius,roundedBottomLeft:X.borderBottomLeftRadius,roundedBottomRight:X.borderBottomRightRadius,roundedBottomStart:X.borderEndStartRadius,roundedBottomEnd:X.borderEndEndRadius,roundedLeft:X.borderLeftRadius,roundedRight:X.borderRightRadius,roundedStart:X.borderInlineStartRadius,roundedEnd:X.borderInlineEndRadius,borderStart:X.borderInlineStart,borderEnd:X.borderInlineEnd,borderTopStartRadius:X.borderStartStartRadius,borderTopEndRadius:X.borderStartEndRadius,borderBottomStartRadius:X.borderEndStartRadius,borderBottomEndRadius:X.borderEndEndRadius,borderStartRadius:X.borderInlineStartRadius,borderEndRadius:X.borderInlineEndRadius,borderStartWidth:X.borderInlineStartWidth,borderEndWidth:X.borderInlineEndWidth,borderStartColor:X.borderInlineStartColor,borderEndColor:X.borderInlineEndColor,borderStartStyle:X.borderInlineStartStyle,borderEndStyle:X.borderInlineEndStyle});var aT={color:w.colors("color"),textColor:w.colors("color"),fill:w.colors("fill"),stroke:w.colors("stroke")},yf={boxShadow:w.shadows("boxShadow"),mixBlendMode:!0,blendMode:w.prop("mixBlendMode"),backgroundBlendMode:!0,bgBlendMode:w.prop("backgroundBlendMode"),opacity:!0};Object.assign(yf,{shadow:yf.boxShadow});var sT={filter:{transform:G.filter},blur:w.blur("--chakra-blur"),brightness:w.propT("--chakra-brightness",G.brightness),contrast:w.propT("--chakra-contrast",G.contrast),hueRotate:w.propT("--chakra-hue-rotate",G.hueRotate),invert:w.propT("--chakra-invert",G.invert),saturate:w.propT("--chakra-saturate",G.saturate),dropShadow:w.propT("--chakra-drop-shadow",G.dropShadow),backdropFilter:{transform:G.backdropFilter},backdropBlur:w.blur("--chakra-backdrop-blur"),backdropBrightness:w.propT("--chakra-backdrop-brightness",G.brightness),backdropContrast:w.propT("--chakra-backdrop-contrast",G.contrast),backdropHueRotate:w.propT("--chakra-backdrop-hue-rotate",G.hueRotate),backdropInvert:w.propT("--chakra-backdrop-invert",G.invert),backdropSaturate:w.propT("--chakra-backdrop-saturate",G.saturate)},Nl={alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:{transform:G.flexDirection},flex:!0,flexFlow:!0,flexGrow:!0,flexShrink:!0,flexBasis:w.sizes("flexBasis"),justifySelf:!0,alignSelf:!0,order:!0,placeItems:!0,placeContent:!0,placeSelf:!0,gap:w.space("gap"),rowGap:w.space("rowGap"),columnGap:w.space("columnGap")};Object.assign(Nl,{flexDir:Nl.flexDirection});var Tb={gridGap:w.space("gridGap"),gridColumnGap:w.space("gridColumnGap"),gridRowGap:w.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},lT={appearance:!0,cursor:!0,resize:!0,userSelect:!0,pointerEvents:!0,outline:{transform:G.outline},outlineOffset:!0,outlineColor:w.colors("outlineColor")},At={width:w.sizesT("width"),inlineSize:w.sizesT("inlineSize"),height:w.sizes("height"),blockSize:w.sizes("blockSize"),boxSize:w.sizes(["width","height"]),minWidth:w.sizes("minWidth"),minInlineSize:w.sizes("minInlineSize"),minHeight:w.sizes("minHeight"),minBlockSize:w.sizes("minBlockSize"),maxWidth:w.sizes("maxWidth"),maxInlineSize:w.sizes("maxInlineSize"),maxHeight:w.sizes("maxHeight"),maxBlockSize:w.sizes("maxBlockSize"),overflow:!0,overflowX:!0,overflowY:!0,overscrollBehavior:!0,overscrollBehaviorX:!0,overscrollBehaviorY:!0,display:!0,aspectRatio:!0,hideFrom:{scale:"breakpoints",transform:(e,t)=>{var r,n,o;return{[`@media screen and (min-width: ${(o=(n=(r=t.__breakpoints)==null?void 0:r.get(e))==null?void 0:n.minW)!=null?o:e})`]:{display:"none"}}}},hideBelow:{scale:"breakpoints",transform:(e,t)=>{var r,n,o;return{[`@media screen and (max-width: ${(o=(n=(r=t.__breakpoints)==null?void 0:r.get(e))==null?void 0:n._minW)!=null?o:e})`]:{display:"none"}}}},verticalAlign:!0,boxSizing:!0,boxDecorationBreak:!0,float:w.propT("float",G.float),objectFit:!0,objectPosition:!0,visibility:!0,isolation:!0};Object.assign(At,{w:At.width,h:At.height,minW:At.minWidth,maxW:At.maxWidth,minH:At.minHeight,maxH:At.maxHeight,overscroll:At.overscrollBehavior,overscrollX:At.overscrollBehaviorX,overscrollY:At.overscrollBehaviorY});var uT={listStyleType:!0,listStylePosition:!0,listStylePos:w.prop("listStylePosition"),listStyleImage:!0,listStyleImg:w.prop("listStyleImage")};function cT(e,t,r,n){const o=typeof t=="string"?t.split("."):[t];for(n=0;n{const t=new WeakMap;return(n,o,i,a)=>{if(typeof n>"u")return e(n,o,i);t.has(n)||t.set(n,new Map);const s=t.get(n);if(s.has(o))return s.get(o);const l=e(n,o,i,a);return s.set(o,l),l}},fT=dT(cT),hT={border:"0px",clip:"rect(0, 0, 0, 0)",width:"1px",height:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},pT={position:"static",width:"auto",height:"auto",clip:"auto",padding:"0",margin:"0",overflow:"visible",whiteSpace:"normal"},Fc=(e,t,r)=>{const n={},o=fT(e,t,{});for(const i in o)i in r&&r[i]!=null||(n[i]=o[i]);return n},mT={srOnly:{transform(e){return e===!0?hT:e==="focusable"?pT:{}}},layerStyle:{processResult:!0,transform:(e,t,r)=>Fc(t,`layerStyles.${e}`,r)},textStyle:{processResult:!0,transform:(e,t,r)=>Fc(t,`textStyles.${e}`,r)},apply:{processResult:!0,transform:(e,t,r)=>Fc(t,e,r)}},Gi={position:!0,pos:w.prop("position"),zIndex:w.prop("zIndex","zIndices"),inset:w.spaceT("inset"),insetX:w.spaceT(["left","right"]),insetInline:w.spaceT("insetInline"),insetY:w.spaceT(["top","bottom"]),insetBlock:w.spaceT("insetBlock"),top:w.spaceT("top"),insetBlockStart:w.spaceT("insetBlockStart"),bottom:w.spaceT("bottom"),insetBlockEnd:w.spaceT("insetBlockEnd"),left:w.spaceT("left"),insetInlineStart:w.logical({scale:"space",property:{ltr:"left",rtl:"right"}}),right:w.spaceT("right"),insetInlineEnd:w.logical({scale:"space",property:{ltr:"right",rtl:"left"}})};Object.assign(Gi,{insetStart:Gi.insetInlineStart,insetEnd:Gi.insetInlineEnd});var vT={ring:{transform:G.ring},ringColor:w.colors("--chakra-ring-color"),ringOffset:w.prop("--chakra-ring-offset-width"),ringOffsetColor:w.colors("--chakra-ring-offset-color"),ringInset:w.prop("--chakra-ring-inset")},de={margin:w.spaceT("margin"),marginTop:w.spaceT("marginTop"),marginBlockStart:w.spaceT("marginBlockStart"),marginRight:w.spaceT("marginRight"),marginInlineEnd:w.spaceT("marginInlineEnd"),marginBottom:w.spaceT("marginBottom"),marginBlockEnd:w.spaceT("marginBlockEnd"),marginLeft:w.spaceT("marginLeft"),marginInlineStart:w.spaceT("marginInlineStart"),marginX:w.spaceT(["marginInlineStart","marginInlineEnd"]),marginInline:w.spaceT("marginInline"),marginY:w.spaceT(["marginTop","marginBottom"]),marginBlock:w.spaceT("marginBlock"),padding:w.space("padding"),paddingTop:w.space("paddingTop"),paddingBlockStart:w.space("paddingBlockStart"),paddingRight:w.space("paddingRight"),paddingBottom:w.space("paddingBottom"),paddingBlockEnd:w.space("paddingBlockEnd"),paddingLeft:w.space("paddingLeft"),paddingInlineStart:w.space("paddingInlineStart"),paddingInlineEnd:w.space("paddingInlineEnd"),paddingX:w.space(["paddingInlineStart","paddingInlineEnd"]),paddingInline:w.space("paddingInline"),paddingY:w.space(["paddingTop","paddingBottom"]),paddingBlock:w.space("paddingBlock")};Object.assign(de,{m:de.margin,mt:de.marginTop,mr:de.marginRight,me:de.marginInlineEnd,marginEnd:de.marginInlineEnd,mb:de.marginBottom,ml:de.marginLeft,ms:de.marginInlineStart,marginStart:de.marginInlineStart,mx:de.marginX,my:de.marginY,p:de.padding,pt:de.paddingTop,py:de.paddingY,px:de.paddingX,pb:de.paddingBottom,pl:de.paddingLeft,ps:de.paddingInlineStart,paddingStart:de.paddingInlineStart,pr:de.paddingRight,pe:de.paddingInlineEnd,paddingEnd:de.paddingInlineEnd});var gT={textDecorationColor:w.colors("textDecorationColor"),textDecoration:!0,textDecor:{property:"textDecoration"},textDecorationLine:!0,textDecorationStyle:!0,textDecorationThickness:!0,textUnderlineOffset:!0,textShadow:w.shadows("textShadow")},yT={clipPath:!0,transform:w.propT("transform",G.transform),transformOrigin:!0,translateX:w.spaceT("--chakra-translate-x"),translateY:w.spaceT("--chakra-translate-y"),skewX:w.degreeT("--chakra-skew-x"),skewY:w.degreeT("--chakra-skew-y"),scaleX:w.prop("--chakra-scale-x"),scaleY:w.prop("--chakra-scale-y"),scale:w.prop(["--chakra-scale-x","--chakra-scale-y"]),rotate:w.degreeT("--chakra-rotate")},bT={transition:!0,transitionDelay:!0,animation:!0,willChange:!0,transitionDuration:w.prop("transitionDuration","transition.duration"),transitionProperty:w.prop("transitionProperty","transition.property"),transitionTimingFunction:w.prop("transitionTimingFunction","transition.easing")},ST={fontFamily:w.prop("fontFamily","fonts"),fontSize:w.prop("fontSize","fontSizes",G.px),fontWeight:w.prop("fontWeight","fontWeights"),lineHeight:w.prop("lineHeight","lineHeights"),letterSpacing:w.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"}},xT={scrollBehavior:!0,scrollSnapAlign:!0,scrollSnapStop:!0,scrollSnapType:!0,scrollMargin:w.spaceT("scrollMargin"),scrollMarginTop:w.spaceT("scrollMarginTop"),scrollMarginBottom:w.spaceT("scrollMarginBottom"),scrollMarginLeft:w.spaceT("scrollMarginLeft"),scrollMarginRight:w.spaceT("scrollMarginRight"),scrollMarginX:w.spaceT(["scrollMarginLeft","scrollMarginRight"]),scrollMarginY:w.spaceT(["scrollMarginTop","scrollMarginBottom"]),scrollPadding:w.spaceT("scrollPadding"),scrollPaddingTop:w.spaceT("scrollPaddingTop"),scrollPaddingBottom:w.spaceT("scrollPaddingBottom"),scrollPaddingLeft:w.spaceT("scrollPaddingLeft"),scrollPaddingRight:w.spaceT("scrollPaddingRight"),scrollPaddingX:w.spaceT(["scrollPaddingLeft","scrollPaddingRight"]),scrollPaddingY:w.spaceT(["scrollPaddingTop","scrollPaddingBottom"])};function Eb(e){return dr(e)&&e.reference?e.reference:String(e)}var Du=(e,...t)=>t.map(Eb).join(` ${e} `).replace(/calc/g,""),Mv=(...e)=>`calc(${Du("+",...e)})`,zv=(...e)=>`calc(${Du("-",...e)})`,bf=(...e)=>`calc(${Du("*",...e)})`,Fv=(...e)=>`calc(${Du("/",...e)})`,Dv=e=>{const t=Eb(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:bf(t,-1)},Pn=Object.assign(e=>({add:(...t)=>Pn(Mv(e,...t)),subtract:(...t)=>Pn(zv(e,...t)),multiply:(...t)=>Pn(bf(e,...t)),divide:(...t)=>Pn(Fv(e,...t)),negate:()=>Pn(Dv(e)),toString:()=>e.toString()}),{add:Mv,subtract:zv,multiply:bf,divide:Fv,negate:Dv});function wT(e,t="-"){return e.replace(/\s+/g,t)}function kT(e){const t=wT(e.toString());return _T(CT(t))}function CT(e){return e.includes("\\.")?e:!Number.isInteger(parseFloat(e.toString()))?e.replace(".","\\."):e}function _T(e){return e.replace(/[!-,/:-@[-^`{-~]/g,"\\$&")}function PT(e,t=""){return[t,e].filter(Boolean).join("-")}function TT(e,t){return`var(${e}${t?`, ${t}`:""})`}function ET(e,t=""){return kT(`--${PT(e,t)}`)}function O(e,t,r){const n=ET(e,r);return{variable:n,reference:TT(n,t)}}function $T(e,t){const r={};for(const n of t){if(Array.isArray(n)){const[o,i]=n;r[o]=O(`${e}-${o}`,i);continue}r[n]=O(`${e}-${n}`)}return r}function AT(e){const t=e==null?0:e.length;return t?e[t-1]:void 0}function RT(e){const t=parseFloat(e.toString()),r=e.toString().replace(String(t),"");return{unitless:!r,value:t,unit:r}}function Sf(e){if(e==null)return e;const{unitless:t}=RT(e);return t||typeof e=="number"?`${e}px`:e}var $b=(e,t)=>parseInt(e[1],10)>parseInt(t[1],10)?1:-1,rp=e=>Object.fromEntries(Object.entries(e).sort($b));function Iv(e){const t=rp(e);return Object.assign(Object.values(t),t)}function MT(e){const t=Object.keys(rp(e));return new Set(t)}function Lv(e){var t;if(!e)return e;e=(t=Sf(e))!=null?t:e;const r=-.02;return typeof e=="number"?`${e+r}`:e.replace(/(\d+\.?\d*)/u,n=>`${parseFloat(n)+r}`)}function Ai(e,t){const r=["@media screen"];return e&&r.push("and",`(min-width: ${Sf(e)})`),t&&r.push("and",`(max-width: ${Sf(t)})`),r.join(" ")}function zT(e){var t;if(!e)return null;e.base=(t=e.base)!=null?t:"0px";const r=Iv(e),n=Object.entries(e).sort($b).map(([a,s],l,u)=>{var c;let[,d]=(c=u[l+1])!=null?c:[];return d=parseFloat(d)>0?Lv(d):void 0,{_minW:Lv(s),breakpoint:a,minW:s,maxW:d,maxWQuery:Ai(null,d),minWQuery:Ai(s),minMaxQuery:Ai(s,d)}}),o=MT(e),i=Array.from(o.values());return{keys:o,normalized:r,isResponsive(a){const s=Object.keys(a);return s.length>0&&s.every(l=>o.has(l))},asObject:rp(e),asArray:Iv(e),details:n,get(a){return n.find(s=>s.breakpoint===a)},media:[null,...r.map(a=>Ai(a)).slice(1)],toArrayValue(a){if(!dr(a))throw new Error("toArrayValue: value must be an object");const s=i.map(l=>{var u;return(u=a[l])!=null?u:null});for(;AT(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 c=i[u];return c!=null&&l!=null&&(s[c]=l),s},{})}}}var je={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}`},Br=e=>Ab(t=>e(t,"&"),"[role=group]","[data-group]",".group"),gr=e=>Ab(t=>e(t,"~ &"),"[data-peer]",".peer"),Ab=(e,...t)=>t.map(e).join(", "),Iu={_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",_firstLetter:"&::first-letter",_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:Br(je.hover),_peerHover:gr(je.hover),_groupFocus:Br(je.focus),_peerFocus:gr(je.focus),_groupFocusVisible:Br(je.focusVisible),_peerFocusVisible:gr(je.focusVisible),_groupActive:Br(je.active),_peerActive:gr(je.active),_groupDisabled:Br(je.disabled),_peerDisabled:gr(je.disabled),_groupInvalid:Br(je.invalid),_peerInvalid:gr(je.invalid),_groupChecked:Br(je.checked),_peerChecked:gr(je.checked),_groupFocusWithin:Br(je.focusWithin),_peerFocusWithin:gr(je.focusWithin),_peerPlaceholderShown:gr(je.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]",_horizontal:"&[data-orientation=horizontal]",_vertical:"&[data-orientation=vertical]"},Rb=Object.keys(Iu);function Ov(e,t){return O(String(e).replace(/\./g,"-"),void 0,t)}function FT(e,t){let r={};const n={};for(const[o,i]of Object.entries(e)){const{isSemantic:a,value:s}=i,{variable:l,reference:u}=Ov(o,t==null?void 0:t.cssVarPrefix);if(!a){if(o.startsWith("space")){const f=o.split("."),[p,...g]=f,y=`${p}.-${g.join(".")}`,k=Pn.negate(s),m=Pn.negate(u);n[y]={value:k,var:l,varRef:m}}r[l]=s,n[o]={value:s,var:l,varRef:u};continue}const c=f=>{const g=[String(o).split(".")[0],f].join(".");if(!e[g])return f;const{reference:k}=Ov(g,t==null?void 0:t.cssVarPrefix);return k},d=dr(s)?s:{default:s};r=sr(r,Object.entries(d).reduce((f,[p,g])=>{var y,k;if(!g)return f;const m=c(`${g}`);if(p==="default")return f[l]=m,f;const h=(k=(y=Iu)==null?void 0:y[p])!=null?k:p;return f[h]={[l]:m},f},{})),n[o]={value:u,var:l,varRef:u}}return{cssVars:r,cssMap:n}}function DT(e,t=[]){const r=Object.assign({},e);for(const n of t)n in r&&delete r[n];return r}function IT(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function LT(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}function Bv(e,t,r={}){const{stop:n,getKey:o}=r;function i(a,s=[]){var l;if(LT(a)||Array.isArray(a)){const u={};for(const[c,d]of Object.entries(a)){const f=(l=o==null?void 0:o(c))!=null?l:c,p=[...s,f];if(n!=null&&n(a,p))return t(a,s);u[f]=i(d,p)}return u}return t(a,s)}return i(e)}var OT=["colors","borders","borderWidths","borderStyles","fonts","fontSizes","fontWeights","gradients","letterSpacings","lineHeights","radii","space","shadows","sizes","zIndices","transition","blur","breakpoints"];function BT(e){return IT(e,OT)}function jT(e){return e.semanticTokens}function NT(e){const{__cssMap:t,__cssVars:r,__breakpoints:n,...o}=e;return o}var VT=e=>Rb.includes(e)||e==="default";function WT({tokens:e,semanticTokens:t}){const r={};return Bv(e,(n,o)=>{n!=null&&(r[o.join(".")]={isSemantic:!1,value:n})}),Bv(t,(n,o)=>{n!=null&&(r[o.join(".")]={isSemantic:!0,value:n})},{stop:n=>Object.keys(n).every(VT)}),r}function UT(e){var t;const r=NT(e),n=BT(r),o=jT(r),i=WT({tokens:n,semanticTokens:o}),a=(t=r.config)==null?void 0:t.cssVarPrefix,{cssMap:s,cssVars:l}=FT(i,{cssVarPrefix:a});return Object.assign(r,{__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:zT(r.breakpoints)}),r}var np=sr({},el,X,aT,Nl,At,sT,vT,lT,Tb,mT,Gi,yf,de,xT,ST,gT,yT,uT,bT),HT=Object.assign({},de,At,Nl,Tb,Gi),mB=Object.keys(HT),GT=[...Object.keys(np),...Rb],KT={...np,...Iu},YT=e=>e in KT,XT=e=>t=>{if(!t.__breakpoints)return e;const{isResponsive:r,toArrayValue:n,media:o}=t.__breakpoints,i={};for(const a in e){let s=ar(e[a],t);if(s==null)continue;if(s=dr(s)&&r(s)?n(s):s,!Array.isArray(s)){i[a]=s;continue}const l=s.slice(0,o.length).length;for(let u=0;ue.startsWith("--")&&typeof t=="string"&&!qT(t),JT=(e,t)=>{var r,n;if(t==null)return t;const o=l=>{var u,c;return(c=(u=e.__cssMap)==null?void 0:u[l])==null?void 0:c.varRef},i=l=>{var u;return(u=o(l))!=null?u:l},[a,s]=QT(t);return t=(n=(r=o(a))!=null?r:i(s))!=null?n:i(t),t};function eE(e){const{configs:t={},pseudos:r={},theme:n}=e,o=(i,a=!1)=>{var s,l,u;const c=ar(i,n),d=XT(c)(n);let f={};for(let p in d){const g=d[p];let y=ar(g,n);p in r&&(p=r[p]),ZT(p,y)&&(y=JT(n,y));let k=t[p];if(k===!0&&(k={property:p}),dr(y)){f[p]=(s=f[p])!=null?s:{},f[p]=sr({},f[p],o(y,!0));continue}let m=(u=(l=k==null?void 0:k.transform)==null?void 0:l.call(k,y,n,c))!=null?u:y;m=k!=null&&k.processResult?o(m,!0):m;const h=ar(k==null?void 0:k.property,n);if(!a&&(k!=null&&k.static)){const v=ar(k.static,n);f=sr({},f,v)}if(h&&Array.isArray(h)){for(const v of h)f[v]=m;continue}if(h){h==="&"&&dr(m)?f=sr({},f,m):f[h]=m;continue}if(dr(m)){f=sr({},f,m);continue}f[p]=m}return f};return o}var Mb=e=>t=>eE({theme:t,pseudos:Iu,configs:np})(e);function le(e){return{definePartsStyle(t){return t},defineMultiStyleConfig(t){return{parts:e,...t}}}}function tE(e,t){if(Array.isArray(e))return e;if(dr(e))return t(e);if(e!=null)return[e]}function rE(e,t){for(let r=t+1;r{sr(u,{[v]:f?h[v]:{[m]:h[v]}})});continue}if(!p){f?sr(u,h):u[m]=h;continue}u[m]=h}}return u}}function oE(e){return t=>{var r;const{variant:n,size:o,theme:i}=t,a=nE(i);return sr({},ar((r=e.baseStyle)!=null?r:{},t),a(e,"sizes",o,t),a(e,"variants",n,t))}}function vB(e,t,r){var n,o,i;return(i=(o=(n=e.__cssMap)==null?void 0:n[`${t}.${r}`])==null?void 0:o.varRef)!=null?i:r}function Lu(e){return DT(e,["styleConfig","size","variant","colorScheme"])}var iE={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"},aE={"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)"},sE={"ultra-fast":"50ms",faster:"100ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"400ms","ultra-slow":"500ms"},lE={property:iE,easing:aE,duration:sE},uE=lE,cE={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},dE=cE,fE={none:0,"1px":"1px solid","2px":"2px solid","4px":"4px solid","8px":"8px solid"},hE=fE,pE={base:"0em",sm:"30em",md:"48em",lg:"62em",xl:"80em","2xl":"96em"},mE=pE,vE={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"}},gE=vE,yE={none:"0",sm:"0.125rem",base:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},bE=yE,SE={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"},xE=SE,wE={none:0,sm:"4px",base:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},kE=wE,CE={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"}},zb=CE,Fb={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"},_E={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"},PE={sm:"640px",md:"768px",lg:"1024px",xl:"1280px"},TE={...Fb,..._E,container:PE},Db=TE,EE={breakpoints:mE,zIndices:dE,radii:bE,blur:kE,colors:gE,...zb,sizes:Db,shadows:xE,space:Fb,borders:hE,transition:uE},{defineMultiStyleConfig:$E,definePartsStyle:Ri}=le(["stepper","step","title","description","indicator","separator","icon","number"]),Sr=O("stepper-indicator-size"),go=O("stepper-icon-size"),yo=O("stepper-title-font-size"),Mi=O("stepper-description-font-size"),Si=O("stepper-accent-color"),AE=Ri(({colorScheme:e})=>({stepper:{display:"flex",justifyContent:"space-between",gap:"4","&[data-orientation=vertical]":{flexDirection:"column",alignItems:"flex-start"},"&[data-orientation=horizontal]":{flexDirection:"row",alignItems:"center"},[Si.variable]:`colors.${e}.500`,_dark:{[Si.variable]:`colors.${e}.200`}},title:{fontSize:yo.reference,fontWeight:"medium"},description:{fontSize:Mi.reference,color:"chakra-subtle-text"},number:{fontSize:yo.reference},step:{flexShrink:0,position:"relative",display:"flex",gap:"2","&[data-orientation=horizontal]":{alignItems:"center"},flex:"1","&:last-of-type:not([data-stretch])":{flex:"initial"}},icon:{flexShrink:0,width:go.reference,height:go.reference},indicator:{flexShrink:0,borderRadius:"full",width:Sr.reference,height:Sr.reference,display:"flex",justifyContent:"center",alignItems:"center","&[data-status=active]":{borderWidth:"2px",borderColor:Si.reference},"&[data-status=complete]":{bg:Si.reference,color:"chakra-inverse-text"},"&[data-status=incomplete]":{borderWidth:"2px"}},separator:{bg:"chakra-border-color",flex:"1","&[data-status=complete]":{bg:Si.reference},"&[data-orientation=horizontal]":{width:"100%",height:"2px",marginStart:"2"},"&[data-orientation=vertical]":{width:"2px",position:"absolute",height:"100%",maxHeight:`calc(100% - ${Sr.reference} - 8px)`,top:`calc(${Sr.reference} + 4px)`,insetStart:`calc(${Sr.reference} / 2 - 1px)`}}})),RE=$E({baseStyle:AE,sizes:{xs:Ri({stepper:{[Sr.variable]:"sizes.4",[go.variable]:"sizes.3",[yo.variable]:"fontSizes.xs",[Mi.variable]:"fontSizes.xs"}}),sm:Ri({stepper:{[Sr.variable]:"sizes.6",[go.variable]:"sizes.4",[yo.variable]:"fontSizes.sm",[Mi.variable]:"fontSizes.xs"}}),md:Ri({stepper:{[Sr.variable]:"sizes.8",[go.variable]:"sizes.5",[yo.variable]:"fontSizes.md",[Mi.variable]:"fontSizes.sm"}}),lg:Ri({stepper:{[Sr.variable]:"sizes.10",[go.variable]:"sizes.6",[yo.variable]:"fontSizes.lg",[Mi.variable]:"fontSizes.md"}})},defaultProps:{size:"md",colorScheme:"blue"}});function J(e,t={}){let r=!1;function n(){if(!r){r=!0;return}throw new Error("[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?")}function o(...c){n();for(const d of c)t[d]=l(d);return J(e,t)}function i(...c){for(const d of c)d in t||(t[d]=l(d));return J(e,t)}function a(){return Object.fromEntries(Object.entries(t).map(([d,f])=>[d,f.selector]))}function s(){return Object.fromEntries(Object.entries(t).map(([d,f])=>[d,f.className]))}function l(c){const p=`chakra-${(["container","root"].includes(c??"")?[e]:[e,c]).filter(Boolean).join("__")}`;return{className:p,selector:`.${p}`,toString:()=>c}}return{parts:o,toPart:l,extend:i,selectors:a,classnames:s,get keys(){return Object.keys(t)},__type:{}}}var ME=J("accordion").parts("root","container","button","panel").extend("icon"),zE=J("alert").parts("title","description","container").extend("icon","spinner"),FE=J("avatar").parts("label","badge","container").extend("excessLabel","group"),DE=J("breadcrumb").parts("link","item","container").extend("separator");J("button").parts();var IE=J("checkbox").parts("control","icon","container").extend("label");J("progress").parts("track","filledTrack").extend("label");var LE=J("drawer").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),OE=J("editable").parts("preview","input","textarea"),BE=J("form").parts("container","requiredIndicator","helperText"),jE=J("formError").parts("text","icon"),NE=J("input").parts("addon","field","element","group"),VE=J("list").parts("container","item","icon"),WE=J("menu").parts("button","list","item").extend("groupTitle","icon","command","divider"),UE=J("modal").parts("overlay","dialogContainer","dialog").extend("header","closeButton","body","footer"),HE=J("numberinput").parts("root","field","stepperGroup","stepper");J("pininput").parts("field");var GE=J("popover").parts("content","header","body","footer").extend("popper","arrow","closeButton"),KE=J("progress").parts("label","filledTrack","track"),YE=J("radio").parts("container","control","label"),XE=J("select").parts("field","icon"),QE=J("slider").parts("container","track","thumb","filledTrack","mark"),qE=J("stat").parts("container","label","helpText","number","icon"),ZE=J("switch").parts("container","track","thumb","label"),JE=J("table").parts("table","thead","tbody","tr","th","td","tfoot","caption"),e$=J("tabs").parts("root","tab","tablist","tabpanel","tabpanels","indicator"),t$=J("tag").parts("container","label","closeButton"),r$=J("card").parts("container","header","body","footer");J("stepper").parts("stepper","step","title","description","indicator","separator","icon","number");function Rn(e,t,r){return Math.min(Math.max(e,r),t)}class n$ extends Error{constructor(t){super(`Failed to parse color: "${t}"`)}}var zi=n$;function op(e){if(typeof e!="string")throw new zi(e);if(e.trim().toLowerCase()==="transparent")return[0,0,0,0];let t=e.trim();t=d$.test(e)?a$(e):e;const r=s$.exec(t);if(r){const a=Array.from(r).slice(1);return[...a.slice(0,3).map(s=>parseInt(ka(s,2),16)),parseInt(ka(a[3]||"f",2),16)/255]}const n=l$.exec(t);if(n){const a=Array.from(n).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,16)),parseInt(a[3]||"ff",16)/255]}const o=u$.exec(t);if(o){const a=Array.from(o).slice(1);return[...a.slice(0,3).map(s=>parseInt(s,10)),parseFloat(a[3]||"1")]}const i=c$.exec(t);if(i){const[a,s,l,u]=Array.from(i).slice(1).map(parseFloat);if(Rn(0,100,s)!==s)throw new zi(e);if(Rn(0,100,l)!==l)throw new zi(e);return[...f$(a,s,l),Number.isNaN(u)?1:u]}throw new zi(e)}function o$(e){let t=5381,r=e.length;for(;r;)t=t*33^e.charCodeAt(--r);return(t>>>0)%2341}const jv=e=>parseInt(e.replace(/_/g,""),36),i$="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 r=jv(t.substring(0,3)),n=jv(t.substring(3)).toString(16);let o="";for(let i=0;i<6-n.length;i++)o+="0";return e[r]=`${o}${n}`,e},{});function a$(e){const t=e.toLowerCase().trim(),r=i$[o$(t)];if(!r)throw new zi(e);return`#${r}`}const ka=(e,t)=>Array.from(Array(t)).map(()=>e).join(""),s$=new RegExp(`^#${ka("([a-f0-9])",3)}([a-f0-9])?$`,"i"),l$=new RegExp(`^#${ka("([a-f0-9]{2})",3)}([a-f0-9]{2})?$`,"i"),u$=new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${ka(",\\s*(\\d+)\\s*",2)}(?:,\\s*([\\d.]+))?\\s*\\)$`,"i"),c$=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i,d$=/^[a-z]+$/i,Nv=e=>Math.round(e*255),f$=(e,t,r)=>{let n=r/100;if(t===0)return[n,n,n].map(Nv);const o=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*(t/100),a=i*(1-Math.abs(o%2-1));let s=0,l=0,u=0;o>=0&&o<1?(s=i,l=a):o>=1&&o<2?(s=a,l=i):o>=2&&o<3?(l=i,u=a):o>=3&&o<4?(l=a,u=i):o>=4&&o<5?(s=a,u=i):o>=5&&o<6&&(s=i,u=a);const c=n-i/2,d=s+c,f=l+c,p=u+c;return[d,f,p].map(Nv)};function h$(e,t,r,n){return`rgba(${Rn(0,255,e).toFixed()}, ${Rn(0,255,t).toFixed()}, ${Rn(0,255,r).toFixed()}, ${parseFloat(Rn(0,1,n).toFixed(3))})`}function p$(e,t){const[r,n,o,i]=op(e);return h$(r,n,o,i-t)}function m$(e){const[t,r,n,o]=op(e);let i=a=>{const s=Rn(0,255,a).toString(16);return s.length===1?`0${s}`:s};return`#${i(t)}${i(r)}${i(n)}${o<1?i(Math.round(o*255)):""}`}function v$(e,t,r,n,o){for(t=t.split?t.split("."):t,n=0;nObject.keys(e).length===0,et=(e,t,r)=>{const n=v$(e,`colors.${t}`,t);try{return m$(n),n}catch{return r??"#000000"}},y$=e=>{const[t,r,n]=op(e);return(t*299+r*587+n*114)/1e3},b$=e=>t=>{const r=et(t,e);return y$(r)<128?"dark":"light"},S$=e=>t=>b$(e)(t)==="dark",qo=(e,t)=>r=>{const n=et(r,e);return p$(n,1-t)};function Vv(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 x$=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`;function w$(e){const t=x$();return!e||g$(e)?t:e.string&&e.colors?C$(e.string,e.colors):e.string&&!e.colors?k$(e.string):e.colors&&!e.string?_$(e.colors):t}function k$(e){let t=0;if(e.length===0)return t.toString();for(let n=0;n>n*8&255;r+=`00${o.toString(16)}`.substr(-2)}return r}function C$(e,t){let r=0;if(e.length===0)return t[0];for(let n=0;nr.colorMode==="dark"?t:e}function ip(e){const{orientation:t,vertical:r,horizontal:n}=e;return t?t==="vertical"?r:n:{}}function Ib(e){return dr(e)&&e.reference?e.reference:String(e)}var Ou=(e,...t)=>t.map(Ib).join(` ${e} `).replace(/calc/g,""),Wv=(...e)=>`calc(${Ou("+",...e)})`,Uv=(...e)=>`calc(${Ou("-",...e)})`,xf=(...e)=>`calc(${Ou("*",...e)})`,Hv=(...e)=>`calc(${Ou("/",...e)})`,Gv=e=>{const t=Ib(e);return t!=null&&!Number.isNaN(parseFloat(t))?String(t).startsWith("-")?String(t).slice(1):`-${t}`:xf(t,-1)},xr=Object.assign(e=>({add:(...t)=>xr(Wv(e,...t)),subtract:(...t)=>xr(Uv(e,...t)),multiply:(...t)=>xr(xf(e,...t)),divide:(...t)=>xr(Hv(e,...t)),negate:()=>xr(Gv(e)),toString:()=>e.toString()}),{add:Wv,subtract:Uv,multiply:xf,divide:Hv,negate:Gv});function P$(e){return!Number.isInteger(parseFloat(e.toString()))}function T$(e,t="-"){return e.replace(/\s+/g,t)}function Lb(e){const t=T$(e.toString());return t.includes("\\.")?e:P$(e)?t.replace(".","\\."):e}function E$(e,t=""){return[t,Lb(e)].filter(Boolean).join("-")}function $$(e,t){return`var(${Lb(e)}${t?`, ${t}`:""})`}function A$(e,t=""){return`--${E$(e,t)}`}function Me(e,t){const r=A$(e,t==null?void 0:t.prefix);return{variable:r,reference:$$(r,R$(t==null?void 0:t.fallback))}}function R$(e){return typeof e=="string"?e:e==null?void 0:e.reference}var{defineMultiStyleConfig:M$,definePartsStyle:tl}=le(ZE.keys),Ki=Me("switch-track-width"),Dn=Me("switch-track-height"),Dc=Me("switch-track-diff"),z$=xr.subtract(Ki,Dn),wf=Me("switch-thumb-x"),xi=Me("switch-bg"),F$=e=>{const{colorScheme:t}=e;return{borderRadius:"full",p:"0.5",width:[Ki.reference],height:[Dn.reference],transitionProperty:"common",transitionDuration:"fast",[xi.variable]:"colors.gray.300",_dark:{[xi.variable]:"colors.whiteAlpha.400"},_focusVisible:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed"},_checked:{[xi.variable]:`colors.${t}.500`,_dark:{[xi.variable]:`colors.${t}.200`}},bg:xi.reference}},D$={bg:"white",transitionProperty:"transform",transitionDuration:"normal",borderRadius:"inherit",width:[Dn.reference],height:[Dn.reference],_checked:{transform:`translateX(${wf.reference})`}},I$=tl(e=>({container:{[Dc.variable]:z$,[wf.variable]:Dc.reference,_rtl:{[wf.variable]:xr(Dc).negate().toString()}},track:F$(e),thumb:D$})),L$={sm:tl({container:{[Ki.variable]:"1.375rem",[Dn.variable]:"sizes.3"}}),md:tl({container:{[Ki.variable]:"1.875rem",[Dn.variable]:"sizes.4"}}),lg:tl({container:{[Ki.variable]:"2.875rem",[Dn.variable]:"sizes.6"}})},O$=M$({baseStyle:I$,sizes:L$,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:B$,definePartsStyle:Do}=le(JE.keys),j$=Do({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"}}),Vl={"&[data-is-numeric=true]":{textAlign:"end"}},N$=Do(e=>{const{colorScheme:t}=e;return{th:{color:L("gray.600","gray.400")(e),borderBottom:"1px",borderColor:L(`${t}.100`,`${t}.700`)(e),...Vl},td:{borderBottom:"1px",borderColor:L(`${t}.100`,`${t}.700`)(e),...Vl},caption:{color:L("gray.600","gray.100")(e)},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),V$=Do(e=>{const{colorScheme:t}=e;return{th:{color:L("gray.600","gray.400")(e),borderBottom:"1px",borderColor:L(`${t}.100`,`${t}.700`)(e),...Vl},td:{borderBottom:"1px",borderColor:L(`${t}.100`,`${t}.700`)(e),...Vl},caption:{color:L("gray.600","gray.100")(e)},tbody:{tr:{"&:nth-of-type(odd)":{"th, td":{borderBottomWidth:"1px",borderColor:L(`${t}.100`,`${t}.700`)(e)},td:{background:L(`${t}.100`,`${t}.700`)(e)}}}},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}}),W$={simple:N$,striped:V$,unstyled:{}},U$={sm:Do({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:Do({th:{px:"6",py:"3",lineHeight:"4",fontSize:"xs"},td:{px:"6",py:"4",lineHeight:"5"},caption:{px:"6",py:"2",fontSize:"sm"}}),lg:Do({th:{px:"8",py:"4",lineHeight:"5",fontSize:"sm"},td:{px:"8",py:"5",lineHeight:"6"},caption:{px:"6",py:"2",fontSize:"md"}})},H$=B$({baseStyle:j$,variants:W$,sizes:U$,defaultProps:{variant:"simple",size:"md",colorScheme:"gray"}}),st=O("tabs-color"),Wt=O("tabs-bg"),_s=O("tabs-border-color"),{defineMultiStyleConfig:G$,definePartsStyle:fr}=le(e$.keys),K$=e=>{const{orientation:t}=e;return{display:t==="vertical"?"flex":"block"}},Y$=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}}},X$=e=>{const{align:t="start",orientation:r}=e;return{justifyContent:{end:"flex-end",center:"center",start:"flex-start"}[t],flexDirection:r==="vertical"?"column":"row"}},Q$={p:4},q$=fr(e=>({root:K$(e),tab:Y$(e),tablist:X$(e),tabpanel:Q$})),Z$={sm:fr({tab:{py:1,px:4,fontSize:"sm"}}),md:fr({tab:{fontSize:"md",py:2,px:4}}),lg:fr({tab:{fontSize:"lg",py:3,px:4}})},J$=fr(e=>{const{colorScheme:t,orientation:r}=e,n=r==="vertical",o=n?"borderStart":"borderBottom",i=n?"marginStart":"marginBottom";return{tablist:{[o]:"2px solid",borderColor:"inherit"},tab:{[o]:"2px solid",borderColor:"transparent",[i]:"-2px",_selected:{[st.variable]:`colors.${t}.600`,_dark:{[st.variable]:`colors.${t}.300`},borderColor:"currentColor"},_active:{[Wt.variable]:"colors.gray.200",_dark:{[Wt.variable]:"colors.whiteAlpha.300"}},_disabled:{_active:{bg:"none"}},color:st.reference,bg:Wt.reference}}}),e5=fr(e=>{const{colorScheme:t}=e;return{tab:{borderTopRadius:"md",border:"1px solid",borderColor:"transparent",mb:"-1px",[_s.variable]:"transparent",_selected:{[st.variable]:`colors.${t}.600`,[_s.variable]:"colors.white",_dark:{[st.variable]:`colors.${t}.300`,[_s.variable]:"colors.gray.800"},borderColor:"inherit",borderBottomColor:_s.reference},color:st.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),t5=fr(e=>{const{colorScheme:t}=e;return{tab:{border:"1px solid",borderColor:"inherit",[Wt.variable]:"colors.gray.50",_dark:{[Wt.variable]:"colors.whiteAlpha.50"},mb:"-1px",_notLast:{marginEnd:"-1px"},_selected:{[Wt.variable]:"colors.white",[st.variable]:`colors.${t}.600`,_dark:{[Wt.variable]:"colors.gray.800",[st.variable]:`colors.${t}.300`},borderColor:"inherit",borderTopColor:"currentColor",borderBottomColor:"transparent"},color:st.reference,bg:Wt.reference},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}}),r5=fr(e=>{const{colorScheme:t,theme:r}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",color:"gray.600",_selected:{color:et(r,`${t}.700`),bg:et(r,`${t}.100`)}}}}),n5=fr(e=>{const{colorScheme:t}=e;return{tab:{borderRadius:"full",fontWeight:"semibold",[st.variable]:"colors.gray.600",_dark:{[st.variable]:"inherit"},_selected:{[st.variable]:"colors.white",[Wt.variable]:`colors.${t}.600`,_dark:{[st.variable]:"colors.gray.800",[Wt.variable]:`colors.${t}.300`}},color:st.reference,bg:Wt.reference}}}),o5=fr({}),i5={line:J$,enclosed:e5,"enclosed-colored":t5,"soft-rounded":r5,"solid-rounded":n5,unstyled:o5},a5=G$({baseStyle:q$,sizes:Z$,variants:i5,defaultProps:{size:"md",variant:"line",colorScheme:"blue"}}),Ce=$T("badge",["bg","color","shadow"]),s5={px:1,textTransform:"uppercase",fontSize:"xs",borderRadius:"sm",fontWeight:"bold",bg:Ce.bg.reference,color:Ce.color.reference,boxShadow:Ce.shadow.reference},l5=e=>{const{colorScheme:t,theme:r}=e,n=qo(`${t}.500`,.6)(r);return{[Ce.bg.variable]:`colors.${t}.500`,[Ce.color.variable]:"colors.white",_dark:{[Ce.bg.variable]:n,[Ce.color.variable]:"colors.whiteAlpha.800"}}},u5=e=>{const{colorScheme:t,theme:r}=e,n=qo(`${t}.200`,.16)(r);return{[Ce.bg.variable]:`colors.${t}.100`,[Ce.color.variable]:`colors.${t}.800`,_dark:{[Ce.bg.variable]:n,[Ce.color.variable]:`colors.${t}.200`}}},c5=e=>{const{colorScheme:t,theme:r}=e,n=qo(`${t}.200`,.8)(r);return{[Ce.color.variable]:`colors.${t}.500`,_dark:{[Ce.color.variable]:n},[Ce.shadow.variable]:`inset 0 0 0px 1px ${Ce.color.reference}`}},d5={solid:l5,subtle:u5,outline:c5},Yi={baseStyle:s5,variants:d5,defaultProps:{variant:"subtle",colorScheme:"gray"}},{defineMultiStyleConfig:f5,definePartsStyle:In}=le(t$.keys),Kv=O("tag-bg"),Yv=O("tag-color"),Ic=O("tag-shadow"),rl=O("tag-min-height"),nl=O("tag-min-width"),ol=O("tag-font-size"),il=O("tag-padding-inline"),h5={fontWeight:"medium",lineHeight:1.2,outline:0,[Yv.variable]:Ce.color.reference,[Kv.variable]:Ce.bg.reference,[Ic.variable]:Ce.shadow.reference,color:Yv.reference,bg:Kv.reference,boxShadow:Ic.reference,borderRadius:"md",minH:rl.reference,minW:nl.reference,fontSize:ol.reference,px:il.reference,_focusVisible:{[Ic.variable]:"shadows.outline"}},p5={lineHeight:1.2,overflow:"visible"},m5={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}},v5=In({container:h5,label:p5,closeButton:m5}),g5={sm:In({container:{[rl.variable]:"sizes.5",[nl.variable]:"sizes.5",[ol.variable]:"fontSizes.xs",[il.variable]:"space.2"},closeButton:{marginEnd:"-2px",marginStart:"0.35rem"}}),md:In({container:{[rl.variable]:"sizes.6",[nl.variable]:"sizes.6",[ol.variable]:"fontSizes.sm",[il.variable]:"space.2"}}),lg:In({container:{[rl.variable]:"sizes.8",[nl.variable]:"sizes.8",[ol.variable]:"fontSizes.md",[il.variable]:"space.3"}})},y5={subtle:In(e=>{var t;return{container:(t=Yi.variants)==null?void 0:t.subtle(e)}}),solid:In(e=>{var t;return{container:(t=Yi.variants)==null?void 0:t.solid(e)}}),outline:In(e=>{var t;return{container:(t=Yi.variants)==null?void 0:t.outline(e)}})},b5=f5({variants:y5,baseStyle:v5,sizes:g5,defaultProps:{size:"md",variant:"subtle",colorScheme:"gray"}}),{definePartsStyle:Cr,defineMultiStyleConfig:S5}=le(NE.keys),bo=O("input-height"),So=O("input-font-size"),xo=O("input-padding"),wo=O("input-border-radius"),x5=Cr({addon:{height:bo.reference,fontSize:So.reference,px:xo.reference,borderRadius:wo.reference},field:{width:"100%",height:bo.reference,fontSize:So.reference,px:xo.reference,borderRadius:wo.reference,minWidth:0,outline:0,position:"relative",appearance:"none",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed"}}}),jr={lg:{[So.variable]:"fontSizes.lg",[xo.variable]:"space.4",[wo.variable]:"radii.md",[bo.variable]:"sizes.12"},md:{[So.variable]:"fontSizes.md",[xo.variable]:"space.4",[wo.variable]:"radii.md",[bo.variable]:"sizes.10"},sm:{[So.variable]:"fontSizes.sm",[xo.variable]:"space.3",[wo.variable]:"radii.sm",[bo.variable]:"sizes.8"},xs:{[So.variable]:"fontSizes.xs",[xo.variable]:"space.2",[wo.variable]:"radii.sm",[bo.variable]:"sizes.6"}},w5={lg:Cr({field:jr.lg,group:jr.lg}),md:Cr({field:jr.md,group:jr.md}),sm:Cr({field:jr.sm,group:jr.sm}),xs:Cr({field:jr.xs,group:jr.xs})};function ap(e){const{focusBorderColor:t,errorBorderColor:r}=e;return{focusBorderColor:t||L("blue.500","blue.300")(e),errorBorderColor:r||L("red.500","red.300")(e)}}var k5=Cr(e=>{const{theme:t}=e,{focusBorderColor:r,errorBorderColor:n}=ap(e);return{field:{border:"1px solid",borderColor:"inherit",bg:"inherit",_hover:{borderColor:L("gray.300","whiteAlpha.400")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:et(t,n),boxShadow:`0 0 0 1px ${et(t,n)}`},_focusVisible:{zIndex:1,borderColor:et(t,r),boxShadow:`0 0 0 1px ${et(t,r)}`}},addon:{border:"1px solid",borderColor:L("inherit","whiteAlpha.50")(e),bg:L("gray.100","whiteAlpha.300")(e)}}}),C5=Cr(e=>{const{theme:t}=e,{focusBorderColor:r,errorBorderColor:n}=ap(e);return{field:{border:"2px solid",borderColor:"transparent",bg:L("gray.100","whiteAlpha.50")(e),_hover:{bg:L("gray.200","whiteAlpha.100")(e)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:et(t,n)},_focusVisible:{bg:"transparent",borderColor:et(t,r)}},addon:{border:"2px solid",borderColor:"transparent",bg:L("gray.100","whiteAlpha.50")(e)}}}),_5=Cr(e=>{const{theme:t}=e,{focusBorderColor:r,errorBorderColor:n}=ap(e);return{field:{borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:et(t,n),boxShadow:`0px 1px 0px 0px ${et(t,n)}`},_focusVisible:{borderColor:et(t,r),boxShadow:`0px 1px 0px 0px ${et(t,r)}`}},addon:{borderBottom:"2px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent"}}}),P5=Cr({field:{bg:"transparent",px:"0",height:"auto"},addon:{bg:"transparent",px:"0",height:"auto"}}),T5={outline:k5,filled:C5,flushed:_5,unstyled:P5},Z=S5({baseStyle:x5,sizes:w5,variants:T5,defaultProps:{size:"md",variant:"outline"}}),Xv,E5={...(Xv=Z.baseStyle)==null?void 0:Xv.field,paddingY:"2",minHeight:"20",lineHeight:"short",verticalAlign:"top"},Qv,qv,$5={outline:e=>{var t,r;return(r=(t=Z.variants)==null?void 0:t.outline(e).field)!=null?r:{}},flushed:e=>{var t,r;return(r=(t=Z.variants)==null?void 0:t.flushed(e).field)!=null?r:{}},filled:e=>{var t,r;return(r=(t=Z.variants)==null?void 0:t.filled(e).field)!=null?r:{}},unstyled:(qv=(Qv=Z.variants)==null?void 0:Qv.unstyled.field)!=null?qv:{}},Zv,Jv,eg,tg,rg,ng,og,ig,A5={xs:(Jv=(Zv=Z.sizes)==null?void 0:Zv.xs.field)!=null?Jv:{},sm:(tg=(eg=Z.sizes)==null?void 0:eg.sm.field)!=null?tg:{},md:(ng=(rg=Z.sizes)==null?void 0:rg.md.field)!=null?ng:{},lg:(ig=(og=Z.sizes)==null?void 0:og.lg.field)!=null?ig:{}},R5={baseStyle:E5,sizes:A5,variants:$5,defaultProps:{size:"md",variant:"outline"}},Ps=Me("tooltip-bg"),Lc=Me("tooltip-fg"),M5=Me("popper-arrow-bg"),z5={bg:Ps.reference,color:Lc.reference,[Ps.variable]:"colors.gray.700",[Lc.variable]:"colors.whiteAlpha.900",_dark:{[Ps.variable]:"colors.gray.300",[Lc.variable]:"colors.gray.900"},[M5.variable]:Ps.reference,px:"2",py:"0.5",borderRadius:"sm",fontWeight:"medium",fontSize:"sm",boxShadow:"md",maxW:"xs",zIndex:"tooltip"},F5={baseStyle:z5},{defineMultiStyleConfig:D5,definePartsStyle:Fi}=le(KE.keys),I5=e=>{const{colorScheme:t,theme:r,isIndeterminate:n,hasStripe:o}=e,i=L(Vv(),Vv("1rem","rgba(0,0,0,0.1)"))(e),a=L(`${t}.500`,`${t}.200`)(e),s=`linear-gradient( - to right, - transparent 0%, - ${et(r,a)} 50%, - transparent 100% - )`;return{...!n&&o&&i,...n?{bgImage:s}:{bgColor:a}}},L5={lineHeight:"1",fontSize:"0.25em",fontWeight:"bold",color:"white"},O5=e=>({bg:L("gray.100","whiteAlpha.300")(e)}),B5=e=>({transitionProperty:"common",transitionDuration:"slow",...I5(e)}),j5=Fi(e=>({label:L5,filledTrack:B5(e),track:O5(e)})),N5={xs:Fi({track:{h:"1"}}),sm:Fi({track:{h:"2"}}),md:Fi({track:{h:"3"}}),lg:Fi({track:{h:"4"}})},V5=D5({sizes:N5,baseStyle:j5,defaultProps:{size:"md",colorScheme:"blue"}}),W5=e=>typeof e=="function";function rt(e,...t){return W5(e)?e(...t):e}var{definePartsStyle:al,defineMultiStyleConfig:U5}=le(IE.keys),Xi=O("checkbox-size"),H5=e=>{const{colorScheme:t}=e;return{w:Xi.reference,h:Xi.reference,transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:L(`${t}.500`,`${t}.200`)(e),borderColor:L(`${t}.500`,`${t}.200`)(e),color:L("white","gray.900")(e),_hover:{bg:L(`${t}.600`,`${t}.300`)(e),borderColor:L(`${t}.600`,`${t}.300`)(e)},_disabled:{borderColor:L("gray.200","transparent")(e),bg:L("gray.200","whiteAlpha.300")(e),color:L("gray.500","whiteAlpha.500")(e)}},_indeterminate:{bg:L(`${t}.500`,`${t}.200`)(e),borderColor:L(`${t}.500`,`${t}.200`)(e),color:L("white","gray.900")(e)},_disabled:{bg:L("gray.100","whiteAlpha.100")(e),borderColor:L("gray.100","transparent")(e)},_focusVisible:{boxShadow:"outline"},_invalid:{borderColor:L("red.500","red.300")(e)}}},G5={_disabled:{cursor:"not-allowed"}},K5={userSelect:"none",_disabled:{opacity:.4}},Y5={transitionProperty:"transform",transitionDuration:"normal"},X5=al(e=>({icon:Y5,container:G5,control:rt(H5,e),label:K5})),Q5={sm:al({control:{[Xi.variable]:"sizes.3"},label:{fontSize:"sm"},icon:{fontSize:"3xs"}}),md:al({control:{[Xi.variable]:"sizes.4"},label:{fontSize:"md"},icon:{fontSize:"2xs"}}),lg:al({control:{[Xi.variable]:"sizes.5"},label:{fontSize:"lg"},icon:{fontSize:"2xs"}})},Wl=U5({baseStyle:X5,sizes:Q5,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:q5,definePartsStyle:sl}=le(YE.keys),Z5=e=>{var t;const r=(t=rt(Wl.baseStyle,e))==null?void 0:t.control;return{...r,borderRadius:"full",_checked:{...r==null?void 0:r._checked,_before:{content:'""',display:"inline-block",pos:"relative",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}}}},J5=sl(e=>{var t,r,n,o;return{label:(r=(t=Wl).baseStyle)==null?void 0:r.call(t,e).label,container:(o=(n=Wl).baseStyle)==null?void 0:o.call(n,e).container,control:Z5(e)}}),eA={md:sl({control:{w:"4",h:"4"},label:{fontSize:"md"}}),lg:sl({control:{w:"5",h:"5"},label:{fontSize:"lg"}}),sm:sl({control:{width:"3",height:"3"},label:{fontSize:"sm"}})},tA=q5({baseStyle:J5,sizes:eA,defaultProps:{size:"md",colorScheme:"blue"}}),{defineMultiStyleConfig:rA,definePartsStyle:nA}=le(XE.keys),Ts=O("select-bg"),ag,oA={...(ag=Z.baseStyle)==null?void 0:ag.field,appearance:"none",paddingBottom:"1px",lineHeight:"normal",bg:Ts.reference,[Ts.variable]:"colors.white",_dark:{[Ts.variable]:"colors.gray.700"},"> option, > optgroup":{bg:Ts.reference}},iA={width:"6",height:"100%",insetEnd:"2",position:"relative",color:"currentColor",fontSize:"xl",_disabled:{opacity:.5}},aA=nA({field:oA,icon:iA}),Es={paddingInlineEnd:"8"},sg,lg,ug,cg,dg,fg,hg,pg,sA={lg:{...(sg=Z.sizes)==null?void 0:sg.lg,field:{...(lg=Z.sizes)==null?void 0:lg.lg.field,...Es}},md:{...(ug=Z.sizes)==null?void 0:ug.md,field:{...(cg=Z.sizes)==null?void 0:cg.md.field,...Es}},sm:{...(dg=Z.sizes)==null?void 0:dg.sm,field:{...(fg=Z.sizes)==null?void 0:fg.sm.field,...Es}},xs:{...(hg=Z.sizes)==null?void 0:hg.xs,field:{...(pg=Z.sizes)==null?void 0:pg.xs.field,...Es},icon:{insetEnd:"1"}}},lA=rA({baseStyle:aA,sizes:sA,variants:Z.variants,defaultProps:Z.defaultProps}),Oc=O("skeleton-start-color"),Bc=O("skeleton-end-color"),uA={[Oc.variable]:"colors.gray.100",[Bc.variable]:"colors.gray.400",_dark:{[Oc.variable]:"colors.gray.800",[Bc.variable]:"colors.gray.600"},background:Oc.reference,borderColor:Bc.reference,opacity:.7,borderRadius:"sm"},cA={baseStyle:uA},jc=O("skip-link-bg"),dA={borderRadius:"md",fontWeight:"semibold",_focusVisible:{boxShadow:"outline",padding:"4",position:"fixed",top:"6",insetStart:"6",[jc.variable]:"colors.white",_dark:{[jc.variable]:"colors.gray.700"},bg:jc.reference}},fA={baseStyle:dA},{defineMultiStyleConfig:hA,definePartsStyle:Bu}=le(QE.keys),Ca=O("slider-thumb-size"),_a=O("slider-track-size"),Yr=O("slider-bg"),pA=e=>{const{orientation:t}=e;return{display:"inline-block",position:"relative",cursor:"pointer",_disabled:{opacity:.6,cursor:"default",pointerEvents:"none"},...ip({orientation:t,vertical:{h:"100%"},horizontal:{w:"100%"}})}},mA=e=>({...ip({orientation:e.orientation,horizontal:{h:_a.reference},vertical:{w:_a.reference}}),overflow:"hidden",borderRadius:"sm",[Yr.variable]:"colors.gray.200",_dark:{[Yr.variable]:"colors.whiteAlpha.200"},_disabled:{[Yr.variable]:"colors.gray.300",_dark:{[Yr.variable]:"colors.whiteAlpha.300"}},bg:Yr.reference}),vA=e=>{const{orientation:t}=e;return{...ip({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:Ca.reference,h:Ca.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"}}},gA=e=>{const{colorScheme:t}=e;return{width:"inherit",height:"inherit",[Yr.variable]:`colors.${t}.500`,_dark:{[Yr.variable]:`colors.${t}.200`},bg:Yr.reference}},yA=Bu(e=>({container:pA(e),track:mA(e),thumb:vA(e),filledTrack:gA(e)})),bA=Bu({container:{[Ca.variable]:"sizes.4",[_a.variable]:"sizes.1"}}),SA=Bu({container:{[Ca.variable]:"sizes.3.5",[_a.variable]:"sizes.1"}}),xA=Bu({container:{[Ca.variable]:"sizes.2.5",[_a.variable]:"sizes.0.5"}}),wA={lg:bA,md:SA,sm:xA},kA=hA({baseStyle:yA,sizes:wA,defaultProps:{size:"md",colorScheme:"blue"}}),Tn=Me("spinner-size"),CA={width:[Tn.reference],height:[Tn.reference]},_A={xs:{[Tn.variable]:"sizes.3"},sm:{[Tn.variable]:"sizes.4"},md:{[Tn.variable]:"sizes.6"},lg:{[Tn.variable]:"sizes.8"},xl:{[Tn.variable]:"sizes.12"}},PA={baseStyle:CA,sizes:_A,defaultProps:{size:"md"}},{defineMultiStyleConfig:TA,definePartsStyle:Ob}=le(qE.keys),EA={fontWeight:"medium"},$A={opacity:.8,marginBottom:"2"},AA={verticalAlign:"baseline",fontWeight:"semibold"},RA={marginEnd:1,w:"3.5",h:"3.5",verticalAlign:"middle"},MA=Ob({container:{},label:EA,helpText:$A,number:AA,icon:RA}),zA={md:Ob({label:{fontSize:"sm"},helpText:{fontSize:"sm"},number:{fontSize:"2xl"}})},FA=TA({baseStyle:MA,sizes:zA,defaultProps:{size:"md"}}),Nc=O("kbd-bg"),DA={[Nc.variable]:"colors.gray.100",_dark:{[Nc.variable]:"colors.whiteAlpha.100"},bg:Nc.reference,borderRadius:"md",borderWidth:"1px",borderBottomWidth:"3px",fontSize:"0.8em",fontWeight:"bold",lineHeight:"normal",px:"0.4em",whiteSpace:"nowrap"},IA={baseStyle:DA},LA={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focusVisible:{boxShadow:"outline"}},OA={baseStyle:LA},{defineMultiStyleConfig:BA,definePartsStyle:jA}=le(VE.keys),NA={marginEnd:"2",display:"inline",verticalAlign:"text-bottom"},VA=jA({icon:NA}),WA=BA({baseStyle:VA}),{defineMultiStyleConfig:UA,definePartsStyle:HA}=le(WE.keys),er=O("menu-bg"),Vc=O("menu-shadow"),GA={[er.variable]:"#fff",[Vc.variable]:"shadows.sm",_dark:{[er.variable]:"colors.gray.700",[Vc.variable]:"shadows.dark-lg"},color:"inherit",minW:"3xs",py:"2",zIndex:1,borderRadius:"md",borderWidth:"1px",bg:er.reference,boxShadow:Vc.reference},KA={py:"1.5",px:"3",transitionProperty:"background",transitionDuration:"ultra-fast",transitionTimingFunction:"ease-in",_focus:{[er.variable]:"colors.gray.100",_dark:{[er.variable]:"colors.whiteAlpha.100"}},_active:{[er.variable]:"colors.gray.200",_dark:{[er.variable]:"colors.whiteAlpha.200"}},_expanded:{[er.variable]:"colors.gray.100",_dark:{[er.variable]:"colors.whiteAlpha.100"}},_disabled:{opacity:.4,cursor:"not-allowed"},bg:er.reference},YA={mx:4,my:2,fontWeight:"semibold",fontSize:"sm"},XA={display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},QA={opacity:.6},qA={border:0,borderBottom:"1px solid",borderColor:"inherit",my:"2",opacity:.6},ZA={transitionProperty:"common",transitionDuration:"normal"},JA=HA({button:ZA,list:GA,item:KA,groupTitle:YA,icon:XA,command:QA,divider:qA}),eR=UA({baseStyle:JA}),{defineMultiStyleConfig:tR,definePartsStyle:kf}=le(UE.keys),Wc=O("modal-bg"),Uc=O("modal-shadow"),rR={bg:"blackAlpha.600",zIndex:"modal"},nR=e=>{const{isCentered:t,scrollBehavior:r}=e;return{display:"flex",zIndex:"modal",justifyContent:"center",alignItems:t?"center":"flex-start",overflow:r==="inside"?"hidden":"auto",overscrollBehaviorY:"none"}},oR=e=>{const{isCentered:t,scrollBehavior:r}=e;return{borderRadius:"md",color:"inherit",my:t?"auto":"16",mx:t?"auto":void 0,zIndex:"modal",maxH:r==="inside"?"calc(100% - 7.5rem)":void 0,[Wc.variable]:"colors.white",[Uc.variable]:"shadows.lg",_dark:{[Wc.variable]:"colors.gray.700",[Uc.variable]:"shadows.dark-lg"},bg:Wc.reference,boxShadow:Uc.reference}},iR={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},aR={position:"absolute",top:"2",insetEnd:"3"},sR=e=>{const{scrollBehavior:t}=e;return{px:"6",py:"2",flex:"1",overflow:t==="inside"?"auto":void 0}},lR={px:"6",py:"4"},uR=kf(e=>({overlay:rR,dialogContainer:rt(nR,e),dialog:rt(oR,e),header:iR,closeButton:aR,body:rt(sR,e),footer:lR}));function Bt(e){return kf(e==="full"?{dialog:{maxW:"100vw",minH:"$100vh",my:"0",borderRadius:"0"}}:{dialog:{maxW:e}})}var cR={xs:Bt("xs"),sm:Bt("sm"),md:Bt("md"),lg:Bt("lg"),xl:Bt("xl"),"2xl":Bt("2xl"),"3xl":Bt("3xl"),"4xl":Bt("4xl"),"5xl":Bt("5xl"),"6xl":Bt("6xl"),full:Bt("full")},dR=tR({baseStyle:uR,sizes:cR,defaultProps:{size:"md"}}),{defineMultiStyleConfig:fR,definePartsStyle:Bb}=le(HE.keys),sp=Me("number-input-stepper-width"),jb=Me("number-input-input-padding"),hR=xr(sp).add("0.5rem").toString(),Hc=Me("number-input-bg"),Gc=Me("number-input-color"),Kc=Me("number-input-border-color"),pR={[sp.variable]:"sizes.6",[jb.variable]:hR},mR=e=>{var t,r;return(r=(t=rt(Z.baseStyle,e))==null?void 0:t.field)!=null?r:{}},vR={width:sp.reference},gR={borderStart:"1px solid",borderStartColor:Kc.reference,color:Gc.reference,bg:Hc.reference,[Gc.variable]:"colors.chakra-body-text",[Kc.variable]:"colors.chakra-border-color",_dark:{[Gc.variable]:"colors.whiteAlpha.800",[Kc.variable]:"colors.whiteAlpha.300"},_active:{[Hc.variable]:"colors.gray.200",_dark:{[Hc.variable]:"colors.whiteAlpha.300"}},_disabled:{opacity:.4,cursor:"not-allowed"}},yR=Bb(e=>{var t;return{root:pR,field:(t=rt(mR,e))!=null?t:{},stepperGroup:vR,stepper:gR}});function $s(e){var t,r,n;const o=(t=Z.sizes)==null?void 0:t[e],i={lg:"md",md:"md",sm:"sm",xs:"sm"},a=(n=(r=o.field)==null?void 0:r.fontSize)!=null?n:"md",s=zb.fontSizes[a];return Bb({field:{...o.field,paddingInlineEnd:jb.reference,verticalAlign:"top"},stepper:{fontSize:xr(s).multiply(.75).toString(),_first:{borderTopEndRadius:i[e]},_last:{borderBottomEndRadius:i[e],mt:"-1px",borderTopWidth:1}}})}var bR={xs:$s("xs"),sm:$s("sm"),md:$s("md"),lg:$s("lg")},SR=fR({baseStyle:yR,sizes:bR,variants:Z.variants,defaultProps:Z.defaultProps}),mg,xR={...(mg=Z.baseStyle)==null?void 0:mg.field,textAlign:"center"},wR={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"}},vg,gg,kR={outline:e=>{var t,r,n;return(n=(r=rt((t=Z.variants)==null?void 0:t.outline,e))==null?void 0:r.field)!=null?n:{}},flushed:e=>{var t,r,n;return(n=(r=rt((t=Z.variants)==null?void 0:t.flushed,e))==null?void 0:r.field)!=null?n:{}},filled:e=>{var t,r,n;return(n=(r=rt((t=Z.variants)==null?void 0:t.filled,e))==null?void 0:r.field)!=null?n:{}},unstyled:(gg=(vg=Z.variants)==null?void 0:vg.unstyled.field)!=null?gg:{}},CR={baseStyle:xR,sizes:wR,variants:kR,defaultProps:Z.defaultProps},{defineMultiStyleConfig:_R,definePartsStyle:PR}=le(GE.keys),As=Me("popper-bg"),TR=Me("popper-arrow-bg"),yg=Me("popper-arrow-shadow-color"),ER={zIndex:10},$R={[As.variable]:"colors.white",bg:As.reference,[TR.variable]:As.reference,[yg.variable]:"colors.gray.200",_dark:{[As.variable]:"colors.gray.700",[yg.variable]:"colors.whiteAlpha.300"},width:"xs",border:"1px solid",borderColor:"inherit",borderRadius:"md",boxShadow:"sm",zIndex:"inherit",_focusVisible:{outline:0,boxShadow:"outline"}},AR={px:3,py:2,borderBottomWidth:"1px"},RR={px:3,py:2},MR={px:3,py:2,borderTopWidth:"1px"},zR={position:"absolute",borderRadius:"md",top:1,insetEnd:2,padding:2},FR=PR({popper:ER,content:$R,header:AR,body:RR,footer:MR,closeButton:zR}),DR=_R({baseStyle:FR}),{definePartsStyle:Cf,defineMultiStyleConfig:IR}=le(LE.keys),Yc=O("drawer-bg"),Xc=O("drawer-box-shadow");function eo(e){return Cf(e==="full"?{dialog:{maxW:"100vw",h:"100vh"}}:{dialog:{maxW:e}})}var LR={bg:"blackAlpha.600",zIndex:"modal"},OR={display:"flex",zIndex:"modal",justifyContent:"center"},BR=e=>{const{isFullHeight:t}=e;return{...t&&{height:"100vh"},zIndex:"modal",maxH:"100vh",color:"inherit",[Yc.variable]:"colors.white",[Xc.variable]:"shadows.lg",_dark:{[Yc.variable]:"colors.gray.700",[Xc.variable]:"shadows.dark-lg"},bg:Yc.reference,boxShadow:Xc.reference}},jR={px:"6",py:"4",fontSize:"xl",fontWeight:"semibold"},NR={position:"absolute",top:"2",insetEnd:"3"},VR={px:"6",py:"2",flex:"1",overflow:"auto"},WR={px:"6",py:"4"},UR=Cf(e=>({overlay:LR,dialogContainer:OR,dialog:rt(BR,e),header:jR,closeButton:NR,body:VR,footer:WR})),HR={xs:eo("xs"),sm:eo("md"),md:eo("lg"),lg:eo("2xl"),xl:eo("4xl"),full:eo("full")},GR=IR({baseStyle:UR,sizes:HR,defaultProps:{size:"xs"}}),{definePartsStyle:KR,defineMultiStyleConfig:YR}=le(OE.keys),XR={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal"},QR={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},qR={borderRadius:"md",py:"1",transitionProperty:"common",transitionDuration:"normal",width:"full",_focusVisible:{boxShadow:"outline"},_placeholder:{opacity:.6}},ZR=KR({preview:XR,input:QR,textarea:qR}),JR=YR({baseStyle:ZR}),{definePartsStyle:eM,defineMultiStyleConfig:tM}=le(BE.keys),Io=O("form-control-color"),rM={marginStart:"1",[Io.variable]:"colors.red.500",_dark:{[Io.variable]:"colors.red.300"},color:Io.reference},nM={mt:"2",[Io.variable]:"colors.gray.600",_dark:{[Io.variable]:"colors.whiteAlpha.600"},color:Io.reference,lineHeight:"normal",fontSize:"sm"},oM=eM({container:{width:"100%",position:"relative"},requiredIndicator:rM,helperText:nM}),iM=tM({baseStyle:oM}),{definePartsStyle:aM,defineMultiStyleConfig:sM}=le(jE.keys),Lo=O("form-error-color"),lM={[Lo.variable]:"colors.red.500",_dark:{[Lo.variable]:"colors.red.300"},color:Lo.reference,mt:"2",fontSize:"sm",lineHeight:"normal"},uM={marginEnd:"0.5em",[Lo.variable]:"colors.red.500",_dark:{[Lo.variable]:"colors.red.300"},color:Lo.reference},cM=aM({text:lM,icon:uM}),dM=sM({baseStyle:cM}),fM={fontSize:"md",marginEnd:"3",mb:"2",fontWeight:"medium",transitionProperty:"common",transitionDuration:"normal",opacity:1,_disabled:{opacity:.4}},hM={baseStyle:fM},pM={fontFamily:"heading",fontWeight:"bold"},mM={"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}},vM={baseStyle:pM,sizes:mM,defaultProps:{size:"xl"}},{defineMultiStyleConfig:gM,definePartsStyle:yM}=le(DE.keys),Qc=O("breadcrumb-link-decor"),bM={transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",outline:"none",color:"inherit",textDecoration:Qc.reference,[Qc.variable]:"none","&:not([aria-current=page])":{cursor:"pointer",_hover:{[Qc.variable]:"underline"},_focusVisible:{boxShadow:"outline"}}},SM=yM({link:bM}),xM=gM({baseStyle:SM}),wM={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"}}},Nb=e=>{const{colorScheme:t,theme:r}=e;if(t==="gray")return{color:L("gray.800","whiteAlpha.900")(e),_hover:{bg:L("gray.100","whiteAlpha.200")(e)},_active:{bg:L("gray.200","whiteAlpha.300")(e)}};const n=qo(`${t}.200`,.12)(r),o=qo(`${t}.200`,.24)(r);return{color:L(`${t}.600`,`${t}.200`)(e),bg:"transparent",_hover:{bg:L(`${t}.50`,n)(e)},_active:{bg:L(`${t}.100`,o)(e)}}},kM=e=>{const{colorScheme:t}=e,r=L("gray.200","whiteAlpha.300")(e);return{border:"1px solid",borderColor:t==="gray"?r:"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"},...rt(Nb,e)}},CM={yellow:{bg:"yellow.400",color:"black",hoverBg:"yellow.500",activeBg:"yellow.600"},cyan:{bg:"cyan.400",color:"black",hoverBg:"cyan.500",activeBg:"cyan.600"}},_M=e=>{var t;const{colorScheme:r}=e;if(r==="gray"){const l=L("gray.100","whiteAlpha.200")(e);return{bg:l,color:L("gray.800","whiteAlpha.900")(e),_hover:{bg:L("gray.200","whiteAlpha.300")(e),_disabled:{bg:l}},_active:{bg:L("gray.300","whiteAlpha.400")(e)}}}const{bg:n=`${r}.500`,color:o="white",hoverBg:i=`${r}.600`,activeBg:a=`${r}.700`}=(t=CM[r])!=null?t:{},s=L(n,`${r}.200`)(e);return{bg:s,color:L(o,"gray.800")(e),_hover:{bg:L(i,`${r}.300`)(e),_disabled:{bg:s}},_active:{bg:L(a,`${r}.400`)(e)}}},PM=e=>{const{colorScheme:t}=e;return{padding:0,height:"auto",lineHeight:"normal",verticalAlign:"baseline",color:L(`${t}.500`,`${t}.200`)(e),_hover:{textDecoration:"underline",_disabled:{textDecoration:"none"}},_active:{color:L(`${t}.700`,`${t}.500`)(e)}}},TM={bg:"none",color:"inherit",display:"inline",lineHeight:"inherit",m:"0",p:"0"},EM={ghost:Nb,outline:kM,solid:_M,link:PM,unstyled:TM},$M={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"}},AM={baseStyle:wM,variants:EM,sizes:$M,defaultProps:{variant:"solid",size:"md",colorScheme:"gray"}},{definePartsStyle:Ln,defineMultiStyleConfig:RM}=le(r$.keys),Ul=O("card-bg"),Tr=O("card-padding"),Vb=O("card-shadow"),ll=O("card-radius"),Wb=O("card-border-width","0"),Ub=O("card-border-color"),MM=Ln({container:{[Ul.variable]:"colors.chakra-body-bg",backgroundColor:Ul.reference,boxShadow:Vb.reference,borderRadius:ll.reference,color:"chakra-body-text",borderWidth:Wb.reference,borderColor:Ub.reference},body:{padding:Tr.reference,flex:"1 1 0%"},header:{padding:Tr.reference},footer:{padding:Tr.reference}}),zM={sm:Ln({container:{[ll.variable]:"radii.base",[Tr.variable]:"space.3"}}),md:Ln({container:{[ll.variable]:"radii.md",[Tr.variable]:"space.5"}}),lg:Ln({container:{[ll.variable]:"radii.xl",[Tr.variable]:"space.7"}})},FM={elevated:Ln({container:{[Vb.variable]:"shadows.base",_dark:{[Ul.variable]:"colors.gray.700"}}}),outline:Ln({container:{[Wb.variable]:"1px",[Ub.variable]:"colors.chakra-border-color"}}),filled:Ln({container:{[Ul.variable]:"colors.chakra-subtle-bg"}}),unstyled:{body:{[Tr.variable]:0},header:{[Tr.variable]:0},footer:{[Tr.variable]:0}}},DM=RM({baseStyle:MM,variants:FM,sizes:zM,defaultProps:{variant:"elevated",size:"md"}}),Qi=Me("close-button-size"),wi=Me("close-button-bg"),IM={w:[Qi.reference],h:[Qi.reference],borderRadius:"md",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{[wi.variable]:"colors.blackAlpha.100",_dark:{[wi.variable]:"colors.whiteAlpha.100"}},_active:{[wi.variable]:"colors.blackAlpha.200",_dark:{[wi.variable]:"colors.whiteAlpha.200"}},_focusVisible:{boxShadow:"outline"},bg:wi.reference},LM={lg:{[Qi.variable]:"sizes.10",fontSize:"md"},md:{[Qi.variable]:"sizes.8",fontSize:"xs"},sm:{[Qi.variable]:"sizes.6",fontSize:"2xs"}},OM={baseStyle:IM,sizes:LM,defaultProps:{size:"md"}},{variants:BM,defaultProps:jM}=Yi,NM={fontFamily:"mono",fontSize:"sm",px:"0.2em",borderRadius:"sm",bg:Ce.bg.reference,color:Ce.color.reference,boxShadow:Ce.shadow.reference},VM={baseStyle:NM,variants:BM,defaultProps:jM},WM={w:"100%",mx:"auto",maxW:"prose",px:"4"},UM={baseStyle:WM},HM={opacity:.6,borderColor:"inherit"},GM={borderStyle:"solid"},KM={borderStyle:"dashed"},YM={solid:GM,dashed:KM},XM={baseStyle:HM,variants:YM,defaultProps:{variant:"solid"}},{definePartsStyle:QM,defineMultiStyleConfig:qM}=le(ME.keys),ZM={borderTopWidth:"1px",borderColor:"inherit",_last:{borderBottomWidth:"1px"}},JM={transitionProperty:"common",transitionDuration:"normal",fontSize:"md",_focusVisible:{boxShadow:"outline"},_hover:{bg:"blackAlpha.50"},_disabled:{opacity:.4,cursor:"not-allowed"},px:"4",py:"2"},ez={pt:"2",px:"4",pb:"5"},tz={fontSize:"1.25em"},rz=QM({container:ZM,button:JM,panel:ez,icon:tz}),nz=qM({baseStyle:rz}),{definePartsStyle:Na,defineMultiStyleConfig:oz}=le(zE.keys),xt=O("alert-fg"),Dr=O("alert-bg"),iz=Na({container:{bg:Dr.reference,px:"4",py:"3"},title:{fontWeight:"bold",lineHeight:"6",marginEnd:"2"},description:{lineHeight:"6"},icon:{color:xt.reference,flexShrink:0,marginEnd:"3",w:"5",h:"6"},spinner:{color:xt.reference,flexShrink:0,marginEnd:"3",w:"5",h:"5"}});function lp(e){const{theme:t,colorScheme:r}=e,n=qo(`${r}.200`,.16)(t);return{light:`colors.${r}.100`,dark:n}}var az=Na(e=>{const{colorScheme:t}=e,r=lp(e);return{container:{[xt.variable]:`colors.${t}.600`,[Dr.variable]:r.light,_dark:{[xt.variable]:`colors.${t}.200`,[Dr.variable]:r.dark}}}}),sz=Na(e=>{const{colorScheme:t}=e,r=lp(e);return{container:{[xt.variable]:`colors.${t}.600`,[Dr.variable]:r.light,_dark:{[xt.variable]:`colors.${t}.200`,[Dr.variable]:r.dark},paddingStart:"3",borderStartWidth:"4px",borderStartColor:xt.reference}}}),lz=Na(e=>{const{colorScheme:t}=e,r=lp(e);return{container:{[xt.variable]:`colors.${t}.600`,[Dr.variable]:r.light,_dark:{[xt.variable]:`colors.${t}.200`,[Dr.variable]:r.dark},pt:"2",borderTopWidth:"4px",borderTopColor:xt.reference}}}),uz=Na(e=>{const{colorScheme:t}=e;return{container:{[xt.variable]:"colors.white",[Dr.variable]:`colors.${t}.600`,_dark:{[xt.variable]:"colors.gray.900",[Dr.variable]:`colors.${t}.200`},color:xt.reference}}}),cz={subtle:az,"left-accent":sz,"top-accent":lz,solid:uz},dz=oz({baseStyle:iz,variants:cz,defaultProps:{variant:"subtle",colorScheme:"blue"}}),{definePartsStyle:Hb,defineMultiStyleConfig:fz}=le(FE.keys),Oo=O("avatar-border-color"),qi=O("avatar-bg"),Pa=O("avatar-font-size"),Zo=O("avatar-size"),hz={borderRadius:"full",border:"0.2em solid",borderColor:Oo.reference,[Oo.variable]:"white",_dark:{[Oo.variable]:"colors.gray.800"}},pz={bg:qi.reference,fontSize:Pa.reference,width:Zo.reference,height:Zo.reference,lineHeight:"1",[qi.variable]:"colors.gray.200",_dark:{[qi.variable]:"colors.whiteAlpha.400"}},mz=e=>{const{name:t,theme:r}=e,n=t?w$({string:t}):"colors.gray.400",o=S$(n)(r);let i="white";return o||(i="gray.800"),{bg:qi.reference,fontSize:Pa.reference,color:i,borderColor:Oo.reference,verticalAlign:"top",width:Zo.reference,height:Zo.reference,"&:not([data-loaded])":{[qi.variable]:n},[Oo.variable]:"colors.white",_dark:{[Oo.variable]:"colors.gray.800"}}},vz={fontSize:Pa.reference,lineHeight:"1"},gz=Hb(e=>({badge:rt(hz,e),excessLabel:rt(pz,e),container:rt(mz,e),label:vz}));function Nr(e){const t=e!=="100%"?Db[e]:void 0;return Hb({container:{[Zo.variable]:t??e,[Pa.variable]:`calc(${t??e} / 2.5)`},excessLabel:{[Zo.variable]:t??e,[Pa.variable]:`calc(${t??e} / 2.5)`}})}var yz={"2xs":Nr(4),xs:Nr(6),sm:Nr(8),md:Nr(12),lg:Nr(16),xl:Nr(24),"2xl":Nr(32),full:Nr("100%")},bz=fz({baseStyle:gz,sizes:yz,defaultProps:{size:"md"}}),Sz={Accordion:nz,Alert:dz,Avatar:bz,Badge:Yi,Breadcrumb:xM,Button:AM,Checkbox:Wl,CloseButton:OM,Code:VM,Container:UM,Divider:XM,Drawer:GR,Editable:JR,Form:iM,FormError:dM,FormLabel:hM,Heading:vM,Input:Z,Kbd:IA,Link:OA,List:WA,Menu:eR,Modal:dR,NumberInput:SR,PinInput:CR,Popover:DR,Progress:V5,Radio:tA,Select:lA,Skeleton:cA,SkipLink:fA,Slider:kA,Spinner:PA,Stat:FA,Switch:O$,Table:H$,Tabs:a5,Tag:b5,Textarea:R5,Tooltip:F5,Card:DM,Stepper:RE},xz={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-inverse-text":{_light:"white",_dark:"gray.800"},"chakra-subtle-bg":{_light:"gray.100",_dark:"gray.700"},"chakra-subtle-text":{_light:"gray.600",_dark:"gray.400"},"chakra-placeholder-color":{_light:"gray.500",_dark:"whiteAlpha.400"}}},wz={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"}}},kz="ltr",Cz={useSystemColorMode:!1,initialColorMode:"light",cssVarPrefix:"chakra"},_z={semanticTokens:xz,direction:kz,...EE,components:Sz,styles:wz,config:Cz};function Pz(e,t){const r={};return Object.keys(e).forEach(n=>{t.includes(n)||(r[n]=e[n])}),r}function Tz(e,t,r,n){const o=typeof t=="string"?t.split("."):[t];for(n=0;n{const t=new WeakMap;return(n,o,i,a)=>{if(typeof n>"u")return e(n,o,i);t.has(n)||t.set(n,new Map);const s=t.get(n);if(s.has(o))return s.get(o);const l=e(n,o,i,a);return s.set(o,l),l}},Gb=Ez(Tz);function Kb(e,t){const r={};return Object.keys(e).forEach(n=>{const o=e[n];t(o,n,e)&&(r[n]=o)}),r}var Yb=e=>Kb(e,t=>t!=null);function $z(e){return typeof e=="function"}function Xb(e,...t){return $z(e)?e(...t):e}function gB(...e){return function(r){e.some(n=>(n==null||n(r),r==null?void 0:r.defaultPrevented))}}var Az=typeof Element<"u",Rz=typeof Map=="function",Mz=typeof Set=="function",zz=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function ul(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,n,o;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!ul(e[n],t[n]))return!1;return!0}var i;if(Rz&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(i=e.entries();!(n=i.next()).done;)if(!t.has(n.value[0]))return!1;for(i=e.entries();!(n=i.next()).done;)if(!ul(n.value[1],t.get(n.value[0])))return!1;return!0}if(Mz&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(i=e.entries();!(n=i.next()).done;)if(!t.has(n.value[0]))return!1;return!0}if(zz&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(e[n]!==t[n])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(o=Object.keys(e),r=o.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[n]))return!1;if(Az&&e instanceof Element)return!1;for(n=r;n--!==0;)if(!((o[n]==="_owner"||o[n]==="__v"||o[n]==="__o")&&e.$$typeof)&&!ul(e[o[n]],t[o[n]]))return!1;return!0}return e!==e&&t!==t}var Fz=function(t,r){try{return ul(t,r)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}};const Dz=Yf(Fz);function Qb(e,t={}){var r;const{styleConfig:n,...o}=t,{theme:i,colorMode:a}=BP(),s=e?Gb(i,`components.${e}`):void 0,l=n||s,u=sr({theme:i,colorMode:a},(r=l==null?void 0:l.defaultProps)!=null?r:{},Yb(Pz(o,["children"]))),c=S.useRef({});if(l){const f=oE(l)(u);Dz(c.current,f)||(c.current=f)}return c.current}function ju(e,t={}){return Qb(e,t)}function qb(e,t={}){return Qb(e,t)}var Iz=new Set([...GT,"textStyle","layerStyle","apply","noOfLines","focusBorderColor","errorBorderColor","as","__css","css","sx"]),Lz=new Set(["htmlWidth","htmlHeight","htmlSize","htmlTranslate"]);function Oz(e){return Lz.has(e)||!Iz.has(e)}function Bz(e,...t){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const r={...e};for(const n of t)if(n!=null)for(const o in n)Object.prototype.hasOwnProperty.call(n,o)&&(o in r&&delete r[o],r[o]=n[o]);return r}var jz=/^((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)-.*))$/,Nz=ub(function(e){return jz.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),Vz=Nz,Wz=function(t){return t!=="theme"},bg=function(t){return typeof t=="string"&&t.charCodeAt(0)>96?Vz:Wz},Sg=function(t,r,n){var o;if(r){var i=r.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(a){return t.__emotion_forwardProp(a)&&i(a)}:i}return typeof o!="function"&&n&&(o=t.__emotion_forwardProp),o},Uz=function(t){var r=t.cache,n=t.serialized,o=t.isStringTag;return Qh(r,n,o),yb(function(){return qh(r,n,o)}),null},Hz=function e(t,r){var n=t.__emotion_real===t,o=n&&t.__emotion_base||t,i,a;r!==void 0&&(i=r.label,a=r.target);var s=Sg(t,r,n),l=s||bg(o),u=!l("as");return function(){var c=arguments,d=n&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&d.push("label:"+i+";"),c[0]==null||c[0].raw===void 0)d.push.apply(d,c);else{d.push(c[0][0]);for(var f=c.length,p=1;pt=>{const{theme:r,css:n,__css:o,sx:i,...a}=t,s=Kb(a,(d,f)=>YT(f)),l=Xb(e,t),u=Bz({},o,l,Yb(s),i),c=Mb(u)(t.theme);return n?[c,n]:c};function qc(e,t){const{baseStyle:r,...n}=t??{};n.shouldForwardProp||(n.shouldForwardProp=Oz);const o=Yz({baseStyle:r}),i=Kz(e,n)(o);return Ar.forwardRef(function(l,u){const{colorMode:c,forced:d}=Fu();return Ar.createElement(i,{ref:u,"data-theme":d?c:void 0,...l})})}function Xz(){const e=new Map;return new Proxy(qc,{apply(t,r,n){return qc(...n)},get(t,r){return e.has(r)||e.set(r,qc(r)),e.get(r)}})}var _e=Xz();function pt(e){return S.forwardRef(e)}function Zb(e={}){const{strict:t=!0,errorMessage:r="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:n}=e,o=S.createContext(void 0);o.displayName=n;function i(){var a;const s=S.useContext(o);if(!s&&t){const l=new Error(r);throw l.name="ContextError",(a=Error.captureStackTrace)==null||a.call(Error,l,i),l}return s}return[o.Provider,i,o]}function Qz(e){const{cssVarsRoot:t,theme:r,children:n}=e,o=S.useMemo(()=>UT(r),[r]);return E.jsxs(hP,{theme:o,children:[E.jsx(qz,{root:t}),n]})}function qz({root:e=":host, :root"}){const t=[e,"[data-theme]"].join(",");return E.jsx(Ba,{styles:r=>({[t]:r.__cssVars})})}Zb({name:"StylesContext",errorMessage:"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` "});function yB(e){return Zb({name:`${e}StylesContext`,errorMessage:`useStyles: "styles" is undefined. Seems you forgot to wrap the components in "<${e} />" `})}function Zz(){const{colorMode:e}=Fu();return E.jsx(Ba,{styles:t=>{const r=Gb(t,"styles.global"),n=Xb(r,{theme:t,colorMode:e});return n?Mb(n)(t):void 0}})}var up=S.createContext({getDocument(){return document},getWindow(){return window}});up.displayName="EnvironmentContext";function bB({defer:e}={}){const[,t]=S.useReducer(r=>r+1,0);return wa(()=>{e&&t()},[e]),S.useContext(up)}function Jb(e){const{children:t,environment:r,disabled:n}=e,o=S.useRef(null),i=S.useMemo(()=>r||{getDocument:()=>{var s,l;return(l=(s=o.current)==null?void 0:s.ownerDocument)!=null?l:document},getWindow:()=>{var s,l;return(l=(s=o.current)==null?void 0:s.ownerDocument.defaultView)!=null?l:window}},[r]),a=!n||!r;return E.jsxs(up.Provider,{value:i,children:[t,a&&E.jsx("span",{id:"__chakra_env",hidden:!0,ref:o})]})}Jb.displayName="EnvironmentProvider";var Jz=e=>{const{children:t,colorModeManager:r,portalZIndex:n,resetScope:o,resetCSS:i=!0,theme:a={},environment:s,cssVarsRoot:l,disableEnvironment:u,disableGlobalStyle:c}=e,d=E.jsx(Jb,{environment:s,disabled:u,children:t});return E.jsx(Qz,{theme:a,cssVarsRoot:l,children:E.jsxs(Cb,{colorModeManager:r,options:a.config,children:[i?E.jsx(xP,{scope:o}):E.jsx(SP,{}),!c&&E.jsx(Zz,{}),n?E.jsx(wb,{zIndex:n,children:d}):d]})})},e3=(e,t)=>e.find(r=>r.id===t);function wg(e,t){const r=eS(e,t),n=r?e[r].findIndex(o=>o.id===t):-1;return{position:r,index:n}}function eS(e,t){for(const[r,n]of Object.entries(e))if(e3(n,t))return r}function t3(e){const t=e.includes("right"),r=e.includes("left");let n="center";return t&&(n="flex-end"),r&&(n="flex-start"),{display:"flex",flexDirection:"column",alignItems:n}}function r3(e){const r=e==="top"||e==="bottom"?"0 auto":void 0,n=e.includes("top")?"env(safe-area-inset-top, 0px)":void 0,o=e.includes("bottom")?"env(safe-area-inset-bottom, 0px)":void 0,i=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:"var(--toast-z-index, 5500)",pointerEvents:"none",display:"flex",flexDirection:"column",margin:r,top:n,bottom:o,right:i,left:a}}function n3(e,t=[]){const r=S.useRef(e);return S.useEffect(()=>{r.current=e}),S.useCallback((...n)=>{var o;return(o=r.current)==null?void 0:o.call(r,...n)},t)}function o3(e,t){const r=n3(e);S.useEffect(()=>{if(t==null)return;let n=null;return n=window.setTimeout(()=>{r()},t),()=>{n&&window.clearTimeout(n)}},[t,r])}function kg(e,t){const r=S.useRef(!1),n=S.useRef(!1);S.useEffect(()=>{if(r.current&&n.current)return e();n.current=!0},t),S.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[])}const tS=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Nu=S.createContext({}),Va=S.createContext(null),Vu=typeof document<"u",cp=Vu?S.useLayoutEffect:S.useEffect,rS=S.createContext({strict:!1}),dp=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),i3="framerAppearId",nS="data-"+dp(i3);function a3(e,t,r,n){const{visualElement:o}=S.useContext(Nu),i=S.useContext(rS),a=S.useContext(Va),s=S.useContext(tS).reducedMotion,l=S.useRef();n=n||i.renderer,!l.current&&n&&(l.current=n(e,{visualState:t,parent:o,props:r,presenceContext:a,blockInitialAnimation:a?a.initial===!1:!1,reducedMotionConfig:s}));const u=l.current;S.useInsertionEffect(()=>{u&&u.update(r,a)});const c=S.useRef(!!r[nS]);return cp(()=>{u&&(u.render(),c.current&&u.animationState&&u.animationState.animateChanges())}),S.useEffect(()=>{u&&(u.updateFeatures(),!c.current&&u.animationState&&u.animationState.animateChanges(),c.current&&(window.HandoffAppearAnimations=!1,c.current=!1))}),u}function ko(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function s3(e,t,r){return S.useCallback(n=>{n&&e.mount&&e.mount(n),t&&(n?t.mount(n):t.unmount()),r&&(typeof r=="function"?r(n):ko(r)&&(r.current=n))},[t])}function Ta(e){return typeof e=="string"||Array.isArray(e)}function Wu(e){return typeof e=="object"&&typeof e.start=="function"}const fp=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],hp=["initial",...fp];function Uu(e){return Wu(e.animate)||hp.some(t=>Ta(e[t]))}function oS(e){return!!(Uu(e)||e.variants)}function l3(e,t){if(Uu(e)){const{initial:r,animate:n}=e;return{initial:r===!1||Ta(r)?r:void 0,animate:Ta(n)?n:void 0}}return e.inherit!==!1?t:{}}function u3(e){const{initial:t,animate:r}=l3(e,S.useContext(Nu));return S.useMemo(()=>({initial:t,animate:r}),[Cg(t),Cg(r)])}function Cg(e){return Array.isArray(e)?e.join(" "):e}const _g={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],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"]},Ea={};for(const e in _g)Ea[e]={isEnabled:t=>_g[e].some(r=>!!t[r])};function c3(e){for(const t in e)Ea[t]={...Ea[t],...e[t]}}const pp=S.createContext({}),iS=S.createContext({}),d3=Symbol.for("motionComponentSymbol");function f3({preloadedFeatures:e,createVisualElement:t,useRender:r,useVisualState:n,Component:o}){e&&c3(e);function i(s,l){let u;const c={...S.useContext(tS),...s,layoutId:h3(s)},{isStatic:d}=c,f=u3(s),p=n(s,d);if(!d&&Vu){f.visualElement=a3(o,p,c,t);const g=S.useContext(iS),y=S.useContext(rS).strict;f.visualElement&&(u=f.visualElement.loadFeatures(c,y,e,g))}return S.createElement(Nu.Provider,{value:f},u&&f.visualElement?S.createElement(u,{visualElement:f.visualElement,...c}):null,r(o,s,s3(p,f.visualElement,l),p,d,f.visualElement))}const a=S.forwardRef(i);return a[d3]=o,a}function h3({layoutId:e}){const t=S.useContext(pp).id;return t&&e!==void 0?t+"-"+e:e}function p3(e){function t(n,o={}){return f3(e(n,o))}if(typeof Proxy>"u")return t;const r=new Map;return new Proxy(t,{get:(n,o)=>(r.has(o)||r.set(o,t(o)),r.get(o))})}const m3=["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 mp(e){return typeof e!="string"||e.includes("-")?!1:!!(m3.indexOf(e)>-1||/[A-Z]/.test(e))}const Gl={};function v3(e){Object.assign(Gl,e)}const Wa=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Xn=new Set(Wa);function aS(e,{layout:t,layoutId:r}){return Xn.has(e)||e.startsWith("origin")||(t||r!==void 0)&&(!!Gl[e]||e==="opacity")}const ht=e=>!!(e&&e.getVelocity),g3={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},y3=Wa.length;function b3(e,{enableHardwareAcceleration:t=!0,allowTransformNone:r=!0},n,o){let i="";for(let a=0;at=>typeof t=="string"&&t.startsWith(e),lS=sS("--"),_f=sS("var(--"),S3=/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,x3=(e,t)=>t&&typeof e=="number"?t.transform(e):e,cn=(e,t,r)=>Math.min(Math.max(r,e),t),Qn={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Zi={...Qn,transform:e=>cn(0,1,e)},Rs={...Qn,default:1},Ji=e=>Math.round(e*1e5)/1e5,Hu=/(-)?([\d]*\.?[\d])+/g,uS=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,w3=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Ua(e){return typeof e=="string"}const Ha=e=>({test:t=>Ua(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Vr=Ha("deg"),hr=Ha("%"),j=Ha("px"),k3=Ha("vh"),C3=Ha("vw"),Pg={...hr,parse:e=>hr.parse(e)/100,transform:e=>hr.transform(e*100)},Tg={...Qn,transform:Math.round},cS={borderWidth:j,borderTopWidth:j,borderRightWidth:j,borderBottomWidth:j,borderLeftWidth:j,borderRadius:j,radius:j,borderTopLeftRadius:j,borderTopRightRadius:j,borderBottomRightRadius:j,borderBottomLeftRadius:j,width:j,maxWidth:j,height:j,maxHeight:j,size:j,top:j,right:j,bottom:j,left:j,padding:j,paddingTop:j,paddingRight:j,paddingBottom:j,paddingLeft:j,margin:j,marginTop:j,marginRight:j,marginBottom:j,marginLeft:j,rotate:Vr,rotateX:Vr,rotateY:Vr,rotateZ:Vr,scale:Rs,scaleX:Rs,scaleY:Rs,scaleZ:Rs,skew:Vr,skewX:Vr,skewY:Vr,distance:j,translateX:j,translateY:j,translateZ:j,x:j,y:j,z:j,perspective:j,transformPerspective:j,opacity:Zi,originX:Pg,originY:Pg,originZ:j,zIndex:Tg,fillOpacity:Zi,strokeOpacity:Zi,numOctaves:Tg};function vp(e,t,r,n){const{style:o,vars:i,transform:a,transformOrigin:s}=e;let l=!1,u=!1,c=!0;for(const d in t){const f=t[d];if(lS(d)){i[d]=f;continue}const p=cS[d],g=x3(f,p);if(Xn.has(d)){if(l=!0,a[d]=g,!c)continue;f!==(p.default||0)&&(c=!1)}else d.startsWith("origin")?(u=!0,s[d]=g):o[d]=g}if(t.transform||(l||n?o.transform=b3(e.transform,r,c,n):o.transform&&(o.transform="none")),u){const{originX:d="50%",originY:f="50%",originZ:p=0}=s;o.transformOrigin=`${d} ${f} ${p}`}}const gp=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function dS(e,t,r){for(const n in t)!ht(t[n])&&!aS(n,r)&&(e[n]=t[n])}function _3({transformTemplate:e},t,r){return S.useMemo(()=>{const n=gp();return vp(n,t,{enableHardwareAcceleration:!r},e),Object.assign({},n.vars,n.style)},[t])}function P3(e,t,r){const n=e.style||{},o={};return dS(o,n,e),Object.assign(o,_3(e,t,r)),e.transformValues?e.transformValues(o):o}function T3(e,t,r){const n={},o=P3(e,t,r);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=o,n}const E3=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 Kl(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||E3.has(e)}let fS=e=>!Kl(e);function $3(e){e&&(fS=t=>t.startsWith("on")?!Kl(t):e(t))}try{$3(require("@emotion/is-prop-valid").default)}catch{}function A3(e,t,r){const n={};for(const o in e)o==="values"&&typeof e.values=="object"||(fS(o)||r===!0&&Kl(o)||!t&&!Kl(o)||e.draggable&&o.startsWith("onDrag"))&&(n[o]=e[o]);return n}function Eg(e,t,r){return typeof e=="string"?e:j.transform(t+r*e)}function R3(e,t,r){const n=Eg(t,e.x,e.width),o=Eg(r,e.y,e.height);return`${n} ${o}`}const M3={offset:"stroke-dashoffset",array:"stroke-dasharray"},z3={offset:"strokeDashoffset",array:"strokeDasharray"};function F3(e,t,r=1,n=0,o=!0){e.pathLength=1;const i=o?M3:z3;e[i.offset]=j.transform(-n);const a=j.transform(t),s=j.transform(r);e[i.array]=`${a} ${s}`}function yp(e,{attrX:t,attrY:r,attrScale:n,originX:o,originY:i,pathLength:a,pathSpacing:s=1,pathOffset:l=0,...u},c,d,f){if(vp(e,u,c,f),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:g,dimensions:y}=e;p.transform&&(y&&(g.transform=p.transform),delete p.transform),y&&(o!==void 0||i!==void 0||g.transform)&&(g.transformOrigin=R3(y,o!==void 0?o:.5,i!==void 0?i:.5)),t!==void 0&&(p.x=t),r!==void 0&&(p.y=r),n!==void 0&&(p.scale=n),a!==void 0&&F3(p,a,s,l,!1)}const hS=()=>({...gp(),attrs:{}}),bp=e=>typeof e=="string"&&e.toLowerCase()==="svg";function D3(e,t,r,n){const o=S.useMemo(()=>{const i=hS();return yp(i,t,{enableHardwareAcceleration:!1},bp(n),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};dS(i,e.style,e),o.style={...i,...o.style}}return o}function I3(e=!1){return(r,n,o,{latestValues:i},a)=>{const l=(mp(r)?D3:T3)(n,i,a,r),c={...A3(n,typeof r=="string",e),...l,ref:o},{children:d}=n,f=S.useMemo(()=>ht(d)?d.get():d,[d]);return S.createElement(r,{...c,children:f})}}function pS(e,{style:t,vars:r},n,o){Object.assign(e.style,t,o&&o.getProjectionStyles(n));for(const i in r)e.style.setProperty(i,r[i])}const mS=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 vS(e,t,r,n){pS(e,t,void 0,n);for(const o in t.attrs)e.setAttribute(mS.has(o)?o:dp(o),t.attrs[o])}function Sp(e,t){const{style:r}=e,n={};for(const o in r)(ht(r[o])||t.style&&ht(t.style[o])||aS(o,e))&&(n[o]=r[o]);return n}function gS(e,t){const r=Sp(e,t);for(const n in e)if(ht(e[n])||ht(t[n])){const o=Wa.indexOf(n)!==-1?"attr"+n.charAt(0).toUpperCase()+n.substring(1):n;r[o]=e[n]}return r}function xp(e,t,r,n={},o={}){return typeof t=="function"&&(t=t(r!==void 0?r:e.custom,n,o)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(r!==void 0?r:e.custom,n,o)),t}function yS(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Yl=e=>Array.isArray(e),L3=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),O3=e=>Yl(e)?e[e.length-1]||0:e;function cl(e){const t=ht(e)?e.get():e;return L3(t)?t.toValue():t}function B3({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:r},n,o,i){const a={latestValues:j3(n,o,i,e),renderState:t()};return r&&(a.mount=s=>r(n,s,a)),a}const bS=e=>(t,r)=>{const n=S.useContext(Nu),o=S.useContext(Va),i=()=>B3(e,t,n,o);return r?i():yS(i)};function j3(e,t,r,n){const o={},i=n(e,{});for(const f in i)o[f]=cl(i[f]);let{initial:a,animate:s}=e;const l=Uu(e),u=oS(e);t&&u&&!l&&e.inherit!==!1&&(a===void 0&&(a=t.initial),s===void 0&&(s=t.animate));let c=r?r.initial===!1:!1;c=c||a===!1;const d=c?s:a;return d&&typeof d!="boolean"&&!Wu(d)&&(Array.isArray(d)?d:[d]).forEach(p=>{const g=xp(e,p);if(!g)return;const{transitionEnd:y,transition:k,...m}=g;for(const h in m){let v=m[h];if(Array.isArray(v)){const C=c?v.length-1:0;v=v[C]}v!==null&&(o[h]=v)}for(const h in y)o[h]=y[h]}),o}const xe=e=>e;class $g{constructor(){this.order=[],this.scheduled=new Set}add(t){if(!this.scheduled.has(t))return this.scheduled.add(t),this.order.push(t),!0}remove(t){const r=this.order.indexOf(t);r!==-1&&(this.order.splice(r,1),this.scheduled.delete(t))}clear(){this.order.length=0,this.scheduled.clear()}}function N3(e){let t=new $g,r=new $g,n=0,o=!1,i=!1;const a=new WeakSet,s={schedule:(l,u=!1,c=!1)=>{const d=c&&o,f=d?t:r;return u&&a.add(l),f.add(l)&&d&&o&&(n=t.order.length),l},cancel:l=>{r.remove(l),a.delete(l)},process:l=>{if(o){i=!0;return}if(o=!0,[t,r]=[r,t],r.clear(),n=t.order.length,n)for(let u=0;u(d[f]=N3(()=>r=!0),d),{}),a=d=>i[d].process(o),s=()=>{const d=performance.now();r=!1,o.delta=n?1e3/60:Math.max(Math.min(d-o.timestamp,V3),1),o.timestamp=d,o.isProcessing=!0,Ms.forEach(a),o.isProcessing=!1,r&&t&&(n=!1,e(s))},l=()=>{r=!0,n=!0,o.isProcessing||e(s)};return{schedule:Ms.reduce((d,f)=>{const p=i[f];return d[f]=(g,y=!1,k=!1)=>(r||l(),p.schedule(g,y,k)),d},{}),cancel:d=>Ms.forEach(f=>i[f].cancel(d)),state:o,steps:i}}const{schedule:se,cancel:Ir,state:De,steps:Zc}=W3(typeof requestAnimationFrame<"u"?requestAnimationFrame:xe,!0),U3={useVisualState:bS({scrapeMotionValuesFromProps:gS,createRenderState:hS,onMount:(e,t,{renderState:r,latestValues:n})=>{se.read(()=>{try{r.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{r.dimensions={x:0,y:0,width:0,height:0}}}),se.render(()=>{yp(r,n,{enableHardwareAcceleration:!1},bp(t.tagName),e.transformTemplate),vS(t,r)})}})},H3={useVisualState:bS({scrapeMotionValuesFromProps:Sp,createRenderState:gp})};function G3(e,{forwardMotionProps:t=!1},r,n){return{...mp(e)?U3:H3,preloadedFeatures:r,useRender:I3(t),createVisualElement:n,Component:e}}function _r(e,t,r,n={passive:!0}){return e.addEventListener(t,r,n),()=>e.removeEventListener(t,r)}const SS=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function Gu(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const K3=e=>t=>SS(t)&&e(t,Gu(t));function Er(e,t,r,n){return _r(e,t,K3(r),n)}const Y3=(e,t)=>r=>t(e(r)),an=(...e)=>e.reduce(Y3);function xS(e){let t=null;return()=>{const r=()=>{t=null};return t===null?(t=e,r):!1}}const Ag=xS("dragHorizontal"),Rg=xS("dragVertical");function wS(e){let t=!1;if(e==="y")t=Rg();else if(e==="x")t=Ag();else{const r=Ag(),n=Rg();r&&n?t=()=>{r(),n()}:(r&&r(),n&&n())}return t}function kS(){const e=wS(!0);return e?(e(),!1):!0}class vn{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Mg(e,t){const r="pointer"+(t?"enter":"leave"),n="onHover"+(t?"Start":"End"),o=(i,a)=>{if(i.type==="touch"||kS())return;const s=e.getProps();e.animationState&&s.whileHover&&e.animationState.setActive("whileHover",t),s[n]&&se.update(()=>s[n](i,a))};return Er(e.current,r,o,{passive:!e.getProps()[n]})}class X3 extends vn{mount(){this.unmount=an(Mg(this.node,!0),Mg(this.node,!1))}unmount(){}}class Q3 extends vn{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("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=an(_r(this.node.current,"focus",()=>this.onFocus()),_r(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const CS=(e,t)=>t?e===t?!0:CS(e,t.parentElement):!1;function Jc(e,t){if(!t)return;const r=new PointerEvent("pointer"+e);t(r,Gu(r))}class q3 extends vn{constructor(){super(...arguments),this.removeStartListeners=xe,this.removeEndListeners=xe,this.removeAccessibleListeners=xe,this.startPointerPress=(t,r)=>{if(this.removeEndListeners(),this.isPressing)return;const n=this.node.getProps(),i=Er(window,"pointerup",(s,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:c}=this.node.getProps();se.update(()=>{CS(this.node.current,s.target)?u&&u(s,l):c&&c(s,l)})},{passive:!(n.onTap||n.onPointerUp)}),a=Er(window,"pointercancel",(s,l)=>this.cancelPress(s,l),{passive:!(n.onTapCancel||n.onPointerCancel)});this.removeEndListeners=an(i,a),this.startPress(t,r)},this.startAccessiblePress=()=>{const t=i=>{if(i.key!=="Enter"||this.isPressing)return;const a=s=>{s.key!=="Enter"||!this.checkPressEnd()||Jc("up",(l,u)=>{const{onTap:c}=this.node.getProps();c&&se.update(()=>c(l,u))})};this.removeEndListeners(),this.removeEndListeners=_r(this.node.current,"keyup",a),Jc("down",(s,l)=>{this.startPress(s,l)})},r=_r(this.node.current,"keydown",t),n=()=>{this.isPressing&&Jc("cancel",(i,a)=>this.cancelPress(i,a))},o=_r(this.node.current,"blur",n);this.removeAccessibleListeners=an(r,o)}}startPress(t,r){this.isPressing=!0;const{onTapStart:n,whileTap:o}=this.node.getProps();o&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),n&&se.update(()=>n(t,r))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!kS()}cancelPress(t,r){if(!this.checkPressEnd())return;const{onTapCancel:n}=this.node.getProps();n&&se.update(()=>n(t,r))}mount(){const t=this.node.getProps(),r=Er(this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),n=_r(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=an(r,n)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const Pf=new WeakMap,ed=new WeakMap,Z3=e=>{const t=Pf.get(e.target);t&&t(e)},J3=e=>{e.forEach(Z3)};function e4({root:e,...t}){const r=e||document;ed.has(r)||ed.set(r,{});const n=ed.get(r),o=JSON.stringify(t);return n[o]||(n[o]=new IntersectionObserver(J3,{root:e,...t})),n[o]}function t4(e,t,r){const n=e4(t);return Pf.set(e,r),n.observe(e),()=>{Pf.delete(e),n.unobserve(e)}}const r4={some:0,all:1};class n4 extends vn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:r,margin:n,amount:o="some",once:i}=t,a={root:r?r.current:void 0,rootMargin:n,threshold:typeof o=="number"?o:r4[o]},s=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};return t4(this.node.current,a,s)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:r}=this.node;["amount","margin","root"].some(o4(t,r))&&this.startObserver()}unmount(){}}function o4({viewport:e={}},{viewport:t={}}={}){return r=>e[r]!==t[r]}const i4={inView:{Feature:n4},tap:{Feature:q3},focus:{Feature:Q3},hover:{Feature:X3}};function _S(e,t){if(!Array.isArray(t))return!1;const r=t.length;if(r!==e.length)return!1;for(let n=0;nt[n]=r.get()),t}function s4(e){const t={};return e.values.forEach((r,n)=>t[n]=r.getVelocity()),t}function Ku(e,t,r){const n=e.getProps();return xp(n,t,r!==void 0?r:n.custom,a4(e),s4(e))}let l4=xe,wp=xe;const sn=e=>e*1e3,$r=e=>e/1e3,u4={current:!1},PS=e=>Array.isArray(e)&&typeof e[0]=="number";function TS(e){return!!(!e||typeof e=="string"&&ES[e]||PS(e)||Array.isArray(e)&&e.every(TS))}const Di=([e,t,r,n])=>`cubic-bezier(${e}, ${t}, ${r}, ${n})`,ES={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Di([0,.65,.55,1]),circOut:Di([.55,0,1,.45]),backIn:Di([.31,.01,.66,-.59]),backOut:Di([.33,1.53,.69,.99])};function $S(e){if(e)return PS(e)?Di(e):Array.isArray(e)?e.map($S):ES[e]}function c4(e,t,r,{delay:n=0,duration:o,repeat:i=0,repeatType:a="loop",ease:s,times:l}={}){const u={[t]:r};l&&(u.offset=l);const c=$S(s);return Array.isArray(c)&&(u.easing=c),e.animate(u,{delay:n,duration:o,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}function d4(e,{repeat:t,repeatType:r="loop"}){const n=t&&r!=="loop"&&t%2===1?0:e.length-1;return e[n]}const AS=(e,t,r)=>(((1-3*r+3*t)*e+(3*r-6*t))*e+3*t)*e,f4=1e-7,h4=12;function p4(e,t,r,n,o){let i,a,s=0;do a=t+(r-t)/2,i=AS(a,n,o)-e,i>0?r=a:t=a;while(Math.abs(i)>f4&&++sp4(i,0,1,e,r);return i=>i===0||i===1?i:AS(o(i),t,n)}const m4=Ga(.42,0,1,1),v4=Ga(0,0,.58,1),RS=Ga(.42,0,.58,1),g4=e=>Array.isArray(e)&&typeof e[0]!="number",MS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,zS=e=>t=>1-e(1-t),FS=e=>1-Math.sin(Math.acos(e)),kp=zS(FS),y4=MS(kp),DS=Ga(.33,1.53,.69,.99),Cp=zS(DS),b4=MS(Cp),S4=e=>(e*=2)<1?.5*Cp(e):.5*(2-Math.pow(2,-10*(e-1))),x4={linear:xe,easeIn:m4,easeInOut:RS,easeOut:v4,circIn:FS,circInOut:y4,circOut:kp,backIn:Cp,backInOut:b4,backOut:DS,anticipate:S4},zg=e=>{if(Array.isArray(e)){wp(e.length===4);const[t,r,n,o]=e;return Ga(t,r,n,o)}else if(typeof e=="string")return x4[e];return e},_p=(e,t)=>r=>!!(Ua(r)&&w3.test(r)&&r.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(r,t)),IS=(e,t,r)=>n=>{if(!Ua(n))return n;const[o,i,a,s]=n.match(Hu);return{[e]:parseFloat(o),[t]:parseFloat(i),[r]:parseFloat(a),alpha:s!==void 0?parseFloat(s):1}},w4=e=>cn(0,255,e),td={...Qn,transform:e=>Math.round(w4(e))},Mn={test:_p("rgb","red"),parse:IS("red","green","blue"),transform:({red:e,green:t,blue:r,alpha:n=1})=>"rgba("+td.transform(e)+", "+td.transform(t)+", "+td.transform(r)+", "+Ji(Zi.transform(n))+")"};function k4(e){let t="",r="",n="",o="";return e.length>5?(t=e.substring(1,3),r=e.substring(3,5),n=e.substring(5,7),o=e.substring(7,9)):(t=e.substring(1,2),r=e.substring(2,3),n=e.substring(3,4),o=e.substring(4,5),t+=t,r+=r,n+=n,o+=o),{red:parseInt(t,16),green:parseInt(r,16),blue:parseInt(n,16),alpha:o?parseInt(o,16)/255:1}}const Tf={test:_p("#"),parse:k4,transform:Mn.transform},Co={test:_p("hsl","hue"),parse:IS("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:r,alpha:n=1})=>"hsla("+Math.round(e)+", "+hr.transform(Ji(t))+", "+hr.transform(Ji(r))+", "+Ji(Zi.transform(n))+")"},Ze={test:e=>Mn.test(e)||Tf.test(e)||Co.test(e),parse:e=>Mn.test(e)?Mn.parse(e):Co.test(e)?Co.parse(e):Tf.parse(e),transform:e=>Ua(e)?e:e.hasOwnProperty("red")?Mn.transform(e):Co.transform(e)},ge=(e,t,r)=>-r*e+r*t+e;function rd(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function C4({hue:e,saturation:t,lightness:r,alpha:n}){e/=360,t/=100,r/=100;let o=0,i=0,a=0;if(!t)o=i=a=r;else{const s=r<.5?r*(1+t):r+t-r*t,l=2*r-s;o=rd(l,s,e+1/3),i=rd(l,s,e),a=rd(l,s,e-1/3)}return{red:Math.round(o*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:n}}const nd=(e,t,r)=>{const n=e*e;return Math.sqrt(Math.max(0,r*(t*t-n)+n))},_4=[Tf,Mn,Co],P4=e=>_4.find(t=>t.test(e));function Fg(e){const t=P4(e);let r=t.parse(e);return t===Co&&(r=C4(r)),r}const LS=(e,t)=>{const r=Fg(e),n=Fg(t),o={...r};return i=>(o.red=nd(r.red,n.red,i),o.green=nd(r.green,n.green,i),o.blue=nd(r.blue,n.blue,i),o.alpha=ge(r.alpha,n.alpha,i),Mn.transform(o))};function T4(e){var t,r;return isNaN(e)&&Ua(e)&&(((t=e.match(Hu))===null||t===void 0?void 0:t.length)||0)+(((r=e.match(uS))===null||r===void 0?void 0:r.length)||0)>0}const OS={regex:S3,countKey:"Vars",token:"${v}",parse:xe},BS={regex:uS,countKey:"Colors",token:"${c}",parse:Ze.parse},jS={regex:Hu,countKey:"Numbers",token:"${n}",parse:Qn.parse};function od(e,{regex:t,countKey:r,token:n,parse:o}){const i=e.tokenised.match(t);i&&(e["num"+r]=i.length,e.tokenised=e.tokenised.replace(t,n),e.values.push(...i.map(o)))}function Xl(e){const t=e.toString(),r={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return r.value.includes("var(--")&&od(r,OS),od(r,BS),od(r,jS),r}function NS(e){return Xl(e).values}function VS(e){const{values:t,numColors:r,numVars:n,tokenised:o}=Xl(e),i=t.length;return a=>{let s=o;for(let l=0;ltypeof e=="number"?0:e;function $4(e){const t=NS(e);return VS(e)(t.map(E4))}const dn={test:T4,parse:NS,createTransformer:VS,getAnimatableNone:$4},WS=(e,t)=>r=>`${r>0?t:e}`;function US(e,t){return typeof e=="number"?r=>ge(e,t,r):Ze.test(e)?LS(e,t):e.startsWith("var(")?WS(e,t):GS(e,t)}const HS=(e,t)=>{const r=[...e],n=r.length,o=e.map((i,a)=>US(i,t[a]));return i=>{for(let a=0;a{const r={...e,...t},n={};for(const o in r)e[o]!==void 0&&t[o]!==void 0&&(n[o]=US(e[o],t[o]));return o=>{for(const i in n)r[i]=n[i](o);return r}},GS=(e,t)=>{const r=dn.createTransformer(t),n=Xl(e),o=Xl(t);return n.numVars===o.numVars&&n.numColors===o.numColors&&n.numNumbers>=o.numNumbers?an(HS(n.values,o.values),r):WS(e,t)},$a=(e,t,r)=>{const n=t-e;return n===0?1:(r-e)/n},Dg=(e,t)=>r=>ge(e,t,r);function R4(e){return typeof e=="number"?Dg:typeof e=="string"?Ze.test(e)?LS:GS:Array.isArray(e)?HS:typeof e=="object"?A4:Dg}function M4(e,t,r){const n=[],o=r||R4(e[0]),i=e.length-1;for(let a=0;at[0];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=M4(t,n,o),s=a.length,l=u=>{let c=0;if(s>1)for(;cl(cn(e[0],e[i-1],u)):l}function z4(e,t){const r=e[e.length-1];for(let n=1;n<=t;n++){const o=$a(0,t,n);e.push(ge(r,1,o))}}function F4(e){const t=[0];return z4(t,e.length-1),t}function D4(e,t){return e.map(r=>r*t)}function I4(e,t){return e.map(()=>t||RS).splice(0,e.length-1)}function Ql({duration:e=300,keyframes:t,times:r,ease:n="easeInOut"}){const o=g4(n)?n.map(zg):zg(n),i={done:!1,value:t[0]},a=D4(r&&r.length===t.length?r:F4(t),e),s=KS(a,t,{ease:Array.isArray(o)?o:I4(t,o)});return{calculatedDuration:e,next:l=>(i.value=s(l),i.done=l>=e,i)}}function YS(e,t){return t?e*(1e3/t):0}const L4=5;function XS(e,t,r){const n=Math.max(t-L4,0);return YS(r-e(n),t-n)}const id=.001,O4=.01,Ig=10,B4=.05,j4=1;function N4({duration:e=800,bounce:t=.25,velocity:r=0,mass:n=1}){let o,i;l4(e<=sn(Ig));let a=1-t;a=cn(B4,j4,a),e=cn(O4,Ig,$r(e)),a<1?(o=u=>{const c=u*a,d=c*e,f=c-r,p=Ef(u,a),g=Math.exp(-d);return id-f/p*g},i=u=>{const d=u*a*e,f=d*r+r,p=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-d),y=Ef(Math.pow(u,2),a);return(-o(u)+id>0?-1:1)*((f-p)*g)/y}):(o=u=>{const c=Math.exp(-u*e),d=(u-r)*e+1;return-id+c*d},i=u=>{const c=Math.exp(-u*e),d=(r-u)*(e*e);return c*d});const s=5/e,l=W4(o,i,s);if(e=sn(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*n;return{stiffness:u,damping:a*2*Math.sqrt(n*u),duration:e}}}const V4=12;function W4(e,t,r){let n=r;for(let o=1;oe[r]!==void 0)}function G4(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!Lg(e,H4)&&Lg(e,U4)){const r=N4(e);t={...t,...r,velocity:0,mass:1},t.isResolvedFromDuration=!0}return t}function QS({keyframes:e,restDelta:t,restSpeed:r,...n}){const o=e[0],i=e[e.length-1],a={done:!1,value:o},{stiffness:s,damping:l,mass:u,velocity:c,duration:d,isResolvedFromDuration:f}=G4(n),p=c?-$r(c):0,g=l/(2*Math.sqrt(s*u)),y=i-o,k=$r(Math.sqrt(s/u)),m=Math.abs(y)<5;r||(r=m?.01:2),t||(t=m?.005:.5);let h;if(g<1){const v=Ef(k,g);h=C=>{const _=Math.exp(-g*k*C);return i-_*((p+g*k*y)/v*Math.sin(v*C)+y*Math.cos(v*C))}}else if(g===1)h=v=>i-Math.exp(-k*v)*(y+(p+k*y)*v);else{const v=k*Math.sqrt(g*g-1);h=C=>{const _=Math.exp(-g*k*C),$=Math.min(v*C,300);return i-_*((p+g*k*y)*Math.sinh($)+v*y*Math.cosh($))/v}}return{calculatedDuration:f&&d||null,next:v=>{const C=h(v);if(f)a.done=v>=d;else{let _=p;v!==0&&(g<1?_=XS(h,v,C):_=0);const $=Math.abs(_)<=r,T=Math.abs(i-C)<=t;a.done=$&&T}return a.value=a.done?i:C,a}}}function Og({keyframes:e,velocity:t=0,power:r=.8,timeConstant:n=325,bounceDamping:o=10,bounceStiffness:i=500,modifyTarget:a,min:s,max:l,restDelta:u=.5,restSpeed:c}){const d=e[0],f={done:!1,value:d},p=A=>s!==void 0&&Al,g=A=>s===void 0?l:l===void 0||Math.abs(s-A)-y*Math.exp(-A/n),v=A=>m+h(A),C=A=>{const M=h(A),I=v(A);f.done=Math.abs(M)<=u,f.value=f.done?m:I};let _,$;const T=A=>{p(f.value)&&(_=A,$=QS({keyframes:[f.value,g(f.value)],velocity:XS(v,A,f.value),damping:o,stiffness:i,restDelta:u,restSpeed:c}))};return T(0),{calculatedDuration:null,next:A=>{let M=!1;return!$&&_===void 0&&(M=!0,C(A),T(A)),_!==void 0&&A>_?$.next(A-_):(!M&&C(A),f)}}}const K4=e=>{const t=({timestamp:r})=>e(r);return{start:()=>se.update(t,!0),stop:()=>Ir(t),now:()=>De.isProcessing?De.timestamp:performance.now()}},Bg=2e4;function jg(e){let t=0;const r=50;let n=e.next(t);for(;!n.done&&t=Bg?1/0:t}const Y4={decay:Og,inertia:Og,tween:Ql,keyframes:Ql,spring:QS};function ql({autoplay:e=!0,delay:t=0,driver:r=K4,keyframes:n,type:o="keyframes",repeat:i=0,repeatDelay:a=0,repeatType:s="loop",onPlay:l,onStop:u,onComplete:c,onUpdate:d,...f}){let p=1,g=!1,y,k;const m=()=>{k=new Promise(B=>{y=B})};m();let h;const v=Y4[o]||Ql;let C;v!==Ql&&typeof n[0]!="number"&&(C=KS([0,100],n,{clamp:!1}),n=[0,100]);const _=v({...f,keyframes:n});let $;s==="mirror"&&($=v({...f,keyframes:[...n].reverse(),velocity:-(f.velocity||0)}));let T="idle",A=null,M=null,I=null;_.calculatedDuration===null&&i&&(_.calculatedDuration=jg(_));const{calculatedDuration:ee}=_;let ze=1/0,Pe=1/0;ee!==null&&(ze=ee+a,Pe=ze*(i+1)-a);let oe=0;const ue=B=>{if(M===null)return;p>0&&(M=Math.min(M,B)),p<0&&(M=Math.min(B-Pe/p,M)),A!==null?oe=A:oe=Math.round(B-M)*p;const ne=oe-t*(p>=0?1:-1),U=p>=0?ne<0:ne>Pe;oe=Math.max(ne,0),T==="finished"&&A===null&&(oe=Pe);let Ge=oe,Kt=_;if(i){const Yt=oe/ze;let Lt=Math.floor(Yt),Xt=Yt%1;!Xt&&Yt>=1&&(Xt=1),Xt===1&&Lt--,Lt=Math.min(Lt,i+1);const si=!!(Lt%2);si&&(s==="reverse"?(Xt=1-Xt,a&&(Xt-=a/ze)):s==="mirror"&&(Kt=$));let Xa=cn(0,1,Xt);oe>Pe&&(Xa=s==="reverse"&&si?1:0),Ge=Xa*ze}const we=U?{done:!1,value:n[0]}:Kt.next(Ge);C&&(we.value=C(we.value));let{done:Fe}=we;!U&&ee!==null&&(Fe=p>=0?oe>=Pe:oe<=0);const mt=A===null&&(T==="finished"||T==="running"&&Fe);return d&&d(we.value),mt&&z(),we},He=()=>{h&&h.stop(),h=void 0},it=()=>{T="idle",He(),y(),m(),M=I=null},z=()=>{T="finished",c&&c(),He(),y()},N=()=>{if(g)return;h||(h=r(ue));const B=h.now();l&&l(),A!==null?M=B-A:(!M||T==="finished")&&(M=B),T==="finished"&&m(),I=M,A=null,T="running",h.start()};e&&N();const V={then(B,ne){return k.then(B,ne)},get time(){return $r(oe)},set time(B){B=sn(B),oe=B,A!==null||!h||p===0?A=B:M=h.now()-B/p},get duration(){const B=_.calculatedDuration===null?jg(_):_.calculatedDuration;return $r(B)},get speed(){return p},set speed(B){B===p||!h||(p=B,V.time=$r(oe))},get state(){return T},play:N,pause:()=>{T="paused",A=oe},stop:()=>{g=!0,T!=="idle"&&(T="idle",u&&u(),it())},cancel:()=>{I!==null&&ue(I),it()},complete:()=>{T="finished"},sample:B=>(M=0,ue(B))};return V}function X4(e){let t;return()=>(t===void 0&&(t=e()),t)}const Q4=X4(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),q4=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),zs=10,Z4=2e4,J4=(e,t)=>t.type==="spring"||e==="backgroundColor"||!TS(t.ease);function eF(e,t,{onUpdate:r,onComplete:n,...o}){if(!(Q4()&&q4.has(t)&&!o.repeatDelay&&o.repeatType!=="mirror"&&o.damping!==0&&o.type!=="inertia"))return!1;let a=!1,s,l;const u=()=>{l=new Promise(h=>{s=h})};u();let{keyframes:c,duration:d=300,ease:f,times:p}=o;if(J4(t,o)){const h=ql({...o,repeat:0,delay:0});let v={done:!1,value:c[0]};const C=[];let _=0;for(;!v.done&&_g.cancel(),k=()=>{se.update(y),s(),u()};return g.onfinish=()=>{e.set(d4(c,o)),n&&n(),k()},{then(h,v){return l.then(h,v)},attachTimeline(h){return g.timeline=h,g.onfinish=null,xe},get time(){return $r(g.currentTime||0)},set time(h){g.currentTime=sn(h)},get speed(){return g.playbackRate},set speed(h){g.playbackRate=h},get duration(){return $r(d)},play:()=>{a||(g.play(),Ir(y))},pause:()=>g.pause(),stop:()=>{if(a=!0,g.playState==="idle")return;const{currentTime:h}=g;if(h){const v=ql({...o,autoplay:!1});e.setWithVelocity(v.sample(h-zs).value,v.sample(h).value,zs)}k()},complete:()=>g.finish(),cancel:k}}function tF({keyframes:e,delay:t,onUpdate:r,onComplete:n}){const o=()=>(r&&r(e[e.length-1]),n&&n(),{time:0,speed:1,duration:0,play:xe,pause:xe,stop:xe,then:i=>(i(),Promise.resolve()),cancel:xe,complete:xe});return t?ql({keyframes:[0,1],duration:0,delay:t,onComplete:o}):o()}const rF={type:"spring",stiffness:500,damping:25,restSpeed:10},nF=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),oF={type:"keyframes",duration:.8},iF={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},aF=(e,{keyframes:t})=>t.length>2?oF:Xn.has(e)?e.startsWith("scale")?nF(t[1]):rF:iF,$f=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(dn.test(t)||t==="0")&&!t.startsWith("url(")),sF=new Set(["brightness","contrast","saturate","opacity"]);function lF(e){const[t,r]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[n]=r.match(Hu)||[];if(!n)return e;const o=r.replace(n,"");let i=sF.has(t)?1:0;return n!==r&&(i*=100),t+"("+i+o+")"}const uF=/([a-z-]*)\(.*?\)/g,Af={...dn,getAnimatableNone:e=>{const t=e.match(uF);return t?t.map(lF).join(" "):e}},cF={...cS,color:Ze,backgroundColor:Ze,outlineColor:Ze,fill:Ze,stroke:Ze,borderColor:Ze,borderTopColor:Ze,borderRightColor:Ze,borderBottomColor:Ze,borderLeftColor:Ze,filter:Af,WebkitFilter:Af},Pp=e=>cF[e];function qS(e,t){let r=Pp(e);return r!==Af&&(r=dn),r.getAnimatableNone?r.getAnimatableNone(t):void 0}const ZS=e=>/^0[^.\s]+$/.test(e);function dF(e){if(typeof e=="number")return e===0;if(e!==null)return e==="none"||e==="0"||ZS(e)}function fF(e,t,r,n){const o=$f(t,r);let i;Array.isArray(r)?i=[...r]:i=[null,r];const a=n.from!==void 0?n.from:e.get();let s;const l=[];for(let u=0;uo=>{const i=Tp(n,e)||{},a=i.delay||n.delay||0;let{elapsed:s=0}=n;s=s-sn(a);const l=fF(t,e,r,i),u=l[0],c=l[l.length-1],d=$f(e,u),f=$f(e,c);let p={keyframes:l,velocity:t.getVelocity(),ease:"easeOut",...i,delay:-s,onUpdate:g=>{t.set(g),i.onUpdate&&i.onUpdate(g)},onComplete:()=>{o(),i.onComplete&&i.onComplete()}};if(hF(i)||(p={...p,...aF(e,p)}),p.duration&&(p.duration=sn(p.duration)),p.repeatDelay&&(p.repeatDelay=sn(p.repeatDelay)),!d||!f||u4.current||i.type===!1)return tF(p);if(t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const g=eF(t,e,p);if(g)return g}return ql(p)};function Zl(e){return!!(ht(e)&&e.add)}const JS=e=>/^\-?\d*\.?\d+$/.test(e);function $p(e,t){e.indexOf(t)===-1&&e.push(t)}function Ap(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}class Rp{constructor(){this.subscriptions=[]}add(t){return $p(this.subscriptions,t),()=>Ap(this.subscriptions,t)}notify(t,r,n){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](t,r,n);else for(let i=0;i!isNaN(parseFloat(e));class mF{constructor(t,r={}){this.version="10.16.12",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(n,o=!0)=>{this.prev=this.current,this.current=n;const{delta:i,timestamp:a}=De;this.lastUpdated!==a&&(this.timeDelta=i,this.lastUpdated=a,se.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()),o&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>se.postRender(this.velocityCheck),this.velocityCheck=({timestamp:n})=>{n!==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=pF(this.current),this.owner=r.owner}onChange(t){return this.on("change",t)}on(t,r){this.events[t]||(this.events[t]=new Rp);const n=this.events[t].add(r);return t==="change"?()=>{n(),se.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,r){this.passiveEffect=t,this.stopPassiveEffect=r}set(t,r=!0){!r||!this.passiveEffect?this.updateAndNotify(t,r):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,r,n){this.set(r),this.prev=t,this.timeDelta=n}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?YS(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(r=>{this.hasAnimated=!0,this.animation=t(r),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(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Jo(e,t){return new mF(e,t)}const ex=e=>t=>t.test(e),vF={test:e=>e==="auto",parse:e=>e},tx=[Qn,j,hr,Vr,C3,k3,vF],ki=e=>tx.find(ex(e)),gF=[...tx,Ze,dn],yF=e=>gF.find(ex(e));function bF(e,t,r){e.hasValue(t)?e.getValue(t).set(r):e.addValue(t,Jo(r))}function SF(e,t){const r=Ku(e,t);let{transitionEnd:n={},transition:o={},...i}=r?e.makeTargetAnimatable(r,!1):{};i={...i,...n};for(const a in i){const s=O3(i[a]);bF(e,a,s)}}function xF(e,t,r){var n,o;const i=Object.keys(t).filter(s=>!e.hasValue(s)),a=i.length;if(a)for(let s=0;sl.remove(d))),u.push(m)}return a&&Promise.all(u).then(()=>{a&&SF(e,a)}),u}function Rf(e,t,r={}){const n=Ku(e,t,r.custom);let{transition:o=e.getDefaultTransition()||{}}=n||{};r.transitionOverride&&(o=r.transitionOverride);const i=n?()=>Promise.all(rx(e,n,r)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:c,staggerDirection:d}=o;return _F(e,t,u+l,c,d,r)}:()=>Promise.resolve(),{when:s}=o;if(s){const[l,u]=s==="beforeChildren"?[i,a]:[a,i];return l().then(()=>u())}else return Promise.all([i(),a(r.delay)])}function _F(e,t,r=0,n=0,o=1,i){const a=[],s=(e.variantChildren.size-1)*n,l=o===1?(u=0)=>u*n:(u=0)=>s-u*n;return Array.from(e.variantChildren).sort(PF).forEach((u,c)=>{u.notify("AnimationStart",t),a.push(Rf(u,t,{...i,delay:r+l(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function PF(e,t){return e.sortNodePosition(t)}function TF(e,t,r={}){e.notify("AnimationStart",t);let n;if(Array.isArray(t)){const o=t.map(i=>Rf(e,i,r));n=Promise.all(o)}else if(typeof t=="string")n=Rf(e,t,r);else{const o=typeof t=="function"?Ku(e,t,r.custom):t;n=Promise.all(rx(e,o,r))}return n.then(()=>e.notify("AnimationComplete",t))}const EF=[...fp].reverse(),$F=fp.length;function AF(e){return t=>Promise.all(t.map(({animation:r,options:n})=>TF(e,r,n)))}function RF(e){let t=AF(e);const r=zF();let n=!0;const o=(l,u)=>{const c=Ku(e,u);if(c){const{transition:d,transitionEnd:f,...p}=c;l={...l,...p,...f}}return l};function i(l){t=l(e)}function a(l,u){const c=e.getProps(),d=e.getVariantContext(!0)||{},f=[],p=new Set;let g={},y=1/0;for(let m=0;m<$F;m++){const h=EF[m],v=r[h],C=c[h]!==void 0?c[h]:d[h],_=Ta(C),$=h===u?v.isActive:null;$===!1&&(y=m);let T=C===d[h]&&C!==c[h]&&_;if(T&&n&&e.manuallyAnimateOnMount&&(T=!1),v.protectedKeys={...g},!v.isActive&&$===null||!C&&!v.prevProp||Wu(C)||typeof C=="boolean")continue;const A=MF(v.prevProp,C);let M=A||h===u&&v.isActive&&!T&&_||m>y&&_;const I=Array.isArray(C)?C:[C];let ee=I.reduce(o,{});$===!1&&(ee={});const{prevResolvedValues:ze={}}=v,Pe={...ze,...ee},oe=ue=>{M=!0,p.delete(ue),v.needsAnimating[ue]=!0};for(const ue in Pe){const He=ee[ue],it=ze[ue];g.hasOwnProperty(ue)||(He!==it?Yl(He)&&Yl(it)?!_S(He,it)||A?oe(ue):v.protectedKeys[ue]=!0:He!==void 0?oe(ue):p.add(ue):He!==void 0&&p.has(ue)?oe(ue):v.protectedKeys[ue]=!0)}v.prevProp=C,v.prevResolvedValues=ee,v.isActive&&(g={...g,...ee}),n&&e.blockInitialAnimation&&(M=!1),M&&!T&&f.push(...I.map(ue=>({animation:ue,options:{type:h,...l}})))}if(p.size){const m={};p.forEach(h=>{const v=e.getBaseTarget(h);v!==void 0&&(m[h]=v)}),f.push({animation:m})}let k=!!f.length;return n&&c.initial===!1&&!e.manuallyAnimateOnMount&&(k=!1),n=!1,k?t(f):Promise.resolve()}function s(l,u,c){var d;if(r[l].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(p=>{var g;return(g=p.animationState)===null||g===void 0?void 0:g.setActive(l,u)}),r[l].isActive=u;const f=a(c,l);for(const p in r)r[p].protectedKeys={};return f}return{animateChanges:a,setActive:s,setAnimateFunction:i,getState:()=>r}}function MF(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!_S(t,e):!1}function Sn(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function zF(){return{animate:Sn(!0),whileInView:Sn(),whileHover:Sn(),whileTap:Sn(),whileDrag:Sn(),whileFocus:Sn(),exit:Sn()}}class FF extends vn{constructor(t){super(t),t.animationState||(t.animationState=RF(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),Wu(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:r}=this.node.prevProps||{};t!==r&&this.updateAnimationControlsSubscription()}unmount(){}}let DF=0;class IF extends vn{constructor(){super(...arguments),this.id=DF++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:r,custom:n}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===o)return;const i=this.node.animationState.setActive("exit",!t,{custom:n??this.node.getProps().custom});r&&!t&&i.then(()=>r(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const LF={animation:{Feature:FF},exit:{Feature:IF}},Ng=(e,t)=>Math.abs(e-t);function OF(e,t){const r=Ng(e.x,t.x),n=Ng(e.y,t.y);return Math.sqrt(r**2+n**2)}class nx{constructor(t,r,{transformPagePoint:n,contextWindow:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const c=sd(this.lastMoveEventInfo,this.history),d=this.startEvent!==null,f=OF(c.offset,{x:0,y:0})>=3;if(!d&&!f)return;const{point:p}=c,{timestamp:g}=De;this.history.push({...p,timestamp:g});const{onStart:y,onMove:k}=this.handlers;d||(y&&y(this.lastMoveEvent,c),this.startEvent=this.lastMoveEvent),k&&k(this.lastMoveEvent,c)},this.handlePointerMove=(c,d)=>{this.lastMoveEvent=c,this.lastMoveEventInfo=ad(d,this.transformPagePoint),se.update(this.updatePoint,!0)},this.handlePointerUp=(c,d)=>{if(this.end(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const{onEnd:f,onSessionEnd:p}=this.handlers,g=sd(c.type==="pointercancel"?this.lastMoveEventInfo:ad(d,this.transformPagePoint),this.history);this.startEvent&&f&&f(c,g),p&&p(c,g)},!SS(t))return;this.handlers=r,this.transformPagePoint=n,this.contextWindow=o||window;const i=Gu(t),a=ad(i,this.transformPagePoint),{point:s}=a,{timestamp:l}=De;this.history=[{...s,timestamp:l}];const{onSessionStart:u}=r;u&&u(t,sd(a,this.history)),this.removeListeners=an(Er(this.contextWindow,"pointermove",this.handlePointerMove),Er(this.contextWindow,"pointerup",this.handlePointerUp),Er(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Ir(this.updatePoint)}}function ad(e,t){return t?{point:t(e.point)}:e}function Vg(e,t){return{x:e.x-t.x,y:e.y-t.y}}function sd({point:e},t){return{point:e,delta:Vg(e,ox(t)),offset:Vg(e,BF(t)),velocity:jF(t,.1)}}function BF(e){return e[0]}function ox(e){return e[e.length-1]}function jF(e,t){if(e.length<2)return{x:0,y:0};let r=e.length-1,n=null;const o=ox(e);for(;r>=0&&(n=e[r],!(o.timestamp-n.timestamp>sn(t)));)r--;if(!n)return{x:0,y:0};const i=$r(o.timestamp-n.timestamp);if(i===0)return{x:0,y:0};const a={x:(o.x-n.x)/i,y:(o.y-n.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function kt(e){return e.max-e.min}function Mf(e,t=0,r=.01){return Math.abs(e-t)<=r}function Wg(e,t,r,n=.5){e.origin=n,e.originPoint=ge(t.min,t.max,e.origin),e.scale=kt(r)/kt(t),(Mf(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=ge(r.min,r.max,e.origin)-e.originPoint,(Mf(e.translate)||isNaN(e.translate))&&(e.translate=0)}function ea(e,t,r,n){Wg(e.x,t.x,r.x,n?n.originX:void 0),Wg(e.y,t.y,r.y,n?n.originY:void 0)}function Ug(e,t,r){e.min=r.min+t.min,e.max=e.min+kt(t)}function NF(e,t,r){Ug(e.x,t.x,r.x),Ug(e.y,t.y,r.y)}function Hg(e,t,r){e.min=t.min-r.min,e.max=e.min+kt(t)}function ta(e,t,r){Hg(e.x,t.x,r.x),Hg(e.y,t.y,r.y)}function VF(e,{min:t,max:r},n){return t!==void 0&&er&&(e=n?ge(r,e,n.max):Math.min(e,r)),e}function Gg(e,t,r){return{min:t!==void 0?e.min+t:void 0,max:r!==void 0?e.max+r-(e.max-e.min):void 0}}function WF(e,{top:t,left:r,bottom:n,right:o}){return{x:Gg(e.x,r,o),y:Gg(e.y,t,n)}}function Kg(e,t){let r=t.min-e.min,n=t.max-e.max;return t.max-t.minn?r=$a(t.min,t.max-n,e.min):n>o&&(r=$a(e.min,e.max-o,t.min)),cn(0,1,r)}function GF(e,t){const r={};return t.min!==void 0&&(r.min=t.min-e.min),t.max!==void 0&&(r.max=t.max-e.min),r}const zf=.35;function KF(e=zf){return e===!1?e=0:e===!0&&(e=zf),{x:Yg(e,"left","right"),y:Yg(e,"top","bottom")}}function Yg(e,t,r){return{min:Xg(e,t),max:Xg(e,r)}}function Xg(e,t){return typeof e=="number"?e:e[t]||0}const Qg=()=>({translate:0,scale:1,origin:0,originPoint:0}),_o=()=>({x:Qg(),y:Qg()}),qg=()=>({min:0,max:0}),Te=()=>({x:qg(),y:qg()});function Jt(e){return[e("x"),e("y")]}function ix({top:e,left:t,right:r,bottom:n}){return{x:{min:t,max:r},y:{min:e,max:n}}}function YF({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function XF(e,t){if(!t)return e;const r=t({x:e.left,y:e.top}),n=t({x:e.right,y:e.bottom});return{top:r.y,left:r.x,bottom:n.y,right:n.x}}function ld(e){return e===void 0||e===1}function Ff({scale:e,scaleX:t,scaleY:r}){return!ld(e)||!ld(t)||!ld(r)}function kn(e){return Ff(e)||ax(e)||e.z||e.rotate||e.rotateX||e.rotateY}function ax(e){return Zg(e.x)||Zg(e.y)}function Zg(e){return e&&e!=="0%"}function Jl(e,t,r){const n=e-r,o=t*n;return r+o}function Jg(e,t,r,n,o){return o!==void 0&&(e=Jl(e,o,n)),Jl(e,r,n)+t}function Df(e,t=0,r=1,n,o){e.min=Jg(e.min,t,r,n,o),e.max=Jg(e.max,t,r,n,o)}function sx(e,{x:t,y:r}){Df(e.x,t.translate,t.scale,t.originPoint),Df(e.y,r.translate,r.scale,r.originPoint)}function QF(e,t,r,n=!1){const o=r.length;if(!o)return;t.x=t.y=1;let i,a;for(let s=0;s1.0000000000001||e<.999999999999?e:1}function Hr(e,t){e.min=e.min+t,e.max=e.max+t}function t0(e,t,[r,n,o]){const i=t[o]!==void 0?t[o]:.5,a=ge(e.min,e.max,i);Df(e,t[r],t[n],a,t.scale)}const qF=["x","scaleX","originX"],ZF=["y","scaleY","originY"];function Po(e,t){t0(e.x,t,qF),t0(e.y,t,ZF)}function lx(e,t){return ix(XF(e.getBoundingClientRect(),t))}function JF(e,t,r){const n=lx(e,r),{scroll:o}=t;return o&&(Hr(n.x,o.offset.x),Hr(n.y,o.offset.y)),n}const ux=({current:e})=>e?e.ownerDocument.defaultView:null,eD=new WeakMap;class tD{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=Te(),this.visualElement=t}start(t,{snapToCursor:r=!1}={}){const{presenceContext:n}=this.visualElement;if(n&&n.isPresent===!1)return;const o=l=>{this.stopAnimation(),r&&this.snapToCursor(Gu(l,"page").point)},i=(l,u)=>{const{drag:c,dragPropagation:d,onDragStart:f}=this.getProps();if(c&&!d&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=wS(c),!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),Jt(g=>{let y=this.getAxisMotionValue(g).get()||0;if(hr.test(y)){const{projection:k}=this.visualElement;if(k&&k.layout){const m=k.layout.layoutBox[g];m&&(y=kt(m)*(parseFloat(y)/100))}}this.originPoint[g]=y}),f&&se.update(()=>f(l,u),!1,!0);const{animationState:p}=this.visualElement;p&&p.setActive("whileDrag",!0)},a=(l,u)=>{const{dragPropagation:c,dragDirectionLock:d,onDirectionLock:f,onDrag:p}=this.getProps();if(!c&&!this.openGlobalLock)return;const{offset:g}=u;if(d&&this.currentDirection===null){this.currentDirection=rD(g),this.currentDirection!==null&&f&&f(this.currentDirection);return}this.updateAxis("x",u.point,g),this.updateAxis("y",u.point,g),this.visualElement.render(),p&&p(l,u)},s=(l,u)=>this.stop(l,u);this.panSession=new nx(t,{onSessionStart:o,onStart:i,onMove:a,onSessionEnd:s},{transformPagePoint:this.visualElement.getTransformPagePoint(),contextWindow:ux(this.visualElement)})}stop(t,r){const n=this.isDragging;if(this.cancel(),!n)return;const{velocity:o}=r;this.startAnimation(o);const{onDragEnd:i}=this.getProps();i&&se.update(()=>i(t,r))}cancel(){this.isDragging=!1;const{projection:t,animationState:r}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:n}=this.getProps();!n&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),r&&r.setActive("whileDrag",!1)}updateAxis(t,r,n){const{drag:o}=this.getProps();if(!n||!Fs(t,o,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+n[t];this.constraints&&this.constraints[t]&&(a=VF(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:r,dragElastic:n}=this.getProps(),o=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;r&&ko(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&o?this.constraints=WF(o.layoutBox,r):this.constraints=!1,this.elastic=KF(n),i!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&Jt(a=>{this.getAxisMotionValue(a)&&(this.constraints[a]=GF(o.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:r}=this.getProps();if(!t||!ko(t))return!1;const n=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const i=JF(n,o.root,this.visualElement.getTransformPagePoint());let a=UF(o.layout.layoutBox,i);if(r){const s=r(YF(a));this.hasMutatedConstraints=!!s,s&&(a=ix(s))}return a}startAnimation(t){const{drag:r,dragMomentum:n,dragElastic:o,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:s}=this.getProps(),l=this.constraints||{},u=Jt(c=>{if(!Fs(c,r,this.currentDirection))return;let d=l&&l[c]||{};a&&(d={min:0,max:0});const f=o?200:1e6,p=o?40:1e7,g={type:"inertia",velocity:n?t[c]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...i,...d};return this.startAxisValueAnimation(c,g)});return Promise.all(u).then(s)}startAxisValueAnimation(t,r){const n=this.getAxisMotionValue(t);return n.start(Ep(t,n,0,r))}stopAnimation(){Jt(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const r="_drag"+t.toUpperCase(),n=this.visualElement.getProps(),o=n[r];return o||this.visualElement.getValue(t,(n.initial?n.initial[t]:void 0)||0)}snapToCursor(t){Jt(r=>{const{drag:n}=this.getProps();if(!Fs(r,n,this.currentDirection))return;const{projection:o}=this.visualElement,i=this.getAxisMotionValue(r);if(o&&o.layout){const{min:a,max:s}=o.layout.layoutBox[r];i.set(t[r]-ge(a,s,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:r}=this.getProps(),{projection:n}=this.visualElement;if(!ko(r)||!n||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};Jt(a=>{const s=this.getAxisMotionValue(a);if(s){const l=s.get();o[a]=HF({min:l,max:l},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",n.root&&n.root.updateScroll(),n.updateLayout(),this.resolveConstraints(),Jt(a=>{if(!Fs(a,t,null))return;const s=this.getAxisMotionValue(a),{min:l,max:u}=this.constraints[a];s.set(ge(l,u,o[a]))})}addListeners(){if(!this.visualElement.current)return;eD.set(this.visualElement,this);const t=this.visualElement.current,r=Er(t,"pointerdown",l=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(l)}),n=()=>{const{dragConstraints:l}=this.getProps();ko(l)&&(this.constraints=this.resolveRefConstraints())},{projection:o}=this.visualElement,i=o.addEventListener("measure",n);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),n();const a=_r(window,"resize",()=>this.scalePositionWithinConstraints()),s=o.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(Jt(c=>{const d=this.getAxisMotionValue(c);d&&(this.originPoint[c]+=l[c].translate,d.set(d.get()+l[c].translate))}),this.visualElement.render())});return()=>{a(),r(),i(),s&&s()}}getProps(){const t=this.visualElement.getProps(),{drag:r=!1,dragDirectionLock:n=!1,dragPropagation:o=!1,dragConstraints:i=!1,dragElastic:a=zf,dragMomentum:s=!0}=t;return{...t,drag:r,dragDirectionLock:n,dragPropagation:o,dragConstraints:i,dragElastic:a,dragMomentum:s}}}function Fs(e,t,r){return(t===!0||t===e)&&(r===null||r===e)}function rD(e,t=10){let r=null;return Math.abs(e.y)>t?r="y":Math.abs(e.x)>t&&(r="x"),r}class nD extends vn{constructor(t){super(t),this.removeGroupControls=xe,this.removeListeners=xe,this.controls=new tD(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||xe}unmount(){this.removeGroupControls(),this.removeListeners()}}const r0=e=>(t,r)=>{e&&se.update(()=>e(t,r))};class oD extends vn{constructor(){super(...arguments),this.removePointerDownListener=xe}onPointerDown(t){this.session=new nx(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:ux(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:r,onPan:n,onPanEnd:o}=this.node.getProps();return{onSessionStart:r0(t),onStart:r0(r),onMove:n,onEnd:(i,a)=>{delete this.session,o&&se.update(()=>o(i,a))}}}mount(){this.removePointerDownListener=Er(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 cx(){const e=S.useContext(Va);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:r,register:n}=e,o=S.useId();return S.useEffect(()=>n(o),[]),!t&&r?[!1,()=>r&&r(o)]:[!0]}function iD(){return aD(S.useContext(Va))}function aD(e){return e===null?!0:e.isPresent}const dl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function n0(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Ci={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(j.test(e))e=parseFloat(e);else return e;const r=n0(e,t.target.x),n=n0(e,t.target.y);return`${r}% ${n}%`}},sD={correct:(e,{treeScale:t,projectionDelta:r})=>{const n=e,o=dn.parse(e);if(o.length>5)return n;const i=dn.createTransformer(e),a=typeof o[0]!="number"?1:0,s=r.x.scale*t.x,l=r.y.scale*t.y;o[0+a]/=s,o[1+a]/=l;const u=ge(s,l,.5);return typeof o[2+a]=="number"&&(o[2+a]/=u),typeof o[3+a]=="number"&&(o[3+a]/=u),i(o)}};class lD extends Ar.Component{componentDidMount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:n,layoutId:o}=this.props,{projection:i}=t;v3(uD),i&&(r.group&&r.group.add(i),n&&n.register&&o&&n.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),dl.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:r,visualElement:n,drag:o,isPresent:i}=this.props,a=n.projection;return a&&(a.isPresent=i,o||t.layoutDependency!==r||r===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||se.postRender(()=>{const s=a.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),queueMicrotask(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:n}=this.props,{projection:o}=t;o&&(o.scheduleCheckAfterUnmount(),r&&r.group&&r.group.remove(o),n&&n.deregister&&n.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function dx(e){const[t,r]=cx(),n=S.useContext(pp);return Ar.createElement(lD,{...e,layoutGroup:n,switchLayoutGroup:S.useContext(iS),isPresent:t,safeToRemove:r})}const uD={borderRadius:{...Ci,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Ci,borderTopRightRadius:Ci,borderBottomLeftRadius:Ci,borderBottomRightRadius:Ci,boxShadow:sD},fx=["TopLeft","TopRight","BottomLeft","BottomRight"],cD=fx.length,o0=e=>typeof e=="string"?parseFloat(e):e,i0=e=>typeof e=="number"||j.test(e);function dD(e,t,r,n,o,i){o?(e.opacity=ge(0,r.opacity!==void 0?r.opacity:1,fD(n)),e.opacityExit=ge(t.opacity!==void 0?t.opacity:1,0,hD(n))):i&&(e.opacity=ge(t.opacity!==void 0?t.opacity:1,r.opacity!==void 0?r.opacity:1,n));for(let a=0;ant?1:r($a(e,t,n))}function s0(e,t){e.min=t.min,e.max=t.max}function $t(e,t){s0(e.x,t.x),s0(e.y,t.y)}function l0(e,t,r,n,o){return e-=t,e=Jl(e,1/r,n),o!==void 0&&(e=Jl(e,1/o,n)),e}function pD(e,t=0,r=1,n=.5,o,i=e,a=e){if(hr.test(t)&&(t=parseFloat(t),t=ge(a.min,a.max,t/100)-a.min),typeof t!="number")return;let s=ge(i.min,i.max,n);e===i&&(s-=t),e.min=l0(e.min,t,r,s,o),e.max=l0(e.max,t,r,s,o)}function u0(e,t,[r,n,o],i,a){pD(e,t[r],t[n],t[o],t.scale,i,a)}const mD=["x","scaleX","originX"],vD=["y","scaleY","originY"];function c0(e,t,r,n){u0(e.x,t,mD,r?r.x:void 0,n?n.x:void 0),u0(e.y,t,vD,r?r.y:void 0,n?n.y:void 0)}function d0(e){return e.translate===0&&e.scale===1}function px(e){return d0(e.x)&&d0(e.y)}function gD(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 mx(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function f0(e){return kt(e.x)/kt(e.y)}class yD{constructor(){this.members=[]}add(t){$p(this.members,t),t.scheduleRender()}remove(t){if(Ap(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const r=this.members[this.members.length-1];r&&this.promote(r)}}relegate(t){const r=this.members.findIndex(o=>t===o);if(r===0)return!1;let n;for(let o=r;o>=0;o--){const i=this.members[o];if(i.isPresent!==!1){n=i;break}}return n?(this.promote(n),!0):!1}promote(t,r){const n=this.lead;if(t!==n&&(this.prevLead=n,this.lead=t,t.show(),n)){n.instance&&n.scheduleRender(),t.scheduleRender(),t.resumeFrom=n,r&&(t.resumeFrom.preserveOpacity=!0),n.snapshot&&(t.snapshot=n.snapshot,t.snapshot.latestValues=n.animationValues||n.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:o}=t.options;o===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:r,resumingFrom:n}=t;r.onExitComplete&&r.onExitComplete(),n&&n.options.onExitComplete&&n.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function h0(e,t,r){let n="";const o=e.x.translate/t.x,i=e.y.translate/t.y;if((o||i)&&(n=`translate3d(${o}px, ${i}px, 0) `),(t.x!==1||t.y!==1)&&(n+=`scale(${1/t.x}, ${1/t.y}) `),r){const{rotate:l,rotateX:u,rotateY:c}=r;l&&(n+=`rotate(${l}deg) `),u&&(n+=`rotateX(${u}deg) `),c&&(n+=`rotateY(${c}deg) `)}const a=e.x.scale*t.x,s=e.y.scale*t.y;return(a!==1||s!==1)&&(n+=`scale(${a}, ${s})`),n||"none"}const bD=(e,t)=>e.depth-t.depth;class SD{constructor(){this.children=[],this.isDirty=!1}add(t){$p(this.children,t),this.isDirty=!0}remove(t){Ap(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(bD),this.isDirty=!1,this.children.forEach(t)}}function xD(e,t){const r=performance.now(),n=({timestamp:o})=>{const i=o-r;i>=t&&(Ir(n),e(i-t))};return se.read(n,!0),()=>Ir(n)}function wD(e){window.MotionDebug&&window.MotionDebug.record(e)}function kD(e){return e instanceof SVGElement&&e.tagName!=="svg"}function CD(e,t,r){const n=ht(e)?e:Jo(e);return n.start(Ep("",n,t,r)),n.animation}const p0=["","X","Y","Z"],_D={visibility:"hidden"},m0=1e3;let PD=0;const Cn={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function vx({attachResizeListener:e,defaultParent:t,measureScroll:r,checkIsScrollRoot:n,resetTransform:o}){return class{constructor(a={},s=t==null?void 0:t()){this.id=PD++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!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.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Cn.totalNodes=Cn.resolvedTargetDeltas=Cn.recalculatedProjection=0,this.nodes.forEach($D),this.nodes.forEach(FD),this.nodes.forEach(DD),this.nodes.forEach(AD),wD(Cn)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=s?s.root||s:this,this.path=s?[...s.path,s]:[],this.parent=s,this.depth=s?s.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=xD(f,250),dl.hasAnimatedSinceResize&&(dl.hasAnimatedSinceResize=!1,this.nodes.forEach(g0))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||u)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:f,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const y=this.options.transition||c.getDefaultTransition()||jD,{onLayoutAnimationStart:k,onLayoutAnimationComplete:m}=c.getProps(),h=!this.targetLayout||!mx(this.targetLayout,g)||p,v=!f&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||v||f&&(h||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,v);const C={...Tp(y,"layout"),onPlay:k,onComplete:m};(c.shouldReduceMotion||this.options.layoutRoot)&&(C.delay=0,C.type=!1),this.startAnimation(C)}else f||g0(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}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,Ir(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(ID),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,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 c=0;cthis.update()))}clearAllSnapshots(){this.nodes.forEach(RD),this.sharedNodes.forEach(LD)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,se.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){se.postRender(()=>{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 _=C/1e3;y0(d.x,a.x,_),y0(d.y,a.y,_),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(ta(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),OD(this.relativeTarget,this.relativeTargetOrigin,f,_),v&&gD(this.relativeTarget,v)&&(this.isProjectionDirty=!1),v||(v=Te()),$t(v,this.relativeTarget)),y&&(this.animationValues=c,dD(c,u,this.latestValues,_,h,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=_},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&&(Ir(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=se.update(()=>{dl.hasAnimatedSinceResize=!0,this.currentAnimation=CD(0,m0,{...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(m0),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:s,target:l,layout:u,latestValues:c}=a;if(!(!s||!l||!u)){if(this!==a&&this.layout&&u&&gx(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Te();const d=kt(this.layout.layoutBox.x);l.x.min=a.target.x.min,l.x.max=l.x.min+d;const f=kt(this.layout.layoutBox.y);l.y.min=a.target.y.min,l.y.max=l.y.min+f}$t(s,l),Po(s,c),ea(this.projectionDeltaWithTransform,this.layoutCorrected,s,c)}}registerSharedNode(a,s){this.sharedNodes.has(a)||this.sharedNodes.set(a,new yD),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 c=0;c{var s;return(s=a.currentAnimation)===null||s===void 0?void 0:s.stop()}),this.root.nodes.forEach(v0),this.root.sharedNodes.clear()}}}function TD(e){e.updateLayout()}function ED(e){var t;const r=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&r&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:o}=e.layout,{animationType:i}=e.options,a=r.source!==e.layout.source;i==="size"?Jt(d=>{const f=a?r.measuredBox[d]:r.layoutBox[d],p=kt(f);f.min=n[d].min,f.max=f.min+p}):gx(i,r.layoutBox,n)&&Jt(d=>{const f=a?r.measuredBox[d]:r.layoutBox[d],p=kt(n[d]);f.max=f.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+p)});const s=_o();ea(s,n,r.layoutBox);const l=_o();a?ea(l,e.applyTransform(o,!0),r.measuredBox):ea(l,n,r.layoutBox);const u=!px(s);let c=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:f,layout:p}=d;if(f&&p){const g=Te();ta(g,r.layoutBox,f.layoutBox);const y=Te();ta(y,n,p.layoutBox),mx(g,y)||(c=!0),d.options.layoutRoot&&(e.relativeTarget=y,e.relativeTargetOrigin=g,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:r,delta:l,layoutDelta:s,hasLayoutChanged:u,hasRelativeTargetChanged:c})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function $D(e){Cn.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function AD(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function RD(e){e.clearSnapshot()}function v0(e){e.clearMeasurements()}function MD(e){e.isLayoutDirty=!1}function zD(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function g0(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function FD(e){e.resolveTargetDelta()}function DD(e){e.calcProjection()}function ID(e){e.resetRotation()}function LD(e){e.removeLeadSnapshot()}function y0(e,t,r){e.translate=ge(t.translate,0,r),e.scale=ge(t.scale,1,r),e.origin=t.origin,e.originPoint=t.originPoint}function b0(e,t,r,n){e.min=ge(t.min,r.min,n),e.max=ge(t.max,r.max,n)}function OD(e,t,r,n){b0(e.x,t.x,r.x,n),b0(e.y,t.y,r.y,n)}function BD(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const jD={duration:.45,ease:[.4,0,.1,1]},S0=e=>typeof navigator<"u"&&navigator.userAgent.toLowerCase().includes(e),x0=S0("applewebkit/")&&!S0("chrome/")?Math.round:xe;function w0(e){e.min=x0(e.min),e.max=x0(e.max)}function ND(e){w0(e.x),w0(e.y)}function gx(e,t,r){return e==="position"||e==="preserve-aspect"&&!Mf(f0(t),f0(r),.2)}const VD=vx({attachResizeListener:(e,t)=>_r(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),ud={current:void 0},yx=vx({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ud.current){const e=new VD({});e.mount(window),e.setOptions({layoutScroll:!0}),ud.current=e}return ud.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),WD={pan:{Feature:oD},drag:{Feature:nD,ProjectionNode:yx,MeasureLayout:dx}},UD=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function HD(e){const t=UD.exec(e);if(!t)return[,];const[,r,n]=t;return[r,n]}function If(e,t,r=1){const[n,o]=HD(e);if(!n)return;const i=window.getComputedStyle(t).getPropertyValue(n);if(i){const a=i.trim();return JS(a)?parseFloat(a):a}else return _f(o)?If(o,t,r+1):o}function GD(e,{...t},r){const n=e.current;if(!(n instanceof Element))return{target:t,transitionEnd:r};r&&(r={...r}),e.values.forEach(o=>{const i=o.get();if(!_f(i))return;const a=If(i,n);a&&o.set(a)});for(const o in t){const i=t[o];if(!_f(i))continue;const a=If(i,n);a&&(t[o]=a,r||(r={}),r[o]===void 0&&(r[o]=i))}return{target:t,transitionEnd:r}}const KD=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),bx=e=>KD.has(e),YD=e=>Object.keys(e).some(bx),k0=e=>e===Qn||e===j,C0=(e,t)=>parseFloat(e.split(", ")[t]),_0=(e,t)=>(r,{transform:n})=>{if(n==="none"||!n)return 0;const o=n.match(/^matrix3d\((.+)\)$/);if(o)return C0(o[1],t);{const i=n.match(/^matrix\((.+)\)$/);return i?C0(i[1],e):0}},XD=new Set(["x","y","z"]),QD=Wa.filter(e=>!XD.has(e));function qD(e){const t=[];return QD.forEach(r=>{const n=e.getValue(r);n!==void 0&&(t.push([r,n.get()]),n.set(r.startsWith("scale")?1:0))}),t.length&&e.render(),t}const ei={width:({x:e},{paddingLeft:t="0",paddingRight:r="0"})=>e.max-e.min-parseFloat(t)-parseFloat(r),height:({y:e},{paddingTop:t="0",paddingBottom:r="0"})=>e.max-e.min-parseFloat(t)-parseFloat(r),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:_0(4,13),y:_0(5,14)};ei.translateX=ei.x;ei.translateY=ei.y;const ZD=(e,t,r)=>{const n=t.measureViewportBox(),o=t.current,i=getComputedStyle(o),{display:a}=i,s={};a==="none"&&t.setStaticValue("display",e.display||"block"),r.forEach(u=>{s[u]=ei[u](n,i)}),t.render();const l=t.measureViewportBox();return r.forEach(u=>{const c=t.getValue(u);c&&c.jump(s[u]),e[u]=ei[u](l,i)}),e},JD=(e,t,r={},n={})=>{t={...t},n={...n};const o=Object.keys(t).filter(bx);let i=[],a=!1;const s=[];if(o.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let c=r[l],d=ki(c);const f=t[l];let p;if(Yl(f)){const g=f.length,y=f[0]===null?1:0;c=f[y],d=ki(c);for(let k=y;k=0?window.pageYOffset:null,u=ZD(t,e,s);return i.length&&i.forEach(([c,d])=>{e.getValue(c).set(d)}),e.render(),Vu&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:n}}else return{target:t,transitionEnd:n}};function eI(e,t,r,n){return YD(t)?JD(e,t,r,n):{target:t,transitionEnd:n}}const tI=(e,t,r,n)=>{const o=GD(e,t,n);return t=o.target,n=o.transitionEnd,eI(e,t,r,n)},Lf={current:null},Sx={current:!1};function rI(){if(Sx.current=!0,!!Vu)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Lf.current=e.matches;e.addListener(t),t()}else Lf.current=!1}function nI(e,t,r){const{willChange:n}=t;for(const o in t){const i=t[o],a=r[o];if(ht(i))e.addValue(o,i),Zl(n)&&n.add(o);else if(ht(a))e.addValue(o,Jo(i,{owner:e})),Zl(n)&&n.remove(o);else if(a!==i)if(e.hasValue(o)){const s=e.getValue(o);!s.hasAnimated&&s.set(i)}else{const s=e.getStaticValue(o);e.addValue(o,Jo(s!==void 0?s:i,{owner:e}))}}for(const o in r)t[o]===void 0&&e.removeValue(o);return t}const P0=new WeakMap,xx=Object.keys(Ea),oI=xx.length,T0=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],iI=hp.length;class aI{constructor({parent:t,props:r,presenceContext:n,reducedMotionConfig:o,visualState:i},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=()=>se.render(this.render,!1,!0);const{latestValues:s,renderState:l}=i;this.latestValues=s,this.baseTarget={...s},this.initialValues=r.initial?{...s}:{},this.renderState=l,this.parent=t,this.props=r,this.presenceContext=n,this.depth=t?t.depth+1:0,this.reducedMotionConfig=o,this.options=a,this.isControllingVariants=Uu(r),this.isVariantNode=oS(r),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:u,...c}=this.scrapeMotionValuesFromProps(r,{});for(const d in c){const f=c[d];s[d]!==void 0&&ht(f)&&(f.set(s[d],!1),Zl(u)&&u.add(d))}}scrapeMotionValuesFromProps(t,r){return{}}mount(t){this.current=t,P0.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((r,n)=>this.bindToMotionValue(n,r)),Sx.current||rI(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Lf.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){P0.delete(this.current),this.projection&&this.projection.unmount(),Ir(this.notifyUpdate),Ir(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,r){const n=Xn.has(t),o=r.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&se.update(this.notifyUpdate,!1,!0),n&&this.projection&&(this.projection.isTransformDirty=!0)}),i=r.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{o(),i()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...r},n,o,i){let a,s;for(let l=0;lthis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:i,layoutScroll:f,layoutRoot:p})}return s}updateFeatures(){for(const t in this.features){const r=this.features[t];r.isMounted?r.update():(r.mount(),r.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Te()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,r){this.latestValues[t]=r}makeTargetAnimatable(t,r=!0){return this.makeTargetAnimatableFromInstance(t,this.props,r)}update(t,r){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=r;for(let n=0;nr.variantChildren.delete(t)}addValue(t,r){r!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,r)),this.values.set(t,r),this.latestValues[t]=r.get()}removeValue(t){this.values.delete(t);const r=this.valueSubscriptions.get(t);r&&(r(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,r){if(this.props.values&&this.props.values[t])return this.props.values[t];let n=this.values.get(t);return n===void 0&&r!==void 0&&(n=Jo(r,{owner:this}),this.addValue(t,n)),n}readValue(t){var r;return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,r){this.baseTarget[t]=r}getBaseTarget(t){var r;const{initial:n}=this.props,o=typeof n=="string"||typeof n=="object"?(r=xp(this.props,n))===null||r===void 0?void 0:r[t]:void 0;if(n&&o!==void 0)return o;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!ht(i)?i:this.initialValues[t]!==void 0&&o===void 0?void 0:this.baseTarget[t]}on(t,r){return this.events[t]||(this.events[t]=new Rp),this.events[t].add(r)}notify(t,...r){this.events[t]&&this.events[t].notify(...r)}}class wx extends aI{sortInstanceNodePosition(t,r){return t.compareDocumentPosition(r)&2?1:-1}getBaseTargetFromProps(t,r){return t.style?t.style[r]:void 0}removeValueFromRenderState(t,{vars:r,style:n}){delete r[t],delete n[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:r,...n},{transformValues:o},i){let a=kF(n,t||{},this);if(o&&(r&&(r=o(r)),n&&(n=o(n)),a&&(a=o(a))),i){xF(this,n,a);const s=tI(this,n,a,r);r=s.transitionEnd,n=s.target}return{transition:t,transitionEnd:r,...n}}}function sI(e){return window.getComputedStyle(e)}class lI extends wx{readValueFromInstance(t,r){if(Xn.has(r)){const n=Pp(r);return n&&n.default||0}else{const n=sI(t),o=(lS(r)?n.getPropertyValue(r):n[r])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:r}){return lx(t,r)}build(t,r,n,o){vp(t,r,n,o.transformTemplate)}scrapeMotionValuesFromProps(t,r){return Sp(t,r)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;ht(t)&&(this.childSubscription=t.on("change",r=>{this.current&&(this.current.textContent=`${r}`)}))}renderInstance(t,r,n,o){pS(t,r,n,o)}}class uI extends wx{constructor(){super(...arguments),this.isSVGTag=!1}getBaseTargetFromProps(t,r){return t[r]}readValueFromInstance(t,r){if(Xn.has(r)){const n=Pp(r);return n&&n.default||0}return r=mS.has(r)?r:dp(r),t.getAttribute(r)}measureInstanceViewportBox(){return Te()}scrapeMotionValuesFromProps(t,r){return gS(t,r)}build(t,r,n,o){yp(t,r,n,this.isSVGTag,o.transformTemplate)}renderInstance(t,r,n,o){vS(t,r,n,o)}mount(t){this.isSVGTag=bp(t.tagName),super.mount(t)}}const cI=(e,t)=>mp(e)?new uI(t,{enableHardwareAcceleration:!1}):new lI(t,{enableHardwareAcceleration:!0}),dI={layout:{ProjectionNode:yx,MeasureLayout:dx}},fI={...LF,...i4,...WD,...dI},ii=p3((e,t)=>G3(e,t,fI,cI));function kx(){const e=S.useRef(!1);return cp(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function hI(){const e=kx(),[t,r]=S.useState(0),n=S.useCallback(()=>{e.current&&r(t+1)},[t]);return[S.useCallback(()=>se.postRender(n),[n]),t]}class pI extends S.Component{getSnapshotBeforeUpdate(t){const r=this.props.childRef.current;if(r&&t.isPresent&&!this.props.isPresent){const n=this.props.sizeRef.current;n.height=r.offsetHeight||0,n.width=r.offsetWidth||0,n.top=r.offsetTop,n.left=r.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function mI({children:e,isPresent:t}){const r=S.useId(),n=S.useRef(null),o=S.useRef({width:0,height:0,top:0,left:0});return S.useInsertionEffect(()=>{const{width:i,height:a,top:s,left:l}=o.current;if(t||!n.current||!i||!a)return;n.current.dataset.motionPopId=r;const u=document.createElement("style");return document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` - [data-motion-pop-id="${r}"] { - position: absolute !important; - width: ${i}px !important; - height: ${a}px !important; - top: ${s}px !important; - left: ${l}px !important; - } - `),()=>{document.head.removeChild(u)}},[t]),S.createElement(pI,{isPresent:t,childRef:n,sizeRef:o},S.cloneElement(e,{ref:n}))}const cd=({children:e,initial:t,isPresent:r,onExitComplete:n,custom:o,presenceAffectsLayout:i,mode:a})=>{const s=yS(vI),l=S.useId(),u=S.useMemo(()=>({id:l,initial:t,isPresent:r,custom:o,onExitComplete:c=>{s.set(c,!0);for(const d of s.values())if(!d)return;n&&n()},register:c=>(s.set(c,!1),()=>s.delete(c))}),i?void 0:[r]);return S.useMemo(()=>{s.forEach((c,d)=>s.set(d,!1))},[r]),S.useEffect(()=>{!r&&!s.size&&n&&n()},[r]),a==="popLayout"&&(e=S.createElement(mI,{isPresent:r},e)),S.createElement(Va.Provider,{value:u},e)};function vI(){return new Map}function gI(e){return S.useEffect(()=>()=>e(),[])}const _n=e=>e.key||"";function yI(e,t){e.forEach(r=>{const n=_n(r);t.set(n,r)})}function bI(e){const t=[];return S.Children.forEach(e,r=>{S.isValidElement(r)&&t.push(r)}),t}const Ka=({children:e,custom:t,initial:r=!0,onExitComplete:n,exitBeforeEnter:o,presenceAffectsLayout:i=!0,mode:a="sync"})=>{const s=S.useContext(pp).forceRender||hI()[0],l=kx(),u=bI(e);let c=u;const d=S.useRef(new Map).current,f=S.useRef(c),p=S.useRef(new Map).current,g=S.useRef(!0);if(cp(()=>{g.current=!1,yI(u,p),f.current=c}),gI(()=>{g.current=!0,p.clear(),d.clear()}),g.current)return S.createElement(S.Fragment,null,c.map(h=>S.createElement(cd,{key:_n(h),isPresent:!0,initial:r?void 0:!1,presenceAffectsLayout:i,mode:a},h)));c=[...c];const y=f.current.map(_n),k=u.map(_n),m=y.length;for(let h=0;h{if(k.indexOf(v)!==-1)return;const C=p.get(v);if(!C)return;const _=y.indexOf(v);let $=h;if(!$){const T=()=>{d.delete(v);const A=Array.from(p.keys()).filter(M=>!k.includes(M));if(A.forEach(M=>p.delete(M)),f.current=u.filter(M=>{const I=_n(M);return I===v||A.includes(I)}),!d.size){if(l.current===!1)return;s(),n&&n()}};$=S.createElement(cd,{key:_n(C),isPresent:!1,onExitComplete:T,custom:t,presenceAffectsLayout:i,mode:a},C),d.set(v,$)}c.splice(_,0,$)}),c=c.map(h=>{const v=h.key;return d.has(v)?h:S.createElement(cd,{key:_n(h),isPresent:!0,presenceAffectsLayout:i,mode:a},h)}),S.createElement(S.Fragment,null,d.size?c:c.map(h=>S.cloneElement(h)))};var SI={initial:e=>{const{position:t}=e,r=["top","bottom"].includes(t)?"y":"x";let n=["top-right","bottom-right"].includes(t)?1:-1;return t==="bottom"&&(n=1),{opacity:0,[r]:n*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]}}},Cx=S.memo(e=>{const{id:t,message:r,onCloseComplete:n,onRequestRemove:o,requestClose:i=!1,position:a="bottom",duration:s=5e3,containerStyle:l,motionVariants:u=SI,toastSpacing:c="0.5rem"}=e,[d,f]=S.useState(s),p=iD();kg(()=>{p||n==null||n()},[p]),kg(()=>{f(s)},[s]);const g=()=>f(null),y=()=>f(s),k=()=>{p&&o()};S.useEffect(()=>{p&&i&&o()},[p,i,o]),o3(k,d);const m=S.useMemo(()=>({pointerEvents:"auto",maxWidth:560,minWidth:300,margin:c,...l}),[l,c]),h=S.useMemo(()=>t3(a),[a]);return E.jsx(ii.div,{layout:!0,className:"chakra-toast",variants:u,initial:"initial",animate:"animate",exit:"exit",onHoverStart:g,onHoverEnd:y,custom:{position:a},style:h,children:E.jsx(_e.div,{role:"status","aria-atomic":"true",className:"chakra-toast__inner",__css:m,children:ar(r,{id:t,onClose:k})})})});Cx.displayName="ToastComponent";function xI(e,t){var r;const n=e??"bottom",i={"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"}}[n];return(r=i==null?void 0:i[t])!=null?r:n}var E0={path:E.jsxs("g",{stroke:"currentColor",strokeWidth:"1.5",children:[E.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"}),E.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"}),E.jsx("circle",{fill:"none",strokeMiterlimit:"10",cx:"12",cy:"12",r:"11.25"})]}),viewBox:"0 0 24 24"},Ya=pt((e,t)=>{const{as:r,viewBox:n,color:o="currentColor",focusable:i=!1,children:a,className:s,__css:l,...u}=e,c=Be("chakra-icon",s),d=ju("Icon",e),f={w:"1em",h:"1em",display:"inline-block",lineHeight:"1em",flexShrink:0,color:o,...l,...d},p={ref:t,focusable:i,className:c,__css:f},g=n??E0.viewBox;if(r&&typeof r!="string")return E.jsx(_e.svg,{as:r,...p,...u});const y=a??E0.path;return E.jsx(_e.svg,{verticalAlign:"middle",viewBox:g,...p,...u,children:y})});Ya.displayName="Icon";function wI(e){return E.jsx(Ya,{viewBox:"0 0 24 24",...e,children:E.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 kI(e){return E.jsx(Ya,{viewBox:"0 0 24 24",...e,children:E.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 $0(e){return E.jsx(Ya,{viewBox:"0 0 24 24",...e,children:E.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 CI=bP({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mp=pt((e,t)=>{const r=ju("Spinner",e),{label:n="Loading...",thickness:o="2px",speed:i="0.45s",emptyColor:a="transparent",className:s,...l}=Lu(e),u=Be("chakra-spinner",s),c={display:"inline-block",borderColor:"currentColor",borderStyle:"solid",borderRadius:"99999px",borderWidth:o,borderBottomColor:a,borderLeftColor:a,animation:`${CI} ${i} linear infinite`,...r};return E.jsx(_e.div,{ref:t,__css:c,className:u,...l,children:n&&E.jsx(_e.span,{srOnly:!0,children:n})})});Mp.displayName="Spinner";var[_I,zp]=mn({name:"AlertContext",hookName:"useAlertContext",providerName:""}),[PI,Fp]=mn({name:"AlertStylesContext",hookName:"useAlertStyles",providerName:""}),_x={info:{icon:kI,colorScheme:"blue"},warning:{icon:$0,colorScheme:"orange"},success:{icon:wI,colorScheme:"green"},error:{icon:$0,colorScheme:"red"},loading:{icon:Mp,colorScheme:"blue"}};function TI(e){return _x[e].colorScheme}function EI(e){return _x[e].icon}var Px=pt(function(t,r){const n=Fp(),{status:o}=zp(),i={display:"inline",...n.description};return E.jsx(_e.div,{ref:r,"data-status":o,...t,className:Be("chakra-alert__desc",t.className),__css:i})});Px.displayName="AlertDescription";function Tx(e){const{status:t}=zp(),r=EI(t),n=Fp(),o=t==="loading"?n.spinner:n.icon;return E.jsx(_e.span,{display:"inherit","data-status":t,...e,className:Be("chakra-alert__icon",e.className),__css:o,children:e.children||E.jsx(r,{h:"100%",w:"100%"})})}Tx.displayName="AlertIcon";var Ex=pt(function(t,r){const n=Fp(),{status:o}=zp();return E.jsx(_e.div,{ref:r,"data-status":o,...t,className:Be("chakra-alert__title",t.className),__css:n.title})});Ex.displayName="AlertTitle";var $x=pt(function(t,r){var n;const{status:o="info",addRole:i=!0,...a}=Lu(t),s=(n=t.colorScheme)!=null?n:TI(o),l=qb("Alert",{...t,colorScheme:s}),u={width:"100%",display:"flex",alignItems:"center",position:"relative",overflow:"hidden",...l.container};return E.jsx(_I,{value:{status:o},children:E.jsx(PI,{value:l,children:E.jsx(_e.div,{"data-status":o,role:i?"alert":void 0,ref:r,...a,className:Be("chakra-alert",t.className),__css:u})})})});$x.displayName="Alert";function $I(e){return E.jsx(Ya,{focusable:"false","aria-hidden":!0,...e,children:E.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 Dp=pt(function(t,r){const n=ju("CloseButton",t),{children:o,isDisabled:i,__css:a,...s}=Lu(t),l={outline:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};return E.jsx(_e.button,{type:"button","aria-label":"Close",ref:r,disabled:i,__css:{...l,...n,...a},...s,children:o||E.jsx($I,{width:"1em",height:"1em"})})});Dp.displayName="CloseButton";var AI={top:[],"top-left":[],"top-right":[],"bottom-left":[],bottom:[],"bottom-right":[]},or=RI(AI);function RI(e){let t=e;const r=new Set,n=o=>{t=o(t),r.forEach(i=>i())};return{getState:()=>t,subscribe:o=>(r.add(o),()=>{n(()=>e),r.delete(o)}),removeToast:(o,i)=>{n(a=>({...a,[i]:a[i].filter(s=>s.id!=o)}))},notify:(o,i)=>{const a=MI(o,i),{position:s,id:l}=a;return n(u=>{var c,d;const p=s.includes("top")?[a,...(c=u[s])!=null?c:[]]:[...(d=u[s])!=null?d:[],a];return{...u,[s]:p}}),l},update:(o,i)=>{o&&n(a=>{const s={...a},{position:l,index:u}=wg(s,o);return l&&u!==-1&&(s[l][u]={...s[l][u],...i,message:Ax(i)}),s})},closeAll:({positions:o}={})=>{n(i=>(o??["bottom","bottom-right","bottom-left","top","top-left","top-right"]).reduce((l,u)=>(l[u]=i[u].map(c=>({...c,requestClose:!0})),l),{...i}))},close:o=>{n(i=>{const a=eS(i,o);return a?{...i,[a]:i[a].map(s=>s.id==o?{...s,requestClose:!0}:s)}:i})},isActive:o=>!!wg(or.getState(),o).position}}var A0=0;function MI(e,t={}){var r,n;A0+=1;const o=(r=t.id)!=null?r:A0,i=(n=t.position)!=null?n:"bottom";return{id:o,message:e,position:i,duration:t.duration,onCloseComplete:t.onCloseComplete,onRequestRemove:()=>or.removeToast(String(o),i),status:t.status,requestClose:!1,containerStyle:t.containerStyle}}var zI=e=>{const{status:t,variant:r="solid",id:n,title:o,isClosable:i,onClose:a,description:s,colorScheme:l,icon:u}=e,c=n?{root:`toast-${n}`,title:`toast-${n}-title`,description:`toast-${n}-description`}:void 0;return E.jsxs($x,{addRole:!1,status:t,variant:r,id:c==null?void 0:c.root,alignItems:"start",borderRadius:"md",boxShadow:"lg",paddingEnd:8,textAlign:"start",width:"auto",colorScheme:l,children:[E.jsx(Tx,{children:u}),E.jsxs(_e.div,{flex:"1",maxWidth:"100%",children:[o&&E.jsx(Ex,{id:c==null?void 0:c.title,children:o}),s&&E.jsx(Px,{id:c==null?void 0:c.description,display:"block",children:s})]}),i&&E.jsx(Dp,{size:"sm",onClick:a,position:"absolute",insetEnd:1,top:1})]})};function Ax(e={}){const{render:t,toastComponent:r=zI}=e;return o=>typeof t=="function"?t({...o,...e}):E.jsx(r,{...o,...e})}function xB(e,t){const r=o=>{var i;return{...t,...o,position:xI((i=o==null?void 0:o.position)!=null?i:t==null?void 0:t.position,e)}},n=o=>{const i=r(o),a=Ax(i);return or.notify(a,i)};return n.update=(o,i)=>{or.update(o,r(i))},n.promise=(o,i)=>{const a=n({...i.loading,status:"loading",duration:null});o.then(s=>n.update(a,{status:"success",duration:5e3,...ar(i.success,s)})).catch(s=>n.update(a,{status:"error",duration:5e3,...ar(i.error,s)}))},n.closeAll=or.closeAll,n.close=or.close,n.isActive=or.isActive,n}var[FI,wB]=mn({name:"ToastOptionsContext",strict:!1}),DI=e=>{const t=S.useSyncExternalStore(or.subscribe,or.getState,or.getState),{motionVariants:r,component:n=Cx,portalProps:o}=e,a=Object.keys(t).map(s=>{const l=t[s];return E.jsx("div",{role:"region","aria-live":"polite","aria-label":`Notifications-${s}`,id:`chakra-toast-manager-${s}`,style:r3(s),children:E.jsx(Ka,{initial:!1,children:l.map(u=>E.jsx(n,{motionVariants:r,...u},u.id))})},s)});return E.jsx(ja,{...o,children:a})},II=e=>function({children:r,theme:n=e,toastOptions:o,...i}){return E.jsxs(Jz,{theme:n,...i,children:[E.jsx(FI,{value:o==null?void 0:o.defaultOptions,children:r}),E.jsx(DI,{...o})]})},LI=II(_z);function OI(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 Of(...e){return t=>{e.forEach(r=>{OI(r,t)})}}function BI(...e){return S.useMemo(()=>Of(...e),e)}var R0={ease:[.25,.1,.25,1],easeIn:[.4,0,1,1],easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1]},On={enter:{duration:.2,ease:R0.easeOut},exit:{duration:.1,ease:R0.easeIn}},Bn={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})},jI={enter:({transition:e,transitionEnd:t,delay:r}={})=>{var n;return{opacity:1,transition:(n=e==null?void 0:e.enter)!=null?n:Bn.enter(On.enter,r),transitionEnd:t==null?void 0:t.enter}},exit:({transition:e,transitionEnd:t,delay:r}={})=>{var n;return{opacity:0,transition:(n=e==null?void 0:e.exit)!=null?n:Bn.exit(On.exit,r),transitionEnd:t==null?void 0:t.exit}}},Rx={initial:"exit",animate:"enter",exit:"exit",variants:jI},NI=S.forwardRef(function(t,r){const{unmountOnExit:n,in:o,className:i,transition:a,transitionEnd:s,delay:l,...u}=t,c=o||n?"enter":"exit",d=n?o&&n:!0,f={transition:a,transitionEnd:s,delay:l};return E.jsx(Ka,{custom:f,children:d&&E.jsx(ii.div,{ref:r,className:Be("chakra-fade",i),custom:f,...Rx,animate:c,...u})})});NI.displayName="Fade";var VI={exit:({reverse:e,initialScale:t,transition:r,transitionEnd:n,delay:o})=>{var i;return{opacity:0,...e?{scale:t,transitionEnd:n==null?void 0:n.exit}:{transitionEnd:{scale:t,...n==null?void 0:n.exit}},transition:(i=r==null?void 0:r.exit)!=null?i:Bn.exit(On.exit,o)}},enter:({transitionEnd:e,transition:t,delay:r})=>{var n;return{opacity:1,scale:1,transition:(n=t==null?void 0:t.enter)!=null?n:Bn.enter(On.enter,r),transitionEnd:e==null?void 0:e.enter}}},Mx={initial:"exit",animate:"enter",exit:"exit",variants:VI},WI=S.forwardRef(function(t,r){const{unmountOnExit:n,in:o,reverse:i=!0,initialScale:a=.95,className:s,transition:l,transitionEnd:u,delay:c,...d}=t,f=n?o&&n:!0,p=o||n?"enter":"exit",g={initialScale:a,reverse:i,transition:l,transitionEnd:u,delay:c};return E.jsx(Ka,{custom:g,children:f&&E.jsx(ii.div,{ref:r,className:Be("chakra-offset-slide",s),...Mx,animate:p,custom:g,...d})})});WI.displayName="ScaleFade";var UI={initial:({offsetX:e,offsetY:t,transition:r,transitionEnd:n,delay:o})=>{var i;return{opacity:0,x:e,y:t,transition:(i=r==null?void 0:r.exit)!=null?i:Bn.exit(On.exit,o),transitionEnd:n==null?void 0:n.exit}},enter:({transition:e,transitionEnd:t,delay:r})=>{var n;return{opacity:1,x:0,y:0,transition:(n=e==null?void 0:e.enter)!=null?n:Bn.enter(On.enter,r),transitionEnd:t==null?void 0:t.enter}},exit:({offsetY:e,offsetX:t,transition:r,transitionEnd:n,reverse:o,delay:i})=>{var a;const s={x:t,y:e};return{opacity:0,transition:(a=r==null?void 0:r.exit)!=null?a:Bn.exit(On.exit,i),...o?{...s,transitionEnd:n==null?void 0:n.exit}:{transitionEnd:{...s,...n==null?void 0:n.exit}}}}},Ii={initial:"initial",animate:"enter",exit:"exit",variants:UI},HI=S.forwardRef(function(t,r){const{unmountOnExit:n,in:o,reverse:i=!0,className:a,offsetX:s=0,offsetY:l=8,transition:u,transitionEnd:c,delay:d,...f}=t,p=n?o&&n:!0,g=o||n?"enter":"exit",y={offsetX:s,offsetY:l,reverse:i,transition:u,transitionEnd:c,delay:d};return E.jsx(Ka,{custom:y,children:p&&E.jsx(ii.div,{ref:r,className:Be("chakra-offset-slide",a),custom:y,...Ii,animate:g,...f})})});HI.displayName="SlideFade";var[kB,GI]=mn({strict:!1,name:"ButtonGroupContext"});function KI(e){const[t,r]=S.useState(!e);return{ref:S.useCallback(i=>{i&&r(i.tagName==="BUTTON")},[]),type:t?"button":void 0}}function Bf(e){const{children:t,className:r,...n}=e,o=S.isValidElement(t)?S.cloneElement(t,{"aria-hidden":!0,focusable:!1}):t,i=Be("chakra-button__icon",r);return E.jsx(_e.span,{display:"inline-flex",alignSelf:"center",flexShrink:0,...n,className:i,children:o})}Bf.displayName="ButtonIcon";function jf(e){const{label:t,placement:r,spacing:n="0.5rem",children:o=E.jsx(Mp,{color:"currentColor",width:"1em",height:"1em"}),className:i,__css:a,...s}=e,l=Be("chakra-button__spinner",i),u=r==="start"?"marginEnd":"marginStart",c=S.useMemo(()=>({display:"flex",alignItems:"center",position:t?"relative":"absolute",[u]:t?n:0,fontSize:"1em",lineHeight:"normal",...a}),[a,t,u,n]);return E.jsx(_e.div,{className:l,...s,__css:c,children:o})}jf.displayName="ButtonSpinner";var zx=pt((e,t)=>{const r=GI(),n=ju("Button",{...r,...e}),{isDisabled:o=r==null?void 0:r.isDisabled,isLoading:i,isActive:a,children:s,leftIcon:l,rightIcon:u,loadingText:c,iconSpacing:d="0.5rem",type:f,spinner:p,spinnerPlacement:g="start",className:y,as:k,...m}=Lu(e),h=S.useMemo(()=>{const $={...n==null?void 0:n._focus,zIndex:1};return{display:"inline-flex",appearance:"none",alignItems:"center",justifyContent:"center",userSelect:"none",position:"relative",whiteSpace:"nowrap",verticalAlign:"middle",outline:"none",...n,...!!r&&{_focus:$}}},[n,r]),{ref:v,type:C}=KI(k),_={rightIcon:u,leftIcon:l,iconSpacing:d,children:s};return E.jsxs(_e.button,{ref:BI(t,v),as:k,type:f??C,"data-active":Av(a),"data-loading":Av(i),__css:h,className:Be("chakra-button",y),...m,disabled:o||i,children:[i&&g==="start"&&E.jsx(jf,{className:"chakra-button__spinner--start",label:c,placement:"start",spacing:d,children:p}),i?c||E.jsx(_e.span,{opacity:0,children:E.jsx(M0,{..._})}):E.jsx(M0,{..._}),i&&g==="end"&&E.jsx(jf,{className:"chakra-button__spinner--end",label:c,placement:"end",spacing:d,children:p})]})});zx.displayName="Button";function M0(e){const{leftIcon:t,rightIcon:r,children:n,iconSpacing:o}=e;return E.jsxs(E.Fragment,{children:[t&&E.jsx(Bf,{marginEnd:o,children:t}),n,r&&E.jsx(Bf,{marginStart:o,children:r})]})}function YI(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,i;for(i=0;i=0)&&(r[o]=e[o]);return r}var Nf="data-focus-lock",Fx="data-focus-lock-disabled",XI="data-no-focus-lock",QI="data-autofocus-inside",qI="data-no-autofocus";function ZI(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function JI(e,t){var r=S.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var o=r.value;o!==n&&(r.value=n,r.callback(n,o))}}}})[0];return r.callback=t,r.facade}function Dx(e,t){return JI(t||null,function(r){return e.forEach(function(n){return ZI(n,r)})})}var dd={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"},ir=function(){return ir=Object.assign||function(t){for(var r,n=1,o=arguments.length;n=0}).sort(gL)},yL=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],Bp=yL.join(","),bL="".concat(Bp,", [data-focus-guard]"),Jx=function(e,t){return pr((e.shadowRoot||e).children).reduce(function(r,n){return r.concat(n.matches(t?bL:Bp)?[n]:[],Jx(n))},[])},SL=function(e,t){var r;return e instanceof HTMLIFrameElement&&(!((r=e.contentDocument)===null||r===void 0)&&r.body)?Yu([e.contentDocument.body],t):[e]},Yu=function(e,t){return e.reduce(function(r,n){var o,i=Jx(n,t),a=(o=[]).concat.apply(o,i.map(function(s){return SL(s,t)}));return r.concat(a,n.parentNode?pr(n.parentNode.querySelectorAll(Bp)).filter(function(s){return s===n}):[])},[])},xL=function(e){var t=e.querySelectorAll("[".concat(QI,"]"));return pr(t).map(function(r){return Yu([r])}).reduce(function(r,n){return r.concat(n)},[])},jp=function(e,t){return pr(e).filter(function(r){return Kx(t,r)}).filter(function(r){return pL(r)})},z0=function(e,t){return t===void 0&&(t=new Map),pr(e).filter(function(r){return Yx(t,r)})},Wf=function(e,t,r){return Zx(jp(Yu(e,r),t),!0,r)},F0=function(e,t){return Zx(jp(Yu(e),t),!1)},wL=function(e,t){return jp(xL(e),t)},Bo=function(e,t){return e.shadowRoot?Bo(e.shadowRoot,t):Object.getPrototypeOf(e).contains!==void 0&&Object.getPrototypeOf(e).contains.call(e,t)?!0:pr(e.children).some(function(r){var n;if(r instanceof HTMLIFrameElement){var o=(n=r.contentDocument)===null||n===void 0?void 0:n.body;return o?Bo(o,t):!1}return Bo(r,t)})},kL=function(e){for(var t=new Set,r=e.length,n=0;n0&&t.add(o),(i&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(n)}return e.filter(function(a,s){return!t.has(s)})},ew=function(e){return e.parentNode?ew(e.parentNode):e},Np=function(e){var t=eu(e);return t.filter(Boolean).reduce(function(r,n){var o=n.getAttribute(Nf);return r.push.apply(r,o?kL(pr(ew(n).querySelectorAll("[".concat(Nf,'="').concat(o,'"]:not([').concat(Fx,'="disabled"])')))):[n]),r},[])},CL=function(e){try{return e()}catch{return}},Ra=function(e){if(e===void 0&&(e=document),!(!e||!e.activeElement)){var t=e.activeElement;return t.shadowRoot?Ra(t.shadowRoot):t instanceof HTMLIFrameElement&&CL(function(){return t.contentWindow.document})?Ra(t.contentWindow.document):t}},_L=function(e,t){return e===t},PL=function(e,t){return!!pr(e.querySelectorAll("iframe")).some(function(r){return _L(r,t)})},tw=function(e,t){return t===void 0&&(t=Ra(Ux(e).ownerDocument)),!t||t.dataset&&t.dataset.focusGuard?!1:Np(e).some(function(r){return Bo(r,t)||PL(r,t)})},TL=function(e){e===void 0&&(e=document);var t=Ra(e);return t?pr(e.querySelectorAll("[".concat(XI,"]"))).some(function(r){return Bo(r,t)}):!1},EL=function(e,t){return t.filter(qx).filter(function(r){return r.name===e.name}).filter(function(r){return r.checked})[0]||e},Vp=function(e,t){return qx(e)&&e.name?EL(e,t):e},$L=function(e){var t=new Set;return e.forEach(function(r){return t.add(Vp(r,e))}),e.filter(function(r){return t.has(r)})},D0=function(e){return e[0]&&e.length>1?Vp(e[0],e):e[0]},I0=function(e,t){return e.length>1?e.indexOf(Vp(e[t],e)):t},rw="NEW_FOCUS",AL=function(e,t,r,n){var o=e.length,i=e[0],a=e[o-1],s=Op(r);if(!(r&&e.indexOf(r)>=0)){var l=r!==void 0?t.indexOf(r):-1,u=n?t.indexOf(n):l,c=n?e.indexOf(n):-1,d=l-u,f=t.indexOf(i),p=t.indexOf(a),g=$L(t),y=r!==void 0?g.indexOf(r):-1,k=y-(n?g.indexOf(n):l),m=I0(e,0),h=I0(e,o-1);if(l===-1||c===-1)return rw;if(!d&&c>=0)return c;if(l<=f&&s&&Math.abs(d)>1)return h;if(l>=p&&s&&Math.abs(d)>1)return m;if(d&&Math.abs(k)>1)return c;if(l<=f)return h;if(l>p)return m;if(d)return Math.abs(d)>1?c:(o+c+d)%o}},RL=function(e){return function(t){var r,n=(r=Xx(t))===null||r===void 0?void 0:r.autofocus;return t.autofocus||n!==void 0&&n!=="false"||e.indexOf(t)>=0}},ML=function(e,t,r){var n=e.map(function(i){var a=i.node;return a}),o=z0(n.filter(RL(r)));return o&&o.length?D0(o):D0(z0(t))},Uf=function(e,t){return t===void 0&&(t=[]),t.push(e),e.parentNode&&Uf(e.parentNode.host||e.parentNode,t),t},fd=function(e,t){for(var r=Uf(e),n=Uf(t),o=0;o=0)return i}return!1},nw=function(e,t,r){var n=eu(e),o=eu(t),i=n[0],a=!1;return o.filter(Boolean).forEach(function(s){a=fd(a||s,s)||a,r.filter(Boolean).forEach(function(l){var u=fd(i,l);u&&(!a||Bo(u,a)?a=u:a=fd(u,a))})}),a},zL=function(e,t){return e.reduce(function(r,n){return r.concat(wL(n,t))},[])},FL=function(e,t){var r=new Map;return t.forEach(function(n){return r.set(n.node,n)}),e.map(function(n){return r.get(n)}).filter(vL)},DL=function(e,t){var r=Ra(eu(e).length>0?document:Ux(e).ownerDocument),n=Np(e).filter(tu),o=nw(r||e,e,n),i=new Map,a=F0(n,i),s=Wf(n,i).filter(function(p){var g=p.node;return tu(g)});if(!(!s[0]&&(s=a,!s[0]))){var l=F0([o],i).map(function(p){var g=p.node;return g}),u=FL(l,s),c=u.map(function(p){var g=p.node;return g}),d=AL(c,l,r,t);if(d===rw){var f=ML(a,c,zL(n,i));if(f)return{node:f};console.warn("focus-lock: cannot find any node to move focus into");return}return d===void 0?d:u[d]}},IL=function(e){var t=Np(e).filter(tu),r=nw(e,e,t),n=new Map,o=Wf([r],n,!0),i=Wf(t,n).filter(function(a){var s=a.node;return tu(s)}).map(function(a){var s=a.node;return s});return o.map(function(a){var s=a.node,l=a.index;return{node:s,index:l,lockItem:i.indexOf(s)>=0,guard:Op(s)}})},LL=function(e,t){"focus"in e&&e.focus(t),"contentWindow"in e&&e.contentWindow&&e.contentWindow.focus()},hd=0,pd=!1,ow=function(e,t,r){r===void 0&&(r={});var n=DL(e,t);if(!pd&&n){if(hd>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),pd=!0,setTimeout(function(){pd=!1},1);return}hd++,LL(n.node,r.focusOptions),hd--}};function Wp(e){setTimeout(e,1)}var OL=function(){return document&&document.activeElement===document.body},BL=function(){return OL()||TL()},jo=null,To=null,No=null,Ma=!1,jL=function(){return!0},NL=function(t){return(jo.whiteList||jL)(t)},VL=function(t,r){No={observerNode:t,portaledElement:r}},WL=function(t){return No&&No.portaledElement===t};function L0(e,t,r,n){var o=null,i=e;do{var a=n[i];if(a.guard)a.node.dataset.focusAutoGuard&&(o=a);else if(a.lockItem){if(i!==e)return;o=null}else break}while((i+=r)!==t);o&&(o.node.tabIndex=0)}var UL=function(t){return t&&"current"in t?t.current:t},HL=function(t){return t?!!Ma:Ma==="meanwhile"},GL=function e(t,r,n){return r&&(r.host===t&&(!r.activeElement||n.contains(r.activeElement))||r.parentNode&&e(t,r.parentNode,n))},KL=function(t,r){return r.some(function(n){return GL(t,n,n)})},ru=function(){var t=!1;if(jo){var r=jo,n=r.observed,o=r.persistentFocus,i=r.autoFocus,a=r.shards,s=r.crossFrame,l=r.focusOptions,u=n||No&&No.portaledElement,c=document&&document.activeElement;if(u){var d=[u].concat(a.map(UL).filter(Boolean));if((!c||NL(c))&&(o||HL(s)||!BL()||!To&&i)&&(u&&!(tw(d)||c&&KL(c,d)||WL(c))&&(document&&!To&&c&&!i?(c.blur&&c.blur(),document.body.focus()):(t=ow(d,To,{focusOptions:l}),No={})),Ma=!1,To=document&&document.activeElement),document){var f=document&&document.activeElement,p=IL(d),g=p.map(function(y){var k=y.node;return k}).indexOf(f);g>-1&&(p.filter(function(y){var k=y.guard,m=y.node;return k&&m.dataset.focusAutoGuard}).forEach(function(y){var k=y.node;return k.removeAttribute("tabIndex")}),L0(g,p.length,1,p),L0(g,-1,-1,p))}}}return t},iw=function(t){ru()&&t&&(t.stopPropagation(),t.preventDefault())},Up=function(){return Wp(ru)},YL=function(t){var r=t.target,n=t.currentTarget;n.contains(r)||VL(n,r)},XL=function(){return null},aw=function(){Ma="just",Wp(function(){Ma="meanwhile"})},QL=function(){document.addEventListener("focusin",iw),document.addEventListener("focusout",Up),window.addEventListener("blur",aw)},qL=function(){document.removeEventListener("focusin",iw),document.removeEventListener("focusout",Up),window.removeEventListener("blur",aw)};function ZL(e){return e.filter(function(t){var r=t.disabled;return!r})}function JL(e){var t=e.slice(-1)[0];t&&!jo&&QL();var r=jo,n=r&&t&&t.id===r.id;jo=t,r&&!n&&(r.onDeactivation(),e.filter(function(o){var i=o.id;return i===r.id}).length||r.returnFocus(!t)),t?(To=null,(!n||r.observed!==t.observed)&&t.onActivation(),ru(),Wp(ru)):(qL(),To=null)}Nx.assignSyncMedium(YL);Vx.assignMedium(Up);rL.assignMedium(function(e){return e({moveFocusInside:ow,focusInside:tw})});const eO=uL(ZL,JL)(XL);var sw=S.forwardRef(function(t,r){return S.createElement(Wx,Hn({sideCar:eO,ref:r},t))}),lw=Wx.propTypes||{};lw.sideCar;YI(lw,["sideCar"]);sw.propTypes={};const O0=sw;function uw(e){return e!=null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function cw(e){var t;if(!uw(e))return!1;const r=(t=e.ownerDocument.defaultView)!=null?t:window;return e instanceof r.HTMLElement}function CB(e){var t,r;return(r=(t=dw(e))==null?void 0:t.defaultView)!=null?r:window}function dw(e){return uw(e)?e.ownerDocument:document}function _B(e){return dw(e).activeElement}var fw=e=>e.hasAttribute("tabindex"),tO=e=>fw(e)&&e.tabIndex===-1;function rO(e){return!!e.getAttribute("disabled")||!!e.getAttribute("aria-disabled")}function hw(e){return e.parentElement&&hw(e.parentElement)?!0:e.hidden}function nO(e){const t=e.getAttribute("contenteditable");return t!=="false"&&t!=null}function pw(e){if(!cw(e)||hw(e)||rO(e))return!1;const{localName:t}=e;if(["input","select","textarea","button"].indexOf(t)>=0)return!0;const n={a:()=>e.hasAttribute("href"),audio:()=>e.hasAttribute("controls"),video:()=>e.hasAttribute("controls")};return t in n?n[t]():nO(e)?!0:fw(e)}function PB(e){return e?cw(e)&&pw(e)&&!tO(e):!1}var oO=["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]"],iO=oO.join(),aO=e=>e.offsetWidth>0&&e.offsetHeight>0;function sO(e){const t=Array.from(e.querySelectorAll(iO));return t.unshift(e),t.filter(r=>pw(r)&&aO(r))}var B0,lO=(B0=O0.default)!=null?B0:O0,mw=e=>{const{initialFocusRef:t,finalFocusRef:r,contentRef:n,restoreFocus:o,children:i,isDisabled:a,autoFocus:s,persistentFocus:l,lockFocusAcrossFrames:u}=e,c=S.useCallback(()=>{t!=null&&t.current?t.current.focus():n!=null&&n.current&&sO(n.current).length===0&&requestAnimationFrame(()=>{var g;(g=n.current)==null||g.focus()})},[t,n]),d=S.useCallback(()=>{var p;(p=r==null?void 0:r.current)==null||p.focus()},[r]),f=o&&!r;return E.jsx(lO,{crossFrame:u,persistentFocus:l,autoFocus:s,disabled:a,onActivation:c,onDeactivation:d,returnFocus:f,children:i})};mw.displayName="FocusLock";var uO={slideInBottom:{...Ii,custom:{offsetY:16,reverse:!0}},slideInRight:{...Ii,custom:{offsetX:16,reverse:!0}},slideInTop:{...Ii,custom:{offsetY:-16,reverse:!0}},slideInLeft:{...Ii,custom:{offsetX:-16,reverse:!0}},scale:{...Mx,custom:{initialScale:.95,reverse:!0}},none:{}},cO=_e(ii.section),dO=e=>uO[e||"none"],vw=S.forwardRef((e,t)=>{const{preset:r,motionProps:n=dO(r),...o}=e;return E.jsx(cO,{ref:t,...n,...o})});vw.displayName="ModalTransition";var fO=Object.defineProperty,hO=(e,t,r)=>t in e?fO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,pO=(e,t,r)=>(hO(e,typeof t!="symbol"?t+"":t,r),r),mO=class{constructor(){pO(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}},Hf=new mO;function gw(e,t){const[r,n]=S.useState(0);return S.useEffect(()=>{const o=e.current;if(o){if(t){const i=Hf.add(o);n(i)}return()=>{Hf.remove(o),n(0)}}},[t,e]),r}var vO=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},to=new WeakMap,Ds=new WeakMap,Is={},md=0,yw=function(e){return e&&(e.host||yw(e.parentNode))},gO=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=yw(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},yO=function(e,t,r,n){var o=gO(t,Array.isArray(e)?e:[e]);Is[r]||(Is[r]=new WeakMap);var i=Is[r],a=[],s=new Set,l=new Set(o),u=function(d){!d||s.has(d)||(s.add(d),u(d.parentNode))};o.forEach(u);var c=function(d){!d||l.has(d)||Array.prototype.forEach.call(d.children,function(f){if(s.has(f))c(f);else{var p=f.getAttribute(n),g=p!==null&&p!=="false",y=(to.get(f)||0)+1,k=(i.get(f)||0)+1;to.set(f,y),i.set(f,k),a.push(f),y===1&&g&&Ds.set(f,!0),k===1&&f.setAttribute(r,"true"),g||f.setAttribute(n,"true")}})};return c(t),s.clear(),md++,function(){a.forEach(function(d){var f=to.get(d)-1,p=i.get(d)-1;to.set(d,f),i.set(d,p),f||(Ds.has(d)||d.removeAttribute(n),Ds.delete(d)),p||d.removeAttribute(r)}),md--,md||(to=new WeakMap,to=new WeakMap,Ds=new WeakMap,Is={})}},bO=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),o=t||vO(e);return o?(n.push.apply(n,Array.from(o.querySelectorAll("[aria-live]"))),yO(n,o,r,"aria-hidden")):function(){return null}};function SO(e){const{isOpen:t,onClose:r,id:n,closeOnOverlayClick:o=!0,closeOnEsc:i=!0,useInert:a=!0,onOverlayClick:s,onEsc:l}=e,u=S.useRef(null),c=S.useRef(null),[d,f,p]=wO(n,"chakra-modal","chakra-modal--header","chakra-modal--body");xO(u,t&&a);const g=gw(u,t),y=S.useRef(null),k=S.useCallback(M=>{y.current=M.target},[]),m=S.useCallback(M=>{M.key==="Escape"&&(M.stopPropagation(),i&&(r==null||r()),l==null||l())},[i,r,l]),[h,v]=S.useState(!1),[C,_]=S.useState(!1),$=S.useCallback((M={},I=null)=>({role:"dialog",...M,ref:Of(I,u),id:d,tabIndex:-1,"aria-modal":!0,"aria-labelledby":h?f:void 0,"aria-describedby":C?p:void 0,onClick:$i(M.onClick,ee=>ee.stopPropagation())}),[p,C,d,f,h]),T=S.useCallback(M=>{M.stopPropagation(),y.current===M.target&&Hf.isTopModal(u.current)&&(o&&(r==null||r()),s==null||s())},[r,o,s]),A=S.useCallback((M={},I=null)=>({...M,ref:Of(I,c),onClick:$i(M.onClick,T),onKeyDown:$i(M.onKeyDown,m),onMouseDown:$i(M.onMouseDown,k)}),[m,k,T]);return{isOpen:t,onClose:r,headerId:f,bodyId:p,setBodyMounted:_,setHeaderMounted:v,dialogRef:u,overlayRef:c,getDialogProps:$,getDialogContainerProps:A,index:g}}function xO(e,t){const r=e.current;S.useEffect(()=>{if(!(!e.current||!t))return bO(e.current)},[t,e,r])}function wO(e,...t){const r=S.useId(),n=e||r;return S.useMemo(()=>t.map(o=>`${o}-${n}`),[n,t])}var[kO,ai]=mn({name:"ModalStylesContext",errorMessage:`useModalStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[CO,Gn]=mn({strict:!0,name:"ModalContext",errorMessage:"useModalContext: `context` is undefined. Seems you forgot to wrap modal components in ``"}),bw=e=>{const t={scrollBehavior:"outside",autoFocus:!0,trapFocus:!0,returnFocusOnClose:!0,blockScrollOnMount:!0,allowPinchZoom:!1,motionPreset:"scale",lockFocusAcrossFrames:!0,...e},{portalProps:r,children:n,autoFocus:o,trapFocus:i,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:c,preserveScrollBarGap:d,motionPreset:f,lockFocusAcrossFrames:p,onCloseComplete:g}=t,y=qb("Modal",t),m={...SO(t),autoFocus:o,trapFocus:i,initialFocusRef:a,finalFocusRef:s,returnFocusOnClose:l,blockScrollOnMount:u,allowPinchZoom:c,preserveScrollBarGap:d,motionPreset:f,lockFocusAcrossFrames:p};return E.jsx(CO,{value:m,children:E.jsx(kO,{value:y,children:E.jsx(Ka,{onExitComplete:g,children:m.isOpen&&E.jsx(ja,{...r,children:n})})})})};bw.displayName="Modal";var fl="right-scroll-bar-position",hl="width-before-scroll-bar",_O="with-scroll-bars-hidden",PO="--removed-body-scroll-bar-size",Sw=Bx(),vd=function(){},Xu=S.forwardRef(function(e,t){var r=S.useRef(null),n=S.useState({onScrollCapture:vd,onWheelCapture:vd,onTouchMoveCapture:vd}),o=n[0],i=n[1],a=e.forwardProps,s=e.children,l=e.className,u=e.removeScrollBar,c=e.enabled,d=e.shards,f=e.sideCar,p=e.noIsolation,g=e.inert,y=e.allowPinchZoom,k=e.as,m=k===void 0?"div":k,h=e.gapMode,v=Ix(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=f,_=Dx([r,t]),$=ir(ir({},v),o);return S.createElement(S.Fragment,null,c&&S.createElement(C,{sideCar:Sw,removeScrollBar:u,shards:d,noIsolation:p,inert:g,setCallbacks:i,allowPinchZoom:!!y,lockRef:r,gapMode:h}),a?S.cloneElement(S.Children.only(s),ir(ir({},$),{ref:_})):S.createElement(m,ir({},$,{className:l,ref:_}),s))});Xu.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Xu.classNames={fullWidth:hl,zeroRight:fl};var j0,TO=function(){if(j0)return j0;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function EO(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=TO();return t&&e.setAttribute("nonce",t),e}function $O(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function AO(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var RO=function(){var e=0,t=null;return{add:function(r){e==0&&(t=EO())&&($O(t,r),AO(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},MO=function(){var e=RO();return function(t,r){S.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},xw=function(){var e=MO(),t=function(r){var n=r.styles,o=r.dynamic;return e(n,o),null};return t},zO={left:0,top:0,right:0,gap:0},gd=function(e){return parseInt(e||"",10)||0},FO=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[gd(r),gd(n),gd(o)]},DO=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return zO;var t=FO(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},IO=xw(),LO=function(e,t,r,n){var o=e.left,i=e.top,a=e.right,s=e.gap;return r===void 0&&(r="margin"),` - .`.concat(_O,` { - overflow: hidden `).concat(n,`; - padding-right: `).concat(s,"px ").concat(n,`; - } - body { - overflow: hidden `).concat(n,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` - padding-left: `.concat(o,`px; - padding-top: `).concat(i,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(n,`; - `),r==="padding"&&"padding-right: ".concat(s,"px ").concat(n,";")].filter(Boolean).join(""),` - } - - .`).concat(fl,` { - right: `).concat(s,"px ").concat(n,`; - } - - .`).concat(hl,` { - margin-right: `).concat(s,"px ").concat(n,`; - } - - .`).concat(fl," .").concat(fl,` { - right: 0 `).concat(n,`; - } - - .`).concat(hl," .").concat(hl,` { - margin-right: 0 `).concat(n,`; - } - - body { - `).concat(PO,": ").concat(s,`px; - } -`)},OO=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,o=n===void 0?"margin":n,i=S.useMemo(function(){return DO(o)},[o]);return S.createElement(IO,{styles:LO(i,!t,o,r?"":"!important")})},Gf=!1;if(typeof window<"u")try{var Ls=Object.defineProperty({},"passive",{get:function(){return Gf=!0,!0}});window.addEventListener("test",Ls,Ls),window.removeEventListener("test",Ls,Ls)}catch{Gf=!1}var ro=Gf?{passive:!1}:!1,BO=function(e){return e.tagName==="TEXTAREA"},ww=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!BO(e)&&r[t]==="visible")},jO=function(e){return ww(e,"overflowY")},NO=function(e){return ww(e,"overflowX")},N0=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var o=kw(e,n);if(o){var i=Cw(e,n),a=i[1],s=i[2];if(a>s)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},VO=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},WO=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},kw=function(e,t){return e==="v"?jO(t):NO(t)},Cw=function(e,t){return e==="v"?VO(t):WO(t)},UO=function(e,t){return e==="h"&&t==="rtl"?-1:1},HO=function(e,t,r,n,o){var i=UO(e,window.getComputedStyle(t).direction),a=i*n,s=r.target,l=t.contains(s),u=!1,c=a>0,d=0,f=0;do{var p=Cw(e,s),g=p[0],y=p[1],k=p[2],m=y-k-i*g;(g||m)&&kw(e,s)&&(d+=m,f+=g),s instanceof ShadowRoot?s=s.host:s=s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(c&&(o&&Math.abs(d)<1||!o&&a>d)||!c&&(o&&Math.abs(f)<1||!o&&-a>f))&&(u=!0),u},Os=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},V0=function(e){return[e.deltaX,e.deltaY]},W0=function(e){return e&&"current"in e?e.current:e},GO=function(e,t){return e[0]===t[0]&&e[1]===t[1]},KO=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},YO=0,no=[];function XO(e){var t=S.useRef([]),r=S.useRef([0,0]),n=S.useRef(),o=S.useState(YO++)[0],i=S.useState(xw)[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(o));var y=eL([e.lockRef.current],(e.shards||[]).map(W0),!0).filter(Boolean);return y.forEach(function(k){return k.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),y.forEach(function(k){return k.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=S.useCallback(function(y,k){if("touches"in y&&y.touches.length===2)return!a.current.allowPinchZoom;var m=Os(y),h=r.current,v="deltaX"in y?y.deltaX:h[0]-m[0],C="deltaY"in y?y.deltaY:h[1]-m[1],_,$=y.target,T=Math.abs(v)>Math.abs(C)?"h":"v";if("touches"in y&&T==="h"&&$.type==="range")return!1;var A=N0(T,$);if(!A)return!0;if(A?_=T:(_=T==="v"?"h":"v",A=N0(T,$)),!A)return!1;if(!n.current&&"changedTouches"in y&&(v||C)&&(n.current=_),!_)return!0;var M=n.current||_;return HO(M,k,y,M==="h"?v:C,!0)},[]),l=S.useCallback(function(y){var k=y;if(!(!no.length||no[no.length-1]!==i)){var m="deltaY"in k?V0(k):Os(k),h=t.current.filter(function(_){return _.name===k.type&&(_.target===k.target||k.target===_.shadowParent)&&GO(_.delta,m)})[0];if(h&&h.should){k.cancelable&&k.preventDefault();return}if(!h){var v=(a.current.shards||[]).map(W0).filter(Boolean).filter(function(_){return _.contains(k.target)}),C=v.length>0?s(k,v[0]):!a.current.noIsolation;C&&k.cancelable&&k.preventDefault()}}},[]),u=S.useCallback(function(y,k,m,h){var v={name:y,delta:k,target:m,should:h,shadowParent:QO(m)};t.current.push(v),setTimeout(function(){t.current=t.current.filter(function(C){return C!==v})},1)},[]),c=S.useCallback(function(y){r.current=Os(y),n.current=void 0},[]),d=S.useCallback(function(y){u(y.type,V0(y),y.target,s(y,e.lockRef.current))},[]),f=S.useCallback(function(y){u(y.type,Os(y),y.target,s(y,e.lockRef.current))},[]);S.useEffect(function(){return no.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",l,ro),document.addEventListener("touchmove",l,ro),document.addEventListener("touchstart",c,ro),function(){no=no.filter(function(y){return y!==i}),document.removeEventListener("wheel",l,ro),document.removeEventListener("touchmove",l,ro),document.removeEventListener("touchstart",c,ro)}},[]);var p=e.removeScrollBar,g=e.inert;return S.createElement(S.Fragment,null,g?S.createElement(i,{styles:KO(o)}):null,p?S.createElement(OO,{gapMode:e.gapMode}):null)}function QO(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const qO=tL(Sw,XO);var _w=S.forwardRef(function(e,t){return S.createElement(Xu,ir({},e,{ref:t,sideCar:qO}))});_w.classNames=Xu.classNames;const ZO=_w;function JO(e){const{autoFocus:t,trapFocus:r,dialogRef:n,initialFocusRef:o,blockScrollOnMount:i,allowPinchZoom:a,finalFocusRef:s,returnFocusOnClose:l,preserveScrollBarGap:u,lockFocusAcrossFrames:c,isOpen:d}=Gn(),[f,p]=cx();S.useEffect(()=>{!f&&p&&setTimeout(p)},[f,p]);const g=gw(n,d);return E.jsx(mw,{autoFocus:t,isDisabled:!r,initialFocusRef:o,finalFocusRef:s,restoreFocus:l,contentRef:n,lockFocusAcrossFrames:c,children:E.jsx(ZO,{removeScrollBar:!u,allowPinchZoom:a,enabled:g===1&&i,forwardProps:!0,children:e.children})})}var Pw=pt((e,t)=>{const{className:r,children:n,containerProps:o,motionProps:i,...a}=e,{getDialogProps:s,getDialogContainerProps:l}=Gn(),u=s(a,t),c=l(o),d=Be("chakra-modal__content",r),f=ai(),p={display:"flex",flexDirection:"column",position:"relative",width:"100%",outline:0,...f.dialog},g={display:"flex",width:"100vw",height:"$100vh",position:"fixed",left:0,top:0,...f.dialogContainer},{motionPreset:y}=Gn();return E.jsx(JO,{children:E.jsx(_e.div,{...c,className:"chakra-modal__content-container",tabIndex:-1,__css:g,children:E.jsx(vw,{preset:y,motionProps:i,className:d,...u,__css:p,children:n})})})});Pw.displayName="ModalContent";function eB(e){const{leastDestructiveRef:t,...r}=e;return E.jsx(bw,{...r,initialFocusRef:t})}var tB=pt((e,t)=>E.jsx(Pw,{ref:t,role:"alertdialog",...e})),Tw=pt((e,t)=>{const{className:r,...n}=e,o=Be("chakra-modal__footer",r),a={display:"flex",alignItems:"center",justifyContent:"flex-end",...ai().footer};return E.jsx(_e.footer,{ref:t,...n,__css:a,className:o})});Tw.displayName="ModalFooter";var Ew=pt((e,t)=>{const{className:r,...n}=e,{headerId:o,setHeaderMounted:i}=Gn();S.useEffect(()=>(i(!0),()=>i(!1)),[i]);const a=Be("chakra-modal__header",r),l={flex:0,...ai().header};return E.jsx(_e.header,{ref:t,className:a,id:o,...n,__css:l})});Ew.displayName="ModalHeader";var rB=_e(ii.div),$w=pt((e,t)=>{const{className:r,transition:n,motionProps:o,...i}=e,a=Be("chakra-modal__overlay",r),l={pos:"fixed",left:"0",top:"0",w:"100vw",h:"100vh",...ai().overlay},{motionPreset:u}=Gn(),d=o||(u==="none"?{}:Rx);return E.jsx(rB,{...d,__css:l,ref:t,className:a,...i})});$w.displayName="ModalOverlay";var Aw=pt((e,t)=>{const{className:r,...n}=e,{bodyId:o,setBodyMounted:i}=Gn();S.useEffect(()=>(i(!0),()=>i(!1)),[i]);const a=Be("chakra-modal__body",r),s=ai();return E.jsx(_e.div,{ref:t,className:a,id:o,...n,__css:s.body})});Aw.displayName="ModalBody";var Rw=pt((e,t)=>{const{onClick:r,className:n,...o}=e,{onClose:i}=Gn(),a=Be("chakra-modal__close-btn",n),s=ai();return E.jsx(Dp,{ref:t,__css:s.closeButton,className:a,onClick:$i(r,l=>{l.stopPropagation(),i()}),...o})});Rw.displayName="ModalCloseButton";const Mw=S.createContext(void 0),TB=()=>{const e=S.useContext(Mw);if(!e)throw new Error("useDialog must be used within a DialogProvider");return e},nB=({children:e})=>{const[t,r]=S.useState(!1),[n,o]=S.useState(""),[i,a]=S.useState([]),[s,l]=S.useState(!1),u=Ar.useRef(null),c=S.useCallback((f,p,g=!1)=>{o(f),a(p),r(!0),l(g)},[]),d=S.useCallback(()=>{r(!1)},[]);return E.jsxs(Mw.Provider,{value:{showDialog:c},children:[e,t&&E.jsx(eB,{isOpen:t,leastDestructiveRef:u,onClose:d,size:"lg",children:E.jsx(_b,{children:E.jsx($w,{children:E.jsxs(tB,{className:"workspace_manager",children:[E.jsx(Ew,{fontSize:"lg",fontWeight:"bold"}),s?null:E.jsx(Rw,{}),E.jsx(Aw,{whiteSpace:"pre-wrap",children:n}),E.jsx(Tw,{children:i.map((f,p)=>E.jsx(zx,{colorScheme:f.colorScheme??"gray",onClick:()=>{f.onClick(),d()},iconSpacing:1,leftIcon:f.icon,ml:3,children:f.label},p))})]})})})})]})},zw=String.raw,oB=zw` - :root, - :host { - --chakra-vh: 100vh; - } - - @supports (height: -webkit-fill-available) { - :root, - :host { - --chakra-vh: -webkit-fill-available; - } - } - - @supports (height: -moz-fill-available) { - :root, - :host { - --chakra-vh: -moz-fill-available; - } - } - - @supports (height: 100dvh) { - :root, - :host { - --chakra-vh: 100dvh; - } - } -`,iB=({scope:e=""})=>E.jsx(Ba,{styles:zw` - ${e} { - font-family: var(--chakra-fonts-body); - color: var(--chakra-colors-chakra-body-text); - background: var(--chakra-colors-chakra-body-bg); - transition-property: background-color; - transition-duration: var(--chakra-transition-duration-normal); - line-height: var(--chakra-lineHeights-base); - } - ${e} *, ${e} ::before, ${e} ::after { - border-color: var(--chakra-colors-chakra-border-color); - } - - ${e} :where(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; - } - - ${e} :where(body) { - position: relative; - min-height: 100%; - margin: 0; - font-feature-settings: "kern"; - } - - ${e} :where(*, *::before, *::after) { - border-width: 0; - border-style: solid; - box-sizing: border-box; - word-wrap: break-word; - } - - ${e} :where(main) { - display: block; - } - - ${e} hr { - border-top-width: 1px; - box-sizing: content-box; - height: 0; - overflow: visible; - } - - ${e} :where(pre, code, kbd,samp) { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; - font-size: 1em; - } - - ${e} a { - background-color: transparent; - color: inherit; - text-decoration: inherit; - } - - ${e} abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - ${e} :where(b, strong) { - font-weight: bold; - } - - ${e} small { - font-size: 80%; - } - - ${e} :where(sub,sup) { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - ${e} sub { - bottom: -0.25em; - } - - ${e} :where(sup) { - top: -0.5em; - } - - ${e} :where(img) { - border-style: none; - } - - ${e} :where(button, input, optgroup, select, textarea) { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - } - - ${e} :where(button, input) { - overflow: visible; - } - - ${e} :where(button, select) { - text-transform: none; - } - - ${e} :where( - button::-moz-focus-inner, - [type="button"]::-moz-focus-inner, - [type="reset"]::-moz-focus-inner, - [type="submit"]::-moz-focus-inner - ) { - border-style: none; - padding: 0; - } - - ${e} fieldset { - padding: 0.35em 0.75em 0.625em; - } - - ${e} legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; - } - - ${e} progress { - vertical-align: baseline; - } - - ${e} textarea { - overflow: auto; - } - - ${e} :where([type="checkbox"], [type="radio"]) { - box-sizing: border-box; - padding: 0; - } - - ${e} input[type="number"]::-webkit-inner-spin-button, - ${e} input[type="number"]::-webkit-outer-spin-button { - -webkit-appearance: none !important; - } - - ${e} input[type="number"] { - -moz-appearance: textfield; - } - - ${e} input[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; - } - - ${e} input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none !important; - } - - ${e} ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; - } - - ${e} details { - display: block; - } - - ${e} summary { - display: list-item; - } - - ${e} template { - display: none; - } - - [hidden] { - display: none !important; - } - - ${e} :where( - blockquote, - dl, - dd, - h1, - h2, - h3, - h4, - h5, - h6, - hr, - figure, - p, - pre - ) { - margin: 0; - } - - ${e} :where(button) { - background: transparent; - padding: 0; - } - - ${e} fieldset { - margin: 0; - padding: 0; - } - - ${e} :where(ol, ul) { - margin: 0; - padding: 0; - } - - ${e} textarea { - resize: vertical; - } - - ${e} :where(button, [role="button"]) { - cursor: pointer; - } - - ${e} button::-moz-focus-inner { - border: 0 !important; - } - - ${e} table { - border-collapse: collapse; - } - - ${e} :where(h1, h2, h3, h4, h5, h6) { - font-size: inherit; - font-weight: inherit; - } - - ${e} :where(button, input, optgroup, select, textarea) { - padding: 0; - line-height: inherit; - color: inherit; - } - - ${e} :where(img, svg, video, canvas, audio, iframe, embed, object) { - display: block; - } - - ${e} :where(img, video) { - max-width: 100%; - height: auto; - } - - ${e} [data-js-focus-visible] - :focus:not([data-focus-visible-added]):not( - [data-focus-visible-disabled] - ) { - outline: none; - box-shadow: none; - } - - ${e} select::-ms-expand { - display: none; - } - - ${oB} - `}),Fw=document.createElement("div");document.body.append(Fw);const aB=Ar.lazy(()=>Qk(()=>import("./App-EbJ8EOYb.js").then(e=>e.aj),__vite__mapDeps([0,1])).then(({default:e})=>({default:e})));yd.createRoot(Fw).render(E.jsx(Ar.StrictMode,{children:E.jsxs(LI,{resetCSS:!1,disableGlobalStyle:!0,children:[E.jsx(iB,{scope:".workspace_manager"}),E.jsx(OP,{}),E.jsx(nB,{children:E.jsx(S.Suspense,{children:E.jsx(aB,{})})})]})}));const Kf=document.body,sB={attributes:!0,attributeFilter:["class"]},lB=function(e,t){const r=document.documentElement;r.style.colorScheme==="dark"&&r.style.removeProperty("color-scheme");for(const n of e)if(n.type==="attributes"&&n.attributeName==="class")for(const o of Kf.classList)o.includes("chakra")&&Kf.classList.remove(o)},uB=new MutationObserver(lB);uB.observe(Kf,sB);export{Hn as $,ar as A,zx as B,ii as C,pB as D,vB as E,Ka as F,$w as G,Pw as H,Ya as I,Ew as J,Rw as K,Aw as L,bw as M,Tw as N,TB as O,ja as P,bB as Q,Ar as R,Fu as S,lL as T,YI as U,sL as V,Vf as W,Aa as X,bP as Y,cB as Z,Qk as _,yB as a,Wh as a0,yP as a1,Mp as a2,dB as a3,os as a4,fB as a5,mB as a6,eB as a7,tB as a8,BP as a9,wB as aa,xB as ab,Dp as ac,_e as b,mn as c,Be as d,qb as e,pt as f,Av as g,ju as h,hB as i,E as j,$i as k,Yf as l,Of as m,cw as n,Lu as o,gB as p,dr as q,S as r,kg as s,wa as t,n3 as u,sO as v,_B as w,PB as x,CB as y,AP as z}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/App-EbJ8EOYb.js","workspace_web/assets/App-JXePnJiV.css"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} \ No newline at end of file diff --git a/ui/src/App.tsx b/ui/src/App.tsx index daa4bcf..ba26ca1 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -85,8 +85,16 @@ export default function App() { // User clicked OK if (curFlowID.current) { const flow = await workflowsTable?.get(curFlowID.current); - if (flow && flow.lastSavedJson) { - app.loadGraphData(JSON.parse(flow.lastSavedJson)); + if (flow) { + if (flow.lastSavedJson) { + app.loadGraphData(JSON.parse(flow.lastSavedJson)); + } else { + // no last saved json, may cuz user just disabled autosave + // save current json as last saved json + // this maynot be ideal but better than losing all changes + app.loadGraphData(JSON.parse(flow.json)); + saveCurWorkflow(); + } } } } @@ -239,6 +247,7 @@ export default function App() { label: "Discard", colorScheme: "red", onClick: () => { + discardUnsavedChanges(); loadWorkflowIDImpl(id); }, }, diff --git a/ui/src/components/VersionHistoryDrawer.tsx b/ui/src/components/VersionHistoryDrawer.tsx index 675c8d1..18c4d22 100644 --- a/ui/src/components/VersionHistoryDrawer.tsx +++ b/ui/src/components/VersionHistoryDrawer.tsx @@ -44,6 +44,10 @@ export function VersionHistoryDrawer({ onClose }: { onClose: () => void }) { }; loadData(curFlowID ?? ""); + app.canvasEl.addEventListener("click", onClose); + return () => { + app.canvasEl.removeEventListener("click", onClose); + }; }, []); if (!curFlowID || !curWorkflow) { From 20c6273b55b7f7300f2cf5b9ef9461bd9ec34462 Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 19:59:38 +0800 Subject: [PATCH 15/65] feat: Folders are collapsed by default --- ui/src/RecentFilesDrawer/FilesListFolderItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx index 1820e93..5c616d3 100644 --- a/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx +++ b/ui/src/RecentFilesDrawer/FilesListFolderItem.tsx @@ -24,7 +24,7 @@ type Props = { }; export default memo(function FilesListFolderItem({ folder }: Props) { const [isActive, setIsActive] = useState(false); - const [isCollapsed, setIsCollapsed] = useState(folder.isCollapse ?? false); + const [isCollapsed, setIsCollapsed] = useState(folder.isCollapse ?? true); const [children, setChildren] = useState>([]); const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 }); const [isMenuOpen, setIsMenuOpen] = useState(false); From 63809a8acf75298ea8e955af33b5d3875e3762b6 Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 22:46:56 +0800 Subject: [PATCH 16/65] feat: modify z-index in theme --- ui/src/App.tsx | 3 +- .../RecentFilesDrawer/RecentFilesDrawer.tsx | 3 +- ui/src/const.ts | 1 + ui/src/main.tsx | 29 +++++++++++++++++-- .../MissingModelsListDrawer.tsx | 3 +- .../models-list-drawer/ModelsListDrawer.tsx | 3 +- 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/ui/src/App.tsx b/ui/src/App.tsx index d1d6900..4182507 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -35,6 +35,7 @@ const RecentFilesDrawer = React.lazy( const GalleryModal = React.lazy(() => import("./gallery/GalleryModal")); import { scanLocalNewFiles } from "./Api"; import { IconExternalLink } from "@tabler/icons-react"; +import { DRAWER_Z_INDEX } from "./const"; const ModelManagerTopbar = React.lazy( () => import("./model-manager/topbar/ModelManagerTopbar"), ); @@ -519,7 +520,7 @@ export default function App() { left: 0, lineHeight: "24px", }} - zIndex={1000} + zIndex={DRAWER_Z_INDEX} draggable={false} > void; @@ -244,7 +245,7 @@ export default function RecentFilesDrawer({ onClose, onClickNewFlow }: Props) { top={0} left={0} shadow={"xl"} - zIndex={1000} + zIndex={DRAWER_Z_INDEX} // boxShadow={"rgba(200, 200, 200, 0.4) 1px 4px 8px 1px"} > diff --git a/ui/src/const.ts b/ui/src/const.ts index 90c3e9b..f0b376b 100644 --- a/ui/src/const.ts +++ b/ui/src/const.ts @@ -2,3 +2,4 @@ export const LEGACY_COMFYSPACE_TRACKING_FIELD_NAME = "comfyspace_tracking"; export const COMFYSPACE_TRACKING_FIELD_NAME = "workspace_info"; export const COMFYSPACE_AUTH_ENDPOINT = "comfyspace_auth"; export const COMFYSPACE_AUTH_REDIRECT_URL = "http://localhost:8188/"; +export const DRAWER_Z_INDEX = 9999999; diff --git a/ui/src/main.tsx b/ui/src/main.tsx index ab2ac98..e665d53 100644 --- a/ui/src/main.tsx +++ b/ui/src/main.tsx @@ -1,7 +1,7 @@ import React, { Suspense } from "react"; import ReactDOM from "react-dom/client"; import { ColorModeScript } from "@chakra-ui/react"; -import { ChakraProvider } from "@chakra-ui/react"; +import { ChakraProvider, extendTheme } from "@chakra-ui/react"; import { AlertDialogProvider } from "./components/AlertDialogProvider.tsx"; import CSSReset from "./MyCSSReset.tsx"; @@ -13,9 +13,34 @@ const App = React.lazy(() => })), ); +/** + * Since the z-index of other plug-ins is set to 1111111, + * part of the content of our Drawer component is covered, + * so the z-index is adjusted uniformly and multiplied by 10000 based on the default value. + */ +const zIndices = { + hide: -1, + auto: "auto", + base: 0, + docked: 10, + dropdown: 10000000, + sticky: 11000000, + banner: 12000000, + overlay: 13000000, + modal: 14000000, + popover: 15000000, + skipLink: 16000000, + toast: 17000000, + tooltip: 18000000, +}; + +const theme = extendTheme({ + zIndices, +}); + ReactDOM.createRoot(topbar).render( - + diff --git a/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx b/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx index 6bae36f..27dae08 100644 --- a/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx +++ b/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx @@ -12,6 +12,7 @@ import { useEffect } from "react"; import { app } from "/scripts/app.js"; import InstallModelsButton from "../install-models/InstallModelsButton"; import MissingModelItem from "./MissingModelItem"; +import { DRAWER_Z_INDEX } from "../../const"; export interface MissingModel { class_type: string; @@ -49,7 +50,7 @@ export default function MissingModelsListDrawer({ top={0} left={0} shadow={"xl"} - zIndex={1000} + zIndex={DRAWER_Z_INDEX} overflowY={"auto"} > diff --git a/ui/src/model-manager/models-list-drawer/ModelsListDrawer.tsx b/ui/src/model-manager/models-list-drawer/ModelsListDrawer.tsx index a0521c9..ac0b390 100644 --- a/ui/src/model-manager/models-list-drawer/ModelsListDrawer.tsx +++ b/ui/src/model-manager/models-list-drawer/ModelsListDrawer.tsx @@ -15,6 +15,7 @@ import { app } from "/scripts/app.js"; import InstallModelsButton from "../install-models/InstallModelsButton"; import { ModelsListRespItem } from "../types"; import { useUpdateModels } from "../hooks/useUpdateModels"; +import { DRAWER_Z_INDEX } from "../../const"; interface Props { onClose: () => void; } @@ -74,7 +75,7 @@ export default function ModelsListDrawer({ onClose }: Props) { top={0} left={0} shadow={"xl"} - zIndex={1000} + zIndex={DRAWER_Z_INDEX} overflowY={"auto"} > From bed10b09522ed3406234a0c5126f53642fd0f28b Mon Sep 17 00:00:00 2001 From: yanle <421361608@qq.com> Date: Wed, 31 Jan 2024 22:47:58 +0800 Subject: [PATCH 17/65] fix: When modifying workflow and Folder names, if the content is empty, Enter submission is prohibited. --- ui/src/components/DropdownTitle.tsx | 5 ++++- ui/src/components/EditFlowName.tsx | 2 +- ui/src/components/EditFolderName.tsx | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ui/src/components/DropdownTitle.tsx b/ui/src/components/DropdownTitle.tsx index 3ba2f9b..abdd1e0 100644 --- a/ui/src/components/DropdownTitle.tsx +++ b/ui/src/components/DropdownTitle.tsx @@ -197,7 +197,10 @@ export default function DropdownTitle() { onChange={handleChange} autoFocus onKeyUp={(e) => { - e.code === "Enter" && !submitError && onSubmit(); + e.code === "Enter" && + !submitError && + newFlowName && + onSubmit(); }} /> {submitError && ( diff --git a/ui/src/components/EditFlowName.tsx b/ui/src/components/EditFlowName.tsx index e4a5fe0..20f7058 100644 --- a/ui/src/components/EditFlowName.tsx +++ b/ui/src/components/EditFlowName.tsx @@ -105,7 +105,7 @@ export default function EditFlowName({ onChange={handleChange} autoFocus onKeyUp={(e) => { - e.code === "Enter" && !submitError && onSubmit(); + e.code === "Enter" && !submitError && editName && onSubmit(); }} /> {submitError && ( diff --git a/ui/src/components/EditFolderName.tsx b/ui/src/components/EditFolderName.tsx index aaac1a3..88c2649 100644 --- a/ui/src/components/EditFolderName.tsx +++ b/ui/src/components/EditFolderName.tsx @@ -67,7 +67,7 @@ export default function EditFolderNameModal({ folder, onclose }: Props) { onChange={handleChange} autoFocus onKeyUp={(e) => { - e.code === "Enter" && !submitError && onSubmit(); + e.code === "Enter" && !submitError && editName && onSubmit(); }} /> {submitError && {submitError}} From c8e17ad53d368eba50e69739d72d9e31c1c6a542 Mon Sep 17 00:00:00 2001 From: Arslan Ablikim Date: Thu, 1 Feb 2024 19:31:12 +0800 Subject: [PATCH 18/65] Add file hash saving functionality and update UI components --- service/model_manager/model_installer.py | 5 ++- service/model_manager/model_list.py | 4 +++ ui/src/customHooks/useStateRef.ts | 36 +++++++++++++++++++ ui/src/model-manager/api/modelsApi.ts | 1 + .../install-models/ChooseFolder.tsx | 19 ++++++---- .../install-models/InatallModelsModal.tsx | 34 ++++++++++-------- 6 files changed, 77 insertions(+), 22 deletions(-) create mode 100644 ui/src/customHooks/useStateRef.ts diff --git a/service/model_manager/model_installer.py b/service/model_manager/model_installer.py index 4028fe3..9f9646b 100644 --- a/service/model_manager/model_installer.py +++ b/service/model_manager/model_installer.py @@ -10,7 +10,7 @@ import threading import server import time from .missing_models import find_missing_models # type: ignore noqa -from .model_list import start_populate_file_hash_dict +from .model_list import start_populate_file_hash_dict, save_file_hash comfy_path = os.path.dirname(folder_paths.__file__) def download_url_with_wget(url, save_path): @@ -91,6 +91,9 @@ async def install_model(request): json_data = await request.json() url = json_data['url'] save_path = get_model_path(json_data) + file_hash = json_data['file_hash'] + if file_hash is not None: + save_file_hash(save_path, file_hash) with download_tasks_lock: # Add the task to the list diff --git a/service/model_manager/model_list.py b/service/model_manager/model_list.py index 6d7d300..91f92fa 100644 --- a/service/model_manager/model_list.py +++ b/service/model_manager/model_list.py @@ -25,6 +25,10 @@ file_list_lock = threading.Lock() populate_started = False populate_done = False +def save_file_hash(file_path, file_hash): + global file_hash_dict + file_hash_dict[file_path] = file_hash + def compute_hash(file_path): # sha256 hash of the file sha256_hash = hashlib.sha256() diff --git a/ui/src/customHooks/useStateRef.ts b/ui/src/customHooks/useStateRef.ts new file mode 100644 index 0000000..a0c76ed --- /dev/null +++ b/ui/src/customHooks/useStateRef.ts @@ -0,0 +1,36 @@ +import { useCallback, useRef, useState, SetStateAction, Dispatch } from "react"; + +const isFunction = ( + setStateAction: SetStateAction, +): setStateAction is (prevState: S) => S => + typeof setStateAction === "function"; + +type ReadOnlyRefObject = { + readonly current: T; +}; + +type UseStateRef = { + ( + initialState: S | (() => S), + ): [S, Dispatch>, ReadOnlyRefObject]; + (): [ + S | undefined, + Dispatch>, + ReadOnlyRefObject, + ]; +}; + +export const useStateRef: UseStateRef = (initialState?: S | (() => S)) => { + const [state, setState] = useState(initialState); + const ref = useRef(state); + + const dispatch: typeof setState = useCallback((setStateAction: any) => { + ref.current = isFunction(setStateAction) + ? setStateAction(ref.current) + : setStateAction; + + setState(ref.current); + }, []); + + return [state, dispatch, ref]; +}; diff --git a/ui/src/model-manager/api/modelsApi.ts b/ui/src/model-manager/api/modelsApi.ts index ae23c29..b760cb0 100644 --- a/ui/src/model-manager/api/modelsApi.ts +++ b/ui/src/model-manager/api/modelsApi.ts @@ -5,6 +5,7 @@ export type InstallModelsApiInput = { save_path: string; url: string; filename: string; + file_hash?: string; name: string; }; let cancelInstall = false; diff --git a/ui/src/model-manager/install-models/ChooseFolder.tsx b/ui/src/model-manager/install-models/ChooseFolder.tsx index 57aaf04..e90d7e6 100644 --- a/ui/src/model-manager/install-models/ChooseFolder.tsx +++ b/ui/src/model-manager/install-models/ChooseFolder.tsx @@ -12,14 +12,17 @@ import { } from "@chakra-ui/react"; import { useEffect, useRef, useState } from "react"; import { getAllFoldersList } from "../../Api"; +import { CivitiModelFileVersion } from "../types"; interface ChooseFolderProps { isOpen: boolean; + file?: CivitiModelFileVersion; onClose: () => void; selectFolder: (folderPath: string, url: string) => void; } export default function ChooseFolder({ isOpen, + file, onClose, selectFolder, }: ChooseFolderProps) { @@ -57,12 +60,16 @@ export default function ChooseFolder({ - Model download url - setUrl(e.target.value)} - value={url} - /> + {file?.downloadUrl || ( + <> + Model download url + setUrl(e.target.value)} + value={url} + /> + + )} + + + + + ); +} diff --git a/ui/src/components/CustomSelector.tsx b/ui/src/components/CustomSelector.tsx new file mode 100644 index 0000000..dd531ef --- /dev/null +++ b/ui/src/components/CustomSelector.tsx @@ -0,0 +1,66 @@ +import React, { useState, useRef } from "react"; +import { Box, Button, Card, useOutsideClick } from "@chakra-ui/react"; +import { IconChevronDown } from "@tabler/icons-react"; + +export interface CustomSelectorOption { + label: string; + value: string; + icon?: React.ReactElement; +} + +type Props = { + options: CustomSelectorOption[]; +}; +export default function CustomSelector({ options }: Props) { + const [isOpen, setIsOpen] = useState(false); + const ref = useRef(null); + const [selectedOption, setSelectedOption] = useState< + CustomSelectorOption | undefined + >(options[0]); + useOutsideClick({ + ref: ref, + handler: () => setIsOpen(false), + }); + + const toggleDropdown = () => setIsOpen(!isOpen); + + return ( + + + {isOpen && ( + + {options.map((option) => ( + + ))} + + )} + + ); +} diff --git a/ui/src/components/DropdownTitle.tsx b/ui/src/components/DropdownTitle.tsx index abdd1e0..d5f103b 100644 --- a/ui/src/components/DropdownTitle.tsx +++ b/ui/src/components/DropdownTitle.tsx @@ -32,12 +32,14 @@ import { IconDeviceFloppy, IconDownload, IconHistory, + IconShare2, } from "@tabler/icons-react"; import { workflowsTable, userSettingsTable } from "../db-tables/WorkspaceDB"; import { WorkspaceContext } from "../WorkspaceContext"; import { Overlay } from "./Overlay"; import { VersionHistoryDrawer } from "./VersionHistoryDrawer"; import { Workflow } from "../types/dbTypes"; +import ShareDialog from "./ShareDialog"; export default function DropdownTitle() { const { @@ -54,6 +56,7 @@ export default function DropdownTitle() { const [workflow, setWorkflow] = useState(); const [isOpen, setIsOpen] = useState(false); const [saveShortcut, setSaveShortcut] = useState(""); + const [isShareOpen, setIsShareOpen] = useState(false); useEffect(() => { if (curFlowID) { @@ -176,10 +179,23 @@ export default function DropdownTitle() { > Versions History + setIsShareOpen(true)} + icon={} + iconSpacing={1} + > + Share + {isOpen && } + {isShareOpen && workflowsTable?.curWorkflow && ( + setIsShareOpen(false)} + /> + )} {isVersionHistoryOpen && ( setIsVersionHistoryOpen(false)} /> )} diff --git a/ui/src/components/ShareDialog.tsx b/ui/src/components/ShareDialog.tsx new file mode 100644 index 0000000..b638e9f --- /dev/null +++ b/ui/src/components/ShareDialog.tsx @@ -0,0 +1,76 @@ +import { + Button, + HStack, + Input, + Modal, + ModalBody, + ModalContent, + ModalHeader, + ModalOverlay, + Select, + Text, +} from "@chakra-ui/react"; +import { Workflow } from "../types/dbTypes"; +import { useState } from "react"; +import CustomDropdown, { CustomSelectorOption } from "./CustomSelector"; +import { + IconExternalLink, + IconLink, + IconLock, + IconWorld, +} from "@tabler/icons-react"; + +interface Props { + onClose: () => void; + workflow: Workflow; +} + +const privacyOptions: CustomSelectorOption[] = [ + { label: "Private", value: "PRIVATE", icon: }, + { + label: "Anyone with the link can access", + value: "UNLISTED", + icon: , + }, + { label: "Public", value: "PUBLIC", icon: }, +]; +export default function ShareDialog({ onClose, workflow }: Props) { + const [versionName, setVersionName] = useState( + "version " + getCurDateString(), + ); + return ( + + + + Share "{workflow.name}" + + + Version name + + { + setVersionName(e.target.value); + }} + /> + + + + + + + + + + ); +} + +function getCurDateString() { + const currentDate = new Date(); + const year = currentDate.getFullYear(); + const month = String(currentDate.getMonth() + 1).padStart(2, "0"); // Months are 0-based in JS + const day = String(currentDate.getDate()).padStart(2, "0"); + + return `${year}-${month}-${day}`; +} diff --git a/ui/src/db-tables/WorkflowVersionsTable.ts b/ui/src/db-tables/WorkflowVersionsTable.ts new file mode 100644 index 0000000..90f7e5c --- /dev/null +++ b/ui/src/db-tables/WorkflowVersionsTable.ts @@ -0,0 +1,34 @@ +import { Table } from "./WorkspaceDB"; +import { WorkflowVersion } from "../types/dbTypes"; +import { TableBase } from "./TableBase"; +import { indexdb } from "./indexdb"; + +export class WorkflowVersionsTable extends TableBase { + static readonly TABLE_NAME: Table = "workflowVersions"; + constructor() { + super("workflowVersions"); + } + static async load(): Promise { + const instance = new WorkflowVersionsTable(); + return instance; + } + + public async listByWorkflowID( + workflowID: string, + ): Promise { + const objects = (await indexdb[this.tableName] + .where("workflowID") + .equals(workflowID) + .reverse() + .sortBy("createTime")) as WorkflowVersion[]; + return objects ?? []; + } + public async getLastestByWorkflowID( + workflowID: string, + ): Promise { + const objects = await this.listByWorkflowID(workflowID); + if (objects?.length) return objects[0]; + + return null; + } +} diff --git a/ui/src/db-tables/WorkspaceDB.ts b/ui/src/db-tables/WorkspaceDB.ts index 3465229..b850a0c 100644 --- a/ui/src/db-tables/WorkspaceDB.ts +++ b/ui/src/db-tables/WorkspaceDB.ts @@ -6,6 +6,7 @@ import { UserSettingsTable } from "./UserSettingsTable"; import { TagsTable } from "./tagsTable"; import { indexdb } from "./indexdb"; import { Folder, Workflow } from "../types/dbTypes"; +import { WorkflowVersionsTable } from "./WorkflowVersionsTable"; export type Table = | "workflows" @@ -14,7 +15,8 @@ export type Table = | "folders" | "changelogs" | "media" - | "models"; + | "models" + | "workflowVersions"; export function isFolder(n: Folder | Workflow): n is Folder { // @ts-ignore @@ -27,34 +29,19 @@ export let userSettingsTable: UserSettingsTable | null = null; export let foldersTable: FoldersTable | null = null; export let changelogsTable: ChangelogsTable | null = null; export let mediaTable: MediaTable | null = null; +export let workflowVersionsTable: WorkflowVersionsTable | null = null; export async function loadDBs() { - const loadWorkflows = async () => { - workflowsTable = await WorkflowsTable.load(); - }; - const loadTags = async () => { - tagsTable = await TagsTable.load(); - }; - const loadUserSettings = async () => { - userSettingsTable = await UserSettingsTable.load(); - }; - const loadFolders = async () => { - foldersTable = await FoldersTable.load(); - }; - const loadChangelogs = async () => { - changelogsTable = await ChangelogsTable.load(); - }; - const loadMedia = async () => { + const loadDBs = async () => { mediaTable = new MediaTable(); + changelogsTable = await ChangelogsTable.load(); + foldersTable = await FoldersTable.load(); + userSettingsTable = await UserSettingsTable.load(); + tagsTable = await TagsTable.load(); + workflowsTable = await WorkflowsTable.load(); + workflowVersionsTable = await WorkflowVersionsTable.load(); }; - await Promise.all([ - loadWorkflows(), - loadTags(), - loadUserSettings(), - loadFolders(), - loadChangelogs(), - loadMedia(), - ]); + await loadDBs(); if (localStorage.getItem("WORKSPACE_INDEXDB_BACKFILL") !== "true") { await backfillIndexdb(); localStorage.setItem("WORKSPACE_INDEXDB_BACKFILL", "true"); @@ -120,6 +107,14 @@ export async function backfillIndexdb() { console.error(error); } }; + const backfillWorkflowVersions = async () => { + try { + const all = await workflowVersionsTable?.getRecords(); + all && (await indexdb.workflowVersions.bulkAdd(Object.values(all))); + } catch (error) { + console.error(error); + } + }; await Promise.all([ backfillWorkflows(), backfillFolders(), @@ -127,5 +122,6 @@ export async function backfillIndexdb() { backfillChangelogs(), backfillTags(), backfillUserSettings(), + backfillWorkflowVersions(), ]); } diff --git a/ui/src/db-tables/indexdb.ts b/ui/src/db-tables/indexdb.ts index c7a87fd..0bd9dc8 100644 --- a/ui/src/db-tables/indexdb.ts +++ b/ui/src/db-tables/indexdb.ts @@ -10,6 +10,7 @@ import { Tag, UserSettings, WORKSPACE_INDEXDB_NAME, + WorkflowVersion, } from "../types/dbTypes"; class ManagerDB extends Dexie { @@ -21,6 +22,7 @@ class ManagerDB extends Dexie { userSettings!: Table; models!: Table; cache!: Table; + workflowVersions!: Table; constructor() { super(WORKSPACE_INDEXDB_NAME); @@ -34,6 +36,7 @@ class ManagerDB extends Dexie { userSettings: "&id", models: "&id, fileName, fileHash", cache: "&id", + workflowVersions: "&id, name, workflowID", }) .upgrade((trans) => { // Here you can write logic to initialize or migrate data to the new 'media' table, if necessary diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index 70757ba..80012dd 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -49,6 +49,13 @@ export interface ModelManagerPosition { top: number; right: number; } +export type WorkflowVersion = { + id: string; + name: string; + workflowID: string; + json: string; + createTime: number; +}; export type UserSettings = { id: string; From def5ada66d64748e34b60c0a86576b56566280f7 Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Wed, 31 Jan 2024 15:08:38 +0800 Subject: [PATCH 25/65] share button --- ui/src/components/ShareDialog.tsx | 14 ++++++++++++++ ui/src/components/SharedTopbarButton.tsx | 19 +++++++++++++++++++ ui/src/db-tables/TableBase.ts | 4 ++++ ui/src/types/dbTypes.ts | 2 ++ 4 files changed, 39 insertions(+) create mode 100644 ui/src/components/SharedTopbarButton.tsx diff --git a/ui/src/components/ShareDialog.tsx b/ui/src/components/ShareDialog.tsx index b638e9f..1ee65a8 100644 --- a/ui/src/components/ShareDialog.tsx +++ b/ui/src/components/ShareDialog.tsx @@ -19,6 +19,7 @@ import { IconLock, IconWorld, } from "@tabler/icons-react"; +import { workflowVersionsTable } from "../db-tables/WorkspaceDB"; interface Props { onClose: () => void; @@ -38,6 +39,19 @@ export default function ShareDialog({ onClose, workflow }: Props) { const [versionName, setVersionName] = useState( "version " + getCurDateString(), ); + // const onShare = async () => { + // const url = await workflowVersionsTable?.add({ + // workflowID: workflow.id, + // name: versionName, + // createTime: Date.now(), + // privacy: "public", + // json: workflow.json, + // remoteUrl: "", + // }); + // if (url) { + // alert(url); + // } + // }; return ( diff --git a/ui/src/components/SharedTopbarButton.tsx b/ui/src/components/SharedTopbarButton.tsx new file mode 100644 index 0000000..c35474a --- /dev/null +++ b/ui/src/components/SharedTopbarButton.tsx @@ -0,0 +1,19 @@ +import { Button } from "@chakra-ui/react"; +import { IconUsersGroup } from "@tabler/icons-react"; +import { useEffect, useState } from "react"; +import { workflowsTable } from "../db-tables/WorkspaceDB"; + +export function SharedTopbarButton({}) { + return ( + <> + + + ); +} diff --git a/ui/src/db-tables/TableBase.ts b/ui/src/db-tables/TableBase.ts index 214d232..d92ebb3 100644 --- a/ui/src/db-tables/TableBase.ts +++ b/ui/src/db-tables/TableBase.ts @@ -3,6 +3,7 @@ import { getWorkspaceIndexDB } from "./IndexDBUtils"; import { TableBaseModel } from "../types/dbTypes"; import { Table } from "./WorkspaceDB"; import { indexdb } from "./indexdb"; +import { v4 } from "uuid"; export class TableBase { public readonly tableName: Table; @@ -22,6 +23,9 @@ export class TableBase { } public async add(newItem: T): Promise { + if (!newItem.id) { + newItem.id = v4(); + } await indexdb[this.tableName].add(newItem as any); await this.saveDiskDB(); return newItem; diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index 80012dd..a8a0388 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -55,6 +55,8 @@ export type WorkflowVersion = { workflowID: string; json: string; createTime: number; + privacy: "public" | "private"; + remoteUrl: string; }; export type UserSettings = { From 2f73ff304a04de4a51ff48a331a2a3cc46cdb2dc Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Fri, 2 Feb 2024 16:21:41 +0800 Subject: [PATCH 26/65] revert loaddbs change --- ui/src/db-tables/TableBase.ts | 17 ++++++++++++----- ui/src/db-tables/WorkspaceDB.ts | 34 ++++++++++++++++++++++++++------- ui/src/types/dbTypes.ts | 4 ++-- 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/ui/src/db-tables/TableBase.ts b/ui/src/db-tables/TableBase.ts index d92ebb3..1917249 100644 --- a/ui/src/db-tables/TableBase.ts +++ b/ui/src/db-tables/TableBase.ts @@ -5,7 +5,7 @@ import { Table } from "./WorkspaceDB"; import { indexdb } from "./indexdb"; import { v4 } from "uuid"; -export class TableBase { +export class TableBase { public readonly tableName: Table; protected constructor(tableName: Table) { @@ -17,7 +17,13 @@ export class TableBase { objs.forEach((f) => { // only tags table is using name as primary key, we either give up backup that table to diskDB // or add a id as primary key to it - backup[f.id ?? f.name] = f; + if (f.id) { + backup[f.id] = f; + } else if (f.name) { + backup[f.name] = f; + } else { + console.error("TableBaseModel should have id or name"); + } }); saveDB(this.tableName, JSON.stringify(backup)); } @@ -30,6 +36,7 @@ export class TableBase { await this.saveDiskDB(); return newItem; } + public async put(newItem: T): Promise { await indexdb[this.tableName].put(newItem as any); await this.saveDiskDB(); @@ -37,12 +44,12 @@ export class TableBase { } public async listAll(): Promise { const list = await indexdb[this.tableName].toArray(); - return list as T[]; + return list as any[]; } public async batchQuery(ids: string[]): Promise { const list = await indexdb[this.tableName].bulkGet(ids); - return list as T[]; + return list as any[]; } public async getRecords(): Promise> { @@ -66,7 +73,7 @@ export class TableBase { public async get(id: string): Promise { const obj = await indexdb[this.tableName].get(id); - return obj as T; + return obj as any; } public async delete(id: string) { diff --git a/ui/src/db-tables/WorkspaceDB.ts b/ui/src/db-tables/WorkspaceDB.ts index b850a0c..d62137d 100644 --- a/ui/src/db-tables/WorkspaceDB.ts +++ b/ui/src/db-tables/WorkspaceDB.ts @@ -32,16 +32,36 @@ export let mediaTable: MediaTable | null = null; export let workflowVersionsTable: WorkflowVersionsTable | null = null; export async function loadDBs() { - const loadDBs = async () => { - mediaTable = new MediaTable(); - changelogsTable = await ChangelogsTable.load(); - foldersTable = await FoldersTable.load(); - userSettingsTable = await UserSettingsTable.load(); - tagsTable = await TagsTable.load(); + const loadWorkflows = async () => { workflowsTable = await WorkflowsTable.load(); + }; + const loadTags = async () => { + tagsTable = await TagsTable.load(); + }; + const loadUserSettings = async () => { + userSettingsTable = await UserSettingsTable.load(); + }; + const loadFolders = async () => { + foldersTable = await FoldersTable.load(); + }; + const loadChangelogs = async () => { + changelogsTable = await ChangelogsTable.load(); + }; + const loadMedia = async () => { + mediaTable = new MediaTable(); + }; + const loadWorkflowVersions = async () => { workflowVersionsTable = await WorkflowVersionsTable.load(); }; - await loadDBs(); + await Promise.all([ + loadWorkflows(), + loadTags(), + loadUserSettings(), + loadFolders(), + loadChangelogs(), + loadMedia(), + loadWorkflowVersions(), + ]); if (localStorage.getItem("WORKSPACE_INDEXDB_BACKFILL") !== "true") { await backfillIndexdb(); localStorage.setItem("WORKSPACE_INDEXDB_BACKFILL", "true"); diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index a8a0388..20e9c64 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -17,8 +17,8 @@ export interface Workflow extends SortableItem { } export interface TableBaseModel { - id: string; - name: string; + id?: string; + name?: string; } export type Tags = { From 55e051da0d768ac225a0895064a7bfb5c89b34b7 Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Fri, 2 Feb 2024 16:48:37 +0800 Subject: [PATCH 27/65] move png metadata extract into separate util file --- .../ImportFlowsFileInput.tsx | 2 +- ui/src/components/CreateVersionDialog.tsx | 24 +- ui/src/components/DropdownTitle.tsx | 2 +- ui/src/db-tables/TableBase.ts | 10 +- ui/src/gallery/utils.ts | 81 +++--- ui/src/{components => share}/ShareDialog.tsx | 4 +- .../SharedTopbarButton.tsx | 0 ui/src/types/dbTypes.ts | 5 +- ui/src/utils.tsx | 260 ----------------- ui/src/utils/mediaMetadataUtils.ts | 263 ++++++++++++++++++ 10 files changed, 338 insertions(+), 313 deletions(-) rename ui/src/{components => share}/ShareDialog.tsx (96%) rename ui/src/{components => share}/SharedTopbarButton.tsx (100%) create mode 100644 ui/src/utils/mediaMetadataUtils.ts diff --git a/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx b/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx index fee3ac0..d7337f1 100644 --- a/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx +++ b/ui/src/RecentFilesDrawer/ImportFlowsFileInput.tsx @@ -3,7 +3,7 @@ import { Button, Menu, MenuButton, MenuList, MenuItem } from "@chakra-ui/react"; import { IconFileImport } from "@tabler/icons-react"; import { workflowsTable, foldersTable } from "../db-tables/WorkspaceDB"; import { RecentFilesContext } from "../WorkspaceContext"; -import { getPngMetadata } from "../utils"; +import { getPngMetadata } from "../utils/mediaMetadataUtils"; import { ImportWorkflow, importMenuItemList } from "./types"; interface WorkflowFile { diff --git a/ui/src/components/CreateVersionDialog.tsx b/ui/src/components/CreateVersionDialog.tsx index 7a137e8..ec91387 100644 --- a/ui/src/components/CreateVersionDialog.tsx +++ b/ui/src/components/CreateVersionDialog.tsx @@ -10,17 +10,18 @@ import { } from "@chakra-ui/react"; import { Workflow } from "../types/dbTypes"; import { workflowVersionsTable } from "../db-tables/WorkspaceDB"; -import { v4 } from "uuid"; +import { useState } from "react"; interface Props { onClose: () => void; workflow: Workflow; } export default function CreateVersionDialog({ onClose, workflow }: Props) { + const [newVersionName, setNewVersionName] = useState(""); const onCreateVersion = async () => { - const newVersion = await workflowVersionsTable?.add({ - id: v4(), - name: "Added lora", + if (newVersionName.length == 0) return; + await workflowVersionsTable?.add({ + name: newVersionName, workflowID: workflow.id, createTime: Date.now(), json: workflow.json, @@ -34,8 +35,19 @@ export default function CreateVersionDialog({ onClose, workflow }: Props) { Name - - diff --git a/ui/src/components/DropdownTitle.tsx b/ui/src/components/DropdownTitle.tsx index d5f103b..5461c7b 100644 --- a/ui/src/components/DropdownTitle.tsx +++ b/ui/src/components/DropdownTitle.tsx @@ -39,7 +39,7 @@ import { WorkspaceContext } from "../WorkspaceContext"; import { Overlay } from "./Overlay"; import { VersionHistoryDrawer } from "./VersionHistoryDrawer"; import { Workflow } from "../types/dbTypes"; -import ShareDialog from "./ShareDialog"; +import ShareDialog from "../share/ShareDialog"; export default function DropdownTitle() { const { diff --git a/ui/src/db-tables/TableBase.ts b/ui/src/db-tables/TableBase.ts index 1917249..4efb06f 100644 --- a/ui/src/db-tables/TableBase.ts +++ b/ui/src/db-tables/TableBase.ts @@ -28,13 +28,19 @@ export class TableBase { saveDB(this.tableName, JSON.stringify(backup)); } - public async add(newItem: T): Promise { + public async add( + newItem: Omit & + Partial>, + ): Promise { if (!newItem.id) { newItem.id = v4(); } + if (!newItem.createTime) { + newItem.createTime = Date.now(); + } await indexdb[this.tableName].add(newItem as any); await this.saveDiskDB(); - return newItem; + return newItem as T; } public async put(newItem: T): Promise { diff --git a/ui/src/gallery/utils.ts b/ui/src/gallery/utils.ts index 31cd91d..c2e6d00 100644 --- a/ui/src/gallery/utils.ts +++ b/ui/src/gallery/utils.ts @@ -1,54 +1,55 @@ -/* eslint-disable */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck -import {getPngMetadata, getVideoMetadata, getWebpMetadata, isVideoName} from '../utils.tsx' -import {FC} from 'react' -import {Media} from '../types/dbTypes.ts' +import { + getPngMetadata, + getVideoMetadata, + getWebpMetadata, + isVideoName, +} from "../utils/mediaMetadataUtils.ts"; +import { FC } from "react"; +import { Media } from "../types/dbTypes.ts"; -export type MetaData = {prompt: T, workflow: T} +export type MetaData = { prompt: T; workflow: T }; -export type MetaBoxTypeCom = FC<{metaData: MetaData, media: Media}> +export type MetaBoxTypeCom = FC<{ metaData: MetaData; media: Media }>; export function getMetadataFromUrl(url: string) { const extension = url.split(".").pop(); return fetch(url) - .then(response => { - if (!response.ok) { - throw new Error('Network response was not ok'); - } - return response.blob(); - }) - .then(async blob => { - const fileName = url.split("/").pop() ?? ''; - const fileObj = new File([blob], fileName); - if (isVideoName(url)) { - return getVideoMetadata(fileObj) as Promise - } - if (extension === 'webp') { - return getWebpMetadata(fileObj) as Promise - } - const metaData = await getPngMetadata(fileObj) as MetaData; - const prompt = JSON.parse(metaData?.prompt) - const workflow = JSON.parse(metaData?.workflow) - return { - prompt, - workflow, - } as MetaData - }); + .then((response) => { + if (!response.ok) { + throw new Error("Network response was not ok"); + } + return response.blob(); + }) + .then(async (blob) => { + const fileName = url.split("/").pop() ?? ""; + const fileObj = new File([blob], fileName); + if (isVideoName(url)) { + return getVideoMetadata(fileObj) as Promise; + } + if (extension === "webp") { + return getWebpMetadata(fileObj) as Promise; + } + const metaData = (await getPngMetadata(fileObj)) as MetaData; + const prompt = JSON.parse(metaData?.prompt); + const workflow = JSON.parse(metaData?.workflow); + return { + prompt, + workflow, + } as MetaData; + }); } export const ifString = (t: any) => { - if (typeof t === 'string') { - return t + if (typeof t === "string") { + return t; } -} +}; export function clipboard(text: string) { navigator.clipboard - .writeText(text) - .then(function () { - }) - .catch(function (err) { - console.error('Unable to copy to clipboard: ', err); - }); + .writeText(text) + .then(function () {}) + .catch(function (err) { + console.error("Unable to copy to clipboard: ", err); + }); } diff --git a/ui/src/components/ShareDialog.tsx b/ui/src/share/ShareDialog.tsx similarity index 96% rename from ui/src/components/ShareDialog.tsx rename to ui/src/share/ShareDialog.tsx index 1ee65a8..f7d1e7e 100644 --- a/ui/src/components/ShareDialog.tsx +++ b/ui/src/share/ShareDialog.tsx @@ -12,7 +12,9 @@ import { } from "@chakra-ui/react"; import { Workflow } from "../types/dbTypes"; import { useState } from "react"; -import CustomDropdown, { CustomSelectorOption } from "./CustomSelector"; +import CustomDropdown, { + CustomSelectorOption, +} from "../components/CustomSelector"; import { IconExternalLink, IconLink, diff --git a/ui/src/components/SharedTopbarButton.tsx b/ui/src/share/SharedTopbarButton.tsx similarity index 100% rename from ui/src/components/SharedTopbarButton.tsx rename to ui/src/share/SharedTopbarButton.tsx diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index 20e9c64..ff73c87 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -19,6 +19,7 @@ export interface Workflow extends SortableItem { export interface TableBaseModel { id?: string; name?: string; + createTime?: number; } export type Tags = { @@ -55,8 +56,8 @@ export type WorkflowVersion = { workflowID: string; json: string; createTime: number; - privacy: "public" | "private"; - remoteUrl: string; + privacy?: "public" | "private"; + remoteUrl?: string; }; export type UserSettings = { diff --git a/ui/src/utils.tsx b/ui/src/utils.tsx index f8e741a..85a948d 100644 --- a/ui/src/utils.tsx +++ b/ui/src/utils.tsx @@ -226,266 +226,6 @@ export function insertWorkflowToCanvas(json: string, insertPos?: number[]) { canvas = null; } -export function getPngMetadata(file: File) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = (event) => { - // Get the PNG data as a Uint8Array - // @ts-expect-error - const pngData = new Uint8Array(event.target.result); - const dataView = new DataView(pngData.buffer); - - // Check that the PNG signature is present - if (dataView.getUint32(0) !== 0x89504e47) { - console.error("Not a valid PNG file"); - reject(); - } - - // Start searching for chunks after the PNG signature - let offset = 8; - const txt_chunks: Record = {}; - // Loop through the chunks in the PNG file - while (offset < pngData.length) { - // Get the length of the chunk - const length = dataView.getUint32(offset); - // Get the chunk type - const type = String.fromCharCode( - ...pngData.slice(offset + 4, offset + 8), - ); - if (type === "tEXt" || type == "comf") { - // Get the keyword - let keyword_end = offset + 8; - while (pngData[keyword_end] !== 0) { - keyword_end++; - } - const keyword = String.fromCharCode( - ...pngData.slice(offset + 8, keyword_end), - ); - // Get the text - const contentArraySegment = pngData.slice( - keyword_end + 1, - offset + 8 + length, - ); - const contentJson = Array.from(contentArraySegment) - .map((s) => String.fromCharCode(s)) - .join(""); - txt_chunks[keyword] = contentJson; - } - - offset += 12 + length; - } - - resolve(txt_chunks); - }; - - reader.readAsArrayBuffer(file); - }); -} - -function parseExifData(exifData) { - // Check for the correct TIFF header (0x4949 for little-endian or 0x4D4D for big-endian) - const isLittleEndian = new Uint16Array(exifData.slice(0, 2))[0] === 0x4949; - - // Function to read 16-bit and 32-bit integers from binary data - function readInt(offset, isLittleEndian, length) { - const arr = exifData.slice(offset, offset + length); - if (length === 2) { - return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint16( - 0, - isLittleEndian, - ); - } else if (length === 4) { - return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint32( - 0, - isLittleEndian, - ); - } - } - - // Read the offset to the first IFD (Image File Directory) - const ifdOffset = readInt(4, isLittleEndian, 4); - - function parseIFD(offset) { - const numEntries = readInt(offset, isLittleEndian, 2); - const result = {}; - - for (let i = 0; i < numEntries; i++) { - const entryOffset = offset + 2 + i * 12; - const tag = readInt(entryOffset, isLittleEndian, 2); - const type = readInt(entryOffset + 2, isLittleEndian, 2); - const numValues = readInt(entryOffset + 4, isLittleEndian, 4); - const valueOffset = readInt(entryOffset + 8, isLittleEndian, 4); - - // Read the value(s) based on the data type - let value; - if (type === 2) { - // ASCII string - value = String.fromCharCode( - ...exifData.slice(valueOffset, valueOffset + numValues - 1), - ); - } - - result[tag] = value; - } - - return result; - } - - // Parse the first IFD - const ifdData = parseIFD(ifdOffset); - return ifdData; -} - -export function getWebpMetadata(file: File) { - return new Promise((r) => { - const reader = new FileReader(); - reader.onload = (event) => { - const webp = new Uint8Array(event?.target?.result as Iterable); - const dataView = new DataView(webp.buffer); - - // Check that the WEBP signature is present - if ( - dataView.getUint32(0) !== 0x52494646 || - dataView.getUint32(8) !== 0x57454250 - ) { - console.error("Not a valid WEBP file"); - r(); - return; - } - - // Start searching for chunks after the WEBP signature - let offset = 12; - const txt_chunks = {}; - // Loop through the chunks in the WEBP file - while (offset < webp.length) { - const chunk_length = dataView.getUint32(offset + 4, true); - const chunk_type = String.fromCharCode( - ...webp.slice(offset, offset + 4), - ); - if (chunk_type === "EXIF") { - if ( - String.fromCharCode(...webp.slice(offset + 8, offset + 8 + 6)) == - "Exif\0\0" - ) { - offset += 6; - } - const data = parseExifData( - webp.slice(offset + 8, offset + 8 + chunk_length), - ); - for (const key in data) { - const value = data[key]; - const index = value.indexOf(":"); - txt_chunks[value.slice(0, index)] = value.slice(index + 1); - } - } - - offset += 8 + chunk_length; - } - - r(txt_chunks); - }; - - reader.readAsArrayBuffer(file); - }); -} - -export function isVideoName(name: string) { - if (name?.endsWith(".webm")) { - return true; - } - if (name?.endsWith(".mp4")) { - return true; - } - - return false; -} - -export function getVideoMetadata(file) { - return new Promise((r) => { - const reader = new FileReader(); - reader.onload = (event) => { - const videoData = new Uint8Array(event.target.result); - const dataView = new DataView(videoData.buffer); - - const decoder = new TextDecoder(); - // Check for known valid magic strings - if (dataView.getUint32(0) == 0x1a45dfa3) { - //webm - //see http://wiki.webmproject.org/webm-metadata/global-metadata - //and https://www.matroska.org/technical/elements.html - //contrary to specs, tag seems consistently at start - //COMMENT + 0x4487 + packed length? - //length 0x8d8 becomes 0x48d8 - // - //description for variable length ints https://github.com/ietf-wg-cellar/ebml-specification/blob/master/specification.markdown - let offset = 4 + 8; //COMMENT is 7 chars + 1 to realign - while (offset < videoData.length - 16) { - //Check for text tags - if (dataView.getUint16(offset) == 0x4487) { - //check that name of tag is COMMENT - const name = String.fromCharCode( - ...videoData.slice(offset - 7, offset), - ); - if (name === "COMMENT") { - const vint = dataView.getUint32(offset + 2); - const n_octets = Math.clz32(vint) + 1; - if (n_octets < 4) { - //250MB sanity cutoff - const length = - (vint >> (8 * (4 - n_octets))) & ~(1 << (7 * n_octets)); - const content = decoder.decode( - videoData.slice( - offset + 2 + n_octets, - offset + 2 + n_octets + length, - ), - ); - const json = JSON.parse(content); - r(json); - return; - } - } - } - offset += 1; - } - } else if ( - dataView.getUint32(4) == 0x66747970 && - dataView.getUint32(8) == 0x69736f6d - ) { - //mp4 - //see https://developer.apple.com/documentation/quicktime-file-format - //Seems to make no guarantee for alignment - let offset = videoData.length - 4; - while (offset > 16) { - //rough safe guess - if (dataView.getUint32(offset) == 0x64617461) { - //any data tag - if (dataView.getUint32(offset - 8) == 0xa9636d74) { - //cmt data tag - const type = dataView.getUint32(offset + 4); //seemingly 1 - const locale = dataView.getUint32(offset + 8); //seemingly 0 - const size = dataView.getUint32(offset - 4) - 4 * 4; - const content = decoder.decode( - videoData.slice(offset + 12, offset + 12 + size), - ); - const json = JSON.parse(content); - r(json); - return; - } - } - - offset -= 1; - } - } else { - console.error("Unknown magic: " + dataView.getUint32(0)); - r(); - return; - } - }; - - reader.readAsArrayBuffer(file); - }); -} - export const matchSaveWorkflowShortcut = async (event: KeyboardEvent) => { const short = await userSettingsTable?.getSetting("shortcuts").then((res) => { return res?.save; diff --git a/ui/src/utils/mediaMetadataUtils.ts b/ui/src/utils/mediaMetadataUtils.ts new file mode 100644 index 0000000..387e12f --- /dev/null +++ b/ui/src/utils/mediaMetadataUtils.ts @@ -0,0 +1,263 @@ +export function getPngMetadata(file: File) { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = (event) => { + // Get the PNG data as a Uint8Array + // @ts-expect-error + const pngData = new Uint8Array(event.target.result); + const dataView = new DataView(pngData.buffer); + + // Check that the PNG signature is present + if (dataView.getUint32(0) !== 0x89504e47) { + console.error("Not a valid PNG file"); + reject(); + } + + // Start searching for chunks after the PNG signature + let offset = 8; + const txt_chunks: Record = {}; + // Loop through the chunks in the PNG file + while (offset < pngData.length) { + // Get the length of the chunk + const length = dataView.getUint32(offset); + // Get the chunk type + const type = String.fromCharCode( + ...pngData.slice(offset + 4, offset + 8), + ); + if (type === "tEXt" || type == "comf") { + // Get the keyword + let keyword_end = offset + 8; + while (pngData[keyword_end] !== 0) { + keyword_end++; + } + const keyword = String.fromCharCode( + ...pngData.slice(offset + 8, keyword_end), + ); + // Get the text + const contentArraySegment = pngData.slice( + keyword_end + 1, + offset + 8 + length, + ); + const contentJson = Array.from(contentArraySegment) + .map((s) => String.fromCharCode(s)) + .join(""); + txt_chunks[keyword] = contentJson; + } + + offset += 12 + length; + } + + resolve(txt_chunks); + }; + + reader.readAsArrayBuffer(file); + }); +} + +function parseExifData(exifData: any) { + // Check for the correct TIFF header (0x4949 for little-endian or 0x4D4D for big-endian) + const isLittleEndian = new Uint16Array(exifData.slice(0, 2))[0] === 0x4949; + + // Function to read 16-bit and 32-bit integers from binary data + function readInt( + offset: number, + isLittleEndian: boolean | undefined, + length: number, + ) { + const arr = exifData.slice(offset, offset + length); + if (length === 2) { + return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint16( + 0, + isLittleEndian, + ); + } else if (length === 4) { + return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint32( + 0, + isLittleEndian, + ); + } + } + + // Read the offset to the first IFD (Image File Directory) + const ifdOffset = readInt(4, isLittleEndian, 4); + + function parseIFD(offset: number) { + const numEntries = readInt(offset, isLittleEndian, 2); + const result = {}; + + for (let i = 0; i < numEntries; i++) { + const entryOffset = offset + 2 + i * 12; + const tag = readInt(entryOffset, isLittleEndian, 2); + const type = readInt(entryOffset + 2, isLittleEndian, 2); + const numValues = readInt(entryOffset + 4, isLittleEndian, 4); + const valueOffset = readInt(entryOffset + 8, isLittleEndian, 4); + + // Read the value(s) based on the data type + let value; + if (type === 2) { + // ASCII string + value = String.fromCharCode( + ...exifData.slice(valueOffset, valueOffset + numValues - 1), + ); + } + + result[tag] = value; + } + + return result; + } + + // Parse the first IFD + const ifdData = parseIFD(ifdOffset); + return ifdData; +} + +export function getWebpMetadata(file: File) { + return new Promise((r) => { + const reader = new FileReader(); + reader.onload = (event) => { + const webp = new Uint8Array(event?.target?.result as Iterable); + const dataView = new DataView(webp.buffer); + + // Check that the WEBP signature is present + if ( + dataView.getUint32(0) !== 0x52494646 || + dataView.getUint32(8) !== 0x57454250 + ) { + console.error("Not a valid WEBP file"); + r(); + return; + } + + // Start searching for chunks after the WEBP signature + let offset = 12; + const txt_chunks = {}; + // Loop through the chunks in the WEBP file + while (offset < webp.length) { + const chunk_length = dataView.getUint32(offset + 4, true); + const chunk_type = String.fromCharCode( + ...webp.slice(offset, offset + 4), + ); + if (chunk_type === "EXIF") { + if ( + String.fromCharCode(...webp.slice(offset + 8, offset + 8 + 6)) == + "Exif\0\0" + ) { + offset += 6; + } + const data = parseExifData( + webp.slice(offset + 8, offset + 8 + chunk_length), + ); + for (const key in data) { + const value = data[key]; + const index = value.indexOf(":"); + txt_chunks[value.slice(0, index)] = value.slice(index + 1); + } + } + + offset += 8 + chunk_length; + } + + r(txt_chunks); + }; + + reader.readAsArrayBuffer(file); + }); +} + +export function isVideoName(name: string) { + if (name?.endsWith(".webm")) { + return true; + } + if (name?.endsWith(".mp4")) { + return true; + } + + return false; +} + +export function getVideoMetadata(file) { + return new Promise((r) => { + const reader = new FileReader(); + reader.onload = (event) => { + const videoData = new Uint8Array(event.target.result); + const dataView = new DataView(videoData.buffer); + + const decoder = new TextDecoder(); + // Check for known valid magic strings + if (dataView.getUint32(0) == 0x1a45dfa3) { + //webm + //see http://wiki.webmproject.org/webm-metadata/global-metadata + //and https://www.matroska.org/technical/elements.html + //contrary to specs, tag seems consistently at start + //COMMENT + 0x4487 + packed length? + //length 0x8d8 becomes 0x48d8 + // + //description for variable length ints https://github.com/ietf-wg-cellar/ebml-specification/blob/master/specification.markdown + let offset = 4 + 8; //COMMENT is 7 chars + 1 to realign + while (offset < videoData.length - 16) { + //Check for text tags + if (dataView.getUint16(offset) == 0x4487) { + //check that name of tag is COMMENT + const name = String.fromCharCode( + ...videoData.slice(offset - 7, offset), + ); + if (name === "COMMENT") { + const vint = dataView.getUint32(offset + 2); + const n_octets = Math.clz32(vint) + 1; + if (n_octets < 4) { + //250MB sanity cutoff + const length = + (vint >> (8 * (4 - n_octets))) & ~(1 << (7 * n_octets)); + const content = decoder.decode( + videoData.slice( + offset + 2 + n_octets, + offset + 2 + n_octets + length, + ), + ); + const json = JSON.parse(content); + r(json); + return; + } + } + } + offset += 1; + } + } else if ( + dataView.getUint32(4) == 0x66747970 && + dataView.getUint32(8) == 0x69736f6d + ) { + //mp4 + //see https://developer.apple.com/documentation/quicktime-file-format + //Seems to make no guarantee for alignment + let offset = videoData.length - 4; + while (offset > 16) { + //rough safe guess + if (dataView.getUint32(offset) == 0x64617461) { + //any data tag + if (dataView.getUint32(offset - 8) == 0xa9636d74) { + //cmt data tag + const type = dataView.getUint32(offset + 4); //seemingly 1 + const locale = dataView.getUint32(offset + 8); //seemingly 0 + const size = dataView.getUint32(offset - 4) - 4 * 4; + const content = decoder.decode( + videoData.slice(offset + 12, offset + 12 + size), + ); + const json = JSON.parse(content); + r(json); + return; + } + } + + offset -= 1; + } + } else { + console.error("Unknown magic: " + dataView.getUint32(0)); + r(); + return; + } + }; + + reader.readAsArrayBuffer(file); + }); +} From 0a3f0bf9b80d174436c707e9604c0953fac21ddc Mon Sep 17 00:00:00 2001 From: Weixuan Fu Date: Fri, 2 Feb 2024 17:31:22 +0800 Subject: [PATCH 28/65] hide broken cover --- ui/src/RecentFilesDrawer/WorkflowListItem.tsx | 27 +++----- ui/src/components/MediaPreview.tsx | 59 +++++++++++++++++ ui/src/gallery/GalleryModal.tsx | 2 +- ...{MediaPreview.tsx => GalleryMediaItem.tsx} | 65 +++++-------------- 4 files changed, 84 insertions(+), 69 deletions(-) create mode 100644 ui/src/components/MediaPreview.tsx rename ui/src/gallery/components/{MediaPreview.tsx => GalleryMediaItem.tsx} (71%) diff --git a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx index 57e6708..6436a5a 100644 --- a/ui/src/RecentFilesDrawer/WorkflowListItem.tsx +++ b/ui/src/RecentFilesDrawer/WorkflowListItem.tsx @@ -18,6 +18,7 @@ import WorkflowListItemRightClickMenu from "./WorkflowListItemRightClickMenu"; import DeleteConfirm from "../components/DeleteConfirm"; import { RecentFilesContext, WorkspaceContext } from "../WorkspaceContext"; import { Workflow } from "../types/dbTypes"; +import MediaPreview from "../components/MediaPreview"; type Props = { workflow: Workflow; @@ -71,25 +72,13 @@ export default memo(function WorkflowListItem({ workflow }: Props) { }} > - {workflow.coverMediaPath != null && - (isImageFormat(workflow.coverMediaPath) ? ( - {workflow.name - ) : ( - - ))} + {workflow.coverMediaPath != null && ( + + )} {workflow.name ?? "untitled"} diff --git a/ui/src/components/MediaPreview.tsx b/ui/src/components/MediaPreview.tsx new file mode 100644 index 0000000..5981638 --- /dev/null +++ b/ui/src/components/MediaPreview.tsx @@ -0,0 +1,59 @@ +import { Image } from "@chakra-ui/react"; +import { isImageFormat } from "../utils"; +import { useEffect, useState } from "react"; + +type Props = { + mediaLocalPath: string; + size: number; + autoPlay?: boolean; + onBrokenLink?: () => void; + hideBrokenImage?: boolean; +}; +export default function MediaPreview({ + mediaLocalPath, + size, + autoPlay, + hideBrokenImage, + onBrokenLink, +}: Props) { + const [isVisible, setIsVisible] = useState(true); + + useEffect(() => { + const checkMediaExists = async () => { + try { + const response = await fetch( + `/workspace/view_media?filename=${mediaLocalPath}`, + ); + if (!response.ok) throw new Error("Media not found"); + setIsVisible(true); + } catch (error) { + setIsVisible(false); + onBrokenLink?.(); + } + }; + + hideBrokenImage && checkMediaExists(); + }, []); + + if (!isVisible) return null; + return isImageFormat(mediaLocalPath) ? ( + workflow image renamed or moved from output folder + ) : ( + + ); +} diff --git a/ui/src/gallery/GalleryModal.tsx b/ui/src/gallery/GalleryModal.tsx index 764a93e..051dd83 100644 --- a/ui/src/gallery/GalleryModal.tsx +++ b/ui/src/gallery/GalleryModal.tsx @@ -17,7 +17,7 @@ import { IconArrowLeft, IconX } from "@tabler/icons-react"; import { WorkspaceContext } from "../WorkspaceContext"; import { Media } from "../types/dbTypes"; import { MetaDataInfo } from "./components/MetaDataInfo.tsx"; -import MediaPreview from "./components/MediaPreview.tsx"; +import MediaPreview from "./components/GalleryMediaItem.tsx"; export default function GalleryModal({ onclose }: { onclose: () => void }) { const { curFlowID } = useContext(WorkspaceContext); diff --git a/ui/src/gallery/components/MediaPreview.tsx b/ui/src/gallery/components/GalleryMediaItem.tsx similarity index 71% rename from ui/src/gallery/components/MediaPreview.tsx rename to ui/src/gallery/components/GalleryMediaItem.tsx index 0b5a075..bc3dc42 100644 --- a/ui/src/gallery/components/MediaPreview.tsx +++ b/ui/src/gallery/components/GalleryMediaItem.tsx @@ -1,8 +1,7 @@ -import React, { useState, useEffect, useContext } from "react"; +import React, { useContext, useState } from "react"; import { Link, Checkbox, - Image, Stack, HStack, Tooltip, @@ -10,7 +9,7 @@ import { Text, Button, } from "@chakra-ui/react"; -import { formatTimestamp, isImageFormat } from "../../utils"; +import { formatTimestamp } from "../../utils"; import { Media } from "../../types/dbTypes"; import { IconDownload, @@ -21,6 +20,7 @@ import { import { mediaTable, workflowsTable } from "../../db-tables/WorkspaceDB"; import { WorkspaceContext } from "../../WorkspaceContext"; import { useDialog } from "../../components/AlertDialogProvider"; +import MediaPreview from "../../components/MediaPreview"; interface MediaPreviewProps { media: Media; @@ -32,7 +32,7 @@ interface MediaPreviewProps { setCoverPath: (path: string) => void; } -const MediaPreview: React.FC = ({ +const GalleryMediaItem: React.FC = ({ media, isSelecting, selectedID, @@ -41,28 +41,9 @@ const MediaPreview: React.FC = ({ coverPath, setCoverPath, }) => { - const [isVisible, setIsVisible] = useState(true); - const IMAGE_SIZE = 150; // Define your image size + const IMAGE_SIZE = 180; // Define your image size const { curFlowID, loadFilePath } = useContext(WorkspaceContext); const { showDialog } = useDialog(); - - useEffect(() => { - const checkMediaExists = async () => { - try { - const response = await fetch( - `/workspace/view_media?filename=${media.localPath}`, - ); - if (!response.ok) throw new Error("Media not found"); - setIsVisible(true); - } catch (error) { - setIsVisible(false); - } - }; - - checkMediaExists(); - }, [media.localPath]); - - if (!isVisible) return null; if (media.localPath == null) { return null; } @@ -70,7 +51,7 @@ const MediaPreview: React.FC = ({ if (curFlowID == null) { return null; } - const mediaPreview = isImageFormat(media.localPath) ? ( + const mediaPreview = ( onClickMedia(media)} position="relative"> {isSelecting && ( = ({ left={2} /> )} - workflow image renamed or moved from output folder - - ) : ( - onClickMedia(media)}> - {isSelecting && } - + /> ); return ( - + {mediaPreview} @@ -114,14 +82,13 @@ const MediaPreview: React.FC = ({ {media.localPath} -