You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dd04158
Browse filesBrowse the repository at this point in the historyBrowse files
@@ -185,9 +202,52 @@ export function NoteGenComponentGallery({ lang }: { lang: NoteGenReplicaLanguage
185
202
</div>
186
203
</GallerySection>
187
204
205
+
<GallerySection
206
+
id="workspaces"
207
+
eyebrow="03 · Workspace replicas"
208
+
title={text("记录、写作、Agent 与画布","Capture, writing, Agent, and canvas")}
209
+
description={text("每个工作区都由更小的列表、工具栏、内容区和状态组件组合而成。","Each workspace is composed from smaller lists, toolbars, content areas, and state components.")}
210
+
>
211
+
<divclassName="grid gap-6">
212
+
<ComponentCardtitle="NoteGenRecordWorkspace"description={text("记录列表与详情","Capture list and detail")}><divclassName="h-[520px] overflow-hidden rounded-lg border"><NoteGenRecordWorkspacelang={lang}/></div></ComponentCard>
<ComponentCardtitle="NoteGenAgentPanel"description={text("消息、思考过程、工具调用与上下文","Messages, reasoning, tool calls, and context")}><divclassName="h-[560px] overflow-hidden rounded-lg border"><NoteGenAgentPanellang={lang}/></div></ComponentCard>
216
+
<ComponentCardtitle="NoteGenCanvasWorkspace"description={text("画布项目、节点、连线和缩放工具","Canvas projects, nodes, edges, and zoom tools")}><divclassName="h-[560px] overflow-hidden rounded-lg border"><NoteGenCanvasWorkspacelang={lang}/></div></ComponentCard>
217
+
</div>
218
+
<ComponentCardtitle="NoteGenAppShell"description={text("当前桌面外壳:平台窗口控制、记录工具与状态栏","Current desktop shell with platform controls, capture toolbar, and status bar")}><NoteGenAppShelllang={lang}><divclassName="grid h-full grid-cols-[28%_42%_30%]"><divclassName="border-r"><NoteGenRecordWorkspacelang={lang}/></div><divclassName="border-r"><NoteGenEditorWorkspacelang={lang}/></div><NoteGenAgentPanellang={lang}/></div></NoteGenAppShell></ComponentCard>
219
+
</div>
220
+
</GallerySection>
221
+
222
+
<GallerySection
223
+
id="mobile"
224
+
eyebrow="04 · Mobile replicas"
225
+
title={text("移动端核心页面","Core mobile screens")}
226
+
description={text("移动端使用独立的手机框架、状态栏、页面标题和底部导航,可按 screen 属性直接切换展示。","Mobile uses a dedicated device frame, status bar, headers, and dock. Select a screen through a single prop.")}
{(["capture","chat","writing","canvas","settings"]asconst).map((screen)=><ComponentCardkey={screen}title={`Mobile · ${screen}`}description={text("代码实时渲染","Rendered live from code")}><NoteGenMobileReplicalang={lang}screen={screen}/></ComponentCard>)}
230
+
</div>
231
+
</GallerySection>
232
+
233
+
<GallerySection
234
+
id="overlays"
235
+
eyebrow="05 · Dialogs and states"
236
+
title={text("全局弹窗、录音与同步状态","Global dialogs, recording, and sync states")}
237
+
description={text("用于文档说明搜索、录音、同步、冲突、图片预览和关闭确认等瞬时界面。","Transient UI for documenting search, recording, sync, conflicts, image viewing, and close confirmation.")}
title={text("从一个控件到完整设置分组","From one control to a complete settings section")}
192
252
description={text(
193
253
"设置页的页面标题、分组、设置项和操作控件都可以单独导入,用真实组件还原任意设置文档。",
@@ -258,16 +318,14 @@ export function NoteGenComponentGallery({ lang }: { lang: NoteGenReplicaLanguage
258
318
259
319
<GallerySection
260
320
id="settings"
261
-
eyebrow="04 · NoteGenSettingsReplica"
321
+
eyebrow="07 · NoteGenSettingsReplica"
262
322
title={text("完整设置页","Complete settings page")}
263
323
description={text(
264
324
"搜索左侧设置项,切换导航,并操作常规设置中的主题与开关。这个完整场景也可以直接放进文档页面。",
265
325
"Search the sidebar, switch sections, and interact with theme and behavior controls. This complete scene can also be embedded directly in documentation."
Copy file name to clipboardExpand all lines: components/notegen/README.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,20 @@
1
1
# NoteGen replica components
2
2
3
+
This folder contains style-only, code-native replicas for documentation and marketing pages. They do not connect to NoteGen stores, Tauri, databases, file APIs, or AI services.
4
+
5
+
## Component families
6
+
7
+
-`app-shell-replica`: platform window controls, capture toolbar, panel handle, app shell, and status bar.
8
+
-`record-replica`: tag chips, capture filters, list items, audio waveform, sidebar, and detail view.
-`settings-replica`: reusable setting rows plus all current NoteGen settings categories and dialog presentation.
13
+
-`mobile-replica`: phone frame, status bar, dock, capture, Agent, writing, and settings screens.
14
+
-`feedback-replica`: global search, recording, sync states, image viewer, confirmation, and activity heatmap.
15
+
16
+
Import every public component from `@/components/notegen`. Display-state props only change the rendered appearance; they intentionally do not implement product behavior.
17
+
3
18
Code-native NoteGen interface replicas for documentation and marketing pages. Import from `@/components/notegen` when composing a complete scene, or import a specific file when the component is used inside the replica implementation.
exportfunctionNoteGenThinkingBlock({ lang ="cn"}: {lang?: NoteGenReplicaLanguage}){
37
+
return<divclassName="rounded-lg border bg-muted/20 p-2.5"><divclassName="flex items-center gap-2 text-[8px] font-medium"><BrainclassName="size-3.5"/>{lang==="en" ? "Thinking" : "思考过程"}<ChevronDownclassName="ml-auto size-3 text-muted-foreground"/></div><pclassName="mt-2 border-l pl-2 text-[8px] leading-4 text-muted-foreground">{lang==="en" ? "I’ll compare the selected notes, identify repeated ideas, and preserve the original references." : "我会对比选中的笔记,识别重复观点,并保留原始引用。"}</p></div>
38
+
}
39
+
40
+
exportfunctionNoteGenToolCall({ type ="search", lang ="cn", status ="done"}: {type?: "search"|"file"|"terminal";lang?: NoteGenReplicaLanguage;status?: "running"|"done"}){
exportfunctionNoteGenAgentComposer({ lang ="cn"}: {lang?: NoteGenReplicaLanguage}){
68
+
return<divclassName="m-2 rounded-xl border bg-background p-2 shadow-sm"><pclassName="min-h-10 px-1 text-[9px] text-muted-foreground">{lang==="en" ? "Ask about your notes, or describe what to create…" : "询问笔记内容,或描述你想创建的内容……"}</p><divclassName="flex items-center gap-2 text-muted-foreground"><PaperclipclassName="size-3.5"/><NoteGenAgentModelControllang={lang}/><spanclassName="ml-auto flex size-7 items-center justify-center rounded-lg bg-foreground text-background"><SendclassName="size-3"/></span></div></div>
69
+
}
70
+
71
+
exportfunctionNoteGenAgentPanel({ lang ="cn", className }: {lang?: NoteGenReplicaLanguage;className?: string}){
72
+
return<asideclassName={cn("flex h-full min-h-0 flex-col bg-background",className)}><NoteGenAgentHeaderlang={lang}/><divclassName="min-h-0 flex-1 space-y-4 overflow-hidden p-3"><NoteGenAgentMessagerole="user">{lang==="en" ? "Turn these fragments into a short design note." : "把这些碎片整理成一篇简短的设计说明。"}</NoteGenAgentMessage><NoteGenAgentMessagerole="assistant"><divclassName="space-y-2"><NoteGenThinkingBlocklang={lang}/><NoteGenExecutionTimelinelang={lang}/><p>{lang==="en" ? "I found three recurring principles: low interruption, progressive structure, and visible context." : "我找到三个反复出现的原则:低打扰、渐进式结构和始终可见的上下文。"}</p></div></NoteGenAgentMessage></div><NoteGenContextTraylang={lang}/><NoteGenAgentComposerlang={lang}/></aside>
0 commit comments