@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.
- package/dist-renderer/assets/ProjectEditorOverlay-CemDOX-3.js +58 -0
- package/dist-renderer/assets/{TeamGraphOverlay-ZEDfZyHb.js → TeamGraphOverlay-hPY770Db.js} +1 -1
- package/dist-renderer/assets/{_basePickBy-CIhniz70.js → _basePickBy-BHHrJT1i.js} +1 -1
- package/dist-renderer/assets/{_baseUniq-cKAW4Q8I.js → _baseUniq-CWErBtke.js} +1 -1
- package/dist-renderer/assets/{arc-YmNsoDXW.js → arc-C_o2_Uv8.js} +1 -1
- package/dist-renderer/assets/{architectureDiagram-VXUJARFQ-DHEls2sX.js → architectureDiagram-VXUJARFQ-DUW0LI3t.js} +1 -1
- package/dist-renderer/assets/{blockDiagram-VD42YOAC-Bpwf1Sbg.js → blockDiagram-VD42YOAC-CWbCE9hQ.js} +1 -1
- package/dist-renderer/assets/{c4Diagram-YG6GDRKO-B0IaQ4w5.js → c4Diagram-YG6GDRKO-BjLadrfV.js} +1 -1
- package/dist-renderer/assets/channel-DyP9YlCF.js +1 -0
- package/dist-renderer/assets/{chunk-4BX2VUAB-DLk-hcFc.js → chunk-4BX2VUAB-CPnvjZl9.js} +1 -1
- package/dist-renderer/assets/{chunk-55IACEB6-1XRmX_Zm.js → chunk-55IACEB6-OlL47yXQ.js} +1 -1
- package/dist-renderer/assets/{chunk-B4BG7PRW-1waH1DAD.js → chunk-B4BG7PRW-DTasjbm8.js} +1 -1
- package/dist-renderer/assets/{chunk-DI55MBZ5-BqpZBtrN.js → chunk-DI55MBZ5-C5_Xaqkk.js} +1 -1
- package/dist-renderer/assets/{chunk-FMBD7UC4-Bly7vVym.js → chunk-FMBD7UC4-NdoM4DMR.js} +1 -1
- package/dist-renderer/assets/{chunk-QN33PNHL-Ci2QWBAs.js → chunk-QN33PNHL-C8Fybejy.js} +1 -1
- package/dist-renderer/assets/{chunk-QZHKN3VN-YCqFW7d-.js → chunk-QZHKN3VN-E98TYFXJ.js} +1 -1
- package/dist-renderer/assets/{chunk-TZMSLE5B-B0xGXInl.js → chunk-TZMSLE5B-h4lFgkIq.js} +1 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-BqffFTae.js +1 -0
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-BqffFTae.js +1 -0
- package/dist-renderer/assets/clone-MPcKWs2O.js +1 -0
- package/dist-renderer/assets/{cose-bilkent-S5V4N54A-DxcFNQKT.js → cose-bilkent-S5V4N54A-DtQ7fkrs.js} +1 -1
- package/dist-renderer/assets/{dagre-6UL2VRFP-DPo_RfZY.js → dagre-6UL2VRFP-CN-nL_z4.js} +1 -1
- package/dist-renderer/assets/{diagram-PSM6KHXK-U3hQsFe4.js → diagram-PSM6KHXK-DVJtqmm-.js} +1 -1
- package/dist-renderer/assets/{diagram-QEK2KX5R-OrwrAy0V.js → diagram-QEK2KX5R-DlxHxyXh.js} +1 -1
- package/dist-renderer/assets/{diagram-S2PKOQOG-CXATPWVw.js → diagram-S2PKOQOG-7dpzO6x6.js} +1 -1
- package/dist-renderer/assets/{erDiagram-Q2GNP2WA-B0e8AfMF.js → erDiagram-Q2GNP2WA-GP1TqsHi.js} +1 -1
- package/dist-renderer/assets/{flowDiagram-NV44I4VS-CXfzA4jJ.js → flowDiagram-NV44I4VS-C7ZLETuH.js} +1 -1
- package/dist-renderer/assets/{ganttDiagram-JELNMOA3-CMr08qVl.js → ganttDiagram-JELNMOA3-CvPB68dH.js} +1 -1
- package/dist-renderer/assets/{gitGraphDiagram-V2S2FVAM-vYFHpPmy.js → gitGraphDiagram-V2S2FVAM-B5yOm3w7.js} +1 -1
- package/dist-renderer/assets/{graph-DOe5j8dH.js → graph-smeyY1YZ.js} +1 -1
- package/dist-renderer/assets/{index-BySQS7AB.js → index-BJx8XvG1.js} +1 -1
- package/dist-renderer/assets/{index-C_okzZXP.js → index-CQaXUAua.js} +1 -1
- package/dist-renderer/assets/{index-VJ-MM9xa.js → index-CajRpxO2.js} +1 -1
- package/dist-renderer/assets/{index-V7dAKPqd.js → index-ChG4rE-E.js} +587 -705
- package/dist-renderer/assets/index-DUd0uw9C.css +32 -0
- package/dist-renderer/assets/{index-CzWxVCRL.js → index-IhmXZWqf.js} +1 -1
- package/dist-renderer/assets/{index-B2Dy7M2G.js → index-x_JkoDRH.js} +1 -1
- package/dist-renderer/assets/{infoDiagram-HS3SLOUP-D_WubR0B.js → infoDiagram-HS3SLOUP-D-hWRQGY.js} +1 -1
- package/dist-renderer/assets/{journeyDiagram-XKPGCS4Q-w9ca-1TI.js → journeyDiagram-XKPGCS4Q-Bb6W8rUG.js} +1 -1
- package/dist-renderer/assets/{kanban-definition-3W4ZIXB7-Jg9p6_pN.js → kanban-definition-3W4ZIXB7-CnHdUX0q.js} +1 -1
- package/dist-renderer/assets/{layout-B-z3y17c.js → layout-pqss_zkI.js} +1 -1
- package/dist-renderer/assets/{linear-D-RTX5UW.js → linear-B1mFITNh.js} +1 -1
- package/dist-renderer/assets/{mindmap-definition-VGOIOE7T-CDQmHOYP.js → mindmap-definition-VGOIOE7T-DTD9q7-D.js} +1 -1
- package/dist-renderer/assets/{pieDiagram-ADFJNKIX-D_odsQL7.js → pieDiagram-ADFJNKIX-Df3mhrn7.js} +1 -1
- package/dist-renderer/assets/{quadrantDiagram-AYHSOK5B-BRsmYWSA.js → quadrantDiagram-AYHSOK5B-B1FZ09vH.js} +1 -1
- package/dist-renderer/assets/{requirementDiagram-UZGBJVZJ-ChNE_BOV.js → requirementDiagram-UZGBJVZJ-aEO78thZ.js} +1 -1
- package/dist-renderer/assets/{sankeyDiagram-TZEHDZUN-C8FtpwKc.js → sankeyDiagram-TZEHDZUN-6Ui--jp-.js} +1 -1
- package/dist-renderer/assets/{sequenceDiagram-WL72ISMW-DmLCzNcc.js → sequenceDiagram-WL72ISMW-DF4Q1cAM.js} +1 -1
- package/dist-renderer/assets/splashScene-D0YB9uxm.js +17 -0
- package/dist-renderer/assets/{stateDiagram-FKZM4ZOC-WJBm4bhu.js → stateDiagram-FKZM4ZOC-BqA2BI8C.js} +1 -1
- package/dist-renderer/assets/stateDiagram-v2-4FDKWEC3-Cs2ZtUD2.js +1 -0
- package/dist-renderer/assets/{timeline-definition-IT6M3QCI-BXs_hOJs.js → timeline-definition-IT6M3QCI-DoOkw_A8.js} +1 -1
- package/dist-renderer/assets/{treemap-GDKQZRPO-o04MA0G9.js → treemap-GDKQZRPO-DUe26QdD.js} +1 -1
- package/dist-renderer/assets/{xychartDiagram-PRI3JC2R-Czj69XRd.js → xychartDiagram-PRI3JC2R-BKCnj5Xn.js} +1 -1
- package/dist-renderer/index.html +20 -53
- package/package.json +25 -18
- package/src/main/ipc/extensions.ts +2 -1
- package/src/main/server.ts +873 -221
- package/src/main/services/extensions/ExtensionFacadeService.ts +2 -5
- package/src/main/services/extensions/catalog/PluginCatalogService.ts +4 -2
- package/src/main/services/session-intelligence/ConversationTelemetryService.ts +1101 -0
- package/src/main/services/session-intelligence/LocalSessionScanner.ts +512 -0
- package/src/main/services/session-intelligence/SessionUsageParser.ts +4 -4
- package/src/main/services/system-manager/SystemManagerConfigService.ts +122 -0
- package/src/main/services/system-manager/SystemManagerPtyService.ts +233 -0
- package/src/main/services/system-manager/WorkflowPromptService.ts +75 -0
- package/src/main/services/teams-mvp/TaskDispatchService.ts +5 -6
- package/src/main/services/teams-mvp/TeamProvisioningService.ts +39 -2
- package/src/main/services/teams-mvp/TeamWorkspaceService.ts +22 -4
- package/src/main/utils/teamProjectResolution.ts +15 -0
- package/src/renderer/App.tsx +8 -4
- package/src/renderer/api/httpClient.ts +68 -18
- package/src/renderer/api/providers.ts +23 -2
- package/src/renderer/assets/participant-avatars/01.svg +3 -0
- package/src/renderer/assets/participant-avatars/02.svg +3 -0
- package/src/renderer/assets/participant-avatars/03.svg +3 -0
- package/src/renderer/assets/participant-avatars/04.svg +3 -0
- package/src/renderer/assets/participant-avatars/05.svg +3 -0
- package/src/renderer/assets/participant-avatars/06.svg +3 -0
- package/src/renderer/assets/participant-avatars/07.svg +3 -0
- package/src/renderer/assets/participant-avatars/08.svg +3 -0
- package/src/renderer/assets/participant-avatars/09.svg +3 -0
- package/src/renderer/assets/participant-avatars/10.svg +3 -0
- package/src/renderer/assets/participant-avatars/11.svg +3 -0
- package/src/renderer/assets/participant-avatars/12.svg +3 -0
- package/src/renderer/assets/participant-avatars/13.svg +3 -0
- package/src/renderer/components/chat/ChatHistoryItem.tsx +1 -1
- package/src/renderer/components/chat/items/SubagentItem.tsx +2 -2
- package/src/renderer/components/chat/viewers/MermaidDiagram.tsx +2 -2
- package/src/renderer/components/common/ErrorBoundary.tsx +1 -1
- package/src/renderer/components/common/TerminalPane.tsx +213 -0
- package/src/renderer/components/dashboard/CliStatusBanner.tsx +7 -7
- package/src/renderer/components/dashboard/DashboardView.tsx +9 -36
- package/src/renderer/components/extensions/ExtensionStoreView.tsx +7 -126
- package/src/renderer/components/extensions/ExtensionsSubTabTrigger.tsx +1 -1
- package/src/renderer/components/extensions/common/ExtensionToast.tsx +3 -3
- package/src/renderer/components/extensions/common/SourceBadge.tsx +1 -1
- package/src/renderer/components/extensions/mcp/McpLibraryEnableDialog.tsx +305 -0
- package/src/renderer/components/extensions/mcp/McpLibraryEntryDialog.tsx +418 -0
- package/src/renderer/components/extensions/mcp/McpLibraryPanel.tsx +404 -0
- package/src/renderer/components/extensions/plugins/CategoryChips.tsx +1 -1
- package/src/renderer/components/extensions/plugins/PluginCard.tsx +6 -6
- package/src/renderer/components/extensions/plugins/PluginDetailDialog.tsx +2 -2
- package/src/renderer/components/extensions/plugins/PluginsPanel.tsx +34 -21
- package/src/renderer/components/extensions/skills/SkillEditorDialog.tsx +1 -1
- package/src/renderer/components/extensions/skills/SkillsLibraryPanel.tsx +335 -0
- package/src/renderer/components/layout/PaneContent.tsx +8 -1
- package/src/renderer/components/layout/PaneResizeHandle.tsx +2 -2
- package/src/renderer/components/layout/Sidebar.tsx +13 -56
- package/src/renderer/components/layout/SortableTab.tsx +22 -33
- package/src/renderer/components/layout/TabBar.tsx +1 -1
- package/src/renderer/components/layout/TabContextMenu.tsx +1 -1
- package/src/renderer/components/report/sections/CostSection.tsx +2 -2
- package/src/renderer/components/report/sections/InsightsSection.tsx +1 -1
- package/src/renderer/components/runtime/ProviderRuntimeBackendSelector.tsx +2 -2
- package/src/renderer/components/runtime/ProviderRuntimeSettingsDialog.tsx +768 -157
- package/src/renderer/components/schedules/SchedulesView.tsx +51 -462
- package/src/renderer/components/schedules/calendar/CalendarDayView.tsx +173 -0
- package/src/renderer/components/schedules/calendar/CalendarEventBlock.tsx +113 -0
- package/src/renderer/components/schedules/calendar/CalendarHeader.tsx +148 -0
- package/src/renderer/components/schedules/calendar/CalendarMonthView.tsx +142 -0
- package/src/renderer/components/schedules/calendar/CalendarWeekView.tsx +219 -0
- package/src/renderer/components/schedules/calendar/ScheduleCalendarBoard.tsx +41 -0
- package/src/renderer/components/schedules/calendar/TeamGanttView.tsx +405 -0
- package/src/renderer/components/schedules/calendar/computeOccurrences.ts +234 -0
- package/src/renderer/components/schedules/calendar/index.ts +2 -0
- package/src/renderer/components/schedules/calendar/types.ts +44 -0
- package/src/renderer/components/search/CommandPalette.tsx +4 -4
- package/src/renderer/components/settings/SettingsTabs.tsx +50 -55
- package/src/renderer/components/settings/SettingsView.tsx +30 -35
- package/src/renderer/components/settings/components/SettingsSectionHeader.tsx +5 -1
- package/src/renderer/components/settings/components/SettingsSelect.tsx +5 -3
- package/src/renderer/components/settings/components/SettingsToggle.tsx +2 -2
- package/src/renderer/components/settings/sections/AdvancedSection.tsx +11 -42
- package/src/renderer/components/settings/sections/CliStatusSection.tsx +72 -113
- package/src/renderer/components/settings/sections/ConfigEditorDialog.tsx +1 -1
- package/src/renderer/components/settings/sections/GeneralSection.tsx +11 -3
- package/src/renderer/components/settings/sections/HarnessSection.tsx +18 -14
- package/src/renderer/components/settings/sections/PlatformsSection.tsx +3 -3
- package/src/renderer/components/settings/sections/TaskBusSection.tsx +33 -40
- package/src/renderer/components/settings/sections/index.ts +0 -1
- package/src/renderer/components/sidebar/SessionFiltersPopover.tsx +1 -1
- package/src/renderer/components/sidebar/SessionItem.tsx +3 -3
- package/src/renderer/components/sidebar/SidebarSessions.tsx +184 -6
- package/src/renderer/components/sidebar/SidebarTaskItem.tsx +4 -4
- package/src/renderer/components/sidebar/WorkspaceBrowser.tsx +40 -5
- package/src/renderer/components/splash/splashScene.ts +121 -929
- package/src/renderer/components/system-manager/FolderBrowser.tsx +163 -0
- package/src/renderer/components/system-manager/SystemManagerView.tsx +351 -0
- package/src/renderer/components/tasks/TasksView.tsx +112 -134
- package/src/renderer/components/team/CcSessionsSection.tsx +431 -89
- package/src/renderer/components/team/ClaudeLogsFilterPopover.tsx +1 -1
- package/src/renderer/components/team/ClaudeLogsPanel.tsx +1 -1
- package/src/renderer/components/team/CollapsibleTeamSection.tsx +17 -32
- package/src/renderer/components/team/ProcessesSection.tsx +2 -2
- package/src/renderer/components/team/TaskTooltip.tsx +2 -2
- package/src/renderer/components/team/TeamDetailView.tsx +319 -123
- package/src/renderer/components/team/TeamListFilterPopover.tsx +1 -1
- package/src/renderer/components/team/TeamListView.tsx +109 -124
- package/src/renderer/components/team/TeamSessionsSection.tsx +6 -6
- package/src/renderer/components/team/UnreadCommentsBadge.tsx +1 -1
- package/src/renderer/components/team/activity/ActivityItem.tsx +9 -9
- package/src/renderer/components/team/activity/ActivityTimeline.tsx +5 -5
- package/src/renderer/components/team/activity/LeadThoughtsGroup.tsx +3 -3
- package/src/renderer/components/team/activity/ReplyQuoteBlock.tsx +4 -4
- package/src/renderer/components/team/dialogs/CreateTaskDialog.tsx +4 -4
- package/src/renderer/components/team/dialogs/CreateTeamDialog.tsx +84 -306
- package/src/renderer/components/team/dialogs/EditTeamDialog.tsx +259 -342
- package/src/renderer/components/team/dialogs/GlobalTaskDetailDialog.tsx +1 -1
- package/src/renderer/components/team/dialogs/LaunchTeamDialog.tsx +18 -16
- package/src/renderer/components/team/dialogs/PlatformBindingDialog.tsx +221 -0
- package/src/renderer/components/team/dialogs/PlatformManualForm.tsx +8 -1
- package/src/renderer/components/team/dialogs/PlatformSetupQR.tsx +5 -5
- package/src/renderer/components/team/dialogs/RuntimeConfigDialog.tsx +361 -0
- package/src/renderer/components/team/dialogs/SendMessageDialog.tsx +6 -6
- package/src/renderer/components/team/dialogs/SkipPermissionsCheckbox.tsx +6 -6
- package/src/renderer/components/team/dialogs/StatusHistoryTimeline.tsx +1 -1
- package/src/renderer/components/team/dialogs/TaskAttachments.tsx +1 -1
- package/src/renderer/components/team/dialogs/TaskCommentInput.tsx +6 -6
- package/src/renderer/components/team/dialogs/TaskCommentsSection.tsx +4 -4
- package/src/renderer/components/team/dialogs/TaskDetailDialog.tsx +3 -3
- package/src/renderer/components/team/dialogs/platformMeta.ts +122 -11
- package/src/renderer/components/team/dialogs/useTeamEditForm.ts +17 -5
- package/src/renderer/components/team/editor/EditorFileTree.tsx +4 -4
- package/src/renderer/components/team/editor/EditorSearchPanel.tsx +1 -1
- package/src/renderer/components/team/editor/MarkdownSplitView.tsx +1 -1
- package/src/renderer/components/team/editor/NewFileDialog.tsx +1 -1
- package/src/renderer/components/team/editor/ProjectEditorOverlay.tsx +1 -1
- package/src/renderer/components/team/editor/SearchInFilesPanel.tsx +1 -1
- package/src/renderer/components/team/kanban/KanbanBoard.tsx +9 -9
- package/src/renderer/components/team/kanban/KanbanFilterPopover.tsx +4 -4
- package/src/renderer/components/team/kanban/KanbanSearchInput.tsx +1 -1
- package/src/renderer/components/team/kanban/KanbanSortPopover.tsx +5 -5
- package/src/renderer/components/team/kanban/KanbanTaskCard.tsx +4 -4
- package/src/renderer/components/team/members/MemberCard.tsx +14 -47
- package/src/renderer/components/team/members/MemberDetailDialog.tsx +3 -95
- package/src/renderer/components/team/members/MemberDetailStats.tsx +50 -65
- package/src/renderer/components/team/members/MemberDraftRow.tsx +1 -1
- package/src/renderer/components/team/members/MemberStatsTab.tsx +2 -2
- package/src/renderer/components/team/members/MemberWorkspaceTab.tsx +1 -1
- package/src/renderer/components/team/messages/MessageComposer.tsx +10 -112
- package/src/renderer/components/team/messages/MessagesFilterPopover.tsx +1 -1
- package/src/renderer/components/team/messages/MessagesPanel.tsx +136 -119
- package/src/renderer/components/team/review/ChangeReviewDialog.tsx +1 -1
- package/src/renderer/components/team/schedule/ScheduleStatusBadge.tsx +3 -3
- package/src/renderer/components/team/sidebar/TeamSidebarRail.tsx +4 -4
- package/src/renderer/components/team/tasks/TaskRow.tsx +1 -1
- package/src/renderer/components/team/tools/AddMcpInline.tsx +27 -17
- package/src/renderer/components/team/tools/McpChip.tsx +6 -3
- package/src/renderer/components/team/tools/SkillChip.tsx +3 -3
- package/src/renderer/components/team/tools/ToolsSection.tsx +418 -70
- package/src/renderer/components/ui/MemberSelect.tsx +2 -2
- package/src/renderer/components/ui/MentionSuggestionList.tsx +2 -2
- package/src/renderer/components/ui/MentionableTextarea.tsx +3 -3
- package/src/renderer/hooks/useExtensionsTabState.ts +3 -114
- package/src/renderer/index.css +56 -39
- package/src/renderer/index.html +17 -50
- package/src/renderer/store/index.ts +2 -1
- package/src/renderer/store/slices/scheduleSlice.ts +1 -1
- package/src/renderer/store/slices/teamSlice.ts +45 -168
- package/src/renderer/utils/claudeCodeOnlyProviders.ts +3 -10
- package/src/renderer/utils/memberHelpers.ts +5 -17
- package/src/renderer/utils/openCodeRuntimeDeliveryDiagnostics.ts +4 -2
- package/src/renderer/utils/providerSlashCommands.ts +0 -5
- package/src/renderer/utils/scheduleFormatters.ts +3 -1
- package/src/renderer/utils/teamMessageFiltering.ts +14 -1
- package/src/renderer/utils/teamModelAvailability.ts +18 -2
- package/src/shared/types/api.ts +121 -2
- package/src/shared/types/ccConnect.ts +2 -0
- package/src/shared/types/index.ts +3 -0
- package/src/shared/types/systemManager.ts +49 -0
- package/src/shared/types/team.ts +29 -0
- package/src/shared/types/terminal.ts +4 -2
- package/src/shared/utils/extensionNormalizers.ts +15 -8
- package/src/shared/utils/providerExtensionCapabilities.ts +2 -2
- package/dist-renderer/assets/ProjectEditorOverlay-lJZi-9Hp.js +0 -52
- package/dist-renderer/assets/channel-yIlSKy0e.js +0 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-24fHez0s.js +0 -1
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-24fHez0s.js +0 -1
- package/dist-renderer/assets/clone-BTNuUva-.js +0 -1
- package/dist-renderer/assets/index-Bi6nrZ4z.css +0 -1
- package/dist-renderer/assets/splashScene-C8lWNnm4.js +0 -1
- 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-
|
|
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-
|
|
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ℜ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ℜ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-
|
|
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};
|