clitrigger 0.2.24 → 0.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +44 -31
  2. package/README_KR.md +44 -31
  3. package/dist/client/assets/AnalyticsPanel-CJF51ov7.js +48 -0
  4. package/dist/client/assets/FloatingComposerController-5A3GJtK4-BqOKhUaC.js +1 -0
  5. package/dist/client/assets/PlannerPageEditor-1-XUcFw6.css +1 -0
  6. package/dist/client/assets/PlannerPageEditor-BJ0DxLsM.js +211 -0
  7. package/dist/client/assets/TaskGraph-B4qlPjjq.js +2 -0
  8. package/dist/client/assets/VaultLayout-Cbz0Dzjt.js +153 -0
  9. package/dist/client/assets/clsx-B-dksMZM.js +1 -0
  10. package/dist/client/assets/index-B_5C2Aov.css +32 -0
  11. package/dist/client/assets/index-Df25dsa5.js +668 -0
  12. package/dist/client/assets/index-Vcq4gwWv.js +1 -0
  13. package/dist/client/assets/style-BZV40eAE.css +1 -0
  14. package/dist/client/assets/style-BeBN7DXF.js +7 -0
  15. package/dist/client/assets/value-BTdN53H7.js +1 -0
  16. package/dist/client/assets/with-selector-bfGVmvLm.js +17 -0
  17. package/dist/client/index.html +2 -2
  18. package/dist/server/db/queries.d.ts.map +1 -1
  19. package/dist/server/db/queries.js +14 -8
  20. package/dist/server/db/queries.js.map +1 -1
  21. package/dist/server/db/schema.d.ts.map +1 -1
  22. package/dist/server/db/schema.js +3 -1
  23. package/dist/server/db/schema.js.map +1 -1
  24. package/dist/server/index.d.ts.map +1 -1
  25. package/dist/server/index.js +47 -25
  26. package/dist/server/index.js.map +1 -1
  27. package/dist/server/lib/jira-client.d.ts.map +1 -1
  28. package/dist/server/lib/jira-client.js +4 -1
  29. package/dist/server/lib/jira-client.js.map +1 -1
  30. package/dist/server/middleware/auth.d.ts +9 -0
  31. package/dist/server/middleware/auth.d.ts.map +1 -1
  32. package/dist/server/middleware/auth.js +95 -17
  33. package/dist/server/middleware/auth.js.map +1 -1
  34. package/dist/server/plugins/jira/router.d.ts.map +1 -1
  35. package/dist/server/plugins/jira/router.js +3 -1
  36. package/dist/server/plugins/jira/router.js.map +1 -1
  37. package/dist/server/routes/files.d.ts.map +1 -1
  38. package/dist/server/routes/files.js +9 -20
  39. package/dist/server/routes/files.js.map +1 -1
  40. package/dist/server/routes/images.d.ts.map +1 -1
  41. package/dist/server/routes/images.js +9 -0
  42. package/dist/server/routes/images.js.map +1 -1
  43. package/dist/server/routes/memory.d.ts.map +1 -1
  44. package/dist/server/routes/memory.js +2 -16
  45. package/dist/server/routes/memory.js.map +1 -1
  46. package/dist/server/routes/projects.d.ts.map +1 -1
  47. package/dist/server/routes/projects.js +42 -12
  48. package/dist/server/routes/projects.js.map +1 -1
  49. package/dist/server/routes/vault.d.ts.map +1 -1
  50. package/dist/server/routes/vault.js +6 -1
  51. package/dist/server/routes/vault.js.map +1 -1
  52. package/dist/server/services/claude-manager.d.ts.map +1 -1
  53. package/dist/server/services/claude-manager.js +15 -0
  54. package/dist/server/services/claude-manager.js.map +1 -1
  55. package/dist/server/services/session-manager.d.ts +1 -0
  56. package/dist/server/services/session-manager.d.ts.map +1 -1
  57. package/dist/server/services/session-manager.js +32 -1
  58. package/dist/server/services/session-manager.js.map +1 -1
  59. package/dist/server/utils/net-safety.d.ts +2 -0
  60. package/dist/server/utils/net-safety.d.ts.map +1 -0
  61. package/dist/server/utils/net-safety.js +28 -0
  62. package/dist/server/utils/net-safety.js.map +1 -0
  63. package/dist/server/utils/open-path.d.ts +4 -0
  64. package/dist/server/utils/open-path.d.ts.map +1 -0
  65. package/dist/server/utils/open-path.js +19 -0
  66. package/dist/server/utils/open-path.js.map +1 -0
  67. package/dist/server/utils/path-safety.d.ts +2 -0
  68. package/dist/server/utils/path-safety.d.ts.map +1 -0
  69. package/dist/server/utils/path-safety.js +25 -0
  70. package/dist/server/utils/path-safety.js.map +1 -0
  71. package/dist/server/websocket/index.d.ts.map +1 -1
  72. package/dist/server/websocket/index.js +26 -1
  73. package/dist/server/websocket/index.js.map +1 -1
  74. package/electron/main.cjs +17 -3
  75. package/package.json +6 -6
  76. package/dist/client/assets/FloatingComposerController-5A3GJtK4-D5OJqjB6.js +0 -1
  77. package/dist/client/assets/index-7c5uNap1.js +0 -1080
  78. package/dist/client/assets/index-CyIseJUh.css +0 -32
@@ -0,0 +1,28 @@
1
+ // SSRF guard for user-supplied base URLs (e.g. Jira base_url). Requires http(s)
2
+ // and blocks loopback / link-local hosts — notably the cloud metadata endpoint
3
+ // (169.254.169.254). Private LAN ranges (10./192.168./172.16-31.) are allowed
4
+ // so self-hosted/internal Jira still works. Does not defend against DNS
5
+ // rebinding (out of scope for a single-user tool).
6
+ export function assertPublicHttpUrl(raw) {
7
+ let u;
8
+ try {
9
+ u = new URL(raw);
10
+ }
11
+ catch {
12
+ throw new Error('Invalid URL');
13
+ }
14
+ if (u.protocol !== 'http:' && u.protocol !== 'https:') {
15
+ throw new Error('URL must use http or https');
16
+ }
17
+ const host = u.hostname.toLowerCase();
18
+ const blocked = host === 'localhost' ||
19
+ host.endsWith('.localhost') ||
20
+ host === '::1' ||
21
+ host === '0.0.0.0' ||
22
+ /^127\./.test(host) ||
23
+ /^169\.254\./.test(host);
24
+ if (blocked) {
25
+ throw new Error('URL host is not allowed');
26
+ }
27
+ }
28
+ //# sourceMappingURL=net-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"net-safety.js","sourceRoot":"","sources":["../../../src/server/utils/net-safety.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,wEAAwE;AACxE,mDAAmD;AACnD,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAM,CAAC;IACX,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,OAAO,GACX,IAAI,KAAK,WAAW;QACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,KAAK,KAAK;QACd,IAAI,KAAK,SAAS;QAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function osOpenPath(target: string, opts?: {
2
+ reveal?: boolean;
3
+ }): void;
4
+ //# sourceMappingURL=open-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-path.d.ts","sourceRoot":"","sources":["../../../src/server/utils/open-path.ts"],"names":[],"mappings":"AAOA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAShF"}
@@ -0,0 +1,19 @@
1
+ import { execFile } from 'child_process';
2
+ import path from 'path';
3
+ // Open a file/folder with the OS default handler, or reveal a file in the file
4
+ // manager. Uses execFile (argv array, no shell) so a path containing shell
5
+ // metacharacters — e.g. an agent-created filename like `$(touch pwned).md` —
6
+ // cannot inject a command. Exit codes from explorer/open are ignored.
7
+ export function osOpenPath(target, opts = {}) {
8
+ const done = () => { };
9
+ if (process.platform === 'win32') {
10
+ execFile('explorer.exe', [opts.reveal ? `/select,${target}` : target], done);
11
+ }
12
+ else if (process.platform === 'darwin') {
13
+ execFile('open', opts.reveal ? ['-R', target] : [target], done);
14
+ }
15
+ else {
16
+ execFile('xdg-open', [opts.reveal ? path.dirname(target) : target], done);
17
+ }
18
+ }
19
+ //# sourceMappingURL=open-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-path.js","sourceRoot":"","sources":["../../../src/server/utils/open-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAA6B,EAAE;IACxE,MAAM,IAAI,GAAG,GAAG,EAAE,GAAkC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isRealpathWithinRoot(root: string, abs: string): boolean;
2
+ //# sourceMappingURL=path-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-safety.d.ts","sourceRoot":"","sources":["../../../src/server/utils/path-safety.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAevE"}
@@ -0,0 +1,25 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ // Returns true if `abs` (an already lexically-resolved path) stays within
4
+ // `root` even after resolving symlinks. For a not-yet-created file it checks
5
+ // the nearest existing ancestor. Defends against an in-tree symlink that points
6
+ // outside the project root (which a lexical `startsWith` check would miss).
7
+ export function isRealpathWithinRoot(root, abs) {
8
+ try {
9
+ let probe = abs;
10
+ while (!fs.existsSync(probe)) {
11
+ const parent = path.dirname(probe);
12
+ if (parent === probe)
13
+ break;
14
+ probe = parent;
15
+ }
16
+ const realRoot = fs.realpathSync(root);
17
+ const realProbe = fs.realpathSync(probe);
18
+ const sep = realRoot.endsWith(path.sep) ? realRoot : realRoot + path.sep;
19
+ return realProbe === realRoot || realProbe.startsWith(sep);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ //# sourceMappingURL=path-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../../src/server/utils/path-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,GAAG,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,KAAK;gBAAE,MAAM;YAC5B,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QACzE,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/websocket/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAqKlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/websocket/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AASnC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2LlD"}
@@ -4,6 +4,7 @@ import { sessionMiddleware } from '../middleware/auth.js';
4
4
  import { claudeManager } from '../services/claude-manager.js';
5
5
  import { sessionManager } from '../services/session-manager.js';
6
6
  import { getTodoById, createTaskLog, getSessionById, createSessionLog, getSessionRawChunks } from '../db/queries.js';
7
+ import { getSetting } from '../db/app-settings.js';
7
8
  export function initWebSocket(server) {
8
9
  const wss = new WebSocketServer({ noServer: true });
9
10
  // Handle upgrade manually to validate session auth
@@ -48,6 +49,13 @@ export function initWebSocket(server) {
48
49
  socket.destroy();
49
50
  return;
50
51
  }
52
+ // Reject sessions issued before the last password change (parity with HTTP).
53
+ const changedAt = Number(getSetting('auth.password_changed_at') || 0);
54
+ if (changedAt && (session.createdAt ?? 0) < changedAt) {
55
+ socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
56
+ socket.destroy();
57
+ return;
58
+ }
51
59
  wss.handleUpgrade(req, socket, head, (ws) => {
52
60
  wss.emit('connection', ws, req);
53
61
  });
@@ -112,9 +120,26 @@ export function initWebSocket(server) {
112
120
  try {
113
121
  sessionManager.flushPendingRaw(msg.sessionId);
114
122
  const chunks = getSessionRawChunks(msg.sessionId);
123
+ // Coalesce DB rows into large frames. A long session holds tens
124
+ // of thousands of tiny rows (one per 100ms flush); one ws frame
125
+ // per row made re-opening a terminal take seconds.
126
+ const REPLAY_FRAME_BYTES = 256 * 1024;
127
+ let batch = [];
128
+ let batchBytes = 0;
129
+ const sendBatch = () => {
130
+ if (batch.length === 0)
131
+ return;
132
+ ws.send(encodeSessionFrame(msg.sessionId, Buffer.concat(batch)), { binary: true });
133
+ batch = [];
134
+ batchBytes = 0;
135
+ };
115
136
  for (const c of chunks) {
116
- ws.send(encodeSessionFrame(msg.sessionId, c.bytes), { binary: true });
137
+ batch.push(c.bytes);
138
+ batchBytes += c.bytes.length;
139
+ if (batchBytes >= REPLAY_FRAME_BYTES)
140
+ sendBatch();
117
141
  }
142
+ sendBatch();
118
143
  }
119
144
  catch { /* ignore replay errors */ }
120
145
  ws.send(JSON.stringify({ type: 'session:replay-end', sessionId: msg.sessionId }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/websocket/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/websocket/index.ts"],"names":[],"mappings":"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"}
package/electron/main.cjs CHANGED
@@ -160,7 +160,7 @@ function createWindow(port) {
160
160
  preload: path.join(__dirname, 'preload.cjs'),
161
161
  contextIsolation: true,
162
162
  nodeIntegration: false,
163
- sandbox: false,
163
+ sandbox: true,
164
164
  },
165
165
  });
166
166
 
@@ -194,7 +194,11 @@ function createWindow(port) {
194
194
  mainWindow.webContents.setWindowOpenHandler(({ url, features }) => {
195
195
  const isLocal = localOrigins.some((o) => url.startsWith(o));
196
196
  if (!isLocal) {
197
- shell.openExternal(url);
197
+ // Only hand safe schemes to the OS — never file:/smb:/custom handlers.
198
+ try {
199
+ const proto = new URL(url).protocol;
200
+ if (proto === 'http:' || proto === 'https:' || proto === 'mailto:') shell.openExternal(url);
201
+ } catch { /* invalid url — ignore */ }
198
202
  return { action: 'deny' };
199
203
  }
200
204
  // Session pop-out windows: open as a real OS child window with the same
@@ -237,7 +241,7 @@ function createWindow(port) {
237
241
  preload: path.join(__dirname, 'preload.cjs'),
238
242
  contextIsolation: true,
239
243
  nodeIntegration: false,
240
- sandbox: false,
244
+ sandbox: true,
241
245
  },
242
246
  },
243
247
  };
@@ -245,11 +249,21 @@ function createWindow(port) {
245
249
  return { action: 'allow' };
246
250
  });
247
251
 
252
+ // Block top-level navigation to off-origin URLs so injected content / links
253
+ // can't load a remote page inside the trusted, preload-attached window.
254
+ const blockOffOriginNav = (contents) => {
255
+ contents.on('will-navigate', (e, navUrl) => {
256
+ if (!localOrigins.some((o) => navUrl.startsWith(o))) e.preventDefault();
257
+ });
258
+ };
259
+ blockOffOriginNav(mainWindow.webContents);
260
+
248
261
  // Newly-created child windows (popouts) inherit the main window's
249
262
  // setWindowOpenHandler but not the lock-screen focus-recovery handler.
250
263
  // Attach the same focus → webContents.focus() bridge so xterm typing
251
264
  // doesn't go dead after resume.
252
265
  mainWindow.webContents.on('did-create-window', (childWin) => {
266
+ blockOffOriginNav(childWin.webContents);
253
267
  childWin.on('focus', () => {
254
268
  // Skip when webContents already holds focus — a redundant programmatic
255
269
  // focus() resets the Windows IME (TSF) caret context, which is the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clitrigger",
3
- "version": "0.2.24",
3
+ "version": "0.2.26",
4
4
  "description": "Spawn isolated git worktrees and orchestrate Claude/Gemini/Codex CLI tasks in parallel from a web UI.",
5
5
  "keywords": [
6
6
  "claude",
@@ -71,7 +71,7 @@
71
71
  "dependencies": {
72
72
  "@iarna/toml": "^2.2.5",
73
73
  "@types/iarna__toml": "^2.0.5",
74
- "better-sqlite3": "^12.10.0",
74
+ "better-sqlite3": "^12.11.1",
75
75
  "cloudflared": "^0.7.1",
76
76
  "cors": "^2.8.5",
77
77
  "dotenv": "^16.4.7",
@@ -89,7 +89,7 @@
89
89
  "ws": "^8.18.0"
90
90
  },
91
91
  "devDependencies": {
92
- "@electron/rebuild": "^3.7.0",
92
+ "@electron/rebuild": "^4.1.0",
93
93
  "@types/better-sqlite3": "^7.6.12",
94
94
  "@types/cors": "^2.8.17",
95
95
  "@types/express": "^5.0.0",
@@ -101,9 +101,9 @@
101
101
  "@types/ws": "^8.5.13",
102
102
  "@vitest/coverage-v8": "^4.1.1",
103
103
  "concurrently": "^9.1.0",
104
- "electron": "^33.2.0",
105
- "electron-builder": "^25.1.8",
106
- "esbuild": "^0.27.0",
104
+ "electron": "^43.0.0",
105
+ "electron-builder": "^26.15.3",
106
+ "esbuild": "^0.28.1",
107
107
  "png-to-ico": "^3.0.1",
108
108
  "sharp": "^0.34.5",
109
109
  "tsx": "^4.19.0",
@@ -1 +0,0 @@
1
- import{t as b,M as d,N as u,v as l,z as x,B as g,K as C,Z as h,r as m,T as v,j as i,q as j,P as y,U as E,o as S,s as O,f as P,G as T,D as F}from"./index-7c5uNap1.js";var I=m.memo(({isEmpty:t,onSave:o,Components:s,dict:e})=>i.jsx(s.Generic.Toolbar.Root,{className:F("bn-action-toolbar","bn-comment-actions"),variant:"action-toolbar",children:i.jsx(s.Generic.Toolbar.Button,{className:"bn-button",mainTooltip:e.comments.save_button_text,variant:"compact",isDisabled:t,onClick:o,children:e.comments.save_button_text})}));function U(){let t=d(),o=u(l),s=x(),e=g(),r=C({trailingBlock:!1,dictionary:{...e,placeholders:{emptyDocument:e.placeholders.new_comment}},schema:o.commentEditorSchema||h}),c=m.useCallback(async()=>{await o.createThread({initialComment:{body:r.document}}),o.stopPendingComment(),t.transact(a=>{a.setSelection(v.create(a.doc,a.selection.to))}),t.focus()},[o,r,t]);return i.jsx(s.Comments.Card,{className:"bn-thread",children:i.jsx(j,{autoFocus:!0,editable:!0,editor:r,actions:({isFocused:a,isEmpty:n})=>i.jsx(I,{isFocused:a,isEmpty:n,onSave:c,Components:s,dict:e})})})}var N=b({default:()=>_});function _(t){let o=d(),s=u(l),e=y(l,{editor:o,selector:n=>n.pendingComment}),r=E({editor:o,selector:({editor:n})=>e?{from:n.prosemirrorState.selection.from,to:n.prosemirrorState.selection.to}:void 0}),c=m.useMemo(()=>{var n,p;return{...t.floatingUIOptions,useFloatingOptions:{open:!!e,onOpenChange:f=>{f||(s.stopPendingComment(),o.focus())},placement:"bottom",middleware:[S(10),O(),P()],...(n=t.floatingUIOptions)==null?void 0:n.useFloatingOptions},focusManagerProps:{disabled:!1},elementProps:{style:{zIndex:60},...(p=t.floatingUIOptions)==null?void 0:p.elementProps}}},[s,o,e,t.floatingUIOptions]),a=t.floatingComposer||U;return i.jsx(T,{position:r,portalElement:t.portalElement,...c,children:i.jsx(a,{})})}export{N as n,U as r,_ as t};