summaryrefslogtreecommitdiff
path: root/src/renderer
diff options
context:
space:
mode:
authorhaoyuren <13851610112@163.com>2026-03-13 01:15:01 -0500
committerhaoyuren <13851610112@163.com>2026-03-13 01:15:01 -0500
commit8b3b3be550307598e84c59e3d708e6ee9a3e1beb (patch)
treeeb36e3ccfb64a7ca4ed509efa099dae752fe05a4 /src/renderer
parent52a5c24f5e28a4b2ba8ffb006874cd7b552d60f7 (diff)
Add AGPL-3.0 license and copyright headers to all source files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/renderer')
-rw-r--r--src/renderer/src/App.css3
-rw-r--r--src/renderer/src/App.tsx3
-rw-r--r--src/renderer/src/components/ChatPanel.tsx3
-rw-r--r--src/renderer/src/components/Editor.tsx3
-rw-r--r--src/renderer/src/components/FileTree.tsx3
-rw-r--r--src/renderer/src/components/ModalProvider.tsx3
-rw-r--r--src/renderer/src/components/PdfViewer.tsx3
-rw-r--r--src/renderer/src/components/ProjectList.tsx3
-rw-r--r--src/renderer/src/components/ReviewPanel.tsx3
-rw-r--r--src/renderer/src/components/StatusBar.tsx3
-rw-r--r--src/renderer/src/components/Terminal.tsx3
-rw-r--r--src/renderer/src/components/Toolbar.tsx3
-rw-r--r--src/renderer/src/data/latexCommands.ts3
-rw-r--r--src/renderer/src/data/latexEnvironments.ts3
-rw-r--r--src/renderer/src/extensions/addCommentTooltip.ts3
-rw-r--r--src/renderer/src/extensions/commentHighlights.ts3
-rw-r--r--src/renderer/src/extensions/latexAutocomplete.ts3
-rw-r--r--src/renderer/src/extensions/otSyncExtension.ts3
-rw-r--r--src/renderer/src/extensions/remoteCursors.ts3
-rw-r--r--src/renderer/src/hooks/useModal.ts3
-rw-r--r--src/renderer/src/main.tsx3
-rw-r--r--src/renderer/src/ot/cmAdapter.ts3
-rw-r--r--src/renderer/src/ot/otClient.ts3
-rw-r--r--src/renderer/src/ot/overleafSync.ts3
-rw-r--r--src/renderer/src/ot/transform.ts3
-rw-r--r--src/renderer/src/ot/types.ts3
-rw-r--r--src/renderer/src/stores/appStore.ts3
27 files changed, 81 insertions, 0 deletions
diff --git a/src/renderer/src/App.css b/src/renderer/src/App.css
index 2a681a5..760c333 100644
--- a/src/renderer/src/App.css
+++ b/src/renderer/src/App.css
@@ -1,3 +1,6 @@
+/* Copyright (c) 2026 Yuren Hao */
+/* Licensed under AGPL-3.0 - see LICENSE file */
+
/* ── Reset & Base ─────────────────────────────────────────────── */
* {
diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx
index fb24a36..88a351b 100644
--- a/src/renderer/src/App.tsx
+++ b/src/renderer/src/App.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useEffect, useCallback, useRef, Component, type ReactNode } from 'react'
import { PanelGroup, Panel, PanelResizeHandle } from 'react-resizable-panels'
import { useAppStore } from './stores/appStore'
diff --git a/src/renderer/src/components/ChatPanel.tsx b/src/renderer/src/components/ChatPanel.tsx
index a0638bd..a4c5165 100644
--- a/src/renderer/src/components/ChatPanel.tsx
+++ b/src/renderer/src/components/ChatPanel.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useEffect, useRef, useCallback } from 'react'
import { useAppStore } from '../stores/appStore'
diff --git a/src/renderer/src/components/Editor.tsx b/src/renderer/src/components/Editor.tsx
index 362c705..649b238 100644
--- a/src/renderer/src/components/Editor.tsx
+++ b/src/renderer/src/components/Editor.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useEffect, useRef, useState, useCallback } from 'react'
import { EditorView, keymap, lineNumbers, highlightActiveLine, highlightActiveLineGutter, drawSelection, rectangularSelection } from '@codemirror/view'
import { EditorState } from '@codemirror/state'
diff --git a/src/renderer/src/components/FileTree.tsx b/src/renderer/src/components/FileTree.tsx
index e2f31f1..0dda560 100644
--- a/src/renderer/src/components/FileTree.tsx
+++ b/src/renderer/src/components/FileTree.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useCallback, useEffect, useRef } from 'react'
import { useAppStore, type FileNode } from '../stores/appStore'
diff --git a/src/renderer/src/components/ModalProvider.tsx b/src/renderer/src/components/ModalProvider.tsx
index 75572d5..df8084f 100644
--- a/src/renderer/src/components/ModalProvider.tsx
+++ b/src/renderer/src/components/ModalProvider.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useEffect, useRef } from 'react'
import { useModalStore } from '../hooks/useModal'
diff --git a/src/renderer/src/components/PdfViewer.tsx b/src/renderer/src/components/PdfViewer.tsx
index cbfc857..d4c5558 100644
--- a/src/renderer/src/components/PdfViewer.tsx
+++ b/src/renderer/src/components/PdfViewer.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useEffect, useRef, useState, useCallback } from 'react'
import * as pdfjsLib from 'pdfjs-dist'
import { useAppStore } from '../stores/appStore'
diff --git a/src/renderer/src/components/ProjectList.tsx b/src/renderer/src/components/ProjectList.tsx
index ea71f2b..d5b382c 100644
--- a/src/renderer/src/components/ProjectList.tsx
+++ b/src/renderer/src/components/ProjectList.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useEffect, useCallback, useMemo } from 'react'
import { useAppStore } from '../stores/appStore'
diff --git a/src/renderer/src/components/ReviewPanel.tsx b/src/renderer/src/components/ReviewPanel.tsx
index fe94867..7edac50 100644
--- a/src/renderer/src/components/ReviewPanel.tsx
+++ b/src/renderer/src/components/ReviewPanel.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useState, useEffect, useCallback, useRef } from 'react'
import { useAppStore } from '../stores/appStore'
diff --git a/src/renderer/src/components/StatusBar.tsx b/src/renderer/src/components/StatusBar.tsx
index f24e6d6..5b91833 100644
--- a/src/renderer/src/components/StatusBar.tsx
+++ b/src/renderer/src/components/StatusBar.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useAppStore } from '../stores/appStore'
export default function StatusBar() {
diff --git a/src/renderer/src/components/Terminal.tsx b/src/renderer/src/components/Terminal.tsx
index d84a00c..3781a53 100644
--- a/src/renderer/src/components/Terminal.tsx
+++ b/src/renderer/src/components/Terminal.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useEffect, useRef, useState } from 'react'
import { Terminal as XTerm } from '@xterm/xterm'
import { FitAddon } from '@xterm/addon-fit'
diff --git a/src/renderer/src/components/Toolbar.tsx b/src/renderer/src/components/Toolbar.tsx
index c847a9d..b480ede 100644
--- a/src/renderer/src/components/Toolbar.tsx
+++ b/src/renderer/src/components/Toolbar.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { useAppStore } from '../stores/appStore'
interface ToolbarProps {
diff --git a/src/renderer/src/data/latexCommands.ts b/src/renderer/src/data/latexCommands.ts
index 2e183b1..2e2dad7 100644
--- a/src/renderer/src/data/latexCommands.ts
+++ b/src/renderer/src/data/latexCommands.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// Static LaTeX command/snippet completions
// Each entry: [command, snippet (with $1 tab stops), detail]
// Snippet syntax: $1, $2 etc are tab stops, ${1:placeholder} has default text
diff --git a/src/renderer/src/data/latexEnvironments.ts b/src/renderer/src/data/latexEnvironments.ts
index ff6fab6..2838ad5 100644
--- a/src/renderer/src/data/latexEnvironments.ts
+++ b/src/renderer/src/data/latexEnvironments.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// Static LaTeX environment names for \begin{} completion
// Each entry: [name, detail, snippet body (optional)]
diff --git a/src/renderer/src/extensions/addCommentTooltip.ts b/src/renderer/src/extensions/addCommentTooltip.ts
index dc60bb1..c56df90 100644
--- a/src/renderer/src/extensions/addCommentTooltip.ts
+++ b/src/renderer/src/extensions/addCommentTooltip.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
/**
* CodeMirror extension: "Add comment" tooltip on text selection.
* Inspired by Overleaf's review-tooltip.ts.
diff --git a/src/renderer/src/extensions/commentHighlights.ts b/src/renderer/src/extensions/commentHighlights.ts
index 3994060..3215026 100644
--- a/src/renderer/src/extensions/commentHighlights.ts
+++ b/src/renderer/src/extensions/commentHighlights.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
/**
* CodeMirror extension for highlighting commented text ranges.
* Inspired by Overleaf's ranges.ts — renders Decoration.mark for each comment
diff --git a/src/renderer/src/extensions/latexAutocomplete.ts b/src/renderer/src/extensions/latexAutocomplete.ts
index d5f8c75..a151876 100644
--- a/src/renderer/src/extensions/latexAutocomplete.ts
+++ b/src/renderer/src/extensions/latexAutocomplete.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import {
autocompletion,
type CompletionContext,
diff --git a/src/renderer/src/extensions/otSyncExtension.ts b/src/renderer/src/extensions/otSyncExtension.ts
index 7ff2203..c4171a3 100644
--- a/src/renderer/src/extensions/otSyncExtension.ts
+++ b/src/renderer/src/extensions/otSyncExtension.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// CM6 extension for OT sync: ViewPlugin + annotation to prevent echo loops
import { Annotation } from '@codemirror/state'
import { ViewPlugin, type ViewUpdate } from '@codemirror/view'
diff --git a/src/renderer/src/extensions/remoteCursors.ts b/src/renderer/src/extensions/remoteCursors.ts
index 522d15d..cf07857 100644
--- a/src/renderer/src/extensions/remoteCursors.ts
+++ b/src/renderer/src/extensions/remoteCursors.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// CM6 extension for rendering remote collaborator cursors
import { StateEffect, StateField } from '@codemirror/state'
import { Decoration, type DecorationSet, EditorView, WidgetType } from '@codemirror/view'
diff --git a/src/renderer/src/hooks/useModal.ts b/src/renderer/src/hooks/useModal.ts
index fdf6eb3..911f619 100644
--- a/src/renderer/src/hooks/useModal.ts
+++ b/src/renderer/src/hooks/useModal.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { create } from 'zustand'
interface ModalState {
diff --git a/src/renderer/src/main.tsx b/src/renderer/src/main.tsx
index 136bef2..e6e2ba9 100644
--- a/src/renderer/src/main.tsx
+++ b/src/renderer/src/main.tsx
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
diff --git a/src/renderer/src/ot/cmAdapter.ts b/src/renderer/src/ot/cmAdapter.ts
index 852402d..87c23bf 100644
--- a/src/renderer/src/ot/cmAdapter.ts
+++ b/src/renderer/src/ot/cmAdapter.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// Bidirectional conversion: CM6 ChangeSet <-> Overleaf OT ops
import type { ChangeSet, Text, ChangeSpec } from '@codemirror/state'
import type { OtOp, InsertOp, DeleteOp } from './types'
diff --git a/src/renderer/src/ot/otClient.ts b/src/renderer/src/ot/otClient.ts
index a491d23..4a0a873 100644
--- a/src/renderer/src/ot/otClient.ts
+++ b/src/renderer/src/ot/otClient.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// OT state machine: Synchronized / AwaitingConfirm / AwaitingWithBuffer
import type { OtOp, OtState } from './types'
import { transformOps } from './transform'
diff --git a/src/renderer/src/ot/overleafSync.ts b/src/renderer/src/ot/overleafSync.ts
index e6169fc..787a458 100644
--- a/src/renderer/src/ot/overleafSync.ts
+++ b/src/renderer/src/ot/overleafSync.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// Per-document orchestrator: ties CM6 adapter to OT client, IPC bridge
import type { EditorView } from '@codemirror/view'
import { ChangeSet, Transaction, type Text } from '@codemirror/state'
diff --git a/src/renderer/src/ot/transform.ts b/src/renderer/src/ot/transform.ts
index 846e312..d416a4a 100644
--- a/src/renderer/src/ot/transform.ts
+++ b/src/renderer/src/ot/transform.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// OT transform functions for Overleaf's text operation format
import type { OtOp } from './types'
import { isInsert, isDelete, isComment } from './types'
diff --git a/src/renderer/src/ot/types.ts b/src/renderer/src/ot/types.ts
index 2732e4f..34e3ff5 100644
--- a/src/renderer/src/ot/types.ts
+++ b/src/renderer/src/ot/types.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
// OT type definitions for Overleaf's text operation format
/** Insert text at position p */
diff --git a/src/renderer/src/stores/appStore.ts b/src/renderer/src/stores/appStore.ts
index 867026c..9e1e141 100644
--- a/src/renderer/src/stores/appStore.ts
+++ b/src/renderer/src/stores/appStore.ts
@@ -1,3 +1,6 @@
+// Copyright (c) 2026 Yuren Hao
+// Licensed under AGPL-3.0 - see LICENSE file
+
import { create } from 'zustand'
export interface FileNode {