--- /dev/null
+import React from 'react';
+import PropTypes from 'prop-types';
+import './RadioButton.scss';
+
+function RadioButton({ isActive, onToggle }) {
+ return (
+ // eslint-disable-next-line jsx-a11y/control-has-associated-label
+ <button
+ onClick={() => onToggle(!isActive)}
+ className={`radio-btn${isActive ? ' radio-btn--active' : ''}`}
+ type="button"
+ />
+ );
+}
+
+RadioButton.defaultProps = {
+ isActive: false,
+};
+
+RadioButton.propTypes = {
+ isActive: PropTypes.bool,
+ onToggle: PropTypes.func.isRequired,
+};
+
+export default RadioButton;
--- /dev/null
+@use '../../partials/flex';
+
+.radio-btn {
+ @extend .cp-fx__row--c-c;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background-color: var(--bg-surface-low);
+ box-shadow: var(--bs-surface-border);
+ cursor: pointer;
+
+ &--active {
+ background-color: var(--bg-positive);
+
+ &::before {
+ content: '';
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ background-color: white;
+ border-radius: 50%;
+ }
+ }
+}
\ No newline at end of file