January 19th, 2026

Happy new year! We start 2026 with a bang, and a whole load of updates for you. Here’s what’s been going on over the holiday period…
SPanel - The all-in-one cloud management platform
.BD domain reseller
SSL Commerz payment gateway
Widgets 2.0 (Beta Preview) Improvements:
Widgets 2.0 are now faster to instantiate, benefit from cached styles and are easier to configure/pass options to.
Refactored prop parsing to support either individual HTML attributes (simplest) or an application/json child <script> block (whilst keeping the bind approach for backwards compatibility).
Implemented dynamic slot detection using MutationObserver, so slot changes are picked up even when content is injected after initial render.
Fixed tooltips failing on highlighted cards (in certain browsers) when a background blur filter was applied.
Moved Tailwind CSS from repetitive inlined style blocks to a separate, cacheable, versioned stylesheet link; widgets now resolve CSS robustly across hosting environments with automatic cache-busting via build-time version injection.
Removed redundant HTML/head/body tags from the Custom Element template and standardised the Shadow DOM structure around a single root <section>, keeping the widget component as a pure presentation layer consuming reactive state from the composable.
Reduced the main JS bundle by ~72 KB (~417 KB → ~345 KB) by externalising styles (CSS emitted separately at ~71 KB).
Other functionality:
New contract product filter to the 'Tickets' tab, when viewing clients;
New setting to add a default support department per product;
Now showing the validation status of company tax numbers;
Added staff controls to manage and (re)validate tax numbers;
Now showing tax amount in dry-run 'amount to refund' calculation;
Updates to Duda provisioning integration (aligning to updates from Duda);
Broken query when invoice product doesn’t exist yet;
Catch errors during report generation cron loop;
Error opening lead ticket due to empty strings being passed;
Error submitting domain names settings form;
Prevent setting domain cookies on restricted apex domains;
Improved error handling for DLocal payment gateway;
Fix adjust promotions when combined with other percentage promotions;
Incorrect usage of ticket_department_id vs brand_ticket_department_id;
Wrong injection key breaking the mapping step for imports;
Remove auth provider management controls from API tokens view;
Update version of libphonenumber-js to support new mobile ranges;
Updates to TitanMail provisioning config;
Additional API debugging;
Safeguard deleting invoice payments;
Upgrade Laravel to 6.20.45;
Refactor mapState and mapGetters to computed properties;
Add protection against early issuing of consolidation invoices;
Additional protections for duplicated waiting payment;
Update final components to utilise the useClientInjector composable;
Refactor injections to use composable pattern;
Remove $ prefix from provided data and method names;