From 081c48d2957f9edf4dba1e8030b21b9cd9a849cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Mendon=C3=A7a?= Date: Wed, 7 May 2025 15:25:00 +0000 Subject: [PATCH] aria-disabled for Switch --- lib/ruby_ui/switch/switch.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/ruby_ui/switch/switch.rb b/lib/ruby_ui/switch/switch.rb index 1dcf275a..e1499825 100644 --- a/lib/ruby_ui/switch/switch.rb +++ b/lib/ruby_ui/switch/switch.rb @@ -12,12 +12,22 @@ def initialize(include_hidden: true, checked_value: "1", unchecked_value: "0", * def view_template label( role: "switch", - class: "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50 bg-input has-[:checked]:bg-primary" + class: [ + "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors bg-input", + "has-checked:bg-primary", + "has-disabled:cursor-not-allowed has-disabled:opacity-50", + "has-aria-disabled:cursor-not-allowed has-aria-disabled:opacity-50 has-aria-disabled:pointer-events-none", + "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background" + ] ) do input(type: "hidden", name: attrs[:name], value: @unchecked_value) if @include_hidden + input(**attrs.merge(type: "checkbox", class: "hidden peer", value: @checked_value)) - span(class: "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform translate-x-0 peer-checked:translate-x-5 ") + span(class: [ + "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform translate-x-0", + "peer-checked:translate-x-5" + ]) end end end