- Spotify playlist, library, album and artist browsing with in-app playback - Song, playlist and album downloads via spotdl with YouTube and Bandcamp fallbacks - Electron desktop app (castLabs Widevine) with a permanent sidebar layout - Linux and Windows packaging scripts
23 lines
672 B
TypeScript
23 lines
672 B
TypeScript
import { InputHTMLAttributes, forwardRef } from 'react';
|
|
import styles from './Checkbox.module.css';
|
|
import { Check } from 'lucide-react';
|
|
export type CheckboxProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>;
|
|
|
|
export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
|
|
({ className, ...props }, ref) => {
|
|
return (
|
|
<div className={styles.checkboxWrapper}>
|
|
<input
|
|
{...props}
|
|
type="checkbox"
|
|
ref={ref}
|
|
className={`${styles.checkbox} ${className || ''}`}
|
|
/>
|
|
<Check className={styles.checkmark} aria-hidden="true" />
|
|
</div>
|
|
);
|
|
}
|
|
);
|
|
|
|
Checkbox.displayName = 'Checkbox';
|