Replace the composer textarea with a Tiptap markdown editor

The composer now writes markdown with bold, italic, strike, code,
links, quotes and lists, from shortcuts, markdown typing or a bubble
over the selection. @ mentions a bot and # a workspace, shown as chips
and saved as [bot:ID] / [workspace:ID]. Text selected in a message can
be quoted into the composer. User messages render as markdown, and
replies tell the bot who and what the user mentioned.

Adds an ESM stand-in for use-sync-external-store, since bunext keeps
React external in page bundles and the CommonJS original requires it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-20 05:48:23 +01:00
co-authored by Claude Opus 5.5
parent e2093b0df6
commit 1208eac6b7
51 changed files with 1618 additions and 126 deletions
@@ -0,0 +1,21 @@
{
"name": "use-sync-external-store",
"version": "1.7.0-esm",
"description": "ESM stand-in for use-sync-external-store on React 19, which has useSyncExternalStore built in. The page bundler keeps react external, so the upstream CommonJS require(\"react\") can't load in the browser.",
"license": "MIT",
"type": "module",
"sideEffects": false,
"exports": {
".": "./index.js",
"./with-selector": "./with-selector.js",
"./with-selector.js": "./with-selector.js",
"./shim": "./index.js",
"./shim/index.js": "./index.js",
"./shim/with-selector": "./with-selector.js",
"./shim/with-selector.js": "./with-selector.js",
"./package.json": "./package.json"
},
"peerDependencies": {
"react": ">=18"
}
}