experimental-a2 0.16.1 → 0.17.0
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.
- package/CHANGELOG.md +352 -0
- package/dist/{actor-ohPC-81x.d.ts → actor-DBbe5xeE.d.ts} +21 -11
- package/dist/actor-DBbe5xeE.d.ts.map +1 -0
- package/dist/actor-client.d.ts +2 -5
- package/dist/actor-client.d.ts.map +1 -1
- package/dist/actor-client.js +13 -4
- package/dist/actor-client.js.map +1 -1
- package/dist/actor-react.d.ts +5 -3
- package/dist/actor-react.d.ts.map +1 -1
- package/dist/actor-react.js +20 -10
- package/dist/actor-react.js.map +1 -1
- package/dist/{actor-shared-B5tJfzt-.js → actor-shared-t7w8xIKP.js} +12 -7
- package/dist/actor-shared-t7w8xIKP.js.map +1 -0
- package/dist/actor.d.ts +1 -1
- package/dist/actor.js +42 -23
- package/dist/actor.js.map +1 -1
- package/dist/{ai-DgOBltJ_.js → ai-UrWfKeuv.js} +621 -216
- package/dist/ai-UrWfKeuv.js.map +1 -0
- package/dist/ai-client.d.ts +27 -0
- package/dist/ai-client.d.ts.map +1 -0
- package/dist/ai-client.js +29 -0
- package/dist/ai-client.js.map +1 -0
- package/dist/ai-react.d.ts +96 -0
- package/dist/ai-react.d.ts.map +1 -0
- package/dist/ai-react.js +142 -0
- package/dist/ai-react.js.map +1 -0
- package/dist/ai-server.browser.js +2 -2
- package/dist/ai-server.browser.js.map +1 -1
- package/dist/ai-server.d.ts +80 -36
- package/dist/ai-server.d.ts.map +1 -1
- package/dist/ai-server.js +432 -258
- package/dist/ai-server.js.map +1 -1
- package/dist/{ai-CrEf6p_W.d.ts → ai-vpGtcaCB.d.ts} +114 -100
- package/dist/ai-vpGtcaCB.d.ts.map +1 -0
- package/dist/ai.d.ts +2 -2
- package/dist/ai.js +2 -2
- package/dist/{client-BYzHjkwU.js → client-COaiaDub.js} +447 -80
- package/dist/client-COaiaDub.js.map +1 -0
- package/dist/{client-CzyacQpJ.d.ts → client-qRnRUzBS.d.ts} +14 -13
- package/dist/client-qRnRUzBS.d.ts.map +1 -0
- package/dist/client.d.ts +4 -2
- package/dist/client.js +1 -1
- package/dist/{contract-CKRg_E4q.js → contract-BYKASlCV.js} +12 -21
- package/dist/contract-BYKASlCV.js.map +1 -0
- package/dist/{idempotent-replay-DVOlyYbx.js → idempotent-replay-JdgMQRRm.js} +2 -2
- package/dist/{idempotent-replay-DVOlyYbx.js.map → idempotent-replay-JdgMQRRm.js.map} +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/{errors-DvhSXnxk.d.ts → initial-snapshot-BrLso5x_.d.ts} +7 -3
- package/dist/initial-snapshot-BrLso5x_.d.ts.map +1 -0
- package/dist/{internal-Dq2qYxou.js → internal-CbVvEwad.js} +23 -2
- package/dist/internal-CbVvEwad.js.map +1 -0
- package/dist/otel.d.ts +1 -1
- package/dist/react-BbJ-g6Uu.d.ts +86 -0
- package/dist/react-BbJ-g6Uu.d.ts.map +1 -0
- package/dist/react.d.ts +2 -122
- package/dist/react.js +107 -100
- package/dist/react.js.map +1 -1
- package/dist/reducer-BAXc8JyF.js +87 -0
- package/dist/reducer-BAXc8JyF.js.map +1 -0
- package/dist/{reducer-otzHjuJj.d.ts → reducer-BYu6DT7h.d.ts} +45 -29
- package/dist/reducer-BYu6DT7h.d.ts.map +1 -0
- package/dist/reducer-runtime-DQwz_J59.js +28 -0
- package/dist/reducer-runtime-DQwz_J59.js.map +1 -0
- package/dist/scheduler-qstash.d.ts +3 -3
- package/dist/scheduler-qstash.d.ts.map +1 -1
- package/dist/scheduler-qstash.js +33 -10
- package/dist/scheduler-qstash.js.map +1 -1
- package/dist/{scheduler-task-BpzhPnRS.js → scheduler-task-X1SToDjP.js} +18 -3
- package/dist/scheduler-task-X1SToDjP.js.map +1 -0
- package/dist/scheduler-vercel.d.ts +4 -9
- package/dist/scheduler-vercel.d.ts.map +1 -1
- package/dist/scheduler-vercel.js +25 -44
- package/dist/scheduler-vercel.js.map +1 -1
- package/dist/{server-DbD7IJVK.d.ts → server-CGM8WzRG.d.ts} +87 -26
- package/dist/server-CGM8WzRG.d.ts.map +1 -0
- package/dist/{server-BD5ckxZb.js → server-Rj64fNvX.js} +854 -202
- package/dist/server-Rj64fNvX.js.map +1 -0
- package/dist/server.d.ts +4 -4
- package/dist/server.js +2 -2
- package/dist/{errors-DCk6ch5n.js → session-clear-DGI4jTQ5.js} +17 -2
- package/dist/session-clear-DGI4jTQ5.js.map +1 -0
- package/dist/session-clear-Dshpuhff.d.ts +12 -0
- package/dist/session-clear-Dshpuhff.d.ts.map +1 -0
- package/dist/{store-DyZM6fS5.d.ts → store-Gpkq7WBo.d.ts} +44 -3
- package/dist/store-Gpkq7WBo.d.ts.map +1 -0
- package/dist/store-N8PXxDAS.js.map +1 -1
- package/dist/store-memory.d.ts +1 -1
- package/dist/store-memory.d.ts.map +1 -1
- package/dist/store-memory.js +182 -69
- package/dist/store-memory.js.map +1 -1
- package/dist/{store-polling-CmxUbV93.js → store-polling-4_y8lETm.js} +21 -4
- package/dist/store-polling-4_y8lETm.js.map +1 -0
- package/dist/store-postgres.d.ts +1 -1
- package/dist/store-postgres.d.ts.map +1 -1
- package/dist/store-postgres.js +399 -108
- package/dist/store-postgres.js.map +1 -1
- package/dist/{store-presence-polling-C7-XZyW9.js → store-presence-polling-Q1C-k2dd.js} +3 -3
- package/dist/{store-presence-polling-C7-XZyW9.js.map → store-presence-polling-Q1C-k2dd.js.map} +1 -1
- package/dist/store-redis-http.d.ts +1 -1
- package/dist/store-redis-http.d.ts.map +1 -1
- package/dist/store-redis-http.js +293 -11
- package/dist/store-redis-http.js.map +1 -1
- package/dist/store-redis-notify-tqWNnMRu.js +2374 -0
- package/dist/store-redis-notify-tqWNnMRu.js.map +1 -0
- package/dist/store-redis.d.ts +1 -1
- package/dist/store-redis.d.ts.map +1 -1
- package/dist/store-redis.js +11 -11
- package/dist/store-redis.js.map +1 -1
- package/dist/store-sqlite.d.ts +1 -1
- package/dist/store-sqlite.d.ts.map +1 -1
- package/dist/store-sqlite.js +166 -32
- package/dist/store-sqlite.js.map +1 -1
- package/dist/stream-buffer-Cx7AAPGq.js +23 -0
- package/dist/stream-buffer-Cx7AAPGq.js.map +1 -0
- package/dist/{telemetry-B5jzpy6y.d.ts → telemetry-cZH-cibj.d.ts} +2 -2
- package/dist/telemetry-cZH-cibj.d.ts.map +1 -0
- package/dist/{wire-BO5wWCb1.js → wire-DjfHOvdW.js} +132 -10
- package/dist/wire-DjfHOvdW.js.map +1 -0
- package/docs/01-quickstart.mdx +2 -2
- package/docs/actors/01-introduction.mdx +4 -0
- package/docs/actors/04-routes.mdx +14 -1
- package/docs/concepts/01-contracts.mdx +95 -0
- package/docs/concepts/04-state.mdx +3 -3
- package/docs/guides/01-timers.mdx +22 -14
- package/docs/guides/02-cancellation.mdx +1 -1
- package/docs/guides/03-react.mdx +268 -328
- package/docs/guides/04-local-first.mdx +32 -73
- package/docs/guides/05-production.mdx +40 -27
- package/docs/guides/06-ai-agents.mdx +671 -581
- package/docs/guides/09-presence.mdx +3 -7
- package/docs/guides/10-transports.mdx +5 -5
- package/docs/index.mdx +10 -18
- package/docs/reference/01-api.mdx +656 -194
- package/docs/reference/02-errors.mdx +2 -1
- package/examples/playground/DEPLOY.md +52 -6
- package/examples/playground/app/a0/[appId]/loading.tsx +16 -0
- package/examples/playground/app/a0/[appId]/page.tsx +48 -0
- package/examples/playground/app/a0/a0.css +818 -0
- package/examples/playground/app/a0/app-list.tsx +211 -0
- package/examples/playground/app/a0/app-view.tsx +55 -0
- package/examples/playground/app/a0/apps/[appId]/preview/route.ts +27 -0
- package/examples/playground/app/a0/apps/[appId]/route.ts +23 -0
- package/examples/playground/app/a0/apps.test.ts +116 -0
- package/examples/playground/app/a0/apps.ts +87 -0
- package/examples/playground/app/a0/chat.tsx +364 -0
- package/examples/playground/app/a0/columns.tsx +109 -0
- package/examples/playground/app/a0/context-menu.tsx +116 -0
- package/examples/playground/app/a0/cookies.ts +46 -0
- package/examples/playground/app/a0/crash-on-request.ts +72 -0
- package/examples/playground/app/a0/crashes/route.ts +3 -0
- package/examples/playground/app/a0/crashes.test.ts +33 -0
- package/examples/playground/app/a0/crashes.ts +28 -0
- package/examples/playground/app/a0/devtools.tsx +164 -0
- package/examples/playground/app/a0/events/route.ts +6 -0
- package/examples/playground/app/a0/flags.ts +30 -0
- package/examples/playground/app/a0/layout.tsx +38 -0
- package/examples/playground/app/a0/list/route.ts +10 -0
- package/examples/playground/app/a0/model.test.ts +56 -0
- package/examples/playground/app/a0/model.ts +58 -0
- package/examples/playground/app/a0/page.tsx +14 -0
- package/examples/playground/app/a0/preview-pane.tsx +145 -0
- package/examples/playground/app/a0/preview.test.ts +53 -0
- package/examples/playground/app/a0/preview.ts +26 -0
- package/examples/playground/app/a0/sandbox-log.ts +69 -0
- package/examples/playground/app/a0/sandbox.ts +191 -0
- package/examples/playground/app/a0/sandboxes/scheduler/route.ts +6 -0
- package/examples/playground/app/a0/scheduler/route.ts +7 -0
- package/examples/playground/app/a0/server.ts +158 -0
- package/examples/playground/app/a0/session.ts +47 -0
- package/examples/playground/app/a0/shell.tsx +150 -0
- package/examples/playground/app/a0/short/events/route.ts +9 -0
- package/examples/playground/app/a0/splitter.tsx +120 -0
- package/examples/playground/app/agent/[agentId]/agent-client.tsx +144 -174
- package/examples/playground/app/agent/[agentId]/command-receipt.test.tsx +65 -0
- package/examples/playground/app/agent/[agentId]/command-receipt.tsx +27 -0
- package/examples/playground/app/agent/[agentId]/compaction-event.tsx +25 -24
- package/examples/playground/app/agent/[agentId]/compaction-panel.test.tsx +119 -0
- package/examples/playground/app/agent/[agentId]/compaction-panel.tsx +208 -165
- package/examples/playground/app/agent/[agentId]/page.tsx +2 -16
- package/examples/playground/app/agent/events/route.ts +5 -2
- package/examples/playground/app/agent/ingress.test.ts +98 -0
- package/examples/playground/app/agent/model-input.test.tsx +58 -0
- package/examples/playground/app/agent/model-input.tsx +115 -0
- package/examples/playground/app/agent/model.test.ts +73 -0
- package/examples/playground/app/agent/model.ts +58 -26
- package/examples/playground/app/agent/new-agent-session.tsx +37 -19
- package/examples/playground/app/agent/page.tsx +4 -4
- package/examples/playground/app/agent/server.ts +15 -14
- package/examples/playground/app/agent/session.ts +5 -6
- package/examples/playground/app/agent/telemetry.test.ts +168 -0
- package/examples/playground/app/agent/telemetry.ts +30 -0
- package/examples/playground/app/agent/trace.test.ts +23 -0
- package/examples/playground/app/agent/trace.ts +18 -0
- package/examples/playground/app/canvas/[canvasId]/canvas-client.tsx +11 -11
- package/examples/playground/app/canvas/[canvasId]/page.tsx +1 -2
- package/examples/playground/app/canvas/[canvasId]/session.ts +2 -2
- package/examples/playground/app/canvas/model.ts +53 -53
- package/examples/playground/app/chat/[chatId]/agent-state.test.ts +176 -0
- package/examples/playground/app/chat/[chatId]/agent-stream-drawer.tsx +16 -1
- package/examples/playground/app/chat/[chatId]/chat-client.tsx +55 -77
- package/examples/playground/app/chat/[chatId]/chat-view.ts +37 -3
- package/examples/playground/app/chat/[chatId]/page.tsx +7 -15
- package/examples/playground/app/chat/[chatId]/session.ts +2 -19
- package/examples/playground/app/chat/agent/route.ts +9 -0
- package/examples/playground/app/chat/model.test.ts +46 -119
- package/examples/playground/app/chat/model.ts +82 -128
- package/examples/playground/app/chat/scheduler/route.ts +2 -2
- package/examples/playground/app/chat/server.test.ts +108 -0
- package/examples/playground/app/chat/server.ts +69 -73
- package/examples/playground/app/components/activity-feed.tsx +30 -1
- package/examples/playground/app/components/activity-history.test.tsx +35 -0
- package/examples/playground/app/components/demo-icons.tsx +89 -0
- package/examples/playground/app/components/demos.tsx +33 -0
- package/examples/playground/app/components/fast-link.test.tsx +58 -0
- package/examples/playground/app/components/fast-link.tsx +55 -0
- package/examples/playground/app/components/site-header.tsx +96 -0
- package/examples/playground/app/counter/counter-client.tsx +3 -3
- package/examples/playground/app/counter/model.test.ts +3 -3
- package/examples/playground/app/counter/model.ts +11 -21
- package/examples/playground/app/counter/page.tsx +2 -15
- package/examples/playground/app/counter/session.ts +2 -2
- package/examples/playground/app/documents/[documentId]/code-editor.tsx +12 -1
- package/examples/playground/app/documents/[documentId]/document-client.tsx +10 -11
- package/examples/playground/app/documents/[documentId]/page.tsx +1 -2
- package/examples/playground/app/documents/[documentId]/session.ts +2 -2
- package/examples/playground/app/documents/model.ts +27 -27
- package/examples/playground/app/globals.css +420 -207
- package/examples/playground/app/initial-state.test.tsx +54 -0
- package/examples/playground/app/layout.tsx +7 -23
- package/examples/playground/app/orders/[orderId]/page.tsx +1 -2
- package/examples/playground/app/orders/[orderId]/session.ts +2 -2
- package/examples/playground/app/orders/model.ts +49 -49
- package/examples/playground/app/page.tsx +13 -102
- package/examples/playground/app/recovery/[recoveryId]/page.tsx +1 -2
- package/examples/playground/app/recovery/[recoveryId]/session.ts +2 -2
- package/examples/playground/app/recovery/model.ts +30 -30
- package/examples/playground/instrumentation.ts +5 -0
- package/examples/playground/package.json +10 -2
- package/examples/playground/scripts/a0-template.ts +77 -0
- package/examples/playground/vercel.json +18 -0
- package/package.json +3 -1
- package/src/actor-client.ts +16 -4
- package/src/actor-react.ts +25 -11
- package/src/actor-shared.ts +21 -6
- package/src/actor.ts +76 -31
- package/src/ai-agent-actions.ts +219 -0
- package/src/ai-agent.ts +2343 -0
- package/src/ai-app-state.ts +91 -0
- package/src/ai-client-state.ts +6 -3
- package/src/ai-client.ts +62 -0
- package/src/ai-context-schema.ts +25 -5
- package/src/ai-context.ts +90 -40
- package/src/ai-control-server.ts +92 -72
- package/src/ai-coordinator.ts +23 -22
- package/src/ai-message-base.ts +209 -0
- package/src/ai-message-projection.ts +262 -64
- package/src/ai-progress-batches.ts +26 -0
- package/src/ai-projector.ts +95 -14
- package/src/ai-react.ts +146 -0
- package/src/ai-server.browser.ts +2 -2
- package/src/ai-server.ts +20 -1964
- package/src/ai-stored-state.ts +48 -163
- package/src/ai.ts +339 -155
- package/src/bootstrap-stream.ts +72 -0
- package/src/bounded-cache.ts +55 -0
- package/src/client-render-session.ts +49 -0
- package/src/client.ts +688 -151
- package/src/contract.ts +92 -42
- package/src/deterministic-id.ts +37 -0
- package/src/equal-json.ts +32 -0
- package/src/errors.ts +13 -1
- package/src/index.ts +5 -1
- package/src/initial-snapshot.ts +39 -0
- package/src/internal.ts +45 -0
- package/src/postgres-notification-scope.ts +14 -3
- package/src/react.ts +171 -206
- package/src/redis-http-reply.ts +256 -0
- package/src/redis-http-stream.ts +73 -0
- package/src/redis-http-subscriptions.ts +13 -5
- package/src/reducer-runtime.ts +52 -0
- package/src/reducer.ts +92 -10
- package/src/scheduler-qstash.ts +49 -20
- package/src/scheduler-task.ts +34 -2
- package/src/scheduler-vercel.ts +32 -84
- package/src/server-fetch.ts +139 -35
- package/src/server.ts +957 -237
- package/src/session-clear.ts +23 -0
- package/src/session-socket.ts +154 -49
- package/src/sse.ts +71 -4
- package/src/store-memory.ts +220 -78
- package/src/store-polling.ts +18 -4
- package/src/store-postgres.ts +461 -114
- package/src/store-redis-core.ts +1260 -434
- package/src/store-redis-http.ts +18 -2
- package/src/store-redis-notify.ts +260 -85
- package/src/store-redis.ts +19 -9
- package/src/store-sqlite.ts +259 -45
- package/src/store.ts +46 -1
- package/src/stream-buffer.ts +43 -0
- package/src/telemetry.ts +13 -1
- package/src/wire.ts +241 -13
- package/dist/actor-ohPC-81x.d.ts.map +0 -1
- package/dist/actor-shared-B5tJfzt-.js.map +0 -1
- package/dist/ai-CrEf6p_W.d.ts.map +0 -1
- package/dist/ai-DgOBltJ_.js.map +0 -1
- package/dist/client-BYzHjkwU.js.map +0 -1
- package/dist/client-CzyacQpJ.d.ts.map +0 -1
- package/dist/contract-CKRg_E4q.js.map +0 -1
- package/dist/errors-DCk6ch5n.js.map +0 -1
- package/dist/errors-DvhSXnxk.d.ts.map +0 -1
- package/dist/internal-Dq2qYxou.js.map +0 -1
- package/dist/react.d.ts.map +0 -1
- package/dist/reducer-DEMjEY_O.js +0 -29
- package/dist/reducer-DEMjEY_O.js.map +0 -1
- package/dist/reducer-otzHjuJj.d.ts.map +0 -1
- package/dist/scheduler-task-BpzhPnRS.js.map +0 -1
- package/dist/server-BD5ckxZb.js.map +0 -1
- package/dist/server-DbD7IJVK.d.ts.map +0 -1
- package/dist/store-DyZM6fS5.d.ts.map +0 -1
- package/dist/store-polling-CmxUbV93.js.map +0 -1
- package/dist/store-redis-notify-BVLUfI3j.js +0 -1583
- package/dist/store-redis-notify-BVLUfI3j.js.map +0 -1
- package/dist/telemetry-B5jzpy6y.d.ts.map +0 -1
- package/dist/validate-XKT4FSNn.js +0 -30
- package/dist/validate-XKT4FSNn.js.map +0 -1
- package/dist/wire-BO5wWCb1.js.map +0 -1
- package/examples/playground/app/agent/[agentId]/compaction/route.ts +0 -14
- package/examples/playground/app/agent/compaction-settings.test.ts +0 -144
- package/examples/playground/app/agent/compaction-settings.ts +0 -49
- package/examples/playground/app/agent/compaction-timeline.test.ts +0 -377
- package/examples/playground/app/agent/compaction-timeline.ts +0 -208
|
@@ -1,19 +1,49 @@
|
|
|
1
|
+
/* Dark by default; light when the system asks for it. */
|
|
1
2
|
:root {
|
|
2
|
-
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--
|
|
10
|
-
--
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
color-scheme: light dark;
|
|
4
|
+
--bg: #040404;
|
|
5
|
+
--surface: #040404;
|
|
6
|
+
--shade: #161616;
|
|
7
|
+
--shade-hover: #1b1b1b;
|
|
8
|
+
--line: #252525;
|
|
9
|
+
--faint: #7a7a7a;
|
|
10
|
+
--muted: #909090;
|
|
11
|
+
--ink: #dedede;
|
|
12
|
+
--bright: #fafafa;
|
|
13
|
+
--accent: #ff6c02;
|
|
14
|
+
--accent-ink: #040404;
|
|
15
|
+
--danger: #ff6568;
|
|
16
|
+
--success: #4fd18b;
|
|
17
|
+
--warning: #f2b54b;
|
|
18
|
+
--info: #6ea8fe;
|
|
19
|
+
--code-bg: #161616;
|
|
20
|
+
--dot: #404040;
|
|
21
|
+
--shadow: rgb(0 0 0 / 50%);
|
|
22
|
+
font-family: var(--font-geist-mono), ui-monospace, monospace;
|
|
23
|
+
font-size: 87.5%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@media (prefers-color-scheme: light) {
|
|
27
|
+
:root {
|
|
28
|
+
--bg: #fafaf9;
|
|
29
|
+
--surface: #fafaf9;
|
|
30
|
+
--shade: #efefed;
|
|
31
|
+
--shade-hover: #e7e7e4;
|
|
32
|
+
--line: #e0e0dc;
|
|
33
|
+
--faint: #6e6e6c;
|
|
34
|
+
--muted: #52524f;
|
|
35
|
+
--ink: #1c1c1b;
|
|
36
|
+
--bright: #000000;
|
|
37
|
+
--accent: #c2410c;
|
|
38
|
+
--accent-ink: #ffffff;
|
|
39
|
+
--danger: #c81e1e;
|
|
40
|
+
--success: #15803d;
|
|
41
|
+
--warning: #9a5b05;
|
|
42
|
+
--info: #1d4ed8;
|
|
43
|
+
--code-bg: #efefed;
|
|
44
|
+
--dot: #d6d6d2;
|
|
45
|
+
--shadow: rgb(0 0 0 / 12%);
|
|
46
|
+
}
|
|
17
47
|
}
|
|
18
48
|
|
|
19
49
|
* {
|
|
@@ -29,20 +59,31 @@ body {
|
|
|
29
59
|
width: 100%;
|
|
30
60
|
min-width: 0;
|
|
31
61
|
background: var(--bg);
|
|
32
|
-
color: var(--
|
|
33
|
-
line-height: 1.
|
|
62
|
+
color: var(--muted);
|
|
63
|
+
line-height: 1.6;
|
|
64
|
+
letter-spacing: -0.02em;
|
|
65
|
+
-webkit-font-smoothing: antialiased;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
input,
|
|
69
|
+
textarea {
|
|
70
|
+
letter-spacing: normal;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
::selection {
|
|
74
|
+
background: color-mix(in oklab, var(--accent) 20%, transparent);
|
|
34
75
|
}
|
|
35
76
|
|
|
36
77
|
code,
|
|
37
78
|
pre,
|
|
38
79
|
kbd {
|
|
39
|
-
font-family:
|
|
40
|
-
font-size: 0.
|
|
80
|
+
font-family: inherit;
|
|
81
|
+
font-size: 0.92em;
|
|
41
82
|
}
|
|
42
83
|
|
|
43
84
|
code {
|
|
44
85
|
background: var(--code-bg);
|
|
45
|
-
|
|
86
|
+
color: var(--ink);
|
|
46
87
|
padding: 0.1em 0.35em;
|
|
47
88
|
}
|
|
48
89
|
|
|
@@ -57,7 +98,7 @@ main {
|
|
|
57
98
|
|
|
58
99
|
body:has(.chat-page) {
|
|
59
100
|
display: grid;
|
|
60
|
-
grid-template-rows: auto minmax(0, 1fr)
|
|
101
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
61
102
|
height: 100dvh;
|
|
62
103
|
min-height: 0;
|
|
63
104
|
overflow: hidden;
|
|
@@ -69,10 +110,6 @@ main:has(> .chat-page) {
|
|
|
69
110
|
padding: 0;
|
|
70
111
|
}
|
|
71
112
|
|
|
72
|
-
body:has(.chat-page) .site-footer {
|
|
73
|
-
display: none;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
113
|
.sr-only {
|
|
77
114
|
position: absolute;
|
|
78
115
|
width: 1px;
|
|
@@ -85,14 +122,22 @@ body:has(.chat-page) .site-footer {
|
|
|
85
122
|
border: 0;
|
|
86
123
|
}
|
|
87
124
|
|
|
125
|
+
h1,
|
|
126
|
+
h2,
|
|
127
|
+
h3 {
|
|
128
|
+
color: var(--bright);
|
|
129
|
+
letter-spacing: -0.03em;
|
|
130
|
+
}
|
|
131
|
+
|
|
88
132
|
h1 {
|
|
89
|
-
font-size: 1.
|
|
90
|
-
|
|
133
|
+
font-size: 1.4rem;
|
|
134
|
+
font-weight: 600;
|
|
91
135
|
margin: 0 0 0.5rem;
|
|
92
136
|
}
|
|
93
137
|
|
|
94
138
|
h2 {
|
|
95
|
-
font-size:
|
|
139
|
+
font-size: 1rem;
|
|
140
|
+
font-weight: 600;
|
|
96
141
|
margin: 2rem 0 0.5rem;
|
|
97
142
|
}
|
|
98
143
|
|
|
@@ -102,99 +147,174 @@ p {
|
|
|
102
147
|
|
|
103
148
|
.lede {
|
|
104
149
|
color: var(--muted);
|
|
105
|
-
|
|
106
|
-
max-width: 38rem;
|
|
150
|
+
max-width: 40rem;
|
|
107
151
|
}
|
|
108
152
|
|
|
109
153
|
a {
|
|
110
154
|
color: var(--accent);
|
|
155
|
+
text-underline-offset: 3px;
|
|
111
156
|
}
|
|
112
157
|
|
|
113
|
-
|
|
158
|
+
strong {
|
|
159
|
+
color: var(--ink);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* ── header ──────────────────────────────────────────────────────── */
|
|
114
163
|
|
|
115
164
|
.site-header {
|
|
165
|
+
display: flex;
|
|
166
|
+
align-items: center;
|
|
167
|
+
gap: 0.4rem;
|
|
168
|
+
height: 40px;
|
|
116
169
|
min-width: 0;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
170
|
+
padding: 0 0.75rem;
|
|
171
|
+
font-size: 15px;
|
|
172
|
+
font-weight: 600;
|
|
173
|
+
letter-spacing: -0.03em;
|
|
174
|
+
text-transform: uppercase;
|
|
120
175
|
}
|
|
121
176
|
|
|
122
|
-
.
|
|
123
|
-
width: 100%;
|
|
124
|
-
min-width: 0;
|
|
125
|
-
max-width: 58rem;
|
|
126
|
-
margin: 0 auto;
|
|
127
|
-
padding: 0.75rem 1.25rem;
|
|
177
|
+
.brand {
|
|
128
178
|
display: flex;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
overflow-x: auto;
|
|
132
|
-
white-space: nowrap;
|
|
133
|
-
scrollbar-width: none;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.site-header a {
|
|
179
|
+
align-items: center;
|
|
180
|
+
gap: 0.4rem;
|
|
137
181
|
color: var(--ink);
|
|
138
182
|
text-decoration: none;
|
|
139
183
|
}
|
|
140
184
|
|
|
141
|
-
.
|
|
185
|
+
.brand svg {
|
|
186
|
+
color: var(--accent);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.brand:hover span {
|
|
190
|
+
color: var(--bright);
|
|
142
191
|
text-decoration: underline;
|
|
143
192
|
}
|
|
144
193
|
|
|
145
|
-
.
|
|
146
|
-
|
|
147
|
-
margin-right: auto;
|
|
194
|
+
.demo-menu {
|
|
195
|
+
position: relative;
|
|
148
196
|
}
|
|
149
197
|
|
|
150
|
-
.
|
|
198
|
+
.demo-menu summary {
|
|
199
|
+
display: flex;
|
|
200
|
+
align-items: center;
|
|
201
|
+
gap: 0.3rem;
|
|
202
|
+
color: var(--faint);
|
|
151
203
|
font-weight: 400;
|
|
152
|
-
|
|
204
|
+
cursor: pointer;
|
|
205
|
+
list-style: none;
|
|
153
206
|
}
|
|
154
207
|
|
|
155
|
-
.
|
|
156
|
-
|
|
157
|
-
color: var(--muted);
|
|
158
|
-
font-size: 0.85rem;
|
|
208
|
+
.demo-menu summary::-webkit-details-marker {
|
|
209
|
+
display: none;
|
|
159
210
|
}
|
|
160
211
|
|
|
161
|
-
.
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
padding: 1rem 1.25rem;
|
|
212
|
+
.demo-menu summary:hover,
|
|
213
|
+
.demo-menu[open] summary {
|
|
214
|
+
color: var(--bright);
|
|
165
215
|
}
|
|
166
216
|
|
|
167
|
-
|
|
217
|
+
.demo-menu[open] summary svg {
|
|
218
|
+
transform: rotate(180deg);
|
|
219
|
+
}
|
|
168
220
|
|
|
169
|
-
.
|
|
221
|
+
.demo-menu nav {
|
|
222
|
+
position: absolute;
|
|
223
|
+
top: calc(100% + 8px);
|
|
224
|
+
left: 0;
|
|
225
|
+
z-index: 50;
|
|
170
226
|
display: grid;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
227
|
+
min-width: 11rem;
|
|
228
|
+
padding: 0.25rem 0;
|
|
229
|
+
background: var(--shade);
|
|
230
|
+
box-shadow: 0 10px 30px var(--shadow);
|
|
231
|
+
font-size: 14px;
|
|
232
|
+
font-weight: 400;
|
|
233
|
+
letter-spacing: -0.02em;
|
|
234
|
+
text-transform: none;
|
|
174
235
|
}
|
|
175
236
|
|
|
176
|
-
.
|
|
177
|
-
display:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
padding:
|
|
182
|
-
color:
|
|
237
|
+
.demo-menu nav a {
|
|
238
|
+
display: flex;
|
|
239
|
+
align-items: center;
|
|
240
|
+
justify-content: space-between;
|
|
241
|
+
height: 2rem;
|
|
242
|
+
padding: 0 0.75rem;
|
|
243
|
+
color: var(--ink);
|
|
183
244
|
text-decoration: none;
|
|
184
|
-
transition: border-color 120ms ease;
|
|
185
245
|
}
|
|
186
246
|
|
|
187
|
-
.
|
|
188
|
-
|
|
247
|
+
.demo-menu nav a:hover,
|
|
248
|
+
.demo-menu nav a:focus-visible {
|
|
249
|
+
background: var(--shade-hover);
|
|
250
|
+
color: var(--bright);
|
|
189
251
|
}
|
|
190
252
|
|
|
191
|
-
.
|
|
192
|
-
|
|
253
|
+
.demo-menu nav a svg {
|
|
254
|
+
color: var(--accent);
|
|
193
255
|
}
|
|
194
256
|
|
|
195
|
-
.
|
|
196
|
-
|
|
197
|
-
|
|
257
|
+
/* The home page's demos, as app tiles. */
|
|
258
|
+
.app-grid {
|
|
259
|
+
display: grid;
|
|
260
|
+
grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
|
|
261
|
+
gap: 2rem 1rem;
|
|
262
|
+
margin: 3rem 0 0;
|
|
263
|
+
padding: 0;
|
|
264
|
+
list-style: none;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.app-tile {
|
|
268
|
+
display: flex;
|
|
269
|
+
flex-direction: column;
|
|
270
|
+
align-items: center;
|
|
271
|
+
gap: 0.75rem;
|
|
272
|
+
color: var(--ink);
|
|
273
|
+
font-size: 0.875rem;
|
|
274
|
+
text-decoration: none;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.app-icon {
|
|
278
|
+
display: grid;
|
|
279
|
+
place-items: center;
|
|
280
|
+
width: 5.5rem;
|
|
281
|
+
height: 5.5rem;
|
|
282
|
+
border: 1px solid var(--line);
|
|
283
|
+
background: var(--shade);
|
|
284
|
+
color: var(--ink);
|
|
285
|
+
transition:
|
|
286
|
+
background 120ms,
|
|
287
|
+
border-color 120ms;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.app-icon svg {
|
|
291
|
+
width: 2.75rem;
|
|
292
|
+
height: 2.75rem;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.app-icon .accent {
|
|
296
|
+
stroke: var(--accent);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.app-icon .accent-fill {
|
|
300
|
+
fill: var(--accent);
|
|
301
|
+
stroke: none;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.app-icon .fill {
|
|
305
|
+
fill: currentColor;
|
|
306
|
+
stroke: none;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.app-tile:hover,
|
|
310
|
+
.app-tile:focus-visible {
|
|
311
|
+
color: var(--bright);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.app-tile:hover .app-icon,
|
|
315
|
+
.app-tile:focus-visible .app-icon {
|
|
316
|
+
border-color: var(--accent);
|
|
317
|
+
background: var(--shade-hover);
|
|
198
318
|
}
|
|
199
319
|
|
|
200
320
|
/* ── forms & buttons ─────────────────────────────────────────────── */
|
|
@@ -204,7 +324,6 @@ form {
|
|
|
204
324
|
gap: 0.9rem;
|
|
205
325
|
background: var(--surface);
|
|
206
326
|
border: 1px solid var(--line);
|
|
207
|
-
border-radius: 10px;
|
|
208
327
|
padding: 1.25rem;
|
|
209
328
|
margin: 1.25rem 0;
|
|
210
329
|
}
|
|
@@ -212,8 +331,9 @@ form {
|
|
|
212
331
|
label {
|
|
213
332
|
display: grid;
|
|
214
333
|
gap: 0.3rem;
|
|
334
|
+
color: var(--ink);
|
|
215
335
|
font-size: 0.9rem;
|
|
216
|
-
font-weight:
|
|
336
|
+
font-weight: 500;
|
|
217
337
|
}
|
|
218
338
|
|
|
219
339
|
input,
|
|
@@ -222,24 +342,32 @@ textarea {
|
|
|
222
342
|
font: inherit;
|
|
223
343
|
padding: 0.5rem 0.65rem;
|
|
224
344
|
border: 1px solid var(--line);
|
|
225
|
-
border-radius:
|
|
345
|
+
border-radius: 0;
|
|
226
346
|
background: var(--bg);
|
|
227
|
-
color:
|
|
347
|
+
color: var(--ink);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
input::placeholder,
|
|
351
|
+
textarea::placeholder {
|
|
352
|
+
color: var(--faint);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
:focus-visible {
|
|
356
|
+
outline: 2px dashed var(--accent);
|
|
357
|
+
outline-offset: 2px;
|
|
228
358
|
}
|
|
229
359
|
|
|
230
360
|
input:focus-visible,
|
|
231
361
|
select:focus-visible,
|
|
232
|
-
textarea:focus-visible
|
|
233
|
-
|
|
234
|
-
outline: 2px solid var(--accent);
|
|
235
|
-
outline-offset: 1px;
|
|
362
|
+
textarea:focus-visible {
|
|
363
|
+
outline-offset: -1px;
|
|
236
364
|
}
|
|
237
365
|
|
|
238
366
|
button {
|
|
239
367
|
font: inherit;
|
|
240
|
-
font-weight:
|
|
241
|
-
padding: 0.
|
|
242
|
-
border-radius:
|
|
368
|
+
font-weight: 500;
|
|
369
|
+
padding: 0.4rem 0.8rem;
|
|
370
|
+
border-radius: 0;
|
|
243
371
|
border: 1px solid var(--accent);
|
|
244
372
|
background: var(--accent);
|
|
245
373
|
color: var(--accent-ink);
|
|
@@ -252,18 +380,28 @@ button:hover:not(:disabled) {
|
|
|
252
380
|
}
|
|
253
381
|
|
|
254
382
|
button:disabled {
|
|
255
|
-
opacity: 0.
|
|
383
|
+
opacity: 0.4;
|
|
256
384
|
cursor: not-allowed;
|
|
257
385
|
}
|
|
258
386
|
|
|
259
387
|
button.secondary {
|
|
260
|
-
|
|
388
|
+
border-color: transparent;
|
|
389
|
+
background: color-mix(in oklab, var(--accent) 10%, transparent);
|
|
261
390
|
color: var(--accent);
|
|
262
391
|
}
|
|
263
392
|
|
|
393
|
+
button.secondary:hover:not(:disabled) {
|
|
394
|
+
background: color-mix(in oklab, var(--accent) 20%, transparent);
|
|
395
|
+
}
|
|
396
|
+
|
|
264
397
|
button.danger {
|
|
265
|
-
|
|
266
|
-
|
|
398
|
+
border-color: transparent;
|
|
399
|
+
background: color-mix(in oklab, var(--danger) 12%, transparent);
|
|
400
|
+
color: var(--danger);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
button.danger:hover:not(:disabled) {
|
|
404
|
+
background: color-mix(in oklab, var(--danger) 22%, transparent);
|
|
267
405
|
}
|
|
268
406
|
|
|
269
407
|
.inline-form {
|
|
@@ -284,7 +422,7 @@ button.danger {
|
|
|
284
422
|
}
|
|
285
423
|
|
|
286
424
|
.hint {
|
|
287
|
-
color: var(--
|
|
425
|
+
color: var(--faint);
|
|
288
426
|
font-size: 0.85rem;
|
|
289
427
|
}
|
|
290
428
|
|
|
@@ -304,36 +442,38 @@ button.danger {
|
|
|
304
442
|
|
|
305
443
|
.badge {
|
|
306
444
|
display: inline-block;
|
|
307
|
-
padding: 0.
|
|
308
|
-
border-radius: 99px;
|
|
309
|
-
font-size: 0.8rem;
|
|
310
|
-
font-weight: 600;
|
|
445
|
+
padding: 0.1rem 0.45rem;
|
|
311
446
|
border: 1px solid var(--line);
|
|
312
447
|
background: var(--code-bg);
|
|
448
|
+
color: var(--ink);
|
|
449
|
+
font-size: 0.72rem;
|
|
450
|
+
font-weight: 500;
|
|
451
|
+
letter-spacing: 0;
|
|
452
|
+
text-transform: uppercase;
|
|
313
453
|
}
|
|
314
454
|
|
|
315
455
|
.badge.live {
|
|
316
|
-
background:
|
|
317
|
-
border-color:
|
|
456
|
+
background: color-mix(in oklab, var(--accent) 10%, transparent);
|
|
457
|
+
border-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
318
458
|
color: var(--accent);
|
|
319
459
|
}
|
|
320
460
|
|
|
321
461
|
.badge.done {
|
|
322
|
-
background: var(--
|
|
323
|
-
border-color: var(--
|
|
324
|
-
color: var(--
|
|
462
|
+
background: color-mix(in oklab, var(--success) 10%, transparent);
|
|
463
|
+
border-color: color-mix(in oklab, var(--success) 40%, transparent);
|
|
464
|
+
color: var(--success);
|
|
325
465
|
}
|
|
326
466
|
|
|
327
467
|
.badge.cut {
|
|
328
|
-
background:
|
|
329
|
-
border-color:
|
|
468
|
+
background: color-mix(in oklab, var(--danger) 10%, transparent);
|
|
469
|
+
border-color: color-mix(in oklab, var(--danger) 40%, transparent);
|
|
330
470
|
color: var(--danger);
|
|
331
471
|
}
|
|
332
472
|
|
|
333
473
|
.badge.waiting {
|
|
334
|
-
background:
|
|
335
|
-
border-color:
|
|
336
|
-
color:
|
|
474
|
+
background: color-mix(in oklab, var(--warning) 10%, transparent);
|
|
475
|
+
border-color: color-mix(in oklab, var(--warning) 40%, transparent);
|
|
476
|
+
color: var(--warning);
|
|
337
477
|
}
|
|
338
478
|
|
|
339
479
|
/* ── journey timeline ──────────────────────────────────────────── */
|
|
@@ -423,7 +563,6 @@ button.danger {
|
|
|
423
563
|
margin: 1.5rem 0 0.75rem;
|
|
424
564
|
padding: 2rem;
|
|
425
565
|
border: 1px solid var(--line);
|
|
426
|
-
border-radius: 10px;
|
|
427
566
|
background: var(--surface);
|
|
428
567
|
}
|
|
429
568
|
|
|
@@ -468,11 +607,11 @@ button.danger {
|
|
|
468
607
|
}
|
|
469
608
|
|
|
470
609
|
.conn.live::before {
|
|
471
|
-
background:
|
|
610
|
+
background: var(--success);
|
|
472
611
|
}
|
|
473
612
|
|
|
474
613
|
.conn.connecting::before {
|
|
475
|
-
background:
|
|
614
|
+
background: var(--warning);
|
|
476
615
|
animation: blink 1s steps(2, start) infinite;
|
|
477
616
|
}
|
|
478
617
|
|
|
@@ -487,7 +626,6 @@ button.danger {
|
|
|
487
626
|
margin: 0.75rem 0;
|
|
488
627
|
padding: 0;
|
|
489
628
|
border: 1px solid var(--line);
|
|
490
|
-
border-radius: 10px;
|
|
491
629
|
background: var(--surface);
|
|
492
630
|
overflow: hidden;
|
|
493
631
|
}
|
|
@@ -537,9 +675,9 @@ button.danger {
|
|
|
537
675
|
.activity-status {
|
|
538
676
|
margin: -0.15rem 0 0.65rem;
|
|
539
677
|
padding: 0.65rem 0.8rem;
|
|
540
|
-
border-left: 3px solid
|
|
541
|
-
background:
|
|
542
|
-
color:
|
|
678
|
+
border-left: 3px solid var(--warning);
|
|
679
|
+
background: color-mix(in oklab, var(--warning) 8%, transparent);
|
|
680
|
+
color: var(--warning);
|
|
543
681
|
font-size: 0.88rem;
|
|
544
682
|
}
|
|
545
683
|
|
|
@@ -548,9 +686,8 @@ button.danger {
|
|
|
548
686
|
.timeout-callout {
|
|
549
687
|
margin: 1.25rem 0;
|
|
550
688
|
padding: 1rem 1.1rem;
|
|
551
|
-
border: 1px solid
|
|
552
|
-
|
|
553
|
-
background: #fff9e8;
|
|
689
|
+
border: 1px solid color-mix(in oklab, var(--warning) 40%, transparent);
|
|
690
|
+
background: color-mix(in oklab, var(--warning) 8%, transparent);
|
|
554
691
|
}
|
|
555
692
|
|
|
556
693
|
.timeout-callout h2 {
|
|
@@ -560,7 +697,7 @@ button.danger {
|
|
|
560
697
|
.proof {
|
|
561
698
|
padding: 0.65rem 0.8rem;
|
|
562
699
|
border-left: 3px solid var(--accent);
|
|
563
|
-
background:
|
|
700
|
+
background: color-mix(in oklab, var(--accent) 10%, transparent);
|
|
564
701
|
font-size: 0.9rem;
|
|
565
702
|
}
|
|
566
703
|
|
|
@@ -677,7 +814,6 @@ button.danger {
|
|
|
677
814
|
width: 100%;
|
|
678
815
|
max-width: none;
|
|
679
816
|
padding: 0.08rem 0.65rem;
|
|
680
|
-
border-radius: 6px;
|
|
681
817
|
}
|
|
682
818
|
|
|
683
819
|
.msg.group-start {
|
|
@@ -691,7 +827,7 @@ button.danger {
|
|
|
691
827
|
|
|
692
828
|
.msg:hover,
|
|
693
829
|
.msg:focus-within {
|
|
694
|
-
background:
|
|
830
|
+
background: var(--shade);
|
|
695
831
|
}
|
|
696
832
|
|
|
697
833
|
.msg-gutter {
|
|
@@ -706,16 +842,15 @@ button.danger {
|
|
|
706
842
|
place-items: center;
|
|
707
843
|
width: 2.25rem;
|
|
708
844
|
height: 2.25rem;
|
|
709
|
-
|
|
710
|
-
background: #e8f3ee;
|
|
845
|
+
background: color-mix(in oklab, var(--accent) 10%, transparent);
|
|
711
846
|
color: var(--accent);
|
|
712
847
|
font-size: 0.86rem;
|
|
713
848
|
font-weight: 800;
|
|
714
849
|
}
|
|
715
850
|
|
|
716
851
|
.msg.agent .msg-avatar {
|
|
717
|
-
background:
|
|
718
|
-
color:
|
|
852
|
+
background: color-mix(in oklab, var(--info) 12%, transparent);
|
|
853
|
+
color: var(--info);
|
|
719
854
|
}
|
|
720
855
|
|
|
721
856
|
.msg-compact-time {
|
|
@@ -765,13 +900,12 @@ button.danger {
|
|
|
765
900
|
}
|
|
766
901
|
|
|
767
902
|
.msg.agent .msg-author {
|
|
768
|
-
color:
|
|
903
|
+
color: var(--info);
|
|
769
904
|
}
|
|
770
905
|
|
|
771
906
|
.mention {
|
|
772
|
-
background:
|
|
907
|
+
background: color-mix(in oklab, var(--accent) 10%, transparent);
|
|
773
908
|
color: var(--accent);
|
|
774
|
-
border-radius: 4px;
|
|
775
909
|
padding: 0 0.15em;
|
|
776
910
|
font-weight: 600;
|
|
777
911
|
}
|
|
@@ -805,9 +939,8 @@ button.danger {
|
|
|
805
939
|
.chat-agent-error {
|
|
806
940
|
margin: 0 auto 0.65rem;
|
|
807
941
|
padding: 0.65rem 0.75rem;
|
|
808
|
-
border: 1px solid
|
|
809
|
-
|
|
810
|
-
background: #fff5f3;
|
|
942
|
+
border: 1px solid color-mix(in oklab, var(--danger) 40%, transparent);
|
|
943
|
+
background: color-mix(in oklab, var(--danger) 8%, transparent);
|
|
811
944
|
display: flex;
|
|
812
945
|
align-items: center;
|
|
813
946
|
justify-content: space-between;
|
|
@@ -856,22 +989,17 @@ button.danger {
|
|
|
856
989
|
min-height: 7.5rem;
|
|
857
990
|
padding: 0;
|
|
858
991
|
overflow: visible;
|
|
859
|
-
border:
|
|
860
|
-
|
|
861
|
-
|
|
992
|
+
border: 0;
|
|
993
|
+
outline: 2px dotted color-mix(in oklab, var(--muted) 50%, transparent);
|
|
994
|
+
outline-offset: -1px;
|
|
995
|
+
background: transparent;
|
|
862
996
|
margin: 0;
|
|
863
|
-
box-shadow: 0 1px 2px rgb(26 25 23 / 5%);
|
|
864
997
|
cursor: text;
|
|
865
|
-
transition:
|
|
866
|
-
border-color 120ms ease,
|
|
867
|
-
box-shadow 120ms ease;
|
|
868
998
|
}
|
|
869
999
|
|
|
870
1000
|
.composer:focus-within {
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
0 0 0 1px var(--ink),
|
|
874
|
-
0 3px 10px rgb(26 25 23 / 7%);
|
|
1001
|
+
outline-style: dashed;
|
|
1002
|
+
outline-color: var(--muted);
|
|
875
1003
|
}
|
|
876
1004
|
|
|
877
1005
|
.composer-input-surface {
|
|
@@ -893,9 +1021,9 @@ button.danger {
|
|
|
893
1021
|
border: 0;
|
|
894
1022
|
border-radius: 0;
|
|
895
1023
|
outline: 0;
|
|
896
|
-
background:
|
|
897
|
-
|
|
898
|
-
line-height: 1.
|
|
1024
|
+
background: transparent;
|
|
1025
|
+
color: var(--ink);
|
|
1026
|
+
line-height: 1.5;
|
|
899
1027
|
}
|
|
900
1028
|
|
|
901
1029
|
.composer textarea:focus-visible {
|
|
@@ -926,8 +1054,7 @@ button.danger {
|
|
|
926
1054
|
min-height: 2.15rem;
|
|
927
1055
|
padding: 0.28rem 0.58rem;
|
|
928
1056
|
border: 1px solid var(--line);
|
|
929
|
-
|
|
930
|
-
background: #f7f5f1;
|
|
1057
|
+
background: var(--shade);
|
|
931
1058
|
color: var(--ink);
|
|
932
1059
|
cursor: pointer;
|
|
933
1060
|
font-size: 0.78rem;
|
|
@@ -937,8 +1064,8 @@ button.danger {
|
|
|
937
1064
|
}
|
|
938
1065
|
|
|
939
1066
|
.composer-mode-selector:hover {
|
|
940
|
-
border-color:
|
|
941
|
-
background: var(--
|
|
1067
|
+
border-color: var(--muted);
|
|
1068
|
+
background: var(--shade-hover);
|
|
942
1069
|
}
|
|
943
1070
|
|
|
944
1071
|
.composer-mode-selector:has(input:focus-visible) {
|
|
@@ -1002,8 +1129,7 @@ button.danger {
|
|
|
1002
1129
|
border-top: 1px solid var(--line);
|
|
1003
1130
|
padding: 0.7rem clamp(0.75rem, 3vw, 2rem)
|
|
1004
1131
|
calc(0.35rem + env(safe-area-inset-bottom));
|
|
1005
|
-
background: var(--
|
|
1006
|
-
box-shadow: 0 -8px 22px rgb(56 48 35 / 5%);
|
|
1132
|
+
background: var(--bg);
|
|
1007
1133
|
}
|
|
1008
1134
|
|
|
1009
1135
|
.chat-composer-dock > * {
|
|
@@ -1023,8 +1149,7 @@ button.danger {
|
|
|
1023
1149
|
min-width: 12rem;
|
|
1024
1150
|
background: var(--surface);
|
|
1025
1151
|
border: 1px solid var(--line);
|
|
1026
|
-
|
|
1027
|
-
box-shadow: 0 6px 20px rgb(26 25 23 / 0.08);
|
|
1152
|
+
box-shadow: 0 6px 20px var(--shadow);
|
|
1028
1153
|
}
|
|
1029
1154
|
|
|
1030
1155
|
.mention-popover button {
|
|
@@ -1036,7 +1161,6 @@ button.danger {
|
|
|
1036
1161
|
color: inherit;
|
|
1037
1162
|
font-weight: 500;
|
|
1038
1163
|
padding: 0.35rem 0.6rem;
|
|
1039
|
-
border-radius: 6px;
|
|
1040
1164
|
}
|
|
1041
1165
|
|
|
1042
1166
|
.mention-popover button.active,
|
|
@@ -1053,7 +1177,7 @@ button.danger {
|
|
|
1053
1177
|
border: 0;
|
|
1054
1178
|
border-left: 1px solid var(--line);
|
|
1055
1179
|
border-radius: 0;
|
|
1056
|
-
background:
|
|
1180
|
+
background: var(--bg);
|
|
1057
1181
|
}
|
|
1058
1182
|
|
|
1059
1183
|
.chat-sidebar-toggle {
|
|
@@ -1116,11 +1240,11 @@ button.danger {
|
|
|
1116
1240
|
border-left: 1px solid var(--line);
|
|
1117
1241
|
background: var(--surface);
|
|
1118
1242
|
color: var(--ink);
|
|
1119
|
-
box-shadow: -18px 0 45px
|
|
1243
|
+
box-shadow: -18px 0 45px var(--shadow);
|
|
1120
1244
|
}
|
|
1121
1245
|
|
|
1122
1246
|
.agent-stream-drawer::backdrop {
|
|
1123
|
-
background:
|
|
1247
|
+
background: var(--shadow);
|
|
1124
1248
|
backdrop-filter: blur(2px);
|
|
1125
1249
|
}
|
|
1126
1250
|
|
|
@@ -1225,18 +1349,17 @@ button.danger {
|
|
|
1225
1349
|
min-width: 0;
|
|
1226
1350
|
padding: 0.7rem;
|
|
1227
1351
|
border: 1px solid var(--line);
|
|
1228
|
-
border-radius: 8px;
|
|
1229
1352
|
background: var(--bg);
|
|
1230
1353
|
}
|
|
1231
1354
|
|
|
1232
1355
|
.agent-stream-part.reasoning {
|
|
1233
|
-
border-color:
|
|
1234
|
-
background:
|
|
1356
|
+
border-color: color-mix(in oklab, var(--info) 35%, transparent);
|
|
1357
|
+
background: color-mix(in oklab, var(--info) 6%, transparent);
|
|
1235
1358
|
}
|
|
1236
1359
|
|
|
1237
1360
|
.agent-stream-part.tool {
|
|
1238
|
-
border-color:
|
|
1239
|
-
background:
|
|
1361
|
+
border-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
1362
|
+
background: color-mix(in oklab, var(--accent) 5%, transparent);
|
|
1240
1363
|
}
|
|
1241
1364
|
|
|
1242
1365
|
.agent-stream-part > header,
|
|
@@ -1284,7 +1407,6 @@ button.danger {
|
|
|
1284
1407
|
margin: 0.4rem 0 0;
|
|
1285
1408
|
padding: 0.55rem;
|
|
1286
1409
|
overflow: auto;
|
|
1287
|
-
border-radius: 6px;
|
|
1288
1410
|
background: var(--code-bg);
|
|
1289
1411
|
font-size: 0.68rem;
|
|
1290
1412
|
white-space: pre-wrap;
|
|
@@ -1324,7 +1446,6 @@ button.danger {
|
|
|
1324
1446
|
.agent-stream-empty {
|
|
1325
1447
|
margin: 1rem 0;
|
|
1326
1448
|
padding: 1rem;
|
|
1327
|
-
border-radius: 8px;
|
|
1328
1449
|
background: var(--code-bg);
|
|
1329
1450
|
color: var(--muted);
|
|
1330
1451
|
text-align: center;
|
|
@@ -1384,9 +1505,8 @@ button.danger {
|
|
|
1384
1505
|
min-height: auto;
|
|
1385
1506
|
overflow: visible;
|
|
1386
1507
|
border: 1px solid var(--line);
|
|
1387
|
-
border-radius: 8px;
|
|
1388
1508
|
background: var(--surface);
|
|
1389
|
-
box-shadow: 0 8px 26px
|
|
1509
|
+
box-shadow: 0 8px 26px var(--shadow);
|
|
1390
1510
|
}
|
|
1391
1511
|
|
|
1392
1512
|
.chat-sidebar-toggle {
|
|
@@ -1489,11 +1609,16 @@ button.danger {
|
|
|
1489
1609
|
|
|
1490
1610
|
/* ── durable agent ──────────────────────────────────────────────── */
|
|
1491
1611
|
|
|
1612
|
+
.agent-trace {
|
|
1613
|
+
display: inline-block;
|
|
1614
|
+
margin-top: 0.75rem;
|
|
1615
|
+
font-size: 0.8rem;
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1492
1618
|
.agent-compaction {
|
|
1493
1619
|
margin: 1rem 0;
|
|
1494
1620
|
padding: 0.75rem 1rem;
|
|
1495
1621
|
border: 1px solid var(--line);
|
|
1496
|
-
border-radius: 12px;
|
|
1497
1622
|
background: var(--surface);
|
|
1498
1623
|
}
|
|
1499
1624
|
|
|
@@ -1624,7 +1749,6 @@ button.danger {
|
|
|
1624
1749
|
.agent-compaction-event {
|
|
1625
1750
|
padding: 0.65rem 0.85rem;
|
|
1626
1751
|
border: 1px dashed var(--line);
|
|
1627
|
-
border-radius: 9px;
|
|
1628
1752
|
background: var(--code-bg);
|
|
1629
1753
|
}
|
|
1630
1754
|
|
|
@@ -1648,7 +1772,6 @@ button.danger {
|
|
|
1648
1772
|
overflow: hidden;
|
|
1649
1773
|
margin: 1rem 0;
|
|
1650
1774
|
border: 1px solid var(--line);
|
|
1651
|
-
border-radius: 12px;
|
|
1652
1775
|
background: var(--surface);
|
|
1653
1776
|
}
|
|
1654
1777
|
|
|
@@ -1674,7 +1797,6 @@ button.danger {
|
|
|
1674
1797
|
|
|
1675
1798
|
.agent-message.user > div {
|
|
1676
1799
|
padding: 0.7rem 0.85rem;
|
|
1677
|
-
border-radius: 9px;
|
|
1678
1800
|
background: var(--code-bg);
|
|
1679
1801
|
}
|
|
1680
1802
|
|
|
@@ -1731,14 +1853,13 @@ button.danger {
|
|
|
1731
1853
|
padding: 0.75rem 0.85rem;
|
|
1732
1854
|
border: 1px solid var(--line);
|
|
1733
1855
|
border-left: 3px solid var(--accent);
|
|
1734
|
-
border-radius: 8px;
|
|
1735
1856
|
background: var(--bg);
|
|
1736
1857
|
}
|
|
1737
1858
|
|
|
1738
1859
|
.tool-card.approval-requested,
|
|
1739
1860
|
.tool-card.approval-responded,
|
|
1740
1861
|
.tool-card.output-denied {
|
|
1741
|
-
border-left-color:
|
|
1862
|
+
border-left-color: var(--warning);
|
|
1742
1863
|
}
|
|
1743
1864
|
|
|
1744
1865
|
.tool-card > div {
|
|
@@ -1774,9 +1895,8 @@ button.danger {
|
|
|
1774
1895
|
justify-content: space-between;
|
|
1775
1896
|
margin: 0 1rem 1rem;
|
|
1776
1897
|
padding: 1rem 1.1rem;
|
|
1777
|
-
border: 1px solid
|
|
1778
|
-
|
|
1779
|
-
background: #fffaec;
|
|
1898
|
+
border: 1px solid color-mix(in oklab, var(--warning) 40%, transparent);
|
|
1899
|
+
background: color-mix(in oklab, var(--warning) 8%, transparent);
|
|
1780
1900
|
}
|
|
1781
1901
|
|
|
1782
1902
|
.approval-card h2 {
|
|
@@ -1802,7 +1922,6 @@ button.danger {
|
|
|
1802
1922
|
.agent-queue {
|
|
1803
1923
|
margin: 0 1rem 0.85rem;
|
|
1804
1924
|
border: 1px solid var(--line);
|
|
1805
|
-
border-radius: 9px;
|
|
1806
1925
|
background: var(--bg);
|
|
1807
1926
|
overflow: hidden;
|
|
1808
1927
|
}
|
|
@@ -1829,7 +1948,6 @@ button.danger {
|
|
|
1829
1948
|
.agent-queue-header h3 span {
|
|
1830
1949
|
min-width: 1.2rem;
|
|
1831
1950
|
padding: 0 0.3rem;
|
|
1832
|
-
border-radius: 4px;
|
|
1833
1951
|
background: var(--line);
|
|
1834
1952
|
text-align: center;
|
|
1835
1953
|
font-size: 0.68rem;
|
|
@@ -1842,7 +1960,7 @@ button.danger {
|
|
|
1842
1960
|
}
|
|
1843
1961
|
|
|
1844
1962
|
.agent-queue-status.paused {
|
|
1845
|
-
color:
|
|
1963
|
+
color: var(--warning);
|
|
1846
1964
|
}
|
|
1847
1965
|
|
|
1848
1966
|
.agent-queue-list {
|
|
@@ -1893,7 +2011,6 @@ button.danger {
|
|
|
1893
2011
|
height: 1.9rem;
|
|
1894
2012
|
padding: 0;
|
|
1895
2013
|
border: 0;
|
|
1896
|
-
border-radius: 5px;
|
|
1897
2014
|
background: transparent;
|
|
1898
2015
|
color: var(--muted);
|
|
1899
2016
|
}
|
|
@@ -1914,7 +2031,7 @@ button.danger {
|
|
|
1914
2031
|
}
|
|
1915
2032
|
|
|
1916
2033
|
.agent-queue-actions .agent-queue-remove:hover:not(:disabled) {
|
|
1917
|
-
background:
|
|
2034
|
+
background: color-mix(in oklab, var(--danger) 12%, transparent);
|
|
1918
2035
|
color: var(--danger);
|
|
1919
2036
|
}
|
|
1920
2037
|
|
|
@@ -1987,8 +2104,106 @@ button.danger {
|
|
|
1987
2104
|
background: var(--surface);
|
|
1988
2105
|
}
|
|
1989
2106
|
|
|
1990
|
-
.agent-
|
|
2107
|
+
.agent-message-field {
|
|
2108
|
+
display: grid;
|
|
2109
|
+
gap: 0.3rem;
|
|
2110
|
+
min-width: 0;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2113
|
+
.agent-composer {
|
|
2114
|
+
display: flex;
|
|
2115
|
+
flex-direction: column;
|
|
2116
|
+
min-width: 0;
|
|
2117
|
+
min-height: 8.5rem;
|
|
1991
2118
|
resize: vertical;
|
|
2119
|
+
overflow: hidden;
|
|
2120
|
+
border: 0;
|
|
2121
|
+
outline: 2px dotted color-mix(in oklab, var(--muted) 50%, transparent);
|
|
2122
|
+
outline-offset: -1px;
|
|
2123
|
+
background: transparent;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
.agent-composer:focus-within {
|
|
2127
|
+
outline-style: dashed;
|
|
2128
|
+
outline-color: var(--muted);
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2131
|
+
.agent-composer textarea {
|
|
2132
|
+
display: block;
|
|
2133
|
+
flex: 1;
|
|
2134
|
+
width: 100%;
|
|
2135
|
+
min-height: 3rem;
|
|
2136
|
+
padding: 0.65rem;
|
|
2137
|
+
resize: none;
|
|
2138
|
+
border: 0;
|
|
2139
|
+
border-radius: 0;
|
|
2140
|
+
outline: 0;
|
|
2141
|
+
background: transparent;
|
|
2142
|
+
font-weight: 400;
|
|
2143
|
+
line-height: 1.5;
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
.agent-composer textarea:focus-visible {
|
|
2147
|
+
outline: 0;
|
|
2148
|
+
}
|
|
2149
|
+
|
|
2150
|
+
.agent-composer-toolbar {
|
|
2151
|
+
flex-shrink: 0;
|
|
2152
|
+
padding: 0.25rem 0.35rem 0.4rem;
|
|
2153
|
+
}
|
|
2154
|
+
|
|
2155
|
+
.agent-model-controls {
|
|
2156
|
+
display: flex;
|
|
2157
|
+
flex: 1;
|
|
2158
|
+
align-items: center;
|
|
2159
|
+
flex-wrap: wrap;
|
|
2160
|
+
min-width: 0;
|
|
2161
|
+
gap: 0.35rem;
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
.agent-model-choice {
|
|
2165
|
+
flex: 0 1 auto;
|
|
2166
|
+
min-width: 0;
|
|
2167
|
+
max-width: 24rem;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
.agent-model-controls input,
|
|
2171
|
+
.agent-model-controls select {
|
|
2172
|
+
min-width: 0;
|
|
2173
|
+
max-width: 100%;
|
|
2174
|
+
height: 2.1rem;
|
|
2175
|
+
padding: 0.3rem 0.45rem;
|
|
2176
|
+
border-color: transparent;
|
|
2177
|
+
background: transparent;
|
|
2178
|
+
font-size: 0.85rem;
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
.agent-model-controls input {
|
|
2182
|
+
field-sizing: content;
|
|
2183
|
+
width: auto;
|
|
2184
|
+
text-overflow: ellipsis;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
.agent-model-controls input:hover,
|
|
2188
|
+
.agent-model-controls select:hover {
|
|
2189
|
+
border-color: var(--line);
|
|
2190
|
+
background: var(--surface);
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
.agent-fast-toggle {
|
|
2194
|
+
display: grid;
|
|
2195
|
+
flex: 0 0 2.1rem;
|
|
2196
|
+
place-items: center;
|
|
2197
|
+
width: 2.1rem;
|
|
2198
|
+
height: 2.1rem;
|
|
2199
|
+
padding: 0;
|
|
2200
|
+
border-color: transparent;
|
|
2201
|
+
background: transparent;
|
|
2202
|
+
color: var(--muted);
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
.agent-fast-toggle[aria-pressed='true'] {
|
|
2206
|
+
color: var(--warning);
|
|
1992
2207
|
}
|
|
1993
2208
|
|
|
1994
2209
|
.agent-new .agent-transcript {
|
|
@@ -2107,9 +2322,8 @@ button.compact {
|
|
|
2107
2322
|
.document-editor {
|
|
2108
2323
|
overflow: hidden;
|
|
2109
2324
|
border: 1px solid var(--line);
|
|
2110
|
-
border-radius: 12px;
|
|
2111
2325
|
background: var(--surface);
|
|
2112
|
-
box-shadow: 0 12px 35px
|
|
2326
|
+
box-shadow: 0 12px 35px var(--shadow);
|
|
2113
2327
|
}
|
|
2114
2328
|
|
|
2115
2329
|
.document-title {
|
|
@@ -2139,7 +2353,7 @@ button.compact {
|
|
|
2139
2353
|
|
|
2140
2354
|
.document-title::placeholder,
|
|
2141
2355
|
.document-body .cm-placeholder {
|
|
2142
|
-
color:
|
|
2356
|
+
color: var(--faint);
|
|
2143
2357
|
}
|
|
2144
2358
|
|
|
2145
2359
|
/* Out of flow: an in-flow placeholder makes a peer's caret at
|
|
@@ -2156,7 +2370,7 @@ button.compact {
|
|
|
2156
2370
|
.document-body .cm-ySelectionInfo {
|
|
2157
2371
|
opacity: 1;
|
|
2158
2372
|
font-family: inherit;
|
|
2159
|
-
|
|
2373
|
+
color: #040404;
|
|
2160
2374
|
padding: 0 4px;
|
|
2161
2375
|
}
|
|
2162
2376
|
|
|
@@ -2182,23 +2396,26 @@ button.compact {
|
|
|
2182
2396
|
|
|
2183
2397
|
.document-body .cm-content {
|
|
2184
2398
|
padding: 1rem 0.75rem 1.5rem;
|
|
2185
|
-
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
.document-body .cm-cursor {
|
|
2402
|
+
border-left-color: var(--accent);
|
|
2186
2403
|
}
|
|
2187
2404
|
|
|
2188
2405
|
.document-body .cm-gutters {
|
|
2189
2406
|
border-right: 1px solid var(--line);
|
|
2190
|
-
color:
|
|
2407
|
+
color: var(--faint);
|
|
2191
2408
|
background: var(--bg);
|
|
2192
2409
|
}
|
|
2193
2410
|
|
|
2194
2411
|
.document-body .cm-activeLine,
|
|
2195
2412
|
.document-body .cm-activeLineGutter {
|
|
2196
|
-
background:
|
|
2413
|
+
background: var(--shade);
|
|
2197
2414
|
}
|
|
2198
2415
|
|
|
2199
2416
|
.document-body .cm-selectionBackground,
|
|
2200
2417
|
.document-body .cm-content ::selection {
|
|
2201
|
-
background:
|
|
2418
|
+
background: color-mix(in oklab, var(--accent) 25%, transparent) !important;
|
|
2202
2419
|
}
|
|
2203
2420
|
|
|
2204
2421
|
.editor-status {
|
|
@@ -2232,7 +2449,7 @@ button.compact {
|
|
|
2232
2449
|
}
|
|
2233
2450
|
|
|
2234
2451
|
.sync-state.saving::before {
|
|
2235
|
-
background:
|
|
2452
|
+
background: var(--warning);
|
|
2236
2453
|
animation: blink 1s steps(2, start) infinite;
|
|
2237
2454
|
}
|
|
2238
2455
|
|
|
@@ -2259,14 +2476,15 @@ button.compact {
|
|
|
2259
2476
|
position: relative;
|
|
2260
2477
|
overflow: hidden;
|
|
2261
2478
|
border: 1px solid var(--line);
|
|
2262
|
-
|
|
2263
|
-
background: var(--
|
|
2264
|
-
|
|
2479
|
+
background-color: var(--surface);
|
|
2480
|
+
background-image: radial-gradient(var(--dot) 1px, transparent 1.25px);
|
|
2481
|
+
background-size: 16px 16px;
|
|
2482
|
+
background-position: 4px 4px;
|
|
2265
2483
|
}
|
|
2266
2484
|
|
|
2267
2485
|
.canvas-stage.historical {
|
|
2268
|
-
border-color:
|
|
2269
|
-
background:
|
|
2486
|
+
border-color: color-mix(in oklab, var(--warning) 40%, transparent);
|
|
2487
|
+
background-color: color-mix(in oklab, var(--warning) 4%, transparent);
|
|
2270
2488
|
}
|
|
2271
2489
|
|
|
2272
2490
|
.canvas-stage.historical .canvas-svg {
|
|
@@ -2334,9 +2552,9 @@ button.compact {
|
|
|
2334
2552
|
}
|
|
2335
2553
|
|
|
2336
2554
|
.canvas-status.replaying {
|
|
2337
|
-
border-top-color:
|
|
2338
|
-
background:
|
|
2339
|
-
color:
|
|
2555
|
+
border-top-color: color-mix(in oklab, var(--warning) 40%, transparent);
|
|
2556
|
+
background: color-mix(in oklab, var(--warning) 8%, transparent);
|
|
2557
|
+
color: var(--warning);
|
|
2340
2558
|
}
|
|
2341
2559
|
|
|
2342
2560
|
.canvas-scrubber {
|
|
@@ -2367,11 +2585,6 @@ button.compact {
|
|
|
2367
2585
|
}
|
|
2368
2586
|
|
|
2369
2587
|
@media (max-width: 680px) {
|
|
2370
|
-
.site-header nav {
|
|
2371
|
-
gap: 0.7rem;
|
|
2372
|
-
font-size: 0.9rem;
|
|
2373
|
-
}
|
|
2374
|
-
|
|
2375
2588
|
.canvas-toolbar {
|
|
2376
2589
|
align-items: stretch;
|
|
2377
2590
|
flex-direction: column;
|