diff --git a/.windsurfrules b/.windsurfrules index 01d784b5a..4b3e48192 100644 --- a/.windsurfrules +++ b/.windsurfrules @@ -37,3 +37,5 @@ t("menu", { defaultValue: "Menu" }); 25. i18nKeys should describe the message in camelCase. Ex. "lastUpdated": "Last Updated" 26. Keep i18nKeys up to 25 characters 27. If the i18nKey is not intended to be reused, prefix it with the component name in camelCase +28. Always use kebab-case for file names +29. Prefer double quotes for strings over single quotes diff --git a/apps/web/src/app/components/page-icons.tsx b/apps/web/src/app/components/page-icons.tsx index e91bed255..4364fc4ea 100644 --- a/apps/web/src/app/components/page-icons.tsx +++ b/apps/web/src/app/components/page-icons.tsx @@ -29,10 +29,10 @@ const pageIconVariants = cva("inline-flex items-center justify-center", { purple: "bg-purple-500 text-white", }, size: { - sm: "size-6 [&_svg]:size-3 rounded-md", - md: "size-7 [&_svg]:size-4 rounded-lg", - lg: "size-9 [&_svg]:size-5 rounded-xl", - xl: "size-10 [&_svg]:size-5 rounded-xl", + sm: "p-1 size-6 [&_svg]:size-3 rounded-md", + md: "p-2 size-8 [&_svg]:size-5 rounded-lg", + lg: "p-3 size-9 [&_svg]:size-5 rounded-xl", + xl: "p-4 size-10 [&_svg]:size-5 rounded-xl", }, }, defaultVariants: { @@ -95,9 +95,9 @@ export function TeamsPageIcon() { ); } -export function HomePageIcon() { +export function HomePageIcon(props: PageIconVariantProps) { return ( - + ); @@ -118,33 +118,33 @@ export function PollPageIcon(props: PageIconVariantProps) { ); } -export function EventPageIcon() { +export function EventPageIcon(props: PageIconVariantProps) { return ( - + ); } -export function ProfilePageIcon() { +export function ProfilePageIcon(props: PageIconVariantProps) { return ( - + ); } -export function PreferencesPageIcon() { +export function PreferencesPageIcon(props: PageIconVariantProps) { return ( - + ); } -export function BillingPageIcon() { +export function BillingPageIcon(props: PageIconVariantProps) { return ( - + ); diff --git a/apps/web/src/app/components/page-layout.tsx b/apps/web/src/app/components/page-layout.tsx index baba8aed0..e3215331e 100644 --- a/apps/web/src/app/components/page-layout.tsx +++ b/apps/web/src/app/components/page-layout.tsx @@ -22,7 +22,7 @@ export function PageTitle({ return (

diff --git a/apps/web/src/components/participant-avatar-bar.tsx b/apps/web/src/components/participant-avatar-bar.tsx index 5a14f045b..14c2a062c 100644 --- a/apps/web/src/components/participant-avatar-bar.tsx +++ b/apps/web/src/components/participant-avatar-bar.tsx @@ -37,7 +37,7 @@ export const ParticipantAvatarBar = ({ return (
    {visibleParticipants.map((participant, index) => ( - +
  • }> handleSelect("/new")}> - + @@ -72,15 +72,15 @@ export function CommandMenu() { handleSelect("/")}> - + handleSelect("/polls")}> - + handleSelect("/events")}> - + {/* handleSelect("/teams")}> @@ -96,15 +96,15 @@ export function CommandMenu() { heading={} > handleSelect("/settings/profile")}> - + handleSelect("/settings/preferences")}> - + handleSelect("/settings/billing")}> - + diff --git a/packages/ui/src/badge.tsx b/packages/ui/src/badge.tsx index f327e57bc..ba8195bb1 100644 --- a/packages/ui/src/badge.tsx +++ b/packages/ui/src/badge.tsx @@ -4,12 +4,12 @@ import * as React from "react"; import { cn } from "./lib/utils"; const badgeVariants = cva( - "inline-flex group whitespace-nowrap items-center rounded-full justify-center font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + "inline-flex group whitespace-nowrap items-center rounded-full justify-center transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", { variants: { variant: { primary: "bg-primary text-primary-50", - default: "bg-gray-50 border text-muted-foreground", + default: "bg-gray-50 border", destructive: "bg-destructive text-destructive-foreground", outline: "text-foreground", green: "bg-green-600 text-white", diff --git a/packages/ui/src/button.tsx b/packages/ui/src/button.tsx index daf2c820e..9a2f92db3 100644 --- a/packages/ui/src/button.tsx +++ b/packages/ui/src/button.tsx @@ -10,18 +10,18 @@ import { cn } from "./lib/utils"; const buttonVariants = cva( cn( "inline-flex border text-shadow font-medium disabled:pointer-events-none select-none disabled:opacity-50 items-center justify-center whitespace-nowrap border", - "focus:shadow-none focus-visible:ring-2 focus-visible:ring-ring", + "focus-visible:shadow-none", ), { variants: { variant: { primary: - "focus:ring-offset-1 border-primary bg-primary hover:bg-primary-500 disabled:bg-gray-400 disabled:border-transparent text-white shadow-sm", + "focus-visible:ring-offset-1 border-primary bg-primary hover:bg-primary-500 disabled:bg-gray-400 disabled:border-transparent text-white", destructive: - "focus:ring-offset-1 bg-destructive shadow-sm text-destructive-foreground active:bg-destructive border-destructive hover:bg-destructive/90", - default: "focus:ring-offset-1 hover:bg-gray-50 bg-white", + "focus-visible:ring-offset-1 bg-destructive shadow-sm text-destructive-foreground active:bg-destructive border-destructive hover:bg-destructive/90", + default: "focus-visible:ring-offset-1 hover:bg-gray-50 bg-white", secondary: - "focus:ring-offset-1 border-secondary bg-secondary hover:bg-secondary/80 text-secondary-foreground", + "focus-visible:ring-offset-1 border-secondary bg-secondary hover:bg-secondary/80 text-secondary-foreground", ghost: "border-transparent bg-transparent data-[state=open]:bg-gray-500/20 text-gray-800 hover:bg-gray-500/10 active:bg-gray-500/20", actionBar: