From d3b6545e7c6069c9db031634b7890e6b8eb4de2a Mon Sep 17 00:00:00 2001 From: Filip <34747899+neriousy@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:05:15 +0200 Subject: feat(app): added command palette (#2630) Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> --- packages/app/src/ui/button.tsx | 67 +++++++++++++++++------------------------ packages/app/src/ui/link.tsx | 8 ++--- packages/app/src/ui/tooltip.tsx | 2 +- 3 files changed, 31 insertions(+), 46 deletions(-) (limited to 'packages/app/src/ui') diff --git a/packages/app/src/ui/button.tsx b/packages/app/src/ui/button.tsx index e496d41bb..21d89fbee 100644 --- a/packages/app/src/ui/button.tsx +++ b/packages/app/src/ui/button.tsx @@ -1,49 +1,36 @@ -import { Button as KobalteButton } from "@kobalte/core/button" -import { splitProps } from "solid-js" -import type { ComponentProps } from "solid-js" +import { Button as Kobalte } from "@kobalte/core/button" +import { type ComponentProps, splitProps } from "solid-js" -export interface ButtonProps extends ComponentProps { - variant?: "primary" | "secondary" | "outline" | "ghost" +export interface ButtonProps { + variant?: "primary" | "secondary" | "ghost" size?: "sm" | "md" | "lg" } -export const buttonStyles = { - base: "inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer", - variants: { - primary: "bg-primary text-background hover:bg-secondary focus-visible:ring-primary data-[disabled]:opacity-50", - secondary: - "bg-background-panel text-text hover:bg-background-element focus-visible:ring-secondary data-[disabled]:opacity-50", - outline: - "border border-border bg-transparent text-text hover:bg-background-panel focus-visible:ring-border-active data-[disabled]:border-border-subtle data-[disabled]:text-text-muted", - ghost: "text-text hover:bg-background-panel focus-visible:ring-border-active data-[disabled]:text-text-muted", - }, - sizes: { - sm: "h-8 px-3 text-sm", - md: "h-10 px-4 text-sm", - lg: "h-12 px-6 text-base", - }, -} - -export function getButtonClasses( - variant: keyof typeof buttonStyles.variants = "primary", - size: keyof typeof buttonStyles.sizes = "md", - className?: string, -) { - return `${buttonStyles.base} ${buttonStyles.variants[variant]} ${buttonStyles.sizes[size]}${className ? ` ${className}` : ""}` -} - -export function Button(props: ButtonProps) { - const [local, others] = splitProps(props, ["variant", "size", "class", "classList"]) +export function Button(props: ComponentProps<"button"> & ButtonProps) { + const [split, rest] = splitProps(props, ["variant", "size", "class", "classList"]) return ( - + > + {props.children} + ) } diff --git a/packages/app/src/ui/link.tsx b/packages/app/src/ui/link.tsx index a75a059ec..461206d58 100644 --- a/packages/app/src/ui/link.tsx +++ b/packages/app/src/ui/link.tsx @@ -1,15 +1,13 @@ import { A } from "@solidjs/router" import { splitProps } from "solid-js" import type { ComponentProps } from "solid-js" -import { getButtonClasses } from "./button" export interface LinkProps extends ComponentProps { - variant?: "primary" | "secondary" | "outline" | "ghost" + variant?: "primary" | "secondary" | "ghost" size?: "sm" | "md" | "lg" } export function Link(props: LinkProps) { - const [local, others] = splitProps(props, ["variant", "size", "class"]) - const classes = local.variant ? getButtonClasses(local.variant, local.size, local.class) : local.class - return + const [, others] = splitProps(props, ["variant", "size", "class"]) + return } diff --git a/packages/app/src/ui/tooltip.tsx b/packages/app/src/ui/tooltip.tsx index f5884ca80..db826b77a 100644 --- a/packages/app/src/ui/tooltip.tsx +++ b/packages/app/src/ui/tooltip.tsx @@ -34,7 +34,7 @@ export function Tooltip(props: TooltipProps) {