button/copy-action
Briefly swap the icon and label after copying so the user can see it worked, then reset. The compact icon-only version beside it relies on the icon swap alone.
<Button
variant="secondary"
icon={copied ? <Icon id="check" size="1em" /> : <Icon id="link" size="1em" />}
onPress={copyLink}
>
{copied ? 'Copied' : 'Copy deploy link'}
</Button>
{/* Compact: icon-only, the check confirms the copy */}
<Button
variant="secondary"
aria-label={copied ? 'Copied' : 'Copy deploy link'}
icon={copied ? <Icon id="check" size="1em" /> : <Icon id="link" size="1em" />}
onPress={copyLink}
/>