Как я понял из доки для того что бы манипулировать элементами блока, отдельный модуль написать нельзя. можно только в блоке создать модуль блока и в нем манипулировать элементами. Возможно есть какие либо новые механизмы для написания модулей для элементов блока? Просто в моей парадигме есть блок form, он имеет различные элементы control(input, checkbox, textarea, submit и т.д.) И было бы не дурно писать нужный js (для элемента) внутри папки элемента, а внутри блока form общий js (валидация и т.д.) Иначе приходиться бить все на блоки которые на мой взгляд являются элементами и логичность структуры меняется в сторону хаоса.
Какую конкретно функциональность предполагается реализовывать в input, checkbox, textarea, submit и т.д.? Она относится только к блоку form или может использоваться вне его?
Относится к блоку form, потому как вне form эти контролы не существуют в текущем проекте Функциональность разная, маска для телефона, инициализация chekbox со своим дизайном, и с интерфейсом взаимодействия с пользователем (вызов различных попапов от которых зависит результат чекбокса) js на каждый элемент писать нужно прилично и пихать это все в один файл не хотелось бы.
Маска может быть реализована в модификаторе для блока input в целом, как и тема для checkbox в принципе.
вызов различных попапов от которых зависит результат чекбокса
скорее всего тянет на отдельный блок. Я не настаиваю, но варианты возможны.Ну а вообще в bem-core@v2 есть elem-instances но его не рекомендуют использовать. В планах на bem-core@v3 было озвучено намерение сделать элементы полноценными i-bem объектами.