module uim.bootstrap.bs5.basic.components.forms.group;

import uim.bootstrap;

class DBS5FormGroup : DBS5Obj {
	mixin(H5This!("div", ["form-group"]));

	mixin(MyAttribute!("readOnly", "readonly"));
	mixin(MyAttribute!("value", "value"));
	mixin(MyAttribute!("placeHolder", "placeholder"));

	mixin(MyContent!("label", "H5Label"));
	O label(this O)(string forId, string title, string[] someClasses = null, string[string] someAttributes = null) {
		someAttributes["for"] = forId;
		this.content(H5Label(someClasses, someAttributes, title));
		return cast(O)this;
	}
	mixin(MyContent!("div", "H5Div"));
	
	mixin(MyContent!("col", "BS5Col"));
	mixin(MyContent!("input", "BS5Input"));
	mixin(MyContent!("button", "BS5InputButton"));
	mixin(MyContent!("checkbox", "BS5Checkbox"));
	mixin(MyContent!("color", "BS5InputColor"));
	mixin(MyContent!("inputDate", "BS5InputDate"));
	mixin(MyContent!("inputDateTime", "BS5InputDateTime"));
	mixin(MyContent!("email", "BS5InputEmail"));
	mixin(MyContent!("file", "BS5InputFile"));
	mixin(MyContent!("group", "BS5InputGroup"));
	mixin(MyContent!("inputHidden", "BS5InputHidden"));
	mixin(MyContent!("image", "BS5InputImage"));
	mixin(MyContent!("month", "BS5InputMonth"));
	mixin(MyContent!("number", "BS5InputNumber"));
	mixin(MyContent!("password", "BS5Password"));
	mixin(MyContent!("radio", "BS5Radio"));
	mixin(MyContent!("inputRange", "BS5InputRange"));
	mixin(MyContent!("inputReset", "BS5InputReset"));
	mixin(MyContent!("search", "BS5InputSearch"));
	mixin(MyContent!("select", "BS5InputSelect"));
	mixin(MyContent!("submit", "BS5InputSubmit"));
	mixin(MyContent!("telephone", "BS5InputTelephone"));
	mixin(MyContent!("text", "BS5InputText"));
	mixin(MyContent!("textarea", "BS5InputTextarea"));
	mixin(MyContent!("inputTime", "BS5InputTime"));
	mixin(MyContent!("url", "BS5InputUrl"));
	mixin(MyContent!("week", "BS5InputWeek"));
}
mixin(H5Calls!"BS5FormGroup");
///
unittest {
	assert(Assert(BS5FormGroup, `<div class="form-group"></div>`));
}