Module: UI::SheetBehavior
- Included in:
- Sheet, SheetComponent
- Defined in:
- app/behaviors/ui/sheet_behavior.rb
Overview
UI::SheetBehavior
Instance Method Summary collapse
-
#merged_sheet_data_attributes ⇒ Object
Merge user-provided data attributes.
-
#sheet_base_classes ⇒ Object
Base CSS classes.
-
#sheet_classes ⇒ Object
Generate final classes using TailwindMerge.
-
#sheet_data_attributes ⇒ Object
Generate data attributes for Stimulus controller.
-
#sheet_html_attributes ⇒ Object
Build complete HTML attributes hash.
Instance Method Details
#merged_sheet_data_attributes ⇒ Object
Merge user-provided data attributes
44 45 46 47 |
# File 'app/behaviors/ui/sheet_behavior.rb', line 44 def merged_sheet_data_attributes user_data = @attributes&.fetch(:data, {}) || {} user_data.merge(sheet_data_attributes) end |
#sheet_base_classes ⇒ Object
Base CSS classes
59 60 61 |
# File 'app/behaviors/ui/sheet_behavior.rb', line 59 def sheet_base_classes "" end |
#sheet_classes ⇒ Object
Generate final classes using TailwindMerge
64 65 66 |
# File 'app/behaviors/ui/sheet_behavior.rb', line 64 def sheet_classes TailwindMerge::Merger.new.merge([sheet_base_classes, @classes].compact.join(" ")) end |
#sheet_data_attributes ⇒ Object
Generate data attributes for Stimulus controller
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/behaviors/ui/sheet_behavior.rb', line 30 def sheet_data_attributes attrs = { controller: "ui--dialog", ui__dialog_open_value: @open.to_s } # Only add optional values if they are explicitly set (not nil) attrs[:ui__dialog_close_on_escape_value] = @close_on_escape.to_s unless @close_on_escape.nil? attrs[:ui__dialog_close_on_overlay_click_value] = @close_on_overlay_click.to_s unless @close_on_overlay_click.nil? attrs end |
#sheet_html_attributes ⇒ Object
Build complete HTML attributes hash
50 51 52 53 54 55 56 |
# File 'app/behaviors/ui/sheet_behavior.rb', line 50 def sheet_html_attributes base_attrs = @attributes&.except(:data) || {} base_attrs.merge( class: sheet_classes, data: merged_sheet_data_attributes ) end |