GitHub

Settings

Settings shell, preference rows, integrations, API keys, team and audit rows. Every sample is exhaustive across variants and states, with Sundanese sample people.

SettingsLayout + SettingsNav

Two-column settings scaffold with a sidenav (icons, badges, active item), header title, description, and actions.

Account settings

Manage your profile, notifications, and integrations.

Profile

How you appear to your team.

Display nameShown in comments, mentions, and audit logs.
EmailYour primary sign-in and notification address.
tsx
<SettingsLayout title="Account settings" nav={<SettingsNav items={…} activeId="notifications" />}></SettingsLayout>

SettingsGroup

Heading + body group. Every variant — default, bordered, card.

default

default group

Group body renders rows below the heading.

Email digestsWeekly summary every Monday.
In-app mentionsNotify me when someone @-mentions me.
bordered

bordered group

Group body renders rows below the heading.

Email digestsWeekly summary every Monday.
In-app mentionsNotify me when someone @-mentions me.
card

card group

Group body renders rows below the heading.

Email digestsWeekly summary every Monday.
In-app mentionsNotify me when someone @-mentions me.
tsx
<SettingsGroup variant="card" title="Theme"></SettingsGroup>

PreferenceRow

Label + description + control row. Both layouts plus the disabled state.

Time zoneUsed for activity timestamps and scheduled reports.
LanguageInterface language.
Beta featuresLocked on your current plan.
tsx
<PreferenceRow label="Time zone" description="…"><Select></Select></PreferenceRow>

ToggleRow

Switch control with label and description. Every state.

state
Public profileAllow anyone with your handle to view your profile.
Two-factor authRequire a code in addition to your password.
Locked policyEnforced by your workspace admin.
tsx
<ToggleRow label="Two-factor auth" defaultChecked />

SelectRow

Dropdown control with label and description. Default and disabled states.

state
Default project viewHow your projects open by default.
Plan tierManaged by billing.
tsx
<SelectRow label="Default project view" options={…} defaultValue="board" />

KeybindRow

Keyboard shortcut preference. Chord array, single-key string, editable and read-only.

variant
Open command menu
K
Create issue
C
Toggle sidebar
/
tsx
<KeybindRow label="Open command menu" shortcut={["⌘", "K"]} editable />

SessionRow

Active session with device metadata. Current session plus every device kind and the revoke action.

state
MacBook AirThis device
macOS 15.3 · Chrome 135
Location
Jakarta, Indonesia
IP address
103.84.201.54
Last active
Last active
desktop device
iOS 18.3 · Safari
Location
Bandung, Indonesia
IP address
203.78.99.11
Last active
Last active
mobile device
iOS 18.3 · Safari
Location
Bandung, Indonesia
IP address
203.78.99.12
Last active
Last active
tablet device
iOS 18.3 · Safari
Location
Bandung, Indonesia
IP address
203.78.99.13
Last active
Last active
tsx
<SessionRow device={{ name: "MacBook Air", kind: "desktop" }} current />

IntegrationCard

Third-party integration tile. Every state — connected, disconnected, coming soon.

state

Slack

Connected
Communication

Send notifications to your Slack channels.

Connected as idinstudio.slack.com

GitHub

Developer

Link PRs and issues from your repositories.

Linear

Coming soon
Project management

Sync tasks between Linear and Idin Studio.

tsx
<IntegrationCard name="Slack" connected connectedAs="idinstudio.slack.com" onDisconnect={() => {}} />

WebhookRow

Outgoing webhook with event list. Every delivery status plus active/inactive toggle.

status
https://hooks.idinstudio.com/success
project.createdinvoice.paid
DeliveredLast delivered
https://hooks.idinstudio.com/failed
project.createdinvoice.paid
FailedLast delivered
https://hooks.idinstudio.com/pending
project.createdinvoice.paid
PendingLast delivered
tsx
<WebhookRow url="https://hooks…/projects" events={[…]} active lastStatus="success" />

APIKeyRow

API key row with reveal, copy, and revoke. Full and read-scope variants.

scopes

Production

sk-idin-••••••••abc123
readwrite
Created
Last used

Staging

sk-idin-••••••••xyz987
read
Created
Last used
tsx
<APIKeyRow name="Production" maskedKey="sk-idin-••••abc123" scopes={["read", "write"]} onReveal={…} />

TeamMemberRow

Team member row with role select. Every membership status.

status
Ahmad Muhyidinahmad.muhyidin@contoh.idLast active
Active
Role for Ahmad Muhyidin
Novi Yantikanovi.yantika@contoh.id
Invited
Role for Novi Yantika
Azlan Althafazlan.althaf@contoh.id
Suspended
Role for Azlan Althaf
tsx
<TeamMemberRow user={{ name: "Ahmad Muhyidin" }} role="admin" status="active" canEdit canRemove />

InviteMemberForm

Bulk-invite form with role select and optional message.

Enter one or more emails separated by commas or new lines. Invalid entries are ignored.

tsx
<InviteMemberForm allowBulk showMessage defaultRole="editor" roles={…} onSubmit={…} />

AuditLogRow

Structured audit log entry. Every severity.

severity
Ahmad MuhyidinUpdated billing email
103.84.201.54
Novi YantikaRevoked API keyProduction
103.84.201.54
Azlan AlthafDeleted projectInviboo · Q2 review
103.84.201.54
tsx
<AuditLogRow actor={{ name: "Ahmad Muhyidin" }} action="Updated billing email" severity="info" />