<commit_before>var React = require('react/addons'),
	classnames = require('classnames');

module.exports = React.createClass({
	displayName: 'Input',
	propTypes: {
		className: React.PropTypes.string,
		onChange: React.PropTypes.func,
		type: React.PropTypes.string,
		ref: React.PropTypes.string,
		pattern: React.PropTypes.string,
		value: React.PropTypes.any,
		defaultValue: React.PropTypes.any,
		readonly: React.PropTypes.bool,
		disabled: React.PropTypes.bool,
		first: React.PropTypes.bool
	},
	getDefaultProps: function() {
		return {
			type: 'text',
			readonly: false
		};
	},
	render: function() {
		var className = classnames(this.props.className, {
			'list-item': true,
			'is-first': this.props.first,
			'u-selectable': this.props.disabled || this.props.readonly
		});

		return (
			<div className={className}>
				<div className="item-inner">
					<label className="item-content">
						<input disabled={this.props.disabled || this.props.readonly} ref={this.props.ref} type={this.props.type} pattern={this.props.pattern} value={this.props.value} defaultValue={this.props.defaultValue} onChange={this.props.onChange} className="field" placeholder={this.props.placeholder} />
					</label>
					{this.props.children}
				</div>
			</div>
		);
	}
});
<commit_msg>Input: use spread to allow all available properties<commit_after>var _ = require('underscore')
var classnames = require('classnames')

var React = require('react/addons')

module.exports = React.createClass({
	displayName: 'Input',

	getDefaultProps: function() {
		return {
			type: 'text',
			readonly: false
		};
	},

	render: function() {
		var disabled = this.props.disabled || this.props.readonly
		var className = classnames(this.props.className, 'list-item', {
			'is-first': this.props.first,
			'u-selectable': disabled
		})

		var curated = _.extend({}, this.props)
		delete curated.className
		delete curated.disabled
		delete curated.first
		delete curated.readonly
		delete curated.children

		return (
			<div className={className}>
				<div className="item-inner">
					<label className="item-content">
						<input disabled={disabled} {...curated} className="field" />
					</label>
					{this.props.children}
				</div>
			</div>
		);
	}
});

{'fraction_non_alphanumeric': 0.15401785714285715, 'fraction_numerical': 0.0, 'mean_word_length': 3.98, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6109556', 'n_tokens_mistral': 820, 'n_tokens_neox': 708, 'n_words': 140}