ngx-theme-stack 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -21
- package/package.json +1 -1
- package/schematics/ng-add/app-config.js +14 -5
- package/schematics/ng-add/app-config.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ngx-theme-stack 🎨
|
|
2
2
|
|
|
3
|
-

|
|
3
|
+

|
|
4
4
|
|
|
5
5
|
A simple and powerful headless theme manager for **Angular**. Built for performance and SSR support.
|
|
6
6
|
|
|
@@ -29,6 +29,7 @@ ng add ngx-theme-stack
|
|
|
29
29
|
> [!TIP]
|
|
30
30
|
> **🚀 Using Bun?**
|
|
31
31
|
> Since `ng add` is currently not supported for Bun environments, please use this two-step process:
|
|
32
|
+
>
|
|
32
33
|
> 1. **Install:** `bun add ngx-theme-stack`
|
|
33
34
|
> 2. **Configure:** `ng generate ngx-theme-stack:ng-add`
|
|
34
35
|
>
|
|
@@ -98,22 +99,22 @@ export const appConfig: ApplicationConfig = {
|
|
|
98
99
|
providers: [
|
|
99
100
|
provideThemeStack({
|
|
100
101
|
themes: ['light', 'dark', 'sunset'], // Your theme identifiers
|
|
101
|
-
defaultTheme: 'system',
|
|
102
|
-
mode: 'class',
|
|
103
|
-
strategy: 'critters',
|
|
104
|
-
storageKey: 'ngx-theme-stack'
|
|
105
|
-
})
|
|
106
|
-
]
|
|
102
|
+
defaultTheme: 'system', // Initial fallback ('system' resolves via matchMedia)
|
|
103
|
+
mode: 'class', // 'class', 'attribute' or 'both'
|
|
104
|
+
strategy: 'critters', // 'critters' (SSR) or 'blocking' (Standard SPA)
|
|
105
|
+
storageKey: 'ngx-theme-stack', // LocalStorage key
|
|
106
|
+
}),
|
|
107
|
+
],
|
|
107
108
|
};
|
|
108
109
|
```
|
|
109
110
|
|
|
110
|
-
| Option
|
|
111
|
-
|
|
|
112
|
-
| `themes`
|
|
113
|
-
| `defaultTheme` | `string`
|
|
114
|
-
| `mode`
|
|
115
|
-
| `strategy`
|
|
116
|
-
| `storageKey`
|
|
111
|
+
| Option | Type | Default | Description |
|
|
112
|
+
| :------------- | :----------- | :---------------------------- | :------------------------------------------------------------------------ |
|
|
113
|
+
| `themes` | `string[]` | `['light', 'dark', 'system']` | List of supported theme identifiers. |
|
|
114
|
+
| `defaultTheme` | `string` | `'system'` | Theme used on first visit or when no preference is saved. |
|
|
115
|
+
| `mode` | `NgMode` | `'class'` | How the theme is applied: `class`, `attribute` (`data-theme`), or `both`. |
|
|
116
|
+
| `strategy` | `NgStrategy` | `'critters'` | Anti-flash performance strategy: `critters` (inlined CSS) or `blocking`. |
|
|
117
|
+
| `storageKey` | `string` | `'ngx-theme-stack'` | Key used to persist theme preference in `localStorage`. |
|
|
117
118
|
|
|
118
119
|
> [!IMPORTANT]
|
|
119
120
|
> Whenever you update these settings, run `ng generate ngx-theme-stack:sync` to ensure your `index.html` is updated with the correct anti-flash script.
|
|
@@ -134,9 +135,7 @@ import { ThemeToggleService } from 'ngx-theme-stack';
|
|
|
134
135
|
selector: 'app-theme-toggle',
|
|
135
136
|
standalone: true,
|
|
136
137
|
template: `
|
|
137
|
-
<button (click)="toggle.toggle()">
|
|
138
|
-
Switch to {{ toggle.isDark() ? 'Light' : 'Dark' }}
|
|
139
|
-
</button>
|
|
138
|
+
<button (click)="toggle.toggle()">Switch to {{ toggle.isDark() ? 'Light' : 'Dark' }}</button>
|
|
140
139
|
`,
|
|
141
140
|
})
|
|
142
141
|
export class ThemeToggleComponent {
|
|
@@ -156,9 +155,7 @@ import { ThemeCycleService } from 'ngx-theme-stack';
|
|
|
156
155
|
selector: 'app-theme-cycler',
|
|
157
156
|
standalone: true,
|
|
158
157
|
template: `
|
|
159
|
-
<button (click)="theme.cycle()">
|
|
160
|
-
Next theme: {{ theme.upcoming() }}
|
|
161
|
-
</button>
|
|
158
|
+
<button (click)="theme.cycle()">Next theme: {{ theme.upcoming() }}</button>
|
|
162
159
|
<p>Theme {{ theme.cycleIndex() + 1 }} of {{ theme.availableThemes.length }}</p>
|
|
163
160
|
`,
|
|
164
161
|
})
|
|
@@ -240,7 +237,8 @@ The `ng add` command automatically creates a **`src/themes.css`** file. This is
|
|
|
240
237
|
/* src/themes.css */
|
|
241
238
|
|
|
242
239
|
/* Using Classes (Default Mode) */
|
|
243
|
-
:root,
|
|
240
|
+
:root,
|
|
241
|
+
.light {
|
|
244
242
|
--bg-color: #ffffff;
|
|
245
243
|
--text-color: #333333;
|
|
246
244
|
}
|
package/package.json
CHANGED
|
@@ -58,8 +58,8 @@ function patchAppConfig(tree, context, projectSourceRoot, provideCall, projectNa
|
|
|
58
58
|
* Recursively follows identifiers to find where the providers array is defined
|
|
59
59
|
* or where provideThemeStack is already called.
|
|
60
60
|
*/
|
|
61
|
-
function applySmartPatch(tree_1, context_1, filePath_1, provideCall_1) {
|
|
62
|
-
return __awaiter(this, arguments, void 0, function* (tree, context, filePath, provideCall, visitedFiles = new Set()) {
|
|
61
|
+
function applySmartPatch(tree_1, context_1, filePath_1, provideCall_1, targetIdentifier_1) {
|
|
62
|
+
return __awaiter(this, arguments, void 0, function* (tree, context, filePath, provideCall, targetIdentifier, visitedFiles = new Set()) {
|
|
63
63
|
if (visitedFiles.has(filePath))
|
|
64
64
|
return false;
|
|
65
65
|
visitedFiles.add(filePath);
|
|
@@ -75,14 +75,23 @@ function applySmartPatch(tree_1, context_1, filePath_1, provideCall_1) {
|
|
|
75
75
|
tree.overwrite(filePath, updated);
|
|
76
76
|
return true;
|
|
77
77
|
}
|
|
78
|
-
// B. INJECT:
|
|
78
|
+
// B. INJECT: If we have a targetIdentifier, look for its variable declaration
|
|
79
|
+
if (targetIdentifier) {
|
|
80
|
+
const variableDeclaration = findVariableDeclaration(sourceFile, targetIdentifier);
|
|
81
|
+
if (variableDeclaration && variableDeclaration.initializer && ts.isArrayLiteralExpression(variableDeclaration.initializer)) {
|
|
82
|
+
insertIntoArray(tree, filePath, variableDeclaration.initializer, provideCall);
|
|
83
|
+
ensureImport(tree, filePath, 'provideThemeStack', 'ngx-theme-stack');
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// C. INJECT: Look for a providers array literal: providers: [ ... ]
|
|
79
88
|
const arrayLiteral = findProvidersArrayLiteral(sourceFile);
|
|
80
89
|
if (arrayLiteral) {
|
|
81
90
|
insertIntoArray(tree, filePath, arrayLiteral, provideCall);
|
|
82
91
|
ensureImport(tree, filePath, 'provideThemeStack', 'ngx-theme-stack');
|
|
83
92
|
return true;
|
|
84
93
|
}
|
|
85
|
-
//
|
|
94
|
+
// D. DELEGATION: Look for a delegated provider: providers: SOME_CONSTANT
|
|
86
95
|
const delegatedIdentifier = findProvidersIdentifier(sourceFile);
|
|
87
96
|
if (delegatedIdentifier) {
|
|
88
97
|
const importPath = findImportPathForIdentifier(sourceFile, delegatedIdentifier);
|
|
@@ -93,7 +102,7 @@ function applySmartPatch(tree_1, context_1, filePath_1, provideCall_1) {
|
|
|
93
102
|
resolvedPath = `${dir}/${importPath}/index.ts`.replace(/\/\/+/g, '/');
|
|
94
103
|
}
|
|
95
104
|
if (tree.exists(resolvedPath)) {
|
|
96
|
-
return applySmartPatch(tree, context, resolvedPath, provideCall, visitedFiles);
|
|
105
|
+
return applySmartPatch(tree, context, resolvedPath, provideCall, delegatedIdentifier, visitedFiles);
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../../projects/ngx-theme-stack/schematics/ng-add/app-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../../projects/ngx-theme-stack/schematics/ng-add/app-config.ts"],"names":[],"mappings":"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"}
|