module uim.bootstrap.bs4.components.forms.group;

import uim.bootstrap;

class DBS4FormGroup : DBS4Obj {
	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", "BS4Col"));
	mixin(MyContent!("input", "BS4Input"));
	mixin(MyContent!("button", "BS4InputButton"));
	mixin(MyContent!("checkbox", "BS4Checkbox"));
	mixin(MyContent!("color", "BS4InputColor"));
	mixin(MyContent!("inputDate", "BS4InputDate"));
	mixin(MyContent!("inputDateTime", "BS4InputDateTime"));
	mixin(MyContent!("email", "BS4InputEmail"));
	mixin(MyContent!("file", "BS4InputFile"));
	mixin(MyContent!("group", "BS4InputGroup"));
	mixin(MyContent!("inputHidden", "BS4InputHidden"));
	mixin(MyContent!("image", "BS4InputImage"));
	mixin(MyContent!("month", "BS4InputMonth"));
	mixin(MyContent!("number", "BS4InputNumber"));
	mixin(MyContent!("password", "BS4Password"));
	mixin(MyContent!("radio", "BS4Radio"));
	mixin(MyContent!("inputRange", "BS4InputRange"));
	mixin(MyContent!("inputReset", "BS4InputReset"));
	mixin(MyContent!("search", "BS4InputSearch"));
	mixin(MyContent!("select", "BS4InputSelect"));
	mixin(MyContent!("submit", "BS4InputSubmit"));
	mixin(MyContent!("telephone", "BS4InputTelephone"));
	mixin(MyContent!("text", "BS4InputText"));
	mixin(MyContent!("textarea", "BS4InputTextarea"));
	mixin(MyContent!("inputTime", "BS4InputTime"));
	mixin(MyContent!("url", "BS4InputUrl"));
	mixin(MyContent!("week", "BS4InputWeek"));
}
mixin(H5Calls!"BS4FormGroup");
///
unittest {
	assert(Assert(BS4FormGroup, `<div class="form-group"></div>`));
}