UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

30 lines 2.02 kB
import { __rest } from "tslib"; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React from 'react'; import clsx from 'clsx'; import { warnOnce } from '@awsui/component-toolkit/internal'; import InternalButton from '../button/internal'; import { fireNonCancelableEvent } from '../internal/events'; import { isDevelopment } from '../internal/is-development'; import { getToggleIcon } from './util'; import styles from './styles.css.js'; export const InternalToggleButton = React.forwardRef((_a, ref) => { var { pressed, iconName: defaultIconName, pressedIconName, iconSvg: defaultIconSvg, pressedIconSvg, iconUrl: defaultIconUrl, pressedIconUrl, variant, onChange, className } = _a, rest = __rest(_a, ["pressed", "iconName", "pressedIconName", "iconSvg", "pressedIconSvg", "iconUrl", "pressedIconUrl", "variant", "onChange", "className"]); if (isDevelopment) { if (defaultIconName && !pressedIconName) { warnOnce('ToggleButton', '`pressedIconName` must be provided for `pressed` state.'); } if (defaultIconSvg && !pressedIconSvg) { warnOnce('ToggleButton', '`pressedIconSvg` must be provided for `pressed` state.'); } if (defaultIconUrl && !pressedIconUrl) { warnOnce('ToggleButton', '`pressedIconUrl` must be provided for `pressed` state.'); } } return (React.createElement(InternalButton, Object.assign({ className: clsx(className, styles[`variant-${variant}`], { [styles.pressed]: pressed }), variant: variant, formAction: "none", iconName: getToggleIcon(pressed, defaultIconName, pressedIconName), iconUrl: getToggleIcon(pressed, defaultIconUrl, pressedIconUrl), iconSvg: getToggleIcon(pressed, defaultIconSvg, pressedIconSvg), "aria-pressed": pressed, onClick: event => { event.preventDefault(); fireNonCancelableEvent(onChange, { pressed: !pressed }); } }, rest, { ref: ref }))); }); //# sourceMappingURL=internal.js.map