Module: UI::SidebarProviderBehavior
- Included in:
- SidebarProvider
- Defined in:
- app/behaviors/ui/sidebar_provider_behavior.rb
Overview
UI::SidebarProviderBehavior
Instance Method Summary collapse
- #sidebar_provider_classes ⇒ Object
- #sidebar_provider_data_attributes ⇒ Object
- #sidebar_provider_html_attributes ⇒ Object
- #sidebar_provider_style ⇒ Object
Instance Method Details
#sidebar_provider_classes ⇒ Object
24 25 26 27 28 29 30 |
# File 'app/behaviors/ui/sidebar_provider_behavior.rb', line 24 def classes_value = respond_to?(:classes, true) ? classes : @classes TailwindMerge::Merger.new.merge([ , classes_value ].compact.join(" ")) end |
#sidebar_provider_data_attributes ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/behaviors/ui/sidebar_provider_behavior.rb', line 32 def # Only set collapsible attribute when collapsed (matches shadcn behavior) # This allows CSS selectors like group-has-[[data-collapsible=icon]] to work correctly attrs = { slot: "sidebar-provider", controller: "ui--sidebar", state: @open ? "expanded" : "collapsed", side: @side, ui__sidebar_open_value: @open.to_s, ui__sidebar_collapsible_value: @collapsible, ui__sidebar_side_value: @side, ui__sidebar_cookie_name_value: @cookie_name } attrs[:collapsible] = @collapsible unless @open attrs end |
#sidebar_provider_html_attributes ⇒ Object
16 17 18 19 20 21 22 |
# File 'app/behaviors/ui/sidebar_provider_behavior.rb', line 16 def { class: , style: , data: } end |
#sidebar_provider_style ⇒ Object
49 50 51 52 53 54 55 |
# File 'app/behaviors/ui/sidebar_provider_behavior.rb', line 49 def [ "--sidebar-width: #{@sidebar_width}", "--sidebar-width-mobile: #{@sidebar_width_mobile}", "--sidebar-width-icon: #{@sidebar_width_icon}" ].join("; ") end |