# Changelog

All notable changes to `@satify/widget-sdk` are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/).

## [3.1.4] - 2026-07-19

### Added

- This changelog, shipped inside the package.
- Public support channel in the package metadata (`bugs`): [satify-survey.app/help](https://satify-survey.app/help) · contacto@humancreativelab.cl.
- Bundle-size guard in the build pipeline: publishing fails if the CDN bundle exceeds 15 KB gzip (keeps the "~14 KB" claim honest).

## [3.1.3] - 2026-07-17

### Changed

- README restructured following registry best practices: English-first, slim onboarding (quick start, formats, triggers, API), with the full reference delegated to the [documentation page](https://satify-survey.app/producto/widget-embebido). Spanish mirror reachable via the `Español` anchor.

## [3.1.2] - 2026-07-17

### Fixed

- npm rendering: the English version now lives inside `README.md` behind an anchor (npm does not render secondary files such as `README.en.md`), the gzip badge is static (the previous third-party badge rendered broken), and all relative links (`./LICENSE`) were replaced with absolute URLs (npm cannot rewrite relative links without a public `repository` field).

## [3.1.1] - 2026-07-17

### Added

- Brand logo shipped inside the package (`public/logos/`) and served via jsDelivr for the README header.
- Bilingual README (Spanish + English).

### Changed

- License holder and `author` set to Human Creative Lab; `homepage` now points to the public documentation page; private repository links removed from the package metadata.

## [3.1.0] - 2026-07-17

First npm release of the v3 line (2.3.0 was the previous published version).

### Added

- **i18n (es/en):** every string the widget renders (trigger button, close button, screen-reader announcements, progress) ships in Spanish and English. Language comes from `locale` in the config, the survey's remote config, or the host page's `<html lang>`, falling back to Spanish. Includes the `data-satify-locale` auto-init attribute and the exported `WidgetLocale` type.
- **Accessibility:** real focus containment in modal/drawer (sentinel-based, includes the iframe), inert background for screen readers while an overlay is open, localized live announcements.

### Changed since 2.3.0 (v3 highlights)

- Formats renamed: `popup/slider/inline/tab` → `modal/drawer/popover/embed`; `tab` became an **activator** (`activator: "tab"`) that combines with any format. Old names still work as deprecated aliases.
- Security hardening: sandboxed iframe, `postMessage` source validation, HTTPS enforced for `apiUrl`/`appUrl`, CSP `nonce` support, PII no longer persisted in `localStorage`.
- Skip-logic support, remote config merge (defaults → dashboard → code), per-survey domain allow-list, draft auto-save with 1-hour expiry.

[3.1.4]: https://www.npmjs.com/package/@satify/widget-sdk/v/3.1.4
[3.1.3]: https://www.npmjs.com/package/@satify/widget-sdk/v/3.1.3
[3.1.2]: https://www.npmjs.com/package/@satify/widget-sdk/v/3.1.2
[3.1.1]: https://www.npmjs.com/package/@satify/widget-sdk/v/3.1.1
[3.1.0]: https://www.npmjs.com/package/@satify/widget-sdk/v/3.1.0
