From ce71c2c529fb22f152ad5e79541bc110001c4e5f Mon Sep 17 00:00:00 2001 From: snomiao Date: Mon, 22 Sep 2025 21:10:30 +0000 Subject: [PATCH] feat: Add more Storybook stories for UI components --- .claude/commands/comprehensive-pr-review.md | 6 +- .gitattributes | 2 +- .github/workflows/backport.yaml | 109 +- .github/workflows/publish-frontend-types.yaml | 4 +- .gitignore | 5 +- .i18nrc.cjs | 2 +- .storybook/main.ts | 23 +- .storybook/preview.ts | 25 +- CODEOWNERS | 70 +- .../assets/vueNodes/simple-triple.json | 1 - browser_tests/fixtures/UserSelectPage.ts | 3 +- .../fixtures/components/ComfyNodeSearchBox.ts | 2 +- .../fixtures/components/SettingDialog.ts | 4 +- .../fixtures/components/SidebarTab.ts | 2 +- browser_tests/fixtures/components/Topbar.ts | 3 +- browser_tests/fixtures/ws.ts | 7 +- browser_tests/globalSetup.ts | 2 +- browser_tests/globalTeardown.ts | 2 +- browser_tests/helpers/fitToView.ts | 104 - browser_tests/helpers/manageGroupNode.ts | 2 +- browser_tests/helpers/templates.ts | 4 +- browser_tests/tests/actionbar.spec.ts | 4 +- browser_tests/tests/changeTracker.spec.ts | 2 +- browser_tests/tests/chatHistory.spec.ts | 3 +- browser_tests/tests/dialog.spec.ts | 3 +- browser_tests/tests/extensionAPI.spec.ts | 2 +- browser_tests/tests/groupNode.spec.ts | 3 +- browser_tests/tests/interaction.spec.ts | 9 +- ...-shift-wheel-pan-center-chromium-linux.png | Bin 99438 -> 100274 bytes ...rd-shift-wheel-pan-left-chromium-linux.png | Bin 98303 -> 99438 bytes ...d-shift-wheel-pan-right-chromium-linux.png | Bin 104502 -> 100274 bytes browser_tests/tests/remoteWidgets.spec.ts | 3 +- browser_tests/tests/sidebar/queue.spec.ts | 12 +- browser_tests/tests/templates.spec.ts | 3 +- .../tests/versionMismatchWarnings.spec.ts | 2 +- .../tests/vueNodes/NodeHeader.spec.ts | 2 +- .../tests/vueNodes/linkInteraction.spec.ts | 221 - .../vue-node-dragging-link-chromium-linux.png | Bin 54042 -> 0 bytes .../nodeInteractions/selectionState.spec.ts | 47 - .../tests/vueNodes/nodeStates/bypass.spec.ts | 49 - build/plugins/comfyAPIPlugin.ts | 2 +- build/plugins/generateImportMapPlugin.ts | 2 +- eslint.config.ts => eslint.config.js | 77 +- index.html | 4 +- knip.config.ts | 6 +- lint-staged.config.js | 6 +- package.json | 32 +- pnpm-lock.yaml | 1051 +- public/fonts/inter-latin-italic.woff2 | Bin 79716 -> 0 bytes public/fonts/inter-latin-normal.woff2 | Bin 72920 -> 0 bytes scripts/collect-i18n-general.ts | 21 +- src/assets/css/fonts.css | 17 - src/assets/css/style.css | 42 +- src/base/common/async.ts | 98 - src/components/MenuHamburger.vue | 3 +- .../actionbar/BatchCountEdit.stories.ts | 546 ++ src/components/actionbar/BatchCountEdit.vue | 42 +- src/components/actionbar/ComfyActionbar.vue | 3 +- .../tabs/terminal/BaseTerminal.vue | 5 +- .../tabs/terminal/CommandTerminal.vue | 5 +- .../tabs/terminal/LogsTerminal.vue | 5 +- .../breadcrumb/SubgraphBreadcrumbItem.vue | 3 +- .../common/ContentDivider.stories.ts | 152 + src/components/common/EditableText.stories.ts | 259 + src/components/common/EditableText.vue | 2 +- src/components/common/ExtensionSlot.vue | 2 +- src/components/common/FormItem.stories.ts | 672 ++ src/components/common/FormItem.vue | 4 +- src/components/common/InputKnob.stories.ts | 566 ++ src/components/common/LazyImage.vue | 8 +- .../common/NoResultsPlaceholder.stories.ts | 256 + .../common/RefreshButton.stories.ts | 203 + src/components/common/RefreshButton.vue | 2 +- src/components/common/SearchBox.stories.ts | 265 + .../common/SearchFilterChip.stories.ts | 279 + src/components/common/TextDivider.stories.ts | 250 + src/components/common/TreeExplorer.stories.ts | 651 ++ src/components/common/TreeExplorer.vue | 4 +- .../common/TreeExplorerTreeNode.spec.ts | 6 +- src/components/common/UserAvatar.stories.ts | 162 + .../dialog/content/LoadWorkflowWarning.vue | 11 +- .../ManagerProgressDialogContent.test.ts | 5 +- .../content}/ManagerProgressDialogContent.vue | 2 +- .../content/MissingCoreNodesMessage.vue | 4 +- .../dialog/content/SignInContent.vue | 2 +- .../dialog/content/UpdatePasswordContent.vue | 3 +- .../content}/manager/ManagerDialogContent.vue | 30 +- .../content/manager/ManagerHeader.test.ts | 82 + .../dialog/content/manager/ManagerHeader.vue | 25 + .../content}/manager/ManagerNavSidebar.vue | 2 +- .../manager/NodeConflictDialogContent.vue | 2 +- .../content}/manager/NodeConflictFooter.vue | 0 .../content}/manager/NodeConflictHeader.vue | 0 .../content}/manager/PackStatusMessage.vue | 2 +- .../content}/manager/PackVersionBadge.test.ts | 5 +- .../content}/manager/PackVersionBadge.vue | 10 +- .../PackVersionSelectorPopover.test.ts | 5 +- .../manager/PackVersionSelectorPopover.vue | 10 +- .../manager/button/PackEnableToggle.test.ts | 7 +- .../manager/button/PackEnableToggle.vue | 4 +- .../manager/button/PackInstallButton.vue | 12 +- .../manager/button/PackUninstallButton.vue | 6 +- .../manager/button/PackUpdateButton.vue | 2 +- .../content}/manager/infoPanel/InfoPanel.vue | 18 +- .../manager/infoPanel/InfoPanelHeader.vue | 10 +- .../manager/infoPanel/InfoPanelMultiItem.vue | 14 +- .../content}/manager/infoPanel/InfoTabs.vue | 8 +- .../manager/infoPanel/InfoTextSection.vue | 2 +- .../manager/infoPanel/MarkdownText.vue | 0 .../manager/infoPanel/MetadataRow.vue | 2 +- .../tabs/DescriptionTabPanel.test.ts | 2 +- .../infoPanel/tabs/DescriptionTabPanel.vue | 6 +- .../manager/infoPanel/tabs/NodesTabPanel.vue | 2 +- .../infoPanel/tabs/WarningTabPanel.vue | 4 +- .../manager/packBanner/PackBanner.vue | 2 +- .../content}/manager/packCard/PackCard.vue | 10 +- .../manager/packCard/PackCardFooter.vue | 8 +- .../content}/manager/packIcon/PackIcon.vue | 2 +- .../manager/packIcon/PackIconStacked.vue | 4 +- .../registrySearchBar/RegistrySearchBar.vue | 25 +- .../SearchFilterDropdown.vue | 2 +- .../manager/skeleton/GridSkeleton.vue | 2 +- .../skeleton/PackCardGridSkeleton.test.ts | 3 +- .../manager/skeleton/PackCardSkeleton.vue | 0 .../dialog/content/setting/UsageLogsTable.vue | 2 +- .../setting/keybinding/KeyComboDisplay.vue | 2 +- .../dialog/content/signin/ApiKeyForm.vue | 3 +- .../dialog/content/signin/SignInForm.spec.ts | 3 +- .../dialog/content/signin/SignInForm.vue | 3 +- .../dialog/content/signin/SignUpForm.vue | 3 +- .../dialog/footer}/ManagerProgressFooter.vue | 8 +- .../dialog/header}/ManagerProgressHeader.vue | 4 +- src/components/graph/DomWidgets.vue | 2 +- src/components/graph/GraphCanvas.vue | 71 +- src/components/graph/GraphCanvasMenu.vue | 2 +- src/components/graph/NodeTooltip.vue | 18 +- src/components/graph/SelectionToolbox.spec.ts | 4 +- src/components/graph/SelectionToolbox.vue | 4 +- .../graph/modals/ZoomControlsModal.vue | 3 +- .../graph/selectionToolbox/BypassButton.vue | 2 +- .../selectionToolbox/ColorPickerButton.vue | 3 +- .../graph/selectionToolbox/DeleteButton.vue | 2 +- .../ExtensionCommandButton.vue | 3 +- .../graph/selectionToolbox/SubmenuPopover.vue | 6 +- .../graph/widgets/ChatHistoryWidget.vue | 4 +- src/components/graph/widgets/DomWidget.vue | 5 +- .../graph/widgets/TextPreviewWidget.vue | 2 +- .../helpcenter/HelpCenterMenuContent.vue | 6 +- .../MultiSelect.accessibility.stories.ts | 2 +- src/components/input/MultiSelect.stories.ts | 2 +- src/components/input/MultiSelect.vue | 7 +- src/components/input/SingleSelect.vue | 5 +- .../install/MirrorsConfiguration.vue | 12 +- src/components/install/mirror/MirrorItem.vue | 2 +- src/components/load3d/Load3D.vue | 2 +- src/components/load3d/Load3DAnimation.vue | 2 +- .../load3d/Load3DAnimationScene.vue | 6 +- src/components/load3d/Load3DControls.vue | 2 +- src/components/load3d/Load3DScene.vue | 8 +- src/components/load3d/Load3dViewerContent.vue | 2 +- .../load3d/controls/CameraControls.vue | 2 +- .../load3d/controls/ModelControls.vue | 5 +- .../load3d/controls/RecordingControls.vue | 2 +- .../load3d/controls/ViewerControls.vue | 2 +- .../controls/viewer/ViewerCameraControls.vue | 2 +- .../controls/viewer/ViewerModelControls.vue | 5 +- src/components/maintenance/TaskListItem.vue | 2 +- .../maintenance/TaskListStatusIcon.vue | 3 +- .../maintenance/TerminalOutputDrawer.vue | 5 +- src/components/searchbox/NodeSearchBox.vue | 7 +- .../searchbox/NodeSearchBoxPopover.vue | 51 +- src/components/searchbox/NodeSearchFilter.vue | 5 +- src/components/searchbox/NodeSearchItem.vue | 3 +- .../sidebar/tabs/ModelLibrarySidebarTab.vue | 12 +- .../sidebar/tabs/NodeLibrarySidebarTab.vue | 14 +- .../sidebar/tabs/QueueSidebarTab.vue | 11 +- .../sidebar/tabs/WorkflowsSidebarTab.vue | 12 +- .../tabs/modelLibrary/ModelTreeLeaf.vue | 14 +- .../nodeLibrary/NodeBookmarkTreeExplorer.vue | 2 +- .../tabs/nodeLibrary/NodeTreeFolder.vue | 2 +- .../sidebar/tabs/nodeLibrary/NodeTreeLeaf.vue | 14 +- .../sidebar/tabs/queue/ResultAudio.vue | 2 +- .../sidebar/tabs/queue/ResultGallery.vue | 2 +- .../sidebar/tabs/queue/ResultItem.vue | 2 +- .../sidebar/tabs/queue/ResultVideo.vue | 2 +- .../sidebar/tabs/queue/TaskItem.vue | 2 +- .../tabs/workflows/WorkflowTreeLeaf.vue | 6 +- .../templates/TemplateWorkflowCard.spec.ts | 2 +- .../templates/TemplateWorkflowCard.vue | 2 +- .../templates/TemplateWorkflowView.spec.ts | 2 +- src/components/topbar/CommandMenubar.vue | 4 +- .../topbar/CurrentUserButton.spec.ts | 3 +- .../topbar/CurrentUserPopover.spec.ts | 3 +- src/components/topbar/WorkflowTab.vue | 2 +- src/components/topbar/WorkflowTabs.vue | 6 +- src/components/widget/SampleModelSelector.vue | 2 +- src/components/widget/nav/NavIcon.vue | 2 +- src/components/widget/nav/NavItem.vue | 2 +- src/components/widget/panel/LeftSidePanel.vue | 2 +- src/composables/auth/useCurrentUser.ts | 21 +- .../useCommandSubcategories.ts | 2 +- .../bottomPanelTabs/useShortcutsTab.ts | 2 +- .../bottomPanelTabs/useTerminal.ts | 3 +- .../bottomPanelTabs/useTerminalTabs.ts | 2 +- .../canvas/useCanvasTransformSync.ts | 2 +- .../canvas/useSelectedLiteGraphItems.ts | 8 +- .../canvas/useSelectionToolboxPosition.ts | 111 +- .../element/useAbsolutePosition.ts | 3 +- .../element/useCanvasPositionConversion.ts | 17 +- src/composables/element/useDomClipping.ts | 3 +- .../graph}/useCanvasInteractions.ts | 14 +- src/composables/graph/useGraphNodeManager.ts | 142 +- src/composables/graph/useMoreOptionsMenu.ts | 2 +- src/composables/graph/useSelectionState.ts | 7 +- src/composables/graph/useViewportCulling.ts | 47 +- src/composables/graph/useVueNodeLifecycle.ts | 60 +- .../manager}/useManagerStatePersistence.ts | 4 +- src/composables/node/useNodeBadge.ts | 3 +- src/composables/node/useNodeChatHistory.ts | 2 +- src/composables/node/useNodeImage.ts | 2 +- src/composables/node/useNodePricing.ts | 69 +- src/composables/node/useNodeProgressText.ts | 2 +- src/composables/nodePack/useInstalledPacks.ts | 4 +- src/composables/nodePack/useMissingNodes.ts | 6 +- src/composables/nodePack/useNodePacks.ts | 4 +- .../nodePack/usePackUpdateStatus.ts | 8 +- src/composables/nodePack/usePacksSelection.ts | 2 +- .../nodePack/useUpdateAvailableNodes.ts | 8 +- src/composables/nodePack/useWorkflowPacks.ts | 6 +- src/composables/useCanvasDrop.ts | 22 +- src/composables/useConflictDetection.ts | 8 +- src/composables/useCoreCommands.ts | 9 +- src/composables/useImportFailedDetection.ts | 2 +- src/composables/useLoad3dViewer.ts | 4 +- .../composables/useManagerQueue.ts | 5 +- .../composables/useManagerState.ts | 9 +- src/composables/usePaste.ts | 2 +- src/composables/useRegistrySearch.ts | 2 +- src/composables/useServerLogs.ts | 4 +- src/composables/useTreeExpansion.ts | 2 +- src/composables/useVueFeatureFlags.ts | 29 +- src/config/firebase.ts | 2 +- src/constants/coreKeybindings.ts | 10 +- src/constants/desktopDialogs.ts | 75 - src/constants/serverConfig.ts | 2 +- src/extensions/core/groupNode.ts | 8 +- src/extensions/core/load3d.ts | 2 +- .../core/load3d/AnimationManager.ts | 6 +- src/extensions/core/load3d/CameraManager.ts | 10 +- src/extensions/core/load3d/ControlsManager.ts | 6 +- src/extensions/core/load3d/EventManager.ts | 2 +- src/extensions/core/load3d/LightingManager.ts | 5 +- src/extensions/core/load3d/Load3d.ts | 12 +- src/extensions/core/load3d/Load3dAnimation.ts | 2 +- src/extensions/core/load3d/LoaderManager.ts | 6 +- src/extensions/core/load3d/NodeStorage.ts | 2 +- src/extensions/core/load3d/PreviewManager.ts | 5 +- .../core/load3d/RecordingManager.ts | 2 +- src/extensions/core/load3d/SceneManager.ts | 5 +- .../core/load3d/SceneModelManager.ts | 12 +- .../core/load3d/ViewHelperManager.ts | 5 +- src/extensions/core/load3d/interfaces.ts | 4 +- src/extensions/core/previewAny.ts | 2 +- src/extensions/core/saveMesh.ts | 2 +- src/extensions/core/uploadAudio.ts | 2 +- src/extensions/core/uploadImage.ts | 4 +- src/extensions/core/widgetInputs.ts | 4 +- src/i18n.ts | 9 +- src/lib/litegraph/src/CurveEditor.ts | 2 +- src/lib/litegraph/src/LGraphCanvas.ts | 31 +- src/lib/litegraph/src/LLink.ts | 6 +- src/lib/litegraph/src/LiteGraphGlobal.ts | 7 +- src/lib/litegraph/src/interfaces.ts | 2 +- src/lib/litegraph/src/litegraph.ts | 3 +- .../src/subgraph/EmptySubgraphInput.ts | 2 +- .../src/subgraph/EmptySubgraphOutput.ts | 2 +- .../src/subgraph/ExecutableNodeDTO.ts | 2 +- .../litegraph/src/subgraph/SubgraphNode.ts | 41 +- src/lib/litegraph/src/utils/linkColors.ts | 13 - src/lib/litegraph/src/widgets/AssetWidget.ts | 16 - src/lib/litegraph/src/widgets/ComboWidget.ts | 18 +- .../src/widgets/DisconnectedWidget.ts | 38 - src/lib/litegraph/src/widgets/widgetMap.ts | 6 - .../test/LGraphNode.titleButtons.test.ts | 2 +- .../test/LinkConnector.integration.test.ts | 3 +- src/lib/litegraph/test/NodeSlot.test.ts | 5 +- .../__snapshots__/ConfigureGraph.test.ts.snap | 328 + ...nkConnectorSubgraphInputValidation.test.ts | 2 +- .../test/subgraph/SubgraphConversion.test.ts | 3 +- .../subgraph/SubgraphNode.titleButton.test.ts | 2 +- .../subgraph/SubgraphSlotConnections.test.ts | 4 +- .../subgraph/SubgraphWidgetPromotion.test.ts | 3 +- .../subgraph/fixtures/subgraphFixtures.ts | 5 +- src/locales/CONTRIBUTING.md | 2 +- src/locales/README.md | 1 - src/locales/en/main.json | 19 - src/locales/en/settings.json | 2 +- src/locales/tr/commands.json | 312 - src/locales/tr/main.json | 1800 ---- src/locales/tr/nodeDefs.json | 8653 ----------------- src/locales/tr/settings.json | 424 - src/main.ts | 21 +- .../assets/components/AssetBadgeGroup.vue | 42 - .../components/AssetBrowserModal.stories.ts | 179 - .../assets/components/AssetBrowserModal.vue | 89 - .../assets/components/AssetCard.stories.ts | 182 - src/platform/assets/components/AssetCard.vue | 111 - .../assets/components/AssetFilterBar.vue | 103 - src/platform/assets/components/AssetGrid.vue | 70 - .../assets/composables/useAssetBrowser.ts | 217 - .../useAssetBrowserDialog.stories.ts | 203 - .../composables/useAssetBrowserDialog.ts | 73 - .../composables/useAssetFilterOptions.ts | 56 - .../assets/fixtures/ui-mock-assets.ts | 128 - src/platform/assets/schemas/assetSchema.ts | 36 +- src/platform/assets/services/assetService.ts | 72 +- .../assets/utils/assetMetadataUtils.ts | 27 - .../settings/components/ServerConfigPanel.vue | 2 +- .../components/SettingDialogContent.vue | 6 +- .../settings/components/SettingGroup.vue | 2 +- .../settings/components/SettingsPanel.vue | 2 +- .../composables/useLitegraphSettings.ts | 15 - .../settings/composables/useSettingSearch.ts | 4 +- .../settings/composables/useSettingUI.ts | 6 +- .../settings/constants/coreSettings.ts | 110 +- src/platform/settings/settingStore.ts | 21 +- src/platform/updates/common/releaseService.ts | 3 +- src/platform/updates/common/releaseStore.ts | 12 +- .../common/versionCompatibilityStore.ts | 8 +- .../workflow/core/services/workflowService.ts | 15 +- .../management/stores/workflowStore.ts | 13 +- src/renderer/core/canvas/canvasStore.ts | 40 +- src/renderer/core/canvas/injectionKeys.ts | 25 + .../canvas/links/slotLinkCompatibility.ts | 73 - .../core/canvas/links/slotLinkDragState.ts | 95 - .../canvas/links/slotLinkPreviewRenderer.ts | 95 - .../canvas/litegraph/litegraphLinkAdapter.ts | 77 +- src/renderer/core/canvas/pathRenderer.ts | 2 +- src/renderer/core/layout/injectionKeys.ts | 31 - .../core/layout/operations/layoutMutations.ts | 14 +- .../layout/slots/useDomSlotRegistration.ts | 229 + src/renderer/core/layout/store/layoutStore.ts | 89 +- .../core/layout/sync/useSlotLayoutSync.ts | 11 +- .../core/layout/transform/TransformPane.vue | 5 +- src/renderer/core/layout/types.ts | 4 - src/renderer/core/layout/utils/geometry.ts | 15 - .../core/thumbnail/useWorkflowThumbnail.ts | 2 +- .../minimap/composables/useMinimapGraph.ts | 48 +- .../minimap/composables/useMinimapViewport.ts | 16 +- .../minimap/data/AbstractMinimapDataSource.ts | 95 - .../minimap/data/LayoutStoreDataSource.ts | 42 - .../minimap/data/LiteGraphDataSource.ts | 30 - .../minimap/data/MinimapDataSourceFactory.ts | 22 - .../minimap/minimapCanvasRenderer.ts | 149 +- src/renderer/extensions/minimap/types.ts | 48 - .../components/InputOutputSlot.test.ts | 86 + .../vueNodes/components/InputSlot.vue | 72 +- .../vueNodes/components/LGraphNode.vue | 282 +- .../vueNodes/components/NodeHeader.spec.ts | 161 +- .../vueNodes/components/NodeHeader.vue | 89 +- .../vueNodes/components/NodeSlots.vue | 27 +- .../vueNodes/components/NodeWidgets.vue | 58 +- .../vueNodes/components/OutputSlot.vue | 73 +- .../composables/useNodeEventHandlers.ts | 35 +- .../composables/useNodePointerInteractions.ts | 93 - .../vueNodes/composables/useNodeTooltips.ts | 120 - .../composables/useSlotElementTracking.ts | 224 - .../composables/useSlotLinkInteraction.ts | 247 - .../composables/useVueNodeResizeTracking.ts | 89 +- .../execution/useExecutionStateProvider.ts | 36 + .../execution/useNodeExecutionState.ts | 25 +- .../vueNodes/layout/useNodeLayout.ts | 54 +- .../extensions/vueNodes/lod/useLOD.ts | 5 +- .../vueNodes/preview/useNodePreviewState.ts | 52 - .../vueNodes/stores/nodeSlotRegistryStore.ts | 50 - .../widgets/components/WidgetGalleria.vue | 2 +- .../components/WidgetImageCompare.test.ts | 337 - .../widgets/components/WidgetImageCompare.vue | 2 +- .../widgets/components/WidgetInputNumber.vue | 2 +- .../components/WidgetInputNumberInput.vue | 2 +- .../widgets/components/WidgetMarkdown.test.ts | 432 - .../components/WidgetTreeSelect.test.ts | 538 - .../widgets/components/WidgetTreeSelect.vue | 9 - .../components/form/FormSelectButton.test.ts | 507 - .../components/form/FormSelectButton.vue | 2 +- .../components/layout/WidgetLayoutField.vue | 2 +- .../widgets/composables/useBooleanWidget.ts | 2 +- .../widgets/composables/useComboWidget.ts | 49 +- .../widgets/composables/useFloatWidget.ts | 2 +- .../composables/useImagePreviewWidget.ts | 2 +- .../composables/useImageUploadWidget.ts | 2 +- .../widgets/composables/useMarkdownWidget.ts | 4 +- .../widgets/composables/useRemoteWidget.ts | 4 +- .../widgets/composables/useStringWidget.ts | 2 +- src/router.ts | 9 +- src/schemas/apiSchema.ts | 2 - src/schemas/nodeDef/migration.ts | 8 +- src/scripts/api.ts | 2 +- src/scripts/app.ts | 48 +- src/scripts/metadata/avif.ts | 2 +- src/scripts/metadata/ebml.ts | 10 +- src/scripts/metadata/gltf.ts | 12 +- src/scripts/metadata/isobmff.ts | 8 +- src/scripts/metadata/svg.ts | 2 +- src/scripts/ui.ts | 2 +- src/scripts/ui/components/button.ts | 4 +- src/scripts/ui/components/popup.ts | 2 +- src/services/colorPaletteService.ts | 7 +- .../services/comfyManagerService.ts | 7 +- src/services/comfyRegistryService.ts | 3 +- src/services/customerEventsService.ts | 6 +- src/services/dialogService.ts | 18 +- src/services/extensionService.ts | 8 - src/services/litegraphService.ts | 4 +- src/services/load3dService.ts | 2 +- src/services/mediaCacheService.ts | 2 +- src/services/nodeOrganizationService.ts | 3 +- src/services/nodeSearchService.ts | 7 +- .../providers/algoliaSearchProvider.ts | 2 +- src/services/subgraphService.ts | 8 +- src/stores/aboutPanelStore.ts | 2 +- src/stores/apiKeyAuthStore.ts | 4 +- .../manager => }/stores/comfyManagerStore.ts | 8 +- src/stores/executionStore.ts | 159 +- src/stores/firebaseAuthStore.ts | 10 +- src/stores/imagePreviewStore.ts | 51 +- src/stores/keybindingStore.ts | 5 +- src/stores/menuItemStore.ts | 2 +- src/stores/modelToNodeStore.ts | 35 +- src/stores/nodeBookmarkStore.ts | 3 +- src/stores/serverConfigStore.ts | 2 +- src/stores/subgraphStore.ts | 4 +- src/stores/userFileStore.ts | 4 +- src/stores/widgetStore.ts | 3 +- src/stores/workspace/bottomPanelStore.ts | 2 +- src/stores/workspace/sidebarTabStore.ts | 2 +- src/types/algoliasearch-lite.d.ts | 5 +- src/types/authTypes.ts | 4 - src/types/comfy.ts | 10 +- .../manager => }/types/comfyManagerTypes.ts | 0 src/types/extensionTypes.ts | 2 +- .../types/generatedManagerTypes.ts | 0 src/types/index.ts | 2 +- src/types/litegraph-augmentation.d.ts | 2 +- src/types/widgetTypes.ts | 2 +- src/utils/envUtil.ts | 2 +- src/utils/formatUtil.ts | 35 +- src/utils/fuseUtil.ts | 3 +- src/utils/graphTraversalUtil.ts | 17 - src/utils/litegraphUtil.ts | 3 +- src/utils/mapperUtil.ts | 6 +- src/utils/nodeDefOrderingUtil.ts | 2 +- src/utils/typeGuardUtil.ts | 9 +- src/utils/versionUtil.ts | 6 +- src/views/DesktopDialogView.vue | 70 - src/views/GraphView.vue | 46 +- src/views/InstallView.vue | 18 +- src/views/MaintenanceView.vue | 2 +- src/views/ServerStartView.vue | 5 +- src/views/UserSelectView.vue | 3 +- .../components/manager/ManagerHeader.test.ts | 45 - .../components/manager/ManagerHeader.vue | 11 - tailwind.config.ts | 10 - .../components/AssetBrowserModal.test.ts | 304 - .../assets/components/AssetFilterBar.test.ts | 138 - .../composables/useAssetBrowser.test.ts | 509 - .../composables/useAssetBrowserDialog.test.ts | 96 - .../composables/useAssetFilterOptions.test.ts | 159 - .../tabs/terminal/BaseTerminal.test.ts | 3 +- .../manager/NodeConflictDialogContent.test.ts | 2 +- .../content/manager/packCard/PackCard.test.ts | 9 +- .../footer/ManagerProgressFooter.test.ts | 16 +- .../canvas/useSelectedLiteGraphItems.test.ts | 4 +- .../graph}/useCanvasInteractions.test.ts | 2 +- .../composables/node/useNodePricing.test.ts | 155 - .../nodePack/usePacksSelection.test.ts | 2 +- .../composables/useConflictDetection.test.ts | 8 +- .../useImportFailedDetection.test.ts | 4 +- .../tests/composables/useManagerQueue.test.ts | 4 +- .../tests/composables/useManagerState.test.ts | 68 +- .../tests/composables/useMissingNodes.test.ts | 4 +- .../composables/useNodeChatHistory.test.ts | 2 +- .../tests/composables/useServerLogs.test.ts | 2 +- .../useUpdateAvailableNodes.test.ts | 47 +- ...nkConnectorSubgraphInputValidation.test.ts | 2 +- .../core/LGraphNode.titleButtons.test.ts | 2 +- .../core/LinkConnector.integration.test.ts | 3 +- .../tests/litegraph/core/NodeSlot.test.ts | 5 +- .../core/__snapshots__/litegraph.test.ts.snap | 2 - .../subgraph/SubgraphConversion.test.ts | 4 +- .../subgraph/SubgraphNode.titleButton.test.ts | 2 +- .../subgraph/SubgraphSlotConnections.test.ts | 4 +- .../subgraph/SubgraphWidgetPromotion.test.ts | 4 +- .../subgraph/fixtures/subgraphFixtures.ts | 5 +- .../tests/minimap/MinimapDataSource.test.ts | 174 - tests-ui/tests/nodeSearchService.test.ts | 2 +- .../performance/transformPerformance.test.ts | 2 +- .../assets/utils/assetMetadataUtils.test.ts | 65 - .../vueNodes/components/LGraphNode.spec.ts | 157 +- .../components/NodeHeader.subgraph.test.ts | 223 - .../composables/useNodeEventHandlers.test.ts | 212 +- .../composables/useComboWidget.test.ts | 26 +- .../composables/useRemoteWidget.test.ts | 2 +- .../composables/useWorkflowThumbnail.spec.ts | 6 +- .../services/algoliaSearchProvider.test.ts | 2 +- tests-ui/tests/services/assetService.test.ts | 159 +- .../tests/store/comfyManagerStore.test.ts | 10 +- .../tests/store/firebaseAuthStore.test.ts | 9 +- .../tests/store/imagePreviewStore.test.ts | 4 +- tests-ui/tests/store/modelToNodeStore.test.ts | 103 +- tests-ui/tests/store/releaseStore.test.ts | 121 +- .../tests/store/serverConfigStore.test.ts | 2 +- tests-ui/tests/store/workflowStore.test.ts | 4 +- tests-ui/tests/utils/litegraphUtil.test.ts | 2 +- .../utils/migration/migrateReroute.test.ts | 8 +- tests-ui/tests/utils/treeUtilTest.test.ts | 2 +- tests-ui/tsconfig.json | 14 - .../tsconfig.json => tsconfig.eslint.json | 11 +- tsconfig.json | 10 +- vite.config.mts | 3 +- vitest.config.ts | 3 +- 521 files changed, 8078 insertions(+), 22384 deletions(-) delete mode 100644 browser_tests/assets/vueNodes/simple-triple.json delete mode 100644 browser_tests/helpers/fitToView.ts delete mode 100644 browser_tests/tests/vueNodes/linkInteraction.spec.ts delete mode 100644 browser_tests/tests/vueNodes/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png delete mode 100644 browser_tests/tests/vueNodes/nodeInteractions/selectionState.spec.ts delete mode 100644 browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts rename eslint.config.ts => eslint.config.js (70%) delete mode 100644 public/fonts/inter-latin-italic.woff2 delete mode 100644 public/fonts/inter-latin-normal.woff2 delete mode 100644 src/assets/css/fonts.css delete mode 100644 src/base/common/async.ts create mode 100644 src/components/actionbar/BatchCountEdit.stories.ts create mode 100644 src/components/common/ContentDivider.stories.ts create mode 100644 src/components/common/EditableText.stories.ts create mode 100644 src/components/common/FormItem.stories.ts create mode 100644 src/components/common/InputKnob.stories.ts create mode 100644 src/components/common/NoResultsPlaceholder.stories.ts create mode 100644 src/components/common/RefreshButton.stories.ts create mode 100644 src/components/common/SearchBox.stories.ts create mode 100644 src/components/common/SearchFilterChip.stories.ts create mode 100644 src/components/common/TextDivider.stories.ts create mode 100644 src/components/common/TreeExplorer.stories.ts create mode 100644 src/components/common/UserAvatar.stories.ts rename src/{workbench/extensions/manager/components => components/dialog/content}/ManagerProgressDialogContent.test.ts (96%) rename src/{workbench/extensions/manager/components => components/dialog/content}/ManagerProgressDialogContent.vue (98%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/ManagerDialogContent.vue (92%) create mode 100644 src/components/dialog/content/manager/ManagerHeader.test.ts create mode 100644 src/components/dialog/content/manager/ManagerHeader.vue rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/ManagerNavSidebar.vue (93%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/NodeConflictDialogContent.vue (99%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/NodeConflictFooter.vue (100%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/NodeConflictHeader.vue (100%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/PackStatusMessage.vue (97%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/PackVersionBadge.test.ts (98%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/PackVersionBadge.vue (88%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/PackVersionSelectorPopover.test.ts (99%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/PackVersionSelectorPopover.vue (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/button/PackEnableToggle.test.ts (94%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/button/PackEnableToggle.vue (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/button/PackInstallButton.vue (91%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/button/PackUninstallButton.vue (81%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/button/PackUpdateButton.vue (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/InfoPanel.vue (85%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/InfoPanelHeader.vue (85%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/InfoPanelMultiItem.vue (87%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/InfoTabs.vue (86%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/InfoTextSection.vue (89%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/MarkdownText.vue (100%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/MetadataRow.vue (83%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/tabs/DescriptionTabPanel.test.ts (98%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/tabs/DescriptionTabPanel.vue (96%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/tabs/NodesTabPanel.vue (97%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/infoPanel/tabs/WarningTabPanel.vue (90%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/packBanner/PackBanner.vue (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/packCard/PackCard.vue (90%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/packCard/PackCardFooter.vue (80%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/packIcon/PackIcon.vue (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/packIcon/PackIconStacked.vue (81%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/registrySearchBar/RegistrySearchBar.vue (84%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/registrySearchBar/SearchFilterDropdown.vue (90%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/skeleton/GridSkeleton.vue (76%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/skeleton/PackCardGridSkeleton.test.ts (95%) rename src/{workbench/extensions/manager/components => components/dialog/content}/manager/skeleton/PackCardSkeleton.vue (100%) rename src/{workbench/extensions/manager/components => components/dialog/footer}/ManagerProgressFooter.vue (97%) rename src/{workbench/extensions/manager/components => components/dialog/header}/ManagerProgressHeader.vue (90%) rename src/{renderer/core/canvas => composables/graph}/useCanvasInteractions.ts (87%) rename src/{workbench/extensions/manager/composables => composables/manager}/useManagerStatePersistence.ts (87%) rename src/{workbench/extensions/manager => }/composables/useManagerQueue.ts (97%) rename src/{workbench/extensions/manager => }/composables/useManagerState.ts (94%) delete mode 100644 src/constants/desktopDialogs.ts delete mode 100644 src/lib/litegraph/src/utils/linkColors.ts delete mode 100644 src/lib/litegraph/src/widgets/DisconnectedWidget.ts delete mode 100644 src/locales/tr/commands.json delete mode 100644 src/locales/tr/main.json delete mode 100644 src/locales/tr/nodeDefs.json delete mode 100644 src/locales/tr/settings.json delete mode 100644 src/platform/assets/components/AssetBadgeGroup.vue delete mode 100644 src/platform/assets/components/AssetBrowserModal.stories.ts delete mode 100644 src/platform/assets/components/AssetBrowserModal.vue delete mode 100644 src/platform/assets/components/AssetCard.stories.ts delete mode 100644 src/platform/assets/components/AssetCard.vue delete mode 100644 src/platform/assets/components/AssetFilterBar.vue delete mode 100644 src/platform/assets/components/AssetGrid.vue delete mode 100644 src/platform/assets/composables/useAssetBrowser.ts delete mode 100644 src/platform/assets/composables/useAssetBrowserDialog.stories.ts delete mode 100644 src/platform/assets/composables/useAssetBrowserDialog.ts delete mode 100644 src/platform/assets/composables/useAssetFilterOptions.ts delete mode 100644 src/platform/assets/fixtures/ui-mock-assets.ts delete mode 100644 src/platform/assets/utils/assetMetadataUtils.ts create mode 100644 src/renderer/core/canvas/injectionKeys.ts delete mode 100644 src/renderer/core/canvas/links/slotLinkCompatibility.ts delete mode 100644 src/renderer/core/canvas/links/slotLinkDragState.ts delete mode 100644 src/renderer/core/canvas/links/slotLinkPreviewRenderer.ts delete mode 100644 src/renderer/core/layout/injectionKeys.ts create mode 100644 src/renderer/core/layout/slots/useDomSlotRegistration.ts delete mode 100644 src/renderer/core/layout/utils/geometry.ts delete mode 100644 src/renderer/extensions/minimap/data/AbstractMinimapDataSource.ts delete mode 100644 src/renderer/extensions/minimap/data/LayoutStoreDataSource.ts delete mode 100644 src/renderer/extensions/minimap/data/LiteGraphDataSource.ts delete mode 100644 src/renderer/extensions/minimap/data/MinimapDataSourceFactory.ts create mode 100644 src/renderer/extensions/vueNodes/components/InputOutputSlot.test.ts delete mode 100644 src/renderer/extensions/vueNodes/composables/useNodePointerInteractions.ts delete mode 100644 src/renderer/extensions/vueNodes/composables/useNodeTooltips.ts delete mode 100644 src/renderer/extensions/vueNodes/composables/useSlotElementTracking.ts delete mode 100644 src/renderer/extensions/vueNodes/composables/useSlotLinkInteraction.ts create mode 100644 src/renderer/extensions/vueNodes/execution/useExecutionStateProvider.ts delete mode 100644 src/renderer/extensions/vueNodes/preview/useNodePreviewState.ts delete mode 100644 src/renderer/extensions/vueNodes/stores/nodeSlotRegistryStore.ts delete mode 100644 src/renderer/extensions/vueNodes/widgets/components/WidgetImageCompare.test.ts delete mode 100644 src/renderer/extensions/vueNodes/widgets/components/WidgetMarkdown.test.ts delete mode 100644 src/renderer/extensions/vueNodes/widgets/components/WidgetTreeSelect.test.ts delete mode 100644 src/renderer/extensions/vueNodes/widgets/components/form/FormSelectButton.test.ts rename src/{workbench/extensions/manager => }/services/comfyManagerService.ts (97%) rename src/{workbench/extensions/manager => }/stores/comfyManagerStore.ts (97%) rename src/{workbench/extensions/manager => }/types/comfyManagerTypes.ts (100%) rename src/{workbench/extensions/manager => }/types/generatedManagerTypes.ts (100%) delete mode 100644 src/views/DesktopDialogView.vue delete mode 100644 src/workbench/extensions/manager/components/manager/ManagerHeader.test.ts delete mode 100644 src/workbench/extensions/manager/components/manager/ManagerHeader.vue delete mode 100644 tests-ui/platform/assets/components/AssetBrowserModal.test.ts delete mode 100644 tests-ui/platform/assets/components/AssetFilterBar.test.ts delete mode 100644 tests-ui/platform/assets/composables/useAssetBrowser.test.ts delete mode 100644 tests-ui/platform/assets/composables/useAssetBrowserDialog.test.ts delete mode 100644 tests-ui/platform/assets/composables/useAssetFilterOptions.test.ts rename tests-ui/tests/{renderer/core/canvas => composables/graph}/useCanvasInteractions.test.ts (98%) delete mode 100644 tests-ui/tests/minimap/MinimapDataSource.test.ts delete mode 100644 tests-ui/tests/platform/assets/utils/assetMetadataUtils.test.ts delete mode 100644 tests-ui/tests/renderer/extensions/vueNodes/components/NodeHeader.subgraph.test.ts delete mode 100644 tests-ui/tsconfig.json rename browser_tests/tsconfig.json => tsconfig.eslint.json (53%) diff --git a/.claude/commands/comprehensive-pr-review.md b/.claude/commands/comprehensive-pr-review.md index 1b4047e78..84708564e 100644 --- a/.claude/commands/comprehensive-pr-review.md +++ b/.claude/commands/comprehensive-pr-review.md @@ -67,9 +67,9 @@ This is critical for better file inspection: Use git locally for much faster analysis: -1. Get list of changed files: `git diff --name-only "$BASE_SHA" > changed_files.txt` -2. Get the full diff: `git diff "$BASE_SHA" > pr_diff.txt` -3. Get detailed file changes with status: `git diff --name-status "$BASE_SHA" > file_changes.txt` +1. Get list of changed files: `git diff --name-only "origin/$BASE_BRANCH" > changed_files.txt` +2. Get the full diff: `git diff "origin/$BASE_BRANCH" > pr_diff.txt` +3. Get detailed file changes with status: `git diff --name-status "origin/$BASE_BRANCH" > file_changes.txt` ### Step 1.5: Create Analysis Cache diff --git a/.gitattributes b/.gitattributes index bd0518cde..de05efbf4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,4 +13,4 @@ # Generated files src/types/comfyRegistryTypes.ts linguist-generated=true -src/workbench/extensions/manager/types/generatedManagerTypes.ts linguist-generated=true +src/types/generatedManagerTypes.ts linguist-generated=true diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 178bd4ee8..907695e57 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -4,25 +4,10 @@ on: pull_request_target: types: [closed, labeled] branches: [main] - workflow_dispatch: - inputs: - pr_number: - description: 'PR number to backport' - required: true - type: string - force_rerun: - description: 'Force rerun even if backports exist' - required: false - type: boolean - default: false jobs: backport: - if: > - (github.event_name == 'pull_request_target' && - github.event.pull_request.merged == true && - contains(github.event.pull_request.labels.*.name, 'needs-backport')) || - github.event_name == 'workflow_dispatch' + if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'needs-backport') runs-on: ubuntu-latest permissions: contents: write @@ -30,35 +15,6 @@ jobs: issues: write steps: - - name: Validate inputs for manual triggers - if: github.event_name == 'workflow_dispatch' - run: | - # Validate PR number format - if ! [[ "${{ inputs.pr_number }}" =~ ^[0-9]+$ ]]; then - echo "::error::Invalid PR number format. Must be a positive integer." - exit 1 - fi - - # Validate PR exists and is merged - if ! gh pr view "${{ inputs.pr_number }}" --json merged >/dev/null 2>&1; then - echo "::error::PR #${{ inputs.pr_number }} not found or inaccessible." - exit 1 - fi - - MERGED=$(gh pr view "${{ inputs.pr_number }}" --json merged --jq '.merged') - if [ "$MERGED" != "true" ]; then - echo "::error::PR #${{ inputs.pr_number }} is not merged. Only merged PRs can be backported." - exit 1 - fi - - # Validate PR has needs-backport label - if ! gh pr view "${{ inputs.pr_number }}" --json labels --jq '.labels[].name' | grep -q "needs-backport"; then - echo "::error::PR #${{ inputs.pr_number }} does not have 'needs-backport' label." - exit 1 - fi - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Checkout repository uses: actions/checkout@v4 with: @@ -73,7 +29,7 @@ jobs: id: check-existing env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_NUMBER: ${{ github.event_name == 'workflow_dispatch' && inputs.pr_number || github.event.pull_request.number }} + PR_NUMBER: ${{ github.event.pull_request.number }} run: | # Check for existing backport PRs for this PR number EXISTING_BACKPORTS=$(gh pr list --state all --search "backport-${PR_NUMBER}-to" --json title,headRefName,baseRefName | jq -r '.[].headRefName') @@ -83,13 +39,6 @@ jobs: exit 0 fi - # For manual triggers with force_rerun, proceed anyway - if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ inputs.force_rerun }}" = "true" ]; then - echo "skip=false" >> $GITHUB_OUTPUT - echo "::warning::Force rerun requested - existing backports will be updated" - exit 0 - fi - echo "Found existing backport PRs:" echo "$EXISTING_BACKPORTS" echo "skip=true" >> $GITHUB_OUTPUT @@ -101,17 +50,8 @@ jobs: run: | # Extract version labels (e.g., "1.24", "1.22") VERSIONS="" - - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - # For manual triggers, get labels from the PR - LABELS=$(gh pr view ${{ inputs.pr_number }} --json labels | jq -r '.labels[].name') - else - # For automatic triggers, extract from PR event - LABELS='${{ toJSON(github.event.pull_request.labels) }}' - LABELS=$(echo "$LABELS" | jq -r '.[].name') - fi - - for label in $LABELS; do + LABELS='${{ toJSON(github.event.pull_request.labels) }}' + for label in $(echo "$LABELS" | jq -r '.[].name'); do # Match version labels like "1.24" (major.minor only) if [[ "$label" =~ ^[0-9]+\.[0-9]+$ ]]; then # Validate the branch exists before adding to list @@ -135,20 +75,12 @@ jobs: if: steps.check-existing.outputs.skip != 'true' id: backport env: - PR_NUMBER: ${{ github.event_name == 'workflow_dispatch' && inputs.pr_number || github.event.pull_request.number }} + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_TITLE: ${{ github.event.pull_request.title }} + MERGE_COMMIT: ${{ github.event.pull_request.merge_commit_sha }} run: | FAILED="" SUCCESS="" - - # Get PR data for manual triggers - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - PR_DATA=$(gh pr view ${{ inputs.pr_number }} --json title,mergeCommit) - PR_TITLE=$(echo "$PR_DATA" | jq -r '.title') - MERGE_COMMIT=$(echo "$PR_DATA" | jq -r '.mergeCommit.oid') - else - PR_TITLE="${{ github.event.pull_request.title }}" - MERGE_COMMIT="${{ github.event.pull_request.merge_commit_sha }}" - fi for version in ${{ steps.versions.outputs.versions }}; do echo "::group::Backporting to core/${version}" @@ -201,18 +133,10 @@ jobs: if: steps.check-existing.outputs.skip != 'true' && steps.backport.outputs.success env: GH_TOKEN: ${{ secrets.PR_GH_TOKEN }} - PR_NUMBER: ${{ github.event_name == 'workflow_dispatch' && inputs.pr_number || github.event.pull_request.number }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_AUTHOR: ${{ github.event.pull_request.user.login }} run: | - # Get PR data for manual triggers - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - PR_DATA=$(gh pr view ${{ inputs.pr_number }} --json title,author) - PR_TITLE=$(echo "$PR_DATA" | jq -r '.title') - PR_AUTHOR=$(echo "$PR_DATA" | jq -r '.author.login') - else - PR_TITLE="${{ github.event.pull_request.title }}" - PR_AUTHOR="${{ github.event.pull_request.user.login }}" - fi - for backport in ${{ steps.backport.outputs.success }}; do IFS=':' read -r version branch <<< "${backport}" @@ -241,16 +165,9 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - PR_DATA=$(gh pr view ${{ inputs.pr_number }} --json author,mergeCommit) - PR_NUMBER="${{ inputs.pr_number }}" - PR_AUTHOR=$(echo "$PR_DATA" | jq -r '.author.login') - MERGE_COMMIT=$(echo "$PR_DATA" | jq -r '.mergeCommit.oid') - else - PR_NUMBER="${{ github.event.pull_request.number }}" - PR_AUTHOR="${{ github.event.pull_request.user.login }}" - MERGE_COMMIT="${{ github.event.pull_request.merge_commit_sha }}" - fi + PR_NUMBER="${{ github.event.pull_request.number }}" + PR_AUTHOR="${{ github.event.pull_request.user.login }}" + MERGE_COMMIT="${{ github.event.pull_request.merge_commit_sha }}" for failure in ${{ steps.backport.outputs.failed }}; do IFS=':' read -r version reason conflicts <<< "${failure}" diff --git a/.github/workflows/publish-frontend-types.yaml b/.github/workflows/publish-frontend-types.yaml index 142a22a93..398f5e0a7 100644 --- a/.github/workflows/publish-frontend-types.yaml +++ b/.github/workflows/publish-frontend-types.yaml @@ -88,8 +88,6 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - env: - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' - name: Build types run: pnpm build:types @@ -133,7 +131,7 @@ jobs: - name: Publish package if: steps.check_npm.outputs.exists == 'false' - run: pnpm publish --access public --tag "${{ inputs.dist_tag }}" --no-git-checks + run: pnpm publish --access public --tag "${{ inputs.dist_tag }}" working-directory: dist env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 32e1b6624..5a58d1b1a 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,6 @@ components.d.ts tests-ui/data/* tests-ui/ComfyUI_examples tests-ui/workflows/examples -coverage/ # Browser tests /test-results/ @@ -79,8 +78,8 @@ vite.config.mts.timestamp-*.mjs *storybook.log storybook-static -# MCP Servers -.playwright-mcp/* + + .nx/cache .nx/workspace-data diff --git a/.i18nrc.cjs b/.i18nrc.cjs index 2efe5f966..0429c3578 100644 --- a/.i18nrc.cjs +++ b/.i18nrc.cjs @@ -9,7 +9,7 @@ module.exports = defineConfig({ entry: 'src/locales/en', entryLocale: 'en', output: 'src/locales', - outputLocales: ['zh', 'zh-TW', 'ru', 'ja', 'ko', 'fr', 'es', 'ar', 'tr'], + outputLocales: ['zh', 'zh-TW', 'ru', 'ja', 'ko', 'fr', 'es', 'ar'], reference: `Special names to keep untranslated: flux, photomaker, clip, vae, cfg, stable audio, stable cascade, stable zero, controlnet, lora, HiDream. 'latent' is the short form of 'latent space'. 'mask' is in the context of image processing. diff --git a/.storybook/main.ts b/.storybook/main.ts index aa6bb1fbd..a799ec143 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -15,32 +15,21 @@ const config: StorybookConfig = { async viteFinal(config) { // Use dynamic import to avoid CJS deprecation warning const { mergeConfig } = await import('vite') - const { default: tailwindcss } = await import('@tailwindcss/vite') // Filter out any plugins that might generate import maps if (config.plugins) { - config.plugins = config.plugins - // Type guard: ensure we have valid plugin objects with names - .filter( - (plugin): plugin is NonNullable & { name: string } => { - return ( - plugin !== null && - plugin !== undefined && - typeof plugin === 'object' && - 'name' in plugin && - typeof plugin.name === 'string' - ) - } - ) - // Business logic: filter out import-map plugins - .filter((plugin) => !plugin.name.includes('import-map')) + config.plugins = config.plugins.filter((plugin: any) => { + if (plugin && plugin.name && plugin.name.includes('import-map')) { + return false + } + return true + }) } return mergeConfig(config, { // Replace plugins entirely to avoid inheritance issues plugins: [ // Only include plugins we explicitly need for Storybook - tailwindcss(), Icons({ compiler: 'vue3', customCollections: { diff --git a/.storybook/preview.ts b/.storybook/preview.ts index bfe81f431..58b8e3e5d 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,7 +1,7 @@ import { definePreset } from '@primevue/themes' import Aura from '@primevue/themes/aura' import { setup } from '@storybook/vue3' -import type { Preview, StoryContext, StoryFn } from '@storybook/vue3-vite' +import type { Preview } from '@storybook/vue3-vite' import { createPinia } from 'pinia' import 'primeicons/primeicons.css' import PrimeVue from 'primevue/config' @@ -9,9 +9,11 @@ import ConfirmationService from 'primevue/confirmationservice' import ToastService from 'primevue/toastservice' import Tooltip from 'primevue/tooltip' -import '@/assets/css/style.css' -import { i18n } from '@/i18n' -import '@/lib/litegraph/public/css/litegraph.css' +import '../src/assets/css/style.css' +import { i18n } from '../src/i18n' +import '../src/lib/litegraph/public/css/litegraph.css' +import { useWidgetStore } from '../src/stores/widgetStore' +import { useColorPaletteStore } from '../src/stores/workspace/colorPaletteStore' const ComfyUIPreset = definePreset(Aura, { semantic: { @@ -23,11 +25,13 @@ const ComfyUIPreset = definePreset(Aura, { // Setup Vue app for Storybook setup((app) => { app.directive('tooltip', Tooltip) - - // Create Pinia instance const pinia = createPinia() - app.use(pinia) + + // Initialize stores + useColorPaletteStore(pinia) + useWidgetStore(pinia) + app.use(i18n) app.use(PrimeVue, { theme: { @@ -46,8 +50,8 @@ setup((app) => { app.use(ToastService) }) -// Theme and dialog decorator -export const withTheme = (Story: StoryFn, context: StoryContext) => { +// Dark theme decorator +export const withTheme = (Story: any, context: any) => { const theme = context.globals.theme || 'light' // Apply theme class to document root @@ -59,9 +63,8 @@ export const withTheme = (Story: StoryFn, context: StoryContext) => { document.body.classList.remove('dark-theme') } - return Story(context.args, context) + return Story() } - const preview: Preview = { parameters: { controls: { diff --git a/CODEOWNERS b/CODEOWNERS index cd1b4e508..8d4e4a90f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,61 +1,17 @@ -# Desktop/Electron -/src/types/desktop/ @webfiltered -/src/constants/desktopDialogs.ts @webfiltered -/src/constants/desktopMaintenanceTasks.ts @webfiltered -/src/stores/electronDownloadStore.ts @webfiltered -/src/extensions/core/electronAdapter.ts @webfiltered -/src/views/DesktopDialogView.vue @webfiltered -/src/components/install/ @webfiltered -/src/components/maintenance/ @webfiltered -/vite.electron.config.mts @webfiltered +# Admins +* @Comfy-Org/comfy_frontend_devs -# Common UI Components -/src/components/chip/ @viva-jinyi -/src/components/card/ @viva-jinyi -/src/components/button/ @viva-jinyi -/src/components/input/ @viva-jinyi +# Maintainers +*.md @Comfy-Org/comfy_maintainer +/tests-ui/ @Comfy-Org/comfy_maintainer +/browser_tests/ @Comfy-Org/comfy_maintainer +/.env_example @Comfy-Org/comfy_maintainer -# Topbar -/src/components/topbar/ @pythongosssss +# Translations (AIGODLIKE team + shinshin86) +/src/locales/ @Yorha4D @KarryCharon @DorotaLuna @shinshin86 @Comfy-Org/comfy_maintainer -# Thumbnail -/src/renderer/core/thumbnail/ @pythongosssss +# Load 3D extension +/src/extensions/core/load3d.ts @jtydhr88 @Comfy-Org/comfy_frontend_devs -# Legacy UI -/scripts/ui/ @pythongosssss - -# Link rendering -/src/renderer/core/canvas/links/ @benceruleanlu - -# Node help system -/src/utils/nodeHelpUtil.ts @benceruleanlu -/src/stores/workspace/nodeHelpStore.ts @benceruleanlu -/src/services/nodeHelpService.ts @benceruleanlu - -# Selection toolbox -/src/components/graph/selectionToolbox/ @Myestery - -# Minimap -/src/renderer/extensions/minimap/ @jtydhr88 - -# Assets -/src/platform/assets/ @arjansingh - -# Workflow Templates -/src/platform/workflow/templates/ @Myestery @christian-byrne @comfyui-wiki -/src/components/templates/ @Myestery @christian-byrne @comfyui-wiki - -# Mask Editor -/src/extensions/core/maskeditor.ts @trsommer @brucew4yn3rp -/src/extensions/core/maskEditorLayerFilenames.ts @trsommer @brucew4yn3rp -/src/extensions/core/maskEditorOld.ts @trsommer @brucew4yn3rp - -# 3D -/src/extensions/core/load3d.ts @jtydhr88 -/src/components/load3d/ @jtydhr88 - -# Manager -/src/workbench/extensions/manager/ @viva-jinyi @christian-byrne @ltdrdata - -# Translations -/src/locales/ @Yorha4D @KarryCharon @shinshin86 @Comfy-Org/comfy_maintainer +# Mask Editor extension +/src/extensions/core/maskeditor.ts @brucew4yn3rp @trsommer @Comfy-Org/comfy_frontend_devs diff --git a/browser_tests/assets/vueNodes/simple-triple.json b/browser_tests/assets/vueNodes/simple-triple.json deleted file mode 100644 index 9b665191d..000000000 --- a/browser_tests/assets/vueNodes/simple-triple.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"4412323e-2509-4258-8abc-68ddeea8f9e1","revision":0,"last_node_id":39,"last_link_id":29,"nodes":[{"id":37,"type":"KSampler","pos":[3635.923095703125,870.237548828125],"size":[428,437],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":null},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":null},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":null},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":null}],"properties":{"Node name for S&R":"KSampler"},"widgets_values":[0,"randomize",20,8,"euler","simple",1]},{"id":38,"type":"VAEDecode","pos":[4164.01611328125,925.5230712890625],"size":[193.25,107],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"samples","name":"samples","type":"LATENT","link":null},{"localized_name":"vae","name":"vae","type":"VAE","link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":null}],"properties":{"Node name for S&R":"VAEDecode"}},{"id":39,"type":"CLIPTextEncode","pos":[3259.289794921875,927.2508544921875],"size":[239.9375,155],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":null},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":null}],"properties":{"Node name for S&R":"CLIPTextEncode"},"widgets_values":[""]}],"links":[],"groups":[],"config":{},"extra":{"ds":{"scale":1.1576250000000001,"offset":[-2808.366467322067,-478.34316506594797]}},"version":0.4} \ No newline at end of file diff --git a/browser_tests/fixtures/UserSelectPage.ts b/browser_tests/fixtures/UserSelectPage.ts index ff0735e17..62a961375 100644 --- a/browser_tests/fixtures/UserSelectPage.ts +++ b/browser_tests/fixtures/UserSelectPage.ts @@ -1,5 +1,4 @@ -import type { Page } from '@playwright/test' -import { test as base } from '@playwright/test' +import { Page, test as base } from '@playwright/test' export class UserSelectPage { constructor( diff --git a/browser_tests/fixtures/components/ComfyNodeSearchBox.ts b/browser_tests/fixtures/components/ComfyNodeSearchBox.ts index fd40ca911..23dc104cf 100644 --- a/browser_tests/fixtures/components/ComfyNodeSearchBox.ts +++ b/browser_tests/fixtures/components/ComfyNodeSearchBox.ts @@ -1,4 +1,4 @@ -import type { Locator, Page } from '@playwright/test' +import { Locator, Page } from '@playwright/test' export class ComfyNodeSearchFilterSelectionPanel { constructor(public readonly page: Page) {} diff --git a/browser_tests/fixtures/components/SettingDialog.ts b/browser_tests/fixtures/components/SettingDialog.ts index e9040a3a9..afaf86154 100644 --- a/browser_tests/fixtures/components/SettingDialog.ts +++ b/browser_tests/fixtures/components/SettingDialog.ts @@ -1,6 +1,6 @@ -import type { Page } from '@playwright/test' +import { Page } from '@playwright/test' -import type { ComfyPage } from '../ComfyPage' +import { ComfyPage } from '../ComfyPage' export class SettingDialog { constructor( diff --git a/browser_tests/fixtures/components/SidebarTab.ts b/browser_tests/fixtures/components/SidebarTab.ts index f3fbe42cf..7baaa1ef9 100644 --- a/browser_tests/fixtures/components/SidebarTab.ts +++ b/browser_tests/fixtures/components/SidebarTab.ts @@ -1,4 +1,4 @@ -import type { Locator, Page } from '@playwright/test' +import { Locator, Page } from '@playwright/test' class SidebarTab { constructor( diff --git a/browser_tests/fixtures/components/Topbar.ts b/browser_tests/fixtures/components/Topbar.ts index 6d0cd1fb3..04a9117ce 100644 --- a/browser_tests/fixtures/components/Topbar.ts +++ b/browser_tests/fixtures/components/Topbar.ts @@ -1,5 +1,4 @@ -import type { Locator, Page } from '@playwright/test' -import { expect } from '@playwright/test' +import { Locator, Page, expect } from '@playwright/test' export class Topbar { private readonly menuLocator: Locator diff --git a/browser_tests/fixtures/ws.ts b/browser_tests/fixtures/ws.ts index f1ab1a538..e12c53465 100644 --- a/browser_tests/fixtures/ws.ts +++ b/browser_tests/fixtures/ws.ts @@ -12,10 +12,9 @@ export const webSocketFixture = base.extend<{ // so we can look it up to trigger messages const store: Record = ((window as any).__ws__ = {}) window.WebSocket = class extends window.WebSocket { - constructor( - ...rest: ConstructorParameters - ) { - super(...rest) + constructor() { + // @ts-expect-error + super(...arguments) store[this.url] = this } } diff --git a/browser_tests/globalSetup.ts b/browser_tests/globalSetup.ts index 881ef11c4..12033fce3 100644 --- a/browser_tests/globalSetup.ts +++ b/browser_tests/globalSetup.ts @@ -1,4 +1,4 @@ -import type { FullConfig } from '@playwright/test' +import { FullConfig } from '@playwright/test' import dotenv from 'dotenv' import { backupPath } from './utils/backupUtils' diff --git a/browser_tests/globalTeardown.ts b/browser_tests/globalTeardown.ts index aeed77294..47bab3db9 100644 --- a/browser_tests/globalTeardown.ts +++ b/browser_tests/globalTeardown.ts @@ -1,4 +1,4 @@ -import type { FullConfig } from '@playwright/test' +import { FullConfig } from '@playwright/test' import dotenv from 'dotenv' import { restorePath } from './utils/backupUtils' diff --git a/browser_tests/helpers/fitToView.ts b/browser_tests/helpers/fitToView.ts deleted file mode 100644 index af6c10e9d..000000000 --- a/browser_tests/helpers/fitToView.ts +++ /dev/null @@ -1,104 +0,0 @@ -import type { ReadOnlyRect } from '../../src/lib/litegraph/src/interfaces' -import type { ComfyPage } from '../fixtures/ComfyPage' - -interface FitToViewOptions { - selectionOnly?: boolean - zoom?: number - padding?: number -} - -/** - * Instantly fits the canvas view to graph content without waiting for UI animation. - * - * Lives outside the shared fixture to keep the default ComfyPage interactions user-oriented. - */ -export async function fitToViewInstant( - comfyPage: ComfyPage, - options: FitToViewOptions = {} -) { - const { selectionOnly = false, zoom = 0.75, padding = 10 } = options - - const rectangles = await comfyPage.page.evaluate< - ReadOnlyRect[] | null, - { selectionOnly: boolean } - >( - ({ selectionOnly }) => { - const app = window['app'] - if (!app?.canvas) return null - - const canvas = app.canvas - const items = (() => { - if (selectionOnly && canvas.selectedItems?.size) { - return Array.from(canvas.selectedItems) - } - try { - return Array.from(canvas.positionableItems ?? []) - } catch { - return [] - } - })() - - if (!items.length) return null - - const rects: ReadOnlyRect[] = [] - - for (const item of items) { - const rect = item?.boundingRect - if (!rect) continue - - const x = Number(rect[0]) - const y = Number(rect[1]) - const width = Number(rect[2]) - const height = Number(rect[3]) - - rects.push([x, y, width, height] as const) - } - - return rects.length ? rects : null - }, - { selectionOnly } - ) - - if (!rectangles || rectangles.length === 0) return - - let minX = Infinity - let minY = Infinity - let maxX = -Infinity - let maxY = -Infinity - - for (const [x, y, width, height] of rectangles) { - minX = Math.min(minX, Number(x)) - minY = Math.min(minY, Number(y)) - maxX = Math.max(maxX, Number(x) + Number(width)) - maxY = Math.max(maxY, Number(y) + Number(height)) - } - - const hasFiniteBounds = - Number.isFinite(minX) && - Number.isFinite(minY) && - Number.isFinite(maxX) && - Number.isFinite(maxY) - - if (!hasFiniteBounds) return - - const bounds: ReadOnlyRect = [ - minX - padding, - minY - padding, - maxX - minX + 2 * padding, - maxY - minY + 2 * padding - ] - - await comfyPage.page.evaluate( - ({ bounds, zoom }) => { - const app = window['app'] - if (!app?.canvas) return - - const canvas = app.canvas - canvas.ds.fitToBounds(bounds, { zoom }) - canvas.setDirty(true, true) - }, - { bounds, zoom } - ) - - await comfyPage.nextFrame() -} diff --git a/browser_tests/helpers/manageGroupNode.ts b/browser_tests/helpers/manageGroupNode.ts index 45010b979..a444a97c6 100644 --- a/browser_tests/helpers/manageGroupNode.ts +++ b/browser_tests/helpers/manageGroupNode.ts @@ -1,4 +1,4 @@ -import type { Locator, Page } from '@playwright/test' +import { Locator, Page } from '@playwright/test' export class ManageGroupNode { footer: Locator diff --git a/browser_tests/helpers/templates.ts b/browser_tests/helpers/templates.ts index c690b8702..0d2c9f31e 100644 --- a/browser_tests/helpers/templates.ts +++ b/browser_tests/helpers/templates.ts @@ -1,7 +1,7 @@ -import type { Locator, Page } from '@playwright/test' +import { Locator, Page } from '@playwright/test' import path from 'path' -import type { +import { TemplateInfo, WorkflowTemplates } from '../../src/platform/workflow/templates/types/template' diff --git a/browser_tests/tests/actionbar.spec.ts b/browser_tests/tests/actionbar.spec.ts index b23e4466d..a504ea4fc 100644 --- a/browser_tests/tests/actionbar.spec.ts +++ b/browser_tests/tests/actionbar.spec.ts @@ -29,9 +29,9 @@ test.describe('Actionbar', () => { // Intercept the prompt queue endpoint let promptNumber = 0 - await comfyPage.page.route('**/api/prompt', async (route, req) => { + comfyPage.page.route('**/api/prompt', async (route, req) => { await new Promise((r) => setTimeout(r, 100)) - await route.fulfill({ + route.fulfill({ status: 200, body: JSON.stringify({ prompt_id: promptNumber, diff --git a/browser_tests/tests/changeTracker.spec.ts b/browser_tests/tests/changeTracker.spec.ts index 8c23c835a..7a32833e4 100644 --- a/browser_tests/tests/changeTracker.spec.ts +++ b/browser_tests/tests/changeTracker.spec.ts @@ -1,5 +1,5 @@ -import type { ComfyPage } from '../fixtures/ComfyPage' import { + ComfyPage, comfyExpect as expect, comfyPageFixture as test } from '../fixtures/ComfyPage' diff --git a/browser_tests/tests/chatHistory.spec.ts b/browser_tests/tests/chatHistory.spec.ts index 7d1bf6c10..db3397514 100644 --- a/browser_tests/tests/chatHistory.spec.ts +++ b/browser_tests/tests/chatHistory.spec.ts @@ -1,5 +1,4 @@ -import type { Page } from '@playwright/test' -import { expect } from '@playwright/test' +import { Page, expect } from '@playwright/test' import { comfyPageFixture as test } from '../fixtures/ComfyPage' diff --git a/browser_tests/tests/dialog.spec.ts b/browser_tests/tests/dialog.spec.ts index c86466215..cf2e5e6be 100644 --- a/browser_tests/tests/dialog.spec.ts +++ b/browser_tests/tests/dialog.spec.ts @@ -1,5 +1,4 @@ -import type { Locator } from '@playwright/test' -import { expect } from '@playwright/test' +import { Locator, expect } from '@playwright/test' import type { Keybinding } from '../../src/schemas/keyBindingSchema' import { comfyPageFixture as test } from '../fixtures/ComfyPage' diff --git a/browser_tests/tests/extensionAPI.spec.ts b/browser_tests/tests/extensionAPI.spec.ts index 38f4a6c1d..09a08384c 100644 --- a/browser_tests/tests/extensionAPI.spec.ts +++ b/browser_tests/tests/extensionAPI.spec.ts @@ -1,6 +1,6 @@ import { expect } from '@playwright/test' -import type { SettingParams } from '../../src/platform/settings/types' +import { SettingParams } from '../../src/platform/settings/types' import { comfyPageFixture as test } from '../fixtures/ComfyPage' test.describe('Topbar commands', () => { diff --git a/browser_tests/tests/groupNode.spec.ts b/browser_tests/tests/groupNode.spec.ts index fc8dbd646..41b50224a 100644 --- a/browser_tests/tests/groupNode.spec.ts +++ b/browser_tests/tests/groupNode.spec.ts @@ -1,7 +1,6 @@ import { expect } from '@playwright/test' -import type { ComfyPage } from '../fixtures/ComfyPage' -import { comfyPageFixture as test } from '../fixtures/ComfyPage' +import { ComfyPage, comfyPageFixture as test } from '../fixtures/ComfyPage' import type { NodeReference } from '../fixtures/utils/litegraphUtils' test.describe('Group Node', () => { diff --git a/browser_tests/tests/interaction.spec.ts b/browser_tests/tests/interaction.spec.ts index bd14f91ad..de46bca2e 100644 --- a/browser_tests/tests/interaction.spec.ts +++ b/browser_tests/tests/interaction.spec.ts @@ -1,13 +1,12 @@ -import type { Locator } from '@playwright/test' -import { expect } from '@playwright/test' -import type { Position } from '@vueuse/core' +import { Locator, expect } from '@playwright/test' +import { Position } from '@vueuse/core' import { type ComfyPage, comfyPageFixture as test, testComfySnapToGridGridSize } from '../fixtures/ComfyPage' -import type { NodeReference } from '../fixtures/utils/litegraphUtils' +import { type NodeReference } from '../fixtures/utils/litegraphUtils' test.describe('Item Interaction', () => { test('Can select/delete all items', async ({ comfyPage }) => { @@ -1013,8 +1012,6 @@ test.describe('Canvas Navigation', () => { test('Shift + mouse wheel should pan canvas horizontally', async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.Canvas.MouseWheelScroll', 'panning') - await comfyPage.page.click('canvas') await comfyPage.nextFrame() diff --git a/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-center-chromium-linux.png b/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-center-chromium-linux.png index a9d0efb74912f01837906e2c4e079e0070239241..57b6438aeb00eec7ccbc329e4782f344a22f1e4f 100644 GIT binary patch literal 100274 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�N2!|{MJ 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 literal 99438 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�gI9hK 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%0Aa-XtXjB=Fxl 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 KR*I(eng0QaTZvNu diff --git a/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-left-chromium-linux.png b/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-left-chromium-linux.png index 57a92edc5242e2d33a3d339c8aacadf10fa3a4e0..a9d0efb74912f01837906e2c4e079e0070239241 100644 GIT binary patch literal 99438 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�gI9hK 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%0Aa-XtXjB=Fxl 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 KR*I(eng0QaTZvNu literal 98303 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 UX6dU@a%bvl>F-F>usrww05%-b`Tzg` diff --git a/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-right-chromium-linux.png b/browser_tests/tests/interaction.spec.ts-snapshots/standard-shift-wheel-pan-right-chromium-linux.png index e607294e32236e5620278121c7972de953e65feb..57b6438aeb00eec7ccbc329e4782f344a22f1e4f 100644 GIT binary patch literal 100274 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�N2!|{MJ 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 literal 104502 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

pc1s;McND3OpYOB1w(~IhfaAR@krpZ&3xU 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 TLuMqV=vyDN|CE#X0RR91K>c5) diff --git a/scripts/collect-i18n-general.ts b/scripts/collect-i18n-general.ts index 53c813fb7..f0b6dde0c 100644 --- a/scripts/collect-i18n-general.ts +++ b/scripts/collect-i18n-general.ts @@ -2,7 +2,6 @@ import * as fs from 'fs' import { comfyPageFixture as test } from '../browser_tests/fixtures/ComfyPage' import { CORE_MENU_COMMANDS } from '../src/constants/coreMenuCommands' -import { DESKTOP_DIALOGS } from '../src/constants/desktopDialogs' import { SERVER_CONFIG_ITEMS } from '../src/constants/serverConfig' import type { FormItem, SettingParams } from '../src/platform/settings/types' import type { ComfyCommandImpl } from '../src/stores/commandStore' @@ -132,23 +131,6 @@ test('collect-i18n-general', async ({ comfyPage }) => { ]) ) - // Desktop Dialogs - const allDesktopDialogsLocale = Object.fromEntries( - Object.values(DESKTOP_DIALOGS).map((dialog) => [ - normalizeI18nKey(dialog.id), - { - title: dialog.title, - message: dialog.message, - buttons: Object.fromEntries( - dialog.buttons.map((button) => [ - normalizeI18nKey(button.label), - button.label - ]) - ) - } - ]) - ) - fs.writeFileSync( localePath, JSON.stringify( @@ -162,8 +144,7 @@ test('collect-i18n-general', async ({ comfyPage }) => { ...allSettingCategoriesLocale }, serverConfigItems: allServerConfigsLocale, - serverConfigCategories: allServerConfigCategoriesLocale, - desktopDialogs: allDesktopDialogsLocale + serverConfigCategories: allServerConfigCategoriesLocale }, null, 2 diff --git a/src/assets/css/fonts.css b/src/assets/css/fonts.css deleted file mode 100644 index cea388ee7..000000000 --- a/src/assets/css/fonts.css +++ /dev/null @@ -1,17 +0,0 @@ -/* Inter Font Family */ - -@font-face { - font-family: 'Inter'; - src: url('/fonts/inter-latin-normal.woff2') format('woff2'); - font-weight: 100 900; - font-style: normal; - font-display: swap; -} - -@font-face { - font-family: 'Inter'; - src: url('/fonts/inter-latin-italic.woff2') format('woff2'); - font-weight: 100 900; - font-style: italic; - font-display: swap; -} diff --git a/src/assets/css/style.css b/src/assets/css/style.css index cad8a1b3b..70b6bf0d3 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -1,6 +1,5 @@ @layer theme, base, primevue, components, utilities; -@import './fonts.css'; @import 'tailwindcss/theme' layer(theme); @import 'tailwindcss/utilities' layer(utilities); @import 'tw-animate-css'; @@ -53,20 +52,15 @@ --text-xxs: 0.625rem; --text-xxs--line-height: calc(1 / 0.625); - /* Font Families */ - --font-inter: 'Inter', sans-serif; - /* Palette Colors */ - --color-charcoal-100: #55565e; - --color-charcoal-200: #494a50; - --color-charcoal-300: #3c3d42; - --color-charcoal-400: #313235; - --color-charcoal-500: #2d2e32; - --color-charcoal-600: #262729; - --color-charcoal-700: #202121; - --color-charcoal-800: #171718; - - --color-neutral-550: #636363; + --color-charcoal-100: #171718; + --color-charcoal-200: #202121; + --color-charcoal-300: #262729; + --color-charcoal-400: #2d2e32; + --color-charcoal-500: #313235; + --color-charcoal-600: #3c3d42; + --color-charcoal-700: #494a50; + --color-charcoal-800: #55565e; --color-stone-100: #444444; --color-stone-200: #828282; @@ -105,16 +99,12 @@ --color-danger-100: #c02323; --color-danger-200: #d62952; - --color-coral-red-600: #973a40; - --color-coral-red-500: #c53f49; - --color-coral-red-400: #dd424e; - - --color-bypass: #6a246a; + --color-bypass: #6A246A; --color-error: #962a2a; - --color-blue-selection: rgb(from var(--color-blue-100) r g b / 0.3); - --color-node-hover-100: rgb(from var(--color-charcoal-100) r g b/ 0.15); - --color-node-hover-200: rgb(from var(--color-charcoal-100) r g b/ 0.1); + --color-blue-selection: rgb( from var(--color-blue-100) r g b / 0.3); + --color-node-hover-100: rgb( from var(--color-charcoal-800) r g b/ 0.15); + --color-node-hover-200: rgb(from var(--color-charcoal-800) r g b/ 0.1); --color-modal-tag: rgb(from var(--color-gray-400) r g b/ 0.4); /* PrimeVue pulled colors */ @@ -127,10 +117,10 @@ } @theme inline { - --color-node-component-surface: var(--color-charcoal-600); + --color-node-component-surface: var(--color-charcoal-300); --color-node-component-surface-highlight: var(--color-slate-100); - --color-node-component-surface-hovered: var(--color-charcoal-400); - --color-node-component-surface-selected: var(--color-charcoal-200); + --color-node-component-surface-hovered: var(--color-charcoal-500); + --color-node-component-surface-selected: var(--color-charcoal-700); --color-node-stroke: var(--color-stone-100); } @@ -142,7 +132,7 @@ @utility scrollbar-hide { scrollbar-width: none; - &::-webkit-scrollbar { + &::-webkit-scrollbar { width: 1px; } &::-webkit-scrollbar-thumb { diff --git a/src/base/common/async.ts b/src/base/common/async.ts deleted file mode 100644 index a97f6f1bd..000000000 --- a/src/base/common/async.ts +++ /dev/null @@ -1,98 +0,0 @@ -/** - * Cross-browser async utilities for scheduling tasks during browser idle time - * with proper fallbacks for browsers that don't support requestIdleCallback. - * - * Implementation based on: - * https://github.com/microsoft/vscode/blob/main/src/vs/base/common/async.ts - */ - -interface IdleDeadline { - didTimeout: boolean - timeRemaining(): number -} - -interface IDisposable { - dispose(): void -} - -/** - * Internal implementation function that handles the actual scheduling logic. - * Uses feature detection to determine whether to use native requestIdleCallback - * or fall back to setTimeout-based implementation. - */ -let _runWhenIdle: ( - targetWindow: any, - callback: (idle: IdleDeadline) => void, - timeout?: number -) => IDisposable - -/** - * Execute the callback during the next browser idle period. - * Falls back to setTimeout-based scheduling in browsers without native support. - */ -export let runWhenGlobalIdle: ( - callback: (idle: IdleDeadline) => void, - timeout?: number - ) => IDisposable - - // Self-invoking function to set up the idle callback implementation -;(function () { - const safeGlobal: any = globalThis - - if ( - typeof safeGlobal.requestIdleCallback !== 'function' || - typeof safeGlobal.cancelIdleCallback !== 'function' - ) { - // Fallback implementation for browsers without native support (e.g., Safari) - _runWhenIdle = (_targetWindow, runner, _timeout?) => { - setTimeout(() => { - if (disposed) { - return - } - - // Simulate IdleDeadline - give 15ms window (one frame at ~64fps) - const end = Date.now() + 15 - const deadline: IdleDeadline = { - didTimeout: true, - timeRemaining() { - return Math.max(0, end - Date.now()) - } - } - - runner(Object.freeze(deadline)) - }) - - let disposed = false - return { - dispose() { - if (disposed) { - return - } - disposed = true - } - } - } - } else { - // Native requestIdleCallback implementation - _runWhenIdle = (targetWindow: typeof safeGlobal, runner, timeout?) => { - const handle: number = targetWindow.requestIdleCallback( - runner, - typeof timeout === 'number' ? { timeout } : undefined - ) - - let disposed = false - return { - dispose() { - if (disposed) { - return - } - disposed = true - targetWindow.cancelIdleCallback(handle) - } - } - } - } - - runWhenGlobalIdle = (runner, timeout) => - _runWhenIdle(globalThis, runner, timeout) -})() diff --git a/src/components/MenuHamburger.vue b/src/components/MenuHamburger.vue index d0856362f..b46c27e27 100644 --- a/src/components/MenuHamburger.vue +++ b/src/components/MenuHamburger.vue @@ -21,8 +21,7 @@ diff --git a/src/workbench/extensions/manager/components/manager/ManagerNavSidebar.vue b/src/components/dialog/content/manager/ManagerNavSidebar.vue similarity index 93% rename from src/workbench/extensions/manager/components/manager/ManagerNavSidebar.vue rename to src/components/dialog/content/manager/ManagerNavSidebar.vue index 0e643b445..c84734a30 100644 --- a/src/workbench/extensions/manager/components/manager/ManagerNavSidebar.vue +++ b/src/components/dialog/content/manager/ManagerNavSidebar.vue @@ -32,7 +32,7 @@ import Listbox from 'primevue/listbox' import ScrollPanel from 'primevue/scrollpanel' import ContentDivider from '@/components/common/ContentDivider.vue' -import type { TabItem } from '@/workbench/extensions/manager/types/comfyManagerTypes' +import type { TabItem } from '@/types/comfyManagerTypes' defineProps<{ tabs: TabItem[] diff --git a/src/workbench/extensions/manager/components/manager/NodeConflictDialogContent.vue b/src/components/dialog/content/manager/NodeConflictDialogContent.vue similarity index 99% rename from src/workbench/extensions/manager/components/manager/NodeConflictDialogContent.vue rename to src/components/dialog/content/manager/NodeConflictDialogContent.vue index b6cd70a70..ec00b42c5 100644 --- a/src/workbench/extensions/manager/components/manager/NodeConflictDialogContent.vue +++ b/src/components/dialog/content/manager/NodeConflictDialogContent.vue @@ -169,7 +169,7 @@ import { useI18n } from 'vue-i18n' import ContentDivider from '@/components/common/ContentDivider.vue' import { useConflictDetection } from '@/composables/useConflictDetection' -import type { +import { ConflictDetail, ConflictDetectionResult } from '@/types/conflictDetectionTypes' diff --git a/src/workbench/extensions/manager/components/manager/NodeConflictFooter.vue b/src/components/dialog/content/manager/NodeConflictFooter.vue similarity index 100% rename from src/workbench/extensions/manager/components/manager/NodeConflictFooter.vue rename to src/components/dialog/content/manager/NodeConflictFooter.vue diff --git a/src/workbench/extensions/manager/components/manager/NodeConflictHeader.vue b/src/components/dialog/content/manager/NodeConflictHeader.vue similarity index 100% rename from src/workbench/extensions/manager/components/manager/NodeConflictHeader.vue rename to src/components/dialog/content/manager/NodeConflictHeader.vue diff --git a/src/workbench/extensions/manager/components/manager/PackStatusMessage.vue b/src/components/dialog/content/manager/PackStatusMessage.vue similarity index 97% rename from src/workbench/extensions/manager/components/manager/PackStatusMessage.vue rename to src/components/dialog/content/manager/PackStatusMessage.vue index eae2d565b..ab2b38a45 100644 --- a/src/workbench/extensions/manager/components/manager/PackStatusMessage.vue +++ b/src/components/dialog/content/manager/PackStatusMessage.vue @@ -19,7 +19,7 @@ import Message from 'primevue/message' import { computed, inject } from 'vue' -import type { components } from '@/types/comfyRegistryTypes' +import { components } from '@/types/comfyRegistryTypes' import { ImportFailedKey } from '@/types/importFailedTypes' type PackVersionStatus = components['schemas']['NodeVersionStatus'] diff --git a/src/workbench/extensions/manager/components/manager/PackVersionBadge.test.ts b/src/components/dialog/content/manager/PackVersionBadge.test.ts similarity index 98% rename from src/workbench/extensions/manager/components/manager/PackVersionBadge.test.ts rename to src/components/dialog/content/manager/PackVersionBadge.test.ts index e4eca3016..f57c65760 100644 --- a/src/workbench/extensions/manager/components/manager/PackVersionBadge.test.ts +++ b/src/components/dialog/content/manager/PackVersionBadge.test.ts @@ -1,5 +1,4 @@ -import type { VueWrapper } from '@vue/test-utils' -import { mount } from '@vue/test-utils' +import { VueWrapper, mount } from '@vue/test-utils' import { createPinia } from 'pinia' import PrimeVue from 'primevue/config' import Tooltip from 'primevue/tooltip' @@ -35,7 +34,7 @@ const mockInstalledPacks = { const mockIsPackEnabled = vi.fn(() => true) -vi.mock('@/workbench/extensions/manager/stores/comfyManagerStore', () => ({ +vi.mock('@/stores/comfyManagerStore', () => ({ useComfyManagerStore: vi.fn(() => ({ installedPacks: mockInstalledPacks, isPackInstalled: (id: string) => diff --git a/src/workbench/extensions/manager/components/manager/PackVersionBadge.vue b/src/components/dialog/content/manager/PackVersionBadge.vue similarity index 88% rename from src/workbench/extensions/manager/components/manager/PackVersionBadge.vue rename to src/components/dialog/content/manager/PackVersionBadge.vue index 204b2a78e..e0fc111ca 100644 --- a/src/workbench/extensions/manager/components/manager/PackVersionBadge.vue +++ b/src/components/dialog/content/manager/PackVersionBadge.vue @@ -43,13 +43,13 @@ diff --git a/src/platform/assets/components/AssetBrowserModal.stories.ts b/src/platform/assets/components/AssetBrowserModal.stories.ts deleted file mode 100644 index 9d2321d57..000000000 --- a/src/platform/assets/components/AssetBrowserModal.stories.ts +++ /dev/null @@ -1,179 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/vue3-vite' - -import AssetBrowserModal from '@/platform/assets/components/AssetBrowserModal.vue' -import type { AssetDisplayItem } from '@/platform/assets/composables/useAssetBrowser' -import { - createMockAssets, - mockAssets -} from '@/platform/assets/fixtures/ui-mock-assets' - -// Story arguments interface -interface StoryArgs { - nodeType: string - inputName: string - currentValue: string - showLeftPanel?: boolean -} - -const meta: Meta = { - title: 'Platform/Assets/AssetBrowserModal', - component: AssetBrowserModal, - parameters: { - layout: 'fullscreen' - }, - argTypes: { - nodeType: { - control: 'select', - options: ['CheckpointLoaderSimple', 'VAELoader', 'ControlNetLoader'], - description: 'ComfyUI node type for context' - }, - inputName: { - control: 'select', - options: ['ckpt_name', 'vae_name', 'control_net_name'], - description: 'Widget input name' - }, - currentValue: { - control: 'text', - description: 'Current selected asset value' - }, - showLeftPanel: { - control: 'boolean', - description: 'Whether to show the left panel with categories' - } - } -} - -export default meta -type Story = StoryObj - -// Modal Layout Stories -export const Default: Story = { - args: { - nodeType: 'CheckpointLoaderSimple', - inputName: 'ckpt_name', - currentValue: '', - showLeftPanel: false - }, - render: (args) => ({ - components: { AssetBrowserModal }, - setup() { - const onAssetSelect = (asset: AssetDisplayItem) => { - console.log('Selected asset:', asset) - } - const onClose = () => { - console.log('Modal closed') - } - - return { - ...args, - onAssetSelect, - onClose, - assets: mockAssets - } - }, - template: ` -

- ` - }) -} - -// Story demonstrating single asset type (auto-hides left panel) -export const SingleAssetType: Story = { - args: { - nodeType: 'CheckpointLoaderSimple', - inputName: 'ckpt_name', - currentValue: '', - showLeftPanel: false - }, - render: (args) => ({ - components: { AssetBrowserModal }, - setup() { - const onAssetSelect = (asset: AssetDisplayItem) => { - console.log('Selected asset:', asset) - } - const onClose = () => { - console.log('Modal closed') - } - - // Create assets with only one type (checkpoints) - const singleTypeAssets = createMockAssets(15).map((asset) => ({ - ...asset, - type: 'checkpoint' - })) - - return { ...args, onAssetSelect, onClose, assets: singleTypeAssets } - }, - template: ` -
- -
- ` - }), - parameters: { - docs: { - description: { - story: - 'Modal with assets of only one type (checkpoint) - left panel auto-hidden.' - } - } - } -} - -// Story with left panel explicitly hidden -export const NoLeftPanel: Story = { - args: { - nodeType: 'CheckpointLoaderSimple', - inputName: 'ckpt_name', - currentValue: '', - showLeftPanel: false - }, - render: (args) => ({ - components: { AssetBrowserModal }, - setup() { - const onAssetSelect = (asset: AssetDisplayItem) => { - console.log('Selected asset:', asset) - } - const onClose = () => { - console.log('Modal closed') - } - - return { ...args, onAssetSelect, onClose, assets: mockAssets } - }, - template: ` -
- -
- ` - }), - parameters: { - docs: { - description: { - story: - 'Modal with left panel explicitly disabled via showLeftPanel=false.' - } - } - } -} diff --git a/src/platform/assets/components/AssetBrowserModal.vue b/src/platform/assets/components/AssetBrowserModal.vue deleted file mode 100644 index cb45f38ba..000000000 --- a/src/platform/assets/components/AssetBrowserModal.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/src/platform/assets/components/AssetCard.stories.ts b/src/platform/assets/components/AssetCard.stories.ts deleted file mode 100644 index 2b3532a05..000000000 --- a/src/platform/assets/components/AssetCard.stories.ts +++ /dev/null @@ -1,182 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/vue3-vite' - -import AssetCard from '@/platform/assets/components/AssetCard.vue' -import type { AssetDisplayItem } from '@/platform/assets/composables/useAssetBrowser' -import { mockAssets } from '@/platform/assets/fixtures/ui-mock-assets' - -// Use the first mock asset as base and transform it to display format -const baseAsset = mockAssets[0] -const createAssetData = ( - overrides: Partial = {} -): AssetDisplayItem => ({ - ...baseAsset, - description: - 'High-quality realistic images with perfect detail and natural lighting effects for professional photography', - formattedSize: '2.1 GB', - badges: [ - { label: 'checkpoints', type: 'type' }, - { label: '2.1 GB', type: 'size' } - ], - stats: { - formattedDate: '3/15/25', - downloadCount: '1.8k', - stars: '4.2k' - }, - ...overrides -}) - -const meta: Meta = { - title: 'Platform/Assets/AssetCard', - component: AssetCard, - parameters: { - layout: 'centered' - }, - decorators: [ - () => ({ - template: - '
' - }) - ] -} - -export default meta -type Story = StoryObj - -export const Interactive: Story = { - args: { - asset: createAssetData(), - interactive: true - }, - decorators: [ - () => ({ - template: - '
' - }) - ], - parameters: { - docs: { - description: { - story: - 'Default AssetCard with complete data including badges and all stats.' - } - } - } -} - -export const NonInteractive: Story = { - args: { - asset: createAssetData(), - interactive: false - }, - decorators: [ - () => ({ - template: - '
' - }) - ], - parameters: { - docs: { - description: { - story: - 'AssetCard in non-interactive mode - renders as div without button semantics.' - } - } - } -} - -export const EdgeCases: Story = { - render: () => ({ - components: { AssetCard }, - setup() { - const edgeCases = [ - // Default case for comparison - createAssetData({ - name: 'Complete Data', - description: 'Asset with all data present for comparison' - }), - // No badges - createAssetData({ - id: 'no-badges', - name: 'No Badges', - description: 'Testing graceful handling when badges are not provided', - badges: [] - }), - // No stars - createAssetData({ - id: 'no-stars', - name: 'No Stars', - description: 'Testing missing stars data gracefully', - stats: { - downloadCount: '1.8k', - formattedDate: '3/15/25' - } - }), - // No downloads - createAssetData({ - id: 'no-downloads', - name: 'No Downloads', - description: 'Testing missing downloads data gracefully', - stats: { - stars: '4.2k', - formattedDate: '3/15/25' - } - }), - // No date - createAssetData({ - id: 'no-date', - name: 'No Date', - description: 'Testing missing date data gracefully', - stats: { - stars: '4.2k', - downloadCount: '1.8k' - } - }), - // No stats at all - createAssetData({ - id: 'no-stats', - name: 'No Stats', - description: 'Testing when all stats are missing', - stats: {} - }), - // Long description - createAssetData({ - id: 'long-desc', - name: 'Long Description', - description: - 'This is a very long description that should demonstrate how the component handles text overflow and truncation with ellipsis. The description continues with even more content to ensure we test the 2-line clamp behavior properly and see how it renders when there is significantly more text than can fit in the allocated space.' - }), - // Minimal data - createAssetData({ - id: 'minimal', - name: 'Minimal', - description: 'Basic model', - tags: ['models'], - badges: [], - stats: {} - }) - ] - - return { edgeCases } - }, - template: ` -
- -
- ` - }), - parameters: { - layout: 'fullscreen', - docs: { - description: { - story: - 'All AssetCard edge cases in a grid layout to test graceful handling of missing data, badges, stats, and long descriptions.' - } - } - } -} diff --git a/src/platform/assets/components/AssetCard.vue b/src/platform/assets/components/AssetCard.vue deleted file mode 100644 index be7c45ca5..000000000 --- a/src/platform/assets/components/AssetCard.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/src/platform/assets/components/AssetFilterBar.vue b/src/platform/assets/components/AssetFilterBar.vue deleted file mode 100644 index 904ce3e82..000000000 --- a/src/platform/assets/components/AssetFilterBar.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - diff --git a/src/platform/assets/components/AssetGrid.vue b/src/platform/assets/components/AssetGrid.vue deleted file mode 100644 index 35122fd52..000000000 --- a/src/platform/assets/components/AssetGrid.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/src/platform/assets/composables/useAssetBrowser.ts b/src/platform/assets/composables/useAssetBrowser.ts deleted file mode 100644 index 97ed9746e..000000000 --- a/src/platform/assets/composables/useAssetBrowser.ts +++ /dev/null @@ -1,217 +0,0 @@ -import { computed, ref } from 'vue' - -import { d, t } from '@/i18n' -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' -import { assetFilenameSchema } from '@/platform/assets/schemas/assetSchema' -import { assetService } from '@/platform/assets/services/assetService' -import { - getAssetBaseModel, - getAssetDescription -} from '@/platform/assets/utils/assetMetadataUtils' -import { formatSize } from '@/utils/formatUtil' - -type AssetBadge = { - label: string - type: 'type' | 'base' | 'size' -} - -// Display properties for transformed assets -export interface AssetDisplayItem extends AssetItem { - description: string - formattedSize: string - badges: AssetBadge[] - stats: { - formattedDate?: string - downloadCount?: string - stars?: string - } -} - -/** - * Asset Browser composable - * Manages search, filtering, asset transformation and selection logic - */ -export function useAssetBrowser(assets: AssetItem[] = []) { - // State - const searchQuery = ref('') - const selectedCategory = ref('all') - const sortBy = ref('name') - - // Transform API asset to display asset - function transformAssetForDisplay(asset: AssetItem): AssetDisplayItem { - // Extract description from metadata or create from tags - const typeTag = asset.tags.find((tag) => tag !== 'models') - const description = - getAssetDescription(asset) || - `${typeTag || t('assetBrowser.unknown')} model` - - // Format file size - const formattedSize = formatSize(asset.size) - - // Create badges from tags and metadata - const badges: AssetBadge[] = [] - - // Type badge from non-root tag - if (typeTag) { - badges.push({ label: typeTag, type: 'type' }) - } - - // Base model badge from metadata - const baseModel = getAssetBaseModel(asset) - if (baseModel) { - badges.push({ - label: baseModel, - type: 'base' - }) - } - - // Size badge - badges.push({ label: formattedSize, type: 'size' }) - - // Create display stats from API data - const stats = { - formattedDate: d(new Date(asset.created_at), { dateStyle: 'short' }), - downloadCount: undefined, // Not available in API - stars: undefined // Not available in API - } - - return { - ...asset, - description, - formattedSize, - badges, - stats - } - } - - // Extract available categories from assets - const availableCategories = computed(() => { - const categorySet = new Set() - - assets.forEach((asset) => { - // Second tag is the category (after 'models' root tag) - if (asset.tags.length > 1 && asset.tags[0] === 'models') { - categorySet.add(asset.tags[1]) - } - }) - - return [ - { - id: 'all', - label: t('assetBrowser.allModels'), - icon: 'icon-[lucide--folder]' - }, - ...Array.from(categorySet) - .sort() - .map((category) => ({ - id: category, - label: category.charAt(0).toUpperCase() + category.slice(1), - icon: 'icon-[lucide--package]' - })) - ] - }) - - // Compute content title from selected category - const contentTitle = computed(() => { - if (selectedCategory.value === 'all') { - return t('assetBrowser.allModels') - } - - const category = availableCategories.value.find( - (cat) => cat.id === selectedCategory.value - ) - return category?.label || t('assetBrowser.assets') - }) - - // Filter functions - const filterByCategory = (category: string) => (asset: AssetItem) => { - if (category === 'all') return true - return asset.tags.includes(category) - } - - const filterByQuery = (query: string) => (asset: AssetItem) => { - if (!query) return true - const lowerQuery = query.toLowerCase() - const description = getAssetDescription(asset) - return ( - asset.name.toLowerCase().includes(lowerQuery) || - (description && description.toLowerCase().includes(lowerQuery)) || - asset.tags.some((tag) => tag.toLowerCase().includes(lowerQuery)) - ) - } - - // Computed filtered and transformed assets - const filteredAssets = computed(() => { - const filtered = assets - .filter(filterByCategory(selectedCategory.value)) - .filter(filterByQuery(searchQuery.value)) - - // Sort assets - filtered.sort((a, b) => { - switch (sortBy.value) { - case 'date': - return ( - new Date(b.created_at).getTime() - new Date(a.created_at).getTime() - ) - case 'name': - default: - return a.name.localeCompare(b.name) - } - }) - - // Transform to display format - return filtered.map(transformAssetForDisplay) - }) - - /** - * Asset selection that fetches full details and executes callback with filename - * @param assetId - The asset ID to select and fetch details for - * @param onSelect - Optional callback to execute with the asset filename - */ - async function selectAssetWithCallback( - assetId: string, - onSelect?: (filename: string) => void - ): Promise { - if (import.meta.env.DEV) { - console.debug('Asset selected:', assetId) - } - - if (!onSelect) { - return - } - - try { - const detailAsset = await assetService.getAssetDetails(assetId) - const filename = detailAsset.user_metadata?.filename - const validatedFilename = assetFilenameSchema.safeParse(filename) - if (!validatedFilename.success) { - console.error( - 'Invalid asset filename:', - validatedFilename.error.errors, - 'for asset:', - assetId - ) - return - } - - onSelect(validatedFilename.data) - } catch (error) { - console.error(`Failed to fetch asset details for ${assetId}:`, error) - } - } - - return { - // State - searchQuery, - selectedCategory, - sortBy, - - // Computed - availableCategories, - contentTitle, - filteredAssets, - - // Actions - selectAssetWithCallback - } -} diff --git a/src/platform/assets/composables/useAssetBrowserDialog.stories.ts b/src/platform/assets/composables/useAssetBrowserDialog.stories.ts deleted file mode 100644 index e0095b619..000000000 --- a/src/platform/assets/composables/useAssetBrowserDialog.stories.ts +++ /dev/null @@ -1,203 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/vue3-vite' -import { ref } from 'vue' - -import AssetBrowserModal from '@/platform/assets/components/AssetBrowserModal.vue' -import { mockAssets } from '@/platform/assets/fixtures/ui-mock-assets' - -// Component that simulates the useAssetBrowserDialog functionality with working close -const DialogDemoComponent = { - components: { AssetBrowserModal }, - setup() { - const isDialogOpen = ref(false) - const currentNodeType = ref('CheckpointLoaderSimple') - const currentInputName = ref('ckpt_name') - const currentValue = ref('') - - const handleOpenDialog = ( - nodeType: string, - inputName: string, - value = '' - ) => { - currentNodeType.value = nodeType - currentInputName.value = inputName - currentValue.value = value - isDialogOpen.value = true - } - - const handleCloseDialog = () => { - isDialogOpen.value = false - } - - const handleAssetSelected = (assetPath: string) => { - console.log('Asset selected:', assetPath) - alert(`Selected asset: ${assetPath}`) - isDialogOpen.value = false // Auto-close like the real composable - } - - const handleOpenWithCurrentValue = () => { - handleOpenDialog( - 'CheckpointLoaderSimple', - 'ckpt_name', - 'realistic_vision_v5.safetensors' - ) - } - - return { - isDialogOpen, - currentNodeType, - currentInputName, - currentValue, - handleOpenDialog, - handleOpenWithCurrentValue, - handleCloseDialog, - handleAssetSelected, - mockAssets - } - }, - template: ` -
-
-

Asset Browser Dialog Demo

- -
-
-

Different Node Types

-
- - - -
-
- -
-

With Current Value

- -

- Opens with "realistic_vision_v5.safetensors" as current value -

-
- -
-

Instructions:

-
    -
  • • Click any button to open the Asset Browser dialog
  • -
  • • Select an asset to see the callback in action
  • -
  • • Check the browser console for logged events
  • -
  • • Try toggling the left panel with different asset types
  • -
  • • Close button will work properly in this demo
  • -
-
-
-
- - -
-
- -
-
-
- ` -} - -const meta: Meta = { - title: 'Platform/Assets/useAssetBrowserDialog', - parameters: { - layout: 'fullscreen', - docs: { - description: { - component: - 'Demonstrates the AssetBrowserModal functionality as used by the useAssetBrowserDialog composable.' - } - } - } -} - -export default meta -type Story = StoryObj - -export const Demo: Story = { - render: () => ({ - components: { DialogDemoComponent }, - template: ` -
- - - -
-

Code Example

-

- This is how you would use the composable in your component: -

-
-
import { useAssetBrowserDialog } from '@/platform/assets/composables/useAssetBrowserDialog'
-
-export default {
-  setup() {
-    const assetBrowserDialog = useAssetBrowserDialog()
-
-    const openBrowser = () => {
-      assetBrowserDialog.show({
-        nodeType: 'CheckpointLoaderSimple',
-        inputName: 'ckpt_name',
-        currentValue: '',
-        onAssetSelected: (assetPath) => {
-          console.log('Selected:', assetPath)
-          // Update your component state
-        }
-      })
-    }
-
-    return { openBrowser }
-  }
-}
-
-
-

- 💡 Try it: Use the interactive buttons above to see this code in action! -

-
-
-
- ` - }), - parameters: { - docs: { - description: { - story: - 'Complete demo showing both interactive functionality and code examples for using useAssetBrowserDialog to open the Asset Browser modal programmatically.' - } - } - } -} diff --git a/src/platform/assets/composables/useAssetBrowserDialog.ts b/src/platform/assets/composables/useAssetBrowserDialog.ts deleted file mode 100644 index 31f75c353..000000000 --- a/src/platform/assets/composables/useAssetBrowserDialog.ts +++ /dev/null @@ -1,73 +0,0 @@ -import AssetBrowserModal from '@/platform/assets/components/AssetBrowserModal.vue' -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' -import { assetService } from '@/platform/assets/services/assetService' -import { type DialogComponentProps, useDialogStore } from '@/stores/dialogStore' - -interface AssetBrowserDialogProps { - /** ComfyUI node type for context (e.g., 'CheckpointLoaderSimple') */ - nodeType: string - /** Widget input name (e.g., 'ckpt_name') */ - inputName: string - /** Current selected asset value */ - currentValue?: string - /** - * Callback for when an asset is selected - * @param {string} filename - The validated filename from user_metadata.filename - */ - onAssetSelected?: (filename: string) => void -} - -export const useAssetBrowserDialog = () => { - const dialogStore = useDialogStore() - const dialogKey = 'global-asset-browser' - - async function show(props: AssetBrowserDialogProps) { - const handleAssetSelected = (filename: string) => { - props.onAssetSelected?.(filename) - dialogStore.closeDialog({ key: dialogKey }) - } - const dialogComponentProps: DialogComponentProps = { - headless: true, - modal: true, - closable: true, - pt: { - root: { - class: 'rounded-2xl overflow-hidden asset-browser-dialog' - }, - header: { - class: 'p-0 hidden' - }, - content: { - class: 'p-0 m-0 h-full w-full' - } - } - } - - const assets: AssetItem[] = await assetService - .getAssetsForNodeType(props.nodeType) - .catch((error) => { - console.error( - 'Failed to fetch assets for node type:', - props.nodeType, - error - ) - return [] - }) - - dialogStore.showDialog({ - key: dialogKey, - component: AssetBrowserModal, - props: { - nodeType: props.nodeType, - inputName: props.inputName, - currentValue: props.currentValue, - assets, - onSelect: handleAssetSelected, - onClose: () => dialogStore.closeDialog({ key: dialogKey }) - }, - dialogComponentProps - }) - } - - return { show } -} diff --git a/src/platform/assets/composables/useAssetFilterOptions.ts b/src/platform/assets/composables/useAssetFilterOptions.ts deleted file mode 100644 index 30572d8c9..000000000 --- a/src/platform/assets/composables/useAssetFilterOptions.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { uniqWith } from 'es-toolkit' -import { computed } from 'vue' - -import type { SelectOption } from '@/components/input/types' -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' - -/** - * Composable that extracts available filter options from asset data - * Provides reactive computed properties for file formats and base models - */ -export function useAssetFilterOptions(assets: AssetItem[] = []) { - /** - * Extract unique file formats from asset names - * Returns sorted SelectOption array with extensions - */ - const availableFileFormats = computed(() => { - const extensions = assets - .map((asset) => { - const extension = asset.name.split('.').pop() - return extension && extension !== asset.name ? extension : null - }) - .filter((extension): extension is string => extension !== null) - - const uniqueExtensions = uniqWith(extensions, (a, b) => a === b) - - return uniqueExtensions.sort().map((format) => ({ - name: `.${format}`, - value: format - })) - }) - - /** - * Extract unique base models from asset user metadata - * Returns sorted SelectOption array with base model names - */ - const availableBaseModels = computed(() => { - const models = assets - .map((asset) => asset.user_metadata?.base_model) - .filter( - (baseModel): baseModel is string => - baseModel !== undefined && typeof baseModel === 'string' - ) - - const uniqueModels = uniqWith(models, (a, b) => a === b) - - return uniqueModels.sort().map((model) => ({ - name: model, - value: model - })) - }) - - return { - availableFileFormats, - availableBaseModels - } -} diff --git a/src/platform/assets/fixtures/ui-mock-assets.ts b/src/platform/assets/fixtures/ui-mock-assets.ts deleted file mode 100644 index 6c7284386..000000000 --- a/src/platform/assets/fixtures/ui-mock-assets.ts +++ /dev/null @@ -1,128 +0,0 @@ -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' - -// 🎭 OBVIOUSLY FAKE MOCK DATA - DO NOT USE IN PRODUCTION! 🎭 -const fakeFunnyModelNames = [ - '🎯_totally_real_model_v420.69', - '🚀_definitely_not_fake_v999', - '🎪_super_legit_checkpoint_pro_max', - '🦄_unicorn_dreams_totally_real.model', - '🍕_pizza_generator_supreme', - '🎸_rock_star_fake_data_v1337', - '🌮_taco_tuesday_model_deluxe', - '🦖_dino_nugget_generator_v3', - '🎮_gamer_fuel_checkpoint_xl', - '🍄_mushroom_kingdom_diffusion', - '🏴‍☠️_pirate_treasure_model_arr', - '🦋_butterfly_effect_generator', - '🎺_jazz_hands_checkpoint_pro', - '🥨_pretzel_logic_model_v2', - '🌙_midnight_snack_generator', - '🎭_drama_llama_checkpoint', - '🧙‍♀️_wizard_hat_diffusion_xl', - '🎪_circus_peanut_model_v4', - '🦒_giraffe_neck_generator', - '🎲_random_stuff_checkpoint_max' -] - -const obviouslyFakeDescriptions = [ - '⚠️ FAKE DATA: Generates 100% authentic fake images with premium mock quality', - '🎭 MOCK ALERT: This totally real model creates absolutely genuine fake content', - '🚨 NOT REAL: Professional-grade fake imagery for your mock data needs', - '🎪 DEMO ONLY: Circus-quality fake generation with extra mock seasoning', - '🍕 FAKE FOOD: Generates delicious fake pizzas (not edible in reality)', - "🎸 MOCK ROCK: Creates fake rock stars who definitely don't exist", - '🌮 TACO FAKERY: Tuesday-themed fake tacos for your mock appetite', - '🦖 PREHISTORIC FAKE: Generates extinct fake dinosaurs for demo purposes', - '🎮 FAKE GAMING: Level up your mock data with obviously fake content', - '🍄 FUNGI FICTION: Magical fake mushrooms from the demo dimension', - '🏴‍☠️ FAKE TREASURE: Arr! This be mock data for ye demo needs, matey!', - '🦋 DEMO EFFECT: Small fake changes create big mock differences', - '🎺 JAZZ FAKERY: Smooth fake jazz for your mock listening pleasure', - '🥨 MOCK LOGIC: Twisted fake reasoning for your demo requirements', - '🌙 MIDNIGHT MOCK: Late-night fake snacks for your demo hunger', - '🎭 FAKE DRAMA: Over-the-top mock emotions for demo entertainment', - '🧙‍♀️ WIZARD MOCK: Magically fake spells cast with demo ingredients', - '🎪 CIRCUS FAKE: Big top mock entertainment under the demo tent', - '🦒 TALL FAKE: Reaches new heights of obviously fake content', - '🎲 RANDOM MOCK: Generates random fake stuff for your demo pleasure' -] - -// API-compliant tag structure: first tag must be root (models/input/output), second is category -const modelCategories = ['checkpoints', 'loras', 'embeddings', 'vae'] -const baseModels = ['sd15', 'sdxl', 'sd35'] -const fileExtensions = ['.safetensors', '.ckpt', '.pt'] -const mimeTypes = [ - 'application/octet-stream', - 'application/x-pytorch', - 'application/x-safetensors' -] - -function getRandomElement(array: T[]): T { - return array[Math.floor(Math.random() * array.length)] -} - -function getRandomNumber(min: number, max: number): number { - return Math.floor(Math.random() * (max - min + 1)) + min -} - -function getRandomISODate(): string { - const start = new Date('2024-01-01').getTime() - const end = new Date('2024-12-31').getTime() - const randomTime = start + Math.random() * (end - start) - return new Date(randomTime).toISOString() -} - -function generateFakeAssetHash(): string { - const chars = '0123456789abcdef' - let hash = 'blake3:' - for (let i = 0; i < 64; i++) { - hash += chars[Math.floor(Math.random() * chars.length)] - } - return hash -} - -// 🎭 CREATES OBVIOUSLY FAKE ASSETS FOR DEMO/TEST PURPOSES ONLY! 🎭 -export function createMockAssets(count: number = 20): AssetItem[] { - return Array.from({ length: count }, (_, index) => { - const category = getRandomElement(modelCategories) - const baseModel = getRandomElement(baseModels) - const extension = getRandomElement(fileExtensions) - const mimeType = getRandomElement(mimeTypes) - const sizeInBytes = getRandomNumber( - 500 * 1024 * 1024, - 8 * 1024 * 1024 * 1024 - ) // 500MB to 8GB - const createdAt = getRandomISODate() - const updatedAt = createdAt - const lastAccessTime = getRandomISODate() - - const fakeFileName = `${fakeFunnyModelNames[index]}${extension}` - - return { - id: `mock-asset-uuid-${(index + 1).toString().padStart(3, '0')}-fake`, - name: fakeFileName, - asset_hash: generateFakeAssetHash(), - size: sizeInBytes, - mime_type: mimeType, - tags: [ - 'models', // Root tag (required first) - category, // Category tag (required second for models) - 'fake-data', // Obviously fake tag - ...(Math.random() > 0.5 ? ['demo-mode'] : ['test-only']), - ...(Math.random() > 0.7 ? ['obviously-mock'] : []) - ], - preview_url: `/api/assets/mock-asset-uuid-${(index + 1).toString().padStart(3, '0')}-fake/content`, - created_at: createdAt, - updated_at: updatedAt, - last_access_time: lastAccessTime, - user_metadata: { - description: obviouslyFakeDescriptions[index], - base_model: baseModel, - original_name: fakeFunnyModelNames[index], - warning: '🚨 THIS IS FAKE DEMO DATA - NOT A REAL MODEL! 🚨' - } - } - }) -} - -export const mockAssets = createMockAssets(20) diff --git a/src/platform/assets/schemas/assetSchema.ts b/src/platform/assets/schemas/assetSchema.ts index 2c051a30d..277efcbb0 100644 --- a/src/platform/assets/schemas/assetSchema.ts +++ b/src/platform/assets/schemas/assetSchema.ts @@ -1,19 +1,12 @@ import { z } from 'zod' -// Zod schemas for asset API validation matching ComfyUI Assets REST API spec +// Zod schemas for asset API validation const zAsset = z.object({ id: z.string(), name: z.string(), - asset_hash: z.string().nullable(), - size: z.number(), - mime_type: z.string().nullable(), tags: z.array(z.string()), - preview_url: z.string().optional(), - created_at: z.string(), - updated_at: z.string().optional(), - last_access_time: z.string(), - user_metadata: z.record(z.unknown()).optional(), // API allows arbitrary key-value pairs - preview_id: z.string().nullable().optional() + size: z.number(), + created_at: z.string().optional() }) const zAssetResponse = z.object({ @@ -27,30 +20,19 @@ const zModelFolder = z.object({ folders: z.array(z.string()) }) -// Zod schema for ModelFile to align with interface -const zModelFile = z.object({ - name: z.string(), - pathIndex: z.number() -}) - -// Filename validation schema -export const assetFilenameSchema = z - .string() - .min(1, 'Filename cannot be empty') - .regex(/^[^\\:*?"<>|]+$/, 'Invalid filename characters') // Allow forward slashes, block backslashes and other unsafe chars - .regex(/^(?!\/|.*\.\.)/, 'Path must not start with / or contain ..') // Prevent absolute paths and directory traversal - .trim() - // Export schemas following repository patterns export const assetResponseSchema = zAssetResponse // Export types derived from Zod schemas -export type AssetItem = z.infer export type AssetResponse = z.infer export type ModelFolder = z.infer -export type ModelFile = z.infer -// Legacy interface for backward compatibility (now aligned with Zod schema) +// Common interfaces for API responses +export interface ModelFile { + name: string + pathIndex: number +} + export interface ModelFolderInfo { name: string folders: string[] diff --git a/src/platform/assets/services/assetService.ts b/src/platform/assets/services/assetService.ts index 7d0f82cbb..344209bf7 100644 --- a/src/platform/assets/services/assetService.ts +++ b/src/platform/assets/services/assetService.ts @@ -1,7 +1,6 @@ import { fromZodError } from 'zod-validation-error' import { - type AssetItem, type AssetResponse, type ModelFile, type ModelFolder, @@ -68,7 +67,7 @@ function createAssetService() { ) // Blacklist directories we don't want to show - const blacklistedDirectories = new Set(['configs']) + const blacklistedDirectories = ['configs'] // Extract directory names from assets that actually exist, exclude missing assets const discoveredFolders = new Set( @@ -76,7 +75,7 @@ function createAssetService() { ?.filter((asset) => !asset.tags.includes(MISSING_TAG)) ?.flatMap((asset) => asset.tags) ?.filter( - (tag) => tag !== MODELS_TAG && !blacklistedDirectories.has(tag) + (tag) => tag !== MODELS_TAG && !blacklistedDirectories.includes(tag) ) ?? [] ) @@ -128,75 +127,10 @@ function createAssetService() { ) } - /** - * Gets assets for a specific node type by finding the matching category - * and fetching all assets with that category tag - * - * @param nodeType - The ComfyUI node type (e.g., 'CheckpointLoaderSimple') - * @returns Promise - Full asset objects with preserved metadata - */ - async function getAssetsForNodeType(nodeType: string): Promise { - if (!nodeType || typeof nodeType !== 'string') { - return [] - } - - // Find the category for this node type using efficient O(1) lookup - const modelToNodeStore = useModelToNodeStore() - const category = modelToNodeStore.getCategoryForNodeType(nodeType) - - if (!category) { - return [] - } - - // Fetch assets for this category using same API pattern as getAssetModels - const data = await handleAssetRequest( - `${ASSETS_ENDPOINT}?include_tags=${MODELS_TAG},${category}`, - `assets for ${nodeType}` - ) - - // Return full AssetItem[] objects (don't strip like getAssetModels does) - return ( - data?.assets?.filter( - (asset) => - !asset.tags.includes(MISSING_TAG) && asset.tags.includes(category) - ) ?? [] - ) - } - - /** - * Gets complete details for a specific asset by ID - * Calls the detail endpoint which includes user_metadata and all fields - * - * @param id - The asset ID - * @returns Promise - Complete asset object with user_metadata - */ - async function getAssetDetails(id: string): Promise { - const res = await api.fetchApi(`${ASSETS_ENDPOINT}/${id}`) - if (!res.ok) { - throw new Error( - `Unable to load asset details for ${id}: Server returned ${res.status}. Please try again.` - ) - } - const data = await res.json() - - // Validate the single asset response against our schema - const result = assetResponseSchema.safeParse({ assets: [data] }) - if (result.success && result.data.assets?.[0]) { - return result.data.assets[0] - } - - const error = result.error - ? fromZodError(result.error) - : 'Unknown validation error' - throw new Error(`Invalid asset response against zod schema:\n${error}`) - } - return { getAssetModelFolders, getAssetModels, - isAssetBrowserEligible, - getAssetsForNodeType, - getAssetDetails + isAssetBrowserEligible } } diff --git a/src/platform/assets/utils/assetMetadataUtils.ts b/src/platform/assets/utils/assetMetadataUtils.ts deleted file mode 100644 index 2d32fa07f..000000000 --- a/src/platform/assets/utils/assetMetadataUtils.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' - -/** - * Type-safe utilities for extracting metadata from assets - */ - -/** - * Safely extracts string description from asset metadata - * @param asset - The asset to extract description from - * @returns The description string or null if not present/not a string - */ -export function getAssetDescription(asset: AssetItem): string | null { - return typeof asset.user_metadata?.description === 'string' - ? asset.user_metadata.description - : null -} - -/** - * Safely extracts string base_model from asset metadata - * @param asset - The asset to extract base_model from - * @returns The base_model string or null if not present/not a string - */ -export function getAssetBaseModel(asset: AssetItem): string | null { - return typeof asset.user_metadata?.base_model === 'string' - ? asset.user_metadata.base_model - : null -} diff --git a/src/platform/settings/components/ServerConfigPanel.vue b/src/platform/settings/components/ServerConfigPanel.vue index 8f2cd1cd7..08f929ded 100644 --- a/src/platform/settings/components/ServerConfigPanel.vue +++ b/src/platform/settings/components/ServerConfigPanel.vue @@ -54,7 +54,7 @@
import NoResultsPlaceholder from '@/components/common/NoResultsPlaceholder.vue' import SettingGroup from '@/platform/settings/components/SettingGroup.vue' -import type { ISettingGroup } from '@/platform/settings/types' +import { ISettingGroup } from '@/platform/settings/types' const props = defineProps<{ settingGroups: ISettingGroup[] diff --git a/src/platform/settings/composables/useLitegraphSettings.ts b/src/platform/settings/composables/useLitegraphSettings.ts index 468c7d339..347e0289e 100644 --- a/src/platform/settings/composables/useLitegraphSettings.ts +++ b/src/platform/settings/composables/useLitegraphSettings.ts @@ -131,26 +131,11 @@ export const useLitegraphSettings = () => { const navigationMode = settingStore.get('Comfy.Canvas.NavigationMode') as | 'standard' | 'legacy' - | 'custom' LiteGraph.canvasNavigationMode = navigationMode LiteGraph.macTrackpadGestures = navigationMode === 'standard' }) - watchEffect(() => { - const leftMouseBehavior = settingStore.get( - 'Comfy.Canvas.LeftMouseClickBehavior' - ) as 'panning' | 'select' - LiteGraph.leftMouseClickBehavior = leftMouseBehavior - }) - - watchEffect(() => { - const mouseWheelScroll = settingStore.get( - 'Comfy.Canvas.MouseWheelScroll' - ) as 'panning' | 'zoom' - LiteGraph.mouseWheelScroll = mouseWheelScroll - }) - watchEffect(() => { LiteGraph.saveViewportWithGraph = settingStore.get( 'Comfy.EnableWorkflowViewRestore' diff --git a/src/platform/settings/composables/useSettingSearch.ts b/src/platform/settings/composables/useSettingSearch.ts index c2bf3cfe8..c401cc415 100644 --- a/src/platform/settings/composables/useSettingSearch.ts +++ b/src/platform/settings/composables/useSettingSearch.ts @@ -1,12 +1,12 @@ import { computed, ref, watch } from 'vue' import { st } from '@/i18n' -import type { SettingTreeNode } from '@/platform/settings/settingStore' import { + SettingTreeNode, getSettingInfo, useSettingStore } from '@/platform/settings/settingStore' -import type { ISettingGroup, SettingParams } from '@/platform/settings/types' +import { ISettingGroup, SettingParams } from '@/platform/settings/types' import { normalizeI18nKey } from '@/utils/formatUtil' export function useSettingSearch() { diff --git a/src/platform/settings/composables/useSettingUI.ts b/src/platform/settings/composables/useSettingUI.ts index 8a01ec1e2..9aa8ea316 100644 --- a/src/platform/settings/composables/useSettingUI.ts +++ b/src/platform/settings/composables/useSettingUI.ts @@ -8,8 +8,10 @@ import { import { useI18n } from 'vue-i18n' import { useCurrentUser } from '@/composables/auth/useCurrentUser' -import type { SettingTreeNode } from '@/platform/settings/settingStore' -import { useSettingStore } from '@/platform/settings/settingStore' +import { + SettingTreeNode, + useSettingStore +} from '@/platform/settings/settingStore' import type { SettingParams } from '@/platform/settings/types' import { isElectron } from '@/utils/envUtil' import { normalizeI18nKey } from '@/utils/formatUtil' diff --git a/src/platform/settings/constants/coreSettings.ts b/src/platform/settings/constants/coreSettings.ts index 4adf2db9d..cdb2fe709 100644 --- a/src/platform/settings/constants/coreSettings.ts +++ b/src/platform/settings/constants/coreSettings.ts @@ -1,5 +1,4 @@ import { LinkMarkerShape, LiteGraph } from '@/lib/litegraph/src/litegraph' -import { useSettingStore } from '@/platform/settings/settingStore' import type { SettingParams } from '@/platform/settings/types' import type { ColorPalettes } from '@/schemas/colorPaletteSchema' import type { Keybinding } from '@/schemas/keyBindingSchema' @@ -139,95 +138,6 @@ export const CORE_SETTINGS: SettingParams[] = [ type: 'boolean', defaultValue: false }, - { - id: 'Comfy.Canvas.NavigationMode', - category: ['LiteGraph', 'Canvas Navigation', 'NavigationMode'], - name: 'Navigation Mode', - defaultValue: 'legacy', - type: 'combo', - sortOrder: 100, - options: [ - { value: 'standard', text: 'Standard (New)' }, - { value: 'legacy', text: 'Drag Navigation' }, - { value: 'custom', text: 'Custom' } - ], - versionAdded: '1.25.0', - defaultsByInstallVersion: { - '1.25.0': 'legacy' - }, - onChange: async (newValue: string) => { - const settingStore = useSettingStore() - - if (newValue === 'standard') { - // Update related settings to match standard mode - select + panning - await settingStore.set('Comfy.Canvas.LeftMouseClickBehavior', 'select') - await settingStore.set('Comfy.Canvas.MouseWheelScroll', 'panning') - } else if (newValue === 'legacy') { - // Update related settings to match legacy mode - panning + zoom - await settingStore.set('Comfy.Canvas.LeftMouseClickBehavior', 'panning') - await settingStore.set('Comfy.Canvas.MouseWheelScroll', 'zoom') - } - } - }, - { - id: 'Comfy.Canvas.LeftMouseClickBehavior', - category: ['LiteGraph', 'Canvas Navigation', 'LeftMouseClickBehavior'], - name: 'Left Mouse Click Behavior', - defaultValue: 'panning', - type: 'radio', - sortOrder: 50, - options: [ - { value: 'panning', text: 'Panning' }, - { value: 'select', text: 'Select' } - ], - versionAdded: '1.27.4', - onChange: async (newValue: string) => { - const settingStore = useSettingStore() - - const navigationMode = settingStore.get('Comfy.Canvas.NavigationMode') - - if (navigationMode !== 'custom') { - if ( - (newValue === 'select' && navigationMode === 'standard') || - (newValue === 'panning' && navigationMode === 'legacy') - ) { - return - } - - // only set to custom if it doesn't match the preset modes - await settingStore.set('Comfy.Canvas.NavigationMode', 'custom') - } - } - }, - { - id: 'Comfy.Canvas.MouseWheelScroll', - category: ['LiteGraph', 'Canvas Navigation', 'MouseWheelScroll'], - name: 'Mouse Wheel Scroll', - defaultValue: 'zoom', - type: 'radio', - options: [ - { value: 'panning', text: 'Panning' }, - { value: 'zoom', text: 'Zoom in/out' } - ], - versionAdded: '1.27.4', - onChange: async (newValue: string) => { - const settingStore = useSettingStore() - - const navigationMode = settingStore.get('Comfy.Canvas.NavigationMode') - - if (navigationMode !== 'custom') { - if ( - (newValue === 'panning' && navigationMode === 'standard') || - (newValue === 'zoom' && navigationMode === 'legacy') - ) { - return - } - - // only set to custom if it doesn't match the preset modes - await settingStore.set('Comfy.Canvas.NavigationMode', 'custom') - } - } - }, { id: 'Comfy.Graph.CanvasInfo', category: ['LiteGraph', 'Canvas', 'CanvasInfo'], @@ -404,8 +314,7 @@ export const CORE_SETTINGS: SettingParams[] = [ { value: 'ko', text: '한국어' }, { value: 'fr', text: 'Français' }, { value: 'es', text: 'Español' }, - { value: 'ar', text: 'عربي' }, - { value: 'tr', text: 'Türkçe' } + { value: 'ar', text: 'عربي' } ], defaultValue: () => navigator.language.split('-')[0] || 'en' }, @@ -595,7 +504,7 @@ export const CORE_SETTINGS: SettingParams[] = [ migrateDeprecatedValue: (value: any[]) => { return value.map((keybinding) => { if (keybinding['targetSelector'] === '#graph-canvas') { - keybinding['targetElementId'] = 'graph-canvas-container' + keybinding['targetElementId'] = 'graph-canvas' } return keybinding }) @@ -904,6 +813,21 @@ export const CORE_SETTINGS: SettingParams[] = [ defaultValue: 8, versionAdded: '1.26.7' }, + { + id: 'Comfy.Canvas.NavigationMode', + category: ['LiteGraph', 'Canvas', 'CanvasNavigationMode'], + name: 'Canvas Navigation Mode', + defaultValue: 'legacy', + type: 'combo', + options: [ + { value: 'standard', text: 'Standard (New)' }, + { value: 'legacy', text: 'Drag Navigation' } + ], + versionAdded: '1.25.0', + defaultsByInstallVersion: { + '1.25.0': 'legacy' + } + }, { id: 'Comfy.Canvas.SelectionToolbox', category: ['LiteGraph', 'Canvas', 'SelectionToolbox'], diff --git a/src/platform/settings/settingStore.ts b/src/platform/settings/settingStore.ts index 5a1573efb..2d94e38e5 100644 --- a/src/platform/settings/settingStore.ts +++ b/src/platform/settings/settingStore.ts @@ -1,6 +1,5 @@ import _ from 'es-toolkit/compat' import { defineStore } from 'pinia' -import { compare, valid } from 'semver' import { ref } from 'vue' import type { SettingParams } from '@/platform/settings/types' @@ -8,6 +7,7 @@ import type { Settings } from '@/schemas/apiSchema' import { api } from '@/scripts/api' import { app } from '@/scripts/app' import type { TreeNode } from '@/types/treeExplorerTypes' +import { compareVersions, isSemVer } from '@/utils/formatUtil' export const getSettingInfo = (setting: SettingParams) => { const parts = setting.category || setting.id.split('.') @@ -132,25 +132,20 @@ export const useSettingStore = defineStore('setting', () => { if (installedVersion) { const sortedVersions = Object.keys(defaultsByInstallVersion).sort( - (a, b) => compare(b, a) + (a, b) => compareVersions(b, a) ) for (const version of sortedVersions) { // Ensure the version is in a valid format before comparing - if (!valid(version)) { + if (!isSemVer(version)) { continue } - if (compare(installedVersion, version) >= 0) { - const versionedDefault = - defaultsByInstallVersion[ - version as keyof typeof defaultsByInstallVersion - ] - if (versionedDefault !== undefined) { - return typeof versionedDefault === 'function' - ? versionedDefault() - : versionedDefault - } + if (compareVersions(installedVersion, version) >= 0) { + const versionedDefault = defaultsByInstallVersion[version] + return typeof versionedDefault === 'function' + ? versionedDefault() + : versionedDefault } } } diff --git a/src/platform/updates/common/releaseService.ts b/src/platform/updates/common/releaseService.ts index 189421678..7c55ae8f0 100644 --- a/src/platform/updates/common/releaseService.ts +++ b/src/platform/updates/common/releaseService.ts @@ -1,5 +1,4 @@ -import type { AxiosError, AxiosResponse } from 'axios' -import axios from 'axios' +import axios, { AxiosError, AxiosResponse } from 'axios' import { ref } from 'vue' import { COMFY_API_BASE_URL } from '@/config/comfyApi' diff --git a/src/platform/updates/common/releaseStore.ts b/src/platform/updates/common/releaseStore.ts index 470c92272..f34e525f5 100644 --- a/src/platform/updates/common/releaseStore.ts +++ b/src/platform/updates/common/releaseStore.ts @@ -1,12 +1,11 @@ import { until } from '@vueuse/core' import { defineStore } from 'pinia' -import { compare } from 'semver' import { computed, ref } from 'vue' import { useSettingStore } from '@/platform/settings/settingStore' import { useSystemStatsStore } from '@/stores/systemStatsStore' import { isElectron } from '@/utils/envUtil' -import { stringToLocale } from '@/utils/formatUtil' +import { compareVersions, stringToLocale } from '@/utils/formatUtil' import { type ReleaseNote, useReleaseService } from './releaseService' @@ -57,19 +56,16 @@ export const useReleaseStore = defineStore('release', () => { const isNewVersionAvailable = computed( () => !!recentRelease.value && - compare( + compareVersions( recentRelease.value.version, - currentComfyUIVersion.value || '0.0.0' + currentComfyUIVersion.value ) > 0 ) const isLatestVersion = computed( () => !!recentRelease.value && - compare( - recentRelease.value.version, - currentComfyUIVersion.value || '0.0.0' - ) === 0 + !compareVersions(recentRelease.value.version, currentComfyUIVersion.value) ) const hasMediumOrHighAttention = computed(() => diff --git a/src/platform/updates/common/versionCompatibilityStore.ts b/src/platform/updates/common/versionCompatibilityStore.ts index cc85f945b..46b25cf33 100644 --- a/src/platform/updates/common/versionCompatibilityStore.ts +++ b/src/platform/updates/common/versionCompatibilityStore.ts @@ -1,6 +1,6 @@ import { until, useStorage } from '@vueuse/core' import { defineStore } from 'pinia' -import { gt, valid } from 'semver' +import * as semver from 'semver' import { computed } from 'vue' import config from '@/config' @@ -26,13 +26,13 @@ export const useVersionCompatibilityStore = defineStore( if ( !frontendVersion.value || !requiredFrontendVersion.value || - !valid(frontendVersion.value) || - !valid(requiredFrontendVersion.value) + !semver.valid(frontendVersion.value) || + !semver.valid(requiredFrontendVersion.value) ) { return false } // Returns true if required version is greater than frontend version - return gt(requiredFrontendVersion.value, frontendVersion.value) + return semver.gt(requiredFrontendVersion.value, frontendVersion.value) }) const isFrontendNewer = computed(() => { diff --git a/src/platform/workflow/core/services/workflowService.ts b/src/platform/workflow/core/services/workflowService.ts index c4234cf45..943177986 100644 --- a/src/platform/workflow/core/services/workflowService.ts +++ b/src/platform/workflow/core/services/workflowService.ts @@ -2,14 +2,14 @@ import { toRaw } from 'vue' import { t } from '@/i18n' import { LGraph, LGraphCanvas } from '@/lib/litegraph/src/litegraph' -import type { Point, SerialisableGraph } from '@/lib/litegraph/src/litegraph' +import type { SerialisableGraph, Vector2 } from '@/lib/litegraph/src/litegraph' import { useSettingStore } from '@/platform/settings/settingStore' import { useToastStore } from '@/platform/updates/common/toastStore' import { ComfyWorkflow, useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' -import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' +import { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { app } from '@/scripts/app' import { blankGraph, defaultGraph } from '@/scripts/defaultGraph' @@ -17,7 +17,7 @@ import { downloadBlob } from '@/scripts/utils' import { useDialogService } from '@/services/dialogService' import { useDomWidgetStore } from '@/stores/domWidgetStore' import { useWorkspaceStore } from '@/stores/workspaceStore' -import { appendJsonExt } from '@/utils/formatUtil' +import { appendJsonExt, generateUUID } from '@/utils/formatUtil' export const useWorkflowService = () => { const settingStore = useSettingStore() @@ -112,6 +112,13 @@ export const useWorkflowService = () => { await renameWorkflow(workflow, newPath) await workflowStore.saveWorkflow(workflow) } else { + // Generate new id when saving existing workflow as a new file + const id = generateUUID() + const state = JSON.parse( + JSON.stringify(workflow.activeState) + ) as ComfyWorkflowJSON + state.id = id + const tempWorkflow = workflowStore.saveAs(workflow, newPath) await openWorkflow(tempWorkflow) await workflowStore.saveWorkflow(tempWorkflow) @@ -339,7 +346,7 @@ export const useWorkflowService = () => { */ const insertWorkflow = async ( workflow: ComfyWorkflow, - options: { position?: Point } = {} + options: { position?: Vector2 } = {} ) => { const loadedWorkflow = await workflow.load() const workflowJSON = toRaw(loadedWorkflow.initialState) diff --git a/src/platform/workflow/management/stores/workflowStore.ts b/src/platform/workflow/management/stores/workflowStore.ts index 02b48c55b..254698b66 100644 --- a/src/platform/workflow/management/stores/workflowStore.ts +++ b/src/platform/workflow/management/stores/workflowStore.ts @@ -4,7 +4,7 @@ import { type Raw, computed, markRaw, ref, shallowRef, watch } from 'vue' import { t } from '@/i18n' import type { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' -import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' +import { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSchema' import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { api } from '@/scripts/api' @@ -20,7 +20,7 @@ import { parseNodeExecutionId, parseNodeLocatorId } from '@/types/nodeIdentification' -import { generateUUID, getPathDetails } from '@/utils/formatUtil' +import { getPathDetails } from '@/utils/formatUtil' import { syncEntities } from '@/utils/syncUtil' import { isSubgraph } from '@/utils/typeGuardUtil' @@ -320,19 +320,12 @@ export const useWorkflowStore = defineStore('workflow', () => { existingWorkflow: ComfyWorkflow, path: string ): ComfyWorkflow => { - // Generate new id when saving existing workflow as a new file - const id = generateUUID() - const state = JSON.parse( - JSON.stringify(existingWorkflow.activeState) - ) as ComfyWorkflowJSON - state.id = id - const workflow: ComfyWorkflow = new (existingWorkflow.constructor as any)({ path, modified: Date.now(), size: -1 }) - workflow.originalContent = workflow.content = JSON.stringify(state) + workflow.originalContent = workflow.content = existingWorkflow.content workflowLookup.value[workflow.path] = workflow return workflow } diff --git a/src/renderer/core/canvas/canvasStore.ts b/src/renderer/core/canvas/canvasStore.ts index ec38940fe..6e09d95a3 100644 --- a/src/renderer/core/canvas/canvasStore.ts +++ b/src/renderer/core/canvas/canvasStore.ts @@ -1,10 +1,8 @@ -import { useEventListener, whenever } from '@vueuse/core' import { defineStore } from 'pinia' import { type Raw, computed, markRaw, ref, shallowRef } from 'vue' import type { Point, Positionable } from '@/lib/litegraph/src/interfaces' import type { - LGraph, LGraphCanvas, LGraphGroup, LGraphNode @@ -96,43 +94,9 @@ export const useCanvasStore = defineStore('canvas', () => { appScalePercentage.value = Math.round(newScale * 100) } - const currentGraph = shallowRef(null) - const isInSubgraph = ref(false) - - // Provide selection state to all Vue nodes - const selectedNodeIds = computed( - () => - new Set( - selectedItems.value - .filter((item) => item.id !== undefined) - .map((item) => String(item.id)) - ) - ) - - whenever( - () => canvas.value, - (newCanvas) => { - useEventListener( - newCanvas.canvas, - 'litegraph:set-graph', - (event: CustomEvent<{ newGraph: LGraph; oldGraph: LGraph }>) => { - const newGraph = event.detail?.newGraph || app.canvas?.graph - currentGraph.value = newGraph - isInSubgraph.value = Boolean(app.canvas?.subgraph) - } - ) - - useEventListener(newCanvas.canvas, 'subgraph-opened', () => { - isInSubgraph.value = true - }) - }, - { immediate: true } - ) - return { canvas, selectedItems, - selectedNodeIds, nodeSelected, groupSelected, rerouteSelected, @@ -141,8 +105,6 @@ export const useCanvasStore = defineStore('canvas', () => { getCanvas, setAppZoomFromPercentage, initScaleSync, - cleanupScaleSync, - currentGraph, - isInSubgraph + cleanupScaleSync } }) diff --git a/src/renderer/core/canvas/injectionKeys.ts b/src/renderer/core/canvas/injectionKeys.ts new file mode 100644 index 000000000..5c850c100 --- /dev/null +++ b/src/renderer/core/canvas/injectionKeys.ts @@ -0,0 +1,25 @@ +import type { InjectionKey, Ref } from 'vue' + +import type { NodeProgressState } from '@/schemas/apiSchema' + +/** + * Injection key for providing selected node IDs to Vue node components. + * Contains a reactive Set of selected node IDs (as strings). + */ +export const SelectedNodeIdsKey: InjectionKey>> = + Symbol('selectedNodeIds') + +/** + * Injection key for providing executing node IDs to Vue node components. + * Contains a reactive Set of currently executing node IDs (as strings). + */ +export const ExecutingNodeIdsKey: InjectionKey>> = + Symbol('executingNodeIds') + +/** + * Injection key for providing node progress states to Vue node components. + * Contains a reactive Record of node IDs to their current progress state. + */ +export const NodeProgressStatesKey: InjectionKey< + Ref> +> = Symbol('nodeProgressStates') diff --git a/src/renderer/core/canvas/links/slotLinkCompatibility.ts b/src/renderer/core/canvas/links/slotLinkCompatibility.ts deleted file mode 100644 index b8beffc38..000000000 --- a/src/renderer/core/canvas/links/slotLinkCompatibility.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { getActivePinia } from 'pinia' - -import type { - INodeInputSlot, - INodeOutputSlot -} from '@/lib/litegraph/src/interfaces' -import type { LGraphNode, NodeId } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' -import type { - SlotDragSource, - SlotDropCandidate -} from '@/renderer/core/canvas/links/slotLinkDragState' -import { app } from '@/scripts/app' - -interface CompatibilityResult { - allowable: boolean - targetNode?: LGraphNode - targetSlot?: INodeInputSlot | INodeOutputSlot -} - -function resolveNode(nodeId: NodeId) { - const pinia = getActivePinia() - const canvasStore = pinia ? useCanvasStore() : null - const graph = canvasStore?.canvas?.graph ?? app.canvas?.graph - if (!graph) return null - const id = typeof nodeId === 'string' ? Number(nodeId) : nodeId - if (Number.isNaN(id)) return null - return graph.getNodeById(id) -} - -export function evaluateCompatibility( - source: SlotDragSource, - candidate: SlotDropCandidate -): CompatibilityResult { - if (candidate.layout.nodeId === source.nodeId) { - return { allowable: false } - } - - const isOutputToInput = - source.type === 'output' && candidate.layout.type === 'input' - const isInputToOutput = - source.type === 'input' && candidate.layout.type === 'output' - - if (!isOutputToInput && !isInputToOutput) { - return { allowable: false } - } - - const sourceNode = resolveNode(source.nodeId) - const targetNode = resolveNode(candidate.layout.nodeId) - if (!sourceNode || !targetNode) { - return { allowable: false } - } - - if (isOutputToInput) { - const outputSlot = sourceNode.outputs?.[source.slotIndex] - const inputSlot = targetNode.inputs?.[candidate.layout.index] - if (!outputSlot || !inputSlot) { - return { allowable: false } - } - - const allowable = sourceNode.canConnectTo(targetNode, inputSlot, outputSlot) - return { allowable, targetNode, targetSlot: inputSlot } - } - - const inputSlot = sourceNode.inputs?.[source.slotIndex] - const outputSlot = targetNode.outputs?.[candidate.layout.index] - if (!inputSlot || !outputSlot) { - return { allowable: false } - } - - const allowable = targetNode.canConnectTo(sourceNode, inputSlot, outputSlot) - return { allowable, targetNode, targetSlot: outputSlot } -} diff --git a/src/renderer/core/canvas/links/slotLinkDragState.ts b/src/renderer/core/canvas/links/slotLinkDragState.ts deleted file mode 100644 index 5d2bbcfc4..000000000 --- a/src/renderer/core/canvas/links/slotLinkDragState.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { reactive, readonly } from 'vue' - -import type { LinkDirection } from '@/lib/litegraph/src/types/globalEnums' -import { getSlotKey } from '@/renderer/core/layout/slots/slotIdentifier' -import { layoutStore } from '@/renderer/core/layout/store/layoutStore' -import type { Point, SlotLayout } from '@/renderer/core/layout/types' - -type SlotDragType = 'input' | 'output' - -export interface SlotDragSource { - nodeId: string - slotIndex: number - type: SlotDragType - direction: LinkDirection - position: Readonly -} - -export interface SlotDropCandidate { - layout: SlotLayout - compatible: boolean -} - -interface PointerPosition { - client: Point - canvas: Point -} - -interface SlotDragState { - active: boolean - pointerId: number | null - source: SlotDragSource | null - pointer: PointerPosition - candidate: SlotDropCandidate | null -} - -const state = reactive({ - active: false, - pointerId: null, - source: null, - pointer: { - client: { x: 0, y: 0 }, - canvas: { x: 0, y: 0 } - }, - candidate: null -}) - -function updatePointerPosition( - clientX: number, - clientY: number, - canvasX: number, - canvasY: number -) { - state.pointer.client.x = clientX - state.pointer.client.y = clientY - state.pointer.canvas.x = canvasX - state.pointer.canvas.y = canvasY -} - -function setCandidate(candidate: SlotDropCandidate | null) { - state.candidate = candidate -} - -function beginDrag(source: SlotDragSource, pointerId: number) { - state.active = true - state.source = source - state.pointerId = pointerId - state.candidate = null -} - -function endDrag() { - state.active = false - state.pointerId = null - state.source = null - state.pointer.client.x = 0 - state.pointer.client.y = 0 - state.pointer.canvas.x = 0 - state.pointer.canvas.y = 0 - state.candidate = null -} - -function getSlotLayout(nodeId: string, slotIndex: number, isInput: boolean) { - const slotKey = getSlotKey(nodeId, slotIndex, isInput) - return layoutStore.getSlotLayout(slotKey) -} - -export function useSlotLinkDragState() { - return { - state: readonly(state), - beginDrag, - endDrag, - updatePointerPosition, - setCandidate, - getSlotLayout - } -} diff --git a/src/renderer/core/canvas/links/slotLinkPreviewRenderer.ts b/src/renderer/core/canvas/links/slotLinkPreviewRenderer.ts deleted file mode 100644 index b69cd9b7a..000000000 --- a/src/renderer/core/canvas/links/slotLinkPreviewRenderer.ts +++ /dev/null @@ -1,95 +0,0 @@ -import type { LGraphCanvas } from '@/lib/litegraph/src/LGraphCanvas' -import type { - INodeInputSlot, - INodeOutputSlot, - ReadOnlyPoint -} from '@/lib/litegraph/src/interfaces' -import { LinkDirection } from '@/lib/litegraph/src/types/globalEnums' -import { resolveConnectingLinkColor } from '@/lib/litegraph/src/utils/linkColors' -import { - type SlotDragSource, - useSlotLinkDragState -} from '@/renderer/core/canvas/links/slotLinkDragState' -import type { LinkRenderContext } from '@/renderer/core/canvas/litegraph/litegraphLinkAdapter' - -function buildContext(canvas: LGraphCanvas): LinkRenderContext { - return { - renderMode: canvas.links_render_mode, - connectionWidth: canvas.connections_width, - renderBorder: canvas.render_connections_border, - lowQuality: canvas.low_quality, - highQualityRender: canvas.highquality_render, - scale: canvas.ds.scale, - linkMarkerShape: canvas.linkMarkerShape, - renderConnectionArrows: canvas.render_connection_arrows, - highlightedLinks: new Set(Object.keys(canvas.highlighted_links)), - defaultLinkColor: canvas.default_link_color, - linkTypeColors: (canvas.constructor as typeof LGraphCanvas) - .link_type_colors, - disabledPattern: canvas._pattern - } -} - -export function attachSlotLinkPreviewRenderer(canvas: LGraphCanvas) { - const originalOnDrawForeground = canvas.onDrawForeground?.bind(canvas) - const patched = ( - ctx: CanvasRenderingContext2D, - area: LGraphCanvas['visible_area'] - ) => { - originalOnDrawForeground?.(ctx, area) - - const { state } = useSlotLinkDragState() - if (!state.active || !state.source) return - - const { pointer, source } = state - const start = source.position - const sourceSlot = resolveSourceSlot(canvas, source) - - const linkRenderer = canvas.linkRenderer - if (!linkRenderer) return - - const context = buildContext(canvas) - - const from: ReadOnlyPoint = [start.x, start.y] - const to: ReadOnlyPoint = [pointer.canvas.x, pointer.canvas.y] - - const startDir = source.direction ?? LinkDirection.RIGHT - const endDir = LinkDirection.CENTER - - const colour = resolveConnectingLinkColor(sourceSlot?.type) - - ctx.save() - - linkRenderer.renderDraggingLink( - ctx, - from, - to, - colour, - startDir, - endDir, - context - ) - - ctx.restore() - } - - canvas.onDrawForeground = patched -} - -function resolveSourceSlot( - canvas: LGraphCanvas, - source: SlotDragSource -): INodeInputSlot | INodeOutputSlot | undefined { - const graph = canvas.graph - if (!graph) return undefined - - const nodeId = Number(source.nodeId) - if (!Number.isFinite(nodeId)) return undefined - - const node = graph.getNodeById(nodeId) - if (!node) return undefined - - return source.type === 'output' - ? node.outputs?.[source.slotIndex] - : node.inputs?.[source.slotIndex] -} diff --git a/src/renderer/core/canvas/litegraph/litegraphLinkAdapter.ts b/src/renderer/core/canvas/litegraph/litegraphLinkAdapter.ts index 1bb3f7dae..349ad903b 100644 --- a/src/renderer/core/canvas/litegraph/litegraphLinkAdapter.ts +++ b/src/renderer/core/canvas/litegraph/litegraphLinkAdapter.ts @@ -7,10 +7,13 @@ * Maintains backward compatibility with existing litegraph integration. */ import type { LGraph } from '@/lib/litegraph/src/LGraph' -import type { LLink } from '@/lib/litegraph/src/LLink' +import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode' +import { LLink } from '@/lib/litegraph/src/LLink' import type { Reroute } from '@/lib/litegraph/src/Reroute' import type { CanvasColour, + INodeInputSlot, + INodeOutputSlot, ReadOnlyPoint } from '@/lib/litegraph/src/interfaces' import { LiteGraph } from '@/lib/litegraph/src/litegraph' @@ -24,6 +27,7 @@ import { type ArrowShape, CanvasPathRenderer, type Direction, + type DragLinkData, type LinkRenderData, type RenderContext as PathRenderContext, type Point, @@ -205,6 +209,7 @@ export class LitegraphLinkAdapter { case LinkDirection.DOWN: return 'down' case LinkDirection.CENTER: + case LinkDirection.NONE: return 'none' default: return 'right' @@ -497,33 +502,57 @@ export class LitegraphLinkAdapter { } } + /** + * Render a link being dragged from a slot to mouse position + * Used during link creation/reconnection + */ renderDraggingLink( ctx: CanvasRenderingContext2D, - from: ReadOnlyPoint, - to: ReadOnlyPoint, - colour: CanvasColour, - startDir: LinkDirection, - endDir: LinkDirection, - context: LinkRenderContext + fromNode: LGraphNode | null, + fromSlot: INodeOutputSlot | INodeInputSlot, + fromSlotIndex: number, + toPosition: ReadOnlyPoint, + context: LinkRenderContext, + options: { + fromInput?: boolean + color?: CanvasColour + disabled?: boolean + } = {} ): void { - this.renderLinkDirect( - ctx, - from, - to, - null, - false, - null, - colour, - startDir, - endDir, - { - ...context, - linkMarkerShape: LinkMarkerShape.None - }, - { - disabled: false - } + if (!fromNode) return + + // Get slot position using layout tree if available + const slotPos = getSlotPosition( + fromNode, + fromSlotIndex, + options.fromInput || false ) + if (!slotPos) return + + // Get slot direction + const slotDir = + fromSlot.dir || + (options.fromInput ? LinkDirection.LEFT : LinkDirection.RIGHT) + + // Create drag data + const dragData: DragLinkData = { + fixedPoint: { x: slotPos[0], y: slotPos[1] }, + fixedDirection: this.convertDirection(slotDir), + dragPoint: { x: toPosition[0], y: toPosition[1] }, + color: options.color ? String(options.color) : undefined, + type: fromSlot.type !== undefined ? String(fromSlot.type) : undefined, + disabled: options.disabled || false, + fromInput: options.fromInput || false + } + + // Convert context + const pathContext = this.convertToPathRenderContext(context) + + // Hide center marker when dragging links + pathContext.style.showCenterMarker = false + + // Render using pure renderer + this.pathRenderer.drawDraggingLink(ctx, dragData, pathContext) } /** diff --git a/src/renderer/core/canvas/pathRenderer.ts b/src/renderer/core/canvas/pathRenderer.ts index 126b98e00..29f406cad 100644 --- a/src/renderer/core/canvas/pathRenderer.ts +++ b/src/renderer/core/canvas/pathRenderer.ts @@ -70,7 +70,7 @@ export interface RenderContext { highlightedIds?: Set } -interface DragLinkData { +export interface DragLinkData { /** Fixed end - the slot being dragged from */ fixedPoint: Point fixedDirection: Direction diff --git a/src/renderer/core/layout/injectionKeys.ts b/src/renderer/core/layout/injectionKeys.ts deleted file mode 100644 index 8e0e0e1d6..000000000 --- a/src/renderer/core/layout/injectionKeys.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { InjectionKey } from 'vue' - -import type { useTransformState } from '@/renderer/core/layout/transform/useTransformState' - -/** - * Lightweight, injectable transform state used by layout-aware components. - * - * Consumers use this interface to convert coordinates between LiteGraph's - * canvas space and the DOM's screen space, access the current pan/zoom - * (camera), and perform basic viewport culling checks. - * - * Coordinate mapping: - * - screen = (canvas + offset) * scale - * - canvas = screen / scale - offset - * - * The full implementation and additional helpers live in - * `useTransformState()`. This interface deliberately exposes only the - * minimal surface needed outside that composable. - * - * @example - * const state = inject(TransformStateKey)! - * const screen = state.canvasToScreen({ x: 100, y: 50 }) - */ -interface TransformState - extends Pick< - ReturnType, - 'screenToCanvas' | 'canvasToScreen' | 'camera' | 'isNodeInViewport' - > {} - -export const TransformStateKey: InjectionKey = - Symbol('transformState') diff --git a/src/renderer/core/layout/operations/layoutMutations.ts b/src/renderer/core/layout/operations/layoutMutations.ts index f8eb7cfad..0c656899d 100644 --- a/src/renderer/core/layout/operations/layoutMutations.ts +++ b/src/renderer/core/layout/operations/layoutMutations.ts @@ -8,13 +8,13 @@ import log from 'loglevel' import type { NodeId } from '@/lib/litegraph/src/LGraphNode' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' -import type { LayoutSource } from '@/renderer/core/layout/types' -import type { - LinkId, - NodeLayout, - Point, - RerouteId, - Size +import { + LayoutSource, + type LinkId, + type NodeLayout, + type Point, + type RerouteId, + type Size } from '@/renderer/core/layout/types' const logger = log.getLogger('LayoutMutations') diff --git a/src/renderer/core/layout/slots/useDomSlotRegistration.ts b/src/renderer/core/layout/slots/useDomSlotRegistration.ts new file mode 100644 index 000000000..94a1f09e5 --- /dev/null +++ b/src/renderer/core/layout/slots/useDomSlotRegistration.ts @@ -0,0 +1,229 @@ +/** + * DOM-based slot registration with performance optimization + * + * Measures the actual DOM position of a Vue slot connector and registers it + * into the LayoutStore so hit-testing and link rendering use the true position. + * + * Performance strategy: + * - Cache slot offset relative to node (avoids DOM reads during drag) + * - No measurements during pan/zoom (camera transforms don't change canvas coords) + * - Batch DOM reads via requestAnimationFrame + * - Only remeasure on structural changes (resize, collapse, LOD) + */ +import { + type Ref, + type WatchStopHandle, + nextTick, + onMounted, + onUnmounted, + ref, + watch +} from 'vue' + +import { LiteGraph } from '@/lib/litegraph/src/litegraph' +import { layoutStore } from '@/renderer/core/layout/store/layoutStore' +import type { Point as LayoutPoint } from '@/renderer/core/layout/types' + +import { getSlotKey } from './slotIdentifier' + +export type TransformState = { + screenToCanvas: (p: LayoutPoint) => LayoutPoint +} + +// Shared RAF queue for batching measurements +const measureQueue = new Set<() => void>() +let rafId: number | null = null +// Track mounted components to prevent execution on unmounted ones +const mountedComponents = new WeakSet() + +function scheduleMeasurement(fn: () => void) { + measureQueue.add(fn) + if (rafId === null) { + rafId = requestAnimationFrame(() => { + rafId = null + const batch = Array.from(measureQueue) + measureQueue.clear() + batch.forEach((measure) => measure()) + }) + } +} + +const cleanupFunctions = new WeakMap< + Ref, + { + stopWatcher?: WatchStopHandle + handleResize?: () => void + } +>() + +interface SlotRegistrationOptions { + nodeId: string + slotIndex: number + isInput: boolean + element: Ref + transform?: TransformState +} + +export function useDomSlotRegistration(options: SlotRegistrationOptions) { + const { nodeId, slotIndex, isInput, element: elRef, transform } = options + + // Early return if no nodeId + if (!nodeId || nodeId === '') { + return { + remeasure: () => {} + } + } + const slotKey = getSlotKey(nodeId, slotIndex, isInput) + // Track if this component is mounted + const componentToken = {} + + // Cached offset from node position (avoids DOM reads during drag) + const cachedOffset = ref(null) + const lastMeasuredBounds = ref(null) + + // Measure DOM and cache offset (expensive, minimize calls) + const measureAndCacheOffset = () => { + // Skip if component was unmounted + if (!mountedComponents.has(componentToken)) return + + const el = elRef.value + if (!el || !transform?.screenToCanvas) return + + const rect = el.getBoundingClientRect() + + // Skip if bounds haven't changed significantly (within 0.5px) + if (lastMeasuredBounds.value) { + const prev = lastMeasuredBounds.value + if ( + Math.abs(rect.left - prev.left) < 0.5 && + Math.abs(rect.top - prev.top) < 0.5 && + Math.abs(rect.width - prev.width) < 0.5 && + Math.abs(rect.height - prev.height) < 0.5 + ) { + return // No significant change - skip update + } + } + + lastMeasuredBounds.value = rect + + // Center of the visual connector (dot) in screen coords + const centerScreen = { + x: rect.left + rect.width / 2, + y: rect.top + rect.height / 2 + } + const centerCanvas = transform.screenToCanvas(centerScreen) + + // Cache offset from node position for fast updates during drag + const nodeLayout = layoutStore.getNodeLayoutRef(nodeId).value + if (nodeLayout) { + cachedOffset.value = { + x: centerCanvas.x - nodeLayout.position.x, + y: centerCanvas.y - nodeLayout.position.y + } + } + + updateSlotPosition(centerCanvas) + } + + // Fast update using cached offset (no DOM read) + const updateFromCachedOffset = () => { + if (!cachedOffset.value) { + // No cached offset yet, need to measure + scheduleMeasurement(measureAndCacheOffset) + return + } + + const nodeLayout = layoutStore.getNodeLayoutRef(nodeId).value + if (!nodeLayout) { + return + } + + // Calculate absolute position from node position + cached offset + const centerCanvas = { + x: nodeLayout.position.x + cachedOffset.value.x, + y: nodeLayout.position.y + cachedOffset.value.y + } + + updateSlotPosition(centerCanvas) + } + + // Update slot position in layout store + const updateSlotPosition = (centerCanvas: LayoutPoint) => { + const size = LiteGraph.NODE_SLOT_HEIGHT + const half = size / 2 + + layoutStore.updateSlotLayout(slotKey, { + nodeId, + index: slotIndex, + type: isInput ? 'input' : 'output', + position: { x: centerCanvas.x, y: centerCanvas.y }, + bounds: { + x: centerCanvas.x - half, + y: centerCanvas.y - half, + width: size, + height: size + } + }) + } + + onMounted(async () => { + // Mark component as mounted + mountedComponents.add(componentToken) + + // Initial measure after mount + await nextTick() + measureAndCacheOffset() + + // Subscribe to node position changes for fast cached updates + const nodeRef = layoutStore.getNodeLayoutRef(nodeId) + + const stopWatcher = watch( + nodeRef, + (newLayout) => { + if (newLayout) { + // Node moved/resized - update using cached offset + updateFromCachedOffset() + } + }, + { immediate: false } + ) + + // Store cleanup functions without type assertions + const cleanup = cleanupFunctions.get(elRef) || {} + cleanup.stopWatcher = stopWatcher + + // Window resize - remeasure as viewport changed + const handleResize = () => { + scheduleMeasurement(measureAndCacheOffset) + } + window.addEventListener('resize', handleResize, { passive: true }) + cleanup.handleResize = handleResize + cleanupFunctions.set(elRef, cleanup) + }) + + onUnmounted(() => { + // Mark component as unmounted + mountedComponents.delete(componentToken) + + // Clean up watchers and listeners + const cleanup = cleanupFunctions.get(elRef) + if (cleanup) { + if (cleanup.stopWatcher) cleanup.stopWatcher() + if (cleanup.handleResize) { + window.removeEventListener('resize', cleanup.handleResize) + } + cleanupFunctions.delete(elRef) + } + + // Remove from layout store + layoutStore.deleteSlotLayout(slotKey) + + // Remove from measurement queue if pending + measureQueue.delete(measureAndCacheOffset) + }) + + return { + // Expose for forced remeasure on structural changes + remeasure: () => scheduleMeasurement(measureAndCacheOffset) + } +} diff --git a/src/renderer/core/layout/store/layoutStore.ts b/src/renderer/core/layout/store/layoutStore.ts index 254b27a2c..673344086 100644 --- a/src/renderer/core/layout/store/layoutStore.ts +++ b/src/renderer/core/layout/store/layoutStore.ts @@ -5,7 +5,7 @@ * CRDT ensures conflict-free operations for both single and multi-user scenarios. */ import log from 'loglevel' -import { type ComputedRef, type Ref, computed, customRef, ref } from 'vue' +import { type ComputedRef, type Ref, computed, customRef } from 'vue' import * as Y from 'yjs' import { ACTOR_CONFIG } from '@/renderer/core/layout/constants' @@ -38,10 +38,6 @@ import { type RerouteLayout, type SlotLayout } from '@/renderer/core/layout/types' -import { - isBoundsEqual, - isPointEqual -} from '@/renderer/core/layout/utils/geometry' import { REROUTE_RADIUS, boundsIntersect, @@ -134,9 +130,6 @@ class LayoutStoreImpl implements LayoutStore { private slotSpatialIndex: SpatialIndexManager // For slots private rerouteSpatialIndex: SpatialIndexManager // For reroutes - // Vue dragging state for selection toolbox (public ref for direct mutation) - public isDraggingVueNodes = ref(false) - constructor() { // Initialize Yjs data structures this.ynodes = this.ydoc.getMap('nodes') @@ -399,8 +392,12 @@ class LayoutStoreImpl implements LayoutStore { // Short-circuit if bounds and centerPos unchanged if ( existing && - isBoundsEqual(existing.bounds, layout.bounds) && - isPointEqual(existing.centerPos, layout.centerPos) + existing.bounds.x === layout.bounds.x && + existing.bounds.y === layout.bounds.y && + existing.bounds.width === layout.bounds.width && + existing.bounds.height === layout.bounds.height && + existing.centerPos.x === layout.centerPos.x && + existing.centerPos.y === layout.centerPos.y ) { // Only update path if provided (for hit detection) if (layout.path) { @@ -439,13 +436,6 @@ class LayoutStoreImpl implements LayoutStore { const existing = this.slotLayouts.get(key) if (existing) { - // Short-circuit if geometry is unchanged - if ( - isPointEqual(existing.position, layout.position) && - isBoundsEqual(existing.bounds, layout.bounds) - ) { - return - } // Update spatial index this.slotSpatialIndex.update(key, layout.bounds) } else { @@ -456,34 +446,6 @@ class LayoutStoreImpl implements LayoutStore { this.slotLayouts.set(key, layout) } - /** - * Batch update slot layouts and spatial index in one pass - */ - batchUpdateSlotLayouts( - updates: Array<{ key: string; layout: SlotLayout }> - ): void { - if (!updates.length) return - - // Update spatial index and map entries (skip unchanged) - for (const { key, layout } of updates) { - const existing = this.slotLayouts.get(key) - - if (existing) { - // Short-circuit if geometry is unchanged - if ( - isPointEqual(existing.position, layout.position) && - isBoundsEqual(existing.bounds, layout.bounds) - ) { - continue - } - this.slotSpatialIndex.update(key, layout.bounds) - } else { - this.slotSpatialIndex.insert(key, layout.bounds) - } - this.slotLayouts.set(key, layout) - } - } - /** * Delete slot layout data */ @@ -592,8 +554,12 @@ class LayoutStoreImpl implements LayoutStore { // Short-circuit if bounds and centerPos unchanged (prevents spatial index churn) if ( existing && - isBoundsEqual(existing.bounds, layout.bounds) && - isPointEqual(existing.centerPos, layout.centerPos) + existing.bounds.x === layout.bounds.x && + existing.bounds.y === layout.bounds.y && + existing.bounds.width === layout.bounds.width && + existing.bounds.height === layout.bounds.height && + existing.centerPos.x === layout.centerPos.x && + existing.centerPos.y === layout.centerPos.y ) { // Only update path if provided (for hit detection) if (layout.path) { @@ -1002,6 +968,9 @@ class LayoutStoreImpl implements LayoutStore { // Hit detection queries can run before CRDT updates complete this.spatialIndex.update(operation.nodeId, newBounds) + // Update associated slot positions synchronously + this.updateNodeSlotPositions(operation.nodeId, operation.position) + // Then update CRDT ynode.set('position', operation.position) this.updateNodeBounds(ynode, operation.position, size) @@ -1028,6 +997,9 @@ class LayoutStoreImpl implements LayoutStore { // Hit detection queries can run before CRDT updates complete this.spatialIndex.update(operation.nodeId, newBounds) + // Update associated slot positions synchronously (size changes may affect slot positions) + this.updateNodeSlotPositions(operation.nodeId, position) + // Then update CRDT ynode.set('size', operation.size) this.updateNodeBounds(ynode, position, operation.size) @@ -1308,6 +1280,29 @@ class LayoutStoreImpl implements LayoutStore { } } + /** + * Update slot positions when a node moves + * TODO: This should be handled by the layout sync system (useSlotLayoutSync) + * rather than manually here. For now, we'll mark affected slots as needing recalculation. + */ + private updateNodeSlotPositions(nodeId: NodeId, _nodePosition: Point): void { + // Mark all slots for this node as potentially stale + // The layout sync system will recalculate positions on the next frame + const slotsToRemove: string[] = [] + + for (const [key, slotLayout] of this.slotLayouts) { + if (slotLayout.nodeId === nodeId) { + slotsToRemove.push(key) + } + } + + // Remove from spatial index so they'll be recalculated + for (const key of slotsToRemove) { + this.slotSpatialIndex.remove(key) + this.slotLayouts.delete(key) + } + } + // Helper methods private notifyChange(change: LayoutChange): void { diff --git a/src/renderer/core/layout/sync/useSlotLayoutSync.ts b/src/renderer/core/layout/sync/useSlotLayoutSync.ts index 281199e8b..55a464140 100644 --- a/src/renderer/core/layout/sync/useSlotLayoutSync.ts +++ b/src/renderer/core/layout/sync/useSlotLayoutSync.ts @@ -7,9 +7,8 @@ import { onUnmounted } from 'vue' import type { LGraphCanvas } from '@/lib/litegraph/src/LGraphCanvas' -import type { LGraphNode } from '@/lib/litegraph/src/litegraph' -import { LiteGraph } from '@/lib/litegraph/src/litegraph' -import type { SlotPositionContext } from '@/renderer/core/canvas/litegraph/slotCalculations' +import { LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' +import { type SlotPositionContext } from '@/renderer/core/canvas/litegraph/slotCalculations' import { registerNodeSlots } from '@/renderer/core/layout/slots/register' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' @@ -134,11 +133,7 @@ export function useSlotLayoutSync() { restoreHandlers = () => { graph.onNodeAdded = origNodeAdded || undefined graph.onNodeRemoved = origNodeRemoved || undefined - // Only restore onTrigger if Vue nodes are not active - // Vue node manager sets its own onTrigger handler - if (!LiteGraph.vueNodesMode) { - graph.onTrigger = origTrigger || undefined - } + graph.onTrigger = origTrigger || undefined graph.onAfterChange = origAfterChange || undefined } diff --git a/src/renderer/core/layout/transform/TransformPane.vue b/src/renderer/core/layout/transform/TransformPane.vue index 29abc1262..0f88b177d 100644 --- a/src/renderer/core/layout/transform/TransformPane.vue +++ b/src/renderer/core/layout/transform/TransformPane.vue @@ -13,8 +13,7 @@ diff --git a/src/renderer/extensions/vueNodes/components/LGraphNode.vue b/src/renderer/extensions/vueNodes/components/LGraphNode.vue index f764a82bf..dd8c7cd5b 100644 --- a/src/renderer/extensions/vueNodes/components/LGraphNode.vue +++ b/src/renderer/extensions/vueNodes/components/LGraphNode.vue @@ -4,16 +4,13 @@
diff --git a/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts b/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts index 775dd6ba6..240a51071 100644 --- a/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts +++ b/src/renderer/extensions/vueNodes/components/NodeHeader.spec.ts @@ -1,16 +1,12 @@ import { mount } from '@vue/test-utils' -import { createPinia, setActivePinia } from 'pinia' +import { createPinia } from 'pinia' import PrimeVue from 'primevue/config' import InputText from 'primevue/inputtext' -import { describe, expect, it, vi } from 'vitest' +import { describe, expect, it } from 'vitest' import { createI18n } from 'vue-i18n' import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' import enMessages from '@/locales/en/main.json' -import { useSettingStore } from '@/platform/settings/settingStore' -import type { Settings } from '@/schemas/apiSchema' -import type { ComfyNodeDef } from '@/schemas/nodeDefSchema' -import { ComfyNodeDefImpl, useNodeDefStore } from '@/stores/nodeDefStore' import NodeHeader from './NodeHeader.vue' @@ -28,94 +24,19 @@ const makeNodeData = (overrides: Partial = {}): VueNodeData => ({ ...overrides }) -const setupMockStores = () => { - const pinia = createPinia() - setActivePinia(pinia) - - const settingStore = useSettingStore() - const nodeDefStore = useNodeDefStore() - - // Mock tooltip delay setting - vi.spyOn(settingStore, 'get').mockImplementation( - (key: K): Settings[K] => { - switch (key) { - case 'Comfy.EnableTooltips': - return true as Settings[K] - case 'LiteGraph.Node.TooltipDelay': - return 500 as Settings[K] - default: - return undefined as Settings[K] - } - } - ) - - // Mock node definition store - const baseMockNodeDef: ComfyNodeDef = { - name: 'KSampler', - display_name: 'KSampler', - category: 'sampling', - python_module: 'test_module', - description: 'Advanced sampling node for diffusion models', - input: { - required: { - model: ['MODEL', {}], - positive: ['CONDITIONING', {}], - negative: ['CONDITIONING', {}] - }, - optional: {}, - hidden: {} - }, - output: ['LATENT'], - output_is_list: [false], - output_name: ['samples'], - output_node: false, - deprecated: false, - experimental: false - } - - const mockNodeDef = new ComfyNodeDefImpl(baseMockNodeDef) - - vi.spyOn(nodeDefStore, 'nodeDefsByName', 'get').mockReturnValue({ - KSampler: mockNodeDef - }) - - return { settingStore, nodeDefStore, pinia } -} - -const createMountConfig = () => { +const mountHeader = ( + props?: Partial['$props']> +) => { const i18n = createI18n({ legacy: false, locale: 'en', messages: { en: enMessages } }) - - const { pinia } = setupMockStores() - - return { - global: { - plugins: [PrimeVue, i18n, pinia], - components: { InputText }, - directives: { - tooltip: { - mounted: vi.fn(), - updated: vi.fn(), - unmounted: vi.fn() - } - }, - provide: { - tooltipContainer: { value: document.createElement('div') } - } - } - } -} - -const mountHeader = ( - props?: Partial['$props']> -) => { - const config = createMountConfig() - return mount(NodeHeader, { - ...config, + global: { + plugins: [PrimeVue, i18n, createPinia()], + components: { InputText } + }, props: { nodeData: makeNodeData(), readonly: false, @@ -205,68 +126,4 @@ describe('NodeHeader.vue', () => { const collapsedIcon = wrapper.get('i') expect(collapsedIcon.classes()).toContain('pi-chevron-right') }) - - describe('Tooltips', () => { - it('applies tooltip directive to node title with correct configuration', () => { - const wrapper = mountHeader({ - nodeData: makeNodeData({ type: 'KSampler' }) - }) - - const titleElement = wrapper.find('[data-testid="node-title"]') - expect(titleElement.exists()).toBe(true) - - // Check that v-tooltip directive was applied - const directive = wrapper.vm.$el.querySelector( - '[data-testid="node-title"]' - ) - expect(directive).toBeTruthy() - }) - - it('disables tooltip when in readonly mode', () => { - const wrapper = mountHeader({ - readonly: true, - nodeData: makeNodeData({ type: 'KSampler' }) - }) - - const titleElement = wrapper.find('[data-testid="node-title"]') - expect(titleElement.exists()).toBe(true) - }) - - it('disables tooltip when editing is active', async () => { - const wrapper = mountHeader({ - nodeData: makeNodeData({ type: 'KSampler' }) - }) - - // Enter edit mode - await wrapper.get('[data-testid="node-header-1"]').trigger('dblclick') - - // Tooltip should be disabled during editing - const titleElement = wrapper.find('[data-testid="node-title"]') - expect(titleElement.exists()).toBe(true) - }) - - it('creates tooltip configuration when component mounts', () => { - const wrapper = mountHeader({ - nodeData: makeNodeData({ type: 'KSampler' }) - }) - - // Verify tooltip directive is applied to the title element - const titleElement = wrapper.find('[data-testid="node-title"]') - expect(titleElement.exists()).toBe(true) - - // The tooltip composable should be initialized - expect(wrapper.vm).toBeDefined() - }) - - it('uses tooltip container from provide/inject', () => { - const wrapper = mountHeader({ - nodeData: makeNodeData({ type: 'KSampler' }) - }) - - expect(wrapper.exists()).toBe(true) - // Container should be provided through inject - const titleElement = wrapper.find('[data-testid="node-title"]') - expect(titleElement.exists()).toBe(true) - }) - }) }) diff --git a/src/renderer/extensions/vueNodes/components/NodeHeader.vue b/src/renderer/extensions/vueNodes/components/NodeHeader.vue index 40b8a7fe0..286c7ee4b 100644 --- a/src/renderer/extensions/vueNodes/components/NodeHeader.vue +++ b/src/renderer/extensions/vueNodes/components/NodeHeader.vue @@ -4,8 +4,8 @@
@@ -23,11 +23,7 @@ -
+
- - -
- - - -
diff --git a/src/renderer/extensions/vueNodes/components/NodeSlots.vue b/src/renderer/extensions/vueNodes/components/NodeSlots.vue index 26187899d..68f247932 100644 --- a/src/renderer/extensions/vueNodes/components/NodeSlots.vue +++ b/src/renderer/extensions/vueNodes/components/NodeSlots.vue @@ -8,8 +8,7 @@ v-for="(input, index) in filteredInputs" :key="`input-${index}`" :slot-data="input" - :node-type="nodeData?.type || ''" - :node-id="nodeData?.id != null ? String(nodeData.id) : ''" + :node-id="nodeInfo?.id != null ? String(nodeInfo.id) : ''" :index="getActualInputIndex(input, index)" :readonly="readonly" /> @@ -20,8 +19,7 @@ v-for="(output, index) in filteredOutputs" :key="`output-${index}`" :slot-data="output" - :node-type="nodeData?.type || ''" - :node-id="nodeData?.id != null ? String(nodeData.id) : ''" + :node-id="nodeInfo?.id != null ? String(nodeInfo.id) : ''" :index="index" :readonly="readonly" /> @@ -34,24 +32,29 @@ import { computed, onErrorCaptured, ref } from 'vue' import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' import { useErrorHandling } from '@/composables/useErrorHandling' -import type { INodeSlot } from '@/lib/litegraph/src/litegraph' +import type { INodeSlot, LGraphNode } from '@/lib/litegraph/src/litegraph' +import type { LODLevel } from '@/renderer/extensions/vueNodes/lod/useLOD' import { isSlotObject } from '@/utils/typeGuardUtil' import InputSlot from './InputSlot.vue' import OutputSlot from './OutputSlot.vue' interface NodeSlotsProps { - nodeData?: VueNodeData + node?: LGraphNode // For backwards compatibility + nodeData?: VueNodeData // New clean data structure readonly?: boolean + lodLevel?: LODLevel } -const { nodeData = null, readonly } = defineProps() +const props = defineProps() + +const nodeInfo = computed(() => props.nodeData || props.node || null) // Filter out input slots that have corresponding widgets const filteredInputs = computed(() => { - if (!nodeData?.inputs) return [] + if (!nodeInfo.value?.inputs) return [] - return nodeData.inputs + return nodeInfo.value.inputs .filter((input) => { // Check if this slot has a widget property (indicating it has a corresponding widget) if (isSlotObject(input) && 'widget' in input && input.widget) { @@ -73,7 +76,7 @@ const filteredInputs = computed(() => { // Outputs don't have widgets, so we don't need to filter them const filteredOutputs = computed(() => { - const outputs = nodeData?.outputs || [] + const outputs = nodeInfo.value?.outputs || [] return outputs.map((output) => isSlotObject(output) ? output @@ -91,10 +94,10 @@ const getActualInputIndex = ( input: INodeSlot, filteredIndex: number ): number => { - if (!nodeData?.inputs) return filteredIndex + if (!nodeInfo.value?.inputs) return filteredIndex // Find the actual index in the unfiltered inputs array - const actualIndex = nodeData.inputs.findIndex((i) => i === input) + const actualIndex = nodeInfo.value.inputs.findIndex((i) => i === input) return actualIndex !== -1 ? actualIndex : filteredIndex } diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index 4645429da..0cd7a59cc 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -2,20 +2,7 @@
{{ $t('Node Widgets Error') }}
-
+
diff --git a/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts b/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts index e3ab1c66c..844649676 100644 --- a/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts +++ b/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.ts @@ -8,19 +8,19 @@ * - Layout mutations for visual feedback * - Integration with LiteGraph canvas selection system */ -import { createSharedComposable } from '@vueuse/core' +import type { Ref } from 'vue' import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' -import { useVueNodeLifecycle } from '@/composables/graph/useVueNodeLifecycle' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' -import { useCanvasInteractions } from '@/renderer/core/canvas/useCanvasInteractions' import { useNodeZIndex } from '@/renderer/extensions/vueNodes/composables/useNodeZIndex' -function useNodeEventHandlersIndividual() { +interface NodeManager { + getNode: (id: string) => any +} + +export function useNodeEventHandlers(nodeManager: Ref) { const canvasStore = useCanvasStore() - const { nodeManager } = useVueNodeLifecycle() const { bringNodeToFront } = useNodeZIndex() - const { shouldHandleNodePointerEvents } = useCanvasInteractions() /** * Handle node selection events @@ -31,14 +31,12 @@ function useNodeEventHandlersIndividual() { nodeData: VueNodeData, wasDragging: boolean ) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return const node = nodeManager.value.getNode(nodeData.id) if (!node) return - const isMultiSelect = event.ctrlKey || event.metaKey || event.shiftKey + const isMultiSelect = event.ctrlKey || event.metaKey if (isMultiSelect) { // Ctrl/Cmd+click -> toggle selection @@ -71,8 +69,6 @@ function useNodeEventHandlersIndividual() { * Uses LiteGraph's native collapse method for proper state management */ const handleNodeCollapse = (nodeId: string, collapsed: boolean) => { - if (!shouldHandleNodePointerEvents.value) return - if (!nodeManager.value) return const node = nodeManager.value.getNode(nodeId) @@ -82,7 +78,6 @@ function useNodeEventHandlersIndividual() { const currentCollapsed = node.flags?.collapsed ?? false if (currentCollapsed !== collapsed) { node.collapse() - nodeManager.value.scheduleUpdate(nodeId, 'critical') } } @@ -91,8 +86,6 @@ function useNodeEventHandlersIndividual() { * Updates the title in LiteGraph for persistence across sessions */ const handleNodeTitleUpdate = (nodeId: string, newTitle: string) => { - if (!shouldHandleNodePointerEvents.value) return - if (!nodeManager.value) return const node = nodeManager.value.getNode(nodeId) @@ -110,8 +103,6 @@ function useNodeEventHandlersIndividual() { event: PointerEvent, nodeData: VueNodeData ) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return const node = nodeManager.value.getNode(nodeData.id) @@ -132,8 +123,6 @@ function useNodeEventHandlersIndividual() { * Integrates with LiteGraph's context menu system */ const handleNodeRightClick = (event: PointerEvent, nodeData: VueNodeData) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return const node = nodeManager.value.getNode(nodeData.id) @@ -156,8 +145,6 @@ function useNodeEventHandlersIndividual() { * Prepares node for dragging and sets appropriate visual state */ const handleNodeDragStart = (event: DragEvent, nodeData: VueNodeData) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return const node = nodeManager.value.getNode(nodeData.id) @@ -186,8 +173,6 @@ function useNodeEventHandlersIndividual() { * Useful for selection toolbox or area selection */ const selectNodes = (nodeIds: string[], addToSelection = false) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return if (!addToSelection) { @@ -208,8 +193,6 @@ function useNodeEventHandlersIndividual() { * Deselect specific nodes */ const deselectNodes = (nodeIds: string[]) => { - if (!shouldHandleNodePointerEvents.value) return - if (!canvasStore.canvas || !nodeManager.value) return nodeIds.forEach((nodeId) => { @@ -236,7 +219,3 @@ function useNodeEventHandlersIndividual() { deselectNodes } } - -export const useNodeEventHandlers = createSharedComposable( - useNodeEventHandlersIndividual -) diff --git a/src/renderer/extensions/vueNodes/composables/useNodePointerInteractions.ts b/src/renderer/extensions/vueNodes/composables/useNodePointerInteractions.ts deleted file mode 100644 index f5ba08374..000000000 --- a/src/renderer/extensions/vueNodes/composables/useNodePointerInteractions.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { type MaybeRefOrGetter, computed, ref, toValue } from 'vue' - -import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' -import { useCanvasInteractions } from '@/renderer/core/canvas/useCanvasInteractions' -import { layoutStore } from '@/renderer/core/layout/store/layoutStore' -import { useNodeLayout } from '@/renderer/extensions/vueNodes/layout/useNodeLayout' - -// Treat tiny pointer jitter as a click, not a drag -const DRAG_THRESHOLD_PX = 4 - -export function useNodePointerInteractions( - nodeDataMaybe: MaybeRefOrGetter, - onPointerUp: ( - event: PointerEvent, - nodeData: VueNodeData, - wasDragging: boolean - ) => void -) { - const nodeData = toValue(nodeDataMaybe) - - const { startDrag, endDrag, handleDrag } = useNodeLayout(nodeData.id) - // Use canvas interactions for proper wheel event handling and pointer event capture control - const { forwardEventToCanvas, shouldHandleNodePointerEvents } = - useCanvasInteractions() - - // Drag state for styling - const isDragging = ref(false) - const dragStyle = computed(() => ({ - cursor: isDragging.value ? 'grabbing' : 'grab' - })) - const lastX = ref(0) - const lastY = ref(0) - - const handlePointerDown = (event: PointerEvent) => { - if (!nodeData) { - console.warn( - 'LGraphNode: nodeData is null/undefined in handlePointerDown' - ) - return - } - - // Don't handle pointer events when canvas is in panning mode - forward to canvas instead - if (!shouldHandleNodePointerEvents.value) { - forwardEventToCanvas(event) - return - } - - // Start drag using layout system - isDragging.value = true - - // Set Vue node dragging state for selection toolbox - layoutStore.isDraggingVueNodes.value = true - - startDrag(event) - lastY.value = event.clientY - lastX.value = event.clientX - } - - const handlePointerMove = (event: PointerEvent) => { - if (isDragging.value) { - void handleDrag(event) - } - } - - const handlePointerUp = (event: PointerEvent) => { - if (isDragging.value) { - isDragging.value = false - void endDrag(event) - - // Clear Vue node dragging state for selection toolbox - layoutStore.isDraggingVueNodes.value = false - } - - // Don't emit node-click when canvas is in panning mode - forward to canvas instead - if (!shouldHandleNodePointerEvents.value) { - forwardEventToCanvas(event) - return - } - - // Emit node-click for selection handling in GraphCanvas - const dx = event.clientX - lastX.value - const dy = event.clientY - lastY.value - const wasDragging = Math.hypot(dx, dy) > DRAG_THRESHOLD_PX - onPointerUp(event, nodeData, wasDragging) - } - return { - isDragging, - dragStyle, - handlePointerMove, - handlePointerDown, - handlePointerUp - } -} diff --git a/src/renderer/extensions/vueNodes/composables/useNodeTooltips.ts b/src/renderer/extensions/vueNodes/composables/useNodeTooltips.ts deleted file mode 100644 index 034047471..000000000 --- a/src/renderer/extensions/vueNodes/composables/useNodeTooltips.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { type MaybeRef, type Ref, computed, unref } from 'vue' - -import type { SafeWidgetData } from '@/composables/graph/useGraphNodeManager' -import { st } from '@/i18n' -import { useSettingStore } from '@/platform/settings/settingStore' -import { useNodeDefStore } from '@/stores/nodeDefStore' -import { normalizeI18nKey } from '@/utils/formatUtil' - -/** - * Composable for managing Vue node tooltips - * Provides tooltip text for node headers, slots, and widgets - */ -export function useNodeTooltips( - nodeType: MaybeRef, - containerRef?: Ref -) { - const nodeDefStore = useNodeDefStore() - const settingsStore = useSettingStore() - - // Check if tooltips are globally enabled - const tooltipsEnabled = computed(() => - settingsStore.get('Comfy.EnableTooltips') - ) - - // Get node definition for tooltip data - const nodeDef = computed(() => nodeDefStore.nodeDefsByName[unref(nodeType)]) - - /** - * Get tooltip text for node description (header hover) - */ - const getNodeDescription = computed(() => { - if (!tooltipsEnabled.value || !nodeDef.value) return '' - - const key = `nodeDefs.${normalizeI18nKey(unref(nodeType))}.description` - return st(key, nodeDef.value.description || '') - }) - - /** - * Get tooltip text for input slots - */ - const getInputSlotTooltip = (slotName: string) => { - if (!tooltipsEnabled.value || !nodeDef.value) return '' - - const key = `nodeDefs.${normalizeI18nKey(unref(nodeType))}.inputs.${normalizeI18nKey(slotName)}.tooltip` - const inputTooltip = nodeDef.value.inputs?.[slotName]?.tooltip ?? '' - return st(key, inputTooltip) - } - - /** - * Get tooltip text for output slots - */ - const getOutputSlotTooltip = (slotIndex: number) => { - if (!tooltipsEnabled.value || !nodeDef.value) return '' - - const key = `nodeDefs.${normalizeI18nKey(unref(nodeType))}.outputs.${slotIndex}.tooltip` - const outputTooltip = nodeDef.value.outputs?.[slotIndex]?.tooltip ?? '' - return st(key, outputTooltip) - } - - /** - * Get tooltip text for widgets - */ - const getWidgetTooltip = (widget: SafeWidgetData) => { - if (!tooltipsEnabled.value || !nodeDef.value) return '' - - // First try widget-specific tooltip - const widgetTooltip = (widget as { tooltip?: string }).tooltip - if (widgetTooltip) return widgetTooltip - - // Then try input-based tooltip lookup - const key = `nodeDefs.${normalizeI18nKey(unref(nodeType))}.inputs.${normalizeI18nKey(widget.name)}.tooltip` - const inputTooltip = nodeDef.value.inputs?.[widget.name]?.tooltip ?? '' - return st(key, inputTooltip) - } - - /** - * Create tooltip configuration object for v-tooltip directive - */ - const createTooltipConfig = (text: string) => { - const tooltipDelay = settingsStore.get('LiteGraph.Node.TooltipDelay') - const tooltipText = text || '' - - const config: { - value: string - showDelay: number - disabled: boolean - appendTo?: HTMLElement - pt?: any - } = { - value: tooltipText, - showDelay: tooltipDelay as number, - disabled: !tooltipsEnabled.value || !tooltipText, - pt: { - text: { - class: - 'bg-charcoal-800 border border-slate-300 rounded-md px-4 py-2 text-white text-sm font-normal leading-tight max-w-75 shadow-none' - }, - arrow: { - class: 'before:border-slate-300' - } - } - } - - // If we have a container reference, append tooltips to it - if (containerRef?.value) { - config.appendTo = containerRef.value - } - - return config - } - - return { - tooltipsEnabled, - getNodeDescription, - getInputSlotTooltip, - getOutputSlotTooltip, - getWidgetTooltip, - createTooltipConfig - } -} diff --git a/src/renderer/extensions/vueNodes/composables/useSlotElementTracking.ts b/src/renderer/extensions/vueNodes/composables/useSlotElementTracking.ts deleted file mode 100644 index 4b6cbf811..000000000 --- a/src/renderer/extensions/vueNodes/composables/useSlotElementTracking.ts +++ /dev/null @@ -1,224 +0,0 @@ -/** - * Centralized Slot Element Tracking - * - * Registers slot connector DOM elements per node, measures their canvas-space - * positions in a single batched pass, and caches offsets so that node moves - * update slot positions without DOM reads. - */ -import { type Ref, onMounted, onUnmounted, watch } from 'vue' - -import { useSharedCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion' -import { LiteGraph } from '@/lib/litegraph/src/litegraph' -import { getSlotKey } from '@/renderer/core/layout/slots/slotIdentifier' -import { layoutStore } from '@/renderer/core/layout/store/layoutStore' -import type { SlotLayout } from '@/renderer/core/layout/types' -import { - isPointEqual, - isSizeEqual -} from '@/renderer/core/layout/utils/geometry' -import { useNodeSlotRegistryStore } from '@/renderer/extensions/vueNodes/stores/nodeSlotRegistryStore' - -// RAF batching -const pendingNodes = new Set() -let rafId: number | null = null - -function scheduleSlotLayoutSync(nodeId: string) { - pendingNodes.add(nodeId) - if (rafId == null) { - rafId = requestAnimationFrame(() => { - rafId = null - flushScheduledSlotLayoutSync() - }) - } -} - -function flushScheduledSlotLayoutSync() { - if (pendingNodes.size === 0) return - const conv = useSharedCanvasPositionConversion() - for (const nodeId of Array.from(pendingNodes)) { - pendingNodes.delete(nodeId) - syncNodeSlotLayoutsFromDOM(nodeId, conv) - } -} - -export function syncNodeSlotLayoutsFromDOM( - nodeId: string, - conv?: ReturnType -) { - const nodeSlotRegistryStore = useNodeSlotRegistryStore() - const node = nodeSlotRegistryStore.getNode(nodeId) - if (!node) return - const nodeLayout = layoutStore.getNodeLayoutRef(nodeId).value - if (!nodeLayout) return - - const batch: Array<{ key: string; layout: SlotLayout }> = [] - - for (const [slotKey, entry] of node.slots) { - const rect = entry.el.getBoundingClientRect() - const screenCenter: [number, number] = [ - rect.left + rect.width / 2, - rect.top + rect.height / 2 - ] - const [x, y] = ( - conv ?? useSharedCanvasPositionConversion() - ).clientPosToCanvasPos(screenCenter) - const centerCanvas = { x, y } - - // Cache offset relative to node position for fast updates later - entry.cachedOffset = { - x: centerCanvas.x - nodeLayout.position.x, - y: centerCanvas.y - nodeLayout.position.y - } - - // Persist layout in canvas coordinates - const size = LiteGraph.NODE_SLOT_HEIGHT - const half = size / 2 - batch.push({ - key: slotKey, - layout: { - nodeId, - index: entry.index, - type: entry.type, - position: { x: centerCanvas.x, y: centerCanvas.y }, - bounds: { - x: centerCanvas.x - half, - y: centerCanvas.y - half, - width: size, - height: size - } - } - }) - } - if (batch.length) layoutStore.batchUpdateSlotLayouts(batch) -} - -function updateNodeSlotsFromCache(nodeId: string) { - const nodeSlotRegistryStore = useNodeSlotRegistryStore() - const node = nodeSlotRegistryStore.getNode(nodeId) - if (!node) return - const nodeLayout = layoutStore.getNodeLayoutRef(nodeId).value - if (!nodeLayout) return - - const batch: Array<{ key: string; layout: SlotLayout }> = [] - - for (const [slotKey, entry] of node.slots) { - if (!entry.cachedOffset) { - // schedule a sync to seed offset - scheduleSlotLayoutSync(nodeId) - continue - } - - const centerCanvas = { - x: nodeLayout.position.x + entry.cachedOffset.x, - y: nodeLayout.position.y + entry.cachedOffset.y - } - const size = LiteGraph.NODE_SLOT_HEIGHT - const half = size / 2 - batch.push({ - key: slotKey, - layout: { - nodeId, - index: entry.index, - type: entry.type, - position: { x: centerCanvas.x, y: centerCanvas.y }, - bounds: { - x: centerCanvas.x - half, - y: centerCanvas.y - half, - width: size, - height: size - } - } - }) - } - - if (batch.length) layoutStore.batchUpdateSlotLayouts(batch) -} - -export function useSlotElementTracking(options: { - nodeId: string - index: number - type: 'input' | 'output' - element: Ref -}) { - const { nodeId, index, type, element } = options - const nodeSlotRegistryStore = useNodeSlotRegistryStore() - - onMounted(() => { - if (!nodeId) return - const stop = watch( - element, - (el) => { - if (!el) return - - const node = nodeSlotRegistryStore.ensureNode(nodeId) - - if (!node.stopWatch) { - const layoutRef = layoutStore.getNodeLayoutRef(nodeId) - - const stopPositionWatch = watch( - () => layoutRef.value?.position, - (newPosition, oldPosition) => { - if (!newPosition) return - if (!oldPosition || !isPointEqual(newPosition, oldPosition)) { - updateNodeSlotsFromCache(nodeId) - } - } - ) - - const stopSizeWatch = watch( - () => layoutRef.value?.size, - (newSize, oldSize) => { - if (!newSize) return - if (!oldSize || !isSizeEqual(newSize, oldSize)) { - scheduleSlotLayoutSync(nodeId) - } - } - ) - - node.stopWatch = () => { - stopPositionWatch() - stopSizeWatch() - } - } - - // Register slot - const slotKey = getSlotKey(nodeId, index, type === 'input') - - el.dataset.slotKey = slotKey - node.slots.set(slotKey, { el, index, type }) - - // Seed initial sync from DOM - scheduleSlotLayoutSync(nodeId) - - // Stop watching once registered - stop() - }, - { immediate: true, flush: 'post' } - ) - }) - - onUnmounted(() => { - if (!nodeId) return - const node = nodeSlotRegistryStore.getNode(nodeId) - if (!node) return - - // Remove this slot from registry and layout - const slotKey = getSlotKey(nodeId, index, type === 'input') - const entry = node.slots.get(slotKey) - if (entry) { - delete entry.el.dataset.slotKey - node.slots.delete(slotKey) - } - layoutStore.deleteSlotLayout(slotKey) - - // If node has no more slots, clean up - if (node.slots.size === 0) { - if (node.stopWatch) node.stopWatch() - nodeSlotRegistryStore.deleteNode(nodeId) - } - }) - - return { - requestSlotLayoutSync: () => scheduleSlotLayoutSync(nodeId) - } -} diff --git a/src/renderer/extensions/vueNodes/composables/useSlotLinkInteraction.ts b/src/renderer/extensions/vueNodes/composables/useSlotLinkInteraction.ts deleted file mode 100644 index f82deab7d..000000000 --- a/src/renderer/extensions/vueNodes/composables/useSlotLinkInteraction.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { type Fn, useEventListener } from '@vueuse/core' -import { onBeforeUnmount } from 'vue' - -import { useSharedCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion' -import { LinkDirection } from '@/lib/litegraph/src/types/globalEnums' -import { evaluateCompatibility } from '@/renderer/core/canvas/links/slotLinkCompatibility' -import { - type SlotDropCandidate, - useSlotLinkDragState -} from '@/renderer/core/canvas/links/slotLinkDragState' -import { getSlotKey } from '@/renderer/core/layout/slots/slotIdentifier' -import { layoutStore } from '@/renderer/core/layout/store/layoutStore' -import type { SlotLayout } from '@/renderer/core/layout/types' -import { app } from '@/scripts/app' - -interface SlotInteractionOptions { - nodeId: string - index: number - type: 'input' | 'output' - readonly?: boolean -} - -interface SlotInteractionHandlers { - onPointerDown: (event: PointerEvent) => void -} - -interface PointerSession { - begin: (pointerId: number) => void - register: (...stops: Array) => void - matches: (event: PointerEvent) => boolean - isActive: () => boolean - clear: () => void -} - -function createPointerSession(): PointerSession { - let pointerId: number | null = null - let stops: Fn[] = [] - - const begin = (id: number) => { - pointerId = id - } - - const register = (...newStops: Array) => { - for (const stop of newStops) { - if (typeof stop === 'function') { - stops.push(stop) - } - } - } - - const matches = (event: PointerEvent) => - pointerId !== null && event.pointerId === pointerId - - const isActive = () => pointerId !== null - - const clear = () => { - for (const stop of stops) { - stop() - } - stops = [] - pointerId = null - } - - return { begin, register, matches, isActive, clear } -} - -export function useSlotLinkInteraction({ - nodeId, - index, - type, - readonly -}: SlotInteractionOptions): SlotInteractionHandlers { - if (readonly) { - return { - onPointerDown: () => {} - } - } - - const { state, beginDrag, endDrag, updatePointerPosition } = - useSlotLinkDragState() - - function candidateFromTarget( - target: EventTarget | null - ): SlotDropCandidate | null { - if (!(target instanceof HTMLElement)) return null - const key = target.dataset['slotKey'] - if (!key) return null - - const layout = layoutStore.getSlotLayout(key) - if (!layout) return null - - const candidate: SlotDropCandidate = { layout, compatible: false } - - if (state.source) { - candidate.compatible = evaluateCompatibility( - state.source, - candidate - ).allowable - } - - return candidate - } - - const conversion = useSharedCanvasPositionConversion() - - const pointerSession = createPointerSession() - - const cleanupInteraction = () => { - pointerSession.clear() - endDrag() - } - - const updatePointerState = (event: PointerEvent) => { - const clientX = event.clientX - const clientY = event.clientY - const [canvasX, canvasY] = conversion.clientPosToCanvasPos([ - clientX, - clientY - ]) - - updatePointerPosition(clientX, clientY, canvasX, canvasY) - } - - const handlePointerMove = (event: PointerEvent) => { - if (!pointerSession.matches(event)) return - updatePointerState(event) - app.canvas?.setDirty(true) - } - - const connectSlots = (slotLayout: SlotLayout) => { - const canvas = app.canvas - const graph = canvas?.graph - const source = state.source - if (!canvas || !graph || !source) return - - const sourceNode = graph.getNodeById(Number(source.nodeId)) - const targetNode = graph.getNodeById(Number(slotLayout.nodeId)) - if (!sourceNode || !targetNode) return - - if (source.type === 'output' && slotLayout.type === 'input') { - const outputSlot = sourceNode.outputs?.[source.slotIndex] - const inputSlot = targetNode.inputs?.[slotLayout.index] - if (!outputSlot || !inputSlot) return - graph.beforeChange() - sourceNode.connectSlots(outputSlot, targetNode, inputSlot, undefined) - return - } - - if (source.type === 'input' && slotLayout.type === 'output') { - const inputSlot = sourceNode.inputs?.[source.slotIndex] - const outputSlot = targetNode.outputs?.[slotLayout.index] - if (!inputSlot || !outputSlot) return - graph.beforeChange() - sourceNode.disconnectInput(source.slotIndex, true) - targetNode.connectSlots(outputSlot, sourceNode, inputSlot, undefined) - } - } - - const finishInteraction = (event: PointerEvent) => { - if (!pointerSession.matches(event)) return - event.preventDefault() - - if (state.source) { - const candidate = candidateFromTarget(event.target) - if (candidate?.compatible) { - connectSlots(candidate.layout) - } - } - - cleanupInteraction() - app.canvas?.setDirty(true) - } - - const handlePointerUp = (event: PointerEvent) => { - finishInteraction(event) - } - - const handlePointerCancel = (event: PointerEvent) => { - if (!pointerSession.matches(event)) return - cleanupInteraction() - app.canvas?.setDirty(true) - } - - const onPointerDown = (event: PointerEvent) => { - if (event.button !== 0) return - if (!nodeId) return - if (pointerSession.isActive()) return - - const canvas = app.canvas - const graph = canvas?.graph - if (!canvas || !graph) return - - const layout = layoutStore.getSlotLayout( - getSlotKey(nodeId, index, type === 'input') - ) - if (!layout) return - - const resolvedNode = graph.getNodeById(Number(nodeId)) - const slot = - type === 'input' - ? resolvedNode?.inputs?.[index] - : resolvedNode?.outputs?.[index] - - const direction = - slot?.dir ?? (type === 'input' ? LinkDirection.LEFT : LinkDirection.RIGHT) - - beginDrag( - { - nodeId, - slotIndex: index, - type, - direction, - position: layout.position - }, - event.pointerId - ) - - pointerSession.begin(event.pointerId) - - updatePointerState(event) - - pointerSession.register( - useEventListener(window, 'pointermove', handlePointerMove, { - capture: true - }), - useEventListener(window, 'pointerup', handlePointerUp, { - capture: true - }), - useEventListener(window, 'pointercancel', handlePointerCancel, { - capture: true - }) - ) - app.canvas?.setDirty(true) - event.preventDefault() - event.stopPropagation() - } - - onBeforeUnmount(() => { - if (pointerSession.isActive()) { - cleanupInteraction() - } - }) - - return { - onPointerDown - } -} diff --git a/src/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking.ts b/src/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking.ts index e8c38164d..c6be50285 100644 --- a/src/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking.ts +++ b/src/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking.ts @@ -8,21 +8,11 @@ * Supports different element types (nodes, slots, widgets, etc.) with * customizable data attributes and update handlers. */ -import { - type MaybeRefOrGetter, - getCurrentInstance, - onMounted, - onUnmounted, - toValue -} from 'vue' +import { getCurrentInstance, onMounted, onUnmounted } from 'vue' -import { useSharedCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion' -import { LiteGraph } from '@/lib/litegraph/src/litegraph' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' import type { Bounds, NodeId } from '@/renderer/core/layout/types' -import { syncNodeSlotLayoutsFromDOM } from './useSlotElementTracking' - /** * Generic update item for element bounds tracking */ @@ -64,12 +54,8 @@ const trackingConfigs: Map = new Map([ // Single ResizeObserver instance for all Vue elements const resizeObserver = new ResizeObserver((entries) => { - // Canvas is ready when this code runs; no defensive guards needed. - const conv = useSharedCanvasPositionConversion() - // Group updates by type, then flush via each config's handler + // Group updates by element type const updatesByType = new Map() - // Track nodes whose slots should be resynced after node size changes - const nodesNeedingSlotResync = new Set() for (const entry of entries) { if (!(entry.target instanceof HTMLElement)) continue @@ -90,50 +76,30 @@ const resizeObserver = new ResizeObserver((entries) => { if (!elementType || !elementId) continue - // Use contentBoxSize when available; fall back to contentRect for older engines/tests - const contentBox = Array.isArray(entry.contentBoxSize) - ? entry.contentBoxSize[0] - : { - inlineSize: entry.contentRect.width, - blockSize: entry.contentRect.height - } - const width = contentBox.inlineSize - const height = contentBox.blockSize - - // Screen-space rect + const { inlineSize: width, blockSize: height } = entry.contentBoxSize[0] const rect = element.getBoundingClientRect() - const [cx, cy] = conv.clientPosToCanvasPos([rect.left, rect.top]) - const topLeftCanvas = { x: cx, y: cy } + const bounds: Bounds = { - x: topLeftCanvas.x, - y: topLeftCanvas.y + LiteGraph.NODE_TITLE_HEIGHT, - width: Math.max(0, width), - height: Math.max(0, height - LiteGraph.NODE_TITLE_HEIGHT) + x: rect.left, + y: rect.top, + width, + height: height } - let updates = updatesByType.get(elementType) - if (!updates) { - updates = [] - updatesByType.set(elementType, updates) + if (!updatesByType.has(elementType)) { + updatesByType.set(elementType, []) } - updates.push({ id: elementId, bounds }) - - // If this entry is a node, mark it for slot layout resync - if (elementType === 'node' && elementId) { - nodesNeedingSlotResync.add(elementId) + const updates = updatesByType.get(elementType) + if (updates) { + updates.push({ id: elementId, bounds }) } } - // Flush per-type + // Process updates by type for (const [type, updates] of updatesByType) { const config = trackingConfigs.get(type) - if (config && updates.length) config.updateHandler(updates) - } - - // After node bounds are updated, refresh slot cached offsets and layouts - if (nodesNeedingSlotResync.size > 0) { - for (const nodeId of nodesNeedingSlotResync) { - syncNodeSlotLayoutsFromDOM(nodeId) + if (config && updates.length > 0) { + config.updateHandler(updates) } } }) @@ -160,20 +126,19 @@ const resizeObserver = new ResizeObserver((entries) => { * ``` */ export function useVueElementTracking( - appIdentifierMaybe: MaybeRefOrGetter, + appIdentifier: string, trackingType: string ) { - const appIdentifier = toValue(appIdentifierMaybe) onMounted(() => { const element = getCurrentInstance()?.proxy?.$el if (!(element instanceof HTMLElement) || !appIdentifier) return const config = trackingConfigs.get(trackingType) - if (!config) return - - // Set the data attribute expected by the RO pipeline for this type - element.dataset[config.dataAttribute] = appIdentifier - resizeObserver.observe(element) + if (config) { + // Set the appropriate data attribute + element.dataset[config.dataAttribute] = appIdentifier + resizeObserver.observe(element) + } }) onUnmounted(() => { @@ -181,10 +146,10 @@ export function useVueElementTracking( if (!(element instanceof HTMLElement)) return const config = trackingConfigs.get(trackingType) - if (!config) return - - // Remove the data attribute and observer - delete element.dataset[config.dataAttribute] - resizeObserver.unobserve(element) + if (config) { + // Remove the data attribute + delete element.dataset[config.dataAttribute] + resizeObserver.unobserve(element) + } }) } diff --git a/src/renderer/extensions/vueNodes/execution/useExecutionStateProvider.ts b/src/renderer/extensions/vueNodes/execution/useExecutionStateProvider.ts new file mode 100644 index 000000000..aae08298a --- /dev/null +++ b/src/renderer/extensions/vueNodes/execution/useExecutionStateProvider.ts @@ -0,0 +1,36 @@ +import { storeToRefs } from 'pinia' +import { computed, provide } from 'vue' + +import { + ExecutingNodeIdsKey, + NodeProgressStatesKey +} from '@/renderer/core/canvas/injectionKeys' +import { useExecutionStore } from '@/stores/executionStore' + +/** + * Composable for providing execution state to Vue node children + * + * This composable sets up the execution state providers that can be injected + * by child Vue nodes using useNodeExecutionState. + * + * Should be used in the parent component that manages Vue nodes (e.g., GraphCanvas). + */ +export const useExecutionStateProvider = () => { + const executionStore = useExecutionStore() + const { executingNodeIds: storeExecutingNodeIds, nodeProgressStates } = + storeToRefs(executionStore) + + // Convert execution store data to the format expected by Vue nodes + const executingNodeIds = computed( + () => new Set(storeExecutingNodeIds.value.map(String)) + ) + + // Provide the execution state to all child Vue nodes + provide(ExecutingNodeIdsKey, executingNodeIds) + provide(NodeProgressStatesKey, nodeProgressStates) + + return { + executingNodeIds, + nodeProgressStates + } +} diff --git a/src/renderer/extensions/vueNodes/execution/useNodeExecutionState.ts b/src/renderer/extensions/vueNodes/execution/useNodeExecutionState.ts index aa4867db9..8f03e29e1 100644 --- a/src/renderer/extensions/vueNodes/execution/useNodeExecutionState.ts +++ b/src/renderer/extensions/vueNodes/execution/useNodeExecutionState.ts @@ -1,7 +1,10 @@ -import { storeToRefs } from 'pinia' -import { type MaybeRefOrGetter, computed, toValue } from 'vue' +import { computed, inject, ref } from 'vue' -import { useExecutionStore } from '@/stores/executionStore' +import { + ExecutingNodeIdsKey, + NodeProgressStatesKey +} from '@/renderer/core/canvas/injectionKeys' +import type { NodeProgressState } from '@/schemas/apiSchema' /** * Composable for managing execution state of Vue-based nodes @@ -9,18 +12,18 @@ import { useExecutionStore } from '@/stores/executionStore' * Provides reactive access to execution state and progress for a specific node * by injecting execution data from the parent GraphCanvas provider. * - * @param nodeIdMaybe - The ID of the node to track execution state for + * @param nodeId - The ID of the node to track execution state for * @returns Object containing reactive execution state and progress */ -export const useNodeExecutionState = ( - nodeIdMaybe: MaybeRefOrGetter -) => { - const nodeId = toValue(nodeIdMaybe) - const { uniqueExecutingNodeIdStrings, nodeProgressStates } = - storeToRefs(useExecutionStore()) +export const useNodeExecutionState = (nodeId: string) => { + const executingNodeIds = inject(ExecutingNodeIdsKey, ref(new Set())) + const nodeProgressStates = inject( + NodeProgressStatesKey, + ref>({}) + ) const executing = computed(() => { - return uniqueExecutingNodeIdStrings.value.has(nodeId) + return executingNodeIds.value.has(nodeId) }) const progress = computed(() => { diff --git a/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts b/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts index 60e5a7fd8..995d83d6f 100644 --- a/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts +++ b/src/renderer/extensions/vueNodes/layout/useNodeLayout.ts @@ -1,14 +1,12 @@ -import { storeToRefs } from 'pinia' -import { - type CSSProperties, - type MaybeRefOrGetter, - computed, - inject, - toValue -} from 'vue' +/** + * Composable for individual Vue node components + * + * Uses customRef for shared write access with Canvas renderer. + * Provides dragging functionality and reactive layout state. + */ +import { computed, inject } from 'vue' -import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' -import { TransformStateKey } from '@/renderer/core/layout/injectionKeys' +import { SelectedNodeIdsKey } from '@/renderer/core/canvas/injectionKeys' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' import { LayoutSource, type Point } from '@/renderer/core/layout/types' @@ -17,16 +15,20 @@ import { LayoutSource, type Point } from '@/renderer/core/layout/types' * Composable for individual Vue node components * Uses customRef for shared write access with Canvas renderer */ -export function useNodeLayout(nodeIdMaybe: MaybeRefOrGetter) { - const nodeId = toValue(nodeIdMaybe) +export function useNodeLayout(nodeId: string) { + const store = layoutStore const mutations = useLayoutMutations() - const { selectedNodeIds } = storeToRefs(useCanvasStore()) // Get transform utilities from TransformPane if available - const transformState = inject(TransformStateKey) + const transformState = inject('transformState') as + | { + canvasToScreen: (point: Point) => Point + screenToCanvas: (point: Point) => Point + } + | undefined // Get the customRef for this node (shared write access) - const layoutRef = layoutStore.getNodeLayoutRef(nodeId) + const layoutRef = store.getNodeLayoutRef(nodeId) // Computed properties for easy access const position = computed(() => { @@ -55,6 +57,8 @@ export function useNodeLayout(nodeIdMaybe: MaybeRefOrGetter) { let dragStartMouse: Point | null = null let otherSelectedNodesStartPositions: Map | null = null + const selectedNodeIds = inject(SelectedNodeIdsKey, null) + /** * Start dragging the node */ @@ -188,16 +192,14 @@ export function useNodeLayout(nodeIdMaybe: MaybeRefOrGetter) { endDrag, // Computed styles for Vue templates - nodeStyle: computed( - (): CSSProperties => ({ - position: 'absolute' as const, - left: `${position.value.x}px`, - top: `${position.value.y}px`, - width: `${size.value.width}px`, - height: `${size.value.height}px`, - zIndex: zIndex.value, - cursor: isDragging ? 'grabbing' : 'grab' - }) - ) + nodeStyle: computed(() => ({ + position: 'absolute' as const, + left: `${position.value.x}px`, + top: `${position.value.y}px`, + width: `${size.value.width}px`, + height: `${size.value.height}px`, + zIndex: zIndex.value, + cursor: isDragging ? 'grabbing' : 'grab' + })) } } diff --git a/src/renderer/extensions/vueNodes/lod/useLOD.ts b/src/renderer/extensions/vueNodes/lod/useLOD.ts index 87c1bb865..584e21f9a 100644 --- a/src/renderer/extensions/vueNodes/lod/useLOD.ts +++ b/src/renderer/extensions/vueNodes/lod/useLOD.ts @@ -27,7 +27,7 @@ * * ``` */ -import { type MaybeRefOrGetter, computed, readonly, toRef } from 'vue' +import { type Ref, computed, readonly } from 'vue' export enum LODLevel { MINIMAL = 'minimal', // zoom <= 0.4 @@ -78,8 +78,7 @@ const LOD_CONFIGS: Record = { * @param zoomRef - Reactive reference to current zoom level (camera.z) * @returns LOD state and configuration */ -export function useLOD(zoomRefMaybe: MaybeRefOrGetter) { - const zoomRef = toRef(zoomRefMaybe) +export function useLOD(zoomRef: Ref) { // Continuous LOD score (0-1) for smooth transitions const lodScore = computed(() => { const zoom = zoomRef.value diff --git a/src/renderer/extensions/vueNodes/preview/useNodePreviewState.ts b/src/renderer/extensions/vueNodes/preview/useNodePreviewState.ts deleted file mode 100644 index 8fc82147a..000000000 --- a/src/renderer/extensions/vueNodes/preview/useNodePreviewState.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { storeToRefs } from 'pinia' -import { type MaybeRefOrGetter, type Ref, computed, toValue } from 'vue' - -import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' -import { useNodeOutputStore } from '@/stores/imagePreviewStore' - -export const useNodePreviewState = ( - nodeIdMaybe: MaybeRefOrGetter, - options?: { - isMinimalLOD?: Ref - isCollapsed?: Ref - } -) => { - const nodeId = toValue(nodeIdMaybe) - const workflowStore = useWorkflowStore() - const { nodePreviewImages } = storeToRefs(useNodeOutputStore()) - - const locatorId = computed(() => workflowStore.nodeIdToNodeLocatorId(nodeId)) - - const previewUrls = computed(() => { - const key = locatorId.value - if (!key) return undefined - const urls = nodePreviewImages.value[key] - return urls?.length ? urls : undefined - }) - - const hasPreview = computed(() => !!previewUrls.value?.length) - - const latestPreviewUrl = computed(() => { - const urls = previewUrls.value - return urls?.length ? urls.at(-1) : '' - }) - - const shouldShowPreviewImg = computed(() => { - if (!options?.isMinimalLOD || !options?.isCollapsed) { - return hasPreview.value - } - return ( - !options.isMinimalLOD.value && - !options.isCollapsed.value && - hasPreview.value - ) - }) - - return { - locatorId, - previewUrls, - hasPreview, - latestPreviewUrl, - shouldShowPreviewImg - } -} diff --git a/src/renderer/extensions/vueNodes/stores/nodeSlotRegistryStore.ts b/src/renderer/extensions/vueNodes/stores/nodeSlotRegistryStore.ts deleted file mode 100644 index c5e76d4b4..000000000 --- a/src/renderer/extensions/vueNodes/stores/nodeSlotRegistryStore.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { defineStore } from 'pinia' -import { markRaw } from 'vue' - -type SlotEntry = { - el: HTMLElement - index: number - type: 'input' | 'output' - cachedOffset?: { x: number; y: number } -} - -type NodeEntry = { - nodeId: string - slots: Map - stopWatch?: () => void -} - -export const useNodeSlotRegistryStore = defineStore('nodeSlotRegistry', () => { - const registry = markRaw(new Map()) - - function getNode(nodeId: string) { - return registry.get(nodeId) - } - - function ensureNode(nodeId: string) { - let node = registry.get(nodeId) - if (!node) { - node = { - nodeId, - slots: markRaw(new Map()) - } - registry.set(nodeId, node) - } - return node - } - - function deleteNode(nodeId: string) { - registry.delete(nodeId) - } - - function clear() { - registry.clear() - } - - return { - getNode, - ensureNode, - deleteNode, - clear - } -}) diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetGalleria.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetGalleria.vue index 28be93117..81e47985f 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetGalleria.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetGalleria.vue @@ -1,7 +1,7 @@

^y>S6Q0RFK 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 { const mockOptions = ['d', 'c', 'b', 'a'] diff --git a/browser_tests/tests/sidebar/queue.spec.ts b/browser_tests/tests/sidebar/queue.spec.ts index 39e2ced6e..2d9dd10ba 100644 --- a/browser_tests/tests/sidebar/queue.spec.ts +++ b/browser_tests/tests/sidebar/queue.spec.ts @@ -160,9 +160,7 @@ test.describe.skip('Queue sidebar', () => { comfyPage }) => { await comfyPage.nextFrame() - await expect( - comfyPage.menu.queueTab.getGalleryImage(firstImage) - ).toBeVisible() + expect(comfyPage.menu.queueTab.getGalleryImage(firstImage)).toBeVisible() }) test('maintains active gallery item when new tasks are added', async ({ @@ -176,9 +174,7 @@ test.describe.skip('Queue sidebar', () => { const newTask = comfyPage.menu.queueTab.tasks.getByAltText(newImage) await newTask.waitFor({ state: 'visible' }) // The active gallery item should still be the initial image - await expect( - comfyPage.menu.queueTab.getGalleryImage(firstImage) - ).toBeVisible() + expect(comfyPage.menu.queueTab.getGalleryImage(firstImage)).toBeVisible() }) test.describe('Gallery navigation', () => { @@ -200,9 +196,7 @@ test.describe.skip('Queue sidebar', () => { delay: 256 }) await comfyPage.nextFrame() - await expect( - comfyPage.menu.queueTab.getGalleryImage(end) - ).toBeVisible() + expect(comfyPage.menu.queueTab.getGalleryImage(end)).toBeVisible() }) }) }) diff --git a/browser_tests/tests/templates.spec.ts b/browser_tests/tests/templates.spec.ts index 9141e9135..f2c2e2bb5 100644 --- a/browser_tests/tests/templates.spec.ts +++ b/browser_tests/tests/templates.spec.ts @@ -1,5 +1,4 @@ -import type { Page } from '@playwright/test' -import { expect } from '@playwright/test' +import { Page, expect } from '@playwright/test' import { comfyPageFixture as test } from '../fixtures/ComfyPage' diff --git a/browser_tests/tests/versionMismatchWarnings.spec.ts b/browser_tests/tests/versionMismatchWarnings.spec.ts index b2c62aeb0..d85f18723 100644 --- a/browser_tests/tests/versionMismatchWarnings.spec.ts +++ b/browser_tests/tests/versionMismatchWarnings.spec.ts @@ -1,6 +1,6 @@ import { expect } from '@playwright/test' -import type { SystemStats } from '../../src/schemas/apiSchema' +import { SystemStats } from '../../src/schemas/apiSchema' import { comfyPageFixture as test } from '../fixtures/ComfyPage' test.describe('Version Mismatch Warnings', () => { diff --git a/browser_tests/tests/vueNodes/NodeHeader.spec.ts b/browser_tests/tests/vueNodes/NodeHeader.spec.ts index 336e2672d..7a8ae5dd2 100644 --- a/browser_tests/tests/vueNodes/NodeHeader.spec.ts +++ b/browser_tests/tests/vueNodes/NodeHeader.spec.ts @@ -6,7 +6,7 @@ import { VueNodeFixture } from '../../fixtures/utils/vueNodeFixtures' test.describe('NodeHeader', () => { test.beforeEach(async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.UseNewMenu', 'Top') + await comfyPage.setSetting('Comfy.UseNewMenu', 'Enabled') await comfyPage.setSetting('Comfy.Graph.CanvasMenu', false) await comfyPage.setSetting('Comfy.EnableTooltips', true) await comfyPage.setSetting('Comfy.VueNodes.Enabled', true) diff --git a/browser_tests/tests/vueNodes/linkInteraction.spec.ts b/browser_tests/tests/vueNodes/linkInteraction.spec.ts deleted file mode 100644 index d6b1bccc1..000000000 --- a/browser_tests/tests/vueNodes/linkInteraction.spec.ts +++ /dev/null @@ -1,221 +0,0 @@ -import type { Locator } from '@playwright/test' - -import { getSlotKey } from '../../../src/renderer/core/layout/slots/slotIdentifier' -import { - comfyExpect as expect, - comfyPageFixture as test -} from '../../fixtures/ComfyPage' -import { fitToViewInstant } from '../../helpers/fitToView' - -async function getCenter(locator: Locator): Promise<{ x: number; y: number }> { - const box = await locator.boundingBox() - if (!box) throw new Error('Slot bounding box not available') - return { - x: box.x + box.width / 2, - y: box.y + box.height / 2 - } -} - -test.describe('Vue Node Link Interaction', () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.UseNewMenu', 'Top') - await comfyPage.setSetting('Comfy.VueNodes.Enabled', true) - await comfyPage.setup() - await comfyPage.loadWorkflow('vueNodes/simple-triple') - await comfyPage.vueNodes.waitForNodes() - await fitToViewInstant(comfyPage) - }) - - test('should show a link dragging out from a slot when dragging on a slot', async ({ - comfyPage, - comfyMouse - }) => { - const samplerNodes = await comfyPage.getNodeRefsByType('KSampler') - expect(samplerNodes.length).toBeGreaterThan(0) - - const samplerNode = samplerNodes[0] - const outputSlot = await samplerNode.getOutput(0) - await outputSlot.removeLinks() - await comfyPage.nextFrame() - - const slotKey = getSlotKey(String(samplerNode.id), 0, false) - const slotLocator = comfyPage.page.locator(`[data-slot-key="${slotKey}"]`) - await expect(slotLocator).toBeVisible() - - const start = await getCenter(slotLocator) - const canvasBox = await comfyPage.canvas.boundingBox() - if (!canvasBox) throw new Error('Canvas bounding box not available') - - // Arbitrary value - const dragTarget = { - x: start.x + 180, - y: start.y - 140 - } - - await comfyMouse.move(start) - await comfyMouse.drag(dragTarget) - await comfyPage.nextFrame() - - try { - await expect(comfyPage.canvas).toHaveScreenshot( - 'vue-node-dragging-link.png' - ) - } finally { - await comfyMouse.drop() - } - }) - - test('should create a link when dropping on a compatible slot', async ({ - comfyPage - }) => { - const samplerNodes = await comfyPage.getNodeRefsByType('KSampler') - expect(samplerNodes.length).toBeGreaterThan(0) - const samplerNode = samplerNodes[0] - - const vaeNodes = await comfyPage.getNodeRefsByType('VAEDecode') - expect(vaeNodes.length).toBeGreaterThan(0) - const vaeNode = vaeNodes[0] - - const samplerOutput = await samplerNode.getOutput(0) - const vaeInput = await vaeNode.getInput(0) - - const outputSlotKey = getSlotKey(String(samplerNode.id), 0, false) - const inputSlotKey = getSlotKey(String(vaeNode.id), 0, true) - - const outputSlot = comfyPage.page.locator( - `[data-slot-key="${outputSlotKey}"]` - ) - const inputSlot = comfyPage.page.locator( - `[data-slot-key="${inputSlotKey}"]` - ) - - await expect(outputSlot).toBeVisible() - await expect(inputSlot).toBeVisible() - - await outputSlot.dragTo(inputSlot) - await comfyPage.nextFrame() - - expect(await samplerOutput.getLinkCount()).toBe(1) - expect(await vaeInput.getLinkCount()).toBe(1) - - const linkDetails = await comfyPage.page.evaluate((sourceId) => { - const app = window['app'] - const graph = app?.canvas?.graph ?? app?.graph - if (!graph) return null - - const source = graph.getNodeById(sourceId) - if (!source) return null - - const linkId = source.outputs[0]?.links?.[0] - if (linkId == null) return null - - const link = graph.links[linkId] - if (!link) return null - - return { - originId: link.origin_id, - originSlot: link.origin_slot, - targetId: link.target_id, - targetSlot: link.target_slot - } - }, samplerNode.id) - - expect(linkDetails).not.toBeNull() - expect(linkDetails).toMatchObject({ - originId: samplerNode.id, - originSlot: 0, - targetId: vaeNode.id, - targetSlot: 0 - }) - }) - - test('should not create a link when slot types are incompatible', async ({ - comfyPage - }) => { - const samplerNodes = await comfyPage.getNodeRefsByType('KSampler') - expect(samplerNodes.length).toBeGreaterThan(0) - const samplerNode = samplerNodes[0] - - const clipNodes = await comfyPage.getNodeRefsByType('CLIPTextEncode') - expect(clipNodes.length).toBeGreaterThan(0) - const clipNode = clipNodes[0] - - const samplerOutput = await samplerNode.getOutput(0) - const clipInput = await clipNode.getInput(0) - - const outputSlotKey = getSlotKey(String(samplerNode.id), 0, false) - const inputSlotKey = getSlotKey(String(clipNode.id), 0, true) - - const outputSlot = comfyPage.page.locator( - `[data-slot-key="${outputSlotKey}"]` - ) - const inputSlot = comfyPage.page.locator( - `[data-slot-key="${inputSlotKey}"]` - ) - - await expect(outputSlot).toBeVisible() - await expect(inputSlot).toBeVisible() - - await outputSlot.dragTo(inputSlot) - await comfyPage.nextFrame() - - expect(await samplerOutput.getLinkCount()).toBe(0) - expect(await clipInput.getLinkCount()).toBe(0) - - const graphLinkCount = await comfyPage.page.evaluate((sourceId) => { - const app = window['app'] - const graph = app?.canvas?.graph ?? app?.graph - if (!graph) return 0 - - const source = graph.getNodeById(sourceId) - if (!source) return 0 - - return source.outputs[0]?.links?.length ?? 0 - }, samplerNode.id) - - expect(graphLinkCount).toBe(0) - }) - - test('should not create a link when dropping onto a slot on the same node', async ({ - comfyPage - }) => { - const samplerNodes = await comfyPage.getNodeRefsByType('KSampler') - expect(samplerNodes.length).toBeGreaterThan(0) - const samplerNode = samplerNodes[0] - - const samplerOutput = await samplerNode.getOutput(0) - const samplerInput = await samplerNode.getInput(3) - - const outputSlotKey = getSlotKey(String(samplerNode.id), 0, false) - const inputSlotKey = getSlotKey(String(samplerNode.id), 3, true) - - const outputSlot = comfyPage.page.locator( - `[data-slot-key="${outputSlotKey}"]` - ) - const inputSlot = comfyPage.page.locator( - `[data-slot-key="${inputSlotKey}"]` - ) - - await expect(outputSlot).toBeVisible() - await expect(inputSlot).toBeVisible() - - await outputSlot.dragTo(inputSlot) - await comfyPage.nextFrame() - - expect(await samplerOutput.getLinkCount()).toBe(0) - expect(await samplerInput.getLinkCount()).toBe(0) - - const graphLinkCount = await comfyPage.page.evaluate((sourceId) => { - const app = window['app'] - const graph = app?.canvas?.graph ?? app?.graph - if (!graph) return 0 - - const source = graph.getNodeById(sourceId) - if (!source) return 0 - - return source.outputs[0]?.links?.length ?? 0 - }, samplerNode.id) - - expect(graphLinkCount).toBe(0) - }) -}) diff --git a/browser_tests/tests/vueNodes/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png b/browser_tests/tests/vueNodes/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png deleted file mode 100644 index d4c32b4ea2f5e6f13e9409d41e82454e8db6f8d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54042 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 Qp$8)+CNG)?eevf10X%eTMF0Q* diff --git a/browser_tests/tests/vueNodes/nodeInteractions/selectionState.spec.ts b/browser_tests/tests/vueNodes/nodeInteractions/selectionState.spec.ts deleted file mode 100644 index ff8b6f951..000000000 --- a/browser_tests/tests/vueNodes/nodeInteractions/selectionState.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - comfyExpect as expect, - comfyPageFixture as test -} from '../../../fixtures/ComfyPage' - -test.describe('Vue Node Selection', () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.VueNodes.Enabled', true) - await comfyPage.vueNodes.waitForNodes() - }) - - const modifiers = [ - { key: 'Control', name: 'ctrl' }, - { key: 'Shift', name: 'shift' } - ] as const - - for (const { key: modifier, name } of modifiers) { - test(`should allow selecting multiple nodes with ${name}+click`, async ({ - comfyPage - }) => { - await comfyPage.page.getByText('Load Checkpoint').click() - expect(await comfyPage.vueNodes.getSelectedNodeCount()).toBe(1) - - await comfyPage.page.getByText('Empty Latent Image').click({ - modifiers: [modifier] - }) - expect(await comfyPage.vueNodes.getSelectedNodeCount()).toBe(2) - - await comfyPage.page.getByText('KSampler').click({ - modifiers: [modifier] - }) - expect(await comfyPage.vueNodes.getSelectedNodeCount()).toBe(3) - }) - - test(`should allow de-selecting nodes with ${name}+click`, async ({ - comfyPage - }) => { - await comfyPage.page.getByText('Load Checkpoint').click() - expect(await comfyPage.vueNodes.getSelectedNodeCount()).toBe(1) - - await comfyPage.page.getByText('Load Checkpoint').click({ - modifiers: [modifier] - }) - expect(await comfyPage.vueNodes.getSelectedNodeCount()).toBe(0) - }) - } -}) diff --git a/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts b/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts deleted file mode 100644 index c80a86503..000000000 --- a/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - comfyExpect as expect, - comfyPageFixture as test -} from '../../../fixtures/ComfyPage' - -const BYPASS_HOTKEY = 'Control+b' -const BYPASS_CLASS = /before:bg-bypass\/60/ - -test.describe('Vue Node Bypass', () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.VueNodes.Enabled', true) - await comfyPage.vueNodes.waitForNodes() - }) - - test('should allow toggling bypass on a selected node with hotkey', async ({ - comfyPage - }) => { - const checkpointNode = comfyPage.page.locator('[data-node-id]').filter({ - hasText: 'Load Checkpoint' - }) - await checkpointNode.getByText('Load Checkpoint').click() - await comfyPage.page.keyboard.press(BYPASS_HOTKEY) - await expect(checkpointNode).toHaveClass(BYPASS_CLASS) - - await comfyPage.page.keyboard.press(BYPASS_HOTKEY) - await expect(checkpointNode).not.toHaveClass(BYPASS_CLASS) - }) - - test('should allow toggling bypass on multiple selected nodes with hotkey', async ({ - comfyPage - }) => { - const checkpointNode = comfyPage.page.locator('[data-node-id]').filter({ - hasText: 'Load Checkpoint' - }) - const ksamplerNode = comfyPage.page.locator('[data-node-id]').filter({ - hasText: 'KSampler' - }) - - await checkpointNode.getByText('Load Checkpoint').click() - await ksamplerNode.getByText('KSampler').click({ modifiers: ['Control'] }) - await comfyPage.page.keyboard.press(BYPASS_HOTKEY) - await expect(checkpointNode).toHaveClass(BYPASS_CLASS) - await expect(ksamplerNode).toHaveClass(BYPASS_CLASS) - - await comfyPage.page.keyboard.press(BYPASS_HOTKEY) - await expect(checkpointNode).not.toHaveClass(BYPASS_CLASS) - await expect(ksamplerNode).not.toHaveClass(BYPASS_CLASS) - }) -}) diff --git a/build/plugins/comfyAPIPlugin.ts b/build/plugins/comfyAPIPlugin.ts index 5b7f4bec4..3f795a219 100644 --- a/build/plugins/comfyAPIPlugin.ts +++ b/build/plugins/comfyAPIPlugin.ts @@ -1,5 +1,5 @@ import path from 'path' -import type { Plugin } from 'vite' +import { Plugin } from 'vite' interface ShimResult { code: string diff --git a/build/plugins/generateImportMapPlugin.ts b/build/plugins/generateImportMapPlugin.ts index bbbf14c2c..80ccb6c9f 100644 --- a/build/plugins/generateImportMapPlugin.ts +++ b/build/plugins/generateImportMapPlugin.ts @@ -1,7 +1,7 @@ import glob from 'fast-glob' import fs from 'fs-extra' import { dirname, join } from 'node:path' -import { type HtmlTagDescriptor, type Plugin, normalizePath } from 'vite' +import { HtmlTagDescriptor, Plugin, normalizePath } from 'vite' interface ImportMapSource { name: string diff --git a/eslint.config.ts b/eslint.config.js similarity index 70% rename from eslint.config.ts rename to eslint.config.js index 04f4b2578..cddba3bbd 100644 --- a/eslint.config.ts +++ b/eslint.config.js @@ -5,14 +5,13 @@ import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended' import storybook from 'eslint-plugin-storybook' import unusedImports from 'eslint-plugin-unused-imports' import pluginVue from 'eslint-plugin-vue' -import { defineConfig } from 'eslint/config' import globals from 'globals' import tseslint from 'typescript-eslint' -import vueParser from 'vue-eslint-parser' -const extraFileExtensions = ['.vue'] - -export default defineConfig([ +export default [ + { + files: ['src/**/*.{js,mjs,cjs,ts,vue}'] + }, { ignores: [ 'src/scripts/*', @@ -25,49 +24,35 @@ export default defineConfig([ ] }, { - files: ['./**/*.{ts,mts}'], languageOptions: { globals: { ...globals.browser, __COMFYUI_FRONTEND_VERSION__: 'readonly' }, + parser: tseslint.parser, parserOptions: { - parser: tseslint.parser, - projectService: true, - tsConfigRootDir: import.meta.dirname, + project: ['./tsconfig.json', './tsconfig.eslint.json'], ecmaVersion: 2020, sourceType: 'module', - extraFileExtensions - } - } - }, - { - files: ['./**/*.vue'], - languageOptions: { - globals: { - ...globals.browser, - __COMFYUI_FRONTEND_VERSION__: 'readonly' - }, - parser: vueParser, - parserOptions: { - parser: tseslint.parser, - projectService: true, - tsConfigRootDir: import.meta.dirname, - ecmaVersion: 2020, - sourceType: 'module', - extraFileExtensions + extraFileExtensions: ['.vue'] } } }, pluginJs.configs.recommended, - tseslint.configs.recommended, - pluginVue.configs['flat/recommended'], + ...tseslint.configs.recommended, + ...pluginVue.configs['flat/recommended'], eslintPluginPrettierRecommended, - storybook.configs['flat/recommended'], + { + files: ['src/**/*.vue'], + languageOptions: { + parserOptions: { + parser: tseslint.parser + } + } + }, { plugins: { 'unused-imports': unusedImports, - // @ts-expect-error Bad types in the plugin '@intlify/vue-i18n': pluginI18n }, rules: { @@ -75,29 +60,13 @@ export default defineConfig([ '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/prefer-as-const': 'off', - '@typescript-eslint/consistent-type-imports': 'error', - '@typescript-eslint/no-import-type-side-effects': 'error', - '@typescript-eslint/no-empty-object-type': [ - 'error', - { - allowInterfaces: 'always' - } - ], 'unused-imports/no-unused-imports': 'error', 'vue/no-v-html': 'off', // Enforce dark-theme: instead of dark: prefix 'vue/no-restricted-class': ['error', '/^dark:/'], 'vue/multi-word-component-names': 'off', // TODO: fix 'vue/no-template-shadow': 'off', // TODO: fix - /* Toggle on to do additional until we can clean up existing violations. - 'vue/no-unused-emit-declarations': 'error', - 'vue/no-unused-properties': 'error', - 'vue/no-unused-refs': 'error', - 'vue/no-use-v-else-with-v-for': 'error', - 'vue/no-useless-v-bind': 'error', - // */ 'vue/one-component-per-file': 'off', // TODO: fix - 'vue/require-default-prop': 'off', // TODO: fix -- this one is very worthwhile // Restrict deprecated PrimeVue components 'no-restricted-imports': [ 'error', @@ -167,13 +136,5 @@ export default defineConfig([ ] } }, - { - files: ['tests-ui/**/*'], - rules: { - '@typescript-eslint/consistent-type-imports': [ - 'error', - { disallowTypeAnnotations: false } - ] - } - } -]) + ...storybook.configs['flat/recommended'] +] diff --git a/index.html b/index.html index 8684af476..de7710c63 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,8 @@ - - + + diff --git a/knip.config.ts b/knip.config.ts index 0dcbf7d50..9df077d77 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -22,12 +22,10 @@ const config: KnipConfig = { ], ignore: [ // Auto generated manager types - 'src/workbench/extensions/manager/types/generatedManagerTypes.ts', + 'src/types/generatedManagerTypes.ts', 'src/types/comfyRegistryTypes.ts', // Used by a custom node (that should move off of this) - 'src/scripts/ui/components/splitButton.ts', - // Staged for for use with subgraph widget promotion - 'src/lib/litegraph/src/widgets/DisconnectedWidget.ts' + 'src/scripts/ui/components/splitButton.ts' ], compilers: { // https://github.com/webpro-nl/knip/issues/1008#issuecomment-3207756199 diff --git a/lint-staged.config.js b/lint-staged.config.js index 0f3808700..2d1a6f051 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -3,13 +3,13 @@ export default { './**/*.{ts,tsx,vue,mts}': (stagedFiles) => [ ...formatAndEslint(stagedFiles), - 'pnpm typecheck' + 'vue-tsc --noEmit' ] } function formatAndEslint(fileNames) { return [ - `pnpm exec eslint --cache --fix ${fileNames.join(' ')}`, - `pnpm exec prettier --cache --write ${fileNames.join(' ')}` + `eslint --fix ${fileNames.join(' ')}`, + `prettier --write ${fileNames.join(' ')}` ] } diff --git a/package.json b/package.json index 923f04b7e..e568820c0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@comfyorg/comfyui-frontend", "private": true, - "version": "1.28.0", + "version": "1.27.4", "type": "module", "repository": "https://github.com/Comfy-Org/ComfyUI_frontend", "homepage": "https://comfy.org", @@ -14,9 +14,9 @@ "build:types": "nx build --config vite.types.config.mts && node scripts/prepare-types.js", "zipdist": "node scripts/zipdist.js", "typecheck": "vue-tsc --noEmit", - "format": "prettier --write './**/*.{js,ts,tsx,vue,mts}' --cache --list-different", + "format": "prettier --write './**/*.{js,ts,tsx,vue,mts}' --cache", "format:check": "prettier --check './**/*.{js,ts,tsx,vue,mts}' --cache", - "format:no-cache": "prettier --write './**/*.{js,ts,tsx,vue,mts}' --list-different", + "format:no-cache": "prettier --write './**/*.{js,ts,tsx,vue,mts}'", "format:check:no-cache": "prettier --check './**/*.{js,ts,tsx,vue,mts}'", "test:browser": "npx nx e2e", "test:unit": "nx run test tests-ui/tests", @@ -27,8 +27,6 @@ "preview": "nx preview", "lint": "eslint src --cache", "lint:fix": "eslint src --cache --fix", - "lint:unstaged": "git diff --name-only HEAD | grep -E '\\.(js|ts|vue|mts)$' | xargs -r eslint --cache", - "lint:unstaged:fix": "git diff --name-only HEAD | grep -E '\\.(js|ts|vue|mts)$' | xargs -r eslint --cache --fix", "lint:no-cache": "eslint src", "lint:fix:no-cache": "eslint src --fix", "knip": "knip --cache", @@ -40,10 +38,10 @@ "build-storybook": "storybook build" }, "devDependencies": { - "@eslint/js": "^9.35.0", + "@eslint/js": "^9.8.0", "@iconify-json/lucide": "^1.2.66", "@iconify/tailwind": "^1.2.0", - "@intlify/eslint-plugin-vue-i18n": "^4.1.0", + "@intlify/eslint-plugin-vue-i18n": "^3.2.0", "@lobehub/i18n-cli": "^1.25.1", "@nx/eslint": "21.4.1", "@nx/playwright": "21.4.1", @@ -66,11 +64,11 @@ "@vitest/ui": "^3.0.0", "@vue/test-utils": "^2.4.6", "eslint": "^9.34.0", - "eslint-config-prettier": "^10.1.8", - "eslint-plugin-prettier": "^5.5.4", - "eslint-plugin-storybook": "^9.1.6", - "eslint-plugin-unused-imports": "^4.2.0", - "eslint-plugin-vue": "^10.4.0", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-prettier": "^5.2.6", + "eslint-plugin-storybook": "^9.1.1", + "eslint-plugin-unused-imports": "^4.1.4", + "eslint-plugin-vue": "^9.27.0", "fs-extra": "^11.2.0", "globals": "^15.9.0", "happy-dom": "^15.11.0", @@ -81,24 +79,22 @@ "lint-staged": "^15.2.7", "nx": "21.4.1", "prettier": "^3.3.2", - "storybook": "^9.1.6", + "storybook": "^9.1.1", "tailwindcss": "^4.1.12", "tailwindcss-primeui": "^0.6.1", "tsx": "^4.15.6", "tw-animate-css": "^1.3.8", "typescript": "^5.4.5", - "typescript-eslint": "^8.44.0", + "typescript-eslint": "^8.42.0", "unplugin-icons": "^0.22.0", "unplugin-vue-components": "^0.28.0", "uuid": "^11.1.0", "vite": "^5.4.19", - "vite-plugin-dts": "^4.5.4", + "vite-plugin-dts": "^4.3.0", "vite-plugin-html": "^3.2.2", "vite-plugin-vue-devtools": "^7.7.6", "vitest": "^3.2.4", - "vue-component-type-helpers": "^3.0.7", - "vue-eslint-parser": "^10.2.0", - "vue-tsc": "^3.0.7", + "vue-tsc": "^2.1.10", "zip-dir": "^2.0.0", "zod-to-json-schema": "^3.24.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ce1f4d34..acc01cc0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,10 +94,10 @@ importers: version: 3.2.5 dotenv: specifier: ^16.4.5 - version: 16.6.1 + version: 16.4.5 es-toolkit: specifier: ^1.39.9 - version: 1.39.10 + version: 1.39.9 extendable-media-recorder: specifier: ^9.2.27 version: 9.2.27 @@ -172,8 +172,8 @@ importers: version: 3.3.0(zod@3.24.1) devDependencies: '@eslint/js': - specifier: ^9.35.0 - version: 9.35.0 + specifier: ^9.8.0 + version: 9.12.0 '@iconify-json/lucide': specifier: ^1.2.66 version: 1.2.66 @@ -181,8 +181,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 '@intlify/eslint-plugin-vue-i18n': - specifier: ^4.1.0 - version: 4.1.0(eslint@9.35.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.4.2)))(yaml-eslint-parser@1.3.0) + specifier: ^3.2.0 + version: 3.2.0(eslint@9.35.0(jiti@2.4.2)) '@lobehub/i18n-cli': specifier: ^1.25.1 version: 1.25.1(@types/react@19.1.9)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(ws@8.18.3)(zod@3.24.1) @@ -194,7 +194,7 @@ importers: version: 21.4.1(@babel/traverse@7.28.3)(@playwright/test@1.52.0)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(typescript@5.9.2) '@nx/storybook': specifier: 21.4.1 - version: 21.4.1(@babel/traverse@7.28.3)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2) + version: 21.4.1(@babel/traverse@7.28.3)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2) '@nx/vite': specifier: 21.4.1 version: 21.4.1(@babel/traverse@7.28.3)(nx@21.4.1)(typescript@5.9.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vitest@3.2.4) @@ -206,13 +206,13 @@ importers: version: 1.52.0 '@storybook/addon-docs': specifier: ^9.1.1 - version: 9.1.1(@types/react@19.1.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) + version: 9.1.1(@types/react@19.1.9)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) '@storybook/vue3': specifier: ^9.1.1 - version: 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2)) + version: 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2)) '@storybook/vue3-vite': specifier: ^9.1.1 - version: 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vue@3.5.13(typescript@5.9.2)) + version: 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vue@3.5.13(typescript@5.9.2)) '@tailwindcss/vite': specifier: ^4.1.12 version: 4.1.12(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) @@ -250,20 +250,20 @@ importers: specifier: ^9.34.0 version: 9.35.0(jiti@2.4.2) eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8(eslint@9.35.0(jiti@2.4.2)) + specifier: ^10.1.2 + version: 10.1.2(eslint@9.35.0(jiti@2.4.2)) eslint-plugin-prettier: - specifier: ^5.5.4 - version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.4.2)))(eslint@9.35.0(jiti@2.4.2))(prettier@3.3.2) + specifier: ^5.2.6 + version: 5.2.6(eslint-config-prettier@10.1.2(eslint@9.35.0(jiti@2.4.2)))(eslint@9.35.0(jiti@2.4.2))(prettier@3.3.2) eslint-plugin-storybook: - specifier: ^9.1.6 - version: 9.1.6(eslint@9.35.0(jiti@2.4.2))(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2) + specifier: ^9.1.1 + version: 9.1.1(eslint@9.35.0(jiti@2.4.2))(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2) eslint-plugin-unused-imports: - specifier: ^4.2.0 - version: 4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2)) + specifier: ^4.1.4 + version: 4.1.4(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2)) eslint-plugin-vue: - specifier: ^10.4.0 - version: 10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.4.2))) + specifier: ^9.27.0 + version: 9.27.0(eslint@9.35.0(jiti@2.4.2)) fs-extra: specifier: ^11.2.0 version: 11.2.0 @@ -295,8 +295,8 @@ importers: specifier: ^3.3.2 version: 3.3.2 storybook: - specifier: ^9.1.6 - version: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + specifier: ^9.1.1 + version: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) tailwindcss: specifier: ^4.1.12 version: 4.1.12 @@ -313,14 +313,14 @@ importers: specifier: ^5.4.5 version: 5.9.2 typescript-eslint: - specifier: ^8.44.0 - version: 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + specifier: ^8.42.0 + version: 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) unplugin-icons: specifier: ^0.22.0 version: 0.22.0(@vue/compiler-sfc@3.5.13) unplugin-vue-components: specifier: ^0.28.0 - version: 0.28.0(@babel/parser@7.28.4)(rollup@4.22.4)(vue@3.5.13(typescript@5.9.2)) + version: 0.28.0(@babel/parser@7.28.3)(rollup@4.22.4)(vue@3.5.13(typescript@5.9.2)) uuid: specifier: ^11.1.0 version: 11.1.0 @@ -328,8 +328,8 @@ importers: specifier: ^5.4.19 version: 5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2) vite-plugin-dts: - specifier: ^4.5.4 - version: 4.5.4(@types/node@20.14.10)(rollup@4.22.4)(typescript@5.9.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + specifier: ^4.3.0 + version: 4.3.0(@types/node@20.14.10)(rollup@4.22.4)(typescript@5.9.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) vite-plugin-html: specifier: ^3.2.2 version: 3.2.2(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) @@ -339,15 +339,9 @@ importers: vitest: specifier: ^3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@20.14.10)(@vitest/ui@3.2.4)(happy-dom@15.11.0)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.39.2) - vue-component-type-helpers: - specifier: ^3.0.7 - version: 3.0.7 - vue-eslint-parser: - specifier: ^10.2.0 - version: 10.2.0(eslint@9.35.0(jiti@2.4.2)) vue-tsc: - specifier: ^3.0.7 - version: 3.0.7(typescript@5.9.2) + specifier: ^2.1.10 + version: 2.1.10(typescript@5.9.2) zip-dir: specifier: ^2.0.0 version: 2.0.0 @@ -550,11 +544,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -973,6 +962,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.4': resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} @@ -989,10 +982,6 @@ packages: resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -1325,6 +1314,12 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.8.0': resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1347,10 +1342,18 @@ packages: resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.12.0': + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.35.0': resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1631,35 +1634,20 @@ packages: '@internationalized/number@3.6.5': resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==} - '@intlify/core-base@11.1.12': - resolution: {integrity: sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==} - engines: {node: '>= 16'} - '@intlify/core-base@9.14.3': resolution: {integrity: sha512-nbJ7pKTlXFnaXPblyfiH6awAx1C0PWNNuqXAR74yRwgi5A/Re/8/5fErLY0pv4R8+EHj3ZaThMHdnuC/5OBa6g==} engines: {node: '>= 16'} - '@intlify/eslint-plugin-vue-i18n@4.1.0': - resolution: {integrity: sha512-MPAr3LGTrkB5CZBHN5eUf4kASUEiSaDM371jADmxNbTL1Ew7IAyCIBGm3+/1sWcvsfVHe4wz8RFoo6FpeQZ4Nw==} + '@intlify/eslint-plugin-vue-i18n@3.2.0': + resolution: {integrity: sha512-TOIrD4tJE48WMyVIB8bNeQJJPYo1Prpqnm9Xpn1UZmcqlELhm8hmP8QyJnkgesfbG7hyiX/kvo63W7ClEQmhpg==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.0.0 || ^9.0.0-0 - jsonc-eslint-parser: ^2.3.0 - vue-eslint-parser: ^10.0.0 - yaml-eslint-parser: ^1.2.2 - - '@intlify/message-compiler@11.1.12': - resolution: {integrity: sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==} - engines: {node: '>= 16'} '@intlify/message-compiler@9.14.3': resolution: {integrity: sha512-ANwC226BQdd+MpJ36rOYkChSESfPwu3Ss2Faw0RHTOknYLoHTX6V6e/JjIKVDMbzs0/H/df/rO6yU0SPiWHqNg==} engines: {node: '>= 16'} - '@intlify/shared@11.1.12': - resolution: {integrity: sha512-Om86EjuQtA69hdNj3GQec9ZC0L0vPSAnXzB3gP/gyJ7+mA7t06d9aOAiqMZ+xEOsumGP4eEBlfl8zF2LOTzf2A==} - engines: {node: '>= 16'} - '@intlify/shared@9.14.3': resolution: {integrity: sha512-hJXz9LA5VG7qNE00t50bdzDv8Z4q9fpcL81wj4y4duKavrv0KM8YNLTwXNEFINHjTsfrG9TXvPuEjVaAvZ7yWg==} engines: {node: '>= 16'} @@ -1709,6 +1697,9 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -1733,11 +1724,11 @@ packages: '@types/react': '>=16' react: '>=16' - '@microsoft/api-extractor-model@7.30.7': - resolution: {integrity: sha512-TBbmSI2/BHpfR9YhQA7nH0nqVmGgJ0xH0Ex4D99/qBDAUpnhA2oikGmdXanbw9AWWY/ExBYIpkmY8dBHdla3YQ==} + '@microsoft/api-extractor-model@7.30.0': + resolution: {integrity: sha512-26/LJZBrsWDKAkOWRiQbdVgcfd1F3nyJnAiJzsAgpouPk7LtOIj7PK9aJtBaw/pUXrkotEg27RrT+Jm/q0bbug==} - '@microsoft/api-extractor@7.52.13': - resolution: {integrity: sha512-K6/bBt8zZfn9yc06gNvA+/NlBGJC/iJlObpdufXHEJtqcD4Dln4ITCLZpwP3DNZ5NyBFeTkKdv596go3V72qlA==} + '@microsoft/api-extractor@7.48.0': + resolution: {integrity: sha512-FMFgPjoilMUWeZXqYRlJ3gCVRhB7WU/HN88n8OLqEsmsG4zBdX/KQdtJfhq95LQTQ++zfu0Em1LLb73NqRCLYQ==} hasBin: true '@microsoft/tsdoc-config@0.17.1': @@ -1978,8 +1969,12 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + '@pkgr/core@0.1.2': + resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@pkgr/core@0.2.2': + resolution: {integrity: sha512-25L86MyPvnlQoX2MTIV2OiUcb6vJ6aRbFa9pbwByn95INKD5mFH2smgjDhq+fwJoqAgvgbdJLj6Tz7V9X5CFAQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@playwright/test@1.52.0': @@ -2079,15 +2074,6 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/rollup-android-arm-eabi@4.22.4': resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} cpu: [arm] @@ -2168,8 +2154,8 @@ packages: cpu: [x64] os: [win32] - '@rushstack/node-core-library@5.14.0': - resolution: {integrity: sha512-eRong84/rwQUlATGFW3TMTYVyqL1vfW9Lf10PH+mVGfIb9HzU3h5AASNIw+axnBLjnD0n3rT5uQBwu9fvzATrg==} + '@rushstack/node-core-library@5.10.0': + resolution: {integrity: sha512-2pPLCuS/3x7DCd7liZkqOewGM0OzLyCacdvOe8j6Yrx9LkETGnxul1t7603bIaB8nUAooORcct9fFDOQMbWAgw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -2179,16 +2165,16 @@ packages: '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.16.0': - resolution: {integrity: sha512-WEvNuKkoR1PXorr9SxO0dqFdSp1BA+xzDrIm/Bwlc5YHg2FFg6oS+uCTYjerOhFuqCW+A3vKBm6EmKWSHfgx/A==} + '@rushstack/terminal@0.14.3': + resolution: {integrity: sha512-csXbZsAdab/v8DbU1sz7WC2aNaKArcdS/FPmXMOXEj/JBBZMvDK0+1b4Qao0kkG0ciB1Qe86/Mb68GjH6/TnMw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/ts-command-line@5.0.3': - resolution: {integrity: sha512-bgPhQEqLVv/2hwKLYv/XvsTWNZ9B/+X1zJ7WgQE9rO5oiLzrOZvkIW4pk13yOQBhHyjcND5qMOa6p83t+Z66iQ==} + '@rushstack/ts-command-line@4.23.1': + resolution: {integrity: sha512-40jTmYoiu/xlIpkkRsVfENtBq4CW3R4azbL0Vmda+fMwHWqss6wwf/Cy/UJmMqIzpfYc2OTnjYP1ZLD3CmyeCA==} '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -2664,63 +2650,100 @@ packages: '@types/webxr@0.5.20': resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} - '@typescript-eslint/eslint-plugin@8.44.0': - resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} + '@typescript-eslint/eslint-plugin@8.42.0': + resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.44.0 + '@typescript-eslint/parser': ^8.42.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.44.0': - resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} + '@typescript-eslint/parser@8.42.0': + resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.44.0': - resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} + '@typescript-eslint/project-service@8.39.0': + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.44.0': - resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.44.0': - resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} + '@typescript-eslint/project-service@8.42.0': + resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.44.0': - resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} + '@typescript-eslint/scope-manager@8.39.0': + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.42.0': + resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.39.0': + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/tsconfig-utils@8.42.0': + resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.42.0': + resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.44.0': - resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} + '@typescript-eslint/types@8.39.0': + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.44.0': - resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} + '@typescript-eslint/types@8.42.0': + resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.39.0': + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.44.0': - resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} + '@typescript-eslint/typescript-estree@8.42.0': + resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.39.0': + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.44.0': - resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} + '@typescript-eslint/utils@8.42.0': + resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.39.0': + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.42.0': + resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-vue@5.1.4': @@ -2776,21 +2799,12 @@ packages: '@volar/language-core@2.4.15': resolution: {integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==} - '@volar/language-core@2.4.23': - resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} - '@volar/source-map@2.4.15': resolution: {integrity: sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==} - '@volar/source-map@2.4.23': - resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} - '@volar/typescript@2.4.15': resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} - '@volar/typescript@2.4.23': - resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} - '@vue/babel-helper-vue-transform-on@1.4.0': resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} @@ -2810,15 +2824,9 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-core@3.5.21': - resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==} - '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-dom@3.5.21': - resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==} - '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} @@ -2842,8 +2850,16 @@ packages: '@vue/devtools-shared@7.7.6': resolution: {integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==} - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} + '@vue/language-core@2.1.10': + resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2858,14 +2874,6 @@ packages: typescript: optional: true - '@vue/language-core@3.0.7': - resolution: {integrity: sha512-0sqqyqJ0Gn33JH3TdIsZLCZZ8Gr4kwlg8iYOnOrDDkJKSjFurlQY/bEFQx5zs7SX2C/bjMkmPYq/NiyY1fTOkw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/reactivity@3.5.13': resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} @@ -2883,9 +2891,6 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vue/shared@3.5.21': - resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==} - '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} @@ -2955,6 +2960,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -3004,15 +3014,12 @@ packages: resolution: {integrity: sha512-hexLq2lSO1K5SW9j21Ubc+q9Ptx7dyRTY7se19U8lhIlVMLCNXWCyQ6C22p9ez8ccX0v7QVmwkl2l1CnuGoO2Q==} engines: {node: '>= 14.0.0'} - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} + alien-signals@0.2.2: + resolution: {integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==} alien-signals@1.0.13: resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} - alien-signals@2.0.7: - resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==} - ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -3363,6 +3370,9 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3485,15 +3495,6 @@ packages: supports-color: optional: true - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -3707,6 +3708,9 @@ packages: es-toolkit@1.39.10: resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==} + es-toolkit@1.39.9: + resolution: {integrity: sha512-9OtbkZmTA2Qc9groyA1PUNeb6knVTkvB2RSdr/LcJXDL8IdEakaxwXLHXa7VX/Wj0GmdMJPR3WhnPGhiP3E+qg==} + esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: @@ -3752,14 +3756,14 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + eslint-config-prettier@10.1.2: + resolution: {integrity: sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-plugin-prettier@5.5.4: - resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + eslint-plugin-prettier@5.2.6: + resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -3772,15 +3776,15 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-storybook@9.1.6: - resolution: {integrity: sha512-4NLf8lOT7Nl+m9aipVHJczyt/Dp6BzHzyNq4nhaEUjoZFGKMhPa52vSbuLyQYX7IrcrYPlM37X8dFGo/EIE9JA==} + eslint-plugin-storybook@9.1.1: + resolution: {integrity: sha512-g4/i9yW6cl4TCEMzYyALNvO3d/jB6TDvSs/Pmye7dHDrra2B7dgZJGzmEWILD62brVrLVHNoXgy2dNPtx80kmw==} engines: {node: '>=20.0.0'} peerDependencies: eslint: '>=8' - storybook: ^9.1.6 + storybook: ^9.1.1 - eslint-plugin-unused-imports@4.2.0: - resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==} + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 eslint: ^9.0.0 || ^8.0.0 @@ -3788,16 +3792,15 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@10.4.0: - resolution: {integrity: sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-plugin-vue@9.27.0: + resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - vue-eslint-parser: ^10.0.0 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} @@ -3824,6 +3827,10 @@ packages: esm-resolve@1.0.11: resolution: {integrity: sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3997,6 +4004,10 @@ packages: debug: optional: true + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -4035,9 +4046,9 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - fs-extra@11.3.2: - resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} - engines: {node: '>=14.14'} + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} @@ -4108,6 +4119,10 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4116,10 +4131,6 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} - engines: {node: '>=18'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -4230,6 +4241,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@6.0.2: + resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} + engines: {node: '>= 4'} + ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -4237,6 +4252,10 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -4551,12 +4570,12 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - jsonify@0.0.1: resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} @@ -4752,6 +4771,10 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} + engines: {node: 14 || >=16.14} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -4774,12 +4797,12 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.18: resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} - magic-string@0.30.19: - resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -4983,6 +5006,9 @@ packages: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5024,9 +5050,6 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -5231,6 +5254,9 @@ packages: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -5631,6 +5657,10 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -5776,8 +5806,8 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - storybook@9.1.6: - resolution: {integrity: sha512-iIcMaDKkjR5nN+JYBy9hhoxZhjX4TXhyJgUBed+toJOlfrl+QvxpBjImAi7qKyLR3hng3uoigEP0P8+vYtXpOg==} + storybook@9.1.1: + resolution: {integrity: sha512-q6GaGZdVZh6rjOdGnc+4hGTu8ECyhyjQDw4EZNxKtQjDO8kqtuxbFm8l/IP2l+zLVJAatGWKkaX9Qcd7QZxz+Q==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -5880,12 +5910,12 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.10.4: - resolution: {integrity: sha512-2SG1TnJGjMkD4+gblONMGYSrwAzYi+ymOitD+Jb/iMYm57nH20PlkVeMQRah3yDMKEa0QQYUF/QPWpdW7C6zNg==} + synckit@0.11.3: + resolution: {integrity: sha512-szhWDqNNI9etJUvbZ1/cx1StnZx8yMmFxme48SwR4dty4ioSY50KEZlpv0qAfgc1fpRzuh9hBXEzoCpJ779dLg==} engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + synckit@0.9.3: + resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} engines: {node: ^14.18.0 || >=16.0.0} tailwind-merge@3.3.1: @@ -6028,6 +6058,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -6036,15 +6070,15 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - typescript-eslint@8.44.0: - resolution: {integrity: sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==} + typescript-eslint@8.42.0: + resolution: {integrity: sha512-ozR/rQn+aQXQxh1YgbCzQWDFrsi9mcg+1PM3l/z5o1+20P7suOIaNg515bpr/OYt6FObz/NHcBstydDLHWeEKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true @@ -6064,9 +6098,6 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - uint8array-extras@1.5.0: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} @@ -6112,6 +6143,10 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6208,8 +6243,9 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-plugin-dts@4.5.4: - resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} + vite-plugin-dts@4.3.0: + resolution: {integrity: sha512-LkBJh9IbLwL6/rxh0C1/bOurDrIEmRE7joC+jFdOEEciAFPbpEKOLSAr5nNh5R7CJ45cMbksTrFfy52szzC5eA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' vite: '*' @@ -6339,11 +6375,11 @@ packages: peerDependencies: vue: '>=2' - vue-eslint-parser@10.2.0: - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: '>=6.0.0' vue-i18n@9.14.3: resolution: {integrity: sha512-C+E0KE8ihKjdYCQx8oUkXX+8tBItrYNMnGJuzEPevBARQFUN2tKez6ZVOvBrWH0+KT5wEk3vOWjNk7ygb2u9ig==} @@ -6361,8 +6397,8 @@ packages: peerDependencies: vue: ^3.2.0 - vue-tsc@3.0.7: - resolution: {integrity: sha512-BSMmW8GGEgHykrv7mRk6zfTdK+tw4MBZY/x6fFa7IkdXK3s/8hQRacPjG9/8YKFDIWGhBocwi6PlkQQ/93OgIQ==} + vue-tsc@2.1.10: + resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -6492,6 +6528,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -6729,7 +6777,7 @@ snapshots: '@atlaskit/pragmatic-drag-and-drop@1.3.1': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 bind-event-listener: 3.0.0 raf-schd: 4.0.3 @@ -6891,10 +6939,6 @@ snapshots: dependencies: '@babel/types': 7.28.2 - '@babel/parser@7.28.4': - dependencies: - '@babel/types': 7.28.4 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -7429,6 +7473,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/runtime@7.27.6': {} + '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': @@ -7454,11 +7500,6 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.4': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@bcoe/v8-coverage@1.0.2': {} '@comfyorg/comfyui-electron-types@0.4.73-0': {} @@ -7640,6 +7681,11 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true + '@eslint-community/eslint-utils@4.7.0(eslint@9.35.0(jiti@2.4.2))': + dependencies: + eslint: 9.35.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.8.0(eslint@9.35.0(jiti@2.4.2))': dependencies: eslint: 9.35.0(jiti@2.4.2) @@ -7661,6 +7707,20 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 @@ -7675,6 +7735,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@9.12.0': {} + '@eslint/js@9.35.0': {} '@eslint/object-schema@2.1.6': {} @@ -8081,53 +8143,41 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 - '@intlify/core-base@11.1.12': - dependencies: - '@intlify/message-compiler': 11.1.12 - '@intlify/shared': 11.1.12 - '@intlify/core-base@9.14.3': dependencies: '@intlify/message-compiler': 9.14.3 '@intlify/shared': 9.14.3 - '@intlify/eslint-plugin-vue-i18n@4.1.0(eslint@9.35.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.4.2)))(yaml-eslint-parser@1.3.0)': + '@intlify/eslint-plugin-vue-i18n@3.2.0(eslint@9.35.0(jiti@2.4.2))': dependencies: - '@eslint/eslintrc': 3.3.1 - '@intlify/core-base': 11.1.12 - '@intlify/message-compiler': 11.1.12 + '@eslint/eslintrc': 3.1.0 + '@intlify/core-base': 9.14.3 + '@intlify/message-compiler': 9.14.3 debug: 4.4.1 eslint: 9.35.0(jiti@2.4.2) eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.4.2)) glob: 10.4.5 - globals: 16.4.0 - ignore: 7.0.5 - import-fresh: 3.3.1 + globals: 15.15.0 + ignore: 6.0.2 + import-fresh: 3.3.0 is-language-code: 3.1.0 js-yaml: 4.1.0 json5: 2.2.3 jsonc-eslint-parser: 2.4.0 lodash: 4.17.21 - parse5: 7.3.0 + parse5: 7.1.2 semver: 7.7.2 - synckit: 0.10.4 - vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.4.2)) + synckit: 0.9.3 + vue-eslint-parser: 9.4.3(eslint@9.35.0(jiti@2.4.2)) yaml-eslint-parser: 1.3.0 transitivePeerDependencies: - supports-color - '@intlify/message-compiler@11.1.12': - dependencies: - '@intlify/shared': 11.1.12 - source-map-js: 1.2.1 - '@intlify/message-compiler@9.14.3': dependencies: '@intlify/shared': 9.14.3 source-map-js: 1.2.1 - '@intlify/shared@11.1.12': {} - '@intlify/shared@9.14.3': {} '@isaacs/balanced-match@4.0.1': {} @@ -8176,6 +8226,8 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.30': @@ -8188,7 +8240,7 @@ snapshots: '@lobehub/cli-ui@1.13.0(@types/react@19.1.9)': dependencies: arr-rotate: 1.0.0 - chalk: 5.6.0 + chalk: 5.3.0 cli-spinners: 3.2.0 consola: 3.4.2 deepmerge: 4.3.1 @@ -8253,29 +8305,29 @@ snapshots: '@types/react': 19.1.9 react: 19.1.1 - '@microsoft/api-extractor-model@7.30.7(@types/node@20.14.10)': + '@microsoft/api-extractor-model@7.30.0(@types/node@20.14.10)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@20.14.10) + '@rushstack/node-core-library': 5.10.0(@types/node@20.14.10) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.13(@types/node@20.14.10)': + '@microsoft/api-extractor@7.48.0(@types/node@20.14.10)': dependencies: - '@microsoft/api-extractor-model': 7.30.7(@types/node@20.14.10) + '@microsoft/api-extractor-model': 7.30.0(@types/node@20.14.10) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@20.14.10) + '@rushstack/node-core-library': 5.10.0(@types/node@20.14.10) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.16.0(@types/node@20.14.10) - '@rushstack/ts-command-line': 5.0.3(@types/node@20.14.10) + '@rushstack/terminal': 0.14.3(@types/node@20.14.10) + '@rushstack/ts-command-line': 4.23.1(@types/node@20.14.10) lodash: 4.17.21 - minimatch: 10.0.3 - resolve: 1.22.10 + minimatch: 3.0.8 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 - typescript: 5.8.2 + typescript: 5.4.2 transitivePeerDependencies: - '@types/node' @@ -8374,7 +8426,7 @@ snapshots: '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.27.1) '@babel/preset-env': 7.28.3(@babel/core@7.27.1) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 '@nx/devkit': 21.4.1(nx@21.4.1) '@nx/workspace': 21.4.1 '@zkochan/js-yaml': 0.0.7 @@ -8457,7 +8509,7 @@ snapshots: - typescript - verdaccio - '@nx/storybook@21.4.1(@babel/traverse@7.28.3)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2)': + '@nx/storybook@21.4.1(@babel/traverse@7.28.3)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2)': dependencies: '@nx/cypress': 21.4.1(@babel/traverse@7.28.3)(@zkochan/js-yaml@0.0.7)(eslint@9.35.0(jiti@2.4.2))(nx@21.4.1)(typescript@5.9.2) '@nx/devkit': 21.4.1(nx@21.4.1) @@ -8465,7 +8517,7 @@ snapshots: '@nx/js': 21.4.1(@babel/traverse@7.28.3)(nx@21.4.1) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) semver: 7.7.2 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -8596,7 +8648,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.9': {} + '@pkgr/core@0.1.2': {} + + '@pkgr/core@0.2.2': {} '@playwright/test@1.52.0': dependencies: @@ -8689,14 +8743,6 @@ snapshots: optionalDependencies: rollup: 4.22.4 - '@rollup/pluginutils@5.3.0(rollup@4.22.4)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.22.4 - '@rollup/rollup-android-arm-eabi@4.22.4': optional: true @@ -8745,12 +8791,12 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true - '@rushstack/node-core-library@5.14.0(@types/node@20.14.10)': + '@rushstack/node-core-library@5.10.0(@types/node@20.14.10)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.2 + fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.10 @@ -8763,16 +8809,16 @@ snapshots: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.16.0(@types/node@20.14.10)': + '@rushstack/terminal@0.14.3(@types/node@20.14.10)': dependencies: - '@rushstack/node-core-library': 5.14.0(@types/node@20.14.10) + '@rushstack/node-core-library': 5.10.0(@types/node@20.14.10) supports-color: 8.1.1 optionalDependencies: '@types/node': 20.14.10 - '@rushstack/ts-command-line@5.0.3(@types/node@20.14.10)': + '@rushstack/ts-command-line@4.23.1(@types/node@20.14.10)': dependencies: - '@rushstack/terminal': 0.16.0(@types/node@20.14.10) + '@rushstack/terminal': 0.14.3(@types/node@20.14.10) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -8821,29 +8867,29 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@storybook/addon-docs@9.1.1(@types/react@19.1.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': + '@storybook/addon-docs@9.1.1(@types/react@19.1.9)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': dependencies: '@mdx-js/react': 3.1.0(@types/react@19.1.9)(react@19.1.1) - '@storybook/csf-plugin': 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) + '@storybook/csf-plugin': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) '@storybook/icons': 1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@storybook/react-dom-shim': 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) + '@storybook/react-dom-shim': 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/builder-vite@9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))': + '@storybook/builder-vite@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))': dependencies: - '@storybook/csf-plugin': 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + '@storybook/csf-plugin': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) ts-dedent: 2.2.0 vite: 5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2) - '@storybook/csf-plugin@9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': + '@storybook/csf-plugin@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': dependencies: - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -8853,19 +8899,19 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@storybook/react-dom-shim@9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': + '@storybook/react-dom-shim@9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))': dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) - '@storybook/vue3-vite@9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vue@3.5.13(typescript@5.9.2))': + '@storybook/vue3-vite@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vue@3.5.13(typescript@5.9.2))': dependencies: - '@storybook/builder-vite': 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) - '@storybook/vue3': 9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2)) + '@storybook/builder-vite': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + '@storybook/vue3': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2)) find-package-json: 1.2.0 magic-string: 0.30.18 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) typescript: 5.9.2 vite: 5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2) vue-component-meta: 2.2.12(typescript@5.9.2) @@ -8873,10 +8919,10 @@ snapshots: transitivePeerDependencies: - vue - '@storybook/vue3@9.1.1(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2))': + '@storybook/vue3@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(vue@3.5.13(typescript@5.9.2))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) type-fest: 2.19.0 vue: 3.5.13(typescript@5.9.2) vue-component-type-helpers: 3.0.7 @@ -9195,7 +9241,7 @@ snapshots: dependencies: '@types/node': 20.14.10 '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 + parse5: 7.1.2 '@types/json-schema@7.0.15': {} @@ -9274,14 +9320,14 @@ snapshots: '@types/webxr@0.5.20': {} - '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/parser': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/type-utils': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.42.0 eslint: 9.35.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.5 @@ -9291,41 +9337,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + '@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.42.0 debug: 4.4.1 eslint: 9.35.0(jiti@2.4.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) - '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 debug: 4.4.1 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.44.0': + '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) + '@typescript-eslint/types': 8.42.0 + debug: 4.4.1 + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': + '@typescript-eslint/scope-manager@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + + '@typescript-eslint/scope-manager@8.42.0': + dependencies: + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/visitor-keys': 8.42.0 + + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + typescript: 5.9.2 + + '@typescript-eslint/type-utils@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) debug: 4.4.1 eslint: 9.35.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.9.2) @@ -9333,14 +9397,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.44.0': {} + '@typescript-eslint/types@8.39.0': {} - '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': + '@typescript-eslint/types@8.42.0': {} + + '@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -9351,20 +9417,52 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/visitor-keys': 8.42.0 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.39.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) eslint: 9.35.0(jiti@2.4.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.44.0': + '@typescript-eslint/utils@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.44.0 + '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + eslint: 9.35.0(jiti@2.4.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + eslint-visitor-keys: 4.2.1 + + '@typescript-eslint/visitor-keys@8.42.0': + dependencies: + '@typescript-eslint/types': 8.42.0 eslint-visitor-keys: 4.2.1 '@vitejs/plugin-vue@5.1.4(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2))(vue@3.5.13(typescript@5.9.2))': @@ -9448,26 +9546,14 @@ snapshots: dependencies: '@volar/source-map': 2.4.15 - '@volar/language-core@2.4.23': - dependencies: - '@volar/source-map': 2.4.23 - '@volar/source-map@2.4.15': {} - '@volar/source-map@2.4.23': {} - '@volar/typescript@2.4.15': dependencies: '@volar/language-core': 2.4.15 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@volar/typescript@2.4.23': - dependencies: - '@volar/language-core': 2.4.23 - path-browserify: 1.0.1 - vscode-uri: 3.0.8 - '@vue/babel-helper-vue-transform-on@1.4.0': {} '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.27.1)': @@ -9505,24 +9591,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.21': - dependencies: - '@babel/parser': 7.28.4 - '@vue/shared': 3.5.21 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-dom@3.5.21': - dependencies: - '@vue/compiler-core': 3.5.21 - '@vue/shared': 3.5.21 - '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.28.3 @@ -9573,13 +9646,26 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@2.2.0(typescript@5.9.2)': + '@vue/language-core@2.1.10(typescript@5.9.2)': dependencies: - '@volar/language-core': 2.4.23 - '@vue/compiler-dom': 3.5.21 + '@volar/language-core': 2.4.15 + '@vue/compiler-dom': 3.5.13 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.21 - alien-signals: 0.4.14 + '@vue/shared': 3.5.13 + alien-signals: 0.2.2 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.9.2 + + '@vue/language-core@2.1.6(typescript@5.9.2)': + dependencies: + '@volar/language-core': 2.4.15 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 @@ -9599,19 +9685,6 @@ snapshots: optionalDependencies: typescript: 5.9.2 - '@vue/language-core@3.0.7(typescript@5.9.2)': - dependencies: - '@volar/language-core': 2.4.23 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 2.0.7 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - picomatch: 4.0.3 - optionalDependencies: - typescript: 5.9.2 - '@vue/reactivity@3.5.13': dependencies: '@vue/shared': 3.5.13 @@ -9636,8 +9709,6 @@ snapshots: '@vue/shared@3.5.13': {} - '@vue/shared@3.5.21': {} - '@vue/test-utils@2.4.6': dependencies: js-beautify: 1.15.1 @@ -9710,12 +9781,18 @@ snapshots: dependencies: event-target-shim: 5.0.1 + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 acorn@7.4.1: {} + acorn@8.14.1: {} + acorn@8.15.0: {} address@1.2.2: {} @@ -9782,12 +9859,10 @@ snapshots: '@algolia/requester-fetch': 5.21.0 '@algolia/requester-node-http': 5.21.0 - alien-signals@0.4.14: {} + alien-signals@0.2.2: {} alien-signals@1.0.13: {} - alien-signals@2.0.7: {} - ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -9862,7 +9937,7 @@ snapshots: automation-events@7.1.11: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 tslib: 2.8.1 axios@1.11.0: @@ -9884,7 +9959,7 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 cosmiconfig: 7.1.0 resolve: 1.22.10 @@ -9951,7 +10026,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.6.0 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 7.2.0 type-fest: 4.41.0 @@ -9973,7 +10048,7 @@ snapshots: broker-factory@3.1.7: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 fast-unique-numbers: 9.0.22 tslib: 2.8.1 worker-factory: 7.0.43 @@ -10139,6 +10214,8 @@ snapshots: compare-versions@6.1.1: {} + computeds@0.0.1: {} + concat-map@0.0.1: {} conf@13.1.0: @@ -10259,10 +10336,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.3: - dependencies: - ms: 2.1.3 - decimal.js@10.6.0: {} decode-named-character-reference@1.2.0: @@ -10364,7 +10437,7 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.6.1 + dotenv: 16.4.5 dotenv-expand@8.0.3: {} @@ -10449,6 +10522,8 @@ snapshots: es-toolkit@1.39.10: {} + es-toolkit@1.39.9: {} + esbuild-register@3.6.0(esbuild@0.25.5): dependencies: debug: 4.4.1 @@ -10527,46 +10602,52 @@ snapshots: eslint: 9.35.0(jiti@2.4.2) semver: 7.7.2 - eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.4.2)): + eslint-config-prettier@10.1.2(eslint@9.35.0(jiti@2.4.2)): dependencies: eslint: 9.35.0(jiti@2.4.2) - eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.4.2)))(eslint@9.35.0(jiti@2.4.2))(prettier@3.3.2): + eslint-plugin-prettier@5.2.6(eslint-config-prettier@10.1.2(eslint@9.35.0(jiti@2.4.2)))(eslint@9.35.0(jiti@2.4.2))(prettier@3.3.2): dependencies: eslint: 9.35.0(jiti@2.4.2) prettier: 3.3.2 prettier-linter-helpers: 1.0.0 - synckit: 0.11.11 + synckit: 0.11.3 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@9.35.0(jiti@2.4.2)) + eslint-config-prettier: 10.1.2(eslint@9.35.0(jiti@2.4.2)) - eslint-plugin-storybook@9.1.6(eslint@9.35.0(jiti@2.4.2))(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2): + eslint-plugin-storybook@9.1.1(eslint@9.35.0(jiti@2.4.2))(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)))(typescript@5.9.2): dependencies: - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) eslint: 9.35.0(jiti@2.4.2) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2)): dependencies: eslint: 9.35.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.4.2))): + eslint-plugin-vue@9.27.0(eslint@9.35.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.4.2)) eslint: 9.35.0(jiti@2.4.2) + globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.0 semver: 7.7.2 - vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.35.0(jiti@2.4.2)) xml-name-validator: 4.0.0 - optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 eslint-scope@8.4.0: dependencies: @@ -10621,6 +10702,12 @@ snapshots: esm-resolve@1.0.11: {} + espree@10.2.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.1 + espree@10.4.0: dependencies: acorn: 8.15.0 @@ -10629,8 +10716,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -10696,27 +10783,27 @@ snapshots: extendable-media-recorder-wav-encoder-broker@7.0.119: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 broker-factory: 3.1.7 extendable-media-recorder-wav-encoder-worker: 8.0.116 tslib: 2.8.1 extendable-media-recorder-wav-encoder-worker@8.0.116: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 tslib: 2.8.1 worker-factory: 7.0.43 extendable-media-recorder-wav-encoder@7.0.129: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 extendable-media-recorder-wav-encoder-broker: 7.0.119 extendable-media-recorder-wav-encoder-worker: 8.0.116 tslib: 2.8.1 extendable-media-recorder@9.2.27: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 media-encoder-host: 9.0.20 multi-buffer-data-view: 6.0.22 recorder-audio-worklet: 6.0.48 @@ -10742,7 +10829,7 @@ snapshots: fast-unique-numbers@9.0.22: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 tslib: 2.8.1 fast-uri@3.0.3: {} @@ -10840,6 +10927,11 @@ snapshots: follow-redirects@1.15.6: {} + foreground-child@3.2.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -10884,11 +10976,11 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.2: + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 + jsonfile: 4.0.0 + universalify: 0.1.2 fsevents@2.3.2: optional: true @@ -10945,7 +11037,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.1 + foreground-child: 3.2.1 jackspeak: 3.4.0 minimatch: 9.0.5 minipass: 7.1.2 @@ -10965,12 +11057,14 @@ snapshots: dependencies: ini: 4.1.1 + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + globals@14.0.0: {} globals@15.15.0: {} - globals@16.4.0: {} - gopd@1.2.0: {} gpt-tokenizer@2.9.0: {} @@ -11018,7 +11112,7 @@ snapshots: hosted-git-info@7.0.2: dependencies: - lru-cache: 10.4.3 + lru-cache: 10.3.0 html-encoding-sniffer@4.0.0: dependencies: @@ -11072,10 +11166,17 @@ snapshots: ignore@5.3.1: {} + ignore@6.0.2: {} + ignore@7.0.5: {} immediate@3.0.6: {} + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -11180,7 +11281,7 @@ snapshots: is-language-code@3.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 is-npm@6.0.0: {} @@ -11360,7 +11461,7 @@ snapshots: jsonc-eslint-parser@2.4.0: dependencies: - acorn: 8.15.0 + acorn: 8.14.1 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.7.2 @@ -11370,16 +11471,14 @@ snapshots: jsondiffpatch@0.6.0: dependencies: '@types/diff-match-patch': 1.0.36 - chalk: 5.6.0 + chalk: 5.3.0 diff-match-patch: 1.0.5 - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.0: + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -11536,7 +11635,7 @@ snapshots: local-pkg@1.1.2: dependencies: - mlly: 1.8.0 + mlly: 1.7.4 pkg-types: 2.3.0 quansync: 0.2.11 @@ -11579,6 +11678,8 @@ snapshots: dependencies: tslib: 2.8.1 + lru-cache@10.3.0: {} + lru-cache@10.4.3: {} lru-cache@11.1.0: {} @@ -11595,11 +11696,11 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.18: + magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.19: + magic-string@0.30.18: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -11747,7 +11848,7 @@ snapshots: media-encoder-host-broker@8.0.19: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 broker-factory: 3.1.7 fast-unique-numbers: 9.0.22 media-encoder-host-worker: 10.0.19 @@ -11755,14 +11856,14 @@ snapshots: media-encoder-host-worker@10.0.19: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 extendable-media-recorder-wav-encoder-broker: 7.0.119 tslib: 2.8.1 worker-factory: 7.0.43 media-encoder-host@9.0.20: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 media-encoder-host-broker: 8.0.19 media-encoder-host-worker: 10.0.19 tslib: 2.8.1 @@ -11994,6 +12095,10 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.0 + minimatch@3.0.8: + dependencies: + brace-expansion: 1.1.11 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -12028,18 +12133,11 @@ snapshots: mlly@1.7.4: dependencies: - acorn: 8.15.0 + acorn: 8.14.1 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 - mlly@1.8.0: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - mrmime@2.0.1: {} ms@2.1.3: {} @@ -12048,7 +12146,7 @@ snapshots: multi-buffer-data-view@6.0.22: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 tslib: 2.8.1 nanoid@3.3.8: {} @@ -12301,6 +12399,10 @@ snapshots: parse-ms@4.0.0: {} + parse5@7.1.2: + dependencies: + entities: 4.5.0 + parse5@7.3.0: dependencies: entities: 6.0.1 @@ -12324,7 +12426,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.4.3 + lru-cache: 10.3.0 minipass: 7.1.2 path-scurry@2.0.0: @@ -12692,12 +12794,12 @@ snapshots: recorder-audio-worklet-processor@5.0.35: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 tslib: 2.8.1 recorder-audio-worklet@6.0.48: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 broker-factory: 3.1.7 fast-unique-numbers: 9.0.22 recorder-audio-worklet-processor: 5.0.35 @@ -12810,6 +12912,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -12950,13 +13058,13 @@ snapshots: standardized-audio-context@25.3.77: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 automation-events: 7.1.11 tslib: 2.8.1 std-env@3.9.0: {} - storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)): + storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.6.4 @@ -12969,7 +13077,7 @@ snapshots: esbuild-register: 3.6.0(esbuild@0.25.5) recast: 0.23.11 semver: 7.7.2 - ws: 8.18.3 + ws: 8.18.0 optionalDependencies: prettier: 3.3.2 transitivePeerDependencies: @@ -13040,7 +13148,7 @@ snapshots: subscribable-things@2.1.53: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 rxjs-interop: 2.0.0 tslib: 2.8.1 @@ -13066,14 +13174,15 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.10.4: + synckit@0.11.3: dependencies: - '@pkgr/core': 0.2.9 + '@pkgr/core': 0.2.2 tslib: 2.8.1 - synckit@0.11.11: + synckit@0.9.3: dependencies: - '@pkgr/core': 0.2.9 + '@pkgr/core': 0.1.2 + tslib: 2.8.1 tailwind-merge@3.3.1: {} @@ -13105,7 +13214,7 @@ snapshots: terser@5.39.2: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.15.0 + acorn: 8.14.1 commander: 2.20.3 source-map-support: 0.5.21 @@ -13203,22 +13312,24 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.20.2: {} + type-fest@2.19.0: {} type-fest@4.41.0: {} - typescript-eslint@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2): + typescript-eslint@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/parser': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.35.0(jiti@2.4.2))(typescript@5.9.2) eslint: 9.35.0(jiti@2.4.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - typescript@5.8.2: {} + typescript@5.4.2: {} typescript@5.8.3: {} @@ -13228,8 +13339,6 @@ snapshots: ufo@1.5.4: {} - ufo@1.6.1: {} - uint8array-extras@1.5.0: {} undici-types@5.26.5: {} @@ -13280,6 +13389,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universalify@0.1.2: {} + universalify@2.0.1: {} unplugin-icons@0.22.0(@vue/compiler-sfc@3.5.13): @@ -13296,7 +13407,7 @@ snapshots: transitivePeerDependencies: - supports-color - unplugin-vue-components@0.28.0(@babel/parser@7.28.4)(rollup@4.22.4)(vue@3.5.13(typescript@5.9.2)): + unplugin-vue-components@0.28.0(@babel/parser@7.28.3)(rollup@4.22.4)(vue@3.5.13(typescript@5.9.2)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.4(rollup@4.22.4) @@ -13304,25 +13415,25 @@ snapshots: debug: 4.4.1 fast-glob: 3.3.3 local-pkg: 0.5.1 - magic-string: 0.30.18 + magic-string: 0.30.17 minimatch: 9.0.5 mlly: 1.7.4 unplugin: 2.3.5 vue: 3.5.13(typescript@5.9.2) optionalDependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.3 transitivePeerDependencies: - rollup - supports-color unplugin@1.16.1: dependencies: - acorn: 8.15.0 + acorn: 8.14.1 webpack-virtual-modules: 0.6.2 unplugin@2.3.5: dependencies: - acorn: 8.15.0 + acorn: 8.14.1 picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 @@ -13335,7 +13446,7 @@ snapshots: update-notifier@7.3.1: dependencies: boxen: 8.0.1 - chalk: 5.6.0 + chalk: 5.3.0 configstore: 7.0.0 is-in-ci: 1.0.0 is-installed-globally: 1.0.0 @@ -13393,17 +13504,17 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.5.4(@types/node@20.14.10)(rollup@4.22.4)(typescript@5.9.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)): + vite-plugin-dts@4.3.0(@types/node@20.14.10)(rollup@4.22.4)(typescript@5.9.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)): dependencies: - '@microsoft/api-extractor': 7.52.13(@types/node@20.14.10) - '@rollup/pluginutils': 5.3.0(rollup@4.22.4) - '@volar/typescript': 2.4.23 - '@vue/language-core': 2.2.0(typescript@5.9.2) + '@microsoft/api-extractor': 7.48.0(@types/node@20.14.10) + '@rollup/pluginutils': 5.1.4(rollup@4.22.4) + '@volar/typescript': 2.4.15 + '@vue/language-core': 2.1.6(typescript@5.9.2) compare-versions: 6.1.1 - debug: 4.4.3 + debug: 4.4.1 kolorist: 1.8.0 - local-pkg: 1.1.2 - magic-string: 0.30.19 + local-pkg: 0.5.1 + magic-string: 0.30.17 typescript: 5.9.2 optionalDependencies: vite: 5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2) @@ -13418,7 +13529,7 @@ snapshots: colorette: 2.0.20 connect-history-api-fallback: 1.6.0 consola: 2.15.3 - dotenv: 16.6.1 + dotenv: 16.4.5 dotenv-expand: 8.0.3 ejs: 3.1.10 fast-glob: 3.3.3 @@ -13565,14 +13676,15 @@ snapshots: vue: 3.5.13(typescript@5.9.2) vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.13(typescript@5.9.2)) - vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.4.2)): + vue-eslint-parser@9.4.3(eslint@9.35.0(jiti@2.4.2)): dependencies: debug: 4.4.1 eslint: 9.35.0(jiti@2.4.2) - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.6.0 + lodash: 4.17.21 semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -13593,10 +13705,11 @@ snapshots: '@vue/devtools-api': 6.6.3 vue: 3.5.13(typescript@5.9.2) - vue-tsc@3.0.7(typescript@5.9.2): + vue-tsc@2.1.10(typescript@5.9.2): dependencies: - '@volar/typescript': 2.4.23 - '@vue/language-core': 3.0.7(typescript@5.9.2) + '@volar/typescript': 2.4.15 + '@vue/language-core': 2.1.10(typescript@5.9.2) + semver: 7.7.2 typescript: 5.9.2 vue@3.5.13(typescript@5.9.2): @@ -13691,7 +13804,7 @@ snapshots: worker-factory@7.0.43: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.27.6 fast-unique-numbers: 9.0.22 tslib: 2.8.1 @@ -13715,6 +13828,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.18.0: {} + ws@8.18.3: {} xdg-basedir@5.1.0: {} @@ -13736,7 +13851,7 @@ snapshots: yaml-eslint-parser@1.3.0: dependencies: eslint-visitor-keys: 3.4.3 - yaml: 2.8.1 + yaml: 2.4.5 yaml@1.10.2: {} diff --git a/public/fonts/inter-latin-italic.woff2 b/public/fonts/inter-latin-italic.woff2 deleted file mode 100644 index 39eb636735565f80710cac56c77d37b882b6cd23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79716 zcmZ6SQ;;r9?B>U|&)BwY+qP}nIAh!P%o*z)+qP|6`_=yUVt1ch{Hjw)Zn~;FmFo6T z5N8Gg1_A;C<}d|9|BoP5qCmjx=l|RH-}3(#b~-dpa4#0_vZH{cx{z`bnt~A z6i`tWQVqtZU&LBLt5!g)9VvgVbS8 zPXg@_UI`CeE+19&;~}FS#}KC~eKq*{;~aIxMC9g5!HrYw0y;9)46uM%tG&BXr_L#c zp#A*)PYUwX%(}|<8}_z9IfMIE!r?w(C|bNqqfo^{z=dsA_&o*9Qm`nQJx26nsj97U zSW+EIq7dfgNO||9m@hjq;hmYPcxO``OX93w(K&_`rrG{-!=rnDco(@K@U2!_20PKa=gR|A#e^A+E)8>|c);1cm& zR`kD@=s&3eC0}j_ts`3%uVWl?#Ovvz()-Nr-VfiRgttWk2tJ)uj-!#=UI+^f%x{qB z3OrZwYE<}3SG$$>h&kjGZ7{z9i@ybo7PKc;c~%#&94gzoXa=USjW&YP&5Z}LJ)?)p zpP63qVUy&N?Z+gNEjk?sacv{gH$r~ss zZ3!A0p1PsR0c>O#UOvW0MPxS!H6a-zHv|d$njsF(CC^XLRmHDMb*F{?2E{=lB2lzGh&Io8&N+~iY*&+pAUb)lW=$&JF3geCp z_UGoX;9nw_k*UD@X{z(n=&={MvImNjF~i3+;?ib>_@|jGE7I5|RpF_Z1WJ2^O#Y~~ zhy7l=-(JpBaj!|0Agwc{GrlH^Ga>CNF<@A+es6r=Z?|IVh=4cx{s0ei3yyQ#CPPM9 zA{&s>AlHwg-z&kdHiMpJ0w^A!3Jgv0%$&9QGG|a)B`iaUp+^iaLmyA)rXP4vxX7Ne z%(BgYK3%KKhR)w@8x{~?;HlJ-RAQB4OqwQ3L->o6c0XCB$wdBDKYvg}0&y)D+NsK~ zTkG&VuG5;gB@8v*$IRdw?X=Qp2OxcKZ+d(JL7HjxJ}x~Lcb|HDU!n_zSkbd!;EVbJ zWnp%i<4@6+bJhfSj~GhRTSrDhyc~Uxev=MuofhUIq~g&`UCKnZd?%<$%ebuag=wef z=|4BhRTuPOfV6r`I#Z4=RW%c;Qb<z3O zcXK%DB3TWr{7h|`C{WWB`rMl+hD-jM>al`opo(m~Z{xniwEzxL>`eW@dx8s_%g>CdQEb%Eq& z_C?mQ@VHhi@80>Gnpj+9HjpQCCxc_<_-l%QEWS7g%`G(vBkXmn#lN5Xv?Rz|A^*C8 zUgNi58DasYX};Z?Cv7dm#B3RCm7O92~B{-~pAk3TL=L(_Yj__klISQYEDVzJ?S(<9lC1}bs0yx-x zjZ3N!6&Kh$DuM0$9B~Qli%cTRHDA%<%2Vq2^K|)f5p?+T;C@po%_eql8~osNY~1aF zQk)WHl3M1&pzS3iIUYS&S&fCZxJ+cvyp$N!>9>?GLxy6*H7)>_Jy#KE9w|rty0398Wz#*qD&-(H7Sa`fZW|*q(PWkaX zat)QZsm0b+Av=&8fjYSvl0AbMcKR88pPehBgfRx5xMBXWcvX@JE-X}pE96D=d&&&^A(&;JRXi1o z*`UfuZ`i2mNXzRdlX~&wu(jfszuQ@YE=*?5ITvZKvfU5Ci$0f;t65+uEkeutyStO0 zC6Mi2K$C;F_dqv2zEae5pt=&{+pmcyxuTxGNl%fU%$6;R1bAB+@LujCaCO|E3k(jH z;XHMW9?tOZZE8j$6N=*FC5znp)<)2J^nn;^YHs&?(ah&tB^E1*LO179~1(dbx8We)3`=opV;|snA64P}_aY?tSgD_?JNt_CcgPK}ZzJ7)lgM z6zN*p9`CX0F!-~ZbMLYKEdv#wpf8M+C{zQ6oGA354BguGTbJgQfTnKggY72nYUAGi zBUm2@W&HAF<;EZz27vmfo;$w>h}hs;=K2L?FbYkK93X^<4z*oyl%yaI_E$o;YLm)0 z25rS|UG4s+=eE))?)gNQLw3v9^$ml4b9fWrMFRuP0NxWhtFxSo6bXhD)`JE9WOX)l zfWLAJfqOgdWnm2HKBVBTq_=z5 zXio>zP@qZcy4yS4jU;#g4%BG*LGbE5^-F`Y&*?;?pJQU@MG$9S3mvX4pVllMv-2l&HgW|6l0X|z?FnmK#L?|ge;0{iZ> zil3MM{)1?ETgT7O&Y5@SQ{Ypbu=`bhbIW^@eEY`qGFWkGvl5SNUmJ!gzeDsoJLE)p zftcgF7j#~inT*&e5#hnN2H3riz{lOXT@yjfG{D*n80`ocy+Qo&kmJQg1gvd;^L^*- z+)LyzAS&=4@L}zIN`4ZlAo4PI-(np&A$sk$-CX2(F7;LypWTqeUk6O_taN`e{c46R zykn&PR{A)+u1hS(XRdvNwKWa;3wQX;KA~Rl)fOvgz9Pm6AnS7$rCeZ=$5~VgcFpp3K1y6)-$Dpr+Xm2#pQwy_@I@b3{;dBjj(AW{m&f0F zzRYJU5HMsJ{K@mI``jY<^oYs3zu$V~;7{;KT|?z@@OOW(m~KApu{dG8xNLGcJKdc9 zZS*+3J2-8}{Blq__ORnSI9$i99mV(T_5S9$5?1qE*fw~MV?zKme`lsE`&sE+^yD(6 zE6gMORQL{aX)Xec2}&v?C{`%Hzz>m*eG_pDM^M|Pn~ee- z9WSBS^O;*8>5M-lz}pqvyIXYfO1$s-MtOGp0nkoQPx0oj4?>QD!tnmy^~anMN6~!4 zjvSgxdf!=THw*bp@nb)LmHzKWgOx}=Y1sXGtWWgoP`la9RrBkeXo0e;{9B)2#;rH6 zu&vo&i1RIz58)ss(r)2yp*Q4H*V4@+ ze-U2yd-}wSVMj3sujE%NwVupxQjGK`31@ylqvSXF>F{aQO56RDVzJK+7~tWR+d1P0 z-t5(Op98IMz%LPZ=niZ>-syIJgXmHJwcw3nP9JwGs@vW3V~>esGfb;6&cXiYE`C}{yrV=Ri~pF@#*lP zxXjbK>?scrFqggE_%^OT$xFm*OfxI{`wNtZHKRxF@#JBkgqY={H~9Iqg}$oC$%SDX zVA6CI3466K{`+GOdW(F6c+X$Ao8}Vb7-7b~#kZpX8GHOSsl%$JWJUkdy-+ZnmyUBa z@fwYx*>Wg0a)HOty#6elKb~{@aK3+%w-en*#VR6FAJEWy;Ern*_Zb~xJ4dzcm1c#0 z(`@4bhS%-R)8AKDID^__U)05keS^jNIQvSb-@}SuB;?m^;N{wt4_%VWVMb*#Gj&pr zzq`>pClSJfG4f&At{GsSk;)$l8=Xwn+Ynk~LSZa^6WZ!dkQeG*;e&DUnjVBsf2?U* z%tNTpI$HKO)UByY{$?%D|8NIyvuQP-nmHdenPM~K)i#qQ;}-Gb_-kpL$%9{LDg0^+ zEz1INrkK-XZg}f1{&=a*WY$Z#)jYAC@3k&9mjYq`aD7Lzo@Y(~#egrNAr-vUMVaBZ z>uTVO?bWcqp;62z5zhq^KflvUFqw zO!Ulbe17l!+X3G02lQcWCht|7fM(9`L%#z|JC7ItQ$N7#?ygsX|HtvvDk}N+A=Yme zgW&hVrB>pxUNp|&JL_q#+#ulcE!n_Bfxa6M2t(Y<7~Fv>a7XX4!)s|3-R{9~{rzi| z>qUT%r~M4+yNAI|G0KftG~SaOwe8Qj#(TqeUx!Iye)t@R_4GZ?7^30-0Q`Ia()St> zxP~W7pQ`WZ*ygXwAKuT=GnnS~b|#U_g5V^^-NCrxHL$ek@G0VzW=FfktfSvw;Bdbpj<$Gyyv)jj`Hu`tjyKzVwKYnl5#c5`rWNskOomD}8_ zp!ScDktx8jFyHG5$@3gdaUB*p!xcpqF9U?k6Q2iyHnP7xuLs@{h7nWId;C;IfuQYm3hlD@`(~Y{*-+Sx9OxGNL5o% z%>CyWkDv*b-shjA%9UdzIz_>Z;Rj;e3j$+HuLsT{-|>jt9=7{Q6a=XV1Og>|V=x6Co&i1q z1O!EFz;zZk9$890ZV``*YgoQ{bgrXPC;*cKl{Ld4#Wv_*4!u zcIlVh`<=!_3axH3FN(wuhWF44O?wfLBy>&_2+Ib+6olWm3rom+76ycaeknHOcZ)i{ z=e6Hi%z(t@I$D78RU&!R_xd!Zx^~O*Ir7b{LGL)2vO7A&;Aag266;ustpfb! z!w&4fdZG*IKV6f-EM_GXmItbkU`2s}3;SBOrUFNGW@SQn#rBwVZfu=l{Ge-vkbpBr zc0C5Ci5mk3OL{pL6N;Tn@D9518pmsyy3^ot7sufJz=`L1iOKgam-qXI8SUh;^c{!W zb&lF|RfOBMo)uVp@`ge1?fNp{u-O8x_$^zQGB;bCuEcf~ zwpe$qEgzisv19e-tg>8ZsJqxi_3az8RtnXKC@4XE`43)Z{4#z&T0sz1Y`?G6-4(+Ss7*Q*o*?%c~sFY+(`>MdRaAPlv(ciRi2w zs1}%u1-g9w1~h=I-B5+|!nnGMsk3X%eiFX~ougA3Dhd?QWD z--Bb<@8_&5E{~i9YGBtMC9y#~*-*}#%n5K@AA#;uca!E;1VF_bK zP`?N#cv!}B#2X>|hovcpXZY0h49>_M=2itMb%y^f60Uasyk@Rl1BXQCI`-OHPnKPOx7k@DWpmjd_r(#ZKx$Np+n2CuUi1YO)?= z*QsR;3w6ND722s|x<~NnhVIJOPFrbz(N%}D^WF8m!ERD(3@*umhqtdH%z$9}4I5<= z2)i`^Aws`y53D7T5a^Q76U9z4@esr}LIX;lRCf}(^>PaH>@@hO`6k(Xa z=nc#cohh7h>69-z1so4vZ(>&X@6&VXRCxYm82U4BdfrU}j=L14`Hsl#8UmxS>D{3V zOdd#)uD6Q0ZwmL7-??P<9v+u+S3=BRf=L+dM-h|fg6*7U@nkP<7KsF>AM{?lWhyy; z^s9HdB027+esikOI}eODzFwKWp{v>nh<*#Qts)_X#{p|c7rF#ctv;1_pB7g0&Z~MA zd`O3S=_q_NDX;A_jglJa8CU$e)aP`M^LDND^VG`Mv~%8M@^U~(o+8o?WM4M^fD1_tk3 z0%tq&Vw5*zpO5%19A@srL)8ISKpMEyAe}pqgXCzJVS^vu_Elm5@{U*XN3(v#NY;TQ zFE3_?uSw#V@UOZXU-BLz93lZR1ly*oc@QBksl>mmLK)pLx)%19h{@4|P(i6VQN_Ou z!pL5KtTmd7E`jCYQh}Ro>`SIyFW=()q(@OK+x>56ss+a{_@gOl&S|luo^lxl!|J>1 zM&w@EdI(1BJ`(Sfe;+qG*e;8m zQyiVFq4i=l4MKAh^_F6WFed!$`D1(Zp0&XLrnpx!iHZhTF_0p>%|tqI7l^1~(o>^0 zMg5DmK%W^>@SPX)DiHYFOG~hW8*@n=TO7j$LBAy^HKn)}CP{P`LE995ZK#yKAvxp% zm$2R05Q(~|DO5VQUU$!4AAG~ES%7GA1sLw}j-?|-FdC?$u|LQA4GvEuQJ39G&rtIf z(jBVdF*&we)(YisqspY-&inr9ja7ZJJv@-dYT`^mrxz?Npc(Xd>1zO1&2af_hK01( zxY~|%5IHVJ`+YqOgS*sd{Zm6@4An$Xd;S9eM+rXkFc-yNj6i6yH^d?xHbh(#N9Lc8 z%VvtA!=5j2bQF2NcHzS@uHqoJH&J>jC-t7gFCGZdNzczlf3jZ6|I=5lsUT5fY!9cn zQ>nXmz=(kc7m@mkJB*SqQKP?VHL=68p|w@v$W)Xlz@(pCE2<$%N={qOLk%ZunMSfGzi*x{1<-(Yc9)A+FbX zwHVZKKO|RQXEri})-ps8r7ik8(2r-{FlZUy2R1St#YG<`|55X};{(Jeu1ozTomCro zhYi1SlY-LE-T;y-x9vxtW0J0Q+N*b^&)!yz76)n;fQSM)hPq1QkX`CgGSlp-%aB@Q zkLI!J=A52}u!VGDon_F*>0`A-cD9*wC^Y0_8;v?(i(sFWmr=eDKmRIQ&PtSpq= zkrTc)#1qnVLaKfL((H_UQ8YX>0Dm)BnDxX(<-OYNX;)b)6h0c@0tfTP>!e_>qF3z9 z%PT*V6<@Zn6MWwsQymWf>%1;5VFFEVD|z~vQAi?-ct&noMw$3clMp!3nx?#_eXK>& zE;VkU{%{<=-dy?hi(2qnhS}9VKIO4^=u~piZl~Ek) zxgUc}sOeZfYe!c`7YRLMSvra+3zJCO>WXC3N?&w$gu4l0&tF7{w;n1Nb1!UX0N9kM z@xNh>DDkgHs7OZr;aSe2%s52jZiJ3BJwXtPov49>MS@@$>4NM)Um|T{s)#34_VaE@ zh1cNvrU+T#=>M$wKRwCe@#uXMMg(z!R1gQrpfyB6EVK*aB61EZG_;vXq+;fH@GAlY zS5Q+3I0F=c6T%GjDJKSuqC@GhTd~fJo#+vYz?#W|u_4wS6^jXRVhfnS^~cE$)0H=9 zlx4hF>QuMLQ^OXQoRy}5mSm4g3n_c1$0RqJsP@d&;MmFq*)f-R9UpNLtEnF-KZHeF zB`b#Q&}EitC)rF_q(#*UFV&;$TSU>#&3oFka>lCUob8%yH;G68l2wYP*-f(Ma+#(k zNqx9rZAhI2o|BjGYp(M772;zG~1~)Rkcd8kELnGH_WA=0En1*7g4Vkh%x|Q*J2RG$A4KVe3z|FoG4jP%iflYb) z&pR|F%2AMNDmRtrH*l{VdHG<*!neBi%L->eh)72o4h9-y9uo~l{f$e?V6#hhZ7bBL ze)~ciqJ$G{iTS)nzFlf8hPb=CYMuhtRWvE5y|+y1Fbahl`tPh2aS{uFTzD>9DBbM_ zr+GkN(&5RPiz-^@Rom9IaGx^`4dB~J05J7YIZdhKQB z(smrI*M+QN5!kXjf5=BHnVsD3p@>Qj+<8YCd5+&M-GP~HCwFA0qAUE4!Jvy((`uMQLuoI$r5OsuQk*2U5( zu!AZoWYG)hSehsBg`Q(c(ILgzv2Lw`l&(-!o=ve-6GrWbUUR@!2hLJ)wj8JA-{re8 zz5eU94#caiG;fC->py1rH~x9rZF(sVNEh3y+^N`@P-je5#YG%=`DiH5n=1*^D%Gmx zHoHMFt9}JcgQBDbbA-(l+0sVV%&pk`*K?1>>Uh|6P^$lury7$JMSSOJ{mDYnxB3W^ z$f#1MPEQw`3EWInsyB-dU13Sq->31I*wbwbW-wtSj>srLY8%pjd9ypuO=a~W*3dB5N9&ewBm zj;?>7rh5Et_rBY`ZNux>xv}*u21hH-J!*BDnUCqr(L<)&E0*IK8LVvIZb=qkhxTnP zwgTF%gua)6UMeR!>Wr8u(ixkka7AX~3wCI6aa6%@zw{EM%jRRA(pP}pz8PsC-1b{#p(lNR)=fRIF-Ys_knQX z=_cd$dbm1pa%^zR^re3C%GFpO@P{db%XK$Z9fskMQE(K7;ET8rQT0VaKYpH|em9fw zRZlP@T#$b8LGROP{XJMOz*Ri1?C9%f8>;wubVa=3*l|o|?kx^K_sazG4@Vz*6)fWO zWSCcGCjUyC&6UK|R@tic>p1q!v`vuv_`C0VjQTd>P5O6M`e1m;NB zX&Ri{A(NN7S_t7+Uox4FhmvFl=VuKyo(g=(xyZE^q#uz&YPTq6S1gBau>kr8ZGh+Z z?qT3fJAMBT*D`g1+dSK6#GQqWpmnO*vAv#%a)H4S!b5GMeeriO%bpcYY80m#VY-{> z53fz~3yGezcueaDzy3Xo0JW<;Ki5jh=gMad3dbhR)C@s8q)lgin%bUFQ?NIdgq*p| zS5XUCc&Z|^^4fp^R8+a1DYshgjZIK7o^NX-=!&-R4b|Uq98{Ogc&fk>(Nn|uOd^Hf z9xNrDFgvuiNrmbHQ*1r~-+g%_Zy$-NT?wjL#hV{GB-3--PT>SHbaW_Bv&VM+mjxsl32^3*@q7k$4{ijN3_6Mc6ZE`scfS zR;X7Ef~Of>NR2&COom}+z<;DYSXysGAex##$E61){AMkZB?XL|cyNFhHtB|T z2k1CnbK7Qf1&}-2;2mvg!jxWSe=TRX7_7984#Y~{9RH@Ra)JFC(zxh-$WM5C_I-Qb z%(>Xq2{Lnyh`}t3QlHdrH-6?#!Li>H(w*o%;>WfeKM2W)fRz*e^?5AeN!x7e*-kpF zh8-bRjx(=1kzo(@yBkB9WOhLyu{Oh!@$zu)NW0u}!|J9mSm`mqtiqLQwPOr4d5#4B z#B}!3E%TrP%5IxSAFEcJZu;~;j@4YzP}99~4|}=s7fN1HQhpCr7r-a`<0)w#Ov6f0 zYumU5MpZ19f>Y$ODv&VF*bT!|1%l^~OlDD-mZ=P%AJGs+|Itkrlbt)MXuV}~cyJde zp*)_1_@&GbUO*vO6ZDx{R*SoluK;|ajb}p8JkM}E7?Bq_AsGdW>iv-0z+lgU?InJT zD{=Yo(mJ{5V5_t>QD;bSw+94QydQpo$>hppZ`5-@_VJo%_j5C7Q)w-G`RvX5^Ks*u4M+z6!-it80$v$79!d4l|ov+|Wt_A;GYdgvrJ;FIf+ z%J=dr_yIa^@&K;j6>()_Llaa+>>09#9j_efaN~D}{plQ(inXKHVABT5c`(&1a%Q{` z5PVrJ%dhq?-3z!mi#u_$IBV-Sbod)|6hjinpL~yd2uH~~LN-;Qq+k_4jf48aXPs$x z@(7%*zpMX~Cl52>A}DLZoosz~|3|&LfguvE{l&)v#QQ;#1pYim#>hfR9(!})eYlWN-VITf7cL$cG=Ry7EK?L2WT``FK^WE2nt5E3p z_dTTKiy}FXo!HyaHce2%EeG1IBKH0v*mWy+_i{DpYcWGto6b>w-`)it-2|k;qfDgc z0Qaa1qZ%~vo&%n!h=w1jV4(aZlxc)00%eK7nUh~sa&wXsvsBqQuNL{`QO;J92db*x z+;iZ@1u~mILy^4Gw>TLRNFK?GVZ#;-$o_l=-&5)udU{mpszi5ani^CU5)0Nn(U><< z2=~G`g2H+~5N%x8%HV2nu*rZQ5Qa4+QPYSp3lJnmg_=(_)cwdP!zk#+2%ugY_|jUK zV189Gc?Oc33r2<$7w?wt-k%vi+?1Ch(rE(Cx~h+Rf>4xaG(-=l&q|UO!cgC48!4;b zx$9YJ45p#kx_WOFNhmJy2{tS0TVReF43}(qje&iP8pUHwW51%0!&VRK{2tWQ0!0iZ zSa0h1V6u$Mr2%)5@`$P;1d6E(yA$?Ao`Rf!a>om8cmMd93-mM|Q8Kxfj2s~KG(e$;y z@(LP4FJl@eZZN2AKp zzr%N=Axym(T^m%(2C}9(rH8o-i$(*wQd!Qjjj!gqrI&LrFvPldsj_@&kMk(h1?qG= zaND)oa;0WC_owa?4F4{i_X$cO+g(>d8r=H=-N3*n`ZiZ#iQCtF9~QjGU`h51_>5sp z;HT4kwLNC+2%~;K!}ow6C^dWM^2f?A&hF)K+x5IGu|kuW_D>p=%m`L|VP;N;hUAZBU28u}2OAH4t3TZjX$T z23*1`?i+_JQxwsFb+Y~}`04|JYfZ%C?Y>!rHoPIk9gp@Qfj$chr}ZQxl;(kW-Jc9+ zW8StSrkEKTBF)g#6PikmB}FCTppu+&!l#$U^YcJ~pOF>ZijDoleEBa;B9y`g^}&=X zl7}GAyTbSi?9s8ODQu||1tI15Z{EJ#sablaGP$^MUhI|c^c@S2My29?HXbLk>gJ4* zjR|}$MnjdbDh#XB6I5DjhtoraCT_Nz80Jr5gaXT^`7*BnY}vAD!t<_J5R>Azq~fZi z=Dd3LBeHB#fP_vqQN+jtU}G8rr{gq%efjXxi~FFx?<-Q+)#vCv7lx3Sj`D$YumT1x zl0TD?93AhODUed_ljt$CX>5#&QcJP1#C$jl9$rVAJMJl`-Elc2ih^Os_w8alz89zm z?1E0RLDLC^6uU|>k!?b)qNXZ2zPfdl{}WHOxD{LeXO1WW&uNKi^m1sNf%`l~ygb)w zg^Oc*;h>ertKe(>fEY}paHQWqsUuZWi0EM9nGn9Yw|BJ*Ti|MSX2F?OSi z6Jn8advwh~{{oDSMWWjFJNUxO&BOUJkZ)`!{VL>}tKqZ&yM<;uXB4m5_JdtjrL}E> zP^{|zJ^Qd34>o8sBxIHV17tVq$T`uPnG*ah3B= zoxG%2m^Z&YeME~{{-C>;I8N&S@VUHHuXojAG?_O|Gp+JI9*h1|HA_pFAGa5hy+5E5 zO2Xkc5)Vs{Q>j*~odO`ANC_YctcXt}q$f%Q+5Vsr*=Q*qBH1ZtVgRekZDJCPb?CVJ z3G68JR&S@aUc2TsHQl$6nYzpW<(XQa|7@1pX!F+**ispxzp|1lEk(i4Z%I;L!fx-( zH_>D}9n(+}>Q4V^ET<>+`3lH=J>6w7d9WYz*Zp%mSp~^mHf-a?mhP37q07*ibx=s5 zy`tZnsd--$n=q;#tQ@-6OnhB#nfPazbEDQ@K7i?4&v70Iu^H#6QUOKGq2L=5<3L1A_xCjgO3f-XgpN+s6|m({vQ@W=>H zd@Ev4PfFOm+eQ@le%K@k_2 zW_OeUA%%$ziH=YRGzup>aza50rE3S09uZDsHPI$1H<;JP1dAoFT;t z`qdzTIG}*}v~eu{B@GIbqt9r!bwk6?%&xk@S~o$ev1h6uRb-`o>2UmA zP(9^cs%|1<%wIcwjGvJGTbCscc8^sHdi1R&<(KV9g?&vwGmEfqN2x_WDq3~;SgiET zEHaK(aR+O$1yLGM!yC9|?n&O|qGSBCJ9x{|bXAzWHAWYPxFy~@ZFHZ1u6BE%p)Ta} z#_vS%Q1C_j4?l@k)@Vb7f*dyE?k>|4g(*H)_5}Imtz!TVB>zn(>{dm9%}}Kdz7JY^ z$N**Uz@$NRsN^U`b*aYc;NXe%$Ay!QhdVB3_A_54{)Oi=S38Wol7G{GzHG2;L%iK1 zEhxQ&VE(aFes@vqV!a^wh2O&!f9fYwJ66k$u^AMfug>@Dv=}u*jHZte86>d1fr{5S z;g4}5QWUd74yn~YS`~|A^6Hu3tT6`+ye*^EtQXU|tICKy zcP%|eq7%LH2X{C}e=m;iV#DAyM2GH>|HkO5Hd87^N3AYyq3JtBdT*Des_BRPrLOLr zL2`3z!EV8ZCBNf|6$&bFtQPphfCYu&l?_=X})D{++lyTX|Vom?h+h?>D9BZ)RL zUs#Mcnp}W#c%Z-h#b7>BlcPn$N?JcG3BwwA+Uss`yVJU{h=6^YvDI?c7{J78ZMx03 z*rI7}##W&}-;rUT1;#Z-z6{nO%W>a~YVJcc%KGz{^h`724`12d{X6s+8dRKA=pTuC zHtL1)n$Yg1I9LNX&T?&Jke$sBN6I70?wa0PFh{5$&68_2k8VQNw?=j>@>?@aB>JFm zY@S58vF0OiCLcI_S_KlfqP!IshCbzJ&tgK$*}QJP*25bXOSK}|7TU0vZ){fO9?%tm zfOsGvL}6xLuo-W2fb9F6GgU%H>1u98%0GNPKDk;MMXC!dJw>urstQK@;swr3wpL;P zD=BSZ#cx*EcNF5^vkaKX?t}YM*vM|&0551!{l9IxpozO2Tzl9u@JL2Id!a#Nvxa^<(8S^42ir`Y{PVy&ZK644=cK{TRk0lj4tyli^lwPteIxnu z@Pi`gK9TrmIFk&xw0m7JJLU5`j5=o$dx|}&)y_E?^>hQR8bZ~53MQwLvFhRy^LcZM z+ZpGiKj`#)|2%HPHN9-`b%*p~ZCn1dRVjrG^jF9r^pN$>VN#Xs%oi$#Bq%zl5*~rB zu$yA0saCgtwe4a(`RA@Fqwp_){Mf9Musx__1@jG5FVS1DqIpM`l9f zu~wiqH@lqM?zye)oZ0UU#1W~F5a;-AU*IGtedIRh(4hPXUA^Mq()+f3!r#lP>xIUL z>x%kiuAI$CAKwYW?REaSTtrGcz0jwk`&@903A$antY4n3$KK{(dbnnbAlyh)j9yQ4 zUSX9fe`EqLXQVNiGgc&(GZtL?6N50Tf*bUj)%ZOjls&Dz2vG<}P__wH8_&tJx&$4y z7}xw7ue~1fjpI0NB7^O`Mb~<#Wg)~2>Xu9DGKX-GT$#Vh%q67{SJuH8Bw0pMvV`-!O>C|fj zVLvjZIg8|f0xvct?nRTIJM0+pFcDWN8F)=1FO!N-tS|Ah4%Kk^c(29bKcfpAeBQ_i z1~>2NHkIR1Sx2kacYbfnuD5*KEl&p4_yFn`(gC_hFDo&%IM=+>9n*<$^KHA%Jg+xR z3h{9V?c211vsGu%Ov?rbsBBQrR>|G~7x#jUae$K4l26u_!DPBc2II;R(r5RY+@`ku zP2Zzuct9Pmf6 zkL|MkJMY@!mdB?2nEZ2RvyR)cXFbog?ivF}L)RQZ&Nc?mb3MRdo0FNnwv-{(z%*SX}t72;Gxb0{Ww+ImCweY>F)$BKoEU`u4C-)Jui+`nOqWK1lO34 zJ&P30@X%w{B`r!>mg@?0viU=llkwnPF)X^4tO*mqDULdLE(9KFR4_3V&v;KMN_LG1 z5)WEDWxlUWChX9Y4Gs|xKZnN$=?~I>g!yA@s_D2O+Wr#6pUS(@YSx{ra+6%? zc&J&GnORv?^*1syffO1DYp1tH|J1v$I~xXPFw?@^ysD~-n3$MU3Ir&4y~KM)wS8=A zN>)uxO;j|LR0>Ftk)~FnY(UKX{|T&Y#m|Jn%>2LWLYen_n^NnVnwytZRZ$ZY3n!5R z5oU<+F{9Hnv#_YBsi7ky6G@=}G0wz;Mb=4+a9603(vkS*j1@l4X82W!&fle@8FcYv zf}J%0#Sx;|iaJWa zRm}BiR+VNM$F@}T-dy<0nL`s{F#=D1bu1tO?+bA?kq(N5mk0+U$OHq0>9V0nv#xaS z_&rURKZ+=|^3{cHfjLOsgpAE+Tl$ifP!U>5<=o=RcAk_Usq>^XGkg5i( zcS37}Y&k*zOGhN5T=DfbM%-L`DH87KG#}WX6;Vrfg4X|GKii88n^8$wylcCW-G$D8 ztTdr%sjb1!S5Gx2P&#*nbG&CMnsB38QHpBf#WFwYSvc~KLK@<1LbIZkR2&$d#=5X^sf?ZNi97Zshq<%%n(r{5WJaT2yZ-Mw2`_ua4l20A zz2_)%wPpCq=f8FZ1HZ~&k1?Q52*~)~jF%7@jrfn%f$J_@M^V4LnDg}B3Xh2x^qw>K zE>OmbI9AHsS!-Y3AMi$4fM^`A|9pC7BgM|$8H)noTqcJ_p=U6?<227debi@=<@V{# z!TV)9Zx1i;RsJ_{_yPPG4{i<@^Q?`3^{opdPuNTY*I_H0n{hsV7-E;`odJi*da4~d z**ur!wEK@r*`TCUpD$BJR_gmmXF{{Og+yC>iy9xO@3tfc9H>q-eR=VJKT?YSUVaSO zd${_8eX|mj$ynZF5=en$37u&JhRZQ-E5B+(JZl10jh!@Rt*Li;Y+`lb)sw#5uLzD; zivud%k?B~Kc-2%`y&j*?VttCuQ({Y*SpJD`c^$RDU9c_|zwzEJY8AS?E{3|qO)woN z@t;qvetaL-4egJ=Ee9R>*jEkz=9Anmd%|o)eVk)?&-P9niL0x`pLz-8a-alJP9uW2 zqkb`3w2}I5_c$JnGg|_*@~U@|h4@~xAVm&7J&Sj6eKg2{^#-#R3a|aYPdc|%^JpKl z{vguu>uT(0?~PGiY!* z>tQ?aPqr1MdX|7@MK8}|$uR*xqAi`?N_@(~gB{S}(j-qzNT26cHy1?!`)o^qXLK)# z0^Rdch0{?Wid$|=n!;**(!GYWUgEK{)P$}y{fJ_Ty`E42F9Z z3gipkNUY=7JIqNeC6sLjhh-RqQU)!s?LH7NuaXI$;;I;0>2ZnoKX-|RH7L?0IXW`k ziUlAem|RDwx)5ukf|uRB=-DU;u+{YRzS@+2v0v+Q8syYb{FJBa422NcbHTive~43Ayr8!lGK%*Xm1 zXJ@F`xgO(kKRaFc){h%JcmPHI=wdk2mpg5@Z&Y^2K@u|P5(!|-nTN_#;-lA$*6aDY zy{}%?z-hyWOuyizC)tYL5L-K#cpxmEN~PZq02I(23-Ho5;Qgdve|xI%7$k9zXx8=T zfX*ylVo9&Y+vQa;UkDZFU}e&JduC>O;ex46)hmj}oTx~0Dr_p`ZKlSwXC=)ot@c-iSsJ?awj-$v4xP)W+v~EXac_^lZw$mMiZ=sqT@~h#;T=!46P%Sw zTv%~u;#Zf;=h{C#yqP}0UIyqhcF(JYAGJa}h_+L4FV2Hl^pS99O!hkJYcg@DPTO7ijO7goy%UbK;{LYm_^wzuzafKhV-1zL_l2 zTZQ(asXYuFK&pksu@?e}gcS^-nRp>PH&>xwFo?)C3K!~FiktzOx4a`&YYsK{|`Vq6IJwTfVY&vN40P}6Y z=%4=2suRCueQi0t$om}nQd0Q2$@I&@N2W86>CY|+p{uW#vvn5F*;#)k&BX@q&5zqJ%l@*Ou{`~=)ppBY6H-|T960X151T)`d$n-? z_G|82y)#DQ1L(wwRS5cq{>@8YS@!+%6VVgVVDf>7qW!fW9E<`>Q11n!XRX0$%9pX& z0RC`Gb?elxp=to`J@vi+{Ra!@G4ku**~aC=-@Y%q@%gL2-TL(p;a?TShsUfxb)TBQ zATYoF=Sw;L_{f$U!>vQghkxHRt6V+XdQL%iGQ->Ak=Jgj^%K{S_`+@(zqs*ucE4Tw z={H#Xm3p)R!V4k3|4$C4uH4u3dimS)xgLFbx%u9$-+Tu|cDL_n3}YD*bTJ|X0H#3H z3G3=>h33?b$L?rtMu7kVfS=_Aj3`x;Jb#6V1T;>pSf{5wK6SiX%|PsX<|9XEZFBPH ztM_NPUz9@y&{V0K`!#*Wci)#?64__hFm-+w&{U?Gs=b!M}_d7U|ctKcU*u~?CW zf`5NRc2;r>(El{a|5f4-(=zfCVX%=V$&zoiVtX8R&JC?zLjb7WSO5qB@Pe z4fUG<@Xo;4ucLizx%y@G2f6+DWNsvvJFow6UwUE9j^F3^yw-IgzSWqT!Z)w>cC*7o z&xk+4DmjLKeMeZySC0!dC~8hj^J6{p;uX7WFGWX!+csDGO}EE4oXd%aX$T6hhu2fN zQhpQXmVPt3o^v_PX!U~FjZOLOek4d&fbOC@PTj7$u1$V*np}5NS-tuk^rU;l-S9v= zX_xKVgLy*uyG-CRBcWtL#gYqGMus{H6d_WSFrk$QH`*A<#+v1iK1(gM$V!W?P+*-c zij~-GuYLC0?XL<6c;AaIbovW@>Y3*r`{uT| zV5gR^H_pmVv>_tUq@684kPf^vsC~S?^s;(*>(f5LF1R|d0BF;>I~q0-zGaZ5ksl9n zwn7ep5LxJYA_``A2HV1Ck`fsxrWh10a7JO%H=7}UNaRCMh4hWct(MEXC2j>GV5^8|#>qggO&Lz+in!2!m|A&@<6L z>sSfC$pnpuEhYY7?V$DE45Q#CgD6WPint@^CC@nOHE|d^fQ&KZQfM`lD zOBj7*#M6eMJ@u0nF-Mh&@Ml;J~nCSM!8laX|*OdeS+aX!X#T~q-=-&e}I+MQmt_HAXe9u z`kXUP)JL@FH4;0&s6h&0AMV`kWH|YUQ(g#XuI-uD%fyYx7)k`eW2DQVfZnmbl&&Tu z=e4+1e}3v`96HP&(*YBjkeUhAMtzw-VCWEUc5PIl* zT?Kr&4>Ee$3YlC&lXsT0Jac*wjG&V;jR_%ZIKNveQO?i5*9roUN1^1qbeWR;cpu#k zgdwNPxyMq-vI594U}MYxt(*_?<|-~FQHPg=l$p@ zdBjJ@-Nc9FdkA6*AF;o$#lB;@TkygMGkYhbk&l}Lyx(^cky`sGk<0tI0bIxIYm6+^ zU#M-Nx~K;FW)iRwIe@nOAP#JdOCrW3FX?((2bdUx$N}^yXv)pprhc^hyl{yw`XC(` zQm$~niX3w~7)=Hau!j&}{9tUzr8oqkl2na-?~JD#96|j(8(xgxsKp0IoN&pd4ZHxa zh6OIww2IV>ndwl`BiA6K1%@|lNo%4c=V#=29)fp~VgdjqE}79yR<*vB;M4~6n$GOi zL$9x8bPQO`^fG(tO^~@ja+HP}{Zk;0<^p{Ec9cN<(aFt586AMnudk*p79YVF7t#Xz z4_`&l@C6F}T12+qL*YgOH?N0c2>)(KD91J)d~`ZLmLxXg>SgrOZ56Wiz|okc7xSyP zhg^PR*9)@N*PIcJDE$WM)3nZInBZ{;O%Cx!f?Ne)cFy?FYT*n_#9?)cC(~EtCuk+n zc6B;FLa`>q1}NfM{nJ6*oN>!2==e1+O!)Ry(CXE#gTwv5$-BxksuYDI7Zmil8KWa11_;1QJcH8rWvF1Vw3L5%kzJg{A}TO--GQj1>0Y|lZFXEt)YF1@ z68X@kDOBeVWSrqi&@e$&KJCXdaf-H}Ga$>V92d!!^CVcbH!OJXM7HRbjkA+~9&&Yf zzWn`h^mc9vTAkfo2WQI(*p!GmQK?~h7pTBd@Yro9Iix>E0cw($BZ-UM71x7SRu5*? z1PMBy=qnV+|HxY3AWKl#*vYPqd(e{|gVw2ThbZZU5gtZv8#Mtc+02sIS3gqDQ?^(B zqi&Cf8p3(Qf`=_zF0w}U6ShfVEmrkj9agLf{2LP^4%IDA^HAD_tmD=~=wbk%f}jPh z+NhhAGV9v8U)Z;GlpuhA%!o`JCDC}YJjKvuo>VXp`$VX}He5z7QpeDK$T<+MhDa$J z-@p{b4L_(d&3@Bf^%IIyoHOln8PB9BOJpqRUh_Oe2L=<*O{%8u9>1<9yeWRs zl^Vls7){NsyeqG@#~MNF$IN?v#j7f$7LOKxd==tm9F8WA5&G@&P>BGbCewBh859Ea zg|Md&W{n8R75f#W${+0SsRJ5Q^#4n$i9=wKd`1Cw>=aH%ag#7YnHox&YaV>FktRIk zJY)=(JQ-lAiYRk@SUW>~5+-rb$_v`g{6lVNqoSxhEKx{b9a_txS=o0MLb}2-G#DtZ zTVb<FP>sE_895@*>Z*lZHrDuh4lDbR{hq?&MTS5#>o$|hfP6a@qzp6Z; zm|TJ58!D8E_K|5EfI5z!mucwXAyx+cVby4o_BWfmzB*M^Y2K;y-OBOQ>ojza-VcHgvKR)uk#ppSp{Qobub{d{4So!Ad&Gco)P@0!#>X2cVV%We{ryC$b?1PH+m_ zD!&3?LL^C?Suzxu$oBy4y|6+eZAU@0g2`Z_2y+nIr7?#gY>$BEmB4&tHz)T)-`90XE=hup9S$)V;yktHcVg080-1adWy=0R z>{G8%K#8@pIAn+9;s>qF5#OLc-Dd_ZrnD@MOFBWQD-&GxY_;-%hSpQVH0 zYFix<{`o0(|8!BT$j`PFeNmSx*K8)k67{2zUVipA_1AWuy706@9k#KxWjE~_-PUI& z$8<^LVWFt`>n6PB$~E19elB&(+Ace5kEJ)Kwr!X5;$&>uzEih$@$RvCKGN-}fozW5 zR#LsbB265-cZTw2N3eAaDKe(l#^2kdy`A)THD|c^tYMl|EXX47xz`AKjB80|W?6l^ zc+uG-?Eep~Ig(VaeB5>eH~a4FAx}OMST&BdGH5A9%47M78b9+%f;H*8$+iAeUvL-a z2SJ4p4cOkW9{|4pfQr$^by}1PSmRDcQUU^ybRL47MxqB>IGeALg3zdoqG|~`09y)a zG>s_lSuvF3x|^i_0n|q_wq&UKX32XCjMhgV{G0_rp%x$ZRyw^y^`gWl4)iJy*7lv> zp~yQhl}QH`6H8V(BipZA#-l$SJun%qs*0-8N<3?cLL{Q3VZvRkGR3*d2Wbo17Ez00 zcjkeU2kz(#{d+G~67QzK@DA?`zT48)ivDw=nl$qG&g$}J`DA8Y5hT~-$k7A;l!;=eOQChr=stzXD?s@*7)_T~b!ff(~8g@@N z@(;pW%BgE0zwvmaZ+?7KsbfUbmz4t#=#YkMg8g~EnB3-A5hchsjoi1F)U2*levAgh z%uadwgLl+86XEPt!tQ3>&zxRK7b{%P1=jn^I)T6y%tIRi<&U_U0 zY}hr7Fy1^+&3q>{{tec-d%`>dLXqYmjhX zNi@CKnbPn`rH4qfq4U8&f&6}U>ka)H)FspDVAFF3^`&2I5BF;GI5q*AdcW>fp zt=wr~bzP2)ypy=Kl*jXV^7}VsotA1>cs0P+T~|zJ51k_@OA930LhXEn zgz7Bt$@k537ie4MU(n*-UeY)mBGE53QW{nDYFpv(t!SlxmY4Y?a~j5E4x0^F?du4T zrMgO_LZ`5@%%;}mBTKc?VRx~Ak8!mAiH$k~NM)sFeuo}ie{QB0RpVWPUGS2dAu4y|>Fq_w=jv zs@opE!7iqo&LkEOF*wa|Hk{*Bub>tA!vA*zhc11VfA%&Xy;1(zDbW@wZEk$vgTjc9 z^_88Z`Sz=Sy4Y=cuCZ_s%dSM#ph4Mxq1!zJe~sM#Uk5^s$DW9CFG0%=PsT=NwRp#* z%!f+~U{O#4DyB4mVleMH>bACNG>9x8x%?unz5SsmX9XeIK9Me9^xtPdN zo%CoVNKxvGuHn{BHB@9Izu(l&Rhz7Nc%&k0loYLsPvBSIW`@{*CDd)c(QESvWrm?L z$kFkW3E~NDAp{ML4A5z4>a59{iFcyTxQ0|~_5)FhtYUl+?;Bn73m3IyM{8Vrt-m(J zRpZi2S2G1S8WrS!+ixG88Xgn&3DU;A_u{LHCgdr-3BqB|eL+p}2*4=P^YMPXZxB1E zYsed)TZ^+t+=z*5#Ah{LZlD6QWwX`k6TcMHkEM@@Q}=Xbx_S0H#o3vnAyLYfUMaG~ zVXrt7XelmT5vP6FP{VjT_}*73&CDj}3_2zs60vAcvcat|OnpUzi5bH_yYWo#Iti5< zD6(Yvhml>U1FVUu`EpvfGx(%w^ZxUdMdW`vZXKo9<`zZx$A1M&bXnJu9W9z)K;|)c zDlB0vrB{$L?ser{WpRJGus1<8q>7UB~WX)Zq~fDx3}P zW+G*&6O+s=2OQMTr(cbzW)a0r)J}$X+v;QqItNJLMqIvtPR%G8V8Z>@Wcvyl-mf)K z*?x8$qqA$m(hJv;QZB2iD6c!Of0|m&%ydD8pAPTFny)OvPMkGq9bEa28JL;c6Pwg^ zc8yn6+*dB>jZN$E*^DnQ?*_@+a)#I3+M^7GrB_;6S-US&GRnj57&gnUujg;*Db8j-9DAQJD=wIw&*Wj$HrhMD1AWP-6O!&m|t) zr%n>Z6Ai-hrti&);(4G}M*9OU4qnleu;Lmq8D9Slsy4fbgrl5dU`wy>9r|Pb_wA)k+Ba5|omCaYF z((!W&lN2W`WXkIHY1}lN>Sp_2)%jsh;;2}b>BqyD>^#UvIUM)pGEbfS|Xz4-))-QC)L{W`GIAs*nO zE*UgSudhiq^eVGD3ZfdYf*LJ;_VBv?QdflOx}iIj;CLDB8LaIyErebQaS(}G6&j<^ z7R70-X}lU!TM}Y!JYZX2P@z|{{rIIccCEpr)%Wd$+0w zDMEgLC81pt*|&XDxji4+V-rA#<_q?|@Arva`u{{r8NPj@f88?fe_y%8e7Vy7CsNAv z>regrZ05u7E3B?U% zA53C9hPnLkK0aBmnk@UEc-R3+pXA$ zuKt0qi1+_Abv=pkiqFfd^`p6B;lSFU=B%2dd9=w4!La4bp=Oe0G6VGNj_#*j=-AU) z8?OZ8FXl1#wDYuOZ8x6(+mzg7TAtP&8YhF%;B+6E0+m_?aB+1_Hm2DPHnwxU*&O=bj?upL<~YcOgrMRjEe>p``ILrQf4IXlxAq z6R*EWL;dnBTo+TKzv^$L_Dj2a=POq08eY_LJO=TngI*m$ug*hmh1~qT2hmUW%|D=4#h+~B;>5V*-GZv|Lpzza=h2}YW^+-*db>=SVglPUZh^$%GOwWF%^ws zS^ar^Ge=|P%5=_RODW9ao5i*@G`lr7bFrZuX8A+EbQ+R#9eCChWN!yPjeorF5v@5_ z{suw}RCuGLxSD!W2?PtHdgNpUQCY26ekq)_uCMHQ@9U#AwU={ac9GH{Zz;cWU|5_| z8E1OYWCqwE+wUi3t{`LwC&Mrzxi2ezC@fV9qrhpwr7gJJV$-Q&PIE}S7)F7S+_JNR z>68{oE-pg!2H5v_gNj0SQ zzpl5>KW=)$WMbW=YC&2};CCWWf!U|lnr7oyajB?aV$NEF_+Lt`$KE0n@ zQL&qxwtP&wqmhzVCeFKDQ}eI+3e1~T7+vQ|lD}6W_{y-=pmE^wZ|A#aVke>{Jz6}i zIIr%K7%sNTCxeGCfP}+2-aVyUkmUWwFnyuS9GWlrKDB^}?ENew^YDuv z=kDA~hV2EHd!@$V3!rEO+rOtOK0an7I=csv0FUQzL_Dt}%!UthCW2cHd=wA*5_a9-V6bGkx&Y9$Lr?XJ|Xs?I?@w|&Nv*dTmk0m z%K-dV*K;G6y{9YFN)R>-6(ytons`F=524pW&?F`$NZ=mE>8rL(MrXOAPb-7&J@7V+ zFB)*~MR2tebJ{O3vhsUl!+W&2nkck5B@yKu^+hTssSrwp;M~)50%&n-#DV(keO>8- zVK;wYlnwnNp8A9cc0bUp{=O)PeKq`ZU<7-pnuYZU!Lo~znMB~224%il)ja%8O*!&I zQ+w;U6hHrPN?mUp6=a?2 z8$#x?t^`?BGoKNNw~vYNPSc7unf%Z{oLXDQrTY7$sCBh*R4{&_iD4bJJC_~lMC-00 z*t01@Kg@(tS>w{V^34?HQnq$J{b?Lx2>U5@nqN4bhL8fj{XLWMGT}Tap=2?2t;;We`4QxZ&47n)4iJbbe1`DcJ5 zM-s3tMtzU9?R6i^w+0CL!D&hU%>twT^e64vVz>Cy8^0zL-})(pWAnLv?|*d7Uq+PP z{m7wu`Ei)3QLlEI?}M#t{n@g}Oh^C7;~Ifalcd$-@_=vnCjGjGJGV0nlS=V65K7Ew zc1QmiE}F~znfB$)+g9cq-I;PX8#>h3vlBILuCV!$ZhYBd zH)ceQ5L8oWL%K4g%(gbuKbEdwvYX&+M7-fxA|HHK{q)7hX04@yL6dHtS$A;zpw7vT zO*@19{4bNkv-^1{LgW!*>ma{UV0or@LDNUa^EKYzHV6ggEg{b6JA>}|p)Wqb~9 z?+84b+kHj8JVAAHr@(%ZY@0e}|%%Rf8l z7?>^e&xBoh+v>1HX9thd{~ZaIlm&4(sNq=sY&w$Ctnu%%kH$d6>!UA}x9!t=kL-&#v_K zeA#QzdB1K+YIie+Ov(+#;l8}*7{-Z(aVE5jL>%aK+R@FhjBHdzDGo2i9gh5!n^2NX!u)v?dtKrRLxaiKR(;p@K2}x zS-0+Qp5%f6=1#j|lA!i+Z4$=NE7p)7ZJ7J%chJ92yeVxQ!eghQOkkr7iSLbz>*dAA z^*bkilgIYQ^J4pYV|m@)3=a>cmv;y;JiWbG9-b`YdNRc>0lSW8R|W=4V05j7!jx%O zmPRowOE*&u5<-gP1jbrE*81&TA{D$|C$dkz5kK^-1QE-1ozczH)Vaa%tRacLv8+m+ z^hX?>M97^1ntA>U{hVMhx3v6R7XFG}mA<0(>W7EQBQKM1RZ}NcUH#yYu!UJjB`ILk zuEt!M5XEGOtP&O#Wub_t0{NF3cBZ55ws#`7+;KZ8?^`>o-Bx)6Wo#3 zg^q3d4=R|LoYzGpH=N|pI%#gVl5jSB8u}O@oL_W+$Auo zRzjX?g_N7EiXb*Xg(HqSe3D4SFJwa_q_!lK*LMrn4YJ5e(mz7Z$s?do`rbWDK}1Us z@kRAJq~gZqcq0ZK5}t;{nW>IXRz;geG9ajEZG6}z;9`GKBiVH!yHDeJu5s_aRabY%Sh@8Ag5{K zmi+jhL~2$@g_s}0BO^=5l$_w)GO|AwpXu8)3&UlmPXr}&^jB-~AsAU46LNANOdx=f zA=sSE3&CLg=VV9cNeWyv9$vU-b;CG(a_~t{&HY7{t4`k@NsN+HgkAb|28}))q)1VR zL4%NacK~yxtHv(ZVac54&Be$6=k8VsIBA|7VQdl{{x(GRx3@ndMBc5FFl65$k`)XNG0nU5@<_Yzy|;E@@cpGeC!%S|S~6ENB| z@?AknGrAzqFXdu?cArmZI#Ux5!ADR-&9DY-@-yO^PxUHdF~6#_6VC*u$~ts&kcGR0 zz(ZqMvNe-!(}yh7muDOf=OoecP(hh$;ll{YS(>=dpg{wEhKNrpXw%Jt)8fh-@r=UY zG&Tf%F(d}Sip6t;yRqY&lEWzi$MLWdP+MzB`9dtt3c>w z`KuXbBlNOC###i2a3g8Q7u~_BEw(~Rq3Dy1wlfx)9X>L<*T9vE%Z)wfp&CU>&8(bi zJFLR(cGPdM@w!sk>x4qk)#B!l5vODP9Nqn}*)idPz_n<*Hhtq704l-l*Q|)K$q(a8 znNIaE+Rw#MY<(LeL6Fag0Z#X#nEF;GQ9+JMgP`vr2*xFqLS&{+x$QFu+BMBjZ4~c9 zl$9v_|JV#dL8S)oPZ$7o?Rl%+`)AsL&h9&g&CZ6+z&*v<4sF!-7t-u_Vuda@DL=~L zv({TheW7;H^#LpN;(dH=kZS#K>i25HDz*+X!cAI6)RKk2^(cL?P;u%xFY5 zBZ~26@l!~Fto%a%b8#5@4Zrgh~2sNOjBc~#r*8*uF#rWNi$ zo~~$5IG8T{X4wXwb69EF%SJFYoaM)=_<6_(~laq?R*b4JO=F(uzwx;MM6hm?KBW;a_1=Q zcC+ovSp_XCmArLDp8(Z$#<|>hCDd(kr3Ic%Mt}ZX11z7|HE^8R{p9{Kh27=Rycn@( zhfN;3XbBuxGnR8g02;12btd8yn(D|dXlF-thWq$mm)7}_e>Pe+*5zM3>Wq`q6_4kQ zz($gh4!J9x313;dKEsUhL!@skPmr9%d++rsBs`ZsKlVhdf+4>%uX!w;mPmU#Q^wm} z0@w9D0&rq69qZxYkDXo|4R^oa1`O@=y+Z5{RKmu3d52&nVm1yKy$RKt8bJQ5fEazs zy$Fn_riqytuRI7Aii;I1FcCdRthoqd^W@9dSnk6jN~NKAPj41MsSG9o)2ZimJk?#f zUZbw85kD-;b4Zd4h?UXP3jF@v#0&{wV4fyc!r2LGQ6yLtJf@gg3IcGOu{i#$H$}f! znBAbU1w~_8Qmfyktr>_X^=idf?SPQHSX#iY6JAFF<8`J+vh^kTx_~a> zTTO#THtnqQJ~6d~c~sXdFX6BE1( zp?F9*GqWs=K*`1X6hxm4!_F!T4J!9!<2t*7NWN1(6-4A7{M0MWmUz4%1N~GSU;J%) z8rTw}en+D8BYyr}~=o6D8s*8T(A3}T;kkh9o1YJP> z+g56bqbsW$wH>2agykcs}genPH?s)}dLD2ZKWq8~#{=o6D+!|4trsZ(J6 z4iUU^f`j5XVkXt_X)|dhQL`(|<7U?&wwj{=)8?pyzUIPi2deX+^~v$g`UF_j-S{DW zdb~!T8ebNA5EgNf%vUkrG+&K;*z_x9eqpxs{%-1w-ru1Y66jA)^jM%c4;6%y6MsvN z1%iDC#1;??N1ZZW^YUBK)%xa8UG5BB7T; z)?*bvP-k(DwGzL(CJAxRwuFnbEg;*rF)mqBGk79NluFX@7IcRJeOi|2Q?fx9aHsRB z@>>YdFD^J-H)-4zq}JfEdH68eJbZ9)%%4oR?O3l33t8w$d+I#6r1}m|Bz>3$-Ql4= zCFF2Y;**Z2%-_75@I{>dI6BrjNJFOE&FuJduQn=C*0)jNUd)0OP}WNfV&;lvT> zZp3V#3L;P`$Gv9h|Cg*|FU<4y0c%AxMikqLXM`22ANh{JmuG)1QId{kH&05)VjORN zwXgr`(BHT6wvB&exBLsIPJ-Ng>Z(Vv`y3wO^v}R$sOC~iZr&Lc7hNdN26caV1geQE zc-=$44Y2h8@mxf}4g7jWwAKP{Qf?jYWFnv1!L;vo6W8?J4k)c3x8q+v?}X!tL^m{w z-2*VV(?2qA)STu`EC^lrJnKgpBGQH`<(J!(@cM~IO~DJnsW0wr^|6#*|siCbP>N{C+OiJZ<_8^D(xfTRF9JXgHJz zA{{j;dcph0aPSn}9X@#IqNMM{X&4Ke=t@>KCdb-Q)6vG!i5X)UQye+iy|w=v_9Bo3PtLsJyv?>4TW5V`e@1 zB26rfneAkj|u@pl6vQ@UpcG)4NQYJfPmy}C|R7w@q z7mk&@+cL1A}ZLC9~P;k(=9N&Dv6lNbKuE8n?F6F=I|UFhz^vzF)E*0;eO?sAX& zJm4X%Jfe-q{F-Pt%w;ERA_w(4IO~5i`1k+4c-Mcn#NDqwdrKKl{A#RucJ*OLb>3j- z_w8j-FnanF-SYpxh8i*o#0_CQNn`ADDggt)(0DfRz%hZ_#exHvtVmnc0}Z*Ns+DlJ zs&*h*CB~QYj+9iPjajbk3h@wSFRoThFZL;T2ty&w@7VEQ$UrWnrm=8Wt=G&wU>k@X zkVaXEV&NrNpFv0}t=@?HBboHF7BP9bk|GAO5CcmaJNzC&xjc~*l{K)+X65lR<&_mo zXTj_ME+TVXaK+4p$kf`^R-}>nub!Ouyw7HUPvi=*@B^wHPMK7kk|H?p5{O;Cp{AP}9@{EWEsSpdr2FFJ5u`OJ}zL_-t{2 zpfOwB0#J(>4AHchfdP-9l$Y_KVqFv@?9}ks6)B}_K#G0|k`N|`OP|HSroqL?CY zWl_XI-SKgim}^o2`C#neCp%GONq3wru9RYDn-%4fX<)@;x=e)4`Ed&jt+W$4o$FnW zpu^x*Vq#TPcz)E&inwHUPHFFt2{xpagt?)%X+#;!FF9 z9Ys&RcW^Pvz7;7Me>`2Y+ulJJtv2NtSOOk>{hgC?dvC_n366ijn(0pW?5VQ2AO==t zU+8Amp4bd|3|X-$`8)Yoljc(o^7wVuNlS#+RrzX6Mpy~SSJ($}NdlskYWrW1Zvy~( z`zhgBy^^z-NcVJ|`lDaU%oDX)h`zkh0&@|2eX6(>`#r$02v2dPc3 zQiOMqTAGxCowI@&Ijt$!^C&%2hU`3Gi9As4bc6YcyON%$g^yFKjtWqb9Ozevj4h1KVHW=_==&KY87K@!4W0>VCie{24DSlBMLi>LBbHIVQHRlr(UJI4(lYZh?ls;r zzAt|)KUZ{2Jxyt5=4PR0OJ<*{FEw3rFLSzio_VMF54xtclcgrZ$r5LoY*}SFV!3Pi z$oR`NIBjy;|1`&jU?a4p*ah0f+7;Tz+7~!vIMg{zI~=CIO}%rpbPRNiaSC&;a2|Bt zc44_lT-se0UG8UJ=X71&T`8`auJx|7t{>-q$rI0{p7|vIyrAXj>&9}Ex^A&*t5lR-t+y+Z&l5u>Y9-csMq;S`&@1O+@a~` z=dgo?`)1z3PFEA^4D#Q2kKv z(69Rb>o*Gv4&#QEh7E*mql{7hC=Tic`UD1p4Z~i+-NJ7Y$_e`s^~4>LV#JnPH&(u&_AX>V;pDv&3wtyWZAJoSX@>vOUW8! zZL#jM-mrDpXV^q`3R}(|W^c3av0rfD92X9eBjPAIW1KzC=bX3EhS6U0e|cl3VvS=P z;zqe!JP+P1@3(mGgs?<{z)!#t6bZTnOM=^iXGt1K*~!Y}bIBhG4TM3$3}L_UW(p=H zF{L!6H)S#9u}EJ;5T%J4L>EMNMSr9^r$(k`r+$$7Dh-(ylqO88OWRKSB^{FPn65~_ zn_-?I$Y{^_JhLP7m#nU=rK}IKzRy0MZJr&F&B_*MH)UVV{ym3~b2XPIE|auK{>@v> z|4>>l{Z*DByIm+L+$c&dPA;x5u`c14Ld%YorIy=Pm{f2pE2?BwTUAfxcJem)zlvx@ zy<%E%Me(KLtx{j?Us^r#bNQ%Yyx~P-T$4%Dqh`D2w&s6YX>HT(KJC{# zl%2#*L1%GiSLcP!Yn@+ozU+c@*>?GNQM*K46iAw<>XUG~r1#L0H zew`OFh_Agkuwy79UVaM*jyd8oRjG1h zs!D8uFSXjl!dGMrZ-Jv;WxuBislR(#QVx4J9Qt~-XC(s+xAv-9c$=QFfncbP17$-F zv$Twd>LxHem3{Bi?S#f=K? z%V0~6N)I5RdJ^X68Z;nll@!Cs=X6hcR3zY>xPUki#1X$&AwgBaw# zRl&KNgoBBpTLa`t0LLt3gMkh&VLV`rJ)6P_V$3+SFAuNTWrlM6%4B|$SAqw<*KXlp z;JeYV8V8+u__3CRYuz=(nCrx;*A4;uL>H|AupC}M%;;?>#6sInuMaBf(8f$a6F|QO zr%8?mof$UjaAIgb1+a(#Ml6ANPFN9R00wV@>;XWu#S#oqxIOVU0K4Ufj)8LlLO+m( z&G~8Ijyl#Ohuqf{S1n&*suhZ^ma3E}Ew4f-ieNYdf>T7+j`T>9JTQ;RW}8fX#x)^1 z$`qA<1cjTzU2P9oMJ)H}I0IrAeA4Idk3HG*ZQkeZ^df%!Z}=ls@Ons;;Ubc83oog8 zUhqHlfF6dYa5o(v9D}G%0R;=e)H(XppS4{ZU`Fo=(@OtXIiC&EV<8lhki$1Li# z*o0@Yxz5{Y8u4tt6a-LNL2jl!dlT%-u8`%KazivQgIcT{8C4q9Ebb9*Q(>zIYT)S! z-`WfxTTUit3zx-uU84_jt@gVAIKBc3#@M~ec%sH ztB}I3U&p_{RZOg`dtTt1&=E$o@u@U#+lgz7u4^k93v9@)P{=H|nI>uZxT_KbXJaA1Ls0Rhi-O+)360Q za2h<>$ic1)yOt3uem`N#^L)R-&=krFJXMuIaRCxURe^{+&ESZseAo+(?`bYG%q&o< z6650_u+pPFSNdM$8RlG(-e~kEP+=0K%;{pK{Ifd}uGR&2Tg^<2b*jOojQ;Ei4GLc4IO<;$iat|Bx;4S1qq@h54?GI9f@E&XpblMsIr= zoerc>apCV^U~m2U^SkkOEa+ktwoKJQutk17Z{Io!Yttm%*!MM6MMoUBYQ<40k%o=ZCdB5`u7U)WZUOMK(# znXybj7A5Ft zbl)gAvuseWH%gfS5Qtge0i*?An!oNCcYo?d+&1}5{ zSad^-Dx2e7`EF}8n4G`yj9dbSX&bO>jNDa+s=t zpRrl6vb89bu2b3;$D2&%p36;d=3OV_yG*pEoz{C1Rt+3RgTSzqpPHKh0S*KR^MbCE zdGs-KL_8>hXb1{UEtsj)D8sk*jCx%=!(Om}mq%-zD!)X1mn|{0vkujRBdqhv(}@Nz zyVk6sriky1s-j#t9M27oB{sN5St{MObL*%movh}~U^(05gH&2?RN0MpX)^FF;5_Wa zS=fBm;`J^m4S$DqpC$_l7rd&>)FkB1cP6mWh7~`uMhFQ53}-xHYUNcj@>CrhbBtN& z_IRE#ku0R0Nho)rtI(EZC#8MNd-+j5OMsuv=RGZ<^&48cBhR(T>ZXw5?bOO@smkMr zY7MEw(F=$~eF75KY~5hlBM)6lgMu5j=YBSObFklmja%I~wB{=}rC&|=4Xd{W&_xiu zKcBgTLLv0}X&jUc@uOLqLjqfILhQ0{;l6b}u@d;cMKRtMS!r8b}f^bAOfl9du zKdnGuf+GL~7!V+_C{waJDv!cyL|z}lc?Y}yz{(5Q^TJBuBMtKLg|l|MT!5=`81zde z{CtWOXk>9H?F%2UQ+?!Bf@iSu(YNZ13vA7ptfCZnez2~_@Tgf+R%NcS$`0?U5*L`8 zG0N@yC_siFUy}=k=-G_{xxaoRzFH9O=UTH7GLb_K!#thQ$lw7$>BSgFBrjyacB7mF zLQwTQjIR-8C>M;@0YVErG-jKcP1WjX)cK{Sb`Ikr~5 z$WyUAT7t$qE6V3&hBnR>z5xr9xn0&|cJrglQC4`y@W)}C5ogdAEH7WL7xI%mjd5taekh`dw9Ij1cR#Dol&FXf;H&B z1c4?~F`qA?I`QQlO}->6NE2PxhR|_M+tJ)`6WkIbk2(Vq38eL7B5;?WDy}r?L4H6b z)2b?xq@tR#!m5e}s0pR*`xsTQrlT6M&Rzovh=}u-+lmaoIFmO7ga#!a+^T>82X;KT zz&K6uMKlHg-ys4XB6)=dH9B`HRKaO5rvV5sAVADIzD`8GGlVJ$NU3&|Z|xtFk_cYE zpK_6#k@VKos`fU)jP7W>t;2=3YZ9=Q#OtU-C;eQr0%Bf)tzD1^72^Tf0d56- zqHAxE02|rZ1BfpO`nLGV-}?dtzd*y{52hAx44FI;v_>7SA`ywVWOQ{v8R%?l+Gi>{`rL(JNKsYnp`m=!r>f3h82!#bX$uTSjHy;gZX{E92?$R3% z)iky=aN2u^hTl0ocp@=i$ys+qd}WV~VFO;+MQ}DfS9L%&ARvxknH3IlYblD0(Co-S z)dB4Xi@bQvdrXd}i8CXpja9XqZy5YIb1D&3HdiHbWtL4dTGC?40@YfROs_lvUC(gw)Zdb;_hUfk;oh`{i1CfCu8f}dgJE~_s zb76pVRK{hs#EPtO-2GPdHROCXuu;O9o$2SQot?I}O+$0SP7|(;7uo!WlW?i(MyE7L z=e+BB_3o5tNL4Y|mrxRhg~T9xN31i6MRA)U3O0K&sp?!j)1$+X%X%$eu?b;;+coVncooN2^XK|onR9-p%a}2wTcvZ zfhiYC<;vw7j>+c@+0dYc5R_#BI3(!ve*attb4*uD5ju5j$RDO)&kt8H-`eQepZ9uv zu~aM+BEXL`k^Fp-iT09v1L^g6rc$fC1sn*kfQ{UM>AZhl^T>*H9I1zaG!qj+L!%tq zmttLTxGW~5HQ#77^ljqmTqT}N=ZgRRFJDjfadPUbeUW%1NYLB>HYM@HJSM?nfkuCK zR+mumH=l|&qi5Sl5v@1`e8Z=ZNUy}BU!Un%g{|7FE6XV3s_E+kB0$P!_{WaVLQhK^vBFyq^9f-F$%P#)skkXascL_rcReP%=J74v zSd2OgcEu^+xScgiL_`e=fq@g%t1qex{WyINFS%i_BD%%ADeUo$V(X>Etlp)#yfQ{t zHVjbym1SVoH_4S=>kO`M=r-J3?g&D&I0X?EMM}1*P*!P13ks+AteE>7rq-Snb-~pP zs$zGpe*nYWezYlA6gDwW<23YFO(A9&NB#nvekx`BlvQS_r(avQjE`C_v~iBhD|lce z_x&K`6*~+{T$!l+l)5^$=QXYyrH*B?8-nAh%wg3HWum>KJcF}P?zfytI~IpE!j}Z` zo+wak%vu0%0A>JH;D*F)l5rk*N6KMHwu0u)37{{OF5OKw7uPziPxou#I8YNT5v*`O z0@vGMWcM(ds8-$f#qVYFdp77kyVt6jU)l3-1>no9DFy($oRe{MN-F|6kNH9B$vFmUsQx-%e^Q5EpXGa z_*$?M+p!VLttS^wE*d&9ji&j-_~sLuNr*l=czV$5WgsQ1^+JyXMrwoQduSNH!C7&# zN@rHzO2#Oj+j~S0zrv=Zqb)_2@iEyC`Q_*vDw!^OH3#?8*Mufewx|PRC{|TokO&Te zbZgnMsTsEv3_T?r8)H{g>?E3)-b&_5T65Vrh)I~JHHR?~Ag>6c2~Sv0 z5j+AG7)Uhqbf9IdhGtfrJgJOk#N8|(=I3q3XN&o7v9Mk5Ufq$H_TRh=6-i}QnFdB{ z!8KJ>R6YOt01RQ2)1c@7R#Fae@4u&Fl}UjpI9V}pDyL#6ia6tPbDNMPb;oj{s7UJW zWb=^@A^e!*g}KgqubJ`&!ih*AS&V`eaWcbQ6wz~KbBQE%bl((xeQj}yRskx|4;84S zB2}a_@xXgu*~8CWPnGMw^)i}1CW3j{wO$pI69q^LDHJDBanp+Qq}teRt-b^Eh29U& zKE{)oLREt77yky*#auAwW;nWk1LRd?&Uvj&S$(~#!1JL?%kLiUz~Y&G2hL#wh%=x) zRz$g9DIIS*EW1j5kov?;_Hi`P2hx`~EIl)w#}+OG)!T;J4x{3%GPxbMeQ%3*=Qb$F zuGREIXEcKZsFQKRH2r!5bn@ha5I5em41xx_8$OA9bH%{+fjx1mu1j~WL$*)?$Lp#A zn-8n)yqJ;B;JfSvhvft)R1m>MJTAr8aXQ)51^Ic{5^T*&fM?!Vu8w#F-23QT`q$=g zuAI=5(h|g+%<0^?JN_->{dD@dRc?-_5VXllV4BdJPWLZqZvH3T*Jf{te9%jPXSSAc zS6TJD!3xzrJG74s^Cs}ckK<{08bn$%6`AX~%{Ush=^5o<*(qgOH1~?z#D)Rx%a(&k zBPvK~WPY4fy-3i-QoUoBxA!l14vdbDjbD57=mBpKKI!HS*Dsl(lV@kZdo>)w+Sbt* z1-WjF;A}&RDf6dru}o|q8pmOrLFhY$J-%6~5IZ~t8LL^5WeSmLp+;>C&yrn+sQ4s3;mVG0yFknG;O~0<96D+Zj zvzBVQMFVkTG5PLvtjl;8_MJSzYs6T~^StAuHw`wyiK$0dM+I4t22SLBoZ$xHND;` zAb$T1t&XYG%A3BtCSMUNCbU5?>&Iw5p0aG_?I9%kl4{Lnd-_+hEkc}xnBe@nuie&@ zL$VfqJhvLq>2sRh=PB8b+n<$ALuKM+nvIjb@PEQ#duc;mzn09bv>To0jz&+E-g$Oxp@_+4^5376>Hsn+g0PCptFrIOgNF9_T{vem5C% z29)67*bP36l>(Ob7}-hBcYrLi-!!UV;t>Slz98lw61RV!Sf*UghX?B5tA|*XK=@S< zr6g5Up?Dc<5}xCD9(Y4Qa2V;fU~2`@S{>fsqei-6jbTR#RN9djSm$VqH{BNU#2i?X z43W#!NJ}rhfoa<`i`Ehha!x5lx*t6^mm`se4AG$Vw2M^GdVtczK@C>C_}J{G`RS)8Hunw zo3cRe!N$SOc+20MOvXo2piE)8djj^7unWzG1he`Ww5{*S=lcgxN|imUGwhHq2^jTC zpNxEjMxqG|L{xUdH*UiS9dX;P^Gd5+osw-H65gY&8iwN^nT_6kmxtWvNT&v%N@(R& zXs3w?-h%azgDk8^tO>c3bBGYixRRVwL)a)0(r6)gsdeAB)!O%H)il~|29XeSF;;01 zupw?oRyT#B3yH_1Ng^JFtnp)F-0+_2c2`=z?y**}#I&K)Y7OR4z@{FrExxGJO=OQP zQ6iHq{2dqx!LrUrLS=u#*a7d}CFbHe?RyjhJz}gEDhw112WWoqe7vPXnwO5Y_DmVT zGqo-hc!1IFA;OMM&T3cq@}(zFW09>b<0tfv%I71(Pz&4K0tvyYeqM4KRIWc$(|aZx z^iJpZYwfwL$}AtsiOD@$ElZw)!>`ztUTLF4gov2~kTT?)D}&U|2jLuMOjuAZFb8uI zbUL96N_`&1BSuUc5zjlz&SJgYP{&=yf+iQ@jA)!9dJP7EAzh-pJXU!4+ln$67}SZWF{x7SI{`SjbQ0)$5Trqhe8%jS!WO47M-z%r4<&NuuLH+ok`_c}`>Hj#rj0^Z2YG5FR z!!M{-dlPtC8+Ysku+2Ibm}J65jW86)!=p-f^7+GhPvDuDA7^70#0HyJo(%H~h&!o{p zYeBg~zBf#WLFlikk6fy|Zq1Hu0GUsFWb}qJy`B$AIBU1cdVs@&UY0bNsStsua6o`6 zJmPH|s5;SkSwNPlnwlwyRO?=0fSe$R_HL{q+$BI>A=y^ah*I0Z;7n;gR!RQig(eA@ zDj~n`GY{&z=`r&G`Ta)(?wV)e|0$rU>=^>~Jji!H{WKPt#D%o;CFs zcR<`bHfeCvQRITD+?C(TuD(tBfFkKOyRZU0iMHP7Pl1jS5pK#q_KV4zR6?mLoxDRY z5ROTfc9vN-9caH_2h6z2$c${}bm(~v6J3;KK_btGLDKeALPC%9jx>S)P2t^EJSD!X z`XE?NyYv6;-D6JpH;)5NG>(a9x$Zv;BWYQHA`^{fFc|pFLSHj*lx=T|F@`WyZOe2l zups7YbmYFV_;b-InusM)kVW9CMLz3q+tt6;B`Lp4bV772!cJLBC-z06Ga6F~E67a#xEOp|Fx$5{XO*6wDd z)yA#69o_xIoDV(SGgE^j#l-_d=O;P_afWyQGdXneJ6${$w6e)ASHWT`1mStqLlf-~ zqbYtjOf}m7!r6>w)l!7XUYN%KtC5eX{?sSA_`Qdb%EWs;! zcZ8uODDud4S`KeV{<)AseW-*(? zaN#B!ujHzGbLw;|N}gRA^pFuyg^32ug;Ed0RU8mFJF2@v&_T}|O-mStDI?r5x5;;) zU6=b9Pq|9>i+-!huI#VAdM;4~+BnvK!AK;`y6ZjirH z2%sQ*`w7|?g%V7(b3yQN?kWw1rQ{5lq}X_R@Y7dv9t1+QQbn;baml+wV+7QAg2(>q zN^ZEqG9kXugRSS%=X#etqJ6m0N<2GHHWV4No-~205RTo8mQm5846yG%T^v0tn`rTJ zxvx^~>vDp0#(()m>4@*Le|*5K=|%9u6{)n%1k2`3d?mZ%4q0|WNOua?%eC&3jKxMW zC@X4a{Spg_DR`JJ91@V2eTfVzmuL0tnJ-`a5-2>P>^1fj7#DG~-(ocDI}S(x35Dnp zP1Q>=U-Q)Snxk0PjR#RA&+uE1egIaMLEkB|aoyQWse9R`(AR#OCj7PIA+Gxk(}|4D z?Cs{~-=HCr__J%X?P}sywZin}Wh>CLmzH)~!xRcSHu&j=O>bv5Rwmbuc3#e4(C~*r zYc|)v(#+FDaz5UsP2T?Os&;_cd!7o@ZK!U07RIJC2Io|_c0KL5gT1wxzB_*#3UCCXNnr(q`??A?n? z$UKXH{qPv6ol+O=erY+iq$rOTP3X=~lq?YhJH9Weo+h1m=GTzA2hNv|o?ZB{fiNr; zHLMkeN&>_1Jjb^TtRlY&9mb`s{h&?>wRvGXj@6zD4A$D2;-wb&3kBY{EY}Z3yQ9Ov z_*H6!IgfHQU<+_Z{4OCUO&2L%f!G~(;v?ZT0GB6EMb+7IftY; z&A{-Aw{2D;x^V8C%ftJg?=-!@Gh`DT(~z}6R52&)tjY7ZA0>Zgv8LG~heFjZr}(|E zc&^(RY3C_r+`^)eZWqCHg^eFv*1Lh6vF01Nqa$K&$?*1;m9*hyJpoBX#)ML0kjd<| z%p-yw_>%!FzvoOZr3tQ<=Qt^^(v;T%a@5}i)%csvST~zy4bm5M5C#=yEFXkdqwU=D@eVi6^V%fcmd=OvI6hf&vFnX7i( zA734Zh{`0WQLsB;T^LmQjG!#i`T64aqWaORQ8spNj;c?6(5ebAw|K6qzMOv_)*S+VFg^liW?E^T>=NCXPc(SL3hWAw9mz za-7S%?UlM&>4bhLskY}Pgtq3_uCGiZ%T1dKCLwIg%_BLIGcFw85Q^wPKFm^Wovc>| z)PbK{c>USLsPS#Xq{?}vbg<>mi!4u)qLbl{hu!JG!z5vHQI<{r_7ywOLAR8>DAQYh zq{2NH>1Whjrukw8H3w7#^CQD2k_5$^vv9Hfs+hQ6{NQPJz|oDii2;4oNv3oA(JRA4 zsh!g_G&d|4jhAyiq%;_ZQR1&G<1_>ym!5v7r|I}Hji^$d&JK%Jd2^D;8lBY#lWJDf z?x;?HD)6f(Wcsa&hSWmCY6K7QY#_Y6q8wg!57ZCLeWjdOQv z@${$Lw=Jk=W8$6)w(1#v(`-7-ZAMe(e#!1-OcW<_6RW*TB`@O<(uL90SJCsetz;t! z1H@1@pwb_D7oWr1Q6mW)Z?K@xKGd)@`qI;7uZ|D@(}j+Aayh40+U@oY-8^0H8>9pq z;nt(v$V?8XaMqF%T$iGC_qIPtCxcWym_jF-u6)7sI##-jPiG8LDHe+v$53#d2I^9? zVF@xx%2v*r4`!#76J*npSE^)EcA?}LhGjdJ1v;;b_F5oLimzt z(3vU@*bI&B*o;#lf^@TyD5~thY77vk!F;9w(j-i&Aa$*9o&=*wBAP~eYVb5Tk~bDA zRm{m8J*SnY^XXz0OJ?92L0=-Jc2B67$(8i_U_+LQBF1|_ez@lU^r@X?ZpPYpU#8IH z6*Rn8#^Hw6J9PqIv{!4Zsi+*Pzl?WldsH$icu(?4DCFChs=GtBeCy!J_P-968t07d zU^A^+XYYuj#xp)YC%&V1<^KP5UO8AW$|bYEqeaqLgWq4Q*eMGKN@_GO0))y>oj{X} zEcK!2T+Ht+Z`$Pw?7I>^l-9yk1y4>n?8bmrZQyl9c|k!5-v(Fb?dI=ByM1+<7CncrNRv+bP1yrCRD`}?h_&^F%Pd)aKf zD=rzChi(%N+|tjS7@pAzq>}g5bS;!ECj-)^;*^p}^l{oIyKRnhJVLLC*4co<3er|p z_$ILM3^(9b=;#`o{01Cjd1(^2?FuZPaUM_;=vLsC^-v_$;k&DGiSccCZ@kW-V%JO( z4w+iPDT+~u{EG~8IDJ7}IrFAgR2}StF0W;JDjAxY=9WEHp-87u>Hh1}nFgCqV*IYj z-fI?ZesytZnS)Kr?8X`l=+!-x8(&4F3ubz&nMUjdo00N%#QjT8AH3n=p5c)2V0 z!=%ct98silrKUh5y*j~fG5nODUOJP+eiNU9s^MTl^!#q!Fe+oRk*-lhQq;J9oflfK zW@u(5xrNFam2NqDDrKsCe!ZoZe;AaBOnVeMjHl_P0mPw3|t9dALpK!QN(^-XFE?*2!HpgggD6(Ecz9z`Z%xdXW zxtPvXMW781N!!u#92L`MseCSzDU?c7C$jP05;caKyyt@vbktLv(bF>%tR&1NgKA>$ z(44&-nEBX$|MAPwaHDc~S*4iXSB!Co}LqENg#nLOQvncY^7GCd09o3 zQi+mKLTm+7Nl45@;5~5)-qLE#c&?L|r)7VD_{ZUyqLc>U-L$j|EOk{5tydePr=3C< zdd=*xP35|dC9~&BnD0e(QOG$?D&;6-td=c}YvnZ!goyWAtq6G(dIB;wto^ogj7eJ+ zF)lpSJTs+XLLaEmM<(~;d5&h}WdbY@$0xw2;}E>J+WoCT2+I#wXG+vnG#Yu4n6DTb zC05V5vI||b{k}A4I3A_{t{i1+;e}s8|!haR6;&=!F=#2(Extur?X@ zu>8vtk!EuyKE2oR7z%R952aitrQR%SYAurs-kB;Ac zGe3K>K$n6JMi9Kdx&sW^R}bBqeVQRyWH z&@ntPWOoXWCtc|J5k+R%{OY*rFU}n^pT@`@FU}4_Dsx`;nipY4gZ*F{eDiX0(%Hq% zPGq>rl{+__U0}c=o;w1SX&!uTL6?}vRJ(z~55|N;(Cd^vA^3kUuYl&pPKn2(kj8AxXGaMn|G08i~oR7gPuRQ&k?xp{&4w68mk?Q-~33!l?;EH zw;C1C#nc(s>e1G(CX~UIB-I#B37v$+i|R4Ed^yy$ZS}tRlR+`K*nRPE?U;|7WQMJ7 z(vlB;E>v;1TuqZs0K(~OrMvvOMz)>~$MN<4TGYGPJYkFLx-b+BCh4SVAj|sLr-E}G zO?AWjAKdM>I_KNMY){9~x!J+7%5czts$E8MsS4_iD;8aOe{o=u!kXnv#_#yPc#~e| z)<$>DG+5Ymyt_|^w;nH>yTXk*&K5JgRL1IOLFSp1I(9z$Pr6|CtKg$E)h}r4TDV%O ztWkUPVzIM$N?xd?W;NCkQdI3aRp_-!mF~`--VCqj2RN0Y;~B<@5cFU~Q-*)W(Sw02 z;j7c1((yQH8=44b!o7{G*GOurU6ttUQ<*|EgRrrrW*MH={=y;B%2Tw#QfZFm<Hyb!Dn*No z{8$>&&c5_W9j5RQ(yhn{1ar=LQ@Q$T%7P}ZAC=8O+wK9%(+c{1DFutkXgR3NfNhAU zJ7Z-FX5fn&)}e+PaBrku&rRPOvXV*0UHRL!372GZGlJX1`6k1x~-Zzs=z=iif`4;TgpA)Ct8LnBnbwWWr%qsol_ z1he+rp`l_63p~SH!Bi%}{KtoT>)2R%c%ZzEV4}gl39bYz!MBX(NRoPT1o}Q&yR^=P zcW)6CAEoA20T5}P8QV6#og0m`A^FQ$rZ z@u2$DY1r5r{H;7n8!cA*C0=w=6oK=KqrQMMLq*+)gU%o%y?;f*lc8qimz!=;L(E`T z(@O{sNemdqT(SY!TH%Zjl{rK7V2y1PnE(<{pg<|wHg!Q|aL^dHN~QxEainqtg1-fA zB^qDBZYAhJFo|;nFUl{A=svs(wcH@PZy zd%M%-;+**|9jWyCms)Qxg|wyUixy}TC%vEZ-bC`amj)jjl)7N$Wjj6I0^MVEb}yCu zejdpc>W-VT%&IoY+Lc_V(>coD*jH0E!vG7}?p4i+HUeVO&b--{ftvCfEg8x1_^bik zG_I5*ra9H>%4%Gb&Y+ErN)$Y`2nAWr1OX~AVe}z?u0^w{QmrkeM-2I58Ms27snudJ zRXqdo_%m?6n4kuUkXhlx#3Z?W(!1wf2Y5){+)S_YoYe z+oQhx;#s`lNrQh8rSo6r)}V&;8R+3>=d0%$^3&m0$6|7!LQRoCPLgph_l`3RZso6S zs(1`9@<(_UUK1tYi5p%EuMnNzfv@jGyiq=s7T~PJ!{_BB$Q?}>Jef-vjX3ZBL;6h- zUXw5KlGnec4x@^>bh{QgMjX&T#XZMmx+GokipHWRGW$|5iA4dvHkGbe6ua&B8;XrH(v$g;+{*gtB6H zuW3Y@r9P`V>2pfSTCH|kD@Lnu z-=&Jqk?gu<7D`&~ZM2XXE!3}IF;2tQX!s#&n`(AH!_w9F!Z)@AtES5nd^vbd--kKR zQtrlqtQ*PQqtwox>ElAn3O5YfcH~l75;WIwZ9rv>kk^>{+E8_3+MR+$33!o9KNhfN z+@lxJwALtYFm9wY_94RWjNS{tlfA|WyiW2df+CoOmadFa?{c#I+UYz(y^dNdfkveM2(7DS~2UP=NS zbF=Vo?F85!zUh3>mi@=O95Ek|gNTc)rBN_P=FU1p=4-(k zT!^(;gP3=#tY~5=Rx^p)QByoSS1F_t>v%PnDbXwwEdzP*Zn)E!VkJjyDm)4Xpjssh zjEG#IZq^-3>!fSr?3OtRM@_qze*P=F!4Y2Pgk>AlUa>xSRli+X!GH8(`D3dlTbW5;#z8GU zuMiDB5r}kPD!jxXZK|3yLA%V3Lx_7|FME1p=ig-USY(ZD+1=h~LAW20+6d-kMYUUb z*Gv+5%dN*5@6A=smMGwX6?lzf8%rZ31)NN3(K?C@7ND4EB=qZp=tt=hrmK*`lAAL1 zblp_+&5UEG@;J~rMU(il1;VO7l(kKQNVl6XqR>ja^{AYQnxc7ps&57ptU|Ch<0^RY zlrrefd@_!OkGFPW1i}WLkh2GjIobb|E@}Vd)tXN3aWrC7{QctbNkB zM5=3HM`)o!!ZV?odu0nlp?3MYp_+(^*?n`aekI@jT!KrP8lDSiZ$Y$eB<%9>m=PMe z2(3fpcJ2pygcmUI$NBSpkoX@ESa1kA(1T&y2ct18%A(V|X~QU~9w`G)BLduhDeh_( z!X|9OSFjlyFP*OQ6}E)NC+b#Qw%TBPHO&bU78&eVRjk`j_rhi2{4Cw+gJrO{f5|1b zE8b;G3#ktrK@%j2^8F4gTbH3-k2v4WfK_=ObF`A!<`h~QYgI7QN~$LFF>`6h1Z{OJ zE=Iuf!FIG=AzNYOhcHrGG|&z2&BR9b(xt8G2UB|YioG43@W8>7#1ZxruNv8Nq>g&P zWm(HI!+YQjgFE5=g85k4x!~3(B>%I$oJO|w*2QLEOI4GIS+JF zA5=;`5G-dv+oI>-3v9$@T(bOB!nl?93TZa>PT(>v3Q;eUVY-xDyIy^IHhy%@rxl6Q zl<6P0Gkijc#VSy5?eN1+uTF20GwS;0GKPVtCw@JawdF4fQHz}jC^vGe;{0ZM+L53a zw>qTB7OFk_)>M#6FH2&g!?q9tRlH80E_)G`DuFU7z?m_>S-FXqs@x*R6lb|xJK>}& zVqu-ROQkAQFB55WT{AVy#_Po4K<&nIuP6KNgYnx2JW#|CvLyRRfvXF}VshgxlXYAu zmMX{HC8{a_QLvh-SSnRyIV-w4pUveXT}qu{MX-)ibn?qN%XQ*N=68OfkTY@xRP?%j;NfYu)Pi^_#$a7WA>1p)!C#BD zKNN1qWq$_AxDtD?13R1!L%p?>HFjfjd#4wWC2=%b2+h*19{aPgu)p-X%WTjmoZ-n( z_5w=&2^x*ze3azgIF$we5cFD#lS=5l5EGS*mj;$&A4G~dnXbshV*+QXI&|6S$~+~C z>a<2MxANpZGQo+WEd5pD};h23P^cGAgZHj3Q|GEOVV>fP^T zD%D!;G*ndg_J=x8aOE@~Ae6ak%WY1d%OONVNk+Q%D4pe1b1X)U(^r~V4=x_FsA(n* zjm`K^o6&rJRoEvO^s$l@osH}am5bkwdpG*+R?924_;hOhU$yhxYv>L;do>!Zk=)%O zJl$36dcNb>PIzG)EUHMB61h@J3eEt<0^Se|!?a3pCAvjKZ?`LUrxcnnfTn6~XkCyp znaT;VNRY}rM33gE#TF)>^G&N(^LD{j;FB*ED`$P>*|gr2RW9jUvy`fFo<_8cj7={! zA2@0u%jSx;dQQq}il6rsvzQ%}yP}rOqy;GZ$*3=uNakq99J`p)X5BdFR}aHOFVlq~ zwJUSS2H(+rzlBKR?zrGjhew5AHZx8pt-;+A3ty24cvGQ5nS{mG|B6F*i`739P1H46 z#yQx5ui%{cIq0k0iiUw75>y1X!q7C;G__U`WI<9?m?T*eC0WIu3dJS4c&Y&JON;~( zwc8K?f^IM=r*?1EgpELu!ib=9MZ4i$Y4cs!Y0R4ZWtDnj=)6%`Max#Kw%p@*vlmds z<;gpf*zj|8quKEoYGLcmuhv0{n=aoBdO$&mkvxWBxow#0AXNH`!!yV4UqoKK0C`nLlc852ed|V zZdsSiReOx)=N1T54K#*Ij3oLU9(&N>lMY(1!_ZM%KjpU8%ynd}C8H}KU(~a2SHH>< zH@VEamebFrQ*{BD7>?)peh}0f-*X+uv`wOs$uce5GIgYDx@E_LO|d%{!Wc!My%bz} z7sgy~LLd|*HPCsd=|!|t7$Lv_Xl*KR<1{Vv*vnG#DLAdP_Ra@izNwRl#>Noit-j&8 z>;(!Q!!R>UD<#vR;48#rp=0T<3wmfblCW2#DwBz^tn5EWQ!;LlX$cqYE$~z|w$QWT4Umo1G;+TLHwvh`Z@3|j+x(Kzp@!-O7>ARC8v-SE~gc&1T zN&==<zv&3x!xv%^G z*v%S39wT$Bzrasp$8|wfvI|nGaneZAVq6&-bGfBRA9nZ?+y-h>PdoV*b$AWM>~OE7 zfR&^PT`$lgFv4(v*!!Vkw$YvUU$d7iW^CkmMz%kU_SaUP6kmE;H2;i`Qs8sO24+N7 zCP3A2j0!7HPZK_peJRI|}crD#|_xaw?RjVfNdY^7IuosnCDB^XSk z^NeQEvx2`&$V&E9c969{*6^*Xy~;y4M^l5(X%2x6 zK!M}19@aNIbt+Sm=4@{W!j)10KnQR)$@y$fna72Cx2U`Xv*z!|C|GSz*>Edv8o5v; z3*HkfNZ)aG4mt;akt=K$(BR-QI{aAl_B>TW{;?ITU^MD-L|GNCIh__0ct2{>N(vtf zsdHvyIJu$3M?z4?vU^F6hTCL(g|o%lS^H+2ohB)_Lym#)DqH;~_!XEXPA$f8u3T82 zH_W#xYaOl}hhchpK9)wK4*@YZKQE}~P27r>j(~sZ&i*a%KUF#mq)t?|l2_|$-Ae1) z=O|e5ouFQy>IlZxIf8Tvo8){Rvw%g<%?WIJ5U{o@shE^y zMWFD=5TaKuT=gt*e6u9&q2LJj_p=NV8(L{5TyTo?+ml?OJBMXIYOFRi=u9^+RHBO9 z46#X$=dbD!7A^W03j91+{%^eDPP0;eC{H`Ozx!`?f}NTSZtrAz8_AtvK^v7t8kt*v zaSg!$*pWakTQ(er zd1sglm0mf8z;SXWXm@!$j+aj(ZoP&^7=jrk;XKOolMIBEU&}$$AGIl=z!H7RkP?@IGkmi>&(N{8c6iF| z$$yBWuOCEXxR$(w*F?2J+K(($wVhiAU3N}xdMStl znp-D+TSP=}-_*X#_~u|E=2fO-Zk}R~4dTojAT_dkxvb?<5e%JaTVs!t+Or9GUzAwdv-B^lMDg z#M0=I8+~zt@FWr~ARHfois1_dB6?hcAU1)`ii(QB;!(k&7_`4t0SnG%yb4N$*ZdH~ z>fj@t#O>bEU@9!A9T0CQk}7@_nU>UnuoH%iJG93kw+d-hzRWeygWOzQ3`44{0mGcpQ{GX6+TGDMy2gV)yt4tIPTPV^aD0 zKPFA~?@l#)=5t@3g{Q<`2c}?9YpH2pINwBhbckaMIVT zkjb(|m`w^jB^GXweZT}XC8RB|UL*p~cmQZ(6Pl#^GY4ube;F=MAg0%W>Kuz1FdsH=Etn6MvVV}x9 zvw{8$xiG;lu{wCEQguWf4UU{#Qn;P(UzjX}Dj``fG+#1fabl z1Ul|s|0&W02njMjLvd)U`&dn_z268zv3UdPZfVbf*8$lDlfjTGn2|mN=s7xMb8d0W%N9Q z9mwJ(pba%9U>e6pX0)Ih3|J%c49e|e>-t&meCmJYxwU^40<=JV>(I4V%jH-sZPzFGZ6(J{=V~l!lZJ*;@3yN=bYxQN7DoEXO11d{duZOz- z=0*58*L&p(pDjrr#%_mJK;u4;CA-0|*(@vJ&DM{@Kc7qm`jOS!Qz2ouacvvws*GLF z(}ts_rkcT3G!_V$ztY7GV?;p>p%S1HLR!m8c^-;#I3<$|#d3nI>N3Of9M94uMUnaD zAOjqe#xMsFRVf)Pz)Xn2MKBIuhKt}Lqx4^Cs!X$|6TML6Iu|ia$F*F?K#C;FNQUdV zR3{pQvM30=2x9361#=)gN?38F_n5n<$5IQST*S;e7d(=mEnf1rST^a~+>@MlR1eH4 z_jIk#m!}JEA+@_vBBwT;2F2#%3#$aYGj^*+zWmboSoi^GwBK#rQI7$n10!@K^>~(H z_N^MROCF_fuMe2OSBip<_xE2ury&h>z>mHsVuKqU;^VztmnhV9j1=P_&e}Qq&-uFmm|L_nb=1Mm=5jtD zKlI_#{k5Kw>od?z9O9nu9txyaUP5JIPS0*3;O-xCSqUQuRkd}IIxLqJMHV=b7k)vt zB?B2cPAbb#*NE*po&!quuOuxz0yjg@HzPGCqVPt>Sl(_{PF&ocADqt%%4Cf_2XYFAvAxyf5toj zPoOk^!qdDxuY}Z`M?U|$Mr-~A_^QL<2+*`M&!#jBWIhW5Rx?z>fK5V<~plveI z?sE?2hr@H$pj5_lcRj`F7>h&Y%M^^(p>)j4vH0T%!;om`mED^n_)#^1m~~XAZDLGX z%%e1Q4!`G0vZyS>>v)O-IVhdd=#xaBei3y94Otc>LsJw&6iL%TTnttxFe@OXaX6v! zcHKn_5xnlT=LD7Y-#phi;Ak?psi#?5d)hE>v@?D%fDiFw&adPeGi7>uJ60tnR!S5& zpt3*yuUQqD77l8tZCfkmQTA?gBX@3t$h@lK6^{T4RO}TRm>z-ANA}4NLt~_2%YoQB zJN~AiqG^&qEF^;qVlcLZZUWv#TrGt05B=_YX-1|P4r__BNK(9jM@@;wA*EUC*l?V{ z47N@k-FUttM&O%8~~-8w3+icdazrG7M+F5&;)Pj%rax*lrcX z&(3Qz7D>)VN(iMurL47X5hd_v4zQ14rZZXJl@bu%{bTGKQKshA58u#R?ends#zL#J zrH=YtiJUT+#X2dx@6lU4USw%osB|D+xwGZZi@f!r6XonRqX_Vn^{lQxerrpx@6)-@ zx69$+(C9Y>_i)gE$qE6s7Db*MtnK8Wq>+*!I@!2u7H!QeB1wE24p#c3xV>*#Q&Vur zftVN>;b$?IZwxu-Y$247Q2U3FfBMbpVSn6sG@dQDv!rB;wZK$uef_Fjm9az0CWCDU81IoZ3;`Ah#-gyUhHKOEl(*$E zWn*tjr7~kKPW79r&CfZ^1-V!tp90?CWQ>Hl*0`bR`>urVe6#Ir?K^8;oqD9u9Oq-g?!#UxoL$%+@{**En=rmbTD2j~EPK zVp`I>7Rvv~($f0bI7<_yFA%wZaDV0xrC_CE?IFu@3fajUJfm|X^^O-+-Ld@!`>I?U$M z&bV4R5baHL81tFil*Yh^=A!runbrwRxQ1YK-N?VmQl(IDde^X zl7MVA5zKY2J`_Dw+X-xkAHz=ACTUD+*zZ=TLc8tMdK(<$g0rwvr6{z(dlW+}vV?ta zGgqd-l&BD$!EnPf`SA2WD5OL^JL&^sASFVaaqZ#kMj}DCvcVaH2Ie<%bbzHR8vXgh zeS_CldKL&c(POX-V1qx`f1rERW?xX~;$~~nmGi7Nw47Hnl3z8M?NfDGv-s-{(mc|&VLE)uKMx?E~VJG5&pR0*a15->QKlE4j zj*o6f0{PaxL-ne3xRi-kdZ)8QIfnt)=vKM9KAjz2WT7@eIa89UB@S{%CI-9_hrbdh z8+Wd^jdK{IpYy!S1Ua{F)#T%4>XG7k&Hx1cNKGG)FM7|FBb{3?n2gA0~f;r|hh;rvW;%Os?-u4CQyF`NrVi*m>ofmWl z5jGlbeS)SDOJg7K#K2*KS&0#LdT=D(BSyQjUe_QYq_UnQDAyh`v39grEb4F@1-({S zTJ2$WmhTA;WS|5NIJZ^m)AUIB;fc(_L-X5tPAQFnTA^PnBQ$$As8l+E-?e)XN2d3K z(UI@+na0v8Bjny~TreKU>o%O3F=Ja{B=P}3yZ7%Xt@isre|YaRaCag<`II(O^V`Tv zR0IDYRQl@+rU!CYeiBbiw}FS3?x~p%%TofeM;}wB7?u=7U?D_nj?mD2n&%0i4(zG% zF3;FrV?sEj^@fc<6$VELkqM3Lmmx$Dep^SguwmqK*qpw6_7Ga$hGQBxKjd{=~**r3F`9cS?C^CB?v38rWLNYs(KB&y zvYQwu@b}_m{rY-al7+zJj}Obm>G<0;iBUOxVKS?M%Gy{ixCa=NWcwn#;-5^FnHtMO zQT19BPpb)bby^7Sy>~1K5)5j3=l#407R76K*i?$l=m2K2BBDkXCYZ)XczjdQkD zj{k@;t1x&x7Z46zUuuQQ=)on%IoWyUdfUFq8xISXVagPEXnj5`6@?P&W)h6j9yiT+Sl`;(n43PiKwUI<{FLAs910E>*@0;{szG7o~- zd6Xb7!zynG2!m7gb?R9B=FW4yATjpjuNd>M{T)~2&Pfs#*$+os;L! zi8;9GFyeO}>}O7_{xOCtv^mKYFCh>FcBToRPZdhI?L`|W_p8WxvwoD%mKZhIgi{x! z0+S%q&~#0R59x$wctvjlwyO2EVD93X=uimN3l@7y97Jt}7xpyQH@HF^BjAeBE<-pK}2!|6&~wW;AcSujZZm_J%uaqZTK5}kBnB~5$MW>oP06u=o%!Ej*%)0(JaMs zyugd1Btx95F$^8?^w+Y2;K`>$;-Vscx|z~sSZxsVuX8@S0E`tbARx|Mz$zVAt(U16T^5(V_+!+P(gvV3=nr$<6(1Y)&OLZ(f&)g;r7{SQjsc3R=0XOl4sW!FE5&R>*`K znr;t7j=^`oySMD&Qg=v<8H;*ZP+vddU1e27WFcsafAURVd_z7U$d9Ts|;p zm*<^$tja^2uEq|FDtac5rOMP4*tWf7fA+m(zi^W4?2PN}c&v8HdH*?P>3+(k)euuv zr)_TVS&9vcm6Eb#9K!#Kmt&0Lg;Iu7T<6+r;J&0(I7#SQPr|2fi)l>g?rSMo85>8p zPWP7NqqXZ&OiGgI<>pMOeYQ0X&k~rJonui;gi?g5szfzeN)$+KOIy^uVw@qEEy|_f zT-nNS!ElzPMD#7>qqjWQM)Ys4<#*0)birptMVDu4ApjAxp&I*C2Z3f%lqMySkW3&1 z5vLJRS2`9pfJmPs>n1`POJgagrd^a3LU8WIap}v_y2Tl-m6T&R(}J_oB7)f@p}$CQ zYC}F6VIzeE19T9g5ba9WAdp}}DP9T%La_E^yy5_n2~jUur45U(+3}Q6K}y*Hao)(a z%n_lWR2C@a)NPavzkf>nt@Vv#o88Uw7F=GG>pQOLDv9FPo3gEKVN~T(7sL!pp3o&M zacVLXmDkp4S;LWwO%`oS1|sKeRD_Pnmxsw1#zd-qw>G>p_#MZTXMIpnbF^5VPdTPT z>%`@3?)(S~XO!cs(~Ctk!Ey24KF23NQjUv^IWQLdBM=taKl?l5^oh*Mgqu-U7hO4C z0JuACM$cN_1R6dOhx?irFPGKhm@0*=rX%FUebcP`Gy>elAMDg0xU!LgiD=P?Me!%2^u3~H~vAY)}8AfqFD-$78-pMs`3w^ zQO3FDjV|{)$i;9%Go<6(-^GOv=t}iv7Wa0W<5?pD$W&4gnApEyhOOMWI)@>4L2-l%1hhK^*yMgjw~4M=TOP=rx}>Di?r>wwbBhutbC@+86~&v9*;e#Z%cOT%=! zeTjprz%y{aNcDH)?5b`Z)KyP&vF*Z&xlqs=V17mKa@>#@?`LiY%NyXU6sZj_O}n0r zCo!=kbIEd#8f9#EifJh>V`!LnR_mY{d*+%WO?Fpoqd7TXk9AnJMsn|`Zx6EsGqf3b zINLaLW|;!nU`M#BB=fjzBkFce%y0z3nD`##OP0SK{q{4Qk0!Vc`F1+b9R(_>mqs;7 zliy1fx0ANOkSQ1-;Z=EIObW^cky*$SPiw!*83r2}%Et@CS`j5W40S1qV3atWd66H4 zX^OK9J7l6-k})n2I4gZx7!#1N6-11yM;QW~j8L^&_Zu|QmY9_NGU!2A)3j~c6d{t3 z)(dzdz=94g2q4@@d#k`|Q^(1D!L)nK=%iWv9XHBk-A`&K^hw1W<`_TJDE z+wH>nPbQd>*@TO{&Bvs5H~+)sH`*q|Sa8J~-++7_Q$|}RIL`ClqS==- z=vaP_p+k*uIKj1Y#W>b}@j#mD5`5u+qh4YKHnowfP!(|)7mU*7_j~tNx9NeVnjm;E zJ(>0TyY{Jh#LD#Y2O=GZMIy~@%n=2D_x0f}U&bj<^u8MIY(u@vqpR0{(SazD$|f-A zES%%y_HO_9{#r$C>(Cu7x24`B1~#a5+6HkB|7$FZMSNo7Wg!oLCxYkpB6m-7HBp|{ zlbh34+lvbqkjVcJ-Ry|W3kR*V>Ow4YLFvLmD`#0#;wAA>ZZ#M|mZ6o8v{Yp1#bLG2 zswy3o>h6fpS`7YHJ4Bf1vC}SLwjv}Z_<#!Q+}sL!vCITxdB*c1i<=O)%|){WB1OnE zN^_+pX#(F5O-On`biM5LN6KZYmAh}+Ky`9L4N@(%jyekYu&1<@M)i_VOv#eyG1fJ# zNW8}h{3yYKAW8~CiXe#s_gEt%L6LdULP5h1+KLP8Pq+3mre6E5*CaX_7Q|;Q!ACmK zHTq?$HL9|2X;-KQ9CEN1elWID_`qRte8`|xy-+U7?_bTN3TyAVqH8nvUS4r1wfTU^ zTI*MmW8)IYOm}U#Ettu??|Y-cQ)%UB46}@Pny#7Ey3UVXcV*azc6J|UiiIn_)GS*D ztXs2{rOM1NL_9C2lI6yYmj%=LDFWgs({${_kH6XYrz#@yrnE}wCNUEy2F*#L!t|e3~qg*>XG7zClIp@Hb;AI>(mNj(7BL^{@%XoV9WTdDJh_a5-o*$EyT3k_j z3`EFv5R+jPQ`I;y@vPlUJEbtA#C3+!UCL)U%)&@JtpQuk6a;hd8@LO$09Qdq1y=K#Xb0VkLkEYX;KxYjbn1B@PenC2wfMrhf%<%AqETrfl`1!C$VC0$wg9z zY)*6@a+sC~BMPQ-nR0HdJ`bj2^+nmy7XeH=qi>B0KS@lu_kn3LXJ(m*4pwrtdj`N{ zjqbdvSy6O!6Xt#2g5f9TI3Vu3LoQj=@`U*zn-(-ZYGKGuKku>Oixy3L!oL4;yOf1* zCt&_hb>d>hCRP?`l{`itCfk#rw=@g`!f1mS5^jM$nt?@+NxHXd z`ElSPG(kRGhKs5F)@*LHt{(gSc_$}rt4vu4p;Ks$b5Yh+byJs8SHt4TyHq)@Hbt?1 zkcpl3w$ZIeQo0?CCbvPrU+Y3|XU~}mTV@?yPyh85Pz)DUN+ccaoJP*tQ$63rwB?LT zFBBuKJE0lrM;vdMUYWQ)IMHfWwrNqAKVU8#DsQ{K(nn(g0go?1l{@)OZGt62GdM`R ztI_JL8t(Or5+UETsP$Z#wSKM6DQrg@_*U>nbwDzgLy6SxHh~`~7K>3`K3C3)Bg~B9 zyx%2PnS_+G?q^C>UpS?gC?}W1VzE>v9v$30VI&V1N1O4(Lx!bRjp8cH_!?JGHY>ID zzIe!=B#=B9xpYzDC8b$)sw?e+)#bJGc?uZ=H~F@$KVv8&Hv}7}0M6=v81(>`RBBzP z!i9JCs}s?|uRj?ZFftXwqH?6yd1|R~^sGL)KsPm~-TT8@^yX9`xIAcdf02h09*cFf zMk=jDz+2ZF=NHXUN@j-0hjB#F9hS@>r3 zVKcdGT2hU!SwpmI^lsVIHYV=}<2LupM0B>S&f2*PvtG#EPDQ#9FAPRrzVhEK@K!h^ zsZ}k0WxZ`u+H?j({u!$Hr_5A(X2Is($?3Geh6PoUEmw)M)gvAdQ?S02cwR05JRZ_$ zrEQMJXwIF}!Fy3v6&0u=F0@BaR}4wG)?b^^Xk)QakU4b6Xr#3T*4xuYqgZ( z%bLly?l|uZC$^{5n8=>Gd*xd2ijjc;oWZYd1$^+6lW)#ncW3jddS?SuCL|y`Wf;B0f(~&zr7{-7|zsh49(`^XV z-Nr>y+jbSNn#)rZTz+=OIt`R`z)SrF&hNV-y28!2w-UVqMgCHSiZ@|L8$fYhfTVU< z1yKcDr&Ng0Vp=nj7F3QcmdcU{bz+FX8SpEXZ#Y`0ZGPjtBXhv&~89XVq`e9gqI%t-Y!F z2dC#xK|K%s>IA^;$pIuSY+5Y^81E_PQSiA~=qm*%*}(FIdUd{=i#mJrITCMGee&IX zjkp~IC6({hce#*4z@#+vv=ZT@vlu>782N!hQ!-k~)bjZplV4A!Qc<9mne??ZW7_ET z+Ka?oO#=rzwJU&KZ~{mzvE_De8F!0%1zzB~y1MMA^yZih-f1UdDEVd_L#f zh9t`tFtcy|^U7S)ZVDkL2yfO|z)ZcjymwakM0J4aXXe`)DHnYen9j|85NaKe`UAP` znuBSm1hDW)!&G?G!*Phch36eDWXZ|UxpZtyjzfghg?anDKGws+UFV6@9)kyyiZWMs z@g?bwff9<{qel_b{ubq8QPB~08uq}YtG`Pm+Y)`lh(t6zgyMJK5%2{Q&IOHNmZzfc z+q5#7SYfnUG;*CrDV569I-}iY(}Ud3@nl<4?94}%1tT@kMo;*9my2*4RD|@Yq~#3w zABjFzxXBd=coXT3aqY6@jzU3Dd$GV#!0H@V6a05$FBz!C_L&hgFC*?I^uD= z@yI1LxHvGT#be!wVN<)YE*sSKI=p`BnTssk=JI*kKLn>gi7PcZOG)e8;u<%(%OkE} zH#Ad?Qg#{UnImcfcD}cHW*E*mJnjkehZF*Csou?`TIvASe=1;+N!eh$CJ0EJRC~9v z7}V>YX4qR&kuFiYQH?Dl4NU(V7rKM%S0yYOwyR1a+uih91?Q3Rs!W<8DKfnK+iT(2 z^xB5dQdJdTO-F4_F8R7d=GKUJ` z{;{raBe=XFAp*P9t}(M5)ix^x9HP=X=^km@_7waa@u%L`NUE2}HZ7iOmx z)^`A^+Z)}e7WbUQI3%OSRB*ks3nOGx5%7m)e;R1xNQ8p&s`Np-3mSNuYD4maisQ6m zgPASoEX$p0Q(xKbHrt;(=Rgn`#)oak(obJqEZ_rSL}-yvv7Ro0RvCfBq!=c44bx%G zMp+x@JxG3o0XOtuZA*louH9OuDxGTAI{LQ47aO%)HYnGNyyAoP!k`eCP*GOVplT&R zS^A zD&q@=6ds^W^-PJ`Y8d3C>sHNud~9bCq19j1D3n@Dr1Ui8#0E#^e31c0-k{rRsjH&8 zo`82r7_i+-wMJSMHb>TIUOVlfPr1ZCV3KNM%h4K5m`65=MorJ>+qF!;P%IWQj+x0< zIy$=>8L-uA>ZHOEsz70=nF?ohJYvBVG?0M-W;y)L==;uW+V0q+E+WaZrqsf&r)aIW zL|gb%LZ%VhfjS6+_&50zW$%^zz3*2~f11EBk9hHc!~jJpZnmPM*t8TD(+a@VBXxV~ zF@j-qHiCS2Csl?+&IVQUyS3R~)<9aX!kh8{qLUi;d= zd?ssGt=`jI( zGnAO*?HJzK?3QMc`}SU5*!s<$x#=#htijC&D5RCc59xQg!4CWBqiqAQ;x`&YIM8n2 z#D9@BsnHC}HqF&gb?3aTe0-%C;c>Z_rdFM zC)|Bj`+s)2Y;KVL`V+$jZ9t7;Vz?{&MdJt6Xig zuK<$X^ap|+4)Y4noZJ_)4Te(FxwOs@eq96xo>ldGbviV1c|A=c_Q<>AzN_2Oe1_*S zj;tOdt+q-?>&E(KB{VPx}V5;@clu^s{ZS@fd>C_KPzrZw_R_*FNO%j-fP0 zQnD}|3$B8Fu7X*r`{X6XP?#K6Oj0x_F*8RZPUq4&QS59q7@~u!R#r(O5gp_m#1Q7< zfRc7P=%Sz21`1rkb>DxYZCEHjIPK4nERJTDeR*d&ef7Ds#W1>gU6W>JckMtPWB#>8 z+PehPU%vK^TfJh+F}>BfzSGjOfIssYx19c&?UwC_<8K?(!|a`@BgxawtM*nGD-{{4 zxf}5%tXDURrErs9+_{y?q^g!o@ftZ$F0lF4>F8>vKn8I5X*E;kxpX{T6WJ6e9Sf&3 z!zXl=a(Q2h#uEA5YP?8uVxjXx(Wg~9(pPz$#2zN>A8}FMws!_CjK20g1fj?>rw^hi z(>BJX!$)sdC5o{ije_Y0vfA|?9|agx5hLtmAnm4Tvk6y5(*C2&;sB9wVrg`j<<+^Y zF%eoH9^ObMW<`-M7RqIT%_K|NY$BJ;K&HA8P2G-W7xJ)atn(pGBlX#=q~dVxKABEs za`9Wq)NHZJl=2`Wel~0S!8Es^%Ov6h-{BjWFQTiqU~mH=qt~y7u9${rgfUkQkMR7u zitMQ7mqL8$Y)V?GGt)y=`3(yhCskF+1uo-y!{FjJI1~|Jhyo1J5=6NoTWAu2g5L); z1`a+@H89{3@cb=a@-w4>Llt(ws;7TkO@hE&HU5Ax@9EZlH;5uScGPnlmod)J#$}8% z%*P3{R7LwK&GEA;-ake{@qZ7IZAW7;6C0nJv(EmbAOHpatU}O zY(&;Xy7)#_&9aWCb35nw;K}v4%+K%~ppTY5lmDD$Pi4PQ^>aU$_;~76^&8ADFef%C z!3rq-{`59qzdx1n9k(+QA*P_%YQGo4iY6#RJ)SN-$;CgCih>Cqp0(g0YKoC*D+Zn} z1Hmq2Utt%s9qhvS#(!7~sFMpd8KHX!LM>qMg<+(+xG^PP<>sTW6T_g9FMtsnDk=IJ zN3tVK=zR;hh)|dJzp%o%pA{8V#R^j@Rr2wbY<9Lt-(DZxSyQZlPxal&c>{L4Xh5lDqyed(H@CHO3$+XRTxnttH4*&r z_U$PG^|Z07;DS^U(p#QwH%!COF|^k99#NMG)&D1>k!nM;O%0vCA*>P&%!pHAAHcW6 zI0`X_hzSbOs&NS6VNB=+L!%`ZQ|9dUl%zVoF_rUa5Kfl|CP0g4p!wj1MvG*}dvKHM z9AiIw>s()2qG(2(FR;$gBV<9#fDp_T4MZ1-&%VASkf*oBV~~cE1Z!Gy(m7p4Ac6GR zYYbp23L27616+n`;7{eGaYzU#A$?L;LCzik4mjXiaslva^l?Rn{9WOgVW>VeLisR# zKLt8w`p>WTKZcy?_lIEl6Q0>m#VzMx2#IJ7#wKSXc#S40U?Yq}RH@5%4VFfPK-`tQ zZ+Zaxs7-H*IjBO25t0cTVLkjU0SLem8msFfgrn3;@vK+OZ)DSn_4U|l9AK&9n^+P= zY%0!g^;l&_NTeHg5@!=<{oP)BH2a_J7&pX1xbH<;uW4Sk?Koa|p2g4Wn)%MI@}&qi z)t~dw(}tkb_M-7rM_bk2KKvp}~S`6Ng`>~G~yZ%vou06jM+MSe4 zg=aFxd9W(gFpdMYjDx~+)^oX`z)9x)$h*CZ8PW?n1fl6Mg3-+5VN~G!bpa00%oyl^ z0|PkVk&$nGsBr?c+#TR&`>3Eey&Dk#MZmw%@_ESV%^8zw~Wlc5E(i2&-XF`c3IiYNk~^9D0UHUe&J1W`^O0oX>+U4WMMNS~}w z$pcR+48V^u368_aWYKvG`Hri4s?Nwh&~`MKfQzcYi@L6oWDjULoHZB$#&JNRUSc6h z@t$H(LplN|$6#*M_J){d8wMW$EhERN)tF^4@;o=TE;h1nEtwzkFj6wZkS;d}LxkqW z!2N0usAE!*=XG9_B@mCnjNxYb=rK_hA7H4NsPJL2w-w2!-o!iY)lY4njwTOYVd?eh=in@ARE9tVqlbHkpZ?yW++UaQ>}UzdK?E%W>7%y zPyB0}mz>L&05=%SjYi=af^|8q>vmKb!(>LJ1ID_#3o16XBNo8nio|~4dN!NcBGOUB zFi9f`SckCtoXYix7kc#CYU-0!FnDtmG(gCR>H=HU-SJ39u?%PT#WrR=coFTrV{tYH z*$6SoRbc=IiP1>6UkPrKf8S<>qO~*74 z(RAGa$qheZB<0`2U0BKU{R9e>i}hJsyq_ML>_Mgc{9Th_#0F# zbTot`1*pJw6YkO0Yn!Zy);FGyFt|t~wqcou28z%@7*_;TYZ6mAio+c3OUZ75_zRyq3N4xuo;ZtJ2yTt zJKdqRUji!a)#_huC1!;i@B(juF|I&f5=5wMpB1_|l4o)Ub3tZ#hL=QD@mEzZGw%$v zJ2SbiQdvVhuVFz1$spiJBT@K>gJKCI)=K`iiH>_iVDW{?;acy}=-0UKJ#95Sg^}&} zt(X2f1yu07ESXy*?|OFNA3f8`{m%k^)={m*blkBq5E`_sP^>Hg2N6UmH%{5O==bJJ z1)io2qClcU)i)t1cL^KYlqOI4>R_MQHKFYY1w0sgviE_tr&a{b%3qAXJNV0CpfZho zm+kHJ&nF)%jVP@$Ir{GnwF%C6={utM8d9SsN5mWp9JEt`C7Fg>I9bO)GVr$Yq9DJB z!qYST$5Xuzpp@XV4nXx?kEMSe@eQbeq8)BmrI?8n2^`>55X5QrL2Ej}sw#?RjH(R? zVZL=91OESsAgKGWH=da{r3apcUulyRU;O1WkPovvdRZ81fC?49Zh<@e{&(aVry`|~ z2)v{yT5!!66-~~8@q-K~hUQsCo_l2$AQ)D_3K)dJtnsJRj+Rxd8J6Q9D2p_AN%NPO zmZ?Ajemt($PEwxnOez=4h}PptnO0J+wMLq|bpBm#5gpt)sO(TC)wSpK);)8=s~7!= z(s{0EVi7FbSoLJjgMYQ6Zy=8l>b#hIhC1GH`LiollmXttB|!Fapm<|mQ@NGl_bqD6_7Axvc&Kla1c?QBg7>q%x1ot3&!&xaxN^=Bv~YoTMI1Q zqeUDYUMCHT#yP`(?EBgh;S>qkE%JtH{BQmJc|_G@kLv0_&E23NK`0#Xr=WoX4FWX( z3qd^hf~Q6AV;~f}4e@H$o&Tn2o50{-J0DM-K^hZi_&=jSrPQDGou51!LAu>O%CewX ztm(W+FCIqG1aOe_%k;sf0!c_h5|Xu1VoJh7O$1i1P+HLf1kb%iWGt+c*2%|~ zz)#4{8(N)&qB26#)Fz8&?hqN~`d$joRIQLy@Urk?=zdFCkPH-6%HXoeg+P8quH(TtN8~&;NB5xp#LUNT|ZMd zEUTt0V60%GD8z*rgF;xJPV$mUwudClny1AagU4iFsqk2pV||1IwmN}5jKE<}*03CU zpa&Yz_z$S`Kc-BQ&1zU6NF%MYXe&QdJ)!# z>EDHy!|i=ak=rw;V*XT z%c_itt?QkMJ>j*l4jugJA~@?I<(j2nhJd@erY_uxPuU=LypO9*H4NM{gSV=!%#$RiihyvsUjV23!Bd0NIu_X}x@ zH)Ek^sz`Hj)0;vXWUU!Y!t*H1>%s<#e%@az@|}cs@?!0+p@Z>a0j^*tjD&xIe}R8^ zN6-Doo`-N@r5Tp|O98E9pa|Mmz9b18dvO&jRi9At{B4USvcReZWK4iNB83olD}jhf zCjtm8B?Fn*D5FeSO;&ZWcVzZ_vMoI&o;tiD6iqqWiSd=2HnTo(`H9Yt+sf} zl6!Nsr_o{<9rsM~Z1^8zVBQ6-y;0)qgAAB@%}62oNOv@ZJeu+MlT05*je;)H=c-X{ z_9?6Hp92()i7_I6OD86bVifNQ=0&5u`y8^y zqJ`VEpelkGTkjT2W!sox+PY(NH^R#CEh27X}k@>#{VP&J_gcJUpvd^| zjSHi(q}w@5IxrLdQA;@$W{$?5>OXAfREZZw)iuk*mTm-%%BY2+Y$&3-)cTF~*l*$w zAx$-*I1^OwOxs&InATV`!NK~fJ?X850W**p!4woArL=(oa;7lWLM!E-!`>9VU-hVL zQ2n?}Xxkjr1_N)`&@|6e$=ATV>HaHNu+5k?S*y;i{U1xxgel8M2J0=Bg+loXD9`{# zp5S&NGntZio=0-9iRs}?&t)ty5O4c6k+bpt$JpHr00B6=*o$>+0wPX-?~Hkynbt-2 z{}hj(*qRu19r@s<@7bi!mj5geAW5ZCsApH_q^M}7nR+>PXHr|8N-20=@qP5E@jL&e z)Vua9J)pC?1Mt{*7c^*SB8x?+Ff~r8CAO&;w!Vbe8V%Vh#bH9aOzfEt^= zQRR46A8ovndI?w0yMQXQ!}SXn%mKYKHtU<})SO)WSCJGAsTx*fjG&?q6^#&lvis$X z0AD`@NC_aN;yuc_V&}&d&$$tQLHk=A86!thhGjaHc z;mj(+#yNY7zs**Z(nYOF(=cl#cYadtoU>ddT@de9DI|VS@Z&*OkUGD?$)e#N{OoDQ zE`FbZjFey7y;4d++l5!yXU-yGJGRV1v0N%<OIVzmBGtSTH~A{ zK%4^RmZoOR9D5MDBU-`C}&P@A|?!?h_eb_p=k~j{P>C+$STuIP_GIG4x5e<%=;f>Dy5ZAmh7%3LBg2{Dg+Gv0&|qtdP%D3{9eK4vvpmH> z%hs`~>mY1@x4}(nAYuwxYiDf|v>DC$kBPqK_59%z1LZF{js&`wq zwT0?(GG5T8-F2xPJV zT}P^_K}Ck(qHG3;|3i|~;5$PpwP0TBeKf5K)Hs*^*dM$ClAk#{7mWR~oc@M4<7oyKxm11g8VRYf-4F2)Xv19SW*L&$GPCJ=J?2ui<8)&RBZ9WV6L(trsjn9Jy|7>Z(8MsHoDsY(@i17T&G{PFyYFLJy5 z4cA4waXmL~MN1s#TeB?^tOH9RnWdHflM+4q6q1=-awD0g-IM3;cJE1h zA(_fpH78iEP^CuPgBrhuGo`yRdvH^W=-UHJI}>K~R1 zH8;GhV`67D-IxsNQcfcJwKZ?tzmoH1$OYYWj8Nk)pkw3Se0I%+>&fkZe899g@#b?h zei?>HoP-UnaLyNz?jALA1#nLRIu|S_%0*%fUmxXLld)eWcOE?a78@1K5fRl?Y&tt8Z1e({mSx3LOPJN zD@VI8W6j+^I_;$!4PC!m@j|QXbA;(efcc(Wr5RS|TDc9~R%AG%Wb>&}X<~S+_e?`d zI@=l6bBi;`>zL>&-`Ku<nF^TU@z3WIHhg+=4Y2}mrfEGy)BBG6s?7MAv|?i@ewG`-gWS~jK0wsMqe0d+P*RGZvAm}Sv7Z!R)7 zQL7Q?EhpB#+3Z4IJpY_!ZUPg2Gv|h4FpcJePubEtEHg0p)d#m`x18qogH34V7U#*N zf#aOsms8JsbZvGC|_`i}BQeFon?) zv)aNpN^`QhSd1Bl_>Ejg?L@X_I9C`(>9Po3e8S0$vswKMeVqe^zl8SoK>NMS#o$8l z+5&Qx@`}BHVG4L_;1DOS6y!>JA7B66D3jn0Oaj{XNDRRRy$R(dBN@y6pf=TIC17+2 zX-&24&&%fF!s2A^WH#4mzZ*`Hp13H7ezxOKgaUP5nHEZ$pR_WgjG!_k#9*CJQq?>L;U@FfR(T3QoNf;+ZX?^~U5)Nc*tiVTq`hitu^u@VdHk*6h93*P*U6NzUQp7;FfjHT{VK!oc;^poP8>A0 zXIr>(Jtwafbc|sGi(9O8yIUM6WeWY8+Kh)m*wi)HM#f>TE<>4v)5US$Fu*iwO;od>tsuJ-PS&87*pLgJG>3W?$+MH;pWD=d(dC* zJ#|WN5PBE3UsG*=-*^F~TQA90zzb_Rf6By2jd%OY@aX95+}vPqU;n}fV5v;l=_-xp zZF}hg`nt2-C$H;`;nD!AM@-p}Vd-Ro#!hpIf@-^ezljXYKNYwhe%v+=d_C?xul{J@ z&Ip-JzHh{6I^B1D#YSw4iip_0d-u+m;B6Qf!^shXiOrbr2O*qT>@_)_;D9C)B7+ZM zJ)wY2v6(`*MsmZB35_h%mZ}{MJQmKnqHwk-Ht}`IB}msbF4d5~5^T#do2GU1q5I~0lg&h z&1fRgFd(!PBWqvrLm(J991b_&`_*!Cn4V#P!kdgb97J&{_+cqiJM!{w3S*y3WvnEo zXH%ZwZt1uK(1x_GpDxjCX0m7-;`eT4-Z5xm zz-O~V)B;ixAv@^Dk6*XyfFnvRwvju_Ze7AUgl(l-0iVw@ke3z)axha~XLk{tH?L8J zle$D~(vvXQRhP_eN^!WpG+0#yw#RAeRV~}mXvD8bPLi;YLW3-X<_SC4lt_f0=0b2- za`FWvVvD!qH|uuGu(V9W4Sc^rFl~EI{IL08&q^eQq(q3)1s}(D6jyhI7(|i*n92Z? zVV0fO95XyX^XEU&#jPUD0FI6M-7~ywHB~p+RbV?o+q+^S1 zI-N{Lev6+0gJd^M399%CGUJ%0*`y`7CjrBuD}@En4@0Z_MVx8s6JDSD+y=GCc&^)C zKVgDXnJo@{E^H9k6>C+Sny8R^NaHx0Rj2#pmU30vmY$iw6>*vv4yO&%VMANx{G*R> z^YYbXGBd9Yw=XM0T8kC%!dCIv+iQ5}B1>9;WoWJzCsVPq9Ie&Vt#Okze zdJFc;G}=1f=xFxTmBn9752OKlwe~rIf;vO#7vW0p~@Gego0(C@DMA_sK z<~);IHHLu=@M0Cp70Hc<-8y}1L)JzhRw92ky*PF|Dw!i&GFxKOW|*pi%{S9?Q6`oS z$qG?n6D(6)X|9m)g1`?W!?=(zMJOMhstqvPCQ}z$1(N8nuwJA7k>+k@A`^Oov>CW0 zCrN+nR66*7bWsB*FDpsY$EfjXFP&$XMA_t;Tv(FsMdOKLsg$^t%4~xTmFNBwNZc0f+%X`j$22ebwt~O%gv){bzcc>!vG&^VHpyJTIGA}` zvbOSxYPFVioMJ~uT?VfBaUTD<#bxN-2HYhN&?zwaXVu@d-R7Pe2H5kWFs#$?N`7)q=l`dL10$; ztm~%s&i4glXb+S$v&v`48>tF;jj5$_negp{vJ-?B#MMXEkmt=@Cb;)vbS0Eph$v9Grxd+Nm& zR^~)G&F9kD(p2LGTDMZI4hMWrx0A+y2+_?8`hFz{CRGhWP*6;5 zBT5??aW9xPYz~#XWEfssT5QqdUAdfYnj{dcC33R%yHUEd!ItrChq{gbt+kv_|AQ@` zr1rg>-6oZ*NEAcU>9RhijyzDeCp~&%EhBP#1zfbY*b>Z`lwv`9G<+MaA41d6%06c| zj2?pTz!1*aw{>u9rryo~$}}KiEC@oCOGEW-)*Cx0+fi{wIVyY{3j{~h^WlcAM~va2 z8DEPH9#$)YMB+d4w9j3XkGg0JN7qWu|xp=MMudtR?Y$n1RKywm0|s+B5@!8emv zw;;R7=Pp_tz8MfrEcleVyOk1UgzB6RZZwF?Hlmp{5Bd1{+tyHjiy(B7i(ie@mK9_~ zC_^Q);5rbP%0OZ_h>1WTq8qD0D~yz)aM5K>1mqIR`UvuothPQu2M6vH zuA7clIfA*Cu?A+wTo=6C3G|vB3jU2}-UU12DK@70QuXeIh?z`A4<0<;2XI2;2rVui z5E$#mT>pZ`16i1a(>eiUA6rIwr^Q<91CbO;;fcUiuoJF=op4osW7cnn2-xUVXRWe| z&tA|MTjopu+r>J<`;rQN*q9WUawoabO2Do?`OsLzg(!pb88#+q48EO`6uEH-OOM(F zSURM20VxTDaCzEz#G2+b_&B1eka#wwEm{do1`BJk=(#{3zQ8nRbSrYX@U}@`;M{|v z0))Su^LpmNoM#Y3iiWnO<(RIa$&~6P-3V*bsec|)@f-JT;MO{V?ooMlDUVvcX$?=b zb2A^IGML3WCNaqu9Y#`w4YM)CGV*%8GQ{zUl#5@s?O{DwYa7;>=uYEL(B1&$2fz~X zkFht)_hTZAe1FGuR3w@tu_%b@gym4Z#-fp3HRnyU>Nv^#frC8+{{CeZr~R2wPH?_f zW22c?R@=y>=#{oT3tOYeC5(+7%p+tYOY@BjuP;I9fGbW3m%&0QGtBauH=$APVgX%% zH7`TczIsHZ*0E#>d}BaIDjnBvao$Qrnvh82z4gHf0cw#d&6*}-nx`hD>&>RzIg6#( zEG(oU(Ypv`DMvhMMAW`^i9@i^ba_>J4b+%WhZ&b~t2Bo;hnXTWY=Nz-w<1prY~-AA zPgP#f%@i|iUtV9Fz+q)glkps4Zc7NH#*IRV*CX&u*CCn`(%5O>Y?ke`LY{O!5&fw< zrN+2zFuxkxVYGs9n!is6bqD@y4J_+Z3Ex}rJxSyi_+QqL+qFZT_0&JQ`Nxh;msD153M4JK4Iw+>^7qAP8r+b{_`Ymo<&nfb!A#@P=_7-O*+7(%^nUI!@8O5XBe2eCGYT&X zz%m(OeuE;SilYMu(O579VD6Bc9*zL;VM6j>BNhle)0B}no=1g&8hyKTa0d1URY#6I z7@4AL+=)J%n{YntpR|h8E--j{GKkwGxVj)IklMoa2V9PUAP%(kK z?dyJNi;z*HI*3%j&0k0fY`wy9+6)3mS2jr8%DD#uYTmAebR@;pZJ5W_K{ zLmv^s#8yb&^gNy8ImNzYZ5LPwbwVM=O6{{S=v`lvI3@{SPx~xQ3Wkb=F|e&f3+oxv zq$7ojyvuAQKp9`5h^LMpYVa$KL9jQ3Z;RJWVKc4ZEf2Y6oq7v}ITH56u+H5!=`dR? zlUWcDPoK1heeWWC)tpAOALF0b_(~$A-}gW&@KY|Bp%ye&3JJmu3A=<=D0bFx&rt4> ziDDWl;lAQg69!&TVFPBC{E#BF%CFK)*v!a08)8udu2lp{#G{%&@gUNi2_qiS)O?Dk z7}fO28>7)k!0)*byBsneSFxI=*JQ$@Fs_J9Zi$*##HmkiUK3{a$Ir=PHzz>+XM1Qt z?l>jSLI4*c?QB%eGZgY(o$J!kHIZV20>X;~0hI|V6o~;P14JZFN+Q%MOp{}d@4B|i zQ#2!iq70(tPD{Ba8)wxIpO=L#i7-bPWN1^s#ka96h8hEeZ!&JX}ZmvKn|U+{m=T-oNFc zlkE6tA4b`JFIPR*Ay4+kyz;f)kC*%7ApXCPpmBedeQ)bCY1%L5nYZ`xRPA?j&$qfp z>t30wKGDbU?vDq4^xjqI9vyqIXL){Je+6b3?(I2#y1&W$mv;~E9v<|=yjL&FgLC0LYa`%omeG(;|L!ZC1=eH!HYH?+XfW1De z5*TLvOnP%#-P4js#AKv`AQ4F?CMhbZXQ7z#W7e6ZZx|V#7uIDhEHW&oK&uf)5TQ(p zXlyhXj3SkYygqw(A_54H!w1Iw-R2z+Q?M1h5IT)awf@gI_LRW*FIEwDY1bpauXCcx z;{BUtrw3A0FU18m5?AP?a5Ya4s2*dSp$)=+bqa2qD+cg54%W>1dS3+kg7M=pxMd?S z>Ybj-O~@X^t$-|wYK3UTR1+xELVKgA`wKgXu2_Kpl~kXx7u)s@XD8$V;%l~f>$Fkd zWD8XbJ5%Nn?Tg6LQM~K1j%oB`&W#BymsjT}riVu_tgkO`UD>~Jtz>a|;qYciS}k%#6&X3529LStwU@K8a&s(>I*#jd3J-yc=G|QBSX!Bev(S-cVGo*9 zOUUHs_JBB0P_D23hM)I!O>^e{U%C5~O=$MBZ5TT>Vb*w_vaiDOspPq z6#asMU$2;ki8YwHFwP$23=i=Q-q7RLe77!o1^c5hWi_PXpZP{DKwrT39 z=o@}H9*->W)*L0M#6Wa&&JS)KizP}Hbn=2Pv@yg01N2eLYhG|q(+?<48BoJLo>R?F ze!`*DEeBngL}khO>k4`Cra^d|Bt-AF1sY&;$0T$eebb!HB#@1>>{tT|4c3F>% zGE3#EF|*0t8CsM1w_!!j&jdlr^vZ)KPOmo##(n)vJWqr{J2#!q8(+*OGO1LO19*b$ z3JR#93Prb2O}%j>W}yZ-w=RSFw!B1sN=iDH!x7^2Y`#=CwXiVOGQgc9|4#@>MwX^# zW)4~gn%%a45&}ERf98U2zTbW7t0TPmS$RVz)_Z^**4rdNX_s13=oA8x7#YQgA~R#7 zquEpvl}M&WG%+fg$zafEiJ*-xyU;+BUTUF(Zq&BY!w>^l>Z6@zI8FOPyY4jQV8H1H z>1;N!xU>|Y;AyXQ%bbNC40vR9T%Q*g@SBU-pknaqUB%oxm=*LGFHzm8uTI~_s@jR7 zP1J39!qvF3_1o+3KA6gR>JVnyM@|j&qJETG@gfEOZ9un4TduyMmy{YhNktImI;COy zl)j>u)RVxD6AK2AaaEo~@r?c>`K6pgj9yi^^d0?A917nAjv?KS${?!0rPFE;$iP4V z0~!r~&$Lv*>LYR9Mj{xAa*LV`gU(?JY0xo<{C&VvN5uD!vo3{19D?Xl(mdtNb@&WZ z?{WmVnZfiAy3A(3B$bL?b==%fP0RpN!|vh$?2JUorqS(J*;;kc1hlEMKAK+s(d)GK zMfNnO>mT<|2891dqhU5m6t>EFD_i`w&wlp#(7QLDx9cv?6(7=n>+9>+Z4ATGoqX53 zc-FEUzk;pRvsTYw6T2}cAcRO6zC96ObU({7JTD2s=wrB2rT09UPN!03A(7ZXDv3-6 zG%W;!o*Eq73Xvh|TGcr9WGQz*&?8Ngl3VUcqo%5ni&>?TN~?;{@LU@-t=qEdq9Szp zAElci3Vfv}JZD={+HU$mvZA^&NH)8xn$4(;ELAQ~CnHtj+7DdUa;_|N45RJ39|U0- z6kKwsQkWkt|A0i#Q1vTw?5BK(_>5MpJqJxnIIG{4wU5b`+ z{DkagNsxkb#s+{TdLqH0UF2kAj&CS|oB`eU<+YyY=sN+H!EuVDux092SFf@eVI0DW zcgd=xx9Td=x%iCo96tX}RT2165-sR3Y2Wfj7j!{VQ~vXExX6@CShT^n)#vMSw|pJF zT&!e-**+FN7h6ZC-8d`u$rH-PF>0qZ8UX(^2@uyQX3QU!%{#4OIvWpbZ||Ixl`xpK zm4S-Kyl+CsAv1!2uYBPJceueLa>-%?O(gVs%Xnjw7jpDKJ$kswWB#LzQU;sYYqFrI z?e7@@e*eR!ZWB6&Ozt>#p;{gEm}l|#kxs<821F%prmi+HVoID&)wF0d%VA9gl_k+q zr<)_H6(PmiZ6T%FO7D)MIi*ABh}g%vHyO23_fVI)2oZZ|alKMALz5pafZFX{91T>I zG%WntNBZ(GRSoKo9dn=z+F3DFD1h&5=C03Fe^qr4n{=3hPTUX*2K`Q+(9{4>s#59n zo*Dr*U5S)Uendh|KO-zRD{3%W|1hy8Htg2fU~%ffk-)k{wBKgL-FIlNHjXEErUVH6 z=0Q#Prcm=R)s zHSW_$DR20Ti#(xQ^u&Sf$K`_eozYKT5B7j0VKcVY6XfB#EG@P8S7k)nXM%NHUol%O z!*UtBfPs!JTeI56>Ng~74UWTN(%E_Il=GQ|qC}F8mBzdtNs#cYMWc?Wl)YL_-bymi z`H&$SR{astQ|hRtO?T9-N|NkscKIq)$eKoo{1PJGlVu2XE3BC~_bOzfnjF(mEk&zZ z>b$#Kt0aHZ(G}aQAIq%`5jtu{a|3s0$FiCls)@v!`SZ0t3Gpqreak&VL5rOS<)=5d ztvKvoG}HXMz_zvLZ}t_)O#hgNd#lDBsebLs32oK^I}?q@!< z{w)Hq*ojnTIWgJqW27!Ex5jC_>+^w(f7AU;*>EkXAdF<_QVAaTz}2)Qdj0SEm_B*y z@qNJ3{uh6FPd^t}XYI5!rxa*Ro6Y`$IJ&Nz9?@kH)U&4$C5|_)-vS{L0Y9EjT-5?rLv92E zML`mvs>oa^5ffe)%^>t8NN3zxfL3S>rL~wMlO~Ee5ttgbv7g` z?4<8;g(c>qYt4X7SiH1c{f)v=y&2bT_l@tSdB4WkkZ`OY!*U4SD0z^}C+6&#B@O=N z)FY?6ITLv;NKPzY8}h+F5$DB}EqVLY^Ty3evM`t`eQ?%}RXoaV%#5rR`>k<6^*hUX zxtq;1oq)${>?S5Pr@S^9os*Iwfer2G!`gK`2`bh-FC}mat0%h84+)A{>oYDYu z?8$5~ce>I1(#~IX8~__?&krJ7-Yr$56RaOcKznOFd>8@VPW(Z{7!ywY%iT zL$czvkT8X3`9N_XZlx#pA!mN|hJg-V5@7yZlc-TjI#idsoGh1q_2XILb|mbUSJz^M z(FE>LT}pGZ9Q&WMB5XkL0_ejM*c4L18v&9JQa_+IkhHt8jCtgY2jNFR%$~pT21073tJDF*;u4F~;9K=OzEbagjTR zc4+lg#_`$NTq-jNSgA50<gCoBuDB{9XL-@|xR!y`}Z{_NmF zD2O6W%OzUI7)z3by~d7Um4@lSpb*%HO~+mwy+p&|K8}PGJ`}UGnDFj_11o0@nPE60 z2udc`yqWIPBDH{Ng)+kI@!p9lQ%XtUj=c73dn;99YR;}geKHd6@R_MiD_J_G7$y3e zrpat(O?$5~ZG&m?He45aE{gC*og74b`=4BET3XEgh9q=9^qSF=oPo6uS)9A}vq}t~ zil6^sX&9Xu`wsf(gx8Cc5>$>Ig#^@x7?9A#gxKKu4nP zE}Y_SQ#vHYts~8SnJ6EYztCjR>8q0O6 zQi0Ff=Kt*=0Y(v8`Mr@;DspwQtEuy8XWssR`vF>V5X+7z5#G>-H{Egk*l|dC#N)Kt zQRPk%eB{U>n1s0{7Qenn*Rlor=qoI%nAtWDOhvx%^gj(x6*z@7S{qiiTuiMezmTph zS0)=4Vh~FMaW#sT%$kWQcf+P5)iTm{A5~1O-46K_gi`rLaaJzIqfzjHGP(6)q$Um_ ziZ5;!H)jjNCH-eCWQ^D9y8p&-czS(fZT))n(eUN}^{hSe^!K&F#i%saLsfqwq}AsAc)l}3vq<0(`k zi5L(R7#`Lv(>^4b0cMJJ2vM=FbWc53JZ6KWIo)@oaGXQpuukBHSPVdQmRyGY|9a>`g_uG zGg<8T5C%_YXCbVbe2Pf6R^3ozjGL=@;cudl!Y^cEPK$hRl zJivIIS&41~g=HBI4hg*Aa$iX)AYuWiHiWn~kr_2SHHNrz5K&>+;G8r?u>y%aL5XLc z-TKSp91gL;!4M>1fd!$P_$McWQ!ba;%0?>kYpX`R-Y8&(Ru-+(KQyfLfK)X56H5+9 zQ%~{*hjVz%GI_jI{WKM#ipjsTv#aaEEN8uMi^{);g>%aDkzXN@IUb0l3F_{Kl_mN_ z&wxG-!q_TQBne7Fibar48B$tfeeh*_W9qy6LCOnWxhWJ#z_ew!bKMcK53u4FX4>V( zq7>xKvnNZ%8T^4|R+a8SO-H4r@73DnT-aWhi*@HUCn1o86pUERW7^9PTDuIF@0A61 zuh04r3;+ib7$BRW4%@~oGqpNb>xUIX(=Wu-mln^$zOc2N|N8i!a1_jS-YM0&~VY9QqJZax98u^CW+=cL}zV{jRR5UYEIW4-dk zmkKO`gI*fPa|v1P`v*jV&{??N6L7pnI&-l{%VupTgZohibEraQqBa8A&5xfc7BcBf zsZ!48^3`gt5Z(LG+G-}Zwy;R;LQvtSs(Jq3&-XLdt97|wo!H%(zFIr>-T<>Ni?!W< z6!7a_k+Y9(Ws$6G}RoiRhWYDg@KM|XD*kd@Y|Ve&4R6zpt;m2W--E(B^V_c5+td2dOW0W4RK<^~`|v zT}Nok=qz%~T&z|cwX{&IP*kA=vbKFT6bw#@1i{Y&H6=IE6*~*OK^>A#;!i(uZ3!Hx zOo&dYJB_NMgfC>}a`KXjs&1a8!6|8M+iu9(U@HG4+o~sFpv|Q3Zco)6EgyRfK#6iH zLumnqRVeKJVm5E^mt<8C8|$P9MwEu}}@%q#~lRM;QuL^8Ow5j-COF)tfUhgyT6~Z%?#9#5qe4okdvq z=m4kj1*0-H*%jTkY>eTko8lOma-c_J{9Q}l}%^7CY=w|7Ysp!2! zpFiCx>{?V;rc-^;7LP5?b!WxZ@%$j!-NF5qzkzB4+VDs*TrB32r;ybb-(4o%l!~x6 zEnVQ>V#F`|jWfj+>3C#lN{%Jc{&u~mS;qlSipL>$*IkwVb#Z?XL02(!uif7HvJl40 zoVLc+S!KQsRmiiPBumLVYbu_E()s06np#_3Aj}I=474YSZA(AqdO_f~v=B_*rKpCk z*@5RdKH&UdCP6Y}O_P~CyW}{Q< zN*I<_&SZt~hS*;URlsrUdWGrpqc5C;a=kM(&dGyU zVY5%@@dyAI5OVOu?~i_eH{kbKlm-AkIrxOa`-^XX4b$z}s|i2cr>2#FgV66Plk9!a z8*TBmw+2uw_HU4c6~~yhLIA%Iy_5YEvK>8u_{F_km9@klQr1RFcXb6w-{5i0UJFGQVadMx$>ONV#@VF)MA-9t5*oXDSOx7-RXZ)C7;BLhQ zS`MTb-_cX!&7*#Vk1B|uJJ}{+?Jh+K4m;X3L3^JHt=)yKPA}!t7fITPZG6lsz7n*v zNC<|XfA9$J<;s`=DUQ%x+8)BWh?^7F2&UcB1++{*F#CF#X4o$m@amwtR`5EfL#rE{ zrf3L(y}1ka3xRu`BR>62!mjp>qa8(|yB`uNvgtg*e2wQj8aqBb>e=yC#UZTwxH0Q2 zpK$Vs6$;%p(`cA1^~s~)d08GGEDN5Tc$ z9T4TB%RbwGm75&nl?K0I&68G-l*yzr;?UHNQ)WC?n|L?nDaY*|K)%82q3gu`s4_3TgT6{BCRK?w3C_e-l%RX%~GCb zq8p{+lQ1NDhz>m%-xgm=+Gc4~n7Ye&v1^>j}2_&W?}+Rfi4_k4WHsJo~V21#lpWAPxV#g)mpL) zieC~?w>rDH##yyXcXIiz_W826^Pi^AFDk6N{8=hzIjUl*FM5dmm@n_(Z0mUScimJF z4zalLXP5~PPjiCtC+G1u({VKA6aZ)Z&3syjn+O;@s;qQ$3R+GWoKe~r5*j`4h#yI6hu!uc0Ph6vg1|kV`+@zwCk6{}t^=RS&QkB} z;r=q3k9yj@G3SnR#|?sMyfSay4-W>G>8o}M`V0GB4sY$Zb(RqXbf5zr{J;;qU48*J zU%5Fixh1fh@J*Ja!Q=Q8>6`wZG2VIDIk!C9rE#Fz@eV-Vw6^bRPg$ zz%scYd@p8(a0t*2EW((HWA(RR({6p+*Wn0g;Q_!a$H+2-Kh}paV_5{_NQ$H!AyK>s z6HVEV2m3;&PBor+2#!jGfT=hy@)qSyTk`VBih24DzoVX1x#!0^asK4~7C@t|UX(7Z zK-*VuT;&sF>jYarAqpncq6sr^!evZ^DMgY>EDB%$qOpRC!SJjP5&P9w)b%6AU;Uro z0gjtujIkyQH%o>zV}zK#c%@uFhe$QmM5SrEUt}pd(|Yi9#%t6NrRnQvya}h$v^K3{ z??DqyW8!OujF$FHxu4gAZ`vpAo${ms7&OsXV@#njWWMkmsnfSKqM-z8Y_OPk*(P$- zLN_jnEqlFOg-uOhQ>AK4*2$SpkXm=6MGvK8KFesP^W)a_^w~@`&A6(k8MR#dlm`IqDb1NZkgj4WCx@c5u;2LO=0WC!f`pUcKlIh%qakpu_x zpg||aKTh#L@2XT+G(|)LqH4RriGi%z6lZZKT-?aeP1jt{h@9GKxH4vuiW`x&DeiZx z^)Qao+WTh9WW0mcxb2qaY_rRr;Mz{d^q58sk6d{2qP8~0TSTz=(z~|z+;P{0JgKg2 z(zD3`em`{eE{K1@0(@{HbeOQ=!s}IJ5yDI~*_4PTMJm!XQ5 zW||=_TJ#t(MT?0QTc0>Z>+8PkVvcV_7J;O#`r&gEN;JS=e^LgDbqq4A6l$=))Pv14 zUzs^(n_F7xWt6Gbkg~*zE4v)=C&x-ex>pIiL^Us%Cs3e z?IP#R(A3zSy>7!ML3Tgo@sM`W+DU*BD9A{o*>&6{yDrTg$QO= z^Ixo_;P*z`Z0|^C%Pi@xZatmsfj<2P3>q?Q#3(MQxKH8c%oD>1is1xFB_p>8ZMUoU;gnQ38K&#EDlc~lE{=VF)}f;u(Gjp zaB|PZ1CKoM%nPr)@s46DGzQxaWyPjh!aeqr`RMMfSd+NUOA;mIcISRqA+5%{dOT`t zF-(iGD8I4l;tzBsK2JlLYHIu(lxNb<%L+d0I^8jtD_{D$ke3rnuK;7jJ}IvoduAE2 zGb7*3ybCBd(PhiPSnkSD-Vd(!5q%@(*|zTgZQSI2^spr#(gD`l@@bBvKOI2AnY!bb zrFVi=IV}szclV-v8EvvdC9NLc7k}yd>K{fB66s7H@7bMobViEy0 zD`eS88ta8$m986c_aSB<Pl(bFZs`{u@)YYns= z@NoAJ2va%!?ieFvkKf!FXr_NT!G3w@^_WFh;tAdME2>*zKU_;!$C}GQ`vU666IF^ zGEov!P-~_}qOfK%sslA92}0%=&Kn{x0^dzKUFU%MN!hox?)}@ckJ!I{QjWvS?WTv} zP&lP@>u}VfXuSTnrCXb#EKyUEyloe`dCPc%dzkDZvW#UHk-c1YQ`twzep2>wSp|MX zjB@~%jzKTm=61i@qJ|z3g^KXA8;Es=D(C?a5}*h_%h5-LbwD9d*#Rm9VTC?S8-eqb z7hDH~+F!d-3=nte>jbvIw+;kOTFnkU073#3P8xj#0)S@;R0sqDeFOp_F9?K!-6#f# zOJFF08u2YwL_f!`#^~eQbKOiVK2A(6qO#f9E~N{f3E(YH#DS#1RsvbQK zL`?#MIi1y$(+ASGa)Nsihc~ z{W6eKL-gs6Fjkm~%W|yomZ^|>dFx$zIunmKNF`;lgjjwm>TWM4{*ZFs&CAx^ZMOSx zr`*_0M``_`9Iu;ZmgUX9lCE)g_3(jh=`>}3?9|-;+9)GK4Gs}R>PyU6?;Tz}VJ;rc zi++avB|%=!>cK6gs@cWGY{`f}#jraOTrz5Zw7-W5ny@P@U$0TB6YrDS28X$rXPZCP Nbbjo<_)pE-egXVjy3GIp diff --git a/public/fonts/inter-latin-normal.woff2 b/public/fonts/inter-latin-normal.woff2 deleted file mode 100644 index b0d0e2e5c6bc11bf3696f830d73b4f7077cc33a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72920 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