import { css, cx } from "@emotion/css"; import React, { PropsWithChildren, Ref } from "react"; import ReactDOM from "react-dom"; interface BaseProps { className: string; [key: string]: unknown; } export const Button = React.forwardRef( ( { className, active, reversed, ...props }: PropsWithChildren< { active: boolean; reversed: boolean; } & BaseProps >, ref: Ref, ) => ( } className={cx( className, css` cursor: pointer; color: ${reversed ? (active ? "white" : "#aaa") : active ? "black" : "#ccc"}; `, )} /> ), ); export const Icon = React.forwardRef( ({ className, ...props }: PropsWithChildren, ref: Ref) => ( } className={cx( "material-icons", className, css` font-size: 18px; vertical-align: text-bottom; `, )} /> ), ); export const Menu = React.forwardRef( ({ className, ...props }: PropsWithChildren, ref: Ref) => { return (
} className={cx( className, css` & > * { display: inline-block; } & > * + * { margin-left: 15px; } `, )} /> ); }, ); export const Portal = ({ children }: { children: React.ReactNode }) => { return typeof document === "object" ? ReactDOM.createPortal(children, document.body) : null; }; export const Toolbar = React.forwardRef( ({ className, ...props }: PropsWithChildren, ref?: Ref) => ( ), );