From c6cf2b710129152b0d7ae30ac4408dfed2eba06b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Mendon=C3=A7a?= Date: Wed, 7 May 2025 12:58:24 +0000 Subject: [PATCH 1/2] aria-disabled for Button --- lib/ruby_ui/button/button.rb | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/lib/ruby_ui/button/button.rb b/lib/ruby_ui/button/button.rb index 9636fa22..f4e28e84 100644 --- a/lib/ruby_ui/button/button.rb +++ b/lib/ruby_ui/button/button.rb @@ -36,42 +36,66 @@ def size_classes def primary_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground shadow hover:bg-primary/90", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-primary text-primary-foreground shadow", + "hover:bg-primary/90", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end def link_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 text-primary underline-offset-4 hover:underline", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors text-primary underline-offset-4", + "hover:underline", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end def secondary_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-opacity-80", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-secondary text-secondary-foreground", + "hover:bg-opacity-80", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end def destructive_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-destructive text-destructive-foreground shadow-sm", + "hover:bg-destructive/90", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end def outline_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors border border-input bg-background shadow-sm", + "hover:bg-accent hover:text-accent-foreground", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end def ghost_classes [ - "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground", + "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors", + "hover:bg-accent hover:text-accent-foreground", + "disabled:pointer-events-none disabled:opacity-50", + "aria-disabled:pointer-events-none aria-disabled:opacity-50", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", size_classes ] end From a455756f1e93eb136401edbd07cca07b8506694d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Mendon=C3=A7a?= Date: Wed, 7 May 2025 13:04:48 +0000 Subject: [PATCH 2/2] aria-disabled:cursor-not-allowed --- lib/ruby_ui/button/button.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ruby_ui/button/button.rb b/lib/ruby_ui/button/button.rb index f4e28e84..8fcf5dcf 100644 --- a/lib/ruby_ui/button/button.rb +++ b/lib/ruby_ui/button/button.rb @@ -39,8 +39,8 @@ def primary_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-primary text-primary-foreground shadow", "hover:bg-primary/90", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end @@ -50,8 +50,8 @@ def link_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors text-primary underline-offset-4", "hover:underline", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end @@ -61,8 +61,8 @@ def secondary_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-secondary text-secondary-foreground", "hover:bg-opacity-80", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end @@ -72,8 +72,8 @@ def destructive_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors bg-destructive text-destructive-foreground shadow-sm", "hover:bg-destructive/90", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end @@ -83,8 +83,8 @@ def outline_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors border border-input bg-background shadow-sm", "hover:bg-accent hover:text-accent-foreground", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end @@ -94,8 +94,8 @@ def ghost_classes "whitespace-nowrap inline-flex items-center justify-center rounded-md font-medium transition-colors", "hover:bg-accent hover:text-accent-foreground", "disabled:pointer-events-none disabled:opacity-50", - "aria-disabled:pointer-events-none aria-disabled:opacity-50", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + "aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed", size_classes ] end