<commit_before># dui/Stateful

The purpose is to dui/Stateful is three-fold:

(1) declare a class where properties are set and gotten using standard notation:

	myWidget.label = "hello";
	console.log(myWidget.label);

(2) be able to watch for changes to [a subset of] instance properties:

   	myWidget.watch("label", callback);

(3) allow the class to define custom getters/setters for some (but not necessarily all) of the properties

	MyClass = dcl(Stateful, {
		label: "Press",
		_setLabelAttr: function(val){
				this._set("label", ...);<commit_msg>Update Stateful.md<commit_after># dui/Stateful

The purpose is to dui/Stateful is three-fold:

(1) declare a class where properties are set and retrieved using standard notation:

	myWidget.label = "hello";
	console.log(myWidget.label);

(2) be able to watch for changes to [a subset of] instance properties:

   	myWidget.watch("label", callback);

(3) allow the class to define custom getters/setters for some (but not necessarily all) of the properties

	MyClass = dcl(Stateful, {
		label: "Press",
		_setLabelAttr: function(val){
				this._set("label", ...);
{'fraction_non_alphanumeric': 0.10842293906810035, 'fraction_numerical': 0.005376344086021506, 'mean_word_length': 4.4487804878048784, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, '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': '716089', 'n_tokens_mistral': 358, 'n_tokens_neox': 340, 'n_words': 129}