@rexvane/piweb 0.3.16 → 0.3.18
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +8 -11
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +6 -6
- package/.next/react-loadable-manifest.json +4 -16
- package/.next/required-server-files.js +1 -3
- package/.next/required-server-files.json +1 -3
- package/.next/routes-manifest.json +0 -20
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +4 -7
- package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -7
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -5
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -5
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/tree/route.js +1 -1
- package/.next/server/app/api/agent/[id]/tree/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +1 -1
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/files/route.js +1 -1
- package/.next/server/app/api/files/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route.js +2 -2
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/growth/route.js +1 -1
- package/.next/server/app/api/growth/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/pi-settings/route.js +1 -1
- package/.next/server/app/api/pi-settings/route.js.nft.json +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/plugins/route.js.nft.json +1 -1
- package/.next/server/app/api/prompts/route.js +1 -1
- package/.next/server/app/api/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/security/route.js +1 -1
- package/.next/server/app/api/security/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/import/route.js +3 -3
- package/.next/server/app/api/sessions/import/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route.js +2 -2
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/api/web-auth/route.js +1 -1
- package/.next/server/app/api/workspaces/route.js +1 -1
- package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +6 -9
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -7
- package/.next/server/app/index.segments/_full.segment.rsc +6 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -5
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +5 -8
- package/.next/server/app/login.segments/_full.segment.rsc +5 -8
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -5
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -6
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +8 -11
- package/.next/server/chunks/496.js +1 -1
- package/.next/server/chunks/532.js +1 -1
- package/.next/server/chunks/686.js +4 -8
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/2608.ec8ff1f5767c9056.js +1 -0
- package/.next/static/chunks/2716.93be8ad5c970c516.js +1 -0
- package/.next/static/chunks/4632.112d2e893d48d188.js +1 -0
- package/.next/static/chunks/4673.c1fb1580efc6ace7.js +1 -0
- package/.next/static/chunks/4686-f4a037d609cea3f2.js +1 -0
- package/.next/static/chunks/app/_global-error/page-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/tree/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/config/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/files/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/git/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/growth/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/health/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/models/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/pi-settings/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/prompts/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/security/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/sessions/import/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/skills/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/update/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/version/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/api/workspaces/route-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/app/page-b51087831582ee37.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f77e9ede9808b18e.js +1 -0
- package/.next/static/chunks/webpack-c31263fd83d75ce6.js +1 -0
- package/.next/static/css/0cd968b9b62035b5.css +1 -0
- package/.next/static/en03hnPiuro0rnf8QkFEe/_buildManifest.js +1 -0
- package/.next/types/routes.d.ts +1 -4
- package/.next/types/validator.ts +0 -27
- package/README.md +17 -29
- package/assets/archive.jpg +0 -0
- package/assets/growth-1.jpg +0 -0
- package/assets/growth-2.jpg +0 -0
- package/assets/import.jpg +0 -0
- package/assets/main.jpg +0 -0
- package/assets/outline.jpg +0 -0
- package/assets/prompts-1.jpg +0 -0
- package/assets/prompts-2.jpg +0 -0
- package/assets/providers-1.jpg +0 -0
- package/assets/providers-2.jpg +0 -0
- package/assets/providers-3.jpg +0 -0
- package/assets/trace-1.jpg +0 -0
- package/assets/trace-2.png +0 -0
- package/assets/trace-3.png +0 -0
- package/assets/trace-4.png +0 -0
- package/assets/viewer-1.jpg +0 -0
- package/assets/viewer-2.jpg +0 -0
- package/bin/pi.js +50 -0
- package/next.config.ts +32 -7
- package/package.json +4 -9
- package/scripts/launcher.mjs +1 -1
- package/scripts/pick-folder.ps1 +2 -11
- package/scripts/release.mjs +31 -11
- package/scripts/verify-package.mjs +0 -53
- package/src/app/api/config/route.ts +1 -4
- package/src/app/api/growth/route.ts +14 -14
- package/src/app/api/models/route.ts +2 -1
- package/src/app/api/security/route.ts +3 -8
- package/src/app/api/update/route.ts +2 -8
- package/src/app/globals.css +92 -777
- package/src/app/layout.tsx +6 -13
- package/src/components/AppShell.tsx +229 -521
- package/src/components/ChatInput.tsx +26 -153
- package/src/components/ChatWindow.tsx +231 -51
- package/src/components/ContextMeter.tsx +17 -11
- package/src/components/FileViewer.tsx +11 -10
- package/src/components/GitPanel.tsx +11 -13
- package/src/components/ModelSelector.tsx +6 -19
- package/src/components/PiMark.tsx +38 -5
- package/src/components/ProjectPanel.tsx +111 -95
- package/src/components/PromptPanel.tsx +51 -132
- package/src/components/SessionImportSection.tsx +37 -53
- package/src/components/SessionSidebar.tsx +57 -159
- package/src/components/SettingsPanel.tsx +193 -330
- package/src/components/icons.tsx +0 -23
- package/src/hooks/useGrowth.ts +123 -156
- package/src/hooks/usePiWeb.ts +15 -122
- package/src/i18n.tsx +42 -98
- package/src/lib/agent-manager.ts +21 -187
- package/src/lib/command-validation.ts +1 -9
- package/src/lib/growth-service.ts +390 -166
- package/src/lib/growth-tracker.ts +64 -264
- package/src/lib/growth-turns.ts +31 -1
- package/src/lib/models/model-scope.ts +15 -0
- package/src/lib/models-service.ts +16 -0
- package/src/lib/pi-settings.ts +7 -0
- package/src/lib/pi.ts +2 -3
- package/src/lib/session-import/claude.ts +2 -13
- package/src/lib/session-import/codex.ts +8 -44
- package/src/lib/session-import/files.ts +0 -14
- package/src/lib/session-import/grok.ts +24 -54
- package/src/lib/session-import/index.ts +0 -5
- package/src/lib/session-import/types.ts +0 -12
- package/src/lib/session-import/writer.ts +3 -8
- package/src/lib/skills-service.ts +9 -16
- package/src/lib/theme.ts +1 -68
- package/src/lib/trajectory.ts +0 -1
- package/src/lib/types.ts +27 -36
- package/tsconfig.json +2 -1
- package/.next/server/app/api/swarm/[id]/route.js +0 -1
- package/.next/server/app/api/swarm/[id]/route.js.nft.json +0 -1
- package/.next/server/app/api/swarm/[id]/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/swarm/route.js +0 -1
- package/.next/server/app/api/swarm/route.js.nft.json +0 -1
- package/.next/server/app/api/swarm/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/tests/route.js +0 -2
- package/.next/server/app/api/tests/route.js.nft.json +0 -1
- package/.next/server/app/api/tests/route_client-reference-manifest.js +0 -1
- package/.next/server/chunks/757.js +0 -1
- package/.next/server/chunks/775.js +0 -3
- package/.next/static/0t1jBUAuVaTFTXxRyIo3q/_buildManifest.js +0 -1
- package/.next/static/chunks/2608.43c58236c9cce8e6.js +0 -1
- package/.next/static/chunks/2716.4ec42df1d51354c9.js +0 -1
- package/.next/static/chunks/4632.62139b565b657aac.js +0 -1
- package/.next/static/chunks/4673.7796104395deb8d7.js +0 -1
- package/.next/static/chunks/4686-17f21a006739a596.js +0 -1
- package/.next/static/chunks/7577.10af9bb661652da8.js +0 -1
- package/.next/static/chunks/8866.38ec4ac4ee5a1b74.js +0 -1
- package/.next/static/chunks/app/_global-error/page-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/tree/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/config/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/files/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/git/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/growth/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/health/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/models/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/pi-settings/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/prompts/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/security/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/sessions/import/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/skills/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/swarm/[id]/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/swarm/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/tests/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/update/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/version/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/web-auth/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/api/workspaces/route-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/app/page-14379b8060d5cf07.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5148173b3f55e415.js +0 -1
- package/.next/static/chunks/webpack-d1a69ad9edb38b11.js +0 -1
- package/.next/static/css/d0a0162cb481abe8.css +0 -1
- package/.next/types/app/api/swarm/[id]/route.ts +0 -353
- package/.next/types/app/api/swarm/route.ts +0 -353
- package/.next/types/app/api/tests/route.ts +0 -353
- package/assets/archive.png +0 -0
- package/assets/growth-1.png +0 -0
- package/assets/growth-2.png +0 -0
- package/assets/import.png +0 -0
- package/assets/main.png +0 -0
- package/assets/outline.png +0 -0
- package/assets/prompts-1.png +0 -0
- package/assets/prompts-2.png +0 -0
- package/assets/providers-1.png +0 -0
- package/assets/providers-2.png +0 -0
- package/assets/providers-3.png +0 -0
- package/assets/trace-1.png +0 -0
- package/assets/viewer-1.png +0 -0
- package/assets/viewer-2.png +0 -0
- package/scripts/managed-niubash-assets.mjs +0 -146
- package/scripts/prepare-niubash-packages.mjs +0 -182
- package/scripts/run-test-file.mjs +0 -34
- package/scripts/smoke-managed-niubash.mjs +0 -62
- package/scripts/verify-release-config.mjs +0 -24
- package/src/app/api/swarm/[id]/route.ts +0 -28
- package/src/app/api/swarm/route.ts +0 -24
- package/src/app/api/tests/route.ts +0 -27
- package/src/components/SwarmCoordinatorPod.tsx +0 -1021
- package/src/components/TestInspectorPod.tsx +0 -549
- package/src/lib/delegation.ts +0 -93
- package/src/lib/growth-rounds.ts +0 -84
- package/src/lib/managed-niubash.ts +0 -231
- package/src/lib/runtime-activity.ts +0 -27
- package/src/lib/session-import/lock.ts +0 -25
- package/src/lib/swarm-service.ts +0 -371
- package/src/lib/test-run-service.ts +0 -122
- package/src/lib/workflow.ts +0 -55
- /package/.next/static/{0t1jBUAuVaTFTXxRyIo3q → en03hnPiuro0rnf8QkFEe}/_ssgManifest.js +0 -0
package/src/app/globals.css
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
@import "tailwindcss";
|
|
2
2
|
|
|
3
|
-
@custom-variant dark (&:where([data-ds-dark-theme], [data-ds-dark-theme] *, .dark, .dark *));
|
|
4
|
-
|
|
5
3
|
/* ============================================================
|
|
6
4
|
Pi Web 视觉令牌
|
|
7
5
|
浅色默认,深色用 body[data-ds-dark-theme]
|
|
@@ -223,11 +221,49 @@ textarea::placeholder {
|
|
|
223
221
|
}
|
|
224
222
|
}
|
|
225
223
|
|
|
224
|
+
.piweb-conversation-width-handle {
|
|
225
|
+
position: absolute;
|
|
226
|
+
top: 0;
|
|
227
|
+
bottom: 0;
|
|
228
|
+
z-index: 3;
|
|
229
|
+
width: 12px;
|
|
230
|
+
cursor: col-resize;
|
|
231
|
+
touch-action: none;
|
|
232
|
+
}
|
|
233
|
+
.piweb-conversation-width-handle[data-side="left"] {
|
|
234
|
+
left: calc(50% - var(--dsh-chat-content-width) / 2 - 20px);
|
|
235
|
+
}
|
|
236
|
+
.piweb-conversation-width-handle[data-side="right"] {
|
|
237
|
+
right: calc(50% - var(--dsh-chat-content-width) / 2 - 20px);
|
|
238
|
+
}
|
|
239
|
+
.piweb-conversation-width-handle::after {
|
|
240
|
+
content: "";
|
|
241
|
+
position: absolute;
|
|
242
|
+
/* 常显的中间一小段:整条全高竖线会读成边框/分隔线,短抓手才读成"可拖"。
|
|
243
|
+
热区仍是 12px 全高(cursor: col-resize),手感不受影响。 */
|
|
244
|
+
top: 35%;
|
|
245
|
+
bottom: 35%;
|
|
246
|
+
left: 5px;
|
|
247
|
+
width: 2px;
|
|
248
|
+
border-radius: 2px;
|
|
249
|
+
background: var(--dsw-border-l3);
|
|
250
|
+
opacity: 0.3;
|
|
251
|
+
transition: opacity var(--ds-duration-fast);
|
|
252
|
+
}
|
|
253
|
+
.piweb-conversation-width-handle:hover::after,
|
|
254
|
+
.piweb-conversation-width-handle[data-dragging]::after,
|
|
255
|
+
.piweb-conversation-width-handle:focus-visible::after {
|
|
256
|
+
opacity: 1;
|
|
257
|
+
}
|
|
258
|
+
|
|
226
259
|
@media (max-width: 840px) {
|
|
227
260
|
:root {
|
|
228
261
|
--dsh-chat-content-width: 100%;
|
|
229
262
|
--dsh-composer-card-max-width: 100%;
|
|
230
263
|
}
|
|
264
|
+
.piweb-conversation-width-handle {
|
|
265
|
+
display: none;
|
|
266
|
+
}
|
|
231
267
|
|
|
232
268
|
.pi-main > .hairline-b {
|
|
233
269
|
padding-left: 56px;
|
|
@@ -258,14 +294,6 @@ textarea::placeholder {
|
|
|
258
294
|
.settings-title {
|
|
259
295
|
display: none;
|
|
260
296
|
}
|
|
261
|
-
|
|
262
|
-
.settings-row { flex-direction: column; align-items: stretch; gap: 10px; }
|
|
263
|
-
.settings-row-control { min-width: 0; }
|
|
264
|
-
.settings-row-control > .flex { flex-wrap: wrap; }
|
|
265
|
-
.settings-theme-grid, .settings-appearance-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
266
|
-
.settings-theme-grid > button { min-width: 0; padding: 10px 6px !important; border-radius: 12px !important; }
|
|
267
|
-
.settings-theme-grid > button:last-child:nth-child(odd) { grid-column: span 2; }
|
|
268
|
-
.settings-appearance-mode-grid > button { min-width: 0; padding: 10px 6px !important; border-radius: 12px !important; }
|
|
269
297
|
}
|
|
270
298
|
|
|
271
299
|
/* 滚动条 */
|
|
@@ -749,6 +777,18 @@ textarea::placeholder {
|
|
|
749
777
|
font-size: 13px;
|
|
750
778
|
line-height: 1.55;
|
|
751
779
|
}
|
|
780
|
+
.md-code-block {
|
|
781
|
+
position: relative;
|
|
782
|
+
}
|
|
783
|
+
.md-code-copy {
|
|
784
|
+
position: absolute;
|
|
785
|
+
top: 12px;
|
|
786
|
+
right: 12px;
|
|
787
|
+
z-index: 1;
|
|
788
|
+
}
|
|
789
|
+
.md-code-block pre {
|
|
790
|
+
padding-top: 40px;
|
|
791
|
+
}
|
|
752
792
|
.md table {
|
|
753
793
|
border-collapse: collapse;
|
|
754
794
|
margin: 0.7em 0;
|
|
@@ -897,36 +937,6 @@ body[data-ds-dark-theme] {
|
|
|
897
937
|
font-size: var(--piweb-chat-font-size);
|
|
898
938
|
line-height: 1.65;
|
|
899
939
|
}
|
|
900
|
-
.pw-user-message-clickable { cursor: text; transition: box-shadow 140ms ease; }
|
|
901
|
-
.pw-user-message-clickable:hover { box-shadow: inset 0 0 0 1px var(--dsw-border-l2); }
|
|
902
|
-
.pw-user-editor {
|
|
903
|
-
display: block;
|
|
904
|
-
width: 85%;
|
|
905
|
-
padding: 10px 12px 8px;
|
|
906
|
-
box-shadow: inset 0 0 0 1px var(--dsw-border-l2);
|
|
907
|
-
}
|
|
908
|
-
.pw-user-editor-input {
|
|
909
|
-
display: block;
|
|
910
|
-
width: 100%;
|
|
911
|
-
min-height: 28px;
|
|
912
|
-
max-height: 320px;
|
|
913
|
-
resize: none;
|
|
914
|
-
border: 0;
|
|
915
|
-
outline: 0;
|
|
916
|
-
background: transparent;
|
|
917
|
-
color: var(--dsw-label-primary);
|
|
918
|
-
font: inherit;
|
|
919
|
-
line-height: inherit;
|
|
920
|
-
overflow-y: auto;
|
|
921
|
-
}
|
|
922
|
-
.pw-user-editor-actions { display: flex; justify-content: flex-end; gap: 6px; margin-top: 5px; }
|
|
923
|
-
.pw-user-editor-actions button { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; }
|
|
924
|
-
.pw-user-editor-cancel { color: var(--dsw-label-secondary); }
|
|
925
|
-
.pw-user-editor-cancel:hover { background: var(--dsw-hover); color: var(--dsw-label-primary); }
|
|
926
|
-
.pw-user-editor-send { background: var(--dsw-label-primary); color: var(--dsw-bg-base); }
|
|
927
|
-
.pw-user-editor-send:hover:not(:disabled) { opacity: .82; }
|
|
928
|
-
.pw-user-editor-send:disabled { opacity: .45; cursor: not-allowed; }
|
|
929
|
-
.pw-user-editor-actions button:focus-visible { outline: 2px solid var(--dsw-accent); outline-offset: 2px; }
|
|
930
940
|
|
|
931
941
|
/* 消息操作图标行:常显低透明度,悬停变亮(dsh 同款) */
|
|
932
942
|
.msg-actions {
|
|
@@ -1809,6 +1819,48 @@ body[data-pebrel-theme="pebrel"][data-ds-dark-theme] {
|
|
|
1809
1819
|
.pw-timeline {
|
|
1810
1820
|
flex: none;
|
|
1811
1821
|
}
|
|
1822
|
+
/* 生长时间轴:每轮一根柱,底对齐,超出横向滚动;高度由内联样式给(= 改动行数) */
|
|
1823
|
+
.pw-tl-rail {
|
|
1824
|
+
display: flex;
|
|
1825
|
+
align-items: flex-end;
|
|
1826
|
+
gap: 3px;
|
|
1827
|
+
height: 34px;
|
|
1828
|
+
padding: 6px 10px 2px;
|
|
1829
|
+
overflow-x: auto;
|
|
1830
|
+
scrollbar-width: none;
|
|
1831
|
+
}
|
|
1832
|
+
.pw-tl-rail::-webkit-scrollbar {
|
|
1833
|
+
display: none;
|
|
1834
|
+
}
|
|
1835
|
+
.pw-tl-bar {
|
|
1836
|
+
flex: none;
|
|
1837
|
+
width: 8px;
|
|
1838
|
+
min-height: 3px;
|
|
1839
|
+
border-radius: 2px 2px 1px 1px;
|
|
1840
|
+
opacity: 0.5;
|
|
1841
|
+
transition: opacity var(--ds-duration-fast) var(--ds-ease-in-out);
|
|
1842
|
+
}
|
|
1843
|
+
.pw-tl-bar:hover {
|
|
1844
|
+
opacity: 0.85;
|
|
1845
|
+
}
|
|
1846
|
+
.pw-tl-bar[data-active] {
|
|
1847
|
+
opacity: 1;
|
|
1848
|
+
box-shadow: 0 0 0 1px var(--dsw-sidebar-fill), 0 0 0 2px var(--dsw-label-secondary);
|
|
1849
|
+
}
|
|
1850
|
+
.pw-tl-bar[data-kind="user"] {
|
|
1851
|
+
width: 4px;
|
|
1852
|
+
}
|
|
1853
|
+
.pw-tl-bar[data-running] {
|
|
1854
|
+
height: 14px;
|
|
1855
|
+
border: 1px dashed var(--dsw-label-caption);
|
|
1856
|
+
background: transparent;
|
|
1857
|
+
animation: pw-tl-breathe 1.6s var(--ds-ease-in-out) infinite;
|
|
1858
|
+
}
|
|
1859
|
+
@keyframes pw-tl-breathe {
|
|
1860
|
+
50% {
|
|
1861
|
+
opacity: 0.2;
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1812
1864
|
|
|
1813
1865
|
/* 文件查看器:80vw × 80vh 居中,全屏切 100% */
|
|
1814
1866
|
.pw-viewer {
|
|
@@ -2077,740 +2129,3 @@ body[data-pebrel-theme="pebrel"][data-ds-dark-theme] {
|
|
|
2077
2129
|
border-radius: 0;
|
|
2078
2130
|
}
|
|
2079
2131
|
}
|
|
2080
|
-
|
|
2081
|
-
.pw-workflow-add {
|
|
2082
|
-
display: grid;
|
|
2083
|
-
width: 29px;
|
|
2084
|
-
height: 29px;
|
|
2085
|
-
flex: none;
|
|
2086
|
-
place-items: center;
|
|
2087
|
-
border-radius: 50%;
|
|
2088
|
-
background: var(--dsw-hover);
|
|
2089
|
-
color: var(--dsw-label-secondary);
|
|
2090
|
-
transition: background 140ms ease, color 140ms ease, transform 140ms ease;
|
|
2091
|
-
}
|
|
2092
|
-
.pw-workflow-add:hover:not(:disabled),
|
|
2093
|
-
.pw-workflow-add[aria-expanded="true"] { background: var(--dsw-btn-elevated); color: var(--dsw-label-primary); }
|
|
2094
|
-
.pw-workflow-add[aria-expanded="true"] .pw-workflow-plus { transform: rotate(45deg); }
|
|
2095
|
-
.pw-workflow-add:focus-visible,
|
|
2096
|
-
.pw-workflow-option:focus-visible { outline: 2px solid var(--dsw-accent); outline-offset: 2px; }
|
|
2097
|
-
.pw-workflow-add:disabled { opacity: .55; cursor: not-allowed; }
|
|
2098
|
-
.pw-workflow-plus { position: relative; width: 14px; height: 14px; transition: transform 140ms ease; }
|
|
2099
|
-
.pw-workflow-plus::before,
|
|
2100
|
-
.pw-workflow-plus::after {
|
|
2101
|
-
position: absolute;
|
|
2102
|
-
top: 6px;
|
|
2103
|
-
left: 1px;
|
|
2104
|
-
width: 12px;
|
|
2105
|
-
height: 1.5px;
|
|
2106
|
-
border-radius: 1px;
|
|
2107
|
-
background: currentColor;
|
|
2108
|
-
content: "";
|
|
2109
|
-
}
|
|
2110
|
-
.pw-workflow-plus::after { transform: rotate(90deg); }
|
|
2111
|
-
.pw-workflow-current {
|
|
2112
|
-
display: inline-flex;
|
|
2113
|
-
align-items: center;
|
|
2114
|
-
gap: 5px;
|
|
2115
|
-
height: 25px;
|
|
2116
|
-
padding: 0 4px 0 7px;
|
|
2117
|
-
border: 1px solid color-mix(in srgb, var(--pw-mode-color) 30%, transparent);
|
|
2118
|
-
border-radius: 8px;
|
|
2119
|
-
background: color-mix(in srgb, var(--pw-mode-color) 12%, transparent);
|
|
2120
|
-
color: var(--pw-mode-color);
|
|
2121
|
-
font-size: 11.5px;
|
|
2122
|
-
font-weight: 600;
|
|
2123
|
-
}
|
|
2124
|
-
.pw-workflow-current[data-mode="plan"] { --pw-mode-color: var(--dsw-warn); }
|
|
2125
|
-
.pw-workflow-current[data-mode="goal"] { --pw-mode-color: var(--dsw-accent); }
|
|
2126
|
-
.pw-workflow-current-icon { display: grid; place-items: center; }
|
|
2127
|
-
.pw-workflow-current-dismiss {
|
|
2128
|
-
display: grid;
|
|
2129
|
-
width: 17px;
|
|
2130
|
-
height: 17px;
|
|
2131
|
-
place-items: center;
|
|
2132
|
-
border-radius: 4px;
|
|
2133
|
-
color: inherit;
|
|
2134
|
-
font-size: 17px;
|
|
2135
|
-
font-weight: 400;
|
|
2136
|
-
line-height: 1;
|
|
2137
|
-
}
|
|
2138
|
-
.pw-workflow-current-dismiss:hover:not(:disabled) { background: color-mix(in srgb, var(--pw-mode-color) 20%, transparent); }
|
|
2139
|
-
.pw-workflow-current-dismiss:disabled { opacity: .5; cursor: not-allowed; }
|
|
2140
|
-
.pw-workflow-current-dismiss:focus-visible { outline: 2px solid var(--pw-mode-color); outline-offset: 2px; }
|
|
2141
|
-
.pw-workflow-menu {
|
|
2142
|
-
position: absolute;
|
|
2143
|
-
bottom: calc(100% + 9px);
|
|
2144
|
-
left: 0;
|
|
2145
|
-
z-index: 70;
|
|
2146
|
-
width: min(380px, calc(100vw - 32px));
|
|
2147
|
-
padding: 6px;
|
|
2148
|
-
border-radius: 14px;
|
|
2149
|
-
}
|
|
2150
|
-
.pw-workflow-menu-label {
|
|
2151
|
-
padding: 5px 8px 8px;
|
|
2152
|
-
color: var(--dsw-label-tertiary);
|
|
2153
|
-
font-size: 10.5px;
|
|
2154
|
-
font-weight: 600;
|
|
2155
|
-
letter-spacing: .03em;
|
|
2156
|
-
}
|
|
2157
|
-
.pw-workflow-option {
|
|
2158
|
-
display: grid;
|
|
2159
|
-
grid-template-columns: 18px max-content minmax(0, 1fr) 14px;
|
|
2160
|
-
align-items: center;
|
|
2161
|
-
gap: 9px;
|
|
2162
|
-
width: 100%;
|
|
2163
|
-
min-height: 37px;
|
|
2164
|
-
padding: 0 8px;
|
|
2165
|
-
border-radius: 7px;
|
|
2166
|
-
text-align: left;
|
|
2167
|
-
transition: background 140ms ease;
|
|
2168
|
-
}
|
|
2169
|
-
.pw-workflow-option[data-mode="agent"] { --pw-mode-color: var(--dsw-label-tertiary); }
|
|
2170
|
-
.pw-workflow-option[data-mode="plan"] { --pw-mode-color: var(--dsw-warn); }
|
|
2171
|
-
.pw-workflow-option[data-mode="goal"] { --pw-mode-color: var(--dsw-accent); }
|
|
2172
|
-
.pw-workflow-option:hover,
|
|
2173
|
-
.pw-workflow-option[aria-checked="true"] { background: var(--dsw-hover); }
|
|
2174
|
-
.pw-workflow-option-icon { display: grid; width: 18px; place-items: center; color: var(--pw-mode-color); }
|
|
2175
|
-
.pw-workflow-option-name { color: var(--dsw-label-primary); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
|
|
2176
|
-
.pw-workflow-option-description { overflow: hidden; color: var(--dsw-label-tertiary); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
|
|
2177
|
-
.pw-workflow-option-check { color: var(--dsw-label-secondary); visibility: hidden; }
|
|
2178
|
-
.pw-workflow-option[aria-checked="true"] .pw-workflow-option-check { visibility: visible; }
|
|
2179
|
-
.pw-plan-ready {
|
|
2180
|
-
display: grid;
|
|
2181
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
2182
|
-
align-items: center;
|
|
2183
|
-
gap: 8px 12px;
|
|
2184
|
-
margin: 0 0 9px;
|
|
2185
|
-
padding: 10px 11px;
|
|
2186
|
-
border: 1px solid color-mix(in srgb, var(--dsw-warn) 30%, var(--dsw-border-l2));
|
|
2187
|
-
border-radius: 15px;
|
|
2188
|
-
background: color-mix(in srgb, var(--dsw-warn) 5%, var(--dsw-bg-elevated));
|
|
2189
|
-
animation: pw-mode-enter 220ms cubic-bezier(.2,.7,.2,1) both;
|
|
2190
|
-
}
|
|
2191
|
-
.pw-plan-ready-content { display: flex; align-items: center; gap: 9px; min-width: 0; }
|
|
2192
|
-
.pw-plan-ready-icon {
|
|
2193
|
-
display: grid;
|
|
2194
|
-
flex: none;
|
|
2195
|
-
place-items: center;
|
|
2196
|
-
width: 29px;
|
|
2197
|
-
height: 29px;
|
|
2198
|
-
border-radius: 9px;
|
|
2199
|
-
background: color-mix(in srgb, var(--dsw-warn) 13%, transparent);
|
|
2200
|
-
color: var(--dsw-warn);
|
|
2201
|
-
}
|
|
2202
|
-
.pw-plan-ready-copy { display: grid; gap: 2px; min-width: 0; }
|
|
2203
|
-
.pw-plan-ready-copy strong { color: var(--dsw-label-primary); font-size: 12px; font-weight: 650; line-height: 1.25; }
|
|
2204
|
-
.pw-plan-ready-copy > span { color: var(--dsw-label-tertiary); font-size: 11px; line-height: 1.3; }
|
|
2205
|
-
.pw-plan-ready-actions { display: flex; align-items: center; gap: 5px; }
|
|
2206
|
-
.pw-plan-ready-actions button { flex: none; min-height: 28px; padding: 5px 9px; border-radius: 9px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
|
|
2207
|
-
.pw-plan-ready-refine { color: var(--dsw-label-secondary); }
|
|
2208
|
-
.pw-plan-ready-refine:hover:not(:disabled) { background: var(--dsw-hover); color: var(--dsw-label-primary); }
|
|
2209
|
-
.pw-plan-ready-approve {
|
|
2210
|
-
display: inline-flex;
|
|
2211
|
-
align-items: center;
|
|
2212
|
-
gap: 2px;
|
|
2213
|
-
background: var(--dsw-accent);
|
|
2214
|
-
color: white;
|
|
2215
|
-
}
|
|
2216
|
-
.pw-plan-ready-approve:hover:not(:disabled) { filter: brightness(1.08); }
|
|
2217
|
-
.pw-plan-ready-actions button:disabled { opacity: .55; cursor: not-allowed; }
|
|
2218
|
-
.pw-plan-ready-actions button:focus-visible { outline: 2px solid var(--dsw-accent); outline-offset: 2px; }
|
|
2219
|
-
.pw-plan-ready-error { grid-column: 1 / -1; margin: 0 0 0 38px; color: var(--dsw-danger); font-size: 11px; }
|
|
2220
|
-
.pw-goal-active {
|
|
2221
|
-
display: flex;
|
|
2222
|
-
align-items: center;
|
|
2223
|
-
gap: 6px;
|
|
2224
|
-
min-width: 0;
|
|
2225
|
-
margin: 0 3px 7px;
|
|
2226
|
-
color: var(--dsw-accent);
|
|
2227
|
-
font-size: 11.5px;
|
|
2228
|
-
}
|
|
2229
|
-
.pw-goal-active svg { flex: none; }
|
|
2230
|
-
.pw-goal-active-label { flex: none; font-weight: 600; }
|
|
2231
|
-
.pw-goal-active-text { overflow: hidden; color: var(--dsw-label-tertiary); text-overflow: ellipsis; white-space: nowrap; }
|
|
2232
|
-
@media (max-width: 560px) {
|
|
2233
|
-
.pw-plan-ready { grid-template-columns: minmax(0, 1fr); }
|
|
2234
|
-
.pw-plan-ready-actions { justify-content: flex-end; }
|
|
2235
|
-
}
|
|
2236
|
-
|
|
2237
|
-
/* PiWeb workbench skin. Legacy --dsw tokens remain adapters for existing panels. */
|
|
2238
|
-
html[data-pebrel-theme="piweb"],
|
|
2239
|
-
body[data-pebrel-theme="piweb"] {
|
|
2240
|
-
--dsw-bg-base: #f2f5ee;
|
|
2241
|
-
--dsw-bg-elevated: #fbfcf8;
|
|
2242
|
-
--dsw-sidebar-fill: #e8eee7;
|
|
2243
|
-
--dsw-input-major: #fcfdf9;
|
|
2244
|
-
--dsw-bubble: #e4f0e9;
|
|
2245
|
-
--dsw-hover: rgba(42, 99, 75, .08);
|
|
2246
|
-
--dsw-active: rgba(42, 99, 75, .13);
|
|
2247
|
-
--dsw-label-primary: #1c2a25;
|
|
2248
|
-
--dsw-label-secondary: #43564c;
|
|
2249
|
-
--dsw-label-tertiary: #6d8074;
|
|
2250
|
-
--dsw-label-caption: #8b9b90;
|
|
2251
|
-
--dsw-border-l1: rgba(37, 70, 52, .07);
|
|
2252
|
-
--dsw-border-l2: rgba(37, 70, 52, .14);
|
|
2253
|
-
--dsw-border-l3: rgba(37, 70, 52, .19);
|
|
2254
|
-
--dsw-border-l4: rgba(37, 70, 52, .25);
|
|
2255
|
-
--dsw-accent: #2e8067;
|
|
2256
|
-
--dsw-accent-soft: rgba(46, 128, 103, .12);
|
|
2257
|
-
--dsw-warn: #ac7136;
|
|
2258
|
-
--dsw-success: #288067;
|
|
2259
|
-
--dsw-danger: #b7504a;
|
|
2260
|
-
--dsw-selector: rgba(43, 89, 62, .09);
|
|
2261
|
-
--dsw-layer-2: #f5f8f2;
|
|
2262
|
-
--dsw-layer-3: #ecf2ea;
|
|
2263
|
-
--dsw-btn-elevated: #f7faf5;
|
|
2264
|
-
--dsw-btn-floating-hover: #edf4ed;
|
|
2265
|
-
--dsw-module-platform: #e8efe8;
|
|
2266
|
-
--dsw-border-strong: #729b82;
|
|
2267
|
-
--dsw-glass-popover: #fbfdf8;
|
|
2268
|
-
--dsw-glass-input: #f7faf5;
|
|
2269
|
-
--dsw-glass-modal: #f9fbf7;
|
|
2270
|
-
--dsw-elevation-stroke: rgba(37, 70, 52, .14);
|
|
2271
|
-
--dsw-elevation-soft: 0 0 0 1px var(--dsw-elevation-stroke), 0 14px 30px rgba(37, 70, 52, .08);
|
|
2272
|
-
--dsw-elevation-panel: 0 0 0 1px var(--dsw-elevation-stroke), 0 18px 42px rgba(37, 70, 52, .12);
|
|
2273
|
-
--dsw-elevation-prominent: 0 0 0 1px var(--dsw-elevation-stroke), 0 24px 56px rgba(37, 70, 52, .18);
|
|
2274
|
-
}
|
|
2275
|
-
|
|
2276
|
-
@media (prefers-color-scheme: dark) {
|
|
2277
|
-
html[data-pebrel-theme="piweb"]:not([data-ds-light-theme]),
|
|
2278
|
-
body[data-pebrel-theme="piweb"]:not([data-ds-light-theme]) {
|
|
2279
|
-
--dsw-bg-base: #101816;
|
|
2280
|
-
--dsw-bg-elevated: #17221e;
|
|
2281
|
-
--dsw-sidebar-fill: #121d19;
|
|
2282
|
-
--dsw-input-major: #1b2924;
|
|
2283
|
-
--dsw-bubble: #20362c;
|
|
2284
|
-
--dsw-hover: rgba(173, 230, 191, .07);
|
|
2285
|
-
--dsw-active: rgba(139, 218, 168, .13);
|
|
2286
|
-
--dsw-label-primary: #ecf4eb;
|
|
2287
|
-
--dsw-label-secondary: #bfd0c2;
|
|
2288
|
-
--dsw-label-tertiary: #92aa98;
|
|
2289
|
-
--dsw-label-caption: #6e8978;
|
|
2290
|
-
--dsw-border-l1: rgba(191, 225, 195, .06);
|
|
2291
|
-
--dsw-border-l2: rgba(191, 225, 195, .13);
|
|
2292
|
-
--dsw-border-l3: rgba(191, 225, 195, .18);
|
|
2293
|
-
--dsw-border-l4: rgba(191, 225, 195, .23);
|
|
2294
|
-
--dsw-accent: #84d9ad;
|
|
2295
|
-
--dsw-accent-soft: rgba(132, 217, 173, .13);
|
|
2296
|
-
--dsw-warn: #e5b36b;
|
|
2297
|
-
--dsw-success: #83d3a4;
|
|
2298
|
-
--dsw-danger: #ef8b7f;
|
|
2299
|
-
--dsw-selector: rgba(176, 225, 188, .09);
|
|
2300
|
-
--dsw-layer-2: #203028;
|
|
2301
|
-
--dsw-layer-3: #2b3c32;
|
|
2302
|
-
--dsw-btn-elevated: #22332a;
|
|
2303
|
-
--dsw-btn-floating-hover: #2d4034;
|
|
2304
|
-
--dsw-module-platform: #26372d;
|
|
2305
|
-
--dsw-border-strong: #5c9370;
|
|
2306
|
-
--dsw-glass-popover: #1d2a23;
|
|
2307
|
-
--dsw-glass-input: #1b2924;
|
|
2308
|
-
--dsw-glass-modal: #1b2821;
|
|
2309
|
-
--dsw-elevation-stroke: rgba(191, 225, 195, .13);
|
|
2310
|
-
--dsw-elevation-soft: 0 0 0 1px var(--dsw-elevation-stroke), 0 16px 32px rgba(0, 0, 0, .24);
|
|
2311
|
-
--dsw-elevation-panel: 0 0 0 1px var(--dsw-elevation-stroke), 0 20px 46px rgba(0, 0, 0, .36);
|
|
2312
|
-
--dsw-elevation-prominent: 0 0 0 1px var(--dsw-elevation-stroke), 0 26px 60px rgba(0, 0, 0, .48);
|
|
2313
|
-
}
|
|
2314
|
-
}
|
|
2315
|
-
|
|
2316
|
-
html[data-pebrel-theme="piweb"][data-ds-dark-theme],
|
|
2317
|
-
body[data-pebrel-theme="piweb"][data-ds-dark-theme] {
|
|
2318
|
-
--dsw-bg-base: #101816;
|
|
2319
|
-
--dsw-bg-elevated: #17221e;
|
|
2320
|
-
--dsw-sidebar-fill: #121d19;
|
|
2321
|
-
--dsw-input-major: #1b2924;
|
|
2322
|
-
--dsw-bubble: #20362c;
|
|
2323
|
-
--dsw-hover: rgba(173, 230, 191, .07);
|
|
2324
|
-
--dsw-active: rgba(139, 218, 168, .13);
|
|
2325
|
-
--dsw-label-primary: #ecf4eb;
|
|
2326
|
-
--dsw-label-secondary: #bfd0c2;
|
|
2327
|
-
--dsw-label-tertiary: #92aa98;
|
|
2328
|
-
--dsw-label-caption: #6e8978;
|
|
2329
|
-
--dsw-border-l1: rgba(191, 225, 195, .06);
|
|
2330
|
-
--dsw-border-l2: rgba(191, 225, 195, .13);
|
|
2331
|
-
--dsw-border-l3: rgba(191, 225, 195, .18);
|
|
2332
|
-
--dsw-border-l4: rgba(191, 225, 195, .23);
|
|
2333
|
-
--dsw-accent: #84d9ad;
|
|
2334
|
-
--dsw-accent-soft: rgba(132, 217, 173, .13);
|
|
2335
|
-
--dsw-warn: #e5b36b;
|
|
2336
|
-
--dsw-success: #83d3a4;
|
|
2337
|
-
--dsw-danger: #ef8b7f;
|
|
2338
|
-
--dsw-selector: rgba(176, 225, 188, .09);
|
|
2339
|
-
--dsw-layer-2: #203028;
|
|
2340
|
-
--dsw-layer-3: #2b3c32;
|
|
2341
|
-
--dsw-btn-elevated: #22332a;
|
|
2342
|
-
--dsw-btn-floating-hover: #2d4034;
|
|
2343
|
-
--dsw-module-platform: #26372d;
|
|
2344
|
-
--dsw-border-strong: #5c9370;
|
|
2345
|
-
--dsw-glass-popover: #1d2a23;
|
|
2346
|
-
--dsw-glass-input: #1b2924;
|
|
2347
|
-
--dsw-glass-modal: #1b2821;
|
|
2348
|
-
--dsw-elevation-stroke: rgba(191, 225, 195, .13);
|
|
2349
|
-
--dsw-elevation-soft: 0 0 0 1px var(--dsw-elevation-stroke), 0 16px 32px rgba(0, 0, 0, .24);
|
|
2350
|
-
--dsw-elevation-panel: 0 0 0 1px var(--dsw-elevation-stroke), 0 20px 46px rgba(0, 0, 0, .36);
|
|
2351
|
-
--dsw-elevation-prominent: 0 0 0 1px var(--dsw-elevation-stroke), 0 26px 60px rgba(0, 0, 0, .48);
|
|
2352
|
-
}
|
|
2353
|
-
|
|
2354
|
-
.pw-shell {
|
|
2355
|
-
--pw-line: color-mix(in srgb, var(--dsw-label-primary) 9%, transparent);
|
|
2356
|
-
--pw-grid: color-mix(in srgb, var(--dsw-label-primary) 2.5%, transparent);
|
|
2357
|
-
--pw-glow: color-mix(in srgb, var(--dsw-accent) 10%, transparent);
|
|
2358
|
-
}
|
|
2359
|
-
.pw-sidebar-surface { border-right: 1px solid var(--pw-line); }
|
|
2360
|
-
.pw-sidebar {
|
|
2361
|
-
background: linear-gradient(165deg, color-mix(in srgb, var(--dsw-sidebar-fill) 88%, var(--dsw-accent) 12%), var(--dsw-sidebar-fill) 52%);
|
|
2362
|
-
}
|
|
2363
|
-
.pw-sidebar-head {
|
|
2364
|
-
min-height: 54px;
|
|
2365
|
-
padding: 12px 14px 10px;
|
|
2366
|
-
border-bottom: 1px solid var(--pw-line);
|
|
2367
|
-
}
|
|
2368
|
-
.pw-brand { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
|
|
2369
|
-
.pw-brand-symbol { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--dsw-border-l3); border-radius: 8px; background: var(--dsw-accent-soft); }
|
|
2370
|
-
.pw-brand-name { color: var(--dsw-label-primary); font-size: 16px; font-weight: 700; letter-spacing: -.075em; line-height: 1; }
|
|
2371
|
-
.pw-brand-meta { margin-left: 4px; color: var(--dsw-label-caption); font-size: 8px; font-weight: 600; letter-spacing: .1em; white-space: nowrap; }
|
|
2372
|
-
.pw-sidebar-new { padding-top: 10px; padding-bottom: 5px; }
|
|
2373
|
-
.btn-new-session {
|
|
2374
|
-
justify-content: flex-start;
|
|
2375
|
-
gap: 8px;
|
|
2376
|
-
height: 34px;
|
|
2377
|
-
padding: 0 10px;
|
|
2378
|
-
border: 1px solid var(--dsw-border-l3);
|
|
2379
|
-
border-left: 3px solid var(--dsw-accent);
|
|
2380
|
-
border-radius: 10px;
|
|
2381
|
-
background: var(--dsw-bg-elevated);
|
|
2382
|
-
font-size: 12px;
|
|
2383
|
-
font-weight: 650;
|
|
2384
|
-
box-shadow: 0 2px 8px color-mix(in srgb, var(--dsw-bg-base) 24%, transparent);
|
|
2385
|
-
}
|
|
2386
|
-
.btn-new-session:hover { background: var(--dsw-accent-soft); border-color: var(--dsw-accent); }
|
|
2387
|
-
.btn-new-session svg { color: var(--dsw-accent); }
|
|
2388
|
-
.pw-sidebar-section-head { padding-top: 10px; padding-bottom: 3px; }
|
|
2389
|
-
.pw-sidebar-section-head > span:first-child { color: var(--dsw-label-tertiary) !important; font-size: 10px !important; font-weight: 700; letter-spacing: .13em; }
|
|
2390
|
-
.pw-sidebar-list { padding-top: 0; }
|
|
2391
|
-
.pw-session-row, .pw-workspace-row { min-height: 30px; margin: 1px 0; padding: 4px 7px; border: 1px solid transparent; border-radius: 8px; }
|
|
2392
|
-
.pw-workspace-row { min-height: 32px; }
|
|
2393
|
-
.pw-session-row[data-selected], .pw-workspace-row[data-current] { border-color: var(--dsw-border-l2); }
|
|
2394
|
-
.pw-session-row[data-selected]::before, .pw-workspace-row[data-current]::before {
|
|
2395
|
-
position: absolute;
|
|
2396
|
-
top: 8px;
|
|
2397
|
-
bottom: 8px;
|
|
2398
|
-
left: 0;
|
|
2399
|
-
width: 2px;
|
|
2400
|
-
border-radius: 2px;
|
|
2401
|
-
background: var(--dsw-accent);
|
|
2402
|
-
content: "";
|
|
2403
|
-
}
|
|
2404
|
-
.pw-sidebar-footer { border-top: 1px solid var(--pw-line); }
|
|
2405
|
-
.pw-sidebar-footer > button { border-radius: 8px; }
|
|
2406
|
-
.pw-main { isolation: isolate; background: var(--dsw-bg-base); }
|
|
2407
|
-
.pw-main-hero {
|
|
2408
|
-
background-image: radial-gradient(circle at 86% 10%, var(--pw-glow), transparent 38%), linear-gradient(var(--pw-grid) 1px, transparent 1px), linear-gradient(90deg, var(--pw-grid) 1px, transparent 1px);
|
|
2409
|
-
background-size: auto, 48px 48px, 48px 48px;
|
|
2410
|
-
}
|
|
2411
|
-
.pw-session-header {
|
|
2412
|
-
padding: 11px 24px 12px;
|
|
2413
|
-
border-bottom: 1px solid var(--pw-line);
|
|
2414
|
-
background: color-mix(in srgb, var(--dsw-bg-base) 88%, transparent);
|
|
2415
|
-
backdrop-filter: blur(12px);
|
|
2416
|
-
}
|
|
2417
|
-
.pw-session-heading { display: flex; flex-direction: column; gap: 2px; }
|
|
2418
|
-
.pw-session-eyebrow { color: var(--dsw-accent); font-size: 9px; font-weight: 700; letter-spacing: .13em; line-height: 1.2; }
|
|
2419
|
-
.pw-session-title { display: block; color: var(--dsw-label-primary); font-size: 14px; font-weight: 650; line-height: 1.4; }
|
|
2420
|
-
.pw-session-composer { padding: 8px 22px 15px; background: linear-gradient(transparent, color-mix(in srgb, var(--dsw-bg-base) 90%, transparent) 32%); }
|
|
2421
|
-
.pw-chat-flow { padding-top: 22px; padding-bottom: 18px; }
|
|
2422
|
-
.pw-conversation-turn { padding: 0 0 16px; }
|
|
2423
|
-
.pw-conversation-turn + .pw-conversation-turn { padding-top: 15px; border-top: 1px solid var(--pw-line); }
|
|
2424
|
-
.msg-user-bubble { max-width: 80%; padding: 7px 11px; border: 1px solid var(--dsw-border-l2); border-left: 2px solid var(--dsw-accent); border-radius: 13px 16px 16px 13px; background: var(--dsw-bubble); line-height: 1.5; }
|
|
2425
|
-
.pw-user-editor { padding: 8px 10px 6px; }
|
|
2426
|
-
.pw-user-editor-input { min-height: 23px; }
|
|
2427
|
-
.pw-user-editor-actions { margin-top: 3px; }
|
|
2428
|
-
.msg-actions { margin-top: 4px; opacity: .62; }
|
|
2429
|
-
.pw-hero { position: relative; overflow: auto; }
|
|
2430
|
-
.pw-hero-content { position: relative; padding: 18px 0 26px; animation: pw-hero-enter 420ms cubic-bezier(.2,.7,.2,1) both; }
|
|
2431
|
-
.pw-hero-intro { width: 100%; max-width: 540px; margin-inline: auto; }
|
|
2432
|
-
.pw-hero-identity { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; color: var(--dsw-accent); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
|
|
2433
|
-
.pw-hero-mark { display: grid; width: 39px; height: 39px; place-items: center; border: 1px solid var(--dsw-border-l3); border-radius: 10px; background: var(--dsw-accent-soft); }
|
|
2434
|
-
.pw-hero-index { margin-left: auto; color: var(--dsw-label-caption); font-size: 9px; font-weight: 500; letter-spacing: .07em; }
|
|
2435
|
-
.pw-hero-title { max-width: 17ch; margin: 0 0 11px; color: var(--dsw-label-primary); font-size: clamp(28px, 3.3vw, 43px); font-weight: 650; letter-spacing: -.075em; line-height: 1.23; }
|
|
2436
|
-
.pw-hero-description { margin: 0 0 22px; color: var(--dsw-label-tertiary); font-size: 12.5px; letter-spacing: -.01em; line-height: 1.7; }
|
|
2437
|
-
.pw-hero-workspace { margin-bottom: 6px; }
|
|
2438
|
-
.hero-chip { height: 31px; padding: 0 10px; border: 1px solid var(--dsw-border-l2); border-radius: 8px; background: var(--dsw-bg-elevated); font-size: 12px; }
|
|
2439
|
-
.hero-chip:hover, .hero-chip[data-open="true"] { border-color: var(--dsw-border-l3); background: var(--dsw-hover); }
|
|
2440
|
-
.pw-composer-shell { max-width: 540px; margin-inline: auto; transition: max-width 220ms cubic-bezier(.2,.7,.2,1); }
|
|
2441
|
-
.pw-composer-shell[data-expanded="true"] { max-width: var(--dsh-composer-card-max-width); }
|
|
2442
|
-
.pw-composer {
|
|
2443
|
-
--pw-composer-accent: var(--dsw-accent);
|
|
2444
|
-
border: 1px solid rgba(226, 232, 240, 0.9);
|
|
2445
|
-
border-radius: 24px;
|
|
2446
|
-
background: #FFFFFF;
|
|
2447
|
-
box-shadow: 10px 14px 28px rgba(166, 178, 198, 0.35),
|
|
2448
|
-
-8px -8px 20px rgba(255, 255, 255, 0.95),
|
|
2449
|
-
inset 1px 1px 2px rgba(255, 255, 255, 0.9);
|
|
2450
|
-
transition: border-color 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
|
|
2451
|
-
}
|
|
2452
|
-
html[data-ds-dark-theme] .pw-composer {
|
|
2453
|
-
border-color: rgba(255, 255, 255, 0.08);
|
|
2454
|
-
background: #1c212b;
|
|
2455
|
-
box-shadow: 10px 14px 28px rgba(0, 0, 0, 0.45),
|
|
2456
|
-
-6px -6px 16px rgba(255, 255, 255, 0.03),
|
|
2457
|
-
inset 1px 1px 1px rgba(255, 255, 255, 0.06);
|
|
2458
|
-
}
|
|
2459
|
-
.pw-composer::after {
|
|
2460
|
-
position: absolute;
|
|
2461
|
-
right: 22px;
|
|
2462
|
-
bottom: -1px;
|
|
2463
|
-
left: 22px;
|
|
2464
|
-
height: 2px;
|
|
2465
|
-
border-radius: 2px;
|
|
2466
|
-
background: linear-gradient(90deg, transparent, var(--pw-composer-accent), transparent);
|
|
2467
|
-
content: "";
|
|
2468
|
-
opacity: 0;
|
|
2469
|
-
pointer-events: none;
|
|
2470
|
-
transform: scaleX(.55);
|
|
2471
|
-
transition: opacity 240ms ease, transform 300ms cubic-bezier(.2,.7,.2,1);
|
|
2472
|
-
}
|
|
2473
|
-
.pw-composer:focus-within { border-color: color-mix(in srgb, var(--pw-composer-accent) 50%, var(--dsw-border-l3)); box-shadow: var(--dsw-elevation-soft), 0 0 0 3px color-mix(in srgb, var(--pw-composer-accent) 10%, transparent); }
|
|
2474
|
-
.pw-composer[data-mode="plan"] { --pw-composer-accent: var(--dsw-warn); }
|
|
2475
|
-
.pw-composer[data-mode="goal"] { --pw-composer-accent: var(--dsw-accent); }
|
|
2476
|
-
.pw-composer[data-mode="plan"], .pw-composer[data-mode="goal"] {
|
|
2477
|
-
border-color: color-mix(in srgb, var(--pw-composer-accent) 38%, var(--dsw-border-l3));
|
|
2478
|
-
background-color: color-mix(in srgb, var(--dsw-input-major) 96%, var(--pw-composer-accent) 4%);
|
|
2479
|
-
}
|
|
2480
|
-
.pw-composer[data-mode="plan"]::after, .pw-composer[data-mode="goal"]::after { opacity: .72; transform: scaleX(1); }
|
|
2481
|
-
.pw-composer-body { min-height: 29px; padding: 4px 13px 0; }
|
|
2482
|
-
.pw-composer-toolbar { height: 35px; gap: 6px; padding: 1px 10px 4px; container-type: inline-size; }
|
|
2483
|
-
.pw-model-selector { flex: 0 1 auto; margin-left: auto; }
|
|
2484
|
-
.pw-model-selector .chip { display: flex; }
|
|
2485
|
-
.pw-workflow-add { width: 27px; height: 27px; border: 1px solid var(--dsw-border-l2); border-radius: 9px; background: var(--dsw-bg-elevated); }
|
|
2486
|
-
.pw-workflow-add:hover:not(:disabled), .pw-workflow-add[aria-expanded="true"] { border-color: var(--dsw-border-l3); background: var(--dsw-accent-soft); color: var(--dsw-accent); }
|
|
2487
|
-
.pw-workflow-current { height: 27px; padding-right: 5px; border-radius: 999px; animation: pw-mode-enter 230ms cubic-bezier(.2,.7,.2,1) both; }
|
|
2488
|
-
.pw-workflow-menu { border-radius: 15px; border: 1px solid var(--dsw-border-l3); padding: 7px; box-shadow: var(--dsw-elevation-panel); }
|
|
2489
|
-
.pw-workflow-menu-label { padding: 5px 9px 8px; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
|
|
2490
|
-
.pw-workflow-option { min-height: 39px; border-radius: 9px; }
|
|
2491
|
-
.pw-workflow-option[aria-checked="true"] { background: var(--dsw-accent-soft); }
|
|
2492
|
-
.pw-workflow-option-name { font-size: 12px; }
|
|
2493
|
-
.pw-workflow-option-description { font-size: 11px; }
|
|
2494
|
-
.btn-primary-circle {
|
|
2495
|
-
width: 32px;
|
|
2496
|
-
height: 32px;
|
|
2497
|
-
margin: 0;
|
|
2498
|
-
border-radius: 9999px;
|
|
2499
|
-
background: linear-gradient(135deg, #34D399, #059669);
|
|
2500
|
-
color: #FFFFFF;
|
|
2501
|
-
box-shadow: 4px 6px 12px rgba(16, 185, 129, 0.35),
|
|
2502
|
-
-2px -2px 6px rgba(255, 255, 255, 0.8),
|
|
2503
|
-
inset 1px 1px 2px rgba(255, 255, 255, 0.5);
|
|
2504
|
-
transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
2505
|
-
}
|
|
2506
|
-
.btn-primary-circle:hover:not(:disabled) {
|
|
2507
|
-
opacity: 1;
|
|
2508
|
-
filter: brightness(1.08);
|
|
2509
|
-
transform: translateY(-1px) scale(1.04);
|
|
2510
|
-
box-shadow: 6px 8px 16px rgba(16, 185, 129, 0.45), -3px -3px 8px rgba(255, 255, 255, 0.9);
|
|
2511
|
-
}
|
|
2512
|
-
.btn-primary-circle:active:not(:disabled) {
|
|
2513
|
-
transform: translateY(1px) scale(0.96);
|
|
2514
|
-
box-shadow: inset 2px 2px 4px rgba(0, 86, 59, 0.45);
|
|
2515
|
-
}
|
|
2516
|
-
.btn-ghost-circle { margin: 0; border-radius: 12px; transform: none; }
|
|
2517
|
-
.popover { border: 1px solid var(--dsw-border-l2); border-radius: 11px; }
|
|
2518
|
-
.icon-btn, .rail-btn { border-radius: 8px; }
|
|
2519
|
-
.icon-btn:hover, .rail-btn:hover { color: var(--dsw-accent); background: var(--dsw-accent-soft); }
|
|
2520
|
-
.btn-outline, .btn-primary-white, .select-chip { border-radius: 9px; }
|
|
2521
|
-
@keyframes pw-hero-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
|
|
2522
|
-
@keyframes pw-mode-enter { from { opacity: 0; transform: translateY(4px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
|
|
2523
|
-
@media (max-width: 840px) {
|
|
2524
|
-
.pw-sidebar-surface { border-right: 0; }
|
|
2525
|
-
.pw-hero { justify-content: center; padding: 26px 20px; }
|
|
2526
|
-
.pw-hero-content { padding-bottom: 20px; }
|
|
2527
|
-
.pw-hero-title { font-size: clamp(28px, 8vw, 38px); }
|
|
2528
|
-
.pw-hero-description { margin-bottom: 20px; }
|
|
2529
|
-
.pw-session-header { padding-left: 56px; padding-right: 12px; }
|
|
2530
|
-
.pw-session-composer { padding: 8px 10px 13px; }
|
|
2531
|
-
.pw-brand-meta { display: none; }
|
|
2532
|
-
}
|
|
2533
|
-
@media (prefers-reduced-motion: reduce) {
|
|
2534
|
-
.pw-hero-content, .pw-workflow-current { animation: none; }
|
|
2535
|
-
.pw-composer, .pw-composer::after, .pw-composer-shell { transition: none; }
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
|
-
/* ============================================================
|
|
2539
|
-
Soft Claymorphism Design System Tokens & Classes
|
|
2540
|
-
============================================================ */
|
|
2541
|
-
|
|
2542
|
-
:root {
|
|
2543
|
-
--clay-bg: #F0F4F8;
|
|
2544
|
-
--clay-surface: #FFFFFF;
|
|
2545
|
-
--clay-sidebar: #F8FAFC;
|
|
2546
|
-
--clay-mint: #10B981;
|
|
2547
|
-
--clay-mint-deep: #059669;
|
|
2548
|
-
--clay-mint-soft: #ECFDF5;
|
|
2549
|
-
--clay-peach: #FB923C;
|
|
2550
|
-
--clay-peach-deep: #EA580C;
|
|
2551
|
-
--clay-peach-soft: #FFF7ED;
|
|
2552
|
-
--clay-sky: #0284C7;
|
|
2553
|
-
--clay-sky-deep: #0369A1;
|
|
2554
|
-
--clay-sky-soft: #F0F9FF;
|
|
2555
|
-
--clay-lavender: #6366F1;
|
|
2556
|
-
--clay-lavender-soft: #EEF2FF;
|
|
2557
|
-
--clay-slate-text: #0F172A;
|
|
2558
|
-
--clay-subtext: #475569;
|
|
2559
|
-
--clay-muted: #64748B;
|
|
2560
|
-
|
|
2561
|
-
--clay-shadow-card: 12px 14px 28px rgba(166, 178, 198, 0.35),
|
|
2562
|
-
-10px -10px 24px rgba(255, 255, 255, 0.95),
|
|
2563
|
-
inset 1.5px 1.5px 3px rgba(255, 255, 255, 0.8),
|
|
2564
|
-
inset -2px -2px 4px rgba(166, 178, 198, 0.12);
|
|
2565
|
-
--clay-shadow-surface: 8px 10px 22px rgba(160, 174, 192, 0.22),
|
|
2566
|
-
-8px -8px 20px rgba(255, 255, 255, 0.95);
|
|
2567
|
-
--clay-shadow-inset: inset 4px 4px 8px rgba(166, 178, 198, 0.4),
|
|
2568
|
-
inset -4px -4px 8px rgba(255, 255, 255, 0.9);
|
|
2569
|
-
--clay-shadow-btn: 5px 6px 12px rgba(148, 163, 184, 0.32),
|
|
2570
|
-
-4px -4px 10px rgba(255, 255, 255, 0.95),
|
|
2571
|
-
inset 1px 1px 2px rgba(255, 255, 255, 0.9),
|
|
2572
|
-
inset -1px -1px 2px rgba(100, 116, 139, 0.15);
|
|
2573
|
-
--clay-shadow-btn-active: inset 3px 3px 6px rgba(148, 163, 184, 0.4),
|
|
2574
|
-
inset -2px -2px 5px rgba(255, 255, 255, 0.85);
|
|
2575
|
-
}
|
|
2576
|
-
|
|
2577
|
-
html[data-ds-dark-theme],
|
|
2578
|
-
body[data-ds-dark-theme],
|
|
2579
|
-
html.dark,
|
|
2580
|
-
body.dark {
|
|
2581
|
-
--clay-bg: #13171F;
|
|
2582
|
-
--clay-surface: #1E232D;
|
|
2583
|
-
--clay-sidebar: #181C24;
|
|
2584
|
-
--clay-slate-text: #F8FAFC;
|
|
2585
|
-
--clay-subtext: #CBD5E1;
|
|
2586
|
-
--clay-muted: #94A3B8;
|
|
2587
|
-
--clay-shadow-card: 12px 14px 28px rgba(0, 0, 0, 0.45),
|
|
2588
|
-
-8px -8px 20px rgba(255, 255, 255, 0.04),
|
|
2589
|
-
inset 1px 1px 2px rgba(255, 255, 255, 0.1),
|
|
2590
|
-
inset -2px -2px 4px rgba(0, 0, 0, 0.4);
|
|
2591
|
-
--clay-shadow-surface: 8px 10px 22px rgba(0, 0, 0, 0.4),
|
|
2592
|
-
-6px -6px 18px rgba(255, 255, 255, 0.03);
|
|
2593
|
-
--clay-shadow-inset: inset 4px 4px 8px rgba(0, 0, 0, 0.5),
|
|
2594
|
-
inset -4px -4px 8px rgba(255, 255, 255, 0.04);
|
|
2595
|
-
}
|
|
2596
|
-
|
|
2597
|
-
.clay-card {
|
|
2598
|
-
background: var(--clay-surface);
|
|
2599
|
-
color: var(--clay-slate-text);
|
|
2600
|
-
border-radius: 1.5rem;
|
|
2601
|
-
box-shadow: var(--clay-shadow-card);
|
|
2602
|
-
border: 1px solid rgba(255, 255, 255, 0.8);
|
|
2603
|
-
transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
2604
|
-
}
|
|
2605
|
-
html[data-ds-dark-theme] .clay-card,
|
|
2606
|
-
html.dark .clay-card {
|
|
2607
|
-
border-color: rgba(255, 255, 255, 0.08);
|
|
2608
|
-
}
|
|
2609
|
-
|
|
2610
|
-
.clay-surface {
|
|
2611
|
-
background: var(--clay-sidebar);
|
|
2612
|
-
color: var(--clay-slate-text);
|
|
2613
|
-
border-radius: 1.75rem;
|
|
2614
|
-
box-shadow: var(--clay-shadow-surface);
|
|
2615
|
-
border: 1px solid rgba(255, 255, 255, 0.9);
|
|
2616
|
-
}
|
|
2617
|
-
html[data-ds-dark-theme] .clay-surface,
|
|
2618
|
-
html.dark .clay-surface {
|
|
2619
|
-
border-color: rgba(255, 255, 255, 0.06);
|
|
2620
|
-
}
|
|
2621
|
-
|
|
2622
|
-
.clay-inset {
|
|
2623
|
-
background: #EFF3F8;
|
|
2624
|
-
color: var(--clay-slate-text);
|
|
2625
|
-
border-radius: 1.25rem;
|
|
2626
|
-
box-shadow: var(--clay-shadow-inset);
|
|
2627
|
-
border: 1px solid rgba(226, 232, 240, 0.6);
|
|
2628
|
-
}
|
|
2629
|
-
html[data-ds-dark-theme] .clay-inset,
|
|
2630
|
-
html.dark .clay-inset {
|
|
2631
|
-
background: #141820;
|
|
2632
|
-
border-color: rgba(255, 255, 255, 0.05);
|
|
2633
|
-
}
|
|
2634
|
-
|
|
2635
|
-
.clay-code-window {
|
|
2636
|
-
background-color: #0d1117 !important;
|
|
2637
|
-
border-radius: 1.25rem;
|
|
2638
|
-
box-shadow: inset 4px 4px 12px rgba(0, 0, 0, 0.6), inset -2px -2px 6px rgba(255, 255, 255, 0.04);
|
|
2639
|
-
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
2640
|
-
color: #f0f6fc !important;
|
|
2641
|
-
}
|
|
2642
|
-
|
|
2643
|
-
.clay-btn {
|
|
2644
|
-
position: relative;
|
|
2645
|
-
border-radius: 9999px;
|
|
2646
|
-
transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
2647
|
-
box-shadow: var(--clay-shadow-btn);
|
|
2648
|
-
display: inline-flex;
|
|
2649
|
-
align-items: center;
|
|
2650
|
-
justify-content: center;
|
|
2651
|
-
cursor: pointer;
|
|
2652
|
-
user-select: none;
|
|
2653
|
-
}
|
|
2654
|
-
.clay-btn:hover {
|
|
2655
|
-
transform: translateY(-2px) scale(1.02);
|
|
2656
|
-
box-shadow: 7px 9px 16px rgba(148, 163, 184, 0.38), -5px -5px 12px rgba(255, 255, 255, 1);
|
|
2657
|
-
}
|
|
2658
|
-
.clay-btn:active {
|
|
2659
|
-
transform: translateY(1px) scale(0.98);
|
|
2660
|
-
box-shadow: var(--clay-shadow-btn-active);
|
|
2661
|
-
}
|
|
2662
|
-
|
|
2663
|
-
.clay-btn-mint, .clay-btn-primary {
|
|
2664
|
-
background: linear-gradient(135deg, #34D399, #059669);
|
|
2665
|
-
color: #FFFFFF;
|
|
2666
|
-
box-shadow: 6px 8px 18px rgba(16, 185, 129, 0.35),
|
|
2667
|
-
-4px -4px 12px rgba(255, 255, 255, 0.9),
|
|
2668
|
-
inset 1.5px 1.5px 3px rgba(255, 255, 255, 0.6),
|
|
2669
|
-
inset -2px -2px 4px rgba(4, 120, 87, 0.35);
|
|
2670
|
-
}
|
|
2671
|
-
.clay-btn-mint:active, .clay-btn-primary:active {
|
|
2672
|
-
box-shadow: inset 3px 3px 6px rgba(0, 86, 59, 0.5);
|
|
2673
|
-
transform: translateY(1px) scale(0.98);
|
|
2674
|
-
}
|
|
2675
|
-
|
|
2676
|
-
.clay-btn-peach {
|
|
2677
|
-
background: linear-gradient(135deg, #FB923C, #EA580C);
|
|
2678
|
-
color: #FFFFFF;
|
|
2679
|
-
box-shadow: 6px 8px 18px rgba(249, 115, 22, 0.35),
|
|
2680
|
-
-4px -4px 12px rgba(255, 255, 255, 0.9),
|
|
2681
|
-
inset 1.5px 1.5px 3px rgba(255, 255, 255, 0.6),
|
|
2682
|
-
inset -2px -2px 4px rgba(194, 65, 12, 0.35);
|
|
2683
|
-
}
|
|
2684
|
-
|
|
2685
|
-
.clay-btn-soft {
|
|
2686
|
-
background-color: #FFFFFF;
|
|
2687
|
-
box-shadow: 4px 5px 10px rgba(166, 178, 198, 0.25),
|
|
2688
|
-
-4px -4px 8px rgba(255, 255, 255, 0.9);
|
|
2689
|
-
transition: all 0.15s ease-out;
|
|
2690
|
-
}
|
|
2691
|
-
html[data-ds-dark-theme] .clay-btn-soft {
|
|
2692
|
-
background-color: #242934;
|
|
2693
|
-
box-shadow: 4px 5px 10px rgba(0, 0, 0, 0.4),
|
|
2694
|
-
-3px -3px 6px rgba(255, 255, 255, 0.04);
|
|
2695
|
-
}
|
|
2696
|
-
.clay-btn-soft:active {
|
|
2697
|
-
box-shadow: inset 2px 2px 4px rgba(166, 178, 198, 0.35);
|
|
2698
|
-
transform: translateY(1px);
|
|
2699
|
-
}
|
|
2700
|
-
|
|
2701
|
-
.clay-bubble-user {
|
|
2702
|
-
background: linear-gradient(145deg, #38BDF8, #0284C7);
|
|
2703
|
-
color: #FFFFFF !important;
|
|
2704
|
-
border-radius: 1.5rem 1.5rem 0.4rem 1.5rem;
|
|
2705
|
-
padding: 12px 18px;
|
|
2706
|
-
box-shadow: 6px 8px 18px rgba(2, 132, 199, 0.3),
|
|
2707
|
-
-3px -3px 8px rgba(255, 255, 255, 0.7),
|
|
2708
|
-
inset 1.5px 1.5px 2px rgba(255, 255, 255, 0.6),
|
|
2709
|
-
inset -2px -2px 3px rgba(3, 105, 161, 0.35);
|
|
2710
|
-
}
|
|
2711
|
-
.clay-bubble-user .md,
|
|
2712
|
-
.clay-bubble-user .md p {
|
|
2713
|
-
color: #FFFFFF !important;
|
|
2714
|
-
}
|
|
2715
|
-
.clay-bubble-user .md code {
|
|
2716
|
-
background: rgba(255, 255, 255, 0.22) !important;
|
|
2717
|
-
color: #FFFFFF !important;
|
|
2718
|
-
border-radius: 6px;
|
|
2719
|
-
padding: 2px 5px;
|
|
2720
|
-
}
|
|
2721
|
-
.clay-bubble-user .md pre {
|
|
2722
|
-
background: rgba(15, 23, 42, 0.45) !important;
|
|
2723
|
-
color: #F8FAFC !important;
|
|
2724
|
-
border-radius: 12px;
|
|
2725
|
-
padding: 12px;
|
|
2726
|
-
}
|
|
2727
|
-
.clay-bubble-user .md a {
|
|
2728
|
-
color: #E0F2FE !important;
|
|
2729
|
-
text-decoration: underline;
|
|
2730
|
-
}
|
|
2731
|
-
|
|
2732
|
-
.clay-badge {
|
|
2733
|
-
border-radius: 9999px;
|
|
2734
|
-
box-shadow: 2px 3px 6px rgba(166, 178, 198, 0.25),
|
|
2735
|
-
-2px -2px 5px rgba(255, 255, 255, 0.9),
|
|
2736
|
-
inset 1px 1px 1px rgba(255, 255, 255, 0.8),
|
|
2737
|
-
inset -1px -1px 1px rgba(148, 163, 184, 0.15);
|
|
2738
|
-
}
|
|
2739
|
-
|
|
2740
|
-
.clay-code-pill {
|
|
2741
|
-
background: #F1F5F9;
|
|
2742
|
-
border-radius: 0.6rem;
|
|
2743
|
-
box-shadow: inset 2px 2px 4px rgba(148, 163, 184, 0.28),
|
|
2744
|
-
inset -2px -2px 4px rgba(255, 255, 255, 0.95);
|
|
2745
|
-
border: 1px solid rgba(226, 232, 240, 0.8);
|
|
2746
|
-
font-family: var(--font-mono);
|
|
2747
|
-
}
|
|
2748
|
-
html[data-ds-dark-theme] .clay-code-pill {
|
|
2749
|
-
background: #141820;
|
|
2750
|
-
border-color: rgba(255, 255, 255, 0.08);
|
|
2751
|
-
}
|
|
2752
|
-
|
|
2753
|
-
/* Ocean Ink uses the same surface tokens as the other selectable themes. */
|
|
2754
|
-
html[data-pebrel-theme="ocean-ink"],
|
|
2755
|
-
body[data-pebrel-theme="ocean-ink"] {
|
|
2756
|
-
--dsw-bg-base: #edf6fa;
|
|
2757
|
-
--dsw-bg-elevated: #f9fcfe;
|
|
2758
|
-
--dsw-sidebar-fill: #e3f0f6;
|
|
2759
|
-
--dsw-input-major: #ffffff;
|
|
2760
|
-
--dsw-bubble: #dceef8;
|
|
2761
|
-
--dsw-hover: rgba(2, 132, 199, 0.09);
|
|
2762
|
-
--dsw-active: rgba(2, 132, 199, 0.16);
|
|
2763
|
-
--dsw-label-primary: #183244;
|
|
2764
|
-
--dsw-label-secondary: #426074;
|
|
2765
|
-
--dsw-label-tertiary: #698699;
|
|
2766
|
-
--dsw-label-caption: #879eaa;
|
|
2767
|
-
--dsw-border-l1: rgba(30, 83, 112, 0.08);
|
|
2768
|
-
--dsw-border-l2: rgba(30, 83, 112, 0.14);
|
|
2769
|
-
--dsw-border-l3: rgba(30, 83, 112, 0.2);
|
|
2770
|
-
--dsw-border-l4: rgba(30, 83, 112, 0.27);
|
|
2771
|
-
--dsw-accent: #0284c7;
|
|
2772
|
-
--dsw-accent-soft: rgba(2, 132, 199, 0.14);
|
|
2773
|
-
--dsw-success: #0c8b81;
|
|
2774
|
-
--dsw-selector: rgba(2, 132, 199, 0.1);
|
|
2775
|
-
--dsw-layer-2: #f2f9fc;
|
|
2776
|
-
--dsw-layer-3: #e4f1f7;
|
|
2777
|
-
--dsw-btn-elevated: #f8fcfe;
|
|
2778
|
-
--dsw-btn-floating-hover: #e4f1f7;
|
|
2779
|
-
--dsw-module-platform: #e3f0f6;
|
|
2780
|
-
--dsw-border-strong: #5e9dbb;
|
|
2781
|
-
--dsw-glass-popover: #f9fcfe;
|
|
2782
|
-
--dsw-glass-input: #ffffff;
|
|
2783
|
-
--dsw-glass-modal: #f9fcfe;
|
|
2784
|
-
}
|
|
2785
|
-
|
|
2786
|
-
html[data-pebrel-theme="ocean-ink"][data-ds-dark-theme],
|
|
2787
|
-
body[data-pebrel-theme="ocean-ink"][data-ds-dark-theme] {
|
|
2788
|
-
--dsw-bg-base: #0d1821;
|
|
2789
|
-
--dsw-bg-elevated: #142431;
|
|
2790
|
-
--dsw-sidebar-fill: #101f2b;
|
|
2791
|
-
--dsw-input-major: #192d3b;
|
|
2792
|
-
--dsw-bubble: #193748;
|
|
2793
|
-
--dsw-hover: rgba(125, 211, 252, 0.1);
|
|
2794
|
-
--dsw-active: rgba(56, 189, 248, 0.19);
|
|
2795
|
-
--dsw-label-primary: #e8f6fc;
|
|
2796
|
-
--dsw-label-secondary: #b7d3e0;
|
|
2797
|
-
--dsw-label-tertiary: #87aabb;
|
|
2798
|
-
--dsw-label-caption: #648696;
|
|
2799
|
-
--dsw-border-l1: rgba(153, 213, 239, 0.07);
|
|
2800
|
-
--dsw-border-l2: rgba(153, 213, 239, 0.14);
|
|
2801
|
-
--dsw-border-l3: rgba(153, 213, 239, 0.2);
|
|
2802
|
-
--dsw-border-l4: rgba(153, 213, 239, 0.27);
|
|
2803
|
-
--dsw-accent: #38bdf8;
|
|
2804
|
-
--dsw-accent-soft: rgba(56, 189, 248, 0.16);
|
|
2805
|
-
--dsw-success: #5ccec0;
|
|
2806
|
-
--dsw-selector: rgba(56, 189, 248, 0.12);
|
|
2807
|
-
--dsw-layer-2: #192c39;
|
|
2808
|
-
--dsw-layer-3: #243d4d;
|
|
2809
|
-
--dsw-btn-elevated: #1b3040;
|
|
2810
|
-
--dsw-btn-floating-hover: #294455;
|
|
2811
|
-
--dsw-module-platform: #172b39;
|
|
2812
|
-
--dsw-border-strong: #76acc4;
|
|
2813
|
-
--dsw-glass-popover: #192d3b;
|
|
2814
|
-
--dsw-glass-input: #192d3b;
|
|
2815
|
-
--dsw-glass-modal: #172b39;
|
|
2816
|
-
}
|