Module: UI::DialogBehavior
- Included in:
- Dialog, DialogComponent
- Defined in:
- app/behaviors/ui/dialog_behavior.rb
Overview
UI::DialogBehavior
Instance Method Summary collapse
-
#dialog_base_classes ⇒ Object
Base CSS classes.
-
#dialog_classes ⇒ Object
Generate final classes using TailwindMerge.
-
#dialog_data_attributes ⇒ Object
Generate data attributes for Stimulus controller.
-
#dialog_html_attributes ⇒ Object
Build complete HTML attributes hash.
-
#merged_dialog_data_attributes ⇒ Object
Merge user-provided data attributes.
Instance Method Details
#dialog_base_classes ⇒ Object
Base CSS classes
63 64 65 |
# File 'app/behaviors/ui/dialog_behavior.rb', line 63 def dialog_base_classes "" end |
#dialog_classes ⇒ Object
Generate final classes using TailwindMerge
68 69 70 |
# File 'app/behaviors/ui/dialog_behavior.rb', line 68 def dialog_classes TailwindMerge::Merger.new.merge([dialog_base_classes, @classes].compact.join(" ")) end |
#dialog_data_attributes ⇒ Object
Generate data attributes for Stimulus controller
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/behaviors/ui/dialog_behavior.rb', line 34 def dialog_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 |
#dialog_html_attributes ⇒ Object
Build complete HTML attributes hash
54 55 56 57 58 59 60 |
# File 'app/behaviors/ui/dialog_behavior.rb', line 54 def dialog_html_attributes base_attrs = @attributes&.except(:data) || {} base_attrs.merge( class: dialog_classes, data: merged_dialog_data_attributes ) end |
#merged_dialog_data_attributes ⇒ Object
Merge user-provided data attributes
48 49 50 51 |
# File 'app/behaviors/ui/dialog_behavior.rb', line 48 def merged_dialog_data_attributes user_data = @attributes&.fetch(:data, {}) || {} user_data.merge(dialog_data_attributes) end |