Skip to content

zidane-ui/machines

import { … } from 'zidane-ui/machines'ui/src/machines/index.ts

Components#

AddServerFormComponent#

Renders the add-a-server form.

TypeScript
function AddServerForm(props: AddServerFormProps): Element | null
Parameters
NameTypeDescription
propsAddServerFormProps

The cancel and added callbacks, an id prefix, className and style.

Element | null
AddServerForm props
NameTypeDescription
className?string

Extra classes on the form.

idPrefix?string

The fields' id prefix (two forms on one page). Default host.

onAdded(result: { host?: HostSummary; latencyMs?: number; name: string; ok: true; serverVersion?: string }) => void | Promise<void>

Called after the server was saved.

onCancel() => void

Called when the user cancels.

style?CSSProperties

Inline styles on the form.

ui/src/machines/AddServerForm.tsx:35

CapabilitiesViewComponent#

Renders the full check: OS and free disk, each tool found or missing with its version, the sandbox, the environment kinds and what the host allows, with Re-check.

TypeScript
function CapabilitiesView(props: CapabilitiesViewProps): Element
Parameters
NameTypeDescription
propsCapabilitiesViewProps

CapabilitiesViewProps.

Element
CapabilitiesView props
NameTypeDescription
capsHostCapabilities | null

The host's capabilities; null while the first check is out.

checkingboolean

A check is out (the Re-check button waits).

className?string

Classes merged on the root.

errorMachinesError | null

Why the last check failed.

installed?{ name: string; ok: boolean; output: string } | null

How the last install went: its output shows under the tools when it failed.

installing?string | null

The tool being installed.

installRestricted?boolean

This connection may not install (a chat token): Install shows, Admin only.

local?boolean

This computer: it serves no clients, so what it allows is not listed.

onInstall?(name: string) => void

Installs a missing tool there. Absent: a missing tool offers nothing.

onRecheck() => void

Probes again.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostCapabilities.tsx:202

CapabilityTagsComponent#

Renders the tags a host's row shows: a few tools and cloud kinds, then "+N".

TypeScript
function CapabilityTags(props: CapabilityTagsProps): Element | null
Parameters
NameTypeDescription
propsCapabilityTagsProps

CapabilityTagsProps.

Element | null
CapabilityTags props
NameTypeDescription
capsHostCapabilities | null

The host's capabilities; nothing shows without them or for an older server's partial answer.

ui/src/machines/HostCapabilities.tsx:110

ComposerNoticeComponent#

A dismissable notice above the composer: why a new chat could not be created (its server went offline, …).

TypeScript
function ComposerNotice(props: ComposerNoticeProps): Element
Parameters
NameTypeDescription
propsComposerNoticeProps

The text, the dismiss callback, a test id, className and style.

Element
ComposerNotice props
NameTypeDescription
className?string

Extra classes on the root.

onDismiss() => void

Called when the user dismisses it.

style?CSSProperties

Inline styles on the root.

testId?string

The root's data-testid. Default composer-notice.

textstring

What happened.

ui/src/machines/Banners.tsx:92

CopyTextComponent#

Text that copies itself on click, and says so for a moment.

TypeScript
function CopyText(props: CopyTextProps): Element
Parameters
NameTypeDescription
propsCopyTextProps

The text, field, className and style.

Element
CopyText props
NameTypeDescription
className?string

Extra classes on the button.

field?boolean

Shown as a full-width field (a well), not inline text.

style?CSSProperties

Inline styles on the button.

textstring

The text shown and copied.

ui/src/machines/ServerCard.tsx:78

DaemonMenuComponent#

Renders the daemon dot and its menu. Nothing without the host's daemon.

TypeScript
function DaemonMenu(props: DaemonMenuProps): Element | null
Parameters
NameTypeDescription
propsDaemonMenuProps

The orb's counts, the app's session callbacks, the daemon mode toggle, className and style.

Element | null
DaemonMenu props
NameTypeDescription
attention?number

Sessions waiting for the user, for the orb.

className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before "Restart daemon now". Default: the provider's confirm.

daemonMode?boolean

Daemon mode is on: the toggle row offers to turn it off.

onDaemonModeChange?(on: boolean) => void

Turns daemon mode on or off. Absent: no toggle row.

onOpenSession?(sessionId: string) => void

Opens a session the daemon holds. Absent: its row does nothing.

running?number

Runs on the daemon now, for the orb.

sessionTitle?(sessionId: string) => string

A session's title for its row and the diagnostics. Default: the first 8 characters of its id.

style?CSSProperties

Inline styles on the root.

ui/src/machines/DaemonMenu.tsx:104

HostRemovedBannerComponent#

The chat that was open closed because its server was removed.

TypeScript
function HostRemovedBanner(props: HostRemovedBannerProps): Element
Parameters
NameTypeDescription
propsHostRemovedBannerProps

The notice, the dismiss callback, className and style.

Element
HostRemovedBanner props
NameTypeDescription
className?string

Extra classes on the root.

noticestring

What was removed ("<server> was removed").

onDismiss() => void

Called when the user dismisses it.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:127

HostSignInComponent#

Renders a sign-in on a server from start to end.

TypeScript
function HostSignIn(props: HostSignInProps): Element | null
Parameters
NameTypeDescription
propsHostSignInProps

The server, the target and its label, onDone, onClose, className and style.

Element | null
HostSignIn props
NameTypeDescription
className?string

Extra classes on the root.

hostIdstring

The server.

hostNamestring

Its name, for the lines.

labelstring

What is being signed in to, for the lines.

onClose() => void

Closes the strip (Cancel or Close).

onDone?() => void

The server stored the tokens.

style?CSSProperties

Inline styles on the root.

targetHostSignInTarget

What to sign in to there. Read once, when the sign-in starts.

ui/src/machines/HostSignIn.tsx:40

HostsSectionComponent#

Renders the hosts list, the add form and a host's page.

TypeScript
function HostsSection(props: HostsSectionProps): Element
Parameters
NameTypeDescription
propsHostsSectionProps

confirm, now, className and style.

Element
HostsSection props
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before removing a server, installing an update, copying a secret. Default: the provider's confirm.

now?number

"Now" for the relative dates (screenshots). Default: the clock.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostsSection.tsx:54

HostSyncPanelComponent#

Renders a server's settings sync from this computer.

TypeScript
function HostSyncPanel(props: HostSyncPanelProps): Element | null
Parameters
NameTypeDescription
propsHostSyncPanelProps

The server, confirm, className and style.

Element | null
HostSyncPanel props
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before copying a secret or taking over. Default: the provider's confirm.

hostHostSummary

The server.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostSyncPanel.tsx:82

MachinesProviderComponent#

Provides a MachinesHost, optional label overrides and a confirm to the machines components below it.

TypeScript
function MachinesProvider(props: MachinesProviderProps): Element
Parameters
NameTypeDescription
propsMachinesProviderProps

Provider props: the host, optional labels and confirm, and the children to render.

Element
MachinesProvider props
NameTypeDescription
childrenReactNode

The components that read from host.

confirm?MachinesConfirm

Asks before a destructive action, on the app's modal layer. Default: a ConfirmDialog on the provider's own overlay.

hostMachinesHost

The host the machines components read from and act through.

labels?Partial<{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }>

Overrides for the machines components' strings. Keys you leave out keep the default English label.

ui/src/machines/MachinesProvider.tsx:59

MachineWaitingBannerComponent#

"Waiting for laptop…" while the session's run is paused on an offline machine, gone at once when the host hears that machine came back.

TypeScript
function MachineWaitingBanner(props: MachineWaitingBannerProps): Element | null
Parameters
NameTypeDescription
propsMachineWaitingBannerProps

The machine waited for, className and style.

Element | null
MachineWaitingBanner props
NameTypeDescription
className?string

Extra classes on the root.

machinestring | null

The machine the session's run waits for (from its notices, machineWaiting in zidane/chat/pure), or null.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:156

ServerCardComponent#

Renders a server's card: what it is and how it is, and the actions the host offers.

TypeScript
function ServerCard(props: ServerCardProps): Element
Parameters
NameTypeDescription
propsServerCardProps

The server, its saved entry, the change callback, a badge, confirm, className and style.

Element
ServerCard props
NameTypeDescription
badge?ReactNode

Shown after the status dot and chip (a sync outcome badge).

className?string

Extra classes on the card.

confirm?MachinesConfirm

Asks before Remove. Default: the provider's confirm.

hostHostSummary

The server, with its live status.

now?number

The current time for the facts, epoch ms. Default: now.

onChanged?() => void | Promise<void>

Called after a test, rename, URL change or removal changed what the host holds.

saved?HostSummary

The saved entry, for the dates the live status lacks (lastConnectedAt). Default: host.

style?CSSProperties

Inline styles on the card.

ui/src/machines/ServerCard.tsx:134

ServerMachinesPanelComponent#

Renders a server's machine links and machines.

TypeScript
function ServerMachinesPanel(props: ServerMachinesPanelProps): Element
Parameters
NameTypeDescription
propsServerMachinesPanelProps

The server, confirm, className and style.

Element
ServerMachinesPanel props
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Forget. Default: the provider's confirm.

hostHostSummary

The server.

now?number

The current time for "last seen", epoch ms. Default: now.

style?CSSProperties

Inline styles on the root.

ui/src/machines/ServerMachinesPanel.tsx:214

ServerOfflineBannerComponent#

Replaces the composer while the session's server can't be reached: why, and Retry (when the host can retry and a retry can help).

TypeScript
function ServerOfflineBanner(props: ServerOfflineBannerProps): Element
Parameters
NameTypeDescription
propsServerOfflineBannerProps

The server, a fallback name, className and style.

Element
ServerOfflineBanner props
NameTypeDescription
className?string

Extra classes on the root.

hostHostSummary | undefined

The session's server, or undefined when it is no longer saved.

name?string

The name to use when the server is gone. Default: the machinesThisServer label.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:37

ServerUpdatePanelComponent#

Renders a server's auto-update state and actions.

TypeScript
function ServerUpdatePanel(props: ServerUpdatePanelProps): Element | null
Parameters
NameTypeDescription
propsServerUpdatePanelProps

The server, confirm, className and style.

Element | null
ServerUpdatePanel props
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Install now. Default: the provider's confirm.

hostHostSummary

The server.

style?CSSProperties

Inline styles on the root.

ui/src/machines/ServerUpdatePanel.tsx:44

SyncAccountsComponent#

Renders this computer's accounts against the server's.

TypeScript
function SyncAccounts(props: SyncAccountsProps): Element
Parameters
NameTypeDescription
propsSyncAccountsProps

The server, the accounts, the copied keys, onToggleKey, className and style.

Element
SyncAccounts props
NameTypeDescription
accountsreadonly HostSyncAccount[]

This computer's providers with an API key or a sign-in (HostSyncState.local.accounts).

className?string

Extra classes on the root.

hostHostSummary

The server.

keysreadonly string[]

Providers whose API key is copied.

onToggleKey(provider: { key: string; label: string }) => void

A key's box was ticked or unticked.

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncAccounts.tsx:59

SyncMarkerComponent#

Renders where a server's setting came from, or nothing when sync never wrote it.

TypeScript
function SyncMarker(props: SyncMarkerProps): Element | null
Parameters
NameTypeDescription
propsSyncMarkerProps

The server, its record, the setting's key, className and style.

Element | null
SyncMarker props
NameTypeDescription
className?string

Extra classes on the root.

hostIdstring

The server whose setting it is.

settingKeystring

The setting's key (approvalMode).

statusSyncStatus | null

The server's sync record (useServerSyncStatus).

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncMarker.tsx:51

SyncOutcomeBadgeComponent#

Renders a server's last push outcome, or nothing.

TypeScript
function SyncOutcomeBadge(props: SyncOutcomeBadgeProps): Element | null
Parameters
NameTypeDescription
propsSyncOutcomeBadgeProps

The sync state, className and style.

Element | null
SyncOutcomeBadge props
NameTypeDescription
className?string

Extra classes on the root.

stateHostSyncState | null

The server's sync state (MachinesHost.sync.state); null shows nothing.

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncOutcomeBadge.tsx:48

TokensPanelComponent#

Renders a server's tokens and the create form. Nothing without the host's tokens, or while the connection's permissions are not known.

TypeScript
function TokensPanel(props: TokensPanelProps): Element | null
Parameters
NameTypeDescription
propsTokensPanelProps

The server, confirm, className and style.

Element | null
TokensPanel props
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Revoke. Default: the provider's confirm.

hostHostSummary

The server whose tokens to manage.

now?number

The current time for the dates, epoch ms. Default: now.

style?CSSProperties

Inline styles on the root.

ui/src/machines/TokensPanel.tsx:56

Functions#

escapeCancelsFunction#

Escape inside an inline form closes that form, not the dialog around it.

TypeScript
function escapeCancels(cancel: () => void): (event: KeyboardEvent) => void
Parameters
NameTypeDescription
cancel() => void

Closes the form.

(event: KeyboardEvent) => void

ui/src/machines/ServerCard.tsx:53

hostsSettingsSectionFunction#

The Hosts section, over the nearest MachinesProvider.

TypeScript
function hostsSettingsSection(
  props?: HostsSectionProps,
  overrides?: PreferenceSectionOverrides,
): SettingsSection
Parameters
NameTypeDefaultDescription
props?HostsSectionProps{}

What HostsSection takes (confirm, now).

overrides?PreferenceSectionOverrides{}

The title, description or group, instead of the layout's.

ui/src/machines/settings-section.tsx:20

useHostCapabilitiesFunction#

A host's capabilities. Nothing is asked while enabled is false (an unreachable server) or without the host's capabilities.

TypeScript
function useHostCapabilities(hostId: string, enabled?: boolean): HostCapabilitiesState
Parameters
NameTypeDefaultDescription
hostIdstring

The host (local for This computer).

enabled?booleantrue

Whether to ask. Default true.

ui/src/machines/HostCapabilities.tsx:45

useHostSyncFunction#

hostId's sync state, kept current (re-read on every change the backend reports); null before the first read, when it can't be read, or without the host's sync.state.

TypeScript
function useHostSync(
  hostId: string,
): { reload: () => Promise<void>; state: HostSyncState | null }
Parameters
NameTypeDescription
hostIdstring

The server.

{ reload: () => Promise<void>; state: HostSyncState | null }

ui/src/machines/HostSyncPanel.tsx:40

useLentServersFunction#

The machine names of the servers this computer uses as machines (local@<server>), so a picker can show those servers once, as servers. Listens to the host's links only while enabled.

TypeScript
function useLentServers(enabled: boolean): ReadonlySet<string>
Parameters
NameTypeDescription
enabledboolean

Whether to listen (the app has servers and shows a picker).

ReadonlySet<string>

ui/src/machines/MachinesProvider.tsx:133

useMachinesConfirmFunction#

Returns how the machines components ask before a destructive action.

TypeScript
function useMachinesConfirm(): MachinesConfirm

ui/src/machines/MachinesProvider.tsx:101

useMachinesHostFunction#

Returns the MachinesHost from the nearest MachinesProvider, or an empty host outside one.

TypeScript
function useMachinesHost(): MachinesHost

ui/src/machines/MachinesProvider.tsx:96

useMachinesLabelsFunction#

Returns the machines components' strings: the defaults merged with any overrides given to MachinesProvider or LabelsProvider.

TypeScript
function useMachinesLabels(): { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }
{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }

ui/src/machines/MachinesProvider.tsx:106

useOnlineMachinesFunction#

The names of the machines last heard online, from every host; empty without the host's machines.

TypeScript
function useOnlineMachines(): ReadonlySet<string>
ReadonlySet<string>

ui/src/machines/MachinesProvider.tsx:140

usePermittedFunction#

Whether the host may do action right now (its permitted store). Re-renders when that changes.

TypeScript
function usePermitted(action: MachinesAction): boolean
Parameters
NameTypeDescription
actionMachinesAction

The action.

boolean

ui/src/machines/MachinesProvider.tsx:118

usePresenceMapFunction#

Every live session's presence, by session id (list-level decisions: ordering, counts); empty without presence.

TypeScript
function usePresenceMap(): ReadonlyMap<string, SessionPresence>
ReadonlyMap<string, SessionPresence>

ui/src/machines/MachinesProvider.tsx:151

useServerSyncStatusFunction#

A server's sync record, kept current; null for This computer (hostId null), a host without sync, or a server without sync.

TypeScript
function useServerSyncStatus(hostId: string | null): SyncStatus | null
Parameters
NameTypeDescription
hostIdstring | null

The server, or null.

SyncStatus | null

ui/src/machines/SyncMarker.tsx:27

useSessionPresenceFunction#

One session's presence; re-renders only when that session's presence changes. null without presence.

TypeScript
function useSessionPresence(sessionId: string | null): SessionPresence | null
Parameters
NameTypeDescription
sessionIdstring | null

The session, or null for none.

ui/src/machines/MachinesProvider.tsx:161

Constants#

HOST_CARD_ICON_CLASSConstant#

The icon well of a host card.

TypeScript
const HOST_CARD_ICON_CLASS: 'zg-well shrink-0 inline-flex items-center justify-center size-7 rounded-zg-md text-sm text-[var(--zg-text-muted)]'

ui/src/machines/ServerCard.tsx:45

HOST_NAME_MAXConstant#

The desktop app's hosts:* limits, mirrored so a field can't take more than it accepts.

TypeScript
const HOST_NAME_MAX = 200

ui/src/machines/ServerCard.tsx:38

HOST_TOKEN_MAXConstant#

The longest device token the desktop app accepts.

TypeScript
const HOST_TOKEN_MAX = 4096

ui/src/machines/ServerCard.tsx:42

HOST_URL_MAXConstant#

The longest server URL the desktop app accepts.

TypeScript
const HOST_URL_MAX = 2048

ui/src/machines/ServerCard.tsx:40

Interfaces#

AddServerFormPropsInterface#

Props for AddServerForm.

TypeScript
interface AddServerFormProps
AddServerFormProps properties
NameTypeDescription
className?string

Extra classes on the form.

idPrefix?string

The fields' id prefix (two forms on one page). Default host.

onAdded(result: { host?: HostSummary; latencyMs?: number; name: string; ok: true; serverVersion?: string }) => void | Promise<void>

Called after the server was saved.

onCancel() => void

Called when the user cancels.

style?CSSProperties

Inline styles on the form.

ui/src/machines/AddServerForm.tsx:17

CapabilitiesViewPropsInterface#

Props for CapabilitiesView.

TypeScript
interface CapabilitiesViewProps
CapabilitiesViewProps properties
NameTypeDescription
capsHostCapabilities | null

The host's capabilities; null while the first check is out.

checkingboolean

A check is out (the Re-check button waits).

className?string

Classes merged on the root.

errorMachinesError | null

Why the last check failed.

installed?{ name: string; ok: boolean; output: string } | null

How the last install went: its output shows under the tools when it failed.

installing?string | null

The tool being installed.

installRestricted?boolean

This connection may not install (a chat token): Install shows, Admin only.

local?boolean

This computer: it serves no clients, so what it allows is not listed.

onInstall?(name: string) => void

Installs a missing tool there. Absent: a missing tool offers nothing.

onRecheck() => void

Probes again.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostCapabilities.tsx:171

CapabilityTagsPropsInterface#

Props for CapabilityTags.

TypeScript
interface CapabilityTagsProps
CapabilityTagsProps properties
NameTypeDescription
capsHostCapabilities | null

The host's capabilities; nothing shows without them or for an older server's partial answer.

ui/src/machines/HostCapabilities.tsx:100

ComposerNoticePropsInterface#

Props for ComposerNotice.

TypeScript
interface ComposerNoticeProps
ComposerNoticeProps properties
NameTypeDescription
className?string

Extra classes on the root.

onDismiss() => void

Called when the user dismisses it.

style?CSSProperties

Inline styles on the root.

testId?string

The root's data-testid. Default composer-notice.

textstring

What happened.

ui/src/machines/Banners.tsx:74

CopyTextPropsInterface#

Props for CopyText.

TypeScript
interface CopyTextProps
CopyTextProps properties
NameTypeDescription
className?string

Extra classes on the button.

field?boolean

Shown as a full-width field (a well), not inline text.

style?CSSProperties

Inline styles on the button.

textstring

The text shown and copied.

ui/src/machines/ServerCard.tsx:62

DaemonMenuPropsInterface#

Props for DaemonMenu.

TypeScript
interface DaemonMenuProps
DaemonMenuProps properties
NameTypeDescription
attention?number

Sessions waiting for the user, for the orb.

className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before "Restart daemon now". Default: the provider's confirm.

daemonMode?boolean

Daemon mode is on: the toggle row offers to turn it off.

onDaemonModeChange?(on: boolean) => void

Turns daemon mode on or off. Absent: no toggle row.

onOpenSession?(sessionId: string) => void

Opens a session the daemon holds. Absent: its row does nothing.

running?number

Runs on the daemon now, for the orb.

sessionTitle?(sessionId: string) => string

A session's title for its row and the diagnostics. Default: the first 8 characters of its id.

style?CSSProperties

Inline styles on the root.

ui/src/machines/DaemonMenu.tsx:78

HostCapabilitiesStateInterface#

What useHostCapabilities returns.

TypeScript
interface HostCapabilitiesState
HostCapabilitiesState properties
NameTypeDescription
capsHostCapabilities | null

The last answer; null before the first.

checkingboolean

A check is out.

errorMachinesError | null

Why the last check failed; null after a success.

install?(name: string) => Promise<void>

Installs a missing tool there; absent without the host's installTool.

installed{ name: string; ok: boolean; output: string } | null

How the last install went.

installingstring | null

The tool being installed.

recheck() => Promise<void>

Probes again, bypassing the backend's cache.

ui/src/machines/HostCapabilities.tsx:21

HostRemovedBannerPropsInterface#

Props for HostRemovedBanner.

TypeScript
interface HostRemovedBannerProps
HostRemovedBannerProps properties
NameTypeDescription
className?string

Extra classes on the root.

noticestring

What was removed ("<server> was removed").

onDismiss() => void

Called when the user dismisses it.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:111

HostSignInPropsInterface#

Props for HostSignIn.

TypeScript
interface HostSignInProps
HostSignInProps properties
NameTypeDescription
className?string

Extra classes on the root.

hostIdstring

The server.

hostNamestring

Its name, for the lines.

labelstring

What is being signed in to, for the lines.

onClose() => void

Closes the strip (Cancel or Close).

onDone?() => void

The server stored the tokens.

style?CSSProperties

Inline styles on the root.

targetHostSignInTarget

What to sign in to there. Read once, when the sign-in starts.

ui/src/machines/HostSignIn.tsx:16

HostsSectionPropsInterface#

Props for HostsSection.

TypeScript
interface HostsSectionProps
HostsSectionProps properties
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before removing a server, installing an update, copying a secret. Default: the provider's confirm.

now?number

"Now" for the relative dates (screenshots). Default: the clock.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostsSection.tsx:38

HostSyncPanelPropsInterface#

Props for HostSyncPanel.

TypeScript
interface HostSyncPanelProps
HostSyncPanelProps properties
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before copying a secret or taking over. Default: the provider's confirm.

hostHostSummary

The server.

style?CSSProperties

Inline styles on the root.

ui/src/machines/HostSyncPanel.tsx:66

MachinesProviderPropsInterface#

Props for MachinesProvider.

TypeScript
interface MachinesProviderProps
MachinesProviderProps properties
NameTypeDescription
childrenReactNode

The components that read from host.

confirm?MachinesConfirm

Asks before a destructive action, on the app's modal layer. Default: a ConfirmDialog on the provider's own overlay.

hostMachinesHost

The host the machines components read from and act through.

labels?Partial<{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }>

Overrides for the machines components' strings. Keys you leave out keep the default English label.

ui/src/machines/MachinesProvider.tsx:38

MachineWaitingBannerPropsInterface#

Props for MachineWaitingBanner.

TypeScript
interface MachineWaitingBannerProps
MachineWaitingBannerProps properties
NameTypeDescription
className?string

Extra classes on the root.

machinestring | null

The machine the session's run waits for (from its notices, machineWaiting in zidane/chat/pure), or null.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:141

ServerCardPropsInterface#

Props for ServerCard.

TypeScript
interface ServerCardProps
ServerCardProps properties
NameTypeDescription
badge?ReactNode

Shown after the status dot and chip (a sync outcome badge).

className?string

Extra classes on the card.

confirm?MachinesConfirm

Asks before Remove. Default: the provider's confirm.

hostHostSummary

The server, with its live status.

now?number

The current time for the facts, epoch ms. Default: now.

onChanged?() => void | Promise<void>

Called after a test, rename, URL change or removal changed what the host holds.

saved?HostSummary

The saved entry, for the dates the live status lacks (lastConnectedAt). Default: host.

style?CSSProperties

Inline styles on the card.

ui/src/machines/ServerCard.tsx:110

ServerMachinesPanelPropsInterface#

Props for ServerMachinesPanel.

TypeScript
interface ServerMachinesPanelProps
ServerMachinesPanelProps properties
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Forget. Default: the provider's confirm.

hostHostSummary

The server.

now?number

The current time for "last seen", epoch ms. Default: now.

style?CSSProperties

Inline styles on the root.

ui/src/machines/ServerMachinesPanel.tsx:196

ServerOfflineBannerPropsInterface#

Props for ServerOfflineBanner.

TypeScript
interface ServerOfflineBannerProps
ServerOfflineBannerProps properties
NameTypeDescription
className?string

Extra classes on the root.

hostHostSummary | undefined

The session's server, or undefined when it is no longer saved.

name?string

The name to use when the server is gone. Default: the machinesThisServer label.

style?CSSProperties

Inline styles on the root.

ui/src/machines/Banners.tsx:20

ServerUpdatePanelPropsInterface#

Props for ServerUpdatePanel.

TypeScript
interface ServerUpdatePanelProps
ServerUpdatePanelProps properties
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Install now. Default: the provider's confirm.

hostHostSummary

The server.

style?CSSProperties

Inline styles on the root.

ui/src/machines/ServerUpdatePanel.tsx:28

SyncAccountsPropsInterface#

Props for SyncAccounts.

TypeScript
interface SyncAccountsProps
SyncAccountsProps properties
NameTypeDescription
accountsreadonly HostSyncAccount[]

This computer's providers with an API key or a sign-in (HostSyncState.local.accounts).

className?string

Extra classes on the root.

hostHostSummary

The server.

keysreadonly string[]

Providers whose API key is copied.

onToggleKey(provider: { key: string; label: string }) => void

A key's box was ticked or unticked.

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncAccounts.tsx:39

SyncMarkerPropsInterface#

Props for SyncMarker.

TypeScript
interface SyncMarkerProps
SyncMarkerProps properties
NameTypeDescription
className?string

Extra classes on the root.

hostIdstring

The server whose setting it is.

settingKeystring

The setting's key (approvalMode).

statusSyncStatus | null

The server's sync record (useServerSyncStatus).

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncMarker.tsx:33

SyncOutcomeBadgePropsInterface#

Props for SyncOutcomeBadge.

TypeScript
interface SyncOutcomeBadgeProps
SyncOutcomeBadgeProps properties
NameTypeDescription
className?string

Extra classes on the root.

stateHostSyncState | null

The server's sync state (MachinesHost.sync.state); null shows nothing.

style?CSSProperties

Inline styles on the root.

ui/src/machines/SyncOutcomeBadge.tsx:18

TokensPanelPropsInterface#

Props for TokensPanel.

TypeScript
interface TokensPanelProps
TokensPanelProps properties
NameTypeDescription
className?string

Extra classes on the root.

confirm?MachinesConfirm

Asks before Revoke. Default: the provider's confirm.

hostHostSummary

The server whose tokens to manage.

now?number

The current time for the dates, epoch ms. Default: now.

style?CSSProperties

Inline styles on the root.

ui/src/machines/TokensPanel.tsx:37

Types#

MachinesConfirmType#

Asks the user to confirm; resolves with the answer.

TypeScript
type MachinesConfirm = (options: ConfirmOptions) => Promise<boolean>

ui/src/machines/MachinesProvider.tsx:26