summaryrefslogtreecommitdiffstats
path: root/src/components/molecules/layout/widget.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-01-14 11:44:24 +0100
committerArmand Philippot <git@armandphilippot.com>2022-01-14 11:44:24 +0100
commitc1ce65e75f6cf5514e7eee9541ff8a8eacc04822 (patch)
tree2dd1fc9312f1cbbc51ce977a1b50b4b3f20a7aca /src/components/molecules/layout/widget.tsx
parent88478d6b991de50582a6ef85781eed5f56d68dbb (diff)
chore: change secondary button styles
Diffstat (limited to 'src/components/molecules/layout/widget.tsx')
0 files changed, 0 insertions, 0 deletions
Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
import Label, { LabelProps } from '@components/atoms/forms/label';
import Close from '@components/atoms/icons/close';
import { FC } from 'react';
import styles from './flipping-label.module.scss';

export type FlippingLabelProps = Pick<
  LabelProps,
  'aria-label' | 'className' | 'htmlFor'
> & {
  /**
   * The front icon.
   */
  children: JSX.Element;
  /**
   * Which side of the label should be displayed? True for the close icon.
   */
  isActive: boolean;
};

const FlippingLabel: FC<FlippingLabelProps> = ({
  children,
  className = '',
  isActive,
  ...props
}) => {
  const wrapperModifier = isActive ? 'wrapper--active' : 'wrapper--inactive';

  return (
    <Label className={`${styles.label} ${className}`} {...props}>
      <span className={`${styles.wrapper} ${styles[wrapperModifier]}`}>
        <span className={styles.front}>{children}</span>
        <span className={styles.back}>
          <Close />
        </span>
      </span>
    </Label>
  );
};

export default FlippingLabel;