File tree 2 files changed +23
-4
lines changed
2 files changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -15,9 +15,13 @@ def view_template(&)
15
15
16
16
def default_attrs
17
17
{
18
+ class : [
19
+ 'group/dropdown-menu' ,
20
+ @strategy == 'absolute' ? 'is-absolute' : 'is-fixed'
21
+ ] ,
18
22
data : {
19
- controller : " ruby-ui--dropdown-menu" ,
20
- action : " click@window->ruby-ui--dropdown-menu#onClickOutside" ,
23
+ controller : ' ruby-ui--dropdown-menu' ,
24
+ action : ' click@window->ruby-ui--dropdown-menu#onClickOutside' ,
21
25
ruby_ui__dropdown_menu_options_value : @options . to_json
22
26
}
23
27
}
Original file line number Diff line number Diff line change 3
3
module RubyUI
4
4
class DropdownMenuContent < Base
5
5
def view_template ( &block )
6
- div ( data : { ruby_ui__dropdown_menu_target : "content" } , class : "hidden" , style : "width: max-content; position: absolute; top: 0; left: 0;" ) do
6
+ div ( ** wrapper_attrs ) do
7
7
div ( **attrs , &block )
8
8
end
9
9
end
@@ -15,7 +15,22 @@ def default_attrs
15
15
data : {
16
16
state : :open
17
17
} ,
18
- class : "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-background p-1 text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 w-56"
18
+ class : 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-background p-1 text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 w-56'
19
+ }
20
+ end
21
+
22
+ def wrapper_attrs
23
+ {
24
+ class : [
25
+ 'z-50 hidden group-[.is-absolute]/dropdown-menu:absolute' ,
26
+ 'group-[.is-fixed]/dropdown-menu:fixed'
27
+ ] ,
28
+ data : { ruby_ui__dropdown_menu_target : 'content' } ,
29
+ style : {
30
+ width : 'max-content' ,
31
+ top : '0' ,
32
+ left : '0'
33
+ }
19
34
}
20
35
end
21
36
end
You can’t perform that action at this time.
0 commit comments