@yancyyu/openhermit 1.6.38 → 1.6.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist-renderer/assets/ProjectEditorOverlay-CemDOX-3.js +58 -0
  2. package/dist-renderer/assets/{TeamGraphOverlay-ZEDfZyHb.js → TeamGraphOverlay-hPY770Db.js} +1 -1
  3. package/dist-renderer/assets/{_basePickBy-CIhniz70.js → _basePickBy-BHHrJT1i.js} +1 -1
  4. package/dist-renderer/assets/{_baseUniq-cKAW4Q8I.js → _baseUniq-CWErBtke.js} +1 -1
  5. package/dist-renderer/assets/{arc-YmNsoDXW.js → arc-C_o2_Uv8.js} +1 -1
  6. package/dist-renderer/assets/{architectureDiagram-VXUJARFQ-DHEls2sX.js → architectureDiagram-VXUJARFQ-DUW0LI3t.js} +1 -1
  7. package/dist-renderer/assets/{blockDiagram-VD42YOAC-Bpwf1Sbg.js → blockDiagram-VD42YOAC-CWbCE9hQ.js} +1 -1
  8. package/dist-renderer/assets/{c4Diagram-YG6GDRKO-B0IaQ4w5.js → c4Diagram-YG6GDRKO-BjLadrfV.js} +1 -1
  9. package/dist-renderer/assets/channel-DyP9YlCF.js +1 -0
  10. package/dist-renderer/assets/{chunk-4BX2VUAB-DLk-hcFc.js → chunk-4BX2VUAB-CPnvjZl9.js} +1 -1
  11. package/dist-renderer/assets/{chunk-55IACEB6-1XRmX_Zm.js → chunk-55IACEB6-OlL47yXQ.js} +1 -1
  12. package/dist-renderer/assets/{chunk-B4BG7PRW-1waH1DAD.js → chunk-B4BG7PRW-DTasjbm8.js} +1 -1
  13. package/dist-renderer/assets/{chunk-DI55MBZ5-BqpZBtrN.js → chunk-DI55MBZ5-C5_Xaqkk.js} +1 -1
  14. package/dist-renderer/assets/{chunk-FMBD7UC4-Bly7vVym.js → chunk-FMBD7UC4-NdoM4DMR.js} +1 -1
  15. package/dist-renderer/assets/{chunk-QN33PNHL-Ci2QWBAs.js → chunk-QN33PNHL-C8Fybejy.js} +1 -1
  16. package/dist-renderer/assets/{chunk-QZHKN3VN-YCqFW7d-.js → chunk-QZHKN3VN-E98TYFXJ.js} +1 -1
  17. package/dist-renderer/assets/{chunk-TZMSLE5B-B0xGXInl.js → chunk-TZMSLE5B-h4lFgkIq.js} +1 -1
  18. package/dist-renderer/assets/classDiagram-2ON5EDUG-BqffFTae.js +1 -0
  19. package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-BqffFTae.js +1 -0
  20. package/dist-renderer/assets/clone-MPcKWs2O.js +1 -0
  21. package/dist-renderer/assets/{cose-bilkent-S5V4N54A-DxcFNQKT.js → cose-bilkent-S5V4N54A-DtQ7fkrs.js} +1 -1
  22. package/dist-renderer/assets/{dagre-6UL2VRFP-DPo_RfZY.js → dagre-6UL2VRFP-CN-nL_z4.js} +1 -1
  23. package/dist-renderer/assets/{diagram-PSM6KHXK-U3hQsFe4.js → diagram-PSM6KHXK-DVJtqmm-.js} +1 -1
  24. package/dist-renderer/assets/{diagram-QEK2KX5R-OrwrAy0V.js → diagram-QEK2KX5R-DlxHxyXh.js} +1 -1
  25. package/dist-renderer/assets/{diagram-S2PKOQOG-CXATPWVw.js → diagram-S2PKOQOG-7dpzO6x6.js} +1 -1
  26. package/dist-renderer/assets/{erDiagram-Q2GNP2WA-B0e8AfMF.js → erDiagram-Q2GNP2WA-GP1TqsHi.js} +1 -1
  27. package/dist-renderer/assets/{flowDiagram-NV44I4VS-CXfzA4jJ.js → flowDiagram-NV44I4VS-C7ZLETuH.js} +1 -1
  28. package/dist-renderer/assets/{ganttDiagram-JELNMOA3-CMr08qVl.js → ganttDiagram-JELNMOA3-CvPB68dH.js} +1 -1
  29. package/dist-renderer/assets/{gitGraphDiagram-V2S2FVAM-vYFHpPmy.js → gitGraphDiagram-V2S2FVAM-B5yOm3w7.js} +1 -1
  30. package/dist-renderer/assets/{graph-DOe5j8dH.js → graph-smeyY1YZ.js} +1 -1
  31. package/dist-renderer/assets/{index-BySQS7AB.js → index-BJx8XvG1.js} +1 -1
  32. package/dist-renderer/assets/{index-C_okzZXP.js → index-CQaXUAua.js} +1 -1
  33. package/dist-renderer/assets/{index-VJ-MM9xa.js → index-CajRpxO2.js} +1 -1
  34. package/dist-renderer/assets/{index-V7dAKPqd.js → index-ChG4rE-E.js} +587 -705
  35. package/dist-renderer/assets/index-DUd0uw9C.css +32 -0
  36. package/dist-renderer/assets/{index-CzWxVCRL.js → index-IhmXZWqf.js} +1 -1
  37. package/dist-renderer/assets/{index-B2Dy7M2G.js → index-x_JkoDRH.js} +1 -1
  38. package/dist-renderer/assets/{infoDiagram-HS3SLOUP-D_WubR0B.js → infoDiagram-HS3SLOUP-D-hWRQGY.js} +1 -1
  39. package/dist-renderer/assets/{journeyDiagram-XKPGCS4Q-w9ca-1TI.js → journeyDiagram-XKPGCS4Q-Bb6W8rUG.js} +1 -1
  40. package/dist-renderer/assets/{kanban-definition-3W4ZIXB7-Jg9p6_pN.js → kanban-definition-3W4ZIXB7-CnHdUX0q.js} +1 -1
  41. package/dist-renderer/assets/{layout-B-z3y17c.js → layout-pqss_zkI.js} +1 -1
  42. package/dist-renderer/assets/{linear-D-RTX5UW.js → linear-B1mFITNh.js} +1 -1
  43. package/dist-renderer/assets/{mindmap-definition-VGOIOE7T-CDQmHOYP.js → mindmap-definition-VGOIOE7T-DTD9q7-D.js} +1 -1
  44. package/dist-renderer/assets/{pieDiagram-ADFJNKIX-D_odsQL7.js → pieDiagram-ADFJNKIX-Df3mhrn7.js} +1 -1
  45. package/dist-renderer/assets/{quadrantDiagram-AYHSOK5B-BRsmYWSA.js → quadrantDiagram-AYHSOK5B-B1FZ09vH.js} +1 -1
  46. package/dist-renderer/assets/{requirementDiagram-UZGBJVZJ-ChNE_BOV.js → requirementDiagram-UZGBJVZJ-aEO78thZ.js} +1 -1
  47. package/dist-renderer/assets/{sankeyDiagram-TZEHDZUN-C8FtpwKc.js → sankeyDiagram-TZEHDZUN-6Ui--jp-.js} +1 -1
  48. package/dist-renderer/assets/{sequenceDiagram-WL72ISMW-DmLCzNcc.js → sequenceDiagram-WL72ISMW-DF4Q1cAM.js} +1 -1
  49. package/dist-renderer/assets/splashScene-D0YB9uxm.js +17 -0
  50. package/dist-renderer/assets/{stateDiagram-FKZM4ZOC-WJBm4bhu.js → stateDiagram-FKZM4ZOC-BqA2BI8C.js} +1 -1
  51. package/dist-renderer/assets/stateDiagram-v2-4FDKWEC3-Cs2ZtUD2.js +1 -0
  52. package/dist-renderer/assets/{timeline-definition-IT6M3QCI-BXs_hOJs.js → timeline-definition-IT6M3QCI-DoOkw_A8.js} +1 -1
  53. package/dist-renderer/assets/{treemap-GDKQZRPO-o04MA0G9.js → treemap-GDKQZRPO-DUe26QdD.js} +1 -1
  54. package/dist-renderer/assets/{xychartDiagram-PRI3JC2R-Czj69XRd.js → xychartDiagram-PRI3JC2R-BKCnj5Xn.js} +1 -1
  55. package/dist-renderer/index.html +20 -53
  56. package/package.json +25 -18
  57. package/src/main/ipc/extensions.ts +2 -1
  58. package/src/main/server.ts +873 -221
  59. package/src/main/services/extensions/ExtensionFacadeService.ts +2 -5
  60. package/src/main/services/extensions/catalog/PluginCatalogService.ts +4 -2
  61. package/src/main/services/session-intelligence/ConversationTelemetryService.ts +1101 -0
  62. package/src/main/services/session-intelligence/LocalSessionScanner.ts +512 -0
  63. package/src/main/services/session-intelligence/SessionUsageParser.ts +4 -4
  64. package/src/main/services/system-manager/SystemManagerConfigService.ts +122 -0
  65. package/src/main/services/system-manager/SystemManagerPtyService.ts +233 -0
  66. package/src/main/services/system-manager/WorkflowPromptService.ts +75 -0
  67. package/src/main/services/teams-mvp/TaskDispatchService.ts +5 -6
  68. package/src/main/services/teams-mvp/TeamProvisioningService.ts +39 -2
  69. package/src/main/services/teams-mvp/TeamWorkspaceService.ts +22 -4
  70. package/src/main/utils/teamProjectResolution.ts +15 -0
  71. package/src/renderer/App.tsx +8 -4
  72. package/src/renderer/api/httpClient.ts +68 -18
  73. package/src/renderer/api/providers.ts +23 -2
  74. package/src/renderer/assets/participant-avatars/01.svg +3 -0
  75. package/src/renderer/assets/participant-avatars/02.svg +3 -0
  76. package/src/renderer/assets/participant-avatars/03.svg +3 -0
  77. package/src/renderer/assets/participant-avatars/04.svg +3 -0
  78. package/src/renderer/assets/participant-avatars/05.svg +3 -0
  79. package/src/renderer/assets/participant-avatars/06.svg +3 -0
  80. package/src/renderer/assets/participant-avatars/07.svg +3 -0
  81. package/src/renderer/assets/participant-avatars/08.svg +3 -0
  82. package/src/renderer/assets/participant-avatars/09.svg +3 -0
  83. package/src/renderer/assets/participant-avatars/10.svg +3 -0
  84. package/src/renderer/assets/participant-avatars/11.svg +3 -0
  85. package/src/renderer/assets/participant-avatars/12.svg +3 -0
  86. package/src/renderer/assets/participant-avatars/13.svg +3 -0
  87. package/src/renderer/components/chat/ChatHistoryItem.tsx +1 -1
  88. package/src/renderer/components/chat/items/SubagentItem.tsx +2 -2
  89. package/src/renderer/components/chat/viewers/MermaidDiagram.tsx +2 -2
  90. package/src/renderer/components/common/ErrorBoundary.tsx +1 -1
  91. package/src/renderer/components/common/TerminalPane.tsx +213 -0
  92. package/src/renderer/components/dashboard/CliStatusBanner.tsx +7 -7
  93. package/src/renderer/components/dashboard/DashboardView.tsx +9 -36
  94. package/src/renderer/components/extensions/ExtensionStoreView.tsx +7 -126
  95. package/src/renderer/components/extensions/ExtensionsSubTabTrigger.tsx +1 -1
  96. package/src/renderer/components/extensions/common/ExtensionToast.tsx +3 -3
  97. package/src/renderer/components/extensions/common/SourceBadge.tsx +1 -1
  98. package/src/renderer/components/extensions/mcp/McpLibraryEnableDialog.tsx +305 -0
  99. package/src/renderer/components/extensions/mcp/McpLibraryEntryDialog.tsx +418 -0
  100. package/src/renderer/components/extensions/mcp/McpLibraryPanel.tsx +404 -0
  101. package/src/renderer/components/extensions/plugins/CategoryChips.tsx +1 -1
  102. package/src/renderer/components/extensions/plugins/PluginCard.tsx +6 -6
  103. package/src/renderer/components/extensions/plugins/PluginDetailDialog.tsx +2 -2
  104. package/src/renderer/components/extensions/plugins/PluginsPanel.tsx +34 -21
  105. package/src/renderer/components/extensions/skills/SkillEditorDialog.tsx +1 -1
  106. package/src/renderer/components/extensions/skills/SkillsLibraryPanel.tsx +335 -0
  107. package/src/renderer/components/layout/PaneContent.tsx +8 -1
  108. package/src/renderer/components/layout/PaneResizeHandle.tsx +2 -2
  109. package/src/renderer/components/layout/Sidebar.tsx +13 -56
  110. package/src/renderer/components/layout/SortableTab.tsx +22 -33
  111. package/src/renderer/components/layout/TabBar.tsx +1 -1
  112. package/src/renderer/components/layout/TabContextMenu.tsx +1 -1
  113. package/src/renderer/components/report/sections/CostSection.tsx +2 -2
  114. package/src/renderer/components/report/sections/InsightsSection.tsx +1 -1
  115. package/src/renderer/components/runtime/ProviderRuntimeBackendSelector.tsx +2 -2
  116. package/src/renderer/components/runtime/ProviderRuntimeSettingsDialog.tsx +768 -157
  117. package/src/renderer/components/schedules/SchedulesView.tsx +51 -462
  118. package/src/renderer/components/schedules/calendar/CalendarDayView.tsx +173 -0
  119. package/src/renderer/components/schedules/calendar/CalendarEventBlock.tsx +113 -0
  120. package/src/renderer/components/schedules/calendar/CalendarHeader.tsx +148 -0
  121. package/src/renderer/components/schedules/calendar/CalendarMonthView.tsx +142 -0
  122. package/src/renderer/components/schedules/calendar/CalendarWeekView.tsx +219 -0
  123. package/src/renderer/components/schedules/calendar/ScheduleCalendarBoard.tsx +41 -0
  124. package/src/renderer/components/schedules/calendar/TeamGanttView.tsx +405 -0
  125. package/src/renderer/components/schedules/calendar/computeOccurrences.ts +234 -0
  126. package/src/renderer/components/schedules/calendar/index.ts +2 -0
  127. package/src/renderer/components/schedules/calendar/types.ts +44 -0
  128. package/src/renderer/components/search/CommandPalette.tsx +4 -4
  129. package/src/renderer/components/settings/SettingsTabs.tsx +50 -55
  130. package/src/renderer/components/settings/SettingsView.tsx +30 -35
  131. package/src/renderer/components/settings/components/SettingsSectionHeader.tsx +5 -1
  132. package/src/renderer/components/settings/components/SettingsSelect.tsx +5 -3
  133. package/src/renderer/components/settings/components/SettingsToggle.tsx +2 -2
  134. package/src/renderer/components/settings/sections/AdvancedSection.tsx +11 -42
  135. package/src/renderer/components/settings/sections/CliStatusSection.tsx +72 -113
  136. package/src/renderer/components/settings/sections/ConfigEditorDialog.tsx +1 -1
  137. package/src/renderer/components/settings/sections/GeneralSection.tsx +11 -3
  138. package/src/renderer/components/settings/sections/HarnessSection.tsx +18 -14
  139. package/src/renderer/components/settings/sections/PlatformsSection.tsx +3 -3
  140. package/src/renderer/components/settings/sections/TaskBusSection.tsx +33 -40
  141. package/src/renderer/components/settings/sections/index.ts +0 -1
  142. package/src/renderer/components/sidebar/SessionFiltersPopover.tsx +1 -1
  143. package/src/renderer/components/sidebar/SessionItem.tsx +3 -3
  144. package/src/renderer/components/sidebar/SidebarSessions.tsx +184 -6
  145. package/src/renderer/components/sidebar/SidebarTaskItem.tsx +4 -4
  146. package/src/renderer/components/sidebar/WorkspaceBrowser.tsx +40 -5
  147. package/src/renderer/components/splash/splashScene.ts +121 -929
  148. package/src/renderer/components/system-manager/FolderBrowser.tsx +163 -0
  149. package/src/renderer/components/system-manager/SystemManagerView.tsx +351 -0
  150. package/src/renderer/components/tasks/TasksView.tsx +112 -134
  151. package/src/renderer/components/team/CcSessionsSection.tsx +431 -89
  152. package/src/renderer/components/team/ClaudeLogsFilterPopover.tsx +1 -1
  153. package/src/renderer/components/team/ClaudeLogsPanel.tsx +1 -1
  154. package/src/renderer/components/team/CollapsibleTeamSection.tsx +17 -32
  155. package/src/renderer/components/team/ProcessesSection.tsx +2 -2
  156. package/src/renderer/components/team/TaskTooltip.tsx +2 -2
  157. package/src/renderer/components/team/TeamDetailView.tsx +319 -123
  158. package/src/renderer/components/team/TeamListFilterPopover.tsx +1 -1
  159. package/src/renderer/components/team/TeamListView.tsx +109 -124
  160. package/src/renderer/components/team/TeamSessionsSection.tsx +6 -6
  161. package/src/renderer/components/team/UnreadCommentsBadge.tsx +1 -1
  162. package/src/renderer/components/team/activity/ActivityItem.tsx +9 -9
  163. package/src/renderer/components/team/activity/ActivityTimeline.tsx +5 -5
  164. package/src/renderer/components/team/activity/LeadThoughtsGroup.tsx +3 -3
  165. package/src/renderer/components/team/activity/ReplyQuoteBlock.tsx +4 -4
  166. package/src/renderer/components/team/dialogs/CreateTaskDialog.tsx +4 -4
  167. package/src/renderer/components/team/dialogs/CreateTeamDialog.tsx +84 -306
  168. package/src/renderer/components/team/dialogs/EditTeamDialog.tsx +259 -342
  169. package/src/renderer/components/team/dialogs/GlobalTaskDetailDialog.tsx +1 -1
  170. package/src/renderer/components/team/dialogs/LaunchTeamDialog.tsx +18 -16
  171. package/src/renderer/components/team/dialogs/PlatformBindingDialog.tsx +221 -0
  172. package/src/renderer/components/team/dialogs/PlatformManualForm.tsx +8 -1
  173. package/src/renderer/components/team/dialogs/PlatformSetupQR.tsx +5 -5
  174. package/src/renderer/components/team/dialogs/RuntimeConfigDialog.tsx +361 -0
  175. package/src/renderer/components/team/dialogs/SendMessageDialog.tsx +6 -6
  176. package/src/renderer/components/team/dialogs/SkipPermissionsCheckbox.tsx +6 -6
  177. package/src/renderer/components/team/dialogs/StatusHistoryTimeline.tsx +1 -1
  178. package/src/renderer/components/team/dialogs/TaskAttachments.tsx +1 -1
  179. package/src/renderer/components/team/dialogs/TaskCommentInput.tsx +6 -6
  180. package/src/renderer/components/team/dialogs/TaskCommentsSection.tsx +4 -4
  181. package/src/renderer/components/team/dialogs/TaskDetailDialog.tsx +3 -3
  182. package/src/renderer/components/team/dialogs/platformMeta.ts +122 -11
  183. package/src/renderer/components/team/dialogs/useTeamEditForm.ts +17 -5
  184. package/src/renderer/components/team/editor/EditorFileTree.tsx +4 -4
  185. package/src/renderer/components/team/editor/EditorSearchPanel.tsx +1 -1
  186. package/src/renderer/components/team/editor/MarkdownSplitView.tsx +1 -1
  187. package/src/renderer/components/team/editor/NewFileDialog.tsx +1 -1
  188. package/src/renderer/components/team/editor/ProjectEditorOverlay.tsx +1 -1
  189. package/src/renderer/components/team/editor/SearchInFilesPanel.tsx +1 -1
  190. package/src/renderer/components/team/kanban/KanbanBoard.tsx +9 -9
  191. package/src/renderer/components/team/kanban/KanbanFilterPopover.tsx +4 -4
  192. package/src/renderer/components/team/kanban/KanbanSearchInput.tsx +1 -1
  193. package/src/renderer/components/team/kanban/KanbanSortPopover.tsx +5 -5
  194. package/src/renderer/components/team/kanban/KanbanTaskCard.tsx +4 -4
  195. package/src/renderer/components/team/members/MemberCard.tsx +14 -47
  196. package/src/renderer/components/team/members/MemberDetailDialog.tsx +3 -95
  197. package/src/renderer/components/team/members/MemberDetailStats.tsx +50 -65
  198. package/src/renderer/components/team/members/MemberDraftRow.tsx +1 -1
  199. package/src/renderer/components/team/members/MemberStatsTab.tsx +2 -2
  200. package/src/renderer/components/team/members/MemberWorkspaceTab.tsx +1 -1
  201. package/src/renderer/components/team/messages/MessageComposer.tsx +10 -112
  202. package/src/renderer/components/team/messages/MessagesFilterPopover.tsx +1 -1
  203. package/src/renderer/components/team/messages/MessagesPanel.tsx +136 -119
  204. package/src/renderer/components/team/review/ChangeReviewDialog.tsx +1 -1
  205. package/src/renderer/components/team/schedule/ScheduleStatusBadge.tsx +3 -3
  206. package/src/renderer/components/team/sidebar/TeamSidebarRail.tsx +4 -4
  207. package/src/renderer/components/team/tasks/TaskRow.tsx +1 -1
  208. package/src/renderer/components/team/tools/AddMcpInline.tsx +27 -17
  209. package/src/renderer/components/team/tools/McpChip.tsx +6 -3
  210. package/src/renderer/components/team/tools/SkillChip.tsx +3 -3
  211. package/src/renderer/components/team/tools/ToolsSection.tsx +418 -70
  212. package/src/renderer/components/ui/MemberSelect.tsx +2 -2
  213. package/src/renderer/components/ui/MentionSuggestionList.tsx +2 -2
  214. package/src/renderer/components/ui/MentionableTextarea.tsx +3 -3
  215. package/src/renderer/hooks/useExtensionsTabState.ts +3 -114
  216. package/src/renderer/index.css +56 -39
  217. package/src/renderer/index.html +17 -50
  218. package/src/renderer/store/index.ts +2 -1
  219. package/src/renderer/store/slices/scheduleSlice.ts +1 -1
  220. package/src/renderer/store/slices/teamSlice.ts +45 -168
  221. package/src/renderer/utils/claudeCodeOnlyProviders.ts +3 -10
  222. package/src/renderer/utils/memberHelpers.ts +5 -17
  223. package/src/renderer/utils/openCodeRuntimeDeliveryDiagnostics.ts +4 -2
  224. package/src/renderer/utils/providerSlashCommands.ts +0 -5
  225. package/src/renderer/utils/scheduleFormatters.ts +3 -1
  226. package/src/renderer/utils/teamMessageFiltering.ts +14 -1
  227. package/src/renderer/utils/teamModelAvailability.ts +18 -2
  228. package/src/shared/types/api.ts +121 -2
  229. package/src/shared/types/ccConnect.ts +2 -0
  230. package/src/shared/types/index.ts +3 -0
  231. package/src/shared/types/systemManager.ts +49 -0
  232. package/src/shared/types/team.ts +29 -0
  233. package/src/shared/types/terminal.ts +4 -2
  234. package/src/shared/utils/extensionNormalizers.ts +15 -8
  235. package/src/shared/utils/providerExtensionCapabilities.ts +2 -2
  236. package/dist-renderer/assets/ProjectEditorOverlay-lJZi-9Hp.js +0 -52
  237. package/dist-renderer/assets/channel-yIlSKy0e.js +0 -1
  238. package/dist-renderer/assets/classDiagram-2ON5EDUG-24fHez0s.js +0 -1
  239. package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-24fHez0s.js +0 -1
  240. package/dist-renderer/assets/clone-BTNuUva-.js +0 -1
  241. package/dist-renderer/assets/index-Bi6nrZ4z.css +0 -1
  242. package/dist-renderer/assets/splashScene-C8lWNnm4.js +0 -1
  243. package/dist-renderer/assets/stateDiagram-v2-4FDKWEC3-_m6iPPUR.js +0 -1
@@ -0,0 +1,58 @@
1
+ import{bD as fe,bE as yr,bF as $t,bG as jr,E as Y,bH as Sr,a as he,bI as Pn,bJ as wr,bK as Mr,bL as Nr,bM as kr,bN as Tr,bO as Er,bP as Rr,bQ as _n,bR as Kt,bS as Ir,bT as ie,bU as Dr,bV as je,bW as Fn,bX as w,bY as Ge,r as a,bZ as Se,b_ as Pr,b$ as _r,q as n,c0 as Fr,c1 as q,c2 as X,c3 as An,c4 as Ln,c5 as Q,c6 as At,c7 as ce,c8 as On,c9 as I,ca as Ar,cb as yt,cc as Lr,cd as Or,ce as zr,cf as $r,cg as Kr,ch as Gr,ci as Wr,cj as Br,ck as Vr,cl as Ur,cm as Hr,cn as qr,co as yn,cp as Xr,cq as zn,cr as $n,cs as Qr,ct as Yr,cu as Zr,cv as Te,cw as jt,cx as Jr,cy as Le,cz as eo,cA as Gt,cB as Kn,cC as to,cD as Gn,cE as Wn,cF as Wt,cG as no,cH as so,cI as ro,cJ as St,cK as oo,cL as tt,cM as $,cN as We,cO as ao,cP as io,cQ as co,cR as lo,cS as uo,cT as ho,cU as fo,cV as xo,cW as mo,cX as po,cY as go,cZ as vo,c_ as xt,c$ as bo,d0 as Co,d1 as Bt,d2 as Bn,d3 as Vn,d4 as Un,d5 as yo,d6 as jo,d7 as So,d8 as Hn,d9 as qn,da as Xn,db as qe,dc as Xe,dd as Qe,de as Ye,df as ht,dg as ft,dh as Qn,di as Yn,dj as wo,dk as nt,dl as Mo,dm as No,dn as ko,dp as To,dq as Eo,dr as Ro,ds as Io,dt as Do,du as Po,dv as _o,dw as Fo,dx as Ao,dy as Lo,dz as Ue,dA as Oo,dB as jn,dC as zo,dD as $o,dE as Ko,dF as Go,dG as Wo,dH as Bo,dI as Vo}from"./index-ChG4rE-E.js";import"./splashScene-D0YB9uxm.js";/**
2
+ * @license lucide-react v0.577.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Uo=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ho=fe("arrow-down",Uo);/**
7
+ * @license lucide-react v0.577.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const qo=[["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M22 9v7",key:"pvm9v3"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}],["circle",{cx:"18.5",cy:"12.5",r:"3.5",key:"z97x68"}]],Xo=fe("case-sensitive",qo);/**
12
+ * @license lucide-react v0.577.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const Qo=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Sn=fe("clipboard-copy",Qo);/**
17
+ * @license lucide-react v0.577.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const Yo=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Zo=fe("columns-2",Yo);/**
22
+ * @license lucide-react v0.577.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */const Jo=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]],Zn=fe("file-plus",Jo);/**
27
+ * @license lucide-react v0.577.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */const ea=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]],ta=fe("file-question-mark",ea);/**
32
+ * @license lucide-react v0.577.0 - ISC
33
+ *
34
+ * This source code is licensed under the ISC license.
35
+ * See the LICENSE file in the root directory of this source tree.
36
+ */const na=[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Jn=fe("folder-plus",na);/**
37
+ * @license lucide-react v0.577.0 - ISC
38
+ *
39
+ * This source code is licensed under the ISC license.
40
+ * See the LICENSE file in the root directory of this source tree.
41
+ */const sa=[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]],ra=fe("regex",sa);/**
42
+ * @license lucide-react v0.577.0 - ISC
43
+ *
44
+ * This source code is licensed under the ISC license.
45
+ * See the LICENSE file in the root directory of this source tree.
46
+ */const oa=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],aa=fe("save",oa);/**
47
+ * @license lucide-react v0.577.0 - ISC
48
+ *
49
+ * This source code is licensed under the ISC license.
50
+ * See the LICENSE file in the root directory of this source tree.
51
+ */const ia=[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]],ca=fe("text-wrap",ia);/**
52
+ * @license lucide-react v0.577.0 - ISC
53
+ *
54
+ * This source code is licensed under the ISC license.
55
+ * See the LICENSE file in the root directory of this source tree.
56
+ */const la=[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]],da=fe("whole-word",la),wn=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class Ze{constructor(e,r,s=0,o=e.length,i,l){this.test=l,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(s,o),this.bufferStart=s,this.normalize=i?c=>i(wn(c)):wn,this.query=this.normalize(r)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Tr(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let r=Rr(e),s=this.bufferStart+this.bufferPos;this.bufferPos+=Er(e);let o=this.normalize(r);if(o.length)for(let i=0,l=s;;i++){let c=o.charCodeAt(i),d=this.match(c,l,this.bufferPos+this.bufferStart);if(i==o.length-1){if(d)return this.value=d,this;break}l==s&&i<r.length&&r.charCodeAt(i)==c&&l++}}}match(e,r,s){let o=null;for(let i=0;i<this.matches.length;i+=2){let l=this.matches[i],c=!1;this.query.charCodeAt(l)==e&&(l==this.query.length-1?o={from:this.matches[i+1],to:s}:(this.matches[i]++,c=!0)),c||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:r,to:s}:this.matches.push(1,r)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null),o}}typeof Symbol<"u"&&(Ze.prototype[Symbol.iterator]=function(){return this});const es={from:-1,to:-1,match:/.*/.exec("")},Vt="gm"+(/x/.unicode==null?"":"u");class ts{constructor(e,r,s,o=0,i=e.length){if(this.text=e,this.to=i,this.curLine="",this.done=!1,this.value=es,/\\[sWDnr]|\n|\r|\[\^/.test(r))return new ns(e,r,s,o,i);this.re=new RegExp(r,Vt+(s?.ignoreCase?"i":"")),this.test=s?.test,this.iter=e.iter();let l=e.lineAt(o);this.curLineStart=l.from,this.matchPos=mt(e,o),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let r=this.matchPos<=this.to&&this.re.exec(this.curLine);if(r){let s=this.curLineStart+r.index,o=s+r[0].length;if(this.matchPos=mt(this.text,o+(s==o?1:0)),s==this.curLineStart+this.curLine.length&&this.nextLine(),(s<o||s>this.value.to)&&(!this.test||this.test(s,o,r)))return this.value={from:s,to:o,match:r},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Dt=new WeakMap;class Oe{constructor(e,r){this.from=e,this.text=r}get to(){return this.from+this.text.length}static get(e,r,s){let o=Dt.get(e);if(!o||o.from>=s||o.to<=r){let c=new Oe(r,e.sliceString(r,s));return Dt.set(e,c),c}if(o.from==r&&o.to==s)return o;let{text:i,from:l}=o;return l>r&&(i=e.sliceString(r,l)+i,l=r),o.to<s&&(i+=e.sliceString(o.to,s)),Dt.set(e,new Oe(l,i)),new Oe(r,i.slice(r-l,s-l))}}class ns{constructor(e,r,s,o,i){this.text=e,this.to=i,this.done=!1,this.value=es,this.matchPos=mt(e,o),this.re=new RegExp(r,Vt+(s?.ignoreCase?"i":"")),this.test=s?.test,this.flat=Oe.get(e,o,this.chunkEnd(o+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,r=this.re.exec(this.flat.text);if(r&&!r[0]&&r.index==e&&(this.re.lastIndex=e+1,r=this.re.exec(this.flat.text)),r){let s=this.flat.from+r.index,o=s+r[0].length;if((this.flat.to>=this.to||r.index+r[0].length<=this.flat.text.length-10)&&(!this.test||this.test(s,o,r)))return this.value={from:s,to:o,match:r},this.matchPos=mt(this.text,o+(s==o?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Oe.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(ts.prototype[Symbol.iterator]=ns.prototype[Symbol.iterator]=function(){return this});function ua(t){try{return new RegExp(t,Vt),!0}catch{return!1}}function mt(t,e){if(e>=t.length)return e;let r=t.lineAt(e),s;for(;e<r.to&&(s=r.text.charCodeAt(e-r.from))>=56320&&s<57344;)e++;return e}const ss=t=>{let{state:e}=t,r=String(e.doc.lineAt(t.state.selection.main.head).number),{close:s,result:o}=wr(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:r},focus:!0,submitLabel:e.phrase("go")});return o.then(i=>{let l=i&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.elements.line.value);if(!l){t.dispatch({effects:s});return}let c=e.doc.lineAt(e.selection.main.head),[,d,u,f,h]=l,x=f?+f.slice(1):0,C=u?+u:c.number;if(u&&h){let S=C/100;d&&(S=S*(d=="-"?-1:1)+c.number/e.doc.lines),C=Math.round(e.doc.lines*S)}else u&&d&&(C=C*(d=="-"?-1:1)+c.number);let g=e.doc.line(Math.max(1,Math.min(e.doc.lines,C))),b=he.cursor(g.from+Math.max(0,Math.min(x,g.length)));t.dispatch({effects:[s,Y.scrollIntoView(b.from,{y:"center"})],selection:b})}),!0},ha=({state:t,dispatch:e})=>{let{selection:r}=t,s=he.create(r.ranges.map(o=>t.wordAt(o.head)||he.cursor(o.head)),r.mainIndex);return s.eq(r)?!1:(e(t.update({selection:s})),!0)};function fa(t,e){let{main:r,ranges:s}=t.selection,o=t.wordAt(r.head),i=o&&o.from==r.from&&o.to==r.to;for(let l=!1,c=new Ze(t.doc,e,s[s.length-1].to);;)if(c.next(),c.done){if(l)return null;c=new Ze(t.doc,e,0,Math.max(0,s[s.length-1].from-1)),l=!0}else{if(l&&s.some(d=>d.from==c.value.from))continue;if(i){let d=t.wordAt(c.value.from);if(!d||d.from!=c.value.from||d.to!=c.value.to)continue}return c.value}}const xa=({state:t,dispatch:e})=>{let{ranges:r}=t.selection;if(r.some(i=>i.from===i.to))return ha({state:t,dispatch:e});let s=t.sliceDoc(r[0].from,r[0].to);if(t.selection.ranges.some(i=>t.sliceDoc(i.from,i.to)!=s))return!1;let o=fa(t,s);return o?(e(t.update({selection:t.selection.addRange(he.range(o.from,o.to),!1),effects:Y.scrollIntoView(o.to)})),!0):!1},Ee=Sr.define({combine(t){return kr(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Ea(e),scrollToMatch:e=>Y.scrollIntoView(e)})}});function ma(t){return t?[Ee.of(t),Ot]:Ot}class Ut{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||ua(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(r,s)=>s=="n"?`
57
+ `:s=="r"?"\r":s=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new ya(this):new va(this)}getCursor(e,r=0,s){let o=e.doc?e:_n.create({doc:e});return s==null&&(s=o.doc.length),this.regexp?Fe(this,o,r,s):_e(this,o,r,s)}}class rs{constructor(e){this.spec=e}}function pa(t,e,r){return(s,o,i,l)=>{if(r&&!r(s,o,i,l))return!1;let c=s>=l&&o<=l+i.length?i.slice(s-l,o-l):e.doc.sliceString(s,o);return t(c,e,s,o)}}function _e(t,e,r,s){let o;return t.wholeWord&&(o=ga(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(o=pa(t.test,e,o)),new Ze(e.doc,t.unquoted,r,s,t.caseSensitive?void 0:i=>i.toLowerCase(),o)}function ga(t,e){return(r,s,o,i)=>((i>r||i+o.length<s)&&(i=Math.max(0,r-2),o=t.sliceString(i,Math.min(t.length,s+2))),(e(pt(o,r-i))!=je.Word||e(gt(o,r-i))!=je.Word)&&(e(gt(o,s-i))!=je.Word||e(pt(o,s-i))!=je.Word))}class va extends rs{constructor(e){super(e)}nextMatch(e,r,s){let o=_e(this.spec,e,s,e.doc.length).nextOverlapping();if(o.done){let i=Math.min(e.doc.length,r+this.spec.unquoted.length);o=_e(this.spec,e,0,i).nextOverlapping()}return o.done||o.value.from==r&&o.value.to==s?null:o.value}prevMatchInRange(e,r,s){for(let o=s;;){let i=Math.max(r,o-1e4-this.spec.unquoted.length),l=_e(this.spec,e,i,o),c=null;for(;!l.nextOverlapping().done;)c=l.value;if(c)return c;if(i==r)return null;o-=1e4}}prevMatch(e,r,s){let o=this.prevMatchInRange(e,0,r);return o||(o=this.prevMatchInRange(e,Math.max(0,s-this.spec.unquoted.length),e.doc.length)),o&&(o.from!=r||o.to!=s)?o:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,r){let s=_e(this.spec,e,0,e.doc.length),o=[];for(;!s.next().done;){if(o.length>=r)return null;o.push(s.value)}return o}highlight(e,r,s,o){let i=_e(this.spec,e,Math.max(0,r-this.spec.unquoted.length),Math.min(s+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)o(i.value.from,i.value.to)}}function ba(t,e,r){return(s,o,i)=>(!r||r(s,o,i))&&t(i[0],e,s,o)}function Fe(t,e,r,s){let o;return t.wholeWord&&(o=Ca(e.charCategorizer(e.selection.main.head))),t.test&&(o=ba(t.test,e,o)),new ts(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:o},r,s)}function pt(t,e){return t.slice(Fn(t,e,!1),e)}function gt(t,e){return t.slice(e,Fn(t,e))}function Ca(t){return(e,r,s)=>!s[0].length||(t(pt(s.input,s.index))!=je.Word||t(gt(s.input,s.index))!=je.Word)&&(t(gt(s.input,s.index+s[0].length))!=je.Word||t(pt(s.input,s.index+s[0].length))!=je.Word)}class ya extends rs{nextMatch(e,r,s){let o=Fe(this.spec,e,s,e.doc.length).next();return o.done&&(o=Fe(this.spec,e,0,r).next()),o.done?null:o.value}prevMatchInRange(e,r,s){for(let o=1;;o++){let i=Math.max(r,s-o*1e4),l=Fe(this.spec,e,i,s),c=null;for(;!l.next().done;)c=l.value;if(c&&(i==r||c.from>i+10))return c;if(i==r)return null}}prevMatch(e,r,s){return this.prevMatchInRange(e,0,r)||this.prevMatchInRange(e,s,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(r,s)=>{if(s=="&")return e.match[0];if(s=="$")return"$";for(let o=s.length;o>0;o--){let i=+s.slice(0,o);if(i>0&&i<e.match.length)return e.match[i]+s.slice(o)}return r})}matchAll(e,r){let s=Fe(this.spec,e,0,e.doc.length),o=[];for(;!s.next().done;){if(o.length>=r)return null;o.push(s.value)}return o}highlight(e,r,s,o){let i=Fe(this.spec,e,Math.max(0,r-250),Math.min(s+250,e.doc.length));for(;!i.next().done;)o(i.value.from,i.value.to)}}const ze=$t.define(),Ht=$t.define(),be=yr.define({create(t){return new Pt(vt(t).create(),null)},update(t,e){for(let r of e.effects)r.is(ze)?t=new Pt(r.value.create(),t.panel):r.is(Ht)&&(t=new Pt(t.query,r.value?qt:null));return t},provide:t=>Mr.from(t,e=>e.panel)});function ja(t){let e=t.field(be,!1);return e?e.query.spec:vt(t)}class Pt{constructor(e,r){this.query=e,this.panel=r}}const Sa=Kt.mark({class:"cm-searchMatch"}),wa=Kt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Ma=Nr.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(be))}update(t){let e=t.state.field(be);(e!=t.startState.field(be)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Kt.none;let{view:r}=this,s=new Ir;for(let o=0,i=r.visibleRanges,l=i.length;o<l;o++){let{from:c,to:d}=i[o];for(;o<l-1&&d>i[o+1].from-2*250;)d=i[++o].to;t.highlight(r.state,c,d,(u,f)=>{let h=r.state.selection.ranges.some(x=>x.from==u&&x.to==f);s.add(u,f,h?wa:Sa)})}return s.finish()}},{decorations:t=>t.decorations});function st(t){return e=>{let r=e.state.field(be,!1);return r&&r.query.spec.valid?t(e,r):Xt(e)}}const $e=st((t,{query:e})=>{let{to:r}=t.state.selection.main,s=e.nextMatch(t.state,r,r);if(!s)return!1;let o=he.single(s.from,s.to),i=t.state.facet(Ee);return t.dispatch({selection:o,effects:[Yt(t,s),i.scrollToMatch(o.main,t)],userEvent:"select.search"}),is(t),!0}),Ke=st((t,{query:e})=>{let{state:r}=t,{from:s}=r.selection.main,o=e.prevMatch(r,s,s);if(!o)return!1;let i=he.single(o.from,o.to),l=t.state.facet(Ee);return t.dispatch({selection:i,effects:[Yt(t,o),l.scrollToMatch(i.main,t)],userEvent:"select.search"}),is(t),!0}),Na=st((t,{query:e})=>{let r=e.matchAll(t.state,1e3);return!r||!r.length?!1:(t.dispatch({selection:he.create(r.map(s=>he.range(s.from,s.to))),userEvent:"select.search.matches"}),!0)}),ka=({state:t,dispatch:e})=>{let r=t.selection;if(r.ranges.length>1||r.main.empty)return!1;let{from:s,to:o}=r.main,i=[],l=0;for(let c=new Ze(t.doc,t.sliceDoc(s,o));!c.next().done;){if(i.length>1e3)return!1;c.value.from==s&&(l=i.length),i.push(he.range(c.value.from,c.value.to))}return e(t.update({selection:he.create(i,l),userEvent:"select.search.matches"})),!0},Lt=st((t,{query:e})=>{let{state:r}=t,{from:s,to:o}=r.selection.main;if(r.readOnly)return!1;let i=e.nextMatch(r,s,s);if(!i)return!1;let l=i,c=[],d,u,f=[];l.from==s&&l.to==o&&(u=r.toText(e.getReplacement(l)),c.push({from:l.from,to:l.to,insert:u}),l=e.nextMatch(r,l.from,l.to),f.push(Y.announce.of(r.phrase("replaced match on line $",r.doc.lineAt(s).number)+".")));let h=t.state.changes(c);return l&&(d=he.single(l.from,l.to).map(h),f.push(Yt(t,l)),f.push(r.facet(Ee).scrollToMatch(d.main,t))),t.dispatch({changes:h,selection:d,effects:f,userEvent:"input.replace"}),!0}),os=st((t,{query:e})=>{if(t.state.readOnly)return!1;let r=e.matchAll(t.state,1e9).map(o=>{let{from:i,to:l}=o;return{from:i,to:l,insert:e.getReplacement(o)}});if(!r.length)return!1;let s=t.state.phrase("replaced $ matches",r.length)+".";return t.dispatch({changes:r,effects:Y.announce.of(s),userEvent:"input.replace.all"}),!0});function qt(t){return t.state.facet(Ee).createPanel(t)}function vt(t,e){var r,s,o,i,l;let c=t.selection.main,d=c.empty||c.to>c.from+100?"":t.sliceDoc(c.from,c.to);if(e&&!d)return e;let u=t.facet(Ee);return new Ut({search:((r=e?.literal)!==null&&r!==void 0?r:u.literal)?d:d.replace(/\n/g,"\\n"),caseSensitive:(s=e?.caseSensitive)!==null&&s!==void 0?s:u.caseSensitive,literal:(o=e?.literal)!==null&&o!==void 0?o:u.literal,regexp:(i=e?.regexp)!==null&&i!==void 0?i:u.regexp,wholeWord:(l=e?.wholeWord)!==null&&l!==void 0?l:u.wholeWord})}function as(t){let e=Pn(t,qt);return e&&e.dom.querySelector("[main-field]")}function is(t){let e=as(t);e&&e==t.root.activeElement&&e.select()}const Xt=t=>{let e=t.state.field(be,!1);if(e&&e.panel){let r=as(t);if(r&&r!=t.root.activeElement){let s=vt(t.state,e.query.spec);s.valid&&t.dispatch({effects:ze.of(s)}),r.focus(),r.select()}}else t.dispatch({effects:[Ht.of(!0),e?ze.of(vt(t.state,e.query.spec)):$t.appendConfig.of(Ot)]});return!0},Qt=t=>{let e=t.state.field(be,!1);if(!e||!e.panel)return!1;let r=Pn(t,qt);return r&&r.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:Ht.of(!1)}),!0},Ta=[{key:"Mod-f",run:Xt,scope:"editor search-panel"},{key:"F3",run:$e,shift:Ke,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$e,shift:Ke,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Qt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:ka},{key:"Mod-Alt-g",run:ss},{key:"Mod-d",run:xa,preventDefault:!0}];class Ea{constructor(e){this.view=e;let r=this.query=e.state.field(be).query.spec;this.commit=this.commit.bind(this),this.searchField=ie("input",{value:r.search,placeholder:te(e,"Find"),"aria-label":te(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ie("input",{value:r.replace,placeholder:te(e,"Replace"),"aria-label":te(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ie("input",{type:"checkbox",name:"case",form:"",checked:r.caseSensitive,onchange:this.commit}),this.reField=ie("input",{type:"checkbox",name:"re",form:"",checked:r.regexp,onchange:this.commit}),this.wordField=ie("input",{type:"checkbox",name:"word",form:"",checked:r.wholeWord,onchange:this.commit});function s(o,i,l){return ie("button",{class:"cm-button",name:o,onclick:i,type:"button"},l)}this.dom=ie("div",{onkeydown:o=>this.keydown(o),class:"cm-search"},[this.searchField,s("next",()=>$e(e),[te(e,"next")]),s("prev",()=>Ke(e),[te(e,"previous")]),s("select",()=>Na(e),[te(e,"all")]),ie("label",null,[this.caseField,te(e,"match case")]),ie("label",null,[this.reField,te(e,"regexp")]),ie("label",null,[this.wordField,te(e,"by word")]),...e.state.readOnly?[]:[ie("br"),this.replaceField,s("replace",()=>Lt(e),[te(e,"replace")]),s("replaceAll",()=>os(e),[te(e,"replace all")])],ie("button",{name:"close",onclick:()=>Qt(e),"aria-label":te(e,"close"),type:"button"},["×"])])}commit(){let e=new Ut({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:ze.of(e)}))}keydown(e){Dr(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ke:$e)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Lt(this.view))}update(e){for(let r of e.transactions)for(let s of r.effects)s.is(ze)&&!s.value.eq(this.query)&&this.setQuery(s.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ee).top}}function te(t,e){return t.state.phrase(e)}const lt=30,dt=/[\s\.,:;?!]/;function Yt(t,{from:e,to:r}){let s=t.state.doc.lineAt(e),o=t.state.doc.lineAt(r).to,i=Math.max(s.from,e-lt),l=Math.min(o,r+lt),c=t.state.sliceDoc(i,l);if(i!=s.from){for(let d=0;d<lt;d++)if(!dt.test(c[d+1])&&dt.test(c[d])){c=c.slice(d);break}}if(l!=o){for(let d=c.length-1;d>c.length-lt;d--)if(!dt.test(c[d-1])&&dt.test(c[d])){c=c.slice(0,d);break}}return Y.announce.of(`${t.state.phrase("current match")}. ${c} ${t.state.phrase("on line")} ${s.number}.`)}const Ra=Y.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Ot=[be,jr.low(Ma),Ra];function Ia(t){return e=>{if(!(e.metaKey||e.ctrlKey))return;const s=Pr(e);if(s==="p"&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),t.onToggleQuickOpen();return}if(s==="f"&&e.shiftKey){e.preventDefault(),e.stopPropagation(),t.onToggleSearchPanel();return}if(s==="f"&&!e.shiftKey){e.preventDefault(),e.stopPropagation();const o=t.getEditorView();o&&Xt(o);return}if(s==="g"&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),t.onToggleGoToLine();return}if(s==="s"&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),t.activeTabId&&t.saveFile(t.activeTabId);return}if(s==="s"&&e.shiftKey){e.preventDefault(),e.stopPropagation(),t.hasUnsavedChanges()&&t.saveAllFiles();return}if(s==="m"&&e.shiftKey){e.preventDefault(),e.stopPropagation(),t.onToggleMdSplit?.();return}if(s==="v"&&e.shiftKey){e.preventDefault(),e.stopPropagation(),t.onToggleMdPreview?.();return}if(s==="w"&&e.shiftKey&&!e.altKey){e.preventDefault(),e.stopPropagation(),t.onToggleLineWrap();return}if(s==="w"&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),t.activeTabId){const o=new CustomEvent("editor-close-tab",{detail:t.activeTabId});window.dispatchEvent(o)}return}if(s==="b"){e.preventDefault(),e.stopPropagation(),t.onToggleSidebar();return}if(s==="]"&&e.shiftKey){e.preventDefault(),e.stopPropagation();const o=t.openTabs.findIndex(i=>i.id===t.activeTabId);o!==-1&&o<t.openTabs.length-1?t.setActiveEditorTab(t.openTabs[o+1].id):t.openTabs.length>0&&t.setActiveEditorTab(t.openTabs[0].id);return}if(s==="["&&e.shiftKey){e.preventDefault(),e.stopPropagation();const o=t.openTabs.findIndex(i=>i.id===t.activeTabId);o>0?t.setActiveEditorTab(t.openTabs[o-1].id):t.openTabs.length>0&&t.setActiveEditorTab(t.openTabs[t.openTabs.length-1].id);return}if(e.ctrlKey&&s==="Tab"){e.preventDefault(),e.stopPropagation();const o=t.openTabs.findIndex(i=>i.id===t.activeTabId);if(e.shiftKey){const i=o>0?o-1:t.openTabs.length-1;t.openTabs[i]&&t.setActiveEditorTab(t.openTabs[i].id)}else{const i=o<t.openTabs.length-1?o+1:0;t.openTabs[i]&&t.setActiveEditorTab(t.openTabs[i].id)}}}}function Da({onToggleQuickOpen:t,onToggleSearchPanel:e,onToggleGoToLine:r,onToggleSidebar:s,onClose:o,onToggleMdSplit:i,onToggleMdPreview:l}){const{openTabs:c,activeTabId:d}=w(Ge(S=>({openTabs:S.editorOpenTabs,activeTabId:S.editorActiveTabId}))),u=w(S=>S.setActiveEditorTab),f=w(S=>S.saveFile),h=w(S=>S.saveAllFiles),x=w(S=>S.hasUnsavedChanges),C=w(S=>S.toggleLineWrap),g=a.useRef(null);g.current={activeTabId:d,openTabs:c,setActiveEditorTab:u,saveFile:f,saveAllFiles:h,hasUnsavedChanges:x,onToggleQuickOpen:t,onToggleSearchPanel:e,onToggleGoToLine:r,onToggleSidebar:s,onToggleLineWrap:C,onToggleMdSplit:i,onToggleMdPreview:l,getEditorView:()=>Se.getView()};const b=a.useCallback(S=>{Ia(g.current)(S)},[]);a.useEffect(()=>(window.addEventListener("keydown",b,!0),()=>window.removeEventListener("keydown",b,!0)),[b])}function Pa(){if(typeof navigator>"u")return!1;const t=navigator.userAgentData?.platform??navigator.userAgent;return/mac/i.test(t)}const cs=Pa();function se(t,e){return cs?t:e}const ls=999,_t=ce.memo(function({active:e,onClick:r,tooltip:s,shortcut:o,children:i}){return n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx("button",{type:"button",className:On("flex size-[22px] items-center justify-center rounded transition-colors",e?"bg-indigo-500/20 text-indigo-400":"text-[var(--color-text-muted)] hover:bg-[var(--color-surface-raised)] hover:text-[var(--color-text-secondary)]"),onClick:r,tabIndex:-1,children:i})}),n.jsxs(Q,{side:"bottom",children:[n.jsx("span",{children:s}),o&&n.jsx("span",{className:"ml-1.5 text-[var(--color-text-muted)]",children:o})]})]})});function _a(t,e){if(!t.valid||!t.search)return 0;try{const r=t.getCursor(e);let s=0;for(;!r.next().done;)if(s++,s>ls)return-1;return s}catch{return 0}}const Fa=({view:t,initialSearch:e,initialReplace:r,initialCaseSensitive:s,initialRegexp:o,initialWholeWord:i,registerUpdateNotifier:l})=>{const[c,d]=a.useState(e),[u,f]=a.useState(r),[h,x]=a.useState(s),[C,g]=a.useState(o),[b,S]=a.useState(i),[y,M]=a.useState(!1),[E,L]=a.useState(0),O=a.useRef(null);a.useEffect(()=>{requestAnimationFrame(()=>{O.current?.focus(),O.current?.select()})},[]);const _=a.useMemo(()=>new Ut({search:c,replace:u,caseSensitive:h,regexp:C,wholeWord:b}),[c,u,h,C,b]);a.useEffect(()=>{t.dispatch({effects:ze.of(_)})},[_,t]),a.useEffect(()=>{l(()=>L(T=>T+1))},[l]);const j=a.useMemo(()=>_a(_,t.state),[_,t,E]),D=a.useCallback(()=>{$e(t)},[t]),P=a.useCallback(()=>{Ke(t)},[t]),k=a.useCallback(()=>{Lt(t)},[t]),z=a.useCallback(()=>{os(t)},[t]),H=a.useCallback(()=>{Qt(t),t.focus()},[t]),xe=a.useCallback(T=>{T.key==="Escape"?(T.preventDefault(),H()):T.key==="Enter"&&(T.preventDefault(),T.shiftKey?Ke(t):$e(t))},[t,H]),de=a.useCallback(T=>{T.key==="Escape"?(T.preventDefault(),H()):T.key==="Enter"&&(T.preventDefault(),k())},[H,k]),me=c?j===-1?`${ls}+`:j===0?"无结果":`${j} found`:"";return n.jsx(Fr,{delayDuration:400,children:n.jsxs("div",{className:"flex flex-col gap-1 px-2 py-1.5",children:[n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx("button",{type:"button",className:"flex h-[22px] w-5 items-center justify-center rounded text-[var(--color-text-muted)] transition-colors hover:text-[var(--color-text-secondary)]",onClick:()=>M(T=>!T),tabIndex:-1,children:y?n.jsx(An,{className:"size-3.5"}):n.jsx(Ln,{className:"size-3.5"})})}),n.jsx(Q,{side:"bottom",children:"显示/隐藏替换"})]}),n.jsx(At,{ref:O,className:"h-[26px] min-w-[180px] flex-1 rounded border-[var(--color-border)] bg-[var(--color-surface)] px-2 text-xs",placeholder:"搜索",value:c,onChange:T=>d(T.target.value),onKeyDown:xe,spellCheck:!1}),n.jsx(_t,{active:h,onClick:()=>x(T=>!T),tooltip:"区分大小写",children:n.jsx(Xo,{className:"size-[14px]"})}),n.jsx(_t,{active:b,onClick:()=>S(T=>!T),tooltip:"全词匹配",children:n.jsx(da,{className:"size-[14px]"})}),n.jsx(_t,{active:C,onClick:()=>g(T=>!T),tooltip:"使用正则表达式",children:n.jsx(ra,{className:"size-[14px]"})}),n.jsx("div",{className:"mx-0.5 h-4 w-px bg-[var(--color-border)]"}),me&&n.jsx("span",{className:On("min-w-[60px] whitespace-nowrap text-center text-xs tabular-nums",j===0&&c?"text-red-400":"text-[var(--color-text-muted)]"),children:me}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-[22px] text-[var(--color-text-muted)] hover:text-[var(--color-text)]",onClick:P,disabled:j===0,tabIndex:-1,children:n.jsx(Ar,{className:"size-3.5"})})}),n.jsxs(Q,{side:"bottom",children:["上一个匹配 ",n.jsx("span",{className:"text-[var(--color-text-muted)]",children:"⇧Enter"})]})]}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-[22px] text-[var(--color-text-muted)] hover:text-[var(--color-text)]",onClick:D,disabled:j===0,tabIndex:-1,children:n.jsx(Ho,{className:"size-3.5"})})}),n.jsxs(Q,{side:"bottom",children:["下一个匹配 ",n.jsx("span",{className:"text-[var(--color-text-muted)]",children:"Enter"})]})]}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-[22px] text-[var(--color-text-muted)] hover:text-[var(--color-text)]",onClick:H,tabIndex:-1,children:n.jsx(yt,{className:"size-3.5"})})}),n.jsxs(Q,{side:"bottom",children:["关闭 ",n.jsx("span",{className:"text-[var(--color-text-muted)]",children:"Esc"})]})]})]}),y&&n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsx("div",{className:"w-5 shrink-0"}),n.jsx(At,{className:"h-[26px] min-w-[180px] flex-1 rounded border-[var(--color-border)] bg-[var(--color-surface)] px-2 text-xs",placeholder:"替换",value:u,onChange:T=>f(T.target.value),onKeyDown:de,spellCheck:!1}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"sm",className:"h-[22px] px-2 text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)]",onClick:k,disabled:j===0,tabIndex:-1,children:"替换"})}),n.jsx(Q,{side:"bottom",children:"替换下一个"})]}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"sm",className:"h-[22px] px-2 text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)]",onClick:z,disabled:j===0,tabIndex:-1,children:"全部"})}),n.jsx(Q,{side:"bottom",children:"全部替换"})]})]})]})})};function Aa(t){const e=document.createElement("div"),r=_r.createRoot(e),s=ja(t.state),o=t.state.selection.main,i=o.empty?"":t.state.sliceDoc(o.from,o.to),l=i&&!i.includes(`
58
+ `)?i:s.search;let c=null;return r.render(n.jsx(Fa,{view:t,initialSearch:l,initialReplace:s.replace,initialCaseSensitive:s.caseSensitive,initialRegexp:s.regexp,initialWholeWord:s.wholeWord,registerUpdateNotifier:d=>{c=d}})),{dom:e,top:!0,update(d){d.docChanged&&c?.()},destroy(){c=null,r.unmount()}}}const La=Y.theme({".cm-panels":{backgroundColor:"var(--color-surface)",color:"var(--color-text)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},".cm-panels-top":{borderBottom:"1px solid var(--color-border)"},".cm-panels-bottom":{borderTop:"1px solid var(--color-border)"},".cm-searchMatch":{backgroundColor:"var(--highlight-bg-inactive)",borderRadius:"2px"},".cm-searchMatch-selected":{backgroundColor:"var(--highlight-bg) !important",borderRadius:"2px"}}),Oa=150,Mn=5e3;function Nn(t,e){const r=t.coordsAtPos(e.to);if(!r)return null;let s=t.state.sliceDoc(e.from,e.to);return s.length>Mn&&(s=s.slice(0,Mn)+"…"),{text:s,filePath:"",fromLine:t.state.doc.lineAt(e.from).number,toLine:t.state.doc.lineAt(e.to).number,screenRect:{top:r.top,right:r.right??r.left,bottom:r.bottom}}}const za=30,$a=300,Ka=3e4,Ga=500*1024,kn=10,Tn=new Lr;function Wa(t,e,r,s,o,i){const l=Or(t),c=zr(t),d=[$r,Kr(Xr),Gr(),Wr(),Br(),Vr(),Ur(),Hr(),qr(),ma({createPanel:Aa}),La,yn.of([{key:"Mod-s",run:()=>(e(),!0)},{key:"Mod-z",run:u=>zn(u)},{key:"Mod-Shift-z",run:u=>$n(u)}]),yn.of([...Qr,...Yr,...Ta.filter(u=>u.run!==ss),...Zr]),Y.updateListener.of(u=>{if(u.docChanged&&r(),u.selectionSet||u.docChanged){const f=u.state.selection.main.head,h=u.state.doc.lineAt(f);s(h.number,f-h.from+1);const x=u.state.selection.main;x.empty?o(null):o(Nn(u.view,x))}}),Y.domEventHandlers({scroll:(u,f)=>{const h=f.state.selection.main;h.empty||i(Nn(f,h))}})];return l?d.push(l):c&&d.push(c.support??[]),d}function Ba(t,e){try{if(e.length>Ga)return;const r=`editor-draft:${t}`,s=JSON.stringify({content:e,timestamp:Date.now()});localStorage.setItem(r,s),Va()}catch{}}function Va(){try{const t=[];for(let e=0;e<localStorage.length;e++){const r=localStorage.key(e);if(r?.startsWith("editor-draft:"))try{const s=JSON.parse(localStorage.getItem(r));t.push({key:r,timestamp:s.timestamp})}catch{localStorage.removeItem(r)}}if(t.length>kn){t.sort((r,s)=>r.timestamp-s.timestamp);const e=t.slice(0,t.length-kn);for(const r of e)localStorage.removeItem(r.key)}}catch{}}const Ua=150,Ha=({filePath:t,content:e,fileName:r,mtimeMs:s,onCursorChange:o,onDraftRecovered:i,onSelectionChange:l,onDocChange:c})=>{const d=a.useRef(null),u=a.useRef(null),f=a.useRef(new Map),h=a.useRef(new Map),x=a.useRef([]),C=a.useRef(null),g=a.useRef(null),b=a.useRef(null),S=a.useRef(null),y=w(p=>p.markFileModified),M=w(p=>p.discardChanges),E=w(p=>p.saveFile),L=w(p=>p.editorLineWrap),O=a.useRef(t);O.current=t;const _=a.useRef(o);_.current=o;const j=a.useRef(i);j.current=i;const D=a.useRef(l);D.current=l;const P=a.useRef(c);P.current=c;const k=a.useRef(L);k.current=L;const z=a.useCallback(()=>{E(O.current)},[E]),H=a.useCallback(()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{y(O.current)},$a),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{const p=u.current;p&&Ba(O.current,p.state.doc.toString())},Ka),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{const p=u.current;p&&P.current?.(p.state.doc.toString())},Ua)},[y]),xe=a.useCallback((p,R)=>{_.current?.(p,R)},[]),de=a.useCallback(p=>{if(!p){b.current&&clearTimeout(b.current),D.current?.(null);return}b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{D.current?.({...p,filePath:O.current})},Oa)},[]),me=a.useCallback(p=>{b.current&&clearTimeout(b.current),p?D.current?.({...p,filePath:O.current}):D.current?.(null)},[]),T=a.useCallback(p=>{const R=x.current,F=R.indexOf(p);for(F!==-1&&R.splice(F,1),R.push(p);R.length>za;){const U=R.shift();f.current.delete(U),h.current.delete(U),M(U)}},[M]);a.useEffect(()=>{if(!d.current)return;const p=Wa(r,z,H,xe,de,me);p.push(Tn.of(k.current?Y.lineWrapping:[]));let R=f.current.get(t);if(!R){let De=e,we=!1;try{const Me=localStorage.getItem(`editor-draft:${t}`);if(Me){const ae=JSON.parse(Me),Ce=s??0;Ce===0||ae.timestamp>Ce?(De=ae.content,we=!0):localStorage.removeItem(`editor-draft:${t}`)}}catch{}R=_n.create({doc:De,extensions:p}),f.current.set(t,R),we&&(y(t),j.current?.(t))}T(t);const F=new Y({state:R,parent:d.current}),U=h.current.get(t);U!==void 0&&(F.scrollDOM.scrollTop=U),u.current=F,Se.register(f.current,h.current,F);const ue=F.state.selection.main.head,re=F.state.doc.lineAt(ue);_.current?.(re.number,ue-re.from+1);const pe=h.current,oe=f.current,V=C,ge=g,J=b,ve=S;return()=>{pe.set(t,F.scrollDOM.scrollTop),oe.set(t,F.state),V.current&&clearTimeout(V.current),ge.current&&clearTimeout(ge.current),J.current&&clearTimeout(J.current),ve.current&&clearTimeout(ve.current),F.destroy(),u.current=null}},[t]),a.useEffect(()=>{const p=u.current;p&&p.dispatch({effects:Tn.reconfigure(L?Y.lineWrapping:[])})},[L]);const B=w(p=>p.editorPendingGoToLine),K=w(p=>p.setPendingGoToLine);return a.useEffect(()=>{const p=u.current;if(!p||!B)return;const R=p.state.doc.lines,F=Math.min(Math.max(1,B),R),U=p.state.doc.line(F);p.dispatch({selection:{anchor:U.from},effects:Y.scrollIntoView(U.from,{y:"center"})}),K(null)},[B,K,t]),a.useEffect(()=>()=>{Se.unregister()},[]),n.jsx("div",{ref:d,className:"size-full overflow-hidden"})},qa=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico"]),Xa=10*1024*1024;function Qa(t){const e=t.lastIndexOf(".");return e===-1?"":t.slice(e+1).toLowerCase()}function ds(t){const e=Qa(t);return qa.has(e)?"image":"unknown"}function Ya(t,e){return ds(t)==="image"?e<=Xa:!1}const us=({filePath:t,fileName:e,size:r})=>{const s=w(l=>l.editorProjectPath),o=r<1024?`${r} B`:r<1024*1024?`${(r/1024).toFixed(1)} KB`:`${(r/1024/1024).toFixed(1)} MB`,i=()=>{Te.openPath(t,s??void 0).catch(console.error)};return n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-text-muted",children:[n.jsx(ta,{className:"size-12 opacity-30"}),n.jsx("p",{className:"text-sm font-medium text-text-secondary",children:e}),n.jsxs("p",{className:"text-xs",children:["Binary file (",o,")"]}),n.jsx(I,{variant:"outline",size:"sm",className:"mt-2",onClick:i,children:"Open in System Viewer"})]})},Za=({filePath:t,fileName:e,size:r})=>{const s=w(M=>M.editorProjectPath),[o,i]=a.useState(null),[l,c]=a.useState(!0),[d,u]=a.useState(null),[f,h]=a.useState(!1),[x,C]=a.useState(null),g=a.useRef(null);a.useEffect(()=>{c(!0),u(null),i(null),C(null),h(!1)},[t]),a.useEffect(()=>{let M=!1;return Te.editor.readBinaryPreview(t).then(E=>{M||i(`data:${E.mimeType};base64,${E.base64}`)}).catch(E=>{M||u(E.message)}).finally(()=>{M||c(!1)}),()=>{M=!0}},[t]);const b=a.useCallback(()=>{const M=g.current;M&&C({w:M.naturalWidth,h:M.naturalHeight})},[]),S=a.useCallback(()=>{Te.openPath(t,s??void 0).catch(console.error)},[t,s]),y=r<1024?`${r} B`:r<1024*1024?`${(r/1024).toFixed(1)} KB`:`${(r/1024/1024).toFixed(1)} MB`;return l?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-text-muted",children:[n.jsx(jt,{className:"size-8 animate-spin opacity-40"}),n.jsx("p",{className:"text-xs",children:"正在加载预览…"})]}):d||!o?n.jsx(us,{filePath:t,fileName:e,size:r}):n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-4 p-6",children:[n.jsx("button",{type:"button",className:"checkerboard-bg flex max-h-[60vh] max-w-[80%] cursor-zoom-in items-center justify-center overflow-hidden rounded-lg border border-border-subtle p-1",onClick:()=>h(!0),"aria-label":"打开完整尺寸预览",children:n.jsx("img",{ref:g,src:o,alt:e,className:"max-h-[60vh] object-contain",onLoad:b,draggable:!1})}),n.jsxs("p",{className:"text-xs text-text-muted",children:[e,x?` — ${x.w}×${x.h}`:"",` — ${y}`]}),n.jsx("div",{className:"flex gap-2",children:n.jsx(I,{variant:"outline",size:"sm",onClick:S,children:"Open in System Viewer"})}),n.jsx(Jr,{open:f,onClose:()=>h(!1),src:o,alt:e})]})},Ja=({filePath:t,size:e})=>{const r=Le(t)||t;return ds(r)==="image"&&Ya(r,e)?n.jsx(Za,{filePath:t,fileName:r,size:e}):n.jsx(us,{filePath:t,fileName:r,size:e})},ei=[{keys:se("⌘ P","Ctrl+P"),label:"快速打开"},{keys:se("⌘ ⇧ F","Ctrl+Shift+F"),label:"在文件中搜索"},{keys:se("⌘ S","Ctrl+S"),label:"保存"},{keys:se("⌘ B","Ctrl+B"),label:"切换侧边栏"},{keys:se("⌘ G","Ctrl+G"),label:"跳转到行"},{keys:"Esc",label:"关闭编辑器"}],ti=()=>n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-4 text-text-muted",children:[n.jsx(eo,{className:"size-12 opacity-30"}),n.jsx("p",{className:"text-sm",children:"从文件树中选择文件开始编辑"}),n.jsx("div",{className:"mt-2 grid grid-cols-2 gap-x-6 gap-y-1.5",children:ei.map(t=>n.jsxs("div",{className:"flex items-center justify-between gap-4 text-xs",children:[n.jsx("span",{className:"text-text-muted",children:t.label}),n.jsx("kbd",{className:"rounded border border-border bg-surface-raised px-1.5 py-0.5 font-mono text-[10px] text-text-secondary",children:t.keys})]},t.keys))})]});class ni extends ce.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e.message}}componentDidCatch(e,r){console.error(`[EditorErrorBoundary] ${this.props.filePath}:`,e,r.componentStack)}handleRetry=()=>{this.setState({hasError:!1,error:null}),this.props.onRetry?.()};render(){return this.state.hasError?n.jsxs("div",{role:"alert","aria-live":"polite",className:"flex h-full flex-col items-center justify-center gap-3 text-text-muted",children:[n.jsx(Gt,{"aria-hidden":"true",className:"size-12 text-red-400 opacity-50"}),n.jsxs("p",{className:"max-w-md text-center text-sm text-text-secondary",children:["编辑器崩溃:",this.state.error??"未知错误"]}),n.jsx("button",{type:"button",onClick:this.handleRetry,className:"rounded border border-border px-3 py-1.5 text-xs text-text-secondary transition-colors hover:bg-surface-raised",children:"重试"})]}):n.jsx(n.Fragment,{children:this.props.children})}}const si=({error:t,onRetry:e,onClose:r})=>n.jsxs("div",{role:"alert","aria-live":"polite",className:"flex h-full flex-col items-center justify-center gap-3 text-text-muted",children:[n.jsx(Gt,{"aria-hidden":"true",className:"size-12 text-yellow-500 opacity-50"}),n.jsx("p",{className:"max-w-md text-center text-sm text-text-secondary",children:t}),n.jsxs("div",{className:"flex gap-2",children:[e&&n.jsx(I,{variant:"outline",size:"sm",onClick:e,children:"重试"}),r&&n.jsx(I,{variant:"outline",size:"sm",onClick:r,children:"关闭标签页"})]})]});function ri(t){return[...t].sort((e,r)=>e.isFile!==r.isFile?e.isFile?1:-1:e.name.localeCompare(r.name))}var zt=["Enter"," "],oi=["ArrowDown","PageUp","Home"],hs=["ArrowUp","PageDown","End"],ai=[...oi,...hs],ii={ltr:[...zt,"ArrowRight"],rtl:[...zt,"ArrowLeft"]},ci={ltr:["ArrowLeft"],rtl:["ArrowRight"]},rt="Menu",[Je,li,di]=to(rt),[Re,fs]=Kn(rt,[di,Gn,Wn]),wt=Gn(),xs=Wn(),[ui,Ie]=Re(rt),[hi,ot]=Re(rt),ms=t=>{const{__scopeMenu:e,open:r=!1,children:s,dir:o,onOpenChange:i,modal:l=!0}=t,c=wt(e),[d,u]=a.useState(null),f=a.useRef(!1),h=Wt(i),x=no(o);return a.useEffect(()=>{const C=()=>{f.current=!0,document.addEventListener("pointerdown",g,{capture:!0,once:!0}),document.addEventListener("pointermove",g,{capture:!0,once:!0})},g=()=>f.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",g,{capture:!0}),document.removeEventListener("pointermove",g,{capture:!0})}},[]),n.jsx(so,{...c,children:n.jsx(ui,{scope:e,open:r,onOpenChange:h,content:d,onContentChange:u,children:n.jsx(hi,{scope:e,onClose:a.useCallback(()=>h(!1),[h]),isUsingKeyboardRef:f,dir:x,modal:l,children:s})})})};ms.displayName=rt;var fi="MenuAnchor",Zt=a.forwardRef((t,e)=>{const{__scopeMenu:r,...s}=t,o=wt(r);return n.jsx(ro,{...o,...s,ref:e})});Zt.displayName=fi;var Jt="MenuPortal",[xi,ps]=Re(Jt,{forceMount:void 0}),gs=t=>{const{__scopeMenu:e,forceMount:r,children:s,container:o}=t,i=Ie(Jt,e);return n.jsx(xi,{scope:e,forceMount:r,children:n.jsx(St,{present:r||i.open,children:n.jsx(oo,{asChild:!0,container:o,children:s})})})};gs.displayName=Jt;var le="MenuContent",[mi,en]=Re(le),vs=a.forwardRef((t,e)=>{const r=ps(le,t.__scopeMenu),{forceMount:s=r.forceMount,...o}=t,i=Ie(le,t.__scopeMenu),l=ot(le,t.__scopeMenu);return n.jsx(Je.Provider,{scope:t.__scopeMenu,children:n.jsx(St,{present:s||i.open,children:n.jsx(Je.Slot,{scope:t.__scopeMenu,children:l.modal?n.jsx(pi,{...o,ref:e}):n.jsx(gi,{...o,ref:e})})})})}),pi=a.forwardRef((t,e)=>{const r=Ie(le,t.__scopeMenu),s=a.useRef(null),o=tt(e,s);return a.useEffect(()=>{const i=s.current;if(i)return ao(i)},[]),n.jsx(tn,{...t,ref:o,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:$(t.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})}),gi=a.forwardRef((t,e)=>{const r=Ie(le,t.__scopeMenu);return n.jsx(tn,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)})}),vi=ho("MenuContent.ScrollLock"),tn=a.forwardRef((t,e)=>{const{__scopeMenu:r,loop:s=!1,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:l,disableOutsidePointerEvents:c,onEntryFocus:d,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:x,onDismiss:C,disableOutsideScroll:g,...b}=t,S=Ie(le,r),y=ot(le,r),M=wt(r),E=xs(r),L=li(r),[O,_]=a.useState(null),j=a.useRef(null),D=tt(e,j,S.onContentChange),P=a.useRef(0),k=a.useRef(""),z=a.useRef(0),H=a.useRef(null),xe=a.useRef("right"),de=a.useRef(0),me=g?uo:a.Fragment,T=g?{as:vi,allowPinchZoom:!0}:void 0,B=p=>{const R=k.current+p,F=L().filter(V=>!V.disabled),U=document.activeElement,ue=F.find(V=>V.ref.current===U)?.textValue,re=F.map(V=>V.textValue),pe=Ri(re,R,ue),oe=F.find(V=>V.textValue===pe)?.ref.current;(function V(ge){k.current=ge,window.clearTimeout(P.current),ge!==""&&(P.current=window.setTimeout(()=>V(""),1e3))})(R),oe&&setTimeout(()=>oe.focus())};a.useEffect(()=>()=>window.clearTimeout(P.current),[]),lo();const K=a.useCallback(p=>xe.current===H.current?.side&&Di(p,H.current?.area),[]);return n.jsx(mi,{scope:r,searchRef:k,onItemEnter:a.useCallback(p=>{K(p)&&p.preventDefault()},[K]),onItemLeave:a.useCallback(p=>{K(p)||(j.current?.focus(),_(null))},[K]),onTriggerLeave:a.useCallback(p=>{K(p)&&p.preventDefault()},[K]),pointerGraceTimerRef:z,onPointerGraceIntentChange:a.useCallback(p=>{H.current=p},[]),children:n.jsx(me,{...T,children:n.jsx(fo,{asChild:!0,trapped:o,onMountAutoFocus:$(i,p=>{p.preventDefault(),j.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:n.jsx(xo,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:x,onDismiss:C,children:n.jsx(mo,{asChild:!0,...E,dir:y.dir,orientation:"vertical",loop:s,currentTabStopId:O,onCurrentTabStopIdChange:_,onEntryFocus:$(d,p=>{y.isUsingKeyboardRef.current||p.preventDefault()}),preventScrollOnEntryFocus:!0,children:n.jsx(po,{role:"menu","aria-orientation":"vertical","data-state":_s(S.open),"data-radix-menu-content":"",dir:y.dir,...M,...b,ref:D,style:{outline:"none",...b.style},onKeyDown:$(b.onKeyDown,p=>{const F=p.target.closest("[data-radix-menu-content]")===p.currentTarget,U=p.ctrlKey||p.altKey||p.metaKey,ue=p.key.length===1;F&&(p.key==="Tab"&&p.preventDefault(),!U&&ue&&B(p.key));const re=j.current;if(p.target!==re||!ai.includes(p.key))return;p.preventDefault();const oe=L().filter(V=>!V.disabled).map(V=>V.ref.current);hs.includes(p.key)&&oe.reverse(),Ti(oe)}),onBlur:$(t.onBlur,p=>{p.currentTarget.contains(p.target)||(window.clearTimeout(P.current),k.current="")}),onPointerMove:$(t.onPointerMove,et(p=>{const R=p.target,F=de.current!==p.clientX;if(p.currentTarget.contains(R)&&F){const U=p.clientX>de.current?"right":"left";xe.current=U,de.current=p.clientX}}))})})})})})})});vs.displayName=le;var bi="MenuGroup",nn=a.forwardRef((t,e)=>{const{__scopeMenu:r,...s}=t;return n.jsx(We.div,{role:"group",...s,ref:e})});nn.displayName=bi;var Ci="MenuLabel",bs=a.forwardRef((t,e)=>{const{__scopeMenu:r,...s}=t;return n.jsx(We.div,{...s,ref:e})});bs.displayName=Ci;var bt="MenuItem",En="menu.itemSelect",Mt=a.forwardRef((t,e)=>{const{disabled:r=!1,onSelect:s,...o}=t,i=a.useRef(null),l=ot(bt,t.__scopeMenu),c=en(bt,t.__scopeMenu),d=tt(e,i),u=a.useRef(!1),f=()=>{const h=i.current;if(!r&&h){const x=new CustomEvent(En,{bubbles:!0,cancelable:!0});h.addEventListener(En,C=>s?.(C),{once:!0}),co(h,x),x.defaultPrevented?u.current=!1:l.onClose()}};return n.jsx(Cs,{...o,ref:d,disabled:r,onClick:$(t.onClick,f),onPointerDown:h=>{t.onPointerDown?.(h),u.current=!0},onPointerUp:$(t.onPointerUp,h=>{u.current||h.currentTarget?.click()}),onKeyDown:$(t.onKeyDown,h=>{const x=c.searchRef.current!=="";r||x&&h.key===" "||zt.includes(h.key)&&(h.currentTarget.click(),h.preventDefault())})})});Mt.displayName=bt;var Cs=a.forwardRef((t,e)=>{const{__scopeMenu:r,disabled:s=!1,textValue:o,...i}=t,l=en(bt,r),c=xs(r),d=a.useRef(null),u=tt(e,d),[f,h]=a.useState(!1),[x,C]=a.useState("");return a.useEffect(()=>{const g=d.current;g&&C((g.textContent??"").trim())},[i.children]),n.jsx(Je.ItemSlot,{scope:r,disabled:s,textValue:o??x,children:n.jsx(io,{asChild:!0,...c,focusable:!s,children:n.jsx(We.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":s||void 0,"data-disabled":s?"":void 0,...i,ref:u,onPointerMove:$(t.onPointerMove,et(g=>{s?l.onItemLeave(g):(l.onItemEnter(g),g.defaultPrevented||g.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:$(t.onPointerLeave,et(g=>l.onItemLeave(g))),onFocus:$(t.onFocus,()=>h(!0)),onBlur:$(t.onBlur,()=>h(!1))})})})}),yi="MenuCheckboxItem",ys=a.forwardRef((t,e)=>{const{checked:r=!1,onCheckedChange:s,...o}=t;return n.jsx(Ns,{scope:t.__scopeMenu,checked:r,children:n.jsx(Mt,{role:"menuitemcheckbox","aria-checked":Ct(r)?"mixed":r,...o,ref:e,"data-state":rn(r),onSelect:$(o.onSelect,()=>s?.(Ct(r)?!0:!r),{checkForDefaultPrevented:!1})})})});ys.displayName=yi;var js="MenuRadioGroup",[ji,Si]=Re(js,{value:void 0,onValueChange:()=>{}}),Ss=a.forwardRef((t,e)=>{const{value:r,onValueChange:s,...o}=t,i=Wt(s);return n.jsx(ji,{scope:t.__scopeMenu,value:r,onValueChange:i,children:n.jsx(nn,{...o,ref:e})})});Ss.displayName=js;var ws="MenuRadioItem",Ms=a.forwardRef((t,e)=>{const{value:r,...s}=t,o=Si(ws,t.__scopeMenu),i=r===o.value;return n.jsx(Ns,{scope:t.__scopeMenu,checked:i,children:n.jsx(Mt,{role:"menuitemradio","aria-checked":i,...s,ref:e,"data-state":rn(i),onSelect:$(s.onSelect,()=>o.onValueChange?.(r),{checkForDefaultPrevented:!1})})})});Ms.displayName=ws;var sn="MenuItemIndicator",[Ns,wi]=Re(sn,{checked:!1}),ks=a.forwardRef((t,e)=>{const{__scopeMenu:r,forceMount:s,...o}=t,i=wi(sn,r);return n.jsx(St,{present:s||Ct(i.checked)||i.checked===!0,children:n.jsx(We.span,{...o,ref:e,"data-state":rn(i.checked)})})});ks.displayName=sn;var Mi="MenuSeparator",Ts=a.forwardRef((t,e)=>{const{__scopeMenu:r,...s}=t;return n.jsx(We.div,{role:"separator","aria-orientation":"horizontal",...s,ref:e})});Ts.displayName=Mi;var Ni="MenuArrow",Es=a.forwardRef((t,e)=>{const{__scopeMenu:r,...s}=t,o=wt(r);return n.jsx(go,{...o,...s,ref:e})});Es.displayName=Ni;var ki="MenuSub",[tl,Rs]=Re(ki),He="MenuSubTrigger",Is=a.forwardRef((t,e)=>{const r=Ie(He,t.__scopeMenu),s=ot(He,t.__scopeMenu),o=Rs(He,t.__scopeMenu),i=en(He,t.__scopeMenu),l=a.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:d}=i,u={__scopeMenu:t.__scopeMenu},f=a.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return a.useEffect(()=>f,[f]),a.useEffect(()=>{const h=c.current;return()=>{window.clearTimeout(h),d(null)}},[c,d]),n.jsx(Zt,{asChild:!0,...u,children:n.jsx(Cs,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":o.contentId,"data-state":_s(r.open),...t,ref:vo(e,o.onTriggerChange),onClick:h=>{t.onClick?.(h),!(t.disabled||h.defaultPrevented)&&(h.currentTarget.focus(),r.open||r.onOpenChange(!0))},onPointerMove:$(t.onPointerMove,et(h=>{i.onItemEnter(h),!h.defaultPrevented&&!t.disabled&&!r.open&&!l.current&&(i.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{r.onOpenChange(!0),f()},100))})),onPointerLeave:$(t.onPointerLeave,et(h=>{f();const x=r.content?.getBoundingClientRect();if(x){const C=r.content?.dataset.side,g=C==="right",b=g?-5:5,S=x[g?"left":"right"],y=x[g?"right":"left"];i.onPointerGraceIntentChange({area:[{x:h.clientX+b,y:h.clientY},{x:S,y:x.top},{x:y,y:x.top},{x:y,y:x.bottom},{x:S,y:x.bottom}],side:C}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(h),h.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:$(t.onKeyDown,h=>{const x=i.searchRef.current!=="";t.disabled||x&&h.key===" "||ii[s.dir].includes(h.key)&&(r.onOpenChange(!0),r.content?.focus(),h.preventDefault())})})})});Is.displayName=He;var Ds="MenuSubContent",Ps=a.forwardRef((t,e)=>{const r=ps(le,t.__scopeMenu),{forceMount:s=r.forceMount,...o}=t,i=Ie(le,t.__scopeMenu),l=ot(le,t.__scopeMenu),c=Rs(Ds,t.__scopeMenu),d=a.useRef(null),u=tt(e,d);return n.jsx(Je.Provider,{scope:t.__scopeMenu,children:n.jsx(St,{present:s||i.open,children:n.jsx(Je.Slot,{scope:t.__scopeMenu,children:n.jsx(tn,{id:c.contentId,"aria-labelledby":c.triggerId,...o,ref:u,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{l.isUsingKeyboardRef.current&&d.current?.focus(),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:$(t.onFocusOutside,f=>{f.target!==c.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:$(t.onEscapeKeyDown,f=>{l.onClose(),f.preventDefault()}),onKeyDown:$(t.onKeyDown,f=>{const h=f.currentTarget.contains(f.target),x=ci[l.dir].includes(f.key);h&&x&&(i.onOpenChange(!1),c.trigger?.focus(),f.preventDefault())})})})})})});Ps.displayName=Ds;function _s(t){return t?"open":"closed"}function Ct(t){return t==="indeterminate"}function rn(t){return Ct(t)?"indeterminate":t?"checked":"unchecked"}function Ti(t){const e=document.activeElement;for(const r of t)if(r===e||(r.focus(),document.activeElement!==e))return}function Ei(t,e){return t.map((r,s)=>t[(e+s)%t.length])}function Ri(t,e,r){const o=e.length>1&&Array.from(e).every(u=>u===e[0])?e[0]:e,i=r?t.indexOf(r):-1;let l=Ei(t,Math.max(i,0));o.length===1&&(l=l.filter(u=>u!==r));const d=l.find(u=>u.toLowerCase().startsWith(o.toLowerCase()));return d!==r?d:void 0}function Ii(t,e){const{x:r,y:s}=t;let o=!1;for(let i=0,l=e.length-1;i<e.length;l=i++){const c=e[i],d=e[l],u=c.x,f=c.y,h=d.x,x=d.y;f>s!=x>s&&r<(h-u)*(s-f)/(x-f)+u&&(o=!o)}return o}function Di(t,e){if(!e)return!1;const r={x:t.clientX,y:t.clientY};return Ii(r,e)}function et(t){return e=>e.pointerType==="mouse"?t(e):void 0}var Pi=ms,_i=Zt,Fi=gs,Ai=vs,Li=nn,Oi=bs,zi=Mt,$i=ys,Ki=Ss,Gi=Ms,Wi=ks,Bi=Ts,Vi=Es,Ui=Is,Hi=Ps,on="ContextMenu",[qi]=Kn(on,[fs]),Z=fs(),[Xi,Fs]=qi(on),As=t=>{const{__scopeContextMenu:e,children:r,onOpenChange:s,dir:o,modal:i=!0}=t,[l,c]=a.useState(!1),d=Z(e),u=Wt(s),f=a.useCallback(h=>{c(h),u(h)},[u]);return n.jsx(Xi,{scope:e,open:l,onOpenChange:f,modal:i,children:n.jsx(Pi,{...d,dir:o,open:l,onOpenChange:f,modal:i,children:r})})};As.displayName=on;var Ls="ContextMenuTrigger",Os=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,disabled:s=!1,...o}=t,i=Fs(Ls,r),l=Z(r),c=a.useRef({x:0,y:0}),d=a.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...c.current})}),u=a.useRef(0),f=a.useCallback(()=>window.clearTimeout(u.current),[]),h=x=>{c.current={x:x.clientX,y:x.clientY},i.onOpenChange(!0)};return a.useEffect(()=>f,[f]),a.useEffect(()=>void(s&&f()),[s,f]),n.jsxs(n.Fragment,{children:[n.jsx(_i,{...l,virtualRef:d}),n.jsx(We.span,{"data-state":i.open?"open":"closed","data-disabled":s?"":void 0,...o,ref:e,style:{WebkitTouchCallout:"none",...t.style},onContextMenu:s?t.onContextMenu:$(t.onContextMenu,x=>{f(),h(x),x.preventDefault()}),onPointerDown:s?t.onPointerDown:$(t.onPointerDown,ut(x=>{f(),u.current=window.setTimeout(()=>h(x),700)})),onPointerMove:s?t.onPointerMove:$(t.onPointerMove,ut(f)),onPointerCancel:s?t.onPointerCancel:$(t.onPointerCancel,ut(f)),onPointerUp:s?t.onPointerUp:$(t.onPointerUp,ut(f))})]})});Os.displayName=Ls;var Qi="ContextMenuPortal",zs=t=>{const{__scopeContextMenu:e,...r}=t,s=Z(e);return n.jsx(Fi,{...s,...r})};zs.displayName=Qi;var $s="ContextMenuContent",Ks=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Fs($s,r),i=Z(r),l=a.useRef(!1);return n.jsx(Ai,{...i,...s,ref:e,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:c=>{t.onCloseAutoFocus?.(c),!c.defaultPrevented&&l.current&&c.preventDefault(),l.current=!1},onInteractOutside:c=>{t.onInteractOutside?.(c),!c.defaultPrevented&&!o.modal&&(l.current=!0)},style:{...t.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Ks.displayName=$s;var Yi="ContextMenuGroup",Zi=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Li,{...o,...s,ref:e})});Zi.displayName=Yi;var Ji="ContextMenuLabel",ec=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Oi,{...o,...s,ref:e})});ec.displayName=Ji;var tc="ContextMenuItem",Gs=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(zi,{...o,...s,ref:e})});Gs.displayName=tc;var nc="ContextMenuCheckboxItem",sc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx($i,{...o,...s,ref:e})});sc.displayName=nc;var rc="ContextMenuRadioGroup",oc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Ki,{...o,...s,ref:e})});oc.displayName=rc;var ac="ContextMenuRadioItem",ic=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Gi,{...o,...s,ref:e})});ic.displayName=ac;var cc="ContextMenuItemIndicator",lc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Wi,{...o,...s,ref:e})});lc.displayName=cc;var dc="ContextMenuSeparator",Ws=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Bi,{...o,...s,ref:e})});Ws.displayName=dc;var uc="ContextMenuArrow",hc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Vi,{...o,...s,ref:e})});hc.displayName=uc;var fc="ContextMenuSubTrigger",xc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Ui,{...o,...s,ref:e})});xc.displayName=fc;var mc="ContextMenuSubContent",pc=a.forwardRef((t,e)=>{const{__scopeContextMenu:r,...s}=t,o=Z(r);return n.jsx(Hi,{...o,...s,ref:e,style:{...t.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});pc.displayName=mc;function ut(t){return e=>e.pointerType!=="mouse"?t(e):void 0}var Bs=As,Vs=Os,Us=zs,Hs=Ks,ne=Gs,Ae=Ws;const gc=({children:t,projectPath:e,onNewFile:r,onNewFolder:s,onDelete:o,onRename:i,onSendMessage:l})=>{const[c,d]=a.useState(null),u=a.useRef(null),f=a.useCallback(x=>{let C=x.target;for(;C&&C!==x.currentTarget;){const g=C.getAttribute("data-editor-path");if(g){const b=C.getAttribute("data-editor-type"),S=C.getAttribute("data-editor-sensitive");d({path:g,isDir:b==="directory",isSensitive:S==="true"});return}C=C.parentElement}d(null)},[]),h=c?c.isDir?c.path:c.path.substring(0,xt(c.path)):null;return n.jsxs(Bs,{children:[n.jsx(Vs,{asChild:!0,children:n.jsx("div",{ref:u,onContextMenu:f,className:"h-full",children:t})}),n.jsx(Us,{children:n.jsxs(Hs,{className:"z-50 min-w-[180px] rounded-md border border-border-emphasis bg-surface-overlay p-1 shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",children:[h&&n.jsxs(n.Fragment,{children:[n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>r(h),children:[n.jsx(Zn,{className:"size-3.5 text-text-muted"}),"New File"]}),n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>s(h),children:[n.jsx(Jn,{className:"size-3.5 text-text-muted"}),"New Folder"]}),n.jsx(Ae,{className:"my-1 h-px bg-border"})]}),c&&n.jsxs(n.Fragment,{children:[n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised disabled:cursor-not-allowed disabled:opacity-50",disabled:c.isSensitive,onSelect:()=>i(c.path),children:[n.jsx(bo,{className:"size-3.5 text-text-muted"}),"Rename"]}),n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-red-400 outline-none hover:bg-surface-raised focus:bg-surface-raised disabled:cursor-not-allowed disabled:opacity-50",disabled:c.isSensitive,onSelect:()=>o(c.path),children:[n.jsx(Co,{className:"size-3.5"}),"Delete"]}),n.jsx(Ae,{className:"my-1 h-px bg-border"})]}),c&&n.jsxs(n.Fragment,{children:[n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>void navigator.clipboard.writeText(c.path),children:[n.jsx(Sn,{className:"size-3.5 text-text-muted"}),"Copy Path"]}),e&&c.path.startsWith(e)&&n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>{const x=c.path.slice(e.length+1);navigator.clipboard.writeText(x)},children:[n.jsx(Sn,{className:"size-3.5 text-text-muted"}),"Copy Relative Path"]}),n.jsx(Ae,{className:"my-1 h-px bg-border"}),n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>{Te.showInFolder(c.path)},children:[n.jsx(Bt,{className:"size-3.5 text-text-muted"}),"Reveal in Finder"]})]}),c&&!c.isDir&&l&&n.jsxs(n.Fragment,{children:[n.jsx(Ae,{className:"my-1 h-px bg-border"}),n.jsxs(ne,{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>l(c.path),children:[n.jsx(Bn,{className:"size-3.5 text-text-muted"}),"Write Teammate"]})]})]})})]})},vc={modified:{letter:"M",color:"text-orange-400"},untracked:{letter:"U",color:"text-green-400"},staged:{letter:"A",color:"text-green-400"},deleted:{letter:"D",color:"text-red-400"},conflict:{letter:"C",color:"text-red-400 font-bold"},renamed:{letter:"R",color:"text-cyan-400"}},bc=ce.memo(function({status:e}){const r=vc[e];return n.jsx("span",{className:`ml-auto shrink-0 text-[10px] leading-none ${r.color}`,title:e,children:r.letter})}),Cc=/[\x00-\x1f/\\:*?"<>|]/;function yc(t){const e=t.trim();return e.length===0?"Name cannot be empty":e==="."||e===".."?"Invalid name":Cc.test(e)?"Name contains invalid characters":e.length>255?"Name is too long":null}const jc=({type:t,parentDir:e,onSubmit:r,onCancel:s})=>{const[o,i]=a.useState(""),[l,c]=a.useState(null),d=a.useRef(null),u=a.useRef(null);a.useEffect(()=>{const g=setTimeout(()=>{d.current?.focus()},100);return()=>clearTimeout(g)},[]),a.useEffect(()=>{const g=S=>{u.current&&!u.current.contains(S.target)&&s()},b=setTimeout(()=>{document.addEventListener("pointerdown",g,!0)},150);return()=>{clearTimeout(b),document.removeEventListener("pointerdown",g,!0)}},[s]);const f=a.useCallback(()=>{const g=o.trim(),b=yc(g);if(b){c(b);return}r(g)},[o,r]),h=a.useCallback(g=>{g.key==="Enter"?(g.preventDefault(),f()):g.key==="Escape"&&(g.preventDefault(),s()),g.stopPropagation()},[f,s]),x=a.useCallback(g=>{i(g.target.value),c(null)},[]),C=t==="file"?Zn:Jn;return n.jsxs("div",{ref:u,className:"flex flex-col px-2 py-1",children:[n.jsxs("div",{className:"flex items-center gap-1.5",children:[n.jsx(C,{className:"size-3.5 shrink-0 text-text-muted"}),n.jsx("input",{ref:d,type:"text",value:o,onChange:x,onKeyDown:h,onBlur:()=>requestAnimationFrame(()=>d.current?.focus()),placeholder:t==="file"?"文件名...":"文件夹名...",className:"min-w-0 flex-1 rounded border border-border-emphasis bg-surface px-1.5 py-0.5 text-xs text-text outline-none focus:border-indigo-500","aria-label":t==="file"?"新文件名":"新文件夹名"})]}),l&&n.jsx("span",{className:"mt-0.5 pl-5 text-[10px] text-red-400",children:l})]})},Sc=28,qs=12,Xs=12,wc=500;let Ft=0;const Mc=({selectedFilePath:t,onFileSelect:e,onSendMessage:r})=>{Ft++,Ft%5===0&&console.debug(`[perf] EditorFileTree render #${Ft}`);const{fileTree:s,expandedDirs:o,loading:i,error:l,gitFiles:c,projectPath:d}=w(Ge(v=>({fileTree:v.editorFileTree,expandedDirs:v.editorExpandedDirs,loading:v.editorFileTreeLoading,error:v.editorFileTreeError,gitFiles:v.editorGitFiles,projectPath:v.editorProjectPath}))),u=w(v=>v.expandDirectory),f=w(v=>v.collapseDirectory),h=w(v=>v.createFileInTree),x=w(v=>v.createDirInTree),C=w(v=>v.deleteFileFromTree),g=w(v=>v.moveFileInTree),b=w(v=>v.renameFileInTree),S=w(v=>v.openFile),[y,M]=a.useState(null),[E,L]=a.useState(null),[O,_]=a.useState(null),[j,D]=a.useState(null),[P,k]=a.useState(null),z=a.useRef(null),H=a.useRef(null),[xe,de]=a.useState(!1);a.useEffect(()=>{const v=requestAnimationFrame(()=>{requestAnimationFrame(()=>de(!0))});return()=>cancelAnimationFrame(v)},[]),a.useEffect(()=>()=>{z.current&&clearTimeout(z.current)},[]);const me=Vn(Un(Qn,{activationConstraint:{distance:5}})),T=a.useMemo(()=>{if(!s)return[];const v=performance.now(),N=ri(Zs(s)),A=performance.now()-v;return A>2&&console.debug(`[perf] treeNodes: ${A.toFixed(1)}ms, nodes=${N.length}`),N},[s]),B=a.useMemo(()=>{const v=performance.now(),N=[];Js(T,o,N,0);const A=performance.now()-v;return A>2&&console.debug(`[perf] flatItems: ${A.toFixed(1)}ms, items=${N.length}`),N},[T,o]),K=a.useMemo(()=>{const v=new Map;for(const N of B)v.set(N.node.fullPath,N);return v},[B]),p=a.useMemo(()=>{if(!y)return null;const{parentDir:v}=y,N=B.findIndex(A=>A.node.fullPath===v);return N===-1?{index:0,depth:0}:{index:N+1,depth:B[N].depth+1}},[y,B]),R=yo({count:B.length+(p?1:0),getScrollElement:()=>H.current,estimateSize:()=>Sc,overscan:xe?j?20:10:3});a.useEffect(()=>{if(!t)return;const v=B.findIndex(N=>N.node.fullPath===t);v>=0&&R.scrollToIndex(v,{align:"center"})},[t,B,R]);const F=a.useMemo(()=>{const v=performance.now(),N=new Map;if(!c?.length||!d)return N;for(const W of c){const ke=jo(d,...So(W.path));N.set(ke,W.status)}const A=performance.now()-v;return A>2&&console.debug(`[perf] gitStatusMap: ${A.toFixed(1)}ms, files=${c.length}`),N},[c,d]),U=t,ue=a.useCallback(v=>{v.data&&(v.data.isSensitive||(v.isFile?e(v.data.path):o[v.fullPath]?f(v.fullPath):u(v.fullPath)))},[e,o,u,f]),re=a.useCallback(v=>{v!==d&&!o[v]&&u(v),M({parentDir:v,type:"file"})},[d,o,u]),pe=a.useCallback(v=>{v!==d&&!o[v]&&u(v),M({parentDir:v,type:"directory"})},[d,o,u]),oe=a.useCallback(v=>{_(v)},[]),V=a.useCallback(async()=>{O&&(await C(O),_(null))},[O,C]),ge=a.useCallback(()=>{_(null)},[]),J=a.useCallback(v=>{L(v)},[]),ve=a.useCallback(async v=>{E&&(await b(E,v),L(null))},[E,b]),De=a.useCallback(()=>{L(null)},[]),we=a.useCallback(async v=>{if(y){if(y.type==="file"){const N=await h(y.parentDir,v);N&&S(N)}else await x(y.parentDir,v);M(null)}},[y,h,x,S]),Me=a.useCallback(()=>{M(null)},[]),ae=a.useCallback(()=>{z.current&&(clearTimeout(z.current),z.current=null)},[]),Ce=a.useCallback(v=>{const N=String(v.active.id),A=K.get(N);A&&D(A)},[K]),at=a.useCallback(v=>{const{over:N}=v;if(!N||!j){k(null),ae();return}const A=String(N.id);let W=null;if(A==="root-drop-zone")W=d;else if(A.startsWith("drop:"))W=A.slice(5);else{const ke=K.get(A);if(ke){const ct=ke.node.fullPath;W=ct.substring(0,xt(ct))}}W!==P&&(k(W),ae(),W&&W!==d&&!o[W]&&(z.current=setTimeout(()=>{u(W)},wc)))},[j,P,d,K,o,u,ae]),Ne=a.useCallback(v=>{ae();const N=j?.node.fullPath;if(!N||!P||!v.over){D(null),k(null);return}const A=P;if(N.substring(0,xt(N))===A){D(null),k(null);return}if(Hn(N,A)){D(null),k(null);return}if(j?.node.data?.isSensitive){D(null),k(null);return}g(N,A),D(null),k(null)},[j,P,g,ae]),it=a.useCallback(()=>{ae(),D(null),k(null)},[ae]);return l?n.jsxs("div",{className:"p-3 text-xs text-red-400",children:["文件加载失败:",l]}):i&&!s?n.jsx("div",{className:"p-3 text-xs text-text-muted",children:"正在加载文件..."}):T.length===0?n.jsx("div",{className:"p-3 text-xs text-text-muted",children:"未找到文件"}):n.jsxs(gc,{projectPath:d,onNewFile:re,onNewFolder:pe,onDelete:oe,onRename:J,onSendMessage:r,children:[n.jsxs(qn,{sensors:me,onDragStart:Ce,onDragOver:at,onDragEnd:Ne,onDragCancel:it,autoScroll:{threshold:{x:0,y:.15}},children:[n.jsxs(Qs,{ref:H,projectPath:d,isDropTarget:P===d,children:[n.jsx("div",{style:{height:`${R.getTotalSize()}px`,width:"100%",position:"relative"},children:R.getVirtualItems().map(v=>{const{index:N}=v;if(N===p?.index)return n.jsx("div",{style:{position:"absolute",top:`${v.start}px`,left:0,width:"100%",height:`${v.size}px`,paddingLeft:`${Math.min(p.depth,Xs)*qs}px`},children:n.jsx(jc,{type:y.type,parentDir:y.parentDir,onSubmit:we,onCancel:Me})},"__new-item-input__");const A=p&&N>p.index?N-1:N,W=B[A];return n.jsx("div",{style:{position:"absolute",top:`${v.start}px`,left:0,width:"100%",height:`${v.size}px`},children:n.jsx(Ys,{item:W,activeNodePath:U,gitStatus:F.get(W.node.fullPath),dropTargetPath:P,isDragActive:!!j,onClick:ue,isRenaming:E===W.node.fullPath,onRenameSubmit:ve,onRenameCancel:De})},W.node.fullPath)})}),j&&n.jsx("div",{className:"h-16 w-full shrink-0","aria-label":"拖到此处可移到项目根目录"})]}),n.jsx(Xn,{dropAnimation:null,children:j&&n.jsx(Nc,{item:j})})]}),n.jsx(qe,{open:!!O,onOpenChange:v=>!v&&ge(),children:n.jsxs(Xe,{className:"w-96 max-w-96",children:[n.jsxs(Qe,{children:[n.jsx(Ye,{className:"text-sm",children:"移到废纸篓"}),n.jsxs(ht,{children:["将 “",O?Le(O):"","” 移到废纸篓?"]})]}),n.jsxs(ft,{children:[n.jsx(I,{variant:"ghost",size:"sm",onClick:ge,children:"取消"}),n.jsx(I,{variant:"destructive",size:"sm",onClick:()=>void V(),children:"移到废纸篓"})]})]})})]})},Qs=ce.forwardRef(({projectPath:t,isDropTarget:e,children:r},s)=>{const{setNodeRef:o}=Yn({id:"root-drop-zone",data:{isRoot:!0,path:t}}),i=a.useCallback(l=>{o(l),typeof s=="function"?s(l):s&&(s.current=l)},[s,o]);return n.jsx("div",{ref:i,className:`scrollbar-thin h-full overflow-y-auto transition-colors ${e?"bg-indigo-400/5 ring-1 ring-inset ring-indigo-400/30":""}`,role:"tree",children:r})});Qs.displayName="RootDropZone";const Ys=ce.memo(({item:t,activeNodePath:e,gitStatus:r,dropTargetPath:s,isDragActive:o,onClick:i,isRenaming:l,onRenameSubmit:c,onRenameCancel:d})=>{const{node:u,depth:f,isExpanded:h}=t,x=e===u.fullPath,C=Math.min(f,Xs),g=u.data?.isSensitive,{attributes:b,listeners:S,setNodeRef:y,isDragging:M}=wo({id:u.fullPath,data:{node:u,depth:f},disabled:!!g}),{setNodeRef:E}=Yn({id:"drop:"+u.fullPath,data:{node:u},disabled:u.isFile}),L=a.useCallback(z=>{y(z),u.isFile||E(z)},[y,E,u.isFile]),O=!u.isFile&&s===u.fullPath,_=s!=null&&s!==u.fullPath&&Hn(s,u.fullPath),j={};u.data&&(j["data-editor-path"]=u.data.path,j["data-editor-type"]=u.data.type,u.data.isSensitive&&(j["data-editor-sensitive"]="true"));const D=()=>{o||i(u)},P=z=>{(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),D())};let k;return u.data?.isSensitive?k=n.jsx(Mo,{className:"size-3.5 shrink-0 text-yellow-500"}):u.isFile?k=n.jsx(nt,{fileName:u.name,className:"size-3.5"}):h?k=n.jsx(Bt,{className:"size-3.5 shrink-0 text-text-muted"}):k=n.jsx(No,{className:"size-3.5 shrink-0 text-text-muted"}),n.jsxs("div",{ref:L,...b,...S,role:"treeitem","aria-selected":u.isFile?x:void 0,"aria-expanded":u.isFile?void 0:h,className:`flex h-full cursor-pointer select-none items-center gap-1 truncate px-2 text-xs transition-colors hover:bg-surface-raised ${x?"bg-surface-raised text-text":"text-text-secondary"} ${M?"opacity-30":""} ${O?"rounded bg-indigo-400/10 ring-2 ring-indigo-400/50":""} ${_&&!O?"border-l-2 border-l-indigo-400/40 bg-indigo-400/5":""}`,style:{paddingLeft:`${C*qs+8}px`},onClick:D,onKeyDown:P,tabIndex:0,title:u.data?.path??u.fullPath,...j,children:[!u.isFile&&(h?n.jsx(An,{className:"size-3 shrink-0 text-text-muted"}):n.jsx(Ln,{className:"size-3 shrink-0 text-text-muted"})),k,l?n.jsx(kc,{initialName:u.name,onSubmit:c,onCancel:d}):n.jsx("span",{className:"truncate",children:u.name}),!l&&r&&n.jsx(bc,{status:r})]})});Ys.displayName="DraggableTreeItem";const Nc=({item:t})=>{const{node:e}=t;let r;return e.isFile?r=n.jsx(nt,{fileName:e.name,className:"size-3.5"}):r=n.jsx(Bt,{className:"size-3.5 text-text-muted"}),n.jsxs("div",{className:"flex items-center gap-1.5 rounded border border-border-emphasis bg-surface-overlay px-3 py-1 text-xs text-text shadow-lg",children:[r,n.jsx("span",{className:"truncate",children:e.name})]})},kc=({initialName:t,onSubmit:e,onCancel:r})=>{const[s,o]=a.useState(t),i=a.useRef(!1),l=a.useRef(null);a.useEffect(()=>{const d=setTimeout(()=>{const u=l.current;if(!u)return;u.focus();const f=t.lastIndexOf(".");f>0?u.setSelectionRange(0,f):u.select()},100);return()=>clearTimeout(d)},[t]),a.useEffect(()=>{const d=f=>{l.current&&!l.current.contains(f.target)&&c()},u=setTimeout(()=>{document.addEventListener("pointerdown",d,!0)},150);return()=>{clearTimeout(u),document.removeEventListener("pointerdown",d,!0)}},[]);const c=()=>{if(i.current)return;i.current=!0;const d=l.current?.value.trim()??"";d&&d!==t?e(d):r()};return n.jsx("input",{ref:l,value:s,onChange:d=>o(d.target.value),onKeyDown:d=>{d.key==="Enter"?(d.preventDefault(),c()):d.key==="Escape"&&(d.preventDefault(),r()),d.stopPropagation()},onBlur:()=>requestAnimationFrame(()=>l.current?.focus()),onClick:d=>d.stopPropagation(),className:"min-w-0 flex-1 rounded border border-indigo-400/50 bg-surface px-1 py-0 text-xs text-text outline-none focus:ring-1 focus:ring-indigo-400/50"})};function Zs(t){return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!="object")return[];const r=e;if(typeof r.name!="string"||typeof r.path!="string"||r.type!=="file"&&r.type!=="directory")return[];const s={...r,children:Array.isArray(r.children)?r.children:void 0};return[{name:s.name,fullPath:s.path,isFile:s.type==="file",data:s,children:Zs(s.children)}]}):[]}function Js(t,e,r,s){for(const o of t){const i=!o.isFile&&e[o.fullPath]===!0;r.push({node:o,depth:s,isExpanded:i}),i&&o.children.length>0&&Js(o.children,e,r,s+1)}}const Rn=8,In=68,Tc=32,Ec=({info:t,containerRect:e,onSendMessage:r})=>{if(!t.text.trim())return null;const s=t.screenRect.top-e.top,o=t.screenRect.right-e.left+Rn,i=t.screenRect.top-e.top;if(t.screenRect.bottom-e.top<0||i>e.height)return null;const c=Math.max(0,Math.min(s,e.height-Tc)),d=o+In>e.width?t.screenRect.right-e.left-In-Rn:o;return n.jsx("div",{className:"pointer-events-auto absolute z-20 flex items-center gap-0.5 rounded-md border border-border-emphasis bg-surface-overlay p-0.5 shadow-lg animate-in fade-in-0 zoom-in-95",style:{top:c,left:Math.max(0,d)},children:n.jsx(Rc,{icon:n.jsx(Bn,{className:"size-3.5"}),label:"Write Teammate",onClick:r})})},Rc=({icon:t,label:e,onClick:r})=>n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",tabIndex:-1,"aria-label":e,onClick:r,onMouseDown:s=>s.preventDefault(),className:"size-7 p-1.5 text-text-secondary",children:t})}),n.jsx(Q,{side:"top",sideOffset:6,children:e})]}),Ic=[{title:"文件操作",shortcuts:[{mac:"⌘ P",other:"Ctrl+P",description:"快速打开"},{mac:"⌘ S",other:"Ctrl+S",description:"保存"},{mac:"⌘ ⇧ S",other:"Ctrl+Shift+S",description:"全部保存"},{mac:"⌘ W",other:"Ctrl+W",description:"关闭标签页"}]},{title:"搜索",shortcuts:[{mac:"⌘ F",other:"Ctrl+F",description:"在文件中查找"},{mac:"⌘ ⇧ F",other:"Ctrl+Shift+F",description:"在文件中搜索"},{mac:"⌘ G",other:"Ctrl+G",description:"跳转到行"}]},{title:"导航",shortcuts:[{mac:"⌘ ⇧ ]",other:"Ctrl+Shift+]",description:"下一个标签页"},{mac:"⌘ ⇧ [",other:"Ctrl+Shift+[",description:"上一个标签页"},{mac:"⌃ Tab",other:"Ctrl+Tab",description:"循环切换标签页"},{mac:"⌘ B",other:"Ctrl+B",description:"切换侧边栏"}]},{title:"编辑",shortcuts:[{mac:"⌘ Z",other:"Ctrl+Z",description:"撤销"},{mac:"⌘ ⇧ Z",other:"Ctrl+Y",description:"重做"},{mac:"⌘ D",other:"Ctrl+D",description:"选择下一个匹配项"},{mac:"⌘ /",other:"Ctrl+/",description:"切换注释"}]},{title:"Markdown",shortcuts:[{mac:"⌘ ⇧ M",other:"Ctrl+Shift+M",description:"拆分预览"},{mac:"⌘ ⇧ V",other:"Ctrl+Shift+V",description:"完整预览"}]},{title:"通用",shortcuts:[{mac:"Esc",other:"Esc",description:"关闭编辑器"}]}],Dc=({onClose:t})=>{const e=a.useMemo(()=>Ic.map(r=>({...r,shortcuts:r.shortcuts.map(s=>({keys:cs?s.mac:s.other,description:s.description}))})),[]);return n.jsx(qe,{open:!0,onOpenChange:r=>!r&&t(),children:n.jsxs(Xe,{className:"w-[480px] max-w-[480px]",children:[n.jsx(Qe,{children:n.jsx(Ye,{className:"text-sm",children:"快捷键"})}),n.jsx("div",{className:"grid grid-cols-2 gap-x-6 gap-y-4",children:e.map(r=>n.jsxs("div",{children:[n.jsx("h3",{className:"mb-1.5 text-xs font-medium text-text-secondary",children:r.title}),n.jsx("div",{className:"space-y-1",children:r.shortcuts.map(s=>n.jsxs("div",{className:"flex items-center justify-between text-xs",children:[n.jsx("span",{className:"text-text-muted",children:s.description}),n.jsx("kbd",{className:"rounded border border-border bg-surface-raised px-1.5 py-0.5 font-mono text-[10px] text-text-secondary",children:s.keys})]},s.keys))})]},r.title))})]})})},Pc=ce.memo(function({line:e,col:r,language:s}){const{gitBranch:o,isGitRepo:i,watcherEnabled:l}=w(Ge(d=>({gitBranch:d.editorGitBranch,isGitRepo:d.editorIsGitRepo,watcherEnabled:d.editorWatcherEnabled}))),c=w(d=>d.toggleWatcher);return n.jsxs("div",{className:"flex h-6 shrink-0 items-center justify-between border-t border-border bg-surface-sidebar px-3 text-[11px] text-text-muted",children:[n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsxs("span",{children:["Ln ",e,", Col ",r]}),i&&o&&n.jsxs("span",{className:"flex items-center gap-1",children:[n.jsx(ko,{className:"size-3"}),o]})]}),n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx("button",{type:"button",onClick:()=>void c(!l),className:`rounded px-1.5 py-0.5 text-[10px] font-medium transition-colors ${l?"bg-green-500/15 text-green-400 hover:bg-green-500/20":"text-text-muted hover:bg-surface-raised hover:text-text-secondary"}`,"aria-label":l?"Disable file watcher":"Enable file watcher","aria-pressed":l,children:l?"watching":"watch"})}),n.jsx(Q,{side:"top",children:l?"Disable external change watcher":"Watch for external changes"})]}),n.jsx("span",{children:s}),n.jsx("span",{children:"UTF-8"}),n.jsx("span",{children:"Spaces: 2"})]})]})}),_c=({children:t,tabId:e,tabIndex:r,totalTabs:s,onClose:o,onCloseOthers:i,onCloseToLeft:l,onCloseToRight:c,onCloseAll:d})=>{const u=r>0,f=r<s-1,h=s>1;return n.jsxs(Bs,{children:[n.jsx(Vs,{asChild:!0,children:n.jsx("div",{className:"flex h-full",children:t})}),n.jsx(Us,{children:n.jsxs(Hs,{className:"z-50 min-w-[180px] rounded-md border border-border-emphasis bg-surface-overlay p-1 shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",children:[n.jsx(ne,{className:"flex cursor-pointer items-center rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:()=>o(e),children:"Close"}),n.jsx(ne,{className:"flex cursor-pointer items-center rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised disabled:cursor-not-allowed disabled:opacity-40",disabled:!h,onSelect:()=>i(e),children:"Close Others"}),n.jsx(Ae,{className:"my-1 h-px bg-border"}),n.jsx(ne,{className:"flex cursor-pointer items-center rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised disabled:cursor-not-allowed disabled:opacity-40",disabled:!u,onSelect:()=>l(e),children:"Close Tabs to the Left"}),n.jsx(ne,{className:"flex cursor-pointer items-center rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised disabled:cursor-not-allowed disabled:opacity-40",disabled:!f,onSelect:()=>c(e),children:"Close Tabs to the Right"}),n.jsx(Ae,{className:"my-1 h-px bg-border"}),n.jsx(ne,{className:"flex cursor-pointer items-center rounded px-2 py-1.5 text-xs text-text outline-none hover:bg-surface-raised focus:bg-surface-raised",onSelect:d,children:"Close All"})]})})]})},Fc=({onRequestCloseTab:t})=>{const{tabs:e,activeTabId:r,modifiedFiles:s}=w(Ge(y=>({tabs:y.editorOpenTabs,activeTabId:y.editorActiveTabId,modifiedFiles:y.editorModifiedFiles}))),o=w(y=>y.setActiveEditorTab),i=w(y=>y.reorderEditorTabs),l=w(y=>y.closeOtherEditorTabs),c=w(y=>y.closeEditorTabsToLeft),d=w(y=>y.closeEditorTabsToRight),u=w(y=>y.closeAllEditorTabs),[f,h]=a.useState(null),x=a.useMemo(()=>e.map(y=>y.id),[e]),C=Vn(Un(Qn,{activationConstraint:{distance:5}})),g=a.useCallback(y=>{const M=e.find(E=>E.id===y.active.id);h(M??null)},[e]),b=a.useCallback(y=>{h(null);const{active:M,over:E}=y;E&&M.id!==E.id&&i(String(M.id),String(E.id))},[i]),S=a.useCallback(()=>{h(null)},[]);return e.length===0?null:n.jsxs(qn,{sensors:C,collisionDetection:To,onDragStart:g,onDragEnd:b,onDragCancel:S,children:[n.jsx("div",{className:"flex h-8 shrink-0 items-center overflow-x-auto border-b border-border bg-surface-sidebar",role:"tablist",children:n.jsx(Eo,{items:x,strategy:Ro,children:e.map((y,M)=>n.jsx(Ac,{tab:y,tabIndex:M,totalTabs:e.length,isActive:y.id===r,isModified:!!s[y.filePath],onActivate:()=>o(y.id),onRequestClose:t,onCloseOthers:l,onCloseToLeft:c,onCloseToRight:d,onCloseAll:u},y.id))})}),n.jsx(Xn,{dropAnimation:null,children:f&&n.jsx(Lc,{tab:f})})]})},Ac=({tab:t,tabIndex:e,totalTabs:r,isActive:s,isModified:o,onActivate:i,onRequestClose:l,onCloseOthers:c,onCloseToLeft:d,onCloseToRight:u,onCloseAll:f})=>{const{attributes:h,listeners:x,setNodeRef:C,transform:g,transition:b,isDragging:S}=Io({id:t.id}),y={transform:Do.Transform.toString(g),transition:S?"none":b,opacity:S?.3:1},M=L=>{L.stopPropagation(),l(t.id)},E=L=>{L.button===1&&(L.preventDefault(),l(t.id))};return n.jsx("div",{ref:C,style:y,className:"flex h-full shrink-0",...h,...x,children:n.jsx(_c,{tabId:t.id,tabIndex:e,totalTabs:r,onClose:l,onCloseOthers:c,onCloseToLeft:d,onCloseToRight:u,onCloseAll:f,children:n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsxs("button",{onClick:i,onAuxClick:E,role:"tab","aria-selected":s,className:`group flex h-full shrink-0 cursor-grab items-center gap-1.5 border-r border-border px-3 text-xs transition-colors ${s?"bg-surface text-text":"bg-surface-sidebar text-text-muted hover:bg-surface-raised hover:text-text-secondary"}`,children:[o&&n.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-amber-400","aria-label":"Unsaved changes"}),n.jsx(nt,{fileName:t.fileName,className:"size-3.5"}),n.jsxs("span",{className:"max-w-40 truncate",children:[t.fileName,t.disambiguatedLabel&&n.jsx("span",{className:"ml-1 text-text-muted",children:t.disambiguatedLabel})]}),n.jsx("span",{onClick:M,onPointerDown:L=>L.stopPropagation(),className:"ml-1 rounded p-0.5 opacity-0 transition-opacity hover:bg-surface-raised group-hover:opacity-100",role:"button","aria-label":`Close ${t.fileName}`,tabIndex:-1,children:n.jsx(yt,{className:"size-3"})})]})}),n.jsx(Q,{side:"bottom",children:t.filePath})]})})})},Lc=({tab:t})=>n.jsxs("div",{className:"flex items-center gap-1.5 rounded border border-border-emphasis bg-surface-raised px-3 py-1 text-xs text-text shadow-lg",children:[n.jsx(nt,{fileName:t.fileName,className:"size-3.5"}),n.jsx("span",{className:"max-w-40 truncate",children:t.fileName})]}),Oc=({isMarkdown:t=!1,mdPreviewMode:e="off",onToggleSplit:r,onToggleFullPreview:s})=>{const{activeTabId:o,modifiedFiles:i,saving:l,lineWrap:c}=w(Ge(b=>({activeTabId:b.editorActiveTabId,modifiedFiles:b.editorModifiedFiles,saving:b.editorSaving,lineWrap:b.editorLineWrap}))),d=w(b=>b.saveFile),u=w(b=>b.toggleLineWrap);if(!o)return null;const f=!!i[o],h=!!l[o],x=()=>{d(o)},C=()=>{const b=Se.getView();b&&zn(b)},g=()=>{const b=Se.getView();b&&$n(b)};return n.jsxs("div",{className:"flex h-8 shrink-0 items-center gap-1 border-b border-border bg-surface px-2",children:[n.jsx(Pe,{icon:n.jsx(aa,{className:"size-3.5"}),label:"Save",shortcut:se("⌘ S","Ctrl+S"),onClick:x,disabled:!f||h}),n.jsx(Pe,{icon:n.jsx(Po,{className:"size-3.5"}),label:"Undo",shortcut:se("⌘ Z","Ctrl+Z"),onClick:C}),n.jsx(Pe,{icon:n.jsx(_o,{className:"size-3.5"}),label:"Redo",shortcut:se("⌘ ⇧ Z","Ctrl+Y"),onClick:g}),n.jsx("div",{className:"mx-1 h-4 w-px bg-border"}),n.jsx(Pe,{icon:n.jsx(ca,{className:"size-3.5"}),label:c?"Disable word wrap":"Enable word wrap",shortcut:se("⌘ ⇧ W","Ctrl+Shift+W"),onClick:u,active:c}),t&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"mx-1 h-4 w-px bg-border"}),n.jsx(Pe,{icon:n.jsx(Zo,{className:"size-3.5"}),label:e==="split"?"Close split preview":"Split preview",shortcut:se("⌘ ⇧ M","Ctrl+Shift+M"),onClick:r??(()=>{}),active:e==="split"}),n.jsx(Pe,{icon:n.jsx(Fo,{className:"size-3.5"}),label:e==="preview"?"Close preview":"Full preview",shortcut:se("⌘ ⇧ V","Ctrl+Shift+V"),onClick:s??(()=>{}),active:e==="preview"})]})]})},Pe=ce.memo(function({icon:e,label:r,shortcut:s,onClick:o,disabled:i=!1,active:l=!1}){return n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",onClick:o,disabled:i,className:`h-auto gap-1 px-1.5 py-0.5 text-xs ${l?"bg-surface-raised text-text":"text-text-muted"}`,"aria-label":`${r} (${s})`,"aria-pressed":l,children:e})}),n.jsxs(Q,{side:"bottom",children:[r," (",s,")"]})]})});function zc(t,e){const r=t.trim();if(!r)return null;const[s,o]=r.split(":"),i=o?parseInt(o,10):void 0;if(i!==void 0&&(isNaN(i)||i<1))return null;const l=s.trim();if(!l)return null;const c=e.state.doc.lines;if(l.endsWith("%")){const f=parseFloat(l.slice(0,-1));return isNaN(f)?null:{line:Math.max(1,Math.min(c,Math.round(f/100*c))),col:i}}if(l.startsWith("+")||l.startsWith("-")){const f=parseInt(l,10);if(isNaN(f))return null;const h=e.state.selection.main.head,x=e.state.doc.lineAt(h).number;return{line:Math.max(1,Math.min(c,x+f)),col:i}}const d=parseInt(l,10);return isNaN(d)?null:{line:Math.max(1,Math.min(c,d)),col:i}}const $c=({onClose:t})=>{const[e,r]=a.useState(""),s=a.useRef(null);a.useEffect(()=>{s.current?.focus()},[]),a.useEffect(()=>{const u=f=>{f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),t())};return window.addEventListener("keydown",u,!0),()=>window.removeEventListener("keydown",u,!0)},[t]);const o=a.useCallback(()=>{const u=Se.getView();if(!u)return;const f=zc(e,u);if(!f)return;const h=u.state.doc.line(f.line),x=f.col?Math.min(f.col-1,h.length):0,C=h.from+x;u.dispatch({selection:{anchor:C},effects:Y.scrollIntoView(C,{y:"center"})}),u.focus(),t()},[e,t]),i=a.useCallback(u=>{u.key==="Enter"&&(u.preventDefault(),o())},[o]),l=Se.getView(),c=l?.state.doc.lines??0,d=l?l.state.doc.lineAt(l.state.selection.main.head).number:0;return n.jsxs("div",{className:"fixed inset-0 z-[60] flex items-start justify-center pt-[15vh]",children:[n.jsx("div",{className:"fixed inset-0 bg-black/40",onClick:t,onKeyDown:u=>{u.key==="Escape"&&t()},role:"presentation"}),n.jsx("div",{role:"dialog","aria-modal":"true","aria-label":"跳转到行",className:"relative z-10 w-[360px] overflow-hidden rounded-lg border border-border-emphasis bg-surface shadow-2xl",children:n.jsxs("div",{className:"flex flex-col gap-2 p-3",children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs("span",{className:"text-xs text-text-secondary",children:["跳转到行"," ",n.jsxs("span",{className:"text-text-muted",children:["(当前:",d,",总行数:",c,")"]})]})}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(At,{ref:s,className:"h-8 flex-1 bg-transparent text-sm",placeholder:"行号、+偏移、-偏移或百分比",value:e,onChange:u=>r(u.target.value),onKeyDown:i,spellCheck:!1,autoComplete:"off"}),n.jsx(I,{variant:"secondary",size:"sm",className:"h-8 px-4",onClick:o,disabled:!e.trim(),children:"跳转"})]})]})})]})},Kc=10,Gc=50;function Wc(t,e,r){const s=a.useRef(null),o=a.useRef(!1),i=a.useRef(!1),l=a.useRef(0),c=a.useRef(0),d=a.useCallback(()=>Se.getView()?.scrollDOM??null,[r?.editorScrollRef]),u=a.useCallback(()=>{if(!t)return;if(o.current){o.current=!1;return}const h=d(),x=s.current;if(!h||!x)return;const C=h.scrollHeight-h.clientHeight;if(C<=0)return;const g=h.scrollTop/C,b=x.scrollHeight-x.clientHeight;b<=0||(cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{i.current=!0,x.scrollTop=g*b}))},[t,d]),f=a.useCallback(()=>{if(!t)return;if(i.current){i.current=!1;return}const h=d(),x=s.current;if(!h||!x)return;const C=x.scrollHeight-x.clientHeight;if(C<=0)return;const g=x.scrollTop/C,b=h.scrollHeight-h.clientHeight;b<=0||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{o.current=!0,h.scrollTop=g*b}))},[t,d]);return a.useEffect(()=>{if(!t)return;let h,x,C=0;const g=()=>{const b=d();if(!b){C<Kc&&(C++,x=setTimeout(g,Gc));return}b.addEventListener("scroll",u,{passive:!0}),h=()=>{b.removeEventListener("scroll",u)}};return g(),()=>{clearTimeout(x),h?.(),cancelAnimationFrame(l.current),cancelAnimationFrame(c.current)}},[t,e,u,d]),{previewScrollRef:s,handleCodeScroll:u,handlePreviewScroll:f}}const Bc=ce.memo(function({content:e,className:r="",scrollRef:s,onScroll:o,baseDir:i}){const l=ce.useRef(null),c=ce.useCallback(d=>{if(l.current=d,s&&"current"in s){const u=s;u.current=d}},[s]);return n.jsx("div",{ref:c,className:`h-full overflow-y-auto ${r}`,onScroll:o,children:n.jsx("div",{className:"p-4",children:n.jsx(Ao,{content:e,bare:!0,maxHeight:"",baseDir:i})})})}),Vc=.2,Uc=.8,Dn=4,Hc=ce.memo(function({content:e,mode:r,splitRatio:s,onSplitRatioChange:o,viewKey:i,baseDir:l}){const[c,d]=a.useState(!1),u=a.useRef(null),f=Wc(r==="split",i),h=a.useCallback(b=>{const S=u.current?.parentElement;if(!S)return;const y=S.getBoundingClientRect(),M=b.clientX-y.left,E=Math.min(Uc,Math.max(Vc,M/y.width));o(E)},[o]),x=a.useCallback(()=>{d(!1)},[]);a.useEffect(()=>{if(c)return document.addEventListener("mousemove",h),document.addEventListener("mouseup",x),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",x),document.body.style.cursor="",document.body.style.userSelect=""}},[c,h,x]);const C=b=>{b.preventDefault(),d(!0)},g=r==="preview"?"100%":`calc(${(1-s)*100}% - ${Dn}px)`;return n.jsxs("div",{ref:u,className:"flex h-full",style:{width:g},children:[r==="split"&&n.jsx("div",{className:`shrink-0 cursor-col-resize border-x border-border transition-colors ${c?"bg-indigo-500/50":"hover:bg-indigo-500/30"}`,style:{width:Dn},onMouseDown:C}),n.jsx("div",{className:"flex-1 overflow-hidden bg-surface",children:n.jsx(Bc,{content:e,scrollRef:f.previewScrollRef,onScroll:f.handlePreviewScroll,baseDir:l})})]})}),qc=({onClose:t,onSelectFile:e})=>{const r=w(h=>h.editorProjectPath),s=a.useRef(null),[o,i]=a.useState([]),[l,c]=a.useState(!0);a.useEffect(()=>{let h=!1;return c(!0),Te.editor.listFiles().then(x=>{h||(i(x),c(!1))}).catch(()=>{h||c(!1)}),()=>{h=!0}},[r]);const d=a.useCallback(h=>{h.key==="Escape"&&(h.preventDefault(),h.stopPropagation(),t())},[t]);a.useEffect(()=>(window.addEventListener("keydown",d,!0),()=>window.removeEventListener("keydown",d,!0)),[d]);const u=a.useCallback(h=>{const x=o.find(C=>C.relativePath===h);x&&(e(x.path),t())},[o,e,t]),f=a.useMemo(()=>o.map(h=>({...h,iconInfo:Lo(h.name)})),[o]);return n.jsxs("div",{className:"fixed inset-0 z-[60] flex items-start justify-center pt-[15vh]",children:[n.jsx("div",{className:"fixed inset-0 bg-black/40",onClick:t,onKeyDown:h=>{h.key==="Escape"&&t()},role:"presentation"}),n.jsx("div",{ref:s,role:"dialog","aria-modal":"true","aria-label":"快速打开",className:"relative z-10 w-[520px] overflow-hidden rounded-lg border border-border-emphasis bg-surface shadow-2xl",children:n.jsxs(Ue,{label:"快速打开",shouldFilter:!0,children:[n.jsx(Ue.Input,{placeholder:"按文件名搜索...",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm text-text outline-none placeholder:text-text-muted",autoFocus:!0}),n.jsxs(Ue.List,{className:"max-h-80 overflow-y-auto p-1",children:[l&&n.jsxs("div",{className:"flex items-center justify-center gap-2 p-6 text-sm text-text-muted",children:[n.jsx(jt,{className:"size-4 animate-spin"}),n.jsx("span",{children:"正在加载文件..."})]}),!l&&n.jsx(Ue.Empty,{className:"p-6 text-center text-sm text-text-muted",children:"未找到文件"}),f.map(h=>{const x=h.iconInfo.icon;return n.jsxs(Ue.Item,{value:h.relativePath,onSelect:()=>u(h.relativePath),className:"flex cursor-pointer items-center gap-2 rounded px-3 py-1.5 text-sm text-text-secondary aria-selected:bg-surface-raised aria-selected:text-text",children:[n.jsx(x,{className:"size-4 shrink-0",style:{color:h.iconInfo.color}}),n.jsx("span",{className:"truncate font-medium",children:h.name}),n.jsx("span",{className:"ml-auto truncate text-xs text-text-muted",children:h.relativePath})]},h.path)})]})]})})]})},Xc=300,Qc=({projectPath:t,onClose:e,onSelectMatch:r})=>{const[s,o]=a.useState(""),[i,l]=a.useState(!1),[c,d]=a.useState(null),[u,f]=a.useState(!1),[h,x]=a.useState(null),[C,g]=a.useState(new Set),b=a.useRef(null),S=a.useRef(void 0),y=a.useRef(0);a.useEffect(()=>{b.current?.focus()},[]),a.useEffect(()=>{const j=D=>{D.key==="Escape"&&(D.preventDefault(),D.stopPropagation(),e())};return window.addEventListener("keydown",j,!0),()=>window.removeEventListener("keydown",j,!0)},[e]);const M=a.useCallback(async(j,D)=>{if(!j.trim()){d(null),f(!1),x(null);return}const P=++y.current;f(!0),x(null);try{const k=await Te.editor.searchInFiles({query:j,caseSensitive:D});if(y.current!==P)return;d(k);const z=new Set(k.results.slice(0,5).map(H=>H.filePath));g(z)}catch(k){if(y.current!==P)return;const z=k instanceof Error?k.message:String(k);x(z)}finally{y.current===P&&f(!1)}},[]),E=a.useCallback(j=>{o(j),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{M(j,i)},Xc)},[i,M]),L=a.useCallback(()=>{const j=!i;l(j),s.trim()&&(S.current&&clearTimeout(S.current),M(s,j))},[i,s,M]),O=a.useCallback(j=>{g(D=>{const P=new Set(D);return P.has(j)?P.delete(j):P.add(j),P})},[]),_=a.useCallback(j=>j.startsWith(t)?j.slice(t.length+1):j,[t]);return n.jsxs("div",{className:"flex h-full flex-col border-r border-border bg-surface-sidebar",children:[n.jsxs("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[n.jsx("span",{className:"text-xs font-medium text-text-secondary",children:"在文件中搜索"}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-6 text-text-muted",onClick:e,"aria-label":"关闭搜索",children:n.jsx(yt,{className:"size-3.5"})})}),n.jsx(Q,{side:"bottom",children:"关闭搜索(Esc)"})]})]}),n.jsxs("div",{className:"border-b border-border p-2",children:[n.jsxs("div",{className:"flex items-center gap-1 rounded border border-border bg-surface px-2 py-1",children:[n.jsx(Oo,{className:"size-3.5 shrink-0 text-text-muted"}),n.jsx("input",{ref:b,type:"text",value:s,onChange:j=>E(j.target.value),placeholder:"搜索...",className:"flex-1 bg-transparent text-xs text-text outline-none placeholder:text-text-muted"}),u&&n.jsx(jt,{className:"size-3 shrink-0 animate-spin text-text-muted"})]}),n.jsx("div",{className:"mt-1.5 flex items-center gap-2",children:n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx("button",{onClick:L,className:`rounded px-1.5 py-0.5 text-[10px] font-medium transition-colors ${i?"bg-indigo-500/20 text-indigo-400":"text-text-muted hover:bg-surface-raised"}`,"aria-label":"区分大小写","aria-pressed":i,children:"Aa"})}),n.jsx(Q,{side:"bottom",children:"区分大小写"})]})})]}),n.jsxs("div",{className:"flex-1 overflow-y-auto",children:[h&&n.jsx("div",{className:"p-3 text-xs text-red-400",children:h}),c?.totalMatches===0&&s.trim()&&n.jsx("div",{className:"p-4 text-center text-xs text-text-muted",children:"未找到结果"}),c&&c.totalMatches>0&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"border-b border-border px-3 py-1.5 text-[10px] text-text-muted",children:[c.results.length," 个文件中有 ",c.totalMatches," 个匹配",c.truncated&&"(已截断)"]}),c.results.map(j=>n.jsx(Yc,{fileResult:j,relativePath:_(j.filePath),expanded:C.has(j.filePath),onToggle:()=>O(j.filePath),onSelectMatch:D=>r(j.filePath,D),query:s,caseSensitive:i},j.filePath))]})]})]})},Yc=({fileResult:t,relativePath:e,expanded:r,onToggle:s,onSelectMatch:o,query:i,caseSensitive:l})=>{const c=Le(e)||e,d=xt(e),u=d>=0?e.slice(0,d):"";return n.jsxs("div",{className:"border-border/50 border-b",children:[n.jsxs("button",{onClick:s,className:"flex w-full items-center gap-1.5 px-3 py-1 text-left transition-colors hover:bg-surface-raised",children:[n.jsx("span",{className:"text-[10px] text-text-muted",children:r?"▼":"▶"}),n.jsx(nt,{fileName:c,className:"size-3.5"}),n.jsx("span",{className:"truncate text-xs font-medium text-text",children:c}),u&&n.jsx("span",{className:"ml-1 truncate text-[10px] text-text-muted",children:u}),n.jsx("span",{className:"ml-auto shrink-0 text-[10px] text-text-muted",children:t.matches.length})]}),r&&n.jsx("div",{className:"pb-1",children:t.matches.map((f,h)=>n.jsxs("button",{onClick:()=>o(f.line),className:"flex w-full items-center gap-2 px-6 py-0.5 text-left transition-colors hover:bg-surface-raised",children:[n.jsx("span",{className:"w-8 shrink-0 text-right text-[10px] text-text-muted",children:f.line}),n.jsx(Zc,{text:f.lineContent,query:i,caseSensitive:l})]},`${f.line}-${h}`))})]})},Zc=ce.memo(function({text:e,query:r,caseSensitive:s}){if(!r)return n.jsx("span",{className:"truncate text-[11px] text-text-secondary",children:e});const o=s?e:e.toLowerCase(),i=s?r:r.toLowerCase(),l=[];let c=0,d=o.indexOf(i);for(;d!==-1;)d>c&&l.push(n.jsx("span",{className:"text-text-secondary",children:e.slice(c,d)},`t-${c}`)),l.push(n.jsx("span",{className:"rounded bg-yellow-500/30 text-yellow-200",children:e.slice(d,d+r.length)},`h-${d}`)),c=d+r.length,d=o.indexOf(i,c);return c<e.length&&l.push(n.jsx("span",{className:"text-text-secondary",children:e.slice(c)},`t-${c}`)),n.jsx("span",{className:"truncate text-[11px]",children:l})}),nl=({projectPath:t,onClose:e,onEditorAction:r})=>{const{activeTabId:s,openTabs:o,modifiedFiles:i,saveErrors:l,externalChanges:c,conflictFile:d}=w(Ge(m=>({activeTabId:m.editorActiveTabId,openTabs:m.editorOpenTabs,modifiedFiles:m.editorModifiedFiles,saveErrors:m.editorSaveError,externalChanges:m.editorExternalChanges,conflictFile:m.editorConflictFile}))),u=w(m=>m.openEditor),f=w(m=>m.closeEditor),h=w(m=>m.openFile),x=w(m=>m.closeEditorTab),C=w(m=>m.saveFile),g=w(m=>m.hasUnsavedChanges),b=w(m=>m.saveAllFiles),S=w(m=>m.discardChanges),y=w(m=>m.clearExternalChange),M=w(m=>m.forceOverwrite),E=w(m=>m.resolveConflict),L=w(m=>m.setFileMtime),O=w(m=>m.fetchGitStatus),[_,j]=a.useState(null),[D,P]=a.useState(!1),[k,z]=a.useState(null),[H,xe]=a.useState(1),[de,me]=a.useState(1),[T,B]=a.useState(!1),[K,p]=a.useState(null),[R,F]=a.useState(null),[U,ue]=a.useState(0),[re,pe]=a.useState(null),oe=a.useRef(null),[V,ge]=a.useState(()=>new DOMRect),[J,ve]=a.useState("off"),[De,we]=a.useState(""),[Me,ae]=a.useState(()=>{try{const m=localStorage.getItem("editor:mdSplitRatio");return m?Math.max(.2,Math.min(.8,Number(m))):.5}catch{return .5}}),[Ce,at]=a.useState(!1),[Ne,it]=a.useState(!1),[v,N]=a.useState(!1),[A,W]=a.useState(!1),[ke,ct]=a.useState(()=>{try{return localStorage.getItem("editor-sidebar-visible")!=="false"}catch{return!0}}),an=a.useRef(null),Nt=a.useRef(new Map),kt=o.find(m=>m.id===s)??null,Be=kt?.language==="Markdown";a.useEffect(()=>{ve(Be?m=>m==="off"?"split":m:"off")},[Be,s]);const er=a.useCallback(m=>{ae(m);try{localStorage.setItem("editor:mdSplitRatio",String(m))}catch{}},[]),tr=a.useCallback(m=>{we(m)},[]),cn=a.useCallback(()=>{ve(m=>m==="split"?"off":"split")},[]),ln=a.useCallback(()=>{ve(m=>m==="preview"?"off":"preview")},[]);a.useEffect(()=>{J!=="off"&&_?.content&&we(_.content)},[J,_?.content]);const nr=De||_?.content||"",ye=a.useCallback(async m=>{P(!0),z(null),j(null);try{const G=performance.now();let ee=Nt.current.get(m);const br=!!ee;ee||(ee=Te.editor.readFile(m),Nt.current.set(m,ee),ee.finally(()=>Nt.current.delete(m)));const Ve=await ee,Cr=performance.now()-G;console.debug(`[perf] loadFileContent: IPC=${Cr.toFixed(1)}ms, size=${Ve.size}, truncated=${Ve.truncated}, cached=${br}, file=${Le(m)}`),j(Ve),Ve.mtimeMs&&L(m,Ve.mtimeMs)}catch(G){const ee=G instanceof Error?G.message:String(G);z(ee)}finally{P(!1)}},[L]),dn=s?l[s]??null:null,Tt=w(m=>m.editorPendingRevealFile),un=w(m=>m.revealAndOpenFile);a.useEffect(()=>(u(t),()=>{f()}),[t,u,f]);const hn=w(m=>m.editorFileTreeLoading),fn=w(m=>m.editorFileTree!==null);a.useEffect(()=>{Tt&&!hn&&fn&&un(Tt)},[Tt,hn,fn,un]),a.useEffect(()=>{const m=oe.current;if(!m)return;const G=()=>ge(m.getBoundingClientRect());G();const ee=new ResizeObserver(G);return ee.observe(m),()=>ee.disconnect()},[]),a.useEffect(()=>{const m=G=>{if(G.key==="Escape"){if(G.defaultPrevented||Ce||Ne||A||T||K||d)return;G.preventDefault(),Et()}G.key==="F5"&&(G.preventDefault(),bn())};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[Ce,Ne,A,T,K,d]),a.useEffect(()=>{an.current?.focus()},[]),a.useEffect(()=>{if(pe(null),!s){j(null),P(!1),z(null);return}ye(s)},[s,ye]),a.useEffect(()=>{s!==R&&F(null)},[s,R]);const xn=a.useCallback(m=>{h(m)},[h]),mn=a.useCallback(()=>{s&&ye(s)},[s,ye]),sr=a.useCallback((m,G)=>{xe(m),me(G)},[]),Et=a.useCallback(()=>{g()?B(!0):e()},[e,g]),rr=a.useCallback(async()=>{await b(),B(!1),e()},[b,e]),or=a.useCallback(()=>{B(!1),e()},[e]),pn=a.useCallback(()=>{B(!1)},[]),Rt=a.useCallback(m=>{i[m]?p(m):x(m)},[i,x]);a.useEffect(()=>{const m=G=>{const ee=G.detail;Rt(ee)};return window.addEventListener("editor-close-tab",m),()=>window.removeEventListener("editor-close-tab",m)},[Rt]);const ar=a.useCallback(async()=>{K&&(await C(K),x(K),p(null))},[K,C,x]),ir=a.useCallback(()=>{K&&(x(K),p(null))},[K,x]),gn=a.useCallback(()=>{p(null)},[]),cr=a.useCallback(m=>{F(m)},[]),lr=a.useCallback(()=>{!R||!s||(S(R),F(null),j(null),ue(m=>m+1),ye(s))},[R,s,S,ye]),dr=a.useCallback(()=>{F(null)},[]),ur=a.useCallback(()=>{d&&M(d)},[d,M]),vn=a.useCallback(()=>{E()},[E]),hr=a.useCallback(()=>{s&&(y(s),S(s),j(null),ue(m=>m+1),ye(s))},[s,y,S,ye]),fr=a.useCallback(()=>{s&&y(s)},[s,y]),bn=a.useCallback(()=>{O()},[O]),xr=a.useCallback(()=>{at(m=>!m)},[]),mr=a.useCallback(()=>{it(m=>!m)},[]),pr=a.useCallback(()=>{N(m=>!m)},[]),It=a.useCallback(()=>{ct(m=>{const G=!m;try{localStorage.setItem("editor-sidebar-visible",String(G))}catch{}return G})},[]),Cn=w(m=>m.setPendingGoToLine),gr=a.useCallback((m,G)=>{Cn(G),h(m)},[h,Cn]);Da({onToggleQuickOpen:xr,onToggleSearchPanel:mr,onToggleGoToLine:pr,onToggleSidebar:It,onClose:Et,onToggleMdSplit:Be?cn:void 0,onToggleMdPreview:Be?ln:void 0});const vr=Le(t)||t;return n.jsxs("div",{ref:an,className:"fixed inset-0 z-50 m-0 flex h-screen w-screen flex-col overflow-hidden border-0 bg-surface",tabIndex:-1,role:"dialog","aria-modal":"true","aria-label":"项目编辑器",children:[n.jsxs("div",{className:"flex h-10 shrink-0 items-center justify-between border-b border-border px-3",style:{paddingLeft:"var(--macos-traffic-light-padding-left, 72px)"},children:[n.jsxs("div",{className:"flex items-center gap-2 text-sm text-text-secondary",children:[n.jsx("span",{className:"font-medium text-text",children:vr}),n.jsx("span",{className:"text-text-muted",children:t})]}),n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-7 text-text-muted",onClick:bn,"aria-label":"刷新(F5)",children:n.jsx(jn,{className:"size-4"})})}),n.jsx(Q,{side:"bottom",children:"刷新 Git 状态(F5)"})]}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-7 text-text-muted",onClick:()=>W(!0),"aria-label":"快捷键",children:n.jsx(zo,{className:"size-4"})})}),n.jsx(Q,{side:"bottom",children:"快捷键"})]}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-7 text-text-muted",onClick:Et,"aria-label":"关闭编辑器",children:n.jsx(yt,{className:"size-4"})})}),n.jsx(Q,{side:"bottom",children:"关闭编辑器(Esc)"})]})]})]}),n.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[Ne&&n.jsx("div",{className:"w-72 shrink-0",children:n.jsx(Qc,{projectPath:t,onClose:()=>it(!1),onSelectMatch:gr})}),ke&&!Ne&&n.jsxs("div",{className:"flex w-60 shrink-0 flex-col border-r border-border bg-surface-sidebar",children:[n.jsxs("div",{className:"flex items-center justify-between border-b border-border px-2 py-1",children:[n.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-text-muted",children:"资源管理器"}),n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",size:"icon",className:"size-6 text-text-muted",onClick:It,"aria-label":"隐藏侧边栏",children:n.jsx($o,{className:"size-3.5"})})}),n.jsxs(Q,{side:"bottom",children:["隐藏侧边栏(",se("⌘ B","Ctrl+B"),")"]})]})]}),n.jsx("div",{className:"flex-1 overflow-hidden",children:n.jsx(Mc,{selectedFilePath:s,onFileSelect:xn,onSendMessage:r?m=>r(Ko("sendMessage",m,t)):void 0})})]}),!ke&&!Ne&&n.jsxs(q,{children:[n.jsx(X,{asChild:!0,children:n.jsx(I,{variant:"ghost",className:"flex h-full w-6 shrink-0 items-start justify-center rounded-none border-r border-border bg-surface-sidebar pt-2 text-text-muted",onClick:It,"aria-label":"显示侧边栏",children:n.jsx(Go,{className:"size-3.5"})})}),n.jsxs(Q,{side:"right",children:["显示侧边栏(",se("⌘ B","Ctrl+B"),")"]})]}),n.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[n.jsx(Fc,{onRequestCloseTab:Rt}),n.jsx(Oc,{isMarkdown:Be,mdPreviewMode:J,onToggleSplit:cn,onToggleFullPreview:ln}),R&&s===R&&n.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b px-3 py-1.5 text-xs",style:{backgroundColor:"var(--warning-bg)",borderColor:"var(--warning-border)",color:"var(--warning-text)"},children:[n.jsx(Wo,{className:"size-3.5 shrink-0"}),n.jsx("span",{children:"已从上次会话恢复未保存的更改。"}),n.jsx(I,{variant:"ghost",size:"sm",className:"ml-auto h-auto px-2 py-0.5",onClick:dr,children:"保留"}),n.jsx(I,{variant:"destructive",size:"sm",className:"h-auto px-2 py-0.5",onClick:lr,children:"丢弃"})]}),dn&&n.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-red-500/30 bg-red-500/10 px-3 py-1.5 text-xs text-red-300",children:[n.jsx(Gt,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"truncate",children:["保存失败:",dn]}),n.jsx(I,{variant:"ghost",size:"sm",className:"ml-auto h-auto shrink-0 px-2 py-0.5",onClick:()=>s&&void C(s),children:"重试"})]}),s&&c[s]&&n.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-indigo-400/30 bg-blue-100/50 px-3 py-1.5 text-xs text-blue-700 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-300",children:[n.jsx(jn,{className:"size-3.5 shrink-0"}),n.jsx("span",{children:c[s]==="delete"?"文件已从磁盘中删除。":"文件已在磁盘上被修改。"}),c[s]==="delete"?n.jsx(I,{variant:"ghost",size:"sm",className:"ml-auto h-auto px-2 py-0.5",onClick:()=>x(s),children:"关闭标签页"}):n.jsxs(n.Fragment,{children:[n.jsx(I,{variant:"ghost",size:"sm",className:"ml-auto h-auto px-2 py-0.5",onClick:hr,children:"重新加载"}),n.jsx(I,{variant:"ghost",size:"sm",className:"h-auto px-2 py-0.5",onClick:fr,children:"保留我的版本"})]})]}),n.jsxs("div",{ref:oe,className:"relative flex-1 overflow-hidden",children:[D&&n.jsx("div",{className:"flex h-full items-center justify-center text-text-muted",children:n.jsx(jt,{className:"size-5 animate-spin"})}),k&&n.jsx(si,{error:k,onRetry:mn}),_?.isBinary&&s&&n.jsx(Ja,{filePath:s,size:_.size}),_&&!_.isBinary&&s&&n.jsxs("div",{className:"flex h-full",children:[n.jsx("div",{className:"h-full overflow-hidden",style:{display:J==="preview"?"none":"block",width:J==="split"?`${Me*100}%`:"100%"},children:n.jsx(ni,{filePath:s,onRetry:mn,children:n.jsx(Ha,{filePath:s,content:_.content,fileName:Le(s)||"file",mtimeMs:_.mtimeMs,onCursorChange:sr,onDraftRecovered:cr,onSelectionChange:pe,onDocChange:J!=="off"?tr:void 0},`${s}-${U}`)})}),J!=="off"&&n.jsx(Hc,{content:nr,mode:J,splitRatio:Me,onSplitRatioChange:er,viewKey:s,baseDir:s?Bo(s):void 0})]}),!D&&!k&&!_&&!s&&n.jsx(ti,{}),re&&r&&n.jsx(Ec,{info:re,containerRect:V,onSendMessage:()=>{r(Vo("sendMessage",re)),pe(null)}})]}),kt&&n.jsx(Pc,{line:H,col:de,language:kt.language})]})]}),Ce&&n.jsx(qc,{onClose:()=>at(!1),onSelectFile:xn}),v&&n.jsx($c,{onClose:()=>N(!1)}),A&&n.jsx(Dc,{onClose:()=>W(!1)}),n.jsx(qe,{open:T,onOpenChange:m=>!m&&pn(),children:n.jsxs(Xe,{className:"w-96 max-w-96",children:[n.jsxs(Qe,{children:[n.jsx(Ye,{className:"text-sm",children:"未保存的更改"}),n.jsx(ht,{children:"你有未保存的更改。要如何处理?"})]}),n.jsxs(ft,{children:[n.jsx(I,{variant:"ghost",size:"sm",onClick:pn,children:"取消"}),n.jsx(I,{variant:"destructive",size:"sm",onClick:or,children:"丢弃并关闭"}),n.jsx(I,{size:"sm",onClick:()=>void rr(),children:"全部保存并关闭"})]})]})}),n.jsx(qe,{open:!!d,onOpenChange:m=>!m&&vn(),children:n.jsxs(Xe,{className:"w-96 max-w-96",children:[n.jsxs(Qe,{children:[n.jsx(Ye,{className:"text-sm",children:"保存冲突"}),n.jsx(ht,{children:"该文件在打开后被外部修改。是否用你的更改覆盖?"})]}),n.jsxs(ft,{children:[n.jsx(I,{variant:"ghost",size:"sm",onClick:vn,children:"取消"}),n.jsx(I,{variant:"destructive",size:"sm",onClick:ur,children:"覆盖"})]})]})}),n.jsx(qe,{open:!!K,onOpenChange:m=>!m&&gn(),children:n.jsxs(Xe,{className:"w-96 max-w-96",children:[n.jsxs(Qe,{children:[n.jsx(Ye,{className:"text-sm",children:"未保存的更改"}),n.jsx(ht,{children:"此文件有未保存的更改。要如何处理?"})]}),n.jsxs(ft,{children:[n.jsx(I,{variant:"ghost",size:"sm",onClick:gn,children:"取消"}),n.jsx(I,{variant:"destructive",size:"sm",onClick:ir,children:"丢弃"}),n.jsx(I,{size:"sm",onClick:()=>void ar(),children:"保存"})]})]})})]})};export{nl as ProjectEditorOverlay};
@@ -1 +1 @@
1
- import{u as R,m as V,n as q,o as D,r as n,q as a,T as P,G as W,v as I,w as Z,x as z,y as O,z as B}from"./index-V7dAKPqd.js";import"./splashScene-C8lWNnm4.js";const M=({teamName:s,onClose:c,onPinAsTab:h,sidebarVisible:C,onToggleSidebar:v,onSendMessage:u,onOpenTaskDetail:i,onOpenMemberProfile:d})=>{const T=R(s),{openTeamPage:k,commitOwnerSlotDrop:w,commitOwnerGridOrderDrop:S,setLayoutMode:x}=V(s),{sidebarVisible:m,toggleSidebarVisible:f}=q(),{dialog:G,openCreateTaskDialog:g}=D(s),b=C??m,y=v??f,t=n.useCallback(o=>e=>window.dispatchEvent(new CustomEvent(`graph:${o}`,{detail:{teamName:s,taskId:e}})),[s]),A=n.useMemo(()=>({onStartTask:t("start-task"),onCompleteTask:t("complete-task"),onApproveTask:t("approve-task"),onRequestReview:t("request-review"),onRequestChanges:t("request-changes"),onCancelTask:t("cancel-task"),onMoveBackToDone:t("move-back-to-done"),onDeleteTask:t("delete-task")}),[t]),j=n.useCallback(()=>{k(),c()},[c,k]),H=n.useCallback(()=>{g("")},[g]),E={onNodeDoubleClick:n.useCallback(o=>{o.kind==="task"?i?.(o.taskId):o.kind==="member"&&d?.(o.memberName)},[i,d]),onSendMessage:n.useCallback(o=>u?.(o),[u]),onOpenTaskDetail:n.useCallback(o=>i?.(o),[i]),onOpenMemberProfile:n.useCallback(o=>d?.(o),[d])};return a.jsxs("div",{className:"fixed inset-0 z-50 flex overflow-hidden",style:{background:"#050510"},children:[b?a.jsx(P,{teamName:s,surface:"graph-overlay",isActive:!0,isFocused:!0}):null,a.jsx(W,{data:T,events:E,isSurfaceActive:!0,onRequestClose:c,onRequestPinAsTab:h,onOpenTeamPage:j,onCreateTask:H,onToggleSidebar:y,isSidebarVisible:b,renderTopToolbarContent:()=>a.jsx(B,{teamName:s}),onLayoutModeChange:x,onOwnerSlotDrop:w,onOwnerGridOrderDrop:S,className:"team-graph-view min-w-0 flex-1",renderHud:o=>{const e=o,{getViewportSize:r,focusNodeIds:l,filters:p}=e;return a.jsxs(a.Fragment,{children:[a.jsx(z,{teamName:s,getTransientHandoffSnapshot:e.getTransientHandoffSnapshot,getCameraZoom:e.getCameraZoom,worldToScreen:e.worldToScreen,getNodeWorldPosition:e.getNodeWorldPosition,focusNodeIds:l,focusEdgeIds:e.focusEdgeIds??null}),a.jsx(O,{teamName:s,nodes:T.nodes,getActivityWorldRect:e.getActivityWorldRect,getCameraZoom:e.getCameraZoom,worldToScreen:e.worldToScreen,getNodeWorldPosition:e.getNodeWorldPosition,getViewportSize:r,focusNodeIds:l,enabled:p?.showActivity??!0,onOpenTaskDetail:i,onOpenMemberProfile:d})]})},renderEdgeOverlay:({edge:o,sourceNode:e,targetNode:r,onClose:l,onSelectNode:p})=>a.jsx(Z,{teamName:s,edge:o,sourceNode:e,targetNode:r,onClose:l,onSelectNode:p,onOpenTaskDetail:i}),renderOverlay:({node:o,onClose:e})=>a.jsx(I,{node:o,teamName:s,onClose:e,onSendMessage:r=>{u?.(r),e()},onCreateTask:g,onOpenTaskDetail:r=>{i?.(r),e()},onOpenMemberProfile:r=>{d?.(r),e()},...A})}),G]})};export{M as TeamGraphOverlay};
1
+ import{u as R,m as V,n as q,o as D,r as n,q as a,T as P,G as W,v as I,w as Z,x as z,y as O,z as B}from"./index-ChG4rE-E.js";import"./splashScene-D0YB9uxm.js";const M=({teamName:s,onClose:c,onPinAsTab:h,sidebarVisible:C,onToggleSidebar:v,onSendMessage:u,onOpenTaskDetail:i,onOpenMemberProfile:d})=>{const T=R(s),{openTeamPage:k,commitOwnerSlotDrop:w,commitOwnerGridOrderDrop:S,setLayoutMode:x}=V(s),{sidebarVisible:m,toggleSidebarVisible:f}=q(),{dialog:G,openCreateTaskDialog:g}=D(s),b=C??m,y=v??f,t=n.useCallback(o=>e=>window.dispatchEvent(new CustomEvent(`graph:${o}`,{detail:{teamName:s,taskId:e}})),[s]),A=n.useMemo(()=>({onStartTask:t("start-task"),onCompleteTask:t("complete-task"),onApproveTask:t("approve-task"),onRequestReview:t("request-review"),onRequestChanges:t("request-changes"),onCancelTask:t("cancel-task"),onMoveBackToDone:t("move-back-to-done"),onDeleteTask:t("delete-task")}),[t]),j=n.useCallback(()=>{k(),c()},[c,k]),H=n.useCallback(()=>{g("")},[g]),E={onNodeDoubleClick:n.useCallback(o=>{o.kind==="task"?i?.(o.taskId):o.kind==="member"&&d?.(o.memberName)},[i,d]),onSendMessage:n.useCallback(o=>u?.(o),[u]),onOpenTaskDetail:n.useCallback(o=>i?.(o),[i]),onOpenMemberProfile:n.useCallback(o=>d?.(o),[d])};return a.jsxs("div",{className:"fixed inset-0 z-50 flex overflow-hidden",style:{background:"#050510"},children:[b?a.jsx(P,{teamName:s,surface:"graph-overlay",isActive:!0,isFocused:!0}):null,a.jsx(W,{data:T,events:E,isSurfaceActive:!0,onRequestClose:c,onRequestPinAsTab:h,onOpenTeamPage:j,onCreateTask:H,onToggleSidebar:y,isSidebarVisible:b,renderTopToolbarContent:()=>a.jsx(B,{teamName:s}),onLayoutModeChange:x,onOwnerSlotDrop:w,onOwnerGridOrderDrop:S,className:"team-graph-view min-w-0 flex-1",renderHud:o=>{const e=o,{getViewportSize:r,focusNodeIds:l,filters:p}=e;return a.jsxs(a.Fragment,{children:[a.jsx(z,{teamName:s,getTransientHandoffSnapshot:e.getTransientHandoffSnapshot,getCameraZoom:e.getCameraZoom,worldToScreen:e.worldToScreen,getNodeWorldPosition:e.getNodeWorldPosition,focusNodeIds:l,focusEdgeIds:e.focusEdgeIds??null}),a.jsx(O,{teamName:s,nodes:T.nodes,getActivityWorldRect:e.getActivityWorldRect,getCameraZoom:e.getCameraZoom,worldToScreen:e.worldToScreen,getNodeWorldPosition:e.getNodeWorldPosition,getViewportSize:r,focusNodeIds:l,enabled:p?.showActivity??!0,onOpenTaskDetail:i,onOpenMemberProfile:d})]})},renderEdgeOverlay:({edge:o,sourceNode:e,targetNode:r,onClose:l,onSelectNode:p})=>a.jsx(Z,{teamName:s,edge:o,sourceNode:e,targetNode:r,onClose:l,onSelectNode:p,onOpenTaskDetail:i}),renderOverlay:({node:o,onClose:e})=>a.jsx(I,{node:o,teamName:s,onClose:e,onSendMessage:r=>{u?.(r),e()},onCreateTask:g,onOpenTaskDetail:r=>{i?.(r),e()},onOpenMemberProfile:r=>{d?.(r),e()},...A})}),G]})};export{M as TeamGraphOverlay};
@@ -1 +1 @@
1
- import{e as v,c as O,g,k as P,h as p,j as w,l as c,m as A,n as x,t as N,o as E}from"./_baseUniq-cKAW4Q8I.js";import{bf as b,aV as F,bg as M,bh as _,bi as $,bj as I,bk as B,bl as T,bm as y,bn as S}from"./index-V7dAKPqd.js";var G=/\s/;function H(n){for(var r=n.length;r--&&G.test(n.charAt(r)););return r}var L=/^\s+/;function R(n){return n&&n.slice(0,H(n)+1).replace(L,"")}var m=NaN,q=/^[-+]0x[0-9a-f]+$/i,z=/^0b[01]+$/i,C=/^0o[0-7]+$/i,K=parseInt;function W(n){if(typeof n=="number")return n;if(v(n))return m;if(b(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=b(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=R(n);var t=z.test(n);return t||C.test(n)?K(n.slice(2),t?2:8):q.test(n)?m:+n}var o=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=W(n),n===o||n===-o){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,a=r.length,e=a>2?r[2]:void 0;for(e&&M(r[0],r[1],e)&&(a=1);++t<a;)for(var f=r[t],i=_(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||$(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,a){var e=Object(r);if(!I(r)){var f=g(t);r=P(r),t=function(s){return f(e[s],s,e)}}var i=n(r,t,a);return i>-1?e[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var a=n==null?0:n.length;if(!a)return-1;var e=t==null?0:D(t);return e<0&&(e=U(a+e,0)),p(n,g(r),e)}var hn=Q(Z);function V(n,r){var t=-1,a=I(n)?Array(n.length):[];return w(n,function(e,f,i){a[++t]=r(e,f,i)}),a}function bn(n,r){var t=B(n)?c:V;return t(n,g(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function gn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var a=-1,e=n.length;++a<e;){var f=n[a],i=r(f);if(i!=null&&(s===void 0?i===i&&!v(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,T,rn):void 0}function en(n,r,t,a){if(!b(n))return n;r=x(r,n);for(var e=-1,f=r.length,i=f-1,s=n;s!=null&&++e<f;){var d=N(r[e]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(e!=i){var h=s[d];u=void 0,u===void 0&&(u=b(h)?h:y(r[e+1])?[]:{})}S(s,d,u),s=s[d]}return n}function on(n,r,t){for(var a=-1,e=r.length,f={};++a<e;){var i=r[a],s=E(n,i);t(s,i)&&en(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,gn as h,dn as i,D as j,un as l,bn as m,Y as t};
1
+ import{e as v,c as O,g,k as P,h as p,j as w,l as c,m as A,n as x,t as N,o as E}from"./_baseUniq-CWErBtke.js";import{bf as b,aV as F,bg as M,bh as _,bi as $,bj as I,bk as B,bl as T,bm as y,bn as S}from"./index-ChG4rE-E.js";var G=/\s/;function H(n){for(var r=n.length;r--&&G.test(n.charAt(r)););return r}var L=/^\s+/;function R(n){return n&&n.slice(0,H(n)+1).replace(L,"")}var m=NaN,q=/^[-+]0x[0-9a-f]+$/i,z=/^0b[01]+$/i,C=/^0o[0-7]+$/i,K=parseInt;function W(n){if(typeof n=="number")return n;if(v(n))return m;if(b(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=b(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=R(n);var t=z.test(n);return t||C.test(n)?K(n.slice(2),t?2:8):q.test(n)?m:+n}var o=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=W(n),n===o||n===-o){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,a=r.length,e=a>2?r[2]:void 0;for(e&&M(r[0],r[1],e)&&(a=1);++t<a;)for(var f=r[t],i=_(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||$(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,a){var e=Object(r);if(!I(r)){var f=g(t);r=P(r),t=function(s){return f(e[s],s,e)}}var i=n(r,t,a);return i>-1?e[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var a=n==null?0:n.length;if(!a)return-1;var e=t==null?0:D(t);return e<0&&(e=U(a+e,0)),p(n,g(r),e)}var hn=Q(Z);function V(n,r){var t=-1,a=I(n)?Array(n.length):[];return w(n,function(e,f,i){a[++t]=r(e,f,i)}),a}function bn(n,r){var t=B(n)?c:V;return t(n,g(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function gn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var a=-1,e=n.length;++a<e;){var f=n[a],i=r(f);if(i!=null&&(s===void 0?i===i&&!v(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,T,rn):void 0}function en(n,r,t,a){if(!b(n))return n;r=x(r,n);for(var e=-1,f=r.length,i=f-1,s=n;s!=null&&++e<f;){var d=N(r[e]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(e!=i){var h=s[d];u=void 0,u===void 0&&(u=b(h)?h:y(r[e+1])?[]:{})}S(s,d,u),s=s[d]}return n}function on(n,r,t){for(var a=-1,e=r.length,f={};++a<e;){var i=r[a],s=E(n,i);t(s,i)&&en(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,gn as h,dn as i,D as j,un as l,bn as m,Y as t};
@@ -1 +1 @@
1
- import{dL as S,dM as Rn,bk as T,dN as w,dO as xn,dP as Mn,bj as sn,dQ as mn,dR as un,dS as x,bh as U,dT as Cn,dU as on,dV as Fn,dW as E,dJ as gn,dX as R,bf as ln,dY as Dn,dZ as D,d_ as Gn,d$ as Un,e0 as _,bn as Nn,e1 as Bn,bi as Kn,e2 as X,e3 as jn,e4 as Hn,bm as Yn,bl as cn,dH as Zn,e5 as m}from"./index-V7dAKPqd.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function bn(n){if(typeof n=="string")return n;if(T(n))return dn(n,bn)+"";if(N(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":bn(n)}function An(n,r){return T(n)?n:B(n,r)?[n]:fr(ar(n))}function M(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function br(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Pr="[object Date]",Ir="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Pr:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case jr:case Hr:return Fn(n,e);case Ir:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case Mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",be="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[be]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,d=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):br(n,gr(a,n))}else{if(!g[o])return f?n:{};a=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(b){a.add(C(b,r,e,b,n,i))}):Xr(n)&&n.forEach(function(b,p){a.set(p,C(b,r,e,p,n,i))});var A=d?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(b,p){y&&(p=b,b=n[p]),Nn(a,p,C(b,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function P(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}P.prototype.add=P.prototype.push=Se;P.prototype.has=Ee;function Pe(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Ie=1,ve=2;function Pn(n,r,e,t,f,i){var a=e&Ie,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new P:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var b=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(b!==void 0){if(b)continue;c=!1;break}if(h){if(!Pe(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=H),n.size!=r.size&&!u)return!1;var d=a.get(n);if(d)return d==r;t|=xe,a.set(n,r);var l=Pn(s(n),s(r),t,f,i,a);return a.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:qe.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var b=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var q=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(q===void 0?p===O||f(p,O,e,t,i):q)){y=!1;break}b||(b=c=="constructor")}if(y&&!b){var I=n.constructor,v=r.constructor;I!=v&&"constructor"in n&&"constructor"in r&&!(typeof I=="function"&&I instanceof I&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Je=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Qe=Object.prototype,an=Qe.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),d=s?fn:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?Pn(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Je)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,b=A?r.value():r;return i||(i=new _),f(y,b,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function Y(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],d=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function In(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,In(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=M(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&Yn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return B(n)&&In(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Z;return e(n,dt(r))}function bt(n,r){var e=[];return Z(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:bt;return e(n,Ln(r))}function pt(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function Pt(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Z)}var yt=1/0,Tt=m&&1/H(new m([,-0]))[1]==yt?function(n){return new m(n)}:Xn,ht=200;function It(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return H(d);a=!1,f=En,u=new P}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,bt as B,Pe as C,Xn as D,P as S,It as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Jn as h,Et as i,Z as j,$ as k,dn as l,tt as m,An as n,yn as o,dt as p,lt as q,Pt as r,it as s,M as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
1
+ import{dP as S,dQ as Rn,bk as T,dR as w,dS as xn,dT as mn,bj as sn,dU as Mn,dV as un,dW as x,bh as U,dX as Cn,dY as on,dZ as Fn,d_ as E,dN as gn,d$ as R,bf as ln,e0 as Dn,e1 as D,e2 as Gn,e3 as Un,e4 as _,bn as Nn,e5 as Bn,bi as Kn,e6 as X,e7 as jn,e8 as Hn,bm as Yn,bl as cn,dL as Zn,e9 as M}from"./index-ChG4rE-E.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var Q=w?w.prototype:void 0,J=Q?Q.toString:void 0;function bn(n){if(typeof n=="string")return n;if(T(n))return dn(n,bn)+"";if(N(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Qn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Qn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":bn(n)}function An(n,r){return T(n)?n:B(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function br(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Pr="[object Date]",Ir="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case Mr:return on(n);case Er:case Pr:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case jr:case Hr:return Fn(n,e);case Ir:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Qr="[object Set]";function Jr(n){return S(n)&&E(n)==Qr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",be="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[be]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,d=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):br(n,gr(a,n))}else{if(!g[o])return f?n:{};a=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(b){a.add(C(b,r,e,b,n,i))}):Xr(n)&&n.forEach(function(b,p){a.set(p,C(b,r,e,p,n,i))});var A=d?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(b,p){y&&(p=b,b=n[p]),Nn(a,p,C(b,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function P(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}P.prototype.add=P.prototype.push=Se;P.prototype.has=Ee;function Pe(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Ie=1,ve=2;function Pn(n,r,e,t,f,i){var a=e&Ie,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new P:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var b=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(b!==void 0){if(b)continue;c=!1;break}if(h){if(!Pe(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=H),n.size!=r.size&&!u)return!1;var d=a.get(n);if(d)return d==r;t|=xe,a.set(n,r);var l=Pn(s(n),s(r),t,f,i,a);return a.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:qe.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var b=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var q=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(q===void 0?p===O||f(p,O,e,t,i):q)){y=!1;break}b||(b=c=="constructor")}if(y&&!b){var I=n.constructor,v=r.constructor;I!=v&&"constructor"in n&&"constructor"in r&&!(typeof I=="function"&&I instanceof I&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Qe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),d=s?fn:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?Pn(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Qe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,b=A?r.value():r;return i||(i=new _),f(y,b,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function Y(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],d=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function In(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,In(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&Yn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return B(n)&&In(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return B(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Z;return e(n,dt(r))}function bt(n,r){var e=[];return Z(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:bt;return e(n,Ln(r))}function pt(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function Pt(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Z)}var yt=1/0,Tt=M&&1/H(new M([,-0]))[1]==yt?function(n){return new M(n)}:Xn,ht=200;function It(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return H(d);a=!1,f=En,u=new P}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,bt as B,Pe as C,Xn as D,P as S,It as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Qn as h,Et as i,Z as j,$ as k,dn as l,tt as m,An as n,yn as o,dt as p,lt as q,Pt as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
@@ -1 +1 @@
1
- import{ag as ln,ah as an,ai as g,aj as tn,ak as G,al as w,am as _,an as un,ao as z,ap as rn,aq as K,ar as o,as as sn,at as on,au as fn}from"./index-V7dAKPqd.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,E,j,v,A,B,a){var I=E-l,i=j-h,n=B-v,m=a-A,u=m*I-n*i;if(!(u*u<g))return u=(n*(h-A)-m*(l-v))/u,[l+u*I,h+u*i]}function V(l,h,E,j,v,A,B){var a=l-E,I=h-j,i=(B?A:-A)/K(a*a+I*I),n=i*I,m=-i*a,u=l+n,s=h+m,f=E+n,c=j+m,C=(u+f)/2,t=(s+c)/2,p=f-u,y=c-s,R=p*p+y*y,T=v-A,P=u*c-f*s,O=(y<0?-1:1)*K(fn(0,T*T*R-P*P)),S=(P*y-p*O)/R,k=(-P*p-y*O)/R,q=(P*y+p*O)/R,d=(-P*p+y*O)/R,x=S-C,e=k-t,r=q-C,F=d-t;return x*x+e*e>r*r+F*F&&(S=q,k=d),{cx:S,cy:k,x01:-n,y01:-m,x11:S*(v/T-1),y11:k*(v/T-1)}}function hn(){var l=cn,h=gn,E=z(0),j=null,v=yn,A=mn,B=pn,a=null,I=ln(i);function i(){var n,m,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,C=un(c-f),t=c>f;if(a||(a=n=I()),s<u&&(m=s,s=u,u=m),!(s>g))a.moveTo(0,0);else if(C>tn-g)a.moveTo(s*G(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*G(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var p=f,y=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,k=S>g&&(j?+j.apply(this,arguments):K(u*u+s*s)),q=_(un(s-u)/2,+E.apply(this,arguments)),d=q,x=q,e,r;if(k>g){var F=sn(k/u*w(S)),L=sn(k/s*w(S));(P-=F*2)>g?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>g?(L*=t?1:-1,p+=L,y-=L):(O=0,p=y=(f+c)/2)}var H=s*G(p),J=s*w(p),M=u*G(T),N=u*w(T);if(q>g){var Q=s*G(y),U=s*w(y),W=u*G(R),X=u*w(R),D;if(C<rn)if(D=dn(H,J,W,X,Q,U,M,N)){var Y=H-D[0],Z=J-D[1],$=Q-D[0],b=U-D[1],nn=1/w(on((Y*$+Z*b)/(K(Y*Y+Z*Z)*K($*$+b*b)))/2),en=K(D[0]*D[0]+D[1]*D[1]);d=_(q,(u-en)/(nn-1)),x=_(q,(s-en)/(nn+1))}else d=x=0}O>g?x>g?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<q?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,p,y,!t)):a.moveTo(H,J),!(u>g)||!(P>g)?a.lineTo(M,N):d>g?(e=V(M,N,Q,U,u,-d,t),r=V(H,J,W,X,u,-d,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),d<q?a.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,d,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[G(m)*n,w(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:z(+n),i):E},i.padRadius=function(n){return arguments.length?(j=n==null?null:typeof n=="function"?n:z(+n),i):j},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{ag as ln,ah as an,ai as g,aj as tn,ak as G,al as w,am as _,an as un,ao as z,ap as rn,aq as K,ar as o,as as sn,at as on,au as fn}from"./index-ChG4rE-E.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,E,j,v,A,B,a){var I=E-l,i=j-h,n=B-v,m=a-A,u=m*I-n*i;if(!(u*u<g))return u=(n*(h-A)-m*(l-v))/u,[l+u*I,h+u*i]}function V(l,h,E,j,v,A,B){var a=l-E,I=h-j,i=(B?A:-A)/K(a*a+I*I),n=i*I,m=-i*a,u=l+n,s=h+m,f=E+n,c=j+m,C=(u+f)/2,t=(s+c)/2,p=f-u,y=c-s,R=p*p+y*y,T=v-A,P=u*c-f*s,O=(y<0?-1:1)*K(fn(0,T*T*R-P*P)),S=(P*y-p*O)/R,k=(-P*p-y*O)/R,q=(P*y+p*O)/R,d=(-P*p+y*O)/R,x=S-C,e=k-t,r=q-C,F=d-t;return x*x+e*e>r*r+F*F&&(S=q,k=d),{cx:S,cy:k,x01:-n,y01:-m,x11:S*(v/T-1),y11:k*(v/T-1)}}function hn(){var l=cn,h=gn,E=z(0),j=null,v=yn,A=mn,B=pn,a=null,I=ln(i);function i(){var n,m,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,C=un(c-f),t=c>f;if(a||(a=n=I()),s<u&&(m=s,s=u,u=m),!(s>g))a.moveTo(0,0);else if(C>tn-g)a.moveTo(s*G(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*G(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var p=f,y=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,k=S>g&&(j?+j.apply(this,arguments):K(u*u+s*s)),q=_(un(s-u)/2,+E.apply(this,arguments)),d=q,x=q,e,r;if(k>g){var F=sn(k/u*w(S)),L=sn(k/s*w(S));(P-=F*2)>g?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>g?(L*=t?1:-1,p+=L,y-=L):(O=0,p=y=(f+c)/2)}var H=s*G(p),J=s*w(p),M=u*G(T),N=u*w(T);if(q>g){var Q=s*G(y),U=s*w(y),W=u*G(R),X=u*w(R),D;if(C<rn)if(D=dn(H,J,W,X,Q,U,M,N)){var Y=H-D[0],Z=J-D[1],$=Q-D[0],b=U-D[1],nn=1/w(on((Y*$+Z*b)/(K(Y*Y+Z*Z)*K($*$+b*b)))/2),en=K(D[0]*D[0]+D[1]*D[1]);d=_(q,(u-en)/(nn-1)),x=_(q,(s-en)/(nn+1))}else d=x=0}O>g?x>g?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<q?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,p,y,!t)):a.moveTo(H,J),!(u>g)||!(P>g)?a.lineTo(M,N):d>g?(e=V(M,N,Q,U,u,-d,t),r=V(H,J,W,X,u,-d,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),d<q?a.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,d,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[G(m)*n,w(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:z(+n),i):E},i.padRadius=function(n){return arguments.length?(j=n==null?null:typeof n=="function"?n:z(+n),i):j},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};