String_Prop_Type::make() ->default( 'label' ), 'classes' => Classes_Prop_Type::make() ->default( [] ), 'text' => Html_V3_Prop_Type::make() ->default( [ 'content' => String_Prop_Type::generate( 'Form label' ), 'children' => [], ] ), 'input-id' => String_Prop_Type::make() ->default( '' ), 'attributes' => Attributes_Prop_Type::make()->meta( Overridable_Prop_Type::ignore() ), ]; } protected function define_atomic_controls(): array { return [ Section::make() ->set_label( __( 'Content', 'elementor-pro' ) ) ->set_items( [ Inline_Editing_Control::bind_to( 'text' ) ->set_label( __( 'Label text', 'elementor-pro' ) ), Text_Control::bind_to( 'input-id' ) ->set_label( __( 'Connected to input ID', 'elementor-pro' ) ) ->set_meta( [ 'layout' => 'two-columns', ] ), ] ), Section::make() ->set_label( __( 'Settings', 'elementor-pro' ) ) ->set_id( 'settings' ) ->set_items( $this->get_settings_controls() ), ]; } protected function get_settings_controls(): array { return [ Text_Control::bind_to( '_cssid' ) ->set_label( __( 'ID', 'elementor-pro' ) ) ->set_meta( $this->get_css_id_control_meta() ), ]; } protected function get_templates(): array { return [ 'label' => __DIR__ . '/label.html.twig', ]; } protected function get_css_id_control_meta(): array { return [ 'layout' => 'two-columns', 'topDivider' => false, ]; } protected function define_base_styles(): array { $text_color_value = Color_Prop_Type::generate( '#0c0d0e' ); $font_size_value = Size_Prop_Type::generate( [ 'size' => 14, 'unit' => 'px', ] ); return [ 'base' => Style_Definition::make() ->add_variant( Style_Variant::make() ->add_props( [ 'color' => $text_color_value, 'font-size' => $font_size_value, ] ), ), ]; } }