classList:add, classList:remove, classList:toggle, style handling

This commit is contained in:
Face
2025-08-05 18:01:16 +03:00
parent 7f90dfb716
commit ba2f49559e
12 changed files with 589 additions and 150 deletions

View File

@@ -213,6 +213,25 @@ func _element_index_handler(vm: LuauVM) -> int:
vm.lua_rawseti(-2, index)
index += 1
return 1
"classList":
# Create classList object with add, remove, toggle methods
vm.lua_newtable()
# Add methods to classList using the utility class
vm.lua_pushcallable(_element_classlist_add_wrapper, "classList.add")
vm.lua_setfield(-2, "add")
vm.lua_pushcallable(_element_classlist_remove_wrapper, "classList.remove")
vm.lua_setfield(-2, "remove")
vm.lua_pushcallable(_element_classlist_toggle_wrapper, "classList.toggle")
vm.lua_setfield(-2, "toggle")
# Store element reference for the classList methods
vm.lua_getfield(1, "_element_id")
vm.lua_setfield(-2, "_element_id")
return 1
_:
# Fall back to checking the original table for methods
@@ -333,6 +352,15 @@ func _element_remove_handler(vm: LuauVM) -> int:
return 0
func _element_classlist_add_wrapper(vm: LuauVM) -> int:
return LuaClassListUtils.element_classlist_add_handler(vm, dom_parser)
func _element_classlist_remove_wrapper(vm: LuauVM) -> int:
return LuaClassListUtils.element_classlist_remove_handler(vm, dom_parser)
func _element_classlist_toggle_wrapper(vm: LuauVM) -> int:
return LuaClassListUtils.element_classlist_toggle_handler(vm, dom_parser)
func _render_new_element(element: HTMLParser.HTMLElement, parent_node: Node) -> void:
# Get reference to main scene for rendering
var main_scene = get_node("/root/Main")