local SingleChildElement = require "lib.simple_ui.core.single_child_element" --- @generic T : table --- @class StatefulElement : SingleChildElement --- @field initState? fun(self: StatefulElement): T Создает исходное состояние элемента, когда он попадает в дерево в первый раз. --- @field getState? fun(self: StatefulElement): T Возвращает состояние элемента. Можно переопределить, чтобы хранить его где хочется. local element = setmetatable({}, SingleChildElement) element.__index = element element.type = "StatefulElement" element.state = {} --- @return StatefulElement --- @param values {key: any, child: UIElement?} function element:new(values) return SingleChildElement.new(self, values) end return element