## ✨ New Additions 

This version brings two new utilities and a set of important improvements to existing features:

### ✨ New: TinySmartScroller

A customizable smart scroll utility with helpers to manage scroll position, height detection, container boundaries, and more, already usable for scroll-related enhancements and element visibility tracking.

### 🎲 New: UltraRandomMsgGen

A flexible message generator for producing randomized messages with weighted logic. Useful for notification test systems, or random text.

### 🛠️ TinyHtml updates

* `TinyHtml.query()` and `TinyHtml.getById()` now **return `null`** instead of **throw error** when the element is not found, making handling more consistent.
* Methods that previously returned `undefined` now support **chainable calls**, improving fluency in chaining TinyHtml operations.
* New helpers: `isInContainer`, `isFullyInContainer`, `boolCheck`, `isPageTop`, `isPageBottom`, and DOM creation helpers like `createTextNode()` and `createElementFrom()`.
* New `fetchBlob()` now available alongside `fetchJson()`, using the same logic structure but returns a Blob instead of JSON. Great for downloading files or media.

---

## 📚 Documentation & Maintenance

* Various legacy utilities now include **deprecated tags in their jsDoc**, for safety and clarity.
  🔒 **Note**: These are *not* scheduled for removal — they’re just flagged to avoid misuse or overreliance on unstable patterns.
* Improved jsDoc coverage across new and existing classes.

**Full Changelog**: https://github.com/JasminDreasond/Tiny-Essentials/compare/1.16.2...1.17.0