Compare commits

...

4 Commits

Author SHA1 Message Date
c726cd5af8 v2.1.3
Some checks failed
Default (tags) / security (push) Failing after 24s
Default (tags) / test (push) Failing after 13s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-11-16 14:53:02 +00:00
8d60911b34 fix(CssManager): Make CssManager a singleton and export the shared instance via getSingleton; update tests and dependencies 2025-11-16 14:53:02 +00:00
217ea3e9d4 2.1.2
Some checks failed
Default (tags) / security (push) Failing after 12s
Default (tags) / test (push) Failing after 11s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-07-06 12:06:06 +00:00
8263a4fe73 fix(build): Update build script in package.json to include tsfolders in tsbuild command 2025-07-06 12:06:06 +00:00
8 changed files with 2741 additions and 1169 deletions

View File

@@ -1,5 +1,19 @@
# Changelog
## 2025-11-16 - 2.1.3 - fix(CssManager)
Make CssManager a singleton and export the shared instance via getSingleton; update tests and dependencies
- Convert CssManager to a singleton by adding a private static instance and a public static getSingleton() method.
- Use CssManager.getSingleton() for the exported cssManager in ts/index.ts to ensure a single shared instance across the app.
- Add a Chromium-focused test (test.chromium.ts) and remove the browser-specific test file.
- Bump devDependencies (@git.zone/tsbuild, @git.zone/tsbundle, @git.zone/tstest) and update lit to ^3.3.1.
- Add readme.hints.md documenting the CssManager singleton pattern and supported access patterns.
## 2025-07-06 - 2.1.2 - fix(build)
Update build script in package.json to include 'tsfolders' in tsbuild command
- Changed build script from 'tsbuild --web --allowimplicitany && tsbundle npm' to 'tsbuild tsfolders --web --allowimplicitany && tsbundle npm'
## 2025-07-06 - 2.1.1 - fix(documentation)
Refine project documentation and metadata for clarity

View File

@@ -1,6 +1,6 @@
{
"name": "@design.estate/dees-element",
"version": "2.1.1",
"version": "2.1.3",
"private": false,
"description": "A library for creating custom elements extending the lit element class with additional functionalities.",
"main": "dist_ts/index.js",
@@ -10,13 +10,13 @@
"license": "MIT",
"scripts": {
"test": "(tstest test/ --web)",
"build": "(tsbuild --web --allowimplicitany && tsbundle npm)",
"build": "(tsbuild tsfolders --web --allowimplicitany && tsbundle npm)",
"buildDocs": "tsdoc"
},
"devDependencies": {
"@git.zone/tsbuild": "^2.6.4",
"@git.zone/tsbundle": "^2.4.0",
"@git.zone/tstest": "^2.3.1",
"@git.zone/tsbuild": "^2.7.1",
"@git.zone/tsbundle": "^2.5.1",
"@git.zone/tstest": "^2.7.0",
"@push.rocks/tapbundle": "^6.0.3",
"@types/node": "^22.14.1"
},
@@ -24,7 +24,7 @@
"@design.estate/dees-domtools": "^2.3.3",
"@push.rocks/isounique": "^1.0.5",
"@push.rocks/smartrx": "^3.0.10",
"lit": "^3.3.0"
"lit": "^3.3.1"
},
"browserslist": [
"last 1 chrome versions"

3849
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1,15 @@
# Project Hints
## CssManager Singleton Pattern
**Location:** `ts/classes.cssmanager.ts`
The `CssManager` class uses a singleton pattern:
- **Static method:** `CssManager.getSingleton()` - Returns the singleton instance
- **Exported instance:** `cssManager` (from `ts/index.ts`) - Uses `getSingleton()` internally
Both access patterns are supported for backward compatibility:
- `cssManager.method()` - Legacy pattern (still works)
- `CssManager.getSingleton().method()` - Preferred pattern
The singleton ensures only one instance manages CSS variables and theme changes throughout the application.

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-element',
version: '2.1.1',
version: '2.1.3',
description: 'A library for creating custom elements extending the lit element class with additional functionalities.'
}

View File

@@ -9,6 +9,21 @@ export interface IBdVarTriplet {
}
export class CssManager {
// STATIC
private static instance: CssManager | null = null;
/**
* Returns the singleton instance of CssManager
*/
public static getSingleton(): CssManager {
if (!CssManager.instance) {
CssManager.instance = new CssManager();
}
return CssManager.instance;
}
// INSTANCE
public domtoolsPromise = domtools.DomTools.setupDomTools();
public goBright: boolean = false;
public bdVarTripletStore: IBdVarTriplet[] = [];

View File

@@ -26,7 +26,7 @@ export { directives };
/**
* a singleton instance of CssManager
*/
export const cssManager = new CssManager();
export const cssManager = CssManager.getSingleton();