From 81e434506d1d39765533675a1b8ffccb49a34fb0 Mon Sep 17 00:00:00 2001 From: naaiyy Date: Sun, 6 Sep 2026 22:17:33 +0200 Subject: [PATCH] Adopt OpenEditor 1.0 and migrate stored custom blocks --- .../emoji-data/[locale]/[file]/route.ts | 18 -- .../features/marketing/openeditor-demo.tsx | 49 +++--- .../openeditor/extensions/library.tsx | 4 +- .../features/openeditor/extensions/search.tsx | 4 +- .../openeditor/openeditor-page-editor.tsx | 61 ++++--- .../features/openeditor/openeditor-theme.ts | 2 +- apps/web/features/openeditor/page-tabs.tsx | 2 +- .../features/published-sites/page-content.tsx | 4 +- apps/web/package.json | 9 +- bun.lock | 166 +++++++----------- bunfig.toml | 5 +- package.json | 38 +--- packages/backend/convex/_generated/api.d.ts | 2 + packages/backend/convex/aiWorkspaces.ts | 5 +- .../backend/convex/contentMigrations.test.ts | 158 +++++++++++++++++ packages/backend/convex/contentMigrations.ts | 85 +++++++++ .../model/aiWorkspaceFingerprint.test.ts | 2 +- .../convex/model/aiWorkspaceFingerprint.ts | 2 +- .../backend/convex/model/releaseDiff.test.ts | 5 +- .../backend/convex/pageContentFormat.test.ts | 4 +- packages/backend/package.json | 4 +- packages/custom-blocks/package.json | 9 +- .../src/decision-tree-editor.tsx | 2 +- .../custom-blocks/src/directory-editor.tsx | 2 +- packages/custom-blocks/src/index.ts | 36 ---- packages/custom-blocks/src/migrations.ts | 80 +++++++++ .../src/quick-link-asset-loader.ts | 2 +- .../custom-blocks/src/quick-link-dialog.tsx | 16 +- .../src/quick-link-editor-asset.tsx | 2 +- .../custom-blocks/src/quick-links-editor.tsx | 2 +- .../custom-blocks/src/quick-links.test.ts | 4 +- packages/custom-blocks/src/viewer.tsx | 4 +- packages/openeditor-contracts/package.json | 8 +- packages/openeditor-contracts/src/index.ts | 92 +++------- .../src/snapshots/fingerprints.ts | 74 ++++++++ .../src/snapshots/index.ts | 3 + .../src/snapshots/mutation.test.ts | 155 ++++++++++++++++ .../src/snapshots/mutation.ts | 92 ++++++++++ .../src/snapshots/types.ts | 92 ++++++++++ 39 files changed, 941 insertions(+), 363 deletions(-) delete mode 100644 apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts create mode 100644 packages/backend/convex/contentMigrations.test.ts create mode 100644 packages/backend/convex/contentMigrations.ts create mode 100644 packages/custom-blocks/src/migrations.ts create mode 100644 packages/openeditor-contracts/src/snapshots/fingerprints.ts create mode 100644 packages/openeditor-contracts/src/snapshots/index.ts create mode 100644 packages/openeditor-contracts/src/snapshots/mutation.test.ts create mode 100644 packages/openeditor-contracts/src/snapshots/mutation.ts create mode 100644 packages/openeditor-contracts/src/snapshots/types.ts diff --git a/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts b/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts deleted file mode 100644 index 03f10509..00000000 --- a/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { createOpenEditorEmojiDataResponse } from "@openeditor/document/emoji"; - -export const dynamic = "force-static"; - -export function generateStaticParams() { - return [ - { locale: "en", file: "data.json" }, - { locale: "en", file: "messages.json" }, - ]; -} - -export async function GET( - _request: Request, - { params }: { params: Promise<{ locale: string; file: string }> }, -) { - const { locale, file } = await params; - return createOpenEditorEmojiDataResponse(locale, file); -} diff --git a/apps/web/features/marketing/openeditor-demo.tsx b/apps/web/features/marketing/openeditor-demo.tsx index ae36f911..779c2ec1 100644 --- a/apps/web/features/marketing/openeditor-demo.tsx +++ b/apps/web/features/marketing/openeditor-demo.tsx @@ -9,12 +9,13 @@ import { import { OpenEditorContent, useOpenEditorController } from "@openeditor/react"; import { OpenEditorBlockMenu, + OpenEditorEmojiPickerProvider, OpenEditorSelectionBubble, OpenEditorSlashMenu, OpenEditorTableMenu, OpenEditorThemeProvider, -} from "@openeditor/ui"; -import "@openeditor/ui/styles.css"; +} from "@openeditor/react"; +import "@openeditor/react/styles.css"; import { useRef } from "react"; import { EditorParticleField } from "./editor-particle-field"; @@ -291,28 +292,30 @@ export function OpenEditorDemo() { }); return ( - -
-