[ui][button] add aria-label prop

pull/547/head
Yangshun Tay 2 years ago
parent 8299a5463e
commit 2618784dd0

@ -22,6 +22,7 @@ export type ButtonVariant =
type Props = Readonly<{ type Props = Readonly<{
addonPosition?: ButtonAddOnPosition; addonPosition?: ButtonAddOnPosition;
'aria-controls'?: string; 'aria-controls'?: string;
'aria-label'?: string;
className?: string; className?: string;
disabled?: boolean; disabled?: boolean;
display?: ButtonDisplay; display?: ButtonDisplay;
@ -57,14 +58,14 @@ const baseClasses: Record<ButtonSize, string> = {
}; };
const sizeIconSpacingEndClasses: Record<ButtonSize, string> = { const sizeIconSpacingEndClasses: Record<ButtonSize, string> = {
lg: 'ml-3 -mr-1 ', lg: 'ml-3 -mr-1',
md: 'ml-2 -mr-1 ', md: 'ml-2 -mr-1',
sm: 'ml-2 -mr-0.5', sm: 'ml-2 -mr-0.5',
}; };
const sizeIconSpacingStartClasses: Record<ButtonSize, string> = { const sizeIconSpacingStartClasses: Record<ButtonSize, string> = {
lg: 'mr-3 -ml-1 ', lg: 'mr-3 -ml-1',
md: 'mr-2 -ml-1 ', md: 'mr-2 -ml-1',
sm: 'mr-2 -ml-0.5', sm: 'mr-2 -ml-0.5',
}; };
@ -106,6 +107,7 @@ const variantDisabledClasses: Record<ButtonVariant, string> = {
export default function Button({ export default function Button({
addonPosition = 'end', addonPosition = 'end',
'aria-controls': ariaControls, 'aria-controls': ariaControls,
'aria-label': ariaLabel,
className, className,
display = 'inline', display = 'inline',
href, href,
@ -148,7 +150,7 @@ export default function Button({
const commonProps = { const commonProps = {
'aria-controls': ariaControls ?? undefined, 'aria-controls': ariaControls ?? undefined,
'aria-label': isLabelHidden ? label : undefined, 'aria-label': isLabelHidden ? ariaLabel ?? label : undefined,
children, children,
className: clsx( className: clsx(
display === 'block' ? 'flex w-full justify-center' : 'inline-flex', display === 'block' ? 'flex w-full justify-center' : 'inline-flex',

Loading…
Cancel
Save