diff options
Diffstat (limited to 'src/components/Buttons')
| -rw-r--r-- | src/components/Buttons/Button/Button.tsx | 35 | ||||
| -rw-r--r-- | src/components/Buttons/ButtonHelp/ButtonHelp.module.scss | 52 | ||||
| -rw-r--r-- | src/components/Buttons/ButtonHelp/ButtonHelp.tsx | 42 | ||||
| -rw-r--r-- | src/components/Buttons/ButtonLink/ButtonLink.tsx | 30 | ||||
| -rw-r--r-- | src/components/Buttons/ButtonSubmit/ButtonSubmit.tsx | 22 | ||||
| -rw-r--r-- | src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx | 72 | ||||
| -rw-r--r-- | src/components/Buttons/Buttons.module.scss | 289 | ||||
| -rw-r--r-- | src/components/Buttons/index.tsx | 7 | 
8 files changed, 0 insertions, 549 deletions
| diff --git a/src/components/Buttons/Button/Button.tsx b/src/components/Buttons/Button/Button.tsx deleted file mode 100644 index ada23fe..0000000 --- a/src/components/Buttons/Button/Button.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { ButtonKind, ButtonPosition } from '@ts/types/app'; -import { ReactNode } from 'react'; -import styles from '../Buttons.module.scss'; - -const Button = ({ -  children, -  clickHandler, -  kind = 'secondary', -  position = 'left', -  spacing = false, -  isDisabled = false, -}: { -  children: ReactNode; -  clickHandler: any; -  kind?: ButtonKind; -  position?: ButtonPosition; -  spacing?: boolean; -  isDisabled?: boolean; -}) => { -  const spacingClass = spacing ? styles.spacing : ''; -  const classes = `${styles.btn} ${styles[position]} ${styles[kind]} ${spacingClass}`; - -  return ( -    <button -      className={classes} -      type="button" -      disabled={isDisabled} -      onClick={clickHandler} -    > -      {children} -    </button> -  ); -}; - -export default Button; diff --git a/src/components/Buttons/ButtonHelp/ButtonHelp.module.scss b/src/components/Buttons/ButtonHelp/ButtonHelp.module.scss deleted file mode 100644 index b2a05d7..0000000 --- a/src/components/Buttons/ButtonHelp/ButtonHelp.module.scss +++ /dev/null @@ -1,52 +0,0 @@ -@use "@styles/abstracts/functions" as fun; -@use "@styles/abstracts/mixins" as mix; - -.icon { -  color: var(--color-primary-dark); -  font-weight: 600; -} - -.active { -  .icon { -    color: var(--color-fg-inverted); -  } -} - -.wrapper { -  width: fun.convert-px(44); -  height: fun.convert-px(44); -  background: var(--color-bg); -  border: fun.convert-px(3) solid var(--color-primary-dark); -  border-radius: 50%; -  box-shadow: fun.convert-px(1) fun.convert-px(1) 0 0 var(--color-shadow); -  transition: all 0.3s ease-in-out 0s; - -  @include mix.pointer("fine") { -    width: fun.convert-px(30); -    height: fun.convert-px(30); -    line-height: 1; -  } - -  &:hover, -  &:focus { -    border-color: var(--color-primary-light); -    color: var(--color-primary-light); -    box-shadow: fun.convert-px(1) fun.convert-px(1) fun.convert-px(1) -        var(--color-shadow-light), -      fun.convert-px(1) fun.convert-px(2) fun.convert-px(2) fun.convert-px(-2) -        var(--color-shadow-light), -      fun.convert-px(3) fun.convert-px(4) fun.convert-px(5) fun.convert-px(-4) -        var(--color-shadow-light), -      fun.convert-px(7) fun.convert-px(10) fun.convert-px(12) fun.convert-px(-3) -        var(--color-shadow-light); -    transform: scale(1.1); - -    .icon { -      transform: scale(1.1); -    } -  } - -  &.active { -    background: var(--color-primary); -  } -} diff --git a/src/components/Buttons/ButtonHelp/ButtonHelp.tsx b/src/components/Buttons/ButtonHelp/ButtonHelp.tsx deleted file mode 100644 index 2616a8f..0000000 --- a/src/components/Buttons/ButtonHelp/ButtonHelp.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { SetStateAction } from 'react'; -import { useIntl } from 'react-intl'; -import styles from './ButtonHelp.module.scss'; - -const ButtonHelp = ({ -  showHelp, -  setShowHelp, -  title, -}: { -  showHelp: boolean; -  setShowHelp: (value: SetStateAction<boolean>) => void; -  title?: string; -}) => { -  const intl = useIntl(); - -  const handleClick = () => { -    setShowHelp((prev) => !prev); -  }; - -  const activeModifier = showHelp ? styles.active : ''; - -  return ( -    <button -      onClick={handleClick} -      title={title} -      className={`${styles.wrapper} ${activeModifier}`} -    > -      <span className={styles.icon} aria-hidden="true"> -        ? -      </span> -      <span className="screen-reader-text"> -        {intl.formatMessage({ -          defaultMessage: 'Help', -          description: 'ButtonHelp: screen reader text', -          id: 'oPf+XA', -        })} -      </span> -    </button> -  ); -}; - -export default ButtonHelp; diff --git a/src/components/Buttons/ButtonLink/ButtonLink.tsx b/src/components/Buttons/ButtonLink/ButtonLink.tsx deleted file mode 100644 index 179c686..0000000 --- a/src/components/Buttons/ButtonLink/ButtonLink.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { ButtonPosition } from '@ts/types/app'; -import Link from 'next/link'; -import { ReactNode } from 'react'; -import styles from '../Buttons.module.scss'; - -const ButtonLink = ({ -  children, -  target, -  position = 'left', -  isExternal = false, -}: { -  children: ReactNode; -  target: string; -  position?: ButtonPosition; -  isExternal?: boolean; -}) => { -  const classes = `${styles.btn} ${styles[position]} ${styles.tertiary}`; - -  return isExternal ? ( -    <a className={classes} href={target}> -      {children} -    </a> -  ) : ( -    <Link href={target}> -      <a className={classes}>{children}</a> -    </Link> -  ); -}; - -export default ButtonLink; diff --git a/src/components/Buttons/ButtonSubmit/ButtonSubmit.tsx b/src/components/Buttons/ButtonSubmit/ButtonSubmit.tsx deleted file mode 100644 index 4725cad..0000000 --- a/src/components/Buttons/ButtonSubmit/ButtonSubmit.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { ReactNode } from 'react'; -import styles from '../Buttons.module.scss'; - -type Modifier = 'search' | 'submit'; - -const ButtonSubmit = ({ -  children, -  modifier = 'submit', -}: { -  children: ReactNode; -  modifier?: Modifier; -}) => { -  const withModifier = modifier === 'search' ? styles.search : styles.primary; - -  return ( -    <button type="submit" className={`${styles.btn} ${withModifier}`}> -      {children} -    </button> -  ); -}; - -export default ButtonSubmit; diff --git a/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx b/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx deleted file mode 100644 index 7ceb70d..0000000 --- a/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { CloseIcon, CogIcon, SearchIcon } from '@components/Icons'; -import { ForwardedRef, forwardRef, SetStateAction } from 'react'; -import { useIntl } from 'react-intl'; -import styles from '../Buttons.module.scss'; - -type ButtonType = 'search' | 'settings'; - -const ButtonToolbar = ( -  { -    type, -    isActivated, -    setIsActivated, -  }: { -    type: ButtonType; -    isActivated: boolean; -    setIsActivated: (value: SetStateAction<boolean>) => void; -  }, -  ref: ForwardedRef<HTMLButtonElement> -) => { -  const intl = useIntl(); -  const ButtonIcon = () => (type === 'search' ? <SearchIcon /> : <CogIcon />); -  const btnClasses = isActivated -    ? `${styles.toolbar} ${styles['toolbar--activated']}` -    : styles.toolbar; - -  return ( -    <button -      ref={ref} -      className={btnClasses} -      type="button" -      onClick={() => setIsActivated(!isActivated)} -    > -      <span className={styles.icon}> -        <span className={styles.front}> -          <ButtonIcon /> -        </span> -        <span className={styles.back}> -          <CloseIcon /> -        </span> -      </span> -      {isActivated ? ( -        <span className="screen-reader-text"> -          {intl.formatMessage( -            { -              defaultMessage: 'Close {type}', -              description: 'ButtonToolbar: Close button', -              id: 'SWq8a4', -            }, -            { -              type, -            } -          )} -        </span> -      ) : ( -        <span className="screen-reader-text"> -          {intl.formatMessage( -            { -              defaultMessage: 'Open {type}', -              description: 'ButtonToolbar: Open button', -              id: 'Z1eSIz', -            }, -            { -              type, -            } -          )} -        </span> -      )} -    </button> -  ); -}; - -export default forwardRef(ButtonToolbar); diff --git a/src/components/Buttons/Buttons.module.scss b/src/components/Buttons/Buttons.module.scss deleted file mode 100644 index 0ea9289..0000000 --- a/src/components/Buttons/Buttons.module.scss +++ /dev/null @@ -1,289 +0,0 @@ -@use "@styles/abstracts/functions" as fun; -@use "@styles/abstracts/mixins" as mix; -@use "@styles/abstracts/placeholders"; - -.btn { -  display: block; -  border: none; -  font-size: var(--font-size-md); -} - -.left { -  margin-right: auto; -} - -.right { -  margin-left: auto; -} - -.center { -  margin-left: auto; -  margin-right: auto; -} - -.primary { -  margin: auto; -  padding: var(--spacing-2xs) var(--spacing-md); -  background: var(--color-primary); -  border: fun.convert-px(2) solid var(--color-bg); -  border-radius: fun.convert-px(5); -  box-shadow: 0 0 0 fun.convert-px(2) var(--color-primary), -    0 0 0 fun.convert-px(3) var(--color-primary-darker), -    fun.convert-px(2) fun.convert-px(2) 0 fun.convert-px(3) -      var(--color-primary-dark); -  color: var(--color-fg-inverted); -  font-weight: 600; -  text-shadow: fun.convert-px(2) fun.convert-px(2) 0 var(--color-shadow); -  transition: all 0.25s ease-in-out 0s; - -  &:hover, -  &:focus { -    background: var(--color-primary-light); -    box-shadow: 0 0 0 fun.convert-px(2) var(--color-primary-light), -      0 0 0 fun.convert-px(3) var(--color-primary-darker), -      fun.convert-px(7) fun.convert-px(7) 0 fun.convert-px(2) -        var(--color-primary-dark); -    transform: translateX(#{fun.convert-px(-4)}) -      translateY(#{fun.convert-px(-4)}); -  } - -  &:focus { -    text-decoration: underline solid var(--color-fg-inverted) fun.convert-px(2); -  } - -  &:active { -    background: var(--color-primary-dark); -    box-shadow: 0 0 0 fun.convert-px(2) var(--color-primary), -      0 0 0 fun.convert-px(3) var(--color-primary-darker), -      0 0 0 0 var(--color-primary-dark); -    text-decoration: none; -    transform: translateX(#{fun.convert-px(4)}) translateY(#{fun.convert-px(4)}); -  } -} - -.secondary { -  padding: var(--spacing-2xs) var(--spacing-md); -  background: var(--color-bg); -  border: fun.convert-px(3) solid var(--color-primary); -  border-radius: fun.convert-px(5); -  box-shadow: fun.convert-px(2) fun.convert-px(2) 0 0 var(--color-bg), -    fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-primary-dark), -    fun.convert-px(5) fun.convert-px(5) 0 0 var(--color-bg), -    fun.convert-px(6) fun.convert-px(6) 0 0 var(--color-primary-dark); -  color: var(--color-primary); -  font-weight: 600; -  transition: all 0.35s ease-out 0s; - -  &:disabled { -    color: var(--color-fg-light); -    border-color: var(--color-border-dark); -    box-shadow: fun.convert-px(2) fun.convert-px(2) 0 0 var(--color-bg), -      fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-primary-darker), -      fun.convert-px(5) fun.convert-px(5) 0 0 var(--color-bg), -      fun.convert-px(6) fun.convert-px(6) 0 0 var(--color-primary-darker); -    cursor: wait; -  } - -  &:not(:disabled) { -    &:hover, -    &:focus { -      transform: translateX(#{fun.convert-px(-3)}) -        translateY(#{fun.convert-px(-5)}); -      border-color: var(--color-primary-light); -      box-shadow: fun.convert-px(2) fun.convert-px(3) 0 0 var(--color-bg), -        fun.convert-px(4) fun.convert-px(5) 0 0 var(--color-primary), -        fun.convert-px(6) fun.convert-px(8) 0 0 var(--color-bg), -        fun.convert-px(8) fun.convert-px(10) 0 0 var(--color-primary), -        fun.convert-px(10) fun.convert-px(12) fun.convert-px(1) 0 -          var(--color-shadow-light), -        fun.convert-px(10) fun.convert-px(12) fun.convert-px(5) -          fun.convert-px(1) var(--color-shadow-light); -      color: var(--color-primary-light); -    } - -    &:focus { -      text-decoration: underline var(--color-primary) fun.convert-px(2); -    } - -    &:active { -      text-decoration: none; -      transform: translateX(#{fun.convert-px(5)}) -        translateY(#{fun.convert-px(6)}); -      box-shadow: 0 0 0 0 var(--color-shadow); -    } -  } -} - -.tertiary { -  display: flex; -  flex-flow: row wrap; -  place-items: center; -  gap: var(--spacing-2xs); -  width: max-content; -  padding: var(--spacing-2xs) var(--spacing-sm); -  position: relative; -  background: var(--color-bg); -  border: fun.convert-px(3) solid var(--color-primary); -  border-radius: fun.convert-px(5); -  box-shadow: fun.convert-px(1) fun.convert-px(1) fun.convert-px(1) -      var(--color-shadow), -    fun.convert-px(1) fun.convert-px(2) fun.convert-px(2) fun.convert-px(-2) -      var(--color-shadow), -    fun.convert-px(3) fun.convert-px(4) fun.convert-px(5) fun.convert-px(-4) -      var(--color-shadow); -  color: var(--color-primary); -  font-weight: 600; -  text-decoration: underline transparent 0; -  transition: all 0.3s ease-in-out 0s, text-decoration 0.35s ease-in-out 0s; - -  &:hover, -  &:focus { -    border-color: var(--color-primary-light); -    color: var(--color-primary-light); -    box-shadow: fun.convert-px(1) fun.convert-px(1) fun.convert-px(1) -        var(--color-shadow-light), -      fun.convert-px(1) fun.convert-px(2) fun.convert-px(2) fun.convert-px(-2) -        var(--color-shadow-light), -      fun.convert-px(3) fun.convert-px(4) fun.convert-px(5) fun.convert-px(-4) -        var(--color-shadow-light), -      fun.convert-px(7) fun.convert-px(10) fun.convert-px(12) fun.convert-px(-3) -        var(--color-shadow-light); -    transform: scale(1.1); -  } - -  &:focus { -    text-decoration: underline var(--color-primary-light) fun.convert-px(3); -  } - -  &:active { -    border-color: var(--color-primary-dark); -    color: var(--color-primary-dark); -    box-shadow: 0 0 0 0 var(--color-shadow); -    text-decoration: underline transparent 0; -    transform: scale(0.94); -  } -} - -:global { -  [data-theme="dark"] { -    :local { -      .tertiary { -        img[src*="png"] { -          background: none; -        } -      } -    } -  } -} - -.toolbar { -  --draw-border-thickness: #{fun.convert-px(4)}; -  --icon-size: 100%; - -  display: flex; -  flex-flow: row nowrap; -  place-items: center; -  width: var(--btn-size, 100%); -  height: var(--btn-size, 100%); -  padding: var(--spacing-2xs); -  background: none; -  border: none; -  font-size: var(--font-size-md); - -  &:hover, -  &:focus { -    --draw-border-color1: var(--color-primary-light); -    --draw-border-color2: var(--color-primary-lighter); - -    @extend %draw-borders; -  } - -  @include mix.media("screen") { -    @include mix.dimensions("md") { -      border-radius: 8%; -    } -  } -} - -.icon { -  display: block; -  width: 100%; -  height: 100%; -  position: relative; -  transform-style: preserve-3d; -  transform: translate3d(0, 0, 0); -  transition: all 0.5s ease-in-out 0s; -} - -.front, -.back { -  display: flex; -  place-content: center; -  width: var(--icon-size); -  height: var(--icon-size); -  position: absolute; -  top: 0; -  right: 0; -  transition: all 0.6s ease-in 0s; -  backface-visibility: hidden; -} - -.front { -  transform: scale(1); -  z-index: 20; -} - -.back { -  transform: scale(0.2) rotateY(180deg); -  z-index: 10; -} - -.toolbar--activated { -  .icon { -    transform: rotateY(180deg); -  } - -  .front { -    transform: scale(0.2); -  } - -  .back { -    transform: scale(1) rotateY(180deg); -  } -} - -.search { -  background: transparent; -  margin-left: calc(var(--btn-size) * -1); -  z-index: 5; -  transition: all 0.3s ease-in-out 0s; - -  svg { -    transform: scale(0.85); -    transition: all 0.3s ease-in-out 0s; -  } - -  &:hover, -  &:focus { -    svg { -      transform: scale(0.85) rotate(20deg) translateY(#{fun.convert-px(3)}); -    } -  } - -  &:focus { -    outline: var(--color-primary-light) solid fun.convert-px(3); -  } - -  &:active { -    outline: none; - -    svg { -      transform: scale(0.7); -    } -  } -} - -.spacing { -  margin-top: var(--spacing-md); -  margin-bottom: var(--spacing-md); -} diff --git a/src/components/Buttons/index.tsx b/src/components/Buttons/index.tsx deleted file mode 100644 index 9b4b756..0000000 --- a/src/components/Buttons/index.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import Button from './Button/Button'; -import ButtonLink from './ButtonLink/ButtonLink'; -import ButtonToolbar from './ButtonToolbar/ButtonToolbar'; -import ButtonSubmit from './ButtonSubmit/ButtonSubmit'; -import ButtonHelp from './ButtonHelp/ButtonHelp'; - -export { Button, ButtonHelp, ButtonLink, ButtonToolbar, ButtonSubmit }; | 
