For AI agents: the complete documentation index is available at https://wallarm.github.io/design-system/llms.txt, the full documentation bundle is available at https://wallarm.github.io/design-system/llms-full.txt, and this page is available as Markdown at https://wallarm.github.io/design-system/components/chat-permissions.md.

ChatPermissions

The settings button in the chat composer that lists which Wally tools may run without asking first in this conversation. Each row is a switch and takes effect the moment it is flipped โ€” there is no Save, and the popover stays open so several tools can be changed in one go. The app owns the list and its order: enabled tools first, then a Separator and the disabled ones.

Source ยท Storybook

Usage

import { ChatPermissions, ChatPermissionsContent, ChatPermissionsItem, type ChatPermissionsItemCheckedChangeDetails, ChatPermissionsTrigger } from '@wallarm-org/design-system/ChatPermissions';
import { Separator } from '@wallarm-org/design-system/Separator';

Examples

Some off

Two tools switched off sit below a separator. The order is decided by the app, not the component.

Analytics

data-analytics-id lands on the real trigger <button> and on each switch row's <label>, so a click anywhere on the row resolves to the row's id.

Props

PropTypeDefaultDescription
openboolean | undefined
onOpenChange((open: boolean) => void) | undefined
data-testidstring | undefined

ChatPermissionsContent

PropTypeDefaultDescription
labelReactNodeAlways allowed in this conversationHeading above the tool rows; also names the dialog. Pass null, false or '' to hide it.
titlestring | undefined
defaultCheckedboolean | undefined
defaultValuestring | number | readonly string[] | undefined
autoFocusboolean | undefined
tabIndexnumber | undefined
relstring | undefined
onChangeChangeEventHandler<T, Element> | undefined
data-testidstring | undefined
minHeightPopoverSizeDimension | undefined
maxHeightPopoverSizeDimension | undefined

ChatPermissionsItem

PropTypeDefaultDescription
name *stringMachine name of the tool, e.g. propose_add_to_denylist; echoed back in onCheckedChange.
title *ReactNodeVisible tool name.
descriptionReactNode
onCheckedChangecomplex
labelstring | undefinedSpecifies the localized strings that identifies the accessibility elements and their states
defaultCheckedboolean | undefined
defaultValuestring | number | readonly string[] | undefined
autoFocusboolean | undefined
idstring | undefined
tabIndexnumber | undefined
relstring | undefined
onChangeChangeEventHandler<T, Element> | undefined
disabledboolean | undefinedWhether the switch is disabled.
valuestring | number | undefinedThe value of switch input. Useful for form submission.
asChildboolean | undefinedUse the provided child element as the default rendered element, combining their props and behavior.
data-testidstring | undefined
idsElementIds | undefinedThe ids of the elements in the switch. Useful for composition.
readOnlyboolean | undefinedWhether the switch is read-only
requiredboolean | undefinedIf true, the switch input is marked as required,
htmlForstring | undefined
invalidboolean | undefinedIf true, the switch is marked as invalid.
checkedboolean | undefinedThe controlled checked state of the switch
a11yModeboolean | undefined

ChatPermissionsTrigger

PropTypeDefaultDescription
titlestring | undefined
defaultCheckedboolean | undefined
defaultValuestring | number | readonly string[] | undefined
autoFocusboolean | undefined
idstring | undefined
tabIndexnumber | undefined
relstring | undefined
onChangeChangeEventHandler<T, Element> | undefined
type"button" | "submit" | "reset" | undefined
disabledboolean | undefined
namestring | undefined
valuestring | number | readonly string[] | undefined
data-testidstring | undefined

Explorer