gitextract_v1_e28b6/ ├── .cursor/ │ └── skills/ │ ├── create-keybind/ │ │ └── SKILL.md │ └── create-setting-item/ │ └── SKILL.md ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── no-issues.yml │ ├── copilot-instructions.md │ ├── scripts/ │ │ ├── enable-sourcemap.mjs │ │ ├── generate-changelog.mjs │ │ ├── generate-pkgbuild.mjs │ │ ├── set-tauri-features.mjs │ │ └── set-version.mjs │ └── workflows/ │ ├── nightly.yml │ ├── publish.yml │ ├── release.yml │ └── render-docs-svg.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .lintstagedrc ├── .prettierignore ├── .prettierrc ├── .trae/ │ ├── documents/ │ │ ├── plan_20251223_165257.md │ │ ├── plan_20260101_170503.md │ │ ├── 为LineEdge添加虚线形态属性.md │ │ ├── 为RecentFilesWindow添加独立的隐私模式功能.md │ │ ├── 优化Tab键和反斜杠键创建节点的字体大小.md │ │ ├── 优化嫁接操作与添加反向操作.md │ │ ├── 优化文本节点渲染判断逻辑.md │ │ ├── 修复Ctrl+T快捷键只能触发一个功能的问题.md │ │ ├── 修复引用块转换时连线悬空问题.md │ │ ├── 全局快捷键重构方案.md │ │ ├── 在快捷键设置页面添加重置所有快捷键按钮.md │ │ ├── 实现 Section 的 isHidden 属性功能.md │ │ ├── 实现Section框大标题相机缩放阈值控制.md │ │ ├── 实现关闭软件前的未保存文件警告.md │ │ ├── 实现图片节点拖拽缩放功能.md │ │ ├── 实现引用块节点的精准连线定位.md │ │ ├── 实现快捷键开关功能.md │ │ ├── 实现搜索范围选项.md │ │ ├── 实现背景图片功能和背景管理器.md │ │ ├── 引用块节点精准连线定位功能问题记录.md │ │ ├── 文本节点自定义文字大小功能设计方案.md │ │ ├── 添加大标题遮罩透明度设置.md │ │ ├── 添加快捷键冲突检测和提醒功能.md │ │ └── 粘贴bug崩溃报告.txt │ └── skills/ │ ├── create-keybind/ │ │ └── SKILL.md │ └── create-setting-item/ │ └── SKILL.md ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── .zed/ │ └── settings.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── TODO.md ├── app/ │ ├── .browserslistrc │ ├── LICENSE │ ├── README.md │ ├── components.json │ ├── index.html │ ├── package.json │ ├── scripts/ │ │ ├── sync-locales.ts │ │ └── tauri_build.js │ ├── splash.html │ ├── src/ │ │ ├── App.tsx │ │ ├── DropWindowCover.tsx │ │ ├── ProjectTabs.tsx │ │ ├── assets/ │ │ │ └── versions.json │ │ ├── cli.tsx │ │ ├── components/ │ │ │ ├── context-menu-content.tsx │ │ │ ├── editor/ │ │ │ │ ├── editor-base-kit.tsx │ │ │ │ ├── plugins/ │ │ │ │ │ ├── align-base-kit.tsx │ │ │ │ │ ├── basic-blocks-base-kit.tsx │ │ │ │ │ ├── basic-blocks-kit.tsx │ │ │ │ │ ├── basic-marks-base-kit.tsx │ │ │ │ │ ├── basic-marks-kit.tsx │ │ │ │ │ ├── callout-base-kit.tsx │ │ │ │ │ ├── code-block-base-kit.tsx │ │ │ │ │ ├── code-block-kit.tsx │ │ │ │ │ ├── column-base-kit.tsx │ │ │ │ │ ├── comment-base-kit.tsx │ │ │ │ │ ├── comment-kit.tsx │ │ │ │ │ ├── date-base-kit.tsx │ │ │ │ │ ├── discussion-kit.tsx │ │ │ │ │ ├── fixed-toolbar-kit.tsx │ │ │ │ │ ├── floating-toolbar-kit.tsx │ │ │ │ │ ├── font-base-kit.tsx │ │ │ │ │ ├── font-kit.tsx │ │ │ │ │ ├── indent-base-kit.tsx │ │ │ │ │ ├── indent-kit.tsx │ │ │ │ │ ├── line-height-base-kit.tsx │ │ │ │ │ ├── link-base-kit.tsx │ │ │ │ │ ├── link-kit.tsx │ │ │ │ │ ├── list-base-kit.tsx │ │ │ │ │ ├── list-kit.tsx │ │ │ │ │ ├── markdown-kit.tsx │ │ │ │ │ ├── math-base-kit.tsx │ │ │ │ │ ├── math-kit.tsx │ │ │ │ │ ├── media-base-kit.tsx │ │ │ │ │ ├── mention-base-kit.tsx │ │ │ │ │ ├── suggestion-base-kit.tsx │ │ │ │ │ ├── suggestion-kit.tsx │ │ │ │ │ ├── table-base-kit.tsx │ │ │ │ │ ├── table-kit.tsx │ │ │ │ │ ├── toc-base-kit.tsx │ │ │ │ │ └── toggle-base-kit.tsx │ │ │ │ └── transforms.ts │ │ │ ├── key-tooltip.tsx │ │ │ ├── render-sub-windows.tsx │ │ │ ├── right-toolbar.tsx │ │ │ ├── theme-mode-switch.tsx │ │ │ ├── toolbar-content.tsx │ │ │ ├── ui/ │ │ │ │ ├── ai-node.tsx │ │ │ │ ├── ai-toolbar-button.tsx │ │ │ │ ├── alert-dialog.tsx │ │ │ │ ├── alert.tsx │ │ │ │ ├── align-toolbar-button.tsx │ │ │ │ ├── avatar.tsx │ │ │ │ ├── block-discussion.tsx │ │ │ │ ├── block-list-static.tsx │ │ │ │ ├── block-list.tsx │ │ │ │ ├── block-selection.tsx │ │ │ │ ├── block-suggestion.tsx │ │ │ │ ├── blockquote-node-static.tsx │ │ │ │ ├── blockquote-node.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── callout-node-static.tsx │ │ │ │ ├── callout-node.tsx │ │ │ │ ├── caption.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── code-block-node-static.tsx │ │ │ │ ├── code-block-node.tsx │ │ │ │ ├── code-node-static.tsx │ │ │ │ ├── code-node.tsx │ │ │ │ ├── collapsible.tsx │ │ │ │ ├── column-node-static.tsx │ │ │ │ ├── column-node.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── comment-node-static.tsx │ │ │ │ ├── comment-node.tsx │ │ │ │ ├── comment-toolbar-button.tsx │ │ │ │ ├── comment.tsx │ │ │ │ ├── context-menu.tsx │ │ │ │ ├── date-node-static.tsx │ │ │ │ ├── date-node.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ ├── editor-static.tsx │ │ │ │ ├── editor.tsx │ │ │ │ ├── emoji-node.tsx │ │ │ │ ├── emoji-toolbar-button.tsx │ │ │ │ ├── equation-node-static.tsx │ │ │ │ ├── equation-node.tsx │ │ │ │ ├── equation-toolbar-button.tsx │ │ │ │ ├── export-toolbar-button.tsx │ │ │ │ ├── field.tsx │ │ │ │ ├── file-chooser.tsx │ │ │ │ ├── fixed-toolbar-buttons.tsx │ │ │ │ ├── fixed-toolbar.tsx │ │ │ │ ├── floating-toolbar-buttons.tsx │ │ │ │ ├── floating-toolbar.tsx │ │ │ │ ├── font-color-toolbar-button.tsx │ │ │ │ ├── font-size-toolbar-button.tsx │ │ │ │ ├── heading-node-static.tsx │ │ │ │ ├── heading-node.tsx │ │ │ │ ├── highlight-node-static.tsx │ │ │ │ ├── highlight-node.tsx │ │ │ │ ├── history-toolbar-button.tsx │ │ │ │ ├── hr-node-static.tsx │ │ │ │ ├── hr-node.tsx │ │ │ │ ├── import-toolbar-button.tsx │ │ │ │ ├── indent-toolbar-button.tsx │ │ │ │ ├── inline-combobox.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── insert-toolbar-button.tsx │ │ │ │ ├── kbd-node-static.tsx │ │ │ │ ├── kbd-node.tsx │ │ │ │ ├── key-bind.tsx │ │ │ │ ├── line-height-toolbar-button.tsx │ │ │ │ ├── link-node-static.tsx │ │ │ │ ├── link-node.tsx │ │ │ │ ├── link-toolbar-button.tsx │ │ │ │ ├── link-toolbar.tsx │ │ │ │ ├── list-toolbar-button.tsx │ │ │ │ ├── mark-toolbar-button.tsx │ │ │ │ ├── markdown.tsx │ │ │ │ ├── media-audio-node-static.tsx │ │ │ │ ├── media-audio-node.tsx │ │ │ │ ├── media-file-node-static.tsx │ │ │ │ ├── media-file-node.tsx │ │ │ │ ├── media-image-node-static.tsx │ │ │ │ ├── media-image-node.tsx │ │ │ │ ├── media-toolbar-button.tsx │ │ │ │ ├── media-toolbar.tsx │ │ │ │ ├── media-video-node-static.tsx │ │ │ │ ├── media-video-node.tsx │ │ │ │ ├── mention-node-static.tsx │ │ │ │ ├── mention-node.tsx │ │ │ │ ├── menubar.tsx │ │ │ │ ├── mode-toolbar-button.tsx │ │ │ │ ├── more-toolbar-button.tsx │ │ │ │ ├── paragraph-node-static.tsx │ │ │ │ ├── paragraph-node.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── progress.tsx │ │ │ │ ├── resize-handle.tsx │ │ │ │ ├── select.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── sheet.tsx │ │ │ │ ├── sidebar.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── slider.tsx │ │ │ │ ├── sonner.tsx │ │ │ │ ├── suggestion-node-static.tsx │ │ │ │ ├── suggestion-node.tsx │ │ │ │ ├── suggestion-toolbar-button.tsx │ │ │ │ ├── switch.tsx │ │ │ │ ├── table-icons.tsx │ │ │ │ ├── table-node-static.tsx │ │ │ │ ├── table-node.tsx │ │ │ │ ├── table-toolbar-button.tsx │ │ │ │ ├── tabs.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ ├── toc-node-static.tsx │ │ │ │ ├── toc-node.tsx │ │ │ │ ├── toggle-node-static.tsx │ │ │ │ ├── toggle-node.tsx │ │ │ │ ├── toggle-toolbar-button.tsx │ │ │ │ ├── toolbar.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ ├── tree.tsx │ │ │ │ └── turn-into-toolbar-button.tsx │ │ │ ├── vditor-panel.tsx │ │ │ └── welcome-page.tsx │ │ ├── core/ │ │ │ ├── Project.tsx │ │ │ ├── algorithm/ │ │ │ │ ├── arrayFunctions.tsx │ │ │ │ ├── geometry/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── convexHull.tsx │ │ │ │ ├── numberFunctions.tsx │ │ │ │ ├── random.tsx │ │ │ │ └── setFunctions.tsx │ │ │ ├── fileSystemProvider/ │ │ │ │ ├── FileSystemProviderDraft.tsx │ │ │ │ └── FileSystemProviderFile.tsx │ │ │ ├── interfaces/ │ │ │ │ └── Service.tsx │ │ │ ├── loadAllServices.tsx │ │ │ ├── plugin/ │ │ │ │ ├── PluginCodeParseData.tsx │ │ │ │ ├── PluginWorker.tsx │ │ │ │ ├── README.md │ │ │ │ ├── UserScriptsManager.tsx │ │ │ │ ├── apis.tsx │ │ │ │ └── types.tsx │ │ │ ├── render/ │ │ │ │ ├── 3d/ │ │ │ │ │ └── README.md │ │ │ │ ├── canvas2d/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── basicRenderer/ │ │ │ │ │ │ ├── ImageRenderer.tsx │ │ │ │ │ │ ├── curveRenderer.tsx │ │ │ │ │ │ ├── shapeRenderer.tsx │ │ │ │ │ │ ├── svgRenderer.tsx │ │ │ │ │ │ └── textRenderer.tsx │ │ │ │ │ ├── controllerRenderer/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── drawingRenderer.tsx │ │ │ │ │ ├── debugRender.tsx │ │ │ │ │ ├── entityRenderer/ │ │ │ │ │ │ ├── CollisionBoxRenderer.tsx │ │ │ │ │ │ ├── EntityDetailsButtonRenderer.tsx │ │ │ │ │ │ ├── EntityRenderer.tsx │ │ │ │ │ │ ├── ReferenceBlockRenderer.tsx │ │ │ │ │ │ ├── edge/ │ │ │ │ │ │ │ ├── EdgeRenderer.tsx │ │ │ │ │ │ │ ├── EdgeRendererClass.tsx │ │ │ │ │ │ │ └── concrete/ │ │ │ │ │ │ │ ├── StraightEdgeRenderer.tsx │ │ │ │ │ │ │ ├── SymmetryCurveEdgeRenderer.tsx │ │ │ │ │ │ │ └── VerticalPolyEdgeRenderer.tsx │ │ │ │ │ │ ├── multiTargetUndirectedEdge/ │ │ │ │ │ │ │ └── MultiTargetUndirectedEdgeRenderer.tsx │ │ │ │ │ │ ├── section/ │ │ │ │ │ │ │ └── SectionRenderer.tsx │ │ │ │ │ │ ├── svgNode/ │ │ │ │ │ │ │ └── SvgNodeRenderer.tsx │ │ │ │ │ │ ├── textNode/ │ │ │ │ │ │ │ └── TextNodeRenderer.tsx │ │ │ │ │ │ └── urlNode/ │ │ │ │ │ │ └── urlNodeRenderer.tsx │ │ │ │ │ ├── renderer.tsx │ │ │ │ │ └── utilsRenderer/ │ │ │ │ │ ├── RenderUtils.tsx │ │ │ │ │ ├── WorldRenderUtils.tsx │ │ │ │ │ ├── backgroundRenderer.tsx │ │ │ │ │ ├── globalMaskRenderer.tsx │ │ │ │ │ └── searchContentHighlightRenderer.tsx │ │ │ │ ├── domElement/ │ │ │ │ │ ├── RectangleElement.tsx │ │ │ │ │ └── inputElement.tsx │ │ │ │ └── svg/ │ │ │ │ ├── README.md │ │ │ │ └── SvgUtils.tsx │ │ │ ├── service/ │ │ │ │ ├── AssetsRepository.tsx │ │ │ │ ├── FeatureFlags.tsx │ │ │ │ ├── GlobalMenu.tsx │ │ │ │ ├── QuickSettingsManager.tsx │ │ │ │ ├── Settings.tsx │ │ │ │ ├── SettingsIcons.tsx │ │ │ │ ├── SubWindow.tsx │ │ │ │ ├── Telemetry.tsx │ │ │ │ ├── Themes.tsx │ │ │ │ ├── Tourials.tsx │ │ │ │ ├── UserState.tsx │ │ │ │ ├── controlService/ │ │ │ │ │ ├── DirectionKeyUtilsEngine/ │ │ │ │ │ │ └── directionKeyUtilsEngine.tsx │ │ │ │ │ ├── MouseLocation.tsx │ │ │ │ │ ├── autoLayoutEngine/ │ │ │ │ │ │ ├── autoLayoutFastTreeMode.tsx │ │ │ │ │ │ └── mainTick.tsx │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── Controller.tsx │ │ │ │ │ │ ├── ControllerClass.tsx │ │ │ │ │ │ └── concrete/ │ │ │ │ │ │ ├── ControllerAssociationReshape.tsx │ │ │ │ │ │ ├── ControllerCamera/ │ │ │ │ │ │ │ └── mac.tsx │ │ │ │ │ │ ├── ControllerCamera.tsx │ │ │ │ │ │ ├── ControllerContextMenu.tsx │ │ │ │ │ │ ├── ControllerCutting.tsx │ │ │ │ │ │ ├── ControllerEdgeEdit.tsx │ │ │ │ │ │ ├── ControllerEntityClickSelectAndMove.tsx │ │ │ │ │ │ ├── ControllerEntityCreate.tsx │ │ │ │ │ │ ├── ControllerEntityLayerMoving.tsx │ │ │ │ │ │ ├── ControllerEntityResize.tsx │ │ │ │ │ │ ├── ControllerImageScale.tsx │ │ │ │ │ │ ├── ControllerNodeConnection.tsx │ │ │ │ │ │ ├── ControllerNodeEdit.tsx │ │ │ │ │ │ ├── ControllerPenStrokeControl.tsx │ │ │ │ │ │ ├── ControllerPenStrokeDrawing.tsx │ │ │ │ │ │ ├── ControllerRectangleSelect.tsx │ │ │ │ │ │ ├── ControllerSectionEdit.tsx │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── utilsControl.tsx │ │ │ │ │ ├── keyboardOnlyEngine/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── keyboardOnlyDirectionController.tsx │ │ │ │ │ │ ├── keyboardOnlyEngine.tsx │ │ │ │ │ │ ├── keyboardOnlyGraphEngine.tsx │ │ │ │ │ │ ├── keyboardOnlyTreeEngine.tsx │ │ │ │ │ │ ├── newTargetLocationSelector.tsx │ │ │ │ │ │ └── selectChangeEngine.tsx │ │ │ │ │ ├── rectangleSelectEngine/ │ │ │ │ │ │ └── rectangleSelectEngine.tsx │ │ │ │ │ ├── shortcutKeysEngine/ │ │ │ │ │ │ ├── GlobalShortcutManager.tsx │ │ │ │ │ │ ├── KeyBinds.tsx │ │ │ │ │ │ ├── KeyBindsUI.tsx │ │ │ │ │ │ ├── ShortcutKeyFixer.tsx │ │ │ │ │ │ └── shortcutKeysRegister.tsx │ │ │ │ │ └── stageMouseInteractionCore/ │ │ │ │ │ └── stageMouseInteractionCore.tsx │ │ │ │ ├── dataFileService/ │ │ │ │ │ ├── AutoSaveBackupService.tsx │ │ │ │ │ ├── RecentFileManager.tsx │ │ │ │ │ └── StartFilesManager.tsx │ │ │ │ ├── dataGenerateService/ │ │ │ │ │ ├── autoComputeEngine/ │ │ │ │ │ │ ├── AutoComputeUtils.tsx │ │ │ │ │ │ ├── functions/ │ │ │ │ │ │ │ ├── compareLogic.tsx │ │ │ │ │ │ │ ├── mathLogic.tsx │ │ │ │ │ │ │ ├── nodeLogic.tsx │ │ │ │ │ │ │ ├── programLogic.tsx │ │ │ │ │ │ │ └── stringLogic.tsx │ │ │ │ │ │ ├── logicNodeNameEnum.tsx │ │ │ │ │ │ └── mainTick.tsx │ │ │ │ │ ├── crossFileContentQuery.tsx │ │ │ │ │ ├── dataTransferEngine/ │ │ │ │ │ │ └── dataTransferEngine.tsx │ │ │ │ │ ├── generateFromFolderEngine/ │ │ │ │ │ │ └── GenerateFromFolderEngine.tsx │ │ │ │ │ ├── generateScreenshot.tsx │ │ │ │ │ ├── stageExportEngine/ │ │ │ │ │ │ ├── BaseExporter.tsx │ │ │ │ │ │ ├── MarkdownExporter.tsx │ │ │ │ │ │ ├── MermaidExporter.tsx │ │ │ │ │ │ ├── PlainTextExporter.tsx │ │ │ │ │ │ ├── StageExportPng.tsx │ │ │ │ │ │ ├── StageExportSvg.tsx │ │ │ │ │ │ ├── TabExporter.tsx │ │ │ │ │ │ └── stageExportEngine.tsx │ │ │ │ │ └── stageImportEngine/ │ │ │ │ │ ├── BaseImporter.tsx │ │ │ │ │ ├── GraphImporter.tsx │ │ │ │ │ ├── MarkdownImporter.tsx │ │ │ │ │ ├── MermaidImporter.tsx │ │ │ │ │ ├── TreeImporter.tsx │ │ │ │ │ └── stageImportEngine.tsx │ │ │ │ ├── dataManageService/ │ │ │ │ │ ├── ComplexityDetector.tsx │ │ │ │ │ ├── aiEngine/ │ │ │ │ │ │ ├── AIEngine.tsx │ │ │ │ │ │ └── AITools.tsx │ │ │ │ │ ├── colorSmartTools.tsx │ │ │ │ │ ├── connectNodeSmartTools.tsx │ │ │ │ │ ├── contentSearchEngine/ │ │ │ │ │ │ └── contentSearchEngine.tsx │ │ │ │ │ ├── copyEngine/ │ │ │ │ │ │ ├── VirtualClipboard.tsx │ │ │ │ │ │ ├── copyEngine.tsx │ │ │ │ │ │ ├── copyEngineImage.tsx │ │ │ │ │ │ ├── copyEngineText.tsx │ │ │ │ │ │ ├── copyEngineUtils.tsx │ │ │ │ │ │ └── stringValidTools.tsx │ │ │ │ │ ├── dragFileIntoStageEngine/ │ │ │ │ │ │ └── dragFileIntoStageEngine.tsx │ │ │ │ │ └── textNodeSmartTools.tsx │ │ │ │ └── feedbackService/ │ │ │ │ ├── ColorManager.tsx │ │ │ │ ├── SoundService.tsx │ │ │ │ ├── effectEngine/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── concrete/ │ │ │ │ │ │ ├── CircleChangeRadiusEffect.tsx │ │ │ │ │ │ ├── CircleFlameEffect.tsx │ │ │ │ │ │ ├── EdgeCutEffect.tsx │ │ │ │ │ │ ├── EntityAlignEffect.tsx │ │ │ │ │ │ ├── EntityCreateFlashEffect.tsx │ │ │ │ │ │ ├── EntityDashTipEffect.tsx │ │ │ │ │ │ ├── EntityJumpMoveEffect.tsx │ │ │ │ │ │ ├── EntityShakeEffect.tsx │ │ │ │ │ │ ├── EntityShrinkEffect.tsx │ │ │ │ │ │ ├── ExplodeDashEffect.tsx │ │ │ │ │ │ ├── LineCuttingEffect.tsx │ │ │ │ │ │ ├── LineEffect.tsx │ │ │ │ │ │ ├── MouseTipFeedbackEffect.tsx │ │ │ │ │ │ ├── NodeMoveShadowEffect.tsx │ │ │ │ │ │ ├── PenStrokeDeletedEffect.tsx │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── RectangleLittleNoteEffect.tsx │ │ │ │ │ │ ├── RectangleNoteEffect.tsx │ │ │ │ │ │ ├── RectangleNoteReversedEffect.tsx │ │ │ │ │ │ ├── RectanglePushInEffect.tsx │ │ │ │ │ │ ├── RectangleRenderEffect.tsx │ │ │ │ │ │ ├── RectangleSlideEffect.tsx │ │ │ │ │ │ ├── RectangleSplitTwoPartEffect.tsx │ │ │ │ │ │ ├── TextRaiseEffectLocated.tsx │ │ │ │ │ │ ├── ViewFlashEffect.tsx │ │ │ │ │ │ └── ViewOutlineFlashEffect.tsx │ │ │ │ │ ├── effectElements/ │ │ │ │ │ │ └── effectParticle.tsx │ │ │ │ │ ├── effectMachine.tsx │ │ │ │ │ ├── effectObject.tsx │ │ │ │ │ └── mathTools/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── animateFunctions.tsx │ │ │ │ │ ├── easings.tsx │ │ │ │ │ └── rateFunctions.tsx │ │ │ │ └── stageStyle/ │ │ │ │ ├── README.md │ │ │ │ ├── StageStyleManager.tsx │ │ │ │ └── stageStyle.tsx │ │ │ └── stage/ │ │ │ ├── Camera.tsx │ │ │ ├── Canvas.tsx │ │ │ ├── ProjectUpgrader.tsx │ │ │ ├── stageManager/ │ │ │ │ ├── StageHistoryManager.tsx │ │ │ │ ├── StageManager.tsx │ │ │ │ ├── basicMethods/ │ │ │ │ │ ├── GraphMethods.tsx │ │ │ │ │ ├── PenStrokeMethods.tsx │ │ │ │ │ └── SectionMethods.tsx │ │ │ │ └── concreteMethods/ │ │ │ │ ├── LayoutManager.tsx │ │ │ │ ├── README.md │ │ │ │ ├── SectionCollisionSolver.tsx │ │ │ │ ├── StageAutoAlignManager.tsx │ │ │ │ ├── StageDeleteManager.tsx │ │ │ │ ├── StageEntityMoveManager.tsx │ │ │ │ ├── StageManagerUtils.tsx │ │ │ │ ├── StageMultiTargetEdgeMove.tsx │ │ │ │ ├── StageNodeAdder.tsx │ │ │ │ ├── StageNodeConnector.tsx │ │ │ │ ├── StageObjectColorManager.tsx │ │ │ │ ├── StageObjectSelectCounter.tsx │ │ │ │ ├── StageReferenceManager.tsx │ │ │ │ ├── StageSectionInOutManager.tsx │ │ │ │ ├── StageSectionPackManager.tsx │ │ │ │ ├── StageTagManager.tsx │ │ │ │ └── stageNodeRotate.tsx │ │ │ └── stageObject/ │ │ │ ├── README.md │ │ │ ├── abstract/ │ │ │ │ ├── Association.tsx │ │ │ │ ├── ConnectableEntity.tsx │ │ │ │ ├── StageEntity.tsx │ │ │ │ ├── StageObject.tsx │ │ │ │ └── StageObjectInterface.tsx │ │ │ ├── association/ │ │ │ │ ├── CubicCatmullRomSplineEdge.tsx │ │ │ │ ├── Edge.tsx │ │ │ │ ├── EdgeCollisionBoxGetter.tsx │ │ │ │ ├── LineEdge.tsx │ │ │ │ └── MutiTargetUndirectedEdge.tsx │ │ │ ├── collisionBox/ │ │ │ │ └── collisionBox.tsx │ │ │ ├── entity/ │ │ │ │ ├── ConnectPoint.tsx │ │ │ │ ├── ImageNode.tsx │ │ │ │ ├── PenStroke.tsx │ │ │ │ ├── ReferenceBlockNode.tsx │ │ │ │ ├── Section.tsx │ │ │ │ ├── SvgNode.tsx │ │ │ │ ├── TextNode.tsx │ │ │ │ └── UrlNode.tsx │ │ │ └── tools/ │ │ │ └── entityDetailsManager.tsx │ │ ├── css/ │ │ │ ├── index.css │ │ │ └── markdown.css │ │ ├── examples/ │ │ │ └── tauri-global-shortcut-guide.md │ │ ├── hooks/ │ │ │ ├── use-debounce.ts │ │ │ ├── use-mobile.ts │ │ │ └── use-mounted.ts │ │ ├── locales/ │ │ │ ├── README.md │ │ │ ├── en.yml │ │ │ ├── id.yml │ │ │ ├── zh_CN.yml │ │ │ ├── zh_TW.yml │ │ │ └── zh_TWC.yml │ │ ├── main.tsx │ │ ├── state.tsx │ │ ├── sub/ │ │ │ ├── AIToolsWindow.tsx │ │ │ ├── AIWindow.tsx │ │ │ ├── AttachmentsWindow.tsx │ │ │ ├── AutoCompleteWindow.tsx │ │ │ ├── AutoComputeWindow.tsx │ │ │ ├── BackgroundManagerWindow.tsx │ │ │ ├── ColorPaletteWindow.tsx │ │ │ ├── ColorWindow.tsx │ │ │ ├── ExportPngWindow.tsx │ │ │ ├── FindWindow.tsx │ │ │ ├── GenerateNodeWindow.tsx │ │ │ ├── KeyboardRecentFilesWindow.tsx │ │ │ ├── LoginWindow.tsx │ │ │ ├── NewExportPngWindow.tsx │ │ │ ├── NodeDetailsWindow.tsx │ │ │ ├── OnboardingWindow.tsx │ │ │ ├── RecentFilesWindow.tsx │ │ │ ├── ReferencesWindow.tsx │ │ │ ├── SettingsWindow/ │ │ │ │ ├── about.tsx │ │ │ │ ├── appearance/ │ │ │ │ │ ├── effects.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── sounds.tsx │ │ │ │ ├── assets/ │ │ │ │ │ └── font.css │ │ │ │ ├── credits.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── keybinds.tsx │ │ │ │ ├── keybindsGlobal.tsx │ │ │ │ ├── quick-settings.tsx │ │ │ │ ├── settings.tsx │ │ │ │ └── themes/ │ │ │ │ ├── editor.tsx │ │ │ │ └── index.tsx │ │ │ ├── TagWindow.tsx │ │ │ ├── TestWindow.tsx │ │ │ └── UserWindow.tsx │ │ ├── themes/ │ │ │ ├── dark-blue.pg-theme │ │ │ ├── dark.pg-theme │ │ │ ├── light.pg-theme │ │ │ ├── macaron.pg-theme │ │ │ ├── morandi.pg-theme │ │ │ └── park.pg-theme │ │ ├── types/ │ │ │ ├── cursors.tsx │ │ │ ├── directions.tsx │ │ │ ├── metadata.tsx │ │ │ └── node.tsx │ │ ├── utils/ │ │ │ ├── base64.tsx │ │ │ ├── cn.tsx │ │ │ ├── dateChecker.tsx │ │ │ ├── emacs.tsx │ │ │ ├── externalOpen.tsx │ │ │ ├── font.tsx │ │ │ ├── imageExport.tsx │ │ │ ├── keyboardFunctions.tsx │ │ │ ├── markdownParse.tsx │ │ │ ├── otherApi.tsx │ │ │ ├── path.tsx │ │ │ ├── pathString.tsx │ │ │ ├── platform.tsx │ │ │ ├── sleep.tsx │ │ │ ├── store.tsx │ │ │ ├── updater.tsx │ │ │ ├── xml.tsx │ │ │ └── yaml.tsx │ │ └── vite-env.d.ts │ ├── src-tauri/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── capabilities/ │ │ │ ├── default.json │ │ │ └── desktop.json │ │ ├── gen/ │ │ │ └── android/ │ │ │ ├── .editorconfig │ │ │ ├── .gitignore │ │ │ ├── app/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle.kts │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── liren/ │ │ │ │ │ └── project_graph/ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── drawable-v24/ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── layout/ │ │ │ │ │ └── activity_main.xml │ │ │ │ ├── value-night/ │ │ │ │ │ └── styles.xml │ │ │ │ ├── values/ │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── xml/ │ │ │ │ └── file_paths.xml │ │ │ ├── build.gradle.kts │ │ │ ├── buildSrc/ │ │ │ │ ├── build.gradle.kts │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── liren/ │ │ │ │ └── project_graph/ │ │ │ │ └── kotlin/ │ │ │ │ ├── BuildTask.kt │ │ │ │ └── RustPlugin.kt │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── keystore.properties │ │ │ └── settings.gradle │ │ ├── icons/ │ │ │ └── icon.icns │ │ ├── nsis/ │ │ │ └── installer.nsh │ │ ├── src/ │ │ │ ├── cmd/ │ │ │ │ ├── device.rs │ │ │ │ ├── fs.rs │ │ │ │ └── mod.rs │ │ │ ├── lib.rs │ │ │ └── main.rs │ │ └── tauri.conf.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── vite-plugins/ │ │ └── i18n-auto-tw.ts │ └── vite.config.ts ├── config.xlings ├── docs-pg/ │ ├── Project Graph v2.json │ ├── ProjectGraph决策日志.json │ ├── ProjectGraph开发进程图.json │ ├── ProjectGraph开发进程图.prg │ ├── ProjectGraph继承体系.json │ ├── ProjectGraph项目架构.json │ ├── README_FOR_AI.md │ ├── issue分类.json │ └── 服务器.prg ├── eslint.config.js ├── nx.json ├── package.json ├── packages/ │ ├── api/ │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── package.json │ │ ├── src/ │ │ │ ├── apis/ │ │ │ │ ├── camera.ts │ │ │ │ ├── controller.ts │ │ │ │ └── dialog.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── data-structures/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Cache.ts │ │ │ ├── Color.ts │ │ │ ├── LimitLengthQueue.ts │ │ │ ├── MonoStack.ts │ │ │ ├── ProgressNumber.ts │ │ │ ├── Queue.ts │ │ │ ├── Stack.ts │ │ │ ├── Vector.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── Cache.test.ts │ │ │ ├── Color.test.ts │ │ │ ├── LimitLengthQueue.test.ts │ │ │ ├── MonoStack.test.ts │ │ │ ├── ProgressNumber.test.ts │ │ │ ├── Queue.test.ts │ │ │ ├── Stack.test.ts │ │ │ └── Vector.test.ts │ │ ├── tsconfig.json │ │ └── tsdown.config.ts │ ├── serializer/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tests/ │ │ │ └── index.test.ts │ │ └── tsconfig.json │ └── shapes/ │ ├── .gitignore │ ├── .npmignore │ ├── LICENSE │ ├── package.json │ ├── src/ │ │ ├── Circle.ts │ │ ├── CubicCatmullRomSpline.ts │ │ ├── Curve.ts │ │ ├── Line.ts │ │ ├── Rectangle.ts │ │ ├── Shape.ts │ │ └── index.ts │ ├── tests/ │ │ ├── Circle.test.ts │ │ ├── CubicCatmullRomSpline.test.ts │ │ ├── Curve.test.ts │ │ ├── Line.test.ts │ │ └── Rectangle.test.ts │ ├── tsconfig.json │ └── tsdown.config.ts ├── patches/ │ └── typescript.patch ├── pnpm-workspace.yaml ├── utils/ │ ├── add-ts-nocheck.ts │ ├── class2namespace.ts │ ├── generate-service-docs.sh │ ├── lines.sh │ └── relative2alias.ts ├── vitest.config.ts └── 文本节点功能分析.md