{
  "version": 3,
  "sources": ["../../src/button/index.tsx"],
  "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../tooltip';\nimport Icon from '../icon';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { positionToPlacement } from '../popover/utils';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst disabledEventsOnDisabledButton = ['onMouseDown', 'onClick'];\nfunction useDeprecatedProps({\n  __experimentalIsFocusable,\n  isDefault,\n  isPrimary,\n  isSecondary,\n  isTertiary,\n  isLink,\n  isPressed,\n  isSmall,\n  size,\n  variant,\n  describedBy,\n  ...otherProps\n}) {\n  let computedSize = size;\n  let computedVariant = variant;\n  const newProps = {\n    accessibleWhenDisabled: __experimentalIsFocusable,\n    // @todo Mark `isPressed` as deprecated\n    'aria-pressed': isPressed,\n    description: describedBy\n  };\n  if (isSmall) {\n    computedSize ??= 'small';\n  }\n  if (isPrimary) {\n    computedVariant ??= 'primary';\n  }\n  if (isTertiary) {\n    computedVariant ??= 'tertiary';\n  }\n  if (isSecondary) {\n    computedVariant ??= 'secondary';\n  }\n  if (isDefault) {\n    deprecated('wp.components.Button `isDefault` prop', {\n      since: '5.4',\n      alternative: 'variant=\"secondary\"'\n    });\n    computedVariant ??= 'secondary';\n  }\n  if (isLink) {\n    computedVariant ??= 'link';\n  }\n  return {\n    ...newProps,\n    ...otherProps,\n    size: computedSize,\n    variant: computedVariant\n  };\n}\n\n/**\n * Lets users take actions and make choices with a single click or tap.\n *\n * ```jsx\n * import { Button } from '@wordpress/components';\n * const Mybutton = () => (\n *   <Button\n *     variant=\"primary\"\n *     onClick={ handleClick }\n *   >\n *     Click here\n *   </Button>\n * );\n * ```\n */\nexport function UnforwardedButton(props, ref) {\n  const {\n    __next40pxDefaultSize,\n    accessibleWhenDisabled,\n    isBusy,\n    isDestructive,\n    className,\n    disabled,\n    icon,\n    iconPosition = 'left',\n    iconSize,\n    showTooltip,\n    tooltipPosition,\n    shortcut,\n    label,\n    children,\n    size = 'default',\n    text,\n    variant,\n    description,\n    ...buttonOrAnchorProps\n  } = useDeprecatedProps(props);\n  const {\n    href,\n    target,\n    'aria-checked': ariaChecked,\n    'aria-pressed': ariaPressed,\n    'aria-selected': ariaSelected,\n    ...additionalProps\n  } = 'href' in buttonOrAnchorProps ? buttonOrAnchorProps : {\n    href: undefined,\n    target: undefined,\n    ...buttonOrAnchorProps\n  };\n  const instanceId = useInstanceId(Button, 'components-button__description');\n  const hasChildren = 'string' === typeof children && !!children || Array.isArray(children) && children?.[0] && children[0] !== null &&\n  // Tooltip should not considered as a child\n  children?.[0]?.props?.className !== 'components-tooltip';\n  const truthyAriaPressedValues = [true, 'true', 'mixed'];\n  const classes = clsx('components-button', className, {\n    'is-next-40px-default-size': __next40pxDefaultSize,\n    'is-secondary': variant === 'secondary',\n    'is-primary': variant === 'primary',\n    'is-small': size === 'small',\n    'is-compact': size === 'compact',\n    'is-tertiary': variant === 'tertiary',\n    'is-pressed': truthyAriaPressedValues.includes(ariaPressed),\n    'is-pressed-mixed': ariaPressed === 'mixed',\n    'is-busy': isBusy,\n    'is-link': variant === 'link',\n    'is-destructive': isDestructive,\n    'has-text': !!icon && (hasChildren || text),\n    'has-icon': !!icon,\n    'has-icon-right': iconPosition === 'right'\n  });\n  const trulyDisabled = disabled && !accessibleWhenDisabled;\n  const Tag = href !== undefined && !disabled ? 'a' : 'button';\n  const buttonProps = Tag === 'button' ? {\n    type: 'button',\n    disabled: trulyDisabled,\n    'aria-checked': ariaChecked,\n    'aria-pressed': ariaPressed,\n    'aria-selected': ariaSelected\n  } : {};\n  const anchorProps = Tag === 'a' ? {\n    href,\n    target\n  } : {};\n  const disableEventProps = {};\n  if (disabled && accessibleWhenDisabled) {\n    // In this case, the button will be disabled, but still focusable and\n    // perceivable by screen reader users.\n    buttonProps['aria-disabled'] = true;\n    anchorProps['aria-disabled'] = true;\n    for (const disabledEvent of disabledEventsOnDisabledButton) {\n      disableEventProps[disabledEvent] = event => {\n        if (event) {\n          event.stopPropagation();\n          event.preventDefault();\n        }\n      };\n    }\n  }\n\n  // Should show the tooltip if...\n  const shouldShowTooltip = !trulyDisabled && (\n  // An explicit tooltip is passed or...\n  showTooltip && !!label ||\n  // There's a shortcut or...\n  !!shortcut ||\n  // There's a label and...\n  !!label &&\n  // The children are empty and...\n  !children?.length &&\n  // The tooltip is not explicitly disabled.\n  false !== showTooltip);\n  const descriptionId = description ? instanceId : undefined;\n  const describedById = additionalProps['aria-describedby'] || descriptionId;\n  const commonProps = {\n    className: classes,\n    'aria-label': additionalProps['aria-label'] || label,\n    'aria-describedby': describedById,\n    ref\n  };\n  const elementChildren = /*#__PURE__*/_jsxs(_Fragment, {\n    children: [icon && iconPosition === 'left' && /*#__PURE__*/_jsx(Icon, {\n      icon: icon,\n      size: iconSize\n    }), text && /*#__PURE__*/_jsx(_Fragment, {\n      children: text\n    }), children, icon && iconPosition === 'right' && /*#__PURE__*/_jsx(Icon, {\n      icon: icon,\n      size: iconSize\n    })]\n  });\n  const element = Tag === 'a' ? /*#__PURE__*/_jsx(\"a\", {\n    ...anchorProps,\n    ...additionalProps,\n    ...disableEventProps,\n    ...commonProps,\n    children: elementChildren\n  }) : /*#__PURE__*/_jsx(\"button\", {\n    ...buttonProps,\n    ...additionalProps,\n    ...disableEventProps,\n    ...commonProps,\n    children: elementChildren\n  });\n\n  // In order to avoid some React reconciliation issues, we are always rendering\n  // the `Tooltip` component even when `shouldShowTooltip` is `false`.\n  // In order to make sure that the tooltip doesn't show when it shouldn't,\n  // we don't pass the props to the `Tooltip` component.\n  const tooltipProps = shouldShowTooltip ? {\n    text: children?.length && description ? description : label,\n    shortcut,\n    placement: tooltipPosition &&\n    // Convert legacy `position` values to be used with the new `placement` prop\n    positionToPlacement(tooltipPosition)\n  } : {};\n  return /*#__PURE__*/_jsxs(_Fragment, {\n    children: [/*#__PURE__*/_jsx(Tooltip, {\n      ...tooltipProps,\n      children: element\n    }), description && /*#__PURE__*/_jsx(VisuallyHidden, {\n      children: /*#__PURE__*/_jsx(\"span\", {\n        id: descriptionId,\n        children: description\n      })\n    })]\n  });\n}\nexport const Button = forwardRef(UnforwardedButton);\nButton.displayName = 'Button';\nexport default Button;"],
  "mappings": "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",
  "names": []
}
