Release v0.3.0: Factory-based API with element-specific locks#3
Merged
knowledgecode merged 5 commits intomainfrom Jan 4, 2026
Merged
Release v0.3.0: Factory-based API with element-specific locks#3knowledgecode merged 5 commits intomainfrom
knowledgecode merged 5 commits intomainfrom
Conversation
- Update ESLint configuration with @stylistic/eslint-plugin - Add tests directory to TypeScript include paths - Adjust Vite build configuration for ES modules output
BREAKING CHANGES: - Change from singleton object to factory function pattern - Remove reference counting mechanism - Replace setTimeout() method with lock() options parameter - Remove unlock(abort) parameter - Add scope filtering (inside, outside, self) - Add element-specific locks with WeakMap caching Implementation details: - blokr.ts: Factory function returns cached instances per target - lock.ts: Filter-based event blocking with Set of filter functions - Add JSDoc comments for all public and internal methods
- Rewrite all tests to use factory function pattern - Remove reference counting tests - Remove setTimeout() method tests - Remove unlock(abort) parameter tests - Add factory behavior tests (instance caching) - Add scope filtering tests (inside, outside, self) - Add element-specific locking tests - Add multiple independent locks tests Test results: 45 tests passing (24 unit, 21 integration)
- Add breaking changes warning section - Add "Why Blokr?" section comparing with CSS pointer-events - Rewrite all API documentation for factory function pattern - Add element-specific locking examples - Add scope filtering usage examples - Add CDN usage for ES Modules - Add migration guide from v0.2.x - Update limitations section - Note UMD global name change: window.Blokr → window.blokr
- Update version to 0.3.0 - Add keywords: factory, scope, element, modal, overlay, pointer-events - Update devDependencies to latest versions - Regenerate package-lock.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This release introduces significant API changes to Blokr v0.3.0, moving from a singleton pattern to a factory function pattern with support for element-specific event blocking.
Major Changes
blokr()now returns instances instead of being a singletonKey Features
Breaking Changes
blokr.lock()→blokr().lock()blokr.unlock()→blokr().unlock()(no abort parameter)blokr.setTimeout(ms)→blokr().lock({ timeout: ms })window.Blokr→window.blokrMigration Guide
See README.md Migration from v0.2.x section for detailed migration instructions.
Testing
Files Changed