Sha256: dbba28339bfa5c19bf8565d21e58d5c536bb97ae1dc28c9a4bce9a19be91c2e6
Contents?: true
Size: 1.18 KB
Versions: 5
Compression:
Stored size: 1.18 KB
Contents
module Components::ButtonHelper def render_button(label = "", text: nil, variant: :default, as: :button, href: nil, data: {}, **options, &block) button_classes = " inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10 px-4 py-2 " varianet_classes = case variant.to_sym when :default " bg-primary text-primary-foreground hover:bg-primary/90 " when :secondary " bg-secondary text-secondary-foreground hover:bg-secondary/80 " when :error, :danger, :alert, :destructive " bg-destructive text-destructive-foreground hover:bg-destructive/90 " when :outline " border border-input bg-background hover:bg-accent hover:text-accent-foreground" when :ghost " hover:bg-accent hover:text-accent-foreground " end button_classes << " #{varianet_classes} #{options[:class]}" text = label if label.present? text = capture(&block) if block render "components/ui/button", text:, button_classes:, as:, href:, data:, **options end end
Version data entries
5 entries across 5 versions & 1 rubygems