New component templates: 'aurora' (Aurora Borealis — glass cards with 3D flip) and 'garland' (Christmas ornaments on a garland): SVG gift icons, gift window with coupon copy, replay of opened gifts, current day highlighting, keyboard control
Security: a day opens only after the full calendar date (year, month, day) arrives — it is impossible to obtain a gift or coupon prematurely
Security: visitor progress is stored in the server session and in a signed cookie — it cannot be forged or reset by editing the cookie
Security: element IDs are no longer output in the markup; the gift is searched on the server only within the calendar info block
Security: all info block data output is escaped; the HTML description of the gift is cleaned by the standard sanitizer; error text is not shown to the visitor
AJAX has been migrated to the D7 component controller (BX.ajax.runComponentAction, signed parameters); the obsolete open_day.php has been replaced with a stub and is removed from the site during installation and update
Fixed: with caching enabled, visitors saw other users' progress; now only the info block content is cached (tagged cache)
Fixed: the number of days does not exceed the length of the month; the counter and progress bar count days with gifts
Added the 'Link' property for the gift of type 'Link' (automatically added during update)
Added a module settings page: visitor progress retention period (including a short demo mode) and access rights
All texts have been moved to language files (Russian and English); the info block is created for all active sites