* Replace all 4 instances of jBox-style modal dialog boxes with HTML dialog element
Notes:
- The Power & Battery (2), OSD, and CLI tabs have been updated accordingly
- HTML default control behavior was used whereever possible
- HTML indent for the dialog tag is deliberately off to minimize diff noise in GitHub
- Layout is not 100% identical, but spiratually the same - in most cases no changes were needed
- OSD’s Font Manager dialog didn’t transition cleanly, so includes some slight restyling
- OSD Font Manager previously had a green background/color for the graphic - that “just works” now
- Specific cleanup (i.e., calling destroy()) does not seem necessary and was removed
- Removal of jBox from setup.js and global scope seems not to affect jBox tooltips
- Replacement of single quotes with double in main.js was done automatically by Prettier
* Fix unclickable "Select custom image..." button in OSD tab due to overlapping layout; replace with CSS grid.
* Update OSD's Font Manager dialog to not have scroll bars by default (PR feedback).
* Update OSD's Font Manager dialog to remove overflow-y:scroll in order to avoid even a disabled scroll bar on some platforms/browsers (PR feedback).
* feat : Added preset positioning for elements in OSD
* fix : Memory leak fix
* fix : Global click handler is (re)bound once per field – memory-leak & duplicate callback risk
* feat & fix : made this actually work with advanced elements and now it should account the height
* refactor : reverted the change done on searchLimitsElement
* refactor : css cleanup
* fix : modified the z-index value since the tooltip was blocking it
* fix : some more missing fixes
* fix : more coderabbit fixes
* refactor : moved the menu hiding function to the module scope ,also renamed the function
* fix : coderabbit changes suggestion
* feat: recoded everything.
* fix : coderabbit changes
* refactor: modularize grid setup functions for better readability and maintainability
* refactor : coderabbit changes
* fix: clarify comments for inclusive range calculation and offset adjustments in OSD positioning
* fix: improve null checks and simplify error logging in OSD position application
* fix : fixed an issue where this didn't work on an actual device
* fix : fixed an issue where it was firing applyPosition multiple times
- It seems that if applyPosition is fired multiple times,the decode function would randomly fail.
* PICO: Adding USB serial filter for PICO boards
* Updating based on coderabbit suggestion
* Devices may need updating once permissions are granted
* Checks for refresh
* Upgrade Three.js to r176 and migrate assets to GLTF
### What’s new
* **Three.js** bumped from **r97 → r176**
* **All existing 3D assets converted to GLTF**
* Smaller payloads, PBR-ready, future-proof.
* **New assets**
* `resources/models/airplane.gltf` – ready for immediate use in demos.
* `resources/models/car.gltf` – base mesh & materials; reserved for upcoming feature work.
* fix: rewrite src/js/model.js per CodeRabbitAI review
* fix: rewrite src/js/model.js per CodeRabbitAI review
Remove redundant Three.js imports
* Fix: Typo in comments
Corrected "modifie" to "modified" in various code comments.
* fix: Include missing fallback.gltf 3D model
This commit adds the 'resources/models/fallback.gltf' file, which was inadvertently excluded from a previous commit. This GLTF file is a converted version of the legacy 'fallback.json' 3D model.
* refactor: Recompress 3D models to reduce file size
This commit replaces existing 3D model assets with newly compressed versions. The recompression aims to significantly reduce file sizes without compromising visual quality, thereby improving overall application efficiency and resource loading.
* feat: Re-enable legacy 3D renderer for low-performance device compatibility
This commit reactivates the legacy 3D renderer, ensuring continued functionality for low-performance devices. This prevents the renderer from becoming a blocking issue for users with less powerful hardware.
Additionally, this update incorporates the latest 'Projector' import from the Three.js examples library into the CanvasRenderer, improving compatibility and leveraging recent advancements
* Include support ID when saving to file
* Update src/js/tabs/cli.js
Co-authored-by: nerdCopter <56646290+nerdCopter@users.noreply.github.com>
---------
Co-authored-by: nerdCopter <56646290+nerdCopter@users.noreply.github.com>
* add x sampling to throttle curve preview to match firmware
* Clamp throttle value to the range [0, 1] in PID tuning initialization to avoid senseless output
* revert previous change and clamp expothr to 0..100
* fix throttle curve preview when throttle limit is scale
* ¯\_(ツ)_/¯ AI rewrite of the redrawThrottleCurve() function. Could not get the Throttle Limit type Clip to draw correctly. This works perfectly.
* revert control point movent to 4.5 method
* conciseify comments