Repository navigation
Give form and confirm dialogs one design-system layout - #1608
Conversation
Field, TextField, FormDialog and ConfirmDialog give every form modal one layout: label above, hint below, Cancel then one primary action, and a clearly destructive confirm. Section and channel create/rename/delete and group management use them; group name saves on Enter or blur. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
Edit profile, banner, primary colour, nickname, invite member, member wake policy, source policy and standing limits now use FormDialog and Field: label above, hint below, Cancel then one primary action, with reset actions on the left. The token guard checks only StyleX blocks, so data colours such as the primary-colour presets stay literal. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
FormDialog can hide Cancel for done states, close separately from cancel, scroll a tall body and tag its submit button. Field gains TextAreaField and a monospace TextField; Note gains a warning tone; Callout is the shared notice card. Warning tokens map to DSH state-warn aliases. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
IM app bind/create/unbind, external identities, connectors, ingest and thread reception, plus create Bot, import/export, delete Bot, schedules, history purge, avatar crops and diagnostics now use FormDialog, ConfirmDialog and Field. Tests drive them by role and name. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
Done states show a single primary, the purge preview closes on X, long dialogs scroll their body, text areas and Cron use the shared fields, and warnings and notices use Note and Callout. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
The migrated dialogs no longer use their feature-local bh- classes, so their rules (and 32 rules that were already dead) leave the plugin stylesheet. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
Text fields stay inside the dialog width, text areas keep a transparent fill like DSH inputs, and a dialog without a submit action shows only its close button. Adds before/after captures and the change fragment. Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters: 6
📒 Files selected for processing: 59
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Issue: #1600 Agent-Task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
|
The #1607 fixes this on Generated by Claude Code |
…-lj4rp0 # Conflicts: # packages/client/src/client/external-identity-list.tsx
Why the change
Before: about 30 form and confirm dialogs each chose their own label size, gaps, footer order, widths and danger style; some saved through a native form, some had no Cancel, and done-only states showed two buttons that both closed.
After: every form dialog uses one Field layout (label above, hint or error below, full-width control), ends with Cancel then one primary action, submits on Enter, and destructive confirms use a red primary. Dialogs that only report a result show a single button. Group management in Channel settings is two settings rows and the group name saves on Enter or blur.
Refs #1589
Closes #1600
Special things to note
ds/form-dialog.tsx(form wrapper,onClosevsonCancel,showCancel, optionalonSubmit) and the behaviour notes below. Revertable as one squash commit.Field,TextField(monospace option),TextAreaField,FormDialog(small 440 / standard 560 / wide 1060, scrollable body),ConfirmDialog,DangerTextButton,Callout,Notewarning tone, warning/danger surface tokens mapped to DSHstate-warn-*/state-error-*(bot-zip previously referencedstate-warning-*, which DSH does not define).stylex.createblocks, so data colours (primary-colour presets) can stay literal.vitestclient: 1503 passed;client-observer.test.tsfails with the pre-existing node:sqlite bundling error (also on main). Browser + computer: 599 passed.e2e-channel-purge*.mjs,e2e-group-management.mjs,e2e-client-interactions.mjs,e2e-human-channel-names.mjs.Change outline
packages/client/src/client/ds/:field.tsx,form-dialog.tsx,callout.tsx; tokens andNoteextended.dialogPrimitives()helpers; new tests for group management, invite, nickname, ingest and diagnostics.changes/1600-design-system-dialogs.md.Agent task: claude-code/cloud/session_0152zfVCAc6MNB8R8xVq9b76
🤖 Generated with Claude Code
https://claude.ai/code/session_0152zfVCAc6MNB8R8xVq9b76
Generated by Claude Code