From b5c2c9c8b8626be2381ef87080ddd62e99877693 Mon Sep 17 00:00:00 2001
From: Amr Mohammed El-Sheraey <141947355+AmrMsCLL@users.noreply.github.com>
Date: Sun, 11 Oct 2026 13:12:00 +0300
Subject: [PATCH] feat: one page frame, themed controls and create buttons in
one place across Strata
Every page now uses the shared Page frame with its actions in the header, every
create action opens a dialog from a button on the right, and every select, date
and time field uses the themed graphite-ui 0.4.0 controls.
---
app/frontend/package.json | 2 +-
app/frontend/src/App.tsx | 11 +-
app/frontend/src/choices.ts | 23 ++
app/frontend/src/components/CopyLink.tsx | 24 +-
app/frontend/src/components/DatePoll.tsx | 11 +-
app/frontend/src/components/DevicePush.tsx | 16 +-
app/frontend/src/components/EventEditor.tsx | 75 ++--
app/frontend/src/components/ImportPages.tsx | 15 +-
app/frontend/src/components/NoteHistory.tsx | 2 +-
app/frontend/src/components/NoteMark.tsx | 10 +
app/frontend/src/components/Page.tsx | 72 ++++
app/frontend/src/components/PageTree.tsx | 16 +-
app/frontend/src/components/SearchPalette.tsx | 5 +-
app/frontend/src/components/SplitEditor.tsx | 17 +-
.../src/components/StatementImport.tsx | 56 +--
.../src/components/SubscriptionEditor.tsx | 125 +++----
app/frontend/src/components/TaskEditor.tsx | 178 +++++----
.../src/components/database/DatabaseView.tsx | 20 +-
.../components/database/PropertiesDialog.tsx | 37 +-
.../src/components/database/PropertyField.tsx | 33 +-
app/frontend/src/dashboard/Dashboard.tsx | 343 +++++++++---------
app/frontend/src/dashboard/capture-widget.tsx | 11 +-
.../src/dashboard/outside-widgets.tsx | 38 +-
app/frontend/src/dashboard/widgets.tsx | 129 +++----
app/frontend/src/navigation.tsx | 8 +-
app/frontend/src/pages/AdminPage.tsx | 8 +-
app/frontend/src/pages/AgendaPage.tsx | 54 +--
app/frontend/src/pages/BookmarksPage.tsx | 65 ++--
app/frontend/src/pages/CalendarsPage.tsx | 125 +++----
app/frontend/src/pages/EventPage.tsx | 67 ++--
app/frontend/src/pages/InboxPage.tsx | 60 +--
app/frontend/src/pages/InvitationsPage.tsx | 202 ++++++-----
app/frontend/src/pages/JournalPage.tsx | 23 +-
app/frontend/src/pages/MenuPage.tsx | 12 +-
app/frontend/src/pages/PagesIndex.tsx | 69 ++--
app/frontend/src/pages/RecurringPage.tsx | 42 ++-
app/frontend/src/pages/SavePage.tsx | 15 +-
app/frontend/src/pages/TidyPage.tsx | 8 +-
app/frontend/src/pages/TodayPage.tsx | 8 +-
app/frontend/src/pages/TrashPage.tsx | 12 +-
.../src/pages/settings/ApiSettings.tsx | 31 +-
.../src/pages/settings/DataSettings.tsx | 7 +-
.../src/pages/settings/DeveloperSettings.tsx | 11 +
.../src/pages/settings/ProfileSettings.tsx | 120 +++---
.../src/pages/settings/SecurityLog.tsx | 10 +-
.../src/pages/settings/SecuritySettings.tsx | 9 +-
...ssionsSettings.tsx => SessionsSection.tsx} | 16 +-
.../src/pages/settings/SettingsLayout.tsx | 26 +-
.../src/pages/settings/TokensSettings.tsx | 29 +-
app/frontend/src/pages/spaces/SpaceHabits.tsx | 113 ++----
.../src/pages/spaces/SpaceInvitations.tsx | 137 +++----
app/frontend/src/pages/spaces/SpaceLayout.tsx | 19 +-
.../src/pages/spaces/SpaceMembers.tsx | 41 ++-
app/frontend/src/pages/spaces/SpaceNotes.tsx | 62 ++--
.../src/pages/spaces/SpaceSubscriptions.tsx | 23 +-
app/frontend/src/pages/spaces/SpaceTags.tsx | 160 ++++----
app/frontend/src/pages/spaces/SpaceTasks.tsx | 264 ++++++--------
app/frontend/src/pages/spaces/SpacesPage.tsx | 121 +++---
app/frontend/src/pages/spaces/TidyRules.tsx | 241 ++++++------
app/frontend/src/spaces.tsx | 41 ++-
app/frontend/src/styles/global.css | 74 +++-
app/frontend/src/subscriptions.ts | 2 +
app/frontend/src/tasks.tsx | 14 +-
app/frontend/src/useResource.ts | 5 +-
app/frontend/test/activity.spec.tsx | 3 +-
app/frontend/test/agenda.spec.tsx | 12 +-
app/frontend/test/bookmarks.spec.tsx | 1 +
app/frontend/test/calendars.spec.tsx | 3 +-
app/frontend/test/controls.ts | 30 ++
app/frontend/test/dashboard.spec.tsx | 36 +-
app/frontend/test/habits.spec.tsx | 6 +-
app/frontend/test/invitations.spec.tsx | 6 +-
app/frontend/test/notes.spec.tsx | 17 +-
app/frontend/test/share.spec.tsx | 4 +-
app/frontend/test/spaces.spec.tsx | 5 +-
app/frontend/test/subscriptions.spec.tsx | 13 +-
app/frontend/test/tasks.spec.tsx | 21 +-
app/frontend/test/tidy.spec.tsx | 11 +-
app/package-lock.json | 8 +-
app/server/src/auth/auth.service.ts | 2 +-
80 files changed, 1898 insertions(+), 1903 deletions(-)
create mode 100644 app/frontend/src/choices.ts
create mode 100644 app/frontend/src/components/NoteMark.tsx
create mode 100644 app/frontend/src/components/Page.tsx
create mode 100644 app/frontend/src/pages/settings/DeveloperSettings.tsx
rename app/frontend/src/pages/settings/{SessionsSettings.tsx => SessionsSection.tsx} (89%)
create mode 100644 app/frontend/test/controls.ts
diff --git a/app/frontend/package.json b/app/frontend/package.json
index fcb4e0f..46f098c 100644
--- a/app/frontend/package.json
+++ b/app/frontend/package.json
@@ -28,7 +28,7 @@
"@excalidraw/excalidraw": "0.18.1",
"@hocuspocus/provider": "4.7.0",
"@mozilla/readability": "0.6.0",
- "@project-graphite/ui": "https://github.com/project-graphite/graphite-ui/releases/download/v0.3.0/project-graphite-ui-0.3.0.tgz",
+ "@project-graphite/ui": "https://github.com/project-graphite/graphite-ui/releases/download/v0.4.0/project-graphite-ui-0.4.0.tgz",
"@tiptap/core": "3.31.4",
"@tiptap/extension-collaboration": "3.31.4",
"@tiptap/extension-collaboration-caret": "3.31.4",
diff --git a/app/frontend/src/App.tsx b/app/frontend/src/App.tsx
index 9619d66..1d06faa 100644
--- a/app/frontend/src/App.tsx
+++ b/app/frontend/src/App.tsx
@@ -26,13 +26,11 @@ import { ForgotPasswordPage, ResetPasswordPage } from './pages/PasswordPages';
import { RegisterPage } from './pages/RegisterPage';
import { RsvpPage, SharePage } from './pages/RsvpPages';
import { SavePage } from './pages/SavePage';
-import { ApiSettings } from './pages/settings/ApiSettings';
import { DataSettings } from './pages/settings/DataSettings';
+import { DeveloperSettings } from './pages/settings/DeveloperSettings';
import { ProfileSettings } from './pages/settings/ProfileSettings';
import { SecuritySettings } from './pages/settings/SecuritySettings';
-import { SessionsSettings } from './pages/settings/SessionsSettings';
import { SettingsLayout } from './pages/settings/SettingsLayout';
-import { TokensSettings } from './pages/settings/TokensSettings';
import { SpaceActivity } from './pages/spaces/SpaceActivity';
import { SpaceItems } from './pages/spaces/SpaceItems';
import { SpaceLayout } from './pages/spaces/SpaceLayout';
@@ -282,9 +280,10 @@ export function App() {
>
{link}
-