Skip to content
Merged

Dev #91

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5c4b7ab
refactor: initialize project for V1
zeim839 Jun 14, 2025
4f76136
feat: macwindow tauri plugin
zeim839 Jun 15, 2025
0bb97f9
feat: add lib/utils.ts
zeim839 Jun 15, 2025
c652e3b
feat: create window component
zeim839 Jun 15, 2025
cc04584
refactor: remove stock nextjs assets
zeim839 Jun 16, 2025
556efb2
feat: resizable sidebars
zeim839 Jun 16, 2025
d97b79a
feat: add Iosevka Comfy font
zeim839 Jun 16, 2025
7c0979d
feat: create buffer, tab components
zeim839 Jun 16, 2025
1397f4e
fix: increase z-axis on tooltips
zeim839 Jun 16, 2025
d768ee7
refactor: use slots pattern for sidebar management
zeim839 Jun 16, 2025
b257788
refactor: rename components/ui to components/core
zeim839 Jun 17, 2025
ff233ed
build: add rust release target optimizations
zeim839 Jun 17, 2025
e25f1ff
feat: compose main window using slot pattern
zeim839 Jun 17, 2025
b7618c1
feat: created AgentPanel mock
zeim839 Jun 17, 2025
7e4c072
feat: created Explorer (file explorer) mock
zeim839 Jun 17, 2025
17d8792
feat: create dropdown-menu
zeim839 Jun 18, 2025
b908388
nextjs: disable devIndicators
zeim839 Jun 18, 2025
530ffca
feat: create buffer prototype
zeim839 Jun 18, 2025
b875b5f
feat: implement window splitting, resizing, and tab handling
zeim839 Jun 20, 2025
16cd93a
fix: make file explorer icons smaller
zeim839 Jun 20, 2025
04dba79
feat: initialize Helsync cargo project
zeim839 Jun 20, 2025
8020367
feat: create helsync cmd program
zeim839 Jun 21, 2025
0304474
feat: create cmd database module
zeim839 Jun 21, 2025
0588de5
feat: helsync database models
zeim839 Jun 21, 2025
b7811ec
feat: initialize cmd commands submodule
zeim839 Jun 23, 2025
a02d63e
feat: create drive command
zeim839 Jun 23, 2025
6f446ac
feat: create filesystem command
zeim839 Jun 23, 2025
847a75f
feat: create merge/status prototypes
zeim839 Jun 24, 2025
ec3c9a6
added lib.rs
zeim839 Jun 24, 2025
33fff67
feat: oauth2 module
zeim839 Jun 25, 2025
4bf9aa3
added token.rs
zeim839 Jun 26, 2025
d105af0
added pkce.rs
zeim839 Jun 26, 2025
54c5e69
added grant.rs
zeim839 Jun 26, 2025
8c8d5c0
feat: implement config.rs & utils.rs
zeim839 Jun 27, 2025
ce2b28c
feat: initialize database module
zeim839 Jun 29, 2025
8ff7fa9
feat: create database.rs
zeim839 Jun 29, 2025
aaaf193
feat: implement sqlx database migrations
zeim839 Jun 29, 2025
4338259
feat: initialize filesystem module
zeim839 Jun 30, 2025
21cba12
added utils.rs
zeim839 Jul 1, 2025
a8f5def
feat: create client
zeim839 Jul 1, 2025
a69b189
feat: create filesystem trait
zeim839 Jul 1, 2025
6ba3692
googledrive cloud filesystem API client
zeim839 Jul 3, 2025
990782b
onedrive cloud filesystem API client
zeim839 Jul 4, 2025
cbd20a5
local virtual filesystem
zeim839 Jul 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 35 additions & 46 deletions app/globals.css
Original file line number Diff line number Diff line change
@@ -1,12 +1,40 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import "tailwindcss";

:root {
--background: #DCE0E8;
--foreground: #000000;
}

@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}

@media (prefers-color-scheme: dark) {
:root {
--background: #0a0a0a;
--foreground: #ededed;
}
}

body {
font-family: 'Iosevka Comfy', monospace;
background-color: rgba(245, 245, 245, 0.9);
width: 100%;
height: 100%;
font-family: 'Iosevka Comfy', monospace;
background: var(--background);
color: var(--foreground);
width: 100vw;
height: 100vh;
overflow: hidden;
}

.scrollbar-hide {
-ms-overflow-style: none;
scrollbar-width: none;
}

.scrollbar-hide::-webkit-scrollbar {
display: none;
}

@font-face {
Expand Down Expand Up @@ -120,42 +148,3 @@ body {
font-style: normal;
font-display: swap;
}

@layer base {
:root {
--background: 0 0% 96.08%;
--foreground: 0 0% 3.9%;
--card: 0 0% 100%;
--card-foreground: 0 0% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 0 0% 3.9%;
--primary: 0 0% 100%;
--primary-foreground: 0 0% 0%;
--secondary: 0 0% 96.1%;
--secondary-foreground: 0 0% 9%;
--muted: 0 0% 96.1%;
--muted-foreground: 0 0% 45.1%;
--accent: 0 0% 96.1%;
--accent-foreground: 0 0% 9%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 0 0% 89.8%;
--input: 0 0% 89.8%;
--ring: 0 0% 3.9%;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
--radius: 0.5rem;
}
}

@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
30 changes: 4 additions & 26 deletions app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,34 +1,12 @@
import type { Metadata } from "next"
import { DatabaseProvider } from "@/components/DatabaseProvider"
import Navigation from "@/components/navigation/Navigation"
import { Toaster } from "@/components/ui/sonner"
import "./globals.css"
"use client"

export const metadata: Metadata = {
title: "NoteFeratu",
description: "NoteFeratu is a plain-text personal knowledge management system with LLM capabilities",
}
import "./globals.css"

export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
export default function RootLayout({children}: Readonly<{children: React.ReactNode}>) {
return (
<html lang="en">
<body>
<DatabaseProvider>
<Navigation>
{children}
</Navigation>
</DatabaseProvider>
<Toaster toastOptions={{
style: {
border: '2px solid black',
fontSize: '14px',
},
closeButton: true
}} />
{children}
</body>
</html>
)
Expand Down
7 changes: 0 additions & 7 deletions app/note/page.tsx

This file was deleted.

63 changes: 59 additions & 4 deletions app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,66 @@
"use client"

import Graph from "@/components/graph"
import { Window, WindowProvider } from "@/components/window/window"
import { Explorer } from "@/components/explorer/explorer"
import { AgentPanel } from "@/components/agent/agentpanel"
import { Button } from "@/components/core/button"
import { BufferGroup } from "@/components/buffer/group"
import { useState } from "react"

import {
PanelLeftDashedIcon,
SettingsIcon,
MessageSquareTextIcon,
SearchIcon,
FolderSyncIcon,
CirclePlusIcon,
} from "lucide-react"

export default function Home() {
const [isLeftSidebarOpen, setLeftSidebarOpen] = useState<boolean>(false)
const [isRightSidebarOpen, setRightSidebarOpen] = useState<boolean>(false)
return (
<div className="w-full h-full flex items-center justify-center">
<Graph />
</div>
<WindowProvider
isLeftSidebarOpen={isLeftSidebarOpen}
isRightSidebarOpen={isRightSidebarOpen}
setLeftSidebarOpen={setLeftSidebarOpen}
setRightSidebarOpen={setRightSidebarOpen}
>
<Window>
<Window.Titlebar>
<Window.Titlebar.ToolGroup>
<Button variant="ghost" size="icon" tooltip="File Explorer" onClick={() => setLeftSidebarOpen(!isLeftSidebarOpen)}>
<PanelLeftDashedIcon strokeWidth={1.6} />
</Button>
<Button variant="ghost" size="icon" tooltip="Cloud Sync">
<FolderSyncIcon strokeWidth={1.6} />
</Button>
<Button variant="ghost" size="icon" tooltip="Search & Command">
<SearchIcon strokeWidth={1.6} />
</Button>
</Window.Titlebar.ToolGroup>
<Window.Titlebar.ToolGroup>
<Button variant="ghost" size="icon" tooltip="New Document">
<CirclePlusIcon strokeWidth={1.6} />
</Button>
<Button variant="ghost" size="icon" tooltip="Agent Panel" onClick={() => setRightSidebarOpen(!isRightSidebarOpen)}>
<MessageSquareTextIcon strokeWidth={1.6} />
</Button>
<Button variant="ghost" size="icon" tooltip="Settings">
<SettingsIcon strokeWidth={1.6} />
</Button>
</Window.Titlebar.ToolGroup>
</Window.Titlebar>
<Window.LeftSidebar>
<Explorer />
</Window.LeftSidebar>
<Window.Content>
<BufferGroup />
</Window.Content>
<Window.RightSidebar>
<AgentPanel />
</Window.RightSidebar>
</Window>
</WindowProvider>
)
}
21 changes: 0 additions & 21 deletions components.json

This file was deleted.

70 changes: 0 additions & 70 deletions components/DatabaseProvider.tsx

This file was deleted.

60 changes: 60 additions & 0 deletions components/agent/agentpanel.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"use client"

import * as React from "react"
import { Sidebar } from "@/components/window/sidebar"
import { Button } from "@/components/core/button"

import {
ChevronDownIcon,
ZapIcon,
SlidersHorizontalIcon,
SendHorizontalIcon,
PaperclipIcon,
FileTextIcon,
PlusIcon,
} from "lucide-react"

function AgentPanel() {
return (
<div className="w-full min-w-[200px] h-full flex flex-col justify-between">
<Sidebar.Header className="flex flex-row justify-between items-center px-1">
<div className="flex flex-row items-center gap-1 pl-1">
<p className="text-xs">New Conversation</p>
<Button variant="ghost" size="icon">
<ChevronDownIcon strokeWidth={1.6} />
</Button>
</div>
<div className="flex flex-row">
<Button variant="ghost" size="icon" tooltip="LLM Capabilities">
<ZapIcon strokeWidth={1.6} />
</Button>
<Button variant="ghost" size="icon" tooltip="Model Configuration">
<SlidersHorizontalIcon strokeWidth={1.6} />
</Button>
</div>
</Sidebar.Header>
<div className="w-full h-[107px] bg-[#E5E9EF] outline outline-[#AEB3C0] grid grid-rows-[auto_32px]">
<div className="bg-[#EDF0F4] p-2 flex flex-col justify-between">
<p className="text-sm">Ask Anything</p>
<div className="flex flex-row justify-end">
<Button variant="ghost" size="icon">
<SendHorizontalIcon strokeWidth={1.6} />
</Button>
</div>
</div>
<div className="w-full bg-[#E5E9EF] outline outline-[#AEB3C0] flex flex-row">
<div className="w-[36px] h-full outline outline-[#AEB3C0] flex items-center justify-center px-1 hover:bg-[#DCE0E8]">
<PaperclipIcon strokeWidth={1.6} className="h-[17px]"/>
<PlusIcon strokeWidth={1.6} className="w-[14px]" />
</div>
<div className="h-full w-[120px] bg-[#EDF0F4] outline outline-[#AEB3C0] flex flex-row items-center">
<FileTextIcon strokeWidth={1.6} className="h-[14px]" />
<p className="text-xs text-light">CIS4301_hw2.md</p>
</div>
</div>
</div>
</div>
)
}

export { AgentPanel }
Loading
Loading