## 🎉 TinyHtml updates

A highly refined update for `TinyHtml`, focused on stronger consistency, smarter attribute/property control, and a safer, clearer API. 🚀

### ✨ Highlights

- 🧠 **New attribute/property mapping system**  
  → `TinyHtml.propFix`, `TinyHtml.attrFix`, `getPropName()`, `getAttrName()`  
  → Ensures cleaner interaction with DOM properties like `className`, `htmlFor`, etc.

- 🧱 **Element list architecture**  
  → Internally stores all nodes as arrays  
  → Better control and scalability when managing multiple elements

- 🆕 **New instance methods**  
  → `extract(index)`, `exists(index)`, `get(index)`, `getAll()`  
  → More predictable access to elements — no more ambiguity!

- ⚠️ **Breaking change: `get()` now requires an `index`**  
  → Due to the new array-based internal model, calling `get()` without arguments will throw  
  → Use `get(0)` to access the first element explicitly

- 🧪 **Selector methods now return a single wrapped instance**  
  → `queryAll`, `querySelectorAll`, `getByClassName`, `getElementsByClassName`, `getByName`, `getByTagNameNS`, and `getElementsByTagNameNS` now return one `TinyHtml` with all matched elements  
  → To behave like before, use `.extract(index)` to unwrap one of them manually

- ✍️ **New `createFrom(json)` method**  
  → Create fully structured elements using JSON config syntax  
  → Ideal for dynamic UI rendering or declarative component creation

- 📝 **Improved input handling**  
  → `_getValByType()` now correctly supports `textarea` values

- ⚙️ **Better error handling and type safety**  
  → Clearer validation, safer APIs, and stronger dev confidence

- ✅ **Test suite upgraded**  
  → Adjusted to respect new API behavior, array-based elements, and refined logic

**Full Changelog**: https://github.com/JasminDreasond/Tiny-Essentials/compare/1.20.0...1.20.1