From 6ec259a0e71174651bae95d4628138bf6fd68742 Mon Sep 17 00:00:00 2001 From: kj_sh604 Date: Sun, 15 Mar 2026 16:19:35 -0400 Subject: refactor: packages/ --- packages/excalidraw/components/Button.tsx | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/excalidraw/components/Button.tsx (limited to 'packages/excalidraw/components/Button.tsx') diff --git a/packages/excalidraw/components/Button.tsx b/packages/excalidraw/components/Button.tsx new file mode 100644 index 0000000..779cee5 --- /dev/null +++ b/packages/excalidraw/components/Button.tsx @@ -0,0 +1,44 @@ +import clsx from "clsx"; +import React from "react"; +import { composeEventHandlers } from "../utils"; +import "./Button.scss"; + +interface ButtonProps + extends React.DetailedHTMLProps< + React.ButtonHTMLAttributes, + HTMLButtonElement + > { + type?: "button" | "submit" | "reset"; + onSelect: () => any; + /** whether button is in active state */ + selected?: boolean; + children: React.ReactNode; + className?: string; +} + +/** + * A generic button component that follows Excalidraw's design system. + * Style can be customised using `className` or `style` prop. + * Accepts all props that a regular `button` element accepts. + */ +export const Button = ({ + type = "button", + onSelect, + selected, + children, + className = "", + ...rest +}: ButtonProps) => { + return ( + + ); +}; -- cgit v1.2.3